Смекни!
smekni.com

Універсальні мікропроцесори, застосовувані в ММПС. Мікропроцесори з архітектурою Itanium (IA-64) (стр. 2 из 3)

Тактова частота - 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) –явне паралельне виконання команд. Основні особливості концепції:

1.Велика кількість регістрів;

2.Масштабування по кількості функціональних пристроїв (можливість збільшення числа функціональних пристроїв в подальших моделях мікропроцесора);

3.Явне завдання паралелізму в машинному коді;

4.Предикативне виконання інструкцій;

5.Попереджуюче завантаження даних по припущенню;

Відмінність між функціями архітектури 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 field½PRfield½GPRfield½GPRfield½GPRfield½

де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