JPWO2014030387A1 - キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 - Google Patents
キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 Download PDFInfo
- Publication number
- JPWO2014030387A1 JPWO2014030387A1 JP2014531518A JP2014531518A JPWO2014030387A1 JP WO2014030387 A1 JPWO2014030387 A1 JP WO2014030387A1 JP 2014531518 A JP2014531518 A JP 2014531518A JP 2014531518 A JP2014531518 A JP 2014531518A JP WO2014030387 A1 JPWO2014030387 A1 JP WO2014030387A1
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- cache memory
- instruction
- access
- reservation information
- 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.)
- Granted
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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
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
Description
図1は、実施の形態1に係るキャッシュメモリコントローラ100の構成を概略的に示すブロック図である。キャッシュメモリコントローラ100は、キャッシュメモリ110と、メモリ管理部120と、ヒット検出部130と、データ処理部140とを備える。
ステータスフラグFsは、キャッシュメモリ110の各キャッシュラインにデータが存在する場合に「有効」、データが存在しない場合に「無効」を示す。
アクセスフラグFaは、キャッシュメモリ110の各キャッシュラインにアクセスマスタ1がアクセスした場合に「有効」、アクセスマスタ1がアクセスしていない場合に「無効」を示す。メモリ管理部120は、例えば、所定の滞留時間にアクセスされたかを調べるLRU(Least Recently Used)方式に基づき、所定のタイミングで、例えば、タイマー(図示せず)で予め定められた時間の経過が計測されたタイミングで、アクセスフラグFaをリセットする。これにより、メモリ管理部120は、最近アクセスされていないキャッシュラインを求めることができる。
なお、要求処理部142とキャッシュメモリアクセス調停部145との間の情報の受け渡しは、信号S1を介して行われる。また、要求処理部142とメインメモリアクセス調停部146との間の情報の受け渡しは、信号S4を介して行われる。
なお、予約処理部143とキャッシュメモリアクセス調停部145との間の情報の受け渡しは、信号S2を介して行われる。また、予約処理部143とメインメモリアクセス調停部146との間の情報の受け渡しは、信号S5を介して行われる。
なお、開放処理部144とキャッシュメモリアクセス調停部145との間の情報の受け渡しは、信号S3を介して行われる。また、開放処理部144とメインメモリアクセス調停部146との間の情報の受け渡しは、信号S6を介して行われる。
Ds=(命令群の先頭アドレスPROC)−(進行アドレスA3) (1)
Dspu=(命令ステップ数Ds)÷(残りの連続領域のサイズRs) (2)
実施の形態2を、図16〜図30に基づいて説明する。
到着順欄201aは、転送予約情報の到着順を示す情報を格納する。
参照命令群先頭アドレス欄201bは、転送予約コマンドC3に含まれている、転送するデータが記憶されている連続領域を参照する命令群である関数の先頭アドレスPROCを格納する。
連続領域先頭アドレス欄201cは、転送予約コマンドC3に応じて、転送するデータがメインメモリ10に格納されている連続領域の先頭アドレスを格納する。なお、連続領域先頭アドレス欄201cの初期値は、転送予約コマンドC3に含まれている、アクセスマスタ1が参照する連続領域の先頭アドレスMM_ADDRである。
転送残サイズ欄201dは、転送予約コマンドC3に応じて転送するデータの残りのサイズを格納する。なお、転送残サイズ欄201dの初期値は、転送予約コマンドC3に含まれている、転送するデータが記憶されている連続領域のサイズH*Vである。
転送状況欄201eは、参照命令群先頭アドレス欄201b及び連続領域先頭アドレス欄201cに格納された情報に対応する転送予約情報に基づいて、データが転送中であるか否かを示す転送状況情報を格納する。例えば、本実施の形態においては、この欄が「1」であれば、転送中であることを示し、「0」であれば、転送待機中であることを示す。
なお、優先度決定部247は、転送予約コマンドC3を受け取った順に、転送予約コマンドC3で示される、アクセスマスタ1が参照する連続領域の先頭アドレスMM_ADDRと、転送するデータが記憶されている連続領域のサイズH*Vと、転送するデータが記憶されている連続領域を参照する命令群である関数の先頭アドレスPROCとを、転送予約情報として、転送予約管理情報201に格納する。優先度決定部247が、予約処理部243から予約転送状況信号V1を受け取ると、メモリ247aに記憶している内容を更新する。
アクセス管理情報202は、バンクNo欄202aと、行アドレス欄202bと、列アドレス欄202cと、アクセス経過時間欄202dとを有する。
バンクNo欄202aは、メインメモリ10のバンクを識別するためのバンクNoを格納する。
行アドレス欄202bは、メインメモリ10のバンクに形成された連続領域の行アドレスの範囲を格納する。
列アドレス欄202cは、メインメモリ10のバンクに形成された連続領域の列アドレスの範囲を格納する。
アクセス経過時間欄202dは、バンクNo欄202aで特定されるバンクの、行アドレス欄202b及び列アドレス欄202cで特定される連続領域に、前回アクセスされてからの経過時間を示すアクセス経過時間Tdを格納する。アクセスマスタ1から一度もアクセスされていない連続領域に関しては、アクセス経過時間Tdは、キャッシュメモリコントローラ200が起動されてからの経過時間となる。
まず、優先度決定部247は、プリチャージ時間の考慮が必要かどうかを判定する。プリチャージ時間は、メインメモリ10上のRowアドレスが異なる場合に発生する。このため、優先度決定部247は、前回決定した最優先転送予約情報にて転送したデータの連続領域のアドレスをメモリ247aに記憶しておき、Rowアドレスの比較をすることで、前回転送対象となった転送予約情報のRowアドレスと、今回転送対象となった転送予約情報のRowアドレスとが異なるかどうかを判定する。Rowアドレスが異なる場合、優先度決定部247は、プリチャージ時間を考慮する。アクセス間隔Daは、転送単位サイズ当たりの転送に要する命令ステップ数であるため、プリチャージ時間Tpri(Cycle)を命令ステップ数に変換する。プリチャージ時間Tpriの命令ステップ数への変換は、下記の(3)式により行われる。
そして、プリチャージ時間を考慮したアクセス間隔Dapは、(3)式で算出される変換後プリチャージSpriを用いて、(4)式で算出される。
アクセスマスタ番号欄303aは、処理切換部341から与えられたアクセスマスタ番号Mnを格納する。
進行アドレス欄303bは、処理切換部341から与えられた進行アドレスA3を格納する。
本発明の第2の態様に係るキャッシュメモリコントローラは、第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリと、前記第1のプログラムに含まれている命令を実行するアクセスマスタと、に接続されたキャッシュメモリコントローラであって、前記メインメモリの一部のデータを格納するキャッシュメモリと、前記特定の命令の先頭アドレスを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数に基づいてアクセス間隔を算出し、当該算出されたアクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送するとともに、前記キャッシュメモリに格納されたデータのうち、前記アクセスマスタからアクセスされていない時間が最も長く、かつ、前記アクセスマスタが1回以上アクセスしたことのあるデータを、前記キャッシュメモリから解放するデータ処理部と、を備えることを特徴とする。
本発明の第3の態様に係るキャッシュメモリコントローラは、特定の命令及び当該特定の命令の先頭アドレスを有する第1の転送予約命令を含む第1のプログラムを格納する命令領域並びに当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリと、前記第1のプログラムに含まれている命令を実行するアクセスマスタと、に接続されたキャッシュメモリコントローラであって、前記メインメモリの一部のデータを格納するキャッシュメモリと、前記アクセスマスタが前記特定の命令よりも先に前記第1の転送予約命令を実行することで、前記アクセスマスタから前記特定の命令の先頭アドレス、及び、前記特定の命令で利用されるデータのサイズを含む転送予約情報を取得し、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数と、前記特定の命令で利用されるデータのサイズのうち、前記キャッシュメモリに転送されていない残りのサイズとから、転送単位毎の残りの命令ステップ数を示すアクセス間隔を算出し、当該算出されたアクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送するデータ処理部と、を備えることを特徴とする。
本発明の第4の態様に係るキャッシュメモリコントローラは、第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリと、前記第1のプログラムに含まれている命令を実行するアクセスマスタと、に接続されたキャッシュメモリコントローラであって、前記メインメモリの一部のデータを格納するキャッシュメモリと、前記特定の命令の先頭アドレスを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数に基づいてアクセス間隔を算出するとともに、複数の前記転送予約情報を処理する場合には、前記アクセス間隔に基づいて、最優先の転送予約情報を決定し、当該決定された最優先の転送予約情報の前記アクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送するデータ処理部と、を備えることを特徴とする。
本発明の第5の態様に係るキャッシュメモリコントローラは、第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリと、前記第1のプログラムに含まれている命令を実行するアクセスマスタと、に接続されたキャッシュメモリコントローラであって、前記メインメモリの一部のデータを格納するキャッシュメモリと、前記特定の命令の先頭アドレス、及び、前記特定の命令で利用されるデータのサイズを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数と、前記特定の命令で利用されるデータのサイズのうち、前記キャッシュメモリに転送されていない残りのサイズとから、転送単位毎の残りの命令ステップ数を示すアクセス間隔を算出するとともに、複数の前記転送予約情報を処理する場合には、前記アクセス間隔に基づいて、最優先の転送予約情報を決定し、当該決定された最優先の転送予約情報の前記アクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送するデータ処理部と、を備えることを特徴とする。
本発明の第2の態様に係るキャッシュメモリコントロール方法は、第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリから、前記第1のプログラムに含まれている命令を実行するアクセスマスタに、キャッシュメモリを用いて前記特定の命令で利用されるデータを提供するキャッシュメモリコントロール方法であって、前記特定の命令の先頭アドレスを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数に基づいてアクセス間隔を算出し、当該算出されたアクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送する転送過程と、前記キャッシュメモリに格納されたデータのうち、前記アクセスマスタからアクセスされていない時間が最も長く、かつ、前記アクセスマスタが1回以上アクセスしたことのあるデータを、前記キャッシュメモリから解放するデータ解放過程と、前記アクセスマスタが前記特定の命令を実行する際に、前記キャッシュメモリから前記特定の命令で利用されるデータを前記アクセスマスタに提供する提供過程と、を有することを特徴とする。
本発明の第3の態様に係るキャッシュメモリコントロール方法は、特定の命令及び当該特定の命令の先頭アドレスを有する第1の転送予約命令を含む第1のプログラムを格納する命令領域並びに当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリから、前記第1のプログラムに含まれている命令を実行するアクセスマスタに、キャッシュメモリを用いて前記特定の命令で利用されるデータを提供するキャッシュメモリコントロール方法であって、前記アクセスマスタが前記特定の命令よりも先に前記第1の転送予約命令を実行することで、前記アクセスマスタから前記特定の命令の先頭アドレス、及び、前記特定の命令で利用されるデータのサイズを含む転送予約情報を取得し、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数と、前記特定の命令で利用されるデータのサイズのうち、前記キャッシュメモリに転送されていない残りのサイズとから、転送単位毎の残りの命令ステップ数を示すアクセス間隔を算出し、当該算出されたアクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送する転送過程と、前記アクセスマスタが前記特定の命令を実行する際に、前記キャッシュメモリから前記特定の命令で利用されるデータを前記アクセスマスタに提供する提供過程と、を有することを特徴とする。
本発明の第4の態様に係るキャッシュメモリコントロール方法は、第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリから、前記第1のプログラムに含まれている命令を実行するアクセスマスタに、キャッシュメモリを用いて前記特定の命令で利用されるデータを提供するキャッシュメモリコントロール方法であって、前記特定の命令の先頭アドレスを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数に基づいてアクセス間隔を算出するとともに、複数の前記転送予約情報を処理する場合には、前記アクセス間隔に基づいて、最優先の転送予約情報を決定し、当該決定された最優先の転送予約情報の前記アクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送する転送過程と、前記アクセスマスタが前記特定の命令を実行する際に、前記キャッシュメモリから前記特定の命令で利用されるデータを前記アクセスマスタに提供する提供過程と、を有することを特徴とする。
本発明の第5の態様に係るキャッシュメモリコントロール方法は、第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリから、前記第1のプログラムに含まれている命令を実行するアクセスマスタに、キャッシュメモリを用いて前記特定の命令で利用されるデータを提供するキャッシュメモリコントロール方法であって、前記特定の命令の先頭アドレス、及び、前記特定の命令で利用されるデータのサイズを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数と、前記特定の命令で利用されるデータのサイズのうち、前記キャッシュメモリに転送されていない残りのサイズとから、転送単位毎の残りの命令ステップ数を示すアクセス間隔を算出するとともに、複数の前記転送予約情報を処理する場合には、前記アクセス間隔に基づいて、最優先の転送予約情報を決定し、当該決定された最優先の転送予約情報の前記アクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送する転送過程と、前記アクセスマスタが前記特定の命令を実行する際に、前記キャッシュメモリから前記特定の命令で利用されるデータを前記アクセスマスタに提供する提供過程と、を有することを特徴とする。
Claims (36)
- 第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリと、前記第1のプログラムに含まれている命令を実行するアクセスマスタと、に接続されたキャッシュメモリコントローラであって、
前記メインメモリの一部のデータを格納するキャッシュメモリと、
前記特定の命令の先頭アドレスを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数に基づいてアクセス間隔を算出し、前記アクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送するデータ処理部と、を備えること
を特徴とするキャッシュメモリコントローラ。 - 前記第1のプログラムは、前記特定の命令の先頭アドレスを有する第1の転送予約命令を含み、
前記アクセスマスタが前記特定の命令よりも先に前記第1の転送予約命令を実行することで、前記データ処理部は、前記アクセスマスタから前記転送予約情報を取得し、前記アクセスマスタが前記特定の命令を実行する前に、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送すること
を特徴とする請求項1に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタで実行中の命令のアドレスが更新される毎に、前記アクセス間隔を算出すること
を特徴とする請求項2に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記第1の転送予約命令に従って前記キャッシュメモリに格納されたデータの内、前記アクセスマスタからアクセスされていない時間が最も長く、かつ、前記アクセスマスタが1回以上アクセスしたことのあるデータを、前記キャッシュメモリから開放すること
を特徴とする請求項2又は3に記載のキャッシュメモリコントローラ。 - 前記第1の転送予約命令を示すコードを含む第2のプログラムを、前記第1のプログラムに変換するプログラム変換部をさらに備えること
を特徴とする請求項2から4の何れか1項に記載のキャッシュメモリコントローラ。 - 前記特定の命令を示すコードを含む第2のプログラムを、前記第1のプログラムに変換するプログラム変換部をさらに備え、
前記プログラム変換部は、前記特定の命令を示すコードを解析して前記第1の転送予約命令を生成すること
を特徴とする請求項2から4の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記第1のプログラムを解析することにより、前記転送予約情報を生成し、前記アクセスマスタが前記特定の命令を実行する前に、前記生成された転送予約情報に従って、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送すること
を特徴とする請求項1に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った複数の前記転送予約情報のうち、前記アクセス間隔に基づいて、最優先の転送予約情報を決定すること
を特徴とする請求項2から7の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った複数の前記転送予約情報のうち、前記アクセス間隔と、前記アクセスマスタから前記メインメモリにおいて予め定められた複数の連続領域の各々へアクセスしていない経過時間であるアクセス経過時間とに基づいて、最優先の転送予約情報を決定すること
を特徴とする請求項2から7の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った複数の前記転送予約情報のうち、前記アクセス間隔が最も小さい転送予約情報を、最優先の転送予約情報と決定すること
を特徴とする請求項8又は9に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った複数の前記転送予約情報に対して算出された前記アクセス間隔が全て同程度である場合には、
前記アクセス経過時間が最も長い連続領域に格納されているデータにアクセスする転送予約情報を、最優先の転送予約情報と決定すること
を特徴とする請求項8又は9に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った複数の前記転送予約情報に対して算出された前記アクセス間隔が予め設定された第1の閾値以下であり、かつ、前記転送するデータが記憶されている連続領域を参照する命令群の先頭アドレスの内、最も小さい先頭アドレスと、その次に小さい先頭アドレスとの差分が予め設定された第2の閾値以上である場合には、前記転送するデータが記憶されている連続領域を参照する命令群の先頭アドレスが最も小さい転送予約情報を、最優先の転送予約情報と決定すること
を特徴とする請求項8又は9に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った複数の前記転送予約情報に対して算出された前記アクセス間隔が第1の閾値以上である場合には、最優先の転送予約命令を決定せず、前記アクセスマスタから受け取った複数の前記転送予約情報に対して再度算出されたアクセス間隔が前記第1の閾値以下となるまで処理を待機すること
を特徴とする請求項8又は9に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、決定された前記最優先の転送予約情報に従って転送される連続領域のうち、予め設定された転送単位サイズの転送を完了する毎に、再度、最優先の転送予約情報を決定すること
を特徴とする請求項8から13の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタで実行中の命令のアドレスが進む度に、前記最優先の転送予約情報を決定すること
を特徴とする請求項8から14の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、決定された前記最優先の転送予約情報で示された、連続領域に記憶されている全てのデータの転送が完了する毎に、再度、最優先の転送予約情報を決定すること
を特徴とする請求項8から15の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記アクセスマスタから受け取った命令コマンドに添付されているアドレスに基づいて前記転送予約情報であることを判断し、前記転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送すること
を特徴とする請求項2から16の何れか1項に記載のキャッシュメモリコントローラ。 - 前記データ処理部は、前記転送予約情報に従って転送する連続領域のデータが前記キャッシュメモリに格納されている場合には、当該データを前記キャッシュメモリから開放しないこと
を特徴とする請求項2から17の何れか1項に記載のキャッシュメモリコントローラ。 - 第1のプログラムを格納する命令領域及び当該第1のプログラムに含まれる特定の命令で利用されるデータを格納するデータ領域を有するメインメモリから、前記第1のプログラムに含まれている命令を実行するアクセスマスタに、キャッシュメモリを用いて前記特定の命令で利用されるデータを提供するキャッシュメモリコントロール方法であって、
前記特定の命令の先頭アドレスを含む転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記アクセスマスタで実行中の命令のアドレスから前記特定の命令の先頭アドレスまでの残りの命令ステップ数に基づいてアクセス間隔を算出し、前記アクセス間隔で、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送する転送過程と、
前記アクセスマスタが前記特定の命令を実行する際に、前記キャッシュメモリから前記特定の命令で利用されるデータを前記アクセスマスタに提供する提供過程と、を有すること
を特徴とするキャッシュメモリコントロール方法。 - 前記第1のプログラムは、前記特定の命令の先頭アドレスを有する第1の転送予約命令を含み、
前記アクセスマスタが前記特定の命令よりも先に前記第1の転送予約命令を実行することで、前記転送過程は、前記アクセスマスタから前記転送予約情報を取得し、前記アクセスマスタが前記特定の命令を実行する前に、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送すること
を特徴とする請求項19に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタで実行中の命令のアドレスが更新される毎に、前記アクセス間隔を算出すること
を特徴とする請求項20に記載のキャッシュメモリコントロール方法。 - 前記第1の転送予約命令に従って前記キャッシュメモリに格納されたデータの内、前記アクセスマスタからアクセスされていない時間が最も長く、かつ、前記アクセスマスタが1回以上アクセスしたことのあるデータを、前記キャッシュメモリから開放する開放過程をさらに有すること
を特徴とする請求項20又は21に記載のキャッシュメモリコントロール方法。 - 前記第1の転送予約命令を示すコードを含む第2のプログラムを、前記第1のプログラムに変換するプログラム変換過程をさらに有すること
を特徴とする請求項20から22の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記特定の命令を示すコードを含む第2のプログラムを、前記第1のプログラムに変換するプログラム変換過程をさらに有し、
前記プログラム変換過程は、前記特定の命令を示すコードを解析して前記第1の転送予約命令を生成すること
を特徴とする請求項20から22の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記第1のプログラムを解析することにより、前記転送予約情報を生成し、前記アクセスマスタが前記特定の命令を実行する前に、前記生成された転送予約情報に従って、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送すること
を特徴とする請求項19に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った複数の前記転送予約情報のうち、前記アクセス間隔に基づいて、最優先の転送予約情報を決定すること
を特徴とする請求項20から25の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った複数の前記転送予約情報のうち、前記アクセス間隔と、前記アクセスマスタから前記メインメモリにおいて予め定められた複数の連続領域の各々へアクセスしていない経過時間であるアクセス経過時間とに基づいて、最優先の転送予約情報を決定すること
を特徴とする請求項20から25の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った複数の前記転送予約情報のうち、前記アクセス間隔が最も小さい転送予約命令を、最優先の転送予約情報と決定すること
を特徴とする請求項26又は27に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った複数の前記転送予約情報に対して算出された前記アクセス間隔が全て同程度である場合には、
前記アクセス経過時間が最も長い連続領域に格納されているデータにアクセスする転送予約情報を、最優先の転送予約情報と決定すること
を特徴とする請求項26又は27に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った複数の前記転送予約情報に対して算出された前記アクセス間隔が予め設定された第1の閾値以下であり、かつ、前記転送するデータが記憶されている連続領域を参照する命令群の先頭アドレスの内、最も小さい先頭アドレスと、その次に小さい先頭アドレスとの差分が予め設定された第2の閾値以上である場合には、前記転送するデータが記憶されている連続領域を参照する命令群の先頭アドレスが最も小さい転送予約情報を、最優先の転送予約情報と決定すること
を特徴とする請求項26又は27に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った複数の前記転送予約情報に対して算出された前記アクセス間隔が第1の閾値以上である場合には、最優先の転送予約情報を決定せず、前記アクセスマスタから受け取った複数の前記転送予約情報に対して再度算出されたアクセス間隔が前記第1の閾値以下となるまで処理を待機すること
を特徴とする請求項26又は27に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、決定された前記最優先の転送予約情報に従って転送される連続領域のうち、予め設定された転送単位サイズの転送を完了する毎に、再度、最優先の転送予約情報を決定すること
を特徴とする請求項26から31の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタで実行中の命令のアドレスが進む度に、最優先の転送予約情報を決定すること
を特徴とする請求項26から32の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、決定された前記最優先の転送予約情報で示された、連続領域に記憶されている全てのデータの転送が完了すると、再度、最優先の転送予約情報を決定すること
を特徴とする請求項26から33の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記アクセスマスタから受け取った命令コマンドに添付されているアドレスに基づいて前記転送予約情報であることを判断し、前記転送予約情報に従って、前記アクセスマスタが前記特定の命令を実行する前に、前記特定の命令で利用されるデータを前記メインメモリから前記キャッシュメモリに転送すること
を特徴とする請求項20から34の何れか1項に記載のキャッシュメモリコントロール方法。 - 前記転送過程は、前記転送予約情報に従って転送する連続領域のデータが前記キャッシュメモリに格納されている場合には、当該データを前記キャッシュメモリから開放しないこと
を特徴とする請求項20から35の何れか1項に記載のキャッシュメモリコントロール方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014531518A JP5808495B2 (ja) | 2012-08-22 | 2013-04-16 | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012183338 | 2012-08-22 | ||
JP2012183338 | 2012-08-22 | ||
PCT/JP2013/061244 WO2014030387A1 (ja) | 2012-08-22 | 2013-04-16 | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 |
JP2014531518A JP5808495B2 (ja) | 2012-08-22 | 2013-04-16 | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5808495B2 JP5808495B2 (ja) | 2015-11-10 |
JPWO2014030387A1 true JPWO2014030387A1 (ja) | 2016-07-28 |
Family
ID=50149707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014531518A Expired - Fee Related JP5808495B2 (ja) | 2012-08-22 | 2013-04-16 | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20150234747A1 (ja) |
JP (1) | JP5808495B2 (ja) |
CN (1) | CN104508640A (ja) |
DE (1) | DE112013004110T5 (ja) |
WO (1) | WO2014030387A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9355689B2 (en) * | 2013-08-20 | 2016-05-31 | Oracle International Corporation | Detection of multiple accesses to a row address of a dynamic memory within a refresh period |
US10152352B2 (en) * | 2015-11-17 | 2018-12-11 | Friday Harbor Llc | Writing to contiguous memory addresses in a network on a chip architecture |
WO2019043823A1 (ja) * | 2017-08-30 | 2019-03-07 | オリンパス株式会社 | メモリアクセス装置、画像処理装置、および撮像装置 |
US11188474B2 (en) * | 2018-06-19 | 2021-11-30 | Western Digital Technologies, Inc. | Balanced caching between a cache and a non-volatile memory based on rates corresponding to the cache and the non-volatile memory |
JP2021196681A (ja) * | 2020-06-10 | 2021-12-27 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2514115B2 (ja) * | 1991-02-15 | 1996-07-10 | 株式会社グラフィックス・コミュニケーション・テクノロジーズ | 画像信号符号化装置 |
JPH10301848A (ja) * | 1997-04-28 | 1998-11-13 | Hitachi Ltd | 多重ページサイズを有する仮想記憶装置 |
JP4030314B2 (ja) * | 2002-01-29 | 2008-01-09 | 富士通株式会社 | 演算処理装置 |
JP3973597B2 (ja) * | 2003-05-14 | 2007-09-12 | 株式会社ソニー・コンピュータエンタテインメント | プリフェッチ命令制御方法、プリフェッチ命令制御装置、キャッシュメモリ制御装置、オブジェクトコードの生成方法および装置 |
JP4374221B2 (ja) * | 2003-08-29 | 2009-12-02 | パナソニック株式会社 | コンピュータシステムおよび記録媒体 |
US20060248520A1 (en) * | 2004-02-12 | 2006-11-02 | Teruo Kawabata | Program conversion device and program conversion method |
JP5076616B2 (ja) * | 2007-04-24 | 2012-11-21 | 富士通株式会社 | プロセッサ及びプリフェッチ制御方法 |
JP2009157414A (ja) * | 2007-12-25 | 2009-07-16 | Hitachi Ltd | 記憶装置、情報端末装置及びデータ先読み方法 |
US8966121B2 (en) * | 2008-03-03 | 2015-02-24 | Microsoft Corporation | Client-side management of domain name information |
CN102014158B (zh) * | 2010-11-29 | 2013-07-10 | 北京兴宇中科科技开发股份有限公司 | 一种云存储服务客户端高效细粒度数据缓存系统与方法 |
-
2013
- 2013-04-16 DE DE112013004110.3T patent/DE112013004110T5/de not_active Withdrawn
- 2013-04-16 CN CN201380041056.5A patent/CN104508640A/zh active Pending
- 2013-04-16 WO PCT/JP2013/061244 patent/WO2014030387A1/ja active Application Filing
- 2013-04-16 US US14/411,709 patent/US20150234747A1/en not_active Abandoned
- 2013-04-16 JP JP2014531518A patent/JP5808495B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20150234747A1 (en) | 2015-08-20 |
JP5808495B2 (ja) | 2015-11-10 |
DE112013004110T5 (de) | 2015-05-28 |
CN104508640A (zh) | 2015-04-08 |
WO2014030387A1 (ja) | 2014-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885583B (zh) | 高速缓存存储器访问 | |
JP5808495B2 (ja) | キャッシュメモリコントローラ及びキャッシュメモリコントロール方法 | |
KR101753913B1 (ko) | 기계 비전 알고리즘을 위한 멀티프로세서 시스템온칩 | |
US8656142B2 (en) | Managing multiple speculative assist threads at differing cache levels | |
US6978350B2 (en) | Methods and apparatus for improving throughput of cache-based embedded processors | |
CN103365793B (zh) | 数据处理方法和系统 | |
US10884739B2 (en) | Systems and methods for load canceling in a processor that is connected to an external interconnect fabric | |
US7870307B2 (en) | DMA and graphics interface emulation | |
US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
JP4064924B2 (ja) | メモリアクセスを制御する方法及び装置 | |
US20080189522A1 (en) | Method and Apparatus for Enabling Resource Allocation Identification at the Instruction Level in a Processor System | |
US7363435B1 (en) | System and method for coherence prediction | |
TWI236591B (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
JPH08194615A (ja) | 情報処理装置 | |
TW201401168A (zh) | 資料預取器以及預取資料至快取記憶體的方法 | |
TWI514156B (zh) | 推測式快取修改技術 | |
WO2009054959A1 (en) | Coherent dram prefetcher | |
JP2006119796A (ja) | キャッシュメモリシステムおよび動画処理装置 | |
CN104603747A (zh) | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 | |
US7058767B2 (en) | Adaptive memory access speculation | |
US6892280B2 (en) | Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system | |
WO2023237084A1 (zh) | 一种数据预取方法、编译方法及相关装置 | |
US11474946B2 (en) | Calculator and calculation method | |
US7159077B2 (en) | Direct processor cache access within a system having a coherent multi-processor protocol | |
US20060224832A1 (en) | System and method for performing a prefetch operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20150811 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150908 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5808495 Country of ref document: JP 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |