Volatile Memory Technologies
Volatile memory technologies form the working memory backbone of embedded systems, providing the high-speed read and write access essential for program execution, data manipulation, and temporary storage. Unlike non-volatile memories that retain data when power is removed, volatile memories require continuous power to maintain their contents. In exchange they offer far lower access latency, symmetric read and write performance, byte-level write granularity, and effectively unlimited write endurance. Flash memory, by contrast, must be erased in large blocks before rewriting and tolerates only a bounded number of program and erase cycles.
Density and cost run in the opposite direction. NAND flash remains substantially cheaper per bit than any volatile technology, which is why embedded systems pair the two rather than choosing between them: non-volatile memory holds the program image and persistent data, while volatile memory holds the stack, the heap, buffers, and any code copied to RAM for faster execution.
The two dominant volatile memory technologies, static RAM (SRAM) and dynamic RAM (DRAM), serve complementary roles. SRAM provides the fastest access times with simple interfaces, making it ideal for cache memories, tightly coupled memories, and performance-critical buffers. DRAM offers far higher density at lower cost per bit, serving as main memory wherever working sets exceed what on-chip SRAM can hold. Understanding the characteristics, interfaces, and design constraints of each technology enables engineers to build memory subsystems matched to their application requirements.
Static RAM (SRAM)
SRAM Cell Structure and Operation
SRAM stores each bit using a bistable latch, typically implemented with six transistors in the classic 6T cell configuration. Four transistors form cross-coupled inverters that hold the stored state, while two access transistors connect the cell to a complementary bit line pair during read and write operations. The cross-coupled pair has two stable states representing logic 0 and logic 1, and it maintains whichever state it holds as long as the supply remains within its retention voltage.
Cell design balances three competing requirements: read stability, write margin, and area. The access transistors must be weak enough that a read does not flip the cell, yet strong enough that a write can overpower the feedback loop. These ratios grow harder to satisfy as supply voltages fall, so area-constrained or low-voltage designs sometimes adopt denser-to-operate variants such as 8T and 10T cells that decouple the read port from the storage node. Decoupling removes the read-disturb constraint and allows operation at lower voltages, at the cost of a larger footprint per bit.
The inherent stability of SRAM cells eliminates the refresh operations that DRAM requires, which simplifies system design and reduces idle power. Read operations are non-destructive and leave the cell contents unchanged. Write operations drive the bit lines hard enough to overpower the existing state, forcing the latch to the new value.
SRAM Performance Characteristics
SRAM delivers the lowest access latency of any mainstream memory technology. Commodity asynchronous SRAM components are commonly specified at access times of roughly 10 to 55 nanoseconds, fast synchronous parts operate in the single-digit nanosecond range, and SRAM compiled directly into a system-on-chip resolves within one or a few processor clock cycles. The speed advantage stems from the directness of the access path: raising a word line immediately connects the storage nodes to the bit lines, with no charge sensing and restoration step of the kind DRAM requires. Cycle time closely tracks access time, so SRAM sustains back-to-back transfers without the recovery penalties that dominate DRAM scheduling.
The speed advantage comes at the cost of density. Each SRAM bit requires six transistors against DRAM's single transistor and capacitor, producing a much larger cell and a higher cost per bit. SRAM also scales poorly on recent process nodes relative to logic, which is one reason on-chip cache capacity has grown more slowly than transistor budgets. These economics confine SRAM to smaller, latency-critical memories such as processor caches, register files, scratchpads, and high-speed packet or sample buffers.
SRAM Interface Options
Asynchronous SRAM presents the simplest interface, with address, data, and control signals operating without a clock reference. The processor applies an address and asserts chip select and output enable, and valid data appears after the specified access time. A write asserts write enable with data stable on the bus. This straightforward timing suits microcontrollers and simple external bus interfaces, where a static memory controller generates the required wait states.
Synchronous SRAM registers addresses and control on a clock edge, which permits pipelining and therefore much higher sustained throughput. Two common variants differ in how the output register behaves: flow-through devices present data in the cycle following the address, while pipelined devices add a register stage that raises latency by one cycle but allows a considerably faster clock. Burst-mode parts increment the address internally for sequential transfers, removing per-transfer address overhead. Quad data rate and separate-I/O devices go further by providing independent read and write ports, which suits networking line cards and other applications with heavy simultaneous traffic in both directions.
SRAM Power and Data Retention
SRAM power consumption divides into dynamic and static components. Dynamic power scales with access frequency and with the capacitance switched on word lines, bit lines, and the data bus. Static power reflects leakage that flows continuously through every cell, and it dominates in large arrays that are idle most of the time. Because leakage rises sharply with temperature and with supply voltage, low-power designs attack it directly through high-threshold transistors, power gating of unused banks, and voltage scaling.
An SRAM cell retains its contents at a supply well below the voltage needed for reliable access. Designers exploit this data retention voltage by dropping idle arrays into a retention mode that preserves state at a fraction of the active leakage, then restoring the full supply before the next access. Deeper sleep modes power the array down entirely, which reduces current further but discards the contents and requires save and restore steps around the transition. For battery-powered products this flexibility is a decisive advantage over DRAM, which must continue refreshing, and therefore drawing current, throughout every idle interval.
SRAM in Microcontrollers and Systems on Chip
Most embedded designs never attach an external SRAM component at all. Microcontrollers integrate SRAM on die, in capacities ranging from a few kilobytes on the smallest parts to several megabytes on high-end application microcontrollers. On-chip placement removes pin count, board area, and interface timing from the design problem entirely, and it delivers single-cycle or near single-cycle access.
Integrated SRAM is rarely a single flat block. Designs commonly split it into several banks on separate bus ports so that a processor core and a DMA controller can access different banks in the same cycle without contention. Arm Cortex-M7 and Cortex-R devices add tightly coupled memory, a dedicated SRAM attached directly to the core outside the cache hierarchy, which supplies deterministic single-cycle access for interrupt handlers and control loops that cannot tolerate cache miss jitter. Separate blocks often serve specific peripherals, such as buffer memory for Ethernet descriptors, USB endpoints, or CAN message objects. Some banks sit in a separate power domain backed by a coin cell or supercapacitor so that a small region survives system power-down.
Because these choices determine both worst-case latency and achievable DMA throughput, the memory map deserves attention early in a design. Placing a hot data structure in the wrong bank can silently halve effective bandwidth when two masters contend for the same port.
Dynamic RAM (DRAM)
DRAM Cell Structure and Operation
DRAM achieves high density by storing each bit as charge on a small capacitor accessed through a single transistor. This 1T1C cell occupies far less silicon area than SRAM's six-transistor cell, which is what makes gigabit capacities economical. The trade-off is that the stored charge leaks away through the access transistor and the capacitor dielectric, so the array requires periodic refresh to read and rewrite every cell before its data decays.
Reads are destructive. The storage capacitor is tiny compared with the bit line it drives, so connecting the two produces only a small voltage perturbation, and extracting that signal necessarily disturbs the stored charge. A sense amplifier compares the disturbed bit line against a reference, amplifies the difference to full logic levels, and in doing so drives the cell back to a fully charged or fully discharged state. This sense and restore sequence is why a DRAM row must stay open for a minimum period before it can be closed, and it is a principal contributor to DRAM's latency disadvantage against SRAM.
DRAM Organization and Addressing
DRAM devices organize cells into arrays of rows and columns, with the address split into two phases to economize on pins. The row address strobe latches a row address and activates that entire row, transferring its contents into the sense amplifiers, which together act as a row buffer. The column address strobe then selects specific columns from the open row and moves data to or from the external bus. Closing the row, an operation called precharge, returns the bit lines to their reference level in preparation for the next activation.
This structure creates a strong locality effect. Once a row is open, further accesses within it require only a column command and complete quickly, a case known as a row hit. An access to a different row in the same bank must first precharge and reactivate, which is a row miss and costs several times the latency. Modern devices therefore replicate the array into multiple independent banks, each with its own row buffer, so that several rows may be open at once and activations in one bank overlap transfers in another. Banks are further collected into bank groups, ranks that share a data bus and are selected by chip select, and channels that operate fully independently. Each level of this hierarchy exists to expose more parallelism to the memory controller.
DRAM Timing Parameters
DRAM operation is governed by a large set of timing constraints that the controller must respect. Row address to column address delay (tRCD) sets the wait between activating a row and issuing a column command. Column address strobe latency (CL) measures the interval between a read command and the first valid data. Row precharge time (tRP) is the time required to close a row, and row active time (tRAS) is the minimum a row must remain open, reflecting the sense and restore operation described above. Row cycle time (tRC), the sum of tRAS and tRP, bounds how often a single bank can turn over rows.
Further constraints limit command rates rather than individual operations. Four activate window (tFAW) caps the number of row activations within a rolling window, because each activation draws a current surge the device must not sustain indefinitely. Row-to-row activation delay (tRRD) spaces consecutive activations. Column-to-column delay (tCCD) spaces column commands, and from DDR4 onward it takes a shorter value between bank groups than within one, which is precisely the effect bank groups were introduced to exploit. Bus turnaround penalties apply whenever the data bus reverses direction between a read and a write.
A useful consequence follows from these numbers: DRAM bandwidth and DRAM latency are largely independent properties. A sequential streaming workload that walks through open rows can approach the theoretical peak of the interface, while a pointer-chasing workload of the same total size may achieve a small fraction of it, because every access pays activation and precharge in full. Optimizing embedded software for DRAM therefore means improving spatial locality, not merely reducing the number of bytes touched.
DRAM Refresh Requirements
Charge leakage obliges the controller to refresh every row within a bounded retention window. For DDR3, DDR4, and LPDDR4 the window is 64 milliseconds at or below 85 degrees Celsius, and the controller meets it by issuing refresh commands at an average interval (tREFI) of 7.8 microseconds, each command refreshing a group of rows internally. Because leakage accelerates with temperature, the window halves to 32 milliseconds in the extended range above 85 degrees Celsius, and the controller must double the refresh rate accordingly. DDR5 tightens the baseline: its refresh window is 32 milliseconds with a tREFI of 3.9 microseconds, reflecting the shorter retention of cells built on denser processes.
Refresh consumes both bandwidth and power, and a device is unavailable for normal traffic while a refresh completes. The overhead grows with device density, since a larger array holds more rows to cover within the same window, and it grows again at high temperature. Controllers mitigate the cost in several ways. Distributed refresh spreads commands evenly across the window and is the usual default. Postponing and pulling in refresh commands, which the standards permit within limits, lets a controller defer refresh during a latency-critical burst and catch up during idle time. DDR5 adds same-bank refresh, which refreshes one bank per bank group while the remaining banks continue serving requests, reducing the blocking effect considerably.
Self-refresh is a distinct mode in which the DRAM generates refresh internally from its own timer, allowing the controller and its physical interface to power down while contents survive. Self-refresh underpins suspend-to-RAM in battery-powered products. Devices intended for mobile use extend it with partial array self-refresh, which refreshes only the portion of the array the system declares in use, and with temperature-compensated self-refresh, which adjusts the internal refresh rate to the die temperature rather than assuming the worst case.
Pseudo-Static RAM and HyperRAM
A category of devices bridges the gap between SRAM's simplicity and DRAM's density. Pseudo-static RAM (PSRAM) uses a DRAM array internally but hides refresh behind an on-chip controller, so the device presents an SRAM-like interface with no refresh obligation on the host. The result offers DRAM economics at capacities of a few megabytes to tens of megabytes, a range that suits embedded systems whose working set exceeds on-chip SRAM but falls far short of justifying a DDR interface.
Modern PSRAM is usually accessed over a narrow high-speed serial bus rather than a wide parallel one. HyperRAM uses an eight-bit double data rate bus with a differential clock, and octal serial peripheral interface parts use a comparable eight-bit arrangement, in both cases reaching useful bandwidth over roughly a dozen signals instead of the forty or more a parallel DRAM interface demands. Many application microcontrollers and wireless SoCs expose a controller for these interfaces and can map the external memory into the address space for direct execution or framebuffer use. The pin savings often decide the board design, particularly in small, cost-sensitive products where a DDR layout would be impractical. See external memory interfaces for the bus protocols involved.
The abstraction is not entirely free. Hidden refresh cycles introduce occasional latency that the host cannot predict, so worst-case access time exceeds typical access time by a meaningful margin. Hard real-time code paths must budget for that variability or avoid PSRAM altogether.
DDR SDRAM Interfaces
Evolution of DDR Standards
Synchronous DRAM aligned memory operation to a clock, and double data rate (DDR) SDRAM then transferred data on both clock edges, doubling throughput at a given clock frequency. Every generation since has raised bandwidth through a combination of higher interface clocks, a wider internal prefetch, and improved signaling, while keeping the command model broadly familiar. The prefetch is central to the strategy: the DRAM core is far slower than the interface, so each internal access fetches several bits per data pin and the interface serializes them, allowing the pins to run many times faster than the array.
DDR2 introduced on-die termination, reduced the supply from 2.5 to 1.8 volts, and moved to a 4n prefetch. DDR3 reduced the supply to 1.5 volts and doubled the prefetch to 8n, giving a burst length of eight transfers. DDR4 lowered the supply to 1.2 volts and adopted pseudo-open-drain signaling, which dissipates less termination power than the earlier stub series terminated logic. Rather than widening the prefetch again, DDR4 retained 8n and introduced bank groups, allowing back-to-back column accesses in different groups to proceed at a shorter delay (tCCD_S) than accesses within one group (tCCD_L), which raises effective throughput on scattered access patterns.
DDR5 moves to a 16n prefetch with a burst length of sixteen and reduces both the supply and the wordline supply to 1.1 volts. Each 64-bit module channel splits into two independent 32-bit sub-channels, so a single module serves two concurrent request streams and short bursts waste less of each transfer. DDR5 also relocates voltage regulation from the motherboard to a power management integrated circuit on the module itself, and it adds on-die error correction within the DRAM. It is worth being precise about what on-die correction does: it compensates for the rising raw bit error rate of cells on advanced processes, and it does not protect data in transit across the bus. Systems that require end-to-end protection still need conventional error correction implemented in the controller across a wider data path.
DDR Signal Groups and Functions
A DDR interface comprises several signal groups with distinct timing requirements. The command and address group carries the encoded command together with row, column, bank, and bank group addresses, all referenced to the clock. The data group carries bidirectional data lines organized into byte lanes, each accompanied by its own strobe and a data mask or inversion signal. Differential clock signals establish the timing grid on which all commands align.
The distinction between the two groups matters for board design. Command and address signals are common to all devices on the channel and are captured against the clock, so they tolerate a shared, sequentially routed topology. Data signals are source-synchronous: the transmitter sends a differential data strobe alongside each byte lane, and the receiver uses that strobe rather than the system clock to capture data. Source-synchronous capture cancels much of the flight-time variation across a board, which is what allows data rates to keep climbing while board dimensions stay the same. It also means the timing budget is set per byte lane, so matching requirements within a lane are far tighter than between lanes.
Topology, Training, and Calibration
From DDR3 onward, the command, address, and clock signals use a fly-by topology in which the net passes each device in turn and terminates at the far end. Fly-by routing greatly improves signal integrity over the earlier balanced-tree approach, but it means the clock reaches each device at a different time. Write leveling exists to resolve exactly this: during initialization the controller adjusts the strobe timing for each device individually until it aligns with the clock as that device sees it. Read training performs the complementary adjustment, sweeping the capture point across the received data eye and settling at its center.
Further calibration steps accompany these. ZQ calibration trims the on-die output driver impedance and termination against an external precision resistor, compensating for process, voltage, and temperature variation. Controllers commonly retrain periodically during operation, because die temperature shifts timing over the course of a workload. The result is that a DDR interface is not a static timing problem solved on paper but an adaptive system that measures its own channel. Board designers should expect to work with the vendor's training reports when bringing up a new layout, since those reports reveal remaining margin far more reliably than a nominal timing calculation. The memory interface PHY implements these functions in hardware.
DDR Power Management
DDR interfaces provide several power-saving states that trade wake-up latency for reduced consumption. Clock enable deassertion places the device in power-down, with a precharge power-down closing all banks for the lowest current and an active power-down leaving rows open for a faster return to service. Self-refresh goes further, stopping the interface clock entirely and letting the DRAM maintain its own contents, which permits the controller and PHY to power down for extended idle periods at the cost of a longer exit sequence that includes retraining.
Later generations add finer control. Automatic self-refresh adjusts the internal refresh rate to the measured die temperature, avoiding the power waste of assuming worst-case conditions. Maximum power saving mode in DDR4 disconnects the device from the bus almost completely. For a battery-powered product these states are not incidental features but a primary design concern, since memory can account for a substantial share of system power in a workload that is otherwise idle.
Memory Controllers
Controller Architecture
A memory controller translates processor and DMA requests into the precisely timed command sequences that DRAM devices require, while enforcing every timing constraint described earlier. A typical design buffers incoming requests in queues, maintains a model of the state of every bank and rank, and applies a scheduling algorithm that selects the next command permitted by the timing rules and most beneficial to throughput.
Out-of-order scheduling is the principal lever. By reordering requests, the controller groups accesses that hit an already open row, overlaps activations in idle banks with transfers in busy ones, and batches reads and writes to limit bus turnaround. The gain over first-come, first-served service is large on realistic traffic. The corresponding cost is variance: a request may wait while others overtake it, so the worst-case latency of a heavily optimized controller can exceed that of a simple one. Systems with hard real-time deadlines must therefore analyze worst-case rather than average behavior, and some controllers offer a bounded-latency mode for precisely this reason.
Address Mapping Strategies
The controller decomposes each physical address into channel, rank, bank group, bank, row, and column fields, and the choice of which address bits feed which field materially affects performance. Placing low-order bits into the bank and channel fields interleaves consecutive cache lines across banks and channels, maximizing parallelism and spreading load evenly. Placing more low-order bits into the column field instead keeps a longer contiguous span within a single row, maximizing row hits for sequential streams.
Neither choice dominates. A streaming workload such as video capture or display refresh favors mapping that preserves row locality, while a workload with many concurrent random streams favors aggressive interleaving. Pathological cases arise when a stride in the application aligns with the mapping so that every access lands in the same bank, serializing traffic that ought to be parallel. Many SoC controllers expose the mapping as a boot-time configuration, and tuning it against representative traffic is one of the higher-yield optimizations available in a memory-bound embedded design.
Quality of Service and Arbitration
Multi-core and heterogeneous systems generate competing requests from sources with very different requirements. A display controller needs a guaranteed average bandwidth and will produce visible artifacts if its buffer underruns, but it tolerates latency because it reads ahead. A processor core is sensitive to latency on a cache miss but generates modest average traffic. A camera or network interface must not lose data and therefore needs a bounded worst-case service interval.
Simple round-robin arbitration treats all of these alike and satisfies none of them well. Strict priority meets the needs of the highest-priority master but risks starving the rest. Practical controllers therefore implement quality-of-service mechanisms that assign each master a traffic class with an associated bandwidth allocation and latency target, often supported by credit or token schemes that permit a burst while bounding sustained consumption, and by aging mechanisms that raise the priority of a request as it waits. Getting these settings right is a system integration task, and misconfiguration typically surfaces late, as intermittent display tearing or dropped frames under peak load.
Reliability and Data Integrity
Soft Errors and Radiation Effects
Volatile memory cells store small quantities of charge, so an energetic particle passing through the silicon can deposit enough charge to flip a bit. The dominant sources are alpha particles emitted by trace radioactive contaminants in packaging materials and secondary particles produced when cosmic-ray neutrons interact with the die. The resulting single-event upset corrupts data without damaging the device, which is why such faults are called soft errors: the cell works correctly once rewritten.
Susceptibility differs by technology and has changed over time. The soft error rate per DRAM bit has fallen substantially across generations as cell geometry moved into three dimensions, though total system rates remain significant because capacities have grown so much. SRAM, with charge stored on logic nodes, has historically shown a higher upset rate per bit, and a single particle strike at small geometries can upset several adjacent cells at once. Designs that must tolerate this interleave physically adjacent cells across different logical words, so that a multi-cell upset becomes several independent single-bit errors that a conventional correction code can handle. Altitude increases neutron flux considerably, which is why avionics and high-altitude installations treat soft errors as a routine design constraint rather than a remote possibility.
Row Hammer and Refresh Management
As DRAM cells have shrunk and moved closer together, repeatedly activating one row has been shown to accelerate charge loss in physically adjacent rows, corrupting data in rows the accessing agent never touched. This disturbance mechanism, known as row hammer, is a reliability concern in its own right and also a security concern, because a process can in principle induce bit flips in memory it has no permission to write.
Mitigations operate at several levels. In-device target row refresh detects frequently activated rows and refreshes their neighbors. DDR5 standardizes refresh management, in which the device tracks activation counts and signals the controller to issue additional refresh commands when a threshold is exceeded, replacing the earlier proprietary and opaque schemes with a defined interface. Error-correcting codes reduce the impact of isolated flips but do not eliminate the problem, since a sufficiently determined access pattern can produce more errors in a word than the code can correct. Embedded designs that run untrusted code, or that must meet a functional safety target, should confirm what mitigation their chosen device and controller actually implement rather than assuming the issue is handled.
Error Detection and Correction
Error-correcting code memory adds redundant check bits that allow the controller to detect and repair corrupted data. The standard scheme, single-error correct, double-error detect, appends eight check bits to a 64-bit word, giving a 72-bit protected word that corrects any single-bit error and flags any double-bit error for the system to handle. Implementing it across a 64-bit bus conventionally requires one additional eight-bit-wide DRAM device per rank. Narrower embedded interfaces use proportionally smaller codes, and some controllers instead protect a 32-bit word with seven check bits.
Three distinct layers are easy to confuse. On-die correction, introduced with DDR5 and present in LPDDR4 and later, operates entirely inside the DRAM to compensate for cell-level defects and reports nothing to the system. Link protection covers the bus itself, typically through a cyclic redundancy check on transferred data, and detects transmission errors that on-die correction cannot see. System-level correction in the controller covers the entire path and is the only layer that reports correctable and uncorrectable events to software. A device advertising on-die correction therefore provides no system-visible protection whatever, a point that has caused real confusion in product specifications.
Correction works best alongside scrubbing, a background process that reads memory at a low rate and rewrites any word it repairs. Without scrubbing, single-bit errors accumulate undetected in rarely read locations until a second error in the same word makes the data unrecoverable. Error logging serves a further purpose: a rising correctable error rate on a particular address range is a reliable early indicator of a failing device, and systems that monitor it can schedule replacement before an uncorrectable failure occurs.
Embedded DRAM and Specialized Memories
Embedded DRAM (eDRAM)
Embedded DRAM places DRAM cells on the same die as a processor or ASIC, providing high bandwidth and low latency without the overhead of an external interface. Proximity removes package and board flight time and permits data paths far wider than any pin-limited external bus could support. IBM used eDRAM for large last-level caches in its POWER processors, and Intel paired certain processor generations with an on-package eDRAM cache serving both the processor and its integrated graphics.
Fabrication is the difficulty. Building capacitors alongside logic transistors requires extra process steps that raise cost and restrict the choice of foundry process. As on-chip SRAM capacities have grown and as stacked external memories have matured, eDRAM has become a niche approach rather than a mainstream one, though it retains an appeal wherever a large on-die memory must be denser than SRAM allows.
Low-Power DRAM Variants
Mobile and battery-powered applications drive a parallel family of standards optimized for energy rather than peak bandwidth. LPDDR devices operate from multiple supply rails at reduced voltages, use narrower channels with point-to-point routing suited to package-on-package assembly, and implement aggressive idle behavior including partial array self-refresh and deep power-down. LPDDR5 uses roughly 1.8 volts for the internal wordline supply, about 1.05 volts for the core supply, and about 0.5 volts for the interface supply. The interface rail is the significant number: driving the bus at half a volt cuts the energy of each transfer well below what a standard DDR5 interface at 1.1 volts requires, and interface energy is what dominates in a memory-bound mobile workload.
Deep power-down removes the supply from the array entirely, reducing current to microampere levels while discarding the contents, so the system must save any state it needs and restore it on wake. Choosing between deep power-down and self-refresh is a straightforward energy calculation: below some idle duration the energy of the save and restore exceeds the energy saved, and above it the reverse holds. Many power management frameworks make this decision dynamically from a predicted idle time.
High-Bandwidth Memory (HBM)
High-bandwidth memory stacks several DRAM dies vertically and connects them through thousands of through-silicon vias, achieving bandwidth unreachable with conventional packaging. The approach trades pin speed for interface width: rather than pushing a narrow bus to extreme data rates, HBM runs a very wide bus at moderate rates, which lowers energy per bit and eases signal integrity. Through HBM3E the interface is 1024 bits per stack across sixteen channels, and at pin rates approaching 9.6 gigabits per second a single stack exceeds 1.2 terabytes per second. JEDEC published the HBM4 standard in 2025, doubling the interface to 2048 bits across thirty-two channels and raising per-stack bandwidth above 2 terabytes per second.
HBM sits beside the processor die on a silicon interposer or comparable advanced package, since no organic substrate can route thousands of connections at that pitch. This packaging requirement is what confines HBM to high-value products: artificial intelligence accelerators, high-performance computing, network processors, and high-end graphics. The cost and thermal complexity of interposer assembly place it out of reach for most embedded designs, although the same stacking concepts appear in smaller form in wide-I/O mobile memories.
Graphics and Networking DRAM
Between commodity DDR and HBM sits a family of DRAM optimized for the sustained streaming bandwidth that graphics and packet processing demand. GDDR devices use point-to-point routing to a small number of devices placed close to the processor, which permits per-pin data rates well beyond what a socketed module can sustain. GDDR6 reaches the high teens of gigabits per second per pin, and GDDR7 raises throughput further by moving from binary signaling to a multi-level scheme that carries more than one bit per symbol. Embedded systems encounter these parts mainly in graphics-intensive or vision-processing designs where HBM is too costly and standard DDR too slow.
Design Considerations for Embedded Systems
Memory Selection Criteria
Selecting volatile memory begins with capacity, because capacity largely determines technology. A working set of tens of kilobytes fits comfortably in microcontroller SRAM. A few megabytes points toward PSRAM or HyperRAM over a narrow bus. Tens of megabytes and beyond, particularly with a graphical display or a network stack, generally requires DDR or LPDDR and the board complexity that accompanies it. Adding headroom at this stage is inexpensive relative to discovering the shortfall after layout.
Bandwidth and latency requirements then narrow the choice further, and they should be estimated from actual data flows rather than assumed. A display controller refreshing a panel consumes a calculable and continuous bandwidth that must be reserved before any other traffic is considered. Power budget favors SRAM where idle time dominates and LPDDR where active throughput dominates. Determinism requirements may rule out DRAM altogether for the most critical code paths, which is the usual argument for tightly coupled memory.
Environmental and lifecycle factors close the decision. Industrial and automotive designs need the extended temperature grades, with the doubled refresh rate above 85 degrees Celsius accounted for in the bandwidth budget. Long-lived products need parts with a committed longevity program, since memory device lifecycles are short relative to industrial equipment. Package choice interacts with board cost, as a package-on-package or ball grid array assembly with fine pitch may force additional board layers and a more expensive fabrication class.
Board Design for Memory Interfaces
High-speed memory interfaces demand disciplined board design. Single-ended DDR signals are typically routed to a controlled impedance near 40 ohms, with differential clock and strobe pairs near 80 ohms, matched to the on-die termination and driver impedance the training process calibrates. An uninterrupted reference plane beneath every high-speed net is essential, since a plane split forces the return current onto a detour that adds inductance and couples noise into neighboring signals.
Length matching follows the timing structure of the interface. Within a byte lane, data lines must match their strobe closely because that strobe captures them. Between byte lanes the requirement relaxes considerably, since each lane is trained independently. Command and address nets match the clock along the fly-by topology, with write leveling absorbing the resulting per-device skew. Decoupling deserves equal care: each device needs local capacitance placed to minimize loop inductance, sized across a range of values to cover the frequency span of the current demand.
Simulation is not optional at these rates. Pre-layout channel simulation establishes an achievable topology, and post-layout extraction confirms that the routed board still closes timing. The alternative is discovering marginal behavior during environmental testing, when a respin is costly. See memory system signal integrity for detailed treatment of these effects.
Thermal Considerations
Memory devices dissipate power in proportion to their activity, and DRAM has a particular thermal sensitivity because retention time falls as temperature rises. Crossing 85 degrees Celsius doubles the required refresh rate, which consumes bandwidth and dissipates additional power, creating a coupling between temperature and power that designers must not overlook. Sustained operation beyond the specified range risks retention failures that appear as intermittent, difficult-to-reproduce data corruption.
Practical thermal management ranges from careful placement and copper pour through heat spreaders to forced airflow in dense systems. Many devices integrate a temperature sensor readable by the controller, which supports temperature-compensated refresh and allows throttling before limits are reached. In a sealed enclosure the memory is often not the hottest component but sits in the thermal shadow of the processor, so the ambient it experiences may substantially exceed the enclosure average.
Testing and Validation
Memory validation spans manufacturing test, bring-up, and stress testing across environmental extremes. Structural test uses march algorithms, a family of systematic read and write sequences that traverse the address space in ascending and descending order to detect stuck-at faults, transition faults, and coupling between adjacent cells. Built-in self-test hardware executes these patterns on on-chip memories at speed, and equivalent software routines cover external memory during production test or power-on self-test.
Parametric validation addresses different failure modes. Eye diagram measurement, usually obtained from the controller's own training hardware rather than an oscilloscope, quantifies the remaining timing and voltage margin at the receiver. Sweeping supply voltage and temperature while monitoring that margin, a technique known as shmoo testing, reveals the boundaries of the operating region and exposes designs that pass at nominal conditions with no margin to spare. Extended stress runs at temperature and voltage corners catch retention and refresh problems that short functional tests never provoke, and they should run long enough to cover many refresh windows under realistic traffic.
Summary
Volatile memory provides the working store that lets embedded systems execute code and process data. SRAM supplies speed, simplicity, and determinism for caches, tightly coupled memories, and critical buffers, at a cost per bit that limits its capacity. DRAM supplies capacity at far lower cost, at the price of refresh obligations, destructive reads, and a timing model whose complexity the memory controller must absorb. PSRAM and its serial-bus variants occupy the middle ground that many embedded designs actually need.
Effective memory system design depends less on selecting the fastest available part than on matching technology, interface, and configuration to the real access patterns of the application. Address mapping, arbitration policy, refresh strategy, and memory map layout frequently affect delivered performance more than raw device speed. Reliability deserves the same deliberate attention, since soft errors, row hammer, and thermal retention effects are all manageable once anticipated and all difficult to diagnose once fielded.