ENCT303
Computer Organization and Architecture
Syllabus
- Introduction (5 hours)
- Organization and architecture
- Structure of a computer, single processor, multi-core computer
- Performance assessment: clock speed and instruction per second; instruction execution rate (CPI, MIPS rate, MFLOPS rate, arithmetic mean, harmonic mean, speed metric, geometric mean, rate metric, Amdahl's law, speed up)
- Computer function: instruction fetch and execute, instruction cycle state diagram
- Computer component, interconnection structure, bus interconnection, PCI
- RISC architecture, overlapped register windows, Berkeley RISC
- Central Processing Unit (CPU) (7 hours)
- Processor bus organization
- Processor register organization: control word, examples of microoperations
- Stack organization: register stack, memory stack, reverse polish notation, evaluation of arithmetic expressions
- Instruction formats: CPU organization, zero and more address instruction formats
- Addressing modes: types, examples, strengths and weaknesses
- Instruction set: data transfer, data manipulation (arithmetic, logical and shift), program control
- Status bit conditions
- Interrupt: definition, types, processing and ISR
- Control Unit (5 hours)
- Hardwired control unit
- Microprogrammed control unit
- Microinstructions, control memory organization, Wilkes control
- Microinstruction sequencing: design considerations, sequencing techniques, address generation, microinstruction encoding
- Application of microprogramming
- Microinstruction execution
- Memory System (7 hours)
- Characteristics of memory system
- Memory classification and hierarchy
- Semiconductor memory and its types, read only memory, read/write memory
- RAM modules and interfaces: DDR, DIMM and SODIMM
- Cache memory: cache principles, elements of cache design (cache size, mapping function, replacement algorithms, write policy, block size, single and multi-level caches, unified versus split cache)
- External memory: magnetic disk, RAID (level 1 to 5), optical memory, magnetic tape, SSD
- Computer Arithmetic (8 hours)
- ALU (arithmetic and logic unit)
- Integer representation: sign-magnitude, two's complement, converting between different bit lengths, fixed-point representation
- Integer arithmetic: addition and subtraction, multiplication, division algorithms
- Floating-point arithmetic: representation (principles, IEEE standard), addition and subtraction, multiplication, division algorithms
- Pipelining and Vector Processing (4 hours)
- Pipelining and its importance
- Instruction and arithmetic pipelining
- Pipelining hazards: data, structural and control hazards
- RISC pipeline
- Parallel processing
- Vector processing: vector operations, matrix multiplication, memory interleaving, superscalar processors, supercomputers
- Array processors: attached array processor and SIMD array processor
- Input/Output (5 hours)
- External devices
- I/O modules: module function, module structure
- Programmed I/O, I/O commands, I/O instructions, flowchart
- Interrupt driven I/O, interrupt processing and flowchart
- Direct memory access (DMA): drawbacks of programmed and interrupt-driven I/O, DMA function, typical DMA block diagram and configurations
- I/O channels and processors: evolution of the I/O function, characteristics of I/O channels
- The external interface: types of interfaces, point-to-point and multiple configurations, SCSI
- Multiprocessor System (4 hours)
- Multiprocessor computers and their characteristics
- Multi-core computers and their architecture
- Interconnection structure: time-shared common bus, multiport memory, crossbar switch, multistage switching network and hypercube system
- Interprocessor arbitration
- Interprocessor communication and synchronization
Practicals
- Addition and subtraction algorithm
- Multiplication algorithm
- Division algorithm
- Cache mapping techniques
- ALU implementation
- Vector processing implementation