background image

 

 

background image

 

 

PODSTAWY ARCHITEKTURY KOMPUTERA 

PODSTAWY ARCHITEKTURY KOMPUTERA 

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Specjalizowany układ cyfrowy a maszyna 

Specjalizowany układ cyfrowy a maszyna 

cyfrowa

cyfrowa

Struktura systemu mikroprocesorowego

Struktura systemu mikroprocesorowego

Bloki funkcjonalne - organizacja i 

Bloki funkcjonalne - organizacja i 

architektura

architektura

7

background image

 

 

PRZETWARZANIE 

PRZETWARZANIE 

INFORMACJI

INFORMACJI

Wszelkie procesy zamierzonego przetwarzania informacji 

Wszelkie procesy zamierzonego przetwarzania informacji 

przebiegają według ustalonego algorytmu

przebiegają według ustalonego algorytmu

DANE 

DANE 

POCZĄTKOW

POCZĄTKOW

E

E

WYNIKI 

WYNIKI 

KOŃCOWE

KOŃCOWE

PROCES 

PROCES 

PRZETWARZANI

PRZETWARZANI

A

A

ALGORYTM

ALGORYTM

Przetwarzanie informacji można zrealizować dwoma sposobami:

Przetwarzanie informacji można zrealizować dwoma sposobami:

Specjalizowany układ cyfrowy:

Specjalizowany układ cyfrowy:

System mikroprocesorowy (maszyna cyfrowa):

System mikroprocesorowy (maszyna cyfrowa):

SPECJALIZOWANY

SPECJALIZOWANY

UKŁAD CYFROWY

UKŁAD CYFROWY

MASZYNA 

MASZYNA 

CYFROWA

CYFROWA

WYNIKI

WYNIKI

PROGRAM

PROGRAM

DANE

DANE

DANE

DANE

WYNIKI

WYNIKI

background image

 

 

ARCHITEKTURA MASZYNY CYFROWEJ

ARCHITEKTURA MASZYNY CYFROWEJ

PAMIĘĆ 

PAMIĘĆ 

ZEWNĘTRZNA

ZEWNĘTRZNA

UKŁADY WY 

UKŁADY WY 

URZĄDZENIA 

URZĄDZENIA 

ZEWNĘTRZNE

ZEWNĘTRZNE

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

BLOK 

BLOK 

PRZETWA-

PRZETWA-

RZANIA

RZANIA

STEROWANIE

STEROWANIE

UKŁADY WE 

UKŁADY WE 

URZĄDZENIA 

URZĄDZENIA 

ZEWNĘTRZNE

ZEWNĘTRZNE

MASZYNA CYFROWA

MASZYNA CYFROWA

PROCESOR

PROCESOR

JEDNOSTKA CENTRALNA

JEDNOSTKA CENTRALNA

W

Y

N

IK

I

W

Y

N

IK

I

P

R

O

G

R

A

M

P

R

O

G

R

A

M

D

A

N

E

D

A

N

E

background image

 

 

...

...

URZ. 

URZ. 

ZEWN.

ZEWN.

PROCESOR

PROCESOR

PAMIĘC

PAMIĘC

UKŁADY

UKŁADY

WE/WY

WE/WY

ZEGAR

ZEGAR

SZYNA DANYCH

SZYNA DANYCH

SZYNA ADRESOWA

SZYNA ADRESOWA

SZYNA STEROWANIA

SZYNA STEROWANIA

UŻYTKOWNIK

UŻYTKOWNIK

DANE

DANE

PROGRAMY

PROGRAMY

WYNIKI

WYNIKI

MONITORY, DRUKARKI, 

MONITORY, DRUKARKI, 

CZYTNIKI,...

CZYTNIKI,...

SYSTEM MIKROPROCESOROWY

SYSTEM MIKROPROCESOROWY

Centralna jednostka 

Centralna jednostka 

przetwarzająca (CPU)

przetwarzająca (CPU)

Liczba linii wyznacza 

Liczba linii wyznacza 

możliwości 

możliwości 

adresowania np. liczba 

adresowania np. liczba 

linii 20 to można 

linii 20 to można 

zaadresować 2

zaadresować 2

20

20

 

 

komórek

komórek

Liczba linii określa 

Liczba linii określa 

długość słowa 

długość słowa 

procesora (8, 16, 

procesora (8, 16, 

32, .... (+biyt detekcji i 

32, .... (+biyt detekcji i 

korekcji błędów

korekcji błędów

)

)

Kilkanaście 

Kilkanaście 

(kilkadziesiąt) linii

(kilkadziesiąt) linii

Uniwersalny układ 

Uniwersalny układ 

przetwarzający 

przetwarzający 

informację i 

informację i 

sterujący pracą 

sterujący pracą 

pozostałych 

pozostałych 

elementów 

elementów 

systemu

systemu

background image

 

 

ORGANIZACJA SYSTEMU

ORGANIZACJA SYSTEMU

»

Architektura klasycznego komputera (wg von Neumana) 

Architektura klasycznego komputera (wg von Neumana) 

opiera się na założeniach:

opiera się na założeniach:

program wykonywany przez procesor wraz z danymi 

program wykonywany przez procesor wraz z danymi 

jest umieszczony w pamięci;

jest umieszczony w pamięci;

kolejność wykonywanych rozkazów zależy od ich 

kolejność wykonywanych rozkazów zależy od ich 

umieszczenia w programie (w kolejnych komórkach 

umieszczenia w programie (w kolejnych komórkach 

pamięci), a zmiana tej zasady może być wykonana 

pamięci), a zmiana tej zasady może być wykonana 

tylko:

tylko:

 

 

przez program (rozkaz skoku);

przez program (rozkaz skoku);

przez system operacyjny np. wykrycie błędu;

przez system operacyjny np. wykrycie błędu;

przez operatora np. 

przez operatora np. 

reset

reset

procesor odczytuje kolejne rozkazy z pamięci 

procesor odczytuje kolejne rozkazy z pamięci 

wysyłając odpowiednie adresy

wysyłając odpowiednie adresy

»

Każde działanie wykonywane przez system jest wynikiem 

Każde działanie wykonywane przez system jest wynikiem 

realizacji określonego programu bądź jego fragmentu

realizacji określonego programu bądź jego fragmentu

background image

 

 

PROCESOR

PROCESOR

PAMIĘĆ

PAMIĘĆ

Adres

Adres

Dane

Dane

Zapis

Zapis

1

1

2

2

3

3

3

3

4

4

PROCESOR

PROCESOR

PAMIĘĆ

PAMIĘĆ

Adres

Adres

Dane

Dane

Odczyt

Odczyt

1

1

2

2

3

3

4

4

PROCESOR

PROCESOR

UKŁAD

UKŁAD

WY-WE

WY-WE

Adres

Adres

Dane

Dane

Zapis

Zapis

1

1

2

2

3

3

4

4

PROCESOR

PROCESOR

UKŁAD

UKŁAD

WY-WE

WY-WE

Adres

Adres

Dane

Dane

Odczyt

Odczyt

1

1

2

2

3

3

4

4

Z

 P

R

O

C

E

S

O

R

A

 D

O

 P

A

M

C

I

Z

 P

R

O

C

E

S

O

R

A

 D

O

 P

A

M

C

I

Z

 P

A

M

C

D

O

 P

R

O

C

E

S

O

R

A

Z

 P

A

M

C

D

O

 P

R

O

C

E

S

O

R

A

Z

 P

R

O

C

E

S

O

R

A

 N

A

 W

Y

C

IE

Z

 P

R

O

C

E

S

O

R

A

 N

A

 W

Y

C

IE

Z

 W

E

C

IA

 D

O

 P

R

O

C

E

S

O

R

A

Z

 W

E

C

IA

 D

O

 P

R

O

C

E

S

O

R

A

PRZEPŁYW DANYCH W SYSTEMIE 

PRZEPŁYW DANYCH W SYSTEMIE 

MIKROPROCESOROWYM

MIKROPROCESOROWYM

background image

 

 

ARCHITEKTURA PROCESORA

ARCHITEKTURA PROCESORA

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Schemat blokowy procesora

Schemat blokowy procesora

Rejestry

Rejestry

Blok arytmetyczno-logiczny (ALU)

Blok arytmetyczno-logiczny (ALU)

Układ sterowania

Układ sterowania

8

background image

 

 

SCHEMAT BLOKOWY PROCESORA

SCHEMAT BLOKOWY PROCESORA

ALU

ALU

JEDNOSTKA 

JEDNOSTKA 

WYKONAWCZA

WYKONAWCZA

układ 

układ 

sterowania

sterowania

d

e

k

o

d

e

r

d

e

k

o

d

e

r

ro

zk

a

w

ro

zk

a

w

re

je

s

tr

re

je

s

tr

ro

zk

a

w

ro

zk

a

w

rejestry części 

rejestry części 

wykonawczej

wykonawczej

DANE

DANE

PROGRAM

PROGRAM

WYNIKI

WYNIKI

wewnętrzne

wewnętrzne

 sygnały 

 sygnały 

sterujące

sterujące

zewnętrzne 

zewnętrzne 

sygnały 

sygnały 

sterujące

sterujące

JEDNOSTKA 

JEDNOSTKA 

STERUJĄCA

STERUJĄCA

Zadaniem jednostki 

Zadaniem jednostki 

wykonawczej jest 

wykonawczej jest 

wykonywanie operacji 

wykonywanie operacji 

arytmetycznych i logicznych 

arytmetycznych i logicznych 

w zależności od 

w zależności od 

wewnętrznych sygnałów 

wewnętrznych sygnałów 

sterujących

sterujących

Jednostka sterująca z 

Jednostka sterująca z 

programu dekoduje rozkaz i 

programu dekoduje rozkaz i 

na jego podstawie 

na jego podstawie 

generowane są wewnętrzne i 

generowane są wewnętrzne i 

zewnętrzne sygnały sterujące

zewnętrzne sygnały sterujące

background image

 

 

REJESTRY

REJESTRY

dostępne 

dostępne 

programowo

programowo

niedostępne 

niedostępne 

programowo

programowo

(na przykładzie 8 bitowego procesora 8086/8088)

(na przykładzie 8 bitowego procesora 8086/8088)

FLAGS

FLAGS

AX

AX

AX

AX

BX

BX

CX

CX

DX

DX

SI

SI

DI

DI

BP

BP

SP

SP

IP

IP

CS

CS

DS

DS

ES

ES

SS

SS

15

15

0

0

7

7

15

15

0

0

Rejestr 

Rejestr 

znacznikó

znacznikó

(flagowy

(flagowy

Rejestry 

Rejestry 

powszechne

powszechne

go 

go 

stosowania

stosowania

Rejestry 

Rejestry 

wskaźniko

wskaźniko

we i 

we i 

indeksowe

indeksowe

Rejestry 

Rejestry 

segmento

segmento

we

we

Wskaźnik 

Wskaźnik 

rozkazów

rozkazów

OF

OF

DF

DF

IF

IF

TF

TF

SF

SF

ZF

ZF

AF

AF

PF

PF

CF

CF

OF - flaga nadmiaru 

OF - flaga nadmiaru 

(przepełnienia)

(przepełnienia)

DF - flaga kierunku

DF - flaga kierunku

IF - flaga zezwolenia na 

IF - flaga zezwolenia na 

przerwanie

przerwanie

TF - flaga pracy krokowej

TF - flaga pracy krokowej

SF - flaga znaku

SF - flaga znaku

ZF - flaga zera

ZF - flaga zera

AF - flaga przeniesienia 

AF - flaga przeniesienia 

pomocniczego

pomocniczego

PF - flaga parzystości

PF - flaga parzystości

CF - flaga 

CF - flaga 

przeniesienia

przeniesienia

AH

AH

AL

AL

BH

BH

BL

BL

CH

CH

CL

CL

DH

DH

DL

DL

Wskaźnik stosu

Wskaźnik stosu

Wskaźnik bazy

Wskaźnik bazy

Rejestr 

Rejestr 

indeksowy 

indeksowy 

przeznaczenia

przeznaczenia

Rejestr 

Rejestr 

indeksowy 

indeksowy 

źródła

źródła

Rejestr danych 

Rejestr danych 

Rejestr 

Rejestr 

zliczający 

zliczający 

Rejestr bazowy

Rejestr bazowy

Akumulator

Akumulator

Rejestr 

Rejestr 

programu

programu

Rejestr danych

Rejestr danych

Rejestr 

Rejestr 

dodatkowy

dodatkowy

Rejestr stosu

Rejestr stosu

Znaczniki 

Znaczniki 

kontrolne

kontrolne

Znaczniki stanu

Znaczniki stanu

background image

 

 

REJESTRY

REJESTRY

Rejestr znaczników (flagowy)

Rejestr znaczników (flagowy)

 - rejestr przeznaczony do przechowywania 

 - rejestr przeznaczony do przechowywania 

dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak 

dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak 

parzystości, ...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w 

parzystości, ...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w 

rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być 

rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być 

wykorzystywane przez procesor lub programistę na dwa sposoby:

wykorzystywane przez procesor lub programistę na dwa sposoby:

ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu 

ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu 

rozkazu

rozkazu

testowanie znacznika celem umożliwienia decyzji o sposobie dalszego 

testowanie znacznika celem umożliwienia decyzji o sposobie dalszego 

postępowania (przetwarzania danych)

postępowania (przetwarzania danych)

Znaczniki stanu:

Znaczniki stanu:

CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu 

CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu 

długości słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie)

długości słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie)

PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o 

PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o 

wartości jedynki

wartości jedynki

ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji 

ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji 

jest zero

jest zero

PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach 

PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach 

na liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub 

na liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub 

pożyczka z najstarszego bitu pierwszej tetrady wyniku 

pożyczka z najstarszego bitu pierwszej tetrady wyniku 

SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje 

SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje 

liczb ze znakiem - kod U2)

liczb ze znakiem - kod U2)

OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji 

OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji 

arytmetycznych (operacje liczb ze znakiem - kod U2)

arytmetycznych (operacje liczb ze znakiem - kod U2)

Znaczniki kontrolne:

Znaczniki kontrolne:

TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez 

TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez 

procesor po wykonaniu każdego rozkazu przerwania i przejście do 

procesor po wykonaniu każdego rozkazu przerwania i przejście do 

specjalnych procedur obsługi

specjalnych procedur obsługi

IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie 

IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie 

systemu przerwań w procesorze (0 - procesor ignoruje przerwania)

systemu przerwań w procesorze (0 - procesor ignoruje przerwania)

DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu 

DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu 

słów) przy rosnących adresach (1) lub malejących adresach (0)

słów) przy rosnących adresach (1) lub malejących adresach (0)

background image

 

 

REJESTRY

REJESTRY

Rejestry ogólnego przeznaczenia

Rejestry ogólnego przeznaczenia

 - rejestry przeznaczone do przechowywania 

 - rejestry przeznaczone do przechowywania 

dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale 

dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale 

jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni 

jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni 

akumulator

akumulator

Akumulator

Akumulator

 - rejestr przeznaczony do przechowywania jednego z operandów 

 - rejestr przeznaczony do przechowywania jednego z operandów 

(argumentów) wykonywanej operacji oraz wyniku wykonywanej operacji 

(argumentów) wykonywanej operacji oraz wyniku wykonywanej operacji 

(czasami wynik może być umieszczany w innym rejestrze)

(czasami wynik może być umieszczany w innym rejestrze)

Rejestry segmentowe 

Rejestry segmentowe 

- są rejestrami wykorzystywanymi do adresowania 

- są rejestrami wykorzystywanymi do adresowania 

pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentów

pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentów

CS rejestr segmentowy programu wskazuje segment programu, z 

CS rejestr segmentowy programu wskazuje segment programu, z 

którego aktualnie są pobierane kolejne rozkazy do wykonania, 

którego aktualnie są pobierane kolejne rozkazy do wykonania, 

DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane 

DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane 

są zmienne używane w programie, 

są zmienne używane w programie, 

ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment 

ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment 

danych,

danych,

SS rejestr segmentowy stosu wskazuje segment pamięci, w którym 

SS rejestr segmentowy stosu wskazuje segment pamięci, w którym 

zdefiniowany jest stos.

zdefiniowany jest stos.

Wskaźnik rozkazów

Wskaźnik rozkazów

 (wskaźnik instrukcji) - łącznie z rejestrem segmentowym 

 (wskaźnik instrukcji) - łącznie z rejestrem segmentowym 

CS adresuje kolejne rozkazy przeznaczone do wykonania. Wskazuje adres 

CS adresuje kolejne rozkazy przeznaczone do wykonania. Wskazuje adres 

względem początku segmentu programu

względem początku segmentu programu

Rejestry wskaźnikowe i indeksowe

Rejestry wskaźnikowe i indeksowe

 - posiadają dwa rejestry wskaźnikowe i 

 - posiadają dwa rejestry wskaźnikowe i 

dwa rejestry indeksowe. 

dwa rejestry indeksowe. 

Rejestry wskaźnikowe (SP, BP) są stosowane do adresowania danych w 

Rejestry wskaźnikowe (SP, BP) są stosowane do adresowania danych w 

obrębie wydzielonego obszaru pamięci (stosu). 

obrębie wydzielonego obszaru pamięci (stosu). 

Rejestry indeksowe  (SI, DI) służą do adresowania danych w obszarze pamięci 

Rejestry indeksowe  (SI, DI) służą do adresowania danych w obszarze pamięci 

zwanym segmentem danych. 

zwanym segmentem danych. 

Wszystkie rejestry mogą być wykorzystywane jako argumenty większości 

Wszystkie rejestry mogą być wykorzystywane jako argumenty większości 

rozkazów arytmetycznych i logicznych.

rozkazów arytmetycznych i logicznych.

background image

 

 

REJESTRY

REJESTRY

Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki 

Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki 

stosu (wierzchołka stosu)

stosu (wierzchołka stosu)

Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł:

Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł:

informacje zapisane są na stos do kolejnych komórek (pod kolejnymi 

informacje zapisane są na stos do kolejnych komórek (pod kolejnymi 

adresami), przy czym żadnego adresu nie wolno pominąć

adresami), przy czym żadnego adresu nie wolno pominąć

odczytujemy informacje w kolejności odwrotnej do ich zapisu 

odczytujemy informacje w kolejności odwrotnej do ich zapisu 

informacje odczytujemy z ostatnio zapełnionej komórki, natomiast 

informacje odczytujemy z ostatnio zapełnionej komórki, natomiast 

zapisujemy do pierwszej wolnej

zapisujemy do pierwszej wolnej

Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi

Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi

lub

lub

Adres

Program główny

101

Instrukcja

102

Instrukcja

103

Call

Wywołanie podprogramu I

 (adres 104 na stos)

1002

Instrukcja

1003

Instrukcja

1004

Call

Wywołanie podprogramu II

(adres 1005 na stos)

2001

Instrukcja

2002

Instrukcja

2003

Return

1005

Instrukcja

1006

Instrukcja

1007

Return

Powrót z podprogramu II

(do adresu 1005

odczytanego ze stosu)

104

Instrukcja

105

Instrukcja

106

Instrukcja

Powrót z podprogramu I

(do adresu 104

odczytanego ze stosu)

107

Instrukcja

stos

stos

stos

stos

background image

 

 

akumulator rejestr bazowy

rejestr 

zliczający

rejestr danych

wskaźnik stosu

wskaźnik bazy

rejestr indeksowy 

źródła

rejestr indeksowy 

przeznaczenia

rejestr danych

rejestr dodatkowy

rejestr stosu

rejestr programu wskaźnik rozkazów

rejestr flagowy 

(znaczników)

background image

 

 

flaga parzystości

flaga przeniesienia

 pomocniczego

flaga zera

flaga zezwolenia 

na przerwanie

flaga nadmiaru

flaga kierunku

flaga znaku

flaga przeniesienia

Flaga (znacznik)

symbol

=1

=0

Flaga nadmiaru

OF

OV

NV

Flaga kierunku

DF

DN

UP

Flaga zezwolenia na przerwanie

IF

EI

DI

Flaga znaku

SF

NG

PL

Flaga zera

ZF

ZR

NZ

Flaga przeniesienia pomocniczego

AF

AC

NA

Flaga parzystości

PF

PE

PO

Flaga przeniesienia

CF

CY

NC

background image

 

 

BLOK ARYTMETYCZNO-LOGICZNY

BLOK ARYTMETYCZNO-LOGICZNY

Blok arytmetyczno-logiczny (ALU)

Blok arytmetyczno-logiczny (ALU)

 - jest uniwersalnym układem 

 - jest uniwersalnym układem 

kombinacyjnym, który realizuje operacje matematyczne i logiczne w 

kombinacyjnym, który realizuje operacje matematyczne i logiczne w 

zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w 

zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w 

programie. 

programie. 

Rozkazy mogą dotyczyć 

Rozkazy mogą dotyczyć 

operacji dwuargumentowych:

operacji dwuargumentowych:

operacji arytmetycznych (dodawanie i odejmowanie)

operacji arytmetycznych (dodawanie i odejmowanie)

operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.)

operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.)

operacji jednoargumentowych (np. negowanie bitów lub przesuwanie 

operacji jednoargumentowych (np. negowanie bitów lub przesuwanie 

zawartości rejestrów)

zawartości rejestrów)

Argumentami rozkazów są najczęściej dwa słowa binarne, od długości 

Argumentami rozkazów są najczęściej dwa słowa binarne, od długości 

których mówi się o liczbie bitów ALU.

których mówi się o liczbie bitów ALU.

A

A

0

0

 - A

 - A

3

3

B

B

0

0

 - B

 - B

3

3

S

S

0

0

 - S

 - S

3

3

M

M

F

F

0

0

 - F

 - F

3

3

A

F

B

A

F

B

A

F

F

AB

F

B

F

B

A

F

B

A

F

B

A

F

B

A

F

B

F

AB

F

F

B

A

F

B

A

F

A

F

1

0

)

1

(

)

(

)

(

2

)

1

(

)

(

)

1

(

)

1

(

)

(

1

)

(

)

(

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

C

A

F

C

A

B

A

F

C

A

AB

F

C

A

F

C

AB

F

C

AB

B

A

F

C

B

A

F

C

AB

A

F

C

A

F

C

B

A

F

C

B

A

B

A

F

C

B

A

A

F

C

F

C

B

A

F

C

B

A

F

C

A

F

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

1111

0111

1011

0011

1101

0101

1001

0001

1110

0110

1010

0010

1100

0100

1000

0000

Lp.          S

Lp.          S

0

0

 - S

 - S

3               

3               

M=0                     M=1

M=0                     M=1

Sygnały sterujące 

Sygnały sterujące 

do wyboru 

do wyboru 

mikrooperacji 

mikrooperacji 

logicznej (M=0) lub 

logicznej (M=0) lub 

arytmetycznej 

arytmetycznej 

(M=1)

(M=1)

Przykład 4 bitowego ALU 

Przykład 4 bitowego ALU 

SN74181

SN74181

background image

 

 

UKŁAD STEROWANIA

UKŁAD STEROWANIA

Często (a może najczęściej) procesor wykonuje rozkazy nie w 

Często (a może najczęściej) procesor wykonuje rozkazy nie w 

jednym kroku (jak np. dodawanie) ale w wielu krokach (np. 

jednym kroku (jak np. dodawanie) ale w wielu krokach (np. 

mnożenie lub dzielenie jako ciąg dodawań i przesunięć).

mnożenie lub dzielenie jako ciąg dodawań i przesunięć).

W tym celu potrzebny jest złożony automat sekwencyjny, 

W tym celu potrzebny jest złożony automat sekwencyjny, 

generujący odpowiednie ciągi słów podawanych na wejścia 

generujący odpowiednie ciągi słów podawanych na wejścia 

sterujące układu ALU - układ sterowania. 

sterujące układu ALU - układ sterowania. 

Cechy takiego automatu to:

Cechy takiego automatu to:

konieczność posiadania bardzo dużej liczby stanów 

konieczność posiadania bardzo dużej liczby stanów 

dostosowanych do wymaganej liczby wykonywanych 

dostosowanych do wymaganej liczby wykonywanych 

rozkazów;

rozkazów;

konieczność zapewnienia synchronizacji pracy układu 

konieczność zapewnienia synchronizacji pracy układu 

sterowania i wykonawczego (uwzględnienie czasów 

sterowania i wykonawczego (uwzględnienie czasów 

wykonywania poszczególnych operacji).

wykonywania poszczególnych operacji).

W praktyce realizowane są jako:

W praktyce realizowane są jako:

generatory sekwencyjne

generatory sekwencyjne

układy mikroprogramowalne

układy mikroprogramowalne

background image

 

 

ROZKAZY I TRYB ADRESOWANIA

ROZKAZY I TRYB ADRESOWANIA

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Cykl rozkazowy

Cykl rozkazowy

Lista i format rozkazu

Lista i format rozkazu

Tryb adresowania

Tryb adresowania

Sposób prezentowania rozkazu

Sposób prezentowania rozkazu

9

background image

 

 

CYKL ROZKAZOWY PROCESORA

CYKL ROZKAZOWY PROCESORA

Realizując program, system mikroprocesorowy wykonuje pewne 

Realizując program, system mikroprocesorowy wykonuje pewne 

powtarzające się czynności, polegające na cyklicznym pobieraniu 

powtarzające się czynności, polegające na cyklicznym pobieraniu 

kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, 

kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, 

a następnie realizacji rozkazu

a następnie realizacji rozkazu

Def.1. Czas potrzebny na odczytanie kodu rozkazu z 

Def.1. Czas potrzebny na odczytanie kodu rozkazu z 

pamięci, na pobranie argumentów, na wykonanie 

pamięci, na pobranie argumentów, na wykonanie 

rozkazu i przesłanie wyniku operacji nazywa się 

rozkazu i przesłanie wyniku operacji nazywa się 

cyklem rozkazowym (instrukcyjnym)

cyklem rozkazowym (instrukcyjnym)

Def.1. Czas potrzebny na odczytanie kodu rozkazu z 

Def.1. Czas potrzebny na odczytanie kodu rozkazu z 

pamięci, na pobranie argumentów, na wykonanie 

pamięci, na pobranie argumentów, na wykonanie 

rozkazu i przesłanie wyniku operacji nazywa się 

rozkazu i przesłanie wyniku operacji nazywa się 

cyklem rozkazowym (instrukcyjnym)

cyklem rozkazowym (instrukcyjnym)

Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, 

Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, 

pobierania argumentu) i wykonania rozkazu. 

pobierania argumentu) i wykonania rozkazu. 

P

a

m

ć

P

a

m

ć

C

P

U

C

P

U

POBRANIE 

POBRANIE 

ROZKAZU

ROZKAZU

WYSŁANIE 

WYSŁANIE 

ADRESU 

ADRESU 

ROZKAZU

ROZKAZU

DEKODOW

DEKODOW

ANIE

ANIE

ROZKAZU

ROZKAZU

OBLICZANIE

OBLICZANIE

ADRESU 

ADRESU 

ARGUMENTU

ARGUMENTU

I

I

OBLICZANIE

OBLICZANIE

ADRESU 

ADRESU 

ARGUMENTU

ARGUMENTU

II

II

WYKONANIE 

WYKONANIE 

ROZKAZU

ROZKAZU

OBLICZENIE 

OBLICZENIE 

ADRESU 

ADRESU 

PRZEZNACZE

PRZEZNACZE

-

-

NIA

NIA

ZAPIS 

ZAPIS 

WYNIKU

WYNIKU

POBRANIE 

POBRANIE 

ARGUMENTU 

ARGUMENTU 

II

II

POBRANIE 

POBRANIE 

ARGUMENTU 

ARGUMENTU 

I

I

cykl pobrania 

cykl pobrania 

rozkazu

rozkazu

cykl 

cykl 

pobrani

pobrani

argume

argume

ntu I

ntu I

cykl 

cykl 

pobrani

pobrani

argume

argume

ntu II

ntu II

cykl zapisu wyniku

cykl zapisu wyniku

background image

 

 

CYKL ROZKAZOWY PROCESORA

CYKL ROZKAZOWY PROCESORA

Czas trwania fazy pobierania rozkazu (pobierania argumentu) 

Czas trwania fazy pobierania rozkazu (pobierania argumentu) 

zależy od rodzaju procesora i rodzaju rozkazu (argumentu).

zależy od rodzaju procesora i rodzaju rozkazu (argumentu).

Np. 

Np. 

Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres 

Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres 

argumentu 16-bitowy to faza pobrania rozkazu składa się z trzech 

argumentu 16-bitowy to faza pobrania rozkazu składa się z trzech 

cykli odczytu pamięci:

cykli odczytu pamięci:

odczyt kodu - pobranie rozkazu

odczyt kodu - pobranie rozkazu

odczyt jednego bajtu adresu

odczyt jednego bajtu adresu

odczyt drugiego bajtu adresu

odczyt drugiego bajtu adresu

Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza 

Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza 

pobrania rozkazu

pobrania rozkazu

Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 

Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 

16-bitowych stałopozycyjnych w komputerze 16-bitowym. Pamięć 

16-bitowych stałopozycyjnych w komputerze 16-bitowym. Pamięć 

jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy (kod 

jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy (kod 

rozkazu i adres można zatem umieścić w 2 komórkach pamięci)

rozkazu i adres można zatem umieścić w 2 komórkach pamięci)

Faza pobrania:

Faza pobrania:

1. adresowanie: podanie zawartości licznika rozkazów PC 

1. adresowanie: podanie zawartości licznika rozkazów PC 

(rejestru adresującego pamięć AD) na magistralę adresową

(rejestru adresującego pamięć AD) na magistralę adresową

2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów 

2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów 

(RR)

(RR)

3. zwiększenie zawartości licznika rozkazów

3. zwiększenie zawartości licznika rozkazów

Faza wykonania:

Faza wykonania:

4. zdekodowanie kodu rozkazu i wytworzenie sygnałów 

4. zdekodowanie kodu rozkazu i wytworzenie sygnałów 

sterujących realizujących dany rozkaz

sterujących realizujących dany rozkaz

1

1

2

2

3

3

4

4

Cykl von 

Cykl von 

Neumana

Neumana

w przypadku rozkazów 

wielobajtowych

PC(AD)

PC(AD)

RR

RR

kod 

kod 

rozkazu

rozkazu

kod 

kod 

rozkazu

rozkazu

kod 

kod 

rozkazu

rozkazu

kod 

kod 

rozkazu

rozkazu

kod 

kod 

rozkazu

rozkazu

procesor

procesor

pamięć

pamięć

s

zy

n

a

 a

d

re

so

w

a

s

zy

n

a

 a

d

re

so

w

a

s

zy

n

a

 d

a

n

y

c

h

s

zy

n

a

 d

a

n

y

c

h

background image

 

 

MAPA PAMIĘCI

300

ładuj A

adres 841

301

adres 841

302

ładuj B

adres 915

303

adres 915

304

dodaj A+B

305

zapisz pamięć

adres 915

306

adres 915

841

4

915

5

               ZAWARTOŚĆ  REJ ESTRÓW  PROCESORA

Pobranie kodu rozkazu
 i 4 bitów adresu

Pobranie 16
bitów adresu

Odczyt
argumentu

A

4

B

ładuj A

PC

300

301

302

AD

300

301

841

RR

ładuj A

ładuj A

ładuj A

Pobranie kodu rozkazu
 i 4 bitów adresu

Pobranie 16
bitów adresu

Odczyt
argumentu

A

4

4

4

B

5

ładuj B

PC

302

303

304

AD

302

303

915

RR

ładuj B

ładuj B

ładuj B

Pobranie kodu rozkazu

A
B

5

dodaj

PC

304

AD

304

RR

dodaj

Pobranie kodu rozkazu
 i 4 bitów adresu

Pobranie 16
bitów adresu

Odczyt
argumentu

A

9

9

9

B

5

5

5

zapisz

PC

305

306

307

pamięć

AD

305

306

915

RR

zapisz

zapisz

zapisz

A

Rejestr A

B

Rejestr B

PC

Licznik rozkazów

AD

Rejestr adresujący pamięć

RR

Rejestr rozkazów

1
6

Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 

Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 

300):

300):

odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go 

odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go 

do rejestru A

do rejestru A

odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do 

odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do 

rejestru B 

rejestru B 

dodanie obu argumentów

dodanie obu argumentów

przesłanie wyniku do komórki pamięci o adresie 915

przesłanie wyniku do komórki pamięci o adresie 915

background image

 

 

LISTA ROZKAZÓW

LISTA ROZKAZÓW

Def.1. Rozkazem (instrukcją maszynową) nazywamy 

Def.1. Rozkazem (instrukcją maszynową) nazywamy 

najprostszą operację, której wykonania programista 

najprostszą operację, której wykonania programista 

może zażądać od procesora

może zażądać od procesora

Def.1. Rozkazem (instrukcją maszynową) nazywamy 

Def.1. Rozkazem (instrukcją maszynową) nazywamy 

najprostszą operację, której wykonania programista 

najprostszą operację, której wykonania programista 

może zażądać od procesora

może zażądać od procesora

Def.2. Listą rozkazów nazywamy zestaw wszystkich 

Def.2. Listą rozkazów nazywamy zestaw wszystkich 

instrukcji maszynowych (rozkazów), jakie potrafi 

instrukcji maszynowych (rozkazów), jakie potrafi 

wykonać dany procesor

wykonać dany procesor

Def.2. Listą rozkazów nazywamy zestaw wszystkich 

Def.2. Listą rozkazów nazywamy zestaw wszystkich 

instrukcji maszynowych (rozkazów), jakie potrafi 

instrukcji maszynowych (rozkazów), jakie potrafi 

wykonać dany procesor

wykonać dany procesor

rozkazy przesłań

rozkazy przesłań

rozkazy arytmetyczne i logiczne

rozkazy arytmetyczne i logiczne

rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)

rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)

inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w 

inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w 

trybie chronionym)

trybie chronionym)

Rozkazy (jak inne informacje) są przechowywane w systemie 

Rozkazy (jak inne informacje) są przechowywane w systemie 

mikroprocesorowym w postaci kodów binarnych

mikroprocesorowym w postaci kodów binarnych

Adres

komórki

Zawartość

komórki

0000

0000

1011

0001

0000

0001

0001

0101

0000

0010

1010

0000

0000

0011

0000

0000

0000

0100

0000

1111

0000

0101

0000

0000

0000

0110

1100

1000

0000

0111

1100

0110

0000

1000

1010

1010

-

-

0000

1111

0000

0010

MOV CL,5

MOV A, [B2,B3]

ADD CL,A

A=A+5

OUT [B2]

PRINT

    

    

rozkazy w postaci kodów binarnych

rozkazy w postaci kodów binarnych

   

   

instrukcje maszynowe

instrukcje maszynowe

instrukcje w FORTRANie

instrukcje w FORTRANie

background image

 

 

FORMAT ROZKAZÓW I TRYB 

FORMAT ROZKAZÓW I TRYB 

ADRESOWANIA

ADRESOWANIA

Def.1. Formatem rozkazu nazywamy sposób 

Def.1. Formatem rozkazu nazywamy sposób 

rozmieszczenia informacji w kodzie rozkazu

rozmieszczenia informacji w kodzie rozkazu

Def.1. Formatem rozkazu nazywamy sposób 

Def.1. Formatem rozkazu nazywamy sposób 

rozmieszczenia informacji w kodzie rozkazu

rozmieszczenia informacji w kodzie rozkazu

Kod rozkazu:

Kod rozkazu:

musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) 

musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) 

- w pierwszym bajcie (bajtach) kodu rozkazu

- w pierwszym bajcie (bajtach) kodu rozkazu

może zawierać operandy i/lub adresy operandów wykonywanych 

może zawierać operandy i/lub adresy operandów wykonywanych 

operacji

operacji

Def.2. Trybem adresowania nazywamy 

Def.2. Trybem adresowania nazywamy 

sposób

sposób

 określenia 

 określenia 

miejsca przechowywania argumentów rozkazu

miejsca przechowywania argumentów rozkazu

Def.2. Trybem adresowania nazywamy 

Def.2. Trybem adresowania nazywamy 

sposób

sposób

 określenia 

 określenia 

miejsca przechowywania argumentów rozkazu

miejsca przechowywania argumentów rozkazu

Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być 

Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być 

przechowywane w:

przechowywane w:

rejestrach

rejestrach

pamięci

pamięci

kodzie rozkazu

kodzie rozkazu

Rozróżniamy następujące tryby 

Rozróżniamy następujące tryby 

adresowania

adresowania

adresowanie natychmiastowe

adresowanie natychmiastowe

adresowanie bezpośrednie

adresowanie bezpośrednie

adresowanie rejestrowe

adresowanie rejestrowe

adresowanie pośrednie

adresowanie pośrednie

adresowanie indeksowe z 

adresowanie indeksowe z 

przemieszczeniem

przemieszczeniem

background image

 

 

TRYB ADRESOWANIA

TRYB ADRESOWANIA

Def.Przy 

Def.Przy 

adresowaniu natychmiastowym

adresowaniu natychmiastowym

 argument 

 argument 

rozkazu zawarty jest w kodzie rozkazu

rozkazu zawarty jest w kodzie rozkazu

Def.Przy 

Def.Przy 

adresowaniu natychmiastowym

adresowaniu natychmiastowym

 argument 

 argument 

rozkazu zawarty jest w kodzie rozkazu

rozkazu zawarty jest w kodzie rozkazu

Oznacza to, że w zasadzie nie jest to adresowanie w 

Oznacza to, że w zasadzie nie jest to adresowanie w 

zwykłym sensie. Argument jest umieszczany w kodzie 

zwykłym sensie. Argument jest umieszczany w kodzie 

rozkazu, więc musi być on znany w momencie pisania 

rozkazu, więc musi być on znany w momencie pisania 

programu.

programu.

Kod rozkazu

Kod rozkazu

Kod operacji

Kod operacji

Argument

Argument

Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera 

Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera 

adres komórki pamięci, w której przechowywany jest 

adres komórki pamięci, w której przechowywany jest 

argument rozkazu

argument rozkazu

Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera 

Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera 

adres komórki pamięci, w której przechowywany jest 

adres komórki pamięci, w której przechowywany jest 

argument rozkazu

argument rozkazu

W momencie pisania programu musimy zarezerwować adres 

W momencie pisania programu musimy zarezerwować adres 

przechowywania argumentu.

przechowywania argumentu.

Kod 

Kod 

rozkazu

rozkazu

Kod operacji

Kod operacji

Adres

Adres

Argument

Argument

P

A

M

Ć

P

A

M

Ć

background image

 

 

TRYB ADRESOWANIA

TRYB ADRESOWANIA

Def.Przy 

Def.Przy 

adresowaniu rejestrowym

adresowaniu rejestrowym

 w kodzie rozkazu 

 w kodzie rozkazu 

zawarty jest rejestr, w którym przechowywany jest 

zawarty jest rejestr, w którym przechowywany jest 

argument

argument

Def.Przy 

Def.Przy 

adresowaniu rejestrowym

adresowaniu rejestrowym

 w kodzie rozkazu 

 w kodzie rozkazu 

zawarty jest rejestr, w którym przechowywany jest 

zawarty jest rejestr, w którym przechowywany jest 

argument

argument

Zaletą tego trybu jest krótki kod i szybkie wykonanie

Zaletą tego trybu jest krótki kod i szybkie wykonanie

Kod 

Kod 

rozkazu

rozkazu

Kod 

Kod 

operacji

operacji

Określeni

Określeni

rejestru

rejestru

Argument

Argument

REJESTR

REJESTR

Def.W trybie 

Def.W trybie 

adresowania pośredniego (rejestrowego 

adresowania pośredniego (rejestrowego 

pośredniego)

pośredniego)

 kod rozkazu zawiera określenie rejestru 

 kod rozkazu zawiera określenie rejestru 

bądź rejestrów, w których znajduje się adres komórki 

bądź rejestrów, w których znajduje się adres komórki 

pamięci zawierającej argument

pamięci zawierającej argument

Def.W trybie 

Def.W trybie 

adresowania pośredniego (rejestrowego 

adresowania pośredniego (rejestrowego 

pośredniego)

pośredniego)

 kod rozkazu zawiera określenie rejestru 

 kod rozkazu zawiera określenie rejestru 

bądź rejestrów, w których znajduje się adres komórki 

bądź rejestrów, w których znajduje się adres komórki 

pamięci zawierającej argument

pamięci zawierającej argument

Adres

Adres

REJESTR

REJESTR

Argument

Argument

P

A

M

Ć

P

A

M

Ć

Kod 

Kod 

operacji

operacji

Określeni

Określeni

rejestru

rejestru

Kod 

Kod 

rozkazu

rozkazu

background image

 

 

TRYB ADRESOWANIA

TRYB ADRESOWANIA

Def.W trybie 

Def.W trybie 

adresowania indeksowego z 

adresowania indeksowego z 

przemieszczeniem 

przemieszczeniem 

 adres argumentu 

 adres argumentu 

przechowywanego w pamięci obliczany jest jako suma 

przechowywanego w pamięci obliczany jest jako suma 

zawartości rejestru określonego w kodzie rozkazu i 

zawartości rejestru określonego w kodzie rozkazu i 

wartości umieszczonej w kodzie rozkazu, zwanej 

wartości umieszczonej w kodzie rozkazu, zwanej 

przemieszczeniem

przemieszczeniem

Def.W trybie 

Def.W trybie 

adresowania indeksowego z 

adresowania indeksowego z 

przemieszczeniem 

przemieszczeniem 

 adres argumentu 

 adres argumentu 

przechowywanego w pamięci obliczany jest jako suma 

przechowywanego w pamięci obliczany jest jako suma 

zawartości rejestru określonego w kodzie rozkazu i 

zawartości rejestru określonego w kodzie rozkazu i 

wartości umieszczonej w kodzie rozkazu, zwanej 

wartości umieszczonej w kodzie rozkazu, zwanej 

przemieszczeniem

przemieszczeniem

Kod 

Kod 

rozkazu

rozkazu

Kod 

Kod 

operacji

operacji

Określeni

Określeni

rejestru

rejestru

wartość

wartość

REJESTR

REJESTR

Przemieszczen

Przemieszczen

ie

ie

Argument

Argument

P

A

M

Ć

P

A

M

Ć

background image

 

 

SPOSÓB PREZENTOWANIA ROZKAZU

SPOSÓB PREZENTOWANIA ROZKAZU

1. 

1. 

Oznaczenie symboliczne rozkazu

Oznaczenie symboliczne rozkazu

Jest stosowane dla prezentacji programu człowiekowi lub przy 

Jest stosowane dla prezentacji programu człowiekowi lub przy 

pisaniu programów w asemblerze

pisaniu programów w asemblerze

Składa się ono z mnemonika (skrótu, który powinien sugerować 

Składa się ono z mnemonika (skrótu, który powinien sugerować 

rodzaj operacji) i pola argumentów

rodzaj operacji) i pola argumentów

JMP SHORT 

JMP SHORT 

NEXT

NEXT

mnemonik

mnemonik

argument

argument

PAMIĘĆ

ADRESY

11101011

000

00000011

001
010
011

NEXT

Kolejny rozkaz

100
101
110

EB 03h

EB 03h

argumen

argumen

t

t

kod operacji

kod operacji

Kod rozkazu w 

Kod rozkazu w 

kodzie 

kodzie 

heksadecymalnym

heksadecymalnym

Kod rozkazu 

Kod rozkazu 

binarnie (w 

binarnie (w 

pamięci)

pamięci)

background image

 

 

................................

................................

SPOSÓB PREZENTOWANIA ROZKAZU

SPOSÓB PREZENTOWANIA ROZKAZU

2. 

2. 

Opis działania rozkazu

Opis działania rozkazu

Jest możliwy w formie słownej lub symbolicznej

Jest możliwy w formie słownej lub symbolicznej

Opis słowny:

Opis słowny:

Wykonaj skok i pobierz kod rozkazu z 

Wykonaj skok i pobierz kod rozkazu z 

komórki pamięci o adresie równym 

komórki pamięci o adresie równym 

etykieta”

etykieta”

 

 (u nas NEXT=100)

Argumentem jest jednak nie adres komórki lecz długość 

Argumentem jest jednak nie adres komórki lecz długość 

skoku (interpretowana w kodzie U2). SHORT oznacza w tym 

skoku (interpretowana w kodzie U2). SHORT oznacza w tym 

przypadku skok bliski (w zakresie od 127 bajtów w górę do 

przypadku skok bliski (w zakresie od 127 bajtów w górę do 

128 bajtów w dół) 

128 bajtów w dół) 

Opis symboliczny:

Opis symboliczny:

(PC) 

(PC) 

 (PC) + przesunięcie

 (PC) + przesunięcie

 

 

czyli zwiększ licznik rozkazów o przesunięcie (o liczbę 

czyli zwiększ licznik rozkazów o przesunięcie (o liczbę 

komórek)

komórek)

background image

 

 

SPOSÓB PREZENTOWANIA ROZKAZU

SPOSÓB PREZENTOWANIA ROZKAZU

3. 

3. 

Format rozkazu

Format rozkazu

Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest 

Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest 

on następujący:

on następujący:

Kod 

Kod 

rozkazu

rozkazu

111010

111010

11

11

przemieszcze

przemieszcze

nie

nie

kod 

kod 

operacji

operacji

argument

argument

4. 

4. 

Ustawienie flagi

Ustawienie flagi

Istotną informacją jest określenie czy są ustawiane flagi (i 

Istotną informacją jest określenie czy są ustawiane flagi (i 

które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są 

które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są 

ustawiane.

ustawiane.

5. 

5. 

Szybkość wykonywania rozkazu

Szybkość wykonywania rozkazu

Szybkość podawana jest jako ilość taktów zegara procesora 

Szybkość podawana jest jako ilość taktów zegara procesora 

potrzebnych do wykonania rozkazu. W tym przykładzie 

potrzebnych do wykonania rozkazu. W tym przykładzie 

procesor 80386 wykonuje rozkaz w 7 taktach.

procesor 80386 wykonuje rozkaz w 7 taktach.

background image

 

 

PRZYKŁADOWE ROZKAZY

PRZYKŁADOWE ROZKAZY

Rozkazy przesłań:

Rozkazy przesłań:

MOV - 

MOV - 

move

move

 - przesłanie słowa między dwoma rejestrami

 - przesłanie słowa między dwoma rejestrami

STR - 

STR - 

store 

store 

- przesłanie słowa ze wskazanego w rozkazie rejestru do 

- przesłanie słowa ze wskazanego w rozkazie rejestru do 

komórki pamięci

komórki pamięci

LD - 

LD - 

load

load

 - przesłanie słowa z pamięci do wskazanego rejestru

 - przesłanie słowa z pamięci do wskazanego rejestru

XCH - 

XCH - 

exchange 

exchange 

- wymiana zawartości rejestrów 

- wymiana zawartości rejestrów 

Rozkazy arytmetyczno-logiczne:

Rozkazy arytmetyczno-logiczne:

ADD - 

ADD - 

addition

addition

 - dodawanie

 - dodawanie

SUB - 

SUB - 

subtraction 

subtraction 

- odejmowanie

- odejmowanie

MUL - 

MUL - 

multiplication

multiplication

 - mnożenie

 - mnożenie

DIV - 

DIV - 

division 

division 

- dzielenie

- dzielenie

NEG - 

NEG - 

negate 

negate 

- negacja

- negacja

DEC - 

DEC - 

decrement 

decrement 

- zmniejszanie wartości o 

- zmniejszanie wartości o 

jeden

jeden

INC - 

INC - 

increment

increment

 - awiększanie wartości o 

 - awiększanie wartości o 

jeden

jeden

Rozkazy sterujące pracą programu:

Rozkazy sterujące pracą programu:

JMP - 

JMP - 

jump

jump

 - skok bezwarunkowy do wyspecyfikowanego miejsca w 

 - skok bezwarunkowy do wyspecyfikowanego miejsca w 

pamięci

pamięci

CALL - 

CALL - 

jump to subroutine 

jump to subroutine 

- wywołanie podprogramu

- wywołanie podprogramu

RET - 

RET - 

return

return

 - skok powrotny z podprogramu

 - skok powrotny z podprogramu

SKIP - 

SKIP - 

skip 

skip 

- przeskok przez jeden rozkaz

- przeskok przez jeden rozkaz

Rozkazy sterujące pracą procesora :

Rozkazy sterujące pracą procesora :

HALT - 

HALT - 

stop

stop

 - zatrzymanie wykonania programu

 - zatrzymanie wykonania programu

NOP - 

NOP - 

no operation 

no operation 

- rozkaz pusty

- rozkaz pusty

AND - 

AND - 

conjuction

conjuction

 - iloczyn

 - iloczyn

OR - 

OR - 

disjunction 

disjunction 

- suma

- suma

EXOR - 

EXOR - 

exclusive-OR

exclusive-OR

 -suma mod 2

 -suma mod 2

NOT - 

NOT - 

complement 

complement 

- negacja

- negacja

background image

 

 

PAMIĘCI

PAMIĘCI

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Podstawowe cechy i klasyfikacja

Podstawowe cechy i klasyfikacja

Pamięci RAM

Pamięci RAM

Pamięci dynamiczne RAM

Pamięci dynamiczne RAM

Pamięci ROM

Pamięci ROM

10

background image

 

 

PARAMETRY PAMIĘCI

PARAMETRY PAMIĘCI

Pamięć jako układ przeznaczony do przechowywania informacji 

Pamięć jako układ przeznaczony do przechowywania informacji 

binarnej  można scharakteryzować następującymi 

binarnej  można scharakteryzować następującymi 

parametrami:

parametrami:

pojemność

pojemność

szybkość

szybkość

koszt

koszt

pobór mocy

pobór mocy

Pojemność pamięci

Pojemność pamięci

 określa ilość informacji jaką można w niej 

 określa ilość informacji jaką można w niej 

przechować wyrażoną w bitach, bajtach lub słowach. 

przechować wyrażoną w bitach, bajtach lub słowach. 

Pamięć dzielona jest na fragmenty (w zależności od typu 

Pamięć dzielona jest na fragmenty (w zależności od typu 

pamięci) umożliwiające adresowanie. 

pamięci) umożliwiające adresowanie. 

W pamięci operacyjnej są to fragmenty określane długością 

W pamięci operacyjnej są to fragmenty określane długością 

słowa (8, 16, 32, 64 bity). Pojemność określa się podając liczbę 

słowa (8, 16, 32, 64 bity). Pojemność określa się podając liczbę 

słów i długość słowa, np. 512Kx64 - 2

słów i długość słowa, np. 512Kx64 - 2

19

19

 słów 64-bitowych

 słów 64-bitowych

W pamięciach masowych fragmentami są sektory (setki lub 

W pamięciach masowych fragmentami są sektory (setki lub 

tysiące słów). 

tysiące słów). 

background image

 

 

PARAMETRY PAMIĘCI

PARAMETRY PAMIĘCI

Szybkość pamięci

Szybkość pamięci

 określa jak często procesor (lub inne 

 określa jak często procesor (lub inne 

urządzenie) może z niej korzystać.

urządzenie) może z niej korzystać.

czas dostępu - czas od momentu żądania informacji z 

czas dostępu - czas od momentu żądania informacji z 

pamięci do momentu, w którym ta informacja ukaże się na 

pamięci do momentu, w którym ta informacja ukaże się na 

wyjściu pamięci

wyjściu pamięci

czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy 

czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy 

dwoma żądaniami dostępu do pamięci

dwoma żądaniami dostępu do pamięci

szybkość transmisji - określa ile bajtów (bitów) można 

szybkość transmisji - określa ile bajtów (bitów) można 

przesłać pomiędzy pamięcią a innym urządzeniem w 

przesłać pomiędzy pamięcią a innym urządzeniem w 

jednostce czasu.

jednostce czasu.

Koszt pamięci

Koszt pamięci

 określa cenę jaką należy ponieść za uzyskanie 

 określa cenę jaką należy ponieść za uzyskanie 

wysokich parametrów pamięci 

wysokich parametrów pamięci 

szybciej - drożej !!!

szybciej - drożej !!!

wolniej - taniej !!!

wolniej - taniej !!!

Pobór mocy

Pobór mocy

 określa jakie jest 

 określa jakie jest 

zapotrzebowanie energetyczne na realizację 

zapotrzebowanie energetyczne na realizację 

funkcji pamięci zwłaszcza przy dążeniu do 

funkcji pamięci zwłaszcza przy dążeniu do 

wzrostu jej pojemności

wzrostu jej pojemności

!

background image

 

 

PAMIĘCI

PAMIĘCI

Rejestrowa

Rejestrowa

Kieszeniowa

Kieszeniowa

Operacyjna

Operacyjna

Masowa

Masowa

Zewnętrzna

Zewnętrzna

Z dostępem swobodnym 

Z dostępem swobodnym 

(bezpośrednim)

(bezpośrednim)

Z dostępem cyklicznym

Z dostępem cyklicznym

Z dostępem

Z dostępem

sekwencyjnym

sekwencyjnym

Z dostępem

Z dostępem

asocjacyjnym

asocjacyjnym

ROM

ROM

RAM

RAM

DRAM

DRAM

(dynamiczne)

(dynamiczne)

SRAM

SRAM

(statyczne)

(statyczne)

H

ie

ra

rc

h

ia

 p

a

m

c

i

H

ie

ra

rc

h

ia

 p

a

m

c

i

D

o

s

p

 d

o

 i

n

fo

rm

a

c

ji

D

o

s

p

 d

o

 i

n

fo

rm

a

c

ji

background image

 

 

PAMIĘCI RAM

PAMIĘCI RAM

Def. Pamięcią RAM (

Def. Pamięcią RAM (

Random Access Memory

Random Access Memory

) nazywamy 

) nazywamy 

pamięć półprzewodnikową o dostępie swobodnym 

pamięć półprzewodnikową o dostępie swobodnym 

przeznaczoną do zapisu i odczytu. RAM jest pamięcią 

przeznaczoną do zapisu i odczytu. RAM jest pamięcią 

ulotną, co oznacza, że po wyłączeniu zasilania dane są 

ulotną, co oznacza, że po wyłączeniu zasilania dane są 

tracone. 

tracone. 

Def. Pamięcią RAM (

Def. Pamięcią RAM (

Random Access Memory

Random Access Memory

) nazywamy 

) nazywamy 

pamięć półprzewodnikową o dostępie swobodnym 

pamięć półprzewodnikową o dostępie swobodnym 

przeznaczoną do zapisu i odczytu. RAM jest pamięcią 

przeznaczoną do zapisu i odczytu. RAM jest pamięcią 

ulotną, co oznacza, że po wyłączeniu zasilania dane są 

ulotną, co oznacza, że po wyłączeniu zasilania dane są 

tracone. 

tracone. 

Pamięć

Pamięć

2

2

n

n

 x m

 x m

adres

adres

E

E

zapis/odcz

zapis/odcz

yt

yt

n

n

m

m

Łączenie układów pamięci dla zwiększenia 

Łączenie układów pamięci dla zwiększenia 

pojemności:

pojemności:

zwiększanie długości słowa

zwiększanie długości słowa

zwiększanie ilości słów

zwiększanie ilości słów

background image

 

 

PAMIĘCI RAM

PAMIĘCI RAM

zwiększanie długości słowa (rozbudowa szyny danych)

zwiększanie długości słowa (rozbudowa szyny danych)

Pamięć

Pamięć

1M x 4b

1M x 4b

adres

adres

E

E

z/o

z/o

20

20

D0

D0

D1

D1

D2

D2

D3

D3

Pamięć

Pamięć

1M x 1b

1M x 1b

D0

D0

Pamięć 4Mb z bitem 

Pamięć 4Mb z bitem 

parzystości

parzystości

Pamięć 8Mb z bitem 

Pamięć 8Mb z bitem 

parzystości

parzystości

Pamięć

Pamięć

1M x 4b

1M x 4b

adres

adres

E

E

z/o

z/o

20

20

D0

D0

D1

D1

D2

D2

D3

D3

Pamięć

Pamięć

1M x 1b

1M x 1b

D0

D0

Pamięć

Pamięć

1M x 4b

1M x 4b

D0

D0

D1

D1

D2

D2

D3

D3

D0 D1 D2 

D0 D1 D2 

D3

D3

Sposób stosowany w budowie modułów SIMM (

Sposób stosowany w budowie modułów SIMM (

Single In Line 

Single In Line 

Module

Module

)

)

               

               

D4 D5 D6 D7 D8

D4 D5 D6 D7 D8

background image

 

 

PAMIĘCI RAM

PAMIĘCI RAM

zwiększanie liczby słów (rozbudowa szyny adresowej)

zwiększanie liczby słów (rozbudowa szyny adresowej)

Pamięć

Pamięć

256k x 4b

256k x 4b

adres

adres

E

E

z/o

z/o

18

18

D0

D0

D1

D1

D2

D2

D3

D3

Pamięć 256k x 4b

Pamięć 256k x 4b

Pamięć

Pamięć

256k x 4b

256k x 4b

D

E

K

O

D

E

R

D

E

K

O

D

E

R

E

E

z/o

z/o

A

0

-

A

0

-

A

1

7

A

1

7

D0

D0

D1

D1

D2

D2

D3

D3

Pamięć 1M x 4b

Pamięć 1M x 4b

Pamięć

Pamięć

256k x 4b

256k x 4b

D0

D0

D1

D1

D2

D2

D3

D3

Pamięć

Pamięć

256k x 4b

256k x 4b

D0

D0

D1

D1

D2

D2

D3

D3

Pamięć

Pamięć

256k x 4b

256k x 4b

D0

D0

D1

D1

D2

D2

D3

D3

D3 D2 D1 

D3 D2 D1 

D0

D0

E

E

E

E

E

E

18

18

A

1

8

  

A

1

9

A

1

8

  

A

1

9

background image

 

 

PAMIĘCI RAM

PAMIĘCI RAM

dynamiczne i statyczne

dynamiczne i statyczne

CECHY PAMIĘCI

CECHY PAMIĘCI

DRAM

DRAM

SRAM

SRAM

szybkość

szybkość

mała

mała

duża

duża

koszt

koszt

niski

niski

wysoki

wysoki

pojemność

pojemność

duża

duża

mała

mała

pobór mocy

pobór mocy

mały

mały

duży

duży

łatwość scalania

łatwość scalania

duża

duża

mała

mała

konieczność odświeżania

konieczność odświeżania

tak

tak

nie

nie

główne zastosowanie

główne zastosowanie

główna pamięć

główna pamięć

pamięć

pamięć

operacyjna

operacyjna

kieszeniowa

kieszeniowa

 (

 (

cache

cache

)

)

background image

 

 

PAMIĘĆ DYNAMICZNA RAM (DRAM)

PAMIĘĆ DYNAMICZNA RAM (DRAM)

adres

adres

dane

dane

RAS#

RAS#

CAS#

CAS#

WE#

WE#

OE#

OE#

CE#

CE#

OE# - zezwolenie na odczyt

OE# - zezwolenie na odczyt

WE# - zezwolenie na zapis

WE# - zezwolenie na zapis

CE# - uaktywnianie (strob)

CE# - uaktywnianie (strob)

RAS# - syg.wprowadzania adresu do 

RAS# - syg.wprowadzania adresu do 

pamięci 

pamięci 

CAS# -   -‘’- 

CAS# -   -‘’- 

-‘’-            -‘’-                -‘’-

-‘’-            -‘’-                -‘’-

adres

adres

RAS#

RAS#

CAS#

CAS#

DEKODER 

DEKODER 

KOLUMN

KOLUMN

R

E

JE

S

T

R

 A

D

R

E

S

U

 

R

E

JE

S

T

R

 A

D

R

E

S

U

 

W

IE

R

S

Z

A

W

IE

R

S

Z

A

D

E

K

O

D

E

R

  

D

E

K

O

D

E

R

  

W

IE

R

S

Z

Y

W

IE

R

S

Z

Y

REJESTR ADRESU 

REJESTR ADRESU 

KOLUMNY

KOLUMNY

0 dla aktywnego sygnału 

0 dla aktywnego sygnału 

RAS#

RAS#

1 dla aktywnego sygnału 

1 dla aktywnego sygnału 

CAS#

CAS#

adres 

adres 

kolumny

kolumny

d

o

 w

e

c

ia

 

d

o

 w

e

c

ia

 

a

d

re

s

o

w

e

g

a

d

re

s

o

w

e

g

o

 D

R

A

M

o

 D

R

A

M

adres 

adres 

wiersz

wiersz

n

n

2

2

n

n

n

n

n

n

S

S

WE1

WE1

WE0

WE0

background image

 

 

PAMIĘĆ DYNAMICZNA RAM (DRAM) 

PAMIĘĆ DYNAMICZNA RAM (DRAM) 

operacje odczytu

operacje odczytu

t

t

c

c

 - 

 - 

minimalny czas pomiędzy dwoma 

minimalny czas pomiędzy dwoma 

cyklami

cyklami

RAS#

RAS#

t

t

a

a

 - 

 - 

czas 

czas 

dostępu

dostępu

t

t

D RAS-CAS

D RAS-CAS

 - 

 - 

opóźnienie sygnału CAS# względem 

opóźnienie sygnału CAS# względem 

RAS#

RAS#

Wyjście 

Wyjście 

danych

danych

Adres 

Adres 

wiersza

wiersza

Ważne 

Ważne 

dane

dane

Adres 

Adres 

kolumny

kolumny

Adres 

Adres 

wiersza

wiersza

CAS#

CAS#

Wejścia 

Wejścia 

adresow

adresow

pamięci

pamięci

S

S

OE#

OE#

background image

 

 

PAMIĘĆ DYNAMICZNA RAM (DRAM)

PAMIĘĆ DYNAMICZNA RAM (DRAM)

stany oczekiwania

stany oczekiwania

BCLK

BCLK

A23 - A0

A23 - A0

W/R#

W/R#

READY

READY

D15 - D0

D15 - D0

T

T

i

i

T

T

i

i

T

T

i

i

T

T

i

i

T

T

1

1

T

T

2

2

T

T

1

1

T

T

2

2

T

T

2

2

T

T

1

1

T

T

2

2

T

T

2

2

VA

VA

VA

VA

VA

VA

odczyt

odczyt

(0 

(0 

oczekiwania

oczekiwania

)

)

uśpienie

uśpienie

uśpienie

uśpienie

uśpienie

uśpienie

uśpienie

uśpienie

odczyt

odczyt

(1 

(1 

oczekiwania

oczekiwania

)

)

zapis

zapis

(1 

(1 

oczekiwania

oczekiwania

)

)

DO dane zapisywane

DO dane zapisywane

DI dane odczytywane

DI dane odczytywane

VA ważny adres

VA ważny adres

stan nieistotny

stan nieistotny

DI

DI

DI

DI

DO

DO

background image

 

 

PAMIĘĆ DYNAMICZNA RAM (DRAM)

PAMIĘĆ DYNAMICZNA RAM (DRAM)

odświeżanie

odświeżanie

Odświeżanie komórek pamięci dynamicznych polega na cyklicznym 

Odświeżanie komórek pamięci dynamicznych polega na cyklicznym 

doładowaniu pojemności pamiętających przechowujących wartość 

doładowaniu pojemności pamiętających przechowujących wartość 

logiczną „1”.

logiczną „1”.

Operacja odświeżania realizowana jest przez specjalistyczne układy 

Operacja odświeżania realizowana jest przez specjalistyczne układy 

logiczne, będące elementem płyty głównej komputera.

logiczne, będące elementem płyty głównej komputera.

Istnieją cztery podstawowe sposoby odświeżania pamięci 

Istnieją cztery podstawowe sposoby odświeżania pamięci 

dynamicznych RAM:

dynamicznych RAM:

sygnałem RAS (tryb wierszowy)

sygnałem RAS (tryb wierszowy)

sygnałem CAS przed RAS (tryb statyczny)

sygnałem CAS przed RAS (tryb statyczny)

odświeżanie ukryte

odświeżanie ukryte

autoodświeżanie

autoodświeżanie

background image

 

 

PAMIĘĆ KIESZENIOWA (STATYCZNA) 

PAMIĘĆ KIESZENIOWA (STATYCZNA) 

RAM

RAM

Zjawisko lokalności

Zjawisko lokalności

 - procesor odwołuje się najczęściej do pamięci 

 - procesor odwołuje się najczęściej do pamięci 

(

(

trafienie

trafienie

) w pewnym niewielkim obszarze (w okolicach danego 

) w pewnym niewielkim obszarze (w okolicach danego 

programu) - bardzo rzadko do obszarów odległych. Stąd stosowanie 

programu) - bardzo rzadko do obszarów odległych. Stąd stosowanie 

szybkich pamięci kieszeniowych (cache) zawierających właśnie taki 

szybkich pamięci kieszeniowych (cache) zawierających właśnie taki 

lokalny obszar pamięci. 

lokalny obszar pamięci. 

0

0

1

1

q-1

q-1

1 blok

1 blok

2 blok

2 blok

k-1 blok

k-1 blok

k-2 blok

k-2 blok

...

...

0

0

1

1

m-1

m-1

2

2

m-2

m-2

q słów

q słów

log

log

2

2

k

k

pamięć operacyjna

pamięć operacyjna

pamięć kieszeniowa

pamięć kieszeniowa

zawiera tylko 

zawiera tylko 

m

m

 spośród

 spośród

 k

 k

 bloków 

 bloków 

(k>>m)

(k>>m)

Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache 

Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache 

(

(

chybienie

chybienie

) to następuje wymiana zawartości jednej komórki pamięci 

) to następuje wymiana zawartości jednej komórki pamięci 

kieszeniowej. 

kieszeniowej. 

Nr 

Nr 

bloku

bloku

background image

 

 

PAMIĘĆ KIESZENIOWA (STATYCZNA) 

PAMIĘĆ KIESZENIOWA (STATYCZNA) 

RAM

RAM

H - współczynnik 

H - współczynnik 

trafienia

trafienia

Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) 

Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) 

tj. 8192*8 = 65536B = 64KB

tj. 8192*8 = 65536B = 64KB

oraz pojemność pamięci kieszeniowej m=128 linii

oraz pojemność pamięci kieszeniowej m=128 linii

to długość linii pamięci kieszeniowej wyniesie 

to długość linii pamięci kieszeniowej wyniesie 

s=8*q + log

s=8*q + log

2

2

k = 8*8 + log

k = 8*8 + log

2

2

8193 = 64+13=77bitów

8193 = 64+13=77bitów

q = 8

q = 8

q = 

q = 

64

64

q = 

q = 

16

16

0,3

0,3

0,6

0,6

0,9

0,9

5 kB

5 kB

10 kB

10 kB

15 kB

15 kB

20 kB

20 kB

pojemność pamięci 

pojemność pamięci 

kieszeniowej

kieszeniowej

background image

 

 

PAMIĘCI ROM

PAMIĘCI ROM

Def. Pamięcią ROM (

Def. Pamięcią ROM (

Read Only Memory

Read Only Memory

) nazywamy pamięć 

) nazywamy pamięć 

półprzewodnikową o dostępie swobodnym przeznaczoną 

półprzewodnikową o dostępie swobodnym przeznaczoną 

tylko do odczytu uprzednio zapisanych danych. Oznacza 

tylko do odczytu uprzednio zapisanych danych. Oznacza 

to, że nie można do niej zapisywać danych w trakcie 

to, że nie można do niej zapisywać danych w trakcie 

normalnej pracy w systemie. ROM jest pamięcią 

normalnej pracy w systemie. ROM jest pamięcią 

nieulotną, co oznacza, że po wyłączeniu zasilania dane 

nieulotną, co oznacza, że po wyłączeniu zasilania dane 

nie są tracone. 

nie są tracone. 

Def. Pamięcią ROM (

Def. Pamięcią ROM (

Read Only Memory

Read Only Memory

) nazywamy pamięć 

) nazywamy pamięć 

półprzewodnikową o dostępie swobodnym przeznaczoną 

półprzewodnikową o dostępie swobodnym przeznaczoną 

tylko do odczytu uprzednio zapisanych danych. Oznacza 

tylko do odczytu uprzednio zapisanych danych. Oznacza 

to, że nie można do niej zapisywać danych w trakcie 

to, że nie można do niej zapisywać danych w trakcie 

normalnej pracy w systemie. ROM jest pamięcią 

normalnej pracy w systemie. ROM jest pamięcią 

nieulotną, co oznacza, że po wyłączeniu zasilania dane 

nieulotną, co oznacza, że po wyłączeniu zasilania dane 

nie są tracone. 

nie są tracone. 

MROM (

MROM (

mascable ROM

mascable ROM

) zawartość pamięci ustalana jest w 

) zawartość pamięci ustalana jest w 

procesie produkcji (za pomocą odpowiednich masek) - BIOS do 

procesie produkcji (za pomocą odpowiednich masek) - BIOS do 

obsługi klawiatury

obsługi klawiatury

PROM (

PROM (

programmable ROM

programmable ROM

) pamięć jednokrotnie programowalna 

) pamięć jednokrotnie programowalna 

przez użytkownika - obecnie nieużywana

przez użytkownika - obecnie nieużywana

EPROM pamięć wielokrotnie programowalna w ultrafioletowych 

EPROM pamięć wielokrotnie programowalna w ultrafioletowych 

programatorach - obecnie wychodzi z użycia

programatorach - obecnie wychodzi z użycia

EEPROM pamięć kasowana i programowana na drodze 

EEPROM pamięć kasowana i programowana na drodze 

elektrycznej (podobnie jak RAM ale czas zapisu jest 

elektrycznej (podobnie jak RAM ale czas zapisu jest 

nieporównywalnie długi) - flash-BIOS (uaktualniany BIOS)

nieporównywalnie długi) - flash-BIOS (uaktualniany BIOS)

background image

 

 

background image

 

 

background image

 

 

background image

 

 

UKŁADY I OPERACJE WEJŚCIA/WYJŚCIA

UKŁADY I OPERACJE WEJŚCIA/WYJŚCIA

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Układy wejścia/wyjścia

Układy wejścia/wyjścia

Operacje wejścia/wyjścia

Operacje wejścia/wyjścia

11

background image

 

 

UKŁDY WEJŚCIA/WYJŚCIA

UKŁDY WEJŚCIA/WYJŚCIA

Def. Układem we/wy nazywamy układ elektroniczny 

Def. Układem we/wy nazywamy układ elektroniczny 

pośredniczący w wymianie informacji pomiędzy 

pośredniczący w wymianie informacji pomiędzy 

mikroprocesorem i pamięcią systemu z jednej strony a 

mikroprocesorem i pamięcią systemu z jednej strony a 

urządzeniem peryferyjnym (zewnętrznym urządzeniem 

urządzeniem peryferyjnym (zewnętrznym urządzeniem 

współpracującym) z drugiej.

współpracującym) z drugiej.

Dla systemu mikroprocesorowego układ we/wy widoczny 

Dla systemu mikroprocesorowego układ we/wy widoczny 

jest jako rejestr lub zespół rejestrów o określonych 

jest jako rejestr lub zespół rejestrów o określonych 

adresach oraz pewien zestaw sygnałów sterujących. 

adresach oraz pewien zestaw sygnałów sterujących. 

Def. Układem we/wy nazywamy układ elektroniczny 

Def. Układem we/wy nazywamy układ elektroniczny 

pośredniczący w wymianie informacji pomiędzy 

pośredniczący w wymianie informacji pomiędzy 

mikroprocesorem i pamięcią systemu z jednej strony a 

mikroprocesorem i pamięcią systemu z jednej strony a 

urządzeniem peryferyjnym (zewnętrznym urządzeniem 

urządzeniem peryferyjnym (zewnętrznym urządzeniem 

współpracującym) z drugiej.

współpracującym) z drugiej.

Dla systemu mikroprocesorowego układ we/wy widoczny 

Dla systemu mikroprocesorowego układ we/wy widoczny 

jest jako rejestr lub zespół rejestrów o określonych 

jest jako rejestr lub zespół rejestrów o określonych 

adresach oraz pewien zestaw sygnałów sterujących. 

adresach oraz pewien zestaw sygnałów sterujących. 

background image

 

 

Urządzenia peryferyjne mogą służyć do wprowadzania, 

Urządzenia peryferyjne mogą służyć do wprowadzania, 

wyprowadzania bądź przechowywania informacji lub być układami 

wyprowadzania bądź przechowywania informacji lub być układami 

wykonawczymi.

wykonawczymi.

Dlaczego konieczne jest pośredniczenie?

Dlaczego konieczne jest pośredniczenie?

różnice w szybkości działania (konieczne jest więc sterowanie 

różnice w szybkości działania (konieczne jest więc sterowanie 

przepływem informacji)

przepływem informacji)

różnice w parametrach elektrycznych (konieczna więc 

różnice w parametrach elektrycznych (konieczna więc 

translacja poziomu sygnałów)

translacja poziomu sygnałów)

wymagają podania informacji o określonym formacie wraz z 

wymagają podania informacji o określonym formacie wraz z 

pewnymi sygnałami sterującymi (np. Sygnał wideo wraz z 

pewnymi sygnałami sterującymi (np. Sygnał wideo wraz z 

synchronizacją)

synchronizacją)

Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i 

Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i 

sterujące.

sterujące.

UKŁDY WEJŚCIA/WYJŚCIA

UKŁDY WEJŚCIA/WYJŚCIA

background image

 

 

UKŁDY WEJŚCIA/WYJŚCIA 

UKŁDY WEJŚCIA/WYJŚCIA 

WSPÓŁADRESOWALNE Z PAMIĘCIĄ

WSPÓŁADRESOWALNE Z PAMIĘCIĄ

Szyna adresowa

Szyna adresowa

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

CPU

CPU

I/O

I/O

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

MEMR  MEMW

Def. W przypadku układów współadresowalnych z pamięcią 

Def. W przypadku układów współadresowalnych z pamięcią 

operacyjną wybieramy obiekt, na którym dokonujemy 

operacyjną wybieramy obiekt, na którym dokonujemy 

operacji (komórka pamięci lub rejestr układu we/wy), za 

operacji (komórka pamięci lub rejestr układu we/wy), za 

pomocą adresu (istnieje potrzeba wydzielenia w pamięci 

pomocą adresu (istnieje potrzeba wydzielenia w pamięci 

przestrzeni dla adresów układów we/wy). Sygnały sterujące 

przestrzeni dla adresów układów we/wy). Sygnały sterujące 

są wspólne dla pamięci i układów we/wy.

są wspólne dla pamięci i układów we/wy.

Def. W przypadku układów współadresowalnych z pamięcią 

Def. W przypadku układów współadresowalnych z pamięcią 

operacyjną wybieramy obiekt, na którym dokonujemy 

operacyjną wybieramy obiekt, na którym dokonujemy 

operacji (komórka pamięci lub rejestr układu we/wy), za 

operacji (komórka pamięci lub rejestr układu we/wy), za 

pomocą adresu (istnieje potrzeba wydzielenia w pamięci 

pomocą adresu (istnieje potrzeba wydzielenia w pamięci 

przestrzeni dla adresów układów we/wy). Sygnały sterujące 

przestrzeni dla adresów układów we/wy). Sygnały sterujące 

są wspólne dla pamięci i układów we/wy.

są wspólne dla pamięci i układów we/wy.

Np. karta 

Np. karta 

graficzna

graficzna

background image

 

 

UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE

UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE

Szyna adresowa

Szyna adresowa

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

CPU

CPU

I/O

I/O

MEMR  

MEMR  

        

        

MEMW

MEMW

MEMR  MEMW

MEMR  MEMW

IOR    IOW

IOR    IOW

Def. Dla izolowanych układów we/wy wybieramy obiekt, na 

Def. Dla izolowanych układów we/wy wybieramy obiekt, na 

którym dokonujemy operacji (komórka pamięci lub rejestr 

którym dokonujemy operacji (komórka pamięci lub rejestr 

układu we/wy), za pomocą sygnałów sterujących. 

układu we/wy), za pomocą sygnałów sterujących. 

Przestrzenie adresowe pamięci układów we/wy są 

Przestrzenie adresowe pamięci układów we/wy są 

rozdzielone

rozdzielone

Def. Dla izolowanych układów we/wy wybieramy obiekt, na 

Def. Dla izolowanych układów we/wy wybieramy obiekt, na 

którym dokonujemy operacji (komórka pamięci lub rejestr 

którym dokonujemy operacji (komórka pamięci lub rejestr 

układu we/wy), za pomocą sygnałów sterujących. 

układu we/wy), za pomocą sygnałów sterujących. 

Przestrzenie adresowe pamięci układów we/wy są 

Przestrzenie adresowe pamięci układów we/wy są 

rozdzielone

rozdzielone

IOR   

IOR   

     

     

IOW

IOW

Sygnały 

Sygnały 

sterujące 

sterujące 

dla pamięci

dla pamięci

Sygnały sterujące 

Sygnały sterujące 

dla 

dla 

układów we/wy

układów we/wy

Np. sterownik 

Np. sterownik 

dysku twardego

dysku twardego

background image

 

 

OPERACJE WEJŚCIA/WYJŚCIA

OPERACJE WEJŚCIA/WYJŚCIA

Def. Operacjami wejścia/wyjścia nazywamy całokształt działań 

Def. Operacjami wejścia/wyjścia nazywamy całokształt działań 

potrzebnych do realizacji wymiany informacji pomiędzy 

potrzebnych do realizacji wymiany informacji pomiędzy 

mikroprocesorem i pamięcią z jednej strony a układem 

mikroprocesorem i pamięcią z jednej strony a układem 

wejścia/wyjścia z drugiej.

wejścia/wyjścia z drugiej.

Def. Operacjami wejścia/wyjścia nazywamy całokształt działań 

Def. Operacjami wejścia/wyjścia nazywamy całokształt działań 

potrzebnych do realizacji wymiany informacji pomiędzy 

potrzebnych do realizacji wymiany informacji pomiędzy 

mikroprocesorem i pamięcią z jednej strony a układem 

mikroprocesorem i pamięcią z jednej strony a układem 

wejścia/wyjścia z drugiej.

wejścia/wyjścia z drugiej.

Operacje wejścia/wyjścia mogą być realizowane:

Operacje wejścia/wyjścia mogą być realizowane:

od początku do końca przy udziale procesora - przesyłana 

od początku do końca przy udziale procesora - przesyłana 

informacja przepływa przez rejestry procesora, który także 

informacja przepływa przez rejestry procesora, który także 

steruje każdym krokiem realizacji operacji - są to 

steruje każdym krokiem realizacji operacji - są to 

operacje z 

operacje z 

bezpośrednim sterowaniem przez mikroprocesor

bezpośrednim sterowaniem przez mikroprocesor

poprzez zainicjowanie operacji przez procesor, który następnie 

poprzez zainicjowanie operacji przez procesor, który następnie 

przekazuje nadzór nad realizacją operacji innemu układowi 

przekazuje nadzór nad realizacją operacji innemu układowi 

(zarządcy magistrali) - są to 

(zarządcy magistrali) - są to 

operacje z pośrednim sterowaniem 

operacje z pośrednim sterowaniem 

przez mikroprocesor (z bezpośrednim dostępem do pamięci - 

przez mikroprocesor (z bezpośrednim dostępem do pamięci - 

DMA)

DMA)

.

.

background image

 

 

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez 

Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez 

mikroprocesor :

mikroprocesor :

bezwarunkowe operacje wejścia/wyjścia

bezwarunkowe operacje wejścia/wyjścia

operacje z testowaniem stanu układu wejścia/wyjścia

operacje z testowaniem stanu układu wejścia/wyjścia

operacje z przerwaniem programu

operacje z przerwaniem programu

Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką 

Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką 

operację, przy realizacji której mikroprocesor nie 

operację, przy realizacji której mikroprocesor nie 

sprawdza gotowości układu wejścia/wyjścia do tej wymiany. 

sprawdza gotowości układu wejścia/wyjścia do tej wymiany. 

Są to operacje najprostsze realizowane tylko w niektórych 

Są to operacje najprostsze realizowane tylko w niektórych 

przypadkach np. przesłanie sygnału do wyświetlania 

przypadkach np. przesłanie sygnału do wyświetlania 

informacji za pomocą zestawu diod 

informacji za pomocą zestawu diod 

elektroluminescencyjnych.

elektroluminescencyjnych.

Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką 

Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką 

operację, przy realizacji której mikroprocesor nie 

operację, przy realizacji której mikroprocesor nie 

sprawdza gotowości układu wejścia/wyjścia do tej wymiany. 

sprawdza gotowości układu wejścia/wyjścia do tej wymiany. 

Są to operacje najprostsze realizowane tylko w niektórych 

Są to operacje najprostsze realizowane tylko w niektórych 

przypadkach np. przesłanie sygnału do wyświetlania 

przypadkach np. przesłanie sygnału do wyświetlania 

informacji za pomocą zestawu diod 

informacji za pomocą zestawu diod 

elektroluminescencyjnych.

elektroluminescencyjnych.

Def. Przy realizacji operacji wejścia/wyjścia z testowaniem 

Def. Przy realizacji operacji wejścia/wyjścia z testowaniem 

stanu układu wejścia/wyjścia, mikroprocesor sprawdza 

stanu układu wejścia/wyjścia, mikroprocesor sprawdza 

sygnał (np. określony bit kontrolny) gotowości układu do 

sygnał (np. określony bit kontrolny) gotowości układu do 

wymiany. W przypadku potwierdzenia gotowości do 

wymiany. W przypadku potwierdzenia gotowości do 

wymiany przez układ jest ona realizowana. Operacje te są 

wymiany przez układ jest ona realizowana. Operacje te są 

stosowane np. przy współpracy z przetwornikiem a/c - 

stosowane np. przy współpracy z przetwornikiem a/c - 

procesor cyklicznie przepytuje przetwornik (tzw. pętla 

procesor cyklicznie przepytuje przetwornik (tzw. pętla 

przepytywania) do chwili uzyskania zgłoszenia gotowości.

przepytywania) do chwili uzyskania zgłoszenia gotowości.

Def. Przy realizacji operacji wejścia/wyjścia z testowaniem 

Def. Przy realizacji operacji wejścia/wyjścia z testowaniem 

stanu układu wejścia/wyjścia, mikroprocesor sprawdza 

stanu układu wejścia/wyjścia, mikroprocesor sprawdza 

sygnał (np. określony bit kontrolny) gotowości układu do 

sygnał (np. określony bit kontrolny) gotowości układu do 

wymiany. W przypadku potwierdzenia gotowości do 

wymiany. W przypadku potwierdzenia gotowości do 

wymiany przez układ jest ona realizowana. Operacje te są 

wymiany przez układ jest ona realizowana. Operacje te są 

stosowane np. przy współpracy z przetwornikiem a/c - 

stosowane np. przy współpracy z przetwornikiem a/c - 

procesor cyklicznie przepytuje przetwornik (tzw. pętla 

procesor cyklicznie przepytuje przetwornik (tzw. pętla 

przepytywania) do chwili uzyskania zgłoszenia gotowości.

przepytywania) do chwili uzyskania zgłoszenia gotowości.

background image

 

 

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

 

 

operacje z przerwaniem programu

operacje z przerwaniem programu

Operacje wejścia/wyjścia z przerwaniem programu eliminują wady 

Operacje wejścia/wyjścia z przerwaniem programu eliminują wady 

operacji z testowaniem stanu układu. 

operacji z testowaniem stanu układu. 

Procesor wykonuje 

Procesor wykonuje 

program główny

program główny

 oczekując na zgłoszenie gotowości. 

 oczekując na zgłoszenie gotowości. 

Zgłoszenie powoduje przerwanie wykonywania programu głównego i 

Zgłoszenie powoduje przerwanie wykonywania programu głównego i 

zapamiętanie informacji potrzebnej do późniejszego powrotu do programu 

zapamiętanie informacji potrzebnej do późniejszego powrotu do programu 

głównego. Procesor przechodzi do wykonania 

głównego. Procesor przechodzi do wykonania 

programu obsługi przerwań 

programu obsługi przerwań 

(

(

ISR - 

ISR - 

interrupt service routine

interrupt service routine

) - następuje wymiana informacji z układem we/wy. Po 

) - następuje wymiana informacji z układem we/wy. Po 

zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje 

zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje 

przerwany program główny.

przerwany program główny.

INSTRUKCJA 1

INSTRUKCJA 1

INSTRUKCJA 2

INSTRUKCJA 2

INSTRUKCJA 3

INSTRUKCJA 3

INSTRUKCJA 4

INSTRUKCJA 4

INSTRUKCJA 11

INSTRUKCJA 11

INSTRUKCJA 12

INSTRUKCJA 12

INSTRUKCJA 5

INSTRUKCJA 5

INSTRUKCJA 6

INSTRUKCJA 6

INSTRUKCJA 7

INSTRUKCJA 7

INSTRUKCJA 8

INSTRUKCJA 8

INSTRUKCJA 9

INSTRUKCJA 9

RET 10

RET 10

Program główny

Zgłoszenie 

przerwania

Odtworzenie 

stanu 

rejestrów 

procesora

Początek 

programu obsługi 

przerwania

Zapamiętanie 

stanu 

rejestrów 

procesora

background image

 

 

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

 

 

operacje z przerwaniem programu

operacje z przerwaniem programu

W przypadku pojawienia się jednoczesnego kilku zgłoszeń od 

W przypadku pojawienia się jednoczesnego kilku zgłoszeń od 

urządzeń we/wy sytuacja może się komplikować. Dlatego stosuje się 

urządzeń we/wy sytuacja może się komplikować. Dlatego stosuje się 

tzw. 

tzw. 

sterownik przerwań

sterownik przerwań

Główne zadania sterownika przerwań:

Główne zadania sterownika przerwań:

pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy 

pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy 

procesorem i układami we/wy

procesorem i układami we/wy

przyjmowanie zgłoszeń od wielu układów we/wy (procesor 

przyjmowanie zgłoszeń od wielu układów we/wy (procesor 

posiada tylko jedno wejście zgłoszenia przerwań)

posiada tylko jedno wejście zgłoszenia przerwań)

wybór spośród wielu zgłoszeń tego, które zostanie obsłużone

wybór spośród wielu zgłoszeń tego, które zostanie obsłużone

sygnalizowanie wyboru przez podanie adresu układu we/wy, z 

sygnalizowanie wyboru przez podanie adresu układu we/wy, z 

którym zostanie dokonana wymiana (adresu programu obsługi 

którym zostanie dokonana wymiana (adresu programu obsługi 

przerwania realizującego tą wymianę, a właściwie numer 

przerwania realizującego tą wymianę, a właściwie numer 

pozycji w 

pozycji w 

tablicy wektorów przerwań

tablicy wektorów przerwań

)

)

wygenerowanie sygnału zgłoszenia przerwania bezpośrednio 

wygenerowanie sygnału zgłoszenia przerwania bezpośrednio 

do procesora

do procesora

background image

 

 

OPERACJE Z BEZPOŚREDNIM 

OPERACJE Z BEZPOŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR

MIKROPROCESOR

 

 

operacje z przerwaniem programu - tablica wektorów 

operacje z przerwaniem programu - tablica wektorów 

przerwań

przerwań

Początek IRS

Początek IRS

CS

CS

IP

IP

CS

CS

IP

IP

CS

CS

IP

IP

Pamięć 

Pamięć 

operacyjna

operacyjna

Numer 

przerwania

Adres 

Adres 

początku 

początku 

programu 

programu 

obsługi 

obsługi 

przerwania

przerwania

Tablica 

Tablica 

wektoró

wektoró

przerwa

przerwa

ń

ń

CS

CS

IP

IP

CS

CS

IP

IP

Sterowni

Sterowni

przerwań

przerwań

background image

 

 

OPERACJE Z POŚREDNIM 

OPERACJE Z POŚREDNIM 

STEROWANIEM PRZEZ 

STEROWANIEM PRZEZ 

MIKROPROCESOR (DMA)

MIKROPROCESOR (DMA)

Def. Operacje wejścia/wyjścia polegające na inicjowaniu 

Def. Operacje wejścia/wyjścia polegające na inicjowaniu 

operacji przez procesor i przekazaniu sterowania 

operacji przez procesor i przekazaniu sterowania 

specjalizowanemu układowi zwanemu 

specjalizowanemu układowi zwanemu 

sterownikiem DMA 

sterownikiem DMA 

(direct memory access) 

(direct memory access) 

nazywamy operacją o 

nazywamy operacją o 

bezpośrednim dostępie do pamięci.

bezpośrednim dostępie do pamięci.

Def. Operacje wejścia/wyjścia polegające na inicjowaniu 

Def. Operacje wejścia/wyjścia polegające na inicjowaniu 

operacji przez procesor i przekazaniu sterowania 

operacji przez procesor i przekazaniu sterowania 

specjalizowanemu układowi zwanemu 

specjalizowanemu układowi zwanemu 

sterownikiem DMA 

sterownikiem DMA 

(direct memory access) 

(direct memory access) 

nazywamy operacją o 

nazywamy operacją o 

bezpośrednim dostępie do pamięci.

bezpośrednim dostępie do pamięci.

W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a 

W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a 

wydzielonym obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu 

wydzielonym obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu 

żądania przejęcia kontroli nad magistralami (za pomocą sygnału HOLD) 

żądania przejęcia kontroli nad magistralami (za pomocą sygnału HOLD) 

procesor inicjuje operację i przechodzi w stan zawieszenia (odseparowanie się 

procesor inicjuje operację i przechodzi w stan zawieszenia (odseparowanie się 

od magistral). Po zakończeniu transmisji sterownik DMA zwraca procesorowi 

od magistral). Po zakończeniu transmisji sterownik DMA zwraca procesorowi 

kontrolę nad magistralami. 

kontrolę nad magistralami. 

Szyna adresowa

Szyna adresowa

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

STEROWNI

STEROWNI

K DMA

K DMA

I/O

I/O

MEMR  

MEMR  

        

        

MEMW

MEMW

MEMR  MEMW

MEMR  MEMW

IOR    IOW

IOR    IOW

IOR   

IOR   

     

     

IOW

IOW

CPU

CPU

HOLD

HOLD

Inicjowanie 

Inicjowanie 

operacji

operacji

Określa:

Określa:

wielkość bloku do transmisji

wielkość bloku do transmisji

sposób transmisji (blokowa, 

sposób transmisji (blokowa, 

pojedynczymi słowami, na 

pojedynczymi słowami, na 

żądanie)

żądanie)

adres pierwszej komórki 

adres pierwszej komórki 

bufora pamięci

bufora pamięci

rodzaj operacji (zapis, odczyt) 

rodzaj operacji (zapis, odczyt) 

zawieszenie

zawieszenie

background image

 

 

PRACA PROCESORA W TRYBIE 

PRACA PROCESORA W TRYBIE 

RZECZYWISTYM I CHRONIONYM

RZECZYWISTYM I CHRONIONYM

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Praca procesora w trybie rzeczywistym

Praca procesora w trybie rzeczywistym

Praca procesora w trybie chronionym

Praca procesora w trybie chronionym

Praca wielozadaniowa

Praca wielozadaniowa

Stronicowanie

Stronicowanie

12

background image

 

 

PRACA PROCESORA W TRYBIE RZECZYWISTYM

PRACA PROCESORA W TRYBIE RZECZYWISTYM

W typowym procesorze 16 bitowym (8086/88) mamy:

W typowym procesorze 16 bitowym (8086/88) mamy:

rejestry 16 bitowe

rejestry 16 bitowe

magistrala danych 16 bitowa

magistrala danych 16 bitowa

ale szyna adresowa 20 bitowa - adres 20 bitowy

ale szyna adresowa 20 bitowa - adres 20 bitowy

20 bitowy adres pozwala zaadresować 2

20 bitowy adres pozwala zaadresować 2

20

20

=1048576B=1MB pamięci 

=1048576B=1MB pamięci 

operacyjnej dzielonej na segmenty

operacyjnej dzielonej na segmenty

PAMIĘ

PAMIĘ

Ć

Ć

1M

1M

B

B

Segment 

Segment 

programu 

programu 

(kodu)

(kodu)

Segment 

Segment 

danych

danych

Segment 

Segment 

stosu

stosu

Segment 

Segment 

danych 

danych 

dodatkowy

dodatkowy

ch

ch

początek segmentu wyznacza 

początek segmentu wyznacza 

zawartość rejestru segmentu programu 

zawartość rejestru segmentu programu 

CS*16 czyli

CS*16 czyli

rejestr CS

rejestr CS

000

000

0

0

3

3

0

0

15

15

0

0

początek segmentu wyznacza 

początek segmentu wyznacza 

zawartość rejestru segmentu danych 

zawartość rejestru segmentu danych 

DS*16 czyli

DS*16 czyli

rejestr DS

rejestr DS

000

000

0

0

3

3

0

0

15

15

0

0

101100100110

101100100110

1101

1101

początek segmentu wyznacza 

początek segmentu wyznacza 

zawartość rejestru segmentu stosu 

zawartość rejestru segmentu stosu 

SS*16 czyli

SS*16 czyli

rejestr SS

rejestr SS

000

000

0

0

3

3

0

0

15

15

0

0

początek segmentu wyznaczają zawartości 

początek segmentu wyznaczają zawartości 

rejestrów dodatkowych segmentów danych 

rejestrów dodatkowych segmentów danych 

ES (GS, FS) *16 czyli

ES (GS, FS) *16 czyli

rejestr 

rejestr 

ES(GS,FS)

ES(GS,FS)

000

000

0

0

3

3

0

0

15

15

0

0

Adres 

Adres 

00000

00000

H

H

Adres 

Adres 

FFFFF

FFFFF

H

H

background image

 

 

PRACA PROCESORA W TRYBIE RZECZYWISTYM

PRACA PROCESORA W TRYBIE RZECZYWISTYM

Część segmentowa adresu wyznacza adres segmentu, ale aby 

Część segmentowa adresu wyznacza adres segmentu, ale aby 

zaadresować określoną komórkę należy posługiwać się adresem 

zaadresować określoną komórkę należy posługiwać się adresem 

fizycznym.

fizycznym.

Adres fizyczny (20 bitowy) określa się według reguły:

Adres fizyczny (20 bitowy) określa się według reguły:

Adres fizyczny = część segmentowa *16 + przemieszczenie (tzw.adres 

Adres fizyczny = część segmentowa *16 + przemieszczenie (tzw.adres 

efektywny)

efektywny)

rejestr 

rejestr 

segmentowy

segmentowy

000

000

0

0

15

15

CS=1011001001101

CS=1011001001101

101

101

adres 

adres 

efektywny

efektywny

0

0

15

15

IP=0100011111110

IP=0100011111110

011

011

wskaźnik 

wskaźnik 

rozkazów

rozkazów

rejestr segmentu 

rejestr segmentu 

programu

programu

+

+

adres 

adres 

fizyczny

fizyczny

0

0

19

19

1011001001101101

1011001001101101

0000

0000

0100011111110

0100011111110

011

011

CS

CS

0000

0000

IP

IP

+

+

+

+

ADRES 

ADRES 

FIZYCZNY

FIZYCZNY

1011011011101100

1011011011101100

0011

0011

B2D60

B2D60

47F3

47F3

B6EC3

B6EC3

0

0

H

H

=000

=000

B

B

0   3

0   3

0

0

background image

 

 

PRACA PROCESORA W TRYBIE RZECZYWISTYM

PRACA PROCESORA W TRYBIE RZECZYWISTYM

O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną 

O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną 

użyte do określania adresu fizycznego nie decyduje przypadek lecz 

użyte do określania adresu fizycznego nie decyduje przypadek lecz 

pewne reguły

pewne reguły

wskaźnik rozkazów 

wskaźnik rozkazów 

(IP)

(IP)

zawsze:  rejestr segmentu programu (CS)

zawsze:  rejestr segmentu programu (CS)

wskaźnik stosu (SP)

wskaźnik stosu (SP)

zawsze:  rejestr segmentu stosu (SS)

zawsze:  rejestr segmentu stosu (SS)

wskaźnik bazy (BP)

wskaźnik bazy (BP)

                 

                 

rejestr segmentu stosu (SS)

rejestr segmentu stosu (SS)

pozostałe rejestry

pozostałe rejestry

                 

                 

rejestr segmentu danych (DS)

rejestr segmentu danych (DS)

rejestr indeksowy 

rejestr indeksowy 

przeznaczenia (DI)

przeznaczenia (DI)

                 

                 

rejestr dodatkowy (ES)

rejestr dodatkowy (ES)

background image

 

 

PRACA PROCESORA W TRYBIE RZECZYWISTYM

PRACA PROCESORA W TRYBIE RZECZYWISTYM

Interpretacja adresu fizycznego:

Interpretacja adresu fizycznego:

zawartość rejestru segmentowego *16 podaje adres początku 

zawartość rejestru segmentowego *16 podaje adres początku 

segmentu

segmentu

od tego początku odsuwamy się o liczbę komórek podaną w adresie 

od tego początku odsuwamy się o liczbę komórek podaną w adresie 

efektywnym

efektywnym

adres efektywny jest 16 bitowy to pozwala zaadresować 

adres efektywny jest 16 bitowy to pozwala zaadresować 

65536B=64kB

65536B=64kB

pamięć jest widziana przez procesor jako 64kB okno

pamięć jest widziana przez procesor jako 64kB okno

okno to można przesuwać przeładowując rejestry segmentowe (skok 

okno to można przesuwać przeładowując rejestry segmentowe (skok 

16B bo mnożymy przez 16)

16B bo mnożymy przez 16)

początek segmentu (zawartość rejestru segmentowego*16)

początek segmentu (zawartość rejestru segmentowego*16)

PAMIĘ

PAMIĘ

Ć

Ć

1MB

1MB

adresowana 

adresowana 

komórka 

komórka 

pamięci

pamięci

Adres 

Adres 

00000

00000

H

H

Adres 

Adres 

FFFFF

FFFFF

H

H

6

4

k

B

6

4

k

B

początek segmentu 

początek segmentu 

(zawartość rejestru 

(zawartość rejestru 

segmentowego*16)

segmentowego*16)

przesunięcie adres 

przesunięcie adres 

efektywny)

efektywny)

okno przez 

okno przez 

które widziana 

które widziana 

jest pamięć

jest pamięć

background image

 

 

PRACA PROCESORA W TRYBIE RZECZYWISTYM

PRACA PROCESORA W TRYBIE RZECZYWISTYM

Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie 

Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie 

pokrywać.

pokrywać.

Jest to sytuacja niepożądana - przyjęcie za bliskich adresów 

Jest to sytuacja niepożądana - przyjęcie za bliskich adresów 

segmentowych może spowodować np. zamazanie kodu programu przez 

segmentowych może spowodować np. zamazanie kodu programu przez 

zapisywane dane

zapisywane dane

PAMIĘ

PAMIĘ

Ć

Ć

Segment 

Segment 

programu 

programu 

(kodu)

(kodu)

Segment 

Segment 

danych

danych

Segment stosu i 

Segment stosu i 

danych 

danych 

dodatkowych

dodatkowych

CS=2A00

CS=2A00

H

H

DS=41FF

DS=41FF

H

H

SS=4FFF

SS=4FFF

H

H

ES=4FFF

ES=4FFF

H

H

Obszar wspólny  danych, stosu i 

Obszar wspólny  danych, stosu i 

danych dodatkowych

danych dodatkowych

Obszar wspólny  stosu i danych 

Obszar wspólny  stosu i danych 

dodatkowych

dodatkowych

background image

 

 

PRACA PROCESORA W TRYBIE RZECZYWISTYM

PRACA PROCESORA W TRYBIE RZECZYWISTYM

Segmenty pamięci komputera z procesorem 8086

Segmenty pamięci komputera z procesorem 8086

LOGICZNY FIZYCZNY LOGICZNY FIZYCZNY

0H

0000H:0000H 00000H 0000H:FFFFH 0FFFFH Programy użytkownika

1H

1000H:0000H 10000H 1000H:FFFFH 1FFFFH Programy użytkownika

2H

2000H:0000H 20000H 2000H:FFFFH 2FFFFH Programy użytkownika

3H

3000H:0000H 30000H 3000H:FFFFH 3FFFFH Programy użytkownika

4H

4000H:0000H 40000H 4000H:FFFFH 4FFFFH Programy użytkownika

5H

5000H:0000H 50000H 5000H:FFFFH 5FFFFH Programy użytkownika

6H

6000H:0000H 60000H 6000H:FFFFH 6FFFFH Programy użytkownika

7H

7000H:0000H 70000H 7000H:FFFFH 7FFFFH Programy użytkownika

8H

8000H:0000H 80000H 8000H:FFFFH 8FFFFH Programy użytkownika

9H

9000H:0000H 90000H 9000H:FFFFH 9FFFFH Programy użytkownika

AH

A000H:0000H A0000H A000H:FFFFH AFFFFH

Pamięć ekranu

BH

B000H:0000H B0000H B000H:FFFFH BFFFFH

Pamięć ekranu

CH

C000H:0000H C0000H C000H:FFFFH CFFFFH

BIOS-rozszerzenie

DH

D000H:0000H D0000H D000H:FFFFH DFFFFH

BIOS-rozszerzenie

EH

E000H:0000H E0000H E000H:FFFFH EFFFFH

BIOS

FH

F000H:0000H F0000H F000H:FFFFH FFFFFH

BIOS

ADRES POCZĄTKU

ADRES KOŃCA

NUMER

ZASTOSOWANIE

adres logiczny  

adres logiczny  

  zawartość rejestru segmentowego: przesunięcie

  zawartość rejestru segmentowego: przesunięcie

background image

 

 

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 

Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 

2

2

32

32

=4GB pamięci

=4GB pamięci

w systemach z procesorem Pentium  procesor rozpoczyna pracę w trybie rzeczywistym, 

w systemach z procesorem Pentium  procesor rozpoczyna pracę w trybie rzeczywistym, 

a  przejście z trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez 

a  przejście z trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez 

ustawienie bitu PE w rejestrze MSW (jest częścią rejestru sterującego CR0).

ustawienie bitu PE w rejestrze MSW (jest częścią rejestru sterującego CR0).

Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. 

Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. 

Wówczas pamięć masowa jest przedłużeniem pamięci operacyjnej. 

Wówczas pamięć masowa jest przedłużeniem pamięci operacyjnej. 

Dlatego stosuje się następujący mechanizm pamięci wirtualnej:

Dlatego stosuje się następujący mechanizm pamięci wirtualnej:

do pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowej

do pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowej

program żąda dostępu do informacji podając adres wirtualny (logiczny)

program żąda dostępu do informacji podając adres wirtualny (logiczny)

sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej 

sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej 

(informacja o segmentach przechowywana jest w tablicy deskryptorów)

(informacja o segmentach przechowywana jest w tablicy deskryptorów)

w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z 

w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z 

dysku) do pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana 

dysku) do pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana 

informacji)

informacji)

obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - 

obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - 

translacja adresu wirtualnego na fizyczny (przy pomocy tablicy deskryptorów)

translacja adresu wirtualnego na fizyczny (przy pomocy tablicy deskryptorów)

poszukiwana informacja jest dostępna dla procesora z pamięci operacyjnej

poszukiwana informacja jest dostępna dla procesora z pamięci operacyjnej

Przypomnijmy:

Przypomnijmy:

Pamięć masowa 

Pamięć masowa 

(PM)

(PM)

Pamięć operacyjna 

Pamięć operacyjna 

(PAO)

(PAO)

   

   

duża pojemność, wolne działanie, niski 

duża pojemność, wolne działanie, niski 

koszt

koszt

   

   

mała pojemność, szybkie działanie, wysoki 

mała pojemność, szybkie działanie, wysoki 

koszt

koszt

background image

 

 

Adres logiczny w trybie chronionym składa się z: 

Adres logiczny w trybie chronionym składa się z: 

16 bitowej części segmentowej (selektor segmentu)

16 bitowej części segmentowej (selektor segmentu)

32 bitowego przemieszczenia (adres efektywny)

32 bitowego przemieszczenia (adres efektywny)

Dwuwymiarowa budowa adresu logicznego prowadzi do podziału pamięci na 

Dwuwymiarowa budowa adresu logicznego prowadzi do podziału pamięci na 

segmenty zwanego 

segmenty zwanego 

segmentacją przestrzeni logicznej

segmentacją przestrzeni logicznej

.

.

Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o 

Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o 

pojemności 2

pojemności 2

48

48

 adresów  tj. 256TB pamięci. 

 adresów  tj. 256TB pamięci. 

Nie wszystkie jednak bajty części segmentowej są wykorzystane do 

Nie wszystkie jednak bajty części segmentowej są wykorzystane do 

adresowania:

adresowania:

bajty 0 - 13 wyznaczają numer deskryptora segmentu (tak na prawdę 

bajty 0 - 13 wyznaczają numer deskryptora segmentu (tak na prawdę 

jeden z tych bitów określa typ tablicy deskryptorów - lokalny lub globalny) 

jeden z tych bitów określa typ tablicy deskryptorów - lokalny lub globalny) 

co pozwala na wybór 16k deskryptorów segmentu

co pozwala na wybór 16k deskryptorów segmentu

bajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do 

bajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do 

pamięci

pamięci

i przestrzeń adresów widzianych przez program wynosi 64TB

i przestrzeń adresów widzianych przez program wynosi 64TB

Tablica zajmuje jeden segment o objętości 64kB. W tablicy deskryptorów 

Tablica zajmuje jeden segment o objętości 64kB. W tablicy deskryptorów 

występuje 8192 pól (tzw. deskryptorów segmentów). Każdy deskryptor 

występuje 8192 pól (tzw. deskryptorów segmentów). Każdy deskryptor 

zawiera następujące pola:

zawiera następujące pola:

adres bazowy segmentu (32 bity)

adres bazowy segmentu (32 bity)

wielkość segmentu (20 bitów)

wielkość segmentu (20 bitów)

 - segmenty nie muszą być jednakowe

 - segmenty nie muszą być jednakowe

atrybuty

atrybuty

czy segment obecny fizycznie w pamięci (1 bit)

czy segment obecny fizycznie w pamięci (1 bit)

pole dostępne dla programu (1 bit)

pole dostępne dla programu (1 bit)

poziom ochronny (2 bity)

poziom ochronny (2 bity)

ziarnistość segmentu (1 bit)

ziarnistość segmentu (1 bit)

długość słowa (1 bit)

długość słowa (1 bit)

czy segment w pamięci (1 bit)

czy segment w pamięci (1 bit)

typ segmentu (3 bity)

typ segmentu (3 bity)

czy segment użyty (1 bit)

czy segment użyty (1 bit)

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

deskryptor segmentu

deskryptor segmentu

deskryptor segmentu

deskryptor segmentu

deskryptor segmentu

deskryptor segmentu

Tablica deskryptorów

Tablica deskryptorów

..

.

..

.

background image

 

 

+

+

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

Selektor segmentu

Selektor segmentu

0

0

13

13

15

15

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA (PAO)

OPERACYJNA (PAO)

Tablica deskryptorów

Tablica deskryptorów

deskryptor

deskryptor

Adres efektywny (przemieszczenie)

Adres efektywny (przemieszczenie)

0

0

3

3

1

1

Adres bazowy

Adres bazowy

s

e

g

m

e

n

t

s

e

g

m

e

n

t

s

e

g

m

e

n

t

s

e

g

m

e

n

t

A

d

re

s

 fi

zy

c

zn

y

A

d

re

s

 fi

zy

c

zn

y

Jeśli w deskryptorze istnieje adnotacja, że segmentu 

Jeśli w deskryptorze istnieje adnotacja, że segmentu 

nie ma w PAO to segment jest przenoszony z pamięci 

nie ma w PAO to segment jest przenoszony z pamięci 

masowej do operacyjnej w miejsce innego segmentu

masowej do operacyjnej w miejsce innego segmentu

Adres logiczny - 46 bitów

Adres logiczny - 46 bitów

background image

 

 

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

Algorytm tworzenia (obliczania) 32 bitowego adresu 

Algorytm tworzenia (obliczania) 32 bitowego adresu 

fizycznego na podstawie adresu logicznego

fizycznego na podstawie adresu logicznego

1. Program odwołuje się do adresu logicznego składającego się z:

1. Program odwołuje się do adresu logicznego składającego się z:

selektora segmentu

selektora segmentu

adresu  efektywnego (przemieszczenia)

adresu  efektywnego (przemieszczenia)

2. Selektor wskazuje określony deskryptor segmentu w tablicy 

2. Selektor wskazuje określony deskryptor segmentu w tablicy 

deskryptorów

deskryptorów

3. Jedno z pól deskryptora określa czy segment jest obecny w PAO. 

3. Jedno z pól deskryptora określa czy segment jest obecny w PAO. 

Jeśli nie to następuje wczytanie segmentu do PAO z pamięci 

Jeśli nie to następuje wczytanie segmentu do PAO z pamięci 

masowej.

masowej.

Z deskryptora można określić również:

Z deskryptora można określić również:

adres początku segmentu = adres bazowy

adres początku segmentu = adres bazowy

adres końca segmentu = adres bazowy + wielkość segmentu

adres końca segmentu = adres bazowy + wielkość segmentu

   

   

Jeśli przemieszczenie będzie większe od wielkości segmentu to 

Jeśli przemieszczenie będzie większe od wielkości segmentu to 

procesor nie dopuści do zamazania sąsiednich segmentów 

procesor nie dopuści do zamazania sąsiednich segmentów 

przechodząc w tryb obsługi błędu (tzw. wyjątek) - to jest przewaga 

przechodząc w tryb obsługi błędu (tzw. wyjątek) - to jest przewaga 

trybu wirtualnego nad rzeczywistym 

trybu wirtualnego nad rzeczywistym 

4. Odczytanie z deskryptora adresu bazowego i dodanie do niego 

4. Odczytanie z deskryptora adresu bazowego i dodanie do niego 

przemieszczenia (adresu efektywnego) w celu określenia adresu 

przemieszczenia (adresu efektywnego) w celu określenia adresu 

fizycznego poszukiwanej komórki pamięci.

fizycznego poszukiwanej komórki pamięci.

background image

 

 

MECHANIZM PAMIĘCI WIRTUALNEJ

MECHANIZM PAMIĘCI WIRTUALNEJ

PODSUMOWANIE

PODSUMOWANIE

Mechanizm  pamięci  wirtualnej  polega  na  tym,  że  nie  cała  przestrzeń 

Mechanizm  pamięci  wirtualnej  polega  na  tym,  że  nie  cała  przestrzeń 

adresów logicznych widzianych przez zadanie ma swoje oparcie w pamięci 

adresów logicznych widzianych przez zadanie ma swoje oparcie w pamięci 

fizycznej. 

fizycznej. 

Przestrzeń  adresów  logicznych  (selektor  segmentu:  przemieszczenie) 

Przestrzeń  adresów  logicznych  (selektor  segmentu:  przemieszczenie) 

odwołujących się do potrzebnych zadaniu segmentów kodu, danych i stosu 

odwołujących się do potrzebnych zadaniu segmentów kodu, danych i stosu 

jest  odwzorowywana  na  4GB  przestrzeń  32  bitowych  adresów  liniowych,  z 

jest  odwzorowywana  na  4GB  przestrzeń  32  bitowych  adresów  liniowych,  z 

których wszystkie mogą być użyte w zadaniu.

których wszystkie mogą być użyte w zadaniu.

Jednak  ta  przestrzeń  nie  może  być  cała  zrealizowana  w  fizycznej  pamięci 

Jednak  ta  przestrzeń  nie  może  być  cała  zrealizowana  w  fizycznej  pamięci 

komputera.  Dlatego  w  praktyce  zostaje  podzielona  na  1M  stron  i  tylko 

komputera.  Dlatego  w  praktyce  zostaje  podzielona  na  1M  stron  i  tylko 

część spośród nich jest jednocześnie przechowywana w pamięci fizycznej. 

część spośród nich jest jednocześnie przechowywana w pamięci fizycznej. 

Zarządzaniem  przeładowywaniem  stron  pomiędzy  dyskiem  i  pamięcią 

Zarządzaniem  przeładowywaniem  stron  pomiędzy  dyskiem  i  pamięcią 

operacyjną 

zajmuje 

się 

system 

operacyjny 

za 

pomocą 

funkcji 

operacyjną 

zajmuje 

się 

system 

operacyjny 

za 

pomocą 

funkcji 

wykonywanych  przez  procesor  w  trybie  tzw.  wyjątku  procesora  (tzn. 

wykonywanych  przez  procesor  w  trybie  tzw.  wyjątku  procesora  (tzn. 

przerwania generowanego przez sam procesor).

przerwania generowanego przez sam procesor).

background image

 

 

PRACA WIELOZADANIOWA W SYSTEMIE 

PRACA WIELOZADANIOWA W SYSTEMIE 

JEDNOPROCESOROWYM

JEDNOPROCESOROWYM

Praca wielozadaniowa polega na przełączaniu zadań.

Praca wielozadaniowa polega na przełączaniu zadań.

1. Procesor realizuje zadanie do momentu:

1. Procesor realizuje zadanie do momentu:

upływu czas przeznaczonego na realizację zadania

upływu czas przeznaczonego na realizację zadania

w którym chwilowo brak określonych informacji

w którym chwilowo brak określonych informacji

żądania zmiany zadania przez użytkownika

żądania zmiany zadania przez użytkownika

2. Zapamiętanie stanu realizacji zadania

2. Zapamiętanie stanu realizacji zadania

3. Zmiana wykonywanego zadania

3. Zmiana wykonywanego zadania

itd.....

itd.....

Istnieje konieczność kontroli dostępu poszczególnych 

Istnieje konieczność kontroli dostępu poszczególnych 

zadań do:

zadań do:

informacji

informacji

zasobów systemu

zasobów systemu

Wielozadaniowość może być realizowana programowo, 

Wielozadaniowość może być realizowana programowo, 

ale procesor Pentium realizuje to sprzętowo 

ale procesor Pentium realizuje to sprzętowo 

wykorzystując 

wykorzystując 

systemowe segmenty stanu zadania (TSS)

systemowe segmenty stanu zadania (TSS)

rejestr zadań (TR)

rejestr zadań (TR)

background image

 

 

STRONICOWANIE

STRONICOWANIE

W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu 

W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu 

segmentacji, dostępny jest także mechanizm stronicowania.

segmentacji, dostępny jest także mechanizm stronicowania.

Mechanizm stronicowania pozwala na podział pamięci wirtualnej na strony o 

Mechanizm stronicowania pozwala na podział pamięci wirtualnej na strony o 

stałej wielkości (4kB lub 4MB)

stałej wielkości (4kB lub 4MB)

Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze 

Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze 

sterującym CR0

sterującym CR0

Mechanizm stronicowania wspomaga się pomocniczą pamięcią cache - 

Mechanizm stronicowania wspomaga się pomocniczą pamięcią cache - 

przyspieszenie

przyspieszenie

pozycja w katalogu 

pozycja w katalogu 

stron

stron

pozycja w tablicy stron

pozycja w tablicy stron

pozycja na stronie

pozycja na stronie

11

11

12

12

0

0

21

21

22

22

31

31

adres tablicy 

adres tablicy 

stron

stron

adres strony w 

adres strony w 

pamięci

pamięci

adres strony w 

adres strony w 

pamięci

pamięci

wybiera tabelę stron

wybiera tabelę stron

wybiera stronę w pamięci

wybiera stronę w pamięci

katalog stron

katalog stron

tabele stron

tabele stron

4kB strony w 

4kB strony w 

pamięci

pamięci

...

...

1

1

1024

1024

1

1

1024

1024

1

1

1024

1024

1

1

1024

1024

1

1

2

2

1

1

M

M

background image

 

 

STRONICOWANIE

STRONICOWANIE

pozycja w katalogu 

pozycja w katalogu 

stron

stron

pozycja na stronie

pozycja na stronie

0

0

21

21

22

22

31

31

adres strony w 

adres strony w 

pamięci

pamięci

wybiera stronę w pamięci

wybiera stronę w pamięci

katalog stron

katalog stron

4MB strony w 

4MB strony w 

pamięci

pamięci

1

1

1024

1024

dla stron 4MB

dla stron 4MB

1

1

2

2

1k

1k

background image

 

 

Dodatki

background image

 

 

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

przykład dla procesora 80286 (najprostszy)

przykład dla procesora 80286 (najprostszy)

Numer 

Numer 

bloku

bloku

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

Deskryptor bloku  

Deskryptor bloku  

5

5

00

00

0

0

00

00

1

1

01

01

0

0

01

01

1

1

10

10

0

0

10

10

1

1

11

11

0

0

11

11

1

1

01

01

1

1

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

M

B

8

M

B

PAMIĘĆ

PAMIĘĆ

 MASOWA

 MASOWA

1MB

1MB

1MB

1MB

5

5

3

3

PAMIĘĆ

PAMIĘĆ

 OPERACYJNA

 OPERACYJNA

Adres bazowy 

w PAO

Bit 

obecności

NR deskryptora 

(nr bloku w PM)

0

000

0

001

0

010

100000H

1

011

0

100

000000H

1

101

0

110

0

111

Deskryptor bloku  

Deskryptor bloku  

3

3

20

20

0

0

000000H

000000H

0FFFFFH

0FFFFFH

100000H

100000H

1FFFFFH

1FFFFFH

Adresy 

Adresy 

pamięci

pamięci

Tablica deskryptorów

Tablica deskryptorów

1111111111111111

1111111111111111

1111

1111

= 3FFFFFH

= 3FFFFFH

20

20

2

2

0

0

0

0

selektor

selektor

przesunięcie

przesunięcie

100000H

100000H

FFFFFH

FFFFFH

+

+

1FFFFFH

1FFFFFH

Adres fizyczny =

Adres fizyczny =

23 bitowy adres pozwala zaadresować 8MB pamięci wirtualnej przydzielonej 

23 bitowy adres pozwala zaadresować 8MB pamięci wirtualnej przydzielonej 

realizowanemu programowi. 

realizowanemu programowi. 

Pamięć operacyjna posiada 2MB pojemności (pomijając obszar na system operacyjny i 

Pamięć operacyjna posiada 2MB pojemności (pomijając obszar na system operacyjny i 

tablicę deskryptorów), więc adres fizyczny jest 21 bajtowy

tablicę deskryptorów), więc adres fizyczny jest 21 bajtowy

Adres bazowy w 

Adres bazowy w 

PAO

PAO

Przesunięcie

Przesunięcie

background image

 

 

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

przykład dla procesora 80286 (najprostszy)

przykład dla procesora 80286 (najprostszy)

1. Program odwołuje się do adresu wirtualnego 3FFFFFH składającego 

1. Program odwołuje się do adresu wirtualnego 3FFFFFH składającego 

się z:

się z:

pola selektora: w którym bloku programu znajduje się 

pola selektora: w którym bloku programu znajduje się 

informacja czyli którego deskryptora użyć?

informacja czyli którego deskryptora użyć?

przesunięcia: jak daleko od początku bloku znajduje się 

przesunięcia: jak daleko od początku bloku znajduje się 

informacja?

informacja?

2. Selektor (w naszym przypadku) zawiera informację o bloku nr 3

2. Selektor (w naszym przypadku) zawiera informację o bloku nr 3

3. Czy blok nr 3 jest w PAO? Czy bit obecności jest równy „1”? - w tym 

3. Czy blok nr 3 jest w PAO? Czy bit obecności jest równy „1”? - w tym 

przypadku jest ! 

przypadku jest ! 

4. Odczytywany jest adres bazowy bloku w PAO

4. Odczytywany jest adres bazowy bloku w PAO

5. Do adresu bazowego dodawane jest przesunięcie z adresu 

5. Do adresu bazowego dodawane jest przesunięcie z adresu 

wirtualnego

wirtualnego

5. Otrzymany 21 bitowy adres jest adresem fizycznym w PAO, pod 

5. Otrzymany 21 bitowy adres jest adresem fizycznym w PAO, pod 

którym znajduje się poszukiwana informacja 

którym znajduje się poszukiwana informacja 

Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego 

Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego 

na podstawie 23 bitowego adresu wirtualnego

na podstawie 23 bitowego adresu wirtualnego

Gdy nie ma to realizowane są dodatkowe 

Gdy nie ma to realizowane są dodatkowe 

czynności

czynności

background image

 

 

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

przykład dla procesora 80286 (najprostszy)

przykład dla procesora 80286 (najprostszy)

3.1. Bloku nr 7 nie ma w PAO

3.1. Bloku nr 7 nie ma w PAO

3.2. Blok nr 7 wczytany jest do PAO w miejsce np. bloku nr 3

3.2. Blok nr 7 wczytany jest do PAO w miejsce np. bloku nr 3

3.3. Modyfikowane są deskryptory usuniętego i załadowanego bloku

3.3. Modyfikowane są deskryptory usuniętego i załadowanego bloku

Algorytm dodatkowych czynności tworzenia (obliczania) 21 

Algorytm dodatkowych czynności tworzenia (obliczania) 21 

bitowego adresu fizycznego na podstawie 23 bitowego adresu 

bitowego adresu fizycznego na podstawie 23 bitowego adresu 

wirtualnego

wirtualnego

Numer 

Numer 

bloku

bloku

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

1MB

00

00

0

0

00

00

1

1

01

01

0

0

01

01

1

1

10

10

0

0

10

10

1

1

11

11

0

0

11

11

1

1

11

11

1

1

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

M

B

8

M

B

PAMIĘĆ

PAMIĘĆ

 MASOWA

 MASOWA

1MB

1MB

1MB

1MB

5

5

7

7

PAMIĘĆ

PAMIĘĆ

 OPERACYJNA

 OPERACYJNA

Adres bazowy 

w PAO

Bit 

obecności

NR deskryptora 

(nr bloku w PM)

0

000

0

001

0

010

100000H

0

011

0

100

000000H

1

101

0

110

100000H

1

111

20

20

0

0

000000H

000000H

0FFFFFH

0FFFFFH

100000H

100000H

1FFFFFH

1FFFFFH

Adresy 

Adresy 

pamięci

pamięci

Tablica deskryptorów

Tablica deskryptorów

1111000000000000

1111000000000000

00000

00000

7F0000H

7F0000H

20

20

2

2

0

0

0

0

selektor

selektor

przesunięcie

przesunięcie

100000H

100000H

F0000H

F0000H

+

+

1F0000H

1F0000H

Adres fizyczny =

Adres fizyczny =

Adres bazowy w 

Adres bazowy w 

PAO

PAO

Przesunięcie

Przesunięcie

background image

 

 

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

dla procesora Pentium

dla procesora Pentium

Selektorem wybierającym odpowiednią pozycję w tablicy 

Selektorem wybierającym odpowiednią pozycję w tablicy 

deskryptorów jest zawartość rejestru segmentowego (14 bitów a 2 

deskryptorów jest zawartość rejestru segmentowego (14 bitów a 2 

bity określają poziom ochrony). 

bity określają poziom ochrony). 

Umożliwia to wybór 2

Umożliwia to wybór 2

14

14

=16384=16k segmentów.

=16384=16k segmentów.

Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 2

Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 2

32

32

=4GB

=4GB

Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k 

Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k 

x

x

 

 

4GB=64TB

4GB=64TB

PAMIĘĆ

PAMIĘĆ

 OPERACYJNA

 OPERACYJNA

Tablica 

Tablica 

deskryptorów

deskryptorów

Deskryptor segmentu

Deskryptor segmentu

rejestr 

rejestr 

segmentowy

segmentowy

przesunięcie

przesunięcie

31

31

0

0

15

15

0

0

adres 

adres 

efektywny

efektywny

0

0

31

31

+

+

adres 

adres 

fizyczny

fizyczny

0

0

31

31

13

13

selektor

selektor

Adres logiczny- 46 

Adres logiczny- 46 

bitów

bitów

adres bazowy 

adres bazowy 

segmentu

segmentu

background image

 

 

Koniec Dodatki

background image

 

 

KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)

KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)

dr inż. Jacek FLOREK 

dr inż. Jacek FLOREK 

Instytut Informatyki

Instytut Informatyki

Architektura komputera z pamięcią cache

Architektura komputera z pamięcią cache

Elementy systemu pamięci cache

Elementy systemu pamięci cache

Organizacja pamięci cache

Organizacja pamięci cache

13

background image

 

 

KONCEPCJA PAMIĘCI PODRĘCZNEJ 

KONCEPCJA PAMIĘCI PODRĘCZNEJ 

(CACHE)

(CACHE)

Koncepcja ta jest podobna do koncepcji pamięci wirtualnej.

Koncepcja ta jest podobna do koncepcji pamięci wirtualnej.

Przypomnijmy: 

Przypomnijmy: 

pamięci statyczne są szybsze, droższe, pobierają więcej 

pamięci statyczne są szybsze, droższe, pobierają więcej 

energii i są trudniejsze do scalania

energii i są trudniejsze do scalania

pamięci dynamiczne są wolniejsze, tańsze, pobierają 

pamięci dynamiczne są wolniejsze, tańsze, pobierają 

mniej energii i są łatwiejsze do scalania

mniej energii i są łatwiejsze do scalania

Wniosek 1

Wniosek 1

: nie jest możliwe zbudowanie całej pamięci 

: nie jest możliwe zbudowanie całej pamięci 

operacyjnej z pamięci statycznych, a pamięci 

operacyjnej z pamięci statycznych, a pamięci 

dynamiczne są za wolne dla współczesnych 

dynamiczne są za wolne dla współczesnych 

procesorów i częstotliwości zegara

procesorów i częstotliwości zegara

Wniosek 2

Wniosek 2

: wprowadza się dużą pamięć operacyjną (rzędu 

: wprowadza się dużą pamięć operacyjną (rzędu 

kilka lub kilkaset MB) zbudowaną z pamięci 

kilka lub kilkaset MB) zbudowaną z pamięci 

dynamicznych i małą (kilka kilkaset kB) pamięć 

dynamicznych i małą (kilka kilkaset kB) pamięć 

podręczną - statyczną - znacznie szybszą (wraz ze 

podręczną - statyczną - znacznie szybszą (wraz ze 

sterownikiem)

sterownikiem)

Wniosek 3

Wniosek 3

: dwa rodzaje architektury:

: dwa rodzaje architektury:

Look-trough

Look-trough

Look-aside

Look-aside

background image

 

 

ARCHITEKTURA LOOK-THROUGH

ARCHITEKTURA LOOK-THROUGH

W  przypadku  „chybienia”

W  przypadku  „chybienia”

 

 

wykorzystywana 

jest 

wykorzystywana 

jest 

magistrala 

główna 

magistrala 

główna 

koniecznymi 

stanami 

koniecznymi 

stanami 

oczekiwania

oczekiwania

CACHE

CACHE

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

MIKROPROCESO

MIKROPROCESO

R

R

przypadku 

przypadku 

„trafienia”

„trafienia”

 

główna 

 

główna 

magistrala  danych  nie 

magistrala  danych  nie 

jest 

wykorzystywana 

jest 

wykorzystywana 

co 

dodatkowo 

co 

dodatkowo 

przyspiesza 

pracę 

przyspiesza 

pracę 

systemu  (z  magistrali 

systemu  (z  magistrali 

głównej  mogą  w  tym 

głównej  mogą  w  tym 

czasie  korzystać  inni 

czasie  korzystać  inni 

zarządcy).

zarządcy).

Magistrala 

Magistrala 

lokalna

lokalna

M

a

g

is

tr

a

la

 

M

a

g

is

tr

a

la

 

g

łó

w

n

a

g

łó

w

n

a

background image

 

 

ARCHITEKTURA LOOK-ASIDE

ARCHITEKTURA LOOK-ASIDE

Zalety:

Zalety:

prostsza 

prostsza 

konstrukcja

konstrukcja

szybsza realizacja w 

szybsza realizacja w 

przypadku 

przypadku 

chybienia

chybienia

Wady:

Wady:

nawet przy trafieniu 

nawet przy trafieniu 

magistrala  nie  jest 

magistrala  nie  jest 

dostępna dla innych 

dostępna dla innych 

zarządców

zarządców

CACHE

CACHE

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

MIKROPROCESO

MIKROPROCESO

R

R

przypadku 

przypadku 

„trafienia” 

„trafienia” 

„chybienia”

„chybienia”

  główna 

  główna 

magistrala  danych 

magistrala  danych 

jest 

stale 

jest 

stale 

wykorzystywana.

wykorzystywana.

M

a

g

is

tr

a

la

 

M

a

g

is

tr

a

la

 

g

łó

w

n

a

g

łó

w

n

a

background image

 

 

ELEMENTY SYSTEMU PAMIĘCI CACHE

ELEMENTY SYSTEMU PAMIĘCI CACHE

Bank danych pamięci cache

Bank danych pamięci cache

 (pamięć danych)

 (pamięć danych)

przechowuje, umożliwia zapisywanie i odczytywanie 

przechowuje, umożliwia zapisywanie i odczytywanie 

informacji 

informacji 

Katalog pamięci cache

Katalog pamięci cache

 (zwany TAG-RAMem)

 (zwany TAG-RAMem)

umożliwia szybkie sprawdzanie czy poszukiwana 

umożliwia szybkie sprawdzanie czy poszukiwana 

informacja znajduje się w pamięci danych cache 

informacja znajduje się w pamięci danych cache 

(konkretnie: czy dany adres jest odwzorowany w pamięci 

(konkretnie: czy dany adres jest odwzorowany w pamięci 

cache)

cache)

Sterownik pamięci cache

Sterownik pamięci cache

realizuje sprawdzenie adresu w katalogu pamięci cache, 

realizuje sprawdzenie adresu w katalogu pamięci cache, 

organizuje współpracę pamięci cache z systemem  i 

organizuje współpracę pamięci cache z systemem  i 

zapewnia zgodność zawartości pamięci cache z pamięcią 

zapewnia zgodność zawartości pamięci cache z pamięcią 

główną

główną

background image

 

 

ZAPEWNIENIE ZGODNOŚCI PAMIĘCI 

ZAPEWNIENIE ZGODNOŚCI PAMIĘCI 

CACHE

CACHE

Przyczyny niezgodności: 

Przyczyny niezgodności: 

nastąpił zapis do pamięci cache bez zapisu do pamięci głównej 

nastąpił zapis do pamięci cache bez zapisu do pamięci głównej 

(w przypadku trafienia przy zapisie do pamięci)

(w przypadku trafienia przy zapisie do pamięci)

nastąpił zapis do pamięci głównej bez zapisu do pamięci cache 

nastąpił zapis do pamięci głównej bez zapisu do pamięci cache 

(gdy z magistrali głównej korzystał inny zarządca magistrali niż 

(gdy z magistrali głównej korzystał inny zarządca magistrali niż 

procesor np. transmisja DMA do pamięci głównej)

procesor np. transmisja DMA do pamięci głównej)

Strategie utrzymania zgodności: 

Strategie utrzymania zgodności: 

Write-through (zapis do pamięci cache powoduje jednoczesny  

Write-through (zapis do pamięci cache powoduje jednoczesny  

zapis do pamięci głównej - proste ale zmniejsza szybkość, bo 

zapis do pamięci głównej - proste ale zmniejsza szybkość, bo 

zpisuje się informacje do wolnej pamięci głównej)

zpisuje się informacje do wolnej pamięci głównej)

Buforowane (opóźnione) write-through (jak wyżej ale zapis do 

Buforowane (opóźnione) write-through (jak wyżej ale zapis do 

bufora i dopiero później z bufora do pamięci głównej aby nie 

bufora i dopiero później z bufora do pamięci głównej aby nie 

spowalniać pracy)

spowalniać pracy)

Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie 

Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie 

taka potrzeba - operacje bardzo skomplikowane)

taka potrzeba - operacje bardzo skomplikowane)

Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w 

Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w 

pamięci cache, gdyż nie jest możliwe zapewnienie zgodności, np. 

pamięci cache, gdyż nie jest możliwe zapewnienie zgodności, np. 

obszar pamięci RAM karty sieciowej, gdzie zapis może realizować 

obszar pamięci RAM karty sieciowej, gdzie zapis może realizować 

procesor przez magistralę systemową  jak i sterownik sieci (nie ma 

procesor przez magistralę systemową  jak i sterownik sieci (nie ma 

możliwości śledzenia magistrali sieci). W systemie muszą więc istnieć 

możliwości śledzenia magistrali sieci). W systemie muszą więc istnieć 

układy NCA (

układy NCA (

non-cachable access

non-cachable access

) uniemożliwiające niektóre zapisy 

) uniemożliwiające niektóre zapisy 

do pamięci cache.

do pamięci cache.

background image

 

 

ORGANIZACJA PAMIĘCI CACHE

ORGANIZACJA PAMIĘCI CACHE

Zestaw 1

Zestaw 1

Strona 1

Strona 1

Strona 0

Strona 0

Strona 0

Strona 0

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Zestaw 1

Zestaw 1

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Zestaw 1

Zestaw 1

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Zestaw 1

Zestaw 1

Zestaw 2

Zestaw 2

Zestaw 3

Zestaw 3

Zestaw 4

Zestaw 4

Zestaw 5

Zestaw 5

Strona 1

Strona 1

Strona 0

Strona 0

Strona 2

Strona 2

Dane 1

Dane 1

Dane 2

Dane 2

Dane 3

Dane 3

Dane 3

Dane 3

Dane 2

Dane 2

Dane 4

Dane 4

Dane 1

Dane 1

O1

O1

O2

O2

O3

O3

Katalog cache 

Katalog cache 

(TAG-RAM)

(TAG-RAM)

Bank cache

Bank cache

O4

O4

Dane 4

Dane 4

Strona 

Strona 

2

2

Bank danych i katalog pamięci cache 

Bank danych i katalog pamięci cache 

(TAG-RAM) 

tworzą 

tzw. 

(TAG-RAM) 

tworzą 

tzw. 

jednoblokową pamięć asocjacyjną

jednoblokową pamięć asocjacyjną

Pamięć  cache  stanowi  jeden  blok 

Pamięć  cache  stanowi  jeden  blok 

podzielony na zestawy

podzielony na zestawy

Pamięć  główna  dzielona  jest  na 

Pamięć  główna  dzielona  jest  na 

strony 

rozmiarze 

równym 

strony 

rozmiarze 

równym 

rozmiarowi  bloku  pamięci  cache. 

rozmiarowi  bloku  pamięci  cache. 

Strony  podobnie  jak  blok  pamięci 

Strony  podobnie  jak  blok  pamięci 

cache dzielone są na zestawy

cache dzielone są na zestawy

Każdy  zestaw  w  pamięci  cache  ma 

Każdy  zestaw  w  pamięci  cache  ma 

swoją pozycję w katalogu (TAG-RAM) 

swoją pozycję w katalogu (TAG-RAM) 

-  zawiera  adres  skąd  pochodzi  dany 

-  zawiera  adres  skąd  pochodzi  dany 

zestaw

zestaw

Każdy  zestaw  jest  wpisywany  na 

Każdy  zestaw  jest  wpisywany  na 

miejsce w pamięci cache do zestawu 

miejsce w pamięci cache do zestawu 

o  numerze  zgodnym  z  numerem 

o  numerze  zgodnym  z  numerem 

zestawu w stronie

zestawu w stronie

Pamięć 

Pamięć 

główna

główna

background image

 

 

ORGANIZACJA PAMIĘCI CACHE

ORGANIZACJA PAMIĘCI CACHE

Bank danych i katalog pamięci cache (TAG-RAM) tworzą 

Bank danych i katalog pamięci cache (TAG-RAM) tworzą 

tzw. jednoblokową pamięć asocjacyjną

tzw. jednoblokową pamięć asocjacyjną

Pamięć cache stanowi jeden blok podzielony na zestawy

Pamięć cache stanowi jeden blok podzielony na zestawy

Pamięć  główna  dzielona  jest  na  strony  o  rozmiarze 

Pamięć  główna  dzielona  jest  na  strony  o  rozmiarze 

równym  rozmiarowi  bloku  pamięci  cache.  Strony 

równym  rozmiarowi  bloku  pamięci  cache.  Strony 

podobnie jak blok pamięci cache dzielone są na zestawy

podobnie jak blok pamięci cache dzielone są na zestawy

Każdy  zestaw  w  pamięci  cache  ma  swoją  pozycję  w 

Każdy  zestaw  w  pamięci  cache  ma  swoją  pozycję  w 

katalogu (TAG-RAM) - zawiera adres skąd pochodzi dany 

katalogu (TAG-RAM) - zawiera adres skąd pochodzi dany 

zestaw

zestaw

Każdy  zestaw  jest  wpisywany  na  miejsce  w  pamięci 

Każdy  zestaw  jest  wpisywany  na  miejsce  w  pamięci 

cache  do  zestawu  o  numerze  zgodnym  z  numerem 

cache  do  zestawu  o  numerze  zgodnym  z  numerem 

zestawu w stronie

zestawu w stronie

background image

 

 

PAMIĘĆ CACHE DRUGIEGO POZIOMU

PAMIĘĆ CACHE DRUGIEGO POZIOMU

Pamięć cache (zwłaszcza typu Look-through) możer występować:

Pamięć cache (zwłaszcza typu Look-through) możer występować:

wewnątrz procesora - pamięć cache pierwszego poziomu (L1-  

wewnątrz procesora - pamięć cache pierwszego poziomu (L1-  

lovel 1),

lovel 1),

pamięć zewnętrzna - pamięć drugiego poziomu (L2).

pamięć zewnętrzna - pamięć drugiego poziomu (L2).

Pamięć  tego  typu  pojawiła  się  po  raz  pierwszy  w  procesorach 

Pamięć  tego  typu  pojawiła  się  po  raz  pierwszy  w  procesorach 

80486.

80486.

Pamięć  L2  jest  znacznie  większa  od  L1,  dzięki  czemu  jeśli  nie 

Pamięć  L2  jest  znacznie  większa  od  L1,  dzięki  czemu  jeśli  nie 

nastąpiło  „trafienie”  w  pamięci  L1  to  istnieje  duża  szansa 

nastąpiło  „trafienie”  w  pamięci  L1  to  istnieje  duża  szansa 

trafienia do L2 (oczywiście informacja z pamięci L1 znajduje się w 

trafienia do L2 (oczywiście informacja z pamięci L1 znajduje się w 

pamięci L2) - przyspiesza to pracę systemu.

pamięci L2) - przyspiesza to pracę systemu.

PAMIĘĆ 

PAMIĘĆ 

OPERACYJNA

OPERACYJNA

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

ZARZĄDCA 

ZARZĄDCA 

MAGISTRAL

MAGISTRAL

8048

8048

6

6

M

a

g

is

tr

a

la

 g

łó

w

n

a

M

a

g

is

tr

a

la

 g

łó

w

n

a

CACHE 1-go poziomu

CACHE 1-go poziomu

Blok sterowania 

Blok sterowania 

magistralą

magistralą

S

y

g

n

a

ły

 s

te

ru

c

e

S

y

g

n

a

ły

 s

te

ru

c

e

CACHE 2-go poziomu

CACHE 2-go poziomu

Magistrala lokalna

Magistrala lokalna

Układy 

Układy 

logiczne 

logiczne 

NCA

NCA

Sygnały sterujące

Sygnały sterujące


Document Outline