Download - IEI-32 FİZİKSEL İŞLEMCİ
![Page 1: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/1.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/2.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/3.jpg)
İÇİ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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/4.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/5.jpg)
İ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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/6.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/7.jpg)
//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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/8.jpg)
// 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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/9.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/10.jpg)
Single Cycle IEI-32
![Page 11: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/11.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/12.jpg)
Pipeline Yapısında IEI-32 Sanal İşlemcisi
![Page 13: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/13.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/14.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/15.jpg)
Pipeline Yapısında IEI-32 Fiziksel İşlemcisi
![Page 16: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/16.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/17.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/18.jpg)
IEI-32 Komut Yapısı
![Page 19: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/19.jpg)
IEI-32 Komut Listesi
![Page 20: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/20.jpg)
IEI-32 İŞLEMCİSİ NASIL ÇALIŞIR?
![Page 21: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/21.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/22.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/23.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/24.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/25.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/26.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/27.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/28.jpg)
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İ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/29.jpg)
ŞİMDİ IEI-32 İŞLEMCİSİ AÇIK KODLARI İLE BERABER ISE
WEBPACK PROGRAMI ÜZERİNDE ANLATILACAKTIR
![Page 30: IEI-32 FİZİKSEL İŞLEMCİ](https://reader035.vdocuments.site/reader035/viewer/2022062221/56814093550346895dac264e/html5/thumbnails/30.jpg)
TEŞEKKÜRLER