Ця стаття містить , але походження тверджень у ній через практично повну відсутність . (грудень 2019) |
В обчислювальній техніці, конвеєр (пайплайн, англ. pipeline) являє собою набір елементів обробки даних, з'єднаних послідовно, де вихід одного елемента є входом наступного. Елементи конвеєра часто виконуються паралельно за принципом time-sliced; через це деяка кількість буферного сховища часто вставляється між елементами.
Конвеєри у центральних процесорах, або конвеєри інструкцій (команд), такі як класичний конвеєр команд архітектури RISC — використовуються, щоб дозволити перекривання виконання декількох інструкцій на одній схемі. Схема, як правило, ділиться на логічні ділянки, які виконують декодування команд, арифметичні операції, і реєстрацію вибірки етапів, де кожен етап обробляє одну команду за один раз.
Графічні конвеєри використовуються в більшості[] графічних процесорів (GPU). Вони складаються з декількох арифметичних пристроїв або повних процесорів, які реалізують різні етапи загальних операцій рендерингу (перспективної проєкції, відсікання вікна, кольорові та світлові обчислення).[]
Класифікація конвеєрів
- Арифметичний конвеєр
- Командний конвеєр
- Векторний конвеєр
- Одно та багатофункціональні конвеєри
- Скалярні та векторні конвеєри
Програмні концепції (на противагу апаратним):
- Програмні конвеєри, де команди можуть бути записані там, де вихід однієї операції автоматично подається до входу наступної операції. Unix-системи називають «трубу» класичним прикладом цього поняття, хоча і інші операційні системи також підтримують труби.[]
- , де кілька запитів відправляються, не чекаючи результату першого запиту.[]
Концепт та мотивація
Конвеєрна обробка є природним поняттям в повсякденному житті, наприклад, на складальному конвеєрі. Розглянемо складання автомобіля: припустимо, що певні етапи складальної лінії повинні встановити двигун, встановити капот і встановити колеса (в такому порядку, з довільними інтерстиціальними кроками). Автомобіль на конвеєрі може знаходитися тільки на одному етапі одночасно. Після того, як на автомобіль встановлено його двигун, він переходить до монтування капота, в результаті наступне авто стає у чергу на установку двигуна. Перший автомобіль потім переходить до установки колеса, другий — до установки капота, а для третього автомобіля починається установка двигуна. Якщо установка двигуна займає 20 хвилин, установка капота займає 5 хвилин, а установка колеса займає 10 хвилин, обробка усіх трьох авто, за умови одночасної роботи тільки з одним, зайняла б 105 хвилин. З іншого боку, за допомогою конвеєра, загальний час, щоб закінчити всі три, складає 75 хвилин. За даних умов, кожен наступний автомобіль буде приходити з конвеєра з інтервалом 20 хвилин.
Категорії конвеєрів
Лінійні конвеєри
Лінійний конвеєрний процесор являє собою ряд етапів обробки і доступу до пам'яті.
Нелінійні конвеєри
Нелінійний конвеєр (також званий динамічним конвеєром) може бути реалізований з можливістю виконання різних функцій в різний час. У динамічному конвеєрі є також підключення упереджуючого або зворотного зв'язку. Нелінійний конвеєр може підтримувати дуже довгі інструкції.
Витрати і недоліки
Як показує приведений раніше приклад зі складальною лінією, конвеєрний метод не применшує час обробки однієї опорної точки, тобто одного етапу; це тільки збільшує пропускну здатність системи при обробці потоку даних.
«Високий» рівень конвеєризації призводить до збільшення часу очікування — час, необхідний для подолання сигналом повної «труби» (повний цикл конвеєра).
Конвеєрна система, як правило, вимагає більше ресурсів (елементи, схеми, блоки обробки, комп'ютерної пам'яті тощо), ніж та система, яка виконує одну партію за один раз, тому що її етапи не можуть повторно використовувати ресурси попередньої стадії. Крім того, конвеєрна система може збільшити час, необхідний для інструкції, щоб стати закінченою.
Різноманітність ситуацій може викликати зрив конвеєра, в тому числі стрибки (за умовними та безумовними гілками) та промахи кешу даних. Деякі процесори мають архітектуру набору інструкцій з певними функціями, призначеними для зниження впливу помилок конвеєра — слот затримки, умовні інструкції, такі як FCMOV і пророкування розгалужень тощо. Деякі процесори витрачають багато енергії і транзисторів у власній мікроархітектурі на функції, призначені для зменшення впливу помилок конвеєра — пророкування розгалужень і спекулятивного виконання, позачергове виконання тощо. Деякі оптимізувальні компілятори намагаються зменшити вплив помилок конвеєра шляхом заміни деяких стрибків відгалуженням вільного коду, часто за рахунок збільшення двійкового розміру файлу.
Конструктивні міркування
Одним з ключових аспектів конструкції конвеєра є балансування його ступенів. Використовуючи приклад лінії складання, ми могли б мати велику економію часу, якщо на етапи установки двигуна та коліс треба було всього 15 хвилин. Хоча затримка системи все одно буде 35 хвилин, ми зможемо виводити новий автомобіль кожні 15 хвилин. Іншими словами, випуск готового продукту конвеєрним методом займає час, який визначається його найповільнішою частиною. (Зверніть увагу, що якщо час, необхідний, для установки двигуна не може бути зменшений до рівня нижче 20 хвилин, то це не мало б ніякого значення для стабільної швидкості виведення нових авто, якщо всі інші компоненти збільшили час виробництва до 20 хвилин.)
Інший міркування полягає у забезпеченні адекватної буферизації між ступенями конвеєра — особливо коли час обробки є неправильним, або коли елементи даних можуть бути створені або знищені уздовж конвеєра.
Графічні інструменти
Для того, щоб спостерігати за плануванням конвеєра (статичного або динамічного), використовуються таблиці резервування.
Таблиця резервування
Таблиця резервування для лінійного або статичного конвеєра може бути легко згенерована, тому що дані йдуть лінійним потоком під час виконання операції статичним конвеєром. Але у випадку динамічного або нелінійного конвеєра, кілька таблиць можуть бути згенеровані для виконання різноманітних функцій.
Таблиця резервування в основному зображує час, затрачений на потік даних через трубопровід для функції. Різні функції в таблиці резервування йдуть за різними напрямками.
Кількість стовпців в таблиці резервування визначає час оцінки даної функції.
Реалізації
Буферизований синхронний конвеєр
Звичайні мікропроцесори синхронних схем використовують буферизовані синхронні конвеєри. У цих конвеєрів «регістри» вставляються в проміжні ступені синхронно з тактовою частотою. Час між кожним тактовим сигналом встановлюється, щоб бути більше найдовшої затримки між ступенями конвеєра, так що, коли регістри синхронізуються, дані, які записуються в них є остаточним результатом попереднього етапу.
Буферизований асинхронний конвеєр
Асинхронні конвеєри використовуються в асинхронних схемах, і мають свої регістри з асинхронною тактовою частотою. Взагалі кажучи, вони використовують запит-систему, в якій кожен етап може виявити, коли він «закінчив» свою діяльність. Коли стадію Si визнають закінченою, сигнал готовності посилається до етапу Si + 1. Після початку стадії Si + 1, яка приймає вхідні дані, вона повертає підтвердження про отримання даних від стадії Si.
Мікропроцесор The AMULET являє собою приклад мікропроцесора, який використовує буферизовані асинхронні конвеєри
Небуферизовані конвеєри
Небуферизовані конвеєри, так звані «хвильові конвеєри», не мають регістрів між власними етапами. Замість цього, затримки в конвеєрі є «збалансованими» так, що для кожного ступеня, різниця між початком та кінцем стабілізованих вихідних даних зведена до мінімуму. Таким чином, потоки даних «хвилями» рухаються по конвеєру, і кожна хвиля зберігається у максимально короткому синхронізованому вигляді.
Максимальна швидкість передачі даних, яка може бути подана у хвильовий конвеєр визначається максимальною різницею затримки між першою частиною даних, що надходять з конвеєра, і останньою частиною даних, для будь-якої даної хвилі. Якщо дані подаються швидше, ніж це можливо для наявних хвиль, вони будуть створювати перешкоди один одному.
Див. також
Джерела
- Quinn, Michael J. (2004). Parallel Programming in C with MPI and openMP (англ.). Dubuque, Iowa: McGraw-Hill Professional. ISBN .
Посилання
- A real hardware implementation of a Pipeline protocol (PDF) (англ.).
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya mistit perelik posilan ale pohodzhennya tverdzhen u nij zalishayetsya nezrozumilim cherez praktichno povnu vidsutnist vnutrishnotekstovih dzherel vinosok Bud laska dopomozhit polipshiti cyu stattyu peretvorivshi dzherela z pereliku posilan na dzherela vinoski u samomu teksti statti gruden 2019 V obchislyuvalnij tehnici konveyer pajplajn angl pipeline yavlyaye soboyu nabir elementiv obrobki danih z yednanih poslidovno de vihid odnogo elementa ye vhodom nastupnogo Elementi konveyera chasto vikonuyutsya paralelno za principom time sliced cherez ce deyaka kilkist bufernogo shovisha chasto vstavlyayetsya mizh elementami Konveyeri u centralnih procesorah abo konveyeri instrukcij komand taki yak klasichnij konveyer komand arhitekturi RISC vikoristovuyutsya shob dozvoliti perekrivannya vikonannya dekilkoh instrukcij na odnij shemi Shema yak pravilo dilitsya na logichni dilyanki yaki vikonuyut dekoduvannya komand arifmetichni operaciyi i reyestraciyu vibirki etapiv de kozhen etap obroblyaye odnu komandu za odin raz Grafichni konveyeri vikoristovuyutsya v bilshosti dzherelo grafichnih procesoriv GPU Voni skladayutsya z dekilkoh arifmetichnih pristroyiv abo povnih procesoriv yaki realizuyut rizni etapi zagalnih operacij renderingu perspektivnoyi proyekciyi vidsikannya vikna kolorovi ta svitlovi obchislennya dzherelo Klasifikaciya konveyerivArifmetichnij konveyer Komandnij konveyer Vektornij konveyer Odno ta bagatofunkcionalni konveyeri Skalyarni ta vektorni konveyeri Programni koncepciyi na protivagu aparatnim Programni konveyeri de komandi mozhut buti zapisani tam de vihid odniyeyi operaciyi avtomatichno podayetsya do vhodu nastupnoyi operaciyi Unix sistemi nazivayut trubu klasichnim prikladom cogo ponyattya hocha i inshi operacijni sistemi takozh pidtrimuyut trubi dzherelo de kilka zapitiv vidpravlyayutsya ne chekayuchi rezultatu pershogo zapitu dzherelo Koncept ta motivaciyaKonveyerna obrobka ye prirodnim ponyattyam v povsyakdennomu zhitti napriklad na skladalnomu konveyeri Rozglyanemo skladannya avtomobilya pripustimo sho pevni etapi skladalnoyi liniyi povinni vstanoviti dvigun vstanoviti kapot i vstanoviti kolesa v takomu poryadku z dovilnimi intersticialnimi krokami Avtomobil na konveyeri mozhe znahoditisya tilki na odnomu etapi odnochasno Pislya togo yak na avtomobil vstanovleno jogo dvigun vin perehodit do montuvannya kapota v rezultati nastupne avto staye u chergu na ustanovku dviguna Pershij avtomobil potim perehodit do ustanovki kolesa drugij do ustanovki kapota a dlya tretogo avtomobilya pochinayetsya ustanovka dviguna Yaksho ustanovka dviguna zajmaye 20 hvilin ustanovka kapota zajmaye 5 hvilin a ustanovka kolesa zajmaye 10 hvilin obrobka usih troh avto za umovi odnochasnoyi roboti tilki z odnim zajnyala b 105 hvilin Z inshogo boku za dopomogoyu konveyera zagalnij chas shob zakinchiti vsi tri skladaye 75 hvilin Za danih umov kozhen nastupnij avtomobil bude prihoditi z konveyera z intervalom 20 hvilin Kategoriyi konveyerivLinijni konveyeri Linijnij konveyernij procesor yavlyaye soboyu ryad etapiv obrobki i dostupu do pam yati Nelinijni konveyeri Nelinijnij konveyer takozh zvanij dinamichnim konveyerom mozhe buti realizovanij z mozhlivistyu vikonannya riznih funkcij v riznij chas U dinamichnomu konveyeri ye takozh pidklyuchennya uperedzhuyuchogo abo zvorotnogo zv yazku Nelinijnij konveyer mozhe pidtrimuvati duzhe dovgi instrukciyi Vitrati i nedolikiYak pokazuye privedenij ranishe priklad zi skladalnoyu liniyeyu konveyernij metod ne primenshuye chas obrobki odniyeyi opornoyi tochki tobto odnogo etapu ce tilki zbilshuye propusknu zdatnist sistemi pri obrobci potoku danih Visokij riven konveyerizaciyi prizvodit do zbilshennya chasu ochikuvannya chas neobhidnij dlya podolannya signalom povnoyi trubi povnij cikl konveyera Konveyerna sistema yak pravilo vimagaye bilshe resursiv elementi shemi bloki obrobki komp yuternoyi pam yati tosho nizh ta sistema yaka vikonuye odnu partiyu za odin raz tomu sho yiyi etapi ne mozhut povtorno vikoristovuvati resursi poperednoyi stadiyi Krim togo konveyerna sistema mozhe zbilshiti chas neobhidnij dlya instrukciyi shob stati zakinchenoyu Riznomanitnist situacij mozhe viklikati zriv konveyera v tomu chisli stribki za umovnimi ta bezumovnimi gilkami ta promahi keshu danih Deyaki procesori mayut arhitekturu naboru instrukcij z pevnimi funkciyami priznachenimi dlya znizhennya vplivu pomilok konveyera slot zatrimki umovni instrukciyi taki yak FCMOV i prorokuvannya rozgaluzhen tosho Deyaki procesori vitrachayut bagato energiyi i tranzistoriv u vlasnij mikroarhitekturi na funkciyi priznacheni dlya zmenshennya vplivu pomilok konveyera prorokuvannya rozgaluzhen i spekulyativnogo vikonannya pozachergove vikonannya tosho Deyaki optimizuvalni kompilyatori namagayutsya zmenshiti vpliv pomilok konveyera shlyahom zamini deyakih stribkiv vidgaluzhennyam vilnogo kodu chasto za rahunok zbilshennya dvijkovogo rozmiru fajlu Konstruktivni mirkuvannyaOdnim z klyuchovih aspektiv konstrukciyi konveyera ye balansuvannya jogo stupeniv Vikoristovuyuchi priklad liniyi skladannya mi mogli b mati veliku ekonomiyu chasu yaksho na etapi ustanovki dviguna ta kolis treba bulo vsogo 15 hvilin Hocha zatrimka sistemi vse odno bude 35 hvilin mi zmozhemo vivoditi novij avtomobil kozhni 15 hvilin Inshimi slovami vipusk gotovogo produktu konveyernim metodom zajmaye chas yakij viznachayetsya jogo najpovilnishoyu chastinoyu Zvernit uvagu sho yaksho chas neobhidnij dlya ustanovki dviguna ne mozhe buti zmenshenij do rivnya nizhche 20 hvilin to ce ne malo b niyakogo znachennya dlya stabilnoyi shvidkosti vivedennya novih avto yaksho vsi inshi komponenti zbilshili chas virobnictva do 20 hvilin Inshij mirkuvannya polyagaye u zabezpechenni adekvatnoyi buferizaciyi mizh stupenyami konveyera osoblivo koli chas obrobki ye nepravilnim abo koli elementi danih mozhut buti stvoreni abo znisheni uzdovzh konveyera Grafichni instrumenti Dlya togo shob sposterigati za planuvannyam konveyera statichnogo abo dinamichnogo vikoristovuyutsya tablici rezervuvannya Tablicya rezervuvannya Tablicya rezervuvannya dlya linijnogo abo statichnogo konveyera mozhe buti legko zgenerovana tomu sho dani jdut linijnim potokom pid chas vikonannya operaciyi statichnim konveyerom Ale u vipadku dinamichnogo abo nelinijnogo konveyera kilka tablic mozhut buti zgenerovani dlya vikonannya riznomanitnih funkcij Tablicya rezervuvannya v osnovnomu zobrazhuye chas zatrachenij na potik danih cherez truboprovid dlya funkciyi Rizni funkciyi v tablici rezervuvannya jdut za riznimi napryamkami Kilkist stovpciv v tablici rezervuvannya viznachaye chas ocinki danoyi funkciyi RealizaciyiBuferizovanij sinhronnij konveyer Zvichajni mikroprocesori sinhronnih shem vikoristovuyut buferizovani sinhronni konveyeri U cih konveyeriv registri vstavlyayutsya v promizhni stupeni sinhronno z taktovoyu chastotoyu Chas mizh kozhnim taktovim signalom vstanovlyuyetsya shob buti bilshe najdovshoyi zatrimki mizh stupenyami konveyera tak sho koli registri sinhronizuyutsya dani yaki zapisuyutsya v nih ye ostatochnim rezultatom poperednogo etapu Buferizovanij asinhronnij konveyer Asinhronni konveyeri vikoristovuyutsya v asinhronnih shemah i mayut svoyi registri z asinhronnoyu taktovoyu chastotoyu Vzagali kazhuchi voni vikoristovuyut zapit sistemu v yakij kozhen etap mozhe viyaviti koli vin zakinchiv svoyu diyalnist Koli stadiyu Si viznayut zakinchenoyu signal gotovnosti posilayetsya do etapu Si 1 Pislya pochatku stadiyi Si 1 yaka prijmaye vhidni dani vona povertaye pidtverdzhennya pro otrimannya danih vid stadiyi Si Mikroprocesor The AMULET yavlyaye soboyu priklad mikroprocesora yakij vikoristovuye buferizovani asinhronni konveyeri Nebuferizovani konveyeriNebuferizovani konveyeri tak zvani hvilovi konveyeri ne mayut registriv mizh vlasnimi etapami Zamist cogo zatrimki v konveyeri ye zbalansovanimi tak sho dlya kozhnogo stupenya riznicya mizh pochatkom ta kincem stabilizovanih vihidnih danih zvedena do minimumu Takim chinom potoki danih hvilyami ruhayutsya po konveyeru i kozhna hvilya zberigayetsya u maksimalno korotkomu sinhronizovanomu viglyadi Maksimalna shvidkist peredachi danih yaka mozhe buti podana u hvilovij konveyer viznachayetsya maksimalnoyu rizniceyu zatrimki mizh pershoyu chastinoyu danih sho nadhodyat z konveyera i ostannoyu chastinoyu danih dlya bud yakoyi danoyi hvili Yaksho dani podayutsya shvidshe nizh ce mozhlivo dlya nayavnih hvil voni budut stvoryuvati pereshkodi odin odnomu Div takozhDiagrama potokiv danih Propuskna zdatnist kanalu Paralelni obchislennya Konveyer komand Classic RISC pipeline Grafichnij konveyer Konveyer programnogo zabezpechennya Konveyer Unix en dlya VM en dlya MVS en XML pipelineDzherelaQuinn Michael J 2004 Parallel Programming in C with MPI and openMP angl Dubuque Iowa McGraw Hill Professional ISBN 0072822562 PosilannyaA real hardware implementation of a Pipeline protocol PDF angl