MIPS R3071
カテゴリー:
3つ目もまた32ビットRISCマイクロプロセッサです。
これはIDTの79R3071、いわゆるMIPSプロセッサです。1996年30週の製造かな。
MIPSプロセッサは以前MIPS R4700を取り上げたことがありました。なのになぜこれを買ったのかというとR4700は64ビットバスでありとても手に負えないからです。このR3071なら32ビット(マルチプレクスバスですが)なのでまだ現実的ですし、バイトイネーブルもあります。
マイクロプロセッサ・マイクロコントローラ等です。
3つ目もまた32ビットRISCマイクロプロセッサです。
これはIDTの79R3071、いわゆるMIPSプロセッサです。1996年30週の製造かな。
MIPSプロセッサは以前MIPS R4700を取り上げたことがありました。なのになぜこれを買ったのかというとR4700は64ビットバスでありとても手に負えないからです。このR3071なら32ビット(マルチプレクスバスですが)なのでまだ現実的ですし、バイトイネーブルもあります。
また変わったCPUを買ってしまいました。動かせそうもない代物ではありませんが、膨大な積みプロセッサが溜まっている中いつになったら着手できるものやら。
これはIntelのi960ファミリ、N80960SA16です。
i960ファミリはIntelが1980年代後半から1990年代中頃まで生産していた32ビットのRISCマイクロプロセッサです。
組み込み用途のあまり知名度のないプロセッサですが、このファミリの一員i960RDはPCに使われたこともあります。ATXに移行する直前ごろ、PCI×7+ISA×3といった巨大なATマザーボードがありI/Oプロセッサとして搭載されていました。これはI2O(Intelligent I/O)と呼ばれていました。
これまで触ったことのないアーキテクチャなのでデータシートから特徴を拾ってみます。
Twitter(現X)で旧ソ連の変わったICパッケージを見かけ、そういえば似たの持ってたなと探したらこんなものが出てきました。
このロゴはいつものサイトにも見当たらないので不明ですが……
このКР1816ВЕ35はIntel 8035のクローンのようです。製造は1988年1月かな。
8035自体は以前MCS-48 2種でNEC製のを取り上げていますし大量に使われた一般的なものですが、面白いのはそのパッケージというか色(材質)です。
プラスチックパッケージの色といえばほぼ黒、それ以外は無いといってもいいほどなのですが、これは茶色でしかもうっすら透けています。
しばらく前にTwitter(現 X)でこのEMZ1001を購入された方がおりまして、それでどんな石なのだろうと調べているうちに欲しくなってしまい、遂にポチってしまったのでした。
Iskra社のEMZ1001、末尾「E」は動作温度範囲0~85℃のもののようです。
聞き慣れないプロセッサですが、これはAMI S2000の互換品です。というかIskraとAMIの共同開発らしいのですが、この辺り情報が少なく詳しくはわかりません。それでもEMZ1001とS2000が互換だというのは確かなようなのでS2000のデータシートを元にして書いていきます。
S2000ファミリは命令幅が8ビット、データ幅が4ビットのプロセッサです。
NS32016ボードのコメントにちょっと書いたようにNS32081 FPUを搭載してみました。
空きエリアに24ピンソケットを置いてNS32081D-10を載せます。
このFPUはたったの24ピンしかないのにバスは16ビットあります。接続は簡単でデータシートの通りにNS32016の同名の信号と接続するのみ、CPU空間のデコードを必要とするMC68881などよりシンプルです。あ、クロックだけはNS32201から引っ張ってきます。
ハードウェア的に接続出来たら次はソフトウェアですが......
前回プログラムが動き始めたので、例によってUniversal Monitorの移植を行なっています。似ているプロセッサとしてMC68000をベースに、HEXファイル関係については長いアドレスに対応したH8/300Hが元にしています。
現時点でD(ump), G(o), S(et), L(oad), P(unch)の各コマンドが動作するようになっており、引き続きR(egister)の実装を進めているところです。
ということで気付いたことを書いてみようかと思います。
NS32000のバイトオーダーはリトルエンディアンなのですが、命令語に含まれる即値やディスプレースメントなどはビッグエンディアンで格納されます。
面白いのはディスプレースメント(絶対アドレッシングのアドレスも含む)は可変長で、最初のバイトの最上位ビットが"0"なら符号付7ビット、上位2ビットが"10"なら符号付14ビット、"11"なら符号付30ビットになることです。