Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Виконання команд в процесорі комп'ютера з простою системою команд. Фаза вибирання команди. Фаза декодування команди.

Поиск

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Конвеєрний процессор.

Конвеєрну структуру процесора комп’ютера з простою системою команд розгляне­мо на прикладі вище описаного комп’ютера БЬХ. Вище виконання типової команди в комп’ютері ОЬХ було розділено на наступні фази:

1. IF - вибірка команди (за адресою, заданою лічильником команд, із пам’яті зчиту­ється команда).

2. ID - декодування команди/вибірка операндів з регістрів.

3. ЕХ - виконання операції та обчислення ефективної адреси пам’яті.

4. МЕМ - звернення до пам’яті.

5. WB - запам’ятовування результату.

На рис. 4.6 представлена схема процесора, що виконує вказані вище фази виконання команд без перекриття. Щоб конвеєризувати цю схему, можна просто розбити виконан­ня команд на вказані вище фази, відвівши для виконання кожної фази один такт синхро­нізації, і починати в кожному такті виконання нової команди. Природно, для зберігання проміжних результатів кожної фази необхідно використовувати конвеєрні регістри. На рис. 4.9 показана схема процесора з конвеєрними регістрами, які забезпечують переда­чу даних і керуючих кодів з одного ярусу конвеєра на наступний. Хоча загальний час виконання однієї команди в такому конвеєрі складатиме п’ять тактів, у кожному такті апаратура виконуватиме в суміщеному режимі п’ять різних команд.

Рис. 4.9. Конвеєрна структура процесора комп'ютера DLX (.з кеш пам’яттю даних та команд)

 

Конвеєрний процесор комп’ютера DLX структуровано наступними ярусами конве­єра: IF, ID, EX, MEM, WB. Апаратура кожного ярусу реалізує притаманні їй мікроопе- рації. Наприклад, на першому ярусі виконується вибирання команди з пам’яті команд ІМ за вмістом програмного лічильника PC, приріст (інкремент) на +4 (з врахуванням логічного байтового адресування пам’яті команд) поточної адреси за допомогою ком­бінаційного суматора ADD та занесення значення наступної адреси до поля NPC (Next PC), інтегрованого до конвеєрного регістра IF/ID. Мультиплексор Mux, що керується відповідним однобітним полем конвеєрного регістра ЕХ/МЕМ, визначає джерело запи­су до NPC - або наступна за чергою адреса, або цільова адреса умовного чи безумовного переходу. Важливо, що обов’язок змінювати природне адресування послідовності виби­рання команд з пам’яті команд покладено на вміст команди, яка пройшла фазу конвеєра МЕМ.

Конвеєрні регістри виконують функцію збереження вмісту інтегрованих до них регі­стра команди IR, робочих регістрів А, В тощо. Конвеєрні регістри розташовано на межах ярусів. Вони мають назви, відповідні граничним ярусам, наприклад IF/ID. Тоді поле А конвеєрного регістра позначається як ЕХ/МЕМ.А.

До апаратури другого ярусу ID належать регістровий файл Regs, який містить множину про­грамно-доступних регістрів, та поширювач знаку Sign extend, що конвертує 16-бітові безпосе­редні знакові константи у 32-бітові стандартні операнди формату з фіксованою комою.

Апаратура третього ярусу містить комбінаційний ALU із мультиплексорами на кож­ному вході і схему (Zero?) визначення істинності чи хибності умови команди умовного переходу.

Призначення інших вузлів є зрозумілим з рисунка. Можна на додачу зауважити, що регістровий файл має два порти на читання і один на запис. Ця особливість є прямим наслідком запроваджених в комп’ютері DLX системи команд і конвеєрного принципу роботи. Регістровий файл Regs працює у кожній команді на двох ярусах конвеєра - ID (два читання) та WB (один запис). Означені фази двох різних команд можуть збігатися у часі. Аби запобігти колізії, потрібна реалізація одночасного читання та подвійного запису до цього файла. Крім того, необхідно запобігати запису даних до того ж самого регістра.

Роботу конвеєра можна умовно представити у вигляді часової діаграми суміщеного в часі виконання фаз команди, як це було показано раніше, або у вигляді зміщених в часі схем тракту даних комп’ютера DLX (рис. 4.10), де кожна схема зображає ту ж саму фазу команди. Тут ССі - тактові інтервали, IM - пам’ять команд, REG - регістровий файл, ALU - арифметико логічний пристрій, DM - пам’ять даних.

Час (в тактових інтервалах)

 

Цей рисунок добре відображає поєднання в часі виконання різних етапів команд. Тут перша опрацьована команда знаходиться вгорі, остання - знизу, СС - тактовий ін­тервал. Проте частіше для представлення роботи конвеєра використовуються часові діа­грами (рис. 4.11), на яких зазвичай зображаються виконувані команди, номери тактів і етапи виконання команд.

З приведеної часової діаграми стає зрозуміло, для чого потрібні дві незалежні пам’яті

- команд та даних. Це дозволить на тому ж самому тактовому інтервалі без колізії по­єднувати виконання фаз ІБ та МЕМ двох команд. При цьому, безперечно, зростають ви­моги до швидкодії запам’ятовуючих пристроїв. Такі пристрої повинні відпрацьовувати звертання за один цикл (в нашому випадку за один тактовий імпульс), що обумовлює раціональність застосування відокремлених кеш пам’ятей команд та даних.

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

Той факт, що час виконання кожної команди в конвеєрі не зменшується, накладає деякі обмеження на практичну довжину конвеєра. Окрім обмежень, пов’язаних із за­тримкою конвеєра, є також обмеження, що виникають в результаті незбалансованості затримки на кожному його ярусі та із-за накладних витрат на конвеєризацію. Частота синхронізації не може бути вищою, а, отже, такт синхронізації не може бути меншим, ніж час, необхідний для роботи найбільш повільного ярусу конвеєра. Накладні витрати на організацію конвеєра виникають через затримку сигналів у конвеєрних регістрах та із-за перекосів сигналів синхронізації. Конвеєрні регістри до тривалості такту додають час установки і затримку розповсюдження сигналів.

Як приклад розглянемо скалярний комп’ютер із п’ятьма етапами виконання опера­цій, які мають тривалість 50, 50, 60, 50 і 50 не відповідно (рис. 4.12).

 

Хай накладні витрати на організацію конвеєрної обробки складають 5 не. Тоді серед­ній час виконання команди в скалярному процесорі буде рівний 260 не. Якщо ж вико­ристовується конвеєрна організація, тривалість такту буде рівна тривалості найповіль- нішої фази обробки плюс накладні витрати, тобто 65 не. Цей час відповідає середньому часу виконання команди в конвеєрі. Таким чином, маємо чотирикратне прискорення, одержане в результаті конвеєризації.

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

 



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 432; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.174.122 (0.007 с.)