TutorChase logo
Login
AQA A-Level Computer Science

16.1.10 Addressable Memory

Addressable memory refers to the organisation of memory in a computer system such that each individual storage location has a unique identifier or address.

What is addressable memory?

In a digital computer system, addressable memory means that each unit or location of memory can be individually accessed using a unique address. This enables the processor to efficiently retrieve or store data without ambiguity. These addresses are typically represented in binary format and are used by the processor to locate data or instructions stored in main memory.

A memory system is composed of many storage units, often called memory cells. Each of these cells can store a certain amount of data, and each one is associated with a unique memory address. This address tells the system where to find the data. Without such a structure, the CPU would be unable to reliably access specific pieces of information.

Key features of addressable memory

  • Unique identifiers: Every memory location has a different address.

  • Efficient access: The CPU uses the address to directly access any memory cell.

  • Essential for instruction execution: Instructions and data are stored in memory and must be retrieved by address.

Without addressable memory, computers could not execute programs or manage data reliably. It forms the foundation for how operating systems, applications, and hardware components interact with memory.

Importance of memory addresses

Take your grades to the next level!

UPGRADING TO PREMIUM UNLOCKS
AI Tutor
AI-powered study assistant
instant feedback and guidance
Predicted Papers
Examiner-style predicted papers
based on recent exam trends
Practice Questions
All exam practice questions
by topic for each subject
Study Notes
All detailed revision notes
written by expert teachers
Cheat Sheets
Quick revision summaries
perfect for last-minute review
Past Papers
Complete collection
of practice and past exam papers
Email
Password
Confirm Password
Already have an account?

Practice Questions

FAQ

Yes, a system can have a wide address bus even if it has less physical memory installed. The reason for this is to allow for future scalability and memory expansion. A wider address bus enables the system to address a larger range of memory locations, even if not all of those locations are currently populated with physical memory. This is a common design practice in computer architecture, as it allows manufacturers to produce hardware that supports a broader range of configurations without redesigning the entire architecture for each variation. For example, a computer might be shipped with 4 GB of RAM but have a 64-bit address bus, which theoretically supports up to 18 exabytes of memory. While the full range may not be usable immediately, the system is ready for future upgrades or high-memory applications. It also allows memory-mapped devices and virtual memory schemes to utilise address space more flexibly, improving system compatibility and longevity.

Virtual memory relies heavily on the concept of addressable memory by using virtual addresses instead of physical memory addresses. The operating system uses a memory management unit (MMU) to translate virtual addresses to physical ones, allowing programs to use a large, continuous address space even if physical memory is fragmented or limited. This abstraction enables each program to behave as if it has access to the full range of addressable memory defined by the CPU architecture. For instance, on a 32-bit system, a program might use up to 4 GB of virtual memory space, even if the actual RAM installed is much less. This not only simplifies programming but also increases efficiency by enabling features like paging and swapping. Pages of memory can be stored on secondary storage (such as a hard drive or SSD) and swapped into RAM when needed, effectively extending usable memory. This entire process is hidden from the user and depends on accurate address resolution and mapping.

The address bus is unidirectional because data only travels one way on it—from the CPU to memory or I/O devices. Its sole purpose is to send addresses to memory to indicate which location the CPU wants to read from or write to. Once the address has been sent, the actual transfer of data happens over the data bus. In contrast, the data bus is bidirectional because data can move both from the CPU to memory (when writing data) and from memory to the CPU (when reading data). For example, during a read operation, the CPU places the address on the address bus, the memory accesses that location, and then places the data on the data bus to send it back to the CPU. During a write operation, the CPU places both the address and the data to be written on their respective buses. This separation of function improves clarity, efficiency, and reduces the likelihood of bus contention or data corruption.

When a program tries to access a memory address that is outside the range of available physical memory, several outcomes are possible depending on the system’s architecture and whether virtual memory is in use. On systems with virtual memory, the operating system will check whether the address is valid in the program’s virtual address space. If it is, but the data isn’t currently in physical memory, a page fault occurs. The OS then retrieves the required data from secondary storage and loads it into RAM, allowing the program to continue. However, if the address is invalid—meaning it lies outside the allowed virtual address space—the system will trigger a memory access violation or segmentation fault, which typically results in the program being terminated. This protects the integrity of memory and prevents one program from accidentally or maliciously accessing memory used by another program or the operating system, preserving system stability and security.

The operating system (OS) uses the concept of addressable memory to manage how memory is allocated, protected, and shared among processes. Each program running on the system is given its own virtual address space, which is mapped onto physical memory by the memory management unit (MMU). The OS tracks which addresses are in use, free, or reserved through data structures like page tables and segment tables. When a process requests more memory, the OS allocates a block of virtual addresses and updates the mapping. If physical memory is full, it may move less-used data to secondary storage. The OS also uses addressable memory to enforce memory protection, ensuring that each program only accesses its own memory area. This isolation prevents data corruption and increases security. Additionally, the OS uses addressable memory to support multitasking, efficiently switching between processes by saving and restoring address states, all made possible through precise memory addressing and management.

Hire a tutor

Please fill out the form and we'll find a tutor for you.

1/2
Your details
Alternatively contact us via
WhatsApp, Phone Call, or Email