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
    COMP2118
    Progress0 / 35 topics
    Topics
    1. Introduction to Computer Systems2. Information is Bits + Context3. Programs are Translated by Other Programs4. Understanding Compilation Systems5. Processors Read and Interpret Instructions6. Caches Matter7. Storage Devices Form a Hierarchy8. The Operating System Manages the Hardware9. Systems Communicate Using Networks10. Representing and Manipulating Information11. Information Storage12. Integer Representations13. Integer Arithmetic14. Floating Point15. Machine-Level Representation of Programs16. A Historical Perspective17. Program Encodings18. Data Formats19. Accessing Information20. Arithmetic and Logical Operations21. Control22. Procedures23. Array Allocation and Access24. Heterogeneous Data Structures25. Understanding Pointers26. Using the GDB Debugger27. Out-of-Bounds Memory References and Buffer Overflow28. x86-64: Extending IA-32 to 64 Bits29. Machine-Level Representations of Floating-Point Programs30. Processor Architecture31. The Y86 Instruction Set Architecture32. Logic Design and the Hardware Control Language (HCL)33. Sequential Y86 Implementations34. General Principles of Pipelining35. Pipelined Y86 Implementations
    COMP2118›Accessing Information
    Computer Organization and Assembly LanguageTopic 19 of 35

    Accessing Information

    7 minread
    1,237words
    Intermediatelevel

    In computer organization, accessing information refers to how data is retrieved or written to storage locations within a computer system. This involves understanding how memory and storage are structured and how the processor can interact with them efficiently. Let's break down the key concepts related to accessing information:

    1. Memory Hierarchy

    • What it is: The memory hierarchy is a structure that prioritizes different types of memory based on speed, cost, and capacity. Data access speeds vary between these types, so the computer uses a combination of different memory types to optimize performance.
    • Hierarchy order (fastest to slowest):
      1. Registers: Very fast, small memory located inside the CPU.
      2. Cache Memory: Faster than RAM but smaller in size. It stores frequently used data.
      3. Main Memory (RAM): Temporary, volatile memory used to store data that the CPU is currently working with.
      4. Secondary Storage: Hard disks, SSDs, and other storage devices that provide long-term storage but are slower than RAM.

    2. Memory Addressing

    • What it is: Memory addressing refers to how the computer's processor accesses specific locations in memory. Each location in memory has a unique address, much like an index in an array.
    • Types of Memory Addressing:
      • Physical Addressing: Refers to the actual hardware addresses in memory.
      • Virtual Addressing: Used by modern operating systems to give each process its own address space. The operating system maps virtual addresses to physical addresses in RAM.
      • Logical Addressing: Refers to addresses used by programs. These are mapped by the operating system to physical addresses.

    3. Direct vs. Indirect Addressing

    • Direct Addressing: In this mode, the address of the data is given explicitly in the instruction. The CPU directly accesses the memory location.
      • Example: MOV AX, [1000] – This moves the value at memory address 1000 into the AX register.
    • Indirect Addressing: In this mode, the instruction contains a reference (pointer) to the memory location. The CPU must first access the pointer and then use it to get the actual memory location.
      • Example: MOV AX, [BX] – The value stored in register BX is treated as the address from which data will be retrieved.

    4. Accessing Memory in Assembly Language

    In assembly language, memory locations are accessed using operands that specify where data is stored. These operands can refer to registers, immediate values, or memory addresses.

    • Immediate Addressing: The operand is a constant value (no memory access).

      • Example: MOV AX, 5 – Moves the immediate value 5 into the AX register.
    • Register Addressing: The operand is a register (no memory access).

      • Example: MOV AX, BX – Moves the value in register BX to register AX.
    • Direct Addressing: The operand refers to a direct memory address.

      • Example: MOV AX, [1000] – Loads the value at memory address 1000 into register AX.
    • Indexed Addressing: This combines a base address (usually in a register) with an index value (often another register or an offset).

      • Example: MOV AX, [BX + SI] – The effective address is calculated by adding the contents of registers BX and SI together.

    5. Cache Memory and Access

    • What it is: Cache memory is a smaller, faster type of volatile memory located close to the CPU. It stores frequently accessed data so that the CPU doesn't have to fetch it from slower main memory (RAM) every time.
    • How it works: When the CPU requests data, the cache controller checks if the data is already in the cache (this is called a cache hit). If the data isn't found (a cache miss), it fetches the data from RAM and stores it in the cache for future use.
    • Levels of Cache:
      • L1 Cache: Located closest to the CPU, smallest and fastest.
      • L2 Cache: Larger and slightly slower than L1 cache, still located near the CPU.
      • L3 Cache: Even larger and slower than L1 and L2 caches, but still faster than main memory.

    6. Access Time

    • What it is: Access time refers to the time it takes to retrieve data from a particular memory location. Different types of memory have different access times.
      • Registers: Fastest access time.
      • Cache Memory: Slightly slower but much faster than main memory.
      • Main Memory (RAM): Slower access time compared to cache memory.
      • Secondary Storage: Slowest access time.

    7. Memory Access Methods

    • Sequential Access: Data is accessed in a specific order, one piece at a time. This is common in tape drives.
    • Random Access: Any memory location can be accessed directly and in any order. This is used in RAM and most modern storage devices (e.g., hard drives, SSDs).
    • Direct Access: Specific locations of memory are accessed directly by providing an address.

    8. Memory-Mapped I/O

    • What it is: Memory-mapped I/O is a technique where input and output devices (like printers, monitors, or disk drives) are treated as if they were memory locations. The processor uses standard memory instructions to communicate with these devices.
    • How it works: The CPU uses specific addresses to interact with I/O devices as though they were part of the system's memory.
    • Example: Writing data to a particular memory address could result in sending data to a printer or reading data from a sensor.

    9. Bus and Data Access

    • What it is: The bus is a communication system that transfers data between the CPU, memory, and I/O devices.
    • Types of Buses:
      • Data Bus: Carries the actual data.
      • Address Bus: Carries the memory addresses that specify where data should be read from or written to.
      • Control Bus: Carries control signals to manage the actions of the CPU and other components.
    • Accessing Information Through the Bus:
      • When the CPU needs to access memory or I/O, it sends a request via the address bus.
      • The control bus then manages the read or write operation.
      • The data bus carries the actual data to or from the specified address.

    10. Virtual Memory

    • What it is: Virtual memory is a memory management technique that allows programs to access more memory than is physically available in RAM.
    • How it works: The operating system uses disk space (secondary storage) as additional memory. It swaps data in and out of RAM as needed.
    • Page Tables: Virtual memory uses a system of pages to divide memory into small, fixed-size blocks. A page table maps virtual addresses to physical addresses.

    Summary of Key Concepts in Accessing Information:

    Concept Description Example
    Memory Hierarchy Different levels of memory storage, from registers to secondary storage Cache -> RAM -> Hard Disk
    Memory Addressing Methods for accessing specific memory locations Virtual vs Physical Addressing
    Direct vs Indirect Addressing How the memory address is specified in an instruction MOV AX, [1000] (Direct), MOV AX, [BX] (Indirect)
    Cache Memory High-speed memory storing frequently accessed data Cache stores recent data
    Access Time Time taken to retrieve data from memory Registers have the fastest access time
    Memory-Mapped I/O Treating I/O devices as memory locations Writing data to a memory address to control a device
    Bus and Data Access Communication channels between the CPU, memory, and I/O Data bus, Address bus, Control bus
    Virtual Memory Using disk space as an extension of RAM Paging and swapping data between RAM and disk

    Conclusion

    Accessing information efficiently in a computer system requires an understanding of how memory and storage are structured, how the processor interacts with these storage types, and how data is moved through different components of the system. Whether it's accessing information from registers, cache, or RAM, the system uses various addressing and access methods to manage data and optimize performance.

    Previous topic 18
    Data Formats
    Next topic 20
    Arithmetic and Logical Operations

    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 time7 min
      Word count1,237
      Code examples0
      DifficultyIntermediate