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

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

Info

Publication number
JP2014186521A
JP2014186521A JP2013060722A JP2013060722A JP2014186521A JP 2014186521 A JP2014186521 A JP 2014186521A JP 2013060722 A JP2013060722 A JP 2013060722A JP 2013060722 A JP2013060722 A JP 2013060722A JP 2014186521 A JP2014186521 A JP 2014186521A
Authority
JP
Japan
Prior art keywords
write
data
cache memory
memory
address
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
JP2013060722A
Other languages
English (en)
Other versions
JP5998998B2 (ja
Inventor
Hayato Koike
駿仁 小池
Naohiro Kiyota
直宏 清田
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 JP2013060722A priority Critical patent/JP5998998B2/ja
Priority to EP14150707.9A priority patent/EP2782015A1/en
Priority to US14/153,112 priority patent/US9323674B2/en
Publication of JP2014186521A publication Critical patent/JP2014186521A/ja
Application granted granted Critical
Publication of JP5998998B2 publication Critical patent/JP5998998B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory 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)

Abstract

【課題】共有メモリ環境の情報処理装置において、キャッシュメモリから主記憶装置としての共有メモリへのデータの書き戻しを、必要に応じて速やかに行えるようにする。
【解決手段】一次キャッシュメモリと、一次キャッシュメモリに対するストア要求を発行する命令制御部と、ストア要求を受けてデータを一次キャッシュメモリに書き込むパイプライン処理部と、特定のデータに係るストア要求の出力期間にパイプライン処理部から一次キャッシュメモリに出力されたアドレスを取得してエントリに保持し、その出力期間が終了するとエントリに保持しているアドレスが示すデータをメモリに書き込む書き戻し要求を発行するバッファ部と、バッファ部からの書き戻し要求を受けて一次キャッシュメモリのデータをメモリに書き込む二次キャッシュメモリとを有し、特定のデータを一次キャッシュメモリからメモリに速やかに書き戻す。
【選択図】図2

Description

本発明は、演算処理装置、情報処理装置、及び演算処理装置の制御方法に関する。
大規模なサーバなどのように多数のCPU(Central Processing Unit)を備えた情報処理装置が増えている。多数のCPUを備えた装置において、あるCPUからの他のCPUに係るメモリに対してのデータの読み出しや書き込みではCPU間の通信が発生し性能低下の一因となる。この性能低下を改善するために、複数のCPUが同じメモリを主記憶装置として用いる共有メモリの技術が提案されている。
また、CPUのキャッシュメモリから主記憶装置であるメモリへデータの書き込みを行う方式には、ライトバック方式及びライトスルー方式がある。ライトバック方式は、キャッシュメモリと主記憶装置との間でのデータの一致性が一時的に損なわれることがあるが、メモリアクセスを高速に実行することができる。ライトスルー方式は、キャッシュメモリと主記憶装置との間でのデータの一致性が常に保たれる反面、メモリアクセスを高速に実行することが難しくなる。
キャッシュメモリから主記憶装置であるメモリへデータの書き込みをライトバック方式で行うか又はライトスルー方式で行うかを制御する装置が提案されている。例えば、高速なアクセスを要求される一方の領域についてはライトバック方式でデータの書き込みを行い、データの一致性を要求される他方の領域についてはライトスルー方式でデータの書き込みを行うように、アクセスアドレスに応じて制御する装置が提案されている(例えば、特許文献1参照)。また、例えばキャッシュライン上に格納されているデータブロックのタグ情報に応じて、ライトバック方式でデータの書き込みを行うかライトスルー方式でデータの書き込みを行うかを制御する装置が提案されている(例えば、特許文献2参照)。
特開平8−83215号公報 特開平11−282750号公報
共有メモリ環境では、前述のように複数のCPUが同じメモリを使用することができ、CPU間通信の発生による性能低下を抑制することが可能である。また、ライトバック方式でCPUのキャッシュメモリから主記憶装置であるメモリへデータの書き込みを行うと、メモリアクセスを高速に実行することが可能になる。
しかし、共有メモリ環境において、ライトバック方式でキャッシュメモリから主記憶装置であるメモリへデータの書き込みを行うようにすると、データによってはメモリへ書き戻されるまでに長い期間キャッシュメモリに保持されていることとなる。そのため、CPUが故障した際、そのCPUが有するキャッシュメモリから共有メモリへのデータの書き戻しが完了していないと、複数のCPUに影響が及んで情報処理装置全体が停止することがある。
1つの側面では、本発明は、複数の演算処理装置が主記憶装置としてのメモリを共有する情報処理装置において、演算処理装置が有するキャッシュメモリから、共有される主記憶装置としてのメモリへのデータの書き戻しを、必要に応じて速やかに行えるようにすることを目的とする。
演算処理装置の一態様は、演算処理装置が有するキャッシュメモリに対するストア要求を発行するとともに、特定のデータに係るストア要求の出力期間を示す第1の信号を出力する命令制御部と、命令制御部からのストア要求を受けて、当該ストア要求のアドレス及びデータをキャッシュメモリに出力しデータを書き込む第1の書き込み処理部と、バッファ部と、バッファ部からの書き戻し要求を受けて、当該書き戻し要求に応じたキャッシュメモリのデータを主記憶装置に書き込む第2の書き込み処理部とを有する。バッファ部は、特定のデータに係るストア要求の出力期間である場合に、第1の書き込み処理部からキャッシュメモリに出力されたアドレスを取得してエントリに保持し、当該出力期間が終了すると、エントリに保持しているアドレスが示すデータを主記憶装置に書き込む書き戻し要求を発行する。
複数の演算処理装置が主記憶装置としてのメモリを共有する情報処理装置において、演算処理装置が有するキャッシュメモリに特定のデータの書き込みを行った後に、キャッシュメモリに書き込まれた特定のデータを速やかに主記憶装置に書き戻すことができる。
本発明の実施形態における演算処理装置を有する情報処理装置の構成例を示す図である。 本実施形態における情報処理装置のストア処理に係る構成の例を示す図である。 本実施形態におけるバッファ部の構成例を示す図である。 本実施形態におけるバッファについて説明するための図である。 本実施形態においてバッファに格納される情報の例を示す図である。 本実施形態におけるトレースフラッシュ処理の例を示すフローチャートである。 本実施形態におけるトレースフラッシュ処理の例を示すフローチャートである。 本実施形態におけるキャッシュストア処理の例を示すフローチャートである。 本実施形態における単発フラッシュ処理の例を示すフローチャートである。 本実施形態におけるメモリ書き戻し処理の例を示すフローチャートである。 本実施形態における情報処理装置の動作例を示すタイミングチャートである。 本実施形態における情報処理装置の動作例を示すタイミングチャートである。 本実施形態におけるバッファ部の動作例を示すタイミングチャートである。 本実施形態におけるバッファ部の動作例を示すタイミングチャートである。 本実施形態におけるバッファ部の動作例を示すタイミングチャートである。
以下、本発明の実施形態を図面に基づいて説明する。
図1は、本発明の一実施形態における演算処理装置としてのCPU(Central Processing Unit)を有する情報処理装置の構成例を示すブロック図である。本実施形態における情報処理装置は、複数のCPUが同じメモリを主記憶装置として用いる共有メモリの技術を適用した情報処理装置であり、複数のCPU110と、主記憶装置としてのメモリ120とがバス130を介して接続されている。また、本実施形態における情報処理装置は、ライトバック方式でCPU110のキャッシュメモリから主記憶装置であるメモリ120へデータの書き込みを行う。
前述したように、ライトバック方式でキャッシュメモリから主記憶装置であるメモリへデータの書き込みを行う場合、データによってはメモリに書き戻されるまでに長い期間キャッシュメモリに保持されていることとなる。そのため、共有メモリ環境において、あるCPUが故障した際、そのCPUが有するキャッシュメモリから共有メモリへのデータの書き戻しが完了していないと、複数のCPUに影響が及んで情報処理装置全体が停止することがある。そこで、本実施形態における情報処理装置では、キャッシュメモリに保持されたデータの共有メモリへの書き戻しを、通常はライトバック方式で行い、必要に応じて本実施形態においてトレースフラッシュ処理と呼ぶ処理によって書き戻しを速やかに行えるようにする。
CPU110の各々は、コア111と、主記憶装置であるメモリ120に格納されているデータブロックを保持する二次(L2(Level−2))キャッシュメモリ115とを有する。本実施形態におけるCPU110では、2つのコア111が二次キャッシュメモリ115を共有している。なお、図1においては、各CPU110が2つのコア111を有する例を示しているが、CPU110が有するコア111の数は任意である。また、各コア111に対して二次キャッシュメモリ115をそれぞれ設けるようにしても良い。
コア111の各々は、命令制御部112、一次(L1(Level−1))キャッシュメモリ部113、及びバッファ部114を有する。命令制御部112は、主記憶装置等から読み出した命令を解釈して各種の処理要求を発行する。命令制御部112が発行する処理要求には、データの書き込みを行うストア要求や、データの読み出しを行うロード要求や、図示しない演算器等の各機能部に対する演算処理要求などがある。一次キャッシュメモリ部113は、処理の実行の際に使用するデータや処理結果のデータ等を保持する。バッファ部114は、トレースフラッシュ処理に係る情報(書き込み先を示すアドレス等)を取得して保持するとともに、トレースフラッシュ処理の実行を制御する。
図2は、本実施形態における情報処理装置の構成例を示す図であり、メモリ120へデータの書き込みを行うストア処理(トレースフラッシュ処理を含む)に係る構成を示している。この図2において、図1に示した構成要素と同一の構成要素には同一の符号を付している。
命令制御部112は、ソフトウェア(プログラム側)からのデータのストア指示S11を受けると、一次キャッシュメモリ部113にストア要求S13を発行する。また、命令制御部112は、トレースフラッシュ処理によって書き込みを行う特定のデータについてのストア指示S11がなされる期間であるか否かを示す情報S12をソフトウェアから受けて、情報S12に応じて出力する信号REC、FLASHを制御する。トレースフラッシュ処理によって書き込みを行う特定のデータには、複数のCPUやアプリケーションソフト等で共用されるデータなどが含まれ、例えばデータベースソフトウェアにおいて利用されるデータベース内のデータが含まれる。
命令制御部112は、情報S12がトレースフラッシュ処理によって書き込みを行う特定のデータについてのストア指示S11がなされる期間であることを示す場合には、特定のデータに係るストア要求の出力期間であることを示す信号RECをアサートする(本例ではハイレベル(“1”)にする)。また、命令制御部112は、アサートされている信号RECをネゲートするときに、信号FLASHをパルス状にアサートする(本例ではハイレベル(“1”)にする)。
すなわち、命令制御部112は、トレースフラッシュ処理対象のデータのストア処理が開始されるときに、ネゲートされている信号RECをアサートし、トレースフラッシュ処理対象のデータのストア処理が終了されるときに、アサートされている信号RECをネゲートする。また、命令制御部112は、トレースフラッシュ処理対象のデータのストア処理が終了され、トレースフラッシュ処理によりメモリへのデータ書き戻しを開始させるときに、信号FLASHをパルス状にアサートする。
一次キャッシュメモリ部113は、パイプライン処理部201及び一次(L1(Level−1))キャッシュメモリ202を有する。第1の書き込み処理部としてのパイプライン処理部201は、命令制御部112からのストア要求S13に応じて、一次キャッシュメモリ202にデータを書き込むキャッシュストア処理を実行する。キャッシュストア処理では、パイプライン処理部201が、ストア要求されたデータSD1及び書き込み先を示すアドレスSA1を一次キャッシュメモリ202に出力する。一次キャッシュメモリ202は、ストア要求のアドレスSA1に対応する領域(エントリ)にデータSD1及びタグ情報を登録し保持する。
バッファ部114は、バッファ制御部203及びバッファ204を有する。バッファ制御部203は、トレースフラッシュ処理に係る制御を行う。バッファ制御部203は、信号RECがアサートされているとき、一次キャッシュメモリ部113においてパイプライン処理部201から一次キャッシュメモリ202に出力されるストア要求のアドレスSA1を取得してバッファ204が有するエントリに登録し保持する。バッファ204は、ストア要求のアドレスSA1が登録される複数のエントリを有する。
バッファ制御部203は、バッファ204が有するエントリに空きがなくなった場合、すなわちすべてのエントリが有効になった場合に、一次キャッシュメモリ部113のパイプライン処理部201に対して処理を停止させるためのストア抑止信号S14を出力する。また、バッファ制御部203は、信号FLASHがアサートされたとき、又はバッファ204が有するすべてのエントリが有効になったときに、二次キャッシュメモリ115にメモリ書き戻し要求S15を発行する。
第2の書き込み処理部としての二次キャッシュメモリ115は、メモリ書き戻し要求を受けて、データのメモリ120への書き戻し(書き込み)を行う。二次キャッシュメモリ115は、メモリ書き戻し要求により指示されたアドレスが示すデータの取得要求S16を一次キャッシュメモリ202に対して発行し、それに対する応答として送信されたデータSD2を受信する。そして、二次キャッシュメモリ115は、受信したデータSD2で自らのメモリ内容を更新し、書き込みデータSD3としてメモリ120へ出力するとともに、メモリ書き戻し指示S17をメモリ120へ出力する。こうすることで、メモリ書き戻し要求により指示されたアドレスに対応するメモリ120内の記憶領域にデータSD3が書き込まれる。
メモリ120へのデータSD3の書き込みが完了すると、メモリ120から二次キャッシュメモリ115に書き戻し終了S18が通知される。二次キャッシュメモリ115は、メモリ120からの書き戻し終了S18の通知を受けると、一次キャッシュメモリ202に書き戻し終了を通知する。ここで、二次キャッシュメモリ115は、バッファ部114からメモリ書き戻し要求S15を受けた場合には、メモリ120からの書き戻し終了S18の通知を受けると、さらにバッファ部114に書き戻し終了S19を通知する。そして、書き戻し終了S19の通知を受けたバッファ部114は、ソフトウェアに対してトレースフラッシュ処理の終了S20を通知する。
図3は、本実施形態におけるバッファ部114の構成例を示す図である。バッファ部114は、バッファ300、記憶回路311、321、セレクタ312、322、加算回路313、323、論理積演算回路(AND回路)314、315、324、セレクタ331、カウンタ332、及び比較回路333を有する。
バッファ300は、トレースフラッシュ処理によって書き込みを行う特定のデータの書き込み先を示すアドレスを保持するバッファであり、複数のエントリ(TFB)301−0〜301−7を有する。各エントリ(TFB)301−0〜301−7には、図5に一例を示すように、当該エントリの情報が有効であるか無効であるかを示すバリッドビット(valid)、及びストア要求のアドレス(data)が格納される。エントリ(TFB)301−0〜301−7は、対応する制御信号SEL0〜SEL7がアサートされているときには入力される信号saddにより値を更新し、ネゲートされているときには値は格納されない。信号saddは、ストア要求のアドレスを示すアドレス信号である。なお、図3においては、エントリ(TFB)301−0〜301−7の8つのエントリを有するバッファ300を一例として示しているが、エントリの数は任意である。
記憶回路311は、次にストア要求のアドレスを格納する格納先エントリの番号を示す信号Iptrを記憶して出力する。信号Iptrは、格納先エントリを示す入力ポインタであり、本実施形態では4ビットとして下位3ビットがエントリ(TFB)301−0〜301−7の番号を示すものとする。記憶回路311から出力された信号Iptrは、セレクタ312及びAND回路315に入力されるとともに、値を1増加させる加算回路313を介してセレクタ312に入力される。なお、本実施形態では、加算回路313は、入力される信号Iptrの値が“1111b”(末尾のbは2進数表記であることを示す、以下においても同様)である場合には値“0000b”を出力する。
AND回路314は、信号store、record、及び/full(/は反転信号であることを示す、以下においても同様)が入力され、その演算結果を出力する。ここで、信号storeは、一次キャッシュメモリに対してデータを書き込むキャッシュストア処理を行うことを示す信号である。信号recordは、図2に示した命令制御部112から出力される信号RECであり、トレースフラッシュ処理によって書き込みを行う特定のデータについてのキャッシュストア処理の開始及び終了(キャッシュストア処理要求の出力期間)を示す信号である。信号fullは、エントリ(TFB)301−0〜301−7のすべてが有効であることを示す信号である。
セレクタ312は、記憶回路311からの出力又は加算回路313の出力の一方をAND回路314の出力に応じて選択して記憶回路311に出力する。セレクタ312は、AND回路314の出力が“0”の場合には記憶回路311からの出力を選択し、AND回路314の出力が“1”の場合には加算回路313からの出力を選択する。したがって、有効でないエントリ(TFB)301−0〜301−7が存在し、かつトレースフラッシュ処理対象のデータのキャッシュストア処理である場合に、信号Iptrが示す値が“1”増加し、そうでない場合には信号Iptrが示す値が保持される。
AND回路315は、記憶回路311から出力された信号Iptr及び信号storeが入力され、その演算結果を制御信号SEL0−SEL7として出力する。つまり、AND回路315は、信号storeが“1”、すなわち一次キャッシュメモリに対するキャッシュストア処理を行う場合に、信号Iptrの下位3ビットに応じて制御信号SEL0−SEL7のうちの1つをアサートする。また、AND回路315は、信号storeが“0”、すなわちキャッシュストア処理を行わない場合には、すべての制御信号SEL0−SEL7をネゲートする。
なお、ストア要求のアドレスと有効なエントリ(TFB)301−0〜301−7に格納されているアドレスとが一致するか否かを示す信号をAND回路314、315に入力するようにしても良い。このようにした場合には、ストア要求のアドレスとすでにエントリに格納されているアドレスとが一致する場合に、ストア要求のアドレスがエントリ(TFB)301−0〜301−7に登録されることを抑止し、複数のエントリに同じアドレスが登録されることを防止することができる。
記憶回路321は、次に二次キャッシュメモリに書き戻すデータのアドレスが格納されているエントリの番号を示す信号Optrを記憶して出力する。信号Optrは、格納されているアドレスを次に出力するエントリを示す出力ポインタであり、本実施形態では4ビットとして下位3ビットがエントリ(TFB)301−0〜301−7の番号を示すものとする。記憶回路321から出力された信号Optrは、セレクタ322及び331に入力されるとともに、値を1増加させる加算回路323を介してセレクタ322に入力される。なお、本実施形態では、加算回路323は、入力される信号Optrの値が“1111b”である場合には値“0000b”を出力する。
AND回路324は、信号L2req、trcfl、及び/emptyが入力され、その演算結果を出力する。ここで、信号L2reqは、二次キャッシュメモリに対してデータの書き戻しを要求することを示す信号である。信号trcflは、信号L2reqが出力された要因が、(1)信号fullがアサートされた場合、(2)信号recoedがトレースフラッシュ処理対象のデータについてのキャッシュストア処理の終了を示した場合、(3)ソフトウェアの指示である場合の何れかである場合にアサートされる信号である。言い換えれば、信号trcflは、メモリ書き戻し処理が要求される場合にアサートされる信号である。信号emptyは、エントリ(TFB)301−0〜301−7のうちに有効なエントリがないことを示す信号である。
セレクタ322は、記憶回路321からの出力又は加算回路323の出力の一方をAND回路324の出力に応じて選択して記憶回路321に出力する。セレクタ322は、AND回路324の出力が“0”の場合には記憶回路321からの出力を選択し、AND回路324の出力が“1”の場合には加算回路323からの出力を選択する。したがって、有効なエントリ(TFB)301−0〜301−7が存在し、かつトレースフラッシュ処理での二次キャッシュメモリへのデータの書き戻しが要求される場合に、信号Optrが示す値が“1”増加し、そうでない場合には信号Optrが示す値が保持される。
セレクタ331は、エントリ(TFB)301−0〜301−7のうちから信号Optrに応じて1つのエントリ(TFB)を選択し、そのエントリに格納された値を信号L2raddとして出力する。信号L2raddは、トレースフラッシュ処理によって二次キャッシュメモリへのデータの書き戻しを要求するときの書き込み先を示すアドレス信号である。
カウンタ322は、バッファ部114において、信号L2raddが出力されたときにカウント値を1増加させ、信号L2endが入力されたときにカウント値を1減少させる。信号L2endは、二次キャッシュメモリがトレースフラッシュ処理対象のデータのメモリへの書き戻しが正常終了したことを示す信号である。なお、信号L2errは、二次キャッシュメモリがトレースフラッシュ処理対象のデータのメモリへの書き戻しが異常終了したことを示す信号である。つまり、トレースフラッシュ処理によるデータの書き戻しが正常終了した場合には、カウンタ322のカウント値は0になり、異常終了した場合には、カウンタ322のカウント値は0にならない。カウンタ322は、カウント値に基づいてトレースフラッシュ処理が正常終了したか異常終了したかを判断し、正常終了したと判断した場合には信号ENDを出力し、異常終了したと判断した場合には信号ERRORを出力する。
比較回路333は、記憶回路311から出力された信号Iptrと記憶回路321から出力された信号Optrとを比較し、比較結果に基づいて信号full、emptyを出力する。図4(A)に示すように、エントリ(TFB0)301−0及びエントリ(TFB1)301−1に格納されているデータが有効であるとき、信号Iptrが示す値は“0010b”であり、信号Optrが示す値は“0000b”である。このような通常状態(フル状態でもなくエンプティ状態でもない)である場合には、比較回路333は、信号full、emptyともにネゲートする。なお、図4(A)〜図4(C)において、信号Iptr、Optrは時計回りに進行するものとし、信号Iptr、Optrの最上位ビットの値を信号名とともに示している。
以降、エントリ(TFB2)301−2からエントリ(TFB7)301−7にデータが順次格納されていき、信号Iptrが1周すると、信号Iptrの最上位ビットの値が“1b”になる。信号Optrの最上位ビットの値が“0b”の状態で、信号Iptr、Optrが示すエントリの番号、すなわち信号Iptr、Optrの下位3ビットの値が同じである場合には、図4(B)に示すようにすべてのエントリ(TFB)301−0〜301−7が有効となり、フル状態となる。つまり、信号Iptr、Optrの最上位ビットの値が異なり、下位3ビットの値が同じである場合には、フル状態となり、比較回路333は信号fullをアサートする。
また、信号Iptr、Optrがともに1周すると、信号Iptr、Optrの最上位ビットの値が“1b”になる。このように信号Iptr、Optrの最上位ビットの値が同じ状態で、信号Iptr、Optrが示すエントリの番号、すなわち信号Iptr、Optrの下位3ビットの値が同じである場合には、図4(C)に示すようにすべてのエントリ(TFB)301−0〜301−7が無効となり、エンプティ状態となる。つまり、信号Iptr、Optrの値が同じである場合には、エンプティ状態となり、比較回路333は信号emptyをアサートする。
次に、本実施形態における情報処理装置の動作について説明する。図6A及び図6Bは、本実施形態におけるトレースフラッシュ処理の例を示すフローチャートである。
トレースフラッシュ処理でキャッシュメモリから主記憶装置であるメモリへのデータの書き戻しを行うストア指示がなされる期間であることがソフトウェアからの情報S12により示されると、情報処理装置でのトレースフラッシュ処理が開始される。バッファ部114は、命令制御部112から出力される信号RECがアサートされることで、トレースフラッシュ処理でメモリ120へのデータの書き戻しを行うストア処理の開始を検知する。
まず、一次キャッシュメモリ部113が、命令制御部112からのストア要求に応じて、一次キャッシュメモリ202にデータを書き込むキャッシュストア処理を実行する(S101)。キャッシュストア処理では、図7に示すように、一次キャッシュメモリ部113のパイプライン処理部201は、命令制御部112からのストア要求を受信して(S201)、パイプラインに投入する(S202)。続いて、パイプライン処理部201は、ストア要求のアドレス及びデータを一次キャッシュメモリ202に出力し、ストア要求により受信したアドレスに対応する一次キャッシュメモリ202内の記憶領域(エントリ)にデータを書き込む(S203)。
図6Aに戻り、バッファ部114のバッファ制御部203は、ステップS101でのキャッシュストア処理においてパイプライン処理部201から一次キャッシュメモリ202に出力されたストア要求のアドレスを取得する(S102)。次に、バッファ制御部203は、ステップS102において取得したアドレスと、バッファ204の有効なエントリに保持されているアドレスとを比較し、取得したアドレスがバッファ204の有効なエントリにすでに格納されているか否かを判断する(S103)。
ステップS103での判断の結果、取得したアドレスがバッファ204の有効なエントリにすでにあると判断した場合には、ステップS101に戻る。一方、ステップS103での判断の結果、取得したアドレスがバッファ204の有効なエントリにないと判断した場合には、バッファ制御部203は、信号Iptrを基にバッファ204内の無効なエントリを確保し、そのエントリのバリッドビットを制御して有効化する(S104)。そして、バッファ制御部203は、ステップS102において取得したアドレスを、有効化したエントリに格納する(S105)。
次に、バッファ制御部203は、バッファ204内のエントリに空きがあるか否かを判断する(S106)。判断の結果、バッファ204のエントリに空きがない、すなわちすべてのエントリが有効である場合には、バッファ制御部203は、1つのエントリを無効化してエントリに空きがある状態にするために単発フラッシュ処理を実行する(S107)。単発フラッシュ処理の詳細については後述するが、単発フラッシュ処理を実行することで1つのエントリが無効化される。
続いて、バッファ制御部203は、命令制御部112から出力される信号RECがネゲートされたか否かを判断する(S108)。判断の結果、信号RECがネゲートされていない場合には、ステップS101に戻る。信号RECがネゲートされるまで、前述したステップS101〜S108の処理を繰り返し実行し、信号RECがネゲートされると、図6Bに示すステップS109へ進む。ステップS109にて、バッファ制御部203は、命令制御部112から出力される信号FLASHを受信する。
次に、バッファ制御部203は、信号Optrを基にバッファ204内の有効なエントリに格納されているアドレスを取得する(S110)。そして、バッファ制御部203は、ステップS110において取得したアドレスを書き込み先とするメモリ書き戻し要求を二次キャッシュメモリ115に発行する(S111)。二次キャッシュメモリ115は、バッファ制御部203からのメモリ書き戻し要求に応じて、メモリ120にデータを書き込むメモリ書き戻し処理を実行する(S112)。
メモリ書き戻し処理では、図9に示すように、二次キャッシュメモリ115は、メモリ書き戻し処理においてデータの書き込みを行うメモリ書き戻しアドレスを一次キャッシュメモリ部113から受信する(S401)。次に、二次キャッシュメモリ115は、メモリ書き戻しアドレスが示すデータの取得要求を一次キャッシュメモリ202に発行し(S402)、それに対する応答を受信して一次キャッシュメモリ202のデータを取得する(S403)。
続いて、二次キャッシュメモリ115は、ステップS403において取得したデータで自らのメモリ内容を更新し(S404)、さらにメモリ120への書き戻しを行う(S405)。そして、ステップS403において取得されたデータのメモリ120への書き戻しが完了すると、メモリ120から二次キャッシュメモリ115に書き戻し終了が通知される。二次キャッシュメモリ115は、メモリ120からの書き戻し終了を受信した後(S406)、一次キャッシュメモリ202に書き戻し終了を通知して(S407)、メモリ書き戻し処理を終了する。ここで、トレースフラッシュ処理においては、ステップS407において、二次キャッシュメモリ115は、一次キャッシュメモリ202に加え、バッファ部114に対しても書き戻し終了を通知する。
図6Bに戻り、バッファ部114のバッファ制御部203は、二次キャッシュメモリ115からの書き戻し終了を受信する(S113)。次に、バッファ制御部203は、受信した書き戻し終了を基に、メモリ書き戻し処理が正常に終了したか否かを判断する(S114)。メモリ書き戻し処理が正常終了したと判断した場合には、バッファ制御部203は、ステップS110においてアドレスを取得したバッファ204のエントリのバリッドビットを制御して、そのエントリを無効化する(S115)。
次に、バッファ制御部203は、バッファ204のすべてのエントリが無効であるか否かを判断し(S116)、すべてのエントリが無効であればソフトウェアに対して正常終了(Normal END)を送信し(S117)、トレースフラッシュ処理を終了する。これにより、キャッシュメモリからメモリへの書き戻しの際に、CPU−メモリ間の伝送路などでエラーが発生することなく書き戻しが行われたことをソフトウェアに通知することができる。一方、バッファ204に有効なエントリがあれば、ステップS110へ戻り、前述したステップS110以降の処理を行う。
メモリ書き戻し処理が正常終了していない、すなわち異常終了したと判断した場合には、バッファ制御部203は、エラー回数をカウントし(S118)、エラー回数が指定回数を超えたか否かを判断する(S119)。エラー回数が指定回数を超えていない場合にはステップS111へ戻り、バッファ制御部203は、ステップS110において取得したアドレスを用いてステップS111以降の処理を再び実行する。一方、エラー回数が指定回数を超えた場合には、バッファ制御部203は、ソフトウェアに対して異常終了(Error END)を送信し(S120)、トレースフラッシュ処理を終了する。これにより、キャッシュメモリからメモリへの書き戻しの際に、CPU−メモリ間の伝送路などでエラーが発生し書き戻しが完了しなかったことをソフトウェアに通知することができる。
図8は、単発フラッシュ処理の例を示すフローチャートである。単発フラッシュ処理は、バッファ204のエントリのすべてが有効になった場合に、1つのエントリについてメモリ書き戻し処理を実行して、そのエントリを無効化する。
単発フラッシュ処理を開始すると、バッファ制御部203は、一次キャッシュメモリ部113のパイプライン処理部201に、ストア要求のパイプラインへの投入を停止させるストア抑止信号を出力して、後続のストア処理を抑止する(S301)。次に、バッファ制御部203は、信号Optrを基にバッファ204内の有効なエントリに格納されているアドレスを取得する(S302)。そして、バッファ制御部203は、ステップS302において取得したアドレスを書き込み先とするメモリ書き戻し要求を二次キャッシュメモリ115に発行する(S303)。
二次キャッシュメモリ115は、バッファ制御部203からのメモリ書き戻し要求に応じて、メモリ120にデータを書き込むメモリ書き戻し処理を実行する(S304)。なお、ステップS304におけるメモリ書き戻し処理は、図6BのステップS112におけるメモリ書き戻し処理と同様である。続いて、バッファ制御部203は、二次キャッシュメモリ115からの書き戻し終了を受信する(S305)。次に、バッファ制御部203は、ステップS302においてアドレスを取得したバッファ204のエントリのバリッドビットを制御して、そのエントリを無効化し(S306)、処理を終了する。
図10は、本実施形態における情報処理装置の動作例を示すタイミングチャートであり、トレースフラッシュ処理においてメモリ120へのデータの書き戻しが正常に終了した場合を示している。
命令制御部112は、ソフトウェアからの情報S12に応じて信号RECをアサートする(時刻T11)。その後、時刻T12から、命令制御部112は、ソフトウェアからのストア指示に応じて、トレースフラッシュ処理によってメモリ120に書き込む一連のデータ(図示せず)についてのストア要求S13及びストア要求のアドレスを順次出力する。
一次キャッシュメモリ部113のパイプライン処理部201は、命令制御部112から順次出力されたストア要求S13及びストア要求のアドレスを受けると、ストア要求のアドレスSA1を一次キャッシュメモリ202に出力する。このとき、信号RECがアサートされているので、バッファ部114のバッファ制御部203は、一次キャッシュメモリ202に出力されるストア要求のアドレスSA1を取得して、バッファ204のエントリ(TFB0〜TFB7)301−0〜301−7に登録し保持する。図10に示す例では、トレースフラッシュ処理によってメモリ120に書き込む一連のデータの数が6つであるので、エントリ(TFB0〜TFB5)301−0〜301−5にストア要求のアドレスSA1が保持される。
時刻T13において、命令制御部112は、ソフトウェアからの情報S12に応じて信号RECをネゲートするとともに信号FLASHをアサートする。信号FLASHがアサートされた後の時刻T14において、バッファ部114のバッファ制御部203は、バッファ204のエントリ(TFB0〜TFB5)301−0〜301−5に格納されているストア要求のアドレスに係るメモリ書き戻し要求S15を二次キャッシュメモリ115に順次発行する。
そして、二次キャッシュメモリ115は、それぞれのストア要求のアドレスに係るデータのメモリ120への書き戻し処理が終了すると、各アドレスに係るデータの書き戻し終了S19をバッファ部114に順次通知する(時刻T15)。データの書き戻し終了S19を受けたバッファ制御部203は、ストア要求のアドレスが格納されているバッファ204のエントリ(TFB0〜TFB7)301−0〜301−7を無効にする。そして、バッファ204の有効なエントリに対応する書き戻し終了S19をすべて受けた後の時刻T16において、バッファ部114は、ソフトウェアに対しトレースフラッシュ処理の終了(Normal END)S20を出力し、処理が完了する。
図11は、本実施形態における情報処理装置の動作例を示すタイミングチャートであり、トレースフラッシュ処理においてメモリ120へのデータの書き戻しにおいてエラーが発生し、データの書き戻しを再度行う場合を示している。なお、図11に示した時刻T21〜T25までの動作は、図10に示した時刻T11〜T15までの動作と同様であるので説明は省略する。
図11に示す例では、ストア要求のアドレス“87”に係るデータのメモリ120への書き戻し処理の1回目において異常終了し、時刻T26において、二次キャッシュメモリ115は、バッファ部114に書き戻しのエラーを通知する。この通知を受けて、バッファ部114は、ストア要求のアドレス“87”に係るメモリ書き戻し要求S15を二次キャッシュメモリ115に再び発行する(時刻T27)。そして、二次キャッシュメモリ115は、ストア要求のアドレス“87”に係るデータのメモリ120への書き戻し処理が正常終了すると書き戻し終了S19をバッファ部114に通知する(時刻T28)。
ストア要求のアドレス“87”に係るデータの書き戻し終了S19を受けたバッファ制御部203は、ストア要求のアドレス“87”が格納されているバッファ204のエントリ(TFB5)301−5を無効にする。そして、時刻T29において、バッファ部114は、ソフトウェアに対しトレースフラッシュ処理の終了(Normal END)S20を出力し、処理が完了する。
図12、図13、及び図14は、本実施形態におけるバッファ部114の動作例を示すタイミングチャートである。なお、図12〜図14に示した信号のうち、図3に示した信号に対応するものについては同じ信号名で示している。また、図12〜図14において、CNTはカウンタ332のカウント値であり、TFBi(i=0〜7)はバッファ204のエントリ(TFBi)301−iに保持されている有効なアドレスである。
図12には、トレースフラッシュ処理によってメモリ120へ書き戻す一連のデータが9つある場合の例を示している。信号Iptr、Optrの最上位ビットの値が異なり、下位3ビットの値が同じときには、エントリのすべてが有効なフル状態であることを示す信号fullがアサートされる。また、信号Iptr、Optrの値が同じときには、エントリのすべてが無効なエンプティ状態であることを示す信号emptyがアサートされる。
信号recordがアサートされトレースフラッシュ処理によってメモリ120に書き込む一連のデータのストア処理が開始される。信号recordがアサートされた状態で、一次キャッシュメモリに対してデータを書き込むキャッシュストア処理を行うことを示す信号storeがアサートされ、ストア要求のアドレスに相当する信号saddが入力されると、信号Iptrの下位3ビットの値iが示すバッファ204のエントリ(TFBi)301−iが信号saddの値を保持する。また、バッファ制御部203は、信号Iptrの値を1インクリメントする。
なお、信号recordがアサートされた状態で信号storeがアサートされても、信号fullがアサートされているとき、又は信号saddの値がすでにエントリに保持されている値と同じとき(図12に示す例では2回目の“08”)には、信号saddの値を保持しない。また、信号recordがアサートされた状態でも信号storeがネゲートされているときは、信号saddの値を保持しない。
そして、信号Iptr、Optrの最上位ビットの値が異なり、下位3ビットの値が同じになると、信号fullがアサートされる。また、後続のストア処理を抑止して、二次キャッシュメモリに対してデータの書き戻しを要求することを示す信号L2req、及びメモリ書き戻し処理が要求される場合にアサートされる信号trcflがアサートされる。これにより、バッファ制御部203は、信号Optrの下位3ビットの値iが示すバッファ204のエントリ(TFBi)301−iに格納されているアドレスに係るデータのメモリ書き戻し処理を実行し、エントリ(TFBi)301−iを無効化する。図12に示す例では、バッファ204のエントリ(TFB0)301−0に格納されているアドレス“03”に係るデータのメモリ書き戻し処理が実行され、エントリ(TFB0)301−0が無効化される。
また、バッファ制御部203は、データのメモリ書き戻し処理を実行する際、信号Optrの値を1インクリメントするとともに、カウンタ322のカウント値CNTを1インクリメントする。そして、データのメモリ書き戻し処理が正常に終了すると、二次キャッシュメモリがメモリへの書き戻しが正常終了したことを示す信号L2endがアサートされ、バッファ制御部203は、カウンタ322のカウント値CNTを1デクリメントする。
再び、信号Iptr、Optrの値が異なる値となって信号fullがネゲートされ、信号storeがアサートされると、信号Iptrの下位3ビットの値iが示すバッファ204のエントリ(TFBi)301−iがストア要求のアドレスに相当する信号saddの値を保持する。また、バッファ制御部203は、信号Iptrの値を1インクリメントする。
その後、トレースフラッシュ処理によってメモリ120に書き込む一連のデータのストア処理が終了すると、信号recordがネゲートされる。そして、信号L2req、及びtrcflがアサートされると、バッファ制御部203は、信号Iptr、Optrが同じ値になるまで、バッファ204のエントリ(TFBi)301−iに格納されているアドレスに係るデータのメモリ書き戻し処理を実行する。バッファ制御部203は、データのメモリ書き戻し処理を実行する際に、カウンタ322を用いてカウント動作を行い、トレースフラッシュ処理によるデータの書き戻しの終了時にカウント値CNTが0の場合、トレースフラッシュ処理が正常終了したことを示す信号ENDを出力する。
図13には、トレースフラッシュ処理においてメモリ120へ書き戻しエラーが1回発生し、ハードウェアにより再度書き戻しを行う場合の例を示している。
図12に示した動作例と同様にして、バッファ部114のバッファ204のエントリ(TFBi)301−iが信号saddの値を保持していき、トレースフラッシュ処理によってメモリ120に書き込む一連のデータのストア処理が終了すると、信号recordがネゲートされる。そして、信号L2req、及びtrcflがアサートされると、バッファ制御部203は、信号Iptr、Optrが同じ値になるまで、バッファ204のエントリ(TFBi)301−iに格納されているアドレスに係るデータのメモリ書き戻し処理を実行する。このメモリ書き戻し処理において、図13に示す例ではバッファ204のエントリ(TFB2)301−2に格納されているアドレス“08”に係るデータをメモリに書き戻す際にエラーが発生し、二次キャッシュメモリ115からの信号L2errがアサートされる。
信号Iptr、Optrが同じ値になると、バッファ制御部203は、信号Optrの値を“0100”から、データをメモリに書き戻す際にエラーが発生した値“0010”に変更する。これにより、バッファ制御部203は、信号Optrが示すエントリ(TFB2)301−2に格納されているアドレス“08”に係るデータのメモリ書き戻し処理を再度実行する。このメモリ書き戻し処理が正常に終了し信号L2endがアサートされることで、バッファ制御部203が、カウンタ322のカウント値CNTを1デクリメントし、カウント値が0になる。また、バッファ制御部203は、信号Optrの値を“0100”に戻す。そして、バッファ制御部203は、トレースフラッシュ処理が正常終了したことを示す信号ENDを出力する。
図14には、トレースフラッシュ処理においてメモリ120へ書き戻しエラーが2回発生し、ソフトウェアに対してエラーを通知する場合の例を示している。データをメモリに書き戻す際に1回目のエラーが発生し、そのデータのメモリ書き戻し処理を再度実行するまでの動作は、図13に示した例と同様である。しかし、図14に示した例では、再度実行したメモリ書き戻し処理においてもエラーが発生し、二次キャッシュメモリ115からの信号L2errがアサートされる。このように同一のアドレスに係るデータのメモリ書き戻し処理においてエラーが再び発生した場合には、バッファ制御部203は、トレースフラッシュ処理が異常終了したことを示す信号ERRORをソフトウェアに対して出力する。また、バッファ制御部203は、信号Iptr、Optr、カウンタ322のカウント値CNT、及びバッファ204の各エントリ(TFBi)301−iが保持している値を初期値(例えば0)に設定する。
本実施形態によれば、トレースフラッシュ処理によって、一次キャッシュメモリ202に特定のデータを書き込んだ後、速やかにメモリ120への書き戻しを実行することができ、特定のデータのストアの安全性を確保することができる。したがって、例えば、あるCPUが故障した際に、そのCPUが有する一次キャッシュメモリからメモリ120へデータを書き戻しているために、複数のCPUに影響が及ぶことを防止し、情報処理装置を継続して運用することが可能になる。また、一次キャッシュメモリ202からメモリ120へのデータの書き戻しの際にCPUが故障しても、故障以前のデータがメモリ120にあるため、故障したCPUのみの処理を再度実行することで、情報処理装置の継続した運用が可能である。また、特定のデータについて速やかに一次キャッシュメモリ202からメモリ120へのデータの書き戻しを行い、計算途中結果などのデータはトレースフラッシュ処理による書き戻しを行わないことで、性能を低下させることもない。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
(付記1)
キャッシュメモリと、
データを前記キャッシュメモリに書き込むストア要求を発行するとともに、特定のデータに係る前記ストア要求の出力期間を示す第1の信号を出力する命令制御部と、
前記命令制御部からの前記ストア要求を受けて、当該ストア要求のアドレス及びデータを前記キャッシュメモリに出力しデータを書き込む第1の書き込み処理部と、
複数のエントリを有し、前記第1の信号が前記特定のデータに係る前記ストア要求の出力期間であることを示す場合に、前記第1の書き込み処理部から前記キャッシュメモリに出力された前記アドレスを取得して前記エントリに保持し、当該出力期間が終了すると、前記エントリに保持しているアドレスが示すデータを主記憶装置に書き込む書き戻し要求を発行するバッファ部と、
前記バッファ部からの前記書き戻し要求を受けて、当該書き戻し要求に応じたデータを前記キャッシュメモリから取得して前記主記憶装置に書き込む第2の書き込み処理部とを有することを特徴とする演算処理装置。
(付記2)
前記バッファ部は、前記特定のデータに係る前記ストア要求の出力期間中に複数のエントリに空きがなくなった場合には、前記エントリに保持しているアドレスが示すデータの前記書き戻し要求を発行することを特徴とする付記1記載の演算処理装置。
(付記3)
前記バッファ部は、取得した前記アドレスと前記エントリに保持しているアドレスとが同一である場合には、取得した前記アドレスを保持しないことを特徴とする付記1記載の演算処理装置。
(付記4)
前記命令制御部は、前記特定のデータに係る前記ストア要求の出力期間が終了した後に第2の信号を出力し、
前記バッファ部は、前記命令制御部からの前記第2の信号を受けると前記エントリに保持しているアドレスが示すデータの前記書き戻し要求を発行することを特徴とする付記1記載の演算処理装置。
(付記5)
前記バッファ部は、発行した前記書き戻し要求による前記主記憶装置へのデータの書き込みが正常に終了した場合に正常終了を通知することを特徴とする付記1記載の演算処理装置。
(付記6)
前記バッファ部は、発行した前記書き戻し要求による前記主記憶装置へのデータの書き込みでエラーが発生した場合に、当該エラーが発生したデータの前記書き戻し要求を発行することを特徴とする付記1記載の演算処理装置。
(付記7)
前記バッファ部は、発行した前記書き戻し要求による前記主記憶装置へのデータの書き込みでエラーが発生した回数をカウントし、指定回数を超えるエラーが発生した場合にエラー通知を行うことを特徴とする付記6記載の演算処理装置。
(付記8)
それぞれ演算を行う複数の演算処理装置と、
前記複数の演算処理装置に接続される主記憶装置とを有し、
前記演算処理装置の各々は、
キャッシュメモリと、
データを前記キャッシュメモリに書き込むストア要求を発行するとともに、特定のデータに係る前記ストア要求の出力期間を示す第1の信号を出力する命令制御部と、
前記命令制御部からの前記ストア要求を受けて、当該ストア要求のアドレス及びデータを前記キャッシュメモリに出力しデータを書き込む第1の書き込み処理部と、
複数のエントリを有し、前記第1の信号が前記特定のデータに係る前記ストア要求の出力期間であることを示す場合に、前記第1の書き込み処理部から前記キャッシュメモリに出力された前記アドレスを取得して前記エントリに保持し、当該出力期間が終了すると、前記エントリに保持しているアドレスが示すデータを前記主記憶装置に書き込む書き戻し要求を発行するバッファ部と、
前記バッファ部からの前記書き戻し要求を受けて、当該書き戻し要求に応じたデータを前記キャッシュメモリから取得して前記主記憶装置に書き込む第2の書き込み処理部とを有することを特徴とする情報処理装置。
(付記9)
演算処理装置が有する命令制御部が、データをキャッシュメモリに書き込むストア要求を発行し、
前記演算処理装置が有する命令制御部が、特定のデータに係る前記ストア要求の出力期間を示す第1の信号を出力し、
前記演算処理装置が有する第1の書き込み処理部が、前記命令制御部からの前記ストア要求を受けて、当該ストア要求のアドレス及びデータを前記キャッシュメモリに出力してデータを書き込み、
前記演算処理装置が有するバッファ部が、前記第1の信号が前記特定のデータに係る前記ストア要求の出力期間であることを示す場合に、前記第1の書き込み処理部から前記キャッシュメモリに出力された前記アドレスを取得してエントリに保持し、当該出力期間が終了すると、前記エントリに保持しているアドレスが示すデータを主記憶装置に書き込む書き戻し要求を発行し、
前記演算処理装置が有する第2の書き込み処理部が、前記バッファ部からの前記書き戻し要求を受けて、当該書き戻し要求に応じたデータを前記キャッシュメモリから取得して前記主記憶装置に書き込むことを特徴とする演算処理装置の制御方法。
110 CPU
120 メモリ
130 バス
111 コア
112 命令制御部
113 一次キャッシュメモリ部
114 バッファ部
115 二次キャッシュメモリ
201 パイプライン処理部
202 一次キャッシュメモリ
203 バッファ制御部
204 バッファ

Claims (5)

  1. キャッシュメモリと、
    データを前記キャッシュメモリに書き込むストア要求を発行するとともに、特定のデータに係る前記ストア要求の出力期間を示す第1の信号を出力する命令制御部と、
    前記命令制御部からの前記ストア要求を受けて、当該ストア要求のアドレス及びデータを前記キャッシュメモリに出力しデータを書き込む第1の書き込み処理部と、
    複数のエントリを有し、前記第1の信号が前記特定のデータに係る前記ストア要求の出力期間であることを示す場合に、前記第1の書き込み処理部から前記キャッシュメモリに出力された前記アドレスを取得して前記エントリに保持し、当該出力期間が終了すると、前記エントリに保持しているアドレスが示すデータを主記憶装置に書き込む書き戻し要求を発行するバッファ部と、
    前記バッファ部からの前記書き戻し要求を受けて、当該書き戻し要求に応じたデータを前記キャッシュメモリから取得して前記主記憶装置に書き込む第2の書き込み処理部とを有することを特徴とする演算処理装置。
  2. 前記バッファ部は、前記特定のデータに係る前記ストア要求の出力期間中に複数のエントリに空きがなくなった場合には、前記エントリに保持しているアドレスが示すデータの前記書き戻し要求を発行することを特徴とする請求項1記載の演算処理装置。
  3. 前記バッファ部は、取得した前記アドレスと前記エントリに保持しているアドレスと同一である場合には、取得した前記アドレスを保持しないことを特徴とする請求項1又は2記載の演算処理装置。
  4. それぞれ演算を行う複数の演算処理装置と、
    前記複数の演算処理装置に接続される主記憶装置とを有し、
    前記演算処理装置の各々は、
    キャッシュメモリと、
    データを前記キャッシュメモリに書き込むストア要求を発行するとともに、特定のデータに係る前記ストア要求の出力期間を示す第1の信号を出力する命令制御部と、
    前記命令制御部からの前記ストア要求を受けて、当該ストア要求のアドレス及びデータを前記キャッシュメモリに出力しデータを書き込む第1の書き込み処理部と、
    複数のエントリを有し、前記第1の信号が前記特定のデータに係る前記ストア要求の出力期間であることを示す場合に、前記第1の書き込み処理部から前記キャッシュメモリに出力された前記アドレスを取得して前記エントリに保持し、当該出力期間が終了すると、前記エントリに保持しているアドレスが示すデータを前記主記憶装置に書き込む書き戻し要求を発行するバッファ部と、
    前記バッファ部からの前記書き戻し要求を受けて、当該書き戻し要求に応じたデータを前記キャッシュメモリから取得して前記主記憶装置に書き込む第2の書き込み処理部とを有することを特徴とする情報処理装置。
  5. 演算処理装置が有する命令制御部が、データをキャッシュメモリに書き込むストア要求を発行し、
    前記演算処理装置が有する命令制御部が、特定のデータに係る前記ストア要求の出力期間を示す第1の信号を出力し、
    前記演算処理装置が有する第1の書き込み処理部が、前記命令制御部からの前記ストア要求を受けて、当該ストア要求のアドレス及びデータを前記キャッシュメモリに出力してデータを書き込み、
    前記演算処理装置が有するバッファ部が、前記第1の信号が前記特定のデータに係る前記ストア要求の出力期間であることを示す場合に、前記第1の書き込み処理部から前記キャッシュメモリに出力された前記アドレスを取得してエントリに保持し、当該出力期間が終了すると、前記エントリに保持しているアドレスが示すデータを主記憶装置に書き込む書き戻し要求を発行し、
    前記演算処理装置が有する第2の書き込み処理部が、前記バッファ部からの前記書き戻し要求を受けて、当該書き戻し要求に応じたデータを前記キャッシュメモリから取得して前記主記憶装置に書き込むことを特徴とする演算処理装置の制御方法。
JP2013060722A 2013-03-22 2013-03-22 演算処理装置、情報処理装置、及び演算処理装置の制御方法 Expired - Fee Related JP5998998B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013060722A JP5998998B2 (ja) 2013-03-22 2013-03-22 演算処理装置、情報処理装置、及び演算処理装置の制御方法
EP14150707.9A EP2782015A1 (en) 2013-03-22 2014-01-10 Processor, information processing apparatus, and method for controlling cache write-back
US14/153,112 US9323674B2 (en) 2013-03-22 2014-01-13 Processor, information processing apparatus, and control method of processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013060722A JP5998998B2 (ja) 2013-03-22 2013-03-22 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2014186521A true JP2014186521A (ja) 2014-10-02
JP5998998B2 JP5998998B2 (ja) 2016-09-28

Family

ID=49949519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013060722A Expired - Fee Related JP5998998B2 (ja) 2013-03-22 2013-03-22 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Country Status (3)

Country Link
US (1) US9323674B2 (ja)
EP (1) EP2782015A1 (ja)
JP (1) JP5998998B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6319473B1 (ja) * 2017-02-07 2018-05-09 日本電気株式会社 情報処理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
JPH056308A (ja) * 1990-11-05 1993-01-14 Mitsubishi Electric Corp キヤツシユ・コントローラ並びにフオールト・トレラント・コンピユータ及びそのデータ転送方式
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
US20030056062A1 (en) * 2001-09-14 2003-03-20 Prabhu Manohar K. Preemptive write back controller
JP2006091995A (ja) * 2004-09-21 2006-04-06 Toshiba Microelectronics Corp キャッシュメモリのライトバック装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353423A (en) * 1991-06-21 1994-10-04 Compaq Computer Corporation Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses
JPH0883215A (ja) 1994-09-12 1996-03-26 Hitachi Ltd メモリ制御装置
JPH11282750A (ja) 1998-03-26 1999-10-15 Canon Inc キャッシュメモリ装置及び制御方法
JP2011150684A (ja) * 2009-12-21 2011-08-04 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
US9164912B2 (en) * 2012-06-13 2015-10-20 International Business Machines Corporation Conflict resolution of cache store and fetch requests

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04230549A (ja) * 1990-10-12 1992-08-19 Internatl Business Mach Corp <Ibm> 多重レベル・キャッシュ
JPH056308A (ja) * 1990-11-05 1993-01-14 Mitsubishi Electric Corp キヤツシユ・コントローラ並びにフオールト・トレラント・コンピユータ及びそのデータ転送方式
JPH10320274A (ja) * 1997-03-19 1998-12-04 Toshiba Corp キャッシュフラッシュ装置及び同装置を備えた計算機システム、記録媒体
US20030056062A1 (en) * 2001-09-14 2003-03-20 Prabhu Manohar K. Preemptive write back controller
JP2006091995A (ja) * 2004-09-21 2006-04-06 Toshiba Microelectronics Corp キャッシュメモリのライトバック装置

Also Published As

Publication number Publication date
JP5998998B2 (ja) 2016-09-28
EP2782015A1 (en) 2014-09-24
US9323674B2 (en) 2016-04-26
US20140289480A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
CN101523361B (zh) 数据处理设备中对共享存储器的写访问请求的处理
US10896075B1 (en) Method and apparatus for multithreaded data transmission in a TEE system
US10943006B2 (en) Method and apparatus for multithreaded data transmission in a TEE system
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
US11113065B2 (en) Speculative instruction wakeup to tolerate draining delay of memory ordering violation check buffers
US9606923B2 (en) Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program
CN106897230B (zh) 用于处理原子更新操作的装置和方法
CN100504817C (zh) 系统控制器、同地址请求队列预防方法及其信息处理设备
US20120137077A1 (en) Miss buffer for a multi-threaded processor
CN107025130B (zh) 处理节点、计算机系统及事务冲突检测方法
US9864709B2 (en) Data transfer in a multi-core processor
CN116909943B (zh) 一种缓存访问方法、装置、存储介质及电子设备
JP6687845B2 (ja) 演算処理装置及び演算処理装置の制御方法
CN112313636B (zh) 用于实现网络分组模板化的系统、装置和方法
US20190138232A1 (en) Local instruction ordering based on memory domains
CN106663026A (zh) 针对事务型数据处理执行模式的调用堆栈维护
JP5499987B2 (ja) 共有キャッシュメモリ装置
JP2024535328A (ja) 再参照間隔予測キャッシュ置換ポリシーのための再参照インジケータ
CN120029933A (zh) 数据请求处理方法、装置、电子设备、存储介质和程序产品
US11003581B2 (en) Arithmetic processing device and arithmetic processing method of controlling prefetch of cache memory
JP5998998B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
CN118672655A (zh) 指令处理装置、方法、处理器、电子设备和存储介质
US11204995B2 (en) Cache line cleanup for prevention of side channel attack
CN117472803B (zh) 原子指令执行方法、装置及电子设备
US8370582B2 (en) Merging subsequent updates to a memory location

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160727

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160815

R150 Certificate of patent or registration of utility model

Ref document number: 5998998

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees