知名度はないが最も高性能だった1bit MCU、Motorola MC14500(人知れず消えていったマイナーCPUを語ろう 第14回)
Photo03左下が内部構造である。 命令は4~7番ピンのI0~I3から入り、Instruction Registerで処理を確定する。これにあわせてLU(Logical Unit)が動作し、この際に3番ピンのData Busからラッチ経由でデータを取り込んだり、逆にRR(Result Register)からData Busにデータを送り出したりする。 ただLUから直接データを出力することはなく、かならず1bitのRRを経て送り出す仕組みである。また処理後にはFlag O/FやJMP/RTN/Writeといった信号ピンにパルス信号が送出される。 普通(?)のCPUだと、Status Registerなどに反映されるものが、MC14500Bでは全部外部に信号として送出されるので、外部回路でこれをハンドリングする必要がある。 命令はPhoto03のTable 1にあるように16種類で、 NOPO NOP。Flag Oにパルス出力 LD Load result Register。Data Busの内容をRR(Result Register)にロード LDC Load Complement。Data Busの内容を反転してRRにロード AND Data Busの値とRRの論理積を取ってRRにロード ANDC Data Busの値を反転させたものとRRの論理積を取ってRRにロード OR Data Busの値とRRの論理和を取ってRRにロード ORC Data Busの値を反転させたものとRRの論理和を取ってRRにロード XNOR Data Busの値とRRの排他的論理和。RRとData Busの値が一致したらRRに1をセット STO RRの内容をData Busにセットし、Writeにパルス出力 STOC RRの内容を反転してData Busにセットし、Writeにパルス出力 IEN Input Enable。Data Busの内容をIEN Registerにロード OEN Output Enable。Data Busの内容をOEN Registerにロード JMP 無条件Jump。JMPにパルス出力 RTN Return。RTNにパルス出力し、次の命令をスキップ SKZ RRが0なら次の命令をスキップ NOPF NOP。Flag Fにパルス出力 となっている。 何というか、普通のCPUとはかなり命令の様相が異なっているのが判る。 ちなみに実行制御命令はIENとOENである。IENは、Data Busの値を読むか否か(IENを0にすると、Data Busの値と無関係に0がIEN Registerに設定される)を制御し、逆にOENは処理結果を出力するかどうかの制御に利用できる。
【関連記事】
- 知名度はないが最も高性能だった1bit MCU、Motorola MC14500(人知れず消えていったマイナーCPUを語ろう 第14回)
- DSP登場までは超高速を誇ったSMS300/8X300(人知れず消えていったマイナーCPUを語ろう 第13回)
- 3年間の開発凍結がなければIntelと勝負できたかもしれないSignetics 2650(人知れず消えていったマイナーCPUを語ろう 第12回)
- ぴゅう太に連なるTI TMS9900プロセッサの行方(人知れず消えていったマイナーCPUを語ろう 第11回)
- 8ビットCPUの名機Z80の後継はなぜ失敗した? Zilog Z800/Z8000/Z80000の誕生と消滅(人知れず消えていったマイナーCPUを語ろう 第10回)