(57)【特許請求の範囲】
【請求項１】
入力データを順次格納するライトバッファ回路と、
前記ライトバッファ回路に格納された前記入力データを、前記入力データの単位で順次格納する複数のライトレジスタと、
リフレッシュ動作が定期的に必要とされる複数のメモリセルを有し、前記複数のライトレジスタに格納された前記入力データを並列的に入力して保持するメモリブロックと、
リフレッシュ期間が開始されたとき、前記ライトバッファ回路へのデータの入力を継続するとともに、前記ライトバッファ回路のデータが前記複数のライトレジスタに格納されるのを待って、前記メモリブロックへ前記入力データを書き込む動作を中断し、リフレッシュ期間が終了されたとき、前記ライトレジスタに格納された前記入力データを前記メモリブロックに書き込む動作を再開する制御回路とを有する、半導体集積回路。
【請求項２】
上記メモリブロックは更に、複数のワード線と、複数のデータ線とを含み、
上記複数のメモリセルの各々は、１つのメモリセルが１つのワード線と１つのデータ線とに結合される様に上記複数のワード線と上記複数のデータ線とに結合され、容量素子と選択トランジスタとを含み、
上記選択トランジスタは、対応するワード線に結合された選択端子と、対応するデータ線に結合されたデータ入出力端子とを有するものであることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
上記ライトバッファ回路は各々、
複数のスタティク型メモリセルと複数のワード線と複数の相補データ線対とを含むメモリアレイと、
所定のワード線をアドレス信号に応答して選択するアドレスデコーダーと、
選択された複数個のメモリセルのデータを増幅するセンスアンプと、
増幅されたデータを出力するデータ出力回路と、を有するものであることを特徴とする請求項２記載の半導体集積回路。
【請求項４】
上記複数のスタティク型メモリセルの各々は、その入出力端子が交差結合された１対のインバータを含むものであることを特徴とする請求項３記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリブロックを有する半導体集積回路、更にはリードアクセスの要求に対するデータリード動作のスループットを向上させる技術に関し、例えばロジック回路と共にＤＲＡＭを混載したキャッシュメモリ用の半導体集積回路に適用して有効な技術に関する。
【背景技術】
【０００２】
情報参照の時間的・空間的局所性に鑑みた記憶装置の記憶階層は、一般にアクセス速度と記憶容量の異なる複数レベルのメモリによって構成される。メインメモリにはビット単価の安いＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）が用いられ、プロセッサ若しくはＣＰＵ（セントラル・プロセッシング・ユニット）に近いレベルにはＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）などによって構成されるキャッシュメモリが配置される。キャッシュメモリはプロセッサが最近利用したデータに対して時間的・空間的に局在するデータを保持し、下位レベルからのデータリード動作よりもスループットを向上させることを可能にするものである。
【０００３】
本発明者は、本発明を完成した後、特開平２−２９７７９１号及び特開平６−１９５２６１号の存在について知らされた。これらの文献は、ダイナミック型メモリ（ＤＲＡＭ）とスタティック型メモリ（ＳＲＡＭ）とを１チップの半導体基板上に有し、上記ＤＲＡＭ及び上記ＳＲＡＭをキャッシュメモリとして利用することについて述べている。しかしながら、本発明の目的及びその構成については、それらには述べられていない。
【０００４】
【特許文献１】特開平２−２９７７９１号公報
【特許文献２】特開平６−１９５２６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明者は比較的アクセス速度の遅いＤＲＡＭモジュールをロジック回路と共に多数混載してこれをキャッシュメモリに利用可能にすることについて検討した。例えば、レベル１（Ｌ１）及びレベル２（Ｌ２）キャッシュメモリを内蔵したマイクロプロセッサのレベル３（Ｌ３）キャッシュメモリ等に用いることができるＤＲＡＭ混載の半導体集積回路を検討した。
【０００６】
本発明者の検討によれば、多数のＤＲＡＭモジュールを混載して並列動作可能とすることによって見掛け上メモリ・リードサイクルを短くしようとするとき、並列動作によるデータ出力動作等の競合回避を考慮しなければならない。この場合、データの競合回避のためにデータバッファを採用しようとするとき、データ競合を生じていない場合にもデータバッファリングを行ったのでは無駄のあることが見出された。
【０００７】
プロセッサによるデータ処理効率を考慮すれば、プロセッサのリードアクセスに応答するリード動作のスループット向上が第一義である。このとき、キャッシュメモリのリード動作にはプロセッサによるライトアクセスに伴うコピーバック（若しくはライトバック）のためのリード動作もあり、そのようなリード動作では殆どの場合高いスループットは要求されない。即ち、コピーバックは、キャッシュミスに際してダーティーなキャッシュラインをリプレースするためにそのデータをメインメモリに退避させる動作だからである。したがって、キャッシュメモリとしての利用を考慮するときは、リードデータのスループット向上に対してもリードデータの用途に応じて軽重の差を付けられるようにしてロジック回路の論理規模が無駄に拡大しないようにすることの必要性が本発明者によって明らかにされた。
【０００８】
また、プロセッサのライトアクセスに対してはそれに応答するライト処理の高速化は左程重要ではないが、プロセッサによるデータ処理効率を考慮すれば、ライトアクセスの要求を受け付けてその動作からプロセッサを短時間で解放する事が必要である。特に、ＤＲＡＭの場合にはリフレッシュインターバル毎に記憶情報のリフレッシュ動作が必要であり、これによってライトアクセス要求の受付が遅れないようにしなければならない。
【０００９】
本発明の目的は、メモリブロックの並列動作によるデータ競合を回避するためにデータバッファを採用した構成においてリード動作のスループットを改善することができる半導体集積回路を提供することにある。
【００１０】
本発明の別の目的は、ロジック回路の論理規模が無駄に拡大しないようにリード動作のスループットを改善することができる半導体集積回路を提供することにある。
【００１１】
本発明のその他の目的は、内部のメモリ動作状態に拘わらずにライトアクセスの要求を受け付ける事が容易な半導体集積回路を提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
〔１〕メモリブロックの並列動作によるデータ競合を回避するためにリードバッファを採用し、リード動作のスループットを改善する。そのための構成として、半導体集積回路は、並列動作可能な複数個のメモリブロック（ＢＮＫ０〜ＢＮＫ７）と、外部からライトデータを入力可能であって外部へリードデータを出力可能な外部インタフェース手段（Ｉ／Ｆ１）と、前記メモリブロックから読み出されたリードデータを前記外部インタフェース手段から外部に出力不可能な状態に呼応して保持する事が可能なリードバッファ（ＲＢ０〜ＲＢ３）と、前記出力不可能な状態が解消されているとき前記メモリブロックから読み出されたリードデータ又は前記リードバッファから読み出されたリードデータを選択して前記外部インタフェース手段に与える選択手段（４０，４１）と、を有する。
【００１５】
上記手段によれば、並列動作可能なメモリブロックの一つのリードデータが外部インタフェース手段から外部に出力されているとき、他のメモリブロックのリード動作が行われると、このリードデータは外部出力の点でリソース競合を生ずることになるのでリードバッファに一旦格納され、先のデータ出力動作が終了された後、リードバッファから外部に出力可能にされる。したがって、リードデータの出力動作でリソース競合を生ずる事になるようなリードアクセス要求があってもその要求を待たせずにリード動作を開始でき、リソース競合の虞が無くなればバッファから即座にリードデータを外部に出力でき、この点においてリードデータ出力動作のスループットを向上させる事が可能になる。
【００１６】
メモリブロックからデータが読み出されたとき前記リソース競合が無ければ、リードデータはリードバッファを介することなく直接外部インタフェース手段から外部に出力されるから、データ競合を生じていない場合にも一旦データをバッファリングするような無駄を回避でき、この点においてリードデータ出力動作のスループット向上に寄与する。
【００１７】
リードバッファはメモリブロックに比べて小容量・高速のメモリ等によって構成すればよい。例えばメモリブロックをＤＲＡＭモジュールで構成するとき、リードバッファをＳＲＡＭモジュールで構成すればよい。
【００１８】
上記構成を制御の観点から述べれば、半導体集積回路は、並列動作可能な複数個のメモリブロック（ＢＮＫ０〜ＢＮＫ７）と、前記メモリブロックから読み出されたリードデータを保持する事が可能なリードバッファ（ＲＢ０〜ＲＢ３）と、前記リードバッファから出力されるリードデータ及び前記メモリブロックから出力されるリードデータを外部へ出力可能な外部インタフェース手段（Ｉ／Ｆ１）と、前記メモリブロックから読み出されたリードデータを前記外部インタフェース手段から外部に出力不可能な状態に呼応して当該リードデータを前記リードバッファに保持させ、前記出力不可能な状態が解消されているとき前記メモリブロックから読み出されたリードデータ又は前記リードバッファから読み出されたリードデータを前記外部インタフェース手段から出力させる制御手段（ＭＣＮＴ）と、を有する。
【００１９】
〔２〕内部のメモリ動作状態に拘わらずに外部からのライトアクセスの要求を容易に受け付け可能にするために、半導体集積回路は、並列動作可能な複数個のメモリブロック（ＢＮＫ０〜ＢＮＫ７）と、外部からライトデータを入力可能な外部インタフェース手段（Ｉ／Ｆ１）と、前記外部インタフェース手段に入力されたライトデータを入力して保持し、メモリブロックがライト動作可能にされた後にライトデータをメモリブロックに供給するライトバッファ（ＷＢ０〜ＷＢ３）と、を有する。
【００２０】
記憶情報のリフレッシュやリード動作などメモリブロックの内部動作中に、それに対するライトアクセスの要求があっても、ライトバッファにライトデータを予めバッファリングする事ことができるから、ライトアクセスを行うプロセッサなどをライトアクセス動作から短時間で解放する事が可能になる。プロセッサ等によるデータ処理効率を考慮したとき、プロセッサのライトアクセスに対してはそれに応答するメモリ側でのライト処理の高速化は左程重要ではないが、上記より、プロセッサのライトアクセス要求を待たせないので、システム全体のデータ処理効率の向上に寄与する。
【００２１】
ライトバッファはメモリブロックに比べて小容量・高速のメモリ等によって構成すればよく、上記同様、例えばメモリブロックをＤＲＡＭモジュールで構成するとき、ライトバッファをＳＲＡＭモジュールで構成すればよい。
【００２２】
上記構成を制御の観点を主体に述べれば、半導体集積回路は、外部からライトデータを入力可能な外部インタフェース手段（Ｉ／Ｆ１）と、前記外部インタフェース手段に入力されたライトデータを入力するライトバッファ（ＷＢ０〜ＷＢ３）と、前記ライトバッファからライトデータが供給される複数個のメモリブロック（ＢＮＫ０〜ＢＮＫ７）と、外部からのアクセス要求に応答して外部インタフェース手段に供給されるライトデータを前記ライトバッファに格納させ、アクセス対象メモリブロックがライト動作可能にされるのを待ってライトデータをライトバッファからメモリブロックに供給させる制御手段（ＭＣＮＴ）と、を有する。
【００２３】
〔３〕上記リードバッファとライトバッファの双方の構成を兼ね備えた半導体集積回路は、並列動作可能な複数個のメモリブロック（ＢＮＫ０〜ＢＮＫ７）と、外部からライトデータを入力可能であって外部へリードデータを出力可能な外部インタフェース手段（Ｉ／Ｆ１）と、前記外部インタフェース手段に入力されたライトデータを入力して保持し、メモリブロックがライト動作可能にされた後にライトデータをメモリブロックに供給するライトバッファ（ＷＢ０〜ＷＢ３）と、前記メモリブロックから読み出されたリードデータを前記外部インタフェース手段から外部に出力不可能な競合状態に応答して保持する事が可能なリードバッファ（ＲＢ０〜ＲＢ３）と、前記出力不可能な競合状態が解消されているとき前記メモリブロックから読み出されたリードデータ又は前記リードバッファから読み出されたリードデータを選択して前記外部インタフェース手段（４０，４１）に与える選択手段と、を有する。
【００２４】
〔４〕下位レベル及び上位レベルの双方の記憶階層に接続可能なキャッシュメモリとしての用途を想定する。このとき、半導体集積回路は、並列動作可能な複数個のメモリブロック（ＢＮＫ０〜ＢＮＫ７）と、外部からライトデータを入力可能であって外部へリードデータを出力可能な第１の外部インタフェース手段（Ｉ／Ｆ１）と、外部からライトデータを入力可能であって外部へリードデータを出力可能な第２の外部インタフェース手段（Ｉ／Ｆ２）とを有する。更に、半導体集積回路は、前記第１又は第２の外部インタフェース手段に入力されたライトデータを入力して保持し、メモリブロックがライト動作可能にされた後にライトデータをメモリブロックに供給するライトバッファ（ＷＢ０〜ＷＢ３）、前記第２の外部インタフェース手段から出力すべきリードデータの保持と、前記第１の外部インタフェース手段から出力すべきリードデータであって当該第１の外部インタフェース手段から出力不可能な競合状態にあるリードデータの保持とを行うことが可能なリードバッファ（ＲＢ０〜ＲＢ３）と、前記出力不可能な競合状態が解消されているとき前記メモリブロックから読み出されたリードデータ又は前記リードバッファから読み出されたリードデータを選択して前記第１の外部インタフェース手段に与える選択手段（４０，４１）と、を有する。
【００２５】
この構成において、第１の外部インタフェース手段は上位の記憶階層に接続され、第２の外部インタフェース手段は下位の記憶階層に接続される。プロセッサのリード・ライトアクセス要求に対する前記リードバッファ及びライトバッファの基本的な作用は上記同様である。特に、第２の外部インタフェース手段を介する下位記憶階層へのリードデータの出力は、リードバッファを介するデータ出力だけになる。これは、下位記憶階層へのリードデータ出力として、プロセッサによるライトアクセスに伴うコピーバック（若しくはライトバック）のためのリード動作を想定するからである。コピーバックは、キャッシュミスに際してダーティーなキャッシュラインをリプレースするためにそのデータをメインメモリに退避させる動作だから、そのようなリード動作では殆どの場合高いスループットは要求されないので、リードバッファを迂回して直接リードデータを第２の外部インタフェース手段から出力可能にするデータパスやそのためのロジック回路を省いて、回路の論理規模が無駄に拡大しないようにしている。
【００２６】
前記半導体集積回路をマルチプロセッサシステムに適用することを考慮すると、下位の記憶階層側にも別のプロセッサが接続される事になり、当該別のプロセッサのアクセスにもその半導体集積回路が動作される場合が想定される。これに対処するには、前記第１及び第２の外部インタフェース手段は、夫々個別にメモリブロックに対するアクセス要求とアクセスアドレスとを外部から入力可能であればよい。
【００２７】
また、下位の記憶階層から上記半導体集積回路を通過して上位の記憶階層にリードデータが供給されるときのリソース競合を考慮すれば、前記第２の外部インタフェース手段からデータを入力して保持し、保持したデータを前記第２の外部インタフェース手段から外部に出力可能なメモリバッファ（５４）を更に有することが、キャッシュメモリとしての半導体集積回路の利便性を増す。
【００２８】
〔５〕メモリブロックが例えばＤＲＡＭで構成される場合に、ＤＲＡＭのアクセス時間の短縮は公知のページモードやスタティック・カラムモードでも達成できる。更に、ＤＲＡＭで構成されるようなメモリブロックにおける見掛け上のアクセスタイムを短縮するために、データの入力に直列並列変換を施し、データ出力に並列・直列変換を施す。即ち、半導体集積回路は、メモリセルアレイ（１０）、ロウ選択回路（１１）、カラム選択回路（１２，１３）、直列・並列変換回路（２１）、ライトアンプ（１７Ｗ）、メインアンプ（１７Ｒ）、並列・直列変換回路（２５）を有するメモリブロックを含む。メモリセルアレイは、選択端子がワード線に接続され、データ入出力端子がビット線に接続されたメモリセルを複数個有する。ロウ選択回路は、ロウアドレスストローブ信号の変化にクロック信号同期で応答しロウアドレス信号で指定されるワード線を選択する。カラム選択回路は、カラムアドレスストローブ信号の変化にクロック信号同期で応答しカラムアドレス信号で指定されるビット線を複数本並列に選択する。直列・並列変換回路は、ライトバッファから直列的に入力されるライトデータをクロック信号に同期して並列データに変換する。ライトアンプは、前記カラム選択回路で選択された複数本のビット線に前記直列・並列変換回路の出力を並列出力する。メインアンプは、前記カラム選択回路で選択された複数本のビット線から並列出力される並列データを増幅する。並列・直列変換回路はメインアンプから供給される並列データをクロック信号に同期して直列データに変換して前記リードバッファ及び選択手段に向けて出力する。
【００２９】
前記メモリブロックは前記クロック信号周期のｎ（２以上の正の整数）倍の周期で変化される前記カラムアドレスストローブ信号が入力され、カラムアドレス信号が変化されるサイクル毎に、メモリセルアレイから読み出されクロック信号サイクルに同期して並列・直列変換された複数の直列データがメモリブロックから出力され、またクロック信号サイクルに同期してメモリブロックに入力されて直・並列変換された並列データがメモリセルアレイに書込まれる。このように、クロック信号のｎサイクルに１回の割合でカラムアドレスストローブ信号を変化させるというアクセス仕様によってメモリ動作の高速化を図ることが可能になる。
【００３０】
前記直列・並列変換回路の直列データ入力経路と、前記並列・直列変換回路の直列データ出力経路とを独立に備えるとよい。リード動作ではカラムアドレスストローブ信号の変化に応答してメモリセルアレイからデータを読み出した後に並列・直列変換の時間を要してメモリブロックから直列データが出力されるが、ライト動作では、カラムアドレスストローブ信号の変化に応答してメモリセルアレイに並列データを書込む前に、予めメモリブロックに入力された直列データを並列データに変換する動作を完了していなければならない。このとき、リード動作に続けてライト動作が指示されると、リード動作による直列データをメモリブロックから出力する動作に並行して、ライト動作のための直列データを予めメモリブロックに順次直列に入力する動作を行わなければならないことが多く予想される。即ち、メモリブロックからの直列データ出力タイミングとメモリブロックへの直列データ入力タイミングとがオーバラップする蓋然性が高い。前述の如く、メモリブロックの直列データ入力経路と直列データ出力経路とを独立に持つことによって、そのような処理のオーバラップに対してもデータの衝突を回避して効率的な処理を実現可能になる。
【００３１】
〔６〕リードデータの伝播遅延を考慮するとき、前記半導体集積回路には以下のレイアウト構成を採用するのがよい。例えば信号入出力用のボンディングパッド若しくはバンプ電極などの外部接続電極がチップの中央部に配置されているセンタパッド形態を想定する。このとき、半導体チップ上にメモリブロックが離間して対向配置される。前記対向するメモリブロックの間に、メモリブロックから読み出されたリードデータを保持することが可能なリードバッファ及びメモリブロックに与えるライトデータを保持する事が可能なライトバッファが配置される。前記リードバッファとライトバッファとの近傍に外部インタフェース手段が配置される。前記外部インタフェース手段の近傍に位置する外部接続電極を有する。前記ライトバッファは、前記外部インタフェース手段に入力されたライトデータを入力して保持し、メモリブロックがライト動作可能にされた後にライトデータをメモリブロックに供給する。前記リードバッファは、前記メモリブロックから読み出されたリードデータを前記外部インタフェース手段から外部に出力不可能な状態に呼応して保持する事が可能である。
【発明の効果】
【００３２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００３３】
すなわち、メモリブロックの並列動作によるデータ競合を回避するためにデータバッファを採用した構成においてリード動作のスループットを改善することができる。
【００３４】
ロジック回路の論理規模が無駄に拡大しないようにリード動作のスループットを改善することができる。
【００３５】
内部のメモリ動作状態に拘わらずにライトアクセスの要求を受け付ける事が容易な半導体集積回路を実現する事ができる。
【発明を実施するための最良の形態】
【００３６】
図１には本発明に係る半導体集積回路の一例が全体的に示される。同図に示される半導体集積回路１は、特に制限されないが、Ｌ３キャッシュメモリとしての利用が想定された半導体集積回路であり、８個のメモリブロックＢＮＫ０〜ＢＮＫ７、４個のライトバッファＷＢ０〜ＷＢ３、４個のリードバッファＲＢ０〜ＲＢ３、上位記憶階層（例えばプロセッサバス）に接続される上位階層インタフェースブロックＩ／Ｆ１、下位記憶階層（例えばメモリバス）に接続される下位階層インタフェースブロックＩ／Ｆ２、メモリ制御回路ＭＣＮＴを有する。
【００３７】
前記上位階層インタフェースブロックＩ／Ｆ１は、上位記憶階層例えばＬ１キャッシュメモリ及びＬ２キャッシュメモリを内蔵したプロセッサが接続されるプロセッサバス等に接続され、アクセス制御信号及びアクセスアドレス信号を等を含むアクセス制御情報を入力し、また、例えば７２ビット並列でデータを入出力する。
【００３８】
前記下位階層インタフェースブロックＩ／Ｆ２は、下位記憶階層例えばメインメモリ又はＬ４キャッシュメモリ等が接続されるメモリバス等に接続され、例えば７２ビット並列でデータを入出力する。特に制限されないが、マルチプロセッサシステムを想定し、上位記憶階層のプロセッサとは別のプロセッサからもアクセス可能なように、前記下位階層インタフェースブロックＩ／Ｆ２は当該別のプロセッサからアクセス制御情報を入力してメモリブロックＢＮＫ０〜ＢＮＫ７のアクセスが可能になっている。
【００３９】
前記メモリ制御回路ＭＣＮＴはアクセス制御情報を入力し、それに含まれるアドレス情報の一部をデコードしてアクセス対象メモリブロックを判定し、アクセス対象メモリブロックに、ローカルなメモリアドレスとアクセス制御信号を出力して、そのメモリブロックの動作を制御する。
【００４０】
代表的に示されたメモリブロックＢＮＫ０は７２ビット（８バイト）単位で直列的に入力されるライトデータを４個のライトレジスタ（ＩＬＴ）２２に順次ラッチして、２８８ビット（３２バイト）並列でＤＲＡＭコア８に書込み可能にされ、また、ＤＲＡＭコア８から２８８ビット並列で読み出されたリードデータを７２ビット単位でリードレジスタ（ＯＬＴ）２６にラッチし、セレクタ２７によりリードレジスタ２６の出力を順次選択して７２ビット単位で直列的にリードデータを出力可能になっている。従って、メモリブロックＢＮＫ０は、ＤＲＡＭコア８のアクセスタイムに対して４倍の速度でデータを入出力することができる。尚、本明細書においては、１バイトは８ビットのデータと１ビットのパリティーデータとを含むものとされる。
【００４１】
上位階層インタフェースブロックＩ／Ｆ１に入力された上位記憶階層からの書込みデータはライトバッファＷＢ０（ＷＢ１〜ＷＢ３）を介してメモリブロックＢＮＫ０（ＢＮＫ１〜ＢＮＫ７）に供給される。
【００４２】
メモリブロックＢＮＫ０（ＢＮＫ１〜ＢＮＫ７）から読み出されたリードデータの出力経路は、上位スルー経路、上位バッファリング経路、及び下位バッファリング経路の３通りとされる。上位スルー経路は、概略的に示されたセレクタ４０，４１を介して上位階層インタフェースブロックＩ／Ｆ１から上位記憶階層に出力する経路である。上位バッファリング経路は、リードバッファＲＢ０（ＲＢ１〜ＲＢ３）に一旦蓄えられたリードデータを前記セレクタ４０，４１を介して上位階層インタフェースブロックＩ／Ｆ１から上位記憶階層に出力する経路である。下位バッファリング経路は、リードバッファＲＢ０（ＲＢ１〜ＲＢ３）に一旦蓄えられたリードデータを前記セレクタ４２を介して下位階層インタフェースブロックＩ／Ｆ２から下位記憶階層に出力する経路である。下位階層へのスルー経路は設けられていない。
【００４３】
前記リードバッファＲＢ０〜ＲＢ３及びライトバッファＷＢ０〜ＷＢ３はＳＲＡＭによって構成される。それらＳＲＡＭのアクセスはシステムのクロック信号によって規定される１サイクル単位で可能にされている。上記リードバッファＲＢ０〜ＲＢ３乃び上記ライトバッファＷＢ０〜ＷＢ３のおのおのを構成する上記ＳＲＡＭは公知のＳＲＡＭと同様に構成することが可能である。上記ＳＲＡＭは、特に制限されないが、複数のスタティク型メモリセルと複数のワード線と複数の相補データ線対とを含むメモリアレイ、所定のワード線をアドレス信号に応答して選択するアドレスデコーダー、選択された複数個のメモリセルのデータを増幅するセンスアンプ及び増幅されたデータを出力するデータ出力回路とを有する構成とされる。
【００４４】
以下に述べられる様に、各ＳＲＡＭは、一組のアドレス信号の入力に対して、７２個のメモリセルが同時に選択される構成とされる。各スタティク型メモリセルは、Ｎチャンネル型ＭＯＳＦＥＴとＰチャンネル型ＭＯＳＦＥＴとを含むＣＭＯＳインバータを１対含むと共に、上記１対のＣＭＯＳインバータの入力と出力とを交差結合して構成された情報記憶部と、その情報記憶部を選択するための複数個のＮチャンネル型トランスファＭＯＳＦＥＴからなる選択トランジスタを含む。上記複数個の選択トランジスタのゲート端子は、１本乃至複数本のワード線に選択的に結合され、上記複数個の選択トランジスタのソース・ドレインパスは、対応する１対乃至複数対の相補データ線に結合され、多入力ポート・多出力ポートのメモリセルとして構成される。上記リードバッファＲＢ０〜ＲＢ３乃び上記ライトバッファＷＢ０〜ＷＢ３のおのおのを構成する上記ＳＲＡＭの各々は、特に制限されないが、１２８ワード×７２ビットの構成とされる。
【００４５】
尚、多入力ポート・多出力ポートのメモリセルの構成自体は、種々変更可能である事は当業者にとって容易に理解されるであろう。
【００４６】
図２には前記半導体集積回路１における前記リードデータの出力経路の詳細が例示される。メモリブロックＢＮＫ０、ＢＮＫ４はリードバッファＲＢ０とライトバッファＷＢ０を共有する。同じく、メモリブロックＢＮＫ１、ＢＮＫ５はリードバッファＲＢ１及びライトバッファＷＢ１を共有し、メモリブロックＢＮＫ２、ＢＮＫ６はリードバッファＲＢ２及びライトバッファＷＢ２を共有し、メモリブロックＢＮＫ３、ＢＮＫ７はリードバッファＲＢ３及びライトバッファＷＢ３を共有する。前記ライトバッファＷＢ０〜ＷＢ３及びリードバッファＲＢ０〜ＲＢ３は、特に制限されないが、２個のリードポートと２個のライトポートを有する。各ポートは８バイトの並列アクセスポートである。
【００４７】
対を成す一方のメモリブロックＢＮＫ０からのリードデータと他方のメモリブロックＢＮＫ４からのリードデータとの何れかを選択するセレクタ４１Ａａが設けられている。他のメモリブロックに関しても同様のセレクタ４１Ａｂ〜４１Ａｄが設けられている。Ｓ１０〜Ｓ１３は前記セレクタ４１Ａａ〜４１Ａｄの選択制御信号である。前記リードバッファＲＢ０から出力されるリードデータとセレクタ４１Ａａで選択されるリードデータとの何れかを選択するセレクタ４０Ａａが設けられている。他のメモリブロックに関しても同様のセレクタ４０Ａｂ〜４０Ａｄが設けられている。Ｓ２０〜Ｓ２３は前記セレクタ４０Ａａ〜４０Ａｄの選択制御信号である。前記セレクタ４０Ａａ〜４０Ａｄの出力はセレクタ４１Ｂで選択されて上位階層インタフェースブロックＩ／Ｆ１に与えられる。セレクタ４１Ｂの動作は２ビットの選択信号Ｓ３０Ａ，Ｓ３０Ｂで制御される。前記セレクタ４２はリードバッファＲＢ０〜ＲＢ３の一方のリードポートからの出力を選択して下位階層インタフェースブロックＩ／Ｆ２に与える。セレクタ４２の動作は２ビットの選択信号Ｓ３１Ａ，Ｓ３１Ｂで制御される。
【００４８】
図３には前記メモリ制御回路ＭＣＮＴが生成する制御信号が例示される。メモリ制御回路ＭＣＮＴは、メモリブロックＢＮＫ０〜ＢＮＫ７毎にアドレス信号ＡＤＲＳ、ロウアドレスストローブ信号ＲＡＳ、カラムアドレスストローブ信号ＣＡＳ及びライトイネーブル信号ＷＥ等を出力し、リードバッファＲＢ０〜ＲＢ３毎にアドレス信号ＡＤＲＳ、メモリイネーブル信号ＭＳ、リード／ライト信号Ｒ／Ｗ及びポートセレクト信号ＰＳＬを出力し、ライトバッファＷＢ０〜ＷＢ３毎にアドレス信号ＡＤＲＳ、メモリイネーブル信号ＭＳ、リード／ライト信号Ｒ／Ｗ及びポートセレクト信号ＰＳＬを出力し、前記セレクタ選択信号Ｓ１０〜Ｓ１３，Ｓ２０〜Ｓ２３，Ｓ３０Ａ，Ｓ３０Ｂ，Ｓ３１Ａ，Ｓ３１Ｂを出力し、インタフェースブロックＩ／Ｆ１，Ｉ／Ｆ２に対する出力イネーブル信号ＯＥＰ１，ＯＥＰ２等を出力する。メモリ制御回路ＭＣＮＴはアクセス制御情報を上位記憶階層と下位記憶階層との双方から入力し、入力したアクセス制御情報が指示する動作を実現するように上記制御信号の中から必要な制御信号を所定のタイミングで活性化制御する。上記メモリ制御回路ＭＣＮＴは、メモリブロックＢＮＫ０〜ＢＮＫ７のリフレッシュ動作の期間に関する信号ＭＲｅｆ０〜７が各メモリブロックＢＮＫ０〜ＢＮＫ７から入力される。
【００４９】
アクセス制御情報４３は図４に例示されるようにアドレス指定部４３Ａとオペレーション指定部４３Ｂとを含む。アドレス指定部４３Ａはリード、ライトを行うメモリブロックＢＮＫ０〜ＢＮＫ７の指定情報と、メモリブロック内のアドレス情報とを含む。オペレーション指定部４３Ｂは、半導体集積回路１に、例えばアドレス指定部で指定されるアドレスからの８バイトのデータのリード／ライト、アドレス指定部で指定されるアドレスから連続１６バイトのデータのリード／ライト、アドレス指定部で指定されるアドレスから連続３２バイトのデータのリード／ライト等の動作を指定する。
【００５０】
前記メモリ制御回路ＭＣＮＴは半導体集積回路１の内部においてリソースが競合しない範囲でメモリブロックＢＮＫ０〜ＢＮＫ７を並列動作させるように外部からのアクセス要求を受け付ける。また、メモリ制御回路ＭＣＮＴは、メモリブロックＢＮＫ０〜ＢＮＫ７の中から選ばれた一つのメモリブロック又はリードバッファＲＢ０〜ＲＢ３の中から選ばれた１つのリードバッファをインタフェースブロックＩ／Ｆ１、Ｉ／Ｆ２に導通させて、リードデータの外部出力を制御する。
【００５１】
図５には外部からのアクセス要求に対する前記メモリ制御回路ＭＣＮＴの主な制御手順が代表的に示される。
【００５２】
前記メモリ制御回路ＭＣＮＴは、ライトアクセスの要求に対しては、ライト対象メモリブロックによるリフレッシュ等の内部動作の有無に関係なくライトバッファＷＢ０〜ＷＢ３の内の対応するライトバッファに予めライトデータを取込む制御を行う（Ｔ１）。その後、書込み対象メモリブロックがリフレッシュ等の内部動作を行っておらずライト動作可能であるかの判定が行われ（Ｔ２）、ライト動作可能の判定を待って対象メモリブロックへデータライトが行われる（Ｔ３）。
【００５３】
図６にはライトアクセスの途中にリフレッシュ動作が介在される場合のライト動作の一例が示される。図６ではメモリブロックＢＮＫ０を書込み対象とする。Ｕ１〜Ｕ８は夫々半導体集積回路１の外部から与えられるアセス単位を意味するものであり、アクセス単位のデータは７２ビット並列である。システムの動作サイクル４〜９ではメモリブロックＢＮＫ０はリフレッシュ動作を行い、その前後ではリード／ライト可能である。ライトデータは１サイクル遅れで順次ライトバッファＷＢ０に格納されていく。一旦ライトバッファＷＢ０に格納されたライトデータは、書き込み対象メモリブロックＢＮＫ０がリード／ライト可能であれば、１サイクル毎にライトデータが順次メモリブロックＢＮＫ０のライトレジスタ２２に供給されていく。アクセス単位Ｕ４のデータがライトレジスタ２２にラッチされたとき既にメモリブロックＢＮＫ０はリフレッシュ動作に入っている。メモリ制御回路ＭＣＮＴはライトバッファＷＢ０からライトレジスタ２２へのデータ転送を中断してリフレッシュ動作の終了を待つ。その間、ライトバッファＷＢ０へのライトデータの書込みは継続される。動作サイクル９でメモリブロックＢＮＫ０のリフレッシュ動作が完了されると、メモリ制御回路ＭＣＮＴはサイクル１０でメモリブロックＢＮＫ０に対してストローブ信号ＲＡＳ，ＣＡＳ，ＷＥをアサートしライトアドレスを与え、アクセス単位Ｕ１〜Ｕ４のデータを４サイクルかけてＤＲＡＭコア８に書込む。ＤＲＡＭコア８への書込みに並行して、後続のアクセス単位Ｕ５〜Ｕ８のライトデータをライトレジスタ２２に順次転送する。メモリ制御回路ＭＣＮＴはサイクル１４でメモリブロックＢＮＫ０に対してストローブ信号ＲＡＳ，ＣＡＳ，ＷＥをアサートしライトアドレスを与え、アクセス単位Ｕ５〜Ｕ８のデータを４サイクルかけてＤＲＡＭコア８に書込む。結果として、アクセス単位Ｕ１〜Ｕ８のライトアクセスを指示する上位記憶階層側のプロセッサは、サイクル８で今回のライトアクセスの処理から解放され、メモリブロックＢＮＫ０にリフレッシュ動作が介在されてもその影響を受けない。
【００５４】
図７にはライトバッファＷＢ０が設けられていない場合ライト動作の一例が示される。ライトバッファＷＢ０が無い場合、ＤＲＡＭコア８でリフレッシュ動作が開始されると、ライトアクセスを指示する上位記憶階層側のプロセッサは、サイクル４でライトアドレスとライトデータの出力、即ちライトアクセス要求の発行を中断し、リフレッシュ動作が完了するのを検出しながら待たなければならない。リフレッシュ動作が終わったサイクル９以降、上位記憶階層側のプロセッサは再び、ライトアクセスの要求を発行して、サイクル１０から順次アクセス単位Ｕ５〜Ｕ８のアドレス及びデータを出力する。これにより、メモリブロックＢＮＫ０のＤＲＡＭコア８に対するアクセス単位Ｕ１〜Ｕ８のライトデータ書込みはサイクル１９で完了するが、ライトアクセスを指示する上位記憶階層側のプロセッサは、サイクル１３までライトアクセスの処理から解放されない。図６と比較すれば明らかなように、Ｌ３キャッシュメモリとされる半導体集積回路１がライトバッファＷＢ０〜ＷＢ３をもつ事により、上位階層のプロセッサのデータ処理効率を格段に向上させることが可能になる。
【００５５】
一方、前記メモリ制御回路ＭＣＮＴは、メモリブロックＢＮＫ０〜ＢＮＫ７から読み出されたリードデータをインタフェースブロックＩ／Ｆ１、Ｉ／Ｆ２を介して外部に出力する動作を制御するときは、前記リードデータの出力経路の選択、即ち、前記上位スルー経路、上位バッファリング経路、及び下位バッファリング経路の選択制御を行って、データリード動作のスループットを向上させる。
【００５６】
前記上位スルー経路を選択するか上位バッファリング経路を選択するかはリソース競合を生ずる虞があるか否かをメモリ制御回路ＭＣＮＴが判定することによって行う。
【００５７】
即ち、前記メモリ制御回路ＭＣＮＴは、図５に例示されるように、リードアクセス要求に対して、アクセス対象メモリブロックのＤＲＡＭコア８からデータを読み出し（Ｔ４）、読み出したリードデータを前記上位階層インタフェースブロックＩ／Ｆ１から外部に出力するときリソース競合があるかを判定し（Ｔ５）、リソース競合がある場合、即ち、前記上位階層インタフェースブロックＩ／Ｆ１から外部にそのリードデータを出力することが不可能な状態であるときは、当該リードデータを対応するリードバッファＲＢ０〜ＲＢ３に保持させる（Ｔ６）。前記出力不可能な状態が解消されているときは前記メモリブロックＢＮＫ０〜ＢＮＫ７から読み出されたリードデータ又は前記リードバッファＲＢ０〜ＲＢ３から読み出されたリードデータを前記上位階層インタフェースブロックＩ／Ｆ１から外部に出力させる（Ｔ７）。
【００５８】
図８にはリードバッファＲＢ０〜ＲＢ３を利用したリード動作の一例が示される。図８において上位記憶階層側のプロセッサはシステムの動作サイクル単位で連続してアクセス要求Ａ〜Ｄを発行する。アクセス要求ＡはメモリブロックＢＮＫ０のアドレスＡから連続する３２バイトのデータＡ−０、Ａ−１，Ａ−２，Ａ−３を読み出すリードアクセス要求である。同様に、アクセス要求ＢはメモリブロックＢＮＫ４のアドレスＢから連続する３２バイトのデータＢ−０、Ｂ−１，Ｂ−２，Ｂ−３を読み出すリードアクセス要求、アクセス要求ＣはメモリブロックＢＮＫ１のアドレスＣから連続する３２バイトのデータＣ−０、Ｃ−１，Ｃ−２，Ｃ−３を読み出すリードアクセス要求、アクセス要求ＤはメモリブロックＢＮＫ３のアドレスＤから連続する３２バイトのデータＤ−０、Ｄ−１，Ｄ−２，Ｄ−３を読み出すリードアクセス要求である。
【００５９】
前記アクセス要求Ａがあると、メモリ制御回路ＭＣＮＴはメモリブロックＢＮＫ０のＤＲＡＭコア８からアドレスＡで指定された２８８ビットのデータを並列に読み出してリードレジスタ２６にラッチする。そしてリードレジスタ２６が順次選択され、８バイト単位でリードデータＡ−０，Ａ−１，Ａ−２，Ａ−３がメモリブロックＢＮＫ０から出力される。このリードデータの出力はシステムの動作サイクル単位（１サイクル単位）で行われる。このとき、上位階層インタフェースブロックＩ／Ｆ１は出力動作を行っていない。これに従ってメモリコントローラＭＣＮＴはセレクタ４１Ａａ，４０Ａａ，４１ＢによってメモリブロックＢＮＫ０からの出力データＡ−０，Ａ−１，Ａ−２，Ａ−３を直接上位階層インタフェースブロックＩ／Ｆ１に伝達して外部に出力させる。
【００６０】
この出力動作に並行して、１サイクル遅れで、次のアクセス要求Ｂが発行され、メモリブロックＢＮＫ４から順次リードデータＢ−０，Ｂ−１，Ｂ−２，Ｂ−３が出力される。出力されたリードデータは順次リードバッファＲＢ０に蓄えられていく。同様に、後続する次のアクセス要求ＣによってメモリブロックＢＮＫ１から順次リードデータＣ−０，Ｃ−１，Ｃ−２，Ｃ−３が出力されてリードバッファＲＢ１に蓄えられ、更に後続する次のアクセス要求ＤによってメモリブロックＢＮＫ３から順次リードデータＤ−０，Ｄ−１，Ｄ−２，Ｄ−３が出力されてリードバッファＲＢ３に蓄えられる。後続するリードデータをリードバッファに保持する動作を行っている途中で、上位階層インタフェースブロックＩ／Ｆ１による外部へのデータ出力が終了すると、これに続くアクセス要求のリードデータを今度はリードバッファから読み出して外部に出力させる。即ち、データＡ−３の次は、リードバッファＲＢ０から順次リードデータＢ−０，Ｂ−１，Ｂ−２，Ｂ−３を出力させ、これをセレクタ４０Ａａ，４１Ｂで選択して上位階層インタフェースブロックＩ／Ｆ１から外部へデータさせる。以下、データＣ−０〜Ｄ−３まで連続して外部に出力される。
【００６１】
一方、図９に例示されるようにリードバッファが無ければ、最初のアクセス要求Ａに係るリードデータを全て外部に出力するまで、次のアクセス要求を受け付けることはできない。異なったメモリブロックにおいて、少なくとも、リードレジスタの出力動作が競合しないようにしなければならない。
【００６２】
これより明らかなように、リードバッファＲＢ０〜ＲＢ３を採用することによって後続のリードアクセス要求を予め受け付けてメモリブロックの内部動作を先行させる事ができ、また、リードバッファにはＤＲＡＭよりもアクセス速度の速いＳＲＡＭを採用することによりバッファリングされたデータ出力動作が遅くなることもなく、データリード動作のスループットを向上させる事ができる。
【００６３】
更に、メモリブロックＢＮＫ０〜ＢＮＫ７からデータが読み出されたとき前記リソース競合が無ければ、リードデータはリードバッファＲＢ０〜ＲＢ３を介することなく直接上位階層インタフェースブロックＩ／Ｆ１から外部に出力されるから、データ競合を生じていない場合にも一旦データバッファリングを行うような無駄を回避でき、この点においてリードデータ出力動作のスループットを向上に寄与する。
【００６４】
次に前記半導体集積回路１をキャッシュメモリシステムに適用した場合に即して説明する。
【００６５】
図１０にはキャッシュメモリシステムの第１の例が示される。半導体集積回路１はＬ３キャッシュメモリとして利用され、プロセッサ５０とメインメモリ５１の間に配置される。半導体集積回路１の前記上位階層インタフェースブロックＩ／Ｆ１にはプロセッサバス５２が接続され、プロセッサとの間でデータを入出力し、また、プロセッサ５０から出力されるアクセス制御情報を入力する。半導体集積回路１の前記下位階層インタフェースブロックＩ／Ｆ２にはメモリバス５３が接続され、メインメモリ５１との間でデータを入出力する。メインメモリ５１に対するアクセス制御情報は、特に制限されないが、プロセッサ５０が発行する情報である。
【００６６】
プロセッサ５０はＣＰＵ５０Ａと共にＬ１キャッシュメモリ５０Ｂ、Ｌ２キャッシュメモリ５０Ｃを内蔵し、更にＬ３キャッシュメモリのためのタグ制御論理（ＴＡＧ）５０Ｄを備えている。半導体集積回路１はＬ３キャッシュメモリのデータメモリ部として位置付けられる。タグ制御論理５０Ｄは、Ｌ３キャッシュメモリとしての半導体集積回路１のキャッシュライン毎にインデックスアドレスとキャッシュエントリのタグアドレスとを関連着ける情報を有する。更に、キャッシュライン毎に、そのキャッシュラインの有効性を示すバリッドビット、キャッシュラインのリプレースに際して下位記憶階層へのコピーバック若しくはライトバックの必要性を示すダーティービット等を有する。
【００６７】
尚、図１０において、半導体集積回路１の下位記憶階層はメインメモリに限定されず、Ｌ４キャッシュメモリであってもよい。Ｌ４キャッシュメモリのタグ制御部はプロセッサ５０の内部に構成してよい。
【００６８】
図１１には図１０のキャッシュメモリシステムにおけるプロセッサのリードアクセス動作に着目したデータフローが示される。プロセッサ５０に内蔵されたＬ１キャッシュメモリ５０Ｂ、Ｌ２キャッシュメモリ５０Ｃがキャッシュミスのとき、タグ制御論理５０Ｄによって半導体集積回路１がキャッシュヒットするならば、プロセッサ５０は半導体集積回路１をターゲットとしてリードアクセスを要求する。この時のアクセス制御情報の経路はＰ１である。前述のように、リソース競合が無ければリードデータはメモリブロックＢＮＫ０〜ＢＮＫ７から直接プロセッサ５０に返される（経路Ｐ２）。リソース競合があるときは、リードデータは一旦リードバッファＲＢ０〜ＲＢ３の内の一つに保持され、リソース競合を生じないタイミングでリードバッファＲＢ０〜ＲＢ３からプロセッサ５０に返される（経路Ｐ２’）。半導体集積回路１もキャッシュミスになるとき、プロセッサ５０はアクセス制御情報をメインメモリ５１に与え（経路Ｐ３）、メインメモリ５１のリードデータがプロセッサ５０に返される（径路Ｐ４）。
【００６９】
このとき、仮に、別の回路モジュールの影響によって径路Ｐ４でバスの競合を生ずるような場合、メインメモリ５１からリードデータをプロセッサ５０に送る事ができない。バス競合が解消されても、再度プロセッサ５０はメインメモリ５１にアクセス要求を発行して、ＤＲＡＭで成るようなアクセス速度の遅いメインメモリ５１を再度アクセスしなければならなくなる。そこで、図１１に例示されるように、リードバッファＲＢ０〜ＲＢ３と同様にＳＲＡＭ等で成る高速アクセス可能なメモリバッファ（ＭＢ）５４をメインメモリ５１とプロセッサ５０との間に配置するとよい。
【００７０】
メモリバッファ５４は半導体集積回路１に内蔵させてもよい。メモリバッファ５４は前記下位階層インタフェースブロックＩ／Ｆ２からデータを入力して保持し、保持したデータを前記上位階層インタフェースブロックＩ／Ｆ１から外部に出力可能にすればよい。メモリバッファ５４のリードデータ出力とメモリブロックＢＮＫ０〜ＢＮＫ７のリードデータ出力は排他的であれよく、例えば、プロセッサ５０はメモリバッファ５４を直接指定して動作させればよい。
【００７１】
図１２は図１０のキャッシュメモリシステムにおけるプロセッサのライトアクセスに動作に着目したデータフローが示される。プロセッサ５０のライトアクセスにおいて、プロセッサ５０に内蔵されたＬ１キャッシュメモリ５０Ｂ、Ｌ２キャッシュメモリ５０Ｃがキャッシュミスのとき、タグ制御論理５０Ｄによって半導体集積回路１がキャッシュヒットするならば、プロセッサ５０は半導体集積回路１をターゲットとしてライトアクセスを要求する。この時のアクセス制御情報の経路はＰ１である。前述のように、ライトデータは一旦ライトバッファＷＢ０〜ＷＢ３の内の一つに格納され、ライト対象メモリブロックがライト動作可能になったときライトバッファからメモリブロックにライトデータが書き込まれる（経路Ｐ５）。半導体集積回路１はライトバッファＷＢ０〜ＷＢ３を備えるので、ライト要求の途中でメモリブロックのリフレッシュ動作が介在されても書き込み要求を途中で中断しなくてもよい。したがって、書き込み処理からプロセッサ５０を早く開放してやることができる。半導体集積回路１もキャッシュミスになるときは、プロセッサ５０はアクセス制御情報をメインメモリ５１に与え（経路Ｐ３）、ライトデータをメインメモリ５１に与える（径路Ｐ６）。
【００７２】
図１３は図１０のキャッシュメモリシステムにおけるキャッシュラインのリプレースに着目したデータフローが示される。ライトアクセス又はリードアクセス時における半導体集積回路１のキャッシュミスに応答してメモリブロックＢＮＫ０〜ＢＮＫ７の所定のキャッシュラインをリプレースするとき、当該キャッシュラインのダーティービットがイネーブルであるとき、リプレース前に、そのキャッシュラインのエントリを対応するタグアドレスの下位階層エリアにコピーバックしなければならない。コピーバックすべきデータはメモリブロックＢＮＫ０〜ＢＮＫ７からリードバッファＲＢ０〜ＲＢ３に格納すればよく、実際にアクセス速度の遅いＤＲＡＭから成るメインメモリ５１に実際にコピーバックされるのを待つ必要はない。また、リプレースすべき新たなキャッシュエントリのデータは、コピーバックすべきデータがリードバッファＲＢ０〜ＲＢ３に転送されるのを待つことなくメインメモリ５１からライトバッファＷＢ０〜Ｗ３に書き込んでよい。これにより、キャッシュラインのリプレースを伴なうようなときにもプロセッサ５０による最終的なデータリードのスループットを向上させることができる。
【００７３】
前記図１及び図２に基づいて説明したように下位階層インタフェースブロックＩ／Ｆ２とメモリブロックＢＮＫ０〜ＢＮＫ７との接続はリードバッファＲＢ０〜ＲＢ３を介する経路のみであり、上位階層のようなスルー経路は設けられていない。コピーバックは、キャッシュミスに際してダーティーなキャッシュラインをリプレースするためにそのデータをメインメモリに退避させる動作だから、そのようなリード動作では殆どの場合高いスループットは要求されないので、リードバッファＲＢ０〜ＲＢ３を迂回して直接リードデータを下位階層インタフェースブロックＩ／Ｆ２から出力可能にするデータパスやそのためのロジック回路を省けば、半導体集積回路１の論理規模が無駄に拡大しないようになる。
【００７４】
図１４にはキャッシュメモリシステムの第２の例が示される。半導体集積回路１を前記プロセッサ５０のメインメモリとして利用することも可能である。この場合、半導体集積回路１の下位階層インタフェースブロックＩ／Ｆ２を用いる必要はない。
【００７５】
図１５にはキャッシュメモリシステムの第３の例が示される。同図に示されるキャッシュメモリシステムはマルチプロセッサシステムに適用された例であり、特に制限されないが、前記プロセッサ５０−１，５０−２を有し、夫々には前記半導体集積回路１で構成されたＬ３キャッシュメモリ１−１，１−２が接続され、Ｌ３キャッシュメモリ１−１，１−２はバススイッチ回路５５を介して前記メインメモリ５１に接続される。
【００７６】
前記Ｌ３キャッシュメモリ１−１，１−２は上位階層インタフェースブロックＩ／Ｆ１に接続するプロセッサバス５２−１，５２−２を介してプロセッサ５０−１，５０−２に結合し、プロセッサ５０−１，５０−２との間でデータを入出力し、また、プロセッサ５０−１，５０−２から出力されるアクセス制御情報を入力する。Ｌ３キャッシュメモリ１−１，１−２の前記下位階層インタフェースブロックＩ／Ｆ２はメモリバス５３−１，５３−２を介してバススイッチ回路５５に接続され、メインメモリ５１はメモリバス５３−３を介してバススイッチ５５に接続する。
【００７７】
前記バススイッチ回路５５は特に制限されないが第１乃至第４のバス接続状態を選択的に実現する。第１のバス接続状態は、プロセッサ５０−１から出力されるアクセス制御情報をメインメモリ５１に伝達し、メインメモリ５１とＬ３キャッシュメモリ１−１又はプロセッサ５０−１との間でデータ入出力を可能にする。第２のバス接続状態は、プロセッサ５０−２から出力されるアクセス制御情報をメインメモリ５１に伝達し、メインメモリ５１とＬ３キャッシュメモリ１−２又はプロセッサ５０−２との間でデータ入出力を可能にする。第３のバス接続状態はプロセッサ５０−１から出力されるアクセス制御情報をＬ３キャッシュメモリ１−２に伝達し、Ｌ３キャッシュメモリ１−２とプロセッサ５０−１又はＬ３キャッシュメモリ１−１との間でデータ入出力を可能にする。第４のバス接続状態はプロセッサ５０−２から出力されるアクセス制御情報をＬ３キャッシュメモリ１−１に伝達し、Ｌ３キャッシュメモリ１−１とプロセッサ５０−２又はＬ３キャッシュメモリ１−２との間でデータ入出力を可能にする。
【００７８】
Ｌ３キャッシュメモリ１−２は、前記第３のバス接続状態に応答するため、下位階層インタフェースブロックＩ／Ｆ２にプロセッサ１−１から出力されるアクセス制御情報を受けてキャッシュメモリ動作可能になっている。同様に、Ｌ３キャッシュメモリ１−１は、前記第４のバス接続状態に応答するため、下位階層インタフェースブロックＩ／Ｆ２にプロセッサ１−２から出力されるアクセス制御情報を受けてキャッシュメモリ動作可能になっている。
【００７９】
図１６には前記半導体集積回路１のチップレイアウトが示されている。単結晶シリコンのような１個の矩形の半導体チップ１Ａの主面の中央部はロジック回路の領域１Ｂとされ、その上下に夫々メモリブロックＢＮＫ０〜ＢＮＫ３とメモリブロックＢＮＫ４〜ＢＮＫ７が分離して配置される。ロジック回路領域１Ｂの端にはリードバッファＲＢ０〜ＲＢ３とライトバッファＷＢ０〜ＷＢ３が分離して配置される。リードバッファＲＢ０〜ＲＢ３とライトバッファＷＢ０〜ＷＢ３との間にはインタフェースブロックＩ／Ｆ１，Ｉ／Ｆ２が分離配置される。インタフェースブロックＩ／Ｆ１，Ｉ／Ｆ２の近傍にはボンディングパッド又はバンプ電極のような外部接続電極（図示せず）が多数配置されている。特に制限されないが、インタフェースブロックＩ／Ｆ１，Ｉ／Ｆ２の間には、図１１で説明したバッファメモリ（ＭＢ）５４が配置される。ロジック回路領域１Ｂには特に図示はしないがその他の論理回路も配置されている。
【００８０】
図１６のレイアウト構成を採用する事により、リードバッファＲＢ０〜ＲＢ３はメモリブロックＢＮＫ０〜ＢＮＫ７よりもインタフェースブロックＩ／Ｆ１，Ｉ／Ｆ２及び外部接続電極の近くに位置される。これにより、メモリブロックＢＮＫ０〜ＢＮＫ７のリードレジスタからリードバッファＲＢ０〜ＲＢ３を介することなく直接リードデータを外部に出力させる径路の動作遅延及び伝播遅延に対して、リードバッファＲＢ０〜ＲＢ３からリードデータを外部に出力させる径路の動作遅延及び伝播遅延が極端に増えてしまわないようにできる。したがって、上記レイアウト構成は、データリード動作のスループット向上に寄与する。
【００８１】
図１７にはメモリブロックの詳細な一例が示される。同図に代表的に示されるメモリブロックＢＮＫ０は、図示を省略するダイナミック型メモリセルがマトリクス配置されたメモリセルアレイ１０を有する。ダイナミック型メモリセルは情報を記憶する容量素子と、それに結合されたＮチャネル型ＭＯＳＦＦＴからなる選択トランジスタとを含み、上記選択トランジスタのゲートである選択端子はワード線ＷＬに接続され、上記選択トランジスタのソース・ドレインパスの一端は上記容量素子に結合され、上記ソース−ドレインパスの他端、すなわち、データ入出力端子は相補ビット線ＢＬに接続される。特に図示はしないが、相補ビット線はセンスアンプを中心とした折り返しビット線構造を有し、相補ビット線間にはプリチャージ回路などが配置されている。
【００８２】
ロウデコーダ１１はロウアドレスストローブ信号ＲＡＳの立ち下がり変化に応答してドレスロウアドレス信号ＲＡＳＡＤＲで指定されるワード線ＷＬを選択するロウ選択回路である。相補ビット線ＢＬの選択はカラムデコーダ１３及びカラムスイッチ回路１２で行う。カラムデコーダ１３はカラムアドレスストローブ信号ＣＡＳの立ち下がり変化に応答してカラムアドレス信号ＣＡＳＡＤＲで指定される相補ビット線を複数本並列に選択するためのカラム選択信号１４を生成する。更にカラムデコーダ１３は、ライトイネーブル信号ＷＥのローレベルによる書込み動作の指示に応答して書込み信号１５Ｗを活性化し、ライトイネーブル信号ＷＥのハイレベルによる読み出し動作の指示に応答して読み出し信号１５Ｒを活性化する。カラムスイッチ回路１２はカラム選択信号１４によってスイッチ動作して当該信号１４にて指示される３２バイト（２８８ビット）分の相補ビット線を３２バイト分の相補書込みデータ線ＷＩＯと３２バイト分の相補読み出しデータ線ＲＩＯに夫々通させる。
【００８３】
前記相補書込みデータ線ＷＩＯにはライトアンプ１７Ｗから出力される３２バイトの書込みデータが並列に供給される。また、前記相補読み出しデータ線ＲＩＯはメインアンプ１７Ｒに３２バイトの読み出しデータを並列に供給される。ライトアンプ１７Ｗは２８８個の書込み増幅回路を有し、書込み信号１５Ｗが活性化されるのに応答して、並列入力される２８８ビットの書き込みデータＤＩＮ＜０＞〜ＤＩＮ＜３＞に対する増幅信号を前記相補書込みデータ線ＷＩＯに２８８ビットで並列出力動作可能にされる。前記メインアンプ１７Ｒは２８８個の読み出し増幅回路を有し、前記読み出し信号が活性化されるのに応答して、前記相補読み出しデータ線ＲＩＯからの入力に対する増幅信号を２８８ビットの読み出しデータＭＡＯＵＴ＜０＞〜ＭＡＯＵＴ＜３＞として並列出力動作可能にされる。尚、前記データＤＩＮ＜０＞，…，ＤＩＮ＜３＞は夫々８バイトであり、同様に前記データＭＡＯＵＴ＜０＞，…，ＭＡＯＵＴ＜３＞も夫々８バイトである。
【００８４】
書込みデータＷＤの入力経路２０と前記ライトアンプ１７Ｗとの間には直列・並列変換回路２１が配置されている。特に制限されないが、書込みデータＷＤは８バイト並列で供給される。直列・並列変換回路２１は、前記４個のライトレジスタ２２とデータラッチ制御回路２３を有する。ライトレジスタ２２の入力端子は入力経路２０に共通接続され、出力端子は個別にライトアンプ１７Ｗの書込み増幅回路の入力端子に結合される。データラッチ制御回路２３は２ビットのラッチ制御データＤＬＡＴ＜１：０＞をクロック信号ＣＬＫに同期してデコードすることにより４ビットのラッチ制御信号ＤＩＮＬ＜３：０＞を生成し、対応するライトレジスタ２２のラッチ制御を行う。ラッチ制御データＬＡＴＤ＜１：０＞が順次インクリメントされて変化されることにより、８バイト単位で並列に入力される書き込みデータＷＤがクロック信号ＣＬＫに同期して順次４個のライトレジスタ２２にラッチされ、４個のライトレジスタ２２の出力には３２バイト並列で書き込みデータＤＩＮ＜０＞〜ＤＩＮ＜３＞が得られる。
【００８５】
読み出しデータＭＵＸＯＵＴの出力経路２９と前記メインアンプ１７Ｒとの間には並列・直列変換回路２５が配置されている。並列・直列変換回路２５は、４個のリードレジスタ２６、出力セレクタ２７及び選択制御回路２８を有する。リードレジスタ２６の入力端子にはメインアンプ１７Ｒから夫々読み出しデータＭＡＯＵＴ＜０＞〜ＭＡＯＵＴ＜３＞が入力される。リードレジスタ２６のラッチタイミングはラッチ制御信号ＰＤＯＬＴＴで制御される。ラッチ制御信号ＰＤＯＬＴＴによるラッチタイミングは、メモリセルから読み出されたデータによって読み出しデータＭＡＯＵＴ＜０＞〜ＭＡＯＵＴ＜３＞が確定された後のタイミングとなるように後述の出力制御回路３０で制御される。
【００８６】
前記セレクタ２７は、リードレジスタ２６の出力データＤＯＵＴ＜０＞〜ＤＯＵＴ＜３＞を８バイトづつ選択制御信号ＭＳＥＬ＜３：０＞で選択して前記出力経路に２９に出力する。選択制御回路２８は２ビットの選択制御データＭＵＸＳＥＬ＜１：０＞をクロック信号ＣＬＫに同期してデコードすることにより４ビットの選択制御信号ＭＳＥＬ＜３：０＞を生成する。選択制御データＭＵＸＳＥＬ＜１：０＞が順次インクリメントされて変化されることにより、出力データＤＯＵＴ＜０＞〜ＤＯＵＴ＜３＞がクロック信号ＣＬＫに同期して順次８バイトづつ出力経路２９に出力されて読み出しデータＭＵＸＯＵＴが得られる。
【００８７】
出力制御回路３０はＣＡＳレイテンシに従って前記ラッチ制御信号ＰＤＯＬＴＴを生成する。ＣＡＳレイテンシとは、データ読み出し動作において前記カラムアドレスストローブ信号ＣＡＳの立ち下がり変化にクロック同期で応答するときその次のクロックサイクルから前記並列・直列変換回路２５のデータ入力が確定するまでの遅延時間を前記クロック信号ＣＬＫのサイクル数相当で表現したものである。詳しくは、カラムアドレスストローブ信号ＣＡＳの立ち下がりをクロック信号ＣＬＫの立下り（フォールエッジで）で検出する場合、前記カラムアドレスストローブ信号ＣＡＳの立ち下がりを検出するフォールエッジの次のクロック信号ＣＬＫのフォールエッジから前記読み出しデータＤＯＵＴ＜０＞〜ＤＯＵＴ＜３＞が確定した状態におけるクロック信号ＣＬＫの最初のフォールエッジまでのクロック信号ＣＬＫのサイクル数がＣＡＳレイテンシである。メモリセルアレイ１０からのデータ読み出し動作とメインアンプ１７Ｒによる読み出しデータの増幅動作は回路構成及び回路素子の特性等によって一義的に決まる。したがって、外部へ高速にデータを出力するには、それら動作遅延時間以上でそれに最も近い遅延時間のＣＡＳレイテンシを設定することが必要である。前述の如くＣＡＳレイテンシはクロック信号ＣＬＫのサイクル数相当であるから、ＣＡＳレイテンシによる実際の遅延時間はクロック信号ＣＬＫの周波数に依存し、同じ遅延時間を設定する場合であっても、クロック信号ＣＬＫの周波数が高ければＣＡＳレイテンシは相対的に大きく、クロック信号ＣＬＫの周波数が低ければＣＡＳレイテンシは相対的に小さくなる。図１の例において出力制御回路３０は、レイテンシ設定データＦＲＣＤ＜１：０＞を入力して前記ＣＡＳレイテンシを可変制御可能なＣＡＳレイテンシ制御回路を実現する。前記ＣＡＳレイテンシは前記ラッチ制御信号ＰＤＯＬＴＴによるラッチタイミングに反映される。
【００８８】
リフレッシュ制御回路（ＲＣＣ）４０は、上記メモリセルアレイ内の各メモリセルのデータを定期的にリフレッシュするための制御回路であり、メモリブロックＢＮＫ０の内部回路に対して複数の内部制御信号refを生成して供給する。一
方、上記リフレッシュ制御回路４０は、上記メモリ制御回路ＭＣＮＴに対して、メモリブロックＢＮＫ０がリフレッシュ期間おいて活性化されるリフレッシュ期間通知信号ＭＲｅｆ０を出力する。
【００８９】
以上の説明より明らかなように、前記メモリブロックＢＮＫ０〜ＢＮＫ７は前記クロック信号ＣＬＫの周期の複数倍の周期で変化される前記カラムアドレスストローブ信号ＣＡＳが入力され、カラムアドレス信号ＣＡＳが変化されるサイクル毎に、メモリセルアレイ１０から読み出されクロック信号ＣＬＫのサイクルに同期して並列・直列変換された複数の直列データがメモリブロックから出力され、またクロック信号ＣＬＫのサイクルに同期してメモリブロックに入力されて直・並列変換された並列データがメモリセルアレイ１０に書込まれる。このように、クロック信号ＣＬＫの複数サイクルに１回の割合でカラムアドレスストローブ信号ＣＡＳを変化させるというアクセス仕様によってメモリ動作の高速化を図ることが可能になる。
【００９０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９１】
例えば、本発明の半導体集積回路は上位及び下位階層双方のインタフェースブロックを有する構成に限定されない。例えば、図１１に示されるようにメモリブロックとリードバッファを備える構成、図１２示されるようにメモリブロックとライトバッファを備える構成、図１３示されるようにメモリブロックとリードバッファ及びライトバッファを備える構成として本発明を夫々別々に把握することが可能である。
【００９２】
また、チップ面積に余裕があればリードバッファやライトバッファをメモリブロック毎に設けてもよい。
【００９３】
また、メモリブロックの数、並列データ入出力ビット数、リードレジスタ及びライトレジスタの段数等についても適宜変更することが可能である。
【００９４】
メモリブロックはＤＲＡＭに限定されず、リードバッファ及びライトバッファはＳＲＡＭに限定されず、他の記憶形式のメモリであってもよい。本発明は各種階層のキャッシュメモリ、メインメモリ、その他のロジック混載半導体集積回路に広く適用できることは言うまでもない。
【図面の簡単な説明】
【００９５】
【図１】本発明に係る半導体集積回路の一例を全体的に示すブロック図である。
【図２】図１の半導体集積回路における前記リードデータの出力経路の詳細を例示するブロック図である。
【図３】メモリ制御回路が生成する制御信号を例示する説明図である。
【図４】アクセス制御情報を情報フォーマットを例示する説明図である。
【図５】外部からのアクセス要求に対するメモリ制御回路の主な制御手順を代表的に示すフローチャートである。
【図６】ライトアクセスの途中にリフレッシュ動作が介在される場合のライト動作の一例を示すタイミングチャートである。
【図７】ライトバッファが設けられていないときのライト動作を比較例として示すタイミングチャートである。
【図８】リードバッファを利用したリード動作の一例を示すタイミングチャートである。
【図９】リードバッファが設けられていないときのリード動作を比較例として示すタイミングチャートである。
【図１０】半導体集積回路をＬ３キャッシュメモリとして利用したキャッシュメモリシステムのブロック図である。
【図１１】図１０のキャッシュメモリシステムにおけるプロセッサのリードアクセス動作に着目したデータフローを示す説明図である。
【図１２】図１０のキャッシュメモリシステムにおけるプロセッサのライトアクセスに動作に着目したデータフローを示す説明図である。
【図１３】図１０のキャッシュメモリシステムにおけるキャッシュラインのリプレースに着目したデータフローを示す説明図である。
【図１４】半導体集積回路をプロセッサのメインメモリとして利用したメモリシステムのブロック図である。
【図１５】半導体集積回路をＬ３キャッシュメモリとしてマルチプロセッサシステムに適用した例を示すブロック図である。
【図１６】本発明に係る半導体集積回路のチップレイアウトを例示するレイアウト図である。
【図１７】メモリブロックの詳細な一例を示すブロック図である。
【符号の説明】
【００９６】
１  半導体集積回路
ＢＮＫ０〜ＢＮＫ７  メモリブロック
ＲＢ０〜ＲＢ３  リードバッファ
ＷＢ０〜ＷＢ３  ライトバッファ
ＭＣＮＴ  メモリ制御回路
Ｉ／Ｆ１  上位階層インタフェースブロック
Ｉ／Ｆ２  下位階層インタフェースブロック
４０（４０Ａａ，４０Ａｂ，４０Ａｃ，４０Ａｄ）  セレクタ
４１（４１Ａａ，４１Ａｂ，４１Ａｃ，４１Ａｄ、４１Ｂ）  セレクタ
４２  セレクタ
８  ＤＲＡＭコア
２２  ライトレジスタ
２６  リードレジスタ
５０，５０−１，５０−２  プロセッサ
５０Ａ  ＣＰＵ
５０Ｂ  Ｌ１キャッシュメモリ
５０Ｃ  Ｌ２キャッシュメモリ
５０Ｄ  タグ制御論理
５１  メインメモリ
５２，５２−１，５２−２  プロセッサバス
５３，５３−１，５３−２，５３−３  メモリバス
５４  メモリバッファ
５５  バススイッチ回路
ＣＬＫ  クロック信号
ＢＬ  相補ビット線
ＷＬ  ワード線
ＲＡＳ  ロウアドレスストローブ信号
ＣＡＳ  カラムアドレスストローブ信号
【図１】
0004674865.tif 000002
【図２】
0004674865.tif 000003
【図３】
0004674865.tif 000004
【図４】
0004674865.tif 000005
【図５】
0004674865.tif 000006
【図６】
0004674865.tif 000007
【図７】
0004674865.tif 000008
【図８】
0004674865.tif 000009
【図９】
0004674865.tif 000010
【図１０】
0004674865.tif 000011
【図１１】
0004674865.tif 000012
【図１２】
0004674865.tif 000013
【図１３】
0004674865.tif 000014
【図１４】
0004674865.tif 000015
【図１５】
0004674865.tif 000016
【図１６】
0004674865.tif 000017
【図１７】
0004674865.tif 000018