podstawy architektury komputera
DESCRIPTION
dr inż. Jacek FLOREK Instytut Informatyki. PODSTAWY ARCHITEKTURY KOMPUTERA. Specjalizowany układ cyfrowy a maszyna cyfrowa Struktura systemu mikroprocesorowego Bloki funkcjonalne - organizacja i architektura. 7. PRZETWARZANIE INFORMACJI. - PowerPoint PPT PresentationTRANSCRIPT
PODSTAWY ARCHITEKTURY KOMPUTERA PODSTAWY ARCHITEKTURY KOMPUTERA
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Specjalizowany układ cyfrowy a maszyna cyfrowaSpecjalizowany układ cyfrowy a maszyna cyfrowa
Struktura systemu mikroprocesorowegoStruktura systemu mikroprocesorowego
Bloki funkcjonalne - organizacja i architekturaBloki funkcjonalne - organizacja i architektura
7
PRZETWARZANIE INFORMACJIPRZETWARZANIE INFORMACJIWszelkie procesy zamierzonego przetwarzania informacji przebiegają według Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według ustalonego algorytmuustalonego algorytmu
DANE DANE POCZĄTKOWEPOCZĄTKOWE
WYNIKI WYNIKI KOŃCOWEKOŃCOWE
PROCES PROCES PRZETWARZANIAPRZETWARZANIA
ALGORYTMALGORYTM
Przetwarzanie informacji można zrealizować dwoma sposobami:Przetwarzanie informacji można zrealizować dwoma sposobami:• Specjalizowany układ cyfrowy:Specjalizowany układ cyfrowy:
• System mikroprocesorowy (maszyna cyfrowa):System mikroprocesorowy (maszyna cyfrowa):
SPECJALIZOWANYSPECJALIZOWANYUKŁAD CYFROWYUKŁAD CYFROWY
MASZYNA MASZYNA CYFROWACYFROWA
WYNIKIWYNIKI
PROGRAMPROGRAM
DANEDANE
DANEDANE
WYNIKIWYNIKI
ARCHITEKTURA MASZYNY CYFROWEJARCHITEKTURA MASZYNY CYFROWEJ
PAMIĘĆ PAMIĘĆ ZEWNĘTRZNAZEWNĘTRZNA
UKŁADY WY UKŁADY WY URZĄDZENIA URZĄDZENIA ZEWNĘTRZNEZEWNĘTRZNE
PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNA
BLOK BLOK PRZETWA-PRZETWA-
RZANIARZANIA
STEROWANIESTEROWANIE
UKŁADY WE UKŁADY WE URZĄDZENIA URZĄDZENIA ZEWNĘTRZNEZEWNĘTRZNE
MASZYNA CYFROWAMASZYNA CYFROWA
PROCESORPROCESOR
JEDNOSTKA CENTRALNAJEDNOSTKA CENTRALNA
WY
NIK
IW
YN
IKI
PR
OG
RA
MP
RO
GR
AM
DA
NE
DA
NE
......
URZ. URZ. ZEWN.ZEWN.
PROCESORPROCESOR PAMIĘCPAMIĘCUKŁADYUKŁADYWE/WYWE/WY
ZEGARZEGAR
SZYNA DANYCHSZYNA DANYCH
SZYNA ADRESOWASZYNA ADRESOWA
SZYNA STEROWANIASZYNA STEROWANIA
UŻYTKOWNIKUŻYTKOWNIK
DANEDANEPROGRAMYPROGRAMYWYNIKIWYNIKI
MONITORY, DRUKARKI, MONITORY, DRUKARKI, CZYTNIKI,...CZYTNIKI,...
SYSTEM MIKROPROCESOROWYSYSTEM MIKROPROCESOROWY
Centralna jednostka Centralna jednostka przetwarzająca (CPU)przetwarzająca (CPU)
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ć 2można zaadresować 22020 komórek komórek
Liczba linii określa długość Liczba linii określa długość 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)
Kilkanaście (kilkadziesiąt) liniiKilkanaście (kilkadziesiąt) linii
Uniwersalny układ Uniwersalny układ przetwarzający informację i przetwarzający informację i sterujący pracą pozostałych sterujący pracą pozostałych elementów systemuelementów systemu
ORGANIZACJA SYSTEMUORGANIZACJA SYSTEMU
» 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 kolejność wykonywanych rozkazów zależy od ich umieszczenia w programie (w kolejnych komórkach pamięci), a umieszczenia w programie (w kolejnych komórkach pamięci), a zmiana tej zasady może być wykonana tylko:zmiana tej 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. przez operatora np. resetreset
– procesor odczytuje kolejne rozkazy z pamięci wysyłając procesor odczytuje kolejne rozkazy z pamięci wysyłając odpowiednie adresyodpowiednie adresy
» Każde działanie wykonywane przez system jest wynikiem realizacji Każde działanie wykonywane przez system jest wynikiem realizacji określonego programu bądź jego fragmentuokreślonego programu bądź jego fragmentu
PROCESORPROCESOR PAMIĘĆPAMIĘĆ
AdresAdres
DaneDaneZapisZapis
11
22
33
33
44
PROCESORPROCESOR PAMIĘĆPAMIĘĆ
AdresAdres
DaneDaneOdczytOdczyt
11
22
33
44
PROCESORPROCESOR UKŁADUKŁADWY-WEWY-WE
AdresAdres
DaneDaneZapisZapis
11
22
33
44
PROCESORPROCESOR UKŁADUKŁADWY-WEWY-WE
AdresAdres
DaneDaneOdczytOdczyt
11
22
33
44
Z P
RO
CE
SO
RA
DO
PA
MIĘ
CI
Z P
RO
CE
SO
RA
DO
PA
MIĘ
CI
Z P
AM
IĘC
I D
O P
RO
CE
SO
RA
Z P
AM
IĘC
I D
O P
RO
CE
SO
RA
Z P
RO
CE
SO
RA
NA
WY
JŚC
IEZ
PR
OC
ES
OR
A N
A W
YJŚ
CIE
Z W
EJŚ
CIA
DO
PR
OC
ES
OR
AZ
WE
JŚC
IA D
O P
RO
CE
SO
RA
PRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYMPRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYM
ARCHITEKTURA PROCESORAARCHITEKTURA PROCESORA
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Schemat blokowy procesoraSchemat blokowy procesora
RejestryRejestry
Blok arytmetyczno-logiczny (ALU)Blok arytmetyczno-logiczny (ALU)
Układ sterowaniaUkład sterowania
8
SCHEMAT BLOKOWY PROCESORASCHEMAT BLOKOWY PROCESORA
ALUALU
JEDNOSTKA JEDNOSTKA WYKONAWCZAWYKONAWCZA
układ układ sterowaniasterowania
dek
od
erd
eko
der
rozk
azó
wro
zkaz
ów
reje
str
reje
str
rozk
azó
wro
zkaz
ów
rejestry części rejestry części wykonawczejwykonawczej
DANEDANE
PROGRAMPROGRAM
WYNIKIWYNIKI
wewnętrznewewnętrzne sygnały sygnały sterującesterujące zewnętrzne zewnętrzne
sygnały sygnały sterującesterujące
JEDNOSTKA JEDNOSTKA STERUJĄCASTERUJĄCA
Zadaniem jednostki wykonawczej jest Zadaniem jednostki wykonawczej jest wykonywanie operacji arytmetycznych i wykonywanie operacji arytmetycznych i logicznych w zależności od wewnętrznych logicznych w zależności od wewnętrznych sygnałów sterującychsygnałów sterujących
Jednostka sterująca z programu dekoduje Jednostka sterująca z programu dekoduje rozkaz i na jego podstawie generowane są rozkaz i na jego podstawie generowane są wewnętrzne i zewnętrzne sygnały wewnętrzne i zewnętrzne sygnały sterującesterujące
REJESTRYREJESTRY
dostępne programowodostępne programowo niedostępne programowoniedostępne programowo
(na przykładzie 8 bitowego procesora 8086/8088)(na przykładzie 8 bitowego procesora 8086/8088)
FLAGSFLAGS
AXAXAXAX
BXBX
CXCX
DXDX
SISI
DIDI
BPBP
SPSP
IPIP
CSCS
DSDS
ESES
SSSS
1515 00
771515 00
Rejestr Rejestr znaczników znaczników (flagowy(flagowy
Rejestry Rejestry powszechnegpowszechnego stosowaniao stosowania
Rejestry Rejestry wskaźnikowe wskaźnikowe i indeksowei indeksowe
Rejestry Rejestry segmentowesegmentowe
Wskaźnik Wskaźnik rozkazówrozkazów
OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF
OF - flaga nadmiaru (przepełnienia)OF - flaga nadmiaru (przepełnienia)
DF - flaga kierunkuDF - flaga kierunku
IF - flaga zezwolenia na przerwanieIF - flaga zezwolenia na przerwanieTF - flaga pracy krokowejTF - flaga pracy krokowej
SF - flaga znakuSF - flaga znakuZF - flaga zeraZF - flaga zera
AF - flaga przeniesienia pomocniczegoAF - flaga przeniesienia pomocniczegoPF - flaga parzystościPF - flaga parzystościCF - flaga przeniesieniaCF - flaga przeniesienia
AHAH ALAL
BHBH BLBL
CHCH CLCL
DHDH DLDL
Wskaźnik stosuWskaźnik stosu
Wskaźnik bazyWskaźnik bazy
Rejestr indeksowy Rejestr indeksowy przeznaczeniaprzeznaczenia
Rejestr indeksowy Rejestr indeksowy źródłaźródła
Rejestr danych Rejestr danych
Rejestr zliczający Rejestr zliczający
Rejestr bazowyRejestr bazowy
AkumulatorAkumulator
Rejestr programuRejestr programu
Rejestr danychRejestr danych
Rejestr dodatkowyRejestr dodatkowy
Rejestr stosuRejestr stosu
Znaczniki kontrolneZnaczniki kontrolne
Znaczniki stanuZnaczniki stanu
REJESTRYREJESTRY
Rejestr znaczników (flagowy)Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech - 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 rozkazuustawienie 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 jedynkiwartości jedynki
– ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zeroZF - 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ługiwykonaniu 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)
REJESTRYREJESTRY
Rejestry ogólnego przeznaczeniaRejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych - 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 akumulatorpewne funkcje specjalne. Szczególną funkcję pełni akumulator
AkumulatorAkumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów) - 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 Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci - są rejestrami wykorzystywanymi do adresowania pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentówoperacyjnej. 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.
Wskaźnik rozkazówWskaźnik rozkazów (wskaźnik instrukcji) - łącznie z rejestrem segmentowym CS adresuje (wskaźnik 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 programuprogramu
Rejestry wskaźnikowe i indeksoweRejestry wskaźnikowe i indeksowe - posiadają dwa rejestry wskaźnikowe i dwa rejestry - posiadają dwa rejestry wskaźnikowe i dwa rejestry indeksowe. indeksowe. Rejestry wskaźnikowe (SP, BP) są stosowane do adresowania danych w obrębie Rejestry wskaźnikowe (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.
REJESTRYREJESTRY
Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu Wskaźnik 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 wolnejpierwszej wolnejCzyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodziCzyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi
lublub
AdresProgram główny
101 Instrukcja102 Instrukcja103 Call
Wywołanie podprogramu I (adres 104 na stos)
1002 Instrukcja1003 Instrukcja1004 Call
Wywołanie podprogramu II(adres 1005 na stos)
2001 Instrukcja2002 Instrukcja2003 Return
1005 Instrukcja1006 Instrukcja1007 Return
Powrót z podprogramu II(do adresu 1005
odczytanego ze stosu)104 Instrukcja105 Instrukcja106 Instrukcja
Powrót z podprogramu I(do adresu 104
odczytanego ze stosu)107 Instrukcja
stosstos
stosstos
akumulator rejestr bazowy rejestr zliczający rejestr danych
wskaźnik stosu
wskaźnik bazy
rejestr indeksowy źródła
rejestr indeksowy przeznaczenia
rejestr danych
rejestr dodatkowy
rejestr stosu
rejestr programu wskaźnik rozkazów
rejestr flagowy (znaczników)
flaga parzystości
flaga przeniesienia pomocniczego
flaga zera
flaga zezwolenia na przerwanie
flaga nadmiaru
flaga kierunku
flaga znaku
flaga przeniesienia
Flaga (znacznik) symbol =1 =0Flaga nadmiaru OF OV NVFlaga kierunku DF DN UPFlaga zezwolenia na przerwanie IF EI DIFlaga znaku SF NG PLFlaga zera ZF ZR NZFlaga przeniesienia pomocniczego AF AC NAFlaga parzystości PF PE POFlaga przeniesienia CF CY NC
BLOK ARYTMETYCZNO-LOGICZNYBLOK ARYTMETYCZNO-LOGICZNY
Blok arytmetyczno-logiczny (ALU)Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który - 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.
AA00 - A - A33
BB00 - B - B33
SS00 - S - S33MM
FF00 - F - F33
AF
BAF
BAF
F
ABF
BF
BAF
BAF
BAF
BAF
BF
ABF
F
BAF
BAF
AF
1
0
)1(
)(
)(
2
)1(
)(
)1(
)1(
)(
1
)(
)(
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
CAF
CABAF
CAABF
CAF
CABF
CABBAF
CBAF
CABAF
CAF
CBAF
CBABAF
CBAAF
CF
CBAF
CBAF
CAF
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1111
0111
1011
0011
1101
0101
1001
0001
1110
0110
1010
0010
1100
0100
1000
0000
Lp. SLp. S00 - S - S3 3 M=0 M=1M=0 M=1
Sygnały sterujące do wyboru Sygnały sterujące do wyboru mikrooperacji logicznej (M=0) mikrooperacji logicznej (M=0) lub arytmetycznej (M=1)lub arytmetycznej (M=1)
Przykład 4 bitowego ALU SN74181Przykład 4 bitowego ALU SN74181
UKŁAD STEROWANIAUKŁAD 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 sekwencyjnegeneratory sekwencyjne
• układy mikroprogramowalneukłady mikroprogramowalne
ROZKAZY I TRYB ADRESOWANIAROZKAZY I TRYB ADRESOWANIA
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Cykl rozkazowyCykl rozkazowy
Lista i format rozkazuLista i format rozkazu
Tryb adresowaniaTryb adresowania
Sposób prezentowania rozkazuSposób prezentowania rozkazu
9
CYKL ROZKAZOWY PROCESORACYKL 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 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 rozkazui 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 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)cyklem rozkazowym (instrukcyjnym)
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 nazywa się 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.
Pam
ięć
Pam
ięć
CP
UC
PU
POBRANIE POBRANIE ROZKAZUROZKAZU
WYSŁANIE WYSŁANIE ADRESU ADRESU
ROZKAZUROZKAZU
DEKODOWADEKODOWANIENIE
ROZKAZUROZKAZU
OBLICZANIEOBLICZANIEADRESU ADRESU
ARGUMENTUARGUMENTUII
OBLICZANIEOBLICZANIEADRESU ADRESU
ARGUMENTUARGUMENTUIIII
WYKONANIE WYKONANIE ROZKAZUROZKAZU
OBLICZENIE OBLICZENIE ADRESU ADRESU
PRZEZNACZE-PRZEZNACZE-NIANIA
ZAPIS ZAPIS WYNIKUWYNIKU
POBRANIE POBRANIE ARGUMENTU ARGUMENTU
IIII
POBRANIE POBRANIE ARGUMENTU ARGUMENTU
II
cykl pobrania rozkazucykl pobrania rozkazu
cykl cykl pobrania pobrania
argumentu argumentu II
cykl cykl pobrania pobrania
argumentu argumentu IIII cykl zapisu wynikucykl zapisu wyniku
CYKL ROZKAZOWY PROCESORACYKL ROZKAZOWY PROCESORA
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 rozkazuodczyt kodu - pobranie rozkazu• odczyt jednego bajtu adresuodczyt jednego bajtu adresu• odczyt drugiego bajtu adresuodczyt drugiego bajtu adresu
Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazuJeż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 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 rozkazu 12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2 komórkach pamięci)umieścić w 2 komórkach pamięci)
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ów3. 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 rozkazrealizujących dany rozkaz
11
22
33
44
Cykl von NeumanaCykl von Neumana
w przypadku rozkazów wielobajtowych
PC(AD)PC(AD)
RRRR
kod kod rozkazurozkazu
kod kod rozkazurozkazu
kod kod rozkazurozkazu
kod kod rozkazurozkazu
kod kod rozkazurozkazu
procesorprocesorpamięćpamięć
szyn
a ad
reso
wa
szyn
a ad
reso
wa
szyn
a d
anyc
hsz
yna
dan
ych
MAPA PAMIĘCI
300 ładuj A adres 841301 adres 841302 ładuj B adres 915303 adres 915304 dodaj A+B305 zapisz pamięć adres 915306 adres 915
841 4
915 5
ZAWARTOŚĆ REJESTRÓW PROCESORA
Pobranie kodu rozkazu i 4 bitów adresu
Pobranie 16bitów adresu
Odczytargumentu
A 4B
ładuj A PC 300 301 302AD 300 301 841RR ładuj A ładuj A ładuj A
Pobranie kodu rozkazu i 4 bitów adresu
Pobranie 16bitów adresu
Odczytargumentu
A 4 4 4B 5
ładuj B PC 302 303 304AD 302 303 915RR ładuj B ładuj B ładuj BPobranie kodu rozkazuAB 5
dodaj PC 304AD 304RR dodaj
Pobranie kodu rozkazu i 4 bitów adresu
Pobranie 16bitów adresu
Odczytargumentu
A 9 9 9B 5 5 5
zapisz PC 305 306 307pamięć AD 305 306 915
RR zapisz zapisz zapisz
A Rejestr AB Rejestr BPC Licznik rozkazówAD Rejestr adresujący pamięćRR Rejestr rozkazów
16
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 Aodczyt 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ówdodanie obu argumentów• przesłanie wyniku do komórki pamięci o adresie 915przesłanie wyniku do komórki pamięci o adresie 915
LISTA ROZKAZÓWLISTA ROZKAZÓW
Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesoraktórej wykonania programista może zażądać od procesora
Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesoraktórej wykonania programista może zażądać od procesora
Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesormaszynowych (rozkazów), jakie potrafi wykonać dany procesor
Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesormaszynowych (rozkazów), jakie potrafi wykonać dany procesor
• rozkazy przesłańrozkazy przesłań• rozkazy arytmetyczne i logicznerozkazy 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)
Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w postaci kodów binarnychpostaci kodów binarnych
Adreskomórki
Zawartośćkomórki
0000 0000 1011 00010000 0001 0001 01010000 0010 1010 00000000 0011 0000 00000000 0100 0000 11110000 0101 0000 00000000 0110 1100 10000000 0111 1100 01100000 1000 1010 1010
--
0000 1111 0000 0010
MOV CL,5
MOV A, [B2,B3]
ADD CL,A
A=A+5
OUT [B2] PRINT
rozkazy w postaci kodów binarnychrozkazy w postaci kodów binarnych instrukcje maszynoweinstrukcje maszynowe instrukcje w FORTRANieinstrukcje w FORTRANie
FORMAT ROZKAZÓW I TRYB ADRESOWANIAFORMAT 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 kodzie rozkazukodzie rozkazu
Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazukodzie 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 rozkazupierwszym bajcie (bajtach) kodu rozkazu• może zawierać operandy i/lub adresy operandów wykonywanych operacjimoże zawierać operandy i/lub adresy operandów wykonywanych operacji
Def.2. Trybem adresowania nazywamy Def.2. Trybem adresowania nazywamy sposóbsposób określenia miejsca określenia miejsca przechowywania argumentów rozkazuprzechowywania argumentów rozkazu
Def.2. Trybem adresowania nazywamy Def.2. Trybem adresowania nazywamy sposóbsposób określenia miejsca określenia miejsca przechowywania argumentów rozkazuprzechowywania 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:• rejestrachrejestrach• pamięcipamięci• kodzie rozkazukodzie rozkazu
Rozróżniamy następujące tryby adresowaniaRozróżniamy następujące tryby adresowania
• adresowanie natychmiastoweadresowanie natychmiastowe
• adresowanie bezpośrednieadresowanie bezpośrednie
• adresowanie rejestroweadresowanie rejestrowe
• adresowanie pośrednieadresowanie pośrednie
• adresowanie indeksowe z przemieszczeniemadresowanie indeksowe z przemieszczeniem
TRYB ADRESOWANIATRYB ADRESOWANIA
Def.Przy Def.Przy adresowaniu natychmiastowymadresowaniu natychmiastowym argument rozkazu zawarty jest w argument rozkazu zawarty jest w kodzie rozkazukodzie rozkazu
Def.Przy Def.Przy adresowaniu natychmiastowymadresowaniu natychmiastowym argument rozkazu zawarty jest w argument rozkazu zawarty jest w kodzie rozkazukodzie 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 rozkazuKod rozkazu
Kod operacjiKod operacji
ArgumentArgument
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 rozkazupamięci, w której przechowywany jest argument rozkazu
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 rozkazupamię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 rozkazuKod rozkazuKod operacjiKod operacji
AdresAdres
ArgumentArgument
PA
MIĘ
ĆP
AM
IĘĆ
TRYB ADRESOWANIATRYB ADRESOWANIA
Def.Przy Def.Przy adresowaniu rejestrowymadresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr, w w kodzie rozkazu zawarty jest rejestr, w którym przechowywany jest argumentktórym przechowywany jest argument
Def.Przy Def.Przy adresowaniu rejestrowymadresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr, w w kodzie rozkazu zawarty jest rejestr, w którym przechowywany jest argumentktórym przechowywany jest argument
Zaletą tego trybu jest krótki kod i szybkie wykonanieZaletą tego trybu jest krótki kod i szybkie wykonanie
Kod Kod rozkazurozkazu Kod operacjiKod operacji Określenie Określenie
rejestrurejestruArgumentArgument
REJESTRREJESTR
Def.W trybie Def.W trybie adresowania pośredniego (rejestrowego pośredniego)adresowania pośredniego (rejestrowego pośredniego) kod kod rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej argumentsię adres komórki pamięci zawierającej argument
Def.W trybie Def.W trybie adresowania pośredniego (rejestrowego pośredniego)adresowania pośredniego (rejestrowego pośredniego) kod kod rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej argumentsię adres komórki pamięci zawierającej argument
AdresAdres
REJESTRREJESTR
ArgumentArgument
PA
MIĘ
ĆP
AM
IĘĆKod operacjiKod operacji Określenie Określenie
rejestrurejestru
Kod Kod rozkazurozkazu
TRYB ADRESOWANIATRYB ADRESOWANIA
Def.W trybie Def.W trybie adresowania indeksowego z przemieszczeniem adresowania indeksowego z przemieszczeniem adres adres 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 umieszczonej w kodzie rozkazu, zwanej przemieszczeniemumieszczonej w kodzie rozkazu, zwanej przemieszczeniem
Def.W trybie Def.W trybie adresowania indeksowego z przemieszczeniem adresowania indeksowego z przemieszczeniem adres adres 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 umieszczonej w kodzie rozkazu, zwanej przemieszczeniemumieszczonej w kodzie rozkazu, zwanej przemieszczeniem
Kod Kod rozkazurozkazu
Kod operacjiKod operacjiOkreślenie Określenie
rejestrurejestru wartośćwartość
REJESTRREJESTR
PrzemieszczeniePrzemieszczenie ArgumentArgument
PA
MIĘ
ĆP
AM
IĘĆ
SPOSÓB PREZENTOWANIA ROZKAZUSPOSÓB PREZENTOWANIA ROZKAZU
1. 1. Oznaczenie symboliczne rozkazuOznaczenie 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 asemblerzeprogramó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ówoperacji) i pola argumentów
JMP SHORT NEXTJMP SHORT NEXT
mnemonikmnemonik argumentargument
PAMIĘĆ ADRESY
11101011 00000000011 001
010011
NEXT Kolejny rozkaz 100101110
EB 03hEB 03h
argumentargumentkod operacjikod operacji
Kod rozkazu w kodzie Kod rozkazu w kodzie heksadecymalnymheksadecymalnym
Kod rozkazu binarnie Kod rozkazu binarnie (w pamięci)(w pamięci)
................................................................
SPOSÓB PREZENTOWANIA ROZKAZUSPOSÓB PREZENTOWANIA ROZKAZU
2. 2. Opis działania rozkazuOpis działania rozkazu
Jest możliwy w formie słownej lub symbolicznejJest 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 pamięci o adresie równym etykieta”etykieta” (u nas 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) (PC) + przesunięcie (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 ROZKAZUSPOSÓB PREZENTOWANIA ROZKAZU
3. 3. Format rozkazuFormat 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:
Kod rozkazuKod rozkazu1110101111101011
przemieszczenieprzemieszczenie
kod operacjikod operacji
argumentargument
4. 4. Ustawienie flagiUstawienie 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. 5. Szybkość wykonywania rozkazuSzybkość wykonywania rozkazu
Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych do wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz do wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz w 7 taktach.w 7 taktach.
PRZYKŁADOWE ROZKAZYPRZYKŁADOWE ROZKAZY
Rozkazy przesłań:Rozkazy przesłań:MOV - MOV - movemove - przesłanie słowa między dwoma rejestrami - przesłanie słowa między dwoma rejestramiSTR - STR - store store - przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięci- przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięciLD - LD - loadload - przesłanie słowa z pamięci do wskazanego rejestru - przesłanie słowa z pamięci do wskazanego rejestruXCH - XCH - exchange exchange - wymiana zawartości rejestrów - wymiana zawartości rejestrów
Rozkazy arytmetyczno-logiczne:Rozkazy arytmetyczno-logiczne:ADD - ADD - additionaddition - dodawanie - dodawanieSUB - SUB - subtraction subtraction - odejmowanie- odejmowanieMUL - MUL - multiplicationmultiplication - mnożenie - mnożenieDIV - DIV - division division - dzielenie- dzielenieNEG - NEG - negate negate - negacja- negacjaDEC - DEC - decrement decrement - zmniejszanie wartości o jeden- zmniejszanie wartości o jedenINC - INC - incrementincrement - awiększanie wartości o jeden - awiększanie wartości o jeden
Rozkazy sterujące pracą programu:Rozkazy sterujące pracą programu:JMP - JMP - jumpjump - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięci - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięciCALL - CALL - jump to subroutine jump to subroutine - wywołanie podprogramu- wywołanie podprogramuRET - RET - returnreturn - skok powrotny z podprogramu - skok powrotny z podprogramuSKIP - SKIP - skip skip - przeskok przez jeden rozkaz- przeskok przez jeden rozkaz
Rozkazy sterujące pracą procesora :Rozkazy sterujące pracą procesora :HALT - HALT - stopstop - zatrzymanie wykonania programu - zatrzymanie wykonania programuNOP - NOP - no operation no operation - rozkaz pusty- rozkaz pusty
AND - AND - conjuctionconjuction - iloczyn - iloczynOR - OR - disjunction disjunction - suma- sumaEXOR - EXOR - exclusive-ORexclusive-OR -suma mod 2 -suma mod 2NOT - NOT - complement complement - negacja- negacja
PAMIĘCIPAMIĘCI
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Podstawowe cechy i klasyfikacjaPodstawowe cechy i klasyfikacja
Pamięci RAMPamięci RAM
Pamięci dynamiczne RAMPamięci dynamiczne RAM
Pamięci ROMPamięci ROM
10
PARAMETRY PAMIĘCIPARAMETRY PAMIĘCI
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ść
• kosztkoszt
• pobór mocypobór mocy
Pojemność pamięciPojemność pamięci określa ilość informacji jaką można w niej przechować 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, 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. 32, 64 bity). Pojemność określa się podając liczbę słów i długość słowa, np.
512Kx64 - 2512Kx64 - 21919 słów 64-bitowych 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 PAMIĘCIPARAMETRY PAMIĘCI
Szybkość pamięciSzybkość pamięci określa jak często procesor (lub inne urządzenie) może z 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ęcimomentu, 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ęciKoszt pamięci określa cenę jaką należy ponieść za uzyskanie wysokich określa cenę jaką należy ponieść za uzyskanie wysokich
parametrów pamięci parametrów pamięci
szybciej - drożej !!!szybciej - drożej !!! wolniej - taniej !!!wolniej - taniej !!!
Pobór mocyPobór mocy określa jakie jest zapotrzebowanie 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ściprzy dążeniu do wzrostu jej pojemności !
PAMIĘCIPAMIĘCI
RejestrowaRejestrowa
KieszeniowaKieszeniowa
OperacyjnaOperacyjna
MasowaMasowa
ZewnętrznaZewnętrzna
Z dostępem swobodnym Z dostępem swobodnym (bezpośrednim)(bezpośrednim)
Z dostępem cyklicznymZ dostępem cyklicznym
Z dostępemZ dostępemsekwencyjnymsekwencyjnym
Z dostępemZ dostępemasocjacyjnymasocjacyjnym
ROMROM
RAMRAM
DRAMDRAM(dynamiczne)(dynamiczne)
SRAMSRAM(statyczne)(statyczne)
Hie
rarc
hia
pam
ięci
Hie
rarc
hia
pam
ięci
Do
stę
p d
o i
nfo
rmac
jiD
ost
ęp
do
in
form
acji
PAMIĘCI RAMPAMIĘCI RAM
Def. Pamięcią RAM (Def. Pamięcią RAM (Random Access MemoryRandom Access Memory) nazywamy pamięć ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu zasilania dane są tracone. zasilania dane są tracone.
Def. Pamięcią RAM (Def. Pamięcią RAM (Random Access MemoryRandom Access Memory) nazywamy pamięć ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu zasilania dane są tracone. zasilania dane są tracone.
PamięćPamięć22nn x m x m
adresadres
EE
zapis/odczytzapis/odczyt
nn
mm
Łączenie układów pamięci dla zwiększenia pojemności:Łączenie układów pamięci dla zwiększenia pojemności:
• zwiększanie długości słowazwiększanie długości słowa
• zwiększanie ilości słówzwiększanie ilości słów
PAMIĘCI RAMPAMIĘCI RAMzwiększanie długości słowa (rozbudowa szyny danych)zwiększanie długości słowa (rozbudowa szyny danych)
PamięćPamięć1M x 4b1M x 4b
adresadres
EEz/oz/o
2020
D0D0D1D1D2D2D3D3
PamięćPamięć1M x 1b1M x 1b
D0D0
Pamięć 4Mb z bitem parzystościPamięć 4Mb z bitem parzystości Pamięć 8Mb z bitem parzystościPamięć 8Mb z bitem parzystości
PamięćPamięć1M x 4b1M x 4b
adresadres
EEz/oz/o
2020
D0D0D1D1D2D2D3D3
PamięćPamięć1M x 1b1M x 1b
D0D0
PamięćPamięć1M x 4b1M x 4b
D0D0D1D1D2D2D3D3
D0 D1 D2 D3D0 D1 D2 D3
Sposób stosowany w budowie modułów SIMM (Sposób stosowany w budowie modułów SIMM (Single In Line ModuleSingle In Line Module))
D4 D5 D6 D7 D8D4 D5 D6 D7 D8
PAMIĘCI RAMPAMIĘCI RAMzwiększanie liczby słów (rozbudowa szyny adresowej)zwiększanie liczby słów (rozbudowa szyny adresowej)
PamięćPamięć256k x 4b256k x 4badresadres
EEz/oz/o
1818
D0D0D1D1D2D2D3D3
Pamięć 256k x 4bPamięć 256k x 4b
PamięćPamięć256k x 4b256k x 4b
DE
KO
DE
RD
EK
OD
ER
EE
z/oz/o
A0-
A17
A0-
A17
D0D0D1D1D2D2D3D3
Pamięć 1M x 4bPamięć 1M x 4b
PamięćPamięć256k x 4b256k x 4b
D0D0D1D1D2D2D3D3
PamięćPamięć256k x 4b256k x 4b
D0D0D1D1D2D2D3D3
PamięćPamięć256k x 4b256k x 4b
D0D0D1D1D2D2D3D3
D3 D2 D1 D0D3 D2 D1 D0
EE
EE
EE
1818
A18
A19
A18
A19
PAMIĘCI RAMPAMIĘCI RAMdynamiczne i statycznedynamiczne i statyczne
CECHY PAMIĘCICECHY PAMIĘCI DRAMDRAM SRAMSRAM
szybkośćszybkość małamała dużaduża
kosztkoszt niskiniski wysokiwysoki
pojemnośćpojemność dużaduża małamała
pobór mocypobór mocy małymały dużyduży
łatwość scalaniałatwość scalania dużaduża małamała
konieczność odświeżaniakonieczność odświeżania taktak nienie
główne zastosowaniegłówne zastosowanie główna pamięćgłówna pamięć pamięćpamięćoperacyjnaoperacyjna kieszeniowakieszeniowa
( (cachecache))
PAMIĘĆ DYNAMICZNA RAM (DRAM)PAMIĘĆ DYNAMICZNA RAM (DRAM)
adresadres danedane
RAS#RAS#
CAS#CAS#
WE#WE#
OE#OE#
CE#CE#
OE# - zezwolenie na odczytOE# - zezwolenie na odczytWE# - zezwolenie na zapisWE# - zezwolenie na zapisCE# - uaktywnianie (strob)CE# - uaktywnianie (strob)RAS# - syg.wprowadzania adresu do pamięci RAS# - syg.wprowadzania adresu do pamięci CAS# - -‘’- CAS# - -‘’- -‘’- -‘’- -‘’--‘’- -‘’- -‘’-
adresadres
RAS#RAS#
CAS#CAS#
DEKODER KOLUMNDEKODER KOLUMN
RE
JE
ST
R A
DR
ES
U
RE
JE
ST
R A
DR
ES
U
WIE
RS
ZA
WIE
RS
ZA
DE
KO
DE
R
WIE
RS
ZY
DE
KO
DE
R
WIE
RS
ZY
REJESTR ADRESU REJESTR ADRESU KOLUMNYKOLUMNY
0 dla aktywnego sygnału RAS#0 dla aktywnego sygnału RAS#1 dla aktywnego sygnału CAS#1 dla aktywnego sygnału CAS#
adres kolumnyadres kolumny
do
we
jśc
ia
do
we
jśc
ia
ad
res
ow
eg
o
ad
res
ow
eg
o
DR
AM
DR
AM
adres wierszadres wiersznn
2n2n nn
nn
SS
WE1WE1
WE0WE0
PAMIĘĆ DYNAMICZNA RAM (DRAM) PAMIĘĆ DYNAMICZNA RAM (DRAM) operacje odczytuoperacje odczytu
ttcc - - minimalny czas pomiędzy dwoma cyklamiminimalny czas pomiędzy dwoma cyklami
RAS#RAS#
ttaa - - czas dostępuczas dostępu
ttD RAS-CASD RAS-CAS - - opóźnienie sygnału CAS# względem RAS#opóźnienie sygnału CAS# względem RAS#
Wyjście Wyjście danychdanych
Adres Adres wierszawiersza
Ważne daneWażne dane
Adres Adres kolumnykolumny
Adres Adres wierszawiersza
CAS#CAS#
Wejścia Wejścia adresowe adresowe pamięcipamięci
SS
OE#OE#
PAMIĘĆ DYNAMICZNA RAM (DRAM)PAMIĘĆ DYNAMICZNA RAM (DRAM)stany oczekiwaniastany oczekiwania
BCLKBCLK
A23 - A0A23 - A0
W/R#W/R#
READYREADY
D15 - D0D15 - D0
TTii TTii TTii TTiiTT11 TT22 TT11 TT22 TT22 TT11 TT22 TT22
VAVA VAVA VAVA
odczytodczyt(0 oczekiwania(0 oczekiwania))
uśpienieuśpienie uśpienieuśpienie uśpienieuśpienie uśpienieuśpienie
odczytodczyt(1 oczekiwania(1 oczekiwania))
zapiszapis(1 oczekiwania(1 oczekiwania))
DO dane zapisywaneDO dane zapisywane
DI dane odczytywaneDI dane odczytywaneVA ważny adresVA ważny adres
stan nieistotnystan nieistotny
DIDI DIDI DODO
PAMIĘĆ DYNAMICZNA RAM (DRAM)PAMIĘĆ DYNAMICZNA RAM (DRAM)odświeżanieodś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 ukryteodświeżanie ukryte
• autoodświeżanieautoodświeżanie
PAMIĘĆ KIESZENIOWA (STATYCZNA) RAMPAMIĘĆ KIESZENIOWA (STATYCZNA) RAM
Zjawisko lokalnościZjawisko lokalności - procesor odwołuje się najczęściej do pamięci ( - procesor odwołuje się najczęściej do pamięci (trafienietrafienie) w ) 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.
0011
q-1q-1
1 blok1 blok
2 blok2 blok
k-1 blokk-1 blok
k-2 blokk-2 blok
...... 0011
m-1m-1
22
m-2m-2
q słówq słówloglog22kk
pamięć operacyjnapamięć operacyjna
pamięć kieszeniowapamięć kieszeniowazawiera tylko zawiera tylko mm spośród spośród k k bloków (k>>m) bloków (k>>m)
Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (chybieniechybienie) )
to następuje wymiana zawartości jednej komórki pamięci kieszeniowej. to następuje wymiana zawartości jednej komórki pamięci kieszeniowej.
Nr blokuNr bloku
PAMIĘĆ KIESZENIOWA (STATYCZNA) RAMPAMIĘĆ KIESZENIOWA (STATYCZNA) RAM
H - współczynnik trafieniaH - współczynnik trafienia
Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) tj. 8192*8 = 65536B = 64KBtj. 8192*8 = 65536B = 64KB
oraz pojemność pamięci kieszeniowej m=128 liniioraz 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 + logs=8*q + log22k = 8*8 + logk = 8*8 + log228193 = 64+13=77bitów8193 = 64+13=77bitów
q = 8q = 8
q = 64q = 64
q = 16q = 16
0,30,3
0,60,6
0,90,9
5 kB5 kB 10 kB10 kB 15 kB15 kB 20 kB20 kBpojemność pamięci pojemność pamięci kieszeniowejkieszeniowej
PAMIĘCI ROMPAMIĘCI ROM
Def. Pamięcią ROM (Def. Pamięcią ROM (Read Only MemoryRead Only Memory) nazywamy pamięć półprzewodnikową ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio 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 trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu zasilania dane nie są tracone. oznacza, że po wyłączeniu zasilania dane nie są tracone.
Def. Pamięcią ROM (Def. Pamięcią ROM (Read Only MemoryRead Only Memory) nazywamy pamięć półprzewodnikową ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio 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 trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu zasilania dane nie są tracone. oznacza, że po wyłączeniu zasilania dane nie są tracone.
• MROM (MROM (mascable ROMmascable ROM) zawartość pamięci ustalana jest w procesie produkcji ) 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 (PROM (programmable ROMprogrammable ROM) pamięć jednokrotnie programowalna przez ) pamięć jednokrotnie programowalna przez
użytkownika - obecnie nieużywanaużytkownika - obecnie nieużywana
• EPROM pamięć wielokrotnie programowalna w ultrafioletowych EPROM pamięć wielokrotnie programowalna w ultrafioletowych
programatorach - obecnie wychodzi z użyciaprogramatorach - 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)
UKŁADY I OPERACJE WEJŚCIA/WYJŚCIAUKŁADY I OPERACJE WEJŚCIA/WYJŚCIA
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Układy wejścia/wyjściaUkłady wejścia/wyjścia
Operacje wejścia/wyjściaOperacje wejścia/wyjścia
11
UKŁDY WEJŚCIA/WYJŚCIAUKŁDY 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 informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a informacji pomiędzy mikroprocesorem i pamięcią 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 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 zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących. sterujących.
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ą systemu z jednej strony a informacji pomiędzy mikroprocesorem i pamięcią 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 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 zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących. sterujących.
Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądź Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądź
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.
UKŁDY WEJŚCIA/WYJŚCIAUKŁDY WEJŚCIA/WYJŚCIA
UKŁDY WEJŚCIA/WYJŚCIA UKŁDY WEJŚCIA/WYJŚCIA WSPÓŁADRESOWALNE Z PAMIĘCIĄWSPÓŁADRESOWALNE Z PAMIĘCIĄ
Szyna adresowaSzyna adresowa
PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNACPUCPU I/OI/O
MEMR MEMWMEMR MEMW MEMR MEMWMEMR MEMW MEMR MEMWMEMR MEMW
Def. W przypadku układów współadresowalnych z pamięcią operacyjną Def. W przypadku układów współadresowalnych 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 rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w rejestr układu we/wy), za pomocą 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ą wspólne dla pamięci i układów we/wy.wspólne dla pamięci i układów we/wy.
Def. W przypadku układów współadresowalnych z pamięcią operacyjną Def. W przypadku układów współadresowalnych 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 rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w rejestr układu we/wy), za pomocą 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ą wspólne dla pamięci i układów we/wy.wspólne dla pamięci i układów we/wy.
Np. karta graficznaNp. karta graficzna
UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANEUKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE
Szyna adresowaSzyna adresowa
PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNACPUCPU I/OI/O
MEMR MEMR
MEMWMEMW MEMR MEMWMEMR MEMW IOR IOWIOR IOW
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ą sygnałów operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielonesterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone
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ą sygnałów operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielonesterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone
IOR IOR
IOWIOW
Sygnały sterujące Sygnały sterujące dla pamięcidla pamięci
Sygnały sterujące dla Sygnały sterujące dla układów we/wyukładów we/wy
Np. sterownik dysku Np. sterownik dysku twardegotwardego
OPERACJE WEJŚCIA/WYJŚCIAOPERACJE WEJŚCIA/WYJŚCIA
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 realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drugiej.jednej strony a układem wejścia/wyjścia z drugiej.
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 realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z 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 realizacji operacji - są to operacje z bezpośrednim sterowaniem przez operacje z bezpośrednim sterowaniem przez
mikroprocesormikroprocesor
• 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ą nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są
to to operacje z pośrednim sterowaniem przez mikroprocesor (z operacje z pośrednim sterowaniem przez mikroprocesor (z
bezpośrednim dostępem do pamięci - DMA)bezpośrednim dostępem do pamięci - DMA)..
OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM 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ściabezwarunkowe operacje wejścia/wyjścia
• operacje z testowaniem stanu układu wejścia/wyjściaoperacje z testowaniem stanu układu wejścia/wyjścia
• operacje z przerwaniem programuoperacje z przerwaniem programu
Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy Def. Bezwarunkową 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 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 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ą zestawu diod elektroluminescencyjnych.za pomocą zestawu diod elektroluminescencyjnych.
Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy Def. Bezwarunkową 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 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 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ą zestawu diod elektroluminescencyjnych.za pomocą 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 wejścia/wyjścia, mikroprocesor sprawdza sygnał (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 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 - procesor cyklicznie 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.
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ł (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 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 - procesor cyklicznie 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.
OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR
operacje z przerwaniem programuoperacje 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 Procesor wykonuje program głównyprogram główny oczekując na zgłoszenie gotowości. Zgłoszenie powoduje 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óźniejszego powrotu do programu głównego. Procesor przechodzi do wykonania późniejszego powrotu do programu głównego. Procesor przechodzi do wykonania programu programu obsługi przerwań obsługi przerwań ((ISR - interrupt service routineISR - interrupt service routine) - następuje wymiana informacji z układem ) - 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.
INSTRUKCJA 1INSTRUKCJA 1INSTRUKCJA 2INSTRUKCJA 2INSTRUKCJA 3INSTRUKCJA 3INSTRUKCJA 4INSTRUKCJA 4INSTRUKCJA 11INSTRUKCJA 11INSTRUKCJA 12INSTRUKCJA 12
INSTRUKCJA 5INSTRUKCJA 5INSTRUKCJA 6INSTRUKCJA 6INSTRUKCJA 7INSTRUKCJA 7INSTRUKCJA 8INSTRUKCJA 8INSTRUKCJA 9INSTRUKCJA 9
RET 10RET 10
Program główny
Zgłoszenie przerwania
Odtworzenie stanu rejestrów
procesora
Początek programu obsługi przerwania
Zapamiętanie stanu rejestrów procesora
OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR
operacje z przerwaniem programuoperacje 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. sytuacja może się komplikować. Dlatego stosuje się tzw. sterownik przerwań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/wyi 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żonewybó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 realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów tablicy wektorów
przerwańprzerwań))
• wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do
procesoraprocesora
OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR
operacje z przerwaniem programu - tablica wektorów przerwańoperacje z przerwaniem programu - tablica wektorów przerwań
Początek IRSPoczątek IRS
CSCSIPIPCSCSIPIPCSCSIPIP
Pamięć operacyjnaPamięć operacyjna
Numer przerwania
Adres początku Adres początku programu programu obsługi obsługi przerwaniaprzerwania
Tablica Tablica wektorów wektorów przerwańprzerwań
CSCSIPIPCSCSIPIP
Sterownik Sterownik przerwańprzerwań
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 przekazaniu sterowania specjalizowanemu układowi zwanemu przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem sterownikiem DMA (direct memory access) DMA (direct memory access) nazywamy operacją o bezpośrednim dostępie do nazywamy operacją o bezpośrednim dostępie do pamięci.pamięci.
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 przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem sterownikiem DMA (direct memory access) DMA (direct memory access) nazywamy operacją o bezpośrednim dostępie do nazywamy operacją o bezpośrednim dostępie do 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.
Szyna adresowaSzyna adresowa
PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNA
STEROWNIK STEROWNIK DMADMA
I/OI/O
MEMR MEMR
MEMWMEMW MEMR MEMWMEMR MEMW IOR IOWIOR IOWIOR IOR
IOWIOW
CPUCPU
HOLDHOLD
Inicjowanie Inicjowanie operacjioperacji
Określa:Określa:• wielkość bloku do transmisjiwielkość 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ęcipamięci• rodzaj operacji (zapis, odczyt) rodzaj operacji (zapis, odczyt)
zawieszeniezawieszenie
PRACA PROCESORA W TRYBIE PRACA PROCESORA W TRYBIE RZECZYWISTYM I CHRONIONYMRZECZYWISTYM I CHRONIONYM
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Praca procesora w trybie rzeczywistymPraca procesora w trybie rzeczywistym
Praca procesora w trybie chronionymPraca procesora w trybie chronionym
Praca wielozadaniowaPraca wielozadaniowa
StronicowanieStronicowanie
12
PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM
W typowym procesorze 16 bitowym (8086/88) mamy:W typowym procesorze 16 bitowym (8086/88) mamy:• rejestry 16 bitowerejestry 16 bitowe• magistrala danych 16 bitowamagistrala danych 16 bitowa• ale szyna adresowa 20 bitowa - adres 20 bitowyale szyna adresowa 20 bitowa - adres 20 bitowy
20 bitowy adres pozwala zaadresować 220 bitowy adres pozwala zaadresować 22020=1048576B=1MB pamięci operacyjnej =1048576B=1MB pamięci operacyjnej dzielonej na segmentydzielonej na segmenty
PAMIĘĆPAMIĘĆ
1MB1MB
Segment Segment programu programu
(kodu)(kodu)
Segment Segment danychdanych
Segment Segment stosustosu
Segment Segment danych danych
dodatkowychdodatkowych
początek segmentu wyznacza zawartość początek segmentu wyznacza zawartość rejestru segmentu programu CS*16 czylirejestru segmentu programu CS*16 czyli
rejestr CSrejestr CS0000000033001515 00
początek segmentu wyznacza zawartość początek segmentu wyznacza zawartość rejestru segmentu danych DS*16 czylirejestru segmentu danych DS*16 czyli
rejestr DSrejestr DS 00000000
33001515 00
10110010011011011011001001101101
początek segmentu wyznacza zawartość początek segmentu wyznacza zawartość rejestru segmentu stosu SS*16 czylirejestru segmentu stosu SS*16 czyli
rejestr SSrejestr SS 00000000
33001515 00
początek segmentu wyznaczają zawartości rejestrów początek segmentu wyznaczają zawartości rejestrów dodatkowych segmentów danych ES (GS, FS) *16 dodatkowych segmentów danych ES (GS, FS) *16 czyliczyli
rejestr rejestr ES(GS,FS)ES(GS,FS) 00000000
33001515 00
Adres Adres 0000000000HH
Adres Adres FFFFFFFFFFHH
PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA 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 rejestr segmentowysegmentowy 00000000
1515
CS=1011001001101101CS=1011001001101101
adres efektywnyadres efektywny
001515
IP=0100011111110011IP=0100011111110011
wskaźnik rozkazówwskaźnik rozkazów
rejestr segmentu programurejestr segmentu programu
++
adres fizycznyadres fizyczny
001919
1011001001101101000010110010011011010000
01000111111100110100011111110011
CSCS 00000000
IPIP++ ++
ADRES ADRES FIZYCZNYFIZYCZNY 1011011011101100001110110110111011000011
B2D60B2D60+ 47F3+ 47F3
B6EC3B6EC3 00HH=000=000BB
0 30 3 00
PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM
O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną użyte do O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną użyte do określania adresu fizycznego nie decyduje przypadek lecz pewne regułyokreślania adresu fizycznego nie decyduje przypadek lecz pewne reguły
wskaźnik rozkazów (IP)wskaźnik rozkazów (IP) zawsze: rejestr segmentu programu (CS)zawsze: rejestr segmentu programu (CS)
wskaźnik stosu (SP)wskaźnik stosu (SP) zawsze: rejestr segmentu stosu (SS)zawsze: rejestr segmentu stosu (SS)
wskaźnik bazy (BP)wskaźnik bazy (BP) rejestr segmentu stosu (SS)rejestr segmentu stosu (SS)
pozostałe rejestrypozostałe rejestry rejestr segmentu danych (DS)rejestr segmentu danych (DS)
rejestr indeksowy rejestr indeksowy przeznaczenia (DI)przeznaczenia (DI)
rejestr dodatkowy (ES)rejestr dodatkowy (ES)
PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM
Interpretacja adresu fizycznego:Interpretacja adresu fizycznego:• zawartość rejestru segmentowego *16 podaje adres początku segmentuzawartość rejestru segmentowego *16 podaje adres początku segmentu• od tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnymod tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnym• adres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kBadres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kB• pamięć jest widziana przez procesor jako 64kB oknopamięć 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ĘĆ
1MB1MB adresowana adresowana komórka komórka pamięcipamięci
Adres Adres 0000000000HH
Adres Adres FFFFFFFFFFHH
64
kB
64
kB
początek segmentu początek segmentu (zawartość rejestru segmentowego*16)(zawartość rejestru segmentowego*16)
przesunięcie adres efektywny)przesunięcie adres efektywny)
okno przez które okno przez które widziana jest widziana jest
pamięćpamięć
PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA 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 danespowodować np. zamazanie kodu programu przez zapisywane dane
PAMIĘĆPAMIĘĆ
Segment Segment programu (kodu)programu (kodu)
Segment danychSegment danych
Segment stosu i Segment stosu i danych danych
dodatkowychdodatkowych
CS=2A00CS=2A00HH
DS=41FFDS=41FFHH
SS=4FFFSS=4FFFHH
ES=4FFFES=4FFFHH
Obszar wspólny danych, stosu i Obszar wspólny danych, stosu i danych dodatkowychdanych dodatkowych
Obszar wspólny stosu i danych Obszar wspólny stosu i danych dodatkowychdodatkowych
PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM
Segmenty pamięci komputera z procesorem 8086Segmenty pamięci komputera z procesorem 8086
LOGICZNY FIZYCZNY LOGICZNY FIZYCZNY
0H 0000H:0000H 00000H 0000H:FFFFH 0FFFFH Programy użytkownika1H 1000H:0000H 10000H 1000H:FFFFH 1FFFFH Programy użytkownika2H 2000H:0000H 20000H 2000H:FFFFH 2FFFFH Programy użytkownika3H 3000H:0000H 30000H 3000H:FFFFH 3FFFFH Programy użytkownika4H 4000H:0000H 40000H 4000H:FFFFH 4FFFFH Programy użytkownika5H 5000H:0000H 50000H 5000H:FFFFH 5FFFFH Programy użytkownika6H 6000H:0000H 60000H 6000H:FFFFH 6FFFFH Programy użytkownika7H 7000H:0000H 70000H 7000H:FFFFH 7FFFFH Programy użytkownika8H 8000H:0000H 80000H 8000H:FFFFH 8FFFFH Programy użytkownika9H 9000H:0000H 90000H 9000H:FFFFH 9FFFFH Programy użytkownikaAH A000H:0000H A0000H A000H:FFFFH AFFFFH Pamięć ekranuBH B000H:0000H B0000H B000H:FFFFH BFFFFH Pamięć ekranuCH C000H:0000H C0000H C000H:FFFFH CFFFFH BIOS-rozszerzenieDH D000H:0000H D0000H D000H:FFFFH DFFFFH BIOS-rozszerzenieEH E000H:0000H E0000H E000H:FFFFH EFFFFH BIOSFH F000H:0000H F0000H F000H:FFFFH FFFFFH BIOS
ADRES POCZĄTKU ADRES KOŃCANUMER ZASTOSOWANIE
adres logiczny adres logiczny zawartość rejestru segmentowego: przesunięcie zawartość rejestru segmentowego: przesunięcie
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 2Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 2 3232=4GB pamięci=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.
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 masowejdo 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 operacyjnejposzukiwana informacja jest dostępna dla procesora z pamięci operacyjnej
Przypomnijmy:Przypomnijmy:
Pamięć masowa (PM)Pamięć masowa (PM)
Pamięć operacyjna Pamięć operacyjna (PAO)(PAO)
duża pojemność, wolne działanie, niski kosztduża pojemność, wolne działanie, niski koszt
mała pojemność, szybkie działanie, wysoki kosztmała pojemność, szybkie działanie, wysoki koszt
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 zwanego segmentacją przestrzeni logicznejsegmentacją przestrzeni logicznej..
Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 2Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 24848 adresów 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 segmentudeskryptorów segmentu
• bajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do pamięcibajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do pamięcii przestrzeń adresów widzianych przez program wynosi 64TBi 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)wielkość segmentu (20 bitów) - segmenty nie muszą być jednakowe - segmenty nie muszą być jednakowe• atrybutyatrybuty• czy segment obecny fizycznie w pamięci (1 bit)czy segment obecny fizycznie w pamięci (1 bit)• pole dostępne dla programu (1 bit)pole dostępne dla programu (1 bit)• poziom ochronny (2 bity)poziom ochronny (2 bity)• ziarnistość segmentu (1 bit)ziarnistość segmentu (1 bit)• długość słowa (1 bit)długość słowa (1 bit)• czy segment w pamięci (1 bit)czy segment w pamięci (1 bit)• typ segmentu (3 bity)typ segmentu (3 bity)• czy segment użyty (1 bit)czy segment użyty (1 bit)
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
deskryptor segmentudeskryptor segmentu
deskryptor segmentudeskryptor segmentu
deskryptor segmentudeskryptor segmentu
Tablica deskryptorówTablica deskryptorów
......
++
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
Selektor segmentuSelektor segmentu
0013131515
PAMIĘĆ PAMIĘĆ OPERACYJNA (PAO)OPERACYJNA (PAO)
Tablica deskryptorówTablica deskryptorów
deskryptordeskryptor
Adres efektywny (przemieszczenie)Adres efektywny (przemieszczenie)
003131
Adres bazowyAdres bazowy
seg
men
tse
gm
ent
seg
men
tse
gm
ent
Ad
res
fizy
czn
yA
dre
s fi
zycz
ny
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 segmentuoperacyjnej w miejsce innego segmentu
Adres logiczny - 46 bitówAdres logiczny - 46 bitów
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM
Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na podstawie adresu logicznegopodstawie 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 segmentuselektora segmentu• adresu efektywnego (przemieszczenia)adresu efektywnego (przemieszczenia)
2. Selektor wskazuje określony deskryptor segmentu w tablicy deskryptorów2. 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 bazowyadres początku segmentu = adres bazowy• adres końca segmentu = adres bazowy + wielkość segmentuadres 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 PAMIĘCI WIRTUALNEJMECHANIZM PAMIĘCI WIRTUALNEJPODSUMOWANIEPODSUMOWANIE
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 JEDNOPROCESOROWYMPRACA 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ę zadaniaupływu czas przeznaczonego na realizację zadania
• w którym chwilowo brak określonych informacjiw którym chwilowo brak określonych informacji
• żądania zmiany zadania przez użytkownikażądania zmiany zadania przez użytkownika
2. Zapamiętanie stanu realizacji zadania2. Zapamiętanie stanu realizacji zadania
3. Zmiana wykonywanego zadania3. Zmiana wykonywanego zadania
itd.....itd.....
Istnieje konieczność kontroli dostępu poszczególnych zadań do:Istnieje konieczność kontroli dostępu poszczególnych zadań do:
• informacjiinformacji
• zasobów systemuzasobó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)
STRONICOWANIESTRONICOWANIE
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 CR0Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze sterującym CR0
Mechanizm stronicowania wspomaga się pomocniczą pamięcią cache - przyspieszenieMechanizm stronicowania wspomaga się pomocniczą pamięcią cache - przyspieszenie
pozycja w katalogu stronpozycja w katalogu stron pozycja w tablicy stronpozycja w tablicy stron pozycja na stroniepozycja na stronie11111212 00212122223131
adres tablicy stronadres tablicy stron adres strony w pamięciadres strony w pamięci adres strony w pamięciadres strony w pamięci
wybiera tabelę stronwybiera tabelę stron
wybiera stronę w pamięciwybiera stronę w pamięci
katalog stronkatalog strontabele strontabele stron 4kB strony w 4kB strony w
pamięcipamięci
......
11
10241024
11 10241024
11
10241024
11
10241024
11
22
1M1M
STRONICOWANIESTRONICOWANIE
pozycja w katalogu stronpozycja w katalogu stron pozycja na stroniepozycja na stronie00212122223131
adres strony w pamięciadres strony w pamięci wybiera stronę w pamięciwybiera stronę w pamięci
katalog stronkatalog stron 4MB strony w 4MB strony w pamięcipamięci
11
10241024
dla stron 4MBdla stron 4MB
11
22
1k1k
Dodatki
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMprzykład dla procesora 80286 (najprostszy)przykład dla procesora 80286 (najprostszy)
Numer blokuNumer bloku
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
Deskryptor bloku 5Deskryptor bloku 5
000000
001001
010010
011011
100100
101101
110110
111111
011011
00
11
22
33
44
55
66
77
8M
B8
MB
PAMIĘĆPAMIĘĆ MASOWA MASOWA
1MB1MB
1MB1MB
55
33
PAMIĘĆPAMIĘĆ OPERACYJNA OPERACYJNA
Adres bazowy w PAO
Bit obecności
NR deskryptora (nr bloku w PM)
0 000
0 001
0 010
100000H 1 011
0 100
000000H 1 101
0 110
0 111
Deskryptor bloku 3Deskryptor bloku 3
2020 00
000000H000000H
0FFFFFH0FFFFFH100000H100000H
1FFFFFH1FFFFFH
Adresy Adresy pamięcipamięci
Tablica deskryptorówTablica deskryptorów
1111111111111111111111111111111111111111 = 3FFFFFH= 3FFFFFH
202022 0000
selektorselektor przesunięcieprzesunięcie
100000H100000H
FFFFFHFFFFFH++
1FFFFFH1FFFFFHAdres fizyczny =Adres fizyczny =
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 bajtowydeskryptorów), więc adres fizyczny jest 21 bajtowy
Adres bazowy w PAOAdres bazowy w PAO
PrzesunięciePrzesunięcie
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMprzykład dla procesora 80286 (najprostszy)przykład dla procesora 80286 (najprostszy)
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 32. 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 !
4. Odczytywany jest adres bazowy bloku w PAO4. Odczytywany jest adres bazowy bloku w PAO
5. Do adresu bazowego dodawane jest przesunięcie z adresu wirtualnego5. 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
Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego na Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego na podstawie 23 bitowego adresu wirtualnegopodstawie 23 bitowego adresu wirtualnego
Gdy nie ma to realizowane są dodatkowe Gdy nie ma to realizowane są dodatkowe czynnościczynności
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMprzykład dla procesora 80286 (najprostszy)przykład dla procesora 80286 (najprostszy)
3.1. Bloku nr 7 nie ma w PAO3.1. Bloku nr 7 nie ma w PAO3.2. Blok nr 7 wczytany jest do PAO w miejsce np. bloku nr 33.2. Blok nr 7 wczytany jest do PAO w miejsce np. bloku nr 33.3. Modyfikowane są deskryptory usuniętego i załadowanego bloku3.3. Modyfikowane są deskryptory usuniętego i załadowanego bloku
Algorytm dodatkowych czynności tworzenia (obliczania) 21 bitowego Algorytm dodatkowych czynności tworzenia (obliczania) 21 bitowego adresu fizycznego na podstawie 23 bitowego adresu wirtualnegoadresu fizycznego na podstawie 23 bitowego adresu wirtualnego
Numer blokuNumer bloku
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
1MB1MB
000000
001001
010010
011011
100100
101101
110110
111111
111111
00
11
22
33
44
55
66
77
8M
B8
MB
PAMIĘĆPAMIĘĆ MASOWA MASOWA
1MB1MB
1MB1MB
55
77
PAMIĘĆPAMIĘĆ OPERACYJNA OPERACYJNA
Adres bazowy w PAO
Bit obecności
NR deskryptora (nr bloku w PM)
0 000
0 001
0 010
100000H 0 011
0 100
000000H 1 101
0 110
100000H 1 111
2020 00
000000H000000H
0FFFFFH0FFFFFH100000H100000H
1FFFFFH1FFFFFH
Adresy Adresy pamięcipamięci
Tablica deskryptorówTablica deskryptorów
111100000000000000000111100000000000000000 = 7F0000H= 7F0000H
202022 0000
selektorselektor przesunięcieprzesunięcie
100000H100000H
F0000HF0000H++
1F0000H1F0000HAdres fizyczny =Adres fizyczny =
Adres bazowy w PAOAdres bazowy w PAO
PrzesunięciePrzesunięcie
PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMdla procesora Pentiumdla 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 2Umożliwia to wybór 21414=16384=16k segmentów.=16384=16k segmentów.
Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 2Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 23232=4GB=4GB
Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k xx 4GB=64TB 4GB=64TB
PAMIĘĆPAMIĘĆ OPERACYJNA OPERACYJNA
Tablica deskryptorówTablica deskryptorów
Deskryptor segmentuDeskryptor segmenturejestr segmentowyrejestr segmentowy
przesunięcieprzesunięcie3131001515 00
adres efektywnyadres efektywny
003131
++
adres fizycznyadres fizyczny
003131
1313
selektorselektor
Adres logiczny- 46 bitówAdres logiczny- 46 bitów
adres bazowy adres bazowy segmentusegmentu
Koniec Dodatki
KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)
dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki
Architektura komputera z pamięcią cacheArchitektura komputera z pamięcią cache
Elementy systemu pamięci cacheElementy systemu pamięci cache
Organizacja pamięci cacheOrganizacja pamięci cache
13
KONCEPCJA PAMIĘCI PODRĘCZNEJ KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)(CACHE)
Koncepcja ta jest podobna do koncepcji pamięci wirtualnej.Koncepcja ta jest podobna do koncepcji pamięci wirtualnej.
Przypomnijmy: Przypomnijmy:
• pamięci statyczne są szybsze, droższe, pobierają więcej energii i są pamięci statyczne są szybsze, droższe, pobierają więcej energii i są
trudniejsze do scalaniatrudniejsze 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 scalaniasą łatwiejsze do scalania
Wniosek 1Wniosek 1: nie jest możliwe zbudowanie całej pamięci operacyjnej z : 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 zegarawspółczesnych procesorów i częstotliwości zegara
Wniosek 2Wniosek 2: wprowadza się dużą pamięć operacyjną (rzędu kilka lub : 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 3Wniosek 3: dwa rodzaje architektury:: dwa rodzaje architektury:• Look-troughLook-trough• Look-asideLook-aside
ARCHITEKTURA LOOK-THROUGHARCHITEKTURA LOOK-THROUGH
W przypadku „chybienia”W przypadku „chybienia” wykorzystywana jest wykorzystywana jest magistrala główna z magistrala główna z koniecznymi stanami koniecznymi stanami oczekiwaniaoczekiwania
CACHECACHE
PAMIĘĆ PAMIĘĆ
OPERACYJNAOPERACYJNA
ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL
ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL
MIKROPROCESORMIKROPROCESORW przypadku „trafienia”W przypadku „trafienia” główna magistrala danych główna magistrala danych nie jest wykorzystywana co nie jest wykorzystywana co dodatkowo przyspiesza dodatkowo przyspiesza pracę systemu (z pracę systemu (z magistrali głównej mogą w magistrali głównej mogą w tym czasie korzystać inni tym czasie korzystać inni zarządcy).zarządcy).
Magistrala lokalnaMagistrala lokalna
Mag
istr
ala
głó
wn
aM
agis
tral
a g
łów
na
ARCHITEKTURA LOOK-ASIDEARCHITEKTURA LOOK-ASIDE
Zalety:Zalety:• prostsza konstrukcjaprostsza konstrukcja• szybsza realizacja w szybsza realizacja w
przypadku chybieniaprzypadku chybieniaWady:Wady:
• nawet przy trafieniu nawet przy trafieniu magistrala nie jest magistrala nie jest dostępna dla innych dostępna dla innych zarządcówzarządców
CACHECACHE
PAMIĘĆ PAMIĘĆ
OPERACYJNAOPERACYJNA
ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL
ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL
MIKROPROCESORMIKROPROCESOR
W przypadku W przypadku „trafienia” i „chybienia”„trafienia” i „chybienia” główna magistrala główna magistrala danych jest stale danych jest stale wykorzystywana.wykorzystywana.
Mag
istr
ala
głó
wn
aM
agis
tral
a g
łów
na
ELEMENTY SYSTEMU PAMIĘCI CACHEELEMENTY SYSTEMU PAMIĘCI CACHE
• Bank danych pamięci cacheBank danych pamięci cache (pamięć danych) (pamięć danych)
przechowuje, umożliwia zapisywanie i odczytywanie informacji przechowuje, umożliwia zapisywanie i odczytywanie informacji
• Katalog pamięci cacheKatalog pamięci cache (zwany TAG-RAMem) (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 cacheSterownik 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 PAMIĘCI CACHEZAPEWNIENIE ZGODNOŚCI PAMIĘCI 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óźnione) write-through (jak wyżej ale zapis do bufora i Buforowane (opóźnione) write-through (jak wyżej ale zapis do bufora i dopiero później z bufora do pamięci głównej aby nie spowalniać pracy)dopiero później 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 (więc istnieć układy NCA (non-cachable accessnon-cachable access) uniemożliwiające niektóre zapisy do ) uniemożliwiające niektóre zapisy do pamięci cache.pamięci cache.
ORGANIZACJA PAMIĘCI CACHEORGANIZACJA PAMIĘCI CACHE
Zestaw 1Zestaw 1
Strona 1Strona 1
Strona 0Strona 0
Strona 0Strona 0
Zestaw 2Zestaw 2
Zestaw 3Zestaw 3
Zestaw 4Zestaw 4
Zestaw 5Zestaw 5
Zestaw 1Zestaw 1
Zestaw 2Zestaw 2
Zestaw 3Zestaw 3
Zestaw 4Zestaw 4
Zestaw 5Zestaw 5
Zestaw 1Zestaw 1
Zestaw 2Zestaw 2
Zestaw 3Zestaw 3
Zestaw 4Zestaw 4
Zestaw 5Zestaw 5
Zestaw 1Zestaw 1
Zestaw 2Zestaw 2
Zestaw 3Zestaw 3
Zestaw 4Zestaw 4
Zestaw 5Zestaw 5
Strona 1Strona 1
Strona 0Strona 0
Strona 2Strona 2
Dane 1Dane 1
Dane 2Dane 2
Dane 3Dane 3
Dane 3Dane 3
Dane 2Dane 2
Dane 4Dane 4
Dane 1Dane 1O1O1
O2O2
O3O3
Katalog cache Katalog cache (TAG-RAM)(TAG-RAM)
Bank cacheBank cache
O4O4
Dane 4Dane 4Strona 2Strona 2
• 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 podzielony na zestawypodzielony na zestawy
• Pamięć główna dzielona jest na strony o Pamięć główna dzielona jest na strony o rozmiarze równym rozmiarowi bloku rozmiarze równym rozmiarowi bloku pamięci cache. Strony podobnie jak blok pamięci cache. Strony podobnie jak blok pamięci cache dzielone są na zestawypamięci cache dzielone są na zestawy
• Każdy zestaw w pamięci cache ma swoją Każdy zestaw w pamięci cache ma swoją pozycję w katalogu (TAG-RAM) - zawiera pozycję w katalogu (TAG-RAM) - zawiera adres skąd pochodzi dany zestawadres skąd pochodzi dany zestaw
• 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 zgodnym z numerem zestawu w stroniezgodnym z numerem zestawu w stronie
Pamięć głównaPamięć główna
ORGANIZACJA PAMIĘCI CACHEORGANIZACJA PAMIĘCI 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 zestawyPamięć 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 zestawycache 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 zestawRAM) - 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 stroniezestawu o numerze zgodnym z numerem zestawu w stronie
PAMIĘĆ CACHE DRUGIEGO POZIOMUPAMIĘĆ 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.
PAMIĘĆ PAMIĘĆ
OPERACYJNAOPERACYJNA
ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL
ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL
8048680486
Ma
gis
tra
la g
łów
na
Ma
gis
tra
la g
łów
na
CACHE 1-go poziomuCACHE 1-go poziomu
Blok sterowania magistraląBlok sterowania magistralą
Syg
nał
y st
eru
jące
Syg
nał
y st
eru
jące
CACHE 2-go poziomuCACHE 2-go poziomu
Magistrala lokalnaMagistrala lokalna
Układy Układy logiczne logiczne
NCANCA
Sygnały sterująceSygnały sterujące