Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi Buse Ustaoğlu Berna Örs Yalçın
İçerik Giriş Çalişmanın Amacı Mikroişlemciye Hata Enjekte Etme Adımları Hata Üreteci Devresi Rastgele Sayı Üreteci Hata Yeri Belirleme Devresi Hata Türü Belirleme Devresi Hata Karar Bloğu Kaydedicilere Gelen Hata Analizleri Belirli bir yazmaca gelen hatanın incelenmesi Rastgele bir yazmaca gelen hatanın incelenmesi Sentez Çıktıları Sonuçlar Kaynaklar
Giriş Günümüzde sayısal sistemler VHDL, Verilog gibi yaygın olarak kullanılan donanım tanımlama dilleri ile tasarlanır. Bu sistemler beklenilen şekilde çalışması için güvenilir olarak gerçeklenmelidir. Bu sistemler gerçek bir donanıma dönüştürülmeden önce test edilebilir olması gerekmektedir. Karmaşık devrelerin yapıtaşı olan mikroişlemciler sayısal sistemlerin önemli bir bölümünü oluşturur. Özellikle büyük sistemlerin içerisinde kullanılan mikroişlemcilerde oluşabilecek bir hata tüm sistemi etkiler.
Çalışmanın Amacı Test edilebilirlik kapasitesi sistemin beklenilen şekilde çalışabilmesi için tasarım değişikliklerinin yapılabilmesini sağladığından çalışmada amaç; açık kaynak kodlu indirgenmiş komut takımı bilgisayarı yapısında olan aritmetik ve mantıksal işlemlerin kaydediciler üzerinden yapılan donanım tanımlama dili ile tasarlanmış bir mikroişlemcinin genel amaçlı kaydedicilerinde tek bitlik takılı kalma hata türleri oluşturarak sistem davranışını gözlemlemektir.
Mikroişlemciye Hata Enjekte Etme Adımları Sistemin davranışsal simülasyon analizlerinin yapılması ve test çıktılarının alınması
Natalius Mikroişlemcisi 8 bit ALU 8x8 genel amaçlı kaydedici 8 bitlik adres portu Sıfır ve elde bayrağı 16x11 yığın bellek 2048 adet 16 bitlik komut depolama 30 adet komut kümesi 3 saatlik komut periyodu
Hata Üreteci Devresi
Rastgele Sayı Üreteci Devresi Euler Yöntemi ile ayrıklaştırma Sürekli zaman denklemi α : Çatallaşma τ : Gecikme Ts :Örnekleme periyodu Ayrık zaman denklemi dt : iterasyon adımı M : τ nin ayrık zamandaki karşılığı Hata türü Hata yeri Hata karar
Hata Karar Devresi
Hata Yeri Belirleme Devresi 8x8 lik yazmaç dosyasının bir bitine karşılık gelir. Hata yeri 6 bit genişliğinde bir sayıdır. 3 er bit olarak gruplanıp iki boyuta aktarılır. 26 011010 SATIR:011 SÜTUN: 010 (Ondalık) (İkili) r7 r6 r5 r4 r3 r2 r1 r0 İşlemci 8x8 lik yazmaç dosyası Bitler 111 110 101 100 011 010 001 000
Hata Türü Belirleme Devresi Oluşabilecek hata türleri Hata üretim devresi test sonuçları
Mikroişlemciye Hata Enjekte Etmek için Yapılan Tasarım Değişiklikleri Orjinal mikroişlemci blok diyagramı Hata girişleri eklenmiş mikroişlemci blok diyagramı Orjinal kaydedici dosyası blok diyagramı Hata girişleri eklenmiş kaydedici dosyası blok diyagramı
Çarpıcı Algoritması ve Kodu En anlamlı bit ilk (MSB first) algoritması kullanılmıştır. Sonuçlar 8 bit yani kaydedici genişliğindedir. 4 bitlik sayıların karesi alınarak çarpım sonuçları analiz edilmiştir.
Belirli Bir Yazmaca Gelen Hatanın İncelenmesi Belirli bir yazmaca gelen hatalı ve hatasız çarpım sonucu %50 oranında geçici hatada yazmacın beklenen hata oranı Çarpım sonucu doğruluk oranları
Rastgele Bir Yazmaca Gelen Hatanın İncelenmesi Maskelenmiş hata Maskelenmemiş hata
Sentez Çıktıları Devreler Xilinx Spartan-3e500 kartı seçilerek, ISE 13.2 versiyonunda sentezlenmiştir. Hata üreteci alan kullanımı Orijinal işlemci alan kullanımı
Sentez Çıktıları Hata girişleri eklenmiş işlemci alan kullanımı Mikroişlemci ve hata üretim devresini içinde barındıran çarpıcı sistemi alan kullanımı
Sonuçlar Basit tasarım değişiklikleriyle mikroişlemciye hata enjekte etmek mümkün olmaktadır. Belirli bir yazmaca gelen ve değeri sürekli değişen bir yazmaca gelen hatanın çarpım sonuçları, hata sinyalinin oranıyla benzerlik göstermektedir. Rastgele bir yazmaca gelen tek bitlik hataların bazıları maskelenip sistemi etkilememiş bazıları ise etkilemiştir. Sentez sonuçlarına göre Hata Üreteci Devresi az alan kapladığından tüm sistemdeki maliyeti düşük olmaktadır. Gelecek çalışmalarda gelişmiş mikroişlemcilerin herhangi bir bölgesinde ve çoklu oluşabilecek hataları incelemek için temel oluşturulmuştur.
Kaynaklar Lala, P., "Transient and Permanent Fault Injection in VHDL Description of Digital Circuits", Scientific Research, Cilt No., 192-199, 2012. Dubrova, E., Fault Tolerant Design, Springer, New York, 2013. Nurmi, J., Processor Design, Springer, New York, 2013. Sorin, D.H., Fault Tolerant Computer Architecture, Morgan and Claypol Publishers, Madison, 2009. Natalius 8 bit RISC [Online]. Available: http://opencores.org/project,natalius_8bit_risc Yeniçeri, R., Ustaoğlu, B., and Yalçın M.E "Throughput Enhancement for a New Time-delay Sampled-data Based True Random Bit Generator", European Conference on Circuit Theory and Design, 2013, 1-4.
TEŞEKKÜR Bu çalışmayı destekleyen Anka Mikroelektronik Sistemler e (ANKASYS) teşekkürlerimi sunarım.