JP4469911B2 - リクエスト生成装置、リクエスト処理システム及び制御方法 - Google Patents

リクエスト生成装置、リクエスト処理システム及び制御方法 Download PDF

Info

Publication number
JP4469911B2
JP4469911B2 JP2008501579A JP2008501579A JP4469911B2 JP 4469911 B2 JP4469911 B2 JP 4469911B2 JP 2008501579 A JP2008501579 A JP 2008501579A JP 2008501579 A JP2008501579 A JP 2008501579A JP 4469911 B2 JP4469911 B2 JP 4469911B2
Authority
JP
Japan
Prior art keywords
request
unit
data
holding
reqid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008501579A
Other languages
English (en)
Other versions
JPWO2007097029A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2007097029A1 publication Critical patent/JPWO2007097029A1/ja
Application granted granted Critical
Publication of JP4469911B2 publication Critical patent/JP4469911B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

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)

Description

本発明は、リクエスト生成装置、リクエスト処理システム及び制御方法に関し、特に、応答側のバッファ容量に関わらず多くのリクエストを記憶することができ、CPUコアの処理効率をより向上させることができるリクエスト生成装置、リクエスト処理システム及び制御方法に関する。
近年、コンピュータなどの情報処理装置においては、一般にアクセス速度が低いメインメモリへのアクセス回数を減らしてCPU(Central Processing Unit)コアの処理速度を向上させるため、CPU上にキャッシュメモリが搭載される構成が主流となっている。キャッシュメモリは、高速アクセスが可能であるものの、容量がメインメモリよりも小さいため、CPUコアが必要とするデータがキャッシュメモリに記憶されていない(キャッシュミス)ことがあり、このような場合には、メインメモリや2次キャッシュなどの上位キャッシュに記憶されているデータをCPU上のキャッシュメモリへムーブインする必要が生じる。
具体的には、キャッシュメモリにおいてキャッシュミスが発生した場合、CPUのムーブインバッファ(Move-in Buffer:以下「MIB」と略記する)にキャッシュミスしたデータのアドレスとこのアドレスのデータのムーブインを要求する旨とを示すムーブインリクエストが記憶され、先にMIBに記憶されたムーブインリクエストから順にメインメモリや上位キャッシュへ発行されることになる。
このとき、ムーブインリクエストを受け付けるメインメモリや上位キャッシュなどの応答側では、CPUからの要求を受け付けるためのバッファにムーブインリクエストが記憶される。そして、応答側では、同時期にバッファに記憶されているムーブインリクエストに対して、順不同にCPUへデータを転送するアウトオブオーダ制御が行われるため、MIBに記憶されたムーブインリクエストと応答側のバッファに記憶されたムーブインリクエストとの対応関係を明確にする必要がある。このため、MIBの最大エントリ数に対応する物理キューの数は、最大でも応答側のバッファに受け付け可能なエントリ数に一致させられるとともに、MIBの各ムーブインリクエストにはムーブインリクエストが記憶されている物理キュー番号が付与されて発行される。MIBのエントリ数と応答側のエントリ数とが一致しているため、物理キュー番号によってMIBおよび応答側のムーブインリクエストの対応が一意に決定され、アウトオブオーダ制御が可能となる。
このように、MIBのエントリ数には、リクエストを受け付ける側が同時受け付け可能なエントリ数という上限があるため、例えば特許文献1では、限られたエントリ数のMIBを有効に使用して、メモリのデータに対する参照を効率的に制御することが記載されている。
特開2006−48181号公報
しかしながら、応答側のバッファ容量によってMIBのエントリ数が制限されていることにより、MIBのエントリが一杯の状態では、CPUコアによるキャッシュメモリへのアクセスなど後続のメモリオペレーションが停止され、CPUコアの処理効率の向上に限界があるという問題がある。すなわち、MIBの使用可能な物理キューがすべて使用されている状態では、CPUコアがキャッシュメモリへアクセスしてキャッシュミスが生じても、ムーブインリクエストをMIBに記憶することができない。このため、MIBが一杯の状態では、MIBに新たなリクエストを記憶させる必要が生じないように、一切のメモリオペレーションが停止される。これは、CPUコアによる効率的な処理の大きな妨げとなる。
特に、MIBが一杯の状態で、次以降のキャッシュメモリへのアクセスに関してはキャッシュミスが生じずに、CPUコアとキャッシュメモリ間で処理が完結していくような場合では、MIBのエントリ数が1つ不足しているというだけで、処理効率の損失は多大である。したがって、MIBのエントリ数をより多くして、CPUコアの処理効率をより向上させることが望まれている。
本発明はかかる点に鑑みてなされたものであり、応答側のバッファ容量に関わらず多くのリクエストを記憶することができ、CPUコアの処理効率をより向上させることができるリクエスト生成装置、リクエスト処理システム及び制御方法を提供することを目的とする。
上記課題を解決するために、プロセッサ装置は、外部装置に対して処理のリクエストを発行するプロセッサ装置であって、所定の命令を実行する実行手段と、前記実行手段による命令実行によって順次発生する処理のリクエストを記憶する記憶手段と、前記記憶手段によって記憶されたリクエストに前記外部装置が同時受け付け可能なリクエスト数に対応する識別情報を付与して前記外部装置へ送出する送出手段とを有する構成を採る
また、プロセッサ装置は、上記構成において、前記記憶手段は、前記外部装置が同時受け付け可能なリクエスト数以上のリクエストを記憶する構成を採る
また、プロセッサ装置は、上記構成において、前記実行手段による命令実行時に使用されるデータを記憶するキャッシュメモリをさらに有し、前記記憶手段は、前記実行手段による命令実行時に必要なデータが前記キャッシュメモリに記憶されていない場合に、このデータの前記キャッシュメモリへの転送を要求するムーブインリクエストを記憶する構成を採る
また、プロセッサ装置は、上記構成において、前記送出手段は、リクエストと識別情報の対応関係を保持するテーブルと、前記テーブルを参照して、リクエストに対応付けられていない未使用の識別情報を新たなリクエストに付与する付与手段とを含む構成を採る
また、プロセッサ装置は、上記構成において、前記テーブルは、前記外部装置が同時受け付け可能なリクエスト数に一致する数の識別情報それぞれについて、対応するリクエストの特定情報または未使用を示す情報のいずれかを対応付けて保持する構成を採る
また、プロセッサ装置は、上記構成において、前記実行手段による命令実行時に使用されるデータを記憶するキャッシュメモリをさらに有し、前記記憶手段は、前記キャッシュメモリに記憶されたデータを前記キャッシュメモリ以外の外部メモリにおける所定のアドレスへ書き込むブロックライトリクエストを記憶する構成を採る
また、プロセッサ装置は、上記構成において、前記送出手段は、データが書き込まれるアドレスの情報を含むリクエストと書き込まれるデータとを別々に分けて送出する構成を採る
また、プロセッサ装置は、上記構成において、前記送出手段は、アドレス情報を含むリクエストに識別情報を付与して送出する構成を採る
また、プロセッサ装置は、上記構成において、前記送出手段は、前記リクエストに対して前記外部装置からデータの受け付けが可能である旨の応答を取得した場合に前記データを送出する構成を採る
また、プロセッサ装置は、上記構成において、前記外部装置によってリクエストが実行された場合に、実行済みのリクエストに対応付けられている識別情報を未使用として開放する開放手段をさらに有する構成を採る
また、プロセッサ装置は、上記構成において、前記開放手段は、実行済みのリクエストを前記記憶手段から消去させる構成を採る
また、命令処理方法は、外部装置に対して処理のリクエストを発行する命令処理方法であって、所定の命令を実行する実行工程と、前記実行工程における命令実行によって順次発生する処理のリクエストを記憶する記憶工程と、前記記憶工程にて記憶されたリクエストに前記外部装置が同時受け付け可能なリクエスト数に対応する識別情報を付与する付与工程と、前記付与工程にて識別情報が付与されたリクエストを前記外部装置へ送出する送出工程とを有するようにした
本発明によれば、応答側のバッファ容量に関わらず多くのリクエストを記憶することができ、リクエストの記憶容量の制限によって後続の命令実行を停止させる必要がなく、CPUコアの処理効率をより向上させることができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、以下においては、SMP(Symmetric Multi Processor:対称型マルチプロセッサ)構成におけるCPUとシステムコントローラを例に挙げて説明するが、本発明は、CPUと2次キャッシュが接続されている場合やCPUとメインメモリが接続されている場合などにも適用可能である。また、ccNUMA(Cache Coherent Non-Uniform Memory Access)などにおいてCPUとCPUが接続されている場合などにも本発明を適用することができる。要するに、CPUから外部装置へ要求が発行され、外部装置が要求に対する応答を行う場合に、本発明を適用することができる。
(実施の形態1)
図1は、本発明の実施の形態1に係る情報処理装置の概略構成を示すブロック図である。図1に示す情報処理装置は、複数のCPU100、システムコントローラ200、主記憶制御部300、メモリ400、およびI/O(Input/Output:入出力)デバイス500を備えている。
CPU100は、各々CPUコアとキャッシュを有しており、プログラムの命令に応じて様々な演算や処理を実行する。本実施の形態においては、SMP構成としているため、各CPU100は、それぞれ独立して処理を実行する。具体的には、CPU100は、例えばキャッシュミスが発生した場合、他のCPU100またはメモリ400からキャッシュミスしたデータを取り込むため、システムコントローラ200に対してムーブインリクエストを発行する。このとき、本実施の形態においては、CPU100は、システムコントローラ200が同時期に受け付け可能なリクエスト数を最大数としたリクエストID(以下「REQID」と略記する)をムーブインリクエストに付与して発行する。CPU100のより具体的な処理については、後に詳述する。
システムコントローラ200は、各CPU100による処理の結果必要となる、他のCPU100、メモリ400、またはI/Oデバイス500などへのアクセスを制御する。具体的には、システムコントローラ200は、例えばCPU100からムーブインリクエストが発行された場合、ムーブインが要求されているデータを他のCPU100またはメモリ400から転送させ、ムーブインリクエスト発行元のCPU100へ送出する。
主記憶制御部300は、情報処理装置の主記憶であるメモリ400におけるデータの入出力を制御する。メモリ400は、CPU100内のキャッシュよりもアクセス速度は低いものの、大容量のRAM(Random Access Memory)などから構成されており、CPU100における処理演算に必要なデータやプログラムなどを記憶している。
I/Oデバイス500は、システムコントローラ200の制御に応じて、データの入力や出力を行う。具体的には、I/Oデバイス500は、例えばキーボード、モニタ、およびプリンタなどを含んでおり、種々の形式でデータの入出力を行う。
図2は、本実施の形態に係るCPU100の要部構成を示すブロック図である。図2に示すCPU100は、命令実行部101、キャッシュ102、リクエスト記憶部103、REQID付与部104、REQIDテーブル105、REQID開放部106、システムコントローラキュー(以下「SCQ」と略記する)107、およびムーブアウトキュー(以下「MOQ」と略記する)108を有している。
命令実行部101は、CPUコアを構成しており、キャッシュ102からデータを読み出してプログラムの命令を実行したり、I/Oデバイス500へのデータの読み書きなどをリクエスト記憶部103へ指示したりする。
キャッシュ102は、命令実行部101からの要求を受けて、必要なデータを検索し、必要なデータが記憶されていれば(キャッシュヒット)このデータを命令実行部101へ出力し、必要なデータが記憶されていなければ(キャッシュミス)このデータのムーブインを要求するようリクエスト記憶部103へ指示する。また、キャッシュ102は、REQID開放部106から出力されるデータを記憶する。さらに、キャッシュ102は、SCQ107からのリクエストに従って、記憶されたデータをMOQ108へ出力する。
リクエスト記憶部103は、キャッシュ102および命令実行部101からの指示に応じたリクエストを、リクエストする処理が実行される間記憶する。具体的には、リクエスト記憶部103は、ムーブインバッファ(MIB)103aおよびムーブインキュー(以下「MIQ」と略記する)103bを有している。
MIB103aは、キャッシュ102においてキャッシュミスが発生した場合、このデータのムーブインを要求するムーブインリクエストを記憶する。本実施の形態におけるMIB103aは、応答側であるシステムコントローラ200の受け付け可能エントリ数に関係なく、任意の数の物理キューを有するように構成されている。
MIQ103bは、命令実行部101による処理の結果、キャッシュ102とは無関係のデータの読み書きに関するリクエストを記憶する。具体的には、MIQ103bは、例えばI/Oデバイス500からデータを取得する旨のリクエストを記憶する。本実施の形態においては、MIQ103bもMIB103aと同様に、任意の数の物理キューを有するように構成されている。
REQID付与部104は、MIB103aおよびMIQ103bに記憶されたリクエストを優先制御しながら読み出し、読み出されたリクエストに未使用のREQIDをREQIDテーブル105から選択して付与する。そして、REQID付与部104は、REQID付きリクエストをシステムコントローラ200へ出力するとともに、REQIDが付与されたリクエストのMIB103aまたはMIQ103bにおける物理キュー番号をREQIDに対応付けてREQIDテーブル105に登録する。
ここで、REQIDとは、システムコントローラ200が同時期に受け付け可能なリクエスト数を最大数としたリクエストの識別番号であり、MIB103aに記憶されるムーブインリクエストおよびMIQ103bに記憶されるリクエストを区別せずに付与される識別番号である。本実施の形態においては、REQIDの最大数がシステムコントローラ200のバッファ容量に応じて決定されるため、MIB103aおよびMIQ103bの物理キュー数を任意にしても、REQIDによってCPU100におけるリクエストと応答側であるシステムコントローラ200におけるリクエストとの対応関係が明確になる。
REQIDテーブル105は、REQIDとREQIDが付与されたリクエストの物理キュー番号とを対応付けて記憶している。具体的には、REQIDテーブル105は、例えば図3に示すように、MIB103aまたはMIQ103bにおける物理キュー番号(図3中「MIB#1」など)と付与されるREQIDとを対応付けているとともに、未使用のREQID(図3中「未使用」となっているREQID)を記憶している。REQIDテーブル105は、REQID付与部104によってリクエストにREQIDが付与されたり、REQID開放部106によってREQIDが未使用の状態にされたりすると更新される。
REQID開放部106は、システムコントローラ200からREQID付きのデータを取得すると、このREQIDに対応するMIB103aまたはMIQ103bの物理キュー番号をREQIDテーブル105から読み出し、読み出された番号の物理キューを開放するとともに、REQIDテーブル105において、読み出された物理キュー番号に対応するREQIDを未使用の状態に更新する。また、REQID開放部106は、取得したデータをキャッシュ102へ記憶させ、MIB103aまたはMIQ103bに記憶されたムーブインリクエストに応じたデータのムーブインを完了させる。
SCQ107は、システムコントローラ200から発行されるオーダーID(以下「ORDID」と略記する)付きリクエストを一時的に記憶し、記憶された順にリクエストを実行してキャッシュ102からデータをMOQ108へ転送させる。
ここで、ORDIDとは、CPU100から発行されるREQID付きリクエストのREQIDに、リクエストを発行したCPUを識別するためのIDが付加された識別番号である。本実施の形態においては、情報処理装置がSMP構成を採っているため、各CPU100には固有のIDが割り振られており、システムコントローラ200においては、REQIDにCPUのIDを付加したORDIDによって、各CPU100からのリクエストが識別される。なお、SMP構成でなく1つのCPU100対1つのシステムコントローラ200である場合や、システムコントローラ200からのリクエストが常にインオーダ制御される場合は、当然ORDIDは不要となる。
MOQ108は、システムコントローラ200からのリクエストに応じてキャッシュ102から転送されるデータを一時的に記憶し、記憶された順にORDIDを付与してシステムコントローラ200へムーブアウトする。なお、リクエスト記憶部103、REQID付与部104、REQIDテーブル105、およびREQID開放部106は、ムーブインリクエストを発行するCPU100内で主に機能するのに対し、SCQ107およびMOQ108は、ムーブイン対象のデータがキャッシュ102に記憶されているCPU100内で主に機能する。
図4は、本実施の形態に係るシステムコントローラ200の要部構成を示すブロック図である。図4に示すシステムコントローラ200は、リクエスト受付部201、ORDID付与部202、I/Oデバイス検索部203、タグ情報制御部204、タグ情報コピー205、リクエスト送出部206、データ受付部207、ID変換部208、およびデータ送出部209を有している。
リクエスト受付部201は、CPU100のREQID付与部104から出力されるREQID付きリクエストを記憶するバッファを有しており、CPU100から受け付けられたREQID付きリクエストをバッファに記憶するとともにORDID付与部202へ出力する。
ORDID付与部202は、リクエストに付与されたREQIDにリクエスト発行元のCPUのIDを付加してORDIDを生成し、生成されたORDIDをリクエストに付与する。
I/Oデバイス検索部203は、リクエストに含まれているI/Oデバイス500のアドレスを図示しないデバイスマップなどから検索し、I/Oデバイス500へORDID付きリクエストを出力する。I/Oデバイス500のアドレスが含まれているリクエストは、主にI/Oデバイス500におけるデータの入力を求めるリクエストなどであり、CPU100におけるキャッシュ102とは無関係なMIQ103bに記憶されたリクエストである。
タグ情報制御部204は、リクエストに含まれるアドレスをタグ情報コピー205から検索し、このアドレスのデータが記憶されているCPU100またはメモリ400を割り出す。そして、タグ情報制御部204は、所望のデータを記憶しているCPU100(以下、ムーブインリクエスト発行元のCPU100と区別するために「他のCPU100」という)またはメモリ400へデータのムーブアウトを要求するようリクエスト送出部206へ指示する。また、タグ情報制御部204は、ムーブインリクエスト発行元のCPU100へのデータのムーブインによって、各CPU100のタグ情報が変更される場合は、変更に従ってタグ情報コピー205を更新する。
タグ情報コピー205は、システムコントローラ200に接続されているすべてのCPU100のキャッシュ102に関するタグ情報のコピーであり、各CPU100のキャッシュ102にどのデータが記憶されているかを示す情報を保持している。このため、タグ情報制御部204がタグ情報コピー205を検索することにより、CPU100からムーブインが要求されているデータがどのCPU100のキャッシュ102に記憶されているか判明する。また、タグ情報コピー205の検索の結果、所望のデータがどのCPU100にも記憶されていない場合は、このデータはメモリ400にのみ記憶されていることになるため、タグ情報制御部204は、メモリ400へデータのムーブアウトを要求すると決定する。
リクエスト送出部206は、タグ情報制御部204からの指示に従って、ムーブイン対象のデータを記憶している他のCPU100またはメモリ400へORDIDが付与されたムーブアウトリクエストを送出する。いずれかのCPU100がムーブイン対象のデータを記憶している場合は、ORDID付きリクエストは、ムーブイン対象のデータを記憶している他のCPU100のSCQ107によって受け付けられ、いずれのCPU100もムーブイン対象のデータを記憶していない場合は、ORDID付きリクエストは、メモリ400の前段に接続されている主記憶制御部300によって受け付けられる。
データ受付部207は、ORDID付きリクエストに応じて他のCPU100、メモリ400、またはI/Oデバイス500から取得されるORDID付きデータを記憶するデータキューを有しており、受け付けたデータを記憶した順にID変換部208へ出力する。
ID変換部208は、データ受付部207から出力されるデータに付与されているORDIDからムーブインリクエスト発行元のCPU100のIDを削除し、REQIDに変換した上でREQID付きデータをデータ送出部209へ出力する。このとき、ID変換部208は、削除したCPU100のIDがムーブインリクエスト発行元のCPU100であるため、データの送出先として削除したIDのCPU100をデータ送出部209へ通知する。また、所望のデータが他のCPU100からムーブアウトされてムーブインリクエスト発行元のCPU100にムーブインされる場合には、これらのCPU100のタグ情報が変更されるため、ID変換部208は、タグ情報制御部204に対してタグ情報コピー205の更新を指示する。
データ送出部209は、ID変換部208から出力されるREQID付きデータをID変換部208から通知されるCPU100へ送出する。すなわち、データ送出部209は、ムーブインリクエスト発行元のCPU100へムーブイン対象のデータを送出する。
次いで、上記のように構成されたCPU100およびシステムコントローラ200の動作について、主にムーブインリクエスト発行元のCPU100においてキャッシュミスが発生する場合の命令処理に重点を置いて説明する。
図5は、ムーブインリクエスト発行元のCPU100における処理を模式的に示す図である。同図においては、命令実行部101によって、キャッシュ102からのデータの読み出しを伴う場合の処理が示されている。すなわち、命令実行部101によって、プログラムの命令が実行され、キャッシュ102からのデータの読み出しが必要となると、このデータのロード命令が命令実行部101のポート101aに蓄積され、先に蓄積されたロード命令から順次実行されて、キャッシュ102へのアクセスが行われる。
ロード命令が実行されると、キャッシュ102によって所望のデータがキャッシングされているか否かが判定され、キャッシュミスが発生しなければ、キャッシュ102のデータが命令実行部101へ出力されて命令実行部101による演算処理が実行される。
一方、所望のデータがキャッシュ102にキャッシングされておらず、キャッシュミスが発生すれば、このデータをキャッシュ102にムーブインするために、MIB103aにムーブインリクエストが記憶される。
ここで、本実施の形態においては、MIB103aに記憶されるムーブインリクエストには、システムコントローラ200のリクエスト受付部201に同時期に受け付け可能なエントリと一意に対応するREQIDが付与されるため、MIB103aの使用可能な物理キュー数をリクエスト受付部201に同時期に受け付け可能なエントリ数に一致させる必要がない。したがって、リクエストの応答側のバッファ容量によるMIB103aのエントリ数の制限がないため、単に物量などを考慮してMIB103aの物理キュー数を決定すれば良い。そして、MIB103aの物理キュー数を可能な限り大きくしておくことにより、命令実行部101のポート101aに蓄積されたロード命令が次々に実行され、キャッシュヒットする処理が滞ることなく進み、命令実行部101による処理効率の向上を図ることができる。
MIB103aに記憶されたムーブインリクエストは、順次、REQID付与部104へ出力され、REQIDが付与される。このとき、MIB103aおよびMIQ103bのどちらかから優先制御によってリクエストが出力されるが、一般に、MIB103aにムーブインリクエストが多く記憶される場合は、キャッシュ102と無関係のリクエストは発生しにくく、MIQ103bに記憶されるリクエスト数は少ないと考えられる。また、反対に、MIQ103bに多くのリクエストが記憶される場合は、他のCPU100やメモリ400へムーブインリクエストが発行されることが少ない。つまり、多くの場合、MIB103aまたはMIQ103bのいずれか一方にのみリクエストが記憶されている状態である。
REQIDの付与は、REQID付与部104によって、REQIDテーブル105から未使用のREQIDが選択され、選択されたREQIDがムーブインリクエストに付与されることによって行われる。REQIDの最大数は、システムコントローラ200のリクエスト受付部201が同時期に受け付け可能なリクエスト数と一致しており、MIB103aおよびMIQ103bの物理キュー数よりも小さい。このようにREQIDの最大数は、リクエスト受付部201のバッファ容量によって制限されるが、上述したようにMIB103aまたはMIQ103bのいずれか一方にのみリクエストが記憶されていることが多いため、MIB103aおよびMIQ103bのリクエストを区別しなくても、有効に同一のREQIDを使用することができる。
REQIDが付与されたリクエストは、システムコントローラ200へ発行され、リクエスト受付部201によって受け付けられる。ここで、図5に示すように、MIB103aの物理キュー数とリクエスト受付部201のエントリ数とは一致していないが、REQID付与部104によってリクエストにREQIDが付与されており、リクエスト受付部201においては、エントリ数と同数の物理キューを有するMIB103aからリクエストが発行されているのと同等になる。つまり、システムコントローラ200においては、MIB103aがリクエスト受付部201のエントリ数と同数の物理キュー数を有している場合と同様の処理が行われることになり、既存のシステムコントローラ200の構成を変更する必要がない。結果として、コストの増大を抑制することができる。
リクエスト受付部201に受け付けられたREQID付きリクエストは、順次ORDID付与部202へ出力され、ORDID付与部202によって、REQIDがORDIDに書き換えられる。そして、ここではリクエストがMIB103aからのムーブインリクエストであるため、タグ情報制御部204へORDIDとムーブインリクエストが出力され、タグ情報制御部204によってタグ情報コピー205が検索されることにより、ムーブイン対象のデータを記憶している他のCPU100が判明する。
なお、リクエストがMIQ103bからのものである場合は、例えばI/Oデバイス検索部203によってI/Oデバイス500が検索され、I/Oデバイス500へデータ入力などを要求するORDID付きリクエストが送出される。また、タグ情報制御部204による検索の結果、ムーブイン対象のデータがメモリ400にのみ記憶されていると判明することもある。
ムーブイン対象のデータが記憶されている場所(他のCPU100またはメモリ400)が判明すると、リクエスト送出部206によって、ムーブイン対象のデータのムーブアウトを要求するムーブアウトリクエストが他のCPU100またはメモリ400へ送出される。ここでは、他のCPU100へムーブアウトリクエストが送出されるものとして説明を続ける。なお、このムーブアウトリクエストには、ORDIDが付与されており、ムーブインリクエストの発行元のCPU100が識別可能になっている。
ムーブアウトリクエストが他のCPU100へ送出されると、ムーブアウトリクエストはSCQ107によって受け付けられる。そして、このリクエストが他のCPU100のキャッシュ102へ伝達され、キャッシュ102からムーブイン対象のデータがMOQ108へ出力される。このデータにはORDIDが付与され、MOQ108からシステムコントローラ200へ送出される。
ORDID付きデータが他のCPU100のMOQ108から送出されると、このデータは、システムコントローラ200のデータ受付部207によって受け付けられ、データ受付部207に備えられたデータキューに記憶される。そして、データキューに記憶された順にORDID付きデータがID変換部208へ出力され、ID変換部208によって、ORDIDがREQIDに変換される。また、ID変換部208によって、他のCPU100からムーブイン対象のデータがムーブアウトされ、このデータがムーブインリクエスト発行元のCPU100にムーブインされる旨がタグ情報制御部204へ通知される。
そして、タグ情報制御部204によって、ID変換部208からの通知に応じたタグ情報コピー205の更新が行われる。また、REQIDが付与されたムーブイン対象のデータは、データ送出部209からムーブインリクエスト発行元のCPU100へ送出される。
送出されたREQID付きデータは、CPU100のREQID開放部106によって取得され、データがキャッシュ102へ出力されて記憶されることにより、キャッシュミスしたデータのムーブインが完了する。また、REQID開放部106によって、データに付与されたREQIDに対応するMIB103aの物理キュー番号がREQIDテーブル105から読み出され、この物理キューが開放される。同時に、REQIDテーブル105において、開放された物理キューに対応付けられていたREQIDが未使用の状態に更新される。これにより、ムーブインの完了とともに、このムーブインを要求したムーブインリクエストに対応するMIB103aおよびREQIDが開放され、MIB103aおよびREQIDは、後続のムーブインリクエストによって使用されることになる。
以上のように、本実施の形態によれば、CPU100において発生するリクエストを記憶するバッファの物理キュー番号を、応答側のシステムコントローラ200が同時期に受け付け可能なリクエスト数に対応するREQIDに変換し、REQIDが付与されたリクエストをシステムコントローラ200へ発行する。このため、CPU100においてリクエストを記憶するバッファの物理キュー数を多くしても、応答側のシステムコントローラ200は、REQIDに基づいてリクエストに応答することになり、CPU100の物理キュー数がシステムコントローラ200のバッファ容量に対応している場合と同様の処理を行うことになる。結果として、CPU100は、応答側のバッファ容量に関わらず多くのリクエストを記憶することができ、後続のメモリオペレーションを停止することなく、CPUコアの処理効率をより向上させることができる。
(実施の形態2)
本発明の実施の形態2の特徴は、メモリの一部をまとめて書き換えるブロックストア処理が実行される際に、書き換えられるデータのアドレスにREQIDを付与して送出することにより、ブロックストア処理の効率を向上することである。本実施の形態に係る情報処理装置の概略構成は実施の形態1(図1)と同様であるため、その説明を省略する。
図6は、本発明の実施の形態2に係るCPU100の要部構成を示すブロック図である。同図において、図2と同じ部分には同じ符号を付し、その説明を省略する。また、図6は、ブロックストア処理の要求を発行するCPU100の構成を示しており、データをムーブアウトしたり、ブロックストア処理時にデータの無効化をしたりする他のCPU100に必要な処理部を省略している。図6に示すCPU100は、命令実行部101、キャッシュ102、リクエスト記憶部151、REQID付与部152、REQIDテーブル105、およびREQID開放部153を有している。
リクエスト記憶部151は、キャッシュ102および命令実行部101からの指示に応じたリクエストを、リクエストする処理が実行される間記憶する。本実施の形態においては特に、リクエスト記憶部151は、メモリ400の一部のデータをキャッシュ102に記憶されたデータに書き換えるブロックストア処理を行うために、メモリ400の書き換えられるアドレスおよびデータを含むブロックライトリクエストを記憶する。具体的には、リクエスト記憶部151は、MIB10aおよびMIQ103bに加えて、ブロックライトキュー(以下「BWQ」と略記する)151aを有している。
BWQ151aは、メモリ400のデータの一部をキャッシュ102のデータに書き換える場合、書き換え対象のメモリ400のアドレスとキャッシュ102のデータとを含むブロックライトリクエストを記憶する。そして、BWQ151aは、ブロックライトリクエストをファーストフローおよびセカンドフローの2フローに分け、ファーストフローではアドレスのみを含むブロックストア要求をREQID付与部152へ出力し、REQID開放部153からデータ出力の指示が出されると、セカンドフローでデータをストアデータとしてREQID付与部152へ出力する。本実施の形態におけるBWQ151aは、MIB103aおよびMIQ103bと同様に、応答側であるシステムコントローラ200の受け付け可能エントリ数に関係なく、任意の数の物理キューを有するように構成されている。
REQID付与部152は、MIB103a、MIQ103b、およびBWQ151aに記憶されたリクエストを優先制御しながら読み出し、読み出されたリクエストに未使用のREQIDをREQIDテーブル105から選択して付与する。また、REQID付与部152は、BWQ151aからブロックライトリクエストを読み出す場合、ファーストフローで出力されるブロックストア要求にREQIDを付与して出力する一方、セカンドフローで出力されるストアデータにはREQIDを付与せずにそのまま出力する。
REQID開放部153は、システムコントローラ200からREQID付きのデータを取得すると、このREQIDに対応するMIB103aまたはMIQ103bの物理キュー番号をREQIDテーブル105から読み出し、読み出された番号の物理キューを開放するとともに、REQIDテーブル105において、読み出された物理キュー番号に対応するREQIDを未使用の状態に更新する。また、REQID開放部153は、取得したデータをキャッシュ102へ記憶させ、MIB103aまたはMIQ103bに記憶されたムーブインリクエストに応じたデータのムーブインを完了させる。
さらにREQID開放部153は、システムコントローラ200にデータを受け付けるためのデータキューの空きがあることを示すデータキュー確認応答を取得すると、データキュー確認応答に付与されたREQIDに対応するBWQ151aの物理キュー番号をREQIDテーブル105から読み出し、読み出された番号の物理キューに記憶されているデータをストアデータとして出力するように指示する。そして、REQID開放部153は、システムコントローラ200からブロックライトが完了した旨の完了報告を取得すると、完了したブロックライトに対応するBWQ151aの物理キューを開放するとともに、REQIDテーブル105において、完了したブロックライトに対応するREQIDを未使用の状態に更新する。
図7は、本実施の形態に係るシステムコントローラ200の要部構成を示すブロック図である。同図において、図4と同じ部分には同じ符号を付し、その説明を省略する。図7に示すシステムコントローラ200は、リクエスト受付部201、ORDID付与部202、無効化処理部251、データキュー確認部252、応答送出部253、データ受付部207、ストア処理部254、および完了報告送出部255を有している。
無効化処理部251は、ブロックストア要求発行元のCPU100以外の他のCPU100すべてに対して、キャッシュ102に記憶されているデータのうちブロックストア要求に含まれるアドレスのデータを無効化するよう無効化要求を送出する。そして、無効化処理部251は、他のCPU100すべてがデータを無効化したことを確認すると、ブロックストア要求に含まれるアドレスとともに無効化処理が完了した旨をストア処理部254へ通知する。
データキュー確認部252は、データ受付部207のデータキューの空き状況を確認し、ORDID付与部202から出力されるブロックストア要求に含まれるアドレスに相当するデータ量(すなわち、ストアデータ量)を記憶するのに十分なデータキューの空きがあるか否かを確認する。
応答送出部253は、データキュー確認部252によるデータキューの空き状況の確認の結果、ストアデータを記憶するのに十分なデータキューの空きがある場合に、データキュー確認応答をブロックストア要求発行元のCPU100へ送出する。
ストア処理部254は、無効化処理部251から無効化処理が完了した旨が通知されると、データ受付部207のデータキューからストアデータを読み出し、無効化処理部251から通知されたメモリ400のアドレスにストアデータを書き込む。そして、ストア処理部254は、ストアデータをメモリ400に書き込み終わると、ストア処理が完了した旨を完了報告送出部255へ通知する。
完了報告送出部255は、ストア処理部254によるストア処理が完了すると、ブロックストア要求に付与されているREQIDと同一のREQIDが付与された完了報告をブロックストア要求発行元のCPU100へ送出する。
次いで、上記のように構成されたCPU100およびシステムコントローラ200のブロックストア処理時の動作について、図8に示すシーケンス図を参照しながら説明する。
まず、命令実行部101による演算処理の結果、キャッシュ102のデータが更新され、更新されたデータでメモリ400のメモリブロックを書き換えるブロックストア処理が開始される。ブロックストア処理が開始されると、書き換えられるメモリ400のメモリブロックのアドレスおよび新たなデータを含むブロックライトリクエストがBWQ151aに記憶される。
そして、CPU100ではブロックストア処理のファーストフローが開始され(ステップS101)、BWQ151aからアドレスがREQID付与部152へ出力され、REQIDが付与される。このとき、MIB103a、MIQ103b、およびBWQ151aのいずれかから優先制御によってアドレスまたはリクエストが出力されるが、一般に、ブロックストア処理は、メモリコピー時に実行されることが多く、コピー処理中は他の処理が実行されないため、キャッシュ102と無関係なリクエストは発生しにくく、MIQ103bに記憶されるリクエストはほぼないと考えられる。また、MIB103aに記憶されるリクエストについては、通常動作に関するリクエストであるためコピー処理中も発生する可能性があり、MIB103aから出力されるリクエスト用のREQIDとBWQ151aから出力されるアドレス用のREQIDとを別々に用意するようにしても良い。
REQIDが付与されたアドレスは、ブロックストア要求としてシステムコントローラ(図8ではSCと表記)200へ発行され(ステップS102)、リクエスト受付部201によって受け付けられる。ここで、BWQ151aの物理キュー数とリクエスト受付部201のエントリ数とは一致していないが、REQID付与部152によってブロックストア要求にREQIDが付与されており、リクエスト受付部201においては、エントリ数と同数の物理キューを有するBWQ151aからブロックストア要求が発行されているのと同等になる。
また、本実施の形態においては、ブロックストア要求を2フローに分けているため、ファーストフローではアドレスのみがシステムコントローラ200へ通知され、データは送出されない。このため、ファーストフローにおいては、システムコントローラ200のデータ受付部207におけるデータキューをストアデータが占有することがない。もし、従来のブロックストア処理と同様に、アドレスとデータが同時に送出されると、データ受付部207のデータキューは、図8中の時間T1の間ストアデータによって占有されることになる。
リクエスト受付部201に受け付けられたブロックストア要求は、順次ORDID付与部202へ出力され、ORDID付与部202によって、REQIDがORDIDに書き換えられるとともに、リクエストの内容がブロックストア要求であると解釈され(ステップS103)、無効化処理部251およびデータキュー確認部252へブロックストア要求が出力される。
そして、無効化処理部251によって、ブロックストア要求に含まれるアドレスのデータの無効化要求がブロックストア要求発行元のCPU100以外の他のCPU100すべてへ送出される(ステップS104)。この無効化要求を受け、他のCPU100では、キャッシュ102に記憶されたデータのうち、ブロックストア処理によってメモリ400上で書き換えられるデータが無効化される(ステップS105)。データが無効化されると、他のCPU100からは無効化完了報告がシステムコントローラ200へ送出される(ステップS106)。無効化完了報告は、無効化処理部251によって取得され、他のCPU100における無効化が完了したことが確認される(ステップS107)。これにより無効化処理が完了するため、無効化処理部251からストア処理部254へ無効化処理が完了した旨が通知される。
一方、ORDID付与部202からブロックストア要求が出力されると、データキュー確認部252によって、データ受付部207のデータキューの空き状況が確認される(ステップS108)。具体的には、データ受付部207のデータキューに、ブロックストア要求に含まれるアドレス分のデータに相当する空き領域があるか否かが確認される。空き領域があることが確認されると、メモリ400にストアされるストアデータをデータキューに記憶することが可能であるため、応答送出部253からブロックストア要求発行元のCPU100へデータキュー確認応答が送出される(ステップS109)。なお、空き領域がない場合は、空き領域ができるまでデータキュー確認応答の送出が待機される。
ブロックストア要求発行元のCPU100では、REQID開放部153によってデータキュー確認応答が取得され、セカンドフローが開始されることになる(ステップS110)。すなわち、REQID開放部153によって、データキュー確認応答に付与されたREQIDに対応するBWQ151aの物理キュー番号がREQIDテーブル105から読み出され、この物理キューに記憶されているストアデータがREQID付与部152へ出力される。そして、ストアデータは、REQID付与部152からシステムコントローラ200へ送出される(ステップS111)。
ストアデータは、データ受付部207によって受け付けられ、データキューに記憶される。このとき、ブロックストア要求によってデータキューの空き状況が確認されているため、データキューにはストアデータを記憶するのに十分な空き領域が残っている。そして、データキューにストアデータが記憶されると、ストア処理部254によって、ストアデータをストアする旨のストア命令が発行され(ステップS112)、ストアデータとともに主記憶制御部300を介してメモリ400へ送出される(ステップS114)。そして、ストアデータがメモリ400に書き込まれることにより、ストア処理が完了する(ステップS115)。
また、同時に、ストア処理部254によって、ストア処理が完了した旨が完了報告送出部255へ通知され、完了報告送出部255によって、完了報告がブロックストア要求発行元のCPU100へ送出される(ステップS113)。
本実施の形態においては、システムコントローラ200のデータ受付部207にストアデータが記憶されるのは、ブロックストア要求発行元のCPU100においてブロックストア処理のセカンドフローが開始された後である。すなわち、データ受付部207のデータキューは、図8中の時間T2の間のみストアデータによって占有されることになる。この時間T2は、従来と同様のブロックストア処理が実行された場合のデータキューの占有時間T1よりも大幅に短い。このため、同容量のデータキューであれば、本実施の形態のブロックストア処理の方がデータキューの使用効率が高く、スループットを向上することができる。換言すれば、ブロックストア処理の頻度が同一であるとき、本実施の形態のブロックストア処理によれば、従来よりも少ないデータキューでブロックストア処理を実行可能である。
以上のように、本実施の形態によれば、CPU100において発生したブロックストア処理をアドレスのみを送出するファーストフローとデータを送出するセカンドフローとの2フローに分けるとともに、ファーストフローにおいては、アドレスにREQIDを付与する。このため、応答側のバッファ容量に関わらずブロックストア処理に係るブロックライトリクエストを多く記憶することができるとともに、応答側のバッファがデータによって占有される時間を短縮することができ、応答側におけるスループットを向上することができる。
本発明は、応答側のバッファ容量に関わらず多くのリクエストを記憶することができ、CPUコアの処理効率をより向上させる場合に適用することができる。
図1は、本発明の実施の形態1に係る情報処理装置の概略構成を示すブロック図である。 図2は、実施の形態1に係るCPUの要部構成を示すブロック図である。 図3は、実施の形態1に係るREQIDテーブルの一例を示す図である。 図4は、実施の形態1に係るシステムコントローラの要部構成を示すブロック図である。 図5は、実施の形態1に係るCPUにおける処理を模式的に示す図である。 図6は、本発明の実施の形態2に係るCPUの要部構成を示すブロック図である。 図7は、実施の形態2に係るシステムコントローラの要部構成を示すブロック図である。 図8は、実施の形態2に係るブロックストア処理時の動作を示すシーケンス図である。
符号の説明
101 命令実行部
102 キャッシュ
103、151 リクエスト記憶部
103a MIB
103b MIQ
151a BWQ
104、152 REQID付与部
105 REQIDテーブル
106、153 REQID開放部
201 リクエスト受付部
202 ORDID付与部
203 I/Oデバイス検索部
204 タグ情報制御部
205 タグ情報コピー
206 リクエスト送出部
207 データ受付部
208 ID変換部
209 データ送出部
251 無効化処理部
252 データキュー確認部
253 応答送出部
254 ストア処理部
255 完了報告送出部

Claims (12)

  1. リクエストを受信して保持する受信側エントリをN個(Nは正の整数)備え前記保持し
    たリクエストを処理するリクエスト処理装置に対するリクエストを生成するリクエスト生成装置において、
    命令を実行する命令実行部と、
    前記命令実行部が命令を実行することにより発生するリクエストを保持する送信側エントリをM個(MはM>Nを満たす正の整数)備える保持部と、
    前記保持部が保持するリクエストに、N個の互いに固有の識別情報を順次付与して前記リクエスト処理装置に送信する送信部と
    を有することを特徴とするリクエスト生成装置。
  2. 前記送信部は、
    リクエストと識別情報の対応関係を保持するテーブルと、
    前記テーブルを参照して、リクエストに対応付けられていない未使用の識別情報を新たなリクエストに付与する付与部と
    を有することを特徴とする請求項1記載のリクエスト生成装置。
  3. 前記保持部は、
    前記命令実行部が命令を実行することにより発生する第1の種別のリクエストを保持する第1の個別エントリをP個(PはM>Pを満たす正の整数)備える第1のリクエスト保持部と、
    前記命令実行部が命令を実行することにより発生する第2の種別のリクエストを保持する第2の個別エントリをQ個(QはQ=M−Pを満たす正の整数)備える第2のリクエスト保持部と
    を有することを特徴とする請求項1又は2記載のリクエスト生成装置。
  4. 前記送信部は、
    データが書き込まれるアドレスの情報を含むリクエストを前記リクエスト処理装置に送信後、前記アドレスに書き込まれるデータを前記リクエスト処理装置に送信することを特徴とする請求項1〜3のいずれか1項に記載のリクエスト生成装置。
  5. リクエスト生成装置と、前記リクエスト生成装置に接続されるリクエスト処理装置とを
    有するリクエスト処理システムにおいて、
    前記リクエスト生成装置は、
    命令を実行する命令実行部と、
    前記命令実行部が命令を実行することにより発生するリクエストを保持する送信側エントリをM個(Mは正の整数)備える保持部と、
    前記保持部が保持するリクエストに、N個(NはM>Nを満たす正の整数)の互いに固有の識別情報を順次付与して前記リクエスト処理装置に送信する送信部とを有し、
    前記リクエスト処理装置は、
    前記リクエスト生成装置が送信するリクエストを受信して保持する受信側エントリをN個備える受信部と、
    前記受信部が保持するリクエストを処理する処理部とを有する
    ことを特徴とするリクエスト処理システム。
  6. 前記送信部は、
    リクエストと識別情報の対応関係を保持するテーブルと、
    前記テーブルを参照して、リクエストに対応付けられていない未使用の識別情報を新たなリクエストに付与する付与部と
    を有することを特徴とする請求項5記載のリクエスト処理システム。
  7. 前記保持部は、
    前記命令実行部が命令を実行することにより発生する第1の種別のリクエストを保持する第1の個別エントリをP個(PはM>Pを満たす正の整数)備える第1のリクエスト保持部と、
    前記命令実行部が命令を実行することにより発生する第2の種別のリクエストを保持する第2の個別エントリをQ個(QはQ=M−Pを満たす正の整数)備える第2のリクエスト保持部と
    を有することを特徴とする請求項5又は6記載のリクエスト処理システム。
  8. 前記送信部は、
    データが書き込まれるアドレスの情報を含むリクエストを前記リクエスト処理装置に送信後、前記アドレスに書き込まれるデータを前記リクエスト処理装置に送信することを特徴とする請求項5〜7のいずれか1項に記載のリクエスト処理システム。
  9. リクエストを受信して保持する受信側エントリをN個(Nは正の整数)備え前記保持し
    たリクエストを処理するリクエスト処理装置に対するリクエストを生成するリクエスト生成装置の制御方法において、
    前記リクエスト生成装置が有する命令実行部が、命令を実行するステップと、
    前記リクエスト生成装置が有する保持部が備えるM個(MはM>Nを満たす正の整数)の送信側エントリに、前記命令実行部が命令を実行することにより発生するリクエストをそれぞれ保持するステップと、
    前記リクエスト生成装置が有する送信部が、前記保持部が保持するリクエストに、N個の互いに固有の識別情報を順次付与して前記リクエスト処理装置に送信するステップと
    を有することを特徴とする制御方法。
  10. 前記送信部は、
    リクエストと識別情報の対応関係を保持するテーブルと、
    前記テーブルを参照して、リクエストに対応付けられていない未使用の識別情報を新たなリクエストに付与する付与部と
    を有することを特徴とする請求項9記載の制御方法。
  11. 前記保持部は、
    前記命令実行部が命令を実行することにより発生する第1の種別のリクエストを保持する第1の個別エントリをP個(PはM>Pを満たす正の整数)備える第1のリクエスト保持部と、
    前記命令実行部が命令を実行することにより発生する第2の種別のリクエストを保持する第2の個別エントリをQ個(QはQ=M−Pを満たす正の整数)備える第2のリクエスト保持部と
    を有することを特徴とする請求項9又は10記載の制御方法。
  12. 前記送信部は、
    データが書き込まれるアドレスの情報を含むリクエストを前記リクエスト処理装置に送信後、前記アドレスに書き込まれるデータを前記リクエスト処理装置に送信することを特徴とする請求項9〜11のいずれか1項に記載の制御方法。
JP2008501579A 2006-02-27 2006-02-27 リクエスト生成装置、リクエスト処理システム及び制御方法 Expired - Fee Related JP4469911B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/303621 WO2007097029A1 (ja) 2006-02-27 2006-02-27 プロセッサ装置および命令処理方法

Publications (2)

Publication Number Publication Date
JPWO2007097029A1 JPWO2007097029A1 (ja) 2009-07-09
JP4469911B2 true JP4469911B2 (ja) 2010-06-02

Family

ID=38437088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008501579A Expired - Fee Related JP4469911B2 (ja) 2006-02-27 2006-02-27 リクエスト生成装置、リクエスト処理システム及び制御方法

Country Status (4)

Country Link
US (1) US20080301324A1 (ja)
EP (1) EP1990729A4 (ja)
JP (1) JP4469911B2 (ja)
WO (1) WO2007097029A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217640A (ja) * 2008-03-11 2009-09-24 Ricoh Co Ltd データ転送制御装置
WO2012172694A1 (ja) * 2011-06-17 2012-12-20 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
WO2013100984A1 (en) * 2011-12-28 2013-07-04 Intel Corporation High bandwidth full-block write commands
JP5966759B2 (ja) * 2012-08-20 2016-08-10 富士通株式会社 演算処理装置および演算処理装置の制御方法
JP6984148B2 (ja) * 2017-03-22 2021-12-17 日本電気株式会社 計算機システム及びキャッシュ・コヒーレンス方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615343A (en) * 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5778434A (en) * 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
JP3875749B2 (ja) * 1996-08-08 2007-01-31 富士通株式会社 マルチプロセッサ装置及びそのメモリアクセス方法
JP3274634B2 (ja) * 1997-09-29 2002-04-15 甲府日本電気株式会社 リード制御装置
US6493776B1 (en) * 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6449701B1 (en) * 2000-09-20 2002-09-10 Broadcom Corporation Out of order associative queue in two clock domains
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
JP4520788B2 (ja) * 2004-07-29 2010-08-11 富士通株式会社 マルチスレッドプロセッサ
JP4504132B2 (ja) * 2004-07-30 2010-07-14 富士通株式会社 記憶制御装置、中央処理装置、情報処理装置及び記憶制御装置の制御方法
JP4691335B2 (ja) 2004-07-30 2011-06-01 富士通株式会社 記憶制御装置、中央処理装置、情報処理装置及び記憶制御装置の制御方法

Also Published As

Publication number Publication date
JPWO2007097029A1 (ja) 2009-07-09
EP1990729A4 (en) 2010-08-25
US20080301324A1 (en) 2008-12-04
EP1990729A1 (en) 2008-11-12
WO2007097029A1 (ja) 2007-08-30

Similar Documents

Publication Publication Date Title
JP3924203B2 (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
JP3900478B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム及び該コンピュータ・システムを操作する方法
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
JP3900481B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システムを操作する方法、メモリ制御装置、メモリ・システム、該メモリ・システムを含むノード及びnumaコンピュータ・システム
JP3900479B2 (ja) システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
US7827354B2 (en) Victim cache using direct intervention
JP3900480B2 (ja) 共用データのリモート割当て解除の通知を提供する不均等メモリ・アクセス(numa)データ処理システム
JP4362454B2 (ja) キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US6760817B2 (en) Method and system for prefetching utilizing memory initiated prefetch write operations
JP3898984B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム
US6711652B2 (en) Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
US20060184743A1 (en) Cache memory direct intervention
CN103246614A (zh) 多处理器数据处理***、高速缓存存储器及其方法
US8190825B2 (en) Arithmetic processing apparatus and method of controlling the same
CN101149706A (zh) 支持掷出的一致性管理的处理器、数据处理***和方法
CN104106061A (zh) 在偏好加载的***中存在加载竞争的情况下用于存储的前进机制
JP4409619B2 (ja) 情報処理装置、制御装置および制御方法
JP4469911B2 (ja) リクエスト生成装置、リクエスト処理システム及び制御方法
JP3924204B2 (ja) 分散グローバル・コヒーレンス管理を有する不均等メモリ・アクセス(numa)コンピュータ・システム
US20110185128A1 (en) Memory access method and information processing apparatus
US9086976B1 (en) Method and apparatus for associating requests and responses with identification information
US6687795B2 (en) Data processing system and method of communication that reduce latency of write transactions subject to retry
JP2006164218A (ja) ストレージシステム及びそのキャッシュ制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100204

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees