本連載はHisa Ando氏による連載「コンピュータアーキテクチャ」の初掲載(2005年9月20日掲載)から第72回(2007年3月31日掲載)までの原稿を再掲載したものとなります。第73回以降、最新のものにつきましては、コチラにて、ご確認ください。

命令アーキテクチャの改善で、MJアーキでは4004アーキと比較して10進16桁の加算の1桁分の処理性能を1.43倍に向上させたが、次に、ハードウェアの物量増加をある程度許容した性能向上策を考えてみよう。

外部接続バスの強化

このコラムの第32回に掲載した4004のタイミング図や前掲のMJアーキテクチャのタイミング図では、A1~A3の3サイクルでROMにアドレスを送り、M1、M2サイクルでROMからの命令データを受け取っている。つまり、基本命令の実行サイクル 8サイクルのうちの5サイクルを命令を読み出すだけに消費してしまい、実際の基本命令の実行にはX1~X3の3サイクルしか使われていない。なぜ、命令の読み込みだけに5サイクルも必要とするのかというと、4ビット双方向バスでプロセサとROMチップの間を繋いでおり、チマチマと4ビットずつ情報を送っているからである。

ここで、パッケージのピン数を増やして、12ビットのアドレスを一括して送り、また、ROMからのデータを8ビットのバスで一括して受け取ることにすると、この部分に合計20ピンが必要となり、パッケージの必要ピン数は4004より16ピン増加するが、それでも32ピンであり、当時でも使用されていた40ピンパッケージを使用すれば実装可能である。

そして、RAMへのアドレスの送出とRAMとのデータのやり取りもこのアドレスバスとデータバスを共用するということにすれば、次の図に示すようにX3サイクルでメモリからのデータを受け取り、X4サイクルで演算を行うというように、基本命令を6サイクルで実行することが出来るようになる。つまり、パッケージへの16ピンの追加と対応するバスのドライバ/レシーバ回路の追加で、基本命令の実行時間は8サイクルから6サイクルに短縮され、実行性能は1.33倍となる。

また、MJアーキテクチャの場合は、RAM/IOアクセス命令の実行時間はアドレスを送るサイクルを追加して11サイクルとしていたが、12ビットのアドレスが一括して送れるとこれも追加サイクル無しに6サイクルで実行でき、前述の10進加算のループを42サイクルで実行できるようになる。このループの実行時間は、オリジナルのMJアーキでは64サイクルであったので、これは1.52倍の性能向上である。

  • バスタイミング図

    12ビットアドレスバス、8ビットデータバスを装備した場合のバスタイミング図。4004では8サイクルを必要としていたが、6サイクルに短縮

実は、Faggin氏も4ビット双方向バスは効率が悪いので、40ピンのパッケージを使いたかったと回想しており、この問題はFaggin氏の設計当時から分かっていたのであるが、当時のIntel社はメモリが中心の会社で、16ピンより多いピン数のパッケージを使った経験がなく、40ピンのパッケージにLSIを実装したり、出来上がったものを試験したりするための製造装置も無く、残念ながら40ピンパッケージの採用を断念したのだそうである。

余談であるが、最近(?)の4ビットマイコンはどうなっているのかとWebを調べたのであるが、ルネサスや富士通は8ビットマイコン以上の製品しかなく、辛うじて東芝がTMP47C101/201という4ビットマイコンを製品リストに載せており、データシートなども公開されているという状況であった。この4ビットマイコンであるが、命令ROM、データRAMともに4ビット単位のアクセスで、かつ、4004と同じ16ピンDIPパッケージに封入されているのであるが、ナント、プロセサに加えて命令ROM、データRAMともにワンチップに集積されており、パッケージのピン数を気にすることなく、チップ上の配線だけなので、事実上任意のビット幅のアドレス、データをやり取りすることができるようになっている。

4004の時代には、これだけのRAM、ROMを集積するには20チップ程度を必要とし、パッケージのピン数が性能を制約することになっていたのであるが、Mooreの法則に基づく半導体の進歩は性能を制約する環境を根本から変えてしまっている。また、TMP47C101/201の基本的な命令の実行は8サイクルであるので4004と変わらないが、クロックは6MHzであり、4004の740KHzと比べると約8倍高速になっている。

ということで、現代の設計(この4ビットマイコンも5V電源であり、1990年以前の設計と思われるので、現代というには、ちょっとトウがたっている)では環境が大きく変わってしまっているが、戦車を持ち出すのではなく、今しばらく、35年前の4004設計時代の刀とせいぜい火縄銃の世界での設計の世界に身を置いて戴きたい。

更に蛇足をお許し戴けるなら、火縄銃から戦車まで500年以上が経過しているが、4004からこの東芝の4ビットマイコンまで20年以下であり、進歩の加速を感じる。というところで閑話休題として、本題に戻ろう。