Computer Organization


Course Outline: Function and structure of a computer, Functional components of a computer, Interconnection of components, Performance of a computer; Number representation and arithmetic: Binary, octal, and hexadecimal numbers, One’s and two’s complements and other representations, Addition and subtraction; Digital logic and integrated circuits: Boolean algebra and truth tables, Boolean functions (Gates, Functions, Simplification), Integrated circuits ( Combinational circuits - adders, shifters, decoders, multiplexers and ROM’s; Flip-flops; Sequential circuits - registers, counters and RAM); Representation of Instructions: Machine instructions, Operands, Addressing modes, Instruction formats, Instruction sets, Instruction set architectures - CISC and RISC architectures; Introduction to Assembly Language: Programming with Assembly language, The assembly process, Linking and loading, Register-level debugging, Processing Unit: Organization of a processor - Registers, ALU and Control unit, Data path in a CPU, Instruction cycle, Organization of a control unit - Operations of a control unit, Hardwired control unit, Micro-programmed control unit; Memory Subsystem: Semiconductor memories, Memory cells - SRAM and DRAM cells, Internal Organization of a memory chip, Organization of a memory unit, Error correction memories, Interleaved memories, Cache memory unit - Concept of cache memory, Mapping methods, Organization of a cache memory unit, Fetch and write mechanisms, Memory management unit - Concept of virtual memory, Address translation, Hardware support for memory management; Input/Output Subsystem: Access of I/O devices, I/O ports, I/O control mechanisms - Program controlled I/O, Interrupt controlled I/O, and DMA controlled I/O, I/O interfaces - Serial port, Parallel port, PCI bus, SCSI bus, USB bus, Firewall and InfiniBand, I/O peripherals - Input devices, Output devices, Secondary storage devices; Multiprocessing Systems: Shared memory multiprocessor, Message-passing multiprocessor, Hardware multithreading.