Проектування прототипу скалярного RISC-комп’ютера із заданою

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Курсова робота
Предмет:
Архітектура комп’ютерів та комп’ютерних систем

Частина тексту файла (без зображень, графіків і формул):

1. Тема роботи: проектування RISC комп’ютера. 2. Вхідні дані: Індекс Група інструкцій   Пересилання Арифметичні та логічні Керування  3 SB, LW ADDU, SUBUI, OR J   3. Вихідні дані: Розширена, детальна структурна схема прототипу скалярного RISC-комп'ютера з поданням структури, інформаційних та керуючих зв'язків інформаційного тракту i пристрою керування з врахуванням конкретизованої за завданням підмножини системи інструкцій. Внутрішня структура пристроїв інформаційного тракту, апаратура пристрою керування. Підсистема уводу/виводу інформації. Детальна мікропрограма виконання інструкцій. Запропонувати принцип конвеєризації структури інформаційного тракту разом із конвеєрною мікропрограмою керування. Детальні креслення структури кешів даних та інструкцій з поясненням принципу побудови цих кешів та їхнього зв'язку з модифікованою гарвардською архітектурою. 4. Пояснювальна записка повинна містити: - титульну сторінку; - анотацію; - зміст; - конкретизовані та розширені вихідні дані на проектування; - аналітичний розділ з роз'ясненням та аналізом основних принципів побудови скалярних RISC-комп'ютерів на прикладі визначених на реалізацію інструкцій; - розділ з описом синтезу та розробки структурної схеми; - основні результати роботи (висновок); - перелік наукових першоджерел: монографій, статей, патентів і підручників. Завдання видано________________________ Термін здачі роботи_____________________ Керівник_______________________________   ЗМІСТ ВСТУП 5 1 СТРУКТУРА RISC КОМП’ЮТЕРА 7 1.1 Основні принципи побудови RISC комп’ютерів 7 1.2 Побудова інформаційного тракту 7 2 ПАМ’ЯТЬ 12 1.3 Кеш пам’ять 12 2.1 Основна пам’ять 13 3 ПРИСТРІЙ КЕРУВАННЯ 16 ВИСНОВОК 21 СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 22 Додатки 23 ВСТУП В ранні часи комп'ютерної індустрії програми створювались на мові асемблера. Таке програмування вимагало потужних інструкцій, що реалізують часто вживані високорівневі алгоритми. Тому розробники процесорів намагались вмістити в свій продукт якомога більше інструкцій що виконують максимальну кількість роботи. Також до інструкцій ставились вимоги по зручності використання та універсальності. В кожній інструкції розробники намагались реалізувати всі можливі типи адресації, тобто інструкції могли однаково працювати з операндами, які знаходяться як в пам'яті так і в регістрах чи безпосередньо закодовані в інструкції. Практичне введення такої універсальності призводило до того, що кожна дія мала декілька реалізацій в процесорі, розрахованих на різні типи адресування. Крім того, в ті часи, пам'ять була дуже дорогою, тому вигідними були інструкції зі змінною довжиною, що одночасно виконують завантаження операндів та обчислення. Також, процесори мали дуже малу кількість регістрів. Це було обумовлено двома причинами: - розміщення на кристалі додаткових регістрів було надто дорогим; - введення додаткових регістрів вимагало б розширення формату інструкцій, щоб вмістити довші специфікатори регістрів. Така архітектура отримала назву CISC (Complex Instruction Set Computers, архітектура обчислень із повною системою команд). Ряд наукових досліджень середини 1970-х років довів, що тогочасні компілятори не використовували переваги складної адресації, а також те що більшість процесорів мали надлишковий набір інструкцій. Також було доведено, що в багатьох випадках складні інструкції виконувались повільніше ніж аналогічний по функціональності набір простіших інструкцій. Відомим прикладом цьому була інструкція INDEX комп'ютера VAX, яка виконувалась повільніше ніж її реалізація на базі циклу. Також, складні інструкції менше підлягали оптимізації під конкретну задачу (напр. заміна множення/ділення операціями зсуву). Метою створення RISC архітектури було: - Зменшення набору інструкцій для збільнення додаткової площі на кристалі, де можна розмістити кеш або регістри. - Приведення всіх інструкцій до однакового розміру та подібного формату. Це дало можливість конвеєризації. - В ідеалі, всі інструкції повинні були виконуватись за один такт. RISC (Reduced Instruction Set Computing — комп'ютер зі скороченим набором команд) — архітектура процесорів зі скороченим набором команд. Ще відома як «Load/Store» архітектура. Основними рисами RISC архітектури є: Мала кількість інструкцій Однакова довжина всіх інструкцій Мала кількість різних форматів інструкцій Відсутність інструкцій які працюють з операндами в пам'яті. Мала кількість апаратно підтримуваних типів даних Велика кількість ідентичних регістрів загального призначення Поштовхом для розробки RISC архітектури стало те, що тогочасні  компілятори не використовували більшість команд із CISC набору та не могли скористатися перевагами багатьох типів складної адресації. Виконання складних CISC інструкцій вимагало багатьох процесорних тактів, а реалізація різних типів адресування та інструкцій, що реалізовують високорівневі операції, займала більшість площі процесорного кристалу та майже не використовувалась. Метою даної курсової роботи є спроектувати прототип комп’ютера з RISC архітектурою, який містить 6 команд: завантаження і вивантаження в пам'ять, три арифметичні команди і команда переходу. При виконанні курсової роботи слід дотримуватись основних принципів RISC архітектури. 1 СТРУКТУРА RISC КОМП’ЮТЕРА 1.1 Основні принципи побудови RISC комп’ютерів Мікропроцесори з архітектурою RISC (Reduced Instruction Set Computers) використовують порівняно невеликий (скорочений) набір найбільш вживаних команд, визначений у результаті статистичного аналізу великого числа програм для основних областей застосування CISC - процесорів вихідної архітектури. Усі команди працюють з операндами і мають однаковий формат. Звертання до пам'яті виконується за допомогою спеціальних команд завантаження регістра й запису. Простота структури і невеликий набір команд дозволяють повністю реалізувати їхнє апаратне виконання й ефективний конвеєр при невеликому обсязі устаткування. RISC- архітектура побудована на чотирьох основних принципах: 1. Будь-яка операція повинна виконуватися за один такт, незалежно від її типу. 2. Система команд повинна містити мінімальну кількість найчастіше використовуваних найпростіших інструкцій однакової довжини. 3. Операції обробки даних реалізуються тільки у форматі «регістр-регістр». Обмін з ОП виконуються за допомогою команд завантаження/запису. 4. Склад системи команд повинен бути «зручним» для компіляції операторів мов високого рівня. 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. Основою проектування структури процесора комп'ютера з простою системою команд є часова діаграма виконання команд з найбільшою складністю, до числа яких належить, зокрема, команда завантаження даних. Розглянемо цикл виконання команди вибірки з основної пам'яті (завантаження) без знакового байту LBU. В комп'ютері DLX командний цикл поділений на п'ять фаз. Тому для виконання вказаної команди потрібно виконати наступні фази: - вибрати зазначену команду з основної пам'яті (перша фаза виконання команди із назвою IF (Instruction Fetch)); - декодувати команду та вибрати операнди (друга фаза виконання команди із назвою ID (Instruction Detecting)); - виконати команду, тобто обрахувати виконавчу адресу операнда (третя фаза виконання команди із назвою EX (Execution)); - вибрати операнд із основної нам'яті (четверта фаза виконання команди із назвою MEM (Memory)); - переслати вибраний з основної пам'яті операнд до відповідного регістра регістрового файлу (п'ята фаза виконання команди із назвою WB (Write Back)). Використані назви фаз дещо узагальнюють притаманну лише команді LBU семантику кожної окремої фази. Це коректно, бо нашою метою є наближення до такої послідовності фаз, яка задовольняє вимогам будь-якої команди із заданої до реалізації множини з метою досягнення найбільшої швидкодії. Інші команди не завжди вимагають реалізації усього переліченого набору фаз, тому що мають меншу часову складність. Залежно від структури процесора команда може бути виконаною за різний час, який буде складатися з суми проміжків часу, необхідних для виконання кожної фази. Розглянемо підхід до побудови процесора з тим, щоб задовольнити вимогу, згідно з якою довільна комп'ютерна команда, незалежно від її типу, має виконуватися за один такт (чи однотактовий цикл), яка ставиться до процесорів комп'ютера з простою системою команд. Для того, щоб команда виконувалася за один такт, потрібно апаратно відобразити алгоритм її виконання, тобто поставити у відповідність кожному оператору алгоритму функціональні вузли процесора, які їх виконують, та з'єднати їх між собою. Ця відповідність наведена в таблиці 1.1. Таблиця 1.1 Мікродії виконання команд SB LW ADDU SUBUI OR J  IF IR = IM [PC]; NPC = PC + 4;  IR = IM [PC]; NPC = PC + 4; IR = IM [PC]; NPC = PC + 4; IR = IM [PC]; NPC = PC + 4; IR = IM[PC]; NPC = PC + 4; IR = IM [PC]; NPC = PC + 4;  ID A = Regs[IR6..10 ]; Imm = ((IR16 )16 ## IR16..31); B = Regs[IR11..15 ];  A = Regs [IR6..10 ]; Imm = ((IR16 )16 ## IR16..31); A = Regs[IR6..10 ]; B = Regs[IR11..15];  A = Regs[IR6..10 ]; Imm = ((IR16 )16 ## IR16..31); A = Regs [IR6..10 ]; B = Regs [IR11..15];  Imm = ((IR6 )6 ## IR6..31);  EX ALUout = A + Imm; ALUout = A + Imm; ALUout = A + B; ALUout = A - Imm; ALUout = A or B; ALUout = NPC + Imm;  MEM DM[ALUout] = B; PC = NPC; LMD = DM[ALUout]; PC = NPC; PC = NPC; PC = NPC; PC = NPC; PC = ALUout;  WB - Regs [IR11..15 ] = LMD; Regs[IR16..20] = ALUout; Regs[IR11..15] = ALUout; Regs[IR16..20] = ALUout; -   Тоді структура процесора комп'ютера з простою системою команд, який виконує названі фази, може бути подана схемою наведеною в додатку. Як бачимо, процесор містить п'ять послідовно з'єднаних блоків: вибірки команди з основної пам'яті, декодування операндів та вибірки команди з регістрової пам'яті, операційний, вибірки та запису даних до основної пам'яті, запису даних до регістрової пам'яті. Кожен з цих блоків виконує відповідну фазу командного циклу та передає результати до наступного блоку. Результатом послідовної роботи цих блоків є виконання команди Перший оператор IF виконується на наступних елементах: програмному лічильнику PC (Program Counter), суматорі ADD та двох регістрах NPC і IR. Вміст програмного лічильника PC визначає адресу команди в основній пам'яті. Комбінаційний суматор ADD обраховує адресу наступної за чергою виконання команди. При цьому враховано, що впорядкована послідовність команд (програма) складається з чотирибайтових команд (усі команди мають формати довжиною 32 біти), які розміщено в основній пам'яті за послідовними адресами 0, 4, 8, С і т. д. Через це константа зсуву адреси (пересування покажчика на наступну за чергою команду) дорівнює +4. Визначене за допомогою суматора значення адреси вибирання наступної команди зберігається у регістрі NPC (next PC). Зчитаний з пам'яті інструкцій IM код поточної команди записується до регістра команди IR. Поля щойно вибраної команди містять адреси програмно-доступних регістрів регістрової файлу процесора. Вміст зазначених полів формату команди в рамках оператора ID надсилається на адресні входи регістрової пам'яті Regs, а відповідні надісланим адресам коди операндів завантажуються до внутрішніх, програмно-недосяжних, тобто службових, регістрів А і В. Існує ще один тип операнда з назвою "безпосередній" (Imm). Його задають прямо у форматі команди. Як правило, довжина безпосереднього операнда не перевищує половини довжини формату команди. В комп'ютері DLX безпосередній операнд має довжину 32/2 = 16 бітів. У той самий час бажано зафіксувати довжину формату даних такою, що дорівнює довжині формату команди, адже різноманіть довжин форматів суттєво пригальмовує комп'ютер. Якщо усі формати даних, як і формати команд, матимуть довжину 32 біти, тоді безпосередньому операнду не вистачатиме ще 16 бітів, аби бути стандартним за довжиною. Але оскільки дані команди являються беззнаковими, то старші 16 біт завжди будуть рівні нулю. Отже розширення не потрібно виконувати, а потрібно тільки перезаписати молодші 16 біт операнду в службовому регістрі Imm. В цілому можна нарахувати чотири можливі операнди на вході арифметико-логічного пристрою ALU процесора: з регістрів А, В, Imm та вміст регістра адреси наступної для виконання команди NPC, над якими виконується функціональний оператор ЕХ. Операнд-адреса NPC опрацьовується в ALU при виконанні команди умовного переходу, коли на додаток до наступної потрібна ще одна адреса, що утворена додаванням до вмісту NPC деякої константи переходу. Вибирання двох операндів на вхід ALU із чотирьох можливих виконується за допомогою мультиплексорів, розташованих на його входах. Результат операції з ALU тимчасово запам'ятовується у проміжному службовому регістрі ALUout. Якщо результатом операції є число, тоді воно заноситься до комірок регістрового файлу. Якщо результатом операції є адреса, тоді ця адреса надсилається до (верхнього на рисунку) мультиплексора вибору адреси mux. За допомогою зазначеного мультиплексора вибирають адресу переходу (чергова чи перехід), яка і надсилається де програмного лічильника PC, аби коректно продовжити виконання програми. Керування мультиплексором вибору адреси наступної команди покладено на вузол Zero?, де вміст службового регістра А порівнюється із нулем (дорівнює нулю, більше нуля, менше нуля і т. д., залежно від виду виконуваної у поточний час операції умовного переходу). Результат порівняння є бінарним логічним значенням (так або ні). Саме цей бінарний результат керує роботою мультиплексора вибирання адреси наступної команди. При виконанні фази MEM результат-адреса з виходу ALU надсилається до основної пам'яті як отримана адреса комірки цієї нам'яті (для команд збереження/завантаження) Результатом на виході правого на рисунку мультиплексора може бути або вміст основної пам'яті (при виконанні команди завантаження LBU слова з основної пам'яті до регістра регістрового файлу), або результат виконання арифметичної(ADDU, SUBU) або зсувної(SRL) операції в ALU. Такий результат в рамках виконання фази WB засобами мікропрограмування зберігають в регістрі регістрового файлу. Отже, зазначений мультиплексор комутує на вхід регістрового файлу потрібну інформацію. Таким чином, апаратно відобразивши алгоритм виконання команд, вдалося забезпечити вимогу, щоб вони виконувалася за один такт. 2 ПАМ’ЯТЬ 1.3 Кеш пам’ять В зв’язку з тим що швидка пам’ять є дуже дорогою, а дешева пам’ять дуже повільна в проектуванні прототипу комп’ютера використаємо багаторівневу ієрархічну систему пам’яті комп’ютера, де на верхньому рівні ієрархії знаходяться програмно-доступні регістри регістрового файлу процесора, на другому - кеш, потім комірки основної пам’яті. За рівнями ієрархії, згори донизу, об’єм пристроїв пам’яті зростає, а швидкодія зменшується. Важливим є той факт, що звернення процесора до пам'яті завжди локалізовано в невеликому діапазоні змін її адрес. Саме він і дозволяє застосовувати ієрархічну систему пам'яті, аби розв'язати невідповідність швидкодій процесора і системи пам'яті з одним рівнем ієрархії. Між процесором і основною пам'яттю розташована кеш пам'ять - це швидка буферна пам'ять невеликого об'єму. Кеш пам'ять працює на близькій тактовій частоті до процесора і не пригальмовує його роботу. При проектуванні використано Гарвардську архітектуру, тобто пам'ять інструкцій і пам'ять даних знаходяться окремо. Отже доцільно розробити окремо два кеша для пам’яті інструкцій і для пам’яті даних. Структурні схеми цих кешів наведені в додатках. Процесор генерує адреси пам'яті так, ніби кеш пам'яті не має, а сам кеш на апаратному рівні перехоплює сигнали процесора читання/запису. Якщо кеш пам'ять спроможна підмінити собою основну пам'ять (у понад 96-98 відсотків випадків), тоді вона за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і продовжує працювати на повній швидкості. Коли «підміна» основної пам'яті неможлива (менше від двох-чотирьох відсотків випадків), тоді кеш пам'ять залучає до роботи основну пам'ять, обмін з якою суттєво пригальмовує процесор. Усі завдання, пов'язані із перехопленням запитів від процесора до основної пам'яті, вирішує контролер кеш пам'яті, який є її складовою частиною. Другою частиною кеш пам'яті є невелика робоча пам'ять, де зберігають вміст копій комірок основної пам'яті. Зберігаються ці комірки по принципу прямого відображення. Тобто кожній комірці кешу однозначно відповідають декілька комірок з основної пам’яті. Для ідентифікування яка саме комірка записана в кеші використовується тег, який рівний старшим бітам адреси. Саме тег дозволяє контролеру кеш пам'яті приймати рішення про спроможність задовольнити конкретний процесорний запит без залучення до обміну повільної основної пам'яті. Спрощений варіант структури комп'ютера, в якому використовується кеш пам'ять, подано в додатку. Пристрій керування надсилає керуючі сигнали до процесора та основної пам'яті. З процесора сигнали станів, якими можуть бути біти регістра команди і інше, надходять до пристрою керування, аби реалізувати розгалуження мікропрограми. Для зберігання даних і команд використано розділені кеш пам'яті даних і команд Гарвардської архітектури. В свою чергу, кеш пам'яті зв'язані з єдиною пам'яттю Принстонської архітектури. Обмін в підсистемі "основна пам'ять - кеш пам'ять даних» є двостороннім, а в підсистемі «основна пам'ять - кеш пам'ять команд" – одностороннім. 2.1 Основна пам’ять Основна пам'ять будується на основі інтегральних мікросхем. Мікросхеми пам'яті організовані у вигляді матриці комірок, кожна з яких має 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), що складається з 19 елементів (мікродій) та , що складається з трьох елементів і визначаються поточною командою, вже визначеного на етапі кодування автомату. Таблиця 3.1 Мікродії виконання команд SB LW ADDU SUBUI OR J  IF IR = IM [PC]; (y1) NPC = PC+4; (y2)  IR = IM [PC]; (y1) NPC = PC+4; (y2) IR = IM [PC]; (y1) NPC = PC+4; (y2) IR = IM [PC]; (y1) NPC = PC+4; (y2) IR = IM[PC]; (y1) NPC = PC+4; (y2) IR = IM[PC]; (y1) NPC = PC+4; (y2)  ID A = Regs[IR6..10 ]; (y3) Imm = ((IR16 )16 ## IR16..31); (y5) B = Regs[IR11..15 ]; (y4)  A = Regs [IR6..10 ]; (y3) Imm = ((IR16 )16 ## IR16..31); (y5) A = Regs[IR6..10 ]; (y3) B = Regs[IR11..15] (y4)  A = Regs[IR6..10 ]; (y3) Imm = ((IR16 )16 ## IR16..31); (y5) A = Regs [IR6..10 ]; (y3) B = Regs [IR11..15]; (y4)  Imm = ((IR6 )6 ## IR6..31); (y6)  EX ALUout = A + Imm; (y7) ALUout = A + Imm; (y7) ALUout = A + B; (y8) ALUout = A - Imm; (y9) ALUout = A or B; (y10) ALUout = NPC + Imm; (y11)  MEM DM[ALUout] = B; (y12) PC = NPC; (y14) LMD = DM[ALUout]; (y13) PC = NPC; (y14) PC = NPC; (y14) PC = NPC; (y14) PC = NPC; (y14) PC = ALUout; (y15)  WB - Regs [IR11..15 ] = LMD; (y16) Regs[IR16..20] = ALUout; (y17) Regs[IR11..15] = ALUout; (y18) Regs[IR16..20] = ALUout; (y17) -  Множину  визначають за наступним правилом: 1. Стартову вершину позначають символом внутрішнього стану ; 2. Кожну операторну вершину позначають окремим, незбіжним із вже застосованими, символом внутрішнього стану; Результат проектування граф схеми автомата Мура наведено в додатку і містить 18 внутрішніх станів, від  до . Пристрій керування має 15 керуючих виходів C1..C15. Кожний вихід відповідає за керування власного вузла інформаційного тракту. В таблиці 3.2 наведено які сигнали мають виходи пристрою керування в кожному стані автомата. Розглянемо призначення кожного з керуючих сигналів: - С1 керує передачею даних з регістра інструкції IR в регістровий файл; - С2 керує передачею даних з регістра інструкції IR в регістр безпосереднього даного Imm; - C3 керує мультиплексором який визначає, що подавати на перший вхід АЛП (регістр нової адреси NPC або службовий регістр А); - С4 керує мультиплексором який визначає, що подавати на другий вхід АЛП (службовий регістр В або регістр безпосереднього даного Imm); - С5, С6 дозволяють ввід даних на перший і другий вхід АЛП відповідно; - С7, С8 визначають яка операція повинна бути виконана в АЛП (00 – додавання, 01 – віднімання, 10 - or); - С9 дозволяє передачу адреси комірки пам’яті на шину пам’яті даних, яка повинна бути завантажене в або з пам’яті; - С10 дозволяє передачу даних з регістру В для послідуючого запису в пам'ять; - С11 дозволяє вивід даних з регістру результату АЛП ALUout на мультиплексор з послідуючим записом в регістровий файл. - С12 керує мультиплексором який визначає які дані записувати в регістровий файл; - С13 дозволяє запис в регістровий файл; - С14 дозволяє передачу в регістр поточної адреси адресу нової команди. - С15 керує мультиплексором який визначає, що подавати на перший вхід PC (регістр нової адреси NPC або службовий регістр АLUout); Таблиця 3.2 Сигнали пристрою керування Стан C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15  a0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  a1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  a2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0  a3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0  a4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0  a5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0  a6 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0  a7 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0  a8 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0  a9 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0  a10 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0  a11 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0  a12 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0  a13 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0  a14 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1  a15 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0  a16 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0  a17 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0   Таблиця 3.3 містить відповідність між кодом команди і і вхідними станами автомата Мура. Таблиця 3. Вхідні стани автомата Мура Команда Вхідний стан xi  SB !x1!x2!x3  LW !x1!x2x3  ADDU !x1x2!x3  SUBUI !x1x2x3  OR x1!x2!x3  J x1!x2x3   Таблиця 3.4 містить відповідність між вихідними і внутрішніми станами автомата Мура. Таблиця 3.4 Відповідність станів автомата Мура Стани автомата Мура  Вхідні x Вихідні y Внутрішні a  Reset! y0 a0  !Reset y1; y2 a1  !x1!x2!x3 y3; y4; y5 a2  !x1!x2x3, !x1x2x3 y3; y5 a3  !x1x2!x3, x1!x2!x3 y3; y4 a4  x1!x2x3 y6 a5  !x1!x2!x3, !x1!x2x3 y7 a6  !x1x2!x3 y8 a7  !x1x2x3 y9 a8  x1!x2!x3 y10 a9  x1!x2x3 y11 a10  !x1!x2!x3 y12; y14 a11  !x1!x2x3 y13; y14 a12  !x1x2!x3, !x1x2x3, x1!x2!x3 y14 a13  x1!x2x3 y15 a14  !x1!x2x3 y16 a15  !x1x2!x3, x1!x2!x3 y17 a16  !x1x2x3 y18 a17   ВИСНОВОК RISC-процесори є швидшими і економічнішими за CISC. У принципі, є можливість проектувати процесори на чистій RISC-архітектурі. Але відмовитися від архітектури x86 вже неможливо, оскільки під неї написано більшість поширених у світі програм, включаючи комп'ютерні ігри В даній курсовій роботі було поставлено за мету спроектувати структурну схему комп’ютера на RISC архітектурі. Основою для проектування інформаційного тракту було взято навчальний процесор DLX і оптимізовано його під виконання шести інструкцій, які подаються в вхідних даних до курсової роботи. На основі гарвардської архітектури спроектовано структурну схему кешів, оскільки використовується роздільно кеші інструкцій і даних. Основна ж пам'ять не має такого розмежування, вона базується на принстонській архітектурі. Пристрій керування побудований на основі абстрактного автомату Мура і має 18 стійких станів, які визначаються поточною інструкцією, яка виконується на даний момент, і визначають стани 15 вихідних сигналів, які керують інформаційним трактом. СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ Patterson D., and Hennessy J. Computer Architecture. A quantitative Approach. Second Edition. - Morgan Kaufmann Publishers, Inc., San Francisco, California, 1996.
Антиботан аватар за замовчуванням

24.03.2013 21:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!