Computation structures

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This book is very comprehensive, and drills deep down into the magic layers that make computers work. Anyone seriously interested in programming, and electronics should read this volume.

Author(s): Stephen A. Ward, Robert H. Halstead
Series: The MIT electrical engineering and computer science series
Edition: Fifth Printing, 1999
Publisher: MIT Press; McGraw-Hill
Year: 1990

Language: English
Pages: 812
City: Cambridge, Mass. :, New York

Computation Structures (ISBN:0262231395)......Page
Front Matter......Page CS_Page_004.djvu
cover......Page CS300c.djvu
Copyright......Page CS_Page_005.djvu
Contents......Page CS_Page_006.djvu
Preface......Page CS_Page_016.djvu
1 The Digital Abstraction......Page CS_Page_024.djvu
1.1 Information and the Digital Abstraction......Page CS_Page_025.djvu
1.2 Representation of Discrete Variables......Page CS_Page_026.djvu
1.3 Combinational Devices......Page CS_Page_027.djvu
1.4 The Static Discipline: Logic Levels......Page CS_Page_028.djvu
1.5 Rate of Information Flow......Page CS_Page_030.djvu
1.6 Transitions and Validity......Page CS_Page_031.djvu
1.8 DigitalCircuit Implementation......Page CS_Page_032.djvu
1.10 Context......Page CS_Page_047.djvu
1.11 Problems......Page CS_Page_048.djvu
2 Binary Representations and Notation......Page CS_Page_056.djvu
2.1 Representation of Numbers......Page CS_Page_057.djvu
2.2 FloatingPoint Representations......Page CS_Page_062.djvu
2.3 Other Representations......Page 62
2.4 HeXadecimal Notation......Page CS_Page_063.djvu
2.5 *Unrepresentable Values......Page CS_Page_064.djvu
2.6 Error Detection and Correction......Page CS_Page_065.djvu
2.8 Problems......Page CS_Page_067.djvu
3.1 Boolean Functions and Truth Tables......Page CS_Page_070.djvu
3.2 Elementary Gate Circuits......Page CS_Page_074.djvu
3.3 Synthesis of Logic Circuits......Page CS_Page_077.djvu
3.4 Temporal Considerations in Combinational Circuits......Page CS_Page_084.djvu
3.6 Problems......Page CS_Page_089.djvu
4 Sequences and State......Page CS_Page_098.djvu
4.1 Feedback and State......Page CS_Page_099.djvu
4.2 Latches, FlipFlops, and Registers......Page CS_Page_101.djvu
4.3 Edge-Triggered Flip-Flops and Registers......Page CS_Page_106.djvu
4.4 Register Timing......Page CS_Page_108.djvu
4.5 Models of Sequential Circuits......Page CS_Page_109.djvu
4.6 Synchronization and State......Page CS_Page_116.djvu
4.8 Problems......Page CS_Page_123.djvu
5.1 Building Blocks for Logic Design......Page CS_Page_128.djvu
5.2 Regular Structures......Page CS_Page_142.djvu
5.3 Design Example: A Combinational Multiplier......Page CS_Page_153.djvu
5.5 Problems......Page CS_Page_157.djvu
6 FiniteState Machines......Page CS_Page_166.djvu
6.1 Synthesis of FiniteState Machines......Page CS_Page_168.djvu
6.2 Synchronous FSM Circuit Models......Page CS_Page_169.djvu
6.4 *Equivalence of FSMs......Page CS_Page_171.djvu
6.5 *Regular Expressions and Nondeterministic FSMs......Page CS_Page_174.djvu
6.6 Context......Page CS_Page_177.djvu
6.7 Problems......Page CS_Page_178.djvu
7 Control Structures and Disciplines......Page CS_Page_194.djvu
7.1 Timing Disciplines......Page CS_Page_195.djvu
7.2 Degrees of Synchrony......Page CS_Page_196.djvu
7.3 Constraints on Control Structure......Page CS_Page_200.djvu
7.4 Synchronous GloballyTimed Control......Page CS_Page_210.djvu
7.5 Synchronous Locally Timed Control......Page CS_Page_213.djvu
7.6 Asynchronous Locally Timed Control......Page CS_Page_214.djvu
7.7 Context......Page CS_Page_219.djvu
7.8 Problems......Page CS_Page_220.djvu
8 Performance Measures and Trade-offs......Page CS_Page_224.djvu
8.1 Pipelining......Page CS_Page_227.djvu
8.2 Systematic Pipeline Construction......Page CS_Page_233.djvu
8.3 Cost-Performance Trade-offs and Options......Page CS_Page_235.djvu
8.4 Implementations of Bubble Sort......Page CS_Page_236.djvu
8.5 More Efficient Sorting Algorithms......Page CS_Page_244.djvu
8.6 Summary......Page CS_Page_247.djvu
8.7 Context......Page CS_Page_248.djvu
8.8 Problems......Page CS_Page_249.djvu
9.1 Physical Limits and Constraints......Page CS_Page_260.djvu
9.2 Communication Buses......Page CS_Page_268.djvu
9.3 Serial Communication......Page CS_Page_283.djvu
9.4 Context......Page CS_Page_287.djvu
9.5 Problems......Page CS_Page_288.djvu
10.1 Turing Machines and Computability......Page CS_Page_292.djvu
10.2 Universality......Page CS_Page_295.djvu
10.3 Uncomputable Functions......Page CS_Page_297.djvu
10.4 Interpretation versus Compilation......Page CS_Page_298.djvu
10.5 Context......Page CS_Page_300.djvu
10.6 Problems......Page CS_Page_301.djvu
11 Microinterpreter Architecture......Page CS_Page_304.djvu
11.1 Data Paths versus Control......Page CS_Page_305.djvu
11.2 A Basic Data-Path Architecture......Page CS_Page_306.djvu
11.3 Typical Data-Path Subsystems and Uses......Page CS_Page_310.djvu
11.4 Control Subsystem......Page CS_Page_316.djvu
11.5 The Control Machine as an Interpreter......Page CS_Page_321.djvu
11.7 Problems......Page CS_Page_322.djvu
12 Microprogramming and Microcode......Page CS_Page_326.djvu
12.1 Microcode Semantics......Page CS_Page_327.djvu
12.2 Symbolic Microprogramming......Page CS_Page_335.djvu
12.3 Microcoding Examples......Page CS_Page_342.djvu
12.6 Problems......Page CS_Page_348.djvu
13.1 Machine Language as an Abstraction......Page CS_Page_358.djvu
13.2 Gross Organization of the Single-Sequence Machine......Page CS_Page_359.djvu
13.3 Influences on Machine-Language Design......Page CS_Page_360.djvu
13.4 Implementation Considerations......Page CS_Page_376.djvu
13.5 The von Neumann Machine......Page CS_Page_379.djvu
13.6 Perspectives and Trends......Page CS_Page_385.djvu
13.7 Context......Page CS_Page_387.djvu
13.8 Problems......Page CS_Page_389.djvu
14 Stack Architectures: The S Machine......Page CS_Page_390.djvu
14.1 Basic Instructions......Page CS_Page_391.djvu
14.2 S-Machine Instruction Coding......Page CS_Page_394.djvu
14.3 *MAYBE Implementation......Page CS_Page_395.djvu
14.4 Compilation Techniques for Stack Machines......Page CS_Page_404.djvu
14.5 Flow of Control on the S Machine......Page CS_Page_408.djvu
14.6 *Relative Addressing and Position-Independent Code......Page CS_Page_412.djvu
14.7 Stack Frames and Procedure Linkage......Page CS_Page_416.djvu
14.8 *LexicalScoping Support......Page CS_Page_423.djvu
14.9 Traps......Page CS_Page_431.djvu
14.10 Summary......Page CS_Page_434.djvu
14.12 Problems......Page CS_Page_435.djvu
15 Register Architectures: The G Machine......Page CS_Page_450.djvu
15.1 Addressing Modes......Page CS_Page_451.djvu
15.2 The G Machine......Page CS_Page_457.djvu
15.3 *MAYBE Implementation......Page CS_Page_465.djvu
15.4 Other GeneralRegister Architectures......Page CS_Page_473.djvu
15.5 Procedure Linkage......Page CS_Page_475.djvu
15.6 Register Allocation by Compilers......Page CS_Page_480.djvu
15.7 Traps......Page CS_Page_481.djvu
15.9 Summary......Page CS_Page_482.djvu
15.10 Context......Page CS_Page_483.djvu
15.11 Problems......Page CS_Page_484.djvu
16 Memory Architectures......Page CS_Page_494.djvu
16.1 Locality of Reference and Other Regularities of Memory Access......Page CS_Page_496.djvu
16.2 Interleaved Memory Modules......Page CS_Page_499.djvu
16.4 Top-of-Stack Cache......Page CS_Page_501.djvu
16.5 Multilevel Memory......Page CS_Page_502.djvu
16.6 Cache Memory......Page CS_Page_503.djvu
16.7 Paging and Virtual Memory......Page CS_Page_509.djvu
16.9 Context......Page CS_Page_519.djvu
16.10 Problems......Page CS_Page_520.djvu
17 ReducedInstructionSet Computers......Page CS_Page_536.djvu
17.1 Basic Data Pipeline......Page CS_Page_537.djvu
17.2 Pipeline Timing......Page CS_Page_539.djvu
17.3 Interface Issues......Page CS_Page_542.djvu
17.4 Instruction-Stream Constants......Page CS_Page_543.djvu
17.5 Instruction Fetch and Branch Control......Page CS_Page_545.djvu
17.6 Main-Memory Timing Conflict......Page CS_Page_548.djvu
17.7 Impact of Lengthened Pipeline......Page CS_Page_551.djvu
17.8 Alternatives and Issues......Page CS_Page_552.djvu
17.10 Context......Page CS_Page_553.djvu
17.11 Problems......Page CS_Page_554.djvu
18 Processes and Processor Multiplexing......Page CS_Page_556.djvu
18.1 The Process Abstraction......Page CS_Page_557.djvu
18.2 Process Management......Page CS_Page_560.djvu
18.3 Operating-System Services......Page CS_Page_562.djvu
18.4 Memory Mapping......Page CS_Page_567.djvu
18.5 Protection......Page CS_Page_571.djvu
18.6 Summary......Page CS_Page_572.djvu
18.8 Problems......Page CS_Page_573.djvu
19.1 ProcessSynchronization Constraints......Page CS_Page_582.djvu
19.2 Semaphores and Precedence Constraints......Page CS_Page_583.djvu
19.4 Semaphores for Mutual Exclusion......Page CS_Page_584.djvu
19.5 Producer-Consumer Synchronization......Page CS_Page_586.djvu
19.7 Implementing Semaphores......Page CS_Page_588.djvu
19.8 Deadlock......Page CS_Page_596.djvu
19.10 Context......Page CS_Page_599.djvu
19.11 Problems......Page CS_Page_600.djvu
20 Interrupts, Priorities, and Real Time......Page CS_Page_610.djvu
20.1 Mutual-Exclusion Requirements......Page CS_Page_613.djvu
20.2 Enable/Disable Mechanism......Page CS_Page_614.djvu
20.3 Interrupts and Stack Discipline......Page CS_Page_615.djvu
20.4 Implementation of Interrupts......Page CS_Page_616.djvu
20.5 Weak Priorities......Page CS_Page_617.djvu
20.6 Processor Priorities......Page CS_Page_618.djvu
20.7 Scheduling and Priority Assignments......Page CS_Page_619.djvu
20.8 Summary......Page CS_Page_622.djvu
20.9 Context......Page CS_Page_623.djvu
20.10 Problems......Page CS_Page_624.djvu
21 Architectural Horizons......Page CS_Page_628.djvu
21.1 Models of Computation......Page CS_Page_629.djvu
21.2 The Multiprocessor Challenge......Page CS_Page_631.djvu
21.3 Taxonomy of Multiprocessors......Page CS_Page_635.djvu
21.4 Hiding Parallelism: Concurrent SSM EXecution......Page CS_Page_636.djvu
21.5 Data Parallelism......Page CS_Page_637.djvu
21.6 Other SIMD Approaches......Page CS_Page_638.djvu
21.7 SharedMemory Multiprocessors......Page CS_Page_639.djvu
21.8 Distribution of Subcomputations......Page CS_Page_643.djvu
21.9 Summary......Page CS_Page_644.djvu
21.10 Context......Page CS_Page_645.djvu
A1.1 Simple Data Types and Declarations......Page CS_Page_648.djvu
A1.2 Expressions......Page CS_Page_649.djvu
A1.3 Statements and Programs......Page CS_Page_651.djvu
A1.4 Arrays and Pointers......Page CS_Page_654.djvu
A1.5 Structures......Page CS_Page_656.djvu
A2.1 Control-ROM Bit Fields......Page CS_Page_660.djvu
A2.2 Circuit Details......Page CS_Page_663.djvu
A2.3 Microinstruction Set......Page CS_Page_671.djvu
A2.4 Control-ROM Listing......Page CS_Page_675.djvu
A2.5 Macro Definitions for Microinstructions......Page CS_Page_690.djvu
A3.1 Switch Console......Page CS_Page_694.djvu
A3.2 Microsubroutines......Page CS_Page_709.djvu
A4.1 Instruction-Set Details......Page CS_Page_718.djvu
A4.2 Language Definition......Page CS_Page_723.djvu
A4.3 Sample S-Machine Program......Page CS_Page_726.djvu
A4.4 Complete MAYBE S-Machine Microcode......Page CS_Page_727.djvu
A5.1 Instruction-Set Details......Page CS_Page_746.djvu
A5.2 Language Definition......Page CS_Page_748.djvu
A5.3 Sample G-Machine Program......Page CS_Page_751.djvu
A5.4 Complete MAYBE G-Machine Microcode......Page CS_Page_752.djvu
Bibliography......Page CS_Page_772.djvu
Index......Page CS_Page_784.djvu