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