JP5434646B2 - The information processing apparatus - Google Patents

The information processing apparatus Download PDF

Info

Publication number
JP5434646B2
JP5434646B2 JP2010027626A JP2010027626A JP5434646B2 JP 5434646 B2 JP5434646 B2 JP 5434646B2 JP 2010027626 A JP2010027626 A JP 2010027626A JP 2010027626 A JP2010027626 A JP 2010027626A JP 5434646 B2 JP5434646 B2 JP 5434646B2
Authority
JP
Grant status
Grant
Patent type
Prior art keywords
array
data
number
cache
block
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
Application number
JP2010027626A
Other languages
Japanese (ja)
Other versions
JP2011164975A (en )
Inventor
毅 ▲葛▼
Original Assignee
富士通株式会社
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
Grant date

Links

Images

Description

本発明は、キャッシュ部を有する情報処理装置に関する。 The present invention relates to an information processing apparatus having a cache unit.

プロセッサシステムにおいて、メモリ(主記憶)に記憶されているデータの読み出しに係るプロセッサからメモリへのアクセス速度を速くするために、キャッシュが使用されている。 In the processor system, the processor according to the reading of data stored in the memory (main storage) in order to increase the access speed to the memory, are used cache. キャッシュ内のデータとメモリ内のデータとの対応に係るキャッシュエントリとメモリアドレスとのマッピング方式としては、ダイレクトマッピング方式、セットアソシアティブ方式、フルアソシアティブ方式がよく知られている。 The mapping scheme between a cache entry and the memory address according to the correspondence between the data of the data and memory in the cache, direct mapping method, set associative method, full associative method are well known.

キャッシュのヒット率については、ダイレクトマッピング方式、セットアソシアティブ方式、フルアソシアティブ方式の順で性能が向上する。 The hit rate of the cache is direct mapping method, set associative method, the performance in the order of the full associative method to improve. 一方、実装容易性は、ダイレクトマッピング方式、セットアソシアティブ方式、フルアソシアティブ方式の順で低くなり、フルアソシアティブ方式は現実的に実装困難である。 Meanwhile, the mounting ease, direct mapping method, set associative, lower in the order of the full associative method, full associative method is practically implemented difficulties. そのため、4ウェイ程度のセットアソシアティブ方式を用いるのが一般的である。 Therefore, it is common to use a set associative system of about 4 way.

図11は、4ウェイのセットアソシアティブ方式のキャッシュの構成を示す図である。 Figure 11 is a diagram showing the cache configuration of 4-way set associative system.
図11において、110はタグアレイ、111はデータアレイ、112(112−0〜112−3)は比較器、113は選択回路、114はLRU(Least Recently Used)アレイである。 11, 110 tag array, data array 111, 112 (112-0~112-3) comparators, the selection circuit 113, 114 is LRU (Least Recently Used) array. データアレイ111は、キャッシュラインサイズ単位でメモリ(主記憶)内のデータのコピーをブロックに記憶する。 Data array 111 stores a copy of the data in memory (main memory) in the block in the cache line size units. タグアレイ110は、データアレイ111の各ブロックに格納されているデータについてのタグ(メモリアドレスの一部)を記憶する。 Tag array 110 stores a tag (part of the memory address) of the data stored in each block of data array 111. 図示のようにアドレスの全ビットのうち、キャッシュラインサイズに対応する下位ビットをオフセットとして、オフセット部より上位に位置する、エントリ数(データアレイにおける縦方向のブロック数)に対応する所定数のビットがキャッシュのインデックスとなる。 Of all bits of the address, as shown, as an offset the lower bits corresponding to the cache line size, located higher than the offset portion, the number of entries predetermined number corresponding to (the number of vertical block in the data array) of bits but the index of the cache. インデックス部よりさらに上位の残りのビットがキャッシュのタグとなる。 The remaining bits of still higher than the index portion becomes the tag of the cache. LRUアレイ114は、タグアレイ110及びデータアレイ111におけるウェイの古さ順(最後に使用されてからの経過時間の順)を示すLRU情報を保持する。 LRU array 114 holds the LRU information indicating oldness order of way in the tag array 110 and data array 111 (the order of the time elapsed since the last use).

メモリ空間上のあるアドレスへのアクセスを実行する場合に、アクセス先を示すアドレスが入力されるとアドレス中のインデックス部に基づいてタグアレイ110が参照され、各ウェイにおいてインデックスに対応するブロックからタグが読み出される。 When performing the access to the address is on the memory space, the address indicating the access destination is input is referred to the tag array 110 based on the index portion in the address, the tag from the block corresponding to the index at each way It is read. 読み出されたタグとアドレス中のタグ部のビットパターンとがウェイ毎に比較器112によって比較され、比較結果が選択回路113に出力される。 Read tag and a tag portion of the bit pattern in the address are compared by the comparator 112 for each way, the comparison result is output to the selection circuit 113.

読み出されたタグとアドレス中のタグ部のビットパターンとが一致する場合にはキャッシュヒットとなる。 A cache hit when read tag and the bit pattern of the tag part in the addresses match. このとき、インデックスに対応するデータアレイ111のブロックからデータが読み出され、タグが一致したウェイに対応するブロックから読み出されたデータが、比較器112での比較結果に応じて選択回路113により選択されて出力データとして出力される。 At this time, the data from the block of data array 111 corresponding to the index are read, the tag is read from the block corresponding to the matched way data, the selection circuit 113 in accordance with the comparison result of the comparator 112 It is selected and output as output data.

一方、いずれのウェイにおいても、読み出されたタグとアドレス中のタグ部のビットパターンとが一致しない場合にはキャッシュミスとなる。 On the other hand, in any way, the cache miss if the bit pattern of the tag part in the read-out tag and addresses do not match. キャッシュミスである場合には、メモリにアクセスすることで、アクセス先を示すアドレスに対応するメモリの記憶領域からデータが読み出され出力データとして出力される。 If it is a cache miss, by accessing the memory, the data from the storage area of ​​the memory is output as the output data is read corresponding to the address indicating the access destination. また、メモリから読み出されたデータが、キャッシュに入力データとして供給され登録される。 Further, data read out from the memory is supplied as input data to the cache register. アドレスにおけるインデックスに対応するタグアレイ110のブロックにアドレスにおけるタグが登録され、インデックスに対応するデータアレイ111のブロックにメモリから読み出されたデータが登録される。 Tag is registered in the address block of the tag array 110 corresponding to the index in the address, data read out from the memory is registered in a block of data array 111 corresponding to the index. このとき、LRUアレイ114に保持されているLRU情報に基づき、インデックスに対応するタグアレイ110及びデータアレイ111のブロックのうち、最後に使用されてから最も長い時間が経過したブロックにタグ及びデータがリプレース(書き換え)される。 At this time, based on the LRU information held in the LRU array 114, among the blocks of the tag array 110 and data array 111 corresponding to the index, replacement tag and data in a block is the longest time has elapsed since the last use (rewritten) by the.

また、キャッシュシステムにおいて、ウェイ数とブロックサイズとの組合せをレジスタに指定することで変更可能なようにするキャッシュ方式が提案されている(特許文献1参照)。 Further, in the cache system, (see Patent Document 1) in which a cache system is proposed to allow changes by specifying combination in the register of the way number and the block size. このように、アプリケーションに最適なウェイ数及びブロックサイズにキャッシュ構成を変更することで、キャッシュの利用効率やヒット率の向上を図っている。 Thus, by changing the cache configuration to the optimum way number and the block size to the application, thereby improving the utilization efficiency and hit ratio of the cache. また、キャッシュのヒット率を観測する回路を設けて、適当な閾値に基づきデータアレイへの電源供給をウェイ単位でオン/オフし、動作させるウェイ数を制御できるようにしたキャッシュが提案されている(特許文献2参照)。 Further, by providing a circuit for observing a cache hit rate, the power supply to the data array to turn on / off by way units based on appropriate threshold, cache and to control the number of ways to operate has been proposed (see Patent Document 2).

特開2000−20396号公報 JP 2000-20396 JP 特開平9−50401号公報 JP 9-50401 discloses

キャッシュとしては、ヒット率やハードウェア量の観点から4ウェイ程度のセットアソシアティブ方式のキャッシュを用いるのが一般的である。 The cache, use the cache 4-way about a set associative method in terms of hit rate and the amount of hardware are common. しかし、実行するアプリケーションによっては、2ウェイ程度で十分なこともあれば、8ウェイ程度でないと頻繁にキャッシュのデータがリプレースされてしまうことがある。 However, depending on the application running, if may be sufficient at about 2-way, it may often cached data unless the order of 8-way from being replaced. また、データアレイ全体のウェイ数だけでなく、エントリ番号毎に使用頻度が偏ることがあり得る。 Further, not only the way number of the entire data array, it is possible that frequency of use is biased for each entry number.

前述の特許文献1や特許文献2に記載の技術によれば、キャッシュのウェイ数を変更することが可能である。 According to the technique described in Patent Document 1 and Patent Document 2 described above, it is possible to change the number of ways of the cache. しかし、特許文献1のような、ウェイ数をアプリケーションに応じてユーザが予め決定し、固定的にユーザが手動でウェイ数を指定して使用する方法では、利用の容易性を考えると問題がある。 However, as in Patent Document 1, the user is determined in advance in accordance with the number of ways in the application, the fixedly way a user uses to specify the number of ways manually, there is a problem given the ease of use . また、すべてのエントリ番号に対して一意にウェイ数を変更させるため、エントリ番号毎の使用頻度に隔たりがあるとキャッシュの利用効率の向上は期待できない。 Furthermore, uniquely for changing the number of ways, when the frequency of use of each entry number is separation improving cache utilization efficiency can not be expected for all entry number. また、特許文献2においても、すべてのエントリ番号に対して一意にウェイ数を変更させるため、エントリ番号毎に使用頻度の偏りがあるとキャッシュの利用効率の向上は期待できない。 Also in Patent Document 2, can not be uniquely for changing the number of ways and for each entry number is biased frequency of use is improved cache utilization efficiency of expectations for all entry number.

本発明の一観点によれば、データに処理を施す処理部と、データが記憶されている記憶部と処理部との間に設けられたキャッシュ部とを備える情報処理装置が提供される。 According to one aspect of the present invention, a processing unit which processes the data, the information processing apparatus and a cache unit which is provided between the processor memory unit in which data is stored is provided. キャッシュ部は、記憶部のデータがコピーされる複数のデータアレイと、複数のデータアレイにおけるウェイの古さ順を示す情報を保持する情報アレイとを有する。 Cache unit includes a plurality of data arrays data storage unit is copied, the information array that holds information indicating oldness order of way in the plurality of data arrays. 複数のデータアレイの各々はウェイ数が1以上であって、複数のデータアレイのうち少なくとも1つはエントリ数が異なり、分割された記憶部の記憶領域に対し、複数のデータアレイにてそれぞれ1つのエントリが割り当てられている。 Each of the plurality of data arrays comprising a number of ways one or more different at least one number of entries among the plurality of data arrays, to split the storage area of ​​the storage unit are, respectively at a plurality of data arrays 1 One of the entry is assigned.

本発明によれば、実行するアプリケーションに応じてエントリ単位で動的にウェイ数を増減し最適なウェイ数に自動で変更することができ、キャッシュの利用効率やヒット率を向上させることができる。 According to the present invention, dynamically increases or decreases the number of ways can be changed automatically to the optimum number of ways by the entry unit in accordance with the application to be executed, it is possible to improve the efficiency and hit ratio of the cache.

本発明の実施形態における情報処理装置の構成例を示す図である。 In an embodiment of the present invention is a diagram illustrating a configuration example of an information processing apparatus. 本実施形態におけるキャッシュ部の構成例を示す図である。 It is a diagram showing a configuration example of a cache unit according to the present embodiment. 本実施形態におけるメモリアドレスとキャッシュエントリとの対応を説明するための図である。 It is a diagram for explaining the correspondence between the memory address and the cache entry according to the present embodiment. 本実施形態でのアクセス動作の一例を示すフローチャートである。 Is a flow chart showing an example of an access operation of the present embodiment. LRU参照動作処理を示すフローチャートである。 Is a flowchart illustrating the LRU reference operation process. 本実施形態におけるキャッシュのウェイ数の変化を説明するための図である。 It is a diagram for explaining the way the change in the number of cache in this embodiment. 本実施形態におけるLRU情報の例を示す図である。 Is a diagram illustrating an example of the LRU information in this embodiment. 本実施形態におけるLRU情報のエンコード方式の例を示す図である。 Is a diagram illustrating an example of encoding of the LRU information in this embodiment. 本実施形態での具体的な動作例を説明するための図である。 It is a diagram for explaining a specific example of the operation of the present embodiment. 本実施形態での具体的な動作例を説明するための図である。 It is a diagram for explaining a specific example of the operation of the present embodiment. セットアソシアティブ方式のキャッシュの一例を示す図である。 Is a diagram illustrating an example of a cache set associative method.

以下、本発明の実施形態を図面に基づいて説明する。 It will be described below with reference to embodiments of the present invention with reference to the drawings.

図1は、本発明の実施形態による情報処理装置の構成例を示すブロック図である。 Figure 1 is a block diagram showing a configuration example of an information processing apparatus according to an embodiment of the present invention.
図1において、1は情報処理装置であり、4はメモリ(主記憶)である。 In Figure 1, 1 is an information processing apparatus, 4 a memory (main memory). 情報処理装置1は、メモリ4からデータを読み出して(ロードして)処理を施したり、処理結果として得られたデータをメモリに書き込んだりする(ストアする)。 The information processing apparatus 1 reads the data from the memory 4 (load) process or subjected to, and writes data obtained as the processing result in the memory (store). メモリ4は、情報処理装置1での処理に係るデータ等を記憶する。 Memory 4 stores data relating to processing in the information processing apparatus 1.

情報処理装置1は、命令に応じた処理を行う処理部2と、メモリ4のデータがコピーされるキャッシュ部3とを有する。 The information processing apparatus 1 includes a processing unit 2 which performs processing according to instructions, and a cache unit 3 in which the data of the memory 4 is copied. 図1においては、処理部2の一例としてCPUコアを示しているが、これに限定されるものではなく、例えばアクセラレータであっても良い。 In FIG 1 shows the CPU core as an example of the processing unit 2, it is not limited thereto and may be, for example, accelerators.

情報処理装置1の処理部2がメモリ空間上のあるアドレスへアクセスしてデータをロードする場合、まずキャッシュ部3が参照されて、所望のデータ(当該アドレスにより指定される格納領域のデータ)のコピーがキャッシュ部3に存在するか否かが判断される。 If the processing unit 2 of the information processing apparatus 1 loads the data by accessing to the address of the top memory space, first cache unit 3 is the reference, the desired data (data storage area designated by the address) whether a copy is in the cache unit 3 is determined. その結果、所望のデータのコピーがキャッシュ部3に存在するとき(キャッシュヒット)には、キャッシュ部3より所望のデータのコピーが読み出されて処理部2に供給される。 As a result, a copy of the desired data in (a cache hit) when present in the cache unit 3 is supplied to the processing unit 2 is read out copy of the desired data from the cache unit 3.

一方、所望のデータのコピーがキャッシュ部3に存在しないとき(キャッシュミス)には、メモリ4に対するアクセスが行われ、所望のデータが読み出される。 On the other hand, the (cache miss) When a copy of the desired data is not in the cache unit 3, access to the memory 4 is performed, the desired data is read. そして、メモリ4から読み出された所望のデータが、処理部2に供給されるとともに、キャッシュ部3内のデータ(例えば、最後に使用されてから最も長い時間が経過したデータ)とリプレース(置き換え)されてキャッシュ部3に登録される。 Then, the desired data read out from the memory 4 is supplied to a processing unit 2, and the replacement (replacement data in the cache unit 3 (e.g., data longest time has elapsed since the last use) ) is to be registered in the cache unit 3.

図2は、図1に示したキャッシュ部3の構成例を示す図である。 Figure 2 is a diagram showing a configuration example of a cache unit 3 shown in FIG.
図2において、10は第1のアレイ(メインアレイ)、20は第2のアレイ(サブアレイ)、30はLRU(Least Recently Used)アレイである。 2, a 10 first array (main array), 20 second array (sub-array), 30 denotes a LRU (Least Recently Used) array. 第1のアレイ(メインアレイ)10は、例えばウェイ数が2である2ウェイのセットアソシアティブ方式のキャッシュに相当し、第2のアレイ(サブアレイ)20は、例えばウェイ数が4である4ウェイのセットアソシアティブ方式のキャッシュに相当する。 The first array (main array) 10 is, for example, the number of ways is equivalent to the cache of two-way set associative system is 2, the second array (sub-array) 20, for example, the number of ways is four 4-way corresponding to the cache of the set-associative method.

なお、第1のアレイ(メインアレイ)10と第2のアレイ(サブアレイ)20とはエントリ数(アレイにおける縦方向のブロック数)が異なっており、第1のアレイ(メインアレイ)10のエントリ数は第2のアレイ(サブアレイ)20のエントリ数より大きい。 Note that the first array (main array) 10 and the second array (sub-array) 20 have different number of entries (number of vertical block in the array), the number of entries the first array (main array) 10 It is greater than the number of entries a second array (sub-array) 20. 例えば、第1のアレイ(メインアレイ)10のエントリ数は、第2のアレイ(サブアレイ)20のエントリ数の4倍程度が好ましい。 For example, the number of entries the first array (main array) 10, 4 times the number of entries a second array (sub-array) 20 are preferred.

メインアレイ10は、メインタグアレイ12、メインデータアレイ14、比較器16(16−0、16−1)、及び選択回路18を有する。 The main array 10 includes a main tag array 12, main data array 14, a comparator 16 (16-0,16-1), and the selection circuit 18. メインデータアレイ14は、キャッシュラインサイズ単位でメモリ4内のデータのコピーをブロックに記憶する。 Main data array 14 stores a copy of the data in the memory 4 in block cache line size units. メインタグアレイ12は、メインデータアレイ14の各ブロックに格納されているデータについてのタグ(メモリアドレスの一部)を記憶する。 The main tag array 12 stores the tags (part of the memory address) of the data stored in each block of the main data array 14.

比較器16は、入力されたアクセス先を示すアドレスに基づいてメインタグアレイ12から読み出されたタグとアドレス中のタグ部のビットパターンとをウェイ毎に比較し、比較結果を選択回路18に出力する。 Comparator 16, the bit pattern of the tag part of the tag address read from the main tag array 12 relative to each way based on the address indicating the input access destination, to the selection circuit 18 a comparison result Output. 選択回路18は、入力されたアドレスに基づいてメインデータアレイ14から読み出されたデータを、比較器16での比較結果に応じて選択し出力データとして出力する。 Selection circuit 18, the data read from the main data array 14 based on the input address as the output data selected in accordance with the comparison result of the comparator 16. 詳細には、選択回路18は、アドレスに基づいてメインデータアレイ14から読み出されたデータのうち、メインタグアレイ12から読み出されたタグとアドレス中のタグ部のビットパターンとが一致したウェイのデータを選択し出力する。 In particular, the selection circuit 18, among the data read from the main data array 14 based on the address, and the bit pattern of the tag part of the tag address read from the main tag array 12 is coincident Way to select the data output. なお、いずれのウェイにおいても読み出されたタグとアドレス中のタグ部のビットパターンとが一致しない場合には、選択回路18はデータを出力しない。 In the case where the one of the tag portion of the bit pattern even during read-out tag and address in the way do not match, the selecting circuit 18 does not output the data.

また、サブアレイ20は、サブタグアレイ22、サブデータアレイ24、比較器26(26−0〜26−3)、及び選択回路28を有する。 Further, the sub-array 20 has a sub-tag array 22, the sub-data array 24, a comparator 26 (26-0~26-3), and the selection circuit 28. サブデータアレイ24は、キャッシュラインサイズ単位でメモリ4内のデータのコピーをブロックに記憶する。 Sub-data array 24 stores a copy of the data in the memory 4 in block cache line size units. サブタグアレイ22は、サブデータアレイ24の各ブロックに格納されているデータについてのタグ(メモリアドレスの一部)を記憶する。 Subtag array 22 stores a tag (part of the memory address) of the data stored in each block of the sub-data array 24.

比較器26は、入力されたアドレスに基づいてサブタグアレイ22から読み出されたタグとアドレス中のタグ部のビットパターンとをウェイ毎に比較し、比較結果を選択回路28に出力する。 Comparator 26, the bit pattern of the tag part of the tag address read from the sub tag array 22 relative to each way on the basis of the input address, and outputs the comparison result to the selection circuit 28. 選択回路28は、選択回路18と同様に、入力されたアドレスに基づいてサブデータアレイ24から読み出されたデータを、比較器26での比較結果に応じて選択し出力データとして出力する。 Selection circuit 28, similarly to the selection circuit 18, the data read from the sub-data array 24 based on the input address as the output data selected in accordance with the comparison result of the comparator 26.

LRUアレイ30は、各エントリ単位で、メインアレイ10及びサブアレイ20におけるウェイの古さ順(最後に使用されてからの経過時間の順)を示すLRU情報を保持する。 LRU array 30, in each entry unit, holds a LRU information indicating oldness order of way in the main array 10 and sub-arrays 20 (order of the time elapsed since the last use). また、キャッシュ部3は、キャッシュ部3内の各機能部の制御等を行う図示しないキャッシュ制御部を有する。 The cache unit 3 includes a cache controller (not shown) performs the control of each functional unit in the cache unit 3. キャッシュ制御部は、例えば、LRU情報の更新を行ったり、キャッシュミスのときのメモリ4へのアクセスや各データアレイのリプレース等の制御を行ったりする。 Cache control unit, for example, or perform update of the LRU information, or performs control of replacement or the like of the access and the data array in the memory 4 when the cache miss.

本実施形態におけるキャッシュ部3において、アドレスの全ビットのうち、キャッシュラインサイズに対応する下位ビットをオフセットとして、オフセット部より上位に位置する、エントリ数に対応する所定数のビットがキャッシュのインデックスとなる。 In the cache unit 3 in this embodiment, of all bits of the address, as an offset the lower bits corresponding to the cache line size, located higher than the offset portion, a predetermined number of bits corresponding to the number of entries and the index of the cache Become. インデックス部よりさらに上位の残りのビットがキャッシュのタグとなる。 The remaining bits of still higher than the index portion becomes the tag of the cache. ここで、メインアレイ10とサブアレイ20とはエントリ数が異なる。 Here, the number of entries is different from the main array 10 and the sub-array 20. そのため、任意のアドレスに対し、メインアレイ10でのキャッシュのタグ及びインデックスと、サブアレイ20でのキャッシュのタグ及びインデックスとは異なる。 Therefore, different for any address, and the tag and index of the cache in the main array 10, a tag and an index of the cache in the subarray 20.

例えば、アドレスがその最下位ビットを1ビット目としその最上位ビットを32ビット目とする32ビットであり、キャッシュラインサイズが32バイトであり、メインアレイ10のエントリ数が128であり、サブアレイ20のエントリ数が32であるとする。 For example, the address is 32 bits for the least significant bit and the first bit to the most significant bit and 32 bit, cache line size is 32 bytes, a number of entries main array 10 is 128, the sub-arrays 20 number of entries is to be 32. このとき、メインアレイ10については、アドレスにおける1ビット目〜5ビット目の5ビットがオフセットとなり、6ビット目〜12ビット目の7ビットがインデックスとなり、13ビット目〜32ビット目の20ビットがタグとなる。 At this time, the main array 10, 5 bits of the first bit to 5 bit becomes offset in the address, it 7 bit 6 bit 12 bit is the index, the 20 bits of 13 bit to 32 bit the tag. また、サブアレイ20については、アドレスにおける1ビット目〜5ビット目の5ビットがオフセットとなり、6ビット目〜10ビット目の5ビットがインデックスとなり、11ビット目〜32ビット目の22ビットがタグとなる。 As for the sub-array 20, 5 bits of the first bit to 5 bit becomes offset in the address becomes 5 bits of the sixth bit to 10 bit is the index, 22 bits of the 11 bit to 32 bit and the tag Become.

図3は、本実施形態における情報処理装置でのメモリアドレスとキャッシュエントリとの対応を説明するための図である。 Figure 3 is a diagram for explaining the correspondence between the memory address and cache entries in the information processing apparatus of this embodiment. 図3において、100はメモリ(主記憶)であり、101はキャッシュ部のメインアレイ(メインデータアレイ)であり、102はキャッシュ部のサブアレイ(サブデータアレイ)である。 3, 100 denotes a memory (main memory), 101 is a main array of the cache unit (main data array), 102 is a sub-array of the cache unit (sub-data array). なお、図3に示す例では、メインアレイ10は、エントリ数が8、ウェイ数が2のアレイとし、サブアレイ102は、エントリ数が2、ウェイ数が4のアレイとする。 In the example shown in FIG. 3, the main array 10, the entry number 8, the number of ways is the second array, sub-array 102, the number of entries is 2, the number of ways is four arrays. また、キャッシュラインサイズは32バイトとする。 In addition, the cache line size is 32 bytes.

メモリ100からキャッシュ部のメインアレイ101、サブアレイ102へのデータのコピーはキャッシュラインサイズを単位として行われる。 Main array 101 of the cache unit from the memory 100, a copy of data to the sub-array 102 is performed a cache line size as a unit. メモリ空間はキャッシュラインサイズで分割され、分割された記憶領域(空間)を順番に各エントリに割り当てる。 Memory space is divided by the cache line size, assigned to each entry in turn divided memory area (space).

16進表記でアドレスA〜アドレス(A+20)の空間を“A”として示すと、図3に示す例では、例えばメモリ100における“0x0000”、“0x0100”、“0x0200”、・・・が、メインアレイ101の1つのエントリ(第0のエントリ)に割り当てられる。 When shown in hexadecimal notation as a space "A" address A~ address (A + 20), in the example shown in FIG. 3, "0x0000" in the example memory 100, "0x0100", "0x0200", ··· are the main assigned to one entry of the array 101 (the 0th entry). 同様に、例えばメモリ100における“0x0000”、“0x0040”、“0x0080”、“0x00c0”、“0x0100”、・・・が、サブアレイ102の1つのエントリ(第0のエントリ)に割り当てられる。 Similarly, for example, in the memory 100 "0x0000", "0x0040", "0x0080", "0x00c0", "0x0100", ··· are assigned to one entry subarray 102 (0th entry).

このように、本実施形態ではメモリ空間におけるキャッシュラインサイズで分割した1つの記憶領域を、メインアレイ101及びサブアレイ102にてそれぞれ1つのエントリに割り当てる。 Thus, a single storage area divided by the cache line size in the memory space in the present embodiment, each assigned to one entry in the main array 101 and sub-array 102. 例えば、図3に示した例において、メモリ100における“0x0000”が、メインアレイ101の第0のエントリに割り当てられているとともに、サブアレイ102の第0のエントリに割り当てられている。 For example, in the example shown in FIG. 3, is "0x0000" in the memory 100, together are assigned to the 0th entry in the main array 101, are assigned to the zeroth entry subarray 102.

ただし、本実施形態において、メモリ100のデータをコピーするときには、メインアレイ101の割り当てられたエントリ又はサブアレイ102の割り当てられたエントリの一方のブロックに登録される。 However, in this embodiment, when copying data in the memory 100 is registered in one of the blocks of the entry's assigned entry or sub array 102 has assigned the main array 101. したがって、メモリ100におけるあるアドレスのデータのコピーが、メインアレイ101とサブアレイ102との両方に同時に存在することはない。 Thus, copies of the data of a certain address in the memory 100, not simultaneously present in both the main array 101 and sub-array 102. メモリ100からメインアレイ101、サブアレイ102へのデータのコピーは、LRUアレイに保持されているLRU情報に基づいて行われる。 Main array 101 from memory 100, a copy of data to the sub-array 102 is performed based on the LRU information held in LRU array. メインアレイ101及びサブアレイ102の各々の割り当てられたエントリの各ブロックのうち、最後に使用されてから最も長い時間が経過したブロック(以下、最古ブロックとも称す。)にリプレースすることで、メモリ100のデータのコピーが行われる。 Among the blocks of each of the assigned entries of the main array 101 and sub-array 102, last block is the longest time has elapsed since the used (hereinafter, also referred to as the oldest block.) To be to replace the memory 100 copy of the data is carried out.

図4は、本実施形態における動作の一例を示すフローチャートである。 Figure 4 is a flowchart showing an example of the operation in this embodiment. 図4には、処理部(CPUコア)2がメモリ空間上のあるアドレスのデータをロードするときのキャッシュ部3の動作について示しており、キャッシュ部3の図示しないキャッシュ制御部による制御等に基づいて実行される。 FIG. 4, the processing unit (CPU core) 2 shows the operation of the cache unit 3 when loading data of addresses with upper memory space, based on the control or the like by the cache control unit (not shown) of the cache unit 3 It is executed Te.

ステップS11で、処理部(CPUコア)2がメモリ4にアクセスするために、処理部2からアクセス先を示すアドレスが送られると、ステップS12で、当該アドレスを用いて、キャッシュ部3内のメインアレイ10及びサブアレイ20が同時に参照される。 In step S11, since the processing unit (CPU core) 2 accesses the memory 4, the address from the processing unit 2 indicating the access destination is sent, at step S12, by using the address, the main cache unit 3 array 10 and sub-arrays 20 are referenced at the same time.

ステップS12では、メインアレイ10のエントリ数に応じたアドレス中のインデックス部に基づいてメインタグアレイ12が参照されるとともに、サブアレイ20のエントリ数に応じたアドレス中のインデックス部に基づいてサブタグアレイ22が参照される。 In step S12, with the main tag array 12 is referenced based on the index portion in the address corresponding to the number of entries main array 10, the sub tag array 22 based on the index portion in the address corresponding to the number of entries subarray 20 There is referenced. そして、メインタグアレイ12及びサブタグアレイ22の各ウェイにおいてインデックスに対応するブロックからタグが読み出され、読み出されたタグとアドレス中のタグ部のビットパターンとがウェイ毎に比較器16、26によって比較される。 The main tag array 12 and the tag from the block corresponding to the index in each way of the sub tag array 22 is read, read tag and the bit pattern of the tag part in the address and the comparator for each way 16,26 It is compared by.

比較の結果、メインタグアレイ12及びサブタグアレイ22のウェイのいずれかにおいて、読み出されたタグとアドレス中のタグ部のビットパターンとが一致する場合には、キャッシュヒットであると判定し(ステップS13のY)、ステップS14に進む。 Result of the comparison, in either of the ways of the main tag array 12 and the sub tag array 22, when the bit pattern of the tag part in the read-out tag and address matches, it is determined that a cache hit (step S13 in Y), the process proceeds to step S14. 一方、比較の結果、メインタグアレイ12及びサブタグアレイ22のいずれのウェイにおいても、読み出されたタグとアドレス中のタグ部のビットパターンとが一致しない場合には、キャッシュミスであると判定し(ステップS13のN)、ステップS15に進む。 On the other hand, the result of the comparison, in any of the ways of the main tag array 12 and the sub tag array 22, when the bit pattern of the tag part in the read-out tag and addresses do not match, it is determined that a cache miss (N in step S13), and proceeds to step S15.

ステップS14では、メインデータアレイ14又はサブデータアレイ24にてインデックスに対応し、かつ読み出されたタグとアドレス中のタグ部のビットパターンとが一致したウェイに対応するブロックから読み出されたデータが、選択回路18、28より出力データとして出力される。 In step S14, read out from the block corresponding to the corresponding to the index in the main data array 14 or the sub data array 24, and read the tag and the bit pattern of the tag part in the address matches Way Data but is output as the output data from the selection circuit 18, 28. また、出力されるデータが読み出されたブロックを、使用されてから最も時間が経過していないブロック(以下、最新ブロックとも称す。)とするようLRUアレイ30に保持されているLRU情報の更新を行い、動作を終了する。 Also, the block data output is read, block most time since the use has not elapsed (hereinafter, also referred to as the latest block.) Updating LRU information stored in LRU array 30 so as to It was carried out, and the operation is terminated.

一方、ステップS15では、図5に示すLRU参照動作処理を行う。 On the other hand, in step S15, performs the LRU reference operation processing shown in FIG. LRU参照動作処理では、LRUアレイ30に保持されているLRU情報を参照して、メインアレイ10及びサブアレイ20のブロックのうちから、既に登録されているデータのコピー及びそれに対応するタグを破棄するブロック(最古ブロック)を決定する。 In LRU reference operation processing refers to the LRU information held in the LRU array 30, among the blocks of the main array 10 and sub-arrays 20 discards the tag corresponding copy and data already registered block to determine (the oldest block).

図5は、図4に示したステップS15でのLRU参照動作処理の流れを示すフローチャートである。 Figure 5 is a flow chart showing the flow of the LRU reference operation process in step S15 shown in FIG.
ステップS21で、アクセス先を示すアドレスに対応するLRU情報がLRUアレイ30より読み出される。 In step S21, LRU information corresponding to the address indicating the access destination is read from the LRU array 30. すなわち、LRUアレイ30に保持されているLRU情報のなかから、アクセス先のアドレスを割り当てたメインアレイ10及びサブアレイ20のエントリでのウェイの古さ順が情報として含まれるLRU情報が読み出される。 That is, from among the LRU information held in LRU array 30, LRU information Way antiquity order entries of the main array 10 and sub-arrays 20 assigned an access destination address is included as the information is read.

ステップS22で、ステップS21において読み出したLRU情報を参照してメインアレイとサブアレイに跨って最古ブロックを決定し、メモリ4から読み出したデータのコピーがリプレースされる置き換え対象ブロックとする。 In step S22, to determine the oldest block across the main array and subarray with reference to the LRU information read in step S21, a copy of the data read from the memory 4 is the replacement target block is replaced.

図4に戻り、ステップS16では、メモリ4に対するアクセスが実行され、アクセス先を示すアドレスに対応するメモリ4の記憶領域からデータが読み出されて処理部2に供給される。 Returning to FIG. 4, in step S16, the access is performed to the memory 4, the data from the storage area of ​​the memory 4 corresponding to the address indicating the access destination is supplied to the processing unit 2 is read out. また、メモリ4から読み出されたデータのコピー及びそれに対応するタグが、ステップS15におけるLRU参照動作処理で決定された最古ブロックに登録(リプレース)される。 The tag the corresponding copy of the data and read from the memory 4 are registered (replace) the oldest block determined by the LRU reference operation processing in step S15. そして、データのコピー及びタグがリプレースされた最古ブロックを、最新ブロックとするようLRUアレイ30に保持されているLRU情報の更新を行い、動作を終了する。 Then, the oldest block in which the data of the copy and the tag is replaced, updates the LRU information stored in LRU array 30 to the latest block, the operation is ended.

本実施形態によれば、エントリ数が異なるメインアレイ10とサブアレイ20とを設け、メモリ空間をキャッシュラインサイズで分割した1つの領域を、メインアレイ10及びサブアレイ20のそれぞれにて1つのエントリに割り当てる。 According to this embodiment, provided the main array 10 and the sub-array 20 the number of entries is different, allocate memory space one region divided by the cache line size, in one entry in each of the main array 10 and sub-arrays 20 .

例えば、図6(A)に示すようにメインアレイ(ウェイ数2)のブロックmw00、mw10からなる第0のエントリが割り当てられるアドレスについては、サブアレイ(ウェイ数4)のブロックsw00、sw10、sw20、sw30からなる第0のエントリが割り当てられる。 For example, for the address 0th entry of blocks Mw00, mw10 the main array (way number 2) is assigned as shown in FIG. 6 (A), the block of the sub-array (way number 4) SW00, sw10, SW20, 0th entry consisting sw30 are assigned. また、メインアレイのブロックmw02、mw12からなる第2のエントリが割り当てられるアドレスについては、サブアレイの第0のエントリが割り当てられる。 The second entry of blocks Mw02, MW12 main array for address assigned is assigned 0th entry of the sub-array. メインアレイのブロックmw04、mw14からなる第4のエントリが割り当てられるアドレス、及びメインアレイのブロックmw06、mw16からなる第6のエントリが割り当てられるアドレスのそれぞれについても、サブアレイの第0のエントリが割り当てられる。 Block of main array mw04, mw14 fourth address entry is assigned consisting, and each also show a sixth address entry is assigned of blocks mw06, mw16 the main array are assigned a 0 entry subarray .

すなわち、サブアレイの第0のエントリは、メインアレイにおける第0のエントリ、第2のエントリ、第4のエントリ、及び第6のエントリの4つのエントリにより共有されることとなる。 That is, the 0th entry in the subarray, the 0th entry in the main array, the second entry, and be shared by the four entries of the fourth entry, and the sixth entry. このように構成することで、メインアレイの4つのエントリがサブアレイの1つのエントリを取り合うような仕組みを実現でき、メインアレイのエントリに対してサブアレイのエントリの各ブロック(ウェイ)を動的に割り当てることができる。 With such a configuration, it is possible to realize a mechanism such as four entries in the main array contend one entry in the sub-array, dynamically assigns each block of the sub-array of entries (ways) for the entry of the main array be able to. これにより、すべてのエントリに対して一様にウェイ数を増減させるのではなく、各エントリ単位で個別にウェイ数を動的に増減させることができる。 Thus, uniformly instead of increasing or decreasing the number of ways for all entries individually can dynamically increase or decrease the number of ways in each entry units.

例えば、メインアレイのウェイ数をm、サブアレイのウェイ数をnとすると、メインアレイの各エントリのウェイ数は、論理的に最小でm、最大で(m+n)となるように動的に変更可能である。 For example, if the number of ways of the main array m, subarray way number is n, the number of ways of each entry in the main array, logically minimum m, up to (m + n) and so as to dynamically changeable it is. 図6に示した例では、図6(B)に示すように各エントリのウェイ数を最小でメインアレイによる2ウェイとなり、最大でメインアレイとサブアレイによる6ウェイとなるように動的に変更することができる。 In the example shown in FIG. 6, minimum is 2-way by the main array way number of each entry, as shown in FIG. 6 (B), dynamically changed to such that the 6-way by the main array and subarray at maximum be able to. したがって、アプリケーションの実行中に、ハードウェアが自動的に判定して当該アプリケーションに応じてエントリ単位で動的にウェイ数を増減し最適なウェイ数に自動で変更することができ、キャッシュの利用効率やヒット率を向上させることができる。 Thus, while the application is running, dynamically increases or decreases the number of ways can be changed automatically to the optimum number of ways by the entry unit in accordance with the by hardware automatically determine the application, utilization efficiency of the cache the and the hit rate can be improved.

本実施形態によれば、サブアレイを設けることによるウェイ数の増加により、メインアレイのみの従来の方式では、キャッシュミスになってしまうようなケースでも、キャッシュヒットとなるケースが増加し、ヒット率を向上させることができる。 According to this embodiment, by increasing the way number due to the provision of the sub-array, the conventional method of only the main array, even in cases like becomes a cache miss, an increase of cases where a cache hit, the hit rate it is possible to improve. また、同一データアレイサイズ(データアレイの総ブロック数を同じとした場合)での本実施形態と従来方式とを比較すると、エントリ数を本実施形態におけるサブアレイに合わせた従来の構成と比較すると、比較器の数を少なくできる。 Also, comparing the present embodiment and the conventional method in the same data array size (if the same total number of blocks of data array), the number of entries when compared with the conventional configuration to suit the subarray of this embodiment, It can reduce the number of comparators.

また、同一データアレイサイズ(データアレイの総ブロック数を同じとした場合)での本実施形態と従来方式とを比較すると、必要とするエントリにサブアレイのブロックが動的に割り当てられることができるため、キャッシュの利用効率及びヒット率を向上させることができる。 Further, the same is compared with the a conventional system embodiment of the data array size (if the same total number of blocks of data array), it is possible to sub-array entry that requires blocks are dynamically allocated , it is possible to improve the efficiency and hit ratio of the cache. 例えば、例示したようなメインアレイを8エントリ、2ウェイとし、サブアレイを2エントリ、4ウェイとした本実施形態におけるキャッシュ部と、8エントリ、3ウェイの従来のキャッシュ部とを比較する。 For example, as exemplified main array of eight entries, the 2-way, compares the cache unit in the embodiment in which the sub-arrays 2 entry, a 4-way, eight entries, 3 and conventional cache unit of the way. このとき、従来においてはウェイサイズに相当する3回以上同じインデックスに対応するエントリにアクセスするとキャッシュミスとなってしまうが、本実施形態では最大で6回アクセスしてもキャッシュミスとならないことがありヒット率を向上させることができる。 In this case, in the conventional becomes Accessing the entry corresponding to 3 or more times the same index corresponding to the way size and a cache miss, but may not be a cache miss also be accessed six times at the maximum in this embodiment it is possible to improve the hit rate.

なお、前述した実施形態では、メインアレイのエントリに対してサブアレイのエントリのブロック(ウェイ)のすべてを動的に割り当てるようにしているが、あるブロック(ウェイ)についてメインアレイのあるエントリに固定して割り当てるようにしても良い。 In the embodiment described above, so that dynamically assign all sub-arrays of the entry block (way) for the entry of the main array, then fixed for a certain block (Way) to the entry of the main array it may be assigned Te.

次に、LRUアレイ30に保持されるLRU情報について説明する。 Next, a description will be given LRU information held in the LRU array 30.
キャッシュミスとなった場合には、キャッシュ部3にてデータのコピー及びタグの追い出しとリプレースがLRU情報に基づいて行われる。 When a cache miss, eviction and replacement of data in the copy and the tag is performed on the basis of the LRU information in the cache unit 3. 本実施形態では、メインアレイの複数のエントリがサブアレイの1つのエントリを取り合うこととなるため、サブアレイのエントリ数毎にメインアレイを分割して、それらが横に並んでいるとみなしてその総ウェイ数でのLRU情報とする。 In the present embodiment, since a plurality of entries of the main array is to keep in one entry of the sub-arrays, and divided into a main array for each subarray number of entries, the total way regarded as they are horizontally arranged the LRU information of a few.

例えば、図7(A)に示すように、メインアレイが8エントリ、2ウェイであるとし、サブアレイが2エントリ、4ウェイであるとすると、LRU情報は、図7(B)に示すようにエントリが配置されているとみなしたときのウェイの古さ順を示す。 For example, as shown in FIG. 7 (A), 8 entries main array, and a two-way, sub-array 2 entry, when a four-way, LRU information, entry as shown in FIG. 7 (B) but shows the old order of the way when was considered to have been placed. すなわち、メインアレイの第0のエントリ、第2のエントリ、第4のエントリ、第6のエントリ、及びサブアレイの第0のエントリを1組としたLRU情報がLRUアレイに保持される。 That is, the 0th entry in the main array, the second entry, the fourth entry, the sixth entry, and LRU information and the 0 set entries for the sub-array is held in LRU array. 同様に、メインアレイの第1のエントリ、第3のエントリ、第5のエントリ、第7のエントリ、及びサブアレイの第1のエントリを1組としたLRU情報がLRUアレイに保持される。 Similarly, the first entry in the main array, the third entry, fifth entry, seventh entry, and LRU information to the first set of entries of sub-arrays is held in LRU array.

ここで、LRU情報としてウェイの古さ順を単純にエンコードするとLRU情報のビット数は膨大となる。 Here, the number of bits LRU information becomes enormous when encoding simply the age order of the way as the LRU information. それを回避するには、例えばLRU情報を各アレイ内(メインアレイ内及びサブアレイ内のそれぞれ)とアレイ間(メインアレイ−サブアレイ間)で分割して保持するようにすれば良く、LRU情報のデータ量を低減することができる。 To avoid it, for example, the LRU information within each array between the array (each in the main array and the subarrays) - may be to hold divided by (the main inter-array subarray), data of the LRU information it is possible to reduce the amount. 例えば、図7に示した例では、図7(C)に示すように各アレイ内のLRU情報は2項関係によるエンコードとし、アレイ間のLRU情報は順序関係によるエンコードとすることで、1組あたりのLRU情報は46ビットで構成される。 For example, in the example shown in FIG. 7, LRU information within each array, as shown in FIG. 7 (C) and encodes by binary relations, LRU information between arrays by the encoding by the order relation, a set LRU information per consists of 46 bits. なお、この場合、アレイ間のLRU情報ではブロック単位ではなく、エントリ単位の最古順の識別が出来ればよい。 In this case, rather than a block unit in LRU information between the arrays, it may if it is the oldest order of identification entries units.

ここで、2項関係によるエンコードは、図8(A)に示すように2つのブロック(ウェイ)の新旧関係を1ビットで保持する方法である。 Here, the encoding by the binary relation is a method of retaining the old and new relationship between the two blocks (way) in 1 bit as shown in FIG. 8 (A). 図8(A)に示した例では、上位側から順に各ビットが、第0ブロックの第1ブロックに対する新旧関係、第0ブロックの第2ブロックに対する新旧関係、第0ブロックの第3ブロックに対する新旧関係、第1ブロックの第2ブロックに対する新旧関係、第1ブロックの第3ブロックに対する新旧関係、第2ブロックの第3ブロックに対する新旧関係を示している。 In the example shown in FIG. 8 (A), each bit from the upper to the order of old and new relationship for the first block of the block 0, the new and old relationship for the second block of the block 0, the new and old for the third block of the block 0 relationships, old and new relationship for the second block of the first block, the old and new relationship for the third block of the first block shows the old and new relationship for the third block of the second block. 例えば第iブロックの第jブロックに対する新旧関係(i,jは整数)を示すビットは、第iブロックが第jブロックより新しいときに値“0”とし、第iブロックが第jブロックより古いときに値“1”とする。 For example, a bit indicating new and old relationship (i, j is an integer) with respect to the j-th block of the i blocks is the i-th block is set to the value "0" when newer than the j blocks, when the i-th block is older than the j blocks the value "1". したがって、第2ブロック(最古)、第1ブロック、第0ブロック、第3ブロック(最新)の順に古い場合には、LRU情報は“001011”となる。 Accordingly, the second block (the oldest), the first block, block 0, if the old in the order of the third block (latest) is, LRU information is "001011".

また、順序関係によるエンコードは、図8(B)に示すようにブロック番号を古い順にLRU情報として保持する方法である。 Further, encoding by order relationship is a method for holding the block number as LRU information in chronological order, as shown in FIG. 8 (B). 第2ブロック(最古)、第1ブロック、第0ブロック、第3ブロック(最新)の順に古い場合には、図8(B)に示したようにLRU情報は“10010011”となる。 Second block (the oldest), the first block, block 0, if the old in the order of the third block (latest) is, LRU information as shown in FIG. 8 (B) is "10010011".

したがって、図7(C)に示した例のLRU情報は、mw01、mw13、mw11、mw15、sw21、sw11、mw03、mw07、mw17、sw01、mw05、sw31の順で古いブロックであることを示している。 Therefore, LRU information in the example shown in FIG. 7 (C) indicates a mw01, mw13, mw11, mw15, sw21, sw11, mw03, mw07, mw17, sw01, mw05, sequentially in the old block of sw31 there. mwXYは、メインアレイにおけるウェイX、エントリYのブロックであることを示し、swXYは、サブアレイにおけるウェイX、エントリYのブロックであることを示す。 mwXY indicates that it is a way X, block entry Y in the main array, SwXY indicates that it is a way X, block entry Y in the sub-array. なお、前述した説明では、LRU情報として完全な新旧関係を保持する場合を一例として説明したが、ある程度端折って新旧関係を保持するようにしても良い。 In the above description, a case has been described to retain a complete new and old relationship as LRU information as an example, may be held the old and new relationship to some extent Hasho'.

次に、図9及び図10を参照して、本実施形態においてキャッシュ部3のメインアレイ及びサブアレイにて各ウェイが動的にどのように割り当てられるかの具体的な動作例について説明する。 Next, with reference to FIGS. 9 and 10, described in the present embodiment in the main array and subarray of the cache unit 3 specific operation example of how each way is assigned how dynamically. 以下では、図9(A)に示すプログラム列が実行されたときを一例として示す。 Hereinafter, as an example when the program sequence shown in FIG. 9 (A) is executed. また、簡単のためキャッシュ構成は、キャッシュラインサイズが16バイトであり、図9(B)に示すようにメインアレイが8エントリ、2ウェイであり、サブアレイが2エントリ、4ウェイであるとして説明する。 The cache configuration for simplicity, the cache line size is 16 bytes, the main array is 8 entries as shown in FIG. 9 (B), a two-way, sub-array 2 entry, described as a 4-way .

図9(A)に示したプログラム列において“LD@(add),R1”は、アドレスaddのデータを読み出してレジスタR1へ書き込む処理を示している。 "LD @ (add), R1" in the program stream shown in FIG. 9 (A) shows the process of writing and reading data for address add to the register R1. また、以下では、メインアレイにおけるウェイwayX、エントリ0xYブロックをmwXYと示し、サブアレイにおけるウェイwayX、エントリ0xYブロックをswXYと示す。 In the following, a way in the main array WayX, an entry 0xY block indicated as MwXY, showing the way in sub-array WayX, an entry 0xY blocks SwXY. 例えば、メインアレイにおけるウェイway1のエントリ0x3のブロックはmw13と示し、サブアレイにおけるウェイway2のエントリ0x1のブロックはsw21と示す。 For example, a block of entries 0x3-way way1 in the main array represents a Mw13, block entry 0x1-way way2 in subarray shown and sw21. また、メインアレイのエントリ0x1、0x3、0x5、0x7、サブアレイのエントリ0x1を1組とするLRU情報(旧から新への昇順、以下同様)の初期値は、mw01、mw11、mw03、mw13、mw05、mw15、mw07、mw17、sw01、sw11、sw21、sw31であるとする。 The initial value of the main array entry 0X1,0x3,0x5,0x7, LRU information to the sub-array of entries 0x1 1 pair (ascending from the old to the new, hereinafter the same) are, mw01, mw11, mw03, mw13, mw05 , mw15, mw07, mw17, sw01, sw11, sw21, and is sw31.

“LD@(0x51018),R1”の命令まで処理したときの様子を図10(A)に示す。 "LD @ (0x51018), R1" shown in FIG. 10 (A) a state in which the processing until instruction. ブロックmw01にはアドレス0x1101_のデータがコピーされている。 The block mw01 data address 0x1101_ are copied. ('_'(アンダーバー)は命令がアクセスする当該アドレスのワードデータを含むキャッシュラインサイズで分割されたデータを示す。)また、ブロックmw11、mw07にはアドレス0x2101_、0x1207_のデータがそれぞれコピーされ、ブロックsw01、sw11、sw21にはアドレス0x1a01_、0x1301_、0x5101_のデータがそれぞれコピーされている。 ( '_' (Underscore) instruction. Shows the data divided by the cache line size including the word data of the address to be accessed) Further, the block mw11, Mw07 address 0X2101_, data 0x1207_ is copied respectively, the block sw01, sw11, sw21 address 0x1a01_, 0x1301_, data 0x5101_ are copied respectively. また、このときLRU情報は、mw03、mw13、mw05、mw15、mw17、sw31、mw01、mw11、mw07、sw01、sw11、sw21である。 Further, LRU information this time, mw03, mw13, mw05, mw15, mw17, sw31, mw01, mw11, mw07, sw01, sw11, is sw21.

次に、“LD@(0x11018),R1”の命令が実行されるが、アドレス0x1101_のデータのコピーはメインアレイのブロックmw01に存在するため、キャッシュヒットとなる。 Then, "LD @ (0x11018), R1" is the instruction is executed, a copy of the data of the address 0x1101_ is due to the presence in the block mw01 the main array, the cache hit. したがって、メインアレイ及びサブアレイについてデータの変更はなく、LRU情報の更新が行われる。 Therefore, there is no change of data for the main array and subarrays, updating the LRU information. LRU情報は、mw03、mw13、mw05、mw15、mw17、sw31、mw11、mw07、sw01、sw11、sw21、mw01と更新される。 LRU information, mw03, mw13, mw05, mw15, mw17, sw31, mw11, mw07, sw01, sw11, sw21, mw01 to be updated.

続いて、“LD@(0xab078),R1”、“LD@(0x22070),R1”、の命令が実行される。 Then, "LD @ (0xab078), R1", "LD @ (0x22070), R1", the instruction is executed. “LD@(0x22070),R1”の命令の処理完了後の様子を図10(B)に示す。 "LD @ (0x22070), R1" shown in FIG. 10 (B) a state of after completion of processing instructions. 図10(A)に示した状態との違いは、ブロックmw17にアドレス0xab07_のデータがコピーされ、ブロックsw31にアドレス0x2207_のデータがコピーされている点である。 Differences in the state shown in FIG. 10 (A), data is copied in the address 0xab07_ block mw17 is in that the block sw31 data address 0x2207_ are copied. 命令の実行に伴ってLRU情報が更新され、このときLRU情報は、mw03、mw13、mw05、mw15、mw11、mw07、sw01、sw11、sw21、mw01、mw17、sw31である。 LRU information is updated along with the execution of the instruction, LRU information this time, mw03, mw13, mw05, mw15, mw11, mw07, sw01, sw11, sw21, mw01, mw17, is sw31.

次に、“LD@(0xab070),R1”の命令が実行されるが、アドレス0xab07_のデータのコピーはメインアレイのブロックmw17に存在するため、キャッシュヒットとなる。 Then, "LD @ (0xab070), R1" is the instruction is executed, a copy of the data of the address 0xab07_ is due to the presence in the block mw17 the main array, the cache hit. したがって、メインアレイ及びサブアレイについてデータの変更はなく、LRU情報の更新が行われる。 Therefore, there is no change of data for the main array and subarrays, updating the LRU information. LRU情報は、mw03、mw13、mw05、mw15、mw11、mw07、sw01、sw11、sw21、mw01、sw31、mw17と更新される。 LRU information, mw03, mw13, mw05, mw15, mw11, mw07, sw01, sw11, sw21, mw01, sw31, mw17 to be updated.

次に、“LD@(0xcb070),R1”の命令が実行される。 Then, "LD @ (0xcb070), R1" of the instruction is executed. このとき、アドレス0xcb07_のデータのコピーはメインアレイ及びサブアレイには存在せず、キャッシュミスとなる。 In this case, a copy of the data of the address 0xcb07_ is not present in the main array and subarray, a cache miss. これにより、メモリよりアドレス0xcb07_のデータが読み出され最古ブロックにリプレースされる。 Thus, data from the memory address 0xcb07_ is replaced oldest block is read. ただし、リプレース可能なブロックは、アクセスされたアドレス(0xcb07_)に対応するメインアレイのブロック、すなわちブロックmw07、mw17、及びサブアレイのブロックsw01、sw11、sw21、sw31である。 However, replacement possible block, the block of the main array corresponding to the access address (0xcb07_), i.e. blocks mw07, mw17, and subarray blocks SW01, sw11, sw21, is sw31. したがって、LRU情報に基づいて、そのなかの最古ブロックmw07にアドレス0xcb07_のデータがコピーされる。 Therefore, based on the LRU information, oldest block mw07 the therein data address 0xcb07_ is copied. また、LRU情報の更新が行われ、LRU情報は、mw03、mw13、mw05、mw15、mw11、sw01、sw11、sw21、mw01、sw31、mw17、mw07となる。 The update of the LRU information is performed, LRU information becomes mw03, mw13, mw05, mw15, mw11, sw01, sw11, sw21, mw01, sw31, mw17, mw07.

次に、“LD@(0x2b070),R1”の命令が実行されるが、この場合もキャッシュミスとなり、メモリからアドレス0x2b07_のデータが読み出され最古ブロックにリプレースされる。 Then, "LD @ (0x2b070), R1" is the instruction is executed, again a cache miss, data from the memory address 0x2b07_ is replaced oldest block is read. リプレース可能なブロックは、アクセスされたアドレス(0x2b07_)に対応するメインアレイのブロック、すなわちブロックmw07、mw17、及びサブアレイのブロックsw01、sw11、sw21、sw31である。 Replacement possible block, the block of the main array corresponding to the access address (0x2b07_), i.e. blocks mw07, mw17, and subarray blocks SW01, sw11, sw21, is sw31. したがって、LRU情報に基づいて、そのなかの最古ブロックsw01にアドレス0x2b07_のデータがコピーされ、図10(C)に示すようになる。 Therefore, based on the LRU information, the data is copied address 0x2b07_ oldest block sw01 for therein, as shown in FIG. 10 (C). また、LRU情報の更新が行われ、LRU情報は、mw03、mw13、mw05、mw15、mw11、sw11、sw21、mw01、sw31、mw17、mw07、sw01となる。 The update of the LRU information is performed, LRU information becomes mw03, mw13, mw05, mw15, mw11, sw11, sw21, mw01, sw31, mw17, mw07, sw01.

なお、キャッシュ部がメインアレイとサブアレイの2つのアレイを有する場合を一例として説明したが、これに限定されるものではなく、3つ以上のアレイを有するようにしても良い。 Note that a case has been described where the cache unit has two arrays of the main array and subarray way of example, the present invention is not limited thereto, may have a three or more arrays. 複数のデータアレイを持ち、各データアレイのなかで少なくとも1つはエントリ数が異なる(すなわち、データアレイのエントリ数が2種以上)ものであれば良い。 Has a plurality of data arrays, at least one among the data array number of entries is different (i.e., the number of entry data array or two or more) may be one. そして、アクセス先を示すアドレス中のエントリ数に応じたビット数のインデックス部に基づいて同時に複数のアレイを参照するとともに、メモリ空間上のあるアドレスのデータのコピーがある時間においては2以上のデータアレイに同時に存在しないようにする。 Then, with reference to the plurality of arrays simultaneously based on the index of the number of bits corresponding to the number of entries in the address indicating the access destination, two or more data in time there is a copy of the data address in the upper memory space At the same time so as not to exist in the array. また、エントリ数が最大であるデータアレイのエントリ数は、他のデータアレイのエントリ数の整数倍であることが好ましい。 The number of entry data array number of entries is maximum is preferably an integer multiple of the number of entries other data array. また、ウェイ数についても2、4としたアレイを一例として示したが、これに限定されることなく、ウェイ数は任意である。 Although shown as an example arrays 2,4 also the number of ways, without being limited thereto, the number of ways is arbitrary. なお、ウェイ数を1、すなわちダイレクトマッピング方式相当としても良い。 Incidentally, the number of ways 1, i.e. may be a direct mapping method equivalent.

なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。 Incidentally, the embodiments are all only show just one example of a specific time of implementing the present invention, in which technical scope of the present invention should not be limitedly interpreted. すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。 That is, the present invention without departing from its spirit or essential characteristics thereof, can be implemented in various forms.

1 情報処理装置 2 処理部 3 キャッシュ部 4 メモリ 10 第1のアレイ(メインアレイ) 1 the information processing apparatus 2 processor 3 cache unit 4 memory 10 the first array (main array)
20 第2のアレイ(サブアレイ) 20 second array (sub-array)
30 LRUアレイ 12、22 タグアレイ 14、24 データアレイ 16、26 比較器 18、28 選択回路 30 LRU array 12, 22 tag arrays 14, 24 the data array 16, 26 comparators 18 and 28 selection circuits

Claims (5)

  1. データに処理を施す処理部と、 A processing unit which processes the data,
    前記データが記憶されている記憶部と前記処理部との間に設けられたキャッシュ部とを備え、 And a cache unit which is provided between the processing unit and a storage unit in which the data is stored,
    前記キャッシュ部は、 The cache unit,
    前記記憶部のデータがコピーされる複数のデータアレイと、 A plurality of data arrays data of the storage unit is copied,
    前記複数のデータアレイにおけるウェイの古さ順を示す第1の情報を保持する情報アレイとを有し、 And an information array that holds first information indicating oldness order of way in the plurality of data arrays,
    前記複数のデータアレイの各々はウェイ数が1以上であって、前記複数のデータアレイのうち少なくとも1つはエントリ数が異なり、 Wherein the plurality of each of the data array comprising a number of ways one or more, at least one of said plurality of data arrays have different number of entries,
    所定のサイズで分割された前記記憶部の記憶領域に対し、前記複数のデータアレイにてそれぞれ1つのエントリが割り当てられていることを特徴とする情報処理装置。 To split the storage area of ​​the storage unit has a predetermined size, the information processing apparatus characterized by one entry is allocated in the plurality of data arrays.
  2. 前記処理部からのアクセス先を示すアドレスを基に、各データアレイに応じた前記アドレス中のインデックス部に基づいて前記複数のデータアレイを同時に参照することを特徴とする請求項1記載の情報処理装置。 Based on the address indicating the access destination from the processing unit, the information processing according to claim 1, wherein the reference to the plurality of data arrays simultaneously on the basis of the index portion in the address corresponding to each data array apparatus.
  3. 前記記憶部のデータを前記データアレイにコピーする場合に、前記複数のデータアレイの何れか1つのデータアレイにコピーすることを特徴とする請求項1又は2記載の情報処理装置。 Wherein when the data storage unit copies the data array, the information processing apparatus according to claim 1 or 2, wherein copying to any one of the data array of the plurality of data arrays.
  4. 各データアレイ毎のデータアレイ内でのウェイの古さ順を示す情報と、前記データアレイ間でのウェイの古さ順を示す情報とに分割して前記第1の情報を前記情報アレイに保持することを特徴とする請求項1〜3の何れか1項に記載の情報処理装置。 Information indicating the oldness order of the way in the data array of each data array, holding the divided into information indicating oldness order first information Way between the data array to said information array the information processing apparatus according to any one of claims 1 to 3, characterized in that.
  5. エントリ数が最大である前記データアレイのエントリ数は、当該データアレイ以外の前記データアレイのエントリ数の整数倍であることを特徴とする請求項1〜4の何れか1項に記載の情報処理装置。 Number of entries the data array entry count is maximum, processing according to any one of claims 1 to 4, characterized in that an integer multiple of the number of entries the data array other than the data array apparatus.
JP2010027626A 2010-02-10 2010-02-10 The information processing apparatus Active JP5434646B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010027626A JP5434646B2 (en) 2010-02-10 2010-02-10 The information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010027626A JP5434646B2 (en) 2010-02-10 2010-02-10 The information processing apparatus

Publications (2)

Publication Number Publication Date
JP2011164975A true JP2011164975A (en) 2011-08-25
JP5434646B2 true JP5434646B2 (en) 2014-03-05

Family

ID=44595577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010027626A Active JP5434646B2 (en) 2010-02-10 2010-02-10 The information processing apparatus

Country Status (1)

Country Link
JP (1) JP5434646B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140211B2 (en) 2016-06-30 2018-11-27 Toshiba Memory Corporation Cache device and method for storing tag data and cache data in cache device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6390435B2 (en) * 2015-01-13 2018-09-19 富士通株式会社 Cache control method and a cache controller

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6423354A (en) * 1987-07-20 1989-01-26 Fujitsu Ltd Duplex buffer memory control system
JP3348367B2 (en) * 1995-12-06 2002-11-20 富士通株式会社 Multiple access method and multiple access cache memory device
JP3989312B2 (en) * 2002-07-05 2007-10-10 富士通株式会社 The cache memory device and a memory allocation method
JP4036206B2 (en) * 2004-03-31 2008-01-23 日本電気株式会社 Set associative cache system and method for controlling a cache memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140211B2 (en) 2016-06-30 2018-11-27 Toshiba Memory Corporation Cache device and method for storing tag data and cache data in cache device

Also Published As

Publication number Publication date Type
JP2011164975A (en) 2011-08-25 application

Similar Documents

Publication Publication Date Title
Kang et al. Performance trade-offs in using NVRAM write buffer for flash memory-based storage devices
US6725343B2 (en) System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
US5630097A (en) Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
US7284112B2 (en) Multiple page size address translation incorporating page size prediction
US5717893A (en) Method for managing a cache hierarchy having a least recently used (LRU) global cache and a plurality of LRU destaging local caches containing counterpart datatype partitions
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US6438655B1 (en) Method and memory cache for cache locking on bank-by-bank basis
US4774654A (en) Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US20050080986A1 (en) Priority-based flash memory control apparatus for XIP in serial flash memory,memory management method using the same, and flash memory chip thereof
US7219185B2 (en) Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
US20060143396A1 (en) Method for programmer-controlled cache line eviction policy
US20040139282A1 (en) Apparatus and method for memory management
US20100064111A1 (en) Information processing device including memory management device managing access from processor to memory and memory management method
US7502887B2 (en) N-way set associative cache memory and control method thereof
US6766431B1 (en) Data processing system and method for a sector cache
US20080256303A1 (en) Cache memory
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
US20060277365A1 (en) Method and system for on-chip configurable data ram for fast memory and pseudo associative caches
US20060230237A1 (en) Method and system for maintaining cache coherence of distributed shared memory system
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
US20040107318A1 (en) Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments
US7219197B2 (en) Cache memory, processor and cache control method
US20060123197A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US20040215900A1 (en) System and method for reducing contention in a multi-sectored cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150