30
IEI-32 FİZİKSEL İŞLEMCİ Agah Burak DEMİRKAN Ahmet ÇOBAN Ahmet SÖNMEZ Uğurhan KUTBAY Gazi Üniversitesi Elektrik ve Elektronik Mühendisliği Ağustos 2008

IEI-32 FİZİKSEL İŞLEMCİ

  • Upload
    kylee

  • View
    51

  • Download
    4

Embed Size (px)

DESCRIPTION

Ağustos 2008. IEI-32 FİZİKSEL İŞLEMCİ. Gazi Üniversitesi Elektrik ve Elektronik Mühendisliği. Agah Burak DEMİRKAN Ahmet ÇOBAN Ahmet SÖNMEZ Uğurhan KUTBAY. ÖZET. - PowerPoint PPT Presentation

Citation preview

Page 1: IEI-32 FİZİKSEL İŞLEMCİ

IEI-32 FİZİKSEL İŞLEMCİ

Agah Burak DEMİRKANAhmet ÇOBAN

Ahmet SÖNMEZUğurhan KUTBAY

Gazi ÜniversitesiElektrik ve Elektronik Mühendisliği

Ağustos 2008

Page 2: IEI-32 FİZİKSEL İŞLEMCİ

Bu sunumda “Türkiye İşlemcisini Tasarlıyor” yarışmasının FPGA İle Fiziksel İşlemci Tasarımı kategorisi için tasarlanmış olan IEI-32 fiziksel işlemcisinin özelliklerini, çalışma prensibini anlatacağı gibi yaşanılan sorunlar ve bu sorunların çözümleriyle beraber bu aşamaya gelene

kadar yapılan değişikliklerden de bahsedilecektir. İşlemcinin, açık kodlar üzerinde anlatımı Ise WebPack programı aracılığıyla da sunulacaktır.

ÖZET

Page 3: IEI-32 FİZİKSEL İŞLEMCİ

İÇİNDEKİLER

Komut Yapısı

Komut Listesi

IEI-32 Fiziksel İşlemci Çalışma Prensibi

İşlemci Özellikleri

İlk Günden Bugüne Nasıl Gelindi?

IEI-32 İşlemcisinin Açık Kodları İle Anlatımı

Page 4: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 5: IEI-32 FİZİKSEL İŞLEMCİ

İlk Günden Bugüne

Single Cycle IEI-32 Optimizasyon Pipeline Yapısında IEI-32 Sanal İşlemcisi

ALU TasarımıToplama-ÇıkarmaMantıksal İşlemler

KaydırmaKıyaslama

Fiziksel İşlemci İçin Optimizasyon Pipeline Yapısında IEI-32 Fiziksel İşlemcisi

Page 6: IEI-32 FİZİKSEL İŞLEMCİ

always @(fn or alu_a or alu_b) begin: ripple integer i; reg cin,p,g; reg [31:0] xb; xb = fn ? ~alu_b : alu_b; //a - b == a + ~b + 1 cin = fn; for (i = 0; i < 32; i = i + 1) begin

p = alu_a[i] ^ xb[i]; g = alu_a[i] & xb[i]; sonuc[i] = p ^ cin; cin = g | (p & cin); // diğer kata taşma

end n = sonuc[31]; // negatif z = ~|sonuc; // sıfır v = (alu_a[31] & xb[31] & !n) | (~alu_a[31] & ~xb[31] & n); end

Toplama ve ÇıkarmaALU

Page 7: IEI-32 FİZİKSEL İŞLEMCİ

//AND: fn = 4'b1000//OR: fn = 4'b1110//XOR: fn = 4'b0110//NOR: fn = 4’b0001

always @(fn or alu_a or alu_b) begin: bits integer i; for (i = 0; i < 32; i = i + 1) beginsonuc[i] = alu_b[i] ? (alu_a[i] ? fn[3] : fn[2]) : (alu_a[i] ? fn[1] : fn[0]);endend

Mantıksal İşlemler

Page 8: IEI-32 FİZİKSEL İŞLEMCİ

// fn == 2'b01: eşitse (Z)// fn == 2'b10: küçük (N ^ V)// fn == 2'b11: küçükeşit (Z | (N ^ V))//Mantıksal ifade doğruysa çıkış aritmetik 1, yanlışsa çıkış aritmetik 0

assign sonuc = {31'b0,(fn[0] & z) | (fn[1] & (n ^ v))};

Kıyaslama - Compare

Page 9: IEI-32 FİZİKSEL İŞLEMCİ

assign sin = fn[1] & alu_a[31]; always @(fn[0] or alu_a) begin: loopA integer i; for (i = 0; i < 32; i = i + 1) u[i] = fn[0] ? alu_a[31 - i] : alu_a[i]; endassign v=alu_b[4]?{u[15:0],{16{sin}}} : u[31:0]; assign w=alu_b[3]?{v[23:0],{8{sin}}} : v[31:0]; assign x=alu_b[2]?{w[27:0],{4{sin}}} : w[31:0]; assign y=alu_b[1]?{x[29:0],{2{sin}}} : x[31:0]; assign z=alu_b[0]?{y[30:0],sin} : y[31:0]; always @(fn[0] or z) begin: loopB integer i; for (i = 0; i < 32; i = i + 1) sonuc[i] = fn[0] ? z[31 - i] : z[i]; end

Kaydırma - Shift

Page 10: IEI-32 FİZİKSEL İŞLEMCİ

Single Cycle IEI-32

Page 11: IEI-32 FİZİKSEL İŞLEMCİ

Shift ve Toplama-Çıkarma Bloklarının Değiştirilmesi

Instruction Yapısının Değiştirilmesi

Kıyaslama – Compare Bloğu Çıkarılmış Yerine Çarpma Bloğu Eklenmesi

Optimizasyonlar

Page 12: IEI-32 FİZİKSEL İŞLEMCİ

Pipeline Yapısında IEI-32 Sanal İşlemcisi

Page 13: IEI-32 FİZİKSEL İŞLEMCİ

4 adet 32 bitlik Port Eklenmesi

Tris Modülü Eklenmesi

Pipeline Yapısının 5 Stage den 7 Stage Pipeline Yapısına Dönüştürülmesi

Fiziksel İşlemci İçin Yapılan Optimizasyonlar

Timer Modülü Eklenmesi

Memory Eklenmesi

- Program Counter- Instruction Memory- Instruction Decoder

- Register File- ALU_Sec

- ALU- MultiPlexer

Page 14: IEI-32 FİZİKSEL İŞLEMCİ

Instruction Formatının Değiştirilmesi

Kontrol Biriminin Hazard ve Jump Kontrol Olmak Üzere İkiye Ayrılması

Hazard Kontrolünün Bloklar Arasında Kontrol Mekanizmasıyla Yapılması

Frekans Uyumlarının Sağlanması

Page 15: IEI-32 FİZİKSEL İŞLEMCİ

Pipeline Yapısında IEI-32 Fiziksel İşlemcisi

Page 16: IEI-32 FİZİKSEL İŞLEMCİ

IEI-32 Özellikleri

R (register) , I (immediate) , J (jump) type instruction formatları

Maksimum Frekans : 109.878 MHz (Spartan 3 E Starter Kit Speed:-4)

Jump Komutları ve Hazard Çözümleri İçin Kontrol Birimleri

7 Stage Pipeline ,32 Bit İşlemci- Program Counter

- Instruction Memory- Instruction Decoder

- Register File- ALU_Sec

- ALU- MultiPlexer

Page 17: IEI-32 FİZİKSEL İŞLEMCİ

38 Adet İşlem Komutu ve Dolaylı Yollarla Yapılabilir Kıyaslama İşlemleri

4 Adet 32 Bitlik Port

Timer

Harici Hafıza (Memory)

Seriport İletişimli IEI-32 1.0 Compiler Stüdyosu

İstenilen Hızda Çalışabilirlik

ALU- Toplama ve Çıkarma

- Çarpma- Mantıksal İşlemler

- Büyük ve Küçük Sayı- Kaydırma - Shift

Page 18: IEI-32 FİZİKSEL İŞLEMCİ

IEI-32 Komut Yapısı

Page 19: IEI-32 FİZİKSEL İŞLEMCİ

IEI-32 Komut Listesi

Page 20: IEI-32 FİZİKSEL İŞLEMCİ

IEI-32 İŞLEMCİSİ NASIL ÇALIŞIR?

Page 21: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 22: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 23: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 24: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 25: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 26: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 27: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 28: IEI-32 FİZİKSEL İŞLEMCİ

INSTRUCTION DECODER

HAZARD KONTROL

PC

INSTRUCTION MEMORY

REGFILE

ALU

MUX

data

reset

JUMP KONTROL

Timer

Memory

Tris

Port

ALU_SEC

çalıştır

Pcdeğeri

instyaz

Jmp_

adre

si

jmp

pcbekle

Ds (dallanma şartı)

ALU_Sec Verileri

Alu verileri

Rf verileri

Imem verileriId

ec v

erile

ri

instructionadres S

adres B

adres A

bsecasec

Tris A,B,C,D

mem

ory

Timer

Port

A,B

,C,D

aluA

aluB

alufnsabit

sabitregAregB

shift

addsub

carpmamaxmin

boole

sel

nry

alu,adres

alu,

adre

s

alu,

adre

s

alu,adresalu,adres

Page 29: IEI-32 FİZİKSEL İŞLEMCİ

ŞİMDİ IEI-32 İŞLEMCİSİ AÇIK KODLARI İLE BERABER ISE

WEBPACK PROGRAMI ÜZERİNDE ANLATILACAKTIR

Page 30: IEI-32 FİZİKSEL İŞLEMCİ

TEŞEKKÜRLER