1 / 59

KOMPIUTERIŲ ARCHITEKTŪRA (SMALL)

KOMPIUTERIŲ ARCHITEKTŪRA (SMALL). Doc. Stasys Maciulevičius Kompiuterių katedra stama@ifko.ktu.lt. PROCESORIUS. Valdymo signalai. Valdymo įtaisas. Operacinis įtaisas. Informacija apie opera- cijos eigą. Komanda (iš atminties). Duomenys (iš atminties). Rezultatai

nassor
Download Presentation

KOMPIUTERIŲ ARCHITEKTŪRA (SMALL)

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(SMALL) Doc. Stasys Maciulevičius Kompiuterių katedra stama@ifko.ktu.lt

  2. PROCESORIUS Valdymo signalai Valdymo įtaisas Operacinis įtaisas Informacija apie opera- cijos eigą Komanda (iš atminties) Duomenys (iš atminties) Rezultatai (į atmintį) Procesorius S.Maciulevičius

  3. Procesorius • valdymo įtaisas išrenka iš atminties komandas, jas analizuoja ir valdo operacinio įtaiso darbą (jame vykdomas operacijas, kreipinius į atmintį duomenims išrinkti ar rezultatui įrašyti); • operacinis įtaisas vykdo operacijas, kurias nurodo komanda; • šie du įtaisai dirba kartu: valdymo įtaisas pagal operacijos kodą formuoja signalus, valdančius operacinio įtaiso darbą; pastarasis perduoda į valdymo įtaisą signalus, informuojančius apie operacijos eigą, nuo kurių gali priklausyti paskesnių valdymo įtaiso signalų formavimas (pavyzdžiui, operando ženklas, jo kurios nors skilties reikšmė ir t.t.). 4 S.Maciulevičius

  4. Operacinis įtaisas operandai Vidinė atmintis (registrai, spart. atmintis) Operacijas vykdančios schemos rezultatai Duomenys (iš atminties) Informacija apie opera- cijos eigą (į valdymo įtaisą) Rezultatai (į atmintį) Valdymo signalai (iš valdymo įtaiso) Procesoriausoperacinis įtaisas S.Maciulevičius

  5. Procesoriausoperacinis įtaisas • Jei pažvelgtume į operacinio įtaiso vidų, galėtume jame išskirti dvi schemų grupes: • vidinę atmintį, kuri reikalinga apdorojamiems duomenims (operandams) laikyti; ją sudaro registrai, atskiri trigeriai, spartinančioji atmintis [kešas], kai kuriuose įtaisuose – stekas; • operacijas vykdančios schemos, kurios atlieka visus informacijos apdorojimui reikalingus veiksmus – sudėtį, logines operacijas, postūmius ir t.t. S.Maciulevičius

  6. S A 1 2 6 Algoritmo aprašo pavyzdys • Tarkime, reikia sudaryti struktūros, realizuojančios teigiamų sveikųjų skaičių daugybos operaciją, aprašą algoritmo lygiu • Operandai bus 6 bitų, skaičių formatas toks: • S - skaičiaus ženklas,A - skaičiaus reikšmės laukas, užimantis 5 skiltis. S.Maciulevičius

  7. Daugyba stumiant dauginamąjį (nuo žem.skilčių) • Sudauginkime skaičius 25 ir 19 :  25 × 19 = 475 • Dvejetainiais skaičiais: 0.11001× 0.10011 = 0.0111011011 • Jei daugintume rankomis:               0.11001           × 0.10011  ------------       011001      011001    011001  ------------------   0111011011 S.Maciulevičius

  8. Daugyba stumiant dauginamąjį (nuo žem.skilčių) • Dauginsime nuo žemiausiųjų skilčių, stumdami dauginamąjį • Todėl dauginamąjį (A) išplečiame iki dvigubo ilgio, kairėje prirašydami nulius:      A           B           0.0000011001  0.10011    S.Maciulevičius

  9. Daugyba stumiant dauginamąjį (nuo žem. skilčių) A          B            C0.0000011001  0.10011   0.0000000000                                            +0.00000110010.0000110010  0.01001   0.0000011001                      +0.00001100100.0001100100  0.00100   0.00010010110.0011001000  0.00010   0.00010010110.0110010000  0.00001   0.0001001011                      +0.01100100000.1100100000  0.00000   0.0111011011 S.Maciulevičius

  10. Daugyba stumiant dauginamąjį (nuo žem.skilčių) • Kaip matome, dauginamąjį palaipsniui stumiame į kairę, o daugiklį (B) – į dešinę • Jei žemiausioji B skiltis lygi 1, prie dalinių sandaugų sumos (C) pridedame dauginamąjį (A) • Ciklas vykdomas tiek kartų, koks dauginamųjų ilgis (be ženklo skilties) • Dauginant skaičius reikės atlikti 5 sumavimo ir postūmio ciklus • Daugybos ciklams skaičiuoti panaudosime 3 skilčių skaitiklį S.Maciulevičius

  11. Daugyba stumiant dauginamąjį (nuo žem.skilčių) • Dauginant skaičius reikės atlikti 5 sumavimo ir postūmio ciklus. Daugybos ciklams skaičiuoti panaudosime 3 skilčių skaitiklį • Įvertinę šias aplinkybes, sudarome tokį algoritmą: • Įvedame daugiklio ir dauginamojo reikšmes • Dalinių sandaugų sumą prilyginame nuliui, o ciklų skaitiklį prilyginame 5 • Tikriname daugiklio žemiausiąją skiltį. Jei ji lygi 1, prie dalinių sandaugų sumos pridedame dauginamąjį • Dauginamąjį pastumiame į kairę, o daugiklį - į dešinę • Sumažiname skaitiklio turinį. Jei skaitiklio turinys nelygus nuliui (t.y., atlikta mažiau nei 5 daugybos ciklai), grįžtame į 3 žingsnį • Pabaiga. S.Maciulevičius

  12. Small • Algoritmams užrašyti naudojama paprasta, kiek panaši į Pascal, aparatūros aprašymo kalba • Pagrindiniai jos elementai Bekus-Nauro forma aprašyti faile Small_aprasas.doc • Žemiau pateiksime pagrindinius jos elementus pavyzdžiais S.Maciulevičius

  13. Small • Skaičiai: 181 =10110101B = 0B5H =265Q Dešimtainiams skaičiams sistemos nuoroda nereikalinga • Vardai: A, A1, a1 Varduose skiriamos mažosios ir didžiosios raidės Interpretatorius išeities teksto analizės metu visus vardus ir žodžius trumpina iki 3 simbolių; taigi, REGA ir REGB būtų interpretuojami kaip tas pats žodis S.Maciulevičius

  14. Small • Struktūros elementai: REG - registras, CNT - skaitiklis, BUS - magistralė, TRG - trigeris, INT - vidinis (papildomas) kintamasis • Pavyzdžiai: • REG A[8], B[8], c[16], z; - čia aprašyti 8 skilčių registrai A ir B, 16 skilčių registras c ir 1 skilties registras z (ekvivalentiška aprašui TRG z;) • INP BUS D[8]; - čia aprašyta 8 skilčių įvedimo magistralė D • CNT Sk[3]; - čia aprašytas 3 skilčių skaitiklis Sk (jis gali skaičiuoti nuo 0 iki 7 arba atvirkščiai) S.Maciulevičius

  15. Small • Kintamųjų pavyzdžiai (elementų aprašai buvo pateikti aukščiau): • A- 8 skilčių registras A (visas) • A[8] - aštuntoji registro A skiltis • B[5:8] - keturios dešiniosios registro B skiltys • A.B - žodis, sudarytas apjungus registrus A ir B (sudėtingas kintamasis) S.Maciulevičius

  16. Small • Loginių operacijų ženklai: & - log. sandauga, ! - log. suma, # - suma moduliu 2 • Reiškinių pavyzdžiai (elementų aprašai buvo pateikti aukščiau): • A + B - dviejų 8 skilčių registrų A ir B turinių suma • c[1:8] + A - prie aukštesniųjų registro c skilčių pridėtas A • c[1:8] + ^A + 1 - prie aukštesniųjų registro c skilčių pridėtas A su priešingu ženklu (papild. kode) • A ! B - dviejų 8 skilčių registrų A ir B turinių loginė suma • A[1] #B[1] - registrų A ir B pirmųjų skilčių (ženklo sklilčių) turinių suma moduliu 2 S.Maciulevičius

  17. Small • Postūmio operatoriai: RSH - log. postūmis į dešinę, LSH - log. postūmis į kairę, RRO - ciklinis postūmis į dešinę, LRO - ciklinis postūmis į kairę, ASH - aritmetinis postūmis į dešinę • Postūmio operacijų pavyzdžiai (elementų aprašai buvo pateikti aukščiau): • RSH(A) arba A := 0.A[1:7] - registro A turinio loginis postūmis į dešinę • LSH(A.B) arba A.B := A[1:7].B.0 - registrų A ir B turinių loginis postūmis į kairę, kai išstumta aukščiausioji B skiltis bus “įstumta” į A S.Maciulevičius

  18. Small • Sąlygos sakinių sintaksė: <sąlygos sakinys> ::= IF <loginis reiškinys> THEN <sakinių seka> [ELSE <sakinių seka>] FI • Sąlygos sakinių pavyzdžiai: • IF z=1 THEN c[1:8] := c[1:8] + A; FI • IF A[1] <>B[1] THEN c[1:8] := c[1:8] + A; z := 1; ELSE z := 0; FI • IF Sk>0 THEN GOTO Atgal; FI S.Maciulevičius

  19. Small • Baziniai žodžiai ir standartiniai vardai: UNI REG CNT TRG BUS INT BEG IF THE ELS GOT END FI INP RRO LRO RSH LSH ASH PRI • o taip pat dar ALU COU TRI MUX SUM RFI MEM MIC CON ADR FOR BIN DEC YFI MIM UP USH DOW REV MOD OUT BID TRA GO S.Maciulevičius

  20. Small • Kiekvienas sakinys baigiamas kabliataškiu (;) • Po BEGIN, END ir FI kabliataškis nededamas! • Standartiniai žodžiai ir vardai gali būti užrašyti didžiosiomis arba mažosiomis raidėmis • Vartotojo įvesti struktūros elementų vardai turi būti tekste rašomi taip, kaip jie buvo užrašyti struktūros elemento apraše S.Maciulevičius

  21. Daugybos algoritmas - Small • Šis daugybos algoritmas gali būti šitaip užrašytas kaip daugybos įtaiso aprašas: UNIT DAUGYBOS ITAISAS;    REG A[11], C[11];    REG B[6];    CNT SK[3];    INP BUS DATA[6]; S.Maciulevičius

  22. Daugybos algoritmas - Small • Tęsinys: BEGIN A:=DATA;    B:=DATA;    C:=0; SK:=5;    PRINT A, B; LOOP: IF B[6]=1 THEN C:=C+A; FI    LSH(A); RSH(B);    SK:=SK-1;    PRINT SK, A, C;    IF SK<>0 THEN GOTO LOOP; FI    PRINT C; END S.Maciulevičius

  23. Modeliavimas Small S.Maciulevičius

  24. Modeliavimas Small • Failo, kuriame laikomas daugybos įtaiso aprašas algoritmo lygiu, vardas - DaugPvz.sml • Nurodydami žodžio ilgį, turime įvertinti, koks sumuojamų žodžių ilgis; mūsų atveju - 11. • Aprašo tekste esantys PRINT operatoriai suformuos tokius rezultatus faile DaugPvz.lst (jei į klausimą Will you get results on screen? atsakysite y, rezultatai bus išvesti į ekraną): S.Maciulevičius

  25. Modeliavimas Small • Rezultatai: unit DAUGYBOS ITAISASA[1:11]=00000011001     B[1:6]=010011SK[1:3]=100     A[1:11]=00000110010     C[1:11]=00000011001SK[1:3]=011     A[1:11]=00001100100     C[1:11]=00001001011SK[1:3]=010     A[1:11]=00011001000     C[1:11]=00001001011SK[1:3]=001     A[1:11]=00110010000     C[1:11]=00001001011SK[1:3]=000     A[1:11]=01100100000     C[1:11]=00111011011C[1:11]=00111011011 • Gautasis rezultatas C = 00111011011 = 475 S.Maciulevičius

  26. Operacinis ir valdantysis automatas D R P R O C E S R I U S OPERACINIS AUTOMATAS Y VALDANTYSIS AUTOMATAS X fG S.Maciulevičius

  27. Mikroprograminio valdymo principas • Komandų vykdymas operaciniame įrenginyje aprašomas algoritmu. Jis nusakomas mikrooperacijų ir loginių sąlygų terminais ir yra vadinamas mikroprograma. • Mikroprograma vienareikšmiškai aprašo mikrooperacijų vykdymo ir loginių sąlygų tikrinimo tvarką. S.Maciulevičius

  28. Procesoriaus veiksmai takto metu 1.Valdantysis automatas formuoja vieną ar daugiau valdančiųjų signalų y1, ..., yk Y. 2.Valdant signalams y1, ..., yk , realizuojamos mikrooperacijos. S.Maciulevičius

  29. Procesoriaus veiksmai takto metu 3. Mikrooperacijų vykdymo rezultatai fiksuojami registruose. 4. Suformuojamos loginės sąlygos x1, ..., xm X S.Maciulevičius

  30. Operacinio automato funkcijos • Informacijos žodžių įvedimas, išvedimas ir saugojimas. • Mikrooperacijų vykdymas. • Loginių sąlygų nustatymas. S.Maciulevičius

  31. Mikrooperacijų tipai 1.Nustatymo y1: R1[0:7] := 9AH 2.Perdavimo y2: R1[0:3] := R3[4:7] S.Maciulevičius 1306

  32. Mikrooperacijų tipai 3. Postūmio y3: R5[0:7] := R5[1:7].0 4. Skaičiavimo y4: R7 := R7 – 1 5. Veiksmo y5: R4 := R7 + R9 S.Maciulevičius 1306

  33. Operacinio automato realizacija • Lygiagrečiai su mikroprogramų sudarymu projektuojamas operacinis automatas. • Komandos vykdymo algoritmas skirstomas į elementarius veiksmus taip, kad sudaryta struktūra optimaliai realizuotų algoritmą. S.Maciulevičius 1307

  34. Dvejetainės daugybos algoritmas • Kaip matėme aukščiau, sandauga formuojama pakartotinės sudėties metodu, iš eilės tikrinant daugiklio skiltis, pradedant nuožemiausios. • Veiksmai su operandais atliekami tiesioginiame kode. S.Maciulevičius 1308

  35. Pradžia Įvesti A, B C:=0; SK:=5 B[6] C := C + A LSH(A); RSH(B) SK := SK - 1 Ne SK = 0? Taip Pabaiga Dvejetainės daugybos algoritmo schema S.Maciulevičius 1309

  36. Dvejetainės daugybos mikroprograma Sudarydami mikroprogramą, daugybos algoritmą kiek pakeičiame, atsižvelgdami į mikrokomandų (MK) sudarymo taisyklę (mikrokomandoje nurodyti veiksmai turi būti atliekami įtaiso vieno darbo ciklo metu): S.Maciulevičius 1309

  37. Pradžia A := DATA B := DATA C:=0; SK:=5 B[6] C := C + A LSH(A); RSH(B) SK := SK - 1 SK = 0? Pabaiga Dvejetainės daugybos mikroprograma Ne Taip S.Maciulevičius 1309

  38. DATA 0 y1 y2 y3 B A C x1 y5 y6 y8 y10 y9 Σ L R x2 y7 -1 SK y11 y4 Operacinis automatas 5 S.Maciulevičius 1310

  39. Mikrooperacijos Kiekvieną veiksmą turi atitikti viena ar kelios mikrooperacijos (MO): S.Maciulevičius 1309

  40. Mikrooperacijos S.Maciulevičius 1309

  41. Sąlygų sąrašas S.Maciulevičius 1309

  42. Pradžia y2 y1, y3, y4 1 x1 y5, y6, y7, y8 0 y9, y10 y11 x2 1 0 Pabaiga Užkoduota mikroprograma S.Maciulevičius 1309

  43. Y1 Y2 Y3 Y4 X A Mikrokomandos formatas • Jei adresacija priverstinė, MK formatas bus toks: • Paskesnės MK adresas nustatomas pagal formulę: At+1= A + xX S.Maciulevičius

  44. Pradžia 0 y2 y1, y3, y4 1 1 x1 3 6 y5, y6, y7, y8 0 y9, y10 2 y11 4 x2 1 0 5 Pabaiga Mikroprograma S.Maciulevičius

  45. Mikrooperacijų laukai • Suskirstykime MO į laukus taip, kad į vieną MK įeinačios MO pakliūtų į skirtingus laukus: Y1: y5, y1, y9; Y2: y6, y4, y10; Y3: y7, y3, y2; Y4: y8, y11; S.Maciulevičius 1313

  46. 1 XL X2 X1 & 1 & Dš X    & y1 yM y2  AS MKR X Y A PA[0:P] 1 p 2  1 1 1 1 p p q m   L Valdančiojo automato struktūra • MR - mikrokomandos registras • DŠ X - loginių sąlygų dešifratorius • MUX - multiplekseris • AS - adresų skaitiklis • PA - pastovi atmintis S.Maciulevičius

  47. Mikroprograma Small’e UNIT Daugybos mikroprograma P adresacija; REG A[11], C[11]; REG B[6]; CNT SK[3]; INP BUS DATA[6]; INT L[11], R[11], M[11]; … S.Maciulevičius

  48. Mikroprograma Small’e … MICROOP 1: B:= DATA; / 1 2: A:= DATA; / 1 3: C:= 0; /1 4: SK := 5;/1 5: L := A; /1 6: R := C; /1 7: M := L+R; /2 8: C := M; /3 9: A := LSH(A); /1 10: B := RSH(B); /1 11: SK := SK-1; /1 … S.Maciulevičius

  49. Mikroprograma Small’e … COND 1: B[6]=1; 2: SK<>0; ADRMODE F FORMAT Y1, Y2, Y3, Y4, X, A; YFIELDS 1: 5, 1, 9; 2: 6, 4,10; 3: 7, 3, 2; 4: 8, 11; XFIELD: 1,2; TRACE A, C, B, SK; … S.Maciulevičius

  50. Mikroprograma Small’e … MIMEM 0 0 3 0 0 1; 2 2 2 0 1 2; 3 3 0 0 0 4; 1 1 1 1 0 2; 0 0 0 2 2 5; 0 0 0 0 0 0; 0 0 0 0 1 2; GO END S.Maciulevičius

More Related