JP2989665B2 - ステージングメモリを介してデータを転送する方法および装置 - Google Patents

ステージングメモリを介してデータを転送する方法および装置

Info

Publication number
JP2989665B2
JP2989665B2 JP3506032A JP50603291A JP2989665B2 JP 2989665 B2 JP2989665 B2 JP 2989665B2 JP 3506032 A JP3506032 A JP 3506032A JP 50603291 A JP50603291 A JP 50603291A JP 2989665 B2 JP2989665 B2 JP 2989665B2
Authority
JP
Japan
Prior art keywords
data
staging
memory
mass storage
elements
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 - Fee Related
Application number
JP3506032A
Other languages
English (en)
Other versions
JPH05505049A (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.)
II EMU SHII CORP
Original Assignee
II EMU SHII 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 II EMU SHII CORP filed Critical II EMU SHII CORP
Publication of JPH05505049A publication Critical patent/JPH05505049A/ja
Application granted granted Critical
Publication of JP2989665B2 publication Critical patent/JP2989665B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Description

【発明の詳細な説明】 発明の技術的背景 本発明は、コンピュータネットワークにおけるデータ
およびその他の情報のパケット指向された転送に関す
る。特に、本発明は、ステージングメモリ要素の中でデ
ータをステージすると共に、ダイレクトメモリアクセス
(DMA)チャネルを介して素子インタフェースとステー
ジングメモリの要素との間でデータを転送するための方
法および装置に関する。
パケット交換は、指定されたフォーマットを有するパ
ケット内に情報を配置し、かつ合成される全体としての
各パケットを転送することによって、コンピュータシス
テムまたはネットワークの共用バスに対し、データ、指
令および応答のような情報を転送するためのシステムは
公知である。大量のデータ転送の場合のような長期転送
は、時間量を低減するための個別パケットに解体され、
共用バスは信号転送により継続的に占有される。各パケ
ットは、殊に予定されたフィールドに整列されたアドレ
スビットおよびパケット識別ビットのような制御要素の
見出し部を含み、そしてさらに誤り制御情報を含む。
1つの公知のパケット交換方式は、ストレッカー等の
米国特許大4,777,595号明細書において、全てのパケッ
ト転送は転送ノードにおける命名されたバッファと受信
ノードにおける命名されたバッファとの間で生じること
が要求されると述べられている。命名されたバッファ
は、各ノードでアクチュアルメモリの中にある。あるノ
ードから他のノードへデータを書込むため、データは、
受信ノードおよびオフセット値において、宛先バッファ
の名前を備える指定されたフィールドでそれぞれラベル
付けされたパケットに配置される。パケットのオフセッ
ト値は、バッファの実行開始アドレスと相対し、受信バ
ッファにおける位置を指定し、特にパケットにおけるデ
ータの最初のバイトは記憶される。パケット群に対する
固有のトランザクション識別子は、また各パケットの分
離フィールド内において転送される。トランザクション
識別子は、パケットの転送を確認するプロセスにおいて
使用される。
このパケット交換方式は、パケット転送を受信するた
めのアクチュアルメモリにおける命名された宛先バッフ
ァを有するノードを要求され、そしてさらに受信ノード
がデータ転送の前に転送ノードに対するその命名された
宛先バッファを識別することが要求されるという欠点を
考慮すべきである。また、受信ノードは、命名されたバ
ッファに対するパケットの内容を制御するための転送デ
ータパケットについての宛先バッファ命名フィールドの
内容に対し応答することが要求されるという欠点を有す
る。これらの欠点は、ネットワークにおけるマルチプル
コンピュータにより共用される資源で構成する受信ノー
ドに前記欠点を課すべく試みれば、特に明白である。
例えば、コンピュータネットワークにおける幾つかの
コンピュータに対して共用される資源として動作する大
容量記憶システムが考えられる。大容量記憶システム
は、しばしば並行して1つ以上のコンピュータからデー
タ転送要求を処理しなければならず、そしてこれら転送
のそれぞれに際して伴うデータは、ネットワーク通信バ
ス上を転送するための幾つかのパケットの中に分割され
ることが要求されるために、しばしば十分に大きくな
る。通信バスのプロトコルおよび転送の相対的優先順位
により、大容量記憶システムは、他の転送と結合するパ
ケット間であるデータ転送と結合するパケットを受信し
得る。
典型的には、大容量記憶システムは、ネットワーク通
信バスの素子インタフェースと大容量記憶素子インタフ
ェースとの間の移行において、データをパスするメモリ
を有する。このメモリは、大容量記憶システムのシステ
ムプロセッサと他のプロセッサ(例えば、ネットワーク
バス上の遠隔プロセッサまたは大容量記憶システムにお
ける他のプロセッサ)との間で制御される制御メッセー
ジを有するパケットを処理する。データまたは制御メッ
セージを含むパケットは、メモリと1つもしくはそれ以
上のDMAチャネルによる素子インタフェースとの間で、
転送される。このようなDMAチャネルは、初期設定後に
システムプロセッサのアテンションを要求されることな
く、メモリの内部または外部へ直接データを転送するた
めの、データバスと制御回路とを含む、高速通信インタ
フェースで構成される。
もし、大容量記憶システムが、ネットワークにおける
いずれかのコンピュータからのデータ転送を受信するた
めの優先順位が、全体のデータ転送(多数のパケットは
長くなる)を受入れるメモリでの命名されたバッファス
ペースを割当てることが要求されるならば、このような
データ転送要求の幾つかの並行処理は、処理される並行
転送の数と等しくなるように分離して命名されたバッフ
ァスペースの多くのものに並行に割当てられる。この大
容量記憶システムのメモリにおける分離して命名された
バッファの割当ては、メモリを拘束して、利用可能なメ
モリの非能率的使用に帰着させ、そして並行処理できる
データ要求の数を制限することにより、大容量記憶シス
テムのデータのスループットの限定を可能とする。
より大きな効率(メモリの使用について)は、パケッ
ト毎の基準でメモリの多くの動的割当により達成するこ
とができることである。すなわち、このような特別の入
力期待パケットのためのメモリスペースは、パケットが
大容量記憶システムにより受信されるまで、割当てられ
ない。さらに、効率は、メモリにおいて利用可能ないず
れかの位置に記憶するためのパケットを許容することに
より改善される。このような、任意の、メモリのパケッ
ト毎の割当ては、大容量記憶システムのメモリに特に適
する。一方のコンピュータの実メモリと他方のコンピュ
ータの実メモリとの間のデータの好ましくない転送は、
大容量記憶システムに伴うデータの転送が、データのた
めの最終宛先としての大容量記憶システムのメモリに使
用し得ないことである。むしろ、上述したように、デー
タを含むパケットは、ネットワークの通信バスとシステ
ムの大容量記憶素子または装置との間の移行に際し、メ
モリを介してのみパスする。データは、任意の2方向
(例えば、大容量記憶の入力および出力)において、ネ
ットワークでのコンピュータの要求および通信バス、大
容量記憶装置および大容量記憶装置へ導くデータチャネ
ルの条件(例えば、使用中または未使用)により、メモ
リを介して交信される。結果として、いかなる特定の時
間で使用されるメモリスペースの容量および特定の位
置、そして反対に、パケットを受信するために利用可能
な容量および特定の位置は、継続的に変化する。特定の
メモリ位置は、利用可能と利用不能との間での任意のサ
イクルで指定する。このような状況において、メモリに
おける命名されたバッファスペースの予備的割当ては、
非能率であることが明らかでありかつ不必要である。
前述した観点から、パケットを可能にする代わりに、
他のパケットに対するソース、内容および関係を顧慮し
ないで利用可能なメモリ位置に任意的に配置することが
望ましい。このようなことは、即時要求および即時使用
可能性に基づいてメモリ位置を割当てることを大容量記
憶システムが許容する(例えば、メモリは、パケットが
システムによって受信された際に、メモリ位置が利用可
能になるようにするものであれば、入力パケットを配置
することは自由である)。同様に、ネットワーク通信バ
ス上に転送を準備するために、メモリにおける任意の位
置に対し転送させるように、大容量記憶装置からのデー
タを許可することが望ましい。再度、即時要求および即
時使用可能性に基づいてメモリ位置を割当てることを大
容量記憶システムが許容する。勿論、さらにメモリにお
ける任意の位置からデータを検索し、そして大容量記憶
への転送またはネットワーク通信バス上の転送のいずれ
かの論理命令においてデータをアセンブリすることが可
能になることが望ましい。
パケット交換ネットワークは、メモリからメモリへパ
ケットを転送することに対し、命名された宛先バッファ
の優先順位を識別するための受信ノードが要求されない
技術分野において公知である。これらのネットワーク
は、受信メモリ、例えば受信ノードのメモリにおいてソ
フトウエアで制御されるアドレステーブル、転送ノード
に対し未知の割当てられたメモリ位置を指すように使用
される項目を維持することにより、受信メモリへのパケ
ットの内容を制御するために種々の方法を使用する。こ
の発明は、このようなネットワークすなわち命名された
バッファの割当てまたは識別をすることなく、ネットワ
ーク通信バスとメモリとの間でパケットを転送するため
の方法および装置提供するこの発明の目的となるような
ことを原理的に採用する。
しかしながら、公知のコンピュータシステムは、典型
的には、プロセッサの中断を最小にしそして転送プロセ
スを簡単にするために、メモリにおける連続する位置へ
および位置からデータを転送する。公知のコンピュータ
システムすなわち非結合メモリ位置において記憶されて
いるデータにおいて、分離プロセッサの中断は、メモリ
へおよびメモリからデータのそれぞれ非連続セグメント
を転送することが通常要求される。この発明は、メモリ
から素子インタフェースへデータを書込むことに関し、
メモリに記憶されているデータの非連続セグメントが、
素子インタフェースに対し連続DMAデータ転送を形成す
るために、DMA制御論理により結合され、そしてメモリ
から素子インタフェースへデータを読出すことに関し、
素子インタフェースからの連続DMAデータ転送は、ステ
ージングメモリにおけるメモリの選択された連続の不要
なセグメントへDMA制御論理により送られるようなシス
テムの改良である。初期準備後に、プロセッサアテンシ
ョンは、全体の転送が完了するまで、個々のデータセグ
メントを転送することは、どちらの場合にも要求されな
い 発明の概要 これらおよびその他の目的および利点は、複数のアド
レス可能な要素に論理的に分割されるステージングメモ
リを提供することにより達成される。利用可能な要素と
対応する識別子は、このような識別子のプールからマイ
クロプロセッサにより任意に選択され、そしてFIFO記憶
回路のようなシーケンス記憶回路に記憶される。
この発明は、ネットワークバス素子インタフェースと
大容量記憶素子インタフェースとの間のデータ転送のた
めのステージングメモリを含む大容量記憶システムの背
景において述べられている。パケットがネットワーク通
信バスに接続された素子インタフェースからステージン
グメモリにより受信されることになる場合、要素の識別
子はDMA制御によりシーケンス記憶回路からアクセスさ
れ、そしてパケットはメモリの対応する位置に記憶され
る。論理は、メモリ要素がパケットが受信したこと、す
なわち、記憶レジスタにおける要素と対応する状態ワー
ドを配置することにより、およびプロセッサ中断信号の
ような制御信号を発生することにより、表示する。そし
て、パケットは大容量記憶のためのデータを含んでいる
かどうかを決定するために、主記憶システムのシステム
プロセッサによりチェックされる。もし、パケットが記
憶のためのデータを有していなければ、システムプロセ
ッサは、データパケットが受信されなかったことを他の
ソフトウエアに通告する。一方、システムプロセッサ
は、検索データテーブルにおける受信されたパケットを
識別する情報を配置する。データの複合パケットは、高
速度で受信し得る。何故なら、シーケンス記憶回路は、
複合要素の識別子で転送するための優先順位をプログラ
ムし得るからである。
メモリ要素において記憶されたデータは、システムマ
イクロプロセッサによる単一の介入のみが要求される蛇
行操作により大容量記憶するように転送される。発明者
の「蛇行」によるとは、データを非連続メモリ位置から
単一データ送信へ組合せることを意味する。これは、単
一データ送信に含まれるように、データを有するメモリ
要素と対応する一連の要素識別子で、シーケンス記憶回
路をプログラミングすることにより達成される。システ
ムプロセッサから分離し、そしてシステムプロセッサに
より準備する論理制御に基づいて、対応する一連の要素
からのデータはメモリから読出され、そしてシーケンス
記憶回路における要素識別子のプログラムされた命令に
従い、大容量記憶素子インタフェースに対し転送が予定
された長さのデータストリームにアセンブルされる。デ
ータストリームは、見出し領域、データ領域および誤り
訂正領域からなる。これらいずれの領域も、メモリ中に
存在し、または準備の間システムマイクロプロセッサに
より論理を与える指令の結果としてDMA制御論理により
発生させ得る。好適な実施例において、例えば、メモリ
と素子インタフェースとの間の転送の限界を定めるもの
として適当なブロックサイズ達することが必要であれ
ば、データストリームにおける最後のデータ領域に制御
論理を埋込む。さらに、これらいずれの領域でも(例え
ば、見出し領域)省略し得るか、または加えられ、転送
されるデータの種類により定まる。
データが大容量記憶から読出される場合、データは大
容量記憶素子インタフェースからの単一連続DMAデータ
ストリームとしてステージングメモリへ転送される。デ
ータストリームは、システムプロセッサにより、シーケ
ンス記憶回路にプログラムされる一連の要素識別子に従
って、ステージングメモリの選択された必要のない連続
メモリ要素の中に記憶されるセグメントに分割される。
このプロセスは、ここにおいて「非蛇行」として参照さ
れる。要素識別子は、利用可能なメモリ要素に対応し、
そしてこのような識別子のプールからシステムマイクロ
プロセッサにより任意に選択される。データは、システ
ムプロセッサからの論理分離の制御に基づいて記憶さ
れ、そしてシステムプロセッサにより準備され、このよ
うにしてシステムプロセッサの介入は、転送が完成する
まで初期準備後に要求されることはない。システムプロ
セッサは、データセグメントを受信するようにプログラ
ムされるメモリ要素のトラックを保持し、そしてステー
ジングメモリからの検索データセグメントに対し、予め
準備論理を行う際に、それらを個々のパケットにアセン
ブルし、そしてネットワーク通信バス上に転送するため
に、ネットワークバス素子インタフェースに対しそれら
を準備する。
図面の簡単な説明 本発明の上記および他の目的および利点は、同様の参
照符号が引用する同様の部分からなる添付図面との関係
において、後術する詳細な説明を考慮すれば明白であろ
う。
図1は、本発明の原理によるステージングメモリを含
む大容量記憶システムのブロック結線図である。
図2は、ステージングメモリと受信アドレスとFIFOの
受信状態を含む、本発明の一実施例のブロック結線図で
ある。
図3は、従来技術として公知であり、本発明で好適に
使用するための型式の典型的データパケットのフォーマ
ットを示す結線図である。
図4は、ネットワーク通信バスからの受信データパケ
ットまたは大容量記憶素子インタフェースからの見出し
/データセグメントを有する図1におけるステージング
メモリの識別メモリ要素に対しプロセッサメモリにおい
て準備されるデータテーブルの結線図である。
図5は、図1のステージングメモリおよび蛇行/非蛇
行FIFOを含む本発明の蛇行/非蛇行システムの一実施例
のブロック結線図である。
図6は、本発明の原理によるステージングメモリ110
とDMAチャネル105との間でデータの転送を実行する間の
図5の状態機械語シーケンス回路506の状態のフロー結
線図である。
図7は、それぞれのネットワーク通信バス素子インタ
フェースに対し、ステージングメモリと転送アドレスと
FIFOの転送状態を含む本発明のパケット転送システムの
一実施例のブロック結線図である。
図8は、本発明の蛇行システムの別の実施例のブロッ
ク結線図である。
発明の詳細な説明 図1は、大容量記憶システム100を示し、このシステ
ム100は1もしくはそれ以上の大容量記憶素子102(例え
ば、ディスク駆動機構またはディスク駆動機構配列)お
よび大容量記憶システム100における素子102と他の回路
構成との間での通信のために対応する素子インタフェー
ス104とを含む。大容量記憶システム100は、素子インタ
フェース104を経てネットワーク通信バス109と接続され
る。データが大容量記憶素子102とネットワーク通信バ
ス109に接続されるホストコンピュータとの間で転送さ
れる間に、一時的記憶情報に対し、大容量記憶システム
100におけるステージングメモリ110が提供される。この
ステージングメモリは、例えば、データを受信するため
の他の素子インタフェースの用意をするまでは、いずれ
か一方の素子インタフェース104または108の1つから受
信されるデータを保持するように使用される。大容量記
憶素子103に対しネットワークバス109上のホストコンピ
ュータからデータを転送する場合、ステージングメモリ
110は、素子インタフェース108の1つからデータを受信
し、素子インタフェース104の1つに転送されるまでデ
ータを保持する。大容量記憶素子102からネットワーク
バス109に接続されたホストコンピュータへデータを転
送する場合、ステージングメモリ110は、素子インタフ
ェース104の1つからデータを受信し、素子インタフェ
ース108の1つに転送されるデータを保持する。同様
に、ステージングメモリ110は、同様の種類の素子イン
タフェースの間に転送(例えば、素子インタフェース10
4の1つから他の素子インタフェースへの転送)される
データを保持し得る。この同じメモリは、ネットワーク
バス109と大容量記憶システム100とを接続するホストコ
ンピュータ間にコマンドメッセージとしての大容量記憶
データとは別な情報の転送処理の目的に使用し得る。
大容量記憶システム100におけるデータ転送は、DMA制
御論理構成要素103および106を介してシステムプロセッ
サ107により制御される。DMA制御論理構成要素103は、
素子インタフェース108とステージングメモリ110の間で
データの転送を制御する。DMA制御論理構成要素106は、
素子インタフェース104とステージングメモリ110の間で
データの転送を制御する。図1の実施例において、2つ
の素子インタフェース108は、2:1マルチプレクサ111を
介してステージングメモリ110に対しての接続が示さ
れ、このマルチプレクサは、2つの素子インタフェース
108がステージングメモリ110と交信し得ることの決定
を、DMA論理構成要素からの制御信号に対し応答する。
素子インタフェース108のそれぞれは、DMAバス112とイ
ンタフェースするポート108aを含む。同様に、ステージ
ングメモリ110は、DMAバス112とインタフェースするポ
ート110aを含む。DMA制御論理構成要素103は、DMAバス1
12上のデータの転送を達成するためのそれぞれポート10
8aと110aおよびマルチプレクサ111に対し、制御信号を
供給する。それぞれの素子インタフェース104は、2:1マ
ルチプレクサ104bに相当することの設定により決定する
ように、2つのDMAバス105のいずれかにDMAデータを転
送または受信するためのポート104aを有する。それぞれ
のマルチプレクサ104bの準備は、2つのDMA制御論理構
成要素106により調整される。同様のステージングメモ
リ110は、DMAバス105のそれぞれ1つと交信するための
2つのポート110bを含む。それぞれ分離したDMA制御論
理構成要素106を備える素子インタフェース104とステー
ジングメモリ110との間の2つのDMAバス105を提供する
ことにより、ステージングメモリ110と素子インタフェ
ース104の2つの異なるものとの間の2つの同時DMA転送
をすることができる。DMA制御論理構成要素106のそれぞ
れは、DMAバス105上のデータ転送を達成するために、ポ
ート104aと110bおよびマルチプレクサ104bに対し制御信
号を供給する。さらに、DMA論理構成要素103を制御する
場合、システムプロセッサ107は、ポート110cを経てス
テージングメモリ110に対し直接アクセスする。システ
ムプロセッサ107は、また素子インタフェース104および
108に対し直接アクセスする。
以下に、より詳細に説明するように、DMA制御論理構
成要素103は、このDMA制御論理構成要素103および素子
インタフェース108の初期準備後に、ステージングメモ
リ110と素子インタフェース108の1つとの間のデータ転
送と関連して、システムプロセッサ107からオフローデ
ィングデータ転送のオーバヘッドの目的に役立つ。同様
に、また、以下に詳細に説明するように、DMA制御論理
構成要素106は、特有のDMA制御論理構成要素106の初期
準備後に、ステージングメモリ110と素子インタフェー
ス104の1つとの間のデータ転送と関連して、システム
プロセッサ107からオフローディングデータ転送のオー
バヘッドの目的に役立つ。
図2は、素子インタフェース108からのデータパケッ
トをステージングメモリ110に受信するために実施する
本発明のパット受信システムの模範的実施例ブロック結
線図を示す。素子インタフェース108は、図3に示すデ
ータパケットのような、パケットの形式でバス110上の
情報を受信する。これらのパケットのフォーマットは、
典型的には各パケットが以下に定義される見出し領域に
おいて、通常表示される公知のサイズを有するように定
義される。この見出し領域は、パケット見出しまたは識
別領域300a、データ領域300b、および妥当性検査情報
(例えば、CRC情報)のための領域300cを含んでいる、
3つの領域を含む。パケットの実際のフォーマットは、
本発明のパケット受信システムで使用される情報処理シ
ステムにより変化する。以下に、より詳細に説明される
ように、本発明は、パケットサイズにおいて適宜の変更
が可能である。また、データパケットのフォーマット
が、コンピュータと大容量記憶システムとの間の転送制
御または状態情報のために使用されることは評価され
る。そして、素子インタフェース108により受信される
パケットのデータ領域は、制御または状態情報のような
大容量記憶データとは異なった情報が含まれる。図3の
パケットにおいて、領域300b(例えば、大容量記憶デー
タ、制御または状態情報)により含まれるデータの形式
は、識別領域300aのOPCODE部により識別される。
変化のある図表は、大容量記憶データに含まれる個々
のパケットを参照するために、従来の情報処理システム
において使用されている。このような従来の図表の1つ
は、トランザクションをベースとするパケット転送を伴
う。それぞれのトランザクションは、トランザクション
に含まれるそれと各パケットが参照されることにより番
号を有する。複数のパケットが特定のトランザクション
を含んでいると、パケットにおける大容量記憶データの
指令は、各パケットにおける大容量記憶データの始めが
トランザクションでの第1パケットにおける大容量記憶
デーの始めからオフセットされることにより、オフセッ
ト値がワード数またはバイト数またはその他のデータ数
と等しくすることにより、識別される。トランザクショ
ン識別領域302およびオフセット値領域304は、識別領域
300aの部分としてデータパケット300の中に示される。
ここに説明される本発明のパケット受信システムの模範
的な実施例は、パケット参照についてこのような形式を
使用するネットワークの前後関係として説明されてい
る。当業者において明白であるように、しかしながら、
この発明の実施例は他のパケット識別図表を実施するこ
とができる。さらに、また明白であるように、本発明
は、パケットにおいて指定される特定の宛先バッファア
ドレスを考慮することなく、実施することができる。
一般的に、従来の共用されるシステムまたはネットワ
ークバス上のパケットデータの転送、すなわち大容量記
憶システムに対する中央プロセッサのメモリからの書込
みデータを伴うものは、遠隔中央プロセッサから大容量
記憶システムへコマンドパケットにより開始する。例え
ば、書込みトランザクションにおいて、コマンドパケッ
トは、典型的には、他の情報の中で、アドレス、出所ア
ドレス(コンピュータの要求により大容量記憶システム
に対し供給される)およびトランザクション識別子を含
むリターンパケットを供給することにより応答すること
を大容量記憶システムに要求する。この応答を受信する
と、遠隔中央プロセッサは、パケットに転送するために
検索するデータを配置し、そして各データパケットの相
当する領域に大容量記憶システムにより発生する受信ア
ドレスおよびトランザクション識別子を配置する。中央
プロセッサはまた、各データパケットのためのオフセッ
ト値を発生し、そして典型的には、大容量記憶システム
に対するオフセット値の命令でデータパケットを転送す
る。
パケット交換システムの多重化機能のために、これら
のデータパケットは、他のトランザクションと結合する
データパケットの中に点々と配置される大容量記憶シス
テムにより受信され得る。典型的な従来の大容量記憶シ
ステムにおいて、受信されたデータパケットからのデー
タは、パケットと各パケットにおいて指定されたオフセ
ットを加えたアドレス領域において、識別される受信領
域での連続メモリ位置の始めに配置される。
この発明のステージングメモリ110は、遠隔中央プロ
セッサに対し未知の同一の記号で非連続位置でメモリに
記憶するために、受信データパケットを許容することが
大容量記憶システムにおいて有効である。ステージング
メモリ110は、アドレス指定可能なメモリ回路で構成さ
れる。ステージングメモリ110のメモリ要素は、商業的
に利用可能な集積回路のRAM素子(例えば、モトローラ
社製6293RAMチップのような素子)に使用するものとし
て実施し得る。商業的に利用可能なレジスタ素子は、ま
たポート110a、110bおよび110cを設けるために使用し得
る。各ポートは、好ましくはデータラッチレジスタ、ア
ドレスカウンタおよびリード/ライト可能レジスタから
構成し、そしてポート機能を実施するために要求される
ような他の論理を含む。ステージングメモリ110の目的
が、ネットワークパケットを段階化(ステージング)す
ることであるので、メモリは、それぞれアドレスおよび
長さとして説明し得る複数の「ステージング要素」200
に対し、システムプロセッサにより論理的に分割され
る。この実施例において、全てのステージング要素は、
最大予想パケット長さが等しくなる。この論理分割は、
大容量記憶システム100がオンライン状態になる前に、
システムプロセッサ107により達成される。システムプ
ロセッサ107は、ステージング要素200の数を決定するた
めに、最大予想パケット長さによりステージングメモリ
110のサイズを分割し、そして各ステージング要素200の
開始アドレスのメモリにおいて、リストSE_FREE_POOLを
作成する。
遠隔中央プロセッサが、大容量記憶システム100に対
し書込み操作を開始する際に、システムプロセッサ107
は、先に説明したように、トランザクション識別子を含
むパケットを中央プロセッサに対し、発生しかつリター
ンする。システムプロセッサ107は、また以下に説明す
るように、データがステージングメモリ110に配置され
る後に、完全に顕著なトランザクションにおいて、その
後の使用に対し、メモリ−レジデントテーブルに発生し
たトランザクション識別子を配置する。以下に、より詳
細に説明されるこのようなテーブルの例は、図4に示さ
れる。
パケットがトランザクションを転送するに先立って、
システムプロセッサ107は、一連のステージング要素識
別子を備えるDMA制御論理103におけるシーケンス記憶回
路をプログラムする。これらの識別子は、受信パケット
に対し利用可能な個々のステージング要素と対応する。
それらは、SE_FREE_POOLリスト上で識別された利用可能
または現在未使用のステージング要素からシステムプロ
セッサ107により選択され、そしてステージングメモリ1
10の相対するステージング要素に、素子インタフェース
108により受信されるデータパケットを記憶するため、
ポート制御ハードウエア203により個々にアクセスされ
る。ポート制御ハードウエア203は、素子インタフェー
ス108とステージングメモリ110との間のデータの転送の
ために、これら回路の特定の実施により要求されるよう
に、制御、アドレス、およびポート108aおよび110aのデ
ータレジスタを処理するため、およびマルチプレクサ11
1を制御するため、離散的論理またはプログラム可能な
アレイ論理の使用によるような、従来実施し得る論理に
より構成する。
図2の実施例において、シーケンス記憶回路202は、
回路に記憶されたステージング要素識別がシステムプロ
セッサ107により負荷される同じシーケンスにアクセス
される従来のFIFO(先入れ先出し方式)記憶回路(ラベ
ル付RCV ADDR FIFO)使用して実施される。プログラ
ムされた識別子がポート制御ハードウエア203によりア
クセスされるシーケンスは、もし望むならば(例えば、
識別子が、LIFO回路−後入れ後出し方式の使用によるよ
うな、逆の指令でアクセスされること)、異なる指令に
おいてもなし得る。さらに、シーケンス記憶回路は、RA
Mまたはレジスタアレイ、またはマイクロプロセッサの
使用によるようなFIFOまたはLIFO回路とは異なった回路
構成により実施することができる。
この発明の好適な実施例において、各ステージング要
素識別子は、相対するテージング要素のステージングメ
モリ110における開始アドレスSEを含む。各アドレスSE
が、RCV ADDR FIFO 202に対しシステムプロセッサ10
7により負荷されるように、短い「タグ番号」RTはアド
レスに対し結合し、そしてこのタグ番号と回路202へ負
荷される各ステージング要素の相対する開始アドレスお
よび長さは、基準テーブル204へシステムプロセッサ107
により配置される。タグ番号の目的は、RCV STATUS F
IFO 206における発生する状態ワードで使用するため
に、RCV ADDR FIFO 202に負荷される各開始アドレス
SEに対し、速記基準を提供することである。RCV STATU
S FIFO 206におけるステージング要素の実際の開始ア
ドレスの代りにタグ番号を使用することにより、FIFO20
6の必要なビット幅は、小さく保持される。RCV STATUS
FIFO 206における状態ワードの発生は、以下に説明
する。
タグ番号は、連続的な指令でRCV ADDR FIFO 202に
負荷されるが、他の指令は、RCV ADDR FIFO 202にお
けるタグ番号の指令が基準テーブル204により反映され
る。好ましくは、タグ番号は、0から(m−1)の値を
有する。但し、mは深さに等しい可変のパラメータ、ま
たはRCV ADDR FIFO 202(例えば、同時に、RCV ADD
R FIFO 202に負荷されるステージング要素識別子の番
号)についてのその部分である。例えば、もし16または
それ以上のステージング要素識別子の深さを有するFIFO
回路が使用されるならば、タグ番号Tは0−15の値を有
する4ビットバイナリ番号により構成し得る。RCV ADD
R FIFO 202に負荷される第1のステージング要素アド
レスは、0のタグ番号が割当てられ、第2の場合は、順
次1が割当てられる。この場合、タグ番号は、15が0に
なる後に使用される次のタグ番号となるモジュロ−16カ
ウンタとして動作する。
システムプロセッサ107は、初期的に負荷されたアド
レスがバス109から素子インタフェース108に到達するデ
ータパケットを受信するために、ポート制御ハードウエ
ア203により使用されるように、SE_FREE_POOLリストか
ら現在利用可能なステージング要素の開始アドレスをRC
V ADDR FIFO 202に再負荷する。システムプロセッサ
107は、システムプロセッサをRCV ADDR FIFO 202に
再負荷するように、基準テーブル204を更新する。好ま
しくは、RCV ADDR FIFO 202におけるステージング要
素識別子の初期の負荷は、大容量記憶システムが初期設
定される際に行われる。勿論、ステージング要素がパケ
ットを受信する際には、パケットが、ステージング要素
から大容量記憶素子インタフェースへ転送され、または
ステージング要素が利用可能な状態にリターンする時に
別な方法で処理され、そしてSE_FREE_POOLリストにリタ
ーンされるようになる時間まで、パケットは利用不可能
となる。このように、個々のステージング要素のステー
ジングメモリ110の操作の間に、可変時間で利用可能な
状態と利用不可能な状態との間のサイクルとなる。シス
テムプロセッサ107は、ステージング要素がいかなる時
間でも、RCV ADDR FIFO 202に負荷することが利用可
能であることを知るために、SE_FREE_POOLリストを使用
する、このようなサイクル処理のトラックを保持する。
好適な実施例において、素子インタフェース108は、
バス109から受信されるパケットからのCRC情報(例え
ば、妥当性検査領域300c)、すなわち受信された各パケ
ットからの見出しおよびデータ領域で構成するデータセ
グメントがステージングメモリ110に記憶されるよう
に、検査しそして取り除く。各データパケットからのデ
ータセグメントがステージングメモリ110により受信さ
れた後、ポート制御ハードウエア203は、パケット転送
の官僚を表示するため、FIFO回路206(RCV STATUS FI
FO)に相対する状態識別子を負荷する。状態識別子は、
パケットを受信したステージング要素に対し、RCV ADD
R FIFO 202において割当てられた一群のSTATビットと
タグ番号とを含む。STATビットは、例えば、DMA制御論
理103により転送誤りが検出されたかどうか表示する誤
りビットと、素子インタフェース108がバス109からパケ
ットを受信したことを表示するビットとを含む。RCV A
DDR FIFO 202として、RCV STATUS FIFO 206は、FI
FO回路とは相違する従来の回路構成を使用して実施する
ことができる。
空から空でない状態へのRCV STATUS FIFO 206の移
行において、システムプロセッサ107に対し、パケット
を受信したことを表示するための割込みが発生する。割
込みに対する応答に際し、システムプロセッサ107は、R
CV STATUS FIFO 206における第1の状態識別子のタ
グ番号を読出し、そしてテーブル204からの相対するス
テージング要素の開始アドレスおよび長さを決定する
(全てが等しいかどうかテーブル204において、ステー
ジング要素の長さをリストする必要はなく、この場合、
長さは、システムプロセッサ107により読出される単一
メモリ位置またはレジスタに記憶される)。システムプ
ロセッサ107は、さらに図4に示すように、テーブル400
へのパケットの開始アドレス、長さおよびオフセットを
配置する。RCV STATUS FIFO 206から読出すタグ番号
と対応するテーブル204におけるステージング要素識別
子の項目は、DMA制御論理103における番号による有効な
タグがないことを表示するために空番号を設定する。テ
ーブル400は、顕著なトランザクションについてのトラ
ンザクション識別子に従って索引付けし、そしてこのよ
うなトランザクション識別子を与えるために、トランザ
クションと結合するデータパケットを受信して保持する
ステージング要素の開始アドレスは、素子インタフェー
ス108によって受信されたトランザクションのパケット
において、またはそれらのオフセットの指令において、
システムプロセッサ107によりリストされる。テーブル4
00は、図5との関係で説明されるように、ステージング
メモリ110から大容量記憶素子インタフェースへデータ
の転送を完了するために、システムプロセッサ107によ
り使用される。
データパケットを有するステージング要素に記憶され
る、大容量記憶への転送の完了において、大容量記憶シ
ステムによる内部的使用のための、論理ブロックアドレ
スと大容量記憶素子番号のような、新たな制御情報が要
求される。これは、パケットがステージングメモリ110
に配置された後に、パケットの見出し領域において含ま
れるオリジナル制御要素の選択された部分に新たな制御
情報を書込むシステムプロセッサ107を有することによ
り、簡単に達成することができる。または、このような
新たな制御情報は、ステージングメモリ110から大容量
記憶素子インタフェース104へ転送されるデータ領域と
して、DMA制御論理106によりパケットデータ領域へ加え
ることができる。
システムプロセッサ107が割込みに対する応答でRCV
STATUS FIFO 206における第1の状態識別子をアクセ
スし、そしてテーブル400に結合したステージング要素
のアドレスを配置した後、システムプロセッサ107は、
追加の状態識別子に対するRCV STATUS FIFO 206を検
索し、そしてそれぞれこのような識別子に対するアクセ
ス処理を繰返す。もし、RCV STATUS FIFO 206におい
てそれ以上の識別子がなければ、システムプロセッサ10
7は、再度割込みがあるまで他の操作に戻る。
素子インタフェース8に到達するパケットが大容量記
憶データパケット、すなわち、コマンドパケットまたは
その他の形式のメッセージと相違すれば、パケットは、
大容量記憶データと相違するものとして、システムプロ
セッサ107により識別される。パケットは、システムプ
ロセッサ107がテーブル400に相対するステージング要素
のアドレスを配置しないことを除いて、大容量記憶デー
タパケットと同様の方法により、ステージングメモリ11
0に受信される。代案として、システムプロセッサ107
は、大容量記憶システムの制御回路構成において、他の
ソフトウエアに対しパケットを含むステージング要素の
アドレスを供給し、順次にパケットを処理し、そしてSE
−FREE−POOLに対しパケットを含むステージング要素を
最後にリターンさせる。
このシステムプロセッサが、バス109から受信される
特定の書込みトランザクションに対し、全ての大容量記
憶データパケットを検出するに際し、大容量記憶素子イ
ンタフェース104の1つに対し、大容量記憶データを転
送するように準備する。
図5は、ステージングメモリ110と大容量記憶素子イ
ンタフェース104に接続されたDMAチャネル105との間の
データを転送するための「蛇行/非蛇行」機構の模範的
な実施例を示す。この発明は、DMAチャネル105の両方向
へのデータ転送に関する。用語の「蛇行」は前もってこ
こに述べられている。第1に、大容量記憶素子インタフ
ェース104の1つに対し、単一の連続DMAデータ転送とし
て、データを転送するために、ステージングメモリ110
の選択されたステージング要素において、記憶されたデ
ータと共に蛇行するための方法が記載される。
説明の目的として、それは、単一データ転送トランザ
クションと結合した大容量記憶データの幾つかのパケッ
トが、大容量記憶システムに対しコンピュータにより転
送されることであり、そして図2との関係で述べられた
本発明のパケット受信方向に従うステージングメモリ11
0の可変ステージング要素200に記憶されることである。
記憶された大容量記憶データパケットは、大容量記憶デ
ータの少数量のみ有するトランザクションと結合した最
後のデータセグメントの可能な除外で長さを等しくす
る。それぞれ記憶された大容量記憶データパケットは、
大容量記憶において、典型的な論理および物理的位置に
対し相対する大容量記憶データを指向させて、使用する
ための制御を包含しそして情報をアドレスする見出しを
含むために、システムプロセッサ107により変更される
(前もっての状態として、この情報は、パケットの見出
し領域において、元来含まれている制御情報の上に書込
まれる)。また、システムプロセッサ107は、共に蛇行
するデータセグメントの開始メモリアドレス、長さおよ
びオフセット値の知識を有することが、仮定される。こ
れは、例えば、前述した方法において、データがステー
ジングメモリ110に記憶された場合、図4に示すよう
に、検索データテーブルを作成することにより達成され
る。
ステージングメモリ110の選択されたステージング要
素200からDMAチャネル105へデータセグメントを転送す
るために、システムプロセッサ107は、それぞれ選択さ
れたステージング要素に含まれる変更された見出し領域
のメモリにおいて、開始アドレスと対応する一連のメモ
リアドレス(「SE ADDRESS」)を備えるDMA制御論理10
6のシーケンス記憶回路504をプログラムする。シーケン
ス記憶回路504は、好ましくは、ステージングメモリア
ドレスが、相対するステージング要素に含まれるデータ
セグメントのオフセット値に従ってプログラムされそし
てアクセスされるFIFO記憶回路(ラベル付けされた「SN
AKE/DESNAKE FIFO」)を使用して実施される。ステー
ジングメモリアドレスがプログラムされたシーケンス
(およびこのような相対するステージング要素の内容が
転送されるシーケンス)は、望ましいように変化させる
ことができる。シーケンス記憶回路504は、LIFO回路、R
AMまたはレジスタアレイ、またはマイクロプロセッサの
使用によるように、FIFO回路とは相違する回路構成によ
り実施され得る。
シーケンス記憶回路504のプログラミング後に、シス
テムプロセッサ107は、転送するためのデータの全長と
等しい値を、データ転送長さカウンタに負荷する。この
データ転送長さカウンタのローディングは、ポート制御
ハードウエア506の操作を開始する。ポート制御ハード
ウエア506は、ポート104aおよび110bの制御アドレスお
よびデータレジスタを処理するため、およびマルチプレ
クサ104bを制御するため、離散的な論理またはプログラ
ム可能なアレイ論理を使用するようにして、従来的に実
施し得ると共に、システムプロセッサ107から要求され
る更なるアテンションなしにDMA転送を実行するために
従来方法で構築される状態機械語シーケンス回路および
その他の論理で構成する。フロー図600は、ステージン
グメモリ110と図6に示されるDMAチャネル105との間でD
MA転送を実行するように、ポート制御ハードウエア506
の状態シーケンス回路の状態を示す。
ステージングメモリ110から素子インタフェース104へ
の転送において伴う状態は、図6の低部において示さ
れ、そして一般的に読出しシーケンス600aとしてここに
参照される。ポート制御ハードウエア506の状態機械語
シーケンス回路は、状態機械語シーケンス回路がデータ
転送長さカウンタのローディングをシステムプロセッサ
107により開始する場合、未使用状態601から読出しシー
ケンス600aを始める。状態機械語シーケンス回路は、最
初に、ステージングメモリ110における各見出し/デー
タセグメント(例えば、520バイト)の長さと等しい値
で、ブロック長さカウンタ508に負荷する(小数のデー
タセグメントを除く)(状態602)。状態機械語シーケ
ンス回路は、次に、DMAチャネル、大容量記憶素子イン
タフェースポート104aおよびDMA転送のためのステージ
ングメモリポート110bを準備するために必要となる制御
信号を、ポート制御ハードウエアに発生するようにする
(状態604)。
ポート制御ハードウエア506の状態機械語シーケンス
回路は、その後、大容量記憶素子インタフェース104に
対し、DMAチャネル105上に転送される単一データストリ
ーム512に選択されたデータセグメントをアセンブルす
る。これは、次のようにして達成される。状態機械語シ
ーケンス回路は、ステージングメモリ110以外の指向さ
れる見出し/データバイトに対し、ステージング要素ア
ドレスを有するステージングメモリポート110bを備える
アドレスカウンタ509に負荷されるように、シーケンス
記憶回路504に第1のステージングメモリアドレスを生
じる(状態606)。見出し/データセグメント517からな
る見出し514およびデータ領域516は、アドレスされたス
テージング要素からDMAチャネル105へ転送される。
各バイトがDMAチャネル105へ転送された後は、ブロッ
ク長さカウンタ508およびデータ転送長さカウンタ510は
1つづつ減少する。ステージングメモリ110とDMAチャネ
ル105との間の転送は同時に1バイトを位置付けるよう
にここに説明されているが、このようなブロック長さカ
ウンタ508およびデータ転送長さカウンタ510はバイト毎
の基準で減少し、ポート110bおよび104bおよびDMAチャ
ネル105は、並列に(例えば、長い語)データのより大
きな量を転送することが実施される。このような場合、
カウンタ508および510は、長い語またはバイトよりもむ
しろ他のユニットをカウントすることが実施される。ブ
ロック長さカウンタ508は、520バイトの全ての見出し/
データセグメント517がDMAチャネル105へ転送されたこ
とを表示するゼロが到達した場合、状態機械語シーケン
ス回路が、見出し/データセグメント長さの値でブロッ
ク長さカウンタ508に再負荷すること、および他の見出
し/データセグメントの転送を始めるために、シーケン
ス記憶回路504からアドレスカウンタ509へ負荷するよう
に、次のステージングメモリアドレスを生じることを、
ポート制御ハードウエア506に指向させる(状態608)。
このような次の見出し/データセグメントの転送を始め
る前に、ポート制御ハードウエア506の状態機械語シー
ケンス回路は、DMAデータストリーム512における第1の
セグメントのデータ領域516に付加するために、データ
の妥当性検査情報(「CRC」518)を生じる(状態61
0)。このプロセス(状態606、608、610)は、データ転
送長さカウンタ510が1に等しくなるまで繰返えされ
る。もし、ブロック長さカウンタ508が、データ転送カ
ウンタ510が1になる場合に、1と等しければ、データ
の最後のバイトは転送され、そして各カウンタはゼロに
減少する(状態612)。データの妥当性検査領域は、丁
度転送されたデータ領域に付加され(状態614)、そし
て状態機械語シーケンス回路506は未使用状態601に戻
る。もし、ブロック長さカウンタ508は、転送長さカウ
ンタ510が1に等しい場合に、1と等しくなければ(例
えば、ステージングメモリ110に記憶された最後のデー
タバイトが、転送される場合)、ブロック長さカウンタ
508は、最後に記憶されたデータバイトが転送され、そ
してカウンタ508および510が減少した後に、ゼロでない
値を有する。DMAデータストリーム512の最後のデータ領
域を完了するために、状態機械語シーケンス回路は、デ
ータスリームの部分としてバス105上の「埋込み」デー
タの転送バイトを継続するため、ポート制御ハードウエ
ア506に生じさせる(状態616)。この「埋込み」データ
は、埋込みバイトとして公知の繰返し値を構成する。埋
込みバイトは、最後の転送見出し/データセグメントの
長さが、前の見出し/データセグメントの長さと等しく
なるまで転送される。これは、各埋込みバイトが転送さ
れた後にブロック長さカウンタを減少することにより、
そしてブロック長さカウンタがゼロに到達するまでに埋
込み操作をカウントすることにより達成される。最後の
埋込みバイトが転送され、そしてブロック長さカウンタ
がゼロに減少した後に(状態618)、データの妥当性検
査領域は、ステージングメモリ110から素子インタフェ
ース104へDMAデータストリームを完成するために転送さ
れる(状態614)。
ネットワークバス109上の遠隔中央プロセッサが大容
量記憶102(例えば、読出し大容量記憶データ操作)か
らのデータを検索ためにシークするデータ転送に関し、
これら上述した類似の機構は、ステージングメモリ110
の利用可能なステージング要素に対し、DMAチャネル105
上の単一連続DMAデータストリーム512から見出し/デー
タセグメント517を送るために、そして素子インタフェ
ース108を経てステージングメモリ110からネットワーク
通信バス109へパケット形式で見出し/データセグメン
トを転送するために使用することができる。
読出し操作は、他の情報の中で、読出しのための大容
量記憶データの識別を得る遠隔中央タプロセッサからの
コマンドパケットにより開始される。コマンドパケット
は、ネットワークバス素子インタフェース108を経て大
容量記憶システム100により受信され、そして前述した
方法でステージングメモリ110に対し転送される。シス
テムプロセッサ107は、ステージングメモリ110に記憶さ
れているコマンドパケットを読出し、そしてコマンドに
対する1もしくはそれ以上のトランザクション識別番号
を割当てる。トランザクション識別番号の数は、要求さ
れるデータの量に従って利用される。システムプロセッ
サ107は、トランザクション識別番号をテーブル400に入
力し、そしてコマンドパケットにより要求されるデータ
を検索ための特有な大容量記憶素子102を知らせる。
大容量記憶素子102が典型的なトランザクション識別
番号と結合したデータを転送することが用意されている
場合、大容量記憶素子は、順次にシステムプロセッサ10
7が割込みを生じる素子インタフェース104を知らせる。
システムプロセッサ107は、トランザクション識別番号
と結合する大容量記憶データを転送するために要求され
るステージングメモリ110のステージング要素の数を決
定し、そしてSE_FREE_POOLリストからステージング要素
の必要な数を得る。各ステージング要素に対し、見出し
/データセグメントの転送が初められるステージングメ
モリ110のアドレスは、SNAKE/DESNAKE FIFO 504に負
荷される。ステージング要素アドレスは、また、FIFO
504に負荷された命令で、テーブル400に入力される。
システムプロセッサは、利用可能なDMAチャネル105を
選択し、そして選択されたチャネルト結合したDMA制御
論理構成要素106が含まれる状態機械語シーケンス回路
の操作を開始する。書込み(ステージングメモリ110)
シーケンス600bの状態に関し、状態機械語シーケンス回
路の操作は、転送されるデータの全長さと等しい値を有
するデータ転送長さカウンタ510のローディングによっ
てシステムプロセッサ107により開始される(状態62
0)。状態機械語シーケンス回路は、DMA転送に対するDM
Aチャネルおよびステージングメモリ110のポート110bの
状態に対し必要となる制御信号を発生することをポート
制御ハードウエア506に生じ(状態622)、そして転送さ
れる各見出し/データセグメント517の長さと等しい値
を有するブロック長さカウンタ508を負荷する(状態62
4)。
ポート制御ハードウエア506の状態機械語シーケンス
回路は、次に、ステージングメモリ110に指向する見出
し/データバイトに対し、ステージング要素アドレスを
有するステージングメモリポート110bを設けたアドレス
カウンタ509において、負荷されるシーケンス記憶回路5
04に第1のステージングメモリアドレスを生じる。見出
し/データセグメント517は、大容量記憶素子インタフ
ェースポート104aからアドレスされたステージング要素
へ転送される。各バイトがステージング要素へ転送され
た後、ブロック長さカウンタ508およびデータ転送長さ
カウンタ510は、1つだけ減少する。全ての見出し/デ
ータセグメント517は、1からゼロへ減少するブロック
長さカウンタ508により表示されるように、ステージン
グメモリ110に対し転送される場合(状態626)、ポート
制御ハードウエア506の状態機械語シーケンス回路は、
転送中に悪化しなかった見出し/データセグメントを確
保するために、見出し/データセグメントの終りに付加
するデータの妥当性検査領域を検査する(状態628)。
データの妥当性検査情報は、ステージングメモリ110に
記憶される必要はないが、しかしポート制御ハードウエ
ア506の状態機械後シーケンス回路により検査される場
合に、見出し/データセグメントから取除くことができ
る。もし、取除くと、新たな妥当性検査情報について
は、見出し/データセグメントがステージングメモリ11
0以外に遅れて転送された場合に付加される。もし、ポ
ート制御ハードウエア506の状態機械語シーケンス回路
は、データの妥当性検査情報が検査された場合に誤りが
検出されると、割込みがシステムプロセッサ107に対し
て通知される。
データの妥当性検査情報がされ、そして見出し/デー
タセグメントが有効とされた後は、状態機械語シーケン
ス回路は、見出し/データセグメントの長さの値を有す
るブロック長さカウンタ508を再負荷するため、および
他の見出し/データセグメントの転送を始めるためにア
ドレスカウンタ509に負荷するようにSNAKE/DESNAKE FI
FO 504から次のステージングメモリアドレスを生じる
ために、ポート制御ハードウエアに指向させる。このプ
ロセスは、DMAチャネル上のデータストリームの最後の
データバイトが転送されるまで、繰返される。ブロック
長さカウンタ508は、最後のデータバイトが転送された
後に1からゼロへ減少した場合(状態630)、状態機械
語シーケンス回路は、最後のデータの妥当性検査領域を
検査しそして取除き(状態632)、そして未使用状態601
にリターンする。
データの最後のバイトがステージングメモリ110に対
し転送された後、DMA制御論理106は、トランザクション
識別番号と結合したデータの転送が完了したプロセッサ
に知らせるために、システムプロセッサ107に割込む。
システムプロセッサ107は、ステージングメモリ110にお
いて記憶された見出し/データセグメントの見出し領域
が、正しい大容量記憶データが転送されたことを表示す
ることを確認する。システムプロセッサ107は、ネット
ワークアドレッシングフォーマット要求に応じて記憶さ
れた見出し/データセグメントの上に新たな見出し領域
を書込み、そしてバス109上のパケット形式で転送する
ために、素子インタフェース108の1つに対し、見出し
/データセグメントを転送するための用意をする。
図7は、ステージングメモリ110からネットワークバ
ス素子インタフェース108へのデータの転送を示す。転
送の前に、システムプロセッサ107は、2つの素子イン
タフェース108の1つを選択し、一連のステージング要
素の識別子を有する相対するシーケンス記憶回路702aま
たは702b(ラベル付けされたTMT ADDR FIFO)をプロ
グラムし、そして相対するテーブル705aまたは705bにス
テージング要素アドレスおよび長さを入力する。これら
の識別子は、素子インタフェース108に対し転送される
データを含むステージングメモリ110の個々のステージ
ング要素と対応する。このシーケンスは、大容量記憶素
子インタフェース104からステージングメモリ110へのデ
ータの転送の間に付勢されるテーブル400における項目
から用意される。図示の目的のために、ケーブルAに対
する素子インタフェースがシステムプロセッサ107によ
り選択されることを以下に仮定する。各識別子は、好ま
しくは相対するステージング要素およびタグ番号TAにお
いて記憶された再書込み見出し領域の開始メモリアドレ
スを構成する。
TMT ADDR FIFO 702aのプログラミングの後に、シ
ステムプロセッサ107は、TMT ADDR FIFO 702aからの
第1のステージング要素識別子をアクセスするために、
素子インタフェース108に対し相対するステージング要
素に記憶されたパケットを転送するために、DMA制御論
理103のポート制御ハードウエア706に指向させる。シス
テムプロセッサ107は、他のプロセッサに対し自由であ
る。DMA制御論理は、TMT ADDR FIFO 702aにおける各
識別子についてプロセスを繰返す。各パケットが素子イ
ンタフェース108に対し転送された後、DMA制御論理は、
FIFO回路(ラベル付けされたTMT STATUS FIFO)に相
対する状態識別子を負荷する。ここに、状態識別子は、
RCV STATUS FIFO 206と関係する前述した状態ビット
に加えて、不成功の計算を転送に対して試みることを含
むべく拡張される。空の状態から空でない状態へのTMT
STATUS FIFO 704aのトランザクションについて、シ
ステムプロセッサ107に対する割込みは、パケットが転
送されることを表示ために発生する。システムプロセッ
サ107は、素子インタフェース108に対し最初のパケット
の転送の状態を検査し、そして追加の状態識別子を検索
する。もし、状態が転送の成功を表示すれば、RCV STA
TUS FIFO 704aから読出されたタグ番号と対応するテ
ーブル705aにおける項目は、空の値が設定される。TMT
STATUS FIFO 702aにおける追加の状態識別子を検査
した後は、システムプロセッサ107は、再度割込まれる
まで他の操作にリターンする。
データは、バス109より受信されたパケットの見出し
およびデータの領域の長さよりも異なる長さを有する見
出し/データセグメントにおける、ステージングメモリ
110と大容量記憶素子インタフェース104との間で転送さ
れることが好ましい。それは、また、パケットの見出し
およびデータの領域の長さおよび/または見出し/デー
タセグメントの長さが、1から他に変わるステージング
メモリ110と大容量記憶素子インタフェース104との間で
転送され得る。いずれか一方の場合において、長さの相
違は、可変パラメータとなるステージングメモリ110に
おけるステージング要素の長さの限界を定めることによ
り調整される。そのようにすることにおいて、個々のス
テージング要素の可変長さは、データをステージングメ
モリ110に対しまたはステージングメモリ110から転送す
る際に、計算しなければならない。
例えば、図8は、図5の蛇行/非蛇行システムの別の
実施例をを示し、これはステージング要素識別子が相対
するステージングメモリ要素アドレスと共にFIFO 804
に負荷されるステージング要素長さパラメータを含んで
いる。追加のカウンタ回路802(ラベル付けされたSE L
ENGTH CNTR)は、相対するステージング要素アドレス
がポート制御ハードウエア806により、アドレスカウン
タ509に負荷された後に、負荷されるFIFO 804からのス
テージング要素長さの値を得る。カウンタ802の値は、
見出し/データセグメント517の各バイトがステージン
グメモリ110へまたはステージングメモリ110から転送す
るために、1回減少し、そしてポート制御ハードウエア
506がFIFO 804から次のステージング要素アドレスおよ
び長さを取出す際に、決定すべきブロック長さカウンタ
508の値の代わりに使用される。ブロック長さカウンタ5
08は、ポート制御ハードウエア506がDMAチャネル105上
のデータストリームにデータの妥当性検査情報(「CR
C」)を挿入する際に決定し、そして前述した同様の方
法により埋込みが実行される。
図8に示されるように、ステージング要素長さのパラ
メータの使用は、大容量記憶システム100によって受信
されたパケットの個々の長さについて、ステージングメ
モリ110と大容量記憶素子インタフェース104との間で転
送されたデータの見出し/データ領域の長さを許容す
る。
このようなステージングメモリを介するデータ転送の
ための新規な方法および装置は、以上述べた通りであ
る。当業者であれば、本発明が前述した実施例以外によ
っても実施することができ、そして特に前述した大容量
記憶システム以外の回路に組込むことが可能であること
は、理解し得るであろう。前述された実施例は、図示の
目的で提出され、限定されるものではなく、そして本発
明は次のクレームのみによって限定される。
フロントページの続き (72)発明者 シャー,カウシック エス アメリカ合衆国、カリフォルニア 95051、サンタ クララ、3、ハルフォ ード アベニュー 2007 (56)参考文献 特開 平1−295325(JP,A) 特開 昭61−220542(JP,A) 特開 昭62−60045(JP,A) 特開 昭63−73741(JP,A) 特開 平2−83654(JP,A) 特開 平1−82157(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 13/00 G06F 13/38 G06F 3/06 G06F 5/06

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいて、第1群の素
    子の1つから第2群の素子の1つへ第1の論理的ひと組
    のデータを転送する間に、ステージングメモリで第1の
    論理的ひと組のデータの一時的記憶を行い、そして第2
    群の素子の1つから第1群の素子の1つへ第2の論理的
    ひと組のデータを転送する間に、ステージングメモリで
    第2の論理的ひと組のデータの一時的記憶を行う方法で
    あって、 ステージングメモリは、システムプロセッサと、第1群
    の素子からデータを受信しおよび第1群の素子に対しデ
    ータを伝送するための第1群の素子インタフェース手段
    と、第2群の素子からデータを受信しおよび第2群の素
    子に対しデータを伝送するための第2群の素子インタフ
    ェース手段とを有する装置内に含まれ、そしてステージ
    ングメモリは、第1および第2の素子インタフェース手
    段にそれぞれ第1および第2のデータチャネルにより結
    合されており、 当該方法は、 (a)ステージングメモリにおいて複数のステージング
    要素を定義し、そしてシステムプロセッサのメモリにお
    いて、データの記憶に利用可能ステージング要素と対応
    するステージング要素識別子のフリープールリストを記
    憶するステップと、 (b)記憶したフリープールリストから第1の一連のス
    テージング要素識別子を選択し、そして第1の記憶回路
    に第1の一連のステージング要素識別子をプログラムす
    るステップと、 (c)システムプロセッサのメモリにおいて、ステージ
    ングメモリが関与する進行中の転送動作を確認する情報
    が記憶されたテーブルを定義し、そして該テーブルの第
    1の部分に第1群の素子の1つから第2群の素子の1つ
    への第1の論理的ひと組のデータの転送を第1のトラン
    ザクション番号により確認する情報を記憶し、そして該
    テーブルの第2の部分に第2群の素子の1つから第1群
    の素子の1つへの第2論理的ひと組のデータの転送を第
    2のトランザクション番号により確認する情報を記憶す
    るステップと、 (d)第1群の素子の1つからステージングメモリに対
    し、第1の論理的ひと組のデータを次の各ステップによ
    り転送するステップと、 (1)第1の素子インタフェース手段で、第1群の素子
    の1つにより複数の分割された部分として転送された第
    1の論理的ひと組のデータを受信するステップ、 (2)第1の素子インタフェース手段からステージング
    メモリへ、第1の素子インタフェース手段により受信さ
    れた第1の論理的ひと組のデータの各分割された部分
    を、第1のデータチャネルに対する制御回路を起動する
    ことにより転送するステップ、ここにその制御回路は、
    各分割された部分について、第1の記憶回路からのステ
    ージング要素識別子をアクセスし、そしてそれに応答し
    て第1の素子インタフェース手段から第1のデータチャ
    ネルを経て対応するステージング要素へ分割された部分
    を転送するものである、および、 (3)システムプロセッサメモリにおけるテーブルの第
    1部分に、第1の論理的ひと組のデータの分割された部
    分を受信したステージング要素を確認する項目のリスト
    であって、第1の論理的ひと組のデータの記憶された分
    割された部分の論理的順序を表示するように配置されて
    いる項目リストを、第1のトランザクション番号と関連
    させて記憶するステップ、 (e)ステージングメモリから第2群の素子の1つへ第
    1の論理的ひと組のデータを次の各ステップにより転送
    するステップと、 (1)システムプロセッサメモリにおけるテーブルの第
    1部分に、第1のトランザクション番号と関連させて記
    憶された項目のリストの配置により表示される論理的順
    序に従って、第2の記憶回路に、第1の論理的ひと組の
    データの分割された部分が記憶されているステージング
    要素と対応する一連のステージング要素識別子をプログ
    ラミングするステップ、および (2)ステージングメモリから第2の素子インタフェー
    ス手段へ第1の論理的ひと組のデータからなるデータの
    分割された部分を、第2のデータチャネルに対する制御
    回路を起動することにより転送するステップ、ここにそ
    の制御回路は、自動的に繰返されるシーケンスにおい
    て、第2の記憶回路からのステージング要素識別子をア
    クセスし、そしてそれに応答して対応のステージング要
    素から第2のデータチャネルを経て第2の素子インタフ
    ェース手段へ分割された部分を転送するものであり、そ
    のとき、第1の論理的ひと組のデータからなるデータの
    分割された部分は、それぞれ転送された分割された部分
    についてプロセッサの割込みの要求なしに第2のデータ
    チャネル上の単一のデータ転送としての論理的順序で転
    送される、 (f)第2群の素子の1つからステージングメモリへ第
    2の論理的ひと組のデータを次の各ステップにより転送
    するステップと、 (1)記憶されたフリープールリストから第2の一連の
    ステージング要素識別子を選択し、そして第2の記憶回
    路に、第2の一連のステージング要素識別子をプログラ
    ミングするステップ、 (2)第2の素子インタフェース手段で、第2群の素子
    の1つにより転送された第2の論理的ひと組のデータを
    受信するステップ、 (3)第2の素子インタフェース手段からステージング
    メモリへ第2の論理的ひと組のデータを、第2のデータ
    チャネルに対する制御回路を起動することにより転送す
    るステップ、ここにその制御回路は、第2の理論組合せ
    データを複数の分割された部分に分割し、各分割された
    部分について、第2の記憶回路からのステージング要素
    識別子をアクセスし、そしてそれに応答して第2の素子
    インタフェース手段から第2のデータチャネルを経て対
    応するステージング要素へ分割された部分を転送するも
    のであり、そのとき、第2の論理的ひと組のデータを含
    む分割された部分は、それぞれ転送された分割された部
    分についてプロセッサの割込みの要求なしに第2のデー
    タチャネル上の単一のデータ転送としての論理的順序で
    転送される、および (4)システムプロセッサメモリにおけるテーブルの第
    2部分に、第2の論理的ひと組のデータの分割された部
    分を受信したステージング要素を確認する項目のリスト
    であって、第2の論理的ひと組のデータの記憶された分
    割された部分の論理的順序を表示するように配置されて
    いる項目のリストを、第2のトランザクション番号と関
    連させて記憶するステップ、 (g)ステージングメモリから第1群の素子の1つへ第
    2の論理的ひと組のデータを次の各ステップにより転送
    するステップと、 (1)システムプロセッサメモリにおけるテーブルの第
    2部分に、第2のトランザクション番号と関連させて記
    憶された項目のリストの配置により表示される論理的順
    序に従って、第3の記憶回路に、第2の論理的ひと組の
    データの分割された部分が記憶されているステージング
    要素と対応する一連のステージング要素識別子をプログ
    ラミングするステップ、および (2)ステージングメモリから第1の素子インタフェー
    ス手段へ第2の論理的ひと組のデータを含むデータの分
    割された部分を、第1のデータチャネルに対する制御回
    路を起動することにより転送するステップ、ここにその
    制御回路は、自動的に繰返されるシーケンスにおいて、
    第3の記憶回路からのステージング要素識別子をアクセ
    スし、そしてそれに応答して対応のステージング要素か
    ら第1のデータチャネルを経て第1の素子インタフェー
    ス手段へ分割された部分を転送するものである、 を含んでなっており、 第1および第2群の素子は、各論理的ひと組のデータが
    伝送素子によって命名されたメモリまたはステージング
    メモリにおける連接ステージング要素に記憶されること
    が要求されることなくステージングメモリを経て、論理
    的ひと組のデータを互いにやりとりすることが可能であ
    る ことを特徴とする方法。
  2. 【請求項2】各ステージング要素は、固有の開始メモリ
    アドレスおよび長さにより特徴付けられる一群の連接す
    る物理的メモリ位置を有して構成され、そしてステージ
    ング要素識別子は少なくとも対応するステージング要素
    の開始アドレスと長さとを含んでなる 請求の範囲1記載の方法。
  3. 【請求項3】ステージングメモリから第2のデータチャ
    ネルへ論理的ひと組のデータの転送する前において、転
    送される論理的ひと組のデータの分割された部分に含ま
    れるデータの量を等しいサイズのデータユニットの数と
    して表すブロック長さの値を発生し、論理的ひと組のデ
    ータに含まれるデータの全体量を等しいサイズのデータ
    ユニットの数として表すデータ転送長さの値を発生し、
    そして前記ブロック長さの値およびデータ転送長さの値
    を、ステージングメモリから第2のデータチャネルへデ
    ータが転送されるにつれて、データ転送の量に従って減
    少させる ことを特徴とする請求の範囲1記載の方法。
  4. 【請求項4】ブロック長さの値は、データ転送長さの値
    がゼロでない値のときで、ブロック長さの値がゼロに減
    少するたびに、発生される ことを特徴とする請求の範囲3記載の方法。
  5. 【請求項5】データ転送長さの値がゼロに減少しそして
    ブロック長さの値がゼロでない値であるならば、ブロッ
    ク長さの値がゼロに減少するまで、第2のデータチャネ
    ル上に埋込みシーケンスを伝送するステップ をさらに含んでなる請求の範囲4記載の方法。
  6. 【請求項6】ステージングメモリから第2群の素子の1
    つへ第1の論理的ひと組のデータを転送するステップ
    (e)は、 第1の論理的ひと組のデータの各分割された部分につい
    て、第1の論理的ひと組のデータの分割された部分がス
    テージングメモリから転送された後に、対応するデータ
    有効性情報を発生し、そして対応するデータ有効性情報
    を、第2のデータチャネル上に伝送するステップをさら
    に含んでなる ことを特徴とする請求の範囲1記載の方法。
  7. 【請求項7】第2群の素子の1つからステージングメモ
    リへ第2の論理的ひと組のデータを転送するステップ
    (f)は、 分割された部分がステージングメモリに転送された際
    に、第2の論理的ひと組のデータの分割された部分に付
    加するデータ有効性情報を認識し、そして確認するステ
    ップをさらに含んでなる ことを特徴とする請求の範囲1記載の方法。
  8. 【請求項8】ステージングメモリから第2群の素子の1
    つへ第1の論理的ひと組のデータを転送するステップ
    (e)は、 ステージングメモリに記憶された第1の論理的ひと組の
    データの各分割された部分について、分割された部分に
    対応する第2のデータチャネル上に見出し情報およびデ
    ータ有効性情報を発生し、そして転送するステップであ
    って、ステージングメモリから第2のデータチャネルへ
    の第1の論理的ひと組のデータの転送が、見出し、デー
    タ領域およびデータ有効性情報の繰返しシーケンスの転
    送を含んでなるステップをさらに含んでなる ことを特徴とする請求の範囲1記載の方法。
  9. 【請求項9】データ処理システムにおいて、第1および
    第2の素子の間をいずれかの方向にデータを転送する間
    にデータをステージングする装置であって、 データを記憶するのに利用可能な複数のステージング要
    素と、複数のステージング要素にアクセスするための第
    1および第2のポート手段とを有するステージングメモ
    リと、 第1のポート手段および第1の素子に結合されていて、
    第1の素子から第1の論理的ひと組のデータを含む複数
    のデータパケットを受信し、そしてステージングメモリ
    の第1のポート手段に対し第1の論理的ひと組のデータ
    を複数部分に分割して転送する第1のデータバス手段
    と、 第1のポート手段に結合されていて、第1のポート手段
    に対し転送された第1の論理的ひと組のデータの分割さ
    れた部分を記憶するためにステージングメモリにおける
    非連接ステージング要素をアクセスする第1のプログラ
    ム可能なステージングメモリアドレッシング手段と、 第2のポート手段および第2の素子に結合されていて、
    第2の素子により転送された第2の論理的ひと組のデー
    タを受信し、ステージングメモリの第2のポート手段に
    対し第2の論理的ひと組のデータを転送する第2のデー
    タバス手段と、 第2のポート手段に結合されていて、単一の転送におい
    て第2の論理的ひと組のデータを複数部分に分割して記
    憶するためにステージングメモリにおける非連接ステー
    ジング要素をアクセスする第2のプログラム可能なステ
    ージングメモリアドレッシング手段と、 ステージングメモリ並びに第1および第2のプログラム
    可能なステージングメモリアドレッシング手段に結合さ
    れていて、第1および第2の論理的ひと組のデータの分
    割された部分を記憶するために利用可能なステージング
    要素と対応するステージング要素識別子を、第1および
    第2のプログラム可能なステージングメモリアドレッシ
    ング手段にプログラミングし、そしてそれぞれ第1およ
    び第2の論理的ひと組のデータの分割された部分を受信
    したステージング要素のステージング要素識別子と、各
    第1および第2の論理的ひと組のデータに対するステー
    ジング要素識別子の論理的順序を確認する情報を、プロ
    セッサメモリ手段におけるテーブルに記憶するプロセッ
    サ手段とを備えてなり、 ステージングメモリから第2の素子へ第1の論理的ひと
    組のデータを転送するために、プロセッサ手段は、プロ
    セッサメモリ手段内のテーブルからのステージング要素
    識別子を第2のプログラム可能なステージングメモリア
    ドレッシング手段にプログラムし、第2のプログラム可
    能なステージングメモリアドレッシング手段は、それに
    応答して、第1の論理的ひと組のデータを記憶するステ
    ージング要素に論理的順序の順にアクセスし、そして第
    2のデータバス手段は、第2の素子に単一転送で第1の
    論理的ひと組のデータを転送し、および ステージングメモリから第1の素子へ第2の論理的ひと
    組のデータを転送するために、プロセッサ手段は、プロ
    セッサメモリ手段内のテーブルからのステージング要素
    識別子を第1のプログラム可能なステージングメモリア
    ドレッシング手段にプログラムし、第1のプログラム可
    能なステージングメモリアドレッシング手段は、それに
    応答して、第2の論理的ひと組のデータを記憶するステ
    ージング要素に論理的順序の順にアクセスし、そして第
    1のデータバス手段は、第2の素子に別々のパケットで
    第2の論理的ひと組のデータの分割された部分を転送す
    ることを特徴とする装置。
  10. 【請求項10】第1のプログラム可能なステージングメ
    モリアドレッシング手段は、プログラムされたステージ
    ング要素識別子と対応するステージング要素に記憶され
    るべきデータの内容を考慮しないでデータを記憶するた
    めに利用可能なステージング要素と対応するステージン
    グ要素識別子がプログラムされる ことを特徴とする請求の範囲9記載の装置。
  11. 【請求項11】各ステージング要素は、固有の開始メモ
    リアドレスおよび長さにより特徴付けられる一群の連接
    する物理的メモリ位置を備えてなり、そして各ステージ
    ング要素識別子は少なくとも対応するステージング要素
    のステージングアドレスと長さとを含んでいる ことを特徴とする請求の範囲9記載の装置。
  12. 【請求項12】コンピュータネットワークの通信バスと
    接続する大容量記憶システムにおける、大容量記憶素子
    インタフェースと通信バス素子インタフェースとの間
    で、通信バスと接続されるコンピュータにより大容量記
    憶システムへ伝送される読出しまたは書込みコマンドパ
    ケットに応答してデータの転送を有する装置であって、 通信バスに対し大容量記憶システムを接続するため、そ
    して通信バスからパケットを受信しおよび通信バスに対
    しパケットを伝送するための第一のおよび第2の通信バ
    ス素子インタフェース手段であって、この第1のおよび
    第2の通信バス素子インタフェース手段はそれぞれポー
    ト手段と相互接続バス手段とを含んでいるものと、 通信バスから第1のおよび第2の通信バス素子インタフ
    ェース手段により受信されたパケットから第1の共通デ
    ータバス手段へデータを転送するために、第1の共通デ
    ータバス手段に対して第1のおよび第2の通信バス素子
    インタフェース手段の一方または他方のポート手段と相
    互接続バス手段を選択的に結合し、そして第1の共通デ
    ータバス手段から第一のおよび第2の通信バス素子イン
    タフェース手段の一方または他方へ、通信バス上に第1
    のおよび第2の通信バス素子インタフェース手段により
    伝送されるべきパケット内に包含するために、データを
    転送するための第1の選択手段と、 複数のアドレス可能なメモリ位置と、第1の共通データ
    バス手段からデータを受信および第1の共通データバス
    手段へデータを伝送するためにステージングメモリ内の
    メモリ位置をアクセスするために第1の共通データバス
    手段と連続された第1のステージングメモリポート手段
    と、それぞれ第2のおよび第3の共通データバス手段か
    らデータを受信しおよび第2のおよび第3の共通データ
    バス手段へデータを伝送するためにステージングメモリ
    内のメモリ位置をアクセスするためにそれぞれ第2のお
    よび第3の共通データバス手段に接続された第2のおよ
    び第3のステージングメモリポート手段とを有するステ
    ージングメモリと、 大容量記憶システムに対し大容量記憶素子を接続し、そ
    して大容量記憶素子からデータを受信しおよび大容量記
    憶素子へデータを伝送する複数の大容量記憶素子インタ
    フェース手段であって、各複数の大容量記憶素子インタ
    フェース手段はポート手段と相互接続バス手段とを含ん
    でいるものと、 対応する大容量記憶素子から大容量記憶素子インタフェ
    ース手段により受信されたデータをステージングメモリ
    へ転送するため、および対応する大容量記憶素子へ転送
    されるべきデータを大容量記憶素子インタフェース手段
    に対しステージングメモリから転送するために、第2の
    および第3の共通データバス手段の一方または他方に対
    し、各複数の大容量記憶素子インタフェース手段のポー
    ト手段と相互接続バス手段を選択的に接続する複数の第
    2の選択手段と、 第1のおよび第2の通信バス素子インタフェース手段の
    ポート手段、第1の選択手段およびステージングメモリ
    の第1のポート手段と制御信号を通信する関係にあっ
    て、ステージングメモリと第1のおよび第2の通信バス
    素子インタフェース手段との間のデータ転送を制御する
    第1のプログラム可能なダイレクトメモリアクセス制御
    論理手段と、 各複数の大容量記憶素子インタフェース手段のポート手
    段、各複数の第2の選択手段およびステージングメモリ
    の第2のポート手段と制御信号を通信する関係にあっ
    て、ステージングメモリと複数の大容量記憶素子インタ
    フェース手段との間に第1の並行データチャネルを提供
    し、そして第1の並行データチャネルにおいてステージ
    ングメモリと複数の大容量記憶素子インタフェース手段
    との間のデータ転送を制御する第2のプログラム可能な
    ダイレクトメモリアクセス制御論理手段と、 各複数の大容量記憶素子インタフェース手段のポート手
    段、各複数の第2の選択手段およびステージングメモリ
    の第3のポート手段と制御信号を通信する関係にあっ
    て、ステージングメモリと複数の大容量記憶素子インタ
    フェース手段との間に第2の並行データチャネルを提供
    し、そして第2の並行データチャネルにおいてステージ
    ングメモリと複数の大容量記憶素子インタフェース手段
    との間のデータ転送を制御する第3のプログラム可能な
    ダイレクトメモリアクセス制御論理手段はと、 第1のおよび第2の通信バス素子インタフェース手段、
    ステージングメモリ、第1の、第2のおよび第3のプロ
    グラム可能なダイレクトメモリアクセス制御論理手段、
    および各複数の大容量記憶素子インタフェース手段と制
    御信号を通信する関係にあって、大容量記憶システムを
    初期化し、コンピュータから読出しおよび書込みコマン
    ドを受信し、そしてそれに応答して第1のおよび第2の
    通信バス素子インタフェース手段、ステージングメモ
    リ、第1の、第2のおよび第3のプログラム可能なダイ
    レクトメモリアクセス制御論理手段、および各複数の大
    容量記憶素子インタフェース手段を制御して、読出しコ
    マンドが受信されたときは、大容量記憶素子インタフェ
    ース手段から通信バス素子インタフェース手段へ、書込
    みコマンドが受信されたときは、通信バス素子インタフ
    ェース手段から大容量記憶素子インタフェース手段へ、
    ステージングメモリを経てデータを転送するようにする
    プロセッサ手段と を備えてなることを特徴とする装置。
  13. 【請求項13】大容量記憶システムを初期化する間に、
    プロセッサ手段が、 ステージングメモリの中に複数のステージング要素を定
    義し、 プロセッサ手段と連係するメモリの中にデータを記憶す
    るために利用可能なステージング要素と対応するステー
    ジング要素識別子のリストを記憶し、 記憶したステージング要素識別子のリストから第1の一
    連のステージング要素識別子を選択し、 選択された第1の一連のステージング要素識別子を第1
    のプログラム可能なダイレクメモリアクセス制御論理手
    段にプログラムし、および プロセッサ手段と連係するメモリの中にトランザクショ
    ン番号によりステージングメモリが関与する各進行中の
    転送動作を確認する情報を記憶するためのテーブルを定
    義する ことを特徴とする請求の範囲12記載の装置。
  14. 【請求項14】コンピュータネットワークにより大容量
    記憶システムに対し転送されるコマンドおよびデータパ
    ケットは、第1のおよび第2の通信バス素子インタフェ
    ース手段のいずれかにより受信し得るとともに、第1の
    ダイレクトメモリアクセス制御論理手段によりステージ
    ングメモリの中へプログラムされた一連のステージング
    要素識別子により決定されるメモリ位置に自動的に転送
    されるものであり、プロセッサ手段は、各パケットがス
    テージングメモリの中のステージング要素に記憶された
    後に、パケットがコマンドまたはデータパケットである
    か否かを検出するために、そしてデータパケットが検出
    されたならば、データパケットが関連するトランザクシ
    ョン番号を確認するため、およびデータパケットが受信
    されたステージング要素を確認する連係メモリの中のテ
    ーブルに情報を記憶するために待機状態とされ、このよ
    うにしてテーブル内の各トランザクション番号について
    ステージングメモリに記憶されたデータの論理的順序が
    表示され、そして単一の論理的ひと組のデータを含むデ
    ータパケットは、ステージングメモリの中の、転送コン
    ピュータに対してアドレスが未知である非連接メモリ位
    置に記憶され得るものである ことを特徴とする請求の範囲13記載の装置。
  15. 【請求項15】ステージングメモリは、第1のおよび第
    2の論理的ひと組のデータを同時に記憶できるものであ
    る ことを特徴とする請求の範囲1記載の方法。
  16. 【請求項16】ステージングメモリにおけるステージン
    グ要素は、異なる長さを有してなるものである ことを特徴とする請求の範囲2記載の装置。
  17. 【請求項17】ステージングメモリにおけるステージン
    グ要素は、異なる長さを有してなるものである ことを特徴とする請求の範囲11記載の方法。
  18. 【請求項18】第2のプログラム可能なステージングメ
    モリアドレッシング手段は、プログラムされたステージ
    ング要素識別子と対応するステージング要素に記憶され
    るべきデータの内容を考慮せずにデータを記憶するため
    に利用可能なステージング要素と対応するステージング
    要素識別子をプログラムしてなるものである ことを特徴とする請求の範囲10記載の装置。
  19. 【請求項19】各ステージング要素は、固有の開始メモ
    リアドレスおよび長さにより特徴付けられる一群の連続
    する物理的メモリ位置を含み、そしてステージング要素
    識別子は少なくとも対応するステージング要素の開始ア
    ドレスと長さとを含んでなる ことを特徴とする請求の範囲12記載の装置。
  20. 【請求項20】ステージングメモリにおけるステージン
    グ要素は、異なる長さを有してなるものである ことを特徴とする請求の範囲19記載の装置。
JP3506032A 1990-02-28 1991-02-27 ステージングメモリを介してデータを転送する方法および装置 Expired - Fee Related JP2989665B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US48653590A 1990-02-28 1990-02-28
US486,535 1990-02-28

Publications (2)

Publication Number Publication Date
JPH05505049A JPH05505049A (ja) 1993-07-29
JP2989665B2 true JP2989665B2 (ja) 1999-12-13

Family

ID=23932273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3506032A Expired - Fee Related JP2989665B2 (ja) 1990-02-28 1991-02-27 ステージングメモリを介してデータを転送する方法および装置

Country Status (5)

Country Link
EP (1) EP0517808A1 (ja)
JP (1) JP2989665B2 (ja)
AU (1) AU7497091A (ja)
CA (1) CA2076533A1 (ja)
WO (1) WO1991013397A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69230204T2 (de) * 1991-08-16 2000-02-10 Fujitsu Ltd Pufferspeicher und Verwaltungsverfahren dafür
JPH11110315A (ja) * 1997-07-31 1999-04-23 Matsushita Electric Ind Co Ltd 通信装置
CN103199952A (zh) * 2012-01-06 2013-07-10 上海华虹集成电路有限责任公司 通信接收机中的业务数据传输方法及业务数据传输模块

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3824551A (en) * 1972-05-18 1974-07-16 Little Inc A Releasable buffer memory for data processor
US4507760A (en) * 1982-08-13 1985-03-26 At&T Bell Laboratories First-in, first-out (FIFO) memory configuration for queue storage
JPS60181942A (ja) * 1984-02-29 1985-09-17 Fujitsu Ltd メモリ制御装置
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法
FR2633744B1 (fr) * 1988-07-01 1991-02-08 Dassault Electronique Dispositif de memoire vive electronique

Also Published As

Publication number Publication date
CA2076533A1 (en) 1991-08-29
WO1991013397A1 (en) 1991-09-05
JPH05505049A (ja) 1993-07-29
AU7497091A (en) 1991-09-18
EP0517808A1 (en) 1992-12-16

Similar Documents

Publication Publication Date Title
US5315708A (en) Method and apparatus for transferring data through a staging memory
US5630059A (en) Expedited message transfer in a multi-nodal data processing system
US5907684A (en) Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image
US5799207A (en) Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US5758075A (en) Multimedia communication apparatus and methods
US5257374A (en) Bus flow control mechanism
US5530897A (en) System for dynamic association of a variable number of device addresses with input/output devices to allow increased concurrent requests for access to the input/output devices
US5752076A (en) Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US6728803B1 (en) Interconnection architecture for managing multiple low bandwidth connections over a high bandwidth link
US5594927A (en) Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits
JPH0728764A (ja) プロセツサ−メモリ間のトラフイツク径路指定装置及び方法
JPH10222477A (ja) コンピュータ・システム間でデータ構造を転送する方法
JPH0354659A (ja) 4ポート付きパケットメモリ制御装置を有する二重経路コンピュータ相互接続システム
JPH0332094B2 (ja)
WO1992015053A1 (en) Data transfer within a data storage subsystem
JPH09223089A (ja) 複数バス・ターゲットへのパケット・データの分割を可能にする方法および装置
US5901291A (en) Method and apparatus for maintaining message order in multi-user FIFO stacks
US5555390A (en) Data storage method and subsystem including a device controller for respecifying an amended start address
US5204954A (en) Remote storage management mechanism and method
JP2002041449A (ja) バスシステム及びその実行順序の調整方法
US5794069A (en) Information handling system using default status conditions for transfer of data blocks
US5613141A (en) Data storage subsystem having dedicated links connecting a host adapter, controller and direct access storage devices
EP0317468A2 (en) Bus flow control system
JP2989665B2 (ja) ステージングメモリを介してデータを転送する方法および装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081008

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees