Binary prefix
From Wikipedia, the free encyclopedia
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 traditional 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.[1]
In an attempt to resolve this confusion, standards organisations have proposed a new set of binary prefixes to indicate binary multipliers. Each successive prefix is 1,024 (210) times the previous one, rather than the 1,000 (103) used by the SI prefix system. The binary prefixes are being adopted slowly. National and international standards now state that the SI prefixes always refer to powers of ten, even in the context of information technology.[2][3][1][4] Nevertheless, the use of the SI prefixes as binary multipliers is still common in some areas: the standards body for the semiconductor engineering industry, the JEDEC, defines "prefix to units of semiconductor storage capacity" using powers of two, clarifying in a note that the binary definitions are included "only to reflect common usage".[5]
Contents |
[edit] History
- See also: Binary prefix - Timeline
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.
One of the most successful early computers was the IBM 1401. It was introduced in 1959 and by 1961 one out of every four electronic stored-program computers was an IBM 1401. It used decimal addressing and could have 1400, 2000, 4000, 8000, 12000 or 16000 characters of 8-bit core storage.[6] In the 1950s, computer engineers were familiar with the terms kilo (k) and mega (M). It was common to see 4.7k for a 4700 ohm resistor or 10Mc for a 10 megacycle (megahertz) frequency. It was natural to borrow the term k to express large quantities of storage. A reference to a "4k IBM 1401" meant 4,000 characters of storage (memory).[7]
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 store" can be found as early as 1960.[8] Gene Amdahl's seminal 1964 article on IBM System/360 used 1K to mean 1024.[9] This style was used by other computer vendors, the CDC 7600 System Description (1968) made extensive use of K as 1024.[10] 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.[11] (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,[12] while the HP 3000 business computer (1973) could have 64K, 96K, or 128K bytes of memory.[13]
The terms Kbit, Kbyte, Mbit and Mbyte started to be used as binary units in the early 1970s.[14] 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."[15] Megabyte was used to describe the 22-bit addressing of DEC PDP-11/70 (1975)[16] 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.[17]
The dual use of these prefixes as both decimal and binary quantities was defined in standards and dictionaries. The ANSI/IEEE Std 1084-1986[18] is still available for reference and defined kilo and mega. (The term "computer storage" means system memory.)[9]
kilo (K). (1) A prefix indicating 1000. (2) In statements involving size of computer storage, a prefix indicating 210, or 1024.
mega (M). (1) A prefix indicating one million. (2) In statements involving size of computer storage, a prefix indicating 220, or 1,048,576.
The binary units Kbyte and Mbyte were formally defined in ANSI/IEEE Std 1212-1991.[19] 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.[20] Kilobyte, Kbyte, and KB are equivalent units and all are defined in the current standard, IEEE 100-2000.[21]
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.[22] 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.[22] 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.[23] 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[24] 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. Donald Knuth, who used decimal notation like 1 MB = 1000 kB,[25] proposed that the powers of 1024 be designated as "large kilobytes" and "large megabytes" (abbreviated KKB and MMB).[25] In 1996, Markus Kuhn proposed a system of units with di- prefixes, like the "dikilobyte" (K₂B or K2B).[26]
In January 1999, the International Electrotechnical Commission introduced the prefixes kibi- (kibibyte), mebi-, gibi-, etc., and the symbols Ki, Mi, Gi, etc. to specify binary multiples of a quantity and eliminate this ambiguity.[27] 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 henceforth only have their base-10 meaning and never have a base-2 meaning.
The second edition of the standard[28] defined them only up to exbi-,[29] but in 2005, the third edition added prefixes zebi- and yobi-, thus matching all SI prefixes with their binary counterparts.[30]
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.[31]
[edit] 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."[32]
Hard disk drive manufacturers used MB, i.e. 106 bytes, to characterize their products as early as 1974.[33] 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.[34]
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.
This hard disk can hold 160×109 bytes, and is marketed using standard SI prefixes as "160 GB" |
Windows XP lists the capacity of a 160×109 byte disk drive as "149.05 GB" (binary). |
[edit] Traditional binary prefixes
Quantities that are multiples of the unit by a power of 2 are sometimes indicated using nearby SI prefixes, such as using kilo- (the SI prefix for 1000) to indicate 210=1024. Although this usage is now deprecated by some standards bodies, the prefixes kilo-, mega- and giga- are defined by the JEDEC, with the caveat The definitions of kilo, giga, and mega based on powers of two are included only to reflect common usage. As of 2008 both the binary and decimal definitions are widely used. Prefixes of value higher than 10243 (giga) are not defined by JEDEC. Byte multiples using binary powers up to yottabyte are given by the on-line computing dictionary FOLDOC.[35]
Name | Symbol | Value | Base 16 | Base 10 |
---|---|---|---|---|
kilo | k/K | 210 = 1,024 | = 162.5 | > 103 |
mega | M | 220 = 1,048,576 | = 165 | > 106 |
giga | G | 230 = 1,073,741,824 | = 167.5 | > 109 |
tera | T | 240 = 1,099,511,627,776 | = 1610 | > 1012 |
peta | P | 250 = 1,125,899,906,842,624 | = 1612.5 | > 1015 |
exa | E | 260 = 1,152,921,504,606,846,976 | = 1615 | > 1018 |
zetta | Z | 270 = 1,180,591,620,717,411,303,424 | = 1617.5 | > 1021 |
yotta | Y | 280 = 1,208,925,819,614,629,174,706,176 | = 1620 | > 1024 |
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.[36][37] Oxford online dictionary defines, for example, megabyte as: "Computing a unit of information equal to one million or (strictly) 1,048,576 bytes."[38]
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.[2]
Some have suggested that "k" be used for 1,000, and "K" for 1,024, but this cannot be extended to the higher order prefixes and has never been widely recognised.
Although the SI prefixes denoting fractions of a bit or byte might theoretically find application in areas such as cryptography, data compression, and data transfer rates, they are not used in practice.
Informally, the prefixes are often used on their own. Thus one might hear about a "256K DRAM" (256 binary kilobytes), "a 160 MB HDD" (160 decimal megabytes) or "a 2M Internet connection" (2 decimal megabits per second). What units are being used, and whether the multipliers are decimal or binary, depends on context and cannot be determined by the units alone.
[edit] IEC standard prefixes
In 1999, the IEC introduced the following set of prefixes for binary multipliers.
Name | Symbol | Base 2 | Base 16 | Base 10 | ||
---|---|---|---|---|---|---|
kibi | Ki | 210 | 162.5 | 400(16) | 1,024 | > 103 |
mebi | Mi | 220 | 165 | 10 0000(16) | 1,048,576 | > 106 |
gibi | Gi | 230 | 167.5 | 4 000 0000(16) | 1,073,741,824 | > 109 |
tebi | Ti | 240 | 1610 | 100 0000 0000(16) | 1,099,511,627,776 | > 1012 |
pebi | Pi | 250 | 1612.5 | 4 0000 0000 0000(16) | 1,125,899,906,842,624 | > 1015 |
exbi | Ei | 260 | 1615 | 1000 0000 0000 0000(16) | 1,152,921,504,606,846,976 | > 1018 |
zebi | Zi | 270 | 1617.5 | 40 0000 0000 0000 0000(16) | 1,180,591,620,717,411,303,424 | > 1021 |
yobi | Yi | 280 | 1620 | 1 0000 0000 0000 0000 0000(16) | 1,208,925,819,614,629,174,706,176 | > 1024 |
Example: 300 GB ≅ 279.5 GiB.
[edit] Approximate ratios between binary and decimal prefixes
As the order of magnitude increases, the percentage difference between the binary and decimal values of a prefix 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 | Example | Percentage difference |
---|---|---|---|---|
kilobyte : kibibyte | 1.024 | 0.976 | 100 kB ≅ 97.6 KiB | +2.4% or −2.3% |
megabyte : mebibyte | 1.049 | 0.954 | 100 MB ≅ 95.4 MiB | +4.9% or −4.6% |
gigabyte : gibibyte | 1.074 | 0.931 | 100 GB ≅ 93.1 GiB | +7.4% or −6.9% |
terabyte : tebibyte | 1.100 | 0.909 | 100 TB ≅ 90.9 TiB | +10% or −9.1% |
petabyte : pebibyte | 1.126 | 0.888 | 100 PB ≅ 88.8 PiB | +12.6% or −11.2% |
exabyte : exbibyte | 1.153 | 0.867 | 100 EB ≅ 86.7 EiB | +15.3% or −13.3% |
zettabyte : zebibyte | 1.181 | 0.847 | 100 ZB ≅ 84.7 ZiB | +18.1% or −15.3% |
yottabyte : yobibyte | 1.209 | 0.827 | 100 YB ≅ 82.7 YiB | +20.9% or −17.3% |
[edit] Adoption
As of 2007, the IEC binary naming convention has been adopted by some, but is not used universally. Most[specify] publications, computer manufacturers and software companies are still using the traditional binary units defined in IEEE 100, The Authoritative Dictionary of IEEE Standards Terms, Seventh Edition, 2000.[21][dubious ]
The binary convention is strongly supported by many standardization bodies and technical organizations, such as IEEE, CIPM, NIST, and SAE.[3][2][1][39] 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.[40] This document will be adopted as a European standard.[41]
The prefixes are beginning to be used in technical articles and software where it is important to avoid ambiguity.[42] 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."[3] Programs such as fdisk/cfdisk, parted, and apt-get use SI prefixes with their decimal meaning.
BitTornado uses standard SI prefixes for data rates and IEC prefixes for file sizes |
Deluge (BitTorrent client) uses IEC prefixes for data rates as well as file sizes |
Linux's fdisk uses standard SI prefixes to display a 160×109 byte disk as "160.0 GB" |
[edit] 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.[63]
[edit] 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."[1]
[edit] 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][5] 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.
[edit] Files
Prior to the Apple Mac OS (i.e., 1984) file sizes were typically reported by the operating system in decimal digits without prefixes of any sort (e.g. MS-DOS, Apple DOS, IBM VMS, UNIX, CP/M, etc.). Today most operating systems report file size with powers of 1024 indicated as KB/MB/... (with or without the B); however, some systems also report decimal digits (e.g. Microsoft Windows) and some give provide flags to allow binary or decimal prefixes (e.g. some UNIXes).
Some verified examples in alphabetical order:
- Apple Mac OS X[citation needed]
- GNU/Linux uses 1024 for command line and file manager. The ls command reports a 2021-byte file as 2021 with "ls -l" (to get the exact number of bytes), 2.0K with "ls -lh" (with powers of 1024 by default), or as 2.1k with "ls -lh --si" (with --si to explicitly ask for powers of 1000, note the lower-case k), evidently rounding up all values according to the number of decimals reported. The file manager on the verified versions (GNOME Nautilus) reports this same file as having size "2.0 KB".[64]
- Microsoft Windows 2000 version 5.00.2195 Service Pack 2 and XP version 2002 Service Pack 2 as displayed in Windows Explorer and elsewhere.
- Sun Microsystems Solaris uses 1024 for command line and file manager.[65][66] The ls command reports a 2021-byte file as 2021 with "ls -l" (to get the exact number of bytes), 2.0K with "ls -lh" (with only powers of 1024 available), evidently rounding up all values according to the number of decimals reported. The file manager on the Java Desktop System on the verified versions (GNOME Nautilus) reports this same file as having size "2.0 KB".
[edit] 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").[67] 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.[68]
[edit] 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.[69] 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.
[edit] 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 Tandon TM100 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.[70]
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.[71] 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.[72]
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.[73]
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.[74][73] The 1200 KB 5¼ inch diskette was marketed as 1.2 MB (1.171875 MiB) without any controversy.
[edit] 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).[75] 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.[76]
[edit] 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.
[edit] Command line interpreters
Some command line interpreters have language-level support for binary prefix notation similar to the scientific notation used in many programming languages.
In Windows PowerShell all binary prefixes are case-insensitive and used in the binary, power-of-1024 sense. Example:
PS C:\>0.5kB 512 PS C:\>1GB / 700MB 1.46285714285714 PS C:\>ls .\Users\root\Pictures\Pict*.jpeg | where {$_.length -gt 3.14mb} Directory: Microsoft.PowerShell.Core\FileSystem::C:\Users\root\Pictures Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 19.04.2008 20:11 3920613 Picture1.jpeg -a--- 19.04.2008 20:16 6164149 Picture2.jpeg -a--- 19.04.2008 20:19 4848501 Picture3.jpeg
[edit] Legal disputes
There have been two significant class action lawsuits against digital storage manufactures. One case involved flash memory and the other involved hard disk drives. Both were settled with the manufactures agreeing to clarify the storage capacity of their products on the consumer packaging.
[edit] Willem Vroegh v. Eastman Kodak Company
On February 20, 2004, Willem Vroegh filed a lawsuit against Lexar Media, Dane–Elec Memory, Fuji Photo Film USA, Eastman Kodak Company, Kingston Technology Company, Inc., Memorex Products, Inc.; PNY Technologies Inc., SanDisk Corporation, Verbatim Corporation, and Viking InterWorks alleging that their descriptions of the capacity of their flash memory cards were false and misleading.
Vroegh claimed that a 256 MB Flash Memory Device had only 244 MB of accessible memory. "Plaintiffs allege that Defendants marketed the memory capacity of their products by assuming that one megabyte equals one million bytes and one gigabyte equals one billion bytes." The plaintiffs wanted to use the binary values 220 for megabyte and 230 for gigabyte. The plaintiffs acknowledged that the IEC and IEEE standards define a MB as one million bytes but stated that the industry has largely ignored the IEC standards.[77]
The manufacturers agreed to clarify the flash memory card capacity on the packaging and web sites.[78] The consumers could apply for "a discount of ten percent off a future online purchase from Defendants' Online Stores Flash Memory Device".[79] The law firms Gutride Safier, LLP and Milberg Weiss received $2.4 million.
[edit] Orin Safier v. Western Digital Corporation
On July 7, 2005, an action entitled "Orin Safier v. Western Digital Corporation, et al.," was filed in the Superior Court for the City and County of San Francisco, Case No. CGC-05-442812. The case was subsequently moved to the Northern District of California, Case No. 05-03353 BZ.[80]
Although Western Digital maintained that their usage of units is consistent with "the indisputably correct industry standard for measuring and describing storage capacity", and that they "cannot be expected to reform the software industry", they agreed to settle in March 2006 with June 14, 2006 as the Final Approval hearing date.[81]
Western Digital offered to compensate customers with a free download of backup and recovery software valued at US$30. They also paid $500,000 in fees and expenses to San Francisco lawyers Adam Gutride and Seth Safier, who filed the suit.[82]
Western Digital had this footnote in their settlement. "Apparently, Plaintiff believes that he could sue an egg company for fraud for labeling a carton of 12 eggs a “dozen,” because some bakers would view a “dozen” as including 13 items."[83]
The flash memory and hard disk manufacturers now have disclaimers on their packaging and web sites clarifying the formatted capacity of the flash memory[69] or defining MB as 1 million bytes and 1 GB as 1 billion bytes.[84]
Also, the Class Action Fairness Act of 2005 requires greater scrutiny on coupon settlements. One of the plaintiff law firms in the Vroegh case, Milberg Weiss & Bershad, was indicted for fraud in unrelated class action cases.[85]
[edit] See also
[edit] Specific units of IEC 60027-2 A.2
These units have individual articles:
|
|
|
[edit] References
- ^ a b c d Prefixes for Binary Multiples — The NIST Reference on Constants, Units, and Uncertainty
- ^ a b c (2006) "§3.1 SI prefixes", The International System of Units (SI) (PDF), 8th edition (in French/English), Paris: STEDI Media, p. 127. ISBN 92-822-2213-6. Retrieved on 2007-02-25. “[Side note:] These SI prefixes refer strictly to powers of 10. They should not be used to indicate powers of 2 (for example, one kilobit represents 1000 bits and not 1024 bits). The IEC has adopted prefixes for binary powers in the international standard IEC 60027-2: 2005, third edition, Letter symbols to be used in electrical technology — Part 2: Telecommunications and electronics. The names and symbols for the prefixes corresponding to 210, 220, 230, 240, 250, and 260 are, respectively: kibi, Ki; mebi, Mi; gibi, Gi; tebi, Ti; pebi, Pi; and exbi, Ei. Thus, for example, one kibibyte would be written: 1 KiB = 210 B = 1024 B, where B denotes a byte. Although these prefixes are not part of the SI, they should be used in the field of information technology to avoid the incorrect usage of the SI prefixes.”
- ^ a b c (2003-02-12) IEEE Trial-Use Standard for Prefixes for Binary Multiples (PDF). ISBN 0-7381-3386-8. Retrieved on 2007-02-25. “This standard is prepared with two goals in mind: (1) to preserve the SI prefixes as unambiguous decimal multipliers and (2) to provide alternative prefixes for those cases where binary multipliers are needed. The first goal affects the general public, the wide audience of technical and nontechnical persons who use computers without much concern for their construction or inner working. These persons will normally interpret kilo, mega, etc., in their proper decimal sense. The second goal speaks to specialists—the prefixes for binary multiples make it possible for persons who work in the information sciences to communicate with precision.”
- ^ IEEE Std 260.1-2004, IEEE Standard Letter Symbols for Units of Measurement (SI Units, Customary Inch-Pound Units, and Certain Other Units), Revision of IEEE Std 260.1-1993 (IEEE, New York, 2004)
- ^ a b JEDEC Solid State Technology Association (December 2002), “Terms, Definitions, and Letter Symbols for Microcomputers, Microprocessors, and Memory Integrated Circuits”, JESD 100B.01, <http://www.jedec.org/download/search/JESD100B01.pdf>
- ^ IBM (April 1962). IBM 1401 Data Processing System: Reference Manual, A24-1403-5, pg 9.
- ^ Sonquiest, John A. (December 1962). "Fixed-word-length arrays in variable-word-length computers". Communications of the ACM 5 (12): pg 602. ACM Press. “The following scheme for assigning storage for fixed-word-length arrays seems to meet these criteria and has been used successfully in working with linear arrays on a 4k IBM 1401.”
- ^ Gruenberger, Fred (October 1960). "Letters to the Editor". Communications of the ACM 3 (10). doi: . "The 8K core stores were getting fairly common in this country in 1954. The 32K store started mass production in 1956; it is the standard now for large machines and at least 200 machines of the size (or its equivalent in the character addressable machines) are in existence today (and at least 100 were in existence in mid-1959)." Note: The IBM 1401 was a character addressable computer.
- ^ a b Amdahl, Gene M.; Gerrit Blaauw; Fred Brooks (1964). "Architecture of the IBM System/360". IBM Journal of Research and Development 8 (2). IBM. Figure 1 gives storage (memory) capacity ranges of the various models in "Capacity 8 bit bytes, 1 K = 1024"
- ^ Control Data Corporation (November 1968). Control Data 7600 Computer System: Preliminary System Description. “One type, designated as the small core memory (SCM) is a many bank coincident current type memory with a total of 64K words of 60 bit length (K=1024).”
- ^ Control Data Corporation (1965-1967). Control Data 6400/6500/6600 Computer Systems Reference Manual, Pub No. 60100000, pg 2-1. “Central Memory is organized into 32K, 65K, or 131K words (60-bit) in 8, 16, or 32 banks of 4096 words each.”
- ^ Frankenberg, Robert (October 1974). "All Semiconductor Memory Selected for New Minicomputer Series". Hewlett-Packard Journal 26 (2): pg 15-20. Hewlett-Packard. “196K-word memory size”
- ^ Hewlett-Packard (November 1973), “HP 3000 Configuration Guide”, HP 3000 Computer System and Subsystem Data: pg 59, <http://www.bitsavers.org/pdf/hp/3000/hp3000/5952-4500_optionsBrochure_Nov73.pdf>
- ^ Lin, Yeong; Mattson, Richard (September 1972). "Cost-performance evaluation of memory hierarchies". Magnetics, IEEE Transactions on 8 (3): pg 390-392. IEEE. “Also, random access devices are advantageous over serial access devices for backing store applications only when the memory capacity is less than 1 Mbyte. For capacities of 4 Mbyte and 16 Mbyte serial access stores with shift register lengths of 256 bit and 1024 bit, respectively, look favorable.”
- ^ IBM (1972). "System/370 Model 158 brochure". IBM. “All-monolithic storage ... (1024-bit NMOS) This new improvement of processor storage makes system expansion more economical. Real storage capacity is available in 512K increments ranging from 512K to 2,048K bytes.”
- ^ Bell, Gordon; Strecker, William (November 1975). "Computer structures: What have we learned from the PDP-11?". ISCA '76: Proceedings of the 3rd annual symposium on Computer architecture: pg 1-14. ACM Press. “memory size (8k bytes to 4 megabytes).”
- ^ PC World - Hitachi Introduces 1-Terabyte Hard Drive
- ^ (October 30, 1986) ANSI/IEEE Std 1084-1986 IEEE Standard Glossary of Mathematics of Computing Terminology. “kilo (K). (1) A prefix indicating 1000. (2) In statements involving size of computer storage, a prefix indicating 210, or 1024. mega (M). (1) A prefix indicating one million. (2) In statements involving size of computer storage, a prefix indicating 220, or 1,048,576.”
- ^ (July 22, 1992) ANSI/IEEE Std 1212-1991 IEEE Standard Control and Status Register (CSR) Architecture for Microcomputer Buses. “Kbyte. Kilobyte. Indicates 210 bytes. Mbyte. Megabyte. Indicates 220bytes. Gbyte is used in the Foreword.”
- ^ (June 24, 1994) IEEE Std 610.10-1994 IEEE Standard Glossary of Computer Hardware Terminology. “gigabyte (gig, GB). This term may mean either a) 1,000,000,000 bytes or b) 230 bytes. … As used in this document, the terms kilobyte (kB) means 210 or 1024 bytes, megabyte (MB) means 1024 kilobytes, and gigabyte (GB) means 1024 megabytes.”
- ^ a b Institute of Electrical and Electronics Engineers (2000). The Authoritative Dictionary of IEEE Standards Terms. IEEE Computer Society Press. ISBN 0-7381-2601-2. "kB See kilobyte." "Kbyte Kilobyte. Indicates 210 bytes." "Kilobyte Either 1000 or 210 or 1024 bytes." The standard also defines megabyte and gigabyte. There is a note that an alternative notation for base-2 is under development.
- ^ a b Letters to the editor: Abbreviations for computer and memory sizes. Donald R. Morrison, Sandia Corp, Communications of the ACM, Volume 11, Issue 3 (March 1968) Page: 150 doi:10.1145/362929.362962
- ^ Letters to the editor: proposed abbreviation for 1024: bK, Wallace Givens, Applied National Lab, Communications of the ACM archive, Volume 11, Issue 6 (June 1968), Page: 391 doi:10.1145/363347.363351
- ^ Letters to the editor: On binary notation, Bruce A. Martin, Associated Universities Inc., Communications of the ACM, Volume 11, Issue 10 (October 1968) Page: 658 doi:10.1145/364096.364107
- ^ a b The Art of Computer Programming Volume 1, Donald Knuth, pp. 24 and 94
- ^ Standardized units for use in information technology, Markus Kuhn, 1996-12-29
- ^ "International System of Units (SI): Prefixes for binary multiples". The NIST Reference on Constants, Units, and Uncertainty. National Institute of Science and Technology. Retrieved on 2007-09-09.
- ^ IEC 60027-2 (2000-11) Ed. 2.0
- ^ A.J.Thor (2000). "Prefixes for binary multiples" (PDF). Metrologica 37 (81).
- ^ International Electrotechnical Commission (2005-08-15). "HERE COME ZEBI AND YOBI". Press release.
- ^ IEEE-SA STANDARDS BOARD STANDARDS REVIEW COMMITTEE (RevCom) MEETING AGENDA (2005-03-19). Retrieved on 2007-02-25. “1541-2002 (SCC14) IEEE Trial-Use Standard for Prefixes for Binary Multiples [No negative comments received during trial-use period, which is now complete; Sponsor requests elevation of status to full-use.] Recommendation: Elevate status of standard from trial-use to full-use. Editorial staff will be notified to implement the necessary changes. The standard will be due for a maintenance action in 2007.”
- ^ System/360 Model 91
- ^ The Product Line Card unambiguously uses MB to characterize HDD capacity in millions of bytes
- ^ 1977 Disk/Trend Report - Rigid Disk Drives, published June 1977
- ^ Free on-line Dictionary of Computing
- ^ Definition of megabyte (html).
- ^ Definitions of Megabyte on Dictionnary.com" (html).
- ^ AskOxford: megabyte (html).
- ^ Rules for SAE Use of SI (Metric) Units — Section C.1.12 — SI prefixes
- ^ HD 60027-2:2003 Information about the harmonization document (obtainable on order)
- ^ prEN 60027-2:2006 Information about the EN standardization process
- ^ e.g., The PC Guide magazine: Search results
- ^ UNITS. Linux Programmer's Manual (2001-12-22). Retrieved on 2007-05-20. “When the Linux kernel boots and says
hda: 120064896 sectors (61473 MB) w/2048KiB Cache
the MB are megabytes and the KiB are kibibytes.” - ^ 2.2 Block size. GNU Core Utilities manual. Free Software Foundation (2002-12-28). Retrieved on 2007-05-20. “Integers may be followed by suffixes that are upward compatible with the SI prefixes for decimal multiples and with the IEC 60027-2 prefixes for binary multiples.”
- ^ Flyspray
- ^ bugs.mysql.com
- ^ gparted-0.2 changelog. SourceForge (2006-01-30). Retrieved on 2007-05-20. “changed KB/MB/GB/TB to KiB/MiB/GiB/TiB after reading http://www.iec.ch/zone/si/si_bytes.htm”
- ^ DFSee
- ^ disktype
- ^ Mac OS X Manual Page For raidutil(8)
- ^ FreeDOS-32 - Standards Compliance
- ^ IFCONFIG. Linux Programmer's Manual (2005-06-30). Retrieved on 2007-05-20. “Since net-tools 1.60-4 ifconfig is printing byte counters and human readable counters with IEC 60027-2 units. So 1 KiB are 2^10 byte.”
- ^ GNOME Network
- ^ SLIB
- ^ Cygwin/XFree86
- ^ Re: minor typo - HTTrack Website Copier Forum
- ^ Deluge changeset. Retrieved on 2007-06-13. “proper prefix for size”
- ^ What's New in zFTPServer Suite
- ^ SourceForge.net: Files
- ^ archive.netbsd.se
- ^ WinSCP :: Recent Version History
- ^ http://developer.pidgin.im/ticket/1684 Developer discussion
- ^ Binary vs. Decimal Measurements
- ^ command reference.
- ^ Solaris ls command reference
- ^ Verified on the downloadable versions for Solaris on 24 February 2008: Solaris 10 8/07 and Solaris Express Developer Edition 1/08
- ^ IBM invented the disk drive in 1956 and until the late 1960s its drives and their clones were dominant. See, e.g. US vs. IBM antitrust litigation (Jan 1969), especially IBM analyses of Memorex and other disk drive companies.
- ^ On January 6, 2007, a check of the websites of Fujitsu, HGST, Samsung, Seagate, Toshiba and Western Digital showed these companies (representing virtually all of the HDD industry by unit volume) specify capacity with the SI prefix definitions.
- ^ a b "Secure Digital Capacity Disclaimer" (PDF). sandisk.com. SanDisk Corporation. Retrieved on 2007-09-09.
- ^ Tandon (Janurary1984). TM100-1, TM100-2 Flexible Disk Drives: Product Specification and User's Manual. Tandon Corporation, pg 2-4.
- ^ IBM (May 1982). Disk Operating System by Microsoft (Version 1.1). IBM Corporation, G-1. Some software applications "used with DOS 1.10, will operate with either two 160KB drives or two 320KB drives. Both drives MUST be of the same type…"
- ^ IBM (January 1983). Disk Operating System by Microsoft (Version 2.0). IBM Corporation, A-2. "Beginning with DOS Version 2.00, DOS formats diskettes at 9 sectors per track, which increases capacity from 163,840 to 184,320 characters of information for single-sided diskettes and from 327,680 to 368,640 characters for dual-sided diskettes. The smaller capacity diskettes created by DOS Version 1.00 or DOS Version 1.10 (8 sectors per track) are also usable with DOS Version 2.00."
- ^ a b Apple Inc. (August 22, 1991). Double-Density Versus High-Density Disks. Article ID: 3802. Apple Inc.. Retrieved on 2007-07-07. "This article gives the specifications for the 800K floppy disks and the 1.4MB floppy disks." 800K Disk has 1600 sectors and 1.4MB Disk has 2880 sectors. A sector is 512 bytes.
- ^ Microsoft (May 6, 2003). Determining Actual Disk Size: Why 1.44 MB Should Be 1.40 MB. Article ID: 121839. Microsoft. Retrieved on 2007-07-07. "The 1.44-megabyte (MB) value associated with the 3.5-inch disk format does not represent the actual size or free space of these disks. Although its size has been popularly called 1.44 MB, the correct size is actually 1.40 MB."
- ^ Data capacity of CDs
- ^ Understanding Recordable and Rewritable DVD
- ^ "Vreogh Third Amended Complaint (Case No. GCG-04-428953)" (PDF). pddocs.com. Poorman-Douglas Corporation (10 March 2005). Retrieved on 2007-09-09.
- ^ http://www.sandisk.com/Assets/Categories/Products/sd_capacitydisclaimer.pdf
- ^ Safier, Seth A.. Frequently Asked Questions. Flash Memory Settlement. Poorman-Douglas Corporation. Retrieved on 2007-09-09.
- ^ Gutride, Adam; Seth A. Safier (29 March 2006). "Class Action Complaint". 'Orin Safier v. Western Digital Corporation'. Western Digital Corporation. Retrieved on 2007-09-09.
- ^ Zimmerman, Bernard (2006). "Notice of Class Action and Proposed Settlement". Orin Safier v. Western Digital Corporation. Western Digital Corporation. Retrieved on 2007-09-09.
- ^ News article
- ^ Baskin, Scott D. (1 February 2006). "Defendant Western Digital Corporation's Brief in Support of Plaintiff's Motion for Preliminary Approval". 'Orin Safier v. Western Digital Corporation'. Western Digital Corporation. Retrieved on 2007-09-09.
- ^ "WD Caviar SE16 SATA Hard Drives". Western Digital: Products. Western Digital Corporation. Retrieved on 2007-09-09.
- ^ Wong Yang, Debra (18 May 2006). "Milberg Weiss Law Firm, Two Senior Partners Indicted in Secret Kickback Scheme Involving Named Plaintiffs in Class-Action Lawsuits". Press Releases. United States Department of Justice. Retrieved on 2007-09-09.
[edit] Further reading
- When is a kilobyte a kibibyte? And an MB an MiB?. International Electrotechnical Commission (2007-02-12). — An introduction to binary prefixes
- Prefixes for binary multiples. NIST.
- NIST (1999-03-02). "Get Ready for the mebi, gibi and tebi". Press release.
- Markus Kuhn (1996-12-29). What is a Megabyte ...?.—a 1996–1999 paper on bits, bytes, prefixes and symbols
- Jonathan de Boyne Pollard. There is no such thing as a 1.44 MB standard format floppy disc.
- Michael Quinion (1999-08-21). Kibibyte. World Wide Words.—Another description of binary prefixes
- James Wiebe (2003-10-09). "When One Billion does not equal One Billion, or: Why your computer's disk drive capacity doesn’t appear to match the stated capacity" (PDF).—White-paper on the controversy over drive capacities
[edit] External links
- A summary of the organizations, software, and so on that have implemented the new binary prefixes
- A plea for sanity
- KiloBytes vs. kilobits vs. Kibibytes (Binary prefixes)
- Comic about the problem from xkcd