半加算器を勉強してコンピュータが理解できるのか

高校情報や基本情報技術者試験など情報科学の試験に必ずと言って登場する半加算器。原理としては単純なものの、ここからコンピュータにどのように繋がるかというのはなかなか想像しづらいのではないでしょうか。

現在のコンピュータは非常に複雑に入り組んでおり、さながら人体のようです。典型的なコンピューターのパーツの切り分け方であるCPUやメモリといった単位は、人体でいうと心臓や肺など臓器の単位でとらえている感じといえます。

しかし、コンピュータ科学を基礎から学ぶためには人体で言えば細胞単位から成り立ちを理解する必要があります。コンピュータにとっての細胞とは AND や OR などの論理素子であると言えるでしょう。

半加算器は数個の論理素子を組み合わせて作る最も単純な多細胞生物のようなものです。たしかに多細胞ではあるものの、あまりにも単純であり、例えるならばアオミドロ程度とするしかありません。ここから人体の構造を想像せよ、とはいくら天才的な想像力があっても土台無理な話でしょう。

しかし、コンピューターの歴史は長く、一冊で扱うにはあまりに複雑なため、多くの教科書では、ミクロな視点での最初の構築ステップである半加算器と、マクロな視点での最初の分解ステップであるメモリなどのパーツの解説、というところまでやって、その間を埋めることなく放置してしまっています。

半加算器とコンピュータの埋まらないギャップ

このあまりにも大きな間隙のため、いくら半加算器を完全に理解したところで、その知識を現実のコンピュータに結びつけるのが困難となってしまっています。

これは学習者の問題というよりも、既存のテキストがこの間を埋められていないことが原因であると言えます。

以前書いた論理回路入門ではここのギャップをできるだけ簡潔に埋めるべく、半加算器から非常に簡単なコンピュータまでの道筋を8記事でステップバイステップに解説しました。これによりいくらか半加算器と現実のコンピューターを結びつけることができたと考えています。とはいえ、この記事で構築したコンピュータは非常に簡単なもので、細胞の例でいえばカエルくらいのへなちょこなものではありますが。

書籍でいうと、前述のように多くの教科書ではこの間を埋めることができていませんが、ひとつの素晴らしい例外としてCPUの創り方が挙げられます。この本では、論理素子よりもさらに細かい単位からはじめて、現実に動作するCPU構築しています。このCPUは細胞で言うとハムスターぐらいの規模でしょうか。もちろん、現代のコンピュータに相当する人間にはまだまだギャップはあるものの、立派な哺乳類であります。この本を一読すれば半加算器と現代のコンピュータの間をかなりの密度で埋めることができるでしょう。

まとめ

  • 単純な半加算器と現在のコンピューターの間には非常に大きなギャップが存在し、多くの教科書ではこのギャップをちゃんと説明しきれていない。
  • このギャップは例えるならアオミドロを調べて人体について理解せよと言っているようなもので、とてもできたものではない。
  • このギャップを埋める試みとして、論理回路入門では細胞の例でいうところのカエルくらい、CPUの創り方ではモルモットくらいまで半加算器を成長させることで、現実とコンピュータと半加算器の間を埋められるようになっている。