JP3698987B2 - バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置 - Google Patents

バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置 Download PDF

Info

Publication number
JP3698987B2
JP3698987B2 JP2000384013A JP2000384013A JP3698987B2 JP 3698987 B2 JP3698987 B2 JP 3698987B2 JP 2000384013 A JP2000384013 A JP 2000384013A JP 2000384013 A JP2000384013 A JP 2000384013A JP 3698987 B2 JP3698987 B2 JP 3698987B2
Authority
JP
Japan
Prior art keywords
data
buffer
output
port
transfer
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
JP2000384013A
Other languages
English (en)
Other versions
JP2002183073A (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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2000384013A priority Critical patent/JP3698987B2/ja
Publication of JP2002183073A publication Critical patent/JP2002183073A/ja
Application granted granted Critical
Publication of JP3698987B2 publication Critical patent/JP3698987B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は情報処理装置におけるデータ転送に関し、特に転送データの順序保証が必要がないときの転送方式に関する。
【0002】
【従来の技術】
従来の技術では、ある一つの系から複数個実装される出力ポートの何れかへのデータ転送において、受け付けたデータを一旦待ち行列バッファに保持し、そのデータの示す出力先指定と出力先ポートからのビジー条件を判定して転送を行う時、大規模なデータ転送のような順序保証の必要ないデータを転送する場合においても、待ち行列バッファの先頭が転送される出力先ポートがビジーの場合にはビジーが解除されるまで転送を待たせていた。
【0003】
また、別の従来の技術では、本発明に類似してある一つの系に実装される待ち行列バッファをシフト方式で行っているが、出力先のビジーを監視してデータをローテートする機能はなく、シフトとデータ出力の制御は任意の待ち行列バッファから抽出して出力し、歯抜けたエントリをシフト動作で埋めるといった方式であった。
【0004】
特許2581131号「送信待ちキュー管理方式」では、複数ビットのレジスタを多段接続して成るシフトレジスタによる送信待ちキュー管理方式において、送信要求があった場合に、送信要求位置に送達確認数とシフト数とを加減算して補正した送信位置を割り出す構成とし、シフト完了を待つこと無しに送信動作に入れるキュー管理方式が開示されている。
【0005】
【発明が解決しようとする課題】
従来の技術では、ある一つの系から複数個実装される出力ポートの何れかへのデータ転送において、受け付けたデータを一旦待ち行列バッファに保持し、そのデータの示す出力先指定と出力先ポートからのビジー条件を判定して転送を行う時、大規模なデータ転送のような順序保証の必要ないデータを転送する場合においても、待ち行列バッファの先頭が転送される出力先ポートがビジーの場合にはビジーが解除されるまで転送を待たせてしまうため、特定ポートのビジーが全てのポートの転送性能に大きな影響を与えるという欠点がある。
【0006】
また、別の従来の技術では、本発明に類似してある一つの系に実装される待ち行列バッファをシフト方式で行っているが、出力先のビジーを監視してデータをローテートする機能はなく、シフトとデータ出力の制御は任意の待ち行列バッファから抽出して出力し、歯抜けたエントリをシフト動作で埋めるといった方式であるため、抽出エントリの判定、歯抜けを埋めるシフト範囲の判定、抽出データの任意選択制御と選択回路と大規模なHW資源を投資する必要があった。
【0007】
特許2581131号「送信待ちキュー管理方式」は、出力先指定と出力先ポートからのビジー条件を判定して転送を行うことはできない。
【0008】
本発明の目的は、ある一つの系から複数個実装される出力ポートの何れかへのデータ転送において、受け付けたデータを一旦待ち行列バッファに保持し、そのデータの示す出力先指定と出力先ポートからのビジー条件を判定して転送を行う時、待ち行列バッファを先頭から登録済み最後尾へローテートする機能を持つシフトレジスタで制御することによって、大規模なデータ転送のような順序保証の必要ないデータが出力先ポートのビジーで転送不可能な場合にこれを待ち行列バッファの登録済み最後尾にローテートすることを可能にし、同時に既に待ち行列バッファに登録済みの後続データをシフト動作させて次のデータを待ち行列バッファの先頭に移す、という制御を行うことで、出力先ポートがビジーでないデータを可能な限り優先して転送可能にし、少ないHW資源かつ待ち行列バッファそれぞれのエントリの作りが1種N個という実現容易な構成で転送性能を向上させることである。
【0009】
【課題を解決するための手段】
本発明第一のバッファ制御装置は、ひとつの入力ポートから複数の出力ポートの何れかへ複数のデータ転送するバッファ制御装置であって、前記データには転送順序を保証する必要の有無を示す転送保証情報と出力先ポートを指定するポート情報が格納され、複数のバッファを有する待ち行列バッファと、前記データを前記バッファのうちのひとつへ保持する手段と、前記転送保証情報により前記転送順序を保証するか判断する順序保証判断手段と、前記ポート情報により前記データの出力先の前記出力ポートのビジー状態を判断するビジー検出手段と、前記待ち行列バッファ内の先頭に格納されている前記データを前記待ち行列バッファの前記データが格納済の最後尾へローテートする手段と前記待ち行列バッファ内のすべての前記データを一段先頭の前記バッファに向けてシフトする手段を有し、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がない場合は、前記待ち行列バッファ内の先頭に格納されている前記データを前記待ち行列バッファ内の前記データが格納済の最後尾にローテートし、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がある場合は、前記ビジー状態の解除を待ち、前記ビジー状態が解除されると前記データを前記出力ポートへ転送する制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートが転送可能な場合に、前記データを前記出力ポートへ転送し、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行う手段を有する。
【0011】
本発明第一のバッファ制御方法は、ひとつの入力ポートから複数の出力ポートの何れかへ複数のデータ転送するバッファ制御方法であって、前記データには転送順序を保証する必要の有無を示す転送保証情報と出力先ポートを指定するポート情報が格納され、前記データを待ち行列バッファを構成するバッファのうちのひとつへ保持する第一の手順と、前記転送保証情報により前記転送順序を保証するか判断する第二の手順と、前記ポート情報により前記データの出力先の前記出力ポートのビジー状態を判断する第三の手順と、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がない場合は、前記待ち行列バッファ内の先頭に格納されている前記データを前記待ち行列バッファの前記データが格納済の最後尾にローテートし、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がある場合は、前記ビジー状態の解除を待ち、前記ビジー状態が解除されると前記データを前記出力ポートへ転送する制御を行い、前記前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートが転送可能な場合に、前記データを前記出力ポートへ転送し、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行う第四の手順と、前記第二から第四の手順を前記待ち行列バッファ内の前記データに対し繰り返し行う第五の手順を有することを特徴とするバッファ制御方法。
【0012】
本発明の汎用ポート制御装置は、第一のポートから複数の第二のポートへデータを転送する汎用ポート制御装置であって、前期第二のポートから前記第一のポートへ前記データを転送する際に、前記第二のポートへ接続する入力バッファから入力選択部を経て緩衝バッファを経て前記第一のポートヘ転送する第一の転送手段と、前記第一のポートから前記第二のポートへ前記データを転送するときに本発明第一のバッファ制御装置が動作する。
【0013】
本発明の入出力システムは複数の入出力装置と主記憶装置を本発明の汎用ポート制御装置により接続した。
【0014】
本発明の情報処理装置は、複数の演算処理装置と複数の入出力装置と主記憶装置と主記憶装置を制御する主記憶制御装置と複数のキャッシュと前記キャッシュを制御するキャッシュ制御装置と本発明の汎用ポート制御装置を有し、前記演算処理装置と前記主記憶制御装置は前記キャッシュ制御装置へ接続され、前記キャッシュ制御装置と前記入出力装置は前記汎用ポート制御装置へ接続される。
【0015】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明実施の形態のバッファ制御装置の構成を示すブロック図である。図1で、波線はセレクタ、シフトバッファ、出力先指定と順序補償情報が複数あるが省略して記述してある。
【0016】
以下の本文において、nとNは整数であり、1<n<Nの関係を持つ。また、iとIは整数であり、1<i<Iの関係を持つ。
【0017】
図1において、データ受付レジスタ000と、出力先指定と順序保証情報受付レジスタ010と、N個のシフトバッファ0(030)、シフトバッファ1(031)からシフトバッファn-1(032)、シフトバッファn(033)、シフトバッファn+1(034)からシフトバッファN(035)と、そのそれぞれが具備するN個の出力先指定と順序保証情報0(040)、出力先指定と順序保証情報1(041)から出力先指定と順序保証情報n-1(042)、出力先指定と順序保証情報n(043)、出力先指定と順序保証情報n+1(044)から出力先指定と順序保証情報N(045)と、そのそれぞれの入力データを選択するN個のセレクタ0(020)、セレクタ1(021)からセレクタn-1(022)、セレクタn(023)、セレクタn+1(024)からセレクタN(025)と、その選択を制御するセレクタ制御部050と、相互間で動作が独立なI個の出力バッファ0(080)、出力バッファ1(081)から出力バッファi(082)から出力バッファI(083)と、そのそれぞれから発行されるビジー信号090と、前記シフトレジスタ0(030)の示す出力先指定と順序保証情報0(040)及び前記ビジー信号090とから、前記シフトバッファ0(030)の前記出力バッファ0(080)、出力バッファ1(081)から出力バッファi(082)から出力バッファI(083)の何れかへの出力の可否を判断する出力制御部060と、前記出力制御部060の判断結果により前記セレクタ制御部050を指示する出力制御情報070とで構成される。
【0018】
以降の説明において、次のような略した表記を用いる。たとえば、N個のシフトバッファ0(030)、シフトバッファ1(031)からシフトバッファn-1(032)、シフトバッファn(033)、シフトバッファn+1(034)からシフトバッファN(035)を、N個のシフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)のように、インデックスの数字のみとして表記する。それぞれをシフトバッファ1(031)とかシフトバッファ(033)nのようには表記しない。その他の小文字のインデックス、0,1,n,N,i,Iがつくものにつても同様の表記とする。
【0019】
次に、本発明の実施の形態の動作について図面を参照して説明する。データ転送には、大規模なデータ転送をあらかじめ決められた転送単位に分けて複数回行うといった、最終的に全てのデータが転送完了すればよいという転送過程の転送順序を保証しないものと、制御データの転送や排他制御データのように順序保証が必要なものとに分けられる。本発明は、このようなデータ転送のうち順序保証の必要ない大規模なデータ転送について大きな効果があり、ある一つの系から複数個実装される出力ポートの何れかへデータ転送する際の機能として適用される。
【0020】
図1において、N個のシフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)は、そのそれぞれのエントリに対応するセレクタ0(020)、1(021)…n-1(022)、n(023)、n+1(024)…N(025)によって選択されたデータを保持する。シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)に登録されるデータには、それぞれのエントリに対応するN個の出力先指定と順序保証情報0(040)、1(041)…n-1(042)、n(043)、n+1(044)…N(045)が含まれている。
【0021】
セレクタ0(020)、1(021)…n-1(022)、n(023)、n+1(024)…N(025)の選択動作は、登録選択(新規データの登録)、シフト選択(自エントリより一つ老番のエントリのデータの登録)、ローテート選択(シフトバッファ0(030)のデータの登録)、クリア選択(エントリの無効化)、ホールド選択(自エントリのデータを保持)の5種類に分類される。
【0022】
ただし、シフトバッファ0(030)においてはローテート選択とホールド選択は共にシフトバッファ0(030)自身の登録なので同一動作となり、シフトバッファN(035)においては以降に老番エントリが存在しないのでシフト選択は存在しない。セレクタ0(020)、1(021)…n-1(022)、n(023)、n+1(024)…N(025)の選択制御の指示はセレクタ制御部050で行われるが、何も登録されていないエントリに対する選択制御の指示は常にホールド選択(動作せず)となるように制御される。
【0023】
まず、データ受付レジスタ000及び出力先指定と順序保証情報受付レジスタ010は、ある一つの系からの転送データを受け付ける。データ受付レジスタ000で受け付けたデータは、シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)の何れかのエントリに常に若番優先で登録される。
【0024】
同様に、出力先指定と順序保証情報受付レジスタ010で受け付けたデータは、出力先指定と順序保証情報0(040)、1(041)…n-1(042)、n(043)、n+1(044)…N(045)の何れかのエントリに常に若番優先かつシフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)に対応して登録される。例えば、シフトバッファ0(030)が空きエントリの場合はシフトバッファ0(030)と出力先指定と順序保証情報0(040)に対応するセレクタ0(020)が登録選択を行い、シフトバッファ0(030)が登録済みでシフトバッファ1(031)が空きエントリの場合はそれぞれに対応してセレクタ0(020)がホールド選択で登録済みデータの保持を選択し、セレクタ1(021)が登録選択でデータ受付レジスタ000及び出力先指定と順序保証情報受付レジスタ010の登録選択を行う。すなわち、シフトバッファ0(030)、1(031)…n-1(032)までが登録済みでシフトバッファn(033)へ登録する場合はそれぞれに対応するセレクタ0(020)、1(021)…n-1(022)までがホールド選択を行い、セレクタn(023)が登録選択を行うことになる。セレクタ0(020)、1(021)…n-1(022)、n(023)、n+1(024)…N(025)の選択制御の指示はセレクタ制御部050で行い、シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)の登録状況と出力制御部060からの出力制御情報070をもとにデータ受付レジスタ000及び出力先指定と順序保証情報受付レジスタ010のデータを登録すべきエントリを判定して登録選択を指示し、そのエントリよりも若番のエントリには既に登録済みのデータがあるので全てホールド選択を指示する。
【0025】
このような登録方式を採ることによりシフトバッファ0(030)を先頭に隙間のないデータ登録が実現される。また、シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)が全て登録済みになった場合は、データの消滅を抑止するためにデータ受付レジスタ000及び出力先指定と順序保証情報受付レジスタ010の登録を待ち合わせる。
【0026】
実際の動作について、シフトバッファ0(030)、1(031)…n-1(032)、n(033)までが登録済みでシフトバッファn+1(034)…N(035)までが未登録の場合を具体例に説明する。シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)に登録データが一つ以上あれば、シフトバッファ0(030)を先頭に隙間のないデータ登録が実現されているためシフトバッファ0(030)には必ず登録データが存在し、出力制御部060に対して出力要求を行う。出力要求を受けた出力制御部060は、シフトバッファ0(030)が持つ出力先指定と順序保証情報0(040)を解読する。第一には、出力先ポートが出力バッファ0(080)、1(081)…i(082)…I(083)のうちどのポートであるかを判定する。出力バッファ0(080)、1(081)…i(082)…I(083)からはそのポートそれぞれに対応したビジー信号090が出力制御部060で監視されている。
【0027】
第二に、ビジー信号090で、判定した出力バッファ(仮に出力バッファi(082)とする)がビジーか否かを判定し、出力バッファi(082)がビジーでない場合は出力制御部060はデータ出力可能と判断してシフトバッファ0(030)のデータを出力バッファi(082)へ転送する。この時、同時に出力制御部060は、転送完了したことを出力制御情報070でセレクタ制御部050へ通知する。セレクタ制御部050は出力制御情報070によって、既に登録済みのシフトセレクタ0(020)、1(021)…n-1(022)へはシフト選択を指示し、セレクタn(023)へはクリア選択を指示する。これにより、シフトバッファ0(030)にこれまで存在したデータは出力バッファi(082)に出力されると共に消滅してシフトバッファ0(030)…n-1(032)へはそれぞれ1エントリずつ老番のシフトバッファ1(031)…n(033)に存在したデータがシフト登録され、シフトバッファn(033)はクリア登録で無効化される。その後、新たなシフトバッファ0(030)のデータによる出力要求が起こり動作は継続される。
【0028】
一方、ビジー信号090で判定した出力バッファi(082)がビジーの場合は、第三として、出力制御部060はシフトバッファ0(030)が持つ出力先指定と順序保証情報0(040)で順序保証の有無を判定して動作を切り替える。順序保証が必要な場合は、シフトバッファ0(030)のデータは出力バッファi(082)のビジー解除を待ち合わせる。つまりシフトバッファ0(030)、1(032)…n-1(032)、n(033)はホールド選択で自エントリのデータを保持する。順序保証が不要な場合は、シフトバッファ0(030)のデータはローテートが可能であることを出力制御情報070でセレクタ制御部050へ通知する。セレクタ制御部050は、既に登録済みのシフトバッファ0(030)、1(031)…n-1(032)、n(033)のそれぞれのエントリに対応してセレクタ0(020)、1(021)…n-1(022)へはシフト選択を指示し、セレクタn(023)へはローテート選択を指示する。これにより、シフトバッファ0(030)にこれまで存在したデータは登録済み最後尾のシフトバッファn(033)にローテートされ、シフトバッファ0(030)…n-1(032)へはそれぞれ1エントリずつ老番のシフトバッファ1(031)…n(033)に存在したデータがシフト登録される。その後、新たな前記シフトバッファ0(030)のデータによる出力要求により動作は継続され、ローテートされたシフトバッファn(033)のデータはn回のシフト処理のち再びシフトバッファ0(030)へシフトされてきて出力要求を行うことになる。
【0029】
更に、セレクタ制御部050の選択動作の指示の競合について説明する。競合とは、出力要求に対するシフト選択やローテート選択の動作中、同時に登録選択動作が行われる場合があり得ることを意味する。シフトバッファ0(030)、1(031)…n(033)までが登録済みの場合を具体例に説明する。シフトバッファ0(030)からの出力要求が出力制御部060で受け付けられ、出力制御部060で出力先指定と順序保証情報0(040)から判定した出力先の出力バッファi(082)に対するビジー信号090がビジーでない場合、出力制御部060はシフトバッファ0(030)のデータを出力バッファi(082)へ転送し、転送完了したことを出力制御情報070でセレクタ制御部050へ通知する。この通知と同時にデータ受付レジスタ000及びからの登録が競合した場合、セレクタ制御部050は、既に登録済みのシフトセレクタ0(020)、1(021)…n-1(022)へはシフト選択を指示するが、セレクタn(023)へは登録選択を指示する。これにより、シフトバッファ0(030)にこれまで存在したデータは出力バッファi(082)に出力されると共に消滅し、シフトバッファ0(030)…n-1(032)へはそれぞれ1エントリずつ老番のシフトバッファ1(031)…n(033)に存在したデータがシフト登録される。シフトバッファn(033)へはデータ受付レジスタ000からのデータが新規に登録される。
【0030】
一方、出力制御部060で判定した出力先の出力バッファi(082)に対するビジー信号090がビジーであった場合、出力先指定と順序保証情報0(040)による順序保証の判定が必要ならばシフトバッファ0(030)、1(031)…n-1(032)、n(033)は何れもホールド選択、不要ならばシフトバッファ0(030)、1(031)…n-1(032)がシフト選択でシフトバッファn(033)がローテート選択と、どちらの判定であってもシフトバッファn(033)は登録済みの状態が維持されるので、シフトバッファn+1(034)にデータ受付レジスタ000のデータが新規に登録される。
【0031】
このような選択動作の指示を行うセレクタ制御部050について、その選択動作を説明する。今、セレクタn(023)とシフトバッファn(033)の動作に注目すると、シフトバッファn(033)に何らかのデータが登録されるとき、登録済みデータは必ずシフトバッファ0(030)から隙間なく登録されているので、一つ若番のシフトバッファn-1(032)には必ずデータが登録されていることになる。この規則性に従い、シフトバッファn(033)の振る舞いは次のように場合分けされる。
【0032】
図2のタイミングチャートにおいて、シフトバッファn(033)が未登録で次にデータ受付レジスタ000のデータを登録する時、同時にシフトバッファ0(030)のデータが出力先の出力バッファ(仮に出力バッファi(082)とする)に出力されなければ、データ受付レジスタ000からの新規登録要求は必ずシフトバッファn(033)に登録される。
【0033】
図3のタイミングチャートにおいて、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)が未登録で、データ受付レジスタ000からデータの新規登録要求があった時、同時にシフトバッファ0(030)のデータが出力先の出力バッファi(082)に出力されたならばシフトバッファn(033)はシフト選択により登録済みのデータがシフトバッファn-1(032)へシフトするので、シフトバッファn+1(034)でなくシフトバッファn(033)へ登録が可能になる。
【0034】
図4のタイミングチャートにおいて、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)が未登録でデータ受付レジスタ000からの新規登録がない時、同時にシフトバッファ0(030)のデータが出力先の出力バッファi(082)に出力されていれば、シフトバッファn(033)はシフト選択により登録済みのデータがシフトバッファn-1(032)へシフトしてシフトバッファn(033)へはシフトバッファn+1(034)が未登録なためクリア選択により無効化される。
【0035】
図5のタイミングチャートにおいて、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)が未登録でデータ受付レジスタ000からの新規登録がない時、同時にシフトバッファ0(030)のデータが出力先の出力バッファi(082)がビジーでシフトバッファ0(030)のデータが登録済み最後尾にローテートされるならば、シフトバッファn(033)のデータはシフトバッファn-1(032)にシフトし、シフトバッファn(033)はローテート選択によりシフトバッファ0(030)のデータがローテートして登録される。
【0036】
図6及び図7のタイミングチャートにおいて、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)も登録済みの時、シフトバッファ0(030)のデータが出力先の出力バッファi(082)に出力されるか、ビジーのため登録済み最後尾にローテートされるならば、シフトバッファn(033)はシフト選択によりシフトバッファn+1(034)のデータがシフトして登録される。
【0037】
図2から図7の場合分けでは、シフトバッファn(033)へ登録するデータの選択動作は、データ受付レジスタ000からの新規登録要求の有無、シフトバッファ0(030)の出力バッファi(082)への出力または出力バッファi(082)のビジーによるローテートの判定、シフトバッファn-1(032)、n(033)、n+1(034)の登録状態、つまり自エントリとその老若1エントリの計3エントリの登録状態、だけで行われている。
【0038】
すなわち、セレクタ制御部050は選択動作の指示において、シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)の全てのエントリの登録状態の認識は必要でなく、指示すべきシフトバッファn(033)を含む唯3個のエントリの登録状態を認識するだけでよい。これはN個がいくつであっても適用されるので、N個が多くなるほどHW資源が増大するというようなことはない。
【0039】
また、本発明の実現において、セレクタ0(020)、1(021)…n-1(022)、n(023)、n+1(024)…N(025)とシフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)で構成される待ち行列バッファは、セレクタ0(020)のホールド選択とローテート選択でシフトバッファ0(030)のデータを再度シフトバッファ0(030)に登録する同一動作として扱い、セレクタN(025)のシフト選択を無効化すれば、セレクタ0(020)、1(021)…n-1(022)、n(023)、n+1(024)…N(025)、シフトバッファ0(030)、1(031)…n-1(032)、n(033)、n+1(034)…N(035)で構成されるN個の全エントリが同様の作りになるため、エントリ単位で1種N個の構成を容易に組むことが出来る。
【0040】
以上説明したように、本発明では、ある一つの系から複数個実装される出力ポートの何れかへのデータ転送において、受け付けたデータを一旦待ち行列バッファに保持し、そのデータの示す出力先指定と出力先ポートからのビジー条件を判定して転送を行う時、待ち行列バッファを先頭から登録済み最後尾へローテートする機能を持つシフトレジスタで制御することによって、大規模なデータ転送のような順序保証の必要ないデータが出力先ポートのビジーで転送不可能な場合にこれを待ち行列バッファの登録済み最後尾にローテートすることを可能にし、同時に既に待ち行列バッファに登録済みの後続データをシフト動作させて次のデータを待ち行列バッファの先頭に移す、という制御を行うことで、出力先ポートがビジーでないデータを可能な限り優先して転送可能にし、少ないHW資源かつ待ち行列バッファそれぞれのエントリの作りが1種N個という実現容易な構成で転送性能を向上させることが出来る。
【0041】
次に本発明の他の実施例について説明する。図1において、シフトバッファ0(030)に加えてシフトバッファ1(031)からも出力制御部060へ出力要求し、出力先指定と順序保証情報1(041)によって出力バッファ0(080)、1(081)…i(082)…I(083)の何れかの出力先を判定して出力、またはビジーにより登録済み最後尾へローテートを可能にした方式がある。同様に上記シフトバッファ0(030)、1(031)の出力動作を任意のシフトバッファn(033)まで拡張した方式がある。
【0042】
次に本発明のバッファについて情報処理装置内での位置について説明する。図8は、本発明実施の形態のバッファ制御装置を複数の入出力装置と主記憶の間のデータ転送制御に適用した汎用ポート制御装置を示す図である。
【0043】
本発明は大規模なData転送のような順序保証の必要ないデータ転送において効果があり、図8では複数の入出力装置と主記憶の間のデータ転送制御に本発明を適用して示している。図8において、シフトバッファ150、セレクタ制御部160、出力制御部170、出力バッファ0(180)、出力バッファ1(181)から出力バッファx(182)で構成される部分が本発明にあたり、各入出力装置0(100)、入出力装置1(101)から入出力装置x(102)から、入力バッファ0(110)、入力バッファ1(111)から入力バッファx(112)、入力選択部120、緩衝バッファ130を経て連続的にデータ読み出し要求がなされ、主記憶制御部140から、シフトバッファ150、セレクタ制御部160、出力制御部170、出力バッファ0(180)、1(181)…x(182)を経て各入出力装置0(100)、入力バッファ1(111)から入力バッファx(112)へ読み出しデータが転送される時に本発明の汎用ポート制御装置240が作用する。本発明は、このように主記憶から入出力装置へデータ転送を行う時などに有効であり、ある特定の入出力装置がビジーとなって転送が待ち状態になったとしても、他の入出力装置に対しては、ビジーの影響を出来るだけ少なくして転送を継続することが出来る。
【0044】
次に、本バッファ制御装置を採用した情報処理装置について説明する。図9は、本発明実施の形態のバッファ制御装置を複数の入出力装置と主記憶の間のデータ転送制御に適用した汎用ポート制御制御装置を有する情報処理装置を示す図である。図9において、入出力装置0(250)、入出力装置1(251)から入出力装置x(252)は、汎用ポート制御装置240に接続され、汎用ポート制御装置240は、Cache制御装置210、主記憶制御装置220を介して主記憶230とのデータ転送を行う。EPU0(200)、EPU1(201)からEPUy(202)も同様にCache制御装置210、主記憶制御装置220を介して主記憶230とのデータ転送を行う。EPUは演算処理装置の略称である。(EPU Execution Processing Unit)。本発明は、汎用ポート制御装置240において、Cache制御装置210から入出力装置0(250)、入出力装置1(251)から入出力装置x(252)へのデータ転送機構として実現される。
【0045】
【発明の効果】
本発明では、ある一つの系から複数個実装される出力ポートの何れかへのデータ転送において、受け付けたデータを一旦待ち行列バッファに保持し、そのデータの示す出力先指定と出力先ポートからのビジー条件を判定して転送を行う時、待ち行列バッファを先頭から登録済み最後尾へローテートする機能を持つシフトレジスタで制御することによって、大規模なデータ転送のような順序保証の必要ないデータが出力先ポートのビジーで転送不可能な場合にこれを待ち行列バッファの登録済み最後尾にローテートすることを可能にし、同時に既に待ち行列バッファに登録済みの後続データをシフト動作させて次のデータを待ち行列バッファの先頭に移す、という制御を行うことで、出力先ポートがビジーでないデータを可能な限り優先して転送可能にし、少ないHW資源かつ待ち行列バッファそれぞれのエントリの作りが1種N個という実現容易な構成で転送性能を向上させることが出来る、という効果がある。
【図面の簡単な説明】
【図1】本発明実施の形態のバッファ制御装置の構成を示すブロック図である。
【図2】本発明実施の形態のバッファ制御装置において、シフトバッファn(033)が未登録で新規データの登録の動作を示すフローチャートである。
【図3】本発明実施の形態のバッファ制御装置において、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)が未登録で、新規データの登録の動作を示すフローチャートである。
【図4】本発明実施の形態のバッファ制御装置において、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)が未登録でデータ受付レジスタ000からの新規登録がない時、同時にシフトバッファ0(030)のデータが出力先の出力バッファi(082)に出力されていれば、シフトバッファn(033)はシフト選択により登録済みのデータがシフトバッファn-1(032)へシフトしてシフトバッファn(033)へはシフトバッファn+1(034)が未登録なためクリア選択により無効化される動作を示すフローチャートである。
【図5】本発明実施の形態のバッファ制御装置において、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)が未登録でデータ受付レジスタ000からの新規登録がない時のローテート選択によるシフトバッファ0(030)のデータの登録の動作を示すフローチャートである。
【図6】本発明実施の形態のバッファ制御装置において、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)も登録済みの時、シフトバッファ0(030)のデータが出力先の出力バッファi(082)に出力される動作を示すフローチャートである。
【図7】本発明実施の形態のバッファ制御装置において、シフトバッファn(033)が登録済みかつシフトバッファn+1(034)も登録済みの時、ビジーのため登録済み最後尾にローテートされるならば、シフトバッファn(033)はシフト選択によりシフトバッファn+1(034)のデータがシフトして登録される動作を示すフローチャートである。
【図8】本発明実施の形態のバッファ制御装置を複数の入出力装置と主記憶の間のデータ転送制御に適用した汎用ポート制御装置を示す図である。
【図9】本発明実施の形態のバッファ制御装置を複数の入出力装置と主記憶の間のデータ転送制御に適用した汎用ポート制御装置を有する情報処理装置を示す図である。
【符号の説明】
000 データ受付レジスタ
010 出力先指定と順序保証情報受付レジスタ
(020) セレクタ0
(021) セレクタ1
(022) セレクタn-1
(023) セレクタn
(024) セレクタn+1
(025) セレクタN
(030) シフトバッファ0
(031) シフトバッファ1
(032) シフトバッファn-1
(033) シフトバッファn
(034) シフトバッファn+1
(035) シフトバッファN
(040) 出力先指定と順序保証情報0
(041) 出力先指定と順序保証情報1
(042) 出力先指定と順序保証情報n-1
(043) 出力先指定と順序保証情報n
(044) 出力先指定と順序保証情報n+1
(045) 出力先指定と順序保証情報N
050 セレクタ制御部
060 出力制御部
070 出力制御情報
(080) 出力バッファ0
(081) 出力バッファ1
(082) 出力バッファi
(083) 出力バッファI
090 ビジー信号
(100) 入出力装置0
(101) 入出力装置1
(102) 入出力装置x
(110) 入力バッファ0
(111) 入力バッファ1
(112) 入力バッファx
120 入力選択部
130 緩衝バッファ
140 主記憶制御部
150 シフトバッファ
160 セレクタ制御部
170 出力制御部
(180) 出力バッファ0
(181) 出力バッファ1
(182) 出力バッファx
(200) EPU0
(201) EPU1
(202) EPUy
210 Cache制御装置
220 主記憶制御装置
230 主記憶
240 汎用ポート制御装置
(250) 入出力装置0
(251) 入出力装置1
(252) 入出力装置x

Claims (5)

  1. ひとつの入力ポートから複数の出力ポートの何れかへ複数のデータ転送するバッファ制御装置であって、前記データには転送順序を保証する必要の有無を示す転送保証情報と出力先ポートを指定するポート情報が格納され、複数のバッファを有する待ち行列バッファと、前記データを前記バッファのうちのひとつへ保持する手段と、前記転送保証情報により前記転送順序を保証するか判断する順序保証判断手段と、前記ポート情報により前記データの出力先の前記出力ポートのビジー状態を判断するビジー検出手段と、前記待ち行列バッファ内の先頭に格納されている前記データを前記待ち行列バッファの前記データが格納済の最後尾へローテートする手段と前記待ち行列バッファ内のすべての前記データを一段先頭の前記バッファに向けてシフトする手段を有し、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がない場合は、前記待ち行列バッファ内の先頭に格納されている前記データを前記待ち行列バッファ内の前記データが格納済の最後尾にローテートし、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がある場合は、前記ビジー状態の解除を待ち、前記ビジー状態が解除されると前記データを前記出力ポートへ転送する制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートが転送可能な場合に、前記データを前記出力ポートへ転送し、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行う手段を有することを特徴とするバッファ制御装置。
  2. ひとつの入力ポートから複数の出力ポートの何れかへ複数のデータ転送するバッファ制御方法であって、前記データには転送順序を保証する必要の有無を示す転送保証情報と出力先ポートを指定するポート情報が格納され、前記データを待ち行列バッファを構成するバッファのうちのひとつへ保持する第一の手順と、前記転送保証情報により前記転送順序を保証するか判断する第二の手順と、前記ポート情報により前記データの出力先の前記出力ポートのビジー状態を判断する第三の手順と、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がない場合は、前記待ち行列バッファ内の先頭に格納されている前記データを前記待ち行列バッファの前記データが格納済の最後尾にローテートし、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートがビジー状態で転送不可能な場合で、かつ前記転送保証情報を参照し前記データの転送順序を保証する必要がある場合は、前記ビジー状態の解除を待ち、前記ビジー状態が解除されると前記データを前記出力ポートへ転送する制御を行い、前記待ち行列バッファ内の先頭に格納されている前記データの出力先の前記出力ポートが転送可能な場合に、前記データを前記出力ポートへ転送し、前記待ち行列バッファに格納されているすべてのデータを前記待ち行列バッファの先頭にむけて一段移す制御を行う第四の手順と、前記第二から第四の手順を前記待ち行列バッファ内の前記データに対し繰り返し行う第五の手順を有することを特徴とするバッファ制御方法。
  3. 第一のポートから複数の第二のポートへデータを転送する汎用ポート制御装置であって、前期第二のポートから前記第一のポートへ前記データを転送する際に、前記第二のポートへ接続する入力バッファから入力選択部を経て緩衝バッファを経て前記第一のポートヘ転送する第一の転送手段と、前記第一のポートから前記第二のポートへ前記データを転送するときに請求項2記載のバッファ制御装置が動作することを特徴とする汎用ポート制御装置。
  4. 複数の入出力装置と主記憶装置を請求項記載の汎用ポート制御装置により接続したことを特徴とする入出力システム。
  5. 複数の演算処理装置と複数の入出力装置と主記憶装置と主記憶装置を制御する主記憶制御装置と複数のキャッシュと前記キャッシュを制御するキャッシュ制御装置と請求項記載の汎用ポート制御装置を有し、前記演算処理装置と前記主記憶制御装置は前記キャッシュ制御装置へ接続され、前記キャッシュ制御装置と前記入出力装置は前記汎用ポート制御装置へ接続されることを特徴とする情報処理装置。
JP2000384013A 2000-12-18 2000-12-18 バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置 Expired - Fee Related JP3698987B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000384013A JP3698987B2 (ja) 2000-12-18 2000-12-18 バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000384013A JP3698987B2 (ja) 2000-12-18 2000-12-18 バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置

Publications (2)

Publication Number Publication Date
JP2002183073A JP2002183073A (ja) 2002-06-28
JP3698987B2 true JP3698987B2 (ja) 2005-09-21

Family

ID=18851564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000384013A Expired - Fee Related JP3698987B2 (ja) 2000-12-18 2000-12-18 バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置

Country Status (1)

Country Link
JP (1) JP3698987B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3641435B2 (ja) * 2001-03-01 2005-04-20 エヌイーシーコンピュータテクノ株式会社 トランザクション調停装置及び方法
JP4351292B2 (ja) * 2006-02-27 2009-10-28 富士通株式会社 データ制御装置、データ制御方法およびデータ制御プログラム
US8219789B2 (en) * 2007-03-14 2012-07-10 XMOS Ltd. Interface processor
US7617386B2 (en) 2007-04-17 2009-11-10 Xmos Limited Scheduling thread upon ready signal set when port transfers data on trigger time activation

Also Published As

Publication number Publication date
JP2002183073A (ja) 2002-06-28

Similar Documents

Publication Publication Date Title
CN100440139C (zh) 双线程处理器和方法
EP0599449B1 (en) Data communication system and method
US4320455A (en) Queue structure for a data processing system
KR920005852B1 (ko) 데이타 처리 시스템에 있어서 합성 디스크립터를 제공하는 장치 및 방법
US20080209084A1 (en) Hardware-Based Concurrent Direct Memory Access (DMA) Engines On Serial Rapid Input/Output SRIO Interface
KR100766732B1 (ko) 고속의 낮은 오버헤드의 콘텍스트 전환을 실행하는 디바이스 및 방법
CA1227877A (en) Instruction prefetch operation for branch and branch- with-execute instructions
US20090180473A1 (en) method and system for decreasing routing latency for switching platforms with variable configuration
US20030014472A1 (en) Thread ending method and device and parallel processor system
US5377341A (en) Buffer storage control system
JPS581465B2 (ja) デ−タ信号の緩衝方式
JP4814653B2 (ja) リオーダリング装置
JP3698987B2 (ja) バッファ制御装置、汎用ポート制御装置、入出力システム、情報処理装置
JP3641834B2 (ja) 並列プロセッサシステムおよびそれに適したパケット廃棄方法
JP2002024007A (ja) プロセッサシステム
JP3490502B2 (ja) メモリ制御装置
US6055607A (en) Interface queue with bypassing capability for main storage unit
JPH0922397A (ja) 並列計算機
JPH11212900A (ja) システム制御装置
JPH0833869B2 (ja) データ処理装置
JPH10111798A (ja) 情報処理装置
JP3704367B2 (ja) スイッチ回路
JP3467188B2 (ja) 多重化バスの順序保証システム
JP2976722B2 (ja) 待ち行列の管理方式および管理方法
US20110093863A1 (en) Context switching in a data processing apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041012

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041202

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050314

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050706

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees