1 / 62

Protsessori ja mälu osa andmetöötluses

Protsessori ja mälu osa andmetöötluses. Protsessor (CPU-Central Processing Unit). CPU. Andmed & programm. Andmed. Mälu. Sisend. väljund. Käsud. Mälu (Memory System). Käsud Instructions. Andmed Data. CPU. ALU. Juht automaat Control Unit. Registrid Registers.

harlan
Download Presentation

Protsessori ja mälu osa andmetöötluses

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. Protsessori ja mälu osa andmetöötluses Protsessor (CPU-Central Processing Unit) CPU Andmed & programm Andmed Mälu Sisend väljund Käsud Mälu (Memory System) Käsud Instructions Andmed Data CPU ALU Juht automaat Control Unit Registrid Registers Operatsioon automaat (Datapath) Sisend/väljund (Input/output) T. Evartson

  2. T. Evartson

  3. Kõrgtaseme keel-assembler-masinkood Kõrgtaseme keel High-level language If n<100 then a:= b else v[i]:=k[j-1] end; Assembler keel Assembly language ADD a,b,c MOV d, M XOR c,d Masinkood Binary machine language 00110111001110 11000110010100 11110100000101 11110000011100 T. Evartson

  4. Andmevahetus mäluga Aadress Andmed & programm Andmed Lug./kirj. Mälu Mälu aadressi ja andmete registrid Aadress Mälu aadressi register (MAR) Käsk 1 Käsk 2 Mälu Käsk 3 Andmed Andmed Mälu puhver register (MBR) T. Evartson

  5. Käsuloendur Program Countrer, Instruction Pointer Mälu Järjestikuste käskude lugemine käsuloenduri (PC) aadressi järgi Aadress Käsuloendur (PC) Käsk 1 Käsk 2 Inc. (+1) Käsk 3 Andmed T. Evartson

  6. Käsu register ja käsu dekodeerimine Käsuregister (IR) Käsukood Aadress/Operand Dekooder ADD OR MUL T. Evartson

  7. Käsu täitmise juhtimine Mälu aadressi register (MAR) Käsuloendur (PC) Mälu Inc. (+1) IR Käsukood Aadress Mälu puhver register (MBR) Käsu dekooder Andmed Aadressid Juht- automaat (CU) Juhtsignaalid T. Evartson

  8. Operatsioonautomaat Operatsioonautomaat - vahetu andmete teisendaja (Data path) Andmed mälust ja I/O seadmetest Register 1 Registermälu Register 2 Register 3 Register n Ope- rand 1 Resultaat Ope- rand 2 ALU Lippude register (Flags) T. Evartson

  9. Mälujaotus ilma siirdekäskude ja vahetute operandide, ning otsese adresseerimiseta Käsk1 Käsuloendur Käsk2 Käsk 3 Käsk4 Käsk 5 T. Evartson

  10. Protsesor ilma vahetute operandide ja siirde käskudeta Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Inc. (+1) Käsuregister(IR) Käsukood Aadress Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registermälu) ALU Juht- automaat (CU) Juhtsignaalid Lippude register Aadressid Juhtimine Andmed T. Evartson

  11. Käsu täitmise tsükkel ( von Neumanni tsükkel) Fetch – Decode – Execute Cycle Käsukoodi laadimine (Fetch) Käsuloenduri modifitseerimine PC: =PC +1 Käsu täitmine Käsukoodi dekodeerimine T. Evartson

  12. PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine . . . . . . . . . . . . Käsu täitmine (instruction execute) T. Evartson

  13. Mälu jaotus siirdekäskudega programmiga Käsk1 Käsuloendur Käsk2Siirdekäsk (Branch) Järgmise käsu aadress Käsk3 Andmed Käsk1a Käsk2a T. Evartson

  14. Siirdekäsud protsessoris Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Järgmise käsu aadress Inc. (+1) Käsuregister(IR) Käsukood Aadress Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus T. Evartson

  15. PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Siirdekäsk . . . 1 Tingimus 0 . . . Käsu täitmine (instruction execute) PC M PC + 1 Uus PC T. Evartson

  16. Mälu jaotus operandi otsese adresserimisega käsu koral Käsk1 Käsuloendur Käsk2 Operandi aadress Käsk3 Andmed Operand Käsk n T. Evartson

  17. Käsukoodiga antakse koos operandi aadress Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Inc. (+1) Operandi aadress Käsuregister(IR) Operandi aadress Käsukood Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus T. Evartson

  18. PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Otsese adresseerimisega käsk . . . PC M . . . . . . Käsu täitmine (instruction execute) M IR PC + 1 . . . T. Evartson

  19. Mälu jaotus vahetu operandiga käskude korral Käsk1 Käsuloendur Käsk2 Operand Käsk3 Käsk4 Käsk n T. Evartson

  20. Vahetu operandiga käsud Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Inc. (+1) Käsuregister(IR) Operand (Aadress) Käsukood Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) Operand ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus T. Evartson

  21. PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine Vahetu operandiga käsk . . . PC M . . . . . . Käsu täitmine (instruction execute) M IR PC + 1 . . . T. Evartson

  22. Protsessori üldstruktuur Käsuloendur (PC) Mälu aadressi register (MAR) Mälu Järgmise käsu aadress Inc. (+1) Operandi aadress Käsuregister(IR) Operand (Aadress) Käsukood Mälu puhver register (MBR) Käsu dekooder Andmeregistrid (registérmälu) Operand ALU Juht- automaat (CU) Juht- signaalid Lippude register Siirde (Branch) tingimus T. Evartson

  23. T. Evartson

  24. T. Evartson

  25. Jäiga loogikaga juhtautomaatHard Wired Juhtautomaat (CU) Milline käsk täidetakse Juhtsignaalid protsessori eri osadele Tagaiside protsessori eri osadest T. Evartson

  26. Kombinarsioonskeemid (Combinational Circuits) Boole`i funktsioon x 1 y = f (x1,x2,… xn) x 2 y Teades sisendite loogilisi väärtusi antud ajahetkel saame vastava Boole`i funktsiooni kaudu arvutada väljundi väärtuse. Puudub sõltuvus eelmistest sisendite väärtustest. x n Järjestikskeemid (Sequential Circuits) Boole`i funktsioon + olek Selleks, et määrata väljundi väärtust antud ajahetkel on vaja teada sisendite väärtusi antud ajahetkel ja olekut mis sõltub eelmistest sisendite väärtustest. Taktsisendi t kaudu määratakse millal toimub üleminek ühest olekust teise. x 1 x 2 y x n x 1 y Väljund funktsioon x n t Ülemineku funktsioon Uus olek am as Mälu Vana olek t T. Evartson

  27. Mealy automaadi struktuur Yj=fv(as,Xi) Yj Xi am=fü(as,Xi) Ergutus mis viib olekusse am Praeguse oleku kood as Mälu t T. Evartson

  28. Moore automaadi struktuur Yj=fv(as,Xi) Yj Xi am=fü(as,Xi) Ergutus mis viib olekusse am Praeguse oleku kood as Mälu t T. Evartson

  29. Tingimused {X} Käsuregister Aadressi generaator t Aadressi register Püsimälu (mikroprogrammi mälu) Järgmise sõna aadress Tingimuse valik Juhtsignaalid {Y} T. Evartson

  30. T. Evartson

  31. T. Evartson

  32. Mikroprogrammeeritav juhtautomaat Käsukood Aadress/Operand Käsuregister (IR) INC.(+1) Mikrokäsuloendur CLK Mikroprogrammi mälu (tavaliselt püsimälu) Aadress Andmed Järgmise käsu aadress Laadi- mine/ inc Tingimuse valik Protsessori juhtimine Protsessorisse teistesse komponentidesse MUX Tingimused protsessorist T. Evartson

  33. A:=E B:=E C:=E D:=E A B C D TMP1:=A TMP2:=A TMP1:=B TMP2:=B TMP1:=C TMP2:=C TMP1:=D TMP2:=D Laadida TMP1 Laadida TMP2 TMP1 TMP2 ALU V P {AND, OR, SHL1, SHR1, +, INC, DEC, ...} Lipud Y Laadida E E T. Evartson

  34. C:=0 D:=0 1 B(0)=0 0 C:=C+A C:=R1(C) B:=R1(B) D:=D+1 D=4 0 1 T. Evartson

  35. PC M Käsukoodi laadimine (Instruction fetch) PC + 1 M IR Käsukoodi dekodeerimine . . . ADD A,B,C MUL A,B,C TMP1:=A Laadida TMP1 ALU : const =0 Laadida E TMP2:=B Laadida TMP2 C:=E ALU : liitmine Laadida E ALU : const =0 Laadida E C := E D := E . . . T. Evartson

  36. RISC  ja CISC protsessorite erinevus CISC - Complex Instruction Set Computer ISA (Instruction Set Architecture Level) Mikroprogramm Microprogram control Hardware RISC  - Reduced Instruction Set Computer ISA (Instruction Set Architecture Level) Hardware T. Evartson

  37. T. Evartson

  38. RISC protsessori projekteerimise põhimõtted T. Evartson

  39. T. Evartson

  40. Konveier I Pipeline IF Instruction Fetch (Käsu laadimine)+Instruction Decode OF Operand Fetch (Operandi laadimine) OE Operand Execute ( Operatsioni täitmine ALU-s) OS Operand Store ( Resutaadi salvestamine) Programmi täitmine ilma konveierita 1. käsk 2. käsk IF OF OE OS IF OF OE OS IF Konveieriga programmi täitmine (Pipeline) Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 Takt 8 Käsk IF OF OE OS 1 IF OF OE OS 2 IF OF OE OS 3 IF OF OE OS 4 IF OF OE OS 5 T. Evartson

  41. Käsk 1 Käsk 2 Käsk 3 IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C IFU IR IFU IR IFU IR Reg. Reg. Reg. A B A B A B ALU ALU ALU C C C T. Evartson

  42. Siirdekäsu mõju konveieri tööle IF OF OE OS i-1 IF OF OE OS i BRA to n IF OF OE OS i+1 IF OF OE OS i+2 BUBBLE n IF OF OE OS ń+1 IF OF OE OS T. Evartson

  43. Viivitusega siire programmis( Delayed Branch) IF OF OE OS i-1 IF OF OE OS Uue aadressi arvutamine toimub käsu täitmise ajal i BRA to n IF OF OE OS Käsk täidetakse väljaspool järekorda i+1 IF OF OE OS i+2 n IF OF OE OS ń+1 IF OF OE OS T. Evartson

  44. Andmete sõltuvus ja konveier IF ADD A,B,C OF Get A,B OE A + B OS C:=A+B IF SUB C,B,D OF Get C,B OE C - B OS D:=C-B BUBBLE Andmete edastus otse IF ADD A,B,C OF Get A,B OE A + B OS C:=A+B C IF SUB C,B,D OF Get C,B OE C - B OS D:=C-B T. Evartson

  45. Laadimise käsu mõju konveierile Takt 1 Takt 2 Takt 3 Takt 4 Takt 5 Takt 6 Takt 7 Takt 8 Käsk IF OF OE OS 1 2 IF OF OE OS 3 IF OF OE OS Tühjad taktid 4 IF OF OE OS T. Evartson

  46. Hargnemiste ennustamineI ( Branch Prediction) a ÕIGE Siiret eeldati ja tuli Predict taken branch taken Siire toimub Branch taken Ei ole siirdekäsk not Branch Inst p c VALE Siiret ei eeldatud siire tuli Predict not taken branch taken 1-p b 1-p c p t c p b ÕIGE Siiret ei eeldatud ja ei tulnud Predict not taken branch not taken d p c 1-p t Siirdekäsk Branch Inst. VALE Siiret eeldati aga siiret ei tulnud Predict taken branch not taken 1-p c b C ave = a(pt pc)+b(1-pt)(1-pc)+ +c pt(1-pc)+d(1-pt)pc T. Evartson

  47. Hargnemiste ennustamine II Strateegiad : • Fikseeritud hargnemiste ennustamine Fixed Branch Prediction • Staatiline hargnemiste ennustamine Static Branch Prediction • Dünaamiline hargnemiste ennustamine Dynamic Branch Prediction Hargnemist ei tulnud 00 Ennustus: hargnemist ei tule Hargnemine 01 Ennustus: hargnemist ei tule Hargnemist ei tulnud Hargnemist ei tulnud Hargnemine 10 Ennustus: hargnemine 11 Ennustus: hargnemine Hargnemine Hargnemist ei tulnud Hargnemine Hargnemine Ennustus b1 b2 T. Evartson

  48. a) Säilitatakse kaks ennustuse bitti igale hargnemise käsule. Töötab kui aadress kuhu juhtimine läheb on käsukoodi juures. b) Kui hargnemise koha aadress selgub alles käsu täitmise ajal eeldatakse, et hargnemine toimub sina kuhu eelmisel korral. Ilma selle aadressita ei saaks käivitada konveierit sellest harust. T. Evartson

  49. Ennustuse bitid Ennustuse bitid Siirdekäsu aadress Siirdekäsu aadress Siirde aadress Kehtivuse bit Kehtivuse bit b1 b2 b1 b2 . . . . . . . . . T. Evartson

  50. SISD - Single Instruction Single Data-stream Käsu taseme paralleelsusInstruction-Level Parallelism KonveierPipeline S1 Käsu laadimine S2 Käsu deko- deerimine S3 Operandide laadimine S4 Käsu täitmine S5 Resultadi salvesta- mine S1 1 2 3 4 5 S2 1 2 3 4 5 S3 1 2 3 4 S4 1 2 3 S5 1 2 Aeg T. Evartson

More Related