Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı.

Benzer bir sunumlar


... konulu sunumlar: "CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı."— Sunum transkripti:

1 CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı

2 Lec 3.2 Giriş Control Datapath Memory Processor Input Output Bilgisayarı oluşturan beş klasik parça

3 Lec 3.3 Genel Bakış Data Out Clk 5 RwRaRb bit Registers Rd ALU Clk Data In Data Address Ideal Data Memory Instruction Address Ideal Instruction Memory Clk PC 5 Rs 5 Rt 32 A B Next Address Control Datapath Control Signals Conditions

4 Lec 3.4 Single Cycle Veri Yolu  Altı çizili kontrol sinyalleri dışarısında her şeye sahibiz

5 Lec 3.5 Kontrol Sinyallerinin Anlamları  nPC_MUX_sel: 0  PC <– PC  PC <– PC SignExt(Im16) || 00 Adr Inst Memory Adder PC Clk 00 Mux 4 nPC_MUX_sel PC Ext imm16

6 Lec 3.6 Kontrol Sinyallerinin Anlamları  ExtOp: “zero”, “sign”  ALUsrc: 0  regB; 1  immed  ALUctr: “add”, “sub”, “or”  MemWr:1  write memory  MemtoReg:0  ALU; 1  Mem  RegDst:0  “rt”; 1  “rd”  RegWr:1  write register

7 Lec 3.7 RTL: ADD komutu  addrd, rs, rt mem[PC]memory den komutu al R[rd] <- R[rs] + R[rt]Asıl operasyonu yap PC <- PC + 4Sonraki komutun adresini hesapla oprsrtrdshamtfunct bits 5 bits

8 Lec 3.8 “Add” in başında komutun fetch edilmesi  Komut hafızasından komutu oku: Instruction <- mem[PC]  Bu kısım bütün komutlar için aynı Adr Inst Memory Adder PC Clk 00 Mux 4 nPC_MUX_sel imm16 Instruction 0 1

9 Lec 3.9 ADD komutu işlenirken veri yolu  R[rd] <- R[rs] + R[rt]

10 Lec 3.10 “Add” in sonunda instruction fetch ünitsi  PC <- PC + 4 Bu kısım da branch ve jump komutları dışında tüm komutlarda aynı Adr Inst Memory Adder PC Clk 00 Mux 4 nPC_MUX_sel imm16 Instruction 0 1

11 Lec 3.11 Or Immediate komutu sırasında veri yolunun durumu  R[rt] <- R[rs] or ZeroExt[Imm16] RegDst =

12 Lec 3.12 Or Immediate komutu sırasında veri yolunun durumu

13 Lec 3.13 “Load” sırasında veri yolunun durumu  R[rt] <- Data Memory [ R[rs] + SignExt[imm16] ]

14 Lec 3.14 “Store” sırasında veri yolunun durumu  Data Memory [ R[rs] + SignExt[imm16] ] <- R[rt]

15 Lec 3.15 “Store” sırasında veri yolunun durumu

16 Lec 3.16 “Branch” sırasında veri yolunun durumu  if (R[rs] - R[rt] == 0) then Zero <- 1 ; else Zero <- 0

17 Lec 3.17 “Branch” in sonunda instruction fetch ünitesi  What is encoding of nPC_sel? Direct MUX select? Branch / not branch Instruction nPC_sel Adr Inst Memory Adder PC Clk 00 Mux 4 imm Zero nPC_MUX_sel

18 Lec 3.18 Step 4: Verilen veri yolu: RTL -> Control ALUctr RegDstALUSrcExtOpMemtoRegMemWr Zero Instruction Imm16RdRsRt nPC_sel Adr Inst Memory DATA PATH Control Op Fun RegWr

19 Lec 3.19 Kontrol sinyallerinin özeti inst Register Transfer ADDR[rd] <– R[rs] + R[rt];PC <– PC + 4 ALUsrc = RegB, ALUctr = “add”, RegDst = rd, RegWr, nPC_sel = “+4” SUBR[rd] <– R[rs] – R[rt];PC <– PC + 4 ALUsrc = RegB, ALUctr = “sub”, RegDst = rd, RegWr, nPC_sel = “+4” ORiR[rt] <– R[rs] + zero_ext(Imm16); PC <– PC + 4 ALUsrc = Im, Extop = “Z”, ALUctr = “or”, RegDst = rt, RegWr, nPC_sel = “+4” LOADR[rt] <– MEM[ R[rs] + sign_ext(Imm16)];PC <– PC + 4 ALUsrc = Im, Extop = “Sn”, ALUctr = “add”, MemtoReg, RegDst = rt, RegWr, nPC_sel = “+4” STOREMEM[ R[rs] + sign_ext(Imm16)] <– R[rt];PC <– PC + 4 ALUsrc = Im, Extop = “Sn”, ALUctr = “add”, MemWr, nPC_sel = “+4” BEQif ( R[rs] == R[rt] ) then PC <– [PC + sign_ext(Imm16)] || 00 else PC <– PC + 4 nPC_sel = “Br”, ALUctr = “sub”

20 Lec 3.20 Kontrol sinyallerinin özeti

21 Lec 3.21 Komutun yerel çözümlenmesi Main Control op 6 ALU Control (Local) func N 6 ALUop ALUctr 3 ALU R-typeorilwswbeq RegDst ALUSrc MemtoReg RegWrite MemWrite Branch ExtOp ALUop x “R-type” Or Add x 1 x x 0 x x Sub op

22 Lec 3.22 “ALUop” un encode edilmesi  Bu örnekte ALUop alanı 2 bit genişlikte olmalı çünkü: (1) “R-type” komutların işlenmesi “I-type” komutlar ALU ya; (2) Or, (3) Add, ve (4) Subtract komutlarını gerçeklemsi için gereksinim duyar  MIPS ISA’nın tamamını implement etmek için, ALUop 3 bit genişlikte olmalı: (1) “R-type” komutların işlenmesi “I-type” komutlar ALU ya ; (2) Or, (3) Add, (4) Subtract, (5) And, ve (6) Xor komutlarını gerçeklemsi için gereksinim duyar Main Control op 6 ALU Control (Local) func N 6 ALUop ALUctr 3 R-typeorilwswbeq ALUop (Symbolic)“R-type”OrAdd Sub ALUop

23 Lec 3.23 “func” alanının çözülmesi Main Control op 6 ALU Control (Local) func N 6 ALUop ALUctr 3 oprsrtrdshamtfunct R-type funct Instruction Operation add subtract and or set-on-less-than ALUctr ALU Operation And Or Add Subtract Set-on-less-than ALUctr ALU R-typeorilwswbeq ALUop (Symbolic)“R-type”OrAdd Sub ALUop

24 Lec 3.24 “ALUctr” için doğruuk tablosunun oluşturulması R-typeorilwswbeq ALUop (Symbolic) “R-type”OrAdd Sub ALUop funct Instruction Op add subtract and or set-on-less-than

25 Lec 3.25 “ALUctr ” nin logic denklemi ALUctr = !ALUop & ALUop + ALUop & !func & func & !func ALUopfunc bit ALUctr 0x1xxxx1 1xx xx10101 This makes func a don’t care

26 Lec 3.26 “ALUctr ” nin logic denklemi ALUopfunc bit 000xxxx1 ALUctr 0x1xxxx1 1xx xx xx10101 ALUctr = !ALUop & !ALUop + !ALUop & ALUop + ALUop & !func & !func

27 Lec 3.27 “ALUctr ” nin logic denklemi ALUopfunc bit ALUctr 01xxxxx1 1xx xx10101 ALUctr = !ALUop & ALUop + ALUop & !func & func & !func & func + ALUop & func & !func & func & !func

28 Lec 3.28 ALU Kontrol Bloğu ALU Control (Local) func 3 6 ALUop ALUctr 3 ALUctr = !ALUop & ALUop + ALUop & !func & func & !func ALUctr = !ALUop & !ALUop + !ALUop & ALUop ALUop & !func & !func ALUctr = !ALUop & ALUop + ALUop & !func & func & !func & func + ALUop & func & !func & func & !func

29 Lec 3.29 Step 5: Her kontrol sinyalinin logic karşılığı  nPC_sel <= if (OP == BEQ) then “Br” else “+4”  ALUsrc <=if (OP == “Rtype”) then “regB” else “immed”  ALUctr<= if (OP == “Rtype”) then funct elseif (OP == ORi) then “OR” elseif (OP == BEQ) then “sub” else “add”  ExtOp <= _____________  MemWr<= _____________  MemtoReg<= _____________  RegWr:<=_____________  RegDst:<= _____________

30 Lec 3.30 Step 5: Her kontrol sinyalinin logic karşılığı  nPC_sel <= if (OP == BEQ) then “Br” else “+4”  ALUsrc <=if (OP == “Rtype”) then “regB” else “immed”  ALUctr<= if (OP == “Rtype”) then funct elseif (OP == ORi) then “OR” elseif (OP == BEQ) then “sub” else “add”  ExtOp <= if (OP == ORi) then “zero” else “sign”  MemWr<= (OP == Store)  MemtoReg<= (OP == Load)  RegWr:<= if ((OP == Store) || (OP == BEQ)) then 0 else 1  RegDst:<= if ((OP == Load) || (OP == ORi)) then 0 else 1 Burada sadece ori komutu olduğundan. Aslında diğer I type komutlarda da 0 olmalı!!!

31 Lec 3.31 Ana kontrol için doğruluk tablosu Main Control op 6 ALU Control (Local) func 3 6 ALUop ALUctr 3 RegDst ALUSrc :

32 Lec 3.32 “RegWrite” için doğruuk tablosu RegWrite = R-type + ori + lw = !op & !op & !op & !op & !op & !op (R-type) + !op & !op & op & op & !op & op (ori) + op & !op & !op & !op & op & op (lw) R-typeorilwswbeq RegWrite11100 op

33 Lec 3.33 Ana kontrol ‘ün gerçeklenmesi.....

34 Lec 3.34 Hepsinin bir arya getirilmesi:A Single Cycle İşlemci

35 Lec 3.35 Critical Path (Load) Critical Path (Load Operation) = PC’s Clk-to-Q + Instruction Memory’s Access Time + Register File’s Access Time + ALU to Perform a 32-bit Add + Data Memory Access Time + Setup Time for Register File Write + Clock Skew Clk 5 RwRaRb bit Registers Rd ALU Clk Data In Data Address Ideal Data Memory Instruction Address Ideal Instruction Memory Clk PC 5 Rs 5 Rt 16 Imm 32 A B Next Address

36 Lec 3.36 Worst Case Timing (Load) Clk PC Rs, Rt, Rd, Op, Func Clk-to-Q ALUctr Instruction Memory Access Time Old ValueNew Value RegWrOld ValueNew Value Delay through Control Logic busA Register File Access Time Old ValueNew Value busB ALU Delay Old ValueNew Value Old ValueNew Value Old Value ExtOpOld ValueNew Value ALUSrcOld ValueNew Value MemtoRegOld ValueNew Value AddressOld ValueNew Value busWOld ValueNew Delay through Extender & Mux Register Write Occurs Data Memory Access Time

37 Lec 3.37 Single Cycle işlemcinin dezavantajları  Düşük saat frekansı: Saat periyodu “load” komutunun işlenmesini sağlayacak kadar uzun olmalıdır: PC’s Clock -to-Q + Instruction Memory Access Time + Register File Access Time + ALU Delay (address calculation) + Data Memory Access Time + Register File Setup Time + Clock Skew  “Load” komutu için belirlenen saat periyodu diğer komutlar için çok uzun kalmaktadır.  Donanım verimli kullanılmamaktadır (pipeline’a göre)

38 Lec 3.38  Single cycle datapath => CPI=1, CCT => long 1.Komut seti analiz edillir => veri yolu gereksinimleri 2.Veri yolu elemanları seçilir ve saat metodu belirlenir 3.Gereklilikleri yerine getirecek şekilde veri yolu elemanları bir araya getirilir 4.Her komutun gerçeklenmesi ve çalışması analiz edilerek register transferlerine etki eden kontrol sinyalleri çıkartılır 5.Çıkarılan sinyallere göre kontrol devresi kurulur  MIPS kontrolü kolaylaştırır Aynı boyutlardaki komutlar Kaynak register lar hep aynı yerdedir Sabitler aynı yerde ve aynı boyuttadır Operasyonlar herzaman registerlar yada sabit değerler üzerinden gerçekleşir Özet Control Datapath Memory Processor Input Output


"CPU Tasarım – 3 Single – Cycle CPU Controller Tasarımı." indir ppt

Benzer bir sunumlar


Google Reklamları