Computer Hardware Design - Syllabus

Course Overview and Structure

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.

Units

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

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.

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

Key Topics

  • Relational Model Concepts
    TH-1

    This topic covers the fundamental concepts of the relational model, including domains, attributes, tuples, and relations, as well as the characteristics of relations.

  • Relational Model Constraints
    TH-2

    This topic explores the different types of constraints in the relational model, including domain constraints, key constraints, and constraints on null values.

  • Relational Database Schemas
    TH-3

    This topic discusses the concept of relational database schemas, including relational database state, entity integrity, referential integrity, and foreign keys.

  • Update Operations and Transactions
    TH-4

    This topic covers update operations, transactions, and how to deal with constraint violations, including insert, delete, and update operations, as well as restrict, cascade, set null, and set default.

  • Basic Relational Algebra Operations
    TH-5

    This topic introduces basic relational algebra operations, including unary operations (select, project, rename) and binary operations (set theory, Cartesian product, join, and outer join).

  • XML Schema
    TH-6

    Defining the structure and constraints of XML documents using XML Schema.

  • Simple and Complex Types
    TH-7

    Understanding simple and complex data types in XML Schema.

  • XSD Attributes
    TH-8

    Using attributes in XML Schema to provide additional information.

  • Default and Fixed Values
    TH-9

    Specifying default and fixed values for elements and attributes in XML Schema.

  • Facets
    TH-10

    Restricting data types using facets in XML Schema.

  • Patterns and Order Indicators
    TH-11

    Using patterns and order indicators (all, choice, sequence) to define element relationships.

  • Occurrence Indicators
    TH-12

    Specifying the occurrence of elements using maxOccurs and minOccurs indicators.

Key Topics

  • Interfaces and Delegates
    LA-10

    Understanding interfaces and delegates in C#, including their syntax, uses, and benefits in creating flexible and reusable code.

  • Planning Online Businesses
    LA-1

    This topic covers the essential steps in planning an online business, including creating a business plan, evaluating cost-benefit and risk elements, funding options, and selecting an e-commerce model.

  • Building a Website
    LA-2

    This topic explores the process of building a website, including basic hierarchical website structure, website hosting, and obtaining a domain name.

  • Web Content Creation and Management
    LA-3

    This topic covers the creation and management of web content, including categories and types of content, content management and maintenance, and catalog content management.

  • Website Design Criteria
    LA-4

    This topic discusses the key design criteria for a website, including site map and navigation, web page layout grid, colors and graphics, and website usability and performance.

  • Website Promotion and SEO
    LA-5

    This topic covers the strategies for promoting a website, including implementation of payment systems, website promotion, and search engine optimization (SEO).

  • Virtual Machines
    LA-6

    The role of virtual machines in memory hierarchies and their impact on system performance.

  • Finite-State Machine Cache Control
    LA-7

    Using finite-state machines to control and optimize cache behavior.

  • Cache Coherence and Parallelism
    LA-8

    The challenges of cache coherence in parallel systems and techniques for ensuring coherence.

  • Implementing Cache Controllers
    LA-9

    Advanced topics in cache controller implementation, including design and optimization techniques.

Key Topics

  • State Management on Stateless HTTP
    ST-1

    Understanding state management in stateless HTTP protocol and its implications on ASP.NET Core application development.

  • Server-side Strategies
    ST-2

    Exploring server-side strategies for state management in ASP.NET Core applications, including Session State, TempData, and Using HttpContext.

  • Session State
    ST-3

    Using Session State to store and manage user data in ASP.NET Core applications.

  • TempData
    ST-4

    Using TempData to store and manage temporary data in ASP.NET Core applications.

  • Using HttpContext
    ST-5

    Using HttpContext to access and manage HTTP request and response data in ASP.NET Core applications.

  • Cache
    ST-6

    Using Cache to store and manage frequently accessed data in ASP.NET Core applications.

  • Client-side Strategies
    ST-7

    Exploring client-side strategies for state management in ASP.NET Core applications, including Cookies, Query Strings, and Hidden Fields.

  • Cookies
    ST-8

    Using Cookies to store and manage user data on the client-side in ASP.NET Core applications.

  • Query Strings
    ST-9

    Using Query Strings to pass data between pages and manage state in ASP.NET Core applications.

  • Hidden Fields
    ST-10

    Using Hidden Fields to store and manage data on the client-side in ASP.NET Core applications.

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.