2.5: Options for Temporary Storage of Data
2.5 Options for Temporary Storage of Data
Except for trivial SSI/MSI circuits, any IC includes some form of memory. If the original data processing algorithm is of sequential nature and, therefore, mandates the temporary storage of data, we speak of functional memory. If storage gets introduced into a circuit as a consequence of architectural transformations, the memory is sometimes said to be of nonfunctional nature.
The major options for temporary storage of data are as follows:
-
On-chip registers built from individual bistables (flip-flops or latches),
-
On-chip memory (embedded SRAM or possibly DRAM macrocell), or
-
Off-chip memory (SRAM or DRAM catalog part). [46]
There are important differences from an implementation point of view that matter from an architectural perspective and that impact high-level design decisions.
2.5.1 Data access patterns
Standard single-port RAMs provide access to data words one after the other. [47] This is fine in sequential architectures as obtained from iterative decomposition and time-sharing that process data in a step-by-step fashion. Program-controlled microprocessors with their fetch, load, execute, store processing paradigm are a perfect match for RAMs.
Fast architectures obtained from pipelining, retiming, and loop unfolding, [48] in contrast, keep data moving in every computation cycle, which mandates the usage of registers as only those allow for simultaneous access to all of the data words stored.
Incidentally, also keep in mind that the contents of DRAMs need to be periodically refreshed, which dissipates electrical power even when no data accesses take place.