background image

PARAMETRY KOMPUTERÓW 
 
- moc 

obliczeniowa 

• 

MIPS 

• 

MFLOPS 

- szybkość transmisji danych do/z różnych urządzeń 
- niezawodność 

• 

MTBF 

- koszt 
- .... 
 

Szybkość mikroprocesorów 

 
W przypadku mikroprocesorów dodawanie nowych układów oraz zwiększanie 
szybkości wynikające ze zmniejszenia odległości między nimi poprawiało 
wydajność 4-krotnie w ciągu każdych 3 lat (prawo Moore’a).  
 
Aby wykorzystać potencjalne możliwości mikroprocesora, należy zapewnić jego  
„zasilanie” ciągłym strumieniem zadań (rozkazów). Dlatego projektanci 
procesorów wykorzystują coraz bardziej wymyślne rozwiązania jak: 

!"

przewidywanie rozgałęzienia (ang. branch prediction), 

!"

analiza przepływu danych, 

!"

spekulatywne wykonywanie rozkazów. 

 

Równowaga wydajności 

 
Podczas gdy moc procesorów rosła z zawrotną szybkością, rozwój innych 
krytycznych zespołów komputera był zbyt wolny. Powstała potrzeba znalezienia 
r ó w n o w a g i   w y d a j n o ś c i :  
dostosowanie organizacji i architektury w celu skompensowania niezgodności 
między możliwościami różnych zespołów komputera. 
 
P r o b l e m   k r y t y c z n y : interfejs między procesorem a pamięcią główną. 
 
 
 
 
 
 

background image

Przykładowe sposoby rozwiązania tego problemu: 
 

!"

zwiększanie liczby bitów, które są jednocześnie wprowadzane 
(projektowanie „szerokich” układów DRAM), 

!"

stosowanie bardziej efektywnych interfejsów pamięci DRAM 
przez umieszczanie układów buforowanych w strukturach 
DRAM, 

!"

redukowanie częstości odwołań do pamięci głównej przez 
wprowadzanie efektywnych struktur pamięci podręcznych 
(ang. cache) między procesorem a pamięcią główną. 

background image

GENERACJE KOMPUTERÓW 
 
 

-  komputery pierwszej generacji 

technologia lamp elektronowych 
 

-  komputery drugiej generacji (lata 50-te

technologia tranzystorów 
 

-  komputery trzeciej generacji (połowa lat 60-tych

układy scalone SSI (ang. small scale integration), 
układy scalone MSI (ang. medium scale integration
 

-  komputery czwartej generacji (połowa lat 70-tych

układy LSI (ang. large scale integration), era 
minikomputerów 

 
- komputery piątej generacji (połowa lat 80-tych

układy VLSI, wiele kierunków w rozwoju komputerów,  
architektury potokowe, RISC, systemy wieloprocesorowe 

background image

HISTORIA 

 

1627 Wilhelm Schickald - stworzył pierwsze dwa urządzenia do 

sumowania kilkucyfrowych liczb; 

1642 B. Pascal - opracował jeden z pierwszych szeregowych 

sumatorów/subtraktorów (urządzeń dodających 
i odejmujących); 

1694 C. W. Leibnitz - buduje pierwszy arytmometr 

czterodziałaniowy ( wcześniej, w 1671 zbudował sumator 
równoległy ); 

1833 Ch. Babbage - realizuje projekt maszyny analitycznej, 

którą można uznać za pierwowzór późniejszych 
komputerów; 

1920 - zbudowano arytmometr elektryczny; 
1937-1944 - pod kierunkiem H. Aikena zbudowano 

przekaźnikowy, całkowicie zautomatyzowany Mark 

(komputer generacji 0); 

1945 J. von Neuman - określa zasadę obowiązującą we 

wszystkich powstających później komputerach (poza 
ENIAC’em): program maszynowy realizujący działania 
zlecone przez programistę zapisany jest w pamięci 
komputera; 

1946 J. W. Manchly i J. P. Eckert - budują ENIAC (Electronic 

Numerical Integrator and Computer - generacja 1): zawierał 
18000 lamp i 1500 przekaźników, ważył 30 ton, pobierał 
150kW mocy; czas wykonywania operacji: dodawanie w 0.2 
ms, mnożenie w 2.8 ms dla liczb dziesiętnych; 

background image

1950 - powstaje EDVAC (Electronic Delay Storage Automatic 

Computer) z pamięcią na rtęciowych liniach opóźniających; 

1968 - po raz pierwszy użyto myszki jako urządzenia 

wskazującego; 

1970 - pierwsze komputery, które można zaliczyć do 4-tej 

generacji, m. in. PDP11 (układy LSI i VLSI); 
wyprodukowanie, przez Intel, pierwszej kości dynamicznej 
pamięci RAM;  

1971 - Intel sprzedaje pierwszy układ procesora (CPU), 

4-bitowy, 108 kHz o oznaczeniu 4004, technologia 10

µ

 ; 

1972 - Intel wprowadza procesor 8008, technologia 10

µ

, częstot. 

108KHz, który może obsługiwać 16 KB pamięci RAM, czyli 
mniej więcej 1/1000 zasobów potrzebnych dla Windows 98; 

1974 - Intel buduje kolejny procesor, 8-bitowy 8080, technologia 

6

µ

, częstot. 2MHz, zdolny obsłużyć 64KB RAM; 

1977 - Intel wprowadza procesor 8086, technologia 3

µ

, częstot. 

5MHz;  

1981 - sprzedany zostaje IBM PC z systemem operacyjnym 

Microsoftu i kompilatorem BASIC’a, firma Osborn 
Computers
 tworzy pierwszy przenośny komputer osobisty 
bazujący na IBM PC. Ma on 64KB RAM i waży 10kg; 

1983 - Intel wprowadza procesor 80286, technologia 1,5

µ

częstot. 8MHz; 

1985 - Microsoft wprowadza Windows 1.0, Intel wprowadza 

procesor 80386DX, technologia 1

µ

, częstot. 16MHz; 

1987 - Microsoft sprzedaje 2 miliony egzemplarzy Windows 

2.0; 

background image

1989 - Intel wprowadza procesor 80486DX, technologia 1

µ

częstot. 25MHz, 1,2 mln tranzystorów; 

1990 - Microsoft wypuszcza Windows 3.0; 
1991 - Microsoft wypuszcza Windows 3.1; 
1992 - Intel wprowadza procesor 80486DX2, technologia 1

µ

częstot. 50MHz, 1,2 mln tranzystorów; 

1993 - pojawia się wczesna wersja alfa produktu Microsoftu 

o nazwie Chicago - Win 95, Intel wprowadza procesor 
PENTIUM, technologia 0,8

µ

, częstot. 60MHz, 3,1 mln 

tranzystorów; 

1995 - Microsoft wprowadza Windows 95 oraz Windows NT 

3,51, Intel wprowadza procesor PENTIUM Pro
technologia 0,6

µ

, częstot.  150 - 200MHz, 5,5 mln 

tranzystorów; 

1996 - wchodzi Windows NT 4.0; 
1997 - Intel wprowadza procesor PENTIUM MMX

technologia 0,35

µ

, częst.  150 - 200MHz, 4,5 mln 

tranzystorów, w maju wprowadza PENTIUM II
technologia 0,35

µ

, częstot.  150 - 200MHz, 4,5 mln 

tranzystorów ; 

1998 - Microsoft wprowadza Windows 98, Intel wprowadza 

procesor 

CELERON, który jest odpowiednikiem 

PENTIUM II bez pamięci Cache L2; 

1999  – Pentium III, częstotliwość taktowania 450-700 MHz, 

technologia 0,25 lub 0,18

µ

1999-2000 AMD K7 Athlon, częstotliwość taktowania  1GHz; 

background image

2000 – Intel Itanium, 64-bitowa architektura, min. częstotliwość 

800 MHz, VLIW, 1 MB cache L2, 2-4 MB cache L3; 

2001 – Intel ELBRUS 2000, AMD SLEDGEHAMMER 
2002 – 
2003 – minimalna częstotliwość 3 GHz, technologia 0,08 

µ

 

 
 
 
 
 

background image

Architektura 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. 

 

 

Procesor

Pamięć

operacyjna

(PAO)

Urządzenia

wej/wyj

Progra-

mowane

układy

wej/wyj

Szyna adresowa

Szyna danych

Szyna sterowania

Szyna wej/wyj

Sterowanie

 

Schemat blokowy komputera 

 
 
 
 
 

background image

 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

Sekwencje czynności w czasie wykonywania instrukcji 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

Faza pobrania 
rozkazu 

Dekodowanie 
rozkazu

 

Cykl maszynowy 

Cykl maszynowy 

Faza pobrania 
argumentu (ów) 

Faza wykonania 
rozkazu 

Cykl instrukcyjny 

background image

Przerwania i cykl rozkazowy 

 
 
Przekazywanie sterowania za pomocą przerwań 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Program użytkownika 

 


 

 

 

  

 

 

  

 

 

  

 

 
i+1 
 

 

  

 

 

  

 

Program obsługi 

przerwania 

 
 
 
 
 

 

 
 

 

 
 

 

Tutaj następuje 
przerwanie 

background image

Cykl rozkazu z przerwaniami 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Start 

Pobierz 

następny 

rozkaz 

 

Wykonaj  

rozkaz 

Sprawdź, czy nie 

ma przerwania; 

przetwórz  

przerwanie 

Stop 

Przerwania dozwolone 

Przerwania zablokowane 

background image

 

Przerwania wielokrotne 
 
W przypadku obsługi wielu urządzeń możliwe jest, że 
przerwanie wywołane przez jedno z urządzeń nastąpi w czasie, 
w którym jest przetwarzane przerwanie spowodowane przez 
inne urządzenie. 
 
Sposoby postępowania z przerwaniami  wielokrotnymi: 

!"

blokowanie przerwań – procesor będzie ignorował sygnał 
żądania przerwania w czasie obsługi danego przerwania; 

!"

określenie priorytetów przerwań – przerwanie o wyższym 
priorytecie powoduje przerwanie programu obsługi 
przerwania o niższym priorytecie. 

 
 

Klasyfikacja komputerów 
 
W modelu von Neumana zakłada się,  że komputer wykonuje 
program, umieszczony w jego pamięci i operujący na danych, 
które także znajdują się w pamięci. 
 
Zwiększenie efektywności (szybkości) działania komputerów 
można osiągnąć: 
-  poprzez zastosowanie nowych technologii, 
-  zastosowanie nowych rozwiązań w architekturze komputerów. 
 
Zwiększenie szybkości pracy komputera można uzyskać poprzez 
wprowadzenie zwielokrotnienia zarówno ciągu danych, jak 
i  instrukcji. 

 
 

background image

 

Klasyfikacja Flynna [1966] 

 
 
 
 
 

 

SISD 

 

SIMD 

 

MISD 

 

MIMD 

 
 
 
 

Pojedynczy  
ciąg danych 

Wielokrotny 
ciąg danych 

Pojedynczy ciąg 
instrukcji 

Wielokrotny 
ciąg instrukcji 

background image

Klasyfikacja Treleavena i Lima [1984] 

 
Opiera się na pojęciu bloku obliczeniowego. 
 
Blokiem obliczeniowym nazywa się wykonywaną operację wraz z jej 
argumentami i wynikami. Wykonywany program można przedstawić 
jako ciąg bloków obliczeniowych, których kolejność i momenty 
rozpoczęcia ich wykonywania są sterowane przez tzw. mechanizm 
sterujący. 
 
Wyróżnia się 4 rodzaje mechanizmów sterujących: 
1) samosterujące (ang. control driven), 
2) sterowane argumentami (ang. data driven), 
3) sterowane żądaniami (ang. demand driven), 
4) sterowane wzorcem (ang. pattern driven). 
 
Mechanizmy wymiany danych: 
1) mechanizm wspólnych danych (ang. shared data), 
2) mechanizm przesłań komunikatów (ang. message passing). 
 
 WSPÓLNE 

DANE 

PRZESYŁANIE 
KOMUNIKATÓW 

SAMOSTERUJĄCY 

COSH 

COME 

STEROWANE DANYMI 

DASH 

DAME 

STEROWANE ŻĄDANIAMI 

DESH 

DEME 

STEROWANE WZORCEM 

PASH 

PAME 

 

 
 
 
 
 
 
 
 

background image

 
 

Mechanizm translacji adresów

 

 
 
 

 

 

Przemieszczenie  

0  0  0  0  

Segment  

0  0  0  0  

Adres efektywny 

Adres bazowy segmentu 

15 

15 

Adres fizyczny 

20 bitowy 

background image

Mechanizm translacji adresów 

 

 

Adres logiczny

Baza

tablicy

segmen-

tów

Tablica

deskrypto-

rów

Katalog

tablic

stron

Tablica

stron

Adres liniowy

Baza

katalogu

stron

+

+

+

+

Adres

fizyczny

Strona

Pamięć fizyczna

Blok stronnicowania

Blok segmentacji

Program

 

 
 
 
 
 

background image

Segmentacja w procesorach Intel 

 

 

Deskryptory są umieszczane w pamięci kolejno tworząc tzw. tablice deskryptorów. Wykonywany 
program ma dostęp do dwóch tablic deskryptorów: globalnej tablicy deskryptorów GDT lokalnej 
tablicy deskryptorów LDT
, których wielkość wynosi 64KB. Numer deskryptora w jednej z tablic 
GDT lub LDT jest wybierany na podstawie 13 bitów selektora (bity 3...15). Zatem każda z tablic 
może zawierać do 8192 deskryptorów.  
 
Rozmiar logicznej przestrzeni adresowej określa się jako maksymalną wielkość widzianą przez 
pojedyncze zadanie. Ponieważ zadanie ma dostęp do obu tablic, dlatego też może w sumie korzystać 
z 16384 segmentów, 16K. O wielkości logicznej przestrzeni adresowej decydują liczba segmentów 
i ich długość. Dlatego też w mikroprocesorze 80286, gdzie maksymalna długość segmentu wynosiła 
64KB logiczna pamięć zwana też pamięcią wirtualną ma pojemność  16K * 64K = 2

14

 * 2

16

 = 2

30

 

bajtów = 1GB.  
Analogicznie w 80386 (i486), gdzie maksymalna długość segmentu jest równa 4GB 
(przemieszczenie 32-bity), jest ona równa: 16K * 4GB = 2

14

 * 2

32

 = 2

46

 bajtów = 64TB. Tak więc, 

pamięć widziana przez zadanie jest znacznie większa od pamięci, którą może zaadresować procesor. 
Jednak istnieje możliwość wykorzystania całej pamięci zadania dzięki odpowiednim mechanizmom 
wbudowanym w procesor, które umożliwiają implementację pamięci wirtualnej.  
 

 
 
 
 
 
 
 

background image

 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

15 0 

+6 

+4 
+2 

15 

+6 

+4 
+2 

Adres bazowy segmentu 31..24

 

Adres bazowy segmentu 23..16

 

A

 

t y p

 

DPL

 

S

 

A

 

Adres bazowy segmentu 15 ... 0

 

Wielkość segmentu 15 ... 0

 

Bajt atrybutów

 

G

 

D

 

0

 

AVL

 

Wielokość 16..19

 

7 4 

Numer deskryptora

 

TI 

RPL 

15 

 

(zarezerwowane)

 

Adres bazowy segmentu 23..16

 

A

 

t y p

 

DPL

 

S

 

A

 

Adres bazowy segmentu 15 ... 0

 

Wielkość segmentu 15 ... 0

 

Bajt atrybutów

 

Format deksryptora segmentu pamięci dla 80286 

Format deksryptora segmentu pamięci dla 80386 i nowszych 

Format selektora 

background image

Opis deskryptorów - 80286: 
 P - segment obecny; określa czy dany segment (strona) znajdują się 

w pamięci operacyjnej komputera - P = 1, jeżeli P=0 wówczas generowany jest wyjątek 
w wyniku czego przygotowywana jest odpowiednia ilość miejsca w pamięci i brakujący segment 
(strona) wprowadzana jest do pamięci operacyjnej. 

DPL - poziom ochrony opisywanego segmentu. Pole to zawiera podstawową informację 

o segmencie, wykorzystywaną przez mechanizm ochrony mikroprocesora. 

S - rodzaj deskryptora. Deskryptory mogą opisywać segmenty pamięci - danych lub kodu - S = 1, 

oraz specjalne systemowe struktury danych - segmenty systemowe i bramki zadań - S = 0. 

typ - określa prawa dostępu do danego segmentu: 

0 - segment danych tylko odczyt; 
1 - segment danych - odczyt i zapis; 
2 - segment danych rozszerzany w dół tylko odczyt; 
3 - segment danych rozszerzany w dół - odczyt i zapis; 
4 - segment kodu tylko wykonywanie; 
5 - segment kodu  - wykonywanie i odczyt; 
6 - zgodny segment kodu tylko wykonywanie; 
7 - zgodny segment kodu - wykonywanie i odczyt; 

 

Segment zgodny różni się od zwykłego segmentu kodu tym, że po przekazaniu sterowania do 
procedury zawartej w tym segmencie nie następuje zmiana poziomu ochrony (na wartość 
określoną w deskryptorze segmentu). Procedura wykonuje się na poziomie ochrony procesu 
wywołującego. 

A - segment użyty. Bit ten jest ustawiany przez procesor przy ładowaniu selektora do rejestru 

segmentu lub deskryptora do rejestru deskryptora. 

  Opis deskryptorów - 80386 oraz i486

background image

G - ziarnistość. Umożliwia opis segmentu do 4GB przy użyciu jedynie 20-bitowego pola wielkość

Jednostką długości segmentu może być jeden bajt - G = 0 - można wówczas zdefiniować segment 
o długości do 1MB, albo wielkość może być zdefiniowana w jednostkach alokacji 4KB, co daje 
możliwość zdefiniowania segmentu o rozmiarze do 4GB. 

 D - długość  słowa. Dla D = 1 oznacza stosowanie 32-bitowego przemieszczenia w adresie 

argumentu oraz 32-bitowych argumentów. Dla D = 0 16-bitowe przemieszczenie i 16-bitowe 
argumenty. 

 AVL - pole nie jest interpretowane przez mikroprocesory, może być użyte przez oprogramowanie. 
  Opis bitów selektora: 
TI
 - określa rodzaj tablicy deskryptorów do, której chce się odwołać program. TI = 0 odwołanie 

dotyczy tablicy globalne, TI = 1 oznacza, że odwołanie dotyczy tablicy lokalnej. 

RPL - poziom ochrony zadania żądającego dostępu. Służy do osłabienia bieżącego poziomu 

ochrony. 

   
Przykład:  
Jeżeli zadanie o poziomie ochrony 3 próbuje przez wywołanie funkcji systemowej o poziomie 
ochrony 0 uzyskać dostęp do danych na poziomie 2, to nie uzyska takiego dostępu, gdyż wartość 
RPL selektora wywołującego będzie równa 3. 
 

 
 
 
 
 

background image

Stronicowanie w procesorach Intel 

 

 

Polega na podziale całej przestrzeni adresowej na bloki o długość 4KB, które są 
rozmieszczone sekwencyjne począwszy od adresu 0. W przestrzeni adresowej 
mikroprocesora znajdują się więc 2

32

 / 2

12

 = 2

20

 stron = 1M stron. Położenie strony jest 

jednoznacznie określane za pomocą jej 20-bitowego numeru.  
W 32-bitowym adresie liniowym można wyróżnić  12 mniej znaczących bitów 
określających położenie wewnątrz strony, oraz 20-bitowy numer strony wskazujący jej 
położenie w przestrzeni adresowej. Jeżeli założymy wykorzystanie tablicy translacji, 
w której każdy element składałby się z 4-bitów jej rozmiar musiałby wynosić 4 * 2

20

 = 

4Mb. Ze względu na tak duży rozmiar ewentualnej tablicy translacji w mikroprocesorze 
80386 zastosowano dwupoziomowe stronicowanie, wprowadzając dwie tablicę:  tablicę 
stron
 wskazującą na położenie strony w przestrzeni adresowej oraz tablice wyższego 
poziomu zwane katalogami stron, którego to elementy wskazują na właściwą tablicę 
stron. Elementy obydwu tych tablic mają identyczny format. 

 
 
 
 
 
 
 
 

background image

 
 
 

background image
background image

Adres logiczny

Baza

tablicy

segmen-

tów

Tablica

deskrypto-

rów

Katalog

tablic

stron

Tablica

stron

Adres liniowy

Baza

katalogu

stron

+

+

+

+

Adres

fizyczny

Strona

Pamięć fizyczna

Blok stronnicowania

Blok segmentacji

Program

 

 
 
 
 

background image

Architektura mikroprocesora 8086 

 
 

AH

BL

BH

AL

CH

DL

DH

CL

SP

DI

SI

BP

CS

ES

SS

DS

0000

0000

0000

0000

PC

0

7

8

15

AX

BX

CX
DX

0

15

0

15

Magistrala wewnętrzna

Bufor

magistrali

zewnętrznej

6

3

4

5

2
1

Kolejka rozkazów

ALU

Jednostka sterująca

Rejestr znaczników

Rejestr rozkazów

Jednostka sterująca

BIU

Jednostka wykonawcza

EU

0

15

 

background image

Organizacja pamięci w systemie z mikroprocesorem 8086 

 
 
 
 

Układ wyboru

banku pamięci

A0

Dekoder
adresów
A1...A19

 

1

Bank pamięci

zawierający mniej

znaczące bajty

D0...D7

Układ wyboru

banku pamięci

Dekoder
adresów
A1...A19

 

2

D0...D7

Bank pamięci

zawierający bardziej

znaczące bajty

Multipleksowana

szyna adresów i

danych

AD8...AD15

AD0...AD7

BHE

A1...A19

A1...A19

A0

Szyna danych

Szyna adresowa

 

 
 
 

background image

Schemat blokowy mikroprocesora 80286. 

 

Ste- 

rowa-

nie 

Sterowanie magistrali 

S1, S0, COD/ INTA 

LOCK, HLDA

 

 

Sumator 

przemieszczenia

 

Sumator 
adresów 

fizycznych

 

Bazy 

segmentów 

Rozmiary 

segmentów 

Kontrola 

ograniczeń 

Blok 

generacji 

adresów 

ALU

 

Blok 

rejestrów 

roboczych 

Blok przetwarzania 

Kolejka zdekodowanych 

rozkazów 

Dekoder 

rozkazów 

Blok 

dekodera 

Zatrzaskujące bufory adresów 

Układ 

wprowadzania 

rozkazów 

Interfejs 

z układami 

rozszerzającymi 

(koprocesorami) 

Bufory danych 

6-bajtowa 

kolejka 

rozkazów 

A23....A0 

BHE,M / IO

 

PEACK

 

PEREQ

 

READY, HOLD

 

D15...D0

 

RESET

 

CLK

 

GND

 

U

CC

 

CAP

 

BUSY

 

ERROR

 

INTR

 

NMI

 

Blok 

interfejsu 

 

 
 
 

background image

Schemat funkcjonalny mikroprocesora 80386. 

 

 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Dane

 

ALU

 

Zestaw 

rejestrów

 

Rejestr 

przesuwający

 

Blok 

segmentacji

 

Tablica 
deksry- 

ptorów

 

Blok  

interfejsu

 

Sterowanie

 

Adresy

 

Blok 

wprowadzania

 

Kolejka 

rozkazów

 

Dekoder 

rozkazów

 

Kolejka 

 

Sterowanie

 

Blok 

kontroli 

dostępu

 

Blok prze-

twarzania 

danych 

Blok programu 

Blok 

stronicowania

 

TLB

 

background image

Mechanizm wyprzedzającego wprowadzania kodów rozkazów. 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Mikroprocesor  

 

Rozkaz n+2

 

Rozkaz n

 

Rozkaz n+1

 

Blok wyprzedzającego 

wprowadzania

 

Rozkaz n-1

 

Dekoder rozkazów

 

Rozkaz n-2

 

Rozkaz n

 

Rozkaz n-1

 

Rozkaz n+1

 

Rozkaz n+3

 

Rozkaz n+2

 

Pamięć programu

 

background image

 

Schemat blokowy mikroprocesora 80486. 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Układ przesuwania

 

Blok rejestrów

 

ALU 

Blok segmentacji

 

Deskryptory

 

Długości segmentów 

i prawa dostępu

 

Blok  

stronnicowania

 

Blok pamięci  

Cache 

 

Kolejka 

rozkazów

 

Blok  

wprowadzania

 

Dekoder 

instrukcji

 

Jednostka 

zmiennopozycyjna

 

Blok rejestrów 

zmiennopozycyjnych

 

Blok  

interfejsu 

szyny 

 

Sterowanie

 

Pamięć 

mikroprogramó

w

 

20

 

32

 

32

 

32

 

2

 

128

 

Adres fizyczny

 

Szyna adresu liniowego

 

32

 

24

 

Zdekodowane 

instrukcje

 

Strumień 

instrukcji

 

PCD, PWT

 

32

 

Adres A2..A31

 

Dane D0..D31

 

Sterowanie

 

JTAG

 

mikroinstrukcje

 

Szyna danych

 

Szyna danych

 

64-bitowa wewnętrzna szyna danych

 

background image

 

 
 
 
 
 
 
 

Kolejka rozkazów 

Dekoder instrukcji 

Jednostka sterująca 

Blok rejestrów 

 

Bufor 

kierunku 

skoków 

TLB 

Cache programu 

8 KB 

Cache danych 

8 KB 

TLB 

Układ generacji 

adresów  

(potok U

Układ generacji 

adresów  

(potok V

ALU  

(potok U

ALU  

(potok V

Rejestr 

przesuwny 

Blok 

stroni-

cowania 

256 

Wskaźnik 

instrukcji 

Pamięć 

mikroinstrukcji 

ROM 

Blok 

interfejsu 

64-bitowa 

szyna 

danych 

32-bitowa 

szyna 

adresowa 

Sterowanie 

Jednostka zmienno-

przecinkowa 

Blok rejestrów 

Dodawanie 

Dzielenie 

Mnożenie 

80 

80 

64-bitowa 

szyna 

danych 

32-bitowa 

szyna 

adresowa 

32 

32 

32 

32 

32 

32 

Schemat blokowy 

mikroprocesora Pentium

 

background image

Organizacja rejestrów procesora PENTIUM 

 
Rodzaje rejestrów: 

!"

Ogólnego przeznaczenia (robocze). Występuje 8 32-bitowych rejestrów ogólnego 
przeznaczenia; 

!"

Segmentowe. Sześć 16-bitowych rejestrów segmentowych zawiera selektory segmentu 
służące jako indeksy w tablicach segmentów. 

!"

Znaczniki stanu. Rejestr EFLAGS zawiera kody warunkowe i różne bity trybu. 

!"

Wskaźnik rozkazu. Zawiera adres bieżącego rozkazu. 

!"

Rejestry do współpracy z jednostką zmiennopozycyjnąnumeryczne – 8 rejestrów 
80-bitowych, dostępnych jako stos; rejestr sterowania – 16-bitowy rejestr sterowania; 
rejestr stanusłowo wyróżników

 
 
 
 
 
 
 
 
 
 

background image

Rejestry sterowania 

Pentium wykorzystuje cztery 32-bitowe rejestry sterowania CR0, CR2, CR3, CR4. 
Rejestr CR0 zawiera znaczniki stanu sterowania systemowego, które sterują trybami lub 
wskazują stany odnoszące się raczej do procesora niż do wykonywanego programu. 
Znaczniki te są następujące: 
Zezwolenie ochrony (PE). Włącza lub blokuje tryb chroniony. 
Monitorowanie koprocesora (MP).  
Emulacja (EM).
 Ustawiany, gdy procesor nie ma jednostki zmiennopozycyjnej. 
Błąd numeryczny (NE). Umożliwia standardowy mechanizm zgłaszania błędów 
zmiennopozycyjnych na zewnętrznych liniach danych. 
Ochrona zapisu (WP). Gdy ten bit jest zerem, strony tylko do odczytu na poziomie 
uprzywilejowania użytkownika mogą być zapisane przez program nadzorczy (SO). 
Brak zapisu jednoczesnego (NW). Wybiera tryb pracy pamięci podręcznej danych. Gdy 
bit ten jest ustawiony, operacje zapisu jednoczesnego pamięci podręcznej są 
zablokowane. 
Blokowanie pamięci podręcznej (CD). Włącza lub blokuje mechanizm zapełniania 
wewnętrznej pamięci podręcznej. 
Rejestr CR2 służy do przechowania 32-bitowego adresu liniowego ostatniej strony, która 
spowodowała błąd strony. 
Rejestr CR3 (20 bardziej znaczących bitów) – adres podstawowego katalogu stron. 
W rejestrze CR4 jest zdefiniowanych 6 dodatkowych bitów kontrolnych.