1st Edition
Computer Architecture Software Aspects, Coding, and Hardware
With the new developments in computer architecture, fairly recent publications can quickly become outdated. Computer Architecture: Software Aspects, Coding, and Hardware takes a modern approach. This comprehensive, practical text provides that critical understanding of a central processor by clearly detailing fundamentals, and cutting edge design features. With its balanced software/hardware perspective and its description of Pentium processors, the book allows readers to acquire practical PC software experience. The text presents a foundation-level set of ideas, design concepts, and applications that fully meet the requirements of computer organization and architecture courses.
The book features a "bottom up" computer design approach, based upon the author's thirty years experience in both academe and industry. By combining computer engineering with electrical engineering, the author describes how logic circuits are designed in a CPU. The extensive coverage of a micprogrammed CPU and new processor design features gives the insight of current computer development.
Computer Architecture: Software Aspects, Coding, and Hardware presents a comprehensive review of the subject, from beginner to advanced levels. Topics include:
o Two's complement numbers o Integer overflow
o Exponent overflow and underflow o Looping
o Addressing modes o Indexing
o Subroutine linking o I/O structures
o Memory mapped I/O o Cycle stealing
o Interrupts o Multitasking
o Microprogrammed CPU o Multiplication tree
o Instruction queue o Multimedia instructions
o Instruction cache o Virtual memory
o Data cache o Alpha chip
o Interprocessor communications o Branch prediction
o Speculative loading o Register stack
o JAVA virtual machine o Stack machine principles
Prolog
History of Computers
Hardware Components in a Computer System
Software Components in a Computer System
Applications of Computers
How to Program a Computer
Simulate a Computer
Program Design Language
NUMBER SYSTEMS
Basic Mathematics
Positional Notation
Number Systems
Number Conversion
Data Representation
Bit Strings in Memory
BASIC COMPUTER PRINCIPLES
Stored Program Concept
Hardware Units in a CPU
Instruction Unit
Register Transfer Language
Instruction Execution Cycle
Execution Unit
Addresses in an Instruction
Hardware Execution
Software Interpretation
ASSEMBLY LANGUAGE PRINCIPLES
Introduction
Pentium Processor
Assembler Language Statement Format
Pseudo Ops
Three Basic Addressing Modes
Machine Ops
Program Sequence Control
Looping Concept
Macros
COMPUTER ARCHITECTURE-GENERAL FEATURES
Addressing Modes
Indexing
Addressing Modes of 8086
Subroutine Linking
Interrupt Mechanisms
I/O Structure
Communication Port
Programming Interface with C
MICROPROGRAMMED CPU
History of Microprogramming
Two Basic Microcode Types
Microcode Engine
Microcode Assembly Language
Multiply Operations via One Adder
Divide Operations via One Adder
Other Types of Microinstructions
SUPERSCALAR MACHINE PRINCIPLES
Parallel Operations
Pipelined CPU
Cache Memory
Pentium Decoupled Pipe
Virtual Memory
Paging System
Segmentation with Paging
VECTOR AND MULTIPLE-PROCESSOR MACHINES
Vector Processors
Interprocessor Communications
Interprocessor Messages
Multistation System
Multiprocessing System
Computer Networks
PROCESSOR DESIGN CASE STUDIES
Complex Instruction Set Computer
Reduced Instruction Set Computer
Itanium Processor
Reduced Software Solution Computer
Other Distinctions
Virtual Machines
STACK MACHINE PRINCIPLES
Stack Machine Basics
Postfix Polish Notation
Operator Precedence
Simple Stack Machine
Stack Machine Assembly Language
Test Program for SSM315
Virtual Stack Machine
ACRONYMS AND ABREVIATIONS
BIBLIOGRAPHY
ABOUT THE AUTHOR
INDEX
Biography
John Y. Hsu