Memory Architecture Notes

Terms

  • Access time: is the time between when a read is requested and when the desired word arrives

  • Cycle time: is the minimum time between requests to memory.

  • Cycle > access when the memory needs the address lines to be stable between accesses e.g. DRAM refresh

CAP

CAP theorem that states it is impossible for distributed data store to simultaneously provide more than two out of the thee guarantees:

  • Consistency

  • Availability

  • Partition tolerance

Architectures

Harvard

  • Separate storage and signal pathways for instructions and data.

  • In a pure sense, it means that an instruction and data fetch can occur simultaneously.

Modified versions

This is really common and today's increasing use of a separate I-cache and D-cache whilst accessing the same main memory blur the lines of Harvard architecture.

von Neumann

  • The meaning has evolved to be any stored-program computer in which an instruction fetch and a data operation cannot occur at the same time because they share a common bus.

  • This is referred to as the von Neumann bottleneck and often 'limits' the performance of the system.

  • With the common use of caches, the distinction between the two is often blurred.

Endianness

Big Endian

  • Big-End or MSB to low address

  • Assuming byte aligned ie. if it were word aligned - there wouldn't be a change to the example below

0x11223300 : aabbccdd // byte aligned

address     offset
            00 01 02 03
0x11223300: aa bb cc dd

Little Endian

  • Little-End or LSB to low address

0x11223300 : aabbccdd  // byte aligned

address     offset
            00 01 02 03
0x11223300: dd cc bb aa

Byte/word addressing

  • Byte addressable:

    • Consider a 16–bit address space = 2^16 (65,536) addressable entities

  • The maximum address space size would depend on the size of the addressable entity.

    • 8-bit Byte Addressable 64 KB - each address = 1 byte

    • 16-bit Word Addressable 128 KB - each address = 2 bytes

    • 32-bit Word Addressable 256 KB - each address = 4 bytes

// 8-bit Byte addressable
 -------------------------------
|  0x00 | 0x01  | 0x02  | 0x03  |
 -------------------------------

 // 16-bit word addressable
 -------------------------------
|       0x00    |      0x01     |  // so essentially 2*64K
 -------------------------------

 // 32-bit Word addressable
 -------------------------------
|             0x00              |  // so essentially 4*64K
 -------------------------------

Memory hardware types

DRAM

  • Dynamic Random Access Memory - volatile

  • Needs to be dynamically refreshed (uses only a single transistor - can be unstable) at a certain interval e.g. 8ms

  • Access time > cycle time

SRAM

  • Static Random Access Memory

  • Memory doesn't need to be refreshed since it uses 6 transistors to store a bit.

  • This means that devices can enter a low power mode and SRAM itself needs very little power to retain its memory.

Flash memory

  • Flash doesn't need to be refreshed and is non-volatile.

  • Its read-access times is comparable to DRAM however its write times can be 10-100 times slower.

NAND

  • Read and written in blocks/pages.

  • No longer random access and only via sequential access.

  • Reduced erase and write times, and requires less chip area per cell, thus allowing greater storage density and lower cost per bit than NOR flash; it also has up to 10 times the endurance of NOR flash.

  • Cells are connected in series.

    • MLC: Multi-level - less reliable and slower but can be mitigated through many strategies. There is enterprise NAND.

    • SLC:

    • TLC: used in Samsung 840?

NOR

  • Read and written in bytes.

  • Random access.

  • Has long erase and write times and poor endurance - suitable for ROM.

  • Cells are arranged in parallel, allowing erase/read of individual cells

Last updated