JP5565864B2 - Cache memory control apparatus and method - Google Patents

Cache memory control apparatus and method Download PDF

Info

Publication number
JP5565864B2
JP5565864B2 JP2010200982A JP2010200982A JP5565864B2 JP 5565864 B2 JP5565864 B2 JP 5565864B2 JP 2010200982 A JP2010200982 A JP 2010200982A JP 2010200982 A JP2010200982 A JP 2010200982A JP 5565864 B2 JP5565864 B2 JP 5565864B2
Authority
JP
Japan
Prior art keywords
cache memory
way
data
tag
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010200982A
Other languages
Japanese (ja)
Other versions
JP2012058973A (en
Inventor
整 堀越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Communication Systems Ltd
Original Assignee
NEC Communication Systems 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 NEC Communication Systems Ltd filed Critical NEC Communication Systems Ltd
Priority to JP2010200982A priority Critical patent/JP5565864B2/en
Publication of JP2012058973A publication Critical patent/JP2012058973A/en
Application granted granted Critical
Publication of JP5565864B2 publication Critical patent/JP5565864B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、キャッシュ技術に関し、特に、キャッシュメモリを制御する装置と方法に関する。   The present invention relates to cache technology, and more particularly to an apparatus and method for controlling a cache memory.

キャッシュメモリは、CPU(Central Processing Unit:中央処理装置)で高い頻度で使用されるデータを蓄積しておくことで、CPUからメインメモリへのアクセス回数を減らし高速化を図るために用いられる高速メモリである。キャッシュメモリは、通常、SRAM(Static Random Access Memory:スタティックランダムアクセスメモリ)からなり、メインメモリを構成するDRAM(Dynamic Random Access Memory:ダイナミックランダムアクセスメモリ)よりも高速である(アクセス時間が短い)。キャッシュメモリ制御装置は、CPUからキャッシュメモリへのアクセスを制御する。   The cache memory is a high-speed memory that is used to reduce the number of accesses from the CPU to the main memory and to increase the speed by accumulating data that is frequently used in a CPU (Central Processing Unit). It is. The cache memory is usually composed of SRAM (Static Random Access Memory) and is faster (shorter access time) than DRAM (Dynamic Random Access Memory) constituting the main memory. The cache memory control device controls access from the CPU to the cache memory.

CPUからキャッシュメモリへのアクセスを高速化するための手法の一つとして、キャッシュメモリ制御装置とキャッシュメモリ間のリード/ライト処理を駆動するクロックの周波数を高くする手法がある。   One technique for speeding up access from the CPU to the cache memory is to increase the frequency of the clock that drives the read / write processing between the cache memory control device and the cache memory.

図6は、キャッシュメモリ制御装置とキャッシュメモリの典型的な接続構成の一例を示す図である。なお、特に制限されるものでないが、図6において、キャッシュメモリ制御装置10’は、CPUに内蔵されているものとする。各キャッシュメモリは、クロック信号で駆動されるSSRAM(Synchronous SRAM:クロック同期型SRAM)で構成されている。4つのデータ・キャッシュメモリ20Aはデータを格納する。タグ・キャッシュメモリ20Bは、タグ(アドレスの予め定められた所定のビットからMSB(Most Significant Bit)側の上位ビット)を格納する。   FIG. 6 is a diagram illustrating an example of a typical connection configuration between the cache memory control device and the cache memory. Although not particularly limited, in FIG. 6, it is assumed that the cache memory control device 10 'is built in the CPU. Each cache memory is composed of an SSRAM (Synchronous SRAM) driven by a clock signal. The four data cache memories 20A store data. The tag cache memory 20B stores a tag (an upper bit on the MSB (Most Significant Bit) side from a predetermined bit of an address).

キャッシュメモリ制御装置10’は、4つのデータ・キャッシュメモリ20Aに、クロック1、アドレス1、データウエイの各信号を共通に供給し、4つのデータ・キャッシュメモリ20Aとの間でデータのパラレル入力/パラレル出力を行う。   The cache memory control device 10 ′ supplies the clock 1, address 1, and data way signals to the four data cache memories 20A in common, and provides parallel input / output of data to / from the four data cache memories 20A. Perform parallel output.

キャッシュメモリ制御装置10’は、タグ・キャッシュメモリ20Bに対して、データ・キャッシュメモリ20Aと共通のクロック1、アドレス1を供給し、タグウエイを供給し、タグの入出力を行う。   The cache memory control device 10 'supplies the tag cache memory 20B with clock 1 and address 1 common to the data cache memory 20A, supplies tag ways, and inputs / outputs tags.

図6の構成の場合、タグ・キャッシュメモリ20Bに格納されるタグのビット幅に対して、データの入出力単位のビット幅が大きいため(例えば4倍)、1つのタグ・キャッシュメモリ20Bに対して、4つのデータ・キャッシュメモリ20Aが並置されている。特に制限されないが、例えば、タグ・キャッシュメモリ20Bが、CPUからの32ビットのアドレス信号のうちの16から31ビットのビットフィールドをタグとして格納する場合、キャッシュメモリ制御装置10’は、4つのデータ・キャッシュメモリ20Aとの間で、4×16ビット=64ビット幅のデータを単位として入出力を行う。したがって、データのキャッシュラインサイズが128ビットの場合、キャッシュ制御装置10’は、4つのデータ・キャッシュメモリ20Aとの間で、4×16ビット=64ビット幅のデータのパラレル入出力を、時分割で、2回行うことで、128ビット幅のデータを取得する。   In the case of the configuration of FIG. 6, since the bit width of the data input / output unit is larger than the bit width of the tag stored in the tag cache memory 20B (for example, four times), one tag cache memory 20B The four data cache memories 20A are juxtaposed. Although not particularly limited, for example, when the tag cache memory 20B stores a bit field of 16 to 31 bits out of a 32-bit address signal from the CPU as a tag, the cache memory control device 10 ′ has four data Input / output is performed with the cache memory 20A in units of data of 4 × 16 bits = 64 bits wide. Therefore, when the cache line size of data is 128 bits, the cache control device 10 ′ performs time division on 4 × 16 bits = 64 bits wide parallel input / output with the four data cache memories 20A. Thus, data of 128-bit width is acquired by performing twice.

なお、図6の構成は、n(nは例えば2、4、8等の整数)ウエイ・セット・アソシエイティブ方式とされる。nウエイ・セット・アソシエイティブ方式のキャッシュメモリは、各セットあたり、nウエイ(ウエイ0〜ウエイn−1)のブロックを有し、各ブロックは、キャッシュアクセス用のアドレス(インデックス)でアクセスされる。特に制限されないが、以下では、単に説明の都合で、2ウエイ・セット・アソシエイティブ方式のキャッシュメモリとするが、4、8ウエイ等のセット・アソシエイティブ方式のキャッシュメモリについても、2ウエイ(ウエイ0、1)を、4ウエイ(ウエイ0−3)、8ウエイ(ウエイ0−7)とすることで同様に説明される。   6 is an n (where n is an integer such as 2, 4, 8, etc.) way set associative system. The n-way set associative cache memory has n-way (way 0 to way n-1) blocks for each set, and each block is accessed by an address (index) for cache access. . Although not particularly limited, in the following, for the sake of explanation, a 2-way set-associative cache memory is used, but a 4-way 8-way set-associative cache memory is also used. 0, 1) is described in the same manner as 4 way (way 0-3) and 8 way (way 0-7).

キャッシュメモリ制御装置10’から4つのデータ・キャッシュメモリ20Aに共通に出力されるデータウエイと、アドレス1は、データ・キャッシュメモリ20Aをアクセスするためのアドレスを構成する。例えばデータウエイ信号を上位ビット、アドレス1を下位ビットとするアドレスにより、ウエイ0、ウエイ1内の該当ロケーション(データの格納エントリ)がアクセスされる。   The data way that is commonly output from the cache memory control device 10 'to the four data cache memories 20A and the address 1 constitute an address for accessing the data cache memory 20A. For example, a corresponding location (data storage entry) in way 0 and way 1 is accessed by an address having the data way signal as an upper bit and address 1 as a lower bit.

タグ・キャッシュメモリ20Bにおいて、キャッシュメモリ制御装置10’から出力されるタグウエイと、アドレス1は、タグ・キャッシュメモリ20Bをアクセスするアドレスを構成する。例えばタグウエイ信号を上位ビット、アドレス1を下位ビットとするアドレスにより、ウエイ0、ウエイ1の各ウエイのロケーション(タグの格納エントリ)がアクセスされる。   In the tag cache memory 20B, the tag way output from the cache memory control device 10 'and the address 1 constitute an address for accessing the tag cache memory 20B. For example, the way location (tag storage entry) of way 0 and way 1 is accessed by an address having the tag way signal as upper bits and address 1 as lower bits.

リードアクセス時、キャッシュメモリ制御装置10’は、2つのウエイのうち先に読み出しを行うウエイ(ウエイ0又は1)に対応したタグウエイ、データウエイを出力し、CPUのアクセスアドレスの下位アドレスからキャッシュアクセス用のアドレス1を生成する。タグ・キャッシュメモリ20Bにおいて、タグウエイとアドレス1とに基づき、指定されたウエイの該当アドレス(ロケーション)からタグが読み出され、キャッシュメモリ制御装置10’は、読み出されたタグと、CPUのアクセスアドレスの上位アドレスとを比較し、一致・不一致を判定する。一致した場合、先に読み出しを行った方のウエイでヒットしているため、キャッシュメモリ制御装置10’は、データ・キャッシュメモリ20Aの該当ウエイから読み出したデータ(例えば図6の4つのデータ・キャッシュメモリ20Aからパラレルに読み出み出されたデータ)をCPUに転送する。あるいは、4つのデータ・キャッシュメモリ20Aからパラレルに読み出み出されたデータのうちCPUのアクセスアドレスの所定の下位ビットで指定されたワードデータ又はバイトデータを選択してCPUに転送する。   At the time of read access, the cache memory control device 10 'outputs the tag way and data way corresponding to the way (way 0 or 1) to be read first out of the two ways, and performs cache access from the lower address of the CPU access address. Address 1 is generated. In the tag cache memory 20B, the tag is read out from the corresponding address (location) of the designated way based on the tag way and the address 1, and the cache memory control device 10 ′ accesses the read tag and the CPU. Compare with the upper address of the address to determine match / mismatch. If they match, the cache memory control device 10 ′ hits the way that was read first, so the cache memory control device 10 ′ reads the data read from the corresponding way in the data cache memory 20 A (for example, the four data caches in FIG. 6). Data read out in parallel from the memory 20A) is transferred to the CPU. Alternatively, word data or byte data designated by a predetermined lower bit of the access address of the CPU is selected from the data read out in parallel from the four data cache memories 20A and transferred to the CPU.

キャッシュメモリ制御装置10’において、タグ・キャッシュメモリ20Bから先に読み出しを行ったウエイのタグが、CPUのアクセスアドレスの上位アドレスと不一致の場合、次に読み出すウエイに対応したタグウエイ、データウエイを出力し、タグ・キャッシュメモリ20Bの該当するウエイのアドレス(ロケーション)からタグを読み出してCPUのアクセスアドレスの上位アドレスと比較し、一致・不一致を判定する。ここで、一致した場合、データ・キャッシュメモリ20Aの該ウエイから読み出されたデータ(例えば4つのデータ・キャッシュメモリ20Aからパラレルに読み出されたデータ)をCPUに転送する。一方、タグ・キャッシュメモリ20Bの2つのウエイの該当するアドレス(ロケーション)から読み出されたタグが、CPUのアクセスアドレスの上位アドレスといずれも不一致の場合には、キャッシュ・ミスヒットとなる。この場合、メインメモリからデータを読み出し、データ・キャッシュメモリ20Aの所定のウエイのアドレスにデータを格納してCPUに転送し、タグ・キャッシュメモリ20Bの該所定のウエイにタグ(アクセスアドレスの上位アドレス)を設定する。   In the cache memory control device 10 ′, if the way tag read first from the tag cache memory 20B does not match the upper address of the CPU access address, the tag way and data way corresponding to the next read way are output. Then, the tag is read from the address (location) of the corresponding way in the tag cache memory 20B and compared with the upper address of the access address of the CPU, and a match / mismatch is determined. If they match, the data read from the way of the data cache memory 20A (for example, data read in parallel from the four data cache memories 20A) is transferred to the CPU. On the other hand, if the tag read from the corresponding address (location) of the two ways of the tag cache memory 20B does not match the upper address of the CPU access address, a cache miss hit occurs. In this case, data is read from the main memory, the data is stored at a predetermined way address in the data cache memory 20A, transferred to the CPU, and a tag (an upper address of the access address) is transferred to the predetermined way in the tag cache memory 20B. ) Is set.

ライトアクセス時、キャッシュメモリ制御装置10’は、選択されたウエイのタグ・キャッシュメモリ20Bのアドレスに、タグ(アクセスアドレスの上位アドレス)を格納し、データ・キャッシュメモリ20Aの当該ウエイの対応するロケーション(アドレス)にデータを書き込み、ライトスルー方式またはライトバック方式でメインメモリにデータを書き込む。   At the time of write access, the cache memory control device 10 ′ stores the tag (upper address of the access address) at the address of the tag cache memory 20B of the selected way, and the corresponding location of the way in the data cache memory 20A. Data is written to (address), and data is written to the main memory by the write-through method or the write-back method.

図7は、図6のキャッシュメモリ制御装置10’の内部構成の一例を模式的に示す図である。なお、キャッシュメモリにおいて、ウエイ毎に、タグ、データ、フラグ(Validフラグ等)が設けられているが、図7では、ウエイ毎のフラグ情報は省略されている。また、図7では、簡単のため、図6の4つのデータ・キャッシュメモリ20Aのうちの1つが模式図として例示されている。   FIG. 7 is a diagram schematically illustrating an example of an internal configuration of the cache memory control device 10 ′ illustrated in FIG. 6. In the cache memory, tags, data, and flags (valid flags and the like) are provided for each way, but in FIG. 7, flag information for each way is omitted. In FIG. 7, for simplicity, one of the four data cache memories 20A in FIG. 6 is illustrated as a schematic diagram.

図7において、ウエイ予測器12は、アクセスに際してウエイの予測(決定)(最初にどのウエイから読み出すか、次にどのウエイを読み出すか等の決定)を行う。またウエイ予測器12は、キャッシュ・ミスヒット時のウエイの予測を行う。ウエイの予測(決定)にあたり、ウエイ予測器12は、例えば直前(最後)に選択されたウエイを選択する。また、ウエイの置き換えを行う場合、ウエイ予測器12は、LRU(Least Recently Used)アルゴリズム等で決定される。   In FIG. 7, the way predictor 12 performs way prediction (determination) (determination of which way is read first, which way is read next, etc.) upon access. The way predictor 12 predicts the way when a cache miss occurs. In the prediction (determination) of the way, the way predictor 12 selects, for example, the way selected immediately before (last). When performing way replacement, the way predictor 12 is determined by an LRU (Least Recently Used) algorithm or the like.

キャッシュアドレス生成部13は、CPU30の予め定められた所定の下位アドレスから、キャッシュアドレス(インデックス)を生成し、アドレス1を出力する。   The cache address generation unit 13 generates a cache address (index) from a predetermined predetermined lower address of the CPU 30 and outputs address 1.

データウエイ生成部14とタグウエイ生成部15は、ウエイ予測器12の出力(ウエイ情報)を共通に受け、データウエイ信号とタグウエイ信号をそれぞれ出力する。   The data way generator 14 and the tag way generator 15 receive the output (way information) of the way predictor 12 in common, and output a data way signal and a tag way signal, respectively.

クロック同期部16は、例えばCPU30のクロック生成部31で生成されたクロック信号CKを受け、クロック信号CKの周波数を逓倍しキャッシュ駆動用の高速なクロック1を生成し、アドレス1、データウエイ、タグウエイを該クロック1に同期して、データ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bに供給し、該クロック1をデータ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bに共通に与える。   The clock synchronization unit 16 receives, for example, the clock signal CK generated by the clock generation unit 31 of the CPU 30 and multiplies the frequency of the clock signal CK to generate a high-speed clock 1 for driving the cache. The address 1, data way, tag way Are synchronized with the clock 1 and supplied to the data cache memory 20A and the tag cache memory 20B, and the clock 1 is supplied to the data cache memory 20A and the tag cache memory 20B in common.

データ・キャッシュメモリ20Aにおいて、データウエイとアドレス1から、該当するウエイ内でのアドレスが生成される。タグ・キャッシュメモリ20Bにおいて、タグウエイとアドレス1から、該当するウエイ内でのアドレスが生成される。アドレス1とタグウエイから、例えばタグ・キャッシュメモリ20Bのウエイ0(TagX)内のタグ1のロケーションを指示するアドレスが生成され、アドレス1とデータウエイからデータ・キャッシュメモリ20Aのウエイ0(DataX)内のデータ1のロケーションを指示するアドレスが生成され、タグ1、データ1の読み出しがそれぞれ行われる。   In the data cache memory 20A, an address in the corresponding way is generated from the data way and the address 1. In the tag cache memory 20B, an address in the corresponding way is generated from the tag way and the address 1. From the address 1 and the tag way, for example, an address indicating the location of the tag 1 in the way 0 (TagX) of the tag cache memory 20B is generated. From the address 1 and the data way, in the way 0 (DataX) of the data cache memory 20A An address indicating the location of data 1 is generated, and tag 1 and data 1 are read out.

アドレス比較部11−1/2では、タグ・キャッシュメモリ20Bにおいて、ウエイ0とウエイ1から、それぞれ読み出されたタグ(タグX、タグY)を、CPU30のアクセスアドレスの所定の上位アドレス(上位アドレスのビットフィールド)と比較し、一致/不一致の比較結果を、ウエイ予測器12とデータ選択部19とCPU30に供給する。   In the address comparison unit 11-1 / 2, the tag (tag X, tag Y) read from the way 0 and the way 1 in the tag cache memory 20B is transferred to a predetermined upper address (upper order) of the access address of the CPU 30. And the comparison result of coincidence / non-coincidence is supplied to the way predictor 12, the data selector 19, and the CPU 30.

データ選択部19は、データ・キャッシュメモリ20Aのウエイ0、1から読み出されたデータを受け、アドレス比較部11−1/2からの比較結果(一致/不一致)に基づき、一致した方のウエイから読み出したデータを、CPU30に供給する。すなわち、アドレス比較部11−1/2において、タグXとタグYのうちの一方と、CPU30からのアクセスアドレスの上位アドレスとが一致した場合、キャッシュ・ヒットとなり、データ・キャッシュメモリ20Aの読み出しデータX、データYのうち、ヒットしたウエイから読み出されたデータが、データ選択部19で選択され、CPU30に供給される。なお、キャッシュメモリがウエイを順番に指定して各ウエイから時分割で順次読み出す方式の場合、あるウエイ(例えばウエイ0)でキャッシュ・ヒットした場合、通常、残りのウエイ(例えばウエイ1)からのデータの読み出しは行われない。   The data selector 19 receives the data read from the ways 0 and 1 of the data cache memory 20A, and based on the comparison result (match / mismatch) from the address comparator 11-1 / 2, the matching way The data read from is supplied to the CPU 30. That is, in the address comparison unit 11-1 / 2, when one of the tag X and the tag Y matches the upper address of the access address from the CPU 30, a cache hit occurs and the read data of the data cache memory 20A The data read from the hit way out of X and data Y is selected by the data selection unit 19 and supplied to the CPU 30. In the case of a system in which the cache memory sequentially designates the ways and sequentially reads from each way in a time-sharing manner, when a cache hit occurs in a certain way (for example, way 0), the remaining ways (for example, way 1) are usually used. Data is not read out.

また図7では、データ・キャッシュメモリ20Aから読み出され、データ選択部19で選択されたデータがCPU30に読み出しデータとして出力されているが、CPU30からのアクセスアドレスの下位ビットを選択信号として入力し、ワードデータを選択するセレクタ(不図示)を備え、読み出されたデータ(複数ワード、複数バイト長)から、CPU30のアクセスアドレスに対応するワードデータを選択する構成としてもよい。   In FIG. 7, the data read from the data cache memory 20A and selected by the data selection unit 19 is output as read data to the CPU 30, but the lower bits of the access address from the CPU 30 are input as a selection signal. A selector (not shown) for selecting word data may be provided, and word data corresponding to the access address of the CPU 30 may be selected from the read data (multiple words, multiple bytes long).

図6、図7に示した構成において、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20B、アドレス1、2、データウエイ、タグウエイは共通のクロック1で駆動される。   6 and 7, the data cache memory 20A and the tag cache memory 20B, the addresses 1 and 2, the data way, and the tag way are driven by a common clock 1.

なお、特許文献1には、4ウエイ・セットアソシアティブ方式のキャッシュメモリのアドレスアレイコントローラと、データアレイコントローラに、クロック信号φ1、φ2(φ2はφ1と周波数は同一であり、φ1から所定の位相遅延している)を供給し、クロック周波数が高い場合において、アドレスアレイをクロックφ1で起動したのちアドレスアレイでのヒットチェックが確定する前の時刻に、クロックφ2でデータアレイの全てを起動し、ヒットチェックが確定したときに、データアレイ内のヒットしたウエイから読み出されたデータをデータ線に出力し、クロック周波数が低いときは、ヒットチェック完了後に、データアレイ内のヒットしたウエイのみを起動する構成とされる。すなわち、特許文献1では、クロック周波数が限界周波数よりもかなり高い場合、ヒットチェック完了時に、センスアンプによるデータの読み出し動作がほぼ完了し、クロック周波数が限界周波数よりも高い場合、センスアンプ起動前(データ読み出し前)にヒットチェックが完了する。低速動作の場合、データアレイ起動前に、ヒットチェックが確定しているため、ヒットした1つのウエイのみが動作することで消費電力を低減している。   Note that Patent Document 1 discloses that a clock signal φ1, φ2 (φ2 has the same frequency as φ1 and has a predetermined phase delay from φ1) to an address array controller of a 4-way set associative cache memory and a data array controller. When the clock frequency is high, the data array is activated with the clock φ2 at the time after the address array is activated with the clock φ1 and before the hit check with the address array is confirmed. When the check is confirmed, the data read from the hit way in the data array is output to the data line. When the clock frequency is low, only the hit way in the data array is activated after the hit check is completed. It is supposed to be configured. That is, in Patent Document 1, when the clock frequency is considerably higher than the limit frequency, the data read operation by the sense amplifier is almost completed upon completion of the hit check, and when the clock frequency is higher than the limit frequency, The hit check is completed before reading data. In the low-speed operation, the hit check is confirmed before the data array is activated, so that only one hit way operates to reduce power consumption.

特開平9−50403号公報Japanese Patent Laid-Open No. 9-50403

以下に関連技術の分析を与える。   The analysis of related technology is given below.

図6に示した構成においては、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20Bは共通のクロック1で駆動される。   In the configuration shown in FIG. 6, the data cache memory 20A and the tag cache memory 20B are driven by a common clock 1.

キャッシュメモリ制御装置と、キャッシュメモリ間の信号の配線遅延や出力遅延のばらつき等により、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20Bへのクロック1を等しく速くして高速動作させる手法では、タイミング・マージンの確保が困難となり、アクセス時間の短縮が限界となっている。   In the method of operating the clock 1 to the data cache memory 20A and the tag cache memory 20B equally fast and at high speed due to variations in the wiring delay and output delay of signals between the cache memory control device and the cache memory, the timing / It is difficult to secure a margin, and shortening of access time is the limit.

また、CPUからメインメモリへのアクセスの高速化のためのキャッシュメモリを、CPUの外部に構成する場合、キャッシュメモリ制御装置と、キャッシュメモリ間の動作速度に限界がある。   Further, when a cache memory for speeding up access from the CPU to the main memory is configured outside the CPU, the operation speed between the cache memory control device and the cache memory is limited.

さらに、データを128ビット等の多ビットで構成する場合、キャッシュメモリとして機能するSSRAMが複数必要となり(図6参照)、キャッシュメモリ制御装置と複数のSSRAM(複数のデータ・キャッシュメモリ20A)の間のタイミング設計(タイミングスキュー、データスキュー)が厳しくなる傾向にある。例えば図6において、キャッシュメモリ制御装置10’と4個のデータ・キャッシュメモリ20A間のデータ信号、クロック信号等のスキューや、そのばらつき等を抑えることは、クロック1の高速化とともに困難となる。   Further, when the data is composed of multiple bits such as 128 bits, a plurality of SSRAMs functioning as a cache memory are required (see FIG. 6), and between the cache memory control device and a plurality of SSRAMs (a plurality of data cache memories 20A). The timing design (timing skew, data skew) tends to be severe. For example, in FIG. 6, it is difficult to suppress the skew of the data signal and the clock signal between the cache memory control device 10 ′ and the four data cache memories 20 </ b> A, the variation thereof, etc. as the clock 1 becomes faster.

そして、データ・キャッシュメモリ20Aとタグ・キャッシュメモリ20Bとで、同じ速度(動作周波数)のクロックとアドレスを用いているため、タグ・キャッシュメモリのSSRAMも、データ・キャッシュメモリと同一のタイミング設計とする必要があり、さらなる高速化に限界となっている。   Since the data cache memory 20A and the tag cache memory 20B use the same clock (clock frequency) and address, the tag cache memory SSRAM has the same timing design as the data cache memory. There is a limit to further speedup.

したがって、本発明の目的は、タイミング・マージンを確保しつつ、高速化を可能としキャッシュメモリのアクセス時間の短縮を可能とするキャッシュメモリ制御装置と方法を提供することにある。   Accordingly, it is an object of the present invention to provide a cache memory control device and method capable of increasing the speed and reducing the access time of the cache memory while ensuring a timing margin.

前記課題の少なくとも1つを解決するため、本発明が概略以下の構成とされる。   In order to solve at least one of the above-described problems, the present invention is generally configured as follows.

本発明の1つの側面によれば、タグを格納するタグ・キャッシュメモリと、データを格納するデータ・キャッシュメモリと、を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置であって、前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部と、前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部と、CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定するアドレス比較部と、を備え、前記第2のクロック信号の周波数は前記第1のクロック信号の周波数よりも高く設定され、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリの一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリの複数のウエイからのタグの読み出しが完了するように制御するキャッシュ制御装置が提供される。   According to one aspect of the present invention, there is provided a cache memory control device that controls a set-associative cache memory having a plurality of ways, including a tag cache memory that stores tags and a data cache memory that stores data. The data cache memory is driven by the first clock signal, and the first address signal and the data way obtained by synchronizing the cache address and the way information with the first clock signal, respectively. A first clock synchronizer for supplying the tag cache memory, a second address signal obtained by driving the tag cache memory with a second clock signal, and synchronizing the cache address and way information with the second clock signal, respectively. A second clock synchronization for supplying the tag way to the tag cache memory An address comparison unit that compares a predetermined bit field corresponding to the tag in the access address of the CPU and a tag read from the tag cache memory to determine match / mismatch, and the second The frequency of the clock signal is set higher than the frequency of the first clock signal, and the tag read time from each way of the tag cache memory is the data read from the corresponding way of the data cache memory. Before the data is read out from one way of the data cache memory, the tag cache memory and the plurality of ways of the data cache memory are sequentially read in a predetermined order. Reading tags from multiple ways in the tag cache memory is complete Cache controller is provided to control the.

本発明の他の側面によれば、タグを格納するタグ・キャッシュメモリと、データを格納するデータ・キャッシュメモリと、を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御方法であって、
前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給し、
前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給し、
CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定し、
前記第2のクロック信号の周波数を前記第1のクロック信号の周波数よりも高く設定し、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリの一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリの複数のウエイからのタグの読み出しが完了するように制御するキャッシュメモリ制御方法が提供される。
According to another aspect of the present invention, there is provided a cache memory control method for controlling a multi-way set associative cache memory including a tag cache memory for storing a tag and a data cache memory for storing data. And
The data cache memory is driven by a first clock signal, and a first address signal and a data way obtained by synchronizing the cache address and the way information with the first clock signal are supplied to the data cache memory. And
The tag cache memory is driven by a second clock signal, and a second address signal and a tag way obtained by synchronizing the cache address and way information with the second clock signal are supplied to the tag cache memory. And
A predetermined bit field corresponding to a tag in the access address of the CPU is compared with a tag read from the tag cache memory to determine a match / mismatch,
The frequency of the second clock signal is set to be higher than the frequency of the first clock signal, and the tag read time from each way of the tag cache memory is from the corresponding way of the data cache memory. Data is read from one way of the data cache memory by sequentially reading out the tag cache memory and the plurality of ways of the data cache memory in a predetermined order, which is faster than the data read time. Before, a cache memory control method is provided for controlling the reading of tags from a plurality of ways of the tag cache memory to be completed.

本発明によれば、タイミング・マージンを確保しつつ高速化することで、キャッシュメモリのアクセス時間を短縮することができる。   According to the present invention, the access time of the cache memory can be shortened by increasing the speed while securing the timing margin.

本発明の例示的な一実施形態の構成を示す図である。It is a figure which shows the structure of one exemplary embodiment of this invention. 本発明の例示的な一実施形態のキャッシュメモリ制御装置の内部構成を示す図である。It is a figure which shows the internal structure of the cache memory control apparatus of one exemplary embodiment of this invention. 本発明の例示的な一実施形態のタイミング動作の一例を示すタイミング図である。FIG. 6 is a timing diagram illustrating an example of a timing operation of an exemplary embodiment of the invention. 本発明の一実施形態のシステム構成の一例を示す図である。It is a figure which shows an example of the system configuration | structure of one Embodiment of this invention. 本発明の一実施形態のシステム構成の別の例を示す図である。It is a figure which shows another example of the system configuration | structure of one Embodiment of this invention. 関連技術としてキャッシュメモリとキャッシュメモリ制御装置の典型的な構成の一例を示す図である。It is a figure which shows an example of the typical structure of a cache memory and a cache memory control apparatus as related technology. 関連技術のキャッシュメモリ制御装置の内部構成の一例を示す図である。It is a figure which shows an example of the internal structure of the cache memory control apparatus of related technology. 関連技術のタイミング動作の一例を示すタイミング図である。It is a timing diagram which shows an example of the timing operation | movement of related technology.

本発明の一つの態様によれば、キャッシュメモリ制御装置において、タグ・キャッシュメモリを駆動するクロックとアドレスを、データ・キャッシュメモリを駆動するクロックとアドレスから分離し、タグ・キャッシュメモリに対するアクセスを高速化することで、キャッシュメモリへのアクセス時間を短縮する。本発明の一つの態様においては、複数ウエイ(nウエイ、nは2、4、8・・のうちの所定の整数)のセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置は、データ・キャッシュメモリ(20A)を第1のクロック信号(クロック1)で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号(アドレス)1とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部(16A)と、タグ・キャッシュメモリ(20B)を第2のクロック信号(クロック2)で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号(アドレス2)とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部(16B)と、CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出されたタグとを比較し一致/不一致を判定するアドレス比較部(11−1/2)と、を備え、前記第2のクロック信号(クロック2)の周波数は前記第1のクロック信号(クロック1)の周波数よりも高く設定され、前記タグ・キャッシュメモリ(20B)の各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリ(20A)の対応するウエイからデータの読み出し時間よりも短縮され、前記タグ・キャッシュメモリ(20B)及び前記データ・キャッシュメモリ(20A)の複数のウエイに対して所定の順番で順次読み出しを行い、前記データ・キャッシュメモリ(20A)の一のウエイからデータが読み出される前に、前記タグ・キャッシュメモリ(20B)の複数のウエイからのタグの読み出しが完了するように制御する。   According to one aspect of the present invention, in the cache memory control device, the clock and address for driving the tag cache memory are separated from the clock and address for driving the data cache memory, so that the access to the tag cache memory can be performed at high speed. By shortening, the access time to the cache memory is shortened. In one aspect of the present invention, a cache memory control apparatus for controlling a set associative cache memory of a plurality of ways (n ways, n is a predetermined integer of 2, 4, 8,...) Includes a data cache The memory (20A) is driven by the first clock signal (clock 1), and the first address signal (address) 1 and the data way obtained by synchronizing the cache address and the way information with the first clock signal, respectively, The first clock synchronizer (16A) for supplying the data cache memory and the tag cache memory (20B) are driven by the second clock signal (clock 2), and the cache address and the way information are respectively supplied. The second address signal (address 2) synchronized with the clock signal 2 and the tag way are sent to the tag cache memory. The second clock synchronization unit (16B) to be supplied to the memory, a predetermined bit field corresponding to the tag in the access address of the CPU, and the tag read from the tag cache memory are compared and matched / mismatched. An address comparison unit (11-1 / 2) for determination, wherein the frequency of the second clock signal (clock 2) is set higher than the frequency of the first clock signal (clock 1), and the tag The tag read time from each way of the cache memory (20B) is shorter than the data read time from the corresponding way of the data cache memory (20A), and the tag cache memory (20B) and the data The data cache is sequentially read out in a predetermined order from a plurality of ways in the cache memory (20A). Before the data is read out from one way of the memory (20A), the tag cache memory (20B) is controlled so that reading of the tags from the plurality of ways is completed.

本発明の一つの態様によれば、かかる構成により、タグ・キャッシュメモリのタイミング設計を、データ・キャッシュメモリから独立させることができる。また、タグ・キャッシュメモリをキャッシュメモリ制御装置の近くに配置することが可能となり、クロック周波数を上げることが可能となる。   According to one aspect of the present invention, such a configuration makes it possible to make the timing design of the tag cache memory independent of the data cache memory. Further, the tag cache memory can be arranged near the cache memory control device, and the clock frequency can be increased.

タグ・キャッシュメモリを駆動するクロック信号の周波数を高速にしても、データ・キャッシュメモリは、タグ・キャッシュメモリを駆動するクロック信号よりも低速のクロック信号で駆動すればよいことから、複数のデータ・キャッシュメモリの信号配線遅延、出力遅延、スキュー等のタイミング・マージンを緩和し、タイミング設計を容易化している。またキャッシュメモリ制御装置の近くに配置されるタグ・キャッシュメモリでの信号の配線遅延や出力遅延は、データ・キャッシュメモリとは別個に、そのタイミング設計時点で考慮すればよい。このように、タグ・キャッシュメモリの動作クロックを速くすることによって、キャッシュメモリアクセス全体の高速化を実現可能としている。以下、実施形態に即して説明する。   Even if the frequency of the clock signal for driving the tag cache memory is increased, the data cache memory may be driven with a clock signal that is slower than the clock signal for driving the tag cache memory. Timing margins such as signal wiring delay, output delay, and skew of the cache memory are eased to facilitate timing design. In addition, the signal wiring delay and output delay in the tag cache memory arranged near the cache memory control device may be considered at the time of timing design separately from the data cache memory. As described above, by speeding up the operation clock of the tag cache memory, it is possible to increase the speed of the entire cache memory access. Hereinafter, description will be given in accordance with the embodiment.

図1は、本発明の一実施形態の構成を示す図である。図1は、キャッシュメモリ制御装置とキャッシュメモリの接続構成の一例が示されている。特に制限されないが、キャッシュメモリ制御装置10は、図4に示すように、CPU30内部に構成される。なお、図1において、図6の要素と同一又は同等の要素には同一の参照番号が付されている。   FIG. 1 is a diagram showing a configuration of an embodiment of the present invention. FIG. 1 shows an example of a connection configuration between a cache memory control device and a cache memory. Although not particularly limited, the cache memory control device 10 is configured inside the CPU 30 as shown in FIG. In FIG. 1, the same or equivalent elements as those in FIG. 6 are denoted by the same reference numerals.

各キャッシュメモリ20A、20Bは、SSRAM(Synchronous SRAM)で構成され、データを格納する4つのデータ・キャッシュメモリ20Aと、タグを格納するタグ・キャッシュメモリ20Bを備えている。各キャッシュメモリ20A、20Bは図6の構成と同一である。   Each of the cache memories 20A and 20B is configured by an SSRAM (Synchronous SRAM), and includes four data cache memories 20A for storing data and a tag cache memory 20B for storing tags. Each cache memory 20A, 20B has the same configuration as that of FIG.

図1を参照すると、本実施形態においては、図6と相違して、キャッシュメモリ制御装置10は、4つのキャッシュメモリ20Aに、クロック1、アドレス1、データウエイの各信号を共通に供給し、4つのデータ・キャッシュメモリ20Aの共通に指定されたウエイと、データの入出力をパラレルに行う。   Referring to FIG. 1, in this embodiment, unlike FIG. 6, the cache memory control apparatus 10 supplies clock 1, address 1, and data way signals to four cache memories 20A in common. Data input / output is performed in parallel with the way designated in common in the four data cache memories 20A.

キャッシュメモリ制御装置10は、タグ・キャッシュメモリ20Bに、クロック2、アドレス2、タグウエイを供給し、タグの入出力を行う。タグ・キャッシュメモリ20Bのクロック2とアドレス2を、データ・キャッシュメモリ20Aのクロック1とアドレス1と分離し、タグ・キャッシュメモリ20Bをクロック1よりも高速なクロック2で駆動する。   The cache memory control device 10 supplies the tag cache memory 20B with clock 2, address 2, and tag way, and inputs / outputs tags. The clock 2 and address 2 of the tag cache memory 20B are separated from the clock 1 and address 1 of the data cache memory 20A, and the tag cache memory 20B is driven by the clock 2 faster than the clock 1.

図1において、タグ・キャッシュメモリ20Bに格納されるタグのビット幅に対して、データのキャッシュラインのビット幅が大きいため、1つのタグ・キャッシュメモリ20Bに対し、4つのデータ・キャッシュメモリ20Aが並置されている。特に制限されないが、図1の構成は、2ウエイ・セット・アソシエイティブ方式のキャッシュメモリとする。   In FIG. 1, since the bit width of the data cache line is larger than the bit width of the tag stored in the tag cache memory 20B, there are four data cache memories 20A for one tag cache memory 20B. It is juxtaposed. Although not particularly limited, the configuration of FIG. 1 is a two-way set associative cache memory.

キャッシュメモリ制御装置10から、データ・キャッシュメモリ20Aに出力されるデータウエイとアドレス1で、指定されたウエイにおけるインデックス(データを格納したロケーション)を指定する。タグ・キャッシュメモリ20Bに出力されるタグウエイとアドレス2で、指定されたウエイにおけるインデックス(タグを格納したロケーション)を指定する。   The index (location storing the data) in the specified way is designated by the data way output from the cache memory control device 10 to the data cache memory 20A and the address 1. The tag way output to the tag cache memory 20B and the address 2 specify the index (location storing the tag) in the designated way.

CPUのリードアクセス時、キャッシュメモリ制御装置10は、CPUのアクセスアドレスからキャッシュアクセス用のアドレスを生成し、タグ・キャッシュメモリ20Bからタグを読み出す。その際、タグ・キャッシュメモリ20Bに供給されるクロック2、アドレス2は、データ・キャッシュメモリ20Aに供給されるクロック1、アドレス1よりも高速であるため(クロック2はクロック1の周波数を例えば2逓倍したもの)、タグ・キャッシュメモリ20Bにおいて、ウエイからのタグの読み出しは、データの読み出し時間よりも短時間に行われる。例えばウエイ0のデータ0が出力される前に、ウエイ0のタグが読み出され、読み出されたタグと、CPUからの所定の上位アドレスとを比較することで、キャッシュのヒット/ミスヒットを判定する。   At the time of CPU read access, the cache memory control device 10 generates an address for cache access from the access address of the CPU and reads the tag from the tag cache memory 20B. At that time, the clock 2 and address 2 supplied to the tag cache memory 20B are faster than the clock 1 and address 1 supplied to the data cache memory 20A (clock 2 has a frequency of, for example, 2 In the tag cache memory 20B, the tag is read from the way in a shorter time than the data read time. For example, before the data 0 of the way 0 is output, the tag of the way 0 is read, and the hit / miss hit of the cache is detected by comparing the read tag with a predetermined upper address from the CPU. judge.

キャッシュメモリ制御装置10は、タグ・キャッシュメモリ20Bのウエイ0又はウエイ1のタグが、CPUからの所定の上位アドレスと一致した時(キャッシュヒット時)には、データ・キャッシュメモリ20Aの該当ウエイから読み出されたデータ(キャッシュラインデータ又は、下位ビットアドレスで指定されたワードデータ)をCPUに転送する。ミスヒット時(ウエイ0、1のいずれのタグも、CPUからの所定の上位アドレスと不一致の場合)には、不図示のメインメモリにアクセスしてデータを読み出し、データ・キャッシュメモリ20Aの所定のウエイのアドレスにデータを格納し、タグ・キャッシュメモリ20Bにタグを設定し、CPUに転送する。CPUからのライトアクセス時に、選択されたウエイのタグ・キャッシュメモリの該当アドレスにタグを格納し、データキャッシュの該当ウエイの該当アドレスにデータを書き込み、ライトスルー方式またはライトバック方式でメインメモリにデータを書き込む。   When the tag of way 0 or way 1 of the tag cache memory 20B matches the predetermined upper address from the CPU (at the time of cache hit), the cache memory control device 10 starts from the corresponding way of the data cache memory 20A. The read data (cache line data or word data specified by the lower bit address) is transferred to the CPU. At the time of a miss hit (when both tags of way 0 and 1 do not match a predetermined upper address from the CPU), the main memory (not shown) is accessed to read the data, and the data cache memory 20A has a predetermined Data is stored at the address of the way, a tag is set in the tag cache memory 20B, and transferred to the CPU. During write access from the CPU, the tag is stored in the corresponding address of the tag cache memory of the selected way, the data is written to the corresponding address of the corresponding way of the data cache, and the data is written to the main memory by the write-through method or the write-back method Write.

図2は、図1の2ウエイ・セット・アソシエイティブ方式のキャッシュメモリ制御装置10の構成の一例を模式的に示す図である。なお、図2のキャッシュメモリにおいて、ウエイ毎に、タグ、データ、フラグが設けられるが、フラグ情報は省略されている。   FIG. 2 is a diagram schematically illustrating an example of the configuration of the two-way set associative cache memory control device 10 of FIG. In the cache memory of FIG. 2, tags, data, and flags are provided for each way, but flag information is omitted.

ウエイ予測器12は、ウエイを選択する。キャッシュアドレス生成部13は、CPUの下位アドレスから、キャッシュアドレスを生成して出力する。データウエイ生成部14は、タグウエイ生成部15は、ウエイ予測器12の出力を受け、データウエイ、タグウエイを出力する。   The way predictor 12 selects a way. The cache address generation unit 13 generates and outputs a cache address from the lower address of the CPU. The dataway generation unit 14 receives the output of the way predictor 12 and the tagway generation unit 15 outputs a dataway and a tagway.

第1のクロック同期部16Aは、CPU30のクロック生成部31からのクロック信号CKを受け、該クロック信号の周波数を逓倍し、データ・キャッシュメモリ20A駆動用の高速のクロック1(第1のクロック信号)を生成する。また、第1のクロック同期部16Aは、キャッシュアドレス生成部13から出力されるキャッシュアドレスと、ウエイ予測器12で決定されたウエイ情報を入力し、該クロック1に同期して、アドレス1(第1のアドレス信号)とデータウエイを、データ・キャッシュメモリ20Aに出力し、該クロック1を、データ・キャッシュメモリ20Aに与える。データ・キャッシュメモリ20Aは、第1のクロック同期部16Aからのクロック1で駆動される。   The first clock synchronizer 16A receives the clock signal CK from the clock generator 31 of the CPU 30, multiplies the frequency of the clock signal, and drives the high-speed clock 1 (first clock signal for driving the data cache memory 20A). ) Is generated. The first clock synchronizer 16A receives the cache address output from the cache address generator 13 and the way information determined by the way predictor 12, and synchronizes with the clock 1 to address 1 (first 1 address signal) and data way are output to the data cache memory 20A, and the clock 1 is applied to the data cache memory 20A. The data cache memory 20A is driven by the clock 1 from the first clock synchronizer 16A.

第2のクロック同期部16Bは、クロック1の周波数を予め定められた逓定数(例えば2)で逓倍したクロック2(第2のクロック信号)を生成し、キャッシュアドレス生成部13から出力されるキャッシュアドレスと、ウエイ予測器12で決定されたウエイ情報を入力し、該クロック1に同期して、アドレス2(第2のアドレス信号)とタグウエイをタグ・キャッシュメモリ20Bに供給し、該クロック2をタグ・キャッシュメモリ20Bに与える。タグ・キャッシュメモリ20Bは該クロック2で駆動される。   The second clock synchronization unit 16B generates a clock 2 (second clock signal) obtained by multiplying the frequency of the clock 1 by a predetermined multiplication constant (for example, 2), and the cache output from the cache address generation unit 13 The address and the way information determined by the way predictor 12 are input, and in synchronization with the clock 1, the address 2 (second address signal) and the tag way are supplied to the tag cache memory 20B. This is given to the tag cache memory 20B. The tag cache memory 20B is driven by the clock 2.

アドレス比較部11−1/2は、タグ・キャッシュメモリ20Bのウエイ0、1から読み出されたタグX、Y(レジスタ17−1/2に格納される)を、CPU30からのアクセスアドレスの上位アドレス(タグに対応する上位のビットフィールド)と比較し、一致・不一致を判定する。そして、一致・不一致の比較結果を、ウエイ予測器12と、CPU30とデータ選択部19に供給する。   The address comparison unit 11-1 / 2 converts the tags X and Y (stored in the register 17-1 / 2) read from the ways 0 and 1 of the tag cache memory 20B to the upper address of the access address from the CPU 30. Compare with the address (upper bit field corresponding to the tag) to determine whether it matches or not. Then, the comparison result of coincidence / mismatch is supplied to the way predictor 12, the CPU 30, and the data selection unit 19.

データ選択部19は、データ・キャッシュメモリ20Aのウエイ0、1から読み出されたデータを受け、アドレス比較部11−1/2からの比較結果に基づき、一致した方のウエイから読み出したデータを、CPU30に供給する。すなわち、アドレス比較部11−1/2において、タグXとタグYのうちの一方と、CPU30からのアクセスアドレスの上位アドレスが一致した場合、キャッシュヒットとなり、データ・キャッシュメモリ20Aの読み出しデータX、データYのうち、ヒットしたウエイから読み出されたデータが、データ選択部19で選択され、CPU30に供給される。なお、特に制限されないが、ここでは、キャッシュメモリは、指定された順番でウエイからタグ、データを順次読み出す方式とされ、あるウエイ(例えばウエイ0)でヒットした場合、残りのウエイ(例えばウエイ1)からのデータの読み出しは行われない。   The data selection unit 19 receives the data read from the ways 0 and 1 of the data cache memory 20A, and based on the comparison result from the address comparison unit 11-1 / 2, reads the data read from the matching way. , Supplied to the CPU 30. That is, in the address comparison unit 11-1 / 2, when one of the tag X and the tag Y matches the upper address of the access address from the CPU 30, a cache hit occurs, and the read data X, Of the data Y, data read from the hit way is selected by the data selection unit 19 and supplied to the CPU 30. Although not particularly limited, here, the cache memory is configured to sequentially read out tags and data from the way in a specified order. When a hit is made in a certain way (for example, way 0), the remaining way (for example, way 1) is used. No data is read out from ().

なお、図2においてレジスタ17−1/2は、クロック2をサンプリングクロックとして、タグ・キャッシュメモリ20Bからの読み出しデータTagX、TagYをキャプチャする。一方、レジスタ(データレジスタ)18−1/2は、クロック1をサンプリングクロックとして、データ・キャッシュメモリ20Aからの読み出しデータ、データYをキャプチャする。   In FIG. 2, the register 17-1 / 2 captures the read data TagX and TagY from the tag cache memory 20B using the clock 2 as a sampling clock. On the other hand, the register (data register) 18-1 / 2 captures read data and data Y from the data cache memory 20A using the clock 1 as a sampling clock.

なお、図2では、簡単のため、データ・キャッシュメモリ20Aから読み出されデータ選択部19で選択されたキャシュラインのデータがそのままCPU30に読出しデータとして出力されているが、読み出されたキャッシュラインからワードデータを選択するセレクタを備え、アクセスアドレスに対応するワードデータをCPU30に供給する構成としてもよい。   In FIG. 2, for the sake of simplicity, the cache line data read from the data cache memory 20A and selected by the data selection unit 19 is output as read data to the CPU 30 as it is. It is also possible to provide a selector for selecting word data from the above and supply word data corresponding to the access address to the CPU 30.

以下、図2の回路動作の説明を行う。キャッシュメモリ制御装置10にCPU30が必要とするデータのアクセスアドレスが入力されると、上位アドレスと下位アドレスに分離される。   The circuit operation of FIG. 2 will be described below. When an access address of data required by the CPU 30 is input to the cache memory control device 10, it is separated into an upper address and a lower address.

キャッシュアドレス生成部13は、CPU30のアクセスアドレスの下位アドレスから、タグ・キャッシュメモリ20Bとデータ・キャッシュメモリ20Aのアドレスを生成する。   The cache address generation unit 13 generates the addresses of the tag cache memory 20B and the data cache memory 20A from the lower address of the access address of the CPU 30.

ウエイ予測器12で選択されたウエイの情報から、データウエイ生成部14は、データウエイを生成し、タグウエイ生成部14はタグウエイを生成する。ウエイ予測器12において、ウエイ0と1のどちらを先にリードするかは、直前(最後)に選択されたウエイを選択する等の条件で決定するが、ここでは、ウエイの0を先に選択したと仮定する。   From the way information selected by the way predictor 12, the data way generator 14 generates a data way, and the tag way generator 14 generates a tag way. In the way predictor 12, which of the ways 0 and 1 is read first is determined by a condition such as selecting the way selected immediately before (last), but here, the way 0 is selected first. Suppose you did.

ウエイ0は、タグウエイ0のTagXと、データウエイ0のDataXのメモリ領域に格納されている。また、ウエイ1は、タグウエイ1のTagYと、データウエイ1のDataYのメモリ領域に格納されている。   Way 0 is stored in the memory area of Tag Way 0 of Tag Way 0 and Data X of Data Way 0. The way 1 is stored in the memory area of TagY of the tagway 1 and DataY of the data way 1.

キャッシュアドレス生成部13、データウエイ生成部14で生成されたアドレス、データウエイは、第1のクロック同期部16Aで、キャッシュメモリをアクセスするためのクロック1(CPU30のクロック生成部31からのクロックCKを逓倍したクロック)と同期され、アドレス1、データウエイとして出力され、最初のアドレスサイクルで、データウエイの0に格納されるDataXのリード動作を実行する。   The address and data way generated by the cache address generation unit 13 and the data way generation unit 14 are the clock 1 for accessing the cache memory by the first clock synchronization unit 16A (the clock CK from the clock generation unit 31 of the CPU 30). DataX is output as address 1 and data way, and in the first address cycle, a DataX read operation stored in data way 0 is executed.

キャッシュアドレス生成部13、タグウエイ生成部15で生成されたアドレス、タグウエイは、第2のクロック同期部16Bで、キャッシュメモリをアクセスするためのクロック2(クロック1を逓倍したクロック)と同期され、アドレス2、タグウエイとして出力され、最初のアドレスサイクルで、タグウエイの0に格納されるTagX、タグウエイの1に格納されるTagYのリード動作を実行する。   The addresses and tagways generated by the cache address generation unit 13 and the tagway generation unit 15 are synchronized with the clock 2 (clock obtained by multiplying the clock 1) for accessing the cache memory by the second clock synchronization unit 16B. 2. Output as tagway, and in the first address cycle, read operation of TagX stored in tagway 0 and TagY stored in tagway 1 is executed.

このようなリード動作で読み出されたデータは、キャッシュメモリ制御装置10のデータX、データYを格納するレジスタ18−1/2に格納され、タグはタグX、タグYを格納するレジスタ17−1/2に格納される。   Data read by such a read operation is stored in the register 18-1 / 2 storing the data X and data Y of the cache memory control device 10, and the tag is the register 17- storing the tag X and tag Y. Stored in 1/2.

データ・キャッシュメモリに、CPU30が必要とするデータが格納されているか否かは、タグ・キャッシュメモリ20Bに格納されたタグであるTagX、TagYをリードし、アドレス比較部11−1/2でCPUのアクセスアドレスの上位アドレスとの一致・不一致をチェックすることによって判断される。   Whether the data required by the CPU 30 is stored in the data cache memory is determined by reading the tags TagX and TagY stored in the tag cache memory 20B, and the address comparing unit 11-1 / 2 reads the CPU. This is determined by checking whether the access address matches or does not match the higher address.

TagX、TagYには、CPU30が必要とするデータのアクセスアドレスの上位アドレスが格納されている可能性があり、CPU30からのアクセスアドレスが入力された時に、分離した上位アドレスとTagXが一致する場合には、DataXに、CPU30が必要とするデータが格納されている、分離した上位アドレスと、TagYが一致する場合は、DataYにCPUが必要とするデータが格納されている。   In TagX and TagY, there is a possibility that the upper address of the access address of the data required by the CPU 30 may be stored. When the access address from the CPU 30 is input, the separated upper address and TagX match. In DataX, the data required by the CPU 30 is stored. When the separated higher address matches TagY, the data required by the CPU is stored in DataY.

CPU30のアクセスアドレスの上位アドレスが、TagX、TagYの両方と不一致の場合、データ・キャッシュメモリ20Aには、CPU30が必要とするデータが格納されていないことになる。すなわち、アドレス比較部11−1/2の出力がともに不一致の場合、不図示のメインメモリからデータが読み出され、ウエイ予測器12で指定されたウエイの、該当アドレスに、メインメモリからの読み出しデータが格納され、タグ・キャッシュメモリの当該ウエイの該当アドレス(アドレス1とデータウエイ信号で指示される格納位置)に、CPUのアクセスアドレスの上位アドレス(タグアドレス)が格納され、該読み出しデータは、CPU30に供給される。   If the upper address of the access address of the CPU 30 does not match both TagX and TagY, the data cache memory 20A does not store data required by the CPU 30. That is, when the outputs of the address comparators 11-1 / 2 do not match, the data is read from the main memory (not shown), and the way specified by the way predictor 12 is read from the main memory to the corresponding address. The data is stored, and the upper address (tag address) of the CPU access address is stored in the corresponding address of the corresponding way in the tag cache memory (address 1 and the storage location indicated by the data way signal). , Supplied to the CPU 30.

図3は、図1、図2を参照して説明した本発明の一実施形態のキャッシュメモリのリードのタイミング動作の一例を示す図である。図3には、図2のウエイ予測器12の制御よりウエイ0、ウエイ1の順で、タグTagX、TagYを読み出し、CPUの上位アドレス(タグアドレス)とのアドレス比較の結果、ウエイ0のTagXは不一致、ウエイ1のTagYが一致した場合の動作が示されている。なお、図3において、キャッシュメモリのリード動作とクロックサイクルの関係(レーテンシ等)は理解を容易とするために模式的に表されている。また、図3では、説明の簡単のため、データがクロックの立ち上がりエッジに同期して出力される構成とされているが、SSRAMにおいて立ち上がりエッジと立ち下がりエッジ等に同期してデータが転送されるDDR(Double Data Rate)型等であってもよいことは勿論である。   FIG. 3 is a diagram showing an example of the read timing operation of the cache memory according to the embodiment of the present invention described with reference to FIGS. In FIG. 3, tags TagX and TagY are read in the order of way 0 and way 1 under the control of the way predictor 12 of FIG. 2, and the result of address comparison with the upper address (tag address) of the CPU is the result. Shows the operation when there is no match and Tag 1 of way 1 matches. In FIG. 3, the relationship between the read operation of the cache memory and the clock cycle (latency, etc.) is schematically shown for easy understanding. In FIG. 3, for simplicity of explanation, the data is output in synchronization with the rising edge of the clock, but the data is transferred in synchronization with the rising edge and the falling edge in the SSRAM. Of course, a DDR (Double Data Rate) type or the like may be used.

図3に示す例では、図2の第2のクロック同期部16Bから出力されるクロック2は、第1のクロック同期部16Aから出力されるクロック1の2倍の周波数とし(クロック2はクロック1を2逓倍した信号)、タグ・キャッシュメモリ20Bは、データ・キャッシュメモリ20Aよりも2倍高速に動作する。クロック1の立ち上がりエッジと立ち下がりエッジは、クロック2の立ち上がりエッジに同期している。   In the example shown in FIG. 3, the clock 2 output from the second clock synchronization unit 16B in FIG. 2 has a frequency twice that of the clock 1 output from the first clock synchronization unit 16A (the clock 2 is the clock 1). The tag cache memory 20B operates twice as fast as the data cache memory 20A. The rising edge and falling edge of clock 1 are synchronized with the rising edge of clock 2.

図3において、データ・キャッシュメモリ20Aでは、アドレス1とデータウエイとにより、データアクセス用のアドレスが生成され、タグ・キャッシュメモリ20Bでは、アドレス2とタグウエイとからタグのアクセス用アドレスが生成される。   In FIG. 3, in the data cache memory 20A, an address for data access is generated from the address 1 and the data way, and in the tag cache memory 20B, an address for tag access is generated from the address 2 and the tag way. .

タグ・キャッシュメモリ20Bには、時刻t0から始まるクロック2の第1のサイクルにおいて、クロック2の立ち上がりエッジに同期して、アドレス2のAddr0と、タグウエイ(ウエイ0)TwayX、次の第2のサイクルにおいて、クロック2の立ち上がりエッジに同期して、アドレス2のAddr1とタグウエイ(ウエイ1)TwayYが入力され、タイミングt1からt2のクロック2の第3、第4のサイクルにおいて、ウエイ0、ウエイ1からの読み出しデータであるタグTagX、TagYが順次読み出され、レジスタ17−1、17−2に保持される。本実施形態によれば、図6、図7のようにタグ・キャッシュメモリをクロック1で駆動する比較例(図8を参照して後述される)よりも、TagX、TagYの読み出しが速くなる。   In the first cycle of clock 2 starting from time t0, the tag cache memory 20B synchronizes with the rising edge of clock 2, Addr0 of address 2, tagway (way 0) TwayX, and the next second cycle. In synchronization with the rising edge of clock 2, Addr1 of address 2 and tagway (way 1) TwayY are input, and from way 0 and way 1 in the third and fourth cycles of clock 2 from timing t1 to t2. The tags TagX and TagY, which are read data, are sequentially read out and held in the registers 17-1 and 17-2. According to the present embodiment, reading of TagX and TagY becomes faster than the comparative example (described later with reference to FIG. 8) in which the tag cache memory is driven by the clock 1 as shown in FIGS.

一方、データ・キャッシュメモリ20Aには、タイミングt0から始まるクロック1の第1のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr0とデータウエイ(ウエイ0)DwayXが入力され、タイミングt1から始まるクロック1の第2のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr1とデータウエイ(ウエイ0)DwayXが入力される。   On the other hand, Addr0 of address 1 and dataway (way 0) DwayX are input to the data cache memory 20A in synchronization with the rising edge of clock 1 in the first cycle of clock 1 starting from timing t0. In the second cycle of clock 1 starting from t1, Addr1 of address 1 and data way (way 0) DwayX are input in synchronization with the rising edge of clock 1.

そして、タイミングt2、t3から始まるクロック1の第3、第4のサイクル(クロック2の5、7番目のサイクルに該当する)に、データ・キャッシュメモリ20AのDwayX(ウエイ0)からの読み出しデータであるDataX0、DataX1が順次出力される。本実施形態では、TagX、TagYの読み出しは、タイミングt2からDataX0、DataX1の読み出しサイクル前の完了している。なお、図3に示す例では、データ・キャッシュメモリ20Aから読み出されるデータは、タグ・キャッシュメモリ20Bから読み出されるタグよりもビット幅が大であり、2回に分けて順次時分割で読み出され、DataX0、DataX1は、1個のキャッシュメモリ20Aに格納されるデータ単位を構成している。図2のレジスタ18−1に、DataX0、DataX1が保持される。   Then, in the third and fourth cycles of clock 1 starting from timings t2 and t3 (corresponding to the fifth and seventh cycles of clock 2), the data read from DwayX (way 0) of data cache memory 20A Certain DataX0 and DataX1 are sequentially output. In the present embodiment, the readout of TagX and TagY is completed before the readout cycle of DataX0 and DataX1 from timing t2. In the example shown in FIG. 3, the data read from the data cache memory 20A has a bit width larger than that of the tag read from the tag cache memory 20B, and is read in time division in two steps. , DataX0, DataX1 constitute a data unit stored in one cache memory 20A. DataX0 and DataX1 are held in the register 18-1 in FIG.

アドレス比較部11−1/2で、CPUの上位アドレスとの比較が行われ、ウエイ0のタグTagXは不一致、ウエイ1のタグTagYは一致(キャッシュヒット)していることが判別される。アドレス比較部11−1/2での比較結果を受け、ウエイ予測器12、キャッシュアドレス生成部13、データウエイ生成部14から、アドレス1のAddr0、Addr1、データウエイDwayYが生成され、データ・キャッシュメモリ20Aに供給される(タイミングtn〜tn+1)。   The address comparison unit 11-1 / 2 performs a comparison with the upper address of the CPU, and determines that the tag TagX of way 0 does not match and the tag TagY of way 1 matches (cache hit). In response to the comparison result in the address comparison unit 11-1 / 2, the address predictor 12, the cache address generation unit 13, and the data way generation unit 14 generate Addr0, Addr1, and data way DwayY of address 1, and the data cache It is supplied to the memory 20A (timing tn to tn + 1).

そして、データ・キャッシュメモリ20Aのウエイ1からの読み出しデータであるDataY0、DataY1が順次出力され(タイミングtn+2〜tn+4)、図2のレジスタ18−2に、DataY0、DataY1が保持される。   Then, DataY0 and DataY1 as read data from the way 1 of the data cache memory 20A are sequentially output (timing tn + 2 to tn + 4), and DataY0 and DataY1 are held in the register 18-2 in FIG.

このように、本実施形態においては、最初に読み出されたウエイ0のTagXがCPUのアクセスアドレスの上位アドレスと一致しない場合には、ただちに、ウエイ1のTagYのチェックを実行し、TagYが該上位アドレスと一致した場合、ウエイ1のデータを、データ・キャッシュメモリ20Aから読み出す。データ・キャッシュメモリ20Aのウエイ1(Dway1)から読み出されたデータDataY0、DataY1は、レジスタ18−2から、データ選択部19を介して、CPU30に転送される。   As described above, in the present embodiment, when the TagX of the way 0 read first does not match the upper address of the CPU access address, the check of the TagY of the way 1 is executed immediately, When the address matches the upper address, the data of the way 1 is read from the data cache memory 20A. The data DataY0 and DataY1 read from the way 1 (Dway1) of the data cache memory 20A are transferred from the register 18-2 to the CPU 30 via the data selection unit 19.

なお、TagYが上位アドレスと不一致の場合(したがってTagX、TagYとも不一致の場合)、キャッシュ・ミスヒットとなり、メインメモリ(図4の50)からの読み出しが行われ、読み出しデータが、ウエイ予測器で選択されたウエイの該当アドレスに書き込まれ、タグが選択されたウエイの該当アドレスに書き込まれる。タグのタグ・キャッシュメモリへの書き込みはクロック2で駆動される。   Note that if TagY does not match the upper address (and therefore TagX and TagY do not match), a cache miss occurs, reading from the main memory (50 in FIG. 4) is performed, and the read data is received by the way predictor. The tag is written to the corresponding address of the selected way, and the tag is written to the corresponding address of the selected way. Writing a tag to the tag cache memory is driven by the clock 2.

本実施形態では、タグ・キャッシュメモリ20Bのクロック信号入力をクロック2、アドレス信号入力をアドレス2とすることにより、データ・キャッシュメモリと分離させ、タグ・キャッシュメモリ20Bのアクセス速度を高速化することを実現させる。   In this embodiment, the clock signal input of the tag cache memory 20B is set to clock 2, and the address signal input is set to address 2, thereby separating the data from the data cache memory and increasing the access speed of the tag cache memory 20B. Is realized.

また、本実施形態によれば、TagXのウエイ予測が一致しなかった場合に実行するTagYのチェック実行タイミングを、時間的に速めることにより、DataY0とDataY1をリード開始するまでの時間を短縮している。   In addition, according to the present embodiment, the time to start reading DataY0 and DataY1 can be shortened by accelerating the timing of TagY check execution that is executed when the Way prediction of TagX does not match. Yes.

比較例として、図8に、図6、図7を参照して説明した関連技術のリード時のタイミングを示す。図8には、図3と同様、ウエイ0、1の順でタグ・キャッシュメモリ20BからタグTagX、TagYを順次リードし、ウエイ0のTagXで不一致、ウエイ1のTagYで一致した場合の動作が示されている。   As a comparative example, FIG. 8 shows the timing at the time of reading in the related technology described with reference to FIGS. In FIG. 8, the tag TagX and TagY are sequentially read from the tag cache memory 20B in the order of way 0 and 1 in the same way as in FIG. 3, and the operation when there is a mismatch in Tag 0 of way 0 and a match in Tag Y of way 1 is shown. It is shown.

データ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bには、タイミングt0から始まる第1のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr0と、データウエイDwayX、タグウエイTwayXが入力され、タイミングt1から始まる第2のサイクルに、クロック1の立ち上がりエッジに同期して、アドレス1のAddr1と、データウエイDwayX、タグTwayYが入力される。   In the first cycle starting from the timing t0, the data cache memory 20A and the tag cache memory 20B are inputted with the address 1 Addr0, the data way DwayX, and the tag way TwayX in synchronization with the rising edge of the clock 1. In the second cycle starting from the timing t1, Addr1 of the address 1, the data way DwayX, and the tag TwayY are input in synchronization with the rising edge of the clock 1.

データ・キャッシュメモリ20A、タグ・キャッシュメモリ20Bからは、タイミングt2、t3から始まる第3、第4のサイクルに、ウエイ0のデータDataX0、DataX1、ウエイ0、ウエイ1から読み出されたタグTagX、TagYが出力される。なお、図3と同様、データ・キャッシュメモリ20Aから読み出されるデータは、タグ・キャッシュメモリ20Bから読み出されるタグよりもビット幅が大であり、2回に分けて時分割で読み出され、DataX0、DataX1は、キャッシュライン(ブロック)を構成している。   From the data cache memory 20A and the tag cache memory 20B, in the third and fourth cycles starting from the timings t2 and t3, the tag TagX read from the data DataX0, DataX1, Way0, and Way1 of the way0, TagY is output. As in FIG. 3, the data read from the data cache memory 20A has a bit width larger than that of the tag read from the tag cache memory 20B, and is read in two time divisions. DataX1 constitutes a cache line (block).

タイミングt4以降、ウエイ1のTagYとCPUの上位アドレスとの一致の結果を受け、ウエイ予測器12、キャッシュアドレス生成部13、データウエイ生成部14で、アドレス1データウエイDwayYが生成され、タイミングtn+2から、ウエイ1のアドレス、データウエイがデータキャッシュに出力され、タイミングtn+4からデータDataY0、DataY1が順次出力される。   After timing t4, in response to the result of matching of TagY of way 1 and the upper address of the CPU, address predictor 12, cache address generation unit 13, and dataway generation unit 14 generate address 1 dataway DwayY, and timing tn + 2 Thus, the address and data way of way 1 are output to the data cache, and data DataY0 and DataY1 are sequentially output from timing tn + 4.

図3に示した本実施形態では、タイミングtnからウエイ1のアドレス、データウエイがデータ・キャッシュメモリ20Aに出力され、タイミングtn+2から、読み出しデータDataY0、DataY1が出力され、図8の比較例よりも、DataY0、DataY1読み出しが早くなる。すなわち、クロック1の2クロックサイクル分、時間を短縮し、キャッシュメモリのアクセス時間を高速化している。   In the present embodiment shown in FIG. 3, the address and the data way of way 1 are output to the data cache memory 20A from timing tn, and the read data DataY0 and DataY1 are output from timing tn + 2, compared to the comparative example of FIG. , DataY0 and DataY1 are read faster. That is, the time is shortened by two clock cycles of clock 1, and the access time of the cache memory is increased.

また本実施形態によれば、タグ・キャッシュメモリ20Bを、クロック1の2逓倍クロックであるクロック2で駆動しているため、タグ・キャッシュメモリ20Bの読み出し時間のほか、更新(書き込み)時間も高速化している。   In addition, according to the present embodiment, the tag cache memory 20B is driven by the clock 2 which is a doubled clock of the clock 1, so that the update (write) time is high in addition to the read time of the tag cache memory 20B. It has become.

本実施形態において、キャッシュメモリへの書き込み動作は、タグ・キャッシュメモリ20Bへの書き込み動作がクロック2で行われる他は、図6、図7の関連技術と同一である。   In this embodiment, the write operation to the cache memory is the same as the related technology of FIGS. 6 and 7 except that the write operation to the tag cache memory 20B is performed with the clock 2.

前述したように、本実施形態では、図4に示すように、キャッシュメモリ制御装置10がCPU30内部に構成され、キャッシュメモリ20に接続される。CPU30は、メインメモリ制御装置(メモリコントローラ)40を介して、シンクロナスDRAM(SDRAM)からなるメインメモリ50に接続される。   As described above, in the present embodiment, as shown in FIG. 4, the cache memory control device 10 is configured in the CPU 30 and connected to the cache memory 20. The CPU 30 is connected to a main memory 50 composed of a synchronous DRAM (SDRAM) via a main memory control device (memory controller) 40.

あるいは、図5に示すように、キャッシュメモリ制御装置10は、CPU30の外部、例えばメインメモリ制御装置(メモリコントローラ)40内部に組み込む構成としてもよい。この場合、CPU30は、メインメモリ制御装置40内のキャッシュ制御装置10を介してキャッシュメモリ20にアクセスする。   Alternatively, as shown in FIG. 5, the cache memory control device 10 may be incorporated outside the CPU 30, for example, inside the main memory control device (memory controller) 40. In this case, the CPU 30 accesses the cache memory 20 via the cache control device 10 in the main memory control device 40.

なお、上記実施形態では、2ウエイ・セットアソシアティブ方式のキャッシュメモリを例に本発明を説明したが、nウエイ(nは4、8・・・の整数)のセットアソシアティブ方式のキャッシュメモリについても同様にして適用できることは勿論である。この場合、図3において、クロック2はクロック1をn逓倍したクロック信号としてもよい。   In the above embodiment, the present invention has been described by taking a two-way set associative cache memory as an example. However, the same applies to an n-way (n is an integer of 4, 8,...) Set-associative cache memory. Of course, it can be applied. In this case, in FIG. 3, the clock 2 may be a clock signal obtained by multiplying the clock 1 by n.

本発明は、PCや交換機等、キャッシュメモリを制御する機能を有する装置に適用可能である。   The present invention can be applied to a device having a function of controlling a cache memory, such as a PC or an exchange.

なお、上記の特許文献1の開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   It should be noted that the disclosure of Patent Document 1 is incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.

10、10’ キャッシュメモリ制御装置
11−1、11−2 アドレス比較部
12 ウエイ予測器
13 キャッシュアドレス生成部
14 データウエイ生成部
15 タグウエイ生成部
16、16A、16B クロック同期部
17−1 TagX(レジスタ)
17−2 TagY(レジスタ)
18−1 データX
18−2 データY
19 データ選択部
20 キャッシュメモリ
20A データ・キャッシュメモリ
20B タグ・キャッシュメモリ
30 CPU
31 クロック生成部
40 メインメモリ制御装置
50 メインメモリ
10, 10 'cache memory control device 11-1, 11-2 address comparison unit 12 way predictor 13 cache address generation unit 14 dataway generation unit 15 tagway generation unit 16, 16A, 16B clock synchronization unit 17-1 TagX (register )
17-2 TagY (register)
18-1 Data X
18-2 Data Y
19 Data Selection Unit 20 Cache Memory 20A Data Cache Memory 20B Tag Cache Memory 30 CPU
31 Clock generator 40 Main memory controller 50 Main memory

Claims (8)

タグを格納するタグ・キャッシュメモリと、
データを格納するデータ・キャッシュメモリと、
を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置であって、
前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ前記第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部と、
前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ前記第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部と、
CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出された各ウエイのタグと、を比較し一致/不一致を判定するアドレス比較部と、
を備え、
前記第2のクロック信号は、前記第1のクロック信号を予め定められた所定の逓倍数で逓倍したクロック信号であり
前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、
前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、
前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
前記データ・キャッシュメモリでは、与えられた前記第1のアドレス信号と前記データウエイとから、該当するウエイのデータ格納位置から、データを読み出し、
前記タグ・キャッシュメモリでは、与えられた前記第2のアドレス信号と前記タグウエイから該当するウエイのタグ格納位置からタグを読み出し、
前記データ・キャッシュメモリの最初に指定されたウエイから読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから複数のウエイ分の複数のタグの読み出しが終了するようにした、キャッシュメモリ制御装置。
Tag cache memory for storing tags;
Data cache memory for storing data,
A cache memory control device for controlling a set-associative cache memory having a plurality of ways including:
The data cache memory is driven by a first clock signal, and a first address signal and a data way obtained by synchronizing a cache address and way information with the first clock signal are stored in the data cache memory. A first clock synchronization unit to supply;
The tag cache memory is driven by a second clock signal, and a second address signal and a tag way obtained by synchronizing the cache address and way information with the second clock signal are stored in the tag cache memory. A second clock synchronization unit to supply;
An address comparison unit that compares a predetermined bit field corresponding to a tag among the access addresses of the CPU and a tag of each way read from the tag cache memory to determine match / mismatch;
With
The second clock signal is a clock signal obtained by multiplying the first clock signal by a predetermined multiplication number .
The tag read time from each way of the tag cache memory is faster than the data read time from the corresponding way of the data cache memory,
Read sequentially in a predetermined order for a plurality of ways of the tag cache memory and the data cache memory,
A tag read cycle of the first way of the tag cache memory driven by the second clock signal, and a data read cycle of the first way of the data cache memory driven by the first clock signal Is started at the same time,
In the data cache memory, data is read from the data storage position of the corresponding way from the given first address signal and the data way,
In the tag cache memory, the tag is read from the tag storage position of the corresponding way from the given second address signal and the tag way,
A cache memory in which reading of a plurality of tags for a plurality of ways from the tag cache memory is completed before a cycle in which read data is output from a first designated way of the data cache memory. Control device.
タグを格納するタグ・キャッシュメモリと、
データを格納するデータ・キャッシュメモリと、
を含む2ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御装置であって、
前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ前記第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給する第1のクロック同期部と、
前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ前記第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給する第2のクロック同期部と、
CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出された各ウエイのタグとを比較し一致/不一致を判定するアドレス比較部と、
を備え、
前記第2のクロック信号は、前記第1のクロック信号を2逓倍したクロック信号であり、
前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、
前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの2ウエイに対して所定の順番で順次読み出しを行い、
前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
前記データ・キャッシュメモリの最初に指定されたウエイから読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから2ウエイ分のタグの読み出しが終了するようにした、キャッシュメモリ制御装置。
Tag cache memory for storing tags;
Data cache memory for storing data,
A cache memory control device for controlling a two-way set associative cache memory including :
The data cache memory is driven by a first clock signal, and a first address signal and a data way obtained by synchronizing a cache address and way information with the first clock signal are stored in the data cache memory. A first clock synchronization unit to supply;
The tag cache memory is driven by a second clock signal, and a second address signal and a tag way obtained by synchronizing the cache address and way information with the second clock signal are stored in the tag cache memory. A second clock synchronization unit to supply;
An address comparison unit that compares a predetermined bit field corresponding to a tag among access addresses of the CPU and a tag of each way read from the tag cache memory to determine match / mismatch;
With
The second clock signal is a clock signal obtained by multiplying the first clock signal by two,
The tag read time from each way of the tag cache memory is faster than the data read time from the corresponding way of the data cache memory,
Read sequentially in a predetermined order for the two ways of the tag cache memory and the data cache memory,
A tag read cycle of the first way of the tag cache memory driven by the second clock signal, and a data read cycle of the first way of the data cache memory driven by the first clock signal Is started at the same time,
Wherein the data cache first specified way of the memory before the cycle in which the read data is output, the read tags 2-way component from the tag cache memory is to be terminated, the cache memory controller.
前記CPUのアクセスアドレスのタグに対応する所定のビットフィールドと2つのウエイのタグとの一致・不一致を比較した結果、2番目のウエイで一致したことで、前記データ・キャッシュメモリに前記第1のクロック信号に同期して第1のアドレス信号、データウエイを与えて2番目のウエイからデータの読み出しを行う場合の前記読み出しを開始するタイミングは、前記データ・キャッシュメモリを前記第1のクロック信号で駆動した場合よりも時間的に速くなる、請求項に記載のキャッシュメモリ制御装置。 As a result of comparing the coincidence / non-coincidence between the predetermined bit field corresponding to the access address tag of the CPU and the tags of the two ways, a match in the second way results in the first cache being stored in the data cache memory. When the data is read from the second way by giving the first address signal and data way in synchronization with the clock signal, the timing for starting the reading is determined by using the first clock signal to the data cache memory. The cache memory control device according to claim 2 , wherein the cache memory control device is faster in time than when driven. 前記CPUのアクセスアドレスの所定の下位アドレスから前記キャッシュアドレスを生成するキャッシュアドレス生成部と、
前記アドレス比較部の比較結果、及び、前記CPUのアクセスアドレスの予め定められた所定の上位アドレスから、アクセスするウエイを決定するウエイ予測器と、
前記ウエイ予測器で決定されたウエイに対応して前記データウエイを生成するデータウエイ生成部と、
前記ウエイ予測器で決定されたウエイに対応して前記タグウエイを生成するタグウエイ生成部と、
前記タグ・キャッシュメモリの複数のウエイに対応して設けられ、読み出されたタグをそれぞれ格納する複数の第1のレジスタと、
前記データ・キャッシュメモリの複数のウエイに対応して設けられ、読み出されたデータをそれぞれ格納する複数の第2のレジスタと、
前記複数の第2のレジスタのデータから、前記アドレス比較部で一致したウエイのデータを選択するデータ選択部と、
を備え、
前記第1のクロック同期部は、前記キャッシュアドレス生成部からのキャッシュアドレスと、前記データウエイ生成部からのデータウエイとを、前記第1のクロック信号に同期させて、前記第1のアドレス信号と前記データウエイとして出力し、
前記第2のクロック信号は、前記第1のクロック信号を予め定められた所定の逓倍数で逓倍した信号であり、
前記第2のクロック同期部は、前記第2のクロック信号により、前記キャッシュアドレス生成部からの前記キャッシュアドレスと、前記タグウエイ生成部からの前記タグウエイとを同期させて、前記第2のアドレス信号と、前記タグウエイとして出力する、請求項1又は2に記載のキャッシュメモリ制御装置。
A cache address generation unit that generates the cache address from a predetermined lower address of the access address of the CPU;
A way predictor that determines a way to be accessed from a comparison result of the address comparison unit and a predetermined high-order address of the access address of the CPU;
A dataway generator for generating the dataway corresponding to the way determined by the way predictor;
A tagway generator for generating the tagway corresponding to the way determined by the way predictor;
A plurality of first registers provided corresponding to a plurality of ways of the tag cache memory, each storing a read tag;
A plurality of second registers provided corresponding to a plurality of ways of the data cache memory and respectively storing read data;
A data selection unit for selecting the data of the way matched by the address comparison unit from the data of the plurality of second registers;
With
The first clock synchronization unit synchronizes the cache address from the cache address generation unit and the data way from the data way generation unit with the first clock signal, and Output as the dataway,
The second clock signal is a signal obtained by multiplying the first clock signal by a predetermined multiplication number.
The second clock synchronization unit synchronizes the cache address from the cache address generation unit with the tag way from the tag way generation unit based on the second clock signal, and and outputs as the Taguuei, the cache memory control device according to claim 1 or 2.
請求項1乃至のいずれか1項記載のキャッシュメモリ制御装置を備えたCPU。 It claims 1 to CPU with a cache memory control device according to any one of 4. CPUとメインメモリに接続されるメモリコントローラであって、請求項1乃至のいずれか1項記載のキャッシュメモリ制御装置を備えたメモリコントローラ。 A memory controller connected to the CPU and main memory, a memory controller with a cache memory control device according to any one of claims 1 to 4. タグを格納するタグ・キャッシュメモリと、
データを格納するデータ・キャッシュメモリと、
を含む複数ウエイのセット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御方法であって、
前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給し、
前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給し、
CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出された各ウエイのタグとを比較し一致/不一致を判定し、
前記第2のクロック信号は、前記第1のクロック信号を予め定められた所定の逓倍数で逓倍したクロック信号であり
前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、
前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの複数のウエイに対して所定の順番で順次読み出しを行い、
前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
前記データ・キャッシュメモリでは、与えられた前記第1のアドレス信号と前記データウエイとから、該当するウエイのデータ格納位置から、データを読み出し、
前記タグ・キャッシュメモリでは、与えられた前記第2のアドレス信号と前記タグウエイから該当するウエイのタグ格納位置からタグを読み出し、
前記データ・キャッシュメモリの最初に指定されたウエイから読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから複数のウエイ分の複数のタグの読み出しが終了するようにした、キャッシュメモリ制御方法。
Tag cache memory for storing tags;
Data cache memory for storing data,
A cache memory control method for controlling a set-associative cache memory having a plurality of ways including:
The data cache memory is driven by a first clock signal, and a first address signal and a data way obtained by synchronizing the cache address and the way information with the first clock signal are supplied to the data cache memory. And
The tag cache memory is driven by a second clock signal, and a second address signal and a tag way obtained by synchronizing the cache address and way information with the second clock signal are supplied to the tag cache memory. And
A predetermined bit field corresponding to the tag in the access address of the CPU is compared with the tag of each way read from the tag cache memory to determine a match / mismatch,
The second clock signal is a clock signal obtained by multiplying the first clock signal by a predetermined multiplication number .
The tag read time from each way of the tag cache memory is faster than the data read time from the corresponding way of the data cache memory,
Read sequentially in a predetermined order for a plurality of ways of the tag cache memory and the data cache memory,
A tag read cycle of the first way of the tag cache memory driven by the second clock signal, and a data read cycle of the first way of the data cache memory driven by the first clock signal Is started at the same time,
In the data cache memory, data is read from the data storage position of the corresponding way from the given first address signal and the data way,
In the tag cache memory, the tag is read from the tag storage position of the corresponding way from the given second address signal and the tag way,
A cache memory in which reading of a plurality of tags for a plurality of ways from the tag cache memory is completed before a cycle in which read data is output from a first designated way of the data cache memory. Control method.
タグを格納するタグ・キャッシュメモリと、
データを格納するデータ・キャッシュメモリと、
を含む2ウエイ・セット・アソシアティブ・キャッシュメモリを制御するキャッシュメモリ制御方法であって、
前記データ・キャッシュメモリを第1のクロック信号で駆動し、キャッシュアドレスとウエイ情報とをそれぞれ第1のクロック信号で同期させた第1のアドレス信号とデータウエイとを、前記データ・キャッシュメモリに供給し、
前記タグ・キャッシュメモリを第2のクロック信号で駆動し、前記キャッシュアドレスとウエイ情報とをそれぞれ第2のクロック信号で同期させた第2のアドレス信号とタグウエイとを、前記タグ・キャッシュメモリに供給し、
CPUのアクセスアドレスのうちタグに対応する所定のビットフィールドと、前記タグ・キャッシュメモリから読み出された各ウエイのタグとを比較し一致/不一致を判定し、
前記第2のクロック信号は、前記第1のクロック信号を2逓倍したクロック信号であり、前記タグ・キャッシュメモリの各ウエイからのタグの読み出し時間は、前記データ・キャッシュメモリの対応するウエイからのデータの読み出し時間よりも速められ、
前記タグ・キャッシュメモリ及び前記データ・キャッシュメモリの2ウエイに対して所定の順番で順次読み出しを行い、
前記第2のクロック信号で駆動される前記タグ・キャッシュメモリの最初のウエイのタグの読み出しサイクルと、前記第1のクロック信号で駆動される前記データ・キャッシュメモリの最初のウエイのデータの読み出しサイクルとは、同一のタイミングで開始され、
前記データ・キャッシュメモリの最初に指定されたウエイからの読み出しデータが出力されるサイクルよりも前に、前記タグ・キャッシュメモリから2ウエイ分のタグの読み出しが終了する、キャッシュメモリ制御方法。
Tag cache memory for storing tags;
Data cache memory for storing data,
A cache memory control method for controlling a two-way set associative cache memory including :
The data cache memory is driven by a first clock signal, and a first address signal and a data way obtained by synchronizing the cache address and the way information with the first clock signal are supplied to the data cache memory. And
The tag cache memory is driven by a second clock signal, and a second address signal and a tag way obtained by synchronizing the cache address and way information with the second clock signal are supplied to the tag cache memory. And
A predetermined bit field corresponding to the tag in the access address of the CPU is compared with the tag of each way read from the tag cache memory to determine a match / mismatch,
The second clock signal is a clock signal obtained by multiplying the first clock signal by two, and the tag read time from each way of the tag cache memory is from the corresponding way of the data cache memory. Faster than the data read time,
Read sequentially in a predetermined order for the two ways of the tag cache memory and the data cache memory,
A tag read cycle of the first way of the tag cache memory driven by the second clock signal, and a data read cycle of the first way of the data cache memory driven by the first clock signal Is started at the same time,
It said data before the cycle in which the cache data read from the first specified way the memory is output, the read is completed tag 2-way component from the tag cache memory, the cache memory control method.
JP2010200982A 2010-09-08 2010-09-08 Cache memory control apparatus and method Expired - Fee Related JP5565864B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010200982A JP5565864B2 (en) 2010-09-08 2010-09-08 Cache memory control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010200982A JP5565864B2 (en) 2010-09-08 2010-09-08 Cache memory control apparatus and method

Publications (2)

Publication Number Publication Date
JP2012058973A JP2012058973A (en) 2012-03-22
JP5565864B2 true JP5565864B2 (en) 2014-08-06

Family

ID=46056001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010200982A Expired - Fee Related JP5565864B2 (en) 2010-09-08 2010-09-08 Cache memory control apparatus and method

Country Status (1)

Country Link
JP (1) JP5565864B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200717246A (en) * 2005-06-24 2007-05-01 Koninkl Philips Electronics Nv Self-synchronizing data streaming between address-based producer and consumer circuits

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56130877A (en) * 1980-03-19 1981-10-14 Hitachi Ltd Control system for burrer memory
JP2001075864A (en) * 1999-09-02 2001-03-23 Fujitsu Ltd Cache controller
US7290089B2 (en) * 2002-10-15 2007-10-30 Stmicroelectronics, Inc. Executing cache instructions in an increased latency mode
JP2004171177A (en) * 2002-11-19 2004-06-17 Renesas Technology Corp Cache system and cache memory controller

Also Published As

Publication number Publication date
JP2012058973A (en) 2012-03-22

Similar Documents

Publication Publication Date Title
TWI454909B (en) Memory device, method and system to reduce the power consumption of a memory device
US6138225A (en) Address translation system having first and second translation look aside buffers
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
KR100445927B1 (en) A programmable sram and dram cache interface
EP0407119A2 (en) Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access
JP2010191638A (en) Cache device
KR20070094429A (en) Semiconductor memory, memory system, and operation method of memory system
JP2005339348A (en) Semiconductor device
CN108959125B (en) Storage access method and device supporting rapid data acquisition
JPH0529945B2 (en)
US8924652B2 (en) Simultaneous eviction and cleaning operations in a cache
JP4370063B2 (en) Semiconductor memory device control device and semiconductor memory device control method
JP4791714B2 (en) Method, circuit, and system for using pause time of dynamic frequency scaling cache memory
US6272595B1 (en) N-way set-associative cache memory which includes a store hit buffer for improved data access
US20050232060A1 (en) Memory controller controlling cashed dram
TW491970B (en) Page collector for improving performance of a memory
JP3215105B2 (en) Memory access device
US20110004730A1 (en) Cache memory device, processor, and control method for cache memory device
JP5565864B2 (en) Cache memory control apparatus and method
JPH07248963A (en) Dram controller
US7870342B2 (en) Line cache controller with lookahead
KR100398954B1 (en) Multi-way set associative cache memory and data reading method therefrom
JP2004171678A (en) Apparatus, method, and program for storing information
US8886895B2 (en) System and method for fetching information in response to hazard indication information
JP2000195262A (en) Sdram and method for accessing sdram data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140612

R150 Certificate of patent or registration of utility model

Ref document number: 5565864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees