JP6337570B2 - Arithmetic processing device and control method of arithmetic processing device - Google Patents
Arithmetic processing device and control method of arithmetic processing device Download PDFInfo
- Publication number
- JP6337570B2 JP6337570B2 JP2014069934A JP2014069934A JP6337570B2 JP 6337570 B2 JP6337570 B2 JP 6337570B2 JP 2014069934 A JP2014069934 A JP 2014069934A JP 2014069934 A JP2014069934 A JP 2014069934A JP 6337570 B2 JP6337570 B2 JP 6337570B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- tag
- data
- primary
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は,演算処理装置及び演算処理装置の制御方法に関する。 The present invention relates to an arithmetic processing unit and a control method for the arithmetic processing unit.
演算処理装置(プロセッサ)は,演算処理部(ALU:Arithmetic Logic Unit )とキャッシュメモリ部を有し,メインメモリ内のデータ(命令コード及びデータを含む)の一部をキャッシュメモリ部に記憶し,演算処理部によるメモリアクセス要求を高速化する。一般的に,プロセッサのコアは演算処理部と1次キャッシュメモリ部(以下単に1次キャッシュと呼ぶ)を有し,プロセッサは複数のコア間で2次キャッシュメモリ部(以下単に2次キャッシュと呼ぶ)を共有する。 The arithmetic processing unit (processor) has an arithmetic processing unit (ALU: Arithmetic Logic Unit) and a cache memory unit, and stores a part of data (including instruction code and data) in the main memory in the cache memory unit, Speeds up memory access requests by the processing unit. Generally, a processor core has an arithmetic processing unit and a primary cache memory unit (hereinafter simply referred to as a primary cache), and the processor is a secondary cache memory unit (hereinafter simply referred to as a secondary cache) between a plurality of cores. ).
コアの演算処理部は,仮想アドレスに基づいてメモリアクセス命令を発行する。仮想アドレスはアドレス変換テーブルであるTLB(Translation Lookaside Buffer)により物理アドレスに変換される。ただし,高速化のために,1次キャッシュタグメモリは,仮想アドレスで検索され,1次キャッシュタグメモリから読み出された物理アドレスとTLBで変換された物理アドレスとを比較してキャッシュヒット判定を行う。 The arithmetic processing unit of the core issues a memory access instruction based on the virtual address. The virtual address is converted into a physical address by a TLB (Translation Lookaside Buffer) which is an address conversion table. However, in order to increase the speed, the primary cache tag memory is searched with a virtual address, and the cache address is determined by comparing the physical address read from the primary cache tag memory with the physical address converted by the TLB. Do.
1次キャッシュの検索アドレスが仮想アドレスであり,一方で,プロセス変更等に伴いアドレス変換テーブルTLBの更新が行われて仮想アドレスと物理アドレスの対応関係が変更されると,アドレス変換テーブル内のある物理アドレスに対応する仮想アドレスと,1次キャッシュタグ内の同じ物理アドレスに対応する仮想アドレスとが整合しなくなる場合がある。その結果,演算処理部が,更新前に1次キャッシュに登録したある物理アドレスのデータを,更新後の仮想アドレスでアクセス要求すると,1次キャッシュは1次キャッシュタグメモリで検索した物理アドレスが不一致となりキャッシュミスと判定する。この状態はシノニムと呼ばれる。 The search address of the primary cache is a virtual address. On the other hand, when the correspondence between the virtual address and the physical address is changed by updating the address translation table TLB due to process change etc., there is an address in the address translation table. The virtual address corresponding to the physical address may not match the virtual address corresponding to the same physical address in the primary cache tag. As a result, when the arithmetic processing unit requests access to the data at a certain physical address registered in the primary cache before updating with the updated virtual address, the physical address searched in the primary cache tag memory does not match the primary cache. And a cache miss is determined. This state is called a synonym.
1次キャッシュがシノニムの発生によりキャッシュミスと判定すると,2次キャッシュにアクセス要求が行われる。それに応答して,2次キャッシュがキャッシュヒットと判定すると,1次キャッシュに対してデータ応答を行う。そして,1次キャッシュはそのデータ応答のデータと登録情報を1次キャッシュ内の1次キャッシュデータメモリと1次キャッシュタグメモリにそれぞれ登録する。このデータの登録が行われる際,1次キャッシュ内に更新前の仮想アドレスによるデータが残っていると,1次キャッシュ内に同じデータが二重登録されることになる。これを防止する為に,2次キャッシュは,仮想アドレスが一致するか否かの判定処理によりシノニムの判定を行い,シノニムであると判定される場合はシノニム処理を実行して1次キャッシュ内のデータの二重登録を防止する。このシノニム処理は,後述するとおり,1次キャッシュ内に同じデータが登録されているか否かの判定処理,同じデータが登録されていたら1次キャッシュからそのデータを削除処理などが含まれる。 If the primary cache determines a cache miss due to the occurrence of a synonym, an access request is made to the secondary cache. In response to this, when the secondary cache determines that the cache hits, a data response is made to the primary cache. The primary cache registers the data of the data response and registration information in the primary cache data memory and the primary cache tag memory in the primary cache, respectively. When this data registration is performed, if data with a virtual address before update remains in the primary cache, the same data is registered twice in the primary cache. In order to prevent this, the secondary cache performs a synonym determination by determining whether or not the virtual addresses match, and if it is determined to be a synonym, executes the synonym process to execute a synonym process. Prevent double registration of data. As will be described later, this synonym process includes a process for determining whether or not the same data is registered in the primary cache, and a process for deleting the data from the primary cache if the same data is registered.
一方で,近年において,プロセッサの外部からI/O(Input / Output)装置を介してデータをメインメモリに転送する時に,最下位レベルのキャッシュにデータを登録するキャッシュインジェクションを行うことが提案されている。プロセッサが1次キャッシュと2次キャッシュの構成を有する場合は,キャッシュインジェクション処理により最下位レベルの2次キャッシュにデータが登録されるが,1次キャッシュにはそのデータは登録されない。 On the other hand, in recent years, it has been proposed to perform cache injection for registering data in the lowest level cache when transferring data to the main memory from outside the processor via an I / O (Input / Output) device. Yes. When the processor has a configuration of a primary cache and a secondary cache, data is registered in the secondary cache at the lowest level by the cache injection process, but the data is not registered in the primary cache.
キャッシュインジェクション処理では,I/O装置から行われるので仮想アドレスを伴っていないので,2次キャッシュはインジェクトしたデータに対する仮想アドレスを2次キャッシュタグに登録することができない。そのため,その後のメモリアクセス要求時の2次キャッシュでのシノニム判定でシノニム状態と判定される。その結果,2次キャッシュは,シノニム状態ではないもかかわらず上記のシノニム処理を実行する。シノニム処理は,複数の要求を2次キャッシュのキャッシュパイプラインに投入して実行するため,プロセッサの処理効率の低下を招く。 Since the cache injection process is performed from the I / O device and is not accompanied by a virtual address, the secondary cache cannot register the virtual address for the injected data in the secondary cache tag. Therefore, the synonym state is determined by the synonym determination in the secondary cache at the time of a subsequent memory access request. As a result, the secondary cache executes the above synonym processing even though it is not in the synonym state. In synonym processing, a plurality of requests are input to the cache pipeline of the secondary cache and executed, resulting in a decrease in processor processing efficiency.
そこで,一つの実施の形態における目的は,不要なシノニム処理を回避する演算処理装置及び演算処理装置の制御方法を提供することにある。 Accordingly, an object of one embodiment is to provide an arithmetic processing device and a control method for the arithmetic processing device that avoid unnecessary synonym processing.
実施の形態の一つの側面は,仮想アドレスで検索される1次キャッシュタグ及び1次キャッシュデータメモリと,キャッシュ制御を行う1次キャッシュ制御部とを有する1次キャッシュメモリ部と,
物理アドレスで検索される2次キャッシュタグ及び2次キャッシュデータメモリと,キャッシュ制御を行う2次キャッシュ制御部とを有し,前記2次キャッシュ制御部が,前記1次キャッシュメモリ部がキャッシュミスを発生したアクセス要求に応答して,前記2次キャッシュタグでキャッシュヒットと判定した場合,前記2次キャッシュタグ内の1次キャッシュ状態情報に基づいて,前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を実行する2次キャッシュメモリ部とを有する演算処理装置である。
One aspect of the embodiment includes a primary cache memory unit including a primary cache tag and a primary cache data memory searched by a virtual address, and a primary cache control unit that performs cache control,
A secondary cache tag and a secondary cache data memory searched by a physical address, and a secondary cache control unit for performing cache control, wherein the secondary cache control unit detects that the primary cache memory unit has a cache miss If it is determined that the secondary cache tag is a cache hit in response to the generated access request, the cache in the synonym state in the primary cache memory unit based on the primary cache state information in the secondary cache tag And a secondary cache memory unit that executes a synonym process for deleting registration.
不要なシノニム処理を行わずに処理効率を高めることができる。 Processing efficiency can be improved without performing unnecessary synonym processing.
図1は,本実施の形態における演算処理装置の構成を示す図である。演算処理装置(CPU)1は,CPUコア(演算処理部)10と,2次キャッシュメモリ部20とを有する。CPUコア10は,演算装置12と1次キャッシュメモリ部14とを有する。
FIG. 1 is a diagram showing a configuration of an arithmetic processing device according to the present embodiment. The arithmetic processing unit (CPU) 1 includes a CPU core (arithmetic processing unit) 10 and a secondary
1次キャッシュメモリ部(以下L1キャッシュ)14は,1次キャッシュパイプライン(1次キャッシュメモリ制御部)16と,仮想アドレスを物理アドレスに変換するアドレス変換部TLBと,1次キャッシュタグメモリ(以下L1キャッシュタグ)L1-TAG1と,1次キャッシュデータメモリL1-DATAとを有する。L1キャッシュタグL1-TAG1は,仮想アドレスVAで検索され,L1-TAG1から読み出された物理アドレスPAとアドレス変換部TLBで変換された物理アドレスPAとを比較してキャッシュヒットかミスかを判定する。このように,L1キャッシュタグL1-TAG1は仮想アドレスVAで検索され読み出されるのは物理アドレスPAであり,VIPT(Virtually Indexed Physically Tagged)である。検索アドレスはアクセス先アドレスの上位ビットであり,L1キャッシュタグから読み出されるのはアクセス先アドレスの下位ビット(キャッシュブロックサイズの下位アドレスは除く)である。 The primary cache memory unit (hereinafter referred to as L1 cache) 14 includes a primary cache pipeline (primary cache memory control unit) 16, an address translation unit TLB that converts a virtual address into a physical address, and a primary cache tag memory (hereinafter referred to as “first cache tag memory”). L1 cache tag) L1-TAG1 and primary cache data memory L1-DATA. The L1 cache tag L1-TAG1 is searched with the virtual address VA, and the physical address PA read from the L1-TAG1 is compared with the physical address PA converted by the address translation unit TLB to determine whether it is a cache hit or a miss To do. Thus, the L1 cache tag L1-TAG1 is searched for and read from the virtual address VA is the physical address PA, and is VIPT (Virtually Indexed Physically Tagged). The search address is the upper bit of the access destination address, and the lower bits of the access destination address (excluding the lower address of the cache block size) are read from the L1 cache tag.
2次キャッシュメモリ部(またはL2キャッシュ)20は,1次キャッシュメモリ部(L1キャッシュ)14からのアクセス要求を受け付けるムーブインポートMIPORTと,データ書き出し要求を受け付けるムーブアウトポートMOPORTと,両ポートの要求を選択して2次キャッシュパイプライン22に投入する要求投入部(セレクタ)SELとを有する。更に,2次キャッシュメモリ部20は,2次キャッシュタグメモリ(以下L2キャッシュタグ)L2-TAG1と,2次キャッシュデータメモリL2-DATAと,1次キャッシュタグL1-TAG1のコピーである1次キャッシュタグコピーL1-TAG2と,要求ロック部24とを有する。2次キャッシュタグと2次キャッシュデータメモリL2-TAG1,L2-DATAは物理アドレスで検索される。一方,1次キャッシュタグコピーL1-TAG2は仮想アドレスで検索される。このように2次キャッシュタグL2-TAG1は物理アドレスPAで検索され読み出されるのも物理アドレスPAであり,PIPT(Physically Indexed Physical Tagged)である。
The secondary cache memory unit (or L2 cache) 20 receives a request for both ports, a move import MIPORT that accepts an access request from the primary cache memory unit (L1 cache) 14, a move out port MOPORT that accepts a data write request, and so on. A request input unit (selector) SEL that selects and inputs to the
CPU1は,更に,外部とのインターフェースを行う入出力制御部I/Oと,メインメモリ30へのアクセス制御を行うメモリアクセスコントローラMACとを有する。入出力制御部I/Oは,例えば外部バスBUSを介して大容量(例えばハードディスク)の記憶装置HDDに接続される。
The
図2は,図1の演算処理部12からのアクセス要求の典型的な例であるデータ要求の動作を説明する図である。図3は,データ要求の動作を示すシーケンス図である。図2,3のデータ要求の動作は,いずれも1次キャッシュメモリ部がキャッシュミスとなり,2次キャッシュメモリ部にデータ要求をムーブインポートMIPORTに出力した例である。図3の(1)は2次キャッシュタグL2-TAG1でヒットした例,(2)は2次キャッシュタグL2-TAG1でミスした例である。図3には,図2内の工程番号と,後述する図8の工程番号とが併記されている。
FIG. 2 is a diagram for explaining the operation of a data request, which is a typical example of an access request from the
CPUコア10内の演算装置12はデータ要求を1次キャッシュ制御部14に投入する(S51)。1次キャッシュ制御部14は,データ要求の仮想アドレスVAで1次キャッシュタグL1-TAG1を検索し,L1-TAG1から読み出された物理アドレスとアドレス変換部TLBで変換した物理アドレスを比較し,キャッシュミスとなる(S52)。そこで,1次キャッシュ制御部14は,2次キャッシュメモリ部20のムーブインポートMIPORTにデータ要求を入力し(S53),要求投入部SELが2次キャッシュ制御部22にREAD要求を投入する(S54)。2次キャッシュ制御部22は,データ要求の物理アドレスPAで2次キャッシュタグL2-TAG1を検索し,キャッシュヒットすると(S55),2次キャッシュ制御部22は1次キャッシュメモリ部14にデータ応答すると共に,1次キャッシュタグコピーL1-TAG2にヒットしたデータの登録情報(物理アドレス等)を登録し(S56_A),1次キャッシュタグL1-TAG1と1次キャッシュデータメモリL1-DATAにデータ応答の登録情報とデータをそれぞれ登録する(S56_B)。
The
2次キャッシュ制御部22が2次キャッシュタグL2-TAG1を検索してキャッシュミスを検出すると(S57),メモリアクセスコントローラMACにデータの読み出し要求を出して(S58),メモリアクセスコントローラMACはメインメモリ30からデータを読み出し,2次キャッシュ制御部22にデータ応答する(S59)。このデータ応答は2次キャッシュメモリ部20内の図示しないムーブインポートに入力され,要求投入部SELがMVIN要求を2次キャッシュパイプライン22に投入して,メモリアクセスコントローラMACから応答されたデータとそのアドレスを,2次キャッシュタグL2-TAG1とデータメモリL2-DATAに登録し(S60_A),1次キャッシュタグコピーL1-TAG2に登録し(S56_A),1次キャッシュメモリ部14にデータ応答する。これに応答して,1次キャッシュメモリ部14は1次キャッシュタグL1-TAG1とデータメモリL1-DATAとに登録情報とデータを登録する(S56_B)。
When the secondary
図3(1)の2次キャッシュでキャッシュヒットする例では,READ要求をL2キャッシュパイプライン22に投入することで,2次キャッシュタグの検索と,1次キャッシュタグコピーL1-TAG2,1次キャッシュタグL1-TAG1,データメモリL1-DATAへの登録を完了する。一方,図3(2)のL2キャッシュでキャッシュミスする例では,READ要求に加えて,MVIN要求を2次キャッシュパイプライン22に投入する。
In the example of a cache hit in the secondary cache of FIG. 3 (1), by inputting a READ request to the
図4は,データ要求における4つの要求の例を示す図である。READ要求は,2次キャッシュメモリ部のデータを読み出す要求命令であり,MVIN要求は,2次キャッシュメモリ部と1次キャッシュメモリ部に新しくデータを登録する要求命令であり,それらの動作は図2,3で説明した。 FIG. 4 is a diagram illustrating an example of four requests in a data request. The READ request is a request instruction for reading data in the secondary cache memory unit, and the MVIN request is a request instruction for newly registering data in the secondary cache memory unit and the primary cache memory unit. , 3 explained.
MOEX要求は,1次キャッシュメモリ部内の旧仮想アドレスVAのエントリを消去し,そのエントリにデータがストアされていたのであればムーブアウトしてデータを2次キャッシュメモリ部内に登録する要求命令である。更に,MIRD要求は,シノニム発生時など2次キャッシュメモリ部内にデータが登録されている場合に,1次キャッシュメモリ部に新しくデータを登録し,且つ2次キャッシュタグL2-TAG1の仮想アドレスVAを更新する要求命令である。MIRD要求には2次キャッシュタグL2-TAG1内のL1タイプコードL1-TCを更新する処理が含まれる。 The MOEX request is a request instruction that deletes the entry of the old virtual address VA in the primary cache memory unit, moves the data if the entry is stored, and registers the data in the secondary cache memory unit. . In addition, when data is registered in the secondary cache memory unit such as when a synonym occurs, the MIRD request registers new data in the primary cache memory unit and sets the virtual address VA of the secondary cache tag L2-TAG1. This is a request command to be updated. The MIRD request includes a process for updating the L1 type code L1-TC in the secondary cache tag L2-TAG1.
以下,簡単の為に,1次キャッシュメモリ部14をL1キャッシュ14と,1次キャッシュタグメモリL1-TAG1をL1キャッシュタグと,2次キャッシュメモリ部20をL2キャッシュ22と,2次キャッシュタグメモリL2-TAG1をL2キャッシュタグと,1次キャッシュタグコピーL1-TAG2をL1キャッシュタグコピーとそれぞれ称する。また,L1キャッシュ制御部16,L2キャッシュ制御部22は,それぞれL1キャッシュパイプライン16,L2キャッシュパイプライン22と称する。
Hereinafter, for the sake of simplicity, the primary
[シノニム状態]
図5は,L1キャッシュタグL1-TAG1内の同じ物理アドレスPAに異なる仮想アドレスVAが割り当てられるシノニム状態の発生を説明する図である。図6は,シノニム状態の発生を説明する図である。
[Synonym state]
FIG. 5 is a diagram for explaining the occurrence of a synonym state in which different virtual addresses VA are assigned to the same physical address PA in the L1 cache tag L1-TAG1. FIG. 6 is a diagram for explaining the occurrence of a synonym state.
図5は,図2,3に示したように,仮想アドレスVA1(上位アドレスと下位アドレスを含む)によるデータ要求により,L1キャッシュタグL1-TAG1内に仮想アドレスVA1の下位ビットに対する物理アドレスPA_T1が登録された状態を示す。なお,データ要求の仮想アドレスVAに対する物理アドレスは上位アドレスがPA_I,下位アドレスがPA_Tとすると,上位アドレスPA_IはL2キャッシュタグL2-TAG1の検索のインデックスに利用され,下位アドレスPA_TはL1キャッシュタグL1-TAG1とL2キャッシュタグL2-TAG1内のタグアドレスになる。但し,一般にはL2キャッシュタグL2-TAG1のほうがL1キャッシュタグL1-TAG1よりも大容量であるので,L1キャッシュタグL1-TAG1内の物理アドレスとL2キャッシュタグL2-TAG1内の物理アドレスのビット数は異なる。図5では,簡単のために同じ物理アドレスPA_T1がL1,L2キャッシュタグに記憶されている。 In FIG. 5, as shown in FIGS. 2 and 3, the physical address PA_T1 corresponding to the lower bits of the virtual address VA1 is stored in the L1 cache tag L1-TAG1 by the data request by the virtual address VA1 (including the upper address and the lower address). Indicates the registered state. When the physical address for the virtual address VA of the data request is PA_I for the upper address and PA_T for the lower address, the upper address PA_I is used as an index for searching the L2 cache tag L2-TAG1, and the lower address PA_T is used for the L1 cache tag L1. -Tag address in TAG1 and L2 cache tag L2-TAG1. However, since the L2 cache tag L2-TAG1 generally has a larger capacity than the L1 cache tag L1-TAG1, the number of bits of the physical address in the L1 cache tag L1-TAG1 and the physical address in the L2 cache tag L2-TAG1 Is different. In FIG. 5, for the sake of simplicity, the same physical address PA_T1 is stored in the L1 and L2 cache tags.
上記の状態で,プロセス交換などによりアドレス変換部TLBの変換テーブルの更新が行われた場合,同じ物理アドレスPA_I1,PA_T1に対して異なる仮想アドレスVA2が割り当てられることがある。 In the above state, when the translation table of the address translation unit TLB is updated by process exchange or the like, different virtual addresses VA2 may be assigned to the same physical addresses PA_I1 and PA_T1.
図6は,アドレス変換部TLBの更新の例を示す。図6では,簡単のために,13ビットの仮想アドレスVA[12:0]を最上位ビットVA[12]と下位ビットVA[11:0]に分け,最上位ビットVA[12]がL1キャッシュタグL1-TAG1のインデックスのアドレスに利用されるものとする。また,13ビットの物理アドレスPA[12:0]も最上位ビットPA[12]と下位ビットPA[11:0]に分け,最上位ビットPA[12]がL2キャッシュタグL2-TAG1のインデックスのアドレスに利用されるものとする。 FIG. 6 shows an example of updating the address translation unit TLB. In FIG. 6, for the sake of simplicity, the 13-bit virtual address VA [12: 0] is divided into the most significant bit VA [12] and the lower bit VA [11: 0], and the most significant bit VA [12] is the L1 cache. It is assumed that it is used for the index address of the tag L1-TAG1. The 13-bit physical address PA [12: 0] is also divided into the most significant bit PA [12] and the lower bit PA [11: 0], and the most significant bit PA [12] is the index of the L2 cache tag L2-TAG1. It shall be used for address.
図6(1)の状態では,仮想アドレスVA1に対応する物理アドレスPA[12:0]はPA_I1,PA_T1であり,仮想アドレスVA2に対応する物理アドレスPA[12:0]はPA_I2,PA_T2である。それに対して,アドレス変換テーブルTLBの更新が行われた図6(2)の状態では,仮想アドレスVA1,VA2に対する物理アドレスPA_I1,PA_T1,PA_I2,PA_T2が逆の関係になっている。このようにアドレス変換テーブルTLBが更新される場合がある。その結果,同じ物理アドレスPA_I1,PA_T1に対して,アドレス変換テーブルTLBの更新前の旧仮想アドレスVA1と更新後の新仮想アドレスVA2とが割り当てられたシノニム状態が発生する。 In the state of FIG. 6A, the physical address PA [12: 0] corresponding to the virtual address VA1 is PA_I1, PA_T1, and the physical address PA [12: 0] corresponding to the virtual address VA2 is PA_I2, PA_T2. . In contrast, in the state of FIG. 6B in which the address conversion table TLB has been updated, the physical addresses PA_I1, PA_T1, PA_I2, and PA_T2 with respect to the virtual addresses VA1 and VA2 have an inverse relationship. In this way, the address conversion table TLB may be updated. As a result, a synonym state in which the old virtual address VA1 before the update of the address translation table TLB and the new virtual address VA2 after the update are allocated to the same physical address PA_I1, PA_T1 occurs.
そこで,図5には,図6のとおりアドレス変換テーブルTLBが更新されてシノニム状態が発生したにもかかわらず,L1キャッシュタグL1-TAG1は更新されていない状態が示されている。L1キャッシュのタグL1-TAG1とデータL1-DATAをリセットすると新たにメインメモリへのアクセスが発生するので,TLBが更新されてもL1キャッシュは更新しないことが行われる。その結果,L1キャッシュタグL1-TAG1内は,仮想アドレスVA1に対してタグの物理アドレスPA_T1が,VA2に対してPA_T2がそれぞれ対応付けられたままになっている。 Therefore, FIG. 5 shows a state where the L1 cache tag L1-TAG1 is not updated even though the address translation table TLB is updated as shown in FIG. 6 and a synonym state occurs. When the tag L1-TAG1 and the data L1-DATA in the L1 cache are reset, a new access to the main memory occurs. Therefore, even if the TLB is updated, the L1 cache is not updated. As a result, in the L1 cache tag L1-TAG1, the physical address PA_T1 of the tag is associated with the virtual address VA1, and PA_T2 is associated with VA2.
この状態で,演算処理部から同じ物理アドレスPA1のデータD1に対する仮想アドレスVA2でデータ要求が発生した場合について説明する。図5の各工程S51-S56は,図2の各工程S51-S56に対応している。 In this state, a case where a data request is generated from the arithmetic processing unit at the virtual address VA2 for the data D1 of the same physical address PA1 will be described. Each step S51-S56 in FIG. 5 corresponds to each step S51-S56 in FIG.
まず,演算処理部から仮想アドレスVA2でデータ要求が発行されると,L1キャッシュパイプライン16が仮想アドレスVA2でL1キャッシュタグL1-TAG1を検索し物理アドレスPA_T2を読み出す。一方,アドレス変換部TLBは仮想アドレスVA2を変換して物理アドレスPA_T1を出力する。その結果,両物理アドレスPA_T1,PA_T2の比較が不一致となりキャッシュミスになる(S52)。そこで,L1キャッシュパイプライン16は,L2キャッシュ20内のムーブインポートMIPORTにデータ要求を発行する(S53)。
First, when a data request is issued from the arithmetic processing unit with the virtual address VA2, the
次に,ムーブインポートMIPORTのデータ要求に応答して,L2キャッシュパイプライン22にREAD要求が投入されると,物理アドレスPA_I1によりL2キャッシュタグL2-TAG1が検索されて物理アドレスPA_T1が読み出され,仮想アドレスVA2から変換された物理アドレスPA_T1と一致し,キャッシュヒットとなる(S55)。その結果,L2キャッシュからL1キャッシュにデータ応答が行われ,L1キャッシュ14のL1キャッシュタグL1-TAG1に仮想アドレスVA2に対して物理アドレスPA_T1が登録され,L1キャッシュデータメモリL1-DATAにデータD1が登録される(S56)。
Next, when a READ request is input to the
この状態は,L1キャッシュタグL1-TAG1内に同じ物理アドレスPA_T1に対するデータD1が二重登録されたことを意味する。このようなL1キャッシュ内に同じデータが二重に登録されることは,その後の書き込みによりデータD1が更新されるとデータの一貫性を失う事態を招いてしまい,避ける必要がある。 This state means that the data D1 corresponding to the same physical address PA_T1 is double registered in the L1 cache tag L1-TAG1. Such double registration of the same data in the L1 cache causes a situation where data consistency is lost when data D1 is updated by subsequent writing, and must be avoided.
[シノニム状態を回避する動作]
図7は,シノニム状態を回避する動作を説明する図である。図7の前提の状態は図6と同じである。そして,図7において新仮想アドレスVA2のデータ要求が発生してL1キャッシュタグL1-TAG1でキャッシュミスしL2キャッシュタグL2-TAG1でキャッシュヒットするまでの工程S51-S55も,図6と同じである。よって,そこまでの説明は省略する。
[Action to avoid synonym state]
FIG. 7 is a diagram for explaining an operation for avoiding the synonym state. The precondition of FIG. 7 is the same as FIG. Then, steps S51-S55 from when a data request for the new virtual address VA2 occurs in FIG. 7 until a cache miss occurs at the L1 cache tag L1-TAG1 and a cache hit occurs at the L2 cache tag L2-TAG1 are the same as in FIG. . Therefore, the description so far is omitted.
図7に示されるとおり,シノニム状態を検出するために,L2キャッシュパイプライン22は,データをL1キャッシュに登録した時のアクセス先の旧仮想アドレスVA1を,L2キャッシュ20内のL2キャッシュタグL2-TAG1に記録しておく。その後,L1キャッシュからL2キャッシュにデータ要求があり(S53),L2キャッシュタグL2-TAG1でキャッシュヒットしたときに(S55),L2キャッシュパイプライン22は,現在のデータ要求の新仮想アドレスVA2とL2キャッシュタグL2-TAG1内の旧仮想アドレスVA1とを比較する(S61)。この新旧仮想アドレスVA1,VA2が不一致となる場合は,アドレス変換部TLBが更新された後の新仮想アドレスVA2によるデータ要求であることが判明する。したがって,もし同じデータがL1キャッシュに登録されている場合は,シノニム状態になっているので,それを確認する必要がある。
As shown in FIG. 7, in order to detect the synonym state, the
そこで,L2キャッシュ20内にL1キャッシュタグL1-TAG1のコピーであるL1キャッシュタグコピーL1-TAG2を設けておき,L2キャッシュパイプライン22は,L2キャッシュタグL1−TAG1から旧仮想アドレスVA1を読み出し,L1キャッシュタグコピーL1-TAG2を旧仮想アドレスVA1で検索し,旧仮想アドレスVA1に対して現在のデータ要求に対応する同じ物理アドレスPA_T1が登録されているか否かをチェックする(S62)。このチェックはL1キャッシュタグL1-TAG1に対しても行うことができるが,L2キャッシュ20はL1キャッシュ14に要求する必要があるので,L2キャッシュ内にL1キャッシュタグコピーL1-TAG2を記憶して,L2キャッシュ内で確認できるようにしている。
Therefore, an L1 cache tag copy L1-TAG2 that is a copy of the L1 cache tag L1-TAG1 is provided in the
上記の工程S62においてL1キャッシュタグコピーL1-TAG2を検索してヒットすると,L1キャッシュに同じ物理アドレスのデータが登録されていることを意味する。そこで,L2キャッシュパイプライン22は,まずL1キャッシュ内の旧仮想アドレスVA1のエントリ(キャッシュブロック)をL1キャッシュタグL1-TAG1とデータメモリL1-DATAから消去し,同時に,L1キャッシュタグコピーL1-TAG2内の旧仮想アドレスVA1のキャッシュブロックも消去し,L1キャッシュに新仮想アドレスVA2でデータ応答をする(S64)。それに応答して,L1キャッシュに新仮想アドレスVA2でデータが登録される。
If the L1 cache tag copy L1-TAG2 is searched and hit in the above step S62, it means that data of the same physical address is registered in the L1 cache. Therefore, the
上記の工程S62で,L1キャッシュタグコピーL1-TAG2を旧仮想アドレスVA1で検索した結果キャッシュミスする場合もある。その場合は,アドレス変換部TLBを更新した後に,L1キャッシュから旧仮想アドレスVA1の登録が消去済みであることを意味するので,工程S63のL1キャッシュから旧アドレスVA1のエントリを消去する必要はない。 In the above step S62, there may be a cache miss as a result of searching the L1 cache tag copy L1-TAG2 with the old virtual address VA1. In this case, after updating the address translation unit TLB, it means that the registration of the old virtual address VA1 has been erased from the L1 cache, so there is no need to erase the entry of the old address VA1 from the L1 cache in step S63. .
また,上記の工程S61で,旧仮想アドレスと新仮想アドレスが一致する場合は,アドレス変換部TLBの更新は行われていないことを意味し,シノニム状態の可能性はないので,L2キャッシュパイプラインは,工程S61後に工程S64によるデータ応答をL1キャッシュに対して行う。 In the above step S61, if the old virtual address and the new virtual address match, it means that the address translation unit TLB has not been updated, and there is no possibility of a synonym state, so the L2 cache pipeline Performs a data response in step S64 to the L1 cache after step S61.
図8は,図2,3のデータ要求についての動作と,図7のデータ要求時にシノニム状態を検出したときの動作とを示すフローチャート図である。 FIG. 8 is a flowchart showing the operation for the data request in FIGS. 2 and 3 and the operation when the synonym state is detected at the time of the data request in FIG.
図8において,図2,3のデータ要求におけるL2キャッシュタグL2-TAG1でキャッシュヒットした場合とミスした場合の2種類の動作(図3(1)と(2))は,図8において以下の通りになる。 In FIG. 8, two types of operations (FIG. 3 (1) and (2)) in the case of a cache hit and a miss in the L2 cache tag L2-TAG1 in the data request of FIGS. It becomes street.
[L1でミス,L2でヒットした場合の第1の動作(図3(1))]
この動作は,図8において工程S1-S11に示されている。図8中には図3(1)のシーケンス図の工程S51-S56も示されている。工程S1-S11の動作は以下のとおりである。
S1(S51):CPUコア内の演算処理部12がL1キャッシュに対してデータ要求する。具体的にはREAD要求をL1キャッシュパイプラインに投入する。
S2(S52):L1キャッシュパイプラインがL1キャッシュタグL1-TAG1を仮想アドレスVAで検索する。ここではキャッシュミスとなる。
S4(S53):L1キャッシュがL2キャッシュにデータ要求を発行する。
S5(S54):L2キャッシュにおいて,要求投入部SELがムーブインポートMIPORTからREAD要求をL2キャッシュパイプラインに投入する。
S6(S55):L2キャッシュパイプラインがL2キャッシュタグL2-TAG1を物理アドレスPAで検索し,ヒットする。
S7(S61):L2キャッシュパイプラインがL2キャッシュタグL2-TAG1内の旧仮想アドレスと現在のデータ要求の新仮想アドレスとを比較し,シノニム状態をチェックする。ここでは,アドレス変換部TLBが未更新だったため,比較結果は一致(MATCH)となる。
S8,S9:L2キャッシュパイプラインがL2キャッシュタグL2-TAG1内の後述するL1タイプコードL1-TCを更新し,L1キャッシュタグコピーL1-TAG2にヒットしたデータの登録情報を登録する。L1キャッシュタグコピーL1-TAG2に登録するのは,その後の工程S10でL1キャッシュにデータを登録際に,L1キャッシュタグL1-TAG1に登録情報を登録するからである。
S10(S56):L2キャッシュパイプラインがL1キャッシュにデータ応答する。これに応答して,L1キャッシュはそのデータを登録する。
S11:最後にL1キャッシュはそのデータをCPUコアにデータ応答する。
[First action when missed at L1 and hit at L2 (FIG. 3 (1))]
This operation is shown in steps S1-S11 in FIG. FIG. 8 also shows steps S51 to S56 in the sequence diagram of FIG. The operations in steps S1-S11 are as follows.
S1 (S51): The
S2 (S52): The L1 cache pipeline searches the L1 cache tag L1-TAG1 with the virtual address VA. Here, a cache miss occurs.
S4 (S53): The L1 cache issues a data request to the L2 cache.
S5 (S54): In the L2 cache, the request input unit SEL inputs a READ request from the move import MIPORT to the L2 cache pipeline.
S6 (S55): The L2 cache pipeline searches the L2 cache tag L2-TAG1 with the physical address PA and hits it.
S7 (S61): The L2 cache pipeline compares the old virtual address in the L2 cache tag L2-TAG1 with the new virtual address of the current data request, and checks the synonym status. Here, since the address translation unit TLB has not been updated, the comparison result is coincident (MATCH).
S8, S9: The L2 cache pipeline updates a later-described L1 type code L1-TC in the L2 cache tag L2-TAG1, and registers the registration information of the hit data in the L1 cache tag copy L1-TAG2. The reason for registering in the L1 cache tag copy L1-TAG2 is that registration information is registered in the L1 cache tag L1-TAG1 when data is registered in the L1 cache in the subsequent step S10.
S10 (S56): The L2 cache pipeline returns data to the L1 cache. In response, the L1 cache registers the data.
S11: Finally, the L1 cache responds the data to the CPU core.
[L1でミス,L2でミスした場合の第2の動作(図3(2))]
この動作は,図8において工程S1-S6,S22-S28に示されている。図8中には図3(2)のシーケンス図の工程S51-S55,S58-60,S56も示されている。工程S1-S5の動作は,上記した通りである。そこで,工程S6,S22-S28の動作は以下のとおりである。
S6(S55):L2キャッシュパイプラインがL2キャッシュタグL2-TAG1を物理アドレスPAで検索し,キャッシュミスする。
S22(S58):L2キャッシュパイプラインはメモリアクセスコントローラMACにデータ要求を発行する。これに応答して,MACはメインメモリにアクセスして物理アドレスのデータを読み出す。
S23(S59):MACはメインメモリからデータを読み出した後,L2キャッシュにデータ応答する。
S24(S60):L2キャッシュ内のムーブインバッファMIB(図示せず)からL2キャッシュパイプラインにMVIN要求が投入される。MVIN要求は,図4に示したとおり,L2,L1キャッシュに新しいデータを登録する要求である。
S25:L2キャッシュパイプラインがL2キャッシュタグL2-TAG1に登録する。この登録により,L2キャッシュタグL2-TAG1内の現データ要求の物理アドレスPAに対応して,現仮想アドレスと物理アドレスPAをL2キャッシュタグに記憶する。また,後述するL1タイプコードL1-TCも更新する。
S26:L2キャッシュパイプラインが,L1キャッシュタグコピーL1-TAG2にMACからのデータの登録情報を登録する。L1キャッシュタグコピーL1-TAG2に登録するのは,その後の工程S27でL1キャッシュにデータを登録し,L1キャッシュタグL1-TAG1にも登録するからである。
S27(S56):L2キャッシュパイプラインがL1キャッシュにデータ応答する。これに応答して,L1キャッシュはそのデータを登録する。
S28:最後にL1キャッシュはそのデータをCPUコアにデータ応答する。
[Second action when L1 misses and L2 misses (Fig. 3 (2))]
This operation is shown in steps S1-S6 and S22-S28 in FIG. FIG. 8 also shows steps S51-S55, S58-60, and S56 in the sequence diagram of FIG. The operations in steps S1-S5 are as described above. Therefore, the operations of steps S6 and S22-S28 are as follows.
S6 (S55): The L2 cache pipeline searches the L2 cache tag L2-TAG1 with the physical address PA and makes a cache miss.
S22 (S58): The L2 cache pipeline issues a data request to the memory access controller MAC. In response to this, the MAC accesses the main memory and reads the data of the physical address.
S23 (S59): The MAC returns data to the L2 cache after reading data from the main memory.
S24 (S60): An MVIN request is input from the move-in buffer MIB (not shown) in the L2 cache to the L2 cache pipeline. The MVIN request is a request for registering new data in the L2 and L1 caches as shown in FIG.
S25: The L2 cache pipeline registers with the L2 cache tag L2-TAG1. By this registration, the current virtual address and physical address PA are stored in the L2 cache tag in correspondence with the physical address PA of the current data request in the L2 cache tag L2-TAG1. In addition, an L1 type code L1-TC, which will be described later, is also updated.
S26: The L2 cache pipeline registers data registration information from the MAC in the L1 cache tag copy L1-TAG2. The reason why the data is registered in the L1 cache tag copy L1-TAG2 is that data is registered in the L1 cache and registered in the L1 cache tag L1-TAG1 in the subsequent step S27.
S27 (S56): The L2 cache pipeline returns data to the L1 cache. In response, the L1 cache registers the data.
S28: Finally, the L1 cache sends a data response to the CPU core.
以上の通り,工程S25-S28は,工程S8-S11と実質的に同じ動作である。そして,図8及び図3から理解できるとおり,L1キャッシュでミスしL2キャッシュでヒットした場合の第1の動作(工程S1-S11,図3(1))では,L2キャッシュパイプラインにはREAD要求が流し込まれることで最後の工程S10までを完結する。一方,L1キャッシュでミスしL2キャッシュでミスした場合の第2の動作(S1-S6,S22-S28,図3(2))では,L2キャッシュパイプラインにはREAD要求と,MVIN要求とが流し込まれることで最後の工程S28までの処理が完結する。 As described above, steps S25-S28 are substantially the same as steps S8-S11. As can be understood from FIGS. 8 and 3, in the first operation when the L1 cache misses and the L2 cache hits (steps S1-S11, FIG. 3 (1)), the L2 cache pipeline has a READ request. Is completed, the process up to the last step S10 is completed. On the other hand, in the second operation (S1-S6, S22-S28, Fig. 3 (2)) when the L1 cache misses and the L2 cache misses, READ requests and MVIN requests flow into the L2 cache pipeline. As a result, the processing up to the last step S28 is completed.
図8において,図7のシノニム状態を回避する動作は,L1キャッシュタグコピーL1-TAG2でキャッシュヒットした場合と,ミスした場合の2種類の動作は,図8において以下の通りになる。 In FIG. 8, operations for avoiding the synonym state in FIG. 7 are as follows in FIG. 8 when two types of operations are performed when a cache hit occurs in L1 cache tag copy L1-TAG2 and when a miss occurs.
[L1でミス,L2でヒット,VAが不一致,L1-TAG2でヒットした場合の第3の動作(図7)]
図9は,図7のシノニム状態を回避する動作のうち,L1キャッシュタグコピーL1-TAG2でキャッシュヒットした場合の動作(第3の動作)を示すシーケンス図である。図8と図9を参照しながら第3の動作を以下説明する。第3の動作は,図8においてS1-S7,S12-S21,S27-S28と最も長い動作になる。工程S1-S6までは第1の動作と同じであるので省略する。
S7(S61):L2キャッシュパイプラインが,L2キャッシュタグL2-TAG1内の旧仮想アドレスVA1と現在のデータ要求の新仮想アドレスVA2とを比較し,シノニム状態をチェックする。ここでは,アドレス変換部TLBが更新済みだったため,比較結果は不一致(UNMATCH)となる。つまり,シノニムヒットになる。
S12:そこで,要求投入部SELは,MIPORTからL2キャッシュパイプラインにMOEX要求を投入する。MOEX要求は,図4に示すとおり,L1キャッシュの旧VAのエントリ(登録)を消去し,L1キャッシュのデータがストアされたデータであれば,L2キャッシュにムーブアウト(書き出し処理)する要求である。
S13(S62):L2キャッシュパイプラインが,L2-TAG1から読み出した旧仮想アドレスVA1でL1キャッシュタグコピーL1-TAG2を検索し,L1キャッシュに重複するデータが登録されているか否かチェックする。ここでは,L1キャッシュタグコピーL1-TAG2ではキャッシュヒットし,L1キャッシュに重複するデータが登録されていることを検出する。
S14:そこで,L2キャッシュは,L1キャッシュに対して,L1キャッシュ内の重複しているデータをムーブアウトするムーブアウト要求を発行する。
S15(S63):ムーブアウト要求に応答して,L1キャッシュパイプラインは,L1キャッシュタグL1-TAG1とL1キャッシュデータL1-DATAの登録を消去する。
S16:L1キャッシュパイプラインは,L2キャッシュにL1キャッシュから登録を消去したことを通知するオーダ応答を行う。
S17:これに応答して,ムーブアウトポートMOPORTからL2キャッシュパイプラインに上記のオーダ応答に対応するWRBK要求(ライトバック要求)が投入される。これにより,L2キャッシュパイプラインは,L1キャッシュで消去したデータがストアされたデータの場合は,L2キャッシュ内にそのデータの書き出し処理(ライトバック処理)を行う。
S18:そして,L2キャッシュパイプラインは,L1キャッシュタグコピーL1-TAG2の登録を消去する。L1キャッシュにて登録が消去されたため,コピーのL1-TAG2の登録も消去するためである。これで旧仮想アドレスVA1に対する処理が終了する。
S19:次に,要求投入部SELがMIPORTからMIRD要求をL2キャッシュパイプラインに投入する。MIRD要求は,図4に示すとおり,L1キャッシュに新しくデータを登録しつつ,L2キャッシュタグL2-TAG1の仮想アドレスVAを更新する要求である。
S20:L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1内の仮想アドレスVAを新仮想アドレスVA2に更新し,後でL1キャッシュにデータが登録されるので,L2キャッシュタグL2-TAG1内の後述するL1タイプコードLl-TCを有効(VALID)に更新する。
S21:L2キャッシュパイプラインが,L1キャッシュタグコピーL1-TAG2に新仮想アドレスVA2の登録情報を登録する。L1キャッシュタグコピーL1-TAG2に登録するのは,その後のS28でL1キャッシュにデータを登録し,L1キャッシュタグL1-TAG1にも登録するからである。
S27(S64):L2キャッシュパイプラインがL1キャッシュにデータ応答する。これに応答して,L1キャッシュはそのデータを登録する。
S28:最後にL1キャッシュはそのデータをCPUコアにデータ応答する。
[Third action when L1 misses, L2 hits, VA does not match, L1-TAG2 hits (Figure 7)]
FIG. 9 is a sequence diagram showing an operation (third operation) when a cache hit occurs in the L1 cache tag copy L1-TAG2 among the operations for avoiding the synonym state of FIG. The third operation will be described below with reference to FIGS. The third operation is the longest operation of S1-S7, S12-S21, and S27-S28 in FIG. Steps S1-S6 are the same as those in the first operation, and thus are omitted.
S7 (S61): The L2 cache pipeline compares the old virtual address VA1 in the L2 cache tag L2-TAG1 with the new virtual address VA2 of the current data request, and checks the synonym status. Here, since the address translation unit TLB has been updated, the comparison result is unmatched (UNMATCH). In other words, it becomes a synonym hit.
S12: Therefore, the request input unit SEL inputs a MOEX request from MIPORT to the L2 cache pipeline. As shown in FIG. 4, the MOEX request is a request to delete the old VA entry (registration) in the L1 cache and move it out (write processing) to the L2 cache if the L1 cache data is stored data. .
S13 (S62): The L2 cache pipeline searches the L1 cache tag copy L1-TAG2 with the old virtual address VA1 read from L2-TAG1, and checks whether duplicate data is registered in the L1 cache. Here, the L1 cache tag copy L1-TAG2 detects a cache hit and detects that duplicate data is registered in the L1 cache.
S14: Therefore, the L2 cache issues a moveout request to the L1 cache to move out duplicate data in the L1 cache.
S15 (S63): In response to the move-out request, the L1 cache pipeline deletes the registration of the L1 cache tag L1-TAG1 and L1 cache data L1-DATA.
S16: The L1 cache pipeline makes an order response notifying the L2 cache that the registration has been deleted from the L1 cache.
S17: In response to this, a WRBK request (write back request) corresponding to the above order response is input from the move-out port MOPORT to the L2 cache pipeline. As a result, when the data erased in the L1 cache is stored, the L2 cache pipeline performs a data write process (write back process) in the L2 cache.
S18: Then, the L2 cache pipeline deletes the registration of the L1 cache tag copy L1-TAG2. This is because the registration of L1-TAG2 of the copy is deleted because the registration is deleted in the L1 cache. This completes the processing for the old virtual address VA1.
S19: Next, the request input unit SEL inputs a MIRD request from MIPORT to the L2 cache pipeline. As shown in FIG. 4, the MIRD request is a request for updating the virtual address VA of the L2 cache tag L2-TAG1 while newly registering data in the L1 cache.
S20: The L2 cache pipeline updates the virtual address VA in the L2 cache tag L2-TAG1 to the new virtual address VA2, and later registers data in the L1 cache. Update the L1 type code Ll-TC to valid (VALID).
S21: The L2 cache pipeline registers the registration information of the new virtual address VA2 in the L1 cache tag copy L1-TAG2. The reason why the data is registered in the L1 cache tag copy L1-TAG2 is that data is registered in the L1 cache and registered in the L1 cache tag L1-TAG1 in the subsequent S28.
S27 (S64): The L2 cache pipeline returns data to the L1 cache. In response, the L1 cache registers the data.
S28: Finally, the L1 cache sends a data response to the CPU core.
したがって,図9に示されるとおり,工程S14-S18は旧仮想アドレスVA1(OLD-VA)に対する処理であり,L1キャッシュから登録を消去し,必要ならL2キャッシュに消去したデータをムーブアウトし,L1キャッシュタグコピーL1-TAG2の登録も消去する処理である。また,工程S19-S21,S27-S28は新仮想アドレスVA2(NEW-VA)に対する処理であり,L2-TAG1の仮想アドレスを更新し,L1-TAG2に登録し,L1キャッシュに登録する処理である。 Therefore, as shown in FIG. 9, steps S14-S18 are processes for the old virtual address VA1 (OLD-VA), the registration is deleted from the L1 cache, and if necessary, the deleted data is moved out to the L2 cache. This process also deletes the registration of the cache tag copy L1-TAG2. Processes S19-S21 and S27-S28 are processes for the new virtual address VA2 (NEW-VA), which is a process for updating the virtual address of L2-TAG1, registering it in L1-TAG2, and registering it in the L1 cache .
そして,第3の動作では,L2キャッシュパイプラインにREAD要求と,MOEX要求と,オーダ応答(WRBK)と,MIRD要求が投入される。 In the third operation, a READ request, a MOEX request, an order response (WRBK), and a MIRD request are input to the L2 cache pipeline.
また,工程S20-S21,S27-S28は,第1の動作の工程S8-S11と,第2の動作の工程S25-S28と実質的に同じ処理である。 Steps S20-S21 and S27-S28 are substantially the same as steps S8-S11 of the first operation and steps S25-S28 of the second operation.
[L1でミス,L2でヒット,VAが不一致,L1-TAG2でミスした場合の第4の動作(図7)]
図10は,図7のシノニム状態を回避する動作のうち,L1キャッシュタグコピーL1-TAG2でキャッシュミスした場合の動作(第4の動作)を示すシーケンス図である。図8と図10を参照しながら第4の動作を以下説明する。第4の動作は,図8においてS1-S7,S12-S13,S19-S21,S27-28の動作になる。工程S1-S7までは第3の動作と同じである。そして,工程S19-S21,S27-S28も第3の動作と同じである。以下,第4の動作について説明する。
[Fourth operation when L1 misses, L2 hits, VA does not match, L1-TAG2 misses (Figure 7)]
FIG. 10 is a sequence diagram showing an operation (fourth operation) in the case of a cache miss in the L1 cache tag copy L1-TAG2 among the operations for avoiding the synonym state of FIG. The fourth operation will be described below with reference to FIGS. The fourth operation is the operation of S1-S7, S12-S13, S19-S21, S27-28 in FIG. Steps S1-S7 are the same as the third operation. Steps S19-S21 and S27-S28 are the same as the third operation. Hereinafter, the fourth operation will be described.
S12:工程S7で新仮想アドレスVA2と旧仮想アドレスVA1とが不一致だったため,要求投入部SELがMIPORTからL2キャッシュパイプラインにMOEX要求を投入する。MOEX要求は,L1キャッシュの旧VAのエントリ(登録)を消去し,L1キャッシュのデータがストアされたデータであれば,L2キャッシュにムーブアウト(書き出し処理)する要求である。
S13(S62):次に,L2キャッシュパイプラインが,L2-TAG1から読み出した旧仮想アドレスVA1でL1キャッシュタグコピーL1-TAG2を検索し,L1キャッシュに重複するデータが登録されているか否かチェックする。ここでは,L1-TAG2でキャッシュミスし,L1キャッシュに重複するデータが登録されていないことを検出する。
S19:次に,要求投入部SELがMIPORTからMIRD要求をL2キャッシュパイプラインに投入する。MIRD要求は,L1キャッシュに新しくデータを登録しつつ,L2-TAG1の仮想アドレスVAを更新する要求である。
S12: Since the new virtual address VA2 and the old virtual address VA1 do not match in step S7, the request input unit SEL inputs a MOEX request from the MIPORT to the L2 cache pipeline. The MOEX request is a request to delete the old VA entry (registration) in the L1 cache and move out (write processing) to the L2 cache if the data in the L1 cache is stored data.
S13 (S62): Next, the L2 cache pipeline searches the L1 cache tag copy L1-TAG2 with the old virtual address VA1 read from L2-TAG1, and checks whether duplicate data is registered in the L1 cache To do. Here, a cache miss is detected at L1-TAG2, and it is detected that duplicate data is not registered in the L1 cache.
S19: Next, the request input unit SEL inputs a MIRD request from MIPORT to the L2 cache pipeline. The MIRD request is a request for updating the virtual address VA of L2-TAG1 while newly registering data in the L1 cache.
その後は,図9の第3の動作の新仮想アドレスに対する処理S20-S21,S27-S28と同じである。図10の第4の動作のシーケンス図を図9の第3の動作と対比すると理解できるとおり,図10の第4の動作では,L1キャッシュタグコピーL1-TAG2でキャッシュミスしたため,旧仮想アドレス(OLD-VA)に対するL1キャッシュの登録の消去処理がなく,新仮想アドレス(NEW-VA)に対する処理S20-S21,S27-S28だけを行う。 Thereafter, the processing is the same as the processing S20-S21, S27-S28 for the new virtual address in the third operation of FIG. As can be understood by comparing the sequence diagram of the fourth operation in FIG. 10 with the third operation in FIG. 9, in the fourth operation in FIG. 10, since the cache miss occurred in the L1 cache tag copy L1-TAG2, the old virtual address ( There is no L1 cache registration deletion process for OLD-VA), and only the processes S20-S21 and S27-S28 for the new virtual address (NEW-VA) are performed.
更に,第4の動作では,L2キャッシュパイプラインにREAD要求と,MOEX要求と,MIRD要求が投入される。 Further, in the fourth operation, a READ request, a MOEX request, and a MIRD request are input to the L2 cache pipeline.
[キャッシュインジェクション動作の問題点]
図11は,キャッシュインジェクション動作を示す図である。キャッシュインジェクションとは,図1のCPU1内の入出力制御部I/Oが,外部からのデータをメインメモリ30に転送して書き込むときに,最下位レベルキャッシュ,図1の例ではL2キャッシュにもデータを登録する処理である。また,入出力制御部I/Oが,外部からのデータをメインメモリ30に書き込むことなく,L2キャッシュにデータを登録する処理でもよい。このように,L2キャッシュにデータを登録しておけば,その後,CPUコアでデータ要求が発行された時に,メインメモリにアクセスすることなくL2キャッシュからデータを読み出すことができ,CPUの処理効率を向上することができる。
[Problems of cache injection operation]
FIG. 11 is a diagram showing a cache injection operation. When the I / O controller I / O in the
図11に示されるとおり,入出力制御部I/OがデータD1をメインメモリ30の物理アドレスPA1(PA_I1とPA_T1)にデータ登録することを要求する(S71)。それに応答して,L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1を検索用の物理アドレスPA_I1で検索して,キャッシュヒットすればその登録を消去する(S72)。さらに,L2キャッシュパイプラインは,MACを介してメインメモリ30にデータD1を書き込む要求を行い(S73),また,L2キャッシュにもそのデータD1を登録する(S74)。
As shown in FIG. 11, the input / output control unit I / O requests that data D1 be registered in the physical address PA1 (PA_I1 and PA_T1) of the main memory 30 (S71). In response to this, the L2 cache pipeline searches the L2 cache tag L2-TAG1 with the search physical address PA_I1, and deletes the registration if a cache hit occurs (S72). Further, the L2 cache pipeline makes a request for writing the data D1 to the
キャッシュインジェクションの場合は,CPUコアからのデータ要求を伴わないため,仮想アドレスVAが伴わないデータの登録要求になる。そのため,L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1内の仮想アドレスには,正しい仮想アドレスを登録することができない。その場合,L2キャッシュパイプラインは,例えば検索アドレスである物理アドレスPA_I1を登録する場合がある。または,物理アドレスPA_I1以外のアドレスを登録してもよい。 In the case of cache injection, since there is no data request from the CPU core, it becomes a data registration request without the virtual address VA. Therefore, the L2 cache pipeline cannot register a correct virtual address in the virtual address in the L2 cache tag L2-TAG1. In this case, the L2 cache pipeline may register a physical address PA_I1 that is a search address, for example. Alternatively, an address other than the physical address PA_I1 may be registered.
いずれにしても,L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1内の仮想アドレスに正しくないアドレスを設定する。その結果,図7の工程S61及び図8の工程S7で現在のデータ要求の新仮想アドレスとL2キャッシュタグL2-TAG1内の仮想アドレスとを比較すると,不一致(UNMATCH)の判定結果になる。 In any case, the L2 cache pipeline sets an incorrect address to the virtual address in the L2 cache tag L2-TAG1. As a result, when the new virtual address of the current data request is compared with the virtual address in the L2 cache tag L2-TAG1 in step S61 in FIG. 7 and step S7 in FIG. 8, a determination result of mismatch (UNMATCH) is obtained.
この仮想アドレスが不一致の判定結果により,図8に示されるとおり,MOPORTからMOEX要求がL2キャッシュパイプラインに投入され(S12),L1キャッシュタグコピーL1-TAG2を検索してキャッシュミスを起こし(S13,S62のミス),L1キャッシュにデータが登録されていないことが確認され,MIPORTからMIRD要求がL2キャッシュパイプラインに投入され(S19),工程S20-S21,S27-S28が実行される。つまり,キャッシュインジェクション後のデータ要求では,L2キャッシュタグL2-TAG1内の旧仮想アドレスと新仮想アドレスの判定結果が不一致(シノニムヒット)になり,シノニム処理(OLD-VAの消去とNEW-VAの登録)が発生することで,処理効率が低下する。キャッシュインジェクション後のデータ要求では,L1キャッシュにはデータは未登録であるので,シノニム状態は発生していないのにもかかわらず,キャッシュインジェクション時のデータ登録要求では仮想アドレスが指定されないので,シノニムヒットとなり,上記の処理効率の低下を招いている。また,キャッシュインジェクションで大容量のデータがL2キャッシュに登録されると,その後のCPUコアからの連続するデータ要求に対して,上記の仮想アドレスの不一致によるシノニムヒットが頻発する。シノニムヒットが発生するたびに,L2キャッシュパイプラインにMOEX要求とMIRD要求が投入されるので,その処理低下の程度は深刻である。 As shown in FIG. 8, a MOEX request is input from MOPORT to the L2 cache pipeline (S12), and a cache miss is caused by searching the L1 cache tag copy L1-TAG2 (S13). , S62 miss), it is confirmed that no data is registered in the L1 cache, a MIRD request is input from the MIPORT to the L2 cache pipeline (S19), and steps S20-S21, S27-S28 are executed. In other words, in the data request after cache injection, the judgment result of the old virtual address and the new virtual address in the L2 cache tag L2-TAG1 is inconsistent (synonym hit), and synonym processing (OLD-VA erase and NEW-VA (Registration) occurs and processing efficiency decreases. In the data request after cache injection, since no data is registered in the L1 cache, a synonym hit occurs because a virtual address is not specified in the data registration request at the time of cache injection even though a synonym state has not occurred. As a result, the processing efficiency is reduced. In addition, when a large amount of data is registered in the L2 cache by cache injection, synonym hits due to the above-mentioned virtual address mismatch frequently occur for subsequent data requests from the CPU core. Every time a synonym hit occurs, the MOEX request and MIRD request are input to the L2 cache pipeline, so the degree of processing degradation is serious.
したがって,キャッシュインジェクション後のデータ要求では,L2キャッシュは,図8の破線で囲った工程S12,S13,S19を無駄に実行するので,処理の低下を招いていた。 Therefore, in the data request after the cache injection, the L2 cache unnecessarily executes the processes S12, S13, and S19 surrounded by the broken line in FIG.
[本実施の形態]
そこで,本実施の形態では,L2キャッシュタグL2-TAG1内にキャッシュインジェクションにより登録されたことを示す情報を記録する領域を設ける。そして,L2キャッシュパイプラインが,キャッシュインジェクションによりL2キャッシュにデータを登録する際に,キャッシュインジェクション情報をオンに設定する。その後,CPUコアからのデータ要求が発行された場合,L1キャッシュでキャッシュミスし,L2キャッシュでキャッシュヒットする。このとき,L2キャッシュパイプラインは,シノニム判定を,L2キャッシュタグL2-TAG1内の旧仮想アドレスOLD-VAと現仮想アドレスNEW-VAとの比較結果と,キャッシュインジェクション情報とに基づいて行う。すなわち,シノニム判定では,仮想アドレスの比較結果が不一致(UNMATCH)であり,キャッシュインジェクション情報がオフの場合に,シノニムヒットと判定し,仮想アドレスの比較結果が不一致(UNMATCH)であっても,キャッシュインジェクション情報がオンの場合(キャッシュインジェクションにより書き込まれたことを示す場合)は,シノニムミスヒットと判定する。そして,L2キャッシュパイプラインは,シノニムミスヒットと判定されれば,図8の工程S7でVA MATCHとなった場合と同様に,READ要求の動作を継続して,工程S20-S21,S27-S28を実行する。
[This embodiment]
Therefore, in the present embodiment, an area for recording information indicating registration by cache injection is provided in the L2 cache tag L2-TAG1. When the L2 cache pipeline registers data in the L2 cache by cache injection, the cache injection information is set to ON. After that, when a data request is issued from the CPU core, a cache miss occurs in the L1 cache and a cache hit occurs in the L2 cache. At this time, the L2 cache pipeline performs synonym determination based on the comparison result between the old virtual address OLD-VA and the current virtual address NEW-VA in the L2 cache tag L2-TAG1, and the cache injection information. That is, in the synonym determination, if the comparison result of the virtual address is unmatched (UNMATCH) and the cache injection information is off, it is determined as a synonym hit, and even if the comparison result of the virtual address is unmatched (UNMATCH) When the injection information is on (indicating that it has been written by cache injection), it is determined as a synonym miss hit. If the L2 cache pipeline is determined to be a synonym miss hit, the operation of the READ request is continued as in the case of VA MATCH in step S7 of FIG. 8, and steps S20-S21, S27-S28 are performed. Execute.
上記のキャッシュインジェクション情報がオンの状態は,L1キャッシュ状態情報であるL1タイプコードL1-TCが無効(INVALID)状態であることで検出することができる。一般に,L2キャッシュタグL2-TAG1内のL1タイプコードL1-TCには,L1キャッシュのデータが複数のCPUコアでシェアされているか(共有されているか),他のCPUコアとシェア可能か(共有可能か)などの状態情報が登録される。そして,L1キャッシュにデータが未登録の場合は,L1タイプコードL1-TCはいずれの状態でもない無効(INVALID)状態になる。そこで,このL1タイプコードが無効状態か否かにより,キャッシュインジェクションによりL2キャッシュまでしか登録されておらず,L1キャッシュには未登録であることを検出することができる。 The state in which the above-described cache injection information is on can be detected when the L1 type code L1-TC, which is the L1 cache state information, is in an invalid (INVALID) state. Generally, the L1 type code L1-TC in the L2 cache tag L2-TAG1 is shared by multiple CPU cores (whether it is shared) or can be shared with other CPU cores (shared) Status information is registered. When data is not registered in the L1 cache, the L1 type code L1-TC is in an invalid (INVALID) state, which is neither state. Therefore, it can be detected that only the L2 cache is registered by the cache injection and is not registered in the L1 cache depending on whether or not the L1 type code is in an invalid state.
従って,本実施の形態によれば,2次キャッシュ制御部は,1次キャッシュメモリ部でキャッシュミスした現在のアクセス要求に応答して,2次キャッシュタグでキャッシュヒットを判定した場合,2次キャッシュタグ内の1次キャッシュ状態情報が無効状態か否かに基づいて,1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を実行する。2次キャッシュ制御部は,2次キャッシュタグでキャッシュヒットを判定した場合,1次キャッシュ状態情報が有効状態であれば,シノニム処理を実行し,無効状態であればシノニム処理を行わない。以下,具体的に説明する。 Therefore, according to the present embodiment, when the secondary cache control unit determines a cache hit by the secondary cache tag in response to the current access request cache missed by the primary cache memory unit, the secondary cache control unit Based on whether or not the primary cache state information in the tag is invalid, synonym processing is executed to delete the cache registration in the synonym state in the primary cache memory unit. When the secondary cache control unit determines a cache hit with the secondary cache tag, if the primary cache state information is valid, it executes synonym processing, and if it is invalid, it does not perform synonym processing. This will be specifically described below.
図12は,本実施の形態のキャッシュインジェクション後のデータ要求の動作を示す図である。キャッシュインジェクションでは,L2キャッシュにデータが登録されるがL1キャッシュには未だデータ登録されていない。したがって,図12のキャッシュインジェクション後のデータ要求では,要求するデータD1はL1キャッシュには未登録であり,L2キャッシュに登録済みである。 FIG. 12 is a diagram showing the data request operation after cache injection according to the present embodiment. In cache injection, data is registered in the L2 cache, but not yet registered in the L1 cache. Therefore, in the data request after the cache injection in FIG. 12, the requested data D1 is not registered in the L1 cache and registered in the L2 cache.
図12のL2キャッシュタグL2-TAG1内にはL1タイプコードL1-TCが記録されている。このL1タイプコードL1-TCの情報と仮想アドレスVAとに基づいて,L2キャッシュパイプラインは,シノニム状態の判定を行う。 An L1 type code L1-TC is recorded in the L2 cache tag L2-TAG1 in FIG. Based on the information of the L1 type code L1-TC and the virtual address VA, the L2 cache pipeline determines the synonym state.
図14は,本実施の形態におけるフローチャート図である。図8のフローチャート図に対して,図14のフローチャートは,工程S7で旧仮想アドレスOLD-VAと新仮想アドレスNEW-VAとが不一致(UNMATCH)の場合に,L2キャッシュタグL2-TAG1内のL1タイプコードL1-TCが無効状態(INVALID)か,無効状態以外の有効状態(VALID)か,を判定する工程S29が追加されている。また,工程S13でのL1キャッシュタグコピーL1-TAG2の検索では必ずヒットになるので,ミスの経路がない。それ以外は図8と同じである。 FIG. 14 is a flowchart in the present embodiment. In contrast to the flowchart of FIG. 8, the flowchart of FIG. 14 shows that L1 in the L2 cache tag L2-TAG1 when the old virtual address OLD-VA and the new virtual address NEW-VA do not match (UNMATCH) in step S7. A step S29 for determining whether the type code L1-TC is in an invalid state (INVALID) or a valid state other than the invalid state (VALID) is added. In addition, the search for the L1 cache tag copy L1-TAG2 in step S13 always results in a hit, so there is no miss path. The rest is the same as FIG.
したがって,L2キャッシュパイプラインは,工程S7での仮想アドレスの一致判定と,工程S29でのL1タイプコードL1-TCが無効状態か否かの判定とで,不一致(UNMATCH)で且つ有効状態であれば,図8と同様に工程S12-S21,S27-S28のシノニム処理を実行する。しかし,L2キャッシュパイプラインは,工程S7での仮想アドレスの一致判定で不一致(UNMATCH)になっても,工程S29でL1タイプコードL1-TCが無効状態であれば,工程S12-S19を実行せずに,工程S20-S21,S27-S28を実行する。この工程S20-S21,S27-S28は,工程S8-S11と実質的に同じである。つまり,L2キャッシュパイプラインは,新旧仮想アドレスが不一致でもL1タイプコードが無効状態であれば,工程S5で投入されたREAD要求を継続して実行して処理を完結することができる。つまり,図8のフローチャート図のように,工程S12,S19のL2キャッシュパイプラインにMOEX要求とMIRD要求を投入する必要はない。 Therefore, the L2 cache pipeline is inconsistent (UNMATCH) and valid depending on whether the virtual address coincidence is determined in step S7 and whether the L1 type code L1-TC is invalid in step S29. For example, the synonym processing of steps S12-S21 and S27-S28 is executed as in FIG. However, the L2 cache pipeline does not execute steps S12-S19 if the L1 type code L1-TC is invalid in step S29 even if the virtual address match determination in step S7 results in a mismatch (UNMATCH). Instead, steps S20-S21, S27-S28 are executed. Steps S20-S21 and S27-S28 are substantially the same as steps S8-S11. That is, the L2 cache pipeline can complete the processing by continuously executing the READ request input in step S5 if the L1 type code is invalid even if the old and new virtual addresses do not match. That is, it is not necessary to input the MOEX request and MIRD request to the L2 cache pipeline in steps S12 and S19 as in the flowchart of FIG.
[キャッシュインジェクション後のデータ要求における第5の動作]
図15は,キャッシュインジェクション後のデータ要求の動作(第5の動作)を示すシーケンス図である。図12,図14,図15を参照しながら,図14に示されたキャッシュインジェクション後のデータ要求の第5の動作を説明する。
[Fifth operation in data request after cache injection]
FIG. 15 is a sequence diagram showing the data request operation (fifth operation) after cache injection. The fifth operation of the data request after the cache injection shown in FIG. 14 will be described with reference to FIGS.
まず,演算制御部からのデータ要求は,仮想アドレスVA2を伴い物理アドレスPA_I1,PA_T1に対するデータD1について発行される(S51,S1)。これに応答して,L1キャッシュパイプラインがL1キャッシュタグL1-TAG1を仮想アドレスVA2で検索する(S52,S2)。タグには物理アドレスは未登録かまたはデータ要求の物理アドレスと異なるアドレスが格納されているので,アドレス変換部TLBが出力する物理アドレスPA_T1は,L1キャッシュタグL1-TAG1から読み出された物理アドレスと不一致になり,キャッシュミスとなる(S52,S2)。 First, a data request from the arithmetic control unit is issued for data D1 corresponding to physical addresses PA_I1 and PA_T1 accompanied by virtual address VA2 (S51, S1). In response to this, the L1 cache pipeline searches the L1 cache tag L1-TAG1 with the virtual address VA2 (S52, S2). The physical address PA_T1 output by the address translation unit TLB is the physical address read from the L1 cache tag L1-TAG1 because the tag has an unregistered physical address or an address different from the physical address of the data request And a cache miss (S52, S2).
そこで,L1キャッシュはL2キャッシュにデータ要求を発行し(S53,S4),L2キャッシュではMIPORTからREAD要求がL2キャッシュパイプラインに投入される(S54,S5)。L2キャッシュパイプラインは,物理アドレスPA_I1でL2キャッシュタグL2-TAG1を検索し,キャッシュヒットを検出する(S55,S6)。このとき,L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1内の旧仮想アドレスPA_I1と現在のデータ要求の新仮想アドレスVA2とを比較して不一致(UNMATCH)を検出する(S61,S7)。ここで,L2キャッシュタグL2-TAG1内に旧仮想アドレスとして登録されているアドレスPA_I1は,キャッシュインジェクション要求時の物理アドレスPA_I1である。 Therefore, the L1 cache issues a data request to the L2 cache (S53, S4), and the L2 cache issues a READ request from MIPORT to the L2 cache pipeline (S54, S5). The L2 cache pipeline searches the L2 cache tag L2-TAG1 with the physical address PA_I1 and detects a cache hit (S55, S6). At this time, the L2 cache pipeline compares the old virtual address PA_I1 in the L2 cache tag L2-TAG1 with the new virtual address VA2 of the current data request to detect a mismatch (UNMATCH) (S61, S7). Here, the address PA_I1 registered as the old virtual address in the L2 cache tag L2-TAG1 is the physical address PA_I1 at the time of the cache injection request.
そして,本実施の形態では,L2キャッシュパイプラインは,更に,キャッシュヒットしたL2キャッシュタグL2-TAG1内のL1タイプコードL1-TCを参照し,無効状態(INVALID)を検出する(S29)。その結果,L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1内のL1タイプコードL1-TCを有効状態に更新し,仮想アドレスVAを新仮想アドレスVA2に更新し(S20),L1キャッシュタグコピーL1-TAG2をL2キャッシュタグL2-TAG1でキャッシュヒットしたデータの登録情報を登録し(S21),L1キャッシュにデータ応答し(S27),L1キャッシュにデータを登録させる。さらに,L1キャッシュは,CPUコアにデータ応答する(S28)。 In this embodiment, the L2 cache pipeline further detects the invalid state (INVALID) by referring to the L1 type code L1-TC in the cache hit L2 cache tag L2-TAG1 (S29). As a result, the L2 cache pipeline updates the L1 type code L1-TC in the L2 cache tag L2-TAG1 to the valid state, updates the virtual address VA to the new virtual address VA2 (S20), and the L1 cache tag copy L1 -Register TAG2 with the L2 cache tag L2-TAG1 and register the registration information of the data that hit the cache (S21), respond to the L1 cache (S27), and register the data in the L1 cache. Furthermore, the L1 cache sends a data response to the CPU core (S28).
図15に示されるとおり,L2キャッシュパイプラインは,投入されたREAD要求を処理することで,L2キャッシュのデータをL1キャッシュに登録することができる。図15の第5の動作の動作シーケンスは,図3の(1)の第1の動作の動作シーケンスとほぼ同じであり,L2キャッシュパイプラインにはREAD要求が投入されるだけである。また,図15の第5の動作シーケンスは,図10の第4の動作の動作シーケンスにおけるMOEX要求とMIRD要求を投入することによる工程S12,S13,S19が省略されている。 As shown in FIG. 15, the L2 cache pipeline can register the data in the L2 cache in the L1 cache by processing the input READ request. The operation sequence of the fifth operation in FIG. 15 is almost the same as the operation sequence of the first operation in (1) of FIG. 3, and only a READ request is input to the L2 cache pipeline. Further, in the fifth operation sequence of FIG. 15, steps S12, S13, and S19 by inputting the MOEX request and MIRD request in the operation sequence of the fourth operation of FIG. 10 are omitted.
このように,本実施の形態では,L2キャッシュパイプライアンは,シノニムヒット判定に新旧仮想アドレスの比較判定S7に加えてL1タイプコードL1-TCが無効状態か否かの判定S29を実施することで,キャッシュインジェクションによる擬似的な新旧仮想アドレスの不一致状態と,本当の新旧仮想アドレスの不一致状態とを区別することができる。 As described above, in this embodiment, the L2 cache pipeline performs the determination S29 of whether or not the L1 type code L1-TC is invalid in addition to the comparison determination S7 of the old and new virtual addresses for the synonym hit determination. , It is possible to distinguish between a pseudo old and new virtual address mismatch state due to cache injection and a true new and old virtual address mismatch state.
[L1でミス,L2でヒット,VAが不一致,L1-TCが有効,L1-TAG2でヒットする場合の第3の動作(図13)]
次に,本実施の形態における真にシノニム状態の場合の第3の動作について説明する。図13は,本実施の形態の場合の第3の動作を示す図である。図14においては,工程S1-S7,S29,S12-S21,S27-S28の動作になる。
[Missing at L1, hit at L2, VA mismatch, L1-TC valid, third action when hit at L1-TAG2 (Figure 13)]
Next, the third operation in the present embodiment in the true synonym state will be described. FIG. 13 is a diagram showing a third operation in the case of the present embodiment. In FIG. 14, the operations of steps S1-S7, S29, S12-S21, S27-S28 are performed.
図13において,MIPORTからL2キャッシュパイプラインにREAD要求が投入される工程(S5,S54)後について説明する。L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1を物理アドレスPA_I1で検索し,キャッシュヒット判定する(S6,S55)。その際,L2キャッシュパイプラインは,L2キャッシュタグL2-TAG1から旧仮想アドレスVA1を読み出し新仮想アドレスVA2と比較し不一致(UNMATCH)を検出し(S7,S61),更に,L1タイプコードL1-TCを読み出し有効状態を検出する(S29)。その結果,L2キャッシュパイプラインは,工程S12-S21を実行する。 In FIG. 13, the process after the step (S5, S54) in which a READ request is input from the MIPORT to the L2 cache pipeline will be described. The L2 cache pipeline searches the L2 cache tag L2-TAG1 with the physical address PA_I1 and determines a cache hit (S6, S55). At that time, the L2 cache pipeline reads the old virtual address VA1 from the L2 cache tag L2-TAG1 and compares it with the new virtual address VA2 to detect a mismatch (UNMATCH) (S7, S61), and further, the L1 type code L1-TC And a valid state is detected (S29). As a result, the L2 cache pipeline executes steps S12-S21.
L2キャッシュパイプラインは,L1キャッシュタグコピーL1-TAG2を旧仮想アドレスVA1で検索し,L2キャッシュタグL2-TAG1内の物理アドレスPA_T1と一致する物理アドレスPA_T1を格納するL1キャッシュ内のウエイ情報を取得する。但し,図13には複数のウエイは示されていない。このL1キャッシュタグコピーL1-TAG2の旧仮想アドレスVA1による検索では,L1タイプコードL1-TCが有効状態であったので,必ずヒットする。 The L2 cache pipeline searches the L1 cache tag copy L1-TAG2 with the old virtual address VA1, and obtains the way information in the L1 cache that stores the physical address PA_T1 that matches the physical address PA_T1 in the L2 cache tag L2-TAG1 To do. However, FIG. 13 does not show a plurality of ways. In the search by the old virtual address VA1 of the L1 cache tag copy L1-TAG2, the L1 type code L1-TC is in a valid state, so it always hits.
その後,L2キャッシュがL1キャッシュに旧仮想アドレスVA1と検出したL1キャッシュのウエイ情報に基づいてL1キャッシュの登録を消去するオーダを発行し(S14),L1キャッシュの登録を消去させ(S15,S63),L1キャッシュからL2キャッシュへのオーダ応答(S16)に応答して,要求投入部SELがL2キャッシュパイプラインにライトバック要求WRBKを投入し(S17),L2キャッシュに必要であればライトバックし,L1キャッシュタグコピーL1-TAG2の登録を消去する(S18)。その後,工程S19-S21,S27-S28が実行される。 After that, the L2 cache issues an order for deleting the L1 cache registration based on the L1 cache way information detected as the old virtual address VA1 to the L1 cache (S14), and deletes the L1 cache registration (S15, S63). In response to an order response from the L1 cache to the L2 cache (S16), the request input unit SEL inputs a write back request WRBK to the L2 cache pipeline (S17), and writes back to the L2 cache if necessary. The registration of the L1 cache tag copy L1-TAG2 is deleted (S18). Thereafter, steps S19-S21 and S27-S28 are executed.
したがって,図9の第3の動作の動作シーケンスにおいて,L2キャッシュパイプラインは,仮想アドレスの比較判定(S7,S61)に加えて,L1タイプコードL1-TCが無効状態か否かの判定を行う。 Therefore, in the operation sequence of the third operation in FIG. 9, the L2 cache pipeline determines whether or not the L1 type code L1-TC is in an invalid state in addition to the virtual address comparison determination (S7, S61). .
[L1でミス,L2でヒット,VAが不一致,L1-TCが無効の場合の第4の動作]
図10の第4の動作は,本実施の形態の図14では,工程S1-S7,S29,S20-S21,S27-S28で実行される。つまり,工程S29でL1キャッシュタイプコードL1-TCが無効状態であることが判明し,L1キャッシュには旧仮想アドレスVA1の登録がないことが判明するので,旧仮想アドレスVA1の処理を行わずに,工程S20-S21,S27-S28で,新仮想アドレスVA2に対する登録処理を実行する。したがって,第4の動作も簡略化される。
[Fourth operation when L1 misses, L2 hits, VA does not match, and L1-TC is invalid]
The fourth operation of FIG. 10 is executed in steps S1-S7, S29, S20-S21, and S27-S28 in FIG. 14 of the present embodiment. That is, in step S29, it is found that the L1 cache type code L1-TC is invalid, and it is found that the old virtual address VA1 is not registered in the L1 cache, so the old virtual address VA1 is not processed. In steps S20-S21 and S27-S28, registration processing for the new virtual address VA2 is executed. Therefore, the fourth operation is also simplified.
本実施の形態では,L2キャッシュパイプラインは,真にシノニム状態か否かの判定を,新旧の仮想アドレスの比較判定と,L1タイプコードの無効状態か否かの判定で行う。L1タイプコードが無効状態であることは,L1キャッシュにはデータ登録がなされていないことを意味するので,キャッシュインジェクションによりL2キャッシュ登録された場合に加えて,他の何らかの要求によりL2キャッシュには登録されているがL1キャッシュには未登録である状態を検出することができる。その場合も,シノニム処理を回避することができる。 In this embodiment, the L2 cache pipeline determines whether or not it is truly a synonym state by comparing the old and new virtual addresses and determining whether or not the L1 type code is invalid. If the L1 type code is in an invalid state, it means that no data is registered in the L1 cache. Therefore, in addition to the case where the L2 cache is registered by cache injection, it is registered in the L2 cache by some other request. However, it is possible to detect an unregistered state in the L1 cache. Even in that case, synonym processing can be avoided.
図16は,本実施の形態におけるL2キャッシュパイプラインのシノニム判定とL2-TAG1のVA更新を行う論理回路を示す図である。図16の(1)は図8のフローチャートに対応する論理回路であり,図16の(2)は本実施の形態の図14のフローチャートに対応する論理回路である。 FIG. 16 is a diagram illustrating a logic circuit that performs synonym determination of the L2 cache pipeline and VA update of L2-TAG1 in the present embodiment. (1) in FIG. 16 is a logic circuit corresponding to the flowchart in FIG. 8, and (2) in FIG. 16 is a logic circuit corresponding to the flowchart in FIG. 14 of the present embodiment.
図16の(1)のアンドゲートAND1では,READ要求であること(S5),L2キャッシュタグL2-TAG1で物理アドレスPAが一致してキャッシュヒットであること(S6のHIT),そして,新旧仮想アドレスが不一致であったこと(S7のUNMATCH)が,シノニムヒット判定の条件である。また,オアゲートOR1では,MIRD要求(S19)またはMVIN要求(S24)の場合にL2キャッシュタグL2-TAG1の仮想アドレスVAを更新する(S20,S25)。 In the AND gate AND1 in (1) of FIG. 16, it is a READ request (S5), the physical address PA matches with the L2 cache tag L2-TAG1, and it is a cache hit (HIT of S6), and the old and new virtual The address mismatch (S7 UNMATCH) is a condition for the synonym hit determination. Further, the OR gate OR1 updates the virtual address VA of the L2 cache tag L2-TAG1 in the case of the MIRD request (S19) or the MVIN request (S24) (S20, S25).
一方,図16の(2)のアンドゲートAND2では,READ要求であること(S5),L2キャッシュタグL2-TAG1で物理アドレスPAが一致してキャッシュヒットであること(S6のHIT),新旧仮想アドレスが不一致であったこと(S7のUNMATCH)に加えて,L1タイプコードL1-TCが有効状態(VALID)であること(S29のVALID)が,シノニムヒット判定の条件である。そして,アンドゲートAND3では,READ要求であること(S5),L2キャッシュタグL2-TAG1で物理アドレスPAが一致してキャッシュヒットであること(S6のHIT),新旧仮想アドレスが不一致であったこと(S7のUNMATCH)に加えて,L1タイプコードL1-TCが無効状態(INVALID)であること(S29のINVALID)が,L2キャッシュタグL2-TAG1の仮想アドレスVAを更新する(S20)の条件になる。また,オアゲートOR2では,MIRD要求(S19)またはMVIN要求(S24)の場合に加えて,アンドゲートAND3の出力が真(1)の場合も,L2キャッシュタグL2-TAG1の仮想アドレスVAを更新する(S20,S25)。 On the other hand, in AND gate AND2 of (2) of FIG. 16, it is a READ request (S5), physical address PA matches L2 cache tag L2-TAG1, and it is a cache hit (HIT of S6), old and new virtual In addition to the address mismatch (UNMATCH in S7), the L1 type code L1-TC is in a valid state (VALID) (VALID in S29) is a condition for the synonym hit determination. And in AND gate AND3, it is a READ request (S5), physical address PA matches in L2 cache tag L2-TAG1, and it is a cache hit (HIT in S6), and old and new virtual addresses do not match In addition to (UNMATCH of S7), the fact that the L1 type code L1-TC is invalid (INVALID) (INVALID of S29) is a condition for updating the virtual address VA of the L2 cache tag L2-TAG1 (S20) Become. The OR gate OR2 updates the virtual address VA of the L2 cache tag L2-TAG1 when the output of the AND gate AND3 is true (1) in addition to the MIRD request (S19) or MVIN request (S24). (S20, S25).
図17は,本実施の形態におけるL1キャッシュタグとL2キャッシュタグの具体例を示す図である。図17には,L1キャッシュタグL1-TAGと,L2キャッシュタグL2-TAG1の構成例が示されている。前提として,アドレス変換部TLBは,4Kbyte(12ビット)が変換単位である。従って,アドレス変換部TLBは,仮想アドレスVA[63:12]を物理アドレスPA[39:12]に変換する。そして,仮想アドレスと物理アドレスの下位12ビットは共通(VA[11:0]=PA[11:0])である。 FIG. 17 is a diagram showing specific examples of the L1 cache tag and the L2 cache tag in the present embodiment. FIG. 17 shows a configuration example of the L1 cache tag L1-TAG and the L2 cache tag L2-TAG1. As a premise, the address translation unit TLB has a translation unit of 4 Kbytes (12 bits). Therefore, the address translation unit TLB translates the virtual address VA [63:12] into the physical address PA [39:12]. The lower 12 bits of the virtual address and the physical address are common (VA [11: 0] = PA [11: 0]).
L1キャッシュタグL1-TAGは,VA[15:7]をインデックスとして,それぞれに対応するタグ情報として物理アドレスPA[39:12」を各ウエイway0,way1別に格納する。そして,アドレス変換部TLBで物理アドレスPA[39:12]が出力され,タグ情報の物理アドレスPA[39:12]と比較される。尚,アドレス変換部の変換単位と,L1キャッシュのキャッシュブロック単位とは異なっている。 The L1 cache tag L1-TAG stores VA [15: 7] as an index and the physical address PA [39:12] as tag information corresponding to each of the ways way0 and way1. Then, the physical address PA [39:12] is output from the address translation unit TLB and compared with the physical address PA [39:12] of the tag information. The translation unit of the address translation unit is different from the cache block unit of the L1 cache.
一方,L2キャッシュはL1キャッシュよりも大容量であるのでエントリ数も多い。その結果,L2キャッシュタグL2-TAG1は,PA[19:7]をインデックスとして,それぞれに対応するタグ情報として物理アドレスPA[39:20]を各ウエイ別に格納する。また,L2キャッシュのウエイ数は24個とL1キャッシュのウエイ数2より多い。 On the other hand, since the L2 cache has a larger capacity than the L1 cache, the number of entries is also large. As a result, the L2 cache tag L2-TAG1 stores the physical address PA [39:20] for each way as tag information corresponding to PA [19: 7] as an index. The number of ways in the L2 cache is 24, which is larger than the number of ways in the L1 cache.
図18は,本実施の形態おけるL1キャッシュタグとL2キャッシュタグのデータフォーマットの具体例を示す図である。L2キャッシュタグL2-TAG1は,エラーチェック・訂正コードECC[6:0]と,L1タイプコードL1-TC[2:0]と,L2タイプコードL2-TC[1:0]と,L1キャッシュに登録されている仮想アドレスVA[15:12]と,物理アドレスPA[39:20]を格納する。仮想アドレスVA[15:12]は,L1キャッシュタグL1-TAGのインデックスよりビット数が少ないが,前述のとおりVA[11:0]=PA[11:0]であるので問題はない。 FIG. 18 is a diagram showing a specific example of the data format of the L1 cache tag and the L2 cache tag in the present embodiment. L2 cache tag L2-TAG1 is error check / correction code ECC [6: 0], L1 type code L1-TC [2: 0], L2 type code L2-TC [1: 0], and L1 cache Stores the registered virtual address VA [15:12] and physical address PA [39:20]. The virtual address VA [15:12] has a smaller number of bits than the index of the L1 cache tag L1-TAG, but there is no problem because VA [11: 0] = PA [11: 0] as described above.
L1キャッシュタグコピーL1-TAG2は,データキャッシュの2つのウエイOPway0,OPway1と,命令キャッシュの2つのウエイIFway0,IFway1がそれぞれ20ビットで構成され,その20ビットは,エラーチェック・訂正コードECC[5:0]と,バリッドビットVと,物理アドレスPA[19:12]と,ウエイアドレスWAY[4:0]とで構成される。L2キャッシュはL1キャッシュのインクルージョンキャッシュであるので,物理アドレスPA[19:12]とウエイアドレスWAY[4:0]とで,物理アドレスPA[39:12]を表現することができる。 In the L1 cache tag copy L1-TAG2, the two ways OPway0 and OPway1 of the data cache and the two ways IFway0 and IFway1 of the instruction cache are each composed of 20 bits, and the 20 bits are error check / correction code ECC [5 : 0], valid bit V, physical address PA [19:12], and way address WAY [4: 0]. Since the L2 cache is an inclusion cache of the L1 cache, the physical address PA [39:12] can be expressed by the physical address PA [19:12] and the way address WAY [4: 0].
以上の通り,本実施の形態によれば,L2キャッシュタグL2-TAG1内に仮想アドレスVAに加えてL1タイプコードL1-TCを格納し,L1タイプコードL1-TCにL1キャッシュにデータ登録されていないことを示す無効状態(INVALID)を格納する。そして,キャッシュインジェクション後のデータ要求では,L2キャッシュパイプラインが,L2キャッシュタグL2-TAG1を検索してヒットした際に,新旧仮想アドレスVAの比較判定と,L1タイプコードL1-TCが無効状態か否かの判定を行うことで,キャッシュインジェクション後などの理由でL1キャッシュにデータが未登録の状態か,L1キャッシュタグに旧仮想アドレスVAで登録されているかを区別することができる。それにより,キャッシュインジェクション後のデータ要求では,L1キャッシュタグコピーL1-TAG2の検索を含むシノニム処理を省略することができる。 As described above, according to the present embodiment, the L1 type code L1-TC is stored in addition to the virtual address VA in the L2 cache tag L2-TAG1, and the data is registered in the L1 cache in the L1 type code L1-TC. Stores the invalid state (INVALID) indicating that there is no. In the data request after cache injection, when the L2 cache pipeline searches for and hits the L2 cache tag L2-TAG1, the comparison judgment of the old and new virtual addresses VA and whether the L1 type code L1-TC is invalid By determining whether or not, it is possible to distinguish whether the data is not registered in the L1 cache for a reason such as after cache injection or whether the data is registered in the L1 cache tag with the old virtual address VA. Thereby, in the data request after the cache injection, the synonym processing including the search for the L1 cache tag copy L1-TAG2 can be omitted.
以上の実施の形態をまとめると,次の付記のとおりである。 The above embodiment is summarized as follows.
(付記1)
仮想アドレスで検索される1次キャッシュタグ及び1次キャッシュデータメモリと,キャッシュ制御を行う1次キャッシュ制御部とを有する1次キャッシュメモリ部と,
物理アドレスで検索される2次キャッシュタグ及び2次キャッシュデータメモリと,キャッシュ制御を行う2次キャッシュ制御部とを有し,前記2次キャッシュ制御部が,前記1次キャッシュメモリ部がキャッシュミスを発生したアクセス要求に応答して,前記2次キャッシュタグでキャッシュヒットと判定した場合,前記2次キャッシュタグ内の1次キャッシュ状態情報に基づいて,前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を実行する2次キャッシュメモリ部とを有する演算処理装置。
(Appendix 1)
A primary cache memory unit having a primary cache tag and a primary cache data memory searched by a virtual address, and a primary cache control unit for performing cache control;
A secondary cache tag and a secondary cache data memory searched by a physical address, and a secondary cache control unit for performing cache control, wherein the secondary cache control unit detects that the primary cache memory unit has a cache miss If it is determined that the secondary cache tag is a cache hit in response to the generated access request, the cache in the synonym state in the primary cache memory unit based on the primary cache state information in the secondary cache tag And a secondary cache memory unit that executes a synonym process for deleting registration.
(付記2)
付記1において,
前記2次キャッシュ制御部は,前記2次キャッシュタグ内の1次キャッシュ状態情報が無効状態の場合に,前記シノニム処理を実行せずに,前記キャッシュヒットしたデータを前記1次キャッシュメモリ部に応答し,有効状態の場合に,前記シノニム処理を実行し前記キャッシュヒットしたデータを前記1次キャッシュメモリ部に応答する演算処理装置。
(Appendix 2)
In
The secondary cache control unit responds to the primary cache memory unit with the cache hit data without executing the synonym processing when the primary cache status information in the secondary cache tag is invalid. An arithmetic processing unit that executes the synonym processing and responds to the cache hit data to the primary cache memory unit in a valid state.
(付記3)
付記1または2において,
前記2次キャッシュタグは,前記2次キャッシュメモリ部へのキャッシュ登録時のアクセス要求の旧仮想アドレスを記憶し,
前記2次キャッシュ制御部は,前記現在のアクセス要求に応答して,前記2次キャッシュタグでキャッシュヒットを判定した場合,前記現在のアクセス要求の新仮想アドレスが前記2次キャッシュタグ内に記憶されている旧仮想アドレスと一致しない場合に,前記1次キャッシュ状態情報が無効状態か否かに基づいて前記シノニム処理を実行する演算処理装置。
(Appendix 3)
In
The secondary cache tag stores an old virtual address of an access request when registering a cache in the secondary cache memory unit,
When the secondary cache control unit determines a cache hit with the secondary cache tag in response to the current access request, the new virtual address of the current access request is stored in the secondary cache tag. An arithmetic processing unit that executes the synonym processing based on whether or not the primary cache state information is invalid when the old virtual address does not match.
(付記4)
付記3において,
前記2次キャッシュ制御部は,前記1次キャッシュメモリ部でキャッシュミスした現在のアクセス要求に応答して,第1の要求をパイプライン処理して,2次キャッシュタグに基づくキャッシュヒット判定と,前記新仮想アドレスと旧仮想アドレスの比較判定と,前記1次キャッシュ状態情報の判定とを実行し,前記キャッシュヒット判定がキャッシュヒットで,前記比較判定が不一致で,前記1次キャッシュ状態情報が無効状態の場合に,前記2次キャッシュタグ内の旧仮想アドレスを新仮想アドレスに更新し,前記1次キャッシュ状態情報を有効状態に更新し,前記1次キャッシュメモリ部にデータ応答する演算処理装置。
(Appendix 4)
In
The secondary cache control unit pipelines the first request in response to a current access request cache missed in the primary cache memory unit, determines a cache hit based on a secondary cache tag, The comparison determination of the new virtual address and the old virtual address and the determination of the primary cache state information are executed, the cache hit determination is a cache hit, the comparison determination does not match, and the primary cache state information is invalid In this case, the arithmetic processing unit updates the old virtual address in the secondary cache tag to a new virtual address, updates the primary cache state information to a valid state, and makes a data response to the primary cache memory unit.
(付記5)
付記4において,
前記2次キャッシュ制御部は,前記第1の要求をパイプライン処理するときに,前記2次キャッシュタグに基づくキャッシュヒット判定がキャッシュヒットで,前記比較判定が不一致で,前記1次キャッシュ状態情報が有効状態の場合に,前記シノニム処理に対応する第2の要求をパイプライン処理する演算処理装置。
(Appendix 5)
In
When the secondary cache control unit pipelines the first request, the cache hit determination based on the secondary cache tag is a cache hit, the comparison determination does not match, and the primary cache state information is An arithmetic processing unit that pipeline-processes the second request corresponding to the synonym processing in the valid state.
(付記6)
付記4または5において,
前記2次キャッシュ制御部は,前記第1の要求をパイプライン処理するときに,前記2次キャッシュタグに基づくキャッシュヒット判定がキャッシュヒットで,前記比較判定が一致の場合に,前記2次キャッシュタグ内の1次キャッシュ状態情報を有効状態に更新し,前記1次キャッシュメモリ部にデータ応答する演算処理装置。
(Appendix 6)
In
When the second cache control unit pipelines the first request, if the cache hit determination based on the secondary cache tag is a cache hit and the comparison determination is the same, the secondary cache tag An arithmetic processing unit that updates primary cache state information in the cache to a valid state and responds to the primary cache memory unit with data.
(付記7)
付記5において,
前記2次キャッシュメモリ部は,さらに,前記1次キャッシュタグのコピーである1次キャッシュタグコピーを有し,
前記2次キャッシュ制御部は,前記シノニム処理に対応する第2の要求(MOEX)のパイプライン処理において,前記コピー1次キャッシュタグを参照して,前記旧仮想アドレスに対応する登録情報を取得し,前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去する演算処理装置。
(Appendix 7)
In
The secondary cache memory unit further includes a primary cache tag copy that is a copy of the primary cache tag,
The secondary cache control unit obtains registration information corresponding to the old virtual address by referring to the copy primary cache tag in the pipeline processing of the second request (MOEX) corresponding to the synonym processing. , An arithmetic processing unit for erasing the cache registration in the synonym state in the primary cache memory unit.
(付記8)
付記1において,
さらに,入出力制御部を有し,
さらに,前記アクセス要求の仮想アドレスを物理アドレスに変換するアドレス変換部を有し,
前記1次キャッシュ制御部は,前記アクセス要求の仮想アドレスに基づいて前記1次キャッシュタグから読み出した物理アドレスと,前記アドレス変換部で変換した物理アドレスとを比較し,一致するときにキャッシュヒット,不一致のときにキャッシュミスを検出する演算処理装置。
(Appendix 8)
In
Furthermore, it has an input / output control unit,
And an address conversion unit that converts the virtual address of the access request into a physical address,
The primary cache control unit compares the physical address read from the primary cache tag based on the virtual address of the access request with the physical address converted by the address conversion unit, and if they match, the cache hit, An arithmetic processing unit that detects a cache miss when there is a mismatch.
(付記9)
付記1において,
前記シノニム状態は,前記1次キャッシュメモリ部において同一の物理アドレスのデータに対して異なる仮想アドレスが割り当てられた状態を含む演算処理装置。
(Appendix 9)
In
The synonym state is an arithmetic processing unit including a state in which different virtual addresses are assigned to data of the same physical address in the primary cache memory unit.
(付記10)
付記1において,
前記2次キャッシュ制御部は,前記入出力制御部による外部からのデータ転送の際に,2次キャッシュタグ及び2次キャッシュデータメモリにデータ登録を行う演算処理装置。
(Appendix 10)
In
The secondary cache control unit is an arithmetic processing unit that registers data in a secondary cache tag and a secondary cache data memory when data is transferred from the outside by the input / output control unit.
(付記11)
仮想アドレスで検索される1次キャッシュタグ及び1次キャッシュデータメモリと,キャッシュ制御を行う1次キャッシュ制御部とを有する1次キャッシュメモリ部と,
物理アドレスで検索される2次キャッシュタグ及び2次キャッシュデータメモリと,キャッシュ制御を行う2次キャッシュ制御部とを有する2次キャッシュメモリ部とを有する演算処理装置の制御方法であって,
前記1次キャッシュ制御部が,アクセス要求によりキャッシュミスを発生し,
前記1次キャッシュメモリ部がキャッシュミスした前記アクセス要求に応答して,前記2次キャッシュ制御部が,前記2次キャッシュタグでキャッシュヒットと判定した場合,前記2次キャッシュタグ内の1次キャッシュ状態情報に基づいて,前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を実行する演算処理装置の制御方法。
(Appendix 11)
A primary cache memory unit having a primary cache tag and a primary cache data memory searched by a virtual address, and a primary cache control unit for performing cache control;
A control method for an arithmetic processing unit having a secondary cache tag and a secondary cache data memory searched by a physical address, and a secondary cache memory unit having a secondary cache control unit for performing cache control,
The primary cache control unit generates a cache miss due to an access request,
In response to the access request in which the primary cache memory unit misses the cache, if the secondary cache control unit determines a cache hit in the secondary cache tag, the primary cache state in the secondary cache tag A control method for an arithmetic processing unit that executes a synonym process for deleting a cache registration in a synonym state in the primary cache memory unit based on information.
1:CPU,演算処理装置
10:CPUコア,演算処理部
12:演算装置,ALU
14:1次キャッシュメモリ部,L1キャッシュ
16:1次キャッシュパイプライン,1次キャッシュ制御部,L1キャッシュパイプライン
L1-TAG1:1次キャッシュタグ,L1キャッシュタグ
L1-DATA:1次キャッシュデータメモリ
TLB:アドレス変換部
20:2次キャッシュメモリ部,L2キャッシュ
22:2次キャッシュパイプライン,2次キャッシュ制御部,L2キャッシュパイプライン
24:要求ロック部
MIPORT:ムーブインポート
MOPORT:ムーブアウトポート
SEL:要求投入部,セレクタ
L2-TAG1:2次キャッシュタグ,L2キャッシュタグ
L2-DATA:2次キャッシュデータメモリ
L1-TAG2:1次キャッシュタグコピー,L1キャッシュタグコピー
I/O:入出力制御部
MAC:メモリアクセスコントローラ
30:メインメモリ
1: CPU, processing unit 10: CPU core, processing unit 12: processing unit, ALU
14: primary cache memory unit, L1 cache 16: primary cache pipeline, primary cache control unit, L1 cache pipeline
L1-TAG1: Primary cache tag, L1 cache tag
L1-DATA: primary cache data memory
TLB: address translation unit 20: secondary cache memory unit, L2 cache 22: secondary cache pipeline, secondary cache control unit, L2 cache pipeline 24: request lock unit
MIPORT: Move Import
MOPORT: Move-out port
SEL: Request input part, selector
L2-TAG1: Secondary cache tag, L2 cache tag
L2-DATA: Secondary cache data memory
L1-TAG2: Primary cache tag copy, L1 cache tag copy
I / O: I / O controller
MAC: Memory access controller 30: Main memory
Claims (4)
物理アドレスで検索される2次キャッシュタグ及び2次キャッシュデータメモリと,キャッシュ制御を行う2次キャッシュ制御パイプライン回路とを有する2次キャッシュメモリ部とを有し,
前記2次キャッシュ制御パイプライン回路が,
(a)前記1次キャッシュメモリ部がキャッシュミスを発生したアクセス要求に応答して,第1の要求(READ)が前記2次キャッシュ制御パイプライン回路に投入されると、
前記2次キャッシュタグでキャッシュヒットと判定した場合,
(a1)現在のアクセス要求の新仮想アドレスと前記2次キャッシュタグ内に記憶されている旧仮想アドレスとの比較判定と、前記2次キャッシュタグ内の1次キャッシュ状態情報の判定を実行し、前記比較判定が不一致で前記1次キャッシュ状態情報が無効状態の場合に、前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を前記1次キャッシュ制御部に実行させる第2の要求(MOEX)の前記2次キャッシュ制御パイプライン回路への投入をすることなく、前記2次キャシュタグ内の旧仮想アドレスを前記新仮想アドレスに更新し、前記1次キャッシュ状態情報を有効状態に更新し、前記キャッシュヒットしたデータを前記1次キャッシュメモリ部に応答し、
(a2)前記比較判定が不一致で前記1次キャッシュ状態情報が有効状態の場合に、前記第2の要求(MOEX)が前記2次キャッシュ制御パイプライン回路に投入され、
(b)前記第2の要求(MOEX)が前記2次キャッシュ制御パイプライン回路に投入されると、前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を前記1次キャッシュ制御部に実行させ、前記2次キャシュタグ内の旧仮想アドレスを前記新仮想アドレスに更新し、前記キャッシュヒットしたデータを前記1次キャッシュメモリ部に応答する演算処理装置。 A primary cache memory unit having a primary cache tag and a primary cache data memory searched by a virtual address, and a primary cache control unit for performing cache control;
Has a secondary cache tag and a secondary cache data memory to be retrieved by the physical address, and a secondary cache memory for chromatic and secondary cache control pipeline circuit for performing cache control,
The secondary cache control pipeline circuit includes:
(A) When the first request (READ) is input to the secondary cache control pipeline circuit in response to an access request in which the primary cache memory unit has caused a cache miss ,
When the secondary cache tag determines that the cache hit,
(A1) performing a comparison determination between the new virtual address of the current access request and the old virtual address stored in the secondary cache tag, and determining the primary cache state information in the secondary cache tag ; A second synonym process for erasing a cache registration in the synonym state in the primary cache memory unit when the comparison determination is inconsistent and the primary cache state information is invalid ; Without inputting the request (MOEX) to the secondary cache control pipeline circuit, the old virtual address in the secondary cache tag is updated to the new virtual address, and the primary cache state information is made valid. Update the cache hit data to the primary cache memory unit,
(A2) When the comparison determination is inconsistent and the primary cache state information is valid, the second request (MOEX) is input to the secondary cache control pipeline circuit;
(B) When the second request (MOEX) is input to the secondary cache control pipeline circuit, synonym processing for erasing the cache registration in the synonym state in the primary cache memory unit is performed in the primary cache control. A processor that updates the old virtual address in the secondary cache tag to the new virtual address and responds the cache hit data to the primary cache memory unit .
さらに,前記アクセス要求の仮想アドレスを物理アドレスに変換するアドレス変換部を有し,
前記1次キャッシュ制御部は,前記アクセス要求の仮想アドレスに基づいて前記1次キャッシュタグから読み出した物理アドレスと,前記アドレス変換部で変換した物理アドレスとを比較し,一致するときにキャッシュヒット,不一致のときにキャッシュミスを検出する演算処理装置。 In claim 1,
And an address conversion unit that converts the virtual address of the access request into a physical address,
The primary cache control unit compares the physical address read from the primary cache tag based on the virtual address of the access request with the physical address converted by the address conversion unit, and if they match, the cache hit, An arithmetic processing unit that detects a cache miss when there is a mismatch.
さらに,入出力制御部を有し,
前記2次キャッシュ制御パイプライン回路は,前記入出力制御部による外部からのデータ転送の際に,2次キャッシュタグ及び2次キャッシュデータメモリにデータ登録を行う演算処理装置。 In claim 1,
Furthermore, it has an input / output control unit,
The secondary cache control pipeline circuit is an arithmetic processing unit that registers data in a secondary cache tag and a secondary cache data memory when data is transferred from the outside by the input / output control unit.
物理アドレスで検索される2次キャッシュタグ及び2次キャッシュデータメモリと,キャッシュ制御を行う2次キャッシュ制御パイプライン回路とを有する2次キャッシュメモリ部とを有する演算処理装置の制御方法であって,
前記2次キャッシュ制御パイプライン回路が,
(a)前記1次キャッシュメモリ部がキャッシュミスを発生したアクセス要求に応答して,第1の要求(READ)が前記2次キャッシュ制御パイプライン回路に投入されると、
前記2次キャッシュタグでキャッシュヒットと判定した場合,
(a1)現在のアクセス要求の新仮想アドレスと前記2次キャッシュタグ内に記憶されている旧仮想アドレスとの比較判定と、前記2次キャッシュタグ内の1次キャッシュ状態情報の判定を実行し、前記比較判定が不一致で前記1次キャッシュ状態情報が無効状態の場合に、前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を前記1次キャッシュ制御部に実行させる第2の要求(MOEX)の前記2次キャッシュ制御パイプライン回路への投入をすることなく、前記2次キャシュタグ内の旧仮想アドレスを前記新仮想アドレスに更新し、前記1次キャッシュ状態情報を有効状態に更新し、前記キャッシュヒットしたデータを前記1次キャッシュメモリ部に応答し、
(a2)前記比較判定が不一致で前記1次キャッシュ状態情報が有効状態の場合に、前記第2の要求(MOEX)が前記2次キャッシュ制御パイプライン回路に投入され、
(b)前記第2の要求(MOEX)が前記2次キャッシュ制御パイプライン回路に投入されると、前記1次キャッシュメモリ部内のシノニム状態にあるキャッシュ登録を消去するシノニム処理を前記1次キャッシュ制御部に実行させ、前記2次キャシュタグ内の旧仮想アドレスを前記新仮想アドレスに更新し、前記キャッシュヒットしたデータを前記1次キャッシュメモリ部に応答する演算処理装置の制御方法。 A primary cache memory unit having a primary cache tag and a primary cache data memory searched by a virtual address, and a primary cache control unit for performing cache control;
A secondary cache tag and a secondary cache data memory to be retrieved by the physical address, a control method of a processing device having a secondary cache memory for chromatic and secondary cache control pipeline circuit for performing cache control ,
The secondary cache control pipeline circuit includes:
(A) When the first request (READ) is input to the secondary cache control pipeline circuit in response to an access request in which the primary cache memory unit has caused a cache miss ,
When the secondary cache tag determines that the cache hit,
(A1) performing a comparison determination between the new virtual address of the current access request and the old virtual address stored in the secondary cache tag, and determining the primary cache state information in the secondary cache tag ; A second synonym process for erasing a cache registration in the synonym state in the primary cache memory unit when the comparison determination is inconsistent and the primary cache state information is invalid ; Without inputting the request (MOEX) to the secondary cache control pipeline circuit, the old virtual address in the secondary cache tag is updated to the new virtual address, and the primary cache state information is made valid. Update the cache hit data to the primary cache memory unit,
(A2) When the comparison determination is inconsistent and the primary cache state information is valid, the second request (MOEX) is input to the secondary cache control pipeline circuit;
(B) When the second request (MOEX) is input to the secondary cache control pipeline circuit, synonym processing for erasing the cache registration in the synonym state in the primary cache memory unit is performed in the primary cache control. A control method of the arithmetic processing unit, wherein the control unit executes the processing , updates the old virtual address in the secondary cache tag to the new virtual address, and responds the cache hit data to the primary cache memory unit .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014069934A JP6337570B2 (en) | 2014-03-28 | 2014-03-28 | Arithmetic processing device and control method of arithmetic processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014069934A JP6337570B2 (en) | 2014-03-28 | 2014-03-28 | Arithmetic processing device and control method of arithmetic processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015191571A JP2015191571A (en) | 2015-11-02 |
JP6337570B2 true JP6337570B2 (en) | 2018-06-06 |
Family
ID=54425982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014069934A Active JP6337570B2 (en) | 2014-03-28 | 2014-03-28 | Arithmetic processing device and control method of arithmetic processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6337570B2 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH086852A (en) * | 1994-06-22 | 1996-01-12 | Hitachi Ltd | Cache control method |
JP4673584B2 (en) * | 2004-07-29 | 2011-04-20 | 富士通株式会社 | Cache memory device, arithmetic processing device, and control method for cache memory device |
JP4297968B2 (en) * | 2006-02-14 | 2009-07-15 | 富士通株式会社 | Coherency maintenance device and coherency maintenance method |
WO2007099598A1 (en) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | Processor having prefetch function |
-
2014
- 2014-03-28 JP JP2014069934A patent/JP6337570B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015191571A (en) | 2015-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7958318B2 (en) | Coherency maintaining device and coherency maintaining method | |
JP5526626B2 (en) | Arithmetic processing device and address conversion method | |
TWI381275B (en) | Address translation method and apparatus | |
US10019377B2 (en) | Managing cache coherence using information in a page table | |
US7472253B1 (en) | System and method for managing table lookaside buffer performance | |
US20160140042A1 (en) | Instruction cache translation management | |
US10078588B2 (en) | Using leases for entries in a translation lookaside buffer | |
US7428617B2 (en) | Cache memory and method to maintain cache-coherence between cache memory units | |
WO2018027839A1 (en) | Method for accessing table entry in translation lookaside buffer (tlb) and processing chip | |
JPS6135584B2 (en) | ||
JP2009512943A (en) | Multi-level translation index buffer (TLBs) field updates | |
JP6088951B2 (en) | Cache memory system and processor system | |
JP4339914B2 (en) | Error correction code generation method and memory management device | |
JP5319049B2 (en) | Cash system | |
CN115617709A (en) | Cache management method and device, cache device, electronic device and medium | |
WO2013084315A1 (en) | Processing unit and method for controlling processing unit | |
US6810473B2 (en) | Replacement algorithm for a replicated fully associative translation look-aside buffer | |
JP6337570B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
US9053030B2 (en) | Cache memory and control method thereof with cache hit rate | |
CN115098410A (en) | Processor, data processing method for processor and electronic equipment | |
US7546439B1 (en) | System and method for managing copy-on-write faults and change-protection | |
CN117435381B (en) | Method and device for detecting and filling cache, electronic equipment and storage medium | |
CN118349494A (en) | Computing system, chip and related methods for translating virtual addresses | |
CN117331854A (en) | Cache processing method, device, electronic equipment and medium | |
JPH0635801A (en) | Hierarchical memory control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171127 |
|
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: 20180410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180423 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6337570 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |