現在地

パーソナルなコンピュータの数値演算事情 (第3回:8ビット後期)


カテゴリー:

8ビットマイコンでも集積度が上がってくると乗算や除算命令を持つものが出てきます。

日立のHD64180はZ80の拡張ですが、8ビット×8ビットの乗算命令が追加されています。

MotorolaのMC6809にも8ビット×8ビットの乗算命令が含まれています。

Zilog Z8の上位のSuper8シリーズは乗算に加えて16ビット÷8ビットの除算命令も持っています。

プロセッサに内蔵せずともCDP1855のような外付けの乗除算ユニット等もありました。これはRCA CDP1802ファミリの乗除算ユニットで、単独で8ビット×8ビットの乗算・16ビット÷8ビットの除算が可能です。最大4段まで接続でき32ビット×32ビットの乗算・64ビット÷32ビットの除算まで拡張することもできました。

浮動小数点演算については8ビットプロセッサで内蔵したものは見たことがありません。当然ソフトウェアで処理することになりますが、(少なくとも当時は)複雑な処理だったのでライブラリとして提供されたり、書籍や雑誌記事にもよく書かれていました。

MotorolaのMC6839はMC6809向けの浮動小数点演算ルーチンを収めたマスクROMです。多くの人が必要としたためにマスク化できたのでしょう。Motorolaは他にもモニタプログラム(MCM6830L7)など汎用のマスクROM製品を出していました。

Z80演算サブルーチン・ライブラリ』はZ80向けの演算ライブラリを解説(使い方だけでなく中身についても)した書籍です。8086版も同じ著者が書いています。

上記MC6839は単なるROMでしたが、専用の演算回路ICも作られました。

ナショセミのMM57109は関数電卓にプロセッサI/Fを追加したようなものです。電卓らしく10進8桁に指数2桁という精度で、加減乗除以外にも指数・対数や三角関数まで対応していました。
これを最高クロックの400kHzで動作させた時の演算時間は加減算で平均22ms最大66ms、乗算で平均32ms最大227ms、除算で平均78ms最大223ms、三角関数にいたっては最大で976msにもなります。まさに電卓なみで、ソフトウェア処理した方が速いです。
存在意義のわからないデバイスですが、ソフトウェアを書きたくない(複雑で大変・ROMが勿体無いなど)・遅いとはいえその間マイコンは他のことができるといったことがメリットだったのでしょう。

AMDのAm9511, Am9512となるとCPUバスにI/Oデバイスとして接続するという点では上と変わりませんが、うまく使えばソフトウェア処理以上のパフォーマンスが得られるようになります。
まぁかなり高価なデバイスでしたので(個人で)使った人はそういないはずです。『I/O』誌にApple IIへの接続例が載っているのを読んだくらいです。

さて次回は8086, MC68000などの16ビットです。

参考文献・関連図書: 
"HD64180 8-Bit Microprocessor Hardware Manual", 1988, Hitachi.
MC6809データシート, Motorola.
"Z88C00 CMOS Super8 ROMless MCU Product Specification", PS014602-0103, Zilog.
CDP1855,CDP1855Cデータシート, 1997, Intersil.
MC68A39,MC68B39データシート, Motorola.
成田福雄(1986)『Z80演算サブルーチン・ライブラリ』工学社.
MM57109データシート, National Semiconductor.
Am9511データシート, Advanced Micro Devices.
"Am9511A/Am9512 Floating Point Processor Manual", Advanced Micro Devices.
M.KAMINAGA(1984)「Am9511高速演算プロセッサ」『I/O』1984年6月号, pp.208-214, 工学社.

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。