JP2008257596A - Data pre-fetch device, data pre-fetch method, and data pre-fetch program - Google Patents

Data pre-fetch device, data pre-fetch method, and data pre-fetch program Download PDF

Info

Publication number
JP2008257596A
JP2008257596A JP2007101025A JP2007101025A JP2008257596A JP 2008257596 A JP2008257596 A JP 2008257596A JP 2007101025 A JP2007101025 A JP 2007101025A JP 2007101025 A JP2007101025 A JP 2007101025A JP 2008257596 A JP2008257596 A JP 2008257596A
Authority
JP
Japan
Prior art keywords
data
prefetch
memory
page
host
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.)
Granted
Application number
JP2007101025A
Other languages
Japanese (ja)
Other versions
JP4780333B2 (en
Inventor
Jun Suzuki
順 鈴木
Shinji Kami
伸治 加美
Yoichi Tobitaka
洋一 飛鷹
Takashi Yoshikawa
隆士 吉川
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/en
Publication of JP2008257596A publication Critical patent/JP2008257596A/en
Application granted granted Critical
Publication of JP4780333B2 publication Critical patent/JP4780333B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To achieve the high speed operation of data transfer between an I/O and a memory without adding a change to the software or host bridge of a computer system without causing a system bus error. <P>SOLUTION: A page size investigation part 183 autonomously reads a page size registered in a configuration register 171-3 held by an I/O 17-3 by simulating a host. When receiving a read request to a memory 12 of the I/O 17-3, a data pre-fetch part 185 performs pre-fetch to the page boundary of a page where requested data exists to the maximum, and performs pre-fetch to the data pertinent to the next page after receiving a read request to the next page from the I/O. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明はデータプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラムに関し、ページ境界を自律的に判断しプリフェッチを制御するデータプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラムに関する。   The present invention relates to a data prefetch device, a data prefetch method, and a data prefetch program, and more particularly to a data prefetch device, a data prefetch method, and a data prefetch program that autonomously determine page boundaries and control prefetch.

従来、この種のデータプリフェッチデバイスはコンピュータシステムにおいてI/Oとメモリ間のデータ転送の高速化を実現するために用いられている。従来のデータプリフェッチデバイスを用いたコンピュータシステムの一例が特許文献1に記載されている。   Conventionally, this type of data prefetch device is used in a computer system to realize high-speed data transfer between an I / O and a memory. An example of a computer system using a conventional data prefetch device is described in Patent Document 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とを含む。   Referring to FIG. 7, the form of the computer system described in Patent Document 1 includes a CPU 11, a memory 12, a host bridge 15 that connects each bus, and a CPU bus that connects the CPU 11 and the host bridge 15. 13, a memory bus 14 that connects the memory 12 and the host bridge 15, I / O devices (hereinafter referred to as I / O) 17-1 to 17-3, I / O 17-1 to 17-3 and the host I / O buses 16-1 to 16-3 connecting the bridge 15 are included.

図7に示したコンピュータシステムでは、ホストブリッジ15がデータプリフェッチデバイスの機能を実行し、I/O17-1〜17-3が発行するメモリ12に対するリード要求のプリフェッチを行うことで、I/O17-1〜17-3とメモリ12間のデータ転送の高速化を実現する。   In the computer system shown in FIG. 7, the host bridge 15 executes the function of the data prefetch device and prefetches the read request for the memory 12 issued by the I / Os 17-1 to 17-3, so that the I / O17- Realizes high-speed data transfer between 1-17-3 and memory 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間のデータ転送の高速化が実現される。   Assume that the host has set the direct memory access (DMA) operation of I / O 17-1. The I / O 17-1 transmits a request for reading an address designated by the host to the memory 12. The host bridge 15 transfers the read request received from the I / O 17-1 to the memory 12, and at the same time, performs prefetch for an address that is +1 to the read request address value. Subsequently, when the I / O 17-1 issues the next read request with consecutive addresses, the host bridge 15 sends the prefetched data to the I / O 17-1, and further sets the next +1 address. On the other hand, prefetch is performed. In this way, high-speed data transfer between the I / Os 17-1 to 17-3 and the memory 12 is realized.

ここでブレードサーバなど、個々のコンポーネントを別々のボードやカードに実装する形態では、図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したアドレスに対してだけでなく、更にその先のアドレスもまとめてプリフェッチすることが望ましい。   Here, in a form in which individual components such as blade servers are mounted on separate boards and cards, the physical distance between the host bridge 15 and the I / O 17-3 may be separated as shown in FIG. In this case, data prefetch that further prefetches a read request to the memory 12 of the I / O 17-3 between the I / O bus 16-3 and the I / O bus 16-4 and in the vicinity of the I / O 17-3. Use of the device 81 is effective. In addition, for I / O 17-3 that reads a large amount of data from consecutive addresses in the memory 12 in a single DMA operation, the data prefetch device 81 applies to the address added to the value of the read request address. In addition to the above, it is desirable to prefetch the addresses after that.

しかし、データプリフェッチデバイス81はホストからは透過であるため、コンピュータシステムにおいて標準的に用いられているソフトウェアでは、メモリ12で用いられているページサイズを知ることができない。従って、メモリ12に対しページ境界を越えるデータのプリフェッチを行った場合、システムバスエラーを発生させる可能性がある。   However, since the data prefetch device 81 is transparent from the host, the software used as standard in the computer system cannot know the page size used in the memory 12. Therefore, when prefetching of data exceeding the page boundary is performed on the memory 12, a system bus error may occur.

これは、コンピュータシステムではメモリ12にはページ単位でデータが組み込まれており、その組み込みは動的であって、ある時点で全てのアドレスに対応するページがメモリ12に組み込まれているわけではないからである。
特開2001-84216号公報(図1)
In the computer system, data is incorporated in the memory 12 in units of pages, and the incorporation is dynamic, and pages corresponding to all addresses are not incorporated in the memory 12 at a certain point in time. Because.
JP 2001-84216 A (Fig. 1)

第1の問題点は、I/Oバスの途中でI/Oのメモリに対するリードのプリフェッチを行う場合、システムバスエラーを発生させることである。   The first problem is that a system bus error occurs when prefetching a read to the I / O memory in the middle of the I / O bus.

その理由は、従来のデータプリフェッチデバイスは、メモリで用いられているページサイズを知ることができず、ページ境界を越えるプリフェッチを行うからである。   The reason is that the conventional data prefetch device cannot know the page size used in the memory, and performs prefetch exceeding the page boundary.

第2の問題点は、データプリフェッチデバイスにページサイズを通知する場合、ソフトウェアやホストブリッジの変更が必要なことである。   The second problem is that when the page size is notified to the data prefetch device, the software or the host bridge needs to be changed.

その理由は、従来のコンピュータシステムではデータプリフェッチデバイスを想定しておらず、従ってデータプリフェッチデバイスにページサイズを通知する場合、特別なソフトウェアやホストブリッジを設計する必要があるためである。   The reason is that a conventional computer system does not assume a data prefetch device, and therefore it is necessary to design special software or a host bridge when notifying the data prefetch device of the page size.

本発明の第1の目的は、メモリのページ境界を判断し、システムバスエラーを発生させないようにデータのプリフェッチを制御するデータプリフェッチデバイスを提供することにある。   A first object of the present invention is to provide a data prefetch device that determines a page boundary of a memory and controls data prefetch so as not to cause a system bus error.

本発明の第2の目的は、コンピュータシステムのソフトウェアやホストブリッジに変更を加えることなく、メモリのページ境界を判断するデータプリフェッチデバイスを提供することにある。   It is a second object of the present invention to provide a data prefetch device that determines a page boundary of a memory without changing the software of a computer system or a host bridge.

本発明のデータプリフェッチデバイスは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とする。
The data prefetch device of the present invention is a data prefetch device that prefetches data from memory before the data is needed.
Data prefetching is performed so as not to cross the page boundary of the memory, and prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page.

また本発明のデータプリフェッチデバイスは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とする。
The data prefetch device of the present invention is a data prefetch device that prefetches data from memory before the data is needed.
Simulate the host to obtain the page size used in the memory from the configuration register of the I / O device, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, The prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page.

本発明のデータプリフェッチ方法は、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とする。
The data prefetch method of the present invention is a data prefetch method for prefetching data from a memory before the data is needed.
Data prefetching is performed so as not to cross the page boundary of the memory, and prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page.

また本発明のデータプリフェッチ方法は、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とする。
The data prefetch method of the present invention is a data prefetch method for prefetching data from memory before the data is needed.
Simulate the host to obtain the page size used in the memory from the configuration register of the I / O device, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, The prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page.

本発明のデータプリフェッチプログラムは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させるデータプリフェッチプログラムである。
The data prefetch program of the present invention is a data prefetch program for causing a computer to execute data prefetch for prefetching data from memory before the data is required.
Data prefetch is performed so as not to cross the page boundary of the memory, and the prefetch of data corresponding to the next page causes the computer to execute processing that starts after receiving a read request for data corresponding to the next page Data prefetch program.

また本発明のデータプリフェッチプログラムは、データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とするデータプリフェッチプログラムである。
The data prefetch program of the present invention is a data prefetch program for causing a computer to execute data prefetch for prefetching data from memory before the data is required.
Simulate the host to obtain the page size used in the memory from the configuration register of the I / O device, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, The prefetching of data corresponding to the next page is a data prefetching program that causes the computer to execute a process that starts after receiving a read request for data corresponding to the next page.

本発明の第1の効果は、システムバスエラーを起こさずデータプリフェッチができることにある。   The first effect of the present invention is that data prefetch can be performed without causing a system bus error.

その理由は、メモリで用いられているページサイズを保持し、メモリに対するリード要求のプリフェッチにおいて、ページサイズの境界を越えないようにし、次のページに対応するデータのプリフェッチは、そのページに対するリード要求を受信した後に開始するためである。   The reason for this is that the page size used in the memory is retained and the read request prefetch for the memory is not crossed over the page size boundary, and the prefetch of data corresponding to the next page is a read request for that page. This is because it starts after receiving.

本発明の第2の効果は、本発明に係わるコンピュータシステムでは、コンピュータシステムのソフトウェアやホストブリッジに変更を加えることなくメモリで用いられているページサイズを取得できることにある。   The second effect of the present invention is that the computer system according to the present invention can acquire the page size used in the memory without changing the software of the computer system or the host bridge.

その理由は、データプリフェッチデバイスはI/Oデバイスのコンフィグレーションレジスタに登録された、メモリで用いられているページサイズをホストを疑似して自律的にリードし取得するためである。   The reason is that the data prefetch device autonomously reads and obtains the page size used in the memory registered in the configuration register of the I / O device by simulating the host.

次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
[第1の実施の形態]
図1は、本発明を実施するための第1の実施の形態のコンピュータシステムの構成を示すブロック図である。
Next, the best mode for carrying out the present invention will be described in detail with reference to the drawings.
[First Embodiment]
FIG. 1 is a block diagram showing a configuration of a computer system according to the first embodiment for carrying out the present invention.

図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を含んでいる。   The computer system shown in FIG. 1 includes a CPU 11, a memory 12, a host bridge 15 that connects the respective buses, a CPU bus 13 that connects the CPU 11 and the host bridge 15, and a memory 12 and a host bridge 15. Memory bus 14 to be connected, I / O devices (hereinafter referred to as I / O) 17-1 to 17-3, I / O bus 16 for connecting I / O 17-1, 17-2 and the host bridge 15 -1, 16-2, data prefetch device 18, I / O bus 16-3 connecting host bridge 15 and data prefetch device 18, and I connecting data prefetch device 18 and I / O 17-3. Includes / O bus 16-4.

図1を参照すると、データプリフェッチデバイス18は、コンピュータシステムに組み込まれ、I/Oバス16-3とI/Oバス16-4とに接続し、I/O17-3がメモリ12からリードするデータのプリフェッチを行う。このときデータプリフェッチデバイス18は、ホストに対しては透過となる。     Referring to FIG. 1, a data prefetch device 18 is incorporated in a computer system, connected to an I / O bus 16-3 and an I / O bus 16-4, and data read from the memory 12 by the I / O 17-3. Prefetch. At this time, the data prefetch device 18 is transparent to the host.

データプリフェッチデバイス18は、I/Oバス16-3を通過するホストが発行したデータからホストのIDを調査するホスト情報調査部181と、ホストのIDを保持するホスト情報記憶部182と、メモリ12で用いられているページサイズをI/O17-3から取得するページサイズ調査部183と、ページサイズを記憶するページサイズ記憶部184と、ページ境界を越えない範囲でデータのプリフェッチを行うデータプリフェッチ部185と、プリフェッチしたデータを記憶するデータ記憶部186とを含む。データプリフェッチデバイスの各構成部は専用ICを用いて構成することができる。複数の構成部を1つのICで構成することもできる。     The data prefetch device 18 includes a host information investigation unit 181 that examines a host ID from data issued by a host that passes through the I / O bus 16-3, a host information storage unit 182 that holds the host ID, and a memory 12 Page size survey unit 183 that acquires the page size used in I / O 17-3, page size storage unit 184 that stores the page size, and data prefetch unit that prefetches data within a range that does not exceed the page boundary 185 and a data storage unit 186 for storing prefetched data. Each component of the data prefetch device can be configured using a dedicated IC. A plurality of components can be configured by one IC.

I/O17-1〜17-3は、ホストに対しデバイス情報を提供し、デバイスの制御を受け付けるコンフィグレーションレジスタ171-1〜171-3を含む。     The I / Os 17-1 to 17-3 include configuration registers 171-1 to 171-3 that provide device information to the host and receive device control.

コンフィグレーションレジスタ171-1〜171-3のフィールドの1つは、ホストがメモリ12で用いられているページサイズを登録する領域である。これはI/O17-3のリソースをメモリマップする際、マップする領域をページサイズに揃えるためである。     One of the fields of the configuration registers 171-1 to 171-3 is an area for registering the page size used by the host in the memory 12. This is because when mapping the resources of I / O 17-3, the area to be mapped is aligned with the page size.

ページサイズ調査部183は、ホストがコンフィグレーションレジスタ171-3に対するライトによりデバイス設定が終了した後、ホスト情報記憶部182に記載されたホストのIDを用いることでホストからのアクセスを疑似し、コンフィグレーションレジスタ171-3のページサイズが登録されたフィールドをリードし、ページサイズ記憶部182に記載する。このとき、必要に応じてホストからI/O17-3へのアクセスは遮断して記憶し、ページサイズを取得した後にまとめてそれらのアクセスを再開する。     The page size checking unit 183 simulates access from the host by using the host ID described in the host information storage unit 182 after the device has been set by writing to the configuration register 171-3. The field in which the page size of the registration register 171-3 is registered is read and stored in the page size storage unit 182. At this time, if necessary, access from the host to the I / O 17-3 is blocked and stored, and after obtaining the page size, the access is resumed collectively.

データプリフェッチ部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の間であて先へ転送を行う。     When the data prefetch unit 185 receives a read request to the memory 12 of the I / O 17-3, the data prefetch unit 185 checks whether the address of the read request is a prefetched data area. The data is read from the data storage unit 186 and returned to the I / O 17-3. On the other hand, when the address of the read request is not the corresponding area of the prefetched data, the read request for prefetching the subsequent address is transmitted to the memory 12 at the same time as the read request of the I / O 17-3 is transferred. At this time, the page size described in the page size storage unit 184 is referred to and control is performed so that prefetch does not cross the page boundary. Therefore, the data prefetch unit 185 stops fetching data from the memory 12 at the page boundary, and when the read request for the next page is received from the I / O 17-3, the data prefetch unit 185 again prefetches the data for the address of the next page. To start. When the read request received from the I / O 17-3 requests all data up to the page boundary, the data prefetch unit 185 does not prefetch data. Further, the data prefetch unit 185 simply transfers data not related to the read request to the memory 12 of the I / O 17-3 between the I / O 17-3 and the memory 12.

次に、図1〜図3を参照して本発明を実施するための第1の実施の形態の動作について詳細に説明する。     Next, the operation of the first embodiment for carrying out the present invention will be described in detail with reference to FIGS.

まず、図1及び図2を参照してホストによるI/O17-3のコンフィグレーション時にデータプリフェッチデバイス18がホストのID及びページサイズを取得する動作を説明する。     First, the operation of the data prefetch device 18 for acquiring the host ID and page size when the host configures the I / O 17-3 will be described with reference to FIGS.

ホストによるI/O17-3のコンフィグレーションが開始されると(ステップ201)、コンフィグレーションに関するデータがI/Oバス16-3とI/Oバス16-316-4とを流れる。     When configuration of the I / O 17-3 by the host is started (step 201), data relating to the configuration flows through the I / O bus 16-3 and the I / O bus 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及びページサイズを取得する。   The host information examining unit 181 detects host ID information from the data passing through the data prefetch device 18 (step 202) and registers it in the host information storage unit 182 (step 203). When the configuration of the I / O 17-3 by the host is completed (step 204), the page size examining unit 183 temporarily blocks access from the host to the I / O 17-3 and stores the access (step 205). Subsequently, the page size checking unit 183 simulates the host using the host ID registered in the host information storage unit 182 and reads the page size registered in the configuration register 171-3 (step 206). Registration in the page size storage unit 184 (step 207). Finally, the access blocked at step 205 is resumed (step 208). With the above operation, the data prefetch device 18 acquires the host ID and the page size.

次に図1及び図3を参照して、I/O17-3がメモリ12に対してリードするデータのプリフェッチを、データプリフェッチデバイス18が行う場合の動作を説明する。     Next, with reference to FIGS. 1 and 3, the operation when the data prefetch device 18 performs prefetching of data read from the memory 12 by the I / O 17-3 will be described.

データプリフェッチ部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)。     When the data prefetch unit 185 receives a read request for the memory 12 from the I / O 17-3 (step 301), the data prefetch unit 185 checks whether the data at the address for which the read request has been already prefetched (step 302). When prefetching has already been performed, the data requested by the data prefetching unit 185 to the memory 12 may already be stored in the data storage unit 186 or may be waiting for reception (step 303). If the corresponding data is already stored in the data storage unit 186, the data prefetch unit 185 reads the corresponding data and returns it to the I / O 17-3 (step 304). On the other hand, when waiting for reception, the data prefetch unit 185 waits until the memory 12 returns the corresponding data (step 312), and when prefetch data is received (step 313), the address requested from the I / O 17-3. Data corresponding to the range is returned (step 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)。
In step 302, if the data at the address requested by the I / O 17-3 has not been prefetched, it is checked whether the read request requires all data up to the page boundary (step 305). If all the data up to the page boundary is requested, the data prefetch unit 185 transfers the I / O 17-3 request to the memory 12 and does not perform data prefetch (step 306). When the data prefetch unit 305 receives a response to the read request of the transferred I / O 17-3 from the memory 12, the data prefetch unit 305 transfers the received data to the I / O 17-3 (step 307).
On the other hand, if the I / O 17-3 does not request data up to the page boundary in step 305, the data prefetch unit 185 transfers the read request of the I / O 17-3 to the memory 12, and then after the address of the read request. A request for prefetching data corresponding to the address up to the boundary of the same page at maximum is transmitted to the memory 12. The data prefetch unit 185 first receives a response to the read request of the transferred I / O 17-3 from the memory 12, and transfers it to the I / O 17-3 (step 310). Subsequently, the prefetched data is received and stored in the data storage unit 186 (step 311).

次に、本発明を実施するための第1の実施の形態の効果について説明する。   Next, effects of the first exemplary embodiment for carrying out the present invention will be described.

本発明の第1の実施の形態では、ホストによるI/Oのコンフィグレーション完了時に、データプリフェッチデバイスがホストを疑似して、I/Oのコンフィグレーションレジスタからページサイズを取得し、I/Oがメモリからリードするデータのプリフェッチは、最大でI/Oから要求されたデータが存在するページのページ境界までとし、次のページに該当するデータのプリフェッチは、I/Oから次のページへのリード要求を実際に受信した後で行う。   In the first embodiment of the present invention, when the I / O configuration by the host is completed, the data prefetch device simulates the host, acquires the page size from the I / O configuration register, and the I / O The prefetch of data read from memory is limited to the page boundary of the page where the requested data from I / O exists, and the prefetch of the data corresponding to the next page is read from I / O to the next page. After the request is actually received.

このため、コンピュータシステムのソフトウェアやホストブリッジに変更を加えることなく、データプリフェッチデバイスがページ境界を自律的に判断し、システムバスエラーを起こさずに効率的なメモリ、I/O間のデータ転送ができる。   For this reason, the data prefetch device autonomously determines the page boundary without changing the computer system software or host bridge, and efficient data transfer between memory and I / O without causing system bus errors. it can.

なお、本実施の形態ではページサイズ調査部183がコンフィグレーションレジスタ171-3に登録されているページサイズを読み取る構成を示したが、ページサイズ調査部183は、ホストによるI/O17-3のコンフィグレーション時に、ホストがコンフィグレーションレジスタ171-3に書き込むデータがデータプリフェッチデバイス18を通過する際に、データに含まれるページサイズを取得することも可能である(以下の第2の実施の形態においても同様である)。また、その際、取得したデータがホストが発行したものであるかホスト情報記憶部182に格納されているホストのID情報から確認することが可能である。
[第2の実施の形態]
次に、本発明を実施するための第2の実施の形態について図面を参照して詳細に説明する。
In this embodiment, the page size checking unit 183 reads the page size registered in the configuration register 171-3. However, the page size checking unit 183 is configured to configure the I / O 17-3 by the host. It is also possible to acquire the page size included in the data when the data written to the configuration register 171-3 passes through the data prefetch device 18 during the configuration (also in the second embodiment below) The same). At this time, it is possible to confirm from the host ID information stored in the host information storage unit 182 whether the acquired data is issued by the host.
[Second Embodiment]
Next, a second embodiment for carrying out the present invention will be described in detail with reference to the drawings.

図4を参照すると、本発明の第2の実施の形態であるデータプリフェッチデバイス41はコンピュータシステムに組み込まれ、I/Oバス16-3とI/Oバス16-4に接続し、I/O17-3がメモリ12からリードするデータのプリフェッチを行う。   Referring to FIG. 4, a data prefetch device 41 according to the second embodiment of the present invention is incorporated in a computer system, connected to an I / O bus 16-3 and an I / O bus 16-4, and an I / O 17 -3 performs prefetch of data read from the memory 12.

データプリフェッチデバイス41は、データ処理を行うCPU411と、データを記憶するデータ記憶部412と、CPU411にデータプリフェッチデバイス41の処理を行わせるデータプリフェッチデバイスプログラム413とを含む。   The data prefetch device 41 includes a CPU 411 that performs data processing, a data storage unit 412 that stores data, and a data prefetch device program 413 that causes the CPU 411 to perform processing of the data prefetch device 41.

データプリフェッチデバイスプログラム413はCPU411に読み込まれ、図1に示した第1の実施の形態におけるホスト情報記憶部182と、ページサイズ記憶部184と、データ記憶部186に対応するデータを、それぞれホスト情報記憶部4121と、ページサイズ記憶部4122と、プリフェッチデータ記憶部4123とに記憶する。CPU411は、データプリフェッチデバイスプログラム413の制御により、図2及び図3を用いて説明した第1の実施の形態におけるホスト情報調査部181と、ページサイズ調査部183と、データプリフェッチ部185と同様の処理を行う。データプリフェッチデバイスプログラム413はCPU411とは別に設けられたROM等の記憶部に記憶されてもよい。   The data prefetch device program 413 is read by the CPU 411, and the data corresponding to the host information storage unit 182, page size storage unit 184, and data storage unit 186 in the first embodiment shown in FIG. The data is stored in the storage unit 4121, the page size storage unit 4122, and the prefetch data storage unit 4123. Under the control of the data prefetch device program 413, the CPU 411 is the same as the host information examining unit 181, the page size examining unit 183, and the data prefetch unit 185 in the first embodiment described with reference to FIGS. Process. The data prefetch device program 413 may be stored in a storage unit such as a ROM provided separately from the CPU 411.

次に、本発明の第1の実施例を、図面を参照して説明する。かかる実施例は本発明を実施するための第1の実施の形態に対応するものである。図5は本発明の第1の実施例に係わるデータプリフェッチデバイスを含むコンピュータシステムを説明するための図である。   Next, a first embodiment of the present invention will be described with reference to the drawings. Such an example corresponds to the first embodiment for carrying out the present invention. FIG. 5 is a diagram for explaining a computer system including a data prefetch device according to the first embodiment of the present invention.

図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を含む。   The configuration of FIG. 5 will be described in comparison with FIG. 1. In the data prefetch device 58 of this embodiment, the host information survey unit 581 is used as the host information survey unit 181, the host information storage unit 582 is used as the host information storage unit 182, and the page The size checking unit 183 includes a page size checking unit 583, the page size storing unit 184 includes a page size storing unit 584, the data prefetching unit 185 includes a data prefetching unit 585, and the data storing unit 186 includes a data storing unit 586. The I / O bus 16-1 to I / O bus 16-4 are PCIe buses 56-1 to 56-4 that conform to the PCIe (PCI Express) standard standardized by the PCI-SIG (PCI Special Interest Group). The I / Os 57-1 to 57-3 include PCIe configuration registers 571-1 to 571-3 as the configuration registers 171-1 to 171-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のコンフィグレーションを完了する。   Now, assuming that the computer system is powered on, system configuration is started by the host. The host cannot recognize the data prefetch device 58 and recognizes that the host bridge 55 and the I / O 57-3 are directly connected. In the configuration of the I / O 57-3, the host reads device information registered in the PCIe configuration register 571-3 using a configuration read TLP (Transaction Layer Packet). At this time, these TLPs pass through the data prefetch device 58. Therefore, the host information examining unit 581 acquires a combination of a bus number, a device number, and a function number, which is a host ID, from the passing TLP and writes it to the host information storage unit 582. On the other hand, after acquiring the device information of I / O 571-3 by the configuration read TLP, the host writes the I / O 571-3 to the PCIe configuration register 571-3 using the configuration write TLP based on the information. Complete configuration of O57-3.

ページサイズ調査部583は、これら一連のホストによるコンフィグレーションが完了すると、ホスト側からI/O17-3へのTLPを一時遮断する。続いて、ホスト情報記憶部182に登録されたホストのIDであるバス番号、デバイス番号、ファンクション番号の組み合わせを用いてコンフィグレーションリードTLPを作成し、コンフィグレーションレジスタ171-3のページサイズが登録されているフィールドをリードし、取得した情報をページサイズ記憶部584に登録する。最後に、ページサイズ調査部583は遮断していたホストからのアクセスを再開し、I/O57-3に転送する。以上の動作によりデータプリフェッチデバイス58は自律的にページサイズを取得する。   When the configuration by the series of hosts is completed, the page size examining unit 583 temporarily blocks TLP from the host side to the I / O 17-3. Subsequently, a configuration read TLP is created using a combination of the bus number, device number, and function number that is the host ID registered in the host information storage unit 182, and the page size of the configuration register 171-3 is registered. And the acquired information is registered in the page size storage unit 584. Finally, the page size examining unit 583 resumes access from the blocked host and transfers it to the I / O 57-3. With the above operation, the data prefetch device 58 autonomously acquires the page size.

次に、通常の動作時においてデータプリフェッチデバイス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に返信する。     Next, it is assumed that the data prefetch device 58 receives a memory read TLP requesting to read data from the memory 52 by DMA from the I / O 57-3 during normal operation. The data prefetch unit 585 checks whether the address area of the memory read TLP matches the area where the data prefetch unit 585 has already made a prefetch request. If the area matches the area where the prefetch request has been made and the corresponding data is already stored in the data storage unit 586, the data prefetch unit 585 reads the corresponding data and returns it to the I / O 57-3. On the other hand, when a prefetch request is made but waiting for a reply from the memory 52, the data prefetch unit 585 waits until the corresponding data is received, and after receiving the data, the address corresponding to the memory read TLP of the I / O 57-3 The range data is returned to I / O57-3 as a response TLP.

また、I/O57-3のメモリリードTLPのアドレス領域が、すでにデータプリフェッチ部585がプリフェッチ要求を行った領域と一致しない場合、データプリフェッチ部585はメモリリードTLPがページ境界までの全てのデータを要求しているか調べる。このとき、ページサイズ記憶部584にはページサイズが登録されているため、その情報をもとに判断する。例えばページサイズが4KBのシステムでは、メモリリードTLPが4KBの区切りとなるアドレスまでの全てのデータを要求する場合、ページ境界までのデータを要求していることとなる。このとき、データプリフェッチ部585はプリフェッチを行わず、I/O57-3のメモリリードTLPのみをメモリ52に転送し、その応答TLPを受信した場合はI/O57-3に転送する。     In addition, if the address area of the memory read TLP of the I / O 57-3 does not match the area where the data prefetch unit 585 has already made a prefetch request, the data prefetch unit 585 reads all the data up to the page boundary. Find out if you are requesting it. At this time, since the page size is registered in the page size storage unit 584, the determination is made based on the information. For example, in a system with a page size of 4 KB, when the memory read TLP requests all data up to an address that becomes a 4 KB break, the data up to the page boundary is requested. At this time, the data prefetch unit 585 does not perform prefetching, and only the memory read TLP of the I / O 57-3 is transferred to the memory 52, and when the response TLP is received, it is transferred to the I / O 57-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によりデータを要求する場合に備える。   On the other hand, if the memory read TLP of the I / O 57-3 does not request all the data up to the page boundary, the data prefetch unit 585 first transfers the memory read TLP of the I / O 57-3 to the memory 52, and then the memory read. The data corresponding to the address after the TLP request address is prefetched to the page boundary of the page where the data requested by the maximum I / O 57-3 exists. Thereafter, the data prefetch unit 585 first receives a response TLP to the memory read request of the I / O 57-3 from the memory 52, and transfers this to the I / O 57-3. Subsequently, the data corresponding to the response to the data prefetch request is stored in the data storage unit 586, and prepared for the case where the I / O 57-3 requests data by the memory read TLP later.

次に本発明の第2の実施例を、図面を参照して説明する。かかる実施例は本発明を実施するための第2の実施の形態に対応するものである。     Next, a second embodiment of the present invention will be described with reference to the drawings. This example corresponds to the second embodiment for carrying out the present invention.

図6を参照すると、本実施例のデータプリフェッチデバイス61はCPU411としてCPU611を、データ記憶部412としてデータ記憶部612を、データプリフェッチデバイスプログラム413としてデータプリフェッチデバイスプログラム613を、ホスト情報記憶部4121としてホスト情報記憶部6121を、ページサイズ記憶部4122としてページサイズ記憶部6122を、プリフェッチデータ記憶部4123としてプリフェッチデータ記憶部6123とを含む。     Referring to FIG. 6, the data prefetch device 61 of the present embodiment is a CPU 611 as a CPU 411, a data storage unit 612 as a data storage unit 412, a data prefetch device program 613 as a data prefetch device program 413, and a host information storage unit 4121. The host information storage unit 6121 includes a page size storage unit 6122 as the page size storage unit 4122, and a prefetch data storage unit 6123 as the prefetch data storage unit 4123.

データプリフェッチデバイスプログラム613はCPU611に読み込まれ、図5に示した第1の実施例におけるホスト情報記憶部582と、ページサイズ記憶部584と、データ記憶部586に対応するデータをそれぞれホスト情報記憶部6121と、ページサイズ記憶部6122と、プリフェッチデータ記憶部6123とに生成する。CPU611は、データプリフェッチデバイスプログラム613の制御により、第1の実施例におけるホスト情報調査部581と、ページサイズ調査部583と、データプリフェッチ部585と同様の処理を行う。     The data prefetch device program 613 is read by the CPU 611, and the host information storage unit 582, the page size storage unit 584, and the data corresponding to the data storage unit 586 in the first embodiment shown in FIG. 6121, a page size storage unit 6122, and a prefetch data storage unit 6123. Under the control of the data prefetch device program 613, the CPU 611 performs the same processing as the host information examining unit 581, page size examining unit 583, and data prefetch unit 585 in the first embodiment.

以上説明した実施例では、I/Oのレジスタからページ情報を読み込む構成を述べたが、ホストがそれらのレジスタに情報を書き込む際、データプリフェッチデバイス58、61を通過する関連する情報からページサイズを取得することも可能である。   In the embodiment described above, the configuration is described in which the page information is read from the I / O registers. However, when the host writes information into these registers, the page size is determined from the related information passing through the data prefetch devices 58 and 61. It is also possible to obtain.

また、以上説明した各実施例及び各実施形態のコンピュータシステムには、ホストブリッジを設けているが、ホストブリッジを設けず、CPU、メモリ、データプリフェッチデバイスを直接バスで接続してもよい。   Further, although the host system is provided in the computer systems of the respective examples and embodiments described above, the CPU, the memory, and the data prefetch device may be directly connected by a bus without providing the host bridge.

本発明によれば、コンピュータシステムやネットワークシステムの内部コンポーネントを相互に接続するバスのデータ転送高速化といった用途に適用できる。また、コンピュータシステムやネットワークシステムにおいて物理的に分離したコンポーネントを相互に接続するバスやインターコネクトのデータ転送高速化といった用途に適用できる。   INDUSTRIAL APPLICABILITY According to the present invention, it can be applied to uses such as high-speed data transfer of a bus that interconnects internal components of a computer system or a network system. In addition, the present invention can be applied to applications such as bus and interconnect data transfer speedups that interconnect physically separated components in computer systems and network systems.

本発明の第1の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. 本発明の第1の実施の形態の動作を示す流れ図である。It is a flowchart which shows the operation | movement of the 1st Embodiment of this invention. 本発明の第1の実施の形態の動作を示す流れ図である。It is a flowchart which shows the operation | movement of the 1st Embodiment of this invention. 本発明の第2の実施の形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 2nd Embodiment of this invention. 本発明の第1の実施例を説明するための図である。It is a figure for demonstrating the 1st Example of this invention. 本発明の第2の実施例を説明するための図である。It is a figure for demonstrating the 2nd Example of this invention. 従来技術を説明するための図である。It is a figure for demonstrating a prior art. 従来技術を説明するための図である。It is a figure for demonstrating a prior art.

符号の説明Explanation of symbols

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 プリフェッチデータ記憶部
11 CPU
12 memory
13 CPU bus
14 Memory bus
15 Host bridge
16-1 to 16-4 I / O bus
17-1 to 17-3 I / O
18 Data prefetch devices
41 Data prefetch device
51 CPU
52 memory
53 CPU bus
54 Memory bus
55 Host bridge
56-1 to 56-4 I / O bus
57-1 to 57-3 I / O
58 Data prefetch device
61 Data prefetch device
81 Data prefetch device
171-1 to 171-3 Configuration register
181 Host Information Research Department
182 Host information storage unit
183 Page Size Research Department
184 Page size memory
185 Data prefetch section
186 Data storage
411 CPU
412 Data storage unit
413 Data prefetch device program
4121 Host information storage unit
4122 Page size memory
4123 Prefetch data storage

Claims (30)

データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチデバイス。
In a data prefetch device that prefetches data from memory before it is needed,
Data prefetch is performed so as not to cross a page boundary of the memory, and prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page. device.
前記メモリで用いられているページサイズを保持するページサイズ記憶手段と、
前記ページサイズ記憶手段で保持されたページサイズを参照し、前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始するデータプリフェッチ手段と、
を備えたことを特徴とする請求項1に記載のデータプリフェッチデバイス。
Page size storage means for holding the page size used in the memory;
By referring to the page size held in the page size storage means, data prefetching is performed so as not to cross the page boundary of the memory, and prefetching of data corresponding to the next page is performed using the data corresponding to the next page. A data prefetch means that starts after receiving a read request;
The data prefetch device according to claim 1, further comprising:
データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチデバイス。
In a data prefetch device that prefetches data from memory before it is needed,
Simulate the host to obtain the page size used in the memory from the configuration register of the I / O device, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, A data prefetch device, wherein prefetching of data corresponding to a next page is started after receiving a read request for data corresponding to the next page.
データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチデバイスにおいて、
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチデバイス。
In a data prefetch device that prefetches data from memory before it is needed,
From the data that the host writes to the configuration register of the I / O device, obtain the page size used in the memory, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, A data prefetch device, wherein prefetching of data corresponding to a next page is started after receiving a read request for data corresponding to the next page.
ホストのIDを保持するホスト情報記憶手段と、
前記ホスト情報記憶手段で保持されたIDを用いて、I/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得するページサイズ調査手段と、
前記ページサイズで規定される前記メモリのページ境界を越えないようデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始するデータプリフェッチ手段と、
を備えたことを特徴とする請求項3に記載のデータプリフェッチデバイス。
Host information storage means for holding a host ID;
Page size checking means for acquiring the page size used in the memory from the configuration register of the I / O device using the ID held in the host information storage means;
Data prefetching is performed so as not to exceed the page boundary of the memory defined by the page size, and prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page. Data prefetching means;
The data prefetch device according to claim 3, further comprising:
ホストのIDを保持するホスト情報記憶手段と、
前記ホスト情報記憶手段で保持されたIDを用いて、I/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得するページサイズ調査手段と、
を備え、
取得されたページサイズは前記ページサイズ記憶手段に保持されることを特徴とする請求項2に記載のデータプリフェッチデバイス。
Host information storage means for holding a host ID;
Page size checking means for acquiring the page size used in the memory from the configuration register of the I / O device using the ID held in the host information storage means;
With
The data prefetch device according to claim 2, wherein the acquired page size is held in the page size storage means.
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得するページサイズ調査手段と、
前記ページサイズで規定される前記メモリのページ境界を越えないようデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後で開始するデータプリフェッチ手段と、
を備えたことを特徴とする請求項4に記載のデータプリフェッチデバイス。
A page size investigation means for obtaining a page size used in the memory from data written by the host to the configuration register of the I / O device;
Data prefetching is performed so as not to exceed the page boundary of the memory defined by the page size, and prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page. Data prefetching means;
The data prefetch device according to claim 4, further comprising:
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得するページサイズ調査手段を備え、
取得されたページサイズは前記ページサイズ記憶手段に保持されることを特徴とする請求項2に記載のデータプリフェッチデバイス。
A page size checking means for acquiring a page size used in the memory from data written by the host to the configuration register of the I / O device;
The data prefetch device according to claim 2, wherein the acquired page size is held in the page size storage means.
前記ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータが、ホストが発行したデータであることを確認するため、予め保持しているホストのIDを参照することを特徴とする請求項4、7、8のいずれか1項に記載のデータプリフェッチデバイス。 8. The host ID stored in advance is referred to in order to confirm that the data written to the configuration register of the I / O device by the host is data issued by the host. 9. The data prefetch device according to any one of items 8 to 8. 前記メモリで用いられているページサイズは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項4、7〜9のいずれか1項に記載のデータプリフェッチデバイス。 10. The page size used in the memory is obtained from data issued by a host that passes through the data prefetch device. Data prefetch device. 前記ホスト情報記憶手段に登録されたホストのIDは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項5又は6に記載のデータプリフェッチデバイス。   The data prefetch device according to claim 5 or 6, wherein the host ID registered in the host information storage means is obtained from data issued by the host that passes through the data prefetch device. 前記データプリフェッチデバイスに接続されるバスの規格がPCIエクスプレスに従うことを特徴とする請求項1〜11のいずれか1項に記載のデータプリフェッチデバイス。   The data prefetch device according to any one of claims 1 to 11, wherein a standard of a bus connected to the data prefetch device conforms to PCI Express. 請求項1から12のいずれか1項に記載のデータプリフェッチデバイスと、該データプリフェッチデバイスにより読み出されるデータを記憶するメモリと、CPUとを備えたコンピュータシステム。   A computer system comprising the data prefetch device according to any one of claims 1 to 12, a memory for storing data read by the data prefetch device, and a CPU. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチ方法。
In a data prefetch method for prefetching data from memory before the data is needed,
Data prefetch is performed so as not to cross a page boundary of the memory, and prefetching of data corresponding to the next page is started after receiving a read request for data corresponding to the next page. Method.
データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチ方法。
In a data prefetch method for prefetching data from memory before the data is needed,
Simulate the host to obtain the page size used in the memory from the configuration register of the I / O device, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, A data prefetch method, wherein prefetching of data corresponding to a next page is started after receiving a read request for data corresponding to the next page.
データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチ方法において、
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始することを特徴とするデータプリフェッチ方法。
In a data prefetch method for prefetching data from memory before the data is needed,
From the data that the host writes to the configuration register of the I / O device, obtain the page size used in the memory, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, A data prefetch method, wherein prefetching of data corresponding to a next page is started after receiving a read request for data corresponding to the next page.
前記ホストの疑似では、ホストのIDを用いて前記コンフィグレーションレジスタに対するリードを発行することを特徴とする請求項15に記載のデータプリフェッチ方法。   16. The data prefetch method according to claim 15, wherein in the host simulation, a read for the configuration register is issued using a host ID. 前記ホストのIDは、前記データプリフェッチデバイスを通過するホストが発行したデータから取得することを特徴とする請求項17に記載のデータプリフェッチ方法。   18. The data prefetch method according to claim 17, wherein the host ID is acquired from data issued by a host that passes through the data prefetch device. 前記ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータが、ホストが発行したデータであることを確認するため、予め保持しているホストのIDを参照することを特徴とする請求項16に記載のデータプリフェッチ方法。 The host ID stored in advance is referred to in order to confirm that the data written to the configuration register of the I / O device by the host is data issued by the host. Data prefetch method. 前記メモリで用いられているページサイズは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項16に記載のデータプリフェッチ方法。 The data prefetch method according to claim 16, wherein the page size used in the memory is obtained from data issued by a host that passes through the data prefetch device. 前記データプリフェッチがPCIエクスプレスの規格に基づいて行われることを特徴とする請求項14〜20のいずれか1項に記載のデータプリフェッチ方法。   The data prefetch method according to any one of claims 14 to 20, wherein the data prefetch is performed based on a PCI Express standard. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させるデータプリフェッチプログラム。
A data prefetch program for causing a computer to perform data prefetching to prefetch data from memory before the data is needed,
Data prefetch is performed so as not to cross the page boundary of the memory, and the prefetch of data corresponding to the next page causes the computer to execute processing that starts after receiving a read request for data corresponding to the next page Data prefetch program.
前記処理の前に、前記メモリで用いられているページサイズを保持する第1の処理と 保持されたページサイズを参照する第2の処理とをコンピュータに実行させることを特徴とする請求項22に記載のデータプリフェッチプログラム。     23. The computer according to claim 22, further comprising: causing the computer to execute a first process for holding a page size used in the memory and a second process for referring to the held page size before the process. The data prefetch program described. データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
ホストを疑似してI/Oデバイスのコンフィグレーションレジスタから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とするデータプリフェッチプログラム。
A data prefetch program for causing a computer to perform data prefetching to prefetch data from memory before the data is needed,
Simulate the host to obtain the page size used in the memory from the configuration register of the I / O device, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, A prefetching of data corresponding to the next page causes the computer to execute a process that starts after receiving a read request for data corresponding to the next page.
データが必要とされる前にメモリから該データをプリフェッチするデータプリフェッチをコンピュータに実行させるためのデータプリフェッチプログラムであって、
ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータから、前記メモリで用いられているページサイズを取得し、このページサイズで規定される前記メモリのページ境界を越えないようにデータプリフェッチを行い、次のページに該当するデータのプリフェッチは、該次のページに該当するデータのリード要求を受信した後に開始する処理を前記コンピュータに実行させることを特徴とするデータプリフェッチプログラム。
A data prefetch program for causing a computer to perform data prefetching to prefetch data from memory before the data is needed,
From the data that the host writes to the configuration register of the I / O device, obtain the page size used in the memory, perform data prefetching so as not to cross the page boundary of the memory defined by this page size, A prefetching of data corresponding to the next page causes the computer to execute a process that starts after receiving a read request for data corresponding to the next page.
前記処理の前にホストのIDを保持する他の処理を前記コンピュータに実行させ、
前記処理でのページサイズの取得は、前記IDを用いて行われる請求項24に記載のデータプリフェッチプログラム。
Causing the computer to execute another process that holds the ID of the host before the process;
The data prefetch program according to claim 24, wherein the acquisition of the page size in the processing is performed using the ID.
前記IDは、コンピュータを通過するホストが発行したデータから取得したものであることを特徴とする請求項26に記載のデータプリフェッチプログラム。   27. The data prefetch program according to claim 26, wherein the ID is obtained from data issued by a host passing through a computer. 前記ホストがI/Oデバイスのコンフィグレーションレジスタに書き込むデータが、ホストが発行したデータであることを確認するため、予め保持しているホストのIDを参照することを特徴とする請求項25に記載のデータプリフェッチプログラム。   26. The host ID stored in advance is referred to in order to confirm that the data written to the configuration register of the I / O device by the host is data issued by the host. Data prefetch program. 前記メモリで用いられているページサイズは、前記データプリフェッチデバイスを通過する、ホストが発行したデータから取得したものであることを特徴とする請求項25に記載のデータプリフェッチプログラム。   26. The data prefetch program according to claim 25, wherein the page size used in the memory is obtained from data issued by a host that passes through the data prefetch device. 前記データプリフェッチプログラムは、PCIエクスプレスの規格に従って動作することを特徴とする請求項22〜29のいずれか1項に記載のデータプリフェッチプログラム。     The data prefetch program according to any one of claims 22 to 29, wherein the data prefetch program operates in accordance with a PCI Express standard.
JP2007101025A 2007-04-06 2007-04-06 Data prefetch device, data prefetch method and data prefetch program Active JP4780333B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007101025A JP4780333B2 (en) 2007-04-06 2007-04-06 Data prefetch device, data prefetch method and data prefetch program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007101025A JP4780333B2 (en) 2007-04-06 2007-04-06 Data prefetch device, data prefetch method and data prefetch program

Publications (2)

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

Family

ID=39981084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007101025A Active JP4780333B2 (en) 2007-04-06 2007-04-06 Data prefetch device, data prefetch method and data prefetch program

Country Status (1)

Country Link
JP (1) JP4780333B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015092973A1 (en) * 2013-12-17 2015-06-25 日本電気株式会社 Information processing device, and traffic control method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844659A (en) * 1994-07-27 1996-02-16 Nec Corp Data transfer controller
JP2000215149A (en) * 1999-01-25 2000-08-04 Canon Inc Controller for composite device
JP2001084216A (en) * 1999-09-16 2001-03-30 Nec Eng Ltd Data prefetch system, prefetch method and recording medium
JP2006185000A (en) * 2004-12-27 2006-07-13 Hitachi Ltd Storage system
WO2006131899A2 (en) * 2005-06-09 2006-12-14 Nxp B.V. Memory controller and method for coupling a network and a memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844659A (en) * 1994-07-27 1996-02-16 Nec Corp Data transfer controller
JP2000215149A (en) * 1999-01-25 2000-08-04 Canon Inc Controller for composite device
JP2001084216A (en) * 1999-09-16 2001-03-30 Nec Eng Ltd Data prefetch system, prefetch method and recording medium
JP2006185000A (en) * 2004-12-27 2006-07-13 Hitachi Ltd Storage system
WO2006131899A2 (en) * 2005-06-09 2006-12-14 Nxp B.V. Memory controller and method for coupling a network and a memory
JP2008544348A (en) * 2005-06-09 2008-12-04 エヌエックスピー ビー ヴィ Memory controller and network and memory coupling method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015092973A1 (en) * 2013-12-17 2015-06-25 日本電気株式会社 Information processing device, and traffic control method
US10097658B2 (en) 2013-12-17 2018-10-09 Nec Corporation Traffic control of packet transfer

Also Published As

Publication number Publication date
JP4780333B2 (en) 2011-09-28

Similar Documents

Publication Publication Date Title
CN101751371B (en) Chipset support for non-uniform memory access among heterogeneous processing units
CN106933775B (en) Data processing system and method for data processing
US8751713B2 (en) Executing virtual functions using memory-based data in a PCI express SR-IOV and MR-IOV environment
JP6753412B2 (en) Computers, device allocation management methods and programs
US7275123B2 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
JP5824488B2 (en) Using completer knowledge about memory region ordering requests to modify transaction attributes
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
JP5011584B2 (en) Chipset support for binding and migrating hardware devices between heterogeneous processing units
CN105335309B (en) A kind of data transmission method and computer
CN102388357B (en) Method and system for accessing memory device
US20130173837A1 (en) Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex
US6915365B2 (en) Mechanism for PCI I/O-initiated configuration cycles
CN110825669A (en) Modifying NVMe PRP list pointer and data pointer to facilitate routing PCIe memory requests
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
CN109983749B (en) Computing device and method for increasing data transfer speed
US6820149B2 (en) Method, system, and program for testing a bus interface
US20180107619A1 (en) Method for shared distributed memory management in multi-core solid state drive
CN114003168B (en) Storage device and method for processing commands
JP4780333B2 (en) Data prefetch device, data prefetch method and data prefetch program
CN113778934B (en) PCIe-based high-speed real-time transmission system
US6119191A (en) Performing PCI access cycles through PCI bridge hub routing
JP2007528050A5 (en)
CN110399322B (en) Data transmission method and ping-pong DMA framework
Cao et al. An fpga based pci-e root complex architecture for standalone sopcs
JP6037029B2 (en) Data transfer apparatus, information processing apparatus, and IO control method

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