Тръбопровод: Архитектура, предимства и недостатъци

Опитайте Нашия Инструмент За Премахване На Проблемите





Увеличаването на скоростта на изпълнение на програмата следователно увеличава скоростта на процесора. Съществуват много начини, както хардуерно внедряване, така и софтуерна архитектура, за увеличаване на скоростта на изпълнение. Беше забелязано, че чрез едновременно изпълнение на инструкциите времето, необходимо за изпълнение, може да бъде намалено. Концепцията за паралелизъм в програмиране беше предложено. Съгласно това за един цикъл на часовника могат да бъдат изпълнени повече от една инструкция. Тази концепция може да бъде практикувана от програмист чрез различни техники като Конвейер, множество изпълнителни единици и множество ядра . Сред всички тези методи за паралелизъм най-често се практикува конвейерно изграждане. И така, как може да се изпълни инструкция в конвейерния метод? Как увеличава скоростта на изпълнение?

Какво представлява Pipelining?

За да разберем концепцията за конвейер, нека разгледаме основното ниво на изпълнението на програмата. Инструкцията е най-малкият пакет за изпълнение на програма. Всяка инструкция съдържа една или повече операции. Простите скаларни процесори изпълняват една или повече инструкции за тактов цикъл, като всяка инструкция съдържа само една операция. Инструкциите се изпълняват като последователност от фази, за да се получат очакваните резултати. Тази последователност е дадена по-долу




Последователност на изпълнение на инструкциите

Последователност на изпълнение на инструкциите

  • IF: Извлича инструкцията в регистъра с инструкции.
  • ID: Инструкция Decode, декодира инструкцията за кода за работа.
  • AG: Генератор на адреси, генерира адреса.
  • DF: Извличане на данни, извлича операндите в регистъра за данни.
  • EX: Изпълнение, изпълнява посочената операция.
  • WB: Пишете обратно, записвате резултата в регистъра.

Не всички инструкции изискват всички горепосочени стъпки, но повечето изискват. Тези стъпки използват различни хардуерни функции. При конвейерирането тези различни фази се извършват едновременно. При конвейерирането тези фази се считат за независими между различните операции и могат да се припокриват. По този начин могат да се извършват множество операции едновременно, като всяка операция е в своя независима фаза.



Инструкция Полагане на тръбопроводи

Нека да разгледаме начина, по който се обработват инструкциите в конвейер. Това може лесно да се разбере от диаграмата по-долу.

Инструкция Полагане на тръбопроводи

Инструкция Полагане на тръбопроводи

Да приемем, че инструкциите са независими. В обикновен процесор за конвейерно предаване, в даден момент, има само една операция във всяка фаза. Началната фаза е IF фазата. И така, при първия цикъл на часовника се извлича една операция. Когато следващият тактов импулс пристигне, първата операция преминава във фаза ID, оставяйки фазата IF празна. Сега тази празна фаза се разпределя към следващата операция. И така, по време на втория тактов импулс първата операция е във фаза ID, а втората операция е във фазата IF.

За третия цикъл първата операция ще бъде във фаза AG, втората операция ще бъде във фаза ID и третата операция ще бъде във фаза IF. По този начин инструкциите се изпълняват едновременно и след шест цикъла процесорът ще изведе напълно изпълнена инструкция за тактов цикъл.


Изпълнява ли се тази инструкция последователно, първоначално първата инструкция трябва да премине през всички фази, след което следващата инструкция ще бъде извлечена? Така че, за изпълнение на всяка инструкция, процесорът ще изисква шест тактови цикъла. Но в конвейерния процесор, тъй като изпълнението на инструкциите се извършва едновременно, само първоначалната инструкция изисква шест цикъла и всички останали инструкции се изпълняват като по един за всеки цикъл, като по този начин се намалява времето за изпълнение и се увеличава скоростта на процесора.

Тръбопроводна архитектура

Паралелизъм може да се постигне с хардуер, компилатор и софтуерни техники. Да се ​​използва концепцията за тръбопровод в компютърна архитектура много процесорни единици са взаимосвързани и функционират едновременно. В архитектурата на конвейерния процесор има отделни блокове за обработка, предвидени за цели числа и инструкции с плаваща запетая. Докато в последователната архитектура е предвидена една функционална единица.

Ефективен процесорен блок

Ефективен процесорен блок

При статичен конвейер процесорът трябва да предава инструкциите през всички фази на конвейера, независимо от изискването за инструкция. В динамичен процесор на тръбопровод, инструкция може да заобиколи фазите в зависимост от нейните изисквания, но трябва да се движи в последователен ред. В сложен динамичен процесор на тръбопровод, инструкцията може да заобиколи фазите, както и да избере фазите извън ред.

Конвейер в RISC процесори

Най популярен RISC архитектура ARM процесорът следва 3-степенна и 5-степенна конвейерна обработка. В 3-степенното конвейериране етапите са: Извличане, Декодиране и Изпълнение. Този конвейер има латентност от 3 цикъла, тъй като отделната инструкция отнема 3 цикъла на часовника, за да завърши.

ARM 3 етап тръбопровод

ARM 3 етап тръбопровод

За правилното изпълнение на конвейерната хардуерна архитектура също трябва да бъде надстроена. Хардуерът за 3-степенно конвейериране включва банка от регистри, ALU, превключвател на барел, генератор на адреси, инкрементер, декодер на инструкции и регистри на данни.

ARM 3 Пътека за данни на етапа

ARM 3 Пътека за данни на етапа

В 5 етапа конвейерни етапи са: Извличане, Декодиране, Изпълнение, Буфер / данни и Обратно записване.

Опасности от тръбопроводи

В типична компютърна програма освен прости инструкции има инструкции за разклоняване, операции за прекъсване, инструкции за четене и писане. Полагането на тръбопроводи не е подходящо за всякакви инструкции. Когато някои инструкции се изпълняват в тръбопровод, те могат да затворят тръбопровода или да го промият напълно. Този тип проблеми, причинени по време на изграждането на тръбопроводи, се наричат ​​опасности от тръбопроводи.

В повечето компютърни програми резултатът от едната инструкция се използва като операнд от другата инструкция. Когато такива инструкции се изпълняват в конвейер, се получава разбивка, тъй като резултатът от първата инструкция не е наличен, когато инструкция две започне да събира операнди. И така, инструкция две трябва да спре, докато се изпълни инструкция една и резултатът се генерира. Този тип опасност се нарича опасност за четене - след запис на конвейер.

Прочетете след писане опасност

Прочетете след писане опасност

Изпълнението на инструкции за клонове също създава опасност от конвейер. Инструкции за клон, докато се изпълняват в тръбопровод въздейства върху етапите на извличане на следващите инструкции.

Поведение на клон

Поведение на клон

Предимства на тръбопровода

  • Увеличава се производителността на инструкциите.
  • Увеличаването на броя на етапите на тръбопровода увеличава броя на инструкциите, изпълнявани едновременно.
  • По-бързо ALU може да бъде проектирано, когато се използва тръбопровод.
  • Pipelined CPU работи на по-високи тактови честоти от RAM.
  • Конвейерът увеличава общата производителност на процесора.

Недостатъци на тръбопровода

  • Проектирането на конвейерния процесор е сложно.
  • Увеличава се латентността на инструкциите при процесорите с конвейер.
  • Пропускателната способност на конвейерния процесор е трудна за предвиждане.
  • Колкото по-дълъг е тръбопроводът, толкова по-лош е проблемът с опасността за инструкциите за клонове.

Конвейерното изпълнение е от полза за всички инструкции, които следват подобна последователност от стъпки за изпълнение. Процесорите, които имат сложни инструкции, при които всяка инструкция се държи различно от другата, са трудни за въвеждане. Преработвателите имат разумни съоръжения с 3 или 5 степени на тръбопровода, тъй като с увеличаване на дълбочината на тръбопровода опасностите, свързани с него, се увеличават. Назовете някои от конвейерните процесори със степента им на конвейер?