Definitions

unformatted

Binary prefix

In computing, binary prefixes are names or associated symbols that can precede a unit of measure (such as a byte) to indicate multiplication by a power of two. In certain contexts in computing (such as computer memory sizes), it is convenient to express large quantities in terms of multiples of the unit by powers of two.

As the binary multipliers 1,024 (210), 1,048,576 (220) (etc.) are close to certain SI prefixes such as kilo- (1000 = 103) and mega- (1,000,000 = 106) respectively, it has been common practice in some settings to use these prefixes for the binary meanings, that is, to use "mega" (or the symbol, M) to mean 1,048,576 instead of 1,000,000 and so on. However, these prefixes have the decimal meanings in every other context, e.g., when used with SI units. Further, certain areas of computing have always used these prefixes to mean decimal multipliers, and not in the binary sense (e.g. when specifying quantities of individual bits on a serial transmission medium.) This has led to ambiguity on what these prefixes mean.

In 1999, the standards organization known as the International Electrotechnical Commission (IEC) adopted a set of new binary prefixes; e.g., kibi- (symbol Ki, from "kilobinary") and mebi- (symbol Mi, from "megabinary"), to indicate binary multipliers. Each successive prefix is 1024 (210) times the previous one, rather than the 1000 (103) used by the SI prefix system. Under this recommendation, the SI prefixes should only be used in the decimal sense: kilobyte and megabyte denote one thousand bytes and one million bytes respectively, while kibibyte and mebibyte denote 1024 bytes and 1,048,576 bytes respectively. This recommendation has been adopted by some other leading national and international standards, which now state that the prefixes k, M and G should always refer to powers of ten, even in the context of information technology. Notwithstanding the availability of the new binary prefixes and their unambiguous meaning, they have seen limited adoption in the real world; the use of K (or k), M and G as binary multipliers when denoting the capacity of solid‑state memory like random access memory (RAM) remains a ubiquitous industry practice.

History

Early computers used one of two addressing methods to access the system memory; binary (base-2) or decimal (base-10). For instance, the IBM 701 (1952) used binary and could address 2,048 36-bit words, while the IBM 702 (1953) used decimal and could address 10,000 7-bit words.

By the mid 1960s, binary addressing had become the standard architecture in computer design. The computer system documentation would specify the memory size with an exact number such as 32,768, 65,536 or 131,072 words of storage (all powers of 2). There were several methods used to abbreviate these quantities. The use of K in the binary sense as in a "32K core" can be found as early as 1959 Gene Amdahl's seminal 1964 article on IBM System/360 used 1K to mean 1024. This style was used by other computer vendors, the CDC 7600 System Description (1968) made extensive use of K as 1024. Another style was to truncate the last 3 digits and append K. The exact values 32,768, 65,536 and 131,072 would then become 32K, 65K and 131K. (If 32,768 were instead rounded off, it would be 33K; if K = 1024 were used, 65,536 would become "64K".) This style was used from about 1965 to 1975.

These two styles (K = 1024 and truncation) were used loosely around the same time, sometimes by the same company. (In discussions of binary-addressed memories, the exact size was evident from context.) The HP 21MX real-time computer (1974) denoted 196,608 as 196K and 1,048,576 as 1 M, while the HP 3000 business computer (1973) could have 64K, 96K, or 128K bytes of memory.

The terms Kbit, Kbyte, Mbit and Mbyte started to be used as binary units in the early 1970s. Most memory capacities were expressed in K, even when M could have been used: The IBM System/370 Model 158 brochure (1972) had the following: "Real storage capacity is available in 512K increments ranging from 512K to 2,048K bytes." Megabyte was used to describe the 22-bit addressing of DEC PDP-11/70 (1975) and gigabyte the 30-bit addressing DEC VAX11/780 (1977).

By the mid 1970s it was common to see K (e.g Kbyte) meaning 1,024 and the occasional M (e.g. Mbyte) as 1,048,576 for words or bytes of computer memory (RAM) while K and M were commonly used with their decimal meaning for disk storage. In the 1980s the term G (e.g. GB) with decimal meaning was commonly applied to disk storage while M in its binary meaning became common for computer memory. In the 1990s G in its binary meaning became common usage for computer memory. The first TB hard disk drive (terabyte, decimal meaning) was introduced in 2007.

The dual use of these prefixes as both decimal and binary quantities was defined in standards and dictionaries. The 1986 ANSI/IEEE Std 1084-1986 defined dual uses for kilo and mega. The binary units Kbyte and Mbyte were formally defined in ANSI/IEEE Std 1212-1991. The terms Kbyte, Mbyte, and Gbyte are found in the trade press and in IEEE journals. "Gigabyte" was formally defined in IEEE Std 610.10-1994 as either 1,000,000,000 or 230 bytes. Kilobyte, Kbyte, and KB are equivalent units and all are defined in the current standard, IEEE 100-2000.

The industry has coped with the dual definitions because system memory (RAM) typically uses the binary meaning while disk storage uses the decimal meaning. There are exceptions like diskettes and CDs. There are no SI units for computer storage capacity but the decimal prefix meanings of KB, MB, and GB are often referred to as SI prefixes.

While computer scientists typically used k to mean 1000, they recognized the convenience that would result from working with powers of 1024 and the confusion that resulted from using the same abbreviation for two definitions. Several proposals for unique symbols were made in 1968. (At the time, memory size was small, and only K was in widespread use.) Donald Morrison proposed to use the Greek letter κ to denote 1024, κ² to denote 1024×1024, and so on. Wallace Givens responded with a proposal to use bK as an abbreviation for 1024 and bK2 or bK² for 1024×1024, though he noted that neither the Greek letter nor lowercase letter b would be easy to reproduce on computer printers of the day. Bruce A. Martin further proposed that the units be abandoned altogether, and the letter B be used as a binary exponent, similar to E notation, to create shorthands like 3B20 for 3×220 None of these gained much acceptance, and capitalization of the letter K became the de facto standard for binary notation, though this could not be extended to higher powers. Later, as the discrepancy between the two systems increased, more proposals for unique units were made. In 1996, Markus Kuhn proposed a system of units with di- prefixes, like the "dikilobyte" (K₂B or K2B). Donald Knuth, who used decimal notation like 1 MB = 1000 kB, proposed that the powers of 1024 be designated as "large kilobytes" and "large megabytes" (abbreviated KKB and MMB).

Consumer confusion

In the early days of computers there was little or no consumer confusion because of the sophisticated nature of the consumers and the practice of the computer manufacturers to specify (as opposed to advertise) their products with decimal digits of sufficient places, e.g., the 1968 IBM stated System 360 "Model 91s can accommodate up to 6,291,496 bytes of main storage.

Hard disk drive manufacturers used MB, i.e. 106 bytes, to characterize their products as early as 1974. By 1977, in its first edition, Disk/Trend, a leading hard disk drive industry marketing consultancy segmented the industry according to MBs (decimal sense) of capacity.

The presentation of hard disk drive capacity by an operating system using MB in a binary sense appears no earlier than Macintosh Finder after 1984. Prior to that, on the systems that had a hard disk drive, capacity was presented in decimal digits with no prefix of any sort (e.g., MS/PC DOS CHKDSK command).

See, for example, the following three images; consumers may be confused by the difference between the 160 GB on the disk drive package and the 149.05 GB reported by the operating system.

Prefixes

IEC binary use
Name Symbol Base 2 Base 16 Base 10 Name Symbol
kibi Ki 210 162.5 400(16) ~103.01 1,024 kilo k/K
mebi Mi 220 165 10 0000(16) ~106.02 1,048,576 mega M
gibi Gi 230 167.5 4000 0000(16) ~109.03 1,073,741,824 giga G
tebi Ti 240 1610 100 0000 0000(16) ~1012.04 1,099,511,627,776 tera T
pebi Pi 250 1612.5 4 0000 0000 0000(16) ~1015.05 1,125,899,906,842,624 peta P
exbi Ei 260 1615 1000 0000 0000 0000(16) ~1018.06 1,152,921,504,606,846,976 exa E
zebi Zi 270 1617.5 40 0000 0000 0000 0000(16) ~1021.07 1,180,591,620,717,411,303,424 zetta Z
yobi Yi 280 1620 1 0000 0000 0000 0000 0000(16) ~1024.08 1,208,925,819,614,629,174,706,176 yotta Y

Traditional prefixes in binary sense

Quantities that are multiples of the unit by a power of 2 are indicated using nearby SI prefixes, such as using kilo- (the SI prefix for 1000) to indicate 210=1024. Byte multiples using binary powers up to yottabyte are given by the on-line computing dictionary FOLDOC.

The one-letter symbols are identical to SI prefixes, except for "K", which is used interchangeably with "k" (in SI, only the lower-case "k" represents 1,000).

These prefixes are in common use in contexts such as file and memory sizes. The names and values of the SI prefixes were defined in the 1960 SI standard, with powers-of-1000 values. Standard dictionaries do recognize the binary meanings for these prefixes. Oxford online dictionary defines, for example, megabyte as: "Computing a unit of information equal to one million or (strictly) 1,048,576 bytes."

IEC standard prefixes

In January 1999, the International Electrotechnical Commission introduced in an addendum to IEC 60027-2 the prefixes kibi- (kibibyte), mebi-, gibi-, etc., and the symbols Ki, Mi, Gi, etc. to specify binary multiples of a quantity and eliminate the ambiguity with their SI meanings. The names for the new standard are derived from the original SI prefixes followed by "binary", such as "kilobinary", and can be shortened to a prefix like "kibi-". The new standard also clarifies that, from the point of view of the IEC, the SI prefixes will remain to have their base-10 meaning and never have a base-2 meaning.

The second edition of the standard defined them only up to exbi-, but in 2005, the third edition added prefixes zebi- and yobi-, thus matching all SI prefixes with their binary counterparts.

On March 19, 2005 the IEEE standard IEEE 1541-2002 (Prefixes for Binary Multiples) was elevated to a full-use standard by the IEEE Standards Association after a two-year trial period. Nevertheless, , the IEEE Publications division does not use the IEC prefixes in its major magazines such as Spectrum or Computer.

The harmonized ISO/IEC IEC 80000-13:2008 standard cancels and replaces subclauses 3.8 and 3.9 of IEC 60027-2:2005 (those defining Prefixes for binary multiples). The only significant change is the addition of explicit definitions for some quantities.

BIPM (the International Bureau of Weights and Measures which maintains SI) expressly prohibits the binary prefix usage, and recommends the use of the IEC prefixes as an alternative since computing units are not included in SI.. The binary definition of the prefixes k, M, G etc is not permitted by the United States National Institute of Standards and Technology (NIST).

Approximate ratios between binary and decimal uses

As the order of magnitude increases, the percentage difference between the binary and decimal uses of the prefixes increases, from 2.4% (with the kilo prefix) to over 20% (with the yotta prefix). This makes differentiating between the two increasingly important as larger and larger data storage and transmission technologies are developed.

Name Bin ÷ Dec Dec ÷ Bin Percentage difference
kilobyte 1.024 0.976 +2.4% or −2.3%
megabyte 1.049 0.954 +4.9% or −4.6%
gigabyte 1.074 0.931 +7.4% or −6.9%
terabyte 1.100 0.909 +10.0% or −9.1%
petabyte 1.126 0.888 +12.6% or −11.2%
exabyte 1.153 0.867 +15.3% or −13.3%
zettabyte 1.181 0.847 +18.1% or −15.3%
yottabyte 1.209 0.827 +20.9% or −17.3%

Example: 300 GB (300×109 B) ≅ 279.4 GiB (279.4×10243 B)

Usage notes

In this section, the phrase "decimal unit" is used to denote "SI designation understood in its standard, decimal, power-of-1000 sense" and "binary unit" means "SI designation understood in its binary, power-of-1024 sense." The symbol B means byte as per computer-industry standard (IEEE 1541 and IEC 60027).

Certain units are always understood as decimal even in computing contexts. For example, hertz (Hz), which is used to measure clock rates of electronic components, and bit/s, used to measure bit rate. So a 1 GHz processor performs 1,000,000,000 clock ticks per second, a 128 kbit/s MP3 stream consumes 128,000 bits (16 kB, 15.625 KiB) per second, and a 1 Mbit/s Internet connection can transfer 1,000,000 bits (125 kB, approx 122 KiB) per second, assuming an 8-bit byte, and no overhead.

Pronunciation

It is suggested that in English, the first syllable of the name of the binary-multiple prefix should be pronounced in the same way as the first syllable of the name of the corresponding SI prefix, and that the second syllable should be pronounced as "bee."

Files

Prior to the release of Mac OS (1984), file sizes were typically reported by the operating system in decimal digits without prefixes of any sort. Today, most operating systems are capable of reporting file sizes with prefixes.

Most Unix-like systems which use the ls command to display file sizes use powers of 1024 indicated as KB/MB. Microsoft Windows also reports decimal digits.

Hardware

Computer memory

Measurements of most types of electronic memory such as RAM and ROM and Flash (large scale disk-like flash is sometimes an exception) are given in binary units, as they are made in power-of-two sizes. This is the most natural configuration for memory, as all combinations of their address lines map to a valid address, allowing easy aggregation into a larger contiguous block of memory.

JEDEC Solid State Technology Association, the semiconductor engineering standardization body of the Electronic Industries Alliance (EIA) in Standard 100B.01[6] continues to include definitions in the binary sense K, M and G as prefixes to units of semiconductor memory (see JEDEC memory standards), noting that these definitions are “only included to reflect common usage” and noting that ‘IEEE/ASTM SI 10-1997 states “This practice frequently leads to confusion and is deprecated.”’. All standards published by JEDEC use the common usage, including end-user packaging recommendations for memory chips.

Many computer programming tasks naturally reference memory in terms of powers of two. For example, a 16-bit pointer can reference at most 65,536 items (bytes, words, or other objects), or an operating system might map memory in terms of 4,096-byte pages, in which case exactly 8,192 pages could be allocated within 33,554,432 bytes of hardware memory. It is convenient to informally express these numbers, respectively, as 64K items, or as 8K pages of 4 Kbytes (KiB) each within 32 MBytes (MiB) of memory. A programmer can easily mentally calculate that "8K × 4K is 32 meg" and get it exactly right, within this powers-of-two context. This convenience is likely one source of originally adapting "kilo" and "mega" from SI as shorthand for 1,024 and 1,048,576, as specialized jargon within a segment of the industry.

Almost all computer user tasks (and many high-level programming tasks) have no natural affinity or need for explicit powers of two. The consumer confusion between powers of 1000 and powers of 1024 may derive largely from some operating systems and applications that were originally written by and for programmers, and which thus reported quantities such as file sizes in familiar (to programmers) powers of 1024 while using SI (powers of 1000) abbreviations. Without such reporting, most users might not have been substantially exposed to powers of 1024, as the net memory available to users after various overheads is rarely a power of two. This legacy behavior of operating systems reporting sizes in powers of 1024 has continued to this day (in 2008) even in many GUI oriented operating systems intended mainly for non-programmers.

Hard disk drives

HDD manufacturers mostly state capacity in decimal units. This usage has a long tradition, even predating the SI system of decimal prefixes adopted in 1960, as follows:

  • The first disk drive the IBM 350 (1950s) had 5 million 6 bit characters organized in 100 character sectors (i.e., blocks). This predates the SI system.
  • In the 1960s most disk drives used IBM's variable block length format (called, Count Key Data or "CKD"). Any block size could be specified up to the maximum track length. Blocks ("records" in IBM's terminology) of 88, 96, 880 and 960 were often used because they related to the fixed block size of punch cards. The drive capacity was usually stated in full track record blocking, for example, the 100 megabyte 3336 disk pack only achieved that capacity with a full track block size of 13,030 bytes.
  • CKD continued into the 1990s and perhaps into this day. In the 1970s and 1980s most drives were specified with unformatted tracks (the unformatted capacity) with the particular block size and formatted capacity a function of the controller design. For example, the ST412 of IBM PC/XT fame had an unformatted capacity of 12.75 MB (12.75×106 B) and with the Xebec controller and 512 byte blocks it formatted to and was advertised as a 10.0 MB (10.0×106 B) HDD. Other controllers supported other block sizes resulting in other formatted capacities.
  • The advent of intelligent interfaces (SCSI and IDE) in the early 1990s took the block size decision into the drive and virtually all chose 512 bytes, for no reason other than that was what IBM had chosen when they picked the Xebec controller for the PC/XT. Capacity continued to be specified by the HDD manufacturers with SI prefix definitions.

As of January 2007, most, if not all, HDD manufacturers continue to use decimal prefixes to identify capacity.

Flash drives

USB Flash Drive and Flash-based memory cards like CompactFlash and Secure Digital are typically classified in "powers of two" multiples of decimal megabytes; for example, a "256 MB" card would hold 256 million bytes. Although the devices usually have at least the expected byte capacity, each manufacturer allocates different portions of the device's ultimate capacity for such things as wear levelling.

Floppy drives

Floppy disk drive and media manufacturers use decimal units for unformatted recording capacity while most computer operating systems use binary units to measure the formatted capacity. The original IBM Personal Computer (1981) used a IBM Floppy Drive With DOS.jpg 5¼ inch floppy disk drive. The single sided drive was rated at 250 kilobytes (unformatted) and the double sided version was rated at 500 kilobytes.

A 5¼ inch diskette recorded at double density (MFM) will hold 6,250 bytes per track and has 40 tracks per side, yielding 250,000 bytes per side. To make it practical to record smaller blocks of data, the tracks are formatted into sectors with gaps between them. The gaps allow individual sectors to be recorded without overwriting adjacent sectors. Each sector also has additional header bytes to identify the sector.

With IBM PC-DOS 1.0 and 1.1, each track has 8 sectors of 512 bytes and this provides 163,840 bytes per side (8 × 512 × 40). The IBM user documentation referred to this as "160KB" for single sided diskette and "320KB" for double sided diskette. Starting with PC-DOS 2.0 (1983), each track had 9 sectors of 512 bytes. The formatted capacity was increased to 184,320 bytes per side or 368,640 bytes per diskette. The IBM documentation referred to these as "180KB" and "360KB" diskettes. The same drives and media can have different capacities depending on format.

On all diskettes the capacity available to the user will be smaller that the total number of sectors because some are reserved by the operating system for boot records or directory tables.

The IBM Personal Computer/AT (1984) had a new 5¼ inch disk drive that had 80 tracks per side, rotated at 360 rpm (versus 300 rpm) and had a new diskette media. The formatted capacity was 1,228,800 bytes or 1200 KB. (80 tracks × 15 sectors × 512 bytes × 2 sides)

The IBM PC Convertible (1986) used the 3½ inch diskettes. These were similar in recording technology to the original 5¼ inch drives except they had 80 tracks per side. The formatted capacity was 737,280 bytes or 720 KB. Apple used the same disk with a different recording technology, GCR, that gave a formatted capacity of 819,200 bytes or 800 KB. Apple referred to this as an "800K" disk.

The last widely adopted diskette was the 3½ inch high density. This has twice the capacity as the 720 KB diskettes, 1,474,560 bytes or 1440 KB. The drive was marketed as 1.44 MB when a more accurate value would have been 1.4 MB (1.40625 MB). Some users have noticed the missing 0.04 MB and both Apple and Microsoft have support bulletins referring to them as 1.4 MB. The 1200 KB 5¼ inch diskette was marketed as 1.2 MB (1.171875 MiB) without any controversy.

Optical discs

CD capacities are always given in binary units. A "700 MB" (or "80 minute") CD has a nominal capacity of about 700 MiB (approx 730 MB). However, the capacities of other optical disc storage media like DVD, Blu-ray Disc, HD DVD are given in decimal units. A "4.7 GB" DVD has a nominal capacity of about 4.38 GiB.

Buses

Bus clock speeds and therefore bandwidths are both given in decimal units. For example, "PC3200" memory on a double pumped bus, transferring 8 bytes per cycle running with a clock speed of 200 MHz = 200,000,000 cycles per second has a bandwidth of 200,000,000 × 2 × 8 = 3,200,000,000 B/s = 3.2 GB/s (about 2.98 GiB/s).

Software

As of 2008, most software does not distinguish symbols for binary and decimal units. The IEC binary naming convention, has been adopted by some, but is not used universally.

The binary convention is supported by standardization bodies and technical organizations such as IEEE, CIPM, NIST, and SAE. The new binary prefixes have also been adopted by the European Committee for Electrotechnical Standardization (CENELEC) as the harmonization document HD 60027-2:2003-03. This document will be adopted as a European standard.

Examples of software that use IEC standard prefixes (along with standard SI prefixes) include:

Note that one of the stated goals of the introduction of the binary prefixes was "to preserve the SI prefixes as unambiguous decimal multipliers." Programs such as fdisk/cfdisk, parted, and apt-get use SI prefixes with their decimal meaning.

See also

Specific units of IEC 60027-2 A.2

These units have individual articles:

References

Further reading

External links

Converters

Search another word or see unformattedon Dictionary | Thesaurus |Spanish
Copyright © 2014 Dictionary.com, LLC. All rights reserved.
  • Please Login or Sign Up to use the Recent Searches feature
FAVORITES
RECENT

;