Memory is a crucial storage component in a computer, used to store application programs and data. Memory is organized into cells, each capable of storing a fixed number of bits. Each cell is uniquely identified by a binary address, which allows the CPU to efficiently locate and access data.
A memory chip is typically represented as:

Example: A memory chip with a configuration of 64K × 8 has:
- 64K memory locations (cells)
- 8 bits per cell
This organization allows efficient data storage and retrieval. From this memory configuration, we can obtain the following:
- Data Space in the Chip: 64K × 8 bits
- Data Space in a Single Cell: 8 bits
- Address Space in the Chip: log2(64K) = log2(216) =16 bits
Byte Addressable Memory
Each memory cell stores 1 byte (8 bits), and each address corresponds to a single byte. This design allows the CPU to access data at the byte level, which is efficient for most programs and data structures.
- Each address refers to 1 byte (8 bits).
- Enables direct byte-level access.
- Ideal for programs processing data byte by byte.
- Standard in modern CPUs and general-purpose systems.
Example: 64K × 8 memory chip → 16-bit addresses, 1 byte per cell.
Word Addressable Memory
Each memory cell stores a word equal to the CPU’s word length (e.g., 16 or 32 bits), and each address refers to an entire word. Accessing a specific byte requires fetching the word containing it and then extracting the desired byte. This design was more common in older or specialized architectures and is less flexible for byte-level operations.
- Each address refers to a word (CPU word length).
- Byte access requires fetching the entire word.
- Data is stored word by word.
- Rare in modern systems due to indirect byte access.
Example: 64K × 16 memory chip → 16-bit addresses, 16 bits per cell.
Important Points
Address Size vs. Cell Size: The number of address bits depends on the total number of cells. The cell size differs for byte addressable and word addressable memory.
Default Memory Configuration: Modern computers typically use byte-addressable memory because it allows direct access to individual bytes, which is efficient for most applications.