590 likes | 886 Views
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
E N D
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 (į atmintį) Procesorius S.Maciulevičius
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Modeliavimas Small S.Maciulevičius
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
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
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
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
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
Procesoriaus veiksmai takto metu 3. Mikrooperacijų vykdymo rezultatai fiksuojami registruose. 4. Suformuojamos loginės sąlygos x1, ..., xm X S.Maciulevičius
Operacinio automato funkcijos • Informacijos žodžių įvedimas, išvedimas ir saugojimas. • Mikrooperacijų vykdymas. • Loginių sąlygų nustatymas. S.Maciulevičius
Mikrooperacijų tipai 1.Nustatymo y1: R1[0:7] := 9AH 2.Perdavimo y2: R1[0:3] := R3[4:7] S.Maciulevičius 1306
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
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
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
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
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
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
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
Mikrooperacijos Kiekvieną veiksmą turi atitikti viena ar kelios mikrooperacijos (MO): S.Maciulevičius 1309
Mikrooperacijos S.Maciulevičius 1309
Sąlygų sąrašas S.Maciulevičius 1309
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
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
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
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
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
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
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
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
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