Architektura Systemów Mikroprocesorowych
Transkrypt
Architektura Systemów Mikroprocesorowych
J. Sugier, TC2 J. Sugier, TC2 II ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH Technika Cyfrowa 2 1. WSTĘP Wykład 2: [Misiurewicz]: Architektura Systemów Mikroprocesorowych Mikroprocesor - uniwersalny układ scalony VLSI, mogący realizować sekwencje elementarnych operacji przetwarzania informacji. dr inż. Jarosław Sugier [email protected] Operacje te należą do pewnego zbioru zwanego listą rozkazów - zbiór ten jest funkcjonalnie pełny, tzn. może realizować dowolnie złożony algorytm przetwarzania informacji. IIAR, pok. 227 C-3 Sekwencja operacji wykonywanych przez µprocesor = program, zapisany w pamięci. 2-1 2-2 J. Sugier, TC2 J. Sugier, TC2 1.1 Architektura trójmagistralowa systemu µproc Magistrala adresowa Magistrala danych Trzy podstawowe składniki systemu mikroprocesorowego (mikro)procesor (CPU - Central Processing Unit) Magistrala sterująca pamięć - Random Access Memory (RAM) / Read-Only Memory (ROM). urządzenia WE/WY - diody, klawisze … Pamięć RAM CPU Architektura von Neumanna Pamięć ROM jeden procesor przetwarzający informacje; zarówno program, jak i przetwarzane dane przechowywane są we wspólnej pamięci. Porty WE/WY Architektury inne – np. równoległe, wieloprocesorowe, rozdzielenie pamięci danych i programu (a. harwardzka), specjalizowane … 2-3 2-4 J. Sugier, TC2 J. Sugier, TC2 Magistrale Magistrala - zespół linii sygnałów binarnych a) adresowa - przesyła adres, wybierający określoną komórkę pamięci lub urządzenie (port) WE/WY b) danych - przesyła dane między mikroprocesorem a wybraną komórką pamięci lub portem WE/WY Pamięć Model: pamięć = jednowymiarowa tablica rejestrów c) sterująca - zawiera sygnały sterujące, synchronizujące proces przesyłania. Max. adres: 216 – 1 = 0FFFFh Słowo maszynowe Rodzaje pamięci & technologie: - ilość informacji, przetwarzana przez procesor w jednym rozkazie. RAM - Random Access Memory Zazwyczaj: - jest wielokrotnością 8 (ew. 4) b. ROM PROM - Read Only Memory - Programmable ROM - odpowiada rozmiarowi rejestrów wewnętrznych procesora - odpowiada szerokości magistrali danych EPROM - Erasable ROM EEPROM - Electrically Erasable PROM; => Flash Procesory 8-bitowe ⇒ słowo maszynowe 8-bitowe. • Technologie analogiczne do PLD Np. organizacja pamięci w systemach 8080 / XRAM w 8051: – komórka pamięci 8-bitowa (1 bajt) – adres 16-bitowy 0000 HEX 2-5 0001HEX 0002HEX Å8bÆ FFFFHEX 2-6 1 J. Sugier, TC2 Magistrale procesorów f-my Intel Address Bus [b] Addr. Space 808/8085, Z-80 16 64 kB 8 8086 20 1 MB 16 80286 24 16 MB 16 80386 DX, 80486 32 4 GB 32 Pentium 32 4 GB 64 36 64 GB 64 J. Sugier, TC2 Dzisiaj – np. Intel P35 Express chipset Data Bus [b] (…) Pentium Core2 Uwagi: • Pojęcie „przestrzeń adresowa” nie jest już takie proste począwszy od 80286 (stronicowanie, pamięć wirtualna). • 1 k = 210 = 1024 1 M = 220 = 1024 k = 1 048 576 1 G = 230 = 1024 M = 1 073 741 824 Np.: 120×109 : 230 ≈ 112 G (93%) 4,70×109 : 230 ≈ 4,38 G 8,54×109 : 230 ≈ 7,95 G – pojemność HDD „120 GB” – pojemność DVD-5 (12 cm, SS / SL) – pojemność DVD-9 (12 cm, SS / DL) 2-7 2-8 J. Sugier, TC2 J. Sugier, TC2 2. ARCHITEKTURA MIKROPROCESORA Elementy Architektura procesora: sposób, w jaki widzi i używa go użytkownik (architektura vs organizacja). Rejestry robocze Dwa wyróżnione specjalne rejestry sterujące: – licznik rozkazów (Program Counter, PC) - adres komórki pamięci z następnym rozkazem do wykonania; CPU MAGISTRALA DANYCH Rejestr flag – wskaźnik stosu (Stack Pointer, SP) - wskazuje koniec obszaru pamięci, zwanego stosem. Rejestr rozkazów Układ Sterujący ALU Jednostka arytmetyczno – logiczna (Arithmetic - Logic Unit, ALU), wykonująca na danych w rejestrach operacje arytmetyczne (suma, różnica, niekiedy iloczyn / iloraz) oraz logiczne (logiczna suma / iloczyn bitowy itp.). Rejestr flag; zawiera flagi – znaczniki bitowe, ustawiane przez ALU w zależności od wyniku wykonanej operacji; typowe flagi: nadmiar (przekroczenie zakresu), zero, parzysta liczba bitów równych jeden... Rejestry robocze ... ... Wskaźnik stosu Licznik rozkazów MAGISTRALA ADRESOWA Rejestr rozkazów – przechowuje pobrany z komórki pamięci kod wykonywanego rozkazu. Układ sterujący – najogólniej: dekoduje rozkaz i steruje jego wykonaniem. MAGISTRALA STERUJĄCA 2-9 2-10 J. Sugier, TC2 J. Sugier, TC2 Podstawowy cykl pracy procesora Zaburzenia pracy sekwencyjnej Tzw. cykl rozkazowy: pobierz rozkaz / wykonaj rozkaz Pobranie rozkazu Wczytaj do rejestru rozkazów bajt pamięci spod adresu przechowywanego w PC (tzw. cykl odczytu pamięci, praca magistral); zdekoduj rozkaz, tzn. zinterpretuj bajt jako polecenie z listy rozkazów procesora. Wykonanie rozkazu Zależy od konkretnej treści: ew. wczytanie kolejnych bajtów rozkazu z komórek pamięci (tzw. operandy), wykonanie operacji w ALU, zapisanie wyniku w rejestrze wewnętrznym lub komórce pamięci (tzw. cykl zapisu pamięci)... Kodowanie listy rozkazów procesora ...sposób binarnej reprezentacji rozkazów w komórkach pamięci. Kody rozkazów przechowywane w pamięci tak samo jak dane – jedna z cech architektury von Neumanna. Typowo w komórkach pamięci znajduje się sekwencja rozkazów do wykonania (każdy zajmuje wraz z argumentami 1 ÷ 2...4 bajtów), które są wykonywane „jeden po drugim”. Zaburzenia: rozkaz skoku: kontynuuj wykonywanie programu od wskazanego adresu; wywołanie podprogramu (tzw. skok ze śladem): zapamiętaj bieżący adres programu na stosie, przejdź do wykonywania programu od wskazanego adresu z możliwością powrotu do miejsca zapamiętanego (powrót z podprogramu); obsługa przerwania; przerwanie = zdarzenie nadzwyczajne, przerywające aktualnie wykonywany program, powodujące przejście do wykonywania tzw. podprogramu obsługi przerwania. Program startowy Program umieszczany w pamięci stałej od adresu startowego danego procesora, tzn. od adresu wpisywanego do rejestru PC po inicjalizacji zasilania (zwykle jest to adres zerowy, choć nie zawsze). 2-11 2-12 2 J. Sugier, TC2 3. PODSTAWOWE OPERACJE SPRZĘTOWE J. Sugier, TC2 Np. MEMR: 1. ODCZYT PAMIĘCI (MEMR): przesłanie zawartości komórki pamięci do rejestru wewnętrznego procesora Mag. adresowa 2. ZAPIS PAMIĘCI (MEMW): przesłanie zawartości rejestru wewnętrznego procesora do komórki pamięci Sygnał sterujący 3. ODCZYT PORTU WE/WY (IOR): przesłanie bajtu z portu WE do rejestru wewnętrznego procesora Mag. danych 4. ZAPIS PORTU WE/WY (IOW): przesłanie rejestru wewnętrznego procesora do portu WY CPU Å MEM CPU Æ MEM CPU Å WE/WY CPU Æ WE/WY zawartość komórki Wartość magistrali adresowej oraz sygnał sterujący ustawia procesor; wartość magistrali danych – układ pamięci. Sygnały magistrali sterującej (wyprowadzenia procesora): 8085 IO/!M !RD !WR 0 0 1 0 1 0 1 0 1 1 1 0 adres komórki pamięci „Sygnał sterujący” na rysunku: z magistrali sterującej; przyjmuje wartość aktywną (niską) gdy następuje odczyt MEMR: Z 80 !MREQ !IORQ !RD !WR 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 dla 8085 dla Z80 „Sygnał sterujący” = IO / !M + !RD „Sygnał sterujący” = !MREQ + !RD 2-13 2-14 J. Sugier, TC2 J. Sugier, TC2 3.1 Przykład: interfejs pamięci ROM Organizacja obszaru Zadanie Zaprojektować realizację obszaru pamięci ROM w systemie procesora Z80 używając układów EPROM TMS 2732. Rozmiar obszaru: 8kB, adres początkowy: 4000hex. • 8 kB = 213 kB ⇒ zakres adresów 0100 0000 0000 00002 ÷ 0101 1111 1111 11112 ( 4000hex ÷ 5FFFhex) Sygnały Z80 magistrala adresowa A0 – A15 magistrala danych D0 – D7 sygnały sterujące !MREQ, !RD A0 ÷ A11 2732 • 8 kB : 4 kB = 2 ⇒ potrzebne są dwa układy 2732: pierwszy (A) dla zakresu 4000hex ÷ 4FFFhex, drugi (B) dla zakresu 5000hex ÷ 5FFFhex: A15÷A12 = 01002 ⇒ wybór układu (A), D0 ÷ D7 A15÷A12 = 01012 ⇒ wybór układu (B). 4k x 8 • Sygnał CS = dekodowanie adresu z powyższych zakresów; dekoder „1 z 16” 74F154 Układ TMS 2732 Pamięć ROM o organizacji 4k słów 8-bitowych 4k słów = 212 ⇒ 12 wyprowadzeń adresowych Sygnały: CS OE !CS (Chip Select) – wybór układu !OE (Output Enable) – otworzenie 3-stanowych buforów wyjściowych (wyjścia D0 ÷ D7 są trójstanowe). • Sygnały A11÷A0 procesora dołączone do wyprowadzeń adresowych układów pamięci • Sygnał !OE = !MREQ + !RD (sygnały sterujące Z80). 2-15 2-16 J. Sugier, TC2 J. Sugier, TC2 Uwagi Wynik • Przenoszenie obszarów pamięci poszczególnych układów (A) lub (B) ⇒ dołączenie sygnałów CS do innych wyjść dekodera 74F154, np. wyjście 7 przenosi układ w obszar 7000hex ÷ 7FFFhex. Address bus A0÷ A11 2732 A0 ÷ A11 D0 ÷ D7 A0÷ A11 2732 A0 ÷ A11 A CS Data bus • Jest to tzw. dekodowanie pełne adresu: uczestniczą w nim wszystkie linie A0 ÷ A15. D0 ÷ D7 • Możliwe dekodowanie niepełne; np. !CS = A12 (skrajność), wówczas: B OE CS układ (A) powielony ośmiokrotnie pod adresami 0000hex / 2000hex / 4000hex / 6000hex / 8000hex / A000hex / C000hex / E000hex; OE układ (B) powielony ośmiokrotnie pod adresami 1000hex / 3000hex / 5000hex / 7000hex / 9000hex / B000hex / D000hex / F000hex. 74F154 A12 A0 A13 A1 A14 A2 A15 A3 E0 E1 Q0 Q1 Q2 Q3 Q4 Q5 Q6 . . . • Pominięto problem buforowania magistrali danych (zdano się na buforowanie wyjść w układach 2732); w praktyce często ze względu na obciążalność wyjść konieczne jest stosowanie dodatkowych układów separująco-buforujących. • Zwiększanie długości słowa pamięci ⇒ łączenie równoległe układów, np. o organizacji 4k x 4; układy o dużej pojemności ze słowami 1b. MREQ RD 2-17 2-18 3 J. Sugier, TC2 3.2 Pamięć RAM • Dwukierunkowy przepływ danych (zapis / odczyt), bufory dwukierunkowe • W niektórych układach oddzielne wejście (zapis) / wyjście (odczyt) danych • Specyfika pamięci dynamicznych: dla poprawnej pracy wymagają tzw. odświeżania – wykonania cykli odczytu z określoną częstotliwością minimalną. 2-19 4