ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Computer Organization and Assembly Language
    COMP3137
    Progress0 / 73 topics
    Topics
    1. Introduction to Computer Organization2. Assembly Language3. Comparison of Low-Level and High-Level Languages4. Register Types (16-bit): General Purpose and Special Purpose Registers5. Introduction and Usage of RAM6. Processor7. Registers8. System Bus9. Instruction Execution Cycle10. Assembly and Machine Language11. Assembler12. Linker and Link Libraries13. Programmer's View of a Computer System14. RISC and CISC Architecture15. Physical Address Calculation16. Basic Memory Organization17. CPU Organization18. Top Level View of Computer Function and Interconnection19. Assembler Instruction Cycle20. Execute Cycle21. Interrupts22. Interrupt Cycle23. Memory Connection24. Input/Output Connection25. CPU Connection26. MASM27. MIPS28. Defining Data in MASM Assembler29. Elements of Assembly Language30. Integer Constants31. Integer Expressions32. Real Number Constants33. Character Constants34. String Constants35. Reserved Words36. Identifiers37. Directives38. Instructions39. The NOP (No Operation) Instruction40. Adding and Subtracting Integer41. INC and DEC Instructions42. NEG Instruction43. How to Move Integer Number in Register44. Adding and Subtracting Numbers in Registers45. Declaration and Initialization of Variables46. Moving Data from Variable to Register47. Data Definition Statement48. BYTE and SBYTE Data49. WORD and SWORD Data50. Defining DWORD and SDWORD Data51. Knowledge about Different Data Types52. Operations, Array & Loops53. Division and Multiplication in Assembly54. Jumps Based on Specific Flags55. Jumps Based on Equality56. Simple Jump Statements57. Jumps Based on Specific Condition58. Code Examples59. Practice on MASM60. Procedures61. File Operations Procedures62. Labels in Procedures63. Stack64. Runtime Stack65. Conditional Control Flow Directives66. Compound Expressions67. Data Representation & Conversion68. Architecture69. Data Path70. Control Unit71. Critical Path72. General Principles of Pipelining73. Pipelined Y86 Implementations
    COMP3137›Architecture
    Computer Organization and Assembly LanguageTopic 68 of 73

    Architecture

    8 minread
    1,385words
    Intermediatelevel

    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 load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time8 min
      Word count1,385
      Code examples0
      DifficultyIntermediate