With regard to the hardware of computers, we understand as memory the devices that store the data with which the processor works. There are essentially two categories of memories: ROM (Read-Only Memory), which only allows data to be read and does not lose information in the absence of power; and RAM (Random-Access Memory), which allows the processor to both read and write data and lose information when there is no power. In this article, we present the main types of ROM and RAM memories, as well as showing the most important characteristics of these devices, such as frequency, latency, encapsulation, technology, etc. See AbbreviationFinder for more meanings of ROM as an acronym.
ROM memory
The ROM memory (Read-Only Memory – Memory Reading only) are so named because the data is written in them only once. After that, this information cannot be erased or changed, only read by the computer, except through special procedures. Another characteristic of ROM memories is that they are non-volatile , that is, the recorded data is not lost in the absence of electrical power to the device. Here are the main types of ROM memory:
– PROM (Programmable Read-Only Memory): this is one of the first types of ROM memory. The recording of data in this type is carried out by means of devices that work through a physical reaction with electrical elements. Once this occurs, the data recorded in the PROM memory cannot be erased or changed;
– EPROM (Erasable Programmable Read-Only Memory): EPROM memories have as their main feature the ability to allow data to be rewritten on the device. This is done with the aid of a component that emits ultraviolet light. In this process, the recorded data must be completely erased. Only after that can a new recording be made;
– EEPROM (Electrically-Erasable Programmable Read-Only Memory): this type of ROM memory also allows data to be rewritten, however, unlike what happens with EPROM memories, the processes to erase and write data are done electrically, making that it is not necessary to move the device from its place to a special device for the re-recording to occur;
– EAROM (Electrically-Alterable Programmable Read-Only Memory): EAROM memories can be seen as a type of EEPROM. Its main feature is the fact that the recorded data can be changed gradually, which is why this type is generally used in applications that require only partial rewriting of information;
– Flash : Flash memories can also be seen as a type of EEPROM, however, the process of recording (and rewriting) is much faster. In addition, Flash memories are more durable and can store a large amount of data.
– CD-ROM , DVD-ROM and the like: this is a category of optical discs where data is recorded only once, either at the factory, such as music CDs, or with the user’s own data, when recording itself. There is also a category that can be compared to the EEPROM type, as it allows data rewriting: CD-RW and DVD-RW and the like.
CAS and RAS
The processor stores in the RAM memory the information it works with, therefore, at all times, recording, deletion and data access operations are performed. All this work is possible thanks to the work of a circuit already mentioned called a memory controller.
To facilitate the performance of these operations, the memory cells are organized in a kind of matrix, that is, they are oriented in a scheme that resembles rows and columns. The crossing of a certain line (also called a wordline), with a certain column (also called a bitline) forms what we know as the memory address. Thus, to access the address of a position in memory, the controller obtains its column value, that is, the RAS value (Row Address Strobe) and its line value, that is, the CAS value (Column Address Strobe).
Memory timing and latency
The timing and latency parameters indicate how much time the memory controller spends with reading and writing operations. In general, the lower these values, the faster the operations.
For you to understand, let’s take as an example a memory module that reports the following values in relation to latency: 5-4-4-15-1T. This value is written in this form: tCL-tRCD-tRP-tRAS-CR. Let’s see what each of these parameters means:
– tCL (CAS Latency): when a memory read operation is initiated, signals are triggered to activate the corresponding lines (RAS) and columns (RAS), determine whether the operation is read or write (CS – Chip Select) and so on. The CAS Latency parameter indicates, in clock cycles (learn more about clock in this article about processors), what is the period between sending the CAS signal and making the respective data available. In other words, it is the interval between the request of a data by the processor and the delivery of the data by memory. So, in the case of our example, this value is 5 clock cycles;
– tRCD (RAS to CAS Delay): this parameter indicates, also in clock cycles, the interval between the activation of the row and the column of a given data. In the example above, this value corresponds to 4;
– tRP (RAS Precharge): interval in clocks that informs the time spent between disabling access to one line and enabling access to another. In our example, this value is 4 cycles;
– tRAS (Active to Precharge Delay): this parameter indicates the interval, also in clocks, necessary between a command to activate the line and the next action of the same type. In our example, this value is 15 clock cycles;
– CR (Command Rate): interval between the activation of the CS signal and any other command. In general, this value is 1 or 2 clock cycles and is accompanied by the letter T. In our example, this value is 1 cycle.
These parameters are usually informed by the manufacturer on a label attached to the memory stick (the CMD value is often not reported). When this does not happen, it is possible to obtain this information through specific software (such as the free CPU-Z, for Windows, shown below) or even through the BIOS setup.
The timing parameters provide a good sense of the memory access time. Note that when we talk about this, we refer to the time it takes the memory to supply the requested data. What has not been said above is that this time is measured in nanoseconds (ns), that is, 1 second divided by 1,000,000,000.
So, to get a sense of what is the maximum frequency used by the memory, just divide 1000 by its access time in nanoseconds (this information can appear on a label on the module or it can be informed through special software). For example: if a memory stick works with 15 ns, its frequency is 66 MHz, since 1000/15 = 66.
Other parameters
Some current or overclocked motherboards (in a nutshell, practice where hardware devices are adjusted to work beyond factory specifications) or software that details the characteristics of the computer’s hardware, usually inform others parameters, in addition to those mentioned above. Generally, these additional parameters are reported as follows: tRC-tRFC-tRRD-tWR-tWTR-tRTP (for example: 22-51-3-6-3-3), also considering clock cycles. Let’s see what each one means:
– tRC (Row Cycle): consists of the time needed to complete a cycle of access to a memory line;
– tRFC (Row Refresh Cycle): consists of the time needed to execute the memory refresh cycles;
– tRRD (Row To Row Delay): similar to tRP, but considers the time that the controller needs to wait after a new line has been activated;
– tWR (Write Recovery): informs the time needed for the memory controller to start performing a write operation after performing an operation of the same type;
– tWTR (Write to Read Delay): consists of the time necessary for the memory controller to start performing read operations after performing a write operation;
– tRTP (Read to Precharge Delay): indicates the time required between a read operation performed and activation of the next signal.
Voltage
Compared to other items on a computer, memories are one of the least energy-consuming components. The interesting thing is that this consumption decreased with the evolution of technology. For example, DDR2 memory modules (technology that will still be covered in this text), in general, require between 1.8 V and 2.5 V. It is possible to find DDR3 memory sticks (standard that will also be covered in this article) whose requirement is 1.5 V. Old memory modules required about 5 V.
Some people with a lot of knowledge on the subject overclock their memories by increasing their voltage. With this adjustment, when within certain limits, it is possible to obtain higher clock levels.
SPD (Serial Presence Detect)
The SPD is a small chip (usually of the EEPROM type) inserted in the memory modules that contains various information about the device’s specifications, such as type (DDR, DDR2, etc.), voltage, timing / latency, manufacturer, serial number, etc.
Many motherboards have a BIOS setup that allows for a series of configuration adjustments. In such cases, a user can try to set the memory parameters, however, those who do not want to have this job, can keep the default configuration.
Error detection
Some mechanisms have been developed to help in the detection of memory errors, failures that can have several causes. These features are especially useful in highly reliable applications, such as mission-critical servers , for example.
One of these mechanisms is parity , which is only able to help detect errors, but not to correct them. In this scheme, a bit is added to each byte of memory (remember: 1 byte corresponds to 8 bits). This bit assumes the value 1 if the number of bits 1 of the byte is even and assumes the value 0 (zero) if the referred quantity is odd (the opposite can also happen: 1 for odd and 0 for even). When reading data, a circuit will check if the parity corresponds to the number of bits 1 (or 0) of the byte. If different, an error has been detected.
Parity, however, may not be as accurate, as a two-bit error, for example, can cause the parity bit to match the odd or even number of bits 1 of the byte. Thus, for applications that require high data accuracy, you can count on memories that have ECC (Error Checking and Correction), a more complex mechanism capable of detecting and correcting bit errors.
Types of memory encapsulation
The encapsulation corresponding to the artifact that gives physical shape to memory chips. Here is a brief description of the types of packaging most used by the industry:
– DIP (Dual In-line Package): one of the first types of encapsulation used in memories, being especially popular at the time of the XT and 286 computers. bonding by welding on plates can be easily done manually;
– SOJ (Small Outline J-Lead): this package receives its name because its contact terminals resemble the letter ‘J’. It was widely used in SIMM modules (seen later) and its form of fixation on plates is made by welding, not requiring holes in the surface of the device;
– TSOP (Thin Small Outline Package): type of encapsulation whose thickness is quite reduced in relation to the standards mentioned above (about 1/3 smaller than the SOJ). Because of this, their contact terminals are smaller, as well as thinner, reducing the incidence of interference in communication. It is a type applied to SDRAM and DDR memory modules (which will be discussed later). There is a variation of this encapsulation called STSOP (Shrink Thin Small Outline Package) that is even thinner;
– CSP (Chip Scale Package): most recently, the CSP package stands out for being “thin” and for not using contact pins that resemble the traditional “legs”. Instead, it uses a type of fitting called BGA (Ball Grid Array). This type is used in modules like DDR2 and DDR3 (which will be seen at the front).
Memory modules
We understand as module or, even, comb , a small plate where the memory packages are installed. This card is attached to the motherboard by means of specific slots. Here is a brief description of the most common types of modules:
– SIPP (Single In-Line Pins Package): it is one of the first types of modules that hit the market. It is format by chips with DIP encapsulation. In general, these modules were soldered on the motherboard;
– SIMM (Single In-Line Memory Module): modules of this type were not soldered, but fitted on the motherboard. The first version contained 30 contact terminals (30-way SIMM) and consisted of a set of 8 chips (or 9, for parity). With that, they could transfer one byte per clock cycle. Subsequently, a version with 72 pins (72-way SIMM) appeared, therefore, larger and capable of transferring 32 bits at a time. 30-way SIMM modules could be found with capacities ranging from 1 MB to 16 MB. 72-way SIMM modules, in turn, were commonly found with capacities ranging from 4 MB to 64 MB;
– DIMM (Double In-Line Memory Module): DIMM modules bear this name because they have contact terminals on both sides of the comb. They are capable of transmitting 64 bits at a time. The first version – applied to SDR SDRAM memory – had 168 pins. Then, 184-way modules, used in DDR memories, and 240-way modules, used in DDR2 and DDR3 modules, were launched. There is a small size DIMM standard called SODIMM (Small Outline DIMM), which are used mainly in portable computers, such as notebooks;
– RIMM (Rambus In-Line Memory Module): formed by 168 channels, this module is used by Rambus memories, which will be covered in this article. A curious fact is that for each Rambus memory card installed in the computer, it is necessary to install a 184-way “empty” module, called C-RIMM (Continuity-RIMM).
Conclusion
Over time, the evolution of memory technologies not only makes them faster, but also makes them have greater data storage capacity. Flash-type ROM memories, for example, can store several gigabytes. As for RAM memories, the same is true. Because of this, the natural question is: how much to use? The answer depends on a number of factors, however, the industry continues to work to further increase the speed and capacity of these devices.