10進コンピュータとも言えるプログラム論理方式を採用したプリンタ付きIC電卓の開発が、マイクロプロセッサの誕生に結びつくとは誰が予想できただろうか。プリンタ専用LSIを開発したり、入出力機器のリアルタイム制御のプログラム化に失敗したり、2進コンピュータの提案と応用からの要求を融合しなかったりしたら、マイクロプロセッサの誕生は大幅に遅れただろう。CPU「4004」開発回顧録は、一粒の種から出発し、電卓とコンピュータと半導体などの技術を融合しつつ、一歩一歩と、紆余曲折を経て、世界初のマイクロプロセッサ「4004」の誕生へと辿り着いた開発物語である。

 ビジコンは、日本計算器(ビジコン製品の製造会社)製の電卓や機械式手回し計算器、三菱電機のコンピュータMELCOMシリーズと会計機、パンチカードを使って応用プログラムを入力可能な米国ワイリー社のCRT表示付き科学計算用計算器、米国SMCタイプライターなどの製品の販売をしていた。さらに、計算機センターを発足させ、コンピュータや会計機に関するソフトウエア・ビジネスも行っていた。

 電卓はビジネス機器や科学技術計算機器として花形商品となり、日本は電卓の供給基地となった。ビジコンは、OEM先ごとに対応する制御方式としてプログラム論理方式を電卓に導入すべくプロジェクトを開始した。

 1968年4月、プログラム論理方式の電卓の開発を始めた。10月には、メモリーを2つ搭載した16桁のプリンタ付きIC電卓162Pの試作機が完成した。

 マイクロプロセッサ誕生の背景の話なので、専門的で大分難解な話になる。電卓は、コンピュータと同じく、入力装置、出力装置、処理装置、メモリー装置で構成される。処理装置はデータパス部と制御部で構成される。データパス部は図1のプログラム論理方式を採用した電卓のALU & Register Unitに相当する機能であり、制御部はProgram Unitに相当する機能である。

図1●プログラム論理方式を採用したプリンタ付きIC電卓のブロック図
図1●プログラム論理方式を採用したプリンタ付きIC電卓のブロック図
[画像のクリックで拡大表示]

 ワイヤード・ロジック制御方式の電卓におけるデータパス部は、シリアル型4ビット主演算回路、累計器であるアキュムレータ、キーボード入力兼演算用レジスタ、乗除算用レジスタ、データ用メモリーなどのリソース(資源)で構成される(参考記事)。制御部の論理には、電卓機能手順論理、計算手順論理、入出力機器制御手順論理、メモリー・アクセス手順論理などがある。制御部の実装は、キーボード入力情報、逐次制御カウンタ、タイミング回路、フリップフロップなどの順序回路、ANDやORなどの組み合わせ回路などを使って、手順論理を構築し、各種の制御信号(最近のマイクロプロセッサに使われているマイクロ命令に相当)を生成し、データパス部に発行する。データパス部では、受け取った制御信号を使って、アキュムレータ、キーボード入力兼演算用レジスタ、乗除算用レジスタ、データ用メモリー、主演算回路などのリソースを使い、指定された演算を実行する。

図2●プログラム論理方式を採用したプリンタ付きIC電卓 ビジコン162P
図2●プログラム論理方式を採用したプリンタ付きIC電卓 ビジコン162P
[画像のクリックで拡大表示]

 IC電卓では、揮発性のシフトレジスタLSIを、アキュムレータ、キーボード入力兼演算用レジスタ、乗除算用レジスタ、データ用メモリーなどに使用した。また、1ビット単位でシリアルにデータを処理し、主演算回路を簡単化した。

 2進化10進符号を使った10進数1桁は4ビットの2進符号で表される。10進数1桁の加算は、まず、4ビットの2進数加算として最初の全加算器で1ビットずつ加算を行い、中間演算結果である16進データを4ビット・レジスタに格納する。次に、中間演算結果を使って補正データを生成し、2番目の全加算器で中間演算結果を補正することにより、10進数1桁の加算を実現する。

 16進データから10進データへの補正は、中間演算結果が9以下であれば中間演算結果に“0”を加算し、中間演算結果が10以上または桁上げ(キャリー)があれば中間演算結果に“6”を補正データとして加算して実現する。また、中間結果が10以上または桁上げがあれば、次の桁へのキャリーをセットする。

加算例:
10進数の入力データを2進数として演算(9 + 5 = 14)
→ 16進データ(14)
→ 10進補正(14 + 6 => 16 + 4)
→ 桁上げと4
(減算例の説明は難しいので次回以降に説明)

 プログラム論理方式は電卓の制御部の一部で採用した。具体的には制御部の「計算手順論理」と「電卓機能手順論理」の部分で、これらはOEM先や機種ごとに異なることが多かった。