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 2074 Syllabus, this course (CSC373) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 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.

 Course Description:

 This course provides the detailed idea about the design of computer hardware.

Course Objective:

The main objective is to provide information on various computer hardware and their design. It focuses on various concepts regarding processor, memory and arithmetic operations. It also emphasizes on multicores, multiprocessors and clusters. It also deals with non-functional requirements that play vital role in the design.


Computer Abstractions and Technology

Introduction, Performance, The Power Wall, The Sea Change: The Switch from Uniprocessors to Multiprocessors, Manufacturing and Benchmarking the AMD Opteron X4

Instructions: Language of the Computer

Introduction, Operations of the Computer Hardware, Operands of the Computer Hardware, Signed and Unsigned Numbers, Representing Instructions in the Computer, Logical Operations,Instructions for Making Decisions, Supporting Procedures in Computer Hardware, MIPS Addressing for 32-Bit Immediates and Addresses, Parallelism and Instructions, Translating and Starting a Program, Arrays versus Pointers, Advanced Material: Compiling C and Interpreting Java, ARM Instructions, x86 Instructions.

Arithmetic for Computers

Introduction, Addition and Subtraction, Multiplication, Division, Floating Point, Parallelism and Computer Arithmetic: Associativity, Real Stuff: Floating Point in the x86.

The Processor

Introduction, Logic Design Conventions, Building a Data path, A Simple Implementation Scheme, An Overview of Pipelining, Pipelined Data path and Control, Data Hazards: Forwarding versus Stalling, Control Hazards, Exceptions, Parallelism and Advanced Instruction-Level Parallelism, Real Stuff: the AMD Opteron X4 Pipeline, Advanced Topic: an Introduction to Digital DesignUsing a Hardware Design Language to Describe and Model a Pipeline and More Pipelining Illustrations.

Large and Fast: Exploiting Memory Hierarchy

Introduction, The Basics of Caches, Measuring and Improving Cache Performance, Virtual Memory, A Common Framework for Memory Hierarchies, Virtual Machines, Using a Finite- State Machine to Control a Simple Cache, Parallelism and Memory Hierarchies: Cache Coherence, Advanced Material: Implementing Cache Controllers, Real Stuff: the AMD Opteron X4 and Intel Nehalem Memory Hierarchies.

Storage and Other I/O Topics

Introduction, Dependability, Reliability, and Availability, Disk Storage, Flash Storage, Connecting Processors, Memory, and I/O Devices, Interfacing I/O Devices to the Processor, Memory, and Operating System, I/O Performance Measures: Examples from Disk and File Systems, Designing an I/O System, Parallelism and I/O: Redundant Arrays of Inexpensive Disks, Real Stuff: Sun Fire x4 Server, Advanced Topics: Networks.

Multicores, Multiprocessors, and Clusters

Introduction, The Difficulty of Creating Parallel Processing Programs, Shared Memory Multiprocessors, Clusters and Other Message-Passing Multiprocessors, Hardware Multithreading, SISD, MIMD, SIMD, SPMD, and Vector, Introduction to Graphics Processing Units, Introduction to Multiprocessor Network Topologies, Multiprocessor Benchmarks, Roofline: A Simple Performance Model, Real Stuff: Benchmarking Four Multicores Using theRoofline Model.

Lab works

Laboratory Works:

The practical work should focus on use of hardware design language and programming. It should also focus on x86 instructions. There should also be practical related to processor, memory, clusters, multithreading, Interfaces, pipelining.