Section outline

    • This course explores the principles of computer architecture and organization, focusing on the classical von Neumann machine model and its functional units. It covers topics such as instruction set architecture, memory hierarchy, control unit design, and assembly language programming. The course includes hands-on laboratory work to reinforce theoretical knowledge with practical applications in computer hardware, instruction execution, and basic assembly programming.

      Course Objectives

      The objectives of this course are to:

      1. Provide foundational knowledge of computer architecture and organization.
      2. Develop practical skills in assembly language programming.
      3. Explain the implementation of high-level programming constructs at the machine language level.
      4. Analyze control signal generation and its implementations.
      5. Explore memory hierarchies, cache, and virtual memory for performance enhancement.
      6. Understand interrupt mechanisms and their use in I/O operations.

       

      Overall Learning Outcomes

      At the end of this course, students should be able to:

      1. Explain the organization of the classical von Neumann machine and its major functional units.
      2. Construct simple assembly language program segments.
      3. Describe how fundamental high-level programming constructs are implemented at the machine-language level.
      4. Discuss the concept of control points and the generation of control signals using hardwired or microprogrammed implementations.
      5. Describe how the use of memory hierarchy (cache, virtual memory) reduces effective memory latency.
      6. Explain the concept of interrupts and describe their role in I/O control and data transfers.
      Open this page to read detailed Course Description 

    • Computer Architecture and Organization is a foundational subject that explains how computers are designed and how they function internally. It focuses on the structure, behavior, and working of the computer system at a low level, bridging the gap between hardware and software.

    • Computer Organization deals with the operational units and their interconnections that realize the architectural specifications of a computer system.


    • Some programs on your computer open instantly, while others require a few seconds to launch.  This occurs due to the existence of various types of memory in computers, each operating at distinct speeds.  This concept is referred to as the memory hierarchy. The memory hierarchy of a computer systematically arranges memory components from the fastest and most costly, such as CPU registers and cache, to the slowest yet largest, including hard drives and SSDs.  The system enhances computational efficiency by positioning frequently accessed data in proximity to the processor while relegating less utilized data to more distant storage. A computer organizes data similarly to how one might store snacks: frequently accessed data is readily available, less-used data is stored in secondary locations, and bulk data is kept in primary storage.

    • Have you ever thought about how a computer knows what to do when you click a button or play a game?  The CPU (Central Processing Unit) is a little brain that tells your computer what to do step by step.  The CPU does not know how to read conventional words; it only knows how to read special codes. This is where assembly language comes in.  People can talk to the computer's brain in a hidden language called Assembly. They do this by using short, basic terms like ADD (add numbers) or JMP (jump to a different command).  These instructions tell the computer exactly what to do and how to do it, and it does it very quickly and accurately. The CPU employs small storage areas called registers to follow these steps.  These are very rapid places where the computer stores numbers or information as it works on a task.


    • The concept of number systems is fundamental to Computer Architecture and Organization because computers operate using numerical representations of data and instructions. A number system defines how numbers are represented using a set of digits and a base (also called radix). In computing, different number systems are used to simplify hardware design, data processing, and communication between humans and machines.