Technika Mikroprocesorowa 1 __________________________ Podstawy Techniki Mikroprocesorowej
Literatura A.Skorupski - Podstawy budowy i działania komputerów (WKŁ 1996) P.Hadam - Projektowanie systemów mikroprocesorowych (BTC 2004) W.Stallings - Organizacja i architektura systemu komputerowego (WNT 2004) B.Prince - Nowoczesne pamięci półprzewodnikowe (WNT 1999) J.Karczmarczuk - Mikroprocesor Z80 (WNT 1987) K.Fedyna,M.Mizeracki - Układy mikroprocesorowe Z80 (WKŁ 1989) L.Grodzki - materiały do przedmiotu - pliki *.pdf dostępne na stronie www przedmiotu
Wykład 1 1/37 Zasada budowy i działania mikroprocesora Historia Architektury Funkcjonowanie procesorów Podstawowe pojęcia Przykłady procesorów
Budowa i działanie mikroprocesora 1/6 1011 0111 A B CIN Σ COUT COUT=(A+B+CIN) / 16 1 W W=(A+B+CIN) mod 16 10010 0010 A+B+CIN = W+16·COUT
Budowa i działanie mikroprocesora 2/6 ALU A B W COUT CIN S2..S0
Budowa i działanie mikroprocesora 3/6 S2..S0 ALU COUT CIN
Budowa i działanie mikroprocesora 4/6 F TEMP2 TEMP1 ALU CY S2..S0 rozkaz 1. Pobranie argumentu #1 sekwencja działań 2. Pobranie argumentu #2 sekwencyjny układ sterujący 3. Działanie ALU 4. Zapisanie wyniku
Budowa i działanie mikroprocesora 5/6 F TEMP2 TEMP1 ALU CY 0 1 2 3 4 . . . . . n-1 n pamięć programu rozkaz rejestr rozkazu 0. Pobranie i dekodowanie rozkazu licznik rozkazów sekwencyjny układ sterujący 1. Pobranie argumentu #1 2. Pobranie argumentu #2 3. Działanie ALU 4. Zapisanie wyniku
Budowa i działanie mikroprocesora 6/6 Przykład programu: suma 3 liczb z rej. B, C i D umieszczona w rej. A (A := B + C + D) wymaga to następujących działań: 1. CY := 0 , np. poprzez A:=AA 2. A := B + C 3. CY := 0 , np. poprzez A:=AA 4. A := A + D Zał: sposób kodowania rejestrów roboczych: 000 001 010 011 100 101 A B C D E F Kody rozkazów: A:=AA: A:=B+C: A:=A+D: 000 100 001 010 011
wykorzystanie maszyn liczących do spisu ludności w USA Historia 1/5 wykorzystanie maszyn liczących do spisu ludności w USA „młyn arytmetyczny” - projekt Babbage’a 1643 mechaniczny sumator Pascala maszyna licząca Leibniza algebra Boole’a 1670 1833 1854 1889
ENIAC Pensylwania ukoń. 1946 8085 3MHz Z80 2,5MHz Historia 2/5 4040 1MHz 8080 2MHz MARK1 Harward 8008 200kHz logika SSI i MSI ENIAC Pensylwania ukoń. 1946 8085 3MHz Z80 2,5MHz programowalny kalkulator Z3 Anglia 4004 108kHz logika tranzystorowa 1900 1941 1943 1944 1958 1965 1971 1972 1974 1976
Historia 3/5 Pentium P5 4GB RAM superskalarność FP unit, 8kB/8kB L1 60-200MHz 80386 4GB RAM wielozadaniowość 16-33MHz 80486 4GB RAM FP unit, 8kB L1 16-133MHz 8086 1MB RAM 5-10MHz 80286 16MB RAM 6-16MHz 8088 1978 1979 1981 1985 1989 1993 Am486DXx 80-133MHz
przetw. danych wideo, audio, grafiki Historia 4/5 Pentium MMX przetw. danych wideo, audio, grafiki 166-266MHz 1993 Pentium P5 4GB RAM superskalarność FP unit, dzielony cache 60-200MHz Pentium III techn. 3D-FP 0,45-1,1GHz Pentium 4 przetw. danych multimedialnych 1,3-1,8GHz Itanium techn. IA-64 1,3-1,8GHz Pentium Pro dalszy rozwój superskalarności 150-200MHz Pentium II techn. MMX 233-450MHz 1995 1996 1997 1998 1999 2000 2001 Celeron 266-533MHz Celeron II 433-700MHz AMD K6 166-500MHz AMD K5 75-166MHz Athlon 0,5-1GHz
Historia 5/5 68000 32MB RAM 8-20MHz 32b ALU 16b DATA-BUS 68020 4GB RAM 32b DATA-BUS 16-33MHz 68040 FP unit 8kBcache do 50MHz 68060 FP unit 8kBcache do 75MHz 68030 4GB RAM 20-50MHz 6800 6809 1974 1977 1979 1984 1987 1990 1992
uwspółcześniona koncepcja von Neumana pierwotna koncepcja von Neumana Architektury 1/8 PROCESOR PAMIĘĆ OPERACYJNA URZĄDZENIA WE/WY uwspółcześniona koncepcja von Neumana MAGISTRALA SYSTEMOWA PROCESOR PAMIĘĆ OPERACYJNA URZĄDZENIA WE/WY pierwotna koncepcja von Neumana
Architektury - pojęcia 2/8 Pamięć operacyjna - układy służące przechowywaniu: programów podczas ich wykonywania; danych dla tych programów; wyników ich pracy. Urządzenia zewnętrzne - układy pośredniczące w wymianie informacji pomiędzy systemem mikrokomputerowym a: człowiekiem (urz. operatorskie); otoczeniem fizycznym (urz. obiektowe); innymi systemami (urz. komunikacyjne).
struktura współczesnego komputera zgodnego z koncepcją von Neumana Architektury 3/8 struktura współczesnego komputera zgodnego z koncepcją von Neumana blok rejestrów magistrala wewnętrzna urządzenia zewnętrzne pamięć danych i programu flagi b u f o r y s y g n. z e w n. A B ALU rejestr rozkazu układ sterowania rejestr adresów PC licznik rozkazów wspólne magistrale danych, adresów i sterowań procesor
struktura komputera typu Harvard Architektury 4/8 struktura komputera typu Harvard blok rejestrów wewnętrzna magistrala danych urządzenia zewnętrzne pamięć danych flagi A B ALU rejestr rozkazu układ sterowania rejestr adresów danych PC licznik rozkazów wspólna magistrala pamięci danych i urz. zewn. procesor b u f o r y s y g n. z e w n. wewnętrzna magistrala rozkazów pamięć programu wydzielona magistrala pamięci programu
struktura komputera typu Harvard wersja oszczędnościowa Architektury 5/8 struktura komputera typu Harvard wersja oszczędnościowa blok rejestrów wewnętrzna magistrala danych urządzenia zewnętrzne pamięć danych flagi A B ALU rejestr rozkazu układ sterowania rejestr adresów danych PC licznik rozkazów procesor b u f o r y s y g n. z e w n. wewnętrzna magistrala rozkazów pamięć programu rozdzielone linie sterujące wspólne linie danych i adresów
Typowe składniki wewnętrznej struktury procesorów Architektury 6/8 Typowe składniki wewnętrznej struktury procesorów Powszechnie spotyka się: rejestry uniwersalne; rejestry dedykowane (akumulatory, liczniki rozkazów, wskaźniki stosu, rejestry adresujące, rejestry stanu i sterujące, rejestry przesuwające); dekodery (rozpoznające kody rozkazów); liczniki; jednostki arytmetyczno-logiczne (ALU); układy sterowania sekwencyjnego (sieci działań realizujące mikroprogramy); bufory sygnałów zewnętrznych; wewnętrzne magistrale. Rzadziej: wbudowane pamięci danych lub programu.
Architektury 7/8 przykład rejestru stanu procesora S - flaga znaku, najbardziej znaczący bit wyniku operacji Z - flaga zera, =1 gdy wynik operacji jest równy 0 H - flaga przeniesienia połówkowego przy dodawaniu lub pożyczki przy odejmowaniu (między bitami 3 i 4) P/V - flaga parzystości po operacjach logicznych (=1 przy parzystej liczbie „1” w wyniku) albo nadmiaru po operacjach arytmetycznych N - flaga odejmowania C - flaga przeniesienia
Architektury - pojęcia 8/8 Mikroprocesor uniwersalny - procesor wymagający przy konstruowaniu systemu mikroprocesorowego (systemu mikrokomputerowego) dołączenia zewnętrznych układów: pamięci operacyjnej; urządzeń zewnętrznych. Mikrokomputer jednoukładowy - układ scalony zawierający: właściwy procesor (np. rdzeń procesora uniwersalnego); pamięć operacyjną (całą dostępną lub jej część); wybrane urządzenia zewnętrzne (porty we/wy); podstawowe układy sterujące systemem (np. kontroler przerwań, dekodery adresu, układ resetu, generator taktu).
Funkcjonowanie - przetwarzanie rozkazów 1/13 Sekwencja działań procesora przy przetwarzaniu pojedynczego rozkazu cykl rozkazowy (CR) - odcinek czasu niezbędny do pobrania i wykonania danego rozkazu cykl maszynowy (CM) - odcinek czasu niezbędny do realizacji elementarnego odwołania do pamięci lub urządzenia we/wy
Funkcjonowanie - przetwarzanie rozkazów 2/13 Cykl realizacji rozkazu - ilustracja dla struktury von Neumana rejestry robocze urządzenia zewnętrzne pamięć danych i programu flagi ALU RR US rej. adr. PC procesor DR
Funkcjonowanie - przetwarzanie rozkazów 2/13 Cykl realizacji rozkazu - ilustracja dla struktury von Neumana dekodowanie rozkazu pobranie rozkazu pobranie rozkazu pobranie rozkazu pamięć danych i programu zapamiętanie wyniku flagi US rej. adr. ALU rej. adr. RR US rej. adr. PC DR procesor pobranie argumentu dekodowanie rozkazu dekodowanie rozkazu rej.tym. rej.adr. rej.adr. rejestry robocze flagi ALU RR DR RR pobranie argumentu wykonanie operacji pobranie argumentu rej.tym. PC rej. adr. ALU wykonanie operacji zapamiętanie wyniku wykonanie operacji DR rejestry robocze US flagi urządzenia zewnętrzne zapamiętanie wyniku
Cykl realizacji rozkazu - ilustracja dla struktury Harvard Architektury 3/13 Cykl realizacji rozkazu - ilustracja dla struktury Harvard pobranie rozkazu[PC] pobranie rozkazu rejestry robocze I/O pamięć danych flagi ALU RR US rej.adr PC procesor pamięć programu DR pobranie rozkazu[PC+1] pobranie rozkazu[PC+1] rej. tymcz. rej.adr dekodowanie rozkazu dekodowanie rozkazu dekodowanie rozkazu dekodowanie rozkazu rej. tymcz pobranie argumentu pobranie argumentu wykonanie operacji wykonanie operacji zapamiętanie wyniku zapamiętanie wyniku
Funkcjonowanie - przetwarzanie rozkazów 4/13 Schematy przetwarzania sekwencji rozkazów
Funkcjonowanie - przetwarzanie rozkazów 5/13 Schematy przetwarzania sekwencji rozkazów c.d. Warunek realizowalności: podział wewnętrznej struktury procesora na niezależnie działające bloki Zalecana architektura typu Harvard
Funkcjonowanie - przetwarzanie rozkazów 6/13 Schematy przetwarzania sekwencji rozkazów c.d. Warunki realizowalności: zwielokrotnione układy wewnętrzne procesora; odpowiednie oprogramowanie
Funkcjonowanie - pojęcia 7/13 szerokość słowa procesora (słowa maszynowego) - ilość bitów słów binarnych, które mogą być przetwarzane przez większość rozkazów procesora przestrzeń adresowa - zakres adresów jakimi może operować dany mikroprocesor przy odwołaniach do komórek pamięci lub rejestrów urządzeń zewnętrznych stos - specyficzna struktura danych, działająca jak rejestr LIFO, może być zrealizowany jako: wbudowana struktura sprzętowa albo stos programowy
Funkcjonowanie - tryby adresowania 8/13 tryby adresowania - sposoby wskazywania w kodzie rozkazów umiejscowienia ich argumentów i wyników (zwanych też operandami) tryby adresowania mogą być: proste - jednoskładnikowe (pojedyncze słowo binarne wskazujące lokalizację operandu); dwuskładnikowe (adres operandu powstaje jako suma dwóch słów binarnych); wieloskładnikowe (na adres operandu składają się więcej niż 2 słowa binarne).
Funkcjonowanie - tryby adresowania 9/13 Jednoskładnikowe tryby adresowania natychmiastowy kod rozkazu operand rejestrowy operand kod rozkazu Rx: bezpośredni kod rozkazu adres PAO PAO rejestrowy pośredni adres kod rozkazu Rx: pośredni kod rozkazu adres PAO
Funkcjonowanie - tryby adresowania 10/13 Dwuskładnikowe tryby adresowania adres operandu = baza + przemieszczenie Składniki te traktuje się jako zmienne, jeżeli są pobierane z rejestrów procesora, albo stałe - gdy są dostarczane razem z kodem rozkazu. baza - powinna być słowem binarnym o długości umożliwiającej dostęp do całej przestrzeni adresowej przemieszczenie - może być słowem krótszym od bazy, zapisanym w kodzie NB lub U2 Podstawowe warianty trybów dwuskładnikowych: przemieszczenie stałe przemieszczenie zmienne baza stała - indeksowy baza zmienna bazowy bazowo-indeksowy
Funkcjonowanie - tryby adresowania 11/13 Dwuskładnikowe tryby adresowania - przykłady bazowy baza kod rozkazu d PAO Rx: indeksowy d kod rozkazu baza PAO Ry: bazowo-indeksowy baza kod rozkazu d PAO Rx: Ry:
Funkcjonowanie - tryby adresowania 12/13 Dwuskładnikowe tryby adresowania - przykłady adresowanie względne baza kod rozkazu dU2 PAO PC: PC: adresowanie indeksowo-względne d kod rozkazu PAO baza Ry: adresowanie stronicowe - położenie operandu jest określane jako adres względem początku wskazanej strony pamięci adresowanie segmentowe - położenie operandu jest określane jako adres względem początku aktualnie używanego segmentu pamięci
Funkcjonowanie - tryby adresowania 13/13 Trójskładnikowe tryby adresowania - przykłady bazowo-indeksowy z przesunięciem baza kod rozkazu d indeks PAO Rx: Ry: bazowo-indeksowy skalowalny z przesunięciem baza kod rozkazu d indeks S SRy PAO Rx: Ry:
Struktura 8-bitowego mikroprocesora uniwersalnego CISC - Z80 Procesory - CISC 1/11 CISC - (Complex Instruction Set Computer) - klasyczne procesory o rozbudowanej (200...300) liście rozkazów Struktura 8-bitowego mikroprocesora uniwersalnego CISC - Z80
Schemat blokowy 8086/88 Procesory - CISC 2/11 EU jednostka wykonawcza AH AL BH BL CH CL DH DL SP BP DI SI szyna adresowa 20b CS DS SS ES IP rejestry komunikacji wewn. ALU rejestry chwilowe znaczniki układ sterowania jednostką wykonawczą wewnętrzna szyna danych EU jednostka wykonawcza 1 2 3 4 5 6 kolejka rozkazów: 6B w 8086, 4B w 8088 jednostka złącza BIU układ ster. szyną i bufory multipleksowana szyna danych/adresów (16b danych w 8086, 8b danych w 8088)
Schemat blokowy Pentium 4 Procesory - CISC 3/11 Schemat blokowy Pentium 4 Pamięć podręczna danych L1 8kB Blok rejestrów FP Blok rejestrów całkowitoliczbowych Jednostka FPU/MMX ALU złożonych liczb całk. ALU prostych liczb całk. układ łado-wania adresu układ przecho-wywania adresu Jednostka przeno-szenia liczb FP Pamięć podręczna L2 256kB Pamięć podręczna rozkazów L1 12k mikrooperacji Jednostka pobierania i dekodowania rozkazów Układy wykonywania rozkazów poza kolejnością 256b 64b magistrala systemowa
Cechy listy rozkazów procesora RISC: Procesory - RISC 4/11 RISC - (Reduced Instruction Set Computer) - procesory o zredukowanej (około 100) liczbie rozkazów Cechy listy rozkazów procesora RISC: dostęp do pamięci operacyjnej jest możliwy tylko rozkazami przesłań; operandy wszystkich rozkazów znajdują się tylko w rejestrach wewnętrznych procesora; rozkazy mają stały (jednakowy) format (długość w bitach); ograniczenie dostępnych trybów adresowania.
Różnice pomiędzy procesorem RISC a CISC: Procesory - RISC 5/11 Różnice pomiędzy procesorem RISC a CISC: zastosowanie przetwarzania potokowego, co daje skrócenie czasu wykonywania rozkazów; dzięki małej liczbie rozkazów o stałym formacie i prostym trybom adresowania, uzyskuje się uproszczony i szybko działający układ sterowania; często wykorzystuje się architekturę typu Harvard; przy dużej liczbie rejestrów procesora możliwa jest sprzętowa realizacja stosu, co przyśpiesza wywoływanie i zagnieżdżanie podprogramów. Przykłady procesorów RISC: IBM801, AM29000, Intel 80960, MIPS R2000/R3000, Motorola 88100, Sun SPARC (1988/89), rodzina PowerPC
Procesory - RISC 6/11 Przykład 8-bitowego mikrokomputera jednoukładowego RISC Harvard z rodziny AVR Atmela
Schemat blokowy Itanium 2 Procesory - RISC 7/11 Schemat blokowy Itanium 2 B M I F rozgałęzienie i predykacja 128 rejestrów całkowitoliczbowych 128 rejestrów zmiennopozycyjnych jednostki rozgałęzień jednostki całkowito- liczbowe i MMU 16kB cache L1 danych 2-portowa ALAT jednostki zmienno- pozycyjne sterownik magistrali 96kB cache L2 dekodo- wanie i stero- wanie przewidywane rozgałęzienie tablica wyników, bity predykacji, wyjątki 4MB cache L3 16kB cache L1 rozkazów ITLB
Cechy procesorów DSP (Digital Signal Processing): Procesory - DSP 8/11 Cechy procesorów DSP (Digital Signal Processing): wykorzystanie arytmetyki stałopozycyjnej (16b) lub zmiennopozycyjnej (32b na cechę i mantysę); rozbudowane moduły arytmetyki - zrównoleglone, sprzętowe układy mnożące realizujące operacje w jednym cyklu; rejestry dedykowane dla układów arytmetyki znacząco “dłuższe” od słowa maszynowego procesora (np. 80b przy słowie 32b-ym); jednostka ALU mogąca jednocześnie obliczać sumy i różnice argumentów; wbudowany cykliczny rejestr przesuwający, realizujący wielobitowe obroty i przesunięcia w jednym cyklu;
Cechy procesorów DSP - c.d. Procesory - DSP 9/11 Cechy procesorów DSP - c.d. co najmniej zdwojone układy generacji adresów, celem przyśpieszenia dostępów do pamięci; architektura Harvard; wbudowana pamięć RAM, co najmniej dwuportowa , o pojemności wystarczającej dla większości zastosowań; możliwość akceptacji większej liczby przerwań zewnętrznych; system przerwań wielopoziomowy i priorytetowy; wbudowane układy do sprzętowej realizacji pętli programowych; w zaawansowanych procesorach większość podstawowych rozkazów może być wykonywana warunkowo; wbudowane interfejsy do zewnętrznych przetworników A/C i C/A (najczęściej szybkie szeregowe);
Procesory - DSP 10/11 Dziedziny zastosowań procesorów DSP: sterowanie silnikami asynchronicznymi; systemy GPS; obróbka i kompresja dźwięku; przetwarzanie i rozpoznawanie sygnałów mowy; kompresja sygnału mowy; pomiary dźwięków; obróbka obrazu; telefonia cyfrowa - automaty zgłoszeniowe i informacyjne; wideotelefony; modemy; mierniki mocy prądu 1- i 3-fazowego.
Struktura blokowa 32-bitowego procesora ADSP2106x SHARC Procesory - DSP 11/11 Struktura blokowa 32-bitowego procesora ADSP2106x SHARC