Architektura systemu mikroprocesorowego

Transkrypt

Architektura systemu mikroprocesorowego
Mikroprocesor - definicje
Architektura
systemu
mikroprocesorowego
Dr inŜ. Michał Porzeziński
R0
PC
R1
SP
...
RA1
R7
RA2
Rejestry robocze
Rejestry adresowe
A
IR
F
dekoder
ALU
układ
sterowania
µP to synchroniczny automat sekwencyjny wykonujący
dołączony z zewnątrz program.
Do działania µP niezbędny jest zegar, który decyduje o
szybkości jego pracy.
Wykonywany program składa się z rozkazów (instrukcji).
Są to niepodzielne dla programisty czynności, które moŜe
wykonać µP.
Lista instrukcji jest stała, charakterystyczna dla danego µP,
uniwersalna albo zorientowana (na przetwarzanie obrazu,
sterowanie, obliczenia numeryczne i.t.p.).
W zaleŜności od liczby bitów, które µP moŜe równolegle
przetwarzać, mówimy o układach 8, 16, 32, 64-bitowych .
RESET
Adresy
PC ⇐ 0
pobranie
rozkazu
Dane
Blok arytmetyczno-logiczny
wykonanie
rozkazu
PC ⇐ PC + d
Sterowanie
Blok sterowania
Algorytm pracy mikroprocesora
Architektura typowego mikroprocesora
Cykl rozkazowy
Cykl odczytu z pamięci
cykl rozkazowy
2 cykl
maszynowy
n-ty cykl
maszynowy
T1 T2 T3 T4 T1 T2 T3 T4 T5 T1 T2 T3
Typowe rozkazy:
• przesłanie danych
• operacja arytmetyczna
• operacja logiczna
• skok
Typowe cykle maszynowe:
• pobranie rozkazu
• odczyt z pamięci danych
• zapis do pamięci danych
• operacja wewnętrzna
adres komórki pamięci
sygnały na magistralach
1 cykl
maszynowy
A
sygnał odczytu
RD
dane odczytane
D
czas dostępu
czas [ns]
1
sygnały na magistralach
Cykl zapisu do pamięci
A
ROM
adres komórki pamięci
RAM
I/O
Otoczenie
CPU
A
zapisywane dane
D
D
S
sygnał zapisu
WR
Ogólna architektura systemu mikroprocesorowego
czas wyprzedzenia
czas [ns]
A
CPU
Program
+
Dane
Wspólna przestrzeń
adresowa dla
programu i danych
Program
Dane
CPU
D
D1
D2
S
S1
S2
Architektura von Neumana
Architektura typu Harvard
A
Program
A2
A1
Dane
Język maszynowy
rozumiany przez µP
wartości binarnych opisujących
poszczególne instrukcje
Programy wyŜszego poziomu w wyniku
kompilacji zostają przetłumaczone na kod
maszynowy
Kod maszynowy jest ściśle związany z
typem µP dla którego jest przeznaczony
Język programowania
Ciąg
CPU
D
S1
S2
Architektura mieszana
2
Przykłady kodów maszynowych
Kod maszynowy
←
8 bit
→
Ogólny kod rozkazu:
KO
Argument(y)
RET
00100010
(1)
INC Rr (r = 0..7)
00011
r
(1)
MOV Rr, #n
( r = 0..7, n = 0..255)
10101
r
n
(1)
(2)
MOV ad1, ad2
( ad1 = 0..255,
ad2 = 0..255)
11100100
ad1
ad2
(1)
(2)
(3)
Rozkazy jedno i wielobajtowe:
← bajt1 → ← bajt2 → ← bajt3 →
KO
KO
Arg8 (1)
KO
Arg8 (1)
Arg8 (2)
KO
Arg16 (H) Arg16 (L)
Przykład:
RET
MOV A, ad
MOV ad1, ad2
LJMP ad16
Mikroprocesory CISC i RISC
CISC (Complex Instruction Set Computing) :
• procesory „klasyczne”
• znaczna liczba rozkazów i trybów adresowania
• niewielka liczba rejestrów uniwersalnych
RISC (Reduced Instruction Set Computing) :
• Berkeley (1985)
• ograniczona liczba krótkich rozkazów
• niewiele formatów i trybów adresowania
• znaczna liczba rejestrów uniwersalnych
• dedykowane do programowania w językach
wysokiego poziomu
Mikrokontrolery
Mikroprocesory sygnałowe
DSP (Digital Signal Processor)
Bardzo duŜa szybkość działania
Najczęściej architektura typu Harvard
Przetwarzanie potokowe
RISC
Specjalizowane w arytmetyce stałoprzecinkowej
Asembler jako język programowania
Mikrokontroler = Mikroprocesor + ROM + RAM + I/O
CPU
Układy
czasowo
licznikowe
ROM
RAM
Sterownik
przerwań
Porty
równoległe
Porty
szeregowe
Przetworniki
A/C
Otoczenie
Opiera się na mnemonikach bezpośrednio z
wiązanych z kodem maszynowym µP (jak 1:1)
Pozwala na korzystanie z adresów symbolicznych
Wysoka efektywność działania (duŜa szybkość,
niewielki rozmiar programów)
Stosunkowo duŜa trudność tworzenia programu
Programy są nieprzenośne na inne rodzaje µP
Język programowania niskiego poziomu
3
Przebieg procesu tłumaczenia
Format INTEL HEX
Kompilacja
– Sprawdzenie poprawności leksykalnej i skłądniowej
– Tłumaczenie mnemoników na kod maszynowy
– Generacja kodu pośredniego zawierającego adresy
znak początku adres bloku
dane rekordu
koniec linii
sybmoliczne
Konsolidacja
– Łączenie kodu kilku modułów (oraz bibliotek)
– Ustalanie pozycji kaŜdego z modułów w pamięci
– Zastępowanie adresów symbolicznych adresami
: XX XX XX XX XX .. XX XX XX CR LF
rozmiar
typ rekordu
suma kontrolna
rzeczywistymi
– Generacja kodu wynikowego gotowego do załadowania
Przykładowy plik INTELHEX
:07000000740124010200025B
:00000001FF
Przykładowy plik w formacie
INTELHEX
:10221A00438780759840C299C298C28C758DFF75A4
:10222A008BFF53890F438920C28FC2ABD28EE4F54C
:0E223A0009F508F50BF50AD20CD29CD2AC22A5
Pola pierwszego rekordu:
:
- znak początku
07
- liczba bajtów danych
0000
- adres bloku danych
00
- typ rekordu
7401 ...
- zawartość pola danych
5B
- suma kontrolna
:03002300021EEECC
:101EEE00C0E0C083C082C0D075D000C0073098213A
:101EFE00C298E50804543F65096036AF08050874BA
:101F0E002D2FF582E4340AF583E599F053083F80CE
:101F1E002030991DC299E50A650B6013AF0B050BB6
:101F2E00746D2FF582E4340AF583E0F5998002D2C0
:0C1F3E000CD007D0D0D082D083D0E0328D
4