Computer Memory Applications and Management
Computer Memory Applications and Management
net/publication/295550090
CITATIONS READS
0 12,630
1 author:
Nikola Zlatanov
Applied Materials
44 PUBLICATIONS 4 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Nikola Zlatanov on 22 February 2016.
Nikola Zlatanov*
In computing, memory refers to the computer hardware devices used to store information for
immediate use in a computer; it is synonymous with the term "primary storage". Computer memory
operates at a high speed, for example random-access memory (RAM), as a distinction from storage that
provides slow-to-access program and data storage but offers higher capacities. If needed, contents of
the computer memory can be transferred to secondary storage, through a memory management
technique called "virtual memory". An archaic synonym for memory is store.
The term "memory", meaning "primary storage" or "main memory", is often associated with
addressable semiconductor memory, i.e. integrated circuits consisting of silicon-based transistors, used
for example as primary storage but also other purposes in computers and other digital electronic devices.
There are two main types of semiconductor memory, volatile and non-volatile. Examples of non-volatile
memory are flash memory (used as secondary memory) and ROM, PROM, EPROM and EEPROM
memory (used for storing firmware such as BIOS). Examples of volatile memory are primary storage,
which is typically dynamic random-access memory (DRAM), and fast CPU cache memory, which is
typically static random-access memory (SRAM) that is fast but energy-consuming, offering lower
memory areal density than DRAM.
Most semiconductor memory is organized into memory cells or bistable flip-flops, each storing
one bit (0 or 1). Flash memory organization includes both one bit per memory cell and multiple bits per
cell (called MLC, Multiple Level Cell). The memory cells are grouped into words of fixed word length, for
example 1, 2, 4, 8, 16, 32, 64 or 128 bit. Each word can be accessed by a binary address of N bit,
making it possible to store 2 raised by N words in the memory. This implies that processor registers
normally are not considered as memory, since they only store one word and do not include an
addressing mechanism. Typical secondary storage devices are hard disk drives and solid-state drives.
It is amazing how many different types of electronic memory you encounter in daily life. Many of
them have become an integral part of our vocabulary: RAM, ROM, Cache, Dynamic RAM, Static
RAM, Flash memory, Memory Sticks, Virtual memory, Video memory, BIOS.
Computer Memory Basics
Although memory is technically any form of electronic storage, it is used most often to identify fast,
temporary forms of storage. If your computer's CPU had to constantly access the hard drive to retrieve
every piece of data it needs, it would operate very slowly. When the information is kept in memory, the
CPU can access it much more quickly. Most forms of memory are intended to store data temporarily.
As you can see in the diagram above, the CPU accesses memory according to a distinct hierarchy.
Whether it comes from permanent storage (the hard drive) or input (the keyboard), most data goes in
random access memory (RAM) first. The CPU then stores pieces of data it will need to access, often in
a cache, and maintains certain special instructions in the register. We'll talk about cache and registers
later.
All of the components in your computer, such as the CPU, the hard drive and the operating system,
work together as a team, and memory is one of the most essential parts of this team. From the moment
you turn your computer on until the time you shut it down, your CPU is constantly using memory. Let's
take a look at a typical scenario:
• You turn the computer on.
• The computer loads data from read-only memory (ROM) and performs a power-on self-test
(POST) to make sure all the major components are functioning properly. As part of this test, the memory
controller checks all of the memory addresses with a quick read/write operation to ensure that there are
no errors in the memory chips. Read/write means that data is written to a bit and then read from that bit.
• The computer loads the basic input/output system (BIOS) from ROM. The BIOS provides the
most basic information about storage devices, boot sequence, security, Plug and Play (auto device
recognition) capability and a few other items.
• The computer loads the operating system (OS) from the hard drive into the system's RAM.
Generally, the critical parts of the operating system are maintained in RAM as long as the computer is
on. This allows the CPU to have immediate access to the operating system, which enhances the
performance and functionality of the overall system.
• When you open an application, it is loaded into RAM. To conserve RAM usage, many
applications load only the essential parts of the program initially and then load other pieces as needed.
• After an application is loaded, any files that are opened for use in that application are loaded into
RAM.
• When you save a file and close the application, the file is written to the specified storage device,
and then it and the application are purged from RAM.
In the list above, every time something is loaded or opened, it is placed into RAM. This simply means
that it has been put in the computer's temporary storage area so that the CPU can access that
information more easily. The CPU requests the data it needs from RAM, processes it and writes new
data back to RAM in a continuous cycle. In most computers, this shuffling of data between the CPU and
RAM happens millions of times every second. When an application is closed, it and any accompanying
files are usually purged (deleted) from RAM to make room for new data. If the changed files are not
saved to a permanent storage device before being purged, they are lost.
One common question about desktop computers that comes up all the time is, "Why does a computer
need so many memory systems?"
Types of Computer Memory
A typical computer has:
Level 1 and level 2 caches
Normal system RAM
Virtual memory
A hard disk
Fast, powerful CPUs need quick and easy access to large amounts of data in order to maximize
their performance. If the CPU cannot get to the data it needs, it literally stops and waits for it. Modern
CPUs running at speeds of about 1 GigaHertz can consume massive amounts of data -- potentially
billions of bytes per second. The problem that computer designers face is that memory that can keep up
with a 1-gigahertz CPU is extremely expensive -- much more expensive than anyone can afford in large
quantities.
Computer designers have solved the cost problem by "tiering" memory -- using expensive memory in
small quantities and then backing it up with larger quantities of less expensive memory.
The cheapest form of read/write memory in wide use today is the hard disk. Hard disks provide
large quantities of inexpensive, permanent storage. You can buy hard disk space for pennies per
megabyte, but it can take a good bit of time (approaching a second) to read a megabyte off a hard disk.
Because storage space on a hard disk is so cheap and plentiful, it forms the final stage of a CPUs
memory hierarchy, called virtual memory.
The next level of the hierarchy is RAM. We discuss RAM in detail in How RAM Works, but several
points about RAM are important here.
The bit size of a CPU tells you how many bytes of information it can access from RAM at the same time.
For example, a 16-bit CPU can process 2 bytes at a time (1 byte = 8 bits, so 16 bits = 2 bytes), and a 64-
bit CPU can process 8 bytes at a time.
Megahertz (MHz) is a measure of a CPU's processing speed, or clock cycle, in millions per second.
So, a 32-bit 800-MHz Pentium III can potentially process 4 bytes simultaneously, 800 million times per
second (possibly more based on pipelining)! The goal of the memory system is to meet those
requirements.
A computer's system RAM alone is not fast enough to match the speed of the CPU. That is why
you need a cache (discussed later). However, the faster RAM is, the better. Most chips today operate
with a cycle rate of 50 to 70 nanoseconds. The read/write speed is typically a function of the type of RAM
used, such as DRAM, SDRAM, RAMBUS. We will talk about these various types of memory later.
First, let's talk about system RAM.
System RAM
System RAM speed is controlled by bus width and bus speed. Bus width refers to the number of
bits that can be sent to the CPU simultaneously, and bus speed refers to the number of times a group of
bits can be sent each second. A bus cycle occurs every time data travels from memory to the CPU. For
example, a 100-MHz 32-bit bus is theoretically capable of sending 4 bytes (32 bits divided by 8 = 4
bytes) of data to the CPU 100 million times per second, while a 66-MHz 16-bit bus can send 2 bytes of
data 66 million times per second. If you do the math, you'll find that simply changing the bus width from
16 bits to 32 bits and the speed from 66 MHz to 100 MHz in our example allows for three times as much
data (400 million bytes versus 132 million bytes) to pass through to the CPU every second.
In reality, RAM doesn't usually operate at optimum speed. Latency changes the equation
radically. Latency refers to the number of clock cycles needed to read a bit of information. For example,
RAM rated at 100 MHz is capable of sending a bit in 0.00000001 seconds, but may take 0.00000005
seconds to start the read process for the first bit. To compensate for latency, CPUs uses a special
technique called burst mode.
Burst mode depends on the expectation that data requested by the CPU will be stored in
sequential memory cells. The memory controller anticipates that whatever the CPU is working on will
continue to come from this same series of memory addresses, so it reads several consecutive bits of
data together. This means that only the first bit is subject to the full effect of latency; reading successive
bits takes significantly less time. The rated burst mode of memory is normally expressed as four
numbers separated by dashes. The first number tells you the number of clock cycles needed to begin a
read operation; the second, third and fourth numbers tell you how many cycles are needed to read each
consecutive bit in the row, also known as the wordline. For example: 5-1-1-1 tells you that it takes five
cycles to read the first bit and one cycle for each bit after that. Obviously, the lower these numbers are,
the better the performance of the memory.
Burst mode is often used in conjunction with pipelining, another means of minimizing the effects
of latency. Pipelining organizes data retrieval into a sort of assembly-line process. The memory controller
simultaneously reads one or more words from memory, sends the current word or words to the CPU and
writes one or more words to memory cells. Used together, burst mode and pipelining can dramatically
reduce the lag caused by latency.
So why wouldn't you buy the fastest, widest memory you can get? The speed and width of the
memory's bus should match the system's bus. You can use memory designed to work at 100 MHz in a
66-MHz system, but it will run at the 66-MHz speed of the bus so there is no advantage, and 32-bit
memory won't fit on a 16-bit bus.
Even with a wide and fast bus, it still takes longer for data to get from the memory card to the
CPU than it takes for the CPU to actually process the data. That's where caches come in.
Memory Management
Proper management of memory is vital for a computer system to operate properly. Modern operating
systems have complex systems to properly manage memory. Failure to do so can lead to bugs, slow
performance, and at worst case, takeover by viruses and malicious software.
Nearly everything a computer programmer does requires him or her to consider how to manage memory.
Even storing a number in memory requires the programmer to specify how the memory should store it.
* Mr. Nikola Zlatanov spent over 20 years working in the Capital Semiconductor Equipment Industry. His work at Gasonics, Novellus,
Lam and KLA-Tencor involved progressing electrical engineering and management roles in disruptive technologies. Nikola received his
Undergraduate degree in Electrical Engineering and Computer Systems from Technical University, Sofia, Bulgaria and completed a
Graduate Program in Engineering Management at Santa Clara University. He is currently consulting for Fortune 500 companies as well
as Startup ventures in Silicon Valley, California.