Architektura Architektura komputerów...
Transcript of Architektura Architektura komputerów...
Architektura Architektura komputerówkomputerów
dr inż. Piotr Zielniewiczdr inż. Piotr Zielniewicz
ee--mail: [email protected]: [email protected]
LiteraturaLiteratura
�� P. Metzger, P. Metzger, Anatomia PCAnatomia PC, Helion, 2007, Helion, 2007
�� J. Biernat, J. Biernat, Architektura komputerówArchitektura komputerów, Oficyna , Oficyna Wydawnicza Politechniki Wrocławskiej, 1999Wydawnicza Politechniki Wrocławskiej, 1999
�� W. Stallings, W. Stallings, Organizacja i architektura systemu Organizacja i architektura systemu komputerowegokomputerowego, WNT Warszawa, 2003, WNT Warszawa, 2003
R. Pełka, R. Pełka, MikrokontroleryMikrokontrolery, WKŁ Warszawa, 2000, WKŁ Warszawa, 2000
22
�� R. Pełka, R. Pełka, MikrokontroleryMikrokontrolery, WKŁ Warszawa, 2000, WKŁ Warszawa, 2000
�� J. Sibigtroth, J. Sibigtroth, Zrozumieć małe mikrokontroleryZrozumieć małe mikrokontrolery, BTC , BTC Warszawa, 2003Warszawa, 2003
�� C. Petzold, C. Petzold, KodKod, WNT Warszawa, 2002, WNT Warszawa, 2002
Zarys historii komputerówZarys historii komputerów
�� 1945: ENIAC (1945: ENIAC (Electronic Numerical Integrator And Electronic Numerical Integrator And ComputerComputer))–– konstrukcja oparta na lampach próżniowychkonstrukcja oparta na lampach próżniowych
–– arytmetyka w systemie dziesiętnymarytmetyka w systemie dziesiętnym
–– pamięć dwudziestu 10pamięć dwudziestu 10--cyfrowych liczbcyfrowych liczb
–– ręczne programowanie z użyciem przełączników i kabli ręczne programowanie z użyciem przełączników i kabli
33
–– ręczne programowanie z użyciem przełączników i kabli ręczne programowanie z użyciem przełączników i kabli krosującychkrosujących
–– szybkość przetwarzania: 5000 operacji dodawania na szybkość przetwarzania: 5000 operacji dodawania na sekundęsekundę
�� 1946: EDVAC (1946: EDVAC (Electronic Discrete Variable Automatic Electronic Discrete Variable Automatic ComputerComputer))–– zastosowanie systemu binarnegozastosowanie systemu binarnego
–– zastosowanie pamięci do przechowywania danych oraz kodu zastosowanie pamięci do przechowywania danych oraz kodu programuprogramu
Zarys historii komputerówZarys historii komputerów
�� 1951: UNIVAC (1951: UNIVAC (Universal Automatic ComputerUniversal Automatic Computer))–– pierwszy komputer dostępny w handlu (określany terminem pierwszy komputer dostępny w handlu (określany terminem
„mózg elektronowy”)„mózg elektronowy”)
–– szybkość przetwarzania: ponad 20 000 operacji na sekundę szybkość przetwarzania: ponad 20 000 operacji na sekundę
–– zastosowania: obsługa powszechnego spisu ludności z 1950 zastosowania: obsługa powszechnego spisu ludności z 1950 roku, prognozowanie wyników wyborów prezydenckich w roku, prognozowanie wyników wyborów prezydenckich w 1952 roku1952 roku
44
1952 roku1952 roku
�� Koniec lat 50Koniec lat 50--tych: DEC PDPtych: DEC PDP--1, IBM seria 70001, IBM seria 7000–– konstrukcje oparte na tranzystorachkonstrukcje oparte na tranzystorach
–– bardziej złożone jednostki arytmetycznobardziej złożone jednostki arytmetyczno--logiczne i sterującelogiczne i sterujące
–– pamięci ferrytowepamięci ferrytowe
–– rozbudowane urządzenia peryferyjnerozbudowane urządzenia peryferyjne
–– 5050--krotny wzrost prędkości w stosunku do komputerów krotny wzrost prędkości w stosunku do komputerów pierwszej generacjipierwszej generacji
Zarys historii komputerówZarys historii komputerów
�� Połowa lat 60Połowa lat 60--tych: DEC PDPtych: DEC PDP--8, IBM System 3608, IBM System 360–– konstrukcja oparta na układach scalonychkonstrukcja oparta na układach scalonych
–– pamięci półprzewodnikowepamięci półprzewodnikowe
–– koncepcja minikomputerakoncepcja minikomputera
–– struktura magistralowastruktura magistralowa
�� 1971: Mikroprocesor Intel 40041971: Mikroprocesor Intel 4004
55
�� 1971: Mikroprocesor Intel 40041971: Mikroprocesor Intel 4004–– wszystkie elementy procesora zintegrowane w jednym wszystkie elementy procesora zintegrowane w jednym
układzie (2300 tranzystorów)układzie (2300 tranzystorów)
–– 44--bitowa szerokość szyny danychbitowa szerokość szyny danych
�� 1974: Mikroprocesory Intel 8080, Motorola 68001974: Mikroprocesory Intel 8080, Motorola 6800–– mikroprocesory ogólnego przeznaczeniamikroprocesory ogólnego przeznaczenia
–– 88--bitowa szerokość szyny danychbitowa szerokość szyny danych
–– 1616--bitowa szerokość szyny adresowejbitowa szerokość szyny adresowej
Zarys historii komputerówZarys historii komputerów
�� 1977: Mikrokomputer Apple II1977: Mikrokomputer Apple II
�� 1978, 1979: Mikroprocesory Intel 8086, 80881978, 1979: Mikroprocesory Intel 8086, 8088–– 1616--bitowa szerokość szyny danychbitowa szerokość szyny danych
–– 2020--bitowa szerokość szyny adresowejbitowa szerokość szyny adresowej
–– wbudowane rozkazy mnożenia i dzieleniawbudowane rozkazy mnożenia i dzielenia
�� 1981: Mikrokomputer IBM PC1981: Mikrokomputer IBM PC
66
�� 1981: Mikrokomputer IBM PC1981: Mikrokomputer IBM PC
�� 1984: Mikrokomputer Apple Macintosh1984: Mikrokomputer Apple Macintosh
�� 1985: Mikroprocesor Intel 803861985: Mikroprocesor Intel 80386–– 3232--bitowa szerokość szyny danychbitowa szerokość szyny danych
–– 3232--bitowa szerokość szyny adresowejbitowa szerokość szyny adresowej
–– wsparcie dla systemów wielozadaniowychwsparcie dla systemów wielozadaniowych
Klasyczna koncepcja komputeraKlasyczna koncepcja komputera
�� Elementy funkcjonalne komputera:Elementy funkcjonalne komputera:–– Procesor, jednostka centralna, CPU (Procesor, jednostka centralna, CPU (Central Processing UnitCentral Processing Unit))
–– Pamięć operacyjnaPamięć operacyjna
–– Układy wejściaUkłady wejścia--wyjściawyjścia
�� Schemat architektury:Schemat architektury:
77
ProcesorProcesor
Układy Układy wejściawejścia--wyjściawyjścia
PamięćPamięć
MagistralaMagistrala
Klasyczna koncepcja komputeraKlasyczna koncepcja komputera
�� Elementy komputera komunikują się ze sobą poprzez Elementy komputera komunikują się ze sobą poprzez magistrale: danych, adresową i sterującąmagistrale: danych, adresową i sterującą
�� Magistrale pracują w sposób synchroniczny, co Magistrale pracują w sposób synchroniczny, co oznacza, że sygnały na nich występujące, mogą się oznacza, że sygnały na nich występujące, mogą się pojawiać wyłącznie w ściśle określonych momentach pojawiać wyłącznie w ściśle określonych momentach wyznaczonych przez tzw. wyznaczonych przez tzw. cykl zegarowycykl zegarowy
88
wyznaczonych przez tzw. wyznaczonych przez tzw. cykl zegarowycykl zegarowy
�� Przykład pobierania zawartości komórki pamięci Przykład pobierania zawartości komórki pamięci operacyjnej przez procesor:operacyjnej przez procesor:–– procesor wysyła adres żądanej komórki na magistralę procesor wysyła adres żądanej komórki na magistralę
adresową, a po odczekaniu odpowiedniej liczby cykli adresową, a po odczekaniu odpowiedniej liczby cykli zegarowych odczytuje z magistrali danezegarowych odczytuje z magistrali dane
–– pamięć dekoduje przesyłany adres po czym umieszcza pamięć dekoduje przesyłany adres po czym umieszcza zawartość zaadresowanej komórki na magistrali danych w zawartość zaadresowanej komórki na magistrali danych w odpowiednim momencie i na odpowiednio długi czasodpowiednim momencie i na odpowiednio długi czas
Klasyczna koncepcja komputeraKlasyczna koncepcja komputera
–– jeżeli pamięć operacyjna jest zbyt wolna w stosunku do jeżeli pamięć operacyjna jest zbyt wolna w stosunku do szybkości pracy procesora i nie może wysłać danej w szybkości pracy procesora i nie może wysłać danej w odpowiednio krótkim czasie, to informuje o tym procesor, odpowiednio krótkim czasie, to informuje o tym procesor, wysyłając odpowiedni sygnał (WAIT) przez magistralę wysyłając odpowiedni sygnał (WAIT) przez magistralę sterującąsterującą
–– procesor wydłuża wówczas okres oczekiwania na daną o procesor wydłuża wówczas okres oczekiwania na daną o dodatkowy cykl zegarowy i w tak określonym momencie dodatkowy cykl zegarowy i w tak określonym momencie
99
dodatkowy cykl zegarowy i w tak określonym momencie dodatkowy cykl zegarowy i w tak określonym momencie odczytuje ją z magistrali danychodczytuje ją z magistrali danych
�� Opisany cykl pracy procesora nazywa się Opisany cykl pracy procesora nazywa się cyklem cyklem maszynowymmaszynowym i jest on związany ze zmianą adresu i jest on związany ze zmianą adresu przesyłanego przez magistralę adresowąprzesyłanego przez magistralę adresową
�� Cykle maszynowe nie są jednakowej długości, choć Cykle maszynowe nie są jednakowej długości, choć zawsze są wielokrotnością cyklu zegarowegozawsze są wielokrotnością cyklu zegarowego
Klasyczna koncepcja komputeraKlasyczna koncepcja komputera
�� Komunikacja między procesorem a układami wejściaKomunikacja między procesorem a układami wejścia--wyjścia odbywa się w postaci analogicznych cykli wyjścia odbywa się w postaci analogicznych cykli maszynowychmaszynowych
�� Komunikacja między urządzeniami wejściaKomunikacja między urządzeniami wejścia--wyjścia a wyjścia a pamięcią operacyjną także przebiega w postaci pamięcią operacyjną także przebiega w postaci podobnych cykli maszynowych w przypadku podobnych cykli maszynowych w przypadku
1010
podobnych cykli maszynowych w przypadku podobnych cykli maszynowych w przypadku transmisji przez kanał bezpośredniego dostępu do transmisji przez kanał bezpośredniego dostępu do pamięcipamięci
�� Cykl pracy magistrali komputera składający się z Cykl pracy magistrali komputera składający się z pewnej liczby cykli maszynowych, w którym pewnej liczby cykli maszynowych, w którym następuje wykonanie pełnego rozkazu procesora następuje wykonanie pełnego rozkazu procesora nazywa się nazywa się cyklem rozkazowymcyklem rozkazowym
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Schemat blokowy procesora:Schemat blokowy procesora:
BIUBIU
PrefetchPrefetch IUIU
ControlControl
1111
AUAU
EUEU
ALUALUFPUFPU
RegistersRegisters
ControlControl
DataData
AddressAddress
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Komunikacja procesora ze światem zewnętrznym Komunikacja procesora ze światem zewnętrznym odbywa się za pośrednictwem układu sterowania odbywa się za pośrednictwem układu sterowania magistralami BIU (magistralami BIU (Bus Interface UnitBus Interface Unit), w którego ), w którego skład wchodzi jednostka adresowania AU skład wchodzi jednostka adresowania AU ((Addressing UnitAddressing Unit) i podręczna kolejka rozkazów ) i podręczna kolejka rozkazów ((PrefetchPrefetch))
1212
((PrefetchPrefetch))
�� Jednostka adresowania ma za zadanie wytworzenie Jednostka adresowania ma za zadanie wytworzenie na magistrali adresowej adresu, pod którym znajdują na magistrali adresowej adresu, pod którym znajdują się wymieniane z procesorem dane lub pobierane się wymieniane z procesorem dane lub pobierane rozkazyrozkazy
�� Pobierane rozkazy umieszczane są z wyprzedzeniem Pobierane rozkazy umieszczane są z wyprzedzeniem w podręcznej kolejce rozkazów, której uzupełnianie w podręcznej kolejce rozkazów, której uzupełnianie odbywa się automatycznieodbywa się automatycznie
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Dekodowanie rozkazów pobieranych z kolejki Dekodowanie rozkazów pobieranych z kolejki rozkazów odbywa się w bloku dekodera instrukcji IU rozkazów odbywa się w bloku dekodera instrukcji IU ((Instruction UnitInstruction Unit))
�� Rozkodowane instrukcje przekazywane są do układu Rozkodowane instrukcje przekazywane są do układu wykonawczego EU (wykonawczego EU (Execution UnitExecution Unit), który w ), który w zależności od rodzaju rozkazu wydaje odpowiednie zależności od rodzaju rozkazu wydaje odpowiednie
1313
zależności od rodzaju rozkazu wydaje odpowiednie zależności od rodzaju rozkazu wydaje odpowiednie polecenia do jednostki adresującej oraz jednostki polecenia do jednostki adresującej oraz jednostki arytmetycznoarytmetyczno--logicznej ALU (logicznej ALU (ArithmeticArithmetic--Logic UnitLogic Unit) ) lub jednostki zmiennoprzecinkowej FPU (lub jednostki zmiennoprzecinkowej FPU (Floating Floating Point UnitPoint Unit))
�� Wykonywane rozkazy mogą dotyczyć manipulacji na Wykonywane rozkazy mogą dotyczyć manipulacji na zawartości wewnętrznych rejestrów procesora zawartości wewnętrznych rejestrów procesora ((RegistersRegisters), jak też komórek pamięci operacyjnej), jak też komórek pamięci operacyjnej
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Zadaniem jednostki arytmetycznoZadaniem jednostki arytmetyczno--logicznej jest logicznej jest wykonywanie bezpośrednich operacji na danych tj. wykonywanie bezpośrednich operacji na danych tj. dodawanie, odejmowanie, porównywanie itd.dodawanie, odejmowanie, porównywanie itd.
�� W przypadku rozkazów operujących na danych W przypadku rozkazów operujących na danych zmiennoprzecinkowych ich przetwarzaniem zajmuje zmiennoprzecinkowych ich przetwarzaniem zajmuje się wyspecjalizowana jednostka zmiennoprzecinkowasię wyspecjalizowana jednostka zmiennoprzecinkowa
1414
się wyspecjalizowana jednostka zmiennoprzecinkowasię wyspecjalizowana jednostka zmiennoprzecinkowa
�� Nie istnieje ścisły podział pamięci operacyjnej na Nie istnieje ścisły podział pamięci operacyjnej na obszary danych i rozkazów obszary danych i rozkazów –– w każdej komórce w każdej komórce pamięci operacyjnej mogą znajdować się zarówno pamięci operacyjnej mogą znajdować się zarówno podlegające przetwarzaniu dane, jak i przeznaczone podlegające przetwarzaniu dane, jak i przeznaczone do wykonania rozkazydo wykonania rozkazy
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Ponieważ większość działań procesora sprowadza się Ponieważ większość działań procesora sprowadza się do operacji na stosunkowo wolnej pamięci RAM do operacji na stosunkowo wolnej pamięci RAM ((Random Access MemoryRandom Access Memory), to w celu zwiększenia ), to w celu zwiększenia efektywności procesor wyposażony jest w rejestry efektywności procesor wyposażony jest w rejestry ––szybką pamięć wewnętrznąszybką pamięć wewnętrzną
�� Wykonanie jakiejkolwiek operacji na pamięci Wykonanie jakiejkolwiek operacji na pamięci
1515
�� Wykonanie jakiejkolwiek operacji na pamięci Wykonanie jakiejkolwiek operacji na pamięci sprowadza się do przesłania zawartości komórki sprowadza się do przesłania zawartości komórki pamięci do rejestru, wykonania operacji i odesłania pamięci do rejestru, wykonania operacji i odesłania wyniku do pamięciwyniku do pamięci
�� Rejestry można podzielić na trzy funkcjonalne grupy:Rejestry można podzielić na trzy funkcjonalne grupy:–– rejestry ogólnego przeznaczenia (np. AX, BX, CX, DX)rejestry ogólnego przeznaczenia (np. AX, BX, CX, DX)
–– rejestry segmentowe (np. CS, DS, SS)rejestry segmentowe (np. CS, DS, SS)
–– rejestry statusowe i sterujące (np. FLAGS, IP)rejestry statusowe i sterujące (np. FLAGS, IP)
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Zadaniem rejestrów ogólnego przeznaczenia jest Zadaniem rejestrów ogólnego przeznaczenia jest przechowywanie danychprzechowywanie danych
�� W praktyce każdy z tych rejestrów jest przeznaczony W praktyce każdy z tych rejestrów jest przeznaczony do wykonywania określonych zadań np. rejestr AX do wykonywania określonych zadań np. rejestr AX (akumulator) w operacjach arytmetycznych i (akumulator) w operacjach arytmetycznych i logicznych, BX do adresowania pamięci, CX jest logicznych, BX do adresowania pamięci, CX jest
1616
logicznych, BX do adresowania pamięci, CX jest logicznych, BX do adresowania pamięci, CX jest licznikiem w pętlach, natomiast DX umożliwia licznikiem w pętlach, natomiast DX umożliwia przekazywanie i odbieranie danych z portów wejściaprzekazywanie i odbieranie danych z portów wejścia--wyjściawyjścia
�� Rejestry segmentowe służą do przechowywania:Rejestry segmentowe służą do przechowywania:–– CS (CS (Code SegmentCode Segment) ) -- adresu segmentu kodu do wykonaniaadresu segmentu kodu do wykonania
–– DS (DS (Data SegmentData Segment) ) -- adresu segmentu danychadresu segmentu danych
–– SS (SS (Stack SegmentStack Segment) ) -- adresu segmentu stosuadresu segmentu stosu
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Zadaniem rejestru stanu FLAGS jest kontrolowanie Zadaniem rejestru stanu FLAGS jest kontrolowanie pracy procesorapracy procesora
�� W rejestrze tym znajdują się m.in. następujące W rejestrze tym znajdują się m.in. następujące znaczniki stanu (flagi):znaczniki stanu (flagi):–– ZnakZnak ((Sign FlagSign Flag) ) -- bit znaku wyniku ostatniej operacji bit znaku wyniku ostatniej operacji
arytmetycznejarytmetycznej
1717
arytmetycznejarytmetycznej
–– ZeroZero ((Zero FlagZero Flag) ) -- flaga ustawiana jeżeli wynik operacji jest flaga ustawiana jeżeli wynik operacji jest równy zerorówny zero
–– PrzeniesieniePrzeniesienie ((Carry FlagCarry Flag) ) -- flaga ustawiana jeżeli wynikiem flaga ustawiana jeżeli wynikiem operacji arytmetycznej jest przeniesienieoperacji arytmetycznej jest przeniesienie
–– PrzepełnieniePrzepełnienie ((OverflowOverflow) ) -- flaga ustawiana jeżeli w czasie flaga ustawiana jeżeli w czasie wykonywania operacji arytmetycznej wystąpiło wykonywania operacji arytmetycznej wystąpiło przepełnienieprzepełnienie
Ogólna zasada działania procesoraOgólna zasada działania procesora
�� Rejestr wskaźnika rozkazów IP (Rejestr wskaźnika rozkazów IP (Instruction PointerInstruction Pointer) ) zawiera przemieszczenie aktualnie wykonywanej zawiera przemieszczenie aktualnie wykonywanej instrukcji względem początku segmentu koduinstrukcji względem początku segmentu kodu
�� O tym że zawartość komórki pamięci operacyjnej O tym że zawartość komórki pamięci operacyjnej zostanie przez procesor zinterpretowania jako rozkaz zostanie przez procesor zinterpretowania jako rozkaz do wykonania decyduje fakt jej zaadresowania przez do wykonania decyduje fakt jej zaadresowania przez
1818
do wykonania decyduje fakt jej zaadresowania przez do wykonania decyduje fakt jej zaadresowania przez wskaźnik (licznik) rozkazówwskaźnik (licznik) rozkazów
�� W cyklu rozkazowym procesora możemy wyróżnić W cyklu rozkazowym procesora możemy wyróżnić następujące cztery fazy:następujące cztery fazy:–– Faza pobrania rozkazuFaza pobrania rozkazu ((FetchFetch), w której następuje pobranie ), w której następuje pobranie
rozkazu z podręcznej kolejki rozkazów i jeżeli zachodzi taka rozkazu z podręcznej kolejki rozkazów i jeżeli zachodzi taka potrzeba, uruchomienie procedury uzupełniania kolejkipotrzeba, uruchomienie procedury uzupełniania kolejki
Ogólna zasada działania procesoraOgólna zasada działania procesora
–– Faza dekodowania rozkazuFaza dekodowania rozkazu ((DecodeDecode), w której określane są ), w której określane są operacje do wykonania oraz obliczane adresy efektywne operacje do wykonania oraz obliczane adresy efektywne argumentów (jeżeli występują)argumentów (jeżeli występują)
–– Faza wykonaniaFaza wykonania ((ExecuteExecute), w której pobierane są z pamięci ), w której pobierane są z pamięci argumenty rozkazu oraz wykonywane operacje ustalone w argumenty rozkazu oraz wykonywane operacje ustalone w fazie dekodowaniafazie dekodowania
–– Faza zapisania wynikówFaza zapisania wyników ((Retire, WriteRetire, Write--BackBack), w której ), w której
1919
–– Faza zapisania wynikówFaza zapisania wyników ((Retire, WriteRetire, Write--BackBack), w której ), w której następuje zapisanie wyniku w miejscu określonym w kodzie następuje zapisanie wyniku w miejscu określonym w kodzie rozkazu oraz ustawienie znaczników rejestru statusowegorozkazu oraz ustawienie znaczników rejestru statusowego
Fetch Decode Execute Retire
Obsługa urządzeń zewnętrznychObsługa urządzeń zewnętrznych
�� Jednym z zadań procesora jest wymiana informacji z Jednym z zadań procesora jest wymiana informacji z urządzeniami zewnętrznymi (stacja dyskietek, karta urządzeniami zewnętrznymi (stacja dyskietek, karta graficzna, klawiatura itd.)graficzna, klawiatura itd.)
�� Urządzenie zewnętrzne komunikuje się z układem Urządzenie zewnętrzne komunikuje się z układem wejściawejścia--wyjścia za pośrednictwem interfejsu, tworząc wyjścia za pośrednictwem interfejsu, tworząc wspólnie tzw. urządzenie peryferyjnewspólnie tzw. urządzenie peryferyjne
2020
wspólnie tzw. urządzenie peryferyjnewspólnie tzw. urządzenie peryferyjne
�� Podstawowymi funkcjami realizowanymi przez układ Podstawowymi funkcjami realizowanymi przez układ wejściawejścia--wyjścia jest:wyjścia jest:–– komunikacja z urządzeniem zewnętrznym (głównie przez komunikacja z urządzeniem zewnętrznym (głównie przez
interfejs równoległy lub szeregowy), polegająca na interfejs równoległy lub szeregowy), polegająca na przesyłaniu danych, wysyłaniu do niego rozkazów przesyłaniu danych, wysyłaniu do niego rozkazów sterujących i odczytywaniu informacji o jego staniesterujących i odczytywaniu informacji o jego stanie
Obsługa urządzeń zewnętrznychObsługa urządzeń zewnętrznych
–– komunikacja z procesorem, obejmująca dekodowanie komunikacja z procesorem, obejmująca dekodowanie adresu układu, wymianę danych, przesyłanie rozkazów i adresu układu, wymianę danych, przesyłanie rozkazów i informacji o stanie układuinformacji o stanie układu
–– buforowanie i formatowanie danychbuforowanie i formatowanie danych
–– wykrywanie i informowanie o błędachwykrywanie i informowanie o błędach
�� Przestrzeń adresowa układów wejściaPrzestrzeń adresowa układów wejścia--wyjścia może wyjścia może być:być:
2121
być:być:–– odwzorowana w pamięci (układy wejściaodwzorowana w pamięci (układy wejścia--wyjścia i komórki wyjścia i komórki
pamięci współdzielą tę samą przestrzeń adresową)pamięci współdzielą tę samą przestrzeń adresową)
–– izolowana (układy wejściaizolowana (układy wejścia--wyjścia i komórki pamięci wyjścia i komórki pamięci korzystają z niezależnych przestrzeni adresowych)korzystają z niezależnych przestrzeni adresowych)
Obsługa urządzeń zewnętrznychObsługa urządzeń zewnętrznych
�� Do typowych układów wejściaDo typowych układów wejścia--wyjścia zaliczamy:wyjścia zaliczamy:–– układy szeregowej i równoległej transmisji danychukłady szeregowej i równoległej transmisji danych
–– timery (układy pomiaru czasu, zliczania lub generowania timery (układy pomiaru czasu, zliczania lub generowania zdarzeń)zdarzeń)
–– zegary czasu rzeczywistegozegary czasu rzeczywistego
–– układy przetworników analogowoukłady przetworników analogowo--cyfrowych i cyfrowocyfrowych i cyfrowo--
2222
–– układy przetworników analogowoukłady przetworników analogowo--cyfrowych i cyfrowocyfrowych i cyfrowo--analogowychanalogowych
�� Sterowanie pracą urządzenia zewnętrznego polega Sterowanie pracą urządzenia zewnętrznego polega na zaprogramowaniu sterującego nim układu na zaprogramowaniu sterującego nim układu wejściawejścia--wyjścia, czyli wpisaniu do odpowiadającego wyjścia, czyli wpisaniu do odpowiadającego mu portu określonej wartości, która wymusza takie a mu portu określonej wartości, która wymusza takie a nie inne zachowanie urządzenianie inne zachowanie urządzenia
Obsługa urządzeń zewnętrznychObsługa urządzeń zewnętrznych
�� Przesyłanie danych między urządzeniem Przesyłanie danych między urządzeniem peryferyjnym a pamięcią operacyjną może odbywać peryferyjnym a pamięcią operacyjną może odbywać się w trybie programowanego wejściasię w trybie programowanego wejścia--wyjścia PIO wyjścia PIO ((Programmed Input/OutputProgrammed Input/Output) lub w trybie ) lub w trybie bezpośredniego dostępu do pamięci DMA (bezpośredniego dostępu do pamięci DMA (Direct Direct Memory AccessMemory Access))
2323
Memory AccessMemory Access))
�� W trybie programowanego wejściaW trybie programowanego wejścia--wyjścia całym wyjścia całym procesem przesyłania danych zajmuje się procesorprocesem przesyłania danych zajmuje się procesor
�� W trybie bezpośredniego dostępu do pamięci W trybie bezpośredniego dostępu do pamięci procesor przechodzi w stan wysokiej impedancji, a procesor przechodzi w stan wysokiej impedancji, a na czas transmisji danych kontrolę nad magistralami na czas transmisji danych kontrolę nad magistralami komputera przejmuje układ DMAkomputera przejmuje układ DMA
Obsługa urządzeń zewnętrznychObsługa urządzeń zewnętrznych
�� Urządzenie może poinformować procesor o zmianie Urządzenie może poinformować procesor o zmianie swojego stanu zgłaszając tzw. przerwanie (swojego stanu zgłaszając tzw. przerwanie (interruptinterrupt))
�� Typową sytuację powodującą zgłoszenie przerwania Typową sytuację powodującą zgłoszenie przerwania jest zajście zdarzenia zewnętrznego lub zakończenie jest zajście zdarzenia zewnętrznego lub zakończenie zadania „zleconego” urządzeniu przez procesorzadania „zleconego” urządzeniu przez procesor
�� Zgłoszenie przerwania przez urządzenie powoduje Zgłoszenie przerwania przez urządzenie powoduje
2424
�� Zgłoszenie przerwania przez urządzenie powoduje Zgłoszenie przerwania przez urządzenie powoduje zawieszenie wykonywania bieżącego programu, zawieszenie wykonywania bieżącego programu, wykonanie procedury obsługi przerwania a następnie wykonanie procedury obsługi przerwania a następnie powrót do wykonywania bieżącego programupowrót do wykonywania bieżącego programu
�� Alternatywną metodą sprawdzania stanu urządzenia Alternatywną metodą sprawdzania stanu urządzenia jest jego cykliczne przepytywanie przez procesor w jest jego cykliczne przepytywanie przez procesor w oczekiwaniu na spełnienie warunków koniecznych do oczekiwaniu na spełnienie warunków koniecznych do realizacji transmisji (realizacji transmisji (pollingpolling))
Podstawowe własności i klasyfikacje pamięciPodstawowe własności i klasyfikacje pamięci
�� W typowym systemie komputerowym można W typowym systemie komputerowym można zauważyć hierarchię podsystemów pamięci zauważyć hierarchię podsystemów pamięci ––niektóre z nich umiejscowione są bezpośrednio w niektóre z nich umiejscowione są bezpośrednio w procesorze, inne tworzą główną pamięć operacyjną, procesorze, inne tworzą główną pamięć operacyjną, jeszcze inne są podłączane do urządzeń wejściajeszcze inne są podłączane do urządzeń wejścia--wyjścia stanowiąc pamięć pomocnicząwyjścia stanowiąc pamięć pomocniczą
2525
wyjścia stanowiąc pamięć pomocnicząwyjścia stanowiąc pamięć pomocniczą
�� Podstawową własnością pamięci jest jej Podstawową własnością pamięci jest jej pojemnośćpojemnośćwyrażana najczęściej w bajtach lub w słowachwyrażana najczęściej w bajtach lub w słowach
�� Innym parametrem związanym z pojemnością jest Innym parametrem związanym z pojemnością jest tzw. tzw. jednostka transferujednostka transferu ((transfer unittransfer unit) będąca liczbą ) będąca liczbą bitów jednocześnie odczytywanych z pamięci lub do bitów jednocześnie odczytywanych z pamięci lub do niej zapisywanychniej zapisywanych
Podstawowe własności i klasyfikacje pamięciPodstawowe własności i klasyfikacje pamięci
�� W zależności od W zależności od sposobu dostępusposobu dostępu pamięci możemy pamięci możemy podzielić na:podzielić na:–– pamięci o dostępie sekwencyjnym, w których dostęp do pamięci o dostępie sekwencyjnym, w których dostęp do
danych (najczęściej w postaci rekordów) jest możliwy w danych (najczęściej w postaci rekordów) jest możliwy w określonej sekwencji liniowej (przykład: pamięć taśmowa)określonej sekwencji liniowej (przykład: pamięć taśmowa)
–– pamięci o dostępie bezpośrednim, w których możliwy jest pamięci o dostępie bezpośrednim, w których możliwy jest bezpośredni dostęp do bloku danych (dzięki mechanizmowi bezpośredni dostęp do bloku danych (dzięki mechanizmowi
2626
bezpośredni dostęp do bloku danych (dzięki mechanizmowi bezpośredni dostęp do bloku danych (dzięki mechanizmowi adresacji bloku), natomiast dostęp do konkretnej danej w adresacji bloku), natomiast dostęp do konkretnej danej w bloku odbywa się sekwencyjnie (przykład: pamięć dyskowa)bloku odbywa się sekwencyjnie (przykład: pamięć dyskowa)
–– pamięci o dostępie swobodnym, w których poszczególne pamięci o dostępie swobodnym, w których poszczególne dane mają swój unikatowy adres i dostęp do nich nie zależy dane mają swój unikatowy adres i dostęp do nich nie zależy od sekwencji poprzednio wykonanych operacji dostępu od sekwencji poprzednio wykonanych operacji dostępu (przykład: pamięć operacyjna)(przykład: pamięć operacyjna)
Podstawowe własności i klasyfikacje pamięciPodstawowe własności i klasyfikacje pamięci
–– pamięci o dostępie skojarzeniowym, będący rodzajem pamięci o dostępie skojarzeniowym, będący rodzajem dostępu swobodnego, w których adresowanie danych dostępu swobodnego, w których adresowanie danych odbywa się na zasadzie badania zgodności (porównywania) odbywa się na zasadzie badania zgodności (porównywania) wybranych bitów słowa z zawartością pamięci (przykład: wybranych bitów słowa z zawartością pamięci (przykład: pamięć podręczna)pamięć podręczna)
�� Kolejną istotną własnością pamięci jest jej Kolejną istotną własnością pamięci jest jej wydajnośćwydajność, określana m.in. przez następujące , określana m.in. przez następujące
2727
wydajnośćwydajność, określana m.in. przez następujące , określana m.in. przez następujące parametry:parametry:–– czas dostępu czas dostępu –– czas od chwili doprowadzenia adresu do czas od chwili doprowadzenia adresu do
momentu udostępnienia danychmomentu udostępnienia danych
–– czas cyklu pamięci czas cyklu pamięci –– czas jaki musi upłynąć między dwiema czas jaki musi upłynąć między dwiema operacjami dostępu do pamięcioperacjami dostępu do pamięci
–– szybkość przesyłania szybkość przesyłania –– szybkość z jaką dane mogą być szybkość z jaką dane mogą być wprowadzane do pamięci lub z niej wyprowadzanewprowadzane do pamięci lub z niej wyprowadzane
Podstawowe własności i klasyfikacje pamięciPodstawowe własności i klasyfikacje pamięci
�� W zależności od W zależności od technologii wykonaniatechnologii wykonania pamięci pamięci możemy podzielić na półprzewodnikowe, optyczne i możemy podzielić na półprzewodnikowe, optyczne i magnetycznemagnetyczne
�� Pamięci półprzewodnikowe możemy podzielić na Pamięci półprzewodnikowe możemy podzielić na następujące typy:następujące typy:–– pamięci o dostępie swobodnym RAM (pamięci o dostępie swobodnym RAM (Random Access Random Access
2828
–– pamięci o dostępie swobodnym RAM (pamięci o dostępie swobodnym RAM (Random Access Random Access MemoryMemory))
–– nieulotne pamięci o dostępie swobodnym NVRAM (nieulotne pamięci o dostępie swobodnym NVRAM (NonNon--Volatile RAMVolatile RAM))
–– pamięci stałe ROM (pamięci stałe ROM (Read Only MemoryRead Only Memory))
–– programowalne pamięci stałe PROM (programowalne pamięci stałe PROM (Programmable ROMProgrammable ROM))
–– wymazywalne pamięci stałe EPROM (wymazywalne pamięci stałe EPROM (Erasable and Erasable and Programmable ROMProgrammable ROM))
Podstawowe własności i klasyfikacje pamięciPodstawowe własności i klasyfikacje pamięci
–– elektrycznie wymazywalne pamięci stałe EEPROM elektrycznie wymazywalne pamięci stałe EEPROM ((Electrically Erasable and Programmable ROMElectrically Erasable and Programmable ROM))
–– pamięci błyskawiczne (błyskowe) FLASHpamięci błyskawiczne (błyskowe) FLASH
�� Pamięci o dostępie swobodnym RAM można podzielić Pamięci o dostępie swobodnym RAM można podzielić na:na:–– pamięci statyczne SRAM (pamięci statyczne SRAM (Static RAMStatic RAM), w których komórki ), w których komórki
2929
–– pamięci statyczne SRAM (pamięci statyczne SRAM (Static RAMStatic RAM), w których komórki ), w których komórki pamięci zbudowane są z dwustanowych przerzutników pamięci zbudowane są z dwustanowych przerzutników (konstruowanych z bramek logicznych)(konstruowanych z bramek logicznych)
–– pamięci dynamiczne DRAM (pamięci dynamiczne DRAM (Dynamic RAMDynamic RAM), w których ), w których komórki pamięci zbudowane są z układów przechowujących komórki pamięci zbudowane są z układów przechowujących ładunek elektryczny (konstruowanych z kondensatora i ładunek elektryczny (konstruowanych z kondensatora i tranzystora) i wymagających okresowego odświeżania tranzystora) i wymagających okresowego odświeżania ładunku w celu zachowania danychładunku w celu zachowania danych
Podstawowe własności i klasyfikacje pamięciPodstawowe własności i klasyfikacje pamięci
�� Schematyczny diagram komórek pamięci RAM:Schematyczny diagram komórek pamięci RAM:
DRAM
Row line
SRAMVDD
3030
¬Bit
Cd
Row line
(word line)
Column line
(bit line) Bit
Word line
Pamięć operacyjnaPamięć operacyjna
�� Pamięć operacyjna typowego komputera zbudowana Pamięć operacyjna typowego komputera zbudowana jest z układów pamięci DRAMjest z układów pamięci DRAM
�� W układzie pamięci DRAM można wyróżnić m.in. W układzie pamięci DRAM można wyróżnić m.in. następujące linie sygnałowe:następujące linie sygnałowe:–– adresy słowa Aadresy słowa A00÷÷AAmm--11 (m linii adresowych pozwalających na (m linii adresowych pozwalających na
zaadresowanie maksymalnie 2zaadresowanie maksymalnie 22*m2*m słów)słów)
3131
zaadresowanie maksymalnie 2zaadresowanie maksymalnie 2 słów)słów)
–– dane słowa Ddane słowa D00÷÷DDnn--11 (n linii danych)(n linii danych)
–– uaktywnienie układu CE (uaktywnienie układu CE (Chip EnableChip Enable))
–– zezwolenie na zapis WE (zezwolenie na zapis WE (Write EnableWrite Enable))
–– zezwolenie na odczyt OE (zezwolenie na odczyt OE (Output EnableOutput Enable))
–– wybór adresu wiersza RAS (wybór adresu wiersza RAS (Raw Address StrobeRaw Address Strobe))
–– wybór adresu kolumny CAS (wybór adresu kolumny CAS (Column Address StrobeColumn Address Strobe))
Pamięć operacyjnaPamięć operacyjna
�� Organizacja wewnętrzna układu pamięci DRAM:Organizacja wewnętrzna układu pamięci DRAM:
Column
decoder
Sense a
mplif
iers
ADDR
addre
ss
Colu
mn
addre
ss
buffer
Multip
lexer
3232
Row
decoder
Sense a
mplif
iers
Data
buffer
(M × M × N)
Storage
matrix
Contr
ol
logic
DATA
CASRASWECE
Row
addre
ss
buffer
Multip
lexer
Pamięć operacyjnaPamięć operacyjna
�� Cykl odczytu pamięci DRAM działającej w trybie PM Cykl odczytu pamięci DRAM działającej w trybie PM ((Page ModePage Mode):):
CAS
RAS
3333
ADDR
CAS
DATA
WE
Data Out
ColumnRow
Pamięć operacyjnaPamięć operacyjna
�� Cykl zapisu pamięci DRAM działającej w trybie PM Cykl zapisu pamięci DRAM działającej w trybie PM ((Page ModePage Mode):):
CAS
RAS
3434
ADDR
CAS
DATA
WE
Data In
ColumnRow
Pamięć operacyjnaPamięć operacyjna
�� Cykl odczytu pamięci DRAM działającej w trybie FPM Cykl odczytu pamięci DRAM działającej w trybie FPM ((Fast Page ModeFast Page Mode):):
CAS
RAS
3535
ADDR
CAS
DATA
WE
Col #1Row Col #2 Col #3 Col #4
Dout#2
Dout#1
Dout#3
Dout#4
Pamięć operacyjnaPamięć operacyjna
�� Cykl zapisu pamięci DRAM działającej w trybie FPM Cykl zapisu pamięci DRAM działającej w trybie FPM ((Fast Page ModeFast Page Mode):):
CAS
RAS
3636
ADDR
CAS
DATA
WE
Col #1Row Col #2 Col #3 Col #4
Din #1 Din #2 Din #3 Din #4
Pamięć operacyjnaPamięć operacyjna
�� Cykl odczytu pamięci DRAM działającej w trybie Cykl odczytu pamięci DRAM działającej w trybie pakietowym (pakietowym (Burst ModeBurst Mode):):
CAS
RAS
3737
ADDR
CAS
DATA
WE
ColumnRow
Dout + 0 Dout + 1 Dout + 2 Dout + 3
Pamięć operacyjnaPamięć operacyjna
�� Cykl zapisu pamięci DRAM działającej w trybie Cykl zapisu pamięci DRAM działającej w trybie pakietowym (pakietowym (Burst ModeBurst Mode):):
CAS
RAS
3838
ADDR
CAS
DATA
WE
Din + 0 Din + 1 Din + 2 Din + 3
ColumnRow
Pamięć operacyjnaPamięć operacyjna
�� Cechą charakterystyczną układów pamięci DRAM, Cechą charakterystyczną układów pamięci DRAM, wynikającą z zasady jej działania jest konieczność wynikającą z zasady jej działania jest konieczność okresowego odświeżania komórek pamięci tj. okresowego odświeżania komórek pamięci tj. uzupełniania ładunków elektrycznych w tych uzupełniania ładunków elektrycznych w tych komórkach pamięci, które przechowują wartość komórkach pamięci, które przechowują wartość logiczną „1” logiczną „1”
3939
logiczną „1” logiczną „1”
�� W celu prawidłowego funkcjonowania mechanizmu W celu prawidłowego funkcjonowania mechanizmu odświeżania konieczne jest cykliczne pobudzanie odświeżania konieczne jest cykliczne pobudzanie (adresowanie) poszczególnych wierszy matrycy (adresowanie) poszczególnych wierszy matrycy pamięci z częstotliwością nie mniejszą, niż to wynika pamięci z częstotliwością nie mniejszą, niż to wynika z tzw. czasu cyklu odświeżania (z tzw. czasu cyklu odświeżania (Refresh TimeRefresh Time))
Pamięć operacyjnaPamięć operacyjna
�� Operacja odświeżania pamięci DRAM realizowana Operacja odświeżania pamięci DRAM realizowana jest przez układy logiczne będące albo elementem jest przez układy logiczne będące albo elementem systemu komputerowego (kontroler pamięci) albo systemu komputerowego (kontroler pamięci) albo stanowiące integralną część samego układu pamięcistanowiące integralną część samego układu pamięci
�� Istnieją cztery podstawowe sposoby odświeżania Istnieją cztery podstawowe sposoby odświeżania pamięci DRAM:pamięci DRAM:
4040
pamięci DRAM:pamięci DRAM:–– odświeżanie sygnałem RAS (odświeżanie sygnałem RAS (RAS OnlyRAS Only))
–– odświeżanie CAS przed RAS (odświeżanie CAS przed RAS (CBRCBR, , CASCAS--beforebefore--RASRAS))
–– odświeżanie ukryte (odświeżanie ukryte (HiddenHidden))
–– autoodświeżanie (autoodświeżanie (SelfSelf--refreshrefresh))
Pamięć operacyjnaPamięć operacyjna
�� Cykl odświeżania sygnałem RAS (Cykl odświeżania sygnałem RAS (RASRAS--OnlyOnly) pamięci ) pamięci DRAM:DRAM:
CAS
RAS
4141
RowADDR
CAS
DATA
WE
Pamięć operacyjnaPamięć operacyjna
�� Podstawowym, stosowanym obecnie typem pamięci Podstawowym, stosowanym obecnie typem pamięci dynamicznej jest pamięć SDRAM (dynamicznej jest pamięć SDRAM (Synchronous Synchronous DRAMDRAM), która różni się od typowej pamięci DRAM ), która różni się od typowej pamięci DRAM sposobem sterowania matrycą pamięci oraz techniką sposobem sterowania matrycą pamięci oraz techniką dostępudostępu
�� Cechą charakterystyczną układu pamięci DRAM jest Cechą charakterystyczną układu pamięci DRAM jest
4242
�� Cechą charakterystyczną układu pamięci DRAM jest Cechą charakterystyczną układu pamięci DRAM jest synchronizowaniesynchronizowanie wszystkich sygnałów sterujących wszystkich sygnałów sterujących specjalnym przebiegiem zegarowym (CK), co ułatwia specjalnym przebiegiem zegarowym (CK), co ułatwia współpracę z magistralami systemu komputerowego współpracę z magistralami systemu komputerowego i pozwala na zwiększenie szybkości jej działaniai pozwala na zwiększenie szybkości jej działania
�� Pamięć SDRAM jest optymalizowana do realizacji Pamięć SDRAM jest optymalizowana do realizacji przesyłania pakietowego, ale dostęp do niej jest przesyłania pakietowego, ale dostęp do niej jest także możliwy w trybie pojedynczych cyklitakże możliwy w trybie pojedynczych cykli
Pamięć operacyjnaPamięć operacyjna
�� Układ pamięci SDRAM zbudowany jest z niezależnych Układ pamięci SDRAM zbudowany jest z niezależnych od siebie banków (najczęściej dwóch lub czterech), od siebie banków (najczęściej dwóch lub czterech), które adresowane są naprzemiennie, co przyspiesza które adresowane są naprzemiennie, co przyspiesza proces dostępu do danychproces dostępu do danych
�� W układ pamięci SDRAM wbudowany jest licznik W układ pamięci SDRAM wbudowany jest licznik odświeżania i układy logiczne, które pozwalają na odświeżania i układy logiczne, które pozwalają na
4343
odświeżania i układy logiczne, które pozwalają na odświeżania i układy logiczne, które pozwalają na jego autonomiczne odświeżaniejego autonomiczne odświeżanie
�� Przed użyciem pamięć SDRAM wymaga Przed użyciem pamięć SDRAM wymaga zaprogramowania przez wpisanie do specjalnego zaprogramowania przez wpisanie do specjalnego rejestru (rejestru (Mode RegisterMode Register) informacji konfiguracyjnych ) informacji konfiguracyjnych m.in. parametrów czasowych, liczby przesyłanych m.in. parametrów czasowych, liczby przesyłanych słów w pojedynczym cyklu pakietowymsłów w pojedynczym cyklu pakietowym
Pamięć operacyjnaPamięć operacyjna
�� W celu uzyskania określonej liczby jednorazowo W celu uzyskania określonej liczby jednorazowo przesyłanych bitów danych układy pamięci łączone przesyłanych bitów danych układy pamięci łączone są w tzw. moduły (np. SIMM, DIMM)są w tzw. moduły (np. SIMM, DIMM)
�� W przypadku modułów DIMM informacje o jego W przypadku modułów DIMM informacje o jego strukturze wewnętrznej niezbędne do prawidłowego strukturze wewnętrznej niezbędne do prawidłowego zaprogramowania układów SDRAM pamiętane są w zaprogramowania układów SDRAM pamiętane są w
4444
zaprogramowania układów SDRAM pamiętane są w zaprogramowania układów SDRAM pamiętane są w niewielkiej (256 B) pamięci stałej SPD (niewielkiej (256 B) pamięci stałej SPD (Serial Serial Presence DetectPresence Detect))
�� W przypadku konstrukcji modułów złożonych z dużej W przypadku konstrukcji modułów złożonych z dużej liczby układów pamięci może okazać się konieczne liczby układów pamięci może okazać się konieczne buforowanie sygnałów sterujących modułembuforowanie sygnałów sterujących modułem
Pamięć operacyjnaPamięć operacyjna
�� Odmianą pamięci SDRAM są pamięci DDR (Odmianą pamięci SDRAM są pamięci DDR (Double Double Data RateData Rate), które w każdym takcie zegara przekazują ), które w każdym takcie zegara przekazują dwa słowa danychdwa słowa danych
�� Do układu pamięci DDR przekazywane są dwa Do układu pamięci DDR przekazywane są dwa komplementarne przebiegi zegarowe (CLK/¬CLK), komplementarne przebiegi zegarowe (CLK/¬CLK), których przecięcie wyznacza moment kluczowaniaktórych przecięcie wyznacza moment kluczowania
4545
których przecięcie wyznacza moment kluczowaniaktórych przecięcie wyznacza moment kluczowania
�� Pamięć DDR wykorzystuje dodatkowo Pamięć DDR wykorzystuje dodatkowo dwukierunkowy sygnał strobujący DQS, który w dwukierunkowy sygnał strobujący DQS, który w cyklu odczytu generowany jest przez układ pamięci, cyklu odczytu generowany jest przez układ pamięci, natomiast w cyklu zapisu przez kontroler pamięcinatomiast w cyklu zapisu przez kontroler pamięci
�� Dane są odczytywane z pamięci w środku impulsu Dane są odczytywane z pamięci w środku impulsu DQS, a zapisywane do niej na zboczach tego impulsuDQS, a zapisywane do niej na zboczach tego impulsu
Pamięć operacyjnaPamięć operacyjna
�� Innym typem stosowanych obecnie układów pamięci Innym typem stosowanych obecnie układów pamięci są pamięci RDRAM (są pamięci RDRAM (Rambus DRAMRambus DRAM), które do ), które do komunikacji z otoczeniem wykorzystują dedykowaną komunikacji z otoczeniem wykorzystują dedykowaną magistralę Rambus przesyłającą dane w trybie magistralę Rambus przesyłającą dane w trybie pakietowympakietowym
�� Pojedynczy kanał magistrali Rambus pozwala na Pojedynczy kanał magistrali Rambus pozwala na
4646
�� Pojedynczy kanał magistrali Rambus pozwala na Pojedynczy kanał magistrali Rambus pozwala na dołączenie maksymalnie 32 układów pamięcidołączenie maksymalnie 32 układów pamięci
�� Magistrala Rambus jest bardzo szybką (taktowanie Magistrala Rambus jest bardzo szybką (taktowanie 400 MHz) magistralą o szerokości 16 bitów danych 400 MHz) magistralą o szerokości 16 bitów danych (podzielonych na dwie 8(podzielonych na dwie 8--bitowe szyny: DQA i DQB), bitowe szyny: DQA i DQB), co pozwala na transmisję danych z szybkością 1.6 co pozwala na transmisję danych z szybkością 1.6 GB/sGB/s
Pamięć operacyjnaPamięć operacyjna
�� Informacja w pamięci RDRAM przechowywana jest w Informacja w pamięci RDRAM przechowywana jest w typowych blokach pamięci SDRAM zorganizowanych typowych blokach pamięci SDRAM zorganizowanych w niezależne banki (zwykle od 4 do 32) o szerokości w niezależne banki (zwykle od 4 do 32) o szerokości najczęściej 128 bitównajczęściej 128 bitów
�� Układy logiczne pamięci RDRAM przesyłają takie Układy logiczne pamięci RDRAM przesyłają takie porcje danych z/do magistrali Rambus wykorzystując porcje danych z/do magistrali Rambus wykorzystując
4747
porcje danych z/do magistrali Rambus wykorzystując porcje danych z/do magistrali Rambus wykorzystując bardzo szybkie multipleksery i demultiplekserybardzo szybkie multipleksery i demultipleksery
�� Do synchronizacji przesyłanych danych magistrala Do synchronizacji przesyłanych danych magistrala Rambus wykorzystuje dwie pary komplementarnych Rambus wykorzystuje dwie pary komplementarnych sygnałów zegarowych CTM (sygnałów zegarowych CTM (Clock to MasterClock to Master) i CFM ) i CFM ((Clock from MasterClock from Master))
Pamięć operacyjnaPamięć operacyjna
�� Dane są odczytywane z układu pamięci w trakcie Dane są odczytywane z układu pamięci w trakcie narastającego i opadającego zbocza sygnału CTM, a narastającego i opadającego zbocza sygnału CTM, a zapisywane do niego w trakcie narastającego i zapisywane do niego w trakcie narastającego i opadającego zbocza sygnału CFMopadającego zbocza sygnału CFM
�� Układ pamięci RDRAM wyposażony jest w 8Układ pamięci RDRAM wyposażony jest w 8--bitową bitową magistralę adresową, w której 3 bity przypadają na magistralę adresową, w której 3 bity przypadają na
4848
magistralę adresową, w której 3 bity przypadają na magistralę adresową, w której 3 bity przypadają na adres wiersza, a 5 bitów na adres kolumnyadres wiersza, a 5 bitów na adres kolumny
�� Przed użyciem układ pamięci RDRAM wymaga Przed użyciem układ pamięci RDRAM wymaga zaprogramowania tj. wpisania do jego wewnętrznych zaprogramowania tj. wpisania do jego wewnętrznych rejestrów sterujących odpowiednich informacji rejestrów sterujących odpowiednich informacji konfiguracyjnych (przesłanych z wykorzystaniem linii konfiguracyjnych (przesłanych z wykorzystaniem linii sterujących magistrali Rambus)sterujących magistrali Rambus)
Pamięć operacyjnaPamięć operacyjna
�� Z uwagi na możliwość wystąpienia przekłamań Z uwagi na możliwość wystąpienia przekłamań układy pamięci i ich kontrolery wyposaża się układy pamięci i ich kontrolery wyposaża się dodatkowo w mechanizmy, których celem jest dodatkowo w mechanizmy, których celem jest wykrycie albo wykrycie i korekcja błędówwykrycie albo wykrycie i korekcja błędów
�� Najprostszym stosowanym mechanizmem Najprostszym stosowanym mechanizmem wykrywającym błędy jest tzw. kontrola parzystościwykrywającym błędy jest tzw. kontrola parzystości
4949
wykrywającym błędy jest tzw. kontrola parzystościwykrywającym błędy jest tzw. kontrola parzystości
�� Realizacja kontroli parzystości wymaga zapamiętania Realizacja kontroli parzystości wymaga zapamiętania dodatkowego bitu, którego wartość dobierana jest dodatkowego bitu, którego wartość dobierana jest tak, aby liczba „jedynek” w słowie danych była tak, aby liczba „jedynek” w słowie danych była parzysta (operacja XOR)parzysta (operacja XOR)
�� Kontrola parzystości pozwala na wykrycie dowolnej Kontrola parzystości pozwala na wykrycie dowolnej nieparzystej liczby błędnych bitów danychnieparzystej liczby błędnych bitów danych
Pamięć operacyjnaPamięć operacyjna
�� Bardziej zaawansowanym mechanizmem kontrolnym Bardziej zaawansowanym mechanizmem kontrolnym są tzw. kody korekcyjne ECC (są tzw. kody korekcyjne ECC (Error Correction CodeError Correction Code) ) bazujące głównie na tzw. kodowaniu Hammingabazujące głównie na tzw. kodowaniu Hamminga
�� Najprostsza wersja kodu Hamminga polega na Najprostsza wersja kodu Hamminga polega na generowaniu bitów parzystości dla odpowiednio generowaniu bitów parzystości dla odpowiednio dobranych grup bitów danychdobranych grup bitów danych
5050
dobranych grup bitów danychdobranych grup bitów danych
�� Przykładowo korekcja jednego bitu w słowie 64Przykładowo korekcja jednego bitu w słowie 64--bitowym wymaga dodatkowych 7 bitów kontrolnychbitowym wymaga dodatkowych 7 bitów kontrolnych
�� Stosowane obecnie 8Stosowane obecnie 8--bitowy kod ECC w modułach bitowy kod ECC w modułach pamięci DIMM pozwala na wykrycie przekłamań pamięci DIMM pozwala na wykrycie przekłamań dowolnych dwóch bitów oraz na korekcję dowolnego dowolnych dwóch bitów oraz na korekcję dowolnego pojedynczego bitu w 64pojedynczego bitu w 64--bitowym słowie danychbitowym słowie danych
Pamięć dyskowa Pamięć dyskowa
�� Nośnikiem w pamięciach dyskowych jest krążek Nośnikiem w pamięciach dyskowych jest krążek (dysk) z tworzywa pokrytego warstwą magnetyczną(dysk) z tworzywa pokrytego warstwą magnetyczną
�� W niewielkiej odległości nad/pod obracającym się W niewielkiej odległości nad/pod obracającym się dyskiem umieszczona jest na ruchomym ramieniu dyskiem umieszczona jest na ruchomym ramieniu głowica odczytującogłowica odczytująco--zapisującazapisująca
�� W trakcie zapisu przepływający przez głowicę prąd W trakcie zapisu przepływający przez głowicę prąd
5151
�� W trakcie zapisu przepływający przez głowicę prąd W trakcie zapisu przepływający przez głowicę prąd elektryczny wytwarza pole magnetyczne trwale elektryczny wytwarza pole magnetyczne trwale namagnesowujące przemieszczający się nad/pod namagnesowujące przemieszczający się nad/pod głowicą nośnikgłowicą nośnik
�� W trakcie odczytu przemieszczający się nad/pod W trakcie odczytu przemieszczający się nad/pod głowicą nośnik wytwarza zmienne pole magnetyczne głowicą nośnik wytwarza zmienne pole magnetyczne wzbudzające w głowicy prąd elektrycznywzbudzające w głowicy prąd elektryczny
Pamięć dyskowaPamięć dyskowa
�� Ruch obrotowy dysku pozwala na dostęp do Ruch obrotowy dysku pozwala na dostęp do informacji zlokalizowanej w dowolnym miejscu informacji zlokalizowanej w dowolnym miejscu koncentrycznego okręgu czyli pierścienia na dyskukoncentrycznego okręgu czyli pierścienia na dysku
�� Dostęp do kolejnej „porcji danych” (kolejnego Dostęp do kolejnej „porcji danych” (kolejnego pierścienia na dysku) wymaga przesunięcia ramienia, pierścienia na dysku) wymaga przesunięcia ramienia, na którym zamocowana jest głowica czyli tzw. na którym zamocowana jest głowica czyli tzw.
5252
na którym zamocowana jest głowica czyli tzw. na którym zamocowana jest głowica czyli tzw. pozycjonowania głowicypozycjonowania głowicy
�� Aby w prawidłowy sposób odtworzyć zapisane dane Aby w prawidłowy sposób odtworzyć zapisane dane (zinterpretować impulsy z głowicy odczytującej) (zinterpretować impulsy z głowicy odczytującej) zapisywana na nośniku informacja użyteczna musi zapisywana na nośniku informacja użyteczna musi zostać „wzbogacona” o informacją synchronizującą zostać „wzbogacona” o informacją synchronizującą wynikającą z przyjętego wynikającą z przyjętego sposobu kodowaniasposobu kodowania
Pamięć dyskowaPamięć dyskowa
�� Przegląd sposobów kodowania informacji:Przegląd sposobów kodowania informacji:
1 0 0 0 0 1 0 1 1
FM
5353
MFM
RLL(2,7)
0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
Kody RLL
Pamięć dyskowaPamięć dyskowa
�� Nośnik w pamięci dyskowej (dysk) może być Nośnik w pamięci dyskowej (dysk) może być niewymienny (np. w dysku twardym) lub wymienny niewymienny (np. w dysku twardym) lub wymienny ((removableremovable) (np. w stacji dyskietek)) (np. w stacji dyskietek)
�� Warstwa magnetyczna może być umieszczona po Warstwa magnetyczna może być umieszczona po obu stronach nośnika (dysk dwustronny) lub tylko po obu stronach nośnika (dysk dwustronny) lub tylko po jednej stronie (dysk jednostronny)jednej stronie (dysk jednostronny)
5454
jednej stronie (dysk jednostronny)jednej stronie (dysk jednostronny)
�� W pamięci dyskowej może znajdować się jeden dysk W pamięci dyskowej może znajdować się jeden dysk lub ich większa liczba zamocowana na wspólnej osilub ich większa liczba zamocowana na wspólnej osi
�� Mechanizm głowicy może być kontaktowy, mieć Mechanizm głowicy może być kontaktowy, mieć ustaloną odległość (przerwę) od nośnika lub też ustaloną odległość (przerwę) od nośnika lub też odległość ta może być zmienna w wyniku odległość ta może być zmienna w wyniku oddziaływań aerodynamicznychoddziaływań aerodynamicznych
Pamięć dyskowaPamięć dyskowa
�� Przyjęta konstrukcja pamięci dyskowej powoduje, że Przyjęta konstrukcja pamięci dyskowej powoduje, że dane organizowane są dane organizowane są cylindrycylindry będące zbiorem będące zbiorem koncentrycznych okręgów o tym samym promieniu koncentrycznych okręgów o tym samym promieniu zwanych zwanych ścieżkamiścieżkami, które dzielone są na mniejsze , które dzielone są na mniejsze fragmenty (bloki danych) zwane fragmenty (bloki danych) zwane sektoramisektorami
5555
Cylinder
ŚcieżkaTalerz dysku
Sektor
Pamięć dyskowaPamięć dyskowa
�� Początek każdej ścieżki oznaczony jest:Początek każdej ścieżki oznaczony jest:–– ciągiem bajtów synchronizujących (ciągiem bajtów synchronizujących (SYNCSYNC))
–– znacznikiem adresowym indeksu (znacznikiem adresowym indeksu (IAMIAM))
�� W każdym sektorze można wyszczególnić: W każdym sektorze można wyszczególnić: –– ciąg bajtów synchronizujących (ciąg bajtów synchronizujących (SYNCSYNC))
–– znacznik adresowy (znacznik adresowy (IDAMIDAM))
5656
–– znacznik adresowy (znacznik adresowy (IDAMIDAM))
–– identyfikator (adres) sektora (identyfikator (adres) sektora (IDID))
–– znacznik adresowy danych (znacznik adresowy danych (DAMDAM))
–– blok danych sektorablok danych sektora
–– pola kodu ECC lub CRC (pola kodu ECC lub CRC (Cyclic Redundancy CheckCyclic Redundancy Check))
�� Znacznik początku ścieżki oraz poszczególne sektory Znacznik początku ścieżki oraz poszczególne sektory rozdzielone są od siebie przerwami (rozdzielone są od siebie przerwami (GAPGAP))
Pamięć dyskowaPamięć dyskowa
�� Adres fizyczny sektora na dysku (tzw. adres CHS) Adres fizyczny sektora na dysku (tzw. adres CHS) określają trzy parametry:określają trzy parametry:–– numer cylindra (numer cylindra (CylinderCylinder))
–– numer głowicy (numer głowicy (HeadHead))
–– numer sektora (numer sektora (SectorSector))
�� Czas dostępu do danych na dysku zależy od:Czas dostępu do danych na dysku zależy od:
5757
�� Czas dostępu do danych na dysku zależy od:Czas dostępu do danych na dysku zależy od:–– czasu przeszukiwania (czasu przeszukiwania (seek timeseek time) związanego z ) związanego z
pozycjonowaniem głowicy nad ścieżkąpozycjonowaniem głowicy nad ścieżką
–– czasu opóźnienia obrotowego (czasu opóźnienia obrotowego (rotational latencyrotational latency) ) związanego z przemieszczeniem się głowicy nad sektorzwiązanego z przemieszczeniem się głowicy nad sektor
�� Gęstość zapisu danych na dysku zależy od:Gęstość zapisu danych na dysku zależy od:–– szerokości ścieżkiszerokości ścieżki
–– przyjęty sposób kodowania danychprzyjęty sposób kodowania danych
Pamięć dyskowaPamięć dyskowa
�� W celu poprawy wydajności podsystemu dyskowego, W celu poprawy wydajności podsystemu dyskowego, a w szczególności zwiększenia jego niezawodności i a w szczególności zwiększenia jego niezawodności i szybkości działania stosuje się macierze dyskowe szybkości działania stosuje się macierze dyskowe RAID (RAID (Redundant Array of Independent DisksRedundant Array of Independent Disks))
�� Macierz RAID zbudowana jest z wielu połączonych ze Macierz RAID zbudowana jest z wielu połączonych ze sobą dysków fizycznych, które widoczne są przez sobą dysków fizycznych, które widoczne są przez
5858
sobą dysków fizycznych, które widoczne są przez sobą dysków fizycznych, które widoczne są przez system operacyjny jako jeden dysk logicznysystem operacyjny jako jeden dysk logiczny
�� Dane zapisywane w macierzy rozpraszane są na Dane zapisywane w macierzy rozpraszane są na wiele dysków, co gwarantuje odzyskanie danych w wiele dysków, co gwarantuje odzyskanie danych w przypadku uszkodzenia dyskuprzypadku uszkodzenia dysku
�� W praktyce stosuje się różne poziomy RAID W praktyce stosuje się różne poziomy RAID oznaczane zwykle jako RAID 0 do RAID 5oznaczane zwykle jako RAID 0 do RAID 5
Pamięć dyskowaPamięć dyskowa
�� Poziom RAID 0 (Poziom RAID 0 (stripingstriping))–– dane dzielone są na tzw. paski, które rozmieszczane są dane dzielone są na tzw. paski, które rozmieszczane są
cyklicznie na kolejnych dyskach macierzycyklicznie na kolejnych dyskach macierzy
–– brak redundancji danychbrak redundancji danych
–– duża szybkość odczytu i zapisu danychduża szybkość odczytu i zapisu danych
–– pojemność macierzy jest równa sumie pojemności pojemność macierzy jest równa sumie pojemności
5959
–– pojemność macierzy jest równa sumie pojemności pojemność macierzy jest równa sumie pojemności wszystkich dysków wchodzących w jej składwszystkich dysków wchodzących w jej skład
�� Poziom RAID 1 (Poziom RAID 1 (mirroringmirroring))–– dane są paskowane i następnie odwzorowywane na dwóch dane są paskowane i następnie odwzorowywane na dwóch
odrębnych dyskach fizycznychodrębnych dyskach fizycznych
–– średnia szybkość odczytu, mała szybkość zapisu danychśrednia szybkość odczytu, mała szybkość zapisu danych
–– pojemność macierzy jest równa połowie pojemności pojemność macierzy jest równa połowie pojemności wszystkich dysków wchodzących w jej składwszystkich dysków wchodzących w jej skład
Pamięć dyskowaPamięć dyskowa
�� Poziom RAID 2Poziom RAID 2–– dane są paskowane (na paski o rozmiarze mniejszym niż w dane są paskowane (na paski o rozmiarze mniejszym niż w
RAID 0 i RAID 1) i rozmieszczane cyklicznie na kolejnych RAID 0 i RAID 1) i rozmieszczane cyklicznie na kolejnych dyskach danych macierzydyskach danych macierzy
–– na pozostałych dyskach (tzw. dyskach redundancyjnych) na pozostałych dyskach (tzw. dyskach redundancyjnych) umieszczone zostają informacje korekcyjne, utworzone w umieszczone zostają informacje korekcyjne, utworzone w oparciu o kod Hamminga na podstawie odpowiednich bitów oparciu o kod Hamminga na podstawie odpowiednich bitów
6060
oparciu o kod Hamminga na podstawie odpowiednich bitów oparciu o kod Hamminga na podstawie odpowiednich bitów z każdego dysku danychz każdego dysku danych
–– liczba dysków redundancyjnych jest proporcjonalna do liczba dysków redundancyjnych jest proporcjonalna do logarytmu liczby dysków danychlogarytmu liczby dysków danych
–– duża szybkość odczytu i zapisu (równoległy dostęp do wielu duża szybkość odczytu i zapisu (równoległy dostęp do wielu dysków)dysków)
–– bardzo wysoki kosztbardzo wysoki koszt
Pamięć dyskowaPamięć dyskowa
�� Poziom RAID 3Poziom RAID 3–– dane są paskowane (na paski o podobnym rozmiarze jak w dane są paskowane (na paski o podobnym rozmiarze jak w
RAID 2) i rozmieszczane cyklicznie na kolejnych dyskach RAID 2) i rozmieszczane cyklicznie na kolejnych dyskach danych macierzydanych macierzy
–– na dysku redundancyjnym (tylko jednym niezależnie od na dysku redundancyjnym (tylko jednym niezależnie od rozmiarów macierzy) umieszczone zostają informacje rozmiarów macierzy) umieszczone zostają informacje korekcyjne, utworzone w oparciu o bity parzystości korekcyjne, utworzone w oparciu o bity parzystości
6161
korekcyjne, utworzone w oparciu o bity parzystości korekcyjne, utworzone w oparciu o bity parzystości wyliczone dla odpowiednich bitów z każdego dysku danychwyliczone dla odpowiednich bitów z każdego dysku danych
–– duża szybkość odczytu i zapisu (równoległy dostęp do wielu duża szybkość odczytu i zapisu (równoległy dostęp do wielu dysków)dysków)
�� Poziom RAID 4Poziom RAID 4–– dane są paskowane (na paski o dużym rozmiarze) i dane są paskowane (na paski o dużym rozmiarze) i
rozmieszczane cyklicznie na kolejnych dyskach danych rozmieszczane cyklicznie na kolejnych dyskach danych macierzymacierzy
Pamięć dyskowaPamięć dyskowa
–– na dysku redundancyjnym (tylko jednym niezależnie od na dysku redundancyjnym (tylko jednym niezależnie od rozmiarów macierzy) umieszczone zostają paski informacji rozmiarów macierzy) umieszczone zostają paski informacji korekcyjnych, utworzone w oparciu o bity parzystości korekcyjnych, utworzone w oparciu o bity parzystości wyliczone dla odpowiednich pasków z każdego dysku wyliczone dla odpowiednich pasków z każdego dysku danychdanych
–– dyski działają niezależnie od siebie, co pozwala na obsługę dyski działają niezależnie od siebie, co pozwala na obsługę wielu żądań wejściawielu żądań wejścia--wyjścia równoleglewyjścia równolegle
6262
wielu żądań wejściawielu żądań wejścia--wyjścia równoleglewyjścia równolegle
–– średnia szybkość odczytu, mała szybkość zapisuśrednia szybkość odczytu, mała szybkość zapisu
�� Poziom RAID 5 (Poziom RAID 5 (striping with paritystriping with parity))–– organizacja zbliżona do RAID 4organizacja zbliżona do RAID 4
–– paski parzystości są rozproszone na wszystkie dyski w paski parzystości są rozproszone na wszystkie dyski w macierzymacierzy
–– średnia szybkość odczytu i zapisu, ale lepsza niż w RAID 1średnia szybkość odczytu i zapisu, ale lepsza niż w RAID 1
Pamięć optycznaPamięć optyczna
�� W dyskach CDW dyskach CD--ROM (ROM (Compact Disk ROMCompact Disk ROM) nośnikiem ) nośnikiem jest przeźroczysta warstwa poliwęglanowa z jest przeźroczysta warstwa poliwęglanowa z wytłoczonymi wgłębieniami, która pokryta jest wytłoczonymi wgłębieniami, która pokryta jest cienką warstwą aluminium i zabezpieczona od góry cienką warstwą aluminium i zabezpieczona od góry powłoką lakierupowłoką lakieru
�� Przekrój poprzeczny nośnika CDPrzekrój poprzeczny nośnika CD--ROM:ROM:
6363
�� Przekrój poprzeczny nośnika CDPrzekrój poprzeczny nośnika CD--ROM:ROM:
Warstwa zabezpieczająca
Warstwa aluminiumWarstwa poliwęglanowa
Nadruk
land pit
Pamięć optycznaPamięć optyczna
�� Promień lasera odbijając się od warstwy aluminium Promień lasera odbijając się od warstwy aluminium w obszarze zwanym landem ulega mniejszemu w obszarze zwanym landem ulega mniejszemu rozproszeniu niż odbijając się w obszarze zwanym rozproszeniu niż odbijając się w obszarze zwanym pitempitem
�� Po odbiciu od nośnika promień lasera pada przez Po odbiciu od nośnika promień lasera pada przez półprzepuszczalny pryzmat i układ soczewek na półprzepuszczalny pryzmat i układ soczewek na
6464
półprzepuszczalny pryzmat i układ soczewek na półprzepuszczalny pryzmat i układ soczewek na światłoczułe detektory, których zadaniem jest:światłoczułe detektory, których zadaniem jest:–– przetworzenie zmian natężenia padającego światła na przetworzenie zmian natężenia padającego światła na
sygnał elektryczny (sygnał danych)sygnał elektryczny (sygnał danych)
–– wytworzenie sygnałów sterujących układem ogniskowania wytworzenie sygnałów sterujących układem ogniskowania wiązkiwiązki
–– wytworzenie sygnałów sterujących układem pozycjonowania wytworzenie sygnałów sterujących układem pozycjonowania wiązkiwiązki
Pamięć optycznaPamięć optyczna
�� Podczas odczytu promień lasera przemieszcza się Podczas odczytu promień lasera przemieszcza się nad spiralną ścieżką z szybkością zależną od nad spiralną ścieżką z szybkością zależną od prędkości wirowania płytyprędkości wirowania płyty
�� W praktyce stosuje się dwie metody odczytu danych:W praktyce stosuje się dwie metody odczytu danych:–– ze stałą prędkością liniową CLV (Constant Linear Velocity)ze stałą prędkością liniową CLV (Constant Linear Velocity)
–– ze stałą prędkością kątową CAV (Constant Angular Velocity)ze stałą prędkością kątową CAV (Constant Angular Velocity)
6565
–– ze stałą prędkością kątową CAV (Constant Angular Velocity)ze stałą prędkością kątową CAV (Constant Angular Velocity)
�� Informacje na płycie CDInformacje na płycie CD--ROM kodowane są metodą ROM kodowane są metodą EFM (EFM (Eight to Fourteen ModulationEight to Fourteen Modulation), w której każdy ), w której każdy zapisywany bajt zastępowany jest ciągiem 14 bitów zapisywany bajt zastępowany jest ciągiem 14 bitów dobranym w taki sposób, aby dwie kolejne jedynki dobranym w taki sposób, aby dwie kolejne jedynki były rozdzielone nie mniej niż dwoma i nie więcej niż były rozdzielone nie mniej niż dwoma i nie więcej niż dziesięcioma zerami (co oznacza 2 pity na bajt)dziesięcioma zerami (co oznacza 2 pity na bajt)
Pamięć optycznaPamięć optyczna
�� Dane na płycie CDDane na płycie CD--ROM zorganizowane są fizycznie ROM zorganizowane są fizycznie w ramki o następującej strukturze:w ramki o następującej strukturze:–– ciąg 27 bitów synchronizującychciąg 27 bitów synchronizujących
–– bajt sterującybajt sterujący
–– dwa 16dwa 16--bajtowe bloki (każdy złożony z ciągu 12 bajtów bajtowe bloki (każdy złożony z ciągu 12 bajtów danych i 4 bajtów kontrolnych)danych i 4 bajtów kontrolnych)
6666
danych i 4 bajtów kontrolnych)danych i 4 bajtów kontrolnych)
�� Grupa połączonych 98 ramek tworzy logiczny sektor, Grupa połączonych 98 ramek tworzy logiczny sektor, na który składa się:na który składa się:–– ciąg 12 bajtów synchronizującychciąg 12 bajtów synchronizujących
–– 4 bajtowy nagłówek4 bajtowy nagłówek
–– blok 2048 bajtów danychblok 2048 bajtów danych
–– blok 288 bajtów kontrolnoblok 288 bajtów kontrolno--korekcyjnychkorekcyjnych
Pamięć optycznaPamięć optyczna
�� Pojedynczy sektor zawiera 2048 bajtów danych Pojedynczy sektor zawiera 2048 bajtów danych zapisanych w trybie 1 (z korekcją błędów) lub 2336 zapisanych w trybie 1 (z korekcją błędów) lub 2336 bajtów danych zapisanych w trybie 2 (bez korekcji bajtów danych zapisanych w trybie 2 (bez korekcji błędów)błędów)
�� Bloki bajtów kontrolnoBloki bajtów kontrolno--korekcyjnych połączone z korekcyjnych połączone z odpowiednim rozlokowaniem (przeplotem) kolejnych odpowiednim rozlokowaniem (przeplotem) kolejnych
6767
odpowiednim rozlokowaniem (przeplotem) kolejnych odpowiednim rozlokowaniem (przeplotem) kolejnych ramek umożliwiają korekcję błędów metodą CIRC ramek umożliwiają korekcję błędów metodą CIRC ((CrossCross--Interleave ReedInterleave Reed--Solomon CodingSolomon Coding), która ), która pozwala na skorygowanie ciągu około 450 błędnych pozwala na skorygowanie ciągu około 450 błędnych bajtów danychbajtów danych
�� Typowa płyta CDTypowa płyta CD--ROM o średnicy 12 centymetrów ROM o średnicy 12 centymetrów może pomieścić 650może pomieścić 650--700MB danych700MB danych
Pamięć optycznaPamięć optyczna
�� Poza płytami CDPoza płytami CD--ROM przeznaczonymi wyłącznie do ROM przeznaczonymi wyłącznie do odczytu coraz większe znaczenie mają nośniki odczytu coraz większe znaczenie mają nośniki pozwalające na jednokrotny (CDpozwalające na jednokrotny (CD--R) lub wielokrotny R) lub wielokrotny (CD(CD--RW) zapis danychRW) zapis danych
�� Warstwa poliwęglanowa w tego typu płytach pokryta Warstwa poliwęglanowa w tego typu płytach pokryta jest specjalną substancją, która mętnieje (zmienia jest specjalną substancją, która mętnieje (zmienia
6868
jest specjalną substancją, która mętnieje (zmienia jest specjalną substancją, która mętnieje (zmienia postać z krystalicznej na amorficzną) pod wpływem postać z krystalicznej na amorficzną) pod wpływem naświetlania promieniem laserem o zwiększonej naświetlania promieniem laserem o zwiększonej mocy (co w konsekwencji powoduje zmniejszenie mocy (co w konsekwencji powoduje zmniejszenie natężenia wiązki odbitej w trakcie odczytu)natężenia wiązki odbitej w trakcie odczytu)
�� Substancja stosowana w płytach CDSubstancja stosowana w płytach CD--RW może na RW może na powrót zmienić postać na krystalicznąpowrót zmienić postać na krystaliczną
Pamięć optycznaPamięć optyczna
�� Powszechnie stosowanym rodzajem pamięci Powszechnie stosowanym rodzajem pamięci optycznej o dużej pojemności przeznaczonym do optycznej o dużej pojemności przeznaczonym do odczytu są płyty DVDodczytu są płyty DVD--ROM (ROM (Digital Versatile Disk Digital Versatile Disk ROMROM))
�� Dzięki zastosowaniu lasera o mniejszej długości fali Dzięki zastosowaniu lasera o mniejszej długości fali (co pozwoliło dwukrotnie zwiększyć gęstość zapisu i (co pozwoliło dwukrotnie zwiększyć gęstość zapisu i
6969
(co pozwoliło dwukrotnie zwiększyć gęstość zapisu i (co pozwoliło dwukrotnie zwiększyć gęstość zapisu i zmniejszyć odległości pomiędzy ścieżkami) oraz zmniejszyć odległości pomiędzy ścieżkami) oraz dwuwarstwowej struktury nośnika (pierwsza dwuwarstwowej struktury nośnika (pierwsza warstwa nośnika jest półprzeźroczysta) uzyskano warstwa nośnika jest półprzeźroczysta) uzyskano możliwość zapisania wielokrotnie większej ilości możliwość zapisania wielokrotnie większej ilości informacji niż na płytach CDinformacji niż na płytach CD--ROM, pomimo ROM, pomimo zastosowania nośnika tej samej wielkościzastosowania nośnika tej samej wielkości
Pamięć optycznaPamięć optyczna
�� W trakcie odczytu wiązka lasera jest ogniskowana W trakcie odczytu wiązka lasera jest ogniskowana odpowiednio na pierwszej lub drugiej warstwie odpowiednio na pierwszej lub drugiej warstwie nośnikanośnika
�� Specyfikacja DVDSpecyfikacja DVD--ROM dopuszcza stosowanie płyt:ROM dopuszcza stosowanie płyt:–– jednostronnych jednowarstwowych o pojemności 4.7GBjednostronnych jednowarstwowych o pojemności 4.7GB
–– jednostronnych dwuwarstwowych o pojemności 8.5GBjednostronnych dwuwarstwowych o pojemności 8.5GB
7070
–– jednostronnych dwuwarstwowych o pojemności 8.5GBjednostronnych dwuwarstwowych o pojemności 8.5GB
–– dwustronnych jednowarstwowych o pojemności 9.4GBdwustronnych jednowarstwowych o pojemności 9.4GB
–– dwustronnych dwuwarstwowych o pojemności 17GBdwustronnych dwuwarstwowych o pojemności 17GB
�� Format danych zapisanych na płycie DVDFormat danych zapisanych na płycie DVD--ROM jest ROM jest zbliżony do formatu danych na płycie CDzbliżony do formatu danych na płycie CD--ROM, lecz z ROM, lecz z uwagi na zwiększoną gęstość zapisu został ulepszony uwagi na zwiększoną gęstość zapisu został ulepszony mechanizm korekcji błędówmechanizm korekcji błędów
Pamięć magnetooptycznaPamięć magnetooptyczna
�� Nośnikiem informacji w dyskach magnetooptycznych Nośnikiem informacji w dyskach magnetooptycznych jest materiał, w którym następuje zmiana polaryzacji jest materiał, w którym następuje zmiana polaryzacji światła pod wpływem pola magnetycznegoświatła pod wpływem pola magnetycznego
�� Odczyt danych polega na oświetleniu nośnika wiązką Odczyt danych polega na oświetleniu nośnika wiązką spolaryzowanego światła o odpowiednio dobranej spolaryzowanego światła o odpowiednio dobranej płaszczyźnie polaryzacjipłaszczyźnie polaryzacji
7171
płaszczyźnie polaryzacjipłaszczyźnie polaryzacji
�� Po odbiciu od nośnika płaszczyzna ta ulega skręceniu Po odbiciu od nośnika płaszczyzna ta ulega skręceniu o kąt zależny od stopnia jego namagnesowania, a o kąt zależny od stopnia jego namagnesowania, a następnie przez półprzepuszczalny pryzmat i filtr następnie przez półprzepuszczalny pryzmat i filtr polaryzacyjny (którego zadaniem jest tłumienie polaryzacyjny (którego zadaniem jest tłumienie wiązki odbitej od obszaru nienamagnesowanego) wiązki odbitej od obszaru nienamagnesowanego) trafia na układ detektoratrafia na układ detektora
Pamięć magnetooptycznaPamięć magnetooptyczna
�� Zapis danych polega na wstępnym namagnesowaniu Zapis danych polega na wstępnym namagnesowaniu nośnika, a następnie na jego oświetleniu wiązką nośnika, a następnie na jego oświetleniu wiązką światła laserowego o dużej energii, co powoduje światła laserowego o dużej energii, co powoduje miejscowe podgrzanie nośnika powyżej tzw. punktu miejscowe podgrzanie nośnika powyżej tzw. punktu Curie i w konsekwencji jego rozmagnesowanieCurie i w konsekwencji jego rozmagnesowanie
�� Typowe dyski magnetooptyczne są najczęściej Typowe dyski magnetooptyczne są najczęściej
7272
�� Typowe dyski magnetooptyczne są najczęściej Typowe dyski magnetooptyczne są najczęściej wymienne i mają pojemność rzędu kilkuset MBwymienne i mają pojemność rzędu kilkuset MB
�� Wadą tego typu pamięci jest wysoki koszt zarówno Wadą tego typu pamięci jest wysoki koszt zarówno nośnika jak i samego napędunośnika jak i samego napędu
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
�� Zadaniem interfejsu EIDE (Zadaniem interfejsu EIDE (Enhanced Integrated Enhanced Integrated Device ElectronicsDevice Electronics) będącego rozszerzeniem ) będącego rozszerzeniem interfejsu IDE jest podłączenie do systemu interfejsu IDE jest podłączenie do systemu komputerowego takich urządzeń zewnętrznych jak komputerowego takich urządzeń zewnętrznych jak dyski twarde, napędy optyczne i magnetooptycznedyski twarde, napędy optyczne i magnetooptyczne
�� Cechą charakterystyczną obsługiwanych przez ten Cechą charakterystyczną obsługiwanych przez ten
7373
�� Cechą charakterystyczną obsługiwanych przez ten Cechą charakterystyczną obsługiwanych przez ten interfejs urządzeń jest to, że zintegrowano w nich interfejs urządzeń jest to, że zintegrowano w nich mechanizm napędu wraz z układem sterującym mechanizm napędu wraz z układem sterującym (kontrolerem) odpowiedzialnym m.in. za (kontrolerem) odpowiedzialnym m.in. za pozycjonowanie głowic, kodowanie/dekodowanie pozycjonowanie głowic, kodowanie/dekodowanie sygnału, kontrolę i korekcję błędów, translację sygnału, kontrolę i korekcję błędów, translację adresów oraz przesyłanie danychadresów oraz przesyłanie danych
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
�� Standardy interfejsu IDE (ATStandardy interfejsu IDE (AT--BUS):BUS):–– 1994: Standard ATA1994: Standard ATA--1 (1 (Advanced Technology Attachment, Advanced Technology Attachment,
AT AttachmentAT Attachment))
�� transmisja danych w trybie PIOtransmisja danych w trybie PIO
�� prędkość transmisji do 4 MB/sprędkość transmisji do 4 MB/s
�� obsługa najwyżej dwóch dysków twardychobsługa najwyżej dwóch dysków twardych
7474
�� obsługa najwyżej dwóch dysków twardychobsługa najwyżej dwóch dysków twardych
–– 1996: Standard ATA1996: Standard ATA--22
�� transmisja danych w trybach PIO i DMAtransmisja danych w trybach PIO i DMA
�� prędkość transmisji do 16.6 MB/sprędkość transmisji do 16.6 MB/s
–– 1997: Standard ATA1997: Standard ATA--33
�� system autodiagnostyki S.M.A.R.T (system autodiagnostyki S.M.A.R.T (Self Monitoring, Self Monitoring, Analysis and Reporting TechnologyAnalysis and Reporting Technology))
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
–– 1998: Interfejs EIDE (Fast ATA), standard ATA/ATAPI1998: Interfejs EIDE (Fast ATA), standard ATA/ATAPI--44
�� transmisja danych w trybach PIO, DMA i Ultratransmisja danych w trybach PIO, DMA i Ultra--DMADMA
�� prędkość transmisji do 33 MB/sprędkość transmisji do 33 MB/s
�� interfejs logiczny ATAPI (interfejs logiczny ATAPI (AT Attachment Packet AT Attachment Packet InterfaceInterface) pozwalający na obsługę takich urządzeń jak ) pozwalający na obsługę takich urządzeń jak napędy CDnapędy CD--ROM, streamery itp.ROM, streamery itp.
obsługa do czterech urządzeń zewnętrznychobsługa do czterech urządzeń zewnętrznych
7575
�� obsługa do czterech urządzeń zewnętrznychobsługa do czterech urządzeń zewnętrznych
–– 2000: Standard ATA/ATAPI2000: Standard ATA/ATAPI--5 (Ultra ATA/100)5 (Ultra ATA/100)
�� prędkość transmisji do 100 MB/sprędkość transmisji do 100 MB/s
–– Standard ATA/ATAPIStandard ATA/ATAPI--6 (Ultra ATA/133)6 (Ultra ATA/133)
�� prędkość transmisji do 133 MB/sprędkość transmisji do 133 MB/s
�� 4848--bitowy model adresowania LBAbitowy model adresowania LBA
�� funkcje AAM (funkcje AAM (Automatic Acoustic ManagementAutomatic Acoustic Management))
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
�� Magistrala interfejsu IDE połączona jest z magistralą Magistrala interfejsu IDE połączona jest z magistralą systemową przez kontroler IDE (systemową przez kontroler IDE (IDE HostIDE Host--AdapterAdapter), ), którego zadaniem jest dekodowanie adresu oraz którego zadaniem jest dekodowanie adresu oraz buforowanie sygnałów na magistralachbuforowanie sygnałów na magistralach
�� Standardowy interfejs IDE pozwala na dołączenie do Standardowy interfejs IDE pozwala na dołączenie do kontrolera dwóch urządzeń: nadrzędnego (kontrolera dwóch urządzeń: nadrzędnego (MasterMaster) i ) i
7676
kontrolera dwóch urządzeń: nadrzędnego (kontrolera dwóch urządzeń: nadrzędnego (MasterMaster) i ) i podrzędnego (podrzędnego (SlaveSlave), wykorzystując w tym celu 40), wykorzystując w tym celu 40--, , 5050-- lub 80lub 80--żyłowy przewód o długości do 46 cmżyłowy przewód o długości do 46 cm
�� W przypadku interfejsu EIDE wykorzystuje się dwa W przypadku interfejsu EIDE wykorzystuje się dwa kanały IDE: IDE 0 (kanały IDE: IDE 0 (PrimaryPrimary) oraz IDE 1 () oraz IDE 1 (SecondarySecondary), ), dzięki czemu możliwe jest podłączenie do systemu dzięki czemu możliwe jest podłączenie do systemu czterech urządzeń czterech urządzeń
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
�� Kanały kontrolera EIDE są od siebie całkowicie Kanały kontrolera EIDE są od siebie całkowicie niezależne tzn. do komunikacji z systemem niezależne tzn. do komunikacji z systemem wykorzystują oddzielne przerwania i adresy wejściawykorzystują oddzielne przerwania i adresy wejścia--wyjścia rejestrów kontrolnowyjścia rejestrów kontrolno--sterujących CBR (sterujących CBR (Control Control Block RegistersBlock Registers, , Command Block RegistersCommand Block Registers):):–– IDE 0: IRQ 14, Porty 1F0IDE 0: IRQ 14, Porty 1F0÷÷1F7, 3F61F7, 3F6
7777
–– IDE 0: IRQ 14, Porty 1F0IDE 0: IRQ 14, Porty 1F0÷÷1F7, 3F61F7, 3F6
–– IDE 1: IRQ 15, Porty 170IDE 1: IRQ 15, Porty 170÷÷177, 376177, 376
�� Przesyłanie danych pomiędzy pamięcią operacyjną a Przesyłanie danych pomiędzy pamięcią operacyjną a urządzeniem zewnętrznym może odbywać się w urządzeniem zewnętrznym może odbywać się w trybach:trybach:–– programowanego wejściaprogramowanego wejścia--wyjścia: PIOwyjścia: PIO--0 (3.33 MB/s), PIO0 (3.33 MB/s), PIO--1 1
(5.22 MB/s), PIO(5.22 MB/s), PIO--2 (8.33 MB/s), PIO2 (8.33 MB/s), PIO--3 (11.11 MB/s) lub 3 (11.11 MB/s) lub PIOPIO--4 (16.66 MB/s)4 (16.66 MB/s)
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
–– bezpośredniego dostępu do pamięci:bezpośredniego dostępu do pamięci:
�� Singleword DMA 0 (2.08 MB/s), Singleword DMA 1 (4.16 Singleword DMA 0 (2.08 MB/s), Singleword DMA 1 (4.16 MB/s), Singleword DMA 2 (8.33 MB/s)MB/s), Singleword DMA 2 (8.33 MB/s)
�� Multiword DMA 0 (4.16 MB/s), Multiword DMA 1 (13.33 Multiword DMA 0 (4.16 MB/s), Multiword DMA 1 (13.33 MB/s), Multiword DMA 2 (16.66 MB/s)MB/s), Multiword DMA 2 (16.66 MB/s)
�� Ultra DMA 1 (25.00 MB/s), Ultra DMA 2 (33.33 MB/s), Ultra DMA 1 (25.00 MB/s), Ultra DMA 2 (33.33 MB/s), Ultra DMA 3 (44.44 MB/s), Ultra DMA 4 (66.64 MB/s), Ultra DMA 3 (44.44 MB/s), Ultra DMA 4 (66.64 MB/s),
7878
Ultra DMA 3 (44.44 MB/s), Ultra DMA 4 (66.64 MB/s), Ultra DMA 3 (44.44 MB/s), Ultra DMA 4 (66.64 MB/s), Ultra DMA 5 (99.96 MB/s), Ultra DMA 6 (133.28 MB/s)Ultra DMA 5 (99.96 MB/s), Ultra DMA 6 (133.28 MB/s)
�� Komunikacja z urządzeniami IDE realizowana jest za Komunikacja z urządzeniami IDE realizowana jest za pomocą rozkazów należących do:pomocą rozkazów należących do:–– zbioru podstawowego (zbioru podstawowego (General Feature SetGeneral Feature Set))
–– zbioru rozkazów trybu pakietowego (zbioru rozkazów trybu pakietowego (Packet Command Packet Command Feature SetFeature Set))
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
�� Specyfikacja ATA/ATAPI pozwala na obsługę Specyfikacja ATA/ATAPI pozwala na obsługę urządzeń implementujących podstawowe (urządzeń implementujących podstawowe (Power Power ManagementManagement) lub zaawansowane () lub zaawansowane (Advanced Power Advanced Power ManagementManagement) funkcje zarządzania poborem mocy) funkcje zarządzania poborem mocy
�� Podstawowy mechanizm zarządzania poborem mocy Podstawowy mechanizm zarządzania poborem mocy definiuje cztery możliwe tryby pracy urządzenia:definiuje cztery możliwe tryby pracy urządzenia:
7979
definiuje cztery możliwe tryby pracy urządzenia:definiuje cztery możliwe tryby pracy urządzenia:–– tryb gotowości (tryb gotowości (ActiveActive))
–– tryb jałowy (tryb jałowy (IdleIdle))
–– tryb czuwania (tryb czuwania (StandbyStandby))
–– tryb uśpienia (tryb uśpienia (SleepSleep))
�� W trybie zaawansowanym możliwe jest ustawienie W trybie zaawansowanym możliwe jest ustawienie jednego z 254 możliwych poziomów poboru energiijednego z 254 możliwych poziomów poboru energii
Interfejs IDE (EIDE)Interfejs IDE (EIDE)
�� Urządzenia IDE obsługujące protokół ATAPI mogą Urządzenia IDE obsługujące protokół ATAPI mogą implementować następujące mechanizmy:implementować następujące mechanizmy:–– System zabezpieczeń (Security Mode) chroniący dostęp do System zabezpieczeń (Security Mode) chroniący dostęp do
urządzenia mechanizmem dwóch haseł: administratora urządzenia mechanizmem dwóch haseł: administratora ((master passwordmaster password) i użytkownika () i użytkownika (user passworduser password))
–– System autodiagnostyki S.M.A.R.T (System autodiagnostyki S.M.A.R.T (Self Monitoring, Analysis Self Monitoring, Analysis and Reporting Technologyand Reporting Technology) pozwalający na bieżącą kontrolę ) pozwalający na bieżącą kontrolę
8080
and Reporting Technologyand Reporting Technology) pozwalający na bieżącą kontrolę ) pozwalający na bieżącą kontrolę krytycznych parametrów pracy dysku, co zapewnia wczesne krytycznych parametrów pracy dysku, co zapewnia wczesne wykrywanie problemów i minimalizowanie skutków awariiwykrywanie problemów i minimalizowanie skutków awarii
–– System zarządzania parametrami akustycznymi (System zarządzania parametrami akustycznymi (Automatic Automatic Acoustic ManagementAcoustic Management) pozwalający na wybór „kompromisu” ) pozwalający na wybór „kompromisu” pomiędzy szybkością pracy napędu, a emitowanym przez pomiędzy szybkością pracy napędu, a emitowanym przez niego poziomem hałasuniego poziomem hałasu
Interfejs Serial ATA (SATA)Interfejs Serial ATA (SATA)
�� Interfejs szeregowy Serial ATA służy do podłączenia Interfejs szeregowy Serial ATA służy do podłączenia do systemu komputerowego takiej samej klasy do systemu komputerowego takiej samej klasy urządzeń zewnętrznych jak interfejs EIDEurządzeń zewnętrznych jak interfejs EIDE
�� Cechy interfejsu Serial ATA:Cechy interfejsu Serial ATA:–– przesyłanie danych z szybkością od 1.5 Gb/s (SATA I)przesyłanie danych z szybkością od 1.5 Gb/s (SATA I)
–– programowa zgodność ze standardem ATA/ATAPIprogramowa zgodność ze standardem ATA/ATAPI
8181
–– programowa zgodność ze standardem ATA/ATAPIprogramowa zgodność ze standardem ATA/ATAPI
–– niższy pobór mocy (niższe napięcie magistrali)niższy pobór mocy (niższe napięcie magistrali)
–– topologia gwiazdy (każde urządzenie połączone jest z topologia gwiazdy (każde urządzenie połączone jest z kontrolerem własnym przewodem)kontrolerem własnym przewodem)
–– zwiększona odporność na błędy (transmisja dwukierunkowa zwiększona odporność na błędy (transmisja dwukierunkowa w systemie różnicowym)w systemie różnicowym)
–– możliwość zmiany konfiguracji przyłączonych urządzeń w możliwość zmiany konfiguracji przyłączonych urządzeń w trakcie pracy (trakcie pracy (Hot PluggingHot Plugging))
Interfejs Serial ATA (SATA)Interfejs Serial ATA (SATA)
�� Interfejs SATA wykorzystuje 7Interfejs SATA wykorzystuje 7--żyłowy przewód żyłowy przewód połączeniowy (cztery linii sygnałowe plus trzy linie połączeniowy (cztery linii sygnałowe plus trzy linie masy) o długości mniejszej niż 1mmasy) o długości mniejszej niż 1m
�� Dane fizycznie przesyłane interfejsem Serial ATA Dane fizycznie przesyłane interfejsem Serial ATA zorganizowane są w 32 bitowe słowa, kodowane zorganizowane są w 32 bitowe słowa, kodowane regułą 8b/10b (NRZ), co zapobiega jednostronnej regułą 8b/10b (NRZ), co zapobiega jednostronnej
8282
regułą 8b/10b (NRZ), co zapobiega jednostronnej regułą 8b/10b (NRZ), co zapobiega jednostronnej polaryzacji kablapolaryzacji kabla
�� Wymiana informacji pomiędzy kontrolerem Serial Wymiana informacji pomiędzy kontrolerem Serial ATA i urządzeniem zewnętrznym odbywa się za ATA i urządzeniem zewnętrznym odbywa się za pomocą:pomocą:–– symboli (symboli (PrimitivesPrimitives))
–– ramek FIS (ramek FIS (Frame Information StructureFrame Information Structure))
Interfejs Serial ATA (SATA)Interfejs Serial ATA (SATA)
�� Symbol jest pojedynczym słowem, którego zadaniem Symbol jest pojedynczym słowem, którego zadaniem jest przesłanie:jest przesłanie:–– informacji o stanie magistrali i urządzeniainformacji o stanie magistrali i urządzenia
–– sygnatury oznaczającej początek (SOF) lub koniec (EOF) sygnatury oznaczającej początek (SOF) lub koniec (EOF) przesyłanej ramkiprzesyłanej ramki
–– znaku synchronizującego (SYNC) w stanie spoczynkowym znaku synchronizującego (SYNC) w stanie spoczynkowym
8383
–– znaku synchronizującego (SYNC) w stanie spoczynkowym znaku synchronizującego (SYNC) w stanie spoczynkowym ((IdleIdle) magistrali) magistrali
�� Ramka FIS ma zmienną długość i jest zbudowana z:Ramka FIS ma zmienną długość i jest zbudowana z:–– nagłówka (nagłówka (HeaderHeader) o długości 1 słowa zawierającego m.in. ) o długości 1 słowa zawierającego m.in.
sygnaturę (sygnaturę (FIS TypeFIS Type) i długość ramki) i długość ramki
–– bloku danych użytkowych o długości do 2048 słówbloku danych użytkowych o długości do 2048 słów
–– kodu CRC o długości 1 słowakodu CRC o długości 1 słowa
Interfejs Serial ATA (SATA)Interfejs Serial ATA (SATA)
�� Ramki FIS służą do przesyłania danych użytkowych, Ramki FIS służą do przesyłania danych użytkowych, diagnostycznych i rozkazów programujących rejestry diagnostycznych i rozkazów programujących rejestry trybu pracy SRB (trybu pracy SRB (Shadow Register BlockShadow Register Block))
�� Specyfikacja Serial ATA definiuje symetryczny (z Specyfikacja Serial ATA definiuje symetryczny (z potwierdzeniem) protokół transmisji danych (zestaw potwierdzeniem) protokół transmisji danych (zestaw reguł opisujących proces przesyłania danych), reguł opisujących proces przesyłania danych),
8484
reguł opisujących proces przesyłania danych), reguł opisujących proces przesyłania danych), według którego, każda odebrana ramka wymaga według którego, każda odebrana ramka wymaga przesłania zwrotnie symbolu potwierdzającego przesłania zwrotnie symbolu potwierdzającego poprawny odbiór ramki (ROK) lub sygnalizującego poprawny odbiór ramki (ROK) lub sygnalizującego błąd transmisji (RERR)błąd transmisji (RERR)
�� Transfer danych po magistrali Serial ATA może Transfer danych po magistrali Serial ATA może odbywać się zarówno w trybie PIO, jak i DMAodbywać się zarówno w trybie PIO, jak i DMA
Interfejs Serial ATA (SATA)Interfejs Serial ATA (SATA)
�� Rozwój interfejsu SATA:Rozwój interfejsu SATA:–– SATA I: przepustowość 1.5 Gb/s (ok. 180 MB/s)SATA I: przepustowość 1.5 Gb/s (ok. 180 MB/s)
–– SATA II: przepustowość 3 Gb/s (ok. 375 MB/s), SATA II: przepustowość 3 Gb/s (ok. 375 MB/s), kolejkowanie zadań NCQ (kolejkowanie zadań NCQ (Native Command QueuingNative Command Queuing), ), możliwość przyłączenia wielu urządzeń do jednego portu możliwość przyłączenia wielu urządzeń do jednego portu dzięki powielaczom portów (dzięki powielaczom portów (Port MultipliersPort Multipliers), redundancja ), redundancja połączeń dzięki selektorom portów (połączeń dzięki selektorom portów (Port SelectorsPort Selectors))
8585
połączeń dzięki selektorom portów (połączeń dzięki selektorom portów (Port SelectorsPort Selectors))
–– SATA III: przepustowość 6 Gb/s (ok. 750 MB/s), ulepszony SATA III: przepustowość 6 Gb/s (ok. 750 MB/s), ulepszony mechanizm NCQ, tryb izochorycznego transferu danychmechanizm NCQ, tryb izochorycznego transferu danych
–– eSATA (external SATA): zewnętrzny port SATA 3Gb/s do eSATA (external SATA): zewnętrzny port SATA 3Gb/s do podłączania urządzeń zewnętrznych na odległość do 2 mpodłączania urządzeń zewnętrznych na odległość do 2 m
–– xSATA: rozwinięcie eSATA do transmisji na odległość do xSATA: rozwinięcie eSATA do transmisji na odległość do 8 m8 m
Interfejs SCSIInterfejs SCSI
�� Standard SCSI (Standard SCSI (Small Computer System InterfaceSmall Computer System Interface) ) powstał w 1982 roku dla potrzeb obsługi urządzeń powstał w 1982 roku dla potrzeb obsługi urządzeń zewnętrznych (m.in. dysków twardych, napędów zewnętrznych (m.in. dysków twardych, napędów taśmowych, czytników CDtaśmowych, czytników CD--ROM, skanerów) przez ROM, skanerów) przez minikomputery i wydajne stacje roboczeminikomputery i wydajne stacje robocze
�� Magistrala SCSI została opracowana jako szybka, Magistrala SCSI została opracowana jako szybka,
8686
�� Magistrala SCSI została opracowana jako szybka, Magistrala SCSI została opracowana jako szybka, uniwersalna, elastyczna i niezawodna magistrala uniwersalna, elastyczna i niezawodna magistrala równoległa obsługująca wiele urządzeń (także równoległa obsługująca wiele urządzeń (także różnych producentów) przyłączonych do jednego różnych producentów) przyłączonych do jednego kontrolera i montowanych zarówno wewnątrz, jak i kontrolera i montowanych zarówno wewnątrz, jak i na zewnątrz obudowy komputerana zewnątrz obudowy komputera
Interfejs SCSIInterfejs SCSI
�� Standardy interfejsu SCSI:Standardy interfejsu SCSI:–– Standard SCSIStandard SCSI--1 (1986)1 (1986)
�� magistrala danych o szerokości 8 bitówmagistrala danych o szerokości 8 bitów
�� adresowanie do 8 urządzeńadresowanie do 8 urządzeń
�� prędkość transmisji do 5 MB/sprędkość transmisji do 5 MB/s
�� długość przewodu połączeniowego do 6mdługość przewodu połączeniowego do 6m
8787
�� długość przewodu połączeniowego do 6mdługość przewodu połączeniowego do 6m
–– Standard SCSIStandard SCSI--2 (1990)2 (1990)
�� magistrala danych o szerokości 16 lub 32 bitów (Wide magistrala danych o szerokości 16 lub 32 bitów (Wide SCSI)SCSI)
�� adresowanie do 16 urządzeńadresowanie do 16 urządzeń
�� szybkość transmisji do 10 MB/s (tryb Fast SCSI), 20 szybkość transmisji do 10 MB/s (tryb Fast SCSI), 20 MB/s (tryby Fast Wide SCSI i Ultra SCSI) lub 40 MB/s MB/s (tryby Fast Wide SCSI i Ultra SCSI) lub 40 MB/s (tryby Wide Ultra SCSI i Ultra2 SCSI)(tryby Wide Ultra SCSI i Ultra2 SCSI)
Interfejs SCSIInterfejs SCSI
�� długość przewodu połączeniowego do 25mdługość przewodu połączeniowego do 25m
–– Standard Ultra3 (Ultra160) SCSI , Ultra4 (Ultra320) SCSIStandard Ultra3 (Ultra160) SCSI , Ultra4 (Ultra320) SCSI
�� wykorzystanie obydwu zboczy sygnału taktującego wykorzystanie obydwu zboczy sygnału taktującego pozwala na maksymalny transfer 160 MB/s (320 MB/s)pozwala na maksymalny transfer 160 MB/s (320 MB/s)
�� możliwość korzystania z różnych interfejsów fizycznych możliwość korzystania z różnych interfejsów fizycznych pełna kontrola integralności przesyłanych danych pełna kontrola integralności przesyłanych danych kodami CRC (Ultra320 SCSI)kodami CRC (Ultra320 SCSI)
8888
kodami CRC (Ultra320 SCSI)kodami CRC (Ultra320 SCSI)
�� obsługa protokołu pakietowego (Ultra320 SCSI)obsługa protokołu pakietowego (Ultra320 SCSI)
�� adresowanie do 32 urządzeńadresowanie do 32 urządzeń
�� wprowadzenie protokołu diagnostycznego jakości łączawprowadzenie protokołu diagnostycznego jakości łącza
�� przyspieszenie arbitrażu w dostępie do magistraliprzyspieszenie arbitrażu w dostępie do magistrali
–– Standard Ultra640 SCSIStandard Ultra640 SCSI
�� maksymalny transfer 640 MB/smaksymalny transfer 640 MB/s
Interfejs SCSIInterfejs SCSI
�� Każde urządzenie podłączone do magistrali SCSI ma Każde urządzenie podłączone do magistrali SCSI ma przydzielony unikalny identyfikator ID (liczba z przydzielony unikalny identyfikator ID (liczba z zakresu 0zakresu 0÷÷7 lub 07 lub 0÷÷15) określający adres i priorytet 15) określający adres i priorytet urządzeniaurządzenia
�� Najczęściej urządzeniem o najwyższym priorytecie Najczęściej urządzeniem o najwyższym priorytecie (identyfikatorze) jest kontroler SCSI ((identyfikatorze) jest kontroler SCSI (Host AdapterHost Adapter))
8989
(identyfikatorze) jest kontroler SCSI ((identyfikatorze) jest kontroler SCSI (Host AdapterHost Adapter))
�� Długość przewodu połączeniowego elektrycznej Długość przewodu połączeniowego elektrycznej wersji magistrali SCSI wynosi:wersji magistrali SCSI wynosi:–– do 6m w przypadku magistrali pojedynczej (do 6m w przypadku magistrali pojedynczej (singlesingle--endedended))
–– do 25m w przypadku magistrali różnicowej (do 25m w przypadku magistrali różnicowej (differentialdifferential))
–– do 12m w przypadku magistrali niskonapięciowejdo 12m w przypadku magistrali niskonapięciowej--różnicowej LVD (różnicowej LVD (lowlow--voltage differentialvoltage differential))
Interfejs SCSIInterfejs SCSI
�� Urządzenia do magistrali przyłączone są łańcuchowo Urządzenia do magistrali przyłączone są łańcuchowo (równolegle), przy czym końce magistrali muszą być (równolegle), przy czym końce magistrali muszą być wyposażone w terminatory tj. mostki rezystorowe wyposażone w terminatory tj. mostki rezystorowe zapewniające dopasowanie falowezapewniające dopasowanie falowe
�� Szerokość magistrali SCSI zależy od jej realizacji Szerokość magistrali SCSI zależy od jej realizacji –– w w przypadku jej elektrycznej wersji (SCSIprzypadku jej elektrycznej wersji (SCSI--2) wynosi 2) wynosi
9090
przypadku jej elektrycznej wersji (SCSIprzypadku jej elektrycznej wersji (SCSI--2) wynosi 2) wynosi odpowiednio:odpowiednio:–– 50 linii sygnałowych dla 850 linii sygnałowych dla 8--bitowej magistrali danychbitowej magistrali danych
–– 68 linii sygnałowych dla 1668 linii sygnałowych dla 16--bitowej magistrali danychbitowej magistrali danych
�� Magistrala SCSI pozwala na niezależną komunikację Magistrala SCSI pozwala na niezależną komunikację między różnymi parami dołączonych do niej urządzeń między różnymi parami dołączonych do niej urządzeń w ramach tzw. kanałów logicznychw ramach tzw. kanałów logicznych
Interfejs SCSIInterfejs SCSI
�� Specyfikacja SCSI definiuje protokół wymiany Specyfikacja SCSI definiuje protokół wymiany informacji przez magistralę, obejmujący następujące informacji przez magistralę, obejmujący następujące fazy pracy:fazy pracy:–– Faza wolnej magistrali (Faza wolnej magistrali (Bus FreeBus Free), w której żadne ), w której żadne
urządzenie nie korzysta z magistraliurządzenie nie korzysta z magistrali
–– Faza arbitrażu (Faza arbitrażu (ArbitrationArbitration), w której dokonywany jest ), w której dokonywany jest
9191
–– Faza arbitrażu (Faza arbitrażu (ArbitrationArbitration), w której dokonywany jest ), w której dokonywany jest wybór urządzenia (inicjującego lub docelowego), które wybór urządzenia (inicjującego lub docelowego), które przejmie kontrolę nad magistraląprzejmie kontrolę nad magistralą
–– Faza selekcji (Faza selekcji (SelectionSelection), w której urządzenie inicjujące ), w której urządzenie inicjujące dokonuje wyboru urządzenia docelowego (przesyłając na dokonuje wyboru urządzenia docelowego (przesyłając na magistralę identyfikator swój i urządzenia docelowego)magistralę identyfikator swój i urządzenia docelowego)
–– Faza rozkazowa (Faza rozkazowa (CommandCommand), w której przesyłane są rozkazy ), w której przesyłane są rozkazy do urządzenia docelowegodo urządzenia docelowego
Interfejs SCSIInterfejs SCSI
–– Faza reselekcji (Faza reselekcji (ReselectionReselection), w której następuje nawiązanie ), w której następuje nawiązanie połączenia przez urządzenie docelowe z urządzeniem połączenia przez urządzenie docelowe z urządzeniem inicjującym (faza taka ma miejsce najczęściej po wykonaniu inicjującym (faza taka ma miejsce najczęściej po wykonaniu przez urządzenie docelowe rozkazu, w trakcie wykonania przez urządzenie docelowe rozkazu, w trakcie wykonania którego magistrala była zwolniona)którego magistrala była zwolniona)
–– Faza przesyłania danych (Faza przesyłania danych (DataData), w której następuje ), w której następuje przesyłanie danych między urządzeniamiprzesyłanie danych między urządzeniami
9292
przesyłanie danych między urządzeniamiprzesyłanie danych między urządzeniami
–– Faza przesyłania raportu (Faza przesyłania raportu (StatusStatus), w której przesyłana jest ), w której przesyłana jest informacja o sposobie zakończenia wykonywanej operacjiinformacja o sposobie zakończenia wykonywanej operacji
–– Faza przesyłania wiadomości (Faza przesyłania wiadomości (MessageMessage), w której ), w której przesyłane są (dwukierunkowo) informacje pomocniczeprzesyłane są (dwukierunkowo) informacje pomocnicze
–– Faza zgłaszania przesłania wiadomości (Faza zgłaszania przesłania wiadomości (AttentionAttention), w której ), w której urządzenie inicjujące zgłasza żądanie wysłania wiadomościurządzenie inicjujące zgłasza żądanie wysłania wiadomości
–– Faza zerowania (Faza zerowania (ResetReset), w której następuje zerowanie ), w której następuje zerowanie wszystkich urządzeń na magistraliwszystkich urządzeń na magistrali
Interfejs SCSIInterfejs SCSI
�� Przesyłanie danych magistralą SCSI może odbywać Przesyłanie danych magistralą SCSI może odbywać się w trybie asynchronicznym lub synchronicznymsię w trybie asynchronicznym lub synchronicznym
�� Rozkazy SCSI przesyłane są w tzw. blokach CDB Rozkazy SCSI przesyłane są w tzw. blokach CDB ((Command Data BlockCommand Data Block) o długości 6, 10 lub 12 ) o długości 6, 10 lub 12 bajtów, zawierających odpowiednio:bajtów, zawierających odpowiednio:–– kod operacjikod operacji
9393
–– kod operacjikod operacji
–– parametry rozkazuparametry rozkazu
–– bajt kontrolnybajt kontrolny
�� Urządzenie docelowe wyposażone jest najczęściej w Urządzenie docelowe wyposażone jest najczęściej w kolejkę rozkazów, dzięki której możliwe jest bardziej kolejkę rozkazów, dzięki której możliwe jest bardziej efektywne wykorzystanie magistraliefektywne wykorzystanie magistrali
Interfejs IEEEInterfejs IEEE--12841284
�� Interfejs IEEEInterfejs IEEE--1284 jest standardem przesyłania 1284 jest standardem przesyłania informacji między urządzeniami za pośrednictwem informacji między urządzeniami za pośrednictwem łącza równoległegołącza równoległego
�� Specyfikacja standardu IEEESpecyfikacja standardu IEEE--1284 definiuje pięć 1284 definiuje pięć trybów pracy łącza równoległego:trybów pracy łącza równoległego:–– tryb kompatybilny (tryb kompatybilny (Compability ModeCompability Mode))
9494
–– tryb kompatybilny (tryb kompatybilny (Compability ModeCompability Mode))
–– tryb półbajtowy (tryb półbajtowy (Nibble ModeNibble Mode))
–– tryb bajtowy PS/2 (tryb bajtowy PS/2 (Byte ModeByte Mode))
–– tryb EPP (tryb EPP (Enhanced Parallel PortEnhanced Parallel Port))
–– tryb ECP (tryb ECP (Extended Capabilities PortExtended Capabilities Port))
�� Pierwsze trzy z wymienionych trybów pracy określa Pierwsze trzy z wymienionych trybów pracy określa się także jako tryb SPP (się także jako tryb SPP (Standard Parallel PortStandard Parallel Port))
Interfejs IEEEInterfejs IEEE--12841284
�� Interfejs IEEEInterfejs IEEE--1284 pracujący w trybie SPP 1284 pracujący w trybie SPP wykorzystuje oprócz 8wykorzystuje oprócz 8--bitowej magistrali danych, bitowej magistrali danych, następujące linie sygnałowe:następujące linie sygnałowe:–– wejściowy sygnał błędu drukarki: ERR (wejściowy sygnał błędu drukarki: ERR (ErrorError))
–– wyjściowy sygnał strobujący dane: STR (wyjściowy sygnał strobujący dane: STR (StrobeStrobe))
–– wejściowy sygnał potwierdzenia: ACK (wejściowy sygnał potwierdzenia: ACK (AcknowledgeAcknowledge))
9595
–– wejściowy sygnał potwierdzenia: ACK (wejściowy sygnał potwierdzenia: ACK (AcknowledgeAcknowledge))
–– wejściowy sygnał zajętości: BSY (wejściowy sygnał zajętości: BSY (BusyBusy))
–– wejściowy sygnał braku papieru: PERR (wejściowy sygnał braku papieru: PERR (Paper ErrorPaper Error))
–– wejściowy sygnał gotowości (stanu „wejściowy sygnał gotowości (stanu „onon--lineline”): SEL (”): SEL (SelectSelect))
–– wyjściowy sygnał wysuwu wiersza: ALF (wyjściowy sygnał wysuwu wiersza: ALF (Auto Line FeedAuto Line Feed))
–– wyjściowy sygnał zerowania (inicjowania) drukarki: INI wyjściowy sygnał zerowania (inicjowania) drukarki: INI ((InitializationInitialization))
–– wyjściowy sygnał wyboru drukarki: DSL (wyjściowy sygnał wyboru drukarki: DSL (Device SelectDevice Select))
Interfejs IEEEInterfejs IEEE--12841284
�� Tryb kompatybilny zwany także standardowym lub Tryb kompatybilny zwany także standardowym lub trybem Centronics realizuje jednokierunkową trybem Centronics realizuje jednokierunkową transmisję danych z prędkością do 200 kB/s transmisję danych z prędkością do 200 kB/s
�� Tryb półbajtowy pozwala na dwukierunkową Tryb półbajtowy pozwala na dwukierunkową transmisję danych, w której do odbierania danych transmisję danych, w której do odbierania danych wykorzystuje się linie BSY, ACK, PERR i SEL wykorzystuje się linie BSY, ACK, PERR i SEL
9696
wykorzystuje się linie BSY, ACK, PERR i SEL wykorzystuje się linie BSY, ACK, PERR i SEL połączone z magistralą danych przez multiplekser połączone z magistralą danych przez multiplekser sterowany sygnałem STRsterowany sygnałem STR
�� Tryb bajtowy realizuje dwukierunkową transmisję Tryb bajtowy realizuje dwukierunkową transmisję danych opartą na wykorzystaniu dwukierunkowego danych opartą na wykorzystaniu dwukierunkowego portu danych (portu danych (BiBi--Directional Data PortDirectional Data Port))
Interfejs IEEEInterfejs IEEE--12841284
�� Dostęp do łącza równoległego pracującego w trybie Dostęp do łącza równoległego pracującego w trybie SPP odbywa się za pośrednictwem:SPP odbywa się za pośrednictwem:–– rejestru danych (rejestru danych (Data RegisterData Register), umożliwiającego ), umożliwiającego
zapis/odczyt danych z magistrali danych interfejsuzapis/odczyt danych z magistrali danych interfejsu
–– rejestru stanu (rejestru stanu (Status RegisterStatus Register), pozwalającego m.in. na ), pozwalającego m.in. na odczyt stanu linii BSY, ACK, PERR, SEL i ERRodczyt stanu linii BSY, ACK, PERR, SEL i ERR
9797
–– rejestru sterującego (rejestru sterującego (Control RegisterControl Register), pozwalającego m.in. ), pozwalającego m.in. na aktywowanie dwukierunkowej pracy portu danych oraz na aktywowanie dwukierunkowej pracy portu danych oraz na ustawianie stanu linii DSL, INI, ALF i STRna ustawianie stanu linii DSL, INI, ALF i STR
�� Implementacja protokołów transmisji danych w Implementacja protokołów transmisji danych w trybach SPP (polegająca m.in. na wytworzeniu trybach SPP (polegająca m.in. na wytworzeniu właściwych sekwencji sygnałów sterujących) musi właściwych sekwencji sygnałów sterujących) musi być zrealizowana programowobyć zrealizowana programowo
Interfejs IEEEInterfejs IEEE--12841284
�� Tryb EPP pozwala na realizację dwukierunkowej Tryb EPP pozwala na realizację dwukierunkowej transmisji danych z prędkością do 2 MB/stransmisji danych z prędkością do 2 MB/s
�� Protokół wymiany danych w trybie EPP wykorzystuje Protokół wymiany danych w trybie EPP wykorzystuje następujące linie sygnałowe:następujące linie sygnałowe:–– sygnał kierunku transmisji: WRITE (linia STR trybu SPP)sygnał kierunku transmisji: WRITE (linia STR trybu SPP)
–– sygnał wyzwolenia przerwania: INTERRUPT (linia ACK trybu sygnał wyzwolenia przerwania: INTERRUPT (linia ACK trybu
9898
–– sygnał wyzwolenia przerwania: INTERRUPT (linia ACK trybu sygnał wyzwolenia przerwania: INTERRUPT (linia ACK trybu SPP)SPP)
–– sygnał zakończenia cyklu EPP: WAIT (linia BSY trybu SPP)sygnał zakończenia cyklu EPP: WAIT (linia BSY trybu SPP)
–– sygnał strobujący dane: DATA STROBE (linia ALF trybu SPP)sygnał strobujący dane: DATA STROBE (linia ALF trybu SPP)
–– sygnał strobujący adres: ADDR STROBE (linia DSL trybu sygnał strobujący adres: ADDR STROBE (linia DSL trybu SPP)SPP)
–– sygnał zerowania (inicjowania): RESET (linia INI trybu SPP)sygnał zerowania (inicjowania): RESET (linia INI trybu SPP)
Interfejs IEEEInterfejs IEEE--12841284
�� Dostęp do łącza równoległego pracującego w trybie Dostęp do łącza równoległego pracującego w trybie EPP odbywa się za pośrednictwem zestawu rejestrów EPP odbywa się za pośrednictwem zestawu rejestrów SPP, rozszerzonego o:SPP, rozszerzonego o:–– dwukierunkowy rejestr danych (dwukierunkowy rejestr danych (Data RegisterData Register))
–– dwukierunkowy rejestr adresowy (dwukierunkowy rejestr adresowy (Address RegisterAddress Register))
�� Wytworzenie właściwych sekwencji sygnałów Wytworzenie właściwych sekwencji sygnałów
9999
�� Wytworzenie właściwych sekwencji sygnałów Wytworzenie właściwych sekwencji sygnałów sterujących związanych z realizacją protokołu sterujących związanych z realizacją protokołu transmisji danych w trybie EPP realizowane jest transmisji danych w trybie EPP realizowane jest automatycznie przez kontroler łącza równoległegoautomatycznie przez kontroler łącza równoległego
�� Transmisję danych i/lub adresów realizuje się przez Transmisję danych i/lub adresów realizuje się przez ich bezpośrednie wpisanie do odpowiednich ich bezpośrednie wpisanie do odpowiednich rejestrów EPPrejestrów EPP
Interfejs IEEEInterfejs IEEE--12841284
�� Tryb ECP pozwala na realizację dwukierunkowej Tryb ECP pozwala na realizację dwukierunkowej transmisji danych z prędkością do 2 MB/stransmisji danych z prędkością do 2 MB/s
�� Protokół wymiany danych w trybie ECP wykorzystuje Protokół wymiany danych w trybie ECP wykorzystuje m.in. następujące linie sygnałowe:m.in. następujące linie sygnałowe:–– sygnał zegarowy: HostCLK (linia STR trybu SPP)sygnał zegarowy: HostCLK (linia STR trybu SPP)
–– sygnał zegarowy: PeriphCLK (linia ACK trybu SPP)sygnał zegarowy: PeriphCLK (linia ACK trybu SPP)
100100
–– sygnał zegarowy: PeriphCLK (linia ACK trybu SPP)sygnał zegarowy: PeriphCLK (linia ACK trybu SPP)
–– sygnał sterujący przesyłaniem danych/rozkazów: PeriphACK sygnał sterujący przesyłaniem danych/rozkazów: PeriphACK (linia BSY trybu SPP)(linia BSY trybu SPP)
–– sygnał sterujący przesyłaniem danych/rozkazów: HostACK sygnał sterujący przesyłaniem danych/rozkazów: HostACK (linia ALF trybu SPP)(linia ALF trybu SPP)
–– sygnały zmiany kierunku transmisji: RevREQ (linia INI trybu sygnały zmiany kierunku transmisji: RevREQ (linia INI trybu SPP) oraz AckREV (linia PERR trybu SPP)SPP) oraz AckREV (linia PERR trybu SPP)
Interfejs IEEEInterfejs IEEE--12841284
�� Tryb ECP pozwala na korzystanie z:Tryb ECP pozwala na korzystanie z:–– przesyłania danych z kontrolera w trybie DMAprzesyłania danych z kontrolera w trybie DMA
–– dodatkowego (najczęściej 16dodatkowego (najczęściej 16--stopniowego) rejestru stopniowego) rejestru buforowanego FIFObuforowanego FIFO
–– kompresji przesyłanych danych algorytmem RLE (kompresji przesyłanych danych algorytmem RLE (Run Run Length EncodingLength Encoding))
101101
–– definiowania i adresowania do 128 kanałów logicznychdefiniowania i adresowania do 128 kanałów logicznych
�� Dostęp do łącza równoległego pracującego w trybie Dostęp do łącza równoległego pracującego w trybie ECP odbywa się za pośrednictwem zestawu rejestrów ECP odbywa się za pośrednictwem zestawu rejestrów SPP, rozszerzonego m.in. o:SPP, rozszerzonego m.in. o:–– rejestr adresowy FIFO (rejestr adresowy FIFO (ECP Address FIFOECP Address FIFO))
–– rejestry danych FIFO (rejestry danych FIFO (Data FIFOData FIFO))
–– rejestr sterujący ECR (rejestr sterujący ECR (Extended Control RegisterExtended Control Register))
Interfejs IEEEInterfejs IEEE--12841284
�� Wytworzenie właściwych sekwencji sygnałów Wytworzenie właściwych sekwencji sygnałów sterujących związanych z realizacją protokołu sterujących związanych z realizacją protokołu transmisji danych w trybie ECP realizowane jest transmisji danych w trybie ECP realizowane jest automatycznie przez kontroler łącza równoległegoautomatycznie przez kontroler łącza równoległego
�� Interfejs IEEEInterfejs IEEE--1284 korzysta z poziomów logicznych 1284 korzysta z poziomów logicznych
102102
�� Interfejs IEEEInterfejs IEEE--1284 korzysta z poziomów logicznych 1284 korzysta z poziomów logicznych TTL, a długość kabla połączeniowego (niezależnie od TTL, a długość kabla połączeniowego (niezależnie od trybu pracy) nie powinna przekraczać 5 mtrybu pracy) nie powinna przekraczać 5 m
�� Gniazdo przyłączeniowe interfejsu IEEEGniazdo przyłączeniowe interfejsu IEEE--1284 może 1284 może mieć 25 pinów (DBmieć 25 pinów (DB––25) lub 36 pinów (Centronics)25) lub 36 pinów (Centronics)
Interfejs RSInterfejs RS--232C232C
�� Interfejs RSInterfejs RS--232C (V24) jest standardem przesyłania 232C (V24) jest standardem przesyłania informacji między dwoma urządzeniami za informacji między dwoma urządzeniami za pośrednictwem asynchronicznego łącza szeregowegopośrednictwem asynchronicznego łącza szeregowego
�� Dane przesyłane tego typu łączem są zorganizowane Dane przesyłane tego typu łączem są zorganizowane w ramki SDU (w ramki SDU (Serial Data UnitSerial Data Unit), składające się z:), składające się z:–– znacznika początku ramki (bitu startu o wartości 0)znacznika początku ramki (bitu startu o wartości 0)
103103
–– znacznika początku ramki (bitu startu o wartości 0)znacznika początku ramki (bitu startu o wartości 0)
–– 5, 6, 7 lub 8 bitów danych5, 6, 7 lub 8 bitów danych
–– opcjonalnego bitu kontroli parzystościopcjonalnego bitu kontroli parzystości
–– znacznika końca ramki (1, 1znacznika końca ramki (1, 1½½ lub 2 bity stopu o wartości 1)lub 2 bity stopu o wartości 1)
�� Przed nawiązaniem połączenia oba urządzenia muszą Przed nawiązaniem połączenia oba urządzenia muszą mieć ustawione takie same parametry transmisji tj. mieć ustawione takie same parametry transmisji tj. częstotliwość taktowania i format ramkiczęstotliwość taktowania i format ramki
Interfejs RSInterfejs RS--232C232C
�� Odbiornik w celu zsynchronizowania swojego zegara Odbiornik w celu zsynchronizowania swojego zegara z zegarem nadajnika próbkuje stan linii odbiorczej z z zegarem nadajnika próbkuje stan linii odbiorczej z częstotliwością wielokrotnie wyższą od częstotliwości częstotliwością wielokrotnie wyższą od częstotliwości z jaką przesyłane są danez jaką przesyłane są dane
�� Przekształcaniem danych z postaci równoległej na Przekształcaniem danych z postaci równoległej na szeregową i odwrotnie zajmuje się układ UART szeregową i odwrotnie zajmuje się układ UART
104104
szeregową i odwrotnie zajmuje się układ UART szeregową i odwrotnie zajmuje się układ UART ((Universal Asynchronous ReceiverUniversal Asynchronous Receiver--TransmitterTransmitter))
�� Transmisja danych może odbywać się z maksymalną Transmisja danych może odbywać się z maksymalną prędkością 56 kb/s (UART 8250) lub 115200 kb/s prędkością 56 kb/s (UART 8250) lub 115200 kb/s (UART 16450) w trybie:(UART 16450) w trybie:–– jednokierunkowym (simpleksowym)jednokierunkowym (simpleksowym)
–– dwukierunkowym (półdupleksowym i dupleksowym)dwukierunkowym (półdupleksowym i dupleksowym)
Interfejs RSInterfejs RS--232C232C
�� Standard RSStandard RS--232C definiuje protokół przesyłania 232C definiuje protokół przesyłania danych między terminalem DTE (danych między terminalem DTE (Data Terminal Data Terminal EquipmentEquipment) i modemem DCE () i modemem DCE (Data Communication Data Communication EquipmentEquipment), wykorzystujący następujące linie ), wykorzystujący następujące linie sygnałowe:sygnałowe:–– dane wysyłane: TxD (Transmitted Data)dane wysyłane: TxD (Transmitted Data)
105105
–– dane wysyłane: TxD (Transmitted Data)dane wysyłane: TxD (Transmitted Data)
–– dane odbierane: RxD (dane odbierane: RxD (Received DataReceived Data))
–– żądanie rozpoczęcia nadawania: RTS (żądanie rozpoczęcia nadawania: RTS (Request To SendRequest To Send))
–– potwierdzenie sygnału RTS (zgłoszenie gotowości odbioru potwierdzenie sygnału RTS (zgłoszenie gotowości odbioru danych z terminala): CTS (danych z terminala): CTS (Clear To SendClear To Send))
–– gotowość modemu na przyjęcie danych: DSR (gotowość modemu na przyjęcie danych: DSR (Data Set Data Set ReadyReady))
–– gotowość terminala: DTR (gotowość terminala: DTR (DataTerminal ReadyDataTerminal Ready))
Interfejs RSInterfejs RS--232C232C
–– odbiór fali nośnej: DCD (odbiór fali nośnej: DCD (Data Carrier DetectData Carrier Detect))
–– sygnał wywołania abonenta: RI (sygnał wywołania abonenta: RI (Ring IndicatorRing Indicator))
�� Para sygnałów RTS/CTS jest odpowiedzialna za Para sygnałów RTS/CTS jest odpowiedzialna za sterowanie przepływem danych (oraz za sterowanie sterowanie przepływem danych (oraz za sterowanie kierunkiem transmisji w trybie półdupleksowym)kierunkiem transmisji w trybie półdupleksowym)
�� Para sygnałów gotowości DTR/DSR odpowiada za Para sygnałów gotowości DTR/DSR odpowiada za
106106
�� Para sygnałów gotowości DTR/DSR odpowiada za Para sygnałów gotowości DTR/DSR odpowiada za utrzymanie nawiązanego połączeniautrzymanie nawiązanego połączenia
�� Interfejs RSInterfejs RS--232C do reprezentowania stanów 232C do reprezentowania stanów logicznych wykorzystuje napięcia z zakresu od logicznych wykorzystuje napięcia z zakresu od --15 do 15 do +15 V (poziom logiczny „0” odpowiada napięciu na +15 V (poziom logiczny „0” odpowiada napięciu na linii sygnałowej od +3 do +15 V, natomiast poziom linii sygnałowej od +3 do +15 V, natomiast poziom logiczny „1” odpowiada napięciu od logiczny „1” odpowiada napięciu od --3 do 3 do --15 V)15 V)
Interfejs RSInterfejs RS--232C232C
�� Typowe gniazdo przyłączające interfejsu RSTypowe gniazdo przyłączające interfejsu RS--232C 232C ma 25 (DBma 25 (DB––25) lub 9 pinów (DB25) lub 9 pinów (DB––9)9)
�� Maksymalna odległość między nadajnikiem i Maksymalna odległość między nadajnikiem i odbiornikiem nie przekracza 200 modbiornikiem nie przekracza 200 m
�� Istnieje możliwość wymiany danych pomiędzy Istnieje możliwość wymiany danych pomiędzy dwoma urządzeniami typu DTE połączonych tzw. dwoma urządzeniami typu DTE połączonych tzw.
107107
dwoma urządzeniami typu DTE połączonych tzw. dwoma urządzeniami typu DTE połączonych tzw. kablem modemu zerowego (kablem modemu zerowego (null modem cablenull modem cable))
�� Obsługa łącza szeregowego może być realizowana Obsługa łącza szeregowego może być realizowana przez:przez:–– przerwania zgłaszane przez układ UARTprzerwania zgłaszane przez układ UART
–– okresowe testowanie przez procesor rejestru stanu okresowe testowanie przez procesor rejestru stanu transmisji układu UARTtransmisji układu UART
Magistrala USBMagistrala USB
�� Magistrala USB (Magistrala USB (Universal Serial BusUniversal Serial Bus) jest ) jest standardem łącza szeregowego przeznaczonym do standardem łącza szeregowego przeznaczonym do podłączania szerokiej gamy urządzeń peryferyjnychpodłączania szerokiej gamy urządzeń peryferyjnych
�� Cechy magistrali USB:Cechy magistrali USB:–– prędkość transmisji: 1.5 Mb/s (prędkość transmisji: 1.5 Mb/s (Low SpeedLow Speed), 12 Mb/s (), 12 Mb/s (Full Full
SpeedSpeed), 480 Mb/s (), 480 Mb/s (High SpeedHigh Speed) lub 4.8 Gb/s () lub 4.8 Gb/s (Super SpeedSuper Speed))
108108
SpeedSpeed), 480 Mb/s (), 480 Mb/s (High SpeedHigh Speed) lub 4.8 Gb/s () lub 4.8 Gb/s (Super SpeedSuper Speed))
–– obsługa przez jeden kontroler (obsługa przez jeden kontroler (Host AdapterHost Adapter) do 127 ) do 127 urządzeń USBurządzeń USB
–– topologia połączeń typu gwiazda (o maksymalnie siedmiu topologia połączeń typu gwiazda (o maksymalnie siedmiu poziomach) realizowana przez koncentratory USB (poziomach) realizowana przez koncentratory USB (HubHub))
–– maksymalna długość kabla połączeniowego wynosi 5 m maksymalna długość kabla połączeniowego wynosi 5 m (maksymalna odległość między urządzeniem i kontrolerem (maksymalna odległość między urządzeniem i kontrolerem nie może przekroczyć 35 m)nie może przekroczyć 35 m)
Magistrala USBMagistrala USB
–– możliwość zmiany konfiguracji podłączonych urządzeń w możliwość zmiany konfiguracji podłączonych urządzeń w trakcie pracy (trakcie pracy (HotHot--PluggingPlugging))
–– automatyczny przydział identyfikatorów (adresów) do automatyczny przydział identyfikatorów (adresów) do urządzeń (urządzeń (AutoAuto--IDID))
–– możliwość zasilania podłączonych urządzeń kablem USB możliwość zasilania podłączonych urządzeń kablem USB (obciążenie do 500 mA dla USB 2.0, 900mA dla USB 3.0)(obciążenie do 500 mA dla USB 2.0, 900mA dla USB 3.0)
Dane kodowane metodą NRZI (Dane kodowane metodą NRZI (Non Return to Zero Non Return to Zero
109109
�� Dane kodowane metodą NRZI (Dane kodowane metodą NRZI (Non Return to Zero Non Return to Zero InvertInvert) przesyłane są parą przewodów sygnałowych: ) przesyłane są parą przewodów sygnałowych: D+ i DD+ i D-- w sposób różnicowy (napięcie od 0 do 3.6 V)w sposób różnicowy (napięcie od 0 do 3.6 V)
�� Kabel połączeniowy magistrali USB to czterożyłowa Kabel połączeniowy magistrali USB to czterożyłowa skrętka (w USB 3.0 skrętka (w USB 3.0 –– ośmiożyłowa) zakończona ośmiożyłowa) zakończona złączami standardowymi (płaskim złączami standardowymi (płaskim -- A i kwadratowym A i kwadratowym -- B) lub złączami miniaturowymi (mini, micro)B) lub złączami miniaturowymi (mini, micro)
Magistrala USBMagistrala USB
�� Wymiana informacji magistralą USB odbywa się w Wymiana informacji magistralą USB odbywa się w pakietach przez wirtualne kanały przesyłowe (pakietach przez wirtualne kanały przesyłowe (PipesPipes) ) tworzone na żądanie przez kontroler USBtworzone na żądanie przez kontroler USB
�� Każdy kanał przesyłowy może wykorzystywać jeden Każdy kanał przesyłowy może wykorzystywać jeden z czterech trybów transmisji:z czterech trybów transmisji:–– tryb asynchronicznych nie gwarantujący określonej tryb asynchronicznych nie gwarantujący określonej
110110
–– tryb asynchronicznych nie gwarantujący określonej tryb asynchronicznych nie gwarantujący określonej przepustowości (przepustowości (Bulk TransferBulk Transfer), który przeznaczony jest do ), który przeznaczony jest do obsługi podstawowych urządzeń zewnętrznych (np. obsługi podstawowych urządzeń zewnętrznych (np. drukarka, skaner)drukarka, skaner)
–– tryb synchroniczny o gwarantowanej szerokości pasma tryb synchroniczny o gwarantowanej szerokości pasma ((Isochnonous TransferIsochnonous Transfer), który przeznaczony jest do obsługi ), który przeznaczony jest do obsługi urządzeń przesyłających duże porcje danych z określoną urządzeń przesyłających duże porcje danych z określoną prędkością (np. kamera)prędkością (np. kamera)
Magistrala USBMagistrala USB
–– tryb natychmiastowy (tryb natychmiastowy (Interrupt TransferInterrupt Transfer), który ), który przeznaczony jest do obsługi urządzeń asynchronicznych przeznaczony jest do obsługi urządzeń asynchronicznych przesyłających niewielkie porcje danych (np. myszka, przesyłających niewielkie porcje danych (np. myszka, klawiatura)klawiatura)
–– tryb sterujący (tryb sterujący (Control TransferControl Transfer), który przeznaczony jest do ), który przeznaczony jest do konfigurowania nowo podłączonych do magistrali urządzeńkonfigurowania nowo podłączonych do magistrali urządzeń
�� Wszystkie przesyłane magistralą USB dane Wszystkie przesyłane magistralą USB dane
111111
�� Wszystkie przesyłane magistralą USB dane Wszystkie przesyłane magistralą USB dane transmitowane są w kolejności od najmłodszego do transmitowane są w kolejności od najmłodszego do najstarszego bitu (bajta)najstarszego bitu (bajta)
�� Każdy przesyłany pakiet rozpoczyna się 8 lub 32Każdy przesyłany pakiet rozpoczyna się 8 lub 32--bitową sekwencją synchronizującą (bitową sekwencją synchronizującą (SYNCSYNC), po której ), po której przekazywany jest 8przekazywany jest 8--bitowy identyfikator pakietu bitowy identyfikator pakietu ((PIDPID) określający m.in. rodzaj pakietu) określający m.in. rodzaj pakietu
Magistrala USBMagistrala USB
�� Specyfikacja USB definiuje następujące rodzaje Specyfikacja USB definiuje następujące rodzaje pakietów:pakietów:–– żeton (żeton (TokenToken) służący do określania adresu urządzenia USB ) służący do określania adresu urządzenia USB
(7 bitów ADDR + 4 bity ENDP), kierunku przepływu (7 bitów ADDR + 4 bity ENDP), kierunku przepływu pakietów danych oraz testowania aktywności urządzeniapakietów danych oraz testowania aktywności urządzenia
–– pakiet danych (pakiet danych (DataData) służący do przesyłania danych w ) służący do przesyłania danych w blokach o długości 0blokach o długości 0÷÷1024 bajtów zabezpieczonych 161024 bajtów zabezpieczonych 16--
112112
blokach o długości 0blokach o długości 0÷÷1024 bajtów zabezpieczonych 161024 bajtów zabezpieczonych 16--bitowym kodem CRCbitowym kodem CRC
–– pakiet potwierdzający (pakiet potwierdzający (HandshakeHandshake) służący do przekazania ) służący do przekazania raportu o przesłanych pakietach danych czy informacji o raportu o przesłanych pakietach danych czy informacji o aktywności urządzeniaaktywności urządzenia
–– pakiet specjalny (pakiet specjalny (SpecialSpecial) służący do sterowania ) służący do sterowania przepływem danych w magistrali, do której podłączone są przepływem danych w magistrali, do której podłączone są urządzenia o różnej prędkości transmisjiurządzenia o różnej prędkości transmisji
Magistrala FireWireMagistrala FireWire
�� Magistrala FireWire (i.Link, IEEEMagistrala FireWire (i.Link, IEEE--1394) jest odmianą 1394) jest odmianą łącza szeregowego służącą do podłączania szerokiej łącza szeregowego służącą do podłączania szerokiej gamy urządzeń peryferyjnych (przede wszystkim gamy urządzeń peryferyjnych (przede wszystkim audiowizualnych)audiowizualnych)
�� Cechy magistrali FireWire:Cechy magistrali FireWire:–– transmisja w trybie asynchronicznym z prędkością 100 Mb/s transmisja w trybie asynchronicznym z prędkością 100 Mb/s
113113
–– transmisja w trybie asynchronicznym z prędkością 100 Mb/s transmisja w trybie asynchronicznym z prędkością 100 Mb/s (S100), 200 Mb/s (S200) lub 400 Mb/s (S400)(S100), 200 Mb/s (S200) lub 400 Mb/s (S400)
–– negocjowana minimalna gwarantowana przepustowość negocjowana minimalna gwarantowana przepustowość pasma (pasma (Guaranteed BandwidthGuaranteed Bandwidth))
–– automatyczny przydział numerów (adresów) do urządzeń automatyczny przydział numerów (adresów) do urządzeń ((AutoAuto--IDID))
–– możliwość zmiany konfiguracji podłączonych urządzeń w możliwość zmiany konfiguracji podłączonych urządzeń w trakcie pracy (trakcie pracy (HotHot--PluggingPlugging))
Magistrala FireWireMagistrala FireWire
–– automatyczne dopasowywanie końców magistrali automatyczne dopasowywanie końców magistrali impedancją falowąimpedancją falową
–– fizyczna topologia połączeń typu drzewo (logiczna fizyczna topologia połączeń typu drzewo (logiczna magistrala) złożona z kaskadowo połączonych łańcuchów magistrala) złożona z kaskadowo połączonych łańcuchów (drzew) węzłów ((drzew) węzłów (NodesNodes) spajanych pomostami () spajanych pomostami (BridgesBridges))
–– maksymalna głębokość pojedynczego drzewa wynosi 16maksymalna głębokość pojedynczego drzewa wynosi 16
–– 1616--bitowe adresowanie węzłów (pojedynczy pomost bitowe adresowanie węzłów (pojedynczy pomost
114114
–– 1616--bitowe adresowanie węzłów (pojedynczy pomost bitowe adresowanie węzłów (pojedynczy pomost pozwala na dołączenie do 63 węzłów)pozwala na dołączenie do 63 węzłów)
–– 1010--bitowe adresowanie pomostówbitowe adresowanie pomostów
–– maksymalna długość kabla połączeniowego wynosi 4.5 m maksymalna długość kabla połączeniowego wynosi 4.5 m (maksymalna odległość między urządzeniem i kontrolerem (maksymalna odległość między urządzeniem i kontrolerem nie może przekroczyć 72 m)nie może przekroczyć 72 m)
–– możliwość zasilania urządzeń izolowanych (maksymalne możliwość zasilania urządzeń izolowanych (maksymalne obciążenie do 1.5 A)obciążenie do 1.5 A)
Magistrala FireWireMagistrala FireWire
�� Sześciożyłowy kabel połączeniowy magistrali Sześciożyłowy kabel połączeniowy magistrali FireWire (2 pary ekranowanej skrętki + 2 linie FireWire (2 pary ekranowanej skrętki + 2 linie zasilające) zakończony jest jednym z dwóch typów zasilające) zakończony jest jednym z dwóch typów gniazd: 6 (1394gniazd: 6 (1394--1995) lub 4 pinowym (1394a1995) lub 4 pinowym (1394a--2000)2000)
�� Pierwsza para skrętek służy do przesyłania Pierwsza para skrętek służy do przesyłania strumienia danych, druga do przesyłania impulsów strumienia danych, druga do przesyłania impulsów
115115
strumienia danych, druga do przesyłania impulsów strumienia danych, druga do przesyłania impulsów synchronizujących (transmisja typu simplex)synchronizujących (transmisja typu simplex)
�� Wymiana danych odbywa się poprzez kanały Wymiana danych odbywa się poprzez kanały wirtualne służące zarówno do realizacji klasycznej wirtualne służące zarówno do realizacji klasycznej transmisji asynchronicznej jak i transmisji z transmisji asynchronicznej jak i transmisji z gwarantowaną szerokością pasma (gwarantowaną szerokością pasma (Isochronous Data Isochronous Data TransportTransport))
Magistrala FireWireMagistrala FireWire
�� Najnowsza wersja standardu IEEENajnowsza wersja standardu IEEE--1394b wprowadza 1394b wprowadza następujące rozszerzenia:następujące rozszerzenia:–– tryby prędkości transmisji: 400 Mb/s, 800 Mb/s, 1600 Mb/s i tryby prędkości transmisji: 400 Mb/s, 800 Mb/s, 1600 Mb/s i
3200 Mb/s 3200 Mb/s
–– kodowania danych regułą 8/10, co pozwala na równoczesne kodowania danych regułą 8/10, co pozwala na równoczesne korzystanie z obu par skrętek sygnałowych do transmisji korzystanie z obu par skrętek sygnałowych do transmisji danychdanych
116116
danychdanych
–– zwiększenie maksymalnej długości kabla połączeniowego do zwiększenie maksymalnej długości kabla połączeniowego do 100 m wykorzystując okablowanie strukturalne kat. 5100 m wykorzystując okablowanie strukturalne kat. 5
–– możliwość realizacji połączeń na bazie innych mediów (np. możliwość realizacji połączeń na bazie innych mediów (np. światłowodu)światłowodu)
–– wprowadzenie nowych typów kabli połączeniowych (9wprowadzenie nowych typów kabli połączeniowych (9--żyłowych) i nowych złączżyłowych) i nowych złącz
–– optymalizacja protokołu transmisjioptymalizacja protokołu transmisji
Architektura procesoraArchitektura procesora
�� Począwszy od lat 60Począwszy od lat 60--tych procesory budowane były tych procesory budowane były w myśl zasady CISC (w myśl zasady CISC (Complex Instruction Set Complex Instruction Set ComputerComputer) cechującej się tendencją do rozszerzania ) cechującej się tendencją do rozszerzania listy rozkazów o nowe rozkazy, realizujące coraz listy rozkazów o nowe rozkazy, realizujące coraz bardziej złożone zadania (np. przesłania blokowe, bardziej złożone zadania (np. przesłania blokowe, operacje na łańcuchach)operacje na łańcuchach)
117117
operacje na łańcuchach)operacje na łańcuchach)
�� Lista rozkazów typowego procesora CISC obejmuje Lista rozkazów typowego procesora CISC obejmuje nawet kilkaset rozkazów cechujących się zmienną nawet kilkaset rozkazów cechujących się zmienną długością i czasem wykonania od jednego do długością i czasem wykonania od jednego do kilkudziesięciu taktów zegarakilkudziesięciu taktów zegara
�� Na pojedynczy rozkaz składa się sekwencja kilku do Na pojedynczy rozkaz składa się sekwencja kilku do kilkunastu tzw. mikrooperacjikilkunastu tzw. mikrooperacji
Architektura procesoraArchitektura procesora
�� Analiza kodu generowanego przez kompilatory Analiza kodu generowanego przez kompilatory języków wysokiego poziomu pozwoliła na języków wysokiego poziomu pozwoliła na wyciągnięcie następujących wniosków:wyciągnięcie następujących wniosków:–– za 80% czasu wykonywania programu odpowiada 20% za 80% czasu wykonywania programu odpowiada 20%
instrukcji (reguła 80/20)instrukcji (reguła 80/20)
–– dominującą grupą rozkazów stanowią proste instrukcje dominującą grupą rozkazów stanowią proste instrukcje
118118
–– dominującą grupą rozkazów stanowią proste instrukcje dominującą grupą rozkazów stanowią proste instrukcje przypisania, instrukcje warunkowe (IF, LOOP) oraz przypisania, instrukcje warunkowe (IF, LOOP) oraz wywołania i powroty z podprogramówwywołania i powroty z podprogramów
–– większość używanych argumentów stanowią zmienne większość używanych argumentów stanowią zmienne skalarne (głównie zmienne lokalne w procedurach)skalarne (głównie zmienne lokalne w procedurach)
�� Powyższe obserwacje doprowadziły do powstania Powyższe obserwacje doprowadziły do powstania koncepcji procesora o zredukowanej liczbie rozkazów koncepcji procesora o zredukowanej liczbie rozkazów RISC (RISC (Reduced Instruction Set ComputerReduced Instruction Set Computer) )
Architektura procesoraArchitektura procesora
�� Kluczowymi elementami koncepcji RISC jest:Kluczowymi elementami koncepcji RISC jest:–– nieduży zestaw stosunkowo prostych rozkazów o stałej nieduży zestaw stosunkowo prostych rozkazów o stałej
długości, pozwalający na znaczące uproszczenie konstrukcji długości, pozwalający na znaczące uproszczenie konstrukcji jednostki sterującej i układu dekodera instrukcji oraz na jednostki sterującej i układu dekodera instrukcji oraz na zwiększenie szybkości przetwarzania rozkazówzwiększenie szybkości przetwarzania rozkazów
–– wielopoziomowa pamięć podręczna usprawniająca wielopoziomowa pamięć podręczna usprawniająca pobieranie zwiększonej w stosunku do procesorów CISC pobieranie zwiększonej w stosunku do procesorów CISC
119119
pobieranie zwiększonej w stosunku do procesorów CISC pobieranie zwiększonej w stosunku do procesorów CISC liczby rozkazówliczby rozkazów
–– duża liczba rejestrów wewnętrznych umożliwiająca duża liczba rejestrów wewnętrznych umożliwiająca optymalizację odwołań do argumentów (zwłaszcza optymalizację odwołań do argumentów (zwłaszcza lokalnych)lokalnych)
–– optymalizacja potoków wykonawczych z uwagi na duży optymalizacja potoków wykonawczych z uwagi na duży udział w kodzie rozkazów rozgałęzień warunkowych oraz udział w kodzie rozkazów rozgałęzień warunkowych oraz wywoływań i powrotów z podprogramówwywoływań i powrotów z podprogramów
Architektura procesoraArchitektura procesora
�� Procesory oparte na architekturze RISC (np. Intel Procesory oparte na architekturze RISC (np. Intel i860, Sun SPARC, IBM RS/6000, Motorola MC88000) i860, Sun SPARC, IBM RS/6000, Motorola MC88000) cechują się pewnymi wspólnymi własnościami:cechują się pewnymi wspólnymi własnościami:–– wykonywanie większości rozkazów w jednym cyklu zegarawykonywanie większości rozkazów w jednym cyklu zegara
–– prosty format i stała długość rozkazu (dostosowana do prosty format i stała długość rozkazu (dostosowana do szerokości magistrali danych)szerokości magistrali danych)
120120
szerokości magistrali danych)szerokości magistrali danych)
–– jawne określanie rejestrów jako argumentów w kodzie jawne określanie rejestrów jako argumentów w kodzie rozkazurozkazu
–– mała liczba prostych trybów adresowania (głównie mała liczba prostych trybów adresowania (głównie adresowanie natychmiastowe, bezpośrednie i rejestrowe)adresowanie natychmiastowe, bezpośrednie i rejestrowe)
�� Wiele obecnie konstruowanych procesorów łączy w Wiele obecnie konstruowanych procesorów łączy w sobie cechy architektur CISC i RISC (np. Intel 80960, sobie cechy architektur CISC i RISC (np. Intel 80960, Pentium 4, PowerPC 601)Pentium 4, PowerPC 601)
Przetwarzanie potokowePrzetwarzanie potokowe
�� Przetwarzanie pojedynczego rozkazu można Przetwarzanie pojedynczego rozkazu można dekomponować na szereg etapów (faz), które dekomponować na szereg etapów (faz), które realizowane są przez niezależne obwody procesorarealizowane są przez niezależne obwody procesora
�� Strategia przetwarzania potokowego (Strategia przetwarzania potokowego (PipelinePipeline) ) polega na zorganizowaniu procesu przetwarzania polega na zorganizowaniu procesu przetwarzania rozkazów w sposób zbliżony do linii montażowej w rozkazów w sposób zbliżony do linii montażowej w
121121
rozkazów w sposób zbliżony do linii montażowej w rozkazów w sposób zbliżony do linii montażowej w zakładzie produkcyjnymzakładzie produkcyjnym
�� Podobnie jak linia montażowa potok zawiera rozkazy Podobnie jak linia montażowa potok zawiera rozkazy znajdujące się w różnym stadium przetwarzania, co znajdujące się w różnym stadium przetwarzania, co prowadzi do zwiększenia szybkości ich przetwarzaniaprowadzi do zwiększenia szybkości ich przetwarzania
�� Podstawowym parametrem mającym wpływ na Podstawowym parametrem mającym wpływ na efektywność potoku jest jego głębokośćefektywność potoku jest jego głębokość
Przetwarzanie potokowePrzetwarzanie potokowe
�� Dla przykładu 6Dla przykładu 6--etapowy potok (z jednostkowymi etapowy potok (z jednostkowymi czasami trwania poszczególnych etapów), który czasami trwania poszczególnych etapów), który wykorzystuje następującą dekompozycję wykorzystuje następującą dekompozycję przetwarzania rozkazu:przetwarzania rozkazu:–– Faza pobierania rozkazu (FI)Faza pobierania rozkazu (FI)
–– Faza dekodowania rozkazu (DI)Faza dekodowania rozkazu (DI)
122122
–– Faza dekodowania rozkazu (DI)Faza dekodowania rozkazu (DI)
–– Faza obliczania argumentów (CO)Faza obliczania argumentów (CO)
–– Faza pobierania argumentów (FO)Faza pobierania argumentów (FO)
–– Faza wykonania rozkazu (EI)Faza wykonania rozkazu (EI)
–– Faza zapisania wyniku (WR)Faza zapisania wyniku (WR)
pozwala na skrócenie czasu przetwarzania pięciu pozwala na skrócenie czasu przetwarzania pięciu rozkazów z 30 do 10 cykli zegararozkazów z 30 do 10 cykli zegara
Przetwarzanie potokowePrzetwarzanie potokowe
Rozkaz #1
Rozkaz #2
Rozkaz #3
FO WRCO EIDIFI
FO WRCO EIDIFI
FO WRCO EIDIFI
123123
Rozkaz #3
Rozkaz #4
Rozkaz #5
FO WRCO EIDIFI
FO WRCO EIDIFI
4 63 521 10987
Przetwarzanie potokowePrzetwarzanie potokowe
�� Czynniki obniżające wydajność przetwarzania Czynniki obniżające wydajność przetwarzania potokowego:potokowego:–– różny czas trwania poszczególnych etapów prowadzi do różny czas trwania poszczególnych etapów prowadzi do
powstawania opóźnień i najczęściej wymusza stosowanie powstawania opóźnień i najczęściej wymusza stosowanie dodatkowych buforówdodatkowych buforów
–– niewszystkie etapy mogą być zawsze realizowane niewszystkie etapy mogą być zawsze realizowane równolegle, z uwagi na możliwość wystąpienia konfliktów w równolegle, z uwagi na możliwość wystąpienia konfliktów w
124124
równolegle, z uwagi na możliwość wystąpienia konfliktów w równolegle, z uwagi na możliwość wystąpienia konfliktów w dostępie do zasobów (np. fazy FI, FO, WR z poprzedniego dostępie do zasobów (np. fazy FI, FO, WR z poprzedniego przykładu mogą wymagać dostępu do pamięci)przykładu mogą wymagać dostępu do pamięci)
–– wystąpienie przerwania, błędu strony lub naruszenie wystąpienie przerwania, błędu strony lub naruszenie ochrony zaburza sekwencję przetwarzanych rozkazów i ochrony zaburza sekwencję przetwarzanych rozkazów i wymusza czyszczenie całego potokuwymusza czyszczenie całego potoku
–– wystąpienie instrukcji rozgałęzienia warunkowego może wystąpienie instrukcji rozgałęzienia warunkowego może prowadzić do unieważnienia rozkazów wewnątrz potokuprowadzić do unieważnienia rozkazów wewnątrz potoku
Przetwarzanie potokowePrzetwarzanie potokowe
�� Sposoby postępowania w przypadku rozgałęzień:Sposoby postępowania w przypadku rozgałęzień:–– pobieranie rozkazu docelowego z wyprzedzeniem pobieranie rozkazu docelowego z wyprzedzeniem
(pobieranie rozkazu docelowego razem z rozkazem (pobieranie rozkazu docelowego razem z rozkazem następującym po rozgałęzieniu)następującym po rozgałęzieniu)
–– zwielokrotnienie strumienia (jednoczesne przetwarzanie zwielokrotnienie strumienia (jednoczesne przetwarzanie kilku ścieżek wykonawczych)kilku ścieżek wykonawczych)
–– stosowanie bufora pętli (zapamiętywanie w niewielkiej, stosowanie bufora pętli (zapamiętywanie w niewielkiej,
125125
–– stosowanie bufora pętli (zapamiętywanie w niewielkiej, stosowanie bufora pętli (zapamiętywanie w niewielkiej, szybkiej pamięci ostatnio pobranych rozkazów i sprawdzanie szybkiej pamięci ostatnio pobranych rozkazów i sprawdzanie czy cel rozgałęzienia znajduje się wewnątrz bufora)czy cel rozgałęzienia znajduje się wewnątrz bufora)
–– opóźnianie rozgałęzienia (zmiana porządku wykonywanych opóźnianie rozgałęzienia (zmiana porządku wykonywanych rozkazów tak, aby rozgałęzienie występowało później)rozkazów tak, aby rozgałęzienie występowało później)
–– przewidywanie rozgałęzień (predykcja wyniku rozgałęzienia przewidywanie rozgałęzień (predykcja wyniku rozgałęzienia w oparciu o kod operacji, zapamiętaną historię rozkazu lub w oparciu o kod operacji, zapamiętaną historię rozkazu lub tablicę historii rozgałęzień) tablicę historii rozgałęzień)
Przetwarzanie potokowePrzetwarzanie potokowe
�� Najczęściej stosowanym obecnie rozwiązaniem jest Najczęściej stosowanym obecnie rozwiązaniem jest technika przewidywania biegu programu (technika przewidywania biegu programu (Branch Branch PredictionPrediction) w oparciu o bufor historii rozgałęzień BTB ) w oparciu o bufor historii rozgałęzień BTB ((Branch Target BufferBranch Target Buffer))
�� Tablica BTB jest szybką pamięcią asocjacyjną Tablica BTB jest szybką pamięcią asocjacyjną zawierającą od kilkuset do kilku tysięcy rekordów zawierającą od kilkuset do kilku tysięcy rekordów
126126
zawierającą od kilkuset do kilku tysięcy rekordów zawierającą od kilkuset do kilku tysięcy rekordów przechowujących: adres instrukcji rozgałęzienia, przechowujących: adres instrukcji rozgałęzienia, adres instrukcji docelowej oraz pewną liczbę bitów adres instrukcji docelowej oraz pewną liczbę bitów rejestrujących przebieg (historię) przetwarzaniarejestrujących przebieg (historię) przetwarzania
�� Efektywność przewidywania zależy od stosowanego Efektywność przewidywania zależy od stosowanego algorytmu predykcji oraz wielkości bufora BTB i algorytmu predykcji oraz wielkości bufora BTB i waha się od ok. 65% do prawie 90%waha się od ok. 65% do prawie 90%
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Technika przetwarzania superskalarnego polega na Technika przetwarzania superskalarnego polega na zastosowaniu kilku działających równolegle potoków zastosowaniu kilku działających równolegle potoków przetwarzających dane skalarne, co pozwala na przetwarzających dane skalarne, co pozwala na wykonywanie więcej niż jednego rozkazu w jednym wykonywanie więcej niż jednego rozkazu w jednym cyklu zegaracyklu zegara
�� Podstawową trudnością w realizacji przetwarzania Podstawową trudnością w realizacji przetwarzania
127127
�� Podstawową trudnością w realizacji przetwarzania Podstawową trudnością w realizacji przetwarzania superskalarnego jest wzajemna współzależność superskalarnego jest wzajemna współzależność rozkazów wykonywanych w poszczególnych rozkazów wykonywanych w poszczególnych potokach, wynikająca m.in. z rozgałęzień oraz potokach, wynikająca m.in. z rozgałęzień oraz uzależnień i konfliktów w dostępie do zasobówuzależnień i konfliktów w dostępie do zasobów
�� Dla przykładu procesor Pentium wykorzystuje dwa Dla przykładu procesor Pentium wykorzystuje dwa potoki wykonawcze, oznaczane odpowiednio U i Vpotoki wykonawcze, oznaczane odpowiednio U i V
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Dzięki równoległemu wykonywaniu rozkazów, Dzięki równoległemu wykonywaniu rozkazów, możliwe jest wykonywanie instrukcji całkowitomożliwe jest wykonywanie instrukcji całkowito--liczbowych w obu potokach w jednym cyklu liczbowych w obu potokach w jednym cyklu rozkazowymrozkazowym
�� Potoki skojarzone z obiema kolejkami rozkazów nie Potoki skojarzone z obiema kolejkami rozkazów nie są równouprawnione:są równouprawnione:
128128
są równouprawnione:są równouprawnione:–– potok U pozwala na wykonywanie dowolnej instrukcji z potok U pozwala na wykonywanie dowolnej instrukcji z
zestawu rozkazów procesorów 80x86zestawu rozkazów procesorów 80x86
–– potok V umożliwia realizację jedynie tzw. instrukcji prostych potok V umożliwia realizację jedynie tzw. instrukcji prostych (rozkazy operujące na danych całkowitych oraz rozkazy (rozkazy operujące na danych całkowitych oraz rozkazy zamiany danych w rejestrach), które realizowane są zamiany danych w rejestrach), które realizowane są całkowicie sprzętowo, bez udziału mikroprogramu całkowicie sprzętowo, bez udziału mikroprogramu wbudowanego w pamięć ROM procesorawbudowanego w pamięć ROM procesora
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Rozkazy przeznaczone dla potoku U i V przesuwają Rozkazy przeznaczone dla potoku U i V przesuwają się synchronicznie przez poszczególne stopnie się synchronicznie przez poszczególne stopnie przetwarzaniaprzetwarzania
�� Jeżeli rozkaz w jednym z potoków przejdzie Jeżeli rozkaz w jednym z potoków przejdzie określony stopień przetwarzania przed zakończeniem określony stopień przetwarzania przed zakończeniem tej samej fazy w drugim potoku, to wówczas tej samej fazy w drugim potoku, to wówczas
129129
tej samej fazy w drugim potoku, to wówczas tej samej fazy w drugim potoku, to wówczas oczekuje on na drugi rozkaz, tak aby oba rozkazy oczekuje on na drugi rozkaz, tak aby oba rozkazy razem mogły przejść do kolejnej fazy przetwarzaniarazem mogły przejść do kolejnej fazy przetwarzania
�� Procesor jest w stanie z każdego potoku Procesor jest w stanie z każdego potoku równocześnie odwoływać się do danych równocześnie odwoływać się do danych umieszczonych w wewnętrznej pamięci podręcznejumieszczonych w wewnętrznej pamięci podręcznej
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Uzyskanie zrównoleglenia przetwarzania wymaga Uzyskanie zrównoleglenia przetwarzania wymaga tzw. „parowania rozkazów” tj. łączenia ich w pary w tzw. „parowania rozkazów” tj. łączenia ich w pary w taki sposób, aby mogły być wykonywane równolegle taki sposób, aby mogły być wykonywane równolegle przez oba potokiprzez oba potoki
�� Instrukcje podlegające łączeniu w pary można Instrukcje podlegające łączeniu w pary można podzielić na trzy grupy:podzielić na trzy grupy:
130130
podzielić na trzy grupy:podzielić na trzy grupy:–– grupę UV stanowią instrukcje, które połączone w pary mogą grupę UV stanowią instrukcje, które połączone w pary mogą
być wykonywane w obu potokachbyć wykonywane w obu potokach
–– grupę PU stanowią instrukcje wykonywane tylko w potoku U grupę PU stanowią instrukcje wykonywane tylko w potoku U połączone w pary z odpowiednimi instrukcjami z potoku Vpołączone w pary z odpowiednimi instrukcjami z potoku V
–– grupę PV stanowią instrukcje (wykonywane w obu grupę PV stanowią instrukcje (wykonywane w obu potokach), które połączone w pary z instrukcjami ze zbioru potokach), które połączone w pary z instrukcjami ze zbioru UV i PU będą wykonywane w potoku VUV i PU będą wykonywane w potoku V
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Próba wykonania pewnych par instrukcji w sposób Próba wykonania pewnych par instrukcji w sposób równoległy może prowadzić do pojawienia się równoległy może prowadzić do pojawienia się konfliktów lub uzależnień (które w konsekwencji konfliktów lub uzależnień (które w konsekwencji utrudniają lub wręcz uniemożliwiają łączenie takich utrudniają lub wręcz uniemożliwiają łączenie takich instrukcji w pary):instrukcji w pary):–– RAR (RAR (Read After ReadRead After Read) np. ) np. add bx, axadd bx, ax
131131
–– RAR (RAR (Read After ReadRead After Read) np. ) np. add bx, axadd bx, axmov cx, axmov cx, ax
–– RAW (RAW (Read After WriteRead After Write) np. ) np. mov ax, bxmov ax, bxmov [mem], axmov [mem], ax
–– WAR (WAR (Write After ReadWrite After Read) np. ) np. mov bx, axmov bx, axadd ax, cxadd ax, cx
–– WAW (WAW (Write After WriteWrite After Write) np. ) np. mov ax, [mem]mov ax, [mem]mov ax, bxmov ax, bx
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Uzależnienie typu RAR jest wynikiem konfliktu Uzależnienie typu RAR jest wynikiem konfliktu podczas próby jednoczesnego odczytu rejestru lecz podczas próby jednoczesnego odczytu rejestru lecz można je stosunkowo łatwo usunąć poprzez można je stosunkowo łatwo usunąć poprzez zdublowanie portu odczytu rejestruzdublowanie portu odczytu rejestru
�� Wynikiem uzależnienia typu RAW jest wystąpienie Wynikiem uzależnienia typu RAW jest wystąpienie opóźnienia związanego z oczekiwaniem na wynik opóźnienia związanego z oczekiwaniem na wynik
132132
opóźnienia związanego z oczekiwaniem na wynik opóźnienia związanego z oczekiwaniem na wynik wcześniejszej operacjiwcześniejszej operacji
�� Uzależnienia typu WAR i WAW wynikają z konfliktu Uzależnienia typu WAR i WAW wynikają z konfliktu podczas próby jednoczesnego zapisu (lub odczytu i podczas próby jednoczesnego zapisu (lub odczytu i zapisu) do rejestru i można im zapobiec stosując zapisu) do rejestru i można im zapobiec stosując technikę przemianowywania rejestrów (technikę przemianowywania rejestrów (Register Register RenamingRenaming))
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Technika przemianowywanie rejestrów polega na Technika przemianowywanie rejestrów polega na wykorzystaniu puli dodatkowych rejestrów i ich wykorzystaniu puli dodatkowych rejestrów i ich dynamicznym mapowaniu do rejestrów dostępnych dynamicznym mapowaniu do rejestrów dostępnych programowoprogramowo
�� Po zdekodowaniu rozkazu, którego wynik ma być Po zdekodowaniu rozkazu, którego wynik ma być docelowo umieszczony w rejestrze, następuje docelowo umieszczony w rejestrze, następuje
133133
docelowo umieszczony w rejestrze, następuje docelowo umieszczony w rejestrze, następuje przydzielenie z puli rejestru, na którym będzie przydzielenie z puli rejestru, na którym będzie wykonywana operacja i zaktualizowanie tablicy wykonywana operacja i zaktualizowanie tablicy zamienników RAT (zamienników RAT (Register Allocation TableRegister Allocation Table))
�� Ponieważ rejestr dostępny programowo może być Ponieważ rejestr dostępny programowo może być mapowany na kilka rejestrów z puli, pozwala to na mapowany na kilka rejestrów z puli, pozwala to na zrównoleglenie wykonywania rozkazówzrównoleglenie wykonywania rozkazów
Przetwarzanie superskalarnePrzetwarzanie superskalarne
�� Dla przykładu sekwencja rozkazów (WAR):Dla przykładu sekwencja rozkazów (WAR):mov bx, axmov bx, ax
add ax, cxadd ax, cx
po podstawieniu:po podstawieniu:ax ax --> R0> R0
bx bx --> R1> R1
134134
bx bx --> R1> R1
cx cx --> R2> R2
i przemianowaniu:i przemianowaniu:ax ax --> R3> R3
zostaje przekształcona w sekwencję:zostaje przekształcona w sekwencję:R1 := R0R1 := R0
R3 := R0 + R2R3 := R0 + R2
Dynamiczne wykonywanie instrukcjiDynamiczne wykonywanie instrukcji
�� Dynamiczne wykonywanie instrukcji jest techniką Dynamiczne wykonywanie instrukcji jest techniką pozwalającą na wykonywanie wejściowej sekwencji pozwalającą na wykonywanie wejściowej sekwencji instrukcji w dowolnej kolejności (instrukcji w dowolnej kolejności (outout--ofof--order order executionexecution) w celu uniknięcia konfliktów w dostępie ) w celu uniknięcia konfliktów w dostępie do zasobów oraz powstawania opóźnień podczas do zasobów oraz powstawania opóźnień podczas potokowego przetwarzania instrukcji potokowego przetwarzania instrukcji
135135
potokowego przetwarzania instrukcji potokowego przetwarzania instrukcji
�� Dynamiczne wykonywanie instrukcji oparte jest na:Dynamiczne wykonywanie instrukcji oparte jest na:–– zaawansowanej predykcji rozgałęzień (zaawansowanej predykcji rozgałęzień (deep branch deep branch
predictionprediction))
–– dynamicznej analizie przepływu danych (dynamicznej analizie przepływu danych (dynamic data flow dynamic data flow analysisanalysis))
–– spekulatywnym wykonywaniu rozkazów (spekulatywnym wykonywaniu rozkazów (speculative speculative executionexecution))
Dynamiczne wykonywanie instrukcjiDynamiczne wykonywanie instrukcji
�� Dynamiczna analiza przepływu danych polega na Dynamiczna analiza przepływu danych polega na analizowaniu w czasie rzeczywistym sekwencji analizowaniu w czasie rzeczywistym sekwencji instrukcji przetwarzanych przez procesor w celu instrukcji przetwarzanych przez procesor w celu wykrycia i określenia zależności pozwalających na ich wykrycia i określenia zależności pozwalających na ich optymalne uszeregowanie w jednostkach optymalne uszeregowanie w jednostkach wykonawczychwykonawczych
136136
wykonawczychwykonawczych
�� Spekulatywne wykonywanie instrukcji polega na Spekulatywne wykonywanie instrukcji polega na wykonywaniu instrukcji znajdujących się za jeszcze wykonywaniu instrukcji znajdujących się za jeszcze nierozstrzygniętą instrukcją warunkową, przy czym nierozstrzygniętą instrukcją warunkową, przy czym wyniki tychże instrukcji są zapamiętywane w wyniki tychże instrukcji są zapamiętywane w specjalnym bloku rejestrów tymczasowychspecjalnym bloku rejestrów tymczasowych
Dynamiczne wykonywanie instrukcjiDynamiczne wykonywanie instrukcji
�� Typowa sekwencja dynamicznego wykonania Typowa sekwencja dynamicznego wykonania instrukcji przebiega następująco:instrukcji przebiega następująco:–– utworzenie przez układ MIS (utworzenie przez układ MIS (Microcode Instruction Microcode Instruction
SequencerSequencer) sekwencji mikrooperacji do wykonania) sekwencji mikrooperacji do wykonania
–– uzupełnienie sekwencji mikrooperacji informacją o ich uzupełnienie sekwencji mikrooperacji informacją o ich oryginalnej kolejnościoryginalnej kolejności
137137
–– przydzielenie do mikrooperacji rejestrów tymczasowychprzydzielenie do mikrooperacji rejestrów tymczasowych
–– pobranie mikrooperacji do wykonania przez układ przydziału pobranie mikrooperacji do wykonania przez układ przydziału zasobów RS (zasobów RS (Reservation StationReservation Station) w takiej kolejności, która ) w takiej kolejności, która zapewnia najbardziej optymalne ich wykonaniezapewnia najbardziej optymalne ich wykonanie
–– odtworzenie przez układ RU (odtworzenie przez układ RU (Retirement UnitRetirement Unit) właściwej ) właściwej kolejności zrealizowanych mikrooperacji i przepisanie kolejności zrealizowanych mikrooperacji i przepisanie wyników z rejestrów tymczasowych do rejestrów wyników z rejestrów tymczasowych do rejestrów dostępnych programowodostępnych programowo
Pamięć podręcznaPamięć podręczna
�� Celem stosowania pamięci podręcznej (Celem stosowania pamięci podręcznej (CacheCache) jest ) jest zwiększenie wydajności podsystemu pamięci zwiększenie wydajności podsystemu pamięci wynikające z zasady lokalności, w myśl której:wynikające z zasady lokalności, w myśl której:–– zdecydowana większość kodu przetwarzana jest w sposób zdecydowana większość kodu przetwarzana jest w sposób
sekwencyjny (za wyjątkiem instrukcji skoków oraz wywołań sekwencyjny (za wyjątkiem instrukcji skoków oraz wywołań i powrotów z procedur), co oznacza, że zajmuje on spójny i i powrotów z procedur), co oznacza, że zajmuje on spójny i ciągły blok w pamięciciągły blok w pamięci
138138
ciągły blok w pamięciciągły blok w pamięci
–– znaczna część obliczeń dotyczy przetwarzania zmiennych znaczna część obliczeń dotyczy przetwarzania zmiennych prostych, tablic i rekordów, które położone są w pamięci prostych, tablic i rekordów, które położone są w pamięci stosunkowo blisko siebiestosunkowo blisko siebie
�� Cechą charakterystyczną pamięci podręcznej jest Cechą charakterystyczną pamięci podręcznej jest bardzo krótki czas dostępu, co pozwala na efektywne bardzo krótki czas dostępu, co pozwala na efektywne buforowanie wolniejszej pamięci operacyjnej RAMbuforowanie wolniejszej pamięci operacyjnej RAM
Pamięć podręcznaPamięć podręczna
�� Typowa pamięć podręczna jest systemem Typowa pamięć podręczna jest systemem wielopoziomowym złożonym najczęściej z dwóch wielopoziomowym złożonym najczęściej z dwóch (L1+L2) lub trzech (L1+L2+L3) kaskadowo (L1+L2) lub trzech (L1+L2+L3) kaskadowo połączonych układów pamięci statycznych o coraz połączonych układów pamięci statycznych o coraz większym czasie dostępu i coraz większej pojemnościwiększym czasie dostępu i coraz większej pojemności
�� Pamięć podręczna L1 ma zwykle pojemność od kilku Pamięć podręczna L1 ma zwykle pojemność od kilku
139139
�� Pamięć podręczna L1 ma zwykle pojemność od kilku Pamięć podręczna L1 ma zwykle pojemność od kilku do kilkudziesięciu KB i na ogół służy do rozdzielnego do kilkudziesięciu KB i na ogół służy do rozdzielnego buforowania danych i instrukcjibuforowania danych i instrukcji
�� Rodzaje architektur systemów z pamięcią podręczną:Rodzaje architektur systemów z pamięcią podręczną:–– konwencjonalna (konwencjonalna (LookLook--AsideAside))
–– szeregowa (szeregowa (LookLook--ThroughThrough))
–– dwuszynowa (dwuszynowa (BacksideBackside))
Pamięć podręcznaPamięć podręczna
�� Umiejscowienie pamięci podręcznej w architekturze Umiejscowienie pamięci podręcznej w architekturze konwencjonalnej (konwencjonalnej (LookLook--AsideAside):):
ProcesorProcesor
140140
Pamięć Pamięć podręcznapodręczna
Pamięć Pamięć operacyjnaoperacyjna
Pamięć podręcznaPamięć podręczna
�� Pamięć podręczna typu Pamięć podręczna typu LookLook--AsideAside dołączana jest do dołączana jest do systemu przez magistralę systemową i pracuje z systemu przez magistralę systemową i pracuje z wyznaczaną przez nią częstotliwością taktowaniawyznaczaną przez nią częstotliwością taktowania
�� Kontroler pamięci podręcznej monitoruje wszystkie Kontroler pamięci podręcznej monitoruje wszystkie odwołania procesora do pamięci, aby sprawdzić, czy odwołania procesora do pamięci, aby sprawdzić, czy żądana dana znajduje się w pamięci podręcznejżądana dana znajduje się w pamięci podręcznej
141141
żądana dana znajduje się w pamięci podręcznejżądana dana znajduje się w pamięci podręcznej
�� W przypadku „trafienia” (W przypadku „trafienia” (cache hitcache hit) tj. znalezienia ) tj. znalezienia żądanej danej, procesor przerywa cykl magistrali i żądanej danej, procesor przerywa cykl magistrali i informuje podsystem sterujący pamięcią operacyjną, informuje podsystem sterujący pamięcią operacyjną, aby zignorował żądanieaby zignorował żądanie
�� W przypadku „chybienia” (W przypadku „chybienia” (cache misscache miss), cykle ), cykle magistrali są wykonywane w normalny sposóbmagistrali są wykonywane w normalny sposób
Pamięć podręcznaPamięć podręczna
�� Zalety stosowania pamięci typu Zalety stosowania pamięci typu LookLook--AsideAside::–– niski koszt wynikający z prostej konstrukcjiniski koszt wynikający z prostej konstrukcji
–– polepszony czas dostępu do danych, które nie znajdują się polepszony czas dostępu do danych, które nie znajdują się w pamięci podręcznejw pamięci podręcznej
�� Podstawową wadą stosowania pamięci typu Podstawową wadą stosowania pamięci typu LookLook--AsideAside jest brak izolowania magistrali procesora od jest brak izolowania magistrali procesora od
142142
AsideAside jest brak izolowania magistrali procesora od jest brak izolowania magistrali procesora od magistrali systemowej, co prowadzi do:magistrali systemowej, co prowadzi do:–– niemożności zredukowania stopnia wykorzystania magistrali niemożności zredukowania stopnia wykorzystania magistrali
systemowejsystemowej
–– braku możliwości współbieżnego wykonywania operacji braku możliwości współbieżnego wykonywania operacji (dostęp do pamięci podręcznej realizowany jest przez (dostęp do pamięci podręcznej realizowany jest przez magistralę systemową)magistralę systemową)
Pamięć podręcznaPamięć podręczna
�� Umiejscowienie pamięci podręcznej w architekturze Umiejscowienie pamięci podręcznej w architekturze szeregowej (szeregowej (LookLook--ThroughThrough):):
ProcesorProcesor
143143
Pamięć Pamięć podręcznapodręczna
Pamięć Pamięć operacyjnaoperacyjna
Pamięć podręcznaPamięć podręczna
�� Po zainicjowaniu cyklu odczytu pamięć typu Po zainicjowaniu cyklu odczytu pamięć typu LookLook--ThroughThrough przeszukuje swój katalog w celu przeszukuje swój katalog w celu rozstrzygnięcia, czy zawiera kopię żądanej przez rozstrzygnięcia, czy zawiera kopię żądanej przez procesor danejprocesor danej
�� W przypadku „trafienia” dana wysyłana jest do W przypadku „trafienia” dana wysyłana jest do procesora z zerowymi cyklami oczekiwania procesora z zerowymi cyklami oczekiwania
144144
procesora z zerowymi cyklami oczekiwania procesora z zerowymi cyklami oczekiwania magistrali, a magistrala systemowa pozostaje magistrali, a magistrala systemowa pozostaje dostępna dla innych urządzeń (np. dla danych dostępna dla innych urządzeń (np. dla danych przesyłanych w trybie DMA)przesyłanych w trybie DMA)
�� W przypadku „chybienia” następuje odczyt danej z W przypadku „chybienia” następuje odczyt danej z pamięci operacyjnej (przez magistralę systemową)pamięci operacyjnej (przez magistralę systemową)
Pamięć podręcznaPamięć podręczna
�� Zalety stosowania pamięci typu Zalety stosowania pamięci typu LookLook--ThroughThrough::–– zredukowanie stopnia wykorzystania magistrali systemowejzredukowanie stopnia wykorzystania magistrali systemowej
–– możliwość równoczesnego (współbieżnego) wykonywania możliwość równoczesnego (współbieżnego) wykonywania operacji na dwóch magistralach znajdujących się w jednym operacji na dwóch magistralach znajdujących się w jednym systemiesystemie
–– wykonywanie operacji zapisu w zerowych cyklach wykonywanie operacji zapisu w zerowych cyklach oczekiwania magistralioczekiwania magistrali
145145
oczekiwania magistralioczekiwania magistrali
–– możliwość taktowania magistrali lokalnej inną możliwość taktowania magistrali lokalnej inną częstotliwością niż magistrali systemowejczęstotliwością niż magistrali systemowej
�� Wady stosowania pamięci typu Wady stosowania pamięci typu LookLook--ThroughThrough::–– wyższy koszt wynikający z większej złożoności układuwyższy koszt wynikający z większej złożoności układu
–– wolniejszy niż w przypadku pamięci wolniejszy niż w przypadku pamięci LookLook--asideaside odczyt odczyt danych, które nie znajdują się w pamięci podręcznejdanych, które nie znajdują się w pamięci podręcznej
Pamięć podręcznaPamięć podręczna
�� Umiejscowienie pamięci podręcznej w architekturze Umiejscowienie pamięci podręcznej w architekturze dwuszynowej (dwuszynowej (BacksideBackside):):
ProcesorProcesor
146146
Pamięć Pamięć podręcznapodręczna
Pamięć Pamięć operacyjnaoperacyjna
Pamięć podręcznaPamięć podręczna
�� Pamięć podręczna typu Pamięć podręczna typu BacksideBackside podłączona jest do podłączona jest do procesora dedykowaną magistralą BSB (procesora dedykowaną magistralą BSB (Back Side Back Side BusBus), która jest całkowicie niezależna od magistrali ), która jest całkowicie niezależna od magistrali pamięciowej FSB (pamięciowej FSB (Front Side BusFront Side Bus))
�� Rozwiązanie to pozwala na swobodny wybór Rozwiązanie to pozwala na swobodny wybór częstotliwości pracy pamięci podręcznejczęstotliwości pracy pamięci podręcznej
147147
częstotliwości pracy pamięci podręcznejczęstotliwości pracy pamięci podręcznej
�� Podobnie jak w przypadku pamięci typu Podobnie jak w przypadku pamięci typu LookLook--ThroughThrough obie magistrale mogą działać współbieżnieobie magistrale mogą działać współbieżnie
�� Pamięć typu Pamięć typu BacksideBackside może być wkomponowana w może być wkomponowana w strukturę samego procesora (Pentium Pro) lub strukturę samego procesora (Pentium Pro) lub umieszczona w jego pobliżu (Pentium III)umieszczona w jego pobliżu (Pentium III)
Pamięć podręcznaPamięć podręczna
�� Jeżeli dane w pamięci operacyjnej różnią się od Jeżeli dane w pamięci operacyjnej różnią się od odpowiadających im danych w pamięci podręcznej odpowiadających im danych w pamięci podręcznej mamy do czynienia z utratą spójności pamięci mamy do czynienia z utratą spójności pamięci podręcznejpodręcznej
�� Przyczyną takiej sytuacji może być „trafienie” zapisu Przyczyną takiej sytuacji może być „trafienie” zapisu w pamięć podręczną lub zapisanie danych do w pamięć podręczną lub zapisanie danych do
148148
w pamięć podręczną lub zapisanie danych do w pamięć podręczną lub zapisanie danych do pamięci operacyjnej przez urządzenie zewnętrznepamięci operacyjnej przez urządzenie zewnętrzne
�� Strategie zapisu zapewniające spójność pamięci Strategie zapisu zapewniające spójność pamięci podręcznej:podręcznej:–– Zapis jednoczesny (Zapis jednoczesny (WriteWrite--ThroughThrough))
–– Zapis buforowany (Zapis buforowany (Buffered WriteBuffered Write--ThroughThrough))
–– Zapis opóźniony (Zapis opóźniony (WriteWrite--BackBack))
Pamięć podręcznaPamięć podręczna
�� W strategii W strategii WriteWrite--ThroughThrough każdy zapis do pamięci każdy zapis do pamięci podręcznej powoduje natychmiastowe wykonanie podręcznej powoduje natychmiastowe wykonanie cyklu zapisu do pamięci operacyjnej, co gwarantuje cyklu zapisu do pamięci operacyjnej, co gwarantuje stałe utrzymywanie aktualnych danych w pamięci stałe utrzymywanie aktualnych danych w pamięci operacyjnejoperacyjnej
�� Operacja zapisu w pamięci operacyjnej realizowana Operacja zapisu w pamięci operacyjnej realizowana
149149
�� Operacja zapisu w pamięci operacyjnej realizowana Operacja zapisu w pamięci operacyjnej realizowana jest niezależnie od tego, czy nastąpiło „trafienie” czy jest niezależnie od tego, czy nastąpiło „trafienie” czy „chybienie” z zapisem do pamięci podręcznej„chybienie” z zapisem do pamięci podręcznej
�� Implementacja tej metody jest bardzo efektywna i Implementacja tej metody jest bardzo efektywna i prosta, cechuje się jednak małą wydajnością, gdyż prosta, cechuje się jednak małą wydajnością, gdyż każda operacja zapisu powoduje odwołanie się do każda operacja zapisu powoduje odwołanie się do wolnej pamięci operacyjnejwolnej pamięci operacyjnej
Pamięć podręcznaPamięć podręczna
�� Strategia Strategia Buffered WriteBuffered Write--ThroughThrough polega na polega na zapamiętywaniu przez kontroler pamięci podręcznej zapamiętywaniu przez kontroler pamięci podręcznej realizowanych operacji zapisu w specjalnym buforze, realizowanych operacji zapisu w specjalnym buforze, co umożliwia ich późniejsze zrealizowanie w pamięci co umożliwia ich późniejsze zrealizowanie w pamięci operacyjnej bez wpływu na pracę procesoraoperacyjnej bez wpływu na pracę procesora
�� Podstawową zaletą tej metody jest brak cykli Podstawową zaletą tej metody jest brak cykli
150150
�� Podstawową zaletą tej metody jest brak cykli Podstawową zaletą tej metody jest brak cykli oczekiwania magistrali zarówno w przypadku oczekiwania magistrali zarówno w przypadku „trafienia” jak i „chybienia” zapisu„trafienia” jak i „chybienia” zapisu
�� Ten rodzaj zapisu powoduje, że inne urządzenie Ten rodzaj zapisu powoduje, że inne urządzenie wymagające dostępu do magistrali nie może wymagające dostępu do magistrali nie może przeprowadzać na niej żadnych operacji do chwili przeprowadzać na niej żadnych operacji do chwili zakończenia operacji zapisuzakończenia operacji zapisu
Pamięć podręcznaPamięć podręczna
�� Strategia Strategia WriteWrite--BackBack zwiększa całkowitą wydajność zwiększa całkowitą wydajność systemu, gdyż dokonuje aktualizacji pamięci systemu, gdyż dokonuje aktualizacji pamięci operacyjnej tylko wtedy, gdy jest to konieczneoperacyjnej tylko wtedy, gdy jest to konieczne
�� Aktualizacja pamięci operacyjnej ma miejsce w Aktualizacja pamięci operacyjnej ma miejsce w przypadku gdy:przypadku gdy:–– urządzenie zewnętrzne inicjuje operację odczytu lub zapisu urządzenie zewnętrzne inicjuje operację odczytu lub zapisu
151151
–– urządzenie zewnętrzne inicjuje operację odczytu lub zapisu urządzenie zewnętrzne inicjuje operację odczytu lub zapisu tych słów pamięci, które zawierają „przeterminowane” danetych słów pamięci, które zawierają „przeterminowane” dane
–– słowo pamięci podręcznej, które zawiera zmodyfikowane słowo pamięci podręcznej, które zawiera zmodyfikowane dane, ma zostać nadpisane danymi z pamięci operacyjnejdane, ma zostać nadpisane danymi z pamięci operacyjnej
�� Słowa pamięci podręcznej są oznaczane w lokalnym Słowa pamięci podręcznej są oznaczane w lokalnym katalogu w momencie kiedy są aktualizowane przez katalogu w momencie kiedy są aktualizowane przez procesorprocesor
Pamięć podręcznaPamięć podręczna
�� W momencie zapisu lub odczytu do lub z pamięci W momencie zapisu lub odczytu do lub z pamięci operacyjnej, podsystem pamięci podręcznej musi operacyjnej, podsystem pamięci podręcznej musi monitorować magistralę systemową aby sprawdzić, monitorować magistralę systemową aby sprawdzić, czy są to odwołania do słów pamięci oznaczonych czy są to odwołania do słów pamięci oznaczonych jako zmodyfikowanejako zmodyfikowane
�� Zachowanie spójności pamięci podręcznej (zwłaszcza Zachowanie spójności pamięci podręcznej (zwłaszcza
152152
�� Zachowanie spójności pamięci podręcznej (zwłaszcza Zachowanie spójności pamięci podręcznej (zwłaszcza w systemach wieloprocesorowych) oparte jest na w systemach wieloprocesorowych) oparte jest na protokole MESI, który określa stan każdego wiersza protokole MESI, który określa stan każdego wiersza pamięci podręcznej danych jako:pamięci podręcznej danych jako:–– zmodyfikowany (zmodyfikowany (ModifiedModified))
–– wyłączony (wyłączony (ExclusiveExclusive))
–– współdzielony (współdzielony (SharedShared))
–– nieważny (nieważny (InvalidInvalid))
Pamięć podręcznaPamięć podręczna
�� Pamięć podręczna zorganizowana jest w wiersze, Pamięć podręczna zorganizowana jest w wiersze, których szerokość odpowiada najczęściej szerokości których szerokość odpowiada najczęściej szerokości magistrali danychmagistrali danych
�� Pamięć operacyjna dzielona jest na strony o Pamięć operacyjna dzielona jest na strony o rozmiarze równym liczbie wierszy pamięci podręcznejrozmiarze równym liczbie wierszy pamięci podręcznej
�� Informacja o tym, które wiersze pamięci operacyjnej Informacja o tym, które wiersze pamięci operacyjnej
153153
�� Informacja o tym, które wiersze pamięci operacyjnej Informacja o tym, które wiersze pamięci operacyjnej są odwzorowane w pamięci podręcznej znajduje się są odwzorowane w pamięci podręcznej znajduje się w katalogu pamięci podręcznej TAGw katalogu pamięci podręcznej TAG--RAMRAM
�� Strategie odwzorowywania pamięci operacyjnej:Strategie odwzorowywania pamięci operacyjnej:–– Odwzorowanie bezpośrednie (Odwzorowanie bezpośrednie (Direct MappedDirect Mapped))
–– Odwzorowanie skojarzeniowe (Odwzorowanie skojarzeniowe (Fully AssociativeFully Associative))
–– Odwzorowanie sekcyjnoOdwzorowanie sekcyjno--skojarzeniowe (skojarzeniowe (Set AssociativeSet Associative))
Pamięć podręcznaPamięć podręczna
�� Odwzorowanie bezpośrednie polega na takim Odwzorowanie bezpośrednie polega na takim sposobie odwzorowywania pamięci operacyjnej na sposobie odwzorowywania pamięci operacyjnej na pamięć podręczną, że npamięć podręczną, że n--ty wiersz każdej strony ty wiersz każdej strony pamięci operacyjnej może zostać odwzorowany tylko pamięci operacyjnej może zostać odwzorowany tylko w nw n--tym wierszu pamięci podręcznejtym wierszu pamięci podręcznej
�� Zaletą tej metody jest duża szybkość wyszukiwania Zaletą tej metody jest duża szybkość wyszukiwania
154154
�� Zaletą tej metody jest duża szybkość wyszukiwania Zaletą tej metody jest duża szybkość wyszukiwania informacji (tylko jedna operacja porównania) oraz informacji (tylko jedna operacja porównania) oraz prosta konstrukcja układu prosta konstrukcja układu
�� Ponieważ każdy wiersz pamięci operacyjnej ma stałą Ponieważ każdy wiersz pamięci operacyjnej ma stałą lokalizację w pamięci podręcznej, prowadzi to do lokalizację w pamięci podręcznej, prowadzi to do ciągłej wymiany zawartości pamięci podręcznej, a ciągłej wymiany zawartości pamięci podręcznej, a tym samym do obniżenia wydajności systemutym samym do obniżenia wydajności systemu
Pamięć podręcznaPamięć podręczna
�� Przykład odwzorowania bezpośredniego:Przykład odwzorowania bezpośredniego:
010
012
014
016
Pamięć operacyjna
Pamięć podręczna
2587
00
01
02
03
02
02
02
02
155155
000
002
004
006
008
00A
00C
00E
010
00
01
02
01
Pamięć podręczna
FE35
00C8
1F30
FE35
00C8
2587
1F30
00
01
02
03
Wiersz = (Adres div 2) mod 4
Strona = Adres div 800
01
02
03
00
01
02
03
00
00
00
00
00
01
01
01
01
02
Pamięć podręcznaPamięć podręczna
�� Odwzorowanie skojarzeniowe pozwala na ładowanie Odwzorowanie skojarzeniowe pozwala na ładowanie każdego wiersza pamięci operacyjnej do dowolnego każdego wiersza pamięci operacyjnej do dowolnego wiersza pamięci podręcznej, co eliminuje największą wiersza pamięci podręcznej, co eliminuje największą wadę odwzorowania bezpośredniegowadę odwzorowania bezpośredniego
�� W tego typu odwzorowaniu nie występuje podział W tego typu odwzorowaniu nie występuje podział pamięci operacyjnej na strony pamięci operacyjnej na strony –– wszelkie operacje wszelkie operacje
156156
pamięci operacyjnej na strony pamięci operacyjnej na strony –– wszelkie operacje wszelkie operacje wykonywane są na wierszach identyfikowanych wykonywane są na wierszach identyfikowanych przez adresyprzez adresy
�� Podstawową wadą tej metody jest konieczność Podstawową wadą tej metody jest konieczność przeszukania całego katalogu TAGprzeszukania całego katalogu TAG--RAM aby zbadać, RAM aby zbadać, czy żądany wiersz pamięci operacyjnej został czy żądany wiersz pamięci operacyjnej został odwzorowany w pamięci podręcznejodwzorowany w pamięci podręcznej
Pamięć podręcznaPamięć podręczna
�� Przykład odwzorowania skojarzeniowego:Przykład odwzorowania skojarzeniowego:
010
012
014
016
Pamięć operacyjna
Pamięć podręczna
2587
157157
000
002
004
006
008
00A
00C
00E
010
00A
002
00E
014
Pamięć podręczna
00C8
BE31
1F30
2587
BE31
00C8
1F30
00
01
02
03
Pamięć podręcznaPamięć podręczna
�� Odwzorowanie sekcyjnoOdwzorowanie sekcyjno--skojarzeniowe jest metodą, skojarzeniowe jest metodą, która łączy zalety odwzorowania bezpośredniego i która łączy zalety odwzorowania bezpośredniego i skojarzeniowegoskojarzeniowego
�� Cechą charakterystyczną tego typu podejścia jest Cechą charakterystyczną tego typu podejścia jest podział pamięci podręcznej na 2, 4 lub 8 sekcji (podział pamięci podręcznej na 2, 4 lub 8 sekcji (22--WayWay--SetSet, , 44--WayWay--SetSet, , 88--WayWay--SetSet) o rozmiarze ) o rozmiarze
158158
WayWay--SetSet, , 44--WayWay--SetSet, , 88--WayWay--SetSet) o rozmiarze ) o rozmiarze równym wielkości strony pamięci operacyjnejrównym wielkości strony pamięci operacyjnej
�� Ponieważ pamięć operacyjna odwzorowywana jest Ponieważ pamięć operacyjna odwzorowywana jest na każdą sekcję w sposób bezpośredni, wyszukanie na każdą sekcję w sposób bezpośredni, wyszukanie odpowiedniej informacji w pamięci podręcznej odpowiedniej informacji w pamięci podręcznej wymaga przeprowadzenia co najwyżej 8 porównań wymaga przeprowadzenia co najwyżej 8 porównań (jedno porównanie na sekcję)(jedno porównanie na sekcję)
Pamięć podręcznaPamięć podręczna
�� Przykład dwudrożnego odwzorowania sekcyjnoPrzykład dwudrożnego odwzorowania sekcyjno--skojarzeniowego (skojarzeniowego (22--WayWay--SetSet):):
012
014
016
Pamięć operacyjna
2587
17FF
01
02
03
02
02
02 Pamięć podręczna
02
02
2587
17FF
02
03
159159
Wiersz = (Adres div 2) mod 4
Strona = Adres div 8000
002
004
006
008
00A
00C
00E
010
012
FE35
BE31
0000
00C8
1F30
00
01
02
03
00
01
02
03
00
01
00
00
00
00
01
01
01
01
02
02
01
01
02
0000
00C8
2587
00
01
02
00
00
01
FE35
BE31
1F30
00
01
02
03
sekcja 1
sekcja 2
Pamięć podręcznaPamięć podręczna
�� Wspólną cechą odwzorowania skojarzeniowego i Wspólną cechą odwzorowania skojarzeniowego i sekcyjnosekcyjno--skojarzeniowego jest konieczność wyboru skojarzeniowego jest konieczność wyboru tego wiersza pamięci podręcznej, który zostanie tego wiersza pamięci podręcznej, który zostanie zastąpiony przez nowo ładowany wiersz z pamięci zastąpiony przez nowo ładowany wiersz z pamięci operacyjnejoperacyjnej
�� W tym celu kontroler pamięci podręcznej W tym celu kontroler pamięci podręcznej
160160
�� W tym celu kontroler pamięci podręcznej W tym celu kontroler pamięci podręcznej implementuje jeden z następujących algorytmów:implementuje jeden z następujących algorytmów:–– FIFO (FIFO (First In First OutFirst In First Out), który do zastąpienia wybiera ), który do zastąpienia wybiera
wiersz najdłużej pozostający w pamięci podręcznejwiersz najdłużej pozostający w pamięci podręcznej
–– LFU (LFU (Least Frequently UsedLeast Frequently Used), który do zastąpienia wybiera ), który do zastąpienia wybiera najrzadziej używany wiersz pamięci podręcznejnajrzadziej używany wiersz pamięci podręcznej
–– LRU (LRU (Least Recently UsedLeast Recently Used), który do zastąpienia wybiera ), który do zastąpienia wybiera najmniej ostatnio używany wiersz pamięci podręcznejnajmniej ostatnio używany wiersz pamięci podręcznej
Przegląd architektury IAPrzegląd architektury IA--3232
�� Architektura IAArchitektura IA--32 jest 3232 jest 32--bitową architekturą bitową architekturą procesorów firmy Intel, będącą rozwinięciem procesorów firmy Intel, będącą rozwinięciem architektury procesorów rodziny 80x86architektury procesorów rodziny 80x86
�� Każdy procesor z rodziny IAKażdy procesor z rodziny IA--32 cechuje zachowanie 32 cechuje zachowanie wstecznej zgodności programowej (nowszy typ wstecznej zgodności programowej (nowszy typ procesora może wykonywać kod utworzony dla procesora może wykonywać kod utworzony dla
161161
procesora może wykonywać kod utworzony dla procesora może wykonywać kod utworzony dla starszego typu procesora)starszego typu procesora)
�� Typowymi przedstawicielami linii produktów opartej Typowymi przedstawicielami linii produktów opartej na architekturze IAna architekturze IA--32 są procesory, które 32 są procesory, które wyewoluowały z procesorów Pentium II, takie jak: wyewoluowały z procesorów Pentium II, takie jak: Pentium III, Pentium 4, Pentium 4 HT (Pentium III, Pentium 4, Pentium 4 HT (Hyper Hyper ThreadingThreading), Intel Xeon, Pentium M), Intel Xeon, Pentium M
Przegląd architektury IAPrzegląd architektury IA--3232
�� Ewolucja procesorów linii IAEwolucja procesorów linii IA--32:32:–– Intel 8086 (1978):Intel 8086 (1978):
�� liczba tranzystorów: 29 tys.liczba tranzystorów: 29 tys.
�� częstotliwość taktowania: 8 MHz częstotliwość taktowania: 8 MHz
�� magistrala danych: 16 bitówmagistrala danych: 16 bitów
�� przestrzeń adresowa: 1 MBprzestrzeń adresowa: 1 MB
162162
�� przestrzeń adresowa: 1 MBprzestrzeń adresowa: 1 MB
�� podręczna kolejka rozkazówpodręczna kolejka rozkazów
–– Intel 80286 (1982):Intel 80286 (1982):
�� liczba tranzystorów: 134 tys.liczba tranzystorów: 134 tys.
�� częstotliwość taktowania: 12.5 MHz częstotliwość taktowania: 12.5 MHz
�� przestrzeń adresowa: 16 MBprzestrzeń adresowa: 16 MB
�� tryb chroniony (tryb chroniony (protected modeprotected mode))
Przegląd architektury IAPrzegląd architektury IA--3232
–– Intel 80386 (1985):Intel 80386 (1985):
�� liczba tranzystorów: 275 tys.liczba tranzystorów: 275 tys.
�� częstotliwość taktowania: 20 MHz częstotliwość taktowania: 20 MHz
�� magistrala danych: 32 bitymagistrala danych: 32 bity
�� przestrzeń adresowa: 4 GBprzestrzeń adresowa: 4 GB
�� tryb wirtualny procesora 8086 (tryb wirtualny procesora 8086 (virtual 8086 modevirtual 8086 mode))
163163
�� tryb wirtualny procesora 8086 (tryb wirtualny procesora 8086 (virtual 8086 modevirtual 8086 mode))
�� jednostka stronicowania pamięci (jednostka stronicowania pamięci (paging unitpaging unit))
–– Intel 80486 (1989):Intel 80486 (1989):
�� liczba tranzystorów: 1.2 mlnliczba tranzystorów: 1.2 mln
�� częstotliwość taktowania: 25 MHz częstotliwość taktowania: 25 MHz
�� pamięć podręczna: 8 KBpamięć podręczna: 8 KB
�� jednostka zmiennoprzecinkowa FPUjednostka zmiennoprzecinkowa FPU
Przegląd architektury IAPrzegląd architektury IA--3232
–– Intel Pentium (1993):Intel Pentium (1993):
�� liczba tranzystorów: 3.1 mlnliczba tranzystorów: 3.1 mln
�� częstotliwość taktowania: 60 MHz częstotliwość taktowania: 60 MHz
�� magistrala danych: 64 bity (wewn. 128/256 bitów)magistrala danych: 64 bity (wewn. 128/256 bitów)
�� pamięć podręczna: 8 KB kod + 8 KB dane (MESI)pamięć podręczna: 8 KB kod + 8 KB dane (MESI)
�� dwa potoki wykonawcze całkowitoliczbowedwa potoki wykonawcze całkowitoliczbowe
164164
�� dwa potoki wykonawcze całkowitoliczbowedwa potoki wykonawcze całkowitoliczbowe
�� wsparcie dla systemów dwuprocesorowychwsparcie dla systemów dwuprocesorowych
�� technologia MMXtechnologia MMX
–– Intel Pentium Pro (1995):Intel Pentium Pro (1995):
�� liczba tranzystorów: 5.5 mlnliczba tranzystorów: 5.5 mln
�� częstotliwość taktowania: 200 MHzczęstotliwość taktowania: 200 MHz
�� przestrzeń adresowa: 64 GBprzestrzeń adresowa: 64 GB
�� pamięć podręczna: 16 KB (L1), 256/512 KB (L2)pamięć podręczna: 16 KB (L1), 256/512 KB (L2)
Przegląd architektury IAPrzegląd architektury IA--3232
�� mikromikro--architektura superskalarna P6 (3 instrukcje/takt architektura superskalarna P6 (3 instrukcje/takt zegara; 5 jednostek wykonawczych: 2 x Integer, 2 x zegara; 5 jednostek wykonawczych: 2 x Integer, 2 x FPU, 1 x MIU)FPU, 1 x MIU)
–– Intel Pentium II (1997):Intel Pentium II (1997):
�� liczba tranzystorów: 7 mlnliczba tranzystorów: 7 mln
�� częstotliwość taktowania: 266 MHzczęstotliwość taktowania: 266 MHz
pamięć podręczna: 32 KB (L1), 256/512 KB (L2)pamięć podręczna: 32 KB (L1), 256/512 KB (L2)
165165
�� pamięć podręczna: 32 KB (L1), 256/512 KB (L2)pamięć podręczna: 32 KB (L1), 256/512 KB (L2)
�� technologia MMXtechnologia MMX
–– Intel Pentium III (1999):Intel Pentium III (1999):
�� liczba tranzystorów: 8.2liczba tranzystorów: 8.2÷÷28 mln28 mln
�� częstotliwość taktowania: 500 MHzczęstotliwość taktowania: 500 MHz
�� pamięć podręczna: 32 KB (L1), 256/512/1024 KB (L2)pamięć podręczna: 32 KB (L1), 256/512/1024 KB (L2)
�� technologia SSE (technologia SSE (Streaming SIMD ExtensionsStreaming SIMD Extensions))
Przegląd architektury IAPrzegląd architektury IA--3232
–– Intel Pentium 4 (2000):Intel Pentium 4 (2000):
�� liczba tranzystorów: 42 mlnliczba tranzystorów: 42 mln
�� częstotliwość taktowania: 1.5 GHzczęstotliwość taktowania: 1.5 GHz
�� pamięć podręczna: 12.000 pamięć podręczna: 12.000 µµops (ETC), 8 KB (L1), 256 ops (ETC), 8 KB (L1), 256 KB (L2)KB (L2)
�� Intel NetBurst MicroIntel NetBurst Micro--ArchitectureArchitecture
166166
�� technologia SSE2technologia SSE2
–– Intel Xeon (2002):Intel Xeon (2002):
�� liczba tranzystorów: 55 mlnliczba tranzystorów: 55 mln
�� częstotliwość taktowania: 2.2 GHzczęstotliwość taktowania: 2.2 GHz
�� pamięć podręczna: 12.000 pamięć podręczna: 12.000 µµops (ETC), 8 KB (L1), 512 ops (ETC), 8 KB (L1), 512 KB (L2)KB (L2)
�� technologia HT (technologia HT (Hyper ThreadingHyper Threading))
Przegląd architektury IAPrzegląd architektury IA--3232
–– Intel Pentium 4 HT (2002):Intel Pentium 4 HT (2002):
�� liczba tranzystorów: 55 mlnliczba tranzystorów: 55 mln
�� częstotliwość taktowania: 3.06 GHzczęstotliwość taktowania: 3.06 GHz
�� pamięć podręczna: 12.000 pamięć podręczna: 12.000 µµops (ETC), 8 KB (L1), 512 ops (ETC), 8 KB (L1), 512 KB (L2)KB (L2)
�� technologia HTtechnologia HT
167167
–– Intel Pentium M (2003):Intel Pentium M (2003):
�� liczba tranzystorów: 77 mlnliczba tranzystorów: 77 mln
�� częstotliwość taktowania: 1.6 GHzczęstotliwość taktowania: 1.6 GHz
�� pamięć podręczna: 32 KB kod + 32 KB dane (L1), 1 MB pamięć podręczna: 32 KB kod + 32 KB dane (L1), 1 MB (L2)(L2)
�� technologia SSE2technologia SSE2
�� technologia APM (technologia APM (Advanced Power ManagementAdvanced Power Management))
Przegląd architektury IAPrzegląd architektury IA--3232
�� Podstawowe środowisko wykonawcze procesorów Podstawowe środowisko wykonawcze procesorów IAIA--32 tworzy:32 tworzy:–– Zestaw rejestrów podstawowych, który zawiera:Zestaw rejestrów podstawowych, który zawiera:
�� osiem 32osiem 32--bitowych rejestrów ogólnego przeznaczenia bitowych rejestrów ogólnego przeznaczenia (EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP), których (EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP), których młodsze 16młodsze 16--bitów jest odwzorowywanych na rejestry bitów jest odwzorowywanych na rejestry 1616--bitowe procesorów 8086 i 80286 (AX, BX, CX, DX, bitowe procesorów 8086 i 80286 (AX, BX, CX, DX,
168168
1616--bitowe procesorów 8086 i 80286 (AX, BX, CX, DX, bitowe procesorów 8086 i 80286 (AX, BX, CX, DX, BP, SI, DI, SP); ponadto rejestry AX, BX, CX i DX są BP, SI, DI, SP); ponadto rejestry AX, BX, CX i DX są dodatkowo mapowane na pary rejestrów 8dodatkowo mapowane na pary rejestrów 8--bitowych bitowych (AH, AL, BH, BL, CH, CL, DH, DL)(AH, AL, BH, BL, CH, CL, DH, DL)
�� sześć 16sześć 16--bitowych rejestrów segmentowych (CS, DS, ES, bitowych rejestrów segmentowych (CS, DS, ES, FS, GS, SS)FS, GS, SS)
�� jeden 32jeden 32--bitowy rejestr statusowy (EFLAGS)bitowy rejestr statusowy (EFLAGS)
�� jeden 32jeden 32--bitowy rejestr wskaźnika rozkazów (EIP)bitowy rejestr wskaźnika rozkazów (EIP)
Przegląd architektury IAPrzegląd architektury IA--3232
–– Zestaw rejestrów jednostki zmiennoZestaw rejestrów jednostki zmienno--przecinkowej (FPU), przecinkowej (FPU), który zawiera m.in.:który zawiera m.in.:
�� osiem 80osiem 80--bitowych rejestrów danych zorganizowanych w bitowych rejestrów danych zorganizowanych w postaci stosu: ST(0)postaci stosu: ST(0)÷÷ST(7)ST(7)
�� jeden 16jeden 16--bitowy rejestr sterujący (FPU Control Word)bitowy rejestr sterujący (FPU Control Word)
�� jeden 16jeden 16--bitowy rejestr stanu (FPU Status Word)bitowy rejestr stanu (FPU Status Word)
jeden 16jeden 16--bitowy rejestr słowa wyróżników (FPU Tag bitowy rejestr słowa wyróżników (FPU Tag
169169
�� jeden 16jeden 16--bitowy rejestr słowa wyróżników (FPU Tag bitowy rejestr słowa wyróżników (FPU Tag Word)Word)
�� jeden 48jeden 48--bitowy rejestr wskaźnika rozkazu (FPU bitowy rejestr wskaźnika rozkazu (FPU Instruction Pointer)Instruction Pointer)
�� jeden 48jeden 48--bitowy rejestr wskaźnika argumentu (FPU bitowy rejestr wskaźnika argumentu (FPU Operand Pointer)Operand Pointer)
–– Zestaw ośmiu 64Zestaw ośmiu 64--bitowych rejestrów technologii MMX bitowych rejestrów technologii MMX (MM0(MM0÷÷MM7), współdzielonych z rejestrami danych FPUMM7), współdzielonych z rejestrami danych FPU
Przegląd architektury IAPrzegląd architektury IA--3232
–– Zestaw rejestrów technologii SSE i SSE2, który zawiera:Zestaw rejestrów technologii SSE i SSE2, który zawiera:
�� osiem 128osiem 128--bitowych rejestrów danych (XMM0bitowych rejestrów danych (XMM0÷÷XMM7)XMM7)
�� jeden 32jeden 32--bitowy rejestr kontrolnobitowy rejestr kontrolno--statusowy (MXCSR)statusowy (MXCSR)
–– Zestaw rejestrów pomocniczych, który zawiera m.in.:Zestaw rejestrów pomocniczych, który zawiera m.in.:
�� rejestry sterujące pracą procesora (CR0rejestry sterujące pracą procesora (CR0÷÷CR4)CR4)
�� rejestry podsystemu zarządzania pamięcią (GDTR, rejestry podsystemu zarządzania pamięcią (GDTR,
170170
�� rejestry podsystemu zarządzania pamięcią (GDTR, rejestry podsystemu zarządzania pamięcią (GDTR, LDTR, IDTR, TR)LDTR, IDTR, TR)
�� rejestry uruchomieniowe (DR0rejestry uruchomieniowe (DR0÷÷DR7)DR7)
�� rejestry zaawansowanego kontrolera przerwań APIC rejestry zaawansowanego kontrolera przerwań APIC (ISR, TMR, IRR, ESR)(ISR, TMR, IRR, ESR)
�� rejestry wspomagające testowanie procesora rejestry wspomagające testowanie procesora (TR3(TR3÷÷TR7)TR7)
IAIA--32: Tryby pracy procesora32: Tryby pracy procesora
�� Procesor może pracować w jednym z następujących Procesor może pracować w jednym z następujących trybów pracy:trybów pracy:–– trybie rzeczywistym (trybie rzeczywistym (Real ModeReal Mode, , RealReal--adress Modeadress Mode))
–– trybie chronionym (trybie chronionym (Pretected ModePretected Mode))
–– trybie zarządzania SMM (trybie zarządzania SMM (System Management ModeSystem Management Mode))
�� Procesor działając w trybie rzeczywistym (np. po Procesor działając w trybie rzeczywistym (np. po
171171
�� Procesor działając w trybie rzeczywistym (np. po Procesor działając w trybie rzeczywistym (np. po włączeniu zasilania czy aktywacji sygnału Reset) włączeniu zasilania czy aktywacji sygnału Reset) odpowiada funkcjonalnie procesorowi 8086odpowiada funkcjonalnie procesorowi 8086
�� W tym trybie pracy 20W tym trybie pracy 20--bitowy adres fizyczny bitowy adres fizyczny tworzony jest na podstawie 16tworzony jest na podstawie 16--bitowego adresu bitowego adresu segmentu i 16segmentu i 16--bitowego przesunięcia w segmencie bitowego przesunięcia w segmencie ((Address = 16 * Segment + OffsetAddress = 16 * Segment + Offset))
IAIA--32: Tryby pracy procesora32: Tryby pracy procesora
�� Tryb chroniony jest podstawowym trybem pracy Tryb chroniony jest podstawowym trybem pracy procesora, zapewniającym ochronę niezależnych procesora, zapewniającym ochronę niezależnych zadań wykonywanych współbieżnie w środowisku zadań wykonywanych współbieżnie w środowisku wielozadaniowym (wielozadaniowym (multimulti--tasking environmenttasking environment) )
�� Jedną z możliwości oferowanych przez tryb Jedną z możliwości oferowanych przez tryb chroniony jest udostępnianie dla każdego z chroniony jest udostępnianie dla każdego z
172172
chroniony jest udostępnianie dla każdego z chroniony jest udostępnianie dla każdego z wykonywanych zadań niezależnego środowiska wykonywanych zadań niezależnego środowiska procesora 8086 (procesora 8086 (VirtualVirtual--8086 Mode8086 Mode))
�� Tryb wirtualny procesora 8086 pozwala na Tryb wirtualny procesora 8086 pozwala na uruchamianie programów pisanych dla trybu uruchamianie programów pisanych dla trybu rzeczywistego w środowisku wielozadaniowym rzeczywistego w środowisku wielozadaniowym (chronionym)(chronionym)
IAIA--32: Tryby pracy procesora32: Tryby pracy procesora
�� Tryb zarządzania SMM pozwala na realizację funkcji Tryb zarządzania SMM pozwala na realizację funkcji systemowych wysokiego poziomu, takich jak systemowych wysokiego poziomu, takich jak zarządzanie energią czy ochrona zasobów przed zarządzanie energią czy ochrona zasobów przed nieuprawnionym dostępemnieuprawnionym dostępem
�� Funkcjonowanie procesora w trybie zarządzania SMM Funkcjonowanie procesora w trybie zarządzania SMM kontrolowane jest wyłącznie przez oprogramowanie kontrolowane jest wyłącznie przez oprogramowanie
173173
kontrolowane jest wyłącznie przez oprogramowanie kontrolowane jest wyłącznie przez oprogramowanie systemowe zawarte w pamięci stałej w sposób systemowe zawarte w pamięci stałej w sposób transparentny dla innych programówtransparentny dla innych programów
�� Typowym zastosowaniem tego trybu pracy jest Typowym zastosowaniem tego trybu pracy jest implementacja systemu zarządzania zasilaniem, który implementacja systemu zarządzania zasilaniem, który może wprowadzać procesor i wybrane urządzenia może wprowadzać procesor i wybrane urządzenia zewnętrzne w stan „uśpienia” w okresie bezczynnościzewnętrzne w stan „uśpienia” w okresie bezczynności
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� Procesory linii IAProcesory linii IA--32 mogą adresować maksymalnie 32 mogą adresować maksymalnie do 64 GB (2do 64 GB (23636) pamięci fizycznej (najmniejszą ) pamięci fizycznej (najmniejszą adresowalną jednostką pamięci fizycznej jest bajt)adresowalną jednostką pamięci fizycznej jest bajt)
�� Mechanizm zarządzania pamięcią wirtualną Mechanizm zarządzania pamięcią wirtualną procesora (procesora (virtual memory management machanismvirtual memory management machanism) ) odwzorowuje przestrzeń adresową wykonywanego odwzorowuje przestrzeń adresową wykonywanego
174174
odwzorowuje przestrzeń adresową wykonywanego odwzorowuje przestrzeń adresową wykonywanego programu w przestrzeń pamięci fizycznej programu w przestrzeń pamięci fizycznej wykorzystując jeden z trzech modeli pamięci:wykorzystując jeden z trzech modeli pamięci:–– model płaski (model płaski (flat modelflat model))
–– model segmentowy (model segmentowy (segment modelsegment model))
–– model trybu rzeczywistego procesora 8086 (model trybu rzeczywistego procesora 8086 (realreal--address address modelmodel))
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� W modelu płaskim pamięć widoczna dla programu W modelu płaskim pamięć widoczna dla programu jest ciągła i liniowa (kod, dane oraz stos programu jest ciągła i liniowa (kod, dane oraz stos programu rezydują w jednej przestrzeni adresowej)rezydują w jednej przestrzeni adresowej)
�� Maksymalny rozmiar udostępnianej programowi Maksymalny rozmiar udostępnianej programowi przestrzeni liniowej wynosi 4 GB (2przestrzeni liniowej wynosi 4 GB (23232))
�� W modelu segmentowym pamięć widoczna jest dla W modelu segmentowym pamięć widoczna jest dla
175175
�� W modelu segmentowym pamięć widoczna jest dla W modelu segmentowym pamięć widoczna jest dla programu jako grupa niezależnych obszarów pamięci programu jako grupa niezależnych obszarów pamięci zwanych segmentami (najczęściej kod, dane oraz zwanych segmentami (najczęściej kod, dane oraz stos programu rezydują w niezależnych segmentach)stos programu rezydują w niezależnych segmentach)
�� W tym modelu program może zaadresować W tym modelu program może zaadresować maksymalnie 16383 segmenty różnego typu i o maksymalnie 16383 segmenty różnego typu i o różnym rozmiarze (nie większym jednak niż 4 GB)różnym rozmiarze (nie większym jednak niż 4 GB)
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� Adres logiczny (Adres logiczny (far pointerfar pointer) w modelu segmentowym ) w modelu segmentowym składa się z dwóch elementów: 16składa się z dwóch elementów: 16--bitowego bitowego selektora segmentu (selektora segmentu (segment selectorsegment selector) i 32) i 32--bitowego przesunięcia w segmencie (bitowego przesunięcia w segmencie (offsetoffset))
�� Selektor segmentu stanowi indeks do globalnej Selektor segmentu stanowi indeks do globalnej (GDT) lub lokalnej (LDT) tablicy deskryptorów (GDT) lub lokalnej (LDT) tablicy deskryptorów
176176
(GDT) lub lokalnej (LDT) tablicy deskryptorów (GDT) lub lokalnej (LDT) tablicy deskryptorów opisujących poszczególne segmentyopisujących poszczególne segmenty
�� Deskryptor segmentu (Deskryptor segmentu (segment descriptorsegment descriptor) jest ) jest strukturą przechowującą jego typ, granularność, strukturą przechowującą jego typ, granularność, rozmiar, lokalizację w pamięci oraz prawa dostępurozmiar, lokalizację w pamięci oraz prawa dostępu
�� Adresacja wewnątrz pojedynczego segmentu jest Adresacja wewnątrz pojedynczego segmentu jest liniowaliniowa
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� Selektory segmentów przechowywane są w Selektory segmentów przechowywane są w rejestrach segmentowych (CS, DS, ES, FS, GS i SS)rejestrach segmentowych (CS, DS, ES, FS, GS i SS)
�� Przesunięcia wewnątrz segmentów przechowywane Przesunięcia wewnątrz segmentów przechowywane są najczęściej w rejestrach ogólnego przeznaczenia są najczęściej w rejestrach ogólnego przeznaczenia (np. EBX i ESI dla DS, EDI dla ES, EBP i ESP dla SS)(np. EBX i ESI dla DS, EDI dla ES, EBP i ESP dla SS)
�� Zaletą stosowania modelu segmentowego jest Zaletą stosowania modelu segmentowego jest
177177
�� Zaletą stosowania modelu segmentowego jest Zaletą stosowania modelu segmentowego jest możliwość poprawienia niezawodności programu możliwość poprawienia niezawodności programu (systemu operacyjnego) dzięki:(systemu operacyjnego) dzięki:–– odseparowaniu od siebie programów wykonywanych odseparowaniu od siebie programów wykonywanych
współbieżnie w środowisku wielozadaniowymwspółbieżnie w środowisku wielozadaniowym
–– rozdzieleniu logicznie niezależnych „fragmentów” programu rozdzieleniu logicznie niezależnych „fragmentów” programu (np. stosu od danych)(np. stosu od danych)
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� Model trybu rzeczywistego odwzorowuje mechanizm Model trybu rzeczywistego odwzorowuje mechanizm adresowania pamięci procesora 8086 adresowania pamięci procesora 8086
�� Tryb ten wykorzystuje specjalną implementację Tryb ten wykorzystuje specjalną implementację modelu segmentowego polegającą na podziale modelu segmentowego polegającą na podziale pamięci na nakładające się wzajemnie i przesunięte pamięci na nakładające się wzajemnie i przesunięte o 16 B segmenty o stałym rozmiarze 64 KB o 16 B segmenty o stałym rozmiarze 64 KB
178178
o 16 B segmenty o stałym rozmiarze 64 KB o 16 B segmenty o stałym rozmiarze 64 KB
�� Maksymalny rozmiar udostępnianej programowi Maksymalny rozmiar udostępnianej programowi przestrzeni adresowej wynosi 1 MB (2przestrzeni adresowej wynosi 1 MB (22020))
�� Fizyczny adres w pamięci wyznaczany jest na Fizyczny adres w pamięci wyznaczany jest na podstawie 16podstawie 16--bitowego adresu segmentu (bitowego adresu segmentu (segmentsegment) ) i 16i 16--bitowego przesunięcia w segmencie (bitowego przesunięcia w segmencie (offsetoffset))
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� Począwszy od procesora 80386 odwzorowanie Począwszy od procesora 80386 odwzorowanie adresu logicznego na adres fizyczny (w modelach adresu logicznego na adres fizyczny (w modelach płaskim i segmentowym) może być realizowane z płaskim i segmentowym) może być realizowane z wykorzystaniem mechanizmu stronicowania pamięciwykorzystaniem mechanizmu stronicowania pamięci
�� Jednostka stronicowania (Jednostka stronicowania (Paging UnitPaging Unit) dzieli liniową ) dzieli liniową przestrzeń adresową na strony (przestrzeń adresową na strony (pagespages) o stałym ) o stałym
179179
przestrzeń adresową na strony (przestrzeń adresową na strony (pagespages) o stałym ) o stałym rozmiarze (4 KB, 2 MB lub 4 MB), które są następnie rozmiarze (4 KB, 2 MB lub 4 MB), które są następnie odwzorowywane w pamięci wirtualnej złożonej z odwzorowywane w pamięci wirtualnej złożonej z pamięci operacyjnej i pamięci dyskowejpamięci operacyjnej i pamięci dyskowej
�� Maksymalny rozmiar adresowalnej w ten sposób Maksymalny rozmiar adresowalnej w ten sposób pamięci wirtualnej wynosi 64 TBpamięci wirtualnej wynosi 64 TB
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� W przypadku strony o rozmiarze 4 KB interpretacja W przypadku strony o rozmiarze 4 KB interpretacja adresu liniowego jest następująca:adresu liniowego jest następująca:–– Najstarsze 10 bitów adresu stanowi indeks w katalogu stron Najstarsze 10 bitów adresu stanowi indeks w katalogu stron
((Page DirectoryPage Directory) przechowującym wskaźniki do tablic stron; ) przechowującym wskaźniki do tablic stron; adres fizyczny katalogu stron znajduje się w rejestrze CR3adres fizyczny katalogu stron znajduje się w rejestrze CR3
–– Kolejnych 10 bitów adresu stanowi indeks w tablicy stron Kolejnych 10 bitów adresu stanowi indeks w tablicy stron ((Page TablePage Table) przechowującej fizyczny adres początku strony) przechowującej fizyczny adres początku strony
180180
((Page TablePage Table) przechowującej fizyczny adres początku strony) przechowującej fizyczny adres początku strony
–– Pozostałe 12 bitów adresu traktowane jest jako przesunięcie Pozostałe 12 bitów adresu traktowane jest jako przesunięcie wewnątrz wybranej stronywewnątrz wybranej strony
�� W przypadku strony o rozmiarze 4 MB katalog stron W przypadku strony o rozmiarze 4 MB katalog stron (indeksowany 10 bitami adresu) przechowuje adres (indeksowany 10 bitami adresu) przechowuje adres fizyczny początku strony, pozostałe 22 bity adresu fizyczny początku strony, pozostałe 22 bity adresu liniowego stanowi przesunięcie wewnątrz stronyliniowego stanowi przesunięcie wewnątrz strony
IAIA--32: Zarządzanie pamięcią32: Zarządzanie pamięcią
�� Jeżeli wyznaczona w powyższy sposób strona nie Jeżeli wyznaczona w powyższy sposób strona nie znajduje się w pamięci operacyjnej, to jej adres znajduje się w pamięci operacyjnej, to jej adres zostaje zapisany w rejestrze CR2 i generowany jest zostaje zapisany w rejestrze CR2 i generowany jest wyjątek błędu strony (wyjątek błędu strony (page faultpage fault))
�� Zadanie wczytania brakującej strony z dysku Zadanie wczytania brakującej strony z dysku spoczywa na systemie operacyjnym (procedurze spoczywa na systemie operacyjnym (procedurze
181181
spoczywa na systemie operacyjnym (procedurze spoczywa na systemie operacyjnym (procedurze obsługi tego wyjątku)obsługi tego wyjątku)
�� W celu zwiększenia efektywności mechanizmu W celu zwiększenia efektywności mechanizmu stronicowania procesor wyposażony jest w pamięci stronicowania procesor wyposażony jest w pamięci podręczne TLB (podręczne TLB (Translation Lookaside BufferTranslation Lookaside Buffer) ) przechowującą zawartość ostatnio używanych przechowującą zawartość ostatnio używanych (maksymalnie 128) tablic stron(maksymalnie 128) tablic stron
IAIA--32: Technologia MMX32: Technologia MMX
�� Technologia MMX (Technologia MMX (MultiMedia eXtensionMultiMedia eXtension) ma celu ) ma celu zwiększenie efektywności wykonywania programów zwiększenie efektywności wykonywania programów (głównie multimedialnych), które cechują się (głównie multimedialnych), które cechują się powtarzaniem takich samych, prostych operacji na powtarzaniem takich samych, prostych operacji na długich ciągach krótkich danychdługich ciągach krótkich danych
�� Idea leżąca u podstaw technologii MMX stanowi krok Idea leżąca u podstaw technologii MMX stanowi krok
182182
�� Idea leżąca u podstaw technologii MMX stanowi krok Idea leżąca u podstaw technologii MMX stanowi krok w stronę przetwarzania równoległego SIMD (w stronę przetwarzania równoległego SIMD (Single Single Instruction Multiple DataInstruction Multiple Data) ) –– zamiast kolejnego zamiast kolejnego przetwarzania pojedynczych jednostek informacji, przetwarzania pojedynczych jednostek informacji, można te same dane przetworzyć szybciej, można te same dane przetworzyć szybciej, pobierając i wykonując rozkazy na kilku porcjach pobierając i wykonując rozkazy na kilku porcjach informacji na raz informacji na raz
IAIA--32: Technologia MMX32: Technologia MMX
�� Procesor implementujący technologię MMX Procesor implementujący technologię MMX wyposażony jest w osiem 64wyposażony jest w osiem 64--bitowych rejestrów: bitowych rejestrów: MM0MM0÷÷MM7, pozwalających na przechowywanie MM7, pozwalających na przechowywanie nowych typów danych (tzw. danych spakowanych):nowych typów danych (tzw. danych spakowanych):–– Packet Bytes (8 x 8 bitów)Packet Bytes (8 x 8 bitów)
–– Packed Words (4 x 16 bitów)Packed Words (4 x 16 bitów)
183183
–– Packed Words (4 x 16 bitów)Packed Words (4 x 16 bitów)
–– Packet Doublewords (2 x 32 bity)Packet Doublewords (2 x 32 bity)
–– Quadword (1 x 64 bity)Quadword (1 x 64 bity)
�� Jednoczesne wykonywanie operacji na danych Jednoczesne wykonywanie operacji na danych spakowanych umożliwia zestaw dodatkowych 57 spakowanych umożliwia zestaw dodatkowych 57 rozkazów typu SIMD wykorzystujących tzw. rozkazów typu SIMD wykorzystujących tzw. arytmetykę nasyceniaarytmetykę nasycenia
IAIA--32: Technologia MMX32: Technologia MMX
�� W arytmetyce nasycenia nie występuje sygnalizacja W arytmetyce nasycenia nie występuje sygnalizacja wystąpienia przekroczenia zakresu (w wyniku wystąpienia przekroczenia zakresu (w wyniku pakowania lub wykonywania operacji) lecz pakowania lub wykonywania operacji) lecz zastąpienie wyniku wartością maksymalną lub zastąpienie wyniku wartością maksymalną lub minimalną dla danego typu danychminimalną dla danego typu danych
�� Dla przykładu obliczanie dwóch iloczynów skalarnych Dla przykładu obliczanie dwóch iloczynów skalarnych
184184
�� Dla przykładu obliczanie dwóch iloczynów skalarnych Dla przykładu obliczanie dwóch iloczynów skalarnych wektorów może zostać zastąpione pojedynczym wektorów może zostać zastąpione pojedynczym rozkazem PMADDWD:rozkazem PMADDWD:
a0*b0+a1*b1 c0*d0+c1*d1
a0 a1 c0 c1 b0 b1 d0 d1* +
IAIA--32: Technologia SSE (SSE2, ...)32: Technologia SSE (SSE2, ...)
�� Technologia SSE (Technologia SSE (Streaming SIMD ExtensionsStreaming SIMD Extensions) ) rozszerza ideę jednoczesnego przetwarzania grupy rozszerza ideę jednoczesnego przetwarzania grupy danych pojedynczym rozkazem (znaną z technologii danych pojedynczym rozkazem (znaną z technologii MMX) na dane w formacie zmiennoprzecinkowymMMX) na dane w formacie zmiennoprzecinkowym
�� Procesor implementujący technologię SSE (SSE 2) Procesor implementujący technologię SSE (SSE 2) wyposażony jest w osiem 128wyposażony jest w osiem 128--bitowych rejestrów bitowych rejestrów
185185
wyposażony jest w osiem 128wyposażony jest w osiem 128--bitowych rejestrów bitowych rejestrów XMM0XMM0÷÷XMM7 oraz rejestr kontrolnoXMM7 oraz rejestr kontrolno--sterujący sterujący MXCSRMXCSR
�� Zaletą takiego rozwiązania jest uniezależnienie się od Zaletą takiego rozwiązania jest uniezależnienie się od rejestrów zmiennoprzecinkowych FPUrejestrów zmiennoprzecinkowych FPU
�� Największą wadą tej technologii jest brak zgodności Największą wadą tej technologii jest brak zgodności z wcześniejszymi typami procesorówz wcześniejszymi typami procesorów
IAIA--32: Technologia SSE (SSE2, ...)32: Technologia SSE (SSE2, ...)
�� Lista rozkazów SSE zawiera 72 rozkazy obejmujące:Lista rozkazów SSE zawiera 72 rozkazy obejmujące:–– rozkazy przetwarzające grupy danych zmiennorozkazy przetwarzające grupy danych zmienno--
przecinkowych (przecinkowych (SIMD Floating PointSIMD Floating Point))
–– rozkazy przetwarzające pojedyncze dane zmiennorozkazy przetwarzające pojedyncze dane zmienno--przecinkowe (przecinkowe (Single ScalarSingle Scalar))
–– rozkazy sterujące przepływem danych (rozkazy sterujące przepływem danych (Memory Streaming Memory Streaming InstructionsInstructions))
186186
InstructionsInstructions))
–– rozkazy rozszerzające technologię MMX (rozkazy rozszerzające technologię MMX (SIMDSIMD--INTINT))
–– rozkazy sterujące (rozkazy sterujące (ControlControl))
�� Typowym zastosowaniem technologii SSE jest Typowym zastosowaniem technologii SSE jest obróbka grafiki 3D oraz pełnoekranowa kompresja obróbka grafiki 3D oraz pełnoekranowa kompresja (dekompresja) MPEG(dekompresja) MPEG--2 w czasie rzeczywistym2 w czasie rzeczywistym
Magistrale systemoweMagistrale systemowe
�� Magistrala jest zbiorem pewnych linii sygnałowych Magistrala jest zbiorem pewnych linii sygnałowych umożliwiającym takie połączenie współpracujących umożliwiającym takie połączenie współpracujących elementów, aby każdy z nich mógł komunikować się elementów, aby każdy z nich mógł komunikować się ze wszystkimi pozostałymize wszystkimi pozostałymi
�� Podstawowe cechy magistral:Podstawowe cechy magistral:–– Rodzaj (specjalistyczna, multipleksowana)Rodzaj (specjalistyczna, multipleksowana)
187187
–– Rodzaj (specjalistyczna, multipleksowana)Rodzaj (specjalistyczna, multipleksowana)
–– Metoda arbitrażu (centralny, rozproszony)Metoda arbitrażu (centralny, rozproszony)
–– Koordynacja czasowa (synchroniczna, asynchroniczna)Koordynacja czasowa (synchroniczna, asynchroniczna)
–– Szerokość magistrali (adres, dane)Szerokość magistrali (adres, dane)
–– Rodzaj transferu danych (zapis, odczyt, odczytRodzaj transferu danych (zapis, odczyt, odczyt--modyfikacjamodyfikacja--zapis, odczytzapis, odczyt--popo--zapisie, blokowy)zapisie, blokowy)
Magistrale systemoweMagistrale systemowe
�� Magistrala systemowa jest komponentem Magistrala systemowa jest komponentem zapewniającym komunikację między podstawowymi zapewniającym komunikację między podstawowymi podzespołami systemu komputerowego (procesor, podzespołami systemu komputerowego (procesor, pamięć, układy wejściapamięć, układy wejścia--wyjścia)wyjścia)
�� W stosowanych obecnie magistralach systemowych W stosowanych obecnie magistralach systemowych możemy wyróżnić trzy grupy linii sygnałowych:możemy wyróżnić trzy grupy linii sygnałowych:
188188
możemy wyróżnić trzy grupy linii sygnałowych:możemy wyróżnić trzy grupy linii sygnałowych:–– linie adresowe (tworzące tzw. magistralę adresową)linie adresowe (tworzące tzw. magistralę adresową)
–– linie danych (tworzące tzw. magistralę danych)linie danych (tworzące tzw. magistralę danych)
–– linie sterujące (tworzące tzw. magistralę sterująca)linie sterujące (tworzące tzw. magistralę sterująca)
�� Typowym rozwiązaniem zwiększającym wydajność Typowym rozwiązaniem zwiększającym wydajność systemu komputerowego jest stosowanie struktur systemu komputerowego jest stosowanie struktur wielomagistralowych o określonej hierarchii wielomagistralowych o określonej hierarchii
Magistrale systemoweMagistrale systemowe
�� W zależności od przeznaczenia można wyróżnić wiele W zależności od przeznaczenia można wyróżnić wiele rodzajów magistral:rodzajów magistral:–– magistrala pamięciowamagistrala pamięciowa
–– magistrala międzyukładowa (wewnętrzna)magistrala międzyukładowa (wewnętrzna)
–– magistrala rozszerzająca (zewnętrzna)magistrala rozszerzająca (zewnętrzna)
–– magistrala lokalnamagistrala lokalna
189189
–– magistrala lokalnamagistrala lokalna
�� Zadaniem magistrali pamięciowej (Zadaniem magistrali pamięciowej (memory busmemory bus) jest ) jest przesyłanie informacji między procesorem a pamięcią przesyłanie informacji między procesorem a pamięcią operacyjną i/lub pamięcią podręcznąoperacyjną i/lub pamięcią podręczną
�� Magistrala międzyukładowa (Magistrala międzyukładowa (interconnect businterconnect bus) służy ) służy do wymiany informacji między poszczególnymi do wymiany informacji między poszczególnymi układami otoczenia procesora (układami otoczenia procesora (chipsetschipsets))
Magistrale systemoweMagistrale systemowe
�� Magistrala rozszerzająca (Magistrala rozszerzająca (expansion busexpansion bus) służy do ) służy do wymiany informacji między urządzeniami wejściawymiany informacji między urządzeniami wejścia--wyjścia a resztą systemu komputerowegowyjścia a resztą systemu komputerowego
�� Najczęściej konstrukcja tego typu magistrali musi Najczęściej konstrukcja tego typu magistrali musi spełniać warunki zgodności z wcześniejszymi spełniać warunki zgodności z wcześniejszymi rozwiązaniami i zapewnić poprawną współpracę z rozwiązaniami i zapewnić poprawną współpracę z
190190
rozwiązaniami i zapewnić poprawną współpracę z rozwiązaniami i zapewnić poprawną współpracę z szerokim zakresem urządzeń peryferyjnychszerokim zakresem urządzeń peryferyjnych
�� Magistrala lokalna (Magistrala lokalna (local buslocal bus) jest odmianą magistrali ) jest odmianą magistrali rozszerzającej przeznaczoną do obsługi urządzeń rozszerzającej przeznaczoną do obsługi urządzeń wymagających bardzo szybkiej transmisji danych wymagających bardzo szybkiej transmisji danych (np. dysków twardych, kart graficznych, kontrolerów (np. dysków twardych, kart graficznych, kontrolerów SCSI)SCSI)
Magistrale systemoweMagistrale systemowe
�� Cechą charakterystyczną magistrali lokalnej jest Cechą charakterystyczną magistrali lokalnej jest bezpośrednie korzystanie z sygnałów sterujących bezpośrednie korzystanie z sygnałów sterujących procesora oraz praca z prędkością wyznaczoną przez procesora oraz praca z prędkością wyznaczoną przez zegar systemowyzegar systemowy
�� Przegląd standardów magistral rozszerzających:Przegląd standardów magistral rozszerzających:–– ISA (ISA (Industry Standard ArchitectureIndustry Standard Architecture))
191191
–– ISA (ISA (Industry Standard ArchitectureIndustry Standard Architecture))
�� standard magistrali oparty na rozwiązaniu z IBM PC/ATstandard magistrali oparty na rozwiązaniu z IBM PC/AT
�� przepustowość 8.33 MB/s (taktowanie 8.33 MHz)przepustowość 8.33 MB/s (taktowanie 8.33 MHz)
�� 1616--bitowa szyna danychbitowa szyna danych
�� kontroler DMA oparty na dwóch połączonych kaskadowo kontroler DMA oparty na dwóch połączonych kaskadowo układach 8237Aukładach 8237A
�� kontroler przerwań sprzętowych oparty na dwóch kontroler przerwań sprzętowych oparty na dwóch połączonych kaskadowo układach 8259Apołączonych kaskadowo układach 8259A
Magistrale systemoweMagistrale systemowe
–– MCA (MCA (Micro Channel ArchitectureMicro Channel Architecture))
�� brak zgodności ze standardem ISAbrak zgodności ze standardem ISA
�� 3232--bitowa szyna danychbitowa szyna danych
�� przepustowość 20 MB/s (taktowanie 10 MHz)przepustowość 20 MB/s (taktowanie 10 MHz)
�� dostęp do pamięci taktowany częstotliwością zegara dostęp do pamięci taktowany częstotliwością zegara procesoraprocesora
192192
�� wsparcie dla systemów wieloprocesorowych (centralny wsparcie dla systemów wieloprocesorowych (centralny procesor na płycie głównej tzw. procesor na płycie głównej tzw. Host CPUHost CPU może być może być wspomagany przez 16 procesorów umieszczonych na wspomagany przez 16 procesorów umieszczonych na kartach rozszerzających; dla potrzeb komunikacji między kartach rozszerzających; dla potrzeb komunikacji między procesorami, uwzględnienia ich priorytetów, przydziału procesorami, uwzględnienia ich priorytetów, przydziału odcinków czasowych dla dysponowania magistralami, odcinków czasowych dla dysponowania magistralami, dedykowano specjalną 4dedykowano specjalną 4--bitową szynę sterującą)bitową szynę sterującą)
Magistrale systemoweMagistrale systemowe
�� kontroler DMA obsługujący osiem 32kontroler DMA obsługujący osiem 32--bitowych kanałów bitowych kanałów (brak emulacji 8(brak emulacji 8-- i 16i 16--bitowych trybów pracy układu bitowych trybów pracy układu 8237A; wszystkie kanały mogą być jednocześnie 8237A; wszystkie kanały mogą być jednocześnie aktywne)aktywne)
�� kontroler przerwań sprzętowych wyzwalanych poziomem kontroler przerwań sprzętowych wyzwalanych poziomem pozwalający dzięki przydziałowi wielu urządzeń do pozwalający dzięki przydziałowi wielu urządzeń do jednego kanału na obsługę do 255 urządzeńjednego kanału na obsługę do 255 urządzeń
193193
jednego kanału na obsługę do 255 urządzeńjednego kanału na obsługę do 255 urządzeń
�� kontroler przerwań sprzętowych obsługujący do 255 kontroler przerwań sprzętowych obsługujący do 255 urządzeń (przydział jednego kanału wielu urządzeniom; urządzeń (przydział jednego kanału wielu urządzeniom; przerwania wyzwalane poziomem)przerwania wyzwalane poziomem)
–– EISA (EISA (Extended Industry Standard ArchitectureExtended Industry Standard Architecture))
�� zgodność ze standardem ISAzgodność ze standardem ISA
�� 3232--bitowa szyna danychbitowa szyna danych
�� przepustowość 33 MB/s (taktowanie 8.33 MHz)przepustowość 33 MB/s (taktowanie 8.33 MHz)
Magistrale systemoweMagistrale systemowe
�� dostęp do pamięci realizowany jest z pełną dostęp do pamięci realizowany jest z pełną częstotliwością zegara procesoraczęstotliwością zegara procesora
�� możliwość symulowania przez kontroler magistrali możliwość symulowania przez kontroler magistrali starego, 16starego, 16--bitowego trybu pracybitowego trybu pracy
�� wsparcie dla systemów wieloprocesorowych (kontroler wsparcie dla systemów wieloprocesorowych (kontroler magistrali umożliwia hierarchicznomagistrali umożliwia hierarchiczno--priorytetowy sposób priorytetowy sposób dostępu wielu procesorów do magistrali systemowej)dostępu wielu procesorów do magistrali systemowej)
194194
dostępu wielu procesorów do magistrali systemowej)dostępu wielu procesorów do magistrali systemowej)
�� kontroler DMA obsługujący siedem 8kontroler DMA obsługujący siedem 8--, 16, 16-- lub 32lub 32--bitowych kanałów DMA (rotacyjny system przydziału bitowych kanałów DMA (rotacyjny system przydziału kanałów; pełne 32kanałów; pełne 32--bitowe adresowanie umożliwiające bitowe adresowanie umożliwiające transfer bloków o wielkości do 4 GB)transfer bloków o wielkości do 4 GB)
�� kontroler przerwań sprzętowych obsługujący przerwania kontroler przerwań sprzętowych obsługujący przerwania wyzwalane poziomemwyzwalane poziomem
Magistrale systemoweMagistrale systemowe
–– VESA Local Bus (VESA Local Bus (Video Electronics Standards AssociationVideo Electronics Standards Association))
�� 3232--bitowa szyna danychbitowa szyna danych
�� przepustowość do 120 MB/sprzepustowość do 120 MB/s
�� praktycznie obługa tylko dwóch urządzeń: karty praktycznie obługa tylko dwóch urządzeń: karty graficznej i kontrolera dyskówgraficznej i kontrolera dysków
�� silna zależność od sprzętu (magistrala wykorzystuje silna zależność od sprzętu (magistrala wykorzystuje część niebuforowanych sygnałów procesora 80486)część niebuforowanych sygnałów procesora 80486)
195195
część niebuforowanych sygnałów procesora 80486)część niebuforowanych sygnałów procesora 80486)
–– PCI (PCI (Peripherial Component InterconnectPeripherial Component Interconnect))
�� 32/6432/64--bitowa szyna danychbitowa szyna danych
�� przepustowość 133/266/533 MB/s (taktowanie 33/66 przepustowość 133/266/533 MB/s (taktowanie 33/66 MHz)MHz)
�� odczyt i zapis w trybie pakietowym (odczyt i zapis w trybie pakietowym (burstburst))
�� obsługa do 32 urządzeń (wielofunkcyjnych)obsługa do 32 urządzeń (wielofunkcyjnych)
Magistrale systemoweMagistrale systemowe
�� możliwość współpracy do 256 magistral PCI w jednym możliwość współpracy do 256 magistral PCI w jednym systemie komputerowym (systemie komputerowym (PCIPCI--toto--PCI bridgesPCI bridges))
�� możliwość obsługi magistrali ISA (możliwość obsługi magistrali ISA (PCIPCI--toto--ISA bridgeISA bridge))
�� niezależność od typu procesora (komunikacja z niezależność od typu procesora (komunikacja z procesorem i pamięcią realizowana jest za procesorem i pamięcią realizowana jest za pośrednictwem specjalnego układu pośrednictwem specjalnego układu -- PCI bridgePCI bridge))
�� wbudowany mechanizm autokonfiguracjiwbudowany mechanizm autokonfiguracji
196196
�� wbudowany mechanizm autokonfiguracjiwbudowany mechanizm autokonfiguracji
�� urządzenia dołączane do magistrali mogą należeć do urządzenia dołączane do magistrali mogą należeć do jednej z dwóch kategorii: urządzeń inicjujących jednej z dwóch kategorii: urządzeń inicjujących transmisję transmisję –– inicjatorów (inicjatorów (initiatorsinitiators), które zarządzają ), które zarządzają magistralą oraz urządzeń podporządkowanych (magistralą oraz urządzeń podporządkowanych (slavesslaves) ) potrafiących jedynie transmitować dane; transmisja potrafiących jedynie transmitować dane; transmisja danych może odbywać się między dwoma inicjatorami danych może odbywać się między dwoma inicjatorami lub inicjatorem a urządzeniem podporządkowanymlub inicjatorem a urządzeniem podporządkowanym
Magistrale systemoweMagistrale systemowe
�� Magistrala Magistrala umożliwia współdzielenie każdej z czterech umożliwia współdzielenie każdej z czterech linii zgłoszenia przerwanialinii zgłoszenia przerwania (INTA#(INTA#÷÷INTD#) przez kilka INTD#) przez kilka urządzeń, lecz nie określa sposobu ich podłączenia do urządzeń, lecz nie określa sposobu ich podłączenia do kontrolera przerwań systemukontrolera przerwań systemu
�� urządzenia PCI mogą pracować z napięciem 5V lub 3.3Vurządzenia PCI mogą pracować z napięciem 5V lub 3.3V
–– AGP (AGP (Accelerated Graphics PortAccelerated Graphics Port))
�� magistrala AGP dedykowana do obsługi układu magistrala AGP dedykowana do obsługi układu
197197
�� magistrala AGP dedykowana do obsługi układu magistrala AGP dedykowana do obsługi układu graficznego jest rozszerzeniem standardu PCI 2.1graficznego jest rozszerzeniem standardu PCI 2.1
�� magistrala AGP może pracować w jednym z czterech magistrala AGP może pracować w jednym z czterech trybów:trybów:
–– 1x (częstotliwość 66MHz, przepustowość 266 MB/s)1x (częstotliwość 66MHz, przepustowość 266 MB/s)
–– 2x (wykorzystanie obu zboczy sygnału zegarowego 2x (wykorzystanie obu zboczy sygnału zegarowego 66MHz, przepustowość 532 MB/s, obniżenie napięcia 66MHz, przepustowość 532 MB/s, obniżenie napięcia z 5V do 3.3V) z 5V do 3.3V)
Magistrale systemoweMagistrale systemowe
–– 4x (dwie transakcje na jeden cylk zegara, 4x (dwie transakcje na jeden cylk zegara, przepustowość 1064 MB/s, obniżenie napięcia do przepustowość 1064 MB/s, obniżenie napięcia do 1.5V) 1.5V) –– specyfikacja AGP 2.0specyfikacja AGP 2.0
–– 8x (zmiany w protokole transmisji, przepustowość 8x (zmiany w protokole transmisji, przepustowość 2.1 GB/s, obniżenie napięcia do 0.8V, zgodność z 2.1 GB/s, obniżenie napięcia do 0.8V, zgodność z trybem 4x) trybem 4x) –– specyfikacja AGP 3.0specyfikacja AGP 3.0
�� Aby wykorzystać pełne pasmo przenoszenia 32Aby wykorzystać pełne pasmo przenoszenia 32--bitowej bitowej
198198
�� Aby wykorzystać pełne pasmo przenoszenia 32Aby wykorzystać pełne pasmo przenoszenia 32--bitowej bitowej magistrali AGP do przesyłania danych kontroler graficzny magistrali AGP do przesyłania danych kontroler graficzny może opcjonalnie wykorzystać pomocniczą, 8może opcjonalnie wykorzystać pomocniczą, 8--bitową bitową magistralę SBA (magistralę SBA (Sideband AddressingSideband Addressing) do niezależnego ) do niezależnego przesyłania adresów i rozkazówprzesyłania adresów i rozkazów
–– PCI Express (PCIe, PCIPCI Express (PCIe, PCI--E)E)
�� magistrala połączeniowa typu punktmagistrala połączeniowa typu punkt--punkt (kontroler punkt (kontroler ––urządzenie PCIurządzenie PCI--E, najczęściej karta graficzna)E, najczęściej karta graficzna)
Magistrale systemoweMagistrale systemowe
�� magistrala PCImagistrala PCI--E wykorzystuje od 1 do 32 linii E wykorzystuje od 1 do 32 linii sygnałowych determinujących jej przepustowość sygnałowych determinujących jej przepustowość (500 MB/s na jedną linię w trybie (500 MB/s na jedną linię w trybie fullfull--duplexduplex v2.0) v2.0) oraz oraz rozmiar złącza połączeniowegorozmiar złącza połączeniowego
�� przepustowość magistrali PCIprzepustowość magistrali PCI--E w zależności od jej E w zależności od jej wariantu wynosi od 250 MB/s (x1) do 16 GB/s (x16)wariantu wynosi od 250 MB/s (x1) do 16 GB/s (x16)
�� maksymalny pobór mocy urzdzenia podłączonego do maksymalny pobór mocy urzdzenia podłączonego do
199199
�� maksymalny pobór mocy urzdzenia podłączonego do maksymalny pobór mocy urzdzenia podłączonego do magistrali wynosi:75 W (v1.0), 150 W (v2.0) lub 300 W magistrali wynosi:75 W (v1.0), 150 W (v2.0) lub 300 W (v3.0)(v3.0)