1   2   3
Ім'я файлу: Курсова робота_Водько О_КБ43.docx
Розширення: docx
Розмір: 416кб.
Дата: 22.06.2022
скачати

1.3 Опис інструкцій процесора

Є три типи інструкцій:

  1. Інструкції R-типу отримують пару операндів із регістрів(Registers) регістрового файла процесора та повертають результат знов таки до регістрового файла.



OPCODE

RS1

RS2

RD

FUNCTIONS

6

5

5

5

11



  1. Інструкції I-типу визначають два регістри і безпосереднє значення(Immidiate).



OPCODE

RS1

RD

IMMEDIATE

6

5

5

16



  1. Інструкції J-типу це інструкції безумовних переходів (Jump).



OPCODE

OTHER ADDED TO PC

6

26


Примітка:

Opcode – це поле коду операції довжина якого 6 бітів

RS1,RS2- поля довжиною 5 бітів, що визначають номери регістрів-постачальників операндів(register of source),а саме програмно-досяжні регістри R0….R31.

RD- 5 бітове поле номера регістра-приймача результату дії(register of distination), а саме програмно-досяжні регістри R0….R31.

Immediate – поле довжиною 16 бітів, що містить безпосередній операнд; при цьому крайній лівий розряд immediate може розглядатись як знаковий; тоді можливе розширення формату розрядами знакового біта за правилами доповняльного коду.

Function - поле, що визначає функцію, яка розширює обмежену кількість (на 211 – 1 = 2047 позицій) дозволених різних кодів операції.

Offset added to PC - 26 бітова константа, яку додають до вмістимого регістру наступної адреси під час виконання інструкції безумовного переходу.

LHI –зчитування старших 16 розрядів безпосереднього даного та 16 нулів молодших розрядів (load high immediate)

LW – запис слова (load word) до регістру

ADDI – додати безпосереднє дане (add immediate)

SUBUI – Відняти з знаком і без знаку(Substract unsigned and signed)

ANDI – додати безпосереднє дане(and immediate)

J – безумовний перехід(jump), 26 розрядне зміщення до PC+4
LHI R1, 10(R3)

LW R1, 10(R2)




OPCODE

RS1

RD

IMMEDIATE

LHI

000000

00000

00001

0000 0000 0000 1010

LW

000001

00010

00001

0000 0000 0000 1010


ADDI R1, R2, #10

SUBUI R1, R2#10

ANDI R1, R2#10




OPCODE

RS1

RD

IMMEDIATE

ADDI

000010

00010

00001

0000 0000 0000 1010

SUBUI

000011

00010

00001

0000 0000 0000 1010

ANDI

000100

00010

00001

0000 0000 0000 1010


J target




OPCODE

Offset added to PC

J

0000101

TARGET

Пристрій керування

В попередніх розділах було розглянуто принципи організації інформаційного тракту і пам’яті. Однак ними ще потрібно керувати. Саме це і є задачею пристрою керування.

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

Пристрій керування є одним з вузлів процесора. В додатку показана взаємодія в процесорі між пристроєм керування та інформаційним трактом, кешем і основною пам’яттю.

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

В даній курсовій роботі пристрій керування побудований по принципу мікропрограмного керування, який передбачає формування керуючих сигналів за вмістом регістра мікрокоманд, в який мікрокоманди записуються із пам’яті мікрокоманд. Шляхом послідовного зчитування мікрокоманд із пам’яті в цей регістр організовується потрібна послідовність керуючих сигналів.



Рис.1 Структурна схема керуючого пристрою

Керування побудуємо за математичною моделлю абстрактного автомата(АА) Мура. Задала мікропрограму роботи пристрою керування граф-схемою алгоритму. На ГСА позначено yi закодовано мікродії, що генерує пристрій керування, а за допомогою xj – сигнали станів пристроїв інформаційного тракту (операційний блок). Зворотній зв’язок (від інформаційного тракту до пристрою керування) здійснюють сигнали станів.




X0

X1

X2

LHI

0

0

0

LW

0

0

1

ADDI

0

1

0

SUBUI

0

1

1

ANDI

1

0

0

J

1

0

1

Нижче подано таблицю кодування команд.

Таблиця 2

Коди інструкцій OPCODE
Формально пристрій керування можно розлядати як кінцевий автомат, що визначається:

а) множиною війкових вихідних сигналів Y = {y1, y2, … , ym}, що відповідають множині мікро операцій операційного пристрою. При yi генерується і-та операція;

б) множина вхідного сигналу Х:

X = {x1, x2, … , xn},

що відповідаю двійковому коду операції (Z) і двійковими повідомляючий сигнал(X);

в) множиною мікропрограм, які необхідно реалізувати, що встановлюють в залежності від значень вхідних сигналів керуючі сигнали, які видаються блоком у визначені такти.
Y0 IR= IM [PC];

Y1 NPC = PC + 4;

Y2 A=Regs [IR6..10 ];

Y3 Imm = ((IR16 )6## IR16..31);

Y4 ALUout = A + Imm;

Y5 Zero(cond) = 0;

Y6 LMD = DM[ALUout];

Y7 PC = NPC;

Y8 Regs [ IR11..15 ] = LMD;

Y9 ALUout = A - Imm;

Y10 ALUout = A and Imm;

Y11 Regs[IR11..15]=ALUout;

Y12 Regs[IR16..20]=ALUout;

Y13 ALUout = NPC + Imm;

Y14 PC = ALUout;



Рис.2 Автомат Мура алгоритму керуючого пристрою прототипу скалярного RISC-комп’ютера

Далі, реалізувала граф Мура, для того щоб побачити як проходять мікрокоманди



Рис.3 Граф АА Мура

Пристрій керування має 9 керуючих виходів для якого створена таблиця керуючих сигналів та відповідні стани для виконання кожної інструкції




RegDst

Jump

MemRead

MemtoReg

ALUOp1

ALUOp2

ALUOp3

MemWrite

ALUSrcA

ALUSrcB

ALUSrcImm

RegWrite

LHI

0

0

1

1

0

0

0

0

1

0

1

1

LW

0

0

1

1

0

0

1

0

1

0

1

1

ADDI

1

0

X

0

0

1

0

X

1

0

1

1

SUBUI

1

0

X

0

0

1

1

X

1

0

1

1

ANDI

1

0

X

0

1

0

0

X

1

0

1

1

J

X

1

X

X

1

0

1

X

X

X

1

X

Таблиця 3 керуючих сигналів

Пам’ять

2.1 Кеш-пам’ять

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

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

Кеш-пам'ять (cache memory) - є буфером між ОЗУ і її «клієнтами» - процесором (одним або декількома) і іншими абонентами системної шини. Кеш-пам'ять не є самостійним сховищем; інформація в ній не адресується клієнтами підсистеми пам'яті, присутність кеша для них «прозора». Кеш зберігає копії блоків даних тих областей оперативного запам'ятовуючого пристрою (ОЗП), до яких відбувалися останні звернення, і дуже ймовірне подальше звернення до тих же даних буде обслуговано кеш-пам'яттю істотно швидше, ніж оперативною пам'яттю. Від ефективності алгоритму кешування залежить вірогідність знаходження затребуваних даних в кеш-пам'яті і, отже, виграш в продуктивності пам'яті і комп'ютера в цілому.

Сучасні процесори, оснащені кешем, який складається з 1-, 2- або 3-ох рівнів. Звичайно ж, бувають і винятки, але найчастіше це саме так.

Загалом, можуть бути такі рівні: L1 (перший рівень), L2 (другий рівень), L3 (третій рівень).

Кеш першого рівня (L1) - найбільш швидкий рівень кеш-пам'яті, який працює безпосередньо з ядром процесора, завдяки цій взаємодії, даний рівень має найменшим часом доступу і працює на частотах близьких процесору. Є буфером між процесором і кеш-пам'яттю другого рівня.

Кеш другого рівня (L2) - другий рівень більш масштабний, ніж перший, але в результаті, має менші характеристики продуктивності. Відповідно, служить буфером між рівнем L1 і L3.

Кеш третього рівня (L3) - третій рівень більш повільний, ніж два попередніх. Але все одно він набагато швидший, ніж оперативна пам'ять. Об'єм кешу L3 в i7-3770K складає 8 Мбайт. Якщо два попередніх рівня поділяються на кожне ядро, то даний рівень є загальним для всього процесора. Показник досить солідний, але в наступних поколіннях планується на рівні 20Мбайт і вище.

Кеш-пам'ять не є універсальною альтернативою високої пропускної здатності системної шини та шини пам'яті з тієї простої причини, що різні програмні завдання мають звичай по-різному кешуватися. Оптимально використовують кеш-пам'ять завдання, що випливають принципам тимчасової і просторової локальності (temporal and spatial locality). Якщо точніше, то принцип тимчасової локальності припускає, що інформація, яка була використана в недалекому минулому, з великим ступенем ймовірності буде запрошена і в найближчому майбутньому. Другий слідує гіпотезі, що інформація, що є сусідньою з уже запитаної, також буде потрібно в ході подальшого виконання завдання. У той же час завдання, які використовують потокові дані (наприклад, відео- і аудіо- інформацію), кешуються виключно погано, тому що просто забивають кеші інформацією, яка явно не буде потрібно в найближчому майбутньому, хоча спеціальні команди не часового (non-temporal) читання і запису можуть допомогти в справі мінімізації засмічення кеш-пам'яті. Те ж саме відноситься і до завдань, що використовує занадто великі обсяги даних, що перевищують розміри наявної кеш-пам'яті.

Також варто відзначити, що кеш-пам'ять не завжди була стандартним компонентом процесора. Довгий час процесори працювали з тією ж тактовою частотою, що і їх системні шини та оперативна пам'ять, причому через відсутність конвеєризації обчислень середня кількість виконаних команд у розрахунку на такт була низькою, тому яскраво вираженої необхідності в кеш-пам'яті не було. Хоча і в той час на материнські плати іноді встановлювали мікросхеми кеш-пам'яті, що використовуються системною логікою для компенсації великих затримок на доступ до оперативної пам'яті, особливо до масового впровадження сторінкового режиму роботи. Тільки на початку 1990-х, коли тактові частоти процесорів перевищили тактові частоти їх системних шин і оперативної пам'яті, а також почали входити в моду основні принципи конвеєризації, тоді й почалося масове впровадження кеш-пам'яті в процесорні ядра. З іншого боку, приросту продуктивності можна досягти шляхом збільшення ширини системної шини та шини пам'яті. На сьогоднішній день є високопродуктивні системи з 256-бітними або 512-бітними каналами даних шин пам'яті, у той час як долею масових комп'ютерів є 64-бітні або 128-бітні канали даних.



Рис. 4. Схема кеш-пам'яті у структурному вигляді

1   2   3

скачати

© Усі права захищені
написати до нас