JP4210024B2 - 記憶装置を動作する方法および記憶装置 - Google Patents

記憶装置を動作する方法および記憶装置 Download PDF

Info

Publication number
JP4210024B2
JP4210024B2 JP2000246733A JP2000246733A JP4210024B2 JP 4210024 B2 JP4210024 B2 JP 4210024B2 JP 2000246733 A JP2000246733 A JP 2000246733A JP 2000246733 A JP2000246733 A JP 2000246733A JP 4210024 B2 JP4210024 B2 JP 4210024B2
Authority
JP
Japan
Prior art keywords
line
address
prefetch
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.)
Expired - Fee Related
Application number
JP2000246733A
Other languages
English (en)
Other versions
JP2001075866A (ja
Inventor
アクセル、ヘルトビヒ
ハラルト、バウアー
ウルス、ファウアー
ポール、リッペンス
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of JP2001075866A publication Critical patent/JP2001075866A/ja
Application granted granted Critical
Publication of JP4210024B2 publication Critical patent/JP4210024B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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)

Description

【0001】
【発明の属する技術分野】
主メモリと、アドレスに関連させられているラインで構成されて割り当てられているいるキャッシュ・メモリとを備え、そのキャッシュ・メモリでは要求に応じてプロセッサによってデータを、主メモリからロードでき、かつ読出すことができ、キャッシュ・メモリ内のあるアドレスに対応するアドレスを有する主メモリからのあるデータが記憶されている、キャッシュ・メモリの上記あるアドレスのデータをプロセッサがアクセスしている最中に、逐次データがキャッシュ・メモリ内の次のアドレスに記憶されているかどうかがテストされ、それらの逐次データは、もし利用できなければ、主メモリからプリフェッチを介してキャッシュ・メモリにロードできる、記憶装置を動作する方法に関するものである。
【0002】
【従来の技術】
既知の記憶装置では、主メモリに記憶されている複数のデータが、それぞれのプログラムを実行している割り当てられたプロセッサにより呼び出される前に、既にキャッシュ・メモリにロードされている。キャッシュ・メモリというのは、必要なデータを主メモリからよりもかなり速いやり方でそのキャッシュ・メモリからプロセッサが利用できるような高速バッファメモリである。主メモリは明らかにより遅く動作する。またほとんどの場合に、プロセッサにより求められているデータをキャッシュ・メモリにおいても利用できるようにするために、プリフェッチが使用されるようになってきた。プリフェッチ動作の場合には、しばらくはまだプロセッサにより求められていないが、プロセッサがキャッシュ・メモリをアクセスするためにおそらく間もなく求められるであろうデータが既に主メモリから前もってキャッシュ・メモリまたはそれぞれのレジスタにロードされており、したがって、それらのデータはプロセッサがそれらのデータを必要とする時にまた使用できる。キャッシュ・メモリは複数のラインに分割され、それらのラインはまたほとんど行で構成され、各メモリ・ラインにはあるアドレス・ラインが割り当てられる。キャッシュ・メモリの各ラインでは主メモリのラインが書かれ、キャッシュ・メモリのライン・アドレスは主メモリのそれに対応する。したがって、各ラインはデータを書くことができるある長さを持つ。そのような記憶装置の動作態様は、アドレスAのデータを含んでいるキャッシュ・ラインNでヒットが行われると、それと同時にそのアドレスAのデータにライン長さを足したものがキャッシュ・ラインN+1で利用できるかどうかのテストが行われるようなものである。したがって、キャッシュ・ラインNでヒットが行われると、プロセッサがおそらくまもなく必要とする逐次データを次のラインが含んでいるかどうかの検査が常に行われる。もし含んでなければ、プリフェッチ動作においてアドレスAのデータにライン長さを足したものがキャッシュ・メモリまたはそれぞれの割り当てられたレジスタにロードされる。
【0003】
基本的には、キャッシュ・メモリに対してプリフェッチを使用するとキャッシュ・メモリにおけるヒット率が高くなる。それはプロセッサによって達成される。高いヒット率によって装置の性能が高くなる。その理由は、ヒットの場合にメモリ・アクセスを遅延なしに行うことができるが、ミスの場合にはより遅い主メモリをアクセスすることになって装置が減速するからである。
【0004】
プリフェッチの使用の結果として、欠点も生ずる。すなわち、一方では、データは主メモリからキャッシュ・メモリにロードされるが、そのデータは全く必要とされないことさえあるが、その場合にはプリフェッチ動作中に非常に多くのデータがキャッシュ・メモリへ送られるために、そのような危険は長いライン長さで特に存在する。各データ転送は電力消費量を増加するので、電力損失が増加する。他方、プリフェッチ動作の実行中に衝突が起きると、プロセッサが所望のデータをキャッシュ・メモリ内で見出さない時にミスがキャッシュ・メモリ内で起きることがある。そうすると、必要なデータをロードできる前にプリフェッチ動作が中断されるか、終了させられる。両方の場合に、更に遅延が生じ、それによって装置の効率が低下する。
【0005】
【発明が解決しようとする課題】
したがって、本発明の目的は、プリフェッチ手法が用いられた時に装置の効率が高くなって、電力消費量を減少する記憶装置を動作する方法を得ることである。
【0006】
【課題を解決するための手段】
この課題を解決するために、最初の節で述べた種類の方法において、ライン内にある所定のライン部分をプロセッサがアクセスする時にプリフェッチのみが行われるようにされる。
【0007】
本発明の方法では、ライン内の所定のライン部分にあるデータをプロセッサがアクセスするまでプリフェッチ動作が開始されないので、有利である。逐次データを使用できるかどうかのテスト中に、それらが欠けている場合にのみプリフェッチは実行される。プリフェッチは、処理されているラインに順次続くラインのデータがプロセッサにより必要とされる確率が非常に高い、ヒットが存在するラインNでは一層高い、またはプロセッサがデータを読出す、という認識をそれぞれ基にしている。そうすると、あるプログラムを実行しているプロセッサはラインNのデータを更に読出し、主メモリに記憶されている次のラインN+1の逐次データを間もなく必要とするであろうと仮定できる。あるライン部分の定義であって、プリフェッチ動作の可能性が実際に存在するようにプロセッサがアクセスすべきラインの部分を定める定義の結果として、上記を考慮に入れることができる。所定のライン部分の外にあるラインのアドレスをプロセッサがアクセスするものとすると、プリフェッチを(まだ)開始できない。
【0008】
その結果、主メモリからフェッチされたデータも実際に使用される可能性が高くなるまではプリフェッチ動作は開始されないので、装置の効率を高くできる。したがって、逐次データを利用できないことが確立するたびにプリフェッチは強制されるやり方では実行されないが、好適な場合のみは実行される。こうするとプログラムの実行中に実行されるプリフェッチ動作の数は減少するので、電力消費量が減少することにもなる。電力消費量減少は、キャッシュ・メモリまたはそれに関連するレジスタへのデータのローディングによって引き起こされる。従来のプリフェッチ手法とは対照的に、データ転送のための電力消費は30%以上減少でき、それによって装置の効率が向上する。このプリフェッチ手法の特に好適な応用は携帯電話の分野、更に詳しくいえばこの記憶装置が携帯電話端末に使用される場合の携帯電話の分野である。
【0009】
ライン部分を簡単なやり方で決定するために、本発明に従って所定のライン部分アドレスによりこのライン部分を定めることができ、かつ、そのライン部分アドレスより大きいか、それに等しいラインの全てのアドレスを含み、プロセッサがアクセスするライン内のアドレスそのライン部分アドレスとが比較されて、そのプロセッサが所定のライン部分内で、または所定のライン部分外で今動作するかどうかをその比較を通じて確かめるようにし、それによってプリフェッチを開始できるか否かを決定できる。終りにおけるライン部分アドレスの場所または選択は本質的にはプロセッサ、更に詳しく言えばプロセッサ・クロック、の電力パラメータと、主メモリからのデータの伝送速度とに依存するが、プロセッサにより実行されるプログラムの構造にも依存する。その理由は、プロセッサがデータを、本質的には、ライン部分アドレスごとにまたはラインごとに絶えず処理しているかどうか、またはプログラムの実行中に多くのライン飛び越しがあるかどうか、がそのプログラムを介して予め決定されるからである。基本的には、ケースの大部分においてデータがプロセッサによりアクセスされる前にプリフェッチ動作が終了されているように、ライン部分アドレスを配置すべきである。
【0010】
キャッシュ・メモリの各ラインはある長さの複数のライン領域に細分できる。各ライン領域にはそれ自身のライン領域アドレスが割り当てられ、その後でそのライン領域アドレスはライン部分アドレスと比較される。これはキャッシュ・メモリを種々の形態に構成する可能性を考慮に入れ、本質的には、複数の行への各キャッシュ・メモリ・ラインまたはキャッシュ・メモリ全体の細分に関するものである。それらの行はキャッシュ・メモリの構成に応じて種々の長さを持つことができる。ある数のデータを各ライン領域に書込むことができる。それらのデータはライン領域アドレスの支援により後で見出すことができる。ライン内のプロセッサの「ジョブのタイプ」をテストするためにそのライン領域アドレスはライン部分アドレスと比較される。そうするとライン部分アドレスはある数値の形で与えることができ、比較する数値は、ライン内のアドレスを基にして、またはプロセッサがアクセスしたばかりのライン部分アドレスを基にして、決定される。本発明の考えの有利な別の実施の形態に従って、種々の長さの複数のライン部分が決定され、求めに応じて実行すべきプリフェッチを決定するために考慮すべきライン部分が、プログラムのプロセッサにより実行されるプログラム部分に依存して選択され、そのプリフェッチが実行されている間はそのプログラム部分でプロセッサが動作するようにできる。ライン部分またはライン部分アドレスは、プロセッサが実行すべきプログラムの実行時間中にプログラム自体によって変更される。本発明のこの実施の形態によれば、ライン部分の動的な変更がこのようにして実現されているので、種々の構造をおのおの有する種々のプログラム部分が別々のライン部分を定めることが可能であり、かつ各プログラム部分がプリフェッチのための開始条件を別々に定めることが可能である。このようにして、種々のプログラム構造に対して応じることができる。プリフェッチ動作をソフトウエアによって構成できるように、プリフェッチ動作の開始についての判定が実現されるものとすると、このパラメータの動的な変更が可能である。
【0011】
この方法に加えて、本発明は、主メモリと、複数のラインで構成されているキャッシュ・メモリと、プリフェッチ手段とを備え、キャッシュ・メモリには主メモリから読出されたデータを要求に応じて書込むことができ、かつ読出すことができ、プリフェッチ手段はキャッシュ・メモリへ伝送するための主メモリからのデータのプリフェッチを行うかどうかを決定し、かつプリフェッチを実行する、データ記憶装置にも関する。プリフェッチ手段において、キャッシュ・メモリのラインの長さに関連する少なくとも1つのライン部分アドレスが決定され、またはそのライン部分アドレスを決定でき、その手段によってキャッシュ・メモリのラインにおけるライン部分が定められ、ライン部分アドレスをプロセッサがアクセスするラインのアドレスと比較するため、ライン部分内でアクセスを行うかどうかを決定するため、および比較の結果に依存してプリフェッチを実行するためにプリフェッチ手段が設けられるので、この記憶装置は極めて適する。
【0012】
キャッシュ・メモリの各ラインは、ライン部分アドレスに共通する別々のライン領域アドレスをおのおの有する複数のライン領域に分割できる。そのライン部分アドレスはプロセッサがアクセスする場所を示し、したがって、プリフェッチが全く可能であったかどうかを見出すために、それはプリフェッチ手段によってライン部分アドレスと比較される。
【0013】
複数のライン部分を決定するために複数のライン部分アドレスが決定される時、または決定できる時、比較のために使用すべきライン部分アドレスが、プロセッサにより実行すべきプログラムのプログラム部分に依存して選択され、そのプログラム部分は、キャッシュ・メモリをアクセスしている間にプロセッサにより実行されることが有利であることが更に判明している。
【0014】
プリフェッチにおいて主メモリからロードされた可能なデータをキャッシュ・メモリに直接書込めることを避けるために、プリフェッチ手段によりプリフェッチ・データを書込むことができるレジスタ・メモリをキャッシュ・メモリが含むことが有利であることが判明している。キャッシュ・メモリのレジスタ・メモリに記憶されているプリフェッチ・データが必要である時は、それらのデータはレジスタ・メモリによってプロセッサへ転送され、また以後のアクセスのためにキャッシュ・メモリに記憶される。
【0015】
ただ1つのレジスタ・メモリが使用される場合には、プリフェッチ・データがレジスタ・メモリに書込まれた後で、新たなプリフェッチが必要となる別のキャッシュ・メモリ・ラインへプログラムは飛び越す。レジスタ・メモリ内の古いプリフェッチ・データはその時まではまだ読出されていないが、プログラムが戻ってまもなく再使用できる。利用できるレジスタ・メモリはただ1つであるので、それらの古いプリフェッチ・データは新たなプリフェッチにより重ね書きされる。プログラムが再び戻ったとすると、更新されたプリフェッチが必要である。ここで支援するために、種々のプリフェッチ動作のそれぞれのプリフェッチ・データを書込むことができる複数のレジスタ・メモリが設けられると有利であることが判明している。最初に書込むべきプリフェッチ・データは、最も古いプリフェッチ・データが存在するレジスタ・メモリに書込むべきであり、その後でそれらは重ね書きされる。
【0016】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0017】
図1は、記憶容量は大きいが、動作速度が比較的遅い主メモリ2を備えている本発明の記憶装置1を示す。その主メモリ2にはキャッシュ・メモリ3が割り当てられている。そのキャッシュ・メモリはかなり速く動作するバッファ・メモリである。キャッシュ・メモリ3と主メモリ2にはプリフェッチ手段4が割り当てられ、かつ接続されている。そのプリフェッチ手段によって、一方では、プリフェッチを全く実行すべきかどうか、他方では、プリフェッチを確かに実行すべきかどうかが判定される。記憶装置1にはプロセッサ5も割り当てられている。図示の実施の形態ではそのプロセッサは通信リンクによりキャッシュ・メモリ3とプリフェッチ手段4とに接続されている。プログラムを実行し、記憶装置1のそれぞれのデータをアクセスするプロセッサ5は、主メモリに記憶されているデータの大部分が前もって書込まれている非常に速いキャッシュ・メモリ3も主としてアクセスする。データをキャッシュ・メモリ3に転送することにより、必要があればそれらのデータをプロセッサが十分な速さで利用できるようにされる。しかし、プロセッサ5がアクセスしようとする或るアドレス・ラインがキャッシュ・メモリ3で利用できないとすると、それは主メモリ2からキャッシュ・メモリ3へロードされ、そこからプロセッサ5へ転送される。
【0018】
データ転送および電力消費の面で有利である、共通のチップ上に設けることが好ましい、図1に示されている全体の構成は、上記のように、プリフェッチを実行するためにも構成される。プリフェッチの枠組み内で、プロセッサがキャッシュ・メモリ・ラインをアクセスし、そこでそのラインにおけるあるアドレスをアクセスすると、逐次データを含んでいる次のラインもキャッシュ・メモリ3に既に存在しているかどうかについて判定される。もし存在していなければ、それぞれの失われているラインが主メモリ2からプリフェッチ手段4を介してキャッシュ・メモリ3へ送られ、またはその伝送が開始される。
【0019】
図2は可能なキャッシュ・メモリ構成を基本的な図の形で示すもので、取り得るプリフェッチを開始するために用いられる。プロセッサ5はアドレス6をキャッシュ・メモリに供給する。それはどのデータがプロセッサにより必要とされているかを示す。アドレス6は全部で6つのアドレス部I、IIおよびIIIで構成されている。最初のアドレス部Iは、キャッシュ・メモリ・ラインのデータが割り当てられる主メモリのページアドレスを示す。キャッシュ・メモリ3は、主メモリのページ・アドレスに対応するページ・アドレス8が格納されているそれぞれのキャッシュ・アドレス・ディレクトリ7を含んでいる。キャッシュ・アドレス・ディレクトリ7は今はアドレス部IIによりアドレスされており、アドレス部Iはキャッシュ・アドレス・ディレクトリの内容と比較される。この場合にはページ・アドレスは「0×01」である。
【0020】
ライン・アドレスを表すアドレス部IIは、アドレス部Iに記憶されているデータをキャッシュ・メモリ3のどのラインで利用できるかを示す。したがってこの情報はキャッシュ・アドレス・ディレクトリとキャッシュ・メモリとの間のリンクを表す。図示の例ではこのアドレス情報は「Z5」である。最後に、アドレス部IIIはそのラインで読出すべきそれぞれのデータのアドレスを示す。図2に示すように、キャッシュ・メモリ3は複数のラインZ1、Z2、...ZNに分割され、かつ複数の列S1、S2、...SNに分割される。アドレス部IIIにおける情報は「S6」と読め、したがって列ブロックS6における情報を読出すべきデータとして決定する。
【0021】
図示の例では、キャッシュ・メモリ3のラインZ5に記憶されているデータはアクセスされ、したがってそのデータは列ブロックS6に配置されている。読出すべき情報は図示の例では「17」と読まれる。
【0022】
キャッシュ・メモリがプロセッサからアドレス6を受けるとすると、主メモリのそれぞれの次のラインに記憶されている次のデータも、キャッシュ・メモリ3で既に使用可能であるかどうかについて自動的に判定される。したがって、アドレス「0×01/Z5」の後のデータ・ライン、すなわち、ライン「0×01/Z6」もキャッシュ・メモリ3において既に利用できるかどうかについての判定が行われる。これは、ステップ9でキャッシュ・ディレクトリ7をテストすることにより行われる。ラインが存在することが確定するとそれらのデータを使用でき、そのラインがなければそのラインを主メモリからロードするためにおそらくプリフェッチが必要である。
【0023】
プリフェッチ動作を実際に開始するために、探されているラインが存在しないばかりでなく、別の条件も満たさなければならない。この別の条件は、キャッシュ・メモリ3内の所定のライン部分内にあるアドレスをプロセッサがアクセスすることである。図示の例では、このライン部分はライン部分アドレス「X」を基にして決定される。これによって定められるライン部分は、そのライン部分アドレスに等しいか、それより大きいラインZ1、Z2、...ZNの1つのアドレスの全てを有する。たとえば、ライン部分アドレスがX=S5と読めたとすると、ライン部分は全ての列S5、S6、...SMを有する。プロセッサによりただちに呼ばれたアドレスS6がこのライン部分の外側にあるものとすると、プリフェッチは実行されない。それがもしそのライン部分の内側にあるとすると、プリフェッチが実行される。これはステップ10で判定される。ステップ9と10における条件が両方とも満たされたならば、それはステップ11で判定される、プリフェッチが実行されて、それぞれのデータが主メモリから読出されてキャッシュ・メモリ3へ転送される。ステップ9、10および11はプリフェッチ手段4で行われる。そのためにプリフェッチ手段はそれぞれの論理およびソフトウエアを有する。ライン部分値Xは最後にセットすることを選択できる。すなわち、任意の値を持つようにそれぞれのライン部分をセットできる。たとえば、従来技術で知られているように、各プロセッサ・アクセスにプリフェッチの可能性が与えられるとすると、ライン部分値XはS1にセットされ、そうするとそのライン部分は全ての列部分を備えることになる。任意の時刻にプリフェッチを実行しないのとすると、ライン部分値Xはたとえば0にセットされる。
【0024】
最後に、図3は図2に従うキャッシュ・メモリの構成を示す。しかしここでは複数のレジスタ・メモリ12′、12″、12′″、12″″がキャッシュ・メモリ3に割り当てられている。それらのレジスタ・メモリには、プリフェッチの枠組み内で主メモリからロードされたデータが書込まれる。レジスタ・メモリ12′、...、12″″にはそれぞれのレジスタ・アドレス・ディレクトリ13が割り当てられる。その後でそのレジスタ・アドレス・ディレクトリには、主メモリ・アドレスに対応するそれぞれのアドレスが書込まれる。複数のレジスタ・メモリを用いることによって、ただ1つのレジスタ・メモリを使用できる場合に行われるような、新しいプリフェッチ中に重ね書きされる、ということが行われずにプリフェッチ・データをある時間保持することが可能である。書込みのやり方は、新しいプリフェッチ・データの場合には最も古いプリフェッチ・データを含んでいるレジスタ・メモリに重ね書きされる、というようのものとすることができる。その結果、ライン飛び越しがしばしば起きるようなプログラムが実行される場合に、書込まれているが、ライン飛び越しのために必要とされなかった、読出されないプリフェッチ・データが、プログラムが元のラインへ再び飛び越してデータがいぜんとして必要とされる可能性が存在するために、そのデータが重ね書きされるまである時間保持される、という条件が考慮に入れられる。それらのデータは他のレジスタ・メモリに書込まれるであろうから、次のプリフェッチによる重ね書きは不可能である。最後に、キャッシュ・メモリの図示の構成は例として単に示したものであることを指摘できる。キャッシュ・メモリの構造は任意の物にできる。たとえば、キャッシュ・メモリは直接マッピング・キャッシュ・メモリとして、または両方向セット連想キャッシュ・メモリ構成できる。
【図面の簡単な説明】
【図1】プロセッサに割り当てられている記憶装置の基本的な図を示す。
【図2】プリフェッチの開始のための動作を表す第1の実施の形態のキャッシュ・メモリの構造の基本的な図を示す。
【図3】キャッシュ・メモリに割り当てられた複数のレジスタ・メモリを有する図1のキャッシュ・メモリの構造を示す。
【符号の説明】
1 記憶装置
2 主メモリ
3 キャッシュ・メモリ
4 プリフェッチ手段
5 プロセッサ
6 アドレス
7 キャッシュ・アドレス・ディレクトリ
8 ページ・アドレス
12′、12″、12′″、12″″ レジスタ・メモリ
S1、S2、...、SM 列
Z1、Z2、...、ZN 行

Claims (5)

  1. 主メモリと、アドレスに関連させられているラインで構成されているキャッシュ・メモリとを備え、そのキャッシュ・メモリでは要求に応じてプロセッサによってデータを、主メモリからロードでき、かつ読出すことができ、キャッシュ・メモリ内のあるアドレスに対応するアドレスを有する主メモリからのあるデータが記憶されている、キャッシュ・メモリの前記あるアドレスのデータをプロセッサがアクセスしている最中に、逐次データがキャッシュ・メモリ内の次のアドレスに記憶されているかどうかがテストされ、それらの逐次データは、もし利用できなければ、主メモリからプリフェッチを介してキャッシュ・メモリにロードできる、記憶装置を動作する方法において、
    ラインにおける所定のライン部分をプロセッサがアクセスする時にのみプリフェッチが行われ、
    ライン部分は、所定のライン部分アドレスにより定められ、かつライン部分アドレスより大きいか、それに等しいライン内のアドレスの全てを含み、プロセッサがアクセスするライン内のアドレスがライン部分アドレスと比較され、
    各ラインがある長さの複数のライン領域に分割され、各ライン領域にはそれ自身のライン領域アドレスが割り当てられ、そのライン領域アドレスはライン部分アドレスと比較され、
    ライン部分アドレスは数値の形で与えられ、比較に関する数値がライン領域アドレスを基にして決定され、
    異なる長さの複数のライン部分が決定され、要求に応じて実行すべきプリフェッチを決定するために考慮すべきライン部分がプログラム部分に従って選択され、当該プログラム部分を実行するプロセッサにより前記選択されたライン部分がアクセスされる時にプリフェッチが行われる、
    ことを特徴とする記憶装置を動作する方法。
  2. 主メモリと、複数のラインで構成されているキャッシュ・メモリと、プリフェッチ手段とを備え、キャッシュ・メモリには主メモリから読出されたデータを要求に応じて書込むことと読出すことができ、プリフェッチ手段はキャッシュ・メモリへ伝送するための主メモリからのデータのプリフェッチを行うかどうかを決定し、かつプリフェッチを実行する、データ記憶装置であって、
    プリフェッチ手段において、キャッシュ・メモリのラインの長さに関連する少なくとも1つのライン部分アドレスが決定され、またはそのライン部分アドレスを決定でき、それによってキャッシュ・メモリのラインにおけるライン部分が定められ、ライン部分アドレスをプロセッサがアクセスするライン内のアドレスと比較することにより、プロセッサがライン部分内をアクセスするか否かを判定し、プロセッサがライン部分内をアクセスすると判定された場合にはプリフェッチを実行し、
    キャッシュ・メモリの各ラインは、ライン部分アドレスと比較できる別々のライン領域アドレスをおのおの有する複数のライン領域に分割され、
    複数のライン部分を決定するために複数のライン部分アドレスを決定でき、比較のために使用すべきライン部分アドレスが、プロセッサにより実行すべきプログラムのプログラム部分に依存して選択され、そのプログラム部分は、キャッシュ・メモリをアクセスしている間にプロセッサにより実行される、
    ことを特徴とするデータ記憶装置。
  3. キャッシュ・メモリは、プリフェッチ手段によりプリフェッチ・データを書込むことができるレジスタ・メモリを含むことを特徴とする請求項2に記載の記憶装置。
  4. 種々のプリフェッチ動作のそれぞれのプリフェッチ・データを書込むことができる複数のレジスタ・メモリが設けられていることを特徴とする請求項3に記載の記憶装置。
  5. 最初に書込むべきプリフェッチ・データをレジスタ・メモリに書込むことができ、最も古いプリフェッチ・データが重ね書きされている間に最も新しいプリフェッチ・データを利用できることを特徴とする請求項4に記載の記憶装置。
JP2000246733A 1999-08-21 2000-08-16 記憶装置を動作する方法および記憶装置 Expired - Fee Related JP4210024B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19939764.3 1999-08-21
DE19939764A DE19939764A1 (de) 1999-08-21 1999-08-21 Verfahren zum Betrieb eines Speichersystems sowie Speichersystem

Publications (2)

Publication Number Publication Date
JP2001075866A JP2001075866A (ja) 2001-03-23
JP4210024B2 true JP4210024B2 (ja) 2009-01-14

Family

ID=7919203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000246733A Expired - Fee Related JP4210024B2 (ja) 1999-08-21 2000-08-16 記憶装置を動作する方法および記憶装置

Country Status (4)

Country Link
US (1) US6594731B1 (ja)
EP (1) EP1079307B1 (ja)
JP (1) JP4210024B2 (ja)
DE (1) DE19939764A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4093741B2 (ja) * 2001-10-03 2008-06-04 シャープ株式会社 外部メモリ制御装置およびそれを含んだデータ駆動型情報処理装置
US7260704B2 (en) * 2001-11-30 2007-08-21 Intel Corporation Method and apparatus for reinforcing a prefetch chain
US7162588B2 (en) * 2002-08-23 2007-01-09 Koninklijke Philips Electronics N.V. Processor prefetch to match memory bus protocol characteristics
JP2005322110A (ja) * 2004-05-11 2005-11-17 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
DE102010027287A1 (de) * 2010-07-16 2012-01-19 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum prüfen eines Hauptspeichers eines Prozessors
WO2012069874A1 (en) * 2010-11-22 2012-05-31 Freescale Semiconductor, Inc. Integrated circuit device, signal processing system and method for prefetching lines of data therefor
CN104951340B (zh) * 2015-06-12 2018-07-06 联想(北京)有限公司 一种信息处理方法及装置
US9542290B1 (en) 2016-01-29 2017-01-10 International Business Machines Corporation Replicating test case data into a cache with non-naturally aligned data boundaries
US10169180B2 (en) 2016-05-11 2019-01-01 International Business Machines Corporation Replicating test code and test data into a cache with non-naturally aligned data boundaries
US10055320B2 (en) * 2016-07-12 2018-08-21 International Business Machines Corporation Replicating test case data into a cache and cache inhibited memory
US10223225B2 (en) 2016-11-07 2019-03-05 International Business Machines Corporation Testing speculative instruction execution with test cases placed in memory segments with non-naturally aligned data boundaries
US10261878B2 (en) 2017-03-14 2019-04-16 International Business Machines Corporation Stress testing a processor memory with a link stack

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
JPH06222990A (ja) * 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置

Also Published As

Publication number Publication date
EP1079307A1 (de) 2001-02-28
DE19939764A1 (de) 2001-02-22
EP1079307B1 (de) 2014-10-01
JP2001075866A (ja) 2001-03-23
US6594731B1 (en) 2003-07-15

Similar Documents

Publication Publication Date Title
US6658533B1 (en) Method and apparatus for write cache flush and fill mechanisms
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
JP4210024B2 (ja) 記憶装置を動作する方法および記憶装置
JP2003504757A (ja) 外部メモリアクセス用バッファリングシステムバス
WO2005066800A1 (en) Processor and memory controller capable of use in computing system that employs compressed cache line’s worth of information
JPH09120372A (ja) プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御
US6700582B2 (en) Method and system for buffer management
US7162588B2 (en) Processor prefetch to match memory bus protocol characteristics
JP2005524170A (ja) 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法
US20050246498A1 (en) Instruction cache and method for reducing memory conflicts
US5761718A (en) Conditional data pre-fetching in a device controller
JP4459641B2 (ja) シーケンシャルバッファを内蔵してdspのデータアクセス性能を向上させるコンピュータシステム及びそのコンピュータシステムのアクセス方法
US7249222B1 (en) Prefetching data based on predetermined criteria
US6374344B1 (en) Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts
US5490262A (en) Dual cache memory device with cache monitoring
US5933856A (en) System and method for processing of memory data and communication system comprising such system
US7085887B2 (en) Processor and processor method of operation
JP3039391B2 (ja) メモリシステム
JP2001222467A (ja) キャッシュ装置
US6625697B1 (en) Cache-storage device with a buffer storing prefetch data
US6065097A (en) Apparatus and method for sharing a unified memory bus between external cache memory and primary memory
US7136965B2 (en) Microcomputer
EP1776632A1 (en) Controller and a method of for controlling the communication between a processor and an external peripheral device
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080502

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080520

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080910

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: 20080924

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081024

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees