JP4780333B2 - データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム - Google Patents

データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム Download PDF

Info

Publication number
JP4780333B2
JP4780333B2 JP2007101025A JP2007101025A JP4780333B2 JP 4780333 B2 JP4780333 B2 JP 4780333B2 JP 2007101025 A JP2007101025 A JP 2007101025A JP 2007101025 A JP2007101025 A JP 2007101025A JP 4780333 B2 JP4780333 B2 JP 4780333B2
Authority
JP
Japan
Prior art keywords
data
host
prefetch
memory
page size
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.)
Active
Application number
JP2007101025A
Other languages
English (en)
Other versions
JP2008257596A (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 Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007101025A priority Critical patent/JP4780333B2/ja
Publication of JP2008257596A publication Critical patent/JP2008257596A/ja
Application granted granted Critical
Publication of JP4780333B2 publication Critical patent/JP4780333B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明はデータプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラムに関し、ページ境界を自律的に判断しプリフェッチを制御するデータプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラムに関する。
従来、この種のデータプリフェッチデバイスはコンピュータシステムにおいてI/Oとメモリ間のデータ転送の高速化を実現するために用いられている。従来のデータプリフェッチデバイスを用いたコンピュータシステムの一例が特許文献1に記載されている。
図7を参照すると、特許文献1に記載されたコンピュータシステムの形態は、CPU11と、メモリ12と、それぞれのバスを相互に接続するホストブリッジ15と、CPU11とホストブリッジ15とを接続するCPUバス13と、メモリ12とホストブリッジ15とを接続するメモリバス14と、I/Oデバイス(以下、I/Oという)17-1〜17-3と、I/O17-1〜17-3とホストブリッジ15とを接続するI/Oバス16-1〜16-3とを含む。
図7に示したコンピュータシステムでは、ホストブリッジ15がデータプリフェッチデバイスの機能を実行し、I/O17-1〜17-3が発行するメモリ12に対するリード要求のプリフェッチを行うことで、I/O17-1〜17-3とメモリ12間のデータ転送の高速化を実現する。
今、ホストがI/O17-1のDirect Memory Access (DMA)動作を設定したとする。I/O17-1はメモリ12に対し、ホストに指定されたアドレスをリードする要求を送信する。ホストブリッジ15は、I/O17-1から受信したリード要求をメモリ12に転送すると同時に、リード要求のアドレスの値に+1したアドレスに対するプリフェッチを行う。続いて、I/O17-1がアドレスが連続する次のリード要求を発行すると、ホストブリッジ15はプリフェッチしておいたデータをI/O17-1に送信すると共に、さらに次の+1したアドレスに対してプリフェッチを行う。このようにして、I/O17-1〜17-3とメモリ12間のデータ転送の高速化が実現される。
ここでブレードサーバなど、個々のコンポーネントを別々のボードやカードに実装する形態では、図8に示すように、ホストブリッジ15とI/O17-3の物理的な距離が隔たっている場合がある。この場合、I/Oバス16-3とI/Oバス16-4との間でかつI/O17-3の付近に、I/O17-3のメモリ12へのリード要求を更にプリフェッチするデータプリフェッチデバイス81を用いることが有効である。また、一度のDMA動作で、メモリ12の連続するアドレスに対し多量のデータをリードするI/O17-3に対しては、データプリフェッチデバイス81はリード要求のアドレスの値に+1したアドレスに対してだけでなく、更にその先のアドレスもまとめてプリフェッチすることが望ましい。
しかし、データプリフェッチデバイス81はホストからは透過であるため、コンピュータシステムにおいて標準的に用いられているソフトウェアでは、メモリ12で用いられているページサイズを知ることができない。従って、メモリ12に対しページ境界を越えるデータのプリフェッチを行った場合、システムバスエラーを発生させる可能性がある。
これは、コンピュータシステムではメモリ12にはページ単位でデータが組み込まれており、その組み込みは動的であって、ある時点で全てのアドレスに対応するページがメモリ12に組み込まれているわけではないからである。
特開2001-84216号公報(図1)
第1の問題点は、I/Oバスの途中でI/Oのメモリに対するリードのプリフェッチを行う場合、システムバスエラーを発生させることである。
その理由は、従来のデータプリフェッチデバイスは、メモリで用いられているページサイズを知ることができず、ページ境界を越えるプリフェッチを行うからである。
第2の問題点は、データプリフェッチデバイスにページサイズを通知する場合、ソフトウェアやホストブリッジの変更が必要なことである。
その理由は、従来のコンピュータシステムではデータプリフェッチデバイスを想定しておらず、従ってデータプリフェッチデバイスにページサイズを通知する場合、特別なソフトウェアやホストブリッジを設計する必要があるためである。
本発明の第1の目的は、メモリのページ境界を判断し、システムバスエラーを発生させないようにデータのプリフェッチを制御するデータプリフェッチデバイスを提供することにある。
本発明の第2の目的は、コンピュータシステムのソフトウェアやホストブリッジに変更を加えることなく、メモリのページ境界を判断するデータプリフェッチデバイスを提供することにある。
本発明のデータプリフェッチデバイスは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得するページサイズ調査手段と、
取得した前記ページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始するデータプリフェッチ手段と、
を備えたことを特徴とする
また本発明のデータプリフェッチデバイスは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチデバイス
本発明のデータプリフェッチ方法は、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とする
また本発明のデータプリフェッチ方法は、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とする
本発明のデータプリフェッチプログラムは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とする
また本発明のデータプリフェッチプログラムは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とする
本発明の第1の効果は、システムバスエラーを起こさずデータプリフェッチができることにある。
その理由は、メモリで用いられているページサイズを保持し、メモリに対するリード要求のプリフェッチにおいて、ページサイズの境界を越えないようにし、次のページに対応するデータのプリフェッチは、そのページに対するリード要求を受信した後に開始するためである。
本発明の第2の効果は、本発明に係わるコンピュータシステムでは、コンピュータシステムのソフトウェアやホストブリッジに変更を加えることなくメモリで用いられているページサイズを取得できることにある。
その理由は、データプリフェッチデバイスはI/Oデバイスのコンフィグレーションレジスタに登録された、メモリで用いられているページサイズをホストを疑似して自律的にリードし取得するためである。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、本発明を実施するための第1の実施の形態のコンピュータシステムの構成を示すブロック図である。
図1に示すコンピュータシステムは、CPU11と、メモリ12と、それぞれのバスを相互に接続するホストブリッジ15と、CPU11とホストブリッジ15とを接続するCPUバス13と、メモリ12とホストブリッジ15とを接続するメモリバス14と、I/Oデバイス(以下、I/Oという)17-1〜17-3と、I/O17-1,17-2とホストブリッジ15とを接続するI/Oバス16-1,16-2と、データプリフェッチデバイス18と、ホストブリッジ15とデータプリフェッチデバイス18とを接続するI/Oバス16-3と、データプリフェッチデバイス18とI/O17-3とを接続するI/Oバス16-4を含んでいる。
図1を参照すると、データプリフェッチデバイス18は、コンピュータシステムに組み込まれ、I/Oバス16-3とI/Oバス16-4とに接続し、I/O17-3がメモリ12からリードするデータのプリフェッチを行う。このときデータプリフェッチデバイス18は、ホストに対しては透過となる。
データプリフェッチデバイス18は、I/Oバス16-3を通過するホストが発行したデータからホストのIDを調査するホスト情報調査部181と、ホストのIDを保持するホスト情報記憶部182と、メモリ12で用いられているページサイズをI/O17-3から取得するページサイズ調査部183と、ページサイズを記憶するページサイズ記憶部184と、ページ境界を越えない範囲でデータのプリフェッチを行うデータプリフェッチ部185と、プリフェッチしたデータを記憶するデータ記憶部186とを含む。データプリフェッチデバイスの各構成部は専用ICを用いて構成することができる。複数の構成部を1つのICで構成することもできる。
I/O17-1〜17-3は、ホストに対しデバイス情報を提供し、デバイスの制御を受け付けるコンフィグレーションレジスタ171-1〜171-3を含む。
コンフィグレーションレジスタ171-1〜171-3のフィールドの1つは、ホストがメモリ12で用いられているページサイズを登録する領域である。これはI/O17-3のリソースをメモリマップする際、マップする領域をページサイズに揃えるためである。
ページサイズ調査部183は、ホストがコンフィグレーションレジスタ171-3に対するライトによりデバイス設定が終了した後、ホスト情報記憶部182に記載されたホストのIDを用いることでホストからのアクセスを疑似し、コンフィグレーションレジスタ171-3のページサイズが登録されたフィールドをリードし、ページサイズ記憶部182に記載する。このとき、必要に応じてホストからI/O17-3へのアクセスは遮断して記憶し、ページサイズを取得した後にまとめてそれらのアクセスを再開する。
データプリフェッチ部185は、I/O17-3のメモリ12に対するリード要求を受信すると、リード要求のアドレスがプリフェッチしたデータの領域か確認し、該当領域であれば、該当データをプリフェッチしたデータが格納されたデータ記憶部186から読み出し、I/O17-3に返信する。一方、リード要求のアドレスがプリフェッチしたデータの該当領域ではない場合、I/O17-3のリード要求を転送すると同時に、後のアドレスをプリフェッチするリード要求をメモリ12に送信する。このとき、ページサイズ記憶部184に記載されたページサイズを参照し、プリフェッチがページ境界を越えないように制御する。従って、データプリフェッチ部185は、ページ境界においてメモリ12からのデータのフェッチを停止し、次のページに対するリード要求をI/O17-3から受信した段階で、再び次のページのアドレスに対するデータのプリフェッチを開始する。I/O17-3から受信したリード要求がページ境界までの全てのデータを要求する場合、データプリフェッチ部185はデータのプリフェッチを行わない。また、データプリフェッチ部185は、I/O17-3のメモリ12に対するリード要求に関連しないデータは、単にI/O17-3とメモリ12の間であて先へ転送を行う。
次に、図1〜図3を参照して本発明を実施するための第1の実施の形態の動作について詳細に説明する。
まず、図1及び図2を参照してホストによるI/O17-3のコンフィグレーション時にデータプリフェッチデバイス18がホストのID及びページサイズを取得する動作を説明する。
ホストによるI/O17-3のコンフィグレーションが開始されると(ステップ201)、コンフィグレーションに関するデータがI/Oバス16-3とI/Oバス16-316-4とを流れる。
ホスト情報調査部181はデータプリフェッチデバイス18を通過するデータから、ホストのID情報を検出し(ステップ202)、ホスト情報記憶部182に登録する(ステップ203)。ホストによるI/O17-3のコンフィグレーションが完了すると(ステップ204)、ページサイズ調査部183はホストからI/O17-3へのアクセスを一時遮断しアクセスを記憶しておく(ステップ205)。続いてページサイズ調査部183は、ホスト情報記憶部182に登録されているホストのIDを用いてホストを疑似し、コンフィグレーションレジスタ171-3に登録されているページサイズを読み取り(ステップ206)、ページサイズ記憶部184に登録する(ステップ207)。最後にステップ205で遮断したアクセスを再開する(ステップ208)。以上の動作により、データプリフェッチデバイス18はホストID及びページサイズを取得する。
次に図1及び図3を参照して、I/O17-3がメモリ12に対してリードするデータのプリフェッチを、データプリフェッチデバイス18が行う場合の動作を説明する。
データプリフェッチ部185が、I/O17-3からメモリ12に対するリード要求を受信すると(ステップ301)、リード要求があったアドレスのデータを既にプリフェッチ済みか調べる(ステップ302)。既にプリフェッチ済みだった場合、データプリフェッチ部185がメモリ12に要求したデータが既にデータ記憶部186に格納されている場合と、受信待ちの場合がある(ステップ303)。該当データがデータ記憶部186に既に格納されている場合、データプリフェッチ部185は該当データをリードし、I/O17-3に返信する(ステップ304)。一方受信待ちだった場合、データプリフェッチ部185は、メモリ12が該当データを返信するまで待機し(ステップ312)、プリフェッチデータを受信すると(ステップ313)、I/O17-3から要求があったアドレス範囲に該当するデータを返信する(ステップ314)。
また、ステップ302においてI/O17-3からリード要求があったアドレスのデータがプリフェッチ済みでない場合、リード要求がページ境界までの全てのデータを要求しているか調べる(ステップ305)。ページ境界までの全てのデータを要求している場合、データプリフェッチ部185はI/O17-3の要求をメモリ12に転送し、データプリフェッチは行わない(ステップ306)。データプリフェッチ部305は転送したI/O17-3のリード要求に対する応答をメモリ12から受信すると、受信データをI/O17-3に転送する(ステップ307)。
一方、ステップ305において、I/O17-3がページ境界までのデータを要求しない場合、データプリフェッチ部185はI/O17-3のリード要求をメモリ12に転送し、続いてリード要求のアドレスの後のアドレスに対応するデータを、最大同ページの境界までプリフェッチする要求をメモリ12に送信する。データプリフェッチ部185は、メモリ12から、まず転送したI/O17-3のリード要求に対する応答を受信し、I/O17-3に転送する(ステップ310)。続いて、プリフェッチしたデータを受信し、データ記憶部186に格納する(ステップ311)。
次に、本発明を実施するための第1の実施の形態の効果について説明する。
本発明の第1の実施の形態では、ホストによるI/Oのコンフィグレーション完了時に、データプリフェッチデバイスがホストを疑似して、I/Oのコンフィグレーションレジスタからページサイズを取得し、I/Oがメモリからリードするデータのプリフェッチは、最大でI/Oから要求されたデータが存在するページのページ境界までとし、次のページに該当するデータのプリフェッチは、I/Oから次のページへのリード要求を実際に受信した後で行う。
このため、コンピュータシステムのソフトウェアやホストブリッジに変更を加えることなく、データプリフェッチデバイスがページ境界を自律的に判断し、システムバスエラーを起こさずに効率的なメモリ、I/O間のデータ転送ができる。
なお、本実施の形態ではページサイズ調査部183がコンフィグレーションレジスタ171-3に登録されているページサイズを読み取る構成を示したが、ページサイズ調査部183は、ホストによるI/O17-3のコンフィグレーション時に、ホストがコンフィグレーションレジスタ171-3に書き込むデータがデータプリフェッチデバイス18を通過する際に、データに含まれるページサイズを取得することも可能である(以下の第2の実施の形態においても同様である)。また、その際、取得したデータがホストが発行したものであるかホスト情報記憶部182に格納されているホストのID情報から確認することが可能である。
[第2の実施の形態]
次に、本発明を実施するための第2の実施の形態について図面を参照して詳細に説明する。
図4を参照すると、本発明の第2の実施の形態であるデータプリフェッチデバイス41はコンピュータシステムに組み込まれ、I/Oバス16-3とI/Oバス16-4に接続し、I/O17-3がメモリ12からリードするデータのプリフェッチを行う。
データプリフェッチデバイス41は、データ処理を行うCPU411と、データを記憶するデータ記憶部412と、CPU411にデータプリフェッチデバイス41の処理を行わせるデータプリフェッチデバイスプログラム413とを含む。
データプリフェッチデバイスプログラム413はCPU411に読み込まれ、図1に示した第1の実施の形態におけるホスト情報記憶部182と、ページサイズ記憶部184と、データ記憶部186に対応するデータを、それぞれホスト情報記憶部4121と、ページサイズ記憶部4122と、プリフェッチデータ記憶部4123とに記憶する。CPU411は、データプリフェッチデバイスプログラム413の制御により、図2及び図3を用いて説明した第1の実施の形態におけるホスト情報調査部181と、ページサイズ調査部183と、データプリフェッチ部185と同様の処理を行う。データプリフェッチデバイスプログラム413はCPU411とは別に設けられたROM等の記憶部に記憶されてもよい。
次に、本発明の第1の実施例を、図面を参照して説明する。かかる実施例は本発明を実施するための第1の実施の形態に対応するものである。図5は本発明の第1の実施例に係わるデータプリフェッチデバイスを含むコンピュータシステムを説明するための図である。
図5の構成を図1と対比させて説明すると、本実施例のデータプリフェッチデバイス58はホスト情報調査部181としてホスト情報調査部581を、ホスト情報記憶部182としてホスト情報記憶部582を、ページサイズ調査部183としてページサイズ調査部583を、ページサイズ記憶部184としてページサイズ記憶部584を、データプリフェッチ部185としてデータプリフェッチ部585を、データ記憶部186としてデータ記憶部586とを含む。また、I/Oバス16-1〜I/Oバス16-4はPCI-SIG (PCI Special Interest Group)で標準化されているPCIe (PCI Express)規格に従うPCIeバス56-1〜56-4であり、I/O57-1〜57-3はコンフィグレーションレジスタ171-1〜171-3としてPCIeコンフィグレーションレジスタ571-1〜571-3を含む。
今、コンピュータシステムの電源が投入されたとすると、ホストによりシステムのコンフィグレーションが開始される。ホストからはデータプリフェッチデバイス58は見えず、ホストブリッジ55とI/O57-3が直接接続されているように認識される。I/O57-3のコンフィグレーションでは、ホストがコンフィグレーションリードTLP(Transaction Layer Packet)を用いてPCIeコンフィグレーションレジスタ571-3に登録されているデバイス情報をリードする。このとき、これらのTLPはデータプリフェッチデバイス58を通過する。よってホスト情報調査部581は、通過するTLPからホストのIDであるバス番号、デバイス番号、ファンクション番号の組み合わせを取得し、ホスト情報記憶部582にライトする。一方、ホストはコンフィグレーションリードTLPによりI/O571-3のデバイス情報を取得した後、それらの情報に基づき、コンフィグレーションライトTLPを用いてPCIeコンフィグレーションレジスタ571-3にライトすることで、I/O57-3のコンフィグレーションを完了する。
ページサイズ調査部583は、これら一連のホストによるコンフィグレーションが完了すると、ホスト側からI/O17-3へのTLPを一時遮断する。続いて、ホスト情報記憶部182に登録されたホストのIDであるバス番号、デバイス番号、ファンクション番号の組み合わせを用いてコンフィグレーションリードTLPを作成し、コンフィグレーションレジスタ171-3のページサイズが登録されているフィールドをリードし、取得した情報をページサイズ記憶部584に登録する。最後に、ページサイズ調査部583は遮断していたホストからのアクセスを再開し、I/O57-3に転送する。以上の動作によりデータプリフェッチデバイス58は自律的にページサイズを取得する。
次に、通常の動作時においてデータプリフェッチデバイス58が、I/O57-3からDMAによりメモリ52のデータのリードを要求するメモリリードTLPを受信したとする。データプリフェッチ部585は、メモリリードTLPのアドレス領域が、すでにデータプリフェッチ部585がプリフェッチ要求を行った領域と一致するか調べる。プリフェッチ要求を行った領域と一致し、かつ、該当データがデータ記憶部586に既に格納されている場合、データプリフェッチ部585は該当データをリードし、I/O57-3に返信する。一方プリフェッチ要求を行ったものの、メモリ52からの返信待ちの場合、データプリフェッチ部585は該当データを受信するまで待機し、データを受信した後、I/O57-3のメモリリードTLPに該当するアドレス範囲のデータを応答TLPとしてI/O57-3に返信する。
また、I/O57-3のメモリリードTLPのアドレス領域が、すでにデータプリフェッチ部585がプリフェッチ要求を行った領域と一致しない場合、データプリフェッチ部585はメモリリードTLPがページ境界までの全てのデータを要求しているか調べる。このとき、ページサイズ記憶部584にはページサイズが登録されているため、その情報をもとに判断する。例えばページサイズが4KBのシステムでは、メモリリードTLPが4KBの区切りとなるアドレスまでの全てのデータを要求する場合、ページ境界までのデータを要求していることとなる。このとき、データプリフェッチ部585はプリフェッチを行わず、I/O57-3のメモリリードTLPのみをメモリ52に転送し、その応答TLPを受信した場合はI/O57-3に転送する。
一方I/O57-3のメモリリードTLPがページ境界までの全てのデータを要求しない場合、データプリフェッチ部585はまず、I/O57-3のメモリリードTLPをメモリ52に転送し、続いてメモリリードTLPの要求アドレスの後のアドレスに該当するデータを、最大I/O57-3が要求したデータが存在するページのページ境界までプリフェッチする。その後、データプリフェッチ部585はメモリ52からまず、I/O57-3のメモリリードリクエストに対する応答TLPを受信し、これをI/O57-3に転送する。続いてデータプリフェッチ要求の応答に該当するデータはデータ記憶部586に格納し、後からI/O57-3がメモリリードTLPによりデータを要求する場合に備える。
次に本発明の第2の実施例を、図面を参照して説明する。かかる実施例は本発明を実施するための第2の実施の形態に対応するものである。
図6を参照すると、本実施例のデータプリフェッチデバイス61はCPU411としてCPU611を、データ記憶部412としてデータ記憶部612を、データプリフェッチデバイスプログラム413としてデータプリフェッチデバイスプログラム613を、ホスト情報記憶部4121としてホスト情報記憶部6121を、ページサイズ記憶部4122としてページサイズ記憶部6122を、プリフェッチデータ記憶部4123としてプリフェッチデータ記憶部6123とを含む。
データプリフェッチデバイスプログラム613はCPU611に読み込まれ、図5に示した第1の実施例におけるホスト情報記憶部582と、ページサイズ記憶部584と、データ記憶部586に対応するデータをそれぞれホスト情報記憶部6121と、ページサイズ記憶部6122と、プリフェッチデータ記憶部6123とに生成する。CPU611は、データプリフェッチデバイスプログラム613の制御により、第1の実施例におけるホスト情報調査部581と、ページサイズ調査部583と、データプリフェッチ部585と同様の処理を行う。
以上説明した実施例では、I/Oのレジスタからページ情報を読み込む構成を述べたが、ホストがそれらのレジスタに情報を書き込む際、データプリフェッチデバイス58、61を通過する関連する情報からページサイズを取得することも可能である。
また、以上説明した各実施例及び各実施形態のコンピュータシステムには、ホストブリッジを設けているが、ホストブリッジを設けず、CPU、メモリ、データプリフェッチデバイスを直接バスで接続してもよい。
本発明によれば、コンピュータシステムやネットワークシステムの内部コンポーネントを相互に接続するバスのデータ転送高速化といった用途に適用できる。また、コンピュータシステムやネットワークシステムにおいて物理的に分離したコンポーネントを相互に接続するバスやインターコネクトのデータ転送高速化といった用途に適用できる。
本発明の第1の実施の形態の構成を示すブロック図である。 本発明の第1の実施の形態の動作を示す流れ図である。 本発明の第1の実施の形態の動作を示す流れ図である。 本発明の第2の実施の形態の構成を示すブロック図である。 本発明の第1の実施例を説明するための図である。 本発明の第2の実施例を説明するための図である。 従来技術を説明するための図である。 従来技術を説明するための図である。
符号の説明
11 CPU
12 メモリ
13 CPUバス
14 メモリバス
15 ホストブリッジ
16-1〜16-4 I/Oバス
17-1〜17-3 I/O
18 データプリフェッチデバイス
41 データプリフェッチデバイス
51 CPU
52 メモリ
53 CPUバス
54 メモリバス
55 ホストブリッジ
56-1〜56-4 I/Oバス
57-1〜57-3 I/O
58 データプリフェッチデバイス
61 データプリフェッチデバイス
81 データプリフェッチデバイス
171-1〜171-3 コンフィグレーションレジスタ
181 ホスト情報調査部
182 ホスト情報記憶部
183 ページサイズ調査部
184 ページサイズ記憶部
185 データプリフェッチ部
186 データ記憶部
411 CPU
412 データ記憶部
413 データプリフェッチデバイスプログラム
4121 ホスト情報記憶部
4122 ページサイズ記憶部
4123 プリフェッチデータ記憶部

Claims (34)

  1. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
    ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得するページサイズ調査手段と
    取得した前記ページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始するデータプリフェッチ手段と、
    を備えたことを特徴とするデータプリフェッチデバイス。
  2. ホストからI/Oデバイスのコンフィグレーションレジスタに送信されるデータから、前記ホストを識別する識別子を検出するホスト情報調査手段をさらに備え、
    前記ページサイズ調査手段が、検出した前記識別子を用いて前記ホストを擬似し、前記コンフィグレーションレジスタから前記メモリのページサイズを読み取ることを特徴とする請求項1に記載のデータプリフェッチデバイス。
  3. 取得した前記ページサイズを保持するページサイズ記憶手段をさらに備え、
    前記データプリフェッチ手段が、前記ページサイズ記憶手段で保持されたページサイズを参照し、前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始することを特徴とする請求項2に記載のデータプリフェッチデバイス。
  4. 前記ページサイズ調査手段は、前記ホストから前記コンフィグレーションレジスタへのアクセスを中断し、検出した前記識別子を用いて前記ホストを擬似し、前記コンフィグレーションレジスタから前記メモリのページサイズを読み取り、前記ページサイズを読み取り後に前記アクセスを再開することを特徴とする請求項2又は3に記載のデータプリフェッチデバイス。
  5. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
    ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチデバイス。
  6. ホストのIDを保持するホスト情報記憶手段と、
    前記ページサイズ調査手段は、前記ホスト情報記憶手段で保持されたIDを用いて、I/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得することを特徴とする請求項に記載のデータプリフェッチデバイス。
  7. ホストのIDを保持するホスト情報記憶手段と、
    前記ページサイズ調査手段は、前記ホスト情報記憶手段で保持されたIDを用いて、I/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得することを特徴とする請求項に記載のデータプリフェッチデバイス。
  8. ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得するページサイズ調査手段と、
    前記ページサイズで規定される前記メモリのページ境界を越えないようデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始するデータプリフェッチ手段と、
    を備えたことを特徴とする請求項に記載のデータプリフェッチデバイス。
  9. ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得するページサイズ調査手段を備え、
    取得されたページサイズは前記ページサイズ記憶手段に保持されることを特徴とする請求項に記載のデータプリフェッチデバイス。
  10. 前記ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータが、ホストが発行したデータであることを確認するため、予め保持しているホストのIDを参照することを特徴とする請求項5、8、9のいずれか1項に記載のデータプリフェッチデバイス。
  11. 前記メモリで用いられているページサイズは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項5、8〜10のいずれか1項に記載のデータプリフェッチデバイス。
  12. 前記ホスト情報記憶手段に登録されたホストのIDは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項又はに記載のデータプリフェッチデバイス。
  13. 前記データプリフェッチデバイスに接続されるバスの規格がPCIエクスプレスに従うことを特徴とする請求項1〜12のいずれか1項に記載のデータプリフェッチデバイス。
  14. 請求項1から13のいずれか1項に記載のデータプリフェッチデバイスと、該データプリフェッチデバイスにより読み出されるデータを記憶するメモリと、CPUとを備えたコンピュータシステム。
  15. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
    ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチ方法。
  16. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
    ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチ方法。
  17. ホストからI/Oデバイスのコンフィグレーションレジスタに送信されるデータから、前記ホストを識別する識別子を検出し、
    検出した前記識別子を用いて前記ホストを擬似し、前記コンフィグレーションレジスタから前記メモリのページサイズを読み取ることを特徴とする請求項15に記載のデータプリフェッチ方法。
  18. 取得した前記ページサイズを保持し、
    保持された前記ページサイズを参照し、前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始することを特徴とする請求項17に記載のデータプリフェッチ方法。
  19. 前記ホストから前記コンフィグレーションレジスタへのアクセスを中断し、検出した前記識別子を用いて前記ホストを擬似し、前記コンフィグレーションレジスタから前記メモリのページサイズを読み取り、前記ページサイズを読み取り後に前記アクセスを再開することを特徴とする請求項17又は18に記載のデータプリフェッチ方法。
  20. 前記ホストの疑似では、ホストのIDを用いて前記コンフィグレーションレジスタに対するリードを発行することを特徴とする請求項15に記載のデータプリフェッチ方法。
  21. 前記ホストのIDは、前記データプリフェッチデバイスを通過するホストが発行したデータから取得することを特徴とする請求項20に記載のデータプリフェッチ方法。
  22. 前記ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータが、ホストが発行したデータであることを確認するため、予め保持しているホストのIDを参照することを特徴とする請求項16に記載のデータプリフェッチ方法。
  23. 前記メモリで用いられているページサイズは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項16に記載のデータプリフェッチ方法。
  24. 前記データプリフェッチがPCIエクスプレスの規格に基づいて行われることを特徴とする請求項15〜23のいずれか1項に記載のデータプリフェッチ方法。
  25. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
    ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とするデータプリフェッチプログラム。
  26. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
    ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とするデータプリフェッチプログラム。
  27. ホストからI/Oデバイスのコンフィグレーションレジスタに送信されるデータから、前記ホストを識別する識別子を検出し、
    検出した前記識別子を用いて前記ホストを擬似し、前記コンフィグレーションレジスタから前記メモリのページサイズを読み取ることを特徴とする請求項25に記載のデータプリフェッチプログラム。
  28. 取得した前記ページサイズを保持し、保持された前記ページサイズを参照し、前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始することを特徴とする請求項27に記載のデータプリフェッチプログラム。
  29. 前記ホストから前記コンフィグレーションレジスタへのアクセスを中断し、検出した前記識別子を用いて前記ホストを擬似し、前記コンフィグレーションレジスタから前記メモリのページサイズを読み取り、前記ページサイズを読み取り後に前記アクセスを再開することを特徴とする請求項27又は28に記載のデータプリフェッチプログラム。
  30. 前記処理の前にホストのIDを保持する他の処理を前記コンピュータに実行させ、
    前記処理でのページサイズの取得は、前記IDを用いて行われる請求項25に記載のデータプリフェッチプログラム。
  31. 前記IDは、コンピュータを通過するホストが発行したデータから取得したものであることを特徴とする請求項30に記載のデータプリフェッチプログラム。
  32. 前記ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータが、ホストが発行したデータであることを確認するため、予め保持しているホストのIDを参照することを特徴とする請求項26に記載のデータプリフェッチプログラム。
  33. 前記メモリで用いられているページサイズは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項26に記載のデータプリフェッチプログラム。
  34. 前記データプリフェッチプログラムは、PCIエクスプレスの規格に従って動作することを特徴とする請求項25〜33のいずれか1項に記載のデータプリフェッチプログラム。
JP2007101025A 2007-04-06 2007-04-06 データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム Active JP4780333B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007101025A JP4780333B2 (ja) 2007-04-06 2007-04-06 データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007101025A JP4780333B2 (ja) 2007-04-06 2007-04-06 データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム

Publications (2)

Publication Number Publication Date
JP2008257596A JP2008257596A (ja) 2008-10-23
JP4780333B2 true JP4780333B2 (ja) 2011-09-28

Family

ID=39981084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007101025A Active JP4780333B2 (ja) 2007-04-06 2007-04-06 データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム

Country Status (1)

Country Link
JP (1) JP4780333B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2015092973A1 (ja) 2013-12-17 2017-03-16 日本電気株式会社 情報処理装置及びトラフィック制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2626568B2 (ja) * 1994-07-27 1997-07-02 日本電気株式会社 データ転送制御装置
JP2000215149A (ja) * 1999-01-25 2000-08-04 Canon Inc 複合機器の制御装置
JP2001084216A (ja) * 1999-09-16 2001-03-30 Nec Eng Ltd データプリフェッチシステム、プリフェッチ方法、記録媒体
JP2006185000A (ja) * 2004-12-27 2006-07-13 Hitachi Ltd ストレージ装置
CN100557584C (zh) * 2005-06-09 2009-11-04 Nxp股份有限公司 用于对网络和存储器进行耦合的存储器控制器和方法

Also Published As

Publication number Publication date
JP2008257596A (ja) 2008-10-23

Similar Documents

Publication Publication Date Title
KR102466353B1 (ko) SSD 스토리지의 NVMe 명령간 연관을 위한 시스템 및 방법
CN101751371B (zh) 在不同种类处理单元中对非统一存储器访问的芯片组支持
EP3204862B1 (en) Emulated endpoint configuration
CN100592271C (zh) 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法
JP6753412B2 (ja) コンピュータ、デバイス割当管理方法及びプログラム
US20060004935A1 (en) Multi-protocol bridge
EP2480977A1 (en) Mapping non-prefetchable storage locations into memory mapped input/output space
CN105335309B (zh) 一种数据传输方法及计算机
CN101751352B (zh) 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持
US20100042579A1 (en) Generating and/or receiving, at least in part, at least one data access request
JP2014041618A (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
US6915365B2 (en) Mechanism for PCI I/O-initiated configuration cycles
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
CN109983749B (zh) 计算设备和提高数据传递速度的方法
US6820149B2 (en) Method, system, and program for testing a bus interface
CN114003168B (zh) 用于处理命令的存储设备和方法
US20080155222A1 (en) Computer system
TWI791134B (zh) 通信裝置、資訊處理系統及通信方法
JP4780333B2 (ja) データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム
CN113778934B (zh) 基于PCIe的高速实时传输系统
US6119191A (en) Performing PCI access cycles through PCI bridge hub routing
CN101676894B (zh) 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法
JP2008503834A (ja) 並列通信バスを介して割り込みメッセージを伝送するためのコンピュータシステムおよび方法
CN110399322B (zh) 一种数据传输方法及乒乓dma架构
JP6037029B2 (ja) データ転送装置、情報処理装置及びio制御方法

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100902

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110509

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: 20110608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110621

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

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4780333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150