AMD Am29000
先日の80960SAと一緒にいくつか他のものも買っています。今回はその一つです。
AMDのAm29000-25GC、専用の保護ケースに入った状態で送られてきました。
Am29000ファミリもi960ファミリと同様に1980年後半から1990年代中頃まで製造されていた32ビットのRISCマイクロプロセッサです。汎用コンピュータとして成功せず、組み込みメインだった点も似ていますね。
これも初めて絡むのでアーキテクチャの特徴を見てみます。
マイクロプロセッサ・マイクロコントローラ等です。
先日の80960SAと一緒にいくつか他のものも買っています。今回はその一つです。
AMDのAm29000-25GC、専用の保護ケースに入った状態で送られてきました。
Am29000ファミリもi960ファミリと同様に1980年後半から1990年代中頃まで製造されていた32ビットのRISCマイクロプロセッサです。汎用コンピュータとして成功せず、組み込みメインだった点も似ていますね。
これも初めて絡むのでアーキテクチャの特徴を見てみます。
また変わった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製のを取り上げていますし大量に使われた一般的なものですが、面白いのはそのパッケージというか色(材質)です。
プラスチックパッケージの色といえばほぼ黒、それ以外は無いといってもいいほどなのですが、これは茶色でしかもうっすら透けています。
前に書いたMC68HC11の予備として買ったんだったかな。
東芝のTMP68HC11A1Tです。
ところで東芝のマイコンというと何を連想しますか?
某氏が愛用していた4ビットのTLCS-47、以前試したこともある8ビットのTLCS-90、珍しい12ビットのTLCS-12、などの独自アーキテクチャがいろいろありました。
セカンドソースとしてはZ80ファミリがもっとも有名でしょう。MC68000ファミリも種類は多くありませんが作っていました。TRONチップも作っていたはずです。
そんな中でMC6800ファミリって印象はないんですよね。
そもそも国産のMC6800ファミリって日立がメインで富士通もそこそこ作っていたという感じで、東芝の名前は出てきません。いつ頃どんな経緯で作り始めたのだろう?
これも何かのついでに買ったまま忘れていたものですね。
ナショセミのNS32032E-6、1985年製のFマスク品です。
このNS32032というのはNS32016の外部バスを32ビット化したものです。MC68020がアドレスバスも32ビットになったのに対し、これはデータバスは32ビットになったもののアドレスバスは24ビットのままなのでアドレス空間は16MBです。
バス幅以外の機能面ではほぼ同等のようですが、データシートをパラパラ見ただけですので細部は不明です。
以前HD3-6402のコメントでもちょっと触れたので予想していた方もいるかもしれませんが、こんなものを入手できました。
さまざまな番号が記されていて正式な型番というのがよくわかりませんが、DEC J-11あるいはDCJ11などと呼ばれることが多いですね。
これは何かというと、PDP-11互換のプロセッサです。というかLSI-11(PDP-11をLSI化したもの)に使われたプロセッサです。
しばらく前にTwitter(現 X)でこのEMZ1001を購入された方がおりまして、それでどんな石なのだろうと調べているうちに欲しくなってしまい、遂にポチってしまったのでした。
Iskra社のEMZ1001、末尾「E」は動作温度範囲0~85℃のもののようです。
聞き慣れないプロセッサですが、これはAMI S2000の互換品です。というかIskraとAMIの共同開発らしいのですが、この辺り情報が少なく詳しくはわかりません。それでもEMZ1001とS2000が互換だというのは確かなようなのでS2000のデータシートを元にして書いていきます。
S2000ファミリは命令幅が8ビット、データ幅が4ビットのプロセッサです。
S2000は命令メモリとして1k×8bitのマスクROMを内蔵しており、内蔵ROMのみ・内蔵ROM+外部ROM・内蔵ROMを無効化して外部ROMのみで動作させることができます。
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ビットになることです。
今回はNS32016ボードの組み立て終わってからUniversal Monitorの移植を始めるまでの動作確認編をお送りします。
まずは発振器とTCUのみで動かしてみます。CPU→TCUの信号が数本あるので仮にプルアップしておきます。これでPHI1, PHI2が出ていることを確認します。
リンギングが酷いですが、とりあえずTCUは動作してそうですね。