eclectic content (site header)

 

KiloBytes vs. kilobits vs. Kibibytes
(transfer speeds and capacities)

Meta:

Author: lyberty
Article last updated: January 20, 2005






on this page:
Binary vs. Decimal
Hard Disk Drive
Capacity Measurements


SATA speeds

 

[ tech/computing ]

K = 1,024

k= 1,000

B = Bytes

b= bits

Filesize (how big a file is on your computer) is normally measured in units of "kilobytes," "megabytes," and "gigabytes."
In this computing (binary, but not data transfer) usage, 'K' (uppercase) represents a multiplier of 1,024. The other abbreviations use this same base of 1,024:

  • 1 KB (one KiloByte) = 1,024 Bytes
  • 1 MB (one MegaByte) = 1,024 KB
  • 1 GB (one GigaByte) = 1,024 MB

But 'k' (lowercase), on the other hand, represents a multiplier of 1,000 in computing. Data transfer speed is sometimes discussed using Bytes, but this usage is ambiguous and discouraged, as data transfer speeds are measured using "bit-rate" (bits per second).
You should therefore follow the convention of using BITS (not BYTES) for data transfer rates (for example, how fast data travels over a network, or how fast data travels from one hard drive to another hard drive).

A Proposal

To clarify the difference between bits and Bytes in transfer abbreviations, just use lower case for bit-rates:

  • 1 kbps (one kilobit per second) = 1,000 bits per second
  • 1 mbps (one megabit per second) = 1,000 kbps (i.e. one million bits per second)
  • 1 gbps (one gigabit per second) = 1,000 mbps (i.e. one billion bits per second)

This is a clear and easy to remember way to distinguish between KiloBytes and kilobits.

Note also that it's helpful to reserve the use of the captial letters for Byte-based abbreviations (i.e. "kbps", not "Kbps"), as this use of the lower case m and g can help to visually differentiate. In most references to bit-rate, the captial M and G are more common (e.g. "3 Gb/s"; "54 Mbps"), but the lower case "b" to represent "bits" is required and standardized.

Options for notation

Ambiguity in refering to kB, kb, MB, GB, etc. can be easily resolved, first and foremost, by just saying what you mean. This is easily done by indicating in your document what notation you are using; for example, as a footnote: "* In this document 1 MB = 1,024 KiloBytes and 1 KB/s = 1024 Bytes per second". But an even better solution is to avoid abbreviations unless they are absolutely necessary. It does not really take that much more space to write "24 megabits/s" than "24 Mbps", or "24,000 bytes/s" instead of "24 KB/s". . .

The "Kibi" -- SI Notation and Computing

[adapted from the NIST Reference ]

The "International Standard of Units" (SI) defines the prefix "K", for "kilo" (thousand), "M" for "mega", and so on. These prefixes are also found in computing, where they are applied to information and storage units like the bit and the byte. But since computing is a binary system (the base unit is "2", and powers of two) the prefixes' meanings change from their common "base-10" meanings:

K = 2^10 = 1,024
M = 2^20 = 1,048,576
G = 2^30 = 1,073,741,824
T = 2^40 = 1,099,511,627,776
P = 2^50 = 1,125,899,906,842,624.

However, these prefixes usually retain their powers-of-1000 (10^x) meanings when used to describe rates of data communication (bit-rates):
e.g. "10 Mbps Ethernet" runs at 10,000,000 (10 million) bits per second, not 10,485,760 bits per second.

This inconsistency did not seem important when computers had little storage and communication links were relatively slow -- the difference between 1,000 and 1,024 seemed, at the time, to be such a small difference that it didn't matter. But the increasing capacity of computing systems and speed of network links began making this inconsistency a more serious problem -- the difference between 400 "GB" and 400 "giga-" Bytes is a whopping 73,741,824 Bytes [*1]

The International Electrotechnical Commission (IEC) attempted to deal with the confusion in 1998/1999 by recommending a new set of "binary prefixes". They sought to distinguish between the standard SI prefixes (base 10) and computing prefixes (base 2) by assigning "KiB", "MiB" (kibibyte, mibibyte), on so on to computing prefixes (for example, "one kibibyte (1 KiB) equals 1024 Bytes").... But 6 years later, these terms have had very limited adoption. It appears they have so far lost their battle to retain the original meaning of K /M /G...

1  MegaByte =1 024  KiloBytes,  1  KiloByte =1 024 Bytes

The main problem with the "Kibi-"/"Mebi-" approach recommended by the IEC is the widespread use of computer operating systems (especially Microsoft Windows) that have effectively standardized "KB" (KiloByte) as 1,024 Bytes, "MB" (MegaByte) as 1,024 KB ( 1,048,576 Bytes), and "GB" (GigaByte) as 1,024 MB.

Millions of people use these abbreviations in their daily use of computers; many more than the number of people who use the "proper SI meanings" -- and even people who refer to things like "kilometers" or "kilograms" know perfectly well that a "Kilobyte" is 1,024 Bytes, not 1,000 Bytes.

The practical upshot of this is that, unless you can get Microsoft to start using the "KiB" abbreviation throughout their interfaces and documentation, then get millions of programmers to follow suit, we have to accept that "KB", "MB", et cetera, is taken, and work from there. (Face it: Microsoft trumps the IEC. I know these statements annoy Linux users, but Linux has also traditionally used the same definitions.)

Furthermore, another large problem with their approach was to introduce ambiguity by attempting to redefine established abbreviations, and introduce new abbreviations for established refences, instead of introducing new abbreviations for the less frequently used definitions. This means that anyone reading historical documentation or using any program now has to wonder "does this use of MB indicate the older use of MB (1,024 KB), or does it mean the IEC definition of MB (1,000 KB)??"

Arguably, an alternate approach would make more sense: let KB, MB, and GB remain as multiples of 1,024, but refer to DATA TRANSFER always in terms of bits; kbps, mbps, gbps, tbps, and so on:

kbps (kilobits/sec) means thousands of bits per second
mbps (megabits/sec) means millions of bits per second
gbps (gigabits/sec)means billions of bits per second
tbps (terabits/sec) means trillions of bits per second (as in "terabit router" or "terabit speeds")
pbps (petabits/sec) means quadrillions of bits per second.

Examples:

  • "Gigabit Ethernet [1000Base-T] is capabile of speeds up to 1000 mbps (mega-bits per second), or 1 gbps."
  • "10Base-T ethernet operates at 10 mbps and uses baseband transmission methods."
  • "SATA II defines the architecture (SATA-300) for Serial ATA communications of up to 3 gbps."

Alternate forms:

  • bbps = billion bits per second (where b = 1 000 000 000)
  • mbps = million bits per second (where m = 1 000 000)
  • kbps = thousand bits per second (where k = 1 000)
    and
  • tbps = trillion bits per second (where t = 1 000 000 000 000) [theoretical]

bits and Bytes: 1 Byte = 8 bits; kbps* 0.1220703125 = KB/s

Internet Speed

File Download Speed

256 kbps

~31.3 KB/s

384 kbps

~46.9 KB/s

512 kbps

~62.5 KB/s

768 kbps

~93.8 KB/s

1 mbps

~122.1 KB/s

kbps = kilobits per second
mbps = megabits per second
KB/s = KiloBytes per second
To convert from network speed (kilobits per second, kbps) to transfer rates (KiloBytes per second, KB/s), multiply by 0.1220703125.

To get bit rate (speed) from values given in Bytes, you must multiply the total number of Bytes by 8. To get KB/s values from bit rates, you must divide the total number of bits by 8, then divide by 1,024.

For converting KB/s to kbps (bit rate from Byte values), therefore, the equation is basically as follows:

<K> KiloBytes * 1,024 = <t> total Bytes
<t> total Bytes * 8 = <b> bits
<b> bits / 1,000 = <k> kilobits

And for kbps to KB/s (Byte values from bit rates), you switch the equations:
<k> kilobits per second * 1,000= <b> total bits per second; <b> bits / 8 = <t> total Bytes per second; and <t> / 1,024 = <K> KiloBytes per second.
For example: 128 kbps (k) = 128,000 bits per second (k*1000=b) = 16,000 Bytes per second (b/8=t) , or about 15.6 KB/s (t/1,024=K) .

So a 512\128 internet connection would give you about 62.5 KB/s maximum download, and about 15.6 KB/s upload (max).
And a 1500\128 service (1.5 mbps download cap) would give you about 183.1 KiloBytes per second, maxium. [5]
[convert 128 kbps to KB/s : ((128*1000)/8)/1024 ; ratio 128x=15.625; x= 0.1220703125]
[convert 256 kbps to KB/s: ((256*1000)/8)/1024= 31.25 ; 256x=31.25; x=0.1220703125]
[convert 512 kbps to KB/s : ((512*1000)/8)/1024; ratio 512x=62.500; x= 0.1220703125]
[convert 1 mbps to KB/s : ((1000*1000)/8)/1024=122.070312; ratio 1000x=122.0703125; divide by 1000 and x=0.1220703125]



Summary:

1 KB 1 KiloByte (1 KB = 1,024 Bytes = 8,192 bits )
[1 Byte = 8 bits. 1,024 Bytes = 1 KiloByte (1 KB);
therefore 1 KB is 8,192 bits ( 1*1,024 Bytes*8 = 8,192 ).]
1 kb 1 kilobit (1 kilobit = 1,000 bits)
1 MB 1 MegaByte
(filesize)
(1 MegaByte = 1,048,576 Bytes = 1,024 KiloBytes)
1 mb 1 megabit
(1 megbit = 1,000,000 bits [one million bits] = 1,000 kb) [*4]
1 mbps
or
1 Mbps
(bitrate) "1 million bits per second", or "1 megabit every second".
1 GB 1 GigaByte (1,073,741,824 Bytes) [*4] (also used: "gig").
1 BB 1 billion Bytes (1,000,000,000 Bytes)
"BB" is an alternative to "GB" for base-10;
hard drives and DVDs say "GB" when the values are actually in BB [*1]
1 KB/s   "The ratio of one KiloByte to one second." or "One KiloByte per second."
1 kbps   "One kilobit per second."
Bytes → big "B"; bits → small "b".
When talking about storage, think Bytes, not bits.
When talking about data transfer, use bits, not Bytes.
Discussion of data transfer rates are in bits, even if you are talking about file transfer speeds.
If you need to refer to Bytes for some reason, you must switch to base-2 (/1,024),
e.g. 1.5 Gbps = 187500000 Bytes per second = 178.813934326171875 MB/s. [7]
B/s*8= bps ; but mbps/8 does not equal MB/s!
Don't use "GB" to mean BB.
If you hear the words "TeraByte" (TB) , "PetaByte" (PB), or "ExaByte" (EB),
they're talking about storage, not data transfer.
If a program or web browser tells you that data is moving at "x KB/s",
it's okay; they really do mean "x KiloBytes per second",
so you can do the math confident in the fact that 1 KB = 1024 Bytes.
(e.g. to download a 1.2 MB file at 54 KB/s
will take you about [1,228.8 KB / 54 ≈ ] 22 seconds.)

 


See also:

•  how fast is USB 2.0 vs Firewire or 100/Base-T Ethernet?


Sample usage.

From: "Verizon Reduces Prices for Phone Service"
Author: Associated Press (AP) Online
Date: 2005, November 8th

"Cablevision, which competes with Verizon in New York City and its suburbs, on Monday announced it was increasing the maximum download speed of its lowest-price broadband service to 15 megabits per second (mbps), up from a maximum of 10 - which was already several times faster than most consumer DSL services. The company also introduced new 30 and 50 mbps options to compete with Verizon's new FiOS fiber optic offerings."

From: http://compnetworking.about.com/cs/wireless/f/wirelessspeed.htm
Author: Bradley Mitchell
Date: unknown

-- start quote --

The speed of a wireless network depends on several factors.

First, wireless local area networks (WLANs [or "Wi-Lans"]) feature differing levels of performance depending on which Wi-Fi standard they support.

802.11b Wi-LANs offer maximum theoretical bandwidth of 11 [mbps].
802.11a and 802.11g Wi-LANs offer theoretical bandwidth up to 54 [mbps]. (In contrast, typical wired Ethernets run at 100 [mbps].)

The performance of Wi-Fi networks in practice never approaches the theoretical maximum.
802.11b networks, for example, generally operate no faster than about 50% of theoretical peak, or 5.5 [mbps].
Likewise, 802.11a and 802.11g networks generally run no faster than 20 [mbps]. The disparity between theoretical and practical performance comes from protocol overhead, signal interference, and decreasing signal distance with distance. In addition, the more devices communicating on a WLAN simultaneously, the slower the network will appear.

On home networks, keep in mind that the performance of an Internet connection is often the limiting factor in network speed. Even though files can be shared on a wireless LAN at speeds of 5 or 20 mbps, wireless clients will still connect to the Internet at the speed typically offered by Internet Service Providers, usually less than 1 [mbps] (1000 kbps). [*2]

Finally, wireless network technology is capable of more speed than what Wi-Fi supports today. Industry vendors continue to develop improved technologies like 802.16 WiMAX that offer wireless communications with faster speeds and longer range.

-- end quote --


[*1] actual hard drive sizes - reported vs actual file sizes (Binary vs. Decimal HDD Capacity Measurements)

Note that computer hard drive manufacturers have traditionally taken advantage of the ambiguity found in references to "MB"/"GB" to try and make it seem like their hard drives have a larger capacity than they actually have. (Some claim that it's only done because it's logical to think of platters in base-10 capacities, but this argument is spurious...)

For example, if you buy a "200 GB" harddrive, when you get done installing it, you'll find that you actually have less than 185 GB (a difference of about 15 GB). That's because what they actually mean is 200 Billion Bytes (not 200 GB):

200 Billion Bytes (BB) == 200,000,000,000 Bytes

200,000,000,000 Bytes /1,024 = 195,312,500 KB /1,024 = 190,734.8 MB /1,024 = 186.265 GB , or approximately 186 GB.

And as the drives get larger, this discrepancy gets larger too:

missing 27 GB
What happened to the other 27.5 GB?

A typical "120GB" Hard Drive under Windows XP:


...so a 120BB Hard Drive (HDD) is actually 111.759 GB.

[HINT: Use Start > Run > "diskmgmt.msc" to check your own disk(s).]

(About Extended Industry Standard Architecture (EISA) partion, also known as 'the Utility Partition':
In Disk Management, an OEM partition typically is displayed as an EISA configuration partition.)

Actual Drive Capacities:
Advertised Actual Capacity
"400 GB" 372.5 GB
(400 BB)
"250 GB" 232.8 GB
(250 BB)
"120 GB" 111.8 GB
(120 BB)



Binary vs. Decimal DVD Capacity Measurements

They do the same thing for CD-Recordables, and DVD-Recordables; for example, a "4.7 GB" DVD actually only has room for less than 4.38 GB [about 4,485 MB on a DVD+R] of data.... (4589843.75\4482.26929\4.37721).

From THE DVD FAQ:

"DVD-5 = 4.37 gig (4.70 BB) of data; DVD-9 (12 cm, SS/DL) = 7.95 gig (8.54 BB), or about 4 hours of DVD Standard video + audio."

"The '150 KB/s' 1x data rate commonly listed for CD-ROM drives is meant to indicate 153.6 thousand Bytes per second..."

In my experience, I can get 4,482 MB safely on a DVD+R, and 4,488 MB safely on a DVD-R. (Some overburning is possible, but it's not really recommended.)

Format Can hold (target burn size) no more than...* Size on Label Actual Size
DVD-R (DVD-5) 4488 MB "4.7 GB" 4.383 GB
DVD+R (DVD-5) 4482 MB "4.7 GB" 4.377 GB
*assuming you aren't trying to overburn disk. Technically speaking, you can get 4489 and 4485 on DVD-R and DVD+R, respectively...



[*2] As an example, a typical "broadband" (aka "HighSpeed") service for asynchronous DSL (as of August 2005) would be "1.5\384", meaning 1.5 mbps upload\384 kbps download;
this would typically give you about a 1200 kbps maximum download speed, and about a 318 kbps maximum upload speed.

If you are maxing out at about 30 KB/s (KiloBytes) per second upload, you are uploading data at a rate of around 245 or 246 kbps.
[((246 * 1,000) / 8) / 1,024 = 30.0292969. Also, 30*Y=245.76; Y=8.192]


[3] Common misspellings and other keywords; petrabyte, tetrabyte, petrayte; bianary, ... kilobit transfer speeds, megabit transfer speeds, Calculate bandwidth throughput for any device - convert from Kbps and MB/s to ... 1 Kbps, 1 Mbps, 1 Gbps, 1 Tbps. 512K ADSL modem [Broadband]. 512 Kbps ... bandbreedte, bandbreite, bande passante, bandwidth, binaria, bit, bitrate, compression, convert, daten, Datenbertragung, donnes, equivalent, Geschwindigkeit, kanaalcapaciteit, kompression, limit, overdracht, per second, per seconde, por segundo, pro Sekunde , rate, snelheid, speed, throughput, transfer, transferencia, bertragungsrate, velocidad, vitesse


[4] From "whatis.techtarget.com":


megabit
- In data communications, a megabit is a million binary pulses, or 1,000,000 (that is, 10^6) pulses (or "bits").
It's commonly used for measuring the amount of data that is transferred in a second between two telecommunication points. For example, a U.S. phone company T-carrier system line is said to "sustain a data rate of 1.544 megabits per second." Megabits per second is usually shortened to mbps.

Some sources define a megabit to mean 1,048,576 (that is, 2^20) bits. Although the bit is a unit of the binary number system, bits in data communications are discrete signal pulses and have historically been counted using the decimal number system. For example, 28.8 kilobits per second (Kbps) is 28,800 bits per second. Because of computer architecture and memory address boundaries, Bytes are always some multiple or exponent of two. See kilobyte, etc.

GigaByte - A gigabyte (pronounced GIG-ah-bite with hard G's) is a measure of computer data storage capacity, equal to approximately a billion Bytes. Specifically, a gigabyte is two to the 30th power [2^30] Bytes, or 1,073,741,824 (one billion, seventy three million, seven hundred fourty one thousand, eight hundred twenty four) Bytes in decimal notation.


[5] "These are optimum bandwidths. Actual bandwidth may vary due to network traffic and and are not guaranteed. The difference between maximum speed and average speed can be especially large in wireless technology, or cable internet. The varying amount of data traffic on the Internet (and your own LAN, if applicable) and the condition of your computer equipment affect the speed of any connection at any given time." ; "Keep in mind that [even with a 1.5 mbps connection] you will not normally see 1.5 megabits in a speed test ... due to overhead the more commonly seen speed with this type of connection is in the neighborhood of 1200-1250."
See: broadbandreports.com


[6] Further historical reference for "kibi-" nomenclature:
* NIST "Tech Beat"; "Get Ready for the mebi, gibi and tebi"  (March 1999)
* http://www.worldwidewords.org/turnsofphrase/tp-kib1.htm  (August 1999)

[7] (from Tom's Hardware Community:)

Nearly everyone (including the experts) gets this wrong but the theoretical limit of a PCI bus is 127.2 MB/s, not 133 MB/s .

The bus is 32 bits wide and clocked at 33.3 Mhz. So many people assume its 32/8*33.3. But this ignores the fact that the "M" in Mhz = 1,000,000, while the "M" in MB = 1,048,576.

(Bytes)*(MEGAHertz) = total throughput, in Bytes, per second <T>
<T> / 1,024 = total throughput, in KiloBytes, per second.
<T> / 1,048,576 = total throughput, in MegaBytes, per second.

( (32/8)*(33.3*1,000,000) )/1,048,576= 127.2 MB/s

1 /1,024 /1,024 = 0.00000095367431640625
1 /1,048,576 = 0.00000095367431640625

[6] SATA Drive Transfer Speeds, in Bytes (real, as opposed to fuzzy, math):

SATA "1.5Gb/s" (aka SATA-150 [SATA-143 ?] )

1,500 MHz embedded clock
x 1 bit per clock
x 80% for 8b10b encoding
-----------------------------------
= 1200 million bits per second (1200 mbps, or 1.2 gbps)

/ 8 bits per byte
-----------------------------------
= 150 million Bytes per second


150,000,000 Bytes per second
/ 1,024
----------------------------------
= 146,484.375 KiloBytes per second (146,484 KB/s)

146,484.375 KiloBytes per second
/ 1,024
----------------------------------
= 143.0511474609375 MegaBytes per second
= 143 MB/s

Actual: 40 to 91 MB/s
*

SATA "3.0Gb/s" (aka SATA-300 aka SATA-286 aka SATAII)

3,000 MHz embedded clock
x 1 bit per clock
x 80% for 8b10b encoding
-----------------------------------
= 2400 million bits per second (2400 mbps, or 2.4 gbps)

/ 8 bits per byte
-----------------------------------
= 300 million Bytes per second


300,000,000 Bytes per second
/ 1,024
----------------------------------
= 292,968.75 KiloBytes per second (292,969 KB/s)

292,968.75 KiloBytes per second
/ 1,024
----------------------------------
= 286.102294921875 MegaBytes per second
= 286 MB/s

Note that these speeds are for the interface (parallel interface), and is limited by (among other things)
the physical (hardware) speed of the disk drive.
As an example, Western Digital's fastest SATA drive
has about a 68 MB/s Buffer to Disk sustained (write) speed...

*ACTUAL speeds for a single SATA-drive, in personal read & write tests, range from around 41 MBytes/s to 91 MB/s (peak). (Note the buffer-to-disk-limitation.)

*for now, at home, there's hardly any benefits to be gained from SATA II.

 

  


 
Links:

USB speeds vs. Firewire vs. Ethernet (file transfer speeds)

supplemental info for this article

Real World Speed Tests: SATA to U-ATA

"Binary vs. Decimal Measurements" {pcguide.com}

whatis.com -- Table of Physical Units {whatis.techtarget.com}

Capacities of DVD (the DVD faq) {dvddemystified.com/dvdfaq}
  ("[7.2] Notation and units")

The National Institute of Standards and Technology - "SI Prefixes for binary multiples"

How Many Bytes for Anything (How many Bytes for...) {techtarget.com}
[e.g. "10 terabytes for the print collections of the U.S. Library of Congress"]

About Bits n' Bytes and Speed (DSLReports.com; the AOL FAQ) [2002-2004]


SATA/300 or SATA-II


Discuss this topic or provide feedback on this article.

HOME