|
A computer's memory can be viewed
as a list of cells into which numbers can be placed or read.
Each cell has a numbered "address" and can store a single
number. The computer can be instructed to "put the number 123
into the cell numbered 1357" or to "add the number that is in
cell 1357 to the number that is in cell 2468 and put the answer
into cell 1595". The information stored in memory may represent
practically anything. Letters, numbers, even computer
instructions can be placed into memory with equal ease. Since
the CPU does not differentiate between different types of
information, it is up to the software to give significance to
what the memory sees as nothing but a series of numbers.
In almost all modern computers, each memory cell is set up to
store binary numbers in groups of eight bits (called a byte).
Each byte is able to represent 256 different numbers; either
from 0 to 255 or -128 to +127. To store larger numbers, several
consecutive bytes may be used (typically, two, four or eight).
When negative numbers are required, they are usually stored in
two's complement notation. Other arrangements are possible, but
are usually not seen outside of specialized applications or
historical contexts. A computer can store any kind of
information in memory as long as it can be somehow represented
in numerical form. Modern computers have billions or even
trillions of bytes of memory.
The CPU contains a special set of memory cells called registers
that can be read and written to much more rapidly than the main
memory area. There are typically between two and one hundred
registers depending on the type of CPU. Registers are used for
the most frequently needed data items to avoid having to access
main memory every time data is needed. Since data is constantly
being worked on, reducing the need to access main memory (which
is often slow compared to the ALU and control units) greatly
increases the computer's speed.
Computer main memory comes in two principal varieties: random
access memory or RAM and read-only memory or ROM. RAM can be
read and written to anytime the CPU commands it, but ROM is
pre-loaded with data and software that never changes, so the CPU
can only read from it. ROM is typically used to store the
computer's initial start-up instructions. In general, the
contents of RAM is erased when the power to the computer is
turned off while ROM retains its data indefinitely. In a PC, the
ROM contains a specialized program called the BIOS that
orchestrates loading the computer's operating system from the
hard disk drive into RAM whenever the computer is turned on or
reset. In embedded computers, which frequently do not have disk
drives, all of the software required to perform the task may be
stored in ROM. Software that is stored in ROM is often called
firmware because it is notionally more like hardware than
software. Flash memory blurs the distinction between ROM and RAM
by retaining data when turned off but being rewritable like RAM.
However, flash memory is typically much slower than conventional
ROM and RAM so its use is restricted to applications where high
speeds are not required.
In more sophisticated computers there may be one or more RAM
cache memories which are slower than registers but faster than
main memory. Generally computers with this sort of cache are
designed to move frequently needed data into the cache
automatically, often without the need for any intervention on
the programmer's part. |