Transcript pobierz

Bibliografia:
Urządzenia techniki
komputerowej, K. Wojtuszkiewicz
pl.wikipedia.org
www.intel.com
Procesory rodziny
Intel
Opracował: Andrzej
Nowak
Podstawowe własności
procesora Pentium
Podstawowe własności procesora Pentium
•
64 – bitowa magistrala danych i 32 –
bitowa magistrala adresowa.
•
Praca w trzech trybach
1. tryb rzeczywisty
2. chroniony tryb wirtualny
3. tryb wirtualny 8086
Podstawowe własności procesora Pentium
• Sprzętowe mechanizmy ułatwiające
projektowanie systemów operacyjnych,
wspomagające:
1. pamięć wirtualną
2. pamięć wielozadaniową
3. ochronę zasobów
• Architektura superskalarna:
1. praca potokowa
2. dwa potoki przetwarzania instrukcji
stałoprzecinkowych
• Przewidywanie realizacji rozgałęzień
programu
Podstawowe własności procesora Pentium
• Segmentacja i stronicowanie pamięci
• Wewnętrzna jednostka arytmetyki
zmiennoprzecinkowej pracująca w trybie
potokowym
• Dwie wewnętrzne, rozdzielone pamięci
podręczne (cache)
1. pamięć cache dla danych (ang. data cache)
2. pamięć cache dla kodu programu (ang. code cache,
instruction cache)
• Możliwości współpracy z pamięcią cache
drugiego poziomu
Schemat blokowy
procesora Pentium
Schemat blokowy procesora Pentium
MMU
DB
AB
CB
Data cache
Code cache
Stronicowanie
Data TLB
Stronicowanie
Code TLB
Układ generacji
adresu
64
Potok U
32
Potok V
ALU potoku U
BIU
Rejestry
Prefetcher + BTB
Potok U
Potok V
Kolejka
Kolejka
(64 B)
(64 B)
Dekoder
poziom 1
ALU potoku V
NPU
poziom 2
Układ sterowania
ROM
Schemat blokowy procesora Pentium - opis
Data cache – blok pamięci przeznaczony do
przechowywania danych i wyników
działania programu.
Code cache – blok pamięci zawierający kody
instrukcji wykonywanego programu
Zastosowanie rozdzielonych pamięci
danych i programu umożliwia jednoczesne
pobieranie kodu instrukcji i zapis/odczyt
danych.
Schemat blokowy procesora Pentium - opis
Prefetcher – (układ wstępnego pobierania
instrukcji) ma za zadanie wcześniejsze
pobieranie kodów instrukcji programu i
umieszczanie ich w kolejce rozkazów.
BTB – bufor rozgałęzień (ang. Branch Target Buffer)
jest częścią układu przewidywania
realizacji rozgałęzień.
Potok U i V – układy przetwarzające
instrukcje potokowo, tzn. w ustalonej
kolejności.
Schemat blokowy procesora Pentium - opis
Dekoder – układ dekodowania instrukcji,
zawiera dwa dekodery, osobny dla potoku U
i osobny dla potoku V. Współpracują one z
kolejkami rozkazów wypełnianymi przez
układ prefetchera.
Układ generacji adresu – służy do
generowania adresu fizycznego zarówno w
trybie rzeczywistym, jak i chronionym.
MMU – jednostka zarządzania pamięcią
współpracująca z układem generacji adresu
w trybie chronionym.
Schemat blokowy procesora Pentium - opis
Układy stronicowania TLB – (ang. Translation
Look-aside Buffer) umożliwiają efektywną
obsługę pamięci w trybie stronicowania
Blok wewnętrznego koprocesora
arytmetycznego NPU – realizuje
wszelkie operacje arytmetyki
zmiennoprzecinkowej.
BIU – jednostka sterowania magistralami,
zapewniająca komunikację procesora z
otoczeniem.
Magistrale zewnętrzne
procesora Pentium
Magistrale zewnętrzne procesora Pentium
Procesor ma 64-bitową magistralę danych i 32
bitową magistrale adresową
Magistrale danych można traktować jako
zestaw ośmiu ścieżek bajtowych (8 –
bitowych). Można nią przesyłać dane 8, 16,
24, 32, i 64-bitowe.
Przesyłanie może następować po dowolnym
zestawie ścieżek, pod warunkiem że ścieżki
te przylegają do siebie.
Przesyłanie 24 bitowe będzie występować w
przypadku przesyłania dwusłowa (słowa 32bitowego) położonego na granicy
czterosłowa.
Magistrale zewnętrzne procesora Pentium
Do magistrali adresowej należą wyprowadzenia
A31-A3 oraz BE7#-BE0#.
Wewnątrz procesora generowany jest 32-bitowy
adres A31-A0. Na zewnątrz wyprowadzane
są jednak tylko bity A31-A3. Wybierają one
określone czterosłowy (8-bajtów).
Pozostałe bity adresu oraz wielkość przesyłanej
danej decydują o tym, które sygnały BEx#
zostaną uaktywnione. Powoduje to
uaktywnienie określonych bajtów czterosłowa
i przesłanie ich odpowiadającymi im
ścieżkami magistrali danych.
Magistrale zewnętrzne procesora Pentium
Magistrale zewnętrzne procesora Pentium
Blok sterowania
magistralami (BIU)
Blok sterowania magistralami (BIU)
W bloku sterowania magistralami możemy
wyróżnić następujące układy:
• bufor magistrali danych (transcivery)
• układy wejściowe i wyjściowe magistrali
adresowej
• bufory zapisu
• układy sterowania rodzajem cyklu
magistrali (standardowy lub burst)
Blok sterowania magistralami (BIU)
• sygnały sterowania dostępem do
magistral
• układy komunikacji z zewnętrzną
pamięcią cache
• sygnały komunikacji z wewnętrzną
pamięcią cache
• układy generacji i kontroli parzystości
Część wykonawcza
Część wykonawcza
Część wykonawcza zawiera dwie
32-bitowe jednostki
arytmetyczno logiczne i zestaw
współpracujących z nią
rejestrów.
Tworzą one następujące grupy:
Część wykonawcza
1. Rejestry ogólnego przeznaczenia EAX,
EBX, ECX, EDX, EBP, EDI, ESI, ESP. Są
to rejestry 32-bitowe, jednak każdy z nich
zawiera rejestry AX, BX, CX i DX będące
rejestrami 16-bitowymi. Każdy z nich może
być z kolei używany jako dwa oddzielne
rejestry 8-bitowe. Noszą one wówczas
przykładowo oznaczenia AH, AL., BH, BL.
Każdy z wymienionych rejestrów może
zawierać dane, na których wykonujemy
obliczenia (czyli operandy) oraz wyniki
obliczeń.
Część wykonawcza
Ponadto poszczególne rejestry pełnią
pewne dodatkowe funkcje.
EAX – jest akumulatorem – pośredniczy w
wymianie informacji z układami wejścia /
wyjścia
EBX (ang. base register) – może być
używany jako rejestr bazowy w
adresowaniu pośrednim
ECX (ang. Count register) – może pełnić
rolę licznika w instrukcji pętli
Część wykonawcza
•
Rejestry EBP zwany wskaźnikiem bazy
(ang. base pointer) oprócz
przechowywania danych i wyników,
umożliwia operacje na stosie bez zmiany
zawartości rejestru ESP.
Jest to wykorzystywane do przekazywania
poprzez stos argumentów do funkcji w
języku C czy Pascal
Część wykonawcza
•
Rejestry ESI i EDI pełnią dodatkowe
funkcje przy operacjach na łańcuchach
danych.
Rejestr ESI (ang. source index) zawiera adres
źródła,
a EDI (ang. destination index) zawiera adres
docelowy dla danych przy operacjach
łańcuchowych.
•
ESP (ang. stack pointer) jest wskaźnikiem
stosu
Część wykonawcza
• FLAGS – rejestr flagowy składający się z
flag : stanu, kontrolnych i systemowych
• Rejestry CR0, CR2 – CR4 są rejestrami
sterującymi pracą określonych układów
procesora (na przykład trybem pracy
procesora, sposobem pracy pamięci
cache, włączaniem bądź wyłączaniem
stronicowania).
Część wykonawcza
•
Rejestry DRx są rejestrami
uruchomieniowymi (ang. Debug Register).
Umieszczone są w nich adresy pułapek
oraz ich status.
•
Rejestry TRx są rejestrami
wspomagającymi testowanie procesora.
Rejestry TR6 i TR7 służą do testowania
układu TLB, natomiast rejestry TR3 –
TR5 są używane do testowania
wewnętrznej pamięci cache.
Część wykonawcza
•
Rejestry MCAR i MCTR służą obsłudze
błędnych cykli magistrali.
Rejestr MCAR (ang. Machine Check Address Register)
zawiera adres nieudanej operacji, zaś rejestr
MCTR (ang. Machine Check Type Register) jej typ.
•
W skład części wykonawczej wchodzą też
dwie jednostki arytmetyczno-logiczne.
Podobnie jak potoki, oznaczone są one
także literami U i V. Wykonują operacje
logiczne oraz stałoprzecinkowe operacje
arytmetyczne dla potoków U i V.
Praca procesora Pentium
w trybie rzeczywistym
Praca procesora Pentium w trybie rzeczywistym
W trybie rzeczywistym procesor
Pentium, podobnie jak wszystkie
poprzednie procesory tej rodziny,
zachowuje się jak bardzo szybki
procesor 8086.
Jedyną różnicą jest obecność fizycznej
linii adresowej A20, powodującą brak
zawijania się adresu dla tego
procesora.
Układ generacji adresu
fizycznego
Układ generacji adresu fizycznego w trybie rzeczywistym
15
0
3
Rejestr
segmentowy
0
15
0
Adres
efektywny
0000
Σ
CS = 1011001001101101
IP = 0100011111110011
CS
0000
+
IP
AF
AF = 10110110111011000011
19
0
lub heksadecymalnie
B2D6 0
Adres fizyczny
+ 47F 3
B6EC3
jedno zero hex
odpowiada czterem
zerom binarnym
Układ generacji adresu fizycznego w trybie rzeczywistym
Wszystkie rejestry procesorów 8086/88 były 16 bitowe
i taką szerokość miała też magistrala danych.
Natomiast magistrala adresowa była 20-bitowa.
Wymagało to układu, który na podstawie 16-bitowych
wartości pozwoliłby wygenerować 20-bitowy adres.
20-bitowy adres fizyczny obliczany jest jako
suma dwóch składników:
zawartości jednego z rejestrów segmentowych
przemnożonej przez 16 (zawartości do której dopisano
4 zera w zapisie binarnym) oraz tak zwanego adresu
efektywnego wynikającego z aktualnie wykonywanego
fragmentu rozkazu i używanego trybu adresowania.
Zestaw rejestrów segmentowych:
• CS – rejestr segmentu programu
• DS – rejestr segmentu danych
• SS – rejestr segmentu stosu
• ES, GS, FS – rejestry
dodatkowych segmentów danych.
Układ generacji adresu fizycznego w trybie rzeczywistym
Każdy program może mieć cztery
rodzaje segmentów. Segmenty te
mogą być rozłączne lub mogą się
częściowo, lub całkowicie pokrywać
Interpretacja takiego sposobu
generowania adresu fizycznego jest
prosta. (patrz rysunek)
Interpretacja adresowania pamięci w trybie rzeczywistym
Adres 00000h
Początek segmentu
(zawartość rejestru segmentowego * 16)
przesunięcie (adres efektywny)
64 kB
1 MB
adresowana komórka
pamięci
okno, przez które
widziana jest pamięć
FFFFFh
Pamięć
Układ generacji adresu fizycznego w trybie rzeczywistym
Zawartość rejestru segmentowego przemnożona
przez 16 podaje nam adres początkowy danego
segmentu w pamięci. Od tego początku odsuwamy
się o ilość komórek podaną w adresie efektywnym.
Ponieważ adres efektywny jest liczbą 16bitową, maksymalna odległość odczytywanej
komórki od początku segmentu wynosi 65536 B
(bitów) – 64 KB. Pamięć jest więc widziana przez
procesor poprzez okno wielkości 64 KB. Okno to
można przesuwać, przeładowując rejestry
segmentowe, jednakże ze skokiem nie mniejszym
niż 16 B.
Układ generacji adresu fizycznego w trybie rzeczywistym
W ramach ustalonego okna komórkę,
na której zostanie wykonana operacja,
wybieramy przy pomocy adresu
efektywnego.
Wynikiem sumowania dwóch
podanych wartości jest liczba 20bitowa (bo do 16-bitowej wartości w
rejestrze segmentowym dopisujemy 4
zera)
Układ generacji adresu fizycznego w trybie rzeczywistym
Z metody generacji adresu fizycznego wynika
też sposób podawania adresu określany jako
segment (przesunięcie),stosowany w wielu
programach.
Adres fizyczny podajemy jako dwie
liczby, które należy zsumować zgodnie
z regułą tworzenia adresu fizycznego.
Sposób ten wprowadza pewną
niejednoznaczność, ponieważ ten sam adres
można zapisać na wiele sposobów.
Układ generacji adresu fizycznego w trybie rzeczywistym
Niejednoznaczność ta nie prowadzi do
problemów, gdyż po pierwsze
otrzymywany adres fizyczny jest w każdym
przypadku taki sam, a w realnych
sytuacjach w adresie segment
(przesunięcie) podajemy zwykle
rzeczywistą zawartość rejestru
segmentowego, co jednoznacznie określa
także przesunięcie.
Układ generacji adresu fizycznego w trybie rzeczywistym
Do rejestrów segmentowych mogą być
ładowane dowolne wartości, co pozwala na
różnorodne ustawienie segmentów
względem siebie.
Przykładowe rozmieszczenie segmentów w pamięci
Adres
00000
2A000
Segment programu
CS=2A00h
41FF0
DS=41FFh
Segment danych
SS=4FFFh
4FFF0
ES=4FFFh
Segment stosu
i dodatkowy
nałożenie się
adresów
Układ generacji adresu fizycznego w trybie rzeczywistym
O tym który segmentowy zostanie użyty do
obliczenia adresu fizycznego, decydują określone
reguły:
Nazwa rejestru
Domyślny rejestr segmentowy
IP
zawsze CS
SP
zawsze SS
BP
SS
pozostałe rejestry
DS
DI dla operacji
łańcuchowych
ES
Praca procesora w trybie
chronionym
Chroniony tryb wirtualny (ang. protected virtual mode).
W trybie tym procesor wykorzystuje swoje pełne
możliwości. Używa 32 bitów adresu, co pozwala
zaadresować 4 GB fizycznej pamięci.
Ponadto dostępne są sprzętowe mechanizmy
wspomagające obsługę pamięci wirtualnej, pracy
wielozadaniowej i ochrony zasobów.
W trybie chronionym możliwe jest też użycie
mechanizmu stronicowania przy adresowaniu
pamięci.
Praca procesora Pentium w trybie chronionym
pozwala na efektywne stosowanie
(implementację) przez systemy operacyjne
mechanizmów pamięci wirtualnej.
Logiczny model
procesora
Logiczny model procesora
1. RISC - pochodzi od (ang. Reduced
Instruction Set Computing) – opisuje
procesor zaprojektowany w taki sposób, że
wykorzystywana jest zredukowana liczba
instrukcji.
RISC nie ma tak naprawdę zredukowanej
listy instrukcji, ponieważ dzisiejsze
procesory są bardzo złożone
technologicznie.
Cechy procesorów RISC
•
architektura odczytaj i zapisz
•
w wysokim stopniu regularne instrukcje,
które w łatwy sposób mogą przechodzić
przez kanał
•
wiele rejestrów
•
rejestry, szyna danych i szyna adresowa
o szerokości co najmniej 32 bitów (lub
więcej)
Logiczny model procesora
2. CISC - pochodzi od (ang. Complex Instruction Set
Computing) – opisuje komputer
zaprojektowany w taki sposób, że
wykorzystywana jest ciągle wzrastająca
liczba instrukcji i coraz większa
złożoność.
CISC – dotyczy raczej starszych
komputerów.
Co jest lepsze, RISC czy CISC?
Z naukowego punktu widzenia odpowiedź
jest prosta.
Prawie każda główna architektura CPU
opiera się na RISC, ale procesory rodziny
80x86 nie opierają się tylko na RISC i są
zdecydowanie tańsze.
Systemy CISC mają pewne zalety techniczne
– ponieważ mogą łączyć wiele instrukcji w
jedną, czego nie potrafią systemy RISC.
Czy Pentium jest procesorem RISC czy CISC?
W procesorze Pentium część instrukcji może być
wykonywana równolegle w dwóch dostępnych
kanałach.
Tak więc można sądzić, że Pentium jest najlepsze
zarówno w stosunku do procesorów RISC, jak i
CISC.
Jest to prawda, ale liczba rejestrów dostępnych na
Pentium w znacznym stopniu ogranicza rozwój
oprogramowania.
Restart procesora
Pentium
Restart procesora Pentium
Jednym z wejść magistrali sterującej
mikroprocesora Pentium jest wejście
RESET.
Aktywny sygnał na tym wejściu powoduje
wpisanie wartości początkowych do
określonych rejestrów procesora i
rozpoczęcie wykonywania programu od
określonego, zawsze tego samego
miejsca pamięci.
Restart procesora Pentium
Restart procesora Pentium powoduje wpisanie do
rejestrów wartości początkowych podanych w
tabeli;
Nazwa rejestru
Wartość początkowa
EFLAGS
EIP
CS
CR0
EDX
DR6
DR7
cache danych i kodu
0000 0002h
0000 FFF0h
F000h
6000 0010h
0000 05xxh
FFFF 0FF0h
0000 0400h
nieważne
Restart procesora Pentium
Do pozostałych rejestrów wpisywane są
wartości zerowe
(CR2, CR3, CR4, SS, DS., ES, GS, FS,
EAX, EBX, ECX, ESI, EDI, EBP, ESP,
DR 0-DR 3, TR12)
lub ich stan jest niezdefiniowany.
Restart procesora Pentium
Z wartości wpisanych do rejestru CR0 wynika,
że procesor Pentium rozpoczyna pracę w
trybie rzeczywistym.
Jedną z bardzo ważnych konsekwencji
takiego ustalenia wartości początkowych
wpisywanych do rejestrów jest adres
miejsca w pamięci, z którego mikroprocesor
pobierze pierwszą instrukcję do wykonania
( czyli miejsca, od którego rozpocznie
pracę).
Restart procesora Pentium
Oprócz wejścia RESET procesor Pentium
posiada wejście oznaczone jako INIT.
Wejście to zapewnia kompatybilność
procesora Pentium z procesorem 80286.
Wejście to umożliwia częściowy restart, który
pozostawia nie zmienione wartości w
obydwu wewnętrznych pamięciach cache,
buforach zapisu BIU, rejestrach NPU. Nie
są zmienione także wartości bitów CD i NW
w rejestrze CR0, decydujące o stanie
pamięci cache.
Praca potokowa
Praca potokowa
W procesorze Pentium instrukcje
wykonywane są potokowo.
Praca potokowa (ang. pipelining), jest
rozwinięciem koncepcji preftchingu.
Polega ona na równoległym
wykonywaniu kilku faz realizacji
rozkazu.
Praca potokowa
W procesorze Pentium instrukcje
realizowane są w pięciu fazach.
•
pobranie kodu instrukcji – faza F
wczytywany jest z pamięci kod instrukcji.
•
pierwszy etap dekodowania instrukcji –
D1
ustalany jest rodzaj operacji oraz tryb
adresowania
Praca potokowa
• drugi etap dekodowania instrukcji – D2
obliczany jest adres efektywny argumentów,
ewentualnie przygotowywane są argumenty
natychmiastowe
•
wykonanie – E
realizowany jest (jeśli jest konieczny) dostęp do
pamięci i wykonywana jest żądana operacja
• zapis do rejestrów – W
rezultaty operacji zapisywane są w określonym
rejestrze (jeżeli wymaga tego instrukcja).
Technologia SL i
sterowanie poborem
mocy (SM)
Technologia SL i sterowanie poborem mocy (SM)
Technologia SL została wprowadzona w
procesorach 80386 przeznaczonych do
pracy w komputerach typu notebok.
Jej rozwiązania stosowane są obecnie we
wszystkich procesorach rodziny 80x86.
Technologia SL
- mechanizmy
Technologia SL - mechanizmy
• system zarządzania poborem mocy –
SMM (ang. System Management Mode)
• wstrzymanie zegara procesora (sygnał
STPCLK#)
• Auto-HALT – automatyczne przejście
procesora w stan niskiego poboru mocy
po wykonaniu rozkazu HALT.
Technologia SL
– stany pracy
Technologia SL – stany pracy
• wstrzymanie zegara rdzenia procesora
(ang. Stop Grant State) – następuje pod
wpływem sygnału STPCLK#. Powoduje
to częściowe obniżenie poboru mocy
przez procesor. Wewnętrzny zegar
procesora jest włączany po przejściu
sygnału STPCLK# w stan nieaktywny.
Technologia SL – stany pracy
• wstrzymanie zegara zewnętrznego
procesora (ang. Stop Clock State) –
następuje, gdy procesor znajduje się w
stanie wstrzymania zegara
wewnętrznego. W stanie wyłączenia
zegara zewnętrznego pobór mocy jest
najniższy.
• Auto-HALT – powoduje automatyczne
wstrzymanie zegara wewnętrznego po
wykonaniu rozkazu HALT.
Pamięć wirtualna
procesora
• Hierarchia pamięci
• Mechanizm działania pamięci wirtualnej
• Pamięć wirtualna w procesorze Pentium
• Mechanizmy wspomagania pracy
wielozadaniowej i ochrony zasobów
• Stronicowanie
• Pamięć podręczna (cache)
Hierarchia pamięci
W systemie mikroprocesorowym
występuje kilka rodzajów pamięci.
Główny podział to:
• pamięć masowa PM
• pamięć półprzewodnikowa PP
Pamięć masowa PM – wszelkiego rodzaju
pamięci na nośnikach magnetycznych:
- dyski twarde
- dyski elastyczne
Pamięć półprzewodnikowa PP - wszelkiego
rodzaju pamięci do zapisu i odczytu
dynamicznego i statycznego oraz pamięci
typu ROM.
Struktura hierarchiczna pamięci
uwzględnia następujące czynniki:
• pojemność
• koszt jednego bitu
• czas dostępu
Mechanizm działania
pamięci wirtualnej
Mechanizm pamięci wirtualnej
pozwala traktować programom
pamięć masowa jako przedłużenie
pamięci operacyjnej
Mechanizmy działania pamięci wirtualnej
• Program żąda dostępu do określonej
informacji – podaje adres wirtualny
• Sprawdzana jest obecność poszukiwanej
informacji w pamięci operacyjnej. (Informacja
o obecności konkretnych bloków w pamięci
operacyjnej przechowywana jest w specjalnej
tablicy)
• W przypadku braku poszukiwanej informacji
jest ona wczytywana z dysku, a odpowiednie
pozycje w tablicach obsługujących pamięć
wirtualną są modyfikowane
Mechanizmy działania pamięci wirtualnej
• Obliczany jest adres fizyczny miejsca
przechowywania informacji w pamięci
operacyjnej, czyli dokonywana jest translacja
adresu wirtualnego na fizyczny.
(Translacji tej dokonuje się także przy użyciu
odpowiedniej tablicy).
• Poszukiwana informacja jest dostępna dla
procesora, co zamyka cykl działania pamięci
wirtualnej.
Mechanizmy działania tablicy deskryptorów
Mechanizmy działania tablicy deskryptorów
• Utworzenie tablicy deskryptorów
• Ilość pozycji w tablicy deskryptorów musi być
równa ilości bloków w pamięci masowej (na
jakie został podzielony program)
• Każdy deskryptor składa się z dwóch części:
 bitu obecności bloku
 i adresu bazowego (podaje w którym
miejscu pamięci operacyjnej został
umieszczony dany blok)
Adres wirtualny 7F0000h
Adresy pamięci
PAO
000000h
adres bazowy
100000h
przesunięcie + F0000h
adres fizyczny 1F0000h
0FFFFFh
deskryptorów
1 MB
100000h
1FFFFFh
Tablica
7
1 MB
Nr deskryptora
3
0
0
0
0
000
001
010
011
0
1
0
100
101
110
1
111
20
0
Przykładowa zawartość tablicy deskryptorów
Pamięć wirtualna w
procesorze Pentium
• W procesorze Pentium w trybie chronionym
zmienia się interpretacja zawartości rejestrów
segmentowych
• Zawartość odpowiedniego rejestru
segmentowego jest selektorem wybierającym
odpowiednią pozycję w tablicy deskryptorów.
Układ dokonujący translacji adresu logicznego na adres
fizyczny
Pamięć
48-bitowy adres wirtualny
Rejestr segmentowy Adres efektywny
15
Deskryptor
segmentu
0
Selektor
31
0
31
0
Adres bazowy
segmentu
Przesunięcie
Tablica
deskryptorów
Ʃ
32-bitowy adres fizyczny
Operand
Procesor
Układ dokonujący translacji adresu logicznego na
adres fizyczny - działanie
• Adres fizyczny obliczany jest jako suma
adresu bazowego z odpowiedniej pozycji
tablicy deskryptorów i wartości adresu
fizycznego.
• Umieszczony zostaje w pamięci MMU
(niedostępnej programowo) – w celu
przyśpieszenia dostępu do deskryptorów.
Co zawiera deskryptor segmentów
•
Deskryptory segmentów zawierają takie
informacje jak:
a. wielkość segmentu
b. adres bazowy
c. wymagany poziom uprzywilejowania
d. pewne atrybuty (np.. bit obecności)
Mechanizmy
wspomagania pracy
wielozadaniowej i
ochrony zasobów
Praca wielozadaniowa w systemie
jednoprocesorowym polega na przełączaniu
zadań - procesor wykonuje pewne zadanie do:
 momentu upływu określonego czasu
przydzielonego zadaniu
 momentu, w którym brak chwilowo
informacji
 momentu żądania przez użytkownika
zmiany zadania
W sytuacji wykonywania kilku zadań
jednocześnie istnieje konieczność
kontrolowania dostępu poszczególnych
zadań do informacji, jak i innych zasobów
systemu.
Nie można dopuścić, by jeden program
zapisywał swoje dane w obszarze
pamięci przydzielonej innemu
programowi.
Stronicowanie
W procesorze Pentium pracującym w
trybie wirtualnym, oprócz mechanizmu
segmentacji dostępny jest też
mechanizm stronicowania - polega na
używaniu ciągłego adresu liniowego,
podczas gdy adresy fizyczne pamięci
mogą stanowić obszar nieciągły.
Generacja adresu w trybie stronicowania
Adres liniowy z jednostki segmentacji
31
22
Pozycja w katalogu stron
21
12
Pozycja w tablicy stron
Tabele stron
(zawiera adresy tablic stron)
(zawiera adresy stron w pamięci )
adres strony
w pamięci
0
Pozycja na stronie
Strony pamięci
Katalog stron
adres tablicy
strony
11
adres strony
w pamięci
adres strony
w pamięci
Wybiera tabelę stron
Poszukiwana
informacja
Translacja adresu liniowego na fizyczny
• 10-bitowa części adresu liniowego wybiera jedną z 1024
pozycji w katalogu stron (page directory)
• Zawartość wybranej pozycji w katalogu stron wskazuje na
jedną z 1024 tabel stron
• Bity adresu liniowego wybierają jedną z 1024 pozycji w
wybranej tabeli stron
• Wybrana pozycja w tabeli stron podaje adres początkowy 4
- kilobajtowej strony, w której znajduje się poszukiwana
informacja
Translacja adresu liniowego na fizyczny
Posługiwanie się przy translacji adresu
liniowego na fizyczny wyłącznie danymi z
pamięci typu – katalogi i tabela stron
prowadziłoby do znacznego zmniejszenia
szybkości działania systemu. W tym celu
wykorzystuje się pamięć podręczną typu
cache – przechowującą zawartość 32
ostatnio używanych tablic stron
•L 1
•L 2
Pamięć podręczna
(cache)
Pamięć podręczna
(cache)
L1
Koncepcja pamięci podręcznej procesora
a. pamięć sytemu składa się z relatywnie
dużej pamięci operacyjnej (rzędu
kilkudziesięciu do kilkuset MB) –
zbudowanej z pamięci dynamicznych
b. oraz z mniejszej (kilka do kilkuset KB)
pamięci cache – zbudowanej z pamięci
statycznych
Wady pamięci dynamicznych z punktu
widzenia procesora
a. zbyt wolne dla szybkich
współczesnych procesorów
b. wymagają stanów oczekiwania
Wynika to z zarówno z dużej
częstotliwości zegara taktującego, jak i
występującej w procesorze Pentium
pracy dwupotokowej.
Pamięci statyczne (cache)
Zalety:
Są szybsze od pamięci dynamicznych
Wady:
• Pobierają stosunkowo dużo energii
• Są zdecydowanie droższe
• Są układami o niższym stopniu
scalenia
Pamięci statyczne (cache)
Trafienie :
Sterownik pamięci cache sprawdza czy
poszukiwana informacja znajduje się w
pamięci cache, jeżeli tak to operacja
jest wykonywana w pamięci cache, bez
stanów oczekiwania
Pamięci statyczne (cache)
Chybienie
Jeśli sterownik pamięci cache stwierdzi brak
informacji w pamięci cache, to następuje
dostęp do pamięci operacyjnej z
koniecznymi stanami oczekiwania
Architektura systemu z pamięcią cache
a. Look - through
b. Look - aside
Architektura Look - through
Mikroprocesor
Cache
Zarządca magistral
PAO
Zarządca magistral
Architektura Look - through
W architekturze tej pamięć cache,
połączona magistralą lokalną z
procesorem, oddziela go od reszty
sytemu, w przypadku trafienia – główna
magistrala systemu nie jest w ogóle
używana
Architektura Look - aside
Mikroprocesor
Cache
PAO
Zarządca magistral
Zarządca magistral
Architektura Look - aside
W architekturze tej procesor nie jest
odizolowany od reszty układów przez
cache. Dostęp do pamięci powoduje
rozpoczęcie normalnego cyklu magistrali.
• trafienie – cykl zawieszany – operacja na
pamięci cache
• chybienie – wykonywany jest normalny cykl
magistrali
Elementy sytemu
pamięci cache
Elementy sytemu pamięci cache
•
Bank danych (pamięć danych)
- przechowuje i umożliwia zapis i odczyt informacji
•
Katalog pamięci cache (TAG – RAM)
- sprawdza, czy poszukiwana informacja znajduje się
w pamięci cache
•
Sterownik pamięci cache
- steruje procesem sprawdzania – czy informacja
znajduje się w pamięci cache oraz organizuje
współprace pamięci cache z systemem
Organizacja pamięci
cache
Organizacja pamięci cache
W celu zapewnienia możliwości szybkiego
sprawdzenia, czy komórka pamięci na której
ma być wykonana operacja, jest odwzorowana
w pamięci cache – bank danych i katalog,
tworzą jednoblokową pamięć asocjacyjną (Oneway Set-associative lub Direct-mapped) .
W takiej organizacji pamięć cache stanowi jeden
blok podzielony na zestawy
Przykład organizacji pamięci cache
Zestaw 5
04
Dane 4
Rn - n-ty odczyt
Zestaw 4
Zestaw 3
Strona 2
Zestaw 2
Zestaw 1
Zestaw 5
Zestaw 4
Katalog cache
Dane 3
Bank cache
(TAG-RAM)
Zestaw 5
Strona 0 (strona 2)
Zestaw 4
Strona 0
Zestaw 3
Strona 1
Zestaw 2
Zestaw 1
Zestaw 3
03
Dane 2
Dane 1
Dane 3
Zestaw 2
Zestaw 1
Zestaw 5
02
01
Strona 1
Dane 2
Zestaw 4
Dane 1
Zestaw 3
Zestaw 2
Zestaw 1
Strona 0
Pamięć zewnętrzna
cache drugiego
poziomu
L2
Pamięć zewnętrzna cache drugiego poziomu
– L2
Jest to zewnętrzna (dodatkowa) pamięć
procesora. Wyraźny efekt stosowania
tej pamięci widać wówczas, jeśli jej
pojemność jest znacząco większa od
pojemności pamięci L1.
Informacja znajdująca się w pamięci L1
znajduje się jednocześnie w pamięci L2.
Pamięć zewnętrzna cache drugiego poziomu w systemie z
procesorem 80486
Procesor
80486
CACHE 1- go poziomu (L1)
zewnętrzna
BUIBIU
Układy
logiczne
Sygnały
sterujące
magistrala
lokalna
NCA
CACHE 2- go poziomu (L2)
zewnętrzna
Zarządca magistral
PAO
Zarządca magistral
Pamięć cache w
procesorze Pentium
Pamięć cache w procesorze Pentium
W procesorach Pentium możliwe jest stosowanie
zarówno wewnętrznej, jak i zewnętrznej
pamięci cache.
Każda z pamięci zawiera 8 KB pojemności.
Jedna przeznaczona jest do przechowywania
kodów instrukcji (Code-cache)
Druga przechowuje dane i wyniki przetwarzania
informacji (Data-cache)
Pamięć cache w procesorze Pentium
PENTIUM
Cache
2-go poziomu
(SDRAM)
Sterowniki pamięci cache
2 - go poziomu (L2)
Urządzenie na
płycie głównej
Gniazda magistrali
rozszerzającej
Dwuportowy
sterownik
pamięci
DRAM
PAO
(DRAM)
Urządzenie na
płycie głównej