JP4803983B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP4803983B2
JP4803983B2 JP2004267472A JP2004267472A JP4803983B2 JP 4803983 B2 JP4803983 B2 JP 4803983B2 JP 2004267472 A JP2004267472 A JP 2004267472A JP 2004267472 A JP2004267472 A JP 2004267472A JP 4803983 B2 JP4803983 B2 JP 4803983B2
Authority
JP
Japan
Prior art keywords
data consistency
cache
consistency management
pseudo data
management request
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
JP2004267472A
Other languages
English (en)
Other versions
JP2006085292A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004267472A priority Critical patent/JP4803983B2/ja
Priority to US11/223,932 priority patent/US7539823B2/en
Publication of JP2006085292A publication Critical patent/JP2006085292A/ja
Application granted granted Critical
Publication of JP4803983B2 publication Critical patent/JP4803983B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)

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でキャッシュリフィルを行った場合でも、それ以外のローカルキャッシュは、リフィルアクセスを行わない。なぜなら、それぞれのローカルキャッシュは、キャッシュ間のデータ整合性を維持する目的でのみ、キャッシュ間データ転送を行うためであり、もし、キャッシュリフィルした場合、不要なデータをキャッシュにもつ可能性があるためこのような制御が行われている。それに対して、Linuxなどのマルチプロセッサに対応した一般的なOSの管理下においては、それぞれのタスクが任意のCPUで実行されることを想定してタスクのスケジューリングが行われている。つまり、あるCPUですでにキャッシュリフィルを行っているが、他のCPUでは、キャッシュリフィルは行われていないため、タスクスケジューリングによって、ユニプロセッサ構成時ではヒットしていたキャッシュアクセスも、他のCPUに割り当てられた時点でキャッシュミスが発生する。
特開昭63−240649号公報(第一図) 特開平5−197622号公報(第一図) John L. Hennessy & David A. Patterson "Computer Architecture A Quantitative Approach Third Edition" Chapter Six Multiprocessors and Thread-Level Parallelism Snooping Protocols [P.551]
しかしながら、マルチプロセッサの一般的なスヌープキャッシュ機構は、局所性の特徴がユニプロセッサのキャッシュ機構より劣ることが考えられる。なぜなら、ハードウェア制御は、各CPUがデータアクセスを必要とした時点で対象データをローカルキャッシュに格納するが、それぞれのCPUのローカルキャッシュにその対象データを格納するわけではない。それに対して、ソフトウェア制御(Linuxなど)が、どのCPUにスケジューリングされるかは、通常動的に決定する方式を採用している。つまり、新しいタスクの生成から完了までの間に、ひとつのタスクがCPUの数だけ(もしくはそれ以上)実行される可能性があり、それに相当する数の外部メモリへのリフィル要求およびキャッシュ間共有によるペナルティーが発生する可能性があるため、ユニプロセッサよりマルチプロセッサの方がキャッシュの局所性によるミス率が増えることが予想される。
ただし、マルチプロセッサシステムの各ローカルキャッシュでは、そういう状態であっても、できる限りキャッシュ間のデータ転送、キャッシュリフィルを行うことによって、キャッシュミスペナルティーを削減する方法がとられているため、2CPU構成のマルチプロセッサや、キャッシュ間データ転送のペナルティーがローカルキャッシュヒット時のサイクル数と変わらない場合は、キャッシュ間データ転送による大きな問題は発生しない。
以上のように、マルチプロセッサ化によるキャッシュの局所性を向上させることが必要である。
本発明の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、2つ以上のローカルキャッシュが同時にキャッシュリフィルを行うことによって、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させ、キャッシュ間データ転送による共有バスの競合を削減することができる演算処理装置を提供することにある。
本発明の他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第1ローカルキャッシュにアクセスされた命令の種類によって判定され、2つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、命令によって偽りの共有情報を使用するかどうかを決定するため、キャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
本発明の他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第1ローカルキャッシュにアクセスしたCPUのプロセッサ状態を記憶するレジスタのモード信号によって判定され、2つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、命令セットの追加を必要とすることなくキャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
本発明の他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第1ローカルキャッシュにアクセスしたロードストア実行時のアクセスアドレス空間によって判定され、2つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、命令セットを追加やプロセッサ状態レジスタのモードを変更することなく、キャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
本発明の他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、論理アドレス空間から物理アドレス空間に変換するTLBに記憶された第1擬似データ整合性管理要求フラグによって判定され、2つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、ページ単位で、かつ、プロセス単位で、偽りの共有情報を制御することによってキャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
本発明の他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、その偽りの共有情報は、第1ローカルキャッシュ、もしくは、第2ローカルキャッシュにアクセスされるアドレスと第1もしくは第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積が、第1もしくは第2擬似データ整合性管理要求アドレス記憶手段に設定されているアドレスと第1もしくは第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、一致するかどうかによって判定され、2つ以上のローカルキャッシュが同時にキャッシュリフィルされるかどうかを決定することによって、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させると同時に、TLBを持たないCPUでも偽りの共有情報を制御することによってキャッシュ間に不要なコピーの発生を防ぐことができる演算処理装置を提供することにある。
本発明のさらに他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、第2ローカルキャッシュのみがキャッシュリフィルされ、第1ローカルキャッシュは、キャッシュスルーでCPUに対象データを伝達することによって、同じデータを参照するCPUが複数存在した場合でも、それぞれのローカルキャッシュには、コピーを持たず、優先度の高いデータのみを選択的に第1ローカルキャッシュに格納しておくことができる演算処理装置を提供することにある。
本発明のさらに他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、第2ローカルキャッシュが第2キャッシュリフィル回数記憶手段によって決定されるリフィル回数にてキャッシュリフィルが実行され、第1ローカルキャッシュは、キャッシュスルーでCPUに対象データを伝達することによって、同じデータを参照するCPUが複数存在した場合でも、それぞれのローカルキャッシュには、コピーを持たず、優先度の高いデータのみを選択的に第1ローカルキャッシュに格納しておくことができ、第2ローカルキャッシュに格納される偽りのデータリフィル回数を動的に変更することができることによって大容量データアクセスに対する参照局所性を向上する演算処理装置を提供することにある。
本発明のさらに他の目的は、キャッシュリフィル要求を出した第1ローカルキャッシュに対して、共有バスを監視する第2ローカルキャッシュが、偽りの共有(キャッシュヒット)情報の伝達と、外部メモリへのリフィル動作の実行とを、並行して行い、第2ローカルキャッシュのみが第2キャッシュリフィル回数記憶手段によって決定されるリフィル回数にてキャッシュリフィルされ、第1ローカルキャッシュは、キャッシュスルーでCPUに対象データを伝達し、第1ローカルキャッシュに接続されたCPUからの書き込みが発生した場合は、第2ローカルキャッシュを無効化するか、更新するかを決定し、外部メモリには、更新データの書き込み要求を発行することによって、同じデータを参照するCPUが複数存在した場合でも、それぞれのローカルキャッシュには、コピーを持たず、優先度の高いデータのみを第1ローカルキャッシュに格納しておくことができ、かつ、第2ローカルキャッシュに格納されるデータリフィル回数を動的に変更することができ、かつ、その第2ローカルキャッシュが、ダーティービットを必要としないキャッシュメモリであった場合でも、パージ管理を必要としないことを特徴とする演算処理装置を提供することにある。
上記問題を解決するために本発明の演算処理装置は、複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算装置であって、各プロセッサは、CPUとローカルキャッシュとを有し、各ローカルキャッシュは、キャッシュメモリと、それを制御するキャッシュ制御手段とを有し、各キャッシュ制御手段は、共有バスを介したローカルキャッシュ間のデータ転送を制御することにより、ローカルキャッシュ間のデータ整合性を管理するデータ整合性管理手段を有し、キャッシュ制御手段のうちの少なくとも1つのキャッシュ制御手段は、他のプロセッサからキャッシュミスの発生を通知するローカルキャッシュアクセス信号を監視し、前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記バス制御装置を介して他のプロセッサに通知することを特徴とする。
ここで、前記少なくとも1つのキャッシュ制御手段は、さらに、前記ローカルキャッシュアクセス信号に対応するデータをメモリから読み出すためのメモリ読み出し要求を共有メモリ制御装置を介してメモリに発行するようにしてもよい。
この構成によれば、擬似情報を偽りの共有(キャッシュヒット)情報の伝達することによって、例えば、2つ以上のローカルキャッシュが同時にキャッシュリフィルを行うことや、キャッシュミスを起こしたしたローカルキャッシュ以外のローカルキャッシュがリフィルするなど、データの整合性を柔軟に制御することができる。
ここで、前記少なくとも1つのキャッシュ制御手段と、前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータをキャッシュメモリにそれぞれ格納するようにしてもよい。
この構成によれば、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させ、キャッシュ間データ転送による共有バスの競合を削減することができる
ここで、前記少なくとも1つのキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、所属するプロセッサ内のキャッシュメモリに格納し、前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、それが属するキャッシュメモリに格納しないでCPUに出力するようにしてもよい。
この構成によれば、異なるキャシュメモリが同じデータを無駄に共有するによる実質的なキャッシュ容量の低下を防止することができる。
また、本発明の演算処理装置は、各プロセッサ間キャッシュのデータ整合性を保つための共有バスとその制御を含む共有バス制御装置と、前記第1ローカルキャッシュのアクセス内容を共有バスに伝達するキャッシュアクセス伝達手段と、前記キャッシュアクセス伝達手段によって得られたアクセス情報を元に前記第2ローカルキャッシュの監視を行う前記キャッシュアクセス監視手段と、前記第2ローカルキャッシュ監視手段によって検索された結果を元に、第2ローカルキャッシュの制御およびそれにかかわるデータ転送を行う前記データ整合性管理手段と、前記第2ローカルキャッシュ監視手段によって検索された結果にかかわらず、第2ローカルキャッシュの制御およびそれにかかわるデータ転送を行う前記擬似データ整合性管理手段により、マルチプロセッサで、同じデータを参照するCPUが複数存在した場合に、それぞれのローカルキャッシュのキャッシュミス発生率を低下させることができる手段を有している。
この構成によれば、マルチプロセッサ構成のローカルキャッシュにおいて、各プログラムがそれぞれのCPUで動作するため、ローカルキャッシュの参照局所性が低下する。そのため、各ローカルキャッシュ内でのキャッシュヒット率が低下し、かつ、他ローカルキャッシュにデータが記憶されている場合でも、キャッシュ間データ転送の確率が増加するため、共有バスの競合が発生し、キャッシュミスペナルティーが大きくなるという問題に対して、キャッシュリフィル時に他のローカルキャッシュに対してもリフィル動作を同時に行うことによって、上記参照局所性低下によるキャッシュヒット率の低下を回避する。
ここで演算処理装置では、記載の演算処理手段に加えて、前記CPUの命令デコード結果から第1擬似データ整合性管理要求命令伝達手段によって生成される第1擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理装置が動作することによって、メモリアクセスのみ、ローカルキャッシュの一括リフィルを行う手段を有していてもよい。
この構成によれば、常にキャッシュリフィル動作を他ローカルキャッシュでも行うのではなく、命令でその動作を限定することによって、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
ここで、前記演算処理装置に加えて、前記CPUの命令実行時のプロセッサ状態記憶手段の第1擬似データ整合性管理要求モード記憶手段によって生成される第1擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットを追加変更することなく、ローカルキャッシュの一括リフィルを行う手段を有していてもよい。
この構成によれば、プロセッサ状態レジスタによって管理されるモード信号でその動作を限定することによって、命令セットの変更なく、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
ここで、前記演算処理装置に加えて、前記CPUからアクセスされる論理アドレス空間から第1擬似データ整合性管理要求空間判定手段によって生成される第1擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットの追加変更や、プロセッサのモード変更を行うことなく、ローカルキャッシュの一括リフィルを制御する手段を有していてもよい。
この構成によれば、アクセスされるアドレスに対して、それをマスクするマスクレジスタと、比較するアクセスレジスタで、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
ここで、前記演算処理装置に加えて、論理アドレス空間に対して、物理アドレス空間に変換を行うTLBを有し、前記TLBの各エントリには、第1擬似データ整合性管理要求アドレス変換手段によって生成される第1擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットの追加を行うことなく、前記CPUからアクセスされる論理アドレスのページ単位、プロセス識別子単位でローカルキャッシュの一括リフィルを制御する手段を有していてもよい。
この構成によれば、アクセスされるアドレスに対して、TLBに設定されているフラグ信号で、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
ここで、前記演算処理装置に加えて、前記第1ローカルキャッシュにアクセスされるアドレスと、前記第1擬似データ整合性管理要求アドレス記憶手段と、前記第1擬似データ整合性管理要求アドレスマスク記憶手段によって生成される第1擬似データ整合性管理要求信号を元に、前記擬似データ整合性管理手段が動作することによって、命令セットの追加供給を行うことなく、また、MMUをもたないプロセッサでも、前記CPUからアクセスされる論理アドレスの任意のアドレスでローカルキャッシュの一括リフィルを制御する手段を有していてもよい。
ここで、前記演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュが、前記第2ローカルキャッシュから得られた対象データを前記第1ローカルキャッシュの前記キャッシュメモリには格納することによって、前記CPUからのアクセス要求を元に、マルチプロセッサで共有されると予測される対象データを一括リフィルする擬似データ整合性管理共有判定手段を有していてもよい。
ここで、前記演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュが、前記第2ローカルキャッシュから得られた対象データを前記第1ローカルキャッシュの前記キャッシュメモリには格納しないことによって、前記CPUからのアクセス要求に対して、前記第1ローカルキャッシュの格納状態を保存したまま、優先度の低い第2ローカルキャッシュに対象データを格納することができる擬似データ整合性管理共有判定手段を有していてもよい。
ここで、前記演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュが、前記第2ローカルキャッシュから得られた対象データを前記第1ローカルキャッシュの前記キャッシュメモリには格納するかどうか擬似データ整合性管理共有判定手段をもとに判定してもよい。
ここで、演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュや、前記第2ローカルキャッシュが、前記データ整合性管理手段によって発行されるリフィル要求回数と同じ回数で、擬似データ整合性管理手段によって発行されることを特徴とすることによってリフィル制御を簡単にすることができる前記擬似データ整合性管理要求回数記憶手段を有していてもよい。
ここで、演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュや、前記第2ローカルキャッシュが、前記データ整合性管理手段によって発行されるリフィル要求回数と異なる回数で、擬似データ整合性管理手段がリフィル要求を発行することを特徴とすることによって、グラフィック演算処理などに適した大容量のキャッシュリフィルに適している、擬似データ整合性管理要求回数記憶手段を有していてもよい。
ここで、演算処理装置では、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュや、前記第2ローカルキャッシュが、前記データ整合性管理手段によって発行されるリフィル要求回数と異なり、擬似データ整合性管理手段がリフィル要求を動的に切り替えて発行することを特徴とする前記擬似データ整合性管理要求回数記憶手段を有していてもよい。
ここで、演算処理装置において、前記擬似データ整合性管理手段によって、ダーティービットを持たないキャッシュメモリより構成されている第2ローカルキャッシュにリフィル動作を行った後、前記CPUが第1ローカルキャッシュへ書き込み動作を行った場合、第2データ整合性管理手段がキャッシュメモリを更新すると同時に、外部メモリに書き込み要求を発行することによって、ダーティービットを持たないキャッシュメモリでもデータをキャッシュすることができる特徴をもった前記第2データ整合性管理手段を有していてもよい。
ここで、演算処理装置において、前記擬似データ整合性管理手段によって、ダーティービットを持たないキャッシュメモリより構成されている第2ローカルキャッシュにリフィル動作を行った後、前記CPUが第1ローカルキャッシュへ書き込み動作を行った場合、第2データ整合性管理手段がキャッシュメモリを無効にすると同時に、外部メモリに書き込み要求を発行することによって、ダーティービットを持たないキャッシュメモリでもデータをキャッシュすることができる特徴をもった前記第2データ整合性管理手段を有していてもよい。
ここで、演算処理装置において、前記擬似データ整合性管理手段によって、ダーティービットを持たないキャッシュメモリより構成されている第2ローカルキャッシュにリフィル動作を行った後、前記CPUが第1ローカルキャッシュへ書き込み動作を行った場合、前記データ整合性管理書き込みモード記憶手段によって第2データ整合性管理手段がキャッシュメモリを無効にするか、更新するかを決定すると同時に、外部メモリに書き込み要求を発行することによって、ダーティービットを持たないキャッシュメモリでもデータをキャッシュすることができる特徴をもった前記第2データ整合性管理手段を有していてもよい。
本発明の効果は、マルチプロセッサ構成のローカルキャッシュにおいて、各プログラムがそれぞれのCPUで動作するため、ローカルキャッシュの参照局所性が低下する。そのため、各ローカルキャッシュ内でのキャッシュヒット率が低下し、かつ、他ローカルキャッシュにデータが記憶されている場合でも、キャッシュ間データ転送の確率が増加するため、共有バスの競合が発生し、キャッシュミスペナルティーが大きくなるという問題に対して、キャッシュリフィル時に他のローカルキャッシュに対してもリフィル動作を同時に行うことによって、上記参照局所性低下によるキャッシュヒット率の低下を回避する。
本発明の効果は、発生する不要なキャッシュリフィル動作を回避するため、常にキャッシュリフィル動作を他ローカルキャッシュでも行うのではなく、上記構成によって、命令でその動作を限定することによって、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
本発明の効果は、命令セットの変更の必要性をなくすために、プロセッサ状態レジスタによって管理されるモード信号でその動作を限定することによって、命令セットの変更なく、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
本発明の効果は、モード設定の切り替えによる命令実行効率の削減のために、アクセスされるアドレス空間でその動作を限定することによって、モード設定の変更なく、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
本発明の効果は、切り替え設定の粒度の粗さによって発生する、プログラム難易度上昇の問題を回避するために、アクセスされるアドレスに対して、それをマスクするマスクレジスタと、比較するアクセスレジスタで、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
本発明の効果は、プロセス単位の切り替え粒度の粗さによって発生する、プログラム難易度上昇の問題を回避するために、アクセスされるアドレスに対して、TLBに設定されているフラグ信号で、アクセスするアドレスを設定できることによって、アクセスされるアドレス空間の粒度を細かくしプログラム容易性を向上し、上記参照局所性低下によるキャッシュヒット率の低下を回避するとともに、不要なリフィル動作による有効キャッシュ容量の低下を削減することができる。
本発明のさらに他の効果は、ローカルキャッシュ間のコピーデータによる、マルチプロセッサ全体のローカルキャッシュの容量効率の低下のために、本来共有させるデータを他ローカルキャッシュのみに記憶することによって、マルチプロセッサでコピーデータを削減し、キャッシュ容量効率を増加させることができ、かつ、自ローカルキャッシュのキャッシュメモリの書き換えを制限できるため、リアルタイム要求が厳しいデータをキャッシュに残すことができる。
本発明のさらに他の効果は、グラフィック処理などの大容量データをキャッシュにリフィルしたい場合、本来のリフィル動作関係ないキャッシュ動作において、偽りの共有情報によってキャッシュリフィルを起動し、また、その回数を変更することによって、リフィルサイズの変更を行うことなく、キャッシュの参照局所性を向上させることができる。
本発明のさらに他の効果は、他ローカルキャッシュでリフィルされたデータが、ダーティービットを持たないキャッシュメモリに対してキャッシュリフィルが発生した場合、データ書き込みを可能とし、かつ、外部メモリとのデータ整合性を維持することができる。
以下、本発明の実施の形態を、図面を参照しながら説明する。
(実施の形態1)
演算処理装置の実施例として図1、図2、図13、図15Aを用いて説明する。
図1は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、2つのプロセッサが共有バスとその制御装置からなる共有バス制御部に接続されたマルチプロセッサ100の機能ブロック構成図である。また、プロセッサ101,102は、CPU111,112とローカルキャッシュ121,122からなり、ローカルキャッシュ121,122は、命令ローカルキャッシュ131,151とデータローカルキャッシュ141,161から構成されている。命令ローカルキャッシュ131,151、および、データローカルキャッシュ141,161は、キャッシュメモリ132,142,152,162とそのキャッシュ制御部133,143,153,163からなり、キャッシュ制御部133,143,153,163は、CPU111,112と外部メモリとのデータ転送およびそのデータ整合性を管理し、各キャッシュ間のデータ転送およびそのデータ整合性を管理するデータ整合性管理部136,146,156,166と、他ローカルキャッシュにアクセス内容を伝達するキャッシュアクセス伝達部134,144,154,164と、他ローカルキャッシュがアクセスした内容を監視するキャッシュアクセス監視部135,145,155,165と、他ローカルキャッシュがアクセスした場合に自ローカルキャッシュが対象データをすでにキャッシュメモリに格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部137,147,157,167とを有している。
命令ローカルキャッシュ131、151は、CPU111,112と共有バス制御部170に接続されており、CPU111,112と命令ローカルキャッシュ間131,151では、CPU111,112からのフェッチアドレスを伝達するCPUフェッチアドレスバスが接続されており、CPU111,112からのフェッチアドレスに対応する命令を伝達するCPUフェッチデータバスが接続されている。また、命令ローカルキャッシュ131,151と共有バス制御部間170では、命令ローカルキャッシュ131,151からのフェッチアドレスを伝達する命令ローカルキャッシュフェッチアドレスバスが接続されており、命令ローカルキャッシュ131,151からのフェッチアドレスに対応する命令や、他ローカルキャッシュ131,151からの共有データを伝達する命令ローカルキャッシュフェッチデータバスが接続されている。さらに、他ローカルキャッシュとのデータ転送においては、他ローカルキャッシュのアクセス内容を伝達する命令ローカルキャッシュ共有アドレスバスが接続されており、命令ローカルキャッシュから共有バス制御部に転送される命令ローカルキャッシュ共有データバスが接続されている。
データローカルキャッシュ141,161は、CPU111,112と共有バス制御部170に接続されており、CPU111,112とデータローカルキャッシュ141,161間では、CPU111,112からの読み出しおよび書き込みアドレスを伝達するCPUデータアドレスバスが接続されており、CPU111,112からの読み出しアドレスに対応するデータを伝達するCPUデータ読み出しデータバスと、CPU111,112からの書き込みアドレスに対応するデータを伝達するCPUデータ書き込みデータバスが接続されている。また、データローカルキャッシュ141,161と共有バス制御部170間では、データローカルキャッシュ141,161からのデータ読み出しおよび書き込みアドレスを伝達するデータローカルキャッシュアドレスバスが接続されており、データローカルキャッシュ141,161からの読み出しアドレスに対応するデータや、他ローカルキャッシュからの共有データを伝達するデータローカルキャッシュ読み出しデータバスが接続されている。さらに、他ローカルキャッシュとのデータ転送においては、他ローカルキャッシュのアクセス内容を伝達するデータローカルキャッシュ共有アドレスバスが接続されており、データローカルキャッシュ141,161から共有バス制御部へのデータ転送や、データローカルキャッシュ141,161から外部メモリへデータ転送されるデータローカルキャッシュ共有データバスが接続されている。
なお、本実施の形態1では、共有バス制御部170に接続されているデータバスは、外部メモリへのアクセスとキャッシュ間のアクセスで兼用されているが、バス競合状態をできるだけ回避するために外部メモリ用のバスとキャッシュ間アクセス用のバスを個別に備えるなどの方法もあり、この限りではない。
CPU111,112から命令ローカルキャッシュ131,151およびデータローカルキャッシュ141,161へのメモリアクセスで、キャッシュアクセス伝達部134,144,154,164は、キャッシュを使用しない(非キャッシュ)読み出しアクセス、および、キャッシュを使用しない(非キャッシュ)書き込みアクセス、キャッシュを使用する(キャッシュ)書き込みアクセス、もしくは、キャッシュを使用する(キャッシュ)読み出しアクセスのキャッシュミスアクセスの場合に、命令ローカルキャッシュおよびデータローカルキャッシュのアクセスアドレス信号を共有バス制御部170に伝達する。この伝達信号によって他ローカルキャッシュはデータ整合性を維持するための処理が必要かどうかを判定することができる。
キャッシュアクセス監視部135,145,155,165は、キャッシュアクセス伝達部134m144,154,164から共有バス制御部170に伝達された非キャッシュ読み出しアクセス、および、キャッシュ読み出しのキャッシュミスアクセスに対して、自ローカルキャッシュのキャッシュメモリを検索する。このとき、データ整合性管理部136,146,156,166は、自ローカルキャッシュが、キャッシュアクセス伝達部134,144,154,164によってアクセスアドレスを伝達した他ローカルキャッシュのアクセス対象データを記憶している場合に、自ローカルキャッシュが共有バス制御部170に対象データ、もしくは、対象エントリのデータを出力するよう制御する。
キャッシュアクセス監視部135,145,155,165は、キャッシュアクセス伝達部134,144,154,164から共有バス制御部170に伝達されたキャッシュ書き込みのキャッシュヒットアクセスに対して自ローカルキャッシュのキャッシュメモリを検索する。このとき、データ整合性管理部136,146,156,166は、自ローカルキャッシュが、キャッシュアクセス伝達部134,144,154,164によってアクセスアドレスを伝達した他ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、自ローカルキャッシュが共有バス制御部170に出力されている対象データを記憶情報として更新するか、もしくは、自ローカルキャッシュの対象エントリの記憶情報を無効化する。
キャッシュアクセス監視部135,145,155,165は、キャッシュアクセス伝達部134,144,154,164から共有バス制御部170に伝達されたキャッシュ書き込みのキャッシュミスアクセスに対して自ローカルキャッシュのキャッシュメモリを検索する。このとき、データ整合性管理部136,146,156,166は、自ローカルキャッシュが、キャッシュアクセス伝達部134,144,154,164によってアクセスアドレスを伝達した他ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、自ローカルキャッシュが共有バス制御部170に出力されている対象データを記憶情報として更新し、自ローカルキャッシュの対象エントリのデータを共有バス制御部170に出力するか、もしくは、自ローカルキャッシュの対象エントリの記憶情報を無効化する。
キャッシュアクセス監視部135,145,155,165は、キャッシュアクセス伝達部134,144,154,164から共有バス制御部170に伝達された非キャッシュ書き込みアクセス対して自ローカルキャッシュのキャッシュメモリを検索する。自ローカルキャッシュが、キャッシュアクセス伝達部134,144,154,164によってアクセスアドレスを伝達した他ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、自ローカルキャッシュが共有バス制御部170に出力されている対象データを記憶情報として更新するか、もしくは、自ローカルキャッシュの対象エントリの記憶情報を無効化する。
擬似データ整合性管理部137,147,157,167は、キャッシュアクセス伝達部から共有バス制御部170に伝達されたキャッシュ読み出しアクセスのキャッシュミスアクセス、および、キャッシュ書き込みアクセスのキャッシュミスアクセスがあった場合に、自ローカルキャッシュが対象データをすでにキャッシュメモリ132,142,152,162に格納していると偽って動作し、外部メモリからのリフィル動作を開始する。
以上で、図1に記載の演算処理装置の機能ブロック構成図を示した。
図13は、キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。同図では、プロセッサ102内のデータローカルキャッシュ2でキャッシュミスヒットが発生した場合にデータ整合性をとる動作を示している。
同図のように、プロセッサ102内のデータローカルキャッシュ122でキャッシュミスヒットが発生した場合(S201:yes)、プロセッサ102は、キャッシュアクセス制御部163によってキャッシュ書き込みミスアクセスが発生したことをキャッシュミス情報S1として共有バス制御部170に送信する(S202)。このキャッシュミス情報S1には、メモリアクセスアドレス、リード/ライトの区別などのキャッシュアクセス情報が含まれる。
プロセッサ101は、キャッシュミス情報S1を受信すると、共有バス制御部170からキャッシュアクセス制御部143によってプロセッサ2のキャッシュミス情報S1に含まれるメモリアクセスアドレスのデータがエントリーされているかキャッシュメモリ142を検索する(S101)。この検索の結果、データがエントリーされていない場合つまりスヌープキャッシュミスアクセスの場合(S102:no)、プロセッサ101は、擬似共有情報S2をプロセッサ102に送信する(S103)。擬似共有情報S2は、実際にはスヌープキャッシュミスであるにも関わらずスヌープキャッシュヒットしたことを示す偽りの情報である。
さらに、プロセッサ101は、擬似データ整合性管理部146によって、キャッシュメモリリフィルのための外部メモリ読み出し要求を共有バス制御部170に発行する(S104)。これにより、共有バス制御部170は、スヌープキャッシュミスしたデータを外部メモリから共有バス170上に読み出す。その際、外部メモリ読み出し要求を発行したプロセッサ101は、共有バス170上に読み出されたデータS4をキャッシュメモリにリフィルし(S105)、これと同時に、擬似共有情報を受信したプロセッサ102も、共有バス170上に読み出されたデータをキャッシュメモリにリフィルする(S203)。このように、各ローカルキャッシュには、外部メモリ読み出しデータS4が同時にリフィルされることになる。
リフィルの後、プロセッサ101は、キャッシュミス情報S1がキャッシュへの書き込みアクセスにおけるキャッシュミスアクセスを示していれば(S106)、リフィルしたエントリーを無効化する(S107)。
一方、S102において、データがエントリーされている場合つまりスヌープキャッシュヒットアクセスの場合(S102:yes)、プロセッサ101は、共有情報S3をプロセッサ102に送信する(S103)。共有情報S3は、スヌープキャッシュヒットしたことを示す情報であり、上記の擬似共有情報S2と同内容でよい。さらに、プロセッサ101は、キャッシュ間転送を行い(S109)、この転送によりプロセッサ102は、転送データS5をローカルキャッシュにリフィルする(S203)。プロセッサ101は、キャッシュ間転送の後、キャッシュミス情報S1がキャッシュへの書き込みアクセスにおけるキャッシュミスアクセスを示していれば(S106)、当該エントリーを無効化する(S107)。
このように、擬似共有情報S2を受信したプロセッサ102は、共有情報S3を受信した場合と同様に、共有バス170からリフィルする動作を行う。この場合、プロセッサ102は、共有バス170上に転送されるデータが外部メモリ読み出しデータS4であるか、キャッシュ間転送データS5であるかを区別しなくてよい。
なお、図13ではプロセッサ102でキャッシュミスが発生した場合を説明したが、プロセッサ101でキャッシュミスが発生した場合は、同図のプロセッサ101、102を入れ替えた動作となる。
図15Aは、実施の形態1で動作説明するためのプログラム1であり、プロセッサ1で実行される命令とプロセッサ2で実行される命令を併記している。
図2は、プログラム実行時間を説明する図であり、従来技術の課題と実施の形態1の効果を説明するために、ユニプロセッサ構成時のプログラム1実行時間(1)と、マルチプロセッサ構成時で図1に記載の擬似データ整合性管理部を使用しない場合のプログラム1実行時間(2)と、マルチプロセッサ構成時で図1に記載の擬似データ整合性管理部を使用した場合のプログラム1実行時間(3)を比較している。
この説明では、命令キャッシュにすべての命令が格納されており、データキャッシュは、有効なデータをキャッシュしていないとし、ロードストア命令実行に要する実行サイクル数は、キャッシュヒット時1サイクル、キャッシュミス時で他ローカルキャッシュヒット時1サイクル、キャッシュミス時で外部メモリアクセス時7サイクル、また、共有バスのアクセスが競合した場合、キャッシュ間転送は前者のアクセスが完了してからさらに1サイクル、キャッシュのラインサイズ転送に4サイクル要する(ただしクリティカルワードから転送開始しこの期間共有バスを占有する)と仮定して説明する。
プログラム1がユニプロセッサによってシーケンシャルに(プロセッサ1の命令1から命令5、そして、プロセッサ2の命令1から7と)実行された場合について、図1、および、図2(A)を用いて説明する。ユニプロセッサの動作説明は、図1のプロセッサ1のみが操作しているとして説明する。
ユニプロセッサは、図2(A)のT1時にレジスタ転送命令1を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令である。
ユニプロセッサは、図2(A)のT2時にロード命令2を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロードする)命令である。また、このアクセスは、キャッシュミスアクセス、キャッシュ間転送なし、バス競合なしのため、命令実行サイクルはT2からT8の7サイクルとなる。
ユニプロセッサは、図2(A)のT9時に加算命令3を実行する。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
ユニプロセッサは、図2(A)のT10時にレジスタ転送命令4を実行する。命令4は、レジスタA1にアドレス0x40000100を格納する命令である。
ユニプロセッサは、図2(A)のT11時にストア命令5を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに格納する命令である。また、このアクセスは、キャッシュミスアクセス、キャッシュ間転送なし、バス競合なしのため、命令実行サイクルはT11からT17の7サイクルとなる。
ユニプロセッサは、図2(A)のT18時に命令6のクリア命令を実行する。命令6は、レジスタD0をクリア(0にする)命令である。
ユニプロセッサは、図2(A)のT19時に命令7のレジスタ転送命令7を実行する。命令7は、レジスタA0に0x40000104を格納する命令である。
ユニプロセッサは、図2(A)のT20時に命令8のロード命令を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロードする)命令である。また、このアクセスは、キャッシュヒットアクセスのため、命令実行サイクルはT20の1サイクル実行となる。
ユニプロセッサは、図2(A)のT21時に命令9のレジスタ転送命令を実行する。命令9は、レジスタA1に0x40000004を格納する命令である。
ユニプロセッサは、図2(A)のT22時に命令10のロード命令を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロードする)命令である。また、このアクセスは、キャッシュヒットアクセスのため、命令実行サイクルは、T22の1サイクル実行となる。
ユニプロセッサは、図2(A)のT23時に命令11の加算命令を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
ユニプロセッサは、図2(A)のT24時に命令12のストア命令を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに格納する命令である。また、このアクセスは、キャッシュヒットアクセスのため、命令実行サイクルはT20の1サイクルとなる。
以上のことから、ユニプロセッサ構成時にプログラム1を実行した場合、実行サイクル24サイクルであることがわかる。
次に、マルチプロセッサ構成時で擬似データ整合性管理部を用いない、従来のスヌープキャッシュの場合を第1マルチプロセッサとして以下に説明する。
第1マルチプロセッサは、図2(B)のT1時にプロセッサ101でレジスタ転送命令1、プロセッサ102でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第1マルチプロセッサは、図2(B)のT2時にプロセッサ101でロード命令2、プロセッサ102でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。命令2のアクセスによって、プロセッサ101は、キャッシュアクセス伝達部144によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ102は、共有バス制御部170からキャッシュアクセス監視部165によってプロセッサ101のアクセス内容でキャッシュメモリ162を検索する。プロセッサ102は、スヌープキャッシュミスアクセスのためキャッシュ間転送を行わない。共有バス制御部170は、共有バス171未使用のため、共有バスアクセス待ちサイクルを必要としない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第1マルチプロセッサは、図2(B)のT3時にプロセッサ101でロード命令2を実行中であり、プロセッサ102でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。命令8のアクセスによって、プロセッサ102は、キャッシュアクセス伝達部164によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ101は、共有バス制御部170からキャッシュアクセス監視部144によってプロセッサ102のアクセス内容でキャッシュメモリ142を検索する。プロセッサ101は、スヌープキャッシュミスアクセスのためキャッシュ間転送を行わない。共有バス制御部170は、共有バス171使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バス171がT12からT15の間占有される。
第1マルチプロセッサは、図2(B)のT9時にプロセッサ101で加算命令3を実行し、プロセッサ102でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第1マルチプロセッサは、図2(B)のT10時にプロセッサ101でレジスタ転送命令4を実行し、プロセッサ102でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x40000100を格納する命令である。
第1マルチプロセッサは、図2(B)のT11時にプロセッサ101でストア命令5、プロセッサ102でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ101は、キャッシュアクセス伝達部144によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ102は、共有バス制御部170からキャッシュアクセス監視部165によってプロセッサ101のアクセス内容でキャッシュメモリ162を検索する。プロセッサ102は、スヌープキャッシュヒットアクセスのためデータ整合性管理部166によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部170は、共有バス171使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第1マルチプロセッサは、図2(B)のT13時にプロセッサ101でストア命令5を実行中であり、プロセッサ102でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第1マルチプロセッサは、図2(B)のT14時にプロセッサ101でストア命令5を実行中であり、プロセッサ102でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスによって、プロセッサ102は、キャッシュアクセス制御部163によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ101は、共有バス制御部170からキャッシュアクセス監視部145によってプロセッサ102のアクセス内容でキャッシュメモリ142を検索する。プロセッサ101は、スヌープキャッシュヒットアクセスのため、データ整合性管理部146によってキャッシュ間転送が行われる。共有バス制御部170は、共有バス171使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルは、T14からT20の7サイクル実行となり、命令10のキャッシュリフィルアクセスによって共有バスがT20からT23の間占有される。
第1マルチプロセッサは、図2(B)のT21時にプロセッサ102で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第1マルチプロセッサは、図2(B)のT22時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ102は、キャッシュアクセス制御部163によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ101は、共有バス制御部170からキャッシュアクセス制御部143によってプロセッサ102のアクセス内容でキャッシュメモリ142を検索する。プロセッサ101は、スヌープキャッシュヒットアクセスのためデータ整合性管理部146によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部170は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT22からT24サイクルとなり、命令12のキャッシュライトアクセスによって共有バスがT24からT27の間占有される。
以上のことから、第1マルチプロセッサ構成時にプログラム1を実行した場合、実行サイクル24サイクルであることがわかる。
最後に、マルチプロセッサ構成時で擬似データ整合性管理部を用いた本実施の形態1の場合を第2マルチプロセッサとして以下に説明する。
第2マルチプロセッサは、図2(C)のT1時にプロセッサ101でレジスタ転送命令1、プロセッサ102でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第2マルチプロセッサは、図2(C)のT2時にプロセッサ101でロード命令2、プロセッサ102でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。命令2のアクセスによって、プロセッサ101は、キャッシュアクセス伝達部144によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ102は、共有バス制御部170からキャッシュアクセス監視部165によって、プロセッサ1のアクセス内容でキャッシュメモリ162を検索する。プロセッサ102は、スヌープキャッシュミスアクセスのためデータ整合性管理部166によってキャッシュ間転送を行わない。プロセッサ102は、擬似データ整合性管理部167によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部170に発行し、プロセッサ101およびプロセッサ102のキャッシュメモリ142,162がリフィルされる。共有バス制御部170は、共有バス171未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第2マルチプロセッサは、図2(C)のT3時にプロセッサ1でロード命令2を実行中であり、プロセッサ102でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。命令8のアクセスによって、プロセッサ102は、キャッシュアクセス伝達部164によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ101は、共有バス制御部170からキャッシュアクセス監視部145によってプロセッサ102のアクセス内容でキャッシュメモリ142を検索する。プロセッサ101は、スヌープキャッシュミスアクセスのためデータ整合性管理部146によってキャッシュ間転送を行わない。プロセッサ101は、擬似データ整合性管理部147によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部170に発行し、プロセッサ102およびプロセッサ101のキャッシュメモリがリフィルされる。共有バス制御部170は、共有バス171使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バスがT12からT15の間占有される。
第2マルチプロセッサは、図2(C)のT9時にプロセッサ101で加算命令3を実行し、プロセッサ102でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第2マルチプロセッサは、図2(C)のT10時にプロセッサ101でレジスタ転送命令4を実行し、プロセッサ102でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x40000100を格納する命令である。
第2マルチプロセッサは、図2(C)のT11時にプロセッサ1でストア命令5、プロセッサ2でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ101は、キャッシュアクセス伝達部144によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ102は、共有バス制御部170からキャッシュアクセス監視部165によってプロセッサ1のアクセス内容でキャッシュメモリ162を検索する。プロセッサ102は、スヌープキャッシュヒットアクセスのためデータ整合性管理部166によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部170は、共有バス171使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第2マルチプロセッサは、図2(C)のT13時にプロセッサ101でストア命令5を実行中であり、プロセッサ102でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第2マルチプロセッサは、図2(C)のT14時にプロセッサ101でストア命令5を実行中であり、プロセッサ102でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスは、図2(C)のT2時に命令2に対して、プロセッサ102の擬似データ整合性管理部167は、キャッシュメモリ162にリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、T14の1サイクル実行となる。
第2マルチプロセッサは、図2(C)のT15時にプロセッサ102で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第2マルチプロセッサは、図2(C)のT16時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ102は、キャッシュアクセス制御部163によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部170に伝達する。プロセッサ101は、共有バス制御部170からキャッシュアクセス制御部143によってプロセッサ2のアクセス内容でキャッシュメモリ142を検索する。プロセッサ101は、スヌープキャッシュヒットアクセスのためデータ整合性管理部146によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部170は、共有バス171使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT16からT20の5サイクルとなり、命令12のキャッシュライトアクセスによって共有バス171がT20からT23の間占有される。
以上のことから、第2マルチプロセッサ構成時にプログラム1を実行した場合、実行サイクル20サイクルであることがわかる。
以上のように、プログラム1をマルチプロセッサの構成で実行される場合と、ユニプロセッサとしてプログラム1に記載の命令をシーケンシャルに(プロセッサ101の命令(1)から(5)を実行して、プロセッサ102の命令(1)から(7)を)実行した場合を比較すると、本来、参照局所性や時間局所性の効果によってキャッシュヒットが期待されるプロセッサ102の命令(3)、命令(5)、および、命令(7)が、キャッシュミスヒットとして動作する。そのため、外部メモリに対するリフィルの発生や、プロセッサ101に対するスヌープアクセス(データ共有化)が発生するため、キャッシュメモリの局所性の効果が少なくなることが考えられる。そこで、擬似データ整合性管理部によって、各プロセッサ間のリフィル要求を共有することによって、マルチプロセッサ化による、ローカルキャッシュの参照局所性および時間局所性の低下を削減することができる。
なお、本実施の形態1では、2つのプロセッサをもとに説明を行ったが、この限りではない。3つ以上のプロセッサの場合で、同様の構成要素によって2つ以上のキャッシュメモリに同時にリフィルを行える。擬似データ整合性管理部によって2つ以上のローカルキャッシュからリフィル要求が発生したあった場合は、前記共有バス制御部によって、同じキャッシュアクセス伝達部によって発生するリフィルアクセスは、外部メモリに対してひとつのリフィルアクセス要求として、マージするとさらに本発明の効果が得られる。
なお、本実施の形態1では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
(実施の形態2)
しかし、この擬似データ整合性管理部を常に有効にする場合、局所性の低下は、防止することができるが、データの共有状態の確率が高くなるため、キャッシュ容量の低下に対する問題が発生すると考えられる。そこで、実施の形態1と比較して、無駄なキャッシュ容量の共有を行わない方法として、演算処理装置を図3、図4、および、図15Bに示すプログラム2を用いて説明する。
図3は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、図1に記載の演算処理装置に加えて、各CPU311,312には、第1擬似データ整合性管理要求部381,382を有している。第1擬似データ整合性管理要求部381,382は、キャッシュアクセス伝達部334,344,354,364と同様に、共有バス制御部370に接続されており、共有バス制御部370からそれぞれのローカルキャッシュの擬似データ整合性管理部337,347,357,367に接続されている。
擬似データ整合性管理部337,347,357,367は、第1擬似データ整合性管理要求部381,382によって伝達された第1擬似データ整合性管理要求信号がアクティブであることを検出した場合にのみ、他ローカルキャッシュのアクセス内容を、自ローカルキャッシュがすでにキャッシュメモリ332,342,352,362に格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部337,347,357,367とを有している。
図4は、図3に記載の第1擬似データ整合性管理要求部381,382の構成を示す図であり、図3に記載のCPU311,312の中の前記第1擬似データ整合性管理要求部381,382にかかわる機能ブロックの説明を記載している。各CPU400には、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部401と、命令をデコードするデコーダ410と、そのデコーダ410の出力から第1擬似データ整合性管理要求信号421を生成する第1擬似データ整合性管理要求命令検出部420を有した、第1擬似データ整合性管理要求部450から構成されており、ここで生成されたロードストアアクセスアドレス402が図3に記載の各ローカルキャッシュ331,341,351,361にそれぞれ出力され、第1擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部170に出力される。
プログラム2は、実施の形態2で動作説明するプログラムであり、プロセッサ1で実行される命令とプロセッサ2で実行される命令を併記している。プログラム1とプログラム2の違いは、命令(2)、命令(8)、および、命令(10)のみであり、この命令は、MOVC命令であり、この命令をデコードしたデコーダは、擬似データ整合性有効部によって、擬似データ整合性要求信号をアクティブし、共有バス制御部に伝達することを特徴としている。
マルチプロセッサ構成時で擬似データ整合性有効検出部と擬似データ整合性管理部を用いた第3マルチプロセッサについて図2(C)および図3、図4と、プログラム2を用いて以下に説明する。
第3マルチプロセッサは、図2(C)のT1時にプロセッサ301でレジスタ転送命令1、プロセッサ302でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第3マルチプロセッサは、図2(C)のT2時にプロセッサ301でロード命令2、プロセッサ302でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。このとき図4に示すように、CPU311は、ロードアクセスアドレスを生成するロードアクセスアドレス生成部と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部とからなり、前記擬似データ整合性管理要求部には、擬似データ整合性管理要求命令検出部があり、前記擬似データ整合性管理要求命令検出部は、命令デコーダの結果を観測することによって、命令2が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ302は、共有バス制御部からアクティブな擬似データ整合性有効信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ301およびプロセッサ302のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第3マルチプロセッサは、図2(C)のT3時にプロセッサ301でロード命令2を実行中であり、プロセッサ302でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。このとき図4に示すように、CPU312は、ロードアクセスアドレスを生成するロードアクセスアドレス生成部と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部とからなり、前記擬似データ整合性管理要求部には、擬似データ整合性管理要求命令検出部があり、前記擬似データ整合性管理要求命令検出部は、命令デコーダの結果を観測することによって、命令8が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ302は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ1は、共有バス制御部からアクティブな擬似データ整合性有効信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ302およびプロセッサ301のキャッシュメモリがリフィルされる。共有バス制御部370は、共有バス371使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バスがT12からT15の間占有される。
第3マルチプロセッサは、図2(C)のT9時にプロセッサ301で加算命令3を実行し、プロセッサ302でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第3マルチプロセッサは、図2(C)のT10時にプロセッサ301でレジスタ転送命令4を実行し、プロセッサ302でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x40000100を格納する命令である。
第3マルチプロセッサは、図2(C)のT11時にプロセッサ301でストア命令5、プロセッサ302でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第3マルチプロセッサは、図2(C)のT13時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第3マルチプロセッサは、図2(C)のT14時にプロセッサ1でストア命令5を実行中であり、プロセッサ302でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスは、図2(C)のT2時に命令2に対して、プロセッサ302の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、T14の1サイクル実行となる。
第3マルチプロセッサは、図2(C)のT15時にプロセッサ302で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第3マルチプロセッサは、図2(C)のT16時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ302は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT16からT20の5サイクルとなり、命令12のキャッシュライトアクセスによって共有バスがT20からT23の間占有される。
以上のことから、第3マルチプロセッサ構成時にプログラム2を実行した場合、実行サイクル20サイクルであることがわかり、かつ、命令コードが擬似データ整合性有効検出部を動作させる命令でない限り、この擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生することを防止できる。
実施の形態2においては、擬似データ整合性管理部による、局所性低下の防止と、それに機能変更によって考えられるキャッシュ容量の浪費(使用しない共有データ)の削減を、命令コードの追加によって改善した。
なお、本実施の形態2で示した命令は、アセンブラで書かれているが、この限りではない。たとえば、C言語の予約語を設定することにより、コンパイラによる本アセンブラの命令を出力することは可能であり、また、アセンブラで記述したライブラリをリンクして呼び出すことによって同様の効果を得ることができる。
なお、本実施の形態2では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
(実施の形態3)
しかし、命令コードの追加は、アーキテクチャの変更に相当するため、互換性の問題などが発生する。そこで、演算処理装置と比較して、特別な命令セットの追加を行うことなく、キャッシュ容量の浪費(使用しない共有データ)の削減方法として、演算処理装置を図3、図5、および、プログラム1を用いて説明する。
図5は、図3に記載の第1擬似データ整合性管理要求部381,382の構成を示す図であり、図3に記載のCPU311,312の中の前記第1擬似データ整合性管理要求部381,382にかかわる機能ブロックの説明を記載している。各CPU500には、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部501と、命令実行時のプロセッサの状態を示すプロセッサ状態記憶部510と、前記プロセッサ状態記憶部の出力から第1擬似データ整合性管理要求モード信号512を生成する第1擬似データ整合性管理要求モード検出部520を有した、第1擬似データ整合性管理要求部550から構成されており、ここで生成されたロードストアアクセスアドレス502が図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号521が前記各ローカルキャッシュ331,341,351,361に出力され、共有バス制御部370に出力される。
プログラム1は、実施の形態3で動作説明するプログラムであり、プロセッサ1で実行される命令とプロセッサ2で実行される命令を併記している。
マルチプロセッサ構成時でプロセッサ状態記憶部と第1擬似データ整合性管理要求部を用いた第4マルチプロセッサについて図2(C)および図3、図5、および、プログラム1を用いて以下に説明する。
第4マルチプロセッサは、図2(C)のT1時にプロセッサ1でレジスタ転送命令1、プロセッサ2でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第4マルチプロセッサは、図2(C)のT2時にプロセッサ301でロード命令2、プロセッサ302でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。このとき図5に示すように、CPU311は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部501と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部550とからなり、前記擬似データ整合性管理要求部550には、擬似データ整合性管理要求モード検出部520があり、前記擬似データ整合性管理要求モード検出部520は、プロセッサ状態記憶部510のプロセッサ状態を観測することによって、命令2が、擬似データ整合性管理要求信号521をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ1のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ302は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ301およびプロセッサ302のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第4マルチプロセッサは、図2(C)のT3時にプロセッサ301でロード命令2を実行中であり、プロセッサ302でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。このとき図5に示すように、CPU302は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部とからなり、前記擬似データ整合性管理要求部には、擬似データ整合性管理要求モード検出部があり、前記擬似データ整合性管理要求モード検出部は、プロセッサ状態記憶部のプロセッサ状態を観測することによって、命令8が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ302は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ301は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ302およびプロセッサ301のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バスがT12からT15の間占有される。
第4マルチプロセッサは、図2(C)のT9時にプロセッサ301で加算命令3を実行し、プロセッサ302でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第4マルチプロセッサは、図2(C)のT10時にプロセッサ301でレジスタ転送命令4を実行し、プロセッサ302でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x40000100を格納する命令である。
第4マルチプロセッサは、図2(C)のT11時にプロセッサ301でストア命令5、プロセッサ302でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ1のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第4マルチプロセッサは、図2(C)のT13時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第4マルチプロセッサは、図2(C)のT14時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスは、図2(C)のT2時に命令2に対して、プロセッサ302の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、T14の1サイクル実行となる。
第4マルチプロセッサは、図2(C)のT15時にプロセッサ302で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第4マルチプロセッサは、図2(C)のT16時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ302は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT16からT20の5サイクルとなり、命令12のキャッシュライトアクセスによって共有バスがT20からT23の間占有される。
以上のことから、第4マルチプロセッサ構成時にプログラム1を実行した場合、実行サイクル20サイクルであることがわかり、かつ、プロセッサ状態記憶部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
実施の形態3においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費(使用しない共有データ)の削減を、プロセッサ状態記憶部の追加によって第1擬似データ整合性管理要求モード信号から、擬似データ整合性管理部の動作を有効にし、命令コードに制限されることなく、その課題を改善した。
なお、プロセッサ状態記憶部によって、設定された前記第1擬似データ整合性管理要求モード信号は、本実施の形態3では、命令実行後その状態を維持し続けるとして説明しているが、ロードストア命令実行後にクリアされるように実装されている場合など、実装方法は、この限りではない。また、プロセッサ状態記憶部のように、第1擬似データ整合性管理要求モード信号と、ロードストア命令実行後にその信号をクリアするかどうかを決定する第1擬似データ整合性管理要求モードロック信号を用いることによって、第1擬似データ整合性管理要求信号をアクティブにするために、ロードストア命令を複数回実行する場合は、このロック信号をセットしておくなどの制御よって、前記プロセッサ状態記憶部の前記第1擬似データ整合性管理要求モード信号を維持させることができる。
なお、本実施の形態1では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
(実施の形態4)
しかし、前記プロセッサ状態記憶部を用いて、前記第1擬似データ整合性管理部の設定を切り替える場合は、前記プロセッサ状態記憶部の書き換えが、ロードストア命令2命令ごとに再設定する必要があるケースが発生するため、命令実効効率が低下する。そのため、実施の形態3のプロセッサ状態記憶部による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。そこで、特別な命令コードの追加を行うことなく、キャッシュ容量の浪費(使用しない共有データ)の削減方法として、ロードストア命令で実行される論理アドレス空間に応じて擬似データ整合性有効部を有効とするかどうかを決定する論理アドレス空間判定部を用いた演算処理装置を図2(C)、図3、図6、図7、図8、図9および、図15Cに示すプログラム3を用いて説明する。
図6は、論理アドレス空間のアクセスに対する物理アドレス空間のマッピング規則を示した図である。CPUからロードストア命令として生成される論理アドレスは、0x00000000から0xFFFFFFFFの範囲で用いられる。
また、0x00000000から0x1FFFFFFFは、スーパーバイザレベルと、ユーザレベルがアクセスできるSU0空間600であり、物理アドレス0x80000000から0x9FFFFFFFのR0空間610へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。0x20000000から0x3FFFFFFFは、スーパーバイザレベルと、ユーザレベルがアクセスできるSU1空間601であり、物理アドレス0xA0000000から0xBFFFFFFFのR1空間611へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。0x40000000から0x5FFFFFFFは、スーパーバイザレベルと、ユーザレベルがアクセスできるSU2空間602であり、物理アドレス0x80000000から0x9FFFFFFFのR0空間610へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにする空間である。0x60000000から0x7FFFFFFFは、スーパーバイザレベルと、ユーザレベルがアクセスできるSU3空間603であり、物理アドレス0xA0000000から0xBFFFFFFFのR1空間611へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにする空間である。0x80000000から0x9FFFFFFFは、スーパーバイザレベルがアクセスできるS4空間604であり、物理アドレス0x80000000から0x9FFFFFFFのR0空間610へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。0xA0000000から0xBFFFFFFFは、スーパーバイザレベルがアクセスできるS5空間605であり、物理アドレス0xA0000000から0xBFFFFFFFのR1空間611へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。0xC0000000から0xDFFFFFFFは、モニタレベルがアクセスできるM6空間606であり、物理アドレス0x80000000から0x9FFFFFFFのR0空間610へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。0xE0000000から0xFFFFFFFFは、モニタレベルがアクセスできるM7空間607であり、物理アドレス0xA0000000から0xBFFFFFFFのR1空間611へマッピングされる。また、この空間は擬似データ整合性管理要求信号をアクティブにしない空間である。
図7は、図3に記載の第1擬似データ整合性管理要求部381,382の構成を示す図であり、図3に記載のCPU311,312の中の前記第1擬似データ整合性管理要求部381,382にかかわる機能ブロックの説明を記載している。各CPU700には、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部701と、ロードストア命令実行時のロードストアアドレスより図6に示したマッピング規則により擬似データ整合性管理要求信号をアクティブにするかどうかを判定する擬似データ整合性管理要求空間判定部710を有した、第1擬似データ整合性管理要求部750から構成されており、ここで生成されたロードストアアクセスアドレスが図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号711が前記各ローカルキャッシュに出力され、共有バス制御部370に出力される。
図8は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、図1に記載の演算処理装置に加えて、各CPU811,812には、第2擬似データ整合性管理要求部838,848,858,868を有している。第2擬似データ整合性管理要求部838,848,858,868は、キャッシュアクセス監視部834,844,854,864と同様に、共有バス制御部870に接続されており、共有バス制御部870からそれぞれのローカルキャッシュの擬似データ整合性管理部836,846,856,866に接続されている。
擬似データ整合性管理部837,847,857,867は、第2擬似データ整合性管理要求部838,848,858,868によって伝達された第2擬似データ整合性管理要求信号がアクティブであることを検出した場合にのみ、他ローカルキャッシュのアクセス内容を、自ローカルキャッシュがすでにキャッシュメモリに格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部とを有している。
図9は、本実施の形態に係る演算処理装置の機能ブロック構成図であり、図3に記載の演算処理装置に加えて、各CPU911,912には、第2擬似データ整合性管理要求部938,948,958,968を有している。第2擬似データ整合性管理要求部938,948,958,968は、キャッシュアクセス監視部934,944,954.964と同様に、共有バス制御部970に接続されており、共有バス制御部970からそれぞれのローカルキャッシュの擬似データ整合性管理部937,947,957,967に接続されている。
擬似データ整合性管理部937,947,957,967は、第1擬似データ整合性管理要求部981,982によって伝達された第1擬似データ整合性管理要求信号がアクティブであることを検出した場合と、第2擬似データ整合性管理要求部938,948,958,968によって伝達された第2擬似データ整合性管理要求信号がアクティブであることを検出した場合のどちらかがアクティブである場合に、他ローカルキャッシュのアクセス内容を、自ローカルキャッシュがすでにキャッシュメモリに格納しているとして動作し、外部メモリからのリフィル動作を開始する擬似データ整合性管理部937,947,957,967と、を有している。
プログラム3は、実施の形態3で動作説明するプログラムであり、プロセッサ1で実行される命令とプロセッサ2で実行される命令を併記している。
プログラム3は、プログラム2と比較して、擬似データ整合性管理部を使用したいロードストア命令のアドレス設定においては、図6のSU2空間602のアドレスを使用し、擬似データ整合性管理部を使用する必要がないロードストア命令のアドレス設定においては、図6のS4空間604を使用している。
なお、図6の擬似データ整合性管理要求信号をアクティブにする領域の設定は、この限りではない。たとえば、同じ物理アドレス空間においても、あるページ単位で擬似データ整合性管理要求信号をアクティブにする領域として設定することもできる。
マルチプロセッサ構成時で擬似データ整合性管理要求空間判定部による第1擬似データ整合性管理要求部を用いた第5マルチプロセッサについて図2(C)および図3、図6、図7、図8、および、プログラム3を用いて以下に説明する。
第5マルチプロセッサは、図2(C)のT1時にプロセッサ301でレジスタ転送命令1、プロセッサ302でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第5マルチプロセッサは、図2(C)のT2時にプロセッサ301でロード命令2、プロセッサ302でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。このとき図7に示すように、CPU700は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部701と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部750とからなり、前記擬似データ整合性管理要求部750には、擬似データ整合性管理空間判定部710があり、前記擬似データ整合性管理空間判定部710は、ロードストアアクセスアドレスを観測することによって、命令2が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ302は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ301およびプロセッサ302のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第5マルチプロセッサは、図2(C)のT3時にプロセッサ301でロード命令2を実行中であり、プロセッサ302でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。このとき図7に示すように、CPU700は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部701と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部750とからなり、前記擬似データ整合性管理要求部750には、擬似データ整合性管理要求空間判定部710があり、前記擬似データ整合性管理空間判定部710は、ロードストアアクセスアドレスを観測することによって、命令8が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ302は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ301は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ302およびプロセッサ301のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バスがT12からT15の間占有される。
第5マルチプロセッサは、図2(C)のT9時にプロセッサ1で加算命令3を実行し、プロセッサ2でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第5マルチプロセッサは、図2(C)のT10時にプロセッサ301でレジスタ転送命令4を実行し、プロセッサ302でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x80000100を格納する命令である。
第5マルチプロセッサは、図2(C)のT11時にプロセッサ301でストア命令5、プロセッサ302でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ2は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第5マルチプロセッサは、図2(C)のT13時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第5マルチプロセッサは、図2(C)のT14時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスは、図2(C)のT2時に命令2に対して、プロセッサ2の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、T14の1サイクル実行となる。
第5マルチプロセッサは、図2(C)のT15時にプロセッサ302で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第5マルチプロセッサは、図2(C)のT16時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ302は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT16からT20の5サイクルとなり、命令12のキャッシュライトアクセスによって共有バスがT20からT23の間占有される。
以上のことから、第5マルチプロセッサ構成時にプログラム1を実行した場合、実行サイクル20サイクルであることがわかり、かつ、擬似データ整合性管理要求空間判定部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
実施の形態4においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費(使用しない共有データ)の削減を、ロードストア命令で実行される論理アドレス空間に応じて擬似データ整合性有効部を有効とするかどうかを決定する論理アドレス空間判定部を用いた擬似データ整合性管理要求部の追加によって特定のプロセス識別子で実行されたロードストア命令実行時のみ、擬似データ整合性管理部の動作を有効にし、プロセッサ状態記憶部に限定されることなく、その課題を改善した。
なお、本実施の形態4では、擬似データ整合性管理部を有効にする部として、第1擬似データ整合性管理要求部を用いたが、この限りではない。たとえば、図8に記載の第2擬似データ整合性管理要求部を用いることによっても、制御方法は異なるが、同じ効果を得ることができる。図9のように、第1擬似データ整合性管理要求部と、第2擬似データ整合性管理要求部の両方を用いた場合であり、ここの擬似データ整合性管理要求空間判定部が異なっていてもよい。
なお、本実施の形態1では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
(実施の形態5)
しかし、前記論理アドレス空間判定部を用いて、前記第1擬似データ整合性管理部の設定を切り替える場合は、各ユーザプログラムの内容や、スーパーバイザレベルなどの特権レベルに応じて異なり、それらを擬似データ整合性管理部のために、統一したルールでプログラムを作成することは困難である。そのため、実施の形態4の論理アドレス空間判定部による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。そこで、演算処理装置と比較して、特別な命令コードの追加を行うことなく、キャッシュ容量の浪費(使用しない共有データ)の削減方法として、ロードストア命令で実行される論理アドレスに応じて擬似データ整合性有効部を有効とするかどうかを決定する論理アドレス領域判定部を用いた演算処理装置を図2(C)、図3、図8、図9、図10および、プログラム3を用いて説明する。
図10は、図3、図9に記載の第1擬似データ整合性管理要求部、および、図8、図9に記載の第2擬似データ整合性管理要求部1050の構成を示す図であり、図3、図8、図9に記載のCPUの中の前記第1擬似データ整合性管理要求部および第2擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部1001と、第1擬似データ整合性管理要求アドレス比較部1010からなり、第1擬似データ整合性管理要求アドレス比較部1010は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号1050をアクティブにする該当アドレスであるかどうかを検出ための第1擬似データ整合性管理要求アドレス記憶部1012と、第1擬似データ整合性管理要求アドレスマスク記憶部1011と、を有した、第1擬似データ整合性管理要求部1050から構成されており、ここで生成されたロードストアアクセスアドレスが図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。図10の記載の第1擬似データ整合性管理要求信号は、ロードストアアクセスアドレス1002と第1擬似データ整合性管理要求アドレスマスク記憶部1011によって格納されたアドレスマスクとの論理積と、第1擬似データ整合性管理要求アドレス記憶部1012によって格納されたアクセスベースアドレスと、前記アドレスマスクとの論理積とを比較し、一致する場合にアクティブとなる。
マルチプロセッサ構成時で擬似データ整合性管理要求アドレス比較部による第1擬似データ整合性管理要求部を用いた第6マルチプロセッサについて図2(C)および図3、図8、図9、図10および、プログラム3を用いて以下に説明する。
まず、本実施の形態5では、プログラム実行のはじめに、図9の第1擬似データ整合性管理要求アドレス記憶部に、0x40000000を設定し、第1擬似データ整合性管理要求アドレスマスク記憶部に、0xFFFF0000を設定する。なお、この設定方法は、この限りではない。
第6マルチプロセッサは、図2(C)のT1時にプロセッサ301でレジスタ転送命令1、プロセッサ302でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第6マルチプロセッサは、図2(C)のT2時にプロセッサ301でロード命令2、プロセッサ302でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。このとき図10に示すように、CPU1000は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部1001と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部1050とからなり、前記擬似データ整合性管理要求部1050には、擬似データ整合性管理アドレス比較部1010があり、前記擬似データ整合性管理アドレス比較部1010は、ロードストアアクセスアドレスを観測することによって、命令2が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ302は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ301およびプロセッサ302のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第6マルチプロセッサは、図2(C)のT3時にプロセッサ301でロード命令2を実行中であり、プロセッサ302でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。このとき図10に示すように、CPU1000は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部1001と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部1050とからなり、前記擬似データ整合性管理要求部1050には、擬似データ整合性管理要求アドレス比較部1010があり、前記擬似データ整合性管理要求アドレス比較部1010は、ロードストアアクセスアドレスを観測することによって、命令8が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ302は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ301は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ302およびプロセッサ301のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バスがT12からT15の間占有される。
第6マルチプロセッサは、図2(C)のT9時にプロセッサ301で加算命令3を実行し、プロセッサ302でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第6マルチプロセッサは、図2(C)のT10時にプロセッサ301でレジスタ転送命令4を実行し、プロセッサ302でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x80000100を格納する命令である。
第6マルチプロセッサは、図2(C)のT11時にプロセッサ301でストア命令5、プロセッサ302でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第6マルチプロセッサは、図2(C)のT13時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第6マルチプロセッサは、図2(C)のT14時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスは、図2(C)のT2時に命令2に対して、プロセッサ302の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、T14の1サイクル実行となる。
第6マルチプロセッサは、図2(C)のT15時にプロセッサ302で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第6マルチプロセッサは、図2(C)のT16時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ302は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT16からT20の5サイクルとなり、命令12のキャッシュライトアクセスによって共有バスがT20からT23の間占有される。
以上のことから、第6マルチプロセッサ構成時にプログラム1を実行した場合、実行サイクル20サイクルであることがわかり、かつ、擬似データ整合性管理要求アドレス比較部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
実施の形態5においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費(使用しない共有データ)の削減を、ロードストア命令で実行される論理アドレスに応じて擬似データ整合性有効部を有効とするかどうかを決定する擬似データ整合性管理要求アドレス比較部を用いた擬似データ整合性管理要求部の追加によって特定の論理アドレスで実行されたロードストア命令実行時のみ、擬似データ整合性管理部の動作を有効にし、擬似データ整合性管理要求空間判定部に限定されることなく、その課題を改善した。
なお、本実施の形態5では、論理アドレスに限定して第1擬似データ整合性管理要求アドレス記憶部と第1擬似データ整合性管理要求アドレスマスク記憶部を用いたアクセスアドレスの比較を行ったが、この限りではない。論理アドレス空間との比較ではなく、第1ローカルキャッシュにアクセスされる物理アドレス、第2ローカルキャッシュにアクセスされる物理アドレスでも同様の効果を発揮することができる。
なお、実施の形態5では、ロードストア命令によってアクセスされる論理アドレスや物理アドレスの比較を行ったが、比較される対象はこの限りではない。たとえば、これらアドレス比較とあわせて、ロードストア命令実行時のCPUに格納されたプロセス識別子を比較するなどの限定を加えるとなお効果を発揮する。
なお、本実施の形態5では、第1擬似データ整合性管理要求アドレス記憶部と第1擬似データ整合性管理要求アドレスマスク記憶部は、CPUからキャッシュアクセスされるローカルキャッシュで有しているデータアクセスベースアドレス記憶部およびその比較部が共有バス制御部を通して他ローカルキャッシュの擬似データ整合性管理部に入力されているがこの限りではない。たとえば、他ローカルキャッシュの第2擬似データ整合性管理要求アドレス記憶部と第2擬似データ整合性管理要求アドレスマスク記憶部を用いた他ローカルキャッシュの擬似データ整合性管理部が制御される場合も、同等の動作をさせることができる。
なお、本実施の形態1では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
(実施の形態6)
しかし、共有データの必要性の制御単位は、同じ論理アドレス空間のなかでもそれぞれ共有データの必要がある場合と、共有データの必要がない場合の両方があると考えられる。たとえば、同じユーザレベルで、同じプロセス識別子で、同じアドレス空間によっても、プログラムのページアドレスによって、共有データが必要になるときと、そうでないときが存在する。そのため、実施の形態4の擬似データ整合性管理要求空間判定部や、実施の形態5の擬似データ整合性管理要求アドレス比較部を用いた擬似データ整合性管理要求部による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。 そこで、特別な命令コードの追加を行うことなく、キャッシュ容量の浪費(使用しない共有データ)の削減方法として、アクセスされる論理アドレス空間のTLBの第1擬似データ整合性管理要求フラグ記憶部によって擬似データ整合性管理部の動作を制御する演算処理装置を図2(C)、図3、図8、図9、図11、および、プログラム3を用いて説明する。
図11は、図3、図9に記載の第1擬似データ整合性管理要求部の構成を示す図であり、図3、図8、図9に記載のCPUの中の前記第1擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部1101と、命令実行時のプロセッサの状態を記憶するプロセッサ状態記憶部1102と、命令実行時のプロセス番号を記憶するプロセス識別子記憶部1103と、TLB1105から構成される、第1擬似データ整合性管理要求アドレス変換部1150からなり、第1擬似データ整合性管理要求アドレス変換部1180は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号をアクティブにする該当アドレスであるかどうかを検出ためのTLBタグ部の論理アクセスタグ部1110と物理アドレスデータ部1140とからなり、論理アドレスタグ部1110には、各エントリに、論理アドレスタグ1111〜1118と、特権レベル1121〜1128、プロセス識別子1131〜1138が格納されている。物理アドレス部1140には、論理アドレスタグ部の各エントリに対応して物理アドレス1141〜1148と、第1擬似データ整合性管理要求フラグ1151〜1158が格納されている。ロードストア命令が実行されると、ロードストアアクセスアドレス部1101から論理アドレスが入力され、プロセッサ状態記憶部1102から特権レベルを示す信号が入力され、プロセス識別子記憶部1103からは、プロセス番号が入力される。上記入力信号と一致する論理アドレスタグエントリがあった場合に、TLBがヒットし、そのエントリに対応する物理アクセスアドレスと、擬似データ整合性管理要求フラグが出力され、ロードストアアクセスアドレスと、擬似データ整合性管理要求信号1173として、図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号1173が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。
マルチプロセッサ構成時で擬似データ整合性管理要求アドレス変換部による第1擬似データ整合性管理要求部を用いた第7マルチプロセッサについて図2(C)および図3、図8、図9、図11および、プログラム3を用いて以下に説明する。
まず、本実施の形態6では、プログラム実行のはじめに、図11の第1擬似データ整合性管理要求アドレス変換部の論理アドレスタグ1111に、0x40000000を設定し、物理アドレスタグ1141に、物理アドレス0x80000000と、擬似データ整合性管理要求フラグ1151を設定する。また、説明を簡単にするため、プロセス識別子1121は0、特権レベル1131の設定はスーパーバイザレベル、であるとする。なお、この設定方法は、この限りではない。
第7マルチプロセッサは、図2(C)のT1時にプロセッサ301でレジスタ転送命令1、プロセッサ302でクリア命令6を実行する。命令1は、レジスタA0にアドレス0x40000000を格納する命令であり、命令6は、レジスタD0をクリア(0にする)命令である。
第7マルチプロセッサは、図2(C)のT2時にプロセッサ301でロード命令2、プロセッサ302でレジスタ転送命令7を実行する。命令2は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令であり、命令7は、レジスタA0に0x40000104を格納する命令である。このとき図11に示すように、CPU1100は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部1101と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部1150とからなり、前記擬似データ整合性管理要求部1150には、擬似データ整合性管理アドレス変換部1180があり、前記擬似データ整合性管理アドレス変換部1180は、ロードストアアクセスアドレスを観測することによって、命令2が擬似データ整合性管理要求信号をアクティブにするアドレスであることを検出し、共有バス制御部に伝達する。プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によって、プロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ302は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ301およびプロセッサ302のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス未使用のため、共有バスアクセス待ちサイクルは発生しない。よって、命令実行サイクルはT2からT8の7サイクルとなり、命令2のキャッシュリフィルアクセスによって共有バスがT8からT11の間占有される。
第7マルチプロセッサは、図2(C)のT3時にプロセッサ301でロード命令2を実行中であり、プロセッサ302でロード命令8を実行する。命令8は、レジスタA0に示されているアドレスからデータをレジスタD0に読み出す(ロード)命令である。このとき図11に示すように、CPU1100は、ロードストアアクセスアドレスを生成するロードストアアクセスアドレス生成部1101と、第1擬似データ整合性管理要求信号をアクティブにする擬似データ整合性管理要求部1150とからなり、前記擬似データ整合性管理要求部1150には、擬似データ整合性管理要求アドレス変換部1180があり、前記擬似データ整合性管理要求アドレス変換部1180は、ロードストアアクセスアドレスを観測することによって、命令8が擬似データ整合性管理要求信号をアクティブにする命令であることを検出し、共有バス制御部に伝達する。プロセッサ302は、キャッシュアクセス伝達部によってキャッシュ読み出しミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュミスアクセスのためデータ整合性管理部によってキャッシュ間転送を行わない。プロセッサ301は、共有バス制御部からアクティブな擬似データ整合性管理要求信号を入力するため、擬似データ整合性管理部によってキャッシュリフィルアクセスのための外部メモリ読み出し要求を共有バス制御部に発行し、プロセッサ302およびプロセッサ301のキャッシュメモリがリフィルされる。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルが必要となる。よって、命令実行サイクルはT3からT12の10サイクルとなり、命令8のキャッシュリフィルアクセスによって共有バスがT12からT15の間占有される。
第7マルチプロセッサは、図2(C)のT9時にプロセッサ1で加算命令3を実行し、プロセッサ302でロード命令8を実行中である。命令3は、即値0x05を、レジスタD0と加算し、その結果をD0に格納する命令である。
第7マルチプロセッサは、図2(C)のT10時にプロセッサ301でレジスタ転送命令4を実行し、プロセッサ302でロード命令8を実行中である。命令4は、レジスタA1にアドレス0x80000100を格納する命令である。
第7マルチプロセッサは、図2(C)のT11時にプロセッサ301でストア命令5、プロセッサ302でレジスタ転送命令9を実行する。命令5は、レジスタD0の内容をレジスタA1が示すメモリに書き込む(ストア)命令である。命令5のアクセスによって、プロセッサ301は、キャッシュアクセス伝達部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ302は、共有バス制御部からキャッシュアクセス監視部によってプロセッサ301のアクセス内容でキャッシュメモリを検索する。プロセッサ302は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、共有バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT11からT16の6サイクルとなり、命令5のキャッシュリフィルアクセスによって共有バスがT16からT19の間占有される。
第7マルチプロセッサは、図2(C)のT13時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でデータ転送命令9を実行中である。命令9は、レジスタA1に40000004を格納する命令である。
第7マルチプロセッサは、図2(C)のT14時にプロセッサ301でストア命令5を実行中であり、プロセッサ302でロード命令10を実行する。命令10は、レジスタA1に示されているアドレスからデータをレジスタD1に読み出す(ロード)命令である。命令10のアクセスは、図2(C)のT2時に命令2に対して、プロセッサ302の擬似データ整合性管理部は、キャッシュメモリにリフィル要求を発行しているため、キャッシュ読み出しヒットアクセスとなる。よって、命令実行サイクルは、T14の1サイクル実行となる。
第7マルチプロセッサは、図2(C)のT15時にプロセッサ302で加算命令11を実行する。命令11は、レジスタD1をレジスタD0と加算し、その結果をD0に格納する命令である。
第7マルチプロセッサは、図2(C)のT16時にストア命令12を実行する。命令12は、レジスタD0の内容をレジスタA0が示すメモリに書き込む(ストア)命令である。命令12のアクセスによって、プロセッサ302は、キャッシュアクセス制御部によってキャッシュ書き込みミスアクセスが発生したことを共有バス制御部に伝達する。プロセッサ301は、共有バス制御部からキャッシュアクセス制御部によってプロセッサ302のアクセス内容でキャッシュメモリを検索する。プロセッサ301は、スヌープキャッシュヒットアクセスのためデータ整合性管理部によってキャッシュ間転送が行われた後、該当エントリを無効化する。共有バス制御部は、バス使用中のため、共有バスアクセス待ちサイクルを必要とする。よって、命令実行サイクルはT16からT20の5サイクルとなり、命令12のキャッシュライトアクセスによって共有バスがT20からT23の間占有される。
以上のことから、第7マルチプロセッサ構成時にプログラム3を実行した場合、実行サイクル20サイクルであることがわかり、かつ、擬似データ整合性管理要求アドレス変換部によって擬似データ整合性管理部が有効にならないことを保障しているため、局所性低下防止のための擬似データ整合性管理部によって不要なデータ共有が発生を、命令セットの追加なく防止することができる。
実施の形態6においては、擬似データ整合性管理部による、局所性低下の防止と、その機能変更によって考えられるキャッシュ容量の浪費(使用しない共有データ)の削減を、ロードストア命令実行時のアクセスする論理アドレス空間から変換されるTLBに格納された擬似データ整合性管理要求フラグ信号によって判定される擬似データ整合性管理要求アドレス変換部によって、擬似データ整合性管理部の動作を有効にし、特権レベルやプロセス識別子、アクセスする論理アドレス空間に限定されることなく、その課題を改善した。
なお、本実施の形態6のTLBでは、論理アドレスタグ部の構成に、プロセス識別子や、特権レベルを格納し、比較対照としているが、この限りではない。たとえば、プロセス識別子を使用しないグローバルビットの設定などを用いてもよい。
なお、本実施の形態1では、説明を容易にするため、データローカルキャッシュ間のキャッシュ間転送のみを説明しているが、この限りではない。
(実施の形態7)
実施の形態5および実施の形態6に示したように、第1擬似データ整合性管理要求アドレス比較部とTLBの擬似データ整合性管理要求アドレス変換部によって、ページ単位、プロセス単位による共有データが必要・不必要が制御できるようになった。しかし、プログラムの中には、リアルタイム処理が必要になる場合と、その必要性が低い場合がある。その場合、実施の形態1から実施の形態6による擬似データ整合性管理部の制御だけでは、キャッシュ容量の浪費削減は十分でないと考えられる。そこで、キャッシュ容量の浪費(使用しない共有データ)の削減方法を改善しつつ、自ローカルキャッシュには、不要なキャッシュリプレイスを発生されることなく選択的に擬似データ整合性管理部によるキャッシュ間データ転送を行うために、擬似データ整合性管理共有判定部によってリフィルされたデータを、ロードストア命令を発行したCPUに接続されたローカルデータキャッシュのキャッシュメモリに格納するかどうかを設定することを特徴とする擬似データ整合性管理部の動作を制御する演算処理装置として、図4、図5、図7、図10、図11を用いて説明する。
図4は、前記第1擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部401と、命令をデコードするデコーダと、そのデコーダの出力から第1擬似データ整合性管理要求信号を生成する第1擬似データ整合性管理要求命令検出部420を有した、第1擬似データ整合性管理要求部450から構成されており、ここで生成されたロードストアアクセスアドレスが図3に記載の各ローカルキャッシュにそれぞれ出力され、第1擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。
このとき、第1擬似データ整合性管理要求命令検出部は、命令から、擬似データ整合性管理要求信号をアクティブにするかどうかと、第1ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
図5は、前記第1擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部501と、命令実行時のプロセッサの状態を示すプロセッサ状態記憶部510と、前記プロセッサ状態記憶部510の出力から第1擬似データ整合性管理要求モード信号を生成する第1擬似データ整合性管理要求モード検出部520を有した、第1擬似データ整合性管理要求部から構成されており、ここで生成されたロードストアアクセスアドレス502が図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号521が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。このとき、第1擬似データ整合性管理要求モード記憶部520は、プロセッサ状態記憶部510から、擬似データ整合性管理要求信号をアクティブにするかどうかと、第1ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
図7は、前記第1擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部701と、ロードストア命令実行時のロードストアアドレスより図6に示したマッピング規則により擬似データ整合性管理要求信号をアクティブにするかどうかを判定する擬似データ整合性管理要求空間判定部710を有した、第1擬似データ整合性管理要求部750から構成されており、ここで生成されたロードストアアクセスアドレスが図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号711が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。このとき、第1擬似データ整合性管理要求空間判定部710は、図6に示したマッピング規則から、擬似データ整合性管理要求信号をアクティブにするかどうかと、第1ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
図10は、前記第1擬似データ整合性管理要求部および第2擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部1001と、第1擬似データ整合性管理要求アドレス比較部1010からなり、第1擬似データ整合性管理要求アドレス比較部1010は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号1050をアクティブにする該当アドレスであるかどうかを検出ための第1擬似データ整合性管理要求アドレス記憶部1012と、第1擬似データ整合性管理要求アドレスマスク記憶部1011と、を有した、第1擬似データ整合性管理要求部1050から構成されており、ここで生成されたロードストアアクセスアドレスが図3に記載の各ローカルキャッシュに出力され、第1擬似データ整合性管理要求信号が前記各ローカルキャッシュに出力され、共有バス制御部に出力される。図10の記載の第1擬似データ整合性管理要求信号は、ロードストアアクセスアドレス1002と第1擬似データ整合性管理要求アドレスマスク記憶部1011によって格納されたアドレスマスクとの論理積と、第1擬似データ整合性管理要求アドレス記憶部1012によって格納されたアクセスベースアドレスと、前記アドレスマスクとの論理積とを比較し、一致した場合、第1擬似データ整合性管理要求アドレス比較部1010は、擬似データ整合性管理要求信号をアクティブにするかどうかと、第1ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
図11は、前記第1擬似データ整合性管理要求部にかかわる機能ブロックの説明を記載している。各CPUには、ロードストアアクセス時に生成されるロードストアアクセスアドレス生成部1101と、命令実行時のプロセッサの状態を記憶するプロセッサ状態記憶部1102と、命令実行時のプロセス番号を記憶するプロセス識別子記憶部1103と、TLB1105から構成される、第1擬似データ整合性管理要求アドレス変換部1150からなり、第1擬似データ整合性管理要求アドレス変換部1180は、ロードストア命令実行時のロードストアアドレスが擬似データ整合性管理要求信号をアクティブにする該当アドレスであるかどうかを検出ためのTLBタグ部の論理アクセスタグ部1110と物理アドレスデータ部1140とからなり、論理アドレスタグ部1110には、各エントリに、論理アドレスタグ1111〜1118と、特権レベル1121〜1128、プロセス識別子1131〜1138が格納されている。物理アドレス部1140には、論理アドレスタグ部の各エントリに対応して物理アドレス1141〜1148と、第1擬似データ整合性管理要求フラグ1151〜1158が格納されている。ロードストア命令が実行されると、ロードストアアクセスアドレス部1101から論理アドレスが入力され、プロセッサ状態記憶部1102から特権レベルを示す信号が入力され、プロセス識別子記憶部1103からは、プロセス番号が入力される。上記入力信号と一致する論理アドレスタグエントリがあった場合に、TLBがヒットし、そのエントリに対応する物理アクセスアドレスと、擬似データ整合性管理要求フラグが出力され、ロードストアアクセスアドレスと、擬似データ整合性管理要求信号1173として、図3に記載の各ローカルキャッシュに出力され、共有バス制御部に出力される。TLBがヒットした場合、第1擬似データ整合性管理要求アドレス変換部(TLB)1105は、擬似データ整合性管理要求信号をアクティブにするかどうかと、第1ローカルキャッシュメモリにデータを格納するかどうかを決定する信号を出力する。
以上のように、図4、図5、図7、図10、図11で示した、第1ローカルキャッシュメモリのデータを格納するかどうかを決定する信号は、擬似データ整合性管理共有判定部に対応し、この信号がアクティブの場合は、CPUからロードストア命令を実行したプロセッサのローカルキャッシュのキャッシュメモリにはデータを格納せず、共有バス制御部から得られたデータをCPUへ転送する。
図14は、キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。図13のフローチャートと同じ点は説明を省略して、異なる点を中心に説明する。異なる点は、ステップS102の判定内容が若干異なる点と、新たにステップS202a、S203aが追加されている点とである。
図14のステップS102においてプロセッサ102は、検索に成功したか否かの判定だけでなく、擬似データ整合性管理要求信号をアクティブであるか否かを判定する。検索に失敗し、かつ擬似データ整合性管理要求信号をアクティブである場合には、S103において擬似共有情報が送信される。
ステップ202aにおいて、プロセッサ102は、第1ローカルキャッシュメモリにデータを格納するかどうかを決定する信号がアクティブであるか否かを判定する。つまり、プロセッサ102は、この信号がアクティブであればリフィルすると決定し、S203に進み、アクティブでなければリフィルしないと決定し、S203aに進む。
ステップ203aにおいて、プロセッサ102は、外部メモリ読み出しデータS4またはキャッシュ間転送データS5をキャッシュメモリにリフィルしないで、外部メモリ読み出しデータS4またはキャッシュ間転送データS5のうちのキャッシュミスしたデータを直接CPUに転送する。
実施の形態7においては、選択的に擬似データ整合性管理部による、データリフィルアクセスにおいて、CPUからロードストア命令を実行したプロセッサのローカルキャッシュのキャッシュメモリにデータを格納するかどうかを判定し、局所性低下の影響が大きいデータアクセスに対しては格納を行い、参照の局所性よりも、既存キャッシュメモリの保護等によって自ローカルキャッシュの状態を変更したくない(キャッシュリプレイスしたくない)データアクセスに対しては、格納を行わないことによって、キャッシュ容量の浪費(使用しない共有データ)の削減方法を改善しつつ、自ローカルキャッシュには、不要なキャッシュリプレイスを発生されることなく選択的に擬似データ整合性管理部によるキャッシュ間データ転送を行うために、擬似データ整合性管理共有判定部によってリフィルされたデータを、ロードストア命令を発行したCPUに接続されたローカルデータキャッシュのキャッシュメモリに格納するかどうかを設定できることを説明した。
(実施の形態8)
実施の形態7では、データアクセスに対するリアルタイム性能要求が高いデータアクセスと、低いデータアクセスがあって、リアルタイム性が高いデータがキャッシュされている状態は選択的に保護されるようにするために、それ以外のデータに対して、擬似データ整合性管理部によって、他のキャッシュにリフィル動作を行わせ、そのデータも他のキャッシュのみにキャッシュする方法を説明し、擬似データ整合性管理部による局所性低下の課題を解決し、その機能を追加した場合に考えられるキャッシュ容量の低下の課題を解決し、リアルタイム性および、非リアルタイム性プログラムにおける、キャッシュ容量の有効活用を実現した。
しかし、プログラムの中には、キャッシュアクセスで大量データを処理し、その演算結果を格納するだけで、その結果を再利用、再計算しない(もしくは、時間局所性を越える時間間隔をもって再アクセスが発生する)処理もある。このような目的で使用されるプログラムとしては、リアルタイム性の低いデータアクセスでも高速処理は要求される(CPUのパフォーマンスとして人間が知覚できる)、グラフィック処理などが考えられる。この様なデータ処理は、大量なデータの読み込みを必要とする演算処理が一般的に多いと考えられる。そこで、本実施の形態8ではキャッシュ容量の浪費(使用しない共有データ)の削減方法を改善しつつ、グラフィック処理などにみられる大量データの読み出しアクセスに対しても擬似データ整合性管理部によって、本来発生しないキャッシュアクセスを、擬似データ整合性管理要求回数記憶部によってバックグラウンドで発生されるリフィル動作の発行回数を変更することによって、参照局所性を改善することができる擬似データ整合性管理部の動作を制御する演算処理装置として、図12を用いて説明する。
図12は、前記データ整合性管理部にかかわる機能ブロックの説明を記載している。各CPUには、キャッシュリフィル時に使用されるロードストアアクセスアドレス1201を入力し、擬似データ整合性管理部によって起動されるリフィル動作の回数を決定する擬似データ整合性管理要求回数記憶部1250を有している。前記擬似データ整合性管理要求回数記憶部1250には、リフィルアクセスをカウントするリフィルアクセス制御カウンタ記憶部1211と、擬似データ整合性リフィル要求回数記憶部1220を有しており、リフィルアクセス制御カウンタ記憶部は、0入力と、リフィルアクセス制御カウンタ1230の出力をリフィル回数比較部のよって生成される信号1260をセレクト信号とするセレクタ1211の出力を入力とし、リフィルアクセス制御カウンタ記憶部の出力は、前記リフィルアクセス制御カウンタ1230に接続されている。また、前記リフィルアクセス制御カウンタ記憶部の出力を左に2ビットシフトした信号1204を生成し、ロードストアアクセスアドレス1202と加算することによってリフィルアドレスを生成するリフィルアドレス生成部1205を有している。また擬似データ整合性リフィル要求回数記憶部の出力とリフィルアクセスカウンタ記憶部の比較を行って一致しない場合は、リフィル要求信号1260として、共有バス制御部に出力される。以上のような第1擬似データ整合性管理要求回数記憶部を有した擬似データ整合性管理部によって、大容量データを必要とするキャッシュアクセスデータに対しては、擬似データ整合性管理部によって、前記データ整合性リフィル要求回数記憶部に設定された回数だけリフィルアクセスを発行するため、CPUより、データアクセスがあった場合でも、すでにキャッシュリフィルが行われているため、参照局所性が上がるということが説明できた。
なお、実施の形態8には、擬似データ整合性リフィル回数記憶部によってリフィル回数を設定することで説明したが、この限りではない。実施の形態2から実施の形態6に記載の方法のように、命令コードにその情報をいれる擬似データ整合性管理命令検出部や、プロセッサ状態記憶部にその回数を記憶する擬似データ整合性管理要求モード検出部や、アクセスするアドレス空間によって決定する擬似データ整合性管理要求空間判定部や、アクセスするアドレスをあらかじめ設定れているアドレスと比較する擬似データ整合性管理アドレス比較部や、TLBのデータとして記憶する擬似データ整合性管理アドレス変換部を用いることもできる。
(実施の形態9)
実施の形態1から実施の形態8では、命令ローカルキャッシュにデータローカルキャッシュのアクセスに対して、擬似データ整合性管理部を動作させる説明は行わなかった。しかし、前記実施の形態8に記載のように、グラフィック処理などの大容量データをキャッシュする場合は、既存のデータキャッシュの状態がリプレイスされるため、キャッシュのヒット率が低下することが考えられる。そのため、データローカルキャッシュからのキャッシュアクセス伝達部に対して、命令ローカルキャッシュの擬似データ整合性管理部が動作することによって、命令ローカルキャッシュに上記データを格納する方がキャッシュ効率がよい。なぜなら、このような命令を実行する場合は、比較的命令コードは繰り返しが多く、命令キャッシュヒット率が高く、使用されるキャッシュ容量も少ない。また、データキャッシュに関しては、一般的に命令ローカルキャッシュよりキャッシュヒット率が低い傾向にあり、さらに、大容量のキャッシュリプレイスが発生すると、さらにデータローカルキャッシュのヒット率が低下する。そこで、命令ローカルキャッシュ擬似データ整合性管理部は有用である。しかし、命令ローカルキャッシュは、データキャッシュと異なり、ダーティービットを管理していない。そこで、ダーティービットを有していないキャッシュに擬似データ整合性管理部によってキャッシュリフィルされても、データの整合性が維持できる部について説明する。この演算処理装置は、図1に記載の演算処理装置と同じ構造で動作できるため、図1を用いて説明する。
図1において、キャッシュメモリ132に格納されたデータがあり、キャッシュメモリ142,152,162には同じデータは格納されていないとする。ここで、プロセッサ112から同データに対して書き込みがあった場合、データローカルキャッシュ161は、キャッシュアクセス伝達部184を用いて、共有バス制御部170に信号を伝達する。そこで、命令ローカルキャッシュ131のキャッシュアクセス監視部135が動作し、キャッシュメモリ132を検索するとキャッシュデータが格納されている。この場合に、擬似データ整合性管理部が動作し、擬似データ整合性管理要求信号がアクティブであった場合は、擬似データ整合性管理要求部は動作を行う。ただし、ここでは、書き込みアクセスであって、かつ、ダーティービットを持たないキャッシュメモリであるため、擬似データ整合性管理要求部は、その書き込みデータをキャッシュメモリに書き込みを行い、かつ、擬似データ整合性管理部として、外部メモリへも書き込みアクセスを発行する。以上のように、命令ローカルキャッシュを擬似データ整合性管理部によって管理することによって、データ、命令間のキャッシュ共有が可能となるため、グラフィック処理などの大容量データをキャッシュする場合は、本実施の形態9によって、データアクセスの参照局所性効率を有効に利用し、既存のデータキャッシュのリプレイスが発生せず、キャッシュのヒット率が低下することも防止できることを説明した。本実施の形態9は、擬似データ整合性管理部を有し、データ共有記憶部を有し、リアルタイム性能を要求されるプログラムを実行する演算処理装置に適用して有用であり、かつ、データ処理結果のノンアロケート実行を行う場合の命令ローカルキャッシュに適用して有用である。
なお、本実施の形態9では、命令ローカルキャッシュへの書き込みに対して、キャッシュメモリを更新したが、この限りではない。たとえば、キャッシュメモリの書き込みが発生した時点で、キャッシュメモリを無効化し、外部メモリへの書き出しを行ってもよい。
なお、本実施の形態9では、マルチプロセッサ構成時を参考に説明したがこの限りではない。
本発明の擬似データ整合性管理部は、マルチプロセッサシステムにおけるスヌープキャッシュ機構に利用して有効であり、基本的な制御構造を変更することなく、キャッシュアクセスの参照局所性とスヌープキャッシュの不要な共有データの削減、および、命令、データローカルキャッシュ間のキャッシュ間転送を有効に行うことができる。さらに、リアルタイム性を要求されるプログラムが共存している場合は、自ローカルキャッシュの書き換えを行わないことによって、リアルタイム性を要求されるキャッシュデータを保護し、かつ、キャッシュ間のデータ転送を利用して、メモリアクセス効率をあげることができる。
実施の形態1に係る演算処理装置の機能ブロック構成図である。 プログラム実行時間を説明する図である。 実施の形態2に係る演算処理装置の機能ブロック構成図である。 第1擬似データ整合性管理要求部の構成を示す図である。 実施の形態3に係る第1擬似データ整合性管理要求部の構成を示す図であり、 実施の形態4に係る論理アドレス空間のアクセスに対する物理アドレス空間のマッピング規則を示した図である。 第1擬似データ整合性管理要求部の構成を示す図である。 演算処理装置の機能ブロック構成を示す図である。 演算処理装置の機能ブロック構成を示す図である。 実施の形態5に係る第1、第2擬似データ整合性管理要求部の各構成を示す図である。 実施の形態5に係る第1擬似データ整合性管理要求部の構成を示す図である。 前記データ整合性管理部にかかわる機能ブロックの説明図である。 キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。 キャッシュミス発生時の各ローカルキャッシュおよび共有バス制御装置の動作を示すフローチャートである。 動作説明のためのプログラム1を示す図である。 動作説明のためのプログラム2を示す図である。 動作説明のためのプログラム3を示す図である。
符号の説明
134 キャッシュアクセス伝達部
135 キャッシュアクセス監視部
136 データ整合性管理部
137 擬似データ整合性管理部
170 共有バス制御部
381 第1擬似データ整合性管理要求部
420 擬似データ整合性管理要求命令検出部
520 擬似データ整合性管理要求モード記憶部
710 擬似データ整合性管理要求空間判定部
838 第2擬似データ整合性管理要求部
1010 第1擬似データ整合性管理アドレス比較部
1105 第1擬似データ整合性管理アドレス変換部
1250 擬似データ整合性管理要求回数記憶部

Claims (45)

  1. 複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算処理装置であって、
    各プロセッサは、CPUとローカルキャッシュとを有し、
    各ローカルキャッシュは、キャッシュメモリと、それを制御するキャッシュ制御手段とを有し、
    各キャッシュ制御手段は、
    共有バスを介したローカルキャッシュ間のデータ転送を制御することにより、ローカルキャッシュ間のデータ整合性を管理するデータ整合性管理手段を有し、
    キャッシュ制御手段のうちの少なくとも1つのキャッシュ制御手段は、
    他のプロセッサからキャッシュミスの発生を通知するローカルキャッシュアクセス信号を監視し、
    前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記共有バス制御装置を介して他のプロセッサに通知する
    ことを特徴とする演算処理装置。
  2. 前記少なくとも1つのキャッシュ制御手段は、さらに、前記ローカルキャッシュアクセス信号に対応するデータをメモリから読み出すためのメモリ読み出し要求を共有メモリ制御装置を介してメモリに発行する
    ことを特徴とする請求項1記載の演算処理装置。
  3. 前記少なくとも1つのキャッシュ制御手段と、前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータをキャッシュメモリにそれぞれ格納する
    ことを特徴とする請求項2記載の演算処理装置。
  4. 前記少なくとも1つのキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、所属するプロセッサ内のキャッシュメモリに格納し、
    前記他のキャッシュ制御手段は、前記メモリ読み出し要求に応答して読み出されたデータを、それが属するキャッシュメモリに格納しないでCPUに出力する
    ことを特徴とする請求項2記載の演算処理装置。
  5. 各キャッシュ制御手段は、
    同じプロセッサに属するCPUからローカルキャッシュへのメモリアクセス内容を共有バス制御装置に伝達するキャッシュアクセス伝達手段と、
    他のプロセッサ内のローカルキャッシュである第1ローカルキャッシュにおけるキャッシュミスの発生を通知するために他のプロセッサ内のキャッシュアクセス伝達手段から前記共有バス制御装置に出力された前記ローカルキャッシュアクセス信号を監視し、前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュである第2ローカルキャッシュに記憶されているかどうかを検索するキャッシュアクセス監視手段と、
    キャッシュアクセス監視手段によって前記ローカルキャッシュアクセス信号に対応するデータが、前記第2ローカルキャッシュに記憶されているかどうか検索された場合に、前記検索結果に応じて前記ローカルキャッシュ間のデータ整合性を維持するために前記第2ローカルキャッシュの制御および前記共有バス制御装置とのデータ転送を行うデータ整合性管理手段と、
    前記ローカルキャッシュアクセス信号に対応するデータが、前記第2ローカルキャッシュに記憶されているかどうかにかかわらず、前記第2ローカルキャッシュがキャッシュリフィル動作を行うかどうかを判定し、リフィル動作を行うと判定した場合に、前記擬似情報を通知し、前記ローカルキャッシュ間のデータ整合性を維持するために前記第2ローカルキャッシュの制御および前記共有バス制御装置とのデータ転送を行う擬似データ整合性管理手段を有している
    ことを特徴とする請求項1記載の演算処理装置。
  6. 前記キャッシュアクセス伝達手段は、CPUからローカルキャッシュへのメモリアクセスであって、非キャッシュ読み出しおよび書き込みアクセス、キャッシュ書き込みアクセス、もしくは、キャッシュ読み出しアクセスのキャッシュミスアクセスの場合に、前記ローカルキャッシュアクセス信号を前記共有バス制御装置に伝達する
    ことを特徴とする請求項5に記載の演算処理装置。
  7. 前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
    前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達された非キャッシュ読み出しアクセス、および、キャッシュ読み出しのキャッシュミスアクセスに対して前記第2ローカルキャッシュの前記キャッシュメモリが検索され、前記第2ローカルキャッシュが、前記第1ローカルキャッシュのアクセス対象データを記憶している場合に、前記第2ローカルキャッシュが前記共有バス制御装置に前記対象データ、もしくは、対象エントリのデータの出力するよう制御する
    ことを特徴とする請求項5に記載の演算処理装置。
  8. 前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
    前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達されたキャッシュ書き込みのキャッシュヒットアクセスに対して前記第2ローカルキャッシュの前記キャッシュメモリが検索され、前記第2ローカルキャッシュが、前記第1ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、前記第2ローカルキャッシュが前記共有バス制御装置に出力されている前記対象データを記憶情報として更新するか、もしくは、前記第2ローカルキャッシュの対象エントリの記憶情報を無効化する、
    ことを特徴とする請求項5に記載の演算処理装置。
  9. 前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
    前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達されたキャッシュ書き込みのキャッシュミスアクセスに対して前記第2ローカルキャッシュのキャッシュメモリが検索され、前記第2ローカルキャッシュが、前記第1ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、前記第2ローカルキャッシュが前記共有バス制御装置に出力されている前記対象データを記憶情報として更新し、前記第2ローカルキャッシュの対象エントリのデータを前記共有バス制御装置に出力するか、もしくは、前記第2ローカルキャッシュの前記対象エントリの記憶情報を無効化する
    ことを特徴とする請求項5に記載の演算処理装置。
  10. 前記キャッシュアクセス監視手段および前記データ整合性管理手段は、
    前記キャッシュアクセス伝達手段から前記共有バス制御装置に伝達された非キャッシュ書き込みアクセス対して前記第2ローカルキャッシュの前記キャッシュメモリが検索され、前記第2ローカルキャッシュが、前記第1ローカルキャッシュの同一アドレスに対するアクセスで、対象データと異なるデータを記憶している場合に、前記第2ローカルキャッシュが前記共有バス制御装置に出力されている前記対象データを記憶情報として更新するか、もしくは、前記第2ローカルキャッシュの対象エントリの記憶情報を無効化する
    ことを特徴とする請求項5に記載の演算処理装置。
  11. 前記プロセッサは、所属するプロセッサ以外のプロセッサに前記擬似情報による整合性管理を要求する第1擬似データ整合性管理要求信号を出力する第1擬似データ整合性管理要求手段を有し、
    前記擬似データ整合性管理手段は、他のプロセッサから共有バス制御装置を介して入力される第1擬似データ整合性管理要求信号に従って、前記擬似情報を通知するか否かを判定する
    ことを特徴とする請求項5に記載の演算処理装置。
  12. 前記擬似データ整合性管理手段は、前記第1ローカルキャッシュのアクセス内容が、前記第2ローカルキャッシュのキャッシュメモリに記憶されていないことが検索された後、さらに前記第1擬似データ整合性管理要求信号に基づいてキャッシュリフィル動作行うか否かを判定する
    ことを特徴とした請求項11に記載の演算処理装置。
  13. 前記プロセッサは、さらに所属するプロセッサ以外のプロセッサに前記擬似情報による整合性管理を要求する第2擬似データ整合性管理要求信号を出力する第2擬似データ整合性管理要求手段を有し、
    前記擬似データ整合性管理手段は、他のプロセッサから共有バス制御装置を介して入力される第1および第2擬似データ整合性管理要求信号に基づいて、前記擬似情報を通知するか否かを判定する
    ことを特徴とする請求項11に記載の演算処理装置。
  14. 前記擬似データ整合性管理手段は、前記第1ローカルキャッシュのアクセス内容が、前記第2ローカルキャッシュのキャッシュメモリに記憶されていないことが検索された後、さらに前記第2擬似データ整合性管理要求信号に基づいてキャッシュリフィル動作行うか否かを判定する
    ことを特徴とした請求項13に記載の演算処理装置。
  15. 前記擬似データ整合性管理手段は、前記第1および第2擬似データ整合性管理要求信号に基づいてキャッシュリフィル動作行うか否かを判定する
    ことを特徴とした請求項13に記載の演算処理装置。
  16. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令のデコード情報によって、前記第1擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項11に記載の演算処理装置。
  17. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時に、そのCPUに該当するプロセッサ状態記憶手段によって管理された第1擬似データ整合性管理要求モード信号によって、前記第1擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項11に記載の演算処理装置。
  18. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時に、そのCPUに該当するプロセッサ状態記憶手段によって管理された第1擬似データ整合性管理要求モード信号と、前記第1擬似データ整合性管理要求モード信号の状態を維持することを要求する第1擬似データ整合性管理要求モードロック信号とによって、前記第1擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項11に記載の演算処理装置。
  19. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の論理アドレス空間アクセス領域によって、第1擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項11に記載の演算処理装置。
  20. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセス領域によって、第1擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項11に記載の演算処理装置。
  21. 前記第2擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセス領域によって、第2擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項13に記載の演算処理装置。
  22. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の論理アドレス空間アクセス領域によって、第1擬似データ整合性管理要求信号を有効とするかどうかを決定し、
    前記第2擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセス領域によって、第2擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項13に記載の演算処理装置。
  23. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセス領域によって、第1擬似データ整合性管理要求信号を有効とするかどうかを決定し、
    前記第2擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセス領域によって、第2擬似データ整合性管理要求信号を有効とするかどうかを決定する
    ことを特徴とする請求項13に記載の演算処理装置。
  24. 前記第1擬似データ整合性管理要求手段は、
    前記CPUのロードストア命令実行時の論理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第1擬似データ整合性管理要求アドレス記憶手段と、
    前記第1擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第1擬似データ整合性管理要求アドレスマスク記憶手段とを有し、
    前記論理アドレス空間アクセスアドレスと前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第1擬似データ整合性管理要求アドレス記憶手段と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第1擬似データ整合性管理要求信号を有効とする
    ことを特徴とする請求項11に記載の演算処理装置。
  25. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第1擬似データ整合性管理要求アドレス記憶手段と、前記第1擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第1擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間アクセスアドレスと前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第1擬似データ整合性管理要求アドレス記憶手段と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第1擬似データ整合性管理要求信号を有効とする
    ことを特徴とする請求項11に記載の演算処理装置。
  26. 前記第2擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第2擬似データ整合性管理要求アドレス記憶手段と、前記第2擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第2擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間アクセスアドレスと前記第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第2擬似データ整合性管理要求アドレス記憶手段と前記第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第2擬似データ整合性管理要求信号を有効とする
    ことを特徴とする請求項13に記載の演算処理装置。
  27. 前記第1擬似データ整合性管理要求手段が、前記CPUのロードストア命令実行時の論理アドレス空間アクセスアドレスに対して、第1擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第1擬似データ整合性管理要求アドレス記憶手段と、前記第1擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第1擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記論理アドレス空間アクセスアドレスと前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第1擬似データ整合性管理要求アドレス記憶手段と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第1擬似データ整合性管理要求信号を有効とし、
    前記第2擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第2擬似データ整合性管理要求アドレス記憶手段と、前記第2擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第2擬似データ整合性管理要求アドレスマスク記憶手段によって、前記物理アドレス空間アクセスと前記第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第2擬似データ整合性管理要求アドレス記憶手段と前記第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第2擬似データ整合性管理要求信号を有効とする
    ことを特徴とする請求項13に記載の演算処理装置。
  28. 前記第1擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第1擬似データ整合性管理要求アドレス記憶手段と、前記第1擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第1擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間アクセスアドレスと前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第1擬似データ整合性管理要求アドレス記憶手段と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第1擬似データ整合性管理要求信号を有効とし、
    前記第2擬似データ整合性管理要求手段は、前記CPUのロードストア命令実行時の物理アドレス空間アクセスアドレスに対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第2擬似データ整合性管理要求アドレス記憶手段と、前記第2擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第2擬似データ整合性管理要求アドレスマスク記憶手段によって、前記物理アドレス空間アクセスアドレスと前記第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第2擬似データ整合性管理要求アドレス記憶手段と前記第2擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致する場合に、第2擬似データ整合性管理要求信号を有効とする
    ことを特徴とする請求項13に記載の演算処理装置。
  29. 前記プロセッサは、論理アドレス空間から物理アドレス空間に変換するページテーブルを記憶したTLBを有し、前記TLBの各エントリには、第1擬似データ整合性管理要求フラグ記憶手段を有しており、前記第1擬似データ整合性管理要求手段が、前記CPUのロードストア命令実行時に、前記TLBによって論理アドレスから物理アドレスを生成される場合、前記TLBの該当エントリに格納された前記第1擬似データ整合性管理要求フラグ記憶手段によって、第1擬似データ整合性管理要求信号を有効にする
    ことを特徴とする請求項11または13に記載の演算処理装置。
  30. 前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュが、前記第2ローカルキャッシュによって読み出されたリフィル対象データを前記第1ローカルキャッシュの前記キャッシュメモリと、前記第2ローカルキャッシュの前記キャッシュメモリの両方に格納する
    ことを特徴とする請求項16から請求項29の何れかに記載の演算処理装置。
  31. 前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記第1ローカルキャッシュが、前記第2ローカルキャッシュによって読み出されたリフィル対象データを前記第1ローカルキャッシュの前記キャッシュメモリには格納せず、前記第2ローカルキャッシュの前記キャッシュメモリに格納する
    ことを特徴とする請求項16から請求項29の何れかに記載の演算処理装置。
  32. 前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記擬似データ整合性管理手段によって発行されるリフィル要求回数が、前記データ整合性管理手段によって発行されるリフィル回数と等しい
    ことを特徴とする請求項16から請求項29の何れかに記載の演算処理装置。
  33. 前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記擬似データ整合性管理手段によって発行されるリフィル要求回数が、前記データ整合性管理手段によって発行されるリフィル回数と異なる
    ことを特徴とする請求項16から請求項29の何れかに記載の演算処理装置。
  34. 前記プロセッサは、前記擬似データ整合性管理手段によってキャッシュリフィル動作した場合に、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する擬似データ整合性管理要求回数記憶手段によって決定される
    ことを特徴とする請求項16から請求項29の何れかに記載の演算処理装置。
  35. 前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記CPUのロードストア命令のデコード情報によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有している
    ことを特徴とする請求項34に記載の演算処理装置。
  36. 前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記CPUのロードストア命令実行時に、そのCPUに該当するプロセッサ状態記憶手段によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有している
    ことを特徴とする請求項34に記載の演算処理装置。
  37. 前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記CPUのロードストア命令実行時の、論理アドレス空間アクセス領域によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有している
    ことを特徴とする請求項34に記載の演算処理装置。
  38. 前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記CPUのロードストア命令実行時の、物理アドレス空間アクセス領域によって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有している
    ことを特徴とする請求項34に記載の演算処理装置。
  39. 前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記CPUのロードストア命令実行時の論理アドレス空間に対して、擬似データ整合性管理要求信号を有効にしたい論理アドレス空間を記憶する第1擬似データ整合性管理要求アドレス記憶手段と、前記第1擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第1擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記論理アドレス空間と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第1擬似データ整合性管理要求アドレス記憶手段と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致するかどうかによって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有している
    ことを特徴とする請求項34に記載の演算処理装置。
  40. 前記プロセッサは、前記擬似データ整合性管理要求回数記憶手段が、前記CPUのロードストア命令実行時の物理アドレス空間に対して、擬似データ整合性管理要求信号を有効にしたい物理アドレス空間を記憶する第1擬似データ整合性管理要求アドレス記憶手段と、前記第1擬似データ整合性管理要求アドレス記憶手段の設定領域をマスクする第1擬似データ整合性管理要求アドレスマスク記憶手段とを有し、前記物理アドレス空間と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積と、前記第1擬似データ整合性管理要求アドレス記憶手段と前記第1擬似データ整合性管理要求アドレスマスク記憶手段の論理積とが一致するかどうかによって、前記擬似データ整合性管理手段によって発行されるリフィル要求回数を決定する前記擬似データ整合性管理要求回数記憶手段を有している
    ことを特徴とする請求項34に記載の演算処理装置。
  41. 前記プロセッサは、前記擬似データ整合性管理手段によって、リフィル要求を発行し、前記第2キャッシュメモリにデータを格納することを可能とし、前記第2キャッシュメモリがデータ書き込みで外部メモリとデータ整合性がとれていないダーティーなデータであることを示すダーティービットを持たないキャッシュメモリであった場合、前記第2データ整合性管理手段は、該当メモリを更新し、外部メモリに対して、書き込みを発行する
    ことを特徴とする請求項5から請求項16の何れかに記載の演算処理装置。
  42. 前記プロセッサは、前記擬似データ整合性管理手段によって、リフィル要求を発行し、前記第2キャッシュメモリにデータを格納することを可能とし、前記第2キャッシュメモリがデータ書き込みで外部メモリとデータ整合性がとれていないダーティーなデータであることを示すダーティービットを持たないキャッシュメモリであった場合、前記第2データ整合性管理手段は、該当メモリを無効にし、外部メモリに対して、書き込みを発行する
    ことを特徴とする請求項5から請求項16の何れかに記載の演算処理装置。
  43. 前記プロセッサは、前記擬似データ整合性管理手段によって、リフィル要求を発行し、前記第2キャッシュメモリにデータを格納することを可能とし、前記第2キャッシュメモリがデータ書き込みで外部メモリとデータ整合性がとれていないダーティーなデータであることを示すダーティービットを持たないキャッシュメモリであった場合、前記第2データ整合性管理手段は、該当メモリを無効にするか更新するかを決定する擬似データ整合性管理書き込みモード記憶手段有し、前記擬似データ整合性管理書き込みモード記憶手段によって、該当エントリのキャッシュ状態を変更し、外部メモリに対して、書き込みを発行する
    ことを特徴とする請求項5から請求項16の何れかに記載の演算処理装置。
  44. 複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算処理装置におけるデータ整合性管理方法であって、
    前記各プロセッサは、CPUとローカルキャッシュとを有し、各ローカルキャッシュは、キャッシュメモリと、それを制御するキャッシュ制御手段とを有し、各キャッシュ制御手段は、共有バスを介したローカルキャッシュ間のデータ転送を制御することにより、ローカルキャッシュ間のデータ整合性を管理するデータ整合性管理手段を有し、
    前記データ整合性管理方法は、
    各キャッシュ制御手段が、他のプロセッサからキャッシュミスの発生を通知するローカルキャッシュアクセス信号を監視するステップと、
    キャッシュ制御手段のうちの少なくとも1つのキャッシュ制御手段が、前記ローカルキャッシュアクセス信号に対応するデータが、所属するローカルキャッシュに記憶されていない場合であっても、記憶されている旨の擬似情報を前記共有バス制御装置を介して他のプロセッサに通知するステップとを有する
    ことを特徴とするデータ整合性管理方法。
  45. 請求項44に記載のデータ整合性管理方法を、複数のプロセッサと共有バスと共有バス制御装置とを有するマルチプロセッサ型の演算処理装置に実行させる
    ことを特徴とするプログラム。
JP2004267472A 2004-09-14 2004-09-14 演算処理装置 Expired - Fee Related JP4803983B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004267472A JP4803983B2 (ja) 2004-09-14 2004-09-14 演算処理装置
US11/223,932 US7539823B2 (en) 2004-09-14 2005-09-13 Multiprocessing apparatus having reduced cache miss occurrences

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004267472A JP4803983B2 (ja) 2004-09-14 2004-09-14 演算処理装置

Publications (2)

Publication Number Publication Date
JP2006085292A JP2006085292A (ja) 2006-03-30
JP4803983B2 true JP4803983B2 (ja) 2011-10-26

Family

ID=36035440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004267472A Expired - Fee Related JP4803983B2 (ja) 2004-09-14 2004-09-14 演算処理装置

Country Status (2)

Country Link
US (1) US7539823B2 (ja)
JP (1) JP4803983B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004057259A1 (de) * 2004-11-26 2006-06-01 Robert Bosch Gmbh Manipulationsgeschütztes Mikrocontrollersystem
JP2007079958A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd 記憶制御装置、データ処理方法、及びコンピュータプログラム
US8379858B2 (en) * 2005-09-16 2013-02-19 International Business Machines Corporation Generating key information for mutual access among multiple computers
US7657710B2 (en) * 2006-11-17 2010-02-02 Sun Microsystems, Inc. Cache coherence protocol with write-only permission
US8015375B1 (en) * 2007-03-30 2011-09-06 Emc Corporation Methods, systems, and computer program products for parallel processing and saving tracking information for multiple write requests in a data replication environment including multiple storage devices
US8068588B2 (en) * 2007-06-26 2011-11-29 Microsoft Corporation Unified rules for voice and messaging
US9207990B2 (en) * 2007-09-28 2015-12-08 Hewlett-Packard Development Company, L.P. Method and system for migrating critical resources within computer systems
JP5453872B2 (ja) * 2009-03-27 2014-03-26 日本電気株式会社 ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
CN102057359A (zh) * 2009-04-10 2011-05-11 松下电器产业株式会社 高速缓冲存储器装置、高速缓冲存储器控制方法、程序及集成电路
CN103441831B (zh) * 2013-08-22 2016-12-28 焦点科技股份有限公司 一种双进程间的全双工通信及互保方法和系统
US10705961B2 (en) 2013-09-27 2020-07-07 Intel Corporation Scalably mechanism to implement an instruction that monitors for writes to an address
KR101941874B1 (ko) * 2013-12-23 2019-01-25 인텔 코포레이션 클러스터 와이드-실행 머신에서 메모리 액세스를 위한 명령어 및 로직
US9940241B1 (en) * 2014-07-03 2018-04-10 Sanmina Corporation Network system with cache offload service for flash storage
US9817682B2 (en) * 2015-05-18 2017-11-14 Goodrich Corporation System architecture for machine vision on moving platforms
WO2018059655A1 (en) 2016-09-30 2018-04-05 Intel Corporation Method and apparatus for smart store operations with conditional ownership requests
US10866893B2 (en) * 2018-01-23 2020-12-15 Home Depot Product Authority, Llc Cache coherency engine
US11966359B1 (en) 2018-03-22 2024-04-23 Amazon Technologies, Inc. Automated tier-based transitioning for data objects
US10572159B1 (en) 2018-03-22 2020-02-25 Amazon Technologies, Inc. Smart data storage tiers for data object transitioning
US11099871B2 (en) 2018-07-27 2021-08-24 Vmware, Inc. Using cache coherent FPGAS to accelerate live migration of virtual machines
US11126464B2 (en) 2018-07-27 2021-09-21 Vmware, Inc. Using cache coherent FPGAS to accelerate remote memory write-back
US11947458B2 (en) 2018-07-27 2024-04-02 Vmware, Inc. Using cache coherent FPGAS to track dirty cache lines
US11231949B2 (en) 2018-07-27 2022-01-25 Vmware, Inc. Using cache coherent FPGAS to accelerate post-copy migration
US10761984B2 (en) * 2018-07-27 2020-09-01 Vmware, Inc. Using cache coherent FPGAS to accelerate remote access
US20240103761A1 (en) * 2022-09-23 2024-03-28 Synopsys, Inc. Buffer circuitry for store to load forwarding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0738171B2 (ja) 1987-03-27 1995-04-26 三菱電機株式会社 デ−タ処理装置
JPH05197622A (ja) 1992-01-21 1993-08-06 Fujitsu Ltd キャッシュサブシステム
JPH06110844A (ja) * 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
JP3139392B2 (ja) * 1996-10-11 2001-02-26 日本電気株式会社 並列処理システム
JPH10154100A (ja) 1996-11-25 1998-06-09 Canon Inc 情報処理システム及び装置及びその制御方法
JP3661614B2 (ja) * 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
JP3632635B2 (ja) * 2001-07-18 2005-03-23 日本電気株式会社 マルチスレッド実行方法及び並列プロセッサシステム
US7024532B2 (en) * 2001-08-09 2006-04-04 Matsushita Electric Industrial Co., Ltd. File management method, and memory card and terminal apparatus that make use of the method
US20040030835A1 (en) * 2002-08-12 2004-02-12 Van De Waerdt Jan-Willem Efficient cache organization for way-associativity and high refill and copy-back bandwidth
US20050216684A1 (en) * 2003-11-21 2005-09-29 Matsushita Electric Industrial Co., Ltd. Information recording medium, data processing apparatus, and recording region setting method of information recording medium

Also Published As

Publication number Publication date
US20060059317A1 (en) 2006-03-16
US7539823B2 (en) 2009-05-26
JP2006085292A (ja) 2006-03-30

Similar Documents

Publication Publication Date Title
JP4803983B2 (ja) 演算処理装置
US6957304B2 (en) Runahead allocation protection (RAP)
US8607024B2 (en) Virtual address cache memory, processor and multiprocessor
US8949572B2 (en) Effective address cache memory, processor and effective address caching method
US8041897B2 (en) Cache management within a data processing apparatus
US7925840B2 (en) Data processing apparatus and method for managing snoop operations
US8806177B2 (en) Prefetch engine based translation prefetching
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
JP5536658B2 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
US7434007B2 (en) Management of cache memories in a data processing apparatus
ZA200205198B (en) A cache line flush instruction and method, apparatus, and system for implementing the same.
US20200371970A1 (en) Multiple-requestor memory access pipeline and arbiter
WO2020243053A1 (en) Multi-level cache security
GB2427715A (en) Managing snoop operations in a multiprocessor system
KR100505695B1 (ko) 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법
JP5319049B2 (ja) キャッシュシステム
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US20090198910A1 (en) Data processing system, processor and method that support a touch of a partial cache line of data
JP2009157612A (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
US7353341B2 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US7328313B2 (en) Methods to perform cache coherency in multiprocessor system using reserve signals and control bits
JPH03163640A (ja) マルチプロセッサシステムおよびそれに用いるキャッシュメモリ
JPH11143774A (ja) キャッシュ制御機構
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
JP3735373B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110705

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees