02.pdf
(
948 KB
)
Pobierz
Procesor - mikroprocesor - mikrokontroler
procesor
- podstawowe urzĢdzenie komputera cyfrowego, skþadajĢce
siħ z jednostki sterujĢcej i arytmometru, w dziaþaniu wykorzystujĢce
rozkazy
(Leksykon Naukowo-Techniczny. WNT, Warszawa 1984)
Technika cyfrowa 2
mikro
procesor
- procesor charakteryzujĢcy siħ
szczeglnie maþymi
wymiarami
dziħki zastosowaniu elementw mikroelektronicznych, tj.
ukþadw scalonych
(Leksykon Naukowo-Techniczny. WNT, Warszawa 1984)
programowalny ukþad cyfrowy z ograniczonĢ listĢ instrukcji, sþuŇĢcy do
przetwarzania informacji w zadany przez uŇytkownika sposb
wykþad 2
mikrokontroler
(mikrokomputer / procesor jednoukþadowy) - ukþad
scalony zawierajĢcy:
mikroprocesor
pamiħę programu
(nie zawsze)
i pamiħę danych
urzĢdzenia peryferyjne (liczniki, porty, przetworniki itp.
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Co powinien zawieraę mikroprocesor
CPU
Working Registers
Working Registers
Stack Pointer
Stack Pointer
Interrupt Controller
Interrupt Controller
External
Interrupt
Working Registers
Working Registers
Stack Pointer
Stack Pointer
Interrupt Controller
Interrupt Controller
External
Interrupt
CPU
(CentralProcessing Unit) - jednostka centralna, ktrej zadaniem jest
wykonywanie rozkazw (pobranie, dekodowanie i wykonywanie) oraz
sterowanie pracĢ pozostaþych blokw systemu, np. pamiħci, ukþadw
wejĻciowo-wyjĻciowych itp.
Internal Bus
Internal Bus
External
Data
Bus
External
Data
Bus
ALU
(Arithmetic
Logic Unit)
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
Instruction Decoder
Instruction Decoder
CLK
Instruction Decoder
Instruction Decoder
CLK
Timing
&
Control
Timing
&
Control
Timing
&
Control
Timing
&
Control
Program Status
Register
Program Status
Register
Program Status
Register
Program Status
Register
???
???
Program Counter
Program Counter
Program Counter
Program Counter
RD, WR
RD, WR
Address
Buffer / Driver
External
Address
Bus
Address
Buffer / Driver
External
Address
Bus
Address
Buffer / Driver
Address
Buffer / Driver
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Register
ALU
Rejestr
(Register) - wewnħtrzny ukþad pamiħciowy
mikroprocesora, blok funkcjonalny zbudowany
z przerzutnikw (najczħĻciej typu D) sþuŇĢcy
do chwilowego zapamiħtywania danych i
wynikw przetwarzania lub wykonywania
operacji na swojej
zawartoĻci; liczb
a
przerzutnikw wyzn
acza liczbħ bit
w rejestru
Register File
- zestaw r
ejestrw
Register Bank
- rejestry grupowane w zesta
w
y
(banki), np. w C51 sĢ 4 banki rejestrw
Working Registers
Working Registers
Interrupt Controller
Interrupt Controller
External
Interrupt
External
Interrupt
Stack Pointer
Working Registers
Stack Pointer
Interrupt Controller
ALU
(Arithmetic Logic Unit) - ukþad arytmetyczno-
logiczny, przewidziany do wykonywania
operacji arytmetycznych i logicznych, ukþad
bħdĢcy fragmentem jednostki centralnej CPU
funkcje arytmetyczne
-
suma, rŇnica
, iloczyn,
iloraz (INT/DIV, M
OD; zmienne: ca
þkowito-
liczbowe, uþamkowe w za
pisie staþ
o- i zmienno-
przecinkowym), sumy ilo
czynw cz
Ģstk
o
wych,
negacja arytmetyczna (w
kodzie U
2)
funkcje logiczne
- AND, OR,
NOT, XO
R
operacje bitowe
(w mikrokon
trolerach)
Akumulator (Accumulator), W (Workregister )
- wewnħtrzny rejestr ALU
zawierajĢcy argument lub jeden z argumentw oraz wynik
wykonywanych operacji, przewaŇnie arytmetyczno-logicznych
Internal Bus
Internal Bus
External
Data
Bus
External
Data
Bus
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
Data
Buffer / Driver
Instruction Register
Instruction Register
CLK
Instruction Register
Instruction Register
CLK
Timing
&
Control
Timing
&
Control
Timing
&
Control
Program Status
Register
Program Status
Register
???
???
Program Counter
Program Counter
Program Counter
RD, WR
RD, WR
External
Address
Bus
External
Address
Bus
Address
Buffer / Driver
Address
Buffer / Driver
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
1
PSW
Stack
PSW
(Program Status Word Register) - rejestr
stanu (statusu) procesora po wykonanej operacji
zawierajĢcy
znaczniki
(Flags), 1-bitowe
informacje o przebiegu lub wyniku
wykonywanych operacji, np.:
C
(Carry) - przeniesienie,
przekroczenie z
akresu liczb
caþkowitych bez znak
u (np.: 0 .. 255)
AC
(Auxiliary Carry) - przeniesienie poþwkowe,
stosowane przy korekcji dziesiħtnej (BCD
)
OV
(Overflow) - nadmiar, przekroczenie za
kr
esu liczb
caþkowitych ze znakiem (np.: -128 .. +127)
Z
(Zero) - wartoĻę zerowa
P
(Parity) - parzystoĻę
S
(Sign) - znak liczby, rozrŇnienie liczb dodatnich i
ujemnych zapisanych w kodzie U2
Stack Pointer
Stack Pointer
External
Interrupt
External
Interrupt
Working Registers
Stack Pointer
Interrupt Controller
Working Registers
Interrupt Controller
Stos
(Stack) Î zespþ rejestrw lub wydzielony logicznie fragment pamiħci
RAM, w ktrym informacja jest wpisywana lub odczytywana z jego
wierzchoþka (szczytu, Top-Of-Stack) wg. z
asady LIFO (La
st In First
Out)
przeznaczenie stosu
: ochrona danych, przenoszenia
zmienny
ch do
procedur i podprogramw, przechowywania adre
sw powr
otu z
podprogramw, obsþuga przerwaı
wskaŅnik stosu
(Stack Pointer) adresujĢc stos jest
automatyc
znie:
¤ inkrementowany/dekrementowany o liczbħ ba
jtw przy
prz
esþaniu
zmiennej na stos
¤ dekrementowany/inkrementowany o liczbħ bajtw pobranych ze
stosu
TOS
(Top Of Stack) - szczyt stosu
Internal Bus
Internal Bus
External
Data
Bus
External
Data
Bus
Data
Buffer / Driver
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
Data
Buffer / Driver
Instruction Register
Instruction Register
CLK
CLK
Instruction Register
Timing
&
Control
Timing
&
Control
Timing
&
Control
Timing
&
Control
Program Status
Register
Program Status
Register
Program Status
Register
???
???
Program Counter
Program Counter
RD, WR
Program Counter
RD, WR
External
Address
Bus
External
Address
Bus
Address
Buffer / Driver
Address
Buffer / Driver
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Program Counter, Instruction Register
Interrupt
External
Interrupt
Interrupt Controller
Interrupt Controller
External
Interrupt
Working Registers
Stack Pointer
Interrupt Controller
Working Registers
Stack Pointer
Kontroler przerwaı
(Interrupt Controller) - ukþad nadzorujĢcy
przyjmowanie i realizacjħ przerwaı o rŇnych priorytetach
Przerwanie
(Interrupt) - asynchroniczna programowa obsþuga zjawisk
wewnħtrznych lub zewnħtrznych polegajĢca na zawieszeniu
wykonywania bieŇĢcego programu i wykonaniu specjalnego
podprogramu (podprogramu obsþugi przerwania); przerwanie m
o
Ňe
byę wektorowe, wielopoziomowe, priorytetowe, maskowalne
(programowa moŇliwoĻę zablokowania lub odblokowania) lub
niemaskowalne (przyjmowane zawsze)
Internal Bus
Internal Bus
Rejestr dekodujĢcy instrukcje
(Instruction Decoder) - blok funkcjonalny
odpowiadajĢcy za dekodowanie i synchronizacjħ wykonywanych
instrukcji (programu)
External
Data
Bus
External
Data
Bus
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
Instruction Decoder
Instruction Decoder
CLK
CLK
Instruction Register
Timing
&
Control
Timing
&
Control
Program Status
Register
Program Status
Register
???
???
Program Counter
Program Counter
RD, WR
Program Counter
RD, WR
External
Address
Bus
External
Address
Bus
Address
Buffer / Driver
Address
Buffer / Driver
Licznik rozkazw
(Program Counter / Instruction Pointer, Register)-
licznik adresujĢcy pamiħę kodu programu (wykonywanego programu)
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Internal & External Bus
Address & Data Bus
Magistrala
(Bus) - to zespþ linii, przewodw
sþuŇĢcych do przesyþania informacji o tym
samym charakterze oraz ukþady sterujĢce
przepþywem informacji:
¤ wewnħtrzna
(Internal Bus) - do wymiany
informacji w wewnħtrznej strukturze
mikroprocesora, mikrokontrolera
¤ zewnħtrzna
(External Bus) - do komunikacji
mikroprocesora, mikrokontrolera z ukþadami
zewnħtrznymi, np. pamiħciami, ukþadami
wejĻciowo-wyjĻciowymi; magistrala
zewnħtrzna oddzielona jest od magistrali
wewnħtrznej za poĻrednictwem buforw;
magistralħ wewnħtrznĢ i zewnħtrznĢ danych
rozdzielajĢ 2-kierunkowe, 3-stanowe
wzmacniacze
External
Interrupt
External
Interrupt
Working Registers
Stack Pointer
Interrupt Controller
Working Registers
Stack Pointer
Interrupt Controller
Internal Bus
Internal Address & Data Bus
Magistrala adresowa
(Address Bus) -
przesyþanie adresw pamiħci lub ukþadw
wejĻciowo-wyjĻciowych:
Î jednokierunkowa, 2-stanowa
Î jednokierunkowa, 3-stanowa ze stanem
wysokiej impedancji (3-state impedance)
w trybie HOLD lub DMA
Magistrala danych
(DataBus) - przesyþanie
danych do/z pamiħci lub ukþadw wejĻciowo-
wyjĻciowych (dwukierunkowa, 3-stanowa ze
stanem wysokiej impedancji)
External
Data
Bus
External
Data
Bus
Data
Buffer / Driver
ALU
(Arithmetic
Logic Unit)
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
Data
Buffer / Driver
CLK
CLK
Instruction Register
Instruction Register
Timing
&
Control
Timing
&
Control
Program Status
Register
Program Status
Register
???
???
Program Counter
RD, WR
Program Counter
RD, WR
External
Address
Bus
Address
Buffer / Driver
External
Address
Bus
Address
Buffer / Driver
Address
Buffer / Driver
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
2
Control & Power Bus
Multiplexed Bus
(1/2)
Ex-
ter-
nal
16 bit
A
15
..A
8
External
Interrupt
Working Registers
Stack Pointer
Interrupt Controller
Address
Bus
Address
Bus
A
15
..A
0
Magistrala sterujĢca
(Control Bus) - sterowanie
pamiħci i ukþadw wejĻciowo-wyjĻciowych, np.
zapis/odczyt do/z pamiħci/ukþadw wejĻciowo-
wyjĻciowych, chwilowe wstrzymanie pracy
mikroprocesora lub mikrokontrolera, zgþoszenie
przerwania itp.:
Î jednokierunkowa, 2-stanowa
Î jednokierunkowa, 3-stanowa w trybie HOLD / DMA
A
7
..A
0
Buffer
Internal Address & Data Bus
Me-
mory
Strobe
Data
Bus
External
Data
Bus
D
7
..D
0
D
7
..D
0
Data Bus
ALU
(Arithmetic
Logic Unit)
Data
Buffer / Driver
I/O
8 bit
8 bit
(all Bus)
MultiplexedAddress Bus
(9 CPU Lines)
Non-Multiplexed Address Bus
(16 CPU Lines)
CLK
Instruction Register
Timing
&
Control
Program Status
Register
???
Magistrala zasilajĢca
(Power Bus) - rozdzielenie
zasilania ze wzglħdu na redukcjħ zakþceı i
zmniejszenie obciĢŇenia prĢdowego ĻcieŇek
zasilajĢcych na pþytce drukowanej; rŇne napiħcia
rdzenia procesora i ukþadw we/wy
Magistrala multipleksowana
(
Multiplexed Bus
)
- najczħĻciej poþĢczenie caþej
lub czħĻci magistrali adresowej i danych; rozdzielenie czasowe oparte jest o
dodatkowy sygnaþ, np. ALE (
Address Latch Enable
) w rodzinie C51:
Î ALE = 1 oznacza przesyþanie adresw
Î ALE = 0 oznacza przesyþanie danych
Program Counter
RD, WR
External
Address
Bus
Address
Buffer / Driver
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Multiplexed Bus
(2/2)
Port
Port
(Port) ukþad wejĻciowo-wyjĻciowy sþuŇĢcy do przesyþania danych
miħdzy procesorem, a urzĢdzeniami zewnħtrznymi, do komunikacji ze
Ļwiatem zewnħtrznym:
¤ rwnolegþy - rwnoczesne przesyþanie informacji (bajtu lub sþowa)
w tym samym momencie czasowym, np. w komputerach do wspþpracy z
napħdami dyskw, sterownikami monitora i klawiatury, drukarki
(Centronics)
itp.
¤ szeregowy - przesyþanie informacji bit po bicie wg podanej kolejnoĻci,
np. odczyt stanu myszki, RS-232, RS-422, I2C-Bus, SPI, USB, CAN, 1-Wire itp
.
¤ w sieciach komputerowych - punkt koıcowy poþĢczenia logicznego w TCP
(Transmission Control Protocol - protokþ sterowania transmisjĢ; protokþ obsþugi
poþĢczeniowej; wymagane jest otwarcie i zamkniħcie poþĢczenia; niezawodne i
rwnoczesne strumienia bajtw) i UDP (User Datagram Protocol - protokþ
datagramw
[dane+nagþwek] uŇytkownika, protokþ bezpoþĢczeniowy, bez gwarancji
niezawodnoĻci);
numer portu jest identyfikatorem jego typu, np.:
Î 25 - SMTP - poczta elektroniczna
Î 80 - protokþ HTTP - transmisja stron www
Ex-
ter-
nal
16 bit
A
15
..A
8
Address
Bus
Address
Bus
A
15
..A
0
A
7
..A
0
Buffer
Me-
mory
Strobe
Data
Bus
D
7
..D
0
D
7
..D
0
Data Bus
I/O
8 bit
8 bit
(all Bus)
Non-Multiplexed Address Bus
(16 CPU Lines)
MultiplexedAddress Bus
(9 CPU Lines)
ALE
A
7
..A
0
Data
A
7
..A
0
Port P0
Port P2
A
15
..A
8
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Hold, DMA, Wait States
Instrukcje, rozkazy, mnemoniki, operandy
instrukcja
(Instruction) - typ operacji jaka ma byę wykonana, operand lub
adres operandu wymagany do jej wykonania; pojħcie dotyczy
programowania na zaþoŇonym poziomie, np. C, Pascal, asembler
HOLD
- tryb umoŇliwiajĢcy elektryczne odþĢczenie mikroprocesora,
mikrokontrolera od pozostaþych urzĢdzeı tworzĢcych system
mikroprocesorowy, np. pamiħci, ukþadw wejĻciowo-wyjĻciowych
itp.
rozkaz
(Command) - instrukcja, ktrej nie moŇna rozþoŇyę na instrukcje
podstawowe, charakterystyczne dla danego typu mikroprocesora lub
mikrokontrolera
DMA
(Direct MemoryAccess) - tryb bezpoĻredniego dostħpu do
zewnħtrznych pamiħci z pominiħciem mikroprocesora lub
mikrokontrolera; dotyczy takŇe wymiany danych w wewnħtrznej
pamiħci mikrokontrolera z pominiħciem CPU.
mnemonik
(Mnemonic) - symboliczna nazwa instrukcji na poziomie
asemblera
Wait States
Î (dodatkowe) stany oczekiwania w celu dopasowania
szybkoĻci pracy jednostki centralnej do szybkoĻci pracy pamiħci,
urzĢdzeı peryferyjnych
operand
(Operand) - informacja potrzebna do wykonania rozkazu, np.
adres rejestru, komrki pamiħci, wartoĻę zmiennej itp.
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
3
Alokacja programu
Oznaczenia
Bit
(BInary digiT) - pojedyncza, dwuwartoĻciowa (binarna) jednostka
informacji o wartoĻci 0 lub 1
Bajt
(Byte) - porcja informacji zawierajĢca (najczħĻciej) 8 bitw
alokacja programu
(Program Allocation) - sposb rozmieszczenia
programu w pamiħci mikroprocesora lub mikrokomputera:
Sþowo
(Word) - porcja informacji, ktrĢ operuje jednostka centralna,
zawiera zwykle caþkowitĢ liczbħ bajtw, np. 16, 32 itp.
Î program
nieprzesuwalny
(absolutny) - bezwzglħdne adresy
rozkazw ustalane na etapie pisania programu, np. start procesora,
wektory przerwaı, fizyczne obszary pamiħci, bankowanie pamiħci
MSB
(Most Significant Bit/Byte) - bit/bajt najbardziej znaczĢcy
LSB
(Least Significant Bit/Byte) - bit/bajt najmniej znaczĢcy
Î program
przesuwalny
(relokowalny) - kod programu nie zaleŇy od
miejsca zajmowanego w pamiħci i moŇe byę przemieszczany bez
dodatkowych przeadresowaı, np. kompilatory jħzykw wysokiego
poziomu, programy biblioteczne
prefix:
1 K
= 2
10
(1024)
1 k
= 10
3
(1000)
1 M
= 2
20
(1.048.576)
BIT
¹ BYTE
:
1 Kb
= 2
10
bitw (1024 bity)
1 KB
= 2
10
bajtw (1024 bajty)
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Little / Big Endian Machines
Sþowa, sþowa .. wg INTELa
24547010.pdf
IA-32 Intel°Architecture. Software DeveloperÓs Manual.
Volume 1: Basic Architecture
memory address:
Little Endian:
N+2
15
8 7
0
High
Byte
Low
Byte
15
8
7
0
Word
N+1
High Byte
N+1
N
Word
High Byte
Low Byte
Low Byte
N
N+1
N
N-1
31
16
15
0
High Word
Low Word
Doubleword
N+2
N
63
32
31
0
memory address:
Quardword
High Doubleword
Low Doubleword
Big Endian:
N+2
N+4
N
15
8
7
0
N+1
Low Byte
Double Quardword
Word
Low Byte
High Byte
127
64
63
0
High Byte
N
High Quardword
Low Quardword
N+1
N
N-1
N+8
N
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Przetwarzanie rozkazw
Sekwencyjne przetwarzanie rozkazw
Przetwarzanie rozkazw
Î sposb wykonania rozkazu w procesorze:
¤ podziaþ
wykonywanego
rozkazu
na
standardowe fazy
:
Î pobierania
(
fetch
)
rozkazu z pamiħci i umieszczenia w
wewnħtrznym rejestrze rozkazw lub pamiħci buforujĢcej,
Î dekodowania
(
decode
)
rozkazu, ustalenie typu wykonywanej
operacji, np. pobrania argumentw,
Î wykonania
(
execute
)
rozkazu, np. wymaganej operacji
arytmetyczno-logicznej, obliczenia adresu itp.
Î zapisu
(
write
)
wyniku w rejestrach lub pamiħci,
¤ w przetwarzaniu
sekwencyjnym
(skalarnym) kaŇda faza wykonywana
jest oddzielnie, niezaleŇnie od pozostaþych,
¤ w przetwarzaniu
potokowym
,
strumieniowym (pipeline processing)
poszczeglne fazy rŇnych rozkazw sĢ w zasadzie wykonywane
rwnoczeĻnie.
Sekwencyjne
(skalarne) - kaŇda faza wykonywana jest oddzielnie,
niezaleŇnie od pozostaþych.
rozkaz N:
f
d
e
w
f
d
e
w
rozkaz N+1:
f
d
e
w
rozkaz N+2:
f
d
e
w
rozkaz N+3:
f
(fetch) - pobranie
e
(execute) - wykonanie
d
(decode) - dekodowanie
w
(write) - wpis
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
4
Potokowe przetwarzanie rozkazw
Konflikty przy przetwarzaniu potokowym
Potokowe
(strumieniowe, pipeline processing) - poszczeglne fazy rŇnych
rozkazw sĢ wykonywana rwnoczeĻnie.
¤ zasobw
Î ten sam zasb wykorzystywany jest przez dwie lub wiħcej faz
rwnoczeĻnie (ALU, rejestry lub pamiħę):
Î kaŇda operacja zapisu do rejestrw lub pamiħci moŇe byę w konflikcie
z fazĢ pobrania rozkazu lub argumentw
rozkaz N:
f
rozkaz N+1:
d
f
e
w
f
(fetch) - pobranie
d
e
w
¤ danych
Î jeĻli argumentem nastħpnego rozkazu jest wynik poprzedniego,
ktry nie zostaþ obliczony:
Î wykonanie nastħpnego rozkazu musi byę wstrzymane z powodu
niedostħpnoĻci argumentu
d
(decode) - dekodowanie
rozkaz N+2:
f
d
e
w
rozkaz N+3:
f
d
e
e
(execute) - wykonanie
rozkaz N+4:
f
d
¤ sterowania
Î gdy wykonywany jest rozkaz skoku warunkowego zaleŇny
od wskaŅnikw ustalanych przez poprzednie, jeszcze nie zakoıczone
rozkazy
rozkaz N+5:
f
w
(write) - wpis
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Przetwarzanie potokowe - LOAD
(1/2)
Przetwarzanie potokowe - LOAD
(2/2)
Instrukcja typu
LOAD
zþoŇona z
5
cykli maszynowych:
¤ Ifetch
: pobranie kodu instrukcji z pamiħci programu
¤ Reg/Dec
: pobranie zawartoĻci rejestru i dekodowanie instrukcji
¤ Exec
:
Instrukcja typu
LOAD
zþoŇona z
5
cykli maszynowych:
¤ Ifetch
: pobranie kodu instrukcji z pamiħci programu
¤ Reg/Dec
: pobranie zawartoĻci rejestru i dekodowanie instrukcji
¤ Exec
:
obliczenie adresu zmiennej w pamiħci danych
obliczenie adresu zmiennej w pamiħci danych
¤ Mem
:
odczyt wartoĻci zmiennej z pamiħci danych
¤ Mem
:
odczyt wartoĻci zmiennej z pamiħci danych
¤ Wr
:
wpis wartoĻci zmiennej do rejestru
¤ Wr
:
wpis wartoĻci zmiennej do rejestru
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5
Cycle 6 Cycle 7
Cycle 6 Cycle 7
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Mem
Wr
Î instrukcja wykonywana w 5 niezaleŇnych blokach funkcjonalnych
Î kaŇda instrukcja korzysta tylko 1 raz z pojedynczego bloku funkcjonalnego
Î pobranie kodu nastħpnej instrukcji moŇliwe po zakoıczeniu poprzedniego
Î czas trwania pojedynczej instrukcji wynosi 5 cykli maszynowych
Î Ļredni czas trwania instrukcji w programie wynosi 1 cykl maszynowy
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
Przetwarzanie potokowe - typ R
Konflikt zasobw
Instrukcja typu
R
(dostħp do rejestru) zþoŇona z
4
cykli maszynowych:
¤ Ifetch
: pobranie kodu instrukcji z pamiħci programu
¤ Reg/Dec
: pobranie zawartoĻci rejestru i dekodowanie instrukcji
¤ Exec
:
¤ zasobw
Î ten sam zasb wykorzystywany jest przez dwie lub wiħcej faz
rwnoczeĻnie (ALU, rejestry lub pamiħę):
Î kaŇda operacja zapisu do rejestrw lub pa
miħci mo
Ňe byę w konflikcie
z fazĢ pobrania rozkazu lub argumentw
ALU wykonuje operacjħ na zawartoĻci 2 rejestrw
¤ Wr
:
wpis wartoĻci zmiennej do rejestru
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5
Cycle 6
Cycle 7
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5
Cycle 6
LOAD
LOAD
typ R
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Mem
Wr
Ifetch Reg/Dec Exec
Wr
Ifetch Reg/Dec Exec
NOP
Wr
Wr
Ifetch Reg/Dec Exec Wr
Ifetch Reg/Dec Exec
Wr
Î w jednej z faz musi wystĢpię dodatkowy
cykl oczekiwania
Î typ instrukcji znany po jej zdekodowaniu (
Ifetch
&
Reg/Dec
)
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
K
ATEDRA
M
ETROLOGII
E
LEKTRONICZNEJ
I F
OTONICZNEJ
opracowanie
A
ndrzej
S
tĨpieIJ
5
Plik z chomika:
pir23
Inne pliki z tego folderu:
01.pdf
(2217 KB)
02.pdf
(948 KB)
03.pdf
(2327 KB)
04.pdf
(794 KB)
05.pdf
(692 KB)
Inne foldery tego chomika:
3L-Stepien
Zgłoś jeśli
naruszono regulamin