BBC マイクロコンピュータ システムにおいて、チューブは、 BBC マイクロが2 番目のプロセッサまたはコプロセッサと通信できるようにする拡張インターフェイスおよびアーキテクチャです。
Tube アーキテクチャでは、コプロセッサがユーザーに代わってアプリケーション ソフトウェアを実行し、Micro (ホストとして動作) が画面表示、キーボード、ストレージ デバイス管理などのすべてのI/O機能を提供します。コプロセッサ ユニットは、ディスク インターフェイス (必要なホスト ソフトウェアが ROM に含まれている) を備えた任意の BBC Micro にコールドプラグ接続して、すぐに使用できます。
実装
40 ピン IDC「チューブ」コネクタは、8 つのデータ ライン、7 つのアドレス ライン、および割り込み入力を備えた、ホスト プロセッサのメイン バスへのシンプルなスレーブ接続です。チューブ プロトコルは、接続されたデバイスのハードウェアによって実装されます。

コプロセッサ ユニット内部では、専用チップ ( Tube ULA、当初Ferranti社が製造) がインターフェイスし、ホスト バスとコプロセッサバスを論理的に分離します。これにより、Tube はコプロセッサ ユニット内で完全に異なるバス アーキテクチャで動作できます。必要なその他のアクティブ コンポーネントは、マイクロプロセッサ、RAM、プロセッサ固有のクライアント コードを含む小さなROM、アドレス デコーダなどのグルー ロジック、および電源です。
2 つのプロセッサは、Tube ULA 内の4 組のFIFOバッファを介して通信します。コンソール入力/出力、エラー メッセージ、データ転送、およびシステム コールには、それぞれ方向ごとに 1 組のバッファがあります。キューの容量は、専用バッファ機能に応じて 1 ~ 24 バイトの範囲で変化します。各バッファには、状態を監視し、割り込みの発生を構成するための制御レジスタとステータス レジスタがあります。
これらのバッファを使用するプロトコルは、Acorn Computers [1]によって厳密に規定され、メッセージ パッシングによるプロセス間通信に相当します。ほとんどのやり取りは非同期ですが、高速ブロック転送は同期されており、ホストが単純なフェッチ ストア ループを盲目的に実行することで転送速度が定義されます。コプロセッサはダミー バイトを渡すことによって同期され、関連するバッファ セマフォによって制御されます。
Tube コネクタは汎用性があるため、原理的にはあらゆるタイプの高速周辺機器に使用できますが、Acorn では Tube コプロセッサにのみ使用しています。BBC Micro/Master シリーズでは、アドレス範囲 &60~&7F に 5 つのアドレス ラインが用意されていますが、Tube プロトコルでは最下位 3 ビットが使用されます。BBC Master または Universal Second Processor Unit にあるように、これらの 3 つのアドレス ラインのみが内部 Tube ソケットに接続されます。
アプリケーション
Tube用に多数のコプロセッサが開発された。最もよく見られたのが、 MOS Technology 6502プロセッサを搭載した6502セカンドプロセッサで、これにより、すべてのI/OにAPIを使用する限り、変更されていないBBC Microプログラムをより高速かつより多くのメモリで実行できた。 [1] [2] Z80セカンドプロセッサは、CP/Mを実行するZilog Z80プロセッサを搭載し、32016セカンドプロセッサは、 Panosを実行するNational Semiconductor 32016プロセッサを搭載していた。
これらのコプロセッサは、 Acorn Business Computerシリーズの基礎を形成し、よりハイエンドのマシンは、Tube 経由でコプロセッサが接続された BBC Micros を再パッケージ化したものです。Master シリーズは 2 つの Tube 接続をサポートしており、ケース内にコプロセッサを 1 つ取り付け、外部にもう 1 つ接続することができますが、電源が入ったセッションでは 1 つしか使用できません。内部に 6502 プロセッサを取り付けることも、DOS互換性のためにIntel 80186ベースのシステムを取り付けることもできます(ただし、実際には制限があります)。[3]
Tube は、 ARMプロセッサの初期開発時にも使用されました。I/O 操作のホスト システムとして再び BBC Micro を使用する評価ボードが開発されました。
Tubeアドオンを出荷する前に、AcornはBBC Microのプログラマーがシステムメモリやハードウェアに直接アクセスすることを強く控えるよう推奨し、公式API呼び出しを推奨していた。[4]これは、Tube 6502コプロセッサから直接アクセスすることは不可能であるため、アプリケーションをシームレスにTube 6502コプロセッサに移行できるようにするためであった。プログラムがMOSエントリポイントの1つを呼び出すと、コプロセッサのROM内の置換サブルーチンが対応するメッセージをホストに渡し、ホストが操作を実行して結果を返す。このようにして、アプリケーションはホストでもコプロセッサでも同じように実行できる。他のCPUモデルはカスタムAPIを使用するが、これは通常、6502 APIをネイティブ形式に直交変換したものである。
参考文献
- ^ ab Acorn アプリケーション ノート 004、「チューブ アプリケーション ノート」
- ^ ソフトウェアがセカンドプロセッサで高速に実行される理由としてよく挙げられるのは、グラフィックス描画計算などの I/O タスクをホストプロセッサにオフロードできることですが、それよりはるかに重要な考慮事項はクロック速度です。ホストプロセッサは、VDU リフレッシュが RAM にアクセスするための時間を確保するために 2 MHz に制限されていますが、コプロセッサは 3 MHz で実行でき、はるかに単純な DRAM リフレッシュにより 68 kHz で停止します。6502セカンドプロセッササービスマニュアル(PDF)。Acorn Computers。1984 年 5 月。pp. 7、19。2023年6 月 11 日に取得– Chris's Acorns 経由。
- ^ BBCマスターシリーズ上級リファレンスマニュアル。Watford Electronics。1988年。
- ^ コル、ジョン(1982) [1982]。アレン、デイビッド(編)。BBC マイクロコンピュータ ユーザー ガイド( zip 形式 RTF)。ロンドン: 英国放送協会。pp. 443、450、473。ISBN 0-563-16558-8. 2010年1月25日閲覧。
