ScholarQuill logoScholarQuillUniversity Notes
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
Study Tools
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
Contact
ScholarQuill logo
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
ScholarQuill logoScholarQuillUniversity Notes
Study PortalCOMP3137Architecture
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    COMP3137

    Computer Organization and Assembly Language

    Progress0 / 73 done
    Topics73
    1Introduction to Computer Organization2Assembly Language3Comparison of Low-Level and High-Level Languages
    4General Purpose and Special Purpose Registers5Introduction and Usage of RAM6Processor7Registers8System Bus9Instruction Execution Cycle10Assembly and Machine Language11Assembler12Linker and Link Libraries13Programmer's View of a Computer System14RISC and CISC Architecture15Physical Address Calculation16Basic Memory Organization17CPU Organization18Top Level View of Computer Function and Interconnection19Assembler Instruction Cycle20Execute Cycle21Interrupts22Interrupt Cycle23Memory Connection24Input/Output Connection25CPU Connection26MASM27MIPS28Defining Data in MASM Assembler29Elements of Assembly Language30Integer Constants31Integer Expressions32Real Number Constants33Character Constants34String Constants35Reserved Words36Identifiers37Directives38Instructions39The NOP (No Operation) Instruction40Adding and Subtracting Integer41INC and DEC Instructions42NEG Instruction43How to Move Integer Number in Register44Adding and Subtracting Numbers in Registers45Declaration and Initialization of Variables46Moving Data from Variable to Register47Data Definition Statement48BYTE and SBYTE Data49WORD and SWORD Data50Defining DWORD and SDWORD Data51Knowledge about Different Data Types52Operations, Array & Loops53Division and Multiplication in Assembly54Jumps Based on Specific Flags55Jumps Based on Equality56Simple Jump Statements57Jumps Based on Specific Condition58Code Examples59Practice on MASM60Procedures61File Operations Procedures62Labels in Procedures63Stack64Runtime Stack65Conditional Control Flow Directives66Compound Expressions67Data Representation & Conversion68Architecture69Data Path70Control Unit71Critical Path72General Principles of Pipelining73Pipelined Y86 Implementations
    8 min read
    Topic 68 of 73
    Topic Study Note Illustration
    68

    Architecture

    Computer architecture refers to the design and organization of a computer's components, such as the central processing unit (CPU), memory, input/output devices, and the way they interact...

    Computer Architecture: An Overview

    Computer architecture refers to the design and organization of a computer's components, such as the central processing unit (CPU), memory, input/output devices, and the way they interact with each other. It's a critical part of computer science and engineering because it defines how a computer works at a low level, influencing its performance, efficiency, and capabilities.

    In this context, architecture refers to both the high-level structure (overall design) of a computer system and the way the components are interconnected to perform computations and handle data.


    Key Components of Computer Architecture

    1. Central Processing Unit (CPU): The CPU is the brain of the computer. It performs calculations, executes instructions, and controls the flow of data between other components. The CPU is typically made up of several parts:

      • Control Unit (CU): Directs the operations of the processor by interpreting instructions from memory and executing them.
      • Arithmetic Logic Unit (ALU): Performs mathematical and logical operations, such as addition, subtraction, and comparisons.
      • Registers: Small, high-speed storage locations within the CPU that hold data temporarily for processing.
      • Cache: A small amount of very fast memory near the CPU to store frequently accessed data.
    2. Memory: The memory in a computer stores data and instructions. It can be divided into two types:

      • Primary Memory (or Main Memory): This is where the computer stores data that is actively being used, such as the RAM (Random Access Memory).
      • Secondary Memory: This includes devices like hard drives (HDDs), solid-state drives (SSDs), and optical drives that store data persistently, even when the power is turned off.
    3. Input/Output (I/O): Input devices (keyboard, mouse, etc.) allow the user to interact with the system. Output devices (like monitors, printers, etc.) display the results of computations or provide feedback to the user. I/O devices communicate with the CPU through I/O controllers.

    4. System Bus: The system bus is a set of pathways used for communication between the CPU, memory, and I/O devices. It carries data, addresses, and control signals, and is divided into three main parts:

      • Data Bus: Carries the data being transferred.
      • Address Bus: Carries the memory addresses for read and write operations.
      • Control Bus: Carries signals that control the operations of the CPU, memory, and peripherals.

    Key Concepts in Computer Architecture

    1. Instruction Set Architecture (ISA)

    The Instruction Set Architecture (ISA) is the set of basic instructions that the CPU can understand and execute. The ISA defines the supported operations, such as addition, subtraction, logical operations, and data transfer. It's the interface between the hardware and the software of the computer system.

    • RISC (Reduced Instruction Set Computer): A type of ISA that uses a small, highly optimized set of instructions. Each instruction is typically executed in one clock cycle, leading to faster processing.

      • Example: ARM, MIPS.
    • CISC (Complex Instruction Set Computer): A type of ISA that uses a larger set of more complex instructions, each capable of performing multiple tasks. These instructions may take multiple clock cycles to execute, but they can reduce the number of instructions required to perform a task.

      • Example: x86.

    2. Bus Architecture

    A bus is a communication system that transfers data between different parts of the computer. Buses are crucial for the interaction between the CPU, memory, and I/O devices.

    • System Bus: Includes the data bus, address bus, and control bus, as described earlier. It connects the CPU to memory and I/O devices, facilitating communication between them.

    • Expansion Bus: Used for connecting additional peripheral devices like sound cards, network adapters, and graphics cards.


    3. Pipelining

    Pipelining is a technique used to improve the throughput of the CPU. It allows the CPU to begin executing a new instruction before the previous one has finished. This is achieved by breaking the instruction cycle (fetch, decode, execute) into stages, with each stage handling a different part of the process for different instructions simultaneously.

    For example:

    • Stage 1: Fetch the instruction.
    • Stage 2: Decode the instruction.
    • Stage 3: Execute the instruction.
    • Stage 4: Write the result back to memory.

    With pipelining, multiple instructions are in different stages of execution at once, which leads to more efficient use of the CPU.


    Computer Architecture Models

    1. Von Neumann Architecture: This is the traditional architecture where a single memory is used to store both data and instructions. The CPU fetches instructions from memory and then executes them one by one. This architecture uses a single bus for both data and instructions, which can sometimes lead to performance bottlenecks (known as the Von Neumann bottleneck).

      • Components: Memory, Arithmetic Logic Unit (ALU), Control Unit, Input/Output devices, and a single data path.
      • Characteristics: Single shared memory for data and instructions, sequential execution of instructions.
    2. Harvard Architecture: In contrast to Von Neumann, the Harvard architecture uses separate memory for data and instructions. This allows for simultaneous access to both data and instructions, leading to better performance in many cases.

      • Components: Separate instruction memory, data memory, and dedicated data paths for each.
      • Characteristics: Faster processing due to simultaneous access to instructions and data, typically used in specialized embedded systems like microcontrollers.

    Memory Hierarchy

    In modern computer systems, a memory hierarchy is used to balance the speed and size of different types of memory, ensuring that the CPU can access data as quickly as possible. The hierarchy usually includes:

    1. Registers: Small, very fast storage located inside the CPU.
    2. Cache Memory: A small, high-speed memory located between the CPU and main memory (RAM). Cache stores frequently accessed data and instructions to reduce the time the CPU takes to access memory.
    3. Main Memory (RAM): Larger and slower than cache, but provides a larger storage area for running programs.
    4. Secondary Storage: Hard drives, SSDs, or other non-volatile storage that provide much larger storage capacities but are slower than RAM.

    Performance Considerations in Computer Architecture

    Several factors affect the performance of a computer system, including:

    1. Clock Speed: The rate at which the CPU executes instructions, measured in hertz (Hz). A higher clock speed typically means faster execution.

    2. Instruction Execution Time: The time it takes to execute a single instruction. This depends on the complexity of the instruction set and the number of clock cycles required for each instruction.

    3. Pipelining and Parallelism: Efficient pipelining can significantly improve performance, allowing multiple instructions to be processed simultaneously. Additionally, modern processors use parallel processing techniques (multi-core processors) to handle multiple tasks concurrently.

    4. Cache Size and Efficiency: The larger and faster the cache, the more likely it is that the CPU will be able to quickly access the data it needs, improving performance.

    5. Bus Bandwidth: The speed at which data can be transferred over the system bus. Higher bandwidth means more data can be transferred between components in less time.


    Modern Trends in Computer Architecture

    1. Multi-Core Processors: Modern CPUs often have multiple cores, allowing for parallel processing. Each core can execute separate instructions, dramatically improving performance, especially for multi-threaded applications.

    2. GPU (Graphics Processing Unit) Integration: GPUs are specialized processors designed for highly parallel tasks, such as rendering graphics. They are increasingly used for general-purpose computing tasks (e.g., machine learning and scientific computing).

    3. Quantum Computing: A rapidly developing field that uses principles of quantum mechanics to perform computations. Quantum computers have the potential to revolutionize fields like cryptography, optimization, and drug discovery.

    4. Energy Efficiency: Power consumption is becoming a critical concern in processor design, especially for mobile devices and large-scale data centers. Many modern architectures focus on improving performance per watt.


    Conclusion

    Computer architecture is the foundational framework for understanding how computers process and store data. It involves designing the components of a computer system, such as the CPU, memory, buses, and I/O devices, and how they communicate with one another. By understanding architecture, programmers can write more efficient code, system designers can create faster hardware, and engineers can optimize performance across various applications.

    In summary:

    • Instruction Set Architecture (ISA) defines the operations that a CPU can perform.
    • CPU is the central component that executes instructions and processes data.
    • Pipelining, multi-core processors, and memory hierarchy are techniques used to improve computer performance.
    • Modern systems are moving toward parallelism, GPU integration, and energy efficiency to meet the growing demands of computing.
    ← Previous topic 67
    Data Representation & Conversion
    Next topic 69 →
    Data Path

    Past Papers

    Open this section to view and download past papers

    Click on Show Past Papers to load available exam papers.

    Reading Progress
    0%
    8mremaining
    1.4kwords
    Intermediatelevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Computer Organization and Assembly Language