Cechy architektury von Neumanna
Cechy architektury von Neumanna
1. Wspólna pamięć do przechowywania zarówno rozkazów jak
i danych.
2. Pamięć jednowymiarowa, złożona z kolejno ponumerowanych
komórek o jednakowej wielkości.
3. Brak jawnego rozróżniania rozkazów i danych.
4. Brak jawnej specyfikacji typów danych.
5. Praca sekwencyjna - przed rozpoczęciem wykonywania kolejnego
rozkazu musi zostać zakończone wykonywanie rozkazu
chronologicznie poprzedniego. Każdy rozkaz określa jednoznacznie
adres następnego.
Szyna danych
Szyna wej/wyj
Progra-
Pamięć
Urządzeni
Mikro-
mowane
operacyj
Sterowanie
a wej/wyj
procesor
układy
Szyna adresowa
Szyna sterowania
Schemat blokowy mikrokomputera
Schemat blokowy mikrokomputera
Pentium II
L2
1,6 GB/s
Core
Cache
800 MB/s
AGP
Intel Pamięć
Akcelerator
800 MB/s
528 MB/s
grafiki
operacyjna
440 BX
Pamięć
karty
Tekstury
PCI
132 MB/s
Wej/wyj Wej/wyj Wej/wyj
Przykładowa struktura systemu z magistralą AGP
Układ arytmetyczno-logiczny (ALU)
Rejestr rozkazów,
Zespół
dekoder i układ
rejestrów
Szyna danych
sterujący
Multiplekser
Rejestr instrukcji Akumulat
Zespół rejestrów
ogólnego
Dekoder
przeznaczenia
Rejestr bitów
Licznik rozkazów
ALU
warunków
(znaczników)
Układ
Układ
sterujący
realizujący
ą
operację ą1
ą
ą
Szyna adresowa
Szyna sterowania
żł
Podstawowe zespoły funkcjonalne mikroprocesora
TERMINATOR TERMINATOR
Magistrala systemowa we / wy
ADAPTER ADAPTER
ADAPTER
MIKROPROCESOR
KLAWIATURA
MONITOR
DYSK
System z interfejsem typu "wspólna szyna"
Typy szyn
Typ Szybkość transmisji
Szerokość
Możliwość podłączenia
Szyny lub szerokość pasma
szyny
ISA 2,5 MB/s, 8 MHz 16 bitów Wszystkie rodzaje kart rozszerzających.
Local
Głównie karty graficzne i kontrolery
132 MB/s, 33 MHz 32 bity
Bus
HDD.
PCI 132 MB/s, 33 MHz 32 bity Wszystkie rodzaje kart rozszerzających.
PCI 2.1 264 MB/s, 33 MHz 64 bity Wszystkie rodzaje kart rozszerzających.
VMC 130 MB/s 16 i 32 bity Karty graficzne i video.
VAFC 150 MB/s 0d 8 do 32 bitów Karty graficzne i video.
266 MB/s lub 532 MB/s, 66 32 bity (128
AGP
Karty graficzne i video.
MHz / 100 MHz bitów)
Tabelka obrazująca tryby działania magistrali AGP:
Podwojenie prędkości w porównaniu z PCI w wyniku podwojenia
AGP 1x częstotliwości magistrali. Należy pamiętać, że podwojenie dotyczy
wartości maksymalnych, w praktyce wyniki są niższe.
W porównaniu z trybem 1x do przesyłania danych wykorzystuje się
również opadające zbocze sygnału zegara, co daje nam maksymalną
AGP 2x przepustowość na poziomie 528 MB/s. To czy karta będzie pracować
w trybie 2x zależy od producenta i modelu. Tak jak w poprzednim
wypadku 528 to wynik maksymalny.
Ten dość przyszłościowy tryb przełamuje barierę 528 MB/s dzięki
AGP 4x zwiększeniu częstotliwości magistrali AGP z 66 na 100 MHz. Pozwala
to na osiągnięcie przesyłów rzędu 800 MB/s.
Podział pamięci półprzewodnikowych
Podział pamięci półprzewodnikowych
Pamięci półprzewodnikowe
stosowane w systemach
mikroprocesorowych
Pamięci o dostępie
Pamięci stałe
bezpośrednim (RAM)
Pamięci programowane
SRAM
przez producenta
(ROM) NV SRAM
Statyczne
Pamięci programowane
jednokrotnie (PROM)
RD RAM
Pamięci programowane
wielokrotnie
SD RAM
(EPROM) i (E2PROM)
FPM RAM
EDO RAM
BEDO RAM
Dynamiczne
1 D0...D7
Bank pamięci
Układ wyboru
Dekoder adresów
zawierający mniej
banku pamięci
A1...A19
znaczące bajty
A1...A19
Multipleksowana
A0
szyna adresów i
AD8...AD15
AD0...AD7
danych
A1...A19
BHE
2 D8...D15
Bank pamięci
Układ wyboru
Dekoder adresów
zawierający
banku pamięci
A1...A19
bardziej znaczące
bajty
Przykładowa organizacja pamięci w systemie mikroprocesorowym
8 7
15
Rejestry ogólnego przeznaczenia 0
AH AX AL
Akumulator
Rejestr bazowy
BH BX BL
Rejestr zliczający CH CX CL
Rejestr danych
DH DX DL
Rejestry adresowe
15 0
Wskaznik rozkazu
IP
Wskaznik wierzchołka stosu
SP
Wskaznik bazy BP
Indeks zródła
SI
Indeks celu
DI
Rejestry segmentowe
15 0
CS
Segment kodu programu
Segment stosu SS
DS
Segment danych
Segment dodatkowy
ES
15 0
F
Rejestr znaczników (flag)
Generacja adresu fizycznego
Generacja adresu fizycznego
15
0
0 0 0 0 Przemieszczenie Adres efektywny
15
0
Adres bazowy segmentu
Segment 0 0 0 0
"
Adres fizyczny
20 bitowy
Rejestry ogólnego przeznaczenia służą głównie do przechowywania wyników
Rejestry ogólnego przeznaczenia
pośrednich, ich zawartości mogą być argumentami większości rozkazów:
AX - akumulator - niektóre rozkazy dotyczące tego rejestru wykonują się szybciej niż
AX - akumulator
na innych rejestrach ogólnych lub są o 1 bajt krótsze.
BX - rejestr bazowy - dodatkowo może być wykorzystany do tzw. adresowania
BX - rejestr bazowy
bazowego - zawiera wówczas przesunięcie (OFFSET) argumentu.
CX - rejestr zliczający lub licznikowy - może być wykorzystywany w rozkazach jako
CX - rejestr zliczający licznikowy
licznik wykonań - jest wówczas zmniejszany o 1 za każdym wykonaniem i jego
zawartość podlega badaniu, czy nie uległa wyzerowaniu.
DX - rejestr danych - jako jedyny może być wykorzystywany do adresowania
DX - rejestr danych
obiektów w przestrzeni adresowej wej/wyj (portów) w rozkazach wej/wyj, a także
w rozkazach o argumentach lub wynikach długości większej niż jedno słowo (np.
rozkazy mnożenia lub dzielenia).
Rejestry adresowe służą głównie do przechowywania adresów względnych
Rejestry adresowe
(OFFSET), chociaż mogą być też wykorzystywane jako rejestry robocze :
IP - wskaznik rozkazu (ang. instruction pointer), zawiera zawsze adres względny
IP - wskaznik rozkazu
(względem początku segmentu określonego przez zawartość rejestru CS) aktualnie
pobieranego do wykonania rozkazu, rejestr ten stanowi z punktu widzenia
programisty (wraz z rejestrem CS) część licznika rozkazów; rejestr IP nie może
być zmieniany przez program.
SP - wskaznik wierzchołka stosu - zwykle zawiera adres względny (względem
SP - wskaznik wierzchołka stosu
początku segmentu określonego przez zawartość rejestru SS) wierzchołek stosu,
tzn. adres ostatniego słowa odłożonego na stosie.
BP - rejestr wskaznika bazy - zwykle zawiera adres względny (względem początku
BP - rejestr wskaznika bazy
segmentu określonego przez zawartość rejestru SS) parametrów odłożonych na
stosie (dla procedur w językach wysoko poziomowych); rejestr BP może być
wykorzystany także do innych celów.
SI - rejestr indeksu zródła (miejsca, z którego pobierane są dane w operacjach
SI - rejestr indeksu zródła
przesyłania danych) - zwykle zawiera adres danych względem początku segmentu
określonego zawartością rejestru DS; rejestr SI wykorzystywany jest do tzw.
adresowania indeksowego oraz w rozkazach łańcuchowych (operacjach na ciągach
znaków).
DI - rejestr indeksu celu - zwykle zawiera adres danych względem początku
DI - rejestr indeksu celu
segmentu określonego zawartością rejestru DS; rejestr DI wykorzystywany jest do
tzw. adresowania indeksowego oraz w rozkazach łańcuchowych - w tym przypadku
jednak zawiera adres względem początku segmentu określonego zawartością
rejestru ES.
Rejestry segmentowe służą do przechowywania wartości (SEGMENT)
Rejestry segmentowe
określających adresy początkowe segmentów:
CS - rejestr segmentu kodu programu określa adres początku segmentu używany w
CS - rejestr segmentu kodu
przypadku wszystkich dostępów do pamięci z adresowaniem względnym za
pomocą rejestru IP, tzn. pobierania rozkazów. Z punktu widzenia programisty
rejestr CS razem z rejestrem IP tworzy licznik rozkazów mikroprocesora
(CS:IP).
SS - rejestr segmentu stosu programu określa adres początku segmentu używany
SS - rejestr segmentu stosu programu
w przypadku wszystkich dostępów do pamięci z adresowaniem względnym za
pomocą rejestru SP lub BP.
DS - rejestr segmentu danych określa adres początku segmentu używany
DS - rejestr segmentu danych
w przypadku wszystkich dostępów do pamięci danych (np. za pomocą rejestrów
BX, SI, DI lub za pomocą adresu podanego bezpośrednio w rozkazie).
ES - rejestr segmentu danych określa adres początku segmentu używany
ES - rejestr segmentu danych
w przypadku wszystkich dostępów do pamięci danych w rozkazach łańcuchowych.
X X X X OF DF IF TF SF ZF X AF X PF X CF
Nadmiar
(ang. Overflow)
Kierunek
(ang. Direction)
Maska przerwań
(and. Interrupt enable)
Maska przerwań po
każdym rozkazie (ang. Trap enable)
Wskaznik ujemnego wyniku
(ang. Sign)
Wskaznik zerowego wyniku
(ang. Zero)
Przeniesienie pomocnicze
(ang. Auxillary curry)
Wskaznik parzystości (ang. Parity)
Przeniesienie (ang. Curry)
Wskazniki określające sposób działania komputera
Wskazniki określające sposób działania komputera
TF ustawienie na 1 powoduje przerwania nr 3, z jednoczesnym zgaszeniem TF,
po wykonaniu jednego rozkazu (wykorzystywany głównie przez debugery);
IF ustawienie na wartość 1 zezwala na przyjmowanie przerwań zewnętrznych,
ustawienie na 0 powoduje zablokowanie przyjmowania przerwań
zewnętrznych za wyjątkiem przerwania NMI;
DF ustawienie na 1 powoduje, że zawartość rejestrów DI oraz SI przy
wykonywaniu rozkazów łańcuchowych będzie zmniejszana, natomiast dla
DF=0 będzie zwiększana.
Wskazniki ustawiane w wyniku wykonania różnych rozkazów
Wskazniki ustawiane w wyniku wykonania różnych rozkazów
CF wskaznik przeniesienia globalnego, zmieniany rozkazami arytmetycznymi
i przesunięć, zerowany rozkazami logicznymi;
OF wskaznik nadmiaru, zmieniany rozkazami arytmetycznymi i zerowany
rozkazami logicznymi; flaga ta jest zmieniana również rozkazami
przesunięć, których drugi argument jest równy 1;
SF wskaznik znaku (ujemnego wyniku), zmieniany rozkazami arytmetycznymi
i logicznymi;
ZF wskaznik zerowego wyniku, zmieniany rozkazami arytmetycznymi
i logicznymi;
PF wskaznik parzystej liczby jedynek w zapisie binarnym wyniku, zmieniany
rozkazami arytmetycznymi i logicznymi;
AF wskaznik przeniesienia pomocniczego (z bitu 3 na 4) ustawiany przy
wykonywaniu rozkazów arytmetyki dziesiętnej.
Organizacja pamięci
Organizacja pamięci
Największy adres
FFFFFh
fizyczny
+ IP
Segment
kodu
64 KB
XXXX0h
+ SP lub BP
Segment
64 KB
stosu
Segment kodu (CS)
Segment
64 KB
danych
Segment stosu (SS)
Segment danych (DS)
Segment dodatkowy (ES)
Segment
64 KB
dodatkowy
1235h
MSB
LSB 1234h
IP3FE
Wektor 255
IP3FC
CS0
Wektor 0
IP0
00000h
8 bitów
Układy wej / wyj współpracujące z mikroprocesorem
Układy wej / wyj współpracujące z mikroprocesorem
Układy wej / wyj
Układy służące do
równoległego
przesyłania informacji
Proste układy typu:
Programowane
- rejestr zatrzaskowy;
układy wej / wyj
Podstawowe
- bufor.
uniwersalne
układy wej / wyj
Układy służące do
szeregowego
przesyłania informacji
Synchroniczne
Synchroniczne Asynchroniczne
i asynchroniczne
Układy współpracujące
z klawiaturami
i wskaznikami
Specjalizowane
układy wej / wyj
Układy sterujące
monitory ekranowe
Układy sterujące
dyski elastyczne
Programowane układy
sterowania przerwań
Układy
sterujące
Układy sterowania
kanału DMA
Programowane
liczniki
Inne
układy
Układy
wielofunkcyjne
Adresowanie pamięci i układów wej/wyj
Adresowanie pamięci i układów wej/wyj
Szyna adresowa
Szyna danych
Pamięć
MIKROPROCESOR
Szyna sterująca
Układy
wej/wyj
Jednolite
Jednolite
Szyna adresowa
Szyna sterująca
MIKROPROCESOR
Pamięć
16
Układy
wej/wyj
Rozdzielone
Rozdzielone
Akumulator
Szyna danych
Podstawowe sposoby obsługi układów wejścia-wyjścia
Podstawowe sposoby obsługi układów wejścia-wyjścia
Czy układ
Czy układ
wej/wyj 1
wej/wyj n
. . .
żąda obsługi?
żąda obsługi?
Mikroprocesor
Układ Układ Układ
wej/wyj 1 wej/wyj 2 . . . wej/wyj n
Obsługa programowa
Obsługa programowa
Mikroprocesor
Układ Układ Układ
wej/wyj 1 wej/wyj 2 . . . wej/wyj n
Żądanie INTR
przerwania
Przerwanie
Zgłoszenie przerwania
Zgłoszenie przerwania
Szyna adresowa
Pamięć
Szyna danych
Mikroprocesor
Układ Układ
wej/wyj . . . wej/wyj
HOLD
Przerwanie
DRQ
DMAC
Bezpośredni dostęp do pamięci
...
...
Przerwania
Przerwania
Sygnał żądania
przerwania
Realizacja
Kontynuacja
programu głównego
programu głównego
Skok do podprogramu
Powrót do programu
obsługi przerwania
głównego
Realizacja podprogramu
obsługi przerwania
Jednopoziomowa struktura przerwań
Jednopoziomowa struktura przerwań
Chwile odblokowania wejść sygnału żądania przerwania
Priorytet
Podprogram 3
IREQ3
Podprogram 2
IREQ2
Podprogram 1
IREQ1
Program
główny
Podprogram główny
Czas
IREQ2
IREQ3 IREQ3
IREQ2
IREQ1
IREQ1
Chwile pojawienia się sygnałów żądania przerwania
Wielopoziomowa struktura przerwań
Wielopoziomowa struktura przerwań
Priorytet
Podprogram 3
IREQ3
Podprogram 2
IREQ2
Podprogram 1
IREQ1
Program
główny
Podprogram główny
Czas
IREQ2
IREQ3 IREQ3
IREQ2
IREQ1
IREQ1
Przerwanie z drugiego
urządzenia zewnętrznego
Kontynuacja
Program główny
programu głównego
Przerwanie z trzeciego
urządzenia zewnętrznego
Podprogramu obsługi drugiego
Kontynuacja podprogramu
urządzenia zewnętrznego
obsługi drugiego urządzenia
zewnętrznego
Podprogramu obsługi trzeciego
urządzenia zewnętrznego
Fazy obsługi przerwania
Fazy obsługi przerwania
Pamięć
Mikroprocesor
Wskaznik
stosu
Licznik
rozkazów
.
Rejestry
.
ogólnego
Żądanie przeznaczenia
.
przerwania
Pamięć
Mikroprocesor
Zawartości licznika
rozkazów, rejestrów
ogólnego przeznaczenia
oraz słowa stanu
procesora zostają
przeniesiona na stos.
Potwierdzenie
.
przyjęcia
Rejestry
.
przerwania
ogólnego
przeznaczenia
.
Pamięć
Mikroprocesor
Podprogram
obsługi
przerwania
.
Rejestry
ogólnego
.
Wektor
przeznaczenia
.
(Adres podprogramu
obsługi przerwania
zostaje wprowadzony do
licznika rozkazów)
yródła przerwań w mikroprocesorze
yródła przerwań w mikroprocesorze
Przerwanie
zewnętrzne
Żądanie przerwania Żądanie przerwania
maskowalnego niemaskowalnego
INTR NMI
Przerwanie
wewnętrzne
Wewnętrzny układ sterownia przerwań
Przerwanie przy
Przerwanie Przerwanie dla
Przerwanie przy
nadmiarze INTO
programowe pracy krokowej
błędzie dzielenia
(OF=1)
INT n (TF=1)
Priorytety przerwań
Priorytety przerwań
Priorytet Rodzaj przerwania
Najwyższy Wewnętrzne
NMI
INTR
Najniższy Dla pracy krokowej
INT n - przerwanie programowe występujące bezpośrednio po zakończeniu wykonywania
2-bajtowego rozkazu INT n umieszczonego w programie. Parametr n wskazuje numer
wektora adresu przerwania w tablicy przerwań.
INT0 - przerwanie programowe występujące gdy znacznik OF=1 (wystąpiło przepełnienie
w operacjach poprzedzających wykonanie rozkazu INT0). Przerwanie to ma stały wektor n
= 4.
Przerwanie przy błędzie dzielenia przez - jest generowane jeżeli wartość wyliczonego ilorazu
przekracza dopuszczalny zakres (np. przy próbie dzielenia przez zero). Przerwanie to ma
stały wektor n = 0.
Przerwanie dla pracy krokowej - jest generowane po zakończeniu każdego rozkazu o ile
znacznik TF=1. Przerwanie to ma stały wektor n = 1. Dla TF=0 przerwanie jest
zablokowane.
NMI - przerwanie to nie może być programowo zablokowane. Jego wystąpienie jest
zapamiętywane w wewnętrznych układzie przerwań i zawsze akceptowane przez
mikroprocesor po zakończeniu wykonywania bieżącego rozkazu (o ile nie wystąpiło
przerwanie wewnętrzne o wyższym priorytecie. Przerwanie to ma stały wektor n = 2.
INTR - przerwanie zewnętrzne, maskowalne wprowadzane do mikroprocesora przez wejście
INTR . Może być ono zablokowane programowo rozkazem CLI, który zeruje znacznik
przerwania IF.
Wyszukiwarka
Podobne podstrony:
Architektura IBM PC na slajdy1Przeglad magistral w komputerach IBM PCCały twój PC na pendrivieMotak M Dzieło Architektury w mieście współczesnym na tle wybranych poglądów powojennych historykD Hanulanka, Sklepienia gwiaździste w architekturze późnego gotyku na ŚląskuPrzeglad chipsetow w plytach glownych komputerow IBM PC09 KomorkiMacierzyste9bw (2 slajdy na strone)Jak patrzec na dzielo architekturyArchitektura płyt głównych, standardy zasilania i typy obudów komputerów PCPytania do egzaminu dyplomowego na kierunku Urbanistyka i Architektura z przedmiotuwięcej podobnych podstron