Geri Dön

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

  1. Tez No: 633565
  2. Yazar: MUHAMMED ŞAİROĞLU
  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: Belirtilmemiş.
  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ı: 85

Özet

Son yıllarda, taşınabilir elektronik cihazlara olan talepte büyük bir artış olmuştur. Bu cihazların çoğunun enerji tasarrufu yapabilmesi ve bu şekilde uzun süre çalışabilecek şekilde tasarlanması gerekmektedir. Ayrıca, birçok akıllı cihazın dış dünyayla ve diğer cihazlarla iletişim kurması gerekmektedir ve tüm bu iletişim güvenli şekilde sağlanmalıdır. Bu gereksinimler, şifreleme özelliklerine sahip düşük güçlü entegre devrelerin geliştirilmesine yönelik yatırımları artırmıştır. Gün geçtikçe kriptografik algoritmaların kullanım alanları daha yaygın hale gelmiştir. İlk zamanlarda yüksek hız ve yüksek işlem gücüne sahip devreler tasarlanmaya çalışılırken, şimdilerde enerji ve alan kısıdına sahip ortamlarda kullanım alanlarının artmasıyla güç ve alan tasarruflu uygulamalar büyük önem kazanmıştır. Bu konu üzerine artarak devam eden araştırmalarda düşük güç tasarrufu için farklı yöntemler önerilmekte ve uygulamaların güç harcamaları azaltılmaya çalışılmaktadır. Bu tezde genel amaçlı kullanılabilecek düşük güçlü işlemci tasarımı sunulmuştur. Daha sonra, işlemcinin komut seti Gelişmiş Şifreleme Standardı (Advanced Encryption Standard - AES) için yeni komutlarla genişletilerek geliştirilmiştir. Birinci bölümde düşük güçlü uygulamalar için birçok gömülü sistem mimarisi tanıtılmış, esnekliğin gerekli bir özellik olduğu veya uygulamanın özel bir donanım olarak yapılamayacak kadar karmaşık olduğu durumlarda Uygulamaya Özel Komut Seti İşlemcilerinin (Application Specific Instruction Set Processor - ASIP) düşük güçlü uygulamalar için iyi bir seçim olduğu gösterilmiştir. İkinci bölümde Gelişmiş Şifreleme Standardı (AES) anlatılmıştır. AES, Kasım 2001'de elektronik verinin saklanması için kullanılmak üzere Federal Bilgi İşleme Standardı (Federal Information Processing Standards - FIPS) olarak Amerikan Ulusal Standartlar ve Teknoloji Enstitüsü (National Institute of Standards and Technology - NIST) tarafından yayınlanmıştır. AES algoritması günümüzde kriptoloji uygulamalarında en yaygın olarak kullanılan ve en çok kabul gören şifreleme algoritmalarından biridir. Bir çok uygulamada, günümüz koşullarında kısa bir anahtar uzayına sahip olan Veri Şifreleme Standardı (Data Encryption Standart - DES) algoritmasının yerini almıştır. AES algoritması 128-bit veri bloğu, 128, 192 ve 256 bit anahtar uzunluğuna sahiptir. AES algoritması hem şifreleme hem de şifreli metni çözmede kullanılan anahtarların birbiriyle ilişkili olduğu, simetrik-anahtarlı bir algoritmadır. AES için şifreleme ve şifre çözme anahtarları aynıdır. AES seçim sürecinde NIST'in performans kriterleri yüksek hız ve düşük RAM gereksinimi olarak belirlenmişti. Bu kriterler göz önünde bulundurularak tasarlanan AES 8-bit akıllı kartlardan yüksek performanslı bilgisayarlara kadar birçok değişik donanım üzerinde yüksek performansla çalışmaktadır. AES algoritmasına özel komutların eklenmesi ile işlemcinin veri şifreleme işlemleri için performansının artırılması amaçlanmaktadır. Üçüncü bölümde Uygulamaya Özel Komut Seti İşlemcisinin (ASIP) tasarım süreci için bizim tarafımızdan koyulan kurallar anlatılmıştır. Dördüncü bölümde, tasarlanmış işlemcinin komut seti verilmiş ve mimarisi ayrıntılı olarak anlatılmıştır. Düşük güç tüketimi hedefine ulaşmak için, tasarlanan işlemci için İndirgenmiş Komut Setli Bilgisayar (Reduced Instruction Set Computer - RISC) mimarisi seçilmiş ve sadece temel komutlar eklenmiştir. İşlemcinin 25 temel komutu vardır. LOD komutu ile bir saklayıcıya belirli bir değer ile yükleme yapmak için kullanılmaktadır. FTC komutu veri belleğinden bir saklayıcıya veri getirmek için kullanılmaktadır. STR komutu, bir saklayıcıdan veri belleğine veri depolamak için kullanılmaktadır. MOV komutu, bir saklayıcıya başka bir saklayıcıdan bir değer ile yüklemek için kullanılmaktadır. İşlemcinin bir koşulsuz ve 6 koşullu atlama komutu vardır. Her atlama komutu ile mutlak veya göreli bir adrese atlanabilir. İşlemcinin 13 farklı aritmetik mantık birimi komutu vardır. Bunlar ile birlikte bitsel mantık işlemleri, kaydırma ve döndürme işlemleri, temel aritmetik işlemleri ve karşılaştırma yapılabilir. Son olarak işlemcinin saklayıcılara veya veri belleği üzerinde etkisi olmayan ve gecikme komutu olarak kullanılabilen bir NOP komutu vardır. Tasarlanan işlemcinin saklayıcı öbeğinde 16 adet 8 bit genişliğinde genel amaçlı saklayıcı vardır. İşlemcinin veri belleği, 256 baytlık Rastgele Erişimli Belleği (Random Access Memory - RAM) olarak belirlenmiştir. Veri belleğinin 8 bit genişliğinde olan adresi, bir komuttan doğrudan bir adres veya saklayıcı öbeğindeki on beşinci saklayıcının içeriğinden dolaylı bir adres olarak kontrol ünitesi tarafından belirtilebilir. Tasarlanan işlemcinin, komut hafızasında en fazla 4096 adet komut olabilir. Her komut 18 bit genişliğindedir. Bu tasarımda, bir komutun yürütülmesi iki saat döngüsü alır. Ek olarak birçok boru hattı aşaması eklenerek işlemci mimarisi geliştirilmiştir. Bir komutu yürütmeyi bitirebilmek için gereken ortalama saat döngü sayısı bir saat döngüsü olmuştur. Boru hattı tehlikeleri, işlemci yapısını karmaşıklaştırmadan yazılım ile giderilmiştir. Bu şekilde işlemci performansı sınırlandırılmamıştır. Test programlarının yazılmasında yardımcı olmak için C# dili ile basit bir assembler programı geliştirilmiştir. Beşinci bölümde, her iki işlemcinin tasarımları (boru hattı olmayan ve boru hattı olan), VHDL (Very High Speed Integrated Circuit Hardware Description Language) dili ile tanımlanmış ve Xilinx Vivado ortamında gerçekleştirilmiş ve simüle edilmiştir. Her iki işlemcinin performanslarını karşılaştırmak için basit programlarla testler gerçekleştirilmiştir. Boru hattı işlemcisi test programlarını bitirmek için gereken saat döngüleri, verimleri ve tüketilen enerjileri açısından daha iyi sonuçlar vermiştir. Her iki işlemci de herkes tarafından bilinen Xilinx PicoBlaze işlemcisi ile karşılaştırılmıştır. Boru hattı işlemcisi, PicoBlaze işlemcisini göre dinamik gücü, maksimum saat hızı, test programı yürütme süresi ve test programı için tüketilen enerji açısından üstünlük sağlamaktadır. Altıncı bölümde, AES için komut setinin genişletilmesinde kullanılan metodoloji anlatılmıştır. Daha sonra AES algoritması fonksiyonları analiz edilip komut setine birçok yeni komut eklenmiştir. Son olarak, yeni komutların sonuçları rapor eldilmiş ve tartışılmıştır. Genişletilmiş komut setinin tasarımında atılan ilk adım AES algoritmasını birkaç bağımsız fonksiyona bölmek olmuştur. Daha sonra algoritma fonksiyonları C dili ile yazılmış ve C dili ile yazılan tüm fonksiyonlar tasarlanan işlemcinin assembly diline çevrilmiştir. Ardından hangi fonksiyonların analiz edileceğine karar verilmiş ve analiz edilecek fonksiyonların kontrol akış grafikleri çizilmiştir. Çizilen kontrol akış grafikleri kullanılarak AES algoritmasının assembly kodu incelenmiştir. Algoritma kodunda birbirine bağlı ve art arda gelen komutlar birleştirilerek ve yazılım problemlerini daha hızlı çözebilen yeni komutlar oluşturarak standart komut setine eklenecek yeni komutlar belirlenmiştir. Komutlar belirlendikten sonra ilk olarak, yeni komutlar Saklayıcı Aktarma Seviyesi (Register Transfer Level - RTL) modelleri olarak oluşturulmuştur. Daha sonra VHDL dilinde tanımlanmış ve işlemcinin aritmetik mantık birimine eklenmiştir. Bundan sonra, davranışsal simülasyon gerçekleştirilerek eklenen komutların işlevselliği doğrulanmış ve programı bitirmek için gerekli saat döngüleri ölçülmüştür. Eklenen komutların, işlemcinin mimari boyutunda önemli bir artış yapmadan AES şifrelemesini bitirmek için gereken süreyi %52'ye ve tüketilen enerjiyi %37'ye düşürdüğü gösterilmiştir.

Özet (Çeviri)

In the last years, there has been a big growth in the demand for portable electronic devices. Most of these devices need to operate on a thrifty energy budget and they must be designed to work under extreme energy constraints for a long time. Also, a lot of smart devices need to communicate with the outer world and with other devices, and all these communications must be secure. These requirements have increased the investments in developing low-power integrated circuits with encryption capabilities. In this thesis, a low-power general purpose processor design is presented. Then the processor design is improved by extending the instruction set with instructions for the Advanced Encryption Standard (AES). In chapter one, many embedded systems architectures for low-power applications are introduced, then in chapter two the Advanced Encryption Standard is explained. In chapter four, the designed processor's instruction set is given, and its architecture is explained in detail. Then the processor architecture is improved by adding many pipeline stages. Pipeline hazards are handled without complicating the processor architecture. In chapter five, both processor designs (the non-pipelined and the pipelined) were tested with simple programs to compare its performances. The pipelined processor showed better results in terms of the required clock cycles to finish test programs, the throughput and the consumed energy. Both processor designs were also compared with the well-known Xilinx PicoBlaze processor. The pipelined processor beat PicoBlaze according to the maximum clock rate and dynamic on chip power. In chapter six, The AES algorithm is implemented in Assembly language and is run on the pipelined processor. Then AES algorithm code is investigated using its control flow graphs. New instructions are added to the standard instruction set by combining related and sequential instructions from the algorithm code and creating new instructions that solves software problems faster. It is showed that the added instructions reduced the required time to finish AES encryption to 52% and the consumed power to 37% without having a significant increase in the architecture size.

Benzer Tezler

  1. FPGA tabanlı sanal işlemci tasarımı ve performans analizi

    FPGA based soft-core processor design and performance analysis

    MUHAMMET ERTUĞRUL ÇAKIR

    Yüksek Lisans

    Türkçe

    Türkçe

    2018

    Elektrik ve Elektronik MühendisliğiAnkara Üniversitesi

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

    PROF. DR. HAKKI GÖKHAN İLK

  2. Design of application specific instruction set processors for the FFT and FHT algorithms

    FFT ve FHT algorıtmaları için uygulamaya özgü komut kümeli işlemci tasarımı

    OĞUZHAN ATAK

    Yüksek Lisans

    İngilizce

    İngilizce

    2006

    Elektrik ve Elektronik Mühendisliğiİhsan Doğramacı Bilkent Üniversitesi

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

    PROF. DR. ABDULLAH ATALAR

  3. İmalat sistemlerinin tasarlanması ve öncelik kurallarının belirlenmesinde yapay sinir ağlarının kullanılması

    Başlık çevirisi yok

    TARIK ÇAKAR

    Doktora

    Türkçe

    Türkçe

    1997

    Mühendislik Bilimleriİstanbul Teknik Üniversitesi

    İşletme Mühendisliği Ana Bilim Dalı

    PROF. DR. AYHAN TORAMAN

  4. Design and implementation of microprocessor-controlled single channel functional electrical stimulator

    Mikroişlemci kontrollü tek kanallı fonksiyonel elektriksel stimülatörün tasarım ve gerçekleştirilmesi

    MEHMET ŞAYAN

    Yüksek Lisans

    İngilizce

    İngilizce

    2000

    Tıbbi BiyolojiBoğaziçi Üniversitesi

    Biyomedikal Mühendisliği Ana Bilim Dalı

    DOÇ. DR. MEHMED ÖZKAN

  5. Robot kollarının adaptif kontrolü

    Adaptive control of robot arms

    K.FATİH DİLAVER