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

Матеріал з Вікі ЦДУ
Версія від 16:03, 2 грудня 2008; Гупалов Антон (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

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

Функції

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


Архітектура процесора

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


Багатоядерні процесори

Найзначнішою подією 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). Це таблиця в якій знаходяться всі адреси, куди буде або може бути зроблений перехід.