CIO

When 16GB is really 14GiB

  • Mark Gibbs (Network World)
  • 07 September, 2011 02:42

I was asked the other day by a friend why his iPad says, on the outside, that it has 16GB of storage, while in the About tab in the Settings app the storage size is reported as 14GB. He wanted to know if Apple was pulling a fast one ...

What my friend was seeing is the difference between the device's capacity listed in gigabytes on the case and in what are actually called "gibibytes" as shown by the OS, the former being open to interpretation while the latter is definitive.

Alas, this convention, which has had official support for getting on 13 years, isn't yet as widely used, or even understood, as it should be.

BY THE NUMBERS: Snow Leopard's new math

For example, I suspect many of you have seen the term used in phrases such as "an average bandwidth of 313 MiB/s" and you (well, not you, but the guy next to you) just read it as "313 MB/s". While that isn't too far off the mark, the use of "MiB" which stands for "mebibyte" is far more precise than "MB" ("megabyte") is.

The problem is that "megabyte" and "gigabyte" have never had standard interpretations. For example, megabyte is sometimes used to mean 1,000 times 1,000 bytes while at other times it might mean 1,000 times 1,024 bytes or even (and rather more logically) 1,024 times 1,024 bytes.

Equally, is a gigabyte 1,000 or 1,024 megabytes? That covers a range of sizes from 1,000,000,000 bytes to 1,073,741,824 bytes (Apple states in its knowledgebase that "1 gigabyte (GB) is calculated as exactly 1,000,000,000 bytes.").

As we're discussing millions and billions I must digress and point out that there's more than one way to name numbers greater than 1 million: the long and short scales which, when I was a young lad, made for great confusion and still does in some countries today.

Using the "short scale," named numbers bigger than 1 million are multiples of 1,000, so 1 billion is 1,000 millions, and 1 trillion is 1,000 billions.

Alternatively, using the "long scale," where named numbers after 1 million are multiples of 1 million, so 1 billion is a million millions and 1 trillion is a million billions. That seems somewhat more logical for reasons I can't quite explain ... it may just be more "poetic."

The United States has always used the short scale but, until 1974, the United Kingdom, where I lived as a stripling youth, used the long scale. I believe the switch by the U.K. was simply to make the economy sound wealthier when compared to the U.S.

Curiously, and I did not know this, according to Wikipedia: "Both scales are in use currently in Canada. English-speaking regions use the short scale exclusively, while French-speaking regions use the long scale." So, be careful when you next buy something really big and expensive from a Canadian firm; if they speak French the price in billions will sound rather lower than you might be expecting.

Anyway, the problem with what megabyte means is obvious because the value can be interpreted in three ways: As 1,000,000 bytes or 1,024,000 bytes or 1,048,576 bytes, a range of 4.8%. Given the precision the IT industry should and has to work to, this is just not good enough.

In 1998, to address this egregious and inelegant inexactitude, the International Electrotechnical Commission, an august body that worries about such things, defined the "mebi-" prefix to represent 2 to the power of 20 of whatever you're measuring, such as bytes of storage. As you might guess, the prefix is really intended for "things" that are binary related although I'm sure you could talk about mebi-sheep if you wanted to ... I mean, who's going to stop you?

Thus, a mebi-byte is (exactly and accurately) equal to 1,048,576 bytes It is also equal to 1,024 kibibytes where a "kibi-" is also defined by the IEC to be 2 to the power of 10, making a kibibyte equal to 1,024 bytes. In other words, the entire scheme is based on 2 raised to the power of multiples of 10.

But if the IEC were really serious about a mathematically consistent system then shouldn't it use powers that are multiples of 2? This would mean the steps, starting with useful values, would be 2 to the 8 (256), 2 to the 16 (65,536), 2 to the 32 (4,294,967,296), and so on? Alas, the IEC didn't check with me first.

So, if you wish to be precise and accurate, you should henceforth use kibibyte (KiB) instead of kilobyte (KB), mebibyte (MiB) instead of megabyte (MB), and gibibyte (GiB, my favorite, 2^30) instead of gigabyte (GB), along with tebibyte (TiB, 2^40), pebibyte (PiB, 2^50), exbibyte (EiB, 2^60), zebibyte (ZiB, 2^70), yobibyte (YiB, 2^80), replacing, respectively, terabyte (TB), petabyte (PB), exabyte (EB), zettabyte (ZB) and yottabyte (YB).

This standard has also been recently endorsed by the Institute of Electrical and Electronics Engineers (IEEE) and the International Committee for Weights and Measures (CIPM) so now we just have to explain the whole concept to our users and senior management. Good luck with that.

Gibbs is precise in Ventura, Calif. Give your estimation to gearhead@gibbs.com.

Read more about data center in Network World's Data Center section.