1. Тема роботи: Проектування прототипу скалярного RISC-комп’ютера із заданою
підмножиною системи інструкцій.
2. Вхідні дані:
Індекс
Група інструкцій
Варіант
Пересилання
Арифметичні та логічні
Керування
17
LHU, SB
ADDI, SUBI, XORI
JR
3. Вихідні дані:
Розширена, детальна структурна схема прототипу скалярного RISC-комп'ютера з поданням структури, інформаційних та керуючих зв'язків інформаційного тракту i пристрою керування з врахуванням конкретизованої за завданням підмножини системи інструкцій. Внутрішня структура пристроїв інформаційного тракту, апаратура пристрою керування. Підсистема уводу/виводу інформації. Детальна мікропрограма виконання інструкцій.
Запропонувати принцип конвеєризації структури інформаційного тракту разом із конвеєрною мікропрограмою керування. Детальні креслення структури кешів даних та інструкцій з поясненням принципу побудови цих кешів та їхнього зв'язку з модифікованою гарвардською архітектурою.
4. Пояснювальна записка повинна містити:
- титульну сторінку;
- анотацію;
- зміст;
- конкретизовані та розширені вихідні дані на проектування;
- аналітичний розділ з роз'ясненням та аналізом основних принципів побудови скалярних RISC-комп'ютерів на прикладі визначених на реалізацію інструкцій;
- розділ з описом синтезу та розробки структурної схеми;
- основні результати роботи (висновок);
- перелік наукових першоджерел: монографій, статей, патентів і підручників.
Завдання видано________________________
Термін здачі роботи_____________________
Керівник_______________________________
Зміст
ВСТУП 5
1 СТРУКТУРА RISC КОМП’ЮТЕРА 7
1.1 Основні принципи побудови RISC комп’ютерів 7
1.2 Побудова інформаційного тракту 8
2 ПАМ’ЯТЬ 13
2.1 Кеш пам’ять 13
2.2 Основна пам’ять 14
3 ПРИСТРІЙ КЕРУВАННЯ 17
ВИСНОВОК 21
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 22
ДОДАТКИ 23
ВСТУП
Набір команд ранніх архітектур процесорів проектувався з врахуванням особливостей мов високого рівня, для полегшення ручного програмування в машинних кодах (асемблерах), роботи компіляторів, і т.д. Це стало причиною появи великої кількості інструкцій, всіх можливих типів адресації. Пізніше цей принцип побудови комп’ютерів був названий CISC архітектурою (архітектурою з повним набором команд).
Але ще в середині 1970-х різні дослідники (зокрема, з IBM) показали, що більшість комбінацій інструкцій і ортогональних методів адресації не використовувалися в більшості програм, що породжуються компіляторами того часу. Також було виявлено, що в різних комп’ютерах з мікрокодним виконанням інструкцій час їх виконання був більшим, ніж комбінація простіших інструкцій, які дають той самий результат. Це було викликано тим, що багато інструкцій розроблялися в поспішку, і тому, були погано оптимізовані.
Вивчення цих проблем підштовхнуло розробників до розробки нової архітектури, в якій операції були б максимально швидкими, інструкції простими, а процесор ефективно конвеєризований, що дає змогу збільшити тактову частоту його роботи.
Такий підхід привів до побудови нової архітектури – RISC (Restricted (reduced) instruction set computer – комп’ютер зі скороченим набором інструкцій). ЇЇ мета - зробити інструкції настільки простими, щоб вони легко конвейеризировались і витрачали не більше одного такту на кожному кроці конвеєра на високих частотах.
Пізніше було відмічено, що найбільш значуща характеристика RISC в розподілі інструкцій для обробки даних і звернення до пам'яті - звернення до пам'яті йде тільки через інструкції load і store, а усі інші інструкції обмежені внутрішніми регістрами. Це спростило архітектуру процесорів : дозволило інструкціям мати фіксовану довжину, спростило конвеєри і ізолювало логіку, що має справу із затримками при доступі до пам'яті, тільки в двох інструкціях. В результаті RISC -архитектури стали називати також архітектурою load/store.
Зменшення набору машинних команд в RISC-архітектурі дозволило розмістити на кристалі обчислювального ядра велику кількість регістрів загального призначення. Збільшення кількості регістрів загального призначення дозволило мінімізувати звернення до повільної оперативної пам'яті, залишивши для роботи з RAM тільки операції читання даних в регістр і запис даних з регістра в пам'ять, всі інші машинні команди використовують як операнди регістри загального призначення.
Метою даної курсової роботи є спроектування прототипу комп’ютера з RISC архітектурою, який містить 6 команд: завантаження і вивантаження в пам'ять, три арифметичні команди і команда переходу. При виконанні курсової роботи дотримувались основні принципи RISC архітектури.
СТРУКТУРА RISC КОМП’ЮТЕРА
1.1 Основні принципи побудови RISC комп’ютерів
При побудові RISC процесора слід дотримуватись наступних загальноприйнятих вимог:
Довільна комп'ютерна команда, незалежно від її типу, має виконуватися за один такт (чи однотактовий цикл).
Система команд має містити мінімальну кількість спрощених команд, що статистично переважають у програмах.
Команди обробки даних мають реалізуватися лише у формі "регістр-регістр". Обміни з основною пам'яттю виконуються лише за допомогою команд завантаження/запису.
Пристрій керування та арифметико-логічний пристрій процесора мають орієнтуватися на виконання мінімальної кількості спрощених команд, що статистично переважають у програмах, причому в системі команд відносно небагато операцій та режимів адресації операндів (способів адресації).
Дешифрування команд із спрощеними форматами має виконуватися лише апаратно, аби збільшити швидкодію.
У системі команд відносно небагато операцій та режимів адресування операндів (способів адресації).
Регістрова пам'ять має включати велику кількість програмно-доступних регістрів.
Високий рівень конвеєризації виконання команд.
Застосовується багато рівнів ієрархії пам’яті.
При цьому необхідно проводити оптимізацію структури процесора, що проектується, з метою забезпечення найшвидшого виконання обраних команд.
1.2 Побудова інформаційного тракту
За основу побудови інформаційного тракту була використана архітектура комп’ютера DLX, придумана Джоном Хеннесі та Дейвідом Паттерсоном в навчальних цілях. Ця архітектура узагальнює такі, як : AMD 29000, DEC3100, НР850, ІВМ801, Inteli860, MIPS М/120А, MIPS M/1000, M88000, RISCl, SGI 4D/60, SPARCstation-1, SUN-4/110, SUN-4/260.
Перший крок для розробки комп’ютера з простою системою команд це синтез структурної схеми машини, що ґрунтується на часовій діаграмі виконання репрезентативної інструкції процесора, тобто такої, яка має найбільшу складність та найдовший час виконання. В даному випадку такою є інструкція завантаження пів слова з пам’яті (згідно завдання).
Формат команди : LHU R1, Mem(R2).
Часовий опис можна подати впорядкованою послідовністю виконання мікодій. Тобто мікропрограмою :
Вибирання інструкції з пам’яті інструкцій за адресою з регістру лічильника команд PC.
Вибирання вмісту комірки R2 з регістрового файлу.
Обчислення значення ефективної адреси.
Вибирання з пам’яті даних, що знаходяться за вище обчисленою ефективною адресою, та надсилання їх до програмно не досяжного буферного регістру LMD.
- Наступне пересилання вмісту регістру LMD до регістрового файлу.
Отже, на основі вище описаної послідовності виконання мікродій в процесорі можна припустити, що часова складність даної інструкції є 5, тобто для виконання даної інструкції процесор повинен складатися з п’яти функціональних блоків.
Згідно концепції DLX машини ці 5 блоків мають назви, та виконують наступні функції :
IF : вибирання поточної інструкції з пам’яті інструкцій;
ID : декодування інструкції та вибирання операндів;
EX : виконання дій, притаманних інструкції;
MEM : доступ до пам’яті (читання чи запис даних у пам’ять);
WB : зворотній запис результатів до комірок регістрового файлу.
Залежно від структури процесора команда може бути виконаною за різний час, який буде складатися з суми проміжків часу, необхідних для виконання кожної фази. Розглянемо підхід до побудови процесора з тим, щоб задовольнити вимогу, згідно з якою довільна комп'ютерна команда, незалежно від її типу, має виконуватися за один такт (чи однотактовий цикл), яка ставиться до процесорів комп'ютера з простою системою команд.
Для того, щоб команда виконувалася за один такт, потрібно апаратно відобразити алгоритм її виконання, тобто поставити у відповідність кожному оператору алгоритму функціональні вузли процесора, які їх виконують, та з'єднати їх між собою. Ця відповідність для заданих 6 команд наведена в таблиці 1.1 та таблиці 1.2
Таблиця 1.1 Мікродії виконання команд LHU,SB,ADDI
LHU
SB
ADDI
IF
IR = IM [PC];
NPC = PC + 4;
ID
A=Regs [ IR6..10 ];
Imm=(IR16 )16 ## IR16..31;
A=Regs [ IR6..10 ];
Imm=(IR16 )16 ## IR16..31;
B=Regs [ IR11..15 ];
A=Regs [ IR6..10 ];
Imm=(IR16 )16 ## IR16..31;
EX
ALUout = A + Imm;
Zero(cond) = 0;
MEM
LMD = DM[ALUout];
DM [ALUout] = B;
WB
Regs [ IR11..15 ] = LMD;
Regs[IR11..15]=ALUout;
Перший оператор IF виконується на наступних елементах: програмному лічильнику PC (Program Counter), суматорі ADD та двох регістрах NPC і IR. Вміст програмного лічильника PC визначає адресу команди в основній пам'яті. Комбінаційний суматор ADD обраховує адресу наступної за чергою виконання команди. При цьому враховано, що впорядкована послідовність команд (програма) складається з чотирибайтових команд (усі команди мають формати довжиною 32 біти), які розміщено в основній пам'яті за послідовними адресами, кратними чотирьом.
Таблиця 1.2 Мікродії виконання команд SUBI,XORI,JR
SUBI
XORI
JR
IF
IR = IM [PC];
NPC = PC + 4;
ID
A=Regs [ IR6..10 ];
Imm=(IR16 )16 ## IR16..31;
A=Regs [ IR6..10 ];
Imm=(IR16)16 ## IR16..31;
A=Regs [ IR6..10 ];
EX
ALUout = A - Imm;
Zero(cond) = 0;
ALUout = A xor Imm;
Zero(cond) = 0;
PC = A
MEM
WB
Regs[IR11..15]=ALUout;
Regs[IR11..15]=ALUout;
Через це константа зсуву адреси (пересування покажчика на наступну за чергою команду) дорівнює +4. Визначене за допомогою суматора значення адреси завантаження наступної команди зберігається у регістрі NPC (next PC). Зчитаний з пам'яті інструкцій IM код поточної команди записується до регістра команди IR.
Поля щойно вибраної команди містять адреси програмно-доступних регістрів регістрового файла процесора, та значення безпосереднього операнда. Вміст зазначених полів формату команди в рамках оператора ID надсилається на адресні входи регістрової пам'яті Regs, на який подається сигнал читання, а відповідні надісланим адресам коди операндів завантажуються до внутрішніх, програмно-недосяжних, тобто службових, регістрів А і В.
Існує ще один тип операнда з назвою "безпосередній" (Imm). Його задають безпосередньо у форматі команди. Як правило, довжина безпосереднього операнда не перевищує половини довжини формату команди. В комп'ютері DLX безпосередній операнд має довжину 32/2 = 16 бітів. У той самий час бажано зафіксувати довжину формату даних такою, що дорівнює довжині формату команди, адже різноманіть довжин форматів суттєво пригальмовує комп'ютер. Якщо усі формати даних, як і формати команд, матимуть довжину 32 біти, тоді безпосередньому операнду не вистачатиме ще 16 бітів, аби бути стандартним за довжиною. Тому безпосередній операнд за допомогою блоку Sign.Extension розширюється до 32 біт, враховуючи знак операнду.
В цілому можна нарахувати два можливі операнди на вході арифметико-логічного пристрою ALU процесора: з регістрів А, Imm, та NPC. Операнд NPC опрацьовується в ALU при виконанні команди умовного переходу, коли потрібно вирахувати нову адресу переходу, що відрізняється від адреси, яка в даний момент міститься в регістрі NPC. Вибирання двох операндів на вхід ALU із чотирьох можливих виконується за допомогою мультиплексорів, розташованих на його входах.
Результат операції з ALU тимчасово запам'ятовується у проміжному службовому регістрі ALUout. Якщо результат операції інтерпретується як число, тоді воно заноситься до комірок регістрового файла. Якщо результатом операції є адреса, тоді ця адреса надсилається до мультиплексора( верхнього на рисунку) вибору адреси mux. За допомогою зазначеного мультиплексора вибирають адресу переходу (чергова чи перехід), яка і надсилається до програмного лічильника PC.
Керування мультиплексором вибору адреси наступної команди виконує вузол Zero?, на який подається сигнал дозволу, що поступає у випадку виконання команди умовного переходу. Вміст службового регістра А порівнюється із нулем (дорівнює нулю). Результат порівняння є бінарним логічним значенням (так або ні). Саме цей бінарний результат керує роботою мультиплексора вибирання адреси наступної команди.
При виконанні фази MEM результат-адреса з виходу ALU надсилається до основної пам'яті як отримана адреса комірки цієї нам'яті (для команд збереження/завантаження).
Результатом на виході правого на рисунку мультиплексора може бути або вміст основної пам'яті (при виконанні команди завантаження LHU слова з основної пам'яті до регістра регістрового файла), або результат виконання арифметичної(ADDU, SUB, XORI) операції в ALU. Такий результат в рамках виконання фази WB засобами мікропрограмування зберігають в регістрі регістрового файла. Отже, зазначений мультиплексор комутує на вхід регістрового файла потрібну інформацію.
Таким чином, апаратно відобразивши алгоритм виконання команд, вдалося забезпечити вимогу, щоб вони виконувалася за один такт.
2 ПАМ’ЯТЬ
2.1 Кеш пам’ять
У зв’язку з тим що швидка пам’ять є дуже дорогою, а дешева пам’ять дуже повільна в проектуванні прототипу комп’ютера використано багаторівневу ієрархічну систему пам’яті комп’ютера, де на верхньому рівні ієрархії знаходяться програмно-доступні регістри регістрового файла процесора, на другому - кеш, потім комірки основної пам'яті. Відомий парадокс - за рівнями ієрархії, згори донизу, об’єм пристроїв пам’яті зростає, а швидкодія зменшується.
Той факт, що звернення процесора до пам’яті завжди локалізовано в невеликому діапазоні змін її адрес, дає можливість побудувати так звану кеш пам'ять. Він дозволяє застосовувати ієрархічну систему пам’яті, аби узгодити невідповідність швидкодій процесора і системи пам’яті з одним рівнем ієрархії. Між процесором і основною пам’яттю розташована кеш пам’ять - це швидка буферна пам’ять невеликого об’єму. Кеш пам’ять працює на близькій тактовій частоті до процесора і покликана не гальмувати його роботу.
При проектуванні використано гарвардську архітектуру, тобто пам’ять інструкцій і пам’ять даних знаходяться окремо. Отже доцільно розробити окремо два кеша: для пам’яті інструкцій і для пам’яті даних. Структурні схеми цих кешів наведені в додатках.
Процесор генерує адреси пам’яті так, ніби кеш пам’яті не має, а сам кеш на апаратному рівні перехоплює сигнали процесора читання/запису. Якщо кеш пам’ять спроможна підмінити собою основну пам’ять (у понад 96-98 відсотків випадків), тоді вона за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і продовжує працювати на повній швидкості. Коли «підміна» основної пам’яті не можлива (менше від двох-чотирьох відсотків випадків), тоді кеш пам’ять залучає до роботи основну пам’ять, обмін з якою суттєво пригальмовує процесор.
Усі завдання, пов’язані із перехопленням запитів від процесора до основної пам’яті, вирішує контролер кеш пам’яті, який є її складовою частиною. Другою частиною кеш пам’яті є невелика робоча пам’ять, де зберігають вміст копій комірок основної пам’яті. Зберігаються ці комірки по принципу прямого відображення. Тобто кожній комірці кешу однозначно відповідають декілька комірок з основної пам’яті. Кеш пам'ять – це асоціативна пам'ять, тобто вона здійснює доступ до даних не за допомогою адрес, а за допомогою порівняння певних ознак. В даному випадку такою ознакою є старша частина адреси комірки памяті, до якої процесор намагається отримати доступ, і називається тегом. Саме тег дозволяє контролеру кеш пам’яті приймати рішення про спроможність задовольнити конкретний процесорний запит без залучення до обміну повільної основної пам’яті.
Спрощений варіант структури комп’ютера, в якому використовується кеш пам’ять, подано в додатку. Пристрій керування надсилає керуючі сигнали до процесора та основної пам’яті. З процесора сигнали станів, якими можуть бути біти регістра команди і інше, надходять до пристрою керування, аби реалізувати розгалуження мікропрограми.
Для зберігання даних і команд використано розділені кеш пам’яті даних і команд Гарвардської архітектури. В свою чергу, кеш пам’яті зв’язані з єдиною пам’яттю Принстонської архітектури. Обмін в підсистемі "основна пам’ять - кеш пам’ять даних» є двостороннім, а в підсистемі «основна пам’ять - кеш пам’ять команд" – одностороннім.
2.2 Основна пам’ять
Основна пам’ять будується на основі інтегральних мікросхем. Мікросхеми пам’яті організовані у вигляді матриці комірок, кожна з яких має n запам’ятовуючих елементів, де n - розрядність комірки, і має свою адресу. Кожен запам’ятовуючий елемент здатний зберігати один біт інформації, оскільки він має два стабільні стани, які представляють двійкові значення 0 і 1. При запису інформації запам’ятовуючий елемент встановлюється в один із двох можливих станів. Для визначення поточного стану запам’ятовуючого елемента його вміст має бути зчитаний.
Загальна структурна схема пам’яті наведена в додатку.
В мікросхемах пам’яті реалізується координатний принцип адресації комірок, згідно з яким комірка із заданим номером лежить на перетині відповідних вертикальної та горизонтальної адресних ліній, які утворюються шляхом поділу основної адреси на дві частини. Запам’ятовуючі елементи, об’єднані загальним горизонтальним провідником, прийнято називати рядком. Запам’ятовуючі елементи, підключені до загального вертикального провідника, називають стовпцем. Кожній горизонтальній лінії відповідає один з кодів адреси рядка, а кожній вертикальній лінії відповідає один з кодів адреси стовпця. Молодші розряди адреси вказують адресу рядка, а старші розряди адреси вказують адресу стовпця.
Адреса комірки, що поступає в мікросхему пам’яті, пропускається через логіку вибору, де вона розділяється на дві складові: адресу рядка і адресу стовпця. Адреси рядка і стовпця запам’ятовуються в буфері адреси. Адреси рядка і стовпця подаються в мікросхему на дешифратори стовпця і рядка відповідно. Виходи дешифраторів утворюють систему горизонтальних і вертикальних провідників, до яких підключені матриці комірок пам’яті, при цьому кожна комірка пам’яті розташована на перетині одного горизонтального й одного вертикального провідників.
Крім адресних вертикальних провідників у мікросхемі повинна бути така ж кількість інформаційних провідників, по яких передаватиметься інформація, яка зчитується та записується до пам’яті. Сукупність запам’ятовуючих елементів і логічних схем, пов’язаних із вибором рядків і стовпців, називають ядром мікросхеми пам’яті.
Крім ядра, в мікросхемі є ще інтерфейсна логіка, що забезпечує взаємодію ядра із зовнішнім світом. У її завдання, зокрема, входить проведення комутації потрібного стовпця на вихід при читанні і на вхід при записі, яка здійснюється через вихідні ключі, що керуються логічними схемами запису і зчитування. При цьому логічна схеми запису і зчитування, а також логіка керування, яка задає режими роботи пам’яті, працюють на основі аналізу зовнішніх сигналів керування пам’яттю /RAS, /СЕ, /WE, /CAS.
Для синхронізації процесів фіксації й обробки адресної інформації всередині мікросхеми адреса рядка (RA) супроводжується сигналом RAS (Row Address Strobe - строб рядка), а адреса стовпця (CA) - сигналом CAS (Column Address Strobe - строб стовпця). Щоб стропування було надійним, ці сигнали подаються із затримкою, достатньою для завершення перехідних процесів на шині адреси та в адресних лініях мікросхеми.
Сигнал WE (Write Enable - дозвіл запису) визначає вид виконуваної операції (зчитування або запис).
На фізичну організацію ядра, як матрицю однорозрядних запам’ятовуючих елементів, накладається логічна організація пам’яті, під якою розуміється розрядність мікросхеми, тобто кількість ліній введення-виведення. Розрядність мікросхеми визначає кількість запам’ятовуючих елементів, що мають одну і ту ж адресу (таку сукупність запам'ятовуючих елементів називають. коміркою), тобто кожен стовпець містить стільки розрядів, скільки є ліній введення-виведення даних.
Для прискорення роботи пам’яті на її інформаційному вході зазвичай встановлюються вхідний та вихідний регістри даних. Записувана інформація, що поступає по шині даних, спочатку заноситься у вхідний регістр даних, а потім у вибрану комірку. При виконанні операції зчитування інформація з комірки до її видачі на шину даних буферизуєтся у вихідному регістрі даних. На весь час, поки мікросхема пам’яті не використовує шину даних, інформаційні виходи мікросхеми переводяться в третій стан. Керування перемиканням в третій стан забезпечується сигналом ОЕ (Output Enable - дозвіл видачі вихідних сигналів). Цей сигнал активізується при виконанні операції зчитування.
Для більшості перерахованих вище сигналів керування активним зазвичай вважається їх низький рівень.
Керування операціями з основною пам'яттю здійснюється контролером пам'яті.3 ПРИСТРІЙ КЕРУВАННЯ
Для узгодження роботи всіх частин процесора потрібен пристрій керування.
Пристрій керування виробляє послідовність сигналів, необхідних для виконання команди, та послідовності команд, тобто програми. Команда в комп'ютері виконується за один або за декілька тактів, в кожному із яких виконується одна або декілька мікрооперацій. Кожна мікрооперація представляє собою деяку елементарну дію передачі або перетворення інформації, яка ініціюється поступленням керуючого сигналу (мікронаказу) на вхід керування відповідного пристрою. Прикладом може бути керуючий сигнал, який встановлює або очищує прапорець стану, керуючий сигнал запису до регістра, керуючий код на вході мультиплексора і т. д. Для реалізації команди необхідно на відповідні керуючі входи подати розподілену в часі послідовність керуючих сигналів.
Пристрій керування є одним з вузлів процесора. В додатку показана взаємодія в процесорі між пристроєм керування та інформаційним трактом, кешем і основною пам'яттю.
Процес функціонування процесора в часі складається з послідовності тактових інтервалів, в яких інформаційний тракт виконує операції над операндами та видає результати обробки. Виконання даних операцій інформаційний тракт здійснює на основі відповідних сигналів керування (мікронаказів) з пристрою керування. Послідовність елементарних мікронаказів пристрій керування формує на основі коду операції та службових сигналів стану з регістрової пам'яті процесора.
В даній курсовій роботі пристрій керування побудований по принципу мікропрограмного керування, який передбачає формування керуючих сигналів за вмістом регістра мікрокоманд, в який мікрокоманди записуються із пам'яті мікрокоманд. Шляхом послідовного зчитування мікрокоманд із пам'яті в цей регістр організується потрібна послідовність керуючих сигналів.Такий пристрій керування в простішому випадку будується на основі автоматів, в даному випадку це автомат Мура.
Автомат Мура визнається п’ятіркою з трьох множин:
- множини внутрішніх станів ;
- множини вхідних сигналів ;
- множини вихідних сигналів ,
і двох функцій, а саме, - функції переходів і функції виходів . Скінчений автомат має скінчені множини . Ініціальний автомат Мура має наперед визначений початковий внутрішній стан .Функція переходів визначає наступний стан в залежності від поточного стану і вхідного сигналу. Функція виходів визначає вихідний сигнал (мікродію) в залежності від внутрішнього стану. Для проектування автомату Мура потрібно визначити усі елементи зазначеної п’ятірки.
Множини (таблиця 3.1 та таблиця 3.2), що складається з 15 елементів (мікродій) та , що складається з трьох елементів і визначаються поточною командою, вже визначено на етапі кодування автомату.
Таблиця 3.1 Мікродії виконання команд
LHU
SB
ADDI
IF
IR = IM [PC]; (y0)
NPC = PC + 4; (y1) (A1)
ID
A=Regs [ IR6..10 ]; (y2)
Imm=(IR16)16##IR16..31;(y3) (A2)
A=Regs [ IR6..10 ]; (y2)
Imm=(IR16 )16 ## IR16..31; (y3)
B=Regs [ IR11..15 ]; (y4) (A3)
A=Regs [ IR6..10 ]; (y2)
Imm=(IR16)16 ##IR16..31; (y3) (A4)
EX
ALUout = A + Imm; (y6)
(A8)
ALUout = A + Imm; (y6) (A8)
ALUout = A + Imm; (y6)
(A8)
MEM
LMD = DM[ALUout]; (y11) (A12)
DM [ALUout] = B; (y12)
(A13)
WB
Regs [ IR11..15 ] = LMD; (y13) (A14)
Regs[IR11..15]=
ALUout; (y14) (A15)
Таблиця 3.2 Мікродії виконання команд
SUBI
XORI
JR
IF
IR = IM [PC]; (y0)
NPC = PC + 4; (y1) (A1)
ID
A=Regs [ IR6..10 ]; (y2)
Imm=(IR16 )16 ## IR16..31; (y3)
(A5)
A=Regs [ IR6..10 ]; (y2)
Imm=(IR16)16 ## IR16..31; (y3)
(A6)
A=Regs [ IR6..10 ]; (y2)
(A7)
EX
ALUout = A - Imm; (y7)
(A9)
ALUout=A xor Imm; (y8)
Zero(cond) = 0; (y9)
(A10)
PC = A; (y10)
(A11)
MEM
WB
Regs[IR11..15]=ALUout; (y14) (A15)
Regs[IR11..15]=ALUout; (y14) (A15)
Множину визначають за наступним правилом:
1. Стартову вершину позначають символом внутрішнього стану ;
2. Кожну операторну вершину позначають окремим, незбіжним із вже застосованими, символом внутрішнього стану;
Результат проектування граф схеми автомата Мура наведено в додатку і містить 16 внутрішні стани, від a0 до a15.
Пристрій керування має 18 керуючих виходів C0..C17. Кожний вихід відповідає за керування власного вузла інформаційного тракту. В таблиці 3.3 наведено які сигнали мають виходи пристрою керування в кожному стані автомата.
Розглянемо призначення кожного з керуючих сигналів:
С1, С2 керує передачею даних з регістра інструкції IR в регістровий файл;
C3 дозволяє ввід даних в регістр PC;
С4 дозволяє читання регістрового файлу;
С5 дозволяє запис в регістровий файл;
С6 керує мультиплексором, який визначає що подавати на вхід АЛП: NPC чи значення регістру А.
С7 керує мультиплексором, який подає на вхід одне з значень : регістр В чи
безпосередній операнд Imm.
С8 дозволяє роботу блоку ZERO?;
C9,С10,С11 сигнали, що визначають операцію, яка повинна бути виконана в АЛП (000 – робота АЛП заборонена, 100 – операція зсуву, 010 – операція додавання, 001 – операція віднімання);
С12 дозволяє подачу ALUout на адресний вхід пам’яті;
С13 дозволяє передачу даних з виходу мультиплексора на вхід даних пам’яті (фактично з регістру В);
С14 дозвіл на читання пам’яті даних;
С15 дозвіл на запис в пам’ять даних;
С16 керує мультиплексором, що визначає, звідки будуть записані дані в регістровий файл : з ALUout чи LMD.
С17 дозволяє передачу даних з виходу мультиплексора що керується сигналом С16 до регістрового файлу.
Таблиця 3.2 Сигнали пристрою керування
A С
c0
c1
c2
c3
c4
c5
c6
c7
c8
c9
c10
c11
c12
c13
c14
c15
c16
c17
a0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
a1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
a2
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
a3
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
a4
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
a5
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
a6
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
a7
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
a8
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
a9
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
a10
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
a11
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
ВИСНОВКИ
В даній курсовій роботі було побудовано прототип RISC процесора, з заданим набором інструкцій. За основу комп’ютеру було взято машину DLX. Також спроектовано:
Інформаційний тракт
Блок керування
Кеш інструкцій та кеш даних
Структурну схему процесора
Побудований інформаційний тракт процесора забезпечує виконання кожної команди за один такт.
Блок керування побудований на основі автомата Мура. Таким чином спроектований процесор працює на основі мікрокомандного керування. Автомат містить 16 стійких станів (Ai) та 15 вихідних сигналів (Yi), які залежать від попереднього стану автомата та виконуваної команди в поточний момент часу.
Кеш побудовано на основі Гарвардської архітектури, що розмежовує такі поняття як кеш даних та кеш інструкцій. Кеш служить для узгодження часових характеристик роботи процесора та пам’яті, побудованій на основі Пристонської архітектури.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
Мельник А.О. Архітектура комп’ютера. – Луцьк:Волинська обласна друкарня, 2008. – 470 с.
Майоров С.А., Новиков Г.И. Принципы организации цифровых машин. - Л., Машиностроение, 1974.
Баранов С.И. Синтез микропрограммных автоматов. - Л.: Машиностроение, 1980.
Hamacher V., Vranesic Z., and Safwat G. Computer Organization. - McGraw-Hill Publishing Company, International Edition, 1990. - 617 p.
Мотоока Е., Томита С., Танака Т., Сайто Е., Уэхара Т. Компьютеры на СБИС. В двух книгах. - М.: Мир, 1988.
Искусственный интеллект: В 3-х книгах. Кн. 3. Программные и аппаратные средства: Справочник/Под ред. В.Н. Захарова, В.Ф., Хорошевского. - М.: Радио и связь. - 1990. - 368 с.
Microprocessors, Volume I. - Intel Corp., 1992.
Пом А., Агравал О. Быстродействующие системы памяти. - М.: Мир, 1987. - 264 с.
ДОДАТКИ