Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.АРХІТЕКТУРА.doc
Скачиваний:
12
Добавлен:
15.09.2019
Размер:
2.21 Mб
Скачать

2. Поняття архітектури мікропроцесорів. Типи мікропроцесорів. Цикл обробки команди. Формування керуючих сигналів. Апаратне та мікропрограмне управління процесором. Суперскалярне виконання.

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

Конвеєризація (pipelining) – передбачає розбиття виконання кожної інструкції на декілька етапів, при цьому кожний етап виконується на своїй ступені конвеєра процесора. Під час виконання інструкція пересувається по конвеєру по мірі звільнення наступних ступіней.

Скалярним називають процесор з єдиним конвеєром (усі процесори Intel до 486 включно). Суперскалярний процесор має більше одного конвеєра (Pentium – 2, Pentium Pro – 3), здатних обробляти інструкції паралельно.

Архітектури 32-розрядних мікропроцесорів мають ряд недоліків, зокрема, обмеження продуктивності, яка їм органічно властива. Для її підвищення процесор повинен досягати відповідної швидкодії і виконувати при цьому якомога більше команд за один такт. Це можливо при реалізації паралельних обчислень.

Над розробкою нової архітектури сьогодні працюють спільно корпорації Intel І Hewlett Packard. Ця архітектура має назву Intel Architecture-64 (ІА-64). Представником цієї архітектури є процесор з кодовою назвою Merced.

Основними її особливостями є: використання "довгих" слів інструкцій (long instruction word-LIW), передбачення наступних виконуваних інструкцій, усунення переходів, спекулятивне завантаження та інші методики збільшення паралелізму і оптимізації програмного коду. Процесор містить як елементи RISC-, так і CISC-архітектури. Підвищення продуктивності досягається також за рахунок додаткової інформації, що з'являється на етапі компіляції додатку.

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

Переміщення даних (data forwarding) передбачає початок виконання інструкції до готовності усіх операндів.

Передбачення переходів (branch prediction) дозволяє продовжувати вибірку і декодування потоку інструкцій після вибірки інструкції розгалуження (умовного переходу), не чекаючи перевірки умови переходу.

Виконання по припущенню, або спекулятивне виконання (speculative execution) – передбачені після переходу інструкції не тільки декодуються, але й по можливості виконуються до перевірки умови переходу.

обробки команди на більшу кількість незалежних етапів, наприклад:

F: Вибірка (Fetch) – читання команди з пам’яті.

D: Декодування (Decode) – декодування команди і вибірка її вхідних операндів.

E: Виконання (Execute) – виконання заданої в команді операції.

W: Запис (Write) – збереження результату по цільовій адресі.

3. Виконання команд на конвеєрі. Конфлікти по даних та структурні конфлікти. Методи мінімізації структурних та конфліктів по даних. Особливості спекулятивного завантаження. Канали просування даних.

У загальних рисах конвеєрна обробка команд у комп’ютері нагадує збирання виробу на конвеєрі у машинобудуванні. Ефективність збирального конвеєра основана на тому, що виріб послідовно проходить через певні робочі стадії, причому операції на всіх стадіях виконуються одночасно.

Розглянемо найпростішу схему розділення процесу обробки команди на два етапи – вибірка команди і виконання. При виконанні команди існують інтервали часу, коли звернення до пам’яті не здійснюється. Їх можна використати для вибірки наступної команди паралельно з виконанням поточної.

Щоб збільшити швидкість обробки необхідно організувати на конвеєрі не дві, а декілька робочих стадій, тобто розділити цикл обробки команди на більшу кількість незалежних етапів, наприклад:

F: Вибірка (Fetch) – читання команди з пам’яті.

D: Декодування (Decode) – декодування команди і вибірка її вхідних операндів.

E: Виконання (Execute) – виконання заданої в команді операції.

W: Запис (Write) – збереження результату по цільовій адресі.

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

Ще одна причина, по якій неможливо досягти максимальної продуктивності, – наявність у конвеєрі ситуацій, коли він призупиняє свою роботу. Такі ситуації називають конфліктами конвеєра (структурні, конфлікти по даних, конфлікти по керуванню).

Структурні конфлікти. Якщо деяка команда не може бути прийнята у конвеєр внаслідок конфлікту по ресурсах, то кажуть, що в машині присутній структурний конфлікт. Структурні конфлікти можуть виникати, наприклад у машинах, які мають єдиний конвеєр пам‘яті для команд та даних. У цьому випадку коли команда буде містити звернення до пам‘яті за даними, воно буде конфліктувати з вибіркою наступної команди з пам‘яті. Щоб вирішити таку проблему, достатньо просто призупинити конвеєр на один такт, коли відбувається звернення до пам‘яті за даними. Подібна зупинка називається “конвеєрною бульбашкою” оскільки бульбашка проходить по конвеєру, займаючи місце, але не виконуючи ніякої корисної роботи.

Конфлікти по даних– це ситуація, коли конвеєр зупиняється по причині відсутності даних, над якими повинна здійснюватися чергова команда. Конфлікти по даних виникають у тому випадку, коли застосування конвеєрної обробки може змінити порядок звернення за операндами таким чином, що порядок виконання команд буде відрізнятись від порядку команд, що виконувались би на неконвеєрній машині. Цей конфлікт обумовлений тим, що команда очікує запис даних в регістровий файл. Однак ці дані з’являються на виході АЛП по завершенні певного етапу. Цю затримку можна скоротити і навіть усунути, передавши результати першої команди безпосередньо другій команді.

Усунення конфліктів. Багато типів зупинок конвеєра можуть траплятися досить часто. Існують апаратні методи зміни порядку виконання команд для того, щоб мінімізувати зупинки конвеєра. Ці методи отримали загальну назву методів динамічної оптимізації. Основними засобами динамічної оптимізації є

  1. Розміщення схеми виявлення конфліктів у найнижчій точці конвеєра команд таким чином, щоб дозволити команді пересуватись по конвеєру до тих пір, поки їй реально не знадобиться операнд, що є також результатом логічно більш ранньої але ще не завершеної команди. Альтернативним підходом є централізоване виявлення конфліктів на ранній стадії конвеєра;

  2. Буферизація команд, що очікують вирішення конфлікту, та видача наступних, логічно не зв‘язаних команд в “обхід” буфера;

  3. Відповідна організація комутуючих магістралей, що забезпечує безпосередню передачу результату операції в буфер, що зберігає логічно залежну команду що було затримано внаслідок конфлікту або безпосередньо на вхід функціонального пристрою до того, як результат буде записаний у регістровий файл або в пам‘ять.

Однією з особливостей архітектури ІА-64 є можливість спекулятивного завантаження даних (speculative loading). її суть полягає в тому, що процесор має можливість завантажувати дані з пам'яті до того, коли вони знадобляться. Якщо при завантаженні даних виникає виключна ситуація (exception), повідомлення про неї можна відкласти. Суть спекулятивного завантаження даних зводиться до розподілу завантаження даних і їх використання в найбільшому проміжку часу. В результаті процесор не витрачає даремно цикли, очікуючи витягнення даних з більш повільнодіючої пам'яті.

Технологія спекулятивного завантаження даних реалізується на двох рівнях: під час компіляції та виконання команди.

4. Особливості функціонування конвеєрів. Оцінка продуктивності конвеєрів. Конфлікти по керуванню. Статичне й динамічне передбачення переходів. Організація блоку вибірки для мінімізації конфліктів по керуванню.

Конфлікти по керуванню. Команди умовних і безумовних переходів часто зустрічаються у програмах. У типовій програмі вони складають біля 20% загальної кількості команд. Зупинки конвеєра, викликані наявністю таких команд, називаються конфліктами по керуванню. Часові втрати, які відбуваються при цьому, називають накладними витратами переходу.

Конфлікти по керуванню можуть викликати навіть більші втрати, ніж конфлікти по даних. Коли виконується команда умовного переходу, вона може змінити або не змінити значення вказівника команд. Коли команда заміняє вказівник команд на адресу, що було обчислено у команді, перехід називається виконаним, інакше – невиконаним.

Відкладені переходи. Команди умовного переходу можуть служити причиною додаткових конфліктів, пов’язаних з тим, що умова переходу залежить від результату виконання попередньої команди. Поки не завершиться її обробка, процесор не прийме рішення про перехід.

К оманди умовних і безумовних переходів часто зустрічаються у програмах. У типовій програмі вони складають біля 20% загальної кількості команд. Зупинки конвеєра, викликані наявністю таких команд, називаються конфліктами по керуванню. Часові втрати, які відбуваються при цьому, називають накладними витратами переходу. Накладні витрати при такій їх кількості приводять до суттєвого зниження продуктивності комп’ютера. Негативний вплив команд переходу на продуктивність можна суттєво зменшити за рахунок спеціальних методів їх обробки. Для скорочення накладних витрат переходу адресу переходу можна обчислювати раніше. Для скорочення негативних наслідків команд переходів або промахів при зверненні до кеш-пам’яті до складу багатьох процесорів включають складні блоки вибірки, які вибирають команди ще до того, як вони знадобляться, і поміщують їх у чергу. Блок диспетчеризації пересилає команди, розташовані на початку черги, до блоку виконання ( Рис. ). Крім вибірки команд з черги блок диспетчеризації виконує їх декодування. Для ефективного функціонування конвеєра блок вибірки повинен володіти потужними засобами декодування і обробки команд, які дозволяють розпізнати і виконати команди переходу. Його завдання – постійне формування черги команд, що зменшує вплив на роботу конвеєра випадкових затримок при вибірці чергової команди. Якщо зупинка конвеєра викликана конфліктом по даних, блок диспетчеризації не може передавати наступним стадіям команди з черги. Однак, це не заважає блоку вибірки продовжувати вибирати команди і поміщувати їх у чергу. Коли затримка при вибірці команди виникає внаслідок переходу або промаху при зверненні до кеш-пам’яті, блок диспетчеризації може продовжити вибирати команди з черги і передавати наступним блокам для виконання. Рис. 1. Черга команд конвеєра.

На початку роботи черга містить одну команду. При виконанні операції вибірки черга збільшується на одну команду, а при виконанні операції диспетчеризації зменшується на одну команду. Тому протягом перших 4 тактів довжина черги залишається незмінною.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]