In computing and telecommunications, a unit of information is the capacity of some standard data storage system or communication channel, used to measure the capacities of other systems and channels. In information theory, units of information are also used to measure the entropy of random variables and information contained in messages.
The most commonly used units of data storage capacity are the bit, the capacity of a system that has only two states, and the byte (or octet), which is equivalent to eight bits. Multiples of these units can be formed from these with the SI prefixes (power-of-ten prefixes) or the newer IEC binary prefixes (power-of-two prefixes).
The most commonly used units of data storage capacity are the bit, the capacity of a system that has only two states, and the byte (or octet), which is equivalent to eight bits. Multiples of these units can be formed from these with the SI prefixes (power-of-ten prefixes) or the newer IEC binary prefixes (power-of-two prefixes).
Primary units
In 1928, Ralph Hartley observed a fundamental storage principle, which was further formalized by Claude Shannon in 1945: the information that can be stored in a system is proportional to the logarithm of N possible states of that system, denoted logb N. Changing the base of the logarithm from b to a different number c has the effect of multiplying the value of the logarithm by a fixed constant, namely logc N = (logc b) logb N.
Therefore, the choice of the base b determines the unit used to measure information. In particular, if b is a positive integer, then the unit is the amount of information that can be stored in a system with N possible states.
When b is 2, the unit is the shannon, equal to the information content of one "bit" (a portmanteau of binary digit). A system with 8 possible states, for example, can store up to log28 = 3 bits of information. Other units that have been named include:
- Base b = 3: the unit is called "trit", and is equal to log2 3 (≈ 1.585) bits.
Units of information |
- Base b = 10: the unit is called decimal digit, hartley, ban, decit, or dit, and is equal to log2 10 (≈ 3.322) bits.
- Base b = e, the base of natural logarithms: the unit is called a nat, nit, or nepit (from Neperian), and is worth log2 e (≈ 1.443) bits.
The trit, ban, and nat are rarely used to measure storage capacity;
but the nat, in particular, is often used in information theory, because
natural logarithms are mathematically more convenient than logarithms
in other bases.
Units derived from bit
Several conventional names are used for collections or groups of bits.
Byte
Historically, a byte was the number of bits used to encode a character
of text in the computer, which depended on computer hardware
architecture; but today it almost always means eight bits – that is, an octet. A byte can represent 256 (28) distinct values, such as non-negative integers from 0 to 255, or signed integers from −128 to 127. The IEEE 1541-2002 standard specifies "B" (upper case) as the symbol for byte (IEC 80000-13
uses "o" for octet in French, but also allows "B" in English, which is
what is actually being used). Bytes, or multiples thereof, are almost
always used to specify the sizes of computer files and the capacity of
storage units. Most modern computers and peripheral devices are
designed to manipulate data in whole bytes or groups of bytes, rather
than individual bits.
Nibble
A group of four bits, or half a byte, is sometimes called a nibble or nybble. This unit is most often used in the context of hexadecimal number representations, since a nibble has the same amount of information as one hexadecimal digit.
Crumb
A pair of two bits or a quarter byte was called a crumb, often used in early 8-bit computing. It is now largely defunct.
Word, block, and page
Computers usually manipulate bits in groups of a fixed size, conventionally called words. The number of bits in a word is usually defined by the size of the registers in the computer's CPU, or by the number of data bits that are fetched from its main memory in a single operation. In the IA-32 architecture more commonly known as x86-32, a word is 16 bits, but other past and current architectures use words with 4, 8, 9, 12, 13, 16, 18, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 42, 44, 48, 50, 52, 54, 56, 60, 64, 72, 80 bits or others.
Some machine instructions and computer number formats use two words (a "double word" or "dword"), or four words (a "quad word" or "quad").
Computer memory caches usually operate on blocks of memory that consist of several consecutive words. These units are customarily called cache blocks, or, in CPU caches, cache lines.
Virtual memory systems partition the computer's main storage into even larger units, traditionally called pages.
Systematic multiples
Terms for large quantities of bits can be formed using the standard range of SI prefixes for powers of 10, e.g., kilo = 103 = 1000 (as in kilobit or kbit), mega- = 106 = 1000000 (as in megabit or Mbit) and giga = 109 = 1000000000 (as in gigabit or Gbit). These prefixes are more often used for multiples of bytes, as in kilobyte (1 kB = 8000 bit), megabyte (1 MB = 8000000bit), and gigabyte (1 GB = 8000000000bit).
However, for technical reasons, the capacities of computer
memories and some storage units are often multiples of some large power
of two, such as 228 = 268435456
bytes. To avoid such unwieldy numbers, people have often repurposed
the SI prefixes to mean the nearest power of two, e.g., using the prefix
kilo for 210 = 1024, mega for 220 = 1048576, and giga for 230 = 1073741824, and so on. For example, a random access memory chip with a capacity of 228 bytes would be referred to as a 256-megabyte chip. The table below illustrates these differences.
Multiples of bits
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Symbol | Prefix | SI Meaning | Binary meaning | Size difference |
---|---|---|---|---|
k | kilo | 103 = 10001 | 210 = 10241 | 2.40% |
M | mega | 106 = 10002 | 220 = 10242 | 4.86% |
G | giga | 109 = 10003 | 230 = 10243 | 7.37% |
T | tera | 1012 = 10004 | 240 = 10244 | 9.95% |
P | peta | 1015 = 10005 | 250 = 10245 | 12.59% |
E | exa | 1018 = 10006 | 260 = 10246 | 15.29% |
Z | zetta | 1021 = 10007 | 270 = 10247 | 18.06% |
Y | yotta | 1024 = 10008 | 280 = 10248 | 20.89% |
In the past, uppercase K has been used instead of lowercase k to indicate 1024 instead of 1000. However, this usage was never consistently applied.
On the other hand, for external storage systems (such as optical discs),
the SI prefixes were commonly used with their decimal values (powers of
10). There have been many attempts to resolve the confusion by
providing alternative notations for power-of-two multiples. In 1998 the
International Electrotechnical Commission (IEC) issued a standard for this purpose, namely a series of binary prefixes that use 1024 instead of 1000 as the main radix:
Multiples of bytes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Orders of magnitude of data |
Symbol | Prefix |
| ||
---|---|---|---|---|
Ki | kibi, binary kilo | 1 kibibyte (KiB) | 210 bytes | 1024 B |
Mi | mebi, binary mega | 1 mebibyte (MiB) | 220 bytes | 1024 KiB |
Gi | gibi, binary giga | 1 gibibyte (GiB) | 230 bytes | 1024 MiB |
Ti | tebi, binary tera | 1 tebibyte (TiB) | 240 bytes | 1024 GiB |
Pi | pebi, binary peta | 1 pebibyte (PiB) | 250 bytes | 1024 TiB |
Ei | exbi, binary exa | 1 exbibyte (EiB) | 260 bytes | 1024 PiB |
The JEDEC memory standards however define uppercase K, M, and G for the binary powers 210, 220 and 230 to reflect common usage.
Size examples
- 1 bit – answer to a yes/no question.
- 1 byte – a number from 0 to 255.
- 90 bytes: enough to store a typical line of text from a book.
- 512 bytes = ½ KiB: the typical sector of a hard disk.
- 1024 bytes = 1 KiB: the classical block size in UNIX filesystems.
- 2048 bytes = 2 KiB: a CD-ROM sector.
- 4096 bytes = 4 KiB: a memory page in x86 (since Intel 80386).
- 4 kB: about one page of text from a novel.
- 120 kB: the text of a typical pocket book.
- 1 MiB – a 1024×1024 pixel bitmap image with 256 colors (8 bpp color depth).
- 3 MB – a three-minute song (133 kbit/s).
- 650–900 MB – a CD-ROM.
- 1 GB – 114 minutes of uncompressed CD-quality audio at 1.4 Mbit/s.
- 8/16 GB – two common sizes of USB flash drives.
- 4 TB – the size of a $100 hard disk (as of early 2018).
- 12 TB Largest hard disk drive (as of early 2018)
- 16 TB Largest commercially available solid state drive (as of early 2018)
- 100 TB Largest solid state drive constructed (as of early 2018)
- 1.3 ZB – prediction of the volume of the whole internet in 2016.
Obsolete and unusual units
Several other units of information storage have been named:
- 1 bit: unibit, sniff.
- 2 bits: dibit, crumb, quad, quarter, taste, tayste, tidbit, tydbit, lick, lyck, semi-nibble.
- 3 bits: tribit, triad, triade, tribble.
- 5 bits: pentad, pentade, nickel, nyckle.
- 6 bits: byte (in early IBM machines using BCD alphamerics), hexad, hexade, sextet.
- 7 bits: heptad, heptade.
- 8 bits: octet, now usually called byte
- 10 bits: declet, decle, deckle, dyme.
- 12 bits: slab.
- 15 bits: parcel (on CDC 6600 and CDC 7600).
- 16 bits: doublet, wyde, parcel (on Cray-1), plate, playte, chomp, chawmp (on a 32-bit machine).
- 18 bits: chomp, chawmp (on a 36-bit machine).
- 32 bits: quadlet, tetra, dinner, dynner, gawble (on a 32-bit machine).
- 48 bits: gobble, gawble (under circumstances that remain obscure).
- 64 bits: octlet, octa.
- 96 bits: bentobox (in ITRON OS)
- 128 bits: hexlet.
- 16 bytes: paragraph (on Intel x86 processors).
- 6 trits: tryte.
- combit, comword.
Some of these names are jargon, obsolete, or used only in very restricted contexts.