Універсальні мікропроцесори, застосовувані в ММПС. Мікропроцесори з архітектурою Itanium (IA-64)
ЗМІСТ
ВСТУП
1. УНІВЕРСАЛЬНІ МІКРОПРОЦЕСОРИ, ЗАСТОСОВУВАНІВ ММПС
1.1 Типи архітектур універсальних мікропроцесорів
1.2.Архітектура PENTIUM
1.2.1 Призначення функціональних блоків
1.3 Архітектура PENTIUM MMX
1.4 Архітектура PENTIUM PRO (P6)
2. МІКРОПРОЦЕСОРи з АРХіТЕКТУРОЮ ITANIUM (IA-64)
2.1 Формати та засіб обробки команд
2.2 Структурна схема ITANIUM
2.3 Призначення програмних регістрів
ЛІТЕРАТУРА
ВСТУП
Тема реферату «Універсальні мікропроцесори, застосовувані в ММПС. Мікропроцесори з архітектурою Itanium (IA-64)» з дисципліни «Мультимікропроцесорні системи».
Мультимікропроцесорні системи (ММПС) - це системи, що мають два й більше компонент, які можуть одночасно виконувати команди. Підпорядкованими процесорами можуть бути спецпроцесори, розраховані на виконання певного типу завдання або процесори широкого застосування. Спецпроцесори - співпроцесори, процесори вводу-виводу.
У міру зменшення відносини вартість/продуктивність стає більше економічним застосовувати кілька мікропроцесорів (далі ─ МП), замість одного складного
Крім поліпшення економічних показників системи, мультипроцесорні конфігурації забезпечують кілька позитивних якостей, відсутніх в однопроцесорній конфігурації.
Кілька процесорів краще пристосовуються під вимогу конкретного застосування, крім витрат на непотрібні можливості централізованої системи. Більше того, модульність ММПС дозволяє в міру необхідності вводити додаткові процесори.
У ММПС завдання розподіляються між модулями. При виникненні відмови у системі простіше та дешевше знайти й замінити несправний процесор, чим заміняти (відшукувати) елемент, що відмовив, у складному процесорі.
УНІВЕРСАЛЬНІ МІКРОПРОЦЕСОРИ, ЗАСТОСОВУВАНІ В ММПС
1.1 Типи архітектур універсальних мікропроцесорів
Домінуюче положення на ринку мікропроцесорів займають мікропроцесори фірми Intel - 90 % усього виробництва, інші 10 % - RISC процесори. Існують наступні типи архітектур МП:
- архітектура х86 - фірма Intel (Pentium P5,P6, P-PRO, P-MMX), фірма AMD (K5,K6), фірма CYRIX (M1,M2);
- архітектура PA - фірма HP (PA-8000);
- архітектура ALPHA - фірма DEC (ALPHA 21064, 21164,21164A);
- архітектура SPARS - фірма SUN (лінія SPARS);
- архітектура MIPS - компанія SILICON GRAPHICS (лінія MIPS R-X (R1000));
Ті самі МП використаються в ПЕОМ, робочих станціях і супер-ЕОМ. У двох останніх випадках найчастіше використаються симетричні МП і обчислювальні системи з масовим паралелізмом.
На сьогоднішній день всі основні виробники мікропроцесорів мають приблизно рівні технологічні можливості, тому в боротьбі за основну характеристику (тактова частота) виходить фактор архітектури.
На даний момент часу існують два напрямки розвитку архітектури:
- SPEED DAEMON - досягнення високої продуктивності за рахунок підвищення тактової частоти;
- BRAINIAC - досягнення високої продуктивності за рахунок ускладнення логіки планування обчислень і внутрішньої структури МП. Загальна особливість всіх МП - високошвидкісна обробка 64-розрядних операндів з фіксованою й плаваючою крапкою.
1.2 Архітектура PENTIUM
Малюнок 1. Структура мікропроцесора Pentium 4
Технічні характеристики:
- тактова частота від 60 до 200 Мгц;
- близька до суперскалярної архітектура;
- роздільні К-П даних і команд;
- пророкування переходів;
- високопродуктивні операції із плаваючою крапкою;
- удосконалена 64-розрядна шина даних;
- наявність засобів забезпечення цілісності даних;
- SL-технології із засобами керування;
- підтримка багатопроцесорності;
- підтримка різних розмірів сторінок пам'яті;
- моніторинг продуктивності.
Суперскалярна організація (виконання декількох команд за один такт) здійснюється за рахунок двох конвеєрів.
Подвійний конвеєр Pentium виконує целочислені команди в п'ять етапів:
передвиборка;
декодування 1;
декодування 2;
виконання;
запис результатів.
При цьому кілька команд можуть перебувати на різних етапах виконання (конвеєри залежні, тобто при зупинці одного, зупиняється й другий ).
мікропроцесор pentium itanium
1.2.1 Призначення функціональних блоків
К-П частково асоціативна з розміром рядка рівним 32 байтам. Буфер TLB перетворить адресу комірки зовнішньої пам'яті у відповідну адресу даних у К-П. К-П даних використає метод зворотного запису й протокол MESI. Наявність блока предсказування переходів - перший тип МП із такою характеристикою. Виконання твердження переходів здійснюється через буфер BTB і два буфери попередньої вибірки. Перший буфер - для попередньої вибірки команд у припущенні, що переходу немає. Другий буфер – під час передвиборки використується буфер BTB, у якому зберігається вміст при виконанні переходу. Підтримуються й вкладені цикли, тому що BTB зберігає кілька адрес переходів і до 256 результатів переходів.
Операції із плаваючою крапкою
Блок операцій із плаваючою крапкою розташований усередині кристала й використовує складні 8-рівневі конвеєри й внутрішні функції. Більшість команд із плаваючою крапкою починають виконуватися в одному із цілочисельних конвеєрів, а потім передаються на конвеєри із плаваючою крапкою. Функції додавання, ділення й множення реалізовані як внутрішні функції. Блок із плаваючою крапкою Pentium у порівнянні з i486 виконує операції в 10 разів швидше.
64-розрядна шина даних
При цій шині даних обмін МП із пам'яттю здійснюється зі швидкістю 528 Мбайт /с, тобто в 5 разів перевищує максимальну швидкість IntelDX2 66 Мгц - 105 Мбайт/с.
Розширена шина даних підтримує потік команд і даних, переданих суперскалярному виконавчому процесорному ядру, що сприяє підвищенню інтенсивності обробки. У результаті загальна продуктивність в 2,5 рази вище IntelDX2.
Крім цього, Pentium організує конвеєризацію циклів шини, що дозволяє почати другий цикл до завершення першого. Це дає підсистемі пам'яті більше часу для декодування адреси й внаслідок чого можна застосовувати більше повільні й менш дорогі елементи пам'яті, що відбивається на вартості системи. Крім того, збільшенню пропускної здатності й надійності системи сприяє підтримка пакетного читання й запису, перевірка парності адреси й даних.
Для підвищення швидкості виконання послідовних операцій запису в пам'ять Pentium має два буфери запису ( по одному на кожний конвеєр), завдяки яким процесор може продовжувати роботу, виконуючи наступні команди, хоча результат однієї з поточних команд ще не записаний в пам'ять через зайнятість шини.
Засоби забезпечення цілісності даних
Забезпечення внутрішнього виявлення помилок (наявність бітів парності внутрішніх буферів процесора), а також тестування за допомогою функціональної надмірності (використання двох МП - основного й що перевіряє). У парі ці МП виконують паралельні обчислення. Один МП порівнює результати обчислень із результатами обчислень другого МП. У випадку непорівняння результатів генерується переривання.
Керування енергоспоживанням
Здійснюється на двох рівнях - на рівні МП і на рівні системи. На першому рівні - при виконанні завдань, не потребуючі виконання інтенсивних обчислень (редагування текстів), переклад МП у режим зі зниженою тактовою частотою й зниженою напругою живлення. Можливий навіть SL- режим (сплячий). На другому рівні використається режим SMM (System Management Mode), що контролює енергоспоживання у всім ПК (включаючи периферійні пристрої). Цей режим забезпечує інтелектуальне керування системою, що дозволяє МП сповільнювати функціонування, припиняти або повністю припиняти роботу окремих системних компонентів.
Підтримка мультипроцесорності
Здійснюється з використанням протоколу когерентності К-П MESI, а також за допомогою контролера багатопроцесорних переривань, що підтримує до 60 процесорів і 2-входового контролера К-П другого рівня, що дозволяє двом процесорам спільно використати одну К-П другого рівня.
Підтримка різних розмірів сторінок пам'яті
Для першого режиму розмір сторінок дорівнює 4 Кб, а для другого - 4 Мб. Для програмного забезпечення цей режим прозорий. Він уведений для зменшення частоти перемикання сторінок у складних графічних додатках і ядрі операційної системи.
Моніторинг продуктивності
Це засіб, що дозволяє проектувальникам системи й розроблювачам додатків оптимізувати апаратне й програмне забезпечення, завдяки виявленню в програмному коді «вузьких місць». Розроблювачі можуть спостерігати й підраховувати такти для внутрішніх процесорних подій, що впливають на продуктивність операції читання й записи, на промах і влучення в К-П, перериванню, використання системної шини.
1.3 Архітектура PENTIUM MMX
МП Pentium ММХ містить у собі всі функції Pentium плюс 57 додаткових команд (реалізація мультимедійних алгоритмів), цифрова обробка сигналів, операції над векторами, згортка, перетворення Фур'є.
Також реалізовані подвоєні обсяги К-П даних і команд ( по 16 Кбайт кожна), розширена конвеєризація - 6 команд. Поліпшено логіку пророкування переходів і здійснена більше глибока буферізація пам'яті.
Для виконання додаткового набору команд використається ММХ - пристрій і блок регістрів із плаваючою крапкою. Додані 8 ММХ регістрів (ММ0-ММ7). Вони фізично сполучені з 64-розрядними регістрами із плаваючою крапкою тому що можуть бути використані тільки над операціями із ММХ даними.
Швидкість виконання мультимедійних операцій на 60 % вище в порівнянні з Pentium.
1.4 Архітектура PENTIUM PRO (P6)
Застосовується при проектуванні старших моделей робочих станцій і мультипроцесорних систем. Ефект використання досягається тільки для 32-розрядних додатків. Нова конструкція корпуса, що складається із двох мікросхем, поміщених в один керамічний корпус і не погодиться з виводами Pentium. У випадку використання Pentium-PRO необхідний перехід на нові системні плати.
Тактова частота - 133 Мгц (для технології 0,6мкм), і 200 Мгц (для технології 0,35мкм). Потужність розсіювання - 14 Вт.
Висока продуктивність у Р-РRO забезпечується за рахунок використання нововведень в архітектурі й технології, а саме - рознесена архітектура, динамічне виконання команд, подвійна незалежна шина.
Нова архітектура К-П – DIB -передбачає використання різних шин для з'єднання процесорного ядра з К-П і основною оперативною пам'яттю. Перша шина працює на тактовій частоті процесора, друга із частотою системи. Такий поділ шин дозволило в три рази прискорити обмін процесора з підсистемою пам'яті.Завдяки цьому відпадає необхідність у зовнішньої К-П.
МП містить роздільні К-П першого рівня для даних і команд, кожна обсягом 8 Кбайт, і об'єднану К-П другого рівня. К-П даних першого рівня двухпортова, що не блокує , підтримує одну операцію завантаження й одну операцію запису за такт.
Інтерфейс К-П другого рівня працює з тактовою частотою центрального процесора й може передавати 64 біта за такт. Зовнішня шина МП працює з 1/2, 1/3, 1/4, тактової частоти центрального процесора.
Малюнок 2. Структура PENTIUM PRO
BUI - пристрій інтерфейсу із шиною;
IFU - пристрій підкачування команд ( з К-П команд);
BTB - буфер адрес переходів;
ID - декодер команд;
MIS - планувальник мікрокоманд;
RAT - таблиця псевдонімів регістрів;
ROB - буфер переупорядкування;
RRF - файл регістрів вивантаження;
RS - станція, що резервує;
IEU - пристрій цілочисельних команд;
FEU - пристрій команд із плаваючою крапкою;
AGU - пристрій генерації адреси;
MUI - пристрій інтерфейсу з пам'яттю;
DCU - пристрій керування К-П даних;
МОВ - буфер переупорядкування звертань до пам'яті
L2 - К-П другі рівні.
512-елементний буфер адрес переходів (ВТВ -Branch Target Buffer) дозволяє скоротити число тактів при вибірці рядків з К-П пристроєм підкачування команд. Процес вибірки конвеєризований. Новий рядок вибирається кожний такт центрального процесора. Три паралельних декодери кожний такт перетворюють кілька команд архітектури х86 у набори мікрооперацій.
Таблиця псевдонімів регістрів використається для перейменування регістрів. Результат перейменування посилає в пристрій резервування й у буфер переупорядкування.
Мікрооперації з перейменованими операндами містяться в чергу в пристрої резервування, де очікують значень операндів, що надходять незалежно від декількох джерел. Даними є результати виконаної мікрооперації, адреси із ВТВ, уміст регістрів.
Вибір мікрооперацій із черги й динамічне виконання здійснюється з обліком їхніх істинних залежностей по даним, а також залежно від доступності виконавчих пристроїв (IEU, FEU,AGU). Порядок, у якому виконуються мікрооперації, у загальному випадку відрізняється від їхнього розташування у вихідній програмі.
При плануванні звертань до пам'яті використається пристрій резервування, пристрій генерації адреси, і буфер переупорядкування звертань до пам'яті.
Мікрооперація стає кандидатом на вивантаження відразу, як тільки вона виконана, визначена адреса переходу й отриманих результатів спрямовані до нужденній у них мікрооперації. Для відновлення первісного порядку мікрооперацій використаються тимчасові мітки мікрооперацій у буфері переупорядкування й файлі регістрів вивантаження. Процес вивантаження повинен забезпечити не тільки відновлення первісного порядку мікрооперацій, але й гарантувати правильну обробку переривань і помилок, а також скасовувати всі або частина результатів, отриманого після неправильного пророкування розгалуження. У момент вивантаження мікрооперації її результат з буфера переупорядкування міститься у файл регістрів вивантаження.
2. МІКРОПРОЦЕСОРи з АРХіТЕКТУРОЙ ITANIUM (IA-64)
Початок випуску –2001 рік, технологія 0,18мкм з тактовою частотою 660,733,800 Мгц, концепція EPIC (Explicity Parallel Instruction Computing) –явне паралельне виконання команд. Основні особливості концепції
Велика кількість регістрів
Масштабування по кількості функціональних пристроїв (можливість збільшення числа функціональних пристроїв в подальших моделях мікропроцесора)
Явне завдання паралелізму в машинному коді
Предикативне виконання інструкцій
Попереджуюче завантаження даних по припущенню
Відмінність між функціями архітектури i86 і ITANIUM приведені в табл.1
Таблиця 1
Архітектура i86 |
Архітектура ITANIUM |
Використовування складних інструкцій змінної довжини, оброблюваних по одній |
Використовування простих інструкцій однакової довжини, згрупованих по три в групі |
Переупорядковування і оптимізація інструкцій під час виконання |
Переупорядковування і оптимізація інструкцій під час компіляції |
Спроби прогнозу переходів |
Виконання декількох послідовностей команд одночасно без прогнозу переходів |
Завантаження даних з пам'яті у міру потреби |
Завантаження даних з пам'яті до того, як вони будуть потрібно |
Всі функціональні пристрої конвейєризовані ( 10 тактів) і одночасно може виконуватися до 6 команд. Пам'ять тимчасового зберігання використовується для передачі результатів виконання команд на вхід іншої команди, минувши запис в регістри. Пряма адресація – 18 Гбайт оперативної пам'яті. Кеш-пам'ять трьохрівнева, де 1 рівень – внутрішня кеш-пам'ять команд і кеш-пам'ять даних місткістю 16 Кбайт кожна, 2 рівень – кеш-пам'ять команд і даних загальною місткістю 96 Кбайт, 3 рівень –зовнішня ( в картріджі ) кеш-пам'ять команд і даних місткістю до 4 Мбайт.
2.1 Формати та засіб обробки команд
Команди мікропроцесора групуються компілятором в зв'язку завдовжки 128 біт.
Формат зв'язки Т К1К2К3 – де Т – 8-бітова зв'язка, вказуюча на можливість паралельного виконання команд.
К1 | К2| К3 – всі три команди виконуються паралельно;
К1 & К2 | К3 – спочатку виконується перша команда, потім паралельно друга і третя;
К1 |К2 & К3 - перша і друга команди виконуються паралельно, потім виконується третя команди;
К1 & К2 & К3 - послідовне виконання всіх трьох команд.
При розподілі команд по функціональних пристроях мікропроцесор аналізує одночасно дві послідовні зв'язки команд. Відповідно до шаблона вибираються взаємно незалежні команди і призначаються на функціональні
2.2 Структурна схема ITANIUM
Довжина команд фіксована, формат команд наступний:
(gp) mnemonic .comp1.comp2 dest =src,
деgp - предикативний регістр і якщо його значення рівно 1 команда виконується
mnemonic – мнемонічне ім'я інструкції
.comp1.comp2 - завершувачі (модифікатори) команди
dest, src - поле приймача і поле джерела.
Більшість команд IA-64 має два і більш джерел і один приймач і їх формат і умовний запис більш близький до команд RISC – архітектура.
Малюнок 3. Структурна схема ITANIUM
Формат коду операції наступний
Opcode fieldPRfieldGPRfieldGPRfieldGPRfield
деOpcode – 13-бітове поле коду операції
Field - 6-бітове поле предиката
Prfield -7 – бітове поле ідентифікатора
GPRfield -7 – бітове поле ідентифікатора регістрів загального призначення.
Типи даних, що використовуються в архітектурі – цілі (1,2,4.8 байт) і з плаваючою комою (одинарний, подвійний і розширений подвійний формат), а також покажчики, місткістю 8 байт.
2.3 Призначення програмних регістрів
GR0-GR127 – цілочисельні регістри загального призначення, з яких GR0 – використовується тільки для читання, GR1-GR32 – зберігання глобальних даних, GR33-GR127 –96 стекових регістрів. Місткість регістра – 64 біти і один біт (NaT) достовірності значення відповідного результату. Якщо дані регістра визначені як незатребувані (в регістрі міститься результат спекулятивної команди), то біт достовірності рівний 0 і вміст регістра не використовується
FR0-FR127 – регістри формату плаваючої коми, місткістю 82 біт, з яких FR0, FR1 – доступні тільки для читання, FR2- FR33 – 32 глобальні регістри, інші 96 що обертаються регістра (циклічних)
PR0-PR63 - предикативні регістри, з яких 16 статичних, інші 48 що обертаються. Предикативні регістри служать для ухвалення рішення про виконання команди. Команда виконується, якщо відповідний їй предикативний регістр рівний 1.Если предикативний регістр не заданий явно, за умовчанням приймається регістр PR0, значення якого завжди рівно 1
BR0-BR7 – регістри галужень, в яких зберігаються призначені адреси галужень команд
AR0-AR127 –прикладные регістри, які використовуються для допоміжних функцій.
Компілятор IA-64 використовує технологію відзначених галужень. Ця технологія припускає, що команди, що належать різним гілкам алгоритму, позначаються різними значеннями в полі предиката команди. Формування зв'язок команд здійснюється в незалежності від значень предиката. Тим самим забезпечується можливість одночасного виконання команд, що належать різним гілкам алгоритму. В процесі виконання програми, після результати команд із значенням предиката, відповідного даній гілці. Проте не всі гілки наголошуються компілятором для паралельного виконання, відмітка здійснюється для коротких альтернативних гілок і якщо гілка не наголошується, то передбачається мікропроцесором в процесі виконання програми.
Принцип прогнозу виконуваних інструкцій приведений на мал.4
Малюнок 4. Принцип прогнозу виконуваних інструкцій
Всі команди гілки 1 мають посилання на регістр прогнозів (предикативний) PR1, гілки 2 – PR2. Обчисливши умову переходу процесор відкидає помилковий результат обчислень. В результаті процесор може переупорядкувати команди відповідним чином.
Команда 1 |
Команда 2 |
Команда 3 |
Команда 4 |
Команда 7 |
Команда 5 |
Команда 8 |
Команда 6 |
Команда 9 |
Наступна особливість архітектури IA-64 - попереднє (спекулятивна) завантаження даних в кеш-пам'ять. Єство спекулятивного завантаження – рознесення в часі команд завантаження даних з пам'яті і команд їх використовуючи. Функції компілятора в цьому випадку – аналіз початкового тексту програми і завантаження команд перевірки на доступність. Схема спекулятивного завантаження приведена на мал. 5.
Малюнок 5. Схема спекулятивного завантаження
Компілятор по можливості вставляє команди спекулятивного завантаження і перевірки. Якщо у разі спекулятивного завантаження виникає особливий випадок, процесор не поспішає повідомляти про це програмне забезпечення.
Організація пам'яті також унікальна, тобто відмінна від всіх попередніх реалізацій мікропроцесорів фірми INTEL. Місткість адресного простору 264 і воно лінійне, немає ні сегментації ні сторінкової адресації. В даному адресному просторі немає конкретно закріплених фізичних адрес, тобто весь діапазон адресації програмно доступний. Для забезпечення сумісності з раніше розробленими 32-додатками в IA-64 передбачається використовування двох режимів VLIW і CISC. Перемикання здійснюється програмно за допомогою спеціальної команди.
Реалізація циклів також відмінна від класичної і більш схожа з архітектурою RISC процесорів. Цикл ділиться на три фази – пролог, ядро і епілог. Апаратна підтримка на кожній з фаз – механізм обертання регістрів, спеціальні команди, спеціальні прикладні регістри ( лічильник циклів і лічильник епілогів). В мікропроцесорі не використовується динамічне перейменування регістрів, натомість – схема циклічної заміни використаних регістрів (обертання регістрів). При цьому набір що використовуються в циклі регістрів розглядається як фрейм, що відображається на регістровий файл, починаючи з деякою позицією – бази фрейма. При переході на наступну ітерацію циклу змінюється база фрейма – збільшується (зменшується) на величину рівну кількості регістрів у фреймі.
ЛІТЕРАТУРА
1. Б.В.Шевкопляс Микропроцессорные структуры. Инженерные решения М.: Радио и связь, 1990
2. В.Шевкопляс Микропроцессорные структуры. Инженерные решения. Дополнение первое. М.: Радио и связь, 1993
3.М.Гук Аппаратные средства IBM PC С.Петербург Питер 2000
4. В.Корнеев А.Киселев Современные микропроцессоры Санкт-Петербург, БХВ – Петербург 2003
5. Локазюк В.М. и др Микропроцессоры и микроЭВМ в производственных системах Киев Издательский центр Академия 2002
6. В.В.Сташин А. В. Урусов О.Ф. Мологонцева Проектирование цифровых устройств на однокристальных микроконтроллерах Л. Энергоатомиздат
7. Под ред.А.Д.Викторова Руководство пользователя по сигнальным микропроцессорам семейства ADSP-2100 Санкт- Петербургский государственный электротехнический университет. Санкт- Петербург 1997
8. М.Предко Руководство по микроконтроллерам в 2-х томах М: Постмаркет, 2001