(57)【特許請求の範囲】
【請求項１】
各々がコマンドを受信する複数Ｎ個の外部ポートと、
該外部ポートにそれぞれ対応した複数Ｎ組のバスと、
ダイナミック型メモリセルで構成されたセル配列を含み該複数Ｎ組のバスに接続される複数のメモリブロックと、
該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドがアクセスするアドレスを比較するアドレス比較回路と、
該アドレス比較により同一のメモリブロックに対するアクセスを該アドレス比較回路が検出すると、同一のメモリブロックにアクセスするコマンドのうち何れを実行し何れを実行しないかを決定する裁定回路と、
該メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路
を含み、
第１のモードでは該複数Ｎ個の外部ポートの少なくとも１つへ入力されるリフレッシュコマンドに応じて該メモリセルをリフレッシュし、第２のモードでは該リフレッシュ回路が指定するタイミングで該メモリセルをリフレッシュすることを特徴とする半導体記憶装置。
【請求項２】
該複数Ｎ個の外部ポートが全て非活性である場合に該第２のモードになることを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
リフレッシュ対象のアドレスを生成するリフレッシュアドレスカウンタを更に含み、該リフレッシュアドレスカウンタは該裁定回路が発行したリフレッシュコマンドに応じてカウントアップすることを特徴とする請求項１記載の半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に半導体記憶装置に関し、詳しくは複数のポートを備えた半導体記憶装置に関する。
【０００２】
【従来の技術】
複数のポートを備えた半導体記憶装置であるマルチポートメモリには、いくつかの種類がある。以下において、マルチポートメモリと言った場合、複数のポートを持ちそれぞれのポートから共通のメモリアレイに対し独立にアクセスできるメモリを指すこととする。そのようなメモリでは、例えば、ＡポートとＢポートを備え、Ａポートに接続したＣＰＵとＢポートに接続したＣＰＵから共通のメモリアレイに独立に読み書きできる。
【０００３】
マルチポートメモリは、アービタと呼ばれる裁定回路を備える。このアービタが、複数のポートから受信したアクセス要求の優先順位を決定し、メモリアレイの制御回路が、この優先順位に従ってアクセスを順次実行する。例えば各ポートへの入力が早いアクセスから順番に、優先的に実行される。
【０００４】
このような場合、メモリアレイは複数のポートからランダムにアクセスされるので、1回のアクセスに対して読み出し又は書き込み動作を実施したら直ちにリセットして、次のアクセスに備える必要がある。即ち、あるポートからのアクセスに対して、例えばＤＲＡＭで一般的なコラムアクセス動作のようにワード線を選択状態に保持して順次コラムアドレスを移動して読み出していくといった動作をすると、別のポートからのアクセスがその間待たされ続けることになる。従って、1回の読み出し或いは書き込み動作後には直ちにリセットをする必要がある。
【０００５】
従来、マルチポートメモリのメモリアレイとしては、一般的にＳＲＡＭが用いられてきた。ＳＲＡＭはランダムアクセスが高速であり、また非破壊の読み出しが可能だからである。
【０００６】
例えば２ポートのマルチポートメモリでは、１つのＳＲＡＭメモリセルに対して、ワード線とビット線対が２セットずつ設けられる。一方のポートは、一方のワード線とビット線対のセットを用いて読み書き動作を実行し、他方のポートは、他方のワード線とビット線対のセットを用いて読み書き動作を実行する。これによって、２つのポートから独立に読み書きができることになる。但し、同じセルに両ポートから同時に書き込み指示があった時は、同時に実施することは不可能となるので、片方のポートを優先して実施し、他方のポートにはＢＵＳＹ信号を発生する。これをＢＵＳＹ状態という。
【０００７】
【発明が解決しようとする課題】
システムが高性能化するにつれて扱うデータ量も増大し、マルチポートメモリにも大容量が必要とされてきている。しかし上記のようなＳＲＡＭ型マルチポートメモリには、メモリセルの面積が大きいという問題がある。
【０００８】
これを解決するために、新しいタイプのマルチポートメモリとして、ＤＲＡＭアレイをマルチポートメモリに採用することが考えられる。マルチポートＳＲＡＭに対して大幅な高集積度を達成するためには、一般のＤＲＡＭセルの場合と同様に、マルチポートメモリに使用するＤＲＡＭの１つのメモリセルは、１本のワード線と１本のビット線にだけ接続されることが必要である。このようにＤＲＡＭセルを用いてメモリブロックを構成した場合、あるブロックのメモリセルに対してあるポートから読み出し又は書き込み動作を実行すると、その動作中は、そのブロックに対して他のポートからアクセスすることが出来ない。これは、ＤＲＡＭセルは破壊読み出しであるためである。即ち一旦情報を読み出すと、この情報を増幅してセルに書き戻し更にワード線・ビット線をプリチャージした後でなくては、同一ブロック内の他のワード線を選択することが出来ない。
【０００９】
従来のＳＲＡＭ型のマルチポートメモリでは、同一のメモリセルに複数のポートから同時に書き込み要求があったときだけＢＵＳＹ状態が発生する。従って、ＤＲＡＭ型のマルチポートメモリでは、従来のＳＲＡＭ型のマルチポートメモリとは異なった独自のＢＵＳＹ状態制御が必要になる。
【００１０】
またＳＲＡＭ型のマルチポートメモリと異なり、ＤＲＡＭ型のマルチポートメモリでは情報の保持のために定期的にリフレッシュすることが必要となるので、リフレッシュのタイミング等についても対策が必要になる。
【００１１】
以上を鑑みて、本発明は、ＤＲＡＭ特有の問題点を解決したＤＲＡＭ型のマルチポートメモリを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明の半導体記憶装置は、各々がコマンドを受信する複数Ｎ個の外部ポートと、該外部ポートにそれぞれ対応した複数Ｎ組のバスと、ダイナミック型メモリセルで構成されたセル配列を含み該複数Ｎ組のバスに接続される複数のメモリブロックと、該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドがアクセスするアドレスを比較するアドレス比較回路と、該アドレス比較により同一のメモリブロックに対するアクセスを該アドレス比較回路が検出すると、同一のメモリブロックにアクセスするコマンドのうち何れを実行し何れを実行しないかを決定する裁定回路と、該メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路を含み、第１のモードでは該複数Ｎ個の外部ポートの少なくとも１つへ入力されるリフレッシュコマンドに応じて該メモリセルをリフレッシュし、第２のモードでは該リフレッシュ回路が指定するタイミングで該メモリセルをリフレッシュすることを特徴とする。
【００１３】
上記発明では、外部からあるポートに入力したコマンドと他のポートに入力したコマンドとが、同一のメモリブロックにアクセスする場合、裁定回路が、実行するコマンドと実行しないコマンドとを決定する。例えば、コマンドのタイミングを比較して、最も早いコマンドを実行し、それ以外のコマンドを不実行とすればよい。またあるコマンドを不実行とすると、ＢＵＳＹ信号等を発生して外部に出力すればよい。これによって、ＤＲＡＭコアを使用したマルチポートメモリにおいて、コマンド間でアクセスが衝突した場合であっても適切なアクセス動作を実行することが可能になり、また適切なＢＵＳＹ制御が可能になる。
【００１５】
また上記発明では更に、外部ポートから指定してリフレッシュ動作を実行する動作モードと、内蔵リフレッシュ回路の指示によりリフレッシュ動作を実行する動作モードを用意しておくことで、例えば所定の外部ポートをリフレッシュ管理用のポートとして定期的にリフレッシュコマンドを入力するように動作させることや、全ての外部ポートが非活性状態の場合に内蔵リフレッシュ回路によってリフレッシュ動作を実行させること等が可能になり、システム構成に応じて柔軟にリフレッシュ管理を行うことが出来る。
【００１６】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１７】
図１は、本発明によるマルチポートメモリの実施例を示す構成図である。この例では、ＡポートとＢポートの２つのポートを持つ構成となっている。
【００１８】
図１のマルチポートメモリ１０は、Ａポート１１、Ｂポート１２、セルフリフレッシュ回路１３、メモリブロック１４−１乃至１４−ｎ、アービタ１５、リフレッシュアドレスカウンタ１６、アドレス切り換え回路１７、アドレス切り換え回路１８、アドレス比較器１９、バスＡ２０−１、及びバスＢ２０−２を含む。
【００１９】
Ａポート１１は、モードレジスタ３１、ＣＬＫバッファ３２、データ入出力回路３３、コマンドデコーダ・レジスタ３４、アドレスバッファ／レジスタ３５、及びＢＵＳＹ信号Ｉ／Ｏ部３６を含む。またＢポート１２は、モードレジスタ４１、ＣＬＫバッファ４２、データ入出力回路４３、コマンドデコーダ・レジスタ４４、アドレスバッファ／レジスタ４５、及びＢＵＳＹ信号Ｉ／Ｏ部４６を含む。Ａポート１１及びＢポート１２では、それぞれのクロックＣＬＫＡ及びＣＬＫＢに同期して、独立して外部バスとのアクセスが確立される。モードレジスタ３１及び４１には、それぞれのポートに対して、データレイテンシやバースト長等のモードを設定できるようになっている。この実施例では、Ａポート１１及びＢポート１２の両方のポートにモードレジスタを配置し、それぞれのポートでモード設定可能な構成としてある。しかし例えば、片方のポートにだけモードレジスタを配置して、両方のポート分の設定を片方のポートで実施するようにしてもよい。
【００２０】
セルフリフレッシュ回路１３は、リフレッシュタイマ４６と、リフレッシュコマンド発生器４７を含む。セルフリフレッシュ回路１３は、内部でリフレッシュコマンドを発生する回路であり、信号ＣＫＥＡ１及びＣＫＥＢ１をＡポート１１及びＢポート１２から受け取る。信号ＣＫＥＡ１及びＣＫＥＢ１は、外部からの信号ＣＫＥＡとＣＫＥＢを、それぞれＣＬＫバッファ３２及び４２でバッファした信号である。外部からの信号ＣＫＥＡとＣＫＥＢは、それぞれのポートのクロックバッファを停止させ当該ポートを非活性にするために用いられる。Ａポート１１及びＢポート１２の両方のポートが非活性になったら、セルフリフレッシュ回路１３が動作する。
【００２１】
複数のメモリブロック１４−１乃至１４−ｎは、それぞれが複数の内部バスＡ２０−１及び内部バスＢ２０−２に接続されている。外部ポートが複数あり（ＡポートとＢポート）、Ａポート１１はバスＡ２０−１を介して各メモリブロック１４−１乃至１４−ｎとインタフェイスし、ＢポートはバスＡ２０−２を介して各メモリブロック１４−１乃至１４−ｎとインタフェイスする。
【００２２】
Ａポート１１からのアクセスとＢポート１２からのアクセスが同時期に入力された場合、それらのアクセスが異なるメモリブロックに対するものであれば、アクセスされたメモリブロックは、それぞれアクセスに対応した動作を独立に実行する。
【００２３】
Ａポート１１からのアクセスとＢポート１２からのアクセスとが同じメモリブロックに対するものである場合は、アービタ（裁定回路）１５でコマンドの入力順位を判定し、先に入力された方のコマンドを実行すると共に後から入力されたコマンドを取り消す。コマンドを取り消した場合、アービタ１５はＢＵＳＹ信号を発生し、後から入力されたコマンドに対するアクセスが取り消されたことを外部コントローラに通知する。
【００２４】
アドレス比較器１９が、両ポートからのアクセスが同じメモリブロックに対するものであるか否かを判定する。具体的には、両ポートに入力されたアドレスに含まれるブロック選択アドレスを比較し、両者が一致した場合に一致信号をアービタ１５に供給する。
【００２５】
Ａポート１１またはＢポート１２が活性化されている状態では、リフレッシュコマンドはＡポート１１又はＢポート１２から入力する。
【００２６】
外部からあるポートに入力したリフレッシュコマンドと、他のポートに入力した読み出しコマンド又は書き込みコマンドとが、同一のメモリブロックにアクセスする場合、アービタ１５が順序を判定する。リフレッシュコマンドの方が遅い場合には、そのリフレッシュコマンドは取り消される。このときアービタ１５は、ＢＵＳＹ信号を発生して外部に供給する。外部コントローラは、ＢＵＳＹ信号を検出すると、そのＢＵＳＹ信号が切れた後に、再度リフレッシュコマンドをマルチポートメモリ１０に送信する。
【００２７】
ポート間でリフレッシュコマンドの方が早い場合或いはセルフリフレッシュ回路１３からのセルフリフレッシュコマンドが入力された場合には、アービタ１５はカウントアップ信号を生成して、リフレッシュアドレスカウンタ１６に供給する。
【００２８】
リフレッシュアドレスカウンタ１６は、カウントアップ信号に応じてアドレスをカウントアップし、リフレッシュアドレスを発生する。このようにアービタ１５でカウントアップ信号を発生する理由は、上記のようにリフレッシュが取り消される場合があるため、アービタ１５から実際に発生されたリフレッシュコマンドに基づいてカウントアップする必要があるからである。なおカウントアップ動作は、リフレッシュ動作を実行した後におこなう。
【００２９】
アドレス切り換え回路１７は、Ａポート１１への入力コマンドがＲｅａｄコマンド（読み出しコマンド）或いはＷｒｉｔｅコマンド（書き込みコマンド）の場合には、外部からＡポート１１に入力されたアドレスをバスＡ２０−１に転送する。またＡポート１１への入力コマンドがリフレッシュコマンドの場合には、リフレッシュアドレスカウンタ１６が発生したアドレスを、バスＡ２０−１に転送する。
【００３０】
アドレス切り換え回路１８は、Ｂポート１２への入力コマンドがＲｅａｄコマンド（読み出しコマンド）或いはＷｒｉｔｅコマンド（書き込みコマンド）の場合には、外部からＢポート１２に入力されたアドレスをバスＢ２０−２に転送する。またＢポート１２への入力コマンドがリフレッシュコマンドの場合には、リフレッシュアドレスカウンタ１６が発生したアドレスを、バスＢ２０−２に転送する。
【００３１】
前述のように、Ａポート１１及びＢポート１２が非活性状態の場合には、セルフリフレッシュ回路１３が、内蔵するリフレッシュタイマ４６のタイミング信号に基づいてリフレッシュコマンドを発生する。この実施例において、セルフリフレッシュコマンド及びセルフリフレッシュアドレスは、バスＡ２０−１を介してメモリブロック１４−１乃至１４−ｎに転送している。セルフリフレッシュはＡポート１１及びＢポート１２のコマンドと競合しないため、アービタ１５で順位を判定する必要はない。しかしカウントアップ信号をアービタ１５で作成する必要があるため、セルフリフレッシュコマンドをアービタ１５に入力する構成となっている。
【００３２】
図２は、本発明によるマルチポートメモリ１０の動作の一例を示すタイミング図である。
【００３３】
コマンドのＲｅａｄ−ｘは、メモリブロック１４−（ｘ＋１）に対するＲｅａｄコマンドを示している。最初にＡポート１１にＲｅａｄ−０が入力され、続いてＢポート１２にＲｅａｄ−３が入力される。この場合、アクセスするメモリブロックが異なるために、メモリブロック１４−１及びメモリブロック１４−４が並列に動作する。
【００３４】
次にＡポート１１にＲｅａｄ−１が入力され、続いてＢポート１２にＲｅａｄ−１が入力される。アクセス対象のメモリブロックが同じなので一致信号が発生し、後から入力されたＢポート１２のコマンドが取り消される。更に、Ｂポート１２のＢＵＳＹ信号Ｉ／Ｏ部４６に、ＢＵＳＹ−Ｂ（負論理）が発生する。
【００３５】
Ｂポート１２に対応する外部コントローラ、ＢＵＳＹ−Ｂを検出し、この信号が終了した後に再度Ｒｅａｄ−１をマルチポートメモリ１０に送信する。
【００３６】
図３は、本発明によるマルチポートメモリ１０の動作の別の例を示すタイミング図である。
【００３７】
図３に示す動作は、Ａポート１１とＢポート１２への２番目のコマンドが共にＲｅａｄ−１で、ＢＵＳＹ−Ｂが発生するまでは、図２の動作例と同様である。その後この例では、Ｂポート１２においてＲｅａｄ−１でＢＵＳＹ−Ｂが発生すると、ＢＵＳＹ−Ｂが終了する前に、他のメモリブロックに対する読み出しコマンドＲｅａｄ−２を与えている。このように、他のメモリブロックに対するコマンドならば、ＢＵＳＹが出ている最中であっても入力することが出来る。
【００３８】
図４は、本発明によるマルチポートメモリ１０の動作の更に別の例を示すタイミング図である。
【００３９】
図４に示されるのは、Ｗｒｉｔｅコマンド入力の場合の例である。Ａポート１１にはＲｅａｄコマンドが入力され、Ｂポート１２にはＷｒｉｔｅコマンドが連続して入力される。
【００４０】
本実施例において、入出力データはバーストタイプである。即ち、データ出力は、複数のコラムアドレスからデータをパラレルに読み出して、出力時にデータ入出力回路３３及び４３でシリアルに変化してデータ出力する。またデータ入力は、データをシリアルに入力してデータ入出力回路３３及び４３でパラレルに変換し、対応するメモリブロックの複数のコラムアドレスにパラレルデータを書き込む。このようにバーストタイプとすることにより、データ転送速度を向上させることが可能となる。この例ではバースト長＝４であり、４個のデータが連続して入出力される。
【００４１】
Ｗｒｉｔｅ動作の場合は、連続して入力される４個のデータが揃わないとＷｒｉｔｅ動作を開始できない。従って、Ｗｒｉｔｅ動作に対してアービタ１５で順位を判定するタイミングは、シリアルに入力される一連のデータの最後のデータが入力されたタイミングとなる。
【００４２】
図４においては、Ａポート１１の３番目のコマンド入力Ｒｅａｄ−３と、Ｂポート１２の２番目のコマンド入力Ｗｒｉｔｅ−３とが、同一のメモリブロックに対するアクセスとなる。ポートへのコマンド入力のタイミング自体は、Ｂポート１２のＷｒｉｔｅ−３の方が早いが、最終書き込みデータが入力される前に、Ａポート１１のＲｅａｄ−３が入力される。従って、アービタ１５はＡポート１１のコマンドが早いと判定し、Ｂポート１２のコマンドが取り消される。
【００４３】
なお図１に示すように、Ａポート１１及びＢポート１２にそれぞれＣＬＫバッファ３２及び４２を備え、各ポート毎に異なるクロック信号を外部から供給することが出来る。この場合のクロック信号は、ポート間で位相や周波数が同一であってもよく、また異なってもよい。
【００４４】
図５は、コマンドデコーダ・レジスタ３４及び４４の構成図である。
【００４５】
コマンドデコーダ・レジスタ３４は、入力バッファ６１、コマンドデコーダ６２、及び（ｎ−１）クロックディレイ回路６３を含む。またコマンドデコーダ・レジスタ４４は、入力バッファ７１、コマンドデコーダ７２、及び（ｎ−１）クロックディレイ回路７３を含む。
【００４６】
入力バッファ６１或いは７１に入力されたコマンドは、Ｒｅａｄコマンド（ＲＡ１、ＲＢ１）或いはリフレッシュコマンド（ＲＥＦＡ、ＲＥＦＢ）の場合は、コマンドデコーダ６２或いは７２を介して、そのままのタイミングでアービタ１５に転送される。Ｗｒｉｔｅコマンド（ＷＡ１、ＷＢ１）の場合は、（ｎ−１）クロックディレイ回路６３或いは７３で（ｎ−１）クロック遅延され、書き込まれる一連のバーストデータのｎ個目の最終データが入力されたタイミングで、アービタ１５に転送される。
【００４７】
図６は、本発明の実施例によるアービタ１５の構成図である。
【００４８】
アービタ１５は、レジスタ８１、遅延回路８２、転送ゲート８３、レジスタ８４、レジスタ８５、遅延回路８６、転送ゲート８７、レジスタ８８、ＮＯＲ回路９１及び９２、ＮＡＮＤ回路９３乃至９６、インバータ９７乃至１０１、及びＮＯＲ回路１０２及び１０３を含む。
【００４９】
コマンドデコーダ・レジスタ３４及び４４から転送されたコマンドは、レジスタ８１及び８５に保持される。Ａポート１１に何らかのコマンド入力があると、インバータ９７の出力であるノードＮ１に、ＨＩＧＨ信号が発生する。Ｂポート１２に何らかのコマンド入力があると、インバータ１００の出力であるノードＮ２に、ＨＩＧＨ信号が発生する。Ｎ１或いはＮ２の何れかタイミングの早い方が、ノードＮ３或いはＮ４にラッチされる。
【００５０】
Ａポート１１及びＢポート１２でブロック選択アドレスが一致していない場合は、アドレス比較器１９からの一致信号はＬＯＷである。従ってこの場合、Ｎ５及びＮ６はＨＩＧＨとなる。このＨＩＧＨ信号によって、転送ゲートＡ８３及び転送ゲートＢ８７は両方とも導通状態になり、レジスタ８１及び８５のコマンドは、無条件でレジスタ８４及び８８に伝達される。
【００５１】
Ａポート１１及びＢポート１２でブロック選択アドレスが一致した場合は、アドレス比較器１９からの一致信号はＨＩＧＨとなる。従ってこの場合、Ｎ３及びＮ４の信号レベルによって、ノードＮ５及びＮ６の信号レベルが決まる。例えば、Ａポート１１が早いときには、Ｎ５はＨＩＧＨとなりＮ６はＬＯＷとなる。Ｎ５がＨＩＧＨとなることで、転送ゲートＡ８３が導通となり、その時のＡポート１１のコマンドがレジスタ８４に転送される。またＮ６がＬＯＷとなることで、転送ゲートＢ８７が非導通となり、その時のＢポート１２のコマンドはレジスタ８８に転送されない。
【００５２】
またＮ５及びＮ６の信号レベルに基づいて、レジスタ８１及び８５をリセットするリセット信号及びＢＵＳＹ１−Ａ信号及びＢＵＳＹ１−Ｂ信号が作られる。例えば、Ａポート１１のコマンドが選択された場合には、レジスタ８５がリセットされると共に、ＢＵＳＹ１−Ｂが発生する。
【００５３】
セルフリフレッシュコマンドは、順番を判定する必要が無いので、レジスタ８４の出力部分で、Ａポート１１からのリフレッシュコマンドＲＥＦＡと合成される。こうして作成されるＡポート１１に対するリフレッシュコマンド信号ＲＥＦＡ２を、Ｂポート１２に対するリフレッシュコマンド信号ＲＥＦＢ２と合成することで、カウントアップ信号を生成する。カウントアップ信号は、リフレッシュコマンドが発生すると、アービタ１５からリフレッシュアドレスカウンタ１６に供給される。
【００５４】
図７は、アービタ１５の動作を示すタイミング図である。
【００５５】
図７に示されるのは、Ａポート１１及びＢポート１２でブロック選択アドレスが一致し、Ａポート１１側のＲｅａｄコマンドＲＡ１がＢポート１２側のＲｅａｄコマンドＲＢ１よりもタイミングが早い場合である。上記説明のように、Ｎ１及びＮ２を反映したＮ３及びＮ４の信号レベルによって、ノードＮ５及びＮ６の信号レベルが決まり、これに基づいて、アービタ１５からＲｅａｄコマンドＲＡ２が出力される。Ｂポート１２側のＲｅａｄコマンドは出力されずに取り消され、またＢＵＳＹ１−Ｂ信号が発生する。
【００５６】
図８は、アドレスバッファ／レジスタ及びアドレス切り換え回路の構成図である。
【００５７】
図８において、ある信号名の信号（例えばＲＡ１等）の末尾にＰが付く信号（ＲＡ１Ｐ等）は、その信号名の信号（ＲＡ１等）の立ち上がりエッジをパルス化したものである。
【００５８】
Ａポート１１のアドレスバッファ／レジスタ３５は、入力バッファ３５−１、転送ゲート３５−２、及びＯＲ回路３５−３を含む。図５に示されるコマンドデコーダ６２の出力である読み出しコマンド信号ＲＡ１に対して、立ち上がりエッジをパルス化したパルス信号が、ＯＲ回路３５−３の一方の入力にＲＡ１Ｐとして供給される。また図５に示されるコマンドデコーダ６２のもう一方の出力である書き込みコマンド信号ＷＡ１に対して、立ち上がりエッジをパルス化したパルス信号が、ＯＲ回路３５−３のもう一方の入力にＷＡ１Ｐとして供給される。ＯＲ回路３５−３の出力が、転送ゲート３５−２に転送を指示する転送指示信号として供給される。
【００５９】
Ｂポート１２のアドレスバッファ／レジスタ４５は、入力バッファ４５−１、転送ゲート４５−２、及びＯＲ回路４５−３を含む。Ｂポート１２に対するアドレスバッファ／レジスタ４５の構成は、Ａポート１１に対するアドレスバッファ／レジスタ３５の構成と同様である。
【００６０】
アドレス切り換え回路１７は、アドレスラッチ１７−１、転送ゲート１７−２及び１７−３、アドレスラッチ１７−４、及びＯＲ回路１７−５及び１７−６を含む。ＯＲ回路１７−５には、信号ＲＡ１Ｐ及びＷＡＤ１Ｐが供給され、出力を転送ゲート１７−２に転送指示信号として供給する。またＯＲ回路１７−６には、信号ＲＥＦＡＰ及びＳＲ−ＡＰが供給され、出力を転送ゲート１７−３に転送指示信号として供給する。
【００６１】
アドレス切り換え回路１８は、アドレスラッチ１８−１、転送ゲート１８−２及び１８−３、アドレスラッチ１８−４、及びＯＲ回路１８−５を含む。ＯＲ回路１８−５には、信号ＲＢ１Ｐ及びＷＢＤ１Ｐが供給され、出力を転送ゲート１８−３に転送指示信号として供給する。また転送ゲート１８−２には、信号ＲＥＦＢＰが、転送指示信号として供給される。
【００６２】
ＲｅａｄコマンドまたはＷｒｉｔｅコマンドが外部から入力されると、それと同時に入力されたアドレスが、アドレス切り換え回路１７或いはアドレス切り換え回路１８に転送される。コマンドがＲｅａｄコマンドの場合には、そのままのタイミングでアドレスラッチ１７−４或いは１８−４に転送される。コマンドがＷｒｉｔｅコマンドの場合には、一連の書き込みデータの最終データの取り込みタイミングで、アドレスラッチ１７−４或いは１８−４に転送される。
【００６３】
リフレッシュコマンドの場合には、リフレッシュアドレスカウンタ１６で発生したリフレッシュアドレスが、信号ＲＥＦＡ、ＲＥＦＢ、又はＳＲ−Ａのタイミングで、アドレスラッチ１７−４或いは１８−４に転送される。
【００６４】
図９は、メモリブロックの構成図である。
【００６５】
図９には、メモリブロック１４−１乃至１４−ｎのうちメモリブロック１４−１を代表として示す。メモリブロック１４−１乃至１４−ｎは、各々同一構成を有する。
【００６６】
メモリブロック１４−１は、メモリアレイ１１１、制御回路１１２、バスセレクタ１１３及び１１４、センスアンプバッファ１１５、及びライトアンプ１１６を含む。メモリアレイ１１１は、ＤＲＡＭメモリセル、セルゲートトランジスタ、ワード線、ビット線、センスアンプ、コラム線、コラムゲート等からなり、読み出し動作・書き込み動作の対象となるデータを記憶する。制御回路１１２は、メモリブロック１４−１の動作を制御する。ライトアンプ１１６は、メモリアレイ１１１に書き込むデータを増幅する。センスバッファ１１５は、メモリアレイ１１１から読み出すデータを増幅する。
【００６７】
制御回路１１２は、バスＡ２０−１及びバスＢ２０−２に接続され、当該ブロックに対応したブロック選択アドレスを受信すると選択される。選択されると、制御回路１１２は、当該ブロック選択アドレスが発生したバスからコマンドを取り込む。バスＡ２０−１のコマンドを取り込んだ場合には、バスＡ２０−１のアドレス信号をメモリアレイ１１１に送るように、バスセレクタ１１３を制御する。またバスセレクタ１１４を制御して、センスバッファ１１５又はライトアンプ１１６を、バスＡ２０−１のデータ線と接続する。バスＢ２０−２のコマンドを取り込んだ場合には、バスＢ２０−２のアドレス信号をメモリアレイ１１１に送るように、バスセレクタ１１３を制御する。またバスセレクタ１１４を制御して、センスバッファ１１５又はライトアンプ１１６を、バスＢ２０−２のデータ線と接続する。但し、制御回路１１２が取り込んだコマンドがリフレッシュコマンドである場合には、バスセレクタ１１４は動作させなくてよい。
【００６８】
以上のようにバスを選択し、その後、ワード線選択、セルデータ増幅、Ｒｅａｄ又はＷｒｉｔｅ又はＲｅｆｒｅｓｈ、及びプリチャージ動作を一連の流れで実行する。
【００６９】
図１０は、メモリブロックの動作を示すタイミング図である。
【００７０】
図１０（ａ）が読み出し動作の場合を示し、図１０（ｂ）が書き込み動作の場合を示す。図１０（ａ）及び（ｂ）に示されるような動作タイミングで、１個のコマンドに対し、ワード線選択、データ増幅、読み出し或いは書き込み、ライトバック（データリストア）、及びプリチャージを順次実行して、所定の動作を完結させる。
【００７１】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００７２】
【発明の効果】
本発明では、外部からあるポートに入力したコマンドと他のポートに入力したコマンドとが、同一のメモリブロックにアクセスする場合、裁定回路が、実行するコマンドと実行しないコマンドとを決定する。例えば、コマンドのタイミングを比較して、最も早いコマンドを実行し、それ以外のコマンドを不実行とすればよい。またあるコマンドを不実行とすると、ＢＵＳＹ信号等を発生して外部に出力すればよい。これによって、ＤＲＡＭコアを使用したマルチポートメモリにおいて、コマンド間でアクセスが衝突した場合であっても適切なアクセス動作を実行することが可能になり、また適切なＢＵＳＹ制御が可能になる。
【００７３】
また本発明では、外部ポートから指定してリフレッシュ動作を実行する動作モードと、内蔵リフレッシュ回路の指示によりリフレッシュ動作を実行する動作モードを用意しておくことで、例えば所定の外部ポートをリフレッシュ管理用のポートとして定期的にリフレッシュコマンドを入力するように動作させることや、全ての外部ポートが非活性状態の場合に内蔵リフレッシュ回路によってリフレッシュ動作を実行させること等が可能になり、システム構成に応じて柔軟にリフレッシュ管理を行うことが出来る。
【図面の簡単な説明】
【図１】本発明によるマルチポートメモリの実施例を示す構成図である。
【図２】本発明によるマルチポートメモリの動作の一例を示すタイミング図である。
【図３】本発明によるマルチポートメモリの動作の別の例を示すタイミング図である。
【図４】本発明によるマルチポートメモリの動作の更に別の例を示すタイミング図である。
【図５】コマンドデコーダ・レジスタの構成図である。
【図６】本発明の実施例によるアービタの構成図である。
【図７】アービタの動作を示すタイミング図である。
【図８】アドレスバッファ／レジスタ及びアドレス切り換え回路の構成図である。
【図９】メモリブロックの構成図である。
【図１０】メモリブロックの動作を示すタイミング図である。
【符号の説明】
１１  Ａポート
１２  Ｂポート
１３  セルフリフレッシュ回路
１４−１、１４−２、・・・１４−ｎ  メモリブロック
１５  アービタ
１６  リフレッシュアドレスカウンタ
１７  アドレス切り換え回路
１８  アドレス切り換え回路
１９  アドレス比較器
２０−１  バスＡ
２０−２  バスＢ
【図１】
0004783501.tif 000002
【図２】
0004783501.tif 000003
【図３】
0004783501.tif 000004
【図４】
0004783501.tif 000005
【図５】
0004783501.tif 000006
【図６】
0004783501.tif 000007
【図７】
0004783501.tif 000008
【図８】
0004783501.tif 000009
【図９】
0004783501.tif 000010
【図１０】
0004783501.tif 000011