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.
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 vs. Immutable 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.
Random vs. Sequential Access
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
- Semiconductor Memory:
- Cache memory
- Core memory aka Ferrite core memory
- Core rope memory
- Delay line memory
- Magnetic Disk:
- Magneto Optical
- Optical Media:
- Magnetic tape
- Holographic memory
- Bubble memory
- Magnetic drum
- Memory stick
- MylarŪ tape
- Paper tape
- Punch card
- Selectron tube
- Thin film memory
- Williams tube
- Zip drive
A list of memory-related software
- Memory allocation
- Memory protection
- Memory management, memory leak, memory debugger
- Write protection
- Virtual memory
- Physical memory
- Linear memory
- Computer file
- List of file formats
- Wait state
- Disk Storage