Центральний процесор

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Центральний процесор i486

Центральний процесор, ЦП (англ. Central processing unit, CPU) — функціональна частина ЕОМ, що призначена для інтерпретації команд.

Функції[ред.ред. код]

  • обробка даних по заданій програмі шляхом виконання арифметичних і логічних операцій;
  • програмне керування роботою пристроїв комп'ютера.

Архітектура процесора[ред.ред. код]

Термін "архітектура процесора" в наш час[Коли?] не має однозначного тлумачення. З погляду програмістів, під архітектурою процесора мається на увазі його здатність виконувати певний набір машинних кодів. Більшість сучасних десктопних процесорів відносяться до сімейства x86, або Intel-сумісних процесорів архітектури IA32 (архітектура 32-бітових процесорів Intel). Її основа була закладена компанією Intel в процесорі i80386, проте в подальших поколіннях процесорів вона була доповнена і розширена як самою Intel (введені нові набори команд MMX, SSE, SSE2 і SSE3), так і сторонніми виробниками (набори команд EMMX, 3DNow! і Extended 3DNow!, розроблені компанією AMD).

Проте розробники комп'ютерного устаткування вкладають в поняття "Архітектура процесора" (іноді, щоб остаточно не заплутатися, використовується термін "мікроархітектура") дещо інший зміст. З їхнього погляду, архітектура процесора відображає основні принципи внутрішньої організації конкретних сімейств процесорів. Наприклад, архітектура процесорів Intel Pentium позначалася як Р5, процесорів Pentium II і Pentium III - Р6, а популярні в недавньому минулому Pentium 4 відносилися до архітектури NetBurst. Після того, як компанія Intel закрила архітектуру Р5 для сторонніх виробників, її основний конкурент - компанія AMD була вимушена розробити власну архітектуру - К7 для процесорів Athlon і Athlon XP, і К8 для Athlon 64.

Ядро[ред.ред. код]

В рамках однієї і тієї ж архітектури різні процесори можуть досить сильно відрізнятися один від одного. І відмінності ці утілюються в різноманітних процесорних ядрах, що володіють певним набором суворо обумовлених характеристик. Найчастіше ці відмінності втілюються в різних частотах системної шини (FSB), розмірах кеша другого рівня, підтримці тих або інших нових систем команд або технологічних процесах, за якими виготовляються процесори. Нерідко зміна ядра в одному і тому ж сімействі процесорів спричиняє за собою заміну процесорного роз'єму (сокет, англ. socket), з чого витікають питання подальшої сумісності материнських плат. Проте в процесі вдосконалення ядра виробникам доводиться вносити до нього незначні зміни, які не можуть претендувати на "власне ім'я ". Такі зміни називаються ревізіями (англ. stepping) ядра і, найчастіше, позначаються цифробуквенними комбінаціями. Проте в нових ревізіях одного і того ж ядра можуть зустрічатися досить помітні нововведення. Так, компанія Intel ввела підтримку 64-бітової архітектури EM64T в окремі процесори сімейства Pentium 4 саме в процесі зміни ревізії.

32-бітові та 64-бітові процесори[ред.ред. код]

Найуспішнішими і найпоширенішими донедавна були процесори з архітектурою IA32, яка була введена з появою покоління процесорів i80386 на заміну 16-бітним 8086, 80186, 80286.

Досить вдале 64-бітове розширення класичної 32-бітової архітектури IA32 було запропоноване в 2002 році компанією AMD (спочатку називалося x86-64, зараз - AMD64) в процесорах сімейства К8. Через деякий час компанією Intel було запропоновано власне позначення - EM64T (англ. Extended Memory 64-bit Technology). Але, незалежно від назви, суть нової архітектури одна і та ж: розрядність основних внутрішніх регістрів 64-бітових процесорів подвоїлася (з 32 до 64 біт), а 32-бітові команди x86-кода отримали 64-бітові аналоги. Крім того, за рахунок розширення розрядності шини адрес обсяг пам'яті, що адресується процесором, істотно збільшився.

Але ті, хто чекає від 64-бітових процесорів скільки-небудь істотного приросту швидкодії, будуть розчаровані — їхня продуктивність в переважній більшості сучасних застосунків (які в масі своїй підігнані під IA32) практично та ж, що і у старих добрих 32-бітових. Для пересічного користувача потенціал 64-бітової архітектури може розкритися тоді, коли масово з'являться застосунки, оптимізовані під нову архітектуру. Найефективнішим перехід на 64-бітові процесори стане для програм, що активно працюють з великими обсягами пам'яті, понад 4 ГБ: високопродуктивних серверів, баз даних, програм класу CAD/CAE, а також програм для роботи з цифровим контентом.

Паралелізм[ред.ред. код]

В інформатиці, Паралелізмом (англ. Concurrency), або багатозадачністю називається властивість систем, коли декілька процесів обчислення відбуваються водночас, і, можливо, взаємодіють один з одним.

Конвеєр команд[ред.ред. код]

Конвеєр команд - апаратна структура в обчислювальних пристроях ЕОМ, призначена для прискорення виконання машинних команд шляхом суміщення певних стадій їх виконання в часі.

Докладніше: Конвеєр команд

Багатоядерні процесори[ред.ред. код]

Найзначнішою подією 2005 року стала поява двоядерних процесорів. До того часу класичні одноядерні CPU певною мірою вичерпали резерви зростання продуктивності за рахунок підвищення робочої частоти. Каменем спотикання стало не тільки дуже високе тепловиділення процесорів, що працюють на високих частотах, але і проблеми з їхньою стабільністю. Отже, екстенсивний шлях розвитку процесорів вичерпався і виробникам довелося освоювати новий, інтенсивний шлях підвищення продуктивності продукції. Піонером на ринку десктопних CPU, як зазвичай, стала компанія Intel, що першою анонсувала двоядерні процесори Intel Pentium D і Intel Extreme Edition. Втім, AMD з Athlon64 X2 відстала від конкурента буквально на лічені дні. Безперечним досягненням цих двоядерників першого покоління є їхня повна сумісність з існуючими системними платами. Друге покоління двоядерних процесорів, зокрема, Intel Core 2 Duo, вимагає спеціально розроблених для них чипсетів та зі старими материнськими платами не працює.

На сьогоднішній день для роботи з двоядерними процесорами більш-менш оптимізовано в основному професійне ПЗ (включаючи роботу з графікою, аудіо- і відеоданими), тоді як для офісного або домашнього користувача друге процесорне ядро іноді приносить користь, але частіше є мертвим вантажем. Але ринок неухильно рухається у бік мультиядерних систем і оптимізованих паралельних обчислень. Така тенденція буде пануючою найближчими роками, так що частка ПЗ, оптимізованого під декілька ядер, неухильно зростатиме, і дуже скоро може наступити момент, коли багатоядерність стане насущною необхідністю.

Будова[ред.ред. код]

Внутрішні спільно працюючі пристрої[ред.ред. код]

Моделі процесорів включають такі спільно працюючі пристрої:

  • Пристрій керування (ПК). Здійснює координацію роботи всіх інших пристроїв, виконує функції керування пристроями, керує обчисленнями в комп'ютері.
  • Арифметико-логічний пристрій (АЛП). Так називається пристрій для цілочислових операцій. Арифметичні операції, такі як додавання, множення і ділення, а також логічні операції (OR, AND, ASL, ROL і ін.) обробляються за допомогою АЛП. Ці операції складають переважну більшість програмних кодів у більшості програм. Всі операції в АЛП обробляються в регістрах — спеціально відведених чарунках АЛП. У процесорі може бути декілька АЛП. Кожен здатний виконувати арифметичні або логічні операції незалежно від інших, що дозволяє виконувати декілька операцій одночасно. Арифметико-логічний пристрій виконує арифметичні і логічні дії. Логічні операції поділяються на дві прості операції: «Так» і «Ні» («1» і «0»). Звичайно, ці два пристрої виділяються суто умовно, конструктивно вони не розділені.
  • AGU (Address Generation Unit) — пристрій генерації адрес. Це пристрій не менш важливий, ніж АЛП, тому що він відповідає за коректну адресацію при завантаженні або збереженні даних.
  • Математичний співпроцесор (FPU). Процесор може містити декілька математичних співпроцесорів. Кожний з них здатний виконувати, щонайменше, одну операцію з плаваючою комою, незалежно від того, що роблять інші АЛП. Метод конвеєрної обробки даних дозволяє одному математичному співпроцесорові виконувати декілька операцій одночасно. Співпроцесор підтримує високоточні обчислення як цілочислені, так і з плаваючою комою і, крім того, містить набір корисних констант, що прискорюють обчислення. Співпроцесор працює паралельно з центральним процесором, забезпечуючи, таким чином, високу продуктивність.
  • Дешифратор інструкцій (команд). Аналізує інструкції з метою виділення операндів і адрес, за якими розміщуються результати. Потім випливає повідомлення іншому незалежному пристроєві про те, що необхідно зробити для виконання інструкції. Дешифратор допускає виконання декількох інструкцій одночасно для завантаження усіх виконуючих пристроїв.

Пам'ять[ред.ред. код]


  • Кеш-пам'ять. Особлива високошвидкісна пам'ять процесора. Кеш використовується як буфер для прискорення обміну даними між процесором і оперативною пам'яттю, а також для збереження копій інструкцій і даних, що недавно використовувалися процесором. Значення з кеш-пам'яті витягаються прямо, без звертання до основної пам'яті.

Кеш першого рівня (L1 cache). Кеш-пам'ять, що знаходиться усередині процесора. Вона швидша за всі інші типи пам'яті, але менша за обсягом. Зберігає нещодавно використану інформацію, яка знову може бути використана при виконанні коротких програмних циклів.

Кеш другого рівня (L2 cache). Також знаходиться усередині процесора. Інформація, що зберігається в ній, використовується рідше, ніж інформація, що зберігається в кеш-пам'яті першого рівня, проте обсяг пам'яті у ній більший. Також у наш час[Коли?] в процесорах використовується кеш третього рівня.

  • Основна пам'ять. Набагато більша за обсягом, ніж кеш-пам'ять, і значно менш швидкодіюча.
  • Регістри — це внутрішня пам'ять процесора. Являють собою ряд спеціалізованих додаткових комірок пам'яті, а також є внутрішніми носіями інформації мікропроцесора. Регістр є пристроєм тимчасового зберігання даних, числа або команди і використовується з метою полегшення арифметичних, логічних і пересильних операцій. Основним елементом регістра є електронна схема, яку називають тригером, що здатна зберігати одну двійкову цифру (розряд).

Деякі важливі регістри мають свої назви, наприклад:

суматор — регістр АЛП, що бере участь у виконанні кожної операції;

лічильник команд — регістр УП, вміст якого відповідає адресі чергової виконуваної команди, служить для автоматичної вибірки програми з послідовних комірок пам'яті;

регістр команд — регістр УП для збереження коду команди на період часу, що необхідний для її виконання. Частина його розрядів використовується для збереження коду операції, інші — для збереження кодів адрес операндів.

Шини[ред.ред. код]


Шина — це канал пересилання даних, який використовується спільно різними блоками системи. Шина може являти собою набір провідних ліній у друкованій платі, проводи, припаяні до виводів роз'ємів, у які вставляються друковані плати, або плоский кабель. Інформація передається по шині у виді груп бітів. До складу шини для кожного біта слова може бути передбачена окрема лінія (паралельна шина), або всі біти слова можуть послідовно в часі використовувати одну лінію (послідовна шина).

  • Шина даних. Служить для пересилання даних між процесором і пам'яттю або процесором і пристроями введення-виведення. Ці дані можуть являти собою як команди мікропроцесора, так і інформацію, що він посилає в порти введення-виведення або приймає звідти.
  • Шина адрес. Використовується ЦП для вибору необхідної комірки пам'яті або пристрою введення-виведення шляхом установки на шині конкретної адреси, що відповідає одній з комірок пам'яті або одному з елементів введення-виведення, що входять у систему.
  • Шина керування. По ній передаються керуючі сигнали, призначені пам'яті і пристроям введення-виведення. Ці сигнали вказують напрямок передачі даних (у процесор або з нього).

Буфер цілей розгалуження[ред.ред. код]

BTB (Branch Target Buffer). Це таблиця, в якій знаходяться всі адреси, куди буде або може бути зроблений перехід.

Див. також[ред.ред. код]

Примітки[ред.ред. код]

Посилання[ред.ред. код]