Geri Dön

Application specific instruction set extension of Nios II processor

Nios II işlemcisi üzerinde uygulamaya yönelik özel komut seti eklenmesi

  1. Tez No: 623505
  2. Yazar: ANIL ŞEKER
  3. Danışmanlar: DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN
  4. Tez Türü: Yüksek Lisans
  5. Konular: Elektrik ve Elektronik Mühendisliği, Electrical and Electronics Engineering
  6. Anahtar Kelimeler: Nesne izleme, Sayısal işaret işleme, Sayısal işaret işleyicisi, Object tracking, Digital signal processing, Digital signal processor
  7. Yıl: 2020
  8. Dil: İngilizce
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Elektronik Mühendisliği Bilim Dalı
  13. Sayfa Sayısı: Belirtilmemiş.

Özet

Günümüzde insan tespiti otomotiv, güvenlik, savunma ve robotik gibi birçok farklı alanda oldukça önemli yer tutmaktadır. Bu sebeple, gerek akademi alanında gerekse endüstriyel alanlarda şu ana kadar çok sayıda çalışma yapılmıştır. Bu çalışmalar incelendiğinde, gerçek zamanda hızlı işlem ve kaynak tüketimi iki önemli parametreler olarak karşımıza çıkmaktadır. Güvenirliği kanıtlanan algoritmaların, gömülü sistemler üzerinde bu parametreler göz önüne alınarak çalışmalar yapılmıştır. İnsan tespit algoritmaları çoğunlukla piksel değişimlerinin farklına bakarak, çeşitli matematiksel işlemler ile video çerçevesi içerisinde konum hesaplaması yaparlar. Piksel farklarındaki en ufak değişim, tespit algoritmaları için önemlidir. Ancak, gömülü sistemlerde ondalıklı sayılarla yüksek doğrulukta işlemler yapmak uzun sürede yapılmaktadır. Bunun sonucu olarak, gerçek zamanlı işlem yükünü karşılayamama gibi problemler ortaya çıkmaktadır. Bu durumda, işlemcilere donanım eklentisi yapılması, işlem süresi iyileştirmesinde katkı sağlamaktadır. Bu tez kapsamında, insan tespiti ve sınıflandırılmasında popüler bir algoritma olan HOG(Histogram of Gradient) algoritması, işlemcili bir mimari kullanarak alanda programlanabilir kapı dizileri entegresinin üzerinde gerçeklenmiştir. Şu ana kadarki yapılan çalışmalarda, gömülü sistemler üzerinde gerçeklenen HOG algoritmasının trigonometrik ya da kök alma gibi işlemlerinde çeşitli optimizasyonlar uygulanmıştır. Doğal olarak, ondalıklı sayılar üzerinde yapılan optimizasyonlar tespit makinasında gerçek zamanlı işlem süresini kısaltmakla birlikte doğruluk oranını azaltığı gözlemlenmiştir. Hem algoritmanın video penceresi içerisinde işlemleri hızlı bir şekilde yapmak hem de yüksek oranda doğruluğu yakalayabilmek bu tezin temel amacıdır. HOG algoritması, video çerçevesi içindeki belirli bir tespit penceresinde piksel değişimlerini açı ve uzunluk olarak hesaplamaktadır. Piksel verilerinin sağındaki-solundaki ve altındaki-üstündeki komşu piksellere göre değişimleri vektör olarak hesaplanıp, bu vektörlerin tüm çerçeve için histogram haritaları çıkartılarak konum taraması yapılmaktadır. Bu çalışmada, test çerçevesi olarak 640x480 boyutlarında 8-bit derinlikli örnek bir çerçeve kullanılmıştır. Tespit penceresi 64x128 boyutlarında belirlenmiş olup, algoritma doğasında olduğu gibi tüm gerekli işlemler ondalıklı sayılar formatında uygulanmıştır. Algoritma C programlama dili kullanarak yazılmış, doğrulanması masaüstü bilgisayarda yapılmıştır. Doğrulandıktan sonra gömülü sistemde çalıştırmak için gerekli düzenlemeler yapılmıştır. Gömülü sistemlerde çalışmaya hazır hale getirilen algoritmanın çalıştırılması için, Altera firmasının sağladığı RISC tabanlı Nios II işlemcisi tercih edilmiştir. Nios II işlemcisi, alanda programlanabilir kapı dizileri entegrelerinin üzerinde çalışan, VHDL ya da Verilog donanım dili kullanılarak tasarlanmış bir işlemcidir. Bu işlemcinin ARM, X86 gibi işlemcilerden ayıran en temel fark, alanda programlanabilir kapı dizileri entegresinin gücü kesildiğinde, Nios II işlemcisi de güç ile birlikte yok olmaktadır. Bir diğer ifade ile ARM, x86 işlemcileri gibi fiziksel olarak çip şeklinde olmamalarıdır. Donanım dilinde yazılmış olma sebebiyle alanda progranabilir kapı dizileri üzerinde çalışmaktadır. Bu çalışmada, Nios II işlemcisinin seçilmesindeki en önemli faktör, işlemcinin çekirdek mimarisi değiştirilmeden komut seti genişletilmesinin yapılmasıdır. Ayrıca, Nios II işlemcisinin derleyici aracı, eklenen bu komut kümelerini tanıyıp, C dilindeki algoritmaya makro olarak eklenmektedir. Nios II işlemci mimarisinin sağladığı donanım üzerinde komut seti genişletme yeteneği; HOG algoritmasında bulunan ve işlemcide uzun işlem süresi olan komutların bir küme halinde belirlenip, işlemcinin ALU(Arithmatic Logic Unit) birimine paralel olarak ekleme imkanı sağlamaktadır. Bu çalışmada, işlemcinin belirtilen özellikleri kullanarak dört farklı mimarinin zaman ve kaynak tüketimi analizi yapılmıştır. Birinci sistemde, test çerçevesi bir ROM bellek tarafından okunarak HOG algoritması uygulaması sadece Nios II işlemcisi kullanılarak gerçeklenmiştir. İkinci sistemde, Nios II işlemcisinin ALU birimine donanımsal bölme/çarpma birimi eklenmiş ve algoritma aynı şekilde uygulanmıştır. Üçüncü sistemde, ikinci sistemde eklenen donanımlara ek olarak Altera'nın sağladığı ondalıklı sayılar işlem birimi eklenmiştir. Son olarak dördüncü sistemde, algoritmaya özgü komut akışlarından birbiriyle aynı özellikte olanlar belirlenmiş ve işlemcinin ALU birimine paralel olarak eklenmiştir. İşlemciye hangi komutların ekleneceğinin kararını vermek için, algoritmaya özel komutların birbirine bağımlılığı son derece kritik bir noktadır. Bu sebeple, komutların birbirine bağımlılığını gösteren DAG(Data A-Cyclic Graph) görseli komut setinin seçiminde kullanılmıştır. DAG görseli, algoritmaya özgü komutların basit bloklar halinde grafik olarak gösterilmesidir. Bu grafikler, komutların birbirine bağımlılığını bloklar ve oklar ile göstermektedir. DAG görsellerini elde etmek için, işlemci mimarisine özgü komutlarının ara çıktıları gerekmektedir. Ne yazık ki, işlemcilerine uygun derleyici üreten firmalar genellikle DAG görsellerini vermemektedir. Nios II işlemcisini sağlayan firma da DAG görselini paylaşmaması sebebiyle, bu çalışmada açık kaynak kodlu derleyici olan LLVM(Low Level Virtual Machine) aracı kullanılmıştır. LLVM birçok işlemci mimarisine uygun DAG görsellerini üretme işlevine sahiptir. Ancak, RISC tabanlı Nios II işlemcisine uygun DAG görselini üretmemektedir. Bu sebeple, başka bir açık kaynaklı ve RISC mimarisine sahip Verilog dilinde tasarlanmış örnek bir işlemci LLVM derleyicisine tanıtılmıştır. HOG algoritmasının komutları, Nios II ile aynı mimariye sahip örnek işlemci için LLVM üzerinde derlenmiştir. LLVM derleyicisinin alt araçlarından biri olan DAG üreticisi kullanılarak, algoritmanın RISC mimarisine sahip bir işlemcide komut bağımlılığı ve akışı DAG görseli olarak elde edilmiştir. Elde edilen DAG görselindeki basit bloklar, tek tek incelenerek benzer olanları tespit edilmiştir. Kendini tekrar eden komut kümeleri tespit edildikten sonra, işlemcinin ALU birimine eklenmiştir. İşlemci mimarisinin getirdiği donanımsal kısıtlar sebebiyle, en fazla iki adet veri ALU biriminin girişine sürülmektedir. Bazı komut kümelerinin giriş veri sayısı ikiden fazla olduğu için, işlemcinin ALU birimine eklenmesinde sorunlar yaşanmıştır. Bu durum, komut seviyesinde paralleliği arttırmada sınırlama oluşturmuştur. Bu kısıtlama problemi, işlemciye bellek ekleyerek çözülmüştür. Komut kümesinin ihtiyacı olan veriler işlemci tarafından bu belleğe yazılmaktadır. Gerekli veriler belleğe yazıldıktan sonra, ALU'ya eklenen donanım blokları verileri okuyup ilgili komutları gerçeklemektedirler. DAG görselinden toplam üç farklı fonksiyonu gerçekleyen aynı komut kümeleri tespit edilmiştir. Bu komut kümelerinin fonksiyonunu gerçekleyen donanımsal bloklar Altera'nın sağladı ondalık sayılar işlemleri yapan devreleri de kullanarak VHDL dilinde tasarlanmıştır. Tasarlanan komut kümeleri blokları, ilgili arayüzler üzerinden Nios II işlemcisinin ALU birimine eklenmiştir. Eklenen komut kümeleri blokları derleyiciye tanıtılarak çalışması sağlanmıştır. Algoritma akışı bu komut setlerinin çalışmasına ihtiyaç duyduğunda, işlemci kendini durdurmakta ve blokların işlemlerini bitirmesini beklemektedir. Bunun sebebi, ALU birimine eklenen komut kümesi blokları işlemlerini bir saat periyodundan daha uzun sürede yapmasıdır. İşlemci, bloklardan gelen“işlem tamam”sinyalinden sonra çalışmasına devam etmektedir. HOG algoritmasının ondalıklı sayılarda işlem yapan komut kümelerinin ALU birimine eklenmiş mimaride çalışırılması ve sadece işlemcinin olduğu mimaride çalıştırılması, toplam işlem süresi ve kaynak tüketimi açısından analiz edilmiştir. Sonuçlara göre, işlemcinin ALU biriminin yeteneklerinin geliştirilmesi ile algoritmanın çalışma süresinin kısaldığı gözlenmiştir. Aynı zamanda, hızın artması ile birlikte kaynak tüketiminin de arttığı gözlenmiştir. Sonuç olarak, yapılandırabilir işlemcilerin ALU birimine uygulumaya özel komut seti eklenmesi paralel işlem yeteneğini arttırmaktadır. Buna bağlı olarak, işlemci birim zamanda daha fazla komut setinin fonksiyonunu gerçeklemektedir. Özellikle, hızın ya da matematiksel olarak yoğun işlemlerin önemli olduğu uygulamalarda komut seti genişletmesi oldukça faydalı olmaktadır. Performans arttırmanın yanında, yeni komut setlerinin derleyiciye tanıtılması yazılım geliştirme esnekliğinin korunmasını sağlamaktadır. Bu tezdeki adımlar kullanılarak, herhangi bir uygulama yapılandırabilir işlemciler üzerinde gerçeklenebilir. Ayrıca, bu tezde algoritmaya yönelik hiçbir optimizasyon yapılmamış, düz C uyguluması gerçeklenmiştir. Matematiksel olarak işlem yükünün ağır olduğu bölümlerde, donanıma uygun optimizasyonlar yapılarak, işlemci performansı daha da arttırabilmektedir.

Özet (Çeviri)

Nowadays, human detection is getting one of the vital topic in the field of computer vision with the increasing of data amount. To meet the requirements of data process, new methods or new architectures have become a center of this phenomenon. Especially, application dedicated systems for human detection have an important role so there are many studies have been offered in the field of human detection for various purposes. In this thesis, one of the part of human detection algorithm is implemented on application-specific processor. HOG descriptor is a widely accepted local feature extractor with high accuracy and it has heavy computation blocks in processing. Therefore, hardware acceleration is inevitable for high performance with high accuracy. Due to FPGA is the best candidate for real-time process on pixels, it is selected as hardware for implementation in this thesis. Besides real-time consideration, accuracy is another main concern. Naturally, HOG descriptor includes floating-point operations in order to get high accuracy. Fortunately, FPGA's provide soft-processor and floating-point blocks with high accuracy. This is the another reason that make FPGA is a suitable platform for implementation of HOG. An application-specific HOG descriptor architecture on FPGA with the soft processor is designed with custom instruction set extension to its base micro-architecture without any modification on the core. It provides safety design steps by protecting processor core. The custom instructions of the algorithm are parallel connected to ALU of processor. The Quartus Eclipse tool provides macros of new instruction set which are directly used in the software compiler. Thus, hardware acceleration unit supports software flexilibility in the design. To obtain instruction set, DAG representation is used. Open-source compiler tool LLVM provides DAG representation for the specified architecture. Despite LLVM ecosystem includes many architectures like X86, X86-64, PowerPC, PowerPC-64, ARM, etc. , it does not have Nios II architecture. Due to lack of support for Nios II architecture in LLVM tool, an example RISC based open-source processor architecture is used. The implementation of architecture is applied for 640x480x8bit test frame on low cost Cyclone V FPGA platform. For this study, there is any optimization on the algorithm, in other word pure software of algorithm is implemented. Four different architectures are analyzed in terms of execution speed and source consumption respectively only processor core, hardware divider/multiplier with a processor core, hardware divider/multiplier/floating-point unit with a processor core and hardware divider/multiplier/floating-point unit/instruction set extension with a processor core. As a result of unoptimized architecture by fully floating-point calculation is accelerated in comparison with pure software implementation of HOG descriptor.

Benzer Tezler

  1. An FPGA implementation of a RISC-V based SOC system with custom instruction set for image processing applications

    Görüntü işleme uygulamaları için özel komut setine sahip RISC-V tabanlı bir SOC sısteminin FPGA gerçeklemesi

    ERFAN GHOLIZADEHAZARI

    Yüksek Lisans

    İngilizce

    İngilizce

    2021

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. SIDDIKA BERNA ÖRS YALÇIN

  2. İstanbul'da eğitim donatımlarının planlanmasına ve uygulanmasına yönelik model araştırması

    Model research on planning and application of education infrastructures in Istanbul

    SUAT ÇABUK

    Doktora

    Türkçe

    Türkçe

    2003

    Şehircilik ve Bölge Planlamaİstanbul Teknik Üniversitesi

    Şehir ve Bölge Planlama Ana Bilim Dalı

    PROF. DR. YÜCEL ÜNAL

  3. The alignment of curriculum components of Cambridge IGCSE international mathematics

    Cambridge IGCSE uluslararası matematik öğretim programı bileşenlerinin uyumu

    ADA ELİF MUTLU

    Yüksek Lisans

    İngilizce

    İngilizce

    2025

    Eğitim ve Öğretimİhsan Doğramacı Bilkent Üniversitesi

    Eğitim Programları ve Öğretim Ana Bilim Dalı

    PROF. DR. ALİPAŞA AYAS

  4. Designing custom rısc-V based socs: from ıntegration to ısa optimization

    Özel risc-V tabanli soc tasarimi: entegrasyondan isa optimizasyonuna

    AMER MOHAMMAD NAYEF DYAB

    Yüksek Lisans

    İngilizce

    İngilizce

    2025

    Elektrik ve Elektronik MühendisliğiÖzyeğin Üniversitesi

    Elektrik-Elektronik Mühendisliği Ana Bilim Dalı

    PROF. HASAN FATİH UĞURDAĞ

  5. Low power general purpose processor design and instructions set extension for AES

    Düşük güç tüketimli genel amaçlı işlemci tasarımı ve AES için komut kümesi genişletilmesi

    MUHAMMED ŞAİROĞLU

    Yüksek Lisans

    İngilizce

    İngilizce

    2020

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN