(57)【特許請求の範囲】
【請求項１】
同一半導体チップ上に一体的に形成されるメモリ内蔵プロセサであって、
与えられたデータおよび命令に従って演算処理を行なう演算処理器、
前記演算処理器のためのデータおよび命令を含む情報を格納するための第１のメモリ、
前記第１のメモリよりも低速動作しかつ前記第１のメモリよりも大きな記憶容量を有し、かつ１ビットのメモリセルに含まれるトランジスタの数が前記第１のメモリのそれよりも少なく、前記演算処理器のための情報を格納するための第２のメモリ、
前記演算処理器、前記第１のメモリおよび前記第２のメモリを相互結合するバス、
前記バスと別に設けられかつ前記バスよりも大きなバス幅を有し、前記第１のメモリと前記第２のメモリとの間で情報を転送するための転送手段、
前記演算処理器のアクセス要求する情報が前記第１のメモリに記憶されているか否かを判定し、該判定結果に従って前記バスを介して前記演算処理器と前記第１のメモリとの間で情報の転送を行なうための第１の制御手段、および
前記第１の制御手段による、前記演算処理器が要求する情報が前記第１のメモリに存在しないとの判定結果に応答して活性化され、前記アクセス要求された情報が前記第２のメモリに存在するか否かを判定し、該判定結果が前記第２のメモリ内での前記アクセス要求された情報の存在を示すとき、前記転送手段を介して前記第１のメモリと前記第２のメモリとの間で前記アクセス要求された情報を含む情報の転送を行なうための第２の制御手段を備える、メモリ内蔵プロセサ。
【請求項２】
前記第２の制御手段の前記アクセス要求された情報の不存在を示す判定結果に応答して、前記バスを介して前記第２のメモリと外部に設けられた外部メモリとの間で情報を転送しかつ前記演算処理器がアクセス要求した情報を前記演算処理器へ前記バスを介して転送するための手段をさらに備える、請求項１記載のメモリ内蔵プロセサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリとプロセサとが同一チップ上に形成されたメモリ内蔵プロセサに関し、特に、面積効率の優れたキャッシュメモリを内蔵するメモリ内蔵プロセサに関する。
【０００２】
【従来の技術】
マイクロプロセサ（ＭＰＵ）または中央演算処理装置（ＣＰＵ）などのプロセサは、その動作速度が１００ＭＨｚ、２００ＭＨｚと高速化されてきている。一方、主記憶として用いられるダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）は、高速化されてきてはいるものの、その動作速度は依然プロセサのそれよりも遅い。この動作速度の差が存在すると、ＤＲＡＭへのアクセス時、必要データが揃うまで、プロセサはウエイト状態となる。このようなウエイト状態をできるだけ少なくして高速データ処理を行なうようにシステム性能を改善するために、主記憶とプロセサとの間にキャッシュメモリと呼ばれる高速のメモリが配置される。このキャッシュメモリに、プロセサが頻繁にアクセスするデータを格納する。
【０００３】
処理実行時においては、プログラムに従って処理が進行するため、この処理には、アクセス領域の局所性が存在する。したがって、プロセサが要求するデータがキャッシュメモリ内に格納されているとき（キャッシュヒット時）、連続的にアクセスされるデータがこのキャッシュメモリ内に格納されている可能性が高い。このプロセサが要求するデータがキャッシュメモリに存在する場合には、常にプロセサとキャッシュメモリとの間でデータ転送を行なう。これにより、プロセサのウエイト時間を少なくして、高速処理を行なうことができる。キャッシュメモリ内にプロセサが要求するデータが存在しないとき（キャッシュミス時）のみ、主記憶のＤＲＡＭへアクセスする。
【０００４】
キャッシュメモリ内に適当なサイズのキャッシュブロック（キャッシュミス時にデータ転送単位となるブロック）を適当な数格納することにより、キャッシュヒット率を高くすることができ、プロセサのウエイト時間を短縮でき、高速データ処理が可能となる。
【０００５】
【発明が解決しようとする課題】
キャッシュメモリの記憶容量を大きくすれば、キャッシュヒット率を高くすることができる。このキャッシュメモリとしては、通常スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）が用いられる。
【０００６】
図１７は、ＳＲＡＭセルの構成の一例を示す図である。図１７において、ＳＲＡＭセルＳＭＣは、電源ノードＶＣＣと内部記憶ノードＮＡの間に接続される負荷素子Ｚ１と、電源ノードＶＣＣと内部記憶ノードＮＢの間に接続される負荷素子Ｚ２と、内部記憶ノードＮＡと接地ノードＧＮＤの間に接続されかつそのゲートが内部記憶ノードＮＢに接続されるｎチャネルＭＯＳトランジスタ（絶縁ゲート型電界効果トランジスタ）Ｔ１と、内部記憶ノードＮＢと接地ノードＧＮＤの間に接続されかつそのゲートが内部記憶ノードＮＡに接続されるｎチャネルＭＯＳトランジスタＴ２と、ワード線ＷＬ上の信号電位に応答して導通し、内部記憶ノードＮＡとビット線ＢＬとを電気的に接続するｎチャネルＭＯＳトランジスタＴ３と、ワード線ＷＬ上の信号電位に応答して導通し、内部記憶ノードＮＢとビット線／ＢＬとを電気的に接続するｎチャネルＭＯＳトランジスタＴ４を含む。
【０００７】
ワード線ＷＬには、１行のＳＲＡＭセルＳＭＣが接続される。ビット線ＢＬおよび／ＢＬは相補なデータ信号を伝達し、対をなして配設される。このビット線対ＢＬおよび／ＢＬに１列のメモリセルが接続される。
【０００８】
負荷素子Ｚ１およびＺ２は、記憶ノードＮＡまたはＮＢを記憶情報に応じて電源電圧ＶＣＣ（ノードとそこに与えられる電圧を同じ符号で示す）レベルにプルアップする機能を有し、薄膜トランジスタまたは抵抗素子で形成される。
【０００９】
ＭＯＳトランジスタＴ１およびＴ２はフリップフロップを構成し、この内部記憶ノードＮＡおよびＮＢの信号電位を保持する。ワード線ＷＬの信号電位がＨレベルに上昇すると、ＭＯＳトランジスタＴ３およびＴ４が導通し、内部記憶ノードＮＡおよびＮＢが、それぞれ、ビット線ＢＬおよび／ＢＬに接続される。この状態で、このＳＲＡＭセルＳＭＣに対するデータの読出または書込が行なわれる。
【００１０】
この図１７に示すように、ＳＲＡＭセルＳＭＣは、データを記憶するためのＭＯＳトランジスタＴ１およびＴ２、ならびにこのＳＲＡＭセルＳＭＣにアクセスするためのＭＯＳトランジスタＴ３およびＴ４と４個のＭＯＳトランジスタを含んでいる。したがって、このＳＲＡＭは、相補データ信号の伝達およびスタティック動作のため高速動作するという利点を有するものの、１ビットのメモリセルＳＭＣの占有面積が大きいという欠点を有する。したがって、このＳＲＡＭセルＳＭＣを用いてキャッシュメモリを構築する場合、このキャッシュメモリの記憶容量を増大させると、キャッシュメモリの占有面積が増大する。特に、最近の傾向としてのプロセサとメモリとのワンチップ化およびシステムのサイズ低減などに対する大きな障害となる。
【００１１】
図１８は、ＤＲＡＭセルの構成を示す図である。図１８においては、２つのＤＲＡＭセルＤＭＣａおよびＤＭＣｂを示す。ＤＲＡＭセルＤＭＣａは、ワード線ＷＬａとビット線ＢＬの交差部に対応して配置される。ＤＲＡＭセルＤＭＣｂは、ワード線ＷＬｂとビット線／ＢＬの交差部に対応して配置される。ＤＲＡＭセルＤＭＣａおよびＤＭＣｂの各々は、情報を記憶するためのキャパシタＣと、対応のワード線ＷＬ（ＷＬａまたはＷＬｂ）の信号電位に応答して導通し、キャパシタＣを、対応のビット線ＢＬまたは／ＢＬに電気的に接続するｎチャネルＭＯＳトランジスタＱを含む。
【００１２】
このＤＲＡＭにおいても、ワード線ＷＬａおよびＷＬｂそれぞれに対し、１行のＤＲＡＭセルが接続され、ビット線対ＢＬおよび／ＢＬに１列のメモリセルが接続される。このＤＲＡＭセルＤＭＣａおよびＤＭＣｂのキャパシタＣの一方電極ノードへは、一定のセルプレート電圧ＶＣＰが印加される。ＤＲＡＭセルＤＭＣａおよびＤＭＣｂは、このキャパシタＣの他方電極に蓄積される電荷量に応じて情報を記憶する。メモリセルデータ読出時において、ビット線ＢＬおよび／ＢＬの一方にメモリセルデータが読出され、他方のビット線は、このメモリセルデータに対する基準電位を与える。
【００１３】
ＤＲＡＭセルＤＭＣａおよびＤＭＣｂの各々は、この図１８に示すように、１つのＭＯＳトランジスタと１つのキャパシタＣとで構成される。したがって、図１７に示すＳＲＡＭセルＳＭＣに比べて、トランジスタの数が少なく、ＤＲＡＭセルＤＭＣａおよびＤＭＣｂの各々の占有面積は、ほぼＳＲＡＭセルＳＭＣの１／４となる。したがって、このＤＲＡＭは、限られた面積内で、大記憶容量のメモリを実現することができる。
【００１４】
しかしながら、このＤＲＡＭは、ダイナミック動作を行なっており、各信号線を所定電位にプリチャージする必要があり、ＳＲＡＭほど高速では動作することはできない。したがってこのＤＲＡＭを単純にキャッシュメモリとして用いた場合、高速のキャッシュメモリを実現するのは困難である。
【００１５】
それゆえ、この発明の目的は、チップ面積を増加させることなくキャッシュミス時のペナルティを低減することのできるキャッシュシステムを内蔵するメモリ内蔵プロセサを提供することである。
【００１６】
【課題を解決するための手段】
請求項１に係るメモリ内蔵プロセサは、与えられたデータおよび命令に従って演算処理を行なう演算処理器と、この演算処理器のためのデータ／命令を含む情報を格納する第１のメモリと、この第１のメモリよりも低速動作でありかつこの第１のメモリよりも大きな記憶容量を有しかつ１ビットのメモリセルのトランジスタ数が第１のメモリのそれよりも少なく、演算処理器のための情報を格納するための第２のメモリと、これら演算処理器、第１のメモリおよび第２のメモリを相互結合するバスと、このバスと別に設けられかつこのバスよりも大きなバス幅を有し、第１のメモリと第２のメモリとの間で情報を転送するための転送手段と、演算処理器のアクセス要求する情報が第１のメモリに記憶されているか否かを判定し該判定結果に従ってバスを介して演算処理器と第１のメモリとの間で情報の転送を行なうための第１の制御手段と、この第１の制御手段による演算処理器が要求する情報が第１のメモリに存在しないとの判定結果により活性化され、アクセス要求された情報が第２のメモリに存在するか否かを判定し、該判定結果が第２のメモリ内でのアクセス要求された情報の存在を示すとき、転送手段を介して第１のメモリと第２のメモリとの間でアクセス要求された情報を含む情報の転送を行なうための第２の制御手段を備える。
【００１７】
請求項２に係るメモリ内蔵プロセサは、第２の制御手段の不存在を示す判定結果に応答して、バスを介して第２のメモリと外部に設けられた外部メモリとの間でこのアクセス要求された情報を含む情報の転送を行ない、かつこのアクセス要求された情報を演算処理器へバスを介して転送するための手段をさらに備える。
【００１８】
【発明の実施の形態】
図１は、この発明の実施の形態に従うメモリ内蔵プロセサおよびそれを用いるシステムの構成を概略的に示す図である。図１において、処理システムは、メモリ内蔵プロセサ１と、ＤＲＡＭで構成される主記憶メモリ２と、このメモリ内蔵プロセサ１と主記憶メモリ２の間でのデータ転送および図示しない回路とメモリ内蔵プロセサ１および主記憶メモリ２の間でのデータ転送を制御するためのコントロールユニット３を含む。
【００１９】
メモリ内蔵プロセサ１は、与えられた命令およびデータ（以下、両者を含めて情報と称す）に従って、演算処理を行なうプロセサ１０と、プロセサ１０とプロセサバス１１を介して結合され、このプロセサ１０の１次キャッシュとして機能する第１のメモリとしてのＳＲＡＭキャッシュメモリ１２と、このＳＲＡＭキャッシュメモリ１２と転送バス部１３を介して双方向に情報の転送が可能なように結合され、このＳＲＡＭキャッシュメモリ１２に対するキャッシュメモリ、すなわち２次キャッシュメモリとして機能する第２のメモリとしてのＤＲＡＭキャッシュメモリ１４を含む。
【００２０】
コントロールユニット３は、システムバス１５を介してこのメモリ内蔵プロセサ１に結合されかつ主記憶メモリ２にも、システムバス１５を介して結合される。このコントロールユニット３は、さらに、図示しないユニット（他の処理装置、ロジックまたはメモリ）にローカルバス１６を介して結合される。
【００２１】
このメモリ内蔵プロセサ１は、１つのチップ上に形成される。したがって、このＳＲＡＭキャッシュメモリ１２とプロセサ１０の間のプロセサバス１１の幅は、ＳＲＡＭキャッシュメモリのデータ入出力端子数の影響を受けず、任意の幅に設定することができる。また、このＳＲＡＭキャッシュメモリ１２を、プロセサ１０と別々のチップに形成する場合、このプロセサ１０およびＳＲＡＭキャッシュメモリ１２は、これらが実装されるボード上の配線により相互接続される。この場合、チップ内部に形成されるプロセサバス１１に比べて、ボード上配線の負荷は大きい。したがって、プロセサ１０とＳＲＡＭキャッシュメモリ１２とを同一チップ上に形成することにより、高速でプロセサ１０とＳＲＡＭキャッシュメモリ１２の間で大量の情報の転送を行なうことができる。
【００２２】
ＤＲＡＭキャッシュメモリ１４は、転送手段としての転送バス部１３を介してＳＲＡＭキャッシュメモリ１２に結合される。この転送バス部１３は、プロセサバス１１と別に設けられており、そのバス幅は、プロセサバス１１よりも十分広くされている。したがって、プロセサ１０が要求した情報がＳＲＡＭキャッシュメモリ１２内に存在しない場合、ＤＲＡＭキャッシュメモリ１４からこのバス幅の広い転送バス部１３を介してＳＲＡＭキャッシュメモリ１２へ情報を転送することができる。この場合においても、転送バス部１３は、チップ上の内部バスであり、高速でデータ転送を行なうことができるとともに、またＤＲＡＭキャッシュメモリ１４のデータ入出力ピン端子の影響を受けることなく任意のバス幅に設定することができる。これにより、ＳＲＡＭキャッシュメモリ１２におけるキャッシュミス時においても、高速でＳＲＡＭキャッシュメモリ１２に情報を転送することができ、キャッシュミス時のペナルティ（プロセサ１０のウエイト時間）を低減することができる。
【００２３】
また、ＤＲＡＭキャッシュメモリ１４に含まれるＤＲＡＭセルについては、先の図１８に示すように、１ビットのメモリセルは１トランジスタと１キャパシタとで構成されており、この１ビットのＤＲＡＭメモリセルの占有面積は小さく、ＤＲＡＭキャッシュメモリ１４の集積度は、ＳＲＡＭキャッシュメモリ１２のそれよりも大きい。したがって、このメモリ内蔵プロセサ１において、チップ占有面積を増加させることなく、必要とされるたとえば２Ｍバイトの記憶容量を有するキャッシュメモリを実現することができる。
【００２４】
図２は、この図１に示すメモリ内蔵プロセサのデータ転送動作を示すフロー図である。図２においては、プロセサ１０からアクセス要求されたデータをプロセサ１０へ転送する動作、すなわちキャッシュメモリからのデータ読出動作について説明する。なお、以下の説明においては、データ、すなわち演算処理されるデータの転送について説明するが、これは命令が転送される場合であっても同じである。
【００２５】
まず、図示しない制御装置により、ＳＲＡＭキャッシュメモリ１２に対して、プロセサ１０からアクセス要求が与えられたか否かの判定を行なう（ステップＳ１）。
【００２６】
このアクセス要求があった場合、プロセサ１０がアクセス要求するデータがＳＲＡＭキャッシュメモリ１２内に存在するか否かの判定が行なわれる（ステップＳ２）。ＳＲＡＭキャッシュメモリ１２内に、このプロセサ１０がアクセス要求したデータが存在する場合には、ステップＳ５へ移り、ＳＲＡＭキャッシュメモリ１２から、このプロセサ１０へ、プロセサバス１１を介してアクセス要求されたデータが転送される。
【００２７】
一方、このアクセス要求されたデータがＳＲＡＭキャッシュメモリ１２内に存在しない場合には、次いで、ＤＲＡＭキャッシュメモリ１４内に、このアクセス要求されたデータが存在するか否かの判定が行なわれる（ステップＳ３）。このアクセス要求されたデータがＤＲＡＭキャッシュメモリ１４内に存在する場合には、ＤＲＡＭキャッシュメモリ１４から転送バス部１３を介してＳＲＡＭキャッシュメモリ１２へ、このアクセス要求されたデータを含むデータブロックが転送される（ステップＳ４）。ここで、ＳＲＡＭキャッシュメモリ１２に対するキャッシュミス時において、いわゆる「コピーバック動作」は行なわれず、ＳＲＡＭキャッシュメモリ１２からＤＲＡＭキャッシュメモリ１４へのデータの転送は行なわれない動作モードを想定している。この動作モードは、ＳＲＡＭキャッシュメモリ１２へのデータ書込時においては、この書込まれたデータがまたＤＲＡＭキャッシュメモリＩ４の対応の位置に書込まれる「ライトスルー動作」を想定している。当然、コピーバック時においては、ＤＲＡＭキャッシュメモリ１４からＳＲＡＭキャッシュメモリ１２へのデータ転送前に、ＳＲＡＭキャッシュメモリ１２からＤＲＡＭキャッシュメモリ１４へデータ転送が行なわれる。
【００２８】
このステップＳ４において、必要データがＳＲＡＭキャッシュメモリ１２へ転送されると、この転送動作と並行して、ＳＲＡＭキャッシュメモリ１２からプロセサバス１１を介してプロセサ１０へアクセス要求されたデータが転送される（ステップＳ５）。
【００２９】
一方、ステップＳ３において、プロセサ１０がアクセス要求したデータがＤＲＡＭキャッシュメモリ１４内においても存在しない場合には、このメモリ内蔵プロセサ１は、コントロールユニット３へ、アクセス要求とともにアドレス情報を与える。コントロールユニット３は、アクセス要求が与えられると、このアドレス情報に従って主記憶メモリ２から必要なデータを読出し、システムバス１５を介してメモリ内蔵プロセサ１へ転送する。メモリ内蔵プロセサ１においては、このコントロールユニット３の制御の下にシステムバス１５を介して転送された主記憶メモリ２からのデータは、ＤＲＡＭキャッシュメモリ１４へ格納されるとともに、必要とされるデータがプロセサ１１へプロセサバス（この経路は図示せず）を介して転送される（ステップＳ６）。
【００３０】
このＤＲＡＭキャッシュメモリ１４へのデータ転送動作と並行してプロセサ１０へ必要データを転送することにより、プロセサ１０のウエイト時間を低減する。
【００３１】
ＤＲＡＭキャッシュメモリ１４へ、主記憶メモリ２から１つの単位となるデータブロックがすべて転送されると、次いでこのＤＲＡＭキャッシュメモリ１４からＳＲＡＭキャッシュメモリ１２へデータが転送される間（ステップＳ７）。これにより、ＳＲＡＭキャッシュメモリ１２へは、プロセサ１０がアクセス要求したデータを含むデータブロック（ＳＲＡＭキャッシュブロック）が格納され、次のアクセス時のキャッシュヒット率を高くすることができる。
【００３２】
図３は、図１に示すメモリ内蔵プロセサ１のより詳細な構成を概略的に示す図である。図３において、メモリ内蔵プロセサ１は、プロセサ１０とＳＲＡＭキャッシュメモリ１２との間でプロセサバス１１を介してデータの転送を行なうためのＳＲＡＭＩ／Ｏユニット２２と、プロセサ１０およびＤＲＡＭキャッシュメモリ１４と外部の主記憶メモリとのデータの転送を行なうためのＤＲＡＭＩ／Ｏユニット２６とプロセサバス１１を介して結合され、かつメモリ内蔵プロセサ１の外部の主記憶メモリなどとシステムバス１５を介して結合されて、プロセサバス１１とシステムバス１５の間で情報の転送を行なうためのインタフェースユニット２８を含む。
【００３３】
ＤＲＡＭＩ／Ｏユニット２６は、プロセサバス１１を介してプロセサ１０およびインタフェースユニット２８に結合される。インタフェースユニット２８は、ＤＲＡＭＩ／Ｏユニット２６とデータの授受を行なう。ＳＲＡＭＩ／Ｏユニット２２は、プロセサ１０とのみデータの転送を行なう。すなわち、このメモリ内蔵プロセサ１の構成においては、外部からは、ＤＲＡＭキャッシュメモリ１４へのみ直接アクセスすることができる。
【００３４】
インタフェースユニット２８は、プロセサバス１１と外部のシステムバス１５のバス幅が異なる場合には、データビット幅を変換する機能を備えていてもよい。しかし、以下の説明においては、システムバス１５とプロセサバス１１は、同じバス幅を備えるものと仮定する。
【００３５】
メモリ内蔵プロセサ１は、さらに、プロセサ１０とコントロール／アドレスバス１９を介して結合され、プロセサ１０からアクセス要求時、与えられたアドレスに従って、ＳＲＡＭキャッシュメモリ１２に対するアクセス制御を行なうためのＳＲＡＭコントロールユニット２０と、このＳＲＡＭコントロールユニット２０におけるキャッシュミス判定時活性化され、ＤＲＡＭキャッシュメモリ１４からＳＲＡＭキャッシュメモリ１２へのデータ転送および／または外部の主記憶メモリとＤＲＡＭキャッシュメモリ１４の間のデータ転送を制御するＤＲＡＭコントロールユニット２４を含む。ＳＲＡＭキャッシュメモリ１２とＤＲＡＭキャッシュメモリ１４とは、転送バス部１３を構成する転送回路１３ａ、ならびに内部転送バス１３ｂおよび１３ｃを介して結合される。
【００３６】
ＳＲＡＭコントロールユニット２０は、プロセサ１０から、コントロール／アドレスバス１９を介して与えられるアドレス信号が指定するメモリセルデータがＳＲＡＭキャッシュメモリ１２に存在するときには、キャッシュメモリ１２へアクセスしてアドレス指定されたＳＲＡＭセルのデータを読出して、ＳＲＡＭＩ／Ｏユニット２２およびプロセサバス１１を介してプロセサ１０へ与える（キャッシュヒット時）。
【００３７】
プロセサ１０から与えられたアドレス信号が指定するメモリセルのデータがＳＲＡＭキャッシュメモリ１２内に存在しない（ＳＲＡＭキャッシュミス）場合には、ＳＲＡＭコントロールユニット２０は、プロセサ１０に対しコントロール／アドレスバス１９を介してキャッシュミスのためにウエイトをかける。このとき、ＳＲＡＭコントロールユニット２０は、ＤＲＡＭコントロールユニット２４を活性化する。またさらに、ＳＲＡＭコントロールユニット２０は、プロセサ１０がアクセス要求したメモリセルデータを含むデータブロックの転送を受けるために、ＳＲＡＭキャッシュメモリ１２内において、所定のタイミングで、転送を受けるキャッシュブロックサイズのＳＲＡＭセルを選択状態へ駆動する。
【００３８】
ＤＲＡＭコントロールユニット２４は、このＳＲＡＭコントロールユニット２０からのキャッシュミス指示に従って活性化され、またＳＲＡＭコントロールユニット２０を介して、プロセサ１０から与えられるアドレスを受け、このプロセサ１０がアクセス要求したメモリセルのデータがＤＲＡＭキャッシュメモリ１４内に存在するか否かを判定する。プロセサ１０がアクセス要求したメモリセルのデータがＤＲＡＭキャッシュメモリ１４内に存在する場合には、ＤＲＡＭコントロールユニット２４は、ＳＲＡＭコントロールユニット２０へ、ＤＲＡＭキャッシュヒットを知らせる。ＳＲＡＭコントロールユニット２０は、このＤＲＡＭコントロールユニット２４からのＤＲＡＭキャッシュヒット指示に従って、ＳＲＡＭキャッシュメモリ１２のデータ転送を受ける領域を選択状態へ駆動し、これらの選択されたＳＲＡＭセルを、内部データバス１３ｃに結合する。ＤＲＡＭコントロールユニット２４は、このプロセサ１０から与えられたアドレス信号に従ってＤＲＡＭキャッシュメモリ１４のアクセス要求されたデータを含むブロックを選択して内部データバス１３ｂへ読出し、転送回路１３ａを活性化する。
【００３９】
この転送回路１３ａは、後に説明するが内部転送バス１３ｂに結合されるＤＲＡＭ転送回路部分と内部転送バス１３ｃに結合されるＳＲＡＭ転送回路部分を含む。転送回路をＤＲＡＭ部分およびＳＲＡＭ部分別々に分割することにより、これらの転送動作をＤＲＡＭコントロールユニット２４およびＳＲＡＭコントロールユニット２０により非同期的に（ハンドシェイク態様で）実行することができ、選択されたメモリセルデータの正確な転送が可能となる。
【００４０】
すなわち、ＤＲＡＭコントロールユニット２４からの、この転送回路１３ａに含まれるＤＲＡＭ転送回路部分の活性化指示に応答して、ＳＲＡＭコントロールユニット２０は、この転送回路１３ａに含まれるＳＲＡＭ転送回路部分を活性化し、内部転送バス１３ｂ上に転送されたデータを、内部転送バス１３ｃに転送する。このときには、ＳＲＡＭキャッシュメモリ１２においては、対応のメモリセルがＳＲＡＭコントロールユニット２０により選択状態に駆動されており、内部転送バス１３ｃ上に転送されたデータが、各選択されたＳＲＡＭセルに書込まれる。このとき、またＳＲＡＭコントロールユニット２０は、ＳＲＡＭＩ／Ｏユニット２２を活性化し、プロセサ１０からのアドレス信号に従ってＳＲＡＭキャッシュメモリ１２の対応のデータを選択し、プロセサバス１１を介してプロセサ１０へ与える。
【００４１】
ＤＲＡＭキャッシュメモリ１４内に、プロセサ１０がアクセス要求したメモリセルのデータが存在しない場合には、ＤＲＡＭコントロールユニット２４は、外部のコントロールユニット（図１のコントロールユニット３）へＤＲＡＭキャッシュミスを知らせるとともに、このＤＲＡＭキャッシュメモリ１４内の、データ転送を受ける部分を選択状態へ駆動しかつＤＲＡＭＩ／Ｏユニット２６を活性化する。さらに、インタフェースユニット２８がこのＤＲＡＭコントロールユニット２４の制御の下に活性化され、プロセサバス１１を、外部のシステムバス１５に結合する。
【００４２】
外部に設けられたコントロールユニット（図１参照）は、ＤＲＡＭコントロールユニット２４から与えられるアドレス信号に従って主記憶メモリ（図１参照）へアクセスし、この主記憶メモリ２の対応の領域のデータ（ＤＲＡＭキャッシュブロックのデータ）を順次システムバス１５上に読出し、このインタフェースユニット２８へ与える。インタフェースユニット２８は、このシステムバス１５を介して与えられるデータを、順次ＤＲＡＭＩ／Ｏユニット２６へ与える。ＤＲＡＭＩ／Ｏユニット２６は、転送されたデータのブロックをＤＲＡＭキャッシュメモリ１４内の選択されたＤＲＡＭセルに順次転送する。
【００４３】
このインタフェースユニット２８を介してプロセサバス１１上に与えられるデータについて、プロセサ１０がアクセス要求したデータが到達した場合には、このプロセサ１０がアクセス要求したデータは、プロセサバス１１を介してプロセサ１０へまた与えられる。ＤＲＡＭキャッシュメモリ１４内において、１つのＤＲＡＭキャッシュブロック（転送バス部１３のバス幅に相当）のデータ転送が完了すると、ＤＲＡＭコントロールユニット２４は、転送回路１３ａに含まれるＤＲＡＭ転送回路部分を活性化し、この内部転送バス１３ｂに読出されたデータを転送回路１３ａ内部に取込む。ここで、内部転送バス１３ｂへは、ＤＲＡＭキャッシュメモリ１４へ、ＤＲＡＭＩ／Ｏユニット２６からのデータ書込時に同時に、書込まれたデータが転送されている。ＤＲＡＭコントロールユニット２４は、この転送回路１３ａに含まれるＤＲＡＭ転送回路部分の活性化を行なうと、ＳＲＡＭコントロールユニット２０に対し、データ転送完了を指示し、ＳＲＡＭコントロールユニット２０は、応じて転送回路１３ａのＳＲＡＭ転送回路部分を活性化し、ＳＲＡＭキャッシュメモリ１２内の対応のＳＲＡＭキャッシュブロックのＳＲＡＭセルへデータを書込む。
【００４４】
なお、主記憶メモリからＤＲＡＭキャッシュメモリ１４へのデータ転送時において、外部のコントロールユニットが、必要なＤＲＡＭキャッシュブロックデータの転送完了をこのＤＲＡＭコントロールユニット２４へ指示する構成が用いられてもよい。また、ＤＲＡＭコントロールユニット２４が、インタフェースユニット２８を介してプロセサバス１１上に転送されるデータの数をカウントし、必要なデータの数（ＤＲＡＭキャッシュブロックの全データ）が転送されたことを識別する構成が用いられてもよい。
【００４５】
上述のように、ＳＲＡＭキャッシュメモリ１２およびＤＲＡＭキャッシュメモリ１４をそれぞれ２ポートとすることにより、プロセサバス１１およびシステムバス１５よりもバス幅の広い内部転送バス１３ｂおよび１３ｃを介してＳＲＡＭキャッシュメモリ１２とＤＲＡＭキャッシュメモリ１４との間で、高速にデータ転送を行なうことができる。
【００４６】
図４は、主記憶メモリ２におけるアドレス領域とＤＲＡＭキャッシュブロック、ＳＲＡＭキャッシュブロックの対応関係を概略的に示す図である。図４に示すように、主記憶メモリ２内において、ＤＲＡＭキャッシュヒット／ミス判定単位となるＤＲＡＭキャッシュブロックＤＣＢは、複数個のＳＲＡＭキャッシュブロックＳＣＢを含む。ＤＲＡＭキャッシュミス時主記憶メモリ２とＤＲＡＭキャッシュメモリ１４の間で、このＤＲＡＭキャッシュブロックＤＣＢを単位としてデータの転送が行なわれる。
【００４７】
ＳＲＡＭキャッシュブロックＳＣＢは、複数個のデータを含む。ＳＲＡＭキャッシュミス時ＳＲＡＭキャッシュメモリとＤＲＡＭキャッシュメモリとの間では、ＳＲＡＭキャッシュブロックＳＣＢを単位としてデータの転送が行なわれる。ＳＲＡＭキャッシュブロックＳＣＢを単位として、ＳＲＡＭキャッシュヒット／ミスが判定される。データが、プロセサバス１１（図３参照）を介してプロセサ１０へ転送される。
【００４８】
図５は、プロセサアドレスとＤＲＡＭキャッシュブロック、ＳＲＡＭキャッシュブロックおよびデータの対応関係を示す図である。プロセサアドレスは、ＤＲＡＭタグアドレスＤＴＧ、ＳＲＡＭタグアドレスＳＴＧおよびメモリアドレスＭＡＤを含む。これらのＤＲＡＭタグアドレスＤＴＧ、ＳＲＡＭタグアドレスＳＴＧおよびメモリアドレスＭＡＤにより、１つのデータが指定される。ＤＲＡＭタグアドレスＤＴＧとＳＲＡＭタグアドレスＳＴＧの組により、ＳＲＡＭキャッシュブロックが指定される。ＤＲＡＭタグアドレスＤＴＧにより、ＤＲＡＭキャッシュブロックが指定される。
【００４９】
図６は、ＳＲＡＭキャッシュヒット時におけるＳＲＡＭキャッシュメモリ１２へ与えられるアドレスを概略的に示す図である。ＳＲＡＭキャッシュヒット時においては、ＳＲＡＭキャッシュメモリ１２内に、プロセサ１０がアクセス要求したデータが存在している。したがって、この場合においては、ＳＲＡＭキャッシュメモリ１２へＳＲＡＭタグアドレスＳＴＧおよびメモリアドレスＭＡＤが与えられ、ヒットしたＳＲＡＭキャッシュブロックＳＣＢ内のアクセス要求されたデータが読出される。このＳＲＡＭタグアドレスＳＴＧおよびメモリアドレスＭＡＤを、ＳＲＡＭキャッシュメモリ１２内の行および列アドレスに分割する態様は、このＳＲＡＭキャッシュメモリ１２内のメモリセルの配置により異なる。たとえば、ＳＲＡＭキャッシュブロックＳＣＢが、ＳＲＡＭキャッシュメモリ１２内の１つのワード線（１行のＳＲＡＭセル）に対応する場合、ＳＲＡＭタグアドレスＳＴＧが行アドレス、メモリアドレスＭＡＤが列アドレスとして用いられる。
【００５０】
図７は、ＳＲＡＭキャッシュミスかつＤＲＡＭキャッシュミス時のＤＲＡＭキャッシュメモリ１４へ与えられるアドレスを示す図である。図７に示すように、ＳＲＡＭキャッシュミスかつＤＲＡＭキャッシュミス時においては、ＤＲＡＭキャッシュメモリ１４へは、ＤＲＡＭタグアドレスＤＴＧおよびバーストアドレスが与えられる。このバーストアドレスは、後に説明するが、バーストアドレスカウンタから発生され、データ転送ごとにこのバーストアドレスが順次増分される。主記憶メモリ２とＤＲＡＭキャッシュメモリ１４の間では、システムバス１５を介してデータの転送が行なわれる（プロセサ内部においては、プロセサバス１１を介して）。この主記憶メモリ２に対するアクセスのためには、外部のコントロールユニットへＤＲＡＭタグアドレスＤＴＧが与えられる。外部のコントロールユニットは、このＤＲＡＭタグアドレスＤＴＧを先頭アドレスとして、バーストアドレスに従ってＤＲＡＭセルを選択してＤＲＡＭキャッシュブロックサイズのデータを順次転送する。
【００５１】
このとき、また主記憶メモリ２が、クロック信号に同期してデータの書込／読出を行なうクロック同期型ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）の場合、ＳＤＲＡＭは内部でバーストアドレスを発生するカウンタを内蔵しているため、コントロールユニットは、単にＤＲＡＭタグアドレスＤＴＧを先頭アドレスとして主記憶メモリへ与えるだけでよい。また、これに代えて、メモリ内蔵プロセサから、ＤＲＡＭタグアドレスＤＴＧおよびバーストアドレスが外部のコントロールユニットへ順次与えられてもよい。
【００５２】
図８は、ＳＲＡＭキャッシュメモリ１２とＤＲＡＭキャッシュメモリ１４の間でのデータ転送時にこれらのＳＲＡＭキャッシュメモリ１２およびＤＲＡＭキャッシュメモリ１４へ与えられるアドレスを示す図である。このデータ転送時においては、ＳＲＡＭキャッシュメモリ１２へは、ＳＲＡＭタグアドレスＳＴＧが与えられ、ＤＲＡＭキャッシュメモリ１４においては、ＤＲＡＭタグアドレスＤＴＧおよびＳＲＡＭタグアドレスＳＴＧが与えられる。これにより、ＤＲＡＭキャッシュメモリ１４からは、ＤＲＡＭキャッシュブロック内のＳＲＡＭタグアドレスＳＴＧで特定されるＳＲＡＭキャッシュブロックのデータが転送バス部１３（図３に示す転送回路１３ａを含む）を介して転送される。
【００５３】
図９は、図３に示すＳＲＡＭコントロールユニット２０の構成を概略的に示す図である。図９において、ＳＲＡＭコントロールユニット２０は、ＳＲＡＭキャッシュメモリ１４内のＳＲＡＭキャッシュブロックそれぞれについてのタグアドレスを格納するＳＲＡＭタグメモリ２０ａと、プロセサからのアクセス要求ならびにアドレス信号ＳＴＧおよびＭＡＤを受け、アクセス要求が与えられたときにＳＲＡＭタグメモリ２０ａを活性化するとともに必要な制御を行なうＳＲＡＭアクセス制御回路２０ｂと、キャッシュミス時、ＳＲＡＭタグメモリ２０ａのタグアドレスを更新するタグ更新回路２０ｃを含む。
【００５４】
ＳＲＡＭタグメモリ２０ａは、このプロセサから与えられたＳＲＡＭタグアドレスＳＴＧをそこに格納されるタグアドレスと比較し、一致するタグアドレスが格納されているかを判別し、その判別結果に従ってＳＲＡＭキャッシュヒット指示信号ＳＣＨの活性／非活性化を行なう。このＳＲＡＭタグメモリ２０ａは、たとえば内容参照メモリで構成され、与えられたＳＲＡＭタグアドレスＳＴＧを検索データとして、その記憶内容との一致／不一致を判別する。
【００５５】
ＳＲＡＭキャッシュヒット指示信号ＳＣＨが活性状態のとき、ＳＲＡＭアクセス制御回路２０ｂは、与えられたアドレス信号ＳＴＧおよびＭＡＤに従ってＳＲＡＭキャッシュメモリへアクセスし、対応のデータを読出してプロセサへ与える。ＳＲＡＭキャッシュヒット指示信号ＳＣＨの非活性化時、すなわちＳＲＡＭキャッシュミス時においては、ＳＲＡＭアクセス制御回路２０ｂは、データ転送に必要な制御を行なう。
【００５６】
タグ更新回路２０ｃは、このＳＲＡＭキャッシュヒット指示信号ＳＣＨの非活性化時、たとえばＬＲＵ論理（Least Recently Used 論理）に従って、最も古く用いられたタグアドレスを、この与えられたタグアドレスＳＴＧで置換える。
【００５７】
図１０は、図３に示すＤＲＡＭコントロールユニット２４の構成を概略的に示す図である。図１０において、ＤＲＡＭコントロールユニット２４は、ＤＲＡＭキャッシュメモリに格納されたＤＲＡＭキャッシュブロックの各タグアドレスを格納し、活性化時与えられたＤＲＡＭタグアドレスＤＴＧと格納されたＤＲＡＭタグアドレスとの一致／不一致を検出するＤＲＡＭタグメモリ２４ａと、このＤＲＡＭタグメモリ２４ａからのＤＲＡＭキャッシュヒット指示信号ＤＣＨに従って、主記憶メモリまたはＳＲＡＭキャッシュメモリとの間でデータ転送を行なうための必要な制御を行なう転送制御回路２４ｂと、ＤＲＡＭタグメモリ２４ａからのＤＲＡＭキャッシュヒット指示信号ＤＣＨの非活性化時このＤＲＡＭタグメモリ２４内のタグアドレスを新たに与えられたＤＲＡＭタグアドレスＤＴＧで書換えるタグ更新回路２４ｃを含む。
【００５８】
ＤＲＡＭタグメモリ２４ａは、ＳＲＡＭコントロールユニット（図９参照）からの図示しない活性化信号に従って活性化され、ＳＲＡＭキャッシュヒット指示信号ＳＣＨの非活性化時、与えられたＤＲＡＭタグアドレスＤＴＧと格納されたＤＲＡＭタグアドレスの比較を行なう。このＤＲＡＭタグメモリ２４ａも、また、内容参照メモリで構成され、与えられたＤＲＡＭタグアドレスＤＴＧを検索データとして検索動作を行なう。
【００５９】
転送制御回路２４ｂは、活性化時ＤＲＡＭキャッシュメモリと主記憶メモリとの間でのデータ転送を行なうための主記憶転送制御回路２４ｂａと、この主記憶転送制御回路２４ｂａの制御の下に動作し、与えられたＤＲＡＭタグアドレスＤＴＧを初期値としてデータ転送ごとにカウント動作を行なって、ＤＲＡＭキャッシュメモリに対するアドレス信号を生成するバーストアドレスカウンタ２４ｂｂと、活性化時、ＳＲＡＭキャッシュメモリとＤＲＡＭキャッシュメモリとの間でのデータ転送を行なうためのキャッシュ間転送制御回路２４ｂｃを含む。
【００６０】
主記憶転送制御回路２４ｂａは、ＤＲＡＭキャッシュメモリとＤＲＡＭＩ／Ｏユニットを介してのインタフェースユニットとのデータ転送およびＤＲＡＭキャッシュメモリ内の行／列選択動作を制御するとともに、外部に設けられたコントロールユニットへデータ転送を指示する制御信号を与える。バーストアドレスカウンタ２４ｂｂのアドレスはＤＲＡＭキャッシュメモリへ与えられ、ＤＲＡＭキャッシュメモリの行／列選択のために用いられる。
【００６１】
キャッシュ間転送制御回路２４ｂｃは、ＤＲＡＭキャッシュメモリと転送バス部に含まれるＤＲＡＭ転送回路の間のデータ転送を制御する。主記憶転送制御回路２４ｂａは、図示しない経路を介してＳＲＡＭコントロールユニットの制御の下に活性化される。キャッシュ間転送制御回路２４ｂｃは、ＳＲＡＭキャッシュミスかつＤＲＡＭキャッシュヒット時およびＳＲＡＭキャッシュミス時かつＤＲＡＭキャッシュミス時に活性化される。次にこの図１０に示すＤＲＡＭコントロールユニット２４の動作を図１１に示すフロー図を参照して説明する。
まず、ＤＲＡＭ転送制御回路２４ｂおよびＤＲＡＭタグメモリ２４ａは、ＳＲＡＭコントロールユニットからＳＲＡＭキャッシュミスが発生したことを知らされたか否かを識別する（ステップＳ２０）。図１０においては、この報知のための信号としては単にＳＲＡＭキャッシュヒット指示信号ＳＣＨのみ示すが、プロセサからのアクセス要求があったときに、このＳＲＡＭキャッシュヒット指示信号ＳＣＨがイネーブルされてキャッシュヒット／ミスを示す状態に設定されてＤＲＡＭコントロールユニット２４へ与えられる。プロセサからのアクセス要求がない場合には、このＤＲＡＭコントロールユニット２４へ与えられるキャッシュヒット指示信号ＳＣＨはディスエーブルされＳＲＡＭキャッシュヒット／ミスは示さず、このＤＲＡＭコントロールユニットは、非動作状態（非活性状態）に置かれる。
【００６２】
ＳＲＡＭキャッシュミスが発生したとき（キャッシュヒット指示信号ＳＣＨが非活性状態）、ＤＲＡＭタグメモリ２４ａが活性化され、ＳＲＡＭコントロールユニットまたはプロセサから与えられたＤＲＡＭタグアドレスＤＴＧと格納されたＤＲＡＭタグアドレスの比較を行なう（ステップＳ２１）。
【００６３】
この与えられたＤＲＡＭタグアドレスＤＴＧが、ＤＲＡＭタグメモリ２４ａ内に格納されたタグアドレスと一致する場合には、ＤＲＡＭキャッシュヒット指示信号ＤＣＨが活性状態とされ、ＤＲＡＭキャッシュメモリ内にプロセサがアクセス要求するデータが存在することを示す。ＤＲＡＭキャッシュヒット指示信号ＤＣＨの活性化に応答して、キャッシュ間転送制御回路２４ｂｃが活性化され（先に、ＳＲＡＭコントロールユニットの制御の下にイネーブル状態とされている）、ＤＲＡＭキャッシュメモリにおける、対応のキャッシュブロックの選択、選択キャッシュブロックデータの転送バス部の内部転送バスへの転送および転送回路の活性化が行なわれる（ステップＳ２２）。
【００６４】
このキャッシュ間転送制御回路２４ｂｃは、ＤＲＡＭキャッシュメモリ１４に結合される内部転送バス１３ｂから転送回路１３ａ（図３参照）へのデータ転送が完了すると、転送回路１３ａ内にＤＲＡＭキャッシュブロックのデータが転送されたことを示す信号をＳＲＡＭコントロールユニット２０へ知らせる（ステップＳ２３）。この後は、先の図９に示すＳＲＡＭアクセス制御回路２０ｂが、ＳＲＡＭキャッシュメモリの対応のデータブロックの選択、転送バス部１３内の転送回路の制御およびプロセサへのデータ転送を実行する。
【００６５】
一方、ステップＳ２１において、与えられたＤＲＡＭタグアドレスＤＴＧが、ＤＲＡＭタグメモリ２４ａ内に格納されたタグアドレスのいずれとも一致しない場合には、ＤＲＡＭヒット指示信号ＤＣＨが非活性状態とされる。この場合には、主記憶転送制御回路２４ｂａが活性化され、またバーストアドレスカウンタ２４ｂｂに、ＤＲＡＭタグアドレスＤＴＧが初期値としてセットされる。この主記憶転送制御回路２４ｂａは、活性化されると、外部に設けられたコントロールユニットへデータ転送を指示するとともに、このＤＲＡＭタグアドレスＤＴＧを与える。主記憶転送制御回路２４ｂａは、ＤＲＡＭＩ／Ｏユニットを介して与えられるデータを、このバーストアドレスカウンタ２４ｂｂからのアドレス信号によりアドレス指定されたメモリセルへ順次書込む（ステップＳ２４）。
【００６６】
主記憶転送制御回路２４ｂａは、また、ＤＲＡＭキャッシュブロックのデータがすべて転送されたか否かを図示しないカウンタのカウント値または外部からのコントロールユニットの指示に従ってモニタする（ステップＳ２５）。ＤＲＡＭキャッシュブロックのすべてのデータが転送されると、主記憶転送制御回路２４ｂａは、キャッシュ間転送制御回路２４ｂｃへ、必要とされるＤＲＡＭキャッシュブロックのデータがすべて転送されたことを知らせる。キャッシュ間転送制御回路２４ｂｃは、この全データ転送完了指示を受けると活性化され、ステップＳ２２およびＳ２３の動作を行なう。ＤＲＡＭキャッシュメモリからＳＲＡＭキャッシュメモリおよびプロセサへのデータ転送動作は先の説明と同じである。
【００６７】
図１２は、主記憶転送制御回路２４ｂａに含まれるプロセサデータ転送制御部の構成を概略的に示す図である。図１２において、主記憶転送制御回路２４ｂａは、プロセサデータ転送制御部として、プロセサバス１１およびＤＲＡＭＩ／Ｏユニット２６を介して転送されるデータの数をカウントする転送データ数カウンタ３４ａと、プロセサ１０から与えられたメモリアドレスＭＡＤを格納するメモリアドレスレジスタ３４ｂと、転送データ数カウンタ３４ａのカウント値とメモリアドレスレジスタ３４ｂの格納するメモリアドレスＭＡＤが一致したか否かを検出する一致検出回路３４ｃを含む。一致検出回路３４ｃは、一致検出時、プロセサ１０へデータサンプリング指示を与え、プロセサ１０に対し、このプロセサバス１１に与えられたデータを取込むことを指示する。
【００６８】
主記憶メモリ２からＤＲＡＭキャッシュメモリ１４へのデータ転送時、ＤＲＡＭタグアドレスが指定するＤＲＡＭキャッシュブロックの先頭アドレスから順次データが選択される。この場合、ＤＲＡＭキャッシュブロック内のデータの位置は、アドレスＳＴＧおよびＭＡＤの組合せにより指定される。したがって、転送データ数カウンタ３４ａのカウント値が、メモリアドレスレジスタ３４ｂに格納されたＳＲＡＭタグアドレスＳＴＧとメモリアドレスＭＡＤの組合せに等しくなった場合には、プロセサがアクセス要求したデータが与えられたことを示す。この主記憶メモリからＤＲＡＭのデータ転送時に、一致検出回路３４ｃにより一致検出を行なうことにより、プロセサがアクセス要求したデータを検出して、ＤＲＡＭキャッシュメモリ１４へのデータ転送と並行してプロセサ１０へデータを転送することができ、プロセサ１０のウエイト時間を短縮することができる。
【００６９】
なお、上述の説明においては、すべて主記憶メモリ２からＤＲＡＭキャッシュメモリ１４へのデータ転送およびＤＲＡＭキャッシュメモリ１４からＳＲＡＭキャッシュメモリ１２へのデータ転送を説明している。しかしながら、いわゆる「コピーバック」動作が行なわれるキャッシュシステムの場合、まずＤＲＡＭキャッシュメモリ１４からＳＲＡＭキャッシュメモリ１２へのデータ転送前に、ＳＲＡＭキャッシュメモリ１２からＤＲＡＭキャッシュメモリ１４へのデータ転送が行なわれる。したがって、主記憶メモリ２からＤＲＡＭキャッシュメモリ１４へのデータ転送時コピーバックを行なうためには、ＳＲＡＭキャッシュメモリ１２からＤＲＡＭキャッシュメモリ１４へのデータ転送、およびＤＲＡＭキャッシュメモリ１４から主記憶メモリ２へのデータ転送動作が必要となる。この構成は、先の説明において、転送バス部１３の転送回路１３ａを双方向転送回路で構成することにより実現される。
【００７０】
図１３は、ＳＲＡＭキャッシュメモリ１２とＤＲＡＭキャッシュメモリ１４の間のデータ転送を行なう部分の構成を示す図である。図１３において、ＳＲＡＭキャッシュメモリ１２は、同時に選択状態とされて、内部転送バス１３ｃに接続される複数のＳＲＡＭビット線対ＳＢＬ０〜ＳＢＬＮを含む。図１３においては、これらのＳＲＡＭビット線対ＳＢＬ０〜ＳＢＬＮと交差する１つのＳＲＡＭワード線ＳＷＬを代表的に示す。
【００７１】
ＤＲＡＭキャッシュメモリ１４は、内部転送バス１３ｂに同時に接続される複数のＤＲＡＭビット線対ＤＢＬ０〜ＤＢＬＮを含む。これらのＤＲＡＭビット線対ＤＢＬ０〜ＤＢＬＮと交差するように、１つのＤＲＡＭワード線ＤＷＬが代表的に示される。転送回路１３ａは、内部転送バス１３ｂに読出されたデータをＳＲＡＭキャッシュメモリ部へ転送するためのＤＲＡＭ転送回路１３ａａと、このＤＲＡＭ転送回路１３ａａから転送されたデータをＳＲＡＭキャッシュメモリ１２の各ＳＲＡＭビット線対ＳＢＬ０〜ＳＢＬＮへ内部転送バス１３ｃを介して転送するＳＲＡＭ転送回路１３ａｂを含む。
【００７２】
ＤＲＡＭ転送回路１３ａａおよびＳＲＡＭ転送回路１３ａｂは、バスドライバおよびラッチ回路を含む。ＤＲＡＭ転送回路１３ａａは、ＤＲＡＭコントロールユニット（図３参照）により動作が制御され、ＳＲＡＭ転送回路１３ａｂは、ＳＲＡＭコントロールユニット（図３参照）によりその動作が制御される。転送回路１３ａａおよび１３ａｂは、双方向にデータを転送する機能を備えてもよい（コピーバック動作を実現するため）。
【００７３】
この内部転送バス１３ｃおよび１３ｂに同時に結合されるＳＲＡＭビット線対ＳＢＬ０〜ＳＢＬＮおよびＤＲＡＭビット線対ＤＢＬ０〜ＤＢＬＮの数は、ＳＲＡＭキャッシュブロックのサイズにより決定される。
【００７４】
図１４は、このＳＲＡＭキャッシュメモリ１２とＤＲＡＭキャッシュメモリ１４の間での１回のキャッシュミス時のデータ転送時に転送されるデータを模式的に示す図である。図１４において、ＳＲＡＭキャッシュメモリ１２において、１つのＳＲＡＭワード線ＳＷＬが選択状態とされ、またＤＲＡＭキャッシュメモリ１４においても、１つのＤＲＡＭワード線ＤＷＬが選択状態とされる。このワード線ＳＷＬおよびＤＷＬに接続されるメモリセルの間でデータが、転送回路１３を介して転送される。したがって、この図１４に示す構成においては、ＤＲＡＭキャッシュブロックは、複数のＤＲＡＭワード線ＤＷＬに接続されるＤＲＡＭセルを含む。この場合には、１本のＳＲＡＭワード線ＳＷＬに接続されるＳＲＡＭセルの数と、１本のＤＲＡＭワード線ＤＷＬに接続されるＤＲＡＭセルの数は同じとなり、１つのＳＲＡＭキャッシュブロックを構成する。
【００７５】
図１５は、ＳＲＡＭキャッシュブロックの構成の他の例を概略的に示す図である。この図１５に示す構成において、ＤＲＡＭキャッシュメモリ１４においては、同時に４本のＤＲＡＭワード線ＤＷ１〜ＤＷ４が選択状態とされ、これらのＤＲＡＭワード線ＤＷ１〜ＤＷ４に接続されるメモリセルが同時に内部転送バス１３に結合される。ＳＲＡＭキャッシュメモリ１２においては、１つのＳＲＡＭワード線ＳＷＬが選択状態へ駆動される。この１つのＳＲＡＭワード線ＳＷＬに対し、４つのＤＲＡＭワード線ＤＷＬ１〜ＤＷＬ４上に接続されるメモリセルのデータが転送される。したがって、この構成においては、１つのＳＲＡＭキャッシュブロックのサイズが、４本のＤＲＡＭワード線に接続されるメモリセルの数となる。
【００７６】
このＤＲＡＭキャッシュメモリ１４内において、同時に複数のＤＲＡＭワード線を選択状態へ駆動する構成は、以下のようにして実現される。通常、ＤＲＡＭはブロック分割されており各ブロックに対しロウデコード回路（行選択回路）が設けられている。したがって、複数のブロックでロウデコード回路により、対応のワード線を同時に選択状態へ駆動することができる。このとき、Ａ個のＤＲＡＭアレイブロックがＤＲＡＭキャッシュメモリ１４内に設けられている場合、Ｂ個のメモリアレイブロックを単位としてこのアレイブロックをグループ化する。各グループに対し１行（１本のワード線）のメモリセル数に等しいビット幅の内部転送バスを設ける。この構成に従えば、各グループにおいて１つのワード線を選択し、対応の内部転送バスに１行のメモリセルデータを転送することができる。
【００７７】
また、この図１５に示す構成に代えて、逆に１本のＤＲＡＭワード線上のメモリセルのデータを複数本のＳＲＡＭワード線に転送することもできる。ＳＲＡＭキャッシュメモリは、ＤＲＡＭキャッシュメモリよりも高速であり、ＤＲＡＭワード線の各部分のデータ転送に合せてＳＲＡＭキャッシュメモリ内で順次ＳＲＡＭワード線を選択状態へ駆動することができる。
【００７８】
また、この図１５および図１４に示す構成と異なり、ワード線単位でのデータ転送でなくてもよい。内部転送バス１３のバス幅およびＳＲＡＭキャッシュブロックのサイズに応じて適当な構成が用いられればよい。
【００７９】
図１６は、ＤＲＡＭキャッシュメモリの他の構成を示す図である。図１６において、ＤＲＡＭキャッシュメモリ１４は、各々がＳＲＡＭキャッシュメモリ１２と同じ記憶容量を有する複数のメモリバンク♯０〜♯Ｍを含む。これらのメモリバンク♯０〜♯Ｍは、互いに独立に活性／非活性状態へ駆動することができる。すなわち、１つのメモリバンクにおいてワード線を選択状態としたとき、別のメモリバンクにおいて、ワード線を選択状態から非選択状態または非選択状態から選択状態へ駆動することができる。これらのメモリバンク♯０〜♯Ｍは、共通に、内部転送バス１３に結合される。
【００８０】
この図１６に示す構成においては、メモリバンク♯０〜♯Ｍは、各々が、ＳＲＡＭキャッシュメモリ１２と同じ記憶容量を備えている。したがって、１つのＤＲＡＭキャッシュブロックを、複数のメモリバンクにわたって格納する。１つのＤＲＡＭメモリバンクにおいては、異なるＤＲＡＭキャッシュブロックのＳＲＡＭキャッシュブロックデータを格納する。この構成の場合、ＤＲＡＭタグアドレスＤＴＧは、バンクアドレスを含む。ＤＲＡＭタグアドレスの構成は、バンクの数、およびＤＲＡＭキャッシュブロックのサイズおよびＳＲＡＭキャッシュブロックのサイズにより異なる。ＤＲＡＭキャッシュメモリ１４からＳＲＡＭキャッシュメモリ１２へのデータ転送時において、１つのメモリバンクが選択されて、１つの選択されたメモリバンク内のＳＲＡＭキャッシュブロックが選択されて内部転送バス１３を介してＳＲＡＭキャッシュメモリ１２へ転送される。主記憶メモリ２とＤＲＡＭキャッシュメモリ１４との間のデータ転送時、このメモリバンクを、インタリーブ対応で活性状態へ駆動する。すなわち、１つのメモリバンクに対し主記憶メモリからデータ転送が行なわれているとき、別のメモリバンクを選択状態へ駆動する。これにより、連続的に主記憶メモリからＤＲＡＭキャッシュメモリ１４へデータ転送を行なうことができ、ＳＲＡＭキャッシュミスおよびＤＲＡＭキャッシュミス時のペナルティ（プロセサの待ち時間）を小さくすることができる。
【００８１】
また、このバンク構成の場合、主記憶メモリ２からメモリバンクへのデータ転送時、プロセサがアクセス要求したデータを含むＳＲＡＭキャッシュブロックが１つのメモリバンクへ転送された場合、このアクセス要求されたデータを含むＳＲＡＭキャッシュブロックを、このメモリバンクから内部転送バス部１３を介してＳＲＡＭキャッシュメモリ１２へ転送しかつ同時に、並行して主記憶メモリ２から別のメモリバンクへ、対応のＤＲＡＭキャッシュブロックの残りのＳＲＡＭキャッシュブロックデータを転送することができ、高速アクセスが可能となる。
【００８２】
なお、上述の説明においては、高速メモリとしてＳＲＡＭ、低速かつ大記憶容量のメモリとしてＤＲＡＭを用いている。しかしながら、メモリセルを構成するトランジスタの数が異なり、高集積化に適したメモリであれば、これらのＳＲＡＭおよびＤＲＡＭに代えて用いることができる。また、データ転送は双方向的に行なわれてもよい。
【００８３】
【発明の効果】
以上のように、この発明に従えば、高速動作が可能な第１のメモリと、低速であるものの高集積化が可能な第２のメモリとを、ビット幅の広い転送バスを介して相互結合してキャッシュメモリとしてプロセサ内部に設けたため、キャッシュミス時におけるプロセサのデータ待ち時間を低減することが可能となり、プロセサの処理性能が改善される。また、第２のメモリは、高集積化が可能であり、このメモリ内蔵プロセサの面積を増加させることなくキャッシュの大記憶容量化が可能となる。また、第１のメモリと第２のメモリとを、幅の広い転送バスで結合していることにより、この第１および第２のメモリ間のデータ転送を高速に行なうことができる。
【００８４】
請求項１のメモリ内蔵プロセサにおいては、第１および第２のメモリが階層的なキャッシュシステムを構成しており、第１のメモリでのキャッシュミスかつ第２のメモリでのキャッシュヒット時、転送手段を介して情報を第１と第２のメモリの間で転送している。この転送手段は、バス幅が演算処理器に結合されるバスの幅よりも広い。したがって、大量のデータを一括して転送することができ、第１のメモリのキャッシュミス時のペナルティ（ウエイト時間）を低減することができる。
【００８５】
また、第２のメモリの１ビットセルのトランジスタ数は第１のメモリのそれよりも小さく、第２のメモリの集積度は第１のメモリよりも高くすることができ、応じて第２のメモリの記憶容量を小占有面積で大きくすることができる。これにより、内蔵キャッシュメモリの記憶容量を大きくすることができ、等価的にヒット率を高くすることができる。
【００８６】
請求項２のメモリ内蔵プロセサにおいては、第１および第２のメモリのキャッシュミス時に初めて外部のメモリへアクセスして第２のメモリと外部メモリとの間で情報転送を行なっており、このとき併せてプロセサへも情報転送を行なっており、ミス時のウエイト時間を最小とすることができる。
【図面の簡単な説明】
【図１】  この発明に従うメモリ内蔵プロセサおよびこれを用いるシステムの構成を概略的に示す図である。
【図２】  この発明に従うメモリ内蔵プロセサの動作を示すフロー図である。
【図３】  この発明に従うメモリ内蔵プロセサの構成をより具体的に示す図である。
【図４】  この発明に従うメモリ内蔵プロセサにおけるキャッシュブロックの階層関係を概略的に示す図である。
【図５】  この発明に従うメモリ内蔵プロセサにおけるプロセサアドレスと各キャッシュブロックとの対応関係を概略的に示す図である。
【図６】  ＳＲＡＭキャッシュヒット時にＳＲＡＭキャッシュメモリへ与えられるアドレス信号を概略的に示す図である。
【図７】  ＤＲＡＭキャッシュメモリと主記憶メモリとの間でのデータ転送時にＤＲＡＭキャッシュメモリへ与えられるアドレスを概略的に示す図である。
【図８】  ＳＲＡＭキャッシュメモリとＤＲＡＭキャッシュメモリとのデータ転送時の各キャッシュメモリへ与えられるアドレスを概略的に示す図である。
【図９】  図３に示すＳＲＡＭコントロールユニットの構成を概略的に示す図である。
【図１０】  図３に示すＤＲＡＭコントロールユニットの構成を概略的に示す図である。
【図１１】  図１０に示すＤＲＡＭコントロールユニットの動作を示すフロー図である。
【図１２】  図３に示すＤＲＡＭコントロールユニットのプロセサデータ転送部の構成を概略的に示す図である。
【図１３】  この発明に従うメモリ内蔵プロセサにおけるＳＲＡＭキャッシュメモリとＤＲＡＭキャッシュメモリ間のデータ転送部の構成を概略的に示す図である。
【図１４】  この発明に従う、キャッシュメモリ間データ転送時の選択メモリセルの対応関係を概略的に示す図である。
【図１５】  キャッシュメモリ間のデータ転送時のキャッシュ内メモリセルの対応関係を概略的に示す図である。
【図１６】  ＤＲＡＭキャッシュメモリの他の構成を概略的に示す図である。
【図１７】  従来のＳＲＡＭセルの構成を概略的に示す図である。
【図１８】  従来のＤＲＡＭセルの構成を概略的に示す図である。
【符号の説明】
１  メモリ内蔵プロセサ、２  主記憶メモリ、１０  プロセサ、１１  プロセサバス、１２  ＳＲＡＭキャッシュメモリ、１３  転送バス部、１４  ＤＲＡＭキャッシュメモリ、１３ａ  転送回路、１３ｂ，１３ｃ  内部転送バス、２０ＳＲＡＭコントロールユニット、２２  ＳＲＡＭＩ／Ｏユニット、２４  ＤＲＡＭコントロールユニット、２６  ＤＲＡＭＩ／Ｏユニット。
【図１】
0003789998.tif 000002
【図２】
0003789998.tif 000003
【図３】
0003789998.tif 000004
【図４】
0003789998.tif 000005
【図５】
0003789998.tif 000006
【図６】
0003789998.tif 000007
【図７】
0003789998.tif 000008
【図８】
0003789998.tif 000009
【図９】
0003789998.tif 000010
【図１０】
0003789998.tif 000011
【図１１】
0003789998.tif 000012
【図１２】
0003789998.tif 000013
【図１３】
0003789998.tif 000014
【図１４】
0003789998.tif 000015
【図１５】
0003789998.tif 000016
【図１６】
0003789998.tif 000017
【図１７】
0003789998.tif 000018
【図１８】
0003789998.tif 000019