You are on page 1of 20

Vpoetn systmy

Zkladn pojmy
-

1bit
1 slabika = 1B = 8 bit
1 slovo = word = nkolik slabik (2,4,8) typicky 4
1 KB = 210 slabik = 1024 B
1 MB = 220 = 1 048 576 B
1 GB = 230 = 1 073 741 824 B
4 GB = 232
dl pak TB (tera), PB (peta), EB (exa), ZB (zetta), YB (yotta)

Von Neumann
-

z hlediska VS
pam, ALJ, adi, V/V zazen
ve je binrn
pamti maj sv adresy
ke zmn poad instrukc slou podmnn a nepodmnn skoky
zpracovn dat je samoinn

seln soustavy
-

polyadick
o
zhutn zpis 123 = 1*102 + 2*101 + 3*100 (rozvinut zpis)
zbytkovch td

Pevody mezi polyadickmi soustavami


-

pevod z 10 do 2
o
cel sla - dlen dvma zapisuju zbytky pod sebe pot obrcen pepu (slide 18)
o
desetinn sla nsoben dvma nap. 0.2 => 0.4 => 0.8 => 1.6 (0.6*2) => 1.2 (0.2*2) => 0.4 => 0.8 (zacyklilo
se) proto bude vsledek 0.0011 periodickch
pevod z 2 do 10
o
10.01 = 1*21+1*2-2 = 2,25

Zobrazen sla v binrnm tvaru


1)
2)
3)
-

Pm kd
se znamnkovm, bez znamnkovho bitu, problm dvou nul
Inverzn
inverze vech bit, problm dvou nul zstv
Doplkov kd
inverze bit, piten 1, odstrann problm dvou nul, nesymetrick rozsah
se znamnkovm bitem se pot jako s ktermkoliv jinm
penos ze znamnkovho bitu se ignoruje
pevod zpt => inverze bit +1

Aritmetika
-

zkladn operace stn

Souet v doplkovm kdu


-

vechny bity se staj stejn


vznikne-li penos ze znamnkovho bitu tak jej ignorujeme
peteen rozsah = penos ze znamnkovho bitu <> penos na znamnkov bit

Souet v inverznm kdu


-

problm dvou nul


nutnost provdt tzv. kruhov penos (piten penosu ze znamnkovho du zptky k vsledku) tm se e problm dvou
nul

BCD kd (Binary Coded Decimal)


-

kad destkov slice je zapsna ve 4 bitech


rychl pevod, hor potn s sly
o
rozvinut nepouv se k vpotm

7134610 = F7F1F3F4C616 => C oznauje kladn sla

-7134610 = F7F1F3F4D616 => D oznauje zporn sla


o
zhutn zpis zapisuje se pouze znamnkov zna

7134610 = 71346C16

Vnj kdy
-

pro zobrazovn znak


kad znak m svou hodnotu

ASCII ISO-7
-

prvn systm pro zapisovn znak


zpis znak na 7 bitech
na zatku 32 znak dcch pro tiskrny
zbytek pro znaky
10 Line Fide posun o dek
13 Carriage return vrcen vozku
27 Escape - za tmto znakem nsleduje netisknuteln povel pro tiskrnu

ISO-8859-2 = ISO-LATIN-2
-

pouvan v UNIX systmech

Windows-1250
-

1 bajtov systm ve Windows

UNICODE
-

vcebajtov kdovn (UTF-8, UTF-16, UTF-32)

UTF-8
-

Nejpouvanj
Pokud je znak v UTF-7 sta pro zpis 1 bajt
esk znaky jsou vdy ve 2 bajtech

Pevod do UNICODE
-

napklad psmeno

=> znak je v UNICODE zapsn jako U+0159

Little a Big encin


-

big bajt nejvyho du je uloen na nejni adrese 123456


little bajt nejvyho du je uloen na nejvy adrese 563412
modele bajty jsou uloeny v poad 3,4,2,1 nebo 2,1,4,3

Detekn kdy
-

zavedena nadbytenost

sud, lich (zkladn detekn kd)


doplnn jednoho bitu podle lichho (sudho) potu 1

Parita
Kd 2 z 5ti
-

vdy prv 2 bity z 5ti jsou 1


dky tomu lze provst kontrolu a oetit i vce chyb

Opravn kdy
Ztrojen
-

jeden bit je zapsn na 3 bitech platn jsou pouze 111, 000

Hamingova kdov vzdlenost


-

poet bit, v nich se li dv sousedn platn kdov kombinace


d = 1 => detekce 0, oprava 0
d = 2 => detekce 1, oprava 0
d = 3 => detekce 2, oprava 1
d = 4 => detekce 3, oprava 1
d = 5 => detekce 4, oprava 2

Boolova algebra
-

zkladn operace AND, OR, NOT

Zpsoby popis
-

Pravdivostn tabulka
Matematick
Vennovy diagramy

pravy Boolovy algebry


-

Matematickmi vrazy
Vyuitm jednotkov krychle
Karnaughova mapa normalizace Vennova diagramu

Vyuit Booleho
-

Spnac kontakt
Rozpnac kontakt

Pepnac kontakt

Zapojen kontakt
-

Sriov
Paraleln
Srioparaleln
Mstkov

prava Boolovch vraz


-

Matematickmi vzorci
Vyuit jednotkov krychle
Karnaquova mapa (viz. druhk s pedrem)

Sheffrova algebra
-

vybudovna na jedn logick funkci NAND


lze pomoc n realizovat vechny Boolovy algebry (hmm)

Piercova algebra
-

vystavna na logick funkci NOR


Morganovy pravidla pro pevod do minimalizovan formy

Signly
-

Hladinov (hladina napt)


Impulsov (ptomnost/neptomnost pulsu)
existuje hodnota 1 (high),0 (low) a zakzan psmo (msto kde nen definovna ani jedna hodnota)

Technologie TTL
-

tranzistor NPN
napjen 5V
low 0,4 0,8V
high 2 2,4V

Kombinan logick obvody


-

Ivnentor invertuje hodnotu


AND logick souin (konjunkce)
OR logick souet (disjunkce)
NAND negace logickho souinu
NOR negace logickho soutu
XOR nonekvivalence (pokud jsou rozdln tak 1)
NOXOR ekvivalence (negace XORu)

Logick obvody
-

Multiplexor 4 datov vstupy, dva vstupy, podle adresy na vstupu se piad hodnoty adresy na vstupu
Dekodr dva vstupy, podle hodnot na vstupu se odele hodnota 1 do jednoho ze 4 vstup

Staky
Staka MODULO
-

m dva vstupy a jeden vstup ve kterm jsou seteny vstupy

Polostaka
-

dva vstupy, dva vstupy, jeden souet a druh penos do vyho du

pln staka
-

ti vstupy (dv sla, penos do vyho du), dva vstupy (souet a penos do vyho du)

Vcemstn staka
-

vce plnch staek zapojench za sebou, nepouv se

Sekvenn logick obvody, klopn obvod RS


-

podobn jako logick leny, pouze s tm e obsahuje zptnou vazbu

Klopn obvod RS
-

zkladn pamov len!!!!!!!!!!


R RESET (nulovn), S SET (nastaven)
RS zen nulami (nesm nastat RS 00), jednikami (nesm nastat RS 11)
klopn obvod me bt zen hladinou nebo impulsem

Klopn obvod D (delay)


-

jednobitov pam
datov a dc vstup (impuls pokud chceme peklopit hodnotu)
pokud nen impuls tak si pam dr svj stav
realizace - pomoc klopnho obvodu RS se zapojenm negace

Klopn obvod JK
-

podobn RS obvodu, pouze nem zakzan stav


v ppad zakzanho stavu se hodnota obvodu invertuje

Penos informac v systmu


-

sriov za sebou, mus se dohodnout penosov rychlost (jak dlouho bude trvat penos jednoho bitu), synchronn penos
(spolen zdroj taktu), asynchronn (vyslajc si sm uruje kde chce vyslat data)
paraleln pouv se uvnit potae (sbrnice), vtinou s vyuitm paralelnch registr (zapojen 1 bit pamt pi penosu dat)

Typick sekvenn obvody v PC


Staka v BCD kdu
-

umouje sest sla zapsan v BCD kdu


sestavuje se za pomoc klasick staky a transforman staky
transforman staka
o
dokud vychz 1 cifern sla tak nemusm provst nic

o
o
o

jakmile vce cifern tak musm opt zapsat kadou slici zvl do BCD kdu
2 cifern napklad 12 = 11002 = 1!0010BCD vlastn postup k slu v BCD kdu pitu 6 (1100+0110=10010)
pitm 6 pokud je penos == 1 nebo pokud jsou dva nejvy bity == 1 a nebo je nejvy (S 3) a tet nejvy
len (S1) == 1

1279
5 4 3 BCD souet
17BC
+ 6 korekce jednotek
17C2
6 korekce destek
1822
+0
stovky, tisce bez korekce
1 8 2 2 vsledek

Sriov staka
-

st dva stance, jak vstup je hodnota a penos do vyho du (staka) kde se penos z vyho du pedv znovu na
vlez
cel tento systm mus bt synchronizovan jinak by to dlalo <>viny
zapojen pouze jedn pln staky a klopnho obvodu D
provede se vpoet, odebere souet a penos do vyho du se na chvli zapamatuje v obvodu D a pot spolu s dalmi sly
sete

Paraleln registr = stda


-

stda registr do kterho se postupn std vsledek vpotu, napklad pi stn ady sel

Sriov registr = posuvn registr


-

pouv se jako pevod sriovho penosu na paraleln


do tohoto registru se vlo hodnoty (nap. 4 bity) a po zaplnn tchto 4 bit se narz ze vech vstup odeberou data
realizovan pomoc klopnho obvodu D-KO
jednm taktem se posunou hodnoty vdy o jednu pozici

ta
-

na vstupu hodinov impulsy


pi piveden sestupn hran (pi pechodu 1=>0) impulsu obvod otevr a pit hodnotu
hodnoty se skldaj z kadho vba, prvn vb m nejvy hodnotu

Nsobiky
-

sekvenn nsoben (bez znamnka) proveden pomoc opakovanho stn


nsobenec se std do stdae pitom je v tai potn poet proveden

Rotace bit
-

doleva
doprava
informace se neztrc, bity pouze rotuj ve smru

Logick posun (logical shift)


-

dochz ke ztrt bit, do uvolnnch bit se vkld 0


doleva na konec je vloena 0, prvn bit se ztrc
doprava na zatek je vloena 0, posledn bit se ztrc

Aritmetick posun
-

stejn jako logick posun, pouze zachovv znamnkov bit


doleva znamnkov bit se nemn, v podstat dochz k nsoben 2, na przdn msto se dosazuje 0
doprava znamnkov bit se kopruje do niho du, v podstat dochz k dlen 2, na przdn msto se kopruje znamnkov bit

Blok operan jednotky


Obsahuje:
staka
nsobika
dlika
logick operace
posuvy a rotace
kompartor (porovnvn) - realizovn pomoc logick souin

Pamti
Druhy:
-

vnj (HDD)
vnitn (RAM)
registry

Dleit parametry:
-

vybavovac doba (as pstupu do pamti)


rychlost toku dat (poet penesench bit za sekundu)
kapacita
cena za bit
pstup pm, sekvenn
destruktivnost pi ten (petenm pichzm o hodnotu)
energetick zvislost

statick, dynamick (dynamick pam udr svou pam pouze uritou dobu (nap. kondenztor), mus se obnovovat, refreshovat)
spolehlivost poruchovost (v hodinch, v bitech)

Pojmy:
-

DIMM (Double Inline Memory Module) oboustrann modul, piny na obou stranch pamovho ipu, opakem je star SIMM
(Single )
DRAM (Dynamic Random Access Memory) dynamick pamt, refreshovn
SDRAM (Synchronous DRAM) synchronizace taktu pamti se sbrnic
DDR (Double data rate) data tena jak na vzestupn tak na sestupn hran signlu
ECC (Error checking and correction) nalezen a oprava chyby pi ten
CL (Column Latency) pomr mezi vnitnm a vnjm asovnm pamti
Registered v pamti navc registry, pouvan na serverech

Vnitn pam
-

adresov a datov registr a vlastn pamov buka


adresace dky a sloupce

Feritov pamti
-

archaick typ
destruktivn ten po ten bylo nutn zpis obnovit

Permanentn pamti
-

ROM dioda (nebo jin polovodiov prvek)


PROM dioda + tavn pojistka (NiCr) pokud chceme 0 tak se tavn pojistka pepl, sloupec na kterm je buka kterou chceme
peplit uzemnme a na dek ve kterm je buka pustme vypalovac impuls
EPROM mazn UV lampou, pam m pelepku, pokud chceme mazat, pelepku odlepme a pes prhled tam pustme UV, zpis
elektronicky
EEPROM mazn proudem (RMM Read Mostly Memory)

Asociativn pam
-

pamti typu CAM


neadresuje se slem ale klem
pam obsahuje pam kl ke kter jsou piazeny jednotliv obsahy bunk (obsahy ke kli)
pam je pot dotazovna do pamti kl kde obsahuje dan kl
velk rychlost vyhledvn v pamti za pomoc obvodov logiky

Procesor
-

CISC (kompletn instrukn sada)


RISC redukovan instrukn sada, neprogramuje se ji v assembleru, bylo by to sloit
Strojov cyklus as potebn k zpisu (ten) slova z pamti
Instrukn cyklus as potebn pro vbr a proveden instrukce
instrukce se skld z microinstrukc (pkazy nutn pro proveden instrukce)
instrukce operan kd (znak) a operandy (data)

Fze procesoru
-

vbr operanho kdu z pamti


vbr operandu z pamti (adresy operandu z pamti)
proveden instrukce
peruen

Vbr instrukce
-

ta instrukc (adres instrukc)


PC (program counter)
IP (instruction pointer)
po proveden instrukce se posunuje adresa o dlku instrukce => jde se na dal instrukci v poad

Pota pro pednky


-

pracuje ve dvojkovm doplkovm kdu


registr A stda (Acumulator), 8bit
registr PC ta instrukc 16bit (Program Counter)
pam 64 KB
adresovateln jednotka slabika 8 bit

Procesor 8080
-

8bitov

Zapojen
-

A0 A15 bity na data


D0 D7 bity pro adresaci
Napjen 12V
Napjen 5V
Napjen SV
GND
O1, O2 impuls vnjch hodin (taktovn)
WR zen zpisu do pamti

Instrukce
LDA (Load a Direct)
napln registr A obsahem slabiky z pamti
obsahuje operan znak (3Ah) a 16bitov adresa pamti rozdlen na dv 8bitov (ni a vy adresa slabiky)

STA (Store a Direct)

ulo registr A do pamti


obsahuje operan znak (32h) a opt 16bitovou adresu (podobn jako LDA)
JMP (Jump Unconditional)
nepodmnn skok na adresu
obsahuje operan znak (0DAh) a 16bitovou adresu

Pklady X:=Y
-

obsah pamt ped provedenm (100h X, 101h Y)


LDA 101h nate Y do registru
STA 100h ulo obsah registru do X

Intern registry
IR (Instruction registr)
instrukn registr (8 bit)
napojen na adi, z pamti se vezme operan znak a vlo se do operanho registru, tm zane vpoetn proces
DR (Data registr)
datov registr (8 bit)
registr na sbrnici napojen na operan pam
registr pro ten/zpis z/do pamti
pokud chci uloit nebo pest do pamti tak zapisuji (tu) pes tento registr
AR (Adress registr)
adresov registr (8bit)
adresa pro ten/zpis do pamti
TA (Temporary Adress)
skld se ze dvou 8bitovch registr =>16 bitov registr
8 bit TA high + 8bit TA low = TA

Fze instrukce LDA


-

200 -> PC (poten nastaven registru PC)


PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku registr PC do registru adres, ten WR, peten data v datovm registru
do instruknho registru => zahjen instrukce
PC+1 -> AR, 0 -> WR, DR -> TAl vbr operandu pc+1 (adresa operandu) do adresovho registru, ten WR, peten data do
TA
PC+2 -> AR, 0 -> WR, DR -> TAh vbr operandu druh st
TA -> AR, 0 -> WR dokonen vbru operandu peten dv sti TA do adresovho registru, ten WR
DR -> A proveden operace, obsah petench dat do registru A (stda)
PC + 3 -> PC posunut registru PC na dal instrukci

Fze instrukce STA


-

200 -> PC poten nastaven registru PC


PC -> AR, 0 -> WR, DR >IR vbr operanho znaku (jako u LDA)
PC+1 -> AR, 0 -> WR, DR -> TAl viz. LDA
PC+2 -> AR, 0 -> WR, DR -> TAh viz. LDA
A -> DR proveden operace, obsah ze stdae uloen do datovho registru
TA -> AR, 1 -> WR adresov registr nastaven na TA (adresa operand), zpis WR
PC + 3 -> PC posunut registru PC na dal instrukci

Fze instrukce JMP


-

PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku


PC+1 -> AR, 0 -> WR, DR -> TAl viz. LDA
PC+2 -> AR, 0 -> WR, DR -> TAh viz. LDA
TA -> PC vlastn proveden skoku (sko se na adresu TA tj parametr JMP)

WR na procesoru
-

0 -> WR ten z pamti


1 -> WR zpis do pamti

Dal registry
-

B, C, D, E, H, L 8bitov

Dal instrukce
MOV
pesunut mezi registry
MOV R1, R2 (r1, r2 je libovoln z registr A, B, C, D, E, H, L)
Kdovn ve v 1 slabice, kombinace registr pro pesun je ji v operanm znaku
fze MOV
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
R1 -> R2 proveden operace
o
PC+1 -> PC posun na dal instrukci
INR (increment register)
increment, zven +1
fze INR
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
R + 1 -> R proveden naven
o
PC + 1 -> PC posun na dal instrukci
ADD (Add register to A)
piten k registru A
fze ADD
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
A + R -> A naven A o hodnotu R

o
PC + 1 -> PC dal instrukce
CMA (komplement A)
inverze vech bit
fze CMA
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
/A-> A inverze
o
PC + 1 -> PC dal instrukce

Pznakov registr F
-

v nm jsou uloeny jednotliv pznaky


Z (ZERO) pznak nulovosti, 1 pi nulovm vsledku
S (Sign) kopie znamnkovho bitu vsledku operace (pznak zpornosti)
CY (Carry) kopie bitu penenho z nejvyho du vsledku operace (to co nm peteklo)
P (Parity) pznak parity, 1 pokud je parita sud, 0 pi lich
AC (Auxillary carry) doplujc penos mezi 3 a 4 bitem (v polovin bajtu) (Pznak se pouv pi BCD v aritmetice a to pi penosu
z 3. do 4. bitu.)

Pznaky
-

nastavuj instrukce INR, ADD, CMA


nenastavuj LDA, STA, JMP, MOV

CMP r (Compare with A)


-

nastaven pznak
fze CMP
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
A r nastaven pznak (pznaky se nastav i kdy nen vsledek nikam uloen)
o
PC + 1 => PC dal instrukce

Podmnn skok
-

skok podle pznaku v pznakovm registru F


vzor instrukce: JPodmnka adresa
pklad jak by to mohlo vypadat
o
PC -> AR, 0 -> WR, DR -> IR
o
If podmnka then

PC+1 -> AR, 0 -> WR, DR -> TAl

PC+2 -> AR, 0 -> WR, DR -> TAh

TA -> PC
o
Else

PC+3 => PC
o
Fi
Instrukce podmnnho skoku
o
JC
CY = 1
o
JNC CY = 0
o
JZ .
Z=1
o
JNZ Z = 0
o
JP .
S=0
o
JM .
S=1
Pklady
o
X 100h
o
Y 101h

X:= X+Y

LDA 100h do registru A se nate X

MOV B,A obsah registru A se d do registru B

LDA 101h do registru A se nate Y

ADD B k registru a se pite registr B

STA 100h obsah registru A se ulo do X

X:= X-Y

LDA 100h nate do A X

MOV B, A do B za A

LDA 101h nate do A Y

CMA inverze registru A (umme jen stat, odetn = pitn opan hodnoty)

INR A piten 1 k A (doplkov kd)

ADD B piten (odeten)

STA 100h uloen

If X=Y then ANO else NE;

LDA 100h nate X

MOV B,A pesune registr A do B

LDA 101h nate Y

CMP B porovn B s registrem A (nastaven pznak)

JZ ANO podmnn skok pokud pznak Z (zero) je 1 => pokud X = Y tak jejich rozdl bude
0 => Zero 1

NE: .. JMP VEN

ANO: ..

VEN: .

If X<Y then ANO else NE;

LDA 101h naten Y

MOV B,A pesun A do B

LDA 100h naten X

CMP B porovnn A-B (Y-X) a nastaven pznak

JM ANO podmnn skok pokud S = 1 => pokud pznak zpornosti je 1

NE: . JMP Ven

ANO: .

VEN: .
If X<=Y then ANO else NE;

LDA 100h naten X do A

MOV B,A penesen A do B

LDA 101h naten Y do A

CMP B porovn B-A (Y-X)

JP ANO podmnn skok pokud S = 0

NE: JMP VEN

ANO:

VEN:
If I>=X do BLOK;

Navc promnn 102h i

OPAKUJ: blok opakuj


o
LDA 100h naten X
o
MOV B,A pesun do B
o
LDA 102h naten i
o
CMP B porovnn i-X
o
JP BLOK pokud S=0 tak sko na BLOK
o
JMP KONEC nepodmnn skok na konec

BLOK: JMP OPAKUJ

KONEC:
For i:=1 to X do Blok;

0FFh: 1

100h: X

102h: i

LDA 0FFh nate 1

STA 102h ulo do i:=1

CYKLUS:
o
MOV B,A do registru B pesune A (i)
o
LDA 100h nate X do A
o
CMP B porovn A-B (X-i)
o
JM KONEC pokud S=1 tak sko na konec

BLOK:.. pkazy bloku

LDA 102h do registru A pia i

INR A zveti registr A o 1

STA 102h registr A ulo do i

JMP CYKLUS

KONEC

Zsobnk
-

struktura typu LIFO last in, first out


me bt umstn kdekoliv v pamti
zsobnk m dno (BOTTOM) a vrchol
zsobnk charakterizuj dv operace PUSH (uloen do), POP (vybrn z)
pidv se i bere na vrchol zsobnku
na vrchol zsobnku ukazuje registr SP (Stach Pointer)
zsobnk roste od vych adres k nim, data naopak

Registr SP (Stach Pointer)


ukazuje na vrchol zsobnku
je 16ti bitov
pln se instrukc LXISP
Instrukce LXISP (Load Immadiate)
instrukce vezme zadanou hodnotu a ulo ji do registru
fze instrukce
o
PC -> AR, 0 -> WR, DR -> IR vybrn operanho znaku
o
PC+1 -> AR, 0 -> WR, DR -> TAl
o
PC+2 -> AR, 0 -> WR, DR -> TAh
o
TA -> SP
o
PC + 3 -> PC
Instrukce PUSH
uloen do zsobnku
PSW Procesor Status Word registr obsahujc pznaky

FI (Flags, pznaky uspodan do registru)


fze instrukce (194 ??????)
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
SP-1 -> AR, B D H A -> DR, 1 -> WR zapsn
o
SP -2 -> AR, C E L FI-> DR, 1 -> WR zapsn
o
SP-2 -> SP zven (snen) hodnoty ukazatele SP
o
PC + 1 -> PC dal instrukce
Instrukce POP
naten ze zsobnku
fze instrukce
o
PC -> AR, 0 -> WR, DR -> IR vbr operanho znaku
o
SP -> AR, 0 -> WR, DR -> C E L FI ten
o
SP +1 -> AR, 0 -> WR, DR -> B D H A ten
o
SP+2 -> SP zven (snen) hodnoty ukazatele SP
o
PC + 1 -> PC dal instrukce
- pozor zsobnk v 8080 nem dnou kontrolu podteen

Zsobnk a voln podprogramu


-

CALL adresa zavol program


RET nepodmnn skok zptky za instrukci CALL
Instrukce CALL
o
PC -> AR, 0 -> WR, DR -> IR operan znak
o
PC + 3 -> TA
o
SP 1 -> AR, TAh -> DR, 1 -> WR zpis
o
SP 2 -> AR, TAl -> DR, 1 -> WR zpis
o
SP 2 -> SP
o
PC + 1, AR, 0 -> WR, DR -> TAl
o
PC + 2, AR, 0 -> WR, DR -> TAh
o
TA -> PC
instrukce RET
o
PC -> AR, 0 -> WR, DR -> IR operan znak
o
SP -> AR, 0 -> WR, DR -> TAl
o
SP + 1 -> AR, 0 -> WR, DR -> TAh
o
SP + 2 -> SP
o
TA -> PC

Instrukce nepmho
-

Zavolme instrukci LDAX s parametrem 100h, na adrese 100h vak je dal adresa (tentokrt teba 200h) => musme pest jet
adresu 200h kde je hodnota => LDAX je ti podle adresy 100h
LDAX, STAX, JMPX
Nov registr TAX = TAXl + TAXh
voln funkce ukldalo nvratovou adresu na nejvy adresu
JMPX instrukce nepodmnnho skoku nepmo (nelze pout JMP protoe by procesor hledal na nvratov adrese instrukci my tam
ale mme adresu), JMPX 200h k sko podle adresy 200h tzn. procesor sko a zane provdt a podle adresy uloen na adrese
200h
Nefunguje zde rekurze, protoe pokud zavolme znova funkci CALL tak se znovu ulo nvratov adresa na nejvy adresu =>
pepeme si hodnotu minulho nvratu

Vstup/vstupn operace
-

instrukce
o
OUT zape obsah registru a na V/V sbrnici
o
IN pete obsah V/V sbrnice do registru a
o
START zahj V/V operaci
o
FLAG adresa skok na adresu, nen-li operace jet hotova
prbh vstup/vstupn operace
o
po sbrnici procesor pole data do v/v zazen
o
pole instrukci start (pro zahjen operace)
o
v/v zazen provede operaci a pole e je hotovo (FLAG)
penos do vstupnho zazen
o
1002h LDA 100h
o
1003h OUT pole data na sbrnici
o
1004h START zahjen
o
1005h FLAG 1005h flag ske sm na sebe dokud zazen nepole e to provedlo
penos z vstupnho zazen
1000h START
1001h FLAG 1001h
1004h IN
1005h STA 100h
time-out as kter jsem ochotn ekat na v/v zazen po tomto ase se ekn ukon

Multiprogramov zpracovn
-

provd se pomoc peruen (IRQ), priorit a pidlovn as procesoru

Peruovac systm (Interrupt Systm)

zkladn pojmy

program (statick), proces (dynamick, zapnut program)


peruovac systm umouje peruen bcho procesu a aktivaci rutiny pro obslouen peruen
innosti pi peruen
peruen provdnho procesu
klid registr
proveden obslun rutiny
obnoven registr, pokraovn provdnho procesu
proces lze peruit pouze mezi instrukcemi, bc instrukce mus dokonit vechny sv akce , z tohoto dvodu se zakazuje peruen v
prbhu provdn instrukce
IF Iterrupt Flag pznak peruen
STI (peruen povoleno, IF = 1
CLI (perun zakzano, IF = 0
procesor nelze peruit bezprostedn po zahjen obsluhy pedchozho peruen (mus se pokat na pedn procesoru dalmu
procesu)
pokud pijde dost o peruen bhem zakzanho stavu tak se toto peruen nezahazuje, ek se a bude peruen povoleno
bhem zakzanho peruen je velmi pravdpodobn e piel dal poadavek na peruen, proto pkaz STI provede jet jednu
instrukce kdu a a pak povol peruen
peruen se vyvolv signlem Interuppt
fze peruen
PC -> TA
SP 1 -> AR, TAh -> DR, 1 ->WR
SP - 2 -> AR, TAl -> DR, 1 -> WR
SP 2 -> SP
0 -> IF
adresa programu pro obslouen peruen -> PC
pklad obsluhy peruen
PUSH PSW klid registru PSW a registru A
PUSH B
PUSH D
PUSH H
obsluha peruen
...
POP H
POP D
POP B
POP PSW
STI - povolen peruen
RET - nvrat do peruenho procesu

Signl RESET
-

uveden do potenho stavu (definovanho stavu)


nastaven potae do potenho stavu a pedn zen programu v permanentn pamti (BIOS)
signl reset se uplatuje kdykoliv
fze RESET
o
0 -> IF zakzn peruen
o
64512 -> PC skok nkam do pamti ROM
innosti po zapnut potae
vykn (asi 1s) doba nbhu a ustlen napjen
signl RESET

Virtuln pam

operan pam + odkldac prostor na disku (swap) = virtuln pam


rmce i strnky maj 4 KB
strnky jsou na disku, rmce jsou v pamti
strnek je vc ne rmc
rozliujeme virtuln adresu (pouvaj programy) a relnou adresu (msto, kde skuten je virtuln adresa uloena v pamti)
musme proto pouvat pevod z virtuln adresy na relnou
pevod adresy
slo strnky (12-31 bit) se pevd na relnou adresu pomoc transforman tabulky
adresa na strnce (spodnch 12 bit adresy), se netransformuj, pouze se pep do reln adresy
transforman tabulka
ti sloupce
R/V (reln/virtuln) pznak zda je konkrtn strnka v reln nebo virtuln pamti

vnj adresa (kde je strnka uloena na disku)


slo rmce (pokud je v pamti je zde adresa rmce
pinav strnka strnka ve kter se mnila hodnota dat
co kdy jsou vechny strnky obsazen? - vyberu ob (pomoc njakho algoritmu vyberu strnku kterou odstarnm z pamti a
uvolnm tm msto pro jin data), pokud nen strnka pinav sta prohlsit prostor za przdn pokud je pinav mus se vylt na disk
(znovu zapsat)

Realizace LRU (least recently used)


-

algoritmus, kter hled za ob obsah rmce kter byl nejdle nepouvan


kad rmec s sebou nese informaci o nepouit, pokud rmec pouiji tak vynuluji jeho hodnotu a vem ostatnm rmc jejich hodnotu
zvm o 1
pokud chci nsledn najt ob tak je to rmec s nejvym slem
vlastn realizace
o
nepln matice nad hlavn diagonlou (trojhelnk)
o
pi voln i-tho prvku se jednikuje i-t dek a nuluje i-t sloupec
o
nejdle nepouit pamov msto m potom v dku sam nuly a ve sloupci sam jedniky

Vyrovnvac (cache) pam


-

pouv se na urychlen njak innosti


nap. mezi procesorem a pamt
o
urychluje ten procesor je napojen na pam pes cache tzn. pokud poaduje adresu kter je jich v cache dostane odpov
hned, nemus ekat na pomalou operan pam
o
urychluje zpis nemus se vdy pepisovat z VP do OP (opakovan zmna nemus se pst kad, ale a vsledn hodnota a
nebo pokud pam se hodnota nezmnila tak se nemus pepisovat)
problm cache pokud k jedn pamti pistupuj dv zazen me nastat situace kdy se v pamti cache ocitnou nevalidn data

Procesor Intel 8086, 8088


-

16 bitov
1978 1982
zkladn procesor ady x86
frekvence max. 10 MHz
8088 16bitov, pro 8bitov prosted (tlak trhu)

Zapojen prosesor
-

16bit adresace (D0 D15)


20bit na data (sdlen noiky s adresac, AD0-AD19)
INTR interrupt (dost o maskovan peruen)
TEST signl testovateln instrukc WAIT
NMI nemaskovan peruen
GND zem
UCC napjec napt
CLK clock, taktovn
RESET okamit ukonen innosti CPU, pedn zen na adresu pamti ROM
LOCK uzamen sbrnice pro procesor
M/IO rozliuje zda pam nle na V/V nebo je v procesoru
WR signl pro pamt (write/read)

Zpracovn dat
-

16bit nativn (sla)


little-endian data v procesoru
zpracovn BCD sel
bitov etzce (pole)

Adresace pamti
-

neum podporu pro virtuln pam ani pro segmentaci a strnkovn


1MB adresovateln pamti (20 bitov adresa), v praxi 640 kB (zbytek rezervovno pro zavad apod)
tvar adresovn segment : offset
jak to funguje
o
procesor pouv 20bitovou adresu pro pam
o
tu zskme ze dvou 16ti bitovch adres (segmentu a offsetu)
o
(16bit segmentu)0000 + 0000(16bit offsetu)
o
segment tedy me bt maximln 1111 1111 1111 1111 0000
segment = velikost oblasti nad adresou v segmentovm registru (maximln 64 KB = 216 bit)
offset adresa uvnit segmentu
pro uloen segmentu poskytuje procesor tyto registry
o
CS (Coded segment) uren pro vpoet adresy instrukce (nap. vbr operanho znaku nebo operandu)
o
DS (Data segment) uren pro vpoet adresy dat (pi pstupu k datm, vyjma zsobnku a pmch operand)
o
SS (Stach segment) pouv se pro pstup k zsobnku
o
ES (Extra segment) obvykle obsahuje pomocn datov segment
prce s pamt
o
do instrukc se msto adresy vkld pouze offset
o
nap. LDA offset
o
segmentovm registrem se pot uruje kde je segment umstn v pamt

zsobnk v pamti
o
instrukce POP, PUSH mn pouze offset, segment zstv, zsobnk proto neme vytct protoe vdy zstane v 64 KB

Registry
veobecn registry voln pouit
SP stach pointer (vrchol zsobnku)
BP base pointer (adresa bze zatku zsobnku)
SI source index (indexovn)
DI destination index
DX Data (skld se ze dvou - Dl, Dh)
CX Counter (skld se ze dvou - Cl, Ch)
BX Base (skld se ze dvou Bl, Bh)
AX Acumulator (skld se ze dvou Al, Ah)
segmentov registry
viz. o kousek ve
dc registry registry pznak
IP instruction pointer
F flags
Implicitn piazen segmentovch registr k registrm
SP -> SS
BP -> SS
BX -> DS
SI -> DS
DI -> DS (ppadn ES)
BP v kombinaci s SI, DI -> SS
BX v kombinaci s SI, DI -> DS
explicitn piazen
nap. MOV AH,CS:[BX] -> nepm adresa CS:BX
pznakov registry
CF (Carry Flag) obsahuje penos z nejvyho bitu
PF (Parity Flag) nastav se na jedniku, pokud doln osmice bit vsledku prv proveden operace obsahuje sud poet 1 (sud
parita vsledku)
AF (Auxilary Flag) rozen CF, penos na plbajtu
ZF (Zero Flag) pznak nulovosti
SF (Sign Flag) kopie znamnkovho bitu operace
OF (Over Flag) pi peteen (pokud vsledek spad mimo rozsah zobrazen)
TF (Trap Flag) nenastavuje procesor, ale programtor, definuje se tm chovn procesoru zde je to po kad instrukci dojde
k peruen (vhodn pro krokovn algoritmu)
IF (Interrupt Flag) pokud je nula tak brn nemaskovanm peruenm (signl INTR)
DF (Direction Flag) d smr zpracovn etzcovch operac (zepedu / zezadu)

Zsobnk

me bt kdekoliv v operan pamti


vechny odkazy na zsobnk jsou vedeny pes segment SS

opt se pln zvrchu dol


ochrana proti peteen (zsobnk neme vytct ze svho segmentu)
dno zsobnku nap. SS:01A1
vrchol zsobnku SS:SP
PUSH
1) sn obsah registru SP o 2
2) na adresu SS:SP ulo obsah 16ti bitovho operandu
POP
operand napln 16bitovm obsahem SS:SP
zv SP o 2
procesor 8086 nem mechanismus kterm by hldal maximln mez zaplnn zsobnku

Peruen

procesor m vlastn (intern) oslovn peruen (celkem 256 rznch rozliitelnch peruen), u kadho eviduje adresu kam pedat
zen v ppad e peruen nastane
tyto vci jsou uloeny na nejvych adresch (0:0000) vdy po 4 bajtech => dal 0:0004
vnj pchz pes signl interrupt (INTR) nebo pes nemaskovateln peruen (NMI), do nemaskovatelnho peruen se ukld
napklad peruen kvli chyb dat z pamti (chyb pi ten)
vnitn chyby kter vznikaj pi bhu programu (napklad pokus o dlen nulou)
rutiny obsluhujc peruen jsou uloeny na nejvych adresch
akce pi peruen
do zsobnku se ulo registr pznak F
vynuluj se pznaky IF, TF (zkazno peruen)
do zsobnku se ulo registr CS
registr CS se napln obsahem adresy n * 4 + 2 (adresa na kterou se m pedat zen)
do zsobnku se ulo registr IP
registr IP se napln obsahem adresy n * 4 (pejde se na provdn adresy kam bylo pedno zen
nvrat do peruenho procesu
pomoc funkce IRET
ze zsobnku se obnov registry IP, CS, F
rezervovan peruen
pi signlu peruen se zrove s peruovacm signlem pivede slo peruen
pokud dojde k peruen, adresa CS:IP ukazuje na instrukci kter jej vyvolala (u 80286 a vych se ukazuje NA instrukci kter jej
vyvolala)
0 dlen nulou
1 krokovac reim
2 - NMI (nemaskovan peruen), nap. chyba parity pamti apod.
3 - ladc bod (breaking point)
4 - peplnn (overflow trap)

Poten nastaven procesoru

zkladn nastaven po signlu RESET


pznakov registr = 0
IP = 0
DS, ES, SS = 0
CS = 0FFFFh
tzn. prvn instrukce kterou bude procesor zpracovvat je na adrese 0FFFF:0000= 0FFFF0h (15 bajt od konce)

Adresovac techniky

registry koprovn mezi registry


nap. MOV AH, BL
pm operand do registru se d pm hodnota operandu
nap. MOV AH, 50 do registru se d konstanta 50
pm adresa v instrukci je uloena adresa pamti kter m bt vybrna
MOV AH, PROM PROM je nvt, symbolick jmno ukazujc na pam
MOV AH,BX
pouvaj instrukce LDA, STA
nepm adresa
pouvaj instrukce LDAX, STAX
MOV AH,[BX] do registru AH dej data kter jsou na adrese, kter je v registru BX
dle varianty nepmch adres, adresu adresovan pamti mohou tvoit a 3 sti (pevn adresa, bzovac registr, indexovan adresa)
bzovan adresa
MOV AH,[BP+PROM]

indexovan adresa
MOV AH, [PROM+SI]
dal
bze + indeex
pm + bze + index
segment: pm adresa + bze + index

Instrukce MOV

instrukce MOV nemn pznaky


MOV registr, registr
MOV registr,[adresa pamti]
MOV registr,konstanta
MOV r/m16,r16 pesun mezi 16bitovmi registry
MOV r/m8,r8 pesun mezi 8bitovmi registry
instrukc MOV nelze plnit segmentov registr CS zmnila by se adresa instrukce, kter se m vykonat v nsjedujcm kroku
MOV SS, - ukazatel dna zsobnku (SS+SP) lze mnit po proveden instrukce MOV SS se na domu dal instrukce zake
peruen (aby nedolo k pokaen adresy dna zsobnku napklad provedenm peruen), tm dostvme anci v dal instrukci zmnit
adresu SP tak aby hodnota adresy dna zsobnku byla opt funkn

Aritmetick instrukce (celoseln)


Rozen z 8bitovho sla na 16bitov
znamnkov bit objektu kter se m rozit se rozkopruje do vech bit objektu o kter se roziuje
nap. slo 01110000 -> 0000000001110000
Instrukce ADD
celoseln instrukce
pitn, k obsahu prvnho parametru se pite obsah druhho parametru
ADD registr, registr
ADD registr, konstanta
instrukce ADD respektuje znamnka -> pokud pitme 8bitov registr k 16ti bitovmu provede se nejdve rozen na
16bitov (viz o kousek v) a a pot se pite
nap. ADD CX, 10 => CX = CX+10
Instrukce ADC (ADD with carry)
stn s penosem
pro sla vt ne je ka procesoru (v naem ppad vc ne 16bit)
nap. ADC AL,CL => AL = AL+CL+CF (carry flag)

32bitov stn
nejdve instrukc ADD seteme prvnch 16bit
jeliko dolo k peteen tak z 15bitu je ped pznak CF (Carry Flag)
nyn pouijeme instrukci ADC kterou seteme dalch 16bit a k nim piteme pznak CF
Instrukce SUB (SUBTRACTION)
odtn
SUB AL,CL => AL = AL-CL
Instrukce SBB (Subtraction with borrow)
odtn s penosem (podobn jako ADC u stn)

SBB AL,CL => AL = AL CL CF


Instrukce CMP (Compare)
srovnn
CMP AL,CL => nastaven pznak pro vsledek AL-CL
Instrukce INC (Increment)
zven o jedniku
INC DX
Instrukce DEC (Decrement)
snen o jedniku
DEC DX
Instrukce NEG
dvojkov doplek (zmna znamnka)
invertace bit a piten jedniky
NEG DX => DX=-DX
Instrukce CBW (Convert byte to word)
pevede byte na slovo
Instrukce CWD (Convert word to doubleword)
pevede slovo na dvojslovo (vy a ni bity)
Instrukce IMUL (Signed multiplication)
m pouze jeden parametr, vdy se nsob registr AL (8bit) s hodnotou zadanou v parametru
nsoben s respektovnm znamnka
8bitov nsoben IMUL BL => AX:= AL * BL
16bitov nsoben IMUL CX => DX&AX:= AX * CX
Instrukce MUL (Unsigned multiplication)
neuvauje znamnkov bit, jinak stejn jako IMUL
Instrukce IDIV (Signed Divide)
opt m pouze jeden argument, podobn jako u nsoben
funkce vrac celoseln dlen a zbytek po dlen
je-li podl vt ne rozsah zobrazen pak se nastav pznak dlen nulou => INTR 0
8bitov dlen IDIV BL => AL= AX / BL; AH = AX modulo BL
16bitov dlen IDIV CX => AX=DX&AX / CX; DX=DX&AX modulo CX
Instrukce DIV (Unsigned divide)
stejn jako IDIV pouze neznamnkov

Logick instrukce
Instrukce AND - logick souin po bitech
Instrukce OR logick souet
Instrukce XOR nonekvivalence
Instrukce NOT inverze vech bit (jednikov doplnk), nemn pznaky
Instrukce TEST (Logical compare)
logick strovnn
nap. TEST AL,7 => F:= AL ^ 7 => nastav pznaky

Rotace

rotace bit
u 8086 neomezen poet rotac => mem toit furt dokola
u 80286 a vych omezen potu rotac na 1Fh
Instrukce ROL (Rotate Left)

rotace doleva
ROL objekt, o kolik bit rotovat
CF = bit kter odrotoval na nejni adresu
OF je definovno pouze pi rotaci o jeden bit tj. pokud se hodnota CF nerovn novmu nejvymu bitu
OF = CF bitn-1
Instrukce ROR (Rotate Right)
rotace vpravo
OF = bitn-1 bitn-2

Intrukce RCL (Rotate Left Through Carry)


rozen registru o pznak penosu, rotace vleno

Instrukce RCR (Rotate Right Through Carry)


obdoba RCL

Posuvy
Instrukce SAL (Shift Aritmetic Left)
aritmeticky posun vlevo
aritmetick nsoben 2n
provd tut akci jako SHL(Shift Logical Left)

OF = CF bitn-1
Instrukce SAR (Shift Aritmetic Right)
aritmetick posuv vpravo

aritmetick dlen 2
OF = 0
Instrukce SHR (Shift Logical Right)
nerespektuje znamnkov bit

Vtven programu
JMP nepodmnn skok
pm skok (clov adresa je v instrukci)
vzdlen skok (far jump)
mn CS registr
pln CS:IP
blzk skok (near jump)

nemn CS
st se neznamnkov
na vzdlenost <0;65535>
krtk skok (short jump)
nemn CS
st se znamnkov
na vzdlenost <-128;+127>

JMP (nepodmnn skok)

Pm skok

clov adresa je v instrukci (kam se m pedat zen)

mn CS
o
vzdlen skok
o
CS:IP

nemn CS
o
vzdlenost <0,65535> = blzk skok (bez znamnka)
o
vzdlenost <-128,127> = krtk skok (se znamnkem)

v instrukci je odkaz na:

registr, kter obsahuje adresu clov adresy

pam (segment:offset, offset)


podmnn skoky

pouze pro krtk skoky <-128,127>

EQ ==

NE <>

LT <

LE <=

GT >
o

GE >=

Zsobnk

o
PUSH
o
POP
Voln a nvrat z podprogramu
o
CALL (do zsobnku ukld nvratovou adresu a sko na instrukci v argumentu

Blzk skok CALL r

Dalek skok CALL s:r


RET nvrat do podprogramu
o
Mus pout blzk/dalek skok podle toho jak skkal CALL
Peruen
o
INT interrupt
o
Vyvol peruen tak jakoby nastalo
Cykly
o
LOOP
Ovldn V/V zazen
o
IN penos slabiky nebo slova z V/V brny do registru AL/AX
o
OUT obrcen
Dal instrukce
o
XCHG xChange zamn obsahy dvou registr, pamti a registru, pamti a pamti
o
XCHG AL, AL neprovede nic podobn jako jednobajtov instrukce NOP (no operation) operace je vhodn pokud
vm e budu opakovat njak cyklus teba milionkrt. Z pamti procesor bere data po 4 bajtech, tj lze adresovat pouze
pamov msta dliteln 4mi. Pokud by cyklus s opakovnm zanal na pamti kter nen dliteln 4mi pak by se
z pamti museli nast bajty kter se zahod, proto je vhodn ped takovto cyklus proloit operace NOP tak aby
vlastn cyklus zanal na adrese dliteln 4 a nemuseli se tak naten data zahazovat
o
HLT HALT zastaven procesoru, oekv se peruen, nemaskovan peruen nebo signl reset
o
ESC tato instrukce nen urena normlnmu procesoru, ale koprocesoru
o
WAIT chci ekat na dokonen instrukce v koprocesoru
o
LOCK instrukn prefix zamykajc sbrnici po dobu trvn instrukce, pepne chovn nsledujc instrukce, pokud teba
dva procesory ahaj do t sam pamti a my nechceme aby si v dob vykonvn urit akce uzamkne dalm procesorm
pstup ke sbrnici, v ppad e je sbrnice zamen tak pkaz lock zjist e je zameno a ek a bude mon pistoupit ke
sbrnici, jakmile se sbrnice odemkne tak si ji lock zamkne pro sebe a vykon instrukce
etzcov instrukce
o
Instrukn prefix REP provdn instrukce tak dlouho dokud nen vynulovn registr CX
Instrukce pro podporu BCD aritmetiky
o
Piprav sla v BCD kdu na normln sla pro proveden bnou aritmetikou
Procesor 80286
16bit
24bitov sbrnice
dva reimy
o
reln (pro inicializaci procesoru, je sluiteln s 8086 (kompatibiln)
o
chrnn reim po pepnut se nejde vrtit zptky z chrnnho reimu, 4 rovn ochrany, zapn se programov
z relnho reimu
pznakov registry
o
IOPL uruje rove oprvnn, vy hodnota = ni rove oprvnn (0-3 => 2bitov registr)
o
NT uruje reim prce instrukce IRET
registr MSW (Machina Status Word)
o
PE zapn chrnn reim procesoru
o
MP indikuje ptomnost koprocesoru (fyzick ptomnost)
o
EM zapn emulaci koprocesoru (pokud jej nemme tak se vpoty v relnch slech provdj na procesoru pomoc
upravench vpot na celoseln aritmetice)
o
TS nastavuje se vdy pepnutm procesu (v procesu b proud instrukc, najednou dojdou instrukce pro koprocesor,
koprocesor zan potat, ale procesor nen vyuit proto se provede peruen a procesor zane potat jin proces, mezitm
vak koprocesor chce vrtit data do cpu, ale tam ji b jin proces a proto je teba ped vracenm hodnot zkontrolovat zda
nebylo pepnuto pokud bylo provede se peruen pokud ne provede se rovnou nvrat hodnot
Adresace pamti v chrnnm reimu
segment je definovn adresou zatku segmentu, dlkou segmentu ve slabikch -1, pstupovmi prvy a typem segmentu
globln adresov prostor pro cel systm 1 globln adresov prostor
lokln adresov prostor pro kad proces 1 lokln adresov prostor
virtuln adresa (selektor:offset) vzdlenost od zatku tabulky:ukazatel do tabulky
selektor 16ti bitov obsahuje rove oprvnn, table indicator (zda se ukazuje do globln nebo lokln) a pak index do tabulky
popisova segment
Transformace virtuln pamti
limit segmentu nepekroiteln adresa
bze segmentu pstupov prva o jak typ segmentu jde (data, instrukce apod)
2 bajty zbvaj nechvaj se nulov
rovn oprvnn
4 rovn (0 nejvy, 3 nejni)
DPL, CPL, RPL, EPL
Prock 80386
32 bitov adresa i data

1986-1994
16 - 40 Mhz
DX plnohodnotn
SX 16bit datov sb., 24 bit adresov
i387 koprocesor
386SL pro notes
Noiky
D0-D31 datov sb.
A1-A31 adresov sb.
Registry
pvodn registry
rozen na 32 bit
Pznaky
VM (Virtual 8086 mode) pouze v chrnnm reimu, pot proces b jako na 8086
Adresace
selektor ukazatel do tabulek (stle 16 bitov)
offset pipotv se
limit segmentu 4 GB 1
linern adresa adresa vstupujc do mechanismu strnkovn
strnkovn se mus zapnout, pokud nen tak linern = fyzick pokud je zapnut mus se pevst
popisovae segment (8 bajt) bze segmentu je rozdlen na 3 sti (16, 8, 8 bit)
G (Granularita) je mon adresovat bu 16 nebo 32 bit a podle toho je nastaven tento bit, zrove uruje jednotku limitu (velikost
adresovan pamti) u 16 bit je to 1B u 32 je to 4 kB
B (big) nastavuje 16/32 bitov reim
dc registry
PE zapn chrnn reim
ET (extension type) sdluje typ instalovanho koprocesoru (287, 387)
PG zapn strnkovac jednotku
Strnkovn
dolnch 12 bit se netransformuje
12 bit tabulky (pes strnkovac tabulky)
12 bit strnkov adres
cenzurovno (2 hodiny bez zpisu)
TLB onakej buffer
CR3 ukazuje na strnkov adres
TSS tabulka 80386
sem se ukld stav vech registr pi peruen aby mohlo dojt k nvratu
offsetov mapa V/V bran vzdlenost mapy od zatku segmentu
Ladc peruen
14 peruen vpadek strnky
x86-64 architektura
pln zptn kompatibiln
64bit long mode
64bit virtuln adresa, 52bit fyzick
zruena segmentace
strnkovn
o
podporuj 4KB strnky nebo 2MB strnky
o
strnkov tabulka 64bit, dolnch 21bit adresace, dal bity jsou adresa
AMD64
IA64
od Intel
nen kompatibiln s x86, kompatibiln pouze ve velmi omezenm reimu (64bitov RISC procesor a druh 32bitov obyejn INTEL)
Itanium
Mikroprocesor i860
RISC procesor
nen kompatibiln x86
ast ve vektorovch tiskrnch
samostatn jednotky (grafick, staka, nsobika) u jinch cpu je ve integrovan do ALU
moc registr, 32 32bitovch registr
registr r0 je vdycky 0 pokud potebuju nap. do r2 piadit 1 tak u CISC musm v pamti vyhradit prostor, pojmenovat jej, uloit 1 a
penst do registru u RISC procesor se sname minimalizovat pstupy do pamti tzn, pesuneme obsah r0 do r2 a udlme jednu
inkrementaci
Registr Bypassing neek se a data dojdou do registru, ale meme data brt pmo od minul instrukce kter data teprve posl do
registru a to pmo se sbrnice
Delayed Branch ped provedenm skoku se provede jet jedna instrukce za nm, tomu se k spodn skok RISC jednotka
rozpracovv instrukce hodn dopedu, tzn. Pokud zjist e se m skoit je ji dal instrukce skoro dokonen proto je j koda
nevykonat, proto se jet vykon a a po n se provede skok, toto mus fovat kompiltor
U RISC procesor nemohou pracovat instrukce s pamt, pouze s registry (mimo load a store)
2 varianty podmnnho skoku, kompiltor vyhodnocuje zda se pravdpodobn sko nebo nesko a podle toho zane rozpracovvat
dal instrukce (pipelining)(instrukce BCT pravdpodobn se sko, instrukce BC pravdpodobn se nesko)
Koprocesor
procesor sleduje instrukn tok a jakmile je instrukce uren pro nj tak ji provede
reln slo exponent, mantisa mantisa x 2^exponent
Normalizovn mantisy

prvn nejvy bit mantisy se nemus zobrazovat, protoe vdy je 1


Normalizovan tvar mantisy
pevedeme si ji do tvaru 1.xxxxxxxx
100,01 = 1,0001 x 22
zapisujeme
o
znamnko
o
exponent
o
0001 (mantisa)
tento formt je vhodn pro porovnn sel (je mon nejdve porovnat exponenty a a pot vlastn mantisy slice
Exponent v kdu posunut nuly
slo 12.5
nejdve pevedeme do dvojkovho kdu => 1100.1
upravme => 1.1001 x 23
pevedeme do kdu posunut nuly => seteme 3 ku vyjdenou v binrnm kdu (00000011) a piteme k temu posun nuly (01111111)
Zvltn sla podle IEEE 754
0
1
kladn nekoneno
zporn nekoneno
Rozhran EPSON
paraleln rozhran uren pro vstup

You might also like