Syllabus - COMPUTER ORGANIZATION & ARCHITECHTURE (CB 302)


Computer Science and Business System (CSBS)

COMPUTER ORGANIZATION & ARCHITECHTURE (CB 302)

III Semester

Revision of basics in Boolean logic and Combinational/Sequential Circuits.

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. Outlining instruction sets of some common CPUs.

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, IEEE 754 format.

Introduction to x86 architecture.

CPU control unit design

Hardwired and micro-programmed design approaches, 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

Pipelining

Basic concepts of pipelining, throughput and speedup, pipeline hazards.

Parallel Processors

Introduction to parallel processors, Concurrent access to memory and cache coherency.

Memory organization

Memory interleaving, concept of hierarchical memory organization, cache memory, cache size vs. block size, mapping functions, replacement algorithms, write policies.

Practicals

  • Circuits on breadboard or simulators

    (a) Implementation of Combinational Digital/Boolean Circuits: Adder, Subtractor, Multiplication Module, Division Module, Multiplexer, Demultiplexer, Encoder, Decoder. (b) Implementation of Sequential Circuits: Counters, Linear Feedback Shift Registers (LFSR)

  • C/C++ programming to understand the formats of char, int, float, double, long etc.

  • Machine language programming on x86 or higher version kits or simulators

    (i) Add/subtract/multiplication/division/GCD/LCM (ii) Accessing some specific memory locations/ports (iii) Counting odd and even integers from a series of memory locations (iv) Printing values of selected registers (v) Handing interrupts

Reference Books

  • Computer System Architecture M. M. Mano:, 3rd ed., Prentice Hall of India, New Delhi, 1993.

  • Computer Organization and Design: The Hardware/Software Interface, David A. Patterson and John L. Hennessy.

  • Computer Organization and Embedded Systems, Carl Hamacher.