Preface |
|
xiii | |
|
Digital Computers and Information |
|
|
3 | (24) |
|
|
3 | (5) |
|
Information Representation |
|
|
5 | (1) |
|
|
6 | (1) |
|
More on the Generic Computer |
|
|
6 | (2) |
|
|
8 | (5) |
|
|
9 | (1) |
|
Octal and Hexadecimal Numbers |
|
|
10 | (2) |
|
|
12 | (1) |
|
|
13 | (4) |
|
Conversion from Decimal to Other Bases |
|
|
15 | (2) |
|
|
17 | (3) |
|
|
19 | (1) |
|
|
20 | (3) |
|
|
20 | (2) |
|
|
22 | (1) |
|
|
23 | (4) |
|
|
23 | (1) |
|
|
24 | (3) |
|
Combinational Logic Circuits |
|
|
27 | (64) |
|
|
27 | (4) |
|
|
28 | (2) |
|
|
30 | (1) |
|
|
31 | (8) |
|
Basic Identities of Boolean Algebra |
|
|
33 | (2) |
|
|
35 | (3) |
|
|
38 | (1) |
|
|
39 | (6) |
|
|
39 | (4) |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
45 | (10) |
|
|
46 | (1) |
|
|
47 | (5) |
|
|
52 | (3) |
|
|
55 | (7) |
|
Essential Prime Implicants |
|
|
57 | (1) |
|
Product-of-Sums Simplification |
|
|
58 | (2) |
|
|
60 | (2) |
|
|
62 | (9) |
|
|
64 | (1) |
|
|
65 | (2) |
|
|
67 | (2) |
|
|
69 | (2) |
|
|
71 | (5) |
|
|
73 | (1) |
|
Parity Generation and Checking |
|
|
74 | (2) |
|
|
76 | (6) |
|
|
76 | (1) |
|
|
76 | (3) |
|
Positive and Negative Logic |
|
|
79 | (2) |
|
|
81 | (1) |
|
|
82 | (9) |
|
|
83 | (1) |
|
|
83 | (8) |
|
Combinational Logic Design |
|
|
91 | (92) |
|
|
91 | (1) |
|
|
92 | (8) |
|
|
93 | (3) |
|
|
96 | (1) |
|
|
96 | (1) |
|
Hardware Description Languages |
|
|
97 | (2) |
|
|
99 | (1) |
|
|
100 | (5) |
|
Derivation of Boolean Functions |
|
|
101 | (1) |
|
Derivation of the Truth Table |
|
|
102 | (1) |
|
|
103 | (2) |
|
|
105 | (6) |
|
|
107 | (4) |
|
|
111 | (5) |
|
|
113 | (1) |
|
Combinational Circuit Implementation |
|
|
114 | (2) |
|
|
116 | (3) |
|
|
117 | (2) |
|
|
119 | (6) |
|
Combinational Circuit Implementation |
|
|
122 | (2) |
|
|
124 | (1) |
|
|
125 | (7) |
|
|
125 | (1) |
|
|
126 | (1) |
|
Binary Ripple Carry Adder |
|
|
127 | (2) |
|
|
129 | (3) |
|
|
132 | (5) |
|
|
134 | (1) |
|
Subtraction with Complements |
|
|
135 | (2) |
|
|
137 | (7) |
|
|
138 | (2) |
|
Signed Binary Addition and Subtraction |
|
|
140 | (2) |
|
|
142 | (2) |
|
|
144 | (1) |
|
|
145 | (3) |
|
Use of Complements in Decimal |
|
|
147 | (1) |
|
HDL Representations -- VHDL |
|
|
148 | (11) |
|
|
150 | (3) |
|
|
153 | (2) |
|
|
155 | (2) |
|
|
157 | (2) |
|
HDL Representations -- Verilog |
|
|
159 | (8) |
|
|
160 | (1) |
|
|
161 | (4) |
|
|
165 | (1) |
|
|
165 | (2) |
|
|
167 | (16) |
|
|
168 | (1) |
|
|
168 | (15) |
|
|
183 | (66) |
|
Sequential Circuit Definitions |
|
|
184 | (2) |
|
|
186 | (5) |
|
|
187 | (3) |
|
|
190 | (1) |
|
|
191 | (10) |
|
|
192 | (3) |
|
|
195 | (2) |
|
Standard Graphics Symbols |
|
|
197 | (2) |
|
|
199 | (1) |
|
|
200 | (1) |
|
Sequential Circuit Analysis |
|
|
201 | (7) |
|
|
201 | (1) |
|
|
202 | (4) |
|
Analysis with JK Flip-Flops |
|
|
206 | (1) |
|
|
206 | (2) |
|
Sequential Circuit Design |
|
|
208 | (6) |
|
|
208 | (1) |
|
Finding State Diagrams and State Tables |
|
|
209 | (5) |
|
Designing with D Flip-Flops |
|
|
214 | (4) |
|
Designing with Unused States |
|
|
215 | (3) |
|
Designing with JK Flip-Flops |
|
|
218 | (6) |
|
Flip-Flop Excitation Tables |
|
|
218 | (1) |
|
|
219 | (5) |
|
HDL Representation for Sequential Circuits -- VHDL |
|
|
224 | (8) |
|
HDL Representation for Sequential Circuits -- Verilog |
|
|
232 | (7) |
|
|
239 | (10) |
|
|
240 | (9) |
|
|
249 | (36) |
|
Definition of Register and Counter |
|
|
249 | (1) |
|
|
250 | (3) |
|
Register with Parallel Load |
|
|
251 | (2) |
|
|
253 | (8) |
|
|
254 | (2) |
|
|
256 | (2) |
|
Shift Register with Parallel Load |
|
|
258 | (2) |
|
Bidirectional Shift Register |
|
|
260 | (1) |
|
|
261 | (2) |
|
Synchronous Binary Counters |
|
|
263 | (10) |
|
Design of Binary Counters |
|
|
264 | (3) |
|
Counter with D Flip-Flops |
|
|
267 | (1) |
|
Serial and Parallel Counters |
|
|
268 | (1) |
|
|
269 | (1) |
|
Binary Counter with Parallel Load |
|
|
270 | (3) |
|
|
273 | (3) |
|
|
273 | (1) |
|
|
274 | (2) |
|
HDL Representation for Shift Registers and Counters |
|
|
276 | (2) |
|
HDL Representation for Shift Registers and Counters |
|
|
278 | (1) |
|
|
279 | (6) |
|
|
280 | (1) |
|
|
280 | (5) |
|
Memory and Programmable Logic Devices |
|
|
285 | (54) |
|
Memory and Programmable Logic Device |
|
|
285 | (2) |
|
|
286 | (1) |
|
|
287 | (5) |
|
Write and Read Operations |
|
|
289 | (1) |
|
|
290 | (2) |
|
|
292 | (1) |
|
|
292 | (15) |
|
|
296 | (1) |
|
|
297 | (4) |
|
|
301 | (6) |
|
|
307 | (3) |
|
|
310 | (1) |
|
Programmable Logic Technologies |
|
|
310 | (2) |
|
|
312 | (5) |
|
Combinational Circuit Implementation |
|
|
315 | (2) |
|
|
317 | (4) |
|
Programmable Array Logic Devices |
|
|
321 | (5) |
|
VLSI Programmable Logic Devices |
|
|
326 | (7) |
|
|
326 | (2) |
|
|
328 | (2) |
|
|
330 | (1) |
|
|
331 | (2) |
|
|
333 | (6) |
|
|
334 | (1) |
|
|
335 | (4) |
|
Register Transfers and Datapaths |
|
|
339 | (52) |
|
|
340 | (1) |
|
Register Transfer Operations |
|
|
341 | (4) |
|
A Note for VHDL and Verilog Users Only |
|
|
344 | (1) |
|
|
345 | (5) |
|
Arithmetic Microoperations |
|
|
345 | (2) |
|
|
347 | (2) |
|
|
349 | (1) |
|
Multiplexer-based Transfer |
|
|
350 | (1) |
|
|
351 | (6) |
|
|
353 | (2) |
|
|
355 | (2) |
|
|
357 | (3) |
|
The Arithmetic/Logic Unit |
|
|
360 | (6) |
|
|
360 | (3) |
|
|
363 | (1) |
|
|
364 | (2) |
|
|
366 | (2) |
|
|
367 | (1) |
|
|
368 | (2) |
|
|
370 | (6) |
|
|
376 | (6) |
|
Execution of Pipeline Microoperations |
|
|
381 | (1) |
|
|
382 | (9) |
|
|
383 | (1) |
|
|
383 | (8) |
|
|
391 | (76) |
|
|
392 | (1) |
|
Algorithmic State Machines |
|
|
393 | (4) |
|
|
393 | (3) |
|
|
396 | (1) |
|
Design Example: Binary Multiplier |
|
|
397 | (5) |
|
|
397 | (2) |
|
|
399 | (1) |
|
|
400 | (2) |
|
|
402 | (8) |
|
Sequence Register and Decoder |
|
|
404 | (2) |
|
|
406 | (4) |
|
HDL Representation of the Binary Multiplier-VHDL |
|
|
410 | (3) |
|
HDL Representation of the Binary Multiplier-Verilog |
|
|
413 | (3) |
|
|
416 | (8) |
|
Binary Multiplier Example |
|
|
418 | (6) |
|
A Simple Computer Architecture |
|
|
424 | (5) |
|
|
424 | (1) |
|
|
425 | (3) |
|
|
428 | (1) |
|
Single-Cycle Hardwired Control |
|
|
429 | (8) |
|
|
431 | (2) |
|
Sample Instructions and Program |
|
|
433 | (4) |
|
Multiple-Cycle Microprogrammed Control |
|
|
437 | (13) |
|
|
440 | (7) |
|
The Hardwired Alternative |
|
|
447 | (3) |
|
|
450 | (5) |
|
Pipeline Programming and Performance |
|
|
453 | (2) |
|
|
455 | (12) |
|
|
456 | (1) |
|
|
456 | (11) |
|
Instruction Set Architecture |
|
|
467 | (44) |
|
Computer Architecture Concepts |
|
|
467 | (2) |
|
Basic Computer Operation Cycle |
|
|
468 | (1) |
|
|
469 | (1) |
|
|
469 | (7) |
|
Three-address Instructions |
|
|
470 | (1) |
|
|
471 | (1) |
|
|
471 | (1) |
|
Zero-address Instructions |
|
|
472 | (1) |
|
|
473 | (3) |
|
|
476 | (6) |
|
|
477 | (1) |
|
|
477 | (1) |
|
Register and Register-Indirect Modes |
|
|
477 | (1) |
|
|
478 | (2) |
|
|
480 | (1) |
|
|
480 | (1) |
|
|
480 | (1) |
|
Summary of Addressing Modes |
|
|
481 | (1) |
|
Instruction Set Architectures |
|
|
482 | (2) |
|
Data Transfer Instructions |
|
|
484 | (3) |
|
|
484 | (2) |
|
Independent versus Memory-Mapped I/O |
|
|
486 | (1) |
|
Data Manipulation Instructions |
|
|
487 | (4) |
|
|
487 | (1) |
|
Logical and Bit Manipulation Instructions |
|
|
488 | (2) |
|
|
490 | (1) |
|
Floating-point Computations |
|
|
491 | (4) |
|
|
492 | (1) |
|
|
493 | (1) |
|
|
493 | (2) |
|
Program Control Instructions |
|
|
495 | (5) |
|
Conditional Branch Instructions |
|
|
497 | (2) |
|
Procedure Call and Return Instructions |
|
|
499 | (1) |
|
|
500 | (4) |
|
|
502 | (1) |
|
Processing External Interrupts |
|
|
503 | (1) |
|
|
504 | (7) |
|
|
505 | (1) |
|
|
505 | (6) |
|
Central Processing Unit Designs |
|
|
511 | (64) |
|
|
511 | (1) |
|
The Complex Instruction Set Computer |
|
|
512 | (30) |
|
Instruction Set Architecture |
|
|
512 | (5) |
|
|
517 | (6) |
|
Microprogrammed Control Organization |
|
|
523 | (8) |
|
|
531 | (2) |
|
|
533 | (9) |
|
The Reduced Instruction Set Computer |
|
|
542 | (20) |
|
Instruction Set Architecture |
|
|
542 | (3) |
|
|
545 | (1) |
|
|
546 | (3) |
|
|
549 | (2) |
|
|
551 | (7) |
|
|
558 | (4) |
|
|
562 | (7) |
|
|
562 | (2) |
|
High-Performance CPU Concepts |
|
|
564 | (4) |
|
Recent Architectural Innovations |
|
|
568 | (1) |
|
|
569 | (1) |
|
|
569 | (6) |
|
|
570 | (1) |
|
|
571 | (4) |
|
Input-Output and Communication |
|
|
575 | (38) |
|
|
575 | (1) |
|
|
576 | (4) |
|
|
576 | (1) |
|
|
577 | (2) |
|
|
579 | (1) |
|
|
580 | (1) |
|
|
580 | (7) |
|
I/O Bus and Interface Unit |
|
|
581 | (1) |
|
|
582 | (2) |
|
|
584 | (1) |
|
|
585 | (2) |
|
|
587 | (7) |
|
Asynchronous Transmission |
|
|
588 | (1) |
|
|
589 | (1) |
|
|
589 | (1) |
|
A Packet-Based Serial I/O Bus |
|
|
590 | (4) |
|
|
594 | (4) |
|
Example of Program-Controlled Transfer |
|
|
595 | (1) |
|
Interrupt-Initiated Transfer |
|
|
596 | (2) |
|
|
598 | (4) |
|
|
599 | (1) |
|
Parallel Priority Hardware |
|
|
600 | (2) |
|
|
602 | (4) |
|
|
603 | (1) |
|
|
604 | (2) |
|
|
606 | (3) |
|
|
609 | (4) |
|
|
609 | (1) |
|
|
610 | (3) |
|
|
613 | (30) |
|
|
614 | (2) |
|
|
616 | (2) |
|
|
618 | (14) |
|
|
620 | (6) |
|
|
626 | (1) |
|
|
627 | (1) |
|
|
627 | (1) |
|
|
628 | (3) |
|
Instruction and Data Caches |
|
|
631 | (1) |
|
|
631 | (1) |
|
|
632 | (6) |
|
|
634 | (2) |
|
Translation Lookaside Buffer |
|
|
636 | (2) |
|
|
638 | (1) |
|
|
638 | (5) |
|
|
639 | (1) |
|
|
639 | (4) |
Appendix |
|
643 | (4) |
Index |
|
647 | |