(57)【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
中央処理ユニット（CPU）、
前記CPUと共に集積化された第１レベルのキャッシュメモリと、
前記CPUに接続されたバスであって、第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で前記バスにデータが伝達される、前記バスと、
前記バスに接続された次のレベルのキャッシュメモリとを有し、
前記次のレベルのキャッシュメモリが、少なくとも１つのダイナミックランダムアクセスメモリ（DRAM）アレイと、前記バスと前記DRAMアレイとの間のデータの伝達を制御する制御回路とを有し、
前記制御回路が、前記第１のクロック信号から第２のクロック信号を導き、且つ前記第１のデータ速度よりも高い第２のデータ速度で、第２のクロック信号に応答して前記DRAMアレイに対してデータを伝達し、
前記制御回路が、前記DRAMアレイに接続されたデータ入力ポートと前記バスに接続されたデータ出力ポートとを備えた読み出しバッファを有し、
前記データ入力ポートが前記第２のクロック信号によってクロックされており、前記データ出力ポートが前記第１のクロック信号によってクロックされていることを特徴とするコンピュータシステム。
【請求項２】
前記制御回路が、前記第１のクロック信号に対して同期したセルフタイム形式で前記DRAMアレイにアクセスするバーストシーケンサを有することを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記バーストシーケンサが、前記第２のクロック信号の両方のエッジで前記DRAMアレイにアクセスする回路を含むことを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
前記制御回路が、前記バスに接続されたアドレスバッファを更に有し、
前記アドレスバッファは、次のレベルのキャッシュメモリへの現在のアクセスが進行中に、次のレベルのキャッシュメモリを次にアクセスするために必要な行及び列アドレスを記憶することを特徴とする請求項１に記載のコンピュータシステム。
【請求項５】
前記制御回路が、
前記バスに接続され、前記第１のクロック信号に応答して前記第２のクロック信号を発生させるフェーズロックトループ（PLL）回路を更に有することを特徴とする請求項１に記載のコンピュータシステム。
【請求項６】
前記第２のクロック信号の前記周波数が、前記第１のクロック信号の前記周波数より高いことを特徴とする請求項１に記載のコンピュータシステム。
【請求項７】
前記データ入力ポートが、前記第２のクロック信号の各サイクルの間に２度クロックされ、
前記データ出力ポートが、前記第１のクロック信号の各サイクルの間に１度クロックされることを特徴とする請求項１に記載のコンピュータシステム。
【請求項８】
コンピュータシステムであって、
中央処理ユニット（CPU）と、
前記CPUと共に集積化された第１レベルのキャッシュメモリと、
前記CPUに接続されたバスであって、第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で前記バスにデータが伝達される、前記バスと、
前記バスに接続された次のレベルのキャッシュメモリとを有し、
前記次のレベルのキャッシュメモリが、
少なくとも１つのダイナミックランダムアクセスメモリ（DRAM）アレイと、
前記バスと前記DRAMアレイとの間のデータの伝達を制御する制御回路とを有し、
前記制御回路が、前記第１のクロック信号から第２のクロック信号を導き、かつ第２のクロック信号に応答して、前記第１のデータ速度よりも高い第２のデータ速度で、前記DRAMアレイに対してデータを伝達し、
前記制御回路が、前記DRAMアレイに接続されたデータ出力ポートと、前記バスに接続されたデータ入力ポートとを備えた書き込みバッファを有し、
前記書き込みバッファの前記出力ポートは前記第２のクロック信号によってクロックされており、前記書き込みバッファの前記入力ポートは前記第１のクロック信号によってクロックされていることを特徴とするコンピュータシステム。
【請求項９】
前記第２のクロック信号の前記周波数は、前記第１のクロック信号の前記周波数よりも高いことを特徴とする請求項８に記載のコンピュータシステム。
【請求項１０】
前記書き込みバッファが、少なくとも１つの集合の書き込みバーストデータを記憶する複数の高さのバッファからなることを特徴とする請求項８に記載のコンピュータシステム。
【請求項１１】
前記データ入力ポートが、前記第１のクロック信号の各サイクルの間に１度クロックされ、
前記データ出力ポートが前記第２のクロック信号の各サイクルの間に２度クロックされることを特徴とする請求項８に記載のコンピュータシステム。
【請求項１２】
前記第１のクロック信号の前記周波数が、前記第２のクロック信号の前記周波数と等しいことを特徴とする請求項11に記載のコンピュータシステム。
【請求項１３】
前記制御回路が、前記第２のクロック信号をルートするための回路パスを有し、
前記回路パスが、前記第２のクロック信号が前記DRAMアレイに対して読み出し若しくは書き込みが行われるデータ値に同期するように、配置されていることを特徴とする請求項１に記載のコンピュータシステム。
【請求項１４】
前記バーストシーケンサが、
前記DRAMアレイに接続されたセンス増幅器回路と、
複数のデータ増幅器を備えたデータ増幅器回路と、
前記センス増幅器回路と前記データ増幅器回路との間に接続された列セレクタとを更に有し、
前記列セレクタは、前記センス増幅器回路を前記データ増幅器回路から切り離すように選択され得ることを特徴とする請求項２に記載のコンピュータシステム。
【請求項１５】
前記データ増幅器回路内のデータ増幅器の個数が、前記データ増幅器回路が前記DRAMアレイのバーストアクセスに必要とされる全てのデータ値を同時に記憶することができるように選択されていることを特徴とする請求項14に記載のコンピュータシステム。
【請求項１６】
前記次のレベルのキャッシュメモリが、複数のパラレルに動作するDRAMアレイを有することを特徴とする請求項14に記載のコンピュータシステム。
【請求項１７】
前記次のレベルのキャッシュメモリが、現在リフレッシュされているDRAMアレイの前記アドレスを記憶するリフレッシュカウンタを更に有することを特徴とする請求項１に記載のコンピュータシステム。
【請求項１８】
前記次のレベルのキャッシュメモリが、現在リフレッシュされている前記DRAMアレイの前記アドレスと、前記CPUによってリクエストされたDRAMアレイのアドレスとを比較するリフレッシュ衝突比較器を更に有することを特徴とする請求項17に記載のコンピュータシステム。
【請求項１９】
前記リフレッシュ衝突比較器は、現在リフレッシュされている前記DRAMアレイの前記アドレスと、前記CPUによってリクエストされた前記DRAMのアレイのアドレスとが一致する場合に、衝突信号を送出するように構成されており、
前記次のレベルのキャッシュメモリは、前記リフレッシュ衝突比較器から前記衝突信号を受信するように前記リフレッシュ衝突比較器に接続されたCPUアクセス遅れ回路を更に有し、
前記CPUアクセス遅れ回路は、前記衝突信号の受信に応じてハンドシェイク信号を前記バスに伝達し、現在のリフレッシュ動作が完了する後まで、前記CPUが前記DRAMアレイにアクセスするのを遅延することを特徴とする請求項18に記載のコンピュータシステム。
【請求項２０】
第１の幅を有する前記出力ポートが、第１の個数のデータ値を同時に伝達するべく前記出力ポートをイネーブルし、
第２の幅を有する前記入力ポートが、第２の個数のデータ値を同時に伝達するべく前記入力ポートをイネーブルし、
前記第１の個数が前記第２の個数よりも大きいことを特徴とする請求項８に記載のコンピュータシステム。
【請求項２１】
前記書き込みバッファが、少なくとも１つの集合の書き込みバーストデータを記憶する複数の高さのデータバッファからなることを特徴とする請求項20に記載のコンピュータシステム。
【請求項２２】
前記入力ポートと前記出力ポートとが、同じ周波数のクロック信号によって駆動されていることを特徴とする請求項20に記載のコンピュータシステム。
【請求項２３】
第１の幅を有するパラレルポートからなる前記入力ポートが、第１の個数のデータ値を同時に伝達するべく前記入力ポートをイネーブルし、
第２の幅を有するパラレルポートから前記出力のポートが、第２の個数のデータ値を同時に伝達するべく前記出力ポートをイネーブルし、
前記第１の個数が前記第２の個数より大きいことを特徴とする請求項１に記載のコンピュータシステム。
【請求項２４】
前記読み出しバッファが、少なくとも１つの集合の読み出しバーストデータを記憶する複数の高さのデータバッファからなることを特徴とする請求項23に記載のコンピュータシステム。
【請求項２５】
前記入力ポートと前記出力ポートとが、同じ周波数のクロック信号によって駆動されていることを特徴とする請求項23に記載のコンピュータシステム。
【請求項２６】
前記次のレベルのキャッシュメモリが、前記DRAMアレイを前記バスに接続する複数の端子を更に有し、
第１の端子が、新たなトランザクションの開始を表す第１の信号を前記CPUから受け取るように接続されており、
第２の端子が、読み出し動作若しくは書き込み動作としての前記新たなトランザクションを表す第２の信号を前記CPUから受け取るように接続されていることを特徴とする請求項１に記載のコンピュータシステム。
【請求項２７】
前記CPUによって発生された前記第１の信号が、パイプラインバーストスタティックランダムアクセスメモリ（PBSRAM）プロトコルに適合するアドレスストローブ入力信号からなることを特徴とする請求項26に記載のコンピュータシステム。
【請求項２８】
システムコントローラを更に有し、
前記次のレベルのキャッシュメモリの第１の端子が、新たなトランザクションの開始を表す第１の信号を前記システムコントローラから受け取るように接続されており、
前記次のレベルのキャッシュメモリの第２及び第３の端子が、前記システムコントローラから第２の及び第３の信号を各々受け取るように接続されており、
前記第２及び第３の信号が、前記新たなトランザクションを読み出しトランザクション若しくは書き込みトランザクションとして特定するようにされており、
前記次のレベルのキャッシュメモリが、前記DRAMアレイを前記バスに接続する複数の端子を更に有することを特徴とする請求項１に記載のコンピュータシステム。
【請求項２９】
前記第１の信号が、アドレスストローブ入力信号からなり、
前記第２の信号が、バイト書き込みイネーブル入力信号からなり、
前記第３の信号が、グローバル書き込み入力信号からなり、
前記第１、第２、及び第３の信号が、パイプライバーストスタティックランダムアクセスメモリ（PBSRAM）プロトコルに適合することを特徴とする請求項28に記載のコンピュータシステム。
【請求項３０】
前記次のレベルのキャッシュメモリに接続されたシステムコントローラを更に有し、
前記ダイナミックランダムアクセスメモリ（DRAM）アレイが、前記システムコントローラに接続された第１の端子を有し、
少なくとも１つの信号が、前記DRAMアレイ内のリフレッシュ動作を制御するためのプロトコルを実施するべく前記第１の端子に供給されることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３１】
コンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法であって、
第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で前記バスにデータを伝達する過程と、
前記第１のクロック信号に応答して第２のクロック信号を発生する過程と、
前記第２のクロック信号に応答して、前記第１のデータ速度よりも高い第２のデータ速度で、前記DRAMアレイに対するデータの転送が行われるようにDRAMアレイを動作させる過程と、
前記DRAMアレイから複数のセンス増幅器へ複数のデータ値を非同期的に読み出す課程と、
前記第２のクロック信号に応答して、前記センス増幅器から読み出しバッファメモリへ前記データ値を同期的に読み出す過程と、
前記第１のクロック信号に応答して、前記読み出しバッファメモリから前記バスへ前記データ値を同期的に読み出す過程と、
前記データ値が、前記読み出しバッファメモリから前記バスへ同期して読み出される間に、前記DRAMアレイの複数のDRAMセルをプレチャージする過程を有することを特徴とするコンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法。
【請求項３２】
前記第２のクロック信号が、前記第１のクロック周波数よりも高い周波数を有することを特徴とする請求項31に記載の方法。
【請求項３３】
前記第１のクロック信号を用いて前記読出しバッファメモリから前記バスへ前記データ値を同期的に読み出す前記課程は、前記第１のクロック信号の立ち上がりエッジ及び立ち下がりエッジの何れかで前記バスにデータ信号を伝達する過程を有し、
前記第２のクロック信号を用いて前記センス増幅器から読み出しバッファメモリへ前記データ値を同期的に読み出す前記過程は、前記第２のクロック信号の立ち上がりエッジと立ち下がりエッジの両方で、前記DRAMアレイ内の読み出し動作を実行する過程を有することを特徴とする請求項31に記載の方法。
【請求項３４】
前記第２のクロック信号は、前記第１のクロック周波数と等しい周波数を有することを特徴とする請求項31に記載の方法。
【請求項３５】
前記第１のクロック信号の立ち上がりエッジと立ち下がりエッジの何れかにおいて、前記バスにデータ信号を伝達する過程と、
前記第２のクロック信号の立ち上がりエッジと立ち下がりエッジの両方で前記DRAMアレイ内の書き込み動作を実行する過程とを更に有することを特徴とする請求項31に記載の方法。
【請求項３６】
前記第２のクロック信号は、前記第１のクロック周波数と等しい周波数を有することを特徴とする請求項35に記載の方法。
【請求項３７】
前記第２のクロック信号に対して同期したセルフタイム形式で、前記DRAMアレイ内の行アクセス動作を実行する過程と、
前記第２のクロック信号に対して同期したセルフタイム形式で、前記DRAMアレイ内の列デコード動作を実行する過程と、
前記第２のクロック信号に対して同期した、予め決められた順番の前記DRAMアレイ内に於ける列選択動作を実行する過程とを更に有することを特徴とする請求項31に記載の方法。
【請求項３８】
前記DRAMアレイをプレチャージする過程が、前記読み出しバッファメモリから前記データ値を読み出す過程が完了する前に、完了することを特徴とする請求項31に記載の方法。
【請求項３９】
バスから次のレベルのキャッシュメモリとしてDRAMアレイを用いる方法であって、
第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度でデータを前記バスに伝達する過程と、
前記第１のクロック信号に応答して第２のクロック信号を発生する過程と、
前記第２のクロック信号に応答して、前記第１のデータ速度よりも高い第２のデータ速度で、データが前記DRAMアレイに対して伝達されるように、前記DRAMアレイを動作させる過程と、
前記第１のクロック信号に応答して、前記バスから書き込みバッファへ第１の集合のデータ値を同期的に書き込む過程と、
前記第１のクロック信号に応答して、前記バスから前記書き込みバッファへ第２の集合のデータ値を同期的に書き込む過程と、
前記第２の集合のデータ値が、前記書き込みバッファ内へ書き込まれる間に、前記第１の集合のデータ値を前記DRAMアレイへ同期的に書き込む過程と、
前記第２の集合のデータ値が前記書き込みバッファへ書き込まれる間に、前記DRAMアレイ内の複数のDRAMセルをプレチャージする過程を有することを特徴とする方法。
【請求項４０】
前記DRAMアレイをプレチャージする前記過程が、前記書き込みバッファへ前記第２の集合のデータ値を書き込む前記過程が完了する前に、完了することを特徴とする請求項39に記載の方法。
【請求項４１】
データ増幅器回路とセンス増幅器回路とが、前記書き込みバッファと前記DRAMアレイとの間に接続されており、
前記DRAMアレイへ前記第１の集合のデータ値を同期的に書き込む前記過程が、
前記データ増幅器回路を前記センス増幅器回路から切り離す過程と、
前記DRAMアレイの行アクセス動作を実行するのと同時に、前記書き込みバッファから前記データ増幅器回路へ前記第１の集合のデータ値を書き込む過程と、
前記データ増幅器回路を前記センス増幅器回路へ接続し、前記第１の集合のデータ値を前記センス増幅器回路を介して前記DRAMアレイへ供給する過程とを更に有することを特徴とする請求項39に記載の方法。
【請求項４２】
前記センス増幅器から前記データ値を同期的に読み出す前記過程は、
前記センス増幅器と複数のデータ増幅器との間に接続された複数の列セレクタスイッチを閉じ、前記センス増幅器を前記データ増幅器に接続し、前記データ値を前記データ増幅器へ書き込む過程と、
前記データ増幅器から前記データ値を読み出す過程と、
前記列セレクタスイッチを開き、前記センス増幅器を前記データ増幅器から切り離す過程とを有し、
前記DRAMアレイの複数のDRAMセルをプレチャージする前記過程は、前記列セレクタスイッチが開かれたときに実行されることを特徴とする請求項31に記載の方法。
【請求項４３】
前記データ増幅器から前記データ値を読み出す前記過程が、
前記第２のクロック信号に応答して、前記データ増幅器から前記読み出しバッファメモリへ前記データ値を書き込む過程を有することを特徴とする請求項42に記載の方法。
【請求項４４】
前記DRAMアレイをプレチャージする前記過程が、前記読み出しバッファメモリからの前記データ値を前記バスへ読み出す前記過程が完了する前に、完了することを特徴とする請求項43に記載の方法。
【請求項４５】
前記センス増幅器から読み出しバッファメモリへ前記データ値を同期的に読み出す前記課程は、
前記第２のクロック信号の各サイクルの間に、前記DRAMアレイから前記読み出しバッファメモリの入力ポートへ複数のデータ値を伝達する過程を有し、
前記読み出しバッファメモリから前記バスへ前記データ値を同期的に読み出す前記課程は、
前記第１のクロック信号の各サイクルの間に、前記読み出しバッファメモリの出力ポートから前記バスへ１つのデータ値を伝達する過程とを更に有することを特徴とする請求項31に記載の方法。
【請求項４６】
コンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法であって、
第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で、前記バスにデータ値を伝達する過程と、
前記第１のクロック信号に応答して第２のクロック信号を発生させる過程と、
前記第２のクロック信号に応答して前記DRAMアレイを動作させる過程であって、入力ポート及び出力ポートを有するデータバッファメモリを介しての前記DRAMアレイに対するデータ値の伝達が、前記第１のデータ速度よりも高い第２のデータ速度で行われ、前記データバッファメモリの前記入力ポートは前記DRAMアレイに接続されており且つ前記データバッファメモリの前記出力ポートは前記バスに接続されている、前記DRAMアレイを動作させる過程とを有し、
前記DRAMアレイを動作させる前記過程は、前記第２のクロック信号の各サイクルの間に、前記DRAMアレイから前記データバッファメモリの前記入力ポートへ複数のデータ値を伝達する過程を有し、
前記バスに前記データ値を伝達する前記過程は、前記第１のクロック信号の各サイクルの間に、前記データバッファメモリの前記出力ポートから前記バスへ１つのデータ値を伝達する過程を有し、
前記第１及び第２のクロック信号が等しい周波数を有することを特徴とするコンピュータシステムのバスから次のレベルキャッシュメモリとしてDRAMアレイを使用する方法。
【請求項４７】
コンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法であって、
第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で、前記バスにデータを伝達する過程と、
前記第１のクロック信号に応答して第２のクロック信号を発生させる過程と、
前記第２のクロック信号に応答して、前記第１のデータ速度よりも高い第２のデータ速度で、前記DRAMアレイに対するデータ値が入力ポート及び出力ポートを有するデータバッファメモリを介して転送されるように、前記DRAMアレイを動作させる過程であって、前記データバッファメモリの前記入力ポートは前記DRAMアレイに接続されており且つ前記データバッファメモリの前記出力ポートは前記バスに接続されている、前記DRAMアレイを動作させる過程とを有し、
前記DRAMアレイを動作させる前記過程は、前記第２のクロック信号の各サイクルの間に、前記DRAMアレイから前記データバッファメモリの前記入力ポートへ複数のデータ値を伝達する過程を有し、
前記バスにデータを伝達する前記過程は、前記第１のクロック信号の各サイクルの間に、前記データバッファメモリの前記出力ポートから前記バスへ１つのデータ値を伝達する過程を有し、
当該方法は、前記１つのデータ値を伝達する過程の間に、前記DRAMアレイをプレチャージする過程を更に有することを特徴とするコンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法。
【請求項４８】
前記DRAMアレイが、
DRAMメモリセルからなるアレイと、
前記DRAMメモリセルからなるアレイに接続されたセンス増幅器回路と、
前記増幅器回路に接続された列セレクタ回路と、
前記列セレクタ回路に接続されたデータ増幅器回路とを含み、
前記DRAMアレイを動作させる前記過程は、
前記センス増幅器回路と前記列セレクタ回路とを介して、前記DRAMメモリセルからなるアレイから前記データ増幅器回路へ複数のデータ値を読み出す過程と、
前記列セレクタ回路を用いて、前記センス増幅器回路から前記データ増幅器回路を切り離す過程とを更に有し、
前記DRAMアレイをプレチャージする前記過程は、
前記複数のデータ値が前記データバッファメモリの前記入力ポートへ伝達されるのと同時に実行されることを特徴とする請求項47に記載の方法。
【請求項４９】
前記バスから前記書き込みバッファへ前記第１の集合のデータ値を同期的に書き込む前記過程及び前記バスから前記書き込みバッファへ前記第２の集合のデータ値を同期的に書き込む前記過程は、前記第１のクロック信号の各サイクルの間に、前記バスから前記書き込みバッファの入力ポートへ１つのデータ値を伝達する過程を更に有し、
前記第１の集合データ値を前記DRAMアレイへ同期的に書き込む前記過程は、前記第２のクロック信号の各サイクルの間に、前記書き込みバッファの出力ポートから前記DRAMアレイへ複数のデータ値を伝達する過程を更に有することを特徴とする請求項39に記載の方法。
【請求項５０】
コンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法であって、
第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で前記バスにデータを伝達する過程と、
前記第１のクロック信号に応答して第２のクロック信号を発生させる過程と、
前記第２のクロック信号に応答して、前記第１のデータ速度よりも高い第２のデータ速度で、前記DRAMアレイに対してデータを伝達するように、前記DRAMアレイを動作させる過程と、
前記第１のクロック信号に応答して、前記バスからデータバッファメモリの入力ポートへデータを入力する過程であって、前記第１のクロック信号の各サイクルの間に、前記バスから前記データバッファメモリの前記入力ポートへ１つのデータ値を伝達する、前記バスから前記データバッファメモリの入力ポートへデータを入力する過程と、
前記第２のクロック信号に応答して、前記データバッファメモリの出力ポートから前記DRAMアレイにデータを出力する過程であって、前記第２のクロック信号の各サイクルの間に、前記データバッファメモリの前記出力ポートから前記DRAMアレイへ複数のデータ値を伝達する、前記データバッファメモリの前記出力ポートからデータを出力する過程とを有し、
前記第１及び前記第２のクロック信号が等しい周波数を有することを特徴とするコンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMアレイを使用する方法。
【請求項５１】
コンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMを用いる方法であって、
第１のクロック周波数を有する第１のクロック信号に応答して、第１のデータ速度で前記バスにデータを伝達する過程と、
前記第１のクロック信号に応答して、第２のクロック信号を発生する過程と、
前記第２のクロック信号に応答して、前記第１のデータ速度よりも高いデータ速度で、前記DRAMアレイに対してデータを伝達するように、前記DRAMアレイを動作させる過程と、
前記第１のクロック信号に応答して、前記バスからデータバッファメモリの入力ポートにデータを入力する過程であって、前記第１のクロック信号の各サイクルの間に、前記バスから前記データバッファメモリの前記入力ポートへ１つのデータ値を伝達する、前記バスから前記データバッファメモリの前記入力ポートにデータを入力する過程と、
前記第２のクロック信号に応答して、前記データバッファメモリの出力ポートから前記DRAMアレイにデータを出力する過程であって、前記第２のクロック信号の各サイクルの間に、前記データバッファメモリの前記出力ポートから前記DRAMアレイへ複数のデータ値を伝達する、前記データバッファメモリの出力ポートから前記DRAMアレイにデータを出力する過程と、
前記バスから前記データバッファメモリの前記入力ポートへ前記１つのデータ値を伝達する間に、前記DRAMアレイをプレチャージする過程とを有することを特徴とするコンピュータシステムのバスから次のレベルのキャッシュメモリとしてDRAMを用いる方法。
【請求項５２】
システムコントローラが、前記DRAMアレイの第１の端子に接続されており、
CPUによってリクエストされたトランザクションを開始するべく、前記CPUから前記DRAMアレイへ第１の信号を伝達する過程と、
前記システムコントローラによってリクエストされたトランザクションを開始するべく、前記システムコントローラから前記DRAMアレイへ第２の信号を伝達する過程と、
前記DRAMアレイ内でのリフレッシュ及び内部動作を制御するためのプロトコルを実行するべく、前記DRAMアレイの前記第１の端子へ第３の信号を伝達する過程とを更に有することを特徴とする請求項31に記載の方法。
【請求項５３】
前記第２のクロック信号が、前記第１のクロック信号と等しい周波数を有することを特徴とする請求項５に記載のコンピュータシステム。
【請求項５４】
前記第２のクロック信号が、前記第１のクロック信号の周波数より高い周波数を有することを特徴とする請求項５に記載のコンピュータシステム。
【請求項５５】
前記第１のクロック信号の前記周波数が、前記第２のクロック信号の前記周波数と等しいことを特徴とする請求項７に記載のコンピュータシステム。
【請求項５６】
前記バーストシーケンサが、
前記センス増幅器回路に接続された第１の遅れ回路を更に有し、
前記第１の遅れ回路が、前記データ値が前記DRAMアレイから受け取られる時、前記センス増幅器回路を非同期形式でイネーブルすることを特徴とする請求項14に記載のコンピュータシステム。
【請求項５７】
前記バーストシーケンサが、
列デコーダを介して前記列セレクタに接続された第２の遅れ回路を更に有し、
前記第２の遅れ回路が、前記センス増幅器回路内の前記データ値が利用可能になった時、前記列デコーダを非同期形式でイネーブルして前記列セレクタにデコードされた列アドレスが供給されるようにすることを特徴とする請求項56に記載のコンピュータシステム。
【発明の詳細な説明】
第２レベルのキャシュメモリとしてDRAMアレイを用いる方法及び構成
技術分野
本発明は、メモリシステムを実施する方法及び構成に関し、より詳しくは、第２レベルのキャシュメモリに関する。
背景技術
高速のコンピュータシステムは、しばしば、高速のプロセッサと、低速の（及び低コストの）大容量主メモリとの間での信号の伝達のために、高速の小容量キャッシュ（バッファ）メモリを用いる。キャシュメモリは、通常、プロセッサによって次に選択される可能性の高いデータを一時的に記憶するために用いられる。高速キャシュメモリにこのような選択される可能性の高いデータを記憶することにより、コンピュータシステムに対するデータアクセスの平均速度が増加される。即ち、キャシュメモリは、（全部を高速の高価なメモリとする場合に比べて）システムの性能を構成させるための廉価なものであるといえる。最近のコンピュータシステムでは、複数のレベルの（通常は２つのレベルの）キャシュメモリが用いられている。第１のレベルのキャシュメモリは、通常、４キロバイトから32キロバイトの記憶容量を有し、超高速であり、かつプロセッサと同一の集積回路チップに集積化されている。この第１のレベルのキャシュメモリは、プロセッサと等しい集積回路チップに集積化されておりかつ外部の集積回路チップとの間の信号の伝達に関連する遅れを防止することができるので、より高速なものである。第２レベルのキャシュメモリは通常、プロセッサとは異なる集積チップ上に設けられており、より大きな容量、通常64キロバイトから1024キロバイトの記憶容量を有する。
第１図は、第２レベルのSRAMキャシュ構成を用いた従来のコンピュータシステム100のブロック図を表している。CPUまたはマイクロプロセッサ101は、オンチップの第１レベルのSRAMキャシュメモリ102とともに働き、非常に高速な内部CPU動作（通常は33MHzから150MHz）をサポートしている。
第１レベルのキャシュメモリ102は通常、４キロバイトから32キロバイトの記憶容量を有し、非常に高速度のデータ及び命令アクセス（通常５から15ナノ秒）を実行する。第１レベルのキャシュミス若しくはその他のキャシュ不可能なメモリアクセスに対して、メモリの呼び出し及び書き込み動作は、より低速の外部CPUバス104（通常は25MHzから60MHz）を介してオフチップで、第２レベル（L2）のSRAMキャシュメモリ106（通常は128キロバイトから1024キロバイトの記憶容量）に対して行わなければならず、ラウンドトリップのオフチップ遅れと言った待ち時間（アクセス時間）の不利を伴うことになる。
CPU101がオフチップ動作の遅れにより不利を克服しなければならないので、殆ど全ての現在のマイクロプロセッサでは、CPUバス104を通る最も早いアクセスサイクル（書き込み若しくは読み出しサイクル）は、２−１−１−１である。即ち、最初の外部アクセスが少なくとも２クロックサイクルを費やし、それに続く各々の外部アクセスが１つのクロックサイクルを費やす。より高いCPUバスの周波数では、最も早い第１の外部アクセスは、３若しくはそれ以上のクロックサイクルを要する。４つのアクセスを備えたバーストサイクルが、本明細書中で、例示みのを目的として説明される。或るプロセスでは、より短い（例えば２の）若しくはより長い（例えば８以上の）バーストサイクルが可能である。第１のバーストサイクルが実行されている間に、第２のバーストサイクルの最初の外部アクセスのパラメータがCPUのバスデバイスにラッチされるといった、パイプライン動作は、第２のバーストサイクルの最初の外部アクセスに対するより長いアクセスの待ち時間を隠すことができる。即ち、第１のアクセスサイクルと第２のアクセスサイクルは、各々、２−１−１−１と、１−１−１−１となる。
キャッシュタグメモリ108は通常、比較的小型（８キロバイトから32キロバイト）で、高速（通常10〜15ナノ秒）、かつSRAMセルを用いて実施される。キャッシュタグメモリ108は、第２レベルのキャッシュ106のキャッシュラインのアドレスを記憶し、これらのアドレスをCPUバス104のアクセスアドレスと比較し、キャッシュヒットが生じたか否かを判定する。この小型のキャッシュタグメモリ108は、より高速度及びより低コストを達成するために、システムロジックコントローラチップ110に集積化されることもできる。集積化されたキャッシュタグメモリは、外部キャッシュタグメモリと同じように動作する。ペンティアムプロセッサ用のインテル社の82430PCIセットは、集積化されたSRAMキャッシュタグメモリを用いたロジックコントローラチップ110の１つの例である。
CPUバス104の動作周波数がより低いことの１つの理由は、CPUバス104に接続されたデバイスによる大きなローディングである。第２レベル（L2）のSRAMキャシュメモリ106は、CPUバス104のデータ及びアドレスバス（ラッチ112を介した）ローディングを行う。キャシュタグメモリ108は、アドレスバスへのローリングを行い、システムロジックコントローラチップ110は、コントロール、データ、及びアドレスバスへのローディングを行い、主メモリDRAM114は、データバス（ラッチ116を介して）へのローディングを行う。
従来のコンピュータシステム100では、システムロジックチップ110が、通常25MHzから33MHzの動作周波数のシステム（ローカル）バス118に対するインタフェースを行う。システムバス118は、様々な比較的高速のデバイス120（グラヒィック、ビデオ、通信、または高速ディスクのドライブ装置など）に接続することもできる。システムバス118は、また、多くの周辺デバイス（図示されていない）が接続された一般的な用途の（低速度）拡張バス124への接続を行うための（4MHzから16MHzの動作周波数の）ブリッジ若しくはバッファデバイス122に接続されていてもよい。
第１レベルの若しくは第２レベルの更に高速度のキャシュシステムが、スタティックランダムアクセスメモリ（SRAM）を用いて実現されており、その理由はSRAMが高速である（７から25ナノ秒のアクセス時間と、アクセス時間に等しいサイクル時間とを有する）からである。SRAMは、25から100MHzのバス速度を備えた高速マイクロプロセッサからのデータの記憶及びインターリーブに適する。通常のダイナミックランダムアクセスメモリ（DRAM）は、１ビット当たりSRAMよりも廉価であり、その理由はDRAMのセルの寸法がより小さいからである。例えば、DRAMセルは通常比較できるリソグラフィ法を用いたSRAMセルの1/4の寸法を有する。一般に、DRAMは高速の動作には適さないと考えられており、その理由はDRAMが、５から120ナノ秒のアクセス時間と、90から200ナノ秒のサイクル時間とを有する２つのステップのプロセスを、本質的にそのアクセスに於いて必要とするからである。
アクセス速度は相対的な測定値である。即ち、DRAMはSRAMよりも低速である等、フェライトコア及び電荷結合デバイス（CCD）等の初期のメモリデバイスに比べてそれらは非常に高速であり、その結果、DRAMは、そのような低速度のメモリデバイスを「主メモリ」として用いているメモリシステムにおいて「キャシュ」メモリとして理論上用いられている。しかしながら、動作モード及びアクセス方法は、本明細書中で説明される動作モード及びアクセス方法とは異なる。
殆どのコンピュータシステムでは、第２レベルのキャシュメモリが、固定されたモードで動作している。即ち、第２レベルのキャシュメモリへの読み出し又は書き込みアクセスは、ごく僅かな一定の寸法（第１及び第２キャシュメモリのラインサイズ）であり、通常、４若しくは８ワード（即ち、４若しくは８ワードの連続した読み出し若しくは書き込み）のバーストシーケンス内にあり、又は１つのアクセス（即ち、１ワード）内にある。これらの形式のアクセスによって、標準のSRAMが、非常に高速のプロセッサバスに必要とされるタイミングに適合するように変更される。それらの内の１つの例は、バースト若しくは同期SRAMであり、初期のアクセスアドレスを増加させるために内部カウンタとメモリクロックとを含む。最初のアクセスの後に、外部のアドレスは必要ないので、SRAMは最初のアクセスが行われた後により早く動作する。同期SRAMもまた、インテル社のインターリーブアドレスシーケンスのような現在のアドレスシーケンスを供給するための特別なロジックも有する。そのような性能の増強は、メモリビットを記憶するためのSRAMセルを用いるコストを低減するものではない。
同期DRAM（SDRAM）は、同様のバーストモード動作を用いている。ビデオRAM（VRAM）は、デュアルポートのDRAMのシリアルポート動作を用いている。しかし、これらの新しいDRAMは、依然として、第２のレベルのキャシュ動作に適したものではないが、その理由はその初期アクセス時間及びランダムアクセスサイクル時間が、必要以上に長い値になっているからである。
従って、DRAMメモリを第２レベルのキャシュメモリとして使えるようにする構成及び方法を提供することが望まれている。
従来技術のコンピュータシステムはまた、CPUと同じ集積回路チップに集積化された複数のレベルのSRAMキャシュメモリを含む。例えば、DEC社の「Alpha  21164」プロセッサは、16キロバイトの第１レベルのSRAMキャシュメモリと、96キロバイトの第２レベルのSRAMとを同じ集積回路チップに集積化している。このような場合、第３のレベルSRAMキャシュメモリは通常、プロセッサとDRAM主メモリとの間で用いられる。このようなコンピュータシステムでは、第３のレベルのSRAMキャシュメモリに置き換えられるものとしてDRAMメモリを使うことが望ましい。
従来技術の高性能の第２レベルのSRAMのキャシュメモリデバイスは、一般的に、複数のピン及び機能仕様に適合しており、システムロジックコントローラ110が、複数の製造元から供給された様々な異なるSRAMキャシュメモリに対する適合性を操作するようになっている。そのようなピンと機能の使用との幾つかの例は、次の参考文献「Pentium（TM）Processor  3.3V  Pipelined  BSRAM  Specification」（1994年10月５日  インテル社  バージョン1.2）「32K×32K  CacheRAM（TM）pipelined/Flow  Through  Outputs  Burst  Counter,＆  Self−Timed  Write−−For  Rentium（TM）/PowerPC（TM）Processors」（1994年５月、インテグレイテッド・デバイス・テクノロジー・インコーポレイテッド、Advance  Information  IDT71V432）と、「32K×32K  CacheRAM（TM）Burst  Counter  ＆  Self−Timed  Write−−For  the  Pentium（TM）Processor」（1994年５月、インテグレイテッド・デバイス・テクノロジー・インコーポレイテッド、Preliminary  IDT71420）に説明されている。
従って、DRAMメモリを、通常は第２レベルのSRAMキャシュメモリを制御する通常の論理コントローラとの間でインタフェースされる第２レベルのキャシュメモリとして用いることを可能とする方法及び構成が望まれている。更に、従来の論理コントローラの変形を最小限に必要とす方法及び構成が望まれている。
発明の開示
本発明に基づけば、第２レベルのキャッシュメモリとして、DRAMアレイ若しくは複数のDRAMアレイを構成するための構成及び方法が提供される。本発明に基づく構成は、中央処理ユニット（CPU）、CPUと共に集積化されたSRAMキャッシュメモリ、CPUに接続されたCPUバスを備えたコンピュータシステム、及びCPUバスに接続されたDRAMアレイを有する第２レベルのキャッシュメモリを含む。第２レベルのキャッシュメモリは、或る実施例ではスタンドアロン型のメモリとして構成されている。他の実施例では、この第２レベルのキャッシュメモリはモノリシック集積化回路（IC）にシステムロジックと共に構成されかつ集積化されたメモリである。インテル社のペンティアム等の高ピンカウントマイクロプロセッサに対しては、コンパニオンシステムロジックコントローラが、複数の集積回路チップ（例えばインテル社の82430PCIセット）に伝達されていてもよい。そのようなシステムでは、本発明の第２レベルのキャッシュDRAMアレイは、システム論理チップの内の１つに集積化されていてもよく、好ましくはデータバスのためのシステム論理チップに集積化されている。他の構成では、第２レベルのキャッシュメモリはCPUとともに集積化されている。
本発明のDRAMアレイにアクセスするとき、行アクセス及び列デコーディング動作は、非同期的にセルフタイマ式に行われる。次に、予め決められたシーケンスの列選択動作が行われ、ここで列選択動作は１つのクロック信号に同期している。この非同期・同期アクセス方法は、DRAMアレイのアクセスの待ち時間を低減する。
ある実施例では、DRAMアレイが、CPUバスクロック信号に応答したデュアルエッジ伝達モードで動作する。次に、DRAMアレイが、このCPUバスクロック信号の周波数の２倍の周波数でアクセス動作を行う。従ってデュアルアクセスはCPUバスの動作の２倍の速さで行われる。
他の実施例では、第２レベルのキャッシュメモリは、CPUバスに接続されたフェーズロックトループ（PLL）回路を含む。このPLL回路は、CPUバスクロック信号の周波数よりも高い周波数を有する高速クロック信号を発生する。この高速クロック信号は、DRAMに供給されて書き込み及び読み出し動作を制御する。ある実施例では、高速クロック信号はCPUバスクロック信号の２倍の周波数を有する。この場合も、DRAMアクセスはCPUバスの動作の２倍の速度で行われる。
更に他の実施例では、第２レベルのキャッシュメモリは、CPUバスに接続されたフェーズロックトルーブ（PLL）回路を含む。PLL回路は、CPUバスクロック信号と等しい周波数のバッファされたクロック信号を発生し、CPUバスクロック信号に対して様々な位相関係を有する。
データ値は、DRAMアレイから、DRAMアレイに接続されたデータ入力ポートとCPUバスに接続されたデータ接続ポートとを備えた読み出しファーストインファーストアウト（データバッファ）メモリを介して、CPUバスに読み出される。データ入力ポートは、高速クロック信号によってクロックされており、データ出力ポートは、CPUバスのクロック信号によってクロックされている。DRAMアレイからのデータの読み出しが、CPUバスへの読み出しよりも早く行われるので、DRAMアレイをプレチャージするための時間が設けられる。このプレチャージ時間は、従って、第２レベルのキャシュメモリからの読み出し動作の間に、CPUバスから「隠れた」ものとなっている。代わりに、DRAMアレイと読み出しデータバッファとの間のデータ入力ポートの幅を拡張してもよく、データ入力ポートがCPUバスのクロック信号のバッファされた信号によってクロックされてもよい。このような変更によって、DRAMアレイと読み出しデータバッファとの間のより早い内部データ伝達速度が達成され、従ってDRAMアレイをプレチャージするための時間が設けられる。
データ値は、また、CPUバスから、DRAMアレイに接続されたデータ出力ポートとCPUバスに接続されたデータ入力ポートとを備えた書き込みデータバッファメモリを介して、DRAMアレイに書き込まれる。書き込みデータバッファメモリの出力ポートは、高速クロック信号によってクロックされており、書き込みデータバッファメモリの入力ポートはCPUバスクロック信号によってクロックされている。第１の集合のデータ値は、第２の集合のデータ値が書き込みデータバッファメモリへ書き込まれるまで、書き込みデータバッファメモリに書き込まれかつ記憶されている。この時、データ値の第１の集合のデータ値が、高速クロック信号の周波数でDRAMアレイに書き込まれる。第１の集合のデータ値は、第２の集合のデータ値が書き込みデータバッファメモリに書き込まれるよりも早くDRAMアレイに書き込まれるので、DRAMのプレチャージ動作は、第２の集合のデータ値が書き込みデータバッファメモリへ書き込まれる間に行われる。従って、DRAMの書き込み動作は、第２のキャシュメモリに対する書き込み動作の間にCPUバスから効果的に「隠れた」状態にある。代わりに、書き込みデータバッファメモリとDRAMアレイとの間のデータ出力ポートの幅を拡張してもよく、データ出力ポートがCPUバスのクロック信号のバッファされた信号によってクロックされてもよい。このような変更によってまた、書き込みデータバッファメモリとDRAMアレイとの間のより早い内部データ伝達速度が達成され、これによりDRAMアレイをプレチャージするための時間が設けられる。
DRAMアレイを、CPUバスに比べてより広いデータバスによって、若しくはより早いクロック信号によって動作させることにより、DRAMメモリアレイは、第２メモリのキャシュメモリに必要とされる速度及び動作条件を満足するように用いることができる。そのようなDRAMメモリアレイは、従来のSRAMを用いた場合に比べて、低コストで、通常75％未満で、使用することができる。
他の実施例では、DRAMアレイへの及びDRAMアレイからのデータ値は、センス増幅器回路と、データ増幅回路と、センス増幅器回路とデータ増幅回路との間に接続された列セレクタとを介してルートされる。この時、DRAMアレイへのデータ値の書き込みは、（１）データ増幅器回路をセンス増幅器回路から切り離すための、列セレクタを開く過程と、（２）書き込みデータバッファメモリからのデータ値のデータ増幅器回路への、DRAMアレイでの行アクセス動作の実行と実質的に並列形式で行われる、書き込み過程と、（３）データ増幅器回路をセンス増幅器回路へ接続するための列セレクタを閉じた状態にし、センス増幅器回路を介してデータ値をDRAMアレイに供給する過程とを有する。書き込みデータバッファメモリへのデータ値の書き込みを、行アクセス動作と並列に行うことによって、DRAMアレイをプレチャージするための時間を増加させることができる。
列セレクタは更に、DRAMプレチャージ動作の時間を増やすためにDRAM読み出し動作の間にも用いることができる。そのために、データ値はDRAMアレイからセンス増幅器回路へ読み出される。列セレクタは、次に閉じた状態となり、センス増幅器回路をデータ増幅器回路へ接続する。データ値がデータ増幅器回路へ書き込まれた後に、列セレクタが開いた状態となり、これによってセンス増幅器回路がデータ増幅器回路から切り離される。データ値は、次に、DRAMアレイがプレチャージされている間にデータ増幅器から読み出される。
本発明のDRAMキャッシュメモリは、トランザクションベースによってトランザクションで動作する。トランザクションは、ある与えられたアドレスに対する１つの完全な読み出し若しくは書き込みデータアクセスサイクルとして定義される。トランザクションは、１つのデータ値の伝達、又は４つのデータ値のバースト伝達を含む。バースト伝達は、連続したクロックサイクル、即ち１つ置きのクロックサイクル、又は２つ置きのクロックサイクルで、データ値を伝達する。DRAMキャッシュメモリのトランザクションは、読み出しトランザクションまたは書き込みトランザクションの何れかとして実行されなければならず、両方のトランザクションとしては実行できない。即ち、DRAMキャッシュメモリのトランザクションは、部分的な読み出しトランザクション及び部分的な書き込みトランザクション、又はデータの伝達が始まる前の読み出しトランザクションからの書き込みトランザクションへの変更を含むものではない。一方、標準的なSRAMでは、バーストSRAM（DSRAM）またはパイプラインされたバーストSRAM（PBSRAM）メモリでは、トランザクションは読み出し若しくは書き込みの何れとしても開始され、クロックベースによるクロックへの書き込み若しくは読み出しへの変化として開始される。この理由は、SRAMのアクセスは、入力レジスタ若しくは出力レジスタを伴うか否かにかかわらず、メモリセルアレイから及びメモリセルアレイへ直接行われ、読み出し若しくは書き込み動作がメモリセルへ直接行われるからである。
本発明のDRAMキャシュメモリのトランザクションベースの構成は、DRAMキャシュメモリと書き込み動作をバッファするために用いられる書き込みデータバッファとの内部の２ステップのアクセス（RAS及びCAS）を原因として生ずる不正な若しくは遅れた内部動作を防止するために制御信号を用いる。好適な実施例では、CPUによって開始されたアドレスストローブ入力信号（ADSP＃）と、コントローラによって開始されたアドレスストローブ入力信号（ADSC＃）が、標準のPBSRAMに適合する方法により、新たなトランザクションの開始を表すために用いられている。ライト書き込みイネーブル入力信号（BWE＃）と、グローバル書き込み入力信号（GW＃）が、標準的なPBSRAMと適合する方法によって書き込み制御信号として用いられている。更に、W/R＃入力信号（通常はCPUによって供給されている）が、公知の方法によって実行されるDRAMキャシュメモリの読み出し及び書き込みトランザクションをイネーブルするために用いられている。
SRAMアレイとは異なり、DRAMアレイは、また、データの完全性を補償するためにセルのキャパシタの電荷を再充電するために周期的なリフレッシュ動作を必要とする。通常のCPU動作及びシステムコントローラの動作を妨害せずに、DRAMアレイのリフレッシュ（内部）動作を行うために、ハンドシェイク（Krdy）信号が、DRAMキャシュメモリとシステムコントローラとの間のデータの伝達のために必要とされので、一方DRAMアレイがリフレッシュされるあいだにシステムコントローラの動作とCPUの動作が遅れることもある。好適な実施例では、DRAMアレイの１つの信号ピンが、ハンドシェイク信号を伝達するために用いられている。この信号ピンは、標準的なPBSRAMシステムコントローラに対して最大の適合性を保持するものである。
或る実施例では、Krdy信号のたち下がりエッジが、リフレッシュ動作またはその他の内部動作リクエストが継続中であることを表し、Krdy信号の立ち上がりエッジが、リフレッシュ若しくは他の内部動作が完了していることを表す。Krdy信号の極性は任意に選択され、同じ効果を得るために相異なる極性を用いてもよい。DRAMキャシュメモリとシステムコントローラの両方が、少なくとも各々の新たなトランザクションの開始時点でKrdy信号をサンプリングして、このトランザクションはADSP＃信号若しくはADSC＃信号によって表されている。
このKrdy信号は、また、違う用いられ方をしてもよい。或る好適な実施例では、Krdy信号は入力／出力信号として用いられている。複数のDRAMキャシュメモリデバイスがメモリの幅若しくは長さを拡張するために、若しくは幅及び長さを拡張するために用いられている場合、Krdy信号は、複数のメモリデバイスにおいてDRAMリフレッシュ及び／又は内部動作を同期化するために用いられる。より詳しくは、DRAMキャシュメモリ装置のうちの１つが、リフレッシュ動作のためのマスタ装置として指定されている。このマスタDRAMキャシュメモリ装置は、Krdy信号を、システムコントローラの間の情報の伝達をするために、及びリフレッシュ制御関数を制御するために用いる。残りのDRAMキャシュメモリデバイスの各々は、Krdy信号を占有し、かつスレーブデバイスとして指定されている。各々のスレーブデバイスは、それ自身をリフレッシュ若しくは内部動作を適切に制御するために、Krdy信号の状態をサンプルする。
他の実施例では、Krdy信号は、システムコントローラによって供給され、各々のDRAMキャシュメモリは、低状態のKrdy信号を検出したときに、予め決められたリフレッシュ動作を開始しそして完了する。本発明は、図面を参照しながら行われる以下の詳細な説明によってより十分に理解される。
【図面の簡単な説明】
第１図は、第２レベルのSRAMキャッシュメモリを有する従来技術のコンピュータシステムのブロック図である。
第２図は、本発明に基づく第２レベルのDRAMキャッシュメモリを有する従来技術のコンピュータシステムのブロック図である。
第３（ａ）図及び第３（ｂ）図は、各々、セルフタイム形式のRAS/CAS/バーストアクセスシーケンサの模式図と、タイミング図とである。
第４図は、高速列アクセス回路の模式図である。
第５図は、CPUバスクロックの２倍の周波数で第２レベルのDRAMキャッシュメモリの動作を行わせるための回路の模式図である。
第６図は、２−１−１−１の第２レベルのDRAMキャッシュ読み出し動作のタイミング図である。
第７図は、２−１−１−１の第２レベルのDRAMキャッシュ書き込み動作のタイミング図である。
第８図は、本発明の他の実施例に基づく２−１−１−１の第２レベルのDRAMキャッシュ読み出し動作のタイミング図である。
第９図は、本発明の他の実施例に基づく２−１−１−１の第２レベルのDRAM書き込み動作のタイミング図である。
第10図は、本発明のある実施例に基づく３−１−１−１の第２レベルのDRAMキャッシュ読み出し動作のタイミング図である。
第11図は、本発明のある実施例に基づく３−１−１−１の第２レベルのDRAMキャッシュ書き込み動作のタイミング図である。
第12図は、リフレッシュ制御コントローラの模式図である。
第13図は、本発明のある実施例に基づく、キー信号ピンを備えた通常のシステム環境での第２レベルのDRAMキャッシュメモリを表す模式図である。
第14（ａ）図及び第14（ｂ）図は、本発明のある実施例に基づく、トランザクションベースの第２レベルのDRAMキャッシュ書き込み及び読み出し動作のタイミング図である。
第15図は、DRAM（第２レベルの）キャッシュメモリに対するキャッシュレディ信号のハンドシェイクプロトコルのタイミング図である。
発明を実施するための最良の形態
第２図は、本発明に基づく第２レベルのDRAMキャッシュメモリ213を含むコンピュータシステム200のブロック図である。コンピュータシステム200は、第２レベルのDRAMキャッシュメモリ213の他に、CPU201と、第１レベルのSRAMキャッシュメモリ202と、CPUバス204と、ラッチ212及び216と、第２レベルSRAMキャッシュタグメモリ208と、システムロジックコントローラ211と、主DRAMメモリ214と、システムバス218と、ブリッジバッファ回路222と、システムバスデバイス220と、拡張バス224とを含む。
DRAMキャッシュメモリ213は、「第２レベルの」キャッシュメモリとして説明されているが、本発明は、また第２レベルの（例えば、第３レベル若しくは第４レベルの）より高いレベルのキャッシュメモリにも用いることができることが理解される。一般的に、本発明は、「次のレベルの」キャッシュメモリに用いることができ、ここで「次のレベルの」キャッシュメモリとは、プロセッサと大容量の主メモリ（この主メモリは通常DRAMからなる）との間に接続されたキャッシュメモリとして定義されている。この定義を用いることによって、「第２レベルのキャッシュメモリ」は、以下の説明では「次のレベルのキャッシュメモリ」と置き換えることができる。
通常は第１レベルのSRAMキャッシュメモリ202と同じ集積回路チップに集積化されて製造されるCPU201は、CPUバス204の制御、アドレス、及びデータラインに接続されている。第２レベルのSRAMキャッシュタグメモリ208は、ラッチ212を介してCPUバス208のアドレスラインからアドレス信号を受け取る。システムロジックコントローラ211（第２レベルのDRAMキャッシュメモリ213と主メモリ214とを制御する）が、CPUバス204の制御、アドレス及びデータラインに接続されている。ある実施例では、主DRAMメモリ214は、ラッチ216を介してCPUバス204のデータラインからのデータ信号を受け取る。他の実施例では、主DRAMメモリ214は、データパス226を介してシステムロジックコントローラ211からデータ信号を受け取る。システムロジックコントローラ211は、キャッシュタグメモリ208及び主メモリ214との間で従来通り情報の伝達を行う。或る実施例では、SRAMキャッシュタグメモリ208と、ラッチ212と、システムロジックコントローラ211と、第２レベルのキャッシュメモリ213とは、同一の集積回路チップ210に製造されている。他の実施例では、第２レベルのDRAMキャッシュメモリ213と、システムロジックコントローラ211とは別個の集積回路チップ上に製造されている。更に他の実施例では、第２レベルのDRAMキャッシュメモリ213とシステムロジックコントローラ211とは、CPU201と第１レベルのSRAMキャッシュメモリ202とが設けられている集積回路チップに製造されている。
CPUバス204、SRAMキャッシュタグメモリ208、システムバス218及び主メモリ214からのデータバスは、システムロジックコントローラ211に接続されているので、このシステムロジックコントローラ211は、CPUバス204とタイアップせずに局部的にデータトラフィックの大部分を制御することができる。例えば、システムロジックコントローラ211は、主メモリ214と第２レベルのDRAMキャッシュメモリ213との間の、又はシステムバス218と主メモリ214との間のデータトラフィックを制御する。従って、CPUバス204の負荷がより軽くなり、CPUバス204の物理的なレイアウトがより小型になり、従ってCPUバス204の動作がより迅速となる。
本発明の実施例は、SRAMセルベースの第２レベルのキャッシュメモリの性能と整合する第２メモリのキャッシュメモリとして、第２レベルDRAMキャッシュメモリ213を良好に使用するための多くの課題を解決する。これらの課題には、（１）低速度のアクセスの待ち時間と、（２）プレチャージ時間と、（３）リフレッシュの調停及び制御とが含まれている。これらの課題は以下に説明するよう解決される。
（１）低速度のアクセスの待ち時間
DRAMセルアレイのアクセスタイムは、行アクセス（RAS）時間（即ち、行アドレスをデコードし、行ワードラインを選択し、DRAMセルアレイから列領域のセンス増幅器へ１行のデータビットをロードするために要する時間）と、列アクセス（CAS）待ち時間（即ち、列アドレスをデコードし、列を選択し、センス増幅器からデータ増幅器へデータを読み出し、次にデータ信号を集積回路チップの入力／出力領域に伝達するために要する時間）とからなる。行及び列アクセスの待ち時間の合計は、SRAMアクセスの待ち時間（７から25n秒）に比較してかなり長い（45から60n秒）。DRAMアクセスは長く、その理由は、２ステップのシーケンシャルなアクセスと、かなり長い列デコーディング及びアクセス時間（17から25n秒）とである。
疑似SRAM及びBiCMOS高速DRAM（例えば、デマルチプレクスアドレス方式を用いた日立製作所の35n秒・１メガバイトのBiCMOSDRAM）などのいくつかの従来技術のDRAMデバイスは、全体の行及び列アドレスが一度に集積回路チップに供給され、かつ内部の２ステップアクセスが完全に非同期的に行われるSRAM類似のインタフェースを用いている。しかしながら、これらの疑似SRAMデバイスは、RAS及びCASデータ動作、プレチャージ時間、及びアレイリフレッシュ動作を、各アクセスサイクルに組み合わせて、標準の非同期SRAM動作をエミュレートしている。その結果、これらの疑似SRAMデバイスは、非常に低速度で、キャッシュメモリとして用いるには適さない。
BiCMOS高速DRAMは、デマルチプレクスアドレス方式によって、行及び列アドレスが、別個のアドレスピンを用いて各アクセスサイクルの初めにロードされるので、短い初期アクセス時間を有する。しかしながら、BiCMOS高速DRAMは依然として、従来の非同期DRAM（即ち長いアクセスサイクル時間と比較的低速度の一連のアクセス）という制約の下で動作するものである。
本発明のある実施例では、第２レベルのDRAMキャッシュメモリ213へのアクセスは、第２レベルのDRAMキャッシュメモリ213内へセルフタイム形式のRAS/CAS/バーストシーケンサを含めることによってより速く行われる。バーストシーケンサは、以下に説明されるようにシームレス方式でDRAMアクセスの非同期的及び同期的動作を制御する。第3a図は、本発明に基づくセルフタイム形式のRAS/CAS/バーストシーケンサ300のブロック図である。バーストシーケンサ300は、第２レベルのDRAMキャッシュメモリ213内に含まれているアクセス回路の一部を表している。バーストシーケンサ300は、制御回路301と、行アドレスレジスタ302と、列アドレスレジスタ303と、行デコーダ304と、行セレクタ305と、センス増幅器制御回路306と、遅れ回路307−308と、センス増幅器回路306と、列デコーダ310と、列セレクタ311と、データ増幅器回路321と、バーストシーケンスコントローラ313とを含む。バーストシーケンサ300は、DRAMメモリセル317のアレイをアクセスするために用いられる。
第3b図は、バーストシーケンサ300の動作を表す波形図である。第２レベルのDRAMキャッシュメモリ213にアクセスするために、CPU201は、第２レベルのDRAMキャッシュメモリ213にCPUバス204を介して制御信号を伝達する。第２レベルのDRAMキャッシュメモリ213は、この制御信号を、アドレスストローブ信号（例えば第５図のタイミング制御回路502を参照）に変換し、制御回路301に供給する。CPU201はまた第２レベルのDRAMキャッシュメモリ213にCPUバス204を介してアドレスを伝達する。第２レベルのDRAMキャッシュメモリ213は、この制御信号を列及び行アドレス（第５図のアドレスバッファ503を参照）に変換し、行アドレスレジスタ302と列アドレスレジスタ303とに各々供給する。アドレスストローブ信号に応答して、制御回路301は、各々、レジスタ302と303にラッチされる全行アドレスと全列アドレス（図面を明瞭にするために図示されてはいないが、及びバンクアドレス）を発生させる。行アドレス及び列アドレスを同時にラッチすることは必要なく、この理由は列アドレスはRAS動作が完了するまで必要ないからである。RAS動作の完了する前に列アドレスがレジスタ303へラッチされる限り、速度に関する不利は生じない。
行アドレスレジスタ302に記憶された行アドレスと、制御回路301によって発生された行デコード信号（第3B図）とが、行デコーダ304に伝達される。これに応じて、行デコーダ304は、行アドレスをデコードし、このデコードされたアドレスを行セレクタ305に伝達する。行セレクタ305は、DRAMアレイ317内の適切なワードラインをオン状態にする（第3B図）（即ち、行選択動作を実行する）。
次に、センス増幅器イネーブル信号（第3b図）が、遅れ回路307によって発生され、センス増幅器回路306に伝達される。これに応じて、センス増幅器回路306のセンス増幅器が導通状態となり、DRAMアレイ317内の選択された行のデータ値を受け取る。遅れ回路307によって生み出された非同期遅れが、行デコーダ304と、行セレクタ305と、DRAMアレイ317の固有の遅れに基づいて選択され、センス増幅器回路306は、DRAMアレイ317の選択された行からのデータ値が利用可能になるとすぐに（即ち、行アクセス動作が完了するとすぐに）イネーブルされる。遅れ回路307は、インバータの直列に接続された回路若しくはRC回路などさまざまな方法によって実現される。
行アクセス動作が実行されているのと同時に、列アドレスが列アドレスレジスタ303から列デコーダ310に供給され、列デコーダ310は列デコード動作を実行できる。同時に、バーストシーケンスコントローラ313がセットアップされ、列アドレスレジスタ303から受け取られた初期列アドレスに基づいてシーケンスをスクランブルする特別なアドレスを供給する。例えば、インテル486及びペンティアムマイクロプロセッサ「modula−４」シーケンスは、０−１−２−３、１−０−３−２、２−３−０−１、及び３−２−１−０である。
センス増幅器回路306がオン状態となり、列デコード動作が完了した後に、列デコーダ310は、遅れ回路308からの列デコードイネーブル信号を受け取る。この列デコードイネーブル信号によって、列デコーダ310が列セレクタ311へデコードされた列アドレスを供給する。初期のデコードされた列アドレスが列セレクタ311に供給された後に、バーストシーケンスコンピュータ313によって、列デコーダ310は各々の半分のクロックサイクルの間に一度だけ列セレクタ311へ供給されるデコードされた列アドレスを順番に変化させる。その結果、順番のデータ（バーストシーケンスコントローラ313によって決定された適切なバーストシーケンススクランブルを伴った）が、クロック信号と同期してデータ増幅器312へ読み込まれる。ある実施例では、クロック信号はCPUバスクロック信号（即ち、CPUバス304によって供給されたクロック信号のバッファされたコピーのクロック信号）からなる。
クロック信号はまたデータ増幅器回路312へも供給される。データは、クロック信号の立ち上がりエッジと立ち下がりエッジの両方でデータ増幅器回路312からデータライン330へ読み出される（即ち二重エッジ伝達）。本明細書中では、動作が「クロックエッジで」発生したと記載された場合、その動作はクロックエッジの発生の直後に行われることを表している。
バーストモードの書き込み動作は、データが集積回路チップの入力／出力回路から供給され、かつ適切なバーストアドレスシーケンスを伴って適切なセンス増幅器306へ列セレクタ311を介して及びデータ増幅器312へ同期してロードされること以外は、読み出し動作と概ね等しい。非同期的なセルフタイムのRAS及びCAS動作によって、クロック周波数とは独立した非常に厳密なアクセスタイミング（即ち、RAS及びCASアクセス時間が一定であり、かつクロック周波数の関数ではないということ）が達成され、一方同時にクロック周波数に比例するバースト読み出し／書き込み動作のための十分に同期した動作を用いることができる。
第４図は、第3a図の列セレクタ311とデータ増幅器回路312との一部分の模式図である。以下の説明は、第４図の回路が二重エッジデータ伝達を行うものとして説明される。
列セレクタ311は、３個のデコーダ311aと311bとを含む。ツリーデコーダ311aと311bは、予め決められた数の（例えば32本の）相補信号ラインを介してセンス増幅器回路306に接続されている。ツリーデコーダ311aと311bは列デコーダ310にも接続されている。この例示された実施例では、列デコーダ310は制御信号SA［7:0］及びFB［3:0］を供給し、この信号によってツリーデコーダ311aと311bは、センス増幅器回路306のセンス増幅器の１つをデータ増幅器回路312へ選択的に接続する。
データ増幅器回路312は、データ増幅器312aと312b、マルチプレクサ907、読み出しデータラッチ914、書き込みバッファ903と913、３状態バッファ905、及びクロック発生回路918を含む。第４図に例示された回路は、センス増幅器回路306の64個のセンス増幅器を構成する。第４図の回路は、センス増幅器回路306の64個のセンス増幅器ごとに繰り返される。或る実施例では、データ増幅器回路312のデータ増幅器の全個数は、DRAMアレイ317から読み出される若しくはDRAMアレイ317へ書き込まれる各データワードのビット数と等しい。
ツリーデコーダ311aと311bの相補出力は、各々、データ増幅器312aと312bとに供給されている。データ増幅器312aと312bは、交差接続されたトランジスタ907−903とトランジスタ974−977とを含む再構成可能なラッチからなる。これらの再構成可能なラッチは、局部的に発生された信号位相クロック信号Dsenseによって制御されている。ローカルセルフタイムクロック回路918は、データ増幅器312a及び312bと、マルチプレクサ907とを制御するために用いられる制御信号を発生する。列プレチャージ信号/PC及びDsense信号は、クロック信号、列アクセス（CAS）信号及びバスプレチャージ信号/WE（書き込み動作のための）に応じて発生するCA及び/WE信号は、制御回路301によって発生される。クロック信号は、第3a図及び第3b図に関して説明されたクロック信号と等しい。/P及びDsense信号は、データ増幅器のペア312a及び312bの内部の回路を駆動することのない局部的な（ローカルな）信号である。即ち、制御信号のタイミングスキューは最小とされている。
読み出し動作
読み出し動作を実行するために、/WE信号はアサートされて高状態となる。その結果、書き込みバッファ903及び913のトランジスタ950−953が、ターンオフされ、３状態バッファ905が低インピーダンス状態とされる。CAS信号がアサートされて高状態となる。クロック信号の初めの半サイクルの間にクロック信号は論理高状態であり、従ってDsense信号と/PC信号との両方が論理高状態とされる。このような条件の下で、３個のデコーダが311a及び311bの相補出力が、各々、データ増幅器312aと312bとにラッチされる。
例えば、リード線925の論理低の信号と、リード線926の論理高の信号とが、トランジスタ971と927とをターンオンさせ、トランジスタ970と973とをターンオフさせる。高状態のDsense信号によってトランジスタ961がターンオンされる。その結果、ノード991が、トランジスタ972及び961を介してグランド電位にプルダウンされ、ノード992がトランジスタ971を介してVddにプルアップされる。同じように、リード線926の論理低の信号とリード線925の論理高の信号によって、ノード992はトランジスタ973及びトランジスタ961を介してグランド電位にプルダウンされ、、ノード991は、トランジスタ970を介してVddにプルアップされる。
データ増幅器312bは、データ増幅器312aと同じように動作して、リード線927と928の信号をラッチする。即ち、リード線927の論理高の信号と、リード線928の論理低の信号とが、ノード993をトランジスタ974を介してVddにプルアップし、ノード944をトランジスタ977及び962を介してグランド電位にプルダウンする。同様に、リード線927の論理低の信号とリード線928の論理高の信号とが、ノード993をトランジスタ976及び962を介してグランド電位にブルダウンし、ノード994をトランジスタ975を介してVddにプルアップする。
マルチプレクサ907内では、高状態のDsense信号によって、伝達ゲート995及び997が閉じた状態（即ち、導通状態）とされ、伝達ゲート996が開いた状態（即ち、非導通状態）とされる。その結果、ノード992の電圧が、伝達ゲート995と３状態バッファ905とを介してデータライン330へ伝達される。データライン330は、３状態バッファ905を入力／出力回路のバストランシーバへ直接接続する。この接続によって、このラインには他の信号がマルチプレクスされていないので、ルーティングキャパシタンス以外の負荷が発生しない。データライン330への負荷は、即ち、従来の方法に於ける負荷よりも実質的に小さい値となる。従って、本発明のデータラインは、より高い周波数（最高で250MHz）で動作することができる。
更に、ノード933の電圧が、伝達ゲート997を介して伝達され、読み出しデータラッチ914へ記憶される。クロック信号の２番目の半サイクルの間に、クロック信号が低状態となるので、信号Dsense及び/PCが低状態となる。この信号/PCに応答して、トランジスタ920−923がターンオンされる。その結果、リード線925−928がVdd（即ち、リード線925−928がプレチャージされる）に接続される。更に、低状態の信号Dsense信号が、伝達ゲート995及び997を開いた状態とし、伝達ゲート996を閉じた状態とする。その結果、読み出しデータラッチ914に記憶されている電圧が、伝達ゲート996と３状態バッファ905とを介して、この第２の半サイクルの間にデータライン330へ読み出される。上述されたように、増幅器回路306からデータライン330へのデータの二重エッジ伝達が行われる。
書き込み動作
書き込み動作を実行するために、/WE信号がアサートされて低状態となり、これによって３状態バッファ905が高インピーダンス状態となり、書き込みバッファ903及び913の各NORゲート954−957の入力に論理低信号が供給される。クロック信号の初めの半サイクルの間に、クロック信号が論理低状態なので、伝達ゲート906が閉じた状態となり、伝達ゲート916は開いた状態となる。データライン330の信号が、NORゲート955の入力にルートされる。例えば、データライン330の高状態の信号が、NORゲート955に対して論理低信号をトランジスタ951へ供給させ、これによりトランジスタがターンオフされる。NORゲート954の論理低の出力はNORゲート954の入力にも供給され、NORゲート954に対して論理高状態の信号を出力させ、トランジスタ950をターンオンさせる。
低い状態の/WE信号は又、信号Dsenseと/PCとを高い状態とし、これによってｐチャネルトランジスタ961−962をターンオフさせる。その結果、ｐチャネルトランジスタ971とｎチャネルトランジスタ972とがターンオフされる。従って、３個のデコーダ311aがリード線926から電源電圧Vddとリード線925のグランド電位の電源電圧とを受け取り、これにより高状態のデータ値がセンス増幅器の選択された列に書き込まれる。
入力データライン330からの入力が、論理低の信号の場合（上述された論理高の信号ではない場合）、ツリーデコーダ311aは、リード線926のグランド電位の電源電圧と、リード線925の電源電圧Vddとを、上述されたように受け取る。このようにして、クロック信号の各半サイクルの間に、データがデータライン330からセンス増幅器へ書き込まれる。伝達ゲート906と916とによって実行されるデマルチプレクスが必要であり、その理由はツリーデコーダ311aおよび311bによって選択されたアドレスが各クロックサイクルごとに一度だけ変化するからである。
ツリーデコーダ311a及び311bは、マルチプレクスの負荷を（通常の従来の方法による512ラインに対して）約12ライン（８＋４）に制限する。データ増幅器回路によって達成された低減された容量性負荷（ローディング）とより高い駆動信号とによって、データの帯閾幅が拡張される。
遅延マッチング
列回路における遅延マッチングは、クロック信号と、予めデコードされた列選択信号Sa［7:0］及びSb［3:0］と、データ信号とを、メモリアレイの列領域を介して同様に伝達するラインをルーティングすることによって最小化される。
他の実施例
第５図は、他の実施例を表しており、この実施例ではクロック信号の周波数が２倍にされ、クロック発生回路918（第４図）は、データ値が、クロック信号の各立ち上がり（又は立ち下がり）エッジで、データ増幅器回路312から読み出され（若しくはデータ増幅器回路312へ書き込まれ）るように変更されている。即ち、データ値は、上述された実施例と同じ速度でデータライン330を介して伝達される（即ち、CPUバスクロックの周波数の２倍の周波数で伝達される）。クロック発生回路918は、クロック信号がクロック発生回路918に供給される前に、１ビットカウンタ（図示されていない）を介して周波数が２倍にされたクロック信号を伝達することによって変更される。クロック発生回路918のその他の変更によって、第４図の回路が周波数が２倍にされたクロック信号に対して単一エッジ伝達モードで動作できることは、当業者には明らかである。
フェイズロックトループ（PLL）回路501は、CPUバスクロック信号（第２図のCPUバス204からの）をバッファし、CPUバスクロック信号と同じ周波数のクロック信号（以下1Xクロック信号と呼ぶ）と、CPUバスクロック信号の２倍の周波数のクロック信号（以下2Xクロック信号と呼ぶ）とを発生させる。1X及び2Xクロック信号は、入力されたCPUクロック信号に対して固定された位相関係を有する。これらの位相関係は、データのセットアップを行い、適切にデータを伝達するための時間を保持するように選択されている。
アドレスバッファ503は、CPUバスアドレスをラッチし、これを行及び列アドレスにデコードする（説明を簡単にするために、ここでは例示されていないが複数のDRAMアレイが存在する場合には、バンクアドレスをもデコードする）。タイミング制御回路502は、（アドレスバッファ503から受け取られた）CPUバスアドレスからの内部アドレスストローブ信号と、CPUバス204から受け取られた制御信号とから、内部アドレスストローブ信号を求める。アドレスストローブ、行アドレス、列アドレス、及び2Xクロック信号が、バーストシーケンサ300とDRAMアレイ317とへ供給される。バーストシーケンサ300とDRAMアレイ317とは、これらの信号に対して概ね上述されたように（第3a図参照）動作する。
アドレスバッファ503は、現在のアクセスが進行中に次のアクセス動作のアドレスを記憶するためのラッチ（プレフェッチバッファ）を更に有していてもよい。このプレフェッチバッファは、動作と動作の間の待ち時間サイクルを低減するように、バックトウバック動作が部分的にオーバラップするように、パイプライン動作を行うことができる。
第５図に例示された回路の残りの部分は、DRAMアレイに必要とされるプレチャージ時間によって生じた問題を解決するためのものである。
（２）プレチャージ時間
DRAMセルアレイの動作は、通常の読み出し若しくは書き込み動作（RAS＋CASアクセス）の後に、任意の後続のRAS動作が開始される前に、選択された行がデセレクト（de−selelct）され、かつセンス増幅器がターンオンされて等化にされることを必要とする。この動作は、プレチャージ動作と呼ばれる。このプレチャージ動作を実行するために必要とされる時間は、プレチャージ（PRE）時間と呼ばれる。このPRE時間は、センス増幅器と比較的高い容量性ビットラインとを十分に等化にするだけの十分の長さであり、次のRAS動作に関してセルのキャパシタからセンス増幅器へ供給された非常に小さい信号が正しくかつ高い信頼度で読み出される。このPRE時間は、DRAMが、SRAMによって容易にサポートされるバックトウバックアクセスを実行することを防止する。即ち、DRAMのアクセスサイクル時間はそのアクセス待ち時間よりも非常に長く（1.5Xから2X）、一方SRAMのアクセスサイクル時間は、そのアクセス待ち時間に概ね等しい。
SRAMの実行と共にDRAMを用いることができるようにするために、PRE時間は、CPUバスのアクセス動作から実質的に「隠れた」ものでなければならない。第５図に例示された読み出しデータバッファ504と、書き込みデータバッファ505と、書き込みデータバッファ506とが、このPRE時間はアクセス動作が隠れたものとなるように動作する。
以下により詳しく説明されるように2Xクロック信号は、DRAMアレイ317と、読み出しデータバッファ504のデータ入力端子と、書き込みデータバッファ506のデータ出力端子とを、クロックするために用いられる。1Xクロック信号は、読み出しデータバッファ504のデータ出力端子と、書き込みデータバッファ505のデータ入力端子とをクロックするために用いられる。
データ値は、読み出しデータバッファ504を介してDRAMアレイ317からCPUバス204へ読み出される。データ値は、2Xクロック信号の周波数で読み出しデータバッファ504へ読み込まれる。次に、データはCPUバスクロック信号の周波数で読み出しデータバッファ504から読み出される。このようにして、読み出しデータバッファ504は、クロック再同期化を実行する。
一方、データ値は、書き込みデータバッファ505と書き込みデータバッファ506とを介して、CPUバス204からDRAMアレイ317へ書き込まれる。データ値は、CPUクロック信号の周波数で書き込みデータバッファ505へ読み込まれ、2Xクロック信号の周波数で書き込みデータバッファ506から読み出される。
クロックとデータとのスキューを最小にするために、DRAMアレイ317は代わりに、ソース同期化形式のデータを伴って2Xクロック信号を読み出しデータバッファ504に供給してもよい。この代わりの2Xクロック信号は、DRAMアレイ317から出力された2Xクロック信号がDRAMアレイ317から出力されたデータ値に対する予め決められた遅れと位相関係とを有するように、選択されたパスに沿って伝達される、リターンクロック信号からなる。
第６図は、第５図の回路によって実行される２−１−１−１データ読み出しバースト動作のタイミング図である。アドレスストローブ信号がアサートされて低状態となった後に、RAS及びCAS動作が、セルフタイム非同期形式（第3a図及び第3b図参照）で開始される。アドレスストローブ信号がアサートされた後の２つの立ち上がりクロックエッジと、RAS及びCAS動作が完了し、バースト読み出し動作が、2Xクロック信号に対する完全に同期した形式でDRAMアレイ317によって実行される。DRAMアレイ317からの読み出しバーストデータは、2Xクロック信号によって読み出しデータバッファ504内へクロックされる。読み出しバーストデータは、1Xクロック信号で読み出しデータバッファ504からCPUバスへクロックアウトされる。読み出しデータバーストが完了すると直ぐに、プレチャージ動作がDRAMアレイ317に対して開始され、これによって次の動作に対するDRAMアレイ317が準備される。この次の動作は、通常のバックトウバックアクセス若しくはパイプラインアクセスの何れでもよい。この読み出しデータバーストは、2Xクロック信号で読み出しデータバッファ504へ書き込まれるので、データが1Xクロック信号によって読み出しデータバッファ504から読み出される前のプレチャージ動作を行うための時間が残されている。即ち、このプレチャージ時間は、CPUバス204から隠れている。このプレチャージ時間が十分短い場合、DRAMアレイ317は、次の動作のために一度に読み出されることが可能であり、これによりパイプライン動作が可能となる。
第７図は、２−１−１−１データ書き込みバースト動作のタイミング図を表している。CPUバス204のデータラインは、CPUバスクロック信号の周波数（即ち、1Xクロック信号の周波数）と同じ速度で書き込みバーストデータを受け取るので、全体の書き込みバーストは第５番目のクロックサイクルの終了まで完了しない。即ち、２−１−１−１データ書き込みバースト動作では、プレチャージ動作を行うための時間が残されていない。従って、別個の書き込みデータバッファ505（第５図）、CPUバス204から第１のグループの書き込みバーストベータ値（例えば、D1−D4）をラッチするために用いられる。第２のグループの書き込みバーストデータ値（例えば、D1/−D4/）がCPUバス204から伝達された時（複数の読み出しバーストが介在する場合もある）、第１のグループの書き込みバーストデータ値D1−D4は、書き込みデータバッファ506を介してDRAMアレイ317へ伝達される。第２のグループの書き込みバーストデータ値D1′−D4′は、次に、書き込みデータバッファ505へ記憶される。アドレスストローブ信号が、セルフタイムの非同期形式（第3a図及び第3b図を参照）によってRAS及びCAS動作を開始する。第１のグループの書き込みバーストデータ値D1−D4は、2Xクロック信号によって完全に同期した形式で書き込みデータバッファ506からクロックされる。データ値D1−D4がDRAMアレイ317へ書き込まれた後に、プレチャージ動作が開始される。書き込みデータバーストは2Xクロック信号によってDRAMアレイ317へ書き込まれるので、データ値D1/−D4/が1Xクロック信号によって書き込みデータバッファ505へ書き込まれる前に、プレチャージ動作を実施するための時間は残されている。即ち、プレチャージ時間はCPUバス204から隠れている。再び、プレチャージ時間が十分に短い場合、DRAMアレイ317は一度に次の動作に対する準備が整い、これによってパイプライン動作が可能となる。
第５図は、書き込みデータバッファ506から読み出しデータバッファ504へのデータバイパスパス510をも表している。データバイパスパス510によって、CPUバス204が、書き込みデータバッファ505若しくは書き込みデータバッファ506に記憶されまだDRAMアレイ317へ送られていない複数の書き込みバーストデータへアクセスすることを必要とするといった特別な場合が可能となる。このような場合、書き込みバーストデータは、書き込みデータバッファ506からDRAMアレイ317へ送られるのと同時に、書き込みデータバッファ506から読み出しデータバッファ504へ伝達される。
他の実施例では、更に別の書き込みデータバッファが、書き込みデータバッファ505とCPUバス204との間に接続され、書き込みデータバッファ505及び書き込みデータバッファ506によって形成された複数の高さ書き込みデータバッファの高さを増加させる。
前の世代のマイクロプロセッサ（即ち、CPU）は、第２レベルのDRAMキャシュメモリ213に対する書き込みデータバーストアクセスをサポートしない場合がある。このようなマイクロプロセッサでは、１つの書き込みアクセスが個別に伝達される。しかしながら、書き込みデータバッファ505と書き込みデータバッファ506は、上述されたようにDRAMアレイ317のプレチャージ時間を「隠す」ように動作することもできる。
他の実施例では、読み出しデータバッファ504、書き込みデータバッファ505及び書き込みデータバッファ506は、第3a図及び第4a図に例示された回路と共に用いられる。上述されたように、この回路によって、データは、1Xクロック信号の立ち上がり及び立ち下がりエッジの両方でデータライン330から伝達される（即ち、二重エッジ伝達）。1Xクロック信号で二重エッジ伝達を行う場合、PLL501は、必要なく、その理由はCPUバスクロック信号の２つのエッジが、データの伝達に用いられる必要なタイミングの基準を供給するからである。このような実施例では、読み出しデータバッファ504の入力ポートと、書き込みデータバッファ506の出力ポートは、1Xクロック信号の立ち上がり及び立ち下がりエッジの両方でクロックされるように変形される。
更に他の実施例では、上述されたバースト方法は、DRAMアレイ317の必要とするタイミングに応じて、異なるクロック周波数（例えば、4Xクロック周波数）で実行される。
DRAMアレイ317（第２図）のプレチャージ時間は、代わりに、センス増幅器回路306とデータ増幅器回路312との間の分離スイッチとして列セレクタ311（第3a図）のツリーデコーダ311a及び311b（第４図）を用いることによって隠される。データ増幅器回路312をセンス増幅器回路306から電気的に絶縁するために、切断制御信号が列デコーダ310に供給される。これに応じて、列デコーダ310は、ツリーデコーダ311a及び311b（第４図）の全てのスイッチが開いた状態となるように全ての制御信号Sa［7:0］及びSb［3:0］をディスエーブルし、データ増幅器312a及び312bをセンス増幅器Sa［63:0］と/SA［63:0］から絶縁する。列セレクタ311のスイッチは、データ増幅器回路312のデータ増幅器が安定した状態になると直ぐに聞いた状態となる。プレチャージ動作は、データ増幅器回路312及びセンス増幅器回路306が絶縁されると直ぐに開始される。
第８図は、本発明のこの実施例に基づく読み出しバースト動作のタイミング図である。絶縁は、RAS/CASアクセス動作が行われた後に生ずる。即ち、バースト読み出し及びプレチャージ動作は、同時に行われる。第８図はバースト読み出し動作が2Xクロック信号の周波数で実行されている様子を表しているが、このバースト読み出し動作は1Xクロック信号の周波数で実行されてもよく、その理由はバースト読み出し動作がプレチャージ動作と同時に行われるからである。バースト読み出し動作を1Xクロック信号の周波数で行うことにより、読み出し誤差と消費電力を大きく減少させることができる。
データ増幅器回路312がセンス増幅器回路306から切り離されると、データ値は、データ増幅器回路312だけからアサートされる。従って、バーストアクセスをサポートするためには、データ増幅器回路312のデータ増幅器の個数が、バーストアクセスの間に必要とされる全てのデータ値を記憶するために十分なものでなければならない。即ち、４ワードのバーストアクセスをサポートするためには、４ワードを形成する全てのビットを同時に記憶するためのデータ増幅器回路312の十分なデータ増幅器が必要とされる。このような実施例では、複数のセンス増幅器データ値が複数のデータ増幅器を用いて同時に複数のデータ増幅器へ読み込まれる。このことは、データ増幅器回路312が１つのワードの各ビットに対する１つのデータ増幅器のみを有することを必要とした上述された実施例とは対照的に異なる点である。
列選択器310が絶縁スイッチとして用いられている変形された実施例では、複数のDRAMアレイが同時にアクセスされてバーストアクセスを提供する。即ち、４個のDRAMアレイが４ワードのバーストアクセスを提供するために用いられる。これを実行するために、１つのデータワードが４個のDRAMアレイの各々のデータ増幅器へ同時に記憶される。次に、これらのDRAMアレイのデータ増幅器回路は、その対応するセンス増幅器回路から切り離される。次に、４個のワードが所望の順序でDRAMアレイのデータ増幅器回路から読み出され、一方DRAMアレイは同時にプレチャージされる。
第９図は、本発明のこの実施例に基づく書き込みバースト動作のタイミング図を表している。書き込みデータバッファ505は、書き込みバーストデータ値D1−D4の第１のグループを記憶している。第２のグループの書き込みバーストデータ値D1′−D4′を受け取ると、データ増幅器回路312は、センス増幅器回路306から絶縁され、第１のグループの書き込みバーストデータ値D1−D4は、2Xクロック信号の周波数で書き込みデータバッファ506を介してデータ増幅器回路312へ伝達される。同時に、RAS/CASアクセス動作が実行される。RAS/CASアクセス動作が完了した後に、データ増幅器回路312は、センス増幅器回路306へ接続され、これにより第１のグループの書き込みバーストデータ値D1−D4がセンス増幅器回路306へ供給される。次に、プレチャージ動作が開始される。書き込みデータは、2Xクロック信号の周波数でバーストされるので、プレチャージ動作を実行するための時間が提供される。その結果、プレチャージ動作は、第２のグループの書き込みバーストデータ値D1′−D4′と共に実行される次の書き込みバースト動作の前に実行される。
更に他の実施例では、データアレイ317と読み出しデータバッファ504との間のデータバスが拡張されている。第10図は、この発明のこの実施例に基づく３−１−１−1DRAM第２レベルのキャシュ読み出し動作のタイミング図を表している。この実施例では、1Xクロック信号（PLL回路501を用いずに、又はPLL回路501を用いて発生された）が、DRAMアレイ317での動作を開始させるために用いられている。同時に２つのデータ値を伝達する２倍幅の内部データパスが、DRAMアレイ317と読み出しデータバッファ504との間に設けられ、DRAMアレイ317と読み出しデータバッファ504との間のデータ転送速度を２倍にする。第10図では、２倍幅の内部データパスが例示されているが、他の幅の（例えば３倍幅の、４倍幅の）を有するデータパスが可能であり、本発明の技術的視点を逸脱するものではない。RAS及びCAS動作は、アドレスストローブ信号（新たなトランザクションを表す）がアサートされた後に開始される。アサートされたデータ値（例えば、D1−D4）がDRAMアレイ317からデータ増幅器回路312（第3a図）へ読み出されるとすぐに、列セレクタ310がセンス増幅器回路306をデータ増幅器回路312から切り離し、プレチャージ動作が開始される。これによって、DRAMアレイ317は最小のサイクル時間で動作できることになる。
バーストデータ値D1−D4は、1Xクロック信号の各サイクルで２つのデータ値が伝達される速度で内部データパスを伝達される。即ち、データ値D1及びD2は１つのクロックサイクルの間に伝達され、データ値D3とD4は次のクロックサイクルの間に伝達される。読み出しデータバッファ504に記憶されたデータ値は、CPUバスクロック信号の各サイクルごとに１つのデータ値の通常のデータ速度でCPUバス204へ伝達される。
他の実施例では、読み出しデータバッファ504は用いられておらず、データ値はCPUバスデータ速度で直接DRAMアレイ317からCPUバス204へ伝達されている。
全ての内部のRAS/CAS及びプレチャージ動作は、第10図に例示されているように留まる。データ値は、1Xクロック信号のサイクル当たり１データ値の速度で、１信号幅のデータパスから直接CPUバス204へ伝達される。本実施例では、第２レベルのDRAMキャッシュメモリ213の外部動作は、依然として標準的なPBFRAMに適合するものである。しかしながらこのモードの動作は、データ増幅器回路312からCPUバス204へのデータ値D3及びD4の伝達が、次の読み出し動作（データ値D1′−D4′を含む）のRAS/CASアクセスとパラレルに実行されることを必要とする。データ値D4とD1′との間に存在する可能性のある潜在的な内部バスの輻輳問題を最小にするべく十分な注意が払われなければならない。
DRAMアレイ317と書き込みデータバッファ506との間のデータパスもまた拡張される。第11図は、DRAMアレイ317及び書き込みデータバッファ506の間の拡張された幅のデータパスを用いる３−１−１−1DRAM第２レベルのキャッシュ書き込み動作のタイミング図である。この実施例では、1Xクロック信号がDRAM317の内部動作を開始させるために用いられている。1Xクロック信号は、PLL回路501若しくは単純なクロック信号のバッファリングによって発生される。本発明では必要とはされないが、第11図は、書き込みデータバッファ506とDRAMアレイ317との間の２倍の幅の内部データパスを備えたDRAMアレイ317の内部動作を例示している。この２倍の幅のデータパスは内部データの伝達速度を効果的に２倍にする。RAS及びCAS動作は、アドレスストローブ信号（新たなトランザクションを含む）がアサートされた後に開始される。以前に書き込まれたデータ値D10−D40の書き込みデータバッファ506からのデータバースト書き込み動作が、RAS/CAS動作とパラレルにデータ増幅器回路312に対して実行される。書き込みデータ値D10−D40がデータ増幅器回路312からセンス増幅器回路306へ伝達された後に、列セレクタ310がセンス増幅器回路306をデータ増幅器回路312から切り離す。列セレクタ310がこれらの要素を切り離した後に、プレチャージ動作が直ちに開始され、これによりDRAMアレイ317が最小のサイクル時間内で動作する。一方、書き込みデータバッファ506は、CPUバスクロック信号によって定義された通常のデータ速度で、CPUパス204からの新たな書き込みデータ値D1−D4を受け取る。
他の実施例では、書き込みデータバッファ506とDRAMアレイ317との間の拡張された内部データパスが用いられない場合、プレチャージ動作は、第11図に例示されたものよりも２クロックサイクルだけ遅れて開始される（即ち、以前の書き込みデータ値D10−D40の全てがDRAMアレイ317に到達した後に）。この実施例では、最小のサイクル時間は、第11図に関して説明された実施例よりも２クロックサイクルだけ長い。この実施例の第２レベルのDRAMキャッシュメモリ213の外部動作は、標準的なPBFRAMよりも低速度となる。
（３）リフレッシュ制御及びオービトレイション
受動的な電荷蓄積を伴う第２レベルのDRAMキャシュメモリ213は、各セルのキャパシタに蓄えられた電荷を定期的に補充するために（４から64ミリ秒ごとに）、リフレッシュ動作を必要とする。この理由は、接合部、トランジスタ、及び誘電体の漏れ電流が、蓄えられた電荷を漏洩させる原因となるからである。第12図は、本発明に関連して用いられるリフレッシュ制御回路800の或る実施例を表している。リフレッシュ制御回路800は、アドレスバッファ801と、リフレッシュカウンタ802と、インプログレスポインタ803と、比較器804と、キャシュタグ比較器805と、CPUアクセス遅れ回路806とを有する。リフレッシュ制御回路800は、第２レベルのDRAMキャシュメモリ213内で複数のDRAMアレイ（DRAMアレイ317と同様の）を用いる実施例に於いて用いられる。
リフレッシュカウンタ802はDRAMアレイのアドレスを保持し、かつ次にリフレッシュされる行を保持する。リフレッシュカウンタ802は、DRAMアレイに対するRAS/PRECHARGE動作と、これらのアレイを選択する信号と行とを適切なDRAMアレイへ伝達することによって初期化された（リフレッシュカウンタ802によって）等を周期的に初期化する。インプログレスポインタ803は、現在リフレッシュされたDRAMアレイのアドレスを表示する。各リフレッシュ動作は通常40から60ナノ秒の間続く。
任意のCPUバスのアクセスリクエストが、第２レベルDRAMキャシュメモリ213内にキャシュヒットがあるか否かを判定する比較を開始する。同時に、進行中のリフレッシュ動作が存在する場合、インプログレスポインタ803の内容（１つのアレイのリフレッシュに対してはDRAMアレイのアドレスであり、複数のアレイのリフレッシュに対してはDRAMアレイのアドレスの上位の複数のビットである）が、リクエストされたDRAMアレイのアドレスと比較器804によって比較される。任意の衝突（アレイのアドレスの一致）が、リフレッシュ動作が完了し、インプログレスポインタ803がクリアされ、かつ適切なレディ信号（ハンドシェイク（プロトコル）信号）がCPUアクセス遅れ回路806からCPUバスへ送られるまで、CPUアクセス遅れ回路806にCPUアクセスを遅延させる。CPUアクセス遅れ回路806の遅延は、リフレッシュ動作の公知のタイミングに基づいて予め決められた時間に設定されている。第２レベルのDRAMキャシュメモリ213を複数のバンクに区分することによって、リフレッシュ動作の間に発生する衝突の確率が比例して低減される。
PBSRAMに適合する実施例
第13図は、CPU1301、CPUバス1304、第２レベルのキャシュタグメモリ1308、システムコントローラ1311、システムバス1318、第２レベルのDRAMキャシュメモリ1313、主DRAMメモリ1314、及びデータパス1326を含むコンピュータシステム1300を例示する模式図である。コンピュータシステム1300は、例示されたキイ信号ピンを備えたPBSRAMと適合する環境で例示されている。この実施例では、第２レベルのDRAMキャシュメモリ1313は、２個の32K×32DRAMメモリアレイ1340及び1341（標準的なPBSRAMと適合性を有するピン配置及び接続を備えた）を含む。標準的なPBSRAMは、以下の信号、即ち、アドレス入力信号AD［18:3］、双方向データ信号Ｄ［63:0］、CPU開始アドレスストローブ入力信号ADSP＃、クロック入力信号CLK、コントローラ開始アドレスストローブ入力信号ADSC＃、カウンタ前進入力信号ADV＃、出力イネーブル入力信号OE＃、各種チップイネーブル入力信号CE1＃、CE2＃及びCE3＃、バイト書き込みイネーブル入力信号BWE＃、グローバル書き込み入力信号GW＃、及び箇々のバイト書き込み制御入力信号BW＃［7:0］とを用いる。これらの信号は、1994年10月５日に出版されたインテル社の「Pentium（TM）Processor  3.32V  Pipelined  BSRAM  Specification」バージョン1.2、により詳しく説明されている。
本発明では、上述された信号に加えて更にいくつかの信号が用いられている。即ち、DRAMアレイ1340と1341の各々は、CPU1301から、CPU開始ADSP＃信号の特性（即ち読み出し若しくは書き込み）を決定する読み出し／書き込み特定（W/R＃）信号を受け取る。DRAMキャッシュアレイ1340と1341の各々はまた、システムコントローラ1311に対するリフレッシュ制御（Krdy）信号を出力し、及び／または受け取る。このKrdy信号は、DRAMアレイ1340と1341の内部動作とリフレッシュ制御を制御するために行われる。DRAMキャッシュアレイ1340及び1341の各々はまた、電源投入動作の間の一般的な初期化及び同期化のためのReset＃信号をCPU1301から受け取る。
第14a図は、第13図に例示された信号を用いるトランザクションベースのDRAM第２レベルのキャッシュバースト読み出し及び書き込み動作のタイミング図である。第14a図のタイミング図は、標準的なPBSRAMの要求に適合するものである。ADSP＃、ADSC＃、ADV＃、CLK、GW＃、BWE＃、BW＃′、CE＃及びOE＃信号に対する信号の定義及び動作は、PBSRAMのこれらの信号と等しい。好適な実施例では、W/R＃、BWE＃、及びGW＃信号は、各トランザクションを一義的に決定するために、ADSP＃及びADSC＃信号と共に用いられる。ADSP＃信号が、ADSP＃によって開始されたトランザクションの開始時において、アサートされてロー状態となったとき（第4a図のR1及びW2に示されているように）、W/R＃信号は、読み出し動作及び書き込み動作の何れが実行されるべきかを表すように有効でなければならない。第14a図では、低状態のW/R＃信号は、読み出しトランザクションを表し、高状態のW/R＃信号は書き込みトランザクションを表している。第14a図では、チップイネーブル（CE1＃）信号は、R1及びW2動作がDRAMアレイ1340及び1341内で実行されるので、これらの動作の開始時において初めに低状態でなければならない。
ADSC＃信号が、ADSC＃開始トランザクションの開始時において（第14a図のW3及びR4として表されているように）アサートされている低状態となったとき、BWE＃及びGW＃信号が、読み出しトランザクション及び書き込みトランザクションの何れが実行されるべきであるかを表すために用いられる。BWE＃及びGW＃信号（図示されていない）の何れかが低状態の時、書き込みトランザクションが実行される。BWE＃信号及びGW＃信号の何れもが低状態でない場合、書き込みトランザクションが実行される。W3及びR4動作の開始時において、CE1＃信号は、W3及びR4動作がDRAMアレイ1340及び1341内で実行されるように低状態でなければならない。第14a図に例示されたバースト読み出し動作及びバースト書き込み動作は、第10図及び第11図に関して上述された実施例の１つに基づいて実行される。
第14b図は、第13図に例示された信号を用いたトランザクションベースのDRAM第２レベルのキャッシュ信号読み出し及び書き込み動作のタイミング図である。第14b図の信号のタイミングは、データ位相の長さ以外は、第14a図の信号のタイミングと等しい。
第15図は、コンピュータシステム1300（第13図）でのKrdy信号のハンドシェイクプロトコルを例示したタイミング図である。第15図に例示された信号は、NA＃及びBRDY＃信号以外は、第13図及び第14a図−第14b図に関して上述された信号と等しい。NA＃及びBRDY＃信号は、システムコントローラ1311によって発生され、CPU1301へ直接送られる。NA＃信号は、システムコントローラ1311が次のアドレスに対する準備が整っていることを表し、BRDY＃信号は、データ値がCPUバス1304上で準備が整っていることを表している。Krdy信号は、第２レベルのDRAMキャッシュメモリ1313のリフレッシュ制御を制御するために用いられる。
Krdy信号の立ち下がりエッジは、継続中のリフレッシュ動作または他の内部動作リクエストが存在することを表し、Krdy信号の立ち上がりエッジは、リフレッシュ若しくはその他の内部動作が完了していることを表している。Krdy信号の極性は任意に選択され、逆の極性が同じ効果を実行するために用いられても良い。DRAMキャッシュメモリ1313とシステムコントローラ1311の両方は、新たなトランザクションの各々の少なくとも開始時においてKrdy信号をサンプルし、そのトランザクションがADSP＃信号とADSC＃信号の何れによって開始されたものであるかを検出しなければならない。
ある実施例では、Krdy信号のハンドシェイクプロトコルの以下に示すように行われる。新たなトランザクションの開始時においてKrdy信号が高状態のとき、このトランザクションは通常通り完了されるように実行される。しかしながら、新たなADSC＃トランザクションの開始時においてKrdy信号が低状態の場合、Krdy信号が「最後のクロックサイクル内で」この低状態になり、ADSC＃トランザクションが完了するまで実行され、次にリフレッシュ動作が行われる。Krdy信号が１クロックサイクル以上に亘って低状態である場合、ADSC＃トランザクションは、Krdy信号が再び高状態となるまで遅延される。
新たなADSP＃トランザクションの開始時においてKrdy信号が低状態の場合、このADSP＃トランザクションは、Krdy信号が高状態となるまで遅延される。代わりに、ADSP＃トランザクションに対するハンドシェイクプロトコルが、ADSC＃トランザクションに対するハンドシェイクプロトコルと同様に定義される。即ち、新たなADSP＃トランザクションの開始時においてKrdy信号が低状態の場合、及びKrdy信号が「最後のクロックサイクル内で」この低い状態になったばかりの場合、ADSP＃トランザクションは、完了まで実行され、次にリフレッシュ動作が行われる。Krdy信号が１クロックサイクル以上に亘って低状態である場合、ADSP＃トランザクションは、Krdy信号が再び高状態となるまで遅延される。
もう１つの他のハンドシェイクプロトコルでは、システムコントローラ1311は、継続中のADSC＃トランザクションは存在するとき、Krdy信号の状態をもサンプルする。Krdy信号が低状態の場合、ADSP＃トランザクションが、Krdy信号が高状態となるまで遅延される。そうでなければ、継続中のADSC＃トランザクションが開始される。
Krdy信号は複数の目的に使うことができる。他の実施例では、Krdy信号は入力／出力信号として実現されている。複数のDRAMアレイ（例えば、第13図のアレイ1340と1341）が、メモリの幅拡張若しくはメモリの高さ拡張、またはその両方のために用いられている場合、Krdy信号は、複数のデバイスに亘るDRAMリフレッシュ及び／または内部動作を同期化するために用いられる。例えば、DRAMアレイ1340は、リフレッシュ制御のためのマスタデバイスとして指定される。このマスタDRAMアレイ1340は、システムコントローラ1311との間の情報のやり取りのために、及びリフレッシュ制御関数を制御するためにKrdy信号を用いる。残りのDRAMキャッシュメモリデバイス（例えば、DRAMアレイ1341）の各々は、Krdy信号ラインを占有し、スレーブデバイスとして指定されている。各々スレーブデバイスは、Krdy信号の状態をサンプルし、マスタデバイスと一致する方法でそれ自身のリフレッシュまたは内部動作を制御若しくは開始し、これによってマスタデバイスとの同期を保持する。
更に他の実施例では、Krdy信号はシステムコントローラ1311によって供給され、DRAMアレイ1340と1341の各々は、低状態のKrdy信号を検出した時、予め決められたリフレッシュ動作を開始し、且つ完了させる。第15a図に例示された実施例では、ADSP＃信号がアサートされて低状態となりW2書き込みトランザクションが開始された後に、Krdy信号がプルダウンされて継続中のリフレッシュイベントが存在することをが表される。ADSP＃信号がアサートされて低状態であるときKrdy信号は高状態なので、W2バースト書き込みトランザクション（データ値2a−2bを含む）が、通常の方法で実行されて完了される。W2バースト書き込みトランザクションが完了されたとき、リフレッシュ動作が開始される。ADSP＃信号がアサートされて低状態となったとき、読み出し（R3）トランザクションが続いて開始される。この時、Krdy信号は、リフレッシュ動作が完了していないので、依然として低状態である。低状態のKrdy信号は、リフレッシュ動作が完了するまでR3読み出しトランザクションを遅延させる。この例では、R3読み出しトランザクションは、１クロックサイクルだけ遅延される。ADSP＃信号（R3読み出しトランザクションに対する）が、第15図に例示されたものよりも早く開始した場合でさえも、このR3読み出しトランザクションは、第15図に例示されたクロックサイクルまで遅延される（即ち、この動作はKrdyが高状態に戻るまで遅延される）。
Krdy信号のハンドシェイクプロトコルは他の方法によっても実施される。１つの変形例は、リフレッシュ継続リクエストが、Krdyピンを用いてDRAMキャシュメモリ1313から開始され、システムコントローラ1313は、別個のピンのアクノリッジ信号をDRAMキャシュメモリ1313へ戻し、DRAMキャシュメモリ1313に対してリフレッシュ動作を開始する命令を与える。次に、Krdy信号が、リフレッシュ動作の完了時に若しくはリフレッシュ動作の完了が継続している時に、DRAMキャシュメモリ1313によって高状態にされる。このような構成によって、システムコントローラ1313の構成により柔軟性が与えられ、その理由はコントローラ1313が何時リフレッシュ動作が実際に開始されるかを制御できるためである。
他の変形例では、DRAMキャシュメモリ1313は、リフレッシュ継続状態を表すためにKrdy信号ピンを駆動し、システムコントローラ1318がリフレッシュ開始状態を表示するためにKrdy信号ピンを駆動する。このような構成により、リフレッシュ動作を実行するために必要とされるクロックサイクル数が固定され、DRAMキャシュメモリ1313とシステムコントローラ1318の両方は、これらのデバイスが一致した形式でリフレッシュ動作を追従することを可能とするカウンタを有する。
本発明が幾つかの実施例に関して説明されたが、本発明がこれらの実施例に限定されるものではなく、当業者には明らかな様々な変形を行うことができるものであることが理解される。即ち、本発明は添付の請求の範囲のみによって限定される。
【図１２】
0003576561.tif 000002
【図１】
0003576561.tif 000003
【図２】
0003576561.tif 000004
【図３ａ】
0003576561.tif 000005
【図３ｂ】
0003576561.tif 000006
【図４】
0003576561.tif 000007
【図５】
0003576561.tif 000008
【図６】
0003576561.tif 000009
【図７】
0003576561.tif 000010
【図８】
0003576561.tif 000011
【図９】
0003576561.tif 000012
【図１０】
0003576561.tif 000013
【図１１】
0003576561.tif 000014
【図１３】
0003576561.tif 000015
【図１４ａ】
0003576561.tif 000016
【図１４ｂ】
0003576561.tif 000017
【図１５】
0003576561.tif 000018