JPH07281976A - パケットfifoを管理する方法 - Google Patents

パケットfifoを管理する方法

Info

Publication number
JPH07281976A
JPH07281976A JP7033547A JP3354795A JPH07281976A JP H07281976 A JPH07281976 A JP H07281976A JP 7033547 A JP7033547 A JP 7033547A JP 3354795 A JP3354795 A JP 3354795A JP H07281976 A JPH07281976 A JP H07281976A
Authority
JP
Japan
Prior art keywords
fifo
data
main processor
dma
processor
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.)
Pending
Application number
JP7033547A
Other languages
English (en)
Inventor
Kevin J Gildea
ケヴィン・ジョン・ギルディア
Peter H Hochschild
ペーター・ハイナー・ホーホシルト
Yun-Pong Huang
ユン=ポン・ファン
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 JPH07281976A publication Critical patent/JPH07281976A/ja
Pending 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

Abstract

(57)【要約】 【目的】 プロセッサが高性能交換機との通信を待つ必
要がなく、したがってアダプタが主にデータ転送タスク
を実行する間にメイン・プロセッサが他のタスクを実行
できる、アダプタを提供することである。 【構成】 メイン・プロセッサおよびそのメモリとパケ
ット交換機との間でデータを転送する装置は、メイン・
プロセッサとそのメモリに結合された第1のバスと、第
2のバスと第1のポートと、第2のポートとを有する両
方向先入れ先出し(FIFO)バッファと、通信プロセ
ッサと、メモリと、データを転送する第1の直接メモリ
・アクセス(DMA)エンジンと、データを転送する第
2の直接メモリ・アクセス(DMA)エンジンと、パケ
ット交換インターフェースとを含み、通信プロトコルに
従ってメイン・プロセッサのメモリと交換機の間でパケ
ットが通信され、第1と第2のDMAエンジンは、互い
のパケットのデータを独立して転送する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、高性能パケッ
ト交換機とメイン・プロセッサとの間の通信リンクを提
供する装置、メイン・プロセッサ内で先入れ先出しバッ
ファを管理する改善された方法、その装置のエラー検出
回路、およびその装置用の改善されたクロック障害検出
回路に関する。
【0002】
【従来の技術】並列処理システムでは、システムの性能
は、プロセッサ性能と通信性能によって決まる。通信性
能は、最も重要なものであり、2つの構成要素、待ち時
間と帯域幅に分けられる。効率的な通信サブシステムを
作成するためには、この2つの構成要素を最適化しなけ
ればならない。
【0003】従来のシステムでは、メイン・プロセッサ
(たとえば、RISCシステム/6000プロセッサな
ど)と高性能交換(HPS)機構との間に、アダプタな
どの装置が使われていた。しかし、このアダプタは、メ
イン・プロセッサが、比較的低速のバスを通るすべての
データの移動に関わることを必要とする。このため、デ
ータ転送が行われている間は、メイン・プロセッサは他
のタスクを実行できなかった。この問題のため、メイン
・プロセッサを最適化することができない。
【0004】前の課題を解決するためにアダプタに補助
処理機構を使用する従来のシステムの関連する問題は、
メイン・プロセッサと補助処理機構の間の比較的低速の
バスを通って不必要なトラフィックが伝えられ、そのた
め、そのバス上で使用できるすべてのサイクルが、必ず
しもアプリケーション・データを移動するために使用で
きないことであった。このため、システムの通信効率が
低下していた。
【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のバスに動作
可能に結合されたメモリと、メイン・プロセッサとFI
FOバッファの間でデータを転送するために第1のバス
とFIFOバッファの間に結合された第1の直接メモリ
・アクセス(DMA)エンジンと、FIFOバッファと
第2のバスの間でデータを転送するためにFIFOバッ
ファと第2のバスの間に結合された第2の直接メモリ・
アクセス(DMA)エンジンと、第2のバスを交換機に
インターフェースするために第2のバスと交換機の間に
動作可能に結合されたパケット交換インターフェースと
を含み、通信プロトコルにしたがってメイン・プロセッ
サのメモリと交換機の間でパケットが通信され、第1と
第2のDMAエンジンは、互いに独立にパケットのデー
タを転送する。
【0018】本発明の第2の態様は、メイン・プロセッ
サが、第1のバスおよびそれに接続されたメイン・メモ
リを有し、アダプタが、通信補助プロセッサと、第2の
バスと、それに接続されたローカル・メモリと、メイン
・メモリとローカル・メモリとの間のDMA転送を実施
する直接メモリ・アクセス(DMA)手段とを含む、ア
ダプタによって配布機構に結合されたメイン・プロセッ
サの先入れ先出し(FIFO)バッファのデータ管理方
法であって、各パケットFIFOが先頭ポインタおよび
それと関連する末尾ポインタを有し、メイン・メモリの
任意のパケットFIFOとローカル・メモリのパケット
FIFOが送信FIFOであり、メイン・メモリの他の
パケットFIFOまたはローカル・メモリのパケットF
IFOが受信FIFOである、メイン・メモリとローカ
ル・メモリの両方に記憶された1組のパケットFIFO
を提供する段階と、送信FIFOから受信FIFOへの
パケット・データのDMA転送を実行する段階とを含
み、DMA転送が、先頭ポインタおよび末尾ポインタ情
報に関する第1と第2のバスを通るポーリングなしで、
パケット・データのDMA転送をいつ開始し終了するか
を決定するために受信FIFOにおいて使用される先頭
ポインタおよび末尾ポインタの情報を含む方法を提供す
る。
【0019】本発明の第3の態様は、メイン・プロセッ
サと交換機の間に結合されたアダプタと一緒に使用する
クロック障害検出回路を含み、このクロック障害検出回
路は、前記アダプタに結合された出力を有し、所定の形
状(たとえば、矩形波)を有する波を生成する、アダプ
タの外部のクロック・ソースと、アダプタ内にあるカウ
ンタ機構と、リセット装置と、リセット伝送装置とを含
み、カウンタ機構は、クロック・ソースの出力に接続さ
れた、波が所定レベル(たとえば、「高」)を有するか
どうかをセンスするための第1の入力と、所定の形状を
有し外部ソースとは独立なローカルに生成された波と、
クロック・ソースの出力に接続された、波が第2の所定
レベル(たとえば、「低」)かどうかをセンスするため
の第2の入力と、外部ソースと独立な所定の形状(たと
えば、矩形波)を有するローカルに生成された波によっ
てクロックされ、開始値から終了値までのカウントを開
始するために第1と第2の入力に接続されたカウンタ
と、カウンタが終了値までカウントしたのに応答する出
力とを含み、未着クロック信号の遷移によってカウント
機構が終了値に達することができるように、カウンタの
周波数が、所定の形状を有する波の周波数よりも大きく
なっており、リセット装置が、アダプタをリセットする
ために、カウント機構の前記出力に動作可能に結合さ
れ、リセット伝送装置が、クロック信号の遷移が失なわ
れた場合に、メイン・プロセッサがハング状態のままに
ならないように、アダプタのリセット状態をメイン・プ
ロセッサに伝送するために、リセット装置とメイン・プ
ロセッサの間に動作可能に結合されている。
【0020】本発明の第4の態様において、本発明は改
良されたエラー検出回路を提供し、このエラー検出回路
は、パリティ・データを含むメッセージ・データを送信
するためのメイン・プロセッサと、メッセージ・データ
を受信するためのメッセージ受信装置と、メイン・プロ
セッサとメッセージ受信装置の間に結合され、メイン・
プロセッサからメッセージ・データを受け取り、アダプ
タにメッセージ・データを送信するためのアダプタと、
アダプタ内にあって、アダプタからメッセージ受信装置
に送信されるメッセージ・データの終りに送信される、
メッセージ受信装置が受け取ったメッセージ・データ内
のエラーを検出するための巡回冗長検査(CRC)コー
ドを生成するCRC発生器と、CRC発生器に結合さ
れ、メイン・プロセッサからアダプタに伝送されるパリ
ティ・データを検出するためのパリティ検出器とを含
み、このパリティ検出器が、パリティ・エラーを検出し
たときにアダプタから受信装置に送信されるメッセージ
・データの終りにCRCコードがエラーを含むように、
パリティ・エラーが検出されたとき、CRC発生器にC
RCコード内にエラーを生成させる手段を含む。
【0021】
【実施例】次に図面、特に図1と図2を参照すると、本
発明によるアダプタ1が示されている。アダプタ1は、
メイン・プロセッサ・ノード2(たとえば、本発明の出
願人によって製造されたコード名RISCシステム/6
000(インターナショナル・ビジネス・マシーンズ・
コーポレイションの登録商標)が好ましい)と高性能交
換機(HPS)3(たとえば、本発明の出願人がその特
許権を有するパケット交換機)との間で通信を実行する
ための通信装置である。アダプタは、マイクロチャネル
・バスのノードとインターフェースすることができる。
【0022】図2に、アダプタ20とその構成をより詳
細に示す。このアダプタ・カードは、メイン・プロセッ
サがHPSを介して通信できるようにし、このアダプタ
による通信は、アダプタまたはプロセッサ・ノードによ
って開始される。このカードは、メイン・プロセッサの
マイクロチャネルをアダプタにインターフェースするマ
イクロチャネル・インターフェース21を含む。メイン
・プロセッサは、先入れ先出し(FIFO)バッファ2
bを含むメイン・メモリ記憶装置2aを有する。
【0023】アダプタは、ストリーミング・マスタある
いは非ストリーミング・スレーブとして機能できる。具
体的には、アダプタは、ピーク帯域幅80MB/sのマ
イクロチャネル・ストリーミング・マスタである。10
MHzの転送クロックを使って8バイトまたは4バイト
のストリーミングを支援する。アダプタはまた、非スト
リーミング・マイクロチャネルのスレーブとしても機能
できる。クロック速度は、HPSと同期する40MHz
が好ましい。
【0024】マイクロチャネル・インターフェース21
の他に、カードはマイクロプロセッサ22を含む(たと
えば、64ビットのデータ・バスなどを有することが好
ましい)。このマイクロプロセッサは、通信補助プロセ
ッサとして使用される。
【0025】また、マイクロプロセッサ22には、十分
な大きさ(たとえば、8メガバイト)のエラー訂正済ダ
イナミック・ランダム・アクセス・メモリ23(DRA
M)が動作可能に結合されている。DRAM23はマイ
クロプロセッサのプログラム記憶域であり、プロトコル
・データ構造を保持する。また、アダプタとメイン・プ
ロセッサとの間のメッセージ引渡し領域としても使用で
きる。後でさらに詳しく述べるように、DRAM23に
は、補助プロセッサとマイクロチャネルの両方からアク
セス可能である。
【0026】メイン・プロセッサと2重チャネルとの間
での直接メモリ・アクセスを提供する直接メモリ・アク
セス(DMA)エンジンが、少なくとも2つ(たとえ
ば、「左側の」DMAエンジン24と「右側の」DMA
エンジン25)ある。
【0027】さらに、両方向先入れ先出し(FIFO)
バッファ26(たとえば、少なくとも4KBの容量を有
することが好ましい)が、マイクロチャネル・インター
フェース21に結合されている。両方向FIF0は、D
MAエンジン24、25(図2に破線で示す)によって
制御することができ、第1のポート26aと第2のポー
ト26b(たとえば、AポートとBポート)を含む。さ
らに、後で詳しく説明するように、両方向FIFO26
は、FIFOバッファを迂回するために使用できる内部
レジスタ(たとえば、「メールボックス」)26cを有
する。
【0028】メモリとして知られる標準セルASIC
(特定用途向け集積回路)と交換管理装置27(MSM
U)は、複数のレジスタを含み、マイクロプロセッサ2
2、両方向FIFO、HPSおよびDRAM23に動作
可能に結合され、DRAM23用のDRAM制御機構と
して機能する。MSMU27は、マイクロプロセッサ用
のDRAM制御機構であり、マイクロプロセッサをHP
Sにインターフェースする。
【0029】MSMUは、マイクロプロセッサから、ま
たはメールボックスを介してメイン・プロセッサからア
クセスできる。DMAエンジン24、25は、2つのア
ダプタ・バス28、29のそれぞれ上で、ストリーミン
グ・データ転送を提供する。左側では、左側DMAエン
ジン24がマイクロチャネルと両方向FIFOバッファ
22の間で転送し、右側では、右側エンジン25が両方
向FIFOとマイクロプロセッサ・バスの間で転送す
る。
【0030】両方向FIFO26は、160Mバイト/
秒のマイクロプロセッサ・バス28(たとえば、比較的
高速のバス)を、低速のマイクロチャネル・バス29か
ら切り離して、両方のバスの同時使用を可能にする。こ
れにより、マイクロプロセッサが計算を実行している間
に、データをマイクロチャネル上で転送できるようにな
る。マイクロチャネルに関連するマイクロプロセッサ・
バスは高速なので、マイクロプロセッサによる計算を、
HPSとの間のデータ転送と時間多重化できる。このた
め、メイン・プロセッサが、転送を待っている間に他の
処理を自由に行えるので、従来のシステムに比べて大き
な利点が提供される。
【0031】前述し後でさらに詳しく述べるように、こ
のアダプタは、マイクロチャネル・スレーブとしてメイ
ン・プロセッサからアクセスでき、あるいはマイクロチ
ャネル・マスタとしてメイン・プロセッサのメモリから
アクセスできる。カードがマイクロチャネル・アドレス
を復号すると、マイクロプロセッサはそのバスから切り
離されるので、マイクロチャネルのマスタは、そのバス
を1サイクルの間(たとえば、1マイクロチャネル・サ
イクル)使用できる。その後、制御はマイクロプロセッ
サに戻る。アダプタ上のシステム・データをメイン・プ
ロセッサ上のユーザ空間アプリケーションから保護する
ためのアクセス検査がハードウェアで提供される。
【0032】さらに、カード構成可能レジスタ(たとえ
ば、カードが復号するマイクロチャネル・アドレスを確
立する調歩式マイクロプロセッサ、リセット・カードな
ど)が、マイクロチャネルを介してメイン・プロセッサ
にアクセスできる。
【0033】電源を入れると、メイン・プロセッサは、
マイクロプロセッサ・コードをメールボックスを介して
アダプタDRAMにロードし、構成可能レジスタを介し
てマイクロプロセッサの実行を開始する。右側DMAエ
ンジンまたはメイン・プロセッサが、マイクロプロセッ
サ・バスの使用を必要とするときは、プロセッサはバス
から自動的に切り離され、アクセスが完了するとバスに
戻される。この動作は、メイン・プロセッサおよびマイ
クロプロセッサにとってトランスペアレントである。
【0034】マイクロプロセッサは、マイクロチャネル
に割込みをかけ、マイクロチャネルから割込みを受け取
ることができる。通常、割込みは例外を報告するために
使用される。前述し後でさらに詳しく説明するように、
メイン・プロセッサと補助プロセッサとの間での通常の
メッセージ引渡しは、メモリ内で行われる。
【0035】マイクロチャネル・マスタとして、このア
ダプタは、データをHPSからマイクロチャネルに、ま
たマイクロチャネルからHPSに流すことができる。ま
た、データをマイクロチャネルからDRAMにおよびそ
の逆に流すこともでき、マイクロプロセッサはマイクロ
チャネル・データをロードし記憶することができる。補
助プロセッサは、DMAポートとして知られたアダプタ
上のアドレス範囲への書込みによってすべてのDMA転
送を開始し、後でその結果を見るためにそのポートを読
み取る。
【0036】左側(LHS)DMAエンジンは、固有の
「ヘッダ」アーキテクチャを通じマイクロプロセッサに
よって制御される。このヘッダは、先入れ先出し(FI
FO)待ち行列中を通り、したがって両方向FIFO2
6内でいくつかのヘッダを一時に待ち行列に入れること
ができ、LHSが前のヘッダを終了したとき、次のヘッ
ダをバッファから引き出して、マイクロチャネル・マス
タ動作を始める。ヘッダは、LHSのフェッチ動作また
は記憶動作のために使用できる。記憶動作用のデータ
は、FIFO内でヘッダのすぐ後に続く。したがって、
制御情報とデータ情報は同じ経路を通る。後でさらに詳
しく説明するが、簡単に言うと、LHS/RHSブリッ
ジは、両方のバス上でマスタおよびスレーブとして作動
する。たとえば、前述のLHSは、マイクロチャネル上
でマスタとして機能して、マイクロチャネルからデータ
をフェッチしまたはマイクロチャネルにデータを記憶す
ることができる。
【0037】LHSはまた、マイクロチャネルのスレー
ブ・サイクルを監視する(LHSは、マイクロチャネル
に対するスレーブである)。スレーブ・サイクル(また
はPIO−プロセッサ入出力)は、LHSとRHSの両
方のマスタ動作に割り込むことができ、それにより、P
IOが迅速かつ原子的に(たとえば、単一の動作で)行
われるようになる。メイン・プロセッサは、アダプタと
の通信を終了するために進行中のDMA動作を待つ必要
がなく、PIOが有効になったことが保証される。スレ
ーブ・サイクルの復号時に、LHSはRHSに割り込
み、その結果、両者がマイクロプロセッサ・アドレス空
間への原子的PIOを実行する。LHSは、PIOの終
了を許可する前にRHS肯定応答を待つ。
【0038】さらに、RHS DMAは、マイクロプロ
セッサのいくつかのスレーブ制御ポートによって制御さ
れる。たとえば、"FIFO"ポート26b(図2に示
す)が設けられる。マイクロプロセッサがFIFOポー
ト26bに読み書きするときは、ブリッジはマイクロプ
ロセッサ・バス・スレーブとして働く。マイクロプロセ
ッサ22は、記憶を行いRHS DMAを開始して(ブ
リッジがバス・マスタになり、マイクロプロセッサ・ア
ドレス空間内のどことでもパイプライン・サイクルを実
行する)、記憶すべきデータをFIFO内に入れるため
にヘッダをLHSに送ること、フェッチを行うためにヘ
ッダをLHSに送ること、LHSフェッチ済みデータを
マイクロプロセッサ・アドレス空間内のどこかに移動す
るためにRHS DMAを開始すること、RHS DM
Aを開始することなく記憶を行うためにヘッダをLHS
に送ること、FIFOから直接データを読み取りまたは
そこに書き込むことを含めて、いくつかの機能にFIF
Oポートを使用する。
【0039】マイクロプロセッサは、DMAポートとし
て知られるアダプタ・アドレス範囲のうちの1アドレス
に書き込むことによって、DMA転送を始める。DMA
ポート・アドレスの選択と、DMAヘッダとして知られ
ポートに書き込まれた最初のワードの内容とが、プロセ
ッサにDMA活動を制御する手段を提供する。本質的
に、DMAポート・アドレスの選択が、右側DMAエン
ジン25を制御し、両方向FIFO26中を通るヘッダ
内のデータが、左側DMAエンジン24を制御する。
【0040】ポート・アドレスは、次のように構成され
る。アドレスの1つのフィールドは、すべてのポート・
アドレスで同じである。このビットは、DMAポートが
アドレス指定されていることを右側DMAエンジン25
に示す。別のフィールドは、転送が開始されるマイクロ
プロセッサ・バス上のアドレスを指定する。追加のアド
レス・ビットは制御ビットとして使用され、それがゼロ
になると右側DMAエンジン25をディスエーブルす
る。このビットの目的は、後でさらに詳しく述べる。
【0041】DMAヘッダは、左側と右側のDMAエン
ジン24、25の両方に有用な情報(たとえば、転送さ
れるワードの数)と、左側DMAエンジン24によって
のみ使用される情報とを含む。後者の情報には、転送を
開始すべきマイクロチャネル・アドレスが含まれる。
【0042】マイクロプロセッサは、DMA書込み(た
とえば、アダプタ・メモリまたは交換機からメイン・プ
ロセッサ・メモリ2aへのデータ転送)を、以下のよう
に開始する。DMAポートへのマイクロプロセッサ書込
みは、データのソースがメモリであるか交換機であるか
を暗示的に示す。ヘッダは、両方向FIFO26に書き
込まれる。その後、右側DMA25エンジンは、プロセ
ッサをバスから切り離し、データをアダプタ・メモリま
たはHPSから両方向FIFO26に転送する。転送後
に、バスの制御はマイクロプロセッサに戻る。その後に
DMAヘッダが両方向FIFO26の先頭に達すると、
左側DMAエンジン24によってフェッチされる。左側
エンジン24は、両方向FIFO26からマイクロチャ
ネルへの要求された数のデータ転送を実行し、ヘッダを
破棄する。
【0043】アダプタは、DMA書込み用の追加のモー
ドも支援する。このモードでは、右側DMAが開始する
前に、DMAヘッダが、両方向FIFOに書き込まれる
のではなく破棄される。このモードは、マイクロプロセ
ッサが、メモリ2a内の連続する場所に、マイクロプロ
セッサのレジスタからのデータと交換機からのデータと
を含むブロックを書き込みたいときに使用される。「無
ヘッダ」モードを使用すると、そのような2つ以上のブ
ロックが、左側DMAだけを使ってマイクロチャネルを
横切って転送される。
【0044】マイクロプロセッサは、DMA読取り(た
とえば、メイン・プロセッサ2aからアダプタ・メモリ
(たとえば、DRAM23または交換機)へのデータ転
送)を2段階プロセスで実行する。
【0045】第1段階で、マイクロプロセッサは、読取
りを指定するDMAヘッダを書き込む。右側DMAをエ
ネーブルするアドレスのビットがアサート解除されない
いくつかのDMAポート・アドレスのどれに書き込むこ
ともできる。これらのどのアドレスへの書込みも、右側
DMA動作を実行することなしに、両方向FIFO26
にDMAのヘッダを入れる結果になる。続いてヘッダが
両方向FIFOの先頭に到着すると、左側DMAエンジ
ンによってフェッチされる。左側エンジン24は、プロ
セッサのメモリから両方向FIFO26への要求された
数のデータ転送を実行する。
【0046】DMA読取り動作の第2段階では、マイク
ロプロセッサが再び、読取りを指定するDMAヘッダを
書き込む。一方、このときは、ヘッダがポート・アドレ
スに書き込まれて、右側DMAがエネーブルされる。こ
れにより、右側DMAエンジン25がプロセッサをバス
から切り離し、両方向FIFO26からアダプタ・メモ
リ(MSMU)27または交換機に、要求された数のバ
イトを転送するようになる。その転送後に、バスの制御
がマイクロプロセッサ22に戻される。ヘッダは破棄さ
れ、両方向FIFOには入れられない。
【0047】右側DMAが必要な場合、右側エンジンの
タイミングは、マイクロプロセッサが右側DMAを開始
すると、開始されたDMA転送が完了するまで、バス上
で別の動作を実行できないように設計されている。
【0048】上記のように、DMAヘッダは、マイクロ
プロセッサ22から左側DMAエンジン24に指示を送
る。マイクロプロセッサが、左側DMAエンジン24を
直接ではなくFIFO26を介して制御するこの手法
は、左側ポートを直接制御する従来の手法に比べていく
つかの利点を有する。たとえば、FIFOにデータと共
にコマンドも入れると、DMA制御が、転送されるデー
タと自動的に同期される。さらに、両方向FIFOは、
左側エンジン24が完了するのを待たずに、マイクロプ
ロセッサ22が、左側エンジン24からの一連のDMA
コマンドを、FIFOの容量が一杯になるまで待ち行列
に入れることを可能にする。このため、プロセッサ・メ
モリとの間のデータ転送と同時に通信処理が行えるよう
になる。
【0049】プロセッサ・ノード内のハードウェアは、
左側DMAエンジン24によって実行されるマイクロチ
ャネル読取りおよび書込みを、プロセッサのメイン・メ
モリの読取りおよび書込みにマップする。
【0050】電源の投入またはリセット後にカードが最
初に初期設定されると、左側DMAエンジン24がその
FIFOポートを連続的に検査し、そこに最初に現れる
データをDMAとして解釈し、マイクロチャネル上での
データ転送を実行し、左側エンジンは最初にマイクロチ
ャネルのマスタにならなければならないが、これには比
較的長い調整処理が必要となる。アダプタは、この調停
遅延の影響を最小限にするためにいくつかの処置を行
う。最初に、左側エンジンがこのときマスタでない場合
は、両方向FIFO内にヘッダが存在すると、左側が調
停処理を開始するようになる。この調停は、ヘッダがF
IFOから読み取られる前でも開始する。したがって、
調停はFIFOアクセス時間とオーバーラップする。調
停による遅延を最小限に抑える第2の技法として、両方
向FIFO内に何らかのデータまたはヘッダが残ってい
る限り、左側エンジンがマイクロチャネルのマスタであ
り続ける。両方向FIFOが空になるか、またはそのバ
ス規則によりマスタをやめることを余儀なくされる場合
にだけ、マスタをやめる。
【0051】両方向FIFO内のどの項目がヘッダであ
りどれがデータであるかは、決してあいまいではない。
書込みDMAの場合、ヘッダはメイン・プロセッサに書
き込まれるデータの前にあり、ヘッダはまた、転送の長
さを指定することによって、両方向FIFO26におい
てヘッダの後に何個のデータ・ワードが続くかを示す。
左側エンジン24は、指定された数のデータを両方向F
IFO26から転送した後、両方向FIFO内の次の項
目を新しいヘッダとして解釈する。同様に、読取りDM
Aを要求するヘッダは独立している。読取りDMA要求
を処理後、左側エンジン24は、次のFIFO項目を新
しいヘッダとして解釈する。
【0052】マイクロプロセッサ22は、その活動をメ
イン・プロセッサ2の活動と調整するために、そのDM
Aの処理を監視できなければならない。この操作のため
の手段は、DMA保留カウンタとDMA応答カウンタの
2つのカウンタによってアダプタ内に提供される。
【0053】DMA保留カウンタは、両方向FIFO2
6中に書込み要求がいくつ完了を待って待機しているか
を示す。完了したDMA書込み要求が両方向FIFOに
入ると、カウントが増分される(たとえば、ヘッダとそ
の後のヘッダ中で指定された量のデータ)。左側DMA
エンジンが書込みを完了するたびに(たとえば、左側D
MAエンジンが、ヘッダによって指定されたデータの最
後の転送を実行した後で)カウントが減分される。
【0054】DMA応答カウンタは、FIFO中に、完
了した読取り要求がいくつメモリまたは交換機への転送
を待って待機しているかを示す。このカウンタは、マイ
クロチャネル読取りデータの要求が完了するたびに(た
とえば、DMAヘッダ内で要求されたすべてのデータが
FIFOに入れられた後で)増分される。DMA応答カ
ウンタは決して減分されず、マイクロプロセッサは、最
後のカウントが検査されてからDMA応答カウントがど
れだけ大きくなったかを決定する。DMA保留カウンタ
の減分を観察するため、マイクロプロセッサは、マイク
ロチャネルに転送される書込みによってそれを調べる。
DMA応答カウンタの増分を観察するため、マイクロプ
ロセッサは、マイクロチャネルから戻るその読取り要求
を調べる。
【0055】このブリッジは、RHSおよびLHS上で
DMAが実行される方法に対するマイクロプロセッサ制
御を与えるだけでなく、マイクロプロセッサにマイクロ
チャネル・アドレス空間との間のPIOの能力をも提供
する。本発明の主な利点の1つは、アダプタ・カード上
およびメイン・プロセッサ中で走行するソフトウェア
に、通信タスクを分割する際に極めて大きい柔軟性を与
え、効率的なプロトコルの開発を可能にすることであ
る。
【0056】メイン・プロセッサは、アダプタ上のバス
変換機構を通じて、交換インターフェースを含めてアダ
プタまたはその設備と通信を開始することができる。こ
のバス変換は、ある範囲のマイクロチャネル・アドレス
を、アダプタ・マイクロプロセッサ・バス上のアドレス
の一部にマップするものである。このマッピングによ
り、メイン・プロセッサは、マイクロプロセッサにとっ
てアクセス可能なDMA以外のすべてのカード資源への
アクセスが可能になる。
【0057】マイクロチャネルからマイクロプロセッサ
・バスへのデータ経路は、バイパス・レジスタまたはF
IFOチップ内部の「メール・ボックス」(前に簡単に
述べ図2に示したように)を使って、FIFOを迂回す
る。したがって、これらのアクセスは意図されておら
ず、同期的に行われる。両方向FIFOにおける制御信
号が、FIFO経路とメールボックス経路のどちらを使
うかを決定する。メイン・プロセッサがマイクロプロセ
ッサ・バスに対するアクセス権をもう1度得る必要があ
るとき、バスがマイクロプロセッサまたは右側DMAに
よって使用中のことがある。アダプタ論理は、データが
読取り時にメールボックスにまたは書込み時にメールボ
ックスから外に転送されるまで、マイクロプロセッサを
バスから切り離すかまたはDMAを中断する。
【0058】マイクロプロセッサ・データ・バスは8バ
イト幅であり、一方マイクロチャネル・データ・バスは
4バイト幅なので、書込み中には、マイクロチャネル・
データを多重化解除してマイクロプロセッサ・バス上に
出力しなければならず、読取り中には、マイクロプロセ
ッサ・バス・データを多重化してマイクロチャネル上に
出力しなければならない。マイクロチャネルがマイクロ
プロセッサ・バスの上位と下位のどちらの4バイトを使
用するかは、下位から3番目のマイクロチャネル・アド
レス・ビットA<2>によって決定される。A<2>が
ハイのとき、マイクロチャネルは上位4バイトで通信
し、ローのときは、下位4バイトで通信する。
【0059】アダプタは、データの多重化または多重化
解除を実行するための、2つの代替手段を提供する。モ
ード32とモード64と呼ばれるこれらの代替手段は、
マイクロプロセッサ・バス上で実行されるアクセスの数
が異なる。モード32では、マイクロチャネルの1アク
セスごとにマイクロプロセッサ・バス上で1回のアクセ
スが行われる。モード64では、マイクロチャネルの2
アクセスごとに1回マイクロプロセッサのアクセスが行
われる。
【0060】モード64では、データが、一方のバスか
ら他方のバスに送られる前にメールボックス・レジスタ
に蓄積される。モード32は、アダプタ・メモリおよび
カード上の大部分のレジスタへのアクセスに便利であ
る。しかし、交換インターフェース論理の内部の8バイ
ト幅のFIFOへの読取りおよび書込みはうまくいか
ず、これらのアクセスには、モード64を使用しなけれ
ばならない。モード64では、メイン・プロセッサは、
第1のアクセスのマイクロチャネル・アドレスが8バイ
ト調整され、第2のアドレスが第1のアドレスに隣接す
るように、アダプタ・アクセスを対にして実行する必要
がある。モード32かモード64かの選択は、カードに
使用されるマイクロチャネル・アドレスに基づいて、メ
イン・プロセッサによって動的に行われる。
【0061】メイン・プロセッサ2はまた、マイクロプ
ロセッサ22にはアクセスできないカード上の構成レジ
スタにアクセスすることもできる。これらのレジスタ
は、アダプタを初期設定し、そのアダプタにマイクロチ
ャネルのアドレス指定可能性を与え、パリティやマイク
ロチャネル・ストリーミングなど、マイクロチャネル関
連の様々な機能を選択的にエネーブルまたはディスエー
ブルするために使用される。
【0062】基本メモリのFIFO管理 メイン・プロセッサのメイン・メモリ内でのFIFOの
管理に目を向け、図2および図4から図7を参照する
と、基本システム(たとえば、RISCシステム/60
00プロセッサ)の記憶装置内に記憶された数組のFI
FO2b1、2b2上でのDMA動作を使って、交換パ
ケットがアダプタとの間で移動される。1組のFIFO
はカーネル用であり、1組のFIFOはユーザ用であ
る。
【0063】各組のパケットFIFO中の1つのFIF
Oは発信パケット用であり、パケットFIFOセットそ
れぞれにおける第2のFIFOは着信パケット用であ
る。これら2つのFIFOの管理は、メイン・プロセッ
サ2とマイクロプロセッサ22(以下、代わりに補助プ
ロセッサと呼ぶ)の間に新規な方式で分散され、予想外
の優れた利点をもたらす。
【0064】ハイ・レベルのとき、発信側のメイン・プ
ロセッサは、パケットをその発信FIFOに移動し、メ
ッセージをそのメモリに入れることによって補助プロセ
ッサに伝え、補助プロセッサはそのハードウェアを使っ
てパケットをMSMUに移動する。
【0065】メイン・プロセッサ2にパケットが着信し
た際、補助プロセッサ22はパケットが来たことを認識
し、そのパケットのヘッダを調べて、それをどこに移動
するか決定し、ハードウェアを使ってパケットを移動す
る。補助メモリ23には、送信FIFOを反映する制御
情報(たとえば、パケットの長さ)がある。
【0066】上記のように、通信補助プロセッサとメイ
ン・プロセッサは、比較的低速のバスで分離される。各
プロセッサは、それ自体の高速ローカル・バス上にそれ
自体のローカル・メモリを有するが、低速バスを介して
他のプロセッサのメモリにアクセスすることもできる。
低速のバスを通る不必要なトラフィックを避けて、その
バス上で使用可能なほとんどすべてのサイクルがアプリ
ケーション・データを移動するために使用されるよう
に、本発明では、(メイン・プロセッサをスローダウン
し貴重な帯域幅を使用する)低速のバスを通るポーリン
グを回避するFIFO管理方式を使用し、それによって
システム全体の効率を高める。
【0067】本発明では、メイン・プロセッサの各FI
FOは、先頭ポインタおよびそれに関連する末尾ポイン
タを有する。データがFIFOに入れられると末尾ポイ
ンタが増分され、データがFIFOから外に出されると
先頭ポインタが増分される。本発明の設計では、両方の
FIFOは、アプリケーションにとって最も容易に使用
できるメイン・プロセッサのメモリに記憶される。しか
しながら、また、従来の慣行のように、先頭ポインタと
末尾ポインタの両方をメイン・プロセッサのメモリに記
憶するのではなく、本発明の設計では、先頭ポインタと
末尾ポインタをメイン・プロセッサのメモリと補助プロ
セッサのメモリの間で分配し、低速バスを通るこの制御
情報のポーリングを回避する。
【0068】一般に、発信FIFOの場合、末尾ポイン
タは補助プロセッサのローカル・メモリに記憶され、先
頭ポインタはメイン・プロセッサのローカル・メモリに
記憶される。また、メイン・プロセッサは、末尾ポイン
タを更新する唯一のプロセッサなので、そのキャッシュ
されたコピーを保持し、補助プロセッサは、先頭ポイン
タを更新する唯一のプロセッサなので、そのキャッシュ
されたコピーを保持する。
【0069】FIFOの待ち行列は、複数のエントリ位
置を有し、FIFOの先頭ポインタがある位置を指し、
末尾ポインタが待ち行列内のデータ量によって決まる別
の位置を指す、循環待ち行列と類比することができる。
待ち行列(FIFO)内に情報が入れられるとき末尾ポ
インタが増分され、情報が待ち行列から外に出されると
きは、先頭ポインタが増分される。先頭と末尾に関する
計算はすべて、FIFOの大きさを法とする。
【0070】メイン・プロセッサ2によるデータ送信動
作に関して、メイン・プロセッサがパケット(たとえ
ば、FIFOにおけるエントリであり、パケット・フレ
ームに構成されたパケット)を送る準備ができていると
きは、まずそのローカル・メモリ内の先頭ポインタをポ
ーリングし、発信FIFO内にスペースがあるかどうか
を判定する(たとえば、末尾ポインタ(+2)が先頭ポ
インタと等しくないかどうか検査して調べる)ために、
その先頭ポインタを、キャッシュされた末尾ポインタの
値と比較する。発信FIFOにスペースがある場合、メ
イン・プロセッサ2は、そのパケットをFIFOに書き
込み、更新済みの末尾ポインタを補助プロセッサのロー
カル・メモリに書き込む。補助プロセッサは、キャッシ
ュされた先頭ポインタの値を有する。補助プロセッサ
は、発信パケットについて、キャッシュされた先頭ポイ
ンタの値を、そのローカル・メモリに記憶された末尾ポ
インタの値と比較することによってポーリングする。着
信パケットについては、末尾ポインタがメイン・プロセ
ッサのローカル・メモリに記憶され、先頭ポインタが補
助プロセッサのローカル・メモリに記憶され、受信パケ
ットの動作は送信の動作と対称的である。
【0071】先頭ポインタと末尾ポインタが両方ともメ
イン・プロセッサのローカル・メモリ内に記憶される標
準的な実施態様においては、補助プロセッサによるポー
リングが低速バスを通ることになり、そのためバス上で
アプリケーション・データとの競合が生じ、ポーリング
遅延の増大によりメッセージ待ち時間が増える。そのよ
うな問題は、本発明による構造および方法によって回避
される。
【0072】FIFO送信動作 補助プロセッサは、キャッシュされた「送信先頭」のコ
ピーを有し、メイン・プロセッサのメモリ内の「送信先
頭」を更新するときにそれを定期的に更新する。さら
に、すべてのパケットにおいて、長さに加えて、データ
の前に論理ノード番号と経路番号を含むダブルワードが
あり、しがって、補助プロセッサDMAがパケットを転
送するとき、両方向FIFO26における最初の項目
は、補助プロセッサがレジスタから読み出してそこに入
れるノード番号と経路である。このデータを使ってテー
ブルを探し、キー、ウィンドウ(カーネルとユーザに関
係し、これによりデータをどのFIFOに入れるかをア
ダプタが知ることができる)、およびこのパケットの宛
先のノードの実(物理)番号を見つける。
【0073】キーは、データが有効なソースから来たこ
とを確認するために宛先に送られる。論理ノード番号
は、実ノード番号に変換され、次に、経路を決定するた
めの第2の変換が行われる。
【0074】これにより、ユーザがどんなタスク番号を
指定しようと、ノードと経路の情報によって、データが
正しい宛先(ノード)に到着し、指定されたタスク番号
が間違っている場合には無効とマークすることが保証さ
れる。したがって、ユーザは、許可されたアドレスだけ
にアクセスでき、ノードは、スプリアス・データを受け
取ることから保護される。
【0075】メイン・プロセッサの「データ送信」動作
では、メイン・プロセッサ2は、まず検査を行って、キ
ャッシュされた「送信末尾」(+2)のコピーが、それ
自体のメモリに記憶され補助プロセッサによって更新さ
れた「送信先頭」と等しくない(たとえば、FIFOが
満杯でない)かどうか判定する。等しい場合は、「送信
末尾」が「送信先頭」と等しくなくなり、したがってF
IFOが満杯でなくなるまで、内部でポーリングが行わ
れる(たとえば、メイン・プロセッサが、ローカルで
「送信先頭」を読み取って、それをキャッシュされた
「送信末尾」と比較し、メイン・プロセッサはより低速
のマイクロチャネル・バスを通じて出力しなくてもよ
い)。補助プロセッサがデータをFIFOから取り出す
とき、メイン・プロセッサは、即座に、(すなわち、1
トランザクション内で)FIFO内に空き場所があり、
したがってポーリングが非常に高速であり、DMAとの
干渉がないことを知る。
【0076】その後、メイン・プロセッサは、データ
を、メイン・プロセッサの主記憶装置内のFIFO(F
IFOの「送信末尾」位置)に移動する。さらに、論理
ノードと経路がFIFOスロット内に移動される。その
後、メイン・プロセッサは、補助プロセッサのメモリ2
3内の長さを更新し、「送信末尾」(そのキャッシュさ
れたコピーと補助プロセッサ・メモリ・バージョン)を
更新する。
【0077】補助プロセッサ「送信」動作では、補助プ
ロセッサ22はポーリングを開始して、そのメモリ内の
補助プロセッサの「送信末尾」を検査し、それにより、
受信FIFOが空でないかどうかを判定する。すなわ
ち、補助プロセッサは、キャッシュされた「送信末尾」
(+1)が「送信先頭」と等しいかどうかを判定する。
等しい場合は、「送信末尾」(+1)が「送信先頭」と
等しくなくなるまでポーリングが続く。補助プロセッサ
は、それ自体の「送信先頭」(ならびにDMA動作によ
るメイン・プロセッサ2の「送信先頭」)を更新し、そ
のためメイン・プロセッサが「送信先頭」を更新する必
要がないので処理がより効率的になる。
【0078】その後(送信するデータがあると判定した
後)、補助プロセッサ22は、データ長(DRAM内
で、メイン・プロセッサによってDRAM内に入れられ
た長さ)を読み取り、DMA読取り要求(DMAヘッ
ダ)をアダプタ上のDMAポート26bに書き込んで、
メイン・プロセッサの発信FIFOからのパケットをフ
ェッチしてそのパケットを両方向FIFO内に移動する
よう左側のDMAエンジン24に伝えるDMA読取り要
求を開始する。次いで、補助プロセッサは、データが両
方向FIFO内に到着するのを待つ。データが到着し次
第、補助プロセッサは両方向FIFOから論理ノードを
読み取り、変換(たとえば、ノード、キーおよびウィン
ドウ)を実行し、MSMUヘッダ(ノード、キー、ウィ
ンドウおよび長さ)を書き込む。補助プロセッサは右側
DMAを開始して、データを両方向FIFO26からM
SMU27に移動する。その後、補助プロセッサはそれ
自体のキャッシュされた「送信先頭」のコピーを増分
し、メイン・プロセッサ・メモリ内の「送信先頭」を
(DMAを介して)移動または更新する。
【0079】本発明の重要な1つの特徴は、本発明のア
ダプタにより、システムがポーリングしている間は、す
べてのポーリングがローカルで(たとえば、メイン・プ
ロセッサまたは補助プロセッサによって)実施されるた
めバスが影響を受けず、したがって、データ転送のため
に主に使用されるバスを通らなくてもよいようにできる
ことである。したがって、そのようなデータ転送は、本
発明によって最適化される。さらに、補助プロセッサが
データがどこにあるかを見つけるために基本メモリに戻
る必要はなく、「送信先頭」と「送信末尾」はメイン・
プロセッサ内の位置を参照する。
【0080】受信FIFO動作 受信FIFO動作には、「受信末尾」と「受信先頭」が
利用される。
【0081】補助プロセッサの受信動作では、まずパケ
ットがMSMUに到着し、こうして補助プロセッサ上で
受信動作が始まる。補助プロセッサのキャッシュされた
「受信末尾」が、補助プロセッサ23内の「受信先頭」
と比較される(たとえば、受信FIFOの検査が実行さ
れる)。キャッシュされた「受信末尾」(+2)が「受
信先頭」と等しい場合、その2つが一致しなくなるま
で、ポーリングがローカルで実施される。その後、補助
プロセッサ22はパケット・ヘッダを読み取り、パケッ
ト・ヘッダを、ウィンドウ番号とキー(およびキーの区
画識別)について検査して、タスク/ソースが有効であ
るかどうか、および補助プロセッサがそのノードと通信
できるかどうかを決定する。キー(およびキーの区画識
別)と着信パケットおよび宛先のウィンドウ番号との間
に一致がない場合、パケットは破棄され、無効な受信と
記録される。ウィンドウは、メイン・プロセッサのメイ
ン・メモリ内の2組のパケットFIFOを区別するため
に使用される。
【0082】一致する場合、補助プロセッサは、長さ
(補助プロセッサにおける)とデータに関するDMA書
込み要求を開始することによって、パケットをメイン・
プロセッサまで移動し、MSMU27から両方向FIF
O26への右側DMAエンジンのデータ転送を開始す
る。(この動作は、長さとデータが一部は補助プロセッ
サによって移動され、残りはDMAエンジンによって移
動される、前に簡単に述べた代替方式で都合よく実施さ
れる。)これにより、マイクロチャネルを横切るバスの
最適化がさらに可能になる。
【0083】同時に(たとえば、両方向FIFO26内
のパケットの到着と共に)、(メイン・プロセッサのメ
モリ内の)受信FIFOを検査して満杯でないことを確
認する。すなわち、キャッシュされた「受信末尾」(+
2)を「受信先頭」と比較して(たとえば、それらは等
しくない)、それらが等しくないことを確認する。満杯
の場合は、補助プロセッサでローカル・ポーリングが行
われる。ポーリングが行われている間、メイン・プロセ
ッサはアダプタを通じて新しい「受信先頭」を送り、そ
れによって補助プロセッサ22内の「受信先頭」を更新
することができる。
【0084】データが受信FIFOに送られた後、補助
プロセッサのキャッシュ内の「受信末尾」が更新/増分
され、「受信末尾」がDMAを経てメイン・プロセッサ
2まで転送される。「先頭」と「末尾」は、メイン・プ
ロセッサ・メモリ2a内のFIFOに関するもので、補
助プロセッサは、メイン・プロセッサのメモリ内にどん
なパケットが入っているかを制御している。メイン・プ
ロセッサは、どんなパケットがメイン・プロセッサ・メ
モリ(FIFO)から取り出されるかを制御する。メイ
ン・プロセッサは、パケット全体を受け取りパケットが
読取り可能になったと伝えられるまで、パケットを読み
取ろうとはしない。したがって、パケットが存在するか
どうか調べるためにマイクロチャネルを通ってポーリン
グする必要はなく、その代わりに、ローカル・ポーリン
グとローカル・メモリ(たとえば、補助プロセッサのメ
モリまたはメイン・メモリ)の検査だけでよい。
【0085】上記の送信動作と受信動作は、理解しやす
いように逐次的に(たとえば、連続して)説明したが、
両方向FIFOを使用して送信動作と受信動作を同時に
実行することもでき、両方の動作は任意にインターリー
ブできる。実際、本発明の構造により、送信動作の途中
で別のパケットを受けとることが可能になり、その逆も
可能である。
【0086】メイン・プロセッサ受信動作 メイン・プロセッサ受信動作では、メイン・プロセッサ
はその「受信末尾」をキャッシュされた(たとえば、メ
イン・プロセッサのキャッシュに記憶された)「受信先
頭」と比較する。「受信末尾」(+1)が、キャッシュ
された「受信先頭」と等しくない場合、下記のように処
理が続行される。そうでない場合は、「受信末尾」(+
1)がキャッシュされた「受信先頭」と等しくなくなる
まで、ローカル・ポーリングが実施される。その後、メ
イン・プロセッサはデータの長さ(補助プロセッサのメ
モリに記憶されている長さデータ)を読み取り、データ
がFIFOから取り除かれる。メイン・プロセッサは、
そのキャッシュと補助プロセッサのメモリ内の「受信先
頭」を増分または更新する。
【0087】上記のように、(本発明によって可能にな
るような)動作の主な利点は、メイン・プロセッサと補
助プロセッサ22のどちらも、低速のバスを通じてポー
リングしなくてもよいことである。その代わりに、それ
自体のメモリ内でローカル・ポーリング(たとえば、内
部検査)が行われる。これは、より効率的なシステムが
得られるので有利である。
【0088】エラー検出 データ・パリティとCRCコード生成の独自の組合わせ
により、マイクロチャネルからHPSを通る確実なデー
タ経路が提供される。
【0089】図8を参照すると、アダプタが、マイクロ
チャネル・アドレスおよびデータ上に、パリティ生成/
検査機構50を含むパリティ生成/検査構造を提供す
る。パリティは、以下に示すように生成され検査され
る。スレーブとマスタ、アドレスとデータの、すべての
パリティ検査を、単一ビットがエネーブル/ディスエー
ブルする。パリティは、マイクロプロセッサ22にもM
SMU27にも支援されない。これらのチップからデー
タが出ているときは、パリティがそのデータ・バス上に
生成され、宛先でマイクロチャネルのパリティ検査回路
51によって検査される。マイクロチャネルがパリティ
を生成すると、そのパリティは、マイクロプロセッサの
データ・バスのすぐ前で検査される。両方向FIFO2
6は、パリティ検査されたデータ経路の一部である。ア
ドレス・パリティは、スレーブのアクセスについて復号
器で検査され、パリティが不良であることがメイン・プ
ロセッサのマイクロチャネル・アーキテクチャによって
指定される場合は、カードはマイクロチャネル上に応答
を戻さない(CD SFDBKが非活動状態のまま)。
また、マイクロプロセッサ・バス上でサイクルは開始し
ない。
【0090】マイクロチャネルのスレーブ書込みでは、
マイクロチャネル仕様によって指令されるようにイネー
ブルが活動状態であるバイトだけが検査される。マスタ
のアクセスでは、マイクロチャネルのアドレス・パリテ
ィは、データ・パリティと同様に、マイクロプロセッサ
・バス上で生成され、宛先でマイクロチャネル上のメイ
ン・プロセッサのパリティ回路によって検査される。マ
イクロプロセッサ・バス上のアドレス(右側DMAエン
ジン25によって生成されたものなど)は、マイクロプ
ロセッサ22でもMSMU27でも検査されない。
【0091】アダプタは、各MSMUメッセージ・パケ
ット上でCRCコードを生成し検査する。これは、パケ
ット・ヘッダ、経路指定ワード(ノードID)およびメ
ッセージ本体のカバー範囲を含むことが好ましい。
【0092】アダプタのCRC(たとえば、エラー検出
アルゴリズム)は、FIFO Bデータ・バス上のデー
タを監視し、CRCコードを生成する(たとえば、16
ビットが好ましい)。アダプタ・カードは、マイクロチ
ャネルからFIFO Bバスまで(それを含む)のデー
タのパリティ検査を提供し、FIFO BバスからHP
Sを介して外に出るデータのCRC検査を提供する。こ
れにより、マイクロプロセッサからHPSへ(両方向
に)のデータの完全なエラー検出が実現される。
【0093】CRC論理51は、2つのアクセス可能な
レジスタを含む(たとえば、アダプタの初期設定時にコ
ードによってセットされるノードIDレジスタと、パケ
ット・ヘッダを送信または受信する前に事前設定される
CRC検査レジスタ)。一実施例では、エラー検出は次
のように実施することが好ましい。
【0094】MSMUパケット送信では、マイクロプロ
セッサ22は4バイトのパケット・ヘッダをMSMUヘ
ッダ・レジスタに書き込み、また宛先ノードIDをダブ
ルワードの高位部分に入れる。このノードIDは、MS
MU27には無視されるがCRC検査生成の際に使用さ
れる。
【0095】次に、マイクロプロセッサ22は、経路を
MSMUデータ・レジスタに書き込む。このダブルワー
ドはCRC論理51には無視される。マイクロプロセッ
サは、メッセージ・パケット本体のMSMUデータ・レ
ジスタへの書込みを開始する。メッセージ本体は、マイ
クロプロセッサ、DMA、またはマイクロプロセッサと
DMAの組合せによって直接書き込むことができる。C
RCは、CRC検査レジスタに転送されたすべてのメッ
セージ・データを符号化する。次に、マイクロプロセッ
サは、CRC_CHECKレジスタを読み取り、検査ビ
ットをMSMUトレーラ・レジスタのバイト0と1に書
き込む。これらは、パケットの最後のバイトでなければ
ならない。
【0096】MSMUパケット受信では、マイクロプロ
セッサはMSMUヘッダ・レジスタから4バイトのパケ
ット・ヘッダを読み取る。CRC論理は、CRC検査の
ために、そのノードIDレジスタをダブルワードの高位
部分に書き込む。受信カードのノードIDレジスタが、
パケットを送るときに使用される宛先ノードIDと一致
しない場合は、CRC障害が生じる。これが起こるの
は、たとえば、経路指定ビットが欠落し、パケットが間
違ったノードで終わる場合である。
【0097】次にマイクロプロセッサ22は、MSMU
データ・レジスタからメッセージ・パケット本体の読取
りを開始する。メッセージ本体は、マイクロプロセッ
サ、DMA、またはマイクロプロセッサとDMAの組合
せによって直接読み取ることができる。CRC51は、
転送されたすべてのメッセージ・データを検査する。
【0098】次にマイクロプロセッサは、MSMUトレ
ーラ・レジスタからトレーラを読み取る。マイクロプロ
セッサは、CRC検査レジスタを読み取って、受信時の
エラーを検査する。エラーが検出された場合は、そのパ
ケットは破棄しなければならない。
【0099】アダプタ・カードのパリティ・エラーにつ
いては、アダプタがパリティ・エラーを検出した場合、
CRCレジスタは、次のCRC検査レジスタが読み取る
まで、強制的に固定した値にされる。これにより、送信
ノードがパリティ・エラーを検出し、同時に、送信が進
行中でトレーラが読み取られた場合に、受信ノード上で
CRCエラーが保証される。受信ノードがCRCエラー
を検出し、トレーラcrcが送信時にパリティ・エラー
が検出されたときに送られた固定値であった場合は、送
信ノードにパリティ・エラーがあった可能性が高い。こ
の場合の他には、通常、コードにはトレーラcrcを調
べる理由がない。
【0100】もちろん、本発明の範囲内に含まれる他の
方法を使って、同じ効果を達成することもできる。
【0101】さらに、図9を参照すると、本発明による
装置は、欠落したクロックを検出し、それによってプロ
セッサ・ノードのハングアップを防ぐ機構を提供する。
【0102】一般に、このアダプタ(ならびに、システ
ムおよびHPS内で使用される複数のアダプタすべて)
用のクロックは、交換機を通ってメイン・プロセッサに
到るデータの同期のために、単一のソース・クロックに
よって提供される。ソース・クロックが失われた場合、
カードは、マイクロチャネルをハングアップし、その結
果としてノード全体をハングアップすることになる。図
9に示したように、本発明によるクロック検出回路は、
論理回路を使って、1対のカウンタ61、62を稼働す
る発振器を作成する。これらのカウンタは、所定の形状
(たとえば、波の形状が矩形)を有するソース・クロッ
ク生成波のハイ状態とロウ状態によって交互にリセット
される。欠落したクロックがあると、カウンタの少なく
とも1つが終了カウントに達して、カードの残りの部分
をリセット状態に保持するようになる。これによって、
ソフトウェアが検出可能なマイクロチャネルのバス・エ
ラーが生じることがあり、その場合は、ソフトウェアが
カードを詳細に調べて(プログラマブル・オプション選
択(POS)レジスタを使って)クロックが欠落してい
ることを確認する。
【0103】本発明によるクロック検出回路を詳細に見
ていくと、クロックは、データと共に外部ソースからく
る。クロックが割り込まれる可能性もあり、その場合は
メイン・プロセッサが無期限にハングアップされる。い
くつかのシナリオが想定されるか、従来システムでは問
題があった。そのような状態は回避すべきであり、その
ような状態の防止が、本発明のクロック回路によって肯
定的に実現される。
【0104】上記では、アダプタがスレーブとして実施
されるマイクロチャネル転送について述べた。スレーブ
・モード(たとえば、アダプタがメイン・プロセッサに
対するスレーブとして実施される)では、メイン・プロ
セッサは、マイクロチャネル・バス上にアドレスを置く
ことによって読取りまたは書込み動作を開始する。次
に、一連のハンドシェーク信号(上記および参照により
本明細書に合体されたマイクロチャネル仕様で定義され
る)を交換することによってデータ転送が達成される。
クロックが存在しない場合は、転送は開始できるが決し
て終了せず、そのため、マイクロ・プロセッサの、した
がってメイン・プロセッサ(固有のハンドシェークが行
われない)のハングアップが終了しなくなる。
【0105】本発明によれば、アダプタ上にクロックが
ない場合は、アダプタがリセットされ(それにより、サ
イクルが開始できなくなる)、したがってメイン・プロ
セッサはハングアップされない。
【0106】同様に、動作がトランザクション・サイク
ルの途中でありクロックが故障した場合は、カードがリ
セットされ、したがってトランザクションは即座に終了
する。メイン・プロセッサは、そのような状態を間違い
として認識し、エラーを記録し、回復状態になる(たと
えば、クロックがないことを示すPOSレジスタを調べ
る)。
【0107】メイン・プロセッサは、スレーブとマスタ
の間のすべてのマイクロチャネル動作を指令するハンド
シェーク信号を通じて、トランザクション・サイクルの
終了を知る。これらの信号は、伝送用のクロックには依
存せず、カードがリセットされたときにその省略時状態
に駆動することができる。
【0108】上記のように、本発明の主な特徴の1つ
は、アダプタが、メイン・プロセッサに対するマスタま
たはスレーブとして動作できることである。アダプタが
マスタとして動作する場合は、クロックが故障した場
合、アダプタがリセットされたときにハンドシェーク信
号をその省略時状態に駆動することによって、そのクロ
ックは即座に終了する(たとえば、バスのハングアップ
がない)。メイン・プロセッサは、サイクルが異常終了
したことを認識し、エラーを記録し、回復状態になる。
【0109】図9を参照すると、クロック回路がより詳
細に示され、外部クロックとは無関係のローカル・クロ
ックによってそれぞれクロックされ外部クロックによっ
てそれぞれリセットされる第1と第2のカウンタを含
む。第1と第2のカウンタそれぞれの終了カウント信号
は、ORゲート63に結合される。第1と第2のカウン
タ61、62の終了カウント値はそれぞれ、外部クロッ
ク・ソースよりも大きい周波数にセットされる。第1の
カウンタ61は低リセット値を有し、第2のカウンタ6
2は高リセット値を有する。外部クロックは、カードの
リセット端子に結合されている。外部クロックが誤動作
してハイになった場合、第1のカウンタが終了カウント
に達し、外部クロックが誤動作してロウになった場合
は、第2のカウンタが終了カウントに達する。この構造
が設けられているのは、外部クロックがどのように誤動
作するか分からないためであり、2つのカウンタ61、
62を設けるのは、両方の状況に備えるためである。同
じトークンによって、外部クロックが適切に動作してい
る場合、カウンタがその終了カウント値までカウントで
きる速度よりも速い速度でカウンタをリセットしている
ことになる。カウンタがその終了カウント値に達した場
合は、クロックは非常にゆっくりと動作しているか、ま
たは完全に停止していることになる。
【0110】ORゲート63の出力は、リセット状態を
アダプタに伝送するためのリセット伝送手段64に結合
され、それによって、クロックが故障した場合にマイク
ロチャネルはハングアップ状態のままに留まらず、また
その出力はカード状況を記録する手段にも結合される。
したがって、カードをリセットし入力をPOSレジスタ
に入れるためのドライバが提供される。より具体的に
は、POSレジスタ内の"RESET"ビットならびに"
CLOCK"ビットがセットされる。
【0111】したがって、第1と第2のカウンタが終了
カウントに達した場合、カードがリセットされ、POS
レジスタ内に"NO CLOCK"が記録される。アダプ
タがリセットされた場合は、POS内に"NO CLO
CK"が記録される以外には、スレーブのアクセスは許
可されない。さらに、アダプタがリセットされているの
で、マスタのアクセスは開始されない。スレーブまたは
マスタのアクセスが進行中であれば、即座に終了され
る。メイン・プロセッサ2によるPOSアクセスはクロ
ックを必要とせず、したがってクロックに何が起こった
かをクロックが決定できない場合でも、メイン・プロセ
ッサはPOSレジスタにアクセスできる。
【0112】したがって、本発明によれば、メイン・プ
ロセッサはハングアップされず、この状態は、本発明の
構造によって肯定的に提供される。さらに、本発明の構
造は、その構造がバス上の状態を変えるという点で新規
かつ独特である。
【0113】したがって、本発明によれば、アダプタが
主にデータ転送タスクを実行している間にメイン・プロ
セッサが他のタスクを実行できるように、柔軟性を高
め、メイン・プロセッサが高性能交換機と通信するため
に待たなくてもよいようにするアダプタが提供される。
さらに、このアダプタは、データ転送動作においてスレ
ーブとしてもマスタとしても機能することができる。さ
らに、本発明は、比較的低速のバスを通じたポーリング
を行わず、また比較的高速のバスがデータ転送動作用に
保持される、アダプタによって高性能交換機の二重チャ
ネルに結合されたメイン・プロセッサのFIFOを管理
する方法を提供する。さらに、本発明の設計によって、
重複CRCとパリティ検査処理が提供されるような、転
送データの保全性を保証する方法および構造が提供され
る。本発明はまた、データ転送動作中にクロックが故障
した場合にメイン・プロセッサのハングアップが防止さ
れる、改良されたクロック・エラー検出回路を提供す
る。
【0114】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0115】(1)メイン・プロセッサが、第1のバス
とそれに接続されたメイン・メモリを有し、アダプタ
が、通信補助プロセッサと、第2のバスと、それに接続
されたローカル・メモリと、前記メイン・メモリと前記
ローカル・メモリとの間のDMA転送を実施するための
直接メモリ・アクセス(DMA)手段とを含む、前記ア
ダプタによって配布機構に結合された前記メイン・プロ
セッサの先入れ先出し(FIFO)バッファのデータを
管理する方法であって、各パケットFIFOが先頭ポイ
ンタおよびそれと関連する末尾ポインタを有し、前記メ
イン・メモリの任意のパケットFIFOと前記ローカル
・メモリのパケットFIFOが送信FIFOであり、前
記メイン・メモリの他のパケットFIFOまたは前記ロ
ーカル・メモリのパケットFIFOが受信FIFOであ
る、前記メイン・メモリと前記ローカル・メモリの両方
に記憶された1組のパケットFIFOを提供するステッ
プと、前記送信FIFOから前記受信FIFOへのパケ
ット・データのDMA転送を実行するステップとを含
み、前記DMA転送が、前記先頭ポインタおよび末尾ポ
インタ情報に関する前記第1と第2のバスを通るポーリ
ングなしで、パケット・データのDMA転送をいつ開始
し終了するかを決定するために前記受信FIFOにおい
て使用される、前記先頭ポインタと末尾ポインタの情報
を含むことを特徴とする方法。
【0116】
【発明の効果】上述のように、本発明によって、プロセ
ッサが高性能交換機との通信を待つ必要がなく、したが
ってアダプタが主にデータ転送タスクを実行する間にメ
イン・プロセッサが他のタスクを実行できる、アダプタ
が提供されることとなった。
【図面の簡単な説明】
【図1】プロセッサと高性能交換機の間のアダプタの全
体的位置付けを示す概略図である。
【図2】アダプタとその構成をより詳細に示す図であ
る。
【図3】メイン・メモリ内に数組のパケットFIFOを
含む本発明のシステムを示す図である。
【図4】補助処理機構およびメイン・プロセッサによる
本発明の送受信動作、ならびにメイン・プロセッサのパ
ケットFIFOの管理の流れ図である。
【図5】補助処理機構およびメイン・プロセッサによる
本発明の送受信動作、ならびにメイン・プロセッサのパ
ケットFIFOの管理の流れ図である。
【図6】補助処理機構およびメイン・プロセッサによる
本発明の送受信動作、ならびにメイン・プロセッサのパ
ケットFIFOの管理の流れ図である。
【図7】補助処理機構およびメイン・プロセッサによる
本発明の送受信動作、ならびにメイン・プロセッサのパ
ケットFIFOの管理の流れ図である。
【図8】本発明によるアダプタによって転送されるデー
タの保全性を保証するための構造を示し、より具体的に
は、パリティ/CRCエラー検出を実施するための構造
を示す図である。
【図9】本発明によるクロック回路を示す図である。
【符号の説明】
1 アダプタ 2 メイン・プロセッサ・ノード 2a メイン・メモリ記憶装置 2b 先入れ先出し(FIFO)記憶バッファ 3 高性能交換機 20 アダプタ 21 マイクロチャネル・インターフェース 22 マイクロプロセッサ 23 ダイナミック・ランダム・アクセス・メモリ 24 左側直接メモリ・アクセス(DMA)エンジン 25 右側直接メモリ・アクセス(DMA)エンジン 26 先入れ先出し(FIFO)バッファ 26c 内部レジスタ 27 交換管理装置(MSMU) 28 マイクロプロセッサ・バス(アダプタ・バス) 29 マイクロチャネル・バス(アダプタ・バス)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ペーター・ハイナー・ホーホシルト アメリカ合衆国10009 ニューヨーク州ニ ューヨーク イースト・フィフス・ストリ ート 512 アパートメント・ビー (72)発明者 ユン=ポン・ファン アメリカ合衆国12443 ニューヨーク州ハ ーリー フェアウェイ・ドライブ 112

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】メイン・プロセッサが、第1のバスとそれ
    に接続されたメイン・メモリを有し、アダプタが、通信
    補助プロセッサと、第2のバスと、それに接続されたロ
    ーカル・メモリと、前記メイン・メモリと前記ローカル
    ・メモリとの間のDMA転送を実施するための直接メモ
    リ・アクセス(DMA)手段とを含む、前記アダプタに
    よって配布機構に結合された前記メイン・プロセッサの
    先入れ先出し(FIFO)バッファのデータを管理する
    方法であって、 各パケットFIFOが先頭ポインタおよびそれと関連す
    る末尾ポインタを有し、前記メイン・メモリの任意のパ
    ケットFIFOと前記ローカル・メモリのパケットFI
    FOが送信FIFOであり、前記メイン・メモリの他の
    パケットFIFOまたは前記ローカル・メモリのパケッ
    トFIFOが受信FIFOである、前記メイン・メモリ
    と前記ローカル・メモリの両方に記憶された1組のパケ
    ットFIFOを提供するステップと、 前記送信FIFOから前記受信FIFOへのパケット・
    データのDMA転送を実行するステップとを含み、 前記DMA転送が、前記先頭ポインタおよび末尾ポイン
    タ情報に関する前記第1と第2のバスを通るポーリング
    なしで、パケット・データのDMA転送をいつ開始し終
    了するかを決定するために前記受信FIFOにおいて使
    用される、前記先頭ポインタと末尾ポインタの情報を含
    むことを特徴とする方法。
JP7033547A 1994-04-05 1995-02-22 パケットfifoを管理する方法 Pending JPH07281976A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US223143 1994-04-05
US08/223,143 US5448558A (en) 1994-04-05 1994-04-05 Method and apparatus for managing packet FIFOS

Publications (1)

Publication Number Publication Date
JPH07281976A true JPH07281976A (ja) 1995-10-27

Family

ID=22835224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7033547A Pending JPH07281976A (ja) 1994-04-05 1995-02-22 パケットfifoを管理する方法

Country Status (3)

Country Link
US (1) US5448558A (ja)
EP (1) EP0676700A1 (ja)
JP (1) JPH07281976A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008259238A (ja) * 2001-04-24 2008-10-23 Nvidia Corp ギガビット・イーサネット・アダプタ

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830546A (ja) * 1994-07-20 1996-02-02 Nec Niigata Ltd バス制御装置
US5828903A (en) * 1994-09-30 1998-10-27 Intel Corporation System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer
US5519701A (en) * 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means
US5664114A (en) * 1995-05-16 1997-09-02 Hewlett-Packard Company Asynchronous FIFO queuing system operating with minimal queue status
US5752076A (en) * 1995-08-31 1998-05-12 Intel Corporation Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
DE69525531T2 (de) * 1995-09-04 2002-07-04 Hewlett Packard Co Dataverarbeitungssystem mit ringförmiger Warteschlange in einem Seitenspeicher
US5805842A (en) * 1995-09-26 1998-09-08 Intel Corporation Apparatus, system and method for supporting DMA transfers on a multiplexed bus
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US6317803B1 (en) 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5822300A (en) * 1996-04-02 1998-10-13 Compaq Computer Corporation Congestion management scheme
US5826023A (en) * 1996-06-03 1998-10-20 International Business Machines Corporation Communications tunneling
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
JPH1185668A (ja) * 1997-09-11 1999-03-30 Mitsubishi Electric Corp バス制御装置
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
US6055597A (en) * 1997-10-30 2000-04-25 Micron Electronics, Inc. Bi-directional synchronizing buffer system
US6029253A (en) * 1997-10-30 2000-02-22 Micron Electronics, Inc. Method for synchronizing data with a bi-directional buffer
US6304553B1 (en) 1998-09-18 2001-10-16 Lsi Logic Corporation Method and apparatus for processing data packets
KR100279929B1 (ko) * 1998-12-24 2001-02-01 서평원 교환기에서의 이중화 프로세서_
US6597693B1 (en) * 1999-05-21 2003-07-22 Advanced Micro Devices, Inc. Common scalable queuing and dequeuing architecture and method relative to network switch data rate
DE69931160T2 (de) * 1999-10-08 2006-09-28 Hewlett-Packard Development Co., L.P., Houston Gerät zur Verarbeitung von SONET oder SDH Rahmen auf einem PCI-Bus
EP1091289B1 (en) 1999-10-08 2004-05-26 Hewlett-Packard Company, A Delaware Corporation Device for processing sonet or SDH frames-DS0 to channel mapping
US8218555B2 (en) 2001-04-24 2012-07-10 Nvidia Corporation Gigabit ethernet adapter
US6897843B2 (en) * 2001-07-14 2005-05-24 Koninklijke Philips Electronics N.V. Active matrix display devices
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
CN100407690C (zh) * 2004-01-09 2008-07-30 华为技术有限公司 一种cpu与协处理单元通信的方法及系统
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
WO2006042155A2 (en) * 2004-10-08 2006-04-20 E-Klone, Inc. Floating vector scrambling methods and apparatus
US8190698B2 (en) * 2006-06-30 2012-05-29 Microsoft Corporation Efficiently polling to determine completion of a DMA copy operation
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

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2559394B2 (ja) * 1987-02-16 1996-12-04 株式会社日立製作所 通信制御装置
JP2745521B2 (ja) * 1988-02-23 1998-04-28 株式会社日立製作所 フレーム送信方法
US5187780A (en) * 1989-04-07 1993-02-16 Digital Equipment Corporation Dual-path computer interconnect system with zone manager for packet memory
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor
JPH03182140A (ja) * 1989-12-11 1991-08-08 Mitsubishi Electric Corp 共通バッファ形交換装置
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5210749A (en) * 1990-05-29 1993-05-11 Advanced Micro Devices, Inc. Configuration of srams as logical fifos for transmit and receive of packet data
US5247626A (en) * 1990-05-29 1993-09-21 Advanced Micro Devices, Inc. Fddi controller having flexible buffer management
US5175732A (en) * 1991-02-15 1992-12-29 Standard Microsystems Corp. Method and apparatus for controlling data communication operations within stations of a local-area network
US5276684A (en) * 1991-07-22 1994-01-04 International Business Machines Corporation High performance I/O processor
US5305321A (en) * 1992-02-24 1994-04-19 Advanced Micro Devices Ethernet media access controller with external address detection interface and associated method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008259238A (ja) * 2001-04-24 2008-10-23 Nvidia Corp ギガビット・イーサネット・アダプタ

Also Published As

Publication number Publication date
EP0676700A1 (en) 1995-10-11
US5448558A (en) 1995-09-05

Similar Documents

Publication Publication Date Title
JP2654369B2 (ja) プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置
JP2802043B2 (ja) クロック故障検出回路
JPH07281976A (ja) パケットfifoを管理する方法
JP5537919B2 (ja) データ転送のためのシステムおよび方法
US6023732A (en) Message transfer apparatus for controlling a message send in a packet switched interconnection network
KR970000274B1 (ko) 컴퓨터 시스템 및 그의 데이타 전송을 제어하는 방법
JP4447892B2 (ja) マルチコア通信モジュールを組み入れたデータ通信システム及び方法
US6061274A (en) Methods and apparatus for message transfer in computer storage system
US7043612B2 (en) Compute node to mesh interface for highly scalable parallel processing system and method of exchanging data
EP0676697A1 (en) Message data error detection circuit
JP2924783B2 (ja) リモートリード処理方法およびその装置
JP3141948B2 (ja) 計算機システム
KR100205055B1 (ko) 송신 연결망 인터페이스에서의 긴급 메시지 송신 제어 방법
JP2000029823A (ja) バスアクセス制御回路
JP3450392B2 (ja) インタフェース装置及び周辺機器
JPH1115803A (ja) 並列計算機におけるデータ送受信方法
JPH0675796A (ja) パリティエラー記録装置
JPS6113845A (ja) 通信制御装置
JPH0524545B2 (ja)
JP2001134513A (ja) データ通信システム
JPH06131246A (ja) 共有メモリの非同期アクセス方式
JPS61177560A (ja) 高速の並列バス構造およびデ−タ転送方法