At a high level memory is just another type of storage medium like paper tape, punched cards, magnetic tape, floppy diskette, hard disk drive, CD, and DVD. These media types are used to store and retrieve data, code, images, audio and visual content and so forth. For each type of media there are corresponding devices for reading/playing and writing/recording. The underlying technologies include mechanical, magnetic, electric, optical and nanotechnology. The combination of storage media and devices are characterized by their
Once upon a time one could say that the closer to the CPU the faster, the more expensive and the less capacity the storage device. Memory was the closest. The typical configuration of the PC AT, the successor to the PC and XT, had 8 MB of memory. Under DOS the personal computer was essentially a single user system executing a single application. Main memory contained portions of the operating system, program executable and application data. Various techniques enabled portions to be loaded into memory as need. Over time the operating systems evolved so that a single user could have multiple applications executing concurrently and later that several users could share the same personal computer. This drove the need for increased memory capacity for the pc. This combined with the proliferation of personal computers for home and business generated enormous demand for computer memory. The same phenomena were happening in the workstation and computer server arenas.
More recently we have the explosive growth in the market for hand-held, mobile computerized devices such as cell phones, digital cameras, PDAs, and CD and MP3 players. Today end users want to record and play digital images, audio and video files. This translates into the need for storage devices with smaller footprints, greater capacity, lower power consumption and faster speeds than found in personal computers. With the emergence of non-volatile flash memory the previous distinctions between memory and data storage have been blurred.
Memory types can be divided into two main camps: volatile memory that loses its content unless continuously connected to a power source and non-volatile memory that retains its content even after the power source is disconnected or turned off. Volatile memory can be divided into dynamic random access memory (DRAM) and static random access memory (SRAM). Here the term random means that an individual memory cell can be accessed directly rather than sequentially. The most common forms of non-volatile memory are EEPROM (electrically erasable programmable read-only memory) and Flash.
In DRAM, the most common form of RAM, each memory cell has a charge or lack of charge held in something similar to an electrical capacitor. A transistor acts as a gate in determining whether the value in the capacitor can be read or written. DRAM requires refreshing thousands of times per second to retain charge. Also, the process of reading data from the memory array drains these charges, so the memory cells must also be pre-charged before reading the data. In SRAM, instead of a capacitor-held charge, the transistor itself is a positional flip/flop switch, with one position meaning 1 and the other position meaning 0. SRAM uses multiple transistors, typically four to six, for each memory cell. SRAM does not require refreshing.
Computer main memory consists of DRAM which is relatively inexpensive and high-capacity. Cache memory is a part of the memory subsystem that stores the most frequently accessed data. The computer looks at cache memory before accessing main memory. Cache memory uses SRAM which is higher-speed, more expensive and larger in size than DRAM. Because of these characteristics cache memory typically has very limited capacity, say a few hundred KB. Memory caching is effective because most programs access the same data or instructions over and over. By keeping as much of this information as possible in SRAM, the computer avoids accessing the slower DRAM. Cache memory is sometimes described in levels of closeness and accessibility to the microprocessor. The level 1 (L1) cache is the fastest and smallest in capacity, normally between 16KB and 32KB. The L1 or internal cache is built into the same chip as the microprocessor. The level 2 (L2) cache is the second fastest and a bit larger in capacity, normally between 128KB to 512KB for PC usage. Larger computers sometimes have another cache between the L2 cache and main memory called an L3 cache that may range in size from 2 to 256 megabytes.
Extended Data Output RAM (EDO DRAM or EDO RAM) recognizes that most of the time when the CPU requests memory for a particular address, it's going to want some more addresses nearby. Instead of forcing each memory access to start afresh, EDO RAM retains the location of the previous access, thereby speeding access to nearby addresses.
RDRAM (Rambus Dynamic Random Access Memory) technology introduced in 1990 is developed and licensed by Rambus Inc. to manufacturing partners. RDRAM is high performance memory currently operating at transfer speeds of 1200MHz. RDRAM combines conventional DRAM with a high-speed serial interface called the Channel. The Channel uses 16 pins (2 bytes) for a data path operating at an effective data rate of 8000 MHz per pin by transmitting data on both edges of the clock. Since each RDRAM device's datapath is as wide as the Channel (16 bits), a single device can service an entire memory request. Up to 32 RDRAM devices can be placed on each channel without a buffer. The Channel is common to all devices and incorporates the command bus, the data bus and a serial control bus for initialization.
SDRAM (Synchronous Dynamic Random Access Memory or Synchronous DRAM) is tied to the system clock and is designed to be able to read or write from memory in burst mode (after the initial read or write latency) at 1 clock cycle per access (zero wait states) at memory bus speeds up to 100 MHz or even higher
DDR SDRAM (Double Data Rate SDRAM) supports data transfers on both edges of each clock cycle, effectively doubling the memory chip's data throughput.
DDR SDRAM achieves a data transfer rate that is twice the clock frequency by employing 2-bit prefetch architecture.
DDR2 is nearly identical to DDR. It starts at 400MHz where DDR leaves off. The major improvement include: 4-bit rather than 2-bit prefetch, additive latency, enhanced registers, FBGA packaging, and On Die Termination (ODT) rather than on the motherboard to improve signal integrity in the system. DDR2 has a faster transfer rate, lower supply voltage, lower power consumption, and smaller package size. The 4-bit prefetch effectively doubles the data bus speed while keeping the internal bus speed the same from DDR1. DDR2 requires 240 pins versus 184 pins thereby rendering the two physically incompatible.
ROM (Read Only Memory) is non-volatile memory, which retains data even after the power is turned off. ROM is divided into two classes, depending whether the user can write data to the memory or not. MASK ROM is written during manufacturing process. Rewritable ROM, on the other hand, is divided into several types depending on the method used to write data. OTPROM (One Time Programmable ROM) is a type of ROM that can be written only once. EPROM (Erasable Programmable ROM) is writable ROM on which data can be erased using ultraviolet light. Flash EEPROM (Flash Memory) is a special type of EEPROM (Electronically Erasable Programmable Read Only Memory) that can be erased and reprogrammed in blocks instead of one byte at a time.