CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

T805

PGAソケット(2)

探していたトランスピュータ用のPGAソケットですが、コメントいただいたefialtes_htnさんに教えてもらった10×10グリッド100ピンのソケットを購入できました。 中心部の4×4計16本のピンを抜けば84ピンになります。フルグリッドのものからピンを減じるという発…

基板到着

T805トランスピュータ基板とTLCS-900/ROMライタ基板が到着。 今回は発注から到着までちょうど3週間でした。うちshippedからの輸送に半分の10日かかってますが急ぎでもないので全くOKです。ただ送料の安いJapanDirectを選択したので入港して大阪の佐川の営業…

PGAソケット

トランスピュータIMST805に適合する10×10 84ピンのPGAソケットを探していたのですがなかなか見つかりません。とりあえず手に入れたのがこのような10×10 68ピンでMC68000のPGAパッケージに合うタイプです。 これを商品ページで見たとき、最内周にコンタクトの…

GNDベタ追加

基板の裏表にGNDのベタ領域を追加して塗りつぶしました ベタを追加してからラインの引き回しを修正する場合があります。ベタ領域を分断するようなラインの引き回しを変えるとか、ベタパタンが「浸み込まない」ような空白エリアにベタが流れ込むように流路を…

部品追加

もうパタンの引き回しも確定し細かい手直しも始めたのですが、今になって回路図へ部品の追加がしたくなってきました。 ボードが全く動かないとき、ハードデバッグをどう進めるかはいつも悩むところです。データバスをラッチするパラレルLEDは基本的なところ…

配置見直し

部品の配置を見直して再度オートルータをかけました。ルーティングに15分、直後のビア数は230個くらいでしたが、その後のオプティマイズでは3時間くらいたったところでビア数150個前後で変化しなくなったのでそこで打切りました 左側に4個並んでいるコネクタ…

シリアルコントローラ

トランスピュータは自分自身でリンクを持っていて、さらにリンクアダプタを使えば汎用CPUの8ビットバスにもつながるので他にシリアルコントローラは要らないのですがボード単体でデバッグすることも考え接続しておくことにします。 採用したのはフィリップス…

仮ルーティング

つなぐところはつないで一応ERCの警告は0にしたうえでオートルータをかけてみました。回路図自体の直しはまだ多少あるかもしれませんが、規模として引ききれるかどうか、変なところに配線が集中しないかの見積もりのためです ラッツネストは恐ろしい状況でし…

結線もうすこし

接続先がだんだん解決してきて警告があと3つになりました ICパッケージの選択はまだ悩んでます。SRAMを600mil幅DIPにしても部品配置はできるしついでにアドレスラッチもDIPにしてみました バスまわりの接続に余裕ができるかもしれません

ほぼ結線完了

実装する部品はほぼ回路図に配置して結線も完了。接続先を思案中のピンだけ残っていてERCのエラーが12件ありますが、これもじきかたがつきます。 基板上の部品配置はわりとゆったり。位置の微調整とフットプリントが現物と合っているかはこれから確認してい…

構成見直し

T805のデータバス幅は32ビット、アドレス空間は32ビットでCPUからは全ビットマルチプレクスされて出力されています。そのためアドレスラッチも32ビット、8ビットラッチ74HC573だったら4個必要と考えて設計しましたが、実際に配置できるメモリはごくわずかで2…

結線開始

回路図上のネット接続を始めました。バスラインはコピペでチャッチャッとできるのでCPU~アドレスラッチ/データバッファ~ROM/RAMあたりを一気に入力、ボード図でラッツネストを表示させたところです。 これがほぼ配線の主体になりますがラッチ、バッファま…

部品配置

NSC800ボードがある程度見込みついたので、放置していたT805トランスピュータボードの設計を少し進めています。 回路図に主要部品を結線なしでばらまいてボード図上で適当に仮配置してみました。 100mm×100mmに納めるのは早々にあきらめて100mm×150mmコース…

シンボル作成

KICADで使うシンボルとフットプリントを作成しました。アドレス、データバスが32本もあるので結構たいへん。 ピン番号も連番でなくグリッドのX-Y座標表記なので連続入力できないし最後にデザインチェックもできないので慎重に進めました

アセンブル結果

出力されたリスティングファイルを見ていきます。 まずトランスピュータはROMブートする場合、最上位アドレス:0x7FFFFFFE番地から実行を開始するとあります。ですがここはアドレス終端まで2バイトしかありませんから置けるのはジャンプ命令、しかも2バイト…

アセンブル実行

理由はよくわかりませんが、これでアセンブラTmasm.Exeは起動できるようになりました。ヘルプオプションで簡単なusageが表示されます。 サンプルソースコードが付属していたのでこれを参考にしながらテストソースを作成しました。 主にブートストラップから…

アセンブラ入手

CPUボードの開発でネックになるのがアセンブラやコンパイラで、特にマイナーなCPUではハンドアセンブルから始めざるを得ないとか苦労するところです トランスピュータの並列処理を最大限に生かすOCCAMという言語があるらしいのですが、さすがにPC環境で動作…

メモリマップ変更

メモリマップは仮置きしていましたが、イメージが大きすぎるということとI/O領域はさらに細分化しなければならないだろうと思い、デコードに使うアドレス線を増やしておきます。当初はA31-A28の4ビットでしたがこれをA31-A24の8ビットとし1ブロックの大きさ…

ピン接続先

トランスピュータのピン機能がなんとなくわかってきたので接続先を整理しました。緑網掛けは明確で確定。黄色網掛けはいまいち不安が残るのと内部信号生成のためにCPLDに引き込んでおく予定。ピンクは将来的にリンク接続するためにコネクタに引き出しておき…

浮動小数点コード拡張

コードの拡張方法として、もう一種類のやり方があります。浮動小数点演算の一部の命令ですがOPコードをAレジスタに格納してFPENTRY(浮動小数点入力命令:OPコード#AB)で実行するというセレクターシーケンスといわれるやり方です。さらにFPENTRY自体も1バイ…

コード拡張

それでは命令のほうはどう拡張しているのか、ですがこれはOPR(オペレーション命令:機能コード#F)が使われます。例えばスタックから2個データをポップして加算、スタックにプッシュするADD命令(OP.コードが#05。機能コードとは違う)はOPR命令のデータ部…

データ拡張

まず内部のレジスタ構成ですが32ビット長のものが6本あり、このうちA、B、Cレジスタはスタック構造をとっています スタックトップにあるAレジスタに即値をロードするLDC命令を例にするとデータが4ビットで表現できる0~15(例えば#3)であれば、これは単純に…

命令セット

広大なメモリ空間を持つトランスピュータですがどのような命令セット、アドレッシングモードがあるのか非常に興味深いところです。そこでマニュアルを読み進めると意外にも命令コードは8ビット長固定のものしかありません。上位4ビットで機能コード、下位4ビ…

メモリマップ

ローカルメモリの配置を検討しました。メモリ空間はリニア32ビットで4Gbyteありますがトランスピュータのアドレス表現は独特で32ビットを符号付きと見るようなので0番地を中心に-21憶~+21憶の範囲に広がります。ここに載る実メモリはごくわずかですが1Mビッ…

ピン機能

マニュアルにあるピン機能の解説を見ながら接続先を考えていました。緑の網掛は機能がはっきり理解でき、接続先が決まったもの。白地の部分は未解決のピンで、使うことは明確だがどう処理すればいいかわからないもの、未使用かもしれないがVCC/GNDに接続する…

ICピン配置

トランスピュータ関連の資料をネットから探してきてぼちぼち読み始めています。並列処理のアーキテクチャは難解ですがプログラミングモデルやインストラクションセットもかなり変わっていてそれはおいおい読み解いていくつもりです ハードウェア面ではあまり…

システム構想

トランスピュータはシェアとしてはメジャーにはなりませんでしたが情報はネットから潤沢に得られます。惑星探査機にも採用例があるようで信頼性はあったみたいです。 このCPUを動かしてみるにあたりアプリケーションノートに基本的な接続例がありました。リ…

新プロジェクト

ちょっとかわったCPUを手に入れました。英INMOS社のトランスピュータです トランスピュータというのはCPUに専用の高速通信回線(リンク)をもたせ周囲のトランスピュータと連携して並列処理を行わせるというアーキテクチャで、4組のリンクを内蔵しています。…