Presentation is loading. Please wait.

Presentation is loading. Please wait.

Arhitektura i organizacija računara

Similar presentations


Presentation on theme: "Arhitektura i organizacija računara"— Presentation transcript:

1 Arhitektura i organizacija računara
organizacja procesora

2 Organizacija procesora
CPU se sastoji iz staze podataka i jedinice za upravljanje (CU). Staza podataka se sastoji od registara i aritmetićko logičke jedinice (ALU) Staza podataka obavlja operacije nad podacima CU izdaje signale stazi podataka Unutar CPUa podaci se prenose od jednog do drugog registra i izmedju ALU i registara. Interni prenos podataka se obavlja preko lokalnih magistrala (bus) preko kojih se prenose podaci, instrukcije i adrese. Eksterno, podaci se prenose između registara i memorije i U/I uređaja, uglavnom preko sistemske magistrale. Interni prenos podataka između registara i ALU i registara se može ostvariti korišćenjem različitog broja lokalnih magistrala: Jedne Dve Tri

3 Organizacija sa jednom magistralom
CPU registri i ALU koriste jednu magistralu za prenos podataka Pošto se po magistrali u jednom trenutku (taktnom intervalu) može prenositi samo jedan podatak, binarne operacije zahtevaju dva ciklusa za pribavljanje operanada za ALU Dodatni registri mogu biti potrebni da zapamte podake za ALU (registri A i B na slici) Ovakva organizacija je najjednostavnija i najjeftinija, ali ima i najlošije performanse jer se ograničava broj jednovremenih prenosa

4 Organizacija sa dve magistrale
Brži prenos podataka nego sa jednom magistralom GPR (registri opšte namene) su povezani na dve magistrale Podaci se mogu prenositi iz dva različita registra na ulaze ALUa u istom trenutku (klok intervalu) Može biti potreban dodatni registar da zapamti rezultat ALU operacije ako su obe magistrale zauzete. Moguće je da jedna magistrala bude dodeljena za prenos podataka u registre, tj. za upis u registre (in-bus) a druga za prenos podataka iz registara, tj. za čitanje (out-bus) U ovom slučaju neophodni su dodatni registri na ulazu u ALU da zapamte operand dok se drugi operand ne pribavi (pročita) Izlaz iz ALUa može biti direktno povezan na in-bus i direktno obaviti prenos, tj. upis, u neki od registara opšte namene

5 Organizacija sa dve magistrale

6 Organizacija sa tri magistrale
U ovom slučaju se dve magistrale koriste za prenos izvornrih operanada iz registarkog fajla (out-bus1 i out-bus2) i posebna magistrala za prenos podataka koji treba da se upišu registarski fajl (In-bus). Svaka od izlaznih magistrala je povezana na jedan od ALU ulaza. Izlaz iz ALUa je direktno povezan na In-bus Što je više magistrala, to se više podataka u jednom klok ciklusu može preneti Povećanje broja magistrala povećava kompleksnost hardvera.

7 RISC arhitektura – globalni pogled
razmotrićemo implementaciju staze podataka organizovane oko tri interne magistrale (S1 i S2 za izvorne operande, Dest za odredišni operand – rezultat)

8 Staza podataka tipične RISC arhitektura
32 registra opšte namene Sve instrukcije su 32-bitne tri formata (I, R,J) Svaka instrukcija se izvršva u najviše 5 koraka Pribavljanje (Instruction fetch – IF) Dekodiranje instrukcije i pribavljanje operanda (Instruction decode – ID) Izvršenje / izračunavanje efektivne adrese (EX) obraćanje memoriji / okončanje grananja (MEM) upis rezultata u registarski fajl (Write Back – WB) razmotrićemo implementaciju staze podataka organizovane oko tri interne magistrale (S1 i S2 za izvorne operande, Dest za odredišni operand – rezultat)

9 I format instrukcija I format (load, store, branch, ALU operacije sa neposrednim operandom) OP Rs1 Rd Immed OP – kod operacije Rs1 – izvorni operand za ALU - bazni registar za generisanje memorijske adrese kod load i store - registar čiji se sadržaj testira za slučaj barnch Rd – polje odredišnog registra za slučaj ALU op. i load - polje regista čiji se sadržaj pamti u mem. za slučaj store Rd=0 za branch Immed – neposredni operand: drugi operand za slučaj ALU instrukcije; pomeraj koji se dodaje baznom registru za slučaj load i store instrukcija pomeraj koji se dodaje programskom brojaču za slučaj naredbe grananja (branch)

10 Primer I formata instrukcija
LW R1, 30 (R2) dejstvo R1 Mem[30 +[R2]] SW 500(R4), R3 dejstvo Mem[500+[R4]] [R3] ADDI R1,R2,#3 dejstvo R1 [R2]+3 BEQZ R1, ime dejstvo if R1=0 then PC  PC+ime rd Imm Rs1

11 R format instrukcija R format (ALU operacije tipa registar-u registar)
OP Rs1 Rs2 Rd shamt funkcija OP+ funkcija – kod operacije Rs1 – prvi izvorni operand za ALU Rs2 – drugi izvorni operand Rd – polje odredišnog registra PRIMER: ADD R1,R2,R3 dejstvo R [R1]+[R2]

12 J format instrukcija J format – jump instrukcija OP– kod operacije
OP offset (pomeraj) OP– kod operacije offset – pomeraj koji se dodaje PC PRIMER: JMP ime dejstvo PC  PC+ime

13 Faze izvršenja Svaka integer instrukcija RISC procesora se može obaviti za najviše pet klok ciklusa (faza) Pribavljanje instrukcije (Instruction fetch – IF) Dekodiranje i čitanje operanada (Instruction decode – ID) Izvršenje (Execution – EX) Obraćanje memoriji (MEM) Upis rezultata u regsitarski fajl (Write back – WB) Tokom svake faze obavlja se niz elementarnih aktivnosti za koje su zaduženi odgovarajući delovi staze podataka. Te elementarne aktivnosti nazivamo mikrooperacijama. Svaka mikrooperacija aktivira određene upravljačke linije (signale) elemnata hardvera koji učestvuje u obavljanju određenih mikrooperacija. Upravljačke signale generiše upravljačka jedinica (CU) procesora.

14 Faze izvršenja 1 Instruction fetch cycle (IF):
IR ¬ Mem[PC] NPC ¬ PC + 4 Dekodiranje instrukcije i pribavljanje operanda (ID): A ¬ Regs[Rs1]; B ¬ Regs[Rs2]; Imm ¬ ((IR16)16##IR ) sign-extended immediate field of IR Napomena: IR (instrukcioni registar), NPC (next sequential program counter register) A, B, Imm su privremeni registri Izvršenje svake instrukcije obavlja se najviše u 5 faza. Tokom svake faze obavlja se niz elementarnih aktivnosti za koje su zaduženi odgovarajući delovi staze podataka. Te elementarne aktivnosti nazivamo mikrooperacijama. Svaka mikrooperacija aktivira određene upravljačke linije (signale) elemnata hardvera koji učestvuje u obavljanju određenih mikrooperacija. Upravljačke signale generiše upravljačka jedinica (CU) procesora.

15 Faze izvršenja- nastavak
Execution/Effective address cycle (EX): Memory reference: ALU Output ¬ A + Imm; Register-Register ALU instruction: ALUOutput ¬ A func B; Register-Immediate ALU instruction: ALUOutput ¬ A op Imm; Branch: ALUOutput  NPC + Imm; Cond ¬ A op 0 (op je relacioni operator definisan kodm instrukcije)

16 Faze izvršenja- nastavak
Obraćanje memoriji /okončanje grananja (MEM): Obraćanje memoriji: LMD ¬ Mem[ALUOutput] ili Mem[ALUOutput] ¬ B; Branch: if (cond) PC ¬ ALUOutput else PC ¬ NPC napomena: LMD (load memory data) register

17 Faze izvršenja- nastavak
Write-back cycle (WB) – upis u registarski fajl: Register-Register ALU instruction: Reg[IR16..20] ¬ ALUOutput; Register-Immediate ALU instruction: Reg[IR11..15] ¬ ALUOutput; Load instruction: Reg[IR11..15] ¬ LMD; Napomena: LMD (load memory data) register

18 Primer projektovanja staze podataka
Razmotrimo implementaciju CPUa koji sadrži reprezentativni podskup naredbi MIPS procesora: Instrukcije za obraćanje memoriji load word (lw) i store word (sw) Aritmetičko logičke instrukcije add, sub, and, or i slt Instrukciju grananja (branch equal ) beq i skoka (jump) j

19 Implementacija staze podataka
Bez obzira na razlike između instrukcija, najveći deo posla koji treba da se obavi je isti, nezavisno od klase instrukcija. Za svaku instrukciju prva dva koraka su identična: Pribavljanje instrukcije na osnovu sadržaja PC Čitanje jednog ili dva registra korišćenjem odgovarajućih polja u instrukciji kojima se selektuju registri. Nakon ova dva koraka, akcije potrebne za okončanje izvršenja instrukcija zavise od klase instrukcija. Na sreću, akcije su slične za sve tri klase instrukcija, nezavisno od koda operacije

20 Komponente potrebne za implementaciju procesora
sabirači i aritmetičko-logičke jedinice, multiplekseri i demultiplekseri, proširivači, registri i polja registara, memorije. Za implementaciju procesora biće nam potrebne sledeće komponente: – sabirači i aritmetičko-logičke jedinice, –multiplekseri i demultiplekseri, – pomerači i proširivači, – registri i polja registara, –memorije.

21 Sabirači i aritmetičko-logičke jedinice
Sabirač dva 32-bitna broja i jednobitnog ulaznog prenosa. Daje 32-bitni zbir i jednobitni izlazni prenos Aritmetičko-logička jedinica obavlja operacije sabiranja, oduzimanja, formiranje dvoičnog komplementa, logičke operacije I, ILI, NE i poređenja. Generiše 32-bitni rezltat i 1-bitni signal ako je rezultat 0. Zahtevana operacija određuje se preko ALUoperation upravljačkih ulaza. ALUresult32  A32 Op B32 32 32 32 32 32 32

22 Multiplekseri i demultiplekseri
Multiplekser preko adresnih ulaza Adr bira ulaze podataka (A ili B) koje spaja sa izlazom Y Demultiplekser preko adresnih ulaza Adr bira izlaze podataka (A ili B) koje spaja sa ulazom X.

23 proširivač Proširivač dopisuje ispred 16-bitnog podatka još 16 bitova, koji predstavljaju cifru znaka Primeri 16-bitni podatak proširiti znakovno znakovno proširenje 16 32 proširivač (Sign extend)

24 Registri i polja registara
Registar pamti 32-bitni podatak. Upis podatka se taktuje. Sadržaj registra stalno raspoloživ na izlazu. Polje registara sa 32 registra dužina po 32 bita. RegWrite dozvola upisa. Upis podatka preko ulaznog porta se taktuje. Na izlaznim portovima podaci stalno prisutni 32 32 registar clk

25 Primer polja sa 4 registra

26 Memorija Posebna memorija za instrukcije i podatke.
Adresa određuje memorijsku lokaciju kojoj se pristupa. Upis podatka obavlja pri dozvoli upisa i taktnom signalu (MemWrite). Čitanje: signal MemRead i taktni signal

27 Instruction fetch cycle (IF):
Deo staze podataka za pribavljanje instrukcije i inkrementiranje sadržaja programskog brojača Instruction fetch cycle (IF): IR  Mem[PC] NPC  PC + 4

28 Deo staze podataka potreban za implementaciju grananja
Za izvršenje naredbe granaja neophodno je obaviti dve operacije: izračunavanje ciljne adrese naredbe grananja, ako granaje treba da se obavi, i izračunavanje uslova granaja (poređenje sadržaja registra na 0) Da bi se izračunala adresa naredne isntrukcije, koristi se jedinica za znakovno proširivanje proširivanje (sign extend) i sabirač. Da bi se obavilo poređenje, koristi se registarski fajl da bi se pribavio registar čiji se sadržaj testira i ALU koja obavlja testiranje Plavom boju su označeni neophodni upravljački signali: RegWrite daje dozvolu upisa u registarski fajl; ALUoperation definiše koju operaciju treba da obavi ALU

29 Deo staze podataka potreban za implementaciju load/store i ALU instrukcija
ALU instrukcije kao ulazne operande koriste dva registra, ili registar i znakovno prošireni operand. Instrukcije za obraćanje memoriji takođe koriste ALU da bi izračunale memorijsku adresu operanda. Jedan operand je iz registra a drugi se dobija znakovnim prošenjem neposrednog operanda. Plavom bojom su označeni neophodni upravljački signali: RegWrite – dozvola upisa u registarski fajl ALUSrc definiše šta je drugi operand ALU instrukcije (registar ili znakovno prošireni neposredni operand) ALUoperation – definiše koju operaciju obavlja ALU (sabiranje, poređenje,oduzimanje, i, ili,..) ovo se direktno dobija na osnovu polja kod operacije. MemWrite signal dozvole upisa u memoriju MemRead signal dozvole čitanja memorije MemtoReg signal koji određuje da li se u registarski fajl upisuje vrednost pribavljena iz memorije (ako se izvršina naredba load) ili vrednost sa izlaza ALUa (ALU rezult) ako se izvršila ALU instrukcija.

30 Izgled kompletne staze podataka
Da bi se u stazu podataka integrisali svi delovi, neophodno je bilo dodati još jedan multiplekser zbog naredbe grananja (oderćuje koji će se sledeći sadržaj PC koristiti). Upravljački signal PCSrc definiše koja vrednost će odrediti sledeći sadržaj PC (naredba sa ciljne adrese naredbe grananja za slučaj da do grananja dolazi, ili sledeća instrukcija koja sledi neposredno iza izvršene instrukcije)

31 [0-5] [6-10] [11-15] [16-20] [16-31] [21-31] staza podataka sa upravljačkom jedinicom (CU). Ulaz u CU je 6-to bitni kod operacije pribavljene instrukcije. Izlazi iz CU se sastoje od 1-bitnih signala koji se koriste da upravljaju radom multipleksera (RegDst, ALUSrc i MemtoRg), tri signala za upravljanje čitanjima i upisima u registarski fajl i memoriju za podatke (RegWrite,MemRead, MemWrite), 1-bitni signal koji se koristi da bi se odredilo da li dolazi do grananja ili ne (Branch), signali za definisanje ALU operacije (ALUop). AND kolo se koristi da kombinuje branch upravljački signal i Zero izlaz iz ALUa. Izlaz iz AND kola predstavlja selektorski signal za multiplekser kojim se selektuje koji će biti sledeći sadržaj programskog brojača(PC)

32 Upravljačka jedinica procesora (Control Unit –CU)
U svakoj od fauza izvršenja instrukcije obavlja se niz elementarnih aktivnosti koje nazivamo mikrooperacijama Mikroperacija može biti prenos podataka iz jednog u drugi registar CPUa, čitanje podatka iz memorije ili upis podatka u memoriju, elementarne operacije nad podacima i drugo. npr. A  Regs[Rs1]; ALUOutput  A func B LMD  Mem[ALUOutput] ili Mem[ALUOutput]  B; Svaka mikrooperacija aktivira određene upravljačke tačke elemenata hardvera koji učestvuje u izvršenju određenih mikrooperacija. Funkcija upravljačke jedinice je generisanje odgovarajućih upravljačkih signala, u odgovarajućim vremenskim trenutcima, koji su neophodni za rad računara Upravljački signali se mogu generisati na dva načina hardverski (tvz. upravljačke jedinice sa direktnim upravljanjem) upravljačka jedinica je realizovana kao sekvencijalno logičko kolo mikroprogramski upravljački signali se nalaze u posebnoj memoriji (mikro-programska memorija) koja može biti realizovna kao ROM ili RAM memorija Mikroprogramsko upravaljanje se realizuje pomoću sekvence mikroinstrukcija

33 Model upravljačke jedinice
Bez obzira da li se radi o hw ili mikroprogramskoj organizaciji upravljačke jedinice, opšti oblik je prikazan slici Ulazi u CU kod operacije pribavljene instrukcije (nalazi se u instrukcionom registru) Flags –upravljački signali iz registra koda uslova (CCR) signali sa sistemske magistrale (npr prekidi od U/I uređaja) Izlazni signali su upravljački signali za CPU (dva tipa: jedani koji uzrokuju prenos podataka iz jednog registra u drugi, i koji aktioviraju specifične ALU funkcije) uprvljački signali za control bus (takođe dva tipa: upravljački signali za memoriju, i upravljački signali za U/I uređaje)

34 hardverska implementacija
Različiti upravljački signali treba da se aktiviraju u različitim vremenskim trenucima kod hardverske implementacije se koristi kružni brojač koji definiše trenutke aktiviranja pojedinih signala

35 Osobine hardverske implementacije
kompleksnost sekvenciranja i logike, ako je veliki skup instrukcija otežano projektovanje i testiranje nefleksibilan dizajn – tečko je dodati nove instrukcije u već projektovanu CU Kada je jedanom projektovana, male promene zahtevaju potpuni redizajn kola Glavna prednost je brzina rada i to je razlog što se ova tehnika koristi za realizaciju brzih procesora

36 Karakteristike mikroprogramskog upravljanja
Skup upravljačkih signala zajedno sa sekvencirajućom informacijom smešta se u memoriju Memorija može biti ROM ili RAM tipa i naziva se mikroprogramska memorija (microprogramme memory ili control memory) Mikroprogramsko upravaljanje se realizuje pomoću sekvence mikroinstrukcija prednosti Izmene se izvode brže Greške se lakše otklanjaju Projektovanje i održavanje računara je pojednostavljeno Koristeći mikroprogramsku emulaciju moguće je ostvariti kompatibilnost sa drugom mašinom Nedostatak sporije izvršenje instrukcija

37 Mikroprogramsko upravljanje
Za svaku instrukciju iz skupa instrukcija date arhitekture, postoji poseban mikro-program zapamćen u mikro-programskoj memoriji. Svaka mikro-instrukcija definiše upravljačke signale koji se aktiviraju u datom trenutku. Na osnovu koda operacije instrukcije se dobija startna adresa mikro-programa u m-memoriji za datu instrukciju. Mikro-program može imati linijsku strukturu, ali može imati i naredbe grananja i skoka. Adresa sledeće m-instukcije se odrećuje logikom za sekvenciranje: to može biti naredna instrukcija u nizu (adresa se dobija inkrementiranjem sadržaja mikroprogramskog adresnog registra) ili adresa iz polja naredne adrese (adresa grananja)

38 Organizacija mikroprogramske memorije
Ako imamo m instrukcija u ISA, I0 do Im-1, onda postoji m različitih mikro-programa, mp0 do mpm-1, zapamćenih u memoriji Svaki mikro-program ima različitu adresu u mikroprogramskoj memoriji. Da bi se izvršila instrukcija, mikroprogramski upravljani procesor pristupa ovoj memoriji da bi pronašao skup mikroinstrukcija potrebnih za implementaciju instrukcije Ii startna adresa se dobija na osnovu koda operacije pribavljene instrukcije (nakon okončanja faze dekodiranja instrukcije).

39 Izgled mikroprogramske memorije: za m instrukcija, postoji m mikroprograma, pri čemu je svaki zapamćen na različitoj adresi u mikroprogramskoj memoriji

40 Format mikroinstrukcija
polje upravljačkih signala polje adrese sledeće mikroinstrukcije Horizontalni format koristi se po jedna binarna pozicija za svaki upravljački signal mogu bitiveoma duge instrukcije, tipično bitova visok stepen paralelizma u radu (jednom instrukcijom se može definisati ALU operacija, prenos ka/iz memorije, prenos između registara) upravljački signali sa izlaza registra mikroinstrukcija direktno se vode do upravljačkih tačaka u stazi podataka procesora Vertikalni format (ili maksimalno kodirani format) mikroinstrukcijom se kodira jedna operacija (akcija) npr prenos iz registra u registar (R1R2) obavlja operacija (R1R2+R3) neophodno je definisati skup svih mikrooperacija i svaku kodirati sa n bitova može se kodirati 2n mikroisntrukcija mnogo su kraće instrukcije (12 do 32 bita) zahteva se korišćenje dekodera manje fleksibilno dodavanje nove instrukcije zahteva promenu dekodera

41 Horizontalni format

42 vertikalni format

43 Jednostavni primer projektovanja CU
hardverska CU - mikroprogramska CU

44 Model jednsotavnog računara
Accumulator ALU Register B PC MAR MDR RAM IR Control 8 12 4 Bus R W LM IP LP EP LD ED LA EA S A EU LB LI EI

45 A, S ( Add, Subtract) – sabiranje, oduzimanje
Jedna 12-bitna magistrala se koristi za prenos informacija između parova registara unutar staze podataka. Registrima i memorijom se upravlja pomoću 16 upravljačkih (control) signala. Većina registara ima Load (L) i Enable (E) ulaze na koje se dovode odgovarajući upravljački signali. Aktivni L signal prisutan na ulazu registra uzrokuje da se sadržaj koji se nalazi na magistrali upiše u registar pri nailasku narednog klok impulsa. Aktivni E signal otvara ulaz registra i omogućava da se njegov sadržaj nađe na magistrali. A, S ( Add, Subtract) – sabiranje, oduzimanje Bit znaka iz ACC za control unit IP = Increment PC Tako npr. da bi se preneo sadržaj registra A u registar B neophodno je prvo aktivirati signal EA (koji će omogućiti da se sadržaj registra A nađe na magistrali) a zatim signal LB koji će omogućiti da se sadržaj sa magistrale upiše u registar B. ACC ALU B PC MAR MDR RAM IR Control Bus R W LM IP LP EP LD ED LA EA S A EU LB LI EI Da bi se obavio prenos iz jednog registra u drugi neophodno je prvo postaviti sadržaj registra na magistralu (aktivirati signal E- enable), a zatim dozvoliti da se sa magistrale izvrši upis u registar (aktivirati signal L –load) . Npr da bi se sadržaj preneo iz registra MDR u ACC potrebno je prvo aktivirati signal ED, a zatim signal LA.

46 Obradu podataka obavlja ALU (Arithmetic-Logic-Unit, ALU, aritmetičko-logička- jedinica) , kolo koje je u stanju da obavi sabiranje ili oduzimanje dva 12-bitna broja koji se nalaze u dva registra: akumulatoru (ACC) i registru B. Koju će operaciju obaviti ALU definišu upravljački signali A (Add) ili S (Substract). Akumulator ima jedan flip-flop koji se postavlja kada je rezultat negativan (tj. kada je prvi bit postavljen na 1) . Vrednost ovog bita predstavlja ulaz u kontroler/ sekvencer RAM memoriji računara se pristupa tako što se prvo postavi 8-bitna adresa u Memory Address Register (MAR). Aktivni Read (R) upravljački signal će zatim uzrokovati da se sadržaj adresirane memorijske lokacije prenese u Memory Data Register (MDR). S druge strane, aktivni Write (W) signal uzrokuje da se sadržaj MDR upiše u RAM na adresu specificiranu sadržajem MAR registra. Reč zapamćena u memoriji može biti podatak ili instrukcija

47 Staza podataka sadrži i programski brojač PC čija je funkcija da ukazuje na adresu sledeće instrukcije u memoriji koja treba da se izvrši. Upravljački signal Increment Program Counter (IP) uzrokuje inkrementiranje sadržaja PC za jedan. Ovo omogućava sekvencijalno izvršenje instrukcija. Pored toga sastavni deo staze podataka je i instrukcioni registar (IR) koji pamti instrukciju koja se trenutno izvršava i obezbeđuje opcode bitove za kontroler/sekvencer.

48 Skup instrukcija Instrukcije su 12-bitne.
Prva 4 bita definišu kod operacije (opcode), a preostalih 8 bitova, kada se koriste, definišu memorijsku adresu operanda. Za instrukcije koje imaju dva operanda, jedan je uvek u akumulatoru (uzeli smo primer jedno-adresne mašine). U tabeli 1 se nalazi skup instrukcija našeg hipotetičnog računara. U Tabelu su prikazani i upravljački signali koji se postavljaju kada se neka od instrukcija izvršava kao i signali koji se postavljau kada se pribavlja nova instrukcija (“Fetch”). Takođe, prkazano je koji transferi iz registra u registar se obavljaju. Tako, npr. u slučaju LDA (load accumulator) instrukcije, prvi korak se sastoji u kopiranju adrese operanda, koja se nalazi u zadnjih 8 bitova instrukcionog registra, u MAR (memory address registar). Zbog toga su postavljeni (aktivni su) signali EI (enable IR) i LM (load MAR). Sledeći korak je čitanje operanda iz memorije i upis u MDR registar. Zbog toga je aktivan signal R (Read memory). Poslednji korak u izvršenju LDA instrukcije je kopiranje sadržaja MDR registra u akumulator. To se postiže aktiviranjem signala ED (enable MDR) i LA (Load akumulator).

49 U tabeli 1 se nalazi skup instrukcija našeg hipotetičnog računara
U tabeli 1 se nalazi skup instrukcija našeg hipotetičnog računara. U Tabelu su prikazani i upravljački signali koji se postavljaju kada se neka od instrukcija izvršava kao i signali koji se postavljau kada se pribavlja nova instrukcija (“Fetch”). Takođe, prkazano je koji transferi iz registra u registar se obavljaju. Tako, npr. u slučaju LDA (load accumulator) instrukcije, prvi korak se sastoji u kopiranju adrese operanda, koja se nalazi u zadnjih 8 bitova instrukcionog registra, u MAR (memory address registar). Zbog toga su postavljeni (aktivni su) signali EI (enable IR) i LM (load MAR). Sledeći korak je čitanje operanda iz memorije i upis u MDR registar. Zbog toga je aktivan signal R (Read memory). Poslednji korak u izvršenju LDA instrukcije je kopiranje sadržaja MDR registra u akumulator. To se postiže aktiviranjem signala ED (enable MDR) i LA (Load akumulator).

50 blok dijagram sa unutrašnjom organizacijom hardvereske CU
Ulaz u CU je 4-bitni kod operacie instrukcije koja se trenutno nalazi u instrukcionom registru, i flag znaka iz akumulatora. Izlaz iz CU je 16 upravljačkih signala koji dosežu do različitih registara i do memorije računara, pored HLT signala koji se aktivira kad god je prvi bit opcode jednak jedan. CU se sastoji od sledećih funkcionalnih jedinica: kružni brojač dekoder instrukcija upravljačka matrica (control matrix) IR Decoder Control Matrix LDA STA ADD SUB MBA JMP JN Ring Counter NF T5 T0 Halt Opcode Control Signals CLK

51 implementacija kružnog brojača
Kružni brojač generiše sekvencu od 6 uzastopnih aktivnih signala koja se stalno ponavlja. Kružni brojač je sinhronizovan sa sistemskim klokom (taktom) i on prvo aktivira liniju T0, zatim T1, itd. Nakon aktiviranja T5, sekvenca se vraća na početak, tj počinje se od T0.

52 trenutci aktiviranja pojedinih signala

53 Ddekoder Dekoder instrukcija ima 4-bitni ulaz koji potiče od opcode polja instrukcije, in a osnovu njega aktivira jednu i samo jedno od svojih 8 izlaznih linija. Svaka linija odgovara jednoj instrukciji iz seta instrukcija našeg računara.

54 Upravljačka matrica Najvažniji deo hardverske CU je upravljačka matrica (control matrix). Ona dobija ulaze sa kružnog brojača i dekodera instrukcija i obezbeđuje korektnu sekvencu upravljačkih signala neophodnih za izvršenje svake instrukcije.

55 izgled upravljačke matrice

56 upravljački signali i trenuci aktiviranja
Prva kolona tabele prikazje instrukcije (uključujući i fetch fazu). Ostale kolone prikazuju koji signali se aktiviraju za svaku instrukciju u kom stanju kružnog brojača (T0, T1, T2, T3, T4 ili T5). Tako, npr., Fetch operacija zahteva aktiviranje signala EP i LM u stanju T0, signala R u stanju T1, i aktiviranje signala IP, Ed i LI u stanju T2.

57 jednačine na osnovu kojih se dobija uprvljačka matrica

58 Mikroprogramska jedinica

59

60


Download ppt "Arhitektura i organizacija računara"

Similar presentations


Ads by Google