The most important computational unit is the CPU, which requires a large amount of data for executing various instructions. This data is in the form of bits and bytes. This binary digital data is stored on the storage devices or memory. Initially, all the storage devices were referred to as memory, but these days, memory means the semiconductor storage device called the Random Access Memory or RAM.
Early computers used delay lines, magnetic drums, William tubes etc. for storing data. These devices provided an extremely low access rate. But with the invention of transistors, radical changes were introduced in the memory implementation techniques. Depending upon the storage capacity, access rate and volatility, data storage can be divided into primary storage and secondary storage.
Primary storage or the commonly referred Random Access Memory is the memory which is directly accessible to the CPU. The CPU constantly reads instructions from this memory. The capacity of RAM in terms of data storage is less, but it offers a very fast access rate, thus making it pretty expensive. It offers minimum latency, hence suitable for transactional environment databases. Primary storage also consists of processor registers and processor cache.
- Processor Registers: Processor registers, located within the CPU are used to load instructions for execution by the CPU. Registers hold data word of size 32 or 64 bits. They are the fastest means of data storage. But they are capable of storing data of a very small size.
- Processor Cache: Processor cache is the part of RAM and is used for speeding up the executions. It copies the most frequently used data from the main memory and stores it. When the CPU needs the particular data item, it can simply access the cache memory which is closely located, instead of accessing the much slower main memory.
Though, primary storage allows faster access, it is highly volatile in nature, that means, it clears up during the booting. To prevent this, a small bootstrap program (BIOS) is implemented. BIOS loads the booting instructions from the non-volatile main memory and executes them to boot RAM. The problem of volatility can be avoided using Read Only Memory (ROM). Though ROM retains the program instructions it does not allow to add or change them.
Secondary storage is commonly referred to as hard disk. It is a non-volatile storage and is capable of storing large amounts of data. The term 'secondary' refers to the inability of the CPU to access it directly. The data in the secondary storage is accessed by the CPU through intermediary devices like the processor cache. The computer uses its secondary storage via the various input/ output channels. As secondary storage is non-volatile, it is used for safe or offline storage of data. The data in secondary memory is organized into files, directories and drives. The drives are periodically formatted to provide the abstraction as required by the FileSystem.
The commonly used secondary storage devices include flash drives, USB sticks, punch cards, floppy disks, CDs, magnetic tapes, paper tapes Iomega Zip drives etc. Though, secondary storage provides very slow access, it is much cheaper than the primary storage and is capable of storing much larger volumes of data.
Modern computer operating systems implement virtual memory to efficiently use the available space on the primary memory. As for secondary memory, it is still an important medium of storing data and recovering it in times of crisis.