JP2017146786A - 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 - Google Patents

演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP2017146786A
JP2017146786A JP2016028113A JP2016028113A JP2017146786A JP 2017146786 A JP2017146786 A JP 2017146786A JP 2016028113 A JP2016028113 A JP 2016028113A JP 2016028113 A JP2016028113 A JP 2016028113A JP 2017146786 A JP2017146786 A JP 2017146786A
Authority
JP
Japan
Prior art keywords
data
request
arithmetic processing
cache
unit
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
JP2016028113A
Other languages
English (en)
Other versions
JP6565729B2 (ja
Inventor
隆宏 野尻
Takahiro Nojiri
隆宏 野尻
雅紀 日下田
Masaki Higeta
雅紀 日下田
秀和 小佐野
Hidekazu Osano
秀和 小佐野
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
Priority to JP2016028113A priority Critical patent/JP6565729B2/ja
Publication of JP2017146786A publication Critical patent/JP2017146786A/ja
Application granted granted Critical
Publication of JP6565729B2 publication Critical patent/JP6565729B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】演算処理装置が入出力装置のデータを高速に読み出すことが可能になる演算処理装置を提供する。【解決手段】情報処理装置の演算処理装置(プロセッサ101)は、キャッシュデータ部113と、入出力装置104が自己の演算処理装置又は他の演算処理装置のダイレクトメモリアクセス要求に応じて出力したデータを、主記憶装置を介さずに入力し、入力したデータをデータの内容に依らずダイレクトメモリアクセス要求のアドレスに対応するキャッシュデータ部に書き込むキャッシュ制御部114とを有する。【選択図】図1

Description

本発明は、演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法に関する。
データブロックを含む共用ディスクと、ディスクコントローラと、要求ノードと、管理ノードとを有する装置が知られている(特許文献1参照)。ディスクコントローラは、共用ディスクに結合され、データブロックを要求ノードに送ることによって管理ノードからの第2のメッセージに応答するよう構成される。要求ノードは、ディスクコントローラに結合され、要求されたデータのための第1のメッセージを送るよう構成される。要求ノードは、第1のプロセッサと、第1のプロセッサに結合される第1のバッファキャッシュとを含む。管理ノードは、ディスクコントローラ及び要求ノードに結合され、第1のメッセージを受取り、要求ノードからのロック要求を許可し、第1のメッセージに基づいて第2のメッセージをディスクコントローラに転送するよう構成される。管理ノードは、第2のプロセッサを含む。
また、CPUとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュ部を備えるキャッシュメモリ装置が知られている(特許文献2参照)。キャッシュメモリ装置は、入力データに付加された属性情報が所定の属性を示す情報であるときに入力データをキャッシュ部に格納する機能を有する。
また、複数のプリフェッチコマンドがデータへのアクセス前且つ複数のダイレクトキャッシュアクセス(DCA)転送後に発行されることを確実にするために幾つかのDCA転送が制限されるよう複数のプリフェッチコマンドと合わせて複数のDCA転送を使用する工程を含む方法が知られている(特許文献3参照)。
特表2001−519565号公報 特開2002−278834号公報 特表2008−541270号公報
ダイレクトメモリアクセスでは、入出力装置のデータが主記憶装置に書き込まれる。演算処理装置は、主記憶装置からそのデータを読み出す。しかし、演算処理装置が主記憶装置からデータを読み出す速度は比較的遅い。
1つの側面では、本発明の目的は、演算処理装置が入出力装置のデータを高速に読み出すことが可能になる演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法を提供することである。
演算処理装置は、演算処理装置であって、キャッシュデータ部と、入出力装置が自己の演算処理装置又は他の演算処理装置のダイレクトメモリアクセス要求に応じて出力したデータを、主記憶装置を介さずに入力し、前記入力したデータをデータの内容に依らず前記ダイレクトメモリアクセス要求のアドレスに対応する前記キャッシュデータ部に書き込むキャッシュ制御部とを有する。
制御装置は、ダイレクトメモリアクセス要求を入出力装置に出力する入出力装置制御部と、前記ダイレクトメモリアクセス要求に応じて、前記入出力装置が出力したデータをデータの内容に依らず主記憶装置を介さずに前記ダイレクトメモリアクセス要求のアドレスに対応する演算処理装置内のキャッシュデータ部に書き込む要求を前記演算処理装置に出力する演算処理装置制御部とを有する。
演算処理装置が入出力装置のデータを高速に読み出すことが可能になる。
図1は、本実施形態による情報処理装置の構成例を示す図である。 図2(A)〜(E)は、情報処理装置の課題を説明するための情報処理装置の制御方法を示す図である。 図3(A)〜(D)は、本実施形態による情報処理装置の制御方法を示す図である。 図4は、システムコントローラの構成例を示す図である。 図5は、プロセッサの構成例を示す図である。 図6は、本実施形態による情報処理装置の制御方法を示すフローチャートである。 図7は、図6のステップS603の処理の詳細を示すフローチャートである。 図8は、図6のステップS605及びS606の処理の詳細を示すフローチャートである。 図9(A)及び(B)は、図2(A)〜(E)の処理を示すタイミングチャートである。 図10(A)及び(B)は、本実施形態による図3(A)〜(D)の処理を示すタイミングチャートである。
図1は、本実施形態による情報処理装置の構成例を示す図である。情報処理装置は、複数のプロセッサ101と、システムコントローラ102と、メモリデバイス103と、入出力(I/O)デバイス104と、他ノード105とを有する。図1の情報処理装置のうちの他ノード105以外の部分は、自ノードである。他ノード105は、自ノードと同様の構成を有する。メモリデバイス103は、データを記憶する主記憶装置である。I/Oデバイス104は、ハードディスク装置又はネットワークインタフェース等の入出力装置である。
プロセッサ101は、演算処理を行う演算処理装置である。複数のプロセッサ101の各々は、コア111及びキャッシュユニット112を有する。コア111は、ソフトウェアの命令を解釈及び実行する演算処理部である。キャッシュユニット112は、キャッシュデータ部113及びキャッシュ制御部114を有する。キャッシュデータ部113は、キャッシュデータを記憶する。例えば、キャッシュデータ部113はSRAM(Static Random Access Memory)であり、メモリデバイス103はDIMM(Dual Inline Memory Module)のDRAM(Dynamic Random Access Memory)である。キャッシュデータ部113は、メモリデバイス103に比べて高速にアクセスが可能である。キャッシュデータ部113は、メモリデバイス103のデータの一部を格納可能である。コア111は、必要なデータがキャッシュデータ部113に存在する場合(キャッシュヒット)には、メモリデバイス103までアクセスせずにキャッシュデータ部113からデータを読み出すことにより、データのアクセスを高速化する。
キャッシュ制御部114は、キャッシュデータ部113を管理し、キャッシュデータ部113にデータが存在しなかった場合にメモリアクセス要求を出力する。キャッシュ制御部114は、I/Oキャッシュ登録部115を有する。I/Oキャッシュ登録部115は、システムコントローラ102からI/Oキャッシュ登録要求を入力し、キャッシュ登録用資源を確保し、システムコントローラ102からダイレクトメモリアクセス(DMA)書き込みデータを入力した後に、そのデータをキャッシュデータ部113に登録する(書き込む)。
システムコントローラ102は、プロセッサインタフェース121と、コヒーレンシ制御部122と、コヒーレンシリクエスト格納部123と、メモリリクエスト制御部124と、I/O制御部125とを有する。プロセッサインタフェース121は、複数のプロセッサ101とシステムコントローラ102との間のインタフェースである。メモリリクエスト制御部124は、主記憶装置制御部であり、メモリデバイス103に対して、読み出し要求及び書き込み要求を出力する。I/O制御部125は、入出力装置制御部であり、I/Oデバイス104を制御する。コヒーレンシ制御部122は、プロセッサ101を制御する演算処理装置制御部であり、具体的には、複数のプロセッサ101内のキャッシュデータ部113内のデータのコヒーレンシを保つための制御を行う。コヒーレンシリクエスト格納部123は、他ノード105に対するキャッシュデータ部113の掃出し要求及び無効化要求を一時的に格納する。コヒーレンシ制御部122は、I/Oキャッシュ指示部127を有する。I/Oキャッシュ指示部127は、I/Oデバイス104からDMA書き込み要求を入力した場合、プロセッサ101に対してDMA書き込みデータのキャッシュ登録処理を指示する。
図2(A)〜(E)は、情報処理装置の課題を説明するための情報処理装置の制御方法を示す図である。なお、プロセッサ101は、複数のコア111を有していてもよい。まず、図2(A)では、複数のコア111のうちのいずれか1個のコア111は、I/Oデバイス104のデータを読み出すため、DMA書き込み要求をシステムコントローラ102を介してI/Oデバイス104に出力する。すると、I/Oデバイス104は、I/Oデバイス104のデータ201のDMA書き込み要求をシステムコントローラ102に出力する。すると、システムコントローラ102は、I/Oデバイス104のデータ201を、DMA書き込み要求のアドレスに書き込む。
次に、図2(B)において、I/Oデバイス104は、システムコントローラ102からDMA書き込み要求完了通知を入力すると、DMA書き込み要求完了の割り込みをプロセッサ101内のコア111に通知する。
次に、図2(C)において、コア111は、DMA書き込みを行ったアドレスを指定して読み出し要求をキャッシュユニット112に出力する。
次に、図2(D)において、キャッシュユニット112は、読み出し要求に応じて、システムコントローラ102を介して、メモリデバイス103のDMA書き込みを行った領域からデータ201を読み出してキャッシュデータ部113に書き込む。
次に、図2(E)において、キャッシュユニット112は、読み出し要求の応答として、データ201を要求元のコア111に出力する。
上記のように、DMA書き込み要求では、I/Oデバイス104のデータ201がメモリデバイス103に書き込まれる。コア111は、DMA書き込み要求の完了後に、メモリデバイス103からデータ201を読み出す。しかし、メモリデバイス103の読み出し速度は低速なため、読み出し要求の応答までの時間が長く、その結果、I/Oデバイス104のアクセスを伴う処理速度が遅くなってしまう課題がある。この課題を解決するための実施形態を以下に説明する。
図3(A)〜(D)は、本実施形態による情報処理装置の制御方法を示す図である。まず、図3(A)では、複数のコア111のうちのいずれか1個のコア111は、I/Oデバイス104のデータを読み出すため、DMA書き込み要求をシステムコントローラ102を介してI/Oデバイス104に出力する。すると、I/Oデバイス104は、I/Oデバイス104のデータ201のDMA書き込み要求をシステムコントローラ102に出力する。すると、システムコントローラ102は、I/Oデバイス104のデータ201を、データ201の内容に依らず、メモリデバイス103を介さずに、直接、DMA書き込み要求のアドレスに対応するキャッシュユニット112内のキャッシュデータ部113に書き込む。
次に、図3(B)において、I/Oデバイス104は、システムコントローラ102からDMA書き込み要求完了通知を入力すると、DMA書き込み要求完了の割り込みをプロセッサ101内のコア111に通知する。
次に、図3(C)において、コア111は、DMA書き込みを行ったアドレスを指定して読み出し要求をキャッシュユニット112に出力する。
次に、図2(D)において、キャッシュユニット112は、読み出し要求に応じて、キャッシュデータ部113からデータ201を読み出して要求元のコア111に出力する。
本実施形態によれば、DMA書き込み要求では、I/Oデバイス104のデータ201がキャッシュデータ部113に直接書き込まれる。そのため、コア111は、DMA書き込み要求の完了後に、キャッシュデータ部113からデータ201を読み出すことができる。キャッシュデータ部113の読み出し速度は、メモリデバイス103の読み出し速度に比べて高速である。そのため、コア111の読み出し要求の応答までの時間が短くなり、その結果、I/Oデバイス104のアクセスを伴う処理速度を高速化することができる。
また、本実施形態では、I/Oデバイス104のデータ201は、データ201の内容に依らず、またソフトウェアの設定や指示なく、ハードウェア自律で、メモリデバイス103を介さずに、キャッシュデータ部113に書き込まれる。このため、本実施形態では、I/Oデバイス104のドライバやソフトウェアの修正、及びI/Oデバイス104の対応等を行わずに上記の効果を得ることができる。
図4は、システムコントローラ102の構成例を示す図である。システムコントローラ102は、プロセッサインタフェース121と、コヒーレンシ制御部122と、コヒーレンシリクエスト格納部123と、メモリリクエスト制御部124と、I/O制御部125とを有する。コヒーレンシ制御部122は、キャッシュ要求格納部401と、I/O要求格納部402と、キャッシュタグ更新要求格納部403と、要求調停部404と、コヒーレンシ制御パイプライン405と、ホームリクエスト処理部406と、キャッシュタグ部407とを有する。コヒーレンシ制御パイプライン405は、I/Oキャッシュ指示部127を有する。I/Oキャッシュ指示部127は、登録プロセッサ決定回路408を有する。
プロセッサインタフェース121は、複数のプロセッサ101からメモリアクセス要求を入力し、それをキャッシュ要求格納部401に転送する。また、プロセッサインタフェース121は、コヒーレンシ制御パイプライン405から出力されるI/Oキャッシュ登録要求や、ホームリクエスト処理部406から出力される応答データを対象のプロセッサ101に転送する。
コヒーレンシ制御部122は、複数のプロセッサ101内のキャッシュデータ部113のコヒーレンシを保つための制御を行う。
メモリリクエスト制御部124は、コヒーレンシ制御部122から出力されるメモリアクセス要求をキューに格納し、メモリアクセス要求を順にメモリデバイス103に対して出力する。
I/O制御部125は、I/Oデバイス104からDMAアクセス要求(DMA書き込み要求)を入力すると、それをI/O要求格納部402に転送する。また、I/O制御部125は、そのDMAアクセス要求に対してI/O要求格納部402から応答を受けると、その応答をI/Oデバイス104に対して出力する。
コヒーレンシリクエスト格納部123は、ホームリクエスト処理部406が出力するキャッシュ掃出し要求又は無効化要求をキューに格納し、それを順に他ノード105へ出力する。
キャッシュ要求格納部401は、プロセッサインタフェース121を介してプロセッサ101から入力したメモリアクセス要求をキューに格納し、キューに格納されたメモリアクセス要求を順に要求調停部404に出力し、調停参加する。
I/O要求格納部402は、I/O制御部125から入力したDMAアクセス要求をキューに格納し、キューに格納されたDMAアクセス要求を順に要求調停部404に出力し、調停参加する。さらに、I/O要求格納部402は、要求調停部404に発行したDMAアクセス要求に対するホームリクエスト処理部406からのDMA処理完了通知を待ち、DMA処理完了通知を入力すると、I/O制御部125に対してDMAアクセス応答を出力する。
キャッシュタグ更新要求格納部403は、ホームリクエスト処理部406から入力したキャッシュタグ更新要求をキューに格納し、キューに格納されたキャッシュタグ更新要求を順に要求調停部404に出力し、調停参加する。
要求調停部404は、キャッシュ要求格納部401、I/O要求格納部402、及びキャッシュタグ更新要求格納部403から出力される各要求を調停し、コヒーレンシ制御パイプライン405に転送する。
コヒーレンシ制御パイプライン405は、要求調停部404から出力された各要求に応じて、キャッシュタグの検索、キャッシュタグの内容に応じたプロセッサ101へのキャッシュ掃出し要求又は無効化要求の出力、及びキャッシュタグ更新を行う。また、コヒーレンシ制御パイプライン405は、要求調停部404から出力された各要求が自ノードが管理するメモリ領域に対するアクセス要求だった場合、その要求をホームリクエスト処理部406に出力する。また、コヒーレンシ制御パイプライン405は、その要求が他ノード105が管理するメモリ領域に対するアクセス要求だった場合、その要求を他ノード105のシステムコントローラに出力する。
コヒーレンシ制御パイプライン405は、I/Oキャッシュ指示部127を有する。I/Oキャッシュ指示部127は、要求調停部404から出力された要求が自ノードが管理するメモリ領域に対するDMA書き込み要求だった場合、プロセッサ101に対してI/Oキャッシュ登録要求を出力し、DMA書き込みデータ転送用のムーブインバッファ確保を要求する。このときの登録要求先プロセッサは、登録プロセッサ決定回路408により決定される。
キャッシュタグ部407は、自ノード内のプロセッサ101内のキャッシュデータ部113が保持するデータのキャッシュタグ(アドレス及びキャッシュの状態)を格納する。キャッシュの状態は、自己のプロセッサ101内のキャッシュデータ部113のデータが排他型、共有型、及び無効型のいずれであるのかを示す。排他型は、自ノード内において、自己のプロセッサ101のキャッシュデータ部113だけに存在し、他のプロセッサ101のキャッシュデータ部113には存在しないデータである。共有型は、自ノード内において、自己のプロセッサ101及び他のプロセッサ101のキャッシュデータ部113に存在するデータを示す。無効型は、自己のプロセッサ101のキャッシュデータ部113のそのキャッシュライン(128バイト)のデータが無効であることを示す。
ホームリクエスト処理部406は、コヒーレンシ制御パイプライン405から出力された各要求に応じて、メモリデバイス103内のディレクトリ情報を読み出す。ディレクトリ情報は、メモリデバイス103の各アドレスに記憶されているデータが他ノード105内のプロセッサ101内のキャッシュデータ部113に記憶されている場合に、そのデータをキャッシュデータ部113に記憶しているノードのプロセッサ101を特定するためのノード番号を示す。ホームリクエスト処理部406は、ディレクトリ情報を基に、該当ラインのデータを他ノード105のプロセッサがキャッシュしている場合は、そのノードにキャッシュ掃出し要求又は無効化要求を出力する。ホームリクエスト処理部406は、入力要求がDMA書き込み要求の場合、同時にDMA書き込みデータ(I/Oデバイス104のデータ201)をI/O要求格納部402から入力するとともに、プロセッサ101からムーブインバッファ獲得成否通知の入力を待つ。ホームリクエスト処理部406は、ムーブインバッファ獲得成功通知を入力した場合、DMA書き込みデータをプロセッサ101へ転送した後、キャッシュタグ部407のキャッシュタグを「転送先プロセッサ=排他型」に更新するためのキャッシュタグ更新要求をキャッシュタグ更新要求格納部403に出力する。一方、ホームリクエスト処理部406は、プロセッサ101からムーブインバッファ獲得失敗通知を入力した場合、DMA書き込みデータをメモリデバイス103に書き込む。
図5は、プロセッサ101の構成例を示す図である。プロセッサ101は、コア111と、キャッシュデータ部113と、キャッシュ制御部114と、セレクタ501とを有する。キャッシュ制御部114は、キャッシュ要求格納部502と、I/Oキャッシュ要求格納部508と、要求調停部503と、キャッシュ制御パイプライン506と、キャッシュタグ部504と、ムーブインバッファ505とを有する。キャッシュ制御パイプライン506は、ムーブインバッファ獲得可否判定回路507を有する。キャッシュ制御部114は、I/Oキャッシュ登録部115を有する。I/Oキャッシュ登録部115は、ムーブインバッファ獲得可否判定回路507及びI/Oキャッシュ要求格納部508とを有する。
コア111は、ソフトウェアの命令に応じて命令を解釈及び実行し、必要に応じてメモリアクセス要求をキャッシュ制御部114に出力する。
キャッシュ制御部114は、コア111からメモリアクセス要求を入力し、キャッシュタグ部504のキャッシュタグを検索し、キャッシュヒットの場合は、ヒットしたデータを、キャッシュデータ部113からセレクタ501を介してコア111に応答データとして出力する。また、キャッシュ制御部114は、キャッシュミスの場合は、システムコントローラ102にメモリアクセス要求を出力する。
キャッシュデータ部113は、メモリデバイス103の一部のアドレスのデータを格納可能である。セレクタ501は、ムーブインバッファ505が出力する応答データとキャッシュデータ部113が出力する応答データとのいずれかを選択し、選択した応答データをコア111に出力する。
キャッシュ要求格納部502は、コア111から入力したメモリアクセス要求をキューに格納し、キューに格納されたメモリアクセス要求を順に要求調停部503に出力し、調停参加する。
I/Oキャッシュ要求格納部508は、システムコントローラ102から入力したI/Oキャッシュ登録要求をキューに格納し、キューに格納されたI/Oキャッシュ登録要求を順に要求調停部503に出力し、調停参加する。
要求調停部503は、キャッシュ要求格納部502、I/Oキャッシュ要求格納部508及びムーブインバッファ505から出力される各要求を調停し、キャッシュ制御パイプライン506に転送する。
キャッシュ制御パイプライン506は、要求調停部503から出力された各要求に応じて、キャッシュタグ部504のキャッシュタグの検索、及びキャッシュデータ部113のデータのアクセスを行う。キャッシュ制御パイプライン506は、キャッシュタグ部504のキャッシュタグを検索し、キャッシュミスだった場合は、システムコントローラ102に対してメモリアクセス要求を出力する。
I/Oキャッシュ登録部115は、要求調停部503から入力した要求がI/Oキャッシュ登録要求だった場合、ムーブインバッファ獲得可否判定回路507により、ムーブインバッファ獲得要求をムーブインバッファ505に出力する。その後、I/Oキャッシュ登録部115は、ムーブインバッファ獲得可否判定回路507により、ムーブインバッファ獲得成否通知をシステムコントローラ102に出力する。
キャッシュタグ部504は、自己のプロセッサ101内のキャッシュデータ部113が記憶するデータのキャッシュタグ(アドレス及びキャッシュの状態)を格納する。
ムーブインバッファ505は、システムコントローラ102から応答データを入力してバッファリングするためのバッファである。I/Oキャッシュ登録要求時は、システムコントローラ102からDMA書き込みデータが応答データとしてムーブインバッファ505に転送される。ムーブインバッファ505は、システムコントローラ102からの応答データの転送が完了すると、要求調停部503に対してキャッシュ登録要求を出力する。
図6は、本実施形態による情報処理装置の制御方法を示すフローチャートである。複数のプロセッサ101のうちの1個のプロセッサ101は、システムコントローラ102にDMA書き込み要求を出力する。すると、システムコントローラ102内のI/O制御部125は、DMA書き込み要求をI/Oデバイス104に出力する。すると、I/Oデバイス104は、DMA書き込み要求及びDMA書き込み要求のデータをI/O制御部125に出力する。I/O制御部125は、DMA書き込み要求及びDMA書き込み要求のデータをI/O要求格納部402に出力する。ホームリクエスト処理部406は、コヒーレンシ制御パイプライン405のリクエスト処理要求に応じて、メモリリクエスト制御部124を介して、DMA書き込み要求のアドレスのディレクトリ情報をメモリデバイス103から読み出す。
ステップS601では、コヒーレンシ制御パイプライン405及びホームリクエスト処理部406は、キャッシュタグ情報及びディレクトリ情報を基に、DMA書き込み要求のアドレスのデータをキャッシュデータ部113に記憶しているプロセッサ101があるか否かを判定し、ある場合にはステップS602に処理を進め、ない場合にはステップS603に処理を進める。
ステップS602では、コヒーレンシ制御パイプライン405は、キャッシュタグ部407のキャッシュタグを参照し、DMA書き込み要求のアドレスのデータをキャッシュデータ部113に記憶している自ノード内のプロセッサ101に対し、排他型のキャッシュ状態である場合には掃出し要求を出力し、共有型のキャッシュ状態である場合には無効化要求を出力する。ホームリクエスト処理部406は、ディレクトリ情報を基に、他ノード105内のプロセッサ101がDMA書き込み要求のアドレスのデータをキャッシュデータ部113に記憶している場合、その他ノード105に対して掃出し要求又は無効化要求を出力する。この処理は、そのアドレスのキャッシュコヒーレンシを保つために行われる。その後、ホームリクエスト処理部406は、ステップS603に処理を進める。
ここで、プロセッサ101は、掃出し要求を入力した場合には、キャッシュデータ部113内のDMA書き込み要求のアドレスに対応するデータのキャッシュラインを掃出し、そのキャッシュラインには新たな別のアドレスのデータを書き込み可能にする。掃出されたキャッシュラインのデータは、ホームリクエスト処理部406内のバッファに格納される。
ステップS603では、システムコントローラ102は、複数のプロセッサ101の中から、I/Oデバイス104のデータをキャッシュする1個のI/Oキャッシュ登録プロセッサを決定する。システムコントローラ102は、本来であれば、上記のDMA書き込み要求の発行元のプロセッサ101をI/Oキャッシュ登録プロセッサとして決定することが望ましい。しかし、現状の情報処理装置では、システムコントローラ102がその発行元のプロセッサ101をハードウェア的に認識するための手段が存在しない。そこで、本実施形態では、その手段を新たに追加することなく、複数のプロセッサ101の中から1個のI/Oキャッシュ登録プロセッサを決定する。なお、システムコントローラ102は、その発行元のプロセッサ101を認識するための手段を設け、その発行元のプロセッサ101をI/Oキャッシュ登録プロセッサとして決定してもよい。
図7は、図6のステップS603の処理の詳細を示すフローチャートである。登録プロセッサ決定回路408は、複数のプロセッサ101の中から1個のI/Oキャッシュ登録プロセッサを決定する。なお、情報処理装置が1個のプロセッサ101を有する場合には、登録プロセッサ決定回路408は、その1個のプロセッサ101をI/Oキャッシュ登録プロセッサとして決定する。例えば、登録プロセッサ決定回路408は、DMA書き込み要求のアドレスのデータがDMA書き込み要求の前に自ノードのプロセッサ101にどのようなキャッシュ状態で所持されていたかによって、I/Oキャッシュ登録プロセッサを決定する。登録プロセッサ決定回路408は、DMA書き込み要求の前にI/Oデバイス104のアドレスのデータを所有していたプロセッサ101がDMA書き込み要求の後もそのアドレスのデータを使用する確率が高いであろうという想定の下、将来、そのアドレスのデータを使用する可能性が高いと考えられるそのプロセッサ101をI/Oキャッシュ登録プロセッサとして決定する。なお、登録プロセッサ決定回路408は、上記の決定方法に限定されず、他のアルゴリズム(例えばラウンドロビン等)により、I/Oキャッシュ登録プロセッサを決定してもよい。
ステップS701では、登録プロセッサ決定回路408は、DMA書き込み要求のアドレスについて、キャッシュタグ部407のキャッシュタグを検索する。次に、ステップS702では、登録プロセッサ決定回路408は、キャッシュタグを基に、DMA書き込み要求のアドレスのデータについて、プロセッサ101のキャッシュ状態を判定する。
登録プロセッサ決定回路408は、自ノード内の1個のプロセッサ101のキャッシュタグが排他型の場合には、ステップS705に処理を進め、そのキャッシュタグが排他型であるプロセッサ101をI/Oキャッシュ登録プロセッサとして選択する。
すなわち、ステップS705では、コヒーレンシ制御部122は、複数のプロセッサ101のうち、ステップS602の掃出し要求又は無効化要求の出力前にDMA書き込み要求のアドレスのデータをキャッシュデータ部113に記憶していたプロセッサ101が1個であった場合には、そのデータを記憶していた1個のプロセッサ101をI/Oキャッシュ登録プロセッサとして選択する。
また、登録プロセッサ決定回路408は、自ノード内の複数のプロセッサ101のキャッシュタグが共有型の場合には、ステップS704に処理を進め、そのキャッシュタグが共有型である複数のプロセッサ101の中から1個のI/Oキャッシュ登録プロセッサをラウンドロビンで選択する。
すなわち、ステップS704では、コヒーレンシ制御部122は、複数のプロセッサ101のうち、ステップS602の掃出し要求又は無効化要求の出力前にDMA書き込み要求のアドレスのデータをキャッシュデータ部113に記憶していたプロセッサ101が複数あった場合には、そのデータを記憶していた複数のプロセッサ101のうちの1個のプロセッサ101をI/Oキャッシュ登録プロセッサとしてラウンドロビンで選択する。
また、登録プロセッサ決定回路408は、自ノード内の全てのプロセッサ101のキャッシュタグが無効型である場合には、ステップS703に処理を進め、自ノード内の全プロセッサ101の中から1個のI/Oキャッシュ登録プロセッサをラウンドロビンで選択する。
すなわち、ステップS703では、コヒーレンシ制御部122は、複数のプロセッサ101のうち、ステップS602の掃出し要求又は無効化要求の出力前にDMA書き込み要求のアドレスのデータをキャッシュデータ部113に記憶していたプロセッサ101がなかった場合には、複数のプロセッサ101のうちの1個のプロセッサ101をI/Oキャッシュ登録プロセッサとしてラウンドロビンで選択する。
図6において、システムコントローラ102は、ステップS603の後、ステップS604に処理を進める。ステップS604では、I/Oキャッシュ指示部127は、ステップS603で選択されたI/Oキャッシュ登録プロセッサに対して、I/Oキャッシュ登録要求を出力する。
次に、ステップS605では、プロセッサ101は、I/Oキャッシュ登録要求を入力した場合、DMA書き込み要求のデータをムーブインバッファ505にバッファリングするために、ムーブインバッファ505の空き領域を獲得する。
次に、ステップS606では、プロセッサ101は、システムコントローラ102に対して、ムーブインバッファ獲得成否通知を出力する。
図8は、図6のステップS605及びS606の処理の詳細を示すフローチャートである。ステップS801では、I/Oキャッシュ登録部115がI/Oキャッシュ登録要求を入力した場合、ムーブインバッファ獲得可否判定回路507は、ムーブインバッファ505がフルであるか否かを判定し、フルでない場合にはステップS802に処理を進め、フルである場合にはステップS805に処理を進める。すなわち、ムーブインバッファ獲得可否判定回路507は、ムーブインバッファ505に空き領域がある場合にはステップS802に処理を進め、ムーブインバッファ505に空き領域がない場合にはステップS805に処理を進める。
ステップS802では、ムーブインバッファ獲得可否判定回路507は、I/Oキャッシュ登録要求のアドレスについて他のトランザクションにより既にムーブインバッファ505の空き領域の獲得中であるか否かを判定し、獲得中でない場合にはステップS803に処理を進め、獲得中である場合にはステップS805に処理を進める。
ステップS803では、ムーブインバッファ獲得可否判定回路507は、ムーブインバッファ獲得要求をムーブインバッファ505に出力し、ムーブインバッファ505の空き領域を獲得する。
次に、ステップS804では、ムーブインバッファ獲得可否判定回路507は、システムコントローラ102に対して、ムーブインバッファ獲得成功通知を出力する。
ステップS805では、ムーブインバッファ獲得可否判定回路507は、システムコントローラ102に対して、ムーブインバッファ獲得失敗通知を出力する。
図6において、情報処理装置は、ステップS606の後、ステップS607に処理を進める。ステップS607では、システムコントローラ102は、ムーブインバッファ505の獲得の成否を判定する。ホームリクエスト処理部406は、プロセッサ101からムーブインバッファ獲得成功通知を入力した場合にはステップS608に処理を進め、プロセッサ101からムーブインバッファ獲得失敗通知を入力した場合にはステップS611に処理を進める。
ステップS608では、システムコントローラ102内のホームリクエスト処理部406は、DMAデータ転送要求に応じて、DMA書き込み要求のデータを応答データとして、プロセッサ101内のムーブインバッファ505に転送する。
次に、ステップS609では、プロセッサ101内のキャッシュ制御パイプライン506は、転送されたDMA書き込み要求のデータをキャッシュデータ部113に登録し(書き込み)、そのデータのキャッシュタグをキャッシュタグ部504に登録する。
次に、ステップS610では、システムコントローラ102内のコヒーレンシ制御パイプライン405は、キャッシュタグ更新要求に応じて、転送先のI/Oキャッシュ登録プロセッサについてのDMA書き込み要求のデータのキャッシュタグを排他型に更新し、キャッシュタグ部407に登録する。
ステップS611では、システムコントローラ102内のホームリクエスト処理部406は、メモリリクエスト制御部124を介して、メモリデバイス103にDMA書き込み要求のデータを書き込む。
次に、ステップS612では、システムコントローラ102内のコヒーレンシ制御パイプライン405は、キャッシュタグ更新要求に応じて、全てのプロセッサ101についてのDMA書き込み要求のデータのキャッシュタグを無効型に更新し、キャッシュタグ部407に登録する。
ステップS610及びS612の後、I/O制御部125は、DMA処理完了通知をI/Oデバイス104に出力する。すると、I/Oデバイス104は、DMA書き込み要求完了の割り込みをプロセッサ101に通知する。
以上のように、情報処理装置は、ムーブインバッファ獲得成功通知が出力される場合には、ステップS608〜S610により図3(A)〜(D)の処理を行う。コヒーレンシ制御部122は、プロセッサ101のムーブインバッファ505に空き領域がある場合には、プロセッサ101のキャッシュデータ部113に書き込む要求をプロセッサ101に出力する。その場合、キャッシュ制御部114は、I/Oデバイス104から入力したデータをムーブインバッファ505を介してキャッシュデータ部113に書き込み、読み出し要求に応じて、キャッシュデータ部113に記憶されているデータをコア111に出力する。
また、情報処理装置は、ムーブインバッファ獲得失敗通知が出力される場合には、ステップS611〜S612により図2(A)〜(E)の処理を行う。ホームリクエスト処理部406は、プロセッサ101のムーブインバッファ505に空き領域がない場合には、I/Oデバイス104が出力したデータをメモリデバイス103に書き込む要求をメモリデバイス103に出力する。I/Oデバイス104が出力したデータは、メモリデバイス103に書き込まれる。その場合、キャッシュ制御部114は、読み出し要求に応じて、メモリデバイス103に記憶されているデータを入力し、その入力したデータをキャッシュデータ部113に書き込むと共に、その入力したデータをコア111に出力する。
図9(A)及び(B)は、図2(A)〜(E)の処理を示すタイミングチャートである。情報処理装置は、まず、図9(A)のDMA書き込み要求の処理を行い、その後、図9(B)の読み出し要求の処理を行う。
まず、図9(A)において、I/Oデバイス104は、DMA書き込み要求(DMAアクセス要求)及びDMA書き込み要求のデータを、I/O制御部125を介して、I/O要求格納部402に出力する。
次に、I/O要求格納部402は、要求調停部404を介して、DMA書き込み要求をコヒーレンシ制御パイプライン405に出力する。
次に、コヒーレンシ制御パイプライン405は、DMA書き込み要求をホームリクエスト処理部406に出力する。
次に、ホームリクエスト処理部406は、メモリリクエスト制御部124を介して、DMA書き込み要求のアドレスのディレクトリ情報の読み出し要求を、メモリデバイス103に出力する。
次に、メモリデバイス103は、DMA書き込み要求のアドレスのディレクトリ情報を読み出し、読み出し要求の応答として、メモリリクエスト制御部124を介して、読み出したディレクトリ情報をホームリクエスト処理部406に出力する。ホームリクエスト処理部406は、そのディレクトリ情報に応じて、掃出し要求又は無効化要求をプロセッサ101に出力する。
次に、ホームリクエスト処理部406は、DMAデータ転送要求をI/O要求格納部402に出力する。
次に、I/O要求格納部402は、DMA書き込み要求のデータをホームリクエスト処理部406に出力する。
次に、ホームリクエスト処理部406は、メモリリクエスト制御部124を介して、DMA書き込み要求のデータの書き込み要求をメモリデバイス103に出力する。
次に、メモリデバイス103は、DMA書き込み要求のデータを書き込み、メモリリクエスト制御部124を介して、書き込み要求に対する応答をホームリクエスト処理部406に出力する。
次に、ホームリクエスト処理部406は、DMA処理完了通知をI/O要求格納部402に出力する。
次に、I/O要求格納部402は、I/O制御部125を介して、I/Oデバイス104にDMA書き込み要求の応答(DMAアクセス応答)を出力する。
次に、図9(B)において、コア111は、DMA書き込みを行ったアドレスの読み出し要求をキャッシュ要求格納部502に出力する。
次に、キャッシュ要求格納部502は、要求調停部503を介して、その読み出し要求をキャッシュ制御パイプライン506に出力する。
次に、キャッシュ制御パイプライン506は、ムーブインバッファ505にムーブインバッファ獲得要求を出力し、獲得できた場合には、プロセッサインタフェース121を介して、その読み出し要求をキャッシュ要求格納部401に出力する。
次に、キャッシュ要求格納部401は、要求調停部404を介して、その読み出し要求をコヒーレンシ制御パイプライン405に出力する。
次に、コヒーレンシ制御パイプライン405は、その読み出し要求をホームリクエスト処理部406に出力する。
次に、ホームリクエスト処理部406は、メモリリクエスト制御部124を介して、その読み出し要求をメモリデバイス103に出力する。
次に、メモリデバイス103は、その読み出し要求のアドレスのデータを読み出し、読み出し要求の応答として、メモリリクエスト制御部124を介して、読み出したデータをホームリクエスト処理部406に出力する。
次に、ホームリクエスト処理部406は、読み出したデータを読み出し要求の要求元のプロセッサ101のキャッシュデータ部113に登録するため、コヒーレンシ制御パイプライン405を介して、キャッシュタグ部407のキャッシュタグを排他型として登録する。また、ホームリクエスト処理部406は、プロセッサインタフェース121を介して、読み出したデータを応答データとして、ムーブインバッファ505に出力する。
次に、ムーブインバッファ505は、応答データをバッファリングし、キャッシュ制御パイプライン506を介して、その応答データをキャッシュデータ部113に登録し、キャッシュタグ部504のキャッシュタグを更新する。また、ムーブインバッファ505は、セレクタ501を介して、その応答データをコア111に出力する。上記の図9(B)の読み出し時間がリードレイテンシである。
図10(A)及び(B)は、本実施形態による図3(A)〜(D)の処理を示すタイミングチャートである。情報処理装置は、まず、図10(A)のDMA書き込み要求の処理を行い、その後、図10(B)の読み出し要求の処理を行う。
まず、図10(A)において、I/Oデバイス104は、DMA書き込み要求(DMAアクセス要求)及びDMA書き込み要求のデータを、I/O制御部125を介して、I/O要求格納部402に出力する。
次に、I/O要求格納部402は、要求調停部404を介して、DMA書き込み要求をコヒーレンシ制御パイプライン405に出力する。
次に、コヒーレンシ制御パイプライン405は、プロセッサインタフェース121を介して、I/Oキャッシュ登録要求をI/Oキャッシュ要求格納部508に出力する。また、コヒーレンシ制御パイプライン405は、DMA書き込み要求をホームリクエスト処理部406に出力する。
次に、I/Oキャッシュ要求格納部508は、要求調停部503を介して、I/Oキャッシュ登録要求をキャッシュ制御パイプライン506に出力する。
次に、キャッシュ制御パイプライン506は、ムーブインバッファ505にムーブインバッファ獲得要求を出力し、獲得できた場合には、プロセッサインタフェース121を介して、ムーブインバッファ獲得成功通知をホームリクエスト処理部406に出力する。
次に、ムーブインバッファ505は、ホームリクエスト処理部406から応答データを入力すると、その応答データをバッファリングし、キャッシュ制御パイプライン506を介して、その応答データをキャッシュデータ部113に登録し、キャッシュタグ部504のキャッシュタグを更新する。
ホームリクエスト処理部406は、コヒーレンシ制御パイプライン405からDMA書き込み要求を入力すると、メモリリクエスト制御部124を介して、DMA書き込み要求のアドレスのディレクトリ情報の読み出し要求を、メモリデバイス103に出力する。
次に、メモリデバイス103は、DMA書き込み要求のアドレスのディレクトリ情報を読み出し、読み出し要求の応答として、メモリリクエスト制御部124を介して、読み出したディレクトリ情報をホームリクエスト処理部406に出力する。ホームリクエスト処理部406は、そのディレクトリ情報に応じて、掃出し要求又は無効化要求をプロセッサ101に出力する。
次に、ホームリクエスト処理部406は、DMAデータ転送要求をI/O要求格納部402に出力する。
次に、I/O要求格納部402は、DMA書き込み要求のデータをホームリクエスト処理部406に出力する。
次に、ホームリクエスト処理部406は、キャッシュ制御パイプライン506からムーブインバッファ獲得成功通知を入力すると、プロセッサインタフェース121を介して、DMA書き込み要求のデータを応答データとして、ムーブインバッファ505に出力する。
次に、ホームリクエスト処理部406は、コヒーレンシ制御パイプライン405を介して、キャッシュタグ部407のキャッシュタグを排他型として登録する。また、ホームリクエスト処理部406は、DMA処理完了通知をI/O要求格納部402に出力する。
次に、I/O要求格納部402は、I/O制御部125を介して、I/Oデバイス104にDMA書き込み要求の応答(DMAアクセス応答)を出力する。
次に、図10(B)において、コア111は、DMA書き込みを行ったアドレスの読み出し要求をキャッシュ要求格納部502に出力する。
次に、キャッシュ要求格納部502は、要求調停部503を介して、その読み出し要求をキャッシュ制御パイプライン506に出力する。
次に、キャッシュ制御パイプライン506は、キャッシュタグ部504のキャッシュタグを参照し、その読み出し要求に対応するデータをキャッシュデータ部113から読み出してコア111に出力する。上記の図10(B)の読み出し時間がリードレイテンシであり、図9(B)のリードレイテンシより短い。これにより、プロセッサ101は、I/Oデバイス104のデータを高速に読み出すことが可能になる。
ここで、I/Oキャッシュ登録プロセッサ以外のプロセッサ101が読み出し要求を出力する場合を説明する。その場合、システムコントローラ102は、その読み出し要求を入力すると、その読み出し要求に対応するデータをI/Oキャッシュ登録プロセッサ内のキャッシュデータ部113から読み出し、I/Oキャッシュ登録プロセッサ以外のプロセッサ101に出力する。この場合のリードレイテンシも、図9(B)のリードレイテンシより短い。
以上のように、本実施形態によれば、DMA書き込み要求により、I/Oデバイス104のデータは、データの内容に依らず、メモリデバイス103を介さずに、プロセッサ101のキャッシュデータ部113に書き込まれる。これにより、プロセッサ101は、読み出し要求による読み出し時間を短縮することができる。
プロセッサ101のキャッシュ制御部114は、I/Oデバイス104が自己のプロセッサ101又は他のプロセッサ101のDMA書き込み要求に応じて出力したデータをメモリデバイス103を介さずに入力し、その入力したデータをデータの内容に依らずDMA書き込み要求のアドレスに対応するキャッシュデータ部113に書き込む。
システムコントローラ102のコヒーレンシ制御部122は、DMA書き込み要求に応じて、I/Oデバイス104が出力したデータをデータの内容に依らずメモリデバイス103を介さずにDMA書き込み要求のアドレスのプロセッサ101内のキャッシュデータ部113に書き込む要求をプロセッサ101に出力する。
なお、プロセッサ101とシステムコントローラ102は、1個のCPUチップで構成してもよい。また、システムコントローラ102は、1個のホームリクエスト処理部406を有する例を示したが、複数のホームリクエスト処理部406を有していてもよい。実用的な回路では、メモリデバイス103やプロセッサ101間のアクセスバスの帯域を使い切るために、システムコントローラ102が複数(8〜32セット程度)のホームリクエスト処理部406を備え、アクセス要求を並列処理することができる。
I/Oキャッシュ登録プロセッサの決定方法は、図7の方法に限定されない。例えば、システムコントローラ102にDMA書き込み要求完了時の割り込み宛先プロセッサを指定するレジスタを設け、プロセッサ101がソフトウェアによりI/Oキャッシュ登録プロセッサを指定してもよい。これにより、データを使いたいプロセッサ101のキャッシュデータ部113にDMA書き込み要求のデータを登録することが可能になる。
情報処理装置は、全てのDMA書き込み要求に対して、プロセッサ101のキャッシュデータ部113にデータを登録する例に限定されず、特定の条件に応じて、プロセッサ101のキャッシュデータ部113にデータを登録してもよい。例えば、キャッシュデータ部113に登録させるアドレス領域をソフトウェアから指定できるレジスタを用意して、DMA書き込み要求のアドレスがそのレジスタ内のアドレスに一致したときのみ、キャッシュデータ部113に登録してもよい。
また、PCI Express仕様に準拠したソフトウェア指示を用いて、キャッシュデータ部113にデータを登録してもよい。例えば、PCI Express Base Specification Revision 3.0で規定されているTLP Processing Hints (TPH) を用いて、キャッシュデータ部113の登録可否やI/Oキャッシュ登録プロセッサを決定してもよい。
また、プロセッサ101のキャッシュデータ部113にDMA書き込み要求のデータが過剰に登録され、I/Oデバイス104のデータ以外のデータがキャッシュデータ部113から追い出されるのを防ぐため、I/Oデバイス104のデータのキャッシュデータ部113への登録数を制限してもよい。例えば、キャッシュタグにI/Oキャッシュビットを追加し、同一キャッシュインデックスにI/Oデバイス104のデータを登録できるウェイ(way)数を制限することができる。
また、キャッシュデータ部113への登録が効果的なDMA書き込み要求のデータを選択的に登録することを目的として、DMA書き込み要求のデータサイズがキャッシュラインサイズよりも小さいもののみキャッシュデータ部113に登録してもよい。例えば、DMA書き込み要求が部分的書き込み(パーシャルライト)だった場合のみキャッシュデータ部113への登録の対象とすることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 プロセッサ
102 システムコントローラ
103 メモリデバイス
104 入出力デバイス
105 他ノード
111 コア
112 キャッシュユニット
113 キャッシュデータ部
114 キャッシュ制御部
115 I/Oキャッシュ登録部
121 プロセッサインタフェース
122 コヒーレンシ制御部
123 コヒーレンシリクエスト格納部
124 メモリリクエスト制御部
125 I/O制御部
127 I/Oキャッシュ指示部

Claims (11)

  1. 演算処理装置であって、
    キャッシュデータ部と、
    入出力装置が自己の演算処理装置又は他の演算処理装置のダイレクトメモリアクセス要求に応じて出力したデータを、主記憶装置を介さずに入力し、前記入力したデータをデータの内容に依らず前記ダイレクトメモリアクセス要求のアドレスに対応する前記キャッシュデータ部に書き込むキャッシュ制御部と
    を有することを特徴とする演算処理装置。
  2. さらに、前記ダイレクトメモリアクセス要求の処理が完了した後、前記ダイレクトメモリアクセス要求のアドレスの読み出し要求を出力する演算処理部を有し、
    前記キャッシュ制御部は、前記読み出し要求に応じて、前記キャッシュデータ部に記憶されているデータを前記演算処理部に出力することを特徴とする請求項1記載の演算処理装置。
  3. さらに、バッファを有し、
    前記キャッシュ制御部は、前記バッファに空き領域がある場合には、前記入出力装置から入力したデータを前記バッファを介して前記キャッシュデータ部に書き込み、前記読み出し要求に応じて、前記キャッシュデータ部に記憶されているデータを前記演算処理部に出力し、
    前記キャッシュ制御部は、前記バッファに空き領域がない場合には、前記入出力装置が出力したデータが前記主記憶装置に書き込まれ、前記読み出し要求に応じて、前記主記憶装置に記憶されているデータを入力し、前記入力したデータを前記キャッシュデータ部に書き込むと共に、前記入力したデータを前記演算処理部に出力することを特徴とする請求項2記載の演算処理装置。
  4. ダイレクトメモリアクセス要求を入出力装置に出力する入出力装置制御部と、
    前記ダイレクトメモリアクセス要求に応じて、前記入出力装置が出力したデータをデータの内容に依らず主記憶装置を介さずに前記ダイレクトメモリアクセス要求のアドレスに対応する演算処理装置内のキャッシュデータ部に書き込む要求を前記演算処理装置に出力する演算処理装置制御部と
    を有することを特徴とする制御装置。
  5. 前記演算処理装置制御部は、前記演算処理装置のバッファに空き領域がある場合には、前記書き込む要求を前記演算処理装置に出力し、
    さらに、前記演算処理装置のバッファに空き領域がない場合には、前記入出力装置が出力したデータを前記主記憶装置に書き込む要求を前記主記憶装置に出力する主記憶装置制御部を有することを特徴とする請求項4記載の制御装置。
  6. 前記演算処理装置制御部は、複数の演算処理装置のうちの前記ダイレクトメモリアクセス要求のアドレスのデータを前記キャッシュデータ部に記憶している演算処理装置に対して掃出し要求又は無効化要求を出力し、前記複数の演算処理装置のうちの1個の演算処理装置に前記書き込む要求を出力することを特徴とする請求項4又は5記載の制御装置。
  7. 前記演算処理装置制御部は、前記掃出し要求又は前記無効化要求を出力する前の前記演算処理装置の状態であって、前記複数の演算処理装置のうちで前記ダイレクトメモリアクセス要求のアドレスのデータを前記キャッシュデータ部に記憶している演算処理装置が1個である場合には、前記データを記憶している1個の演算処理装置に前記書き込む要求を出力することを特徴とする請求項6記載の制御装置。
  8. 前記演算処理装置制御部は、前記掃出し要求又は前記無効化要求を出力する前の前記演算処理装置の状態であって、前記複数の演算処理装置のうちで前記ダイレクトメモリアクセス要求のアドレスのデータを前記キャッシュデータ部に記憶している演算処理装置が複数ある場合には、前記データを記憶している複数の演算処理装置のうちの1個の演算処理装置をラウンドロビンで選択し、前記選択した1個の演算処理装置に前記書き込む要求を出力することを特徴とする請求項6又は7記載の制御装置。
  9. 前記演算処理装置制御部は、前記掃出し要求又は前記無効化要求を出力する前の前記演算処理装置の状態であって、前記複数の演算処理装置のうちで前記ダイレクトメモリアクセス要求のアドレスのデータを前記キャッシュデータ部に記憶している演算処理装置がない場合には、前記複数の演算処理装置のうちの1個の演算処理装置をラウンドロビンで選択し、前記選択した1個の演算処理装置に前記書き込む要求を出力することを特徴とする請求項6〜8のいずれか1項に記載の制御装置。
  10. 演算処理装置と、
    制御装置と、
    主記憶装置と、
    入出力装置とを有し、
    前記演算処理装置は、キャッシュデータ部を有し、
    前記制御装置は、
    ダイレクトメモリアクセス要求を前記入出力装置に出力する入出力装置制御部と、
    前記ダイレクトメモリアクセス要求に応じて、前記入出力装置が出力したデータをデータの内容に依らず前記主記憶装置を介さずに前記ダイレクトメモリアクセス要求のアドレスに対応する前記演算処理装置内の前記キャッシュデータ部に書き込む要求を前記演算処理装置に出力する演算処理装置制御部とを有し、
    前記演算処理装置は、前記書き込む要求に応じて、前記入出力装置が出力したデータをデータの内容に依らず前記主記憶装置を介さずに前記ダイレクトメモリアクセス要求のアドレスに対応する前記キャッシュデータ部に書き込むキャッシュ制御部を有することを特徴とする情報処理装置。
  11. 演算処理装置と、制御装置と、主記憶装置と、入出力装置とを有する情報処理装置の制御方法であって、
    前記制御装置が有する入出力装置制御部が、ダイレクトメモリアクセス要求を前記入出力装置に出力し、
    前記制御装置が有する演算処理装置制御部が、前記ダイレクトメモリアクセス要求に応じて、前記入出力装置が出力したデータをデータの内容に依らず前記主記憶装置を介さずに前記ダイレクトメモリアクセス要求のアドレスに対応する前記演算処理装置内のキャッシュデータ部に書き込む要求を前記演算処理装置に出力し、
    前記演算処理装置が有するキャッシュ制御部が、前記書き込む要求に応じて、前記入出力装置が出力したデータをデータの内容に依らず前記主記憶装置を介さずに前記ダイレクトメモリアクセス要求のアドレスに対応する前記キャッシュデータ部に書き込むことを特徴とする情報処理装置の制御方法。
JP2016028113A 2016-02-17 2016-02-17 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 Active JP6565729B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016028113A JP6565729B2 (ja) 2016-02-17 2016-02-17 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016028113A JP6565729B2 (ja) 2016-02-17 2016-02-17 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2017146786A true JP2017146786A (ja) 2017-08-24
JP6565729B2 JP6565729B2 (ja) 2019-08-28

Family

ID=59683160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016028113A Active JP6565729B2 (ja) 2016-02-17 2016-02-17 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6565729B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082011A (ja) * 1998-05-13 2000-03-21 Axis Ab Dmaユニットによる改良されたメモリ・アクセスをする方法及びコンピュ―タ・システム
JP2006513510A (ja) * 2003-01-27 2006-04-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 書き込みデータをキャッシュにインジェクトする方法及び装置
JP2008503003A (ja) * 2004-06-30 2008-01-31 インテル・コーポレーション コヒーレント・マルチプロセッサ・プロトコルを有するシステムにおけるダイレクト・プロセッサ・キャッシュ・アクセス
JP2008503807A (ja) * 2004-06-29 2008-02-07 インテル・コーポレーション コヒーレンシ・プロトコルを有するシステム内の1またはそれ以上のプロセッサに対応する1またはそれ以上のキャッシュへのクリーン・データのプッシング
JP2011013864A (ja) * 2009-06-30 2011-01-20 Fujitsu Ltd 命令制御装置、命令制御方法および演算回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082011A (ja) * 1998-05-13 2000-03-21 Axis Ab Dmaユニットによる改良されたメモリ・アクセスをする方法及びコンピュ―タ・システム
JP2006513510A (ja) * 2003-01-27 2006-04-20 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 書き込みデータをキャッシュにインジェクトする方法及び装置
JP2008503807A (ja) * 2004-06-29 2008-02-07 インテル・コーポレーション コヒーレンシ・プロトコルを有するシステム内の1またはそれ以上のプロセッサに対応する1またはそれ以上のキャッシュへのクリーン・データのプッシング
JP2008503003A (ja) * 2004-06-30 2008-01-31 インテル・コーポレーション コヒーレント・マルチプロセッサ・プロトコルを有するシステムにおけるダイレクト・プロセッサ・キャッシュ・アクセス
JP2011013864A (ja) * 2009-06-30 2011-01-20 Fujitsu Ltd 命令制御装置、命令制御方法および演算回路

Also Published As

Publication number Publication date
JP6565729B2 (ja) 2019-08-28

Similar Documents

Publication Publication Date Title
CN108153683B (zh) 用于在存储器中的地址范围之间传输数据的装置和方法
US7093079B2 (en) Snoop filter bypass
US7600078B1 (en) Speculatively performing read transactions
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US10198357B2 (en) Coherent interconnect for managing snoop operation and data processing apparatus including the same
US10079916B2 (en) Register files for I/O packet compression
US20140244920A1 (en) Scheme to escalate requests with address conflicts
KR20150144545A (ko) 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들
US11782848B2 (en) Home agent based cache transfer acceleration scheme
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
US9372795B2 (en) Apparatus and method for maintaining cache coherency, and multiprocessor apparatus using the method
US10503648B2 (en) Cache to cache data transfer acceleration techniques
US11687460B2 (en) Network cache injection for coherent GPUs
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法
US8938588B2 (en) Ensuring forward progress of token-required cache operations in a shared cache
US11726920B2 (en) Tag processing for external caches
JP2017146787A (ja) 演算処理装置、情報処理装置、及び情報処理装置の制御方法
JP2023507293A (ja) システムダイレクトメモリアクセスエンジンのオフロード
CN114298892A (zh) 一种应用于分布式处理单元的高速缓存模块和系统
JP2019164491A (ja) 情報処理装置及びキャッシュ制御装置
KR20120027661A (ko) 캐쉬 일관성을 맞추기 위해 멀티 코어들 간에 발생하는 통신량을 감소시키는 시스템 및 방법
US20140068179A1 (en) Processor, information processing apparatus, and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190715

R150 Certificate of patent or registration of utility model

Ref document number: 6565729

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150