Cpu tasar m 2 single cycle cpu veriyolu tasar m
This presentation is the property of its rightful owner.
Sponsored Links
1 / 35

CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı PowerPoint PPT Presentation


  • 276 Views
  • Uploaded on
  • Presentation posted in: General

CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı. Processor. Input. Control. Memory. Datapath. Output. Giriş. Bilgisayarı oluşturan beş klasik parça. CPI. Komut Sayısı. Saat zamanı. İşlemci performansı. İşlemcinin performansı şu kriterlere göre belirlenir : İşlencek komut sayısı

Download Presentation

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cpu tasar m 2 single cycle cpu veriyolu tasar m

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


Cpu tasar m 2 single cycle cpu veriyolu tasar m

Processor

Input

Control

Memory

Datapath

Output

Giriş

  • Bilgisayarı oluşturan beş klasik parça


Lemci performans

CPI

Komut Sayısı

Saat zamanı

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


Single cycle veri yolu

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.


Single cycle veriyolu varsay mar

D

Q

clk

Single cycle veriyolu: Varsayımar

İşlemciler senkron yapılar kullanırlar (saat sinyaline bağlı)

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


Kare tetiklemeli d flip floplar

CLK

D

Q

D

Q

Kare tetiklemeli D flip floplar

  • Yükselen saat kenarında D deki değer örneklenir.

  • Q saat sinyalinin geri kalanında örneklenmiş değeri bulundurur.


Ad m ad m i lemci tasar m

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


Mips komut formatlar

31

26

21

16

11

6

0

op

rs

rt

rd

shamt

funct

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

31

26

21

16

0

immediate

op

rs

rt

6 bits

5 bits

5 bits

16 bits

31

26

0

op

target address

6 bits

26 bits

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


Birka mips komutunun incelenmesi

31

26

21

16

11

6

0

op

rs

rt

rd

shamt

funct

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

31

26

21

16

0

op

rs

rt

immediate

6 bits

5 bits

5 bits

16 bits

31

26

21

16

0

op

rs

rt

immediate

6 bits

5 bits

5 bits

16 bits

31

26

21

16

0

op

rs

rt

immediate

6 bits

5 bits

5 bits

16 bits

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


Mips komutlar n n i lenmesi

opcode

rs

rt

rd

shamt

funct

Instruction

Fetch

Instruction

Decode

Operand

Fetch

Execute

Result

Store

MIPS komutlarının işlenmesi

- Sıradaki komut memory den okunur.

- Sıradaki komut için hazırlanılır

- 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 PCmodifiye edilir


Register transferleri

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 + 4 +[sign_ext(Imm16) || 00] else PC <– PC + 4


  • Step 1 komut setinin gereklilikleri

    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ı


    Step 2 veri yolu elemanlar

    Step 2: Veri yolu elemanları

    • Combinational Elements

    • Storage Elements

      • Clocking methodology


    Combinational logic elements basic building blocks

    Combinational Logic Elements (Basic Building Blocks)

    CarryIn

    A

    32

    • Adder

    • MUX

    • ALU

    Sum

    Adder

    32

    B

    Carry

    32

    Select

    A

    32

    Y

    MUX

    32

    B

    32

    OP

    A

    32

    Result

    ALU

    32

    B

    32


    Depolama eleman register basic building block

    Write Enable

    Data In

    Data Out

    N

    N

    Clk

    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


    Depolama eleman register file

    RW

    RA

    RB

    Write Enable

    5

    5

    5

    busA

    busW

    32

    32 32-bit

    Registers

    32

    busB

    Clk

    32

    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.


    Depolama eleman idealized memory

    Write Enable

    Address

    Data In

    DataOut

    32

    32

    Clk

    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.


    Clocking methodology

    Clk

    Setup

    Hold

    Setup

    Hold

    Don’t Care

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    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.


    Step 3 veri yolu gereksinimlerinin kar lanmas

    Step 3: Veri yolu gereksinimlerinin karşılanması

    • Register Transfer Gereksinimleri

      Veri yolunungerçeklenmesi

    • Komutun alınması

    • Operantların okunması veişlenmesi

    • Sonucun ilgli alana yazılması


    3a instruction fetch unit esine bak

    Clk

    PC

    Next Address

    Logic

    Address

    Instruction Word

    Instruction

    Memory

    32

    3a: 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”


    Instruction fetch

    Instr

    Mem

    32

    Data

    31

    26

    21

    16

    11

    6

    0

    op

    rs

    rt

    rd

    shamt

    funct

    Addr

    6 bits

    5 bits

    5 bits

    5 bits

    5 bits

    6 bits

    31

    26

    21

    16

    0

    32

    immediate

    op

    rs

    rt

    6 bits

    5 bits

    5 bits

    16 bits

    31

    26

    0

    op

    target address

    6 bits

    26 bits

    CLK

    Address

    PC

    PC + 8

    PC + 4

    Data

    IMem[PC]

    IMem[PC + 8]

    IMem[PC + 4]

    Instruction Fetch

    Niçin +4 , +1 değil?


    3b add subtract

    31

    26

    21

    16

    11

    6

    0

    op

    rs

    rt

    rd

    shamt

    funct

    6 bits

    5 bits

    5 bits

    5 bits

    5 bits

    6 bits

    Rd

    Rs

    Rt

    ALUctr

    RegWr

    5

    5

    5

    busA

    Rw

    Ra

    Rb

    busW

    32

    Result

    32 32-bit

    Registers

    ALU

    32

    32

    busB

    Clk

    32

    3b: 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


    Y kselen kenardan sonra verinin ilerleyi i

    op

    RegFile

    Instr

    Mem

    5

    Ra

    32

    32

    5

    Rb

    5

    Addr

    Data

    Rw

    32

    32

    ALU

    WE

    32

    32

    Yükselen kenardan sonra verinin ilerleyişi

    PC

    Adder

    D

    Q

    4

    Control

    Logic


    Register register timing one complete cycle

    Clk

    Clk-to-Q

    Old Value

    New Value

    PC

    Instruction Memory Access Time

    Rs, Rt, Rd,

    Op, Func

    Old Value

    New Value

    Delay through Control Logic

    ALUctr

    Old Value

    New Value

    RegWr

    Old Value

    New Value

    Register File Access Time

    busA, B

    Old Value

    New Value

    ALU Delay

    busW

    Old Value

    New Value

    Rd

    Rs

    Rt

    Register Write

    Occurs Here

    ALUctr

    RegWr

    5

    5

    5

    busA

    Rw

    Ra

    Rb

    busW

    32

    Result

    32 32-bit

    Registers

    ALU

    32

    32

    busB

    Clk

    32

    Register-Register Timing: One complete cycle


    3c immediate operasyonu

    31

    26

    21

    16

    0

    op

    rs

    rt

    immediate

    6 bits

    5 bits

    5 bits

    16 bits

    Rd

    Rt

    RegDst

    Mux

    Rt?

    Rs

    ALUctr

    RegWr

    5

    5

    5

    busA

    Rw

    Ra

    Rb

    busW

    32

    Result

    32 32-bit

    Registers

    ALU

    32

    32

    busB

    Clk

    32

    Mux

    ZeroExt

    imm16

    32

    16

    ALUSrc

    3c: Immediate operasyonu

    • R[rt] <- R[rs] op ZeroExt[imm16]


    3d load opera syonu

    31

    26

    21

    16

    0

    op

    rs

    rt

    immediate

    6 bits

    5 bits

    5 bits

    16 bits

    Rd

    Rt

    RegDst

    Mux

    Rt?

    Rs

    ALUctr

    RegWr

    5

    5

    5

    busA

    W_Src

    Rw

    Ra

    Rb

    busW

    32

    32 32-bit

    Registers

    ALU

    32

    32

    busB

    Clk

    MemWr

    32

    Mux

    Mux

    WrEn

    Adr

    Data In

    32

    ??

    Data

    Memory

    32

    Extender

    imm16

    32

    16

    Clk

    ALUSrc

    ExtOp

    3d: Load Operasyonu

    • R[rt] <- Mem[R[rs] + SignExt[imm16]] E.g.: lw rt, rs, imm16


    3e store opera syonu

    31

    26

    21

    16

    0

    op

    rs

    rt

    immediate

    6 bits

    5 bits

    5 bits

    16 bits

    Rd

    Rt

    ALUctr

    MemWr

    W_Src

    RegDst

    Mux

    Rs

    Rt

    RegWr

    5

    5

    5

    busA

    Rw

    Ra

    Rb

    busW

    32

    32 32-bit

    Registers

    ALU

    32

    32

    busB

    Clk

    32

    Mux

    Mux

    WrEn

    Adr

    Data In

    32

    32

    Data

    Memory

    Extender

    imm16

    32

    16

    Clk

    ALUSrc

    ExtOp

    3e: Store Operasyonu

    • Mem[ R[rs] + SignExt[imm16] ] <- R[rt] E.g.: sw rt, rs, imm16


    3f branch komutu

    31

    26

    21

    16

    0

    op

    rs

    rt

    immediate

    6 bits

    5 bits

    5 bits

    16 bits

    3f: 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 + 4 + ( SignExt(imm16) x 4 )

      • else

        • PC <- PC + 4


    Branch operasyonu i in veriyolu

    31

    26

    21

    16

    0

    op

    rs

    rt

    immediate

    6 bits

    5 bits

    5 bits

    16 bits

    Inst Address

    Cond

    nPC_sel

    Rs

    Rt

    4

    RegWr

    5

    5

    5

    busA

    32

    Adder

    Rw

    Ra

    Rb

    00

    busW

    32

    32 32-bit

    Registers

    Equal?

    Mux

    PC

    busB

    Clk

    32

    Adder

    imm16

    PC Ext

    Clk

    Branch operasyonu için veriyolu

    • beq rs, rt, imm16Eşitlik sinyalini duruma göre veri yolu üretiyor


    Tamam a single cycle datapath

    Inst

    Memory

    Instruction<31:0>

    <11:15>

    <0:15>

    <21:25>

    <16:20>

    Adr

    Rs

    Rt

    Rd

    Imm16

    RegDst

    nPC_sel

    ALUctr

    MemWr

    MemtoReg

    Equal

    Rt

    Rd

    0

    1

    Rs

    Rt

    4

    RegWr

    5

    5

    5

    Adder

    busA

    Rw

    Ra

    Rb

    =

    busW

    00

    32

    32 32-bit

    Registers

    Mux

    ALU

    0

    32

    busB

    32

    0

    PC

    32

    Mux

    Mux

    Adder

    Clk

    32

    WrEn

    Adr

    1

    1

    Data In

    Data

    Memory

    Extender

    imm16

    PC Ext

    32

    Clk

    16

    Clk

    ExtOp

    ALUSrc

    Tamamı : A Single Cycle Datapath

    imm16


    A single cycle datapath

    A Single Cycle Datapath


    Critical path

    Ideal

    Instruction

    Memory

    Instruction

    Rd

    Rs

    Rt

    Imm

    5

    5

    5

    16

    Instruction

    Address

    A

    Data

    Address

    32

    Rw

    Ra

    Rb

    32

    Ideal

    Data

    Memory

    32

    32 32-bit

    Registers

    ALU

    PC

    Next Address

    Data In

    B

    Clk

    Clk

    32

    Clk

    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


    Mplementasyon

    Control

    Ideal

    Instruction

    Memory

    Control Signals

    Conditions

    Instruction

    Rd

    Rs

    Rt

    5

    5

    5

    Instruction

    Address

    A

    Data

    Address

    Data

    Out

    32

    Rw

    Ra

    Rb

    32

    Ideal

    Data

    Memory

    32

    32 32-bit

    Registers

    ALU

    PC

    Next Address

    Data In

    B

    Clk

    Clk

    32

    Clk

    Datapath

    İmplementasyon


    Summary

    Summary

    • 5 steps to design a processor

    • 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


    Summary1

    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


  • Login