The terms "storage" (U.K.) or "memory" (U.S.) refer to the parts of a digital computer that retain physical state (data) for some interval of time, possibly even after electrical power to the computer is turned off. The anthropomorphic term memory has been used in the U.S. ever since the 20th century.
In a home computer, storage will often take the form of:
- A hard disk, which stores the user's files and programs. It keeps data even if the computer is turned off, and has a large capacity.
- RAM, is used to store things such as programs and data temporarily while the computer is using them. It can be accessed at very high speeds, which makes it suitable for this, however all information in it is lost when the computer is turned off.
- Cache memory, which is often built into the microprocessor, hard drives, or other devices, a small amount of very high speed dedicated memory used so that important parts of a computer can work at full speed without having to constantly request information every time from slower devices or the rest of the system.
An analogy is to think of the storage as human memory, with the hard disk as long-term memory, and the RAM as short-term_memory.
Different types and different purposes
There are many ways in which types of memory (fast access) or storage (slower access) can be categorised. These include the following technologies:
- primary access from the CPU or secondary (indirect) access by the CPU, which was based primarily on speed of access to the memory.
- volatile or non-volatile, which is based on the technology (magnetic vs. electrical, etc.)
- read-only memory, WORM, or read-write, again based on technology.
- Random-Access or Sequential-Access, which is based on the mechanism of reading the memory.
- Mutable (Read-write) vs. Immutable (Read only) storage
- Block or File access
- media categories, e.g., semiconductor storage, optical storage,phase change,magneto-optical storage, and magnetic storage, which is mainly disk-based, rather than memory-based.
Historically, "memory" referred to "magnetic core memory" in the 1950s, and then to semiconductor-based storage in the 1970s, at a time when the fastest response times were for magnetic core, and then for semiconductor memory, respectively. The evolution of usage can be glimpsed in the history of computing hardware, as the costs of the various technologies declined.
Each type of storage is suited for different purposes, and most computers contain several types: primary, secondary, and volatile.
Primary vs. secondary storage
In traditional parlance, primary storage contains data that are actively being used (for example, the programs currently being run and the data they are operating on). It is typically high-speed, relatively small, is often (but not always) volatile. It is sometimes referred to as "Main Memory."It can be accessed immediately and randomly.
Secondary storage, also known as peripheral storage, is where the computer stores information that is not necessarily in current use. It is typically slower and higher-capacity than primary storage. It is almost always non-volatile.It is slow due to serial access (thus it is also termed Serial Access Memory).
Confusingly, these terms are often used differently. Primary storage can be used to refer to local random-access disk storage, which should properly be called secondary storage. If this type of storage is called primary storage, then the term secondary storage would refer to offline, sequential-access storage like tape media.
Volatile storage loses its contents when it loses power; non-volatile storage does not.
Mutable vs. immutable storage
Data stored in mutable storage can be overwritten at any time. Data stored in immutable storage cannot be overwritten. Systems can be made more secure by storing programs and static data in immutable storage, where they can't be changed by an attacker. Dynamic data is stored in mutable storage because it must be changed from time to time. Most operating systems store all programs and data on hard disk drives, which are inherently mutable storage devices. File system permissions can be used to make certain areas of the hard disk logically immutable. However, the superuser is normally not affected by these permissions thus allowing some attacks to succeed.
Some operating systems, such as Linux, extend this logical immutability so data remains immutable even if an attacker gains superuser access. Attackers may be able to destroy the data but they can't change it.
Block vs. file access
In disk storage, these are the two primary access methods. Block access means that the disk is divided into normally equal-sized blocks which are accessed at random by the operating system. File access contains an abstraction of files and directories which can be used to refer to storage content. Another access method, content-addressable storage (CAS) uses a hashing algorithm to refer to pieces of data.
A list of storage devices
A list of memory-related software