Javascript must be enabled to continue!
Studying hardware prefetchers using cache side channels
View through CrossRef
Étude de prefetchers matériels par canal auxiliaire sur le cache
Caches contribuent de façon majeure à la performance des processeurs modernes. Pour réduire le nombre d'accès manquant le cache (cache miss), les fabricants incluent des prefetchers ou, en français, préchargeurs, qui visent à anticiper les requêtes mémoires du processeur. Toutefois, les fabricants ne documentent guère ces préchargeurs, d'où l'intérêt d'en faire la rétro-ingénierie. Ceci intéresse les chercheurs en sécurité autant que la communauté haute performance. Néanmoins, cette rétro-ingénierie est rendue difficile parce que les préchargeurs opèrent sur le cache et sont entrainés par les accès mémoires, moyen principal de mesurer l'état du cache. L'observateur interfère alors avec l'expérience. Pour éviter cela, nous avons cherché à employer un autre canal auxiliaire, Flush+Flush, qui utilise l'instruction clflush. Cette instruction n'est pas un accès mémoire, et n'influence donc pas les préchargeurs. Toutefois, une importante variabilité et un fort bruit nuisent grandement à cette primitive sur les processeurs modernes. Notre première contribution a été d'identifier la source du bruit et de la variabilité comme provenant du réseau d'interconnexion entre les coeurs. Nous avons identifié sa topologie et modélisé les temps d'exécution de clflush, ce qui nous a permis de concevoir un algorithme de calibration qui rend Flush+Flush aussi précise que Flush+Reload. Cette primitive améliorée a rendu notre stratégie originale viable, et nous avons alors atteint notre deuxième contribution. Nous avons développé un outil, CacheObserver, écrit en Rust, qui utilise Flush+Flush pour surveiller l'état du cache dans une région de la mémoire, en réaction a une séquence d'accès mémoires. À l'aide de celui-ci, nous avons mis à jour des comportements jusque-là ignorés du L2 Stream prefetcher des processeurs Intel Whiskey et Coffee Lake. Nous avons aussi montré que ce préchargeur interagit avec l’autre préchargeur de niveau 2 de ces processeurs, le Adjacent Cache Line Prefetcher, préchargeur de ligne de cache adjacente.
Title: Studying hardware prefetchers using cache side channels
Description:
Étude de prefetchers matériels par canal auxiliaire sur le cache
Caches contribuent de façon majeure à la performance des processeurs modernes.
Pour réduire le nombre d'accès manquant le cache (cache miss), les fabricants incluent des prefetchers ou, en français, préchargeurs, qui visent à anticiper les requêtes mémoires du processeur.
Toutefois, les fabricants ne documentent guère ces préchargeurs, d'où l'intérêt d'en faire la rétro-ingénierie.
Ceci intéresse les chercheurs en sécurité autant que la communauté haute performance.
Néanmoins, cette rétro-ingénierie est rendue difficile parce que les préchargeurs opèrent sur le cache et sont entrainés par les accès mémoires, moyen principal de mesurer l'état du cache.
L'observateur interfère alors avec l'expérience.
Pour éviter cela, nous avons cherché à employer un autre canal auxiliaire, Flush+Flush, qui utilise l'instruction clflush.
Cette instruction n'est pas un accès mémoire, et n'influence donc pas les préchargeurs.
Toutefois, une importante variabilité et un fort bruit nuisent grandement à cette primitive sur les processeurs modernes.
Notre première contribution a été d'identifier la source du bruit et de la variabilité comme provenant du réseau d'interconnexion entre les coeurs.
Nous avons identifié sa topologie et modélisé les temps d'exécution de clflush, ce qui nous a permis de concevoir un algorithme de calibration qui rend Flush+Flush aussi précise que Flush+Reload.
Cette primitive améliorée a rendu notre stratégie originale viable, et nous avons alors atteint notre deuxième contribution.
Nous avons développé un outil, CacheObserver, écrit en Rust, qui utilise Flush+Flush pour surveiller l'état du cache dans une région de la mémoire, en réaction a une séquence d'accès mémoires.
À l'aide de celui-ci, nous avons mis à jour des comportements jusque-là ignorés du L2 Stream prefetcher des processeurs Intel Whiskey et Coffee Lake.
Nous avons aussi montré que ce préchargeur interagit avec l’autre préchargeur de niveau 2 de ces processeurs, le Adjacent Cache Line Prefetcher, préchargeur de ligne de cache adjacente.
Related Results
An Efficient Software-Managed Cache Based on Cell Broadband Engine Architecture
An Efficient Software-Managed Cache Based on Cell Broadband Engine Architecture
While the CBEA (Cell Broadband Engine Architecture) offers substantial computational power, its explicit multilevel memory hierarchy poses significant challenges to traditional pro...
VISUALISASI PENGARUH ELEMEN PERANCANGAN CACHE PADA SYMMETRIC MULTIPROCESSORS
VISUALISASI PENGARUH ELEMEN PERANCANGAN CACHE PADA SYMMETRIC MULTIPROCESSORS
[Id]Cache memory merupakan salah satu pokok pembahasan penting dalam matakuliah organisasi dan arsitektur komputer. Akan tetapi, cache tidak dapat diakses dalam proses pembelajaran...
Adjustable block size coherent caches
Adjustable block size coherent caches
Several studies have shown that the performance of coherent caches depends on the relationship between the granularity of sharing and locality exhibited by the program and the cach...
A Hierarchical Cache Architecture-Oriented Cache Management Scheme for Information-Centric Networking
A Hierarchical Cache Architecture-Oriented Cache Management Scheme for Information-Centric Networking
Information-Centric Networking (ICN) typically utilizes DRAM (Dynamic Random Access Memory) to build in-network cache components due to its high data transfer rate and low latency....
On models for performance evaluation and cache resources placement in multi-cache networks
On models for performance evaluation and cache resources placement in multi-cache networks
Sur des modèles pour l'évaluation de performance et le placement des ressources de cache dans les réseaux multi-cache
Au cours des dernières années, les fournisseur...
Software caching techniques and hardware optimizations for on-chip local memories
Software caching techniques and hardware optimizations for on-chip local memories
Despite the fact that the most viable L1 memories in processors are caches,
on-chip local memories have been a great topic of consideration lately. Local
memories are an interest...
Performance simulation methodologies for hardware/software co-designed processors
Performance simulation methodologies for hardware/software co-designed processors
Recently the community started looking into Hardware/Software (HW/SW) co-designed processors as potential solutions to move towards the less power consuming and the less complex de...
Cache Management for Web-Powered Databases
Cache Management for Web-Powered Databases
The Web has become the primary means for information dissemination. It is ideal for publishing data residing in a variety of repositories, such as databases. In such a multi-tier s...

