12 ПОНЯТТЯ АРХІТЕКТУРИ ПРОЦЕСОРА
12 ПОНЯТТЯ АРХІТЕКТУРИ ПРОЦЕСОРА
Процесор – пристрій, що здійснює процес автоматичної обробки даних і програмно керує цим процесом. Процесор дешифрує й виконує команди програми, організовує звертання до оперативної пам'яті, в потрібних випадках ініціює роботу каналів вводу/виводу і периферійних пристроїв, приймає та обробляє запити переривання, які надходять з пристроїв комп'ютера і ззовні. За виконуваними функціями процесор є центральним пристроєм ОМ.
Перший процесор Intel 4004 був створений у 1971 році командою на чолі з талановитим винахідником, доктором Тедом Хоффом. Спочатку процесор 4004 призначався для мікрокалькуляторів і був виготовлений на замовлення однієї японської фірми. Але фірма збанкрутувала і в результаті розробка перейшла у власність фірми Intel. З цього моменту і почалася епоха персональних комп’ютерів.
Рисунок 12.1 - Процесор Intel 4004
Процесором називають основну функціональну частину комп’ютера, яка безпосередньо реалізує програмно-керуючий процес обробки даних.
Мікропроцесором (МП) називають процесор, складові частини якого мінітюаризовані і розміщені в одній або кількох мікросхемах.
Процесор включає слідуючі важливі пристрої, які знаходяться на його кристалі:
1. Власне, процесор, головний обчислювальний пристрій, що складається з мільйонів логічних елементів — транзисторів;
2. Співпроцесор — спеціальний блок для операцій з «плаваючою комою», який застосовується для особливо точних і складних розрахунків, а також для роботи з рядом графічних програм;
3. Кеш-пам’ять першого рівня — невелика (кілька десятків кілобайт) надшвидка пам’ять, призначена для зберігання проміжних результатів обчислень;
4. Кеш-пам’ять другого рівня — ця пам’ять трохи повільніша, зате більша по ємності і має від 128 Кбайт до десятків Мбайт.
Ядром процесора називають ту частину процесорного кристала, який є головним обчислювальним пристроєм.
Форм-фактором процесора називають тип виконання процесора, його «зовнішності» і способу підключення до системної плати.
Коефіцієнтом множення процесора називають число, на яке множиться частота системної шини, в результаті чого виходить робоча частота процесора.
Заблокований коефіцієнт означає, що процесор буде множити системну шину завжди на одну і ту саму цифру. Тобто розгін без збільшення частоти шини для такого процесора неможливий. У процесорів Athlon коефіцієнт можна розблокувати кількома способами – з’єднанням контактних містків на процесорі або «процесорних ніжок», а в деяких випадках він на початку не заблокований. У всіх (за рідкісним винятком) процесорів Intel, які зараз є у продажу, коефіцієнт заблокований і розблокуванню не піддається.
Швидкістю роботи процесора називають його тактову частоту, яка вимірюється в мегагерцах і показує, скільки інструкцій здатний виконати процесор протягом секунди.
Тактова частота позначається цифрою в назві процесора (наприклад, Pentium 4-2400, тобто процесор покоління Pentium 4 з тактовою частотою 2400 МГц або 2.4 ГГц).
Для поліпшення показників швидкості при виконанні операцій з плаваючою комою, використовується спеціальний пристрій — математичний співпроцесор. Ця схема, що працює у взаємодії з центральним процесором, призначена тільки для виконання математичних операцій. У ній немає потреби, якщо робота на комп’ютері виконується з базами даних або звичайними текстовими редакторами. Але якщо йде робота з електронними таблицями, тривимірною графікою, видавничими пакетами, спеціальними програмами з математичного моделювання, то автоматично вмикається у роботу математичний співпроцесор, що істотно підвищує продуктивність комп’ютера. Тому всі процесори фірми Intel, починаючи з 486, мають вбудовані співпроцесори.
Додаткові набори інструкцій процесора. До них відноситься: MMX, 3DNowl, SSE. Вони застосовуються в сучасних процесорах і здатні значно прискорити їх роботу, за умови підтримки цих наборів з боку програми. Всі традиційні сучасні процесори підтримують набір інструкцій ММХ, який розшифровується як Multi Media extensions (мультимедійні розширення). Він створив додаткові можливості, орієнтовані на опрацювання цифрового зображення і звуку. В основі технології лежить концепція (архітектура) SIMD (Single Instruction Many Data — «одна команда, багато даних»), коли за допомогою однієї інструкції одночасно оброблюється кілька елементів даних. SSE, SSE2, 3DNow! — подальший розвиток цієї ідеї. Intel Pentium 3 підтримують SSE, a Pentium 4 і AMD Arhlon 64 ще й SSE2 (це відноситься і до відповідних Celeron). Процесори AMD Athlon {Duron) підтримують набори інструкцій 3DNow! Professional і MMX, в Athlon ХР було додано підтримку SSE (на рівні мікрокоду ядра).
Постійне прагнення до підвищення швидкодії ОМ призвело до створення великої різноманітності процесорів, які відрізняються за своєю структурою, призначенням, за способом організації обчислювального процесу та ін. Весь парк процесорів можна класифікувати, наприклад, за такими ознаками:
За використовуваною системою числення:
- процесори, що працюють у позиційній системі;
- процесори, що працюють у непозиційній системі (наприклад, у системі залишкових класів – СЗК).
За способом обробки розрядів:
- з паралельною обробкою розрядів;
- з послідовною обробкою;
- із змішаною обробкою (послідовно-паралельною).
За складом операцій:
- процесори загального призначення;
- проблемно-орієнтовані;
- спеціалізовані.
За місцем процесора в системі:
- центральний процесор (ЦП);
- співпроцесор;
- периферійний процесор;
- канальний процесор (контролер каналу вводу/виводу);
- процесорний елемент (ПЕ) багатопроцесорної системи.
За організацією операційного пристрою:
- з операційним пристроєм процедурного типу (I-процесори, M-процесори);
- процесори з блоковим операційним пристроєм;
- процесори з конвеєрним операційним пристроєм (з арифметичним конвеєром).
Рисунок 12.2 – Класифікація процесорів
За організацією обробки адрес:
- із загальним операційним пристроєм;
- із спеціальним (адресним) операційним пристроєм.
За типом операндів:
- скалярний процесор;
- векторний процесор;
- з можливістю обробки і скалярних, і векторних даних.
За логікою управління процесором:
- з жорсткою логікою управління;
- з мікропрограмним управлінням.
За складом (повнотою) системи команд:
- RISC;
- CISC.
За організацією управління потоком команд / способом заванаження виконавчих пристроїв:
- з послідовною обробкою команд;
- з конвеєром команд;
- суперскалярні процесори;
- процесори з довгим командним словом (VLIW) і так далі.
Як всяка класифікація, приведена вище класифікація не може вважатися повною, оскільки кількість типів процесорів достатньо велика і за своєю архітектурою процесори дуже різноманітні.
Процесором загального призначення називають процесор, який застосовують для вирішення широкого кола завдань обробки різноманітної інформації. Їх основною галуззю застосування є персональні комп’ютери, робочі станції, сервери та інші цифрові системи масового застосування.
Спеціалізованим процесором називають процесор, який орієнтований на вирішення специфічних завдань управління різними об’єктами. Він містить додаткові мікросхеми (інтерфейси), що забезпечують спеціалізоване застосування, мають особливу конструкцію і підвищену надійність.
Мікроконтролером називають спеціалізований процесор, орієнтований на реалізацію пристроїв керування, що вбудовуються в різноманітну апаратуру.
Характерною особливістю структури мікроконтролерів є розміщення на одному кристалі з центральним процесором внутрішньої пам’яті і великого набору периферійних пристроїв.
Цифровим процесором сигналів (ЦПС) називають клас спеціалізованих процесорів, орієнтованих на цифрову обробку аналогових сигналів.
Специфічною особливістю алгоритмів оброблення аналогових сигналів є необхідність послідовного виконання ряду команд множення-додавання з накопиченням проміжного результату в регістрі-акумуляторі. Тому архітектура ЦПС орієнтована на реалізацію швидкого виконання операцій такого роду. Набір команд цих процесорів містить спеціальні команди МАС (Multiplication with Accumlatiori), що реалізують ці операції.
Класифікацію процесорів за функціональною ознакою показано на рис. 12.3.
Універсальним процесором називають процесор, який орієнтований на використання в різних обчислювальних, інформаційних та керуючих системах, де вимагається обробка великих обсягів інформації, але немає спеціальних вимог до архітектури обчислювача, габаритним розмірам і енергоспоживання.
Рисунок 12.3 – Класифікація процесорів за функціональною ознакою
Універсальність процесора означає як широку сферу використання, так і типову структуру обчислювальної системи. Для таких пристроїв зазвичай реалізується нейманівська архітектура і рідше — гарвардська. Типову структуру універсального процесора показано на рис. 12.4.
Універсальні процесори не є самодостатніми пристроями, і для побудови комп’ютера вимагають підключення ряду додаткових мікросхем. Тому для конкретного універсального процесора розроблено процесорний комплект, який містить різні буферні елементи і контролери функціонально і електрично сумісні з цією моделлю. Універсальні процесори мають наступні характеристики:
1. Розрядність, яка визначається максимальною кількістю цілочисельних даних, які обробляються за 1 такт, тобто фактично розрядністю арифметико-логічного пристрою (АЛП);
2. Видом і форматами оброблюваних даних;
3. Системою команд і режими адресації операндів;
4. Ємністю прямо адресованої оперативної пам’яті, визначається розрядністю шини адреси;
5. Частотою зовнішньої синхронізації. Для частоти синхронізації вказується її максимально можливе значення, при якому гарантується працездатність схеми. Для функціонально складних схем, до яких відносяться і процесори, іноді вказують також мінімально можливу частоту синхронізації, зменшення нижче якої може призвести до відмови схеми. У той же час в тих застосуваннях процесора, де не потрібна висока швидкодія, зниження частоти синхронізації — один з напрямів енергозбереження. У ряді сучасних процесорів при зменшенні частоти він переходить в «сплячий режим», зберігаючи свій стан.
6. Продуктивність, визначається за допомогою спеціальних тестів, при цьому сукупність тестів підбирається таким чином, щоб вони по можливості покривали різні характеристики архітектури процесорів, що впливають на продуктивність.
Рисунок 12.4 – Типова структура універсального процесора
Однокристальним мікроконтролером (МК) називають контролер, який являє собою процесорну систему, реалізовану на одному кристалі надвеликої інтегральної схеми (НВІС).
Типова архітектура МК включає в себе власне процесор, генератор тактових імпульсів (ГТІ), блоки пам’яті (ОЗП і ПЗП), порти введення-виведення, таймери, контролер переривань. Основними перевагами МК є конструктивна і схемотехнічна єдність всіх блоків, загальний електричний інтерфейс, зручність програмної установки режимів роботи всіх підсистем.
Логічним процесором називають процесор, який використовують для задач логічного керування з наявністю спеціального апаратного розширення і розширений набір команд логічної обробки даних. Типову структуру процесора для задач логічного керування показано на рис.12.5.
Рисунок 12.5 – Типова структура процесора для задач логічного керування
Аналоговим процесором називають процесор, який для обробки сигналів, крім типових блоків МК, включає в себе багатоканальні АЦП і ЦАП.
Конвеєрним сигнальним процесором називають процесор, який містить конвеєри для реалізації алгоритмів цифрової фільтрації даних і обробки зображень. Такі алгоритми складаються з послідовності операцій множення і додавання. Конвеєр являє собою набір однотипних блоків для виконання операцій множення-підсумовування, включених послідовно один за одним. Таким чином, результат виконання операції в одному блоці автоматично є вхідними даними для наступного блоку. Прикладом подібних пристроїв є контролери Intel MСS-196/296. Приклад структури сигнального процесорного пристрою без АЦП і ЦАП показано на рис. 12.6.
Рисунок 12.6 – Типова структура сигнального процесора
Особливість процесора даного типу полягає в тому, що до його складу входить блок апаратного множення (MUL), який спільно з арифметико-логічним пристроєм (ALU) і зсувним регістром (SHIFTER) утворює блок для ефективної реалізації обчислень за алгоритмами цифрової фільтрації даних.
Процесор з мікропрограмним принципом керування називають процесор, який конструктивно виконують у вигляді секцій ВІС малої розрядності, що мають засоби для нарощування розрядності оброблюваних даних.
Для подібних процесорів відсутнє поняття системи команд. Дії процесора на той чи інший керуючий код визначаються програмістом шляхом установлення спеціального блоку мікропрограмного керування. Таким чином, розробники комп’ютерів можуть формувати систему команд, орієнтовану на ефективне вирішення певного кола завдань. Істотним недоліком подібних комп’ютерів є громіздкість апаратних модулів, а також необхідність написання програмного забезпечення в машинних кодах, що ускладнює розробку. На даний час такі секціоновані процесори практично витіснені одно-кристальними процесорами і мікроконтролерами.
Вище було відзначено, що конкретні типи ОМ містять у своєму складі процесори, побудовані за різними схемами, і процесори великих ЕОМ істотно відрізняються від процесорів міні- і мікро-ЕОМ (про супер-ЕОМ і говорити не доводиться).
Проте основні принципи побудови процесорів загалом однакові, причому найнаочніше їх можна продемонструвати на прикладі простого мікропроцесора. Раніше розглядалися дії над числами (додавання, віднімання, множення), представленими в різній формі. Було підкреслено, що всі ці дії здійснюються за допомогою елементарних операцій, що виконуються в певній послідовності.
До таких елементарних операцій відносяться:
- запис числа в регістр;
- інвертування вмісту розрядів регістра;
- пересилка вмісту регістрів;
- зсув вмісту регістра;
- додавання кодів;
- порозрядні логічні операції або аналіз розрядів;
- операція лічби С+1 або С-1 (інкремент або декремент).
Приклад.
Операція множення реалізується з допомогою:
- аналізу розряду множника;
- підсумовування;
- зсуву.
Всі ці дії виконуються в пристрої, що називається процесором, який складається з двох пристроїв – операційного (ОПр) і управляючого (ПУ).
ОПр – виконує вказані елементарні операції.
ПУ – управляє ОПр, задаючи необхідну послідовність виконання цих операцій.
Узагальнена структура будь-якого процесора зображена на рис. 12.7
Рисунок 12.7 – Узагальнена структура процесора
Як вузли ПУ і ОПр включають регістри, лічильники, суматори, мультиплексори, дешифратори і так далі. Крім того, нормальне функціонування процесора і всієї ЕОМ можливо тільки за наявності високостабільних імпульсних послідовностей, які формуються, як правило, з однієї імпульсної послідовності, що виробляється кварцевим генератором. Ці тактові імпульсні послідовності синхронізують роботу вузлів процесора, а іноді і всієї ЕОМ.
Кожна елементарна операція, що виконується в одному з вузлів ОПр протягом одного тактового періоду, називається мікрооперацією.
У певні тактові періоди одночасно можуть виконуватися декілька мікрооперацій, наприклад: Рг ← 0, Лч ← (Лч) – 1 і так далі. Така сукупність несуперечливих мікрооперацій називається мікрокомандою, а набір мікрокоманд, призначений для вирішення завдання, називається мікропрограмою.
Якщо в ОПр передбачена можливість виконання n різних мікрооперацій, то з ПУ повинно виходити n управляючих ланцюгів S1, ..., Sn, кожний з яких відповідає своїй мікрооперації. Через те що ПУ визначає мікропрограму, тобто які і в якій тимчасовій послідовності повинні виконуватися мікрооперації, він отримав назву мікропрограмного автомата. Відповідно ОПр часто називають операційним автоматом.
Формування управляючих сигналів S1, ..., Sn може залежати як від зовнішніх сигналів КОп (команди асемблера), так і від стану вузлів ОПр, які визначаються повідомними сигналами ознак стану P1, ..., Pm, що поступають з виходу ОПр на відповідні входи ПУ.
Як уже наголошувалося, ОПр виконує над початковими даними різні арифметичні і логічні операції, тому ОПр найчастіше називають арифметико-логічним пристроєм (АЛП).
Ділення будь-якого процесора на програмний і операційний автомати достатньо очевидно і не викликає особливих труднощів у розумінні. Проте структурні схеми навіть простих реальних процесорів крім АЛП і ПУ містять ще ряд вузлів (регістри, лічильники, дешифратори та ін.), які начебто не відносяться ні до АЛП, ні до ПУ.
Для усунення плутанини в подальшому матеріалі необхідно зробити ряд зауважень:
1. У абсолютній більшості випадків пристрої обробки цифрової інформації мають багаторівневу структуру.
Це означає, що ПУ і ОПр можуть самі розпадатися на пари ПУ' і ОП'р, які, у свою чергу, також можуть розпадатися на відповідні ПУ і ОПр. Все залежить від ступеня деталізації розгляду даного цифрового пристрою. Цей принцип багаторівневості справедливий для всіх пристроїв ЕОМ.
Більше того, ці міркування справедливі в цілому для ЕОМ, яку можна розкласти на ряд віртуальних (що здаються) машин і з кожною працювати на відповідному рівні. У загальному випадку сучасні універсальні ЕОМ мають шість рівнів:
- рівень проблемно-орієнтованої мови;
- процедурно-орієнтована мова;
- асемблерний рівень (мова асемблера);
- рівень операційної системи (мова операційної системи);
- традиційний машинний рівень (мова машинних команд);
- мікропрограмний рівень (мова мікрокоманд).
Машинні мови двох нижніх рівнів є цифровими, і програми на них складаються з довгих числових послідовностей, дуже незручних для людини, але зрозумілих машині. Все більш високі рівні містять слова і абревіатуру, що зручніше для людини.
2. Із сказаного виходить, що тільки найпростіші процесори мають один рівень і можуть бути в чистому вигляді розкладені на ПУ і ОПр, що складаються з комбінаційних логічних схем, здатних виконувати елементарні арифметико-логічні операції.
3. В даний час немає строгого визначення АЛП, що викликає деяку плутанину при користуванні різною літературою. АЛП зазвичай позначають так, як показано на рис. 12.8. При цьому одні автори мають на увазі під АЛП тільки комбінаційні логічні схеми, здатні виконувати операції двійкового підсумовування (тобто фактично двійковий суматор), інші – цілий комплекс схем для виконання арифметико-логічних операцій.
Рисунок 12.8 - Графічне позначення простого АЛП
1. У загальному випадку поняття мікрооперації і мікропрограми відносні і вимагають конкретизації рівня розгляду процесора, оскільки один такт верхнього рівня може включати декілька тактів нижнього рівня.
2. Під час вивчення основних принципів побудови елементарних процесорів вважатимемо:
- процесор має один рівень;
- процесор користується однією тактовою послідовністю;
- значок АЛП (див. рис. 12.8) позначає комплекс комбінаційних схем, здатних виконувати двійкове додавання, зсув двійкового числа, прості порозрядні логічні операції;
- вузли мікропроцесора, що не відносяться безпосередньо до схеми управління, вважатимемо допоміжними вузлами АЛП, або, точніше, вузлами, що забезпечують нормальне функціонування АЛП.