cpu tasar m 2 single cycle cpu veriyolu tasar m
Download
Skip this Video
Download Presentation
CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı

Loading in 2 Seconds...

play fullscreen
1 / 35

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


  • 385 Views
  • Uploaded on

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ı

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CPU Tasarım – 2 Single – Cycle CPU Veriyolu Tasarımı' - rusk


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
slide2
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
  • ADDU R[rd] <– R[rs] + R[rt]; PC <– PC + 4
  • SUBU R[rd] <– R[rs] – R[rt]; PC <– PC + 4
  • ORi R[rt] <– R[rs] | zero_ext(Imm16); PC <– PC + 4
  • LOAD R[rt] <– MEM[ R[rs] + sign_ext(Imm16)]; PC <– PC + 4
  • STORE MEM[ 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
  • beq rs, 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

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
ad