5. SONUÇ
5.2 Öneriler
Tasarım öncesi belirlenen hedeflere sonuç olarak büyük ölçüde ulaşılmıştır. Bunun yanında tasarlanan işlemcinin performansını ve kabiliyetlerini artırmak, programlanmasını kolaylaştırmak amacıyla birtakım iyileştirmeler yapılabilir.
Tasarlanan sanal işlemcinin maksimum çalışma frekansı ve MIPS değerleri düşüktür.
Bu değerler, Çok Döngülü komut işleme düzeni yerine İş Hattı komut işleme düzeni tercih edilerek yükseltilebilir. Bunun yanında, tasarlanan sanal işlemci doğal sayılar ile işlem yapabilmektedir. İşlemlerin tam sayılar kullanılarak yapılabilmesi amacıyla işlemci tasarımında geliştirmeler yapılabilir. Bunlara ek olarak, oluşturulan bir derleyici ile işlemci için kod yazılması ve işlemcinin programlanması kolaylaştırılabilir.
Tez çalışmasının giriş bölümünde belirtildiği üzere, sanal işlemciler var olan avantajları sayesinde fiziksel işlemcilere alternatif olarak kullanılmaktadır. Bu sebeple, tasarlanan sanal işlemcinin benzer kabiliyetlerdeki bir fiziksel işlemci ile performans açısından karşılaştırılmasını içeren bir çalışma gerçekleştirilebilir.
45 KAYNAKLAR
Alaer, E. 2006. 16 Bitlik Mikroişlemcinin FPGA Mimarileri Kullanılarak Gerçekleştirilmesi. Yüksek Lisans Tezi. Kocaeli Üniversitesi, Fen Bilimleri Enstitüsü,Elektronik ve Haberleşme Mühendisliği Anabilim Dalı, 96, Kocaeli Anonymous. 2017a. FPGA Market Analysis And Segment Forecasts To 2020. San
Francisco, USA
Anonymous. 2017b. Vivado Design Suite User Guide. Xilinx Inc. USA.
Anonymous. 2017c. Arty FPGA Board Reference Manual. Digilent Inc. USA
Başak, S. 2011. FPGA Tabanlı Sentezlenebilir İşlemci Tasarımı. Yüksek Lisans Tezi.
Yıldız Teknik Üniversitesi, Fen Bilimleri Enstitüsü, Bilgisayar Mühendisliği Anabilim Dalı, 65, İstanbul.
Bennett, J. and Baxter, J. 2010. OpenRISC 1200 Supplementary Programmer's Reference Manual. Embecosm Limited and Authors, 42, San Francisco, California,USA.
Baida, Y. 2010. Introduction to Microprocessors. Moscow Institute of Physics and Technology. October 2. Moscow
Burks, A,W. 2017. Electronic Computing Circuits of the ENIAC, Proceedings of the I.R.E., 35 (8), 756–767.
Chevtchenko, S,F. and Vale, R,F. 2014. A Comparison of RISC and CISCArchitectures.Department of Statistics and Informatics UFRPE. Recife, Brazil.
Chu, P,P. 2008. FPGA Prototyping BY VHDL Examples. John Wiley & Sons, 471, Hoboken.
El-Aawar, H. 2015. Increasing The Transistor Count By Constructing a Two- Layer Crystal Square on a Single Chip. International Journal of Engineering Research and Technology(IJERT).7(3), 97-105
Enoch, O. H. 2005. Digital Logic and Microprocessor Design with VHDL. Brooks/Cole 512, Riverside.
Farooq, U., Marrakchi, Z. and Mehrez, H. 2012. Tree-based Heterogeneous FPGA Architectures. Springer, 188, New York
Golson, S. and Clark L. 2016. Language Wars in the 21st Century: Verilog versus VHDL.Synopsys User Group. March 31, San Diego, California
46
Hongbao, M. 2006. Nobel Prizes From 1901. Nature and Science. 4(3), 86-94, Michigan, USA
Hruska, J. 2018. How L1 and L2 CPU Caches Work, and Why They’re an Essential Part of Modern Chips. Extremetech, August 30, US.
Jeemon, J. 2016. Pipelined 8-bit RISC Processor Design using Verilog HDL on FPGA.
IEEE International Conference On Recent Trends In Electronics Information Communication Technology. May 20-21, 2023-2027, India
Mwangi, J. 2016. Xilinx - A Compelling Long-Term Pick Even Without An Acquisition. Seeking Alpha. November 29,2, US.
Nade, J.B. and Sarwadnya, R.W. 2015. The Soft Core Processors : A Review.
Internatıonal Journal Of Innovatıve Research In Electrıcal, Electronıcs, Instrumentatıon And Control Engıneerıng (IJIREEICE). December, 3(12). 197-203. India
Nurmi, J. 2009. Processor Design : System-On-Chip Computing for FPGAs and ASICs.
Springer, 534, Finland
Öztürk, E. 2010. FPGA Kullanarak 16 Bitlik Mikroişlemci Tasarımı. Yüksek Lisans Tezi. Yıldız Teknik Üniversitesi, Fen Bilimleri Enstitüsü, Elektronik ve Haberleşme Mühendisliği Anabilim Dalı, 44, İstanbul.
Smith, S.W. 1999. The Scientist and Engineer’s Guide to Digital Signal Processing.
California Technical Publishing, 722, San Diego, California
Thakor, K. and Pal, A. 2017. Design of a 16-bit RISC Processor UsingVHDL.
International Journal of Engineering Research and Technology(IJERT). 6(4).
Tong, J., Anderson, I. and Khalid, M. 2006. Soft-Core Processor for Embedded Systems. The 18th International Conference on Microelectronics. December 16-19, 170-173, Dhahran.
Zavala, A., Nieto, O. and Ruelas, J. 2015. Design of a General Purpose 8-bit RISC Processor for Computer Architecture Learning. Computacion y Sistemas, 19(2), 371-385.
47 EKLER EK 1 Komut Seti
EK 2 Tasarlanan İşlemcinin Şematik Gösterimi EK 3 Varyans Hesabı Assembly Kodu
EK 4 Ortanca Süzgeci Assembly Kodu
48 EK 1 Komut Seti
Komut Opcode İşlem Döngü
AND 011001 HY = KY1 & KY2
Program Sayacı = Program Sayacı+1
3
OR 011001 HY= KY1 | KY2
Program Sayacı = Program Sayacı+1
3 XOR 011010 HY = KY1 ^ KY2
Program Sayacı = Program Sayacı+1 3 ADD 011100 HY = KY1 + KY2
Program Sayacı = Program Sayacı+1
3 SUB 011101 HY = KY1 - KY2
Program Sayacı = Program Sayacı+1
3 MUL 011110 HY = KY1 * KY2
Program Sayacı = Program Sayacı+1 3 DİV 011111 HY = KY1 / KY2
Program Sayacı = Program Sayacı+1
3 ANDi 111000 HY = KY & Anlık Değer
Program Sayacı = Program Sayacı+1
3 ORi 111001 HY = KY | Anlık Değer
Program Sayacı = Program Sayacı+1 3 XORi 111010 HY = KY ^ Anlık Değer
Program Sayacı = Program Sayacı+1 3 ADDi 111100 HY = KY + Anlık Değer
Program Sayacı = Program Sayacı+1
3 SUBi 111101 HY = KY - Anlık Değer
Program Sayacı = Program Sayacı+1
3 MULi 111110 HY = KY * Anlık Değer
Program Sayacı = Program Sayacı+1 3 DİVi 111111 HY = KY / Anlık Değer
Program Sayacı = Program Sayacı+1
3
NOT 110000 HY = ~ KY
Program Sayacı = Program Sayacı+1
3 SLL 110010 HY = KY << Anlık Değer
Program Sayacı = Program Sayacı+1 3 SRL 110011 HY = KY >> Anlık Değer
Program Sayacı = Program Sayacı+1
3 SLA 110100 HY = KY << Anlık Değer
Program Sayacı = Program Sayacı+1
3 SRA 110101 HY = KY >> Anlık Değer
Program Sayacı = Program Sayacı+1 3 SLC 110110 HY= KY << Anlık Değer
Program Sayacı = Program Sayacı+1 3 SRC 110111 HY = KY >> Anlık Değer
Program Sayacı = Program Sayacı+1
3
MOV 110001 HY = KY
Program Sayacı = Program Sayacı+1
3 MOVi 101000 HY = Anlık Değer
Program Sayacı = Program Sayacı+1 3
LOAD 100000 HY = Mem[A.D.] 3
49
Program Sayacı = Program Sayacı+1 STR 101111 Mem[A.D.] = KY
Program Sayacı = Program Sayacı+1
3
IN 100010 HY = Input
Program Sayacı = Program Sayacı+1
3 OUT 010001 Output = KY
Program Sayacı = Program Sayacı+1
3
Program Sayacı = Program Sayacı+1
3
JMP 001000 Program Sayacı = Anlık Değer 2
JE 001001 Karşılaştırma Bayrağı(1) = ‘1’ise Program Sayacı = Anlık Değer
2
JNE 001010 Karşılaştırma Bayrağı(1) = ‘0’ise Program Sayacı = Anlık Değer
2
JG 001011 Karşılaştırma Bayrağı(2) = ‘1’ise Program Sayacı = Anlık Değer
2
JL 001100 Karşılaştırma Bayrağı(0) = ‘1’ise Program Sayacı = Anlık Değer
2
JGE 001101 Karşılaştırma Bayrağı(1) = ‘1’ise veya
Karşılaştırma Bayrağı(2) = ‘1’ise Program Sayacı = Anlık Değer
2
JLE 001110 Karşılaştırma Bayrağı(1) = ‘1’ise veya
Karşılaştırma Bayrağı(0) = ‘1’ise Program Sayacı = Anlık Değer
2
CALL 001111 Program Sayacı = Anlık Değer P.S_Ret = Program Sayacı+1
2
RET 000000 Program Sayacı = P.S_Ret 2
NOP 000010 Program Sayacı = Program Sayacı+1 2 Eint 000100 Kesme Bayrağı = ‘1’
Program Sayacı = Program Sayacı+1 2 Dint 000101 Kesme Bayrağı = ‘0’
Program Sayacı = Program Sayacı+1
2
50 EK 2 Tasarlanan İşlemcinin Şematik Gösterimi
51 EK 3 Varyans Hesabı Assembly Kodu 0: load r0,x"00"
1: load r1,x"01"
2: load r2,x"02"
3: load r3,x"03"
4: add r5,r0,r1 5: add r5,r5,r2 6: add r5,r5,r3 7: div r5,r5,4 8: mul r5,r5,r5 9: mul r0,r0,r0 10: mul r1,r1,r1 11: mul r2,r2,r2 12: mul r3,r3,r3 13: add r4,r0,r1 14: add r4,r4,r2 15: add r4,r4,r3 16: divi r4,r4,4 17: sub r6,r4,r5 18: out r6 19: halt
52 EK 4 Ortanca Süzgeci Assembly Kodu 0: load r0,x"00"
1: load r1,x"01"
2: load r2,x"02"
3: load r3,x"03"
4: mov r4,r0 5: mov r7,r3 6: str r4,x"04"
7: str r7,x"07"
8: cmp r0,r1 9: jg 14 10: jl 19 11: mov r5,r0 12: str r5,x"05"
13: jmp 23 14: cmp r0,r2 15: jl 11 16: mov r5,r1 17: str r5,x"05"
18: jmp 23 19: cmp r1,r2 20: jg 16 21: mov r5,r1
53 22: str r5,x"05"
23: cmp r1,r2 24: jg 29 25: jl 34 26: mov r6,r1 27: str r6,x"06"
28: halt 29: cmp r1,r3 30: jl 26 31: mov r6,r3 32: str r6,x"06"
33: halt 34: cmp r2,r3 35: jg 31 36: mov r6,r2 37: str r6,x"06"
38: halt
54 ÖZGEÇMİŞ
Adı Soyadı : Muhammet Ertuğrul ÇAKIR Doğum Yeri : Eynesil/Giresun
Doğum Tarihi : 30.08.1993 Medeni Hali : Bekar Yabancı Dili : İngilizce
Eğitim Durumu (Kurum ve Yıl)
Lise : Rize Fen Lisesi (2011)
Lisans : Ankara Üniversitesi Elektrik Elektronik Mühendisliği (2016)
Yüksek Lisans: Ankara Üniversitesi Fen Bilimleri Enstitüsü, Elektrik Elektronik Mühendisliği Anabilim Dalı (Eylül 2016- Aralık 2018)
Çalıştığı Kurum/Kurumlar ve Yıl
Adularya Enerji A.Ş. (Haziran 2017 – Kasım 2018) Aselsan (Aralık 2018 - )