You are on page 1of 62

Számítógép architektúrák előadás

féléves tematika

1. Munkavédelem, történeti 8. Kódolás, memória, SSD


áttekintés, alapfogalmak 9. Memóriakezelés, malware
2. A processzorokról 10. Beágyazott rendszerek,
3. Hűtés és grafika vékony kliens megoldások
4. Chipset, sínrendszerek, 11. Mobil eszközök: tabletek,
okostelefonok, netbook-
portok, bemeneti
ok, ebook olvasók
eszközök, nyomtatás
12. Számítógépvírusok,
5. Megjelenítés, monitorok vírusvédelmek
6. Mágneses adattárolás 13. Adattömörítés, 3D
7. Optikai/magnetooptikai
adattárolás
1
Számítógép architektúrák
8. Előadás

Kódolás, memória, SSD

Az előadások anyaga elérhető


az Ilias-on
2
1 3 5 7 9 11 13 15
17 19 21 23 25 27 29 31
33 35 37 39 41 43 45 47
49 51 53 55 57 59 61 63
3
2 3 6 7 10 11 14 15
18 19 22 23 26 27 30 31
34 35 38 39 42 43 46 47
50 51 54 55 58 59 62 63
4
4 5 6 7 12 13 14 15
20 21 22 23 28 29 30 31
36 37 38 39 44 45 46 47
52 53 54 55 60 61 62 63
5
8 9 10 11 12 13 14 15
24 25 26 27 28 29 30 31
40 41 42 43 44 45 46 47
56 57 58 59 60 61 62 63
6
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
7
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 57 58 59 60 61 62 63
8
Számrendszerek
A számrendszerek közül a kettes és a tizenhatos
számrendszer bír kiemelkedő fontossággal a
computerek világában. A mai számítógépek a
Neumann-elveknek megfelelően bináris kódolást
használnak. Ezt a legkönnyebb megvalósítani
elektronikai szempontból (jön jel a madzagon, vagy
nem). A hexadecimális számrendszer könnyen
átalakítható kettessé és viszont, és ebben felírva a
számok sokkal rövidebbek.

9
Számrendszerek közötti konverzió
Decimális Hexadecimális Bináris
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1100
13 D 1101
14 E 1110
10
15 F 1111
Helyiértékes számábrázolás:
Egészek
an an-1 … a1 a0 = anpn + an-1pn-1 +… a1p + a0
ahol P>=2 és 0 <= ai <= P-1
Pl.
P=10; 0 <= ai <= 9
153 = 1*102 + 5*101 + 3
11
Pl.
P=2; 0 <= ai <= 1
1011012 = 1*25 + 1*23 + 1* 22 + 1* 20 =
32 + 8 + 4 + 1 = 45

12
Pl. P=16; 0 <= ai <= 15
A2B16 = 10*162 + 2*161 + 11*160 =
= 2560 + 32 + 11 = 260310

10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16 1 2 3 4 5 6 7 8 9 A B C D E F

13
Törtek:
0.b1 b2 … bm-1 bm = b1p-1 + b2p-2 +… bmp-m
ahol P>=2 és 0 <= bj <= P-1
Legkisebb szám = P -m ; ha P=10,
akkor 0.000…1
Legnagyobb szám = 1- P -m ; ha P=10,
akkor 0.999…9
14
Pl. P=2; 0 <= ai <= 1
A "kettedes" törtek ábrázolása: A "kettedes" vessző
utáni helyiértékek 2 negatív hatványai.
0,0110101=
=0*2-1+1*2-2+1*2-3+0*2-4+1*2-5+0*2-6+1*2-7=
=0,25+0,125+0,03125+0,0078125=
=0,4140625

15
Átváltás tízesről kettes számrendszerbe:
Egész számoknál a számot kettővel kell osztani, a
maradékot oldalra írni, a hányadossal tovább
folytatni az osztást egészen addig, amíg a hányados
0 nem lesz.
180 0
Pl. 18010 = 101101002
90 0
45 1
22 0
11 1
5 1
2 0
1 1
0 16
Törtek esetén a számot szorozzuk kettővel, az egész részét
írjuk ki, a törtrészével folytassuk a műveletet addig, amíg a
törtrész nulla nem lesz, vagy meg nem unjuk a dolgot.
(Azaz el nem értük a kellő számú "kettedes"-jegyet.)
Pl. 0,414062510=0,01101012
0,4140625
0,828125 0 0,4140625 x2 = 0,828125, egészrésze 0
1,65625 1 0,828125 x2 = 1,65625, egészrésze 1
1,3125 1 0,65625 x2 = 1,3125, egészrésze 1
0,625 0 0,3125 x2 = 0,625, egészrésze 0
1,25 1 0,625 x2 =1,25, egészrésze 1
0,5 0 0,25 x2 =0,5, egészrésze 0
1 1 0,5 x2 = 1, egészrésze 1
0 17
Átváltás kettesről 16-os számrendszerbe:
Jobbról balra 4 jegyenként csoportosítjuk a
számokat és egyszerűen leírjuk a 16-os
számrendszerbeli megfelelőjét
110001101011101102 =
1 1000 1101 0111 0110 = 18D7616
1 8 D 7 6

18
Átváltás 16-osról 2-es számrendszerbe:
Jobbról balra haladva egyszerűen leírjuk a szám 2-
es számrendszerbeli megfelelőjét
AF7C16 = 1010 1111 0111 11002

19
Adatábrázolás a számítógépben
Fixpontos számábrázolás (fix point)
X fixpontos egész fixpontos tört

előjelbit:
bináris pont helye
0=+
1=-

X fixpontos egész

Igen gyakran csak egészeket ábrázolnak.


Ha nem egészeket kell ábrázolni, a lebegőpontos
számábrázolást használják. 20
Negatív szám ábrázolása: (bit-ek száma: n)

Előjeles, abszolút értékes

Az előjelbit utáni n-1 bit-en a szám abszolút értékét


tárolják. Az ábrázolható legnagyobb szám: 2 n-1-1
pl. n=8 esetén
-107 = 1 1 1 0 1 0 1 1

21
Egyes komplemenskódú
Az előjeltelen számot 2n-1-1 -re kiegészítő szám.
Minden bit-et az ellenkezőjére kell váltani az
előjelbit kivételével (komplementálás).

-107 = 1 1 1 0 1 0 1 1

1 0 0 1 0 1 0 0

22
Kettes komplemenskódú
A számot 2n-1-re kiegészítő szám.
1. módszer
Képzése: a szám 1-es komplemenséhez 1-et hozzá
kell adni. Könnyű áramkörökkel megvalósítani.

1 0 0 1 0 1 0 0

1 0 0 1 0 1 0 1
23
2. módszer
Az előjeltelen számon jobbról indulva az első
1-esig (azt is) hagyjuk változatlanul a számokat, a
többit pedig az ellenkezőjére váltjuk az előjelbit
kivételével.

-107 = 1 1 1 0 1 0 1 1

1 0 0 1 0 1 0 1

24
Műveletek fixpontos számokkal
Összeadás
Pl.: 8 biten tárolva, első bit az előjelnek
2210 = 0 00101102 = 16 + 4 + 2
9010 = 0 10110102 = 64 + 16 + 8 + 2
--------------------------------------------------------
11210 = 0 11100002 = 64 + 32 + 16

25
Kivonás
Visszavezethető összeadásra
Negatív szám tárolására a 2-es komplemenskódot
használjuk. Pl.:
9910 = 0 11000112 = 64 + 32 + 2 + 1
-6610 = 1 10000102 = 64 + 2
1 01111102 2-es kompl.
------------------------------------------------------------
3310 = 1 0 01000012 = 32 + 1 26
A legfelső helyiértéken esetlegesen keletkező
átvitelt (1), amely kicsordult (nincs a tárolására
hely), figyelmen kívül kell hagyni. Ha az eredmény
előjele 1-es értékű, azaz a szám negatív, akkor az
eredményt 2-es komplemens formában kapjuk
meg, ezért vissza kell alakítani.

27
Pl.:
510 = 0 00001012 = 4 + 1
-2710 = 1 00110112 = 16 + 8 + 2 + 1
1 11001012 2-es kompl.
------------------------------------------------------------
1 1101010 2-es kompl.
-2210 = 1 0010110 = 16 + 4 + 2

28
Szorzás
Gyakorlatilag ugyanúgy kell elvégezni, mint a tízes
számrendszerben, azonban mivel csak 0 és 1 létezik
vagy nullákat vagy az eredeti számot kell leírni.

1 0 1 * 1 1 0
0 0 0
1 0 1
1 0 1
1 1 1 1 0
29
A szorzás sorozatos összeadásra, az osztás pedig
kivonásokra vezethető vissza. A régi processzorok-
ban még nem volt külön utasítás a szorzásra és az
osztásra. Összeadásnál előfordulhat a túlcsordulás
(overflow), amikor az eredmény nagyobb, mint a
legnagyobb tárolható szám. Alulcsordulás (under-
flow), amikor az eredmény kisebb, mint a legkisebb
ábrázolható szám
16, 32 bites processzoroknál már van szorzási és
osztási utasítás. 32 bites processzorok esetében ez
kiegészül lebegőpontos műveleti utasításokkal is.
30
Lebegőpontos ábrázolás (törtek tárolására)
[ ] K
Számítástechnikai normál alak: S []M * P
ahol P-1<=M<=1. Pl.: 0,327*103 = 327 (P=10)
M: mantissza: fixpontos tört
K: karakterisztika: fixpontos egész
A számábrázolás pontossága a mantissza
számjegyeinek számától függ.
Az ábrázolható számok nagysága a karakterisztika
számjegyeinek számától függ.
31
Lebegőpontos ábrázolás 4 byte-on történik (32 bit)

karakterisztika mantissza
(8 bit) (23 bit)

2-2 2-3 2-4

mantissza bináris pont


előjele helye

32
A karakterisztika 0 <= K <= 255 (28-1) közötti
értéket vehet fel.
Azért, hogy negatív hatványokat is
ábrázolhassanak, eltolt kitevőt alkalmaznak (K’)
K’=K+128, így –128 <= K <= 127

33
A mantissza ½ <= M <= 1 közötti értéket vehet fel,
ábrázolva 0,1xxx…x (x=1 vagy x=0)
Mindig 1-es (2-1= ½ ) állna a bináris pont után,
ezért ezt nem ábrázolják, csak a többi számot
(emiatt 2-2 az első helyiérték a bináris pont után),
így nyerve még egy bit-et a szám ábrázolásához.

34
Példa: 01000011001011100000000000000000
mekkora számot takar?
1 8 23
0 | 10000110 | 01011100000000000000000 =
+ K’=134
K=K’-128=6
= +0,1010111*26 = 101011,1= 32 + 8 + 2 + 1 + ½
=43,5

35
A pontosság problémája lebegőpontos ábrázolásnál
is felmerül.
Példa: 0-ra normalizált (0,xxx*10 y) decimális szám
ábrázolása
mantissza 3 jegy
karakterisztika 2 jegy

36
Az ábrázolható számok tartományai látható az
ábrán.

1 2 3 4 5 6 7
Szám-
egyenes
0
-0.100 * 10 -99 +0.100 * 10 -99

-0.999 * 10 +99 +0.999 * 10 +99

Lebegőpontos számábrázolás tartománya

Cserny: Mikroszámítógépek

37
1. a -0.999 * 10+99 -nél kisebb negatív számok tartománya
2. a -0.999 * 10+99 - -0.100 * 10-99 közötti negatív számok
tartománya
3. a -0.100 * 10-99 -nél nagyobb, nagyon kis abszolút
értékű negatív számok tartománya
4. a nulla
5. a +0.100 * 10-99 -nél kisebb, nagyon kis pozitív
számok tartománya
6. a +0.100 * 10-99 - +0.999 * 10+99 közötti pozitív
számok tartománya
7. a +0.999 * 10+99 -nél nagyobb nagy pozitív számok
tartománya
38
Az 1., 3., 5. és 7. tartománybeli számok nem
ábrázolhatók (túlcsordulás, alulcsordulás).
Az 3. és 5. tartománybeli számokat gyakran 0-val
helyettesítik.

39
A lebegőpontos ábrázolást az IEEE 754
szabvány rögzíti.
 Egyre több processzor és szoftver gyártó
alkalmazkodik ehhez a szabványhoz.

Jellemző Egyszeres Dupla Kiterjesztett Négyszeres


pontosságú pontosságú pontosságú pontosságú
Előjelbit 1 1 1 1

Karakt. 8 11 15 15

Mantissza 23 52 64 112

40
Decimális számábrázolás
pl. BCD kóddal (Binary Coded Decimal) ábrázol-
ják a tízes számrendszerbeli számok számjegyeit.
Mivel 10 féle számjegyet kell egyértelműen kódol-
ni, ezért ehhez legkevesebb 4 bit (1 tetrád) szüksé-
ges
0 = 0000 4 = 0100 8 = 1000
1 = 0001 5 = 0101 9 = 1001
2 = 0010 6 = 0110 - = 1100
3 = 0011 7 = 0111 + = 1101
41
Az Intel coprocesszorokban (8087, 80287, 80387)
az előjel a BCD szám legkisebb tetrádján
helyezkedik el.
Pl.: BCD (Binary Coded Decimal) számábrázolás

- 2659

0000 0010 0110 0101 1001 1101

Előjelbit:
+ = 1100
- = 1101
42
Alfanumerikus (betű, számjegy, speciális jelek)
adatok tárolása
Célszerű akkor, ha nem akarunk aritmetikai
műveletet végezni az adatokon, csak tárolni,
rendezni, kigyűjteni, stb.

43
EBCDIC (Extended Binary Coded Decimal
Interchange Code)
Az IBM által, főleg nagy gépekben használt
kódrendszer

44
ASCII (American Standard Code for
Information Interchange) karakterábrázolás
A 7 bit-es ASCII kódtábla 128 írásjelet ábrázol.
A 8 bit-es (kiterjesztett) ASCII kódtábla 256
írásjelet ábrázol. A kódkészlet felső tartománya
nemzeti karaktereket, görög karaktereket, néhány
speciális írásjelet és félgrafikus jeleket tartalmaz.
Nincs benne pl. ő, ű. Ezek kezeléséhez Latin-2
kódtábla kell.

45
Unicode, avagy UCS (Universal Character Set) és az UTF-8
Eleinte úgy gondolták, hogy 2 byte; 216 (65536) elég lesz, de
később 4 byte; 231 (~kétmilliárd) lett az elvi határ.
Az UTF-8 egy jel kódolására 1–6 bájtot használ, a jel
elhelyezkedésétől függően. Az US-ASCII kódolás szerinti
karaktereket például egyetlen UTF-8 byte kódolja, az európai
ékezetes betűket pedig két UTF-8 bájt. Az alsó 128 érték
megegyezik a hagyományos ASCII-vel. Sőt, az alsó 256
megegyezik a Latin-1-gyel. A magyar ő és ű betűk tehát 256-nál
nagyobb azonosítót kaptak.
A különféle egzotikusabb betűírásokon (cirill, héber, arab stb.)
túl tartalmazza a kínai, japán, koreai írásjeleket, és számos
vezérlő karaktert, melyekkel például a jobbról balra írás
kapcsolható be és ki.
46
Unicode érték <-> UTF-8 bytesorozat
31. bit 0. bit
00000000 00000000 00000000 0xxxxxxx <->
0xxxxxxx
00000000 00000000 00000xxx xxxxxxxx <->
110xxxxx 10xxxxxx
00000000 00000000 xxxxxxxx xxxxxxxx <->
1110xxxx 10xxxxxx 10xxxxxx
00000000 000xxxxx xxxxxxxx xxxxxxxx <->
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
000000xx xxxxxxxx xxxxxxxx xxxxxxxx <->
111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx <->
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Minden Unicode karaktert a legkorábbi ráhúzható szabály szerint kell
UTF-8-ra átalakítani.
47
Az UTF-8 ábrázolási mód a következő tulajdonságokkal rendelkezik:
Kompatibilis az ASCII-val. Angol szöveg UTF-8 ábrázolása megegyezik annak
ASCII (vagy Latin-1 vagy Latin-2 stb.) ábrázolásával.
128-nál kisebb érték nem fordulhat elő több byte-ból álló sorozat belső byte-jaként
sem. Így az összes ASCII-ra vagy Latin-X-re megírt programkód, ami (például
fájlnevekben) pontra, perjelre vagy ilyesmire keres rá, helyesen működik UTF-8
esetén is.
Minden szimbólum legfeljebb 6 byte-ot foglal el. Mivel azonban az elképzelések
szerint az első 221 értéket nem fogjuk túllépni, legfeljebb 4 byte hosszú lesz minden
karakter ábrázolása.
A magyar ékezetes betűk mind 2 byte-ot foglalnak, míg a speciálisabb karakterek 3-
at. Tipikus magyar szövegre a Latin-2 ábrázolásmódhoz képest a méretnövekedés
durván 10%.
Minden byte-ról egyszerűen látszik, hogy ő egyedül áll (0xxxxxxx), a kezdő byte-ja-
e egy több byte-os sorozatnak (11xxxxxx), vagy egy későbbi byte-ja egy ilyennek
(10xxxxxx). A kezdő byte-ról egyszerűen látszik, hogy összesen hány byte-ból épül
fel a Unicode karakter (a bevezető 1-es bitek száma).
A 8-as szám arra utal, hogy a Unicode értékeket 8 bites egységekre képzi le.

48
Adattárolási, számolási hibák következményei:
1996.06.04. Ariane 6 rakéta 40 mp-el a start után
felrobbant. 64 bites lebegőpontos számot 16 bites
fixpontosba konvertáltak. Horizontális sebesség túl nagy
volt.
1991 Patriot rakéta. s=6034 km/h. Tizedmásodpercenként
pozicionálta magát: 1/10=2-4+2-5+2-8+2-9+2-12+2-13+…
nem pontos, így 0,57 km-el tovább repült.
1999 Mars Climate Orbiter; Rakéta hajtóereje (Lockheed
fontban, a NASA newton-ban számolt. Átszámítási hiba
miatt lezuhant.
Orvosi RTG; tumor bombázás. 8 biten tárolták a hibák
számát. 256 hibaesetén 0-lesz. 49
Logikai alapműveletek
(2 operandus között):
NEM, ÉS, VAGY (NOT, AND, OR)
A számítástechnikában mindig bitenként értelmezendő!
Nem-művelet a tárolóhely tartalmának ellenkező értékre
állítása (0-t 1-re, 1-et 0-ra).
Vagy-műveletnél az eredmény akkor 1-es, ha bármelyik,
vagy esetleg mindkét operandusban 1-es volt.
És-művelet akkor ad „igaz” értéket (1-est), ha mindkét
biten 1-es van.

50
Az igazságtáblázat a független logikai változók összes
kombinációjára megadja a függvény értékét. A nem
műveletet felülvonással, az ÉS műveletet szorzásjellel, a
VAGY műveletet pedig az összeadásjellel helyettesítjük.
"A" és "B" a független logikai változók. A "C" oszlopok a
logikai függvények értékét tartalmazza.
Az IGAZ (TRUE) értéket 1-el, a HAMIS (FALSE) értéket
0-val ábrázoljuk. A számítógép tárolóiban a logikai értéket
(bit) valamilyen fizikai mennyiség két diszkrét értékével
különböztetik meg (pl.: feszültség, áram, töltés, mágneses
polaritás, fény, stb.).

51
Alapműveletek igazságtáblázata

A B C A C B C=A+B C=AB
0 0 1 1 0 0

0 1 1 0 1 0

1 0 0 1 1 0

1 1 0 0 1 1

52
Alaptörvények:
A+0=A
A+1=1

A  A 1
A A 0
A A
A 0 0
A 1  A
A  B  A B
De-Morgan azonosságok
A B A  B
53
Összetett logikai műveletek
Alapműveletekből épülnek fel.

NEM-ÉS = NAND C  A B  A  B
NEM-VAGY = NOR C  A  B  A B
KIZÁRÓ ÉS = XAND (ekvivalencia)
C  A B  A B
KIZÁRÓ VAGY = XOR (antivalencia)
C  A B  A B
Ekvivalencia műveletnél az eredmény akkor 1-es, ha a két
érték azonos (mind a 2 0-a, vagy mind a 2 1-es)
Antivalencia műveletnél az eredmény akkor 1-es, ha a két
érték különböző. 54
Összetett logikai műveletek igazságtáblázata

A B XAND XOR Nem- Nem-És


  Vagy
0 0 1 0 1 1

0 1 0 1 0 1

1 0 0 1 0 1

1 1 1 0 0 0

55
A bináris összeadó megvalósítása logikai műveletek
segítségével

•  Az összeadást helyiértékenként kell elvégezni.


• Annyi összeadó szükséges, ahány bit-es a két összeadandó
regiszter (16, 32, 64)
• Az összeadók nem függetlenek, mivel minden
helyiértéken figyelembe kell venni a kisebb helyiértéken
keletkezett átvitelt is.

56
A 16-bites összeadó az alábbi ábrán látható. Minden egység
csak akkor kezdheti meg működését, ha a tőle jobbra lévő
egység átvitel bit-je ( C ) állandósult.

S15 S1 S0
C15 C14 C1 C0 0
ALU15 ALU1 ALU0

A15 B15 A1 B1 A0 B0

16 bit-es bináris összeadó

Cserny: Mikroszámítógépek
57
Két egyjegyű bináris szám összeadása (igazságtáblázat)
operandus bit-ek: A, B
eredmény bit: S (Antivalencia művelettel képezhető)
átvitel bit: C (ÉS művelettel valósítható meg)

A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
58
S

C
&

A B

Félösszeadó
Cserny: Mikroszámítógépek

59
Teljes összeadó igazságtáblázata
operandus bit-ek: A, B
áthozat kisebb helyiértékről:D
eredmény bit: S (Antivalencia)
átvitel bit (carry): C (ÉS)
A B D S C
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1 60
A táblázat alapján az S oszlop értéke 1-es, amikor az
A+B+C összeg értéke 12, vagy 112 ;
C oszlop akkor tartalmaz 1-est, amikor az A+B+C
összegzés eredményeként átvitel keletkezik, azaz 102 és 112
esetében.
A két kimenet logikai függvénye:
S  ABD  AB D  ABD  ABD 
( A  B ) D  ( A  B) D ( A  B)D  ( A  B ) D 
( A  B)  D

C  ABD  A BD  AB D  ABD  AB  ( A  B) D
61
S

& D

C 
+

&

A B

Teljes összeadó
Cserny: Mikroszámítógépek 62

You might also like