Computer data storage

main memorystoragememorydata storagecomputer storagesecondary storagephysical memorydisk spaceinternal memoryprimary storage
Computer data storage, often called storage or memory, is a technology consisting of computer components and recording media that are used to retain digital data.wikipedia
1,143 Related Articles

Memory hierarchy

Hierarchymemory hierarchiesstorage hierarchy
In practice, almost all computers use a storage hierarchy, which puts fast but expensive and small storage options close to the CPU and slower but larger and cheaper options farther away. Processor cache is an intermediate stage between ultra-fast registers and much slower main memory. It was introduced solely to improve the performance of computers. Most actively used information in the main memory is just duplicated in the cache memory, which is faster, but of much lesser capacity. On the other hand, main memory is much slower, but has a much greater storage capacity than processor registers. Multi-level hierarchical cache setup is also commonly used—primary cache being smallest, fastest and located inside the processor; secondary cache being somewhat larger and slower.
In computer architecture, the memory hierarchy separates computer storage into a hierarchy based on response time.

Instruction set architecture

instruction setinstructionsinstruction
Von Neumann machines differ in having a memory in which they store their operating instructions and data.
What an ISA defines differs between ISAs; in general, ISAs define the supported data types, what state there is (such as the main memory and registers) and their semantics (such as the memory consistency and addressing modes), the instruction set (the set of machine instructions that comprises a computer's machine language), and the input/output model.

Character encoding

character setComputer encodingsencoding
Many standards exist for encoding (e.g., character encodings like ASCII, image encodings like JPEG, video encodings like MPEG-4).
Depending on the abstraction level and context, corresponding code points and the resulting code space may be regarded as bit patterns, octets, natural numbers, electrical pulses, etc. A character encoding is used in computation, data storage, and transmission of textual data.

Random-access memory

RAMmemoryrandom access memory
In contemporary usage, "memory" is usually semiconductor storage read-write random-access memory, typically DRAM (dynamic RAM) or other forms of fast but temporary storage.
Random-access memory (RAM ) is a form of computer data storage that stores data and machine code currently being used.

Central processing unit

CPUprocessorprocessors
The central processing unit (CPU) of a computer is what manipulates data by performing computations. "Storage" consists of storage devices and their media not directly accessible by the CPU (secondary or tertiary storage), typically hard disk drives, optical disc drives, and other devices slower than RAM but non-volatile (retaining contents when powered down).
Traditionally, the term "CPU" refers to a processor, more specifically to its processing unit and control unit (CU), distinguishing these core elements of a computer from external components such as main memory and I/O circuitry.

Data (computing)

datacomputer datadata representation
Computer data storage, often called storage or memory, is a technology consisting of computer components and recording media that are used to retain digital data.
The elements of storage manipulated by the program, but not actually executed by the CPU, are also data.

Data storage

data storage devicestoragestorage media
Computer data storage, often called storage or memory, is a technology consisting of computer components and recording media that are used to retain digital data.
Computer data storage is one of the core functions of a general purpose computer.

Bus (computing)

buscomputer busdata bus
It is actually two buses (not on the diagram): an address bus and a data bus.
Computer systems generally consist of three main parts: the central processing unit (CPU) that processes data, memory that holds the programs and data to be processed, and I/O (input/output) devices as peripherals that communicate with the outside world.

Non-volatile memory

non-volatilenon-volatile storagenon-volatile memories
"Storage" consists of storage devices and their media not directly accessible by the CPU (secondary or tertiary storage), typically hard disk drives, optical disc drives, and other devices slower than RAM but non-volatile (retaining contents when powered down). Hence, non-volatile primary storage containing a small startup program (BIOS) is used to bootstrap the computer, that is, to read a larger program from non-volatile secondary storage to RAM and start to execute it. A non-volatile technology used for this purpose is called ROM, for read-only memory (the terminology may be somewhat confusing as most ROM types are also capable of random access).
Examples of non-volatile memory include read-only memory, flash memory, ferroelectric RAM, most types of magnetic computer storage devices (e.g. hard disk drives, solid state drives, floppy disks, and magnetic tape), optical discs, and early computer storage methods such as paper tape and punched cards.

Processor register

registersregistergeneral purpose register
Processor registers are located inside the processor. Each register typically holds a word of data (often 32 or 64 bits). CPU instructions instruct the arithmetic logic unit to perform various calculations or other operations on this data (or with the help of it). Registers are the fastest of all forms of computer data storage.
Registers usually consist of a small amount of fast storage, although some registers have specific hardware functions, and may be read-only or write-only.

Virtual memory

virtual storagememoryswap
Additionally, a memory management unit (MMU) is a small device between CPU and RAM recalculating the actual memory address, for example to provide an abstraction of virtual memory or other tasks.
Main storage, as seen by a process or task, appears as a contiguous address space or collection of contiguous segments.

Computer

computerscomputer systemdigital computer
Computer data storage, often called storage or memory, is a technology consisting of computer components and recording media that are used to retain digital data.
A general purpose computer has four main components: the arithmetic logic unit (ALU), the control unit, the memory, and the input and output devices (collectively termed I/O).

Drum memory

magnetic drumdrummagnetic drums
Historically, early computers used delay lines, Williams tubes, or rotating magnetic drums as primary storage.
Some drum memories were also used as secondary storage.

CPU cache

cachecache memorycaches
Processor cache is an intermediate stage between ultra-fast registers and much slower main memory. It was introduced solely to improve the performance of computers. Most actively used information in the main memory is just duplicated in the cache memory, which is faster, but of much lesser capacity. On the other hand, main memory is much slower, but has a much greater storage capacity than processor registers. Multi-level hierarchical cache setup is also commonly used—primary cache being smallest, fastest and located inside the processor; secondary cache being somewhat larger and slower.
A CPU cache is a hardware cache used by the central processing unit (CPU) of a computer to reduce the average cost (time or energy) to access data from the main memory.

Memory address

addressaddressesmemory location
The CPU firstly sends a number through an address bus, a number called memory address, that indicates the desired location of data.
A digital computer's main memory consists of many memory locations. Each memory location has a physical address which is a code.

Flash memory

flashNANDflash storage
Some other examples of secondary storage technologies are flash memory (e.g. USB flash drives or keys), floppy disks, magnetic tape, paper tape, punched cards, standalone RAM disks, and Iomega Zip drives.
Flash memory is an electronic (solid-state) non-volatile computer storage medium that can be electrically erased and reprogrammed.

Character (computing)

charactercharacterstext
Data are encoded by assigning a bit pattern to each character, digit, or multimedia object.
Computers and communication equipment represent characters using a character encoding that assigns each character to something — an integer quantity represented by a sequence of digits, typically — that can be stored or transmitted through a network.

File system

filesystemfile systemsfilesystems
The secondary storage is often formatted according to a file system format, which provides the abstraction necessary to organize data into files and directories, providing also additional information (called metadata) describing the owner of a certain file, the access time, the access permissions, and other information.
In computing, a file system or filesystem controls how data is stored and retrieved.

Data buffer

bufferbuffersbuffering
The computer usually uses its input/output channels to access secondary storage and transfers the desired data using intermediate area in primary storage.
In all cases, the data stored in a data buffer are stored on a physical storage medium.

RAM drive

ramdiskvirtual driveRAM disk
Some other examples of secondary storage technologies are flash memory (e.g. USB flash drives or keys), floppy disks, magnetic tape, paper tape, punched cards, standalone RAM disks, and Iomega Zip drives.
A RAM drive (also called a RAM disk) is a block of random-access memory (primary storage or volatile memory) that a computer's software is treating as if the memory were a disk drive (secondary storage).

Computer file

filefilescomputer files
The secondary storage is often formatted according to a file system format, which provides the abstraction necessary to organize data into files and directories, providing also additional information (called metadata) describing the owner of a certain file, the access time, the access permissions, and other information.
A computer file is a computer resource for recording data discretely in a computer storage device.

Bootstrapping

bootstrapbootstrappedNetwork Bootstrap Program
Hence, non-volatile primary storage containing a small startup program (BIOS) is used to bootstrap the computer, that is, to read a larger program from non-volatile secondary storage to RAM and start to execute it. A non-volatile technology used for this purpose is called ROM, for read-only memory (the terminology may be somewhat confusing as most ROM types are also capable of random access).
Booting is a chain of events that starts with execution of hardware-based procedures and may then hand-off to firmware and software which is loaded into main memory.

Read-only memory

ROMROMsread-only
Hence, non-volatile primary storage containing a small startup program (BIOS) is used to bootstrap the computer, that is, to read a larger program from non-volatile secondary storage to RAM and start to execute it. A non-volatile technology used for this purpose is called ROM, for read-only memory (the terminology may be somewhat confusing as most ROM types are also capable of random access).
Its designers explicitly broke from past practice, stating plainly that "the aim of NAND Flash is to replace hard disks," rather than the traditional use of ROM as a form of non-volatile primary storage.

Paging

swap spaceswap fileswap
As the primary memory fills up, the system moves the least-used chunks (pages) to secondary storage devices (to a swap file or page file), retrieving them later when they are needed.
In computer operating systems, paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory.

Page (computer memory)

pagepagesmemory page
As the primary memory fills up, the system moves the least-used chunks (pages) to secondary storage devices (to a swap file or page file), retrieving them later when they are needed.
Similarly, a page frame is the smallest fixed-length contiguous block of physical memory into which memory pages are mapped by the operating system.