(57)【特許請求の範囲】
【請求項１】
キャッシュメモリ回路であって、該回路は、
（ｉ）各々が複数のワードを記憶する複数のキャッシュローと、
（ｉｉ）前記複数のキャッシュローに接続されて前記キャッシュメモリ回路からワードを読み出すリードバスと、
（ｉｉｉ）前記複数のキャッシュローに接続されて前記キャッシュメモリ回路へワードを書き込むライトバスと、
（ｉｖ）前記複数のキャッシュローの１つをアクティブキャッシュローとして選択するローセレクタと、
（ｖ）前記アクティブキャッシュローから第１のワードを選択してリードバスへの出力ワードを発生するリードマルチプレクサと、
（ｖｉ）前記アクティブキャッシュローから、前記アクティブキャッシュロー内の前記第１のワードとは異なる位置にある第２のワードを選択してライトバスから入力ワードを受信するライトマルチプレクサと、
（ｖｉｉ）前記リードマルチプレクサおよび前記ライトマルチプレクサを制御して、前記アクティブキャッシュローへ前記ライトバスを介して前記第２のワードが書き込まれるのと同時に、前記アクティブキャッシュローから前記リードバスを介して前記第１のワードが読み出されるようにするマルチプレクサコントローラと、
を具備し、
更に、前記キャッシュメモリ回路をメインメモリへの書き戻しキャッシュとして動作させるキュッシュコントロール論理を含み、
特定ワードへのアクセスに対してキャッシュミスが生じると、キャッシュミスに続く最初のステップにおいて、前記特定ワードで置換されるべきキャッシュロー内に記憶された古いワードが前記リードバスを介して前記キャッシュローから読み出されて前記メインメモリに記憶され、前記キャッシュロー内に記憶された複数の古いワードが前記特定ワードを含む前記メインメモリからの複数の新しいワードと置換されるようにトリガーされる、キャッシュメモリ回路。
【請求項２】
請求項１記載のキャッシュメモリ回路であって、前記キャッシュミスに続く後のステップにおいて、前記メインメモリに記憶されるために前記キャッシュローから既に読み出されている置換されるべき古いワードが前記ライトバスを介して前記メインメモリからの新しいワードと置換されるのと同時に、まだ前記キャッシュローから読み出されていない古いワードが前記メインメモリに記憶されるために前記リードバスを介して前記キャッシュローから読み出される、キャッシュメモリ回路。
【請求項３】
請求項１記載のキャッシュメモリ回路であって、該回路は新しいワードが前記メインメモリから読み出される間に前記キャッシュメモリ回路から前記メインメモリへ戻される古いワードが保持されるライトバッファーを具備するキャッシュメモリ回路。
【請求項４】
請求項１記載のキャッシュメモリ回路であって、該回路は中央処理装置コアと一緒に集積回路上に形成されるキャッシュメモリ回路。
【請求項５】
メインメモリへの書き戻しキャッシュとしてのキャッシュメモリ回路の動作方法であって、該方法は、
（ｉ）複数のワードを複数のキャッシュローの各々に記憶するステップと、
（ｉｉ）前記複数のキャッシュローに接続されたリードバスを介して前記キャッシュメモリ回路からワードを読み出すステップと、
（ｉｉｉ）前記複数のキャッシュローに接続されたライトバスを介して前記キャッシュメモリ回路へワードを書き込むステップと、
（ｉｖ）ローセレクタにより前記複数のキャッシュローの１つをアクティブキャッシュローとして選択するステップと、
（ｖ）リードマルチプレクサにより前記アクティブキャッシュローから第１のワードを選択してリードバスへの出力ワードを発生するステップと、
（ｖｉ）ライトマルチプレクサにより前記アクティブキャッシュローから、前記アクティブキャッシュロー内の前記第１のワードとは異なる位置にある第２のワードを選択してライトバスからの入力ワードを受信するステップと、
（ｖｉｉ）マルチプレクサコントローラにより前記リードマルチプレクサおよび前記ライトマルチプレクサを制御して、前記アクティブキャッシュローへ前記第２のワードが前記ライトバスを介して書き込まれるのと同時に、前記アクティブキャッシュローから前記第１のワードを前記リードバスを介して読み出せるようにするステップと、
（ｖｉｉｉ）特定ワードへのアクセスに対してキャッシュミスが生じると、キャッシュミスに続く最初のステップにおいて、前記特定ワードと置換されるべき前記キャッシュロー内に記憶された前記古いワードが前記リードバスを介して前記キャッシュローから読み出されて前記メインメモリに記憶されるように、前記キャッシュロー内に記憶された複数の古いワードの前記特定ワードを含む前記メインメモリからの複数の新しいワードによる置換をトリガーするステップ、
からなるキャッシュメモリ回路動作方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理の分野に関する。特に、本発明は代表的には命令語やデータ語の短期、高速記憶を行うのに使用されるキャッシュメモリ回路に関する。
【０００２】
【従来の技術】
添付図の図１にキャッシュメモリ回路を利用したデータ処理システムを示す。集積回路２はとりわけ中央処理装置コア４、キャッシュメモリ回路６およびライトバッフアー８を具備して形成される。集積回路２はシステムの大部分の記憶容量を提供するランダムアクセスメモリ１０に接続されている。
【０００３】
動作に関して、中央処理装置コア４が要求すると、被処理命令もしくはデータを表すワードがランダムアクセスメモリ１０から読み出されてキャッシュメモリ回路６に記憶される。次に、中央処理装置コア４がこれらのワードの１つにアクセスする必要がある場合には、最初にそれがキャッシュメモリ回路６内に存在するかどうかをチェックする。ワードが存在すれば、ランダムアクセスメモリ１０への低速オフチップアクセスに頼ることなくこのオンチップキャッシュメモリ回路６から高速でアクセスすることができる。どのワードをキャッシュメモリ回路６内に保持すべきであるかおよび（処理することができる）キャッシュメモリ回路６に記憶されたワードとランダムアクセスメモリ１０に記憶された対応するワードとの間でどのような無矛盾性を維持すべきであるかについてはさまざまな方法がある。無矛盾性を維持する１つの方法では、キャッシュメモリ回路はいわゆる“書き戻し”として構成される。
【０００４】
このような構造の動作において、中央処理装置コア４が特定のワードへアクセスしたい場合には、キャッシュメモリ回路６内でこのワードがそこに記憶されているかどうかを確認するチェックがなされる。キャッシュメモリ回路６にワードが記憶されておれば、キャッシュヒットが生じている。キャッシュヒットに続いて、そのワードに対する高速リードもしくはライトを行うことができる。ワードに対するライト動作を行う場合には、このステージにおいてこのライト動作をランダムアクセスメモリ１０に記憶された対応するワードに対しては行わないことが重要である。したがって、ランダムアクセスメモリ１０に記憶されたそのワードのインスタンスは古くなって無効となる。
【０００５】
ランダムアクセスメモリ１０内の古くなったワードの更新が行われるのはキャッシュメモリ回路６内の対応するワードが高速アクセスを行うのにより望ましい他のワードへ道を譲るために置換されている時である。キャッシュメモリ回路６に記憶されているワードはこのように置換されると、ランダムアクセスメモリ１０へ書き戻されてその中に記憶されたワードのインスタンスが更新される。図２にこのプロセスの詳細を示す。
【０００６】
ステップ１２において、キャッシュミスが生じると、書き戻しプロセスに入る。第１ステージはステップ１４において置換すべきキャッシュローを識別することである。どのキャッシュローを置換すべきか（代表的にキャッシュはロー構成とされ、各キャッシュローが複数のワードを記憶している）を確認するのにさまざまな方法を利用することができる。一般的な方法は最も最近アクセス（使用）されたキャッシュローと置換することである。
【０００７】
キャッシュローのいわゆる“ダーティフラグ（ｄｉｒｔｙ  ｆｌａｇ）”はそこに記憶されている任意のワードがランダムアクセスメモリ１０から読み出されて以来変化しているかどうかを示す。ダーティフラグがセットされておれば、ステップ１６から２２において現在選択されたキャッシュローに記憶されている４つのワードが集積回路２の連続クロックサイクル（ｆｃｌｋ）中にライトバッファー８へ書き込まれる。図２の例はこのような変化が生じているものと仮定している。
【０００８】
古いワードが後でランダムアクセスメモリ１０へ記憶し戻すためにライトバッファー８へ安全に書き込まれると、ステップ２４において集積回路２のクロック信号はランダムアクセスメモリ１０を駆動する外部の低速メモリクロック信号（ｍｃｌｋ）と同期化される。クロック信号のこの切り替えは早期に行うこともできるが、できるだけ長く高速クロック信号（ｆｃｌｋ）を使用し続けることが最善であるためそれによって全体動作がスローダウンしてしまう。
【０００９】
ステップ２６，２８，３０および３２において、連続外部クロックサイクルで新しいワードがランダムアクセスメモリ１０からキャッシュローへ読み込まれる。
【００１０】
図２から古いワードの書き戻しおよび新しいワードの読込みは（４ｘｆｃｌｋ）＋（４ｘｍｃｌｋ）を越えて行われることが判る。キャッシュローのワードの書き戻しおよび読込みはキャッシュメモリ回路６内のキャッシュコントロール論理３４により制御される。この例はｍｃｌｋ信号とは異なる高速のｆｃｌｋ信号を仮定している。これらの信号は同じでもよい。
【００１１】
図３に図２のプロセスを示す。上の４つの図は選択されたキャッシュローからライトバッファーへの連続ワードの保存を示している。下の４つの図はランダムアクセスメモリ１０からの４つの連続ワードの連続読出しを示している。
【００１２】
【発明が解決しようとする課題】
キャッシュの性能はそれが組み込まれているデータ処理システムの全体性能に大きなインパクトを及ぼす。キャッシュの性能（例えばその動作速度）を改善する対策をとることが非常に有利である。
【００１３】
【課題を解決するための手段】
１つの局面から見て、本発明によりキャッシュメモリ回路が提供され、それは、
（ｉ）  各々が複数のワードを記憶する複数のキャッシュローと、
（ｉｉ）  前記複数のキャッシュローに接続されて前記キャッシュメモリ回路からワードを読み出すリードバスと、
（ｉｉｉ）  前記複数のキャッシュローに接続されて前記キャッシュメモリ回路へワードを書き込むライトバスと、
（ｉｖ）  前記複数のキャッシュローの中の１つをアクティブキャッシュローとして選択するローセレクタと、
（ｖ）  前記アクティブキャッシュローから第１のワードを選択してリードバスへの出力ワードを発生するリードマルチプレクサと、
（ｖｉ）  前記第１のワードとは異なる第２のワードを前記アクティブキャッシュローから選択してライトバスからの入力ワードを受信するライトマルチプレクサと、
（ｖｉｉ）  前記リードマルチプレクサおよび前記ライトマルチプレクサを制御して前記アクティブローから前記ライトバスを介して前記第２のワードが書き込まれるのと同時に前記アクティブローから前記リードバスを介して前記第１のワードを読み出すことができるようにするマルチプレクサコントローラとを具備している。
【００１４】
キャッシュロー内のワードに対して適切に多重化される独立したリードバスおよび独立したライトバスを設けることによりキャッシュローを置換する速度を増大することができるキャッシュメモリ回路が本発明により提供される。このようにして、所与の処理サイクルにおいて、キャッシュロー内の異なるワードについてリード動作およびライト動作の両方を行うことができる。したがって、キャッシュの動作速度が改善される。
【００１５】
独立したリードバスおよびライトバスを有するキャッシュメモリ回路はさまざまな構成で有利に使用することができる。しかしながら、前記キャッシュメモリ回路がそれをメインメモリへの書き戻しキャッシュとして作動させるキャッシュコントロール論理を含んでいるような実施例に本発明は特に適している。
【００１６】
書き戻しキャッシュとして動作する場合には、キャッシュローの内容を置換したい時に複数のライト動作および複数のリード動作を実施しなければならない。このような動作を少なくとも一部並列に実施する能力によりキャッシュローの内容を置換するための全体時間が短縮されキャッシュ性能が改善される。
【００１７】
キャッシュローの内容の置換をトリガーすることができる方法はさまざまである。しかしながら、特定ワードへのアクセスに対してキャッシュミスが生じると、それにトリガーされてキャッシュロー内に記憶された複数の古いワードが前記特定ワードを含む前記メインメモリからの複数の新しいワードと置換されるような実施例に本発明は特に有用である。
【００１８】
このような状況では特定ワードはシステムの残りにより出来るだけ早く必要とされしかも特定ワードを含むワードにより置換される前にキャッシュローの現在の内容を正しく保存するのに十分な時間がなければならない。
【００１９】
実施例では、前記キャッシュミスに続く最初のステップにおいて、前記特定ワードと置換される前記キャッシュローに記憶された前記古いワードは前記リードバスを介して前記キャッシュローから読み出されて前記メインメモリに記憶される。
【００２０】
キャッシュロー内の古いワードが置換される前に保存される順序は任意のコースに従うことができるが、キャッシュミスを生じる特定ワードに対応するワードを最初に保存するのが有利である。このようにして、フェッチされる特定ワードに対するスペースがキャッシュメモリ回路内に作られしたがって、中央処理装置コア等の、システムが出来るだけ早く利用することができしかもそれと並列にキャッシュメモリ回路へ供給される。
【００２１】
古いキャッシュワードを保存する１つのライト動作が行われる初期サイクルに続いて、次のサイクルでは前記キャッシュミスに続くステップにおいて、前記メインメモリに記憶するために前記キャッシュローから既に読み出されている置換すべき古いワードはまだそうされていないもう１つの古いワードが前記メインメモリへ記憶するために前記リードバスを介して前記キャッシュローから読み出されるのと同時に前記ライトバスを介して書き込まれる前記メインメモリからの新しいワードと置換されることが好ましい。
【００２２】
このようにして、古いワードの保存と新しいワードのフェッチングは同時進行させてキャッシュローを置換する全体時間を短縮することができる。
【００２３】
容認出来る性能で制御論理を単純化する代替策としてキャッシュローの置換は一端から他端へ進むように行ってキャッシュローから読み出される最初のワードを最初に置換し以下同様とすることができる。
【００２４】
新しいワードが前記メインメモリから読み出される間に古いワードが前記キャッシュメモリ回路から前記メインメモリへ戻されるライトバッファーもシステムに含めると有利であることが判っている。
【００２５】
ライトバッファーを設けることにより１つのアクセスパス（バス）しかないメインメモリにより本発明の性能利得を達成することができる。本発明のキャッシュメモリ回路はワードを同時に読み出しかつ書込むことができまたライトバッファーを設けることによりメモリは中間でライト要求が完了するのを待つことなく任意所与のサイクルに１回アクセスするだけで全てのリード要求を出来るだけ迅速に満たすことができる。
【００２６】
本発明のキャッシュメモリ回路は、恐らくは個別部品により、独立に形成することができるが、中央処理装置コアと一緒に集積回路上に形成するという性能上の最大利点を得ることが極めて望ましい。
【００２７】
もう１つの局面から見て、本発明によりキャッシュメモリ回路の動作方法が提供され、それは、
（ｉ）  複数のキャッシュローの各々に複数のワードを記憶するステップと、
（ｉｉ）  前記複数のキャッシュローに接続されたリードバスを介して前記キャッシュメモリ回路からワードを読み出すステップと、
（ｉｉｉ）  前記複数のキャッシュローに接続されたライトバスを介して前記キャッシュメモリ回路へワードを書き込むステップと、
（ｉｖ）  ローセレクタにより前記複数のキャッシュローの中の１つをアクティブキャッシュローとして選択するステップと、
（ｖ）  リードマルチプレクサにより前記アクティブキャッシュローから第１のワードを選択してリードバスへの出力ワードを発生するステップと、
（ｖｉ）  ライトマルチプレクサにより前記アクティブキャッシュローから、前記第１のワードとは異なる、第２のワードを選択してライトバスから入力ワードを受信するステップと、
（ｖｉｉ）  マルチプレクサコントローラにより前記リードマルチプレクサおよび前記ライトマルチプレクサを制御して前記アクティブローからの前記第２のワードが前記ライトバスを介して書き込まれるのと同時に前記アクティブローからの前記第１のワードを前記リードバスを介して読み出すことができるようにするステップとからなっている。
【００２８】
【発明の実施の形態】
図４に中央処理装置コア３６、キャッシュメモリ回路３８、ライトバッファー４０およびマルチプレクサ４２を内蔵する集積回路３４を示す。ランダムアクセスメモリ４４が集積回路３４のさまざまな構成要素にマルチプレクサ４２を介して接続されている。
【００２９】
図５はキャッシュローを置換する場合の図４のシステムの動作ステップを示す。ステップ４６において、キャッシュミスが検出される。ステップ４８において、公知の１つのロー置換方法に従って置換すべきキャッシュローが識別される。ステップ５０において、第１位置からの古いワード（Ｗ＃０，この場合キャッシュミスを生じる特定ワード）がリードバスを介してキャッシュメモリ回路３８から読み出されてライトバッファー４０に記憶される。この動作は集積回路３２の１高速クロックサイクル（ｆｃｌｋ）を要する。
【００３０】
ステップ５２において、集積回路３２はそのクロック信号を変えてランダムアクセスメモリ４４のクロック信号（ｍｃｌｋ）と同期化させる。
【００３１】
この同期化に続く３つのステップ５４，５６，５８において、前のステージで保存されたワードがライトバスを介して書き込まれる間に次に高いアドレスの古いワードがライトバッファー４０に保存されランダムアクセスメモリ４４から取り出した新しいワードがマルチプレクサ４２へ通される。マルチプレクサ４２およびキャッシュメモリ回路３８の制御はキャッシュコントロール論理６２により処理される。
【００３２】
最終ステージ６０において、古いワードは全てライトバッファー４０に保存されておりランダムアクセスメモリ４４からキャッシュローへ書き込む必要があるのは最後の新しいワードだけである。
【００３３】
この例では、ワードは保存され次に＃０，＃１，＃２および＃３の順に書き込まれるのがお判りと思われる。これはランダムアクセスメモリ内の昇ベキアドレス順である。代表的にそうであるように、特定ワードがキャッシュロー内の中途で生じている場合には、保存およびライト動作が行われる順序はこの特定ワードで開始する昇ベキアドレス順となりキャッシュローの終り、すなわち＃３、に達した時にキャッシュローの始め、すなわち＃０、に重なる。また、常に＃０で開始して＃３まで進むような置換を行うこともできる。
【００３４】
キャッシュコントロール論理６２は特定ワードのアドレスに応答してキャッシュロー置換をトリガーし古いワードの保存および新しいワードの読み出しシーケンスを前記した順序に従うように制御する。
【００３５】
図５のステップのリードおよびライト動作を図６に示す。
【００３６】
ステップＡにおいて、最初の古いワードＷ＃０がライトバッファー４０に保存される。次のステップＢにおいて、次の古いワードＷ＃１がライトバッファー４０に保存されるのと同時にランダムアクセスメモリから新しいワードＷ＃０が読み出される。キャッシュローに沿った昇ベキ順でステップＣおよびＤが同様に進行する。ステップＥでは、ランダムアクセスメモリ４４からキャッシュローへ最後のワードを書き込むだけでよい。ステップＢからＥは４ｍｃｌｋサイクルかかるがステップＡは１ｆｃｌｋサイクルしかかからないことをお判り願いたい。図５の動作にかかる時間を図２の動作にかかる時間と比較すると、キャッシュローを置換するのにかかる時間はおよそ３ｘｆｃｌｋだけ短縮される。キャッシュローが広い（すなわち、より多くのワードを含む）場合には、時間の節減は一層大きくなる。
【００３７】
図４のキャッシュメモリ回路３８をより詳細に図７に示す。キャッシュメモリ回路３８は複数のキャッシュロー６４，６６，６８，７０を含み、そのいくつかが図示されている。各キャッシュロー６４，６６，６８，７０は、各々が複数ビットからなる、複数のワードを含んでいる。１ビットの記憶セルをボックス７２内に示す。記憶セルは２つの絶縁トランジスタ７８，８０と共に２つのインバータ７４，７６を含んでいる。ローセレクタ回路８２はアクセスされるワードに指定されたアドレスに応答して１本のロー選択線８４を使用しキャッシュローの１つをオンとしてそのキャッシュローの絶縁トランジスタ７８，８０をオンとし他のキャッシュローの絶縁トランジスタ７８，８０は全てオフのままとされる。
【００３８】
所与のキャッシュローが選択されると、それが記憶しているビットは強制的にビット線８６に与えられビットの補数は強制的にビット線８８に与えられる。
【００３９】
リードバス９０にはビット線８６，８８上の信号値から特定の各ビットが認識される速度を加速する各センス増幅器９２，９４の出力が与えられる。適切に多重化すれば、１組のセンス増幅器により置換されるキャッシュロー内の全てのワードに対処することができる。リードバス９０のワード選択線はゲート９６と一緒に作用してリードマルチプレクサの役割を果たしキャッシュロー内に記憶された特定の１つのワードがリードバス９０を介して読み出される。
【００４０】
ライトバス９８が各ビットに対するバッファー１００およびインバータ１０２を介して各ビット線８６，８８に接続されている。ゲート１０６と連係して作用するライトワード選択線１０４がライトバス９８を介して書き込まれるキャッシュロー内の特別なワードを選択する。
【００４１】
図７の回路の全体動作は特別な１つのキャッシュローをオンとし次にそのキャッシュロー内の異なる各ワードを選択してリードバス９０およびライトバス９８に接続し同時リードおよびライト動作を行うローセレクタとして理解することができる。このようにして、キャッシュ性能、例えばキャッシュローの内容を置換するのに要する時間、を改善することができる。
【００４２】
図４のバス構造の代替バス構造を図８に示す。この構造ではキャッシングのライトバッファリングが必要とされない時に使用することができる直接パスがコア３６とＲＡＭ４４との間に設けられている。この実施例はまた置換されているキャッシュロー内の全てのワードをＲＡＭ４４から最初の新しいワードを回復するのに必要な比較的低速の最初のサイクル中にライトバッファー４０に記憶するように動作することができる。
【００４３】
添付図を参照して実施例について説明してきたが、本発明はこれらの厳密な実施例に限定されるものではなく、当業者であれば特許請求の範囲に明記された発明の範囲および精神を逸脱することなくさまざまな変更や修正を実施出来ることをご理解願いたい。
【図面の簡単な説明】
【図１】キャッシュメモリ回路を組み込んだデータ処理システムの略図。
【図２】書き戻しモードで動作する場合の図１のキャッシュメモリ回路の動作ステップ図。
【図３】図２に従ったリードおよびライト動作を示す図。
【図４】本発明の１実施例に従って修正されたキャッシュメモリ回路を組み込んだデータ処理システムの略図。
【図５】書き戻しモードで動作する場合の図４のキャッシュメモリ回路の動作ステップ図。
【図６】図５のステップに従って動作するキャッシュメモリ回路に生じる同時リードおよびライト動作を示す図。
【図７】図４のキャッシュメモリ回路の一部の詳細図。
【図８】図４のバス構造の代替バス構造。
【符号の説明】
２，３４  集積回路
４，３６  中央処理装置コア
６，３８  キャッシュメモリ回路
８，４０  ライトバッファー
１０，４４  ランダムアクセスメモリ
４２  マルチプレクサ
６２  キャッシュコントロール論理
６４，６６，６８，７０  キャッシュロー
７４，７６，１０２  インバータ
７８，８０  絶縁トランジスタ
８２  ローセレクタ回路
８４  ロー選択線
８６，８８  ビット線
９０  リードバス
９２，９４  センス増幅器
９６，１０６  ゲート
９８  ライトバス
１００  バッファー
１０４  ライトワード選択線
【図１】
0003710895.tif 000002
【図２】
0003710895.tif 000003
【図３】
0003710895.tif 000004
【図４】
0003710895.tif 000005
【図５】
0003710895.tif 000006
【図６】
0003710895.tif 000007
【図７】
0003710895.tif 000008
【図８】
0003710895.tif 000009