ジャパン/コンピュータ・ネット代表取締役 岩戸あつし

最近量子コンピュータという言葉をよく耳にする。世間では現在最も速いコンピュータが何十年もかかる計算をほんの数秒でやってしまう、と持てはやされている。量子コンピュータの仕組みはYouTubeなどで解説されているが、分かったようで分からないと思った人がほとんだと思う。
量子コンピュータを解説する前に、今回はチューリング・マシーン(最初のコンピュータの発明者であるアラン・チューリングから命名)と呼ばれる現在のコンピュータの仕組みを確認したい。

現代のコンピュータの仕組みであるが、究極的には「どのくらいたくさんの桁数の数字を並べられるか?」「それらの数字をどのくらい速く変化させられるか?」でコンピュータの計算速度が決まる。以下、例え話で解説していく。

どのくらいたくさんの桁数の数字を並べられるか?
●電球が横並びで並んでいる状態を想像してほしい
●それぞれの電球はOFFとONの状態を表現できるので、電球の数が多くなる程、組み合わせが多くなるということは納得していただけるだろうか
●電球1個の場合は、OFFとONの2種類。2個になれば、OFF/OFF、OFF/ON、ON/OFF、ON/ONの4種類。3個になれば、OFF/OFF/OFF、OFF/OFF/ON、OFF/ON/OFF、OFF/ON/ON、ON/OFF/OFF、ON/OFF/ON、ON/ON/OFF、ON/ON/ONの8種類、このように、4個ならば16種類、5個ならば32種類と組み合わせの数は倍々に増えていく。実はこの電球のことをIT用語で「ビット」と呼んでいる
●現在のパソコンは、ビットが32個とか64個とか横並びに並んでいる状態だ。それぞれの組み合わせに、1、2、3と順番に番号を振っていくと一度に表現できる数字の大きさがわかる。32ビットなら、2の32乗=約43億。64ビットなら、2の64乗=43億×43億までの膨大な数字が一度に表現できる
●ただ、以上はコンピュータが一度に一つの数字が何桁まで表すことが可能かを言っているに過ぎない

それらの数字をどのくらい速く変化させられるか?
●コンピュータの役割は、数字を表現することではなく、計算することだ。では、電球のOFF/ONだけの機能を使ってどうやって足し算、引き算、掛け算、割り算をするのか?
●例えば、1足す10憶の場合は、最初に1という数字を作って、どこかに保管しておく。その後10億という数字を作って、先ほどの1に足すという計算をする。ここで大事なのは、64ビットで1という数字を作るのと、10億という数字を作るのは同じタイミングだということだ
●具体的な計算方法は省略するが、大事なのは、「1を作って」、「保管し」、「10億を作って」から、「1を足し」、「その答えを保管する」という各段階でタイミングを取っていることだ
●それぞれの段階において動作は一旦止まっている。丁度アニメが、実際には1秒間に24コマの静止画コンテで構成されているような感じだ
●このタイミングのことをIT用語で「ヘルツ」と呼んでいる。例えば現在代表的なパソコンのヘルツはおよそ5ギガ・ヘルツであり、「ギガ」が10億を表すので、50億ヘルツ。つまり1秒間に50億回ものタイミングを取っていることになる

以上、ビット数(どのくらいの数字を一度に表現できるか)と、ヘルツ(それらの数字をどのくらいのタイミングで変化することができるか)がコンピュータの基本的な性能になる。勿論コンピュータの性能はそれだけではなく、コア数、スレッド数、キャッシュ、RAMの容量など様々な条件が加わるが、「ビット数」と「ヘルツ」の二つは基本中の基本で、今後量子コンピュータの話になったときに最低抑えておきたいポイントである。

Share This