Dram üzerinde gerçek rastgele sayı üretme mekanizmaları için sistem tasarımı
End-to-end system design for dram-based true random number generators
Yazar: FATMA NİSA BOSTANCI
Danışman: PROF. DR. OĞUZ ERGİN
TOBB Ekonomi ve Teknoloji Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bellek = Memory ; Rastgele sayılar = Random numbers ; Sayı üretici = Number generator

Özet:
Rastgele sayı üretimi kriptografik algoritmalar, bilimsel simülasyonlar ve endüstriyel araçlar gibi birçok uygulama için önemlidir. Gerçek Rastgele Sayı Üreteçleri (GRSÜler) fiziksel entropi kaynaklarını örnekleyerek kriptografik olarak güvenli rastgele sayılar üretmektedir. GRSÜler bu nedenle genellikle fazladan donanıma ihtiyaç duymaktadır ve uzun gecikme sürelerine sahiptir. GRSÜler üzerine yapılan çalışmalarda, yüksek hızla ve düşük gecikmeyle gerçek rastgele sayı üretimini yaygın kullanılan cihazlarda gerçekleştirebilmek için DRAM aygıtlarını entropi kaynağı olarak kullanan mekanizmalar önerilmiştir. Bu çalışmalar, DRAM aygıtları örneklenerek rastgele sayı üretilebileceğini göstermektedir fakat önerilen mekanizmaların gerçek sistemlerde kullanılabilmesi için gereken uçtan uca sistem entegrasyonu birçok zorluğa sahiptir.
DRAM tabanlı GRSÜlerin güncel sistemlerde kullanılabilmesi için aşılması gereken üç temel zorluk tespit etmekteyiz: (1) DRAM tabanlı GRSÜler ile rastgele sayı üretimi, bellek denetleyicisinde asıl bellek istekleri ile rastgele sayı üretimi (RSÜ) istekleri arasında bir çatışma (RSÜ çatışması) oluşturarak tüm sistemin başarımını düşürebilmektedir, (2) bu çatışma yoğun bir biçimde rastgele sayı kullanan uygulamaların (GRSÜ uygulamalarının) önceliklendirilmesine sebep olarak sistem adilliğini düşürebilmektedir ve (3) DRAM tabanlı GRSÜlerin gecikmeleri nedeniyle GRSÜ uygulamalarında ciddi başarım kayıpları gözlemlenebilmektedir.
Bu zorlukları aşmak için  DR-STRaNGE 'i geliştirmekteyiz. DR-STRaNGE, (1) RSÜ istekleri ile bellek isteklerini bellek denetleyicisinde ayırarak RSÜ çatışmasını azaltan, (2) RSÜ isteklerinin farkında olan bir GRSÜ bellek istek planlayıcı ile sistem adilliğini artıran ve (3) DRAM kanallarında atıl çevrimleri öngören bir mekanizma kullanılarak doldurulan bir rastgele sayı arabelleği ile yüksek GRSÜ gecikmelerini saklayan bir sistem tasarımıdır.  
DR-STRaNGE 'i, 186 farklı çoklu programlanmış iş yükü kullanarak değerlendirmekteyiz. Deneysel değerlendirmelerimiz sonucunda, DRAM aygıtlarında rastgele sayı üretimini yoksayan sistemlere kıyasla uçtan uca sistem tasarımımızın, GRSÜ ve GRSÜ olmayan uygulamalarda ortalama sistem performansını sırasıyla %25.1 ve %17.9 artırdığını ve 5 Gb/s hızla gerçek rastgele sayı üretirken ortalama sistem adilliğini %32.1 artırdığını göstermekteyiz. DR-STRaNGE'in GRSÜ ve GRSÜ olmayan bellek işlemlerinde harcanan süreyi %15.8 azalttığı için DRAM aygıtlarında rastgele sayı üretimini yoksayan sistemlere kıyasla enerji tüketimini %21 azalttığını göstermekteyiz.

Abstract:
Random number generation is an important task in a wide variety of critical applications including cryptographic algorithms, scientific simulations, and industrial testing tools. True Random Number Generators (TRNGs) produce cryptographically-secure truly random data by sampling a physical entropy source that typically requires custom hardware and suffers from long latency. To enable high-bandwidth and low-latency TRNGs on widely-available commodity devices, recent works propose hardware TRNGs that generate random numbers using commodity DRAM as an entropy source. Although prior works demonstrate promising TRNG mechanisms using DRAM, practical integration of such mechanisms into real systems poses various challenges. 
We identify three key challenges for using DRAM-based TRNGs in current systems: (1) generating random numbers with DRAM-based TRNGs can degrade overall system performance by slowing down concurrently-running applications due to the interference between RNG and regular memory operations in the memory controller (i.e., RNG interference), (2) this RNG interference can degrade system fairness by causing unfair prioritization of applications that intensively use random numbers (i.e., RNG applications), and (3) RNG applications can experience significant slowdown due to the high latency of DRAM-based TRNGs.
To address these challenges, we propose DR-STRaNGe, an end-to-end system design for DRAM-based TRNGs that (1) reduces the RNG interference by separating RNG requests from regular memory requests in the memory controller, (2) improves fairness across applications with an RNG-aware memory request scheduler, and (3) hides the large TRNG latencies using a random number buffering mechanism combined with a new DRAM idleness predictor that accurately identifies idle DRAM periods.
We evaluate DR-STRaNGe using a comprehensive set of 186 multi-programmed workloads. Compared to an RNG-oblivious baseline system, DR-STRaNGe improves the performance of non-RNG and RNG applications on average by 17.9% and 25.1%, respectively. DR-STRaNGe improves system fairness by 32.1% on average when generating random numbers at a 5 Gb/s throughput. DR-STRaNGe reduces energy consumption by 21% compared to the RNG-oblivious baseline design by reducing the time spent for RNG and non-RNG memory accesses by 15.8%.