OAK W6 Jednostka centralna

background image

1

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Organizacja i Architektura

Komputerów

Struktura i działanie jednostki centralnej

background image

2

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Budowa mikrokomputera

background image

3

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Zadania CPU

z

CPU wykonuje następujące zadania:

pobiera instrukcje programu z pamięci (

instruction

fetch

)

interpretuje (dekoduje) instrukcje

pobiera dane (

data fetch

)

przetwarza dane

zapisuje dane

background image

4

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Struktura CPU

background image

5

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Standardowa architektura CPU

background image

6

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestr wskaźników

Przykładowa struktura rejestru wskaźników: procesor 80C51 XA (Philips)

background image

7

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Bit Z - przykład

Przykład wykorzystania bitu Z do
organizacji pętli w programie; pętla
jest powtarzana 10 razy, aż
zawartość akumulatora stanie się
równa zeru

background image

8

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Bit C - przykład

Przykład operacji dodawania z uwzględnieniem bitu przeniesienia C

adc ax,71h

background image

9

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Stos – operacja zapisu

• typowa notacja w języku

asemblera:

push x

• w podanym przykładzie stos

rozbudowuje się w stronę
wzrastających adresów pamięci
(np. Intel x51)

• wiele innych procesorów

wykorzystuje stos rozbudowywany
w stronę malejących adresów, np.
Intel Pentium, Motorola 68HC16

background image

10

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Stos – operacja odczytu

• typowa notacja w języku

asemblera:

pop x

• w podanym przykładzie stos

rozbudowuje się w stronę
wzrastających adresów pamięci

background image

11

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Funkcje i właściwości stosu

z

Stos jest pamięcią typu LIFO (

last-in-first-out

)

z

Typowe zastosowania stosu

przy wywołaniu podprogramu zapamiętuje adres powrotu do programu

głównego

przy przejściu do programu obsługi przerwania zapamiętuje adres

powrotu do przerwanego programu

służy do chwilowego przechowywania zawartości rejestrów w celu

uwolnienia ich do innych zadań

może być użyty do przekazywania parametrów do podprogramów

z

Programista musi dbać o zbilansowanie liczby operacji zapisu i

odczytu oraz o zachowanie właściwej kolejności zapisu i odczytu

(odczyt wartości przebiega w odwrotnej kolejności niż przy zapisie)

z

Programista musi dbać o to, by stos nie rozrósł się nadmiernie i nie

przekroczył limitu pamięci (

stack overflow

) – częsty błąd w

przypadku programów rekurencyjnych lub przy wystąpieniu

nieskończonej pętli

background image

12

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Stos – wywołanie podprogramu

Ilustracja wykorzystania stosu do zapamiętania adresu powrotu
(zawartości licznika rozkazów IP) przy wywołaniu podprogramu
(asembler Pentium)

Program główny:

...

...
call read_key
...

...

Podprogram:

read_key

proc

near

...
...
ret

read_key

endp

zapisz IP

na stos

odczytaj IP

ze stosu

Uwaga:

rejestr IP (instruction pointer)

bywa w wielu innych procesorach
nazywany PC (program counter)

background image

13

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestry

z

Niewielka pamięć robocza CPU do przechowywania tymczasowych

wyników obliczeń

z

Liczba rejestrów i ich funkcje różnią się dla różnych procesorów

z

Rejestry mogą pełnić rozmaite funkcje:

Rejestry ogólnego przeznaczenia (GP – general purpose)

Rejestry danych (np. akumulator)

Rejestry adresowe

Rejestr wskaźników (stanu, warunków, flag)

z

Architektura oparta na rejestrach GP jest bardzie elastyczna przy

programowaniu, ale procesor jest bardziej złożony a czas

wykonania rozkazu dłuższy

z

Architektura oparta na specjalizowanych rejestrach upraszcza

budowę procesora i przyspiesza wykonanie rozkazu, ale ogranicza

programistę

background image

14

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestry

cd.

z

Typowa liczba rejestrów GP w CPU: 8 – 32

mniej rejestrów GP – częstsze odwołania do pamięci

znaczne zwiększenie liczby rejestrów GP nie wpływa znacząco

na zmniejszenie liczby odwołań do pamięci

z

Rozmiar rejestru

wystarczający do przechowywania adresu

wystarczający do przechowywania pełnego słowa danych

z

Często można łączyć ze sobą dwa rejestry, dzięki czemu

można łatwo reprezentować typowe formaty danych w

językach wysokiego poziomu, np. w C:

double int a

long int a

background image

15

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestry

cd.

Przykład architektury pliku rejestrów: procesor Motorola 68HC12

background image

16

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestry

cd.

Rejestr wskaźników w procesorze Motorola 68HC12

background image

17

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestry

cd.

Przykład architektury
rejestrów GP:

Philips 80C51 XA

background image

18

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rejestry

cd.

rejestry GP

rejestry indeksowe

rejestr bazowy
wskaźnik stosu

rejestry segmentów

rejestr wskaźników

licznik rozkazów

Przykład architektury pliku
rejestrów:

procesor Intel Pentium

background image

19

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl wykonania rozkazu

fetch

– pobranie binarnego kodu rozkazu z pamięci

W celu przyspieszenia wykonywania rozkazu stosuje się niekiedy
cykl prefetch – pobieranie kodu rozkazu jeszcze przed zakończeniem
wykonania poprzedniego rozkazu. Rozwój tej koncepcji doprowadził
do cachingu i pipeliningu

background image

20

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Format rozkazu

W procesorach o architekturze CISC rozkazy mają niejednolitą
postać (format):

• instrukcja zapisana binarnie może mieć różną długość
• stosuje się różne sposoby adresowania argumentów

Przykład (Pentium):

mov

ax,cx

mov

ax,[e42d]

10001011 kod operacji

10100001

11000001

00101101
11100100

argument lub adres little endian!

background image

21

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl wykonania rozkazu

cd.

background image

22

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Pobranie rozkazu

MEMR

background image

23

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wykonanie rozkazu

A

Ri

Przykład wykonania rozkazu przesłania zawartości rejestru Ri do
akumulatora

background image

24

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wykonanie rozkazu

cd.

)

1

,

0

(

R

R

M

A

Przykład: wykonanie rozkazu przesłania zawartości akumulatora A
do komórki pamięci o adresie zawartym w parze rejestrów R0 i R1

background image

25

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wykonanie rozkazu

cd.

)

1

,

0

(

R

R

M

A

Przebiegi w trakcie pobrania i wykonania rozkazu:

background image

26

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wykonanie rozkazu

cd.

z

Analizowane poprzednio rozkazy w prostych

procesorach 8-bitowych zajmują tylko 1 bajt zawierający

kod operacji

informacja o rejestrach biorących udział w operacji mieści się

na kilku bitach w kodzie operacji

wymagany jest tylko jeden cykl dostępu do pamięci w fazie
fetch

w przypadku rozkazu nie trzeba dostępu do pamięci

przy zapisie wyniku

w przypadku rozkazu potrzebny jest jeden cykl

dostępu do pamięci przy zapisie wyniku

A

Ri

)

1

,

0

(

R

R

M

A

background image

27

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wykonanie rozkazu

cd.

z

Przykład rozkazu wielobajtowego:

add a,7bh

;dodaj do akumulatora liczbę 7b
;zapisaną w kodzie hex

z

wykonanie

IR

M(PC) ;pobierz kod operacji do IR

PC

PC+1

;inkrementuj licznik programu PC

Temp

M(PC) ;załaduj do Temp argument z pamięci

PC

PC+1

;inkrementuj PC

A

ALU+

;prześlij wynik dodawania A+Temp do A

background image

28

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wykonanie rozkazu

cd.

z

Przykład rozkazu wielobajtowego

add

a,[1c47h] ;dodaj do A zawartość komórki

;o adresie 1c47 w kodzie hex

z

wykonanie

IR

M(PC) ;pobierz kod operacji do IR

PC

PC+1

;inkrementuj licznik programu PC

RAH

M(PC) ;ładuj bardziej znaczący bajt adresu

PC

PC+1

;inkrementuj PC

RAL

M(PC) ;ładuj mniej znaczący bajt adresu

PC

PC+1

;inkrementuj PC

Temp

M(RA) ;ładuj dodajnik do rejestru Temp

A

ALU+

;prześlij wynik dodawania do A

background image

29

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl rozkazowy – wnioski

z

Wykonanie programu polega na wykonaniu ciągu cykli
rozkazowych

z

Cykl rozkazowy składa się z dwóch podstawowych faz:
cyklu pobrania rozkazu i wykonania rozkazu

z

W zależności od długości kodu rozkazu i sposobu
adresowania argumentów wykonanie rozkazu zajmuje
różną liczbę elementarnych cykli maszynowych
realizowanych przez jednostkę sterującą

z

Elementarne operacje składające się na wykonanie
rozkazu są nazywane

mikrooperacjami

(

µOP)

background image

30

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Instrukcje i mikrooperacje

background image

31

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Układ sterowania

Zadaniem jednostki sterującej jest wygenerowanie sekwencji sygnałów
sterujących, które spowodują wykonanie sekwencji mikrooperacji
realizującej dany rozkaz

background image

32

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Sterowanie w prostym CPU

background image

33

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Mikrooperacje i sterowanie

Przykład realizacji prostej operacji dla CPU z poprzedniego rysunku:

add

ac,[adres]

cykl

mikrooperacja

sygnały sterujące

t1

MAR

PC

C2

t2

MBR memory

C5

PC

PC+1

t3

IR

MBR

C4

t4

MAR

IR(adres)

C8

t5

MBR

memory

C5

t6

AC

AC+MBR

C6,C7,C9

background image

34

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Układ sterowania

cd.

Zastosowanie dekodera

upraszcza budowę układu

sterowania

background image

35

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Warianty realizacji CU

Stosuje się dwa sposoby realizacji jednostki sterującej:

• w postaci typowego układu sekwencyjnego (

hardwired

CU)

• z wykorzystaniem mikroprogramowania (

microprogrammed

CU)

• Jednostka CU typu hardwired :

• Zaprojektowana jako układ sekwencyjny – automat o

skończonej liczbie stanów (FSM – finite state machine), z
wykorzystaniem klasycznych metod syntezy układów
sekwencyjnych

• Zalety: duża szybkość działania, zoptymalizowana liczba

elementów logicznych

• Wada: trudna modyfikacja w razie konieczności zmiany projektu
• Jednostki CU typu hardwired są preferowane w architekturze

RISC

background image

36

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Mikroprogramowanie

z

Mikroprogramowana jednostka CU (M.V. Wilkes, 1951):

z

Sekwencje sygnałów sterujących są przechowywane w wewnętrznej

pamięci CU i tworzą mikroprogram; każdy rozkaz CPU ma własny

kod mikroprogramu

z

Praca CU polega na sekwencyjnym odczytywaniu kolejnych słów

mikroprogramu

z

Zalety:

przejrzysta, usystematyzowana budowa CU

łatwość modyfikacji pamięci mikroprogramu

z

Wady:

mniejsza szybkość działania w porównaniu z jednostką CU typu
hardwired

większa liczba elementów logicznych (w tym pamięciowych)

background image

37

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Mikroprogra-

mowanie

cd.

Schemat funkcjonalny
mikroprogramowanej
jednostki sterującej

background image

38

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Kodowanie mikrorozkazów

kodowanie poziome

kodowanie pionowe

background image

39

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwanie

Przerwanie

(Interrupt)

Program główny

Program obsługi

przerwania

(Interrupt handler)

background image

40

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Koncepcja systemu przerwań

background image

41

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania –

zysk czasu CPU

1,2,3 – program główny

4 – inicjacja operacji I/O
5 – obsługa przerwania

bez przerwań

z przerwaniami

background image

42

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania zewnętrzne

z

Przerwania zewnętrzne

(interrupts) spowodowane

zdarzeniem poza CPU, sygnalizowane sygnałem
doprowadzonym do odpowiedniego wejścia procesora

Maskowane

– sygnalizowane przez wejście INTR; CPU

reaguje na przerwanie maskowane jeśli bit zezwolenia na
przerwanie IF w rejestrze wskaźników (w Pentium EFLAGS)
jest ustawiony

Niemaskowane

– sygnalizowane przez wejście NMI; CPU

zawsze reaguje na takie przerwanie

background image

43

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania wewnętrzne - wyjątki

z

Wyjątki

(exceptions) powodują takie same efekty jak

przerwania zewnętrzne, ale są wynikiem realizacji
programu

Błędy

– w przypadku wykrycia błędu uniemożliwiającego

wykonanie instrukcji CPU generuje wyjątek

Wyjątki programowane

– generowane celowo przez

programistę przy użyciu specjalnych instrukcji (INTO, INT3,
INT, BOUND – Pentium)

background image

44

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl rozkazu a przerwania

background image

45

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania – problemy projektowe

1. Jak zapobiec interferencji programu głównego i handlera

(obydwa działają na tych samych zasobach CPU) ?

2. W jakim obszarze pamięci należy umieścić programy obsługi

przerwań (handlery) ?

3. Jeśli w systemie jest wiele źródeł przerwań, jak rozpoznać, które

z urządzeń zgłosiło przerwanie ?

4. Co zrobić, jeśli jednocześnie wystąpi więcej niż jedno żądanie

przerwania ?

background image

46

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania – handler

(problem 1)

Przykład realizacji współpracy programu głównego z handlerem (Pentium)

(1)
EFLAGS stos
I,T flags = 0
CS stos
IP stos
IP:CS hand_1

(2)
IP stos
CS stos
EFLAGS stos

program główny

handler

instrukcja 1

hand_1

proc

far

instrukcja 2

push

ax

instrukcja 3

push

bp

instrukcja 4

...

...

...

...

pop

bp

pop

ax

iret

hand_1 endp

(1)

(2)

• czynności (1) i (2) są wykonywane automatycznie przez CPU
• ochronę rejestrów w handlerze (w tym przypadku ax i bp) programista

musi zorganizować samodzielnie

background image

47

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Adresy handlerów

(problem 2)

• Sposób rozmieszczenia adresów handlerów przerwań i wyjątków

jest w większości procesorów ustalony na stałe przez producenta
CPU – użytkownik może definiować część adresów, reszta jest
ustalona przez system

• Najczęściej adresy handlerów są umieszczone na samej górze

(Motorola) lub na samym dole przestrzeni adresowej (Intel)

Przykład: adresy handlerów przerwań w MC68HC12

watchdog

NMI
NMI
59 x NMI

background image

48

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania wielokrotne

(problemy 3 i 4)

z

Zablokowanie (maskowanie przerwań)

CPU ignoruje kolejne sygnały przerwań i wykonuje aktualny
handler

zgłoszenia przerwań są pamiętane; CPU zacznie je obsługiwać
w kolejności zgłoszenia, po zakończeniu wykonywania
aktualnego handlera

z

Przerwania priorytetowe

obsługa przerwań o niższym priorytecie może być przerywana
przez przerwania o wyższym priorytecie

po zakończeniu obsługi przerwania o wyższym priorytecie CPU
wraca do obsługi przerwania o niższym priorytecie

background image

49

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania wielokrotne - sekwencyjne

background image

50

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przerwania wielokrotne - zagnieżdżone

background image

51

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl rozkazu

Diagram cyklu
rozkazowego z
uwzględnieniem obsługi
wyjątków i przerwań

background image

52

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Identyfikacja źródła przerwań

(1)

Organizacja prostego
systemu identyfikacji
przerwań przez
programowe
przeglądanie (polling)

background image

53

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Identyfikacja źródła przerwań

(2)

Organizacja systemu identyfikacji źródła przerwań z łańcuchowaniem
urządzeń I/O (daisy-chain)

background image

54

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Identyfikacja źródła przerwań

(3)

Prosty układ realizujący przerwania wektoryzowane

background image

55

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Podsumowanie

z

Struktura i działanie CPU

rejestr wskaźników

plik rejestrów

segmentacja pamięci

z

Stos

z

Budowa i działanie jednostki sterującej

cykl wykonania rozkazu

warianty realizacji jednostki sterującej

mikroprogramowana jednostka sterująca

z

Przerwania

koncepcja systemu przerwań, przerwania i wyjątki

handlery i ich adresy, przerwania wektoryzowane

przerwania wielokrotne

identyfikacja źródła przerwania


Document Outline


Wyszukiwarka

Podobne podstrony:
Laboratorium budowy urządzeń mikrokomputerowych, Wygląd wnętrza jednostki centralnej, Wygląd wnętrza
8, Jednostka centralna
8 Jednostka centralna
05 jednostka centralna
Budowa Jednostki Centralnej part 2, Budowa Komputera
BUDOWA ZESTAWU jednostka centralna
05 jednostka centralnaid 5712
8 Jednostka centralna
jednostka centralna srodek
Budowa Jednostki Centralnej part 1, Budowa Komputera
Bezprzewodowe sieci komputerowe, jednostka centralna, zasięg, zalety i wady
Jednostka centralna bywa również nazywana komputerem
W6 Rynek pieniadza i bank centralny (1)
Zmiany w organizacji i funkcjonowaniu centralnych organów administracji rządowej i jednostek im podp

więcej podobnych podstron