Çok çekirdekli görev-kritik işlemciler için önbellek tasarımı ve gerçeklenmesi
Cache design and implementation for mission-criticalmulticore processors
Yazar: MERT ATAMANER
Danışman: PROF. OĞUZ ERGİN
TOBB Ekonomi ve Teknoloji Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2020
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bellek hataları = Memory errors ; Bilgisayar donanımları = Hardware ; Siber güvenlik = Cyber security ; Veri güvenliği = Data security

Özet:
Çok çekirdekli sistemlerde paralel çalı¸smaya ba˘glı olarak performansı optimize etmek
için çekirdeklere özgü ilk düzey önbellekler ve payla¸sımlı üst düzey önbellekler
bulunmaktadır. Çekirdeklere özgü önbelleklerin varlı˘gı kullanılan verilerin aynı adresteki
veriler olmasına ba˘glı olarak tutarlılık sorununu olu¸sturmaktadır. Modern sistemler
bu sorunu tutarlılık protokolleri kullanarak çözmektedir. Tutarlılık protokollerinden
MESI ve MOESI, günümüz sistemlerinde en çok kullanılan protokollerdendir. Bu
protokoller tutarlılık sorununu ba¸sarılı bir ¸sekilde çözmelerine kar¸sın farklı amaçlarla
da sistemde kullanılabilmektedir. Tez kapsamında tutarlılık etiketleri kullanılarak hata
düzeltimi yapılabilece˘gi gösterilmi¸stir. Çekirde˘ge özgü önbelleklerde hata oldu˘gu zaman
hata düzeltme kodu kullanmak boru hattı ile iç içe olduklarından hız gereksinimini
kar¸sılamamaktadır. Güncel i¸slemcilerde bu önbellekler e¸slik bitleriyle ve hata olu¸sunca
sistemi geri alma yöntemiyle korunmaktadır. Önerilen mekanizma ise var olan tutarlılık
altyapısının kullanılarak hataları hızlı bir ¸sekilde düzeltmeyi amaçlamaktadır. Payla¸sımlı
tutarlılık etiketine sahip önbellek satırlarını takip eden dizin(ler) yardımıyla, hata
olu¸san önbelleklerdeki verileri düzeltmek mümkündür. Yapılan çalı¸smalar ı¸sı˘gında bu
mekanizma kullanılarak programların dörtte birine kadar kısmını koruma altına almak
mümkündür ve bu mekanizmanın kullanılamayaca˘gı bir an neredeyse hiç olu¸smamaktadır.
Hata düzeltiminin yanında, Yao vd., tutarlılık etiketlerinin güvenlik açı˘gı yarattı˘gını
ortaya koymu¸stur [1]. Buna göre "S" ve "E" etiketlerine yapılan eri¸simlerin deterministik
olarak ayrı¸stırılabilir olması, sistemde çalı¸san ajan ve truva atı uygulamalarının bir
zamanla yan kanalı olu¸sturarak aralarında seri haberle¸smesini mümkün kılmaktadır.
˙Ileti¸sim, KSM(kernel same page merging)'nin çalı¸smasına ba˘glı olarak kullanılabilmektedir
ve bu uygulamanın kullanılmaması performansı ciddi ölçüde etkilemektedir. Bu
çalı¸sma, tutarlılık etiketi kullanılarak olu¸sturulacak yan kanalları engellemek için
KSM'nin kapatılmasına gerek olmayan bir çözüm öne sürmektedir. Önbellek satırlarına
arka arkaya gelen yükle buyruklarını takip ederek ileti¸sime gürültü ekleyen bu yöntem,
gönderilen bitlerin %90'ını bozabilecek kapasitede iken, en kötü ko¸sullar altında
yakla¸sık %15, en iyi durumda %2 yürütme zamanı ekleyerek programın performansını
dü¸sürmektedir.

[1] Yao, F., Doroslovacki, M., and Venkataramani, G. (2018). Are Coherence Protocol
States Vulnerable to Information Leakage? In: IEEE International Symposium
on High Performance Computer Architecture, HPCA 2018, Vienna, Austria,
February 24-28, 2018. IEEE Computer Society, pp. 168–179.

Abstract:
Mutlicore architecutres optimizes the performance and energy overhead by using private
and shared caches in the memory hierarchy. Different cores having private caches
introduces coherency problem in between different cores. Modern systems employ a
coherence protocol scheme into the system to tackle this problem. Two of the most used
protocols today are MOESI and MESI protocols. These protocols solve the coherency
problem efficiently, however recently it was shown that these protocols can be exploited
or used for different purposes. Thesis includes a such a scheme that uses MOESI
labels for error correction. Private caches are closely connected to the pipeline and
thus requires to be fast. Because of this fact, modern CPUs do not use ECC in private
caches(L1). Instead, parity bits are checked for errors and if an error occurs systems
crash or are reload to a safe state. Proposed mechanism suggests an alternative for using
ECC while being fast enough for pipeline utilizing coherency labels. Shared labeled
cache blocks imply that there is at least one other copy of the same data in another L1
cache, and it can be used to reload when a parity bit of such cache blocks imply error.
In this thesis, it is shown that it is possible to protect a program during one fourth of its
lifetime.
Yao et al., reports that coherency protocols can also be exploited to create timing
side channels. Since the accesses to shared and exclusive labeled cache blocks takes
deterministically distinguishable time, it enables a spy-trojan pair to serially communicate
by only measuring the access times to such cache blocks [1]. This communication
is made possible by KSM(kernel same page merging) and disabling KSM incurs a
significant performance loss. This work proposes a new scheme to prevent communicating
through this side channel without the need of disabling KSM. Since the communication
depends on back-to-back load operations, it is possible to track and monitor loads to the
same cacheblock and introduce noise to the side channel. It is shown that it is possible
to disrupt up to %90 of the communication while increasing the runtime %2 to %15.

[1] Yao, F., Doroslovacki, M., and Venkataramani, G. (2018). Are Coherence Protocol
States Vulnerable to Information Leakage? In: IEEE International Symposium
on High Performance Computer Architecture, HPCA 2018, Vienna, Austria,
February 24-28, 2018. IEEE Computer Society, pp. 168–179.