układ sekwencyjny

Transkrypt

układ sekwencyjny
Architektura Systemów
Komputerowych
Budowa
i zasada działania mikroprocesora
Fazy cyklu rozkazowego
Instrukcje i mikrooperacje
1
Struktura prostego systemu
mikroprocesorowego
Magistrala danych
Magistrala adresowa
Mikroprocesor
Magistrala
sterująca
Pamięć
Układy
wejścia,
wyjścia (I/O)
2
Mikroprocesor - definicja
Procesor – układ cyfrowy przetwarzający dane
zgodnie z programem zapisanym w pamięci
komputera, w postaci ciągu instrukcji.
Mikroprocesor – procesor zintegrowany w jednym
układzie scalonym wielkiej skali integracji.
3
Przykłady mikroprocesorów
Źródła: http://pl.wikipedia.org,
http://www.djtech.ca
4
Schemat blokowy prostego
mikroprocesora
Magistrala danych
CLK
Jednostka
sterująca
MBR
I
R
ALU
Acc
Rejestry
ogólnego
przeznaczenia
PC
MAR
Magistrala
sterująca
Rejestry
funkcji
specjalnych
(SFR)
5
Magistrala adresowa
Elementy mikroprocesora
Jednostka sterująca – przekształca kod instrukcji w
zbiór sygnałów logicznych zwanych funkcjami
sterującymi, praca jednostki jest synchronizowana
sygnałem zegara CLK
Rejestr instrukcji (IR) – przechowuje kod instrukcji
Rejestr buforowy pamięci (MBR) – łączy
mikroprocesor z zewnętrzną magistralą danych
Rejestr adresowy pamięci (MAR) – łączy
mikroprocesor z zewnętrzną magistralą adresową
6
Elementy mikroprocesora cd.
Jednostka arytmetyczno-logiczna (ALU) – wykonuje
operacje arytmetyczne i logiczne
Rejestry ogólnego przeznaczenia (robocze) –
przechowują pośrednie wyniki obliczeń, wynik
operacji ALU jest zapisywany w jednym z nich,
zwanym akumulatorem (Acc)
Rejestry funkcji specjalnych (SFR) – uczestniczą w
adresowaniu pamięci i sterowaniu programem
7
Fazy cyklu rozkazowego
Faza pobrania rozkazu (instrukcji)
Faza dekodowania rozkazu
Faza wykonania rozkazu
Faza bezczynności
Sekwencyjne wykonanie programu w mikroprocesorze
o architekturze von Neumanna
Instr.1 Instr.1 Instr.1 Instr.1 Instr.2 Instr.2 Instr.2
Φ1
Φ2
Φ3
Φ4
Φ1
Φ2
Φ3
…
t
8
Generator sekwencji
taktujących
CLK
CLK
Φ1
Φ2
Φ3
Φ4
Generator
sekwencji
taktujących
Φ1
Φ2
Φ3
Φ4
9
Aktywność mikroprocesora
w fazie pobrania instrukcji
Magistrala danych
CLK
Jednostka
sterująca
MBR
I
R
PC
MAR
Magistrala
sterująca
10
Magistrala adresowa
Aktywność mikroprocesora
w fazie dekodowania instrukcji
CLK
Jednostka
sterująca
I
R
11
Aktywność mikroprocesora
w fazie wykonania instrukcji
Magistrala danych
CLK
A
Jednostka
sterująca
IR
P
A
MAR
Magistrala
sterująca
MBR
Magistrala adresowa
Y
ALU
Acc
B
F:Y=B
Instrukcja pobrania danej z
pamięci, adresowanie
bezpośrednie – adres komórki
pamięci jest stałą w polu
adresowym (PA) rejestru instrukcji
Acc
M(adr)
12
Aktywność mikroprocesora
w fazie wykonania instrukcji
Magistrala danych
CLK
MBR
A
Jednostka
sterująca
Y
ALU
Acc
B
F:Y=B
MAR
Rejestry
funkcji
specjalnych
(SFR)
X
Magistrala
sterująca Magistrala adresowa
Instrukcja pobrania danej z
pamięci, adresowanie pośrednie –
adres komórki pamięci znajduje się
w jednym z rejestrów funkcji
specjalnych
Acc
M(X)
13
Aktywność mikroprocesora
w fazie wykonania instrukcji
Magistrala danych
CLK
A
Jednostka
sterująca
IR
P
A
MAR
Magistrala
sterująca
MBR
Magistrala adresowa
Y
ALU
Acc
B
F:Y=A+B
Instrukcja sumowania danych z
pamięci i akumulatora
Acc
Acc + M(adr)
14
Aktywność mikroprocesora
w fazie wykonania instrukcji
CLK
Jednostka
sterująca
A
Y
Acc
ALU
Rejestry
ogólnego
przeznaczenia
B
F:Y=A+B
Magistrala
sterująca
Instrukcja sumowania danych z
akumulatora i innego rejestru
Acc
Acc + R
15
Aktywność mikroprocesora
w fazie wykonania instrukcji
Magistrala danych
CLK
Jednostka
sterująca
MBR
IR
Acc
P
A
MAR
Magistrala
sterująca
Instrukcja przesłania danej
z akumulatora do pamięci
M(adr)
Magistrala adresowa
Acc
16
Aktywność mikroprocesora
w fazie wykonania instrukcji
Magistrala danych
CLK
MBR
Jednostka
sterująca
Instrukcja skoku
PC
adr
PC
MAR
Magistrala
sterująca
17
Magistrala adresowa
Aktywność mikroprocesora
w fazie bezczynności
CLK
Jednostka
sterująca
PC
PC
PC+1
18
Instrukcja i mikrooperacja
Instrukcja – najmniejsza jednostka programu, kod binarny
określający sekwecję mikrooperacji
Mikrooperacja – zbiór wszystkich operacji wykonywanych przez
mikroprocesor w pojedynczej fazie cyklu rozkazowego
Lista instrukcji – zbiór wszystkich instrukcji wykonywanych przez
dany mikroprocesor
Instrukcje są zewnętrzne w stosunku do mikroprocesora. Ciąg
instrukcji w pamięci komputera, realizujący wybrany algorytm
obliczeniowy jest nazywany programem.
19
Realizacje jednostki sterującej
Układ sekwencyjny – nieregularna struktura bramek
i przerzutników
Automat stanowy – automat wykorzystujący fazy
zegara
Pamięć sterująca – pamięć ROM z zapisanymi
funkcjami sterującymi dla wszystkich elementów
mikroprocesora – mikroprogramem.
Mikroprogramowalna jednostka sterująca zachowuje się
jak prosty mikrokomputer – wykonuje mikroprogram.
20
Przykład architektury
z mikroprogramowalną jednostką
sterującą
Źródło: Jan Van Campenhout at al.:”ESCAPE:
Environment for the Simulation of Computer
Architectures for the Purpose of Education”
21
Przykład rzeczywistej architektury
mikroprocesor Intel 4004
22
Źródło: http://pl.wikipedia.org
Rodzaje instrukcji wykonywanych
przez mikroprocesor
Instrukcje transferu (przesłania danych)
Instrukcje obliczeniowe
- arytmetyczne
- logiczne
- operacji na bitach
Instrukcje sterujące
- skoki
- skoki warunkowe
- operacje na rejestrach specjalnych
23
Mikrooperacje ALU w fazie Φ3
Mikrooperacje arytmetyczne:
A
Suma (ADD): Y=A+B
Suma z przeniesieniem (ADC): Y=A+B+Cy
Różnica (SUB): Y=A-B
Różnica z pożyczką (SBC): Y=A-B-Cy
Inkrementacja (INC): Y=A+1
Dekrementacja (DEC): Y=A-1
Uzupełnienie jedynkowe (NEG): Y=not A
Uzupełnienie dwójkowe (CPL): Y=not A + 1
Y
ALU
B
F: ……
Cy
24
Mikrooperacje ALU w fazie Φ3
Mikrooperacje logiczne:
A
Iloczyn logiczny (AND): Y=A and B
Suma logiczna (OR): Y=A or B
Suma modulo 2 (XOR): Y=A xor B
Negacja (NOT): Y=not A
Y
ALU
B
F: ……
Cy
25
Mikrooperacje przesunięć
w fazie Φ3
Przesunięcie logiczne w lewo: R = shll R
(odpowiada mnożeniu przez 2 liczby w kodzie NBC)
Bn-1
R
B0
0
Przesunięcie logiczne w prawo: R = shrl R
(odpowiada dzieleniu przez 2 liczby w kodzie NBC)
0
Bn-1
R
B0
26
Mikrooperacje przesunięć
w fazie Φ3
Przesunięcie arytmetyczne w lewo: R = shla R
(odpowiada mnożeniu przez 2 liczby w kodzie U2)
Bn-1
Bn-2
R
B0
0
Przesunięcie arytmetyczne w prawo: R = shra R
(odpowiada dzieleniu przez 2 liczby w kodzie U2)
Bn-1
Bn-2
R
B0
27
Mikrooperacje rotacji
w fazie Φ3
Rotacja w lewo: R = rotl R
R
B0
R
B0
Bn-1
Rotacja w prawo: R = rotr R
Bn-1
Bn-2
28

Podobne dokumenty