JP2004118305A - キャッシュメモリ制御装置 - Google Patents
キャッシュメモリ制御装置 Download PDFInfo
- Publication number
- JP2004118305A JP2004118305A JP2002277367A JP2002277367A JP2004118305A JP 2004118305 A JP2004118305 A JP 2004118305A JP 2002277367 A JP2002277367 A JP 2002277367A JP 2002277367 A JP2002277367 A JP 2002277367A JP 2004118305 A JP2004118305 A JP 2004118305A
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- cache memory
- address range
- cpu
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のCPUアクセスによるキャッシュメモリ内の置換動作を制御し、キャッシュメモリの効果をあげる。
【解決手段】命令又はデータを格納するキャッシュメモリ15と、優先される命令等が格納されているアドレス範囲を指定するアドレス範囲指定手段13と、アドレス範囲内の命令等を読み出す先読み制御手段12と、優先される命令等をキャッシュラインが格納していることを示す識別情報153を格納する識別情報格納手段と、先読み制御手段12とCPU11のアクセス要求を調停する調停手段14と、キャッシュラインに既に格納されている命令等が、優先される命令等であるか否かを識別情報153により判別し、かつ、キャッシュラインの命令等の置き換えを制御する置換制御手段とを備える。
【選択図】 図1
【解決手段】命令又はデータを格納するキャッシュメモリ15と、優先される命令等が格納されているアドレス範囲を指定するアドレス範囲指定手段13と、アドレス範囲内の命令等を読み出す先読み制御手段12と、優先される命令等をキャッシュラインが格納していることを示す識別情報153を格納する識別情報格納手段と、先読み制御手段12とCPU11のアクセス要求を調停する調停手段14と、キャッシュラインに既に格納されている命令等が、優先される命令等であるか否かを識別情報153により判別し、かつ、キャッシュラインの命令等の置き換えを制御する置換制御手段とを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、キャッシュメモリ制御装置に関し、特に、高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のCPUアクセスによるキャッシュメモリ内の置換動作を制御するキャッシュメモリ制御装置に関する。
【0002】
【従来の技術】
従来、CPU(Central Processing Unit)とメモリの間に置かれるキャッシュメモリは、1度メモリからアクセスされた命令やデータは再度アクセスされる確率が高いという性質や、データや命令の局所性を利用し、高速動作を行うCPUと、比較的アクセス速度が遅い主記憶装置との動作速度のギャップを緩和するために、アクセス速度の速いキャッシュメモリに移し、次回以降のアクセスを高速化するために設けられている。
【0003】
従来の、キャッシュメモリの動作において、メモリから読み出した命令やデータを格納するキャッシュメモリ上に空きのキャッシュラインが存在しない場合は、既に命令やデータが格納されているキャッシュラインに対し、既に格納されている命令やデータから今回の命令やデータに置き換える動作を行っている。
【0004】
従来の置き換え動作について、図4〜6を参照して説明する。図4に示すように、CPU1の高速アクセスが必要な命令やデータがメモリ3の領域Aに格納されていて、高速アクセスが必要でない命令やデータがメモリ3の領域Bに格納されていて、キャッシュメモリ2にはメモリ3の領域Bに格納されている命令やデータb1、b2…がすでに格納されている。CPU1が領域Aから命令やデータa1、a2…を読み出して、キャッシュメモリ2内の所定のキャッシュラインに転送する場合、既に格納されている命令やデータb1、b2との置き換え動作を行う。
【0005】
また、図4の状態の後、図5に示すように、CPU1が領域Bから命令やデータb1、b2…を読み出して、キャッシュメモリ2内の所定のキャッシュラインに転送する場合、既に格納されている、高速アクセスが必要な命令やデータa1、a2との置き換え動作を行う。
【0006】
さらに、図5の状態の後、図6に示すように、CPU1が領域Aから命令やデータa1、a2…を読み出して、キャッシュメモリ2内の所定のキャッシュラインに転送する場合、既に格納されている、命令やデータb1、b2との置き換え動作を行う。
【0007】
しかしながら、このような置換動作は、高速アクセスが要求される命令やデータであるか否かに関わらず行われるため、高速アクセスが要求される命令やデータが常にキャッシュメモリに格納されている保証が無く、キャッシュメモリを使用しても期待する効果が得られないという問題点があった。
【0008】
さらに、CPUが、高速アクセスの必要な命令やデータに対してアクセスを行う場合に、キャッシュメモリ内に該命令やデータが格納されていない場合は、アクセス対象の命令やデータをキャッシュメモリに格納する動作が追加されるため、動作が遅くなるという問題点があった。
【0009】
高速動作が要求されるプログラム実行時のキャッシュメモリに対し、高速動作が必要な部分が出てきたときに、キャッシュレジスタで命令やデータの書き換えの制御を行うことが提案されている(特許文献1参照)。しかしながら、高速動作が要求されるプログラムが実行されるたびにキャッシュレジスタの設定が行われるという、不要な処理が追加されるし、高速動作が要求されるプログラムがはじめて実行されるときは、該プログラムがキャッシュメモリ内に格納されていないため、高速に動作させる事が出来なかった。
【0010】
【特許文献1】
特開平6−195267号公報
【0011】
【発明が解決しようとする課題】
本発明は、上記問題を鑑みてなされたものであって、高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のCPUアクセスによるキャッシュメモリ内の置換動作を制御し、高速アクセスが要求される命令やデータのアクセス時に、キャッシュメモリの効果をあげるキャッシュメモリ制御装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明は、CPUと主記憶装置との間に置かれるキャッシュメモリ制御装置であって、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記CPUに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記CPUの前記主記憶装置へのアクセス要求を調停する調停手段と、前記CPUにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備えるキャッシュメモリ制御装置である。
【0013】
これにより、高速アクセスが必要な命令やデータを、該命令やデータが格納されている主記憶装置のアドレス範囲をアドレス範囲指定手段によって指定し、先読み制御手段によって、実際にCPUがアクセスする前にキャッシュメモリ内に格納することによって、CPUがはじめて該命令やデータにアクセスするときから、高速にアクセスすることができ、その後も優先的にキャッシュメモリ内に常駐させておくことができる。
【0014】
また、本発明は、上記先読み制御手段は、連続して先読みする命令又はデータをワード単位で設定することができ、かつ、設定したワード単位の先読み動作が終了する毎に一旦動作を停止することを、上記アドレス指定手段で指定したアドレス範囲内にある命令又はデータの先読みが終了するまで繰り返すキャッシュメモリ制御装置である。
【0015】
これにより、優先的にキャッシュメモリ内に常駐させたい命令やデータが大きな場合であっても、CPUのアクセスを長時間待たすことなく、アドレス範囲指定手段によって指定されたアドレス範囲内の命令やデータを、先読み制御手段によって、キャッシュメモリ内に格納することできる。
【0016】
【発明の実施の形態】
本発明の実施の形態を説明する。
本発明のキャッシュメモリ制御装置の一実施例について、図1〜図3を用いて説明する。図1は、実施例のキャッシュメモリ制御装置の構成を示すブロック図である。図2は、実施例における先読み制御部の処理を示すフローチャートである。図3は、実施例におけるキャッシュコントローラによりアクセス要求入力時に実行される処理のフローチャートである。
【0017】
実施例を説明する。本実施例のキャッシュメモリ制御装置を説明する。本実施例のキャッシュメモリ制御装置は、CPUと主記憶装置との間に置かれ、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記CPUに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記CPUの前記主記憶装置へのアクセス要求を調停する調停手段と、前記CPUにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備える。
【0018】
本実施例のキャッシュメモリ制御装置を具体的に説明する。図1は、計算機システム10のブロック構成図である。なお、本実施例を説明するにあたって不要な部分は省略している。本図において、計算機システム10は、CPU11、先読み制御部12、アドレス範囲指定部13、調停部14、キャッシュメモリ15、主記憶装置16により構成される。
【0019】
アドレス範囲指定部13は、CPU11からのアドレス範囲設定命令を受けると、高速アクセスが必要な命令やデータが格納されているアドレス範囲をレジスタに設定する。
【0020】
主記憶装置16はCPU11が実行するプログラムが格納されているROM(Read Only Memory)や、データが格納されるSDRAM(Synchronous Dynamic Random Access Memory)等から構成されている。
【0021】
調停部14は、CPU11と先読み制御部12のアクセス要求の調停を行い、どちらか一方のアクセスを許可してキャッシュメモリ15にアクセス要求を出力し、他方のアクセスを待たせる。
【0022】
キャッシュメモリ15は、キャッシュコントローラ151、メモリ152、タグメモリ153から構成されている。
【0023】
キャッシュコントローラ151は、CPU11または先読み格納制御部12が主記憶装置16から読み出した命令やデータをメモリ152へ格納する動作(ラインフィル、置き換え)およびタグメモリ153内のデータである、有効ビット(V:Valid)、常駐ビット(W:Wired)、タグデータの格納動作を制御する。
【0024】
タグメモリ153は、RAM(Random Access Memory)等から構成され、有効ビットV(該キャッシュラインに有効な命令やデータが格納されていることを示す)、常駐ビットW(該キャッシュラインに格納されている命令やデータが優先指定されていることを示す)およびタグデータをキャッシュライン単位で格納するメモリ領域を形成し、メモリ152は、RAM等から構成され、主記憶装置16から読み出される命令やデータをキャッシュライン単位で格納するメモリ領域を形成する。
【0025】
次に、先読み制御部12の動作の一例について、図2に示すフローチャートに基づいて説明する。計算機システム10の電源がオンされると、先読み制御部は初期化される(S101)。その後、CPU11からの命令をチェックし(S102)、連続先読みワード数設定命令か判断し(S103)、設定命令であれば、設定値をレジスタにセットし(S111)、そして、ステップS102に戻る。動作命令であるか判断し(S121)、動作命令でなければステップS102に戻り、CPU110からの命令をチェックし続ける。動作命令であると、先読みが開始され、先読みを行った命令やデータの累計数をカウントする先読みカウンタと、連続して先読みを行った命令やデータの数をカウントする連続先読みカウンタをリセットする(S122、S123)。その後、調停部14に対して先読みアクセス要求を発生する(S124)。調停部14でCPU11のアクセス要求との調停を行い、先読みアクセス要求が許可されるか判断し(S125)、許可されると、先読みを行うアドレスを、前記先読みカウンタの値とアドレス範囲指定部13に指定されたアドレス範囲の先頭アドレスを基に生成する(S131)。生成された先読みを行うアドレスが、アドレス範囲指定部13で設定されたアドレス範囲外であれば、先読みアクセス要求を終了し(S141)、CPU11からの命令チェックに戻る。アドレス範囲内であれば、アクセスを実行する(S151)。このアクセスで読み出された命令やデータは、先読み制御部12では無視され、後述するキャッシュコントローラ151の制御によって、読み出した命令やデータをメモリ152内に格納するために使用される。アクセス終了後、先読みカウンタと連続先読みカウンタをインクリメントする(S152、S153)。連続先読みカウンタの値をチェックし(S154)、連続先読みワード数設定値と同一か判断し(S155)、同一であれば、先読みアクセス要求を終了し(S161)、連続先読みカウンタのリセットに戻る。同一でなければ、ステップS131に戻る。
【0026】
次に、CPU11によるアクセス動作とキャッシュメモリ15の動作を説明する。CPU11から調停部14へ、アクセス要求を出力し、調停部14で先読み制御部12のアクセス要求との調停を行う。調停部14でCPU11のアクセス要求が許可されると、調停部は、キャッシュメモリ15に対して、アクセス要求を出力する。キャッシュメモリ内に該当する命令やデータがある場合は、CPU11とキャッシュメモリ15間で命令やデータの転送を行う。キャッシュメモリ15内に該当する命令やデータが無く、読み出されたアドレスに対応するキャッシュラインが空の場合は、該キャッシュラインへのラインフィル(格納動作)が行われる。このとき、読み出されたアドレスが、アドレス範囲指定部13で指定されたアドレス範囲内であれば、タグメモリ153の対応するキャッシュラインの常駐ビットWと有効ビットVは、”1”にセットされ、タグデータが格納される。読み出されたアドレスが、アドレス範囲指定部13で指定されたアドレス範囲外であれば、タグメモリ153の対応するキャッシュラインの常駐ビットWは”0”にセットされ、有効ビットVは、”1”にセットされ、タグデータが格納される。また、キャッシュメモリ15内に該当する命令やデータが無く、読み出されたアドレスに対応するキャッシュラインに既に命令やデータが格納されている場合は、常駐ビットWが”0”の場合、該キャッシュラインへの命令やデータの置き換えが行われ、常駐ビットWが”1”の場合、読み出されたアドレスが、アドレス範囲指定部13で指定されたアドレス範囲内であれば、該キャッシュラインへの命令やデータの置き換えが行われ、アドレス範囲外であれば、置換を行わず、CPU11と主記憶装置16間で命令やデータの転送を行う。
【0027】
次に、キャッシュコントローラ151の動作の一例について、図3に示すフローチャートに基づいて説明する。調停部14からのアクセス要求により処理を開始し、まずタグメモリ153の内容をチェックし(S201)、アクセス要求のあった命令やデータがメモリ122内に格納されているか否かを判断する(S202)。アクセス要求のあった命令やデータが格納されていた場合は、CPU11と先読み制御部12のうち、調停部14によってアクセスを許可されている方とキャッシュメモリ15との間で命令やデータを転送して(S211)、処理を終了する。アクセス要求のあった命令やデータが格納されていない場合は、その命令やデータを主記憶装置16から読み出してキャッシュメモリ15内のメモリ152に格納するが、このとき、格納先のキャッシュラインに命令やデータが格納されているか否かにより処理が異なる。
【0028】
すなわち、データが格納されていない場合は、そのキャッシュラインへのラインフィルを行って本処理を終了する(S271)。格納されている場合は、置き換えられるキャッシュラインのタグメモリ153の常駐ビットが”1”であるかをチェックする(S221、S222)。”0”のときは、そのキャッシュラインを今回読み出した命令やデータで置き換えて本処理を終了する(S26)。
”1”の場合は、今回読み出した命令やデータのアドレスが、アドレス範囲指定部13で設定されたアドレス範囲内か否かをチェックする(S231、S232)。アドレス範囲外であるときは、置き換えは行わず(S251)、CPU11と先読み制御部12のうち、調停部14によってアクセスを許可されている方と主記憶装置16との間で命令やデータを転送して、本処理を終了する。アドレス範囲内である場合は、そのキャッシュラインを今回読み出した命令やデータで置き換え(S241)、本処理を終了する。
【0029】
このように、先読み制御部によって、高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納し、タグメモリ153内に常駐ビットWを追加して、キャッシュメモリ15内に常駐させることにより、CPU11から高速アクセスが必要な命令やデータをアクセスした際に、はじめてアクセスするときから、キャッシュメモリ15内に格納されている確率を向上させることができ、高速にアクセスすることができる。高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納するためには、アドレス範囲設定命令と連続先読みワード数設定命令と動作命令を出力する処理を、高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納することが必要なときのみ追加するだけで良いので、CPU11に対する処理負担増を考慮する必要性は少なくてすむ。
また、連続して先読みを行うワード数を設定する機能を追加することにより、高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納する際に、その命令やデータが大きな場合であっても、CPU11のアクセスを長時間待たすことなく、キャッシュメモリ15内に格納することできる。
【0030】
【発明の効果】
本発明によれば、高速アクセスが必要な命令やデータを予めキャッシュメモリに格納し、常駐させることにより、CPUから高速アクセスが必要な命令やデータをアクセスした際に、はじめてアクセスするときから、キャッシュメモリ内に格納されている確率を向上させることができ、高速にアクセスすることができるキャッシュメモリ制御装置を得ることができる。
【図面の簡単な説明】
【図1】実施例のキャッシュメモリ制御装置の構成を示すブロック図。
【図2】実施例における先読み制御部の処理を示すフローチャート。
【図3】実施例におけるキャッシュコントローラによりアクセス要求入力時に実行される処理のフローチャート。
【図4】従来のキャッシュメモリの動作を説明するための図。
【図5】従来のキャッシュメモリの置き換え動作を説明するための図。
【図6】従来のキャッシュメモリのさらに置き換え動作を行った場合を説明するための図。
【符号の説明】
10 計算機システム
11 CPU
12 先読み制御部
13 アドレス範囲指定部
14 調停部
15 キャッシュメモリ
151 キャッシュコントローラ
152 メモリ
153 タグメモリ
16 主記憶装置
【発明の属する技術分野】
本発明は、キャッシュメモリ制御装置に関し、特に、高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のCPUアクセスによるキャッシュメモリ内の置換動作を制御するキャッシュメモリ制御装置に関する。
【0002】
【従来の技術】
従来、CPU(Central Processing Unit)とメモリの間に置かれるキャッシュメモリは、1度メモリからアクセスされた命令やデータは再度アクセスされる確率が高いという性質や、データや命令の局所性を利用し、高速動作を行うCPUと、比較的アクセス速度が遅い主記憶装置との動作速度のギャップを緩和するために、アクセス速度の速いキャッシュメモリに移し、次回以降のアクセスを高速化するために設けられている。
【0003】
従来の、キャッシュメモリの動作において、メモリから読み出した命令やデータを格納するキャッシュメモリ上に空きのキャッシュラインが存在しない場合は、既に命令やデータが格納されているキャッシュラインに対し、既に格納されている命令やデータから今回の命令やデータに置き換える動作を行っている。
【0004】
従来の置き換え動作について、図4〜6を参照して説明する。図4に示すように、CPU1の高速アクセスが必要な命令やデータがメモリ3の領域Aに格納されていて、高速アクセスが必要でない命令やデータがメモリ3の領域Bに格納されていて、キャッシュメモリ2にはメモリ3の領域Bに格納されている命令やデータb1、b2…がすでに格納されている。CPU1が領域Aから命令やデータa1、a2…を読み出して、キャッシュメモリ2内の所定のキャッシュラインに転送する場合、既に格納されている命令やデータb1、b2との置き換え動作を行う。
【0005】
また、図4の状態の後、図5に示すように、CPU1が領域Bから命令やデータb1、b2…を読み出して、キャッシュメモリ2内の所定のキャッシュラインに転送する場合、既に格納されている、高速アクセスが必要な命令やデータa1、a2との置き換え動作を行う。
【0006】
さらに、図5の状態の後、図6に示すように、CPU1が領域Aから命令やデータa1、a2…を読み出して、キャッシュメモリ2内の所定のキャッシュラインに転送する場合、既に格納されている、命令やデータb1、b2との置き換え動作を行う。
【0007】
しかしながら、このような置換動作は、高速アクセスが要求される命令やデータであるか否かに関わらず行われるため、高速アクセスが要求される命令やデータが常にキャッシュメモリに格納されている保証が無く、キャッシュメモリを使用しても期待する効果が得られないという問題点があった。
【0008】
さらに、CPUが、高速アクセスの必要な命令やデータに対してアクセスを行う場合に、キャッシュメモリ内に該命令やデータが格納されていない場合は、アクセス対象の命令やデータをキャッシュメモリに格納する動作が追加されるため、動作が遅くなるという問題点があった。
【0009】
高速動作が要求されるプログラム実行時のキャッシュメモリに対し、高速動作が必要な部分が出てきたときに、キャッシュレジスタで命令やデータの書き換えの制御を行うことが提案されている(特許文献1参照)。しかしながら、高速動作が要求されるプログラムが実行されるたびにキャッシュレジスタの設定が行われるという、不要な処理が追加されるし、高速動作が要求されるプログラムがはじめて実行されるときは、該プログラムがキャッシュメモリ内に格納されていないため、高速に動作させる事が出来なかった。
【0010】
【特許文献1】
特開平6−195267号公報
【0011】
【発明が解決しようとする課題】
本発明は、上記問題を鑑みてなされたものであって、高速アクセスを必要とする命令やデータを予めキャッシュメモリ内に格納し、その後のCPUアクセスによるキャッシュメモリ内の置換動作を制御し、高速アクセスが要求される命令やデータのアクセス時に、キャッシュメモリの効果をあげるキャッシュメモリ制御装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明は、CPUと主記憶装置との間に置かれるキャッシュメモリ制御装置であって、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記CPUに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記CPUの前記主記憶装置へのアクセス要求を調停する調停手段と、前記CPUにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備えるキャッシュメモリ制御装置である。
【0013】
これにより、高速アクセスが必要な命令やデータを、該命令やデータが格納されている主記憶装置のアドレス範囲をアドレス範囲指定手段によって指定し、先読み制御手段によって、実際にCPUがアクセスする前にキャッシュメモリ内に格納することによって、CPUがはじめて該命令やデータにアクセスするときから、高速にアクセスすることができ、その後も優先的にキャッシュメモリ内に常駐させておくことができる。
【0014】
また、本発明は、上記先読み制御手段は、連続して先読みする命令又はデータをワード単位で設定することができ、かつ、設定したワード単位の先読み動作が終了する毎に一旦動作を停止することを、上記アドレス指定手段で指定したアドレス範囲内にある命令又はデータの先読みが終了するまで繰り返すキャッシュメモリ制御装置である。
【0015】
これにより、優先的にキャッシュメモリ内に常駐させたい命令やデータが大きな場合であっても、CPUのアクセスを長時間待たすことなく、アドレス範囲指定手段によって指定されたアドレス範囲内の命令やデータを、先読み制御手段によって、キャッシュメモリ内に格納することできる。
【0016】
【発明の実施の形態】
本発明の実施の形態を説明する。
本発明のキャッシュメモリ制御装置の一実施例について、図1〜図3を用いて説明する。図1は、実施例のキャッシュメモリ制御装置の構成を示すブロック図である。図2は、実施例における先読み制御部の処理を示すフローチャートである。図3は、実施例におけるキャッシュコントローラによりアクセス要求入力時に実行される処理のフローチャートである。
【0017】
実施例を説明する。本実施例のキャッシュメモリ制御装置を説明する。本実施例のキャッシュメモリ制御装置は、CPUと主記憶装置との間に置かれ、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記CPUに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記CPUの前記主記憶装置へのアクセス要求を調停する調停手段と、前記CPUにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備える。
【0018】
本実施例のキャッシュメモリ制御装置を具体的に説明する。図1は、計算機システム10のブロック構成図である。なお、本実施例を説明するにあたって不要な部分は省略している。本図において、計算機システム10は、CPU11、先読み制御部12、アドレス範囲指定部13、調停部14、キャッシュメモリ15、主記憶装置16により構成される。
【0019】
アドレス範囲指定部13は、CPU11からのアドレス範囲設定命令を受けると、高速アクセスが必要な命令やデータが格納されているアドレス範囲をレジスタに設定する。
【0020】
主記憶装置16はCPU11が実行するプログラムが格納されているROM(Read Only Memory)や、データが格納されるSDRAM(Synchronous Dynamic Random Access Memory)等から構成されている。
【0021】
調停部14は、CPU11と先読み制御部12のアクセス要求の調停を行い、どちらか一方のアクセスを許可してキャッシュメモリ15にアクセス要求を出力し、他方のアクセスを待たせる。
【0022】
キャッシュメモリ15は、キャッシュコントローラ151、メモリ152、タグメモリ153から構成されている。
【0023】
キャッシュコントローラ151は、CPU11または先読み格納制御部12が主記憶装置16から読み出した命令やデータをメモリ152へ格納する動作(ラインフィル、置き換え)およびタグメモリ153内のデータである、有効ビット(V:Valid)、常駐ビット(W:Wired)、タグデータの格納動作を制御する。
【0024】
タグメモリ153は、RAM(Random Access Memory)等から構成され、有効ビットV(該キャッシュラインに有効な命令やデータが格納されていることを示す)、常駐ビットW(該キャッシュラインに格納されている命令やデータが優先指定されていることを示す)およびタグデータをキャッシュライン単位で格納するメモリ領域を形成し、メモリ152は、RAM等から構成され、主記憶装置16から読み出される命令やデータをキャッシュライン単位で格納するメモリ領域を形成する。
【0025】
次に、先読み制御部12の動作の一例について、図2に示すフローチャートに基づいて説明する。計算機システム10の電源がオンされると、先読み制御部は初期化される(S101)。その後、CPU11からの命令をチェックし(S102)、連続先読みワード数設定命令か判断し(S103)、設定命令であれば、設定値をレジスタにセットし(S111)、そして、ステップS102に戻る。動作命令であるか判断し(S121)、動作命令でなければステップS102に戻り、CPU110からの命令をチェックし続ける。動作命令であると、先読みが開始され、先読みを行った命令やデータの累計数をカウントする先読みカウンタと、連続して先読みを行った命令やデータの数をカウントする連続先読みカウンタをリセットする(S122、S123)。その後、調停部14に対して先読みアクセス要求を発生する(S124)。調停部14でCPU11のアクセス要求との調停を行い、先読みアクセス要求が許可されるか判断し(S125)、許可されると、先読みを行うアドレスを、前記先読みカウンタの値とアドレス範囲指定部13に指定されたアドレス範囲の先頭アドレスを基に生成する(S131)。生成された先読みを行うアドレスが、アドレス範囲指定部13で設定されたアドレス範囲外であれば、先読みアクセス要求を終了し(S141)、CPU11からの命令チェックに戻る。アドレス範囲内であれば、アクセスを実行する(S151)。このアクセスで読み出された命令やデータは、先読み制御部12では無視され、後述するキャッシュコントローラ151の制御によって、読み出した命令やデータをメモリ152内に格納するために使用される。アクセス終了後、先読みカウンタと連続先読みカウンタをインクリメントする(S152、S153)。連続先読みカウンタの値をチェックし(S154)、連続先読みワード数設定値と同一か判断し(S155)、同一であれば、先読みアクセス要求を終了し(S161)、連続先読みカウンタのリセットに戻る。同一でなければ、ステップS131に戻る。
【0026】
次に、CPU11によるアクセス動作とキャッシュメモリ15の動作を説明する。CPU11から調停部14へ、アクセス要求を出力し、調停部14で先読み制御部12のアクセス要求との調停を行う。調停部14でCPU11のアクセス要求が許可されると、調停部は、キャッシュメモリ15に対して、アクセス要求を出力する。キャッシュメモリ内に該当する命令やデータがある場合は、CPU11とキャッシュメモリ15間で命令やデータの転送を行う。キャッシュメモリ15内に該当する命令やデータが無く、読み出されたアドレスに対応するキャッシュラインが空の場合は、該キャッシュラインへのラインフィル(格納動作)が行われる。このとき、読み出されたアドレスが、アドレス範囲指定部13で指定されたアドレス範囲内であれば、タグメモリ153の対応するキャッシュラインの常駐ビットWと有効ビットVは、”1”にセットされ、タグデータが格納される。読み出されたアドレスが、アドレス範囲指定部13で指定されたアドレス範囲外であれば、タグメモリ153の対応するキャッシュラインの常駐ビットWは”0”にセットされ、有効ビットVは、”1”にセットされ、タグデータが格納される。また、キャッシュメモリ15内に該当する命令やデータが無く、読み出されたアドレスに対応するキャッシュラインに既に命令やデータが格納されている場合は、常駐ビットWが”0”の場合、該キャッシュラインへの命令やデータの置き換えが行われ、常駐ビットWが”1”の場合、読み出されたアドレスが、アドレス範囲指定部13で指定されたアドレス範囲内であれば、該キャッシュラインへの命令やデータの置き換えが行われ、アドレス範囲外であれば、置換を行わず、CPU11と主記憶装置16間で命令やデータの転送を行う。
【0027】
次に、キャッシュコントローラ151の動作の一例について、図3に示すフローチャートに基づいて説明する。調停部14からのアクセス要求により処理を開始し、まずタグメモリ153の内容をチェックし(S201)、アクセス要求のあった命令やデータがメモリ122内に格納されているか否かを判断する(S202)。アクセス要求のあった命令やデータが格納されていた場合は、CPU11と先読み制御部12のうち、調停部14によってアクセスを許可されている方とキャッシュメモリ15との間で命令やデータを転送して(S211)、処理を終了する。アクセス要求のあった命令やデータが格納されていない場合は、その命令やデータを主記憶装置16から読み出してキャッシュメモリ15内のメモリ152に格納するが、このとき、格納先のキャッシュラインに命令やデータが格納されているか否かにより処理が異なる。
【0028】
すなわち、データが格納されていない場合は、そのキャッシュラインへのラインフィルを行って本処理を終了する(S271)。格納されている場合は、置き換えられるキャッシュラインのタグメモリ153の常駐ビットが”1”であるかをチェックする(S221、S222)。”0”のときは、そのキャッシュラインを今回読み出した命令やデータで置き換えて本処理を終了する(S26)。
”1”の場合は、今回読み出した命令やデータのアドレスが、アドレス範囲指定部13で設定されたアドレス範囲内か否かをチェックする(S231、S232)。アドレス範囲外であるときは、置き換えは行わず(S251)、CPU11と先読み制御部12のうち、調停部14によってアクセスを許可されている方と主記憶装置16との間で命令やデータを転送して、本処理を終了する。アドレス範囲内である場合は、そのキャッシュラインを今回読み出した命令やデータで置き換え(S241)、本処理を終了する。
【0029】
このように、先読み制御部によって、高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納し、タグメモリ153内に常駐ビットWを追加して、キャッシュメモリ15内に常駐させることにより、CPU11から高速アクセスが必要な命令やデータをアクセスした際に、はじめてアクセスするときから、キャッシュメモリ15内に格納されている確率を向上させることができ、高速にアクセスすることができる。高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納するためには、アドレス範囲設定命令と連続先読みワード数設定命令と動作命令を出力する処理を、高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納することが必要なときのみ追加するだけで良いので、CPU11に対する処理負担増を考慮する必要性は少なくてすむ。
また、連続して先読みを行うワード数を設定する機能を追加することにより、高速アクセスが必要な命令やデータを予めキャッシュメモリ15内に格納する際に、その命令やデータが大きな場合であっても、CPU11のアクセスを長時間待たすことなく、キャッシュメモリ15内に格納することできる。
【0030】
【発明の効果】
本発明によれば、高速アクセスが必要な命令やデータを予めキャッシュメモリに格納し、常駐させることにより、CPUから高速アクセスが必要な命令やデータをアクセスした際に、はじめてアクセスするときから、キャッシュメモリ内に格納されている確率を向上させることができ、高速にアクセスすることができるキャッシュメモリ制御装置を得ることができる。
【図面の簡単な説明】
【図1】実施例のキャッシュメモリ制御装置の構成を示すブロック図。
【図2】実施例における先読み制御部の処理を示すフローチャート。
【図3】実施例におけるキャッシュコントローラによりアクセス要求入力時に実行される処理のフローチャート。
【図4】従来のキャッシュメモリの動作を説明するための図。
【図5】従来のキャッシュメモリの置き換え動作を説明するための図。
【図6】従来のキャッシュメモリのさらに置き換え動作を行った場合を説明するための図。
【符号の説明】
10 計算機システム
11 CPU
12 先読み制御部
13 アドレス範囲指定部
14 調停部
15 キャッシュメモリ
151 キャッシュコントローラ
152 メモリ
153 タグメモリ
16 主記憶装置
Claims (2)
- CPUと主記憶装置との間に置かれるキャッシュメモリ制御装置であって、命令又はデータを格納するキャッシュメモリと、優先される命令又はデータが格納されているアドレス範囲を指定するアドレス範囲指定手段と、該アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記CPUに代わって読み出す先読み制御手段と、前記アドレス範囲指定手段で指定したアドレス範囲内の命令又はデータを前記キャッシュメモリ内の所定のキャッシュラインに格納する際に、優先される命令又はデータを該キャッシュラインが格納していることを示す識別情報を格納する識別情報格納手段と、前記先読み制御手段と前記CPUの前記主記憶装置へのアクセス要求を調停する調停手段と、前記CPUにより前記主記憶装置から読み出された命令又はデータが格納されるキャッシュメモリ内のキャッシュラインに対して、当該キャッシュラインに既に格納されている命令又はデータが、優先される命令又はデータであるか否かを前記識別情報格納手段によって格納される識別情報により判別し、かつ、当該キャッシュラインの命令又はデータの置き換えを制御する置換制御手段とを備えるキャッシュメモリ制御装置。
- 上記先読み制御手段は、連続して先読みする命令又はデータをワード単位で設定することができ、かつ、設定したワード単位の先読み動作が終了する毎に一旦動作を停止することを、上記アドレス指定手段で指定したアドレス範囲内にある命令又はデータの先読みが終了するまで繰り返す請求項1記載のキャッシュメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002277367A JP2004118305A (ja) | 2002-09-24 | 2002-09-24 | キャッシュメモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002277367A JP2004118305A (ja) | 2002-09-24 | 2002-09-24 | キャッシュメモリ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004118305A true JP2004118305A (ja) | 2004-04-15 |
Family
ID=32272987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002277367A Pending JP2004118305A (ja) | 2002-09-24 | 2002-09-24 | キャッシュメモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004118305A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009211368A (ja) * | 2008-03-04 | 2009-09-17 | Nec Corp | キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法 |
US7702854B2 (en) | 2006-06-19 | 2010-04-20 | Sony Ericsson Mobile Communications Japan, Inc. | Apparatus, method, computer program and mobile terminal for processing information |
US7953935B2 (en) | 2005-04-08 | 2011-05-31 | Panasonic Corporation | Cache memory system, and control method therefor |
KR20110127193A (ko) * | 2009-02-13 | 2011-11-24 | 마이크론 테크놀로지, 인크. | 메모리 프리페치 시스템들 및 방법들 |
JP2012533811A (ja) * | 2009-07-20 | 2012-12-27 | フリースケール セミコンダクター インコーポレイテッド | プリフェッチ・モジュールを備える信号処理システムおよび集積回路、並びにそのための方法 |
WO2013071726A1 (zh) * | 2011-11-18 | 2013-05-23 | 华为技术有限公司 | 数据预热方法及装置 |
JP2014534520A (ja) * | 2011-10-26 | 2014-12-18 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | セグメント化されたキャッシュ |
-
2002
- 2002-09-24 JP JP2002277367A patent/JP2004118305A/ja active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953935B2 (en) | 2005-04-08 | 2011-05-31 | Panasonic Corporation | Cache memory system, and control method therefor |
US7702854B2 (en) | 2006-06-19 | 2010-04-20 | Sony Ericsson Mobile Communications Japan, Inc. | Apparatus, method, computer program and mobile terminal for processing information |
US7925833B2 (en) | 2006-06-19 | 2011-04-12 | Sony Ericsson Mobile Communications Japan, Inc. | Apparatus, method, computer program and mobile terminal for processing information |
US8095732B2 (en) | 2008-03-04 | 2012-01-10 | Nec Corporation | Apparatus, processor, cache memory and method of processing vector data |
JP4687729B2 (ja) * | 2008-03-04 | 2011-05-25 | 日本電気株式会社 | キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法 |
JP2009211368A (ja) * | 2008-03-04 | 2009-09-17 | Nec Corp | キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法 |
JP2015079524A (ja) * | 2009-02-13 | 2015-04-23 | マイクロン テクノロジー, インク. | メモリシステムおよび方法 |
JP2012518229A (ja) * | 2009-02-13 | 2012-08-09 | マイクロン テクノロジー, インク. | メモリプリフェッチシステムおよび方法 |
US8990508B2 (en) | 2009-02-13 | 2015-03-24 | Micron Technology, Inc. | Memory prefetch systems and methods |
KR20110127193A (ko) * | 2009-02-13 | 2011-11-24 | 마이크론 테크놀로지, 인크. | 메모리 프리페치 시스템들 및 방법들 |
KR101865331B1 (ko) * | 2009-02-13 | 2018-06-08 | 마이크론 테크놀로지, 인크. | 메모리 프리페치 시스템들 및 방법들 |
JP2012533811A (ja) * | 2009-07-20 | 2012-12-27 | フリースケール セミコンダクター インコーポレイテッド | プリフェッチ・モジュールを備える信号処理システムおよび集積回路、並びにそのための方法 |
JP2014534520A (ja) * | 2011-10-26 | 2014-12-18 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | セグメント化されたキャッシュ |
US9697115B2 (en) | 2011-10-26 | 2017-07-04 | Hewlett-Packard Development Company, L.P. | Segmented caches |
WO2013071726A1 (zh) * | 2011-11-18 | 2013-05-23 | 华为技术有限公司 | 数据预热方法及装置 |
US9569489B2 (en) | 2011-11-18 | 2017-02-14 | Huawei Technologies Co., Ltd. | Method and apparatus for data preheating |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1769364B1 (en) | Information processing apparatus and information processing method | |
US6578130B2 (en) | Programmable data prefetch pacing | |
JPH1055307A (ja) | コンピュータ・システム | |
JPH09237225A (ja) | キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法 | |
JP2019521409A (ja) | 仮想アドレスから物理アドレスへの変換を実行する入出力メモリ管理ユニットにおける複数のメモリ素子の使用 | |
JP2010134628A (ja) | メモリコントローラおよびデータ処理装置 | |
JPH08185355A (ja) | データメモリおよびその動作方法 | |
JP2006260525A (ja) | キャッシュ回路 | |
JP2004118305A (ja) | キャッシュメモリ制御装置 | |
US11366770B2 (en) | Storage controller managing completion timing, and operating method thereof | |
US12013796B2 (en) | Storage controller managing completion timing, and operating method thereof | |
US20080016296A1 (en) | Data processing system | |
KR960007833B1 (ko) | 고속 페이지 모드 선택을 위한 방법 및 장치 | |
JP2006072832A (ja) | 画像処理システム | |
JP2786886B2 (ja) | プリフェッチ制御方法およびプリフェッチ制御装置 | |
US7055005B2 (en) | Methods and apparatus used to retrieve data from memory into a RAM controller before such data is requested | |
KR102591808B1 (ko) | 컴퓨팅 시스템 및 그 동작 방법 | |
JPH0830568A (ja) | 分散メモリ型並列計算機のキャッシュ制御方式 | |
JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
JP4583981B2 (ja) | 画像処理装置 | |
US7051162B2 (en) | Methods and apparatus used to retrieve data from memory before such data is requested | |
JP3260566B2 (ja) | 情報処理システムにおける記憶制御方法および記憶制御装置 | |
CN118363679A (zh) | 电子装置、处理器和操作电子装置的方法 | |
JP2004280677A (ja) | バス制御装置及びそのデータアクセス制御方法 | |
JP2988048B2 (ja) | 辞書情報常駐アクセス装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050615 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080311 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080708 |