Ця стаття не містить . (серпень 2013) |
Конвеєр команд — компонент центрального процесора, призначений для прискорення виконання машинних команд шляхом суміщення певних стадій їх виконання в часі.
Елементарний конвеєр
В основі концепції конвеєризації обчислень є твердження про те, що процес обробки машинної команди можна розбити на декілька практично незалежних етапів, які потім можна суміщати в часі для декількох команд в відповідній апаратурі (конвеєрі команд).
Загальноприйнятим в теорії конвеєрних структур є така послідовність етапів:
- вибірка (instruction fetch, IF) — завантаження нової команди з пам'яті;
- декодування (instruction decode, ID) — інтерпретація та відправлення команди до відповідного операційного пристрою в залежності від різновиду операції;
- виконання (execution, EX) — виконання команд та обчислення ефективної адреси пам'яті для результату або операндів, які необхідно завантажити;
- звертання до пам'яті (memory, MEM) — виконання операцій з пам'яттю (для команд завантаження/збереження);
- збереження результату (writeback, WB) — збереження результату обчислень в регістрі.
Слід зазначити, що така структура є типовою для RISC-архітектур, семантика та кількість етапів в яких зазвичай не дуже відрізняється від наведених, тоді як в CISC-архітектурах конвеєр може бути набагато складнішим.
В процесі виконання команд в конвеєрі, відбувається суміщення вказаних етапів виконання для декількох команд (тобто в конвеєрі одночасно знаходяться декілька — до 5 в даному випадку) на різних стадіях. Кожний етап конвеєрного обчислення виконується за один машинний цикл. Зрозуміло, що виконання однієї окремої команди на послідовному процесорі (де команда виконується зразу за один машинний цикл) може бути швидшим, аніж в конвеєрній організації. Але за рахунок суміщення виконання різних команд загальна швидкодія істотно збільшується.
Класифікація
Спочатку визначимо декілька понять:
- пропускна здатність — максимальна кількість команд, які виконуються за один такт машинного часу (instructions per cycle, IPC);
- тривалість етапу (стадії) — кількість машинних циклів для виконання одного етапу конвеєрного обчислення (може бути різною для різних етапів);
- необхідний (максимальний) ступінь паралелізму — кількість (незалежних) команд, які потрібно завантажити в конвеєр для повного використання його потенціалу.
Найпростіший (класичний) конвеєр
Характеристики пристрою:
- Пропускна здатність = 1 IPC
- Тривалість стадії = 1 цикл
- Необхідний (максимальний) ступінь паралелізму = 1 команда
Суперскалярний конвеєр
Характеристики пристрою:
- Пропускна здатність = n IPC (=3 IPC на малюнку)
- Тривалість стадії = 1 цикл
- Необхідний (максимальний) ступінь паралелізму = n команд (=3 на малюнку)
Як бачимо, в тому випадку, коли тривалість всіх стадій є однаковою, пропускна здатність суперскалярного конвеєра в n разів вища за звичайний. Однак для повного завантаження та максимальної ефективності необхідно, щоби на кожному циклі роботи він був завантажений n командами, які можуть виконуватись незалежно одна від одної. Така вимога істотно обмежує ефективність суперскалярного конвеєра, адже ступінь схованого паралелізму звичайних послідовних програм, зазвичай, є не дуже високою і в середньому обмежена числами близько 2.5-3 IPC, хоча на окремих класах задач може бути істотно вищою. Подальше збільшення рівня паралелізму потребує вже зміни самої парадигми програмування.
VLIW-конвеєр
- Пропускна здатність = n IPC (=3 IPC на малюнку)
- Тривалість стадії = 1 цикл
- Необхідний (максимальний) ступінь паралелізму = n команд (=3 на малюнку)
З малюнку легко бачити, що базові параметри VLIW-конвеєра повністю збігаються з такими для суперскалярного конвеєра (хоча що стосується реальних, а не теоретичних, показників IPC, то вважається що спеціальні інструменти VLIW-процесорів для виявлення схованого паралелізму послідовних програм є оптимістичнішими, аніж суперскалярний підхід). VLIW-процесори апаратурно є набагато простішими, аніж суперскалярними, і це можна бачити з конфігурації конвеєра. Тут підготовка до виконання цілого комплексу команд, упакованих в довге командне слово, на стадії EX відбувається одночасно (пакування відбувається ще на етапі компіляції програми), тоді як в звичайному суперскалярному процесорі кожна команда проходить усі стадії окремо.
Суперконвеєр
Припустимо, що деякі з вказаних нами етапів типового 5-стадійного конвеєра в свою чергу також допускають розбиття на елементарніші «суперстадії» (на малюнку таке розбиття показане сірими лініями). Тоді стає можливим зменшення тривалості машинного циклу за рахунок того, що кожна з таких «елементарних» стадій може виконуватись швидше аніж «звичайна», а в результаті проміжок часу (вимірюваний одним машинним циклом) між виходом оброблених команд з конвеєра зменшується. В теоретичній моделі з малюнку, де кожна зі «звичайних» стадій розбита на 4 «суперстадії», отримаємо 4-кратний приріст швидкодії за умови, що кількість часу на виконання «звичайної» стадії залишається незмінною. Таким чином, в загальному випадку для (не суперскалярного) суперконвеєра, в якому кожній «звичайній» стадії відповідає m «суперстадій» (елементарних стадій):
- Пропускна здатність = 1 IPC, але тривалість циклу 1/m в порівнянні зі звичайним конвеєром
- Тривалість стадії = 1 цикл для «суперстадії», або m циклів для кожної «звичайної стадії»
- Необхідний (максимальний) ступінь паралелізму = m команд
Однак нескінченно дрібнити стадії конвеєра та підвищувати таким чином тактову частоту неможливо. Довгі конвеєри стають вкрай неефективними при виконанні команд, які змінюють хід виконання програми (тобто команд умовних та безумовних переходів). Ці команди за певних умов призводять до необхідності повного перезавантаження конвеєра, а чим більше стадій, тим більше часу для цього необхідно.
Суперскалярний суперконвеєр
Поєднання принципів суперскалярного виконання (тобто повністю паралельного виконання декількох команд) та суперконвеєрного виконання (тобто подрібнення базових стадій конвеєра) дає організацію, яка сьогодні досить популярна серед архітекторів швидкодіючих мікропроцесорів. В таких структурах:
- Пропускна здатність = n IPC, але тривалість циклу 1/m в порівнянні зі звичайним конвеєром
- Тривалість стадії = 1 цикл для «суперстадії», або m циклів для кожної «звичайної стадії»
- Необхідний (максимальний) ступінь паралелізму = m*n команд
Конфлікти в конвеєрі
Функціональні модулі
Етап виконання
Сучасні процесори мають такі модулі етапу виконання:
- швидка цілочисельна арифметика і логічні операції;
- повільні цілочисельні дії, такі як множення, множення-додавання (для скалярного добутку) і ділення;
- дії з рухомою комою.
Швидкі дії зазвичай виконуються за один цикл, повільні — конвеєризуються.
Для множення використовуються такі алгоритми — [en], [en], Алгоритм Бута.
Джерела
Це незавершена стаття про апаратне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno serpen 2013 Konveyer komand komponent centralnogo procesora priznachenij dlya priskorennya vikonannya mashinnih komand shlyahom sumishennya pevnih stadij yih vikonannya v chasi Elementarnij konveyerV osnovi koncepciyi konveyerizaciyi obchislen ye tverdzhennya pro te sho proces obrobki mashinnoyi komandi mozhna rozbiti na dekilka praktichno nezalezhnih etapiv yaki potim mozhna sumishati v chasi dlya dekilkoh komand v vidpovidnij aparaturi konveyeri komand Zagalnoprijnyatim v teoriyi konveyernih struktur ye taka poslidovnist etapiv vibirka instruction fetch IF zavantazhennya novoyi komandi z pam yati dekoduvannya instruction decode ID interpretaciya ta vidpravlennya komandi do vidpovidnogo operacijnogo pristroyu v zalezhnosti vid riznovidu operaciyi vikonannya execution EX vikonannya komand ta obchislennya efektivnoyi adresi pam yati dlya rezultatu abo operandiv yaki neobhidno zavantazhiti zvertannya do pam yati memory MEM vikonannya operacij z pam yattyu dlya komand zavantazhennya zberezhennya zberezhennya rezultatu writeback WB zberezhennya rezultatu obchislen v registri Slid zaznachiti sho taka struktura ye tipovoyu dlya RISC arhitektur semantika ta kilkist etapiv v yakih zazvichaj ne duzhe vidriznyayetsya vid navedenih todi yak v CISC arhitekturah konveyer mozhe buti nabagato skladnishim V procesi vikonannya komand v konveyeri vidbuvayetsya sumishennya vkazanih etapiv vikonannya dlya dekilkoh komand tobto v konveyeri odnochasno znahodyatsya dekilka do 5 v danomu vipadku na riznih stadiyah Kozhnij etap konveyernogo obchislennya vikonuyetsya za odin mashinnij cikl Zrozumilo sho vikonannya odniyeyi okremoyi komandi na poslidovnomu procesori de komanda vikonuyetsya zrazu za odin mashinnij cikl mozhe buti shvidshim anizh v konveyernij organizaciyi Ale za rahunok sumishennya vikonannya riznih komand zagalna shvidkodiya istotno zbilshuyetsya KlasifikaciyaSpochatku viznachimo dekilka ponyat propuskna zdatnist maksimalna kilkist komand yaki vikonuyutsya za odin takt mashinnogo chasu instructions per cycle IPC trivalist etapu stadiyi kilkist mashinnih cikliv dlya vikonannya odnogo etapu konveyernogo obchislennya mozhe buti riznoyu dlya riznih etapiv neobhidnij maksimalnij stupin paralelizmu kilkist nezalezhnih komand yaki potribno zavantazhiti v konveyer dlya povnogo vikoristannya jogo potencialu Najprostishij klasichnij konveyer Harakteristiki pristroyu Propuskna zdatnist 1 IPC Trivalist stadiyi 1 cikl Neobhidnij maksimalnij stupin paralelizmu 1 komanda Superskalyarnij konveyer Harakteristiki pristroyu Propuskna zdatnist n IPC 3 IPC na malyunku Trivalist stadiyi 1 cikl Neobhidnij maksimalnij stupin paralelizmu n komand 3 na malyunku Yak bachimo v tomu vipadku koli trivalist vsih stadij ye odnakovoyu propuskna zdatnist superskalyarnogo konveyera v n raziv visha za zvichajnij Odnak dlya povnogo zavantazhennya ta maksimalnoyi efektivnosti neobhidno shobi na kozhnomu cikli roboti vin buv zavantazhenij n komandami yaki mozhut vikonuvatis nezalezhno odna vid odnoyi Taka vimoga istotno obmezhuye efektivnist superskalyarnogo konveyera adzhe stupin shovanogo paralelizmu zvichajnih poslidovnih program zazvichaj ye ne duzhe visokoyu i v serednomu obmezhena chislami blizko 2 5 3 IPC hocha na okremih klasah zadach mozhe buti istotno vishoyu Podalshe zbilshennya rivnya paralelizmu potrebuye vzhe zmini samoyi paradigmi programuvannya VLIW konveyer Propuskna zdatnist n IPC 3 IPC na malyunku Trivalist stadiyi 1 cikl Neobhidnij maksimalnij stupin paralelizmu n komand 3 na malyunku Z malyunku legko bachiti sho bazovi parametri VLIW konveyera povnistyu zbigayutsya z takimi dlya superskalyarnogo konveyera hocha sho stosuyetsya realnih a ne teoretichnih pokaznikiv IPC to vvazhayetsya sho specialni instrumenti VLIW procesoriv dlya viyavlennya shovanogo paralelizmu poslidovnih program ye optimistichnishimi anizh superskalyarnij pidhid VLIW procesori aparaturno ye nabagato prostishimi anizh superskalyarnimi i ce mozhna bachiti z konfiguraciyi konveyera Tut pidgotovka do vikonannya cilogo kompleksu komand upakovanih v dovge komandne slovo na stadiyi EX vidbuvayetsya odnochasno pakuvannya vidbuvayetsya she na etapi kompilyaciyi programi todi yak v zvichajnomu superskalyarnomu procesori kozhna komanda prohodit usi stadiyi okremo Superkonveyer Pripustimo sho deyaki z vkazanih nami etapiv tipovogo 5 stadijnogo konveyera v svoyu chergu takozh dopuskayut rozbittya na elementarnishi superstadiyi na malyunku take rozbittya pokazane sirimi liniyami Todi staye mozhlivim zmenshennya trivalosti mashinnogo ciklu za rahunok togo sho kozhna z takih elementarnih stadij mozhe vikonuvatis shvidshe anizh zvichajna a v rezultati promizhok chasu vimiryuvanij odnim mashinnim ciklom mizh vihodom obroblenih komand z konveyera zmenshuyetsya V teoretichnij modeli z malyunku de kozhna zi zvichajnih stadij rozbita na 4 superstadiyi otrimayemo 4 kratnij pririst shvidkodiyi za umovi sho kilkist chasu na vikonannya zvichajnoyi stadiyi zalishayetsya nezminnoyu Takim chinom v zagalnomu vipadku dlya ne superskalyarnogo superkonveyera v yakomu kozhnij zvichajnij stadiyi vidpovidaye m superstadij elementarnih stadij Propuskna zdatnist 1 IPC ale trivalist ciklu 1 m v porivnyanni zi zvichajnim konveyerom Trivalist stadiyi 1 cikl dlya superstadiyi abo m cikliv dlya kozhnoyi zvichajnoyi stadiyi Neobhidnij maksimalnij stupin paralelizmu m komand Odnak neskinchenno dribniti stadiyi konveyera ta pidvishuvati takim chinom taktovu chastotu nemozhlivo Dovgi konveyeri stayut vkraj neefektivnimi pri vikonanni komand yaki zminyuyut hid vikonannya programi tobto komand umovnih ta bezumovnih perehodiv Ci komandi za pevnih umov prizvodyat do neobhidnosti povnogo perezavantazhennya konveyera a chim bilshe stadij tim bilshe chasu dlya cogo neobhidno Superskalyarnij superkonveyer Poyednannya principiv superskalyarnogo vikonannya tobto povnistyu paralelnogo vikonannya dekilkoh komand ta superkonveyernogo vikonannya tobto podribnennya bazovih stadij konveyera daye organizaciyu yaka sogodni dosit populyarna sered arhitektoriv shvidkodiyuchih mikroprocesoriv V takih strukturah Propuskna zdatnist n IPC ale trivalist ciklu 1 m v porivnyanni zi zvichajnim konveyerom Trivalist stadiyi 1 cikl dlya superstadiyi abo m cikliv dlya kozhnoyi zvichajnoyi stadiyi Neobhidnij maksimalnij stupin paralelizmu m n komandKonflikti v konveyeriDokladnishe Konflikti v konveyeriFunkcionalni moduliEtap vikonannya Suchasni procesori mayut taki moduli etapu vikonannya shvidka cilochiselna arifmetika i logichni operaciyi povilni cilochiselni diyi taki yak mnozhennya mnozhennya dodavannya dlya skalyarnogo dobutku i dilennya diyi z ruhomoyu komoyu Shvidki diyi zazvichaj vikonuyutsya za odin cikl povilni konveyerizuyutsya Dlya mnozhennya vikoristovuyutsya taki algoritmi en en Algoritm Buta DzherelaCe nezavershena stattya pro aparatne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi