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