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ħ szczeg–lnie maþymi
wymiarami dziħki zastosowaniu element–w mikroelektronicznych, tj.
ukþad–w 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 spos–b
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, kt–rej zadaniem jest
wykonywanie rozkaz–w (pobranie, dekodowanie i wykonywanie) oraz
sterowanie pracĢ pozostaþych blok–w systemu, np. pamiħci, ukþad–w
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 przerzutnik–w (najczħĻciej typu D) sþuŇĢcy
do chwilowego zapamiħtywania danych i
wynik–w przetwarzania lub wykonywania
operacji na swojej zawartoĻci; liczb a
przerzutnik–w wyzn acza liczbħ bit –w rejestru
Register File - zestaw r ejestr–w
Register Bank - rejestry grupowane w zesta w y
(banki), np. w C51 sĢ 4 banki rejestr–w
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 czyn–w 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 argument–w 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–þ rejestr–w lub wydzielony logicznie fragment pamiħci
RAM, w kt–rym 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 podprogram–w, przechowywania adre s–w powr otu z
podprogram–w, obsþuga przerwaı
wskaŅnik stosu (Stack Pointer) adresujĢc stos jest automatyc znie:
¤ inkrementowany/dekrementowany o liczbħ ba jt–w przy prz esþaniu
zmiennej na stos
¤ dekrementowany/inkrementowany o liczbħ bajt–w 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 rozkaz–w (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, przewod–w
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 bufor–w;
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 adres–w pamiħci lub ukþad–w
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þad–w 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þad–w wejĻciowo-wyjĻciowych, np.
zapis/odczyt do/z pamiħci/ukþad–w 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þad–w 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 adres–w
Î 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:
¤ r–wnolegþy - r–wnoczesne przesyþanie informacji (bajtu lub sþowa)
w tym samym momencie czasowym, np. w komputerach do wsp–þpracy z
napħdami dysk–w, 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
r–wnoczesne strumienia bajt–w) i UDP (User Datagram Protocol - protok–þ
datagram–w
[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þad–w wejĻciowo-wyjĻciowych
itp.
rozkaz (Command) - instrukcja, kt–rej 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, kom–rki 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 bit–w
alokacja programu (Program Allocation) - spos–b rozmieszczenia
programu w pamiħci mikroprocesora lub mikrokomputera:
Sþowo (Word) - porcja informacji, kt–rĢ operuje jednostka centralna,
zawiera zwykle caþkowitĢ liczbħ bajt–w, np. 16, 32 itp.
Î program nieprzesuwalny (absolutny) - bezwzglħdne adresy
rozkaz–w 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ħzyk–w 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 bit–w (1024 bity)
1 KB = 2 10 bajt–w (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 rozkaz–w
Sekwencyjne przetwarzanie rozkaz–w
Przetwarzanie rozkaz–w Î spos–b wykonania rozkazu w procesorze:
¤ podziaþ wykonywanego rozkazu na standardowe fazy :
Î pobierania ( fetch ) rozkazu z pamiħci i umieszczenia w
wewnħtrznym rejestrze rozkaz–w lub pamiħci buforujĢcej,
Î dekodowania ( decode ) rozkazu, ustalenie typu wykonywanej
operacji, np. pobrania argument–w,
Î 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)
poszczeg–lne fazy r–Ňnych rozkaz–w sĢ w zasadzie wykonywane
r–wnoczeĻ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 rozkaz–w
Konflikty przy przetwarzaniu potokowym
Potokowe (strumieniowe, pipeline processing) - poszczeg–lne fazy r–Ňnych
rozkaz–w sĢ wykonywana r–wnoczeĻnie.
¤ zasob–w Î ten sam zas–b wykorzystywany jest przez dwie lub wiħcej faz
r–wnoczeĻnie (ALU, rejestry lub pamiħę):
Î kaŇda operacja zapisu do rejestr–w lub pamiħci moŇe byę w konflikcie
z fazĢ pobrania rozkazu lub argument–w
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,
kt–ry 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Ņnik–w 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 zasob–w
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 :
¤ zasob–w Î ten sam zas–b wykorzystywany jest przez dwie lub wiħcej faz
r–wnoczeĻnie (ALU, rejestry lub pamiħę):
Î kaŇda operacja zapisu do rejestr–w lub pa miħci mo Ňe byę w konflikcie
z fazĢ pobrania rozkazu lub argument–w
ALU wykonuje operacjħ na zawartoĻci 2 rejestr–w
¤ 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
 
Zgłoś jeśli naruszono regulamin