JP5164505B2 - キャッシュメモリ制御装置 - Google Patents
キャッシュメモリ制御装置 Download PDFInfo
- Publication number
- JP5164505B2 JP5164505B2 JP2007257666A JP2007257666A JP5164505B2 JP 5164505 B2 JP5164505 B2 JP 5164505B2 JP 2007257666 A JP2007257666 A JP 2007257666A JP 2007257666 A JP2007257666 A JP 2007257666A JP 5164505 B2 JP5164505 B2 JP 5164505B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- index
- row
- line
- data
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
メモリ上に格納されたこれらのデータの一部をキャッシュに格納する際、キャッシュ制御装置はキャッシュのどのラインにデータを格納するかを決定する。ダイレクトマップ方式やセットアソシアティブ方式といった一般的なキャッシュ制御方式では、メモリアドレスの一部分のビット列をインデックス値として抜き出し、そのインデックス値と等しいライン番号をもつキャッシュラインにデータを格納している。
二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数である場合、分割されたデータそれぞれに割り振られるインデックス値の順番が各行で同じになる(後述する図4参照)。よって、列が同じデータには同じインデックス値が割り振られ、列方向(縦方向)に連続するデータアクセスを行えば、同じキャッシュラインに格納されるデータを連続してアクセスすることになる。特定のキャッシュラインに対するアクセスに偏りがあると、キャッシュの競合状態が発生し、キャッシュ性能が低下してしまう。
従来、このようなキャッシュラインに対するアクセスに偏りがあるかを判定するカウンタを設け、それを元にインデックス変換テーブルを構築するようにしたものがあった(例えば、特許文献1参照)。
例えば、二次元データの場合、
●二次元データは縦横どちらの方向にも関連するデータが並ぶことが多い
●行方向(横方向)の幅が固定されている
●二次元データは一次元的に並べて格納する
といったことから、列方向(縦方向)に連続するデータアクセスのように、一定間隔で飛び飛びになったデータアクセスを行うことが一次元データより発生しやすい。このような列方向(縦方向)に連続するデータアクセスとしては、フレームバッファに縦線を一本書き込むといった処理や行列データの縦データへの連続アクセスといったものがある。従って、このようなデータアクセスに対して一次元データと同様の方式を適用しても、必ずしもキャッシュ利用効率を向上させることができるとは限らなかった。
前記二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数であった場合、前記インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段と、
前記キャッシュメモリのタグとインデックスから、元のインデックスを復元するインデックス逆変換手段とを備えたものである。
図1は、この発明の実施の形態1によるキャッシュメモリ制御装置を示す構成図である。
図示のように、メモリ上のデータをキャッシュメモリ10に格納する際、そのデータのアドレスを三分割し、タグとインデックスとオフセットに分ける。図1では、タグ/インデックス/オフセットの順に分割しているが、必ずしもこのように分割する必要はない。図2の様に、アドレスビットの連続していないビットを連結させタグやインデックスを生成する場合もある。尚、キャッシュメモリ10の構成によってはオフセットがない場合もある。
ルックアップテーブル1は、行判定ビットを用いて、インデックスを異なるインデックスとする変換を行う。
図3は、行判定ビットとインデックスが共に2ビットであった場合におけるルックアップテーブルの具体例である。
インデックス変換用のルックアップテーブル1は、列の数が2の(インデックスビット数)乗、行の数が2の(行判定ビット数)乗のテーブルである。列と行が逆になっていてもよい。インデックスビットと行判定ビットを入力すると、変換後インデックスビットが出力される。ここで、変換後インデックスビットのビット幅は元のインデックスビットのビット幅に等しい。
ルックアップテーブル1は、行判定ビットが同じでインデックスが異なる場合に、出力される変換後インデックスに重複がないように構築するのが望ましい。また、ルックアップテーブル1は、インデックスが同じで行判定ビットが異なる場合に、出力される変換後インデックスに重複がないように構築するのが望ましい。
図1に示すように、アドレスを、タグ/インデックス/オフセットの順番に分割したとする。二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数である場合、図4のように、データを格納するキャッシュライン番号の順番が各行で同じになる。列方向(縦方向)に連続アクセスを行うと同じキャッシュラインに格納されるデータを連続してアクセスすることになる。特定のキャッシュラインに対するアクセスに偏りがあると、キャッシュの競合状態が発生し、キャッシュ性能が低下してしまう。
例えば、1行分のデータ容量が512バイトである場合、図5に示すように、アドレスの下位から数えて10ビット目が行ごとに変化する(尚、図5のアドレスはバイトアドレスである)。10ビット目を行判定ビットとすると、行判定ビットは1行目では「0」、2行目では「1」、3行目では「0」、4行目では「1」、5行目では「0」となる。このように、行判定ビットを1ビットで構成すると、奇数行か偶数行のいずれかであるかを判定できる。
実施の形態1では、二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数である場合について説明したが、実施の形態2は、二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数でない場合についての実施の形態である。図面上の構成は、図1と同様であるため、図1を援用して説明する。
図7は、二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数になっていない場合のメモリ構成図である。
図7に示すように、データを格納するキャッシュライン番号の順番が各行で同じになっていない。図7において、キャッシュライン番号は1行目では0から始まり、2行目では3から始まり、3行目では2から始まり、4行目では1から始まっている。列方向(縦方向)に連続アクセスを行っても、同じキャッシュラインに格納されるデータを連続してアクセスすることにならない。
実施の形態1では、1行分のデータ容量が2のべき乗で表せる数である場合について説明したが、実施の形態3では、1行分のデータ容量が2のべき乗で表せる数でない場合について説明する。尚、この実施の形態においても図面上の構成は図1と同様であるため、図1を援用して説明する。
図8は、1行分のデータ容量が2のべき乗で表せる数でない場合のメモリ構成図である。
実施の形態1と同様に、二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数がキャッシュラインの個数の倍数になっているため、データを格納するキャッシュライン番号の順番が各行で同じになる。列方向(縦方向)に連続アクセスを行うと同じキャッシュラインに格納されるデータを連続してアクセスすることになる。
実施の形態3では、1行分のデータ容量が2のべき乗で表せる数である場合に、行を判定できるビットをアドレスから抜き出すことができた場合についての実施の形態であるが、次に、実施の形態4として、行を判定できるビットをアドレスから抜き出すことができなかった場合について説明する。
図示のキャッシュメモリ制御装置は、ルックアップテーブル(インデックス変換手段)1a、デコーダ(キャッシュライン決定手段)2、エンコーダ3、逆ルックアップテーブル(インデックス逆変換手段)4a、キャッシュヒット判定手段5を備えている。ルックアップテーブル1aおよび逆ルックアップテーブル4aの基本的な構成は実施の形態1と同様であるが、ルックアップテーブル1aは、行数の下位ビットとインデックスとに対応した変換値を持ち、逆ルックアップテーブル4aは、この逆変換を行うよう構成されている。その他の構成は実施の形態1と同様である。
Claims (3)
- 二次元データのメモリアドレスによって指定されるインデックスを、前記メモリアドレスから抽出される前記二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、
前記二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数であった場合、前記インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段と、
前記キャッシュメモリのタグとインデックスから、元のインデックスを復元するインデックス逆変換手段とを備えたキャッシュメモリ制御装置。 - 二次元データのメモリアドレスによって指定されるインデックスを、前記二次元データの行に応じて異なるインデックスに変換するインデックス変換手段と、
前記二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数であった場合、前記インデックス変換手段で変換されたインデックスで格納するキャッシュラインを決定するキャッシュライン決定手段と、
キャッシュメモリのタグと、前記二次元データとともに前記キャッシュラインに対応して格納されている前記二次元データの行数を示す値とから、元のインデックスを復元するインデックス逆変換手段とを備えたキャッシュメモリ制御装置。 - 二次元データ1行分のデータを格納するのに必要なキャッシュラインの総数が、当該キャッシュラインの個数の倍数でない場合、インデックス変換手段を無効化し、キャッシュライン決定手段は、メモリアドレスで指定されたインデックスをキャッシュメモリにアクセスするキャッシュラインと決定することを特徴とする請求項1または請求項2記載のキャッシュメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007257666A JP5164505B2 (ja) | 2007-10-01 | 2007-10-01 | キャッシュメモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007257666A JP5164505B2 (ja) | 2007-10-01 | 2007-10-01 | キャッシュメモリ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009087139A JP2009087139A (ja) | 2009-04-23 |
JP5164505B2 true JP5164505B2 (ja) | 2013-03-21 |
Family
ID=40660462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007257666A Expired - Fee Related JP5164505B2 (ja) | 2007-10-01 | 2007-10-01 | キャッシュメモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5164505B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9122609B2 (en) * | 2011-03-07 | 2015-09-01 | Texas Instruments Incorporated | Caching method and system for video coding |
JP6459784B2 (ja) | 2015-06-03 | 2019-01-30 | 富士通株式会社 | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2845946B2 (ja) * | 1989-06-14 | 1999-01-13 | 株式会社日立製作所 | 画像データ変換装置 |
JPH0383150A (ja) * | 1989-08-28 | 1991-04-09 | Fujitsu Ltd | アドレス変換機構付キャッシュ装置の制御方式 |
JPH04153753A (ja) * | 1990-10-18 | 1992-05-27 | Fujitsu Ltd | キャッシュメモリ制御方式 |
JPH04209049A (ja) * | 1990-11-30 | 1992-07-30 | Fujitsu Ltd | キャッシュメモリアドレスマッピング方式 |
JPH0553909A (ja) * | 1991-08-23 | 1993-03-05 | Pfu Ltd | 画像データ処理におけるキヤツシユメモリ制御方式 |
JPH09101915A (ja) * | 1995-10-06 | 1997-04-15 | Matsushita Electric Ind Co Ltd | キャッシュメモリの制御方法 |
JPH10154230A (ja) * | 1996-11-21 | 1998-06-09 | Matsushita Electric Ind Co Ltd | 画像処理装置 |
JP5039334B2 (ja) * | 2006-07-28 | 2012-10-03 | 富士通セミコンダクター株式会社 | キャッシュメモリ制御方法、及び装置 |
-
2007
- 2007-10-01 JP JP2007257666A patent/JP5164505B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009087139A (ja) | 2009-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180260318A1 (en) | Read-write control method for memory, and corresponding memory and server | |
EP3121703B1 (en) | Data caching method, cache and computer system | |
JP5434738B2 (ja) | ディスク装置 | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
US10042576B2 (en) | Method and apparatus for compressing addresses | |
JP5745168B2 (ja) | 大型ramキャッシュ | |
JP4653830B2 (ja) | 命令キャッシュシステム | |
TWI382426B (zh) | 預測快取記憶體之存取位置的方法及系統 | |
JP2017519286A5 (ja) | ||
US10585803B2 (en) | Systems and methods for addressing a cache with split-indexes | |
US20100153645A1 (en) | Cache control apparatus and method | |
US20170185294A1 (en) | Memory system and operating method thereof | |
CN104714903A (zh) | 存储*** | |
US7480777B2 (en) | Cache memory device and microprocessor | |
JP5164505B2 (ja) | キャッシュメモリ制御装置 | |
KR20140088725A (ko) | 읽기 및 쓰기 접근에 따른 선택적 리프레쉬 기능을 구비한 동적 메모리 장치 및 그 선택적 리프레쉬 방법 | |
US10754786B2 (en) | Memory access method using simplified mapping table requiring smaller memory space | |
CN105335296B (zh) | 一种数据处理方法、装置及*** | |
JPH0553909A (ja) | 画像データ処理におけるキヤツシユメモリ制御方式 | |
TWI635391B (zh) | 快閃記憶體以及其管理方法 | |
JP2019159791A (ja) | メモリシステム | |
US10621107B1 (en) | Translation lookaside buffer (TLB) clustering system for checking multiple memory address translation entries each mapping a viritual address offset | |
CN112052190A (zh) | 一种基于布隆过滤器和二级lru表的固态硬盘热数据识别方法 | |
JPH03232034A (ja) | キャッシュ制御装置 | |
JPH04205449A (ja) | キャッシュ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100903 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120911 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121029 |
|
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: 20121120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121218 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5164505 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |