The terrible Tib, GiB and PiB game

The data storage industry uses MiB, GiB, TiB and PiB measures and different MB. GB, TB and PB measures and this confuses the heck out of many people. The reason we are in this mess is because of a K-sized conundrum.

Update; K and k case problem identified. A reader tells me: “Please note that the SI prefix for 1000 is k, not K.  Thus it is also kB and not KB. But for the kibi, a capital K was chosen – KiB.” 8 December 2020.

In normal number usage K, meaning kilo, stands for 1,000 of something. A kilogram is 1,000 grams. A kilometre is 1,000 metres. This is base 10 arithmetic. It is the International System of Units (SI) measuring scheme, in which the kilo prefix signifies ten to the power three (103) and means 1,000.

But, in computing, base 2 arithmetic – a binary numbering scheme -is used to describe DRAM and cache size, for example, in bytes for the Windows OS. By extension, this numbering scheme has been applied to disk and SSD capacities. A kilo, two to the power 10, (210 ), is 1,024 -a KB in shorthand. And this scheme leads to the MB, GB, TB, PB and EB terms in general use today.

The SI mega prefix is (106), the giga prefix is (109) and so on with TB, PB, EB and beyond. However, in 1998, the IEC (International Electrotechnical Commission) came up with the KiB (210), MiB etc. nomenclature to differentiate the two numbering systems.

The base 10 and base 2 difference is unimportant – so long as base 10 kilos and base 2 kilos are kept separate. But in recent times we have seen the SI kilo definition creeping into to computing, with some companies inserting an ‘i’ to indicate they are using the SI scheme, as in MiB (mebibyte), GiB (Gibibyte),TiB, and so on.

So we have a case of K confusion, and M, G, T, P and E confusion as well. 

The actual difference between the two schemes gets larger as the units increase in size. A KB is 0.976563 of a KiB. A MB is 0953,674 Mib. A GB is 0.931323 GiB. A TB is 0.909495 TiB. KiBs are bigger than KBs, MiBs are much bigger than MiBs, GiBs are very much bigger than GBs, and TBs are exceedingly larger than TiBs. 

For example, a GB is 1,073,741,824 bytes whereas a GiB is 1,000,000,000 bytes; that’s a whopping 73,741,824 byte difference.

Toshiba is a notable exponent of base10 capacity calculations. In its product spec for the MG08 series the company says: “Toshiba defines a megabyte (MB) as 1,000,000 bytes, a gigabyte (GB) as 1,000,000,000 bytes and a terabyte (TB) as 1,000,000,000,000 bytes.” However, the company also uses base level ‘MB’ in the same document. Weird.

Toshiba MiB usage.
WD Red disk drive MB usage.

Capacity measures over time are used to indicate throughput. The telecommunications and networking industry generally measures in base 2 arithmetic, MB/sec for example. But the Toshiba MG08 disk drive’s throughput is given as 262 MiB/sec, and Western Digital uses MB/sec. Inconsistency reigns.

Apple is another example of base 10 madness. Until iOS 10 and Mac OS X Leopard, the company used base 2 numbering for memory and disk capacity but then switched to base 10. That makes product generational product capacity compares difficult, as well as Mac and Windows system capacity comparisons.

OK, so may it’s no biggie except using two different measurement systems for the same thing is…crap, as anyone who has to tussle with imperial measurements knows.

So let’s agree a common standard and clean up the K confusion afflicting our industry. Otherwise the confusion will only to get worse as we move on from today’s petabyte era to tomorrows’s exabyte world. The Storage Networking Industry Association (SNIA) is the obvious body to make this happen.