• Nie Znaleziono Wyników

Obniżony pobór mocy. Mikrokontrolery rodziny Intel 8051 wykonane w technologii CHMOS mogą pracować przy obniżonym poborze mocy.

N/A
N/A
Protected

Academic year: 2022

Share "Obniżony pobór mocy. Mikrokontrolery rodziny Intel 8051 wykonane w technologii CHMOS mogą pracować przy obniżonym poborze mocy."

Copied!
78
0
0

Pełen tekst

(1)

1

Obniżony pobór mocy

Mikrokontrolery rodziny Intel 8051 wykonane w technologii CHMOS mogą pracować przy obniżonym poborze mocy.

Istnieją 2 tryby pracy z obniżonym poborem mocy

1 IDLE

2 POWER DOWN

(2)

2

Obniżony pobór mocy

OSC

PD IDL

CPU przerwania

port szeregowy liczniki

Generator sygnału

zegarowego

(3)

3

Obniżony pobór mocy

Tryb IDLE:

• oscylator pracuje

• bloki systemu przerwań, liczników i

portu szeregowego taktowane zegarem

• CPU nie jest taktowane zegarem

Wyjście z trybu IDLE:

• przyjęcie przerwania lub

• sprzętowy RESET

(4)

4

Obniżony pobór mocy

Tryb POWER DOWN:

• oscylator nie pracuje

Wyjście z trybu POWER DOWN:

• sprzętowy RESET

Rejestr specjalny PCON

SMOD

- - -

GF1 GF0 PD IDL

(5)

5

Obniżony pobór mocy

TRYB IDLE

Wywołanie - ustawienie bitu IDL

Utrzymywany stan rejestrów specjalnych i wewnętrznej pamięci RAM

Końcówki portów zachowują stan sprzed wywołania trybu IDLE

Wyjście za pomocą przerwania

Zgłoszenie aktywnego przerwania powoduje sprzętowe zerowanie bitu IDL i zakończenie pracy w trybie IDLE

(6)

6

Obniżony pobór mocy

TRYB IDLE (c.d.)

Wyjście za pomocą przerwania (c.d.)

Za pomocą 1 rozkazu można wywołać tryb IDLE i nadać wartość bitom GF0 i/lub GF1 - można zatem sprawdzić czy przerwanie zgłosiło się w czasie normalnej pracy, czy podczas pracy w trybie IDLE

Po wykonaniu rozkazu RETI procesor wykonuje instrukcję następną po tej, która wywołała tryb IDLE

(7)

7

Obniżony pobór mocy

TRYB IDLE (c.d.)

Wyjście za pomocą sprzętowego RESETU Sygnał zerujący podany na wejście RST

powoduje asynchroniczne wyzerowanie bitu IDL, co kończy tryb IDLE

CPU podejmuje wykonywanie programu od

rozkazu następnego po tym, który wywołał tryb IDLE

2-3 rozkazy po tym, który wywołał tryb IDLE, nie powinny wpisywać nic do końcówek portów,

ani do zewnętrznej pamięci danych

(8)

8

8051 - Zerowanie

S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 RST

ALE PSEN

P0 I A I A I A I A

19 taktów oscylatora

wewn. sygnał zerujący próbkowanie

RST (S5P2)

(9)

9

Obniżony pobór mocy

TRYB IDLE (c.d.)

Wyjście za pomocą sprzętowego RESETU (c.d.) Zanim nastąpi zerowanie, dostęp do

wewnętrznej pamięci RAM jest blokowany

Po 2 lub 3 cyklach maszynowych kontrolę nad procesorem przejmuje wewnętrzny algorytm zerujący

RESET powoduje wyzerowanie bitów GF1 i GF0, ale nie zmienia zawartości wewnętrznej pamięci RAM

(10)

10

Obniżony pobór mocy

TRYB POWER DOWN

Wywołanie - ustawienie bitu PD

Utrzymywany stan rejestrów specjalnych i wewnętrznej pamięci RAM.

Podczas trybu POWER DOWN można obniżyć napięcie zasilania do 2 V, ale przed wyjściem z tego trybu należy przywrócić normalną

wartość.

Wyjście za pomocą sprzętowego RESETU

Sygnał zerujący trzeba utrzymywać na wejściu RST przez ok. 10 ms, aby ustabilizował się

oscylator.

(11)

11

Obniżony pobór mocy

Przykład:

80C31BH - prąd zasilania:

praca normalna - 20 mA IDLE - 5 mA

POWER DOWN - 50μA

(12)

12

80XC51FX

Wyjście z trybu POWER DOWN także za pomocą przerwania zewnętrznego.

W rejestrze PCON zaimplementowano bit POF (POWER-OFF FLAG), który jest sprzętowo

ustawiany po wykryciu zmiany napięcia zasilania od zera do 5 V.

(13)

13

Pobranie rozkazu

S1 S2 S3 S4 S5 S6 S1 S2

PCL PCL PCL

PCH PCH PCH

próbkowanie

danych próbkowanie

danych próbkowanie danych

XTAL:

ALE:

PSEN:

P0:

P2:

(14)

14

Rozkaz 2-bajtowy

S1 S2 S3 S4 S5 S6 S1 S2

Odczyt kodu op.

XTAL:

ALE:

PSEN:

Odczyt

2 bajtu Odczyt następnego

kodu op.

S1 S2 S3 S4 S5 S6 S1

ADD A, #30H długość = 2 bajty, czas = 1 cykl

(15)

15

Rozkaz skomplikowany

Odczyt

kodu op. Odczyt

jałowy Odczyt jałowy

S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1

Odczyt jałowy

INC DPTR długość = 1 bajt czas = 2 cykle

(16)

16

Rozkaz prosty, 1-bajtowy

INC A długość = 1 bajt, czas = 1 cykl

Odczyt

kodu op. Odczyt jałowy

S1 S2 S3 S4 S5 S6 S1 S2 S3

Odczyt następnego

kodu op.

W liście rozkazowej 8051 jest 37 takich

rozkazów (całkowita liczba rozkazów wynosi 111).

Ponad 30% rozkazów ma długość 1 bajtu i trwa przez cały cykl maszynowy, chociaż być może mogłyby być wykonane w ciągu połowy cyklu.

(17)

17

DALLAS DS80C320

Podstawowy cykl maszynowy składa się z 4 taktów zegara i można się w nim odwołać do pamięci programu tylko jeden raz.

37 rozkazów 1-bajtowych wykonuje się w ciągu 4 taktów zegara, zamiast 12.

Przy tej samej częstotliwości oznacza to, że DS80C320 jest 3 razy szybszy.

(18)

18

DALLAS DS80C320

Niestety, nie wszystkie rozkazy mogą być wykonane w jednym cyklu maszynowym.

2 cykle maszynowe - rozkazy 2-bajtowe lub takie, które wymagają dwóch odwołań do pamięci zewnętrznej:

ANL A, #dane (2 bajty) (x 1.5) MOVX A, @DPTR (1 bajt) (x 3)

(19)

19

DALLAS DS80C320

3 cykle maszynowe - rozkazy 3-bajtowe lub krótsze, które długo się wykonują:

ANL direct, #dane (3 bajty) (x 2)

INC DPTR (1 bajt) (x 2)

SJMP adres (2 bajty) (x 2)

(20)

20

4 cykle maszynowe - rozkazy wykonujące się długo:

CJNE (max. 3 bajty) (x 1.5)

RET (1 bajt) (x 1.5)

RETI (1 bajt) (x 1.5)

5 cykli maszynowych:

MUL AB (1bajt) (x 2.4)

DIV AB (1bajt) (x 2.4)

DALLAS DS80C320

(21)

21

DALLAS DS80C320

Szybkość działania dodatkowo zwiększona przez wprowadzenie drugiego rejestru

DPTR.

Przełączania między dwoma rejestrami

DPTR dokonuje się przez zmianę wartości najmłodszego bitu w rejestrze specjalnym DPS (podobnie do przełączania banków

rejestrów). Robi się to za pomocą instrukcji:

INC DPS

(22)

22

DALLAS DS80C320

Przykład: przepisanie 64 bajtów z jednego

obszaru zewnętrznej pamięci danych do innego:

R5 - licznik bajtów do przepisania DPTR(1) - adres przeznaczenia

DPTR(2) - adres źródła

(23)

23

8051

mov R5, #64

mov R7, #High(DHDL) mov R6, #Low(DHDL) mov DPTR, #SHSL

petla:

movx A, @DPTR ; 2 cykle, 1 bajt inc DPTR ; 2 cykle, 1 bajt push DPH ; 2 cykle, 2 bajty push DPL ; 2 cykle, 2 bajty mov DPH, R7 ; 2 cykle, 2 bajty mov DPL, R6 ; 2 cykle, 2 bajty movx @DPTR, A ; 2 cykle, 1 bajt

(24)

24

8051

inc DPTR ; 2 cykle, 1 bajt mov R7, DPH ; 2 cykle, 2 bajty mov R6, DPL ; 2 cykle, 2 bajty pop DPL ; 2 cykle, 2 bajty pop DPH ; 2 cykle, 2 bajty djnz R5, petla ; 2 cykle, 2 bajty

Wykonanie jednego obrotu pętli trwa 26 cykli maszynowych!!!! Kod pętli zajmuje 22 bajty

(25)

25

DALLAS DS80C320

mov R5, #64

mov DPTR, #DHDL

inc DPS

mov DPTR, #SHSL petla:

movx A, @DPTR ; 2 cykle, 1 bajt inc DPTR ; 3 cykle, 1 bajt inc DPS ; 2 cykle, 2 bajty movx @DPTR, A ; 2 cykle, 1 bajt inc DPTR ; 3 cykle, 1 bajt inc DPS ; 2 cykle, 2 bajty djnz R5, petla ; 3 cykle, 2 bajty

Wykonanie jednego obrotu pętli trwa 17 cykli maszynowych.

Kod pętli zajmuje 10 bajtów

(26)

26

BC - licznik słów

HL - wskaźnik źródła

DE - wskaźnik przeznaczenia

Przesłania z automatyczną dekrementacją

LDD - load and decrement M(DE) := M(HL)

HL := HL - 1 DE := DE - 1 BC := BC - 1

jeżeli BC=0, wyzeruj wskaźnik parzystości P/V jeżeli BC≠0, ustaw wskaźnik parzystości P/V

Z80 - przesyłanie bloku danych

(27)

27

Przesłania z automatyczną dekrementacją (c.d.)

LDDR - Load, decrement and repeat (dopóki BC ≠0)

LD BC, 500

LD HL, adres_zrodla

LD DE, adres_przeznaczenia LDDR

Z80 - przesyłanie bloku danych

(28)

28

8051 - przesłanie bloku danych

R2 - licznik słów

R0 - wskaźnik źródła

R1 - wskaźnik przeznaczenia mov R2, #50

mov R0, #adres_zrodla

mov R1, #adres przeznaczenia petla:

mov A, @R0 mov @R1, A dec R0

dec R1

djnz R2, petla

(29)

29

BC - licznik słów

HL - wskaźnik bloku A - szukany wzorzec

Przeszukiwanie z automatyczną dekrementacją CPD - compare and decrement

jeżeli A=M(HL), ustaw wskaźnik zera Z jeżeli A≠M(HL), wyzeruj wskaźnik zera Z HL := HL - 1

BC := BC - 1

jeżeli BC=0, wyzeruj wskaźnik parzystości P/V jeżeli BC≠0, ustaw wskaźnik parzystości P/V

Z80 - przeszukiwanie bloku danych

(30)

30

Przeszukiwanie z automatyczną dekrementacją (c.d.)

CPDR - compare, decrement and repeat (dopóki BC≠0 lub nie znaleziono wzorca)

LD BC, 500

LD HL, adres_poczatkowy LD A, wzorzec

CPDR

Z80 - przeszukiwanie bloku danych

(31)

31

8051 - przeszukiwanie bloku danych

R2 - licznik słów

R0 - wskaźnik początku R1 - szukany wzorzec

mov R2, #50

mov R0, #adres_poczatkowy mov R1, #wzorzec

petla:

mov A, @R0 dec R0

clr C

subb A, R1

jz znaleziono djnz R2, petla

(32)

32

Power management

Monitorowanie niestabilnego napięcia zasilania

• Wczesne ostrzeganie o spadku napięcia zasilania (przerwanie POWER-FAIL

WARNING)

• Zerowanie po włączeniu zasilania (POWER- ON RESET)

• Zerowanie wskutek spadku napięcia zasilania (POWER-FAIL RESET)

• Napięcie referencyjne (bandgap)

• Wyjście z trybu IDLE za pomocą watchdoga

(33)

33

Power management

Wczesne ostrzeganie o spadku napięcia

zasilania (przerwanie POWER-FAIL WARNING) Stan napięcia stale monitorowany za pomocą układu napięcia referencyjnego i bloku

analogowego.

Jeżeli napięcie zasilania spadnie poniżej VPFW, generowane jest przerwanie (o ile zostało

uaktywnione)

(34)

34

Power management

Wczesne ostrzeganie o spadku napięcia

zasilania (przerwanie) (POWER-FAIL WARNING) Procedura obsługi przerwania zapisuje np.

krytyczne dane do pamięci nieulotnej.

Nawet jeżeli przerwanie zostało zablokowane, jego znacznik jest nadal ustawiany sprzętowo tak długo, jak napięcie zasilania jest niższe niż VPFW.

(35)

35

Power management

Wczesne ostrzeganie o spadku napięcia

zasilania (przerwanie) (POWER-FAIL WARNING) Po wykonaniu procedury obsługi przerwania:

1) Zablokować przerwanie

2) Na przemian zerować i testować znacznik PFI, do momentu, aż testowanie wykaże 0 (oznacza to, że VCC > VPFW)

3) Podjąć normalne wykonywanie programu

(36)

36

Power management

Zerowanie wskutek spadku napięcia zasilania (POWER-FAIL RESET)

Jeżeli napięcie zasilania spadnie poniżej

wartości VRST, automatycznie generowany jest sygnał zerowania (nie można go zablokować).

Zerowanie po włączeniu zasilania (POWER-ON RESET).

Programowo można stwierdzić, że zerowanie

nastąpiło w wyniku włączenia napięcia zasilania dzięki znacznikowi POR (WDCON.6). Znacznik ten jest ustawiany po POWER-ON RESET.

(37)

37

Power saving

Kontroler wykonano w technologii CMOS

Dwa tryby pracy z obniżonym poborem mocy:

IDLE - wstrzymanie wykonywania programu (pracują liczniki, watchdog, port szeregowy oraz monitorowanie napięcia zasilania)

Wyjście za pomocą dowolnego przerwania lub zerowania.

Jeżeli watchdog jest aktywny, trzeba go obsługiwać.

(38)

38

Power saving

STOP - wszystkie zegary zatrzymane - stan w pełni statyczny

Wyjście za pomocą dowolnego przerwania

„niezegarowego” (tj. zewnętrznego lub power- fail) lub zerowania.

(39)

39

DALLAS 80C320

VPFW - 4.25 - 4.5 V VRST - 4.0 - 4.25 V f = 33 MHz

ACTIVE I = 35 mA

IDLE I = 20 mA

STOP(z BGS) I = 50 μA STOP (bez BGS) I = 1 μA PMM1 (64 takty) I = 12 mA PMM2 (1024 takty) I = 10 mA

(40)

40

μC przeciwko μP

Architektura

• Mikroprocesor to jednostka centralna zawarta w jednym układzie scalonym.

• Mikrokontroler to prosty system

mikroprocesorowy zawarty w jednym układzie scalonym.

(41)

41

μC przeciwko μP

Zastosowania

• Mikroprocesorów używa się głównie po to, żeby przetwarzać dane w systemach

komputerowych.

• Mikrokontrolerów używa się po to, aby odpowiadały w czasie rzeczywistym na bodźce zewnętrzne (sterowanie urządzeń WE/WY). Dlatego muszą one szybko

przełączać kontekst, tzn. zawiesić jedno

zadanie i rozpocząć wykonywanie innego w odpowiedzi na jakieś wydarzenie zewnętrzne.

(42)

42

μC przeciwko μP

Lista rozkazowa

• Mikroprocesory zajmują się głównie

przetwarzaniem danych, toteż potrzebują złożonych trybów adresowania oraz

rozkazów przetwarzania dużej liczby danych

• Mikrokontrolery potrzebują głównie instrukcji do sterowania wejściami i wyjściami.

(43)

43

μC przeciwko μP

Lista rozkazowa

• Mikrokontrolery posiadają odpowiednie obwody oraz rozkazy do wykonywania

operacji wejścia-wyjścia, odmierzania czasu lub zliczania, uaktywniania systemu

przerwań i ustalania priorytetów.

• Mikroprocesory zazwyczaj wymagają

dołączenia urządzeń zewnętrznych (np.

układy czasowo-licznikowe, kontrolery przerwań, interfejsy komunikacyjne), aby wykonać podobne operacje.

(44)

44

Cykl pracy procesora

IR := M(PC)

PC := PC + 1

Dekodowanie

Wykonanie

fetch execute

(45)

45

Jak zwiększyć szybkość działania takiego procesora?

• Poprawa technologii wytwarzania

• Optymalizacja projektu układu.

(46)

46

Poprawa technologii wytwarzania

Bardzo kosztowna - miniaturyzacja przyrządów półprzewodnikowych wymaga odpowiedniej

aparatury np. do fotolitografii.

Korzyści mogą być wątpliwe ze względu na gwałtowny wzrost długości połączeń

Przewiduje się, że w 2010 roku łączna długość połączeń w przeciętnym, zaawansowanym

układzie scalonym będzie wynosiła ok. 10 km!

(47)

47

Wzrost długości połączeń

Coraz większa liczba tranzystorów w układzie możliwa dzięki miniaturyzacji tranzystorów oraz wzrostowi powierzchni układu scalonego.

(48)

48

Cykl pracy procesora

IR := M(PC)

PC := PC + 1

Dekodowanie

Wykonanie

fetch execute

(49)

49

Cykl pracy procesora

SKUTEK!!!

W trakcie całego cyklu maszynowego obwody odpowiedzialne za realizację określonego etapu pracują przez stosunkowo krótki czas, a resztę spędzają bezczynnie !

(50)

50

Cykl pracy procesora

P D W P

rozkaz 1

rozkaz 2

(51)

51

Cykl pracy procesora

P D W

P D W

P D W

rozkaz 1

rozkaz 2

rozkaz 3

Przetwarzanie potokowe (pipelining)

(52)

52

Przetwarzanie potokowe

Szybkość działania systemu nie jest już określona przez czas wykonania danego zadania, ale przez czas, który musi

upłynąć od momentu rozpoczęcia tego zadania, do chwili, kiedy można będzie rozpocząć następne zadanie.

Kolejne zadania „wychodzą” z potoku z szybkością znacznie większą niż

wynikałoby to z czasu potrzebnego do wykonania jednego zadania.

(53)

53

Przetwarzanie potokowe

Problemy

Właściwy podział potoku na stopnie

Realizacja zadania związanego z każdym stopień powinna trwać mniej więcej tyle samo (ogólna szybkość działania jest ograniczona przez

najwolniejszy stopień).

Każdy stopień powinien być możliwie jak najbardziej niezależny od pozostałych.

Liczba stopni nie może być zbyt wysoka (komplikacja sprzętu i koordynacji między stopniami).

(54)

54

Przykład: rozbicie cyklu rozkazowego procesora na poszczególne czynności:

1. Pobranie rozkazu

2. Dekodowanie rozkazu

3. Generacja adresu (argumentu) 4. Pobranie argumentów

5. Wykonanie operacji 6. Zapamiętanie wyniku

7. Aktualizacja zawartości licznika rozkazów

Przetwarzanie potokowe

(55)

55

Przetwarzanie potokowe wymaga

odpowiedniej konstrukcji listy rozkazowej RISC - Reduced Instruction Set Computer

Przetwarzanie potokowe

(56)

56

Przetwarzanie potokowe

Pobranie rozkazu

Różna długość rozkazów byłaby dużą

komplikacją (dopiero na etapie dekodowania procesor zorientowałby się, że trzeba pobrać kolejny bajt).

Listę rozkazową konstruuje się tak, aby wszystkie rozkazy miały tę samą długość.

(57)

57

Przetwarzanie potokowe

Wykonanie rozkazu

Odwołania do zewnętrznej pamięci danych zwykle trwają długo.

Zazwyczaj nie ma rozkazów, które zarówno

czytają, jak i zapisują do pamięci. Rozkazy albo realizują odczyt, albo zapis (LOAD/STORE).

Zdecydowana większość operacji musi się odbywać na rejestrach roboczych, dlatego procesor musi posiadać duży zestaw takich rejestrów.

(58)

58

Przetwarzanie potokowe

Nawet po spełnieniu wszystkich tych warunków pojawiają się problemy:

1. Strukturalne

2. Dotyczące danych

3. Dotyczące sterowania wykonaniem programu

(59)

59

Przetwarzanie potokowe

Problemy strukturalne:

Konflikt przy próbie dostępu do określonych zasobów procesora

Przykład:

Jeden rozkaz wymaga odczytu danej z pamięci, drugi rozkaz jest w tym czasie pobierany -

rywalizacja o dostęp do szyny danych i adresowej

(60)

60

Przetwarzanie potokowe

Problemy dotyczące danych:

Rozkazy znajdujące się w potoku nie są od siebie niezależne, toteż ich częściowe nakładanie się

uniemożliwia poprawne wykonanie.

Przykład: odczyt po zapisie (read after write) ADD R1, R2, R3; R1 = R2+R3

ADD R4, R5, R1; R4 = R5+R1

(61)

61

Przykład: rozbicie cyklu rozkazowego procesora na poszczególne czynności:

1. Pobranie rozkazu

2. Dekodowanie rozkazu

3. Generacja adresu (argumentu)

4. Pobranie argumentów (m.in. zawartości R1) 5. Wykonanie operacji

6. Zapamiętanie wyniku (w rejestrze R1)

7. Aktualizacja zawartości licznika rozkazów

Przetwarzanie potokowe

(62)

62

Przetwarzanie potokowe

Problemy dotyczące danych:

Odczyt po zapisie (read after write):

Jeden rozkaz produkuje wynik, który będzie

odczytany przez następny rozkaz. Obróbkę tego ostatniego rozkazu należy wstrzymać do

momentu, kiedy wynik będzie dostępny.

(63)

63

Przetwarzanie potokowe

Problemy dotyczące danych:

Zapis po odczycie (write after read):

Pierwszy rozkaz odczytuje jakąś daną, drugi coś do niej zapisuje. Jeżeli kolejność zostanie

odwrócona, to pierwszy rozkaz odczyta wartość już zmienioną przez drugi rozkaz.

DIVF R1, R2, R3; dzielenie trwa długo ADDF R2, R5, R4;

(64)

64

Przetwarzanie potokowe

Problemy dotyczące danych:

Zapis po odczycie (write after read):

Trudność łatwo zlikwidować, używając w rozkazie drugim innych rejestrów:

DIVF R1, R2, R3;

ADDF R6, R5, R4;

(65)

65

Przetwarzanie potokowe

Problemy dotyczące danych:

Zapis po zapisie (write after write):

Kiedy może się zdarzyć ???

(66)

66

Przetwarzanie potokowe

Problemy dotyczące danych:

Zapis po zapisie (write after write):

Dwa, niezbyt odległe od siebie, rozkazy wpływają na wartość tych samych znaczników stanu

(przeniesienie, znak, itd.).

Jeżeli po drodze żaden rozkaz z tych znaczników nie korzysta, rezygnujemy z zapisu, który

teoretycznie powinien nastąpić wcześniej.

Jeżeli rozkazy korzystają ze znaczników, trzeba zachować kolejność zapisu.

(67)

67

Przetwarzanie potokowe

Problemy dotyczące danych:

Odwołania do zewnętrznej pamięci danych:

Nawet przy zastosowaniu architektury

LOAD/STORE, rozkazy odwołujące się do

zewnętrznej pamięci danych wykonują się długo.

Teoretycznie rozkaz wykonywany jest w jednym cyklu. Zwykle jednak wynik takiej operacji jest

dostępny dopiero po upływie jeszcze jednego lub nawet kilku cykli.

(68)

68

Przetwarzanie potokowe

Problemy dotyczące danych:

Odwołania do zewnętrznej pamięci danych:

Rozkaz następujący po operacji LOAD nie może korzystać z rejestru, do którego właśnie

wpisywane są dane z pamięci.

Rozkaz następujący po operacji STORE nie może być operacją LOAD

Tego typu problemy zwykle można rozwiązać za pomocą kompilatora.

(69)

69

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki bezwarunkowe i warunkowe

Skoki sprawiają kłopoty, bo jeszcze zanim będzie wiadomo czy skok nastąpi, do potoku wchodzą

rozkazy znajdujące się tuż za rozkazem skoku (czyli jakby założono, że skoku nie będzie).

Najgorsze są skoki warunkowe, bo trzeba

sprawdzić warunek i stosunkowo późno ustala się czy skok będzie wykonany

(70)

70

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki bezwarunkowe i warunkowe

Konieczność opróżnienia potoku z rozkazów, których obróbkę już rozpoczęto i pobrania

nowych, to duże opóźnienie.

Skoki mogą stanowić do 15% programu

(71)

71

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki opóźnione

jump (warunek)

add ...

(72)

72

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki opóźnione

Po pobraniu skoku pobiera się następny rozkaz (ADD).

Podczas pobierania testowany jest warunek skoku i uaktualniany licznik rozkazów.

Wykonanie następnego rozkazu (ADD) i

jednoczesne pobranie właściwego rozkazu (po decyzji czy skok nastąpi, czy nie).

(73)

73

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki opóźnione

W rezultacie skok został opóźniony o 1 cykl (najpierw wykonano rozkaz następny).

Jeżeli warunek skoku nie został spełniony, pobierany jest kolejny rozkaz (po ADD).

Jeżeli warunek skoku był spełniony, rozkaz ADD został wykonany niepotrzebnie.

(74)

74

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki opóźnione

W programie zwykle przed skokiem występuje kilka rozkazów, które wykonywane są bez

względu na to czy warunek skoku jest spełniony, czy nie.

Jeden z nich można ustawić po skoku (o ile nie wpływa na warunek).

(75)

75

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Skoki opóźnione

Jeżeli potok ma więcej niż dwa stopnie, też można zastosować skoki opóźnione, tyle że trzeba je tak skonstruować, żeby było jak

najszybciej było wiadomo czy skok nastąpi.

Dlatego warunki muszą być bardzo proste.

(76)

76

Przetwarzanie potokowe

Problemy dotyczące sterowania wykonaniem programu:

Przewidywanie skoków

Błędne założenie dotyczące skoku, to spore opóźnienie.

Można próbować oszacować czy skok nastąpi.

Wszystkie rezultaty uzyskane po oszacowaniu na oznacza się jako próbne. Jeżeli szacunek okazał się błędny, są one usuwane.

(77)

77

Przetwarzanie potokowe

Jak przewidywać czy nastąpi skok???

Adres

Prawdopodobieństwo wystąpienia skoku zależy od tego czy skok wykonywany jest do tyłu, czy do przodu.

Skok do tyłu, to najczęściej pętla, która wykonuje się przynajmniej kilka razy.

Statystycznie, wykonuje się 90% skoków w tył i ok. 50% skoków w przód.

(78)

78

Przetwarzanie potokowe

Jak przewidywać czy nastąpi skok???

Historia skoku

Rejestrowanie za każdym razem czy skok się odbył, czy nie. Decyzja podejmowana na

podstawie zebranych informacji.

Cytaty

Powiązane dokumenty

Perspektywa naturalistyczna pojawiła się w drugiej połowie XX wieku jako sprzeciw wobec metodologii scjentystycznej i filozofii analitycznej.. Ta

Część pierwsza - Istota, funkcje i osobliwości współczesnych nauk ekonomicznych a zdolność do wyjaśniania i zapobiegania kryzysom gospodarczym... Społeczeństwo jako

Owszem, można nauczyć się tego twierdzenia, nawet można je zrozumieć, choć w pierwszym momencie nie było to takie proste.. Jak pierwszy raz przeczytałem to

To uaktywnia tę regułę a w efekcie konkluzja tej reguły zostaje dodana jako nowy fakt do bazy

tylko jako przyimek (w przeciwieństwie do w koło, które może być używane w funkcji przysłówka) – jest opi- sane wkoło w Słowniku polskich przyimków wtórnych

Kortom: er zijn veel voordelen te behalen door het toepassen van mooie nieuwe technologie, maar nog veel meer door deze technologie slim te combineren met bestaande,

Pojęcie to zrodziło się na gruncie historii, której częścią jest historia wychowania, i oznacza tematy nie przeanalizowane naukowo przez przedstawicieli wymienionych

kazania na warstwę antropologiczną i teologiczną jest czysto teoretyczny, autorzy zwra- cają uwagę, że na płaszczyźnie ludzkiej przepowiadanie słowa Bożego można opisać