• Sonuç bulunamadı

4. ARAŞTIRMA BULGULARI

4.2 Ortanca Süzgeci Uygulaması

Sinyal işleme alanında sıkça kullanılan bir süzgeç olduğu için ortanca süzgeci uygulaması yapılmasına karar verilmiştir. Bu uygulamada veri belleğinde bulunan dört ayrı değere ortanca süzgeci algoritması uygulanarak elde edilen değerler tekrar veri belleğine yüklenmiştir. İlk olarak veri belleğindeki ilgili değerler genel amaçlı yazmaçlara yüklenmiştir. Daha sonra algoritma gereği yapılması gereken aritmetik ve mantık işlemleri gerçekleştirilmiştir. Şekil 4.2’de BranchFlag ve JumpFlag sinyallerinden görüldüğü üzere bu algoritma birçok dallanma işlemi gerektirmektedir.

Program adresindeki değerler incelendiğinde gerekli dallanmaların başarılı şekilde ve 2 saat darbesinde gerçekleştirildiği görülmektedir. DataMemory isimli veri belleğinde başlangıçta bulunan dört değer ve ortanca süzgeci algoritması sonucu elde edilen değerlerin tekrar veri belleğine yazılması sonucu elde edilen değerler incelendiğinde bellek erişimi işlemlerinin ve tüm algoritmanın başarılı bir şekilde gerçeklendiği doğrulanmaktadır.

Şekil 4.2 Ortanca süzgeci uygulaması

41 4.3 Performans Analizi

Tasarlanan işlemci maksimum saat frekansı, kaynak kullanımı ve güç tüketimi açısından Picoblaze Sanal İşlemcisi ile karşılaştırmalı olarak analiz edilmiştir.

Karşılaştırmada Picoblaze Sanal İşlemcisi seçilmesinin sebebi iki işlemcinininde 8 adet giriş portu, 8 adet çıkış portu, 1 adet kesme giriş portu, 1 adet kesme çıkış portu ve 8 bit veri genişliği içererek benzer özellik taşımalarıdır.

4.3.1 Maksimum saat frekansı

Vivado Design Suite geliştirme ortamı kullanılarak tasarlanan işlemcinin kararlı olarak çalışacağı maksimum saat frekansı hesaplanmıştır. Tasarlanan işlemcide bu değer 12,25 MHz, buna bağlı olarak MIPS (Millions of Instructions Per Second) değeri 4,537 olarak belirlenmiştir. Çizelge 4.1’de görüldüğü üzere Picoblaze Sanal İşlemcisinde ise maksimum saat frekansının 128 MHz ve buna bağlı olarak MIPS değerinin 64 olduğu görülmektedir. Bu açıdan Picoblaze Sanal İşlemcisi tasarlanan işlemciye kıyasla ciddi bir üstünlük göstermektedir.

Çizelge 4.1 Maksimum çalışma frekansı

Tasarlanan İşlemci Picoblaze

Saat Frekansı 12,25 MHz 128 MHz

MIPS 4,537 64

4.3.2 Kaynak kullanımı

Tasarım sonrası Vivado Design Suite geliştirme ortamının sunduğu tasarım özetinde kaynak kullanımlarına detaylı olarak ulaşılabilmektedir. Çizelge 4.2 incelendiğinde tasarlanan işlemcinin kaynak kullanımları görülmektedir. LUT ve FF (Flip Flop) kullanımına bakıldığında Picoblaze Sanal İşlemcisi üstünlük sağlamaktadır. Ancak BUFG (Global Buffer), BRAM (Block Random Access Memory) ve LUTRAM (Look

42

Up Table Random Access Memory) kullanımında tasarlanan işlemci üstünlük sağlamaktadır. BRAM ve LUTRAM’in LUT setleri olduğu, maksimumu saat frekansı ve bir sonraki bölümde bahsedilecek olan güç tüketimi göz önüne alındığında toplam kaynak kullanımı açısından tasarlanan işlemcinin daha üstün olduğu görülmektedir.

Çizelge 4.2 Kaynak kullanımı Kaynak

Kullanımı

Tasarlanan İşlemci(Adet) Picoblaze(Adet) Toplam(Adet)

LUT 3799 128 20800

FF 6176 117 41600

BUFG 2 3 32

BRAM 0 1 50

LUTRAM 0 24 9600

IO 22 30 210

4.3.3 Güç tüketimi

Tasarlanan işlemcinin ve Picoblaze Sanal İşlemcisinin Vivado Design Suite geliştirme ortamı kullanılarak elde edilen güç tüketim analizi Çizelge 4.3’te görülmektedir.

Tasarlanan işlemcinin toplam 171 mW güç tüketmesine karşın Picoblaze 220 mW güç tüketmektedir. Bu açıdan tasarlanan işlemcinin Picoblaze Sanal İşlemcisine karşı açık bir üstünlüğü olduğu görülmektedir.

Çizelge 4.3 Güç tüketimi

Güç Tüketimi Tasarlanan İşlemci Picoblaze

Dinamik Güç Tüketimi 109 mW 158 mW

Statik Güç Tüketimi 62 mW 62 mW

Toplam Güç Tüketimi 171 mW 220 mW

43 5. SONUÇ

5.1 Değerlendirme

Tez çalışması kapsamında düşük kaynak kullanımı, düşük güç tüketimi ve yüksek maksimumum çalışma frekansı hedefleri ile sanal işlemci tasarımı yapılmıştır. İşlemci tasarımının tüm aşamaları şeffaf bir şekilde sunulmuş ve tasarım sonuçları Picoblaze Sanal İşlemcisi ile karşılaştırmalı olarak verilmiştir.

İşlemcinin tasarımı davranışsal seviyede, VHDL kullanılarak, Vivado Design Suite geliştirme ortamında yapılmıştır. Tasarım aşamasında ve tasarım sonrasında aynı geliştirme ortamı kullanılarak işlemcinin istenen işlevleri doğru bir şekilde yerine getirdiğini doğrulamak amacıyla simülasyonlar yapılmış ve bu simülasyon sonuçları tez içerisinde sunulmuştur. Simülasyonlar ile doğrulanan tasarımın gerçeklenmesi ise Arty A7-35T isimli FPGA geliştirme platformu kullanılarak gerçekleştirilmiştir. FPGA üzerinde gerçeklenen tasarımın sonuçları yine tez içinde detaylı bir şekilde sunulmuştur.

Tasarlanan işlemci ile Picoblaze Sanal İşlemcisinin karşılaştırılması sonucunda, maksimum çalışma frekansı açısından tasarlanan işlemcinin 12,25 MHz frekans değerine karşılık, Picoblaze Sanal İşlemcisi 128 MHz frekans değeri ile büyük bir üstünlük göstermiştir. Güç tüketimi açısından yapılan karşılaştırma sonucunda ise Picoblaze Sanal İşlemcisinin 220 mW güç tüketim değerine karşın tasarlanan işlemcinin toplam 171 mW ile daha yüksek performans gösterdiği görülmektedir. Kaynak kullanımı açısından karşılaştırma sonucunda ise tasarlanan işlemci daha çok sayıda LUT ve FF kullanılmasına karşın LUTRAM ve BRAM kullanmayarak toplamda daha düşük kaynak kullandığı tespit edilmiştir.

Picoblaze Sanal İşlemcisi 5 aşamalı İş Hattı komut işleme düzenine sahip iken tasarlanan işlemci çok döngülü komut işleme düzenine sahiptir. İş hattı komut işleme düzeninin yüksek çalışma frekansı ve daha karmaşık tasarım sonucu yüksek kaynak kullanımı özelliklerini beraberinde getirdiği göz önüne alındığında tasarlanan işlemcinin

44

maksimum çalışma frekansı açısından daha düşük performans göstermesi, kaynak ve güç tüketimi açısından ise daha yüksek performans göstermesi beklenen bir sonuçtur ve bu sonuç çalışma hedeflerine uygundur.

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 - )

Benzer Belgeler