400 likes | 918 Views
Kompiuterių architektūra ir operacin ė s sistemos KA - 2 paskaita. Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt. Ankstesnė s paskaitos turinys. Apie kursą Praeitis ir dabartis von Neuman'o tipo kompiuteris Kompiuterio struktūra
E N D
Kompiuterių architektūra ir operacinės sistemosKA- 2 paskaita Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt
Ankstesnės paskaitos turinys • Apie kursą • Praeitis ir dabartis • von Neuman'o tipo kompiuteris • Kompiuterio struktūra • Kompiuterių klasifikacija S.Maciulevičius
Kompiuterių architektūra ir operacinės sistemos INFORMACIJA IR JOS KODAVIMAS S.Maciulevičius
Šios paskaitos turinys • Informacijos tipaikompiuteriuose • Pozicinės skaičiavimo sistemos • Dvejetainiai, aštuonetainiai, šešioliktainiai sveikieji skaičiai • Dvejetainėstrupmenos • Neigiamųskaičių kodavimas • Sveikųjų skaičių sudėtis ir atimtis • Slankaus kablelio skaičiai • Dešimtainiai skaičiai • Simbolių kodavimas • Grafinės informacijos kodavimas S.Maciulevičius
Informacijos tipaikompiuteriuose nskilč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, • dvejetainiai, šešioliktainiai, aštuonetainiai. Kompiuterių viduje – tik pirmieji trys skaičių tipai. Dvejetainiai, šešioliktainiai, aštuonetainiai – tik įvedant ar išvedant duomenis. 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. Taigi, dešimtainėje skaičiavimo sistemoje 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.p0ir liekanąa1. Vadinasi, norėdami rasti skaičiaus A užrašą kurioje nors skaičiavimo sistemoje, turime A nuosekliai dalyti iš tos sistemos pagrindo ir fiksuoti gautąsias liekanas. S.Maciulevičius
Dvejetainiai, aštuonetainiai, šešioliktainiai sveikieji skaičiai 10810= ?2 = ?8 = ?16 108 54 0 27 0 13 1 6 1 3 0 1 1 10810= 11011002 108 81001 = 9 4 13 81010 = A 5 1 1011 = B 1100 = C 10810= 15481101 = D 1110 = E 10810= 1 101 10021111 = F 1 5 4 Sugrupuokime taip: 10810=110 11002=6C16 6 C S.Maciulevičius
Dvejetainiai, aštuonetainiai, šešioliktainiai 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 11011002 = 1548 = 182 + 581 + 480 = 64+40+4 = 108 S.Maciulevičius
3 6 13 27 54 Dvejetainiai, aštuonetainiai, šešioliktainiai 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 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-1ir trupmenąa-2.p-1+a-3.p-2 +… (pvz., 2 0,1011…2 = 1,011…2; sveikoji dalis 1 ir trupmena 0,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 trupmena 0,11…). Vadinasi, norėdami rasti trupmenosA užrašą kurioje nors skaičiavimo sistemoje, turime A ir gautąsias trupmenines dalis nuosekliai dauginti 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: dvigubiname trupmeninę dalį 0, 3125 0, 625 1, 25 0, 5 1, 0– trumeninė dalis tapo lygi 0, todėl daugybą baigiam Atsakymas:0,312510 = 0,01012. S.Maciulevičius
Aštuntainės trupmenos O dabarį aštuntainę sistemą paverskime tą pačią trupmeną 0,3125. 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 iš dvejetainės sistemos ir 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): S.Maciulevičius
Skaičių kodo 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
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 Vienos skilties skaičių sudėtisatliekama taip: (čia ai, bi – operandai, ci – pernaša į šią skiltį, si – suma, ci – pernaša į aukštesniąją skiltį) 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
Slankaus kablelio skaičiai Slankaus 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 Slankaus kablelio skaičiai šiuolaikiniuose kompiuteriuose koduojami laikantis standartoIEEE 754, pagal kurį normalizuoti slankaus 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 Pagal šį standartąnenormalizuoti slankaus 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 Pagrindiniai slankaus 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 Kai kurios slankaus 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
Grafinės informacijos kodavimas Grafinei (ir kitai multimedijos) informacijai koduoti naudojami kodai ir formatai, įvertinantys tokios informacijos vienetų apjungimąį vieną žodį. Apie tokios informacijos apdorojimo ypatumus kalbėsime atskirai S.Maciulevičius
Pikselių kodavimas S.Maciulevičius
64 bitų sveikasis 64 bitų sveikasis 32 bitų sv. 32 bitų sv. 32 bitų sv. 32 bitų sv. 16 b. 16 b. 16 b. 16 b. 16 b. 16 b. 16 b. 16 b. 8 b 8 b 8 b. 8 b 8 b 8 b. 8 b. 8 b.8 b. 8 b. 8 b. 8 b 8 b 8 b 8 b 8 b. SSE2 duomenų formatai 128 bitų sveikasis Du 64 bitų sveikieji skaičiai: Keturi 32 bitų sveikieji skaičiai: Aštuoni 16 bitų sveikieji skaičiai: Šešiolika 8 bitų sveikųjų skaičių: S.Maciulevičius
64 bitų sl.kabl. 64 bitų sl.kabl. 32 bitų sl.k. 32 bitų sl.k. 32 bitų sl.k. 32 bitų sl.k. SSE2 duomenų formatai Du 64 bitų slankaus kablelio skaičiai: Keturi 32 bitų slankaus kablelio skaičiai: S.Maciulevičius
Kitą kartą KOMANDŲ SISTEMA komandųsistemossamprata pagrindiniai komandųsistemų tipai bendrosios paskirties registrų tipo architektūra komandų formatai operandų adresavimo būdai komandų formatų pavyzdžiai CISC ir RISC KOMANDŲ VYKDYMO KONVEJERIS konvejerio esmė kliūtys konvejeryje S.Maciulevičius