Upload
hoangminh
View
229
Download
1
Embed Size (px)
Citation preview
Jacek Bartman Architektura komputerów
BUDOWA I DZIAŁANIE MIKROPROCESORA I. Budowa mikroprocesora
1. Schemat blokowy mikroprocesora 2. Jednostka arytmetyczno-logiczna 3. Rejestry
a) Rejestry mikroprocesorów Zilog Z80 i Intel 8086 b) Typy rejestrów c) Wykorzystanie stosu
4. Układ sterowania 5. Magistrale
II. Działanie mikroprocesora
1. Cykl rozkazowy mikroprocesora 2. Tryby adresowania 3. Wymiana danych z urządzeniami zewnętrznymi
a) Operacje ze sprawdzaniem gotowości urządzeń b) Wymiana z przerwaniami c) Wymiana z bezpośrednim dostępem do pamięci (DMA)
4. Tryby pracy 5. Procesory w komputerach personalnych
Jacek Bartman Architektura komputerów
BUDOWA MIKROPROCESORA
Mikroprocesor jest układem sekwencyjnym synchronicznym
µP wykonuje operacje na słowach.
Słowo – elementarna jednostka informacji przesyłana pomiędzy zespołami µP; długość słowa – 4, 8, 16, 32, 64 bity
Produkowane µP różnią się znacznie strukturą logiczną (organizacyjną). Zawierają jednak pewne, powtarzające się (podstawowe) podzespoły:
arytmometr (jednostka arytmetyczno –logiczna, ALU);
rejestry (układy pamięci);
wewnętrzne szyny łączące – magistrale;
układ sterowania i synchronizacji.
Mikroprocesor jest centralnym elementem systemu komputerowego wykonanym w postaci układu scalonego. Wykonuje on operacje arytmetyczne i logiczne na pobranych z zewnątrz (z innych bloków systemu komputerowego) danych według zadanego programu.
Jacek Bartman Architektura komputerów
Schemat blokowy mikroprocesora Większość mikroprocesorów zawiera następujące podzespoły:
jednostkę arytmetyczno-logiczną ALU
akumulator A
licznik rozkazów PC
zestaw rejestrów roboczych Ri
dostępnych programowo
niedostępnych programowo
rejestr rozkazów IR
wskaźnik stosu SP
układy sterowania CU
magistralę danych
magistrale adresową
magistralę sterującą
Jacek Bartman Architektura komputerów
Jednostka arytmetyczno-logiczna ALU
W trakcie wykonywania operacji arytmetycznych ALU tworzy znaczniki wyniku zwane flagami zapisując je w rejestru stanu (znaczników). Ich analiza pozwala programowi wychwycić sytuacje anormalne
Rozkazy mogą dotyczyć operacji dwuargumentowych:
– operacji arytmetycznych (dodawanie i odejmowanie) – operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.)
operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów)
ALU jest funkcjonalnie powiązane z jednym z rejestrów roboczych - akumulatorem
Blok arytmetyczno-logiczny (ALU) - układ realizujący zaprogramowane operacje arytmetyczne i logiczne, takie jak: suma logiczna, iloczyn logiczny, różnica symetryczna (suma modulo dwa), negacja słowa (uzupełnienie do 1), dodawanie arytmetyczne (binarne, dziesiętne), odejmowanie, porównywanie, przesunięcie słowa w lewo i w prawo o jeden bit. ; warunkuje moc obliczeniową µP
Jacek Bartman Architektura komputerów
Dostępne programowo rejestry procesora I8086
FLAGS
AX AX
BX
CX
DX
SI
DI
BP
SP
IP
CS
DS
ES
SS
15 0
7 15 0
Rejestr stanu(flagowy)
Rejestry ogólnego przeznaczenia
Rejestry wskaźnikowe i indeksowe
Rejestry segmentowe
Licznik rozkazów
AH AL
BH BL
CH CL
DH DL
Wskaźnik stosu
Wskaźnik bazy
Rejestr indeksowy przeznaczenia
Rejestr indeksowy źródła
Rejestr danych
Rejestr zliczający
Rejestr bazowy
Akumulator
Rejestr programu
Rejestr danych
Rejestr dodatkowy
Rejestr stosu
Rejestry podstawowe
Wszystkie te rejestry można traktować jako pary rejestrów 8-bitowych z niezależnym dostępem do części mniej (low) oraz bardziej znaczącej (high).
Poszczególne rejestry przyjmują wtedy nazwy: AL, AH, BL, BH, CL, CH, DL, DH.
Taka organizacja rejestrów pozwala na wykonywanie w prosty sposób zarówno operacji 8-bitowych, jak i 16-bitowych.
Dla wielu rozkazów szczególną funkcję pełni akumulator AX (lub AL). Rozkazy wykorzystujące rejestr AX (w przeciwieństwie do rozkazów wykorzystujących pozostałe rejestry) mają zwarty kod, a czas ich wykonania jest najkrótszy.
Jacek Bartman Architektura komputerów
Dostępne programowo rejestry procesora I8086
FLAGS
AX AX
BX
CX
DX
SI
DI
BP
SP
IP
CS
DS
ES
SS
15 0
7 15 0
Rejestr stanu(flagowy)
Rejestry ogólnego przeznaczenia
Rejestry wskaźnikowe i indeksowe
Rejestry segmentowe
Licznik rozkazów
AH AL
BH BL
CH CL
DH DL
Wskaźnik stosu
Wskaźnik bazy
Rejestr indeksowy przeznaczenia
Rejestr indeksowy źródła
Rejestr danych
Rejestr zliczający
Rejestr bazowy
Akumulator
Rejestr programu
Rejestr danych
Rejestr dodatkowy
Rejestr stosu
Mikroprocesor 8086 posiadają dwa rejestry wskaźnikowe i dwa indeksowe - wszystkie 16-bitowe. Mogą być one wykorzystane jako argumenty większości rozkazów arytmetycznych i logicznych.
SP jest to rejestr wskaźnikowy stosowany do adresowania danych w obrębie wydzielonego obszaru pamięci, zwanego segmentem stosu Rejestr SP jest modyfikowany przy standardowych operacjach prowadzonych z wykorzystaniem stosu.
Rejestr BP podobnie jak rejestr bazowy BX może być źródłem jednego ze składników (adresu bazowego) adresu efektywnego. Bywa też wykorzystywany podczas operacji niestandar-dowych np. przy pobieraniu parametrów przekazywanych przez stos.
Oba rejestry indeksowe SI, DI mogą wchodzić w skład sumy dającej w wyniku adres efektywny, z tym że po wykonaniu rozkazu wykorzystującego indeksowany tryb adresacji podlegają automodyfikacji (zwiększeniu/zmniejszeniu o jeden lub dwa).
Jacek Bartman Architektura komputerów
Dostępne programowo rejestry procesora I8086
FLAGS
AX AX
BX
CX
DX
SI
DI
BP
SP
IP
CS
DS
ES
SS
15 0
7 15 0
Rejestr stanu(flagowy)
Rejestry ogólnego przeznaczenia
Rejestry wskaźnikowe i indeksowe
Rejestry segmentowe
Licznik rozkazów
AH AL
BH BL
CH CL
DH DL
Wskaźnik stosu
Wskaźnik bazy
Rejestr indeksowy przeznaczenia
Rejestr indeksowy źródła
Rejestr danych
Rejestr zliczający
Rejestr bazowy
Akumulator
Rejestr programu
Rejestr danych
Rejestr dodatkowy
Rejestr stosu
Rejestr IP (instruction pointer) łącznie z rejestrem segmentowym CS adresuje kolejne rozkazy przeznaczone do wykonania.
IP wskazuje adres względem początku segmentu programu (offset).
Jacek Bartman Architektura komputerów
Dostępne programowo rejestry procesora I8086
FLAGS
AX AX
BX
CX
DX
SI
DI
BP
SP
IP
CS
DS
ES
SS
15 0
7 15 0
Rejestr stanu(flagowy)
Rejestry ogólnego przeznaczenia
Rejestry wskaźnikowe i indeksowe
Rejestry segmentowe
Licznik rozkazów
AH AL
BH BL
CH CL
DH DL
Wskaźnik stosu
Wskaźnik bazy
Rejestr indeksowy przeznaczenia
Rejestr indeksowy źródła
Rejestr danych
Rejestr zliczający
Rejestr bazowy
Akumulator
Rejestr programu
Rejestr danych
Rejestr dodatkowy
Rejestr stosu
Rejestry segmentowe wykorzystywane są do adresowania pamięci operacyjnej. Pamięć o maksymalnej wielkości 1 MB jest dzielona na logiczne segmenty nie większe niż 64kB. Adresy wewnątrz segmentu są co najwyżej dwubajtowe i mogą być generowane przez 16-bitowe rejestry np. SI, DI, BP, SP.
Rejestry segmentowe zawierają adresy początkowe segmentów
CS (code segment register) - rejestr segmentowy programu wskazuje segment programu, z którego aktualnie są pobierane kolejne rozkazy do wykonania
DS (data segment register) - rejestr segmentowy stosu wskazuje segment, w którym są zapamiętane zmienne używane w programie
ES (extra segment register) - rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych
SS (stack segment register) - rejestr segmentowy stosu wskazuje segment pamięci, w którym jest zdefiniowany stos.
Jacek Bartman Architektura komputerów
Rejestry – rejestr znaczników flagowych
Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości, ...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa sposoby:
ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania
(przetwarzania danych)
0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF
Znaczniki kontrolne: – TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po
wykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługi – IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie systemu
przerwań w procesorze (0 - procesor ignoruje przerwania) – DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu słów)
przy rosnących adresach (1) lub malejących adresach (0) – IOPL – Poziom ochrony instrukcji wejścia-wyjścia – NT - Znacznik zadania zagnieżdżonego
Znaczniki stanu: – CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości
słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie) – PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o wartości
jedynki – AF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na
liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady wyniku
– ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zero – SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze
znakiem - kod U2) – OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji
arytmetycznych (operacje liczb ze znakiem - kod U2)
Jacek Bartman Architektura komputerów
Rejestry ogólnego przeznaczenia
Rejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni akumulator
Akumulator - rejestr funkcjonalnie związany z ALU, przeznaczony do przechowywania jednego z operandów (argumentów) wykonywanej operacji oraz wyniku operacji (czasami wynik może być umieszczany w innym rejestrze). W mikroprocesorze może być kilka takich rejestrów.
Jacek Bartman Architektura komputerów
Rejestry – kontrola zawartości akumulator rejestr bazowy rejestr
zliczający rejestr danych
wskaźnik stosu
wskaźnik bazy
rejestr indeksowy źródła
rejestr indeksowy przeznaczenia
rejestr danych
rejestr dodatkowy
rejestr stosu
rejestr programu wskaźnik rozkazów
rejestr flagowy (znaczników)
Jacek Bartman Architektura komputerów
Wykorzystanie stosu Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu)
Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł:
informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąć
odczytujemy informacje w kolejności odwrotnej do ich zapisu
informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do pierwszej wolnej
Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi
Stos może być również zorganizowany sprzętowo przez wydzielenie w mikroprocesorze odpowiedniego zbioru rejestrów mogących pracować jako pamięć LIFO (rozwiązanie sprzętowe jest szybsze)
Adres Program główny
101 Instrukcja 102 Instrukcja 103 Call
Wywołanie podprogramu I (adres 104 na stos)
1002 Instrukcja 1003 Instrukcja 1004 Call
Wywołanie podprogramu II (adres 1005 na stos)
2001 Instrukcja 2002 Instrukcja 2003 Return
1005 Instrukcja 1006 Instrukcja 1007 Return
Powrót z podprogramu II (do adresu 1005
odczytanego ze stosu) 104 Instrukcja 105 Instrukcja 106 Instrukcja
Powrót z podprogramu I (do adresu 104
odczytanego ze stosu) 107 Instrukcja
lub
stos
stos
Jacek Bartman Architektura komputerów
Układ sterowania
Układ sterowania CU dekoduje zawartość rejestru rozkazów i generuje wewnętrzny sygnały sterujące zapewniające właściwy przebieg operacji zdefiniowanej kodem rozkazu
Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np. dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i przesunięć) W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi słów podawanych na wejścia sterujące układu ALU - układ sterowania.
Cechy takiego automatu to:
konieczność posiadania bardzo dużej liczby stanów dostosowanych do wymaganej liczby wykonywanych rozkazów;
konieczność zapewnienia synchronizacji pracy układu sterowania i wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji).
W praktyce realizowane są jako:
generatory sekwencyjne
układy mikroprogramowalne
Jacek Bartman Architektura komputerów
Magistrale
Adresowa
Danych
Sterująca
Jacek Bartman Architektura komputerów
Rozkazy
Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazu
Kod rozkazu:
musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w pierwszym bajcie (bajtach) kodu rozkazu
może zawierać operandy i/lub adresy operandów wykonywanych operacji
Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesora
Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w postaci kodów binarnych
Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesor
rozkazy przesłań
rozkazy arytmetyczne i logiczne
rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)
inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie chronionym)
Jacek Bartman Architektura komputerów
Cykl rozkazowy mikroprocesora
Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu
Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się cyklem rozkazowym (instrukcyjnym)
Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania argumentu) i wykonania rozkazu
Postać rozkazu określa, które podzespoły mikroprocesora będą brać udział w jego realizacji
Jacek Bartman Architektura komputerów
Cykl rozkazowy mikroprocesora
MA PC
IR MD
PC PC+1
DEKODOWANIE ROZKAZU
OPERACJE WEWNĘ- TRZNE
WYKONANIE ROZKAZU
FAZ
A P
OBI
ERA
NIA
RO
ZKA
ZU
FAZ
A W
YK
ON
YW
AN
IAR
OZK
AZ
U
wysłanie na magistralę adresową MA stanu licznika rozkazów PC wpisanie do rejestru rozkazów IR kodu operacji/rozkazu z magistrali danych MD zwiększenie przez układ sterowania CU o 1 stanu licznika rozkazów PC
generacja sekwencji sygnałów sterujących ewentualna modyfikacja stanu licznika rozkazów
określenie adresu pamięci lub układu we/wy operacja zapisu/odczytu do/z pamięci lub układu we/wy przebieg różny dla różnych rozkazów
Jacek Bartman Architektura komputerów
Cykl rozkazowy mikroprocesora Pa
mię
ć C
PU
POBRANIE ROZKAZU
WYSŁANIE ADRESU
ROZKAZU DEKODOWANIE
ROZKAZU
OBLICZANIE ADRESU
ARGUMENTU I
OBLICZANIE ADRESU
ARGUMENTU II WYKONANIE
ROZKAZU
OBLICZENIE ADRESU
PRZEZNACZENIA
ZAPIS WYNIKU
POBRANIE ARGUMENTU II
POBRANIE ARGUMENTU I
cykl pobrania rozkazu cykl pobrania argumentu I cykl pobrania
argumentu II cykl wykonania rozkazu
Jacek Bartman Architektura komputerów
Lista rozkazów
Program dla wszystkich standardowych mikrokomputerów jest w pełni uporządkowanym zbiorem rozkazów, które będą wykonane w porządku sekwencyjnym (z wyjątkiem rozkazów, które celowo zmieniają tę kolejność wykonania). Adres komórki pamięci obecnie wykonywanego rozkazu jest zawarty w liczniku rozkazów (PC).
Rozkaz typowych mikrokomputerów składa się z dwóch części:
kodu operacji, określającego jego działanie,
adresu (adresów) argumentów, określającego położenie w pamięci argumentów, na których mają być wykonywane operacje.
Na ogół w mikroprocesorach są realizowane trzy typy rozkazów:
manipulacji danymi;
wejścia/wyjścia;
sterowania wykonaniem programu.
Jacek Bartman Architektura komputerów
Lista rozkazów - rozkazy manipulacji danymi
MOV X, Y [Rejestr (X)] ← [Rejestr (Y)]
MOV X, AdrPam [Rejestr (X)] ← [Pamięć (Z)]
MOV AdrPam, X [Pamięć (Z)] ← [Rejestr (X)]
MOV X,Dana [Rejestr (X)] ← Dana
MOV AdrPam, Dana [Pamięć (Z)] ← Dana
ADD X, Y [Rejestr (X)] ←[Rejestr (X)] + [Rejestr (Y)]
ADD X, AdrPam [Rejestr (X)] ← [Rejestr (X)] + [Pamięć (Z)]
ADD X, ‘17' [Rejestr (X)] ← [Rejestr (X)] + Dana
Jacek Bartman Architektura komputerów
Lista rozkazów - Rozkazy wejścia/wyjścia
Rozkazy wejścia/wyjścia
IN X, Nr_Portu [Rejestr (X)] ← [Nr_Portu]
OUT Nr_Portu, X [Nr_Portu]←[Rejestr (X)]
Rozkazy sterujące wykonywaniem programu
JMP Tam [PC] ← AdrPam Tam
JMPZ Tutaj Jeśli (ostatni wynik = 0), to [PC] ← AdrPam Tutaj Jeśli nie, [PC] ←[PC] + 1
Jacek Bartman Architektura komputerów
Tryby adresowania
Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w
rejestrach
pamięci
kodzie rozkazu
Rozróżniamy następujące tryby adresowania (rozróżnia się co najmniej 19 trybów ale zostały one odpowiednio pogrupowane)
adresowanie bezpośrednie
adresowanie pośrednie
adresowanie względne
adresowanie bezwzględne
adresowanie indeksowe
Trybem adresowania nazywamy sposób określenia miejsca przechowywania argumentów rozkazu
Niech:
MOV a, b – oznacza przesłanie danych z ‘b’ do ‘a’
MOV a, [b] – oznacza przesłanie danych z miejsca którego adres zapisano w ‘b’ do ‘a’
Jacek Bartman Architektura komputerów
Wymiana danych z urządzeniami zewnętrznymi
Praca komputera wymaga wymiany danych pomiędzy jednostką centralna a urządzeniami zewnętrznymi.
Wymianę danych między urządzeniami zewnętrznymi a mikroprocesorem można realizować jako:
operacje z bezpośrednim sterowaniem przez mikroprocesor - przesyłana informacja przepływa przez rejestry procesora, który także steruje każdym krokiem realizacji operacji - są to operacje:
bezwarunkowe we/wy,
ze sprawdzeniem gotowości urządzeń zewnętrznych,
z przerwaniami,
operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim dostępem do pamięci - DMA) – procesor inicjuje wymianę a następnie przekazuje nadzór nad realizacją operacji innemu układowi (zarządcy magistrali).
Każde urządzenie zewnętrzne dołączone jest za pomocą interfejsu do wszystkich szyn mikrokomputera
Jacek Bartman Architektura komputerów
Operacje we/wy z bezpośrednim udziałem procesora
Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy realizacji której mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji za pomocą zestawu diod elektroluminescencyjnych.
Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana. Operacje te są stosowane np. przy współpracy z przetwornikiem A/C - procesor cyklicznie przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania zgłoszenia gotowości.
Przy realizacji operacji wejścia/wyjścia z przerwaniami, urządzenie we/wy wystawia sygnał z żądaniem obsługi co prowadzi do przerwania przez procesor obsługi programu głównego i przejście do podprogramu obsługi układu wejścia/wyjścia.
Jacek Bartman Architektura komputerów
Wymiana z przerwaniami
Przy obsłudze urządzeń zewnętrznych za pomocą przerwań należy zapewnić:
zapamiętanie stanu procesora występującego w chwili przyjęcia sygnału żądania przerwania;
identyfikację źródła sygnału przerwania (sygnały żądania przerwania mogą być generowane przez wiele urządzeń zewnętrznych) niezbędną do przekazania sterowania obsługi właściwemu podprogramowi;
określenie priorytetu przerwań w przypadku równoczesnego pojawienia się większej liczby sygnałów żądania przerwania;
ustalenie procedury postępowania dla przypadków, w których podczas obsługi przerwania zgłaszają się sygnały żądania przerwania od innych urządzeń zewnętrznych;
odtworzenie stanu procesora i powrót do realizacji przerwanego programu głównego.
INSTRUKCJA 1 INSTRUKCJA 2 INSTRUKCJA 3 INSTRUKCJA 4 INSTRUKCJA 11 INSTRUKCJA 12
INSTRUKCJA 5 INSTRUKCJA 6 INSTRUKCJA 7 INSTRUKCJA 8 INSTRUKCJA 9
RET 10
Program główny Zgłoszenie przerwania
Odtworzenie stanu rejestrów
procesora
Początek programu obsługi przerwania
Zapamiętanie stanu rejestrów procesora
Jacek Bartman Architektura komputerów
Wymiana z przerwaniami
Rozkaz n
Rozkaz n+1
Rozkaz n+2
Rozkaz n+3
Rozkaz n+4
Rozkaz n+5
zapamiętaj stan systemu
Wykonaj obsługę
przerwania
odtwórz stan systemu
Rejestry
Stos
Stos
Rejestry
Jacek Bartman Architektura komputerów
Wymiana z przerwaniami
Z punktu widzenia miejsca powstania przerwania można podzielić na:
zewnętrzne związane ze stanem urządzeń zewnętrznych (maskowalne),
wewnętrzne (np.: wystąpienie błędu)
Przerwania maskowalne można zablokować
Zadanie ustalenia kolejności obsługi urządzeń zewnętrznych generujących sygnały żądania przerwania rozwiązuje się przez nadanie tym urządzeniom odpowiednich priorytetów. Można to realizować zarówno programowo jak i sprzętowo.
W rozwiązaniu programowym mikroprocesor po sprawdzeniu rejestru przerwań przekazuje sterowanie do podprogramu odpowiadającego źródłu przerwania o najwyższym priorytecie.
Przy sprzętowej realizacji systemu przerwań każde urządzenie zewnętrzne ma odpowiadający mu podprogram obsługi umieszczony w określonym obszarze pamięci. Adres komórki pamięci zawierającej pierwszy rozkaz podprogramu obsługi przerwania tworzony jest na podstawie wektora adresu przerwania. Identyfikacja źródła przerwania odbywa się w ten sposób, że mikroprocesor po przyjęciu sygnału żądania przerwania generuje sygnał potwierdzenia przerwania IACK. W odpowiedzi na ten sygnał źródło przerwania wysyła na magistralę danych odpowiadający mu wektor adresu przerwania. Pobrany przez mikroprocesor (lub wyznaczony) wektor adresu przerwania jednoznacznie identyfikuje źródło przerwania i umożliwia przejście do odpowiadającego mu podprogramu obsługi.
Jacek Bartman Architektura komputerów
Wymiana z przerwaniami
Układ przerwań może być zorganizowany jako jedno- lub wielopoziomowy.
W jednopoziomowej strukturze przerwań nie ma możliwości zawieszenia realizowanego podprogramu przez sygnał żądania przerwania pochodzący od urządzenia o wyższym priorytecie
Czas
Priorytet
IRQ2
IRQ1
IRQ3 IRQ3
IRQ2
IRQ1
Jacek Bartman Architektura komputerów
Wymiana z przerwaniami
W wielopoziomowej strukturze przerwań urządzenie zewnętrzne o wyższym priorytecie ma możliwość przerwania realizowanego podprogramu obsługi urządzenia zewnętrznego o niższym priorytecie
Czas
Priorytet
IRQ2
IRQ1
IRQ3 IRQ3
IRQ2
IRQ1
Jacek Bartman Architektura komputerów
Wymiana z bezpośrednim dostępem do pamięci
Wymiana z bezpośrednim dostępem do pamięci umożliwia najszybsze przesyłanie danych między pamięcią a urządzeniami zewnętrznymi (np. dyskami lub monitorami ekranowymi).
Wymiana z bezpośrednim dostępem do pamięci odbywa się bez udziału mikroprocesora. Jego rolę w tym przypadku pełni specjalizowany układ wejścia/wyjścia, tzw. Sterownik DMA (ang. direct memory access controller DMAC ). Sterownik taki należy przygotować programowo, tzn. umieścić w odpowiednich jego rejestrach informacje niezbędne do planowanego przesłania danych (jak np. kierunek transmisji, liczbę słów, obszar pamięci, z którego będą pobierane dane lub do którego dane będą wysłane itp.).
Niezależnie od sposobu realizacji przy bezpośrednim dostępie do pamięci wymaga się, aby kontrolę nad magistralami na czas przesyłania przejął sterownik DMA.
W przypadku gdy ze sterownikiem DMA współpracuje wiele urządzeń zewnętrznych i kilka z nich jednocześnie żąda bezpośredniego dostępu do pamięci, pojawia się konieczność ustalenia priorytetu. Realizuje się to podobne jak w układach przerwań.
Jacek Bartman Architektura komputerów
Wymiana z bezpośrednim dostępem do pamięci Bezpośredni dostęp do pamięci realizować można przez:
blokowanie pracy mikroprocesora na pełny czas transmisji danych; mikroprocesor musi na czas transmisji między urządzeniami zewnętrznymi a pamięcią przerwać
realizację programu (praca DMA jako Master),
wymiana danych między urządzeniami zewnętrznymi a pamięcią odbywa się niejako „na raty” i zachodzi tylko w tych taktach zegarowych, w których mikroprocesor nie wykorzystuje magistrali systemowej (nie komunikuje się z pamięcią lub układem wejścia/wyjścia). Występuje tu więc równoległa praca mikroprocesora i sterownika (praca DMA jako Slave).
wykradanie niektórych taktów zegarowych lub całych cykli maszynowych mikroprocesora i wykorzystywanie ich do przesłania w trybie DMA;
Szyna adresowa
PAMIĘĆ OPERACYJNA
STEROWNIK DMA
I/O
MEMR MEMW MEMR MEMW IOR IOW
IOR IOW
CPU
HOLD
Inicjowanie operacji
Określa: • wielkość bloku do transmisji • sposób transmisji (blokowa,
pojedynczymi słowami, na żądanie) • adres pierwszej komórki bufora
pamięci • rodzaj operacji (zapis, odczyt)
zawieszenie
Jacek Bartman Architektura komputerów
Tryby pracy DMA
DMA jako Slave
DMA jako Master
Sterownik DMA Pamięć We -Wy
Programowanie lub badanie stanu sterownika
Sterowanie
Dane
Adres
µ P
Sterownik DMA Pamięć We -Wy
Przesyłanie informacji
Sterowanie
Dane
Adres
µ P
Parametry charakteryzujące procesor
Podstawowymi parametrami wpływającymi na wydajność
procesora (szybkość wykonywania operacji przez procesor) są:
Liczba rdzeni
Szybkość – (częstotliwość taktowania) określana częstotliwością zegara ( mierzona w MHz)
Szerokość magistrali danych (liczba przesyłanych jednocześnie bitów), (8, 16, 32, 64 bity)
Częstotliwość taktowania magistrali danych (Szybkość przekazywania danych do urządzeń wejściowych i wyjściowych)
Wielkość pamięci CACHE pierwszego poziomu (L1) i drugiego poziomu (L2)
Wewnętrzna konstrukcja oraz lista rozpoznawanych i wykonywanych instrukcji elementarnych
Jacek Bartman Architektura komputerów
Ranking procesorów wg opłacalności 19.12.2011
Jacek Bartman Architektura komputerów
Ranking procesorów wg wydajności 19.12.2011
Jacek Bartman Architektura komputerów
Podstawowe parametry procesora Intel Core
Jacek Bartman Architektura komputerów
Podstawowe parametry procesora Intel Core i5 mobile
Jacek Bartman Architektura komputerów
Procesory AMD
Jacek Bartman Architektura komputerów
Jacek Bartman Architektura komputerów
Istotne pojęcia x86 to zbiorcze oznaczenie procesorów produkowanych przez firmę Intel oraz innych konkurujących
z nią firm które bazowały na wspólnej architekturze CISC. Do rodziny x86 zaliczamy wszystkie procesory Intela serii 8086, 286, 386, 386, 486, Pentium, Pentium II, Pentium III, Celeron, Pentium IV, Core 2 oraz procesory AMD: 5k86K5, 5k86SSA/5, Duron, Athlon, Opteron, Phenom . Architektura procesorów z rodziny x86 jest już obecnie znacznie przestarzała, ciągnie się za nią za nią wiele problemów związanych ze zgodnością wstecz - każdy nowy procesor musi być zdolny do wykonywania kodu, napisanego dla pierwszego z procesorów tej rodziny. Pierwotne procesory o architekturze CISC zostały zastąpione przez znacznie wydajniejsze konstrukcje, wykorzystujące wewnętrznie architekturę RISC.
CISC (Complex Instruction Set Computer) - architektura procesora wykorzystująca złożoną listę rozkazów. Charakterystyczne dla tego typu architektury jest to, że na wykonanie jednej instrukcji potrzeba więcej niż jednego cyklu zegara systemowego
RISC (Reduced Instruction Set Computer) - architektura procesora o uproszczonej liście rozkazów o stałej długości. W jednym cyklu zegarowym można zawsze wykonać co najmniej jedną instrukcję. U podstaw idei RISC leży dążenie do zwiększenia wydajności procesorów przy zastosowaniu tej samej technologii półprzewodnikowej. Dzięki rozbiciu przetwarzania rozkazu na kilka prostych etapów, które mogą być wykonywane przez stosunkowo proste i w znacznym stopniu autonomiczne jednostki, bardziej nadające się do zrealizowania w nowocześniejszej technologii niż złożona i bardziej związana struktura procesora CISC, łatwiej można skonstruować CPU z większą częstotliwością zegara taktującego. Dlatego procesory RISC są dużo wydajniejsze od procesorów CISC.
Jacek Bartman Architektura komputerów
Istotne pojęcia Przetwarzanie potokowe - rozbicie wykonywania pojedynczej instrukcji na kilka następujących po sobie faz
(pobieranie, dekodowanie, pobieranie argumentów, wykonanie instrukcji, zapis).
Wielopotokowość - umiejętność pobrania przez jednostkę wykonawczą kolejnej instrukcji przed zakończeniem wykonywania poprzedniego rozkazu. Oznacza to, że pojedynczy moduł może przetwarzać równocześnie co najmniej dwa potoki, będące w różnych stadiach realizacji.
Superskalarność - cechy architektury, które pozwalają na wykonanie co najmniej dwóch instrukcji jednocześnie. Superskalarność procesorów najczęściej uzyskuje się, zwielokrotniając liczbę jednostek wykonawczych.
SIMD (Single Instruction Multiple Data) - rozwiązanie umożliwiające wykonanie tej samej operacji arytmetycznej (mnożenie, dzielenie, dodawanie lub odejmowanie) na kilku parach operandów (liczbach) równocześnie.
RTC-(real time clock) zegar czasu rzeczywistego (z podtrzymaniem bateryjnym ), którego zawartość jest auto-matycznie przepisywana do pamięci komputera w chwili startu systemu.
CTC zegar systemowy wywołuje tzw .zegarowe przerwanie sprzętowe na linii IRQ0, które jest obsługiwane poprzez procedurę INT 08h. Licznik ten jest podstaw owym źródłem informacji o upływającym czasie, wykorzystywanym przez system operacyjny
Hyper Trading – tryb współbieżny wielowątkowy
Turbo Boost - w momencie, gdy nie wszystkie rdzenie procesora są wykorzystane, jeśli jeden z nich przejdzie w tryb głębokiego uśpienia - system może zwiększyć częstotliwość taktowania pozostałych rdzeni ponad częstotliwość domyślą. Dzięki temu szczególnie aplikacje jedno-wątkowe będą mogły pracować nieco szybciej niż na standardowej częstotliwości taktowania
Jacek Bartman Architektura komputerów
AMD
Jacek Bartman Architektura komputerów
AMD
AMD – K10 - Barcelona (4 rdzenie)