FPGA tabanlı sentezlenebilir işlemci tasarımı
FPGA based soft-core processor design
Yazar: SELÇUK BAŞAK
Danışman: YRD. DOÇ. DR. SONGÜL ALBAYRAK
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2011
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: FPGA = FPGA ; Sayısal elektronik = Digital electronic ; Sayısal tasarım = Digital design ; İşlemciler = Processors

Özet:
Gömülü sistemler çok geniş kullanım alanına sahiptirler. Gömülü sistemlerin gerçeklenmesinde SOC (System On a Chip) yapıları yaygın olarak tercih edilmektedir. FPGA (Field Programmable Gate Array) gibi programlanabilir lojik cihazlar SOC yapılarını esnek olarak kullanmaya imkân sağlamaktadır. Birçok FPGA üreticisi FPGA içerisine gömülü olarak SOC yapıları yerleştirmek üzerine çalışmalar yapmaktadır. SOC sistemleri FPGA üzerinde soft-core olarak gerçeklemek mümkündür. Bu sistemlerde kullanılabilecek birçok ticari veya açık kaynaklı soft-core işlemci geliştirilmiştir.Bu tez çalışmasında, FPGA üzerinde SelCPU2 soft-core işlemcisinin tasarımı yapılmış ve gerçeklenmiştir. SelCPU2 işlemcisinin tasarımında, Nios II işlemcisinin komut seti referans alınarak, az alanda yüksek komut çalıştırma performansı ve yüksek çalışma frekansı hedeflenmiştir. SelCPU2 işlemcisi komut set açısından RISC mimarisindedir. Hafıza erişimi açısından Harvard mimarisindedir, veri ve komut veri yolu ayrıdır. Hafıza erişimi load/store komutları ile yapılır. Yazmaç dosyası 32 adet 32-bit yazmaç içerir. Tek bir komutta iki kaynak ve bir de hedef yazmaç adresleyebilir. ALU komutları yazmaçlar ve/veya komut içinde belirtilen sabit değer üzerinde işlem yaparak sonucu hedef yazmaca aktarır. SelCPU2 iki saat döngüsünde üç aşamalı ardışık düzen işleme(pipeline) yapasındadır ve çoğu komut tek bir saat döngüsünde tamamlayabilir. SelCPU2 işlemcisi donanımsal çarpma ve bölme komutlarını destekler. Opsiyonel olarak veri önbelleği ve yerel bağlı hafıza birimi içerebilir. SelCPU2 işlemcisi SOC sistem veri yolu olarak Avalon-MM ara yüzünü destekler. Altera SOPC Builder aracı ile SOC tasarımda bileşen olarak kullanılabilir. SelCPU2 statik dallanma tahmini birimi içerir ve hatalı tahmin sadece bir saat döngüsü kayba neden olur. SelCPU2 işlemcisi için Assembler ve yeniden uyarlanabilir LCC C derleyicisine arka yüz geliştirilmiştir. Bu sayede ANSI C ile işlemci üzerinde çalışacak program geliştirme imkânı sağlanmıştır.Yapılan tasarımın performans değerlendirmesi eşdeğer bir SOC sistemi üzerinde Altera Nios II işlemcisi ile karşılaştırmalı olarak yapılmıştır. GCC C derleyicisinin üçüncü optimizasyon seviyesi ile elde edilen ortak assembly kodu ile yapılan Dhrystone performans testinde SelCPU2 işlemcisi 47,43 DMIPS, Nios II/f işlemcisi ise 33,48 DMIPS sonuç almıştır. Sonuç olarak SelCPU2 işlemcisi, Nios II işlemcisine göre %41 daha yüksek performans göstermiştir. Altera Cyclone III FPGA üzerinde SelCPU2 işlemcisinin maksimum çalışma frekansı 85 MHz iken Nios II/f işlemcisinin maksimum çalışma frekansı 150 MHz'dir. Alan kullanımı açısından, SelCPU2 işlemcisi 1.771 LE, Nios II işlemcisinin 2.397 LE kullanmaktadır ve SelCPU2 %26 daha az alan kaplamaktadır. Tahmini güç tüketimi analizi sonucunda SelCPU2 208 mW ile Nios II işlemcisinden %4,3 daha az güç tüketmektedir. Tez çalışması sonucunda tasarlanarak gerçeklenen SelCPU2 işlemcisinin tasarım hedeflerini karşıladığı ve ticari bir işlemci olan Altera Nios II işlemcisine göre daha yüksek performans gösterdiği görülmüştür.

Abstract:
Embedded systems have wide range of usage area. In implementation of embedded systems, SOC designs take common place. Programmable logic devices, such as FPGA?s allow flexible SOC design implementation. In order to address current design trends, many FPGA manufacturers work on placing hard-core SOC systems into FPGAs. Currently, it is possible to implement a soft-core SOC design on a FPGA. There are many commercial or open source soft-core processors available to use on FPGA to implement SOC design.In this study, SelCPU2 soft-core processor is designed and implemented on a FPGA. In design of SelCPU2 processor, based on the instruction set of Nios II processor, minimal area usage, maximum instruction execution performance and maximum operating frequency are aimed. SelCPU2 is a general purpose Reduced Instruction Set Computer (RISC) processor core and features Harvard memory architecture. It has separate data and instruction buses. Memory access is made using load/store instructions. Register file contains thirtytwo 32-bit general purpose register. A single instruction can address two source registers and a destination register. ALU instructions perform on registers and/or immediate value that instruction may contain, and store result to a target register. SelCPU2 features three stages pipeline processing which spans two clock cycles and executes the most of the instructions in one clock cycle. SelCPU2 features single instruction hardware multiplication and division operations, optional data cache and optional directly attached data memory. SelCPU2 processor supports Avalon-MM interface and it can be used as a custom processor component in a SOC designed with Altera SOPC Builder tool. SelCPU2 features static branch prediction with just one clock cycle wrong prediction penalty. An assembler and a back-end for LCC C compiler is developed for SelCPU2 processor, so that it is possible to develop a program using ANSI C to run on SOC design.The performance evaluation of the processor design is made in comparison with an equivalent SOC design using Nios II processor. In the Dhrystone benchmark which is made using the same assembly source generated by GCC C Compiler with third level optimization, SelCPU2 scores 47.43 DMIPS and Nios II/f processor scores 33.48 DMIPS. As a result SelCPU2 processor shows 41% more performance than NIOS II processor. On Altera Cyclone III FPGA, SelCPU2 has maximum operating frequency of 85.22 MHz, while Nios II has 150.20 MHz Area usage of SelCPU2 is 1,771 LEs while Nios II uses 2,397 LEs. As a result SelCPU2 uses 26% less area than Nios II. SelCPU2 has an estimated thermal power dissipation of 208 mW which is 4.3% less Nios II?s. SelCPU2 processor that is designed in this study achieves the aims of the design and performed higher than the Altera Nios II processor which is a commercial product.