| |
| |
Preface | |
| |
| |
Notation used in text | |
| |
| |
| |
The Building Blocks | |
| |
| |
| |
Binary numbers | |
| |
| |
| |
Numbers within a computing machine | |
| |
| |
| |
Adding binary integers | |
| |
| |
| |
Representing signed integers | |
| |
| |
| |
Addition and subtraction of signed integers | |
| |
| |
| |
Two's complement theory | |
| |
| |
| |
Use of hexadecimal representation | |
| |
| |
| |
Problems | |
| |
| |
| |
Logic expressions | |
| |
| |
| |
Logic - the bank vault | |
| |
| |
| |
Evaluating the logic expression for the bank vault | |
| |
| |
| |
Another solution | |
| |
| |
| |
Simplifying logical expressions | |
| |
| |
| |
Using the squares | |
| |
| |
| |
Simplified logic for bank vault access | |
| |
| |
| |
Rules for simplifying logical expressions using a map | |
| |
| |
| |
Karnaugh-Veitch program, KVMap | |
| |
| |
| |
Prime implicant selection table | |
| |
| |
| |
Quine-McCluskey method | |
| |
| |
| |
Finding pairs of adjacent minterms | |
| |
| |
| |
Finding larger groups of minterms | |
| |
| |
| |
Problems | |
| |
| |
| |
Electronic logic circuits | |
| |
| |
| |
Electronic controller | |
| |
| |
| |
Development of the bank vault controller design | |
| |
| |
| |
Gates - electronic circuits that perform logical operations | |
| |
| |
| |
Decoder circuit | |
| |
| |
| |
Multiplexer circuit | |
| |
| |
| |
Flip-flops | |
| |
| |
| |
Basic flip-flop | |
| |
| |
| |
Edge-triggered JK flip-flop | |
| |
| |
| |
Edge-triggered D flip-flop | |
| |
| |
| |
Storage registers | |
| |
| |
| |
State machines | |
| |
| |
| |
State Machine 1 using D type flip-flops | |
| |
| |
| |
State Machine 2 using D type flip-flops | |
| |
| |
| |
State Machine 1 using JK flip-flops | |
| |
| |
| |
State Machine 2 using JK flip-flops | |
| |
| |
| |
Programmable logic devices | |
| |
| |
| |
Problems | |
| |
| |
| |
Computer arithmetic | |
| |
| |
| |
Circuit to add numbers | |
| |
| |
| |
Adder/Subtractor | |
| |
| |
| |
Arithmetic and logic unit | |
| |
| |
| |
Shifting data | |
| |
| |
| |
Fast adders | |
| |
| |
| |
Floating-point numbers | |
| |
| |
| |
Special quantities | |
| |
| |
| |
Smallest and largest numbers | |
| |
| |
| |
Denormalized numbers | |
| |
| |
| |
Multiplication and division | |
| |
| |
| |
Addition and subtraction | |
| |
| |
| |
Rounding | |
| |
| |
| |
Precision | |
| |
| |
| |
Problems | |
| |
| |
| |
Computing Machines | |
| |
| |
| |
Computer design | |
| |
| |
| |
A manual computing system | |
| |
| |
| |
Storing data and program instructions | |
| |
| |
| |
Connecting the machine components | |
| |
| |
| |
Architecture of Simple Machine | |
| |
| |
| |
Data paths | |
| |
| |
| |
Program Counter | |
| |
| |
| |
Operation of Simple Machine | |
| |
| |
| |
More general view of the design of Simple Machine | |
| |
| |
| |
Four-address format | |
| |
| |
| |
Three-address format | |
| |
| |
| |
Two-address format | |
| |
| |
| |
One-address format | |
| |
| |
| |
Zero-address format | |
| |
| |
| |
Improvements to Simple Machine | |
| |
| |
| |
Data storage within the microprocessor | |
| |
| |
| |
Status flags | |
| |
| |
| |
Architecture of the G80 microprocessor | |
| |
| |
| |
Problems | |
| |
| |
| |
Instruction set and code assembly | |
| |
| |
| |
Programmer's model | |
| |
| |
| |
Instruction format and addressing modes | |
| |
| |
| |
Converting the source code to machine code - manual assembly | |
| |
| |
| |
Using the assembler | |
| |
| |
| |
Assembly language | |
| |
| |
| |
Types of instruction | |
| |
| |
| |
Data transfer instructions | |
| |
| |
| |
Arithmetical and logical instructions | |
| |
| |
| |
Skew instructions | |
| |
| |
| |
Program control instructions | |
| |
| |
| |
Problems | |
| |
| |
| |
Program structures | |
| |
| |
| |
Program control structures | |
| |
| |
| |
Sequence | |
| |
| |
| |
While loop | |
| |
| |
| |
If/Else | |
| |
| |
| |
Data structures | |
| |
| |
| |
Look-up table | |
| |
| |
| |
Lists of data | |
| |
| |
| |
Character strings | |
| |
| |
| |
Jump table | |
| |
| |
| |
Two-dimensional arrays | |
| |
| |
| |
Index registers IX and IY | |
| |
| |
| |
Stack | |
| |
| |
| |
Subroutines | |
| |
| |
| |
Example of subroutine | |
| |
| |
| |
Parameter pass | |
| |
| |
| |
Probl122 | |
| |
| |
| |
Simple computer circuits | |
| |
| |
| |
G80 external connections | |
| |
| |
| |
Read Only Memory Device - ROM | |
| |
| |
| |
COMP1 computer - G80 with ROM only | |
| |
| |
| |
G80 read cycle | |
| |
| |
| |
RAM device | |
| |
| |
| |
COMP2 computer - G80 with ROM and RAM | |
| |
| |
| |
G80 write cycle | |
| |
| |
| |
COMP3 computer | |
| |
| |
| |
Microprocessor control signals | |
| |
| |
| |
Problems | |
| |
| |
| |
Input and output ports | |
| |
| |
| |
Simple output port | |
| |
| |
| |
Port address space | |
| |
| |
| |
A simple input port | |
| |
| |
| |
Programmable ports | |
| |
| |
| |
Serial data transmission - UART | |
| |
| |
| |
Problems | |
| |
| |
| |
Input and output methods | |
| |
| |
| |
Simple input and output | |
| |
| |
| |
Handshaking | |
| |
| |
| |
More about handshaking | |
| |
| |
| |
Simple output to a slow device | |
| |
| |
| |
Do-forever loop | |
| |
| |
| |
Processor interrupt | |
| |
| |
| |
Possible interrupt mechanisms | |
| |
| |
| |
Interrupt priority mechanisms | |
| |
| |
| |
Non-maskable interrupt | |
| |
| |
| |
G80 interrupt mechanisms | |
| |
| |
| |
Interrupt mode 0 - RSTn* | |
| |
| |
| |
Interrupt mode 1 - poll* | |
| |
| |
| |
Interrupt mode 2 - vectored | |
| |
| |
| |
Vectored interrupt sequence of events | |
| |
| |
| |
Direct memory access | |
| |
| |
| |
Problems | |
| |
| |
| |
More devices | |
| |
| |
| |
Counter device and its use in a conveyor belt | |
| |
| |
| |
Timer device | |
| |
| |
| |
Calendar device | |
| |
| |
| |
Pottery kiln | |
| |
| |
| |
Multitaskin | |
| |
| |
| |
Problems | |
| |
| |
| |
Assembler and linker tools | |
| |
| |
| |
How an assembler works | |
| |
| |
| |
First pass | |
| |
| |
| |
Second pass | |
| |
| |
| |
Practical assemblers | |
| |
| |
| |
Relocatable segments | |
| |
| |
| |
Linker | |
| |
| |
| |
Link example 1 - single segment | |
| |
| |
| |
Link example 2 - multiple segments | |
| |
| |
| |
Link example 3 - global variables | |
| |
| |
| |
Intel format file | |
| |
| |
| |
High-level languages | |
| |
| |
| |
Problems | |
| |
| |
| |
The control unit | |
| |
| |
| |
Requirements of the control unit | |
| |
| |
| |
Register transfers | |
| |
| |
| |
Instruction fetch | |
| |
| |
| |
Examples of instruction execution | |
| |
| |
| |
ld d, c | |
| |
| |
| |
Add a,b | |
| |
| |
| |
ld a, n | |
| |
| |
| |
Add a, (hl) | |
| |
| |
| |
ld (nn), a | |
| |
| |
| |
jp nn | |
| |
| |
| |
jp z, nn | |
| |
| |
| |
Hardwired controller | |
| |
| |
| |
More about the hardwired controller | |
| |
| |
| |
Microprogrammed control | |
| |
| |
| |
Sequence generator | |
| |
| |
| |
Selecting a sequence | |
| |
| |
| |
Conditional branching | |
| |
| |
| |
Problems | |
| |
| |
| |
Larger Computers | |
| |
| |
| |
Larger computers | |
| |
| |
| |
General-purpose computers | |
| |
| |
| |
Memory bottleneck | |
| |
| |
| |
Storage within a computer | |
| |
| |
| |
Data bus width and memory address space | |
| |
| |
| |
Addressing modes | |
| |
| |
| |
New addressing modes | |
| |
| |
| |
Importance of compiler | |
| |
| |
| |
Organization of 32-bit memory | |
| |
| |
| |
Memory interleaving | |
| |
| |
| |
Burst cycle memory access | |
| |
| |
| |
Instruction queue | |
| |
| |
| |
Locality of reference | |
| |
| |
| |
Operating systems | |
| |
| |
| |
Booting the operating system* | |
| |
| |
| |
Cache memory | |
| |
| |
| |
Basic operation of cache | |
| |
| |
| |
Cache organization - direct mapping | |
| |
| |
| |
Memory write operations | |
| |
| |
| |
How many words should be stored in a cache line? | |
| |
| |
| |
Critique | |
| |
| |
| |
Cache organization - set-associative mapping | |
| |
| |
| |
Line replacement | |
| |
| |
| |
Cache organization - fully associative mapping | |
| |
| |
| |
Problems | |
| |
| |
| |
Memory management | |
| |
| |
| |
Virtual and physical addresses - imaginary and real memory | |
| |
| |
| |
Pages and page frames | |
| |
| |
| |
Page Tables | |
| |
| |
| |
Handling a page fault | |
| |
| |
| |
Least-recently used | |
| |
| |
| |
Least-frequently used | |
| |
| |
| |
Not used recently | |
| |
| |
| |
Page size | |
| |
| |
| |
Two-level paging* | |
| |
| |
| |
Translation look-aside buffer | |
| |
| |
| |
Memory protection | |
| |
| |
| |
Problems | |
| |
| |
| |
G80 instruction set | |
| |
| |
| |
ASCII character codes | |
| |
| |
| |
Specifications of the input and output devices | |
| |
| |
| |
The GDS assembler and linker | |
| |
| |
Index | |