Явен конфликт на данни

Конфликти на ресурси

Забавяне на устройството

Схема на конвейера

Тръбопровод с инструкции

Организация на процесора

Развитието на COP наложи промени в дизайна на процесора:

1. Обработката на командите е разделена на отделни независими стъпки. Устройствата за обработка са разделени на отделни блокове, всеки изпълнява една стъпка.

2. Въвеждат се специални буферни памети като посредници между блоковете. Блокът завършва своята стъпка, прехвърля резултатите в буфера и обработва следващата.

Целта на разделянето на стъпки е да се изгради конвейер от команди. Процесорът е разделен на отделни блокове, всеки от които изпълнява една стъпка на инструкция. Брой стъпки (етапи на конвейера) от 10 или повече (Pentium 4-20 стъпки).

Помислете за четиристепенен тръбопровод:

F (Извличане)D (декодиране)E (изпълни)W (напиши)
Избор на командаДекодиране и извличане на операндиИзвършване на операцияЗаписване на резултатите
B1B2B3

F,D,E,W - блокове за обработка;

F1D1F1W1
F2D2E1W2
F3D3E3W3
F4D4E4W4
F5D5E5W5
Време за такт

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

- Устройства за забавяне - изпълнение на някои стъпки в повече от един такт

- Ресурсен конфликт

- Явен конфликт на данни

Ако изпълнението на някоя от стъпките на тръбопровода се забави, това ще забави всичко останало. Може да отнеме повече от един цикъл за четене на инструкция, ако няма инструкция в кеша. Етапът на декодиране на извличането на операнди зависи от тяхната наличност, изпълнението на аритметичните операции се извършва по различно време и зависи от вида на операциите.

Работното време на устройствата (F, D, W) се влияе от полезно подобрение в конвейера - увеличаване на размера на буфера и организирането на опашка от команди в него. Други подобрения са по-сложни:

- Разработване на параметри с множество командни канали

- Разработване на параметър с командна система, в която всичко се извършва в равен брой цикли

Сблъсъци възникват, когато две устройства имат достъп до един и същ ресурс едновременно. И така, в четиристепенен конвейер три устройства (F, D, W) могат да имат достъп до паметта едновременно.

Схема на конфликт по устройство:

Мерки за намаляване на броя на конфликтите:

1. Разделяне на кеша за данни и команди

2. Въвеждане на двупортови регистри (възможен е едновременен достъп)

3. Стратификация на паметта - едновременен достъп до клетка от различни блокове

Данните, получени в резултат на дадена инструкция, ще бъдат използвани като операнди за последващата инструкция. Ако тази команда следва непосредствено първата, тогава едновременното използване в конвейера води до грешка - конфликт.

Конфликт „четене след запис“, т.е. програмата е предназначена за последователно изпълнение на команди. Първо пишете, после четете. Такава грешка се разпознава на етапа на превода. Има място в програмата за прием.

- Промяна на реда на командите, т.е. команди със зависимост от данни, не поставяйте една до друга

- вмъкнат междузависими команди до дъното или повече команди

Хардуерен метод за справяне с такива конфликти е напредването на операнда.

F (Извличане)D (декодиране)E (изпълни)W (напиши)
B1B2B3

Не намерихте това, което търсихте? Използвайте търсачката:

Деактивирайте adBlock! и обновете страницата (F5)наистина е необходимо