sk2[184]


dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
PODSTAWY ARCHITEKTURY KOMPUTERA
PODSTAWY ARCHITEKTURY KOMPUTERA
Specjalizowany układ cyfrowy a maszyna cyfrowa
Specjalizowany układ cyfrowy a maszyna cyfrowa
Struktura systemu mikroprocesorowego
Struktura systemu mikroprocesorowego
Bloki funkcjonalne - organizacja i architektura
Bloki funkcjonalne - organizacja i architektura
7
PRZETWARZANIE INFORMACJI
PRZETWARZANIE INFORMACJI
Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według
Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według
ustalonego algorytmu
ustalonego algorytmu
PROCES
PROCES
DANE WYNIKI
DANE WYNIKI
PRZETWARZANIA
PRZETWARZANIA
POCZTKOWE KOCCOWE
POCZTKOWE KOCCOWE
ALGORYTM
ALGORYTM
Przetwarzanie informacji można zrealizować dwoma sposobami:
Przetwarzanie informacji można zrealizować dwoma sposobami:
" Specjalizowany układ cyfrowy:
" Specjalizowany układ cyfrowy:
SPECJALIZOWANY
SPECJALIZOWANY
WYNIKI
DANE WYNIKI
DANE
UKAAD CYFROWY
UKAAD CYFROWY
" System mikroprocesorowy (maszyna cyfrowa):
" System mikroprocesorowy (maszyna cyfrowa):
PROGRAM MASZYNA
PROGRAM MASZYNA
WYNIKI
WYNIKI
CYFROWA
CYFROWA
DANE
DANE
ARCHITEKTURA MASZYNY CYFROWEJ
ARCHITEKTURA MASZYNY CYFROWEJ
MASZYNA CYFROWA
MASZYNA CYFROWA
PAMIĆ
PAMIĆ
ZEWNTRZNA
ZEWNTRZNA
PAMIĆ
PAMIĆ
OPERACYJNA
OPERACYJNA
BLOK UKAADY WY
BLOK UKAADY WY
UKAADY WE
UKAADY WE
PRZETWA- URZDZENIA
PRZETWA- URZDZENIA
URZDZENIA
URZDZENIA
RZANIA ZEWNTRZNE
RZANIA ZEWNTRZNE
ZEWNTRZNE
ZEWNTRZNE
STEROWANIE
STEROWANIE
PROCESOR
PROCESOR
JEDNOSTKA CENTRALNA
JEDNOSTKA CENTRALNA
WYNIKI
WYNIKI
PROGRAM
PROGRAM
DANE
DANE
SYSTEM MIKROPROCESOROWY
SYSTEM MIKROPROCESOROWY
Liczba linii wyznacza możliwości
Liczba linii wyznacza możliwości
adresowania np. liczba linii 20 to
adresowania np. liczba linii 20 to
można zaadresować 220
można zaadresować 220
komórek
komórek
SZYNA ADRESOWA
SZYNA ADRESOWA
Liczba linii określa długość
Liczba linii określa długość
SZYNA DANYCH
SZYNA DANYCH
słowa procesora (8, 16, 32, ....
słowa procesora (8, 16, 32, ....
(+biyt detekcji i korekcji błędów)
(+biyt detekcji i korekcji błędów)
SZYNA STEROWANIA
SZYNA STEROWANIA
Kilkanaście (kilkadziesiąt) linii
Kilkanaście (kilkadziesiąt) linii
UKAADY
UKAADY
PROCESOR PAMIC
PROCESOR PAMIC
WE/WY
WE/WY
ZEGAR
ZEGAR
DANE
DANE
PROGRAMY ...
PROGRAMY ...
WYNIKI
WYNIKI
Centralna jednostka
Centralna jednostka
przetwarzająca (CPU) URZ.
przetwarzająca (CPU) URZ.
MONITORY, DRUKARKI,
MONITORY, DRUKARKI,
ZEWN.
ZEWN.
CZYTNIKI,...
CZYTNIKI,...
Uniwersalny układ
Uniwersalny układ
UŻYTKOWNIK
UŻYTKOWNIK
przetwarzający informację i
przetwarzający informację i
sterujący pracą pozostałych
sterujący pracą pozostałych
elementów systemu
elementów systemu
ORGANIZACJA SYSTEMU
ORGANIZACJA SYSTEMU
Każde działanie wykonywane przez system jest wynikiem realizacji
Każde działanie wykonywane przez system jest wynikiem realizacji

określonego programu bądz jego fragmentu
określonego programu bądz jego fragmentu
Architektura klasycznego komputera (wg von Neumana) opiera się
Architektura klasycznego komputera (wg von Neumana) opiera się

na założeniach:
na założeniach:
 program wykonywany przez procesor wraz z danymi jest
 program wykonywany przez procesor wraz z danymi jest
umieszczony w pamięci;
umieszczony w pamięci;
 kolejność wykonywanych rozkazów zależy od ich umieszczenia
 kolejność wykonywanych rozkazów zależy od ich umieszczenia
w programie (w kolejnych komórkach pamięci), a zmiana tej
w programie (w kolejnych komórkach pamięci), a zmiana tej
zasady może być wykonana tylko:
zasady może być wykonana 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. reset
" przez operatora np. reset
 procesor odczytuje kolejne rozkazy z pamięci wysyłając
 procesor odczytuje kolejne rozkazy z pamięci wysyłając
odpowiednie adresy
odpowiednie adresy
PRZEPAYW DANYCH W SYSTEMIE MIKROPROCESOROWYM
PRZEPAYW DANYCH W SYSTEMIE MIKROPROCESOROWYM
1
1
1
1
Adres 2
Adres 2
Adres 2
Adres 2
PROCESOR
PROCESOR
PROCESOR
PROCESOR
PAMIĆ
PAMIĆ
PAMIĆ
PAMIĆ
4
4
Odczyt Dane
Odczyt Dane
Zapis Dane
Zapis Dane
4
4
3
3
3 3
3 3
1
1
1
1
Adres
Adres
Adres
Adres
PROCESOR UKAAD
PROCESOR UKAAD
PROCESOR UKAAD
PROCESOR UKAAD
WY-WE
WY-WE
WY-WE
WY-WE
4
4
4
4
Odczyt Dane
Odczyt Dane
Zapis Dane
Zapis Dane
3
3
3
3
2
2
2
2
Z PROCESORA DO PAMICI
Z PROCESORA DO PAMICI
Z PAMICI DO PROCESORA
Z PAMICI DO PROCESORA
Z WEJŚCIA DO PROCESORA
Z WEJŚCIA DO PROCESORA
Z PROCESORA NA WYJŚCIE
Z PROCESORA NA WYJŚCIE
dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
ARCHITEKTURA PROCESORA
ARCHITEKTURA PROCESORA
Schemat blokowy procesora
Schemat blokowy procesora
Rejestry
Rejestry
Blok arytmetyczno-logiczny (ALU)
Blok arytmetyczno-logiczny (ALU)
Układ sterowania
Układ sterowania
8
SCHEMAT BLOKOWY PROCESORA
SCHEMAT BLOKOWY PROCESORA
rejestry części
rejestry części Zadaniem jednostki wykonawczej jest
Zadaniem jednostki wykonawczej jest
JEDNOSTKA
JEDNOSTKA
wykonawczej
wykonawczej
wykonywanie operacji arytmetycznych i
wykonywanie operacji arytmetycznych i
WYKONAWCZA
WYKONAWCZA
logicznych w zależności od wewnętrznych
logicznych w zależności od wewnętrznych
sygnałów sterujących
sygnałów sterujących
ALU
ALU
DANE WYNIKI
DANE WYNIKI
wewnętrzne
wewnętrzne
sygnały
sygnały
zewnętrzne
zewnętrzne
sterujące
sterujące
sygnały
sygnały
sterujące
sterujące
PROGRAM
PROGRAM
układ
układ
sterowania
sterowania
Jednostka sterująca z programu dekoduje
Jednostka sterująca z programu dekoduje
JEDNOSTKA
JEDNOSTKA
rozkaz i na jego podstawie generowane są
rozkaz i na jego podstawie generowane są
STERUJCA
STERUJCA
wewnętrzne i zewnętrzne sygnały
wewnętrzne i zewnętrzne sygnały
sterujące
sterujące
rejestr
rejestr
dekoder
dekoder
rozkazów
rozkazów
rozkazów
rozkazów
REJESTRY
REJESTRY
dostępne programowo niedostępne programowo
dostępne programowo niedostępne programowo
(na przykładzie 8 bitowego procesora 8086/8088)
(na przykładzie 8 bitowego procesora 8086/8088)
15 0
15 0
Rejestr
Rejestr
FLAGS znaczników OF DF SF AF PF CF
ZF
FLAGS znaczników ZF
OF DF SF AF PF CF
IF TF
IF TF
(flagowy
(flagowy
15 7 0
15 7 0
Akumulator
AX
AX AH AL Akumulator
AX
AX AH AL
Znaczniki stanu
Znaczniki stanu
Rejestry
Rejestry
OF - flaga nadmiaru (przepełnienia)
OF - flaga nadmiaru (przepełnienia)
BH BL Rejestr bazowy
BH BL Rejestr bazowy
BX
BX
SF - flaga znaku
powszechneg SF - flaga znaku
powszechneg
ZF - flaga zera
ZF - flaga zera
o stosowania
o stosowania
CH CL
CH CL
Rejestr zliczający
Rejestr zliczający
CX
CX
CF - flaga przeniesienia
CF - flaga przeniesienia
PF - flaga parzystości
PF - flaga parzystości
Rejestr danych
Rejestr danych
DH DL
DH DL
DX AF - flaga przeniesienia pomocniczego
DX AF - flaga przeniesienia pomocniczego
Rejestr indeksowy
Rejestr indeksowy
Znaczniki kontrolne
Znaczniki kontrolne
SI zródła
SI zródła
IF - flaga zezwolenia na przerwanie
IF - flaga zezwolenia na przerwanie
Rejestr indeksowy
Rejestr indeksowy
TF - flaga pracy krokowej
TF - flaga pracy krokowej
przeznaczenia
DI przeznaczenia
DI
Rejestry
Rejestry
DF - flaga kierunku
DF - flaga kierunku
wskaznikowe
wskaznikowe
Wskaznik bazy
Wskaznik bazy
BP
BP
i indeksowe
i indeksowe
Wskaznik stosu
Wskaznik stosu
SP
SP
Wskaznik
Wskaznik
IP
IP
rozkazów
rozkazów
Rejestr programu
Rejestr programu
CS
CS
DS
DS
Rejestr danych
Rejestr danych Rejestry
Rejestry
segmentowe
segmentowe
ES Rejestr dodatkowy
ES Rejestr dodatkowy
SS Rejestr stosu
SS Rejestr stosu
REJESTRY
REJESTRY
Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech
Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech
wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości, ...) w postaci tzw. flagi
wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości, ...) w postaci tzw. flagi
(znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan
(znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan
wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa
wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa
sposoby:
sposoby:
" ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu
" ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu
" testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania
" testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania
(przetwarzania danych)
(przetwarzania danych)
Znaczniki stanu:
Znaczniki stanu:
 CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości
 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)
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 jest zero
 ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zero
 PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na
 PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na
liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z
liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z
najstarszego bitu pierwszej tetrady wyniku
najstarszego bitu pierwszej tetrady wyniku
 SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze
 SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze
znakiem - kod U2)
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 procesor po
 TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po
wykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługi
wykonaniu każdego rozkazu przerwania i przejście do 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 słów)
 DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu słów)
przy rosnących adresach (1) lub malejących adresach (0)
przy rosnących adresach (1) lub malejących adresach (0)
REJESTRY
REJESTRY
Rejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych
Rejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych
danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające
danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające
pewne funkcje specjalne. Szczególną funkcję pełni akumulator
pewne funkcje specjalne. Szczególną funkcję pełni akumulator
Akumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów)
Akumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów)
wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być
wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być
umieszczany w innym rejestrze)
umieszczany w innym rejestrze)
Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci
Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci
operacyjnej. Rejestry te zawierają adresy początkowe segmentów
operacyjnej. Rejestry te zawierają adresy początkowe segmentów
 CS rejestr segmentowy programu wskazuje segment programu, z którego aktualnie
 CS rejestr segmentowy programu wskazuje segment programu, z którego aktualnie
są pobierane kolejne rozkazy do wykonania,
są pobierane kolejne rozkazy do wykonania,
 DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane są zmienne
 DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane są zmienne
używane w programie,
używane w programie,
 ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych,
 ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych,
 SS rejestr segmentowy stosu wskazuje segment pamięci, w którym zdefiniowany jest
 SS rejestr segmentowy stosu wskazuje segment pamięci, w którym zdefiniowany jest
stos.
stos.
Rejestry wskaznikowe i indeksowe - posiadają dwa rejestry wskaznikowe i dwa rejestry
Rejestry wskaznikowe i indeksowe - posiadają dwa rejestry wskaznikowe i dwa rejestry
indeksowe.
indeksowe.
Rejestry wskaznikowe (SP, BP) są stosowane do adresowania danych w obrębie
Rejestry wskaznikowe (SP, BP) są stosowane do adresowania danych w obrębie
wydzielonego obszaru pamięci (stosu).
wydzielonego obszaru pamięci (stosu).
Rejestry indeksowe (SI, DI) służą do adresowania danych w obszarze pamięci zwanym
Rejestry indeksowe (SI, DI) służą do adresowania danych w obszarze pamięci zwanym
segmentem danych.
segmentem danych.
Wszystkie rejestry mogą być wykorzystywane jako argumenty większości rozkazów
Wszystkie rejestry mogą być wykorzystywane jako argumenty większości rozkazów
arytmetycznych i logicznych.
arytmetycznych i logicznych.
Wskaznik rozkazów (wskaznik instrukcji) - łącznie z rejestrem segmentowym CS adresuje
Wskaznik rozkazów (wskaznik instrukcji) - łącznie z rejestrem segmentowym CS adresuje
kolejne rozkazy przeznaczone do wykonania. Wskazuje adres względem początku segmentu
kolejne rozkazy przeznaczone do wykonania. Wskazuje adres względem początku segmentu
programu
programu
REJESTRY
REJESTRY
Wskaznik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu
Wskaznik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu
(wierzchołka 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 adresami), przy
 informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy
czym żadnego adresu nie wolno pominąć
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 zapisujemy do
 informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do
pierwszej wolnej
pierwszej wolnej
Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi
Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi
stos
stos
lub
lub
stos
stos
Program główny
Adres
Wywołanie podprogramu I
101 Instrukcja
(adres 104 na stos)
102 Instrukcja
103 Call
Wywołanie podprogramu II
1002 Instrukcja
(adres 1005 na stos)
1003 Instrukcja
1004 Call
2001 Instrukcja
2002 Instrukcja
2003 Return
1005 Instrukcja
1006 Instrukcja
Powrót z podprogramu II
(do adresu 1005
1007 Return
odczytanego ze stosu)
104 Instrukcja
105 Instrukcja
Powrót z podprogramu I
(do adresu 104
106 Instrukcja
odczytanego ze stosu)
107 Instrukcja
rejestr
akumulator rejestr bazowy rejestr danych
zliczający
rejestr indeksowy
zródła
wskaznik stosu
rejestr indeksowy
wskaznik bazy
przeznaczenia
rejestr flagowy (znaczników)
rejestr danych
rejestr stosu
rejestr programu
wskaznik rozkazów
rejestr dodatkowy
flaga nadmiaru
flaga zezwolenia
na przerwanie
flaga kierunku
flaga znaku flaga zera
flaga przeniesienia
pomocniczego
flaga parzystości
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
BLOK ARYTMETYCZNO-LOGICZNY
BLOK ARYTMETYCZNO-LOGICZNY
Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który
Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który
realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj.
realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj.
rozkazu umieszczonego w programie.
rozkazu umieszczonego w 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 zawartości
" operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości
rejestrów)
rejestrów)
Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o
Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o
liczbie bitów ALU.
liczbie bitów ALU.
Przykład 4 bitowego ALU SN74181
Przykład 4 bitowego ALU SN74181
Lp. S0 - S3 M=0 M=1
Lp. S0 - S3 M=0 M=1
F = A + C0
F = A
A0 - A3
A0 - A3
1 0000
F = ( A (" B) + C0
F = A (" B
2 1000
F0 - F3
F0 - F3
F = ( A (" B) + C0
F = AB
3 0100
F = C0 -1
F = 0
4 1100
B0 - B3
B0 - B3
F = A + AB + C0
5 0010 F = AB
F = ( A (" B) + AB + C0
F = B
6 1010
F = A - B - (1- C0 )
F = A " B
7 0110
F = A - (1- C0 )
8 1110 F = AB
F = A + AB + C0
9 0001
S0 - S3 F = A (" B
S0 - S3
M
M
F = A + B + C0
10 1001
F = A " B
Sygnały sterujące do wyboru
Sygnały sterujące do wyboru
F = ( A (" B) + AB + C0
11 0101
F = B
mikrooperacji logicznej (M=0)
mikrooperacji logicznej (M=0)
lub arytmetycznej (M=1) F = AB - (1- C0 )
lub arytmetycznej (M=1)
12 1101
F = AB
F = 2 A + C0
13 0011 F = 1
F = ( AB) + A + C0
14 1011
F = A (" B
F = ( A (" B) + A + C0
15 0111
F = A (" B
F = A - (1- C0 )
16 1111
F = A
UKAAD STEROWANIA
UKAAD STEROWANIA
Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np.
Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np.
dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i
dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i
przesunięć).
przesunięć).
W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi
W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi
słów podawanych na wejścia sterujące układu ALU - układ sterowania.
słów podawanych na wejścia sterujące układu ALU - układ sterowania.
Cechy takiego automatu to:
Cechy takiego automatu to:
" konieczność posiadania bardzo dużej liczby stanów dostosowanych do
" konieczność posiadania bardzo dużej liczby stanów dostosowanych do
wymaganej liczby wykonywanych rozkazów;
wymaganej liczby wykonywanych rozkazów;
" konieczność zapewnienia synchronizacji pracy układu sterowania i
" konieczność zapewnienia synchronizacji pracy układu sterowania i
wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji).
wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji).
W praktyce realizowane są jako:
W praktyce realizowane są jako:
" generatory sekwencyjne
" generatory sekwencyjne
" układy mikroprogramowalne
" układy mikroprogramowalne
dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
ROZKAZY I TRYB ADRESOWANIA
ROZKAZY I TRYB ADRESOWANIA
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
CYKL ROZKAZOWY PROCESORA
CYKL ROZKAZOWY PROCESORA
Realizując program, system mikroprocesorowy wykonuje pewne powtarzające
Realizując program, system mikroprocesorowy wykonuje pewne powtarzające
się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i
się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i
wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu
wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu
Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie
Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie
Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie
argumentów, na wykonanie rozkazu i przesłanie wyniku operacji
argumentów, na wykonanie rozkazu i przesłanie wyniku operacji
argumentów, na wykonanie rozkazu i przesłanie wyniku operacji
nazywa się
nazywa się cyklem rozkazowym (instrukcyjnym)
nazywa sięcyklem rozkazowym (instrukcyjnym)
cyklem rozkazowym (instrukcyjnym)
Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania
Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania
argumentu) i wykonania rozkazu.
argumentu) i wykonania rozkazu.
cykl cykl
cykl cykl
pobrania pobrania
pobrania pobrania
argumentu argumentu
argumentu argumentu
cykl pobrania rozkazu cykl zapisu wyniku
cykl pobrania rozkazu cykl zapisu wyniku
I II
I II
POBRANIE POBRANIE
POBRANIE POBRANIE
POBRANIE
POBRANIE
ARGUMENTU ARGUMENTU
ARGUMENTU ARGUMENTU
ROZKAZU ZAPIS
ROZKAZU ZAPIS
I II
I II
WYNIKU
WYNIKU
OBLICZANIE OBLICZENIE
DEKODOWA OBLICZANIE OBLICZENIE
DEKODOWA
WYSAANIE OBLICZANIE
WYSAANIE OBLICZANIE
ADRESU ADRESU
NIE ADRESU WYKONANIE ADRESU
NIE WYKONANIE
ADRESU ADRESU
ADRESU ADRESU
ARGUMENTU PRZEZNACZE-
ARGUMENTU ROZKAZU PRZEZNACZE-
ROZKAZU
ROZKAZU
ROZKAZU ROZKAZU ARGUMENTU
ROZKAZU ARGUMENTU
II NIA
II NIA
I
I
Pamięć
Pamięć
CPU
CPU
CYKL ROZKAZOWY PROCESORA
CYKL ROZKAZOWY PROCESORA
Faza pobrania:
Faza pobrania:
1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru
1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru
adresującego pamięć AD) na magistralę adresową
adresującego pamięć AD) na magistralę adresową
2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (RR)
2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (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 sterujących
4. zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących
realizujących dany rozkaz
realizujących dany rozkaz
pamięć
pamięć
procesor
procesor
Cykl von Neumana
Cykl von Neumana
kod
kod
1
1
rozkazu
rozkazu
kod
kod
rozkazu
rozkazu
4
4
2
2
kod
kod
rozkazu
PC(AD) rozkazu
PC(AD)
kod
kod
3
3
rozkazu
rozkazu
w przypadku rozkazów
RR
RR
kod
kod
wielobajtowych
rozkazu
rozkazu
Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju
Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju
procesora i rodzaju rozkazu (argumentu).
procesora i rodzaju rozkazu (argumentu).
Np.
Np.
Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy
Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy
to faza pobrania rozkazu składa się z trzech cykli odczytu pamięci:
to faza pobrania rozkazu składa się z trzech 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 pobrania rozkazu
Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazu
Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych
Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych
stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod rozkazu
stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod rozkazu
12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2
12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2
komórkach pamięci)
komórkach pamięci)
szyna danych
szyna danych
szyna adresowa
szyna adresowa
Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300):
Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300):
" odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru A
" odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru A
" odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B
" odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do 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
ZAWARTOŚĆ REJESTRÓW PROCESORA
Pobranie kodu rozkazu Pobranie 16 Odczyt
i 4 bitów adresu bitów adresu argumentu
A4
B
ładuj A PC 300 301 302
MAPA PAMICI
AD 300 301 841
RR ładuj A ładuj A ładuj A
300 ładuj A adres 841
Pobranie kodu rozkazu Pobranie 16 Odczyt
301 adres 841
i 4 bitów adresu bitów adresu argumentu
302 ładuj B adres 915
A 4 4 4
303 adres 915
B5
304 dodaj A+B
ładuj B PC 302 303 304
305 zapisz pamięć adres 915
AD 302 303 915
306 adres 915
RR ładuj B ładuj B ładuj B
Pobranie kodu rozkazu
A
B 5
841 4
dodaj PC 304
AD 304
915 5
RR dodaj
Pobranie kodu rozkazu Pobranie 16 Odczyt
16
i 4 bitów adresu bitów adresu argumentu
A 9 9 9
B 5 5 5
A Rejestr A
zapisz PC 305 306 307
B Rejestr B
pamięć AD 305 306 915
PC Licznik rozkazów
RR zapisz zapisz zapisz
AD Rejestr adresujący pamięć
RR Rejestr rozkazów
LISTA ROZKAZÓW
LISTA ROZKAZÓW
Def.1. Rozkazem (instrukcją
Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację,
Def.1. Rozkazem (instrukcjąmaszynową) nazywamy najprostszą operację,
maszynową) nazywamy najprostsząoperację,
której wykonania programista może zażądać
której wykonania programista może zażądać od procesora
której wykonania programista może zażądaćod procesora
od procesora
Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w
Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w
postaci kodów binarnych
postaci kodów binarnych
rozkazy w postaci kodów binarnych instrukcje maszynowe instrukcje w FORTRANie
rozkazy w postaci kodów binarnych instrukcje maszynowe instrukcje w FORTRANie
Adres Zawartość
komórki komórki
0000 0000 1011 0001
MOV CL,5
0000 0001 0001 0101
0000 0010 1010 0000
0000 0011 0000 0000
MOV A, [B2,B3] A=A+5
0000 0100 0000 1111
0000 0101 0000 0000 ADD CL,A
0000 0110 1100 1000
OUT [B2] PRINT
0000 0111 1100 0110
0000 1000 1010 1010
-
-
0000 1111 0000 0010
Def.2. Listą
Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji
Def.2. Listąrozkazów nazywamy zestaw wszystkich instrukcji
rozkazów nazywamy zestaw wszystkich instrukcji
maszynowych (rozkazów), jakie potrafi wykonać
maszynowych (rozkazów), jakie potrafi wykonać dany procesor
maszynowych (rozkazów), jakie potrafi wykonaćdany procesor
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 trybie
" inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie
chronionym)
chronionym)
FORMAT ROZKAZÓW I TRYB ADRESOWANIA
FORMAT ROZKAZÓW I TRYB ADRESOWANIA
Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w
Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w
Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w
kodzie rozkazu
kodzie rozkazu
kodzie rozkazu
Kod rozkazu:
Kod rozkazu:
" musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w
" musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w
pierwszym bajcie (bajtach) kodu rozkazu
pierwszym bajcie (bajtach) kodu rozkazu
" może zawierać operandy i/lub adresy operandów wykonywanych operacji
" może zawierać operandy i/lub adresy operandów wykonywanych operacji
Def.2. Trybem adresowania nazywamy sposób
Def.2. Trybem adresowania nazywamy sposób określenia miejsca
Def.2. Trybem adresowania nazywamy sposóbokreślenia miejsca
określenia miejsca
przechowywania argumentów rozkazu
przechowywania argumentów rozkazu
przechowywania argumentów rozkazu
Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w:
Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w:
" rejestrach
" rejestrach
" pamięci
" pamięci
" kodzie rozkazu
" kodzie rozkazu
Rozróżniamy następujące tryby adresowania
Rozróżniamy następujące tryby adresowania
" adresowanie natychmiastowe
" adresowanie natychmiastowe
" adresowanie bezpośrednie
" adresowanie bezpośrednie
" adresowanie rejestrowe
" adresowanie rejestrowe
" adresowanie pośrednie
" adresowanie pośrednie
" adresowanie indeksowe z przemieszczeniem
" adresowanie indeksowe z przemieszczeniem
TRYB ADRESOWANIA
TRYB ADRESOWANIA
Def.Przy adresowaniu natychmiastowym
Def.Przy adresowaniu natychmiastowym argument rozkazu zawarty jest w
Def.Przy adresowaniu natychmiastowymargument rozkazu zawarty jest w
argument rozkazu zawarty jest w
kodzie rozkazu
kodzie rozkazu
kodzie rozkazu
Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie.
Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie.
Argument jest umieszczany w kodzie rozkazu, więc musi być on znany
Argument jest umieszczany w kodzie rozkazu, więc musi być on znany
w momencie pisania programu.
w momencie pisania programu.
Kod operacji
Kod operacji
Kod rozkazu
Kod rozkazu
Argument
Argument
Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki
Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki
Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki
pamięci, w której przechowywany jest argument rozkazu
pamięci, w której przechowywany jest argument rozkazu
pamięci, w której przechowywany jest argument rozkazu
W momencie pisania programu musimy zarezerwować adres
W momencie pisania programu musimy zarezerwować adres
przechowywania argumentu.
przechowywania argumentu.
Kod operacji
Kod operacji
Kod rozkazu
Kod rozkazu
Adres
Adres
Argument
Argument
PAMIĆ
PAMIĆ
TRYB ADRESOWANIA
TRYB ADRESOWANIA
Def.Przy adresowaniu rejestrowym
Def.Przy adresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr,
Def.Przy adresowaniu rejestrowymw kodzie rozkazu zawarty jest rejestr,
w kodzie rozkazu zawarty jest rejestr,
w którym przechowywany jest argument
w którym przechowywany jest argument
w którym przechowywany jest argument
Zaletą tego trybu jest krótki kod i szybkie wykonanie
Zaletą tego trybu jest krótki kod i szybkie wykonanie
REJESTR
REJESTR
Kod
Kod
Określenie
Określenie
Kod operacji Argument
Kod operacji Argument
rozkazu
rozkazu
rejestru
rejestru
Def.W trybie adresowania pośredniego (rejestrowego pośredniego)
Def.W trybie adresowania pośredniego (rejestrowego pośredniego) kod
Def.W trybie adresowania pośredniego (rejestrowego pośredniego)kod
kod
rozkazu zawiera określenie rejestru bądz
rozkazu zawiera określenie rejestru bądz rejestrów, w których
rozkazu zawiera określenie rejestru bądzrejestrów, w których
rejestrów, w których
znajduje się
znajduje się adres komórki pamięci zawierającej argument
znajduje sięadres komórki pamięci zawierającej argument
adres komórki pamięci zawierającej argument
REJESTR
REJESTR
Kod
Kod
Określenie
Określenie
Kod operacji
Kod operacji
Adres
Adres
rejestru
rozkazu rejestru
rozkazu
Argument
Argument
PAMIĆ
PAMIĆ
TRYB ADRESOWANIA
TRYB ADRESOWANIA
Def.W trybie adresowania indeksowego z przemieszczeniem
Def.W trybie adresowania indeksowego z przemieszczeniem adres
Def.W trybie adresowania indeksowego z przemieszczeniem adres
adres
argumentu przechowywanego w pamięci obliczany jest jako suma
argumentu przechowywanego w pamięci obliczany jest jako suma
argumentu przechowywanego w pamięci obliczany jest jako suma
zawartości rejestru określonego w kodzie rozkazu i wartości
zawartości rejestru określonego w kodzie rozkazu i wartości
zawartości rejestru określonego w kodzie rozkazu i wartości
umieszczonej w kodzie rozkazu, zwanej przemieszczeniem
umieszczonej w kodzie rozkazu, zwanej przemieszczeniem
umieszczonej w kodzie rozkazu, zwanej przemieszczeniem
Kod
Kod
rozkazu
rozkazu
REJESTR
REJESTR
Określenie
Określenie
wartość
wartość
Kod operacji
Kod operacji
rejestru
rejestru
Przemieszczenie
Przemieszczenie
Argument
Argument
"
"
PAMIĆ
PAMIĆ
SPOSÓB PREZENTOWANIA ROZKAZU
SPOSÓB PREZENTOWANIA ROZKAZU
1. Oznaczenie symboliczne rozkazu
1. Oznaczenie symboliczne rozkazu
Jest stosowane dla prezentacji programu człowiekowi lub przy pisaniu
Jest stosowane dla prezentacji programu człowiekowi lub przy pisaniu
programów w asemblerze
programów w asemblerze
Składa się ono z mnemonika (skrótu, który powinien sugerować rodzaj
Składa się ono z mnemonika (skrótu, który powinien sugerować rodzaj
operacji) i pola argumentów
operacji) i pola argumentów
kod operacji
kod operacji
argument
argument
JMP SHORT NEXT
JMP SHORT NEXT
EB 03h
EB 03h
PAMIĆ ADRESY
11101011 000
mnemonik
mnemonik
argument
argument 00000011 001
010
011
NEXT Kolejny rozkaz 100
Kod rozkazu w kodzie
Kod rozkazu w kodzie
101
heksadecymalnym
heksadecymalnym
110
Kod rozkazu binarnie
Kod rozkazu binarnie
(w pamięci)
(w pamięci)
SPOSÓB PREZENTOWANIA ROZKAZU
SPOSÓB PREZENTOWANIA ROZKAZU
2. Opis działania rozkazu
2. 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 komórki
 Wykonaj skok i pobierz kod rozkazu z komórki
pamięci o adresie równym etykieta (u nas
pamięci o adresie równym etykieta
NEXT=100)
Argumentem jest jednak nie adres komórki lecz długość skoku
Argumentem jest jednak nie adres komórki lecz długość skoku
(interpretowana w kodzie U2). SHORT oznacza w tym przypadku skok
(interpretowana w kodzie U2). SHORT oznacza w tym przypadku skok
bliski (w zakresie od 127 bajtów w górę do 128 bajtów w dół)
bliski (w zakresie od 127 bajtów w górę do 128 bajtów w dół)
Opis symboliczny:
Opis symboliczny:
(PC) ! (PC) + przesunięcie
(PC) ! (PC) + przesunięcie
czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek)
czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek)
................................
................................
SPOSÓB PREZENTOWANIA ROZKAZU
SPOSÓB PREZENTOWANIA ROZKAZU
3. Format rozkazu
3. Format rozkazu
Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on
Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on
następujący:
następujący:
11101011 kod operacji
11101011 kod operacji
Kod rozkazu
Kod rozkazu
argument
przemieszczenie argument
przemieszczenie
4. Ustawienie flagi
4. Ustawienie flagi
Istotną informacją jest określenie czy są ustawiane flagi (i które) przy
Istotną informacją jest określenie czy są ustawiane flagi (i które) przy
wykonaniu rozkazu. W tym przykładzie flagi nie są ustawiane.
wykonaniu rozkazu. W tym przykładzie flagi nie są ustawiane.
5. Szybkość wykonywania rozkazu
5. Szybkość wykonywania rozkazu
Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych do
Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych do
wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz w 7
wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz w 7
taktach.
taktach.
PRZYKAADOWE ROZKAZY
PRZYKAADOWE ROZKAZY
Rozkazy przesłań:
Rozkazy przesłań:
MOV - move - przesłanie słowa między dwoma rejestrami
MOV - move - przesłanie słowa między dwoma rejestrami
STR - store - przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięci
STR - store - przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięci
LD - load - przesłanie słowa z pamięci do wskazanego rejestru
LD - load - przesłanie słowa z pamięci do wskazanego rejestru
XCH - exchange - wymiana zawartości rejestrów
XCH - exchange - wymiana zawartości rejestrów
Rozkazy arytmetyczno-logiczne:
Rozkazy arytmetyczno-logiczne:
ADD - addition - dodawanie
ADD - addition - dodawanie
AND - conjuction - iloczyn
AND - conjuction - iloczyn
SUB - subtraction - odejmowanie
SUB - subtraction - odejmowanie
OR - disjunction - suma
OR - disjunction - suma
MUL - multiplication - mnożenie
MUL - multiplication - mnożenie
EXOR - exclusive-OR -suma mod 2
EXOR - exclusive-OR -suma mod 2
DIV - division - dzielenie
DIV - division - dzielenie
NOT - complement - negacja
NOT - complement - negacja
NEG - negate - negacja
NEG - negate - negacja
DEC - decrement - zmniejszanie wartości o jeden
DEC - decrement - zmniejszanie wartości o jeden
INC - increment - awiększanie wartości o jeden
INC - increment - awiększanie wartości o jeden
Rozkazy sterujące pracą programu:
Rozkazy sterujące pracą programu:
JMP - jump - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięci
JMP - jump - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięci
CALL - jump to subroutine - wywołanie podprogramu
CALL - jump to subroutine - wywołanie podprogramu
RET - return - skok powrotny z podprogramu
RET - return - skok powrotny z podprogramu
SKIP - skip - przeskok przez jeden rozkaz
SKIP - skip - przeskok przez jeden rozkaz
Rozkazy sterujące pracą procesora :
Rozkazy sterujące pracą procesora :
HALT - stop - zatrzymanie wykonania programu
HALT - stop - zatrzymanie wykonania programu
NOP - no operation - rozkaz pusty
NOP - no operation - rozkaz pusty
dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
PAMICI
PAMICI
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
PARAMETRY PAMICI
PARAMETRY PAMICI
Pamięć jako układ przeznaczony do przechowywania informacji binarnej
Pamięć jako układ przeznaczony do przechowywania informacji binarnej
można scharakteryzować następującymi parametrami:
można scharakteryzować następującymi parametrami:
" pojemność
" pojemność
" szybkość
" szybkość
" koszt
" koszt
" pobór mocy
" pobór mocy
Pojemność pamięci określa ilość informacji jaką można w niej przechować
Pojemność pamięci określa ilość informacji jaką można w niej przechować
wyrażoną w bitach, bajtach lub słowach.
wyrażoną w bitach, bajtach lub słowach.
Pamięć dzielona jest na fragmenty (w zależności od typu pamięci)
Pamięć dzielona jest na fragmenty (w zależności od typu pamięci)
umożliwiające adresowanie.
umożliwiające adresowanie.
W pamięci operacyjnej są to fragmenty określane długością słowa (8, 16, 32,
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łów i długość słowa, np.
64 bity). Pojemność określa się podając liczbę słów i długość słowa, np.
512Kx64 - 219 słów 64-bitowych
512Kx64 - 219 słów 64-bitowych
W pamięciach masowych fragmentami są sektory (setki lub tysiące słów).
W pamięciach masowych fragmentami są sektory (setki lub tysiące słów).
PARAMETRY PAMICI
PARAMETRY PAMICI
Szybkość pamięci określa jak często procesor (lub inne urządzenie) może z
Szybkość pamięci określa jak często procesor (lub inne urządzenie) może z
niej korzystać.
niej korzystać.
" czas dostępu - czas od momentu żądania informacji z pamięci do
" czas dostępu - czas od momentu żądania informacji z pamięci do
momentu, w którym ta informacja ukaże się na wyjściu pamięci
momentu, w którym ta informacja ukaże się na wyjściu pamięci
" czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma
" czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma
żądaniami dostępu do pamięci
żądaniami dostępu do pamięci
" szybkość transmisji - określa ile bajtów (bitów) można przesłać
" szybkość transmisji - określa ile bajtów (bitów) można przesłać
pomiędzy pamięcią a innym urządzeniem w jednostce czasu.
pomiędzy pamięcią a innym urządzeniem w jednostce czasu.
Koszt pamięci określa cenę jaką należy ponieść za uzyskanie wysokich
Koszt pamięci określa cenę jaką należy ponieść za uzyskanie wysokich
parametrów pamięci
parametrów pamięci
szybciej - drożej !!! wolniej - taniej !!!
szybciej - drożej !!! wolniej - taniej !!!
Pobór mocy określa jakie jest zapotrzebowanie
Pobór mocy określa jakie jest zapotrzebowanie
energetyczne na realizację funkcji pamięci zwłaszcza
energetyczne na realizację funkcji pamięci zwłaszcza
przy dążeniu do wzrostu jej pojemności
przy dążeniu do wzrostu jej pojemności
!
PAMICI
PAMICI
ROM
ROM
Z dostępem swobodnym
Z dostępem swobodnym
Rejestrowa
Rejestrowa
(bezpośrednim)
(bezpośrednim)
RAM
RAM
Kieszeniowa
Kieszeniowa
Z dostępem cyklicznym
Z dostępem cyklicznym
DRAM
DRAM
Operacyjna
Operacyjna
(dynamiczne)
(dynamiczne)
Z dostępem
Z dostępem
sekwencyjnym
sekwencyjnym
SRAM
SRAM
Masowa
Masowa
(statyczne)
(statyczne)
Z dostępem
Z dostępem
asocjacyjnym
asocjacyjnym
Zewnętrzna
Zewnętrzna
Hierarchia pamięci
Hierarchia pamięci
Dostęp do informacji
Dostęp do informacji
PAMICI RAM
PAMICI RAM
Def. Pamięcią
Def. Pamięcią RAM (Random Access Memory) nazywamy pamięć
Def. PamięciąRAM (Random AccessMemory) nazywamy pamięć
RAM (RandomAccess Memory) nazywamy pamięć
ppółprzewodnikowąo dostępie swobodnym przeznaczoną
ółprzewodnikową
półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i
o dostępie swobodnym przeznaczonądo zapisu i
do zapisu i
odczytu. RAM jest pamięcią
odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu
odczytu. RAM jest pamięciąulotną, co oznacza, że po wyłączeniu
ulotną, co oznacza, że po wyłączeniu
zasilania dane są
zasilania dane są tracone.
zasilania dane sątracone.
tracone.
n
n
Pamięć
Pamięć
adres
adres
m
m
2n x m
2n x m
E
E
zapis/odczyt
zapis/odczyt
Aączenie układów pamięci dla zwiększenia pojemności:
Aączenie układów pamięci dla zwiększenia 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
PAMICI RAM
PAMICI RAM
zwiększanie długości słowa (rozbudowa szyny danych)
zwiększanie długości słowa (rozbudowa szyny danych)
Pamięć 4Mb z bitem parzystości Pamięć 8Mb z bitem parzystości
Pamięć 4Mb z bitem parzystości Pamięć 8Mb z bitem parzystości
D0 D1 D2 D3
D0 D1 D2 D3
D4 D5 D6 D7 D8
D4 D5 D6 D7 D8
D0
D0
D0
D0
D1
D1
D1
D1
20
20
D2
D2
Pamięć
Pamięć
20
20
D2
D2
adres Pamięć
adres Pamięć
D3
D3
adres
adres
1M x 4b D3
1M x 4b D3
E
E 1M x 4b
1M x 4b
E
E
z/o
z/o
z/o
z/o
D0
D0
D0
D0
Pamięć
Pamięć
D1
D1
Pamięć
Pamięć D2
D2
1M x 1b
1M x 1b
D3
D3
1M x 4b
1M x 4b
D0
D0
Pamięć
Pamięć
1M x 1b
1M x 1b
Sposób stosowany w budowie modułów SIMM (Single In Line Module)
Sposób stosowany w budowie modułów SIMM (Single In Line Module)
PAMICI RAM
PAMICI RAM
zwiększanie liczby słów (rozbudowa szyny adresowej)
zwiększanie liczby słów (rozbudowa szyny adresowej)
Pamięć 256k x 4b Pamięć 1M x 4b
Pamięć 256k x 4b Pamięć 1M x 4b
D3 D2 D1 D0
D3 D2 D1 D0
D0 D0
D0 D0
D1 D1
D1 D1
18
18
D2 D2
D2 D2
Pamięć Pamięć
Pamięć Pamięć
adres
adres
D3 D3
D3 D3
256k x 4b 256k x 4b
256k x 4b 256k x 4b
E
E
E
E
z/o z/o
z/o z/o
D0
D0
D1
D1
D2
D2
Pamięć
Pamięć
D3
D3
E
E
256k x 4b
256k x 4b
D0
D0
D1
D1
D2
D2
Pamięć
Pamięć
D3
D3
256k x 4b
256k x 4b
E
E
18
18
D0
D0
D1
D1
D2
D2
Pamięć
Pamięć
D3
D3
E 256k x 4b
E 256k x 4b
DEKODER
DEKODER
A18 A19
A18 A19
A0-A17
A0-A17
PAMICI RAM
PAMICI RAM
dynamiczne i statyczne
dynamiczne i statyczne
CECHY PAMICI DRAM SRAM
CECHY PAMICI DRAM SRAM
szybkość mała duża
szybkość mała duża
koszt niski wysoki
koszt niski wysoki
pojemność duża mała
pojemność duża mała
pobór mocy mały duży
pobór mocy mały duży
łatwość scalania duża mała
łatwość scalania duża mała
konieczność odświeżania tak nie
konieczność odświeżania tak nie
główne zastosowanie główna pamięć pamięć
główne zastosowanie główna pamięć pamięć
operacyjna kieszeniowa
operacyjna kieszeniowa
(cache)
(cache)
PAMIĆ DYNAMICZNA RAM (DRAM)
PAMIĆ DYNAMICZNA RAM (DRAM)
adres dane
adres dane
adres
adres
RAS#
RAS#
CAS#
CAS#
RAS#
RAS#
WE#
WE#
OE#
OE#
CAS#
CAS#
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 pamięci
RAS# - syg.wprowadzania adresu do pamięci
CAS# - -  - -  - -  - -  -
CAS# - -  - -  - -  - -  -
DEKODER KOLUMN
DEKODER KOLUMN
adres wiersz
adres wiersz
n
n
WE0
WE0
REJESTR ADRESU
REJESTR ADRESU
n KOLUMNY
n KOLUMNY
n
n
2n
2n
WE1
WE1
S
S
adres kolumny
adres kolumny
0 dla aktywnego sygnału RAS#
0 dla aktywnego sygnału RAS#
1 dla aktywnego sygnału CAS#
1 dla aktywnego sygnału CAS#
WIERSZA
WIERSZA
REJESTR ADRESU
REJESTR ADRESU
DEKODER WIERSZY
DEKODER WIERSZY
DRAM
DRAM
do wejścia
do wejścia
adresowego
adresowego
PAMIĆ DYNAMICZNA RAM (DRAM)
PAMIĆ DYNAMICZNA RAM (DRAM)
operacje odczytu
operacje odczytu
tc - minimalny czas pomiędzy dwoma cyklami
tc - minimalny czas pomiędzy dwoma cyklami
ta - czas dostępu
ta - czas dostępu
tD RAS-CAS - opóznienie sygnału CAS# względem RAS#
tD RAS-CAS - opóznienie sygnału CAS# względem RAS#
RAS#
RAS#
CAS#
CAS#
Wejścia
Wejścia
Adres
Adres
Adres Adres
Adres Adres
adresowe
adresowe
wiersza
wiersza
kolumny wiersza
kolumny wiersza
pamięci
pamięci
S
S
OE#
OE#
Wyjście
Wyjście
Ważne dane
Ważne dane
danych
danych
PAMIĆ DYNAMICZNA RAM (DRAM)
PAMIĆ DYNAMICZNA RAM (DRAM)
stany oczekiwania
stany oczekiwania
uśpienie uśpienie uśpienie
uśpienie uśpienie uśpienie
uśpienie
uśpienie
odczyt odczyt zapis
odczyt odczyt zapis
(0 oczekiwania) (1 oczekiwania) (1 oczekiwania)
(0 oczekiwania) (1 oczekiwania) (1 oczekiwania)
T2 Ti
T2
T1
Ti T1 T2 Ti T1 T2 T2 Ti
Ti T1 T2
Ti
T1 T2 T2
Ti T1 T2 T2
Ti
BCLK
BCLK
A23 - A0
A23 - A0
VA VA VA
VA VA VA
W/R#
W/R#
READY
READY
D15 - D0
D15 - D0
DI DI DO
DI DI DO
DO dane zapisywane
DO dane zapisywane
DI dane odczytywane
DI dane odczytywane
VA ważny adres
VA ważny adres
stan nieistotny
stan nieistotny
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 doładowaniu
Odświeżanie komórek pamięci dynamicznych polega na cyklicznym doładowaniu
pojemności pamiętających przechowujących wartość logiczną  1 .
pojemności pamiętających przechowujących wartość logiczną  1 .
Operacja odświeżania realizowana jest przez specjalistyczne układy logiczne,
Operacja odświeżania realizowana jest przez specjalistyczne układy logiczne,
będące elementem płyty głównej komputera.
będące elementem płyty głównej komputera.
Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych RAM:
Istnieją cztery podstawowe sposoby odświeżania pamięci 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
PAMIĆ KIESZENIOWA (STATYCZNA) RAM
PAMIĆ KIESZENIOWA (STATYCZNA) RAM
Zjawisko lokalności - procesor odwołuje się najczęściej do pamięci (trafienie) w
Zjawisko lokalności - procesor odwołuje się najczęściej do pamięci (trafienie) w
pewnym niewielkim obszarze (w okolicach danego programu) - bardzo rzadko do
pewnym niewielkim obszarze (w okolicach danego programu) - bardzo rzadko do
obszarów odległych. Stąd stosowanie szybkich pamięci kieszeniowych (cache)
obszarów odległych. Stąd stosowanie szybkich pamięci kieszeniowych (cache)
zawierających właśnie taki lokalny obszar pamięci.
zawierających właśnie taki lokalny obszar pamięci.
0 log2k q słów
0 log2k q słów
1
1
1 blok
1 blok
...
...
0
0
1
1
q-1
q-1
2
2
Nr bloku
Nr bloku
2 blok
2 blok
k-1 blok
k-1 blok
m-2
m-2
m-1
m-1
k-2 blok
k-2 blok
pamięć kieszeniowa
pamięć kieszeniowa
zawiera tylko m spośród k bloków (k>>m)
zawiera tylko m spośród k bloków (k>>m)
pamięć operacyjna
pamięć operacyjna
Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (chybienie)
Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (chybienie)
to następuje wymiana zawartości jednej komórki pamięci kieszeniowej.
to następuje wymiana zawartości jednej komórki pamięci kieszeniowej.
PAMIĆ KIESZENIOWA (STATYCZNA) RAM
PAMIĆ KIESZENIOWA (STATYCZNA) RAM
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 + log2k = 8*8 + log28193 = 64+13=77bitów
s=8*q + log2k = 8*8 + log28193 = 64+13=77bitów
H - współczynnik trafienia
H - współczynnik trafienia
0,9
0,9
q = 64
q = 64
q = 16
q = 16
q = 8
q = 8
0,6
0,6
0,3
0,3
pojemność pamięci
pojemność pamięci
kieszeniowej
kieszeniowej
5 kB 10 kB 15 kB 20 kB
5 kB 10 kB 15 kB 20 kB
PAMICI ROM
PAMICI ROM
Def. Pamięcią
Def. Pamięcią ROM (Read Only Memory) nazywamy pamięć półprzewodnikową
Def. PamięciąROM (Read Only Memory) nazywamy pamięć ółprzewodnikową
ROM (Read Only Memory) nazywamy pamięćppółprzewodnikową
o dostępie swobodnym przeznaczoną
o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio
o dostępie swobodnym przeznaczonątylko do odczytu uprzednio
tylko do odczytu uprzednio
zapisanych danych. Oznacza to, że nie można do niej zapisywać
zapisanych danych. Oznacza to, że nie można do niej zapisywać danych w
zapisanych danych. Oznacza to, że nie można do niej zapisywaćdanych w
danych w
trakcie normalnej pracy w systemie. ROM jest pamięcią
trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co
trakcie normalnej pracy w systemie. ROM jest pamięciąnieulotną, co
nieulotną, co
oznacza, że po wyłączeniu zasilania dane nie są
oznacza, że po wyłączeniu zasilania dane nie są tracone.
oznacza, że po wyłączeniu zasilania dane nie sątracone.
tracone.
" MROM (mascable ROM) zawartość pamięci ustalana jest w procesie produkcji
" MROM (mascable ROM) zawartość pamięci ustalana jest w procesie produkcji
(za pomocą odpowiednich masek) - BIOS do obsługi klawiatury
(za pomocą odpowiednich masek) - BIOS do obsługi klawiatury
" PROM (programmable ROM) pamięć jednokrotnie programowalna przez
" PROM (programmable ROM) pamięć jednokrotnie programowalna przez
użytkownika - obecnie nieużywana
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 elektrycznej (podobnie
" EEPROM pamięć kasowana i programowana na drodze elektrycznej (podobnie
jak RAM ale czas zapisu jest nieporównywalnie długi) - flash-BIOS
jak RAM ale czas zapisu jest nieporównywalnie długi) - flash-BIOS
(uaktualniany BIOS)
(uaktualniany BIOS)
dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
UKAADY I OPERACJE WEJŚCIA/WYJŚCIA
UKAADY I OPERACJE WEJŚCIA/WYJŚCIA
Układy wejścia/wyjścia
Układy wejścia/wyjścia
Operacje wejścia/wyjścia
Operacje wejścia/wyjścia
11
UKADY WEJŚCIA/WYJŚCIA
UKADY WEJŚCIA/WYJŚCIA
Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie
Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie
Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie
informacji pomiędzy mikroprocesorem i pamięcią
informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a
informacji pomiędzy mikroprocesorem i pamięciąsystemu z jednej strony a
systemu z jednej strony a
urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z
urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z
urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z
drugiej.
drugiej.
drugiej.
Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub
Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub
Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub
zespół
zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów
zespółrejestrów o określonych adresach oraz pewien zestaw sygnałów
rejestrów o określonych adresach oraz pewien zestaw sygnałów
sterujących.
sterujących.
sterujących.
UKADY WEJŚCIA/WYJŚCIA
UKADY WEJŚCIA/WYJŚCIA
Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądz
Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądz
przechowywania informacji lub być układami wykonawczymi.
przechowywania informacji lub być układami wykonawczymi.
Dlaczego konieczne jest pośredniczenie?
Dlaczego konieczne jest pośredniczenie?
" różnice w szybkości działania (konieczne jest więc sterowanie przepływem
" różnice w szybkości działania (konieczne jest więc sterowanie przepływem
informacji)
informacji)
" różnice w parametrach elektrycznych (konieczna więc translacja poziomu
" różnice w parametrach elektrycznych (konieczna więc translacja poziomu
sygnałów)
sygnałów)
" wymagają podania informacji o określonym formacie wraz z pewnymi
" wymagają podania informacji o określonym formacie wraz z pewnymi
sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją)
sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją)
Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące.
Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące.
UKADY WEJŚCIA/WYJŚCIA
UKADY WEJŚCIA/WYJŚCIA
WSPÓAADRESOWALNE Z PAMICI
WSPÓAADRESOWALNE Z PAMICI
Np. karta graficzna
Np. karta graficzna
PAMIĆ
PAMIĆ
I/O
I/O
CPU
CPU
OPERACYJNA
OPERACYJNA
MEMR MEMW MEMR MEMW MEMR MEMW
MEMR MEMW MEMR MEMW MEMR MEMW
Szyna adresowa
Szyna adresowa
Def. W przypadku układów współadresowalnych
Def. W przypadku układów współadresowalnych z pamięcią operacyjną
Def. W przypadku układów współadresowalnychz pamięcią operacyjną
z pamięciąoperacyjną
wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub
wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub
wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub
rejestr układu we/wy), za pomocą
rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w
rejestr układu we/wy), za pomocąadresu (istnieje potrzeba wydzielenia w
adresu (istnieje potrzeba wydzielenia w
pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są
pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są
pamięci 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.
wspólne dla pamięci i układów we/wy.
wspólne dla pamięci i układów we/wy.
UKADY WEJŚCIA/WYJŚCIA IZOLOWANE
UKADY WEJŚCIA/WYJŚCIA IZOLOWANE
Np. sterownik dysku
Np. sterownik dysku
PAMIĆ
PAMIĆ
I/O
I/O
CPU
CPU
twardego
twardego
OPERACYJNA
OPERACYJNA
MEMR
MEMR
IOR
IOR
MEMW
MEMW
MEMR MEMW IOR IOW
MEMR MEMW IOR IOW
IOW
IOW
Sygnały sterujące Sygnały sterujące dla
Sygnały sterujące Sygnały sterujące dla
dla pamięci układów we/wy
dla pamięci układów we/wy
Szyna adresowa
Szyna adresowa
Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy
Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy
Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy
operacji (komórka pamięci lub rejestr układu we/wy), za pomocą
operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów
operacji (komórka pamięci lub rejestr układu we/wy), za pomocąsygnałów
sygnałów
sterujących. Przestrzenie adresowe pamięci układów we/wy są
sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone
sterujących. Przestrzenie adresowe pamięci układów we/wy sąrozdzielone
rozdzielone
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
Def. Operacjami wejścia/wyjścia nazywamy całokształt działańpotrzebnych do
potrzebnych do
realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią
realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z
realizacji wymiany informacji pomiędzy mikroprocesorem i pamięciąz
z
jednej strony a układem wejścia/wyjścia z drugiej.
jednej strony a układem wejścia/wyjścia z drugiej.
jednej strony a układem 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 informacja
" od początku do końca przy udziale procesora - przesyłana informacja
przepływa przez rejestry procesora, który także steruje każdym krokiem
przepływa przez rejestry procesora, który także steruje każdym krokiem
realizacji operacji - są to operacje z bezpośrednim sterowaniem przez
realizacji operacji - są to operacje z bezpośrednim sterowaniem przez
mikroprocesor
mikroprocesor
" poprzez zainicjowanie operacji przez procesor, który następnie przekazuje
" poprzez zainicjowanie operacji przez procesor, który następnie przekazuje
nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są to
nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są to
operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim
operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim
dostępem do pamięci - DMA).
dostępem do pamięci - DMA).
OPERACJE Z BEZPOŚREDNIM
OPERACJE Z BEZPOŚREDNIM
STEROWANIEM PRZEZ MIKROPROCESOR
STEROWANIEM PRZEZ MIKROPROCESOR
Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor :
Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez 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ą
Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy
Def. Bezwarunkowąoperacją wejścia/wyjścia nazywamy takąoperację, przy
operacjąwejścia/wyjścia nazywamy taką operację, przy
realizacji której mikroprocesor nie sprawdza gotowości układu
realizacji której mikroprocesor nie sprawdza gotowości układu
realizacji której mikroprocesor nie sprawdza gotowości układu
wejścia/wyjścia do tej wymiany. Są
wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko
wejścia/wyjścia do tej wymiany. Sąto operacje najprostsze realizowane tylko
to operacje najprostsze realizowane tylko
w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji
w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji
w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji
za pomocą
za pomocą zestawu diod elektroluminescencyjnych.
za pomocązestawu diod elektroluminescencyjnych.
zestawu diod elektroluminescencyjnych.
Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu
Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu
Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu
wejścia/wyjścia, mikroprocesor sprawdza sygnał
wejścia/wyjścia, mikroprocesor sprawdza sygnał ((np. określony bit
np. określony bit
wejścia/wyjścia, mikroprocesor sprawdza sygnał(np. określony bit
kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia
kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia
kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia
gotowości do wymiany przez układ jest ona realizowana. Operacje te są
gotowości do wymiany przez układ jest ona realizowana. Operacje te są
gotowości do wymiany przez układ jest ona realizowana. Operacje te są
stosowane np. przy współpracy z przetwornikiem a/c - procesor cyklicznie
stosowane np. przy współpracy z przetwornikiem a/c -
stosowane np. przy współpracy z przetwornikiem a/c -procesor cyklicznie
procesor cyklicznie
przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania
przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania
przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania
zgłoszenia gotowości.
zgłoszenia gotowości.
zgłoszenia gotowości.
OPERACJE Z BEZPOŚREDNIM
OPERACJE Z BEZPOŚREDNIM
STEROWANIEM PRZEZ MIKROPROCESOR
STEROWANIEM PRZEZ MIKROPROCESOR
operacje z przerwaniem programu
operacje z przerwaniem programu
Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z
Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z
testowaniem stanu układu.
testowaniem stanu układu.
Procesor wykonuje program główny oczekując na zgłoszenie gotowości. Zgłoszenie powoduje
Procesor wykonuje program główny oczekując na zgłoszenie gotowości. Zgłoszenie powoduje
przerwanie wykonywania programu głównego i zapamiętanie informacji potrzebnej do
przerwanie wykonywania programu głównego i zapamiętanie informacji potrzebnej do
pózniejszego powrotu do programu głównego. Procesor przechodzi do wykonania programu
pózniejszego powrotu do programu głównego. Procesor przechodzi do wykonania programu
obsługi przerwań (ISR - interrupt service routine) - następuje wymiana informacji z układem
obsługi przerwań (ISR - interrupt service routine) - następuje wymiana informacji z układem
we/wy. Po zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje
we/wy. Po zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje
przerwany program główny.
przerwany program główny.
Program główny
INSTRUKCJA 1
INSTRUKCJA 1
Zgłoszenie
INSTRUKCJA 2
INSTRUKCJA 2
przerwania
INSTRUKCJA 3
INSTRUKCJA 3
INSTRUKCJA 4
INSTRUKCJA 4
INSTRUKCJA 11
INSTRUKCJA 11
INSTRUKCJA 12
INSTRUKCJA 12
Zapamiętanie
stanu rejestrów
procesora
Odtworzenie
stanu rejestrów
procesora
INSTRUKCJA 5
INSTRUKCJA 5
Początek programu
INSTRUKCJA 6
INSTRUKCJA 6
obsługi przerwania
INSTRUKCJA 7
INSTRUKCJA 7
INSTRUKCJA 8
INSTRUKCJA 8
INSTRUKCJA 9
INSTRUKCJA 9
RET 10
RET 10
OPERACJE Z BEZPOŚREDNIM
OPERACJE Z BEZPOŚREDNIM
STEROWANIEM PRZEZ MIKROPROCESOR
STEROWANIEM PRZEZ MIKROPROCESOR
operacje z przerwaniem programu
operacje z przerwaniem programu
W przypadku pojawienia się jednoczesnego kilku zgłoszeń od urządzeń we/wy
W przypadku pojawienia się jednoczesnego kilku zgłoszeń od urządzeń we/wy
sytuacja może się komplikować. Dlatego stosuje się tzw. sterownik przerwań.
sytuacja może się komplikować. Dlatego stosuje się tzw. sterownik przerwań.
Główne zadania sterownika przerwań:
Główne zadania sterownika przerwań:
" pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem
" pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem
i układami we/wy
i układami we/wy
" przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko
" przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko
jedno wejście zgłoszenia przerwań)
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 którym
" sygnalizowanie wyboru przez podanie adresu układu we/wy, z którym
zostanie dokonana wymiana (adresu programu obsługi przerwania
zostanie dokonana wymiana (adresu programu obsługi przerwania
realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów
realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów
przerwań)
przerwań)
" wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do procesora
" wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do procesora
OPERACJE Z BEZPOŚREDNIM
OPERACJE Z BEZPOŚREDNIM
STEROWANIEM PRZEZ MIKROPROCESOR
STEROWANIEM PRZEZ MIKROPROCESOR
operacje z przerwaniem programu - tablica wektorów przerwań
operacje z przerwaniem programu - tablica wektorów przerwań
Pamięć operacyjna
Pamięć operacyjna
Początek IRS
Początek IRS
Tablica
Tablica
wektorów
wektorów
przerwań
przerwań
Adres początku
Adres początku
CS
CS
programu
programu
IP obsługi
IP obsługi
Sterownik
Sterownik
przerwania
przerwania
CS
CS
przerwań Numer
przerwań
IP
IP
przerwania
CS
CS
IP
IP
CS
CS
IP
IP
CS
CS
IP
IP
OPERACJE Z POŚREDNIM STEROWANIEM
OPERACJE Z POŚREDNIM STEROWANIEM
PRZEZ MIKROPROCESOR (DMA)
PRZEZ MIKROPROCESOR (DMA)
Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i
Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i
Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i
przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem
przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem
przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem
DMA (direct
DMA (direct memory access) nazywamy operacją o bezpośrednim dostępie do
DMA (directmemory access) nazywamy operacjąo bezpośrednim dostępie do
memoryaccess) nazywamy operacją o bezpośrednim dostępie do
pamięci.
pamięci.
pamięci.
W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a wydzielonym
W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a wydzielonym
obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad
obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad
magistralami (za pomocą sygnału HOLD) procesor inicjuje operację i przechodzi w stan
magistralami (za pomocą sygnału HOLD) procesor inicjuje operację i przechodzi w stan
zawieszenia (odseparowanie się od magistral). Po zakończeniu transmisji sterownik DMA
zawieszenia (odseparowanie się od magistral). Po zakończeniu transmisji sterownik DMA
zwraca procesorowi kontrolę nad magistralami.
zwraca procesorowi kontrolę nad magistralami.
HOLD
HOLD
STEROWNIK
STEROWNIK
PAMIĆ
PAMIĆ
I/O
I/O
CPU
CPU
DMA
DMA
OPERACYJNA
OPERACYJNA
Inicjowanie
Inicjowanie
MEMR
MEMR
operacji
operacji
IOR
IOR
MEMW
MEMW
MEMR MEMW IOR IOW
MEMR MEMW IOR IOW
IOW
IOW
zawieszenie
zawieszenie
Określa:
Określa:
" wielkość bloku do transmisji
" wielkość bloku do transmisji
" sposób transmisji (blokowa,
" sposób transmisji (blokowa,
pojedynczymi słowami, na żądanie)
pojedynczymi słowami, na żądanie)
" adres pierwszej komórki bufora
" adres pierwszej komórki bufora
pamięci
pamięci
" rodzaj operacji (zapis, odczyt)
" rodzaj operacji (zapis, odczyt)
Szyna adresowa
Szyna adresowa
dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
PRACA PROCESORA W TRYBIE
PRACA PROCESORA W TRYBIE
RZECZYWISTYM I CHRONIONYM
RZECZYWISTYM I CHRONIONYM
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
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ć 220=1048576B=1MB pamięci operacyjnej
20 bitowy adres pozwala zaadresować 220=1048576B=1MB pamięci operacyjnej
dzielonej na segmenty
dzielonej na segmenty
początek segmentu wyznacza zawartość
początek segmentu wyznacza zawartość
PAMIĆ
PAMIĆ
rejestru segmentu programu CS*16 czyli
rejestru segmentu programu CS*16 czyli
Adres
Adres
0
0
0
00000H 15 0 3
3
00000H 15
0000
1011001001101101 0000
1011001001101101
Segment
Segment
rejestr CS
rejestr CS
programu
programu
(kodu)
(kodu)
początek segmentu wyznacza zawartość
początek segmentu wyznacza zawartość
rejestru segmentu danych DS*16 czyli
rejestru segmentu danych DS*16 czyli
0
0
3
0 3
15 0
15
Segment
Segment
rejestr DS
rejestr DS 0000
0000
danych
danych
1MB
1MB
początek segmentu wyznacza zawartość
początek segmentu wyznacza zawartość
rejestru segmentu stosu SS*16 czyli
rejestru segmentu stosu SS*16 czyli
Segment
Segment
0
0
3
0 3
15 0
15
stosu
stosu
rejestr SS
rejestr SS 0000
0000
początek segmentu wyznaczają zawartości rejestrów
Segment początek segmentu wyznaczają zawartości rejestrów
Segment
dodatkowych segmentów danych ES (GS, FS) *16
danych dodatkowych segmentów danych ES (GS, FS) *16
danych
czyli
dodatkowych czyli
dodatkowych
0
0
3
0 3
15 0
15
Adres
Adres
rejestr
rejestr
FFFFFH 0000
FFFFFH 0000
ES(GS,FS)
ES(GS,FS)
PRACA PROCESORA W TRYBIE RZECZYWISTYM
PRACA PROCESORA W TRYBIE RZECZYWISTYM
Część segmentowa adresu wyznacza adres segmentu, ale aby zaadresować określoną
Część segmentowa adresu wyznacza adres segmentu, ale aby zaadresować określoną
komórkę należy posługiwać się adresem fizycznym.
komórkę należy posługiwać się adresem 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 efektywny)
Adres fizyczny = część segmentowa *16 + przemieszczenie (tzw.adres efektywny)
rejestr segmentu programu
rejestr segmentu programu
0
0 3 0
0 3
15 0
15 15 0
15
rejestr
rejestr
adres efektywny
adres efektywny
0000
0000
segmentowy
segmentowy
CS=1011001001101101
CS=1011001001101101
IP=0100011111110011
IP=0100011111110011
wskaznik rozkazów
wskaznik rozkazów
+
+
CS 0000
CS 0000
10110010011011010000
10110010011011010000
IP
IP
+ +
+ + 0100011111110011
0100011111110011
0
19 0
19
ADRES
ADRES
10110110111011000011
adres fizyczny 10110110111011000011
adres fizyczny
FIZYCZNY
FIZYCZNY
B2D60
B2D60
+ 47F3
+ 47F3
0H=000B
0H=000B
B6EC3
B6EC3
PRACA PROCESORA W TRYBIE RZECZYWISTYM
PRACA PROCESORA W TRYBIE RZECZYWISTYM
O tym, które pary rejestrów segmentowych i wskaznikowych zostaną użyte do
O tym, które pary rejestrów segmentowych i wskaznikowych zostaną użyte do
określania adresu fizycznego nie decyduje przypadek lecz pewne reguły
określania adresu fizycznego nie decyduje przypadek lecz pewne reguły
wskaznik rozkazów (IP) zawsze: rejestr segmentu programu (CS)
wskaznik rozkazów (IP) zawsze: rejestr segmentu programu (CS)
!
!
wskaznik stosu (SP) zawsze: rejestr segmentu stosu (SS)
wskaznik stosu (SP) zawsze: rejestr segmentu stosu (SS)
!
!
wskaznik bazy (BP) rejestr segmentu stosu (SS)
wskaznik bazy (BP) rejestr segmentu stosu (SS)
!
!
pozostałe rejestry rejestr segmentu danych (DS)
pozostałe rejestry rejestr segmentu danych (DS)
!
!
rejestr indeksowy !
rejestr indeksowy ! rejestr dodatkowy (ES)
rejestr dodatkowy (ES)
przeznaczenia (DI)
przeznaczenia (DI)
PRACA PROCESORA W TRYBIE RZECZYWISTYM
PRACA PROCESORA W TRYBIE RZECZYWISTYM
Interpretacja adresu fizycznego:
Interpretacja adresu fizycznego:
" zawartość rejestru segmentowego *16 podaje adres początku segmentu
" zawartość rejestru segmentowego *16 podaje adres początku segmentu
" od tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnym
" od tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnym
" adres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kB
" adres efektywny jest 16 bitowy to pozwala zaadresować 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 16B bo
" okno to można przesuwać przeładowując rejestry segmentowe (skok 16B bo
mnożymy przez 16)
mnożymy przez 16)
początek segmentu (zawartość rejestru segmentowego*16)
początek segmentu (zawartość rejestru segmentowego*16)
PAMIĆ
PAMIĆ
Adres
Adres
00000H
00000H
początek segmentu
początek segmentu
(zawartość rejestru segmentowego*16)
(zawartość rejestru segmentowego*16)
przesunięcie adres efektywny)
przesunięcie adres efektywny)
1MB
1MB
adresowana
adresowana
komórka
komórka
pamięci
pamięci
okno przez które
okno przez które
widziana jest
widziana jest
pamięć
pamięć
Adres
Adres
FFFFFH
FFFFFH
64kB
64kB
PRACA PROCESORA W TRYBIE RZECZYWISTYM
PRACA PROCESORA W TRYBIE RZECZYWISTYM
Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie pokrywać.
Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie pokrywać.
Jest to sytuacja niepożądana - przyjęcie za bliskich adresów segmentowych może
Jest to sytuacja niepożądana - przyjęcie za bliskich adresów segmentowych może
spowodować np. zamazanie kodu programu przez zapisywane dane
spowodować np. zamazanie kodu programu przez zapisywane dane
PAMIĆ
PAMIĆ
CS=2A00H
CS=2A00H
Segment
Segment
programu (kodu)
programu (kodu)
DS=41FFH
DS=41FFH
Segment danych
Segment danych
SS=4FFFH
SS=4FFFH
Obszar wspólny danych, stosu i
Obszar wspólny danych, stosu i
danych dodatkowych
danych dodatkowych
Segment stosu i
Segment stosu i
Obszar wspólny stosu i danych
Obszar wspólny stosu i danych
danych
danych
dodatkowych dodatkowych
dodatkowych
dodatkowych
ES=4FFFH
ES=4FFFH
PRACA PROCESORA W TRYBIE RZECZYWISTYM
PRACA PROCESORA W TRYBIE RZECZYWISTYM
Segmenty pamięci komputera z procesorem 8086
Segmenty pamięci komputera z procesorem 8086
ADRES POCZTKU ADRES KOCCA
NUMER ZASTOSOWANIE
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 logiczny ! zawartość rejestru segmentowego: przesunięcie
adres logiczny ! zawartość rejestru segmentowego: przesunięcie
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 232=4GB pamięci
Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 232=4GB pamięci
w systemach z procesorem Pentium procesor rozpoczyna pracę w trybie rzeczywistym, a przejście z
w systemach z procesorem Pentium procesor rozpoczyna pracę w trybie rzeczywistym, a przejście z
trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez ustawienie bitu PE w rejestrze
trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez ustawienie bitu PE w rejestrze
MSW (jest częścią rejestru sterującego CR0).
MSW (jest częścią rejestru sterującego CR0).
Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. Wówczas pamięć
Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. Wówczas pamięć
masowa jest przedłużeniem pamięci operacyjnej.
masowa jest przedłużeniem pamięci operacyjnej.
Przypomnijmy:
Przypomnijmy:
Pamięć masowa (PM)
Pamięć masowa (PM)
! duża pojemność, wolne działanie, niski koszt
! duża pojemność, wolne działanie, niski koszt
Pamięć operacyjna
Pamięć operacyjna
! mała pojemność, szybkie działanie, wysoki koszt
! mała pojemność, szybkie działanie, wysoki koszt
(PAO)
(PAO)
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 (informacja o
" sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej (informacja o
segmentach przechowywana jest w tablicy deskryptorów)
segmentach przechowywana jest w tablicy deskryptorów)
" w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z dysku) do
" 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 informacji)
pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana informacji)
" obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - translacja adresu
" obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - translacja adresu
wirtualnego na fizyczny (przy pomocy tablicy deskryptorów)
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
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
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 segmenty
Dwuwymiarowa budowa adresu logicznego prowadzi do podziału pamięci na segmenty
zwanego segmentacją przestrzeni logicznej.
zwanego segmentacją przestrzeni logicznej.
Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 248 adresów
Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 248 adresów
tj. 256TB pamięci.
tj. 256TB pamięci.
Nie wszystkie jednak bajty części segmentowej są wykorzystane do adresowania:
Nie wszystkie jednak bajty części segmentowej są wykorzystane do adresowania:
" bajty 0 - 13 wyznaczają numer deskryptora segmentu (tak na prawdę jeden z tych bitów
" bajty 0 - 13 wyznaczają numer deskryptora segmentu (tak na prawdę jeden z tych bitów
określa typ tablicy deskryptorów - lokalny lub globalny) co pozwala na wybór 16k
określa typ tablicy deskryptorów - lokalny lub globalny) co pozwala na wybór 16k
deskryptorów segmentu
deskryptorów segmentu
" bajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do pamięci
" bajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do 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 występuje 8192 pól
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 zawiera następujące pola:
(tzw. deskryptorów segmentów). Każdy deskryptor zawiera następujące pola:
" adres bazowy segmentu (32 bity)
" adres bazowy segmentu (32 bity)
" wielkość segmentu (20 bitów) - segmenty nie muszą być jednakowe
" wielkość segmentu (20 bitów) - 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)
deskryptor segmentu
" długość słowa (1 bit) deskryptor segmentu
" długość słowa (1 bit)
" czy segment w pamięci (1 bit)
" czy segment w pamięci (1 bit)
deskryptor segmentu
deskryptor segmentu
" typ segmentu (3 bity)
" typ segmentu (3 bity)
" czy segment użyty (1 bit)
" czy segment użyty (1 bit)
deskryptor segmentu
deskryptor segmentu
Tablica deskryptorów
Tablica deskryptorów
...
...
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
Adres logiczny - 46 bitów
Adres logiczny - 46 bitów
15 13 0 31 0
15 13 0 31 0
Selektor segmentu Adres efektywny (przemieszczenie)
Selektor segmentu Adres efektywny (przemieszczenie)
PAMIĆ
PAMIĆ
OPERACYJNA (PAO)
OPERACYJNA (PAO)
Adres bazowy
Adres bazowy
deskryptor
deskryptor
+
+
Tablica deskryptorów
Tablica deskryptorów
Jeśli w deskryptorze istnieje adnotacja, że segmentu nie ma w
Jeśli w deskryptorze istnieje adnotacja, że segmentu nie ma w
PAO to segment jest przenoszony z pamięci masowej do
PAO to segment jest przenoszony z pamięci masowej do
operacyjnej w miejsce innego segmentu
operacyjnej w miejsce innego segmentu
Adres fizyczny
Adres fizyczny
segment
segment
segment
segment
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na
Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na
podstawie adresu logicznego
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 deskryptorów
2. Selektor wskazuje określony deskryptor segmentu w tablicy deskryptorów
3. Jedno z pól deskryptora określa czy segment jest obecny w PAO. Jeśli nie to
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 masowej.
następuje wczytanie segmentu do PAO z pamięci 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 procesor nie
Jeśli przemieszczenie będzie większe od wielkości segmentu to procesor nie
dopuści do zamazania sąsiednich segmentów przechodząc w tryb obsługi błędu
dopuści do zamazania sąsiednich segmentów przechodząc w tryb obsługi błędu
(tzw. wyjątek) - to jest przewaga trybu wirtualnego nad rzeczywistym
(tzw. wyjątek) - to jest przewaga trybu wirtualnego nad rzeczywistym
4. Odczytanie z deskryptora adresu bazowego i dodanie do niego przemieszczenia
4. Odczytanie z deskryptora adresu bazowego i dodanie do niego przemieszczenia
(adresu efektywnego) w celu określenia adresu fizycznego poszukiwanej komórki
(adresu efektywnego) w celu określenia adresu fizycznego poszukiwanej komórki
pamięci.
pamięci.
MECHANIZM PAMICI WIRTUALNEJ
MECHANIZM PAMICI WIRTUALNEJ
PODSUMOWANIE
PODSUMOWANIE
Mechanizm pamięci wirtualnej polega na tym, że nie cała przestrzeń adresów logicznych
Mechanizm pamięci wirtualnej polega na tym, że nie cała przestrzeń adresów logicznych
widzianych przez zadanie ma swoje oparcie w pamięci fizycznej.
widzianych przez zadanie ma swoje oparcie w pamięci fizycznej.
Przestrzeń adresów logicznych (selektor segmentu: przemieszczenie) odwołujących się
Przestrzeń adresów logicznych (selektor segmentu: przemieszczenie) odwołujących się
do potrzebnych zadaniu segmentów kodu, danych i stosu jest odwzorowywana na 4GB
do potrzebnych zadaniu segmentów kodu, danych i stosu jest odwzorowywana na 4GB
przestrzeń 32 bitowych adresów liniowych, z których wszystkie mogą być użyte w
przestrzeń 32 bitowych adresów liniowych, z których wszystkie mogą być użyte w
zadaniu.
zadaniu.
Jednak ta przestrzeń nie może być cała zrealizowana w fizycznej pamięci komputera.
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 część spośród nich jest
Dlatego w praktyce zostaje podzielona na 1M stron i tylko część spośród nich jest
jednocześnie przechowywana w pamięci fizycznej.
jednocześnie przechowywana w pamięci fizycznej.
Zarządzaniem przeładowywaniem stron pomiędzy dyskiem i pamięcią operacyjną zajmuje
Zarządzaniem przeładowywaniem stron pomiędzy dyskiem i pamięcią operacyjną zajmuje
się system operacyjny za pomocą funkcji wykonywanych przez procesor w trybie tzw.
się system operacyjny za pomocą funkcji wykonywanych przez procesor w trybie tzw.
wyjątku procesora (tzn. przerwania generowanego przez sam procesor).
wyjątku procesora (tzn. przerwania generowanego przez sam procesor).
PRACA WIELOZADANIOWA W SYSTEMIE JEDNOPROCESOROWYM
PRACA WIELOZADANIOWA W SYSTEMIE 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 zadań do:
Istnieje konieczność kontroli dostępu poszczególnych zadań do:
" informacji
" informacji
" zasobów systemu
" zasobów systemu
Wielozadaniowość może być realizowana programowo, ale
Wielozadaniowość może być realizowana programowo, ale
procesor Pentium realizuje to sprzętowo wykorzystując
procesor Pentium realizuje to sprzętowo wykorzystując
" systemowe segmenty stanu zadania (TSS)
" systemowe segmenty stanu zadania (TSS)
" rejestr zadań (TR)
" rejestr zadań (TR)
STRONICOWANIE
STRONICOWANIE
W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu segmentacji,
W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu segmentacji,
dostępny jest także mechanizm stronicowania.
dostępny jest także mechanizm stronicowania.
Mechanizm stronicowania pozwala na podział pamięci wirtualnej na strony o stałej
Mechanizm stronicowania pozwala na podział pamięci wirtualnej na strony o stałej
wielkości (4kB lub 4MB)
wielkości (4kB lub 4MB)
Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze sterującym CR0
Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze sterującym CR0
31 22 21 12
31 22 21 12 11 0
11 0
pozycja w katalogu stron pozycja w tablicy stron pozycja na stronie
pozycja w katalogu stron pozycja w tablicy stron pozycja na stronie
tabele stron
tabele stron 4kB strony w
4kB strony w
katalog stron
katalog stron
pamięci
pamięci
1 1
1 1
1
1
1
1
2
2
adres tablicy stron
adres tablicy stron
adres strony w pamięci adres strony w pamięci
adres strony w pamięci adres strony w pamięci
...
...
1024 1024
1024 1024
1024
1024
1024
1024
1
1
wybiera tabelę stron
wybiera tabelę stron
1M
1M
wybiera stronę w pamięci
wybiera stronę w pamięci
Mechanizm stronicowania wspomaga się pomocniczą pamięcią cache - przyspieszenie
Mechanizm stronicowania wspomaga się pomocniczą pamięcią cache - przyspieszenie
STRONICOWANIE
STRONICOWANIE
dla stron 4MB
dla stron 4MB
31 22 21 0
31 22 21 0
pozycja w katalogu stron pozycja na stronie
pozycja w katalogu stron pozycja na stronie
4MB strony w
4MB strony w
katalog stron
katalog stron
pamięci
pamięci
1
1
1
1
2
2
wybiera stronę w pamięci
wybiera stronę w pamięci
adres strony w pamięci
adres strony w pamięci
1024
1024
1k
1k
Dodatki
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
przykład dla procesora 80286 (najprostszy)
przykład dla procesora 80286 (najprostszy)
23 bitowy adres pozwala zaadresować 8MB pamięci wirtualnej przydzielonej realizowanemu programowi.
23 bitowy adres pozwala zaadresować 8MB pamięci wirtualnej przydzielonej realizowanemu programowi.
Pamięć operacyjna posiada 2MB pojemności (pomijając obszar na system operacyjny i tablicę
Pamięć operacyjna posiada 2MB pojemności (pomijając obszar na system operacyjny i tablicę
deskryptorów), więc adres fizyczny jest 21 bajtowy
deskryptorów), więc adres fizyczny jest 21 bajtowy
2 0
2 0 20 0
0 20
011 11111111111111111111
011 11111111111111111111
= 3FFFFFH
= 3FFFFFH
przesunięcie
przesunięcie
selektor
selektor
PAMIĆ
PAMIĆ
PAMIĆ
PAMIĆ
Adresy
Adresy
Adres bazowy w PAO 100000H
Numer bloku Adres bazowy w PAO 100000H
Numer bloku
MASOWA pamięci
MASOWA pamięci
OPERACYJNA
OPERACYJNA
000000H
000000H
5
5
+ FFFFFH
+ FFFFFH
000 Przesunięcie
000 Przesunięcie
1MB
1MB
1MB
1MB
0
0
0FFFFFH
0FFFFFH
100000H
100000H
3
3
001 1MB
001
1MB
1MB
1MB
Adres fizyczny =
Adres fizyczny =
1FFFFFH
1FFFFFH
1
1
1FFFFFH
1FFFFFH
010 1MB
010 1MB
2
2
Tablica deskryptorów
Tablica deskryptorów
1MB
011 1MB
011
3
3
Adres bazowy Bit NR deskryptora
w PAO obecności (nr bloku w PM)
100
100 1MB
1MB
4
4
0 000
101 0 001
101
1MB
1MB
5
5
0 010
100000H 1 011
110
110
1MB
1MB
6
6
0 100
000000H 1 101
Deskryptor bloku 3
111 Deskryptor bloku 3
111
7 1MB
7 1MB
0 110
Deskryptor bloku 5 0 111
Deskryptor bloku 5
20
20 0
0
8MB
8MB
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
przykład dla procesora 80286 (najprostszy)
przykład dla procesora 80286 (najprostszy)
Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego na
Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego na
podstawie 23 bitowego adresu wirtualnego
podstawie 23 bitowego adresu wirtualnego
1. Program odwołuje się do adresu wirtualnego 3FFFFFH składającego się z:
1. Program odwołuje się do adresu wirtualnego 3FFFFFH składającego się z:
" pola selektora: w którym bloku programu znajduje się informacja czyli
" pola selektora: w którym bloku programu znajduje się informacja czyli
którego deskryptora użyć?
którego deskryptora użyć?
" przesunięcia: jak daleko od początku bloku znajduje się informacja?
" przesunięcia: jak daleko od początku bloku znajduje się 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 przypadku
3. Czy blok nr 3 jest w PAO? Czy bit obecności jest równy  1 ? - w tym przypadku
jest !
jest !
Gdy nie ma to realizowane są dodatkowe czynności
Gdy nie ma to realizowane są dodatkowe czynności
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 wirtualnego
5. Do adresu bazowego dodawane jest przesunięcie z adresu wirtualnego
5. Otrzymany 21 bitowy adres jest adresem fizycznym w PAO, pod którym znajduje
5. Otrzymany 21 bitowy adres jest adresem fizycznym w PAO, pod którym znajduje
się poszukiwana informacja
się poszukiwana informacja
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
przykład dla procesora 80286 (najprostszy)
przykład dla procesora 80286 (najprostszy)
Algorytm dodatkowych czynności tworzenia (obliczania) 21 bitowego
Algorytm dodatkowych czynności tworzenia (obliczania) 21 bitowego
adresu fizycznego na podstawie 23 bitowego adresu wirtualnego
adresu fizycznego na podstawie 23 bitowego adresu wirtualnego
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
2 0
2 0 20 0
0 20
111 111100000000000000000
111 111100000000000000000
= 7F0000H
= 7F0000H
przesunięcie
przesunięcie
selektor
selektor
PAMIĆ
PAMIĆ
PAMIĆ
PAMIĆ
Adresy
Adresy
100000H
100000H
Numer bloku Adres bazowy w PAO
Numer bloku Adres bazowy w PAO
MASOWA pamięci
MASOWA pamięci
OPERACYJNA
OPERACYJNA
000000H
000000H
5
5
+ F0000H
+ F0000H
000
000
1MB Przesunięcie
1MB Przesunięcie
1MB
1MB
0
0
0FFFFFH
0FFFFFH
100000H
100000H
1MB
7 1MB
7
001 1MB
001
1MB Adres fizyczny =
Adres fizyczny =
1F0000H
1F0000H
1
1
1FFFFFH
1FFFFFH
010 1MB
010 1MB
2
2
Tablica deskryptorów
Tablica deskryptorów
1MB
011 1MB
011
3
3
Adres bazowy Bit NR deskryptora
w PAO obecności (nr bloku w PM)
100
100 1MB
1MB
4
4
0 000
101 0 001
101
1MB
1MB
5
5
0 010
100000H 0 011
110
110
1MB
1MB
6
6
0 100
000000H 1 101
111
111
7 1MB
7 1MB
0 110
100000H 1 111
20
20 0
0
8MB
8MB
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 deskryptorów jest
Selektorem wybierającym odpowiednią pozycję w tablicy deskryptorów jest
zawartość rejestru segmentowego (14 bitów a 2 bity określają poziom ochrony).
zawartość rejestru segmentowego (14 bitów a 2 bity określają poziom ochrony).
Umożliwia to wybór 214=16384=16k segmentów.
Umożliwia to wybór 214=16384=16k segmentów.
Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 232=4GB
Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 232=4GB
Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k x 4GB=64TB
Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k x 4GB=64TB
PAMIĆ
PAMIĆ
Adres logiczny- 46 bitów
Adres logiczny- 46 bitów
OPERACYJNA
OPERACYJNA
przesunięcie
przesunięcie
0
31 0
15 0 31 0
15 13 31
13 0 31
0
adres bazowy
adres bazowy
selektor
selektor
adres efektywny
adres efektywny
segmentu
segmentu
Deskryptor segmentu
Deskryptor segmentu
rejestr segmentowy
rejestr segmentowy
Tablica deskryptorów
Tablica deskryptorów
+
+
0
0
31
31
adres fizyczny
adres fizyczny
Koniec Dodatki
dr inż. Jacek FLOREK Instytut Informatyki
dr inż. Jacek FLOREK Instytut Informatyki
KONCEPCJA PAMICI PODRCZNEJ (CACHE)
KONCEPCJA PAMICI PODRCZNEJ (CACHE)
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
KONCEPCJA PAMICI PODRCZNEJ
KONCEPCJA PAMICI PODRCZNEJ
(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 energii i są
" pamięci statyczne są szybsze, droższe, pobierają więcej energii i są
trudniejsze do scalania
trudniejsze do scalania
" pamięci dynamiczne są wolniejsze, tańsze, pobierają mniej energii i
" pamięci dynamiczne są wolniejsze, tańsze, pobierają mniej energii i
są łatwiejsze do scalania
są łatwiejsze do scalania
Wniosek 1: nie jest możliwe zbudowanie całej pamięci operacyjnej z
Wniosek 1: nie jest możliwe zbudowanie całej pamięci operacyjnej z
pamięci statycznych, a pamięci dynamiczne są za wolne dla
pamięci statycznych, a pamięci dynamiczne są za wolne dla
współczesnych procesorów i częstotliwości zegara
współczesnych procesorów i częstotliwości zegara
Wniosek 2: wprowadza się dużą pamięć operacyjną (rzędu kilka lub
Wniosek 2: wprowadza się dużą pamięć operacyjną (rzędu kilka lub
kilkaset MB) zbudowaną z pamięci dynamicznych i małą (kilka
kilkaset MB) zbudowaną z pamięci dynamicznych i małą (kilka
kilkaset kB) pamięć podręczną - statyczną - znacznie szybszą
kilkaset kB) pamięć podręczną - statyczną - znacznie szybszą
(wraz ze sterownikiem)
(wraz ze sterownikiem)
Wniosek 3: dwa rodzaje architektury:
Wniosek 3: dwa rodzaje architektury:
" Look-trough
" Look-trough
" Look-aside
" Look-aside
ARCHITEKTURA LOOK-THROUGH
ARCHITEKTURA LOOK-THROUGH
MIKROPROCESOR
MIKROPROCESOR
W przypadku  trafienia
W przypadku  trafienia
główna magistrala danych
główna magistrala danych
nie jest wykorzystywana co
nie jest wykorzystywana co
Magistrala lokalna
Magistrala lokalna
dodatkowo przyspiesza
dodatkowo przyspiesza
pracę systemu (z magistrali
pracę systemu (z magistrali
W przypadku  chybienia
W przypadku  chybienia
głównej mogą w tym czasie
głównej mogą w tym czasie
wykorzystywana jest magistrala
wykorzystywana jest magistrala
CACHE
CACHE
korzystać inni zarządcy).
korzystać inni zarządcy).
główna z koniecznymi stanami
główna z koniecznymi stanami
oczekiwania
oczekiwania
ZARZDCA
ZARZDCA
MAGISTRAL
MAGISTRAL
PAMIĆ
PAMIĆ
OPERACYJNA
OPERACYJNA
ZARZDCA
ZARZDCA
MAGISTRAL
MAGISTRAL
Magistrala główna
Magistrala główna
ARCHITEKTURA LOOK-ASIDE
ARCHITEKTURA LOOK-ASIDE
W przypadku  trafienia
W przypadku  trafienia
i  chybienia główna
i  chybienia główna
MIKROPROCESOR
MIKROPROCESOR
magistrala danych jest
magistrala danych jest
stale wykorzystywana.
stale wykorzystywana.
CACHE
CACHE
PAMIĆ
PAMIĆ
OPERACYJNA
OPERACYJNA
ZARZDCA
ZARZDCA
MAGISTRAL
MAGISTRAL
Zalety:
Zalety:
" prostsza konstrukcja
" prostsza konstrukcja
" szybsza realizacja w
" szybsza realizacja w
przypadku chybienia
przypadku chybienia
Wady: ZARZDCA
Wady: ZARZDCA
" nawet przy trafieniu
" nawet przy trafieniu MAGISTRAL
MAGISTRAL
magistrala nie jest
magistrala nie jest
dostępna dla innych
dostępna dla innych
zarządców
zarządców
Magistrala główna
Magistrala główna
ELEMENTY SYSTEMU PAMICI CACHE
ELEMENTY SYSTEMU PAMICI CACHE
" Bank danych pamięci cache (pamięć danych)
" Bank danych pamięci cache (pamięć danych)
przechowuje, umożliwia zapisywanie i odczytywanie informacji
przechowuje, umożliwia zapisywanie i odczytywanie informacji
" Katalog pamięci cache (zwany TAG-RAMem)
" Katalog pamięci cache (zwany TAG-RAMem)
umożliwia szybkie sprawdzanie czy poszukiwana informacja znajduje
umożliwia szybkie sprawdzanie czy poszukiwana informacja znajduje
się w pamięci danych cache (konkretnie: czy dany adres jest
się w pamięci danych cache (konkretnie: czy dany adres jest
odwzorowany w pamięci cache)
odwzorowany w pamięci cache)
" Sterownik pamięci cache
" Sterownik pamięci cache
realizuje sprawdzenie adresu w katalogu pamięci cache, organizuje
realizuje sprawdzenie adresu w katalogu pamięci cache, organizuje
współpracę pamięci cache z systemem i zapewnia zgodność
współpracę pamięci cache z systemem i zapewnia zgodność
zawartości pamięci cache z pamięcią główną
zawartości pamięci cache z pamięcią główną
ZAPEWNIENIE ZGODNOŚCI PAMICI CACHE
ZAPEWNIENIE ZGODNOŚCI PAMICI CACHE
Przyczyny niezgodności:
Przyczyny niezgodności:
" nastąpił zapis do pamięci cache bez zapisu do pamięci głównej (w przypadku
" nastąpił zapis do pamięci cache bez zapisu do pamięci głównej (w przypadku
trafienia przy zapisie do pamięci)
trafienia przy zapisie do pamięci)
" nastąpił zapis do pamięci głównej bez zapisu do pamięci cache (gdy z
" 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ż procesor np.
magistrali głównej korzystał inny zarządca magistrali niż procesor np.
transmisja DMA do pamięci głównej)
transmisja DMA do pamięci głównej)
Strategie utrzymania zgodności:
Strategie utrzymania zgodności:
" Write-through (zapis do pamięci cache powoduje jednoczesny zapis do
" Write-through (zapis do pamięci cache powoduje jednoczesny zapis do
pamięci głównej - proste ale zmniejsza szybkość, bo zpisuje się informacje
pamięci głównej - proste ale zmniejsza szybkość, bo zpisuje się informacje
do wolnej pamięci głównej)
do wolnej pamięci głównej)
" Buforowane (opóznione) write-through (jak wyżej ale zapis do bufora i
" Buforowane (opóznione) write-through (jak wyżej ale zapis do bufora i
dopiero pózniej z bufora do pamięci głównej aby nie spowalniać pracy)
dopiero pózniej z bufora do pamięci głównej aby nie spowalniać pracy)
" Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie taka potrzeba
" Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie taka potrzeba
- operacje bardzo skomplikowane)
- operacje bardzo skomplikowane)
Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w pamięci cache,
Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w pamięci cache,
gdyż nie jest możliwe zapewnienie zgodności, np. obszar pamięci RAM karty
gdyż nie jest możliwe zapewnienie zgodności, np. obszar pamięci RAM karty
sieciowej, gdzie zapis może realizować procesor przez magistralę systemową jak i
sieciowej, gdzie zapis może realizować procesor przez magistralę systemową jak i
sterownik sieci (nie ma możliwości śledzenia magistrali sieci). W systemie muszą
sterownik sieci (nie ma możliwości śledzenia magistrali sieci). W systemie muszą
więc istnieć układy NCA (non-cachable access) uniemożliwiające niektóre zapisy do
więc istnieć układy NCA (non-cachable access) uniemożliwiające niektóre zapisy do
pamięci cache.
pamięci cache.
ORGANIZACJA PAMICI CACHE
ORGANIZACJA PAMICI CACHE
" Bank danych i katalog pamięci cache (TAG-
" Bank danych i katalog pamięci cache (TAG-
RAM) tworzą tzw. jednoblokową pamięć
RAM) tworzą tzw. jednoblokową pamięć
asocjacyjną
asocjacyjną
" Pamięć cache stanowi jeden blok
" Pamięć cache stanowi jeden blok
Zestaw 5
Zestaw 5
podzielony na zestawy
podzielony na zestawy
O4
O4
" Pamięć główna dzielona jest na strony o
" Pamięć główna dzielona jest na strony o
Dane 4 Zestaw 4
Dane 4 Zestaw 4
rozmiarze równym rozmiarowi bloku
rozmiarze równym rozmiarowi bloku
Strona 2
Strona 2
pamięci cache. Strony podobnie jak blok Zestaw 3
pamięci cache. Strony podobnie jak blok Zestaw 3
pamięci cache dzielone są na zestawy
pamięci cache dzielone są na zestawy
Zestaw 2
Zestaw 2
" Każdy zestaw w pamięci cache ma swoją
" Każdy zestaw w pamięci cache ma swoją
pozycję w katalogu (TAG-RAM) - zawiera Zestaw 1
pozycję w katalogu (TAG-RAM) - zawiera Zestaw 1
adres skąd pochodzi dany zestaw
adres skąd pochodzi dany zestaw
Zestaw 5
Zestaw 5
" Każdy zestaw jest wpisywany na miejsce w
" Każdy zestaw jest wpisywany na miejsce w
pamięci cache do zestawu o numerze
pamięci cache do zestawu o numerze
Zestaw 4
Zestaw 4
zgodnym z numerem zestawu w stronie
zgodnym z numerem zestawu w stronie
Zestaw 3
Zestaw 3
Strona 1
Strona 1
O3
O3
Dane 3 Zestaw 2
Dane 3 Zestaw 2
Strona 2 Dane 4
Strona 2 Dane 4
Zestaw 1
Zestaw 1
Zestaw 5
Zestaw 5
Zestaw 5
Zestaw 5
O2
O2
Dane 2
Dane 2
Strona 0 Dane 2 Zestaw 4
Strona 0 Dane 2 Zestaw 4
Zestaw 4
Zestaw 4
O1
O1
Dane 1
Dane 1
Strona 0 Dane 1
Strona 0 Dane 1
Zestaw 3 Strona 0
Zestaw 3 Strona 0
Zestaw 3
Zestaw 3
Zestaw 2
Zestaw 2
Strona 1 Dane 3
Strona 1 Dane 3
Zestaw 2
Zestaw 2
Zestaw 1
Zestaw 1
Zestaw 1
Zestaw 1
Katalog cache Bank cache Pamięć główna
Katalog cache Bank cache Pamięć główna
(TAG-RAM)
(TAG-RAM)
ORGANIZACJA PAMICI CACHE
ORGANIZACJA PAMICI CACHE
" Bank danych i katalog pamięci cache (TAG-RAM) tworzą tzw.
" Bank danych i katalog pamięci cache (TAG-RAM) tworzą tzw.
jednoblokową pamięć asocjacyjną
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 równym
" Pamięć główna dzielona jest na strony o rozmiarze równym
rozmiarowi bloku pamięci cache. Strony podobnie jak blok pamięci
rozmiarowi bloku pamięci cache. Strony podobnie jak blok pamięci
cache dzielone są na zestawy
cache dzielone są na zestawy
" Każdy zestaw w pamięci cache ma swoją pozycję w katalogu (TAG-
" Każdy zestaw w pamięci cache ma swoją pozycję w katalogu (TAG-
RAM) - zawiera adres skąd pochodzi dany zestaw
RAM) - zawiera adres skąd pochodzi dany zestaw
" Każdy zestaw jest wpisywany na miejsce w pamięci cache do
" Każdy zestaw jest wpisywany na miejsce w pamięci cache do
zestawu o numerze zgodnym z numerem zestawu w stronie
zestawu o numerze zgodnym z numerem zestawu w stronie
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- lovel 1),
" wewnątrz procesora - pamięć cache pierwszego poziomu (L1- 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 80486.
Pamięć tego typu pojawiła się po raz pierwszy w procesorach 80486.
Pamięć L2 jest znacznie większa od L1, dzięki czemu jeśli nie nastąpiło
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 trafienia do L2 (oczywiście
 trafienie w pamięci L1 to istnieje duża szansa trafienia do L2 (oczywiście
informacja z pamięci L1 znajduje się w pamięci L2) - przyspiesza to pracę
informacja z pamięci L1 znajduje się w pamięci L2) - przyspiesza to pracę
systemu.
systemu.
80486
80486
CACHE 1-go poziomu
CACHE 1-go poziomu
Sygnały sterujące
Sygnały sterujące
Blok sterowania magistralą
Blok sterowania magistralą
Układy
Układy
logiczne
logiczne
Magistrala lokalna
Magistrala lokalna
NCA
NCA
CACHE 2-go poziomu
CACHE 2-go poziomu
ZARZDCA
ZARZDCA
PAMIĆ
PAMIĆ
MAGISTRAL
MAGISTRAL
OPERACYJNA
OPERACYJNA
ZARZDCA
ZARZDCA
MAGISTRAL
MAGISTRAL
Sygnały sterujące
Sygnały sterujące
Magistrala główna
Magistrala główna


Wyszukiwarka

Podobne podstrony:
06 (184)
SK2
NAUKA 4 10 183 184
SK2
182 184
184 menu (2)
ReadMe (184)
SHSpec 184 620RC14 Rock Slams And Dirty Needles
12 (184)
184 185
demo cgi 184

więcej podobnych podstron