Повернемося до схеми робочого циклу (рис. 9.34) і розглянемо сукупність етапів циклу для основних команд (основний варіант циклу). Якщо ці етапи виконуються послідовно в часі, то, підсумовуючи позначені на малюнку продовж-ності окремих етапів, отримуємо час циклу
і продуктивність процесора, операцій (команд) / с,
У багатьох випадках послідовна процедура виконання етапів циклу не забезпечує необхідну продуктивність процесора.
Академік С. А. Лебедєв в 1956 році запропонував підвищувати продуктивність, використовуючи принцип суміщення в часі окремих операцій (етапів) робочого циклу, і реалізував цей принцип в ЕОМ М-20 в формі паралельного виконання в часі операції в АЛП і вибірки з пам'яті наступної ко-мих фахівців.
Нехай робочий цикл процесора складається з k етапів, причому 1-й етап має тривалість ti, тоді при послідовник-ном виконанні етапів тривалість процедури
і загальна продуктивність процесора, операцій / с,
Швидкість роботи машини може бути збільшена, якщо для виконання кожного етапу мати окремий апаратурних блок і з'єднати ці блоки в обробну лінію - конвеєр операцій (в даному випадку конвеєр команд) так, щоб резуль-тат виконання в даному блоці деякого етапу передавався для реалізації чергового етапу на наступний блок, і т. д. (рис. 9.35).
Синхронний конвеєр операцій. Якщо конвеєр робота-ет в примусовому темпі і для виконання будь-якого етапу виділено одне і те ж час tT. (Такт конвеєра), то такий кон-Вейер називається синхронним.
Розбиття процедури на етапи і вибір тривалості такту виробляються відповідно до умов
причому в силу циклічності робочого процесу в останньому нерівності приймаємо tk + 1 = t1.
Якщо для будь-яких суміжних етапів друга умова не виконується, то їх слід об'єднати в один етап або наибо-леї довгий етап розбити на кілька етапів. В останньому випадку заново вибирається tT і знову перевіряється умова (**).
На рис. 9.36 показана тимчасова діаграма виконання команд на 5-позиційному синхронному конвеєрі. Однаковими символами позначені різні етапи робочого циклу однієї і тієї ж команди.
Після того як всі позиції конвеєра виявляться заповненими, паралельно в часі обробляється стільки команд, скільки в конвеєрі обробних блоків (позицій).
Конвеєр характеризується коефіцієнтом суміщення операцій, що дорівнює кількості одночасно виконуваних етапів обробки інформації.
Номінальна продуктивність синхронного конвеєра при його повному завантаженні
Знайдемо співвідношення продуктивностей процесора при конвеєрної обробці і при послідовному виконанні етапів робочого циклу.
Насправді зростання реальної продуктивності про-цессора виявиться нижче через простої (затримок) конвеєра. У процедурах виконання деяких команд (наприклад, команд пересилання даних) окремі етапи загального робочого циклу відсутні, і, отже, простоюють окремі блоки конвеєра. Для команди умовного переходу по результату попередньої операції вибірка наступної команди повинна бути затримана (конвеєр простоює кілька тактів), поки не буде сформований ознака результату (формується на більш пізньому етапі) попередньої операції.
Якщо pm - ймовірність вибірки команди, що викликає за-радити конвеєра на m тактів (m = 1, 2. k), то действи-кові продуктивність конвеєра
Асинхронний конвеєр команд. При великій залежності тривалості виконання процедур окремих етапів від типу команди і виду операндів доцільно застосування асинхрон-Хроні конвеєра, в якому відсутній єдиний такт роботи його блоків, а інформація з одного блоку конвеєра передається на наступний, коли даний блок закінчить свою процедуру, а наступний повністю звільниться від обробки попередньої команди.
Управління передачею інформації між сусідніми блоку-ми в асинхронному конвеєрі здійснюється за допомогою двох тригерів - готовності блоку (сигналізує про завершення операції в блоці) і звільнення подальшого блоку.
На рис. 9.38 показана тимчасова діаграма суміщення виконання трьох команд в ЕОМ ЄС-1050 Тимчасова діаграма побудована для випадку, коли обирається за одне звернення до пам'яті «ділянку програми» містить чотири команди фор-мату «регістр-регістр».
Етап I містить дві процедури, вибірку з ОП ділянки програми (8 байт) і розпакування ділянки - виділення з нього черговий команди і розміщення її в регістрі команди.
Етап III складається також з двох процедур: виконання опера-цій в АЛУ і записи результату в пам'ять.
З діаграми видно, що, починаючи з моменту часу t4 виконуються одночасно три етапи циклу відповідно для трьох команд. У наведеному прикладі з моменту t7 через великий тривалості в команді N + 1 операції в АЛП припиняючи-ється робота блоків апаратури, відповідних етапах I і II.
Арифметичний конвеєр. Вище було розглянуто конвеєр команд. Однак з метою підвищення продуктивності махай-ни принцип конвеєрної обробки широко використовується і в са-мих виконують змістовну обробку інформації пристроях (АЛП), які будуються у вигляді арифметичного конвеєра, причому таких арифметичних конвеєрних ліній може бути в процесорі кілька, в тому числі і спеціалізованих -Вань для певних операцій з даними Подібні опера-ційних (арифметичні) пристрої часто називають ма-гістральнимі.
Нехай операційне пристрій повинен обчислювати деяку функцію Ф від вхідних даних (виконувати деяку операцію над вхідними даними). Можна функцію Ф пред-ставити у вигляді послідовності простіших подфункций
причому такий, що результати перетворення, що виконуються подфункцией ji. використовуються в якості вхідних даних при обчисленні подфункции ji + 1. і якщо при цьому для кожної під-функції мати реалізовує її схемний блок, то отримаємо арифметичний конвеєр, який може бути виконаний як синхронний або як асинхронний.
Наведені вище елементи теорії синхронного конвеєра команд залишаються в силі і для синхронного арифметичного конвеєра. Якщо tT - такт конвеєра, то після повного завантаження він стане видавати значення функції Ф через інтервали време-ні tT. Збільшення продуктивності процесора за рахунок ис-користування арифметичного конвеєра можна оцінити по (******).
Якщо арифметичний конвеєр використовується для виконан-ня різних операцій, то ускладнюється визначення складу ра-бочих позицій (блоків) конвеєра і може знадобитися визначити (диспетчеризація) з відповідною комутацією блоків конвеєра на операцію, що задається поточної командою.
Розглянемо як приклад використання арифметич-ського конвеєра для складання двох векторовX + Y = Z, компо-нентами »яких є числа, представлені у формі з плаваючою крапкою і в нормалізованому вигляді.
Виділимо в операції додавання чисел з плаваючою точкою чотири етапи: 1) порівняння і визначення різниці порядків, 2) вирівнювання порядків - зсув мантиси числа з меншим порядком на число розрядів, рівне різниці порядків; 3) складання мантисс; 4) нормалізація результату.
В арифметичному конвеєрі ці етапи виконуються окремих-ними блоками, що утворюють конвеєр, по якому перемеща-ються операнди або проміжні результати операції У міру їх переміщення в конвеєр вводяться нові компоненти векторів.
Нехай часи, необхідні для виконання етапів склалася-ня чисел з плаваючою точкою, є t1. t2. t3. t4.
Ріс.9.39 Приклад настройки арифметичного конвеєра на виконання різних операцій
Отже, якщо не організувати конвеєр-ер і виконувати всі етапи опе-рації послідовно, то для отримання компонента zi = xi + yi потрібен час T = t1 + t2 + t3 + t4.
У синхронному конвеєрі, як зазначалося вище, про-тривалість кожного ця-па встановлюється по само-му довгому з них, нехай в даному випадку це t3. Тоді, якщо конвеєр заповнений, ре-зультати складання елементів-тов векторів видаватимуть-ся через кожні проміжки часу t3. т. е. значно швидше, ніж у випадку відсутність про-наслідком конвеєрної обробки.
На рис. 9.39 як приклад представлена струк-тура конвеєрного (магіст-рального) АЛУ, відповідного АЛУ відомої свого часу ЕОМ ASC фірми Texas Instruments, і показані варіанти комутації блоків конвеєра для виконання різних операцій, в даному випадку складання чисел з плаваючою точкою і умноже- ня чисел з фіксованою точкою.
Особливо ефективне використання операційних (ари-метичних) конвеєрів в спеціалізованих обчислювальних пристроях з обмеженим набором алгоритмів обробки вхідних потоків даних, так як в цьому випадку можливо розбив-ение АЛУ на велике число найпростіших швидкодіючих конвеєрних блоків при невеликих схемних і тимчасових по-терях на їх комутацію.
У ряді мікропроцесорів одночасно присутні конвеєр команд і арифметичний конвеєр, при цьому часто в процесорі (микропроцессоре) виділяють I-частина - апаратуру, яка відноситься до обробки власне команд і E-частина - апаратуру, пов'язану з операціями над даними 1.
I - від Instruction (інструкція, команда) і Е - від Execution (виконання).
Що відноситься до елементів архітектури ЕОМ.
Що визначає гостроту проблеми при виборі структури і формату команд сучасних ЕОМ. Які шляхи вирішення цієї проблеми.
Що таке самовизначатися дані? Чому при використанні тегів скорочується кількість різних команд в системі команд машини.
Які призначення і особливості реалізації команди безумовного переходу з поверненням?
Як за допомогою індексації організовується обробка упорядкованих масивів даних?
Що спільного між вектором стану програми (процесора) і вектором переривання?
Які призначення і процедура переривання програм ЕОМ?
Що таке векторне переривання? Опишіть процедуру векторно-го переривання з використанням стековой пам'яті.
У чому відмінність синхронного і асинхронного конвеєрів?
Яким чином особливості RISC-архітектури сприяють підвищенню її швидкодії? Яка при цьому роль «перекриваються реєстрових вікон»?