Computer Hardware Design - Syllabus
Embark on a profound academic exploration as you delve into the Computer Hardware Design course () within the distinguished Tribhuvan university's CSIT department. Aligned with the 2065 Syllabus, this course (CSC-312) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 80+20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.
This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.
Units
Hierarchical approach to understanding & designing a complex system, Software, Hardware, Computer components, Processor: Control, Data path. Memory, Input & output, Components of retail price in the computer industry, Overview of computer hardware, IO, Computer processors; CISC, RISC, DSP, Hybrid, Measuring performance. Execution time, Operations per second, Throughput, Real-time computing and performance metrics
Unit 2. Digital Logic Design
Gates, truth tables, and logic equations, Combinational logic and basic components. PLAs and ROMs, Memory elements. Finite state machines
Unit 3. Data Representation, Manipulation and Addressing
Signed and unsigned numbers, Addition and subtraction. Design of ALUs.
Multiplication. Floating-point representation, Addressing: An application of unsigned integers: Byte-addressed memory, Byte ordering conventions, Big-endian, Little-endian, Pointers: Address vs. contents, Signed representations of integers
Unit 4. Basic Processor Design
Design of the datapath of an ALU that executes the add, sub, and, or instructions, Control signals for the ALU, State elements and clocking,
Block view of a single-clock-cycle processor datapath, Control of the single-clock-cycle implementation, Control of the multiple-clock-cycle implementation, Exceptions and interrupts, Karnaugh maps, Multiplexors, Adders, Decoders, Data paths. Single-cycle, control. Multi-cycle control, Microprocessor design: Microprogramming, Hardwired programming. Parallel processors, SIMD computers--Single Instruction Stream, Multiple Data Streams, MIMD Computers--Multiple Instruction Streams, Multiple Data, Streams; Programming MIMDs, MIMDs connected by a single bus, MIMDs connected by a network, Future directions for parallel processors, Programming for parallel processors in a higher-level language
Unit 5. Sequential Logic Circuits
Outputs and next state as vectors of Boolean functions of inputs and present state,
Latches: Set and reset latches, SR latch, CSR latch, JK latch, D latch, Master-slave D flip-flop, Lightning introduction to finite state machines
Unit 6. Pipelining
A pipelined data path, Pipelined control, Visualization of pipelined data flow, Pipeline diagrams, Gantt charts, Data hazards, Compiler elimination of data hazards, Hardware control for data hazards: Reducing data hazards: Forwarding, Branch hazards, Performance of pipelined systems, Programming for a pipelined processor in a higher-level language
Unit 7. Memory Hierarchies
Hardware implementations of 1-bit memory, DRAM, SRAM, ROM, Hardware implementations of multiple-bit memory, DRAM, SRAM, ROM, SRAM and DRAM chip and system architectures, System bus architectures (processor to/from memory), Hierarchical memory systems, The processor-memory speed gap, Interleaved memory, Caches, Direct-mapped caches, Fully associative caches
Set-associative caches, Virtual memory, A common framework for memory hierarchies
Unit 8. Multiprocessors
Single-bus networks, Cache consistency, Networks and clusters.
Unit 9. Introduction to Assembly Language
Instructions, The fetch-execute cycle, Format of an assembly-language program, Comments, Directives, Data declarations in SPIM, Executable instructions, Survey of differences between SAL (Simple Abstract Language), human-coded MIPS assembly language, and true MIPS assembly language, Load-store architectures, Addressing modes, MIPS addressing modes and the corresponding formats in assembly language and object code, Implementation of I/O, Arrays, Usage of arithmetic and logical instructions in SAL, Branch instructions in SAL and SPIM, Stacks, Support for procedures in computer hardware, Alternatives to the MIPS approach