2017-02-18 14:15 — asano
カテゴリー:
珍しいプロセッサNS32016を見つけて買ってしまいました。
National Semiconductor (現在は買収されてTexas Instrumentsの一部門)のNS32016N-10です。これ昔はNS16032と呼ばれていたのですが、おそらくは「32ビット」を強調するために現在のNS32016に改名されました。
1990年製でしょうか。発売開始は1970年代の終わりだったと思うので、人気がなかった割には長く生産されていますね。
「-10」は10MHz品を表しています。
MC68000と同様に内部アーキテクチャは32ビットで外部バスは16ビットとなっています。MC68008と同様に外部バスを8ビットにしたNS32008というのも(改名後です)発売されました。もし改名されていなかったらどんな名称になったのでしょう? 外部バスも32ビットにしたNS32032というのもありました。
NS32008の登場時の型番もNS16008だったようです。
さらに後には後継のNS32332とかNS32532なども作られています。このあたりのネーミングはとても規則的でわかりやすいですね。
当時のNSによると世界で最初に量産され市販された32ビットマイクロプロセッサだそうです。
まぁTMS9995でも書いたように何を持って32ビットとするかは明確ではないので微妙ではあります。インテルの80386やモトローラのMC68020より前なのは確かですが、MC68000とはどちらが先なのか確認できませんでした。モトローラはMC68000を16ビットと称しているので問題無いといえばないのですが、MC68000が16ビットならNS16032だって16ビットではないのかという気もします。
意味は不明ですが、裏側にもマーキングがありました。
ところでこの記事を書くためにデータシートを読んでいたらとんでもないことがわかりました。
このNS32016はRD, WRのような信号を出していないのです。なんでもNS32201 Timing Control Unitsというものが必要で、こいつがCPUに必要な2相クロックを生成し、メモリやペリフェラルに必要なRD, WRを出力するのです。8086系でいうところの8284 Clock Pulse Generator/Driverと8288 System Bus Controllerを合わせたようなデバイスです。
さて今からこのNS32201は手に入るのでしょうか? それほど複雑ではなさそうなので最悪はCPLDで作ることも考えておかないといけませんね。
NS32C201を入手できました。
ソフトウェアについても資料を読んでいくと非常に複雑なことがわかります。MC68020のCALLM, RTM命令もややこしかったですが、NS32000シリーズのモジュール機能はもっと複雑ですね。リンカの機能のある程度をハードウェアでサポートしている感じですね。こういうのはマニュアルに載っている動作がわかっても駄目で、どういう状況でどんな問題を解決するための命令なのか理解しないと「よくわからない変な命令」でしかありません。まぁ必要がなければ使わなければ良いのですが。
それからアセンブラも探さないといけませんね。こんな相対アドレッシングだらけのものをハンドアセンブルするのはたとえ小さくても勘弁です。
コメントを追加