logo
AOM / Мельник А

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

Виконання команд в процесорі комп'ютера з простою системою команд розглянемо на прикладі процесора комп'ютера DLX,структура якого була розглянута в п. 4.2.2. В рамках фази вибирання команди IFвиконуються наступні мікродії (мікрооперації):

IR = IM[PC];

NPC = РС+4.

147

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

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

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

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

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

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

A = Regs[IR6.....10J; В = Regs [IR 11......15 ]; Imm = ((IR16)16##IR16....31). У наведеному мікрокоді, що складений з трьох сумісних у часі, тобто придатних до одночасного (паралельного) виконання мікродій, вжито наступні позначення:

■ IR- також п'ятибітове поле номера ще одного регістра - джерела даного з множини R0.....R31,

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

148

код треба розширити з врахуванням знака (тобто розряду IRI6)до 32-бітового значення а наступним стандартним алгоритмом знакового розширення:

IR16##IR16##....##IR16#IR16...31

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

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