 |
|
|
|
|
6.8.4 I/O Effects |
|
|
|
| |
 |
|
|
|
|
6.8.5 Performance Effects |
|
|
|
| |
 |
|
|
|
|
6.8.6 Copyback Cache Study |
|
|
|
| |
 |
|
|
|
|
6.8.7 Simple Write-Through Caches |
|
|
|
| |
 |
|
|
|
|
6.8.8 Write-Through Cache Example |
|
|
|
| |
 |
|
|
|
|
6.8.9 Shared Bus |
|
|
|
| |
 |
|
|
|
|
6.8.10 Nonblocking Caches |
|
|
|
| |
 |
|
|
|
|
6.8.11 Interleaved Caches |
|
|
|
| |
 |
|
|
|
|
6.9 Conclusions |
|
|
|
| |
 |
|
|
|
|
6.10 Some Areas for Further Research |
|
|
|
| |
 |
|
|
|
|
6.11 Data Notes |
|
|
|
| |
 |
|
|
|
|
6.12 Annotated Bibliography |
|
|
|
| |
 |
|
|
|
|
6.13 Problem Set |
|
|
|
| |
| |
 |
|
|
|
|
7.1 Introduction |
|
|
|
| |
 |
|
|
|
|
7.2 Vector Processors |
|
|
|
| |
 |
|
|
|
|
7.2.1 Vector Functional Units |
|
|
|
| |
 |
|
|
|
|
7.2.2 Vector Instructions/Operations |
|
|
|
| |
 |
|
|
|
|
7.2.3 Vector Processor Implementation |
|
|
|
| |
 |
|
|
|
|
7.2.4 A Generic Vector Processor |
|
|
|
| |
 |
|
|
|
|
7.3 Vector Memory |
|
|
|
| |
 |
|
|
|
|
7.3.1 The Special Case of Vector Memory |
|
|
|
| |
 |
|
|
|
|
7.3.2 Modeling Vector Memory Performance |
|
|
|
| |
 |
|
|
|
|
7.3.3 Gamma (g)-Binomial Model |
|
|
|
| |
 |
|
|
|
|
7.3.4 Bypassing between Vector Instructions |
|
|
|
| |
 |
|
|
|
|
7.4 Vector Processor Speedup |
|
|
|
| |
 |
|
|
|
|
7.4.1 Basic Issues |
|
|
|
| |
 |
|
|
|
|
7.4.2 Measures |
|
|
|
| |
 |
|
|
|
|
7.5 Multiple-Issue Machines |
|
|
|
| |
 |
|
|
|
|
7.6 Out-of-Order and Multiple-Instruction Execution |
|
|
|
| |
 |
|
|
|
|
7.6.1 Data Dependencies |
|
|
|
| |
 |
|
|
|
|
7.6.2 Representing Data Dependencies |
|
|
|
| |
 |
|
|
|
|
7.6.3 Other Types of Dependencies |
|
|
|
| |
 |
|
|
|
|
7.6.4 When and How to Detect Instruction Concurrency |
|
|
|
| |
 |
|
|
|
|
7.6.5 Two Scheduling Implementations |
|
|
|
| |
 |
|
|
|
|
7.6.6 An Improved Scoreboard |
|
|
|
| |
 |
|
|
|
|
7.6.7 Dealing with Out-of-Order Execution |
|
|
|
| |
 |
|
|
|
|
7.6.8 Interleaved Caches |
|
|
|
| |
 |
|
|
|
|
7.6.9 Branches and Speculative Execution |
|
|
|
| |