Skip to content

Computer Architecture: Complete Study Index

Priority Marker Guide

  • ๐Ÿ”ฅ Current teacherโ€™s suggestion
  • โญ Previous faculty question
  • ๐Ÿ“˜ Another teacherโ€™s suggestion from the supplied handwritten images
  • Two or three emojis together mean that the topic appears in multiple suggestion sets.

The emojis mark priority only. Every unmarked topic is still part of the complete syllabus.

Table of Contents

  1. Fundamentals and Instruction Set Architecture
  2. Basic Processing Unit and Pipelining
  3. Advanced ILP, Multicore and GPU
  4. Arithmetic for Computers
  5. Memory System
  6. Input/Output Organization
  7. Supporting Topics
  8. Exact Teacher-Suggested Practice Problems

Chapter 1: Fundamentals and Instruction Set Architecture

1.1 Introduction to Computer Architecture

  • Meaning of computer architecture
  • Meaning of computer organization
  • Meaning of computer design
  • Difference among architecture, organization and design
  • ๐Ÿ”ฅ Classes of computers
  • ๐Ÿ”ฅ Characteristics of different classes of computers
  • Personal computers
  • Workstations
  • Servers
  • Mainframe computers
  • Supercomputers
  • Embedded systems
  • Mobile computers
  • Cloud and warehouse-scale computers
  • General-purpose and special-purpose computers
  • Analog, digital and hybrid computers
  • โญ๐Ÿ“˜ Historical development of computer architecture
  • โญ Development of computer architecture during the last 30 years
  • โญ Evolution of microprocessors
  • โญ Intel 80386, 80486 and Pentium processors
  • Computer generations and enabling technologies
  • Role and importance of computer architecture

1.2 Models and Classes of Computer Architecture

  • ๐Ÿ”ฅ๐Ÿ“˜ Von Neumann architecture
  • ๐Ÿ“˜ Harvard architecture
  • Modified Harvard architecture
  • Stored-program concept
  • Program and data memory
  • Von Neumann bottleneck
  • Comparison of Von Neumann and Harvard architectures
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Flynnโ€™s classification
  • ๐Ÿ”ฅโญ๐Ÿ“˜ SISD architecture
  • ๐Ÿ”ฅโญ๐Ÿ“˜ SIMD architecture
  • ๐Ÿ”ฅโญ๐Ÿ“˜ MISD architecture
  • ๐Ÿ”ฅโญ๐Ÿ“˜ MIMD architecture
  • โญ๐Ÿ“˜ SPMD model
  • Shared-memory architecture
  • Distributed-memory architecture
  • Multiprocessor and multicomputer systems
  • Scalar, vector and parallel computers

1.3 Functional Units and System Layers

  • ๐Ÿ”ฅ Basic functional units of a digital computer
  • ๐Ÿ”ฅ Input unit
  • ๐Ÿ”ฅ Output unit
  • ๐Ÿ”ฅ Memory unit
  • ๐Ÿ”ฅ Arithmetic and Logic Unit
  • ๐Ÿ”ฅ Control Unit
  • ๐Ÿ”ฅ Processor or CPU
  • Registers
  • Main memory
  • Secondary storage
  • ๐Ÿ”ฅ Interconnection among functional units
  • ๐Ÿ”ฅ System bus
  • ๐Ÿ”ฅ Data bus
  • ๐Ÿ”ฅ Address bus
  • ๐Ÿ”ฅ Control bus
  • ๐Ÿ”ฅ Bus width
  • ๐Ÿ”ฅ Bus timing
  • ๐Ÿ”ฅ Bus arbitration
  • ๐Ÿ”ฅ Processor bus structure
  • Single-bus organization
  • Two-bus organization
  • ๐Ÿ”ฅ Three-bus organization
  • ๐Ÿ”ฅ Layers of a computer system
  • ๐Ÿ”ฅ Application layer
  • ๐Ÿ”ฅ High-level language layer
  • ๐Ÿ”ฅ Assembly-language layer
  • ๐Ÿ”ฅ Operating-system layer
  • ๐Ÿ”ฅ Instruction Set Architecture layer
  • ๐Ÿ”ฅ Microarchitecture layer
  • ๐Ÿ”ฅ Digital-logic layer
  • ๐Ÿ”ฅ Hardware layer
  • Abstraction in computer systems
  • Technology development across hardware generations

1.4 Software

  • Meaning of software
  • System software
  • Application software
  • Operating system
  • Utility software
  • Device driver
  • Language translator
  • ๐Ÿ”ฅ Compiler
  • Interpreter
  • ๐Ÿ”ฅ Assembler
  • ๐Ÿ”ฅ Linker
  • ๐Ÿ”ฅ Loader
  • Library files
  • Firmware
  • Difference between hardware and software

1.5 Hardwareโ€“Software Interface

  • Meaning of hardwareโ€“software interface
  • Role of the operating system
  • ๐Ÿ”ฅ Role of Instruction Set Architecture
  • System calls
  • Device drivers
  • Application Binary Interface or ABI
  • Registers visible to software
  • Memory address space
  • Input/output address space
  • Interrupt and exception interface
  • User mode and supervisor mode
  • ๐Ÿ”ฅ Relationship among application, operating system, ISA and hardware
  • ๐Ÿ”ฅ Abstraction layers of a computer system

1.6 Translation from High-Level Language to Hardware Language

  • ๐Ÿ”ฅ High-level language
  • ๐Ÿ”ฅ Assembly language
  • ๐Ÿ”ฅ Machine language
  • ๐Ÿ”ฅ Source program
  • ๐Ÿ”ฅ Object program
  • ๐Ÿ”ฅ Executable program
  • ๐Ÿ”ฅ Compilation process
  • ๐Ÿ”ฅ Preprocessor
  • ๐Ÿ”ฅ Compiler
  • ๐Ÿ”ฅ Assembler
  • ๐Ÿ”ฅ Linker
  • ๐Ÿ”ฅ Loader
  • Static and dynamic linking
  • Interpretation process
  • Just-In-Time or JIT compilation
  • ๐Ÿ”ฅ Translation of statements into assembly instructions
  • ๐Ÿ”ฅ๐Ÿ“˜ Representation of expressions in assembly language
  • ๐Ÿ”ฅ Translation of assembly into machine code
  • ๐Ÿ”ฅ Instruction encoding
  • Binary execution by hardware
  • ๐Ÿ”ฅ Complete program-translation diagram
  • ๐Ÿ”ฅ Example of translating a C statement into assembly and machine instructions

1.7 Instruction Set Architecture

  • ๐Ÿ”ฅ Definition of ISA
  • ๐Ÿ”ฅ Importance of ISA
  • ๐Ÿ”ฅ ISA as the interface between hardware and software
  • Programmer-visible components
  • ๐Ÿ”ฅ Instruction types
  • Data-transfer instructions
  • Arithmetic instructions
  • Logical instructions
  • Shift and rotate instructions
  • Comparison instructions
  • Branch and jump instructions
  • Procedure-call instructions
  • Input/output instructions
  • System and privileged instructions
  • ๐Ÿ”ฅ Instruction formats
  • ๐Ÿ”ฅ Instruction length
  • ๐Ÿ”ฅ Opcode
  • ๐Ÿ”ฅ Operand
  • ๐Ÿ”ฅ Register fields
  • ๐Ÿ”ฅ Immediate fields
  • ๐Ÿ”ฅ Address fields
  • ๐Ÿ”ฅ Number of operands
  • Zero-address instruction
  • ๐Ÿ“˜ One-address instruction
  • Two-address instruction
  • ๐Ÿ“˜ Three-address instruction
  • Data types supported by ISA
  • Register organization
  • General-purpose and special-purpose registers
  • Memory organization
  • ๐Ÿ”ฅ๐Ÿ“˜ Endianness
  • ๐Ÿ”ฅ๐Ÿ“˜ Big-endian byte order
  • ๐Ÿ”ฅ๐Ÿ“˜ Little-endian byte order
  • Alignment
  • ๐Ÿ”ฅ๐Ÿ“˜ Addressing modes
  • Immediate addressing
  • Register addressing
  • ๐Ÿ”ฅ๐Ÿ“˜ Direct addressing
  • ๐Ÿ”ฅ๐Ÿ“˜ Indirect addressing
  • Register-indirect addressing
  • Indexed addressing
  • Base addressing
  • Relative or PC-relative addressing
  • Stack addressing
  • Auto-increment and auto-decrement addressing
  • ๐Ÿ”ฅ๐Ÿ“˜ Instruction encoding and decoding
  • Orthogonality
  • Compatibility and extensibility

1.8 ISA Styles and Features

  • Accumulator-based architecture
  • Stack-based architecture
  • General-purpose register architecture
  • Registerโ€“memory architecture
  • Loadโ€“store architecture
  • Fixed-length instructions
  • Variable-length instructions
  • Memory-to-memory operation
  • Register-to-register operation
  • Condition codes and status flags
  • Procedure and function support
  • Privileged-operation support
  • Interrupt and exception support
  • Scalar instructions
  • โญ๐Ÿ“˜ Vector instructions
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Array processing
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Vector processing
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Vector processor
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Array processor
  • SIMD instructions
  • Atomic instructions
  • ISA design principles
  • Code density
  • Hardware complexity
  • Compiler friendliness

1.9 RISC Architecture

  • ๐Ÿ”ฅ Meaning of RISC
  • ๐Ÿ”ฅ Design philosophy
  • ๐Ÿ”ฅ Simple instruction set
  • ๐Ÿ”ฅ Fixed instruction length
  • ๐Ÿ”ฅ Loadโ€“store operation
  • ๐Ÿ”ฅ Large register set
  • ๐Ÿ”ฅ Simple addressing modes
  • ๐Ÿ”ฅ Few instruction formats
  • ๐Ÿ”ฅ Pipeline-friendly design
  • ๐Ÿ”ฅ Advantages and disadvantages
  • ๐Ÿ”ฅ Examples: MIPS, ARM and RISC-V

1.10 CISC Architecture

  • ๐Ÿ”ฅ Meaning of CISC
  • ๐Ÿ”ฅ Design philosophy
  • ๐Ÿ”ฅ Large and complex instruction set
  • ๐Ÿ”ฅ Variable-length instructions
  • ๐Ÿ”ฅ Multiple addressing modes
  • ๐Ÿ”ฅ Memory-to-memory instructions
  • ๐Ÿ”ฅ Microprogrammed control
  • ๐Ÿ”ฅ Advantages and disadvantages
  • ๐Ÿ”ฅ Examples: x86 and VAX
  • ๐Ÿ”ฅ Three-bus CISC-style processor organization

1.11 RISC and CISC Comparison

  • ๐Ÿ”ฅ Instruction complexity
  • ๐Ÿ”ฅ Instruction length
  • ๐Ÿ”ฅ Number of registers
  • ๐Ÿ”ฅ Addressing modes
  • ๐Ÿ”ฅ Control-unit design
  • ๐Ÿ”ฅ Memory access
  • ๐Ÿ”ฅ Pipelining suitability
  • ๐Ÿ”ฅ Compiler complexity
  • ๐Ÿ”ฅ Code size
  • ๐Ÿ”ฅ Execution speed
  • ๐Ÿ”ฅ Power consumption
  • ๐Ÿ”ฅ Modern combination of RISC and CISC ideas

1.12 Performance Metrics

  • ๐Ÿ”ฅ๐Ÿ“˜ Meaning of computer performance
  • ๐Ÿ”ฅ๐Ÿ“˜ Response time or latency
  • ๐Ÿ”ฅ๐Ÿ“˜ Throughput
  • ๐Ÿ”ฅ๐Ÿ“˜ Difference between response time and throughput
  • ๐Ÿ”ฅ๐Ÿ“˜ Execution time
  • ๐Ÿ”ฅ CPU execution time
  • User CPU time
  • System CPU time
  • Elapsed time
  • ๐Ÿ”ฅ Clock cycle
  • ๐Ÿ”ฅ๐Ÿ“˜ Clock rate
  • ๐Ÿ”ฅ Clock-cycle time
  • ๐Ÿ”ฅ Instruction count
  • ๐Ÿ”ฅ๐Ÿ“˜ Cycles Per Instruction or CPI
  • Instructions Per Cycle or IPC
  • ๐Ÿ”ฅ๐Ÿ“˜ Million Instructions Per Second or MIPS
  • Floating-Point Operations Per Second or FLOPS
  • Benchmark
  • Workload
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Speedup
  • ๐Ÿ”ฅ Performance ratio
  • Power and energy consumption
  • Performance per watt
  • Cost-performance ratio
  • Reliability and availability
  • ๐Ÿ”ฅ CPU performance equation
  • ๐Ÿ”ฅ Average CPI calculation
  • ๐Ÿ”ฅ Comparison of processors
  • Effect of compiler, ISA and implementation on performance
  • Common mistakes in performance comparison

Important equations:

\[ \text{CPU Time} = \text{Instruction Count}\times\text{CPI}\times\text{Clock Cycle Time} \]
\[ \text{CPU Time} = \frac{\text{Instruction Count}\times\text{CPI}}{\text{Clock Rate}} \]
\[ \text{Performance}=\frac{1}{\text{Execution Time}} \]
\[ \text{Speedup} = \frac{\text{Old Execution Time}}{\text{New Execution Time}} \]

1.13 Amdahlโ€™s Law

  • โญ๐Ÿ“˜ Meaning and purpose of Amdahlโ€™s Law
  • โญ๐Ÿ“˜ Enhanced and unaffected portions
  • โญ๐Ÿ“˜ Fraction of execution time improved
  • โญ๐Ÿ“˜ Enhancement factor
  • โญ๐Ÿ“˜ Overall speedup
  • โญ๐Ÿ“˜ Maximum possible speedup
  • โญ๐Ÿ“˜ Limitation of parallel improvement
  • โญ๐Ÿ“˜ Sequential bottleneck
  • โญ๐Ÿ“˜ Numerical problems
  • โญ๐Ÿ“˜ Application to processors, memory and parallel systems
  • โญ๐Ÿ“˜ Amdahlโ€™s Law versus ideal speedup
  • ๐Ÿ“˜ Mooreโ€™s Law
  • ๐Ÿ“˜ Mooreโ€™s Law versus Amdahlโ€™s Law
\[ \text{Overall Speedup} = \frac{1} {(1-f)+\frac{f}{S}} \]

Here, \(f\) is the improved fraction and \(S\) is its speedup.

1.14 Case Studies of ISA

  • ๐Ÿ”ฅ MIPS ISA
  • ๐Ÿ”ฅ MIPS register organization
  • ๐Ÿ”ฅ MIPS instruction formats: R, I and J
  • ๐Ÿ”ฅ MIPS addressing modes
  • ๐Ÿ”ฅ MIPS arithmetic, memory and branch instructions
  • ARM ISA
  • ARM registers and instruction styles
  • Conditional execution in ARM
  • โญ x86 ISA
  • โญ x86 register organization
  • โญ Variable-length x86 instructions
  • โญ Intel 80386 architecture
  • โญ Intel 80486 architecture
  • โญ Pentium architecture
  • RISC-V ISA
  • RISC-V base instruction formats
  • Comparison of MIPS, ARM, x86 and RISC-V
  • ๐Ÿ”ฅ๐Ÿ“˜ Example instruction translation for an ISA

Chapter 2: Basic Processing Unit and Pipelining

2.1 Components of the Processor

  • Processor organization
  • ๐Ÿ”ฅ Arithmetic and Logic Unit
  • ๐Ÿ”ฅ Control Unit
  • ๐Ÿ”ฅ Register file
  • Program Counter or PC
  • Instruction Register or IR
  • Memory Address Register or MAR
  • Memory Data Register or MDR
  • General-purpose registers
  • Stack Pointer
  • Status or flag register
  • ๐Ÿ”ฅ Instruction decoder
  • Clock and timing unit
  • ๐Ÿ”ฅ Internal CPU buses
  • Multiplexer
  • Sign-extension unit
  • Shift unit
  • Adder
  • Pipeline registers
  • ๐Ÿ”ฅ Connections among processor components

2.2 Datapath

  • ๐Ÿ”ฅ Meaning of datapath
  • Single-bus datapath
  • Two-bus datapath
  • ๐Ÿ”ฅ Three-bus datapath
  • ๐Ÿ”ฅ Three-bus CISC-style processor organization
  • Register-file operation
  • ๐Ÿ”ฅ ALU input selection
  • ๐Ÿ”ฅ Multiplexer operation
  • Immediate-value generation
  • Sign extension and zero extension
  • PC update circuit
  • Branch-target calculation
  • Jump-target calculation
  • ๐Ÿ”ฅ Memory-access path
  • ๐Ÿ”ฅ Single-cycle datapath
  • ๐Ÿ”ฅ Multicycle datapath
  • ๐Ÿ”ฅ Datapath for R-type instruction
  • ๐Ÿ”ฅ Datapath for load instruction
  • ๐Ÿ”ฅ Datapath for store instruction
  • ๐Ÿ”ฅ Datapath for branch instruction
  • Datapath for jump instruction
  • ๐Ÿ”ฅ Block diagram of a processor datapath
  • ๐Ÿ”ฅ Datapath modifications for data forwarding

2.3 Control Unit

  • ๐Ÿ”ฅ Purpose of the control unit
  • ๐Ÿ”ฅ Control signals
  • ๐Ÿ”ฅ Instruction decoding
  • ๐Ÿ”ฅ ALU control
  • ๐Ÿ”ฅ Register control
  • ๐Ÿ”ฅ Memory control
  • ๐Ÿ”ฅ Multiplexer control
  • ๐Ÿ”ฅ PC control
  • Main decoder
  • ALU decoder
  • ๐Ÿ”ฅ Timing and sequencing
  • Control word
  • ๐Ÿ”ฅ๐Ÿ“˜ Control-state diagram
  • ๐Ÿ”ฅ๐Ÿ“˜ Finite State Machine or FSM
  • Single-cycle control
  • Multicycle control
  • Pipelined control

2.4 Execution of a Complete Instruction

  • ๐Ÿ”ฅ๐Ÿ“˜ Instruction cycle
  • ๐Ÿ”ฅ๐Ÿ“˜ Instruction-cycle state diagram
  • ๐Ÿ”ฅ๐Ÿ“˜ Instruction fetch
  • ๐Ÿ”ฅ๐Ÿ“˜ Instruction decode
  • ๐Ÿ”ฅ๐Ÿ“˜ Operand fetch
  • ๐Ÿ”ฅ๐Ÿ“˜ Execute
  • ๐Ÿ”ฅ๐Ÿ“˜ Memory access
  • ๐Ÿ”ฅ๐Ÿ“˜ Write-back
  • ๐Ÿ”ฅ๐Ÿ“˜ PC update
  • ๐Ÿ”ฅ Register Transfer Language or RTL
  • ๐Ÿ”ฅ Micro-operations
  • ๐Ÿ”ฅ Fetch-cycle micro-operations
  • ๐Ÿ”ฅ๐Ÿ“˜ Execution of arithmetic instructions
  • Execution of logical instructions
  • ๐Ÿ”ฅ๐Ÿ“˜ Execution of load and store instructions
  • ๐Ÿ”ฅ Execution of branch and jump instructions
  • Procedure call and return
  • ๐Ÿ”ฅ๐Ÿ“˜ Complete instruction-execution examples
  • ๐Ÿ”ฅ Single-cycle versus multicycle execution
  • ๐Ÿ”ฅ Execution steps for Load R2, LOC
  • ๐Ÿ”ฅ Execution steps for Add (R3), R1
  • ๐Ÿ“˜ One-operand execution such as MUL BX
  • ๐Ÿ“˜ Three-address execution such as ADD R4, R3, R2

2.5 Hardwired Control

  • Meaning of hardwired control
  • Control-signal generation
  • Opcode decoder
  • Sequence counter
  • Timing signals
  • State-machine implementation
  • Advantages and disadvantages
  • Speed and hardware complexity
  • Suitable applications

2.6 Microprogrammed Control

  • ๐Ÿ”ฅ Meaning of microprogrammed control
  • ๐Ÿ”ฅ Control memory
  • ๐Ÿ”ฅ Microinstruction
  • ๐Ÿ”ฅ Microprogram
  • ๐Ÿ”ฅ Control word
  • ๐Ÿ”ฅ Microprogram counter
  • ๐Ÿ”ฅ Microinstruction register
  • ๐Ÿ”ฅ Microprogram sequencer
  • Horizontal microprogramming
  • Vertical microprogramming
  • Microinstruction formats
  • Control-store organization
  • Nanoprogramming
  • Advantages and disadvantages
  • Hardwired versus microprogrammed control
  • ๐Ÿ”ฅ Microprogrammed control for a branch instruction

2.7 Instruction-Level Parallelism

  • Meaning of ILP
  • Sequential execution
  • Overlapped execution
  • Dependence between instructions
  • Data dependence
  • Name dependence
  • Control dependence
  • Pipeline parallelism
  • Multiple-issue parallelism
  • Limits of ILP
  • Measuring ILP using CPI and IPC

2.8 Basic Concepts of Pipelining

  • ๐Ÿ”ฅ Meaning of pipelining
  • ๐Ÿ”ฅ Laundry or assembly-line analogy
  • ๐Ÿ”ฅ Pipeline stages
  • ๐Ÿ”ฅ Five-stage instruction pipeline
  • ๐Ÿ”ฅ IF: Instruction Fetch
  • ๐Ÿ”ฅ ID: Instruction Decode
  • ๐Ÿ”ฅ EX: Execute
  • ๐Ÿ”ฅ MEM: Memory Access
  • ๐Ÿ”ฅ WB: Write Back
  • Pipeline registers
  • Pipeline clock cycle
  • Pipeline latency
  • ๐Ÿ”ฅ๐Ÿ“˜ Pipeline throughput
  • Pipeline filling and draining
  • ๐Ÿ”ฅ Ideal pipeline speedup
  • Pipeline efficiency
  • ๐Ÿ”ฅ Pipeline timing diagram
  • ๐Ÿ”ฅ Non-pipelined versus pipelined processor
  • Balanced and unbalanced pipeline stages
  • Pipeline depth
  • ๐Ÿ”ฅ Pipeline performance calculations
  • ๐Ÿ”ฅ How pipelining increases processor performance
  • ๐Ÿ”ฅ Ideal pipelined operation
\[ \text{Pipeline Time}=(k+n-1)t \]
\[ \text{Ideal Speedup} = \frac{\text{Non-pipelined Time}} {\text{Pipelined Time}} \]

Here, \(k\) is the number of stages, \(n\) is the number of instructions and \(t\) is the pipeline clock time.

2.9 Pipelined Implementation of Datapath and Control

  • ๐Ÿ”ฅ Pipelined datapath
  • IF/ID pipeline register
  • ID/EX pipeline register
  • EX/MEM pipeline register
  • MEM/WB pipeline register
  • Movement of instructions through stages
  • Passing data and control signals
  • Pipelined control signals
  • Register-file timing
  • Memory-operation timing
  • Branch handling in pipeline
  • Pipeline control unit
  • ๐Ÿ”ฅ Forwarding unit
  • ๐Ÿ”ฅ Hazard-detection unit
  • ๐Ÿ”ฅ Stalling and flushing
  • Complete pipelined instruction execution
  • ๐Ÿ”ฅ Pipeline timing table and diagram
  • ๐Ÿ”ฅ Datapath modification to support data forwarding

2.10 Structural Hazards

  • ๐Ÿ”ฅ Meaning of structural hazard
  • ๐Ÿ”ฅ Resource conflict
  • Single memory for instruction and data
  • Register-file conflicts
  • ALU resource conflicts
  • Detection of structural hazards
  • Pipeline stalling
  • Duplication of hardware resources
  • Separate instruction and data cache
  • Multiport memory
  • ๐Ÿ”ฅ Examples and timing diagrams

2.11 Data Hazards

  • ๐Ÿ”ฅ๐Ÿ“˜ Meaning of data hazard
  • ๐Ÿ”ฅ๐Ÿ“˜ Read After Write or RAW hazard
  • ๐Ÿ”ฅ Write After Read or WAR hazard
  • ๐Ÿ”ฅ Write After Write or WAW hazard
  • True dependence
  • Anti-dependence
  • Output dependence
  • ๐Ÿ”ฅ Load-use hazard
  • ๐Ÿ”ฅ Hazard detection
  • ๐Ÿ”ฅ Operand forwarding or bypassing
  • ๐Ÿ”ฅ EX-to-EX forwarding
  • ๐Ÿ”ฅ MEM-to-EX forwarding
  • ๐Ÿ”ฅ Pipeline stall
  • ๐Ÿ”ฅ Bubble or NOP insertion
  • Compiler instruction scheduling
  • Register renaming
  • ๐Ÿ”ฅ Side effects of hazards on pipeline performance
  • ๐Ÿ”ฅ Examples and timing diagrams

2.12 Control Hazards

  • ๐Ÿ”ฅ๐Ÿ“˜ Meaning of control hazard
  • ๐Ÿ”ฅ๐Ÿ“˜ Branch instruction
  • Jump instruction
  • Branch outcome and branch target
  • Branch penalty
  • ๐Ÿ”ฅ Pipeline flushing
  • Stall until branch decision
  • Early branch resolution
  • Delayed branch
  • Static branch prediction
  • Dynamic branch prediction
  • One-bit predictor
  • Two-bit predictor
  • Branch History Table
  • Branch Target Buffer
  • Return Address Stack
  • Prediction accuracy
  • Misprediction penalty
  • ๐Ÿ”ฅ Examples and timing diagrams

2.13 Exception Handling

  • Meaning of exception
  • Exception versus interrupt
  • Synchronous and asynchronous events
  • Internal and external exceptions
  • Arithmetic overflow
  • Divide-by-zero
  • Undefined instruction
  • Page fault
  • Hardware failure
  • System call or trap
  • Precise exception
  • Imprecise exception
  • Exception Program Counter
  • Cause register
  • Status register
  • Exception vector
  • Saving processor state
  • Transferring control to a handler
  • Returning from an exception
  • Exception handling in a pipeline
  • Flushing affected instructions
  • Handling multiple simultaneous exceptions

Chapter 3: Advanced ILP, Multicore and GPU

3.1 Exploitation of More ILP

  • Review of instruction-level parallelism
  • Basic block
  • Loop-level parallelism
  • Dependence analysis
  • Data dependence
  • Name dependence
  • Control dependence
  • Pipeline limitations
  • Multiple functional units
  • Increased issue width
  • Instruction scheduling
  • Register renaming
  • Branch prediction
  • Speculative execution
  • Memory dependence
  • Limits of available parallelism

3.2 Hardware Approaches

  • ๐Ÿ”ฅ Dynamic instruction scheduling
  • ๐Ÿ”ฅ Out-of-order execution
  • In-order issue and completion
  • Out-of-order issue and completion
  • Multiple functional units
  • Register renaming
  • Reorder buffer
  • Reservation stations
  • Scoreboarding
  • ๐Ÿ”ฅ Tomasuloโ€™s algorithm
  • Dynamic branch prediction
  • Speculative execution
  • Load/store queues
  • Memory disambiguation
  • In-order retirement
  • Precise exception support

3.3 Software and Compiler Approaches

  • Static instruction scheduling
  • Code reordering
  • Loop unrolling
  • Loop interchange
  • Loop fusion
  • Loop fission
  • Software pipelining
  • Register allocation
  • Trace scheduling
  • Predication
  • Branch elimination
  • Dependency analysis
  • Compiler-generated parallel instructions
  • Profile-guided optimization
  • Advantages and limitations of compiler techniques

3.4 Dynamic Scheduling

  • ๐Ÿ”ฅ Need for dynamic scheduling
  • ๐Ÿ”ฅ Dynamic-scheduler block diagram
  • ๐Ÿ”ฅ Handling variable execution latency
  • Scoreboarding technique
  • ๐Ÿ”ฅ Tomasuloโ€™s algorithm
  • ๐Ÿ”ฅ Issue, execute and write-result stages
  • Reservation station
  • Common Data Bus
  • Register-status table
  • Operand availability
  • Register renaming
  • RAW, WAR and WAW handling
  • Out-of-order execution
  • In-order retirement
  • Worked instruction-scheduling example

3.5 Speculation

  • Meaning of speculation
  • Control speculation
  • Data speculation
  • Hardware speculation
  • Software speculation
  • Branch prediction
  • Speculative instruction execution
  • Reorder buffer
  • Instruction commit or retirement
  • Recovery after wrong speculation
  • Exception handling during speculation
  • Benefits and risks of speculation

3.6 Multiple-Issue Processors

  • Meaning of multiple issue
  • Issue width
  • Superscalar processor
  • Statically scheduled multiple issue
  • Dynamically scheduled superscalar processor
  • Very Long Instruction Word or VLIW
  • Explicitly Parallel Instruction Computing or EPIC
  • Instruction pairing
  • Issue restrictions
  • Functional-unit conflicts
  • Dependency checking
  • In-order versus out-of-order issue
  • Superscalar versus VLIW
  • CPI below one and IPC above one
  • Limitations of multiple-issue execution

3.7 ILP and Thread-Level Parallelism

  • Instruction-level parallelism
  • Thread-level parallelism or TLP
  • Process and thread
  • Hardware thread
  • Fine-grained multithreading
  • Coarse-grained multithreading
  • Simultaneous Multithreading or SMT
  • Hyper-Threading
  • Multiprocessing
  • Shared-memory multiprocessor
  • Distributed-memory system
  • ILP versus TLP
  • Advantages and limitations of multithreading
  • โญ๐Ÿ“˜ Single Program, Multiple Data or SPMD
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Flynnโ€™s classification in parallel processing

3.8 Multicore Processors

  • Meaning of multicore processor
  • Single-core versus multicore
  • Homogeneous and heterogeneous cores
  • Shared and private caches
  • Inter-core communication
  • Cache coherence
  • Coherence problem
  • Snooping protocol
  • Directory-based protocol
  • MESI protocol
  • Memory consistency
  • On-chip interconnection
  • Bus, ring, mesh and Network-on-Chip
  • Scalability
  • Power wall and thermal limitation
  • Parallel-programming challenges
  • Examples of modern multicore processors

3.9 Graphics and Computing GPUs

  • CPU versus GPU
  • GPU architecture
  • Graphics pipeline
  • Streaming multiprocessor
  • GPU core
  • ๐Ÿ”ฅโญ๐Ÿ“˜ SIMD and SIMT execution
  • Warp or wavefront
  • Thread, block and grid
  • GPU memory hierarchy
  • Registers
  • Shared memory
  • Global memory
  • Constant and texture memory
  • Coalesced memory access
  • Branch divergence
  • General-Purpose GPU or GPGPU
  • CUDA and OpenCL concepts
  • GPU applications
  • Advantages and limitations of GPU computing
  • Heterogeneous CPUโ€“GPU systems
  • Many-core processors
  • Heterogeneous computing
  • Chiplet-based processors
  • System-on-Chip or SoC
  • AI and machine-learning accelerators
  • Tensor-processing units
  • Neural-processing units
  • Energy-efficient architecture
  • Domain-specific architecture
  • Edge-computing processors
  • Mobile-processor architecture
  • Vector extensions
  • Open ISA such as RISC-V
  • Advanced packaging
  • 3D stacking
  • Security-related processor features
  • Cloud and data-centre processors

Chapter 4: Arithmetic for Computers

4.1 Number Representation Fundamentals

  • Binary, octal, decimal and hexadecimal systems
  • Number-system conversion
  • Unsigned integers
  • Signed-magnitude representation
  • Oneโ€™s complement
  • Twoโ€™s complement
  • Range of signed and unsigned numbers
  • Sign extension
  • Fixed-point numbers
  • Overflow and underflow
  • Binary fractions
  • Arithmetic shift and logical shift

4.2 Binary Addition

  • Rules of binary addition
  • Addition of unsigned numbers
  • Addition of signed numbers
  • Twoโ€™s-complement addition
  • Carry and overflow
  • Half adder
  • Full adder
  • Ripple-carry adder
  • Parallel binary adder
  • Adderโ€“subtractor circuit
  • Examples and numerical problems

4.3 Binary Subtraction

  • Rules of binary subtraction
  • Direct binary subtraction
  • Subtraction using oneโ€™s complement
  • Subtraction using twoโ€™s complement
  • Borrow and overflow
  • Signed-number subtraction
  • Adderโ€“subtractor implementation
  • Examples and numerical problems

4.4 Fast Adders

  • Delay in ripple-carry adder
  • Carry propagation and carry generation
  • Carry Look-Ahead Adder or CLA
  • Generate and propagate functions
  • Carry-look-ahead equations
  • Block carry-look-ahead
  • Carry-select adder
  • Carry-skip adder
  • Carry-save adder
  • Parallel-prefix adder
  • Koggeโ€“Stone adder concept
  • Comparison of adder speed, area and complexity

For each bit:

\[ G_i=A_iB_i \]
\[ P_i=A_i\oplus B_i \]
\[ C_{i+1}=G_i+P_iC_i \]

4.5 Binary Multiplication

  • ๐Ÿ”ฅ๐Ÿ“˜ Basic multiplication algorithm
  • ๐Ÿ”ฅ๐Ÿ“˜ Multiplication-algorithm flowchart
  • ๐Ÿ”ฅ๐Ÿ“˜ Multiplicand and multiplier
  • ๐Ÿ”ฅ๐Ÿ“˜ Partial products
  • ๐Ÿ”ฅ๐Ÿ“˜ Shift-and-add multiplication
  • ๐Ÿ”ฅ๐Ÿ“˜ Hardware multiplication unit
  • ๐Ÿ”ฅ๐Ÿ“˜ Algorithm and hardware diagram for multiplication
  • Sequential multiplication
  • ๐Ÿ”ฅ๐Ÿ“˜ Combinational multiplier
  • ๐Ÿ”ฅ๐Ÿ“˜ Signed multiplication
  • ๐Ÿ”ฅ๐Ÿ“˜ Boothโ€™s multiplication algorithm
  • Modified Booth algorithm
  • Carry-save multiplication
  • ๐Ÿ”ฅ๐Ÿ“˜ Array multiplier
  • Overflow in multiplication
  • ๐Ÿ”ฅ๐Ÿ“˜ Worked numerical problems
  • ๐Ÿ”ฅ Detailed design of a 4-bit binary multiplier

4.6 Binary Division

  • ๐Ÿ”ฅ๐Ÿ“˜ Dividend, divisor, quotient and remainder
  • ๐Ÿ”ฅ๐Ÿ“˜ Shift-and-subtract division
  • ๐Ÿ”ฅ๐Ÿ“˜ Division-algorithm flowchart
  • ๐Ÿ”ฅ๐Ÿ“˜ Restoring division algorithm
  • ๐Ÿ”ฅ๐Ÿ“˜ Non-restoring division algorithm
  • Signed binary division
  • ๐Ÿ”ฅ๐Ÿ“˜ Hardware division unit
  • Division by zero
  • Overflow condition
  • Comparison of restoring and non-restoring division
  • ๐Ÿ”ฅ๐Ÿ“˜ Worked numerical problems

4.7 Floating-Point Numbers

  • Need for floating-point representation
  • Scientific notation
  • Normalized and denormalized numbers
  • Sign, exponent and significand
  • Biased exponent
  • ๐Ÿ”ฅ IEEE 754 standard
  • ๐Ÿ”ฅ Single-precision format
  • ๐Ÿ”ฅ Double-precision format
  • Half-precision concept
  • Positive and negative zero
  • Infinity
  • Not a Number or NaN
  • Subnormal numbers
  • ๐Ÿ”ฅ Conversion from decimal to IEEE 754
  • ๐Ÿ”ฅ Conversion from IEEE 754 to decimal
  • Range and precision
  • Overflow and underflow
  • Guard, round and sticky bits
  • Rounding modes
  • Rounding error
  • Floating-point accuracy
\[ N=(-1)^S\times(1.F)\times2^{E-\text{Bias}} \]

4.8 Floating-Point Addition and Subtraction

  • Compare exponents
  • Align significands
  • Add or subtract significands
  • Determine result sign
  • Normalize result
  • Round result
  • Check overflow and underflow
  • Hardware flowchart
  • Worked numerical examples

4.9 Floating-Point Multiplication

  • Determine sign
  • Add exponents
  • Subtract exponent bias
  • Multiply significands
  • Normalize result
  • Round result
  • Check exceptional conditions
  • Hardware flowchart
  • Worked numerical examples

4.10 Floating-Point Division

  • Determine sign
  • Subtract exponents
  • Add exponent bias
  • Divide significands
  • Normalize and round
  • Check exceptional conditions
  • Hardware flowchart
  • Worked numerical examples

Chapter 5: Memory System

5.1 Need for a Hierarchical Memory System

  • Difference between processor speed and memory speed
  • Memory wall
  • Memory hierarchy
  • Registers
  • Cache memory
  • Main memory
  • Secondary storage
  • Archival storage
  • Speed, cost and capacity relationship
  • ๐Ÿ”ฅ๐Ÿ“˜ Locality of reference
  • ๐Ÿ”ฅ๐Ÿ“˜ Temporal locality
  • ๐Ÿ”ฅ๐Ÿ“˜ Spatial locality
  • Sequential locality
  • Average Memory Access Time
  • Principle of inclusion

5.2 Types and Characteristics of Memory

  • Memory capacity
  • ๐Ÿ”ฅ Word and addressable unit
  • Access method
  • Sequential access
  • Direct access
  • Random access
  • ๐Ÿ“˜ Associative access
  • ๐Ÿ”ฅ Memory access time
  • Memory cycle time
  • Transfer rate
  • Volatile and non-volatile memory
  • Read-only and read-write memory
  • Semiconductor memory
  • Magnetic memory
  • Optical memory
  • SRAM
  • DRAM
  • SDRAM and DDR memory
  • ROM
  • PROM
  • EPROM
  • EEPROM
  • Flash memory
  • Hard disk and solid-state drive
  • Comparison of different memory types

5.3 Main Memory Organization

  • ๐Ÿ”ฅ Memory cells
  • ๐Ÿ”ฅ Internal organization of bit cells
  • ๐Ÿ”ฅ Memory words
  • ๐Ÿ”ฅ Memory address
  • Byte-addressable memory
  • Word-addressable memory
  • ๐Ÿ”ฅ๐Ÿ“˜ Memory chips and memory blocks
  • ๐Ÿ”ฅ๐Ÿ“˜ Address decoding
  • ๐Ÿ”ฅ๐Ÿ“˜ Memory expansion
  • ๐Ÿ”ฅ๐Ÿ“˜ Increasing word length
  • ๐Ÿ”ฅ๐Ÿ“˜ Increasing number of words
  • Memory banks
  • Memory interleaving
  • Low-order interleaving
  • High-order interleaving
  • Error detection and correction
  • Parity bit
  • ECC memory
  • Hamming-code concept
  • ๐Ÿ”ฅ๐Ÿ“˜ Memory-module design using smaller memory chips
  • ๐Ÿ“˜ Design of a \(1K\times8\) memory
  • ๐Ÿ”ฅ Design of a \(2M\times32\) memory with \(512K\times8\) SRAM chips

5.4 Cache Memory Fundamentals

  • ๐Ÿ”ฅ๐Ÿ“˜ Meaning and purpose of cache
  • ๐Ÿ”ฅ๐Ÿ“˜ Cache hit
  • ๐Ÿ”ฅ๐Ÿ“˜ Cache miss
  • ๐Ÿ”ฅ๐Ÿ“˜ Hit rate
  • ๐Ÿ”ฅ๐Ÿ“˜ Miss rate
  • Hit time
  • ๐Ÿ”ฅ๐Ÿ“˜ Miss penalty
  • ๐Ÿ”ฅ๐Ÿ“˜ Cache line or memory block
  • Cache controller
  • ๐Ÿ”ฅ๐Ÿ“˜ Cache mapping
  • ๐Ÿ”ฅ๐Ÿ“˜ Mapping function
  • ๐Ÿ”ฅ๐Ÿ“˜ Direct-mapped cache
  • ๐Ÿ”ฅ๐Ÿ“˜ Fully associative cache
  • ๐Ÿ”ฅ๐Ÿ“˜ Set-associative cache
  • ๐Ÿ”ฅ๐Ÿ“˜ Tag, index and offset fields
  • Valid bit
  • Dirty bit
  • Cache-address calculation
  • Cache-size calculation
  • Read hit and read miss
  • Write hit and write miss
\[ \text{AMAT} = \text{Hit Time} + (\text{Miss Rate}\times\text{Miss Penalty}) \]

5.5 Cache Replacement and Writing Policies

  • Need for replacement
  • Least Recently Used or LRU
  • First In First Out or FIFO
  • Random replacement
  • Least Frequently Used or LFU
  • ๐Ÿ”ฅ Write-through policy
  • ๐Ÿ”ฅ Write-back policy
  • ๐Ÿ”ฅ Advantages and disadvantages of write-through
  • ๐Ÿ”ฅ Advantages and disadvantages of write-back
  • Write allocate
  • No-write allocate
  • Write buffer
  • Multilevel cache
  • Inclusive, exclusive and non-inclusive cache
  • Unified and split cache
  • Instruction and data cache

5.6 Improving Cache Performance

  • Reducing miss rate
  • Reducing miss penalty
  • Reducing hit time
  • Compulsory miss
  • Capacity miss
  • Conflict miss
  • Coherence miss
  • Larger block size
  • Larger cache
  • Higher associativity
  • Multilevel cache
  • Victim cache
  • Prefetching
  • Critical-word-first
  • Early restart
  • Non-blocking cache
  • Write buffer
  • Cache optimization by compiler
  • Loop interchange and loop blocking
  • Cache-performance numerical problems

5.7 Virtual Memory

  • ๐Ÿ”ฅ๐Ÿ“˜ Meaning and purpose of virtual memory
  • ๐Ÿ”ฅ๐Ÿ“˜ Virtual and physical addresses
  • ๐Ÿ”ฅ๐Ÿ“˜ Address translation
  • ๐Ÿ”ฅ๐Ÿ“˜ Mapping between virtual and physical memory
  • Page and page frame
  • Page table
  • Page Table Entry or PTE
  • Valid and dirty bits
  • Protection bits
  • Page fault
  • Page-fault handling
  • Demand paging
  • Translation Lookaside Buffer or TLB
  • TLB hit and miss
  • Multilevel page table
  • Inverted page table
  • Page size
  • Internal fragmentation
  • Memory protection
  • Shared pages
  • Virtual-memory access-time calculation

5.8 Memory Management Techniques

  • Contiguous memory allocation
  • Fixed partitioning
  • Variable partitioning
  • Internal fragmentation
  • External fragmentation
  • Compaction
  • Paging
  • Segmentation
  • Segmentation with paging
  • Page-replacement algorithms
  • FIFO replacement
  • Optimal replacement
  • LRU replacement
  • Clock or second-chance replacement
  • Working-set concept
  • Thrashing
  • Memory protection and sharing
  • Comparison of paging and segmentation

5.9 Associative Memory

  • ๐Ÿ“˜ Meaning of associative memory
  • ๐Ÿ“˜ Content-Addressable Memory or CAM
  • ๐Ÿ“˜ Search by content
  • ๐Ÿ“˜ Match logic
  • ๐Ÿ“˜ Associative-memory organization
  • ๐Ÿ“˜ Read and write operations
  • ๐Ÿ“˜ Mask register
  • ๐Ÿ“˜ Exact and partial matching
  • ๐Ÿ“˜ Applications in TLB and cache
  • ๐Ÿ“˜ Advantages and disadvantages
  • ๐Ÿ“˜ Associative memory versus conventional memory

Chapter 6: Input/Output Organization

6.1 Accessing Input/Output Devices

  • I/O-device characteristics
  • Peripheral devices
  • I/O module
  • I/O controller
  • Device controller
  • Data register
  • Status register
  • Control register
  • I/O port
  • Input and output instructions
  • Memory-mapped I/O
  • Isolated or port-mapped I/O
  • Synchronous and asynchronous transfer
  • Handshaking
  • Serial and parallel communication
  • I/O bus operation

6.2 Programmed Input/Output

  • Meaning of programmed I/O
  • Polling
  • Busy-waiting
  • Status checking
  • Input-operation sequence
  • Output-operation sequence
  • Processor involvement
  • Advantages and disadvantages
  • Programmed-I/O flowchart
  • Suitable applications

6.3 Interrupts

  • Meaning of interrupt
  • Need for interrupt-driven I/O
  • Interrupt-request signal
  • Interrupt acknowledgement
  • Interrupt Service Routine or ISR
  • Interrupt vector
  • Vectored and non-vectored interrupts
  • Maskable and non-maskable interrupts
  • Hardware and software interrupts
  • Internal and external interrupts
  • Interrupt priority
  • Daisy-chain priority
  • Parallel priority
  • Nested interrupts
  • Saving and restoring processor context
  • Interrupt latency
  • Return from interrupt
  • Interrupt-driven I/O sequence
  • Polling versus interrupt-driven I/O

6.4 Direct Memory Access

  • ๐Ÿ“˜ Meaning and need for DMA
  • ๐Ÿ“˜ DMA controller
  • ๐Ÿ“˜ DMA registers
  • ๐Ÿ“˜ DMA request and acknowledgement
  • ๐Ÿ“˜ Data transfer between I/O and memory
  • ๐Ÿ“˜ Bus arbitration
  • ๐Ÿ“˜ Burst-mode DMA
  • ๐Ÿ“˜ Cycle-stealing DMA
  • ๐Ÿ“˜ Transparent DMA
  • ๐Ÿ“˜ Block transfer
  • ๐Ÿ“˜ Processor involvement
  • ๐Ÿ“˜ DMA operation sequence
  • ๐Ÿ“˜ Advantages and disadvantages
  • ๐Ÿ“˜ Programmed I/O versus interrupt I/O versus DMA

6.5 Interface Circuits

  • Purpose of an interface circuit
  • I/O ports
  • Data, status and control registers
  • Address decoder
  • Buffer register
  • Tri-state buffer
  • Handshaking circuits
  • Strobe control
  • Serial interface
  • Parallel interface
  • Synchronous interface
  • Asynchronous interface
  • Device-controller connection
  • Input-interface circuit
  • Output-interface circuit
  • Typical interface-circuit diagram

6.6 Standard I/O Interfaces

  • Need for standard interfaces
  • Compatibility
  • Data-transfer speed
  • Device addressing
  • Plug-and-play
  • Error detection
  • Physical and logical interface
  • Serial versus parallel interface

6.7 PCI

  • Meaning of Peripheral Component Interconnect
  • PCI bus architecture
  • PCI devices
  • Bus master and target
  • Address and data transfer
  • Bus arbitration
  • PCI configuration space
  • PCI Express or PCIe
  • PCIe lanes
  • Point-to-point connection
  • PCI versus PCIe
  • Applications, advantages and limitations

6.8 SCSI

  • Meaning of Small Computer System Interface
  • SCSI architecture
  • Initiator and target
  • SCSI bus
  • Device identification
  • Command and data phases
  • Parallel and Serial Attached SCSI
  • Storage-device applications
  • Advantages and limitations
  • SCSI versus other storage interfaces

6.9 USB

  • Meaning of Universal Serial Bus
  • USB architecture
  • Host, hub and device
  • USB topology
  • Endpoint and pipe
  • USB transfer types
  • Control transfer
  • Bulk transfer
  • Interrupt transfer
  • Isochronous transfer
  • Device enumeration
  • Plug-and-play
  • Power delivery
  • USB connectors
  • USB generations and speed classes
  • Advantages and limitations

6.10 Comparison of I/O Interfaces

  • PCI, PCIe, SCSI and USB comparison
  • Serial versus parallel operation
  • Internal versus external connection
  • Transfer speed
  • Device support
  • Communication method
  • Cost and complexity
  • Common applications

Supporting Topics Required for the Mini-Book

  • Boolean algebra and logic gates
  • Combinational and sequential circuits
  • Multiplexers and decoders
  • Flip-flops and registers
  • Counters
  • Binary and hexadecimal conversion
  • Signed-number representation
  • ๐Ÿ”ฅ Register Transfer Language
  • ๐Ÿ”ฅ๐Ÿ“˜ Assembly-language basics
  • ๐Ÿ”ฅ MIPS instruction formats
  • ๐Ÿ”ฅ๐Ÿ“˜ Memory-address calculation
  • Basic operating-system concepts
  • ๐Ÿ”ฅ Basic compiler and assembler concepts
  • ๐Ÿ”ฅ๐Ÿ“˜ Finite State Machine
  • ๐Ÿ”ฅโญ๐Ÿ“˜ Performance numerical problems
  • ๐Ÿ”ฅ Pipeline timing diagrams
  • ๐Ÿ”ฅ๐Ÿ“˜ Cache numerical problems
  • ๐Ÿ”ฅ๐Ÿ“˜ Virtual-memory numerical problems
  • ๐Ÿ”ฅ IEEE 754 conversion problems
  • ๐Ÿ”ฅ๐Ÿ“˜ Arithmetic-algorithm flowcharts

Exact Teacher-Suggested Practice Problems

Current Teacherโ€™s Exact Priority Problems ๐Ÿ”ฅ

  1. ๐Ÿ”ฅ What are the classes of computers? Explain their characteristics.
  2. ๐Ÿ”ฅ Explain the layers of computer-system architecture with a neat diagram.
  3. ๐Ÿ”ฅ Define throughput and response time. Compare them as performance measures.
  4. ๐Ÿ”ฅ Discuss the basic functional units of a computer.
  5. ๐Ÿ”ฅ Briefly discuss the bus structure of a processor.
  6. ๐Ÿ”ฅ Define ISA and explain MIPS instruction formats with examples.
  7. ๐Ÿ”ฅ Differentiate between RISC and CISC.
  8. ๐Ÿ”ฅ Write the execution steps of Load R2, LOC.
  9. ๐Ÿ”ฅ Explain the characteristics of a RISC processor.
  10. ๐Ÿ”ฅ Draw the three-bus CISC-style processor organization.
  11. ๐Ÿ”ฅ Write the execution steps and architecture for Add (R3), R1.
  12. ๐Ÿ”ฅ Explain MIPS addressing modes with examples.
  13. ๐Ÿ”ฅ Translate f = (a + b) - (c + d); g = f + A[10]; into MIPS assembly.
  14. ๐Ÿ”ฅ Explain the complete compilation process of a C program.
  15. ๐Ÿ”ฅ Explain various addressing modes with examples.
  16. ๐Ÿ”ฅ Define an instruction and explain its computer representation.
  17. ๐Ÿ”ฅ Explain the processor datapath with a block diagram.
  18. ๐Ÿ”ฅ Explain datapath control signals.
  19. ๐Ÿ”ฅ Explain a dynamic scheduler with a block diagram.
  20. ๐Ÿ”ฅ Explain a microprogrammed control unit for a branch instruction.
  21. ๐Ÿ”ฅ Explain the purpose of a control unit.
  22. ๐Ÿ”ฅ Define word, address and memory access time.
  23. ๐Ÿ”ฅ Explain how pipelining increases processor performance.
  24. ๐Ÿ”ฅ Explain ideal pipelined operation.
  25. ๐Ÿ”ฅ Explain the issues of pipelined operation.
  26. ๐Ÿ”ฅ Explain operand forwarding with an example.
  27. ๐Ÿ”ฅ Show datapath modifications for data forwarding.
  28. ๐Ÿ”ฅ Define a data hazard, its solutions and its performance effects.
  29. ๐Ÿ”ฅ Show a processor multiplication algorithm and hardware with an example.
  30. ๐Ÿ”ฅ Divide \((1010)_2\) by \((0010)_2\), showing all steps.
  31. ๐Ÿ”ฅ Represent \(-0.625_{10}\) in IEEE 754 single and double precision.
  32. ๐Ÿ”ฅ Design a 4-bit binary multiplier.
  33. ๐Ÿ”ฅ Apply Boothโ€™s algorithm to \(16\times(-2)\).
  34. ๐Ÿ”ฅ Explain performance using clock rate, CPI and MIPS.
  35. ๐Ÿ”ฅ Solve the P1, P2 and P3 processor-performance problem.
  36. ๐Ÿ”ฅ Explain Flynnโ€™s classification with examples.
  37. ๐Ÿ”ฅ Define cache, cache hit, cache miss and miss penalty.
  38. ๐Ÿ”ฅ Compare write-through and write-back cache policies.
  39. ๐Ÿ”ฅ Write RTL for MIPS addu, addi, lw, sw and beq.
  40. ๐Ÿ”ฅ Describe the basic connection of memory to a processor.
  41. ๐Ÿ”ฅ Explain the internal organization of bit cells in a memory chip.
  42. ๐Ÿ”ฅ Design a \(2M\times32\) memory using \(512K\times8\) SRAM chips.
  43. ๐Ÿ”ฅ Explain virtual memory and the need for a cache-mapping function.

Another Teacherโ€™s Exact Priority Topics ๐Ÿ“˜

  1. ๐Ÿ“˜ Von Neumann architecture and the two basic computer-architecture models.
  2. ๐Ÿ“˜ Throughput and speedup.
  3. ๐Ÿ“˜ Multiplication and division algorithms.
  4. ๐Ÿ“˜ Boothโ€™s multiplication algorithm with a flowchart and example.
  5. ๐Ÿ“˜ Mooreโ€™s Law and Amdahlโ€™s Law.
  6. ๐Ÿ“˜ Instruction cycle and its state diagram.
  7. ๐Ÿ“˜ Big-endian and little-endian byte ordering.
  8. ๐Ÿ“˜ Execution steps for an instruction, including one-operand and three-address forms.
  9. ๐Ÿ“˜ Memory mapping, memory blocks and cache-mapping functions.
  10. ๐Ÿ“˜ Different cache-mapping techniques.
  11. ๐Ÿ“˜ Virtual memory.
  12. ๐Ÿ“˜ Associative memory.
  13. ๐Ÿ“˜ Cache hit, cache miss, hit rate and miss rate.
  14. ๐Ÿ“˜ DMA controller.
  15. ๐Ÿ“˜ Vector processing and array processing.
  16. ๐Ÿ“˜ Flynnโ€™s classification.
  17. ๐Ÿ“˜ SPMD and related parallel-processing models.
  18. ๐Ÿ“˜ Data hazards and control hazards.
  19. ๐Ÿ“˜ Direct and indirect addressing modes.
  20. ๐Ÿ“˜ Design of a \(1K\times8\) memory.
  21. ๐Ÿ“˜ Temporal and spatial locality.
  22. ๐Ÿ“˜ Representation of an expression such as \((A+B)\times(C+D)\) in assembly language.

Previous Faculty Topics Retained โญ

  • โญ Historical evolution of computer architecture
  • โญ Development during the last 30 years
  • โญ Intel 80386, 80486 and Pentium architectures
  • โญ Flynnโ€™s classification
  • โญ SIMD and SPMD
  • โญ Vector and parallel processing
  • โญ Performance and speedup
  • โญ Amdahlโ€™s Law

Suggested Revision Order

  1. Study all ๐Ÿ”ฅโญ๐Ÿ“˜ topics first.
  2. Then study topics carrying any two markers.
  3. Next complete the remaining single-marker topics.
  4. Finally revise every unmarked supporting topic.