Homework #2
1 Speculation
1. What are the 3 main features of the IA64 architecture for speculation? Describe each of them and explain why they are useful to achieve high performance. Note that such features may not explicitly be named ”speculation” - speculation occurs any time the processor executes instructions which may not be necessary or useful to the program.
- The three main speculation features are predication, control speculation, data speculation
1. Predication : Wrong branch prediction in dynamic scheduling causes major performance issue, due to fact that both paths of branch are executed sequentially (first wrong then right). To overcome this issue IA64 has predication, which is to execute all paths in parallel and cross out wrong ones. In this way, compiler has more room (or codes) to execute in parallel thus use processor resources more efficiently.
2. Control …show more content…
Control speculation : It doesn’t need specific hardware support except 1 bit for NaT in every registers to store deferred exceptions.
3. Data speculation : ALAT table to store loaded registers, addresses and their sized
2 Software Pipelining and Register Model
1. Describe the specific architectural support introduced in IA64 for software pipelining. Explain why it makes software pipelining less expensive and easier.
- IA64 provides 3 main hardware supports. Loop count (LP) register, Epilog count (EP) register, Rotating registers (RRB). The functions of these registers are following
1. Loop count : With this we can keep track of how many loops left
2. Epilog count : When loop is finished, we use this to finish currently executing unfinished loop pipelines.
3. RRB : In each iteration we can rename our register simply using this wheel-like organized registers. So that, software pipelining becomes very easy so that current instruction can eeasily use the result of previous iteration’s result, if we organize (initialize) our registers in loop kind of sequential