(57)【特許請求の範囲】
【請求項１】
各々がコマンドを受信する複数Ｎ個の外部ポートと、
該外部ポートの１つに入力される複数のコマンド間の最小間隔の間に少なくともＮ回のアクセス動作を逐次的に実行する内部回路と、
該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドを該内部回路に実行させるコマンド実行順番を決定する裁定回路と、
該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドのうちで同一アドレスにアクセスするコマンドが複数個存在するか否かを判定するアドレス比較回路と、
マスタ動作モード或いはスレーブ動作モードを指定するモードレジスタ
を含み、
該複数Ｎ個の外部ポートの各々は、
同一アドレスにアクセスするコマンドが複数個存在する場合には所定の信号を装置外部に出力する信号出力回路と、
該所定の信号を装置外部から受信する信号入力回路と、
シリアルに受信したデータをパラレルデータとして該内部回路に供給する回路と、
該内部回路からパラレルに供給されたデータをシリアルデータとして外部に出力する回路
を含み、
前記内部回路はダイナミック型メモリセルで構成されたセル配列を含み、
該モードレジスタがマスタ動作モードを指定する場合には該信号出力回路を活性化し、該モードレジスタがスレーブ動作モードを指定する場合には該信号入力回路を活性化することを特徴とする半導体記憶装置。
【請求項２】
該モードレジスタがスレーブ動作モードを指定する場合に該信号入力回路が該所定の信号を装置外部から受信すると、該裁定回路は該コマンド実行順番を変更することを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
通常動作モードと連続動作モードを備え、該通常動作モードはROWを選択し１つのコマンドに対応した動作を実行しプリチャージする工程を一つの内部動作サイクルで実行し、該連続動作モードはROWを選択し複数のコマンドに対応した動作を連続して実行しプリチャージする工程を一つの内部動作サイクルで実行し、該アドレス比較回路の比較結果に基づき通常動作モードと連続動作モードとが切り替わることを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
該連続動作モードにおいて処理する複数のコマンドが書き込みコマンドである場合はその中の1つのコマンドを選択して実行し残りのコマンドは実行しないことを特徴とする請求項３記載の半導体記憶装置。
【請求項５】
該所定の信号を装置外部に送信或いは装置外部から受信する動作は、該連続動作モードにおいてROWを選択する処理と複数のコマンドに対応した動作を連続して実行する処理との間に設けた期間に実行されることを特徴とする請求項３記載の半導体記憶装置。
【請求項６】
該期間は可変であることを特徴とする請求項５記載の半導体記憶装置
【請求項７】
各々がコマンドを受信する複数Ｎ個の外部ポートと、
該外部ポートの１つに入力される複数のコマンド間の最小間隔の間に少なくともＮ回のアクセス動作を逐次的に実行する内部回路と、
該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドを該内部回路に実行させるコマンド実行順番を決定する裁定回路と、
該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドのうちで同一アドレスにアクセスするコマンドが複数個存在するか否かを判定するアドレス比較回路と、
所定の信号に応じて外部コントローラから送信されるインタラプト信号を受信する回路
を含み、
該複数Ｎ個の外部ポートの各々は、
同一アドレスにアクセスするコマンドが複数個存在する場合には該所定の信号を装置外部に出力する信号出力回路と、
シリアルに受信したデータをパラレルデータとして該内部回路に供給する回路と、
該内部回路からパラレルに供給されたデータをシリアルデータとして外部に出力する回路
を含み、
前記内部回路はダイナミック型メモリセルで構成されたセル配列を含み、
該インタラプト信号が受信されると該裁定回路は該コマンド実行順番を変更することを特徴とする半導体記憶装置。
【請求項８】
通常動作モードと連続動作モードを備え、該通常動作モードはROWを選択し１つのコマンドに対応した動作を実行しプリチャージする工程を一つの内部動作サイクルで実行し、該連続動作モードはROWを選択し複数のコマンドに対応した動作を連続して実行しプリチャージする工程を一つの内部動作サイクルで実行し、該アドレス比較回路の比較結果に基づき通常動作モードと連続動作モードとが切り替わり、該インタラプト信号を受信する動作は、該連続動作モードにおいてROWを選択する処理と複数のコマンドに対応した動作を連続して実行する処理との間に設けた期間に実行されることを特徴とする請求項７記載の半導体記憶装置。
【請求項９】
各々がコマンドを受信する複数Ｎ個の外部ポートと、
該外部ポートの１つに入力される複数のコマンド間の最小間隔の間に少なくともＮ回のアクセス動作を逐次的に実行する内部回路
を含み、該内部回路は、
ダイナミック型メモリセルで構成されたセル配列と、
該メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路
を含み、第１のモードでは該複数Ｎ個の外部ポートの少なくとも１つへ入力されるリフレッシュコマンドに応じて該メモリセルをリフレッシュし、第２のモードでは該リフレッシュ回路が指定するタイミングで該メモリセルをリフレッシュすることを特徴とする半導体記憶装置。
【請求項１０】
該複数Ｎ個の外部ポートのうちで少なくとも１つが非活性である場合に該第２のモードになることを特徴とする請求項９記載の半導体記憶装置。
【請求項１１】
該複数Ｎ個の外部ポートのうちで該リフレッシュコマンドを入力する外部ポートを装置外部から指定可能であることを特徴とする請求項９記載の半導体記憶装置。
【請求項１２】
該複数Ｎ個の外部ポートのうちで該リフレッシュコマンドを入力する該外部ポートが非活性である場合に該第２のモードになることを特徴とする請求項１１記載の半導体記憶装置。
【請求項１３】
該複数Ｎ個の外部ポートのうちで該リフレッシュコマンドを入力する外部ポートを指定するモードレジスタを更に含むことを特徴とする請求項１１記載の半導体記憶装置。
【請求項１４】
該複数Ｎ個の外部ポートの各々は外部からクロック信号を受信するクロック端子を含み該クロック信号に同期して動作し、該信号入力回路と該信号出力回路は該クロック信号と非同期に動作することを特徴とする請求項１記載の半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に半導体記憶装置に関し、詳しくは複数のポートを備えた半導体記憶装置に関する。
【０００２】
【従来の技術】
複数のポートを備えた半導体記憶装置であるマルチポートメモリには、いくつかの種類がある。以下において、マルチポートメモリと言った場合、複数のポートを持ちそれぞれのポートから共通のメモリアレイに対し独立にアクセスできるメモリを指すこととする。そのようなメモリでは、例えば、ＡポートとＢポートを備え、Ａポートに接続したＣＰＵとＢポートに接続したＣＰＵから共通のメモリアレイに独立に読み書きできる。
【０００３】
マルチポートメモリは、アービタと呼ばれる裁定回路を備える。このアービタが、複数のポートから受信したアクセス要求の優先順位を決定し、メモリアレイの制御回路が、この優先順位に従ってアクセスを順次実行する。例えば各ポートへの入力が早いアクセスから順番に、優先的に実行される。
【０００４】
このような場合、メモリアレイは複数のポートからランダムにアクセスされるので、1回のアクセスに対して読み出し又は書き込み動作を実施したら直ちにリセットして、次のアクセスに備える必要がある。即ち、あるポートからのアクセスに対して、例えばＤＲＡＭで一般的なコラムアクセス動作のようにワード線を選択状態に保持して順次コラムアドレスを移動して読み出していくといった動作をすると、別のポートからのアクセスがその間待たされ続けることになる。従って、1回の読み出し或いは書き込み動作後には直ちにリセットをする必要がある。
【０００５】
従来、マルチポートメモリのメモリアレイとしては、一般的にＳＲＡＭが用いられてきた。ＳＲＡＭはランダムアクセスが高速であり、また非破壊の読み出しが可能だからである。
【０００６】
例えば２ポートのマルチポートメモリでは、１つのＳＲＡＭメモリセルに対して、ワード線とビット線対が２セットずつ設けられる。一方のポートは、一方のワード線とビット線対のセットを用いて読み書き動作を実行し、他方のポートは、他方のワード線とビット線対のセットを用いて読み書き動作を実行する。これによって、２つのポートから独立に読み書きができることになる。但し、同じセルに両ポートから同時に書き込み指示があった時は、同時に実施することは不可能となるので、片方のポートを優先して実施し、他方のポートにはＢＵＳＹ信号を発生する。これをＢＵＳＹ状態という。
【０００７】
【発明が解決しようとする課題】
システムが高性能化するにつれて扱うデータ量も増大し、マルチポートメモリにも大容量が必要とされてきている。しかし上記のようなＳＲＡＭ型マルチポートメモリには、メモリセルの面積が大きいという問題がある。
【０００８】
これを解決するために、ＤＲＡＭアレイをマルチポートメモリに採用することが考えられる。マルチポートＳＲＡＭに対して大幅な高集積度を達成するためには、一般のＤＲＡＭセルの場合と同様に、マルチポートメモリに使用するＤＲＡＭの１つのメモリセルは、１本のワード線と１本のビット線にだけ接続されることが必要である。このようにＤＲＡＭセルを用いてメモリブロックを構成した場合、あるブロックのメモリセルに対してあるポートから読み出し又は書き込み動作を実行すると、その動作中は、そのブロックに対して他のポートからアクセスすることが出来ない。これは、ＤＲＡＭセルは破壊読み出しであるためである。即ち一旦情報を読み出すと、この情報を増幅してセルに書き戻し更にワード線・ビット線をプリチャージした後でなくては、同一ブロック内の他のワード線を選択することが出来ない。
【０００９】
この理由のために、あるポートからアクセス中のメモリブロックに他のポートからアクセスがあると、ＢＵＳＹ状態になってしまう。ＳＲＡＭ型のマルチポートメモリでは、同一のメモリセルに複数のポートから同時に書き込み要求があったときだけＢＵＳＹ状態が発生するが、ＤＲＡＭ型のマルチポートメモリでは、同一のメモリブロックに複数のポートから同時に何らかのアクセス要求があった場合にＢＵＳＹ状態が発生する。従って、ＤＲＡＭ型のＢＵＳＹ発生確率は、ＳＲＡＭ型のＢＵＳＹ発生確率に比べるとかなり大きい。ＢＵＳＹ状態になると、所望の動作が実行出来ない、或いは待ち時間が発生するので処理が遅くなるといった問題点がある。
【００１０】
またＳＲＡＭ型のマルチポートメモリと異なり、ＤＲＡＭ型のマルチポートメモリでは情報の保持のために定期的にリフレッシュすることが必要となるので、リフレッシュのタイミング等についても対策が必要になる。
【００１１】
以上を鑑みて、本発明は、ＤＲＡＭ特有の問題点を解決したＤＲＡＭ型のマルチポートメモリを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明により半導体記憶装置は、各々がコマンドを受信する複数Ｎ個の外部ポートと、該外部ポートの１つに入力される複数のコマンド間の最小間隔の間に少なくともＮ回のアクセス動作を逐次的に実行する内部回路と、該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドを該内部回路に実行させるコマンド実行順番を決定する裁定回路と、該複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドのうちで同一アドレスにアクセスするコマンドが複数個存在するか否かを判定するアドレス比較回路と、マスタ動作モード或いはスレーブ動作モードを指定するモードレジスタを含み、該複数Ｎ個の外部ポートの各々は、同一アドレスにアクセスするコマンドが複数個存在する場合には所定の信号を装置外部に出力する信号出力回路と、該所定の信号を装置外部から受信する信号入力回路と、シリアルに受信したデータをパラレルデータとして該内部回路に供給する回路と、該内部回路からパラレルに供給されたデータをシリアルデータとして外部に出力する回路を含み、前記内部回路はダイナミック型メモリセルで構成されたセル配列を含み、該モードレジスタがマスタ動作モードを指定する場合には該信号出力回路を活性化し、該モードレジスタがスレーブ動作モードを指定する場合には該信号入力回路を活性化することを特徴とする。
【００１３】
また複数Ｎ個の外部ポートからそれぞれ入力される複数のコマンドを内部回路に実行させるコマンド実行順番を決定する裁定回路を更に含むことを特徴とする。
【００１４】
上記発明では、複数Ｎ個のポートからコマンドが入力された場合に、Ｎ個のポートに対応するＮ個のコマンドを、あるポートに着目した場合の最小のコマンドサイクルの間に順次実行する。これにより、外部からは任意のポートについて、最小のコマンドサイクルの間に、そのポートのコマンド入力に対するアクセス動作を実行するように見える。この場合、ＢＵＳＹ状態となる可能性があるのは、同一のアドレスに複数のポートから同時にアクセス要求があったときだけである。従って、ＳＲＡＭ型のマルチポートメモリのＢＵＳＹ発生確率と、同等の低いＢＵＳＹ発生確率を実現することが出来る。
【００１５】
また更に本発明の半導体記憶装置において、内部回路は、ダイナミック型メモリセルで構成されたセル配列と、メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路を含み、第１のモードでは複数Ｎ個の外部ポートの少なくとも１つへ入力されるリフレッシュコマンドに応じてメモリセルをリフレッシュし、第２のモードではリフレッシュ回路が指定するタイミングでメモリセルをリフレッシュすることを特徴とする。
【００１６】
上記発明では、外部ポートから指定してリフレッシュ動作を実行する動作モードと、内蔵リフレッシュ回路の指示によりリフレッシュ動作を実行する動作モードを用意しておくことで、例えば所定の外部ポートをリフレッシュ管理用のポートとして定期的にリフレッシュコマンドを入力するように動作させたり、このリフレッシュ管理用のポートが非活性状態の場合に内蔵リフレッシュ回路によってリフレッシュ動作を実行すること等が可能になり、システム構成に応じて柔軟にリフレッシュ管理を行うことが出来る。
【００１７】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１８】
まず本発明の動作原理について説明する。
【００１９】
図1は、本発明の動作原理を説明するための図である。図１には、２ポートの場合の原理図を示すが、２つ以上のＮポートの場合であっても同様の動作が可能である。
【００２０】
内部（ＤＲＡＭコア）が２サイクル回る時間を、外部コマンドサイクルの１サイクルと設定する。すなわち外部のコマンドサイクルに対し内部動作サイクルは倍速で回る。AポートとBポートの両方から入ってきたコマンドを、コマンド受け付けの早いものから順番に、内部メモリにおいて倍速で処理し、出力データをそれぞれのポートに渡す。即ち、１回の内部動作サイクルで、ワード線の選択、データの増幅、コラム選択、Read又はWrite動作、及びプリチャージの一連の動作を実行し、当該メモリブロックに対するアクセス動作を完結させる。
【００２１】
例えば、図１のＡポートに対する外部コマンドサイクルのタイミングＣ１では、Ａポートから読み出しコマンドが入力される。また、Ｂポートに対する外部コマンドサイクルのタイミングＣ１’では、Ｂポートから読み出しコマンドが入力される。Ａポートからの読み出しコマンドの方が僅かにタイミングが早いために、Ｂポートからの読み出しコマンドよりも先に内部で実行される。ここで外部コマンドサイクルは４クロックサイクルである。各読み出しコマンドは、図１に示されるように、内部動作サイクルである２クロックサイクルで実行され完了する。従って、Ａポートからの読み出しアクセスとＢポートからの読み出しアクセスとが同一のブロックに対するものであっても、各アクセスを２クロックサイクルで実行完了することによって、外部コマンドサイクルである４クロックサイクルで入力されたＡポート及びＢポートからの読み出し命令に対して、ＢＵＳＹ状態を発生することなく読み出し動作を実行することが出来る。
【００２２】
このようにして、仮に同一のメモリブロックに複数のポートから同時期にアクセスがある場合であっても、内部メモリでは倍速に連続して処理することが可能であるために、ＢＵＳＹ状態とはならない。
【００２３】
また図１に示されるように、リフレッシュコマンドを外部から与えた場合（例えばＡポートから与えた場合）、他のポート（この例ではＢポート）のアクセスに影響を与えないで形で、内部においてリフレッシュ動作を実行することができる。この場合、例えば、複数のポートのうちの１つのポート（図１の例ではＡポート）をリフレッシュ管理をするポートとして設定して、リフレッシュ命令は常にこのポートから入力するようにして良い。
【００２４】
またデータ出力は、複数のコラムアドレスからデータをパラレルに読み出して出力時にシリアルに変化してデータ出力するバーストタイプとすることにより、データ転送速度を向上させ、連続したＲｅａｄコマンドに対しデータを連続して出力することが可能となる。
【００２５】
図２は、複数のポートのうちの一方のポートだけを動作させた場合のリフレッシュ動作を示す図である。
【００２６】
図２に示すように、例えばＡポート及びＢポートの２つのポートを備えている場合に、必ずしも両方のポートを動作させる必要はない。リフレッシュタイマを内蔵させることで、内部でリフレッシュコマンドを内部で発生させることが出来る。例えば、図２に示されるように、片方のポート（例えばＢポート）が停止している場合にリフレッシュコマンドを内部で発生させ、Ａポートのアクセスに影響を与えずに内部でリフレッシュを実施することが可能である。
【００２７】
例えば、ＡポートをコントローラＡが制御し、ＢポートをコントローラＢが制御し、コントローラＢがリフレッシュの管理を実施している場合を考える。このような場合、上記のような内部リフレッシュの機能があれば、Ｂポートを完全に止めてＡポートだけを使用することができるので、システムの動作に対応した電力削減が可能になる。
【００２８】
図３は、２ポート、３ポート、及びＮポートの場合の本発明の原理を説明するための図である。
【００２９】
前述のように、本発明は３ポート以上のマルチポートメモリにも適用が可能である。図３（ａ）は、図１及び図２で示したような２ポートの場合の１つのポートに対する動作を示す。また（ｂ）には、３ポートの場合の１つのポートに対する動作を示し、（ｃ）には、Nポートメモリの場合を示す。図３（ｃ）に示されるように、Nポートメモリの場合には、外部コマンドサイクルに対して内部動作サイクルの長さを１／Nにすればよい。
【００３０】
以下に、本発明の実施例による半導体記憶装置を説明する。
【００３１】
図４は、本発明によるマルチポートメモリの第１の実施例を示す構成図である。この例では、ＡポートとＢポートの２つのポートを持つ構成となっている。
【００３２】
図４のマルチポートメモリ１０は、Ａポート１１、Ｂポート１２、セルフリフレッシュ回路１３、ＤＲＡＭコア１４、アービタ１５、リフレッシュコマンドレジスタ１６、コマンドレジスタＡ１７、コマンドレジスタＢ１８、リフレッシュアドレスレジスタ１９、アドレスレジスタＡ２０、アドレスレジスタＢ２１、ＷｒｉｔｅデータレジスタＡ２２、ＷｒｉｔｅデータレジスタＢ２３、転送ゲートＡ２４、及び転送ゲートＢ２５を含む。
【００３３】
Ａポート１１は、モードレジスタ３１、ＣＬＫバッファ３２、データ入出力回路３３、アドレスバッファ３４、及びコマンドデコーダ３５を含む。またＢポート１２は、モードレジスタ４１、ＣＬＫバッファ４２、データ入出力回路４３、アドレスバッファ４４、及びコマンドデコーダ４５を含む。Ａポート１１及びＢポート１２では、それぞれのクロックＣＬＫＡ及びＣＬＫＢに同期して、独立して外部バスとのアクセスが確立される。モードレジスタ３１及び４１には、それぞれのポートに対して、データレイテンシやバースト長等のモードを設定できるようになっている。この実施例では、Ａポート１１及びＢポート１２の両方のポートにモードレジスタを配置し、それぞれのポートでモード設定可能な構成としてある。しかし例えば、片方のポートにだけモードレジスタを配置して、両方のポート分の設定を片方のポートで実施するようにしてもよい。
【００３４】
セルフリフレッシュ回路１３は、リフレッシュタイマ４６と、リフレッシュコマンド発生器４７を含む。セルフリフレッシュ回路１３は、内部でリフレッシュコマンドを発生する回路であり、信号ＣＫＥＡ１及びＣＫＥＢ１をＡポート１１及びＢポート１２から受け取る。信号ＣＫＥＡ１及びＣＫＥＢ１は、外部からの信号ＣＫＥＡとＣＫＥＢを、それぞれＣＬＫバッファ３２及び４２でバッファした信号である。外部からの信号ＣＫＥＡとＣＫＥＢは、それぞれのポートのクロックバッファを停止させ当該ポートを非活性にするために用いられる。Ａポート１１及びＢポート１２のうちで片方のポートが非活性になったら、セルフリフレッシュ回路１３が動作する。モードレジスタ３１及び４１にどちらのポートがリフレッシュ管理を担当するかを設定しておけば、リフレッシュ管理担当ポートが非活性になった時に、セルフリフレッシュ回路１３を動作させるようにしてもよい。
【００３５】
またＤＲＡＭコア１４は、メモリアレイ５１、デコーダ５２、制御回路５３、ＷｒｉｔｅＡｍｐ５４、及びセンスバッファ５５を含む。メモリアレイ５１は、ＤＲＡＭメモリセル、セルゲートトランジスタ、ワード線、ビット線、センスアンプ、コラム線、コラムゲート等からなり、読み出し動作・書き込み動作の対象となるデータを記憶する。デコーダ５２は、アクセスするアドレスをデコードする。制御回路５３は、ＤＲＡＭコア１４の動作を制御する。ＷｒｉｔｅＡｍｐ５４は、メモリアレイ５１に書き込むデータを増幅する。センスバッファ５５は、メモリアレイ５１から読み出すデータを増幅する。
【００３６】
Ａポート１１への入力は、アドレスレジスタＡ２０、リフレッシュコマンドレジスタ１６、コマンドレジスタＡ１７、及びＷｒｉｔｅデータレジスタＡ２２に転送される。またＢポート１２への入力は、アドレスレジスタＢ２１、リフレッシュコマンドレジスタ１６、コマンドレジスタＢ１８、及びＷｒｉｔｅデータレジスタＢ２３に供給される。アービタ（裁定回路）１５は、Ａポート１１及びＢポート１２の間でどちらのコマンドを優先して処理するかを決定するために、コマンドの入力された順番を判定する。その判定結果に従った順番で、アービタ１５は、各レジスタからＤＲＡＭコア１４にコマンド、アドレス、及びデータ（書き込み動作の場合）を転送する。転送されたデータに基づいて、ＤＲＡＭコア１４が動作する。読み出しコマンドの場合には、ＤＲＡＭコア１４から読み出されたデータは、対応するコマンドが入力されたポートに転送され、パラレル・シリアル変換され、そのポートのクロックに同期して出力される。
【００３７】
図５は、アービタ１５へのコマンド入力に関連する回路の構成図である。
【００３８】
コマンドデコーダ３５は、入力バッファ６１、コマンドデコーダ６２、及び（ｎ−１）クロックディレイ回路６３を含む。またコマンドデコーダ４５は、入力バッファ７１、コマンドデコーダ７２、及び（ｎ−１）クロックディレイ回路７３を含む。コマンドレジスタＡ１７は、Ｒｅａｄコマンドレジスタ１７−１及びＷｒｉｔｅコマンドレジスタ１７−２を含む。またコマンドレジスタＢ１8は、Ｒｅａｄコマンドレジスタ１８−１及びＷｒｉｔｅコマンドレジスタ１８−２を含む。
【００３９】
入力バッファ６１或いは７１に入力されたコマンドは、Ｒｅａｄコマンドの場合は、コマンドデコーダ６２或いは７２を介して、そのままのタイミングでＲｅａｄコマンドレジスタ１７−１或いは１８−１に転送される。Ｗｒｉｔｅコマンドの場合は、（ｎ−１）クロックディレイ回路６３或いは７３で（ｎ−１）クロック遅延され、書き込まれる一連のバーストデータのｎ個目の最終データが入力されたタイミングで、Ｗｒｉｔｅコマンドレジスタ１７−２或いは１８−２に転送される。
【００４０】
またリフレッシュコマンドに関しては、Ａポート１１、Ｂポート１２、及びリフレッシュコマンド発生器４７からのリフレッシュコマンドが、リフレッシュコマンドレジスタ１６に転送される。リフレッシュコマンドの発生頻度が低いので、リフレッシュコマンドレジスタを複数個用意する必要は無い。またリフレッシュコマンド発生器４７に入力されるセルフリフレッシュ設定情報は、モードレジスタ３１及び４１から供給される情報であり、どちらのポートがリフレッシュ管理をしているかを示す情報である。
【００４１】
アービタ１５は、各コマンドレシスタにコマンドが転送された順番を検出し、ＤＲＡＭ制御回路５３にそのコマンドを順番に1個づつ転送する。
【００４２】
ＤＲＡＭ制御回路５３はコマンドを受信したら（またはコマンド実行が終了に近づいたら）、ＲＥＳＥＴ１信号を発生し、アービタ１５に次ぎのコマンドを用意させる。本実施例では、ＲＥＳＥＴ１信号が切断されると、ＤＲＡＭ制御回路５３は次のコマンドを受信する。
【００４３】
アービタ１５はＲＥＳＥＴ１信号を受け取ると、リセット信号ＲｅｓｅｔＲＡ、ＲｅｓｅｔＷＡ、ＲｅｓｅｔＲＢ、ＲｅｓｅｔＷＢ、及びＲｅｓｅｔＲＥＦのいずれかを、コマンドレジスタＡ１７、コマンドレジスタＢ１８、及びリフレッシュコマンドレジスタ１６のうちの対応するコマンドレジスタに供給する。これによって、ＤＲＡＭコア１４への転送が終了したコマンドが格納されているコマンドレジスタをリセットし、このコマンドレジスタに次ぎのコマンドを用意する。
【００４４】
図６は、アービタ１５の構成を示す回路図である。
【００４５】
図６（ａ）に示されるように、アービタ１５は、比較器８０−１乃至８０−１０、ＡＮＤ回路８１−１乃至８１−５、ＡＮＤ回路８２−１乃至８２−５、ＡＮＤ回路８３−１乃至８３−５、ディレイ回路８４−１乃至８４−５、インバータ８５乃至８７、ＮＡＮＤ回路８８、及びインバータ８９及び９０を含む。比較器８０−１乃至８０−１０の各々は同一の回路構成を有しており、図６（ｂ）に示されるように、ＮＡＮＤ回路９１及び９２と、インバータ９３及び９４を含む。
【００４６】
コマンドレジスタＡ１７からの読み出しコマンド信号ＲＡ２と書き込みコマンド信号ＷＡ２と、コマンドレジスタＢ１８からの読み出しコマンド信号ＲＢ２と書き込みコマンド信号ＷＢ２と、更にリフレッシュコマンドレジスタ１６からのリフレッシュコマンドＲＥＦ２が、アービタ１５に供給される。これら５個のコマンド信号から２つを選択する１０通りの組合せ全てに対して、１０個の比較器８０−１乃至８０−１０が、コマンド到着タイミングの前後関係を判定する。
【００４７】
各比較器は２個のコマンドのタイミングを比較して、先にＨＩＧＨが入力された側の出力をＨＩＧＨとする。例えば、比較器８０−１乃至８０−４は、Ａポート１１に対する読み出しコマンド信号ＲＡ２と、他の４個のコマンドとの前後関係を判定する。読み出しコマンド信号ＲＡ２が、他の４個のコマンドのいずれよりも早い場合には、ＡＮＤ回路８１−１の出力である読み出しコマンド信号ＲＡ３１がＨＩＧＨになる。ＲＥＳＥＴ１信号がＬＯＷの場合には、この読み出しコマンド信号ＲＡ３１が、読み出しコマンド信号ＲＡ３として、アービタ１５からＤＲＡＭコア１４に出力される。
【００４８】
コマンドをＤＲＡＭコア１４が受信すると、ＲＥＳＥＴ１信号がＤＲＡＭコアで発生されＨＩＧＨとなる。このＲＥＳＥＴ１信号は、インバータ８５乃至８７、ＮＡＮＤ回路８８、及びインバータ８９によってパルス信号に変換され、ＡＮＤ回路８３−１乃至８３−５に供給される。例えば、読み出しコマンド信号ＲＡ３１がＨＩＧＨの場合には、ディレイ回路８４−１を介して、受信済のコマンドが格納されたコマンドレジスタをリセットする信号（ＲｅｓｅｔＲＡ）を発生する。
【００４９】
図７は、アービタ１５の動作を示すタイミングチャートである。
【００５０】
図７に示される信号名は、図６の各部に示される。図７は、読み出しコマンドが、Ａポート１１とＢポート１２に供給された場合のアービタ１５の動作を示す。図７に示されるように、まずＡポート１１に対応する読み出し命令であるＲＡ２が優先的に選択されてＲＡ３１が生成され、コア回路が読み出し動作ＲＥＡＤ−Ａを実行する。これにより生成されたリセット信号ＲＥＳＥＴ１に応じて、読み出しコマンド信号ＲＡ２がリセットされる。これに応じて、Ｂポート１２に対応する読み出し命令であるＲＢ２が選択されＲＢ３１が生成される。リセット信号ＲＥＳＥＴ１がＬＯＷになると、読み出し命令ＲＢ３がコア回路に供給され、読み出し動作ＲＥＡＤ−Ｂを実行する。
【００５１】
図８は、ＤＲＡＭコア１４へのアドレス入力に関連する回路の構成図である。
【００５２】
Ａポート１１のアドレスバッファ３４は、入力バッファ３４−１、転送ゲート３４−２、及びＯＲ回路３４−３を含む。図５に示されるコマンドデコーダ６２の出力である読み出しコマンド信号ＲＡ１に対して、立ち上がりエッジをパルス化したパルス信号が、ＯＲ回路３４−３の一方の入力にＲＡ１Ｐとして供給される。また図５に示されるコマンドデコーダ６２のもう一方の出力である書き込みコマンド信号ＷＡ１に対して、立ち上がりエッジをパルス化したパルス信号が、ＯＲ回路３４−３のもう一方の入力にＷＡ１Ｐとして供給される。以降同様に、信号名の最後にＰが付いている信号は、対応する信号名の信号に対して、その立ち上がりエッジをパルス化する等して作成した信号を表す。
【００５３】
Ｂポート１２のアドレスバッファ４４は、入力バッファ４４−１、転送ゲート４４−２、及びＯＲ回路４４−３を含む。
【００５４】
アドレスレジスタＡ２０は、アドレスラッチ１０１、転送ゲート１０２、アドレスラッチ１０３、転送ゲート１０４、転送ゲート１０５、アドレスラッチ１０６、及び転送ゲート１０７を含む。またアドレスレジスタＢ２１は、アドレスラッチ１１１、転送ゲート１１２、アドレスラッチ１１３、転送ゲート１１４、転送ゲート１１５、アドレスラッチ１１６、及び転送ゲート１１７を含む。
【００５５】
リフレッシュアドレスレジスタ１９は、リフレッシュアドレスカウンタ／レジスタ１９−１、インバータ１９−２、及び転送ゲート１９−３を含む。リフレッシュアドレスはリフレッシュアドレスカウンタ／レジスタ１９−１で発生され保持される。
【００５６】
上記回路構成によって、ＲｅａｄコマンドまたはＷｒｉｔｅコマンドが外部から入力されると、それと同時に入力されたアドレスが、アドレスラッチ１０１或いは１１１に転送される。コマンドがＲｅａｄコマンドの場合には、そのままのタイミングでアドレスラッチ１０６或いは１１６に転送される。コマンドがＷｒｉｔｅコマンドの場合には、一連の書き込みデータの最終データの取り込みタイミングで、アドレスラッチ１０３或いは１１３に転送される。
【００５７】
図８の回路構成に示されるように、アービタ１５がＤＲＡＭコア１４に転送するコマンド信号であるＲＡ３、ＷＡ３、ＲＢ３、ＷＢ３、及びＲＥＦ３に対応したパルス信号ＲＡ３Ｐ、ＷＡ３Ｐ、ＲＢ３Ｐ、ＷＢ３Ｐ、及びＲＥＦ３Ｐに応答して、アドレス信号がアドレスラッチからＤＲＡＭコア１４に転送される。
【００５８】
図９は、データ出力に関連する回路の構成図である。
【００５９】
データ入出力回路３３のデータ出力に関連する部分は、データラッチ１２１、転送ゲート１２２、データラッチ１２３、パラレル・シリアル変換器１２４、出力バッファ１２５、及び転送信号発生回路１２６を含む。またデータ入出力回路４３のデータ出力に関連する部分は、データラッチ１３１、転送ゲート１３２、データラッチ１３３、パラレル・シリアル変換器１３４、出力バッファ１３５、及び転送信号発生回路１３６を含む。
【００６０】
メモリアレイ５１から読み出されたデータは、センスバッファ５５で増幅され、転送ゲートＡ２４或いは転送ゲートＢ２５を介して、データ入出力回路３３或いはデータ入出力回路４３に供給される。この際、実行したコマンドがＡポート１１側の読み出しであれば転送ゲートＡ２４が開き、実行したコマンドがＢポート１２側の読み出しであれば転送ゲートＢ２５が開く。これにより供給されたデータは、データラッチ１２１或いは１３１にラッチされ保持される。
【００６１】
転送ゲート１２２或いは１３２は、転送信号発生回路１２６或いは１３６からの転送信号によって、各ポートでのＲｅａｄコマンド受信から所定のレイテンシ後に開かれる。これによりデータラッチ１２１或いは１３１のデータは、データラッチ１２３或いは１３３に転送される。その後パラレル・シリアル変換器１２４或いは１３４でパラレルデータからシリアルデータに変換され、出力バッファ１２５或いは１３５に転送され出力される。
【００６２】
図１０は、転送信号発生回路１２６或いは１３６の構成を示す回路図である。
【００６３】
転送信号発生回路１２６或いは１３６は、フリップフロップ１４１乃至１４４及びマルチプレクサ１４５を含む。フリップフロップ１４１には、読み出しコマンド信号ＲＡ１或いはＲＢ１が供給され、クロック信号ＣＬＫＡ１或いはＣＬＫＢ１に同期して、次段のフリップフロップにコマンド信号が伝播されていく。マルチプレクサ１４５には、レイテンシ情報Ａ或いはＢが供給される。このレイテンシ情報は、レイテンシを例えば何クロックサイクルと指定する情報である。このレイテンシ情報に基づいて、マルチプレクサ１４５が、対応するフリップフロップのＱ出力を選択して、データ転送信号として出力する。
【００６４】
図１１は、データ入力に関連する回路の構成図である。
【００６５】
データ入出力回路３３のデータ入力に関連する部分は、データ入力バッファ１５１、シリアル・パラレル変換器１５２、及びデータ転送部１５３を含む。またデータ入出力回路４３のデータ入力に関連する部分は、データ入力バッファ１５４、シリアル・パラレル変換器１５５、及びデータ転送部１５６を含む。
【００６６】
データ入力バッファ１５１或いは１５４にシリアル入力されたデータが、シリアル・パラレル変換器１５２或いは１５５でパラレルデータに変換される。最後のデータが入力された時点で、パラレルデータが、ＷｒｉｔｅデータレジスタＡ２２或いはＷｒｉｔｅデータレジスタＢ２３に転送される。アービタ１５からＷｒｉｔｅコマンドがＤＲＡＭコア１４に転送されると、それに対応するタイミングを示す信号ＷＡ３Ｐ或いはＷＢ３Ｐによって、ＷｒｉｔｅデータレジスタＡ２２或いはＷｒｉｔｅデータレジスタＢ２３のデータがＤＲＡＭコア１４に転送される。
【００６７】
図１２は、連続してＲｅａｄコマンドが入力された場合の動作を示すタイミング図である。
【００６８】
Ａポート１１とＢポート１２は、それぞれ周波数の異なるクロックＣＬＫＡとＣＬＫＢに同期して動作する。この例では、Ａポート１１は最高クロック周波数で動作し、Ｂポート１２はそれより遅いクロック周波数で動作する。
【００６９】
Ａポート１１はＲｅａｄコマンドサイクル＝４（ＣＬＫＡ）、データレイテンシ＝４、バースト長＝４であり、Ｂポート１２はＲｅａｄコマンドサイクル＝２（ＣＬＫＢ）、データレイテンシ＝２、バースト長＝２である。データレイテンシとバースト長はそれぞれのポートのモードレジスタに設定される。
【００７０】
両ポートが受信したコマンドは、それぞれコマンドレジスタに保持される。またリフレッシュコマンドは、リフレッシュコマンドレジスタに保持される。アービタはこれらのコマンドレジスタを監視し、早く発生したコマンドから順番にＤＲＡＭコアに転送する。前回転送したコマンドの処理が終了してから、次ぎのコマンドを転送する。
【００７１】
ＤＲＡＭコアから読み出されたデータは、センスバッファから各ポートのデータラッチ（図９参照）に転送される。その後、パラレルデータからシリアルデータに変換され、外部クロックに同期してバースト出力される。
【００７２】
図１２に示されるように、リフレッシュコマンドがＡポートから1回入力されているが、Ｂポートの動作には影響を与えていない。
【００７３】
図１３は、連続してＷｒｉｔｅコマンドが入力された場合の動作を示すタイミング図である。
【００７４】
書き込み動作時に外部から入力されるデータは、バースト入力である。このときＷｒｉｔｅコマンドレジスタにＷｒｉｔｅコマンドが保持されるタイミングは、バースト入力の最終データが入力されたタイミングである。
【００７５】
図１３に示されるように、Ａポートから与えたリフレッシュコマンドは、Ｂポートの動作に影響を与えていない。
【００７６】
図１４は、Ａ及びＢの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。
【００７７】
図１４に示されるように、両ポートのクロックの位相に差があってもよい。両ポートともＲｅａｄコマンドサイクル＝４、データレイテンシ＝４、バースト長＝４である。両ポートを最高クロック周波数で動作させて、連続してＲｅａｄコマンドを入力した場合であっても、問題なく動作しているのがわかる。
【００７８】
図１５は、Ａ及びＢの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。図１５では、両ポートに書き込みコマンドが連続して入力される。
【００７９】
図１５に示されるように、両ポートのクロックの位相に差があってもよい。両ポートともＷｒｉｔｅコマンドサイクル＝４、データレイテンシ＝４、バースト長＝４である。両ポートを最高クロック周波数で動作させて、連続してＷｒｉｔｅコマンドを入力した場合であっても、問題なく動作しているのがわかる。
【００８０】
図１６は、コマンドがＲｅａｄからＷｒｉｔｅに切り替わる場合の動作を示すタイミング図である。
【００８１】
図１６に示されるように、Ｗｒｉｔｅ→ＷｒｉｔｅまたはＲｅａｄ→Ｒｅａｄのコマンド間隔に対して、Ｗｒｉｔｅ→Ｒｅａｄは余分にコマンド間隔を空ける必要がある。これは書き込みコマンドをコマンドレジスタに転送して処理するタイミングが、バースト入力の最後のデータを入力したタイミングとされているためである。これに対して読み出しコマンドをコマンドレジスタに転送して処理するのは、読み出しコマンドが入力されたタイミングであるので、Ｗｒｉｔｅ→Ｒｅａｄとコマンドが続く場合には、余分にコマンド間隔を空ける必要がある。但しこれは、データをバースト入力してパラレルデータに変換するという動作に起因するものであり、例えば４つのデータをバースト入力する代わりに１つだけデータを入力するよう構成すれば、Ｗｒｉｔｅ→Ｒｅａｄとコマンドが続く場合であってもコマンド間隔を空ける必要はない。
【００８２】
即ち、１つの書き込みコマンドに対して１つだけデータを入力するよう構成すれば、Ｗｒｉｔｅ→Ｒｅａｄとコマンドが続く場合であっても、Ｗｒｉｔｅ→ＷｒｉｔｅまたはＲｅａｄ→Ｒｅａｄと同様のコマンド間隔で動作することが可能である。
【００８３】
図１７は、コマンドがＲｅａｄからＷｒｉｔｅに切り替わる場合にリフレッシュコマンドを入力するタイミングを示した図である。
【００８４】
図１７上部に、リフレッシュコマンドを入力するタイミングを示してある。ここに示した期間の何処かのタイミングで、リフレッシュコマンドを入力すればよい。例えば、図１７に示されるタイミングでリフレッシュコマンドを入力しても、リフレッシュ動作が実際に開始されるのは先行する書き込みコマンドの実行が終了してからであり、それまでの間リフレッシュコマンドはリフレッシュコマンドレジスタで待機する状態にある。従って、この待機状態に対応する期間内であれは、任意のタイミングでリフレッシュコマンドを投入して良いことが分かる。
【００８５】
図１８は、片方のポートを非活性にした場合の動作を示すタイミング図である。
【００８６】
図１８に示されるように、片方のポート（図ではＡポート１１）を非活性にした場合には、リフレッシュタイマに基づいて内部でリフレッシュコマンドが発生され、これに応じてリフレッシュ動作が実行される。
【００８７】
図１９は、両ポートを非活性にした場合の動作を示すタイミング図である。
【００８８】
図１９に示されるように、両方のポートを非活性にした場合も、リフレッシュタイマに基づいて内部でリフレッシュコマンドが発生され、これに応じてリフレッシュ動作が実行される。
【００８９】
図２０は、ＤＲＡＭコアの動作を示すタイミング図である。図２０（ａ）が読み出し動作の場合を示し、図２０（ｂ）が書き込み動作の場合を示す。図２０（ａ）及び（ｂ）に示されるような動作タイミングで、１個のコマンドに対し、ワード線選択、データ増幅、ライトバック、及びプリチャージを順次実行し、動作を完結させる。
【００９０】
図２１は、１つのポートだけ動作させた場合の倍速動作を示すタイミング図である。
【００９１】
２つ設けられたポートのうち一方のポートを停止することにより、他方のポートから入力するコマンドの間隔を半分にすることが出来る。このとき外部コマンドの最高サイクルと内部動作の最高サイクルとは一致する。図２１の例では、クロック周波数は変えずに、コマンド間隔を短くしている。この場合、バースト長も短くなるので、データ転送レートは両方のポートを使用する場合と変わらない。
【００９２】
図２２は、クロック周波数を２倍にしてデータ転送レートを２倍にした倍速動作を示すタイミング図である。
【００９３】
図２２では、２つ設けられたポートのうち一方のポートを停止した場合に、他方のポートから入力するクロック信号を２倍の周波数とする。これに伴って、コマンド入力の時間間隔は半分になる。この場合、バースト長は両方のポートを使用する場合と同じであるので、データ転送レートは両方のポートを使用する場合に対して２倍になる。
【００９４】
なお外部クロック信号は入出力回路部にしか入力されないので、その部分を高速動作に対応して設計しておけば、上記倍速動作を容易に実現することが可能となる。
【００９５】
図２３は、本発明の第２の実施例を説明するための図である。
【００９６】
メモリは一般的に、用途に応じて拡張するものである。マルチポートメモリの場合も同様であり、１個で使うだけではなく、複数個搭載してメモリを拡張する場合がある。
【００９７】
マルチポートメモリはアービタを内蔵しており、どちらのポートのコマンドが早いかを検出して、その順番でコマンドを実行する。両ポートのコマンドが殆ど同時に入力された場合も、順番を決定して順次実行する。図２３のように複数のマルチポートメモリ２００−１乃至２００−ｎを搭載し、これらのマルチポートメモリ２００−１乃至２００−ｎに、Ａポートコントローラ２０１及びＢポートコントローラ２０２から、同一のコマンドを与えたとする。ＡポートとＢポートのコマンドが同時に発行されたとしても、信号線の長さや電源ノイズの影響によって、各マルチポートメモリに到達するコマンドの相対的タイミングが若干異なってしまう場合がある。この場合、各々のマルチポートメモリのアービタが、各々異なる順番でコマンドを実行してしまう可能性がある。
【００９８】
このＡポートとＢポートのコマンドが別々のアドレスに対するコマンドであれば、メモリデバイス間で順番が異なっても問題ないが、同一のアドレスに対するコマンドの場合には問題が発生する。
【００９９】
例えば、同じセルに対してＷｒｉｔｅしてからＲｅａｄするのと、ＲｅａｄしてからＷｒｉｔｅするのでは、Ｒｅａｄしたデータが異なる結果となる。また例えば、ＡポートのデータをＷｒｉｔｅした後にBポートのデータをＷｒｉｔｅした場合、メモリに残るのはＢポートのデータであるが、逆の順で実行した場合には、メモリにはＡポートのデータが残ることになる。
【０１００】
このようにメモリデバイス間でコマンド実行の順番が異なってしまったのでは、データの信頼性に大きな問題が発生する。
【０１０１】
従って、複数のマルチポートメモリを使用する場合には、マルチポートメモリ間でアービタの判定を合わせる必要がある。これを解決するために、本発明の第２の実施例では、複数のマルチポートメモリの中で1つをマスタデバイス２００−１とし、残りをスレーブデバイス２００−２乃至２００−ｎとし、マスタデバイスのアービタの判定にスレーブデバイスが判定を合わせる。
【０１０２】
図２４は、本発明によるマルチポートメモリの第２の実施例を示す構成図である。この例では、ＡポートとＢポートの２つのポートを持つ構成となっている。
【０１０３】
図４に示される第1の実施例との違いとしては、ＢＵＳＹ信号Ｉ／Ｏ部３６及び４６をＡポート１１Ａ及びＢポート１２Ａに備えること、またＡポートとＢポートのアドレスを比較するアドレス比較器２６を備えることが挙げられる。またアービタ１５Ａは、アドレス比較器２６でアドレスが一致して一致信号が発生したら、ＤＲＡＭコアの動作モードを連続モードに切り換えるように動作する。
【０１０４】
図２５は、連続モードの説明をするためのタイミング図である。
【０１０５】
第1の実施例の動作図（図２０）に示されるように、ＤＲＡＭコア動作は、ＲＯＷ動作とＣＯＬＵＭＮ動作に分けられる。本発明では、ＲＯＷ動作、ＣＯＬＵＭＮ動作、及びプリチャージ動作を、一連の流れで実行する１回の内部動作サイクルとしている。
【０１０６】
第２の実施例における連続モードとは、通常のＤＲＡＭのコラムアクセス動作と同じであり、同一のセルに対し連続してコマンドを実行する動作である。即ち、ＲＯＷ系動作の後にＣＯＬＵＭＮ系動作を複数回実行した後にプリチャージするモードである。ただし、同じセルのＷｒｉｔｅコマンドが重複した場合は、後から入力された方を実施して前に入力されたものは実施しない。これはＷｒｉｔｅを連続して実施しても、前にＷｒｉｔｅしたデータは後からＷｒｉｔｅしたデータに上書きされて後に残らないためである。
【０１０７】
図２５（ａ）に示すように、連続モードにすると通常の内部動作サイクルの２サイクルよりも動作を短縮することができ、時間に余裕ができる。この時間の余裕を、図２５（ｂ）に示すようにＲＯＷ系動作とＣＯＬＵＭＮ系動作の間に持たせる（以降Ｗａｉｔ期間と呼ぶ）。このＷａｉｔ期間中に、マスタとスレーブの間でコマンド実行順序を合わせる処理をする。
【０１０８】
以下に、ＢＵＳＹ信号によりマスタとスレーブとの動作を合わせる手順を説明する。
【０１０９】
マスタとスレーブの間でコマンド実行順序を合わせるために、ＢＵＳＹ信号を用いる。ＢＵＳＹ信号Ｉ／Ｏ部３６及び４６は、マスタデバイス２００−１ではＢＵＳＹ信号を出力するＢＵＳＹ出力回路となり、スレーブデバイス２００−２乃至２００−ｎではＢＵＳＹ信号を受け取るＢＵＳＹ入力回路となる。マスタデバイスかスレーブデバイスかを示す情報は、モードレジスタ３１或いは４１に設定される。
【０１１０】
メモリデバイスは、まず一方のポートからコマンドを受信し、図２０に示す動作を開始する。
【０１１１】
ＲＯＷ系動作の期間内に他のポートから同じアドレスに対してコマンドが入力されると、アドレス比較器２６から一致信号が発生する。この一致信号を受け取ると、アービタ１５Ａは、ＤＲＡＭコア１４の制御回路５３に連続モード信号を供給する。連続モード信号に応答して、ＤＲＡＭコア１４は、図２５（ｂ）に示すような連続モードに移行する。
【０１１２】
Ｗａｉｔ期間中に、マスタデバイス２００−１は、アービタ１５Ａの判定結果に基づいてＢＵＳＹ−ＡまたはＢＵＳＹ−Ｂを発生する。この例においては、アービタ１５Ａで先に受信したと判定した方のポートに対して、ＢＵＳＹ信号を発生する。
【０１１３】
同じくＷａｉｔ期間中に、スレーブデバイスはマスタデバイスの発生するＢＵＳＹ信号を検出し、それが自身のアービタ１５Ａの判定と違っていたら、自身のアービタ１５Ａの判定をマスタに合わせて変更する。変更後の順序に従って、ＣＯＬＵＭＮ系動作を実行する。
【０１１４】
図２６は、ＡポートのＲｅａｄとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【０１１５】
この実施例ではＢＵＳＹ信号は選択”Ｌ”の論理にしてある。またＢＵＳＹ信号は、非同期で発信／受信する信号とするのがよい。これは限られたＷａｉｔ期間内にＢＵＳＹを速やかに伝達するためである。
【０１１６】
図２６の例では、ＡポートのＲｅａｄＡ２がＢポートのＷｒｉｔｅＢ２よりも早いので、Ｗａｉｔ期間中にマスタはＡポートのＢＵＳＹ信号を発生する。このＢＵＳＹ信号をスレーブは受信して、ＡポートのＲｅａｄＡ２がＢポートのＷｒｉｔｅＢ２よりも早いことを知る。その後、マスタ及びスレーブにおいて、コラム動作をＲｅａｄＡ２→ＷｒｉｔｅＢ２の順に連続モードで実行する。
【０１１７】
図２７は、ＡポートのＲｅａｄとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。図２６では、ＡポートのＲｅａｄが早い場合を示したが、図２７では、ＢポートのＷｒｉｔｅが早い場合を示している。
【０１１８】
図２８は、ＡポートのＷｒｉｔｅとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【０１１９】
図２８に示される動作例は、Ａポートの書き込みコマンドが、Ｂポートの書き込みコマンドよりも早い場合である。即ち、ＡポートのＷｒｉｔｅＡ２がＢポートのＷｒｉｔｅＢ２よりも早いので、ＡポートのＢＵＳＹ信号が発生し、これがスレーブに供給される。この場合には、Ａポートの書き込みコマンドを実行しても直ぐに書き換えられることになるので、後から入力されたＢポートの書き込みコマンドＷｒｉｔｅＢ２のみを実行する。
【０１２０】
図２９は、ＡポートのＷｒｉｔｅとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【０１２１】
図２９に示される動作例は、Ｂポートの書き込みコマンドが、Ａポートの書き込みコマンドよりも早い場合である。この場合には、Ｂポートの書き込みコマンドを実行しても直ぐに書き換えられることになるので、Ａポートの書き込みコマンドＷｒｉｔｅＡ２のみを実行する。この例では、Ａポートのクロック周波数が、Ｂポートのクロック周波数よりも少し低い設定となっている。ＷｒｉｔｅＡ２及びＷｒｉｔｅＢ２のコマンドに対しては、Ａポートの方がコマンド入力は早いが、最終データ入力はＢポートの方が早い。従って、Ｂポートの書き込みコマンドが、Ａポートの書き込みコマンドよりも早いことになる。
【０１２２】
なお上記説明において、ＡポートのＲｅａｄとＢポートのＲｅａｄの場合については書かれていない。この場合は、どちらが先であってもデータの信頼性に影響がないので、ＢＵＳＹにする必要はない。
【０１２３】
図３０は、コントローラによるインタラプトを挿入可能なよう構成された場合の動作を示すタイミング図である。
【０１２４】
インタラプトとは、ＢＵＳＹになった場合にマスタデバイスのアービタの判定に対して、コントローラからその判定を変更させる指示を出すことである。インタラプトの指示の方法としては次のようなものがある。
ａ）コマンドで入力する方法
ｂ）専用端子を設ける方法
ｃ）特殊なアドレス組合せによる方法
ｄ）ＢＵＳＹ信号を用いる方法
上記ｄ）は例えば、ＢＵＳＹが発生しなかった方のポートのＢＵＳＹ信号をコントローラから与え、それをマスタとスレーブのメモリが検出する等の方法である。
【０１２５】
図３０の例では、ＡポートのＷｒｉｔｅとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合について、インタラプトが発生される。図２８及び図２９で説明したように、Ｗｒｉｔｅ−ＷｒｉｔｅでＢＵＳＹになる場合は、ＡまたはＢのどちらかのＷｒｉｔｅだけを実行するので、先に入力された方のデータが消えてしまう。
【０１２６】
図３０では、ＡポートのＷｒｉｔｅＡ２がＢポートのＷｒｉｔｅＢ２よりも早いので、ＡポートのＢＵＳＹ信号が発生する。マスタが生成したＢＵＳＹ信号を受信したコントローラは、Ａポートの書き込みデータが消えてしまうのを防止するために、インタラプト指示を発生する。
【０１２７】
マスタおよびスレーブは、コントローラからのインタラプト指示を受信し、アービタの判定を変更し、Ｗａｉｔ後にインタラプト指示に従ってＷｒｉｔｅ動作を実施する。即ち、アービタはＡポートのコマンドＷｒｉｔｅＡ２がＢポートのコマンドよりも遅いものと判定変更をして、ＷｒｉｔｅＡ２の書き込み動作を実行する。これによって、Ａポートの書き込みデータが消去されることを防ぐことができる。なおＷｒｉｔｅ→Ｗｒｉｔｅの動作の場合には、書き込み動作を１回実行するだけでよいので、Ｗａｉｔ時間はＲｅａｄ→ＷｒｉｔｅやＷｒｉｔｅ→Ｒｅａｄの連続モードに比べて長くとることができる。従ってこの時間を利用して、ＢＵＳＹ信号に基づくインタラプト指示を実施することが可能になる。
【０１２８】
上記の動作を達成するためのアドレス比較器・ＢＵＳＹ入出力系・インタラプト系の構成について以下に説明する。
【０１２９】
図３１は、本発明の第２の実施例によるマルチポートメモリにおけるアドレス比較器・ＢＵＳＹ入出力系・インタラプト系の構成を示す図である。
【０１３０】
アドレス比較器２６は、アドレスレジスタに保持されているアドレスを比較して、Ａポート１１のアドレスとＢポート１２のアドレスとが一致する場合に一致信号を出力する。またどの２つのアドレスが一致しているかを示すためにＡＲＡ、ＡＷＡ、ＡＲＢ、及びＡＷＢの信号を発生する。例えばＡポートのＷｒｉｔｅとＢポートのＷｒｉｔｅのアドレスが一致する場合には、ＡＷＡとＡＷＢを”Ｈ”にする。ＮＡＮＤ回路２０８乃至２１０によって、これらの信号のＮＡＮＤをとり、Ｎ１、Ｎ２、及びＮ３の何れかが”Ｌ”になる。
【０１３１】
図３１の左側（アドレス比較器２６の下）に配置されているのが、ＢＵＳＹ信号Ｉ／Ｏ部３６及び４６とインタラプト回路である。ＢＵＳＹ・Ｉ／Ｏ制御部２１１は、一致信号を検出すると、モードレジスタ３１或いは４１の設定に基づいて、マスタデバイスの場合は活性化信号(マスタ)を発生し、スレーブデバイスの場合は活性化信号(スレーブ)を発生する。活性化信号(マスタ)は、ＢＵＳＹ出力回路２１２及び２１３を活性化し、活性化信号(スレーブ)は、ＢＵＳＹ入力回路２１４及び２１５を活性化する。
【０１３２】
この時アービタにおいて、１番の順位で選択されたコマンドが、アービタの出力ＲＡ３、ＷＡ３、ＲＢ３、及びＷＢ３の何れか１つに出力されている（何れか１つが”Ｈ”になっている）。マスタデバイスの場合は、一致信号の立ち上がりをパルス化した信号Ｎ４によって、ＲＡ３〜ＷＢ３をラッチ２１６及び２１７にラッチする。ラッチされたデータに基づいて、ＢＵＳＹ−ＡまたはＢＵＳＹ−Ｂが出力される。
【０１３３】
スレーブデバイスの場合は、例えばＢＵＳＹ−Ａ＝”Ｌ”を受信すると、インタラプト回路２１８の出力である信号Ｎ１０は”Ｌ”となる。またＢＵＳＹ−Ｂ＝”Ｌ”を受信すると、インタラプト回路２１９の出力である信号Ｎ１１は”Ｌ”となる。Ｎ１０及びＮ１１は、非活性時は”Ｈ”であり、ＢＵＳＹ受信又はインタラプトが入った場合に”Ｌ”になる。
【０１３４】
インタラプト検出部２２０は、コントローラよりのインタラプト指示を検出し、インタラプトA又はBを出力する。これらのインタラプト信号は、ＢＵＳＹ入力信号よりも優先されて、信号Ｎ１０及びＮ１１に伝達される。
【０１３５】
図３１の下部に示される３個の比較器８０−３、８０−５、及び８０−６は、アービタ１５Ａの比較器の一部である（図６及び図２４参照）。これらは、ＢＵＳＹの判定が必要なコマンドの組合について、比較する比較器である。
【０１３６】
図３２は、マスタデバイスの動作を示すタイミング図である。図３３は、スレーブデバイスの動作を示すタイミング図である。
【０１３７】
これらの動作タイミング図に示すように、ＡポートのＲｅａｄとＢポートのＷｒｉｔｅのアドレスが一致したとする。図３２のマスタはAポートが早いと判定し、図３３のスレーブはBポートが早いと判断したとする。この場合マスタの比較器８０−３の出力は、Ｎ２１＝”Ｌ”及びＮ２２＝”Ｈ”となる。またスレーブの比較器８０−３の出力は、Ｎ２１＝”Ｈ”及びＮ２２＝”Ｌ”となる。マスタはＢＵＳＹ−Ａを発生し、それを受信したスレーブはＮ１０＝”Ｌ”になる。このときＮ１＝”Ｌ”になっているので、Ｎ１０のＬＯＷ信号が、ＮＯＲ回路２２１及びインバータ２２２を介して、スレーブの比較器８０−３に供給される。これにより、スレーブの比較器８０−３の出力は、Ｎ２１＝”Ｌ”及びＮ２２＝”Ｈ”に切り替わる。これによってスレーブのアービタの判定が変更される。
【０１３８】
上記動作と逆に、ＡポートのＷｒｉｔｅとＢポートのＲｅａｄのアドレスが一致したとする。この場合には、スレーブの比較器８０−５の出力が切り替わることによって、スレーブのアービタの判定が変更される。
【０１３９】
比較器８０−６は、ＷＡ２とＷＢ２の比較器であるが、Ｗｒｉｔｅ同士でＢＵＳＹになった場合はＡポートとＢポートのどちらかのコマンドを残すという動作になるので、比較器８０−３及び８０−５とは周辺回路の構成が異なる。
【０１４０】
図３４は、両ポートの書き込みアドレスが一致した場合のマスタデバイスの動作を示すタイミング図である。図３５は、両ポートの書き込みアドレスが一致した場合のスレーブデバイスの動作を示すタイミング図である。
【０１４１】
図３４のようにマスタはＡポートが早いと判断し、図３５のようにスレーブはＢポートが早いと判断したとする。アドレス比較器２６から一致信号が発生した時点の状態では、マスタの比較器８０−６の出力はＮ２５＝”Ｌ”及びＮ２６＝”Ｈ”であり、スレーブの比較器８０−６の出力はＮ２５＝”Ｈ”及びＮ２６＝”Ｌ”となっている。マスタはこの状態におけるＲＡ３、ＷＡ３、ＲＢ３、及びＷＢ３をラッチして、ＢＵＳＹ−Ａ信号を出力する。
【０１４２】
この場合のように、Ｗｒｉｔｅ−ＷｒｉｔｅでＢＵＳＹが発生する場合は、先に入力された方のＷｒｉｔｅを消す必要がある。インバータ２３１、ＮＯＲ回路２３２、ＮＡＮＤ回路２３３及び２３４、インバータ２３５及び２３６は、そのために設けられた回路である。一致信号が発生すると、ＨＩＧＨエッジパルス化回路２３０によって、信号Ｎ４の”Ｈ”パルスが発生する。信号Ｎ３と論理を取ってＮ３１に”Ｈ”パルスが発生する。この例において、マスタの場合は、Ｎ２６＝”Ｈ”であるので、Ｎ３３に”Ｈ”パルスが発生しＮ２５＝”Ｈ” 及びＮ２６＝”Ｌ”に切り替わる。ディレイ回路２３７及び２３８は、ＢＵＳＹ信号を発生するために切り替わり前の状態での時間を稼ぐと共に、切り替わった結果がＮＡＮＤ回路２３３及び２３４にフィードバックされて、再度切り替わってしまうのを防止するためである。またスレーブの方においては、Ｎ２５＝”Ｌ”及びＮ２６＝”Ｈ”に切り替わる。
【０１４３】
前述したようにマスタはＢＵＳＹ−Ａを発生し、それを受信したスレーブにおいてはＮ１０＝”Ｌ”になる。このときＮ３＝”Ｌ”になっているから、スレーブの比較器８０−６は再度反転されて、Ｎ２５＝”Ｈ”及びＮ２６＝”Ｌ”に切り替わる。
【０１４４】
ディレイ回路２５０は、信号Ｎ４を受け取り所定時間遅延させてＷａｉｔ解除信号を出力することで、Ｗａｉｔ期間を作成する機能を有する。ここで、Ｎ１或いはＮ２が選択された場合はDelay(t1)が選択され、Ｎ３が選択された場合はDelay(t2)が選択される。
【０１４５】
ＮＡＮＤ回路２５１及び２５２とインバータ２５３及び２５４は、Ｗａｉｔ期間が終了したら、消去した方のＷｒｉｔｅコマンドをコマンドレジスタから削除するための回路である。例えば、Ｗａｉｔ期間が終了した時にＮ２５＝”Ｌ”及びＮ２６＝”Ｈ”であれば、ＡポートのＷｒｉｔｅコマンドを実行する。従って、ＢポートのＷｒｉｔｅコマンドをレジスタから消去するために、ＲｅｓｅｔＷＢ２が発生する。Ｗａｉｔ期間中は、ＢＵＳＹ受信やインタラプトで判定を変える必要があるので、その期間はコマンドレジスタ内のコマンドは消去しないでおく。
【０１４６】
図３６は、両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のマスタデバイスの動作を示すタイミング図である。図３７は、両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のスレーブデバイスの動作を示すタイミング図である。
【０１４７】
図３６に示されるように、マスタデバイスにおけるコマンド選択状態はインタラプトで反転させられる。また図３７に示されるように、スレーブデバイスにおけるコマンド選択状態は、ＢＵＳＹで反転させられてから、インタラプトで更に反転させられる。なおインタラプトによる反転の動作はＢＵＳＹによる反転動作と同様であり、詳細な説明は省略する。
【０１４８】
なお上記第2の実施例の動作において、ＢＵＳＹやインタラプトが発生した後、次ぎのコマンドを入れるまでのコマンドサイクルは変わらないように構成されている。
【０１４９】
例えば図２６において、ＲｅａｄＡ２でＢＵＳＹが発生するが、ＲｅａｄＡ１→ＲｅａｄＡ２のコマンド間隔とＲｅａｄＡ２→ＲｅａｄＡ３のコマンド間隔は同じである。Ｗａｉｔ時間の間にＢＵＳＹやインタラプトを処理しなくてはいけないが、システム上のバス線が長かったり、搭載されたスレーブデバイスの数が多かったり、コントローラの応答速度が遅かったりした場合は、ＢＵＳＹやインタラプトの信号のやり取りに時間がかかるために、長いＷａｉｔ時間が必要になる。
【０１５０】
これを解決するためには、Ｗａｉｔ時間を延長するとともに、ＢＵＳＹやインタラプト発生後の次ぎのコマンド入力を所定の時間遅らせればよい。すなわち図２６において、Ｗａｉｔ時間を長くするとともに、ＲｅａｄＡ１→ＲｅａｄＡ２のコマンド間隔に対して、ＲｅａｄＡ２→ＲｅａｄＡ３のコマンド間隔を長くすればよい。
【０１５１】
コマンド入力を遅らせるためには、データシートにそのことを明記して、コントローラをそのように動作させればよい。Ｗａｉｔ時間を延長する方法としては、図３１に示されるディレイ回路２５０の遅延時間を長くすればよい。使用状態によりWait時間を変えたい場合は、このディレイ回路２５０内に遅延列を複数個用意して、モードレジスタの設定で遅延量の設定を切り替えられるようにすればよい。
【０１５２】
またこのようにＷａｉｔ時間を長くすれば、Ｗｒｉｔｅ−ＷｒｉｔｅのＢＵＳＹ以外の場合でもＷａｉｔ時間を長くとれるため、Ｒｅａｄ−ＷｒｉｔｅやＷｒｉｔｅ−ＲｅａｄでＢＵＳＹが発生した場合も、コントローラからインタラプト指示を出せるようになる。
【０１５３】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【０１５４】
【発明の効果】
上記発明では、複数Ｎ個のポートからコマンドが入力された場合に、Ｎ個のポートに対応するＮ個のコマンドを、あるポートに着目した場合の最小のコマンドサイクルの間に順次実行する。これにより、外部からは任意のポートについて、最小のコマンドサイクルの間に、そのポートのコマンド入力に対するアクセス動作を実行するように見える。この場合、ＢＵＳＹ状態となる可能性があるのは、同一のアドレスに複数のポートから同時にアクセス要求があったときだけである。従って、ＳＲＡＭ型のマルチポートメモリのＢＵＳＹ発生確率と、同等の低いＢＵＳＹ発生確率を実現することが出来る。
【０１５５】
また更に本発明の半導体記憶装置において、内部回路は、ダイナミック型メモリセルで構成されたセル配列と、メモリセルをリフレッシュするタイミングを規定するリフレッシュ回路を含み、第１のモードでは複数Ｎ個の外部ポートの少なくとも１つへ入力されるリフレッシュコマンドに応じてメモリセルをリフレッシュし、第２のモードではリフレッシュ回路が指定するタイミングでメモリセルをリフレッシュすることを特徴とする。
【０１５６】
上記発明では、外部ポートから指定してリフレッシュ動作を実行する動作モードと、内蔵リフレッシュ回路の指示によりリフレッシュ動作を実行する動作モードを用意しておくことで、例えば所定の外部ポートをリフレッシュ管理用のポートとして定期的にリフレッシュコマンドを入力するように動作させたり、このリフレッシュ管理用のポートが非活性状態の場合に内蔵リフレッシュ回路によってリフレッシュ動作を実行すること等が可能になり、システム構成に応じて柔軟にリフレッシュ管理を行うことが出来る。
【図面の簡単な説明】
【図１】本発明の動作原理を説明するための図である。
【図２】複数のポートのうちで一方のポートだけを動作させた場合のリフレッシュ動作を示す図である。
【図３】２ポート、３ポート、及びＮポートの場合の本発明の原理を説明するための図である。
【図４】本発明によるマルチポートメモリの第１の実施例を示す構成図である。
【図５】アービタへのコマンド入力に関連する回路の構成図である。
【図６】アービタの構成を示す回路図である。
【図７】アービタの動作を示すタイミングチャートである。
【図８】ＤＲＡＭコアへのアドレス入力に関連する回路の構成図である。
【図９】データ出力に関連する回路の構成図である。
【図１０】転送信号発生回路の構成を示す回路図である。
【図１１】データ入力に関連する回路の構成図である。
【図１２】連続してＲｅａｄコマンドが入力された場合の動作を示すタイミング図である。
【図１３】連続してＷｒｉｔｅコマンドが入力された場合の動作を示すタイミング図である。
【図１４】Ａ及びＢの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。
【図１５】Ａ及びＢの両ポートが最高クロック周波数で動作する場合を示すタイミング図である。
【図１６】コマンドがＲｅａｄからＷｒｉｔｅに切り替わる場合の動作を示すタイミング図である。
【図１７】コマンドがＲｅａｄからＷｒｉｔｅに切り替わる場合にリフレッシュコマンドを入力するタイミングを示した図である。
【図１８】片方のポートを非活性にした場合の動作を示すタイミング図である。
【図１９】両ポートを非活性にした場合の動作を示すタイミング図である。
【図２０】ＤＲＡＭコアの動作を示すタイミング図である。
【図２１】１つのポートだけ動作させた場合の倍速動作を示すタイミング図である。
【図２２】クロック周波数を２倍にしてデータ転送レートを２倍にした倍速動作を示すタイミング図である。
【図２３】本発明の第２の実施例を説明するための図である。
【図２４】本発明によるマルチポートメモリの第２の実施例を示す構成図である。
【図２５】連続モードの説明をするためのタイミング図である。
【図２６】ＡポートのＲｅａｄとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【図２７】ＡポートのＲｅａｄとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【図２８】ＡポートのＷｒｉｔｅとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【図２９】ＡポートのＷｒｉｔｅとＢポートのＷｒｉｔｅでＢＵＳＹが発生した場合の動作を示すタイミング図である。
【図３０】コントローラによるインタラプトを挿入可能なよう構成された場合の動作を示すタイミング図である。
【図３１】本発明の第２の実施例によるマルチポートメモリにおけるアドレス比較器・ＢＵＳＹ入出力系・インタラプト系の構成を示す図である。
【図３２】マスタデバイスの動作を示すタイミング図である。
【図３３】スレーブデバイスの動作を示すタイミング図である。
【図３４】両ポートの書き込みアドレスが一致した場合のマスタデバイスの動作を示すタイミング図である。
【図３５】両ポートの書き込みアドレスが一致した場合のスレーブデバイスの動作を示すタイミング図である。
【図３６】両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のマスタデバイスの動作を示すタイミング図である。
【図３７】両ポートの書き込みアドレスが一致してコントローラからインタラプト指示が発生する場合のスレーブデバイスの動作を示すタイミング図である。
【符号の説明】
１０  マルチポートメモリ
１１  Ａポート
１２  Ｂポート
１３  セルフリフレッシュ回路
１４  ＤＲＡＭコア
１５  アービタ
１６  リフレッシュコマンドレジスタ
１７  コマンドレジスタＡ
１８  コマンドレジスタＢ
１９  リフレッシュアドレスレジスタ
２０  アドレスレジスタＡ
２１  アドレスレジスタＢ
２２  ＷｒｉｔｅデータレジスタＡ
２３  ＷｒｉｔｅデータレジスタＢ
２４  転送ゲートＡ
２５  転送ゲートＢ
【図１】
0005070656.tif 000002
【図２】
0005070656.tif 000003
【図３】
0005070656.tif 000004
【図４】
0005070656.tif 000005
【図５】
0005070656.tif 000006
【図６】
0005070656.tif 000007
【図７】
0005070656.tif 000008
【図８】
0005070656.tif 000009
【図９】
0005070656.tif 000010
【図１０】
0005070656.tif 000011
【図１１】
0005070656.tif 000012
【図１２】
0005070656.tif 000013
【図１３】
0005070656.tif 000014
【図１４】
0005070656.tif 000015
【図１５】
0005070656.tif 000016
【図１６】
0005070656.tif 000017
【図１７】
0005070656.tif 000018
【図１８】
0005070656.tif 000019
【図１９】
0005070656.tif 000020
【図２０】
0005070656.tif 000021
【図２１】
0005070656.tif 000022
【図２２】
0005070656.tif 000023
【図２３】
0005070656.tif 000024
【図２４】
0005070656.tif 000025
【図２５】
0005070656.tif 000026
【図２６】
0005070656.tif 000027
【図２７】
0005070656.tif 000028
【図２８】
0005070656.tif 000029
【図２９】
0005070656.tif 000030
【図３０】
0005070656.tif 000031
【図３１】
0005070656.tif 000032
【図３２】
0005070656.tif 000033
【図３３】
0005070656.tif 000034
【図３４】
0005070656.tif 000035
【図３５】
0005070656.tif 000036
【図３６】
0005070656.tif 000037
【図３７】
0005070656.tif 000038