ギビバイトという単位

2016/10/27

#コラム ストレージ

ギビバイト (GiB) という単位がある。
IEC(国際電気標準会議)が 1998年に承認した、比較的新しい単位だ。皆さんご存知だろうか。

実はこの単位、お馴染みのギガバイト (GB) とほぼ同じ意味だったりする。
だったらギガバイトでいいんじゃない?と思われることだろう。僕もそう思うし、たぶんみんなそう思っているから、ご存知の通り全くさっぱり普及していない。
もちろん、定義上は全く同じ意味ではない。

キロは1000ではなく1024?

そもそもギガとは、千倍を意味するキロの更に千倍のメガの、更に千倍という意味の SI 接頭辞 (国際的に定められた単位) だ。コンピュータ以外の日常生活ではキロしか馴染みがないけれど、たとえば 1キログラムの千倍は 1メガグラム (1トン) で、その千倍は 1ギガグラムと表すことができる。

しかし、コンピュータの世界の慣例では少し意味が異なる。キロもメガもギガも、ひとつ下位の接頭辞の 1024倍を表すのである。このような中途半端な数になる理由には、コンピュータの仕組みが関係している。

現在のコンピュータは、あらゆるデータを内部では 0 か 1 の数字の集まり、つまり 2進法で表しており、一般的には 2進法で 8桁分を 1バイトとして定義・処理している。
コンピュータは 2進法で計算するので、2の n乗の数が最も扱いやすく効率が良い。その為、キロの近似値である 2の 10乗 (2進数10桁) = 1024バイトを 1キロバイトと定めているのである。さらに 1キロバイトの 1024倍が 1メガバイトで、同様にギガバイト、テラバイト、ペタバイトと続く。

ギビバイトが生まれた理由

つまり、キログラムなど (SI単位) を日常生活で使う時と、キロバイトとではキロの意味が 1000倍と 1024倍で、24 ほど違うのだ。この程度の誤差は大抵、あまり気にはならないだろう。
しかし単位がギガになると、1000の3乗 = 10億に対してコンピュータでは 1024 の 3乗 = 約10億7374万なのである。約七千万違うと言われれば、そこそこ気になってくる。
言うまでもなく接頭辞がテラやペタなど上位なれば、更に誤差は大きくなる。

さてここで、やっと本題だ。
この誤差は無視できないので明確に区別したい。いや、したい事にしてみる。
そこで登場するのがギビバイト (GiB) だ。これには明確に、1024の 3乗の意味しかない。だからギガのように、その正確な数が 1000 の 3乗なのか 1024 の 3乗なのかを考える必要がなくなる。おお、素晴らしい!……かな?

ギビバイトは必要か

これ、ほとんどの人がピンとこないのが正直なところだろうと思う。
というのも、コンピュータのライトユーザにとって誤差を実際に意識する場面はほとんど無いだろうし、コンピュータに詳しい人にしてみれば、ギガバイトといえば通常は 1024 の 3乗を表すのが当たり前のことなのである。
なので、学者さんや仕様書を書く人にはギビバイトも必要かもしれないが、他一般の人にとってそれが必要となることは、今後も永遠に無いだろう。だから覚える必要はないし、覚えていてもこの記事のようにウンチクのネタ程度にしか使えない。
厳密さが必須で、見聞きする人が用語の意味を知っている場面では使っても良いが、知らない人が居ることも想定できる場面では、かえって混乱を招くだけだろう。

ストレージ容量の謎

ただ一つだけ、例外がある。
HDDやSSDなどの、ストレージ容量のパッケージ表記だ。これは何と、各単位を千倍として計算している。その為たとえば 2TB と表記してあるHDDは、実際には約 1.82TB (TiB) しかなく、PCでの表示もそうなる。
恐らくは少しでも容量を多く見せる為に考え出された涙ぐましい工夫だが、いつも少し損した気分になるので、この慣習はそろそろ止めて頂きたいものだ。

そういえば、大昔のゲームソフト(ROMカセット)では単位を「メガ」とだけ表記してあったけど、実はビット容量表記(バイト容量の 8倍の値)だったのでした。(おじいちゃんの昔話)

SI単位としての見方

メートルやキログラムなどの単位が、現代では国際的に通用するのが当然になっているのは、国際単位系(SI)でそれらが標準として定められているおかげだ。
そしてその SI で定められている補助単位である SI接頭辞 (キロ、メガ、ギガなど) には、厳密に 10 の n 乗 (ギガならば 10 の 9 乗) の意味がある。

これらの単位がすべて厳密に定められているおかげで、多くのことが正確に成り立っていて、世の中の円滑な発展に大いに貢献しているのは紛れもない事実だ。
その視点で見れば、コンピュータの世界でギガなどの定義が異なるのは大いに問題であり、それゆえに GiB が誕生したわけで、GiB と GB を厳密に使い分けたほうが良いのは明らかだろう。

ただ、現実はそう簡単ではない。
現在でも 10 の 9 乗ではない GB が多くの場面で使われており、GB の意味を SI 単位に合わせて厳密に再定義するのは不可能な状況だ。
GB についての混乱は、残念ながら今後もずっと続いていくのだろうと思う。

まとめ

実質的に必要性のない複雑さは、無駄である。言葉というものは、必要なぶんだけ意味が伝わればいい。

そしてこの「○ビバイト」という呼び方、キビバイト、メビバイト、ギビバイト、テビバイト…と続くのだけれど、なんだかこの響きはとっても変な感じがする。それにキビとギビが見分けづらい。
だから使いたくなくて、それがこの記事を書いた理由なのだけどね!

参考

通信の世界では kbps (キロビット毎秒) が 1000bps を意味する事が多いらしい。

サイト内を検索

自己紹介

自分の写真
スマートフォン(Android)、IT、PC、プログラミング等の役立つ(かもしれない)情報や気になる話題を書いています。

QooQ