JP4468521B2 - データ処理システムに於けるメモリ制御 - Google Patents
データ処理システムに於けるメモリ制御 Download PDFInfo
- Publication number
- JP4468521B2 JP4468521B2 JP30733599A JP30733599A JP4468521B2 JP 4468521 B2 JP4468521 B2 JP 4468521B2 JP 30733599 A JP30733599 A JP 30733599A JP 30733599 A JP30733599 A JP 30733599A JP 4468521 B2 JP4468521 B2 JP 4468521B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- main memory
- data
- cache storage
- memory unit
- 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
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
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)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明はデータ処理システムに関する。更に詳細には、本発明はデータ処理システムに於けるメモリシステムの管理並びに制御に関する。
【0002】
【従来の技術】
データ処理システムは、処理能力に対して寄せられる増大する要求に合致するように可能な限り迅速に動作すべきである。この点に関して不断の進歩がなされており、より高速で動作し従って毎秒更に多くの命令を実行できる処理システムが作り出されている。プロセッサの速度が増すに従って、重要な事はデータ処理システムのその他のシステムも速度を上げて、システム全体性能を低下させる処理ボトルネックとならないようにすることである。その様なその他のシステムの一例はデータ処理システムに関連するメモリシステムである。
【0003】
高性能データ処理システムのメモリシステムは、階層レベル構造のデータ記憶装置、例えば内部オンチップキャッシュ、外部オフチップキャッシュ、ランダムアクセスメモリ及びハードドライブまたはフラッシュROMの様な不揮発メモリを含む。データ処理システムのメモリシステムの全体性能を向上させることの出来る技法は非常に有益である。
【0004】
【課題を解決するための手段】
本発明は1つの特徴としてデータ処理装置を提供し、これは:
(i)複数のキャッシュ格納ラインを有する1つのキャッシュメモリと;
(ii)前記キャッシュメモリ内にキャッシュされるべきデータワードを格納するように動作可能な、複数の主メモリユニットと;
(iii)キャッシュミスに続いて前記主メモリユニットの1つから1つまたは複数のデータワードが転送されるべき宛先であるビクティム(victim)キャッシュ格納ラインを選択するためのキャッシュビクティム選択回路とを含み;
(iv)前記キャッシュビクティム選択回路が、前記ビクティムキャッシュ格納ラインを選択する際に前記主メモリユニットの少なくとも1つの動作状態に応答することを含む。
【0005】
キャッシュメモリは典型的には、システムから要求される全てのデータを格納するのに十分な記憶容量を有する訳ではない。従ってキャッシュメモリは全データの部分集合を格納し、メモリアクセス要求がキャッシュの中に格納されていないデータの項目に行われた際にはそのデータ項目はキャッシュにフェッチされなければならない。キャッシュ内にデータの新たな項目用に余地を作るために、データの既存の項目がキャッシュから取り除かれなければならない。どのキャッシュ格納ライン(データ項目の集合)を置き換えるべきかの選択がキャッシュ・ビクティム選択回路で実行される。キャッシュメモリ内にキャッシュされるべきデータを保持している複数の主メモリユニットが存在する場合、異なる複数のビクティム選択がこの主メモリユニットの異なる1つに対してなされる複数のアクセスを要求する。この環境に於いて、キャッシュビクティム選択回路が少なくとも1つの主メモリユニットの動作状態に応答すべきであることが強く望まれる。キャッシュビクティム選択回路が少なくとも1つの主メモリユニットの動作状態に応答するように構成することにより、ビクティム選択が検出された動作状態に応じて調整され、従って最も少ない遅延を生じるキャッシュビクティムの選択を通してより高い性能を得ることが可能となる。
【0006】
本発明は特に、キャッシュメモリが書き戻しキャッシュメモリとして構成されている際に有用である。この様な実施例に於いてビクティムキャッシュラインからのデータワードは、それらが元に来た場所である主メモリに書き戻されねばならず、従ってその特定のキャッシュラインをビクティムキャッシュラインとして選択することに関連する遅延の程度を決定する際にその主メモリの動作状態が重要となる。
【0007】
主メモリユニットに関してセンスする高度に有用な動作パラメータの1つは、その主メモリユニットがそのキャッシュメモリと1つまたは複数のデータワードの交換で既にビジーであるか否かである。この主メモリユニットが既にビジーの場合、そのビジー状態の主メモリユニットへのアクセスを要求するビクティムキャッシュ格納ラインの選択から導かれる全ての要求にサービス出来るようになる前に、その現在動作が完了されなければならない。
【0008】
本発明の利点が特に明白であるのは、同時にアクセス要求を行う多数のメモリマスタが存在し、複数の主メモリユニットが独立して動作可能であり並行してデータワードをキャッシュメモリに転送できる場合である。この様な実施例に於いて、キャッシュメモリとデータ交換を実行するのに既にビジーでないキャッシュ格納ラインをキャッシュビクティムとして選択することが強く望ましい。キャッシュメモリとの並列データ交換能力はシステム性能の増加を生じ、従ってメモリアクセス作業量を主メモリユニットの間でさえも分割してこの並列能力を更に使用することが望ましい。
【0009】
好適な実施例に於いて、キャッシュビクティム選択回路が、キャッシュ格納ラインに関連する汚染フラグ(ラインが主メモリからキャッシュメモリへ転送されたために変更された1つまたは複数のデータワードを含むことを示すフラグ)に応答して、非汚染と印を付けられているキャッシュ格納ラインを好ましく選択することが望ましい。非汚染キャッシュ格納ラインは主メモリへの書き戻しを要求しないので、そのキャッシュ格納ラインを再充填するための遅延は削減できる。
【0010】
最新の高性能データ処理システムでは、各々が1つまたは複数のデータワードをキャッシュメモリと交換要求する1つ以上のデータワード要求ユニットを具備することが有益で効率的である。この方法でデータワード要求ユニットの間でメモリ構造を共有することにより、最大性能の要求と回路資源の最も効率的な使用との間の兼ね合いに対して都合の良い妥協を図ることが出来る。
【0011】
データワード要求ユニットの典型的な例は、中央処理装置及びビデオ表示駆動回路である。
【0012】
先に説明したような複数のデータワード要求ユニットを有するシステムに於いて、1つまたは複数のキャッシュ格納ラインをデータワード要求ユニットの1つで優先的に使用するようにロックすることが望ましい。この様にすることで、データワードの1つが別のデータワード要求ユニットの性能に対して過度に損失的な衝撃を与える可能性を減らすことが出来る。
【0013】
キャッシュメモリ資源の有効使用が計れる別の方法は、キャッシュビクティム選択回路がビクティムキャッシュ格納ラインを選択する際に、どのキャッシュ格納ラインが最近最も少なく使用されたかの指示に応答するように構成することである。
【0014】
特に有効であると認められている総合的な技法は、前記キャッシュビクティム選択回路が前記ビクティムキャッシュ格納ラインとして、N個のプロパティー、ここで1≦N≦6、のリストの中で最も高いプロパティーを有するキャッシュ格納ラインを選択し、N個のプロパティーの前記リストはリスト内でN個の最も高いプロパティーで形成されており:
(i)ロックされていなくて汚染されていない、最近最も使用されていないライン;
(ii)ロックされていなくて、汚染されておりビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン;
(iii)ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン;
(iv)ロックされており、汚染されていない最近最も使用されていないライン;
(v)ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン;
(vi)ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン。
【0015】
ある環境の下では部分ランダムキャッシュビクティム選択手法が開始点として好ましい場合も有り、この様な実施例に於いて前記キャッシュビクティム選択回路は前記ビクティムキャッシュ格納ラインとしてN個のプロパティー、ここで1≦N≦6、のリストの中で最も高いプロパティーを有するキャッシュ格納ラインを選択し、N個のプロパティーの前記リストはリスト内でN個の最も高いプロパティーで形成されており:
(i)ロックされて無く、汚染されていないキャッシュ格納ラインからランダムに選択される;
(ii)ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインからランダムに選択される;
(iii)ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される;
(iv)ロックされており、汚染されていないキャッシュ格納ラインからランダムに選択される;
(v)ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインからランダムに選択される;
(vi)ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される。
【0016】
別の環境下では部分ラウンドロビン(round robin)キャッシュビクティム選択手法が開始点として好ましい場合も有り、この様な実施例に於いて前記キャッシュビクティム選択回路は前記ビクティムキャッシュ格納ラインとしてN個のプロパティー、ここで1≦N≦6、のリストの中で最も高いプロパティーを有するキャッシュ格納ラインを選択し、N個のプロパティーの前記リストはリスト内でN個の最も高いプロパティーで形成されており:
(i)ロックされて無く、汚染されていないキャッシュ格納ラインから順番に選択される;
(ii)ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインから順番に選択される;
(iii)ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される;
(iv)ロックされており、汚染されていないキャッシュ格納ラインから順番に選択される;
(v)ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインから順番に選択される;
(vi)汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される。
【0017】
システムはいくつかのプロパティーのみで(例えばプロパティー(i)、(ii)と(iii)または(i)と(ii)に応答する)動作するように構成されており、整合するキャッシュ格納ラインが見つからない場合、システムの最小部分が適切なビクティムが利用可能となるまで待機状態に置かれる。
【0018】
複数の主メモリユニットがメモリ階層の中で同一レベルの主メモリユニットであるかも知れない。この様な状況に於いては、併発的にそして独立してアクセスされるダイナミックランダムアクセスメモリのバンクが本発明と共に使用するのに特に良く適合しており、また例えば低価格シングルチップ設計の様なその他の理由からも特に望ましい。
【0019】
本発明の別の特徴としてデータ処理方法が具備されており、これは:
(i)キャッシュメモリの複数のキャッシュ格納ラインの中にデータワードを格納し;
(ii)複数の主メモリユニットの中に前記キャッシュメモリ内にキャッシュされるべき前記データワードを格納し;そして
(iii)その中に1つまたは複数のデータワードを、キャッシュミスに続いて前記主メモリユニットの1つから転送されるべきビクティムキャッシュ格納ラインを選択する、以上のステップを含み、
(iv)前記ビクティムキャッシュ格納ラインを選択する際に、前記選択が少なくとも1つの前記主メモリユニットの動作状態に応答する。
【0020】
本発明の更に別の特徴としてデータ処理装置が具備されており、これは:
(i)複数のキャッシュ格納ラインを有する1つの書き戻しキャッシュメモリと;
(ii)前記キャッシュメモリの中にキャッシュされるべきデータワードを格納するように動作可能な少なくとも1つの主メモリユニット、該少なくとも1つの主メモリユニットから前記キャッシュ格納ラインに転送されたために変更された何らかのデータワードを含む場合に汚染されたことになるキャッシュ格納ラインと;そして
(iii)背景処理として汚染キャッシュ格納ラインから前記少なくとも1つの主メモリユニットへのデータワードの書き戻しのトリガを掛けるための背景動作制御回路で、前記背景処理を用いて書き戻されたキャッシュ格納ラインは非汚染状態となり、書き戻された前記データワードの格納を継続する、前記背景動作制御回路とを含む。
【0021】
書き戻しキャッシュは、キャッシュと主メモリとの間でのデータ転送回数を減らせるという特長を有する。更に詳細には、主メモリへのデータ転送はデータワードがキャッシュの中にロードされた時、またデータワードがキャッシュからフラッシュされた時にのみ生じる。データワードがキャッシュの中に格納されていた際に生じた変更は主メモリに送られず、データワードの最終状態が主メモリの中に書き込まれた際に、キャッシュデータが主メモリからフラッシュされるまで残される。キャッシュされたデータワードがキャッシュ内に格納されていた間に変更されなかった場合は、それらを主メモリに書き戻す必要はない。従って書き戻しを必要とするキャッシュデータワードと書き戻しを必要としないものとの間の差別を付けるために汚染フラグが用意されている。
【0022】
本発明は汚染キャッシュラインへのキャッシュ補充は非汚染キャッシュラインの補充より遅いことを認識しているので、汚染キャッシュラインに必要なキャッシュ補充の数を減らすことの出来る対策は有効である。本発明は更に、システムからの全てのデータ要求がキャッシュデータから一致する場合、主メモリとキャッシュメモリの帯域幅が完全に利用されていないか、または完全にアイドル状態にあることを認識している。本発明はこの使用されていない能力を利用して、背景処理としてキャッシュメモリ内の汚染キャッシュラインの数を減らしている。これは続いて前景処理操作中に実行されるべき汚染キャッシュデータの書き戻し回数を削減する。
【0023】
通常システムに於いて、汚染データはそれがキャッシュメモリからフラッシュ(すなわち除去)される際に主メモリに書き戻される。これと比較して本発明では汚染データは主メモリに書き戻されても未だキャッシュメモリ内に保持されるが、非汚染と印が付けられる。
【0024】
本発明は、独立にまた同時にデータワードをキャッシュメモリに転送するように動作可能な複数の主メモリを有するシステムで特に有用であるが、その様なシステムはしばしばキャッシュメモリと主メモリとの間の使用されていない帯域幅を有し、これは本発明の背景処理で利用できるからである。
【0025】
好適な実施例に於いて、背景処理はまたキャッシュデータワードが汚染されている場合にそれが書き戻されるべきか否かを判定する際に、それがどれだけ最近に使用されたかにも応答する。キャッシュデータワードが非常に頻繁に使用され、従って非常に頻繁に変更されそうな場合、それを背景処理の一部として書き戻しされるべきで無いことが有効であり、それは電力を不要に消費しまた、それほど頻繁には変更されず、従って1度書き戻されると非汚染状態に保持されるであろうキャッシュデータワードの書き戻しで、更に効果的に使用できるはずの主メモリシステムの予備帯域幅を使用してしまうからである。
【0026】
背景処理の更なる改善として、別のメモリアクセス要求サービスで既にビジーである主メモリユニットに対して書き戻しは試みられるべきではない。
【0027】
本発明は特に主メモリがフラッシュメモリのダイナミックランダムアクセスメモリの複数のバンクを含み、シングルチップ素子として製造されている実施例に適しているが、汎用DRAMまたはフラッシュメモリも使用可能である。
【0028】
本発明の更に別の特徴としてデータ処理方法が提供されており:
(i)データワードを書き戻しキャッシュメモリの複数のキャッシュ格納ライン内に格納し;
(ii)少なくとも1つの主メモリユニット内に前記キャッシュメモリ内にキャッシュされるべき前記データワードを格納し、キャッシュ格納ラインはそれが前記少なくとも1つの主メモリユニットから前記キャッシュ格納ラインに転送されてから後に変更されたデータワードを含む場合に汚染されているといい;
(iii)データワードを汚染キャッシュ格納ラインから前記少なくとも1つの主メモリユニットに背景処理として書き戻し、前記背景処理を用いて書き戻されたキャッシュ格納ラインは非汚染となり、書き戻された前記データワードの格納を継続する、以上のステップを含む。
【0029】
本発明の更に別の特徴としてデータ処理装置が提供されており:
(i)メモリ回路と;
(ii)前記メモリ回路に結合されたデータバスと;
(iii)前記データバスに結合され、メモリアクセス要求を前記メモリ回路に前記データバスを経由して送る複数のバスマスタ回路と;
(iv)バスマスタ優先度の階層に基づき、どのバスマスタが前記データバスの使用を獲得する優先度を許可されるかを、2つまたはそれ以上のバスマスタが暫定的に重複するメモリアクセス要求の発した際に制御するためのバス調停回路とを含むデータ処理装置に於いて、
(v)前記調停回路がバスマスタ間で前記データバスの使用を獲得するための優先度を再調停するために係属中のメモリアクセス要求の待ち時間の決定に応答して、第1係属メモリアクセス要求を有し、前記階層内で第2係属メモリアクセス要求を有する第2マスタ回路より低い位置にある第1バスマスタ回路が、前記第1メモリアクセス要求が前記第2メモリアクセス要求よりも低い待ち時間を有する場合に、前記第2バスマスタ回路に先行して前記データバスの使用を獲得するように応答する。
【0030】
異なるバスマスタ間のバス調停は通常、固定された優先度の階層に基づいて実施される。しかしながら、バス調停回路が異なるメモリアクセス要求の待ち時間の判定に応答し、その決定された待ち時間に依存して優先度の再調停を行える場合に、本発明はバス帯域幅を更に効率的に使用出来ることを認識している。
【0031】
特に好適実施例に於いて、第2メモリアクセス要求を第1メモリアクセス要求が実際にデータバスの使用を必要とする前の、その第1メモリアクセス要求の完全に待ち時間期間内に開始して完了することが可能である。
【0032】
本発明が効果的に使用される共通の状況は、メモリシステムが1つのキャッシュメモリと1つの主メモリとを含むものである。その様なシステムに於いて、高い優先度の第1メモリアクセス要求が結果としてキャッシュミスを起こし、一方低い優先度の第2メモリアクセス要求が結果としてキャッシュヒットを起こす場合、優先度の再調停を行って第2メモリアクセス要求がキャッシュメモリからサービスを受け、一方第1メモリアクセス要求は主メモリからデータフェッチを行いそしてキャッシュラインの再充填を行うように継続させるようにするのが好適である。
【0033】
類似の方法により、独立して併発的に動作できる複数の主メモリユニットを含むシステムに於いて、本発明は好適にビジーで無い主メモリユニットへの1つの要求を、そうでない場合はより高い優先度を持つビジーな主メモリユニットへの要求より先に移動させるように複数のメモリアクセス要求の間の再調停を行うように動作する。
【0034】
本発明は特に、主メモリが1つまたは複数のダイナミックランダムアクセスのバンクを含み、シングルチップとして提供されているシステムでの実施例で有用である。
【0035】
本発明の更に別の特徴として、データ処理方法が用意されており、これは:
(i)複数のバスマスタ回路からメモり回路にデータバスを経由してメモりアクセス要求を出し;
(ii)バスマスタ優先度の階層に基づき、2つ以上のバスマスタが過渡的に重複するメモリアクセス要求を出す際に、どのバスマスタが前記データバスの使用獲得の優先度を許可されるかを制御するステップを含み;
(iii)係属しているメモリアクセス要求の待ち時間に応答して、バスマスタ間で前記データバス使用獲得優先度が再調停されて、第1係属メモリアクセス要求と、第2係属メモリアクセス要求を有する第2バスマスタ回路よりも前記階層内でより低い位置とを有する第1バスマスタ回路が、前記第1メモリアクセス要求が前記第2メモリアクセス要求よりも低い待ち時間を有する場合、前記データバスの使用権を前記第2バスマスタ回路に先んじて獲得するようにしている。
【0036】
本発明の上記並びにその他の目的、特徴は添付図と共に読まれるべき、図示を目的とした実施例の以下の詳細な説明から明らかであろう。
【0037】
【発明の実施の形態】
図1はシングルチップデータ処理システム2を示し、これは中央処理装置4、ビデオ表示制御回路6およびキャッシュメモリ8を含む。キャッシュ制御装置10がキャッシュメモリ8の動作を制御するために具備されている。バス調停回路12は中央処理装置4とビデオ表示制御回路6のどちらがメモりアクセス要求(MAR)を行う際にデータバス14へのアクセスを獲得するかを制御する。
【0038】
4つのバンクのオンチップダイナミックランダムアクセスメモリ16,18,20および22がDRAM制御装置24と共に具備されている。
【0039】
動作に際して中央処理装置4またはビデオ表示制御回路6のどちらかがメモリアクセス要求をデータバス14上へ出す。このメモリアクセス要求は、メモリ階層内の第1レベルとしてキャッシュメモリ8へ通る。キャッシュヒットが生じると、要求されたデータがキャッシュメモリ8の中からアクセスされる。このメモリアクセス要求がキャッシュメモリ8内のデータに変更を加える場合、汚染ビット26が対応するキャッシュ格納ライン28に対してセットされる。キャッシュ制御装置10内で最少頻度使用(LRU)回路30が、キャッシュメモリ8内で各々のキャッシュ格納ライン28が最近如何にアクセスされたかを示すデータを格納する。部分的ランダムまたは部分的ラウンドロビン置き換え技法を実行する制御回路を代わりに用意出来ることは理解されよう。この様な部分的ランダムまたは部分的ラウンドロビン技法はメモリシステムの検出された状態に依存して、LRU置き換えに関する下記と類似の方法で修正される。
【0040】
メモリアクセス要求に応答してキャッシュミスが生じると、対象データワードはDRAMバンク16,18,20,22のそれぞれの1つからフェッチされてキャッシュ格納ライン28の1つの中に書き込まれなければならない。その中にこのフェッチされたデータが書き込まれるビクティムキャッシュ格納ラインとしてどのキャッシュ格納ライン28が選択されるかは、キャッシュ制御装置10内のビクティム選択回路32で制御される。このビクティムキャッシュラインが汚染されている場合、フェッチデータワードがキャッシュ格納ライン28の中に書き込まれる前に、DRAMバンク16,18,20,22の1つへ書き戻すように要求する。従ってビクティム選択回路32は汚染ビクティムよりも非汚染ビクティムを選択しようとする。キャッシュメモリ8にはまたロック領域が具備されていて、これはメモリアクセス要求ユニットの特定の1つ、例えば中央処理装置4およびビデオ表示制御回路6に専用である。一例として中央処理装置4で要求される高速割り込みコードはキャッシュメモリ8の領域内にロックされていて、要求された際に迅速なアクセスが行えるように保証している。ビクティム選択回路32は非ロック領域をロック領域に先んじて選択する。
【0041】
DRAM制御装置24はデータをキャッシュメモリ8とDRAMバンク16,18,20,22との間を通すように動作する。DRAM制御装置24はそれぞれのDRAMバンク16,18,20,22とキャッシュメモリ8との間の独立で併発的データ転送が実現できるように構成されている。どのDRAMバンク16,18,20,22が現在ビジー状態であるかを示す信号がDRAM制御装置24からキャッシュ制御装置10へ送られ、ここでビクティム選択回路32によって使用される。ビクティム選択回路32はビクティムキャッシュ格納ライン28を選択し、これはビジーなDRAMバンク16,18,20,22へ書き戻しが必要なものに応答して、非ビジーDRAMバンク16,18,20,22への書き戻しを要求する。
【0042】
全体動作としてビクティム選択回路32はそのビクティムキャッシュ格納ラインを、N個のプロパティー、ここで1≦N≦6、のリストの中で最も高いプロパティーを有するものとなるように選択し、N個のプロパティーの前記リストはリスト内でN個の最も高いプロパティーで形成されており:
(i)ロックされていなくて汚染されていない、最近最も使用されていないライン;
(ii)ロックされていなくて、汚染されておりビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン;
(iii)ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン;
(iv)ロックされており、汚染されていない最近最も使用されていないライン;
(v)ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン;
(vi)ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン。
【0043】
部分ランダム置き換え技法に於いて、ビクティム選択回路32はそのビクティムキャッシュ格納ラインとしてそれがN個のプロパティー、ここで1≦N≦6、のリストの中で最も高いプロパティーを有する様に選択し、N個のプロパティーの前記リストはリスト内でN個の最も高いプロパティーで形成されており:
(i)ロックされて無く、汚染されていないキャッシュ格納ラインからランダムに選択される;
(ii)ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインからランダムに選択される;
(iii)ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される;
(iv)ロックされており、汚染されていないキャッシュ格納ラインからランダムに選択される;
(v)ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインからランダムに選択される;
(vi)ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される。
【0044】
部分的ラウンドロビン置き換え技法に於いて、ビクティム選択回路32はそのビクティムキャッシュ格納ラインをそれがN個のプロパティー、ここで1≦N≦6、のリストの中で最も高いプロパティーを有する様に選択し、N個のプロパティーの前記リストはリスト内でN個の最も高いプロパティーで形成されており:
(i)ロックされて無く、汚染されていないキャッシュ格納ラインから順番に選択される;
(ii)ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインから順番に選択される;
(iii)ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される;
(iv)ロックされており、汚染されていないキャッシュ格納ラインから順番に選択される;
(v)ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインから順番に選択される;
(vi)汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される。
【0045】
システムがこれらのリストからいくつかのプロパティーのみしか使用しない場合もあるであろう、何故ならばより低いプロパティーが非常に不利であって、より好ましいプロパティーと一致するキャッシュビクティムが利用できるまでシステムの少なくとも一部が待機状態に入った方が良い場合である(例えば、キャッシュビクティム選択がロックされたキャッシュ格納ラインを尊重する場合、プロパティー(i),(ii)および(iii)は使用されるが、プロパティー(iv),(v)および(vi)は使用されない)。
【0046】
ビクティム選択回路32のこの動作はまた図2に図示されている。キャッシュミスが発生すると、図2に図示されている処理が開始し第1ステップ34はロックされていないキャッシュ格納ラインが存在するかを判定する。ロックされていないキャッシュ格納ラインが存在する場合、処理はステップ36へ進む。ロックされていないキャッシュ格納ラインが存在しない場合、処理はステップ38へ進む。
【0047】
ステップ36に於いて、そのロックされていない格納ラインの中に非汚染キャッシュ格納ラインが存在するか否かの検査が行われる。非汚染でロックされていない格納ラインが存在する場合、これらの中で最近最も使用されていないものがビクティムとしてステップ40で選択される。ロックされていない格納ラインの中に非汚染キャッシュ格納ラインが存在しない場合、ステップ42はビジーでないDRAMバンクに書き戻しが要求される、ロックされていない汚染キャッシュ格納ラインが存在するかの判定を行う。その様なロックされていなくて汚染されているビジーでないキャッシュ格納ラインが存在すると、これらの中で最近最も使用されていないものがステップ44で選択される。ロックされていなくて汚染されているビジーでないキャッシュ格納ラインが存在しない場合、ステップ46はロックされていなくて汚染されているビジーなキャッシュ格納ラインをビクティムキャッシュ格納ラインとして使用するように選択する。
【0048】
ステップ34でロックされていないキャッシュ格納ラインが存在しないと判明すると、処理はステップ38へ進み、ここでロックされているキャッシュ格納ラインで汚染されていないものが存在するかの検査が行われる。ロックされていて汚染されていないキャッシュ格納ラインが存在する場合、これらの中の最近最も使用されていないものがビクティムキャッシュ格納ラインとしてステップ48で選択される。ロックされていて非汚染ロックキャッシュ格納ラインが存在しないとステップ38で検出された場合、ステップ50が使用されてロックされていて、汚染されておりビジーでないキャッシュ格納ラインが存在するかの判定が行われる。その様なロックされていて、汚染されておりビジーでないキャッシュ格納ラインが存在する場合、それらの中で最近最も使用されていないものがステップ52で、ビクティムキャッシュ格納ラインとして選択される。ロックされていて、汚染されておりビジーでないキャッシュ格納ラインが存在しない場合、ステップ54は最近最も使用されていない、ロックされていて、汚染されていてビジーなキャッシュ格納ラインをビクティムキャッシュ格納ラインとして選択する。この技法に基づいてビクティム選択回路32で行われる選択の優先順位は、図2のステップ40,44,46,48,52および54の右上隅に中抜き番号で図示されている。
【0049】
図1に戻ると、DRAM制御装置24はまた背景動作制御回路56を含む。この背景動作制御回路56は背景処理を連続的に実行し、これはある条件に合致したDRAMバンク16,18,20,22にキャッシュメモリ8内から汚染キャッシュ格納ラインを書き戻すように試みる。背景動作制御回路56で実行される背景処理は、キャッシュ制御装置10内の最少頻度使用回路30から供給されるキャッシュライン28の最近最も使用されていない状態(またはその他のメモリシステム状態情報)、また同様にその対象としているキャッシュラインに関連するDRAMバンク16,18,20,22のビジー状態とに応答する。
【0050】
図3は背景動作制御回路56で連続的に動作される処理を図示する。ステップ58,60および62は効果的にループを形成し、ここでキャッシュラインチェックはキャッシュメモリ8内の各々のキャッシュラインに対して繰り返し実行される。各々のキャッシュラインに対して順番にチェックが実施され、ステップ66でそれが汚染されているか、ステップ68でその最少頻度使用値がある閾値未満であるか(それがアクセスされる頻度が或る閾値より少ないことを示す)、そしてステップ70でその非ビジー状態がチェックされる。ステップ66,68および70での各々の判定結果がYESの場合ステップ72はそのキャッシュラインを非ビジーDRAMバンク16,18,20,22に書き戻し、そのキャッシュラインに対する汚染ビット26を汚染から非汚染に変更し、そのデータはキャッシュライン28に残すように働く。ステップ66,68および70のいずれかがNoに戻ると、これは検査されているキャッシュラインが背景処理の一部として書き戻されるのに適していないことを示し、従ってステップ72はバイパスされて次のキャッシュラインが順に検査される。
【0051】
図3に関連して記述された技法は、各々のキャッシュラインを順番に検査して、それが背景書き戻し動作の基準に合致するか否かのチェックを行う。これに代わる実施例として各々のキャッシュラインに関連して、そのキャッシュラインが基準に合致するか否かを連続的に監視する回路を具備することも可能である。基準に合致するキャッシュラインが同定されると、書き戻し動作が開始される。これらの監視回路は並列に動作するので、2つまたはそれ以上のキャッシュラインが同時に基準に合致するような状況を処理するための調停回路が必要であろう。
【0052】
図1に戻るとこれはバス調停回路12を示し、これは中央処理装置4およびビデオ表示制御回路6のメモリアクセス要求に対して、これが過渡的に重複した場合、そのどちらか1つにデータバス14の使用を与えるかを判定するように動作する。一般的にバス調停回路12で使用される制御の第1レベルは、予め定められた優先度の階層を適用し、ここではビデオ表示制御回路6が中央処理装置4よりも高い優先度を有し、従ってそのメモリアクセス要求は中央処理装置4に対するよりも優先してサービスされる。バス調停回路12はまたキャッシュ制御装置10及びDRAM制御装置24にも結合されている。これらのリンクはバス調停回路12に対して、サービスされた個別のメモリアクセス要求の結果がキャッシュミスであったか、また更にそのキャッシュミスの結果、ビジー状態のDRAMバンク16,18,20,22へのメモリアクセス要求となったかを示す信号を送ることを可能としている。バス調停回路はこの追加情報を利用してメモリアクセス要求間の優先度の通常階層を再調停する。
【0053】
図4はバス調停回路12で実施されるバス再調停処理を図示する。処理は少なくとも1つのメモリアクセスMARが受信された時に開始される。ステップ74で複数のMARがそのサイクルで受信されたか否かを判定するチェックが行われる。唯ひとつのMARのみが受信された場合、これは図示されるようにステップ76および78で開始されて完了する。
【0054】
複数のMARが受信された場合、ステップ80はより高い優先度のMARを第1メモリアクセス要求MAR1として開始し、より低い優先度のMARを第2メモリアクセス要求MAR2として保持する。
【0055】
ステップ82に於いて、第1メモリアクセス要求MAR1が結果としてキャッシュミスとなったか否かの検査をキャッシュ制御装置10で提供された情報を用いて行う。キャッシュミスが発生しなかった場合、第1メモリアクセス要求MAR1はステップ84で完了し、第2メモリアクセス要求MAR2がステップ86および88で開始されて完了する。
【0056】
第1メモリアクセス要求MAR1の結果キャッシュミスとなった場合、ステップ90で第2メモリアクセス要求がキャッシュデータに対するものか否かが判定される。第2メモリアクセス要求MAR2がキャッシュデータに対するものでない場合(すなわち、それ自身で結果としてキャッシュミスとなる)、処理は上記の様にステップ84,86および88を経由して進む。しかしながら、第2メモリアクセス要求MAR2がキャッシュされている場合、バス調停回路12はステップ92で第1メモリアクセス要求MAR1と第2メモリアクセス要求MAR2との間で再調停を行うように動作する。この再調停は第2メモリアクセス要求MAR2動作を開始する一方で第1メモリアクセス要求MAR1動作をそのキャッシュラインの充填動作を実行させるままに残すが、これはシステム設計がバス調停器で行った待ち時間判定の結果、第1メモリアクセス要求MAR1がキャッシュミスして、そのキャッシュミスからのデータがデータバス14に、キャッシュされているデータへの第2メモリアクセス要求が終了するまで戻らないことが保証されていると認められるからである。従って、ステップ94は第2メモリアクセス要求MAR2を、第1メモリアクセス要求MAR1が完了するステップ96の前に完了する。
【0057】
図4に図示された例に於いて、バス調停回路12での待ち時間の判定はキャッシュミスが生じたか否かの判定を介して行われる。バス調停回路12はまた、メモリアクセス要求がビジー状態のDRAMバンク16,18,20,22に対するものであるか否かにも応答し、従って特に高い待ち時間を有しデータバス14を更に良く使用するための再調停の機会を可能とするようにも出来る。更にこの一般原理に基づいたバスマスタ再調停用の待ち時間判定および制御技法も可能である。
【0058】
本発明の上記の実施例はシングルチップ素子に関して説明してきたが、この中でDRAMバンク16,18,20,22、キャッシュメモリ8、キャッシュ制御装置10並びにその他の全ての回路が単一の集積回路として具備されている。上記の技術はまた“仮想チャンネルメモリ”として知られているものにも効果的に適用出来る。仮想チャンネルメモリはオンチップバッファ/キャッシュと共に複数のDRAMバンクを有する集積回路の形式で用意される。その様な仮想チャンネルメモリチップを使用する回路は、メモリ制御装置を含みこれは何が仮想チャンネルメモリのオンチップバッファ/キャッシュの中に格納されているかを追尾する。図1に関連して、キャッシュメモリ8並びにDRAMバンク16,18,20,22はその他の構成要素が全て別々のチップ上に用意されている、仮想チャンネルメモリチップ上に具備されていると考えられる。上記の技術はその様な仮想チャンネルメモリシステムを最も効率的に使用するのに特に有効である。
【0059】
本発明の図示を目的とした実施例を添付図を参照して此処に詳細に説明してきたが、本発明はこれらの詳細な実施例に限定されるものではなく、種々の変化並びに修正を添付の特許請求項に定められた本発明の範囲および精神から逸脱することなく、当業者が行えることは理解されよう。
【図面の簡単な説明】
【図1】図1はデータ処理システムを図示する。
【図2】図2はキャッシュ制御装置内のビクティム選択回路の動作を図示する。
【図3】図3は汚染キャッシュライン書き戻し用背景処理機能の動作を図示する。
【図4】図4はバス調停器内のバス再調停動作を図示する。
【符号の説明】
2 データ処理システム
4 中央処理装置
6 ビデオ表示制御回路
8 キャッシュメモリ
10 キャッシュ制御装置
12 バス調停回路
14 データバス
16,18,20,22 DRAMバンク
24 DRAM制御装置
26 汚染ビット
28 キャッシュ格納ライン
30 最少頻度使用(LRU)回路
32 ビクティム選択回路
56 背景動作制御回路
Claims (10)
- データ処理装置であって:
複数のキャッシュ格納ラインを有する1つの書き戻しキャッシュメモリと;
前記キャッシュメモリの中にキャッシュされるべきデータワードを格納するように動作可能な主メモリユニットと;
キャッシュ格納ラインであって、前記少なくとも1つの主メモリユニットから該キャッシュ格納ラインに転送された後で変更された何らかのデータワードを前記キャッシュ格納ラインが含む場合、汚染されたことになる前記キャッシュ格納ラインと;
背景処理として汚染キャッシュ格納ラインから前記少なくとも1つの主メモリユニットへのデータワードの書き戻しのトリガを掛けるための背景動作制御回路であって、前記背景処理を用いて書き戻されたキャッシュ格納ラインは非汚染状態となり、書き戻された前記データワードの格納を継続する、前記背景動作制御回路とを含み、
前記主メモリユニットは、それが1つまたは複数のデータワードを前記キャッシュメモリと交換している時にビジーであり、前記背景動作制御回路がビジー状態の主メモリユニットへの書き戻し動作のトリガを掛けないように動作する、前記データ処理装置。 - 請求項1記載のデータ処理装置において、前記少なくとも1つの主メモリユニットが複数の主メモリユニットを含む、前記データ処理装置。
- 請求項2記載のデータ処理装置において、前記少なくとも1つの主メモリユニットがデータワードを前記キャッシュメモリに独立的にかつ併発的に転送するように動作可能な、前記データ処理装置。
- 請求項1記載のデータ処理装置において、前記背景動作制御回路が、前記汚染キャッシュ格納ラインが前記少なくとも1つの主メモリユニットに書き戻されるべきか否かを判定する際に、汚染キャッシュラインからのデータワードが最近どれだけ使用されたかに応答し、閾値レベルよりも頻繁に使用されている汚染キャッシュ格納ラインを前記少なくとも1つの主メモリユニットへ書き戻さないようにする、前記データ処理装置。
- 請求項1記載のデータ処理装置において、前記少なくとも1つの主メモリユニットがダイナミック随意アクセスメモリのバンクである、前記データ処理装置。
- 請求項1記載のデータ処理装置において、前記少なくとも1つの主メモリユニットが前記キャッシュメモリと共に1つの集積回路上に具備されている、前記データ処理装置。
- 請求項6記載のデータ処理装置であって、1つまたは複数のデータワードを前記キャッシュメモリと交換するように要求する少なくとも1つのデータワード要求ユニットを含み、前記少なくとも1つのデータワード要求ユニットもまた前記集積回路上に具備されている、前記データ処理装置。
- 請求項7記載のデータ処理装置において、前記少なくとも1つのデータワード要求ユニットが中央処理装置を含む、前記データ処理装置。
- 請求項7記載のデータ処理装置において、前記少なくとも1つのデータワード要求ユニットがビデオ表示制御回路を含む、前記データ処理装置。
- データ処理方法であって:
データワードを書き戻しキャッシュメモリの複数のキャッシュ格納ライン内に格納し;
少なくとも1つの主メモリユニット内に、前記キャッシュメモリ内にキャッシュされるべき前記データワードを格納し;
キャッシュ格納ラインが前記少なくとも1つの主メモリユニットから前記キャッシュ格納ラインに転送された後で変更されたデータワードを含む場合に前記キャッシュ格納ラインは汚染されているとし;
データワードを汚染キャッシュ格納ラインから前記少なくとも1つの主メモリユニットに背景処理として書き戻し、前記背景処理を用いて書き戻されたキャッシュ格納ラインは非汚染となり、書き戻された前記データワードの格納を継続する諸ステップを含み、
前記主メモリユニットは、それが1つまたは複数のデータワードを前記キャッシュメモリと交換している時ビジーであり、前記背景処理のための背景動作制御回路がビジー状態の主メモリユニットへの書き戻し動作のトリガを掛けないように動作する、前記データ処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9901140A GB2345987B (en) | 1999-01-19 | 1999-01-19 | Memory control within data processing systems |
GB9901140.5 | 1999-01-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009272138A Division JP4712110B2 (ja) | 1999-01-19 | 2009-11-30 | データ処理システムに於けるメモリ制御 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000207283A JP2000207283A (ja) | 2000-07-28 |
JP4468521B2 true JP4468521B2 (ja) | 2010-05-26 |
Family
ID=10846128
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30733599A Expired - Fee Related JP4468521B2 (ja) | 1999-01-19 | 1999-10-28 | データ処理システムに於けるメモリ制御 |
JP2009272138A Expired - Lifetime JP4712110B2 (ja) | 1999-01-19 | 2009-11-30 | データ処理システムに於けるメモリ制御 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009272138A Expired - Lifetime JP4712110B2 (ja) | 1999-01-19 | 2009-11-30 | データ処理システムに於けるメモリ制御 |
Country Status (3)
Country | Link |
---|---|
US (3) | US6490655B1 (ja) |
JP (2) | JP4468521B2 (ja) |
GB (2) | GB2385174B (ja) |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US6282617B1 (en) * | 1999-10-01 | 2001-08-28 | Sun Microsystems, Inc. | Multiple variable cache replacement policy |
US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
US8620286B2 (en) | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
US8611873B2 (en) | 2004-05-12 | 2013-12-17 | Synchronoss Technologies, Inc. | Advanced contact identification system |
JP2004503010A (ja) * | 2000-06-30 | 2004-01-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | キャッシュメモリを有するデータ処理装置およびこのような装置の使用方法 |
US7895334B1 (en) | 2000-07-19 | 2011-02-22 | Fusionone, Inc. | Remote access communication architecture apparatus and method |
US8073954B1 (en) | 2000-07-19 | 2011-12-06 | Synchronoss Technologies, Inc. | Method and apparatus for a secure remote access system |
US7818435B1 (en) | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
US8615566B1 (en) | 2001-03-23 | 2013-12-24 | Synchronoss Technologies, Inc. | Apparatus and method for operational support of remote network systems |
DE10116863A1 (de) * | 2001-04-04 | 2002-10-17 | Infineon Technologies Ag | Schnittstelle |
US7310706B1 (en) * | 2001-06-01 | 2007-12-18 | Mips Technologies, Inc. | Random cache line refill |
US8261022B2 (en) * | 2001-10-09 | 2012-09-04 | Agere Systems Inc. | Method and apparatus for adaptive cache frame locking and unlocking |
US7487212B2 (en) * | 2001-12-14 | 2009-02-03 | Mirapoint Software, Inc. | Fast path message transfer agent |
US7389387B2 (en) * | 2001-12-31 | 2008-06-17 | Intel Corporation | Distributed memory module cache writeback |
US7027064B2 (en) * | 2002-02-28 | 2006-04-11 | Sun Microsystems, Inc. | Active block write-back from SRAM cache to DRAM |
US6812929B2 (en) * | 2002-03-11 | 2004-11-02 | Sun Microsystems, Inc. | System and method for prefetching data from a frame buffer |
US7447701B2 (en) | 2002-07-11 | 2008-11-04 | Oracle International Corporation | Automatic configuration of attribute sets |
US7428592B2 (en) | 2002-07-11 | 2008-09-23 | Oracle International Corporation | Securely persisting network resource identifiers |
US7467142B2 (en) * | 2002-07-11 | 2008-12-16 | Oracle International Corporation | Rule based data management |
US7478407B2 (en) | 2002-07-11 | 2009-01-13 | Oracle International Corporation | Supporting multiple application program interfaces |
US7512585B2 (en) * | 2002-07-11 | 2009-03-31 | Oracle International Corporation | Support for multiple mechanisms for accessing data stores |
US7206851B2 (en) | 2002-07-11 | 2007-04-17 | Oracle International Corporation | Identifying dynamic groups |
US7428523B2 (en) * | 2002-07-11 | 2008-09-23 | Oracle International Corporation | Portal bridge |
US8375113B2 (en) | 2002-07-11 | 2013-02-12 | Oracle International Corporation | Employing wrapper profiles |
US7114037B2 (en) * | 2002-07-11 | 2006-09-26 | Oracle International Corporation | Employing local data stores to maintain data during workflows |
WO2004059491A1 (en) * | 2002-12-30 | 2004-07-15 | Intel Corporation | Cache victim sector tag buffer |
US7290093B2 (en) * | 2003-01-07 | 2007-10-30 | Intel Corporation | Cache memory to support a processor's power mode of operation |
US7254681B2 (en) * | 2003-02-13 | 2007-08-07 | Intel Corporation | Cache victim sector tag buffer |
US7203798B2 (en) | 2003-03-20 | 2007-04-10 | Matsushita Electric Industrial Co., Ltd. | Data memory cache unit and data memory cache system |
JP4241175B2 (ja) | 2003-05-09 | 2009-03-18 | 株式会社日立製作所 | 半導体装置 |
US8645471B2 (en) | 2003-07-21 | 2014-02-04 | Synchronoss Technologies, Inc. | Device message management system |
US7340447B2 (en) * | 2003-10-09 | 2008-03-04 | Oracle International Corporation | Partitioning data access requests |
US7904487B2 (en) | 2003-10-09 | 2011-03-08 | Oracle International Corporation | Translating data access requests |
US7882132B2 (en) | 2003-10-09 | 2011-02-01 | Oracle International Corporation | Support for RDBMS in LDAP system |
US7634509B2 (en) * | 2003-11-07 | 2009-12-15 | Fusionone, Inc. | Personal information space management system and method |
US7917706B1 (en) * | 2003-12-15 | 2011-03-29 | Altera Corporation | SDRAM controller |
US9542076B1 (en) | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
US20080082421A1 (en) * | 2004-05-12 | 2008-04-03 | Richard Onyon | Monetization of an advanced contact identification system |
JP2006119796A (ja) * | 2004-10-20 | 2006-05-11 | Matsushita Electric Ind Co Ltd | キャッシュメモリシステムおよび動画処理装置 |
US7966439B1 (en) * | 2004-11-24 | 2011-06-21 | Nvidia Corporation | Apparatus, system, and method for a fast data return memory controller |
US7263566B2 (en) | 2004-12-30 | 2007-08-28 | Qualcomm Incorporated | Method and apparatus of reducing transfer latency in an SOC interconnect |
JP2006190402A (ja) * | 2005-01-07 | 2006-07-20 | Renesas Technology Corp | 半導体装置 |
WO2006125112A2 (en) * | 2005-05-19 | 2006-11-23 | Fusionone, Inc. | Remote cell phone auto destruct |
US20070002607A1 (en) * | 2005-06-29 | 2007-01-04 | Khellah Muhammad M | Memory circuit |
CN100407171C (zh) * | 2005-09-13 | 2008-07-30 | 威盛电子股份有限公司 | 设置高速缓存线填充总线存取优先级的微处理器和方法 |
US7437510B2 (en) * | 2005-09-30 | 2008-10-14 | Intel Corporation | Instruction-assisted cache management for efficient use of cache and memory |
GB2445713B (en) * | 2005-12-22 | 2010-11-10 | Advanced Risc Mach Ltd | Interconnect |
US7747662B2 (en) * | 2005-12-30 | 2010-06-29 | Netapp, Inc. | Service aware network caching |
GB0603552D0 (en) | 2006-02-22 | 2006-04-05 | Advanced Risc Mach Ltd | Cache management within a data processing apparatus |
US7653846B2 (en) * | 2006-12-28 | 2010-01-26 | Intel Corporation | Memory cell bit valve loss detection and restoration |
BRPI0807406A2 (pt) * | 2007-01-26 | 2014-05-27 | Fusionone Inc | Sistema e método para recuperação de conteúdo para uso em dispositivo móvel. |
US8195886B2 (en) * | 2007-03-16 | 2012-06-05 | Arm Limited | Data processing apparatus and method for implementing a replacement scheme for entries of a storage unit |
US20090109996A1 (en) * | 2007-10-29 | 2009-04-30 | Hoover Russell D | Network on Chip |
US20090125706A1 (en) * | 2007-11-08 | 2009-05-14 | Hoover Russell D | Software Pipelining on a Network on Chip |
US20090125703A1 (en) * | 2007-11-09 | 2009-05-14 | Mejdrich Eric O | Context Switching on a Network On Chip |
US8261025B2 (en) | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US8145844B2 (en) * | 2007-12-13 | 2012-03-27 | Arm Limited | Memory controller with write data cache and read data cache |
US8181111B1 (en) | 2007-12-31 | 2012-05-15 | Synchronoss Technologies, Inc. | System and method for providing social context to digital activity |
JP2009205335A (ja) * | 2008-02-27 | 2009-09-10 | Hitachi Ltd | 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法 |
US20090260013A1 (en) * | 2008-04-14 | 2009-10-15 | International Business Machines Corporation | Computer Processors With Plural, Pipelined Hardware Threads Of Execution |
US8001331B2 (en) * | 2008-04-17 | 2011-08-16 | Arm Limited | Efficiency of cache memory operations |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
US20090282419A1 (en) * | 2008-05-09 | 2009-11-12 | International Business Machines Corporation | Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip |
US8438578B2 (en) | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
US8327072B2 (en) | 2008-07-23 | 2012-12-04 | International Business Machines Corporation | Victim cache replacement |
US8347037B2 (en) | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8209489B2 (en) | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8131931B1 (en) * | 2008-10-22 | 2012-03-06 | Nvidia Corporation | Configurable cache occupancy policy |
US8868838B1 (en) | 2008-11-21 | 2014-10-21 | Nvidia Corporation | Multi-class data cache policies |
US8499124B2 (en) | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8117397B2 (en) | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8225045B2 (en) | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8489819B2 (en) | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
KR101056560B1 (ko) * | 2009-02-11 | 2011-08-11 | (주)인디링스 | 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치 |
US8949540B2 (en) | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8285939B2 (en) | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8327073B2 (en) | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8312220B2 (en) | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US8347036B2 (en) | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8140767B2 (en) * | 2009-06-04 | 2012-03-20 | International Business Machines Corporation | Cache management through delayed writeback |
KR101574207B1 (ko) * | 2009-10-16 | 2015-12-14 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 저장 방법 |
US8255006B1 (en) | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
US9189403B2 (en) | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
US8943428B2 (en) | 2010-11-01 | 2015-01-27 | Synchronoss Technologies, Inc. | System for and method of field mapping |
US8543766B2 (en) * | 2011-06-10 | 2013-09-24 | Freescale Semiconductor, Inc. | Writing data to system memory in a data processing system in which cache line states are tracked |
US20130091331A1 (en) * | 2011-10-11 | 2013-04-11 | Iulian Moraru | Methods, apparatus, and articles of manufacture to manage memory |
US9063864B2 (en) * | 2012-07-16 | 2015-06-23 | Hewlett-Packard Development Company, L.P. | Storing data in presistent hybrid memory |
US9442849B2 (en) * | 2012-12-29 | 2016-09-13 | Intel Corporation | Apparatus and method for reduced core entry into a power state having a powered down core cache |
CN103268290B (zh) * | 2013-01-04 | 2016-02-17 | 深圳爱淘城网络科技股份有限公司 | 基于优先级锁定的闪存存储方法 |
US9135179B2 (en) | 2013-05-01 | 2015-09-15 | Qualcomm, Incorporated | System and method of arbitrating cache requests |
US9218292B2 (en) | 2013-06-18 | 2015-12-22 | International Business Machines Corporation | Least-recently-used (LRU) to first-dirty-member distance-maintaining cache cleaning scheduler |
US9767041B2 (en) * | 2015-05-26 | 2017-09-19 | Intel Corporation | Managing sectored cache |
KR102373544B1 (ko) | 2015-11-06 | 2022-03-11 | 삼성전자주식회사 | 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법 |
US11042299B2 (en) * | 2016-06-27 | 2021-06-22 | Quantum Corporation | Removable media based object store |
US10394719B2 (en) * | 2017-01-25 | 2019-08-27 | Samsung Electronics Co., Ltd. | Refresh aware replacement policy for volatile memory cache |
KR20200127793A (ko) * | 2019-05-03 | 2020-11-11 | 에스케이하이닉스 주식회사 | 메모리 장치의 캐시 시스템 및 캐시 시스템의 데이터 캐싱 방법 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1541240A (fr) * | 1966-11-10 | Ibm | Accès à chevauchement et à intercalation pour mémoires à plusieurs vitesses | |
US4257095A (en) * | 1978-06-30 | 1981-03-17 | Intel Corporation | System bus arbitration, circuitry and methodology |
US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
EP0179936B1 (de) * | 1984-10-31 | 1990-01-03 | Ibm Deutschland Gmbh | Verfahren und Einrichtung zur Steuerung einer Sammelleitung |
JPS6484361A (en) * | 1987-07-30 | 1989-03-29 | Araianto Computer Syst Corp | Parallel processing computer with alterable preference of memory access |
EP0310446A3 (en) * | 1987-10-02 | 1990-08-16 | COMPUTER CONSOLES INCORPORATED (a Delaware corporation) | Cache memory management method |
US5222223A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
JPH02245858A (ja) * | 1989-03-20 | 1990-10-01 | Fujitsu Ltd | データ転送制御装置 |
US5155824A (en) * | 1989-05-15 | 1992-10-13 | Motorola, Inc. | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address |
EP0398523A3 (en) | 1989-05-19 | 1991-08-21 | Hitachi, Ltd. | A device for data i/o and execution support in digital processors |
JPH0362141A (ja) * | 1989-07-31 | 1991-03-18 | Nippon Telegr & Teleph Corp <Ntt> | メモリ制御方式 |
US5345577A (en) * | 1989-10-13 | 1994-09-06 | Chips & Technologies, Inc. | Dram refresh controller with improved bus arbitration scheme |
KR940002905B1 (en) * | 1989-12-15 | 1994-04-07 | Ibm | Apparatus for conditioning priority arbitration in buffered direct memory addressing |
DE69127936T2 (de) * | 1990-06-29 | 1998-05-07 | Digital Equipment Corp | Busprotokoll für Prozessor mit write-back cache |
JPH0471048A (ja) * | 1990-07-12 | 1992-03-05 | Oki Electric Ind Co Ltd | コンピュータシステム |
JPH05189311A (ja) * | 1992-01-09 | 1993-07-30 | Mitsubishi Electric Corp | キャッシュメモリ・システム |
JPH06139206A (ja) * | 1992-10-26 | 1994-05-20 | Nippon Telegr & Teleph Corp <Ntt> | マルチプロセッサシステムにおける排他制御方式 |
US5463739A (en) * | 1992-12-22 | 1995-10-31 | International Business Machines Corporation | Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold |
US5636355A (en) * | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
GB2284911A (en) * | 1993-12-16 | 1995-06-21 | Plessey Semiconductors Ltd | Flexible lock-down cache. |
US5542066A (en) | 1993-12-23 | 1996-07-30 | International Business Machines Corporation | Destaging modified data blocks from cache memory |
TW243509B (en) | 1994-01-31 | 1995-03-21 | Ibm | Data processor with memory cache and method of operation |
US6272595B1 (en) * | 1994-08-05 | 2001-08-07 | Intel Corporation | N-way set-associative cache memory which includes a store hit buffer for improved data access |
US5524235A (en) * | 1994-10-14 | 1996-06-04 | Compaq Computer Corporation | System for arbitrating access to memory with dynamic priority assignment |
US5666494A (en) | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
US5655100A (en) * | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
US5638534A (en) | 1995-03-31 | 1997-06-10 | Samsung Electronics Co., Ltd. | Memory controller which executes read and write commands out of order |
US5664154A (en) * | 1995-10-02 | 1997-09-02 | Chromatic Research, Inc. | M/A for optimizing retry time upon cache-miss by selecting a delay time according to whether the addressed location's dirty bit indicates a write-back |
US5805840A (en) * | 1996-03-26 | 1998-09-08 | Advanced Micro Devices, Inc. | Bus arbiter employing a transaction grading mechanism to dynamically vary arbitration priority |
US5900011A (en) * | 1996-07-01 | 1999-05-04 | Sun Microsystems, Inc. | Integrated processor/memory device with victim data cache |
JP3516326B2 (ja) | 1997-03-13 | 2004-04-05 | 株式会社日立製作所 | 共有キャッシュメモリを有するメモリコントローラ及びこれを備えたコンピュータシステム |
US6032232A (en) * | 1997-05-29 | 2000-02-29 | 3Com Corporation | Multiported memory access system with arbitration and a source burst limiter for blocking a memory access request |
US6006303A (en) * | 1997-08-28 | 1999-12-21 | Oki Electric Industry Co., Inc. | Priority encoding and decoding for memory architecture |
US6065102A (en) * | 1997-09-12 | 2000-05-16 | Adaptec, Inc. | Fault tolerant multiple client memory arbitration system capable of operating multiple configuration types |
US6085294A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computer Corporation | Distributed data dependency stall mechanism |
US6119205A (en) * | 1997-12-22 | 2000-09-12 | Sun Microsystems, Inc. | Speculative cache line write backs to avoid hotspots |
US6304923B1 (en) * | 1998-10-14 | 2001-10-16 | Micron Technology, Inc. | Method for prioritizing data transfer request by comparing a latency identifier value received from an I/O device with a predetermined range of values |
US6415367B1 (en) * | 1999-12-16 | 2002-07-02 | Intel Corporation | Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme |
-
1999
- 1999-01-19 GB GB0308740A patent/GB2385174B/en not_active Expired - Lifetime
- 1999-01-19 GB GB9901140A patent/GB2345987B/en not_active Expired - Lifetime
- 1999-09-13 US US09/394,424 patent/US6490655B1/en not_active Expired - Lifetime
- 1999-10-28 JP JP30733599A patent/JP4468521B2/ja not_active Expired - Fee Related
-
2002
- 2002-07-25 US US10/202,030 patent/US6684302B2/en not_active Expired - Lifetime
- 2002-07-25 US US10/201,955 patent/US7020751B2/en not_active Expired - Lifetime
-
2009
- 2009-11-30 JP JP2009272138A patent/JP4712110B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7020751B2 (en) | 2006-03-28 |
GB0308740D0 (en) | 2003-05-21 |
GB2345987B (en) | 2003-08-06 |
US6490655B1 (en) | 2002-12-03 |
GB2385174B (en) | 2003-11-26 |
GB2345987A (en) | 2000-07-26 |
US6684302B2 (en) | 2004-01-27 |
GB9901140D0 (en) | 1999-03-10 |
JP2010049708A (ja) | 2010-03-04 |
JP4712110B2 (ja) | 2011-06-29 |
US20020188809A1 (en) | 2002-12-12 |
GB2385174A (en) | 2003-08-13 |
JP2000207283A (ja) | 2000-07-28 |
US20020184449A1 (en) | 2002-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4468521B2 (ja) | データ処理システムに於けるメモリ制御 | |
US7047374B2 (en) | Memory read/write reordering | |
TWI410796B (zh) | 來自窺探過濾器之過期無效異動的減少 | |
US9405696B2 (en) | Cache and method for cache bypass functionality | |
US6321296B1 (en) | SDRAM L3 cache using speculative loads with command aborts to lower latency | |
US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
US8645627B2 (en) | Memory bus write prioritization | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
US11194617B2 (en) | Merging data for write allocate | |
KR20060017881A (ko) | 동적 프리페치 버퍼 구성 및 대체를 위한 방법 및 장치 | |
JP6451538B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7330940B2 (en) | Method and system for cache utilization by limiting prefetch requests | |
US6351791B1 (en) | Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses | |
US9058283B2 (en) | Cache arrangement | |
US6496905B1 (en) | Write buffer with burst capability | |
JP2002073415A (ja) | 遅延無効化コンピュータキャッシュシステム | |
US10042773B2 (en) | Advance cache allocator | |
US6418514B1 (en) | Removal of posted operations from cache operations queue | |
US6801982B2 (en) | Read prediction algorithm to provide low latency reads with SDRAM cache | |
US6345340B1 (en) | Cache coherency protocol with ambiguous state for posted operations | |
US6347361B1 (en) | Cache coherency protocols with posted operations | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090701 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090728 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091028 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100203 |
|
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: 20100216 |
|
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: 20100225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4468521 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140305 Year of fee payment: 4 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |