Architektura komputera ppt

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

I

D

O

P

R

O

C

E

S

O

R

A

Z

P

A

M

C

I

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ó

w

w

(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

a

a

argume

argume

ntu I

ntu I

cykl

cykl

pobrani

pobrani

a

a

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

e

e

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

e

e

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

e

e

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

e

e

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ó

w

w

przerwa

przerwa

ń

ń

CS

CS

IP

IP

CS

CS

IP

IP

Sterowni

Sterowni

k

k

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

z

magistrala

główna

z

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

W

przypadku

W

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

W

przypadku

W

przypadku

„trafienia”

i

„trafienia”

i

„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

o

rozmiarze

równym

strony

o

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


Wyszukiwarka

Podobne podstrony:
Architektura systemów komputerowych ppt
ARCHITEKTURA KOMPUTEROW1A
architektury komputerow v1 1
Architektura Komputera, Informatyka, Płyta Główna
Architektury Komputerów zagadnienia
Architektura komputerów I 16 12 2008
gulczas 2001 opracowanie, Politechnika Wrocławska - Materiały, architektura komputerow 2, egzamin, o
Architektura komputerów I 09 12 2008
Architektura komputerów i systemy operacyjne
Architektura Komputerów wiedza ogólna
ak projekt, Studia, PWR, 4 semestr, Architektura komputerów 2, projekt
02systroz architekturyid 4088 ppt
Tematy cwiczen, Architektóra komputerów
ako pytania zadania cz2 2010, Studia - informatyka, materialy, Architektura komputerów
Architektura komputerów I 25 11 2008
Architektura Komputerow lista 3
AK test, stud, IV semestr, Architektura Komputerow

więcej podobnych podstron