(57)【特許請求の範囲】
【請求項１】
メモリアレーと、
それぞれ外部コマンドを受信するＮ組（Ｎは２以上の整数）の外部ポートと、
内部で独自にリフレッシュコマンドを発生する内部コマンド発生回路と、
前記Ｎ組の外部ポートから入力される前記外部コマンドと前記リフレッシュコマンドを所定の順序で実行するように制御する裁定回路と、を備える半導体記憶装置であって、
前記Ｎ組の外部ポートは、それぞれ外部からクロックを受信するクロック端子を備え、それぞれが受信したクロックに同期して入出力動作を行い、
前記Ｎ組の外部ポートは、それぞれバースト型のデータ入出力部を備え、
前記Ｎ組の外部ポートは、それぞれ前記外部コマンドの入力サイクルの間に、データの入出力を複数回行い、
各組の前記外部ポートから入力される前記外部コマンドの最小入力サイクル時間は、当該半導体記憶装置がＮ回の前記外部コマンドに対応した動作と１回のリフレッシュを実施することが可能な時間以上に設定されており、
前記外部コマンドは、読み出しコマンドと書き込みコマンドを含み、
前記裁定回路は、前記読み出しコマンドについては前記外部ポートに取り込まれた第１のタイミングに基づいて順番を決定し、前記書き込みコマンドについてはバースト入力される最後のデータが入力される第２のタイミングに基づいて順番を決定し、
前記裁定回路は、前記複数の外部ポートでリフレッシュ転送禁止期間内に前記第２のタイミングに続いて前記第１のタイミングが発生した場合に、前記リフレッシュ転送禁止期間内に発生した前記リフレッシュコマンドの優先順位を下げる、ことを特徴とする半導体記憶装置。
【請求項２】
当該半導体記憶装置は、前記メモリアレーと各外部ポートの間で、１バースト長分のデータを１回の動作で入出力できる請求項１に記載の半導体記憶装置。
【請求項３】
前記リフレッシュ転送禁止期間は、前記書き込みコマンドが入力されたタイミングと前記第２のタイミングに基づいて設定される請求項１に記載の半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、１チップのマルチポート半導体記憶装置（以下、メモリと称する。）に関し、特にＤＲＡＭメモリアレーを用いたマルチポートメモリに関する。
【０００２】
【従来の技術】
マルチポートメモリはいくつかの種類があるが、ここでは複数のポートを持ちそれぞれのポートから共通のメモリアレーに対し独立にアクセスできるものを言う。例えば，２ポートのマルチポートメモリは、ＡポートとＢポートを備え、Ａポートに接続したＣＰＵ−ＡとＢポートに接続したＣＰＵ−Ｂから共通のメモリアレーに独立に読み書きできるものである。
【０００３】
このようなマルチポートメモリとしては、メモリアレーとしてＳＲＡＭを使用し、ワード線及びビット線対をそれぞれ２重に設け、各メモリセルを２組のワード線及びビット線対にそれぞれ接続したものが知られている。しかし、このマルチポートメモリは、ワード線及びビット線対をそれぞれ２重に設ける必要があり、集積度が低いという問題がある。
【０００４】
そこで、マルチプロセッサ構成のコンピュータなどで使用される共有メモリと同様の機構を使用することが考えられる。共有メモリは、共通のメモリに対して、複数のポートを設けたもので、メモリとしてＳＲＡＭを使用し、複数のポートをディスクリートＩＣを使用して構成するのが一般的である。共有メモリでは複数のポートから同時にアクセスが行われた場合、メモリアレーが共通であるため、複数のポートからの動作処理を同時に実行できないという問題が生じる。このような問題を防止するためのもっとも簡単な対策は、あるポートからアクセスが行われている時には、他のポートにはビジー信号を出力してアクセスが行われないようにすることであるが、これでは使用方法が制限されるという問題がある。そこで、共有メモリでは、アービタと呼ばれる裁定回路を設け、複数のポートから受信したアクセス要求の優先順位を決定し、メモリアレーの制御回路が順位に従ってそれらを順次実施するようにしている。例えば各ポートへの入力が早いものから順に優先的に実施する。
【０００５】
このような場合、メモリアレーは複数のポートからランダムにアクセスされることになるため、ＤＲＡＭで一般的に行われる同一のロウアドレスに対して連続したコラムアドレスを連続してアクセスするコラムアクセス動作は行われない。すなわち、１回のアクセスに対しセルを選択し読み出しまたは書き込みを実施しリセットする。
【０００６】
このため、共有メモリを構成する場合、従来はメモリアレーとして一般的にＳＲＡＭが用いられてきた。これは、ＳＲＡＭはランダムアクセスが高速であり、またリフレッシュが不要なため使い易いからである。また、１チップのマルチポートメモリは、上記のようなワード線及びビット線対をそれぞれ２重に設ける構成のもので、通常のＳＲＡＭと同様のメモリアレーを使用した１チップのマルチポートメモリは実用化されていなかった。
【０００７】
【発明が解決しようとする課題】
いずれにしろ、従来のマルチポートメモリ及び共有メモリではＳＲＡＭが使用され、リフレッシュが必要なＤＲＡＭは使用されていなかった。
システムが高性能化するにつれ扱うデータ量も増大し、マルチポートメモリも大容量が必要とされてきている。そのため、ＳＲＡＭに比べて高集積度のダイナミック型メモリセル（ＤＲＡＭ）アレーをマルチポートメモリに採用し、低コストで記憶容量の大きなマルチポートメモリを実現する考えが出てきた。しかし、ここで問題になるのがメモリセルのリフレッシュである。
【０００８】
通常のＤＲＡＭにおいては書き込み／読み出し命令の合間に定期的に外部からリフレッシュ命令を与える必要があり、そのためＤＲＡＭを搭載するシステムのコントローラデバイスはリフレッシュ管理用のタイマーや制御回路を備えている。しかし、ＳＲＡＭを使用したこれまでのマルチポートメモリを搭載するシステムにはこのような回路は備えられていない。メモリアレーをＤＲＡＭで構成する場合でも、そのようなシステムで従来のマルチポートメモリと同じように使用できることが要求される。すなわち、メモリアレーをＤＲＡＭで構成したマルチポートメモリは、リフレッシュについてメモリデバイス自身で何かの対策をとる必要がある。
【０００９】
本発明は、メモリアレーをＤＲＡＭコアで構成してもリフレシュを意識せずに使用でき、大容量で使い勝手のよいマルチポートメモリが低コストで実現することを目的とする。
【００１０】
【課題を解決するための手段】
図１は、本発明の原理を説明する図であり、２ポートで読み出し動作を行う場合を示している。
ＡポートとＢポートの２つの外部ポートに入力されるコマンドは、３回の内部動作サイクルが可能な時間を最小サイクルとして入力される。すなわち、外部コマンドサイクルは、３回の内部動作サイクルが可能な時間以上に設定される。ＡポートとＢポートには、それぞれクロックＣＬＫＡとＣＬＫＢが入力され、コマンド、アドレス及びデータの外部と外部ポートとの間の入出力は、クロックに同期して行われる。図示していないが、アドレスはコマンドと同時に入力される。図示のように、ＡポートとＢポートから最小の外部コマンドサイクルで読み出しコマンドが入力されると、裁定回路が先に入力された方を優先してコア動作を行うように制御する。上記のように、外部コマンドサイクルの間に３回の内部動作が可能であるから、外部コマンドサイクルの間にメモリアレーから２つの読み出し動作を行い、読み出したデータをＡポートとＢポートに出力する。ＡポートとＢポートは、それぞれ読み出しデータを保持し、次の外部コマンドサイクルの開始、すなわち、読み出しコマンドの入力から４クロック目のクロックに同期して読み出しデータを出力する。すなわち、この場合のデータレイテンシは４である。
【００１１】
内部にはリフレッシュタイマーが内蔵され、リフレッシュコマンドを内部で自動的に発生する。上記のように、外部コマンドサイクルの間に３回の内部動作が可能であるから、リフレッシュコマンドが発生された時には、外部コマンドサイクルの間に、コマンドＡ、コマンドＢ、及びリフレッシュが実行でき、読み出したデータは次の外部コマンドサイクルの開始時に出力される。このように、外部からはリフレッシュを意識することなく、マルチポートメモリにアクセスすることができる。
【００１２】
図１の例では、１回の読み出しコマンドに対して、読み出しデータの出力は１回行われる。すなわち、バースト長は１である。そのため、読み出しデータの出力が１クロックサイクルで終了すると、外部コマンドサイクルの残りの３クロックサイクルの間、外部ポートはデータの出力を行わないことになり、データの転送効率が悪いという問題がある。この問題は、バースト長を大きくすることにより解決できる。
【００１３】
図２は、本発明の原理を説明する図であり、バースト長が４の場合の例である。この例でも、２つの外部ポートの外部コマンドサイクルは、３回の内部動作サイクルが可能な時間に設定される。更に、１外部コマンドサイクルは４クロックサイクルであり、１外部コマンドサイクルの間に、外部ポートからクロックに同期してデータが４回出力される。従って、１外部コマンドサイクルのクロック数に応じてバースト長を設定すれば、２つのポートでギャップレス読み出しが可能となり、データ転送レートを大幅にアップすることができる。なお、この場合、内部ではメモリアレーに対してバースト長分のデータが１回の動作で入出力できることが必要である。例えば、外部ポートのデータ入出力端子が４個で、バースト長が４であれば、メモリアレーに対して１６ビットのデータが１回の動作で入出力できるようにする。
【００１４】
なお、ＡポートとＢポートは同期して動作する必要はなく、それぞれの外部コマンドサイクルは、３回の内部動作サイクルが可能な時間を最小サイクルとする条件を満たせば、独立して任意に設定できる。
また、外部ポートの個数も任意に設定できるが、その場合外部ポートの個数をｎとすると、各ポートの外部コマンドサイクルは、ｎ＋１回の内部動作サイクルが可能な時間を最小サイクルとする。この条件を満たせば、たとえリフレシュ動作を行っても、外部コマンドサイクル中に各ポートから要求される動作を実行することが可能であり、リフレシュ動作を意識せずにマルチポートメモリを使用できる。
【００１５】
図３と図４は、ポート数が２，３及びｎの場合の、最小外部コマンドサイクルと内部動作サイクルの関係を示す図である。図示のように、ポート数が２の場合には、最小外部コマンドサイクルは３回の内部動作が可能な時間であり、ポート数が３の場合には、最小外部コマンドサイクルは４回の内部動作が可能な時間であり、ポート数がｎの場合には、最小外部コマンドサイクルはｎ＋１回の内部動作が可能な時間である。
【００１６】
【発明の実施の形態】
図５と図６は、本発明の実施例のマルチポートメモリの構成を示す図であり、図５はＤＲＡＭコアとその周辺部を示し、図６の（Ａ）はＡポートを、図６の（Ｂ）はＢポートを、図６の（Ｃ）はリフレシュ回路を示し、図６の（Ａ）から（Ｃ）の部分は図５の部分に接続される。
【００１７】
図示のように、実施例のマルチポートメモリは、ＤＲＡＭコア１１と、処理の順番を決めて順番どおりに処理が行われるように制御するアービタ２６と、コマンドやアドレスやデータを一時的に保持するレジスタ群と、Ａポート３０とＢポート４０の２個の外部ポートと、リフレシュ回路５０とを備える。
Ａポート３０とＢポート４０は、それぞれ、モードレジスタ３１，４１と、ＣＬＫバッファ３２，４２と、データ入出力回路３３，４３と、アドレス入力回路３４，４４と、コマンド入力部３５，４５とを備え、それぞれが外部から供給される別々のクロック周波数で動作できると共に、データレイテンシおよびバースト長をモードレジスタ３１，４１を記憶して別々に設定できるようになっている。データ入出力回路３３，４３は、バースト長に応じて、入出力データをパラレル・シリアル及びシリアル・パラレル変換する機構を備えている。
【００１８】
リフレシュ回路５０は、リフレッシュタイマ５１とリフレッシュコマンド発生器５２を備えており、リフレッシュタイマ５１が所定の周期でリフレシュ起動信号を発生し、リフレッシュコマンド発生器５２がそれに応じてリフレシュコマンドを発生する。
Ａ・Ｂ両ポートから入力されたコマンド・アドレス・書き込みデータはそれぞれレジスタに保持される。またリフレッシュコマンドもリフレシュコマンドレジスタ２７に保持され、リフレッシュアドレスはリフレッシュアドレスカウンタ／レジスタ１８に保持される。
【００１９】
アービタ２６はコマンドの到着順に基づきコマンドの実行順番を決定しそのコマンドを順番にＤＲＡＭコア１１の制御回路１４に転送するとともに、対応するアドレスレジスタおよびデータレジスタ（書込みの場合）に転送信号を送信する。ＤＲＡＭコア１１では、制御回路１４が受信したコマンドに応じて、デコーダ１３、ライトアンプ(Write Amp)１５、センスバッファ１６を制御して、メモリアレー１２へのアクセス動作を行う。書き込み動作の場合には、デコーダ１３が書き込み先のアドレスをデコードして、メモリアレー１２のワード線とコラム信号線を活性化し、WriteデータレジスタＡとＢ２２，２３に保持された書き込みデータをWrite Amp１５からメモリアレー１５に書き込む。読み出しの場合は、同様にメモリアレー１２にアクセスして、センスバッファ１６から読み出しデータが転送ゲートＡ２４，Ｂ２５を介して各ポートのデータ出力回路に送られる。転送ゲートの転送タイミングはＤＲＡＭコア１１の動作サイクルで決まり制御回路１４により発生される。出力データは，各ポートのデータ出力回路において外部クロックに同期して出力される。
【００２０】
以下、コマンド、アドレス、データのそれぞれの処理に関係する部分について詳しく説明する。
図７と図８は、第１実施例のコマンドに関連する部分の構成を示す図であり、図５と図６に示された部分と同じ部分には同一の参照番号を付している。なお、以下の他の図についても同様である。
【００２１】
図７に示すように、Ａポートのコマンド入力部３５は、入力バッファ３６と、コマンドデコーダ３７と、（ｎ−１）クロックディレイ３８とを有し、Ｂポートのコマンド入力部４５は、入力バッファ４６と、コマンドでコーダ４７と、（ｍ−１）クロックディレイ４８とを有する。ｎとｍは、バースト長である。また、図８に示すように、コマンドレジスタＡ２８は、ＲｅａｄコマンドレジスタＡＲと、ＷｒｉｔｅコマンドレジスタＡＷとを有し、コマンドレジスタＢ２９は、ＲｅａｄコマンドレジスタＢＲと、ＷｒｉｔｅコマンドレジスタＢＷとを有する。
【００２２】
入力バッファ３６，４６は、入力されたＲｅａｄコマンドをクロックＣＬＫＡ１，ＣＬＫＢ１に同期して取り込み、コマンドでコーダ３７，４７は、デコードして、読み出しコマンドであればＲＡ１，ＲＢ１を発生し、書き込みコマンドであればＷＡ１，ＷＢ１を発生する。ＲＡ１，ＲＢ１はそのままのタイミングでＲｅａｄコマンドレジスタＡＲ，ＢＲに転送されるが、ＷＡ１，ＷＢ１は（ｎ−１）クロックディレイ３８と（ｍ−１）クロックディレイ４８でバーストデータの最終データが入力されるまで遅延された後、ＷｒｉｔｅコマンドレジスタＡＷ，ＢＷに転送される。また、リフレシュ回路５０で発生されたリフレシュコマンドＲＥＦ１は、リフレシュコマンドレジスタ２７に転送される。
【００２３】
アービタ２６は、上記の５個のコマンドレシスタＡＲ，ＡＷ，ＢＲ，ＢＷ，２７にコマンドが転送された順番を検出しＤＲＡＭ制御回路１４にそのコマンドを順番に１個づつ転送する。ＤＲＡＭ制御回路１４は受信したコマンドを実施しそれが終了したら（または終了に近づいたら）ＲＥＳＥＴ１信号を発生しアービタ２６に次ぎのコマンドを要求する。アービタはＲＥＳＥＴ１信号を受けて処理が終了したコマンドが格納されているコマンドレジスタをリセットし次ぎのコマンドをＤＲＡＭ制御回路１４に転送する。
【００２４】
図９はアービタ２６の実施例である。図８の５個のコマンドレジスタにコマンドが到着した順番を図のような比較器５３を用いて判定する。各比較器５３は２個のコマンドレジスタのタイミングを比較し先に”Ｈ”が入力された側の出力が”Ｈ”となる。ＡＮＤゲート５４は、関連する比較器５３の出力がすべて”Ｈ”になるかを判定することにより、各コマンドが他の４個のコマンドのすべてに対して先に入力されたかを判定する。各コマンドに対応する信号ＲＡ３，ＷＡ３，ＲＢ３，ＷＢ３，ＲＥＦは、最先のコマンドである場合に”Ｈ”を示し、対応するコマンドのアドレスなどがＤＲＡＭコア１１に転送される。コマンドが、ＤＲＡＭコア１１で実施されるとＲＥＳＥＴ１信号がＤＲＡＭコア１１から発生され実施済のコマンドレジスタをリセットする信号（ＲｅｓｅｔＲＡ，ＲｅｓｅｔＷＡ等）が発生される。実施済のコマンドがリセットされるとそのコマンドが入力されている比較器５３の出力が変化し、次ぎの順位のコマンドがＤＲＡＭコア１１に転送される。このようにして、入力した順にコマンドの処理が行われる。
【００２５】
図１０は、第１実施例のアドレスに関連する部分の構成を示す図である。なお、以下の図において、信号の終わりに”Ｐ”が付されているのは、元の信号の立ち上がりエッジをパルス化するなどして生成したパルス上の信号である。図示のように、アドレス入力回路３４，４４は、入力バッファ５７Ａ，５７Ｂと、転送ゲート５８Ａ，５８Ｂを有する。また、アドレスレジスタＡ１９及びアドレスレジスタＢ２０は、アドレスラッチＡ１，Ｂ１と、転送ゲート６０Ａ，６０Ｂと、アドレスラッチＡ２，Ｂ２と、転送ゲート６２Ａ，６２Ｂ，６３Ａ，６３Ｂとを有する。転送ゲート６２Ａ，６２Ｂ，６３Ａ，６３Ｂからのアドレスは、アドレスバス１７を介してＤＲＡＭコア１１に転送される。更に、リフレシュアドレスカウンタ／レジスタ１８の出力するリフレシュアドレスも、転送ゲート６４とアドレスバス１７を介してＤＲＡＭコア１１に転送される。
【００２６】
ＲｅａｄコマンドまたはＷｒｉｔｅコマンドが外部から入力されると、それと同時に入力バッファ５７Ａ，５７Ｂに入力されたアドレスが転送ゲート５８Ａ，５８Ｂを介してアドレスラッチＡ１，Ｂ１に転送される。コマンドがＲｅａｄコマンドならば転送ゲート６３Ａ，６３Ｂを介して、コマンドのＤＲＡＭコアへの転送と同期してＤＲＡＭコア１１に転送される。コマンドがＷｒｉｔｅコマンドならば，最終データ取り込みタイミングで更にアドレスラッチＡ２，Ｂ２に転送された後、コマンドのＤＲＡＭコアへの転送と同期して転送ゲート６２Ａ，６２ＢからＤＲＡＭコア１１に転送される。また、リフレッシュアドレスは、リフレッシュアドレシカウンタ／レジスタ１８で発生され保持され、同様にリフレシュコマンドのＤＲＡＭコアへの転送と同期して転送ゲート６４からＤＲＡＭコア１１に転送される。
【００２７】
図１１は第１実施例のデータ出力に関連する部分の構成を示す図であり、図１２はその中の転送信号発生回路を示す図である。Ａポート３０とＢポート４０のデータ入出力回路３３，４３は、データ出力用回路６５Ａ，６５Ｂと、後述するデータ入力用回路７４Ａ，７４Ｂとを有する。図示のように、メモリアレー１２からセンスバッファ１６を介して読み出されたデータは、データバス２１と転送ゲート２４，２５を介して、データ出力用回路６５Ａ，６５Ｂに転送される。
【００２８】
データ出力用回路６５Ａ，６５Ｂは、それぞれデータラッチＡ１，Ｂ１と、転送信号発生回路６７Ａ，６７Ｂと、転送ゲート６９Ａ，６９Ｂと、データラッチＡ２，Ｂ２と、パラレル−シリアル（パラシリ）変換器７０Ａ，７０Ｂと、出力バッファ７１Ａ，７１Ｂとを有する。
転送ゲート２４と２５は、ＤＲＡＭコア１１の制御回路14により内部動作に基づいて制御され、実施したコマンドがＲｅａｄ−Ａ（Ａポートからの読み出し動作）であれば、転送ゲート２４開き、Ｒｅａｄ−Ｂであれば転送ゲート２５が開く。データラッチＡ１，Ｂ１においてデータが保持され、転送ゲート６８Ａ，６８Ｂで各ポートでのＲｅａｄコマンド受信から所定のレイテンシ後にデータラッチＡ２，Ｂ２に転送され、パラシリ変換器７０Ａ，７０Ｂで変換され出力バッファ７１Ａ，７１Ｂに転送され出力される。
【００２９】
図１２に示すように、転送信号発生回路６７Ａ，６７Ｂは、直列に接続されたフリップ・フロップ７２により、ＲｅａｄコマンドＲＡ１，ＲＢ１を、設定されたレイテンシに応じたクロック数分遅延させてデータ転送信号２を発生する。転送ゲート６８Ａ，６８Ｂからの読み出しデータの転送はデータ転送信号２に応じて行われるので、読み出しデータは読み出し動作からレイテンシに応じたクロック数分遅延されることになる。
【００３０】
図１３は第１実施例のデータ入力に関連する部分の構成を示す図である。データ入力用回路７４Ａ，７４Ｂは、データ入力（Ｄｉｎ）バッファ７５Ａ，７５Ｂと、シリアル−パラレル変換器７６Ａ，７６Ｂと、データ転送部７７Ａ，７７Ｂとを有する。データ転送部７７Ａ，７７Ｂからの書き込みデータは、Ｗｒｉｒｅデータレジスタ２２，２３とデータ転送部７８Ａ，７８Ｂとデータバス２１を介して、Write Amp.１５に送られ、メモリアレー１２に書き込まれる。
【００３１】
シリアル入力されたデータは、バースト長に応じてシリアル−パラレル変換され最後のデータが入力された時点でＷｒｉｔｅレジスタ２２，２３に転送される。アービタ２６からＷｒｉｔｅコマンドがＤＲＡＭコア１１に転送されたら，それに対応するデータもデータ転送ゲート７８Ａ，７８ＢからＤＲＡＭコア１１に転送される。
【００３２】
図１４から図２１は、第１実施例のマルチポートメモリの動作を示すタイムチャートである。図１４と図１５、図１７と図１８、及び図２０と図２１は、表示の都合上１つのタイムチャートを分割した図であり、一方がタイムチャートの前半部分を、他方が後半部分を示し、一部を重複して示している。
図１４と図１５は、２つのポートに連続してＲｅａｄ動作のコマンドが入力された場合の動作を示す。ＡポートとＢポートは、それぞれ周波数の異なるクロックＣＬＫＡとＣＬＫＢが入力され、入力されるクロックに同期してコマンド、アドレス及び書き込みデータの取り込みを行うと共に、クロックに同期して読み出しデータの出力を行う。この例では、Ａポートは最高クロック周波数で動作し、Ｂポートはそれより遅いクロック周波数で動作し、ＡポートはＲｅａｄコマンドサイクル＝４（CLKA）、データレイテンシ＝４、バースト長＝４、ＢポートはＲｅａｄコマンドサイクル＝２（CLKB）、データレイテンシ＝２、バースト長＝２である。データレイテンシとバースト長はそれぞれのポートのモードレジスタ３１，４１に設定される。従って、ここでは１回のコマンドに対して、データの入出力動作はクロックに同期して４回行われ、読み出しのコマンドの入力から４クロック後から読み出しデータの出力が行われる。
【００３３】
ＡとＢの両ポートが受信したコマンドは、それぞれコマンドレジスタ２８，２９に保持される。またリフレッシュタイマー５１が信号を発生するとリフレッシュコマンドがリフレッシュコマンドレジスタ２７に保持される。アービタ２６はこれらのコマンドレジスタを監視し、早く発生したコマンドから順番にＤＲＡＭコア１１に転送する。前回転送したコマンドの処理が終了してから次ぎのコマンドを転送する。ＤＲＡＭコア１１から読み出されたデータはセンスバッファ１６から各ポートのデータラッチ６９Ａ，６９Ｂに転送され、さらにパラレルデータからシリアルデータに変換され外部クロックに同期してバースト出力される。
【００３４】
図示のように、ＲｅａｄコマンドレジスタＡＲにコマンドＲｅａｄ−Ａ２が入力され、ＲｅａｄコマンドレジスタＢＲにコマンドＲｅａｄ−Ｂ２が入力される前に、リフレッシュが１回発生し、リフレシュコマンドレジスタにリフレシュコマンドが入力されると、発生順番に従いアービタ２６はＲｅａｄ−Ａ２→Ｒｅｆ→Ｒｅａｄ−Ｂ２の順にＤＲＡＭコア１１に転送し、コアで順次実施する。リフレッシュを内部で実施していても外部から見るとデータは所定のデータレイテンシ後に出力されており、外部からはリフレッシュを意識する必要がない。
【００３５】
図１６は、同様な条件で連続してＷｒｉｔｅコマンドが入力された例である。Ｗｒｉｔｅ時の外部からのデータ入力もバースト入力である。このときＷｒｉｔｅコマンドレジスタＡＷにＷｒｉｔｅコマンドが保持されるタイミングは最終データが入力された時点からとする。この場合も、内部でリフレッシュが発生しそれを実施しても外部からは意識する必要がないことがわかる。
【００３６】
図１７と図１８は、ＡとＢの両ポートが最高クロック周波数でＲｅａｄ動作した場合の動作図であり、図１９は、ＡとＢの両ポートが最高クロック周波数でＷｒｉｔｅ動作した場合の動作図である。この場合、両ポートのクロックに位相差があってもよい。両ポートともＲｅａｄコマンドサイクル＝４、Ｗｒｉｔｅコマンドサイクル＝４、データレイテンシ＝４、バースト長＝４、である。図示のように、このような場合でも問題なく動作しているのが分かる。
【００３７】
図２０と図２１は、両ポートが最高周波数で動作し、ＷｒｉｔｅコマンドからＲｅａｄコマンドに切り替わり、更に内部でリフレッシュが発生した場合のタイムチャートであり、この場合がコマンドが最も混み合う状態である。
図示のように、ＤＲＡＭコア１１はＲｅｆ→Ｗｒｉｔｅ−Ａ１→Ｗｒｉｔｅ−Ｂ１→Ｒｅａｄ−Ａ２→Ｒｅａｄ−Ｂ２の順で実施しておりその間に隙間はない。この例では、Ｒｅａｄ−Ａ２とＲｅａｄ−Ｂ２をＷｒｉｔｅコマンド入力から６クロック後に入力しているが、もしこれを２クロック前進させたとしてもＤＲＡＭコアでの動作を前進させることはできない。それに対し読み出しデータの出力タイミングはＲｅａｄコマンド入力からデータレイテンシで決まる。よってＲｅａｄ−Ａ２とＲｅａｄ−Ｂ２の入力タイミングを前進させればその分データ出力タイミングも前進させる必要はある。そうするとたとえばＲｅａｄ−Ｂ２はＤＲＡＭコアでの動作開始とほとんど同時にデータ出力タイミングが来てしまい、動作不能となる。以上のような理由で、Ｗｒｉｔｅ→Ｒｅａｄの切り替えに関してはコマンド間隔を長くし、例えばこの例では６クロックとする。
【００３８】
Ｒｅａｄ→Ｗｒｉｔｅのコマンド間隔については、Ｒｅａｄデータの出力を完了しないとＷｒｉｔｅデータをDQ端子から受信できないため、必然的にコマンド間隔は広くなる。
図２２はＤＲＡＭコア１１の動作図であり、（Ａ）はＲｅａｄ動作を、（Ｂ）はＷｒｉｔｅ動作を示す。このように１個のコマンドに対し、ワード線選択→データ増幅→ライトバック→プリチャージを実施し、動作を完結させる。
【００３９】
上記のように、第１実施例では、Ｗｒｉｔｅコマンド→Ｒｅａｄコマンドの切り替え時はコマンド間隔が広がってしまう。これを少しでも改善するのが第２実施例である。第１実施例では、この時のコマンド間隔が６クロックであったが、第２実施例を適用すればこれが５クロックに短縮される。
本発明の第２実施例のマルチポートメモリは、第１実施例のマルチポートメモリと類似の構成を有し、リフレシュ回路が図２３に示すような構成を有する点のみが異なる。また、図２４は第２アービタ８３の回路構成を示す図である。
【００４０】
図２３に示すように、第２実施例のリフレシュ回路には、図６の（Ｃ）のリフレシュタイマ５１とリフレシュコマンド発生器５２を合せたリフレシュタイマ／リフレシュコマンド発生器８１と、第２リフレシュコマンドレジスタ８２と、第２アービタ８３とを設け、第２アービタ８３から出力されるリフレシュコマンドがリフレシュコマンドレジスタ２７に入力される。リフレシュコマンドレジスタ２７のリフレシュコマンドＲＥＦ２は、第１実施例と同様に、アービタ２６に入力される。ここでは、リフレシュ動作が終了した後アービタ２６から出力されるリフレシュコマンドレジスタ２７のリセット信号ＲｅｓｅｔＲＥＦが第２リフレシュコマンドレジスタ８２にも印加される。
【００４１】
第２実施例のリフレシュ回路では、リフレシュコマンドの経路に第２アービタ８３を設け、Ｗｒｉｔｅコマンド→Ｒｅａｄコマンドの切り替え時のようにコマンドが混むことが予想される場合はリフレッシュコマンドをリフレッシュコマンドレジスタ２７に転送するのを待たせる。第２アービタ８３は、図２４に示すような回路構成により、Ｗｒｉｔｅコマンド→Ｒｅａｄコマンドの切り替えが行われるかを判定し、そのように判定された時には第２リフレシュコマンドレジスタ８２からリフレシュコマンドレジスタ２７へのリフレシュコマンドの転送を待たせる。
【００４２】
図２４に示すように、ＲＥＦ転送禁止Ａ，Ｂは、それぞれのポートで外部からＷｒｉｔｅコマンドを受信すると切断され、その１クロック後にまた発生し最終データを受信してから数クロック後（この例では３クロック後）に切断される信号である。図２４の３ＣＬＫディレイ８４Ａ，８４Ｂは、フリップフロップなどで構成され、ＷＡ１又はＷＢ１によりリセットされると、ディレイを通過中のＷＡ１Ｄ又はＷＡ１Ｂがリセットされる回路である。このＲＥＦ転送禁止Ａ及びＢのＡＮＤをとってＲＥＦコマンド転送禁止信号をつくる。ここでＡＮＤをとる理由は、この例においては両ポートがＷｒｉｔｅコマンド→Ｒｅａｄコマンドに切り替わる場合が問題であって、片方のポートのみが切り替わる場合は問題ないからである。またＷｒｉｔｅコマンドを受信したら１クロックの期間だけＲＥＦ転送禁止Ａ，Ｂを切断するのは、最終データ受信前に時間的に余裕をもってリフレッシュを実施するためである。また、ディレイ８６を設けるのは、クロックからタイミングを少し後ろにずらし外部から入ってくるコマンドとREFコマンド転送禁止信号の前後関係を明確にするためである。
【００４３】
図２５から図３２は第２アービタの動作を示すタイムチャートであり、図３３から図３５は第２実施例のマルチポートメモリの動作を示すタイムチャートである。図２５と図２６、図２７と図２８、図２９と図３０、図３１と図３２及び図３３と図３４は、表示の都合上１つのタイムチャートを分割した図であり、一方がタイムチャートの前半部分を、他方が後半部分を示し、一部を重複して示している。
【００４４】
図２５と図２６は、両ポートがＷｒｉｔｅ→Ｒｅａｄに切り替わり、更にＲＥＦ転送禁止期間内にリフレッシュタイマが発生した場合であり、リフレッシュ動作ＲｅｆはＲｅａｄ−Ａ２とＲｅａｄ−Ｂ２が終了した後実行される。
図２７と図２８は、同様に、両ポートがＷｒｉｔｅ→Ｒｅａｄに切り替わる場合であるが、ＲＥＦ転送禁止期間前にリフレッシュタイマが発生した場合であり、リフレッシュ動作Ｒｅｆが行われた後、Ｗｒｉｔｅ動作とＲｅａｄ動作が行われる。
【００４５】
図２９と図３０は、ＡポートのみがＷｒｉｔｅ→Ｒｅａｄに切り替わる場合で、ＲＥＦ転送禁止期間中にリフレッシュタイマが発生した場合であり、Ｗｒｉｔｅ動作が行われた後にリフレッシュ動作Ｒｅｆが行われ、更にＲｅａｄ動作が行われる。
図３１と図３２は、両ポートでＷｒｉｔｅが連続した場合である。この場合には、最終データ入力後にＷｒｉｔｅコマンドが入力されると、ただちに３ＣＬＫディレイ８４Ａ，８４Ｂが切断される。
【００４６】
図３３と図３４は、図２０と図２１に示した第１実施例の動作に対応する第２実施例の動作を示すタイムチャートであり、第１実施例に比べて、Ｗｒｉｔｅ→Ｒｅａｄコマンドの切り替えの場合のコマンド間隔が、６クロックから５クロックに短縮されている。
図３５は、図１９に示した第１実施例の動作に対応する第２実施例の動作を示すタイムチャートであり、第１実施例に比べて、リフレッシュ実行の順番が変わるが、問題はないことが分かる。
【００４７】
以上のように、第２実施例では、どのような場合も正常な動作が可能であり、Ｗｒｉｔｅコマンド→Ｒｅａｄコマンドの切り替え時のコマンド間隔を５クロックできることが分かる。
【００４８】
【発明の効果】
以上説明したように、本発明によれば、マルチポートメモリのメモリアレーをＤＲＡＭコアで構成してもリフレシュを意識せずに使用でき、大容量で使い勝手のよいマルチポートメモリが低コストで実現できる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】バースト長が４の場合の本発明の原理説明図である。
【図３】バースト長が４の場合の本発明の原理説明図である。
【図４】本発明の原理説明図である。
【図５】本発明の実施例のマルチポートメモリの構成を示す図（その１）である。
【図６】本発明の実施例のマルチポートメモリの構成を示す図（その２）である。
【図７】本発明の第１実施例のマルチポートメモリのコマンドに関連する部分の構成を示す図（その１）である。
【図８】本発明の第１実施例のマルチポートメモリのコマンドに関連する部分の構成を示す図（その２）である。
【図９】第１実施例のマルチポートメモリのアービタの構成を示す図である。
【図１０】第１実施例のマルチポートメモリのアドレスに関連する部分の構成を示す図である。
【図１１】第１実施例のマルチポートメモリのデータ出力に関連する部分の構成を示す図である。
【図１２】第１実施例の転送信号発生回路の構成を示す図である。
【図１３】第１実施例のマルチポートメモリのデータ入力に関連する部分の構成を示す図である。
【図１４】第１実施例のマルチポートメモリの動作（連続Ｒｅａｄ）を示すタイムチャート（その１）である。
【図１５】第１実施例のマルチポートメモリの動作（連続Ｒｅａｄ）を示すタイムチャート（その２）である。
【図１６】第１実施例のマルチポートメモリの動作（連続Ｗｒｉｔｅ）を示すタイムチャートである。
【図１７】第１実施例のマルチポートメモリの動作（最速連続Ｒｅａｄ）を示すタイムチャート（その１）である。
【図１８】第１実施例のマルチポートメモリの動作（最速連続Ｒｅａｄ）を示すタイムチャート（その２）である。
【図１９】第１実施例のマルチポートメモリの動作（最速連続Ｗｒｉｔｅ）を示すタイムチャートである。
【図２０】第１実施例のマルチポートメモリの動作（ＷｒｉｔｅからＲｅａｄへの切り替わり）を示すタイムチャート（その１）である。
【図２１】第１実施例のマルチポートメモリの動作（ＷｒｉｔｅからＲｅａｄへの切り替わり）を示すタイムチャート（その２）である。
【図２２】第１実施例のマルチポートメモリのＤＲＡＭコア動作を示すタイムチャートである。
【図２３】本発明の第２実施例のマルチポートメモリのリフレシュ回路を示す図である。
【図２４】第２実施例の第２アービタを示す図である。
【図２５】第２実施例のアービタの動作（ケース１）を示すタイムチャート（その１）である。
【図２６】第２実施例のアービタの動作（ケース１）を示すタイムチャート（その２）である。
【図２７】第２実施例のアービタの動作（ケース２）を示すタイムチャート（その１）である。
【図２８】第２実施例のアービタの動作（ケース２）を示すタイムチャート（その２）である。
【図２９】第２実施例のアービタの動作（ケース３）を示すタイムチャート（その１）である。
【図３０】第２実施例のアービタの動作（ケース３）を示すタイムチャート（その２）である。
【図３１】第２実施例のアービタの動作（ケース４）を示すタイムチャート（その１）である。
【図３２】第２実施例のアービタの動作（ケース４）を示すタイムチャート（その２）である。
【図３３】第２実施例のマルチポートメモリの動作（ＷｒｉｔｅからＲｅａｄへの切り替わり）を示すタイムチャート（その１）である。
【図３４】第２実施例のマルチポートメモリの動作（ＷｒｉｔｅからＲｅａｄへの切り替わり）を示すタイムチャート（その２）である。
【図３５】第２実施例のマルチポートメモリの動作（連続Ｗｒｉｔｅ）を示すタイムチャートである。
【符号の説明】
１１…ＤＲＡＭコア
１２…メモリアレー
１４…制御回路
１５…Ｗｒｉｔｅ  Ａｍｐ．
１６…センスバッファ
１８…リフレシュアドレスカウンタ／レジスタ
１９…アドレスレジスタＡ
２０…アドレスレジスタＢ
２２…ＷｒｉｔｅデータレジスタＡ
２３…ＷｒｉｔｅデータレジスタＢ
２４…転送ゲートＡ
２５…転送ゲートＢ
２６…アービタ
３０，４０…（Ａ，Ｂ）外部ポート
３１，４１…モードレジスタ
３２，４２…ＣＬＫバッファ
３３，４３…データ入出力回路
３４，４４…アドレス入力回路
３５，４５…コマンド入力回路
５０…リフレシュ回路
【図１】
0004824180.tif 000002
【図２】
0004824180.tif 000003
【図３】
0004824180.tif 000004
【図４】
0004824180.tif 000005
【図５】
0004824180.tif 000006
【図６】
0004824180.tif 000007
【図７】
0004824180.tif 000008
【図８】
0004824180.tif 000009
【図９】
0004824180.tif 000010
【図１０】
0004824180.tif 000011
【図１１】
0004824180.tif 000012
【図１２】
0004824180.tif 000013
【図１３】
0004824180.tif 000014
【図１４】
0004824180.tif 000015
【図１５】
0004824180.tif 000016
【図１６】
0004824180.tif 000017
【図１７】
0004824180.tif 000018
【図１８】
0004824180.tif 000019
【図１９】
0004824180.tif 000020
【図２０】
0004824180.tif 000021
【図２１】
0004824180.tif 000022
【図２２】
0004824180.tif 000023
【図２３】
0004824180.tif 000024
【図２４】
0004824180.tif 000025
【図２５】
0004824180.tif 000026
【図２６】
0004824180.tif 000027
【図２７】
0004824180.tif 000028
【図２８】
0004824180.tif 000029
【図２９】
0004824180.tif 000030
【図３０】
0004824180.tif 000031
【図３１】
0004824180.tif 000032
【図３２】
0004824180.tif 000033
【図３３】
0004824180.tif 000034
【図３４】
0004824180.tif 000035
【図３５】
0004824180.tif 000036