By exploiting the speculative execution of modern processors, spectre attack can trick the system into executing instructions that are not supposed to. Architecture of the hewlettpackards pa8200 processor. A handson approach utilizing the 80x86 microprocessor family 3rd edition computer organization and design, fourth edition. Branch prediction is a type of speculative execution. Until now, there were few textbooks that focused on the dynamic subject of speculative execution, a topic that is crucial to the development of. These modifications are layered on top of the sanctum secure processor architecture that offers strong provable isolation of software modules running concurrently and sharing resources.
If the compiler did not hoist that code then there is a compiler bug, not an architecture problem. Ooo execution is an execution model in which instructions can be executed in an order that is potentially different from the program order. Swarup bhunia, mark tehranipoor, in hardware security, 2019. However, there has been no reference book so far that attempts to summarize and. Speculation also known as speculative loading, is a process implemented in explicitly parallel instruction computing epic processors and their compiler s to reduce processormemory exchanging bottlenecks or latency by putting all the data into memory in advance of an actual load instruction. Its the oldest story in technology and perhaps in human existence. May 16, 2019 every single highend cpu architecture today amd, arm, ibm, intel, sparc uses outoforder execution. Emphasizing both underlying theory and actual designs, the book covers a wide array of topics and links computer architecture to other subfields of computing. Description structured computer organization, specifically written for undergraduate students, is a bestselling guide that provides an accessible introduction to computer hardware and architecture. Speculative execution in modern computer architectures. Introduction 11 it deals with data path design and data ow control concepts and introduces the need of microoperations for a processor. Spring 2020 cs3853 computer architecture speculative execution and security 39 speculative execution is an optimization technique where a computer system performs some task that may not be needed or should not be executed. Listen up, you computer nerds and programmming cattle. Intel analysis of speculative execution side channels.
Jan 04, 2018 were all getting quite the lesson in speculative execution today, and why faster isnt always better. Speculative execution plays a key role in the meltdown and spectre attacks. Speculative execution in high performance computer architectures describes many recent advances in speculative exec. A meltdown in computer architecture, as spectre haunts intel. Computer architecture download ebook pdf, epub, tuebl, mobi. This approach is different than that taken in any other computer architecture text, and it is a bold step. This vulnerability is a variant of the spectre variant 1 speculative execution side channel vulnerability and has been assigned cve20191125. Speculative execution in high performance computer. Work is done before it is known whether it is actually needed, so as to prevent a delay that would have to be incurred by doing the work after it is known that it is needed. Computer systems, computer programming, computer science book 1 introduction to the intel family of microprocessors. Speculative execution an overview sciencedirect topics. Amazon unveils new fire hd 8 tablet with faster processor, usbc may. Speculative execution is not really about computer machine architecture at all. Ece 4750 computer architecture, fall 2019 course syllabus.
In a race to make things faster and better and stronger, weve once again stumbled into danger, or flown too close to the sun. Computer architecture books meet your next favorite book. All that is technically meant by the term is that the execution of machine instructions on a computer is not actually intended to be all that secure or reliable. Aws recently published aws security bulletin aws20180 for the newly disclosed research regarding sidechannel analysis via speculative execution on modern computer processors. Speculative execution in high performance computer architectures describes many recent advances in speculative execution techniques. Note that speculative execution can be applied even if there isnt an actual conditional branch in the code. Almost none of the major computer architecture conferences in recent years can go without including some papers touched on the subject of speculative execution. Speculative execution is an optimization technique where a computer system performs some. Data speculation refers to the execution of an instruction before some logically. The spear speculative preexecution assisted by compiler is a further variation of the hidisc architecture. And speculative execution, while implemented differently from company to company, is.
A technique allows a superscalar processor to keep its functional units as busy as possible by executing instructions before it is known that they will be needed. It covers cuttingedge research projects, as well as numerous commercial implementations that demonstrate the value of this latencyhiding technique. We define boosting, an architectural mechanism for speculative execution, that allows us to uncover. Processors can take more risks with instruction ordering when it comes to execution because, if things dont work out as planned, they can roll. Incidentally, the purpose of the mill deferred load facility is to mask the l1 and l2 latencies, not to mask the dram latency. If youre looking for a free download links of inside the machine. The first book to describe some of the speculative execution techniques used to overcome performance problems in modern computer architectures, this book discusses research projects and commercial. Intel analysis of speculative execution side channels download pdf white paper.
To me, outoforder execution is a form of speculative execution speculating that the inflight insts wont have side effects relevant to the new insts. Processor speculative execution operating system updates aws recently published aws security bulletin aws20180 for the newly disclosed research regarding sidechannel analysis via speculative execution on modern computer processors. By exploiting the speculative execution of modern processors, spectre attack can trick the system into executing instructions that are not supposed to be executed given the current system state 22. The concept behind speculative execution is that instructions are executed ahead of knowing that they are required. An illustrated introduction to microprocessors and computer architecture pdf, epub, docx and torrent then this site is not for you. Every single highend cpu architecture today amd, arm, ibm, intel, sparc uses outoforder execution. This book examines computer architecture, computability theory, and the history of computers from the perspective of minimalist computing a framework in which the instruction set consists of a single instruction. Speculative execution and outoforder execution are orthogonal. The next chapter, chapter 10, uses selection from computer architecture and organization book. We have developed projects with institutional organisations including the queensland government, brisbane city council, museum of brisbane. This exploit, coupled with a sidechannel attack, can lead to the exposure and theft of critical secret information.
The spear speculative pre execution assisted by compiler is a further variation of the hidisc architecture. Sep 26, 2014 if the compiler did not hoist that code then there is a compiler bug, not an architecture problem. Speculative architecture is a collaborative studio practice, led by dirk yates, that specialises in the design and delivery of public and educational buildings. A meltdown in computer architecture, as spectre haunts. When they generate code, compilers take a best guess at the best order for instructions but have to err on the safe side. Speculative execution is extensive in modern processors. Until now, there were few textbooks that focused on the dynamic subject of speculative execution, a topic that is crucial to the development of high performance computer architectures. Speculative execution in highperformance computer architectures. In general, the optimizations discussed in this chapter focus on avoiding the overhead associated with a branch.
Chen, and jason flinn department of electrical engineering and computer science university of michigan abstract speculator provides linux kernel support for speculative execution. Jan 22, 2018 speculative execution plays a key role in the meltdown and spectre attacks. Speculative execution article about speculative execution. All that is technically meant by the term is that the execution of machine instructions on a computer is not actually intended to. It allows multiple processes to share speculative state. Another form of spec exec is branch prediction, another is walking the page tables ahead of time. From microprocessors to supercomputers provides a comprehensive introduction to this thriving and exciting field. Predication and speculation department of computer. Speculative execution arvind computer science and artificial intelligence laboratory m. Well have compiler bugs for sure i write compilers but we fix them.
May 14, 2019 this vulnerability is a variant of the spectre variant 1 speculative execution side channel vulnerability and has been assigned cve20191125. Pipelining 387 next two stages, indicated as trace cache fetch gathers the decoded microoperations guided by branch prediction strategy from the instruction decoder and places in sequence of selection from computer architecture and organization book. Speculative execution goes one step further and determines what the result would be from executing the next instructions. Speculative execution in high performance computer architectures. It is developed to use the benefit of prefetching capability of the hidisc on the current multithreaded processors such as simultaneous multithreading or chip multiprocessor. At this stage the processor has two choices, either wait for the preceding instructions to complete and incur a huge.
Outoforder execution an overview sciencedirect topics. Computer architecture and parallel processing guide books. While speculative execution never hurts performance, it can be poorly utilized by software, leading to a high performance opportunity cost, that is, the performance that could have been achieved had the code been tuned better. One could design a processor this ooo but not speculative or speculative but inorder. Palnitkar prentice hall, 2003 provides a good introduction to verilog2001 well suited for the beginner. Part of the lecture notes in computer science book series lncs, volume 0. Speculative execution is an optimization technique where a computer system performs some task that may not be needed. This text will also serve as a useful resource for all computer professionals and engineers who need an overview or introduction to computer architecture. Speculative execution in a distributed file system edmund b. If the branch prediction was correct, the result is used, otherwise it is discarded. On july 9, 2019 we released security updates for the windows operating system to help mitigate this issue. Were all getting quite the lesson in speculative execution today, and why faster isnt always better.
Technically, ooo is the ability to move execution between different dependency chains, so skipping an inst and moving to the next one. Every single highend cpu architecture today amd, arm, ibm. Spring 2020 cs3853 computer architecture speculative execution and security 34 speculative execution is an optimization technique where a computer system performs some task that may not be needed or should not be executed. Ece 4750 computer architecture, fall 2019 course syllabus verilog book verilog hdl. Provide many instructions provide many addressing modes. Decoupled memory access architectures with speculative pre. Provides an analysis of speculative execution security risks based on sidechannel analysis methods documented by. Parts of the computer and microprocessor programming fundamentals arithmetic instructions, memory accesses, control flow instructions, and data types intermediate and advanced microprocessor concepts branch prediction and speculative execution. Warter n, chang p, mahlke s, chen w and hwu w 1995 three architectural models for compilercontrolled speculative execution, ieee transactions on computers, 44.
524 565 1446 585 146 36 559 725 887 461 166 441 584 380 420 187 1413 434 89 174 126 1403 72 396 736 362 595 703 149 18 910 530 1222 598 1387 1372