JP2003223360A - キャッシュメモリシステムおよびマイクロプロセッサ - Google Patents

キャッシュメモリシステムおよびマイクロプロセッサ

Info

Publication number
JP2003223360A
JP2003223360A JP2002019905A JP2002019905A JP2003223360A JP 2003223360 A JP2003223360 A JP 2003223360A JP 2002019905 A JP2002019905 A JP 2002019905A JP 2002019905 A JP2002019905 A JP 2002019905A JP 2003223360 A JP2003223360 A JP 2003223360A
Authority
JP
Japan
Prior art keywords
cache
data
cache memory
instruction
area
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
Application number
JP2002019905A
Other languages
English (en)
Inventor
Yasuhiro Tawara
康宏 田原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002019905A priority Critical patent/JP2003223360A/ja
Publication of JP2003223360A publication Critical patent/JP2003223360A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

(57)【要約】 【課題】 主記憶装置とキャッシュメモリとの間の不要
なデータ転送を削減して、データ転送に伴う電力消費を
削減し、データ転送の経路の混雑を緩和してスループッ
トを向上させることができるキャッシュメモリ制御技術
を提供する。 【解決手段】 メインCPUと、ROMとRAMからな
る主記憶装置とが外部バスを通じて相互に接続されてい
るキャッシュメモリシステムであって、4−wayセッ
トアソシエイティブキャッシュからなり、各WayはT
ag45、Validビット46、Dirtyビット4
7、データブロック48を持つ。キャッシュエントリを
キャッシュから追い出すときに、Dirtyビット47
が1にセットされていたらデータブロック48のデータ
を主記憶装置に書き込み、0にクリアされていたらデー
タブロック48のデータを主記憶装置に書き込まないで
捨ててよい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、キャッシュメモリ
制御技術に関し、たとえばマイクロプロセッサ、マイク
ロコンピュータ、マイクロコントローラのキャッシュメ
モリなどを有するキャッシュメモリシステムにおいて、
特にダイナミックに確保したメモリ領域を解放するとき
のキャッシュメモリ制御方式に適用して有効な技術に関
する。
【0002】
【従来の技術】本発明者が検討したところによれば、キ
ャッシュメモリ制御技術については、たとえば特開平1
1−338772号、特開平4−268638号、特開
平4−264641号、特開平4−188326号、特
開平6−28253号、特開平9−231133号の各
公報に記載される技術などが挙げられる。
【0003】前記公報の技術においては、主記憶装置に
ダイナミックに確保した領域をキャッシュメモリのエン
トリとして読み込んだ状態で、主記憶装置の当該領域を
解放したときに、当該キャッシュエントリのValid
ビットをクリアすることにより当該キャッシュエントリ
を無効にしている。
【0004】
【発明が解決しようとする課題】ところで、前記のよう
なキャッシュメモリ制御技術について、本発明者が検討
した結果、以下のようなことが明らかとなった。以下に
おいて、本発明者が本発明の前提として検討した技術
を、図10〜図12を用いて説明する。図10はスタッ
クの使用方法、図11はキャッシュの状態、図12はI
NDEXが0xA8のキャッシュエントリ、をそれぞれ
示す説明図である。
【0005】[スタックの一般的使い方の説明:図1
0]使用前のスタックポインタSPは、SP=0xFE
DCBA90という値を持つと仮定する。0xは、次に
続く文字列が16進数であることを示す接頭辞である。
スタックに0x10バイトの領域を確保するときは、 SP←SP−0x10 を実行する。すると、SP=0xFEDCBA80とな
る。
【0006】ユーザ旧SP=0xFEDCBA90と、
現SP=0xFEDCBA80との間にある0x10バ
イトのメモリ領域が使用可能となる。たとえば、 (SP+0)番地にデータ0x01234567、 (SP+4)番地にデータ0x89ABCDEF、 (SP+8)番地にデータ0x01234567、 (SP+12)番地にデータ0x89ABCDEF、 を書き込む。これらのデータが不要になり、もはやこれ
らのデータのためにメモリ領域を確保しておく必要がな
くなった時に、 SP←SP+0x10 を実行する。すると、SPは旧SPの値に戻り、確保さ
れた0x10バイトのメモリ領域は解放される。
【0007】スタック用メモリ領域のうち、SPより若
いアドレスにあるメモリ領域は未使用で解放されている
メモリ領域である。スタック用メモリ領域のうち、SP
よりアドレスが大きいメモリ領域は既に確保されている
メモリ領域である。
【0008】[ライト時のキャッシュ動作:図11]図
11は、(SP+4)番地、つまり0xFEDCBA8
4番地にデータ0xFFEEDDCCを書き込んだ後の
キャッシュの状態を示している。
【0009】書き込むアドレス0xFEDCBA84が
ADDRESS60として扱われ、ADDRESSのM
SB側から20ビットはTAG61、次の8ビットはI
NDEX62、最後の4ビットはOFFSET63に分
解して扱う。Way J64のINDEX=0xA8の
エントリが本書き込み前にInvalid状態(Val
idビットV=0)となっていて、Way Jが本書き
込みのために選ばれたと仮定する。本エントリでV=0
のとき、Tag、Dirtyビット(Dビット)、デー
タブロックには不定値が入っているが、本書き込みによ
りTagに0xFEDCB、Vビットに1、Dビットに
1、データブロックのオフセットがOFFSET=4の
位置から4バイトにデータ0xFFEEDDCCが書か
れる。
【0010】本説明では、ライトバック方式のキャッシ
ュメモリを仮定しているため、主記憶装置とキャッシュ
エントリのデータブロックとのコヒーレンシがとれない
場合に、Dビットを1にセットする。本データブロック
の残りの部分にはライトアロケート機能により、主記憶
装置の対応するアドレスからデータをリードする。この
ときの状態が図11である。
【0011】[本発明の前提技術の具体的な説明:図1
2]本発明の前提技術では、 SP←SP+0x10 で、スタックの0x10バイトのメモリ領域を開放する
と同時に、解放したメモリ領域が割り付けられているキ
ャッシュエントリのValidビット(Vビット)を0
にクリアしてInvalidにしている。仮に、Vビッ
トをクリアしない場合、本キャッシュエントリがLRU
アルゴリズムによってキャッシュの外に追い出されると
きに、Dビットが1ならばデータブロックの内容が主記
憶装置に書き戻される。しかし、本来このデータブロッ
クの内容は既に解放された領域のデータなので、主記憶
装置に書き戻しても再度利用されることはなく、書き戻
しは無駄である。従って、書き戻しが発生しないように
Vビットをクリアすることにより、無用な書き戻しが発
生しないようにしていた。当該キャッシュエントリをI
nvalidにした状態を図12(a)に示す。
【0012】[本発明の前提技術の課題]前述した本発
明の前提技術の課題は、ライトアロケート方式のキャッ
シュメモリにおいて、一度解放した領域と同一のアドレ
ス範囲を再度確保した場合に露呈する。本発明の前提技
術では、解放したときにValidビットをクリアする
ので、当該キャッシュエントリが無効になり、タグやデ
ータを失う。同じアドレス範囲を再度確保して最初に書
き込んだときに、タグが失われているので、新たにキャ
ッシュエントリを割り付ける必要がある。ライトアロケ
ート方式に従うと、書き込んだデータを除くキャッシュ
エントリのデータを主記憶装置からキャッシュエントリ
に読み込む。このデータ転送により電力を消費したり、
データ転送の経路を混雑させて性能が劣化することが、
課題として考えられる。この課題を克服することが本発
明の目的である。
【0013】たとえば、0xFEDCBA80から始ま
る16バイトのスタック領域を解放したときに、本発明
の前提技術により図12(a)のように当該キャッシュ
エントリをInvalidにしたと仮定する。次に、0
xFEDCBA84番地に0xBBBBAAAAという
値を書き込み、同じWayにアロケートされたと仮定す
ると、図12(b)の状態になる。このとき、当該デー
タブロックのライトした4バイトデータを除く部分は主
記憶装置から読み込まれる。この読み込みにより消費さ
れる電力を削減することと、この読み込みによるデータ
を転送する経路の混雑をなくし、スループットを向上す
ることが本発明の目的である。
【0014】すなわち、本発明の目的は、主記憶装置と
キャッシュメモリとの間の不要なデータ転送を削減し
て、データ転送に伴う電力消費を削減し、データ転送の
経路の混雑を緩和してスループットを向上させることが
できるキャッシュメモリ制御技術を提供することにあ
る。
【0015】本発明の前記ならびにその他の目的と新規
な特徴は、本明細書の記述および添付図面から明らかに
なるであろう。
【0016】
【課題を解決するための手段】本願において開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
次のとおりである。
【0017】本発明によるキャッシュメモリシステム
は、ライトバック方式のキャッシュメモリを有し、この
キャッシュメモリ上に確保した領域のダーティビットを
操作する命令を実行可能とするものである。特に、前記
命令は、メモリ解放命令MREL Rn,IMM、ある
いはダーティビットクリア命令DCBDC @Rn、で
あり、スタック領域、あるいはヒープ領域に動的に確保
したメモリ領域を解放するために使用可能なレジスタに
適用するものである。
【0018】さらに、前記キャッシュメモリシステムに
おいて、命令の実行を指示するプロセッサと、主記憶装
置とを有し、プロセッサの指示に基づいて主記憶装置内
の特定のアドレスが指す領域を確保して所定のプログラ
ム処理を行い、この確保した領域をキャッシュメモリ上
に確保して使用した後に、プロセッサの指示により主記
憶装置に確保した領域を解放するとき、キャッシュメモ
リ上に確保した領域のダーティビットをクリアするよう
に制御するものである。
【0019】すなわち、本発明は、本発明の前提技術に
おいて、主記憶装置の解放した領域に対応するキャッシ
ュエントリのValidビットをクリアしていたのに対
して、本発明では当該キャッシュエントリのDirty
ビットをクリアする点を特徴とするものである。
【0020】これにより、Dirtyビットをクリアし
たキャッシュエントリがキャッシュに残っている場合
に、同一のアドレス範囲にある主記憶装置の領域を新た
に確保し、この領域に最初にデータを書き込んだ時に本
発明の効果が現れる。既に当該アドレス範囲に対応する
キャッシュエントリがキャッシュに存在するため、ライ
トアロケートする必要がなく、データ転送が発生しな
い。よって、データ転送のための電力消費を発生せず、
データ転送の経路を混雑させて性能を劣化させることも
ない。
【0021】また、Dirtyビットをクリアしたキャ
ッシュエントリがLRUアルゴリズムなどによりキャッ
シュから追い出される場合においても、Dirtyビッ
トがクリアされているために、キャッシュエントリのデ
ータを主記憶装置に書き戻す必要がなく、書き戻しのた
めのデータ転送が発生しない。よって、データ転送のた
めの電力消費を発生せず、データ転送の経路を混雑させ
て性能を劣化させることもない。
【0022】たとえば、0xFEDCBA80から始ま
る16バイトのスタック領域が、前述した図11のよう
にWay JのINDEX=0xA8のキャッシュエン
トリに割り付けられている状態で、本領域を解放したと
きに、本発明では図12(c)のように当該キャッシュ
エントリのDirtyビットを0にクリアする。このキ
ャッシュエントリがキャッシュの外に追い出されないう
ちに0xFEDCBA84番地に0xBBBBAAAA
という値を書き込むと、図12(d)の状態になる。こ
のとき、当該データブロックのライトしたデータを除く
部分は主記憶装置から読み込まれることはなく、データ
ブロックに元々書かれていた値である。従って、本発明
の前提技術ではライトアロケート方式により主記憶装置
からの読み込みが発生していたが、本方式ではこの読み
込みが発生しない。この読み込みにより消費される電力
を削減され、この読み込みによるデータを転送する経路
の混雑は発生せず、スループットを向上することができ
る。
【0023】また、図12(c)の状態のキャッシュエ
ントリがLRUアルゴリズムによりキャッシュの外に追
い出されるとき、Dirtyビットが0にクリアされて
いるため、書き戻しのためのデータ転送の電力消費を発
生せず、データ転送の経路を混雑させて性能を劣化させ
ることもない。
【0024】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて詳細に説明する。
【0025】まず、図1により、本発明を応用した本発
明の一実施の形態の携帯電話システムの構成の一例を説
明する。図1は本実施の形態の携帯電話システムを示す
説明図であり、(a)は平面図、(b)は機能ブロック
図をそれぞれ示す。
【0026】本実施の形態の携帯電話システムは、無線
信号を送受信する無線部101、送受信信号を変調/復
調処理するベースバンド回路102、信号をフィルタ処
理するDSP103、アナログ/デジタル変換するA/
D変換器104、信号増幅するAF回路105、音声を
出力するスピーカ106、音声を入力するマイク107
からなる電話機能部と、表示信号を演算処理する操作部
・CPU108、表示用のLCD109、LCD109
を駆動するLCDドライバ110、キー入力するキー入
力部111からなる表示機能部と、全体の演算処理を司
るメインCPU112、主記憶装置のROM113、R
AM114、フラッシュメモリ115からなる制御機能
部などから構成されている。
【0027】電話機能部における受信時は、無線信号を
無線部101で受信すると、この無線信号がベースバン
ド回路102により復調処理され、さらにDSP103
によりフィルタ処理された後に、A/D変換器104に
よりアナログ信号からデジタル信号に変換される。そし
て、デジタル信号は、AF回路105により増幅され、
スピーカ106を通じて音声信号として出力される。
【0028】さらに、送信時は、マイク107から音声
を入力すると、音声信号がAF回路105により増幅さ
れ、さらにA/D変換器104によりデジタル信号から
アナログ信号に変換される。そして、DSP103によ
りフィルタ処理され、ベースバンド回路102により変
調処理された後に、無線部101を通じて無線信号とし
て送信される。
【0029】また、表示機能部においては、電話の情報
や付加的に設けられた電子メールなどの各種情報が操作
部・CPU108により演算処理され、これらの各種情
報がLCDドライバ110を介してLCD109に表示
される。また、キー入力部111からの入力により、各
種機能の選択や、電子メールの文字入力などを行うこと
ができる。
【0030】また、制御機能部においては、携帯電話シ
ステムの全体の演算処理がメインCPU112で実行さ
れ、このメインCPU112による各種演算処理は、た
とえばROM113やフラッシュメモリ115に記憶さ
れている各種プログラムに基づいて行われ、これらの各
種演算処理のデータは随時、たとえばRAM114に格
納される。この制御機能部のメインCPU112、RO
M113、RAM114からなる部分についての詳細は
後述する。
【0031】次に、図2により、前記図1のメインCP
UとROMとRAMからなる部分のキャッシュメモリシ
ステムの構成の一例を説明する。図2はメインCPUと
ROMとRAMからなる部分のキャッシュメモリシステ
ムを示すブロック図である。
【0032】図2において、キャッシュメモリシステム
は、プロセッサであるメインCPU1と、ROMとRA
Mからなる主記憶装置2とは外部バス3を通じて相互に
接続されている。なお、図2におけるメインCPU1は
図1のメインCPU112に対応し、また図2における
主記憶装置2のROMとRAMは図1のROM113と
RAM114にそれぞれ対応する。
【0033】メインCPU1には、データキャッシュ1
0、命令キャッシュ11、ライトバッファ12、制御ユ
ニット13、命令バッファ14、命令デコードユニット
15、レジスタファイル16、スタックポインタ6、プ
ログラムカウンタ17、演算回路18、メモリデータア
クセスユニット19、ライトバックユニット20、バス
ユニット21が設けられ、これらの各ユニットは内部ア
ドレスバス22、内部データバス23に任意に接続され
ている。また、このメインCPU1のバスユニット21
は、外部アドレスバス24、外部データバス25、外部
制御信号線26を通じて、外部バス3、主記憶装置2に
接続されている。
【0034】主記憶装置2には、ROM4、RAM5が
設けられている。ROM4には、メインCPU1を制御
するプログラムと定数データが書き込まれている。RA
M5には、静的に確保されるメモリ領域と、ヒープ領域
とスタック領域のように動的に確保されるメモリ領域が
ある。
【0035】続いて、メインCPU1の動作を説明す
る。プログラムカウンタ17は命令アドレスを保持し、
この命令アドレスにある命令を命令キャッシュ11から
命令バッファ14に送る。このとき、命令キャッシュ1
1は命令アドレスの内容を保持していない場合は、内部
アドレスバス22と内部データバス23、バスユニット
21、外部アドレスバス24と外部データバス25と外
部制御信号線26、外部バス3を経由して主記憶装置2
にあるROM4から命令を読み込み、所定の形式で保持
する。
【0036】命令バッファ14から命令を命令デコード
ユニット15に転送し、命令デコード結果が制御ユニッ
ト13を介して、レジスタファイル16から必要ならば
データを読み出し、演算回路18、メモリデータアクセ
スユニット19、ライトバックユニット20からなるデ
ータパスを通り処理される。
【0037】メモリデータアクセスユニット19はデー
タキャッシュ10に対してアドレスを生成し、当該アド
レスのデータ読み出しをデータキャッシュ10に要求
し、データキャッシュ10は所定の処理を行い、要求さ
れたデータをメモリデータアクセスユニット19に出力
する。
【0038】ライトバックユニット20は、レジスタフ
ァイル16、または、データキャッシュ10にデータを
出力する。出力先がデータキャッシュ10の場合は、書
き込むデータ、および、書き込み先アドレスをデータキ
ャッシュ10に出力する。
【0039】[データの読み出し]データキャッシュ1
0に当該アドレスのデータがある場合は、データキャッ
シュ10が要求を処理する。データキャッシュ10に当
該アドレスのデータがない場合、当該アドレスは内部ア
ドレスバス22を経由してバスユニット21に転送され
る。バスユニット21は、外部アドレスバス24と外部
制御信号線26に信号を出力して、外部バス3に要求を
出し、主記憶装置2にあるROM4またはRAM5から
データを読み出す。読み出したデータは、外部制御信号
線26の信号により外部バス3から外部データバス25
を経由してバスユニット21に転送され、内部アドレス
バス22を経由してデータキャッシュ10に読み込まれ
る。データキャッシュ10は所定の形式でデータを保持
する。
【0040】[データの書き込み]データキャッシュ1
0に書き込み先アドレスのデータが保持されている場合
は、データキャッシュ10の所定の場所にデータを書き
込む。ここでは、ライトアロケート方式のキャッシュを
仮定している。データキャッシュ10に当該アドレスの
データが保持されていない場合、データキャッシュ10
にデータを保持する場所を確保し、データを書き込む。
確保した場所のサイズが書き込んだデータのサイズより
大きい場合は、書き込んだデータを除く部分を主記憶装
置2から読み込む。
【0041】ここでは、ライトバック方式のキャッシュ
を仮定している。データキャッシュ10が主記憶装置2
に書き込みを要求する場合は、当該アドレスとデータ
は、ライトバッファ12に一時的に保持され、それぞれ
内部アドレスバス22と内部データバス23を経由し、
バスユニット21に転送される。バスユニット21は、
外部アドレスバス24と外部データバス25と外部制御
信号線26に信号を出力して、外部バス3に要求を出
し、主記憶装置2にあるRAM5に対してデータを書き
込む。
【0042】本実施の形態では、命令キャッシュ11と
データキャッシュ10が分離されている例を示している
が、命令キャッシュ11とデータキャッシュ10を融合
したキャッシュにおいても、本発明を実施することがで
きる。
【0043】また、データキャッシュ10と主記憶装置
2の間に二次キャッシュがある場合、データキャッシュ
および二次キャッシュにおいても、本発明を実施するこ
とが可能である。
【0044】次に、図3により、キャッシュの構成の一
例を説明する。図3はキャッシュの構成を示す説明図で
ある。
【0045】本例は、4−wayセットアソシエイティ
ブキャッシュである。Way0,Way1,Way2,
Way3の4つのWayからなり、各WayはTag4
5、Validビット(Vビット)46、Dirtyビ
ット(Dビット)47、データブロック48を持つ。
【0046】1つのWayは256エントリからなり、
各エントリは20ビットのTag45、1ビットのVa
lidビット46、1ビットのDirtyビット47、
128ビットのデータブロック48からなる。
【0047】ADDRESS40は、リードまたはライ
トを要求されているアドレスを示す。本例では32ビッ
トである。TAG41は、本例ではADDRESS40
のMSB側の20ビットである。OFFSET43は、
本例ではADDRESS40のLSB側の4ビットであ
る。INDEX42は、TAG41とOFFSET43
の間にある8ビットである。
【0048】INDEX42は、インデックスデコーダ
44により、各Wayの256個のエントリのINDE
X番目の1つを指す。TAG41は、キャッシュエント
リにあるTag45に保持される。データブロック48
のアドレスは、キャッシュエントリにあるTag45と
INDEXから復元することができる。
【0049】Validビット46が1にセットされて
いる場合、当該エントリが有効であり、0にクリアされ
ている場合は無効である。
【0050】Dirtyビット47が1にセットされて
いる場合、データブロック48の内容が書き込みによ
り、主記憶装置の対応するメモリブロックより新しいデ
ータに更新されていることを示す。Dirtyビット4
7が0にクリアされている場合は、一般には主記憶装置
の対応するメモリブロックと同じデータを持つことを示
す。キャッシュエントリをキャッシュから追い出すとき
に、Dirtyビット47が1にセットされていたらデ
ータブロック48のデータを主記憶装置に書き込み、0
にクリアされていたらデータブロック48のデータを主
記憶装置に書き込まないで捨ててよい。
【0051】LRUビット49で、Way数をnとする
と各INDEX番目のLRUビットは、 n×(n−1)/2 個のビット数からなる。本例は4wayなので、LRU
ビット49は各INDEXで、 4×3/2=6 により6ビットからなる。つまり、LRUビット49は
4つのWayで同じインデックス番号を持つエントリの
4つの中から選ぶペアの組み合わせは6ペアあり、各ペ
アに関して新旧関係をビットで表現している。6つのビ
ットの値からLeast−Recenty−Used
(LRU)のエントリを見つけることができる。
【0052】キャッシュ制御ユニット50による、リー
ドの場合の動作を図4に示し、ライトの場合の動作を図
5に示す。このキャッシュ制御ユニット50は、たとえ
ば前記図2のデータキャッシュ10の一部として構成さ
れる。図4はキャッシュのリード動作を示すフロー図、
図5はキャッシュのライト動作を示すフロー図である。
【0053】キャッシュのリード動作は、図4に示すよ
うに、まず開始後(ステップS100)、ステップS1
01において、TAGにADDRESS[31:1
2]、INDEXにADDRESS[11:4]、OF
FSETにADDRESS[3:0]をそれぞれ代入す
る。
【0054】さらに、ステップS102において、各i
(i=0,1,…,N−1)で第i番目のWayのIN
DEX番目のエントリに対して、Valid(i)=1
でTag==TAGのとき、1→Hit(i)、i→
J、Valid(i)=0、あるいはValid(i)
=1でTag==TAGでないとき、0→Hit
(i)、の論理条件によりHit(i)を求める。そし
て、ステップS103において、求めたHit(0),
Hit(1),…,Hit(N−1)を論理和演算し、
HITに代入する。
【0055】さらに、ステップS104において、HI
Tを判別し、HIT=1、すなわち1つでもヒットした
ときは、ステップS105において、第J番目のWay
のINDEX番目のエントリのデータブロックのOFF
SETにより指されているアドレスからアクセスサイズ
のデータを読み込む。本ブロックをmost−rece
ntly−usedにLRUフィールドをアップデート
する。
【0056】また、HIT=0、すなわち1つもヒット
しないときは、ステップS106において、0からN−
1のWayのINDEX番目のエントリのうち、あるK
番目のWayでV(K)==0を判別し、Noのとき
は、ステップS107において、全WayのINDEX
番目のエントリからLRUブロックを選択し、これが第
K番目のWayにあると仮定する。
【0057】さらに、ステップS108において、D
(K)を判別し、D(K)=1のときは、ステップS1
09において、第K番目のWayのINDEX番目のエ
ントリのTag(K)とデータブロックおよびINDE
Xをライトバッファに待避する。当該エントリのデータ
ブロックのOFFSETに対応するワードからラップア
ラウンド方式で外部メモリからデータを読み込み、該当
するデータがキャッシュへ到達した時点でCPUへ読み
出しデータを返す。本ブロックをmost−recen
tly−usedにLRUフィールドをアップデートす
る。当該エントリで、TAG→Tag(K)、0→D
(K)、1→V(K)のそれぞれの代入を行い、ライト
バッファのデータを待避してあるTag(K)およびI
NDEXが指すアドレスに書き込む。
【0058】また、ステップS108においてD(K)
=0、あるいはステップS106におけるV(K)==
0の判別の結果がYesのときは、ステップS110に
おいて、第K番目のWayのINDEX番目のエントリ
のデータブロックのOFFSETに対応するワードから
ラップアラウンド方式で外部メモリからデータを読み込
み、該当するデータがキャッシュへ到達した時点でCP
Uへ読み出しデータを返す。本ブロックをmost−r
ecently−usedにLRUフィールドをアップ
デートする。当該エントリで、TAG→Tag(K)、
1→V(K)、0→D(K)のそれぞれの代入を行う。
【0059】キャッシュのライト動作は、図5に示すよ
うに、開始後(ステップS200)、前記リード動作と
同様に、ステップS201〜S203において処理した
後、ステップS204において、HITを判別し、HI
T=1のとき、ステップS206でV(K)==0とな
るWay Kが存在せずステップS207でWayKが
LRUとなりステップS208でD(K)=1のとき、
D(K)=0(ステップS208)、あるいはステップ
S206であるWay Kに対しV(K)==0の判別
の結果がYesのときは、それぞれ以下のようになる。
【0060】HIT=1のときは、ステップS205に
おいて、第J番目のWayのINDEX番目のエントリ
のデータブロックのOFFSETにより指されているア
ドレスにアクセスサイズのデータを書き込む。本ブロッ
クをmost−recently−usedにLRUフ
ィールドをアップデートする。1→D(J)の代入を行
う。
【0061】ステップS208でD(K)=1のとき
は、ステップS209において、第K番目のWayのI
NDEX番目のエントリのTag(K)とデータブロッ
クおよびINDEXをライトバッファに待避する。当該
エントリのデータブロックのOFFSETが指すアドレ
スにアクセスサイズのデータを書き込み、データブロッ
クの残りの部分へ外部メモリからデータを読み込む。本
ブロックをmost−recently−usedにL
RUフィールドをアップデートする。当該エントリで、
TAG→Tag(K)、1→D(K)、1→V(K)の
それぞれの代入を行い、ライトバッファのデータを待避
してあるTag(K)およびINDEXが指すアドレス
に書き込む。
【0062】ステップS208でD(K)=0、あるい
はステップS206であるWayKに対しV(K)==
0の判別の結果がYesのときは、ステップS210に
おいて、第K番目のWayのINDEX番目のエントリ
のデータブロックのOFFSETが指すアドレスにアク
セスサイズのデータを書き込み、データブロックの残り
の部分へ外部メモリからデータを読み込む。本ブロック
をmost−recently−usedにLRUフィ
ールドをアップデートする。当該エントリで、TAG→
Tag(K)、1→D(K)、1→V(K)のそれぞれ
の代入を行う。
【0063】本発明は、ライトバック方式かつライトア
ロケート方式のキャッシュで効果がある。以下におい
て、ライトバック方式、ライトアロケート方式を説明す
る。
【0064】ライトバック方式は、ライトスルー方式と
対になるキャッシュ制御方式である。ライトスルー方式
では、あるアドレスにライトするときに、キャッシュに
当該アドレスのエントリがあれば、そのデータブロック
にライトするとともに主記憶装置の当該アドレスにもラ
イトする。この場合、エントリのデータブロックの内容
が主記憶装置の当該メモリブロックの内容と一致するの
で、Dirtyビットを1にセットする必要はない。
【0065】ライトバック方式では、あるアドレスにラ
イトするときに、キャッシュに当該アドレスのエントリ
があれば、そのデータブロックにライトするが、主記憶
装置にはライトしない。この時、Dirtyビットに1
をセットしてデータブロック内容が主記憶装置の当該メ
モリブロックの内容と一致しないことを表す。
【0066】ライトアロケート方式は、あるアドレスの
ライトにより当該アドレスが属するメモリブロックをキ
ャッシュエントリに割り付ける方式である。リードした
場合は、通常キャッシュエントリに割り付けるが、ライ
トの場合はライトアロケートかライトスルーかの選択の
余地がある。ライトアロケート方式でライトの当該アド
レスをキャッシュエントリに割り付けた場合、ライトし
た部分ではないデータを主記憶装置からキャッシュのデ
ータブロックに読み込む。
【0067】[第1の実施の形態]本実施の形態を、図
6、図7および図8により説明する。図6は動的に確保
される領域のキャッシュ制御方式を示すフロー図、図7
は図6と図8とで使用している変数の説明図、図8はメ
モリ解放命令の動作を示すフロー図である。
【0068】本実施の形態では、前述したデータキャッ
シュをインプリメントしたCPUを考える。ライトバッ
ク方式かつライトアロケート方式とを仮定している。
【0069】本実施の形態は、図6の動的に確保された
領域のキャッシュ制御方式のアルゴリズムを実現するた
めのものである。本実施の形態の例では図6のステップ
S301の判別はコンパイラまたはプログラマにより既
になされているものとする。また、図8のステップS4
09に示すようにスタック解放に使用できるようにレジ
スタの値を解放したサイズだけ加算する機能を付け加え
ている。
【0070】すなわち、図6において、動的に確保され
た領域のキャッシュ制御方式は、まず開始後(ステップ
S300)、ステップS301の動的に確保したか否か
の判別処理において、動的に確保したメモリ領域を解放
したか否かを判別し、解放していないとき(No)は終
了(ステップS306)となり、解放している場合(Y
es)は、ステップS302以降の処理に進む。
【0071】ステップS302の初期化処理において、
変数S,R,E,B,MASK,SS,EEに対し、解
放するメモリ領域の先頭アドレス→S、解放するメモリ
のバイトサイズ→R、S+R(解放するメモリ領域の終
了アドレス)→E、キャッシュブロックのバイトサイズ
→B、NOT(B−1)→MASK、S AND MA
SK + {B if {S AND (B−1)}≠
0、0 if {SAND (B−1)}=0}→S
S、E AND MASK→EE、のそれぞれの代入を
行う。ここでNOT xは32ビット幅でxのビット毎
の反転を表す。x AND yは32ビット幅でxとy
とのビット毎の論理積を表す。
【0072】さらに、ステップS303のループ終了判
別処理において、SS<EEを判別し、Noのときは終
了となり、Yesの場合は、ステップS304のDir
tyビットクリア処理において、SS番地に対応するキ
ャッシュエントリのDirtyビットをクリアし、そし
てステップS305のアドレスカウンタアップデート処
理において、SS+B→SSの代入を行った後、ステッ
プS303からの処理を繰り返す。
【0073】ここで、図7により、前述したS,R,
E,B,MASK,SS,EEの変数を具体的に説明す
る。
【0074】図7においては、たとえば、解放するメモ
リ領域の先頭アドレスに対応する変数S=0x100
C、解放するメモリのバイトサイズに対応する変数R=
0x38、解放するメモリ領域の終了アドレスに対応す
る変数E=S+R=0x1000C+0x38=0x1
044、キャッシュブロックのバイトサイズに対応する
変数B=16、とした場合に、補正の変数MASK=N
OT(B−1)=NOT(0xF)=0xFFFFFF
F0となり、補正後の変数SS=0x1010、変数E
E=0x1040となる。
【0075】言い換えれば、SSはS(解放するメモリ
領域の先頭アドレス=0x100C)をB(キャッシュ
ブロックのバイトサイズ=16)の倍数に切り上げした
数、EEはE(解放するメモリ領域の終了アドレス=0
x1044)をBの倍数に切り捨てした数となる。すな
わち、図7において、破線のメモリ領域は他で使ってい
るかもしれないので除外する必要がある。
【0076】本実施の形態では、スタック領域の解放を
サポートする命令として、本発明を採用している。この
メモリ解放命令のニモニックとオペランドを以下に示
す。
【0077】MREL Rn,IMM Rn:レジスタ名 IMM:所定のビット数の即値 MREL命令は、図8のメモリ解放命令MREL R
n,IMMの動作のアルゴリズムに表した動作を行う。
【0078】今、スタック領域を関数からリターンする
直前に解放する場合を考える。スタックポインタをR1
5、解放したいメモリサイズを32バイトとすると、 MREL R15,32 により、R15←R15+32を実行して、スタックの
32バイトの領域を解放するとともに、変更前のR15
と変更後のR15で挟まれた領域のキャッシュエントリ
のDirtyビットがクリアされる。Dirtyビット
をクリアするときは、図8のステップS401とS40
2に書かれているように、解放の対象となっていないア
ドレスを含むキャッシュエントリは解放の対象外とする
ように解放の範囲を計算している。
【0079】すなわち、図8において、メモリ解放命令
MREL Rn,IMMの動作は、まず開始後(ステッ
プS400)、ステップS401の初期化処理におい
て、変数S,R,E,B,MASK,SS,EEに対
し、解放するメモリ領域の先頭アドレスRn→S、解放
するメモリのバイトサイズIMM→R、解放するメモリ
領域の終了アドレス(S+R)→E、キャッシュブロッ
クのバイトサイズ→B、NOT(B−1)→MASK、
S AND MASK + {B if {S AND
(B−1)}≠0、0 if {S AND (B−
1)}=0}→SS、E AND MASK→EE、の
それぞれの代入を行う。
【0080】さらに、ステップS402のループ終了判
別処理において、SS<EEを判別し、Noのときは、
ステップS409のレジスタアップデート処理におい
て、Rn+IMM→Rn、の代入を行って終了(ステッ
プS410)となり、Yesの場合は、ステップS40
3以降の処理に進む。
【0081】ステップS403のアドレス分解処理にお
いて、TAGにSS[31:12]、INDEXにSS
[11:4]、OFFSETにSS[3:0]をそれぞ
れ代入する。さらに、ステップS404のキャッシュヒ
ット判別処理において、各i(i=0,1,…,N−
1)で第i番目のWayのINDEX番目のエントリに
対して、Valid(i)=1でTag==TAGのと
き、1→Hit(i)、i→J、Valid(i)=
0、あるいはValid(i)=1でTag==TAG
でないとき、0→Hit(i)、の論理条件によりHi
t(i)を求める。そして、ステップS405のキャッ
シュヒット集計処理において、求めたHit(0),H
it(1),…,Hit(N−1)を論理和演算し、H
ITに代入する。
【0082】さらに、ステップS406のキャッシュヒ
ット判別処理において、HITを判別し、HIT=1、
すなわち1つでもヒットしたときは、ステップS407
のDirtyビットクリア処理において、第J番目のW
ayのINDEX番目のエントリに対し0→Dirty
(J)の代入を行った後、ステップS408に進む。
【0083】また、HIT=0、すなわち1つもヒット
しないときは、ステップS408のアドレスカウンタア
ップデート処理において、SS+B→SSの代入を行っ
た後に、ステップS402からの処理を繰り返して実行
する。
【0084】なお、マルチタスク方式でスタック領域が
タスク毎に排他的に割り付けられている場合も、本実施
の形態の例をそのまま適用できる。
【0085】[第2の実施の形態]本実施の形態は、前
記第1の実施の形態の変形例である。前記第1の実施の
形態で示した、MREL命令に指定するレジスタはスタ
ックポインタに使われているレジスタだけとは限らな
い。ヒープ領域に動的に確保したメモリ領域を解放する
ときに使うことができる。
【0086】具体的には、C言語の標準ライブラリ関数
にあるfree関数の内部で解放した領域に対してMR
EL命令を施す例がある。解放する領域の先頭アドレス
をR1、解放するバイト数を100とすると、 MREL R1,100 を実行することにより、解放した領域に対応するキャッ
シュエントリのダーティビットがクリアされる。
【0087】[第3の実施の形態]本実施の形態を、図
9により説明する。図9はDirtyビットクリア命令
の動作を示すフロー図である。
【0088】本実施の形態では、前記図6のステップS
304をCPUの命令として実現したものである。Di
rtyビットクリア命令のニモニックとオペランドを以
下に示す。
【0089】DCBDC @Rn Rn:レジスタ名 DCBDC命令は、図9のDirtyビットクリア命令
DCBDC @Rnの動作のアルゴリズムに表した動作
を行う。
【0090】すなわち、図9において、Dirtyビッ
トクリア命令DCBDC @Rnの動作は、まず開始後
(ステップS500)、ステップS501の対象アドレ
ス取得処理において、SSにRn(アドレス)を代入す
る。
【0091】さらに、ステップS502のアドレス分解
処理において、TAGにSS[31:12]、INDE
XにSS[11:4]、OFFSETにSS[3:0]
をそれぞれ代入する。さらに、ステップS503のキャ
ッシュヒット判別処理において、各i(i=0,1,
…,N−1)で第i番目のWayのINDEX番目のエ
ントリに対して、Valid(i)=1でTag==T
AGのとき、1→Hit(i)、i→J、Valid
(i)=0、あるいはValid(i)=1でTag=
=TAGでないとき、0→Hit(i)、の論理条件に
よりHit(i)を求める。そして、ステップS504
のキャッシュヒット集計処理において、求めたHit
(0),Hit(1),…,Hit(N−1)を論理和
演算し、HITに代入する。
【0092】さらに、ステップS505のキャッシュヒ
ット判別処理において、HITを判別し、HIT=1、
すなわち1つでもヒットしたときは、ステップS506
のDirtyビットクリア処理において、第J番目のW
ayのINDEX番目のエントリに対し0→Dirty
(J)の代入を行って終了(ステップS507)とな
る。また、HIT=0、すなわち1つもヒットしないと
きは、終了となる。
【0093】従って、前記実施の形態によれば、主記憶
装置の解放した領域に対応するキャッシュエントリのD
irtyビットをクリアすることにより、このDirt
yビットをクリアしたキャッシュエントリがキャッシュ
に残っている場合に、同一のアドレス範囲にある主記憶
装置の領域を新たに確保し、この領域に最初にデータを
書き込んだ時に、既に当該アドレス範囲に対応するキャ
ッシュエントリがキャッシュに存在するため、ライトア
ロケートする必要がなく、データ転送が発生しない。よ
って、データ転送のための電力消費を発生せず、データ
転送の経路を混雑させて性能を劣化させることもない。
【0094】また、Dirtyビットをクリアしたキャ
ッシュエントリがLRUアルゴリズムなどによりキャッ
シュから追い出される場合においても、Dirtyビッ
トがクリアされているために、キャッシュエントリのデ
ータを主記憶装置に書き戻す必要がなく、書き戻しのた
めのデータ転送が発生しない。よって、データ転送のた
めの電力消費を発生せず、データ転送の経路を混雑させ
て性能を劣化させることもない。
【0095】以上、本発明者によってなされた発明をそ
の実施の形態に基づき具体的に説明したが、本発明は前
記実施の形態に限定されるものではなく、その要旨を逸
脱しない範囲で種々変更可能であることはいうまでもな
い。
【0096】
【発明の効果】本願において開示される発明のうち、代
表的なものによって得られる効果を簡単に説明すれば、
以下のとおりである。
【0097】(1)ダイナミックに確保した主記憶装置
の領域を解放するときに、対応するキャッシュエントリ
のDirtyビットをクリアすることで、再度同一領域
を確保した場合に、同一キャッシュエントリにライトア
ロケートが発生しないので、ライトアロケートによるキ
ャッシュメモリと主記憶装置間のデータ転送をなくすこ
とが可能となる。
【0098】(2)前記(1)により、主記憶装置とキ
ャッシュメモリとの間の不要なデータ転送を削減するこ
とができるので、このデータ転送に伴う電力消費を削減
し、データ転送の経路の混雑を緩和してスループットを
向上させることが可能となる。
【図面の簡単な説明】
【図1】(a),(b)は本発明の一実施の形態の携帯
電話システムを示す説明図である。
【図2】本発明の一実施の形態において、メインCPU
とROMとRAMからなる部分のキャッシュメモリシス
テムを示すブロック図である。
【図3】本発明の一実施の形態において、キャッシュの
構成を示す説明図である。
【図4】本発明の一実施の形態において、キャッシュの
リード動作を示すフロー図である。
【図5】本発明の一実施の形態において、キャッシュの
ライト動作を示すフロー図である。
【図6】本発明の一実施の形態において、動的に確保さ
れる領域のキャッシュ制御方式を示すフロー図である。
【図7】本発明の一実施の形態において、変数の説明図
である。
【図8】本発明の一実施の形態において、メモリ解放命
令の動作を示すフロー図である。
【図9】本発明の一実施の形態において、Dirtyビ
ットクリア命令の動作を示すフロー図である。
【図10】本発明の前提として検討した技術において、
スタックの使用方法を示す説明図である。
【図11】本発明の前提として検討した技術において、
キャッシュの状態を示す説明図である。
【図12】(a)〜(d)は本発明の前提として検討し
た技術および本発明の技術において、INDEXが0x
A8のキャッシュエントリを示す説明図である。
【符号の説明】
1 メインCPU 2 主記憶装置 3 外部バス 4 ROM 5 RAM 6 スタックポインタ 10 データキャッシュ 11 命令キャッシュ 12 ライトバッファ 13 制御ユニット 14 命令バッファ 15 命令デコードユニット 16 レジスタファイル 17 プログラムカウンタ 18 演算回路 19 メモリデータアクセスユニット 20 ライトバックユニット 21 バスユニット 22 内部アドレスバス 23 内部データバス 24 外部アドレスバス 25 外部データバス 26 外部制御信号線 40 ADDRESS 41 TAG 42 INDEX 43 OFFSET 44 インデックスデコーダ 45 Tag 46 Validビット 47 Dirtyビット 48 データブロック 49 LRUビット 50 キャッシュ制御ユニット 60 ADDRESS 61 TAG 62 INDEX 63 OFFSET 64 Way J 101 無線部 102 ベースバンド回路 103 DSP 104 A/D変換器 105 AF回路 106 スピーカ 107 マイク 108 操作部・CPU 109 LCD 110 LCDドライバ 111 キー入力部 112 メインCPU 113 ROM 114 RAM 115 フラッシュメモリ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 579 G06F 12/08 579 12/12 503 12/12 503

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 ライトバック方式のキャッシュメモリを
    有し、 前記キャッシュメモリ上に確保した領域のダーティビッ
    トを操作する命令を実行可能とすることを特徴とするキ
    ャッシュメモリシステム。
  2. 【請求項2】 請求項1記載のキャッシュメモリシステ
    ムにおいて、 前記命令はメモリ解放命令であり、このメモリ解放命令
    のニモニックとオペランドは、 MREL Rn,IMM Rn:レジスタ名 IMM:所定のビット数の即値 であることを特徴とするキャッシュメモリシステム。
  3. 【請求項3】 請求項1記載のキャッシュメモリシステ
    ムにおいて、 前記命令はダーティビットクリア命令であり、このダー
    ティビットクリア命令のニモニックとオペランドは、 DCBDC @Rn Rn:はレジスタ名 であることを特徴とするキャッシュメモリシステム。
  4. 【請求項4】 請求項2または3記載のキャッシュメモ
    リシステムにおいて、 前記Rn:レジスタ名は、スタック領域に動的に確保し
    たメモリ領域を解放するために使用可能なレジスタであ
    ることを特徴とするキャッシュメモリシステム。
  5. 【請求項5】 請求項2または3記載のキャッシュメモ
    リシステムにおいて、 前記Rn:レジスタ名は、ヒープ領域に動的に確保した
    メモリ領域を解放するために使用可能なレジスタである
    ことを特徴とするキャッシュメモリシステム。
  6. 【請求項6】 請求項1記載のキャッシュメモリシステ
    ムにおいて、 前記命令の実行を指示するプロセッサと、主記憶装置と
    をさらに有し、 前記プロセッサの指示に基づいて前記主記憶装置内の特
    定のアドレスが指す領域を確保して所定のプログラム処
    理を行い、 前記確保した領域を前記キャッシュメモリ上に確保して
    使用した後に、前記プロセッサの指示により前記主記憶
    装置に確保した領域を解放するとき、前記キャッシュメ
    モリ上に確保した領域のダーティビットをクリアするよ
    うに制御することを特徴とするキャッシュメモリシステ
    ム。
  7. 【請求項7】 ライトバック方式のキャッシュメモリを
    有し、 前記キャッシュメモリ上に確保した領域のダーティビッ
    トを操作する命令を実行可能とすることを特徴とするマ
    イクロプロセッサ。
JP2002019905A 2002-01-29 2002-01-29 キャッシュメモリシステムおよびマイクロプロセッサ Pending JP2003223360A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002019905A JP2003223360A (ja) 2002-01-29 2002-01-29 キャッシュメモリシステムおよびマイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002019905A JP2003223360A (ja) 2002-01-29 2002-01-29 キャッシュメモリシステムおよびマイクロプロセッサ

Publications (1)

Publication Number Publication Date
JP2003223360A true JP2003223360A (ja) 2003-08-08

Family

ID=27743573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002019905A Pending JP2003223360A (ja) 2002-01-29 2002-01-29 キャッシュメモリシステムおよびマイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP2003223360A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005066796A1 (ja) * 2003-12-22 2005-07-21 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法
WO2005091146A1 (ja) * 2004-03-24 2005-09-29 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法
WO2006112111A1 (ja) * 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリシステム及びその制御方法
CN1333340C (zh) * 2004-05-11 2007-08-22 松下电器产业株式会社 程序转换设备与处理器
JP2007242003A (ja) * 2006-02-07 2007-09-20 Intel Corp メモリ属性を用いるための技術
US7472331B2 (en) 2004-07-16 2008-12-30 Samsung Electronics Co., Ltd. Memory systems including defective block management and related methods
JP2009514114A (ja) * 2005-12-30 2009-04-02 インテル・コーポレーション ダイナミックメモリサイジングのレイテンシを最適化する方法およびシステム
US7555610B2 (en) 2003-11-18 2009-06-30 Panasonic Corporation Cache memory and control method thereof
US7984243B2 (en) 2003-11-18 2011-07-19 Panasonic Corporation Cache memory and method for cache entry replacement based on modified access order
US11392466B2 (en) 2015-03-05 2022-07-19 Kioxia Corporation Storage system
US11853178B2 (en) 2015-03-05 2023-12-26 Kioxia Corporation Storage system

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984243B2 (en) 2003-11-18 2011-07-19 Panasonic Corporation Cache memory and method for cache entry replacement based on modified access order
US7555610B2 (en) 2003-11-18 2009-06-30 Panasonic Corporation Cache memory and control method thereof
US7454575B2 (en) 2003-12-22 2008-11-18 Matsushita Electric Industrial Co., Ltd. Cache memory and its controlling method
EP1698978A1 (en) * 2003-12-22 2006-09-06 Matsushita Electric Industries Co., Ltd. Cache memory and its controlling method
WO2005066796A1 (ja) * 2003-12-22 2005-07-21 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法
KR100837479B1 (ko) * 2003-12-22 2008-06-12 마쯔시다덴기산교 가부시키가이샤 캐시 메모리 및 그 제어 방법
EP1698978A4 (en) * 2003-12-22 2008-11-05 Matsushita Electric Ind Co Ltd CACHE MEMORY AND CONTROL PROCEDURE THEREFOR
WO2005091146A1 (ja) * 2004-03-24 2005-09-29 Matsushita Electric Industrial Co., Ltd. キャッシュメモリ及びその制御方法
CN1333340C (zh) * 2004-05-11 2007-08-22 松下电器产业株式会社 程序转换设备与处理器
US7472331B2 (en) 2004-07-16 2008-12-30 Samsung Electronics Co., Ltd. Memory systems including defective block management and related methods
US7953935B2 (en) 2005-04-08 2011-05-31 Panasonic Corporation Cache memory system, and control method therefor
WO2006112111A1 (ja) * 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリシステム及びその制御方法
JP2009514114A (ja) * 2005-12-30 2009-04-02 インテル・コーポレーション ダイナミックメモリサイジングのレイテンシを最適化する方法およびシステム
JP2007242003A (ja) * 2006-02-07 2007-09-20 Intel Corp メモリ属性を用いるための技術
US11392466B2 (en) 2015-03-05 2022-07-19 Kioxia Corporation Storage system
US11853178B2 (en) 2015-03-05 2023-12-26 Kioxia Corporation Storage system

Similar Documents

Publication Publication Date Title
US7996624B2 (en) Prefetch unit
KR100339904B1 (ko) 캐시 프로세스용 시스템 및 방법
US7899993B2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US8392651B2 (en) Data cache way prediction
US7774549B2 (en) Horizontally-shared cache victims in multiple core processors
EP1870813B1 (en) Page processing circuits, devices, methods and systems for secure demand paging and other operations
US7774522B2 (en) Cache stashing processor control messages
JP2003223360A (ja) キャッシュメモリシステムおよびマイクロプロセッサ
US6502168B1 (en) Cache having virtual cache controller queues
JP2009544104A (ja) マイクロプロセッサ内の例外を引き起こすページを示す方法およびシステム
US8327121B2 (en) Data cache receive flop bypass
US8504777B2 (en) Data processor for processing decorated instructions with cache bypass
US5958045A (en) Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor
JP4434534B2 (ja) プロセッサ・システム
JPH07311711A (ja) データ処理装置とその動作方法及びメモリ・キャッシュ動作方法
US7555610B2 (en) Cache memory and control method thereof
JP3239333B2 (ja) Lru機構を実現するための方法
JP3973129B2 (ja) キャッシュメモリ装置及びそれを用いた中央演算処理装置
JP2008527559A (ja) プロセッサ及びその命令発行方法
KR20080013982A (ko) 마이크로프로세서에서 효율적인 mac 연산을 수행하기위한 장치 및 방법
EP1387277B1 (en) Write back policy for memory
JP2010170292A (ja) キャッシュメモリ制御回路およびキャッシュメモリ管理方法
JP3988485B2 (ja) キャッシュ回路、情報処理装置及び電子機器
EP1387274A2 (en) Memory management for local variables
JP2000194554A (ja) 演算処理装置