Computer Organization & Architecture (BTES 401-18) - Theory
Course Objectives
The main objective of this course is to provide students with a comprehensive understanding of the internal structure and functionality of a computer system. The course will cover the following concepts:
- Basic functional units of a computer and their interactions
- Instruction set architecture and execution
- Data representation and computer arithmetic
- CPU control unit design
- Memory system design
- Input/Output subsystems and techniques
- Pipelining and parallel processing
- Cache memory and memory hierarchy
Course Outcomes
Upon completion of this course, students will be able to:
- Understand the basic organization and architecture of computer systems.
- Write and analyze assembly language programs.
- Design and analyze memory systems and their interaction with the CPU.
- Understand the principles of CPU control unit design and implementation.
- Analyze the performance of pipelined processors and understand the challenges of parallel processing.
Detailed Syllabus
Module 1: Functional blocks of a computer
- CPU, memory, input-output subsystems, control unit.
- Instruction set architecture of a CPU – registers, instruction execution cycle, RTL interpretation of instructions, addressing modes, instruction set.
- Case study – instruction set of 8085 processor.
- Data representation: signed number representation, fixed and floating point representations, character representation.
- Computer arithmetic – integer addition and subtraction, ripple carry adder, carry look-ahead adder, etc. multiplication – shift-and-add, Booth multiplier, carry save multiplier, etc. Division restoring and non-restoring techniques, floating point arithmetic.
Module 2: Introduction to x86 architecture
- CPU control unit design: Hardwired and micro-programmed design approaches.
- Case study – design of a simple hypothetical CPU.
- Memory system design: semiconductor memory technologies, memory organization.
- Peripheral devices and their characteristics: Input-output subsystems, I/O device interface, I/O transfers – program controlled, interrupt driven and DMA, privileged and non-privileged instructions, software interrupts and exceptions. Programs and processes –role of interrupts in process state transitions, I/O device interfaces – SCII, USB.
Module 3: Pipelining
- Basic concepts of pipelining, throughput and speedup, pipeline hazards.
- Parallel Processors: Introduction to parallel processors, Concurrent access to memory and cache coherency.
Module 4: Memory Organization
- Memory interleaving, concept of hierarchical memory organization, cache memory, cache size vs. block size, mapping functions, replacement algorithms, write policies.
Suggested Books
- Computer Organization and Architecture by Moris Mano
- Computer Organization and Design: The Hardware/Software Interface by David A. Patterson and John L. Hennessy
- Computer Organization and Embedded Systems by Carl Hamacher
Reference Books
- Computer Architecture and Organization by John P. Hayes
- Computer Organization and Architecture: Designing for Performance by William Stallings
- Computer System Design and Architecture by Vincent P. Heuring and Harry F. Jordan
Computer Organization & Architecture Lab (BTES 402-18)
List of Experiments
- Computer Anatomy- Memory, Ports, Motherboard and add-on cards.
- Dismantling and assembling PC.
- Introduction to 8085 kit.
- Addition of two 8 bit numbers, sum 8 bit.
- Subtraction of two 8 bit numbers.
- Find 1’s complement of 8-bit number.
- Find 2’s complement of 8-bit number.
- Shift an 8-bit no. by one bit.
- Find Largest of two 8 bit numbers.
- Find Largest among an array of ten numbers (8 bit).
- Sum of series of 8 bit numbers.
- Introduction to 8086 kit.
- Addition and subtraction of two 16 bit numbers, sum 16 bit.
- Implement of Booth’s algorithm for arithmetic operations.
- Find 1’s and 2’s complement of 16-bit number.
- Implement simple programs using I/O based interface.
Course Outcomes
Upon completion of this lab, students will be able to:
- Assemble a personal computer.
- Implement various assembly language programs for basic arithmetic and logical operations.
- Demonstrate the functioning of microprocessor/microcontroller-based systems with I/O interface.
Reference Books
- Fundamentals of Microprocessors and Microcontrollers by B. Ram