Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Фаза декодування команди




Фаза вибирання команди

Виконання команд в процесорі комп’ютера з простою системою команд розглянемо на прикладі процесора комп’ютера БЬХ, структура якого була розглянута в п. 4.2.2.

В рамках фази вибирання команди ІБ виконуються наступні мікродії (мікрооперації):

IR = ІМ [РС];

NРС = РС+4.

Виконання першої мікродії спричинює завантаження до 32-бітового регістра поточ­ної команди IR вмісту чотирьох послідовно розташованих комірок пам’яті команд, по­чинаючи від адреси (PC) + 0 і завершуючи адресою (PC) + 3. Як і завжди, за допомогою (PC) позначено вміст програмного лічильника PC.

Друга мікродія (NPC = PC + 4) вираховує “планову” адресу наступної за чергою ко­манди з послідовного потоку. Тобто тут визначається і тимчасово зберігається у регістрі NPC вміст програмного лічильника. “Логічне” вибирання вмісту чотирьох послідовно розташованих однобайтових комірок замість однієї чотирибайтової підкреслює те, що навіть на рівні мікродій адресування комірок пам’яті вказують логічно. За умови коли адреса байта кратна чотирьом, тобто дотримано вирівнювання границь адрес команд, із пам яті, одразу (за одне звернення) вибирають чотири байти і навіть цілі пакети по чо­тири байти. Отриманий з пам’яті даних код тлумачать як 32-розрядне слово, а з пам’яті команд - як одну команду

Зауважимо, що обидві наведені мікродії теоретично є сумісними в часі. Саме тому вони можуть і мають виконуватися паралельно. Ці мікродії утворюють єдину мікрокоманду

Важливою властивістю фази IF є те, що вона не приймає до уваги існування відомого «парадокса пам’яті». Дійсно, у фазі IF за часовими витратами мікродія вибирання з по­вільних комірок пам’яті команд є тотожною мікродії, що працює з внутрішніми, а саме тому надшвидкими регістрами процесора.

 

В рамках фази декодування команди ID виконуються наступні мікродії (мікрооперації):

А = Regs [IR6…10 ];

В = Regs [IR 11…15];

Imm = ((IR16)16 ## IR 16….31).

У наведеному мікрокоді, що складений з трьох сумісних у часі, тобто придатних до одночасного (паралельного) виконання мікродій, вжито наступні позначення:

1. А, В, Imm - внутрішні службові 32-розрядні регістри для проміжного збереження кодів; всі три регістри є “прозорими” для програміста в тому сенсі, що вони аж ніяк не відбиті в машинних командах.

2. Regs [address] - номер регістра регістрового файла процесора;

3. R - поле регістра команд, яке містить групу послідовно розташованих бітів - від біта з номером X до біта з номером Y включно; звернемо увагу на нумерацію бітів у слові процесора - лівий біт має 0-й номер, а правий - 31-й номер.

4. IR6 - поле регістра команд, що містить бінарний номер регістра - джерела дано­го (див. формат команд); довжина поля рівна 5 бітам, що дозволяє позначати та адресу­вати 32 регістри - від Rfl до R

5. IRn - також п’ятибітове поле номера ще одного регістра - джерела даного з множини R0...R3]

Вже зауважувалося, що поле безпосереднього операнда (Immediate або Imm) у фор­маті команди має довжину лише 16 бітів. В той же час, розрядність інформаційного тракту в усіх трьох службових регістрів рівна 32 біти. До того, як записати 16-бітовий код IR16…31 безпосереднього операнда з регістра команд до службового регістра Imm, цей код треба розширити з врахуванням знака (тобто розряду IR) до 32-бітового значення а наступним стандартним алгоритмом знакового розширення:

IR16 ##IR16##IR16#IR16…31

Тут символом ## позначено операцію зчеплення (конкатенацію).

Важливо, що в рамках фази ID виконується декодування (розпізнавання) команди та вибирання усіх можливих варіантів операндів поточної команди, незалежно від її типу, з метою збільшення швидкодії. З іншого боку, можливість одночасного вибирання усіх варіантів операндів потенційно обумовлено відповідною структурою форматів команд, де фіксовано розташування полів-покажчиків на джерела даних та приймачі операндів і результатів. Іншими словами, формати команд процесора втілюють техніку кодування форматів команд, що відома під назвою “fixed-field coding”.

 

 

4.2.4.3. Фаза виконання та формування ефективної адреси

Мікродії, що виконують в рамках фази виконання та визначення ефективної адреси ЕХ, вже залежать від типу поточної команди. Враховуючи це, вигідно поділити усі ко­манди процесора на наступні три групи:

1. команди виконання операцій завантаження операндів з основної пам’яті та збере­ження результатів у основній пам’яті;

2. команди виконання операцій арифметико-логічного пристрою;

3. команди виконання операцій умовних та безумовних переходів.

Далі розглядаємо притаманні кожній групі команд мікродії

Команди виконання операції звернення до пам’яті даних

В рамках фази ЕХ операції звернення до пам’яті даних (load/store instructions) го­тують значення ефективної адреси, тобто вираховують значення бінарного коду, що є адресою комірки пам’яті даних. Виконується наступна мікродія:

ALUoutput = А + Imm.

Позначене в мікродії додавання безпосереднього операнда (однієї з компонент адре­си) з вмістом робочого регістра А (другої компоненти) реалізується в ALU. Отримана сума (вона завжди ціла і додатна, переносом нехтують) записується до ще одного, про­зорого для програміста, регістра ALUoutput. Цей регістр має розрядність 32 біти. Він зберігає коди результатів, що з’являються на виході комбінаційної схеми з назвою ALU. Якщо пригадати дію команди LW, тоді призначення та форма запису наведеної мікродії стає зрозумілою.

Команди виконання операції арифметико логічного пристрою типу регістр регістр.

Прикладом команди типу регістр-регістр є команда ADD 111,112,113. Виконується вка­зана командою наступна мікродія

ALUoutput = А ор В.

Тут узагальнене позначення (ор) можна конкретизувати як (add), (sub) тощо, залежно від конкретного виду поточної команди, яка опрацьовується в інформаційному тракті комп’ютера Підкреслимо, що на попередній щодо ЕХ фазі, а саме на фазі ID, до службо­вих регістрів уже завантажено вміст вибраних регістрів регістрового файла з адресами R2 і R3. Результат дії поки що не збережено в регістрі R1, але його тимчасово записано до службового регістра ALUoutput.

Команда виконання операції арифметико-логічного пристрою типу регістр-безпосередній операнд.

Прикладом команди типу регістр-безпосередній операнд є команда ADD R1,R2,#23. Виконується наступна мікродія:

ALUoutput = A op 1mm.

Ясно, що замість вмісту регістра R3 в операції бере участь безпосередній операнд, який з урахуванням «знакового» розширення до 32-х бітів зчитується із службового ре­гістра Imm.




Поделиться с друзьями:


Дата добавления: 2014-11-25; Просмотров: 700; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.