JP2007004835A - キャッシュメモリの運用方法 - Google Patents

キャッシュメモリの運用方法 Download PDF

Info

Publication number
JP2007004835A
JP2007004835A JP2006281546A JP2006281546A JP2007004835A JP 2007004835 A JP2007004835 A JP 2007004835A JP 2006281546 A JP2006281546 A JP 2006281546A JP 2006281546 A JP2006281546 A JP 2006281546A JP 2007004835 A JP2007004835 A JP 2007004835A
Authority
JP
Japan
Prior art keywords
information
storage element
auxiliary storage
auxiliary
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006281546A
Other languages
English (en)
Inventor
Takuton Kan
鐸 敦 韓
Shin-Dug Kim
新 徳 金
Kigo Boku
基 豪 朴
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007004835A publication Critical patent/JP2007004835A/ja
Pending 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
    • 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
    • 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

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

【課題】キャッシュミスを低減し、かつメモリシステムの高性能化を図る。
【解決手段】中央制御部40が参照する下位メモリ素子48に記憶された大量の情報から取り出される第1情報が格納される第1補助記憶素子42、及び第1情報が含まれる第2情報が格納される第2補助記憶素子44を用意する。参照される情報が、第1補助記憶素子42または第2補助記憶素子44に存在するか、あるいは、参照される情報を含んでいない別の第1情報が第1補助記憶素子42に存在するか否かによって、前記下位メモリ素子48から第1情報または第2情報を選択的に取り出し、第1補助記憶素子42と第2補助記憶素子44とに選択的に格納する。
【選択図】図1

Description

本発明は、キャッシュメモリシステム及びその運用方法に係り、特にキャッシュメモリ内でのキャッシュミスを減らして、システムの性能の向上をはかったキャッシュメモリシステム及びその運用方法に関する。
一般に、プロセッサとメモリとの性能の差が一層著しくなるにつれて、図7に示すように、メモリは、プロセッサ内で使用されるレジスタ10と、キャッシュ11と、主記憶装置であるメモリ12と、補助記憶装置である磁気ディスク13とバックアップ装置で使用される磁気テープ14とで構成される階層的な構造となりつつある。このような階層的な構造で使用される各々の装置は、レジスタ10などの上位階層にあるほど動作速度は高速であるが、情報が格納されるメモリサイズは小さくなる。これに対し、補助記憶装置である磁気テープ14などの下位階層にあるほど動作速度は低速であるがメモリサイズは大きくなる。
そこで、ほとんどの高性能システムにおいては、階層的な構造のメモリ構造で使用される上位階層に属するレジスタ10やキャッシュ11などの大きさ、構成、動作方式を適宜設定して、システムの性能の向上をはかっている。キャッシュ11を使用する階層的なメモリシステムでは、中央処理装置(CPU)によって参照される情報の地域性に基づいてキャッシュ11を使用することにより、優れた性能を得ることが可能である。参照される情報の地域性は、空間的な地域性(Spatial locality)と時間的な地域性(Temporal locality)とに大別できる。空間的な地域性とは、特定のメモリ要素である情報が参照された場合、この参照された情報に隣接したアドレスに位置づけられた別の情報が、近い将来に参照される可能性が高い傾向を意味する。また、時間的な地域性とは、参照された情報が近い将来に参照される可能性が高い傾向を意味する。
かかる空間的な地域性及び時間的な地域性を反映させるために、キャッシュメモリシステムを複数個の情報を含む情報のブロックで構成し、キャッシュミスが生じると、キャッシュミスの生じた情報と共にこのキャッシュミスの生じた情報に隣接した情報を下位メモリ素子から取り出して格納することにより空間的な地域性を反映し、かつ最近参照された情報を含む情報のブロックをキャッシュメモリに格納することにより時間的な地域性を反映している。この2種類の地域性は、キャッシュの設計時に、情報ブロックのサイズを決める上で重要である。つまり、空間的な地域性をさらに十分に反映させるには、情報ブロックのサイズをより大きくしてキャッシュを構成することが好適ではあるが、全体のキャッシュサイズが一定の場合、情報ブロックのサイズの増大はキャッシュ内に存在する情報ブロックの数を減らすことになるため、時間的な地域性の反映が困難となる。
図8は、キャッシュの空間的及び時間的な地域性の性質を概念的に示したものである。図8において、X軸はメモリ参照が生じたアドレス、Y軸は参照の確率を表わしている。図8は、メモリ領域における各情報への参照確率と、参照される情報のブロックサイズとの関係を示すものである。図から明らかなように、A番地の情報への情報参照が生じると、空間的な地域性の傾向に従いA番地と隣接した領域の情報はプロセッサによって参照される確率が高く、A番地から遠ざかるほど、プロセッサによって参照される確率は低い。したがって、この性質によってA番地を頂点とする特性曲線を表わすことが出来る。図8に示すように、大きいブロック22を持たせてキャッシュを構成する場合と、小さいブロック20を持たせてキャッシュを構成する場合とで、前述した2種類の地域性の反映は次のようになる。大きいブロック22を有するようキャッシュメモリが構成されると、情報への参照に対しキャッシュミスが生じた場合、大きいブロック22によってより大量の情報を一度に取り出すことは、小さいブロック20に従う小さい量だけの情報を取り出すことに比して、空間的な地域性は十分に反映されるものの、ブロック内に存在する情報の平均的な参照確率は低下し、一定のキャッシュメモリサイズを有するキャッシュメモリシステムの場合は、時間的な地域性の反映度が低下する。
さらに、小さいブロック20を有するようキャッシュメモリが構成されると、大きいブロック22からなる場合に比して、キャッシュミスの生じた情報により近接した小さい量の情報のみ取り出すので、小さいブロック20内に存在する情報の平均的な参照確率は高まり、時間的な地域性は十分に反映されるものの、空間的な地域性の反映度が低下する。このように、空間的な地域性と時間的な地域性とは、キャッシュブロックのサイズを決める上で、互いに相反する要素として作用する。従って、前述した2種類の地域性を考慮して、最適のブロックサイズを決める研究がなされており、この研究の結果に基づいて適宜なサイズの、単一のブロックサイズを有するようキャッシュメモリを構成してきた。
ところが、上述のように単一のキャッシュブロックサイズを有するよう構成されたキャッシュメモリシステムでは、空間的な地域性及び時間的な地域性を反映させるにあたって、システムの性能が低下するという欠点がある。この欠点を解決するために、空間的な地域性及び時間的な地域性を各々反映させる空間的キャッシュと時間的キャッシュとを別途に備えるデュアルデータキャッシュに対する研究がなされてきた。このデュアルキャッシュを利用する研究は、如何なる参照が空間的な地域性を有し、時間的な地域性を有するかを区分することにより、当該地域性が反映されるキャッシュに該当する情報を格納する方法を採っている。
図9は、従来のキャッシュメモリシステムの構成を示すブロック図である。従来のキャッシュメモリシステム(ICS;International Conference on Supercomputing '95, Pages 338-347 参照)は、中央処理装置33と、情報を記憶している記憶装置34と、中央処理装置33の参照する情報が格納される空間的キャッシュ30及び時間的キャッシュ31と、キャッシュミス時に以前に参照された情報を用いて記憶装置34からの情報を空間的キャッシュ30と時間的キャッシュ31のうち、いずれの方に書き込むかを決める予想処理部32と、中央処理装置33が情報を参照するよう空間的キャッシュ30と時間的キャッシュ31とを選択するマルチプレクサ35と、予想処理部32の制御によって記憶装置34からの情報を空間的キャッシュ30及び時間的キャッシュ31に提供するよう選択するデマルチプレクサ36とで構成される。
このように構成される従来のシステムは、予想処理部32に格納された情報に基づいて、記憶装置34から中央処理装置33が提供する情報を空間的キャッシュ30と時間的キャッシュ31のいずれに格納するかを判断し、空間的キャッシュ30と時間的キャッシュ31とに選択的に書き込むことにより、性能を向上するように構成されている。予想処理部32で情報を書き込む各エントリは、命令アドレス、最終アドレス、変位(Stride)、長さ、状態及び予想値などの項目で構成される。予想処理部32は、同じ命令アドレスで発生されたデータ参照同士のアドレスの差を利用することにより変位を求め、この変位により得られた情報を空間的キャッシュ30と時間的キャッシュ31のいずれに書き込むかを判断する根拠として提供する。
例えば、A番地の命令語によってB番地の情報が参照され、A番地の命令語が以降に遂行される時にB+αが参照され、それ以降に、A番地の命令語が遂行される時、B+2α番地の情報が参照されれば、A番地の命令語が参照する情報のアドレスは、B番地からαを変数とする一定の変位を有すると予想処理部32は判断する。そうすると、αによって一定の変位を有すると判断される情報は、変位の値に応じて空間的キャッシュ30、または時間的キャッシュ31に区分されて格納される。つまり、予想処理部32エントリは、中央処理装置33で発生された命令アドレスによって検索され、この命令アドレスによって参照される情報のアドレスは、予想処理部32に具備される最終アドレスの項目に格納される。従って、予想処理部32の変位項目には、特定のアドレスの命令語によって現在参照された情報のアドレスと直前に参照された情報のアドレスとの差が格納される。
例えば、この変位によるB、B+α、B+2αなどの一定の変位によって連続的に参照される3回の参照が一定の段階を有する場合にのみ、情報参照が空間的または時間的な地域性のうち如何なる地域性を有するかに対する予測が可能となり、これにより、情報を空間的キャッシュ30と時間的キャッシュ31のいずれに書き込むかに対する判断がなされる。上述のように、一定の変位によって決まった地域性の性質に応じて、該当情報が空間的キャッシュ30または時間的キャッシュ31に格納されることにより、性能の向上が期待できる。
ところが、上記のように構成される従来のキャッシュメモリシステムは、全体の情報参照のうちに一定の変位を有しない参照が発生することが多く、同じ命令語で参照される情報アドレスの変位が変化することがあるため、一定の変位を有する情報参照に対して処理を行う構造では、一定でない変位に起因して発生される情報参照によって好適な性能の向上が得られないという問題がある。そこで、本発明の目的は、キャッシュメモリの運用にあたって、空間的な地域性及び時間的な地域性を合わせて反映させるために、キャッシュ内に存在する情報の状態に応じて、キャッシュミス時に取り出される情報の量を選択的に決め、かつ取り出された情報のうち、参照確率の高い情報が参照確率の低い情報よりもキャッシュ内に長く留まるよう選択的に書き込むことによりキャッシュミスを低減させ、しかもメモリトラフィックの効率を高めるキャッシュメモリの運用方法及びそのシステムを提供するにある。
前記技術的課題を達成するために、本発明は、(a)中央制御部が参照するよう大量の情報を下位メモリ素子に格納する段階と、(b)前記下位メモリ素子に格納された大量の情報から取り出される第1情報が書き込まれる第1補助記憶素子、及び前記第1情報が含まれる第2情報が書き込まれる第2補助記憶素子を用意する段階と、(c)前記第1補助記憶素子または前記第2補助記憶素子に、前記中央制御部によって参照される情報が存在するか否かを判断する段階と、(d)前記第1補助記憶素子に、前記中央制御部によって参照される情報が存在すれば、前記中央制御部が前記第1補助記憶素子から前記情報を参照する段階と、(e)前記中央制御部によって参照される情報が前記第1補助記憶素子に存在せず、前記第2補助記憶素子に存在すれば、前記第2補助記憶素子の情報のうち、前記中央制御部が参照する情報を含む第2情報内の第1情報は前記第1補助記憶素子に移し、前記中央制御部が前記第1情報または前記第2情報から情報を参照する段階と、(f)前記第1補助記憶素子及び前記第2補助記憶素子に、前記中央制御部によって参照される情報が存在しなければ、前記中央制御部によって参照される情報を含む第2情報を前記下位メモリ素子から取り出して前記第2補助記憶素子に書込み、前記第2補助記憶素子に書き込まれる前記第2情報のうち、前記中央制御部によって参照される情報を含む前記第1情報は前記第1補助記憶素子に移し、前記中央制御部が取り出された前記第1情報または前記第2情報から情報を参照する段階と、(g)前記(e)または(f)段階において、前記第2補助記憶素子または前記下位メモリから新たに取り出された第1情報または第2情報に応じて、前記第1補助記憶素子または前記第2補助記憶素子に既存する第1情報または第2情報が書き換えられる時、前記書き換えられる第1情報を含む第2情報が第2補助記憶素子に格納されており、前記書き換えられる第1情報が前記第1補助記憶素子で更新されて、前記第2補助記憶素子に格納された前記第2情報に含まれた第1情報とは別の情報となった場合にのみ、第2補助記憶素子に格納された前記第2情報に含まれる第1情報を、前記書換えられる第1情報に更新する段階とを含むことを特徴とする。
本発明によれば、キャッシュ内に存在する情報の状態に基づいて、キャッシュミス時に取り出される情報の量を選択的に決め、かつ取り出された情報のうち参照確率が高い情報が参照確率が低い情報よりキャッシュ内に長く留まるよう選択的に格納することにより、空間的な地域性及び時間的な地域性を併せて反映させるので、キャッシュミスが低減でき、これにより、メモリトラフィックの効率を高めてメモリシステムの性能を向上させる効果がある。
以下、添付された図面に基づいて本発明の好適な実施の形態をさらに詳細に説明する。図1(A)は、本発明に係るキャッシュメモリシステムのブロック図で、図1(B)は、本発明で用いる第1情報と第2情報との関係を示すものである。また図2は、図1(A)のキャッシュメモリシステムのブロック図に従う流れ図である。図1(A)及び(B)を参照すれば、本発明は、中央制御部40、下位メモリ素子48、第1補助記憶素子42、第2補助記憶素子44及び制御手段46で構成される。下位メモリ素子48には、中央制御部40が参照するよう大量の情報が格納される。
第2補助記憶素子44には、中央制御部40で参照される情報を含む所定量の情報が下位メモリ素子48から第2情報402 として取り出されて格納される。第1補助記憶素子42には、中央制御部40で参照される情報を含む第2補助記憶素子44に格納された第2情報402 から、または下位メモリ素子48から取り出される第1情報401 が格納される。制御手段46は、状態記憶素子46aとデマルチプレクサ46bとで構成されるが、状態記憶素子46aは、特定の第2情報402 に含まれ第1補助記憶素子42に格納された前記第1情報401 の数を表わす状態情報を有する。デマルチプレクサ46bは、状態記憶素子46aの状態情報に基づいて、第1情報401 または第2情報402 を第1補助記憶素子42及び第2補助記憶素子44に選択的に格納するよう制御を行う制御手段46によって制御される。このように構成される本発明の実施の形態を図1(B)に基づいて説明する。
まず、図1(B)で示すように、第2情報402 は、複数個の第1情報401 で構成され、かつ中央制御部40が情報を参照するとき、複数個の第1情報401 のうちいずれか一つの第1情報401 の一部に含まれる情報が参照される。従って、中央制御部40が参照する情報は第1情報401 に含まれ、かつ第1情報401 は第2情報402 に含まれる。また、中央制御部40によって参照される情報を含む一つの第1情報401 は、下位メモリ素子48から、または第2補助記憶素子44に格納される第2情報402 から取り出されて、第1補助記憶素子42に格納される。中央制御部40によって参照される情報を含む第1情報401 と、他の第1情報401 とによって構成される第2情報402 は、下位メモリ素子48から取り出されて、第2補助記憶素子44に格納される。
このように、中央制御部40によって下位メモリ素子48から情報を取り出して第2補助記憶素子44に書き込む場合、下位メモリ素子48から取り出されて第2補助記憶素子44に書き込まれた第2情報402 のうち、中央制御部40によって参照される情報を含む一つの第1情報401 は、第2補助記憶素子44から第1補助記憶素子42に移されて、格納される。このように、第1補助記憶素子42は第1情報401 を記憶する記憶素子であり、第2補助記憶素子44は第2情報402 を記憶する記憶素子である。
以上のような第1情報401 と第2情報402 との関係に基づき、本発明を図2を参照しながら説明する。階層的なメモリ構造上において、図示しない外部装置(I/O Device)によって大量のデータである情報が主メモリまたはキャッシュメモリとしての下位メモリ素子48に格納され(ステップ100 )、下位メモリ素子48に格納された情報はCPUまたはプロセッサである中央制御部40によって読み出されて参照される。下位メモリ素子48に格納された大量の情報から取り出される第1情報401 が書き込まれる第1補助記憶素子42、及び第1情報401 が含まれる第2情報402 が書き込まれる第2補助記憶素子44が用意される(ステップ200 )。
中央制御部40によって参照される情報が第1補助記憶素子42または第2補助記憶素子44に存在するか、あるいは中央制御部40によって参照される情報を含む第1情報401 を含む第2情報402 内において、参照される情報を含んでいない第1情報401 が第1補助記憶素子42に存在するか否かによって、下位メモリ素子48から第1情報401 、または第2情報402 を選択的に取り出し、第1情報401 または第2情報402 を第1補助記憶素子42及び第2補助記憶素子44に選択的に格納する(ステップ400 )。第1補助記憶素子42は時間的な地域性を主に反映させるために構成されたTOC(Temporal Oriented Cache)メモリであり、一方第2補助記憶素子44は空間的な地域性を主に反映させるために構成されたSOC(Spatial Oriented Cache)メモリである。
中央制御部40によって、TOCメモリである第1補助記憶素子42とSOCメモリである第2補助記憶素子44とに格納された情報が参照されるが、第1補助記憶素子42または第2補助記憶素子44に、中央制御部40が参照しようとする情報が存在しなければ、中央制御部40による参照がキャッシュメモリから参照され得ないキャッシュミスとして、下位メモリ素子48から中央制御部40が参照しようとする情報を取り出す。状態記憶素子46aを含んでなる制御素子46は、中央制御部40によって参照されるために下位メモリ素子48から取り出される第1情報401 または第2情報402 を、第1補助記憶素子42または第2補助記憶素子44のいずれに格納するかを制御するデマルチプレクサ46bを含む。好ましくは、第1補助記憶素子42に格納される第1情報401 は16−64バイトの範囲で設定され、一方第2補助記憶素子44に格納される第2情報402 は64−512バイトの範囲で設定されるが、第2補助記憶素子44に格納される第2情報402 のサイズは第1情報401 のサイズの2の倍数となる。
例えば、第1補助記憶素子42に格納される第1情報401 のサイズが16バイトであり、この16バイトを一つの第1情報401 ブロックとするとき、第2補助記憶素子44に格納される第2情報402 のサイズは64バイトとなり、第1補助記憶素子42に格納される第1情報401 ブロックの4倍のブロックとなる。下位メモリ素子48から第1情報401 及び第2情報402 が取り出される場合、各情報のブロックは、第1補助記憶素子42及び第2補助記憶素子44に格納される情報ブロックの基本単位となる。
好適な実施の形態として、以下では、下位メモリ素子48から読み取られて格納される情報ブロックの基本単位が、第1補助記憶素子42では32バイトサイズが一つの情報の基本単位となる情報ブロックとして、また第2補助記憶素子44では第1補助記憶素子42のサイズの4倍に当る128 バイトサイズが一つの情報の基本単位となる情報ブロックとして説明される。さらに、情報ブロックを構成する基本単位が第1補助記憶素子42の4倍となるように設定された第2補助記憶素子44に書き込まれる第2情報402 はSOCブロックで、かつ第1補助記憶素子42に書き込まれる第1情報401 はTOCブロックである。なお、SOC及びTOCブロックである第2情報402 と第1情報401 の大きさは、好適な実施の形態として、第1情報401 が16−64バイト、第2情報402 は64−512 バイトである場合を仮定したが、各情報の大きさはプロセッサに存在するキャッシュメモリの容量に応じて変わりうる。
SOCブロックである第2情報402 の大きさは、TOCブロックである第1情報401 より大で、かつ第2補助記憶素子44が格納しうる第2情報402 の数は、第1補助記憶素子42が格納しうる第1情報401 の数と、第2補助記憶素子44の連関度及び第1補助記憶素子42の連関度の比が互いに乗算された結果値より小さく構成される。例えば、第1補助記憶素子が格納しうる第1情報の数が512 個で、第2補助記憶素子の連関度が8で、かつ第1補助記憶素子の連関度が1である場合、第2補助記憶素子が格納しうる第2情報の数は512×8によって計算された 4,096個より少なく構成される。
一方、第2補助記憶素子44に存在するSOCブロックの数が小さければ、一つのキャッシュブロックに転送されるメモリブロックの数が上がり、多くのキャッシュ衝突ミス(conflict miss)が発生可能である。このキャッシュ衝突ミスに起因するキャッシュメモリシステムの性能の低下を防ぐために、第2補助記憶素子44の連関度を第1補助記憶素子42の連関度より高く構成する。
図3は、本発明に係る状態記憶素子及びキャッシュミスアドレスを示す図である。図3に示すように、状態記憶素子46aはN個のエントリを有し、直接写像キャッシュの構造となる場合を実施の形態として説明する。特定の第2情報402 に含まれ、第1補助記憶素子42に格納された第1情報401の数をエントリとして記憶する状態記憶素子46aは、この特定の第2情報402 アドレスにより中央制御部40からアクセスされる。これにより、キャッシュミスアドレス600 の最下位ビットからlog2 BSOC (BSOC :第2補助記憶素子のブロックサイズ)のビット数だけをオフセット部65にし、その上位ビットからlog2N (Nは状態記憶素子のエントリ数である)のビット数だけのインデックス部64を利用して、N個の状態記憶素子46aのエントリのうち一つのエントリを選択し、その上位の残りビットをタグアドレス部63にして、状態記憶素子46aのタグ部60に書き込む。
中央制御部40によって状態記憶素子46aがアクセスされる場合、キャッシュミスアドレス600 によるタグアドレス部63と、インデックス部64によって選ばれた状態記憶素子46aのエントリに格納されたタグ部60とを比較することにより、選ばれたエントリが特定の第2情報402 に該当するエントリであるか否かを判断する。タグアドレス部63によって指定される状態記憶素子46aの各エントリは、エントリが格納している情報が如何なる第2情報402 に関するものであるかを示すタグ部60と、如何なる第2情報402 に含まれ、第1補助記憶素子42に格納された第1情報401 の数を示すカウント部61と、エントリが有効であるか否かを示す有無効部62とで構成される。
カウント部61に格納されるカウント値は、カウント部61のカウント値が“0”であれば、第1補助記憶素子42に特定の第2情報402 に含まれる第1情報401 、つまり、TOCブロックが存在しないことを表わし、カウント部61の値が“0”でなくて、“1”以上であれば、第1補助記憶素子42に特定の第2情報402 に含まれる第1情報401 が前記値によるブロックの数だけ存在していることを表わす。好ましくは、状態記憶素子46aのエントリは最大N個まで構成可能であるが、このNは、第1補助記憶素子42に格納されうる第1情報401 の数である。
図4は、本発明に係る選択的な格納方法を示す流れ図である。図2で説明したステップ400 は、図4に示すように、状態記憶素子を用意する段階(470)、参照される情報が存在するか否かを判断する段階(460)、第1情報を参照する段階(410)、第2情報を参照する段階(420)、カウント値が少なくとも1以上であるかどうかを判断する段階(430)、下位メモリ素子から第1情報を取り出す段階(440)、及び下位メモリ素子から第2情報を取り出す段階(450)で構成される。
まず、制御手段46の状態記憶素子46aは、特定の第2情報402 に含まれ、第1補助記憶素子42に格納された第1情報401 の数を表わす状態情報を有する(ステップ470 )。中央制御部40が参照する情報を第1補助記憶素子42または第2補助記憶素子44に書き込む場合、選択テーブルである制御手段46内の状態記憶素子46aに格納された状態情報を参照し、これによって第1補助記憶素子42または第2補助記憶素子44のうちいずれに中央制御部40によって参照される情報を書き込むかを、また下位メモリ素子48から第1情報401 または第2情報402 のうちいずれの情報を取り出すかを選択する。
一方、第1補助記憶素子42または第2補助記憶素子44に、中央制御部40によって参照される情報が存在するか否かを判断する(ステップ460 )。第1補助記憶素子42に、中央制御部40によって参照される情報を含む第1情報401 が存在する場合、中央制御部40が第1補助記憶素子42の第1情報401 から前記情報を参照する(ステップ410 )。中央制御部40によって参照される情報が第1補助記憶素子42に存在せず、第2補助記憶素子44に存在する場合、参照される第2補助記憶素子44の情報のうち、中央制御部40が参照する情報を含む第1情報401 は第1補助記憶素子42に移し、中央制御部40が第1情報401 または第2情報402 から情報を参照する(ステップ420 )。これにより、第1補助記憶素子42に第1情報401 が加わったことを表わすために、第1情報401 を含む第2情報402 に関する情報を有する状態記憶素子46aのエントリのカウント部61に格納されたカウント値を+1だけ上げることにより、状態情報を更新する。
状態記憶素子46aに、特定の第2情報402 に含まれ、第1補助記憶素子42に存在する第1情報401 の数を表わすカウント部61を有するエントリが存在しなければ、新たなエントリを割り当て、カウント部61のカウント値を1に初期化する。状態記憶素子46aへのアクセスは、中央制御部40によって情報を参照する時キャッシュでキャッシュミスが生じた場合、参照しようとする情報のアドレスであるキャッシュミスアドレス600 によって行われる。第1補助記憶素子42及び第2補助記憶素子44に、中央制御部40によって参照される情報が存在しない場合、状態情報を参照するために参照される情報のアドレスであるキャッシュミスアドレスによって状態記憶素子46aのカウント部61のカウント値を判断する(ステップ430 )。
この状態情報に基づいて、中央制御部40によって参照される情報を含む第1情報401 を含む第2情報402 内で、参照される情報を含んでいない第1情報401 が第1補助記憶素子42に存在するか否かを判断することができる。つまり、第1補助記憶素子42内で、中央制御部によって参照される情報を含む第2情報402 に含まれる第1情報401 の数を表わす状態記憶素子46aのカウント部61のカウント値を検査する。中央制御部によって参照される情報を含む第2情報402 に関する状態記憶素子のエントリが存在しないか、あるいは前記カウント値が“0”であれば、第1補助記憶素子42内に中央制御部40によって参照される情報を含む第2情報402 に含まれる第1情報401 がないことを、また少なくとも“1”以上であれば、中央制御部40によって参照される情報を含む第2情報402 に含まれる第1情報401 が少なくても一つ存在することを表わす。中央制御部40によって参照される情報を含む第1情報401 を含む第2情報402内に、参照される情報を含んでいない第1情報401 が状態情報に基づいて第1補助記憶素子42に存在すると判断されれば、中央制御部40によって参照される情報を含む前記第1情報401 を下位メモリ素子48から取り出して、第1補助記憶素子42に格納する(ステップ440 )。
なお、中央制御部40が下位メモリ素子48から取り出された第1情報401 から情報を参照し、第1補助記憶素子42に第1情報401 が移されて加わったことを表わすために、第1情報401 を含む第2情報402 に関する情報を有する状態記憶素子46aエントリのカウント部61に格納されたカウント値を+1だけ上げることにより、状態情報を更新する。中央制御部40によって参照される情報を含む第1情報401 を含む第2情報402内に、参照される情報を含んでいない第1情報401 が状態情報に基づいて、第1補助記憶素子に存在しないと判断されれば、中央制御部40によって参照される情報を含む第2情報402 を下位メモリ素子48から取り出して、第2補助記憶素子44に格納する(ステップ450 )。これにより、第2補助記憶素子44に格納された第2情報402 のうち、中央制御部40によって参照される情報を含む第1情報401 は第1補助記憶素子42に移されて格納される。
また、中央制御部40が取り出された第1情報401 または第2情報402 から情報を参照し、第1補助記憶素子42に第1情報401 が移されて加わったことを表わすために、第1情報401 を含む第2情報402 に関する情報を有する状態記憶素子46aのエントリのカウント部61に格納されたカウント値を+1だけ上げることにより、状態情報を更新する。カウント部61のカウント値は、第1補助記憶素子42に格納される第1情報401が中央制御部40によって別の第1情報401 に書換えられる時、書換えられる第1情報401 を含む第2情報402 に関する情報を有する状態記憶素子46aのエントリのカウント部61のカウント値を1だけ下げることにより、特定の第2情報402 に含まれる第1情報401 が第1補助記憶素子42に幾つ存在するかに関する状態情報が保たれる。
一方、カウント部61を用いた判断の基準となるカウント値は、好適な実施の形態として、特定の第2情報402 に含まれる第1情報401 が第1補助記憶素子42に存在するか否かを表わす“0”によって判断されると設定したが、特定の第2情報402 のうち、第1情報401 が第1補助記憶素子42に幾つ格納されているかに応じて“0”以外の“1”、そして“2”などの自然数となる値を判断の基準として設定することにより、前記第2情報402 と第1情報401 のうちいずれの情報を下位メモリ素子48から取り出して格納するかを決めることができる。
従って、前記判断のための上限として設定される値は、1から第2情報402 のブロックサイズを第1情報401 のブロックサイズにて除算した分に該当する数までの値より選択でき、好適な実施の形態として、本発明では、前記設定される値が第2情報402 のブロックサイズが第1情報401 のブロックサイズにて除算した分に該当する4とする。
特に、前記上限値を設定して利用する場合、中央制御部40が補助記憶素子で情報を参照し得ないためキャッシュミスが生じると、前記実施の形態で中央制御部40は、状態記憶素子46aの情報を下位メモリ素子48から取り出される情報のサイズを決めるための判断の基準とした。しかしながら、第2情報402 のブロックサイズを第1情報401 のブロックサイズで除算した分に該当する数によって前記上限値を設定した場合は、常に第2情報402 を下位メモリ素子から取り出すことになるので、状態記憶素子46aを備えなくて済む。従って、中央制御部40が補助記憶素子で情報を参照し得ないためキャッシュミスが生じると、中央制御部40によって参照される情報を含む第2情報402 を下位メモリ素子48から取り出して第2補助記憶素子44に書込み、第2補助記憶素子44に格納される第2情報402 のうち中央制御部40によって参照される情報を含む第1情報401 は第1補助記憶素子42に移し、中央制御部40は取り出された第1情報401 または第2情報402 から情報を参照する。
このように、第2補助記憶素子44または下位メモリ素子48から新たに取り出された第1情報401 または第2情報402 によって第1補助記憶素子42または第2補助記憶素子44に既存する第1情報401 または第2情報402 が書換えられる時、書換えられる第1情報401 を含む第2情報402 が第2補助記憶素子44に格納されており、かつ書換えられる第1情報401 が第1補助記憶素子42で更新されて第2補助記憶素子44に格納された第2情報402 に含まれた第1情報とは別の情報となった場合にのみ、第2補助記憶素子44に格納された第2情報402 に含まれる第1情報401 を書換えられる第1情報に更新する。一方、階層的なメモリ構造において、中央制御部40が補助記憶素子で情報を参照し得ないためキャッシュミスが生じる場合、前述した好適な実施の形態で、中央制御部40は状態記憶素子46aの情報を下位メモリ素子から取り出される情報のサイズを決めるための判断の基準としたが、状態記憶素子46aの情報に代えて、下位メモリ素子に中央制御部40が参照しようとする情報を含む第1情報401 及び第2情報402 が存在するか否かが判断の基準となるよう、その判断の基準が変わることもある。好ましくは、下位階層メモリ情報の基本単位を構成するブロックまたはページ等よりなる情報ブロックのサイズがSOC情報ブロックである第2情報402 より大きいか同一であるのが良い。一方、本発明は好適な実施の形態では、第1補助記憶素子42と第2補助記憶素子44とを分けて構成したが、別の実施の形態として、第1補助記憶素子42と第2補助記憶素子44を分けずに、一つの補助記憶素子として備えても良い。
このような実施の形態では、中央制御部40によって参照される情報が補助記憶素子にないためキャッシュミスが生じた場合、中央制御部40が参照しようとする情報を含む第2情報402 内に、参照される情報を含んでいない第1情報401 が単一の補助記憶素子に存在するか否かに応じて、下位メモリ素子48から第1情報401 または第2情報402 を選択的に取り出し、第1情報401 または第2情報402 を単一の補助記憶素子に選択的に格納する。中央制御部40が参照しようとする情報が補助記憶素子にないためキャッシュアクセスミスが生じて、中央制御部40が参照しようとする情報を含む第2情報402を取り出す場合、中央制御部40が参照しようとする情報を含む第1情報401 と別の第1情報401 とは補助記憶素子の連関度に応じて互いに別々の書換状態を有するよう格納される。つまり、補助記憶素子の連関度が2以上であれば、中央制御部40が参照しようとする情報を含む第1情報401 は同じ連関集まりで最も遅く書換えられるような書換情報を有し、残り第1情報401 は該当連関集まりで早く書換えられる書換情報を有するよう格納される。
図5は、本発明で使用された各変数を示すもので、図6は、キャッシュメモリの性能比較を示すものである。図5及び図6に示すように、本発明のキャッシュメモリシステムと別のキャッシュメモリシステムとの性能を比較するために、下記の式で表わしたMCPI(Memory Cycles Per Instruction)を使い、図5に示すように、キャッシュのサイズ及び構成を変えながら、性能評価を行った。図6には、Tomcatv(Type:CFP95, Total data reference:50, 139, 075)ベンチマークによる性能評価の結果が示してある。図6において、縦軸はMCPIを表わし、横軸はキャッシュサイズを表わす。各キャッシュメモリのサイズに該当するグラフにおいて、最左側の棒グラフは32バイトサイズのブロックを有する既存のキャッシュシステムのMCPIを表わし、残り4つの棒グラフはTOCブロックサイズを32バイトに設定し、SOCブロックサイズを64、128 、256 、512 バイトに設定した場合のMCPIを示している。SOC及びTOCブロックのサイズは、全キャッシュメモリサイズの1/2に設定し、TOCは直接写像(Direct-mapped)キャッシュに設定し、かつSOCブロックの連関度は8にした。
MCPI=(データ参照によって遅延されたサイクルの総数)/(データ参照の総数)
=(ミスの数*ミスペナルティ)/(データ参照の総数)
=ミス率*(遅延時間+ブロックサイズ/転送率)
(A)は本発明に係るキャッシュメモリシステムのブロック図、(B)は本発明に係る第1情報と第2情報との関係を示す図。 図1のキャッシュメモリシステムの流れ図。 本発明に係る状態記憶素子及びキャッシュミスアドレスを示す図。 本発明に係る選択的な格納方法を示す流れ図。 本発明で使用された各変数を示す図表。 キャッシュメモリの性能比較を示す図。 階層的なメモリ構造を示す図。 キャッシュの空間的及び時間的な地域性を説明する図。 従来のキャッシュメモリシステムのブロック図。
符号の説明
40:中央制御部
42:第1補助記憶素子
44:第2補助記憶素子
46:制御手段
48:下位メモリ素子

Claims (5)

  1. (a)中央制御部が参照するよう大量の情報を下位メモリ素子に格納する段階と、
    (b)前記下位メモリ素子に格納された大量の情報から取り出される第1情報が書き込まれる第1補助記憶素子、及び前記第1情報が含まれる第2情報が書き込まれる第2補助記憶素子を用意する段階と、
    (c)前記第1補助記憶素子または前記第2補助記憶素子に、前記中央制御部によって参照される情報が存在するか否かを判断する段階と、
    (d)前記第1補助記憶素子に、前記中央制御部によって参照される情報が存在すれば、前記中央制御部が前記第1補助記憶素子から前記情報を参照する段階と、
    (e)前記中央制御部によって参照される情報が前記第1補助記憶素子に存在せず、前記第2補助記憶素子に存在すれば、前記第2補助記憶素子の情報のうち、前記中央制御部が参照する情報を含む第2情報内の第1情報は前記第1補助記憶素子に移し、前記中央制御部が前記第1情報または前記第2情報から情報を参照する段階と、
    (f)前記第1補助記憶素子及び前記第2補助記憶素子に、前記中央制御部によって参照される情報が存在しなければ、前記中央制御部によって参照される情報を含む第2情報を前記下位メモリ素子から取り出して前記第2補助記憶素子に書込み、前記第2補助記憶素子に書き込まれる前記第2情報のうち、前記中央制御部によって参照される情報を含む前記第1情報は前記第1補助記憶素子に移し、前記中央制御部が取り出された前記第1情報または前記第2情報から情報を参照する段階と、
    (g)前記(e)または(f)段階において、前記第2補助記憶素子または前記下位メモリから新たに取り出された第1情報または第2情報に応じて、前記第1補助記憶素子または前記第2補助記憶素子に既存する第1情報または第2情報が書き換えられる時、
    前記書き換えられる第1情報を含む第2情報が第2補助記憶素子に格納されており、前記書き換えられる第1情報が前記第1補助記憶素子で更新されて、前記第2補助記憶素子に格納された前記第2情報に含まれた第1情報とは別の情報となった場合にのみ、第2補助記憶素子に格納された前記第2情報に含まれる第1情報を、前記書換えられる第1情報に更新する段階と
    を含むことを特徴とするキャッシュメモリの運用方法。
  2. 前記第1補助記憶素子及び第2補助記憶素子は、キャッシュであることを特徴とする請求項1に記載のキャッシュメモリの運用方法。
  3. 前記第2情報は、
    前記第1情報よりその大きさが2の倍数であるキャッシュブロックに該当する情報よりなることを特徴とする請求項1に記載のキャッシュメモリの運用方法。
  4. 前記下位メモリ素子は、
    磁気ディスク装置、テープ装置、メモリ装置及びキャッシュメモリ装置のグループから選ばれたいずれかの装置であることを特徴とする請求項1に記載のキャッシュメモリの運用方法。
  5. 前記第1補助記憶素子及び前記第2補助記憶素子は、
    前記第2補助記憶素子に存在するブロックの数が、前記第1補助記憶素子に存在するブロックの数と、前記第2補助記憶素子の連関度及び第1補助記憶素子の連関度の比が互いに乗算された結果値より小さく構成され、前記第2補助記憶素子の連関度が前記第1補助記憶素子の連関度以上となるよう構成することを特徴とする請求項1に記載のキャッシュメモリの運用方法。
JP2006281546A 1998-05-20 2006-10-16 キャッシュメモリの運用方法 Pending JP2007004835A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980018198A KR100272165B1 (ko) 1998-05-20 1998-05-20 캐쉬 메모리 시스템 및 그의 운영 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP14069799A Division JP3899376B2 (ja) 1998-05-20 1999-05-20 キャッシュメモリシステム及びその運用方法

Publications (1)

Publication Number Publication Date
JP2007004835A true JP2007004835A (ja) 2007-01-11

Family

ID=19537535

Family Applications (2)

Application Number Title Priority Date Filing Date
JP14069799A Expired - Fee Related JP3899376B2 (ja) 1998-05-20 1999-05-20 キャッシュメモリシステム及びその運用方法
JP2006281546A Pending JP2007004835A (ja) 1998-05-20 2006-10-16 キャッシュメモリの運用方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP14069799A Expired - Fee Related JP3899376B2 (ja) 1998-05-20 1999-05-20 キャッシュメモリシステム及びその運用方法

Country Status (3)

Country Link
US (1) US6549983B1 (ja)
JP (2) JP3899376B2 (ja)
KR (1) KR100272165B1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100486240B1 (ko) * 1998-09-21 2005-06-08 삼성전자주식회사 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법
KR100594687B1 (ko) * 1998-12-24 2006-10-04 엘지전자 주식회사 휴대용단말기에서 대량의 데이타 저장 방법
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
CN100557579C (zh) * 2002-11-12 2009-11-04 雷特泽遥距管理有限责任公司 具有ip能力分区的数据存储设备
US7649880B2 (en) * 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US7742473B2 (en) * 2002-11-12 2010-06-22 Mark Adams Accelerator module
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US7124271B2 (en) * 2003-10-14 2006-10-17 Intel Corporation Method and system for allocating register locations in a memory during compilation
US7702850B2 (en) * 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7743214B2 (en) 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) * 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7924881B2 (en) * 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US7814276B2 (en) * 2007-11-20 2010-10-12 Solid State System Co., Ltd. Data cache architecture and cache algorithm used therein
US8561043B2 (en) * 2008-03-28 2013-10-15 International Business Machines Corporation Data transfer optimized software cache for irregular memory references
US8527974B2 (en) * 2008-03-28 2013-09-03 International Business Machines Corporation Data transfer optimized software cache for regular memory references
US8561044B2 (en) * 2008-10-07 2013-10-15 International Business Machines Corporation Optimized code generation targeting a high locality software cache
US8250303B2 (en) * 2009-09-30 2012-08-21 International Business Machines Corporation Adaptive linesize in a cache
CN104809076B (zh) * 2014-01-23 2018-02-06 华为技术有限公司 Cache的管理方法及装置
US10942874B2 (en) * 2018-03-27 2021-03-09 Samsung Electronics Co., Ltd. Methods and systems that manage fetching of commands by a controller from queues of a host
CN109542909B (zh) * 2018-11-25 2023-04-14 北京博艺网讯科技有限公司 识别大数据存储系统中的关联性存储设备的方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US6202125B1 (en) * 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems

Also Published As

Publication number Publication date
KR19990085643A (ko) 1999-12-15
KR100272165B1 (ko) 2000-11-15
JP3899376B2 (ja) 2007-03-28
JP2000066952A (ja) 2000-03-03
US6549983B1 (en) 2003-04-15

Similar Documents

Publication Publication Date Title
JP2007004835A (ja) キャッシュメモリの運用方法
KR100514677B1 (ko) 컴퓨터 시스템 및 캐시 라인 대체 방법
EP1654660B1 (en) A method of data caching
US6766419B1 (en) Optimization of cache evictions through software hints
EP1149342B1 (en) Method and apparatus for managing temporal and non-temporal data in a single cache structure
US7921260B2 (en) Preferred write-mostly data cache replacement policies
US7844778B2 (en) Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US9317448B2 (en) Methods and apparatus related to data processors and caches incorporated in data processors
US9582282B2 (en) Prefetching using a prefetch lookup table identifying previously accessed cache lines
US7065613B1 (en) Method for reducing access to main memory using a stack cache
TWI382426B (zh) 預測快取記憶體之存取位置的方法及系統
US20030061450A1 (en) List based method and apparatus for selective and rapid cache flushes
JPH04324546A (ja) コンピュータ・システム
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US9552301B2 (en) Method and apparatus related to cache memory
US7237067B2 (en) Managing a multi-way associative cache
CN1429366A (zh) 控制包含直接映射高速缓冲存储器和完全联系缓冲器的高速缓冲存储器系统的方法
US7093075B2 (en) Location-based placement algorithms for set associative cache memory
CN109074313B (zh) 缓存和方法
US9996478B1 (en) No allocate cache policy
JP4009304B2 (ja) キャッシュメモリおよびキャッシュメモリ制御方法
JPH08255079A (ja) コンピュータ・プロセッサ用のレジスタ・キャッシュ
JP2004503010A (ja) キャッシュメモリを有するデータ処理装置およびこのような装置の使用方法
US20050108478A1 (en) Dynamic frequent instruction line cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071106