JP2022014963A - キャッシュ制御装置及びキャッシュシステムの制御方法 - Google Patents

キャッシュ制御装置及びキャッシュシステムの制御方法 Download PDF

Info

Publication number
JP2022014963A
JP2022014963A JP2020117507A JP2020117507A JP2022014963A JP 2022014963 A JP2022014963 A JP 2022014963A JP 2020117507 A JP2020117507 A JP 2020117507A JP 2020117507 A JP2020117507 A JP 2020117507A JP 2022014963 A JP2022014963 A JP 2022014963A
Authority
JP
Japan
Prior art keywords
data
unit
tag
store
cache
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.)
Pending
Application number
JP2020117507A
Other languages
English (en)
Inventor
凌太郎 得丸
Ryotaro Tokumaru
正和 田ノ元
Masakazu Tanomoto
泰資 齊木
Taishi Saiki
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 JP2020117507A priority Critical patent/JP2022014963A/ja
Priority to US17/229,904 priority patent/US11625331B2/en
Publication of JP2022014963A publication Critical patent/JP2022014963A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Figure 2022014963000001
【課題】先行ストア命令と後続ストア命令との間での実行タイミングの調整による処理効率の低下を軽減したキャッシュ制御装置を提供する。
【解決手段】キャッシュ制御装置において、インデッグス毎にデータを格納するデータ部と、インデックス毎に、タグと、データが訂正不可エラーを有するか否かを示すフラグと、を格納するタグ部と、タグ部に読み出しアクセスしてタグヒットを検出する際に、フラグを参照することによりタグヒットに対応するデータに訂正不可エラーが存在するか否かを判定する制御部とを含み、制御部は、タグ部への読み出しアクセスとタグ部への他のアクセス動作とを同時に実行するように処理をスケジューリングする。
【選択図】図3

Description

本願開示は、キャッシュ制御装置及びキャッシュシステムの制御方法に関する。
キャッシュシステムでは、命令制御部からL1キャッシュに対してストア命令が発行されると、L1キャッシュ内のタグ部にアクセスして、ストア命令の書き込み先と一致するアドレスがタグ部に存在するか否かの検索を行う。タグ部において一致するアドレスが存在する即ちタグヒットしていると判定した場合は、L1キャッシュ内のデータ部へアクセスを行い、データの書き込み(ストア)を行う。この際、エラーが存在するアドレスへの書き込みを避けるために、最初に、データ部における書き込み対象のアドレスからデータを読み出して、読み出しデータのエラー訂正コードを計算することにより訂正不可エラーが存在するか否かを判定することが考えられる。訂正不可エラーが存在しないことを確認できると、データ部における当該書き込み対象アドレスに対してデータ書き込みを実行することができる。
近年のプロセッサのアーキテクチャの1つとしてスーパースカラ方式がある。これは各パイプラインにおける各処理が他のタイプラインとは異なるように複数のパイプラインで処理をずらして同時実行することにより、処理速度の高速化を実現する方式である。しかしながら一般的なプロセッサにおけるL1キャッシュのデータ部はRAMで実現されており、2つのパイプラインにおけるデータ部に対する2つのアクセス動作を同時に実行することはできない。
例えば、一方のパイプラインにおいてあるストア命令に対してデータ部への書き込み処理を実行している最中に、他方のパイプラインにおいて後続ストア命令に対して上述の訂正不可エラー判定のためのデータ部からの読み出し処理を実行することができない。そのため、後続ストア命令と先行ストア命令との間で処理が衝突しないように実行タイミングを調整することが必要になり、パイプラインの処理効率が低下してしまう。このような処理効率の低下は、連続するストア命令の数が多いほど顕著になり、プロセッサ全体の性能に大きな影響をもたらす場合がある。
特開2008-065370号公報 特開2014-197402号公報 特開2008-165449号公報
以上を鑑みると、先行ストア命令と後続ストア命令との間での実行タイミングの調整による処理効率の低下を軽減したキャッシュ制御装置を提供することが望まれる。
キャッシュ制御装置において、インデッグス毎にデータを格納するデータ部と、前記インデックス毎に、タグと、前記データが訂正不可エラーを有するか否かを示すフラグと、を格納するタグ部と、前記タグ部に読み出しアクセスしてタグヒットを検出する際に、前記フラグを参照することにより前記タグヒットに対応する前記データに訂正不可エラーが存在するか否かを判定する制御部とを含み、前記制御部は、前記タグ部への前記読み出しアクセスと前記タグ部への他のアクセス動作とを同時に実行するように処理をスケジューリングする。
少なくとも1つの実施例によれば、先行ストア命令と後続ストア命令との間での実行タイミングの調整による処理効率の低下を軽減したキャッシュ制御装置を提供することができる。
従来のキャッシュメモリにおいてストア命令を実行する動作手順の一例を示す図である。 図1の手順によりストア命令を実行する場合における各パイプラインの処理の一例を示す図である。 実施例によるキャッシュシステムの構成の一例を示す図である。 図3に示すキャッシュメモリにおいてストア命令を実行する動作手順の一例を示す図である。 図4の手順によりストア命令を実行する場合における各パイプラインの処理の一例を示す図である。 変形例のキャッシュメモリにおいてストア命令を実行する動作手順の一例を示す図である。 図6の手順によりストア命令を実行する場合における各パイプラインの処理の一例を示す図である。
まず、本願開示の技術に対する理解を容易にするために、先行ストア命令と後続ストア命令との間で実行タイミングの調整が必要になる状況について説明する。
図1は、従来のキャッシュメモリにおいてストア命令を実行する動作手順の一例を示す図である。図1に示される手順の各段階は、L1キャッシュに設けられた制御部により実行される。
ステップS101において、命令制御部からL1キャッシュに対してストア命令が発行されると、制御部は、L1キャッシュ内のタグ部へのアクセス動作(TAG-ACC)を実行してタグ部の内容を読み出す。ステップS102において、制御部は、ストア命令の書き込み先と一致するアドレスがタグ部に存在するか否か、即ちタグヒットしているか否かを判定する。
タグヒットしていない(タグミス)と判定した場合(ステップS102でNOの場合)、ステップS103において、制御部は、L2キャッシュに対してデータのリクエストを発行する。タグヒットしていると判定した場合(ステップS102でYESの場合)、ステップS104において、制御部は、データ部へのアクセス動作(Mem-ACC)を実行してデータ部のデータを読み出す。
ステップS105において、制御部は、読み出しデータに訂正不可エラー(uncorrectable error:ue)が存在するか否かを判定する。この際、制御部は、読み出しデータにueが存在するか否かの判定を行うために、読み出しデータのエラー訂正コードを計算する。ここでデータ部のデータは、複数のウェイが存在する場合には複数のウェイにそれぞれ対応する128バイトのデータを含み、主記憶装置からL1キャッシュへの情報のコピーは128バイト単位で実行される。即ち、データ部へは128バイト単位でデータが登録される。ステップS105においてueの有無を判定する際には、128バイトのデータ全体をひとまとまりとして、ueが存在するか否かが判定される。
ueが存在しないと判定した場合(ステップS105においてNOの場合)、処理はステップS121に進む。ueが存在すると判定した場合(ステップS105においてYESの場合)、処理はステップS106に進む。ステップS106において、制御部は、ueが存在する旨を命令制御部に通知し、その後処理を終了する。ueが存在する旨を通知された命令制御部での制御には様々な実施態様が考えられるが、例えば、データのコヒーレンシーを確保するために、ueが存在すると判定されたデータを主記憶装置に掃き出すようにキャッシュに指示すること等が考えられる。その後命令制御部は、同一のストア命令を再度発行してよい。
以上のステップS101からステップS106に至る一連の動作を、以降の説明においてストア処理st0と呼ぶ。
L2キャッシュに対するデータのリクエストを発行した後、ステップS111において、制御部は、L1キャッシュ内のタグ部へのアクセス動作(TAG-ACC)を実行してタグ部の内容を読み出す。ステップS112において、制御部は、ストア命令の書き込み先と一致するアドレスがタグ部に存在するか否か、即ちタグヒットしているか否かを判定する。
タグヒットしていない(タグミス)と判定した場合(ステップS112でNOの場合)、ストア命令により上書きされるデータがL1キャッシュにまだ到着しておらずデータ待ちの状態であることになる。この場合はステップS113において、制御部は、L2キャッシュに対してデータのリクエストを発行し、その後処理はステップS111に戻る。
タグヒットしていると判定した場合(ステップS112でYESの場合)、ステップS114において、制御部は、データ部へのアクセス動作(Mem-ACC)を実行してデータ部のデータを読み出す。
ステップS115において、制御部は、読み出しデータにueが存在するか否かを判定する。この際、制御部は、読み出しデータにueが存在するか否かの判定を行うために、読み出しデータのエラー訂正コードを計算する。この際、読み出しデータ中の128個の各バイトについて、エラー訂正コードを計算する。即ち、エラー訂正コードの計算はバイト単位(8ビット単位)で行われる。このステップS115においてueの有無を判定する際には、ストア命令による書き込み対象であるバイト(例えば128バイトのうちの上位64バイト等)において、ueが存在するか否かを判定する。当該書き込み対象であるバイト以外のバイトにおいてueが存在するか否かは、ステップS115における判定結果には影響しない。
ueが存在しないと判定した場合(ステップS115においてNOの場合)、処理はステップS121に進む。ueが存在すると判定した場合(ステップS115においてYESの場合)、処理はステップS116に進む。ステップS116において、制御部は、ueが存在するためにストア命令により上書きされるデータを使用することができない、即ちストア命令による書き込み動作を実行できないので、ストア不可能を示すディスストア情報(DIS STORE)を設定する。
以上のステップS111からステップS116に至る一連の動作を、以降の説明においてストア処理st1と呼ぶ。
その後ステップS121において、制御部は、L1キャッシュ内のタグ部へのアクセス動作(TAG-ACC)を実行してタグ部への書き込みを行う。具体的には、タグ部に格納されている状態情報(例えば変更、排他、共有、及び無効からなる4状態のうちのいずれの状態であるかを示す情報)を書き換える動作を実行する。
ステップS122において、制御部は、ディスストア情報が設定されているか否か(DIS STOREが存在するか否か)を判定する。ディスストア情報が設定されていない場合、処理はステップS123に進む。ディスストア情報が設定されている場合はストア命令を実行することができないため処理を終了する。
ステップS123において、制御部は、データ部へのアクセス動作(Mem-ACC)を実行してデータ部へストア対象のデータを書き込む。以上で処理を終了する。
以上のステップS121からステップS123に至る一連の動作を、以降の説明においてストア処理st2と呼ぶ。
図2は、図1の手順によりストア命令を実行する場合における各パイプラインの処理の一例を示す図である。図2に示す例では、(a)に示すL1登録専用パイプライン(Reg-pipe)、(b)に示す読み出し専用パイプライン(R-pipe)、及び(c)に示す書き込み専用パイプライン(W-pipe)により、パイプライン処理が実行される様子を示している。
図2において「st0(X)」はX番目のストア命令(或いは記号Xで特定するストア命令)を実行する際のストア処理st0のことである。「st1(X)」はX番目のストア命令(或いは記号Xで特定するストア命令)を実行する際のストア処理st1のことである。「st2(X)」はX番目のストア命令(或いは記号Xで特定するストア命令)を実行する際のストア処理st2のことである。
また更にL2キャッシュからのデータをL1キャッシュのタグ部及びデータ部に登録する処理をストア処理st3と定義する。図2において「st3(X)」はX番目のストア命令(或いは記号Xで特定するストア命令)を実行する際のストア処理st0のことである。
例えばst2(A)は第1のストア命令(ストア命令A)のストア処理st2のことであり、st0(B)は第2のストア命令(ストア命令B)のストア処理st0のことである。またst3(C)は第3のストア命令(ストア命令C)のストア処理st3のことであり、st1(E)は第5のストア命令(ストア命令E)のストア処理st1のことである。
L1登録専用パイプラインにおいては、ストア処理st3を順次実行する。また読み出し専用パイプラインにおいては、タグ部に対する読み出しアクセスとデータ部に対する読み出しアクセスとを各々が実行するストア処理st0及びストア処理st1を順次実行する。また書き込み専用パイプラインにおいては、タグ部に対する書き込みアクセスとデータ部に対する書き込みアクセスとを実行するストア処理st2を順次実行する。
例えばタイミングT3及びT4において、ストア命令Cに対してストア処理st3(C)が実行されて、タグ部及びデータ部にL2キャッシュからのデータが登録されて書き込まれる。その後タイミングT8及びT9において、当該ストア命令Cに対してストア処理st1(C)が実行されて、ヒット・ミス判定のためのタグ部からの読み出し処理とue判定のためのデータ部からの読み出し処理とが実行される。
前述のようにRAMであるデータ部に対して、あるタイミングにおけるアクセス動作(Mem-ACC)は1つのみが実行可能である。従って、ストア処理st0、st1、st2、及びst3の各々におけるアクセス動作(Mem-ACC)が同一タイミングに重ならないように、各パイプラインにおけるストア処理を図2に示されるようにずらす必要があった。
4個のストア処理st0、st1、st2、及びst3は、1つのストア命令に対して実行される異なるフェーズにおける処理であるので、パイプラインを効率よく実行するためには、4個のストア処理のうちの少なくとも幾つかは同時実行できることが好ましい。以下に説明する本願開示の技術においては、4個のストア処理のうちの少なくとも幾つかを同時実行できる構成を提供する。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図3は、実施例によるキャッシュシステムの構成の一例を示す図である。図3において、各ボックスで示される各回路又は機能ブロックと他の回路又は機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。各回路又は機能ブロックは、他のブロックと物理的にある程度分離された1つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の1つの機能を示したものであってもよい。
図3に示すキャッシュシステムは、命令制御部10、L1キャッシュ11、及びL2キャッシュ12を含む。命令制御部10及びL1キャッシュ11はキャッシュ制御装置として実現されてよく、当該キャッシュ制御装置には、命令を実行することによりデータに対する演算を実行する演算器(図示せず)が接続されてよい。またL2キャッシュも当該キャッシュ制御装置に含まれてもよい。L2キャッシュは更に主記憶装置(図示せず)に接続されていてよい。
命令制御部10は、ロード命令やストア命令等のアクセスリクエストをL1キャッシュ11に発行し、L1キャッシュ11に対するデータのロードやデータのストアを実行する。ストア命令により書き込むデータは演算器からL1キャッシュ11に供給され、ロード命令により読み出すデータはL1キャッシュ11から演算器に供給される。
L1キャッシュ11とL2キャッシュ12と主記憶装置とは、メモリの階層構造を形成している。L1キャッシュ11においてアクセスがヒットしない場合、L2キャッシュ12へのアクセスが実行される。更にL2キャッシュ12へのアクセスがヒットしない場合、主記憶装置へのアクセスが実行される。このようにして、キャッシュミスの場合には下位層のメモリにアクセスし、下位層のメモリに格納されているアクセスの対象であるデータを、L1キャッシュ11に転送する。
L1キャッシュ11は、タグ部21、制御部22、データ部23、及びエラーチェック部24を含む。アクセス先アドレスを示す全ビットのうちで、所定数の下位ビットがインデックスとなり、それより上位に位置する残りのビットがタグとなる。タグ部21が、これらのインデックスに対応するタグを格納している。例えばウェイが4つ存在する4ウェイ構成の場合であれば、各インデックスに対して、4つのウェイに対応する4つのタグが格納される。
なおタグ部21は、ラッチ群(フリップフロップ群)により実現され、複数のアクセス(例えば2つのアクセス)を同時に実行することが可能な構成となっている。より具体的には、少なくとも1つの読み出しアクセスと1つの書き込みアクセスとを同時に実行することができる。それに対してデータ部23は、RAMにより実現され、同時に複数のアクセスを実行することができない。
ストア命令やロード命令等のアクセスリクエストが命令制御部10から供給されると、制御部22が、アクセスリクエスト中のアクセス先を示すアドレスをタグ部21に供給する。タグ部21は、アドレス中のインデックス部分を用いて、タグ部21中の対応するインデックスのタグを出力する。例えば4つのウェイが存在する場合、4つのタグが出力される。
制御部22は、タグ部21が出力する例えば4つのタグとアクセス先アドレスのタグ部分とを比較し、これらのタグのビットパターンが一致するか否かを判断する。何れかのタグが一致する場合には、当該アクセスはタグヒットとなる。タグ部21が出力する何れのタグについても一致しない場合には、当該アクセスはタグミスとなる。
データ部23は、インデッグス毎にデータを格納するRAMであり、例えば4つのウェイが存在する場合であれば、4つのウェイに対応してそれぞれ設けられてよい。制御部22は、ヒットしたウェイに対応するデータ部23にアクセスして、アクセス先アドレスのインデックス部分に対応するメモリ領域に対してデータ読み出し又はデータ書き込みを実行する。データ部23のデータは、複数のウェイが存在する場合には複数のウェイにそれぞれ対応してインデックス毎に格納された例えば128バイトのデータを含む。この場合、L2キャッシュ12からL1キャッシュ11への情報のコピーは128バイト単位で実行される。即ち、データ部23へは128バイト単位でデータが登録される。以下において、データ部23に格納されるデータのデータ長は128バイトである場合を例にとって説明する。
制御部22は、タグミスを検出した場合、L2キャッシュ12に対してデータリクエストを発行する。このデータリクエストに応答してL2キャッシュ12から128バイトのデータが到着すると、当該データはまずエラーチェック部24に供給される。エラーチェック部24は、128バイトの全体に対してエラー訂正コードを計算することにより、128バイトのデータが訂正不可であるか否かを示すueフラグを生成する。ueフラグは例えば、値0の場合に訂正可能又はエラー無し状態を示し、値1の場合に訂正不可状態を示す1ビットデータであってよい。生成されたueフラグは、エラーの有無を示す情報と共に制御部22に供給される。
なお128バイトのデータである128バイトの情報ビットには、エラー訂正用の冗長ビットが付加されていてよい。エラーチェック部24は、情報ビットに基づいて、冗長ビットと同じ長さの検査ビット(エラー訂正コード)を計算してよい。エラーチェック部24は、計算した検査ビットと冗長ビットとのビット毎の比較結果に応じて、誤りの位置を特定することができる。特定された誤りの発生位置において情報ビットのビット値を反転することにより、エラーを訂正することができる。例えばハミング符号を用いてエラー訂正を実現する場合には、符号中に1ビットの誤りが発生した場合にエラー訂正が可能であり、2ビットの誤りが発生した場合には、エラー検出が可能であるがエラー訂正は不可である。
制御部22は、L2キャッシュ12からのデータをデータ部23の対応インデックスの領域に格納すると共に、タグをタグ部21の対応インデックスの領域に書き込むことにより、データ登録を実行する。制御部22は更に、エラーチェック部24から受け取った1ビットのueフラグを、タグ部21の当該インデックスに対応づけてタグ部21のueフラグ部21Aに格納する。本実施例においては、インデックス毎及びウェイ毎(即ち128バイトのデータ毎)に一個の1ビットのueフラグがueフラグ部21Aに格納されていてよい。
なお制御部22は、L1キャッシュ11にデータを登録する際には例外なく(データ登録処理が発生した状況にかかわらず)、生成したueフラグをタグ部21のueフラグ部21Aに書き込んでよい。制御部22は、エラーが発生していない場合であれば値が例えば0であるueフラグをueフラグ部21Aに書き込み、エラーが発生している場合であれば値が例えば1であるueフラグをueフラグ部21Aに書き込む。
上記のように、本実施例では、タグ部21に設けられたueフラグ部21Aにエラー訂正不可を示すueフラグを格納してある。即ち、タグ部21は、インデックス毎(及びウェイ毎)に、タグと、当該タグに対応するデータが訂正不可エラーを有するか否かを示すフラグと、を格納している。これにより、制御部22は、タグ部21に読み出しアクセスしてタグヒットを検出する際に、ueフラグを参照することによりタグヒットに対応するデータに訂正不可エラーが存在するか否かを判定することができる。即ち制御部22は、タグ部21を読み出しアクセスしてタグヒット又はタグミスを判定する際にueフラグを読み出し、タグヒット時にはueフラグを確認し、アクセス対象の128バイトのデータが訂正不可(壊れている)か否かを判定することができる。この場合、制御部22は、アクセス対象の128バイトのデータが訂正不可であるか否かを判断するために、図1に示される従来技術のようにデータ部23に読み出しアクセスし、読み出しデータに基づいてエラー訂正コードを計算する必要がなくなる。
前述のようにデータ部23は、RAMにより実現され、同時に複数のアクセスを実行することができない。それに対してタグ部21は、複数のアクセス(例えば1つの読み出しアクセス及び1つの書き込みアクセス)を同時に実行することが可能である。従って制御部22は、タグ部21への上記読み出しアクセス(データ部へのアクセスが後続しない動作)とタグ部21への他のアクセス動作(データ部へのアクセスが後続する動作)とを同時に実行するように処理をスケジューリングすることが可能になる。
図4は、図3に示すキャッシュメモリにおいてストア命令を実行する動作手順の一例を示す図である。図4に示される手順の各段階は、L1キャッシュに設けられた制御部22により実行される。
なお図4及び以降の同様の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Aステップの次にBステップが実行されるように本願に説明されていたとしても、Aステップの次にBステップを実行することが可能なだけでなく、Bステップの次にAステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Bステップの次にAステップが実行されてもよいことは自明である。Aステップの次にBステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
ステップS501において、命令制御部10からL1キャッシュ11に対してストア命令が発行されると、制御部22は、L1キャッシュ11内のタグ部21へのアクセス動作(TAG-ACC)を実行してタグ部21の内容を読み出す。このとき制御部22は、命令制御部10から供給された書き込み先アドレスのインデックス部分に対応するタグをタグ部21から読み出すと共に、当該インデックス部分に対応するueフラグをueフラグ部21Aから読み出す。ステップS502において、制御部22は、ストア命令の書き込み先アドレスのタグ部分と一致するタグがタグ部21に存在するか否か、即ちタグヒットしているか否かを判定する。
タグヒットしていない(タグミス)と判定した場合(ステップS502でNOの場合)、ステップS503において、制御部22は、L2キャッシュ12に対してデータのリクエストを発行する。タグヒットしていると判定した場合(ステップS502でYESの場合)、ステップS504において、制御部22は、訂正不可を示すueフラグが存在するか否か、即ちステップS501において読み出したueフラグが訂正不可を示す値(例えば1)であるか否かを判定する。前述のようにデータ部23のデータは、複数のウェイが存在する場合には複数のウェイにそれぞれ対応する128バイトのデータを含み、主記憶装置からL2キャッシュ12を介してのL1キャッシュ11への情報のコピーは128バイト単位で実行される。ステップS504においてueの有無を判定する際には、128バイトのデータ全体をひとまとまりとして、ueが存在するか否かが判定される。
ueが存在しないと判定した場合(ステップS505においてNOの場合)、処理はステップS521に進む。ueが存在すると判定した場合(ステップS505においてYESの場合)、処理はステップS511に進む。
以上のステップS501からステップS504に至る一連の動作を、以降の説明においてストア処理st0と呼ぶ。
ステップS511において、制御部22は、L1キャッシュ11内のタグ部21へのアクセス動作(TAG-ACC)を実行してタグ部21の内容を読み出す。このとき制御部22は、命令制御部10から供給された書き込み先アドレスのインデックス部分に対応するタグをタグ部21から読み出す。ステップS512において、制御部22は、ストア命令の書き込み先アドレスのタグ部分と一致するタグがタグ部21に存在するか否か、即ちタグヒットしているか否かを判定する。
タグヒットしていない(タグミス)と判定した場合(ステップS512でNOの場合)、ストア命令により上書きされるデータがL1キャッシュ11にまだ到着しておらずデータ待ちの状態であることになる。この場合はステップS513において、制御部22は、L2キャッシュ12に対してデータのリクエストを発行し、その後処理はステップS511に戻る。
タグヒットしていると判定した場合(ステップS512でYESの場合)、ステップS514において、制御部22は、データ部23へのアクセス動作(Mem-ACC)を実行してデータ部23のデータを読み出す。
ステップS515において、制御部22は、読み出しデータにueが存在するか否かを判定する。この際、制御部22は、読み出しデータにueが存在するか否かの判定を行うために、読み出しデータのエラー訂正コードをエラーチェック部24に計算させる。この際、読み出しデータ中の128個の各バイトについて、エラー訂正コードを計算する。即ち、エラー訂正コードの計算はバイト単位(8ビット単位)で行われる。このステップS515においてueの有無を判定する際には、ストア命令による書き込み対象であるバイト(例えば128バイトのうちの上位64バイト等)において、ueが存在するか否かを判定する。当該書き込み対象であるバイト以外のバイトにおいてueが存在するか否かは、ステップS515における判定結果には影響しない。
ueが存在しないと判定した場合(ステップS515においてNOの場合)、処理はステップS521に進む。ueが存在すると判定した場合(ステップS515においてYESの場合)、処理はステップS516に進む。ステップS516において、制御部22は、ueが存在するためにストア命令により上書きされるデータを使用することができない、即ちストア命令による書き込み動作を実行できないので、ストア不可能を示すディスストア情報(DIS STORE)を設定する。
以上のステップS511からステップS516に至る一連の動作を、以降の説明においてストア処理st1と呼ぶ。
その後ステップS521において、制御部22は、L1キャッシュ11内のタグ部21へのアクセス動作(TAG-ACC)を実行してタグ部21への書き込みを行う。具体的には、タグ部21に格納されている状態情報(例えば変更、排他、共有、及び無効からなる4状態のうちのいずれの状態であるかを示す情報)を書き換える動作を実行する。
ステップS522において、制御部22は、ディスストア情報が設定されているか否か(DIS STOREが存在するか否か)を判定する。ディスストア情報が設定されていない場合、処理はステップS523に進む。ディスストア情報が設定されている場合はストア命令を実行することができないため処理を終了する。
ステップS523において、制御部22は、データ部23へのアクセス動作(Mem-ACC)を実行してデータ部23へストア対象のデータを書き込む。以上で処理を終了する。
以上のステップS521からステップS523に至る一連の動作を、以降の説明においてストア処理st2と呼ぶ。
図5は、図4の手順によりストア命令を実行する場合における各パイプラインの処理の一例を示す図である。図5に示す例では、(a)に示すL1登録専用パイプライン(Reg-pipe)、(b)に示す読み出し専用パイプライン(R-pipe)、及び(c)に示す書き込み専用パイプライン(W-pipe)により、パイプライン処理が実行される様子を示している。図5において「st0(・)」、「st1(・)」、「st2(・)」、及び「st3(・)」の表記の意味は、図2の場合と同様である。
L1登録専用パイプラインにおいては、ストア処理st3を順次実行する。また読み出し専用パイプラインにおいては、タグ部21に対する読み出しアクセスを実行するストア処理st0、及びタグ部21に対する読み出しアクセスとデータ部23に対する読み出しアクセスとを実行するストア処理st1を順次実行する。また書き込み専用パイプラインにおいては、タグ部21に対する書き込みアクセスとデータ部23に対する書き込みアクセスとを実行するストア処理st2を順次実行する。ここで本実施例によれば、ストア処理st0においては、データ部23に対するアクセスを実行していない。
前述のようにRAMであるデータ部23に対して、あるタイミングにおけるアクセス動作(Mem-ACC)は1つのみが実行可能である。従って、ストア処理st1、st2、及びst3の各々におけるメモリアクセス動作(Mem-ACC)が同一タイミングに重ならないように、各パイプラインにおけるストア処理をずらす必要がある。しかしながらストア処理st0については、メモリアクセス動作(Mem-ACC)が発生しないので、他のストア処理st1、st2、及びst3とのメモリアクセス衝突を考慮することなくパイプラインをスケジューリングすることができる。即ち、ストア処理st0と同時にストア処理st1、st2、及びst3を実行することが可能となり、図5に示されるように図2の場合と比較してストア処理における処理効率が向上する。
上記のように本願実施例では、制御部22は、ストア処理st0におけるタグ部21への読み出しアクセスと、他のストア処理におけるタグ部21へのアクセス動作とを同時に実行するように処理をスケジューリングすることが可能になる。その結果、4個のストア処理st0、st1、st2、及びst3間での衝突を避けるようにスケジューリングする従来技術の場合と比較して、本実施例では、パイプラインのスケジューリングに関する制限が少なくなる。これにより、本実施例では、先行ストア命令と後続ストア命令との間での実行タイミングの調整による処理効率の低下を軽減し、ストア命令の処理効率を向上することができる。
以下に、上記実施例の変形例について説明する。上記実施例では、ueフラグ部21Aには128バイトのデータ毎に1ビットのueフラグが格納され、当該ueフラグの値により、128バイトのデータ全体について訂正不可であるか否かを示す構成となっている。即ちタグ部21は、データ部23へのデータ登録単位分(128バイト)のデータ全体に対して1ビットのフラグを格納する。この構成では、ueフラグ部21Aの回路規模を必要最小限とするという効果が得られる。しかしながら、ueフラグ部21Aの構成はこれに限定されるものではない。
変形例において、タグ部21は、データ部23へのデータ登録単位分(例えば128バイト)のデータに含まれる複数の部分の各々に対して1ビットのフラグを格納するようにしてよい。例えば、ueフラグ部21Aの構成としては、例えば128バイトのデータに含まれる各1バイト(8ビット)について、訂正不可であるか否かを示す1ビットのueフラグが設けられてよい。即ち、各インデックスの各ウェイに対して、128ビット(128個)のueフラグが設けられ、当該ueフラグの値により、それぞれ対応する128個のバイトに対して訂正不可であるか否かを示す構成であってよい。なお1ビットのueフラグを設ける対象となるバイト数は適宜変更してよく、例えば8バイト毎に1ビットのueフラグを設ける等の構成としてもよい。
図6は、変形例のキャッシュメモリにおいてストア命令を実行する動作手順の一例を示す図である。以下において、図6に示される変形例の動作手順と図4に示される実施例の動作手順との相違点に重点をおいて説明する。
第1の相違点はストア処理st0におけるueフラグに関する判定動作である。図4に示される実施例の動作手順では、ストア処理st0のステップS504において、ueフラグ部21Aに格納される1ビットのueフラグをチェックしている。それに対して図6に示される変形例の動作手順では、ストア処理st0のステップS804において、ueフラグ部21Aに格納される128ビットのueフラグに基づいた判定動作を実行している。これにより、制御部22は、ストア命令による書き込み対象であるバイト(例えば128バイトのうちの上位64バイト等)において、ueが存在するか否かを判定することができる。
ueが存在しないと判定した場合(ステップS504においてNOの場合)、処理はステップS821に進む。ueが存在すると判定した場合(ステップS504においてYESの場合)、処理はステップS805に進む。ステップS805において、制御部22は、ueが存在するためにストア命令により上書きされるデータを使用することができない、即ちストア命令による書き込み動作を実行できないので、ストア不可能を示すディスストア情報(DIS STORE)を設定する。その後処理はステップS821に進む。
第2の相違点はストア処理st1におけるueに関する判定動作である。図4に示される実施例の動作手順では、ストア処理st1のステップS514において、データ部23への読み出しメモリアクセスを実行している。一方、図6に示される変形例の動作手順では、ストア処理st1において、データ部23への読み出しメモリアクセスを実行するステップは存在しない。また図4に示される実施例の動作手順では、ストア処理st1のステップS515において、データ部23からの読み出しデータに対してエラー訂正コードを計算し、ストア命令による書き込み対象であるバイトにおいてueが存在するか否かを判定している。一方、図6に示される変形例の動作手順では、ストア処理st1のステップS815において、ueフラグ部21Aに格納される128ビットのueフラグに基づいた判定動作を実行している。これにより、制御部22は、ストア命令による書き込み対象であるバイト(例えば128バイトのうちの上位64バイト等)において、ueが存在するか否かを判定することができる。
以上の第1の相違点及び第2の相違点以外のステップの動作は、実施例の動作手順と変形例の動作手順との間に相違点はない。この第1の相違点及び第2の相違点により、従来はデータ部23への読み出しアクセスを実行することにより設定できていたディスストア情報を、タグ部21(ueフラグ部21A)への読み出しアクセスのみで設定することが可能となる。従って、ストア処理st0のみでなく、ストア処理st1についても、他のストア処理とのメモリアクセス衝突を考慮する必要のない自由なパイプラインスケジューリングが可能となる。
図7は、図6の手順によりストア命令を実行する場合における各パイプラインの処理の一例を示す図である。図5に示す例では、(a)に示すL1登録専用パイプライン(Reg-pipe)、(b)に示す読み出し専用パイプライン(R-pipe)、及び(c)に示す書き込み専用パイプライン(W-pipe)により、パイプライン処理が実行される様子を示している。図5において「st0(・)」、「st1(・)」、「st2(・)」、及び「st3(・)」の表記の意味は、図2の場合と同様である。
L1登録専用パイプラインにおいては、ストア処理st3を順次実行する。また読み出し専用パイプラインにおいては、タグ部21に対する読み出しアクセスを各々が実行するストア処理st0及びストア処理st1を順次実行する。また書き込み専用パイプラインにおいては、タグ部21に対する書き込みアクセスとデータ部23に対する書き込みアクセスとを実行するストア処理st2を順次実行する。ここで本実施例によれば、ストア処理st0及びストア処理st1においては、データ部23に対するアクセスを実行していない。
前述のようにRAMであるデータ部に対して、あるタイミングにおけるアクセス動作(Mem-ACC)は1つのみが実行可能である。従って、ストア処理st2及びst3の各々におけるメモリアクセス動作(Mem-ACC)が同一タイミングに重ならないように、各パイプラインにおけるストア処理をずらす必要がある。しかしながらストア処理st0及びストア処理st1については、メモリアクセス動作(Mem-ACC)が発生しないので、他のストア処理st2及びst3とのメモリアクセス衝突を考慮することなくパイプラインをスケジューリングすることができる。即ち、ストア処理st0又はストア処理st1と同時にストア処理st2及びst3を実行することが可能となり、図7に示されるように図2及び図5の場合と比較してストア処理における処理効率が向上する。また更に、読み出し専用パイプではメモリアクセス動作を行う処理が存在しないため、ストア処理st0又はストア処理st1を隙間無く連続して実行することができる。
このように、4個のストア処理st0、st1、st2、及びst3間での衝突を避けるようにスケジューリングする従来技術の場合と比較して、本変形例では、パイプラインのスケジューリングに関する制限が少なくなる。また、3個のストア処理st1、st2、及びst3間での衝突を避けるようにスケジューリングする実施例の場合と比較して、本変形例では、パイプラインのスケジューリングに関する制限が更に少なくなる。これにより、本変形例では、先行ストア命令と後続ストア命令との間での実行タイミングの調整による処理効率の低下を更に軽減し、ストア命令の処理効率を更に向上することができる。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
例えば上記実施例及び変形例はストア命令の場合に関して説明したが、ストア命令以外の命令を実行する場合であっても同様にパイプラインにおけるメモリアクセス衝突が問題となる状況が存在する場合には、上記説明した構成を適用することが可能である。
10 命令制御部
11 L1キャッシュ
12 L2キャッシュ
21 タグ部
22 制御部
23 データ部
24 エラーチェック部

Claims (4)

  1. インデッグス毎にデータを格納するデータ部と、
    前記インデックス毎に、タグと、前記データが訂正不可エラーを有するか否かを示すフラグと、を格納するタグ部と、
    前記タグ部に読み出しアクセスしてタグヒットを検出する際に、前記フラグを参照することにより前記タグヒットに対応する前記データに訂正不可エラーが存在するか否かを判定する制御部と、
    を含み、前記制御部は、前記タグ部への前記読み出しアクセスと前記タグ部への他のアクセス動作とを同時に実行するように処理をスケジューリングする、キャッシュ制御装置。
  2. 前記フラグは、前記データ部へのデータ登録単位分のデータ全体に対して1ビットのフラグである、請求項1記載のキャッシュ制御装置。
  3. 前記フラグは、前記データ部へのデータ登録単位分のデータに含まれる複数の部分の各々に対して1ビットのフラグである、請求項1記載のキャッシュ制御装置。
  4. インデッグス毎にデータを格納するデータ部と、前記インデックス毎に、タグと、前記データが訂正不可エラーを有するか否かを示すフラグと、を格納するタグ部とを有するキャッシュシステムにおいて、
    前記タグ部に読み出しアクセスしてタグヒットを検出する際に、前記フラグを参照することにより前記タグヒットに対応する前記データに訂正不可エラーが存在するか否かを判定し、
    前記タグ部への前記読み出しアクセスと前記タグ部への他のアクセス動作とを同時に実行するように処理をスケジューリングする、
    各段階を含むキャッシュシステムの制御方法。
JP2020117507A 2020-07-08 2020-07-08 キャッシュ制御装置及びキャッシュシステムの制御方法 Pending JP2022014963A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020117507A JP2022014963A (ja) 2020-07-08 2020-07-08 キャッシュ制御装置及びキャッシュシステムの制御方法
US17/229,904 US11625331B2 (en) 2020-07-08 2021-04-14 Cache control apparatus and cache system control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020117507A JP2022014963A (ja) 2020-07-08 2020-07-08 キャッシュ制御装置及びキャッシュシステムの制御方法

Publications (1)

Publication Number Publication Date
JP2022014963A true JP2022014963A (ja) 2022-01-21

Family

ID=79172555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020117507A Pending JP2022014963A (ja) 2020-07-08 2020-07-08 キャッシュ制御装置及びキャッシュシステムの制御方法

Country Status (2)

Country Link
US (1) US11625331B2 (ja)
JP (1) JP2022014963A (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124236B1 (en) * 2002-11-26 2006-10-17 Advanced Micro Devices, Inc. Microprocessor including bank-pipelined cache with asynchronous data blocks
US7409600B2 (en) * 2004-07-12 2008-08-05 International Business Machines Corporation Self-healing cache system
US7430145B2 (en) * 2005-09-16 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for avoiding attempts to access a defective portion of memory
WO2007097019A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited キャッシュ制御装置およびキャッシュ制御方法
JP2008065370A (ja) 2006-09-04 2008-03-21 Toshiba Corp スーパースカラープロセッサ及びキャッシュメモリのアクセス方法
JP5010271B2 (ja) 2006-12-27 2012-08-29 富士通株式会社 エラー訂正コード生成方法、およびメモリ制御装置
US8856587B2 (en) * 2011-05-31 2014-10-07 Freescale Semiconductor, Inc. Control of interrupt generation for cache
JP5590022B2 (ja) 2011-12-28 2014-09-17 富士通株式会社 情報処理装置、制御方法および制御プログラム
JP5800058B2 (ja) 2014-05-26 2015-10-28 富士通株式会社 情報処理装置、制御方法および制御プログラム
US11068344B2 (en) * 2019-03-13 2021-07-20 Infineon Technologies Ag Candidate bit detection and utilization for error correction

Also Published As

Publication number Publication date
US11625331B2 (en) 2023-04-11
US20220012179A1 (en) 2022-01-13

Similar Documents

Publication Publication Date Title
US7043679B1 (en) Piggybacking of ECC corrections behind loads
US8732550B2 (en) Processor and error correcting method
US7840874B2 (en) Speculative cache tag evaluation
US7263600B2 (en) System and method for validating a memory file that links speculative results of load operations to register values
US7415597B2 (en) Processor with dependence mechanism to predict whether a load is dependent on older store
US7089400B1 (en) Data speculation based on stack-relative addressing patterns
US9524162B2 (en) Apparatus and method for memory copy at a processor
JP2007188379A (ja) エラー訂正方法
JP2002163105A (ja) データ依存関係検出装置
US6971041B2 (en) Cache entry error-correcting code (ECC) based at least on cache entry data and memory address
US20030182536A1 (en) Instruction issuing device and instruction issuing method
US8683179B2 (en) Method and apparatus for performing store-to-load forwarding from an interlocking store using an enhanced load/store unit in a processor
US9348681B2 (en) Apparatus and method for detecting fault of processor
CN107688544B (zh) 一种对寄存器别名表恢复方法
JP5091481B2 (ja) リプレイ機構を備えた読み出し/書き込みユニット
US6934903B1 (en) Using microcode to correct ECC errors in a processor
US7478203B2 (en) Technique for eliminating dead stores in a processor
US6715060B1 (en) Utilizing a scoreboard with multi-bit registers to indicate a progression status of an instruction that retrieves data
US7321964B2 (en) Store-to-load forwarding buffer using indexed lookup
JP2011257966A (ja) キャッシュ装置及び情報処理装置
JP2022014963A (ja) キャッシュ制御装置及びキャッシュシステムの制御方法
US7937569B1 (en) System and method for scheduling operations using speculative data operands
WO2016043271A1 (ja) プロセッサおよびプロセッサシステム
JP2006039968A (ja) アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法
US11210101B2 (en) Arithmetic processing device and control method implemented by arithmetic processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240408