Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТ МП.doc
Скачиваний:
187
Добавлен:
10.02.2016
Размер:
5.13 Mб
Скачать

14 Risc-процесори фірми motorola

Вхідний контроль:

  1. Скільки байтів може займати команда мовою Асемблер СISC-процесорів?

  2. Які особливості має архітектура СISC- таRISC-процесорів?

  3. За яких способів способи адресування операндів використовують 32-розрядні універсальні мікропроцесори фірми Motorola?

  4. Які ознаки СISC- чиRISC-архітектури мають мікропроцесориPentiumфірмиIntel?

  5. Скільки регістрів входять до регістрового файла моделі користувача універсальних МП фірми Motorola?

14.1 Risc-процесори PowerPc

Назва RISC (Reduced Instruction Set Computing) означає “комп’ютер зі зменшеним набором команд”, але в сучасних розробкахRISC-мікропроцесорів набір команд є значно розширений і може вміщувати команди оброблення даних з плаваючою точкою. Систему командRISC-процесорів можна схарактеризувати як таку, яка має фіксований формат команд, що значно спрощує керувальний пристрій та зменшує обсяг мікропрограмної пам’яті і призводить до зменшення розміру кристалаRISC-процесорів, зниження їхньої вартості та підвищення тактової частоти. Система команд є вільна від складних та рідко використовуваних команд і способів адресування. Введення фіксованого набору команд забезпечує високу ефективність роботи конвеєра, зменшує кількість тактів простоювання та очікування процесорів, що підвищує їхню ефективність.

Переваги та ефективність RISC-процесорів зумовили їхнє виробництво усіма провідними фірмами, які випускають мікропроцесори:Motorola, Intel, Hewlett-Packard, IBM, Sun Microsystems, MIPS.

За найоптимальніші RISC-процесори таRISC-контролери вважаються розробки консорціуму фірмMotorola, IBM, Apple ComputersMPC6XXPowerPC, а також розробки фірмиMotorolaMFC5XXXColdFire.

До основних особливостей RISC-процесорів можна віднести:

    • розширений обсяг регістрової пам’яті: від 32-х до кількох сотень регістрів загального призначення;

    • використовування в командах оброблення даних лише регістрового адресування; команди звернення до пам’яті використовуються лише при завантаженні та зберіганні вмісту регістрів, а також у командах керування програмою;

    • відмову від апаратної підтримки складних способів адресування – з постінкрементом, предекрементом та деяких непрямих;

    • фіксований формат команд, зазвичай 4 байти, замість змінного формату (від одного до 12-ти байт), що є характерним для CISC-мікропроцесорів;

    • відсутність команд, які не відповідають прийнятому форматові.

За базову модель МП PowerPCможна вважатиМРС604. У цій моделі, як і в сімействіМХ68ХХХ, зберігається принцип виокремлювання певних ресурсів задля розв’язування завдань супервізора та користувача. Це означає, що архітектура процесора вміщує окремі регістри, які входять і до моделі користувача і до моделі супервізора, і має привілейовані команди, які виконуються лише в режимі супервізора.

До регістрової моделі користувача (рис. 14.1), яка є спільною для всього сімейства PowerPC, входять:

    • тридцять два 32-розрядні регістри загального призначення GPR31...GPR0 задля зберігання цілочисельних операндів;

    • тридцять два 64-розрядних регістри FPR31…FPR0 задля зберігання операндів з плаваючою точкою;

    • 32-розрядні регістри прапорців (умов) CRта станівFPSCP (рис. 14.2, а) при обробці даних з плаваючою точкою;

    • 32-розрядні регістри ХЕR, LR, CTR, які використовуються при обробці виключень.

31

0

63

0

GPR0

FPR0

GPR1

FPR1

.

.

.

.

.

.

GPR31

FPR31

31

0

31

0

CR

FPSCR

31

0

31

0

XER(SPR1)

LR(SPR8)

31

0

CTR(SPR9)

Рисунок 14.1 – Регістрова модель користувача

для мікропроцесорів PowerPC

0

1

2

3

4

5

6

7

28

31

LT

GT

EQ

SO

FX

FEX

VX

OX

LT/

FL

GT/

FG

EQ/

FE

SO/

FU

CR0

CR1

CRi

CR7

a) CR

0

1

2

3

24

25

31

OO

OV

CA

Резервовано

SO

б) ХЕR

Рисунок 14.2 – Формати вмісту регістрів CRтаXER

Слід звернути увагу на те, що регістрова модель не вміщує ані програмного лічильника, ані вказівника стека.

Регістр прапорців CRскладається з восьми 4-бітових полівCR7...CR0, молодший з якихCR0 вміщує прапорці, які формуються внаслідок цілочисельних операцій:

    • LT= 1 за від’ємного результату;

    • GT= 1 за додатного ненульового результату;

    • EQ= 1 за нульового результату;

    • SO– набирає значення аналогічного біта у регістріХЕR(рис. 14.2, б).

Поле CR1 вміщує прапорціFX, FEX, VX, OX, які встановлюються при операціях з плаваючою точкою аналогічно регіструFPSCR. Вміст інших полів –CR7...CR2 – встановлюється за результатом операцій порівняння цілих чи дійсних, при операціях з плаваючою точкою, чисел. При порівнянні цілих чисел формуються прапорці:LT(менш),GT(понад),EQ(дорівнює),SO. При порівнянні дійсних чисел встановлюються аналогічні прапорці:FL(менш),FG(понад),FE(дорівнює), а такожFU, який встановлюється y 1, коли один з порівнюваних операндів не є число. Наявність кількох результатів порівняння дозволяє водночас зберігати їх і використовувати за потреби.

Нумерацію розрядів RISC-процесорівPowerPCприйнято в напрямку ліворуч → праворуч, розпочинаючи з 0-го розряду, який є старшим, тобтоD0 – старший розряд даних, аD31 – молодший. Відповідно, вміст регістрів мікропроцесора подається у форматі, коли старший біт має номер 0, а молодший – 31.

Регістр XERвміщує прапорці перенесенняСА, переповненняОV, які встановлюються при виконуванні арифметичних цілочисельних операцій, та прапорець загального переповненняS0, який зберігається таким, що дорівнює 1, до виконування команд завантаження до регістра нового даного.

Регістр зв’язку LRзберігає адреси команд умовного та безумовного переходів чи звернення до підпрограми.

Регістр-лічильник CTRвміщує задану кількість циклів і при виконуванні чергового циклу його вміст зменшується на 1.

На рис. 14.1 у дужках подано також номери певних поіменованих регістрів, які використовуються у певних командах звернення до цих регістрів як до службових.

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

    • зі зниженим енергоспоживанням;

    • зі встановленням порядку big-endianабоlittle-endianоброблення байтів при виключеннях;

    • з обслуговуванням зовнішніх запитів переривань;

    • режим користувача чи режим супервізора;

    • режим виконування операцій над числами з плаваючою точкою;

    • режим трасування;

    • режим задавання базової адреси векторів переривань;

    • режим дозволу трансляції адрес команд та даних за допомогою пристроїв керування пам’яттю IMMU, DMMU;

    • режим з контролем продуктивності процесора тощо.

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

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

Процесор вміщує таймер базового часу, який перемикається тактовою частотою.

На рис. 14.3 подано структуру МП МРС604. Процесор має суперскалярну структуру, яка складається з шести виконавчих пристроїв, які працюють паралельно:

    • блок оброблення розгалужень ВРU;

    • два блоки задля виконування одноциклових цілочисельних операцій SIU1,SIU2;

    • один пристрій задля виконування багатоциклових цілочисельних операцій MIU;

    • пристрій оброблення даних з плаваючою точкою FPU;

    • блок вибирання операндів з пам’яті LSU.

Суперскалярна структура забезпечує одночасне виконування чотирьох команд.

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

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

Конвеєр виконування команд має шість основних каскадів: вибирання команди (1), дешифрування (2), розподілення команд поміж виконавчими пристроями (3), виконування команд (4), запису результатів до буфера (5) та зворотного запису результатів до регістрів SPRчиFPR. Пристрій керування одночасно вибирає з кеша і декодує чотири команди, які розподіляються по відповідних виконавчих пристроях.

Більшість команд виконуються за один такт. Ці команди зреалізовуються за допомогою SIU1 таSIU2, які здійснюють додавання, віднімання, порівняння, зсуви, логічні операції. Цілочисельне множення здійснюється за 3 або 4 такти, ділення – за 20 тактів. Ці операції виконує пристрійMIU. Більшість команд з плаваючою точкою, окрім ділення, виконується за три такти у трьох виконавчих каскадах, які складають структуруFPU. Правильна послідовність

Рисунок 14.3 – Структура мікропроцесора МРС604

здобутих результатів виконування операцій збирається у спеціальному блоці завершення, який побудовано на підгрунті буферної пам’яті типу черги. Зворотний запис результатів з буфера до регістрів GPR, FРRздійснюється відповідно до порядку подавання команд.

Блок оброблення розгалужень BPUзавбачає напрямок розгалуження за алгоритмами статичного та динамічного завбачання, які ґрунтуються відповідно на тексті програми або на результатах попередніх розгалужень. Алгоритми завбачання використовують для прийняття рішень кеш адрес розгалуженьВТАСта таблицю історії розгалужень ВНТ. Кеш ВТАС зберігає 64 адреси переходів, які виконувались попередніми командами. Якщо виконувана команда переходів вміщує адресу, яка збігається з вже записаною у ВТАС, то процесор вказує на розгалуження за цією адресою, тобто перехід здійснюється, а якщо ж адреси у таблиці немає, – то не здійснюється.

У разі надходження команди умовного переходу ВРUаналізує таблицю ВНТ, яка є кеш-пам’яттю, у ній зберігаються 512 адрес попередніх умовних переходів. Для кожної адреси у таблиці є два біти, які визначають ймовірність розгалуження за вказаною адресою: 00 – практично не виконується, 01 – виконується рідко, 10 – виконується часто, 11 – виконується надто часто. Значення цих бітів змінюються після кожної операції умовного переходу: якщо розгалуження відбулося за зазначеною адресою, то ймовірність збільшується на 1 (максимальне значення становить 11); якщо дана адреса не використовується, то ймовірність зменшується на 1 (мінімальне значення 00). Замість адрес з нульовою ймовірністю вводяться нові адреси з команд умовних переходів, які надходять. Розгалуження завбачається, якщо його ймовірність становить 01 або 11. Правильність завбачання перед виконуванням додатково перевіряється після визначення відповідних прапорців у регістріCR. Завбачена команда за адресою, вказаною у команді умовного переходу, вибирається у конвеєр, тобто розгалуження здійснюється; якщо ж адресу переходу не записано в таблиці ВТАС, то виконується наступна команда програми. При перевірці виконування умов переходу за прапорцями у регістріCR, якщо умову не виконано, тобто завбачення було помилковим, процесор звільнює конвеєр від команд, які були помилково вибрані, і завантажує нові команди, розпочинаючи з правильної адреси. Помилково зроблені завбачання призводять до зниження продуктивності процесора.

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

Мікропроцесор МРС604 здійснює роздільне оброблення команд і даних за допомогою двох пристроїв керування пам’яттю –IMMUтаDMMU, які можуть виконувати сегментне, сторінкове та блокове сегментування. Внутрішні кеші команд та даних мають обсяг 16 кбайт.

Інтерфейс мікропроцесора із зовнішніми пристроями забезпечується контролером шини BIU. Для кожного байта адреси та даних передаються та приймаються біти парності, за допомогою яких здійснюється контроль помилок звернення до шини. Шина адреси має 32 розряди, а шина даних – 64 розряди, що підвищує продуктивність мікропроцесора. Припустиме є підмикання зовнішнього кеша 2-го рівня.

Мікропроцесор вміщує спеціалізований послідовний порт задля виконування тестування за стандартом JTAG(IEEE1149.1).

Задля живлення мікропроцесора використовується напруга Vж= 3,3 В. Зниження енергоспоживання (400 мВт) забезпечується при зупині мікропроцесора, коли припиняється виконування команд, але продовжують працювати базовий таймер, система декрементування та блок обслуговування запитів на переривання.

Контрольні питання:

  1. Які основні особливості RISC-процесорів Вам відомі?

  2. Поясніть, з яких регістрів складається регістрова модель користувача процесора МРС604?

  3. Які провідні фірми випускають RISC-процесори?

  4. Які поля має регістр прапорців CR і в який спосіб вони використовуються?

  5. Назвіть режими функціонування процесора МРС604.

  6. Який обсяг регістрової пам’яті використовують сучасні RISC-процесори?

  7. Яке нумерування розрядів прийнято у регістрах RISC-процесорів?

  8. Які вбудовані методи захисту використовує МП PowerPC?

Контрольні питання підвищеної складності:

  1. Доведіть, що процесор МРС604 має суперскалярну структуру.

  2. Як апаратно оброблюються розгалуження за алгоритмами динамічного завбачання?