Rozkaz - pojedyncza operacja centralnej jednostki obliczeniowej określona przez zestaw rozkazów danej
architektury. Jest ona przekazywana procesorowi, który ją wykonuje, po czym zapisuje wartość wynikową lub
ustawia flagę błędu, jeżeli wystąpił. W szerszym pojęciu, rozkaz może być elementem programu wykonywalnego,
takiego jak kod bajtowy.
Cykl rozkazowy są to pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z
pamięci i wczytywaniu ich do układu sterowania mikroprocesora, a następnie realizacji rozkazu, którego kod został
pobrany. Posiada dwie fazy: pobrania i wykonania.
Potok
Potok pozwala, aby wyjście jednego programu było wejściem dla innego. Jego operatorem jest pionowa kreska (|).
Operacja potoku odbiera wynik polecenia znajdującego się przed operatorem potoku i wysyła je, jako dane
wejściowe do polecenia umieszczonego za operatorem potoku.
Metody synchronizacji potoku:
" Przewidywanie skoków - Współczesne procesory potrafią przewidywać skoki z 90% skutecznością
" Wykonywanie jednoczesne obu rozgałęzień programu (architektura hiper skalarna) do czasu sprawdzenia warunku
rozgałęzienia
" Opóznienie skoków w potoku - Skok opózniony (delayed branch): wykonaj następną instrukcję za bieżącą, a potem
skocz
Struktura cyklu rozkazowego procesora
Rozkaz realizuje siÄ™ w czterech etapach:
" cykl pobrania rozkazu,
" dekodowanie rozkazu,
" wykonanie rozkazu,
" zwiększenie licznika rozkazów.
Cykl rozkazowy procesora
W wykonaniu każdej instrukcji przez procesor można wyróżnić kilka faz. Typowo wyróżnia się następujące fazy:
" FETCH - pobranie instrukcji
" DECODE - dekodowanie obrazu binarnego instrukcji
" READ - odczyt argumentów instrukcji z rejestrów procesora lub z pamięci
" EXECUTE - wykonanie operacji arytmetycznej lub logicznej
" WRITE - zapis wyniku do rejestru lub pamięci
Należy zauważyć, że dla wielu instrukcji niektóre z wymienionych faz są zbędne, np. instrukcja przesłania między
rejestrowego nie wymaga użycia jednostki arytmetyczno-logicznej.
Potok o głębokości 5: Wykonywanie każdej instrukcji trwa 5 cykli, ale efektywnie tylko jeden.
Podstawowe problemy:
" Oczekiwanie na wyniki
o synchronizacja potoku - "odczyt po zapisie (RAW - Read After Write)
o SCOREBOARDING - flagi wskazujące na ważność zawartości rejestrów procesora
o BYPASSES (obejścia) - dodatkowe szyny wewnątrz procesora
" Rozgałęzienia programu
Sposoby minimalizacji wad:
" Przewidywanie skoków - Współczesne procesory potrafią przewidywać skoki z 90% skutecznością
" Wykonywanie jednoczesne obu rozgałęzień programu (architektura hiper skalarna) do czasu sprawdzenia
warunku rozgałęzienia
" Opóznienie skoków w potoku - Skok opózniony (delayed branch): wykonaj następną instrukcję za bieżącą, a
potem skocz.
1
Preprocesing coÅ› co siÄ™ wykonuje przed czymÅ›
Przetwarzanie (proces kojarzenia). Wykonanie każdego etapu przetwarzania wymaga użycia układu funkcjonalnego
realizującego potrzebną funkcję i dostarczenia do tego układu danych stanowiących argumenty funkcji. Proces
przetwarzania jest ciągiem kojarzeń ortogonalnych zasobów: danych oraz układów/jednostek wykonawczych.
Zależnie od etapu wykonania rozkazu wystąpi w tym procesie jedna z dwóch opcji:
" Znana jest funkcja i należy dokonać wyboru jej argumentów
" Znane są argumenty i należy wskazać właściwą funkcję.
Drugi sposób przetwarzania może wystąpić w etapie wykonania, a także w etapie dekodowania. W innych etapach
potrzebne działania są dokładnie określone.
Czas cyklu procesora zależy od złożoności instrukcji i konstrukcji układów je realizujących oraz technologii
wykonywania.
Przetwarzania rozkazu: Kolejnymi rozkazami przetwarzania rozkazu są: pobranie rozkazu z pamięci, dekodowanie i
wykonanie (w szczególności transfer rejestr-pamięć)
Architektura Harvardzka
opiera się na użyciu dwóch oddzielnych układów pamięci (osobny układ do operacji na rozkazach i
osobny do operacji na danych) i dwóch magistral łączących te pamięci z procesorem, dzięki czemu w trakcie
pobierania argumentów wykonywanej właśnie instrukcji można
równocześnie zacząć pobieranie następnego słowa rozkazowego . Skraca
ADRES 2
to cykl rozkazowy i zwiększa szybkość pracy. Obszary adresowe pamięci
RAM
DANYCH
danych i programu są rozdzielone. Pociąga to za sobą niejednoznaczność
DANE 2
adresów, ponieważ pod tym samym adresem jednostka centralna widzi
pamięć RAM i ROM.
W tym przypadku stosuje się inne rozkazy dla pamięci programu i inne dla
CPU
pamięci danych. Ponadto magistrala danych i rozkazów mają różną
szerokość (długość słowa).
ADRES
RAM
PROGRAMU Separacja pamięci danych od pamięci rozkazów sprawia, że
architektura harwardzka jest obecnie powszechnie stosowana w
DANE
mikrokomputerach jednoukładowych, w których dane programu są
najczęściej zapisane w nieulotnej pamięci ROM (EPROM/EEPROM),
natomiast dla danych tymczasowych wykorzystana jest pamięć RAM (wewnętrzna lub zewnętrzna).
W architekturze typu Harvard komputer ma możliwość jednoczesnego dostępu do danych oraz do rozkazów
programu co zwiększa jego efektywność. Procesory o takiej strukturze stosowane są przede wszystkim w
obróbce sygnałów, w tak zwanych procesorach DSP.
Architektura harwardzka jest także stosowana przy dostępie procesora do pamięci cache.
Przykłady mikroprocesorów:
" AVR
" DSP
Architektura von Neumanna
rodzaj architektury komputera, przedstawionej po raz pierwszy w 1945 roku.
Polega na ścisłym podziale komputera na trzy podstawowe części:
" procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna)
" pamięć komputera (zawierająca dane i sam program)
2
" urządzenia wejścia/wyjścia
System komputerowy zbudowany w oparciu o architekturÄ™ von Neumanna powinien:
" mieć skończoną i funkcjonalnie pełną listę rozkazów
" mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego
przechowywanie w pamięci w sposób identyczny jak danych
" dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora
" informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i
wykonywaniu tych instrukcji w procesorze.
Architektura Von-Neumanna cechuje siÄ™ jednolitÄ… przestrzeniÄ…
adresową, w której wszystkie pamięci, rejestry i układy we/wy są
umieszczone w jednej, wspólnej przestrzeni adresowej. W architekturze tej
zakłada się, że podział przestrzeni adresowej na pamięć programu, pamięć
danych oraz obszar we/wy jest czysto umowny i zależy wyłącznie od
rozmieszczenia tych elementów w obszarze adresowym podczas
RAM
(PROGRAMU CPU projektowania systemu.
I DANYCH)
ADRES
System komputerowy von Neumanna nie posiada oddzielnych pamięci
do przechowywania danych i instrukcji. Instrukcje jak i dane sÄ… zakodowane
DANE w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar
pamięci zawiera dane czy instrukcje. Wykonywany program może się sam
modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych
instrukcji - danych - zacząć je wykonywać.
Architektura von Neumanna tworzy w pewnym miejscu tzw. wąskie gardło ograniczające moc procesora. Tym
miejscem jest szyna, czyli kanał, przez który procesor komunikuje się z pamięcią i urządzeniami zewnętrznymi.
W architekturze harwardzkiej adres danej można podawać do pamięci danych już w czasie podawania adresu
następnej instrukcji pamięci programu. Taka architektura ułatwia przetwarzanie potokowe. Rozwiązaniem jest
zastosowanie pamięci podręcznej cache.
Programowanie jest ułatwione, gdyż dostęp do danych, programu i urządzeń we/wy odbywa się przy użyciu
zunifikowanych rozkazów wykorzystujących te same tryby adresowania. Zatem nie istnieje tu potrzeba
wprowadzania specjalnych rozkazów pozwalających na przepływ danych pomiędzy pamięcią ROM i RAM.
Przykłady mikroprocesorów:
" ARM
Zmodyfikowana architektura harwardzka
jest rozwiązaniem pośrednim, starającym się połączyć zalety architektury harwardzkiej i Von-Neumanna. Obszary
pamięci ROM i RAM są rozdzielone, ale charakteryzują się taką samą długością słowa. Wykorzystują one
wspólne magistrale danych i adresową.
Dzięki multiplekserom MUX i odpowiedniej organizacji magistrali pamięci ROM i RAM możliwe jest z pewnymi
ograniczeniami przesyłanie stałych z pamięci ROM do rejestrów i pamięci RAM. Jedynym rejestrem
niewidocznym jako komórka pamięci RAM jest rejestr akumulatora A.
Przykłady mikroprocesorów:
" rodzina mikrokontrolerów 8051
Mikrokontroler - definicja Mikrokontroler jest układem scalonym bardzo wielkiej skali integracji, w skład, którego
wchodzi: - mikroprocesor - pamięć przechowująca rozkazy dla mikroprocesora, dane oraz wyniki operacji - układy
wejścia-wyjścia, umożliwiające wprowadzanie do pamięci rozkazów i danych i wyprowadzanie wyników
Mikrokontrolery są więc kompletnymi, programowalnymi, autonomicznymi układami (do pracy nie jest konieczne
urządzenia zewnętrzne), mogącymi realizować wszystkie operacje składające się na przetwarzanie informacji
cyfrowej łącznie z jej wymianą z określonym otoczeniem.
3
Elementy składowe mikrokontrolera 8051 Mikrokontroler 8051 złożony jest z następujących elementów:
-Generatora sygnałów zegarowych i układów kontrolno-taktujących
-Pamięci programu ROM lub EPROM (4kB w wersji podstawowej)- jest to pamięć ustalana przy produkcji
mikrokontrolera
-128-bajtowej pamięci danych w obszarze wewnętrznej pamięci RAM (adresy 00...7Fh)
-zespołu rejestrów specjalnych (SFR-Special Function Registers) umieszczonych w wydzielonym obszarze pamięci
wewnętrznej RAM (adresy 80h...0FFh), poprzez które możliwe jest sterowanie urządzeniami wewnętrznymi
-16-bitowego licznika rozkazów (PC)
-8-bitowej ALU (jednostki arytmetyczno-logicznej)
-Czterech grup rejestrów (R0-R7), z których każda zawiera osiem 8-bitowych rejestrów umieszczonych w
wewnętrznej pamięci danych RAM
-16-bitowego wskaznikowego rejestru danych DPTR (rejestr SFR o adresie 82h)
- 8- bitowego wskaznika stosu SP (rejestr SFR o adresie 81h)
- czterech 8-bitowych portów we-wy PO-P3 (bufory w bloku SFR pod adresami 80h, 90h,A0h i B0h)
- dwóch 16-bitowych układów czasowo-licznikowych TIMER 0 i TIMER 1 . Układy te mogą zliczać impulsy zegarowe
lub impulsy przychodzÄ…ce z zewnÄ…trz.
- sterownika szeregowej transmisji danych pozwalajÄ…cego na zorganizowanie transmisji w standardzie RS232 w dwu
kierunkach jednocześnie
- sterownika przerwań przyjmującego przerwania z pięciu zródeł - dwa z układów zegarowych (timerów), jedno ze
sterownika transmisji szeregowej i dwa z linii zewnętrznych
Dodatkowe zastosowania portów P0 i P2 pełnią rolę szyny systemowej adresującej zewnętrzną pamięć kodu
programu lub danych. P0 służy do przesyłania 8-bitowych danych P3 pełni rolę we-wyj dla układów licznikowo-
czasowych i portu szeregowego oraz steruje kierunkiem przepływu danych z/do zewnętrznej pamięci danych RAM.
Pamięć programu mikrokontrolera 8051 Standardowy mikrokontroler 8051 posiada 4KB pamięci programu typu
ROM programowane maskę. Niektóre wersje układu posiadają pamięć:
- EPROM (Erasable Programmable ROM) pamięć z możliwością kasowania dotychczasowej zawartości promieniami
ultrafioletowymi i prowadzania nowej zawartości za pomocą zewnętrznego programatora. Umieszczane są w
obudowach z okienkiem kwarcowym w celu umożliwienia kasowania. Z pamięci można czytać, lecz nie można do niej
wpisywać danych. Umieszczanie danych w pamięci wymaga specjalnego procesu, zwanego programowaniem.
- lub EEPROM -przechowuje zmienne lub tablice stałych, które po wyłączeniu zasilania nie mogą ulec skasowaniu.
Pamięć programu przechowuje kody operacji przeznaczonych do wykonania przez mikroprocesor, może także służyć
do przechowywania stałych używanych w programie. Pamięć programu adresowana jest przez 16-bitowy licznik
rozkazów (PC, ang. Program Counter). Mikrokontroler 8051 może także korzystać z zewnętrznej pamięci programu o
pojemności do 64KB.
Pamięć danych mikrokontrolera 8051 Na wewnętrzną pamięć RAM składają się dwa bloki: 128 bajtów ciągłego
obszaru pamięci danych oraz obszar 128 bajtów niespójnego bloku rejestrów specjalnych mikrokontrolera.
Rejestry specjalne Blok rejestrów specjalnych (SFR; ang. Special Function Registers) znajduje się w nieciągłym
obszarze pamięci danych mikrokontrolera o adresach 128- 240 (80H-0F0H). Obszar rejestrów SFR mikrokontrolera
'51 jest wykorzystywany dwojako - z jednej strony umieszczone są w nim wszystkie (za wyjątkiem licznika rozkazów i
czterech banków rejestrów R0-R7) rejestry sterujące pracą mikrokontrolera lub wykorzystywane bezpośrednio przy
wykonywaniu programu; z drugiej zaś strony rejestry SFR stanowią rodzaj interfejsu pomiędzy mikroprocesorem a
układami peryferyjnymi umieszczonymi wewnątrz mikrokontrolera. Wszystkie operacje sterowania wewnętrznymi
układami peryferyjnymi oraz przesyłania danych między nimi a CPU, odbywają się właśnie za pośrednictwem
rejestrów SFR. Dostęp do każdego z tych rejestrów możliwy jest wyłącznie w trybie adresowania bezpośredniego.
Ważniejsze rejestry specjalne
ACC akumulator, jeden z najczęściej wykorzystywanych rejestrów, gdyż obsługuje większość operacji
arytmetycznych, logicznych, skoków warunkowych i wiele innych
4
B dodatkowy rejestr, wykorzystywany w trakcie operacji mnożenia (MUL) i dzielenia (DIV)
PSW rejestr stanu programu (Program Status Word), jest to zbiór różnych flag (wskazników):
o PSW.0=P parzystość, flaga jest ustawiana gdy wynikiem operacji jest liczba parzysta,
o PSW.1=F1 począwszy od 8052, flaga którą może zdefiniować użytkownik,
o PSW.2=OV (Overflow) przepełnienie, przekroczenie zakresu liczb w kodzie uzupełnienia do 2 (U2),
o PSW.3=RS0 (Register Bank Switch) młodszy bit numeru banku,
o PSW.4=RS1 (Register Bank Switch) starszy bit numeru banku,
o PSW.5=F0 flaga ogólnego zastosowania,
o PSW.6=AC (Auxiliary Carry) przeniesienie z młodszej do starszej tetrady (istotne w rozkazach
arytmetycznych BCD),
o PSW.7=CY (Carry) przeniesienie z najstarszego bitu (oznacza np. przekroczenie zakresu przy sumowaniu
NKB),
Porty P0-P3 wykorzystywane są do komunikacji ze światem zewnętrznym (wszelkimi urządzeniami peryferyjnymi),
niektóre mają jeszcze dodatkowe funkcje,
o P0 i P2 mogą zostać wykorzystanie jako wyprowadzenia szyny systemowej mikrokontrolera
o P1 port ogólnego zastosowania,
o P3 port posiada wyspecjalizowane linie (w SFR przedstawiane jako bity),
RD odczyt pamięci danych,
WR zapis pamięci danych,
T0,T1 wejścia timerów zewnętrznych (zliczanie impulsów trybie pracy timerów jako liczniki),
INT0,INT1 wejścia zewnętrznych przerwań,
TxD, RxD wysyłanie (Transmit) i odbieranie (Receive) danych (Data) przy transmisji szeregowej,
Sterowanie przerwaniami,
o IE zezwolenia dla przerwań (Interrupt Enable),
EA ogólne zezwolenie dla przerwań,
ES zezwolenie dla przerwań od transmisji szeregowej,
ET0, ET1 zezwolenie dla przerwań od timerów,
EX0, EX1 zezwolenie dla przerwań zewnętrznych,
o IP priorytety przerwań (Interrupt Priority),
PS priorytet dla przerwań od transmisji szeregowej,
PT0, PT1 priorytet dla przerwań od timerów,
PX0, PX1 priorytet dla przerwań zewnętrznych,
o TCON tylko młodsze 4 bity,
IE0, IE1 flagi przerwań zewnętrznych (zgłoszenie zewnętrznego przerwania),
IT0, IT1 sposób zewnętrznego przerwania (0 poziom niski, 1 opadające zbocze),
DPTR 16-bitowy wskaznik adresu danych,
o DPH starszy bajt wskaznika,
o DPL młodszy bajt wskaznika,
SP wskaznik stosu (Stack Pointer),
Pamięć zewnętrzna Oprócz pamięci wewnętrznej danych możliwe jest dołączenie do mikrokontrolera zewnętrznej
pamięci danych o pojemności do 64kB. Ponieważ mikrokontroler nie posiada osobnych rozkazów do dostępu do
urządzeń wejścia-wyjścia, to w obszarze adresowym 64kB zewnętrznej pamięci danych mogą być również
umieszczane rejestry dołączanych do systemu urządzeń we /wy. Ponadto adresy wewnętrznej pamięci RAM
pokrywają się z adresami zewnętrznej pamięci RAM i pamięci programu, zatem aby rozróżnić typ adresowanej
pamięci stosuje się odpowiednie rozkazy:
* MOV dla adresowania wewnętrznej pamięci RAM
* MOVX dla adresowania zewnętrznej pamięci RAM
* MOVC dla adresowania wewnętrznej i zewnętrznej pamięci programu (rozróżniane stanem wyprowadzenia EA oraz
zakresem adresów)
Mikrooperacje:
Mikrooperacja - elementarna czynność układu sekwencyjnego, którą układ może zrealizować bez potrzeby
rozkładania na czynności prostsze.
5
Mikrooperacje transferu zapis i odczyt w poszczególnych rejestrach -> rozkazy MOV, MOVC;
Mikrooperacje arytmetyczne - dodawanie, odejmowanie, mnożenie i dzielenie, inkrementacja i dekrementacja:
ADD, SUBB, MUL, DIV, INC, DEC;
Mikrooperacje logiczne iloczyn logiczny, suma logiczna, suma logiczna modulo 2(XOR), negacje rozkazy ANL, ORL,
XRL, CLR
Mikrooperacje na bitach: ustawienie, zerowanie bitu, negowanie, suma logiczna na bitach, iloczyn logiczny na bitach
rozkazy SETB, CLR, CPL, ORL, ANL Mikrooperacje przesunięć przesunięcie logiczne (przesuwanie całego rejestru,
wypełnianie zerami), przesunięcie arytmetyczne( przesuwanie całego rejestru z wyłączeniem bitu znaku, wypełnienie
zależne od stosowanego kodu), cyrkulacja( przesuwanie całego rejestru z wpisywaniem najstarszego bitu na
najmłodszy i odwrotnie). Rozkazy RR, RL, RLC, RRC.
Podaj sposób realizacji mikrooperacji inkrementacji i dekrementacji
Inkrementacja A+1
Dekrementacja A-1
Realizacja sprzętowa ALU
- Typowy symbol jednostki arytmetyczno-logicznej ALU A,B operandy, R wynik
operacji, F- sygnał sterujący, D status wyjścia
Za pomocą ALU można wykonywać operacje logiczne, operacje arytmetyczne, operacje jednoargumentowe. ALU
często posiada zaimplementowany układ do mnożenia, odejmowania, dodawania z przeniesieniem,
inkrementacji/dekrementacji, dzielenia.
Jeżeli chodzi o realizację sprzętową, to zapamięta, że posiadamy specjalne układy zbudowane na bramkach
logicznych, traktowane jako czarne skrzynki, z dwoma argumentami wejściowymi, wyjściem oraz sygnałami
sterujÄ…cymi.
Transmisja szeregowa
Transmisja szeregowa - cyfrowa transmisja danych, podczas której bity informacji są przesyłane kolejno po sobie
wraz z dodatkowymi danymi pozwalajÄ…cymi na kontrolÄ™ tej transmisji. Do przeprowadzenia tej transmisji potrzebne
są tylko dwie linie. Kolejną zaletą jest duża odporność na zakłócenia. Standardami tej transmisji są np. USB, RS-232,
RS-485, I2C, SPI i inne.
W przypadku RS232: Prędkość od 300 do 115200 bitów na sekundę. Strony ustalają wspólną prędkość przed
podjęciem transmisji. Ramka składa się z 5-9 bitów danych i 2-4 bitów kontrolnych. Transmisja ramki może rozpocząć
się w dowolnym momencie (transmisja asynchroniczna). Czas transmisji pojedynczej ramki jest ściśle ustalony.
Symetryczny poziom napięć - odporność na zakłócenia. Symetria obu stron transmisji.
RS-232 prosty, do wiekowy, standardowy interfejs szeregowy, służący do komunikacji pomiędzy urządzeniem
nadrzędnym, a peryferyjnym.
I2C interfejs będący poprzednikiem innych współczesnych interfejsów szeregowych w tym CAN. Pozwala na szybka
komunikacjÄ™ (do 100kB/s).
SPI interfejs o możliwościach i właściwościach podobnych do I2C, o większej szybkości transmisji danych sięgającej
kilka MB/s. Stworzony przez Motorolę, obecnie jest dość często wykorzystywany przez innych producentów. Interfejs
ten został standardowo wbudowany w wiele mikrokontrolerów.
D2BUS Interfejs Digital Data Bus opracowany przez firmę Philips, stworzony z myślą o łączeniu niewielkiej liczby
urządzeń na małym obszarze, umożliwiający transmisję danych z szybkością100kbit/s pomiędzy urządzeniami
oddalonymi od siebie o 150m.Pozwala zaadresować 4096 jednostek. Jako medium transmisyjne najczęściej używa się
pary skręconych przewodów, lub kabla koncentrycznego.
6
USB - zaawansowany interfejs szeregowy, opracowany głównie z myślą o wykorzystaniu w komputerach PC,
realizujący koncepcję plug and play w odniesieniu do sieci urządzeń zewnętrznych. Może obsługiwać maksymalnie do
127 urządzeń peryferyjnych, stosując dużą szybkość transmisji danych - 1,5 Mbit/s w przypadku obniżonej prędkości i
12 Mbit/s przy prędkości pełnej.
Kontrola poprawności transmisji: Nadając 8 bitów danych, nadajemy dodatkowy, dziewiąty bit bit parzystości,
wystawiany w zależności od ilości jedynek w bajcie. Po odebraniu bajtu, parzystość jest zliczana ponownie i
porównywana z wartością odebraną, co pozwala na wychwycenie błędu. Niestety, w przypadku wystąpienia błędu na
dwóch bitach nie zostanie on wykryty.
I2C:
magistrala dwuprzewodowa
serial data line (SDA)
serial clockline (SCL)
" Poziomy napięć
Wysoki (HIGH) 1
Niski (LOW) 0
UrzÄ…dzenie typu Master Kontroluje liniÄ™ SCL Generuje bity startu i stopu Kontroluje (generuje) adresy innych
urządzeń
" Urządzenie typu Slave Urządzenie adresowane (podległe) master
" Nadajnik/ Odbiornik (Transmitter/Receiver) master lub slave master-nadaje (wysyła) daną do slave-odbiornika
master-odbiera żądaną daną z urządzenia slave-nadajnika
" Do magistrali może być dołączonych wiele kontrolerów (urządzeń master)
" Kilka urządzeń masters może wystawić start swojej ramki
" synchronizacja poprzez SCL
" arbitraż poprzez SDA
" Połączenia typu wired-AND do linii SCL/SDA
USB:
" USB 1.1 - jego transfer wynosi, w zależności od typu urządzenia 1.5 lub 12 Mbit/s.
" USB 2.0 - osiÄ…ga transfer do 480 Mbit/s.
Magistrala USB tworzy strukturÄ™ warstwowÄ…, jednak zachowuje logicznÄ… strukturÄ™ gwiazdy, a komunikacja przebiega
tak, jakby urządzenia były podłączone bezpośrednio do hosta. Gdy hub jest odłączony, wszystkie urządzenia
podłączone do huba zostają usunięte z logicznej topologii hosta.
Obsługa magistrali USB:
" identyfikacja rodzaju transmisji;
" przesyłanie danych pomiędzy kontrolerem USB komputera a urządzeniem peryferyjnym, zgodnie z kierunkiem
określonym w fazie identyfikacji rodzaju transmisji;
" potwierdzenie realizacji lub informacja o błędach transmisji danych.
Procesory typu RISC ( ReducedInstruction Set Computer - komputery o zredukowanej liście rozkazów) -
zredukowana liczba rozkazów
Cechy architektury:
- Ograniczona lista rozkazów, zawierająca do 128 rozkazów wewnętrznych.
- Rozkazy wewnętrznych mają prostą treść operacyjną, realizują one osobno operacje dostępu do pamięci
operacyjnej i operacje przetwarza danych w rejestrach.
- Mała liczba trybów adresowania dostępna w rozkazach wewnętrznych, do 4.
- Duża liczba rejestrów roboczych w procesorze, od 32 do 256.
- Mała liczba formatów rozkazów wewnętrznych, jednakowa długość słowa rozkazowego - często odpowiadająca
pojedynczemu słowu.
- Ujednolicony czas wykonania rozkazów - od jednego do kilku cykli zegara.
-Układ sterowania procesora jest sprzętowy.
- prosta budowa procesora
7
- zredukowana liczba trybów adresowania
- zwiększenie liczby rejestrów (min. 16, zwykle 32
- przetwarzanie potokowe, wszystkie rozkazy sÄ… wykonywane w jednym cyklu maszynowym
- argumenty instrukcji mogą być równej długości
- instrukcje trójargumentowe
- jednakowa długość instrukcji 32 bity
cechy:
-procesor jest zbudowany zgodnie z architekturÄ… harwardzkÄ…,
-procesor wykorzystuje przetwarzanie potokowe (pipeling) w celu zwiększenia szybkości wykonywania programu,
-zbiór realizowanych instrukcji jest ograniczony i spełnia warunki ortogonalności(symetrii).
W przetwarzaniu potokowym dysponuje pobranymi na zapas instrukcjami, które będą kierowane do współbieżnego
wykonania w jej poszczególnych jednostkach wykonawczych. W procesorze tego typu zamiast prostego rejestru
instrukcji stosuje się pamięć FIFO (first-infirst-out), która gromadzi kolejkę instrukcji. Instrukcje pobierane z pamięci
programu do kolejki w cyklu pre-fetch opuszczają ją w takiej samej kolejności i są kierowane do poszczególnych
układów wykonawczych.
Pojęcie ortogonalności oznacza unifikację instrukcji według następujących zasad:
-każda instrukcja może operować na dowolnym rejestrze roboczym. Procesor nie ma więc wyróżnionych rejestrów,
które są specjalizowane do wykonywania określonych rodzajów operacji, każda instrukcja może wykorzystywać
dowolny tryb adresowania argumentów, nie ma ukrytych związków między instrukcjami (efektów ubocznych), które
powodowałyby nieprzewidziane reakcje systemu w zależności od kontekstu użycia rozkazów w programie,
-kody rozkazów i formaty instrukcji są zunifikowane. W szczególności wszystkie instrukcje zajmują w pamięci
programu taką samą liczbę bajtów. Ortogonalność zbioru instrukcji radykalnie upraszcza budowę układu sterowania,
który może realizować cykl wykonania każdego rozkazu według identycznego algorytmu. Stąd prostszy układ
sterowania może pracować znacznie szybciej, dlatego cykl rozkazowy ulega skróceniu. Klasyczna architektura jest
stosowana w mikrokontrolerach rzadko. Najczęściej można znalezć elementy tej architektury, ale ortogonalność
instrukcji nie jest pełna.
Procesory typu CISC ( CompoundInstruction Set Computer - komputery o złożonej liście rozkazów) - duża
liczba rozkazów Cechy architektury:
- Rozbudowana lista rozkazów zawierająca od 100 do 300 rozkazów wewnętrznych.
-Wiele rozkazów wewnętrznych ma skomplikowana treść operacyjną, realizują one w jednym rozkazie
skomplikowane operacje łączące dostępy do pamięci operacyjnej z przetwarzaniem danych.
-Duża liczba trybów adresowania dostępna w rozkazach wewnętrznych, od 5 do 20.
-Mała liczba rejestrów roboczych w procesorze, od kilku do kilkunastu.
-Formaty rozkazów wewnętrznych zróżnicowane pod względem: podziału na pola, długości słowa rozkazowego i
liczby argumentów.
-Zróżnicowane czasy wykonania rozkazów - od jednego do wielu cykli zegara.
-Układ sterowania procesora jest przeważnie mikroprogramowany.
- niektóre rozkazy potrzebują dużej liczby cykli procesora
- występowanie złożonych, specjalistycznych rozkazów
- duża liczba trybów adresowania
- bezpośrednio do pamięci może się odwoływać duża liczba rozkazów
- powolne działanie dekodera rozkazów
- rozkazy są różnej długości
- mniejsza niż w RISC częstotliwość taktowania procesora
- max 16 rejestrów
- instrukcje dwuargumentowe
-Cecha ortogonalności nie jest zachowana.
-Instrukcje są wąsko specjalizowane, współpracują na ogół tylko z określonymi rejestrami i wymagają stosowania
określonych trybów adresowania.
RISC a CISC Podstawowe różnice:
CISC Complete Instruction Set Computer RISC Reduced Instruction Set Computer
8
" Rozbudowane instrukcje " Znacznie ograniczony zestaw instrukcji
o Operacje arytmetyczne bezpośrednio na " Operacje ALU tylko na rejestrach
lokalizacjach w pamięci " Prosty tryb adresowania uproszczone
" Możliwość zaawansowanego programowania w odwołania do pamięci
języku maszynowym " Wszystkie instrukcje identycznej długości (32b)
" Różna długość instrukcji " Znacznie prostsza konstrukcja procesora
o Często występujące instrukcje 8-bitowe " Mikrooperacje realizowanie są synchronicznie
o Rzadsze rozbudowane instrukcje o razem z sygnałem zegarowym
większej długości
" Znaczne różnice czasu wykonania
poszczególnych instrukcji
" Mikrooperacje realizowanie sÄ… synchronicznie
razem z sygnałem fazy
Opisać pamięć x86 w trybie rzeczywistym i chronionym
Tryb chroniony umożliwia adresowanie pamięci przekraczającej wielkość 1 MB (tryb rzeczywisty), wprowadza wiele
nowych udogodnień wspierających wielozadaniowość, takich jak: sprzętowa ochrona pamięci (układ MMU),
wsparcie w przełączaniu kontekstu procesora i wiele innych.
Tryb rzeczywisty nie zapewnia ochrony pamięci przed użyciem przez inny proces oraz obsługi wielozadaniowości. W
trybie rzeczywistym dostępna jest 1-megabajtowa przestrzeń adresowa. Adres logiczny (programowy) składa się z
dwóch liczb 16-bitowych: segmentu (numeru segmentu) oraz przemieszczenia względem początku segmentu (ang.
offset).
Opisać budowę i własności EEPROM Flash, podać sprzętowe mechanizmy wspomagające wyliczanie adresów przy
zapisywaniu i kasowaniu
Komórka jest podobna do tranzystora polowego, ale z dwiema bramkami: bramką sterującą i bramką "pływającą".
Jeśli komórkę wybrano do odczytu (bramka połączona jest z linią słowa pamięci), wtedy do bramki sterującej
doprowadzone jest napięcie. Bramka "pływająca" nie jest bezpośrednio wyprowadzona, a jedynie ładunek tej bramki
decyduje o przepływie prądu przez tranzystor. Aadunek bramki "pływającej" decyduje o napięciu progowym Ut, jeśli
napięcie na bramce sterującej przekroczy Ut, wtedy tranzystor rozpoczyna przewodzenie.
VLIW (ang. VeryLongInstruction Word) nazwa architektury mikroprocesorów z bardzo dużym słowem instrukcji.
- maksymalne uproszczenie jednostek sterujących (CU) w samym mikroprocesorze zaniku niektórych elementów.
-Całą złożoność przepływu sterowania w mikroprocesorze, czyli wykonywania rozkazów (programu), przerzucono na
barki oprogramowania kompilatorów.
-Rezygnacja z całej logiki wymusiła dostarczenie do procesora wystarczającej liczby danych sygnałów sterujących. Z
tego powodu pojedyncze rozkazy posiadają w sobie już zdekodowane (lub wstępnie zdekodowane) sygnały
sterujące, dane oraz, co najważniejsze, "instrukcje" dedykowane dla konkretnych jednostek wykonawczych
mikroprocesora.
-Tak stworzona pojedyncza instrukcja procesora VLIW ma wielkość rzędu setek bitów 256 lub więcej.
9
-Obecnie procesory VLIW są oparte na architekturze RISC, zazwyczaj z czterema lub maksymalnie ośmioma
jednostkami obliczeniowymi.
Architektura EPIC (Intel Itanium) ExplicitlyParallelInstruction Computing - przetwarzanie jawnie równoległe
- Grupowanie instrukcji i oznaczanie ich wzajemnych relacji już na etapie kompilacji programu.
- Instrukcje są zamknięte w tzw. paczkach (po trzy instrukcje), które są ładowane do procesora równocześnie.
-Każda paczka zawiera przedrostek - grupę bitów informujących procesor o tym, do których jednostek ma skierować
poszczególne rozkazy.
-W przedrostku znajdują się też informacje o tzw. barierach wykona o służących do koordynacji wykonywania
poszczególnych instrukcji.
-Jeśli pomiędzy dwoma ciągami rozkazów znajdują się bariery wykonania, to drugi ciąg zostanie wykonany dopiero
wtedy gdy znane będą wyniki działania rozkazów z pierwszego ciągu.
-Skalowalność: Kod nie jest on dostosowany ściśle do budowy procesora (jak w układach VLIW) - zamiast
równoległych instrukcji i od wołań zawiera tylko informacje, które instrukcje mogą się wykonać równolegle
Przetwarzanie potokowe
-sposób przetwarzania kodu rozkazu przez mikroprocesor
- wykonanie rozkazu jest realizowane w określonym porządku
Wyróżniamy: * etap pobrania * etap dekodowania * etap wykonania *etap zwrotu rezultatów
- za każdy krok odpowiada konkretna jednostka w strukturze procesora
Realizacja zadania (potoku)- pobieranie kolejnego rozkazu, kiedy kolejna instrukcja jest rozpoznawana i
przetwarzana przez mikroprocesor rozpoczęcie i wykonanie jednego rozkazu w jednym cyklu zegarowym.
- zastosowanie potoku nie redukuje czasu kompletnego wykonania
- potok może zawierać od kilku do kilkunastu poziomów
Opisać ścieżki danych i programu na podstawie VLIW i EPIC
VLIW Kompilator VLIW porządkuje kod na ścieżki, które wprost nie posiadają jakichkolwiek zależności. Następnie są
one dzielone na cztery lub więcej części (jeden dla każdej jednostki obliczeniowej CPU) i pakowane razem w większe
instrukcje z dodatkową informacją odnośnie do jednostki, na której ma być wykonywana. Rezultatem tego jest
pojedynczy wielki opcode (stÄ…d nazwa "Very Long").
EPIC Grupowanie instrukcji i oznaczaniu ich wzajemnych relacji już na etapie kompilacji programu. Instrukcje są
zamknięte w tzw. paczkach (po trzy instrukcje), które są ładowane do procesora równocześnie. Każda paczka zawiera
przedrostek - grupę bitów informujących procesor o tym, do których jednostek ma skierować poszczególne rozkazy.
W przedrostku znajdują się też informacje o tzw. barierach wykonań służących do koordynacji wykonywania
poszczególnych instrukcji. Jeśli pomiędzy dwoma ciągami rozkazów znajdują się bariery wykonania, to drugi ciąg
zostanie wykonany dopiero wtedy gdy znane będą wyniki działania rozkazów z pierwszego ciągu.
ARM
Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) 32-bitowa oraz 64-bitowa (Apple A7,
2013 r.) architektura (model programowy) procesorów typu RISC. Opiera się również o architekturę Von Neumanna.
Zgodnie z założeniami architektury RISC, rozkazy procesorów ARM są tak skonstruowane, aby wykonywały jedną
określoną operacje i były przetwarzane w jednym cyklu maszynowym.
Interesującą zmianą w stosunku do innych architektur jest użycie 4-bitowego kodu warunkowego na początku każdej
instrukcji. Dzięki temu każda instrukcja może być wykonana warunkowo. Ogranicza to przestrzeń dostępną, na
przykład, dla instrukcji przeniesień w pamięci, ale z drugiej strony nie ma potrzeby stosowania instrukcji rozgałęzień
dla kodu zawierajÄ…cego wiele prostych instrukcji warunkowych.
Inną unikatową cechą zestawu instrukcji procesora ARM jest łączenie operacji przesunięcia i obrotu bitów w
rejestrze z instrukcjami arytmetycznymi, logicznymi, czy też przesłania danych z rejestru do rejestru. Dzięki temu
wyrażenie języka C a += (j << 2); może zostać przetłumaczone przez kompilator w pojedynczą instrukcję asemblera.
Przedstawione cechy powodują, że typowy program zawiera mniej linii kodu niż w przypadku innych procesorów
RISC. W rezultacie jest mniejsza liczba operacji pobrania/zapisania argumentów instrukcji, więc potokowość jest
bardziej efektywna. Pomimo że procesory ARM są taktowane zegarem o stosunkowo niskiej częstotliwości są
konkurencyjne w stosunku do znacznie bardziej złożonych procesorów.
10
Cała przestrzeń adresowa rdzenia generalizując podzielona jest na 3 przestrzenie :
1) pamięć kodu/danych,
2) przestrzeń nie wykorzystana ,
3) rejestry sterujÄ…ce urzÄ…dzeniami peryferyjnymi.
Kontroler przerwań: Przerwania są charakterystycznym elementem architektury mikroukładów. Model kontrolera
przerwań omawianego układu można uprościć do dwu obwodów:
" Obwód żądania przerwania - odpowiada za to aby zgłosić zapotrzebowanie.
" Obwód obsługi przerwania wystawia on odpowiedni adres obsługi procedury.
Start-Up poczÄ…tek pracy:
" oprogramowanie wektora resetu oraz wektorów przerwań (dla nieużywanych przerwań umieszczenie pustych
funkcji)
" oprogramowanie (konfiguracja) układów peryferyjnych procesora np. zegar, RST, watchdog itp.
" alokacja miejsca na stosy oraz inicjalizacja wskazników stosów dla wszystkich trybów pracy procesora
" skok do dalszej częsci programu - dla C skok do procedur inicjalizujacych biblioteki i zmienne globalne
Fazy wykonania rozkazu praca potokowa
" Każdy rozkaz wykonywany jest w trzech cyklach
o Pobranie,
o Dekodowanie,
o Wykonanie,
" Przetwarzanie odbywa się z zastosowaniem potoku trójpoziomowego,
" Efektywny czas wykonania rozkazu to jeden cykl.
W procesorach ARM stosuje się mechanizm bankowania rejestrów, który polega na tym, że gdy procesor zmienia
tryb ochrony zestaw niektórych rejestrów jest podmieniany na inny. W efekcie każdy tryb ochrony posiada własny
rejestr, który jest widoczny tylko w tym trybie.
Potok trójpoziomowy (pobranie->dekodowanie->wykonanie)
Cechy ARM:
" 32-bitowy procesor zgodny z RISC
" Procesor zoptymalizowany pod względem poboru mocy
" Różne tryby pracy
o 32-bitowe instrukcje ARM
o 16-bitowe instrukcje Thumb
" Praca w trybie Big lub Little Endian
" Szybka obsługa przerwań, aplikacje czasu rzeczywistego
" Pamięć wirtualna
" Lista wydajnych instrukcji (optymalizacja na podstawie RISC i CISC)
" Sprzętowe wsparcie dla języków wyższego poziomu
Rejestry:
" PC licznik programu
" CPSR licznik statusowy, obecny status
" SPSR licznik statusowy, dostępny w różnych trybach uprzywilejowania
" LP licznik powrotu, wykorzystywany podczas wywołania funkcji
" SP wskaznik stosu
" R0-R12 rejestry ogólnego przeznaczenia
7 trybów pracy:
11
" User
" System
" Supevisor
" Abort
" Undef
" IRQ
" FIQ
DSP
Budowa blokowa jednostki DSP TMS320C50, porównać pracę w trybie mikrokomputera i mikroprocesora.
Podstawowe bloki funkcjonalne i obsługa przerwań. Opisz PLU w tym procesorze
Podaj (wymień) rejestry używane w pętlach licznikowych
1. Procesor układ scalony DSP
a. CPU Central Processing Unit
b. AAU Auxiliary Arithmeric Unit
c. SP Serial Ports
d. IM Internal Memory
2. Pamięć zewnętrzna (w architekturze harwardzkiej pamięć programu i pamięć danych
3. Porty komunikacji
a. Szeregowy (np. modem)
b. Równoległy (np. drukarka)
Bloki funkcjonalne:
Układ scalony DSP, pamięć zewnętrzna, A/C, C/A, Porty
Przerwania:
Zawartość licznika rozkazów zostaje zapamiętana (na 8-poziomowym stosie sprzętowym razem z adresami
procedur uwaga przy ich wywoływaniu z procedury przerwania)
Zapamiętanie kontekstu: zawartość rejestrów rdzenia zostaje zapamiętana (na stosie 1-poziomowym -> C50 nie
obsługuje przerwań zanurzonych)
Licznik rozkazów zostaje załadowany adresem procedury obsługi przerwania (ISR)
Procesor wykonuje program procedury przerwania aż do napotkania instrukcji RETE lub RETI
Zapamiętany na stosie kontekst przerwania: PC, ACC, ACCB, PREG, ST0-1, PMST, TREG0-2, INDX, ARCR.
UrzÄ…dzenia funkcjonalne:
Układ scalony DSP, pamięć zewnętrzna, A/C, C/A, Porty
Licznik rozkazów zostaje załadowany adresem procedury obsługi przerwania (ISR)
Procesor wykonuje program procedury przerwania aż do napotkania instrukcji RETE lub RETI
Zapamiętany na stosie kontekst przerwania: PC, ACC, ACCB, PREG, ST0-1, PMST, TREG0-2, INDX, ARCR.
Procesor sygnałowy (DSP z ang. Digital Signal Processor, procesor DSP) oznacza klasę specjalizowanych
procesorów do cyfrowej obróbki sygnałów. Charakteryzują się rozdzielonymi pamięciami programu i danych
(architektura harwardzka), możliwością równoczesnego odczytu instrukcji i danych, sprzętowym dostosowaniem do
wykonywania operacji najczęściej występujących przy przetwarzaniu sygnałów i potokowym przetwarzaniem
instrukcji. Opiera się także o architekturę RISC.
Typowy system cyfrowego przetwarzania sygnału:
CPU - central processing unit (procesor, jednostka centralna)
AAU - auxiliary arithmetic unit (pomocnicza jednostka arytmetyczna)
SP - serial ports (porty szeregowe)
IM - internal memory (pamięć wewnętrzna)
W temacie DSP na wykładzie omawialiśmy głównie procesor TMS320C50 firmy Texas Instruments, jego główne
parametry:
-Wydajność 40 MIPS (Milion Instrukcji na Sekundę
- określa liczbę milionów operacji stałoprzecinkowych wykonywanych w ciągu sekundy)
12
- Poszerzony zestaw instrukcji
- 1-9 K słów pamięci RAM (on-chip)
- 224 K słów adresowalnej pamięci zewnętrznej (64 K - program, 64 K - dane, 64 K - I/O, 32 K - pamięć globalna)
- 32 b jednostka arytmetyczno-logiczna (ALU), akumulator i bufor akumulatora
- 16 b równoległa jednostka logiczna (PLU)
- instrukcje mnożenia i dodawania w jednym cyklu rozkazowym
- osiem rejestrów pomocniczych (AR0-AR7) z dedykowaną jednostką arytmetyczną (ARAU) do adresowania
pośredniego.
Pamięć RAM:
" Krótki czas dostępu (on chip RAM)
" Część pamięci może być skonfigurowana, jako pamięć programu lub pamięć danych
" 1056 słów pamięci RAM można zapisywać i odczytywać w pojedynczym cyklu ("Dual Access RAM")
" Zwykle po uruchomieniu procesora program, dane oraz informacje o konfiguracji są ładowane do pamięci RAM,
skÄ…d program jest uruchamiany
Pamięć ROM:
" Wewnętrzna pamięć programu (inicjalizacja i test) od 2 do 16 K słów 16 b
" Programowanie możliwe tylko podczas produkcji (można zamawiać w TI)
" Możliwość dołączenia zewnętrznej pamięci ROM
Przerwania:
" Zawartość licznika rozkazów zostaje zapamiętana (na 8-poziomowym stosie sprzętowym razem z adresami
procedur uwaga przy ich wywoływaniu z procedury przerwania)
" Zapamiętanie kontekstu: zawartość rejestrów rdzenia zostaje zapamiętana (na stosie 1-poziomowym -> C50 nie
obsługuje przerwań zanurzonych)
" Licznik rozkazów zostaje załadowany adresem procedury obsługi przerwania (ISR)
" Procesor wykonuje program procedury przerwania aż do napotkania instrukcji RETE lub RETI
I486
Budowa jednostki i486, na czym polega (opisać) adresowanie w trybie chronionym
Podział pamięci na segmenty oraz na strony, wbudowana pamięć podręczna, wbudowana jednostka operacji
zmiennopozycyjnych, integracja bloków operacji stało oraz zmiennoprzecinkowych pamięcią podręczną, współpraca
z zewnętrzną pamięcią
Tryb chroniony:
Rozszerzenie pamięci widocznej dla programu z maksymalnej pamięci fizycznej 4GB do pamięci wirtualnej 64TB,
mechanizmy ochrony pamięci oraz dostępu do urządzeń we/wy, składowe adresu to 16-bitowy selektor oraz 32-
bitowe przesunięcie
OGÓLNA CHARAKTERYSTYKA
" Konstrukcja z roku 1989
" Mikroprocesor zawierajÄ…cy mechanizmy wspomagajÄ…ce prace wielozadaniowa
" Mikroprocesor 32-bitowy
" Praca w trybach:
" Rzeczywistym (ang. real)
" Chronionym (wirtualnym) (ang. protected / virtual) z możliwością pracy w wirtualnym trybie 8086
" Możliwość zaadresowania do 4GB pamięci fizycznej
" Podział pamięci na segmenty oraz na strony
" Wbudowana pamięć podręczna (ang. cache)
" Wbudowana jednostka operacji zmiennopozycyjnych
13
ARCHITEKTURA
" Integracja bloków operacji stało oraz zmiennoprzecinkowych pamięcią podręczną
" Szerokie magistrale wewnętrzne, przetwarzanie potokowe
" Współpraca z zewnętrzną pamięcią w obu kierunkach przez bufory jądro procesora i pamięć pracują
asynchronicznie
" Seryjne przesłania po szynie do/z pamięci (ang.burst)
REJESTRY
" Zawartość rejestrów ogólnego przeznaczania zależna od aktualnie wykonywanego zadania ich zawartość
automatycznie przeładowywana w trakcie zmiany aktualnie wykonywanego zadania (zmiana kontekstu)
" Rozkazy wykonują operacje 1, 8, 16, 32 oraz 64 bitowe oraz operacje na polach bitowych od 1 do 32 bitów w
obrębie rejestrów ogólnego przeznaczenia
" Rejestry segmentowe umożliwiają jednoczesny dostęp do 6 segmentów pamięci (każdy do 4GB); dwa z nich
umożliwiają dostęp do kodu programu i stosu; rejestry deskryptorów nie są dostępne programowo i są
automatycznie ładowane podczas przeładowania selektora
" Zależnie od trybu pracy zawartość rejestrów segmentowych jest różnie interpretowana; w trybie rzeczywistym
segmenty maja długość 64KB; w trybie chronionym dowolna d4ugość a* do rozmiaru ca4ej pamięci
" Wskaznik rozkazów zawiera przesuniecie (ang. offset) nast2pnej do wykonania instrukcji. Przesuniecie jest
liczone wzgl2dem segmentu CS
ORGANIZACJA PAMIECI
" Pamięć podzielona jest na bajty, słowa (dwa bajty w kolejnych komórkach) oraz podwójne słowa (cztery bajty o
kolejnych adresach)
o Dodatkowo pamięć może by. podzielona na zmiennej ale określonej długości segmenty, które mogą być
wymiatane na dysk i współdzielone miedzy zadaniami
o Dodatkowo pamięć jest dzielona na 4kB strony
" Segmentacja jest użyteczna dla programistów użytkowych (logiczny podział na moduły), stronicowanie dla
programistów systemowych (optymalizacja wykorzystania fizycznej pamięci operacyjnej)
o W trybie rzeczywistym adres fizyczny liczony jest z zawartości przesuniętego rejestru segmentowego oraz
wartości przesunięcia (maksymalnie 1MB pamięci fizycznej); jest to tryb procesora po włączeniu zasilania
(niemal identyczny z praca procesora 8086)
o W trybie chronionym wyróżnia się przestrzenie adresowe:
Logiczna (wirtualna),
Liniowa
Fizyczna (maksymalnie 4GB pamięci fizycznej i 64TB pamięci wirtualnej!)
ORGANIZACJA PAMIECI TRYBY
Tryb rzeczywisty
" Pamięć podzielona jest na stałej długości segmenty po 64kB
" Na zawartości segmentów można dowolnie wykonywać operacje odczytu, zapisu lub wykonania kodu
" Segmenty mogą na siebie zachodzić; fizyczna komórka pamięci może posiadać 2 różne adresy logiczne
" Adresy od 00000H do 003FFH są zarezerwowane na tablice wektorów przerwań
" Adresy FFFFFFF0F do FFFFFFFFH zarezerwowane sÄ… dla inicjacji systemu
" Stronicowanie nie jest dozwolone w trybie rzeczywistym
Tryb chroniony
" Rozszerzenie pamięci widocznej dla programu z maksymalnej pamięci fizycznej 4GB do pamięci wirtualnej 64TB
(2^46)
14
" Mechanizmy ochrony pamięci oraz dostępu do urządzeń we/wy
" Praca w trybie wirtualnym 8086 umożliwiająca wielozadaniowe uruchamianie programów utworzonych dla
procesora 8086
" Składowe adresu to 16-bitowy selektor oraz 32-bitowe przesunięcie
" Stronicowanie pracuje na adresie liniowym powstałym na skutek segmentacji
SEGMENTACJA
" Segmentacja służy do enkapsulacji regionów pamięci np. kod wykonywalny programu powinien być zawarty w
jednym segmencie
" Informacja o segmencie zawarta jest w 8-bajtowej strukturze danych zwanych deskryptorem
" Wszystkie deskryptory przechowywane są w tablicach obsługiwanych bezpośrednio przez mikroprocesor
" Tablice Global Descriptor Table, Local Descriptor Table i Interrupt Descriptor Table; każda zawiera od 1 do
8192 8-bajtowe descryptory; najstarszych 13 bitów selektora stanowi indeks w odpowiedniej tablicy
deskryptorów
" Każda tablica ma z sobą związany rejestr (GDTR, LDTR i IDTR) zawierający informacje o fizycznym adresie
bazowym i rozmiarze odpowiedniej tablicy; wyjątkiem LDTR będący selektorem do GDT z informacja o
położeniu LDT
" Rozmiar pamięci wirtualnej: 2*(2^13)*(2^32) = 2^46 (lokalna/globalna pamięć * liczba segmentów * mak.
Rozmiar segmentu)
" GDT zawiera informacje dostępne dla wszystkich zadań w systemie (zadanie program wykonywany
niezależnie od innych (lub o ściśle zdefiniowanych powiązaniach)
" LDT zawiera informacje widoczne wyłącznie dla aktualnie wykonywanego zadania segment pamięci może
być dostępny wyłącznie, gdy jego deskryptor znajduje się w GDT lub LDT
" IDT zawiera deskryptory wskazujące na miejsca w pamięci zawierające procedury obsługi 256 przerwań
" Rejestry segmentowe zawierające selektory posiadają pamięć umożliwiającą zapamiętanie wszystkich 8
bajtów odpowiedniego deskryptora
DESKRYPTORY
" Deskryptor zawiera atrybuty wskazywanego obszaru pamięci liniowej
" Deskryptory niesystemowe zawierają kod programu lub dane; zawierają informacje czy segmenty danych można
zapisywać, czy segmenty kodu można odczytywać i czy segment danych znajduje się poniżej czy powyżej adresu
bazowego
DESKRYPTORY SYSTEMOWE
" Deskryptor LDT wskazuje na segmenty w pamięci zawierajce tablice LDT
" Deskryptor TSS (Task State Segment) TSS zawiera kontekst zadania (wszystkie rejestry) oraz pola Å‚Ä…czÄ…ce
umożliwiające zagnieżdżanie zadań; rejestr TR zawiera selektor wskazujący na TSS aktualnego zadania
" Deskryptory bram (gate) używane w celu kontroli dostępu do punktów wejścia do segmentów kodu; kontrola
dostępu umożliwia sprawdzenie uprawnień do wykonania kodu w segmentach użytkowników i systemu
operacyjnego; różne typy deskryptorów bram:
o call (używane do zmiany poziomu dostępu),
o task (używane do przełączania zadań),
o interrupt (obsługa przerwań + blokada przerwań)
o trap (obsługa przerwań, ale bez blokady przerwań)
INICJALIZACJA - PRZEJSCIE DO TRYBU CHRONIONEGO
" Procesor po sygnale RESET znajduje siÄ™ w trybie rzeczywistym
" Inicjalizacja wymaga, aby GDTR oraz IDTR pokazywały na poprawne GDT i IDT; IDT musi zawierać co najmniej 32
deskryptory (256 bajtów); GDT musi zawierać deskryptory dla inicjującego segmentu danych oraz kodu
15
" GDT zawiera deskryptor segmentu kodu i danych/stosu każdy o długości 4GB na poziomie ochrony 0
" Przełączanie trybów następuje poprzez ustawienie bitu PE w CR0 instrukcja MOV CR0, R/M; następnie wykonuje
się między segmentowy skok JMP w celu załadowania CS oraz finalnie ładuje wartości selektorów do rejestrów
segmentowych
STRONICOWANIE
" Podział na strony nie ma odniesienia do podziału programu na moduły stałej długości strona to tylko fragment
modułu kodu lub danych
" Tylko niewielka liczba stron programu musi jednocześnie przebywać w pamięci nie musi to być cały segment
" Stronicowanie przekształca adres liniowy na adres fizyczny i jest dwupoziomowe: katalog tablic stron i tablice
stron; każda z tych struktur zajmuje jedna 4kB stron2
" Rejestr CR3 zawiera 20 starszych bitów rejestru bazowego katalogu tablic stron
" Rejestr CR2 zawiera 32-bitowy adres liniowy, który spowodował niepowodzenie dostępu do strony
" Tablice stron same są stronami i mogą być wymiatane na dysk
STRONICOWANIE - POLA KATALOGU TABLIC I TABLICY STRON
Pola wpisu w katalogu tablic stron i tablicy stron:
" 20 starszych bitów to adres bazowy tablicy stron lub strony
" OS RESERVED do swobodnego wykorzystania przez system operacyjny np. do wyznaczania strony najdawniej
używanej
" P (Present) czy pole tablicy wskazuje na stronę; jeżeli nie pole może być swobodnie wykorzystane przez OS
" A (Access ) ustawiany automatycznie przez procesor podczas dostępu (odczyt lub zapis) do wskazywanej
strony
" D (Dirty) ustawiany automatycznie przed zapisem do wskazywanej strony; niezdefiniowane zachowanie dla
katalogu tablic stron
" PWT nadzoruje strategie współpracy z pamięcią podręczną drugiego poziomu
" PCD nadzoruje współpracę z pamięcią notatnikowa na poziomie strony
Mechanizmy ochrony podczas stronicowania pracuje na 2 poziomach:
" Użytkownika dla segmentów o poziomie ochrony 3
" Administratora dla segmentów na poziomie 0, 1 i 2; w ustalaniu zasad ochrony współdziała również bit WP z
rejestru flagowego
STRONICOWANIE - OPIS
Podział segmentów na strony pozwala na zapisanie segmentu niekoniecznie w postaci ciągłej. Poszczególne jego
strony zapisywane są w nieobsadzone 4kB obszary pamięci dysponowanej.
Stronicowanie powoduje oczywiście wprowadzenie dodatkowego etapu przy adresacji. Mianowicie przeliczenie
adresu logicznego na fizyczny. Proces przeliczania powoduje wydłużenie czasu realizacji dostępu, a także narzuca
wymogi na posiadanie dodatkowego obszaru pamięci operacyjnej, gdzie znajduje się przewodnik po stronach. Są
to tak zwane tablice translacji (struktura dwupoziomowa) umożliwiające przeliczenie adresu liniowego na fizyczny.
Aby przeliczyć adres konieczne są kontakty z tzw. katalogiem tablic i indywidualną tablicą stron. Należy pamiętać, że
każde zadanie może (nie musi) dysponować własnymi tablicami translacji. Adres bazowy tablicy wyższego rzędu (tzw.
katalog tablic) zawarty jest w rejestrze CR3.
Inicjacja stronicowania to po prostu ustawienie bitu PG w rejestrze CR0 (rozkaz LMSW nie może być w tym
przypadku użyty, ponieważ ma on dostęp tylko do młodszego słowa CR0, a bit PG znajduje się w starszym słowie).
Oczywistym jest, że należy przynajmniej częściowo mieć przygotowaną tablicę translacji, zapisaną wartość w rej. CR3,
a samo przeÅ‚Ä…czenie nie może spowodować zmiany adresu, tzn. przeskoku µP w inne miejsce. NastÄ™pujÄ…cy po
ustawieniu bitu PG proces translacji musi spowodować przejście z adresu (jest to od tego momentu adres liniowy) na
ten sam adres fizyczny. Oznacza to, że przełączenia dokonujemy na tzw. stronie transparentnej.
Ustawienie bitu PG nie może nastąpić wcześniej niż przejście do trybu wirtualnego (możemy uczynić to
równocześnie). Pierwszą instrukcją po ustawieniu PG musi być skok (najczęściej do następnej lokacji). Wycofanie się
ze stronicowania to wyzerowanie bitu PG (tryb wirtualny dalej aktualny). Możliwe jest oczywiście równoczesne
16
przejście w tryb rzeczywisty z wyłączeniem stronicowania. Operacja ta musi być zrealizowana także na stronie
transparentnej.
Gdyby µP przy translacji każdego adresu (kodu, danych i stosu) siÄ™gaÅ‚ dwukrotnie do tablic translacji, dziaÅ‚anie takie
nie miaÅ‚oby sensu (kilkakrotne spowolnienie pracy µP). Dlatego też dysponuje on wewnÄ™trznÄ…, szybkÄ… pamiÄ™ciÄ…
asocjacyjną, w której zapisuje opisy ostatnio używanych stron. Jeżeli przykładowo pamięć zawiera 128 pozycji, to
można zapamiÄ™tać sposób translacji obszaru o rozmiarze 512kB. µP na poczÄ…tku translacji szuka oczywiÅ›cie opisów
stron w pamięci asocjacyjnej, a dopiero potem sięga do tablic zewnętrznych.
Oczywistym jest, że po takim kontakcie uzupełnia pamięć asocjacyjną ewentualnie usuwając z niej opisy stron
najdawniej używanych (gdy pamięć jest peÅ‚na ). W przypadku, gdy podczas wykonywania instrukcji µP stwierdzi
równocześnie błąd związany z segmentacją i stronicowaniem, to pierwszy zgłaszany jest błąd segmentacji, a po jego
obsłudze i ponowieniu wykonania instrukcji zgłaszany jest stan wyjątkowy błędu stronicowania. W tym przypadku
rejestr CR2 podaje nam błędny adres liniowy, który spowodował ten wyjątek. Wyjątek stronicowania ma numer 14 i
umieszcza na stosie dodatkowe informacje o szczegółowej przyczynie.
PAMIEC NOTATNIKOWA (CACHE)
" Cztery bloki pamięci po 2kB każdy; każdy blok podzielony na 128 16- bajtowych zestawów
" Z każdym blokiem pamięci związany blok katalogu tu przechowywane 21- bitowe adresy pamięci fizycznej,
której lustrem jest zestaw oraz bit znacznika i 3 bity LRU
" Wszystkie dane różniące się na 21 bardziej znaczących bitach
" Odwzorowywane na 4 zestawy; bity LRU modyfikowane są podczas operacji dostępu do pamięci tak, aby
wskazywały na najdawniej używany zestaw; w przypadku chybienia dane zapisywane są do zestawu najdawniej
używanego
" Włączenie mechanizmu pamięci notatnikowej oznacza, ze procesor zawsze odczytuje dane z pamięci w porcjach
po 16 bajtów w szybkich operacjach transferów blokowych
" W przypadku zmiany danej znajdującej się w pamięci notatnikowej zmieniana jest jednocześnie pamięć
notatnikowa jak i pamięć główna
" Wbudowane mechanizmy śledzenia zmian pamięci w przypadku dostępu do niej urządzeń innych niż procesor
" Wbudowane mechanizmy współpracy z zewnętrzną pamięcią drugiego poziomu
Mechanizm segmentacji: tłumaczy adres wirtualny na liniowy
Mechanizm stronicowania: tłumaczy adres liniowy na fizyczny
Adresowanie wirtualne (translacja adresu logicznego na liniowy)
Segment jest wybierany za pomocÄ… 16-bitowego selektora. Selektor wskazuje na deskryptor opisujÄ…cy segment.
Deskryptor jest umieszczony w tablicy deskryptorów. W deskryptorze jest zawarty adres początku segmentu.
W trybie chronionym rejestry segmentowe zawierają selektory, które wskazują na pole w tablicy deskryptorów. Ze
wskazanego element tablicy deskryptorów procesor pobiera 32-bitowy adres bazowy, który sumowany jest z
przesunięciem. Tak powstaje adres liniowy, który przywłączonym mechanizmie stronicowania zostaje poddany
transformacji na adres fizyczny.
W trybie rzeczywistym adres mają 20 bitów. Natomiast rjestry mają 10 bitów. Zatem by uzystać fizyczny adres
komórki pamięci zawartość rejestru segmentowego mnoży się razy 16 i dodaje przesunięcie OFFSET. Adres fizyczny
liczony jest z zawartości przesuniętego rejestru segmentowego oraz wartości przesunięcia (max 1MB pamięci
fizycznej)
Potokowe przewidywanie skoków przetwarzanie potokowe zwiększa wydajność mikroprocesora ale problemem
staje się z poleceniem przeniseienia sterowania zwłaszcza warunkowe. Polecenia te powodują zmianę
sekwencyjnego wykonywania poleceń programu
Strategie przewidywania skoków:
" Trywialna skok nie będzie wykonay
" Statyczna skok wstecz będzie wykonany, w przód nie
" Przewidywanie oparte na statystycznej analizie wykonania skoków
Pamięć cache łącznie z wyspecjalizowaną jednotką CPU używa się do przewidywania adresów skoków.
17
Cache pamięć podręczna to relatywnie mały obszar pamięci o krótkim czasie dostępu, w której przechowywana
jest kopia danych bądz programu z pamięci głownej
Zawartość rejestrów ogólnego przeznaczenia zależna jets od aktulanie wykonywanego zadania. Rozkaz wykonują
operacje 1, 8, 16, 32 oraz 64 bitowe oraz operacje na polach bitowych od 1 do 32b.
18
Wyszukiwarka
Podobne podstrony:
[ASK] Opracowanie zagadnień na egzamin w trakcie składaniaAlgebra opracowanie zagadnień na egzamin 2011 (1)unold, inżynieria oprograamowania, opracowane zagadnienia na egzaminOpracowane Zagadnienia Na Egzamin Na Fir Ue WroclawStrasburger,Termodynamika chemiczna i materiałów, opracowane zagadnienia na egzaminopracowanie zagadnień na bazystasieńko,wytrzymalosc I, opracowanie zagadnień na egzMikoekonomia zagadniania na egzamin tabelkaEkonomia Rozwoju Garbicz Opracowanie zagadnień do egzaminuZagadnienia na egzamin z Historii PolskiKartografia opracowanie pytań na egzaminMiędzynarodowa polityka społeczna ZAGADNIENIA NA EGZAMINmarketing miedzynarodowy zagadnienia na egzaminwięcej podobnych podstron