This course explore how the different components of a modern computer interface with each other and completes a programming task.
UNIT I
Overview: Functional units of a computer, CPU, ALU, CU, Memory and I/O. History of evolution of computers, Parallel computer architecture: SISD, SIMD, MISD, MIMD. Amdahl’s Law.
8086 microprocessor bus structures. Instruction set architecture (ISA), Instruction formats, addressing modes. Assembly language programming for 8086 microprocessors.
Binary Number system, 2’s complement numbers, Fixed point and IEEE 754 Floating-point numbers and arithmetic.
UNIT II
Fundamental concepts: – Execution of a complete instruction, RISC vs. CISC computers, Instruction cycle state diagram of fetch, decode, execute, interrupt operations. Performance evaluation of a computer, CPI, Execution time, MIPS, SPEC ratio, numerical examples.
UNIT III
Latency vs. throughput, Pipelined execution, pipeline stalls, data dependency, pipeline hazards, data hazards, control hazards and structural hazards. Techniques for handling hazards: Forwarding, bypassing, Compiler’s technique of code reordering. Pipeline for MIPS computer examples.
UNIT IV
Semiconductor memory, SRAM, DRAM, ROM, speed, size and cost comparison. Address space. Cache memory, Primary memory to cache memory mapping techniques, DM, FA and SA mapping. Hit rate, miss rate, average memory access time (AMAT). Cache overhead. Virtual memory concepts, page table, TLB cache.
Secondary storage magnetic disk, access time, data rate.
UNIT V
I/ O devices and processor interaction, Standard I/O Interfaces. Interrupts: programmed interrupts, Direct Memory Access (DMA).