Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı.

Benzer bir sunumlar


... konulu sunumlar: "CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı."— Sunum transkripti:

1 CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı

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

3 Lec 3.3 İşlemci performansı  İşlemcinin performansı şu kriterlere göre belirlenir: İşlencek komut sayısı Saat frekansı Bir komut için gerekli saat darbesi miktarı  İşlemci (veri yolu ve kontrol) tasarımı ile; Saat frekansı Bir komut için gerekli saat darbesi miktarı Belirlenir. CPI Komut SayısıSaat zamanı

4 Lec 3.4 Single-cycle veri yolu  Bütün komutlar bir saat periyodunda işlenir (yükselen kenardan yükselen kenara)  Avantajı: İşlemcileri öğrenmek için iyi bir yol.  Dezavantajı: Donanımın boşa kullanılması, düşük saat periyodu.

5 Lec 3.5 Single cycle veriyolu: Varsayımar İşlemciler senkron yapılar kullanırlar (saat sinyaline bağlı) fT 1 MHz 1 μ s 10 MHz100 ns 100 MHz10 ns 1 GHz1 ns Bütün durum elemanları yükselen kenar tetiklemeli flip flop gibi varsayılır. Saat sinyali tüm flip floplara aynı anda ulaşır. DQ clk

6 Lec 3.6 Kare tetiklemeli D flip floplar DQ  Yükselen saat kenarında D deki değer örneklenir.  Q saat sinyalinin geri kalanında örneklenmiş değeri bulundurur. CLK D Q

7 Lec 3.7 Adım adım işlemci tasarımı 1. Komut seti analiz edillir => veri yolu gereksinimleri Her komut register transferi şeklinde açılır Veri yolu ISA register lar için depolama elemanı içermelidir Veri yolu gerekli tüm register transfer işlemlerini desteklemelidir 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

8 Lec 3.8 MIPS komut formatları  3 adet komut formatı bulunmaktadır : R-type I-type J-type  Formatlardaki alanlar: op: komutun hangi operasyonu yapacağını bellirtir rs, rt, rd: hedef ve kaynak register ları belirtir shamt: kaydırma miktarını belirtir funct: “op” alanındaki operasyonların alt operasyonlarını gösterir address / immediate: adres değeri yada sabit değer bulundurur target address: jump komutlarının hedef adresini belirtir optarget address bits26 bits oprsrtrdshamtfunct bits 5 bits oprsrt immediate bits16 bits5 bits

9 Lec 3.9 Birkaç MIPS komutunun incelenmesi  ADD/SUB addU rd, rs, rt subU rd, rs, rt  OR Immediate: ori rt, rs, imm16  LOAD/STORE Word lw rt, rs, imm16 sw rt, rs, imm16  BRANCH beq rs, rt, imm16 oprsrtrdshamtfunct bits 5 bits oprsrtimmediate bits16 bits5 bits oprsrtimmediate bits16 bits5 bits oprsrtimmediate bits16 bits5 bits

10 Lec 3.10 MIPS komutlarının işlenmesi - Sıradaki komut memory den okunur. - Sıradaki komut için hazırlanılır opcodersrtrdfunctshamt - Komutun içindeki alanlar çözülerek anlamlandırılır - Register içerisindeki değerler alınır (rs, rt) - Operasyon gerçekleştirilir (add, sub, or, lw, sw, beq) - Sonuç register a(rt/rd) yada hafızaya yazılır, gerkiyorsa PC modifiye edilir Instruction Fetch Instruction Decode Operand Fetch Execute Result Store

11 Lec 3.11 Register transferleri  RTL bize komutun anlamını gösterir  Hepsi aşağıdaki gibi komutun fetch(hafızadan okunması) edilmesiyle başlıyor. op | rs | rt | rd | shamt | funct = MEM[ PC ] op | rs | rt | Imm16 = MEM[ PC ] inst Register Transfers ADDUR[rd] <– R[rs] + R[rt];PC <– PC + 4 SUBUR[rd] <– R[rs] – R[rt];PC <– PC + 4 ORiR[rt] <– R[rs] | zero_ext(Imm16); PC <– PC + 4 LOADR[rt] <– MEM[ R[rs] + sign_ext(Imm16)];PC <– PC + 4 STOREMEM[ R[rs] + sign_ext(Imm16) ] <– R[rt];PC <– PC + 4 BEQif ( R[rs] == R[rt] ) then PC <– PC [sign_ext(Imm16) || 00] else PC <– PC + 4

12 Lec 3.12 Step 1: Komut setinin gereklilikleri  Hafıza komutlar & veriler  Registers (32 x 32) RS i oku RT yi oku RT yada RD ye yaz  PC  Extender  ALU işlemleri  PC + 4 yada PC + “extended immediate” hesaplanması

13 Lec 3.13 Step 2: Veri yolu elemanları  Combinational Elements  Storage Elements Clocking methodology

14 Lec 3.14 Combinational Logic Elements (Basic Building Blocks)  Adder  MUX  ALU 32 A B Sum Carry 32 A B Result OP 32 A B Y Select Adder MUX ALU CarryIn

15 Lec 3.15 Depolama Elemanı: Register (Basic Building Block)  Register Bir D Flip Flop dan farklı yanları; -N-bit giriş ve çıkış -Write Enable girişi Write Enable: -Negated (0): Data Out değişmez -Asserted (1): Data Out Data In i gösterir Clk Data In Write Enable NN Data Out

16 Lec 3.16 Depolama Elemanı : Register File  Register File 32 register içerir: İki tane 32 bitlik çıkış: busA ve busB Bir tane 32 bitlik giriş: busW  Register seçimi: RA (numara) busA ya konulacak register ı seçer (veri) RB (numara) busB ya konulacak register ı seçer (veri) RW (numara) Write enable 1 olduğunda busW (veri) nin içeriğinin yazılacağı register ı seçer  Clock input (CLK) CLK sadece yazma işleminde bir faktördür. Yapılar okuma işleminde combinational logic gibi davranır. -RA yada RB geçerliyse => busA yada busB ulaşım zamanından sonra geçerlidir. Clk busW Write Enable 32 busA 32 busB 555 RWRARB bit Registers

17 Lec 3.17 Depolama Elemanı: Idealized Memory  Memory (ideal yapısı) Bir giriş bus ı: Data In Bir çıkış bus ı: Data Out  Memory alanı seçimi: Address, Data Out a konulacak olan verinin yerini seçer Write Enable = 1: address, Data In bus dan gelen verinin nereye yazılacağını seçer  Clock input (CLK) CLK sadece yazma işleminde bir faktördür. Yapılar okuma işleminde combinational logic gibi davranır: -Address geçerli => Data Out “access time.” dan sonra geçerlidir. Clk Data In Write Enable 32 DataOut Address

18 Lec 3.18 Clocking Methodology  Bütün depolama elemanları aynı saat köşe darbesinde tetiklenir  Flip-flop lar (FF) ve combinational logic ler fiziksel yapılar olduklarından bazı gecikmelere maruz kalırlar: Kapılar: input un değişiminden output un değişimine kadarki gecikme Sinyallerin FF ler arasındaki transferi için, FF lardaki sinyaller ilgili köşe tetiklemesi gelmeden istikrarlı hale gelmeli.  “Critical path” (tasarımdaki en uzun yol) saat periyodunun belirlenmesini sağlar Clk Don’t Care SetupHoldSetupHold

19 Lec 3.19 Step 3: Veri yolu gereksinimlerinin karşılanması  Register Transfer Gereksinimleri  Veri yolunun gerçeklenmesi  Komutun alınması  Operantların okunması ve işlenmesi  Sonucun ilgli alana yazılması

20 Lec a: Instruction Fetch Unitesine bakış  Yaygın RTL operasyonları Fetch the Instruction: mem[PC] -PC == Program Counter, sonraki komutu gösterir “Program counter” ın yenilenmesi: -Sıralı Code: PC <- PC + 4 -Branch ve Jump: PC <- “sabit bir değer” 32 Instruction Word Address Instruction Memory PC Clk Next Address Logic

21 Lec 3.21 Instruction Fetch 32 Addr Data 32 Instr Mem Niçin +4, +1 değil? CLK Address Data IMem[PC + 8] IMem[PC + 4] IMem[PC] PC + 8 PC + 4 PC op target address bits26 bits oprsrtrdshamtfunct bits 5 bits oprsrt immediate bits16 bits5 bits

22 Lec b: Add & Subtract  R[rd] <- R[rs] op R[rt] Örnek: addU rd, rs, rt Ra, Rb, and Rw komutların rs, rt ve rd alanlarından geliyor ALUctr ve RegWr: control logic tarafından komut çözüldükten sonra üretiliyorlar 32 Result ALUctr Clk busW RegWr 32 busA 32 busB 555 RwRaRb bit Registers RsRtRd ALU oprsrtrdshamtfunct bits 5 bits

23 Lec 3.23 Yükselen kenardan sonra verinin ilerleyişi 32 RegFile 32 WE 32 5 Ra 5 Rb 5 Rw 32 ALUALU op Control Logic AddrData Instr Mem D PC Q Adder 4

24 Lec 3.24 Register-Register Timing: One complete cycle 32 Result ALUctr Clk busW RegWr 32 busA 32 busB 555 RwRaRb bit Registers RsRtRd ALU 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, B Register File Access Time Old ValueNew Value busW ALU Delay Old ValueNew Value Old ValueNew Value Old Value Register Write Occurs Here

25 Lec c: Immediate operasyonu  R[rt] <- R[rs] op ZeroExt[imm16] oprsrtimmediate bits16 bits5 bits 32 Result ALUctr Clk busW RegWr 32 busA 32 busB 555 RwRaRb bit Registers Rs ZeroExt Mux RtRd RegDst Mux imm16 ALUSrc ALU Rt?

26 Lec d: Load Operasyonu  R[rt] <- Mem[R[rs] + SignExt[imm16]] E.g.: lw rt, rs, imm16 oprsrtimmediate bits16 bits5 bits 32 ALUctr Clk busW RegWr 32 busA 32 busB 555 RwRaRb bit Registers Rs RtRd RegDst Extender Mux imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory 32 ALU MemWr Mu x W_Src ?? Rt?

27 Lec e: Store Operasyonu  Mem[ R[rs] + SignExt[imm16] ] <- R[rt] E.g.: sw rt, rs, imm16 oprsrtimmediate bits16 bits5 bits 32 ALUctr Clk busW RegWr 32 busA 32 busB 555 RwRaRb bit Registers Rs Rt Rd RegDst Extender Mux imm16 ALUSrc ExtOp Clk Data In WrEn 32 Adr Data Memory MemWr ALU 32 Mu x W_Src

28 Lec f: Branch komutu  beqrs, rt, imm16 mem[PC]memory den komutu oku Equal <- R[rs] == R[rt]branch durumunu hesapla if (Equal)sonraki komut adresini hesapla -PC <- PC ( SignExt(imm16) x 4 ) else -PC <- PC + 4 oprsrtimmediate bits16 bits5 bits

29 Lec 3.29 Branch operasyonu için veriyolu  beq rs, rt, imm16 Eşitlik sinyalini duruma göre veri yolu üretiyor oprsrtimmediate bits16 bits5 bits 32 imm16 PC Clk 00 Adder Mux Adder 4 nPC_sel Clk busW RegWr 32 busA 32 busB 555 RwRaRb bit Registers Rs Rt Equal? Cond PC Ext Inst Address

30 Lec 3.30 Tamamı : A Single Cycle Datapath imm16

31 Lec 3.31 A Single Cycle Datapath

32 Lec 3.32 Critical Path  Register file ve ideal memory: CLK sadece yazma işleminde bir faktördür. Yapılar okuma işleminde combinational logic gibi davranır: -Address geçerli => Data Out “access time.” dan sonra geçerlidir. Critical Path (Load Operasyonu) = 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

33 Lec 3.33 İmplementasyon 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

34 Lec 3.34 Summary  5 steps to design a processor 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

35 Lec 3.35 Summary  MIPS in sağladığı kolaylıklar Tüm komutlar aynı boyuttadır Kaynak registerları hep aynı yerde bulunur Sabit değerler hep aynı boyutta ve aynı yerde bulunur Operasyonlar her zaman register lar ve sabitler üzerinden yapılır  Single cycle datapath => CPI=1, CCT => uzun  Sonraki sunum : Control devresinin gerçeklenmesi


"CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı." indir ppt

Benzer bir sunumlar


Google Reklamları