Professional Documents
Culture Documents
Ak06 2022
Ak06 2022
Ak06 2022
Поглавје 4
1
Извршување на lw инструкција
lw $t1, offset($t2)
5
Извршување на lw инструкција
lw $t1, offset($t2)
6
Извршување на lw инструкција
• Главната контрола поставува:
– АЛУОп = 10 (види го слајд 23)
– АЛУ ќе изврши собирање на влезните зборови $t2+offset
• Излезот од АЛУ се доведува како адреса за читање од податочната
меморија
• Главната контрола поставува:
– Мемориско читање = 1
– Мемориско запишување = 0
– Податочната меморија е отворена за читање
• Главната контрола поставува:
– Меморија кон регистер = 1
– Податоците од податочната меморија ќе се запишат во регистерската
датотека
• Главната контрола поставува:
– разгранување = 0
– PC+4 се запишува во програмскиот бројач
7
Извршување на beq инструкција
8
Извршување на beq инструкција
beq $t1, $t2, offset
9
Извршување на beq инструкција
beq $t1, $t2, offset
10
Извршување на j инструкција
скок
11
Извршување на j инструкција
j address
12
Која инструкција е во тек?
A. add
B. lw
C. sw
D. beq
lw
13
Која инструкција е во тек?
Инструкција[25:21]
A. add
B. lw
C. sw
D. beq
14
Која инструкција е во тек?
Инструкција[31:26
]
Инструкција[25:21]
A. add
B. lw
C. sw
D. beq
add
15
Зошто не се користи едноциклусната
имплементација?
• Инструкцијата lw ги користи сите елементи
од податочната патека
16
Проточност
Поглавје 4
17
Преглед на проточноста
18
Преглед на проточностите
19
Преглед на проточностите
• Нечисти алишта се средуваат во 4 чекори
1. Перење
2. Сушење
3. Пеглање
4. Ставање во плакар
• Проточниот пристап подразбира истовремено
извршување на сите 4 чекори (ако имаме
засебен куп алишта за секој чекор)
– Чекорите се викаат етапи во проточноста
20
Преглед на проточностите
• МИПС инструкциите се извршуваат во пет чекори:
1. Преземање на инструкција од меморија.
2. Во паралела се извршуваат два чекори:
• Читање од регистрите
• Декодирање на инструкцијата (генерирање на контролните сигнали)
3. Извршување на операцијата дефинирана со инструкцијата
4. Читање од податочната меморија
5. Запишување во регистер
21
Пример:
• Време на извршување на секој од 5-те чекори
поединечно, и време на извршување на инструкција
22
Пример:
• За едно-циклусни имплементации на МИПС
процесори
– lw го диктира периодот на часовникот на 800 ps (пико
секунди)
– beq може да се изврши за 500 ps, но и таа инструкција се
извршува за 800 ps
• За проточни имплементации на МИПС процесори
– Извршувањето на најбавната етапа го диктира периодот
на часовникот на 200 ps
– Читање од регистер може да се изврши за 100 ps, но и
оваа етапа се извршува за 200 ps
– 5 етапи по 200 ps значи дека една инструкција се
извршува за 1000 ps
23
Пример:
• Проточна имплементација со n етапи може, теоретски, да понуди
забрзување за фактор n во однос на едно-циклусна имплементација
24
Пример со три lw инструкции
25
Пример:
• За едно-циклусни имплементации на МИПС
процесори
– Трите инструкции ќе се извршат за 3х800 ps = 2400 ps
• За проточни имплементации на МИПС процесори
– 5 етапи по 200 ps значи дека една инструкција се
извршува за 1000 ps
– Следната инструкција ќе биде извршена за 200 ps
– Трите инструкции ќе се извршат за
1000 ps +200 ps + 200 ps = 1400 ps
26
Пример со три lw инструкции
27
Дизајнирање на инструкциско
множество за проточност
• Во МИПС сите инструкции се со иста должина
– Ова ја олеснува имплементацијата на проточноста
28
Проточни конфликти
• Проточен конфликт е состојба на процесорот во која
процесорот не смее да продолжи со извршување на
некоја инструкција, односно нејзиното извршување во тој
момент би било катастрофално за текот и резултатите на
програмата
29
Структурни конфликти
• Структурни конфликти се јавуваат кога две инструкции се
натпреваруваат за ист хардверски ресурс
30
Податочни конфликти
• Податочни конфликти се јавуваат кога на една инструкција
и е потребен резултат од некоја претходна инструкција,
која сеуште не е извршена
• Пример:
– add $s0, $t0, $t1
– sub $t2, $s0, $t3
• add ќе го запише резултатот во $s0 во 5-тата етапа, sub
мора да чека 3 циклуса за резултатот од add да се
запише во $s0
31
Графичко претставување на
етапите во проточнен процесор
• IF – преземање на инструкцијата
• ID – декодирање на инструкцијата (во МИПС и
читање од регистри)
• EX –извршување на инструкцијата во АЛУ
• МЕМ – пристап до меморијата
• WB – запишување во регистер
32
Графичко претставување на
етапите во проточнен процесор
33
Препраќање – решение за податочните конфликти
34
Препраќање – решение за податочните конфликти
35
Преуредување на кодот –решение за
податочните конфликти
36
Контролни конфликти
beq $1,$2,10
lw $3,300($0)
WB
.
.
.
or $7,$8,$9
37
Контролни конфликти
• Решение #1:
– МИПС процесорот се надоградува така што
beq се извршува во ID етапата
– се прави застој од еден такт циклус
– Во следниот такт се одбира вистинската
инструкција што следи по beq инструкцијата
38
Решение #1:
39
Решение #1:
40
Контролни конфликти
• Решение #2:
– хардвер за предвидување на гранењето
– Веднаш по beq инструкциите се преземаат
предвидените инструкции
• Нема застои ако предвидувањето е точно
• Ако предвидувањето е погрешно, погрешно преземените
инструкции не смеат да пишуваат во регистрите
– Наједноставен предвидувач: скокот не е преземен
– Динамички предвидувачи:
• Го следат однесувањето на beq инструкциите
• Одлуката за скок се менува со текот на програмата
• Ја памтат адресата на скокот на beq инструкциите
• Прецизноста им е над 90%
41
Решение #2:
42
Решение #2:
43
Материјал за учење
44