Układ sterujący wykonujący rozkazy w sposób potokowy składa się z 6 segmentów 5., Sz, ..., 5*
strumieó rozkozów
Pobronie rozkozu Zdł*cxl0»0f'i« roZkOZU Wyznoczenie odf«su orq. Pobranie or gum en (U Wykonanie rozkazu Zccte wyniku
* Sekty z®q<jro r/k
I ! 3 « i » ' ■
1 |
2 |
3 |
4 |
5 |
6 |
7 |
a |
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
1 |
2 |
3 |
4 |
5 |
6 | ||
I |
2 |
3 |
4 |
5 | |||
1 |
2 |
3 |
4 | ||||
1 |
A |
3 |
r.
Przykład podziału cyklu rozkazowego i potokowej realizacji strumienia rozkazów
'W* T^lkdLŁU
Czas wykonania ciągu n rozkazów wynosi: z potokowym układem sterującym o k segmentach
- bez mechanizmu potokowego l?= (n+*“ W* 3 (nik)T + (k-l)/kT -* +- “ —)ł^~
t _ „j- g^e ^ - czas realizacji jednego rozkazu.
T- uł*ó ułuk r©xWo.w. Prz^ zaskxsowan*u układu potokowego o k segmentach można wiec
• * w przybliżeniu fc-krotnie przyspieszyć realizację programu.
Rozkazy rozgałęzień
Zdclcndowanie rozkazu rozgałęzienia powoduje wstrzymanie procesu wprowadzania do potoku nowych rozkazów, do czasu wyznaczenia adresu nowego rozkazu, tj. wykonania skoku
» m m ? uayiił— yq3
r, -
r, -
rj *<*“ U
r5
rł
Zależności między danymi
I
ADD : X — X + R\ MUL : R2 *- R2 * X
Zauważmy, że wykonanie fazy pobrania argumentu X w rozkazie mnożenia wymaga wcześniejszego zakończenia wykonywania poprzedniego rozkazu dodawania. W potoku nastąpi więc wstrzymanie wykonywania rozkazu mnożenia na czas trwania 2 faz, tzn. do chwili uaktualnienia wartości danej X
Sktack wvsujp*enia skoku w polekowym wykonywaniu rozkazów
10 czas
O j 23436 78?
ADD mrP~l|A£,HPA,|| II Z,!
1 pj II o ||ae.|^: :::x |
Skutek wystąpienia zależności między danymi w procesie wykonywania dwóch kolejnych rozkazów: P - pobranie rozkazu. D — zdekodowanie rozkazu, AE — obliczenie adresu efektywnego argumentu, PA — pobranie argumentu (wg AE), W — wykonanie operacji, Z - zapis wyniku