Вовед во проточност Flashcards
II колоквиум
Што е проточност?
Имплементациска техника при која повеќе инструкции се преклопуваат при извршувањето.
Чекори на извршување на МИПС инструкции
- МИПС инструкциите се извршуваат во пет чекори
1. Преземање на инструкција од меморија.
2. Во паралела се извршуваат два чекори: - Читање од регистрите
- Декодирање на инструкцијата генерирање на контролните сигнали)
3. Извршување на операцијата дефинирана со инструкцијата
4. Читање од податочната меморија
5. Запишување во регистер - МИПС проточен процесор се состои од 5 етапи
– Во секоја етапа истовремено се извршува засебна инструкција
Интел х86 процесор
Интеловите х86 инструкции се со различни должини од 1 бајт до 17 бајти.
– Имплементацијата на проточноста е комплицирана.
– Затоа Интеловите процесори најпрвин ги конвертираат х86 инструкциите во инструкции со еднаква должина.
Етапи во проточен процесор
- IF - преземање на инструкцијата
- ID - декодирање на инструкцијата (во МИПС и читање од регистри)
- EX - извршување на инструкцијата во АЛУ
- МЕМ - пристап до меморијата
- WB - запишување во регистер
Проточни конфликти
Проточен конфликт е состојба на процесорот во која процесорот не смее да продолжи со извршување на некоја инструкција, односно нејзиното извршување во тој момент би било катастрофално за текот и резултатите на програмата.
Типови на конфликти
Постојат три типа на проточни конфликти:
– Структурни конфликти
– Податочни конфликти
– Контролни конфликти
Структурни конфликти
Структурни конфликти се јавуваат кога две инструкции се натпреваруваат за ист хардверски ресурс.
- Пример 1 : замислете во процесот на перење да имаме машина за перење и сушење. Во тој случај имаме структурен конфликт, бидејќи не можеме во исто време да переме едни алишта и да сушиме други.
- Пример 2 : може да се направи процесор со заедничка (инструкциска и податочна) меморија. Но тогаш, ќе се појави структурен хазард две инструкции ќе се натпреваруваат за преземање од меморијата.
Податочни конфликти
Податочни конфликти се јавуваат кога на една инструкција и е потребен резултат од некоја претходна инструкција, која се уште не е извршена
* Пример:
– add $s0, $t0, $t1
– sub $t2, $s0, $t3
* add ќе го запише резултатот во $s0 во 5 тата етапа, sub мора да чека 3 циклуса за резултатот од add да се запише во $s0.
Контролни конфликти
beq $1,$2,10
lw $3,300($0)
.
.
.
or $7,$8,$9
- Кога beq е во ID етапата, која инструкција треба да се преземе во IF етапата?
– Следбеникот на beq (lw) или скокот (or) - Која инструкција треба да се преземе, ќе биде познато во EX етапата
- Контролен конфликт кога beq е во EX етапата, инструкциите во ID и IF етапите не одговараат на програмскиот редослед
Едноциклусна податочната патека
види презентација
Проточна податочната патека
види презентација
Архитектурна состојба
- Под архитектурна состојба на процесорот се подразбира состојбата на (содржината во)
– Регистерската датотека
– Податочната меморија
– Програмскиот бројач - Архитектурната состојба е видлива (достапна) на програмерот
- Секоја инструкција прави апдејт на архитектурната состојба на процесорот
- Програмскиот бројач може да се смета како проточен регистер ја храни инструкциската меморија со адреси
- Следи секвенца на слики кои ја демонстрираат работата на проточната податочна патека