1 / 50

KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS

KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS. Doc. Stasys Maciulevičius Kompiuterių katedra sta sys @ ecdl .lt. An kstesn ė s paskaitos turinys. k omandų sistema p agrindiniai komandų sistemų tipai b endrosios paskirties registrų tipo architektūra komandų formatai

savea
Télécharger la présentation

KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KOMPIUTERIŲ ARCHITEKTŪRA ir OPERACINĖS SISTEMOS Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt

  2. Ankstesnės paskaitos turinys • komandų sistema • pagrindiniai komandųsistemų tipai • bendrosios paskirties registrų tipo architektūra • komandų formatai • operandų adresavimo būdai • komandų formatų pavyzdžiai • CISC ir RISC

  3. Šios paskaitos turinys • Komandų sistemų išplėtimai • Komandų sistemų išplėtimo sąlygos • Pikselių ir skaičių kodavimas • Duomenų diapazonai ir apribojimai • Kai kurios grafikos komandos • Komandų sistemų išplėtimo nauda

  4. Komandų sistemos išplėtimas Išplėtimo priežastys ir prielaidos • grafinės ir audio informacijos skaitmeninioapdorojimo plitimas • procesoriai buvo orientuoti į sveikųjų ir slankaus taško skaičių apdorojimą • technologijos vystymasis ir normos mažinimas nuo 0,35 m iki 0,18 m leido padidinti tranzistorių skaičių kristale • RISC architektūros branduolys kompaktiškas - realizuojamas palyginti nedideliu tranzistorių skaičiumi • procesorių žodžio ilgio didinimas nuo 32 bitų iki 64 bitų • daugeliu atvejų skaitmeninei grafinei ir audio informacijai koduoti pakanka 16 ar net 8 bitų • SIMD ir vektorinio principų panaudojimo galimybės

  5. Reikalavimai išplečiant komandų sistemą Siekiant išlaikyti suderinamumą su esančia PĮ ir OS, projektuotojai turėjo atsižvelgti į tokius dalykus: • MMX komandas naudojančios programos turi dirbti visose turimose daugelio užduočių ir paprastose OS; tai reiškia, kad MMX technologija turi nepridėti naujų architektūriškai matomų būsenų ar įvykių • MMX komandų nenaudojančios programos turi dirbti be jokių pakeitimų; tai reiškia, kad MMX technologija turi nekeisti buvusių IA-32 komandų

  6. Reikalavimai išplečiant komandų sistemą • Turimos taikomosios programos turi galėti panaudoti MMX technologiją be visos programos perdirbimo; tai reiškia, kad MMX technologija gali būti panaudota atskiroje procedūroje, paliekant likusią dalį nepakeistą; tam reikia, kad MMX komandos turi gerai dirbti esamoje procedūrų iškvietimo sistemoje • MMX komandas naudojančios programos turi dirbti ir senesniuose procesoriuose, kurie nepalaiko MMX; tai reiškia, kad turi būti parengtos DLL MMX ir ne-MMX technologijų procesoriams

  7. Komandų sistemos išplėtimas 1996 metais Intel įvedė MMX technologiją - savo procesorių komandų sistemą papildė 57 naujomis komandomis, skirtomis multimedijos programoms optimizuoti Šios komandos duomenis traktuoja taip, kaip tai priimta SIMD sistemose (Single Instruction – Multiple Data) Panašūs komandų sistemų papildymai pasirodė ir kitų firmų procesoriuose

  8. Komandų sistemų išplėtimai

  9. MMX Tradicinis FPU turi aštuonis 80 bitų registrus, apjungtus į steką MMX blokas naudoja šių registrų 64 žemiausiuosius bitus, o registrus adresuoja tiesiogiai (MMX0 ... MMX7) Operacijos su MMX duomenimis vykdomos naudojant SIMD principą Aritmetinės operacijos atliekamos dviem variantais: • Pagal įprastas taisykles • Rezultatui taikant reikšmės apribojimus

  10. 00 MM7 ir FP7 MM0 ir FP0 MM1 ir FP1 MM2 ir FP2 MM3 ir FP3 MM4 ir FP4 MM5 ir FP5 MM6 ir FP6 00 00 00 00 00 00 00 MMX registrai Tegai 79 64 63 0 Kai FPU registrai naudojami kaip MMX registrai, ženklo bitas ir visi eksponentės bitai nustatomi į 1 (pagal IEEE-754 standartą tai reiškia NaN). Pereinant iš MMX režimo į FPU, tegai nustatomi į 11– tai reiškia, kad registrai “tušti”.

  11. Pikselių kodavimas

  12. Sudėtis – paprasta ir su apribojimu Imkime du baito formato skaičius: +85 ir +58. Sudėkimejuos: 0.1010101 0.0111010 1.0001111 Rezultatą galima interpretuoti įvairiai: • fiksuojame perpildymą • rezultatas lygus 0.0001111=15 (atmetamepernešimą; gaunamesudėtįmoduliu 128) • rezultatas lygus 0.1111111=127 (apribojamemaksimalia reikšme, lygia 127) +

  13. Duomenų diapazonai ir apribojimai

  14. Kai kurios grafikos komandos

  15. Pikselių sudėties operacijų pavyzdžiai

  16. Pikselių sudėties operacijų pavyzdys Imkime šios eilutės skaičius: s1 = 80h ir s2 = AAh. Sudėkime juos: 1.0000000 1.0101010 10.0101010 padd.b: sudėtis moduliu 256 (atmetame pernešimą) duoda 00101010 arba 2Ah padds.u.b: sudėtisskaičių be ženklo apribojant diapazono riba, nes gautas pernešimas tai rodo; vadinasi, gauname 11111111 arba FFh

  17. Pikselių sudėties operacijų pavyzdys Imkime skaičius: s1 = 80h ir s2 = AAh. Sudėkime juos: 1.0000000 1.0101010 10.0101010 padds.s.b: sudėtisskaičių su ženklu apribojant diapazono riba - gautas pernešimas rodo, kad peržengta apatinė diapazono riba; vadinasi, gauname 10000000 arba 80h padds.us.b: sudėtis, kai pirmasisskaičius neturi ženklo, o antrasis - su ženklu; 10000000 = 128, 1.0101010 = -86; vadinasi, gauname 128 – 86 = 42 =00101010 arba 2Ah

  18. Kai kurios grafikos komandos

  19. Pikselių daugyba ir sudėtis

  20. Pikselių daugyba ir kaupimas Ši operacija reikalinga daugelyje signalų aprorojimo algoritmų - vektorių daugybai, matricų daugybai, FFT, filtrams ir t.t.

  21. Vektorių sandauga pmadd

  22. Vektorių sandauga: ką laimime

  23. Vieno vaizdo pakeitimas kitu Rez.piks. = A piks. (alfa/255) +B piks. (1 - (alfa/255)) pmult

  24. Vaizdo pakeitimas kitu: ką laimime Vaizdo dydis - 640*480; pakeitimas atliekamas per 255 žingsnius

  25. 3DNow! • 1998 metais AMD kartu su procesoriumi K6-2 pristatė ir naują technologiją- 3DNow! • Kartu su šia technologija buvo pristatytas ir žaidimas Quake2, kuriame ši technologija buvo panaudota pirmą kartą • Įjungus 3DNow! technologiją, žaidimo sparta padidėdavo beveik 30% • 3DNow! technologiją netrukus ėmė palaikyti svarbiausieji video plokščių gamintojai – nVidia, 3Dfx, S3, ATI.

  26. 3DNow! • Trimatės grafikos operacijoms reikalingi intensyvūs skaičiavimai su realiaisiais skaičiais • Lyginant su MMX, 3DNow! technologijoje įvestos operacijos su dviem supakuotais dvigubo ilgio slankaus kablelio skaičiais • Procesoriuje yra du operaciniai įtaisai, kurie gali lygiagrečiai vykdyti slankaus kablelio operacijas su registruose laikomais duomenimis. • Kiekviena operacija trunka du taktus, operacijos konvejerizuotos • Taigi, vieno takto metu gali būti gauti 4 rezultatai

  27. 3DNow! duomenų formatai Registrų sąstatas – kaip ir MMX Slankaus kablelio duomenų formatai (du viengubo formato skaičiai): 63 32 31 0 D1 D0 Slankaus kablelio skaičių formatas: 31 0 22 Eksponentė (su poslinkiu) S Mantisė

  28. 63 B5 B4 B3 B2 B1 B0 B7 B6 0 0 W1 W3 W2 W0 0 D1 D0 3DNow! duomenų formatai Sveikųjų skaičių duomenų formatai: a) aštuoni supakuoti baitai: 0 b) keturi supakuoti žodžiai: c) du supakuoti dvigubi žodžiai: d) vienasketurgubas žodis: Q0 0

  29. Athlon 3DNow! Be minėtų 21 3DNow! komandų, Athlon procesoriuje įvestos 24 naujos komandos, jų tarpe: • 12 komandų, skirtų multimedia skaičiavimams (sveikieji skaičiai), sutinkamiems kalbos atpažinimo ir video apdorojimo uždaviniuose; • 7 komandos, paspartinančios duomenų mainus, sutinkamus Interneto naršyklėse; • 5 komandos, skirtos signalų apdorojimo (DSP) uždaviniams (programiniai modemai, MP3 ir pan.)

  30. MMX problemos Skirtingos adresavimo taisyklės, MMX ir FPU duomenų formatų skirtumai ir kiti niuansai neleidžia, kad MMX ir FPU komandos būtų vykdomos pakaitomis. Jei taip darytume, prieš pirmąją MMX komandą tektų išsaugoti FPU kontekstą atmintyje, vėliau atstatant šį kontekstą Tam sugaištas laikas panaikintų gautus SIMD idėjos panaudojimo pranašumus

  31. SSE (KNI) Pirmą kartą ši technologija buvo pristatyta procesoriuje Pentium 3, turėjusiame branduolį Katmai (vėliau branduolys buvo pakeistas nauju – Coppermine), 1999 metų pabaigoje. Iš pradžių Celeron procesoriai neturėjo SSE, bet nuo 2000 metų pradžios ją gavo SSE rinkinyje - 71 komanda.

  32. MMX ir SSE registrai

  33. 3DNow! ir SSE

  34. SSE2 Siekdama pagerinti SSE, Intel procesoriuje Pentium 4 įvedė papildytą komandų rinkinys SSE2, kuris nuo SSE skiriasi tokiais pagindiniais dalykais: • pridėtos sveikųjų skaičių operacijos su XMM registrais; • pridėtos slankaus kablelio operacijos su 64 bitų skaičiais.

  35. 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ų:

  36. 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:

  37. SSE3 Dar vienas žingsnis gerinant MMX ir SSE - Intel procesoriuje Prescott (2004) įvestoskelios papildomos komandos: • efektyviam slankaus kablelio skaičių konvertavimui į sveikuosius (1); • duomenų dubliavimui (3); • neišlygintų kintamųjų įkrovimui (1); • lygiagrečiai sudėčiai ir atimčiai (2); • “horizontaliai” sudėčiai ir atimčiai (4); • hyper-threading panaudojimui (2).

  38. SSE3 komandų pavyzdžiai MOVSLDUP– 128 bitų reikšmės įkrovimas iš atminties ar XMM registro dubliuojant: OpA (128 bitai, 4 žodžiai): a3 | a2 | a1 | a0 OpB(128 bitai, 4 žodžiai): b3 | b2 | b1 | b0 Rezultatas: b2 | b2 | b0 | b0 HADDPS–“horizontali” sudėtis: OpA (128 bitai, 4 žodžiai): a3 | a2 | a1 | a0 OpB(128 bitai, 4 žodžiai): b3 | b2 | b1 | b0 Rezultatas: b3 + b2 | b1 + b0 | a3 + a2 | a1 + a0 ADDSUBPS– sudėtis ir atimtis: OpA (128 bitai, 4 žodžiai): a3 | a2 | a1 | a0 OpB(128 bitai, 4 žodžiai): b3 | b2 | b1 | b0 a3 + b3 | a2 - b2 | a1 + b1 | a0 - b0

  39. SSE4 Intel Core ir AMD K10 mikroarchitektūros procesoriuose (2006) įvestos dar 54komandos (SSE4.1 rinkinys turi jų 47, o SSE4.2 – 7) Skirtingai nuo SSE3 ir kitų ankstesnių, jos nėra specialiai orientuotos į multimedijos informacijos apdorojimą SSE4 operacijos vykdomos su 128 bitų registrais Vienas pavyzdys: MPSADBW operacija skaičiuoja tokią sumą:|x0-y0|+|x1-y1|+|x2-y2|+|x3-y3|, |x0-y1|+|x1-y2|+|x2-y3|+|x3-y4|, ...; tokia operacija reikalinga HDTV kodavimo įtaisuose

  40. SSE5 Šį rinkinį 2007 m. AMD įvedė kaip 128 bitų SSE komandų išplėtimą AMD64 komandų sistemai, realizuojamai Bulldozer procesoriuje, kuris gaminamas nuo 2011 metų Rinkinys dar kartą buvo peržiūrėtas 2009 m. siekiant suderinti su Intel pasiūlyta komandų sistema AVX (Advanced Vector Extensions)

  41. SSE5 SSE5 tuo pačiu buvo pervadintas ar sudarytas iš trijų poaibių: • XOP – naujos operacijos su sveikųjų skaičių vektoriais • FMA4 – slankaus kablelio daugyba ir sumavimas (multiply-accumulate) ir • CVT16 – “pusinio” tikslumo slankaus kablelio skaičių (vektorių) formato keitimai Jame apie 170 komandų (jų tarpe 46 bazinės)

  42. Advanced Vector Extensions • Intel AVX (Advanced Vector Extensions) – naujas 256bitų SIMD slankaus kablelio vektorinių operacijųišplėtimas • SIMD vektorinių registrų ilgis padidinamas nuo 128 bitų (XMM registrai) iki 256 bitų (registrai pavadinti YMM0 - YMM15 • Ankstesnės 128 bitų komandos naudoja tik žemesniąją YMM registrų dalį • Ateityje laukiama 512 ar net 1024 bitų komandų

  43. AVX registrai 255 128 0

  44. Advanced Vector Extensions • AVX gerokai modifikuoja komandų sistemą pridedant naują funkcionalumą ir kodavimą: • Daugiau nei 200 dabartinių SSEx komandų modifikuotos, kad būtų panaudotos naujos galimybės • Nemaža dalis (apie 100) ankstesnių SSEx 128 bitų komandų išplėstos iki 256 bitų • Pridėta kelios dešimtys naujų operacijų • Komandos nepakeičia operandų reikšmių - AVX dviejų operandų XMM komandos modifikuotos į trijų operandų formą, kai registras-imtuvas skiriasi nuo operandų registrų. Pavyzdžiui, a = a + b pakeista operacija c= a + b

  45. Advanced Vector Extensions • Pirmasis procesorius, kuris turi AVX komandas - Intel Sandy Bridge • Analogiškas pirmasis AMD procesorius, kuris turi AVX komandas, - Bulldozer; be AVX komandų, jis palaiko ir AMD pasiūlytus XOP ir FMA4 išplėtimus • Abu šie procesoriai pradėti naudoti 2011 metais

  46. Advanced Vector Extensions 2 • Advanced Vector Extensions 2 (AVX2), darvadinamas Haswell New Instructions, yra AVX komandų rinkinio išplėtimas, kuris pirmąkart panaudotas IntelHaswell mikroarchitektūroje. AVX2 prideda: • Daugumos sveikųjų skaičių AVX komandų duomenų ilgį padidina iki 256 bitų • 3-jų operandų komandas manipuliacijomssu bitais ir daugybai • Surinkimo ir išskleidimo palaikymą, leidžiantį vektoriaus elementus išdėstyti atmintyje nebūtinai nuosekliai • Vektoriųpostūmius ir 3-jų operandųapjungto daugybos ir kaupimo operacijų palaikymą

  47. MMX nauda

  48. Funkciniai įtaisai grafikai O dabar pažiūrėkime, kaip procesorių struktūrose atsispindi komandų sistemų išplėtimai

  49. Realizacijos pavyzdys - PPC 970

  50. Sandy Bridge funkciniai įtaisai VI – Vector Instruc-tions

More Related