Next:
Introduction and Overview
Up:
Computer Architecture - CSC 722
Previous:
Computer Architecture - CSC 722
Contents
Contents
Introduction and Overview
Scope
Overview
A Computer System
Central Processing Unit
Introduction
Arithmetic Logic Unit - ALU
Simplified CPU
Virtual Machines, Abstraction, Levels of Concern
Multilevel View of Computing Machines
Reading
Lectures, Learning ...
Exercises
Computer Number Systems and Arithmetic
Introduction
Overview
Numbers and Types
Sets
Important Sets
Operations on Sets
Representation of Values in Finite Data Word Sizes
Representations of Numbers - Bases
General
Binary Representation
Conversion - Binary-Decimal, Decimal-Binary
Hexadecimal and Octal
Conversion - Decimal-Hexadecimal
Binary Arithmetic
Addition
Hexadecimal addition
Representation of Sign in Binary Numbers
Sign-magnitude
Biased
Twos-complement
Twos-complement arithmetic
Overflow
The twos-complement circle, wrap-around
Fractions and Floating Point
Introduction
Fixed Point
Floating Point
Binary Floating Point
Exercises
Rounding and Truncation
Normalisation
Conversion to Floating Point
Addition and Subtraction in Floating Point
Multiplication and Division
Fixed versus Floating Point
Accuracy
Resolution
Range
Precision
Common Number Formats Used in Computers
Various Sizes of Integers and their Ranges
Floating Point
Bitwise Logical Operations
AND
OR
Shift
Rotate
Alphanumeric codes
UNICODE
Types
Error Detection
Exercises
Digital Logic and Boolean Algebra
Introduction
Logic
Introduction
Propositional Logic
A Limitation of Propositional Logic
Predicate Calculus
Set Theory
Digital Logic
And, or are binary, not is unary and the associative law
Equivalences of Boolean Algebra
Truth-Tables used in Proofs
Logic Gates
Transistor implementations
Symbols for Logic Gates
Logic Circuit Analysis
Equivalent Circuits
Exclusive-or
Generations of Integrated Circuits
Exercises
The Components of a Computer
Multiplexers and routing circuits
Multiplexer
Decoder
Arithmetic Circuits
Adder
Arithmetic and Logic Unit (ALU)
Magnitude Comparator
Shifter
Flip-Flops and Latches - Memory
Introduction
Sequential Circuit as Combinatorial plus Memory
Set-Reset (SR) Latch
Clocked SR Latch
Clocked D-type Latch
D-Type Edge Triggered Flip-Flop
Memory
Memory Mapped Input-output
Graphics memory
Registers
Tri-State
Buses
ROM and RAM
Timing and the Clock
Introduction
Frequency and Period of Periodic Events
Clock Periods and Instruction Times
Exercises
The Central Processing Unit (CPU)
Introduction
The Architecture of Mic-1
Registers
Internal Buses
External Buses
Shifter
Memory Address Register (MAR) and Memory Buffer Register (MBR)
A-Multiplexer (AMUX)
Memory
The Fetch-Execute Cycle
Microinstructions
Instruction Set Model
Memory-mapped Input-output
Introduction
Input from standard-input device
Output to the standard-output device
Microprogram Control versus Hardware Control
CISC versus RISC
Microprogram
Microinstructions
Microinstruction Format
Microinstruction Timing
MicroInstruction Sequencing
The Microprogram
Exercises
Assembly Language Programming
Introduction
Programs in Assembly Code
Conventions
Simple Program - add two integers
Declaring variables
If-then
If-then-else
Repetition
Machine Code, Memory Maps
The Assembly Process
Two-Pass Assembler
Pass One
Pass Two
Manual Assembly
Linking and Loading
Exercises
Further Assembly Programming
Introduction
Addressing - General
Mac-1 Instruction Set Extensions
The Additional Jumps
The Stack
Stack Instructions
Direct Accumulator-Stack Instructions
Indirect Accumulator-Stack Instructions
Call and Return - CALL and RETN
Conclusion
Input-Output Instructions
Introduction
Input from standard-input device
Output to the standard-output device
More Assembly Language Programming
Multiply Two Numbers
Divide
Iterate over an Array
Subroutines
Introduction
Subprograms without arguments
Subprograms with Parameters
Subprograms with return values
Other Uses for the Stack
Stack Frame
Local Variables
Recursive Subprograms
Parameters Passed By Value
A Better Example from Tanenbaum
Macros
Interrupts
Direct Memory Access (DMA)
Exercises
Operating Systems - Introduction
Introduction
What Does an Operating System Do?
Virtual Machine Levels and the Operating System
Historical Development of Operating Systems
`Stone Age' - up to about 1954
Open Shop
Operator Shop
Off-line Input-Output and Resident Monitor
Spooling Systems and Schedulers
Multiprogramming
Interactive Multiprogramming and Time-sharing
History of Operating Systems - Generations, Summary
1st Generation (1945-1955): Vacuum Tubes and Plugboards
2nd Generation 1955-1965): Transistors and Batch Systems
3rd Generation (1965-1980): ICs, Multiprogramming and Timesharing
4th Generation (1980-1991): PCs and Distributed Computing
The Future (1993- )
Preview of the Work of a Time-Sharing Operating System
Operating Systems - Some Theory
Introduction
Processes
General
Process Control Block (PCB)
The Kernel
Scheduling
Scheduling Policies, Algorithms
First Come, First Served (FCFS)
Round Robin (RR)
Shortest Process Next (SPN)
Conclusion
Memory Management
Physical and Virtual Store
Cache Memory
Paging
Principle
Choice of Page Size
Page Replacement Policies
Bibliography
CSC722 Examination April 2000
jc
2000-11-13