RISC-ПРОЦЕСОРИ ФІРМИ MOTOROLA

 

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

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

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

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

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

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

 

RISC-процесори PowerPC

 

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

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

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

До основних особливостей 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, які використовуються при обробці виключень.

 
GPR0 FPR0
GPR1 FPR1
. . . . . .
GPR31 FPR31
CR FPSCR
XER(SPR1) LR(SPR8)
 
CTR(SPR9)

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

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

 

   
LT GT EQ SO FX FEX VX OX LT/ FL GT/ FG EQ/ FE SO/ FU  
           
           
CR0 CR1   CRi   CR7
a) CR
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 (IEEE 1149.1).

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

 

RISC-процесори ColdFire

 

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

1 Чи є довжина команд процесора МРС604 незмінна?

2 Яку розрядність мають шини адреси та шини даних процесора МРС604?

 

RISC-процесори ColdFire (MCF5XXX) мають таку саму модель користувача, як і сімейство М68ХХХ, зреалізовують основні команди та способи адресування цього сімейства. Завдяки цьому МП МСF5XXX можуть використовувати значний обсяг програмного забезпечення, розробленого для М68ХХХ. Для зменшення обсягу пам’яті команд використовуються команди змінної довжини: 2, 4, 6 байт. Низка моделей вміщують на кристалі BIC таймери, паралельні та послідовні порти, контролер переривань та інші периферійні пристрої; за це їх називають інтегрованими. МП Cold Fire слугують для побудови мікропроцесорних систем і можуть входити до складу спеціалізованих мікроконтролерів.

МП вміщують процесорне ядро CFPU з RISC-архітектурою, об’єднану кеш-пам’ять команд/даних обсягом 2 кбайти та блок зовнішнього інтерфейсу, який забезпечує зв’язок з 32-розрядною мультиплексованою системною шиною даних/адрес.

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

Процесор CFPU працює в режимі користувача або супервізора, аналогічно до МП сімейства М68ХХХ, емулює основні команди і способи адресування цих МП. З базового набору команд CFPU не виконує деякі команди та операції з двійково-десятковими числами, що не робить систему команд недостатньо повною.

Задля налагодження МПС на МП МСF5202 надаються такі можливості:

– реалізація режиму налагодження, за якого процесор працює під керуванням зовнішнього налагоджувача;

– контроль внутрішнього стану процесора при виконуванні поточної програми;

– виконування програми із зупином у контрольних точках.

На рис. 14.4 подано структуру інтегрованого мікропроцесора МСF5204, до складу якого входять:

– процесорне ядро CFPU з RISC-архітектурою ColdFire;

– кеш-пам’ять команд ІС обсягом 512 байт;

– статичне ОЗП обсягом 512 байт;

– модуль системного інтерфейсу SIM-М з 8-розрядним портом А;

– блок тестування та налагодження (БТН);

– таймерний модуль;

– асинхронний послідовний інтерфейс (АПІ) типу UART.

До регістрової моделі супервізора додано 32-розрядні регістри RAMBAR та MBAR, які задають базову адресу та режим роботи внутрішнього ОЗП, регістрів різних модулів та блоків МП.

БТН зреалізовує набір режимів та варіантів тестування за стандартом JTAG (IEEE 1149.1).

Внутрішнє статичне ОЗП має обсяг 512 байт. Це ОЗП може розміщуватися, розпочинаючи з будь-якої адреси, яка може задаватися програмно. Керування ОЗП здійснюється шляхом ініціалізації регістра RAMBAR, біти якого можуть маскувати доступ до нього різних типів звернень: в режимі користувача, супервізора при записуванні та зчитуванні даних та команд.


 

 
 


 


Рисунок 14.4 – Структура інтегрованого мікропроцесора MCF5204

 

Модуль системної інтеграції SIM-M, до якого входить блок зовнішнього інтерфейса (БЗІ), забезпечує доступ до шести різних банків даних обсягом по 4 Мбайти, для кожного з яких можна ініціалізувати власний протокол обміну.

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

Блок конфігурації та контролю (БКК) вміщує регістр MBAR, який задає базову адресу блока пам’яті, в якому зберігаються адреси службових регістрів внутрішніх модулів: SIM-M, таймерного та UART (АПІ). У регістрі MBAR є біт достовірності та інші біти, які визначають права доступу до службових регістрів. До складу БКК входить також монітор шини та вартовий таймер. Монітор шини програмується на видавання запиту виключення “помилка звернення до шини” у разі, коли сигнал підтвердження обміну DTACK# = 0 не надходить від зовнішнього пристрою упродовж 128, 256, 512 або 1024 тактів.

Контролер переривань КПР забезпечує обробку чотирьох зовнішніх запитів переривань та чотирьох внутрішніх запитів від вартового таймера, таймерів 1 та 2, АПІ.

Порт А використовується задля паралельного двоспрямованого обміну даними.

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

Асинхронний послідовний інтерфейс АПІ (UART) використовується задля послідовного обміну МП із зовнішніми пристроями і в перебігу приймання контролює помилки парності, порушення кадру, переповнення, порушення зв’язку. Виявлення помилок призводить до формування запиту на переривання. Цей запит оброблюється КПР, так само як і запити після передавання чергового символу, за порожнього буфера передавача, після прийняття символу та заповнення буферної пам’яті приймача.

Основними областями використовування сімейства ColdFire є зв’язок, промислова автоматика, обчислювальна техніка, системи телекомунікацій, контрольно-вимірювальна апаратура тощо.

 

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

1 Якими головними рисами можна схарактеризувати RISС-процесори?

2 Які удосконалення структури порівняно з процесором МРС604 мають RISС-процесори МСF5XXX?

3 З якою метою у процесорі МСF5XXX використовуються команди змінної довжини?

4 Яку структуру має інтегрований процесор МСF5204?

5 У яких пристроях телекомунікацій використовуються RISC-процесори фірми Motorola?

 

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

1 З якою метою в режимі супервізора можна задавати базову адресу та режим роботи внутрішнього ОЗП, регістрів різних модулів та блоків процесора МСF5XXX?

2 З якою метою у процесорі МСF5XXX використовуються 6 банків баних?