Preface |
|
xi | |
|
Introduction to Computer Systems |
|
|
1 | (14) |
|
|
2 | (2) |
|
Architectural Development and Styles |
|
|
4 | (1) |
|
Technological Development |
|
|
5 | (1) |
|
|
6 | (5) |
|
|
11 | (4) |
|
|
12 | (2) |
|
References and Further Reading |
|
|
14 | (1) |
|
Instruction Set Architecture and Design |
|
|
15 | (22) |
|
Memory Locations and Operations |
|
|
15 | (3) |
|
|
18 | (8) |
|
|
26 | (5) |
|
|
31 | (2) |
|
|
33 | (4) |
|
|
34 | (1) |
|
References and Further Reading |
|
|
35 | (2) |
|
Assembly Language Programming |
|
|
37 | (22) |
|
|
38 | (2) |
|
Instructions Mnemonics and Syntax |
|
|
40 | (3) |
|
Assembler Directives and Commands |
|
|
43 | (1) |
|
Assembly and Execution of Programs |
|
|
44 | (3) |
|
|
47 | (8) |
|
|
55 | (4) |
|
|
56 | (1) |
|
References and Further Reading |
|
|
57 | (2) |
|
|
59 | (24) |
|
|
59 | (4) |
|
|
63 | (11) |
|
Floating-Point Arithmetic |
|
|
74 | (5) |
|
|
79 | (4) |
|
|
79 | (2) |
|
References and Further Reading |
|
|
81 | (2) |
|
|
83 | (24) |
|
|
83 | (2) |
|
|
85 | (4) |
|
|
89 | (2) |
|
|
91 | (4) |
|
|
95 | (9) |
|
|
104 | (3) |
|
|
104 | (2) |
|
|
106 | (1) |
|
|
107 | (28) |
|
|
107 | (2) |
|
|
109 | (21) |
|
|
130 | (5) |
|
|
131 | (2) |
|
References and Further Reading |
|
|
133 | (2) |
|
|
135 | (26) |
|
|
135 | (7) |
|
|
142 | (14) |
|
|
156 | (2) |
|
|
158 | (3) |
|
|
158 | (2) |
|
References and Further Reading |
|
|
160 | (1) |
|
Input--Output Design and Organization |
|
|
161 | (24) |
|
|
162 | (2) |
|
|
164 | (3) |
|
|
167 | (8) |
|
Direct Memory Access (DMA) |
|
|
175 | (2) |
|
|
177 | (4) |
|
|
181 | (1) |
|
|
182 | (3) |
|
|
183 | (1) |
|
References and Further Reading |
|
|
183 | (2) |
|
Pipelining Design Techniques |
|
|
185 | (30) |
|
|
185 | (2) |
|
|
187 | (14) |
|
Example Pipeline Processors |
|
|
201 | (6) |
|
Instruction-Level Parallelism |
|
|
207 | (2) |
|
|
209 | (4) |
|
|
213 | (2) |
|
|
213 | (2) |
|
References and Further Reading |
|
|
215 | (1) |
|
Reduced Instruction Set Computers (RISCs) |
|
|
215 | (20) |
|
RISC/CISC Evolution Cycle |
|
|
217 | (1) |
|
|
218 | (2) |
|
Overlapped Register Windows |
|
|
220 | (1) |
|
|
221 | (2) |
|
Pioneer (University) RISC Machines |
|
|
223 | (4) |
|
Example of Advanced RISC Machines |
|
|
227 | (5) |
|
|
232 | (3) |
|
|
233 | (1) |
|
References and Further Reading |
|
|
233 | (2) |
|
Introduction to Multiprocessors |
|
|
235 | (24) |
|
|
235 | (1) |
|
Classification of Computer Architectures |
|
|
236 | (8) |
|
|
244 | (2) |
|
|
246 | (6) |
|
|
252 | (2) |
|
Analysis and Performance Metrics |
|
|
254 | (1) |
|
|
254 | (5) |
|
|
255 | (1) |
|
References and Further Reading |
|
|
256 | (3) |
Index |
|
259 | (8) |
|
Introduction to Advanced Computer Architecture and Parallel Processing |
|
|
1 | (18) |
|
Four Decades of Computing |
|
|
2 | (2) |
|
Flynn's Taxonomy of Computer Architecture |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
6 | (5) |
|
|
11 | (4) |
|
|
15 | (4) |
|
|
16 | (1) |
|
|
17 | (2) |
|
Multiprocessors Interconnection Networks |
|
|
19 | (32) |
|
Interconnection Networks Taxonomy |
|
|
19 | (1) |
|
Bus-Based Dynamic Interconnection Networks |
|
|
20 | (4) |
|
Switch-Based Interconnection Networks |
|
|
24 | (9) |
|
Static Interconnection Networks |
|
|
33 | (8) |
|
Analysis and Performance Metrics |
|
|
41 | (4) |
|
|
45 | (6) |
|
|
46 | (2) |
|
|
48 | (3) |
|
Performance Analysis of Multiprocessor Architecture |
|
|
51 | (26) |
|
|
51 | (4) |
|
An Argument for Parallel Architectures |
|
|
55 | (3) |
|
Interconnection Networks Performance Issues |
|
|
58 | (5) |
|
Scalability of Parallel Architectures |
|
|
63 | (4) |
|
|
67 | (5) |
|
|
72 | (5) |
|
|
73 | (1) |
|
|
74 | (3) |
|
Shared Memory Architecture |
|
|
77 | (26) |
|
Classification of Shared Memory Systems |
|
|
78 | (2) |
|
Bus-Based Symmetric Multiprocessors |
|
|
80 | (1) |
|
Basic Cache Coherency Methods |
|
|
81 | (2) |
|
|
83 | (6) |
|
Directory Based Protocols |
|
|
89 | (7) |
|
Shared Memory Programming |
|
|
96 | (3) |
|
|
99 | (4) |
|
|
100 | (1) |
|
|
101 | (2) |
|
Message Passing Architecture |
|
|
103 | (24) |
|
Introduction to Message Passing |
|
|
103 | (2) |
|
Routing in Message Passing Networks |
|
|
105 | (4) |
|
Switching Mechanisms in Message Passing |
|
|
109 | (5) |
|
Message Passing Programming Models |
|
|
114 | (3) |
|
Processor Support for Message Passing |
|
|
117 | (1) |
|
Example Message Passing Architectures |
|
|
118 | (4) |
|
Message Passing Versus Shared Memory Architectures |
|
|
122 | (1) |
|
|
123 | (4) |
|
|
123 | (1) |
|
|
124 | (3) |
|
|
127 | (30) |
|
The PRAM Model and Its Variations |
|
|
127 | (2) |
|
Simulating Multiple Accesses on an EREW PRAM |
|
|
129 | (2) |
|
Analysis of Parallel Algorithms |
|
|
131 | (2) |
|
Computing Sum and All Sums |
|
|
133 | (3) |
|
|
136 | (3) |
|
|
139 | (1) |
|
|
140 | (6) |
|
|
146 | (1) |
|
Leader Election in Synchronous Rings |
|
|
147 | (7) |
|
|
154 | (3) |
|
|
154 | (1) |
|
|
155 | (2) |
|
|
157 | (24) |
|
|
158 | (3) |
|
|
161 | (5) |
|
|
166 | (4) |
|
|
170 | (5) |
|
|
175 | (2) |
|
|
177 | (1) |
|
|
178 | (3) |
|
|
178 | (2) |
|
|
180 | (1) |
|
Parallel Programming in the Parallel Virtual Machine |
|
|
181 | (24) |
|
PVM Environment and Application Structure |
|
|
181 | (4) |
|
|
185 | (3) |
|
|
188 | (2) |
|
Communication Among Tasks |
|
|
190 | (6) |
|
|
196 | (2) |
|
|
198 | (2) |
|
|
200 | (1) |
|
|
201 | (4) |
|
|
202 | (1) |
|
|
203 | (2) |
|
Message Passing Interface (MPI) |
|
|
205 | (30) |
|
|
205 | (4) |
|
|
209 | (4) |
|
|
213 | (4) |
|
|
217 | (3) |
|
|
220 | (5) |
|
|
225 | (3) |
|
|
228 | (3) |
|
|
231 | (4) |
|
|
231 | (2) |
|
|
233 | (2) |
|
Scheduling and Task Allocation |
|
|
235 | (32) |
|
|
235 | (3) |
|
Scheduling DAGs without Considering Communication |
|
|
238 | (4) |
|
|
242 | (2) |
|
Scheduling DAGs with Communication |
|
|
244 | (4) |
|
The NP-Completeness of the Scheduling Problem |
|
|
248 | (2) |
|
|
250 | (6) |
|
|
256 | (6) |
|
Scheduling in Heterogeneous Environments |
|
|
262 | (5) |
|
|
263 | (1) |
|
|
264 | (3) |
Index |
|
267 | |