(57)【要約】【課題】データ処理システムに於ける効率的なメモリシステムの管理並びに制御を実現する。【解決手段】メモリアクセス要求が発生してキャッシュミスが生じた場合に、キャッシュを入れ替えるために取り除くべきキャッシュ（ビクティムキャッシュ）を選ぶ必要がある。その際、特定の機器で占有されていないキャッシュか否か、キャッシュ存在中に書き換えられたために主メモリに書き戻す必要があるか否か、書き戻し先の主メモリがビジーであるか否かを判定して最も処理に要する時間が短くかつ最近最も使用されていないキャッシュの中から、ビクティムキャッシュを選んで効率化を図る。【選択図】図１
2010049708.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置であって：
（ｉ）メモリ回路と；
（ｉｉ）前記メモリ回路に結合されたデータバスと；
（ｉｉｉ）前記データバスに結合され、メモリアクセス要求を前記メモリ回路に前記データバスを経由して送る複数のバスマスタ回路と；
（ｉｖ）バスマスタ優先度の階層に基づき、どのバスマスタ回路が前記データバスの使用を獲得する優先度を許可されるかを、２つまたはそれ以上のバスマスタ回路が暫定的に重複するメモリアクセス要求の発した際に制御するためのバス調停回路とを含むデータ処理装置に於いて、
（ｖ）前記バス調停回路がバスマスタ間で前記データバスの使用を獲得するための優先度を再調停するために係属中のメモリアクセス要求の待ち時間の決定に応答して、第１係属メモリアクセス要求を有し、前記階層内で第２係属メモリアクセス要求を有する第２バスマスタ回路より低い位置にある第１バスマスタ回路が、前記第１係属メモリアクセス要求が前記第２係属メモリアクセス要求よりも低い待ち時間を有する場合に、前記第２バスマスタ回路に先行して前記データバスの使用を獲得し、
前記第２係属メモリアクセス要求が結果としてキャッシュミスとなり、主メモリアクセスが要求された際に、前記第１係属メモリアクセス要求が結果としてキャッシュヒットとなった場合、前記第１バスマスタ回路が前記第２バスマスタ回路に優先して前記データバスの使用を獲得するように、前記バス調停回路が優先度を再調停する、前記データ処理装置。
【請求項２】
請求項１記載のデータ処理装置に於いて、前記第１メモリアクセス要求が、前記第２メモリアクセス要求が前記データバスを経由してデータワードの転送準備が整う前に終わるような待ち時間を有するとき、前記第１バスマスタ回路に前記第２バスマスタ回路に優先して前記データバスの使用が与えられる、前記データ処理装置。
【請求項３】
請求項１記載のデータ処理装置に於いて、前記メモリ回路が１つのキャッシュメモリと１つの主メモリユニットとを含む、前記データ処理装置。
【請求項４】
請求項１記載のデータ処理装置に於いて、前記メモリ回路が複数の主メモリユニットを含み、前記複数の主メモリユニットが独立的にかつ併発的にそれぞれのメモリアクセス要求にサービスするように動作可能である、前記データ処理装置。
【請求項５】
請求項４記載のデータ処理装置に於いて、前記第２メモリアクセス要求が既に別のメモリアクセス要求に対してサービスを行っているためビジーである主メモリユニットに対するものであり、また前記第１メモリアクセス要求がメモリアクセス要求にサービスするために既にビジーではない主メモリユニットに対するものであって、前記第１メモリアクセス要求の待ち時間が前記第２メモリアクセス要求のそれよりも低い場合、前記バス調停回路は前記複数のバスマスタ回路の間で、前記第１バスマスタ回路が前記第２バスマスタ回路に優先して前記データバスの使用を獲得するように再調停を行う、前記データ処理装置。
【請求項６】
請求項４記載のデータ処理装置に於いて、前記複数の主メモリユニットがダイナミック随意アクセスメモリの複数のバンクである、前記データ処理装置。
【請求項７】
請求項１記載のデータ処理装置に於いて、前記メモリ回路、前記データバス、前記複数のバスマスタ回路及び前記バス調停回路が共に１つの集積回路の上に具備されている、前記データ処理装置。
【請求項８】
請求項１記載のデータ処理装置に於いて、前記複数のバスマスタ回路が中央処理装置を含む、前記データ処理装置。
【請求項９】
請求項１記載のデータ処理装置に於いて、前記複数のバスマスタ回路がビデオ表示制御回路を含む、前記データ処理装置。
【請求項１０】
データ処理方法であって：
（ｉ）複数のバスマスタ回路からメモリ回路にデータバスを経由してメモリアクセス要求を出し；
（ｉｉ）バスマスタ優先度の階層に基づき、２つ以上のバスマスタ回路が過渡的に重複するメモリアクセス要求を出す際に、どのバスマスタ回路が前記データバスの使用獲得の優先度を許可されるかを制御するステップを含み；
（ｉｉｉ）係属しているメモリアクセス要求の待ち時間に応答して、バスマスタ回路間で前記データバス使用獲得優先度が再調停されて、第１係属メモリアクセス要求を有し、第２係属メモリアクセス要求を有する第２バスマスタ回路よりも前記階層内でより低い位置を有する第１バスマスタ回路が、前記第１係属メモリアクセス要求が前記第２係属メモリアクセス要求よりも低い待ち時間を有する場合、前記データバスの使用権を前記第２バスマスタ回路に先んじて獲得するようにし、
前記第２係属メモリアクセス要求が結果としてキャッシュミスとなり、主メモリアクセスが要求された際に、前記第１係属メモリアクセス要求が結果としてキャッシュヒットとなった場合、前記第１バスマスタ回路が前記第２バスマスタ回路に優先して前記データバスの使用を獲得するように、前記優先度が再調停される前記データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに関する。更に詳細には、本発明はデータ処理システムに於けるメモリシステムの管理並びに制御に関する。
【背景技術】
【０００２】
データ処理システムは、処理能力に対して寄せられる増大する要求に合致するように可能な限り迅速に動作すべきである。この点に関して不断の進歩がなされており、より高速で動作し従って毎秒更に多くの命令を実行できる処理システムが作り出されている。プロセッサの速度が増すに従って、重要な事はデータ処理システムのその他のシステムも速度を上げて、システム全体性能を低下させる処理ボトルネックとならないようにすることである。その様なその他のシステムの一例はデータ処理システムに関連するメモリシステムである。
【０００３】
高性能データ処理システムのメモリシステムは、階層レベル構造のデータ記憶装置、例えば内部オンチップキャッシュ、外部オフチップキャッシュ、ランダムアクセスメモリ及びハードドライブまたはフラッシュＲＯＭの様な不揮発メモリを含む。データ処理システムのメモリシステムの全体性能を向上させることの出来る技法は非常に有益である。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明は１つの特徴としてデータ処理装置を提供し、これは：
（ｉ）複数のキャッシュ格納ラインを有する１つのキャッシュメモリと；
（ｉｉ）前記キャッシュメモリ内にキャッシュされるべきデータワードを格納するように動作可能な、複数の主メモリユニットと；
（ｉｉｉ）キャッシュミスに続いて前記主メモリユニットの１つから１つまたは複数のデータワードが転送されるべき宛先であるビクティム（ｖｉｃｔｉｍ）キャッシュ格納ラインを選択するためのキャッシュビクティム選択回路とを含み；
（ｉｖ）前記キャッシュビクティム選択回路が、前記ビクティムキャッシュ格納ラインを選択する際に前記主メモリユニットの少なくとも１つの動作状態に応答することを含む。
【０００５】
キャッシュメモリは典型的には、システムから要求される全てのデータを格納するのに十分な記憶容量を有する訳ではない。従ってキャッシュメモリは全データの部分集合を格納し、メモリアクセス要求がキャッシュの中に格納されていないデータの項目に行われた際にはそのデータ項目はキャッシュにフェッチされなければならない。キャッシュ内にデータの新たな項目用に余地を作るために、データの既存の項目がキャッシュから取り除かれなければならない。どのキャッシュ格納ライン（データ項目の集合）を置き換えるべきかの選択がキャッシュ・ビクティム選択回路で実行される。キャッシュメモリ内にキャッシュされるべきデータを保持している複数の主メモリユニットが存在する場合、異なる複数のビクティム選択がこの主メモリユニットの異なる１つに対してなされる複数のアクセスを要求する。この環境に於いて、キャッシュビクティム選択回路が少なくとも１つの主メモリユニットの動作状態に応答すべきであることが強く望まれる。キャッシュビクティム選択回路が少なくとも１つの主メモリユニットの動作状態に応答するように構成することにより、ビクティム選択が検出された動作状態に応じて調整され、従って最も少ない遅延を生じるキャッシュビクティムの選択を通してより高い性能を得ることが可能となる。
【０００６】
本発明は特に、キャッシュメモリが書き戻しキャッシュメモリとして構成されている際に有用である。この様な実施例に於いてビクティムキャッシュラインからのデータワードは、それらが元に来た場所である主メモリに書き戻されねばならず、従ってその特定のキャッシュラインをビクティムキャッシュラインとして選択することに関連する遅延の程度を決定する際にその主メモリの動作状態が重要となる。
【０００７】
主メモリユニットに関してセンスする高度に有用な動作パラメータの１つは、その主メモリユニットがそのキャッシュメモリと１つまたは複数のデータワードの交換で既にビジーであるか否かである。この主メモリユニットが既にビジーの場合、そのビジー状態の主メモリユニットへのアクセスを要求するビクティムキャッシュ格納ラインの選択から導かれる全ての要求にサービス出来るようになる前に、その現在動作が完了されなければならない。
【０００８】
本発明の利点が特に明白であるのは、同時にアクセス要求を行う多数のメモリマスタが存在し、複数の主メモリユニットが独立して動作可能であり並行してデータワードをキャッシュメモリに転送できる場合である。この様な実施例に於いて、キャッシュメモリとデータ交換を実行するのに既にビジーでないキャッシュ格納ラインをキャッシュビクティムとして選択することが強く望ましい。キャッシュメモリとの並列データ交換能力はシステム性能の増加を生じ、従ってメモリアクセス作業量を主メモリユニットの間でさえも分割してこの並列能力を更に使用することが望ましい。
【０００９】
好適な実施例に於いて、キャッシュビクティム選択回路が、キャッシュ格納ラインに関連する汚染フラグ（ラインが主メモリからキャッシュメモリへ転送されたために変更された１つまたは複数のデータワードを含むことを示すフラグ）に応答して、非汚染と印を付けられているキャッシュ格納ラインを好ましく選択することが望ましい。非汚染キャッシュ格納ラインは主メモリへの書き戻しを要求しないので、そのキャッシュ格納ラインを再充填するための遅延は削減できる。
【００１０】
最新の高性能データ処理システムでは、各々が１つまたは複数のデータワードをキャッシュメモリと交換要求する１つ以上のデータワード要求ユニットを具備することが有益で効率的である。この方法でデータワード要求ユニットの間でメモリ構造を共有することにより、最大性能の要求と回路資源の最も効率的な使用との間の兼ね合いに対して都合の良い妥協を図ることが出来る。
【００１１】
データワード要求ユニットの典型的な例は、中央処理装置及びビデオ表示駆動回路である。
【００１２】
先に説明したような複数のデータワード要求ユニットを有するシステムに於いて、１つまたは複数のキャッシュ格納ラインをデータワード要求ユニットの１つで優先的に使用するようにロックすることが望ましい。この様にすることで、データワードの１つが別のデータワード要求ユニットの性能に対して過度に損失的な衝撃を与える可能性を減らすことが出来る。
【００１３】
キャッシュメモリ資源の有効使用が計れる別の方法は、キャッシュビクティム選択回路がビクティムキャッシュ格納ラインを選択する際に、どのキャッシュ格納ラインが最近最も少なく使用されたかの指示に応答するように構成することである。
【００１４】
特に有効であると認められている総合的な技法は、前記キャッシュビクティム選択回路が前記ビクティムキャッシュ格納ラインとして、Ｎ個のプロパティー、ここで１≦Ｎ≦６、のリストの中で最も高いプロパティーを有するキャッシュ格納ラインを選択し、Ｎ個のプロパティーの前記リストはリスト内でＮ個の最も高いプロパティーで形成されており：
（ｉ）ロックされていなくて汚染されていない、最近最も使用されていないライン；
（ｉｉ）ロックされていなくて、汚染されておりビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン；
（ｉｉｉ）ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン；
（ｉｖ）ロックされており、汚染されていない最近最も使用されていないライン；
（ｖ）ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン；
（ｖｉ）ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン。
【００１５】
ある環境の下では部分ランダムキャッシュビクティム選択手法が開始点として好ましい場合も有り、この様な実施例に於いて前記キャッシュビクティム選択回路は前記ビクティムキャッシュ格納ラインとしてＮ個のプロパティー、ここで１≦Ｎ≦６、のリストの中で最も高いプロパティーを有するキャッシュ格納ラインを選択し、Ｎ個のプロパティーの前記リストはリスト内でＮ個の最も高いプロパティーで形成されており：
（ｉ）ロックされて無く、汚染されていないキャッシュ格納ラインからランダムに選択される；
（ｉｉ）ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインからランダムに選択される；
（ｉｉｉ）ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される；
（ｉｖ）ロックされており、汚染されていないキャッシュ格納ラインからランダムに選択される；
（ｖ）ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインからランダムに選択される；
（ｖｉ）ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される。
【００１６】
別の環境下では部分ラウンドロビン（ｒｏｕｎｄ  ｒｏｂｉｎ）キャッシュビクティム選択手法が開始点として好ましい場合も有り、この様な実施例に於いて前記キャッシュビクティム選択回路は前記ビクティムキャッシュ格納ラインとしてＮ個のプロパティー、ここで１≦Ｎ≦６、のリストの中で最も高いプロパティーを有するキャッシュ格納ラインを選択し、Ｎ個のプロパティーの前記リストはリスト内でＮ個の最も高いプロパティーで形成されており：
（ｉ）ロックされて無く、汚染されていないキャッシュ格納ラインから順番に選択される；
（ｉｉ）ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインから順番に選択される；
（ｉｉｉ）ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される；
（ｉｖ）ロックされており、汚染されていないキャッシュ格納ラインから順番に選択される；
（ｖ）ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインから順番に選択される；
（ｖｉ）汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される。
【００１７】
システムはいくつかのプロパティーのみで（例えばプロパティー（ｉ）、（ｉｉ）と（ｉｉｉ）または（ｉ）と（ｉｉ）に応答する）動作するように構成されており、整合するキャッシュ格納ラインが見つからない場合、システムの最小部分が適切なビクティムが利用可能となるまで待機状態に置かれる。
【００１８】
複数の主メモリユニットがメモリ階層の中で同一レベルの主メモリユニットであるかも知れない。この様な状況に於いては、併発的にそして独立してアクセスされるダイナミックランダムアクセスメモリのバンクが本発明と共に使用するのに特に良く適合しており、また例えば低価格シングルチップ設計の様なその他の理由からも特に望ましい。
【００１９】
本発明の別の特徴としてデータ処理方法が具備されており、これは：
（ｉ）キャッシュメモリの複数のキャッシュ格納ラインの中にデータワードを格納し；
（ｉｉ）複数の主メモリユニットの中に前記キャッシュメモリ内にキャッシュされるべき前記データワードを格納し；そして
（ｉｉｉ）その中に１つまたは複数のデータワードを、キャッシュミスに続いて前記主メモリユニットの１つから転送されるべきビクティムキャッシュ格納ラインを選択する、以上のステップを含み、
（ｉｖ）前記ビクティムキャッシュ格納ラインを選択する際に、前記選択が少なくとも１つの前記主メモリユニットの動作状態に応答する。
【００２０】
本発明の更に別の特徴としてデータ処理装置が具備されており、これは：
（ｉ）複数のキャッシュ格納ラインを有する１つの書き戻しキャッシュメモリと；
（ｉｉ）前記キャッシュメモリの中にキャッシュされるべきデータワードを格納するように動作可能な少なくとも１つの主メモリユニット、該少なくとも１つの主メモリユニットから前記キャッシュ格納ラインに転送されたために変更された何らかのデータワードを含む場合に汚染されたことになるキャッシュ格納ラインと；そして
（ｉｉｉ）背景処理として汚染キャッシュ格納ラインから前記少なくとも１つの主メモリユニットへのデータワードの書き戻しのトリガを掛けるための背景動作制御回路で、前記背景処理を用いて書き戻されたキャッシュ格納ラインは非汚染状態となり、書き戻された前記データワードの格納を継続する、前記背景動作制御回路とを含む。
【００２１】
書き戻しキャッシュは、キャッシュと主メモリとの間でのデータ転送回数を減らせるという特長を有する。更に詳細には、主メモリへのデータ転送はデータワードがキャッシュの中にロードされた時、またデータワードがキャッシュからフラッシュされた時にのみ生じる。データワードがキャッシュの中に格納されていた際に生じた変更は主メモリに送られず、データワードの最終状態が主メモリの中に書き込まれた際に、キャッシュデータが主メモリからフラッシュされるまで残される。キャッシュされたデータワードがキャッシュ内に格納されていた間に変更されなかった場合は、それらを主メモリに書き戻す必要はない。従って書き戻しを必要とするキャッシュデータワードと書き戻しを必要としないものとの間の差別を付けるために汚染フラグが用意されている。
【００２２】
本発明は汚染キャッシュラインへのキャッシュ補充は非汚染キャッシュラインの補充より遅いことを認識しているので、汚染キャッシュラインに必要なキャッシュ補充の数を減らすことの出来る対策は有効である。本発明は更に、システムからの全てのデータ要求がキャッシュデータから一致する場合、主メモリとキャッシュメモリの帯域幅が完全に利用されていないか、または完全にアイドル状態にあることを認識している。本発明はこの使用されていない能力を利用して、背景処理としてキャッシュメモリ内の汚染キャッシュラインの数を減らしている。これは続いて前景処理操作中に実行されるべき汚染キャッシュデータの書き戻し回数を削減する。
【００２３】
通常システムに於いて、汚染データはそれがキャッシュメモリからフラッシュ（すなわち除去）される際に主メモリに書き戻される。これと比較して本発明では汚染データは主メモリに書き戻されても未だキャッシュメモリ内に保持されるが、非汚染と印が付けられる。
【００２４】
本発明は、独立にまた同時にデータワードをキャッシュメモリに転送するように動作可能な複数の主メモリを有するシステムで特に有用であるが、その様なシステムはしばしばキャッシュメモリと主メモリとの間の使用されていない帯域幅を有し、これは本発明の背景処理で利用できるからである。
【００２５】
好適な実施例に於いて、背景処理はまたキャッシュデータワードが汚染されている場合にそれが書き戻されるべきか否かを判定する際に、それがどれだけ最近に使用されたかにも応答する。キャッシュデータワードが非常に頻繁に使用され、従って非常に頻繁に変更されそうな場合、それを背景処理の一部として書き戻しされるべきで無いことが有効であり、それは電力を不要に消費しまた、それほど頻繁には変更されず、従って１度書き戻されると非汚染状態に保持されるであろうキャッシュデータワードの書き戻しで、更に効果的に使用できるはずの主メモリシステムの予備帯域幅を使用してしまうからである。
【００２６】
背景処理の更なる改善として、別のメモリアクセス要求サービスで既にビジーである主メモリユニットに対して書き戻しは試みられるべきではない。
【００２７】
本発明は特に主メモリがフラッシュメモリのダイナミックランダムアクセスメモリの複数のバンクを含み、シングルチップ素子として製造されている実施例に適しているが、汎用ＤＲＡＭまたはフラッシュメモリも使用可能である。
【００２８】
本発明の更に別の特徴としてデータ処理方法が提供されており：
（ｉ）データワードを書き戻しキャッシュメモリの複数のキャッシュ格納ライン内に格納し；
（ｉｉ）少なくとも１つの主メモリユニット内に前記キャッシュメモリ内にキャッシュされるべき前記データワードを格納し、キャッシュ格納ラインはそれが前記少なくとも１つの主メモリユニットから前記キャッシュ格納ラインに転送されてから後に変更されたデータワードを含む場合に汚染されているといい；
（ｉｉｉ）データワードを汚染キャッシュ格納ラインから前記少なくとも１つの主メモリユニットに背景処理として書き戻し、前記背景処理を用いて書き戻されたキャッシュ格納ラインは非汚染となり、書き戻された前記データワードの格納を継続する、以上のステップを含む。
【００２９】
本発明の更に別の特徴としてデータ処理装置が提供されており：
（ｉ）メモリ回路と；
（ｉｉ）前記メモリ回路に結合されたデータバスと；
（ｉｉｉ）前記データバスに結合され、メモリアクセス要求を前記メモリ回路に前記データバスを経由して送る複数のバスマスタ回路と；
（ｉｖ）バスマスタ優先度の階層に基づき、どのバスマスタが前記データバスの使用を獲得する優先度を許可されるかを、２つまたはそれ以上のバスマスタが暫定的に重複するメモリアクセス要求の発した際に制御するためのバス調停回路とを含むデータ処理装置に於いて、
（ｖ）前記調停回路がバスマスタ間で前記データバスの使用を獲得するための優先度を再調停するために係属中のメモリアクセス要求の待ち時間の決定に応答して、第１係属メモリアクセス要求を有し、前記階層内で第２係属メモリアクセス要求を有する第２マスタ回路より低い位置にある第１バスマスタ回路が、前記第１メモリアクセス要求が前記第２メモリアクセス要求よりも低い待ち時間を有する場合に、前記第２バスマスタ回路に先行して前記データバスの使用を獲得するように応答する。
【００３０】
異なるバスマスタ間のバス調停は通常、固定された優先度の階層に基づいて実施される。しかしながら、バス調停回路が異なるメモリアクセス要求の待ち時間の判定に応答し、その決定された待ち時間に依存して優先度の再調停を行える場合に、本発明はバス帯域幅を更に効率的に使用出来ることを認識している。
【００３１】
特に好適実施例に於いて、第２メモリアクセス要求を第１メモリアクセス要求が実際にデータバスの使用を必要とする前の、その第１メモリアクセス要求の完全に待ち時間期間内に開始して完了することが可能である。
【００３２】
本発明が効果的に使用される共通の状況は、メモリシステムが１つのキャッシュメモリと１つの主メモリとを含むものである。その様なシステムに於いて、高い優先度の第１メモリアクセス要求が結果としてキャッシュミスを起こし、一方低い優先度の第２メモリアクセス要求が結果としてキャッシュヒットを起こす場合、優先度の再調停を行って第２メモリアクセス要求がキャッシュメモリからサービスを受け、一方第１メモリアクセス要求は主メモリからデータフェッチを行いそしてキャッシュラインの再充填を行うように継続させるようにするのが好適である。
【００３３】
類似の方法により、独立して併発的に動作できる複数の主メモリユニットを含むシステムに於いて、本発明は好適にビジーで無い主メモリユニットへの１つの要求を、そうでない場合はより高い優先度を持つビジーな主メモリユニットへの要求より先に移動させるように複数のメモリアクセス要求の間の再調停を行うように動作する。
【００３４】
本発明は特に、主メモリが１つまたは複数のダイナミックランダムアクセスのバンクを含み、シングルチップとして提供されているシステムでの実施例で有用である。
【００３５】
本発明の更に別の特徴として、データ処理方法が用意されており、これは：
（ｉ）複数のバスマスタ回路からメモリ回路にデータバスを経由してメモリアクセス要求を出し；
（ｉｉ）バスマスタ優先度の階層に基づき、２つ以上のバスマスタが過渡的に重複するメモリアクセス要求を出す際に、どのバスマスタが前記データバスの使用獲得の優先度を許可されるかを制御するステップを含み；
（ｉｉｉ）係属しているメモリアクセス要求の待ち時間に応答して、バスマスタ間で前記データバス使用獲得優先度が再調停されて、第１係属メモリアクセス要求と、第２係属メモリアクセス要求を有する第２バスマスタ回路よりも前記階層内でより低い位置とを有する第１バスマスタ回路が、前記第１メモリアクセス要求が前記第２メモリアクセス要求よりも低い待ち時間を有する場合、前記データバスの使用権を前記第２バスマスタ回路に先んじて獲得するようにしている。
【００３６】
本発明の上記並びにその他の目的、特徴は添付図と共に読まれるべき、図示を目的とした実施例の以下の詳細な説明から明らかであろう。
【図面の簡単な説明】
【００３７】
【図１】図１はデータ処理システムを図示する。
【図２】図２はキャッシュ制御装置内のビクティム選択回路の動作を図示する。
【図３】図３は汚染キャッシュライン書き戻し用背景処理機能の動作を図示する。
【図４】図４はバス調停器内のバス再調停動作を図示する。
【発明を実施するための形態】
【００３８】
図１はシングルチップデータ処理システム２を示し、これは中央処理装置４、ビデオ表示制御回路６およびキャッシュメモリ８を含む。キャッシュ制御装置１０がキャッシュメモリ８の動作を制御するために具備されている。バス調停回路１２は中央処理装置４とビデオ表示制御回路６のどちらがメモリアクセス要求（ＭＡＲ）を行う際にデータバス１４へのアクセスを獲得するかを制御する。
４つのバンクのオンチップダイナミックランダムアクセスメモリ１６，１８，２０および２２がＤＲＡＭ制御装置２４と共に具備されている。
【００３９】
動作に際して中央処理装置４またはビデオ表示制御回路６のどちらかがメモリアクセス要求をデータバス１４上へ出す。このメモリアクセス要求は、メモリ階層内の第１レベルとしてキャッシュメモリ８へ通る。キャッシュヒットが生じると、要求されたデータがキャッシュメモリ８の中からアクセスされる。このメモリアクセス要求がキャッシュメモリ８内のデータに変更を加える場合、汚染ビット２６が対応するキャッシュ格納ライン２８に対してセットされる。キャッシュ制御装置１０内で最少頻度使用（ＬＲＵ）回路３０が、キャッシュメモリ８内で各々のキャッシュ格納ライン２８が最近如何にアクセスされたかを示すデータを格納する。部分的ランダムまたは部分的ラウンドロビン置き換え技法を実行する制御回路を代わりに用意出来ることは理解されよう。この様な部分的ランダムまたは部分的ラウンドロビン技法はメモリシステムの検出された状態に依存して、ＬＲＵ置き換えに関する下記と類似の方法で修正される。
【００４０】
メモリアクセス要求に応答してキャッシュミスが生じると、対象データワードはＤＲＡＭバンク１６，１８，２０，２２のそれぞれの１つからフェッチされてキャッシュ格納ライン２８の１つの中に書き込まれなければならない。その中にこのフェッチされたデータが書き込まれるビクティムキャッシュ格納ラインとしてどのキャッシュ格納ライン２８が選択されるかは、キャッシュ制御装置１０内のビクティム選択回路３２で制御される。このビクティムキャッシュラインが汚染されている場合、フェッチデータワードがキャッシュ格納ライン２８の中に書き込まれる前に、ＤＲＡＭバンク１６，１８，２０，２２の１つへ書き戻すように要求する。従ってビクティム選択回路３２は汚染ビクティムよりも非汚染ビクティムを選択しようとする。キャッシュメモリ８にはまたロック領域が具備されていて、これはメモリアクセス要求ユニットの特定の１つ、例えば中央処理装置４およびビデオ表示制御回路６に専用である。一例として中央処理装置４で要求される高速割り込みコードはキャッシュメモリ８の領域内にロックされていて、要求された際に迅速なアクセスが行えるように保証している。ビクティム選択回路３２は非ロック領域をロック領域に先んじて選択する。
【００４１】
ＤＲＡＭ制御装置２４はデータをキャッシュメモリ８とＤＲＡＭバンク１６，１８，２０，２２との間を通すように動作する。ＤＲＡＭ制御装置２４はそれぞれのＤＲＡＭバンク１６，１８，２０，２２とキャッシュメモリ８との間の独立で併発的データ転送が実現できるように構成されている。どのＤＲＡＭバンク１６，１８，２０，２２が現在ビジー状態であるかを示す信号がＤＲＡＭ制御装置２４からキャッシュ制御装置１０へ送られ、ここでビクティム選択回路３２によって使用される。ビクティム選択回路３２はビクティムキャッシュ格納ライン２８を選択し、これはビジーなＤＲＡＭバンク１６，１８，２０，２２へ書き戻しが必要なものに応答して、非ビジーＤＲＡＭバンク１６，１８，２０，２２への書き戻しを要求する。
【００４２】
全体動作としてビクティム選択回路３２はそのビクティムキャッシュ格納ラインを、Ｎ個のプロパティー、ここで１≦Ｎ≦６、のリストの中で最も高いプロパティーを有するものとなるように選択し、Ｎ個のプロパティーの前記リストはリスト内でＮ個の最も高いプロパティーで形成されており：
（ｉ）ロックされていなくて汚染されていない、最近最も使用されていないライン；
（ｉｉ）ロックされていなくて、汚染されておりビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン；
（ｉｉｉ）ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン；
（ｉｖ）ロックされており、汚染されていない最近最も使用されていないライン；
（ｖ）ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能な、最近最も使用されていないライン；
（ｖｉ）ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならない、最近最も使用されていないライン。
【００４３】
部分ランダム置き換え技法に於いて、ビクティム選択回路３２はそのビクティムキャッシュ格納ラインとしてそれがＮ個のプロパティー、ここで１≦Ｎ≦６、のリストの中で最も高いプロパティーを有する様に選択し、Ｎ個のプロパティーの前記リストはリスト内でＮ個の最も高いプロパティーで形成されており：
（ｉ）ロックされて無く、汚染されていないキャッシュ格納ラインからランダムに選択される；
（ｉｉ）ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインからランダムに選択される；
（ｉｉｉ）ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される；
（ｉｖ）ロックされており、汚染されていないキャッシュ格納ラインからランダムに選択される；
（ｖ）ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインからランダムに選択される；
（ｖｉ）ロックされており、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインからランダムに選択される。
【００４４】
部分的ラウンドロビン置き換え技法に於いて、ビクティム選択回路３２はそのビクティムキャッシュ格納ラインをそれがＮ個のプロパティー、ここで１≦Ｎ≦６、のリストの中で最も高いプロパティーを有する様に選択し、Ｎ個のプロパティーの前記リストはリスト内でＮ個の最も高いプロパティーで形成されており：
（ｉ）ロックされて無く、汚染されていないキャッシュ格納ラインから順番に選択される；
（ｉｉ）ロックされて無く、汚染されていてビジーでない主メモリユニットに書き戻しが出来るキャッシュ格納ラインから順番に選択される；
（ｉｉｉ）ロックされていなくて、汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される；
（ｉｖ）ロックされており、汚染されていないキャッシュ格納ラインから順番に選択される；
（ｖ）ロックされており、汚染されていてビジーでない主メモリユニットに書き戻しが可能なキャッシュ格納ラインから順番に選択される；
（ｖｉ）汚染されておりビジーな主メモリユニットに書き戻しされなければならないキャッシュ格納ラインから順番に選択される。
【００４５】
システムがこれらのリストからいくつかのプロパティーのみしか使用しない場合もあるであろう、何故ならばより低いプロパティーが非常に不利であって、より好ましいプロパティーと一致するキャッシュビクティムが利用できるまでシステムの少なくとも一部が待機状態に入った方が良い場合である（例えば、キャッシュビクティム選択がロックされたキャッシュ格納ラインを尊重する場合、プロパティー（ｉ），（ｉｉ）および（ｉｉｉ）は使用されるが、プロパティー（ｉｖ），（ｖ）および（ｖｉ）は使用されない）。
【００４６】
ビクティム選択回路３２のこの動作はまた図２に図示されている。キャッシュミスが発生すると、図２に図示されている処理が開始し第１ステップ３４はロックされていないキャッシュ格納ラインが存在するかを判定する。ロックされていないキャッシュ格納ラインが存在する場合、処理はステップ３６へ進む。ロックされていないキャッシュ格納ラインが存在しない場合、処理はステップ３８へ進む。
【００４７】
ステップ３６に於いて、そのロックされていない格納ラインの中に非汚染キャッシュ格納ラインが存在するか否かの検査が行われる。非汚染でロックされていない格納ラインが存在する場合、これらの中で最近最も使用されていないものがビクティムとしてステップ４０で選択される。ロックされていない格納ラインの中に非汚染キャッシュ格納ラインが存在しない場合、ステップ４２はビジーでないＤＲＡＭバンクに書き戻しが要求される、ロックされていない汚染キャッシュ格納ラインが存在するかの判定を行う。その様なロックされていなくて汚染されているビジーでないキャッシュ格納ラインが存在すると、これらの中で最近最も使用されていないものがステップ４４で選択される。ロックされていなくて汚染されているビジーでないキャッシュ格納ラインが存在しない場合、ステップ４６はロックされていなくて汚染されているビジーなキャッシュ格納ラインをビクティムキャッシュ格納ラインとして使用するように選択する。
【００４８】
ステップ３４でロックされていないキャッシュ格納ラインが存在しないと判明すると、処理はステップ３８へ進み、ここでロックされているキャッシュ格納ラインで汚染されていないものが存在するかの検査が行われる。ロックされていて汚染されていないキャッシュ格納ラインが存在する場合、これらの中の最近最も使用されていないものがビクティムキャッシュ格納ラインとしてステップ４８で選択される。ロックされていて非汚染ロックキャッシュ格納ラインが存在しないとステップ３８で検出された場合、ステップ５０が使用されてロックされていて、汚染されておりビジーでないキャッシュ格納ラインが存在するかの判定が行われる。その様なロックされていて、汚染されておりビジーでないキャッシュ格納ラインが存在する場合、それらの中で最近最も使用されていないものがステップ５２で、ビクティムキャッシュ格納ラインとして選択される。ロックされていて、汚染されておりビジーでないキャッシュ格納ラインが存在しない場合、ステップ５４は最近最も使用されていない、ロックされていて、汚染されていてビジーなキャッシュ格納ラインをビクティムキャッシュ格納ラインとして選択する。この技法に基づいてビクティム選択回路３２で行われる選択の優先順位は、図２のステップ４０，４４，４６，４８，５２および５４の右上隅に中抜き番号で図示されている。
【００４９】
図１に戻ると、ＤＲＡＭ制御装置２４はまた背景動作制御回路５６を含む。この背景動作制御回路５６は背景処理を連続的に実行し、これはある条件に合致したＤＲＡＭバンク１６，１８，２０，２２にキャッシュメモリ８内から汚染キャッシュ格納ラインを書き戻すように試みる。背景動作制御回路５６で実行される背景処理は、キャッシュ制御装置１０内の最少頻度使用回路３０から供給されるキャッシュライン２８の最近最も使用されていない状態（またはその他のメモリシステム状態情報）、また同様にその対象としているキャッシュラインに関連するＤＲＡＭバンク１６，１８，２０，２２のビジー状態とに応答する。
【００５０】
図３は背景動作制御回路５６で連続的に動作される処理を図示する。ステップ５８，６０および６２は効果的にループを形成し、ここでキャッシュラインチェックはキャッシュメモリ８内の各々のキャッシュラインに対して繰り返し実行される。各々のキャッシュラインに対して順番にチェックが実施され、ステップ６６でそれが汚染されているか、ステップ６８でその最少頻度使用値がある閾値未満であるか（それがアクセスされる頻度が或る閾値より少ないことを示す）、そしてステップ７０でその非ビジー状態がチェックされる。ステップ６６，６８および７０での各々の判定結果がＹＥＳの場合ステップ７２はそのキャッシュラインを非ビジーＤＲＡＭバンク１６，１８，２０，２２に書き戻し、そのキャッシュラインに対する汚染ビット２６を汚染から非汚染に変更し、そのデータはキャッシュライン２８に残すように働く。ステップ６６，６８および７０のいずれかがＮｏに戻ると、これは検査されているキャッシュラインが背景処理の一部として書き戻されるのに適していないことを示し、従ってステップ７２はバイパスされて次のキャッシュラインが順に検査される。
【００５１】
図３に関連して記述された技法は、各々のキャッシュラインを順番に検査して、それが背景書き戻し動作の基準に合致するか否かのチェックを行う。これに代わる実施例として各々のキャッシュラインに関連して、そのキャッシュラインが基準に合致するか否かを連続的に監視する回路を具備することも可能である。基準に合致するキャッシュラインが同定されると、書き戻し動作が開始される。これらの監視回路は並列に動作するので、２つまたはそれ以上のキャッシュラインが同時に基準に合致するような状況を処理するための調停回路が必要であろう。
【００５２】
図１に戻るとこれはバス調停回路１２を示し、これは中央処理装置４およびビデオ表示制御回路６のメモリアクセス要求に対して、これが過渡的に重複した場合、そのどちらか１つにデータバス１４の使用を与えるかを判定するように動作する。一般的にバス調停回路１２で使用される制御の第１レベルは、予め定められた優先度の階層を適用し、ここではビデオ表示制御回路６が中央処理装置４よりも高い優先度を有し、従ってそのメモリアクセス要求は中央処理装置４に対するよりも優先してサービスされる。バス調停回路１２はまたキャッシュ制御装置１０及びＤＲＡＭ制御装置２４にも結合されている。これらのリンクはバス調停回路１２に対して、サービスされた個別のメモリアクセス要求の結果がキャッシュミスであったか、また更にそのキャッシュミスの結果、ビジー状態のＤＲＡＭバンク１６，１８，２０，２２へのメモリアクセス要求となったかを示す信号を送ることを可能としている。バス調停回路はこの追加情報を利用してメモリアクセス要求間の優先度の通常階層を再調停する。
【００５３】
図４はバス調停回路１２で実施されるバス再調停処理を図示する。処理は少なくとも１つのメモリアクセスＭＡＲが受信された時に開始される。ステップ７４で複数のＭＡＲがそのサイクルで受信されたか否かを判定するチェックが行われる。唯ひとつのＭＡＲのみが受信された場合、これは図示されるようにステップ７６および７８で開始されて完了する。
【００５４】
複数のＭＡＲが受信された場合、ステップ８０はより高い優先度のＭＡＲを第１メモリアクセス要求ＭＡＲ１として開始し、より低い優先度のＭＡＲを第２メモリアクセス要求ＭＡＲ２として保持する。
【００５５】
ステップ８２に於いて、第１メモリアクセス要求ＭＡＲ１が結果としてキャッシュミスとなったか否かの検査をキャッシュ制御装置１０で提供された情報を用いて行う。キャッシュミスが発生しなかった場合、第１メモリアクセス要求ＭＡＲ１はステップ８４で完了し、第２メモリアクセス要求ＭＡＲ２がステップ８６および８８で開始されて完了する。
【００５６】
第１メモリアクセス要求ＭＡＲ１の結果キャッシュミスとなった場合、ステップ９０で第２メモリアクセス要求がキャッシュデータに対するものか否かが判定される。第２メモリアクセス要求ＭＡＲ２がキャッシュデータに対するものでない場合（すなわち、それ自身で結果としてキャッシュミスとなる）、処理は上記の様にステップ８４，８６および８８を経由して進む。しかしながら、第２メモリアクセス要求ＭＡＲ２がキャッシュされている場合、バス調停回路１２はステップ９２で第１メモリアクセス要求ＭＡＲ１と第２メモリアクセス要求ＭＡＲ２との間で再調停を行うように動作する。この再調停は第２メモリアクセス要求ＭＡＲ２動作を開始する一方で第１メモリアクセス要求ＭＡＲ１動作をそのキャッシュラインの充填動作を実行させるままに残すが、これはシステム設計がバス調停器で行った待ち時間判定の結果、第１メモリアクセス要求ＭＡＲ１がキャッシュミスして、そのキャッシュミスからのデータがデータバス１４に、キャッシュされているデータへの第２メモリアクセス要求が終了するまで戻らないことが保証されていると認められるからである。従って、ステップ９４は第２メモリアクセス要求ＭＡＲ２を、第１メモリアクセス要求ＭＡＲ１が完了するステップ９６の前に完了する。
【００５７】
図４に図示された例に於いて、バス調停回路１２での待ち時間の判定はキャッシュミスが生じたか否かの判定を介して行われる。バス調停回路１２はまた、メモリアクセス要求がビジー状態のＤＲＡＭバンク１６，１８，２０，２２に対するものであるか否かにも応答し、従って特に高い待ち時間を有しデータバス１４を更に良く使用するための再調停の機会を可能とするようにも出来る。更にこの一般原理に基づいたバスマスタ再調停用の待ち時間判定および制御技法も可能である。
【００５８】
本発明の上記の実施例はシングルチップ素子に関して説明してきたが、この中でＤＲＡＭバンク１６，１８，２０，２２、キャッシュメモリ８、キャッシュ制御装置１０並びにその他の全ての回路が単一の集積回路として具備されている。上記の技術はまた“仮想チャンネルメモリ”として知られているものにも効果的に適用出来る。仮想チャンネルメモリはオンチップバッファ／キャッシュと共に複数のＤＲＡＭバンクを有する集積回路の形式で用意される。その様な仮想チャンネルメモリチップを使用する回路は、メモリ制御装置を含みこれは何が仮想チャンネルメモリのオンチップバッファ／キャッシュの中に格納されているかを追尾する。図１に関連して、キャッシュメモリ８並びにＤＲＡＭバンク１６，１８，２０，２２はその他の構成要素が全て別々のチップ上に用意されている、仮想チャンネルメモリチップ上に具備されていると考えられる。上記の技術はその様な仮想チャンネルメモリシステムを最も効率的に使用するのに特に有効である。
【００５９】
本発明の図示を目的とした実施例を添付図を参照して此処に詳細に説明してきたが、本発明はこれらの詳細な実施例に限定されるものではなく、種々の変化並びに修正を添付の特許請求項に定められた本発明の範囲および精神から逸脱することなく、当業者が行えることは理解されよう。
【符号の説明】
【００６０】
２  データ処理システム
４  中央処理装置
６  ビデオ表示制御回路
８  キャッシュメモリ
１０  キャッシュ制御装置
１２  バス調停回路
１４  データバス
１６，１８，２０，２２  ＤＲＡＭバンク
２４  ＤＲＡＭ制御装置
２６  汚染ビット
２８  キャッシュ格納ライン
３０  最少頻度使用（ＬＲＵ）回路
３２  ビクティム選択回路
５６  背景動作制御回路
【図１】
2010049708.tif 000003
【図２】
2010049708.tif 000004
【図３】
2010049708.tif 000005
【図４】
2010049708.tif 000006