JPWO2006038258A1 - データプロセッサ - Google Patents
データプロセッサ Download PDFInfo
- Publication number
- JPWO2006038258A1 JPWO2006038258A1 JP2006539089A JP2006539089A JPWO2006038258A1 JP WO2006038258 A1 JPWO2006038258 A1 JP WO2006038258A1 JP 2006539089 A JP2006539089 A JP 2006539089A JP 2006539089 A JP2006539089 A JP 2006539089A JP WO2006038258 A1 JPWO2006038258 A1 JP WO2006038258A1
- Authority
- JP
- Japan
- Prior art keywords
- address translation
- address
- way
- data
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
TLBのエントリ数分のウェイを持つセットアソシアティブキャッシュメモリ(21)における各ウェイはTLBによるアドレス変換単位であるページサイズに対応する記憶容量をデータ部(DAT)に有し、アドレス部としてタグメモリ若しくはタグを持たない。TLBの各エントリ(ETY0〜ETY7)とキャッシュメモリの各ウェイ(WAY0〜WAY7)を1対1対応させ、TLBのアドレス変換対で規定される物理アドレスにマッピングされる領域のデータのみを対応するウェイにキャッシング可能とする。TLBの仮想ページアドレスの比較結果とTLBの有効ビットとの論理積によって得られるTLBヒット信号によってキャッシュデータアレイの動作を1ウェイのみ選択する。動作選択されたウェイのキャッシュ有効ビットをキャッシュヒット信号として利用する。
Description
本発明はキャッシュメモリとアドレス変換バッファとを有するデータプロセッサに関する。
キャッシュメモリにおいて、一定の大きさのブロックを単位として、外部メモリのデータをキャッシュメモリ内のデータに対応づけるマッピング方式として、ダイレクトマッピング方式、セットアソシアティブ方式、フルアソシアティブ方式がある。ここで、ブロックの大きさをBバイト、キャッシュメモリ内のブロック数をcとすると、外部メモリのアドレスaのバイトが含まれるブロックの番号mをa/Bの整数部とする。ダイレクトマッピング方式では、番号mの外部メモリのブロックはキャッシュメモリ内において式m mod cで得られる番号のブロックに一意的にマッピングされる。ダイレクトマッピングでは、キャッシュメモリ内の同一ブロックに割り当てられる複数のブロックが同時に使用されると衝突が発生してキャッシュヒット率が低下する。要するに、別アドレスでも同一ブロック(キャッシュライン)がインデックスされる場合が多い、ということである。これに対してフルアソシアティブ方式では、外部メモリのどのブロックもキャッシュメモリのどのブロックに対してもマッピング可能とする方式である。しかしながら、フルアソシアティブ方式では、キャッシュメモリの全ブロックを各アクセス毎に連想検索しなければならず、実用的なキャッシュ容量では、実現困難である。このため、実用的には、両者の中間のセットアソシアティブ方式が一般的に用いられる。セットアソシアティブ方式は、n(n=2、4又は8程)個のキャッシュメモリ内ブロックをまとめた単位をセットと定義し、このセットに対してはダイレクトマッピングを適用し、セット内のブロック(ウェイ)に対しては、フルアソシアティブマッピングを適用することによって、両者の長所を生かす構成であり、nの値によりnウェイセットアソシアティブ方式と称される。
4ウェイセットアソシアティブ方式では、まず仮想アドレスのインデックスビットでインデックスされる4つの各ウェイのキャッシュラインからタグと有効ビットとデータを読み出す。実用的なキャッシュ方式である物理アドレスタグ方式のキャッシュでは、仮想アドレスをアドレス変換バッファ(TLB)により変換した物理アドレスと各ウェイのタグとを比較する。タグが一致してかつ有効ビットが1であるウェイがキャッシュヒットとなる。キャッシュヒットしたウェイのデータアレイからのデータを選択することでCPUの要求したデータを供給することができる。全てのウェイがヒットしない場合がキャッシュミスであり、この場合は下位階層のキャッシュメモリ又は外部メモリへアクセスして有効なデータを取得する必要がある。尚、フルアソシアティブ、セットアソシアティブ、ダイレクトマッピングの考え方はキャッシュとは独立にTLBの構成にも採用できる。
本発明完成後の先行技術調査にて特許文献1が得られた。特許文献1にはTLBとキャッシュメモリを備えたマイクロプロセッサにおいてTLBヒット判断とキャッシュヒット判断とを効率的に行う発明に関する記載がある。すなわち、TLBとキャッシュメモリとを兼ねるTLB/キャッシュを配置し、仮想アドレスから物理アドレスへの変換の際に、仮想アドレスによりTLB/キャッシュをインデックスしてタグを読み出し、読出したタグと仮想アドレスの上位側ビットを比較し、その比較結果信号と有効フラグCVによりキャッシュヒット信号を生成する。この技術は、1回の比較動作でキャッシュヒットの判断とTLBヒットの判断をまとめて行うことを特徴としており、ダイレクトマップを一例として示している。セットアソシアティブ形態とする場合には、当然複数のウェイは並列動作され、ウェイ毎にキャッシュヒットの判断とTLBヒットの判断がまとめて行われる。特に、1キャッシュラインのデータはアドレス変換単位であるページサイズに等しくされる場合もあり、インデックスによるキャッシュラインの読出し及び書き込み単位は32バイトなどの通常サイズに比べて1キロバイトや4キロバイトのように数十倍以上にも及ぶことになる。
本発明者はセットアソシアティブキャッシュメモリによる電力消費を検討した。例えば4ウェイセットアソシアティブキャッシュメモリの場合、メモリアクセスが発生する毎に、4ウェイ分のタグを読み出してキャッシュヒット判定を行う必要がある。4ウェイ分のデータの同時にあらかじめ読み出しておき、前記キャッシュヒット判定信号でヒットしたウェイのデータを選択する。このため、タグメモリ4ウェイ分とデータメモリ4ウェイ分の全てに対して読み出し動作を行う必要があり消費電力が大きいということが本発明者によって見出された。
データプロセッサの低消費電力化に対する要求は、プロセスの微細化による動作周波数の向上や論理規模の増加により益々高まってきており、電池駆動のシステムや安価なパッケージを必要とするデータプロセッサでは特に大きな課題である。
こうした背景から本発明者は、動作時の消費電力が大きいキャッシュメモリの無駄な読み出しを省くことについて検討した。キャッシュヒット率の観点から2〜8ウェイを持つセットアソシアティブキャッシュメモリが主流である。セットアソシアティブキャッシュメモリでは全てのウェイのタグアレイとデータアレイを読み出す必要があるが、実際に使われるのは一つのウェイから読み出したデータのみである。また、外部メモリの連続した領域がキャッシングされることが自然であるためタグには同一の物理ページアドレス(物理ページアドレス番号)が数多く登録される傾向があり、その物理アドレスはTLBの物理ページ番号と同一である。そこで本発明者は、TLBの物理ページ番号とキャッシュのタグを兼ねるようにして、セットアソシアティブキャッシュメモリにおけるデータアレイをTLBのヒット信号に従って1ウェイのみ起動するという着眼点を得た。特許文献1による着眼点はTLBヒット判断とキャッシュヒット判断とを効率的に行うために、TLBの物理ページ番号とキャッシュのタグを兼ねるというものである。
本発明の目的は、セットアソシアティブキャッシュメモリとアドレス変換バッファを有するデータプロセッサにおいて前記セットアソシアティブキャッシュメモリによる電力消費を低減することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。すなわち、TLBのエントリ数分のウェイを持つセットアソシアティブキャッシュメモリにおける各ウェイはTLBによるアドレス変換単位であるページサイズに対応する記憶容量をデータ部に有し、アドレス部としてタグメモリ若しくはタグを持たない。TLBの各エントリとキャッシュメモリの各ウェイを1対1対応させ、TLBのアドレス変換対で規定される物理アドレスにマッピングされる領域のデータのみを対応するウェイにキャッシング可能とする。TLBの仮想ページアドレスの比較結果とTLBの有効ビットとの論理積によって得られるTLBヒット信号によってキャッシュデータアレイの動作を1ウェイのみ選択する。動作選択されたウェイのキャッシュ有効ビットをキャッシュヒット信号として利用する。以下に本発明を複数項目に分けて更に説明する。
〔1〕データプロセッサは、アドレス変換バッファとセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファはアドレス変換対を格納するためのn個のエントリフィールドを有し、前記キャッシュメモリは前記エントリフィールドに一対一対応されるn個のウェイを有し、前記各々のウェイはアドレス変換単位であるページサイズの記憶容量を有するデータフィールドを備える。前記アドレス変換バッファはエントリフィールド毎の連想比較結果を対応するウェイに出力し、前記ウェイは入力した連想比較結果の連想ヒットに応答してメモリ動作を開始する。上記した手段によれば、TLBの連想ヒットに応答して対応する一つのウェイのみ起動するから、セットアソシアティブキャッシュメモリにおいて全てのウェイのタグアレイとデータアレイを並列に読み出し動作させることを回避することができ、低消費電力に資することができる。
本発明の具体的な形態として、前記アドレス変換対は仮想ページアドレスとこれに対応する物理ページアドレスとを対とする情報を有し、前記データフィールドが保有するデータの物理ページアドレスは、対応するエントリフィールドのアドレス変換対が保有する物理ページアドレスに等しい。前記キャッシュメモリは前記データフィールドと対のアドレスタグフィールドを持つことを必要としない。
前記アドレス変換バッファは、入力した変換対象アドレスを前記エントリフィールドの仮想ページアドレスと比較し、比較結果が一致したエントリフィールドが有効であることを条件に、当該エントリフィールドに対応するウェイにウェイヒットを通知し、このウェイヒットの通知が連想比較結果の連想ヒットを示す。
前記アドレス変換バッファによる前記連想比較結果が全て連想ミスであるときアドレス変換バッファのエントリをリプレースする制御ユニット(2,24)を有し、前記制御ユニットはアドレス変換バッファのエントリをリプレースするとき、リプレースされるエントリに対応するキャッシュメモリのウェイのデータフィールドを無効化する。前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのウェイのデータフィールドを無効化するとき、コピーバックされるべきデータフィールドのデータを有している場合には下位側メモリに書き戻しする。
〔2〕本発明の別の観点によるデータプロセッサは、アドレス変換バッファとセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファはアドレス変換対を格納するためのn個のエントリフィールドを有し、前記キャッシュメモリは前記エントリフィールドに一対一対応されるn個のウェイを有し、前記各々のウェイは対応するエントリフィールドが保有する物理ページアドレスのデータの格納に割り当てられる。前記ウェイは対応するエントリフィールドに関する連想比較結果が連想ヒットになるのを条件にメモリ動作を開始する。したがって、セットアソシアティブキャッシュメモリにおいて全てのウェイのタグアレイとデータアレイを並列に読み出し動作させることを回避することができ、低消費電力に資することができる。
本発明の具体的な形態として、全てのエントリフィールドに関する前記連想比較結果が連想ミスであるときアドレス変換バッファのエントリをリプレースする制御ユニットを有し、前記制御ユニットはアドレス変換バッファのエントリをリプレースするとき、リプレースされるエントリに対応するキャッシュメモリのウェイのキャッシュデータを無効化する。前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのウェイのデータを無効化するとき、コピーバックされるべきデータを有している場合には下位側メモリに書き戻しする。
〔3〕本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファとセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファはアドレス変換対を格納するためのn個のエントリフィールドと、アドレス変換の変換ヒットになるエントリフィールドを予測する予測回路とを有し、前記キャッシュメモリは前記エントリフィールドに一対一対応されるn個のウェイを有し、前記各々のウェイは対応するエントリフィールドが保有する物理ページアドレスに配置されているデータの格納に割り当てられる。前記ウェイは対応するエントリフィールドがアドレス変換ヒットの予測領域であるのを条件にメモリ動作を開始し、前記キャッシュメモリは前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件にキャッシュヒットを生成する。
TLBの連想ヒットに応答して対応する一つのウェイを起動する制御形態は、一つのウェイの動作を起動するタイミングがTLBの連想検索結果が出た後であり、TLBの連想検索に並行してキャッシュメモリのインデックスを行う制御形態に比べて、キャッシュメモリのインデックス動作までに要する時間が長くなる。予測回路による予測結果にしたがってキャッシュメモリのインデックス動作を予め開始することによってその動作開始の遅れを小さくすることができる。予め開始したキャッシュ動作のキャッシュヒットは前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件とするから、誤った予測によるキャッシュ動作が有効にされることはない。
TLBの連想ヒットに応答して対応する一つのウェイを起動する制御形態は、一つのウェイの動作を起動するタイミングがTLBの連想検索結果が出た後であり、TLBの連想検索に並行してキャッシュメモリのインデックスを行う制御形態に比べて、キャッシュメモリのインデックス動作までに要する時間が長くなる。予測回路による予測結果にしたがってキャッシュメモリのインデックス動作を予め開始することによってその動作開始の遅れを小さくすることができる。予め開始したキャッシュ動作のキャッシュヒットは前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件とするから、誤った予測によるキャッシュ動作が有効にされることはない。
〔4〕本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファは仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換対を有し、前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する物理ページアドレス情報と共通化し、前記アドレス変換バッファのヒット信号に応じて対応するキャッシュのウェイの動作を選択する。
本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファは仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換対を有し、前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によって指定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し、前記アドレス変換バッファのウェイのヒット信号に応じて、対応するウェイの動作を選択する。
予測回路を用いる本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路とを有し、前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する物理ページアドレス情報と共通化し、前記予測回路による予測に応じて対応するキャッシュのウェイの動作を選択し、前記予測が実際のアドレス変換結果に一致することを条件にキャッシュヒットを生成する。
予測回路を用いる本発明の更に別の観点によるデータプロセッサは、アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、前記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報を保有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路とを有し、前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によって指定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し、前記予測回路による予測に応じて対応するキャッシュのウェイの動作を選択し、前記予測が実際のアドレス変換結果に一致することを条件にキャッシュヒットを生成する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、セットアソシアティブキャッシュメモリにおけるデータアレイをTLBの変換ヒット信号に従って1個のウェイのみ動作を選択するから、セットアソシアティブキャッシュメモリとアドレス変換バッファを有するデータプロセッサにおいて前記セットアソシアティブキャッシュメモリによる電力消費を低減することができる。
1 データプロセッサ
2 CPU
3 アドレス変換バッファ及びキャッシュユニット
4 内部バス
5 バスコントローラ
6 メインメモリ
20 命令アドレス変換バッファ
21 命令キャッシュメモリ
22 データアドレス変換バッファ
23 データキャッシュメモリ
24 制御回路
25 命令フェッチ信号
26 仮想命令アドレス
27 仮想アドレス変換ヒット信号
28 命令
30 データフェッチ信号
31 データアドレス
32 仮想アドレス変換ヒット信号
33 データ
ETY0〜ETY7 エントリ
VPN 仮想ページアドレス(エントリフィールド)
PPN 物理ページアドレス(エントリフィールド)
V 有効ビット(エントリフィールド)
50[7:0] エントリ変換ヒット信号
27[7:0] 仮想アドレス変換ヒット信号
65 キャッシュヒット信号
70 予測回路
71 予測一致確認回路
72[7:0] 仮想アドレス変換ヒット予測信号
73[7:0] 予測信号
2 CPU
3 アドレス変換バッファ及びキャッシュユニット
4 内部バス
5 バスコントローラ
6 メインメモリ
20 命令アドレス変換バッファ
21 命令キャッシュメモリ
22 データアドレス変換バッファ
23 データキャッシュメモリ
24 制御回路
25 命令フェッチ信号
26 仮想命令アドレス
27 仮想アドレス変換ヒット信号
28 命令
30 データフェッチ信号
31 データアドレス
32 仮想アドレス変換ヒット信号
33 データ
ETY0〜ETY7 エントリ
VPN 仮想ページアドレス(エントリフィールド)
PPN 物理ページアドレス(エントリフィールド)
V 有効ビット(エントリフィールド)
50[7:0] エントリ変換ヒット信号
27[7:0] 仮想アドレス変換ヒット信号
65 キャッシュヒット信号
70 予測回路
71 予測一致確認回路
72[7:0] 仮想アドレス変換ヒット予測信号
73[7:0] 予測信号
《データプロセッサ》
図2には本発明の一例に係るデータプロセッサが示される。同図に示されるデータプロセッサ(MPU)1は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板(半導体チップ)に形成される。このデータプロセッサ1は、データ処理ユニットとして、例えば、中央処理装置(CPU)2を有し、中央処理装置2はアドレス変換バッファ及びキャッシュユニット(TLB・CACH)3を介して内部バス(IBUS)4に接続される。特に制限されないが、前記内部バス4にはスプリット・トランザクション・バスのバスプロトコルが採用される。内部バス4には外部バス制御若しくは外部メモリインタフェース制御を行うバスコントローラ(BSC)5が接続される。図においてバスコントローラ5にはシンクロナスDRAMなどによって構成されるメインメモリ(MMRY)6が接続される。また、バスコントローラに接続される外部回路はメモリに限定されず、その他LSI(例えばLCDC、周辺回路)が接続されるように構成されいていても良い。更に前記内部バス4にはバスブリッジ回路(BBRG)7を介して周辺バス(PBUS)8が接続される。周辺バス8には割り込みコントローラ(INTC)10、クロックパルスジェネレータ(CPG)11などの周辺回路が接続される。周辺バス8と内部バス4にはダイレクト・メモリ・アクセス・コントローラ(DMAC)12が接続され、モジュール間のデータ転送制御を行う。
図2には本発明の一例に係るデータプロセッサが示される。同図に示されるデータプロセッサ(MPU)1は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板(半導体チップ)に形成される。このデータプロセッサ1は、データ処理ユニットとして、例えば、中央処理装置(CPU)2を有し、中央処理装置2はアドレス変換バッファ及びキャッシュユニット(TLB・CACH)3を介して内部バス(IBUS)4に接続される。特に制限されないが、前記内部バス4にはスプリット・トランザクション・バスのバスプロトコルが採用される。内部バス4には外部バス制御若しくは外部メモリインタフェース制御を行うバスコントローラ(BSC)5が接続される。図においてバスコントローラ5にはシンクロナスDRAMなどによって構成されるメインメモリ(MMRY)6が接続される。また、バスコントローラに接続される外部回路はメモリに限定されず、その他LSI(例えばLCDC、周辺回路)が接続されるように構成されいていても良い。更に前記内部バス4にはバスブリッジ回路(BBRG)7を介して周辺バス(PBUS)8が接続される。周辺バス8には割り込みコントローラ(INTC)10、クロックパルスジェネレータ(CPG)11などの周辺回路が接続される。周辺バス8と内部バス4にはダイレクト・メモリ・アクセス・コントローラ(DMAC)12が接続され、モジュール間のデータ転送制御を行う。
前記CPU2は、特に制限されないが、汎用レジスタや算術論理演算器などを備えて演算を行う演算部と、プログラムカウンタや命令デコーダ等を備えて命令のフェッチや解読並びに命令実行手順を制御したり演算制御を行う命令制御部とを有する。
前記アドレス変換バッファ及びキャッシュユニット3は、命令アドレス変換バッファ(ITLB)20、命令キャッシュメモリ(ICACHE)21、データアドレス変換バッファ(DTLB)22、データキャッシュメモリ(DCACHE)23、及び制御回路24を有する。ITLB20は仮想命令アドレスとこれに対応される物理命令アドレスとの対の情報を変換対として有する。DTLB21は仮想データアドレスとこれに対応される物理データアドレスとの対の情報を変換対として有する。それら変換対はメインメモリ6上のページ管理情報の一部のコピーとされる。ICACHE21はメインメモリ上のプログラム領域が保有するプログラムの一部の命令のコピーを有する。DCACHE23はメインメモリ上のワーク領域が保有するデータの一部のコピーを有する。
CPU2は命令フェッチを行うとき、ITLB20及びICACHE21に、命令フェッチ信号25をアサートし、且つ仮想命令アドレス26を出力する。ITLB20は仮想アドレスに対する変換ヒットのとき仮想アドレス変換ヒット信号27をICACHE21に出力する。ICACHE21は仮想命令アドレスに応ずる命令28をCPU2に出力する。CPU2はデータフェッチを行うとき、DTLB22及びDCACHE23に、データフェッチ信号30をアサートし、且つ仮想データアドレス31を出力する。DTLB22は仮想アドレスに対する変換ヒットのとき仮想アドレス変換ヒット信号32をDCACHE23に出力する。リードアクセスの場合にはDCACHE23は仮想データアドレスに応ずるデータ33をCPU2に出力し、ライトアクセスの場合にはDCACHE23は仮想データアドレスに応ずるキャッシュラインにCPU2からのデータ33を書き込む。制御回路24は、ITLB20及びDTLB22における変換ミスの発生に応答してCPU2にTLB例外処理要求を通知する制御などを行う。また、制御回路24は、ICACHE21及びDCACHE23におけるキャッシュミスの発生に応答するキャッシュエントリのリプレース制御などを行う。
前記アドレス変換及びキャッシュユニット3は、内部バス4との間で、物理命令アドレス40の出力、命令41の入力、データアドレス42の出力、データ43の入出力など行う。
《アドレス変換バッファ及びキャッシュユニット》
図1にはITLB及びICACHEの詳細な一例が示される。ここではITLB20は例えば8エントリのフルアソシアティブ構成、ICACH21は例えば8ウェイセットアソシアティブ構成とする。
図1にはITLB及びICACHEの詳細な一例が示される。ここではITLB20は例えば8エントリのフルアソシアティブ構成、ICACH21は例えば8ウェイセットアソシアティブ構成とする。
ITLB20には2個のエントリETY0、ETY7が代表的に示される。8エントリのフルアソシアティブ構成においてエントリをウェイと称することも可能であるが、ここではキャッシュメモリのウェイと区別するためにエントリと称する。各々のエントリには仮想ページアドレス(VPN)、エントリの有効ビット(V)、物理ページアドレス(PPN)を保有するためのエントリフィールドを有する。VPNとPPNは変換対を構成する。この例ではITLB20によるアドレス変換単位であるページサイズは4キロバイトとされ、仮想アドレス空間を32ビットアドレス空間とする。VPN及びPPNのビット幅は第13ビット目から第32ビット目までの20ビット([31:12])とされる。各エントリにおいてCMPは比較手段、ANDは論理積ゲートを機能的に示している。フルアソシアティブ構成のメモリにはビット単位で比較機能を有するメモリセルを採用することができ、この場合には比較機能及び論理積機能はビット単位でメモリセルに担わせてよい。
CPU2が仮想命令アドレス26を発行すると、そのうちの仮想ページアドレス[31:12]が比較手段CMPによりVPN([31:12])と比較され、これが一致してかつ有効ビットTVが1(有効レベル)である場合にエントリETY0におけるエントリ変換ヒット信号50[0]がヒットを意味する論理値1となる。各エントリからのエントリ変換ヒット信号50[7:0]が同時に2つ以上論理値1になるTLBマルチヒット状態は通常は生じないようになっている。TLBマルチヒット状態が発生された場合にはその状態を検出し、マルチヒット例外処理要求をCPU2に通知することで対処するようになっている。論理和回路(OR)51は8本の信号50[7:0]の論理和を採って変換ヒット信号53を生成する。制御回路24は変換ヒット信号50を入力し、TLBミスが通知されたときCPU2にTLBミス例外要求を発生する。また、エントリのPPNはエントリ変換ヒット信号50[7:0]によってセレクタ52で一つが選択され物理ページアドレスとして出力される。この物理ページアドレスは、必要に応じて図2の40で示される物理アドレス40を構成する物理ページアドレスとして内部バス4に出力される。前記エントリ変換ヒット信号50[7:0]はアンドゲート54で命令フェッチ信号25と論理積が採られ、仮想アドレス変換ヒット信号27[7:0]として命令キャッシュメモリ21に供給される。
命令キャッシュメモリ21は8個のウェイWAY0〜WAY7を有する。ウェイWAY0〜WAY7の全て又は任意の一つを指称するときは単にウェイWAYとも記す。各々のウェイWAY0〜WAY7はデータフィールドDATと有効ビットフィールドVを有し、各々のウェイWAYのデータフィールドのキャッシュ容量はページサイズと一致しており4キロバイトである。データフィールドDATのキャッシュラインサイズは32バイトの例で示しており、仮想アドレスの下位側 [11:5]が命令キャッシュメモリ21へのインデックスアドレス60として与えられる。仮想アドレスの下位アドレス[4:0]はライン内オフセットアドレス61とされ、1ライン内32バイトの中でのデータ位置の選択に用いられる。その選択にはセレクタ63を用いる。8個のウェイWAY0〜WAY7の動作は仮想アドレス変換ヒット信号27[7:0]によって個別に指示される。すなわち、各々のウェイWAY0〜WAY7は対応する仮想アドレス変換ヒット信号27[7:0]が変換ヒットであるときメモリ動作が選択される。メモリ動作が選択されたウェイWAYは、インデックスアドレスによるアドレシングなどが可能にされ、メモリセルの選択、選択されたメモリセルから記憶情報を読み出し、或いは選択されたメモリセルに情報を記憶することが可能にされる。したがって、命令アクセス要求がある場合でも、対応する仮想アドレス変換ヒット信号27[7:0]がヒットしない限りウェイWAYはは起動しない。仮想アドレス変換ヒット信号27[7:0]は仮想ページ単位の変換ヒット信号であるから、仮想アドレス変換ヒット信号27[7:0]は1つしか論理値1(変換ヒット値)にならず、動作されるウェイは一つに限られる。要するに、TLBによるアドレス変換ヒットに係る仮想ページに対応する一つのウェイWAYだけが動作される。全てのウェイが並列動作されない。これにより、無駄な電力消費を抑制することができる。
起動されたウェイWAYでは、データフィールドDATと有効ビットフィールドVからインデックスアドレス60に対応するキャッシュラインが選択され、データと有効ビットが読み出される。読み出されたデータはオフセットアドレス61によりセレクタ63で選択される。セレクタ63から出力されたデータと前記ウェイから読み出された有効ビットは仮想アドレス変換ヒット信号27[7:0]によって選択動作を行うセレクタ64で選択されて出力される。セレクタ64で選択された有効ビットは制御回路24に供給される。制御回路24は有効ビットをキャッシュヒット信号65とみなし、キャッシュヒットであれば(有効ビットが有効を示す論理値であれば)、前記セレクタ64で選択されたデータをキャッシュデータ28としてCPU2に供給される。キャッシュミスであれば、バスコントローラ5を介してメインメモリ6をアクセスして、対応する命令をそのキャッシュラインに取り込む制御を行うと共に、取り込んだ命令をCPU2に供給する。
図1では命令系のITLB及びICACHEについて説明したが、データ系のDTLB及びDCACHETLBについても同様に構成することができる。データの場合は書き込みアクセスも発生するが、ウェイの選択以外は従来のキャッシュメモリと特別異なる操作を行う必要はない。また、命令とデータを区別しない統合TLB、統合キャッシュメモリの構成を採用する場合も同様である。詳細は後述するがTLBミスと関係してキャッシュメモリの操作が必要になる。
図3には図1に代表されるようにアドレス変換バッファとキャッシュメモリが密結合でリンクされて動作される構成におけるメインメモリのデータとキャッシュメモリのデータとの関係を例示する。ここでは、説明を簡単にするために、PPNを2ビット、ページサイズを3ビットエリアとする。キャッシュメモリのウェイはキャッシュラインを8ライン有している。インデックスアドレスAidxは3ビットである。図において、ウェイWAY0に対応するTLBのPPNはページ番号00、ウェイWAY1に対応するTLBのPPNはページ番号10としている。この場合、キャッシュメモリのウェイWAY0にはメインメモリのメモリアドレス00000〜00111までの範囲RNG0が格納可能であり、ウェイWAY1にはメインメモリのメモリアドレス10000〜10111までの範囲RAG1が格納可能である。このように、ある時点において、TLBに格納されているアドレス変換対象となるメモリ領域のみが対応するキャッシュメモリのウェイに格納可能となる。この関係ゆえに、TLBにおけるエントリ毎の仮想アドレス変換ヒット信号でキャッシュメモリのウェイ毎にメモリ動作の起動を決めることができる。なお、キャッシュメモリへのデータの登録はラインサイズ単位で行い、そのサイズ毎に有効ビットを保有しており、有効なデータがキャッシュに登録されている場合に有効ビットを論理値1としてそのデータが有効であることを示す。
図4にはITLB及びICACHEの動作フローが例示される。CPU2から発行される命令仮想アドレスの上位[31:12]を命令TLBの各エントリのVPNと比較し、その比較結果と各エントリの有効ビットとの論理積を採り、各エントリの仮想アドレス変換ヒット信号27[7:0]を生成する(S1)。仮想アドレス変換ヒット信号27[7:0]のうち論理値1が幾つあるかを判定する(S2)。2個以上であればTLBマルチヒット状態がCPU2に通知される(S3)。一つだけが論理値1であれば、ヒットに係るウェイのメモリ動作が選択され、当該ウェイからインデックスされたデータと有効ビットを読み出す(S4)。読出した有効ビットの論理値が1かを判定し(S5)、有効(論理値1)であれば読出しデータがCPUに供給される(S6)。有効でなければ、キャッシュ書き換え制御により、キャッシュミスに対するキャッシュラインのフィル動作などが行われる(S7)。ステップS2の判定で全てが論理値0のときは、TLBミスであり、TLBのエントリの追加若しくはリプレースのためのTLBミス例外処理要求がCPU2に発行され、TLB書き換え制御が行われる(S8)。このとき、制御部24は、書き換えたTLBのエントリに対応されるキャッシュメモリのウェイの有効ビットを全て無効のレベルに書き換える(S9)。その後、TLBの各エントリの仮想ページアドレスVPNに対する比較動作(S1)からやり直す。
特に図示はしないが、書き込みアクセスに対応することが必要なデータキャッシュメモリの場合、前記制御回路24は、リプレースされるエントリに対応するキャッシュメモリのウェイのデータフィールドを無効化するとき(S9)、コピーバックされるべきデータフィールドのデータを有している場合にはメインメモリに書き戻しする。
図5にはTLB書き換え制御フローが例示される。書き換え制御フローはデータプロセッサに下位階層のTLBが存在するか否かで異なる(S11)。下位階層のTLBが存在する場合、下位階層のTLBを検索する(S12)。検索した下位階層のTLBが、上記TLBミスに係る仮想ページアドレスに対して変換ヒット(TLBヒット)であるかを判定する(S13)。TLBヒットの場合には当該下位階層TLBの変換対のVPNとPPNをミスに係るTLBのエントリとして登録する(S14)。ステップS13において下位階層のTLBがミスであるとき(下位階層のTLBが存在するがそこでもTLBミスとなった場合)、TLBミスをCPUに通知しソフトウェア制御にてメインメモリに管理されているページ管理情報をミスに係る上位及び下位双方のTLB(VPN, PPN)に登録し、有効にする(S15)。下位階層のTLBが存在しない場合、TLBミス例外をCPUに通知しソフトウェア制御にてメモインメモリ6に管理されているページ管理情報をミスに係るTLB(VPN, PPN)に登録し、有効にする。
図6にはキャッシュ書き換え制御フローが例示される。TLBにはヒットしたが対応するキャッシュのウェイの有効ビットが論理値0(無効レベル)であった場合、キャッシュミスとなる。このとき図4にステップS7で説明したようにキャッシュ書き換え制御を行う。キャッシュの書き換えはキャッシュミスした1ラインのみの更新である。
まず、データプロセッサに下位階層のキャッシュメモリが存在するか否かで制御が異なる(S21)。下位階層のキャッシュメモリが存在する場合、下位階層のキャッシュメモリを検索する(S22)。下位階層のキャッシュメモリがキャッシュヒットの場合にはヒットに係るキャッシュデータを上位階層のキャッシュメモリに登録し、有効ビットを論理値1とする(S24)。下位階層のキャッシュが存在するがそこでもキャッシュミスとなった場合には、キャッシュミスをバスコントローラ5に通知し、メインメモリ6をアクセスさせる。これによってメインメモリ6から取得したデータを上位及び下位双方のキャッシュメモリに登録し、有効ビットを論理値1とする(S25)。このとき、下位階層のキャッシュメモリに対してデータ登録を行なわない選択も可能である。下位階層のキャッシュメモリが存在しない場合、キャッシュミスをバスコントローラ5に通知し、メインメモリ6をアクセスさせ、メインメモリ6から得たデータをキャッシュメモリに登録し、有効ビットを論理値1として、キャッシュ書き換え制御を終了する(S26)。
キャッシュメモリを書き換えた後、正しいデータをCPU2へ供給することができる。このとき、TLBの各エントリのVPN比較動作(S1)からやり直すことも可能であるし、仮想アドレス変換ヒット信号27[7:0]を保持しておき対応するキャッシュウェイからの読み出し動作から再開しても良い。或いは、キャッシュメモリへのデータ登録と同時にCPU2が要求しているデータをキャッシュメモリへ登録するのと並行してCPU2へも供給する制御を行うことも可能である。
図8には全てのウェイを並列的にインデックスする形態のキャッシュメモリを比較例として示す。図8においてICACHEはアドレスタグフィールドTAGを有する。図8において信号25にて命令アクセス要求があると、ITLBのアドレス変換動作に並行して、ICACHEは全てのウェイWAY0〜WAY7の動作が選択されてインデックス動作が開始される。インデックスされたキャッシュラインのタグはITLBから供給される物理ページアドレスと比較され、一致したウェイのキャッシュデータがキャッシュヒットに係るデータとされる。図9には図8のキャッシュメモリのデータとメインメモリのデータとの関係を例示する。ここでも図3と同様に、説明を簡単にするため、PPNを2ビット、ページサイズを3ビットエリアとする。キャッシュメモリのウェイはキャッシュラインを8ライン有している。インデックスアドレスAidxは3ビットである。
以上説明したように、データプロセッサ1において仮想アドレス変換ヒット信号27[7:0]に代表されるようにTLBのエントリ毎に生成されるアドレス変換ヒット信号に応答して対応するキャッシュウェイのメモリ動作が開始され、全てのキャッシュウェイが並列的にインデックス動作を開始することはない。ICACH,DCACHはキャッシュにタグメモリが不要であるから、タグメモリ自体をアクセスするための電力も全く必要ない。したがって、従来技術のセットアソシアティブ構成のキャッシュメモリに対して低消費電力を実現することができる。この効果を見積もるにあたり、キャッシュメモリのタグフィールドとデータフィールドのビット幅を考慮して、1個のキャッシュウェイにおいてタグフィールドとデータフィールドの電力消費の割合を1:2と仮定すると、従来技術のセットアソシアティブキャッシュメモリとICACHに代表されるTLBと密結合されたウェイの選択動作型キャッシュメモリとの消費電力の比は12:2程度になり、キャッシュメモリの消費電力を約83%程度低減可能であると見積ることができる。
《アドレス変換ヒットの予測結果を用いるキャッシュユニット》
図7にはアドレス変換ヒットの予測結果を用いるICACHとITLBの詳細な一例が示される。ここではITLB20は例えば8エントリのフルアソシアティブ構成、ICACH21は例えば8ウェイセットアソシアティブ構成とし、図1の場合と同様とする。図1の構成に対し、予測回路70と予測一致確認回路71とを追加し、仮想アドレス変換ヒット予測信号72[7:0]にしたがってウェイWAYの動作を選択し、前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件にキャッシュヒット65を生成するようにした点が相違される。予測回路70は一つ前のアドレス変換結果を保持し、これを予測信号73[7:0]として出力する。予測信号73[7:0]はアンドゲート54によって命令フェッチ信号25と論理積が採られ、論理積信号が仮想アドレス変換ヒット予測信号72[7:0]とされる。ICACH21のウェイWAY0〜WAY7は対応する仮想アドレス変換ヒット予測信号72[7:0]の論理値1によってメモリ動作が開始される。要するに、ICACH21のウェイWAY0〜WAY7に対する起動制御に関しては、仮想アドレス変換ヒット予測信号72[7:0]は図1における仮想アドレス変換ヒット信号27[7:0]の機能を持つ。予測一致確認回路71は実際の各エントリETY0〜ETY7におけるアドレス変換結果であるエントリ変換ヒット信号50[7:0]を受け取る。予測一致確認回路71は予測回路70が保持している予測信号73[7:0]の値と、新たに受け取ったエントリ変換ヒット信号50[7:0]との一致を判定し、その判定結果信号75を出力すると共に、予測回路70に新たな予測結果としてそのエントリ変換ヒット信号50[7:0]の値を保持させ、次のキャッシュ動作に利用可能とする。予測の正否を示す判定結果信号75はセレクタ77で選択された有効ビットとアンドゲート76で論理積が採られる。その論理積信号がキャッシュヒット信号65とみなされる。
図7にはアドレス変換ヒットの予測結果を用いるICACHとITLBの詳細な一例が示される。ここではITLB20は例えば8エントリのフルアソシアティブ構成、ICACH21は例えば8ウェイセットアソシアティブ構成とし、図1の場合と同様とする。図1の構成に対し、予測回路70と予測一致確認回路71とを追加し、仮想アドレス変換ヒット予測信号72[7:0]にしたがってウェイWAYの動作を選択し、前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件にキャッシュヒット65を生成するようにした点が相違される。予測回路70は一つ前のアドレス変換結果を保持し、これを予測信号73[7:0]として出力する。予測信号73[7:0]はアンドゲート54によって命令フェッチ信号25と論理積が採られ、論理積信号が仮想アドレス変換ヒット予測信号72[7:0]とされる。ICACH21のウェイWAY0〜WAY7は対応する仮想アドレス変換ヒット予測信号72[7:0]の論理値1によってメモリ動作が開始される。要するに、ICACH21のウェイWAY0〜WAY7に対する起動制御に関しては、仮想アドレス変換ヒット予測信号72[7:0]は図1における仮想アドレス変換ヒット信号27[7:0]の機能を持つ。予測一致確認回路71は実際の各エントリETY0〜ETY7におけるアドレス変換結果であるエントリ変換ヒット信号50[7:0]を受け取る。予測一致確認回路71は予測回路70が保持している予測信号73[7:0]の値と、新たに受け取ったエントリ変換ヒット信号50[7:0]との一致を判定し、その判定結果信号75を出力すると共に、予測回路70に新たな予測結果としてそのエントリ変換ヒット信号50[7:0]の値を保持させ、次のキャッシュ動作に利用可能とする。予測の正否を示す判定結果信号75はセレクタ77で選択された有効ビットとアンドゲート76で論理積が採られる。その論理積信号がキャッシュヒット信号65とみなされる。
図1と比べると、対応するキャッシュのウェイを信号27[7:0]で起動する代わりに、予測信号73[7:0]と命令アクセス信号25との論理積信号を用いて命令キャッシュのウェイWAYを起動する。したがって、ITLB20での変換ヒット信号50[7:0]の確定を待たずにキャッシュメモリ21を起動することができるため高速動作が可能となる。この場合でもITLB20側のVPN比較は行い、実際のアドレス変換ヒット信号50[7:0]が確定した時点で予測が正しかったかどうかを確認する。予測一致確認結果は次の予測に反映するため予測回路70に供給される。予測が正しかった場合、ICACH21から出力されるデータとキャッシュヒット信号は正しいものであり、図1の場合と同様に用いれらる。予測が誤っていた場合には、今度は正しい予測信号73[7:0]を既に得ているため、予測回路70の出力を用いても予測を誤ることはない。正しい予測ヒット信号を予測回路70に保持しておけば、対応するキャッシュメモリ21のウェイWAYの読み出しから再開することができる。もちろんITLB20の各エントリETYのVPN比較からやり直す制御も可能である。この応用例では、キャッシュメモリの有効データを高速に得ることができる特徴に加えて、起動されるキャッシュメモリのウェイWAYが1個である点は先に説明した例と変わりないため、上記同様に低消費電力の効果も得ることができる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば上記の例では仮想メモリから物理メモリへのマッピング方式として、固定長のアドレス変換を用いる方式(ページング方式)を一例としている。ページサイズは4キロバイトに限定されず適宜変更可能である。データプロセッサはCPUの他に浮動小数点演算ユニットや積和演算ユニットなどのデータ処理ユニットを備えてもよい。更にその他の回路モジュールを有してよい。データプロセッサはシングルチップに限定されず、マルチチップで構成されるものであってもよいし、中央処理装置を複数備えるマルチCPU構成であってもよい。
本発明はアドレス変換バッファとキャッシュメモリを備えたマイクロコンピュータやマイクロプロセッサなどに広く適用することができる。
Claims (14)
- アドレス変換バッファとセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファはアドレス変換対を格納するためのn個のエントリフィールドを有し、
前記キャッシュメモリは前記エントリフィールドに一対一対応されるn個のウェイを有し、前記各々のウェイはアドレス変換単位であるページサイズの記憶容量を有するデータフィールドを備え、
前記アドレス変換バッファはエントリフィールド毎の連想比較結果を対応するウェイに出力し、前記ウェイは入力した連想比較結果の連想ヒットに応答してメモリ動作を開始するデータプロセッサ。 - 前記アドレス変換対は仮想ページアドレスとこれに対応する物理ページアドレスとを対とする情報を有し、
前記データフィールドが保有するデータの物理ページアドレスは、対応するエントリフィールドのアドレス変換対が保有する物理ページアドレスに等しい請求項1記載のデータプロセッサ。 - 前記キャッシュメモリは前記データフィールドと対のアドレスタグフィールドを持つことを必要としない請求項2記載のデータプロセッサ。
- 前記アドレス変換バッファは、入力した変換対象アドレスを前記エントリフィールドの仮想ページアドレスと比較し、比較結果が一致したエントリフィールドが有効であることを条件に、当該エントリフィールドに対応するウェイにウェイヒットを通知し、このウェイヒットの通知が連想比較結果の連想ヒットを示す請求項3記載のデータプロセッサ。
- 前記アドレス変換バッファによる前記連想比較結果が全て連想ミスであるときアドレス変換バッファのエントリをリプレースする制御ユニットを有し、前記制御ユニットはアドレス変換バッファのエントリをリプレースするとき、リプレースされるエントリに対応するキャッシュメモリのウェイのデータフィールドを無効化する請求項1記載のデータプロセッサ。
- 前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのウェイのデータフィールドを無効化するとき、書き込みアクセスに対するキャッシュメモリのライトキャッシュミスに対してコピーバックされるべきデータフィールドのデータを下位側メモリに書き戻しする請求項5記載のデータプロセッサ。
- アドレス変換バッファとセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファはアドレス変換対を格納するためのn個のエントリフィールドを有し、
前記キャッシュメモリは前記エントリフィールドに一対一対応されるn個のウェイを有し、
前記各々のウェイは対応するエントリフィールドが保有する物理ページアドレスのデータの格納に割り当てられ、
前記ウェイは対応するエントリフィールドに関する連想比較結果が連想ヒットになるのを条件にメモリ動作を開始するデータプロセッサ。 - 全てのエントリフィールドに関する前記連想比較結果が連想ミスであるときアドレス変換バッファのエントリをリプレースする制御ユニットを有し、前記制御ユニットはアドレス変換バッファのエントリをリプレースするとき、リプレースされるエントリに対応するキャッシュメモリのウェイのキャッシュデータを無効化する請求項7記載のデータプロセッサ。
- 前記制御ユニットは更に、リプレースされるエントリに対応するキャッシュメモリのウェイのデータを無効化するとき、書き込みアクセスに対するキャッシュメモリのライトキャッシュミスに対してコピーバックされるべきデータを下位側メモリに書き戻しする請求項8記載のデータプロセッサ。
- アドレス変換バッファとセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファはアドレス変換対を格納するためのn個のエントリフィールドと、アドレス変換の変換ヒットになるエントリフィールドを予測する予測回路とを有し、
前記キャッシュメモリは前記エントリフィールドに一対一対応されるn個のウェイを有し、
前記各々のウェイは対応するエントリフィールドが保有する物理ページアドレスに配置されているデータの格納に割り当てられ、
前記ウェイは対応するエントリフィールドがアドレス変換ヒットの予測領域であるのを条件にメモリ動作を開始し、前記キャッシュメモリは前記アドレス変換ヒットの予測が実際のアドレス変換結果と一致するのを条件にキャッシュヒットを生成するデータプロセッサ。 - アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファは仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換対を有し、
前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する物理ページアドレス情報と共通化し、前記アドレス変換バッファのヒット信号に応じて対応するキャッシュのウェイの動作を選択するデータプロセッサ。 - アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファは仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換対を有し、
前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によって指定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し、前記アドレス変換バッファのウェイのヒット信号に応じて、対応するウェイの動作を選択するデータプロセッサ。 - アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報とを保有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路とを有し、
前記キャッシュメモリのタグをアドレス変換バッファのアドレス変換対が保有する物理ページアドレス情報と共通化し、前記予測回路による予測に応じて対応するキャッシュのウェイの動作を選択し、前記予測が実際のアドレス変換結果に一致することを条件にキャッシュヒットを生成するデータプロセッサ。 - アドレス変換バッファと複数のウェイを持つセットアソシアティブ形態のキャッシュメモリとを有し、
前記アドレス変換バッファは、仮想ページアドレス情報と物理ページアドレス情報を保有するアドレス変換対と、アドレス変換バッファの変換ヒットを予測する予測回路とを有し、
前記アドレス変換バッファの変換対が保有する物理ページアドレス情報によって指定される物理アドレス空間のデータをキャッシュメモリの対応するウェイに格納し、前記予測回路による予測に応じて対応するキャッシュのウェイの動作を選択し、前記予測が実際のアドレス変換結果に一致することを条件にキャッシュヒットを生成するデータプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2004/014353 WO2006038258A1 (ja) | 2004-09-30 | 2004-09-30 | データプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2006038258A1 true JPWO2006038258A1 (ja) | 2008-05-15 |
Family
ID=36142349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006539089A Pending JPWO2006038258A1 (ja) | 2004-09-30 | 2004-09-30 | データプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080114940A1 (ja) |
JP (1) | JPWO2006038258A1 (ja) |
WO (1) | WO2006038258A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010237770A (ja) * | 2009-03-30 | 2010-10-21 | Toshiba Corp | 情報処理装置、ブリッジ装置および情報処理方法 |
US8667258B2 (en) | 2010-06-23 | 2014-03-04 | International Business Machines Corporation | High performance cache translation look-aside buffer (TLB) lookups using multiple page size prediction |
US8788789B2 (en) * | 2010-12-15 | 2014-07-22 | Advanced Micro Devices, Inc. | Power filter in data translation look-aside buffer based on an input linear address |
TWI587136B (zh) * | 2011-05-06 | 2017-06-11 | 創惟科技股份有限公司 | 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法 |
WO2014057546A1 (ja) * | 2012-10-10 | 2014-04-17 | 富士通株式会社 | マルチヒット検出回路、処理装置およびマルチヒット検出方法 |
US9367456B1 (en) * | 2013-06-14 | 2016-06-14 | Marvell International Ltd. | Integrated circuit and method for accessing segments of a cache line in arrays of storage elements of a folded cache |
JP6088951B2 (ja) | 2013-09-20 | 2017-03-01 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
JP6027562B2 (ja) | 2014-02-24 | 2016-11-16 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
GB2547189A (en) * | 2016-02-03 | 2017-08-16 | Swarm64 As | Cache and method |
US10037283B2 (en) | 2016-08-12 | 2018-07-31 | Advanced Micro Devices, Inc. | Updating least-recently-used data for greater persistence of higher generality cache entries |
US10489305B1 (en) | 2018-08-14 | 2019-11-26 | Texas Instruments Incorporated | Prefetch kill and revival in an instruction cache |
US11106600B2 (en) * | 2019-01-24 | 2021-08-31 | Advanced Micro Devices, Inc. | Cache replacement based on translation lookaside buffer evictions |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61271572A (ja) * | 1985-05-28 | 1986-12-01 | Toshiba Corp | キヤツシユメモリ |
US5148538A (en) * | 1989-10-20 | 1992-09-15 | International Business Machines Corporation | Translation look ahead based cache access |
JPH05108486A (ja) * | 1991-10-12 | 1993-04-30 | Fujitsu Ltd | キヤツシユ・メモリの制御方式 |
JP3589485B2 (ja) * | 1994-06-07 | 2004-11-17 | 株式会社ルネサステクノロジ | セットアソシアティブ方式のメモリ装置およびプロセッサ |
JPH086857A (ja) * | 1994-06-17 | 1996-01-12 | Mitsubishi Electric Corp | キャッシュメモリ |
JP2000293437A (ja) * | 1999-04-02 | 2000-10-20 | Nec Corp | キャッシュメモリ装置及びキャッシュメモリ制御方法 |
JP2003196157A (ja) * | 2001-12-25 | 2003-07-11 | Mitsubishi Electric Corp | プロセッサ装置及びメモリ管理方法 |
-
2004
- 2004-09-30 US US11/663,592 patent/US20080114940A1/en not_active Abandoned
- 2004-09-30 WO PCT/JP2004/014353 patent/WO2006038258A1/ja active Application Filing
- 2004-09-30 JP JP2006539089A patent/JPWO2006038258A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20080114940A1 (en) | 2008-05-15 |
WO2006038258A1 (ja) | 2006-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9208084B2 (en) | Extended main memory hierarchy having flash memory for page fault handling | |
JP3713312B2 (ja) | データ処理装置 | |
US9112537B2 (en) | Content-aware caches for reliability | |
US8291168B2 (en) | Disabling cache portions during low voltage operations | |
US6138209A (en) | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof | |
US7739477B2 (en) | Multiple page size address translation incorporating page size prediction | |
US7469318B2 (en) | System bus structure for large L2 cache array topology with different latency domains | |
US9158725B2 (en) | Flexible control mechanism for store gathering in a write buffer | |
US7516275B2 (en) | Pseudo-LRU virtual counter for a locking cache | |
US7366841B2 (en) | L2 cache array topology for large cache with different latency domains | |
JPH07200399A (ja) | マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 | |
JP2001184263A (ja) | 旧キャッシュラインを無効化および除去する装置 | |
JPH06110781A (ja) | キャッシュメモリ装置 | |
US7308537B2 (en) | Half-good mode for large L2 cache array topology with different latency domains | |
US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
JP2001195303A (ja) | 機能が並列に分散された変換索引バッファ | |
US10528473B2 (en) | Disabling cache portions during low voltage operations | |
US6085288A (en) | Dual cache directories with respective queue independently executing its content and allowing staggered write operations | |
EP2866148B1 (en) | Storage system having tag storage device with multiple tag entries associated with same data storage line for data recycling and related tag storage device | |
JPWO2006038258A1 (ja) | データプロセッサ | |
US5943686A (en) | Multiple cache directories for non-arbitration concurrent accessing of a cache memory | |
US6601155B2 (en) | Hot way caches: an energy saving technique for high performance caches | |
US7076635B1 (en) | Method and apparatus for reducing instruction TLB accesses | |
JPWO2004031963A1 (ja) | 半導体データプロセッサ | |
JP3735373B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071016 |