説明

スマート・バス制御ユニット

【目的】 入出力制御機能を実現する新たな改良されたスマート・バス制御ユニットを提供する。
【構成】 本発明は2つのデータ処理システムの関係において使用される。第1のデータ処理システム107はマイクロチャネル・アーキテクチャ及びマイクロチャネル・バスを使用する。1個或いは複数のマイクロチャネル入出力アダプタ128がマイクロチャネル・バスに接続され、入出力装置130、131、132をマイクロチャネル・バスに接続する。第2のデータ処理システム101は、マイクロチャネル・システムと非互換なアーキテクチャを有するバスを含む。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にデータ処理システム・アーキテクチャに関し、特に第1のデータ・プロセッサの入出力バスを第2のデータ・プロセッサの入出力バスに対し、データが両方のプロセッサ間で双方向に転送されるように結合するプログラマブル入出力バス・アダプタに関する。本発明は2つのデータ・プロセッサが2種類の実質的に異なるコンピュータ・アーキテクチャにより構成される状況に適用される。
【0002】
【従来の技術】パーソナル・コンピュータが実業界及び自然科学分野において受入れられるにつれて、データ処理システム間の連結性ニーズが増大しつつある。しかしながら、現存のデータ処理システムは、複数のコンピュータ・アーキテクチャのいずれかに従い編成されている。これらのコンピュータ・アーキテクチャは、しばしば相互に非互換であり、こうした2つの非互換のシステム間の直接接続は意味のある結果を生まない。従って、非互換のアーキテクチャを有する2つのデータ・プロセッサ間のインタフェースを提供する目的で、様々な従来システムが開発されてきた。
【0003】2つのデータ・プロセッサ間のインタフェースを提供するために一般的に使用される1つの技術は、一方のプロセッサから他方のプロセッサへのデータのフローをバッファリングするバッファ記憶機構を使用する。バッファ記憶機構は双方向データ・フローを提供する。一方のプロセッサから他方のプロセッサへのデータ・ブロック転送が望まれる場合、ブロックはまず第1のプロセッサからバッファ記憶機構に転送される。次に、データ・ブロックがバッファ記憶機構から第2のデータ・プロセッサに読出される。ここで到来する全てのデータは、バッファが読出される以前にバッファ記憶機構内に存在しなければならないため、前述の2つのデータ転送は同時には発生しない。これらの従来のバッファリング技術は、しばしば"蓄積交換(store and forward)"或いは"メールボックス(mailbox)"と呼ばれる。
【0004】別の従来システムは、第1のアーキテクチャを有するマスタ・コンピュータ・システムと第2のアーキテクチャを有するスレーブ要素との間のデータ転送装置を提供する。こうしたシステムはBergerらによる米国特許第5043877号 "Architecture Converter for Slave Elements"(1991年8月27日出願)に開示されており、本発明においても参照される。この装置は、第1のアーキテクチャに対応する信号を、第2のアーキテクチャに対応する信号に変換する変換回路を含む。この変換回路はまた、第2のアーキテクチャに対応する信号を、第1のアーキテクチャに対応する信号に変換する機能も有している。
【0005】上記Bergerによるシステムは、拡張工業標準アーキテクチャ(EISA:Extended Industry Standard Architecture )バスを使用するマスタ・コンピュータ・システムを使用して設計される。スレーブ要素は、IBMから提供されるマイクロチャネルとして知られるアーキテクチャを使用する。マイクロチャネルはIBMの登録商標である。マイクロチャネル・コンピュータは、EISAタイプのバス・アーキテクチャとは直接的に互換性のない32ビットのデータ転送形式を提供する。
【0006】EISA/マイクロチャネル変換システムは、一般的には満足するものであるが、装置がEISA及びマイクロチャネル・アーキテクチャにもとづき動作するように設計される。更に、このシステムは第1のアーキテクチャのマスタ要素と、第2のアーキテクチャのスレーブ要素を使用することが望まれる状況に適用される。マスタ/スレーブ・システム・トポロジは、EISA/マイクロチャネル以外のアーキテクチャの組合わせにおいては、最適なオペレーション効率を提供しない。
【0007】別の従来システムは、周辺装置をマイクロチャネル・タイプ・アーキテクチャ・バス・システムに接続することを促進するように設計される集積回路チップを提供する。このシステムはPlevaらによる米国特許第4991085号"PersonalComputer Bus Interface Chip with Multi-Function Address RelocationPins" (1991年2月5日出願)に開示されている。全ての機能に共通のマイクロチャネル信号及びプロトコル信号が、単一のインタフェース・チップ上に含まれるように、集積回路が区分化されたインタフェースを提供する。
【0008】マイクロチャネル・システムは、IBM ATシステム・アーキテクチャなどの他のタイプのシステム上で使用される非コード化メモリ入出力信号とは異なり、コード化サイクル・コマンドを使用する。IBM ATシステム・アーキテクチャは、パーソナル・コンピュータの広範に使用可能なクラスにおける業界標準に発展した。パーソナル・コンピュータに関わる多くの基本的な周辺装置が、非コード化コマンド信号を要求する。これらの装置をマイクロチャネル・タイプのバスに接続するために、周辺装置により使用され認識されるコマンドを提供するための、バス・ステータス信号をデコードする論理が提供されなければならない。
【0009】集積回路チップは単純な周辺装置をマイクロチャネル・バスに接続するための有用なインタフェースを提供するが、チップは完全に異なるシステム・アーキテクチャを有する2つの完全に集積化されたデータ処理システムを接続することが望まれるシステム・アプリケーションに対応して設計されていない。こうしたアプリケーションはこの集積回路チップの機能を超越する。
【0010】周辺装置及びホスト・コンピュータ用に設計される別の従来システムの例が、Estrada らによる米国特許第4855905号(1989年8月8日出願)に述べられている。Estrada による装置は、記憶プログラム命令のシーケンスを実行するデータ処理要素を含む入出力制御装置である。記憶プログラム命令は、特定の入出力装置とホスト・コンピュータとの間のデータ転送を制御する。しかしながら、上記Pleva特許に関連して前述された時と類似の理由により、Estradaによる装置は、異なるバス・アーキテクチャを使用する2つの完全に集積化されたデータ処理システムを接続することが望まれる状況には適応しない。
【0011】2つの異なるデータ処理システムを相互接続するための1つの技術が、Anthony、Jr.らによる米国特許第4709328号"Composite DataProcessing System Using Multiple Standalone Processing System"(1987年11月24日出願)に述べられている。このAnthony のシステムでは、各個々のデータ処理システムのアドレス空間内の共用デュアル・ポート・メモリ領域を使用することにより、データ処理システムを単一の複合システムに相互接続する。各データ処理システムが他のシステムを制御可能なように、仮想チャネルが割込み生成用に使用される。各データ処理システムはスタンドアロン・プログラムを実行する機能を有する。
【0012】上記Anthony による装置は、ホスト・プロセッサに結合されるチャネル・バスを含む。チャネル・バスは、入出力データ及びコマンドをホスト・プロセッサと入出力ハードウェア・アダプタにより制御される複数の入出力装置との間で転送するために、複数の入出力ハードウェア・アダプタに接続されるように適応される。仮想チャネル・アダプタはホスト・プロセッサからチャネル活動化信号を受信し、チャネル活動化信号に応答して制御信号を生成する。
【0013】上記Anthony による装置の目的は、比較的複雑な事務用タイプのホスト・コンピュータ・システムを、基本パーソナル・コンピュータ補助システムに接続するための技術を提供する。こうしたパーソナル・コンピュータ・システムは、しばしば、PC、XT、及びATシステムとして一般に知られる3つの比較的単純な入出力バス構造の1つを使用する。このようにパーソナル・コンピュータは、ホスト・コンピュータのための複数の機能を実行するために使用可能である。しかしながら、上記Anthony によるシステムは、比較的複雑な非同期のバス構成を使用するマイクロチャネル・システムに関連しては、好適には適応しない。
【0014】マイクロチャネル・システムは重要な性能的利点を提供し、従来のPC、AT、及びXTシステムに比較した場合、特に特定のタイプのシステム・アプリケーションに好適である。マイクロチャネル環境などの比較的複雑なアーキテクチャに適応可能であり、2つの異なるデータ処理システムを相互接続するための技術が望まれる。
【0015】現存のマイクロチャネル処理システムは、命令を実行するプレーナ・プロセッサをメモリ装置と一緒に含む。マイクロチャネル通信リンクは、プレーナ・プロセッサと、SCSIバス或いはローカル・エリア・ネットワーク・ポートなどの1個或いは複数の通信ポートとの間のインタフェースを提供する。1個或いは複数のマイクロチャネル入出力アダプタは、マイクロチャネル通信リンクと関連して使用される。
【0016】マイクロチャネル環境に適用可能な現存の技術は、最適な効率及び速度を提供しない。これは多くのタスクが、マイクロチャネル・プレーナ・プロセッサに委託されていることによる。これらのタスクには、IBM System S/390の入出力チャネル及び制御ユニット・エミュレーションが含まれる。プレーナ・プロセッサによるこれらのタスクの実行は、マイクロチャネル・システム性能を大幅に低下させる。
【0017】
【発明が解決しようとする課題】従って、プロセッサ間のインタフェースを提供する改良されたシステムが必要とされる。このインタフェースは2つのプロセッサ間において、現存のシステム・トポロジに比較して、より高速なデータ転送レートを提供しなければならない。また、多重、並行、独立なプロセッサ間オペレーションを可能とする改良されたインタフェース機構が望まれる。このインタフェースは、マイクロチャネルのプレーナ・プロセッサがより効率的に使用されるように、チャネル及び制御ユニットをエミュレートする機能を含まねばならない。
【0018】
【課題を解決するための手段】本発明によれば、入出力制御機能を実施する新たな改良されたスマート・バス制御ユニットが提供される。本発明は2つのデータ処理システムの関係において使用される。第1のデータ処理システムは、マイクロチャネル・アーキテクチャ及びマイクロチャネル・バスを使用する。入出力装置をマイクロチャネル・バスに接続するために、1個或いは複数のマイクロチャネル入出力アダプタがマイクロチャネル・バスに接続される。第2のデータ処理システムは、マイクロチャネル・システムと非互換のアーキテクチャを有するバスを含む。
【0019】本発明のスマート・バス制御ユニットは、第1のデータ処理システムを第2のデータ処理システムにインタフェースするためのインタフェース手段を含む。このインタフェース手段は、マイクロチャネル・バスを第2のデータ処理システムのバスに接続する。また、スマート・バス制御ユニットが1個或いは複数のマイクロチャネル入出力アダプタを直接アクセスすることを可能とする、アクセス手段が提供される。このアクセス手段は、複数のマイクロチャネル入出力アダプタ・コンポーネントに直接アクセスすることのできるマイクロプロセッサを含む。このように、マイクロチャネル・アーキテクチャを使用するデータ処理システムが、他のタイプのデータ処理システムと共に使用される。こうした他のタイプのシステムには、IBM System/390などが含まれる。
【0020】本発明の実施例では、スマート・バス制御ユニットが、少なくとも1個の入出力アダプタを含むマイクロチャネル・バスのオペレーションを制御する制御手段を含む。この制御手段は、アクセス手段に含まれるマイクロプロセッサ装置により実行されるマイクロコード命令を含む。マイクロコード命令は、入出力アダプタ或いはマイクロチャネル・バスに関する、少なくとも1つの入出力機能を提供する。マイクロコードは、スマート・バス制御ユニットに1個または複数のチャネル機能を独立に実行させることにより、独立型のバス制御ユニット・オペレーションを提供する。このようにアダプタ・アクセス手段は、複数の入出力アダプタ間で効率的なデータ転送を提供する。
【0021】本発明の別の実施例では、RISCタイプのマイクロプロセッサ装置を使用する。単一の専用の制御カードがマイクロチャネル入出力アダプタとして使用される。こうした制御カードは、マイクロチャネル・プレーナ・データ・プロセッサに対して、追加設置される入出力アダプタをサポートする能力を提供する。これらの入出力アダプタは、マイクロチャネル・システムなどの第1のデータ処理システム107の入出力バス機能をオペレートする手段を含む。アクセス手段は、マイクロチャネル・バス・マスタ・アクセス装置及び以前に構築されたサブシステム制御ブロック(以降では"SCB(Subsystem Control Block)" と呼ぶ)プロトコルを使用して動作する。スマート・バス制御ユニットはマイクロチャネルSCBアーキテクチャをサポートして、アダプタ間におけるピア・ツー・ピア(peer-to-peer)通信を可能とする。
【0022】バス・マスタ・アクセス装置或いはインタフェース手段は、カスタム集積回路チップ・セットを含んでもよい。本発明はまた、ESAアドレス指定モードをサポートするアドレス指定手段を含む。32ビットのデータ・ストリームが提供される場合、最大40メガバイト/秒のデータ転送レートがマイクロチャネル上において可能となる。
【0023】
【実施例】図1は本発明のスマート・バス制御ユニット112の動作環境を表すハードウェア・ブロック図である。スマート・バス制御ユニット112は、第1のデータ処理システム107と第2のデータ処理システム101との間のインタフェースとして機能する。第1のデータ処理システム107はマイクロチャネル・アーキテクチャを使用し、マイクロチャネル103及びマイクロチャネル105を含む。マイクロチャネル・システムの基本動作は、当業者にはよく知られている。マイクロチャネルはIBMの登録商標である。第2のデータ処理システム101は、マイクロチャネル・プロトコルと非互換なアーキテクチャを使用する。
【0024】第1のデータ処理システム107の各マイクロチャネル103、105は、マイクロチャネル・バスを含む。例えばマイクロチャネル103はマイクロチャネル・バス#1(参照番号118)を使用し、マイクロチャネル105はマイクロチャネル・バス#2(参照番号120)を使用する。各マイクロチャネル・バス118、120は、プレーナ・プロセッサ122及び1個または複数の入出力アダプタ128に接続される。プレーナ・プロセッサ122はメモリ126で示される電子メモリを提供される。各入出力アダプタ128は入出力装置130、131、132を接続するように設計される。
【0025】第2のデータ処理システム101は中央処理ユニット(CPU)102、及びメモリ・ユニット104を含む。CPU102は入出力バス#1(参照番号106)、入出力バス#2(参照番号108)及び入出力バス#3(参照番号110)などで示される1個または複数の入出力バスに接続される。入出力バス#1、#2及び#3(それぞれ106、108及び110)は、マイクロチャネル・アーキテクチャと物理的及び論理的に非互換なプロトコルを使用する。
【0026】本発明の実施例では、第2のデータ処理システム101はIBM S/390システムであり、入出力バス#1、#2及び#3は、S/390システムのオペレーションに一致して体系化される情報を伝達する。IBM S/390システムの基本的な全てのオペレーションが、当業者には一般に知られている。
【0027】本発明のスマート・バス制御ユニット112(図1)は、第1及び第2のデータ処理システム107、101間における通信を可能とする。IBM S/390 入出力バス#1(106)、#2(108)または#3(110)と、マイクロチャネル・バス118または120との間の直接接続は可能ではない。これはS/390バスが、マイクロチャネル・バスと異なるライン数を有することによる。更にIBM S/390システムは、アドレス情報、転送長及びデータを受渡す選択サイクル及びデータ・サイクルの概念に従う。従って、一方のデータ処理システム(すなわち第1のデータ処理システム107)から他方のデータ処理システム(すなわち第2のデータ処理システム101)へデータを転送する以前に、データを再フォーマット或いは再編成することが必要となる。
【0028】マイクロチャネル103、105入出力技術の最近の発展により、IBM S/390システム101とマイクロチャネル103、105システムとをインタフェースするために、スマート・バス制御ユニット112を使用することは、特に有利である。マイクロチャネル103、105をIBM S/390データ処理システム101に結合することにより、比較的コンパクトで低コストな集積データ処理システムが提供される。スマート・バス制御ユニット112は、IBMS/390コンピュータの現在体系化されている全てのアドレス指定モードをサポートする一方で、S/390入出力命令の処理を可能とする。
【0029】スマート・バス制御ユニット112は、マイクロチャネル103或いはマイクロチャネル105などの第1のデータ処理システム107と、第2のデータ処理システム101とをインタフェースするためのインタフェース手段を含む。各スマートバス制御ユニット112は、入出力バス#1(106)、入出力バス#2(108)、或いは入出力バス#3(110)などの入出力バスに接続される。各スマートバス制御ユニット112は、マイクロチャネル・バス#1(参照番号118)或いはマイクロチャネル・バス#2(参照番号120)などのマイクロチャネル・バスを介して、マイクロチャネル103、105とインタフェースする。入出力バス#1(106)、入出力バス#2(108)、入出力バス#3(110)、マイクロチャネル・バス#1(参照番号118)及びマイクロチャネル・バス#2(参照番号120)の各々は、アドレス情報、制御情報、及びデータを転送するための複数のラインを含む。
【0030】スマート・バス制御ユニット112は、マイクロチャネル118を介して1個または複数のマイクロチャネル入出力アダプタ128をアクセスするためのアクセス手段を含む。このアクセス手段は、複数のマイクロチャネル入出力アダプタ128コンポーネントを直接アクセス可能なマイクロプロセッサを含む。このように、マイクロチャネル103或いは105などのマイクロチャネル・アーキテクチャを使用するデータ処理システムが、IBM S/390などの他のタイプのデータ処理システムと共に使用される。
【0031】スマート・バス制御ユニット112は、少なくとも1個の入出力アダプタ128及びマイクロチャネル・バス118または120を制御する制御手段を含む。この制御手段は、アクセス手段に含まれるマイクロプロセッサ206装置により実行されるマイクロコード命令を含む。マイクロコード命令は、入出力アダプタ128或いはマイクロチャネル・バス118または120の少なくとも1個の入出力機能の性能を提供する。
【0032】マイクロコードは、スマート・バス制御ユニット112が1個または複数のチャネル機能を独立に実行することを可能とすることにより、独立型のバス制御ユニット112オペレーションを提供する。全てのIBM S/390チャネル機能は、スマート・バス制御ユニット112に関連して実行されるマイクロコードにより達成される。独立で並行なプレーナ・プロセッサ122オペレーションが可能となり、マイクロチャネル103、105のトラフィックを最小化し、マイクロチャネル103、105が比較的高効率に動作する。マイクロコードは1つの共通のハードウェア・プラットフォーム上で構成され、マイクロコードにより実行される機能は、スマート・バス制御ユニット112とプレーナ・プロセッサ122との間に割当てられる。マイクロコードは比較的柔軟であり、今後開発される予定のIBM S/390制御ユニットの他のタイプのエミュレーションを可能とする。このように、アダプタ・アクセス手段は複数の入出力アダプタ128間における効率的なデータ転送を提供する。
【0033】本発明の別の実施例は、RISCタイプのマイクロプロセッサ装置を使用する。スマート・バス制御ユニット112は、単一の専用の制御カード上に製作される。こうした制御カードの使用は、マイクロチャネル・プレーナ・データ・プロセッサ122に、複数の入出力アダプタ128の設置をサポートする能力を提供する。スマート・バス制御ユニット112は、例えばIBM S/390などのデータ処理システムの入出力バス106、108、110機能をエミュレートするエミュレーション手段を含む。スマート・バス制御ユニット112のアクセス手段は、マイクロチャネル・バス・マスタ・アクセス装置と、以前に体系化されているサブシステム制御ブロック(以降"SCB"と呼ぶ)プロトコルを使用して動作する。スマート・バス制御ユニット112はマイクロチャネルSCBアーキテクチャをサポートすることにより、入出力アダプタ128間、或いは同一のマイクロチャネル103、105上に存在する他のスマート・バス制御ユニット112間におけるピア・ツー・ピア通信を可能とする。
【0034】バス・マスタ・アクセス装置或いはインタフェース手段は、カスタム集積回路チップ・セットを含む。本発明はまたIBM S/390 ESAアドレス指定モードをサポートするアドレス指定手段を含む。32ビットのデータ・ストリームが提供され、最大40メガバイト/秒のデータ転送レートがマイクロチャネル上で可能となる。
【0035】図2は図1のスマート・バス制御ユニット112のハードウェア・ブロック図である。スマート・バス制御ユニット112は第1のバス・インタフェース202、第2のバス・インタフェース204、マイクロプロセッサ206、及びメモリ208を含む。
【0036】本発明の実施例では、第1のデータ処理システム107、バス・インタフェース202は、インテル社のマイクロチャネル・バス・マスタ・チップ・セット(部品番号82325)を使用して実施される。第2のバス・インタフェース204はIBM S/390システムとインタフェースするように設計される。マイクロプロセッサ206は、インテルI80960CAマイクロプロセッサ集積回路などのRISCプロセッサである。メモリ208はEPROMメモリ210、フラッシュ・メモリ212、ダイナミック・ランダム・アクセス・メモリ(DRAM)214、及びスタティック・ランダム・アクセス・メモリ(SRAM)216を含む。
【0037】第1のバス・インタフェース202は64バイト容量のローカル・レジスタ245、及びデータ転送用のDMAチャネル(DMAC)247を含む。DMAC247は32ビットのシステム・アドレス・レジスタ(CSAR)249、24ビットのバイト・カウント・レジスタ(CBCR)251、24ビットのローカル・アドレス・レジスタ(CLAR)253、24ビットのリンク式リスト・ポインタ(CLLP)255、8ビット制御レジスタ(CCR)257、8ビット・ステータス・レジスタ(CSR)259、及び割込みマスク・レジスタ(IMR)261を含む。第1のバス・インタフェース202はまたDMAP機能901を含む。DMAP機能901はシステム・アドレス・レジスタ(PSAR)903、データ・レジスタ(DATA)905、制御レジスタ(PCR)907、及びステータス・レジスタ(PSR)909を含む。DMAC247機能及びDMAP901機能の目的は、図6乃至図14に関連して詳細に述べられる。
【0038】第2のバス・インタフェース204は、第2のデータ処理システム101とマイクロチャネル103、105(図1)との間における全てのS/390メッセージ及びデータ転送のための移送機構を提供する。第2のバス・インタフェース204は、2個の内部64バイト・ピンポン・バッファ241、243、及び高優先DMAポート301を含む。全てのメッセージ及びデータ転送は、スマート・バス制御ユニット112により実行される。第2のデータ処理システム101からのデータ転送は、スマート・バス制御ユニットのDRAM214またはSRAM216(図2)に向けられる。これらのデータ転送は、別のスマート・バス制御ユニット112、入出力アダプタ128、或いはプレーナ・メモリ126などの別のマイクロチャネル103、105装置(図1)への、またはそれらからの直接転送のために、第1のバス・インタフェース202へ直接経路指定されても良い。第2のバス・インタフェース204は、現在体系化されている全てのS/390、EA、及びESAアドレス指定モードに対応して構成可能である。
【0039】図2を参照すると、スマート・バス制御ユニット112は、データをマイクロチャネル・バス#1(参照番号118)、S/390入出力バス#1(参照番号106)、マイクロプロセッサ206、及びメモリ208との間で転送するための複数のバスを使用する。例えば、マイクロプロセッサ206は第1のバス・インタフェース202及び第2のバス・インタフェース204に対し、第1の32ビット・バス(参照番号222)、第1のトランシーバ224、第2の32ビット・バス(参照番号226)、第2のトランシーバ228、及び16ビット・バス(参照番号230)を介して接続される。第1及び第2のデータ処理システム・バス、インタフェース202、204は、16ビット・バス(参照番号230)を介して一緒に接続される。
【0040】マイクロプロセッサ206から第2のバス・インタフェース204に至る第2のパス234は、第2のレシーバ228を通過することなく、第2の32ビット・バス(参照番号226)から第2のバス・インタフェース204へ直接通じる。マイクロプロセッサ206は、第1の32ビット・バス(参照番号222)及び8ビット・バス(参照番号232)を介して、フラッシュ・メモリ212及びEPROMメモリ210をアクセスする。DRAM214及びSRAM216は、第2の32ビット・バス(参照番号226)を介してアクセスされる。
【0041】S/390入出力バス#1(参照番号106)はIBM S/390データ処理システムなどの第2のデータ処理システム101(図1)と、第2のバス・インタフェース204(図2)との間の物理接続を提供する。本発明は、第2のデータ処理システム101と第2のバス・インタフェース204との間で、双方向にメッセージまたはデータを独立に受渡す機能を含む。更に第2のバス・インタフェース204には、エラー情報を記憶し、第2のデータ処理システム101へ転送する機能、及び第2のデータ処理システム101によりセットされる汎用バス制御のための機能が含まれる。
【0042】メッセージまたはブロック・データ転送の発信元及び宛先は、転送の方向により一般に示される。ダウン・オペレーションは、第2のデータ処理システム101から第2のバス・インタフェース204への転送を差す。ダウン・メッセージは、第2のデータ処理システム101により生成されて、第2のバス・インタフェース204内のローカル記憶内にフェッチされるメッセージとして定義される。アップ・メッセージは、第2のバス・インタフェース204から第2のデータ処理システム101へ転送されるメッセージを示す。アップ方向のデータ・ブロック転送は、第2のデータ処理システム101に方向付けされる。ダウン方向のデータ・ブロック転送は、第2のデータ処理システム101から第2のバス・インタフェース204に方向付けされる。
【0043】S/390入出力バス#1(参照番号106)は次の機能を可能とする。(1)ダウン・メッセージを第2のデータ処理システム101(図1)のメモリ・ユニット104から、第2のバス・インタフェース204の内部ダウン・メッセージ配列に送信する。(2)第2のバス・インタフェース204から第2のデータ処理システム101(図1)内の内部キューに向かうアップ・メッセージを受信する。(3)第2のデータ処理システムのメモリ・ユニット104(図1)から第2のバス・インタフェース204の内部ピンポン配列241、243(図2)へ、フェッチ・オペレーションを実行する。(4)メモリ・ユニット104(図1)及び第2のバス・インタフェース204の内部ピンポン配列241、243へのデータ転送を記憶する。(5)第2のデータ処理システム101(図1)へセンス情報を送信する。及び(6)第2のデータ処理システム101から制御情報を送信する。
【0044】第1の32ビット・バス(参照番号222)、第1のトランシーバ224、第2の32ビット・バス(参照番号226)、第2のトランシーバ228、16ビット・バス(参照番号230)、第2のパス234、及び8ビット・バス(参照番号232)は、共にローカル・プロセッサ・バスを構成する。ローカル・プロセッサ・バスは、マイクロプロセッサ206及び第1のバス・インタフェース202がマスタとして機能するように動作する。メモリ208及び第2のバス・インタフェース204はスレーブ装置として機能する。
【0045】マイクロプロセッサ206はローカル・プロセッサ・バスを介してDRAM214をアクセスし、機能的及び診断的マイクロコード・オペレーションを実行する。マイクロプロセッサ206はまた、ローカル・プロセッサ・バスを介して、フラッシュ・メモリ212及びEPROM210をアクセスする。第2のバス・インタフェース204の内部ピンポン・バッファ241、243はローカル・プロセッサ・バスを介して、マイクロプロセッサ206によりアクセスされる。ローカル・プロセッサ・バスはまた、マイクロプロセッサ206に対し、第1のバス・インタフェース202のローカル・レジスタ245へのアクセスを提供する。マイクロチャネル・バス#1(118)によるDRAM214のアクセスは、ローカル・プロセッサ・バスを介して発生する。第1のバス・インタフェース202はローカル・プロセッサ・バスを介して、リンク・リストをフェッチする。16ビット・バス230は、第2のバス・インタフェース204の内部ピンポン・バッファ241、243とマイクロチャネル・バス#1(118)との間の入出力データ転送用に使用される。従って、この16ビット・バス230はバイパス・バスと呼ばれる。
【0046】第1のバス・インタフェース202は、マイクロチャネル・バス#1(118)と物理的にインタフェースする。このバス・インタフェース202は、マイクロチャネル・バス#1(118)上で使用される信号バス及びデータ・バスの各々に対応する機能を提供する。様々なデータ・オペレーションがマイクロチャネル・バス#1(118)上で発生する。これらには、初期システム・セットアップの間における、第2のバス・インタフェース204のレジスタへのアクセスなどが含まれる。マイクロチャネル・バス#1(118)はマスタ及びスレーブの両方のオペレーションを実行することができる。例えば、マスタ・オペレーションは第1のバス・インタフェース202により開始される。スレーブ・オペレーションは、DRAM214及びSRAM216をアクセスするために、プレーナ・プロセッサ122または別のマイクロチャネル103、105を使用して実行される。
【0047】スマート・バス制御ユニット112(図1R>1)は、記憶オペレーションまたはメッセージ・オペレーションを実行するようにプログラムされる。記憶オペレーションは、IBM S/390記憶またはIBM S/390フェッチとしてプログラムされる。これらは第2のバス・インタフェース204内の同一の機能を使用する。オペレーションがメッセージ記憶(アップ・メッセージ)か、メッセージ・フェッチ(ダウン・メッセージ)かに依存して、メッセージ・オペレーションは別の制御機能を使用する。これはダウン・メッセージが、第2のバス・インタフェース204に対する内部オペレーションであるという事実に起因し、これにより第2のデータ処理システム101は、スマート・バス制御ユニット112のステータス或いはセット制御に関する情報を獲得する。通常のアップ及びダウン・メッセージは外部オペレーションであり、ローカル・マイクロプロセッサ206からのサービスを要求する。
【0048】記憶処理オペレーションは、第2のバス・インタフェース204のDMA優先ポート301(図3R>3)などのDMAポート、及び第1のバス・インタフェース202により提供されるDMAC247(図2)を使用して実行される。バス・インタフェース204は、データ転送を制御する3つのデータ制御ブロックを提供する。これらのブロックには、DMA優先ポート301に関連して使用されるデータ制御ブロック(図3)、及びピンポン・バッファ241及び243(図2)に関連して使用される2つの制御ブロックが含まれる。これら3つのデータ制御ブロックは、図3に関連して後述されるデータ構造を使用する。
【0049】図3はS/390入出力バス#1(図2の106)と、マイクロプロセッサ206及びメモリ208の少なくとも一方との間を、第2のバス・インタフェース204を介して転送されるデータ制御ブロックのデータ構造を表す。第2のバス・インタフェース204は高優先DMAポート301を含む。このポート301は、制御ユニットのDRAM214またはSRAM216(図2)と、第2のデータ処理システムのメモリ・ユニット104(図1)との間の、最大64バイトの任意のデータ転送に使用される。
【0050】図3を参照すると、いくつかのデータ・フィールドを含むデータ制御ブロック303が示される。S/390開始アドレス・フィールド305は、特定のデータ記憶オペレーションに対応するS/390開始アドレスを含む。S/390開始アドレスは、メモリ・ユニット104(図4)内のロケーションに対応する。データ制御ブロック303(図3)は更に、バイト・カウント・フィールド307、コマンド・フィールド309、アドレス限界許可(LM ENB)フィールド313、アドレス限界フィールド315、アダプタ・ステータス・フィールド319、転送ステータス・フィールド317、キー・フィールド321、及びIOPフィールド325を含む。これらのフィールドの使用については、図4乃至図6を参照しながら以降で詳しく述べられる。
【0051】図4及び図5は、S/390(第2のデータ処理システム101)からスマート・バス制御ユニット112への転送を説明する流れ図である。このタイプの転送は、第2のデータ処理システムのメモリ・ユニット104(図1)と、第2のバス・インタフェース204内の優先データ・ポート301との間で行われることを述べておく。優先データ・ポート301が使用されるため、プログラムされる各転送は64バイトに制限される。しかしながら、任意の優先ポート301のオペレーションは、第2のデータ処理システム101と第1のデータ処理システム107との間の、ピンポン・バッファ241、243及び第1のバス・インタフェース202を介する転送を中断する。
【0052】プログラムはブロック401(図4)で開始され、マイクロプロセッサ206(図2)は転送の方向を決定する。転送がアップ方向(記憶オペレーション)の場合、マイクロプロセッサは転送されるデータを第2のバス・インタフェース内の優先バッファに書込まねばならない(ブロック403)。マイクロプロセッサは次に優先制御ブロック(PCB:priority control block)を、S/390記憶キー、S/390開始記憶アドレス、バイト・カウント、アドレス限界チェック情報、及びコマンドの初期値により初期化する(ブロック405)。一度PCBがプログラムされると、マイクロプロセッサは"go"ビットをPCBコマンド・フィールドに書込む(ブロック407)。この時点で、第2のバス・インタフェースが転送の実行を開始する。これは全てハードウェアがPCBの内容を読出し、適切な選択サイクル・データを形成し、最大16データ・サイクルを率いる選択サイクルを転送することにより達成される。転送が完了すると、ハードウェアは制御ブロックを最終S/390アドレス、バイト・カウント、及び転送及びアダプタのステータスで更新する。ハードウェアはまた転送を開始するために、プログラムにより以前にセットされた"go"ビットをリセットし、許可されれば割込みをマイクロプロセッサに送信する。この間、マイクロプロセッサは"go"ビットをポーリングするか、割込みを受信するまで他の処理を実行する。マイクロプロセッサは転送が完了したことを認識すると、制御装置ステータス及び転送ステータスを読出し、転送の結果を判断する(ブロック411)。ステータスがエラーを示す場合(ブロック415)、プログラムはエラー回復処理を実行して、オペレーションを再試行し、ハードウェアが動作不能であることを示すメッセージをサービス・システムに送信する。通常ステータスが受信されて、転送がダウン転送(すなわちフェッチ・オペレーション)の場合、マイクロプロセッサは優先バッファから受信データを読出す(ブロック419)。
【0053】スマート・バス制御ユニット112(図1R>1)は、第2のデータ処理システムのメモリ・ユニット104(図1)と、マイクロチャネル・メモリ126(図1)または入出力アダプタ・メモリとの間のデータ転送を提供する。これらのデータ転送はS/390入出力バス#1(図1の106)、入出力バス#2(108)或いは入出力バス#3(110)を使用する。バイパス・バス(図2の230)及びマイクロチャネル(103または105)もまた使用される。
【0054】第2のバス・インタフェース204は2つのデータ制御ブロック303(図3)を使用して、第2のデータ処理システムのメモリ・ユニット104(図1R>1)と、第2のバス・インタフェース204内の2つの内部ピンポン・バッファ241、243(図2)との間のDMAオペレーションを実行する。スマート・バス制御ユニットのマイクロプロセッサ206は、これらのデータ制御ブロック303(図3)の1つを初期化する一方、他のデータ制御ブロック303は第2のバス・インタフェース204(図2)により処理される。第2のバス・インタフェース204は、以前のオペレーションの完了後、データ転送要求を実行する。以前のオペレーションの完了は、バイト・カウント・フィールド307(図3)の値が0となることにより示される。
【0055】2つのピンポン・バッファ241、243は、S/390入出力バス#1(図1の106)、入出力バス#2(108)或いは入出力バス#3(110)、及びバイパス・バス230(図2)上で転送をオーバラップする。ピンポン・バッファ241、243と第1のバス・インタフェース202のローカル・レジスタ245(図2)との間のデータは、第1のバス・インタフェース202により提供されるDMAチャネル(DMAC)247を使用して、バイパス・バス230上を転送される。第2のバス・インタフェース204は、第1のバス・インタフェース202にとっては、暗黙的にアドレス指定される装置のように見える。
【0056】図6はバイパス・バス230(図2)を横断して、ピンポン・バッファ241、243とローカル・レジスタ245との間をデータ転送される信号を表す。バイパス・バス信号は、第1のバス・インタフェース222及び第2のバス・インタフェース204と共に、第1のパス・インタフェース202のDMACレジスタ247にプログラムされるDMAオペレーションを実行するための物理リンクを提供する。DMA要求(DMA REQ)信号501(図6)が、第1のバス・インタフェース202からのデータ転送を要求するために、第2のバス・インタフェース204(図2)によりアサートされる(すなわち第1の論理状態が第2の論理状態に変化する)。DMA応答(DMA ACK)信号503(図6)が、DMA要求信号501(図6)の受信を通知するために、第1のバス・インタフェース202(図2)によりアサートされる。DMA応答信号503は、DMAレディ(DMA RDY)信号505がアサートされるまで、アサートされた状態(例えばハイ論理状態)を保持する。DMAレディ信号505がアサートされると、DMA応答信号503がニゲート(negate)される(すなわち第1の論理状態に戻される)。
【0057】DMAレディ信号505は、第2のバス・インタフェース204(図4)からの読出しサイクルの間、データが有効なことを示すために使用される。DMAレディ信号505(図6)はまた、第2のバス・インタフェース204(図2)への書込みサイクルの間に、データが受付けられていることを示すために使用される。単一の転送では、DMA要求信号501(図6)はDMA応答信号503がアサートされた後、且つDMAレディ信号505がアサートされる以前に、ニゲートされなければならない。DMAレディ信号505がアサートされた後にDMA要求信号501がアサート状態を維持している場合、この状態はバースト要求の存在を暗示するために使用される。
【0058】DMAC247(図2)オペレーションはプログラム制御の2つのモードのいずれかにより開始される。直接プログラム制御モードでは、マイクロプロセッサ206(図2)が全てのDMACレジスタ(CSAR249、CBCR251、CLAR253、CLLP255、CCR257、及びCSR259)に書込む。マイクロプロセッサは次にSTART DMACコマンドを第1のバス・インタフェース202に発する。直接プログラム制御モードでは、CCR257レジスタのリンク式リスト連鎖ビットが0にセットされなければならない。第1のバス・インタフェース202はCLLP255レジスタの内容を無視する。DMACオペレーションの終了時、DMA BUSYステータス及び転送終了ステータスがCSR259レジスタ内でリセットされる。要求がIMRレジスタ261によりマスクされていない場合、DMAC終了割込みがマイクロプロセッサ206に要求される。
【0059】DMAC247オペレーションの第2のプログラム制御モードは、リンク式リスト・モードと呼ばれる。リンク式リスト・モードのオペレーション・シーケンスが図7の流れ図で示される。ブロック601で、マイクロプロセッサ206(図2)は、制御ユニット・メモリ208のDRAM214またはSRAM216に存在する制御ブロック内に、1回或いは何回かの転送に対応するリンク式リスト・パラメータを構成する。制御ブロックはマイクロチャネル・アドレス、マイクロプロセッサ・アドレス、リンク式リスト・ポインタ、及びバイト・カウントを含むDMA転送情報を含む。
【0060】1つのリンク式リスト制御ブロックが、別のリンク式リスト制御ブロックを指示することも可能である。ブロック603で、プログラムは任意の制御ブロックを次のリンク・リストに連鎖することが望まれるかを判断テストする。そうである時、プログラムはブロック605で、リンク式リストのCCR257(図2)フィールドのLLCビットをセットし、プログラム制御はブロック601に戻る。ブロック603が否定されると、ブロック607に移行し、マイクロプロセッサ206はDMAC開始信号を発する。DMAC開始信号の受信時、ブロック609で、第1のバス・インタフェース202は第1のリンク式制御ブロックをフェッチし、それぞれのレジスタにDMA転送情報をロードし、転送を実行する。
【0061】ブロック609のDMA転送の後、プログラムはDMACオペレーションが成功したかどうかを判断するための2つのテストを実行する。第1のテストはブロック611で実行されて、DMA転送が成功したかどうかを判断する。成功しなかった場合、エラー・ステータス・ビットがブロック613でセットされ、プログラムは終了する。DMA転送が成功した場合、ブロック611からの肯定分岐はブロック615に至り、ここでLLCビットが1であるかがテストされる。最後のDMAオペレーションの完了は、LLCビット値が0により示される。LLCが1の場合、プログラム制御はブロック609にループして戻る。LLCが1でない場合、完了良好ステータス・ビットがブロック617でセットされて、プログラムは終了する。
【0062】リンク式リスト・モードの使用は、S/390メモリ・ユニット104(図1)の1つの連続空間から、マイクロチャネル・メモリ126のいくつかの不連続セクションへのデータ転送を可能とする。第1のバス・インタフェース202のDMAC247(図2)は、境界制限無しにデータをマイクロチャネル・メモリ126(図1)の任意のバイト・アドレスに転送することができる。データ転送に関する唯一の制限は、転送長が4バイトよりも大きく、且つ16メガバイトよりも小さくなければならないことである。
【0063】マイクロプロセッサ206(図2)は、DMACオペレーションが進行中に停止されない。マイクロプロセッサ206はDMACオペレーションが実行中に、メモリ208または第2のバス・インタフェース204を同時にアクセスすることができる。第1のバス・インタフェース202レジスタ(CSAR249、CBCR251、CLAR253、CLLP255、CCR257、及びCSR259及びIMR261)に対するマイクロプロセッサ206の同時アクセスもまた許可される。マイクロプロセッサ206は、バイパス・バス230上における現行のDMAサイクルの完了を判断するために、第1のバス・インタフェース202レジスタをポーリングすることができる。
【0064】図8乃至図11は、第2のデータ処理システム101(図1)のフェッチ・オペレーションに対応するオペレーション・シーケンスを示す流れ図である。このオペレーションはデータを、メモリ・ユニット104とマイクロチャネル・メモリ126との間で転送する。本発明の実施例では、メモリ・ユニット104はIBM S/390記憶装置である。プログラム制御はブロック701で開始され、マイクロプロセッサ206(図2)はデータ制御ブロック303(図3)のキー・フィールド321、S/390開始アドレス・フィールド305、及びバイト・カウント・フィールド307を、実行される転送に対応して初期化する。コマンド・フィールド309は"フェッチ"オペレーションを指定するようにセットされる。
【0065】次にブロック703で、マイクロプロセッサ206(図2)はアダプタ・ステータス・フィールド317(図3)に書込み、第2のバス・インタフェース204(図2)に対し、GO/−DEビットをアサートすることによりデータ転送を開始するように通知する。プログラム制御はブロック705に移行し、第2のバス・インタフェース204(図2)がS/390入出力バス#1(106)上において記憶オペレーションを開始する。記憶オペレーションは最大16データ・サイクルを率いる選択サイクルで開始される。
【0066】初期S/390転送の間、ブロック707は初期化処理を実行し、マイクロプロセッサ206(図2R>2)はDMAC247を次のように初期化する。CSAR249レジスタは、データが記憶されるマイクロチャネル・メモリ126(図1)アドレスにセットされる。CBCR251(図2)レジスタは、データの転送長にセットされ、これは16メガバイト以下、且つ4バイトより大きくなければならない。要求が有ればCLLP255レジスタがスマート・バス制御ユニット・メモリ208(図2)内のリンク式リスト・アドレスにセットされる。CCR257レジスタは転送モードにセットされる。このモードは暗黙的オペレーション・モードであり、これはバイパス・バス230とマイクロチャネル・バス#1(118)またはマイクロチャネル・バス#2(120)のいずれか一方との間の転送を指定する。
【0067】ブロック709で、マイクロプロセッサ206(図2)はDMAC開始コマンドを第1のバス・インタフェース202に発する。第2のバス・インタフェース204はブロック711で、DMA要求信号を第1のバス・インタフェース202に送信する。DMA要求信号は、全パケット或いは部分的パケットがピンポン・バッファ241または243(図2)に到達すると、直ちに生成される。
【0068】ブロック715で、第1のバス・インタフェース202(図2)はDMA応答信号を第2のバス・インタフェース204に対してアサートし、第2のバス・インタフェース204にデータを送信するように要求する。第2のバス・インタフェース204は次にDMAレディ信号と共に、データをピンポン・バッファ241、243(図2)からバイパス・バス230上に転送する(ブロック717)。第1のバス・インタフェース202はローカル・レジスタ245(図2)が充填されると、直ちにマイクロチャネル・バス#1(図1の118)を調停する(ブロック719)。
【0069】マスタ権を獲得後、第1のバス・インタフェース202(図2)はマイクロチャネル・バス#1(図1の118)上に最大4バイト/サイクルの増分でデータを転送する(図10のブロック721)。第1のバス・インタフェース202(図2)は、ローカル・レジスタ245のデータを、マイクロチャネル・バス#1(118)上に、スレーブ装置の応答レートで転送して空にする(ブロック723)。
【0070】ブロック719からブロック723の実行の間、別のパケットのデータがピンポン・バッファ241、243(図2)に到来する。こうしたデータ・パケットの到来時、第2のバス・インタフェース204はDMA要求信号をアサートすることにより、別のDMAオペレーションを開始する(ブロック725)。ブロック726で、ブロック719からブロック723で実行されるマイクロチャネル転送オペレーションの完了後、第1のバス・インタフェース202はDMA応答信号によりこの要求に応答する。ブロック727で、転送カウントが消滅したかがテストされる。転送カウントが消滅していない場合、プログラムはブロック719にループして戻る。転送カウントが消滅している場合、プログラム制御は図11のブロック729に移行し、第2のバス・インタフェース204(図2)はマイクロプロセッサ206に対して割込みを発生する。割込みはデータ転送が完了したことを示す役割をする。マイクロプロセッサ206はブロック731で、必要に応じて、転送ステータス・フィールド317またはアダプタ・ステータス・フィールド319を読出し、完了ステータスを確認する。
【0071】図12乃至図14は、第2のデータ処理システム101(図1)の記憶オペレーションに対応するオペレーション・シーケンスを示す流れ図である。このオペレーションは、マイクロチャネル・メモリ126とメモリ・ユニット104との間でデータを転送する。本発明の実施例では、メモリ・ユニット104はIBMS/390記憶装置である。プログラム制御はブロック801で開始され、マイクロプロセッサ206(図2)はDMAC247レジスタを次に示す値により初期化する。CSAR249レジスタは、データが読出されるマイクロチャネル・メモリ126(図1)アドレスにセットされる。CBCR251(図2)レジスタは、データの転送長にセットされ、これは16メガバイト以下、且つ4バイトより大きくなければならない。要求が有ればCLLP255レジスタがスマート・バス制御ユニット・メモリ208(図2)内のリンク式リスト・アドレスにセットされる。CCR257レジスタは転送モードを指定するようにセットされ、これはバイパス・バス230とマイクロチャネル・バス#1(図1及び図2の118)またはマイクロチャネル・バス#2(図1の120)のいずれか一方との間の転送を暗黙的に指定する。
【0072】ブロック803で、DMAC開始コマンドが第1のバス・インタフェース202(図2)に発せられる。第1のバス・インタフェース202はブロック805でマイクロチャネル・バス#1(118)を調停する。マスタ権を獲得後、第1のバス・インタフェース202(図2)はマイクロチャネル・メモリ208からローカル・レジスタ245への充填を開始する(ブロック807)。ブロック805及びブロック807の実行の間、マイクロプロセッサ206(図2)はデータ制御ブロック303のキー・フィールド321、S/390開始アドレス・フィールド305、及びバイト・カウント・フィールド307を、実行される転送に対応して初期化する(ブロック809)。図13のブロック811で、コマンド・フィールド309は"記憶"オペレーションを指定するようにセットされる。
【0073】次にブロック813で、マイクロプロセッサ206(図2)はアダプタ・ステータス・フィールド317(図3)に書込み、第2のバス・インタフェース204(図2)に対し、GO/−DEビットをアサートすることによりデータ転送を開始するように通知する。プログラム制御はブロック815に移行し、第2のバス・インタフェース204(図2)がDMA要求信号を第1のバス・インタフェース202に送信し、次にブロック817で、プログラムは第1のバス・インタフェース202(図2)からのDMA応答信号を待機する。
【0074】ブロック819で、第1のバス・インタフェース202(図2)はローカル・レジスタ245が充填されると直ちにDMA応答信号をアサートする。第2のバス・インタフェース204は、DMAレディ信号を出力して、ピンポン・バッファ241または243へのロードを開始する(図14のブロック821)。次にブロック823で、第1のバス・インタフェース202(図2)がマイクロチャネル・バス#1(図1の118)を調停する。このステップは、残余バイト・カウントが0でなければ、ローカル・レジスタ245(図2)の内容が転送された直後に実行される。
【0075】ブロック823の間、第2のバス・インタフェース204(図2)は、ピンポン・バッファ241または243からS/390入出力バス106にデータを転送する(ブロック825)。ブロック823及び825の実行と同時に、ブロック827はDMA要求信号を第1のバス・インタフェース202(図2)に送信する。プログラム制御は次にブロック829に移行し、バイト・カウント・フィールド307(図3)が0であるかがテストされる。このフィールドが0でない場合、プログラムは図13のブロック819にループして戻る。バイト・カウント・フィールド307(図3)が0の場合、プログラム制御はブロック831に移行し、第2のバス・インタフェース204(図2)がデータ転送の完了を示す割込みをマイクロプロセッサ206に送信する。ブロック833で、マイクロプロセッサ206(図2R>2)は必要に応じて、転送ステータス・フィールド317またはアダプタ・ステータス・フィールド319(図3R>3)を読出し、完了ステータスを確認する。
【0076】本発明のスマート・バス制御ユニット112(図2)は、制御ユニット・メモリ208とマイクロチャネル・メモリ126(図1)または入出力アダプタ・メモリとの間で転送が可能である。これらの転送は2つのステップにより実行される。最初に、データがローカル・プロセッサ・バスから第1のバス・インタフェース202(図2)に転送される。ローカル・プロセッサ・バスはトランシーバ224及び228、バス222、226、230、232及び234を含む。次にデータは、第1のバス・インタフェース202(図2)からマイクロチャネル・バス#1(118)に転送される。これらの転送は3つの技術の内のいずれかを使用して達成される。すなわち、それらは(1)第1のバス・インタフェース202内のDMAP901機能(図2)、(2)第1のバス・インタフェース202内のDMAC247明示モード機能、(3)制御ユニット・メモリ208をメモリ・スレーブとしてアクセスするマイクロチャネル103、105(図1)である。DMAC247明示モード機能については、S390記憶装置(メモリ・ユニット104)とマイクロチャネル・メモリ126(図1)との間のデータ転送に関連して前述された。しかしながら、第1のバス・インタフェースはローカル・プロセッサ・バス上でマスタ権を調停し、制御ユニット・メモリ208との間でデータを転送する。
【0077】DMAP機能901によるデータ転送について次に示す。図2を参照すると、DMAP機能901はシステム・アドレス・レジスタ(PSAR)903、データ・レジスタ(DATA)905、制御レジスタ(PCR)907、及びステータス・レジスタ(PSR)909を含む。マイクロプロセッサ206(図2)は、PSARレジスタ903、DATAレジスタ905、及びPCRレジスタ07を書込みプログラムすることにより、最大4バイトのデータをマイクロチャネルとの間で直接転送することができる。マイクロプロセッサ206はDMAP開始コマンドを発する。第1のバス制御ユニット202は、次にマイクロチャネル103、105(図1)の制御を獲得して、最大4バイトのデータをDATAレジスタ905(図2)、或いはチャネル・バス118、120(図1)またはマイクロチャネル・メモリ126空間との間で転送する。これらの転送相手はPSARレジスタ903及びPCRレジスタ907の値により決定される
【0078】DMAP901書込み転送初期化の間、DATAレジスタ905は、PSARレジスタ903にロードされるマイクロチャネル103、105アドレス及びPCRレジスタ907にロードされる転送カウント値により、位置合わせされなければならない。DMAP901読出しサイクルの間、第1のバス・インタフェース202は、ワード配列方式で、PSARレジスタ903の最下位2ビットにより示される開始バイト・アドレス、及びPCRレジスタ907の転送カウントに依存して、最大4バイトの読出しデータをアクセスする(すなわちアドレス0から最大4バイト、アドレス1から最大3バイトなど)。
【0079】データ転送が終了すると、第1のバス・インタフェース202はPSRレジスタ909に終了ステータスをセットする。終了割込みステータスもこの時セットされてもよい。DMAP901転送の終了は、第1のバス・インタフェース202割込み要求をサービスすることにより、或いはPSR909のDMAPビジー・ビットをポーリングすることにより、確認される。
【0080】マイクロチャネル103、105(図1)は制御ユニット・メモリ208(図2)をメモリ・スレーブとしてアクセスできる。メモリ208はマイクロチャネル・メモリ126(図1)アドレス空間にマップされる。第1のバス・インタフェース202(図2)は、マイクロチャネル103、105(図1)がメモリ126をアクセスする時、CHREADY信号をアサートする。第1のバス・インタフェース202(図2)は、HOLD及びHOLDAプロトコルを使用して、ローカル・プロセッサ・バスを調停する。第1のバス・インタフェース202はマスタ権を獲得すると、転送オペレーションを完了し、マイクロチャネル103、105サイクルを終了するためにCHREADY信号をニゲートする。第1のバス・インタフェース202(図2)が16ビット・スレーブとしてマイクロチャネル103、105(図1)に応答するため、これらのアクセス・オペレーションは常に2バイト長である。
【0081】
【発明の効果】以上説明したように、本発明によれば、非常に高速なデータ転送レート、及び多重同時独立のプロセッサ間オペレーションを可能とする改良されたインタフェース機構が提供される。更に本発明は、マイクロチャネルのプレーナ・プロセッサがより効率的に使用可能なチャネル及び制御ユニットのエミュレーション機能を提供する。
【図面の簡単な説明】
【図1】本発明のスマート・バス制御ユニットの動作環境を表すハードウェア・ブロック図である。
【図2】図1のスマート・バス制御ユニットのハードウェア・ブロック図である。
【図3】図1のスマート・バス制御ユニットにより実行される記憶オペレーションに使用されるデータ構造を示すブロック図である。
【図4】本発明による、IBM S/390データ処理システムとマイクロチャネル・システムとの間のデータ記憶転送機能の動作シーケンスを表す流れ図である。
【図5】本発明による、IBM S/390データ処理システムとマイクロチャネル・システムとの間のデータ記憶転送機能の動作シーケンスを表す流れ図である。
【図6】本発明のバイパス・バス上のDMAシーケンスを示すタイミング図である。
【図7】図2に示されるDMACのリンク式リスト・モードの動作シーケンスを示す流れ図である。
【図8】本発明によるフェッチ・オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【図9】本発明によるフェッチ・オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【図10】本発明によるフェッチ・オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【図11】本発明によるフェッチ・オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【図12】本発明による記憶オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【図13】本発明による記憶オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【図14】本発明による記憶オペレーションに対応してコンピュータにより実行される処理の流れ図である。
【符号の説明】
101 第2のデータ処理システム
102 中央処理ユニット(CPU)
103、105 マイクロチャネル
104 メモリ・ユニット
106 入出力バス#1
107 第1のデータ処理システム
108 入出力バス#2
110 入出力バス#3
118 マイクロチャネル・バス#1
120 マイクロチャネル・バス#2
122 プレーナ・プロセッサ
126 メモリ
128 入出力アダプタ
130、131、132 入出力装置
202 第1のバス・インタフェース
204 第2のバス・インタフェース
206 ローカル・マイクロプロセッサ
210 EPROMメモリ
212 フラッシュ・メモリ
214 ダイナミック・ランダム・アクセス・メモリ(DRAM)
216 スタティック・ランダム・アクセス・メモリ(SRAM)
222 第1の32ビット・バス
224 第1のトランシーバ
226 第2の32ビット・バス
228 第2のトランシーバ
230 16ビット・バス
232 8ビット・バス
234 第2のパス
241、243 内部ピンポン・バッファ
245 ローカル・レジスタ
247 DMAチャネル
249 CSAR
251 バイト・カウント・レジスタ(CBCR)
253 ローカル・アドレス・レジスタ(CLAR)
255 24ビットのリンク式リスト・ポインタ(CLLP)
257 8ビット制御レジスタ(CCR)
259 8ビット・ステータス・レジスタ(CSR)
261 割込みマスク・レジスタ(IMR)
301 高優先DMAポート
307 バイト・カウント・フィールド
309 コマンド・フィールド
313 アドレス限界許可(LM ENB)フィールド
315 アドレス限界フィールド
317 転送ステータス・フィールド
319 アダプタ・ステータス・フィールド
321 キー・フィールド
325 IOPフィールド
501 DMA要求(DMA REQ)信号
503 DMA応答(DMA ACK)信号
505 DMAレディ(DMA RDY)信号

【特許請求の範囲】
【請求項1】入出力制御機能を実行するバス制御システムであって、データを記憶する第1のメモリ手段、命令を実行する第1のプロセッサ手段、及び各々が第1の入出力バス・プロトコルを有する第1のコンピュータ・アーキテクチャに対応する第1の信号セットを使用することにより、データ、制御情報、及びアドレス情報の少なくともいずれかの通信パスを提供する複数のチャネルを含む、データ転送用の第1の入出力バスを含む第1のデータ処理システムと、データを記憶する第2のメモリ手段、命令を実行する第2のプロセッサ手段、及び各々が第2の入出力バス・プロトコルを有する第2のコンピュータ・アーキテクチャに対応する上記第1の信号セットとは同一でない第2の信号セットを使用することにより、データ、制御情報、及びアドレス情報の少なくともいずれかの通信パスを提供する複数のチャネルを含むデータ転送用の第2の入出力バスを含む第2のデータ処理システムと、少なくとも1個の入出力装置と、上記第1の入出力バス及び上記少なくとも1個の入出力装置への接続に適応する、各々が上記入出力装置と上記第1の入出力バスとの間の通信を提供する通信手段を含む複数の入出力アダプタと、上記第1の入出力バスと通信するための第1の通信ポート、上記第2の入出力バスと通信するための第2の通信ポート、上記第1の信号セットを上記第2の信号セットに変換するための第1の信号変換手段、及び上記第2の信号セットを上記第1の信号セットに変換するための第2の信号変換手段を含む、上記第1のデータ処理システムと上記第2のデータ処理システムとをインタフェースするインタフェース手段を含むスマート・バス制御ユニットと、を含むバス制御システム。
【請求項2】上記第1の信号変換手段が上記第2の信号変換手段と同時に動作する、請求項1記載のバス制御システム。
【請求項3】上記スマート・バス制御ユニットが上記複数の入出力アダプタの少なくとも1個をアクセスするアクセス手段を含む、請求項1記載のバス制御システム。
【請求項4】上記アクセス手段が上記入出力アダプタの上記通信手段に接続されるマイクロプロセッサを含む、請求項3記載のバス制御システム。
【請求項5】上記スマート・バス制御ユニットが上記複数の入出力アダプタの少なくとも1個及び上記第1の入出力バスのオペレーションを制御する制御手段を含む、請求項4記載のバス制御システム。
【請求項6】上記アクセス手段が上記マイクロプロセッサ装置により実行されるマイクロコード命令を含むマイクロプロセッサ制御手段を含む、請求項4記載のバス制御システム。
【請求項7】上記マイクロコード命令が、データ、制御情報及びアドレス情報の少なくともいずれかの転送を指定する、上記入出力アダプタの少なくとも1個及び上記第1の入出力バスに関する入出力機能を提供する、請求項6記載のバス制御システム。
【請求項8】上記アクセス手段が上記複数の入出力アダプタの間でデータ、制御情報及びアドレス情報の少なくともいずれかを転送するように、上記マイクロコード命令が上記複数のチャネル上の複数の上記入出力機能を同時に実行するためのチャネル・マルチプレクス手段を含む、請求項7記載のバス制御システム。
【請求項9】上記マイクロプロセッサがRISCマイクロプロセッサ装置を含む、請求項4記載のバス制御システム。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図6】
image rotate


【図7】
image rotate


【図8】
image rotate


【図9】
image rotate


【図10】
image rotate


【図11】
image rotate


【図12】
image rotate


【図13】
image rotate


【図14】
image rotate


【公開番号】特開平6−208548
【公開日】平成6年(1994)7月26日
【国際特許分類】
【出願番号】特願平5−259699
【出願日】平成5年(1993)10月18日
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレイション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION