1 / 54

Arhitektura i organizacija računara

Arhitektura i organizacija računara. organizacja procesora. Organi zacija 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

deon
Télécharger la présentation

Arhitektura i organizacija računara

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

  8. Staza podataka tipične (hipotetička) 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)

  9. I format instrukcija • I format (load, store, branch, ALU operacije sa neposrednim operandom) 0 5 6 10 11 15 16 31 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 dejstvoif R1=0 then PC PC+ime rd Imm Rs1

  11. R format instrukcija • R format (ALU operacije tipa registar-u registar) 0 5 6 10 11 15 16 2021 31 OP Rs1 Rs2 Rd 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 R3 [R1]+[R2]

  12. J format instrukcija • J format – jump instrukcija 0 5 6 31 OP offset (pomeraj) OP– kod operacije offset – pomeraj koji se dodaje PC PRIMER: JMP imedejstvo PC  PC+ime

  13. Faze izvršenja • Svaka integer instrukcija RISC procesora se može obaviti za najviše pet klok ciklusa: 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 16..31) sign-extended immediate field of IR Napomena: IR (instrukcioni registar), NPC (next sequential program counter register) A, B, Imm su privremeni registri

  14. 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)

  15. 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

  16. 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

  17. 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

  18. Komponente potrebne za implementaciju procesora • sabirači i aritmetičko-logičke jedinice, • multiplekseri i demultiplekseri, • proširivači, • registri i polja registara, • memorije.

  19. 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

  20. 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.

  21. proširivač Proširivač dopisuje ispred 16-bitnog podatka još 16 bitova, koji predstavljaju cifru znaka Primeri 16-bitni podatak proširitiznakovno 1010 1111 0101 0011 znakovno proširenje 1111 1111 1111 1111 1010 1111 0101 0011 16 32 proširivač (Sign extend)

  22. 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

  23. Primer polja sa 4 registra

  24. 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

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

  26. Deo staze podataka potreban za implementaciju grananja • ALUOutput  NPC + Imm; • Cond  A op 0 (op je relacioni operatordefinisan kodm instrukcije)

  27. Deo staze podataka potreban za implementaciju load/store i ALU instrukcija

  28. Izgled kompletne staze podataka

  29. Izgled staze podataka sa označenim resursima koji se koriste u svakoj od faza izvršenja instrukcije

  30. [0-5] [6-10] [11-15] [16-20] [16-31] [21-31]

  31. 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

  32. Model upravljačke jedinice

  33. 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

  34. 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

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

  36. Mikroprogramsko upravljanje

  37. 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 operacijepribavljene instrukcije (nakon okončanja faze dekodiranja instrukcije).

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

  39. 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 150-200 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

  40. Horizontalni format

  41. vertikalni format

  42. Jednostavni primer projektovanja CU hardverska CU - mikroprogramska CU

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

  44. L = napuni registar E (enable)= pošalji sadržaj registra na magistralu (bus) A,S ( Add, Subtract) – sabiranje, oduzimanje Bit znaka iz ACC za control unit IP = Increment PC LA IP ACC PC EA LP EP ALU S MAR A LM EU RAM R W LB B LD LI IR MDR EI ED Control Bus

  45. Hardverska CU CLK IR Ring Counter T5 T0 Opcode LDA Decoder Control Matrix STA ADD SUB MBA JMP JN Halt NF Control Signals

  46. implementacija kružnog brojača

  47. trenutci aktiviranja pojedinih signala

  48. implementacija dekodera

  49. izgled upravljačke matrice

More Related