Saturday, June 1, 2019

Simultaneous Multithreading :: Threads Caches Hyper Threading Essays

Simultaneous MultithreadingSimultaneous multithreading put simply, the shar-ing of the carrying into action resources of a superscalar processor betweenmultiple execution threads has recently become widespread viaits introduction (under the name Hyper-Threading) into IntelPentium 4 processors. In this implementation, for reasons of ef-ficiency and economy of processor area, the sharing of processorresources between threads extends beyond the execution units ofparticular meet is that the threads share access to the memorycaches.We demonstrate that this shared access to memory caches pro-vides not only an easily used high bandwidth covert channel be-tween threads, provided also permits a malicious thread (operating, intheory, with limited privileges) to monitor the execution of anotherthread, allowing in many cases for theft of cryptographic keys.Finally, we provide some suggestions to processor designers, op-erating strategy vendors, and the authors of cryptographic software,o f how this attack could be mitigated or eliminated entirely.1. IntroductionAs integrated circuit fabrication technologies have improved, provid-ing not only faster transistors but smaller transistors, processor design-ers have been met with two critical challenges. First, memory latencieshave increased dramatically in relative terms and second, while it iseasy to spend extra transistors on building special execution units,many programs have fairly limited instruction-level parallelism, whichlimits the extent to which additional execution resources can be uti-lized. Caches provide a partial solution to the first problem, whileout-of-order execution provides a partial solution to the second.In 1995, coincident multithreading was revived1in order to com-bat these two difficulties 12. Where out-of-order execution allows instruction manual to be reordered ( reduce to maintaining architectural se-mantics) within a narrow window of perhaps a hundred instructions,Key words and phrases. Si de channels, simultaneous multithreading, caching.1Simultaneous multithreading had existed since at least 1974 in theory 10, evenif it had not yet been shown to be practically feasible.--------------------------------------------------------------------------------Page 2 simultaneous multithreading allows instructions to be reordered acrossthreads that is, rather than having the operating system perform con-text switches between two threads, it can schedule both threads simul-taneously on the same processor, and instructions will be interleaved,dramatically increasing the utilization of existing execution resources.On the 2.8 GHz Intel Pentium 4 with Hyper-Threading processor,with which the remainder of this paper is concerned2, the two threadsbeing executed on each processor share more than merely the execu-tion units of particular concern to us, they share access to the memorycaches 8. Caches have already been demonstrated to be cryptograph-ically dangerous Many implementations of AES 9 are subject to tim-ing attacks arising from the non-constancy of S-box lookup timings 1.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.