JP2008234059A - データ転送装置および情報処理システム - Google Patents
データ転送装置および情報処理システム Download PDFInfo
- Publication number
- JP2008234059A JP2008234059A JP2007069510A JP2007069510A JP2008234059A JP 2008234059 A JP2008234059 A JP 2008234059A JP 2007069510 A JP2007069510 A JP 2007069510A JP 2007069510 A JP2007069510 A JP 2007069510A JP 2008234059 A JP2008234059 A JP 2008234059A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data
- time
- read
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
【課題】バスの使用権取得の待ち期間を短縮し、データの転送時間を短縮するデータ転送装置および情報処理システムを提供すること。
【解決手段】データ転送処理部152は、管理テーブル141とCPUボード2−1〜2−3の要求によりキャッシュメモリ13のヒット判定を行い、キャッシュメモリ13に要求されたデータが存在しない場合、タイムテーブル142の最適パケット長分のパケット毎に共有メモリ12から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間を計測し、パケット長最適化処理部153は、計測されたパケット転送時間およびタイムテーブル142に登録された情報に基づいてパケット転送時間とパケット読出し時間との差が小さくなるように最適パケット長を変更する。
【選択図】 図2
【解決手段】データ転送処理部152は、管理テーブル141とCPUボード2−1〜2−3の要求によりキャッシュメモリ13のヒット判定を行い、キャッシュメモリ13に要求されたデータが存在しない場合、タイムテーブル142の最適パケット長分のパケット毎に共有メモリ12から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間を計測し、パケット長最適化処理部153は、計測されたパケット転送時間およびタイムテーブル142に登録された情報に基づいてパケット転送時間とパケット読出し時間との差が小さくなるように最適パケット長を変更する。
【選択図】 図2
Description
この発明は、情報処理におけるデータ転送に関し、特に、マルチプロセッサ構成のシステムにおいて要求されたデータを記憶手段から読み出して転送するデータ転送装置、および情報処理システムに関するものである。
近年の情報処理においては、特に、音声や動画など膨大なデータを扱う場合その処理の高速化が要求される。そのため、CPUが搭載され所望の処理を行なう複数のCPUボードと、これらのCPUボードと共有バスによって接続されそれぞれのCPUがアクセス可能な共有メモリが搭載されるメモリボードとで構成されるマルチプロセッサによる情報処理システムが用いられることが多い。
このようなマルチプロセッサによる情報処理システムにおいては、共有メモリにアクセスする際にCPUボードがバスを専有する。そのため、他のCPUボードはバス権を取得するまで待ち状態となり、システムの処理能力が低下してしまうという問題があった。
このような問題を改善するために、従来から種々の技術が考えられている。たとえば、特許文献1には、中央制御装置から記憶装置に発行される入出力要求に基づいて、シーケンシャルアクセスの比率が高いのか、ランダムアクセスの比率が高いのかを判定することでデータ転送量に基づくバス負荷特性を予測し、データ転送能力重視のバス利用方法またはランダムアクセス能力重視のバス利用方法を自動的にチューニングしてデータ転送量を変更するバス制御方法に関する技術が開示されている。
また、特許文献2には、アクセスすべきデータがプロセッサに対応した分散メモリにあるのか、他の分散メモリにあるのかを判定し、その判定に基づいてアクセスのデータ転送量を変化させる、すなわち転送バスへのデータ転送量をメモリバスへのデータ転送量に比べて小さくするデータ転送量可変プロセッサに関する技術が開示されている。
上記特許文献1に記載の従来技術では、データ転送量に応じてデータ転送能力重視のバス利用法、またはランダムアクセス能力重視のバス利用法を自動的にチューニングするようにしているため、運用形態が変化した場合でも効率よくバスを使用することが可能となり、システムの処理能力を向上することができる。
また、上記特許文献2に記載の従来技術では、転送バスの1回あたりの使用時間を短縮することで転送バスの使用率を下げてシステム全体の高速処理を実現し、システムの処理能力を向上している。
ここで、1回のデータ転送について考える。マルチプロセッサの情報処理システムでは、共有メモリから読み出したデータを要求元であるCPUボードに転送し終えるまでの時間は、各CPUボードの処理の輻輳状態によって変動する。そのため、1回のデータ転送において固定長のパケット単位でデータを転送すると、他のCPUボードがバスを専有している間に発生した他のCPUボードからの共有メモリへのアクセス要求は、大幅な待ち合わせ時間が生じてしまい、転送時間が増加してしまうという問題があった。
しかしながら、上記特許文献1および2の従来技術では、1回のデータ転送、すなわち1回のアクセス要求におけるデータ転送時の転送パケットは固定長であるため、メモリからのデータ読出し・および転送時間を短縮することはできない。そのため、要求元の処理の輻輳状態によって変動するバスの専有による大幅な待ち時間を短縮することはできず、それによる転送時間の増加を防止することはできない。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮し、データの転送時間を短縮することができるデータ転送装置および情報処理システムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明にかかるデータ転送装置は、各種処理を実行する複数の処理モジュールとバスによって接続され、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置において、前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、を備えることを特徴とする。
また、請求項2の発明にかかるデータ転送装置は、請求項1の発明において、予め定められた複数のパケット長毎に当該パケット長に関連付けて記憶手段から当該パケット長のデータであるパケットを前記記憶手段から読み出すパケット読出し時間と、過去に前記記憶手段から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、該最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブルを記憶する制御情報記憶手段、をさらに備え、前記制御手段は、前記タイムテーブルの最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測するデータ転送処理手段と、前記最適パケット長が示すパケット長に関連付けられてタイムテーブルに登録されているパケット読出し時間およびパケット転送回数と、前記データ転送処理手段によって計測されたパケット転送時間に基づいてトータル転送時間を算出し、算出したトータル転送時間が前記タイムテーブルに登録された過去トータル時間より小さい場合に、前記パケット読出し時間と計測したパケット転送時間との差が小さくなるように前記タイムテーブルに登録された最適パケット長を変更するパケット長最適化処理手段と、を備えることを特徴とする。
また、請求項3の発明にかかるデータ転送装置は、請求項2の発明において、前記パケット長最適化処理手段は、前記パケット読出し時間が前記パケット転送時間よりも大きい場合には、前記パケット読出し時間に前記パケット転送回数を乗算した値に前記パケットの転送時間を加算した値を前記トータル時間とし、現在の最適パケット長を予め定められた定数で除算した値を前記タイムテーブルの最適パケット長に登録し、前記パケット転送時間が前記パケット読出し時間よりも大きい場合には、前記パケット転送時間に前記パケット転送回数を乗算した値に前記パケットの読出し時間を加算した値を前記トータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値を前記タイムテーブルの最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブルのパケット転送回数に登録すること、を特徴とする。
また、請求項4にかかる情報処理システムは、各種処理を実行する複数の処理モジュールと、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置とがバスによって接続される情報処理システムにおいて、前記データ転送装置は、前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、を備えることを特徴とする。
また、請求項5にかかる情報処理システムは、請求項4の発明において、前記記憶手段は、前記前記処理モジュールが処理に要する全てのデータを記憶する共有メモリと、前記共有メモリが記憶するデータの一部を記憶するキャッシュメモリと、を備え、前記制御手段は、前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されているか否かを判定するヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には前記共有メモリからパケット毎にデータを読み出して順次送信すること、を特徴とする。
請求項1の発明によれば、処理モジュールから要求されたデータを最適パケット長分のパケット毎に処理モジュールが処理に要するデータを記憶する記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
また、請求項2に発明によれば、予め定められた複数のパケット長毎に当該パケット長に関連付けて記憶手段から当該パケット長のデータであるパケットを記憶手段から読み出すパケット読出し時間と、過去に記憶手段から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、該最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブルを記憶する制御情報記憶手段を備え、タイムテーブルの最適パケット長分のパケット毎に記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測し、最適パケット長が示すパケット長に関連付けられてタイムテーブルに登録されているパケット読出し時間およびパケット転送回数と、データ転送処理手段によって計測されたパケット転送時間に基づいてトータル転送時間を算出し、算出したトータル転送時間がタイムテーブルに登録された過去トータル時間より小さい場合に、パケット読出し時間と計測したパケット転送時間との差が小さくなるようにタイムテーブルに登録された最適パケット長を変更するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
また、請求項3の発明によれば、パケット読出し時間がパケット転送時間よりも大きい場合には、パケット読出し時間にパケット転送回数を乗算した値にパケットの転送時間を加算した値をトータル時間とし、現在の最適パケット長を予め定められた定数で除算した値をタイムテーブルの最適パケット長に登録し、パケット転送時間がパケット読出し時間よりも大きい場合には、パケット転送時間にパケット転送回数を乗算した値にパケットの読出し時間を加算した値をトータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値をタイムテーブルの最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブルのパケット転送回数に登録するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
また、請求項4の発明によれば、処理モジュールから要求されたデータを最適パケット長分のパケット毎に処理モジュールが処理に要するデータを記憶する記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
また、請求項5の発明によれば、記憶手段として処理モジュールが処理に要する全てのデータを記憶する共有メモリと共有メモリが記憶するデータの一部を記憶するキャッシュメモリとで構成し、処理モジュールから要求されたデータがキャッシュメモリに記憶されているか否かを判定するヒット判定を行い、処理モジュールから要求されたデータがキャッシュメモリに記憶されている場合にはキャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータがキャッシュメモリに記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、処理モジュールから要求されたデータがキャッシュメモリに記憶されている場合にはキャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータがキャッシュメモリに記憶されていない場合には共有メモリからパケット毎にデータを読み出して順次送信するようにしているため、データ転送におけるパケット長を最適化だけでなく、異なる処理モジュールから同一のデータの読み出しを要求された場合には、最初に実行する処理モジュールの要求時のみ共有メモリからデータを読み出せばよく、以後の要求に対してはキャッシュメモリからデータを読み出すことが可能となり、データの読出し時間を削減しバスの使用権を取得するための待ち期間を短縮することができる。
以下に添付図面を参照して、この発明に係るデータ転送装置および情報処理システムの好適な実施の形態を詳細に説明する。
図1〜図8を用いてこの発明にかかるデータ転送装置の実施例を説明する。まず、図1を参照して、本発明のデータ転送装置のデータ転送およびパケット長最適化の概念についてについて説明する。従来のデータ転送では、x(xは自然数)バイトのデータをメモリから読み出してデータを転送する場合、xバイトのデータをメモリから読み出し、読み出したデータを転送する。よって、xバイトのデータ読出し時間をt1とし、xバイトのデータ転送時間をt2とすると、データ読出し・転送時間tは、「t=t1+t2」となる。
これに対して、本発明のデータ転送装置のデータ転送は、送信すべきデータxバイトをメモリから1度に読み出すのではなく、データをa(a≦x,aは自然数)バイトのパケットに分割して読出し、読み出したパケットを転送している間に、つぎのパケットをメモリから読み出す。すなわち、メモリからのデータ(パケット)の読出しと、パケットの転送を同時に実行する並列処理を行う。
ここで、パケット長がaバイトのパケットのメモリからの読出し時間をtaとし、パケットの転送時間をtbとすると、「読出し時間Ta>転送時間tb」の場合のデータ読出し・転送時間Tは、
T=(ta×パケット転送回数)+tb ・・・ (式1)
で表すことができる。また、「読出し時間ta<転送時間Tb」の場合のデータ読出し・転送時間Tは、
T=ta+(tb×パケット転送回数) ・・・ (式2)
で表すことができる。
T=(ta×パケット転送回数)+tb ・・・ (式1)
で表すことができる。また、「読出し時間ta<転送時間Tb」の場合のデータ読出し・転送時間Tは、
T=ta+(tb×パケット転送回数) ・・・ (式2)
で表すことができる。
上記(式1)および(式2)からわかるように、データ読出し・転送時間Tは、読出し時間taと転送時間tbとで長い方の処理時間にパケット転送回数を乗算した値に、読出し時間taと転送時間tbとで短い方の処理時間を加算した値となる。したがって、読出し時間taと転送時間tbとが一致する場合にデータ読出し・転送時間Tが最も短くなる。この点に着目して、本発明のデータ転送装置は、パケットの読出し時間と転送時間とが一致または近づくようにパケット長を変化させてパケット長を最適化するようにするものである。
図2は、本発明のデータ転送装置が適用される情報処理システムの構成を示す図である。図2において、情報処理システムは、データ転送装置であるメモリボード1と、複数(この場合は3つ)のCPUボード2−1〜2−3とが、バス3によって接続されている。
メモリボード1は、インターフェース部(以下、I/F部という)11、共有メモリ12、キャッシュメモリ13、制御情報記憶部14、および制御部15とを備えている。
I/F部11は、バス3を介してCPUボード2−1〜2−3と接続するインターフェース機能を備えている。共有メモリ12はCPUボード2−1〜2−3の処理に要するデータを記憶する。キャッシュメモリ13は、共有メモリ12に記憶されているデータの一部を記憶する。
制御情報記憶部14は、共有メモリ12およびキャッシュメモリ13に記録されているデータの読出しおよび転送の制御に必要な制御情報が登録される記憶手段であり、管理テーブル141とタイムテーブル142とを記憶する。管理テーブル141には、共有メモリ12に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報、キャッシュメモリ13に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報等の各種情報が登録される。なお、キャッシュメモリ13に記録するデータは、CPUボード2−1〜2−3毎に区分してデータを記録する様にしてもよい。
タイムテーブル142には、パケットの最適化に必要な情報およびパケットの転送に必要な情報が登録される。具体的には、タイムテーブル142の登録項目として、パケット読出し時間、パケット転送時間、トータル時間(データ読出し・転送時間)、過去トータル時間、最適パケット長、およびパケット転送回数が挙げられる。
パケット読出し時間には、共有メモリ12からパケット長のデータ読出し時間が登録される。パケット転送時間には、共有メモリ12からパケット長分のデータをCPUボード2−1〜2−3に転送するために必要な時間が登録される。トータル時間には、データ要求に対する1番目のパケットを共有メモリ12から読み出してからCPUボード2−1〜2−3に対して最後のパケットを転送し終わるまでに要するトータル時間が登録される。過去トータル時間には、過去のトータル時間が登録される。最適パケット長には、パケット最適化による現在のパケット長が登録される。パケット転送回数には、データ要求によって要求されたデータ長分のデータをパケットによって転送するための転送回数、すなわち、「データ長/パケット長」の値が登録される。
なお、パケット読出し時間、パケット転送時間、トータル時間、および過去トータル時間については、予め定められた複数のパケット長毎に当該パケット長に関連付けて登録される。複数のパケット長は、データ読出し要求によって要求されるデータ長を最大パケット長とし、最大パケット長を予め定められた定数m(1<m,mは整数)で除算していった値となる。具体的には、定数mを「2」とし、最大パケット長が「512バイト」とすると、パケット長は、「512バイト」、「256バイト」、「128バイト」、「64バイト」、・・・、となり、これらのパケット長毎に、パケット読出し時間、パケット転送時間、トータル時間、および過去トータル時間が登録される。
また、管理テーブル141およびタイムテーブル142の各登録項目の値は、システム起動時やリセット後の初期動作時に、予め定められた値が登録されるが、図示しない入力手段を用いてシステム管理者などが任意の値を設定するようにしてもよい。
制御部15は、管理テーブル141およびタイムテーブル142に基づいてCPUボード2−1〜2−3からのアクセス命令(データ書き込み要求またはデータ読出し要求)に基づいて共有メモリ12またはキャッシュメモリ13にアクセスし、共有メモリ12またはキャッシュメモリ13にデータの書き込みや読出し、データ転送を行う。また、データ転送においてパケット長最適化処理を行う。
制御部15は、レジスタ151と、データ転送処理部152と、パケット長最適化処理部153とを備えている。レジスタ151は、FIFO(First In First Out)形式のレジスタであって、CPUボード2−1〜2−3からのアクセスに基づく命令をキューとして保持する。
データ転送処理部152は、レジスタ151が保持している命令を保持した順に実行する。データ転送処理部152は、実行すべき命令がデータ読出し要求である場合、管理テーブル141に基づいて共有メモリ12からデータを読み出すのか、キャッシュメモリ13からデータを読み出すのかを選択する。データ転送処理部152は、共有メモリ12からデータを読み出すことを選択した場合には、タイムテーブル142の最適パケット長に登録されているパケット長分のデータを読出し・転送のパケットとして読出しおよび送信の並列処理を行う。データ転送処理部152は、データ転送処理部152は、キャッシュメモリ13からデータを読み出すことを選択した場合には、キャッシュメモリ13からデータ読出し要求によるデータ長のデータをキャッシュメモリ13から読み出し、詠み出したデータをCPUボード2−1〜2−3に送信する。
パケット長最適化処理部153は、データ転送処理部152によって転送される現在の最適パケット長のパケットの転送時間および管理テーブル141に基づいて、共有メモリ12からのパケットの読出し時間とパケットの転送時間との差が最小となるようにパケット長を最適化する。
CPUボード2−1〜2−3は、所望の処理を実行する処理装置であって、CPU(図示せず)とこのCPUが実行するプログラムが格納される記憶手段(図示せず)とを有する制御部22と、バス3を介してメモリボード1と接続するI/F部21とを備えている。
つぎに、図3および図4のフローチャートを参照して、情報処理システムの動作について説明する。なお、この発明におけるデータ転送装置および情報処理システムの特徴は、共有メモリ12からデータを読み出して要求元であるCPUボード2−1〜2−3にデータを転送する動作と、データ転送におけるパケット長の最適化にあり、CPUボード2−1〜2−3から共有メモリ12またはキャッシュメモリ13へのデータ書き込みについては、一般的な従来処理と同様であるため、ここでは、CPUボード2−1〜2−3がメモリボード1に対してデータを要求した場合、すなわちデータ読出し要求に関する動作のみ説明する。
この発明におけるデータ転送装置のデータ読出し要求に関する動作は、CPUボード2−1〜2−3からのデータ読出し要求に基づいて共有メモリ12またはキャッシュメモリ13からデータを読み出して要求元であるCPUボード2−1〜2−3に送信するするデータ転送処理と、共有メモリ12からデータを読み出す際のパケット長を最適化するパケット長最適化処理とがある。まず、図3のフローチャートを参照して、データ転送処理の動作について説明する。
CPUボード2−1〜2−3の制御部22は、メモリボード1の共有メモリ12に記憶されているデータに対するアクセス(この場合は、データ読出し)を要する場合、メモリボード1に対するアクセスとして、必要なデータの送信を要求するデータ読出し要求をI/F部21を介して送信する。データ読出し要求がCPUボード2−1〜2−3からメモリボード1へ転送される間、要求元であるCPUボード2−1〜2−3は、バス3を専有する。
メモリボード1のデータ転送処理部152は、I/F部11を介してCPUボード2−1〜2−3からのデータ読出し要求を受け付ける(ステップS101)。データ転送処理部152は、受け付けたデータ読出し要求および管理テーブル141に登録されている情報に基づいて、読出し要求によって要求されたデータがキャッシュメモリ13に記憶されているか否かを判定する(ステップS102)。
具体的には、データ転送処理部152は、管理テーブル141を参照することにより、キャッシュメモリ13に記憶されているデータと、該データを記憶している共有メモリ12のアドレスとの関係、およびデータ読出し要求によって要求されているデータと、該データを記憶している共有メモリ12のメモリアドレスとの関係を認識することができる。データ転送処理部152は、それぞれのメモリアドレスを比較することにより、要求されたデータがキャッシュメモリ13に記憶されているかの判定、すなわちヒット判定を行う。
まず、データ転送処理部152は、キャッシュメモリ13に記憶されているデータが共有メモリ12の上限アドレスから下限アドレスが示す領域のデータであるのかを認識する。認識した領域内にデータ読出し要求によって要求された上限アドレスから下限アドレスが示す領域が全て含まれている場合、データ転送処理部152は、キャッシュメモリ13に要求されたデータが記録されている、すなわちヒットしたと判定する。認識した領域内にデータ読出し要求によって要求された上限アドレスから下限アドレスが示す領域が全て含まれていない場合、データ転送処理部152は、キャッシュメモリ13に要求されたデータが記録されていない、すなわちミスヒットと判定する。
要求されたデータがキャッシュメモリ13に記憶されていると判定した場合(ステップS102,Yes)、データ転送処理部152は、キャッシュメモリ13からデータ読出し要求によって要求されたデータをキャッシュメモリ13から抽出し(ステップS103)、抽出したデータをI/F部11を介して要求元であるCPUボード2−1〜2−3に送信する(ステップS104)。なお、データ読出し要求を受信してからヒット判定が行われている間、バス3は開放され、メモリボード1から要求元であるCPUボード2−1〜2−3にデータを転送している間、要求元であるCPUボード2−1〜2−3がバス3を再度専有する。
要求元であるCPUボード2−1〜2−3の制御部22は、I/F部21によってデータを受信し、受信したデータに基づく処理を実行する。
要求されたデータがキャッシュメモリ13に記憶されていないと判定した場合(ステップS102,No)、データ転送処理部152は、受け付けたデータ読出し要求に基づく命令をキューとしてレジスタ151に保持させる(ステップS105)。レジスタ151に保持された命令は、保持した順にデータ転送処理部152に読み出されて実行される。
データ転送処理部152は、レジスタ151に保持されたデータ読出し要求に基づく命令を読出し(ステップS106)、読み出したデータ読出し要求が要求するデータがキャッシュメモリ13に記憶されているか否かを再度判定する(ステップS107)。すなわち、レジスタ151に保持してから読み出されるまでの間に実行された命令によって、新たに共有メモリ12からキャッシュメモリ13にデータが記録されることがある。そのため、命令実行前に再度ヒット判定を行う。
要求されたデータがキャッシュメモリ13に記憶されていると判定した場合(ステップS107,Yes)、データ転送処理部152は、キャッシュメモリ13からデータ読出し要求によって要求されたデータをキャッシュメモリ13から抽出し(ステップS103)、抽出したデータをI/F部11を介して要求元であるCPUボード2−1〜2−3に送信する(ステップS104)。
要求元であるCPUボード2−1〜2−3の制御部22は、I/F部21によってデータを受信し、受信したデータに基づく処理を実行する。
要求されたデータがキャッシュメモリ13に記憶されていないと判定した場合(ステップS107,No)、データ転送処理部152は、タイムテーブル142に登録されている最適パケット長およびパケット転送回数を読み出す(ステップS108)。データ転送処理部152は、転送カウンタ(図示せず)のカウント値を初期化(この場合は「1」に)する(ステップS109)。
データ転送処理部152は、共有メモリ12から最適パケット長分のデータを抽出する(ステップS110)。具体的には、データ転送処理部152は、データ読出し要求によって要求されたデータの先頭を示すアドレスを最初の読出しアドレスとし、読出しアドレスから最適パケット長分のデータを抽出する。その後、データを抽出する度に、読出しアドレスから最適パケット長分のデータを加算または減算してつぎに読み出すべきデータの先頭アドレスを算出し、算出した先頭アドレスを読出しアドレスとする。
データ転送処理部152は、読み出したパケット長分のデータ(パケット)をI/F部11を介して要求元であるCPUボード2−1〜2−3に送信を開始する(ステップS111)。
データ転送処理部152は、パケットの送信を実行するとともに、キャッシュメモリ13にパケットとして送信したデータを記憶させる(ステップS112)。また、データ転送処理部152は、転送カウンタをインクリメントし(ステップS113)、転送カウンタの転送カウント値とパケット転送回数とを比較する(ステップS114)。転送カウント値がパケット転送回数以下の場合(ステップS114,No)、データ転送処理部152は、読出しアドレスに基づいて共有メモリ12から最適パケット長分のデータ(パケット)を抽出する(ステップS110)。
データ転送処理部152は、抽出したパケットの送信を開始する(ステップS111)。なお、データ転送処理部152は、2回目以降のパケット送信においては、前回抽出したパケットの送信が終了しているか否かを判定し、パケットの送信が終了していない場合には、送信が終了した後に抽出したパケットの転送を開始する。すなわち、2回目以降のパケットの抽出および送信しているパケットのキャッシュメモリ13に記憶させるデータ書き込み処理は、前回抽出したパケットを送信している間に並列処理として実行する。
転送カウント値がパケット転送回数より大きい場合(ステップS114,Yes)、データ転送処理部152は、データ読出し要求によって要求されたデータを全て抽出して送信したと認識し、キャッシュメモリ13に記憶された内容を反映させて管理テーブル141を更新する(ステップS115)。
つぎに、図4のフローチャートを参照して、パケット長最適化処理の動作について説明する。このパケット長最適化処理は、共有メモリ12からパケット長分のデータ(パケット)を読み出して送信するデータ転送処理が実行される際に、主にパケット長最適化処理部153によって実行される。
パケット長最適化処理部153は、タイムテーブル142から現在の最適パケットによる共有メモリ12からの読出し時間を取得する(ステップS201)。具体的には、パケット長最適化処理部153は、タイムテーブル142の最適パケット長に登録されているパケット長を読み出し、読み出したパケット長に関連付けられてタイムテーブル142のパケット読出し時間に登録されているデータ読出し時間(パケット読出し時間)を読み出す。たとえば、最適パケット長に登録されているパケット長が512バイトであれば、512バイトのパケット長に関連付けられたパケット読出し時間を読み出し、最適パケット長に登録されているパケット長が256バイトであれば、256バイトのパケット長に関連付けられたパケット読出し時間を読み出す。
一方、データ転送処理を実行しているデータ転送処理部152は、パケットの転送時間を計測し(ステップS202)、計測した転送時間を最適パケット長のパケット長に関連付けられたパケット転送時間に登録する。具体的には、データ転送処理部152は、上述したパケット転送処理において、転送カウンタのカウント値が予め定められた値になった時のパケットの送信開始から送信終了までの時間を計測し、計測した転送時間を最適パケット長のパケット長に関連付けられたパケット転送時間に登録する。
タイムテーブル142のパケット転送時間に転送時間が登録された後、パケット長最適化処理部153は、タイムテーブル142に登録されたパケット転送時間を読み出し、読み出したパケット転送時間と、ステップS201によって取得したパケット読み出し時間とを比較する(ステップS203)。パケット読み出し時間がパケット転送時間より大きい場合(ステップS203,Yes)、パケット長最適化処理部153は、上記(式1)によってトータル時間を算出する(ステップS204)。すなわち、パケット長最適化処理部153は、タイムテーブル142に登録されているパケット転送回数と、タイムテーブル142の最適パケット長に登録されているパケット長に関連付けられたパケット読み出し時間およびパケット転送時間を用いて、「{(パケット読出し時間)×(パケット転送回数)}+(パケット転送時間)」を算出し、算出した値をトータル時間とする。
パケット長最適化処理部153は、タイムテーブル142の最適パケット長に登録されているパケット長に関連付けられた過去トータル時間を読み出し、読み出した過去トータル時間と算出したトータル時間とを比較する(ステップS205)。過去トータル時間が算出したトータル時間以下の場合(ステップS205,No)、パケット長最適化処理部153は、過去に現在と同じ時間または短い時間でデータ読出し・転送が行われたと判断し、最適パケット長を更新することなく処理を終了する。
過去トータル時間が算出したトータル時間より大きい場合(ステップS205,Yes)、パケット長最適化処理部153は、現在の方が過去よりも短い時間でデータの読出し・転送を行うことができると判断し、タイムテーブル142の最適パケット長に登録されたパケット長に関連付けられた過去トータル時間に算出したトータル時間を登録する(ステップS206)。
パケット長最適化処理部153は、新たなパケット長を算出する(ステップS207)。具体的には、パケットの読出し時間がパケットの転送時間よりも大きいので、パケット長最適化処理部153は、予め定められた定数mで現在の最適パケット長を除算した値を新たなパケット長とする。
パケット長最適化処理部153は、算出した新たなパケット長をタイムテーブル142の最適パケット長に登録する(ステップS208)。また、算出したパケット長によって要求されたデータを転送する際のパケット転送回数を算出し、算出したパケット転送回数をタイムテーブル142のパケット転送回数に登録し、ステップS201の処理に戻る。
一方、パケット読み出し時間がパケット転送時間以下の場合(ステップS203,No)、パケット長最適化処理部153は、パケット転送時間がパケット読出し時間より大きいか否かを判定する(ステップS209)。パケット転送時間がパケット読出し時間以下の場合(上述したステップS203の判定から、この場合はパケット転送時間とパケット読出し時間とが等しい場合となる)、パケット長最適化処理部153は、現在の最適パケット長が最も短時間でデータが転送できると判断し、最適パケット長を更新することなく処理を終了する。
パケット転送時間がパケット読出し時間より大きい場合、パケット長最適化処理部153は、パケット長最適化処理部153は、上記(式2)によってトータル時間を算出する(ステップS210)。すなわち、パケット長最適化処理部153は、タイムテーブル142に登録されているパケット転送回数と、タイムテーブル142の最適パケット長に登録されているパケット長に関連付けられたパケット読み出し時間およびパケット転送時間を用いて、「(パケット読出し時間)+{(パケット転送時間)×(パケット転送回数)}」を算出し、算出した値をトータル時間とする。
パケット長最適化処理部153は、タイムテーブル142の最適パケット長に登録されているパケット長に関連付けられた過去トータル時間を読み出し、読み出した過去トータル時間と算出したトータル時間とを比較する(ステップS211)。過去トータル時間が算出したトータル時間以下の場合、パケット長最適化処理部153は、過去に現在と同じ時間または短い時間でデータ読出し・転送が行われたと判断し、最適パケット長を更新することなく処理を終了する。
過去トータル時間が算出したトータル時間より小さい場合、パケット長最適化処理部153は、現在の方は過去よりも短い時間でデータの読出し・転送を行うことができると判断し、タイムテーブル142の最適パケット長に登録されたパケット長に関連付けられた過去トータル時間に算出したトータル時間を登録する(ステップS212)。
パケット長最適化処理部153は、新たなパケット長を算出する(ステップS213)。具体的には、パケットの転送時間がパケットの読出し時間よりも大きいので、パケット長最適化処理部153は、予め定められた定数mを現在の最適パケット長に乗算した値を新たなパケット長とする。パケット長最適化処理部153は、算出した新たなパケット長をタイムテーブル142の最適パケット長に登録する(ステップS214)。また、算出したパケット長によって要求されたデータを転送する際のパケット転送回数を算出し、算出したパケット転送回数をタイムテーブル142のパケット転送回数に登録し、ステップS201の処理に戻る。
なお、図3のフローチャートを参照して説明したデータ転送処理、および図4のフローチャートを参照して説明したパケット長最適化処理は、その説明を簡単にするために、共有メモリ12からのデータ読出しおよび送信のみ最適パケット長を用いる場合について説明したが、キャッシュメモリ13からのデータ読出しおよび送信についても最適パケット長を用いた転送を行うようにしてもよい。
この場合、共有メモリ12に対するタイムテーブル142とキャッシュメモリ13に対するタイムテーブル142とを備え、共有メモリ12へのアクセス時には共有メモリ12に対応するタイムテーブル142を用いてデータ転送処理およびパケット長最適化処理を行ない、キャッシュメモリ13へのアクセス時にはキャッシュメモリ13に対するタイムテーブル142を用いてデータ転送処理およびパケット長最適化処理を行なうようにすればよい。
つぎに、図5〜図8を参照して、異なるCPUボードから同一アドレスの共有メモリ12からの512バイトのデータ読出し要求を受けた場合を例に挙げて、従来のデータ転送による情報処理システムによるデータ転送と、本発明の情報処理システムによるデータ転送を比較する。
まず、図5を参照して従来の情報処理システムの構成を説明する。図5において、従来の情報処理システムは、メモリボード1000と、複数(この場合は3つ)のCPUボード2000−1〜2000−3とが、バス3000によって接続されている。
メモリボード1000は、バス3000を介してCPUボード2000−1〜2000−3と接続するインターフェース機能を有するインターフェース部(以下、I/F部という)1100と、CPUボード2000−1〜2000−3の処理に要するデータを記憶する共有メモリ1300と、CPUボード2000−1〜2000−3からの要求に応じて共有メモリ1300にアクセスしてデータの書き込み・読み出し、読み出したデータをI/F部1100を介して要求元のCPUボード2000−1〜2000−3に送信する制御部1200とを備えている。制御部1200は予め定められたデータ長、すなわち固定長のパケットで要求元のCPUボード2000−1〜2000−3にデータを送信する。
CPUボード2000−1〜2000−3は、バス3000を介してメモリボード1000と接続するI/F部2100、メモリボード1000に搭載されている共有メモリ1300に記憶されているデータの一部を記憶するキャッシュメモリ2400、共有メモリ1300に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報、自身に搭載されているキャッシュメモリ2400に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報等の各種情報が登録される管理テーブル2300、およびCPU(図示せず)とこのCPUが実行するプログラムが格納される記憶手段(図示せず)とを有し所望の処理を実行するとともに、管理テーブル2300に基づいてキャッシュメモリ2400のヒット判定を行って共有メモリ1300にアクセス要求を行うか否かを選択する制御部2200とを備えている。
つぎに、図6を参照して従来の情報処理システムの動作を説明する。共有メモリ1300に記憶されているデータにアクセスを要する場合、CPUボード2000−1の制御部2200は、管理テーブル2300に基づいてキャッシュメモリ2400に必要なデータが記憶されているか否かを判定する。ここでは、該当データがキャッシュメモリ2400に記憶されていないため、制御部2200は、メモリボード1000にデータ読出し要求を送信する。
データ読出し要求を受けるとメモリボード1000の制御部1200が共有メモリ1300にアクセスして6.5MB/secでデータを読み出す。制御部1200は、読み出したデータを20MHzでCPUボード2000−1に送信する。
一方、共有メモリ1300に記憶されているデータにアクセスを要する場合、CPUボード2000−2の制御部2200は、管理テーブル2300に基づいてキャッシュメモリ2400に必要なデータが記憶されているか否かを判定する。キャッシュメモリに記憶されていない場合、メモリボード1000にデータ読出し要求を送信する。ここでは、該当データがキャッシュメモリ2400に記憶されていないため、制御部2200は、メモリボード1000にデータ読出し要求を送信する。しかし、CPUボード2000−1がメモリボード1000にデータ読出し要求を送信してから要求したデータを受信するまでの間、CPUボード2000−1がバス3000を専有しており、CPUボード2000−2はバス権を取得することができず、待ち合わせ時間が発生する。
CPUボード2000−2は、バス権を取得するとデータ読出し要求をメモリボード1000に送信する。データ読出し要求を受けるとメモリボード1000の制御部1200が共有メモリ1300にアクセスして6.5MB/secでデータを読み出す。すなわち、CPUボード2000−1からの要求されたデータと同一のデータを再度共有メモリ1300から読み出す。制御部1200は、読み出したデータを20MHzでCPUボード2000−2に送信する。
これに対して、図7を参照して本発明の情報処理システムの動作を説明する。本発明の情報処理システムでは、CPUボード2−1が共有メモリ12のデータを読み出したい場合、データ読出し要求をメモリボード1に送信する。メモリボード1の制御部15は、ヒット判定を行いミスヒットであると判定した場合、共有メモリ12にアクセスして最適パケット長分のデータを読み出してキャッシュメモリ13に記憶させるとともに最適パケット長分のデータをCPUボード2−1に送信するデータ転送処理を行なうとともに、パケット長最適化処理を行なう。
一方、CPUボード2−2が共有メモリ12のデータを読み出したい場合、メモリボード1の制御部15がヒット判定を行っている間バス3は開放されており、CPUボード2−2からのデータ読出し要求を受け付けることが可能であり、その要求を保持する。
メモリボード1のキャッシュメモリ13には、CPUボード2−1へのデータの送信が終了した際には送信したデータが記憶され、管理テーブル141も更新されている。よって、保持していたCPUボード2−2からのデータ読出し要求によって要求されたデータがCPUボード2−1からのデータ読出し要求によって要求されたデータと同一データの場合、保持していたCPUボード2−2からのデータ読出し要求によって要求されたデータはヒット判定によってヒットとなる。したがって、制御部15は、共有メモリ12にアクセスすることなく、キャッシュメモリ13にアクセスしてデータを読み出して転送する。
このように、従来の情報処理システムでは、異なるCPUボード2000−1〜2000−3から同一のデータを要求するデータ読出し要求が送信された場合でも、データ読出し要求毎に共有メモリ1300にアクセスしてデータを読出して送信しなければならないが、本発明の情報処理システムでは、最初のデータ読出し要求を実行する場合のみ共有メモリ12にアクセスしてデータを読出して送信し、その後のデータ読出し要求を実行する場合にはキャッシュメモリ13にアクセスしてデータを読出し送信することができる。すなわち、共有メモリ12からの再読み出しが不要となる。一般的に、共有メモリ12へのアクセス時間よりもキャッシュメモリ13へのアクセス時間のほうが短い。よって、データ読出し要求毎に共有メモリ12にアクセスする従来の情報処理システムよりもデータ読出し要求に対する処理時間を短縮することが可能となる。
つぎに、図8を参照して、従来の情報処理システムと本発明の情報処理システムとをデータ読出し要求による処理時間に着目して比較する。従来の情報処理システムでは、最初のデータ読出し要求(先の図6におけるCPUボード2000−1からのデータ読出し要求)によって共有メモリ1300から512バイトのデータを6.5MByte/secで読み出しており、データの読出し時間は約78.77μsecを要している。その後、読み出したデータの転送に約30μsecを要している。つぎのデータ読出し要求(先の図6におけるCPUボード2000−2からのデータ読出し要求)によって再度共有メモリ1300から512バイトのデータを6.5MByte/secで読み出しており、データの読出し時間は約78.77μsecを要している。その後、読み出したデータの転送に約30μsecを要している。よって、異なるCPUボード2000−1,2000−2からの同一アドレスのデータ読出し要求によるデータの読出しおよび転送に約217.54μsecを要している。
これに対して、本発明の情報処理システムでは、最適パケット長を16バイトとし、パケット転送時間がパケット転送時間より大きいとすると、最初のデータ読出し要求(先の図7におけるCPUボード2−1からのデータ読出し要求)によって共有メモリ12から512バイトのデータを読み出して転送するトータル時間は、パケット読出し時間をaとし、パケット転送時間をbとすると、「a×32+b」となる。ここで、パケット読出し時間aを約2.46μsecとし、パケット転送時間bを約1.75μsecとすると、トータル時間は、約80.47μsecであり、トータルのデータ読出し時間は「a×32」となり従来の情報処理システムによる共有メモリからのデータ読出し時間とほぼ等しくなる。よって、最初のデータ読出し要求によって「30μsec−b」、すなわち約28.25μsec短縮されている。
さらにつぎのデータ読出し要求(先の図7におけるCPUボード2−2からのデータ読出し要求)は、共有メモリ12にアクセスすることなくキャッシュメモリ13からデータを読み出して転送する。共有メモリ12からアクセスと比較してキャッシュメモリ13へのアクセス時間はきわめて短く、従来の情報処理システムと同様の転送を行っても約30μsecで転送することが可能である。よって、異なるCPUボードからの同一アドレスのデータ読出し要求によるデータの読出しおよび転送の時間は約110.52μsecとなり、従来の情報処理システムと比較して約49%短縮している。
以上説明したように、この実施例においては、メモリボード1は、予め定められた複数のパケット長毎に当該パケット長に関連付けて共有メモリ12から当該パケット長のデータであるパケットを共有メモリ12から読み出すパケット読出し時間と、過去に共有メモリ12から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、この最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブル142を記憶する制御情報記憶部14を備え、データ転送処理部152は、タイムテーブル142の最適パケット長分のパケット毎に共有メモリ12から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを共有メモリ12から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測し、パケット長最適化処理部153は、パケット読出し時間がパケット転送時間よりも大きい場合には、パケット読出し時間にパケット転送回数を乗算した値にパケットの転送時間を加算した値をトータル時間とし、現在の最適パケット長を予め定められた定数で除算した値をタイムテーブル142の最適パケット長に登録し、パケット転送時間がパケット読出し時間よりも大きい場合には、パケット転送時間にパケット転送回数を乗算した値にパケットの読出し時間を加算した値をトータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値をタイムテーブル142の最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブル142のパケット転送回数に登録する。すなわち、並列処理されるパケット読出し時間とパケット転送時間との差が小さくなるようにパケット長を変更するようにしている。
これにより、共有メモリ12からのデータの読出しおよびデータ送信の時間が短縮されることによりバスの使用時間が短縮されるため、CPUボード2−1〜2−3がバスの使用権を取得するための待ち期間を短縮することができる。
また、この実施例においては、メモリボード1が共有メモリ12とキャッシュメモリ13とを備え、CPUボード2−1〜2−3から要求されたデータがキャッシュメモリ13に記憶されているか否かを判定するヒット判定をメモリボード1で行い、CPUボード2−1〜2−3から要求されたデータがキャッシュメモリ13に記憶されている場合にはキャッシュメモリ13からパケット毎にデータを読み出して順次送信し、CPUボード2−1〜2−3から要求されたデータがキャッシュメモリ13に記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、要求されたデータがキャッシュメモリ13に記憶されている場合にはキャッシュメモリ13からパケット毎にデータを読み出して順次送信し、CPUボード2−1〜2−3から要求されたデータがキャッシュメモリ13に記憶されていない場合には共有メモリ12からパケット毎にデータを読み出して順次送信するようにしているため、データ転送におけるパケット長を最適化だけでなく、異なるCPUボード2−1〜2−3から同一のデータの読み出しを要求された場合には、最初に実行するCPUボード2−1〜2−3の要求時のみ共有メモリ12からデータを読み出せばよく、以後の要求に対してはキャッシュメモリ13からデータを読み出すことが可能となり、データの読出し時間を削減しバスの使用権を取得するための待ち期間を短縮することができる。
なお、この実施例においては、タイムテーブル142を共有メモリ12に対して1つとして説明したが、各CPUボード2−1〜2−3毎に共有メモリ12に対するタイムテーブル142を備えるようにしてもよい。この場合、データ転送処理およびパケット長最適化処理において、要求元であるCPUボード2−1〜2−3に対応するタイムテーブル142を用いるようにすればよい。
また、この実施例においては、パス型のトポロジーによってメモリボード1とCPUボード2−1〜2−3を接続する構成に付いて説明したが、メモリボード1とCPUボード2−1〜2−3との接続はこれに限るものではなく、スター型のトポロジーなど様々な形態に展開した構成によってメモリボード1とCPUボード2−1〜2−3を接続するようにもよい。
さらに、この実施例では、メモリボード1にキャッシュメモリ13を備える構成としたが、従来の情報処理システムと同様にCPUボードにそれぞれキャッシュメモリを備えた場合でも、メモリボード1の共有メモリ12からのデータ転送において本発明のデータ転送処理およびパケット長最適化処理を用いるようにしてもよい。この場合、先の図3を参照して説明したデータ転送処理におけるステップS101〜S107のキャッシュメモリ13に関するビット判定処理および読出し・転送処理がなくなり、共有メモリ12からの最適パケット長によるパケット単位での読出しおよび送信処理のみを行なえばよい。
以上のように、本発明にかかるデータ転送装置および情報処理システムは、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮し、データの転送時間を短縮することができるデータ転送装置および情報処理システムに有用である。
1,1000 メモリボード
2−1,2−2,2−3,2000−1,2000−2,2000−3 CPUボード
3,3000 バス
11,21,1100,2100 I/F部
12,1300 共有メモリ
13,2400 キャッシュメモリ
14 制御情報記憶部
15,22,2200 制御部
141,2300 管理テーブル
142 タイムテーブル
151 レジスタ
152 データ転送処理部
153 パケット長最適化処理部
2−1,2−2,2−3,2000−1,2000−2,2000−3 CPUボード
3,3000 バス
11,21,1100,2100 I/F部
12,1300 共有メモリ
13,2400 キャッシュメモリ
14 制御情報記憶部
15,22,2200 制御部
141,2300 管理テーブル
142 タイムテーブル
151 レジスタ
152 データ転送処理部
153 パケット長最適化処理部
Claims (5)
- 各種処理を実行する複数の処理モジュールとバスによって接続され、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置において、
前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、
を備えることを特徴とするデータ転送装置。 - 予め定められた複数のパケット長毎に当該パケット長に関連付けて記憶手段から当該パケット長のデータであるパケットを前記記憶手段から読み出すパケット読出し時間と、過去に前記記憶手段から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、該最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブルを記憶する制御情報記憶手段、
をさらに備え、
前記制御手段は、
前記タイムテーブルの最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測するデータ転送処理手段と、
前記最適パケット長が示すパケット長に関連付けられてタイムテーブルに登録されているパケット読出し時間およびパケット転送回数と、前記データ転送処理手段によって計測されたパケット転送時間に基づいてトータル転送時間を算出し、算出したトータル転送時間が前記タイムテーブルに登録された過去トータル時間より小さい場合に、前記パケット読出し時間と計測したパケット転送時間との差が小さくなるように前記タイムテーブルに登録された最適パケット長を変更するパケット長最適化処理手段と、
を備えることを特徴とする請求項1に記載のデータ転送装置。 - 前記パケット長最適化処理手段は、
前記パケット読出し時間が前記パケット転送時間よりも大きい場合には、前記パケット読出し時間に前記パケット転送回数を乗算した値に前記パケットの転送時間を加算した値を前記トータル時間とし、現在の最適パケット長を予め定められた定数で除算した値を前記タイムテーブルの最適パケット長に登録し、前記パケット転送時間が前記パケット読出し時間よりも大きい場合には、前記パケット転送時間に前記パケット転送回数を乗算した値に前記パケットの読出し時間を加算した値を前記トータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値を前記タイムテーブルの最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブルのパケット転送回数に登録すること、
を特徴とする請求項2に記載のデータ転送装置。 - 各種処理を実行する複数の処理モジュールと、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置とがバスによって接続される情報処理システムにおいて、
前記データ転送装置は、
前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、
を備えることを特徴とする情報処理システム。 - 前記記憶手段は、
前記前記処理モジュールが処理に要する全てのデータを記憶する共有メモリと、
前記共有メモリが記憶するデータの一部を記憶するキャッシュメモリと、
を備え、
前記制御手段は、
前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されているか否かを判定するヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には前記共有メモリからパケット毎にデータを読み出して順次送信すること、
を特徴とする請求項4に記載の情報処理システム。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007069510A JP2008234059A (ja) | 2007-03-16 | 2007-03-16 | データ転送装置および情報処理システム |
| EP20080002884 EP1970815A1 (en) | 2007-03-16 | 2008-02-15 | Data transfering apparatus and information processing system |
| US12/074,058 US20080225858A1 (en) | 2007-03-16 | 2008-02-29 | Data transferring apparatus and information processing system |
| CN2008100864164A CN101266591B (zh) | 2007-03-16 | 2008-03-14 | 数据传送装置和信息处理系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007069510A JP2008234059A (ja) | 2007-03-16 | 2007-03-16 | データ転送装置および情報処理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008234059A true JP2008234059A (ja) | 2008-10-02 |
Family
ID=39618830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007069510A Withdrawn JP2008234059A (ja) | 2007-03-16 | 2007-03-16 | データ転送装置および情報処理システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20080225858A1 (ja) |
| EP (1) | EP1970815A1 (ja) |
| JP (1) | JP2008234059A (ja) |
| CN (1) | CN101266591B (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012169037A1 (ja) * | 2011-06-09 | 2012-12-13 | 三菱電機株式会社 | プログラマブルコントローラシステム |
| JP2013251719A (ja) * | 2012-05-31 | 2013-12-12 | Hitachi Ltd | 通信装置、及び、通信方法 |
| KR20180106698A (ko) * | 2017-03-21 | 2018-10-01 | 엘에스산전 주식회사 | 고전압 직류 송전 시스템 |
| JP2020177274A (ja) * | 2019-04-15 | 2020-10-29 | 富士通株式会社 | ストレージ装置、ストレージシステムおよびプログラム |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8863139B2 (en) * | 2011-04-12 | 2014-10-14 | Hitachi, Ltd. | Management system and management method for managing a plurality of storage subsystems |
| CN106790599B (zh) * | 2016-12-29 | 2019-06-28 | 中国人民解放军国防科学技术大学 | 一种基于多核无锁环形缓冲区的共生虚拟机通信方法 |
| US10466911B2 (en) * | 2017-12-18 | 2019-11-05 | Western Digital Technologies, Inc. | Method using logical based addressing for latency reduction |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2015514C (en) * | 1989-08-22 | 1996-08-06 | Mitsuru Tsuboi | Packet switching system having bus matrix switch |
| JP3528094B2 (ja) | 1994-02-09 | 2004-05-17 | 株式会社日立製作所 | バス利用方法および記憶制御装置 |
| JPH07282023A (ja) | 1994-04-06 | 1995-10-27 | Hitachi Ltd | データ転送量可変プロセッサ及びそれを用いたシステム |
| JP3875749B2 (ja) * | 1996-08-08 | 2007-01-31 | 富士通株式会社 | マルチプロセッサ装置及びそのメモリアクセス方法 |
| JP2001101126A (ja) * | 1999-07-09 | 2001-04-13 | Canon Inc | 装置間のデータ通信方法及びそのシステム |
| US6615308B1 (en) * | 1999-12-09 | 2003-09-02 | Intel Corporation | Method and apparatus for regulating write burst lengths |
| US7398335B2 (en) | 2004-11-22 | 2008-07-08 | Qlogic, Corporation | Method and system for DMA optimization in host bus adapters |
| JP2006318139A (ja) * | 2005-05-11 | 2006-11-24 | Matsushita Electric Ind Co Ltd | データ転送装置、データ転送方法およびプログラム |
| CN100407182C (zh) * | 2005-07-19 | 2008-07-30 | 威盛电子股份有限公司 | 用于在数据传送中排序事务处理节拍的装置和方法 |
| JP2007172008A (ja) * | 2005-12-19 | 2007-07-05 | Sony Corp | 情報処理システム、受信装置、およびプログラム |
-
2007
- 2007-03-16 JP JP2007069510A patent/JP2008234059A/ja not_active Withdrawn
-
2008
- 2008-02-15 EP EP20080002884 patent/EP1970815A1/en not_active Withdrawn
- 2008-02-29 US US12/074,058 patent/US20080225858A1/en not_active Abandoned
- 2008-03-14 CN CN2008100864164A patent/CN101266591B/zh not_active Expired - Fee Related
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2012169037A1 (ja) * | 2011-06-09 | 2012-12-13 | 三菱電機株式会社 | プログラマブルコントローラシステム |
| JP5523630B2 (ja) * | 2011-06-09 | 2014-06-18 | 三菱電機株式会社 | プログラマブルコントローラシステム |
| JP2013251719A (ja) * | 2012-05-31 | 2013-12-12 | Hitachi Ltd | 通信装置、及び、通信方法 |
| KR20180106698A (ko) * | 2017-03-21 | 2018-10-01 | 엘에스산전 주식회사 | 고전압 직류 송전 시스템 |
| KR101977404B1 (ko) | 2017-03-21 | 2019-05-13 | 엘에스산전 주식회사 | 고전압 직류 송전 시스템 |
| JP2020177274A (ja) * | 2019-04-15 | 2020-10-29 | 富士通株式会社 | ストレージ装置、ストレージシステムおよびプログラム |
| JP7323769B2 (ja) | 2019-04-15 | 2023-08-09 | 富士通株式会社 | ストレージ装置、ストレージシステムおよびプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US20080225858A1 (en) | 2008-09-18 |
| CN101266591A (zh) | 2008-09-17 |
| EP1970815A1 (en) | 2008-09-17 |
| CN101266591B (zh) | 2010-06-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9037810B2 (en) | Pre-fetching of data packets | |
| CN108595350B (zh) | 一种基于axi的数据传输方法和装置 | |
| JP2008234059A (ja) | データ転送装置および情報処理システム | |
| CN107943726A (zh) | 一种基于PCIe接口的数据传输系统及方法 | |
| US10585642B2 (en) | System and method for managing data in a ring buffer | |
| JP2002084311A (ja) | パケット転送処理装置 | |
| CN118885216A (zh) | 指令调度装置及方法 | |
| US7490201B2 (en) | Method and bus prefetching mechanism for implementing enhanced buffer control | |
| US8230137B2 (en) | Network processor, reception controller and data reception processing method performing direct memory access transfer | |
| KR20190112020A (ko) | 데이터 처리 | |
| US20080320176A1 (en) | Prd (physical region descriptor) pre-fetch methods for dma (direct memory access) units | |
| CN115658625B (zh) | 数据解压系统、图形处理系统、装置、设备及解压方法 | |
| JP2001318902A (ja) | キャッシュ装置 | |
| CN100452007C (zh) | 直接内存存取处理单元的实体区域描述元预取方法 | |
| JP4212508B2 (ja) | パケット生成装置 | |
| JP2010079536A (ja) | メモリアクセス制御回路、メモリアクセス制御方法 | |
| TWI760715B (zh) | 藉助於交易辨識碼之屬性來控制資料回應的方法以及系統 | |
| KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
| US8239652B2 (en) | Data processing system | |
| JP2002024007A (ja) | プロセッサシステム | |
| CN113448899B (zh) | 借助于交易辨识码的属性来控制数据响应的方法以及系统 | |
| JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
| JP3183250B2 (ja) | キュー管理システム | |
| CN119718980A (zh) | 基于单端口sram的直接内存访问装置、方法、设备及介质 | |
| CN118069570A (zh) | 一种门铃式芯片访问系统、装置和方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091208 |
|
| A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20111024 |