JP2654369B2 - プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置 - Google Patents

プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置

Info

Publication number
JP2654369B2
JP2654369B2 JP7014599A JP1459995A JP2654369B2 JP 2654369 B2 JP2654369 B2 JP 2654369B2 JP 7014599 A JP7014599 A JP 7014599A JP 1459995 A JP1459995 A JP 1459995A JP 2654369 B2 JP2654369 B2 JP 2654369B2
Authority
JP
Japan
Prior art keywords
main processor
data
bus
dma
microprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP7014599A
Other languages
English (en)
Other versions
JPH07288535A (ja
Inventor
カール・エイ・ベンダー
ジェラード・エム・サレム
リチャード・エイ・スウィッツ
シンプイ・ズィー
ベン・ジェイ・ナサンソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07288535A publication Critical patent/JPH07288535A/ja
Application granted granted Critical
Publication of JP2654369B2 publication Critical patent/JP2654369B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、概して云えば、高パフ
ォーマンス・パケット交換機構とメイン・プロセッサと
の間にコミュニケーション・リンクを与えるための装
置、そのメイン・プロセッサにおけるファーストイン・
ファーストアウト(先入れ先出し)バッファを管理する
方法、その装置のエラー検出回路、及びその装置のため
の改良されたクロック障害検出回路に関するものであ
る。
【0002】
【従来の技術】並列処理システムでは、システム・パフ
ォーマンスは、プロセッサ・パフォーマンス及びコミュ
ニケーション・パフォーマンスに依存する。コミュニケ
ーション・パフォーマンスは最大の重要事であり、それ
は2つの要素、即ち、待ち時間及び帯域幅に分けられ
る。効率的なコミュニケーション・サブシステムを作る
ためには、両方の要素とも最適化されなければならな
い。
【0003】標準的なシステムでは、メイン・プロセッ
サ(例えば、RISCシステム/6000プロセッサ
等)と高パフォーマンス交換(HPS)機構との間にア
ダプタのような装置が使用されていた。しかし、これら
アダプタは、比較的遅いバスを介するすべてのデータ転
送に、メイン・プロセッサが関与する必要がある。従っ
て、データ転送が生じている間、メイン・プロセッサ
は、他のタスクを遂行することができなかった。これは
問題であり、メイン・プロセッサの最適化を可能にする
ものではない。
【0004】前述の危惧を解決するためにコプロセシン
グ機構がアダプタ上で使用される標準的なシステムで
は、メイン・プロセッサとそのコプロセシング機構との
間の比較的遅いバスを介して不必要なトラフィックが行
われていたので、そのバスにおける利用可能なすべての
サイクルがアプリケーション・データを移動させるため
に使用されるわけではないという1つの関連問題があっ
た。これは、システムのコミュニケーション効率を下げ
ていた。
【0005】更に、標準的なシステムは、この比較的遅
いバスを介して(例えば、メイン・プロセッサからコプ
ロセシング機構に、及びその逆に)ポーリングを(コミ
ュニケーション・タスクのために)使用していた。それ
は、メイン・プロセッサを速度低下させ且つ貴重な帯域
幅を利用し、それによって、そのシステム全体の効率を
低下させ、データ・バスにおいてアプリケーション・デ
ータとの競合を生じさせ、メッセージ待ち時間を増加さ
せ、そしてメッセージ帯域幅を減少させる。これがコミ
ュニケーション効率を低下させている。
【0006】更に、通常のアダプタはスレーブ・モード
でしか動作可能でなかった。即ち、それは、データ転送
を開始させることができなかった。メイン・プロセッサ
はマスタ(例えば、イニシエータ)でなければならず、
従って、前述のように、データ転送プロセス全体を通し
て一体的に関与しなければならないので、これは問題で
ある。
【0007】もう1つの問題は、データの経路指定(従
って、整合性)をチェックすることである。メッセージ
・パッシング・プロトコルを使用する並列システムで
は、情報のパケットがそのシステムにおけるプロセッサ
相互間で送られる。これらデータ・パケットは、通常、
ソース・プロセッサからネットワーク・ファブリックを
通して宛先プロセッサにパケットを案内する経路指定情
報を含んだヘッダを有する。或システムでは、メッセー
ジ・パケットがその宛先に到達する時に経路指定情報が
最早存在しないように、その経路指定情報がネットワー
ク・ファブリックによって消滅させられる(例えば、デ
ータ・ビットは、データ・パスに沿って進行しながら
「ドロップ・オフ」される)。経路指定データが脱落す
る場合、ネットワークはエラーを検出できず、パケット
は間違った宛先プロセッサへ経路指定され、その結果、
データの整合性エラーを生じることになる。
【0008】通常のアダプタは、アダプタ・クロックが
障害を起こした場合、メイン・プロセッサを無期限にハ
ングアップすることがあるということがもう1つの問題
であった。
【0009】更に、通常のアダプタは、非効率的である
ことがわかっても変更することが困難な固定した手段を
使用して、コミュニケーション・タスクを遂行する。
【0010】
【発明が解決しようとする課題】本発明の目的は、アダ
プタが主としてデータ転送タスクを行っている間にメイ
ン・プロセッサが他のタスクを遂行することができるよ
うに、プロセッサが高パフォーマンス交換機構とのコミ
ュニケーションを待つ必要がないようにしたアダプタを
提供することにある。
【0011】本発明のもう1つの目的は、データ転送オ
ペレーションにおいてスレーブとして及びマスタとして
働くことができるアダプタをメイン・プロセッサと高パ
フォーマンス交換機構との間に提供することにある。
【0012】本発明のもう1つの目的は、比較的遅いバ
スを介したポーリングが生じないように、メイン・プロ
セッサからアダプタへのコマンドを及びアダプタからメ
イン・プロセッサへの応答を待ち行列させる方法を提供
することにある。
【0013】本発明のもう1つの目的は、転送されるデ
ータの整合性を確実にするための方法及び装置を提供す
ることにある。
【0014】本発明のもう1つの目的は、メイン・プロ
セッサとアダプタとの間の相互作用を制御する場合の融
通性を高めるための方法及び装置を提供することにあ
る。
【0015】本発明のもう1つの目的は、経路指定デー
タが存在しない場合でも、経路指定誤りのあるパケット
が検出されることを確実にするための方法及び装置を提
供することにある。
【0016】本発明のもう1つの目的は、クロックが障
害を生じた場合にメイン・プロセッサのハングアップが
起こらないようにするクロック障害検出回路を提供する
ことにある。
【0017】
【課題を解決するための手段】本発明の第1の特徴で
は、メイン・プロセッサ及びそれのメモリとパケット交
換機構との間でデータを転送するためのアダプタが提供
される。そのアダプタは、メイン・プロセッサ及びそれ
のメモリに接続された第1バスと、その第1バスと第2
バスとの間に接続され且つ第1バスに接続された第1ポ
ート及び第2バスに接続された第2ポートを有する両方
向ファーストイン・ファーストアウト(FIFO)バッ
ファと、第2バスに接続されたコミュニケーション・プ
ロセッサと、第2バスに動作関係に接続されたメモリ
と、メイン・プロセッサとFIFOバッファとの間に接
続され且つメイン・プロセッサとFIFOバッファとの
間でデータを転送するための第1ダイレクト・メモリ・
アクセス(DMA)エンジンと、FIFOバッファと第
2バスとの間に接続され且つFIFOバッファと第2バ
スとの間でデータを転送するための第2ダイレクト・メ
モリ・アクセス(DMA)エンジンと、第2バス及び交
換機構の間に動作関係に接続され且つ第2バスをその交
換機構にインターフェースするためのパケット交換機構
インターフェースとを含む。この場合、パケットは、コ
ミュニケーション・プロトコルに従って、メイン・プロ
セッサのメモリとその交換機構との間でコミュニケーシ
ョンされる。又、第1及び第2DMAエンジンは、パケ
ットのためのデータを相互に独立して転送する。
【0018】本発明の第2の特徴は、アダプタによって
分散機構に接続されたメイン・プロセッサのファースト
イン・ファーストアウト(FIFO)バッファのデータ
を管理する方法を提供する。メイン・プロセッサは、第
1バス及びそれに接続されたメイン・メモリを有し、ア
ダプタはコミュニケーション・コプロセッサ、第2バス
及びそれに接続されたローカル・メモリ、及びメイン・
メモリとローカル・メモリとの間でダイレクト・メモリ
・アクセス(DMA)転送を行うためのDMA装置を含
む。その方法は、メイン・メモリ及びローカル・メモリ
の両方に記憶された一組のパケットFIFOを設けるス
テップを含んでいる。それらパケットFIFOの各々
は、ヘッド・ポインタ及びそれと関連したテイル・ポイ
ンタを有する。メイン・メモリ・パケットFIFO及び
ローカル・メモリ・パケットFIFOのどちらかが送信
FIFOであり、メイン・メモリ・パケットFIFO又
はローカル・メモリ・パケットFIFOの他方が受信F
IFOである。その方法は、更に、送信FIFOから受
信FIFOにパケット・データのDMA転送を遂行する
ステップを含む。そのDMA転送は、パケット・データ
のDMA転送を開始及び終了させる時を決定するために
受信FIFOにおいて使用されるべきヘッド・ポインタ
情報及びテイル・ポインタ情報を含み、従って、ヘッド
・ポインタ情報及びテイル・ポインタ情報のために第1
及び第2バスの何れかを介してポーリングする必要がな
い。
【0019】本発明の第3の特徴は、メイン・プロセッ
サのチャネル及び交換機構の間に接続されたアダプタに
よる使用のためのクロック障害検出回路を含む。そのク
ロック障害検出回路は、アダプタの外部にあってそのア
ダプタに接続された出力を有し且つ所定の形状を持った
波(例えば、矩形波)を発生するクロック・ソース、及
びそのアダプタにおけるカウンタ機構を含む。そのカウ
ンタ機構は、クロック・ソースの出力に接続され、その
波が所定のレベル(例えば、「高」レベル)を有するか
どうかを感知するための第1入力(なお、ローカル的に
発生された波は所定の形状を有し、外部ソースには無関
係である)と、クロック・ソースの出力に接続され、そ
の波が第2の所定レベル(例えば、「低」レベル)を有
するかどうかを感知するための第2入力と、外部ソース
には無関係の所定の形状を持ったローカル的に発生され
た波(例えば、矩形波)によってクロックされ且つ第1
及び第2入力に接続され、初期値から最終値までのカウ
ンティングを開始するためのカウンタとを含む。そのカ
ウンタの周波数は、欠落したクロック信号遷移がそのカ
ウンタを最終値に到達させるように、その所定の形状を
持った波の周波数よりも大きい。更に、クロック障害検
出回路は、カウンタ機構の出力に動作関係に接続され、
そのアダプタをリセットするためのリセット装置、及び
そのリセット装置とメイン・プロセッサとの間に動作関
係に接続され、クロック信号遷移が損なわれた場合にメ
イン・プロセッサがハング状態のままになるのを回避す
るように、アダプタのリセット状態をメイン・プロセッ
サに送信するためのリセット送信装置を含む。
【0020】本発明の第4の特徴では、本発明は改良さ
れたエラー検出回路を提供する。その回路は、パリティ
・データを含むメッセージ・データを送るためのメイン
・プロセッサと、メッセージ・データを受け取るための
メッセージ受信装置と、メイン・プロセッサとメッセー
ジ受信装置との間に接続され、メイン・プロセッサから
メッセージ・データを受信し、メッセージ受信装置にメ
ッセージ・データを送信するためのアダプタと、アダプ
タからメッセージ受信装置に送られたメッセージ・デー
タの終わりに送信されるべき巡回冗長検査(CRC)コ
ードを生成するためのそのアダプタにおけるCRC生成
器(CRCコードは、メッセージ受信装置によって受信
されたメッセージ・データにおけるエラーを検出するた
めのものである)と、CRC生成器に接続され、メイン
・プロセッサによってアダプタに送られたパリティ・デ
ータを検出するためのパリティ検出器とを含む。パリテ
ィ検出器は、そのパリティ検出器がパリティ・エラーを
検出した時、アダプタによってメッセージ受信装置に送
られたメッセージ・データの終わりにあるCRCコード
がエラーを含むように、パリティ・エラーが検出された
時、CRC生成器にCRCコードにおけるエラーを発生
させるための手段を含む。
【0021】
【実施例】図面、更に詳しくは、図1及び図2を参照す
ると、本発明によるアダプタ1が示される。アダプタ1
は、メイン・プロセッサ・ノード2(例えば、好ましく
は、本願の出願人によって製造されたRISCシステム
/6000(IBM社の商標)というコード名の機械)
と高パフォーマンス・交換機構(HPS)3(例えば、
本願の出願人が専有するパケット交換)の間のコミュニ
ケーションを実行するためのコミュニケーション装置で
ある。そのアダプタは、マイクロチャネル・バスのノー
ドにインターフェース可能である。
【0022】図2は、アダプタを構成するアダプタ・カ
ード20及びそれの構成要素を更に詳細に示す。そのア
ダプタ・カードは、メイン・プロセッサがHPSを介し
てコミュニケーションすることを可能にする。そのアダ
プタとのコミュニケーションは、アダプタ・ノード又は
プロセッサ・ノードによって開始される。そのアダプタ
・カードは、メイン・プロセッサのマイクロチャネルを
そのアダプタにインターフェースするマイクロチャネル
・インターフェース21を含む。メイン・プロセッサ
は、ファーストイン・ファーストアウト記憶装置2bを
内蔵するメイン・メモリ記憶装置2aを含む。
【0023】アダプタは、ストリーミング・マスタとし
て、又は非ストリーミング・スレーブとして働くことが
できる。特に、そのアダプタは、80MB/sのピーク
帯域幅を持ったマイクロチャネル・ストリーミング・マ
スタである。それは、10MHz転送クロックを使用し
て8バイト・ストリーミング又は4バイト・ストリーミ
ングをサポートする。クロック速度は、好ましくは、H
PSと同期した40MHzである。
【0024】マイクロチャネル・インターフェース21
の他に、そのアダプタ・カードはマイクロプロセッサ2
2(例えば、好ましくは、64ビット・データ・バス等
を有する)を含む。そのマイクロプロセッサは、コミュ
ニケーション・コプロセッサとして使用される。
【0025】十分な量(例えば、8メガバイト)のエラ
ー訂正された動的ランダム・アクセス・メモリ(DRA
M)23が、そのマイクロプロセッサ22に動作関係に
接続されて設けられる。DRAM23はマイクロプロセ
ッサのプログラム記憶装置であり、プロトコル・データ
構造を保持する。それは、アダプタとメイン・プロセッ
サとの間のメッセージ・パッシング領域としても使用可
能である。更に詳細に後述するように、それは、コプロ
セッサ及びマイクロチャネルの両方によってアドレス可
能である。
【0026】メイン・プロセッサと二重チャネルとの間
のダイレクト・メモリ・アクセスを与えるために、少な
くとも2つのダイレクト・メモリ・アクセス(DMA)
エンジン(例えば、「左側」DMAエンジン24及び
「右側」DMAエンジン25)等がある。
【0027】更に、両方向(bidi)ファーストイン
・ファーストアウト(FIFO)バッファ26(例え
ば、好ましくは、少なくとも4kBの容量を有する)が
マイクロチャネル・インターフェース21に接続され
る。両方向FIFOバッファ26はDMAエンジン24
及び25によって(図2では、破線によって示されるよ
うに)制御可能であり、そしてそれは第1ポート26a
及び第2ポート26b(例えば、Aポート及びBポー
ト)を含む。更に、詳しく後述するように、両方向FI
FOバッファ26は、そのFIFOバッファをバイパス
する内部レジスタ(例えば、「メールボックス」)26
cを有する。
【0028】メモリ及び交換機構管理装置(MSMU)
27として知られている標準的セルのASIC(特定用
途向け集積回路)は複数個のレジスタを含み、マイクロ
プロセッサ22、両方向FIFOバッファ26、HP
S、及びDRAM23と動作関係に接続され、DRAM
23のためのDRAMコントローラとして働く。MSM
U27はマイクロプロセッサ22のためのDRAMコン
トローラでもあり、それはマイクロプロセッサをHPS
にインターフェースする。
【0029】MSMUは、マイクロプロセッサによって
又はメイン・プロセッサによって、メールボックスを介
してアクセス可能である。DMAエンジン24、25は
2つのアダプタ・バス28、29の各々を介してストリ
ーミング・データの転送を行う。左側に関して、左側D
MAエンジン24がマイクロチャネル・インターフェー
ス21及び両方向FIFOバッファ26の間で転送す
る。右側に関しては、右側DMAエンジン25が両方向
FIFOバッファ26及びマイクロプロセッサ22の間
で転送する。
【0030】両方向FIFOバッファ26は、160M
バイト/sマイクロプロセッサ・バス28(例えば、比
較的速いバス)を遅いマイクロチャネル・バス29から
切り離して両方のバスの同時使用を可能にする。これ
は、マイクロプロセッサが計算を行っている間にデータ
がマイクロチャネルを介して転送されるのを可能にす
る。マイクロチャネルに比べてマイクロプロセッサ・バ
スが高速度であることは、マイクロプロセッサによる計
算がHPSとのデータ転送と時間多重化されることを可
能にする。これは、メイン・プロセッサが転送待ちの間
に他の処理を自由に行えるので、通常のシステムに比べ
て大きな利点を与えるものである。
【0031】上記のように、及び更に詳しく後述するよ
うに、アダプタは、マイクロチャネル・スレーブとして
メイン・プロセッサによってアクセス可能であり、或い
はマイクロチャネル・マスタとしてメイン・プロセッサ
のメモリをアクセス可能である。アダプタ・カードがマ
イクロチャネル・アドレスをデコードする時、マイクロ
プロセッサは、マイクロチャネル・マスタが1サイクル
(例えば、1マイクロチャネル・サイクル)の間それの
バスを使用し得るようにそのバスを切り離す。しかる
後、コントロールはマイクロプロセッサに戻る。メイン
・プロセッサにおけるユーザ・スペース・アプリケーシ
ョンからアダプタにおけるシステム・データを保護する
ために、ハードウエアがアクセス・チェックを行う。
【0032】更に、マイクロチャネルを介してメイン・
プロセッサにアクセス可能なものとして、カード構成可
能なレジスタ(例えば、そのカードがデコードするマイ
クロチャネル・アドレスを設定するスタート/ストップ
・マイクロプロセッサ、リセット・カード)がある。
【0033】電源投入時に、メイン・プロセッサ2はメ
ール・ボックス26cを介してアダプタDRAM23に
マイクロプロセッサ・コードをロードし、構成可能なレ
ジスタを介してマイクロプロセッサの動作を開始させ
る。右側DMAエンジン25又はメイン・プロセッサが
マイクロプロセッサ・バスの使用を必要とする時、その
プロセッサは自動的にそのバスを切り離し、そしてアク
セスが完了した時にそのバスに戻される。このオペレー
ションは、メイン・プロセッサ及びマイクロプロセッサ
には透明である。
【0034】マイクロプロセッサは、マイクロチャネル
への割込みを駆動すること及びマイクロチャネルからの
割込を受けることが可能である。典型的には、割込は例
外報告のために使用される。前述のように、及び更に詳
しく後述するように、メイン・プロセッサとコプロセッ
サとの間の正常なメッセージ・パッシングがメモリで行
われる。
【0035】マイクロチャネル・マスタとして、アダプ
タは、HPSからマイクロチャネルに、及びマイクロチ
ャネルからHPSに、データを流すことができる。それ
は、マイクロチャネルからDRAMにも、及びその逆に
もデータを流すことができ、マイクロプロセッサは、マ
イクロチャネル・データをロード及びストアすることが
できる。コプロセッサはすべてのDMA転送を開始さ
せ、DMAポートとして知られたそのアダプタにおける
或アドレス範囲に書込みを行い、その後、その結果を見
るためにそれらポートを読み出す。
【0036】左側(LHS)DMAエンジン24は、独
特の「ヘッダ」アーキテクチャを通してマイクロプロセ
ッサにより制御される。このヘッダはファーストイン・
ファーストアウト(FIFO)待ち行列を通して移動
し、従って、一時にいくつものヘッダが待ち行列するこ
とが可能な両方向FIFOバッファ26に移動する。そ
して、LHSが前のヘッダを終了する時、それはそのバ
ッファから次のヘッダを引き出し、マイクロチャネル・
マスタ・オペレーションを開始させる。それらヘッダ
は、LHSフェッチ又はストア・オペレーションのため
のものでもある。ストア・オペレーションのためのデー
タが、FIFOバッファでは、そのヘッダのすぐ後に続
く。従って、制御及びデータ情報が同じパスを移動す
る。簡単に云えば、更に詳しく後述するように、LHS
/RHSブリッジは両方のバスではマスタ及びスレーブ
として作用する。例えば、LHSは、前述のように、マ
イクロチャネルではマスタであり、マイクロチャネルか
らデータをフェッチすること、又はマイクロチャネルに
データをストアすることができる。
【0037】又、LHSは、数スレーブ・サイクルの
間、マイクロチャネルをモニタする(LHSはマイクロ
チャネルに対するスレーブである)。スレーブ・サイク
ル(又は、PIO、即ち、プロセッサI/O)は、LH
Sマスタ・オペレーション及びRHSマスタ・オペレー
ションの両方に割込を行うことができ、それによって、
PIOが素早く克つ自動的に(例えば、単一のユニタリ
・オペレーションで)生じるのを可能にする。メイン・
プロセッサは、進行中のDMAオペレーションがアダプ
タとのコミュニケーションを終了するのを待つ必要がな
く、PIOが有効になったことを保証される。スレーブ
・サイクルのデコードの時、LHSがRHSに割込を行
い、両方がマイクロプロセッサ・アドレス・スペースへ
のアトミックPIOを実施するようにする。LHSは、
PIOが終了するのを可能にする前に、RHS肯定応答
を待つ。
【0038】更に、RHS−DMAはいくつかのマイク
ロプロセッサ・スレーブ制御ポートによって制御され
る。例えば、FIFOポート26b(図2に示される)
が設けられる。マイクロプロセッサがFIFOポート2
6bに対して読み取り又は書込みを行う時、そのブリッ
ジはマイクロプロセッサ・バス・スレーブとして働く。
マイクロプロセッサ22は、ストアを行うために及びス
トアされるべきデータをFIFOバッファに入れるよう
RHS−DMAを開始させる(ブリッジがバス・マスタ
になり、マイクロプロセッサ・アドレス・スペースにお
ける何処かへの又は何処かからのパイプライン・サイク
ルを実行する)ためにLHSにヘッダを送ること、フェ
ッチを行うためにLHSにヘッダを送ること、マイクロ
プロセッサ・アドレス・スペースにおける何処かにLH
Sでフェッチされたデータを移動させるためにRHS−
DMAを開始させること、RHS−DMAを開始させる
ことなくストアを行うようLHSにヘッダを送ること、
及びFIFOバッファから直接にデータを読み取ること
又はFIFOバッファに直接にデータを書き込むことを
含む。
【0039】マイクロプロセッサは、DMAポートとし
て知られた或範囲のアダプタ・アドレスの1つに書き込
むことによってDMA転送を開始する。DMAポート・
アドレスの選択項目及びDMAヘッダとして知られたそ
のポートに書き込まれた第1ワードの内容が、DMA活
動を制御するための手段と共にそのマイクロプロセッサ
に与えられる。本質的には、DMAポート・アドレスの
選択は右側DMAエンジン25を制御し、両方向FIF
Oバッファ26を通して移動するそのヘッダにおけるデ
ータは左側DMAエンジン24を制御する。
【0040】ポート・アドレスは次のように構成され
る。そのアドレスの1つのフィールドはすべてのポート
・アドレスに対して同じである。これらのビットは、D
MAポートがアドレスされつつあることを右側DMAエ
ンジン25に表示する。もう1つのフィールドは、転送
が始まるべきマイクロプロセッサ・バスを介してアドレ
スを指定する。追加のアドレス・ビットが、それがゼロ
である時に右側DMAエンジン25を不能にする制御ビ
ットとして働く。このビットの目的については、更に詳
しく後述することにする。
【0041】DMAヘッダは、左側DMAエンジン24
及び右側DMAエンジン25の両方に有用な情報(例え
ば、転送されるべきワードの数)及び左側DMAエンジ
ン24によってのみ使用される情報を含んでいる。この
情報は、転送が始まるべきマイクロチャネル・アドレス
を含む。
【0042】マイクロプロセッサは、以下のように、D
MA書込(例えば、アダプタ・メモリ又は交換機構から
メイン・プロセッサ・メモリ2aへのデータ転送)を開
始する。マイクロプロセッサはDMAポートに書込みを
行い、データのソースがメモリであるか或いは交換機構
であるかを暗黙的に表示する。ヘッダは両方向FIFO
バッファ26に書き込まれる。しかる後、右側DMAエ
ンジン25はプロセッサをバスから切り離し、アダプタ
・メモリ又はHPSから両方向FIFOバッファ26に
データを転送する。その転送に続いて、バスのコントロ
ールがマイクロプロセッサに戻される。その後、DMA
ヘッダが両方向FIFOバッファの頭に到達する時、そ
れは左側DMAエンジン24によってフェッチされる。
その左側DMAエンジン24は、両方向FIFOバッフ
ァ26からマイクロチャネルへのリクエストされた数の
データ転送を遂行し、そのヘッダを廃棄する。
【0043】アダプタは、DMA書込みのための付加的
モードをサポートする。このモードでは、右側DMAエ
ンジン25が開始する前に、DMAヘッダは両方向FI
FOバッファに書き込まれずに廃棄される。このモード
は、マイクロプロセッサがマイクロプロセッサ・レジス
タからのデータ及び交換機構からのデータを含むブロッ
クをメイン・メモリ2aにおける連続ロケーションに書
き込みたい時に使用される。「ヘッダレス」モードを使
用すると、2つ又はそれ以上のそのようなブロックが単
一の左側DMAエンジン24を使って、マイクロチャネ
ルを介して転送される。
【0044】マイクロチャネルはDMA読取り(例え
ば、メイン・プロセッサ・メモリ2aからアダプタ・メ
モリ(例えば、DRAM23又は交換機構)へのデータ
転送)を2ステップ・プロセスとして遂行する。
【0045】第1のステップにおいて、マイクロプロセ
ッサは読取りを指定したDMAヘッダを書き込む。それ
は、いくつかのDMAポート・アドレスのうちのどれか
に書込みを行うことができ、その場合、右側DMAエン
ジンをイネーブルするそのアドレスのビットが無効にさ
れる。これらアドレスのうちのどれかへの書込の結果、
右側DMAオペレーションを遂行することなくDMAヘ
ッダが両方向FIFOバッファ26に置かれる。その
後、ヘッダが両方向FIFOバッファの頭に到達する
時、それは左側DMAエンジン24によってフェッチさ
れる。左側DMAエンジン24は、プロセッサ・メモリ
から両方向FIFOバッファ26へのリクエストされた
数のデータ転送を遂行する。
【0046】DMA読取りオペレーションの第2のステ
ップでは、マイクロプロセッサは、読取りを指定するD
MAヘッダを再び書き込む。しかし、この時、ヘッダは
イネーブルされた右側DMAエンジン25によってポー
ト・アドレスに書き込まれる。これは、右側DMAエン
ジン25に、プロセッサをバスから切り離させ、リクエ
ストされた数のバイトをFIFOバッファ26からアダ
プタ・メモリ(MSMU)27又は交換機構へ転送させ
る。その転送に続いて、バスのコントロールはマイクロ
プロセッサ22に戻される。そのヘッダは廃棄され、両
方向FIFOバッファには置かれない。
【0047】右側DMAエンジンが必要とされる場合、
一旦マイクロプロセッサが右側DMAエンジンを開始さ
せると、それが開始させたDMA転送が完了してしまう
まで、それがそのバスにおける他のアクションを遂行で
きないように、右側DMAエンジンのタイミングが設計
される。
【0048】前述のように、DMAヘッダはマイクロプ
ロセッサ22から左側DMAエンジン24に命令を搬送
する。マイクロプロセッサが左側DMAエンジン24
を、直接ではなく,FIFOバッファ26を介して制御
するという方法は、左側ポートが直接に制御される通常
の方法に比べていくつかの利点を有する。例えば、デー
タと共にコマンドをFIFOバッファに置くことは、転
送されるべきデータとDMA制御を自動的に同期させ
る。更に、その両方向FIFOバッファは、マイクロプ
ロセッサ22が、左側DMAエンジン24からの一連の
コマンドをそのFIFOバッファの容量まで、その左側
DMAエンジン24の終了を待つことなく、待ち行列化
することを可能にする。これは、コミュニケーション処
理がプロセッサ・メモリへの及びプロセッサ・メモリか
らのデータ転送と同時に生じることを可能にするもので
ある。
【0049】プロセッサ・ノードにおけるハードウエア
は、プロセッサのメイン・メモリを読取り及び書込むた
めに左側DMAエンジン24によって行われるマイクロ
チャネル読取り及び書込をマップする。
【0050】電源投入又はリセットに続いて、先ず、カ
ードが初期設定される時、左側DMAエンジン24は、
それのFIFOポートを連続的にチェックしてそこに現
れる最初のデータをDMAヘッダとして判断し、その左
側DMAエンジンがマイクロチャネル「マスタシップ」
(比較的長いアービトレーション・プロセスを要する)
を取らなければならないデータ転送をマイクロチャネル
において遂行する。アダプタは、このアービトレーショ
ン遅延の影響を最小にするためにいくつかのアクション
を取る。先ず、両方向FIFOバッファにヘッダが存在
することによって、左側DMAエンジンは、それがその
時マスタシップを持っていない場合、アービトレーショ
ン・プロセスを開始させられる。このアービトレーショ
ンは、ヘッダがそのFIFOバッファから読み取られる
前でも開始する。従って、FIFOアクセスとオーバラ
ップする。アービトレーションによる遅延を最小にする
ための第2の技法として、何らかのデータ又はヘッダが
両方向FIFOバッファに残っている限り、左側DMA
エンジン24はマイクロチャネルのマスタシップを保持
する。それは、両方向FIFOバッファが空である場
合、又はそのバスのルールによりそれがマスタシップを
開放させられる場合しかそのマスタシップを開放しな
い。
【0051】両方向FIFOバッファにおけるどの項目
がヘッダであるか及びどれがデータであるかに関する曖
昧さはない。DMA書込みの場合、ヘッダの後に、メイ
ン・プロセッサに書き込まれるべきデータが続く。ヘッ
ダは、転送の長さを指定することによって、両方向FI
FOバッファ26において如何に多くのデータ・ワード
がヘッダに後続するかも表す。左側DMAエンジン24
が両方向FIFOバッファ26からその指定された量の
データを転送してしまった後、それは、両方向FIFO
バッファにおける次の項目を新しいヘッダとして判断す
る。同様に、DMA読取りをリクエストするヘッダは単
独である。DMA読取りリクエストを処理した後、左側
DMAエンジン24は、次のFIFO項目を新しいヘッ
ダとして判断する。
【0052】マイクロプロセッサ22は、メイン・プロ
セッサ2の活動とそれの活動とを調整するために、それ
のDMAのプロセスをモニタできなければならない。こ
のオペレーションのための手段は、そのアダプタでは、
DMA未決及びDMA応答という2つのカウンタによっ
て与えられる。
【0053】DMA未決は、如何に多くの書込みリクエ
ストが完了を待って両方向FIFOバッファ26におい
て待ち行列しているかを表す。そのカウントは、1つの
完全なDMA書込みリクエストが両方向FIFOバッフ
ァに入った時(例えば、ヘッダの後に、そのヘッダで指
定された量のデータが続いた時)、インクレメントされ
る。そのカウントは、左側DMAエンジン24が書込み
を完了した時(例えば、左側DMAエンジンがヘッダに
より指定されたデータの最後の転送を遂行した後)、デ
クレメントされる。
【0054】DMA応答は、如何に多くの完了した読取
りリクエストがメモリ又は交換機構への転送を待ってF
IFOバッファで待ち行列しているかを表す。それは、
マイクロチャネル・データ読取りのリクエストが完了し
た時(例えば、DMAヘッダにおいてリクエストされた
すべてのデータがFIFOバッファの中に入れられてし
まった後)、インクレメントされる。DMA応答は、デ
クレメントされることがない。マイクロプロセッサは、
DMA応答のカウントがそのカウントの最後のチェック
以後にどのくらい増加したかを決定する。DMA未決の
デクレメントを監視しながら、マイクロプロセッサは、
書込みがマイクロチャネルに移されたことによってそれ
を知る。DMA応答のインクレメントを監視しながら、
マイクロプロセッサは、それの読取りリクエストがマイ
クロチャネルから戻ったことを知る。
【0055】このブリッジは、RHS及びLHSにおい
てDMAを実行する方法に関してコントロールをマイク
ロプロセッサに与えるのみならず、マイクロチャネルの
アドレス・スペースへの又はマイクロチャネルのアドレ
ス・スペースからのPIOに対する機能をマイクロプロ
セッサに与える。本発明の主要な利点の1つは、それ
が、コミュニケーション・タスクを分割して効率的なプ
ロトコルの開発を可能にするという大きな融通性を、ア
ダプタ・カード上で及びメイン・プロセッサにおいて走
るソフトウエアに与える、ということである。
【0056】マイクロプロセッサは、アダプタと交換機
構インターフェースを含むそれの機構とのコミュニケー
ションを、アダプタ上のバス遷移機構を通して開始させ
ることができる。バス遷移は、或範囲のマイクロチャネ
ル・アドレスを、アダプタのマイクロプロセッサ・バス
におけるサブセットのアドレスにマップする。このマッ
ピングは、DMAを除いたそのマイクロプロセッサにア
クセス可能なすべてのカード資源へのアクセスをメイン
・プロセッサに与える。
【0057】マイクロチャネルからマイクロプロセッサ
・バスへのデータ・パスは、FIFOバッファのチップ
内のバイパス・レジスタ又は「メールボックス」26c
(簡単に前述し、図2に示した)を使用して、FIFO
バッファをバイパスする。従って、これらのアクセスは
管理されない。それらは同時に生じる。両方向FIFO
バッファにおける制御信号は、そのFIFOバッファ・
パス又はメールボックス・パスが使用されるべきかどう
かを決定する。メイン・プロセッサがマイクロプロセッ
サ・バスへのアクセスを得る必要がある時、そのバス
は、マイクロプロセッサにより又は右側DMAエンジン
25により使用中であってもよい。データが、読取り時
にはメールボックスに又は書込み時にはメールボックス
から転送されてしまうまで、アダプタ・ロジックがマイ
クロプロセッサをバスから外すか、又はDMAを一時停
止する。
【0058】マイクロプロセッサのデータ・バスは8バ
イト幅であり、一方、マイクロチャネルのデータ・バス
は4バイト幅であるので、書込み時には、マイクロチャ
ネルのデータはマイクロチャネル・バス上にデマルチプ
レクスされなければならず、一方、読取り時には、マイ
クロプロセッサ・バスのデータはマイクロチャネル上に
マルチプレクスされなければならない。マイクロチャネ
ルがマイクロプロセッサ・バスの上位4バイトを持つか
又は下位4バイトを持つかは3番目に下位のマイクロチ
ャネル・アドレス・ビットA<2>によって決定され
る。A<2>が「高」レベルである時には、マイクロチ
ャネルは上位4バイトとコミュニケートし、それが
「低」レベルである時には、マイクロチャネルは下位4
バイトとコミュニケートする。
【0059】アダプタは、データのマルチプレクシング
及びデマルチプレクシングを遂行するための代替え手段
を提供する。モード32及びモード64と呼ばれるこれ
ら代替え手段は、マイクロプロセッサ・バスにおいて行
われるアクセスの数が異なっている。モード32では、
各マイクロチャネル・アクセスに対して1つのアクセス
がマイクロプロセッサ・バスにおいて生じる。一方、モ
ード64では、各2つのマイクロチャネル・アクセスに
対して1つのマイクロプロセッサ・アクセスが生じる。
【0060】モード64は、データが一方のバスから他
方のバスに送られる前に、そのデータがメールボックス
・レジスタにおいて累積されことを意味する。モード3
2は、アダプタ・メモリへのアクセス及びアダプタ・カ
ード上の殆どのレジスタへのアクセスに都合がよい。そ
れは、交換機構・インターフェース・ロジック内の8バ
イト幅FIFOバッファに対する読取り及び書込みがで
きず、これらのアクセスに対しては、モード64が使用
されなければならない。モード64は、メイン・プロセ
ッサが、8バイト位置合わせされた第1アクセスのマイ
クロチャネル・アドレス及び第1アドレスに後続した第
2アドレスでもってアダプタ・アクセスを対で行うこと
を必要とする。モード32とモード64との間の選択
は、メイン・プロセッサがそのアダプタ・カードに対し
て使用するマイクロチャネル・アドレスに基づいて、メ
イン・プロセッサにより動的に行われる。
【0061】メイン・プロセッサ2は、マイクロプロセ
ッサ22にアクセスし得ないそのカード上の構成レジス
タをアクセスすることもできる。これらのレジスタは、
アダプタを初期設定するために、それにマイクロチャネ
ル・アドレス機能を与えるために、並びにパリティ及び
マイクロチャネル・ストリーミングのような他の各種マ
イクロチャネル関連機能を選択的にイネーブル又はディ
スエーブルするために使用される。
【0062】(a)メイン・メモリFIFO管理 メイン・プロセッサのメイン・メモリにおけるFIFO
の管理を見ると、及び図2、図4乃至図7を参照する
と、メイン・システム(例えば、RISCシステム/6
000プロセッサ)の記憶装置に記憶されたパケットF
IFOのセット2b1,2b2におけるDMAオペレー
ションを使用して、交換パケットがアダプタに又はアダ
プタから移動される。FIFOの1つのセットはカーネ
ルのためのものであり、FIFOのもう1つのセットは
ユーザのためのものである。
【0063】各パケットFIFOのセットにおける1つ
のFIFOは出力パケットのためのものであり、各パケ
ットFIFOのセットにおける第2のFIFOは入力パ
ケットのためのものである。これら2つのFIFOの管
理は、メイン・プロセッサ2とマイクロプロセッサ22
(以下では、代わりに、コプロセッサとも呼ぶ)の間に
新規な方法で分配され、意外に優れた利点を示す。
【0064】出力側におけるメイン・プロセッサは高い
レベルでパケットをその出力FIFOへ移動させ、メッ
セージをそのメモリに入れることによってコプロセッサ
に知らせるであろう。コプロセッサはそれのハードウエ
アを使用してそのパケットをMSMUへ移動させるであ
ろう。
【0065】メイン・プロセッサ2への入力パケットに
関しては、コプロセッサは、パケットが到来したことを
認識し、そのパケットのヘッダを見つけ、それを何処に
移動すべきかを決定し、それのハードウエアを使用して
そのパケットを移動させる。コプロセッサのメモリ23
には、FIFO送信をミラーする制御情報(例えば、パ
ケットの長さ)がある。
【0066】前述のように、コミュニケーション・コプ
ロセッサ及びメイン・プロセッサは比較的低速のバスに
よって分離されている。各プロセッサは、それ自身の高
速ローカル・バス上にそれ自身のローカル・メモリを有
するが、低速バスを介した他のプロセッサのメモリへの
アクセスも有する。低速のバスを介した不必要なトラフ
ィックを回避して高速のバスにおける利用可能な殆どす
べてのサイクルがアプリケーション・データを移動する
ために使用されるよう、本発明は、低速のバスを介した
ポーリング(メイン・プロセッサを減速させ、貴重な対
域幅を利用する)を回避したFIFO管理方式を使用
し、それによって、システム全体の効率を高める。
【0067】本発明では、メイン・プロセッサの各FI
FOはそれと関連したヘッド・ポインタ及びテイル・ポ
インタを有する。データがFIFOに置かれる時、テイ
ル・ポインタがインクレメントされる。データがFIF
Oから取り出される時、ヘッド・ポインタがインクレメ
ントされる。本願の設計では、両方のポインタとも、ア
プリケーションによって最も容易に使用されるメイン・
プロセッサのメモリに記憶される。しかし、常套手段の
ようにヘッド・ポインタ及びテイル・ポインタの両方を
メイン・プロセッサのメモリに記憶するのではなく、む
しろ、メイン・プロセッサのメモリ及びコプロセッサの
メモリにヘッド・ポインタ及びテイル・ポインタを分布
させて、低速のバスを介した制御情報に関するポーリン
グを回避するように設計してもよい。
【0068】一般的には、出力FIFOの場合、テイル
・ポインタはコプロセッサのローカル・メモリに記憶さ
れ、ヘッド・ポインタはメイン・プロセッサのローカル
・メモリに記憶される。又、メイン・プロセッサは、そ
れがテイル・ポインタのキャッシュされたコピーを更新
する唯一のプロセッサであるので、そのキャッシュされ
たコピーを保持する。コプロセッサは、それがヘッド・
ポインタのキャッシュされたコピーを更新する唯一のプ
ロセッサであるので、そのキャッシュされたコピーを保
持する。
【0069】FIFO待ち行列は、複数個のエントリ位
置を有する循環式待ち行列と同じようにしてもよい。そ
の場合、その待ち行列におけるデータの量に従って、F
IFOのヘッド・ポインタが或位置を指すと、テイル・
ポインタは他の位置を指す。情報がその待ち行列(FI
FO)内に入れられると、テイル・ポインタはインクレ
メントされる。一方、情報がその待ち行列から取り出さ
れる時、ヘッド・ポインタがインクレメントされる。ヘ
ッド・ポインタ及びテイル・ポインタに関するすべての
演算は、FIFOのサイズを法とするものである。
【0070】メイン・プロセッサ2によるデータ送信オ
ペレーションに関しては、そのメイン・プロセッサがパ
ケットを送る準備ができた(例えば、パケットがFIF
Oにおけるエントリであり、パケット・フレームの形に
編成される)時、それは、先ず、それのローカル・メモ
リにおけるヘッド・ポインタをポーリングし、そしてテ
イル・ポインタのキャッシュされた値とそれを比較し
て、出力FIFO内にスペースがあるかどうかを決定す
る(例えば、テイル・ポインタ(+2)がヘッド・ポイ
ンタに等しくないかどうかを知るためにチェックす
る)。出力FIFO内にスペースがある場合、メイン・
プロセッサ2はパケットをそのFIFOに書き込み、更
新されたテイル・ポインタをコプロセッサのローカル・
メモリに書き込む。コプロセッサは、ヘッド・ポインタ
のキャッシュされた値を有する。コプロセッサは、出力
パケットをポーリングし、ヘッド・ポインタのキャッシ
ュされた値とそれのローカル・メモリに記憶されたテイ
ル・ポインタの値とを比較する。入力パケットに対して
は、テイル・ポインタはメイン・プロセッサのローカル
・メモリに記憶され、ヘッド・ポインタはコプロセッサ
のローカル・メモリに記憶され、そしてパケットを受信
するオペレーションは送信オペレーションと対称的にな
る。
【0071】ヘッド・ポインタ及びテイル・ポインタの
両方がメイン・プロセッサのローカル・メモリに記憶さ
れる標準的な実施方法では、コプロセッサによるポーリ
ングは低速のバスを介するものとなり、それによって、
そのバスにおけるアプリケーション・データとの競合を
生じさせ、ポーリング遅延の増加によりメッセージ待ち
時間を増加させる。そのような問題は、本発明による装
置及び方法によって回避される。
【0072】(b)送信FIFOオペレーション コプロセッサは「送信ヘッド」のキャッシュされたコピ
ーを有し、それがメイン・プロセッサのメモリにおける
「送信ヘッド」を更新する時にそれを周期的に更新す
る。更に、各パケットにおいて、論理的ノード番号及び
経路番号を含むダブルワードがその長さと共にデータに
先行し、従って、コプロセッサがそのパケットをDMA
転送する時、両方向FIFOバッファ26における第1
の項目はそのノード番号及び経路番号であり、コプロセ
ッサはそれをレジスタから呼び出し又はレジスタに記憶
する。それは、キー、ウインドウ(カーネル及びユーザ
に関連し、従って、データをどのFIFOに入れるべき
かをアダプタが知ることを可能にする)、及びこのパケ
ットの宛先の実(物理的)ノード番号を見つけるべくテ
ーブルをルック・アップするためにこのデータを使用す
る。
【0073】そのデータが有効なソースから来たことを
確認するために、キーが宛先に送られる。論理的ノード
番号が実ノード番号に変換され、しかる後、経路を決定
するために第2の変換がある。
【0074】従って、ユーザがどのようなタスク番号を
指定したかに関係なく、ノード及び経路情報は、データ
が正しい宛先(ノード)に到達すること及び間違ったタ
スク番号が指定された場合に無効をマークされることを
保証する。従って、ユーザは認められたアドレスだけを
アクセスすることができ、ノードは擬似データを受け取
らないように保護される。
【0075】メイン・プロセッサの「データ送信」オペ
レーションに対して、メイン・プロセッサ2は、先ず、
「送信テイル」(+2)のキャッシュされたコピーがそ
れ自身に記憶された「送信ヘッド」に等しくなく、コプ
ロセッサによって更新された(例えば、FIFOが満杯
でない)かどうかを決定するためのチェックをする。そ
れらが等しい場合、「送信テイル」が「送信ヘッド」に
等しくなくなるまで、従って、FIFOが満杯でなくな
るまで、ポーリングが内部的に生じる(例えば、ローカ
ル的には、メイン・プロセッサは「送信ヘッド」を読取
り、それをそれのキャッシュされた「送信テイル」に比
較する。メイン・プロセッサは低速のマイクロチャネル
・バスを介して送信する必要はない)。コプロセッサが
FIFOからデータを取り出す時、メイン・プロセッサ
は、FIFOに余地があることを直ちに(1トランザク
ション内で)知るであろう。従って、ポーリングは非常
に速いであろうし、DMAとの干渉はない。
【0076】しかる後、メイン・プロセッサは、そのメ
イン・プロセッサのメイン・メモリにおけるFIFOに
(FIFOの「送信テイル」位置に)データを移動す
る。更に、論理的コード及び経路がFIFOスロットの
中に移動させられる。しかる後、メイン・プロセッサは
コプロセッサのメモリ23における長さを更新し、「送
信テイル」(それのキャッシュされたコピー及びコプロ
セッサのメモリ・バージョンの両方)を更新する。
【0077】コプロセッサの「送信」オペレーションに
対しては、コプロセッサ22は、それのメモリにおける
コプロセッサの「送信テイル」のチェックをポーリング
でもって開始し、それによって、受信FIFOが空でな
いかどうかを決定する。従って、コプロセッサは、キャ
ッシュされた「送信テイル」(+1)が「送信ヘッド」
に等しいかどうかを決定する。それが等しい場合、「送
信テイル」(+1)が「送信ヘッド」に等しくなくなる
までポーリングが続く。コプロセッサはそれ自身の「送
信ヘッド」(及びDMAオペレーションによるメイン・
プロセッサ2の「送信ヘッド」)を更新する。それは、
メイン・プロセッサが「送信ヘッド」を更新する必要が
ないので、プロセスをずっと効率的にする。
【0078】しかる後(送るべきデータが存在すること
が一旦決定されてしまうと)、コプロセッサ22はデー
タ長(DRAMにあり、その長さはメイン・プロセッサ
2によってDRAMに入れられる)を読み取り、そして
DMA読取りリクエストを開始させるためにアダプタに
おけるDMAポート26bにDMA読取りリクエストを
書き込む。そのDMA読取りリクエストは、メイン・プ
ロセッサの出力FIFOからパケットをフェッチするよ
うにそしてそのパケットを両方向FIFOバッファ26
へ移動させるように左側DMAエンジン24に要求する
ものである。そこで、コプロセッサ22は、データが両
方向FIFOバッファ26に到達するのを待つ。データ
が到達すると、直ちに、コプロセッサは、両方向FIF
Oバッファ26から論理的ノードを受け取って変換(例
えば、ノード、キー、及びウインドウ)を遂行し、MS
MUヘッダ(ノード、キー、ウインドウ、及び長さ)を
書き込む。コプロセッサは右側DMAエンジンを開始さ
せて、両方向FIFOバッファ26からMSMU27に
データを移動させる。しかる後、コプロセッサは、「送
信ヘッド」のそれ自身のキャッシュされたコピーをイン
クレメントし、メイン・プロセッサ2のメモリにおける
「送信ヘッド」を移動又は更新する(DMAを介し
て)。
【0079】本発明の重要な特徴の1つは、本発明のア
ダプタによって、システムがポーリングを行っている
間、そのポーリングのすべてがローカル的に(例えば、
メイン・プロセッサ又はコプロセッサによって)行われ
るためにバスが影響されることがなく、従って、主とし
てデータの転送のために使用されるバスを使用する必要
をなくしたことである。従って、そのようなデータ転送
は本発明によって最適化される。更に、データが何処に
あるかを見つけるために、コプロセッサがメイン・メモ
リまで戻る必要はないけれども、「送信ヘッド」及び
「送信テイル」はメイン・メモリにおける位置を参照す
る。
【0080】(c)受信FIFOオペレーション 受信FIFOオペレーションに対しては、「受信テイ
ル」及び「受信ヘッド」が利用される。
【0081】コプロセッサ受信オペレーションに対して
は、先ず、パケットがMSMU27に到達し、従って、
受信オペレーションがコプロセッサ22において始ま
る。そのコプロセッサのキャッシュされた「受信テイ
ル」がコプロセッサのメモリ23における「受信ヘッ
ド」に比較される(例えば、FIFO受信に関するチェ
ックが行われる)。そのキャッシュされた「受信テイ
ル」(+2)が「受信ヘッド」に等しい場合、それら2
つが一致しなくなるまで、ポーリングがローカル的に行
われる。しかる後、コプロセッサ22はパケット・ヘッ
ダを読み取り、そしてそのパケット・ヘッダはウインド
ウ番号及びキー(及びキー・パーティション識別)に関
してチェックされ、タスク/ソースが有効であるかどう
か及びコプロセッサがノードに送話できるかどうかを決
定する。その着信パケットのキー(及びキー・パーティ
ション識別)とウインドウ番号との間に一致がある場
合、パケットは廃棄され、無効受信がログされる。ウイ
ンドウは、メイン・プロセッサのメイン・メモリにおけ
る2セットのパケットFIFO相互間を区別するために
使用される。
【0082】前述のキーとウインドウ番号との間の一致
がある場合、コプロセッサは、長さ(コプロセッサにお
ける)及びデータに対するDMA書込みリクエストを開
始させることによってパケットをメイン・プロセッサま
で移動させ、MSMU27からFIFOバッファ26へ
右側DMAエンジン25のデータ転送を開始する。(こ
のオペレーションは、長さ及びデータがコプロセッサに
より部分的に移動され、そして残りがそのDMAエンジ
ンによって移動されるという簡単に前述した代替えモー
ドにおいて有利に遂行される)。これは、マイクロチャ
ネルを通るバスの更なる最適化を可能にする。
【0083】同時に(例えば、両方向FIFOバッファ
26におけるパケットの到着と同時に)、受信FIFO
が満杯でないことを保証するためにその受信FIFOの
チェック(メイン・プロセッサのメモリにおける)があ
る。従って、キャッシュされた「受信テイル」(+2)
は「受信ヘッド」(例えば、それらが等しくない)に、
それらが等しくないことを保証するために、比較され
る。それが満杯である場合、コプロセッサにおいてロー
カル・ポーリングが生じる。ポーリングが生じている
間、メイン・プロセッサはアダプタを介して新しい「受
信ヘッド」を送り、それによって、コプロセッサ22に
おける「受信ヘッド」を更新する。
【0084】データが受信FIFOに送られた後、コプ
ロセッサのキャッシュにおける「受信テイル」は更新又
はインクレメントされ、そしてその「受信テイル」はD
MAを介してメイン・プロセッサ2まで転送される。
「ヘッド」及び「テイル」はメイン・プロセッサに目盛
り2aにおけるそのFIFOを参照し、コプロセッサ
は、どのようなパケットがメイン・プロセッサにメモリ
に置かれるかを制御する。メイン・プロセッサは、どの
ようなパケットがメイン・プロセッサのメモリ(FIF
O)から取り出されるかを制御する。メイン・プロセッ
サは、それがパケット全体を受信してしまいそしてその
パケットが読み取りのために利用可能であることを知ら
されるまで、そのパケットを読み取ろうとしないであろ
う。従って、パケットが存在するかどうかを知るために
マイクロチャネルを通してポーリングをする必要はない
が、代わりにローカル・ポーリングだけを行い、ローカ
ル・メモリ(例えば、コプロセッサのローカル・メモ
リ、又はメイン・プロセッサのローカル・メモリ)を調
べる。
【0085】上述の送信及び受信オペレーションを容易
に理解できるようそれらを順次的に説明したけれども、
両方向FIFOバッファを使用する送信及び受信オペレ
ーションは同時に遂行可能であり、上記オペレーション
の任意のインタリーブがある。実際に、本発明の装置
は、送信オペレーションの途中で他のパケットを受信す
ること及びその逆を行うことを可能にする。
【0086】(d)メイン・プロセッサの受信オペレー
ション メイン・プロセッサの受信オペレーションに対しては、
メイン・プロセッサはそれの「受信テイル」をそれのキ
ャッシュされた「受信ヘッド」(例えば、メイン・プロ
セッサのキャッシュに記憶されている)に比較する。
「受信ヘッド」(+1)がそのキャッシュされた「受信
ヘッド」に等しくない場合、プロセスは下記のように継
続する。そうでない場合、即ち、それらが等しい場合、
その「受信テイル」(+1)がそのキャッシュされた
「受信ヘッド」に等しくなくなるまで、ローカル・ポー
リングが行われる。しかる後、メイン・プロセッサはデ
ータの長さ(コプロセッサのメモリに記憶されている長
さデータ)を読み取り、そしてそのデータはFIFOか
ら除去される。メイン・プロセッサは、それのキャッシ
ュ及びコプロセッサのメモリにおける「受信ヘッド」を
インクレメント又は更新する。
【0087】前述のように、そのような(本発明によっ
て可能にされたような)オペレーションの主要な利点
は、メイン・プロセッサ2もコプロセッサ22も低速の
バスを通してポーリングを行う必要がないということで
ある。その代わりに、それら自身のメモリにおいて、ロ
ーカル・ポーリング(例えば、内部的に見つけるポーリ
ング)が生じる。これは、結果として、更に効率的なシ
ステムが生じるという利点がある。
【0088】(e)エラー検出 データ・パリティ及びCRCコード生成の独特な組合せ
は、マイクロチャネルからHPSを介する高い信頼性の
データ・パスを与える。
【0089】図8を参照すると、アダプタは、マイクロ
チャネル・アドレス及びデータに関するパリティ生成/
チェック・装置を提供する。それはパリティ生成/チェ
ック機構50を含むものである。パリティは、以下に示
されるように生成され、チェックされる。単一のビット
が、スレーブ及びマスタ、アドレス、及びデータのパリ
ティ・チェックをイネーブル及びディスエーブルする。
パリティは、マイクロプロセッサ22又はMSMU27
によってはサポートされない。これらのチップがデータ
のソースである時、それらのデータ・バス上でパリティ
が生成され、その宛先において、マイクロチャネルのパ
リティ・チェック回路51によりチェックされる。マイ
クロチャネルがパリティを生成する時、それはマイクロ
プロセッサのデータ・バスの直前でチェックされる。両
方向FIFOバッファ26はそのパリティ・チェックさ
れるデータ・バスの一部分である。アドレス・パリティ
はスレーブ・アクセスのデコード時にチェックされ、そ
してメイン・プロセッサのマイクロチャネル・アーキテ
クチャによって指定されるように、パリティが誤ってい
る場合、そのカードはマイクロチャネル上に応答を戻さ
ない(CD SFDBKは非アクティブのままであ
る)。又、マイクロプロセッサ・バスにおけるサイクル
は始まらない。
【0090】マイクロチャネルのスレーブ書込みの場
合、アクティブであるイネーブルを持ったバイトだけが
チェックされる。それはマイクロチャネルの仕様に指示
されている。マスタ・アクセスのためには、マイクロチ
ャネル・アドレス・パリティが、データ・パリティのよ
うに、マイクロプロセッサ・バス上で生成され、マイク
ロチャネルにおけるメイン・プロセッサのパリティ回路
によりその宛先でチェックされる。マイクロプロセッサ
・バスにおけるアドレス(右側DMAエンジン25によ
って発生されたアドレスのような)はマイクロプロセッ
サ22又はMSMU27によってチェックされない。
【0091】アダプタは各MSMUメッセージ・パケッ
ト上にCRCコードを生成し且つチェックする。好まし
くは、これは、パケット・ヘッダ、経路指定ワード(ノ
ードID)、及びメッセージ本体をカバーするものを含
む。
【0092】アダプタのCRC(例えば、エラー検出ア
ルゴリズム)はFIFO−Bデータ・バス上のデータを
モニタし、CRCコード(例えば、好ましくは、16ビ
ット)を生成する。そのアダプタは、マイクロチャネル
からFIFO−Bバスまでの及びFIFO−Bバスを含
むデータに関してパリティ・チェックを行い、FIFO
−BバスからHPS介して出力されるデータに関してC
RCチェックを行う。これは、マイクロチャネルからH
PSまでの(両方向における)データに関する完全なエ
ラー検出を与える。
【0093】CRCロジック51は2つのアクセス可能
なレジスタ(例えば、アダプタ初期設定時にコードによ
ってセットされたノードIDレジスタ及びパケット・ヘ
ッダが送信され又は受信される前の時間にプリセットさ
れるCRCチェック・レジスタ)を含む。1つの実施例
では、エラー検出は、次のように行われるのが好まし
い。
【0094】MSMUパケット送信の時、マイクロプロ
セッサ22は、4バイトのパケット・ヘッダをMSMU
ヘッダ・レジスタに書き込み、更に、宛先ノードIDを
ダブルワードの上位桁部分に入れるであろう。このノー
ドIDはMSMU27によって無視されるであろうが、
CRCチェック生成には使用されるであろう。
【0095】そこで、マイクロプロセッサ22はMSM
Uデータ・レジスタに経路を書き込むであろう。このダ
ブルワードはCRCロジック51によって無視されるで
あろう。マイクロプロセッサは、MSMUデータ・レジ
スタへのメッセージ・パケット本体の書込みを開始する
であろう。メッセージ本体は、DMAされたマイクロプ
ロセッサによって、又はマイクロプロセッサとDMAと
の組合せによって、直接に書込み可能である。CRC
は、CRCチェック・レジスタに転送されたすべてのメ
ッセージ・データをエンコードするであろう。そこで、
マイクロプロセッサはCRCチェック・レジスタを読み
取り、そしてMSMUトレーラ・レジスタのバイト0及
び1にチェック・ビットを書き込むであろう。これらは
そのパケットにおける最後のバイトでなければならな
い。
【0096】MSMUパケット受信の時、マイクロプロ
セッサはMSMUヘッダ・レジスタから4バイトのパケ
ット・ヘッダを読み取るであろう。CRCロジックは、
CRCチェックのために、それのノードIDレジスタを
そのダブルワードの上位桁部分に挿入するであろう。受
信カードのノードIDレジスタがパケットの受信時に使
用される宛先ノードIDに一致しない場合、CRC障害
が生じるであろう。これは、例えば、経路指定ビットが
欠落し、パケットが間違ったノードで終わる場合に起こ
るであろう。
【0097】そこで、マイクロプロセッサ22は、MS
MUデータ・レジスタからのメッセージ・パケット本体
の読取りを開始するであろう。メッセージ本体は、DM
Aされたマイクロプロセッサによって、又はマイクロプ
ロセッサとDMAとの組合せによって、直接に読取り可
能である。CRC51は、転送されたすべてのメッセー
ジ・データをチェックする。
【0098】そこで、マイクロプロセッサはMSMUト
レーラ・レジスタからトレーラを読取る。マイクロプロ
セッサは、受信時のエラーに関してチェックするために
CRCチェック・レジスタを読み取る。エラーが検出さ
れた場合、パケットは廃棄されなければならない。
【0099】アダプタ・カードのパリティ・エラーに対
しては、アダプタがパリティ・エラーを検出した場合、
CRCレジスタは、次のCRCチェック・レジスタの読
取りまで、一定値に強制されるであろう。これは、送信
が進行中であり且つトレーラが読み取られた時に送信ノ
ードがパリティ・エラーを検出した場合、受信ノードに
おけるCRCエラーを保証する。受信ノードがCRCエ
ラーを検出し且つトレーラCRCが一定値(送信時のパ
リティ・エラーが検出された時に送られた)であった場
合、送信ノードがパリティ・エラーを生じたということ
が最もあり得ることである。このケースを除いて、通常
は、そのコードがトレーラCRCを見つける理由がな
い。
【0100】勿論、本発明の技術範囲である他の方法を
使用して同じ効果が達成可能であり、従って、上記の実
施例は単なる例示的なものである。
【0101】更に、図9を参照すると、本発明による装
置は、クロックの脱落を検出し、それによってプロセッ
サ・ノードのハングアップを防ぐ機構を提供する。
【0102】一般的には、アダプタ(及びそのシステム
及びHPSにおいて使用される複数個のアダプタすべ
て)のためのクロックは、交換機構に跨るデータとメイ
ン・プロセッサとの同期化のために単一のソースによっ
て与えられる。ソース・クロックが失われた場合、その
カードはマイクロチャネルをハングアップし、その結
果、ノード全体をハングアップする。図9に示されるよ
うに、本発明によるクロック検出回路は、1対のカウン
タ61、62を走らせる発振器を作るためにロジックを
使用する。これらのカウンタは、所定の形状を持ったソ
ース・クロック発生の波形(例えば、その波形は矩形の
形状を持つ)の高レベル状態及び低レベル状態によって
交互にリセットされる。喪失クロックは、それらカウン
タのうちの少なくとも1つが、そのカードの残り部分を
リセット状態に保持させる最終的なカウントに達するこ
とを可能にする。これは、ソフトウエアが検出し得るマ
イクロチャネル・バス・エラーを生じさせ、そしてその
カードを調べて(プログラム式オプション選択(PO
S)レジスタを使用して)そのクロックの喪失を知るこ
とができる。
【0103】本発明によるクロック検出回路を更に詳細
に見ると、クロックはデータと共に外部ソースから到来
する。クロックが中断すること(その場合、メイン・プ
ロセッサは無期限にハングアップすることがある)は起
こり得ることである。いくつものシナリオが考えられ、
それらは通常のシステムにおいて問題となっていた。そ
のような状態は回避されなければならず、そのような状
態の防止は本発明のクロック回路によって積極的に与え
られる。
【0104】アダプタがスレーブとして働くマイクロチ
ャネル転送を上述した。そのスレーブ・モード(例え
ば、そのアダプタがメイン・プロセッサに対するスレー
ブとして働く)では、メイン・プロセッサはマイクロチ
ャネル・バス上にアドレスを置くことによって読取り又
は書込みオペレーションを開始する。そこで、一連のハ
ンドシェーキング信号(前述のマイクロチャネル仕様に
おいて定義され、本願においても組み込まれるような)
を交換することによって、データ転送が行われる。クロ
ックが存在しない場合、転送は開始可能であるが、それ
は終了せず、それによって、マイクロチャネルをハング
し、従って、メイン・プロセッサ(適切なハンドシェー
キングが生じないであろう)は終了しないであろう。
【0105】本発明によれば、アダプタにおいてクロッ
クが存在しない場合、そのアダプタはリセットされ(そ
れによって、サイクルを開始させない)、従ってメイン
・プロセッサはハングアップしないであろう。
【0106】同様に、オペレーションが転送サイクルの
途中にあり且つクロックが障害を生じた場合、トランザ
クションが直ちに終了するように、そのカードはリセッ
トされる。メイン・プロセッサはそのような状態をエラ
ーであると認識し、そのエラーをログして回復に進む
(例えば、クロックがないことを表すPOSレジスタを
調べる)。
【0107】メイン・プロセッサは、スレーブとマスタ
との間のすべてのマイクロチャネル・オペレーションを
指令するハンドシェーキング信号を通してトランザクシ
ョン・サイクルの終了を知る。これらの信号は、伝送に
対してはクロックに依存せず、カードがリセットされる
時にそれらのデフォルト状態に駆動される。
【0108】前述のように、本発明の主要な特徴の1つ
は、アダプタがメイン・プロセッサに関して、マスタと
して、又はスレーブとして動作し得ることである。マス
タとしてアダプタが動作する時にクロックが障害を生じ
た場合、ハンドシェーキング信号をそれらのデフォルト
状態(例えば、バスのハングアップはない)に駆動する
ことによってそのサイクルは直ちに終了する(その時、
アダプタはリセットされる)。メイン・プロセッサは、
そのサイクルが異常に終了したことを認識し、そのエラ
ーをログして回復に進む。
【0109】図9を参照すると、クロック回路が更に詳
細に示され、それは、それぞれが外部クロックから独立
したローカル・クロックによってクロックされ且つ外部
クロックによってリセットされる第1及び第2のカウン
タ61及び62を含んでいる。それら第1及び第2カウ
ンタの各々の最終カウント信号はORゲート63に結合
される。第1及び第2カウンタ61、62の最終カウン
ト値は、それぞれ、外部のクロック・ソースよりも大き
い周波数にセットされる。第1カウンタ61は低レベル
のリセットを有し、一方、第2カウンタ62は高レベル
のリセットを有する。外部クロックはそのカードのリセ
ットに接続される。外部クロックが高レベル誤動作を生
じた場合、第1カウンタは最終カウントに達するであろ
うし、外部クロックが低レベル誤動作を生じた場合、第
2カウンタが最終カウントに達するであろう。どのよう
にして外部クロックが誤動作を生じたかがわからないの
で、この装置が与えられる。2つのカウンタ61、62
を設けることは、両方の状況に備えるためである。同じ
理由で、外部クロックが適正に動作している場合、それ
は、カウンタがそれらの最終カウント値までカウントす
るよりも速くそれらカウンタをリセットしようとするで
あろう。カウンタがそれらの最終カウント値に到達する
場合、クロックは非常にゆっくりと動作するか、或いは
完全に停止してしまう。
【0110】ORゲート63の出力は、アダプタ及びカ
ード状態をログするための装置にリセット状態を伝送す
るためのリセット伝送装置64に接続され、それによっ
て、マイクロチャネルは、クロックが障害を生じた場合
にハング状態のままにされることはない。従って、カー
ドをリセットするための及びPOSレジスタへの入力の
ためのドライバが設けられる。更に、詳しく言えば、P
OSレジスタにおける「リセット」ビット及びそれにお
ける「クロック」ビットがセットされる。
【0111】従って、第1カウンタ又は第2カウンタが
最終的な切換カウントに達した場合、そのカードはリセ
ットされ、「クロックなし」がPOSレジスタに記録さ
れるであろう。アダプタがリセットされる場合、POS
レジスタにおける「クロックなし」の記録を除くと、ス
レーブ・アクセスは許可されない。更に、アダプタはリ
セットされるので、開始されるマスタ・アクセスはない
であろう。進行中のすべてのスレーブ・アクセス又はマ
スタ・アクセスは直ちに終了させられる。メイン・プロ
セッサ2によるPOSアクセスはクロックを必要とせ
ず、従って、クロックに何が起こったかをそのクロック
が決定できない場合でも、メイン・プロセッサはPOS
レジスタをアクセスすることができる。
【0112】従って、本発明によって、メイン・プロセ
ッサはハングアップされないし、この状態は本発明の装
置によって積極的に与えられる。更に、本発明の装置
は、その装置がバスにおける状態を変化するという点で
新規且つ独特である。
【0113】従って、本発明によれば、融通性を高め且
つメイン・プロセッサが高パフォーマンス交換機構との
コミュニケーションを待つ必要をなくするアダプタが提
供される。従って、メイン・プロセッサは、アダプタが
主としてデータ転送タスクを遂行する間、他のタスクを
遂行することができる。更に、アダプタは、データ転送
オペレーションにおいてスレーブとして及びマスタとし
て働くことができる。更に、本発明は、アダプタによっ
て高パフォーマンス交換機構の二重チャネルに接続され
たメイン・プロセッサのFIFOを管理する方法を提供
する。従って、比較的低速のバスを介したポーリングは
起こらず、比較的高速のバスがデータ転送オペレーショ
ンのために維持される。更に、転送されたデータの整合
性を保証するための方法及び装置が提供される。その方
法及び装置では、オーバラップしたCRC及びパリティ
・チェックが与えられる。更に、本発明は、データ転送
オペレーション中にクロック障害が生じた場合、メイン
・プロセッサのハングアップを防止する改良されたクロ
ック・エラー検出回路を提供する。
【0114】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0115】(1)メイン・プロセッサのチャネルと二
重チャネルとの間でデータを転送するアダプタ装置であ
って、メイン・プロセッサ・チャネルに接続された第1
バスと、前記第1バスと前記二重チャネルとの間に接続
され、前記第1バスに接続された第1ポート及び前記二
重チャネルに接続された第2ポートを有する両方向ファ
ーストイン・ファーストアウト(FIFO)バッファ
と、前記FIFOバッファの第2ポート及び前記二重チ
ャネルに接続され、前記メイン・プロセッサからのメッ
セージ及び前記メイン・プロセッサへのメッセージをパ
ケット化及びパケット解除し及びコミュニケーション・
プロトコルを実行するマイクロプロセッサと、前記マイ
クロプロセッサに接続された第2バスと、前記第2バス
と動作関係に接続された動的ランダム・アクセス・メモ
リ(DRAM)と、前記第1バスと前記FIFOバッフ
ァとの間に接続され、前記メイン・プロセッサと前記F
IFOバッファとの間でデータを転送する第1ダイレク
ト・メモリ・アクセス(DMA)エンジンと、前記FI
FOバッファと前記第2バスとの間に接続され、前記F
IFOバッファと前記DRAMとの間でデータを転送す
る第2ダイレクト・メモリ・アクセス(DMA)エンジ
ンと、前記マイクロプロセッサと前記二重チャネルとの
間に動作関係に接続され、前記第2バスを前記二重チャ
ネルにインタフェースするメモリ交換管理装置(MSM
U)と、を含み、前記コミュニケーション・プロトコル
に従って前記マイクロプロセッサと前記二重チャネルと
の間でメッセージがコミュニケートされること、及び前
記第2DMAエンジンにより行われたDMA転送に関係
なく、前記メッセージに対するデータのDMA転送が前
記第1DMAエンジンによって行われること、を特徴と
するアダプタ装置。
【0116】
【発明の効果】本発明によって、アダプタがデータ転送
タスクを行っている間でも、メイン・プロセッサは交換
機構とのコミュニケーションを待つことなく他のタスク
を遂行することができる。
【図面の簡単な説明】
【図1】プロセッサと高パフォーマンス交換機構との間
におけるアダプタの全体的な位置関係を概略的に示す。
【図2】アダプタ及びそれの構成を更に詳細に示す。
【図3】メイン・メモリに複数セットのパケットFIF
Oを含む本発明のシステムを示す。
【図4】コプロセッサ及びメイン・プロセッサによる送
信及び受信オペレーション、及びメイン・プロセッサお
けるパケットFIFOの管理の流れ図の一部分を示す。
【図5】コプロセッサ及びメイン・プロセッサによる送
信及び受信オペレーション、及びメイン・プロセッサお
けるパケットFIFOの管理の流れ図の一部分を示す。
【図6】コプロセッサ及びメイン・プロセッサによる送
信及び受信オペレーション、及びメイン・プロセッサお
けるパケットFIFOの管理の流れ図の一部分を示す。
【図7】コプロセッサ及びメイン・プロセッサによる送
信及び受信オペレーション、及びメイン・プロセッサお
けるパケットFIFOの管理の流れ図の一部分を示す。
【図8】本発明によるアダプタによって転送されたデー
タの整合性を保証するための装置及びパリティ/CRC
エラー検出を遂行するための装置を示す。
【図9】本発明によるクロック回路を示す。
【符号の説明】
2 メインプロセッサ 2a メイン・メモリ 2b FIFO記憶装置 20 アダプタ・カード 21 マイクロチャネル・インターフェース 22 マイクロプロセッサ 23 DRAM 24 左側DMAエンジン 25 右側DMAエンジン 26 両方向FIFOバッファ 27 メモリ及び交換機構管理装置(MSMU)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・エイ・スウィッツ アメリカ合衆国ニューヨーク州、マウン ト・キスコ、バーカー・ストリート 28、アパート ジー・1 (72)発明者 シンプイ・ズィー アメリカ合衆国ニューヨーク州、キング ストン、メイン・ストリート 320 (72)発明者 ベン・ジェイ・ナサンソン アメリカ合衆国ニュージャージー州、テ ィーネック、リンデン・アヴェニュー 701

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】メイン・プロセッサのチャネルと二重チャ
    ネルとの間でデータを転送するアダプタ装置であって、 メイン・プロセッサ・チャネルに接続された第1バス
    と、 前記第1バスと前記二重チャネルとの間に接続され、前
    記第1バスに接続された第1ポート及び前記二重チャネ
    ルに接続された第2ポートを有する両方向ファーストイ
    ン・ファーストアウト(FIFO)バッファと、 前記FIFOバッファの第2ポート及び前記二重チャネ
    ルに接続され、前記メイン・プロセッサからのメッセー
    ジ及び前記メイン・プロセッサへのメッセージをパケッ
    ト化及びパケット解除し及びコミュニケーション・プロ
    トコルを実行するマイクロプロセッサと、 前記マイクロプロセッサに接続された第2バスと、 前記第2バスと動作関係に接続された動的ランダム・ア
    クセス・メモリ(DRAM)と、 前記第1バスと前記FIFOバッファとの間に接続さ
    れ、前記メイン・プロセッサと前記FIFOバッファと
    の間でデータを転送する第1ダイレクト・メモリ・アク
    セス(DMA)エンジンと、 前記FIFOバッファと前記第2バスとの間に接続さ
    れ、前記FIFOバッファと前記DRAMとの間でデー
    タを転送する第2ダイレクト・メモリ・アクセス(DM
    A)エンジンと、 前記マイクロプロセッサと前記二重チャネルとの間に動
    作関係に接続され、前記第2バスを前記二重チャネルに
    インタフェースするメモリ交換管理装置(MSMU)
    と、 を含み、 前記コミュニケーション・プロトコルに従って前記マイ
    クロプロセッサと前記二重チャネルとの間でメッセージ
    がコミュニケートされること、及び前記第2DMAエン
    ジンにより行われたDMA転送に関係なく、前記メッセ
    ージに対するデータのDMA転送が前記第1DMAエン
    ジンによって行われること、 を特徴とするアダプタ装置。
JP7014599A 1994-04-05 1995-01-31 プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置 Expired - Lifetime JP2654369B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US223144 1994-04-05
US08/223,144 US5664223A (en) 1994-04-05 1994-04-05 System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively

Publications (2)

Publication Number Publication Date
JPH07288535A JPH07288535A (ja) 1995-10-31
JP2654369B2 true JP2654369B2 (ja) 1997-09-17

Family

ID=22835229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7014599A Expired - Lifetime JP2654369B2 (ja) 1994-04-05 1995-01-31 プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置

Country Status (3)

Country Link
US (1) US5664223A (ja)
EP (1) EP0676701A1 (ja)
JP (1) JP2654369B2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829010A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Apparatus and method to efficiently abort and restart a primary memory access
US6308248B1 (en) * 1996-12-31 2001-10-23 Compaq Computer Corporation Method and system for allocating memory space using mapping controller, page table and frame numbers
JP3602293B2 (ja) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US6192428B1 (en) * 1998-02-13 2001-02-20 Intel Corporation Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached
US6038630A (en) * 1998-03-24 2000-03-14 International Business Machines Corporation Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses
US6240492B1 (en) 1998-05-22 2001-05-29 International Business Machines Corporation Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests
US6418494B1 (en) 1998-10-30 2002-07-09 Cybex Computer Products Corporation Split computer architecture to separate user and processor while retaining original user interface
WO2000026797A1 (en) * 1998-10-30 2000-05-11 Cybex Computer Products Corporation Split computer
US6351784B1 (en) 1998-12-28 2002-02-26 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US6347349B1 (en) 1998-12-28 2002-02-12 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
JP2000347987A (ja) * 1999-06-07 2000-12-15 Matsushita Electric Ind Co Ltd Dma転送装置
US6757762B1 (en) * 1999-10-29 2004-06-29 Unisys Corporation Multi-mode processor bus bridge
US6725216B2 (en) * 2001-08-10 2004-04-20 International Businesss Machines Corporation Partitioning search key thereby distributing table across multiple non-contiguous memory segments, memory banks or memory modules
US6721310B2 (en) * 2001-11-02 2004-04-13 Transwitch Corporation Multiport non-blocking high capacity ATM and packet switch
WO2003042811A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Efficient fifo communication using semaphores
EP1514172B1 (en) * 2002-06-07 2006-04-05 Koninklijke Philips Electronics N.V. Spacecake coprocessor communication
US7321623B2 (en) 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US6954810B2 (en) * 2003-06-30 2005-10-11 Lsi Logic Corporation Transparent switch
US6977656B1 (en) 2003-07-28 2005-12-20 Neomagic Corp. Two-layer display-refresh and video-overlay arbitration of both DRAM and SRAM memories
US9560371B2 (en) 2003-07-30 2017-01-31 Avocent Corporation Video compression system
US7296101B2 (en) * 2004-02-17 2007-11-13 Intel Corporation Method and system for using a patch module to process non-posted request cycles and to control completions returned to requesting device
US7457461B2 (en) 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
CN100354842C (zh) * 2005-02-23 2007-12-12 华为技术有限公司 一种直接存储器存取装置及单通道双向数据交互实现方法
US7783820B2 (en) * 2005-12-30 2010-08-24 Avocent Corporation Packet-switched split computer having disassociated peripheral controller and plural data buses
WO2007096712A1 (en) * 2006-02-20 2007-08-30 Freescale Semiconductor, Inc. A method and device for exchanging data using a virtual fifo data structure
MY149291A (en) 2006-04-28 2013-08-30 Avocent Corp Dvc delta commands
US20090132747A1 (en) * 2007-11-19 2009-05-21 International Business Machines Corporation Structure for universal peripheral processor system for soc environments on an integrated circuit
US20100161909A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Systems and Methods for Quota Management in a Memory Appliance
US20100161879A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Efficient and Secure Main Memory Sharing Across Multiple Processors
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
JP6379905B2 (ja) * 2014-09-16 2018-08-29 富士通株式会社 制御装置および制御方法
US9857975B2 (en) 2015-06-26 2018-01-02 International Business Machines Corporation Non-volatile memory drive partitions within microcontrollers
US10235176B2 (en) 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
TW201935306A (zh) 2018-02-02 2019-09-01 美商多佛微系統公司 用於安全初始化的策略連結及/或載入之系統和方法
US11150910B2 (en) 2018-02-02 2021-10-19 The Charles Stark Draper Laboratory, Inc. Systems and methods for policy execution processing
US11797398B2 (en) 2018-04-30 2023-10-24 Dover Microsystems, Inc. Systems and methods for checking safety properties
TW202022678A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514808A (en) * 1978-04-28 1985-04-30 Tokyo Shibaura Denki Kabushiki Kaisha Data transfer system for a data processing system provided with direct memory access units
US4750107A (en) * 1985-01-07 1988-06-07 Unisys Corporation Printer-tape data link processor with DMA slave controller which automatically switches between dual output control data chomels
CA1257400A (en) * 1985-05-21 1989-07-11 Akihiro Sera Input/output control system
JP2745521B2 (ja) * 1988-02-23 1998-04-28 株式会社日立製作所 フレーム送信方法
US5047927A (en) * 1988-10-28 1991-09-10 National Semiconductor Corporation Memory management in packet data mode systems
JPH077955B2 (ja) * 1989-05-13 1995-01-30 株式会社東芝 データ通信制御装置
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5379381A (en) * 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
AU4400793A (en) * 1992-06-12 1994-01-04 Dow Chemical Company, The Intelligent process control communication system and method
US5420984A (en) * 1992-06-30 1995-05-30 Genroco, Inc. Apparatus and method for rapid switching between control of first and second DMA circuitry to effect rapid switching beween DMA communications

Also Published As

Publication number Publication date
EP0676701A1 (en) 1995-10-11
JPH07288535A (ja) 1995-10-31
US5664223A (en) 1997-09-02

Similar Documents

Publication Publication Date Title
JP2654369B2 (ja) プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置
JP2802043B2 (ja) クロック故障検出回路
US5448558A (en) Method and apparatus for managing packet FIFOS
JP5537919B2 (ja) データ転送のためのシステムおよび方法
US6145016A (en) System for transferring frame data by transferring the descriptor index data to identify a specified amount of data to be transferred stored in the host computer
US6049889A (en) High performance recoverable communication method and apparatus for write-only networks
US6795850B2 (en) System and method for sharing memory among multiple storage device controllers
EP0422103B1 (en) I/o bus to system bus interface
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
US6061274A (en) Methods and apparatus for message transfer in computer storage system
JPH06309252A (ja) 相互接続インタフェース
JP2005513594A (ja) 直接メモリアクセス(dma)転送バッファプロセッサ
KR20010056536A (ko) 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기
JP2688171B2 (ja) 通信アダプタ並びにデータ転送システムおよび方法
US7043612B2 (en) Compute node to mesh interface for highly scalable parallel processing system and method of exchanging data
JP3600536B2 (ja) 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム
JP2000029826A (ja) 多重レベルキャッシングを有する3ポ―トfifoデ―タバッファ
JP3372948B2 (ja) 高速アクティブ・バス
JP2004318628A (ja) 演算処理装置
US6434592B1 (en) Method for accessing a network using programmed I/O in a paged, multi-tasking computer
EP0676697A1 (en) Message data error detection circuit
JPH0324634A (ja) 二重系システム装置
JPH0675796A (ja) パリティエラー記録装置
JP3450392B2 (ja) インタフェース装置及び周辺機器
JPH064437A (ja) エラー表示機能付きファーストインファーストアウトバッファ及びそれを使用した読出し装置の制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20050301

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20050309

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 3

Free format text: PAYMENT UNTIL: 20080318

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 4

Free format text: PAYMENT UNTIL: 20090318

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20100318

LAPS Cancellation because of no payment of annual fees