430 likes | 781 Views
KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS. Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt. Pirmosios paskaitos santrauka. apie mūsų kursą kompiu t eri ų vystymasis – darbo spartos didinimas kas lemia bendrąją kompiu t eri ų darbo spartą
E N D
KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt
Pirmosios paskaitos santrauka • apie mūsų kursą • kompiuterių vystymasis – darbo spartos didinimas • kas lemia bendrąją kompiuterių darbo spartą • von Neuman'o ir Harvardo architektūros • komandos vykdymo procesas • kompiuterių struktūrų vystymasis • kompiuterių įvairovė S.Maciulevičius
Šios paskaitos turinys • duomenų kodavimas • perėjimas iš vienos skaičiavimo sistemos į kitą • sveikieji skaičiai • slankaus kablelio skaičiai;standartas IEEE 754 • dešimtainiai skaičiai • simbolių kodavimas S.Maciulevičius
Informacijos tipai kompiuteriuose Jau minėjome, kadnskilčių dvejetainis žodis kompiuteryje atitinka tokius informacijos tipus: • duomenis (skaičius, dvejetainius vektorius ar simbolius), • komandas, • atminties lastelių arba įvesties ir išvesties įtaisų adresus. Šiuolaikiniuose kompiuteriuose galima sutikti ir kitokius informacijos tipus: • tegus (tags) - bitų grupes, kurios nurodo palydimos informacijos tipą; • informacijos vienetų deskriptorius; • informacijos vienetų identifikatorius (vardus). S.Maciulevičius
Skaičių kodavimas Skaičiai gali būti: • sveikieji, • slankaus kablelio, • dešimtainiai, Kodavimo (pateikimo) prasme skaičiai gali būti dvejetainiai, šešioliktainiai, aštuntainiai: • kompiuterių viduje – dvejetainiai skaičiai • įvedant ar išvedant duomenis (jų interpretavimui) –dvejetainiai, šešioliktainiai, aštuntainiai S.Maciulevičius
Pozicinės skaičiavimo sistemos Mes naudojame pozicines skaičiavimo sistemas, kuriose kiekvienas skaitmuo skaičiuje turi tam tikrą svorį. Todėl sveikajam skaičiui A rašome: A = am-1am-2…a2a1a0 = am-1.pm-1+am-2.pm-2 +… +a2.p2+a1.p1+a0.p0; Čia p – skaičiavimo sistemos pagrindas, o ai – skaitmuo i-ojoje pozicijoje Taigi, 1847 = 1.103+8.102+4.101+7.100 S.Maciulevičius
Pozicinės skaičiavimo sistemos Dar kartą pažiūrėkime į išraišką: A = am-1.pm-1+am-2.pm-2 +…+a2.p2+a1.p1+a0.p0; Jeigu šį skaičių padalinsime iš p (skaičiavimo sistemos pagrindo), gausime sveikąją dalį am-1.pm-2 +am-2.pm-3+…+a2.p1+a1.p0ir liekanąa0. Gautąją sveikąją dalį vėl padalinę iš p, gausime sveikąją dalį am-1.pm-3+am-2.pm-4+…+a2.p0 ir liekanąa1. Vadinasi, norėdami rasti skaičiaus A užrašą kurioje nors skaičiavimo sistemoje, turime nuosekliai A dalyti iš tos sistemos pagrindo ir fiksuoti gautąsias liekanas S.Maciulevičius
Į dvejetainę sistemą (sveikieji skaičiai) 10810= ?2 = ?8 = ?16 108 54 0 27 0 13 1 6 1 3 0 1 1 10810= 11011002 A nuosekliai daliname iš 2 (sistemos pagrindo) ir fiksuojame gautąsias liekanas Po to užrašome visus skaitmenis, pradedant paskutiniuoju sveikuoju skaitmeniu, atvirkščia skaičiavimui tvarka S.Maciulevičius
Dešimtainių ir aštuntainių skaitmenų dvejetainiai ekvivalentai 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 000 = 0 001 = 1 010 = 2 011 = 3 100 = 4 101 = 5 110 = 6 111 = 7 0101= 22+20 = 4+1 = 5 S.Maciulevičius
Į aštuntainę, šešioliktainę sistemą (sveikieji skaičiai) 108 81001 = 9 4 13 81010 = A 5 11011 = B 1100 = C 10810= 15481101 = D 1110 = E 10810= 1 101 10021111 = F 1 5 4 Sugrupuokime taip: 108 16 10810=110 11002=6C1696 6 6 C 12 S.Maciulevičius
Iš dvejetainės įdešimtainę (sveikieji skaičiai) 11011002 =?10 A = an-1dn-1 + an-2dn-2 + … + a3d3 + a2d2 + a1d1 + a0d0 1 1 0 1 1 0 02 n =6 5 4 3 2 1 0 11011002 =26+ 25+ 23+ 22 = 64+32+8+4 = 108 Galima eiti per tarpinę – aštuntainę – sistemą: 11011002 = 1548 = 182+581+480= 64+40+4 = 108 S.Maciulevičius
Iš dvejetainės įdešimtainę (sveikieji skaičiai) 11011002 =?10 A = an-1dn-1 + an-2dn-2 + … + a3d3 + a2d2 + a1d1 + a0d0 A = d(an-1dn-2 + an-2dn-3 + … + a3d2 + a2d1 + a1) + a0 = = d(d(an-1dn-3 + an-2dn-4 + … + a3d1 + a2) + a1) + a0 = … = d(d(d(…d(an-1d + an-2) + … + a3) + a2) + a1) + a0 = = (((…((an-1d + an-2)d + an-3)d + … + a3)d + a2)d + a1)d + a0 11011002 = (((((12+1) 2+0) 2+1) 2+1) 2+0) 2+0 =108 3 6 13 27 54 S.Maciulevičius
Truputį praktikos ... • Dabar – 2013 metai. Pažiūrėkime, kaip šis skaičius atrodys dvejetainėje formoje: 2013 1006 1 2013 = 11111011101 503 0 251 1 125 1 62 1 31 0 15 1 7 1 3 1 1 1 S.Maciulevičius
Truputį praktikos ... • Pažiūrėkime, kaip skaičius 2013 atrodys aštuntainėje formoje: 2013 8 201310 = 37358 16 251 8 41 24 31 8 40 11 24 3 13 8 7 8 3 5 S.Maciulevičius
Truputį praktikos ... • Pažiūrėkime, kaip skaičius 2013 atrodys šešioliktainėje formoje: 2013 16 201310 = 7(13)(13)16 = 7DD16 16 125 16 41 112 7 32 13 93 80 13 S.Maciulevičius
Truputį praktikos ... • Taigi, skaičius 2013 įvairiose skaičiavimo sistemose atrodo taip: • 201310 = 11111011101 • 201310 = 37358 • 201310 = 7DD16 3 7 3 5 11111011101 7 D D S.Maciulevičius
Dvejetainės, aštuntainės, … trupmenos O dabar užrašykime trupmeninio skaičiaus išraišką: A = a-1.p-1+a-2.p-2 +a-3.p-3 + … (pvz., A = 0,1011…2). Jeigu šį skaičių padauginsime iš p (skaičiavimo sistemos pagrindo), gausime sveikąją dalį a-1 ir trupmenąa-2.p-1+a-3.p-2 +… (pvz., 2 0,1011…2 = 1,011…2; sveikoji dalis 1 ir trupmena0,011…). Gautą sveikąją dalį vėl padauginę iš p, gausime sveikąją dalį a-2ir trupmenąa-3.p-1+a-4.p-2 +… (pvz., 20,011… = 0,11…2; sveikoji dalis 0 ir trupmena0,11…). Vadinasi, norėdami rasti trupmenos A užrašą kurioje nors skaičiavimo sistemoje, turime nuosekliai dauginti A ir gautąsias trupmenines dalis iš tos sistemos pagrindo ir fiksuoti gautąsias sveikąsias dalis. S.Maciulevičius
Dvejetainėstrupmenos Pabandykime į dvejetainę sistemą paversti 0,3125. Praktiškai tai patogu rašyti taip: 0, 3125- dvigubiname trupmeninę dalį 0, 625 1, 25 0, 5 1, 0 – trumeninė dalis tapo lygi 0, todėl daugybą baigiame Atsakymas: 0,312510 = 0,01012. S.Maciulevičius
Dvejetainėstrupmenos Įdomu tai, kad paprasta dešimtainė trupmena dvejetainėje sistemoje gali tapti periodine. Pavyzdžiui, paverskime 0,1: 0, 1 0, 2 0, 4 0, 8 1, 6 1, 2 0, 4 – sveikoji ir trumeninė dalys pradėjo kartotis, todėl daugybą baigiame Atsakymas: 0,110 = 0,0(0011)2. S.Maciulevičius
Aštuntainės trupmenos O dabartą pačią trupmeną 0,3125 paverskime į aštuntainę sistemą. Praktiškai tai patogu rašyti taip: dauginame iš 8 0, 3125 8 = 2, 5 8 = 4, 0 – trumeninė dalis tapo lygi 0, todėl daugybą baigiam Atsakymas: 0,312510 = 0,248. Galima pereiti ir per dvejetainę sistemą tokiu būdu: 0,312510 = 0,01012= 0,0101002= 0,248. 2 4 S.Maciulevičius
Sveikieji skaičiai Sveikieji skaičiai gali būti: • be ženklo: • su ženklu: Diapazonas: S.Maciulevičius
Neigiamųskaičių kodavimas Neigiami sveikieji skaičiai gali būti pateikiami tokiais kodais: • tiesioginiu, • atvirkštiniu, • papildomuoju. S.Maciulevičius
Neigiamųskaičių kodavimas Tegul skaičiui koduoti skirtos 8 skiltys. Pažiūrėkime, kaip tiesioginiu,atvirkštiniu ir papildomuoju kodais turi būti koduojamai skaičiai +108 ir -108 (10810=11011002): Papildomajame kode skilčių svorius galima interpretuoti taip: Iš tikrųjų:-128 + 16 +4 = -108 S.Maciulevičius
Skaičių ilgio keitimas Tegul skaičiui koduoti skirtos 8 skiltys. Pažiūrėkime, kaip jis įrašomas į 16 skilčių turintį žodį: S.Maciulevičius
si ci+1 ci Σ ai bi Sveikųjų skaičių sudėtis Vienos skilties skaičių sudėtisatliekama taip: (čia ai, bi – operandai, ci – pernaša į šią skiltį, si– suma, ci+1– pernaša į aukštesniąją skiltį) S.Maciulevičius
sn-1 s2 s1 s0 cn cn-1 c3 c2 c1 0 Σ Σ Σ Σ a1 b1 a0 b0 an-1 bn-1 a2 b2 Sveikųjų skaičių sudėtis Ilgų skaičių sudėčiai naudojama schema (sumatorius), sudaryta iš n vienos skilties sumatorių: S.Maciulevičius
Sveikųjų skaičių sudėtis ir atimtis Kadangi kompiuteryje sudėtį ir atimtį atlieka tas pats įtaisas (tos pačios schemos), sveikųjų skaičių atimtis pakeičiama sudėtimi, kai atėminiui ženklas pakeičiamas priešingu: S.Maciulevičius
Sveikųjų skaičių sudėtis Kompiuteryje sveikųjų skaičiųalgebrinė sudėtis atliekama papildomuoju kodu. Sudedant vienodai interpretuojamos visos skiltys, įskaitant ženklo skiltį. Pažiūrėkime, kaip papildomuoju kodu turi būti sumuojami skaičiai +77 ir -108 (+7710=0.1001101, -10810=1.00101002): S.Maciulevičius
Sveikųjų skaičių sudėtis +77 0.1001101 -108 1.0010100 - 31 1.1100001 Pakeiskime operandųženklus priešingais ir juos susumuokime; papildomuoju kodu -7710=1.0110011, o10810=0.11011002: 1.0110011 0.1101100 10.0011111 1.1100001(papild.kodu) = 1.0011111 (ties.kodu) = -31 Atmetę kairįjį 1, turime 0.0011111= + 31 S.Maciulevičius
Sveikųjų skaičių sudėtis Tegul abu operandaiteigiami; 7710= 0. 1001101, o10810=0.11011002.Juos susumuokime: +77 0.1001101 108 0.1101100 1851.0111001 Gautasis rezultatas rodo, kad suma – neigiamas skaičius. Aišku, kad taip negali būti. Atkreipkime dėmesį, kad suma turėtų būti lygi 185, o maksimalus teigiamas skaičius, kurį galima užrašyti tokiu formatu – 127. Taigi, turime situaciją, vadinamą perpildymu. S.Maciulevičius
Sveikųjų skaičių sudėtis Analogišką vaizdą turėsime, jei sudėsime neigiamus skaičius -7710 = 1. 1001101 (ties.kodu) = 1.0110011 (pap.kodu) ir-10810=1.1101100(ties.kodu) = 1.0010100 (pap.kodu): - 771.0110011 -1081.0010100 -185 0.1000111 Gautasis rezultatas rodo, kad suma – teigiamas skaičius. Aišku, kad taip negali būti. Atkreipkime dėmesį, kad suma turėtų būti lygi -185, o maksimalus (abs.verte) neigiamas skaičius, kurį galima užrašyti tokiu formatu – (-128). Taigi, ir čia turime situaciją, vadinamą perpildymu. S.Maciulevičius
Slankiojo kablelio skaičiai Slankiojo kablelio skaičiai kildinami iš skaičiaus užrašymo naudojant mantisę ir eilę. Pavyzdžiui, skaičių 137,15 galima užrašyti taip: 137,15 = 13,715×101 = = 1,3715×102 = = 0,13715×103= = 0,013715×104 = ±M×10e . Čia M - skaičiaus mantisė, o e – jo eilė. Paryškintas variantas vadinamas normalizuotu. Tokiu atveju mantisė M turi tenkinti sąlygą 0,1≤M < 1 . S.Maciulevičius
Standartas IEEE 754 Slankiojo kablelio skaičiai šiuolaikiniuose kompiuteriuose koduojami laikantis standartoIEEE 754, pagal kurį normalizuoti slankiojo kablelio skaičiai užrašomi taip : A= (-1)s× 1,M× 2E-posl Čia s- skaičiaus ženklo kodas, M - skaičiaus mantisė, E – jo eksponentė (t.y., perstumta eilė e: E =posl + e). S.Maciulevičius
Standartas IEEE 754 Pagrindiniai slankiojo kablelio skaičių formatai šiuolaikiniuose kompiuteriuose yra tokie : a) 32 bitų formatas: s E M b) 64 bitų formatas: s E M S.Maciulevičius
Standartas IEEE 754 Skaičiaus ženklo kodui visuomet skiriama 1 skiltis, ir teigiamiems skaičiams s =0, o neigiamiems - s =1 (nes (-1)0 = +1, (-1)1 = -1). E irM skilčių skaičius, taip pat posl reikšmė priklauso nuo skaičiaus ilgio : S.Maciulevičius
Standartas IEEE 754 Pavyzdžiui, skaičių 17,25 galima užrašyti taip: 17,25 = +10001,01 = = +1,000101×24. Palyginę su užrašu A= (-1)s× 1,M× 2E-posl, gauname: s = 0, М = 000101, E-posl = E-127=4; t.y., E=127+4=131 (=128+3). Todėl: S.Maciulevičius
Standartas IEEE 754 Kitas pavyzdys. Skaičių 0,375 galima užrašyti taip: 0,375 = +0,011 =+1,1×2-2. Palyginę su užrašu A = (-1)s × 1,M× 2E-posl, gauname: s = 0, М = 1, E-posl = E-127=-2; t.y., E=127-2=125. Todėl: S.Maciulevičius
Standartas IEEE 754 Pagal šį standartąnenormalizuoti slankiojo kablelio skaičiai užrašomi taip : A = (-1)s ×0,M× 2-posl Tokių skaičių eksponentė lygi 0, o mantisė - nenormalizuota S.Maciulevičius
Standartas IEEE 754 Kai kurios slankiojo kablelio skaičių reikšmės koduojamos specialiai: NaN reikšmės naudojamos operacijų 0/0 ir -1 rezultatams. S.Maciulevičius
Dešimtainiai skaičiai Dešimtainiai skaičiai dažniausiai pateikiami „pakuota forma“, kai kiekvienam skaitmeniui skiriami 4 bitai, o skaičiaus gale koduojamas jo ženklas (dažniausiai kodas 1100 žymi +, o 1101 žymi −) Tokiu atveju skaičius +127 užims du baitus ir bus pateikiamas taip: , o −127 – šitaip: IBM/360 naudojo ir „zoninį formatą“, kai kiekvienam skaitmeniui buvo skiriami 4+4 bitai („zona“ ir skaitmuo). Dešinysis baitas – ženklas ir skaitmuo. „Zonos“ kodas - 1111 S.Maciulevičius
Simbolių kodavimas Tekstinei informacijai koduoti plačiausiai naudojamas kodas ASCII (American Standard Code for Information Interchange). Yra du jo variantai: • pagrindinis, kuriame simboliams koduoti skirtos 7 skiltys (aštuntoji skiltis skirta kontrolei); • išplėstasis, kuriame simboliams koduoti skirtos 8 skiltys; papildomos kodo kombinacijos skirtos nacionaliniams ir pseudografikos simboliams. S.Maciulevičius
Simbolių kodavimas Pagrindinio ASCII kodo fragmentai: S.Maciulevičius
Dvejetainė daugyba Žr. Daugyba.doc Dvejetainė dalyba - žr. Dalyba.doc S.Maciulevičius