(57)【特許請求の範囲】
【請求項１】
データを双方向に伝送可能なコモン入出力端子と、データを入力するための入力専用端子とデータを出力するための出力専用端子とからなるセパレート入出力端子と、に切替え可能な入出力端子と、
メモリセルに対する読出し又は書込みを制御するアクセスコマンド毎に入力される入出力端子設定情報に基づいて、当該アクセスコマンドに応じた前記メモリセルの読出し又は書込みのデータを前記コモン入出力端子又は前記セパレート入出力端子のいずれを用いて伝送するかを切り替える制御回路と、
を備え、
前記入出力端子設定情報は、前記アクセスコマンドが入力された以降、前記アクセスコマンドに応じたデータが入出力される前までに入力される、
半導体メモリ。
【請求項２】
データを双方向に伝送可能なコモン入出力端子と、データを入力するための入力専用端子とデータを出力するための出力専用端子とからなるセパレート入出力端子と、に切替え可能な入出力端子と、
メモリセルに対する読出し又は書込みを制御するアクセスコマンド毎に入力される入出力端子設定情報に基づいて、当該アクセスコマンドに応じた前記メモリセルの読出し又は書込みのデータを前記コモン入出力端子又は前記セパレート入出力端子のいずれを用いて伝送するかを切り替える制御回路と、
を備え、
前記入出力端子設定情報は、前記アクセスコマンドの入力と同時に入力される、
半導体メモリ。
【請求項３】
前記セパレート入出力端子が選択された場合に入出力されるデータのバースト長は、前記コモン入出力端子が選択された場合に入出力されるデータのバースト長よりも長い、
請求項１又は２に記載の半導体メモリ。
【請求項４】
前記セパレート入出力端子が選択された場合に入出力されるデータのバースト長は、前記コモン入出力端子が選択された場合に入出力されるデータのバースト長の２倍である、
請求項１又は２に記載の半導体メモリ。
【請求項５】
データの読出し時にパラレルシリアル変換し、データ書込み時にシリアルパラレル変換するデータ変換回路をさらに備え、
前記データ変換回路は、
前記コモン入出力端子を介して入出力される第１データを第１バースト長で保持する第１ラッチ回路と、
前記セパレート入出力端子を介して入出力される第２データを第１バースト長の２倍の長さの第２バースト長で保持する第２ラッチ回路と、
を有する、
請求項１又は２に記載の半導体メモリ。
【請求項６】
前記第１ラッチ回路と前記第２ラッチ回路とで、前記第２バースト長の前記第２データを保持する、
請求項５に記載の半導体メモリ。
【請求項７】
前記入出力端子設定情報に基づいて前記第１データと前記第２データのいずれかを選択し、前記第１ラッチ回路に入力する選択回路をさらに備える、
請求項６に記載の半導体メモリ。
【請求項８】
メモリセルに対する読出し又は書込みを制御するアクセスコマンド毎に入出力端子設定情報を生成するメモリコントローラと、
データを双方向に伝送可能なコモン入出力端子と、データを入力するための入力専用端子とデータを出力するための出力専用端子とからなるセパレート入出力端子と、に切替え可能な入出力端子と、
前記アクセスコマンドが入力された以降、前記アクセスコマンドに応じたデータが入出力される前までに入力される前記入出力端子設定情報に基づいて、当該アクセスコマンドに応じた前記メモリセルの読出し又は書込みのデータを前記コモン入出力端子又は前記セパレート入出力端子のいずれを用いて伝送するかを切り替える制御回路と、
を備える、
メモリシステム。
【請求項９】
メモリセルに対する読出し又は書込みを制御するアクセスコマンド毎に入出力端子設定情報を生成するメモリコントローラと、
データを双方向に伝送可能なコモン入出力端子と、データを入力するための入力専用端子とデータを出力するための出力専用端子とからなるセパレート入出力端子と、に切替え可能な入出力端子と、
前記アクセスコマンドの入力と同時に入力される前記入出力端子設定情報に基づいて、当該アクセスコマンドに応じた前記メモリセルの読出し又は書込みのデータを前記コモン入出力端子又は前記セパレート入出力端子のいずれを用いて伝送するかを切り替える制御回路と、
を備える、
メモリシステム。
【請求項１０】
前記メモリコントローラは、
同一の前記アクセスコマンドが連続する場合前記コモン入出力端子を選択し、所定の間隔で前記アクセスコマンドが切り替わる場合前記セパレート入出力端子を選択するコマンド監視部をさらに備える、
請求項８又は９に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリ及びメモリシステムに関し、例えば、データの入出力時に、セパレートＩＯ（ＳＩＯ）モードとコモンＩＯ（ＣＩＯ）モードとを選択可能な半導体メモリ及びこれを用いたメモリシステムに関する。
【背景技術】
【０００２】
半導体メモリのデータ入出力モードには、データの入出力が共通の端子（コモンＩＯ）を用いて行われるコモンＩＯモード（以下、ＣＩＯモードとする）と、データを入力するための専用の端子（入力専用端子）とデータを出力するための専用の端子（出力専用端子）からなるセパレートＩＯを用いて行われるセパレートＩＯモード（以下、ＳＩＯモードとする）がある。特許文献１には、モード制御信号に応じて、ＣＩＯモードとＳＩＯモードとを切り替え可能な半導体メモリが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２３５２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＩＯモードでは、読出しと書込みの切り替え時にデータバス上での入力データと出力データの衝突を避けるためにコマンド間隔を空ける（データターンアラウンドを設ける）必要があるため、データバスの効率が低下するという問題がある。特にネットワーク系では、メモリクロックの高速化と低レイテンシのため、データターンアラウンドの影響がより顕著となる。
【０００５】
一方、ＳＩＯモードでは、データターンアラウンドの問題はなくなるが、データのビット数が大きい場合、ＣＩＯモードと同様のバス帯域を維持するためには、メモリとホスト間に形成する配線数が多くなり面積が増大するという問題がある。
【０００６】
このような半導体メモリでは、アクセス状況に応じて、ＣＩＯモードとＳＩＯモードのいずれが適しているかが相違する。例えば、アクセスコマンドが連続して読出し要求である場合、転送速度を上げるために、データの入出力に利用される外部端子数が最大となるＣＩＯモードが好ましい。一方、アクセスコマンドの読出し要求と書込み要求の割合が近い場合、ＣＩＯモードではデータターンアラウンドによりデータバスの効率が低下するため、ＳＩＯモードの方が好ましい。
【０００７】
特許文献１では、ＣＩＯモード、ＳＩＯモードを切り替える技術が開示されているものの、当該モードの切り替えは、ＤＭＡ（Direct Memory Access）テストの検査項目に応じてなされており、半導体メモリへのアクセス状況については考慮されていない。このため、特許文献１の半導体メモリでは、アクセス状況に応じて、データバスの効率を改善することができないという問題がある。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、半導体メモリは、コモン入出力端子とセパレート入出力端子とに切替え可能な入出力端子を有し、アクセスコマンド毎に入力される入出力端子設定情報に基づいて、当該アクセスコマンドに応じたメモリセルの読出し又は書込みのデータをコモン入出力端子又はセパレート入出力端子のいずれを用いて伝送するかをコマンドサイクル毎に切り替える。
【発明の効果】
【００１０】
前記一実施の形態によれば、半導体メモリへのアクセス状況に応じて、データバスの効率の改善を図ることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る半導体メモリの構成を示す図である。
【図２】図１の半導体メモリのＩ／Ｆ回路の構成を示す図である。
【図３】図２のＩ／Ｆ回路のトライステートバッファ回路の構成を示す図である。
【図４】図２のＩ／Ｆ回路のデータ変換回路の構成を示す図である。
【図５】実施の形態１に係る半導体メモリにおいて、書込みコマンドが連続する場合のメモリアクセスのタイミングチャートの一例を示す図である。
【図６】実施の形態１に係る半導体メモリにおいて、読出しコマンドと書込みコマンドが交互に入力される場合のメモリアクセスのタイミングチャートの一例を示す図である。
【図７】実施の形態１に係る半導体メモリにおいて、書込みコマンドが連続して入力された後に、読出しコマンドと書込みコマンドが交互に入力される場合のメモリアクセスのタイミングチャートの一例を示す図である。
【図８】実施の形態２に係る半導体メモリのデータ変換回路の構成を示す図である。
【図９】実施の形態２に係る半導体メモリにおいて読出しコマンドと書込みコマンドが交互に入力される場合のメモリアクセスのタイミングチャートの一例を示す図である。
【図１０】実施の形態２に係る半導体メモリのデータ変換回路の他の構成を示す図である。
【図１１】実施の形態３に係るメモリシステムの構成を示す図である。
【図１２】図１１のメモリシステムのＡＳＩＣの構成を示す図である。
【図１３】比較例の半導体メモリにおいて、書込みコマンドから読出しコマンドへと切り替わる場合のメモリアクセスのタイミングチャートである。
【図１４】比較例の半導体メモリにおいて、書込みコマンドが連続する場合のメモリアクセスのタイミングチャートである。
【図１５】比較例の半導体メモリにおいて、書込みコマンドが連続して入力された後に、読出しコマンドと書込みコマンドが交互に入力される場合に、ＭＲＳコマンドでモードを変更するときのメモリアクセスのタイミングチャートである。
【発明を実施するための形態】
【００１２】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。以下の実施の形態に示す具体的な値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１３】
実施の形態は、データの入出力時に、セパレートＩＯ（ＳＩＯ）モードとコモンＩＯ（ＣＩＯ）モードとを選択可能な半導体メモリ及びこれを用いたメモリシステムに関する。該半導体メモリは、コモン入出力端子とセパレート入出力端子とに切替え可能な入出力端子を有する。
【００１４】
実施の形態では、アクセスコマンド（読出しコマンド／書込みコマンド）毎に入出力端子設定情報が入力される。入出力端子設定情報に基づき、アクセスコマンドに応じたデータの入出力タイミングに合わせて、コマンドサイクル毎にセパレートＩＯ（ＳＩＯ）モードとコモンＩＯ（ＣＩＯ）モードを切り替えることにより、データバスの効率改善を図る。
【００１５】
ユーザが読出しコマンド／書込みコマンドを頻繁に切り替えるメモリアクセス時は、データターンアラウンドが発生しないＳＩＯモードが選択される。一方、同一のコマンド（読出し又は書込み）が連続するメモリアクセスの時は、全バス領域を一方向で使用できるＣＩＯモードが選択される。実施の形態は、例えば、パラレルインターフェース（Ｉ／Ｆ）を有するメモリ、メモリコントローラ、及びメモリシステム、特にネットワーク向け低レイテンシメモリ（例えば、ＬＬＤＲＡＭ（Low Latency Dynamic Random Access Memory）に適用可能である。
【００１６】
以下、図面を参照しながら、実施の形態について説明する。
＜実施の形態１＞
実施の形態１に係る半導体メモリについて、図１を参照して説明する。図１は、実施の形態１に係る半導体メモリ１０の構成を示す図である。図１に示すように、半導体メモリ１０は、アドレスレジスタ１１、レジスタ１２、ロジック回路１３、ロウデコーダ１４、メモリセルコア１５、センスアンプ１６、カラムデコーダ１７、レジスタ１８、Ｉ／Ｆ回路２０を備えている。
【００１７】
ここでは、メモリセルがＤＲＡＭ（Dynamic Random Access Memory）メモリセルである例について説明する。メモリセルコア１５は、電気的に書換え可能なメモリセルアレイ、ワード線、ビット線（いずれも不図示）を含む。メモリセルアレイでは、複数のメモリセル（不図示）が行列状に配置されている。ワード線は、各行にそれぞれ対応して配置され、対応する行のメモリセルに接続される。ビット線は、各列にそれぞれ対応して配置され、対応する列のメモリセルに接続される。なお、メモリセルは、ＳＲＡＭ（Static Random Access Memory）メモリセル、ＦＬＡＳＨメモリセル等であってもよい。
【００１８】
アドレスレジスタ１１は、外部から入力されるメモリアドレスを外部クロックＣＬＫでラッチする。メモリアドレスは、メモリセルアレイのワード線を選択するための行アドレス、メモリセルアレイのビット線を選択するための列アドレスを含む。アドレスレジスタ１１にラッチされたメモリアドレスは、ロジック回路１３、ロウデコーダ１４、カラムデコーダ１７に入力される。
【００１９】
レジスタ１２は、外部から入力されるメモリコマンドを外部クロックＣＬＫでラッチする。ＤＲＡＭの場合、メモリコマンドは、書込みコマンド、読出しコマンド、リフレッシュコマンドを含む。ここでは、書込みコマンド、読出しコマンドをアクセスコマンドとする。レジスタ１２にラッチされたメモリコマンドは、ロジック回路１３に入力される。
【００２０】
ロジック回路１３は、レジスタ１２から入力されるメモリコマンドに従って、メモリセルコア１５の動作モードを指定する。ＤＲＡＭの場合、メモリセルコア１５では、書込みモード、読出しモード、リフレッシュモードのいずれかが選択される。例えば、ロジック回路１３は、各回路の動作タイミング、読出し時の各回路の動作、書込み時の回路の動作、リフレッシュ時の各回路の動作の制御を行う。
【００２１】
ロウデコーダ１４は、入力される行アドレスに従って、メモリセルコア１５のワード線を選択する。読出しモードの場合、カラムデコーダ１７は、入力される列アドレスに従って、メモリセルコア１５のビット線を選択する。センスアンプ１６は、選択されるビット線のデータを増幅する。センスアンプ１６で増幅されたデータは、カラムデコーダ１７で選択されたビット線、Ｉ／Ｆ回路２０を介して外部に出力される。また、ＤＲＡＭのリフレッシュ動作の場合は、カラムデコーダ１７でのビット線の選択は不要となるため、ロジック回路１３はカラムデコーダ１７でのビット線の選択動作を停止する。
【００２２】
Ｉ／Ｆ回路２０は、データを双方向に伝送可能なコモン入出力端子と、データを入力するための入力専用端子とデータを出力するための出力専用端子とからなるセパレート入出力端子と、に切替え可能な入出力端子ＤＱを備える。すなわち、Ｉ／Ｆ回路２０は、ＣＩＯモードとＳＩＯモードとを切り替え可能な入出力回路である。
【００２３】
レジスタ１８には、レジスタ１２でラッチされるメモリコマンドとは別に、メモリコマンド毎に入出力端子設定コマンドが外部から入力される。入出力端子設定コマンドは、ユーザにより指定される、Ｉ／Ｆ回路２０の入出力端子ＤＱをコモン入出力端子とセパレート入出力端子のいずれかに切替える入出力端子設定情報である。実施の形態１では、入出力設定コマンドはアクセスコマンド（読出しコマンド／書込みコマンド）毎に、アクセスコマンドの入力と同時に入力される。レジスタ１８は、入出力設定コマンドを外部クロックＣＬＫでコマンドサイクル毎に取り込む。レジスタ１８は、ラッチした入出力設定コマンドをロジック回路１３に出力する。
【００２４】
また、ロジック回路１３は、レジスタ１２から入力されるアクセスコマンドとレジスタ１８から入力される入出力端子設定コマンドに基づき、当該アクセスコマンドに応じた読出し又は書込みデータの入出力の際に、入出力端子ＤＱをコモン入出力端子又はセパレート入出力端子のいずれかに切り替える。
【００２５】
具体的には、ロジック回路１３は、以下の４つの動作制御信号のいずれかでＩ／Ｆ回路２０を制御する。４つの動作制御信号は、セパレートＩＯモード時の読出し動作制御信号（以下、ＳＩＯ−ＲＤコマンドとする）、セパレートＩＯモード時の書込み動作制御信号（以下、ＳＩＯ−ＷＲコマンドとする）、コモンＩＯモード時の読出し動作制御信号（以下、ＣＩＯ−ＲＤコマンドとする）、コモンＩＯモード時の書込み動作制御信号（以下、ＣＩＯ−ＷＲコマンドとする）である。
【００２６】
図２に、Ｉ／Ｆ回路２０の構成の一例を示す。Ｉ／Ｆ回路２０は、データ変換回路２１、２２、トライステートバッファ回路３０を有する。データ変換回路２１、２２は、データの読出し時に読出しデータをパラレルシリアル変換し、データ書込み時に書込みデータをシリアルパラレル変換する。すなわち、ＣＩＯモードでは、いずれのデータ変換回路２１、２２も書込み、読出しの両方に用いられる。一方、ＳＩＯモードでは、データ変換回路２１、２２がそれぞれ書込み専用、読出し専用となる。図２では、ＳＩＯモード時において、データ変換回路２１が、書込み用シリアルパラレル変換回路として用いられ、データ変換回路２２が読出し用パラレルシリアル変換回路として用いられる状態を示している。
【００２７】
図２では、書込み時には、トライステートバッファ回路３０からＩ／Ｆ回路２０の仕様で入力された書込みデータが、データ変換回路２１でカラムデコーダ１７によって選択されるビット数に変換され、メモリセルコア１５に転送される。読出し時には、カラムデコーダ１７によって選択出力された読出しデータが、データ変換回路２２でＩ／Ｆ回路２０の仕様に変換され、トライステートバッファ回路３０を介して出力される。
【００２８】
例えば、Ｉ／Ｆ回路２０の仕様が、ＤＤＲ（Double-Data-Rate）方式、バースト長（Burst Length、以下、ＢＬとする）２、入出力端子数３６（入出力端子ＤＱ０〜ＤＱ３５）であるものとする。ＤＤＲ方式では、外部クロックの立ち上がりと立ち下り時にデータ入出力を確定する。読出し動作では、読出しデータのビット幅が１４４ビットの場合、データ変換回路２２は、１４４ビットの読出しデータを３６ビット、４列に分割する。
【００２９】
トライステートバッファ回路３０は、外部クロックの１回目のライズエッジで１列目の３６ビットの読出しデータを出力し、１回目のフォールエッジで２列目の３６ビットの読出しデータを出力する。その後、トライステートバッファ回路３０は、外部クロックの２回目のライズエッジで３列目の３６ビットの読出しデータを出力し、２回目のフォールエッジで４列目の３６ビットの読出しデータを出力する。なお、書込み動作では、データ変換回路２１が用いられ、上記の読出し動作の説明の出力が入力に変わるだけであるため、説明を省略する。
【００３０】
図３に、トライステートバッファ回路３０の構成の一例を示す。図３に示す例では、トライステートバッファ回路３０は、入力出力端子ＤＱｎを有するトライステートバッファ３１、入出力端子ＤＱｎ＋１を有するトライステートバッファ３２を備える。トライステートバッファ３１は、レシーバ回路３１ａ、バッファ回路３１ｂを備える。トライステートバッファ３２は、レシーバ回路３２ａ、バッファ回路３２ｂを備える。
【００３１】
レシーバ回路３１ａは、入出力端子ＤＱｎから入力された書込みデータを書込み出力端子ＩＷｎへ転送する。バッファ回路３１ｂは、入力端子ＩＲｎから入力された読出しデータを入出力端子ＤＱに出力する。トライステートバッファ３２の構成は、トライステートバッファ３１と同様であるため説明を省略する。
【００３２】
コモンＩＯモードでの書込み動作（以下、ＣＩＯ−ＷＲモードとする）では、ＩＮ＿ＣＯＮＴｎ、ＩＮ＿ＣＯＮＴｎ＋１から入力される制御信号により、レシーバ回路３１ａ、３２ａがアクティブ状態に設定される。入出力端子ＤＱｎ、ＤＱｎ＋１から入力された書込みデータは、それぞれ、出力端子ＩＷｎ、ＩＷｎ＋１から出力される。この時、バッファ回路３１ｂ、３２ｂは、ＯＵＴ＿ＣＯＮＴｎ、ＯＵＴ＿ＣＯＮＴｎ＋１から入力される制御信号によりＨＩ−Ｚを出力し、データの衝突を回避する。
【００３３】
コモンＩＯモードでの読出し動作（以下、ＣＩＯ−ＲＤモードとする）では、上述のＣＩＯ−ＷＲモードと反対に、レシーバ回路３１ａ、３２ａが停止され、バッファ回路３１ｂ、３２ｂがアクティブ状態に制御される。入力端子ＩＲｎ、ＩＲｎ＋１から入力された読出しデータが入出力端子ＤＱｎ、ＤＱｎ＋１から出力される。
【００３４】
ＳＩＯモードでは、例えば、トライステートバッファ回路３０の入出力端子の半分がデータを入力するための入力専用端子となり、残りの半分がデータを出力するための出力専用端子となる。図３に示す例では、入出力端子ＤＱｎが入力（書込み）専用端子となり、入出力端子ＤＱｎ＋１が出力（読出し）専用端子となる。
【００３５】
セパレートＩＯモードでの書込み動作（以下、ＳＩＯ−ＷＲモードとする）では、ＩＮ＿ＣＯＮＴｎから入力される制御信号により、レシーバ回路３１ａがアクティブ状態に設定される。入出力端子ＤＱｎから入力された書込みデータは、出力端子ＩＷｎから出力される。この時、バッファ回路３１ｂは、ＯＵＴ＿ＣＯＮＴｎから入力される制御信号により動作が停止される。また、トライステートバッファ３２のレシーバ回路３２ａは、ＩＮ＿ＣＯＮＴｎ＋１から入力される制御信号により停止される。なお、トライステートバッファ３２のバッファ回路３２ｂは、トライステートバッファ回路３０の仕様により、アクティブ状態に設定してもよく、停止状態としてもよい。
【００３６】
セパレートＩＯモードでの読出し動作（以下、ＳＩＯ−ＲＤモードとする）では、ＯＵＴ＿ＣＯＮＴｎ＋１から入力される制御信号により、バッファ回路３２ｂがアクティブ状態に設定される。入力端子ＩＲｎ＋１から入力される読出しデータは、入出力端子ＤＱｎ＋１から出力される。この時、レシーバ回路３２ａは、ＩＮ＿ＣＯＮＴｎ＋１から入力される制御信号により動作が停止される。また、トライステートバッファ３１のバッファ回路３１ｂは、ＯＵＴ＿ＣＯＮＴｎから入力される制御信号により停止される。なお、トライステートバッファ３１のレシーバ回路３１ａは、トライステートバッファ回路３０の仕様により、アクティブ状態に設定してもよく、停止状態としてもよい。
【００３７】
トライステートバッファ回路３０のＩＮ＿ＣＯＮＴｎ、ＩＮ＿ＣＯＮＴｎ＋１、ＯＵＴ＿ＣＯＮＴｎ、ＯＵＴ＿ＣＯＮＴｎ＋１から入力される各制御信号は、アクセスコマンド毎にロジック回路１３から出力されるＳＩＯ−ＲＤコマンド、ＳＩＯ−ＷＲコマンド、ＣＩＯ−ＲＤコマンド、ＣＩＯ−ＷＲコマンドに基づいて生成される。
【００３８】
図４は、データ変換回路２１の構成の一例を示す図である。図４に示すように、データ変換回路２１は、ラッチ回路２１１、２１２を備えている。ラッチ回路２１１、２１２は、トライステートバッファ回路３０から転送された書込みデータをクロックＣＬＫのライズエッジ、フォールエッジで取り込む一連のラッチ回路である。図４では、トライステートバッファ３１の出力端子ＩＷｎから出力される書込みデータをＤＩＷｎと示しており、トライステートバッファ３２の出力端子ＩＷｎ＋１から出力される書込みデータをＤＩＷｎ＋１と示している。
【００３９】
図４に示す例では、Ｉ／Ｆ回路２０の仕様がＢＬ４であるものとする。なお、データ変換回路２２は、データ変換回路２１と同様の構成を有する。ラッチ回路２１１、２１２はそれぞれ４つのレジスタが直列に接続されたシフトレジスタである。
【００４０】
ＣＩＯ−ＷＲモードでは、書込みデータＤＩＷｎがラッチ回路２１１内のレジスタ間で順次転送され、書込みデータＤＩＷｎ＋１がラッチ回路２１２内のレジスタ間で順次転送される。ラッチ回路２１１、２１２の全てのレジスタにそれぞれ書込みデータＤＩＷｎ、ＤＩＷｎ＋１が入力された時点で、書込みデータＤＩＷｎ、ＤＩＷｎ＋１がカラムデコーダ１７による選択に基づきメモリセルコアに転送される。このとき、ラッチ回路２１１、２１２は、ロジック回路１３から出力されるＣＩＯ−ＷＲコマンドにより制御される。
【００４１】
ＳＩＯ−ＷＲモードでは、ＤＩＷｎのみが入力され、ＤＩＷｎ＋１は入力されない。従って、書込みデータＤＩＷｎのみがラッチ回路２１１内のレジスタ間で順次転送される。このとき、ラッチ回路２１２はラッチ動作を停止する。ラッチ回路２１１の全てのレジスタに書込みデータＤＩＷｎが入力された時点で、書込みデータＤＩＷｎがカラムデコーダ１７による選択に基づきメモリセルコアに転送される。このとき、ラッチ回路２１１、２１２は、ロジック回路１３から出力されるＳＩＯ−ＷＲコマンドにより制御される。
【００４２】
ＣＩＯ−ＲＤモード、ＳＩＯ−ＲＤモードでは、データ変換回路２１内の読出しデータの転送方向が、書込みデータの転送方向と逆になるだけであるため、詳細な説明は省略する。
【００４３】
ここで、実施の形態に係る半導体メモリ１０の動作について説明する前に、理解を容易にするため、まず比較例に係る半導体メモリの動作について説明する。図１３は、ＣＩＯのみを備え、ＣＩＯモードとＳＩＯモードの切替えはできない半導体メモリにおいて、書込みコマンドから読出しコマンドへと切り替わる場合のメモリアクセスのタイミングチャートである。
【００４４】
図１３において、ＣＬＫはクロック、ＣＭＤはメモリコマンド、ＤＱ［３５：０］は各入出力端子から入出力されるデータを示している。メモリコマンドのＷは書込みコマンドを示しており、Ｒは読出しコマンドを示している。
【００４５】
Ｔ１は、コマンドサイクルを示す。コマンドサイクルとは、最初のコマンドから次のコマンドが入力可能なサイクルである。コマンドサイクルは、通常、データシート等で規定されている。図１３では、一例として、Ｔ１＝２サイクルとしている。
【００４６】
Ｔ２は、レイテンシを示す。レイテンシは、コマンドが入力されてから当該コマンドに対応するデータが入出力端子に出力又は入力されるまでの期間である。図１３に示す例では、Ｔ２＝４サイクルとしている。従って、最初の書込みコマンドＷが入力された後、４クロック後に書込みデータが入力される。なお、図１３では書込みコマンドＷに対するコマンドサイクルＴ１、レイテンシＴ２の例を示したが、読出しコマンドＲに対するコマンドサイクルＴ１、レイテンシＴ２も同様にデータシート等で規定される。
【００４７】
Ｔ３は、データターンアラウンドの期間を示している。ＣＩＯモードでは、メモリからホスト（ＣＰＵ（Central Processing Unit）、ＡＳＩＣ（application specific integrated circuit）等）へデータを転送する場合と、ホストからメモリへデータを転送する場合の両方向の転送が同じデータバスで行われる。メモリとホストが同時にデータを出力すると、データバス上でデータの衝突が発生し、システムの誤動作の原因となる。
【００４８】
このため、図１３に示すように、メモリが書込みモードから読出しモードへと切り替わるときに、データターンアラウンドＴ３を設定する必要がある。メモリ内部のデータターンアラウンドはデータシート等に規定されているが、実際のシステムではメモリとホスト間の遅延をメモリのデータターンアラウンドに加えた値が、システムのデータターンアラウンドとして設定される。図１３に示す例では、Ｔ３＝６サイクルとしている。
【００４９】
図１３のタイミングチャートを見ると、データターンアラウンドがなければ、書込みコマンドＷの入力後、コマンドサイクルＴ１の期間後のＣＴ１で示すタイミングで読出しコマンドＲが入力されるのが望ましい。しかし、データターンアラウンドＴ３を考慮すると、ＣＴ２で示すタイミングまで読出しコマンドＲを入力することができない。そのため、データバス効率が悪化する。
【００５０】
図１４は、ＳＩＯのみを備え、ＣＩＯモードとＳＩＯモードの切替えはできない半導体メモリにおいて、書込みコマンドが連続する場合のメモリアクセスについて説明する。図１４に示す例では、入出力端子ＤＱ０〜ＤＱ１５がホストからメモリへのデータ転送（書込み）専用に割り当てられ、入出力端子ＤＱ１６〜ＤＱ３５をメモリからホストへのデータの転送（読出し）専用に割り当てられている。
【００５１】
この場合、ＣＩＯモードで問題となったデータターンアラウンドは、データの転送方向の変更がないため発生しない。しかし、図１４のように、連続して書込みコマンドが入力された場合、入出力端子ＤＱ０〜ＤＱ１５のみが使用され、ＤＱ１６〜ＤＱ３５は未使用となる。このため、ＣＩＯモードと比較すると、ＳＩＯモードのデータバス効率が５０％に落ちてしまう。すなわち、図１４に示すメモリアクセスの場合、ＳＩＯモードでは、ＣＩＯモード時のコマンドの２倍入力しなければ同じビット数のデータを書込むことができない。
【００５２】
このように、メモリへのアクセス状況に応じて、ＣＩＯモードとＳＩＯモードのいずれが適しているが相違する。すなわち、アクセスコマンドが連続して同じ要求である場合、ＣＩＯモードが好ましい。また、アクセスコマンドの読出し要求と書込み要求が頻繁に入れ替わる場合、ＳＩＯモードの方が好ましい。
【００５３】
上述したように、特許文献１では、メモリセルへのアクセス状況を考慮しておらず、モード制御信号をあらかじめ設定して、モード制御信号のアサート、ネゲートでＣＩＯモード、ＳＩＯモードを切り替えている。このため、メモリセルへのアクセス状況に応じて、ＣＩＯモード、ＳＩＯモードを切り替えることができない。
【００５４】
これに対し、実施の形態１に係る半導体メモリ１０の動作について説明する。図５は、半導体メモリ１０において、書込みコマンドＷが連続する場合のメモリアクセスのタイミングチャートの一例を示す図である。図５において、ＣＩＯ／ＳＩＯは入力端子設定コマンドを示している。ＣＩＯコマンドは、Ｉ／Ｆ回路２０をＣＩＯモードに設定する入力端子設定コマンドである。ＳＩＯコマンドは、Ｉ／Ｆ回路２０をＳＩＯモードに設定する入力端子設定コマンドである。
【００５５】
ＩＮ＿ＣＯＮＴ［１５：０］、ＯＵＴ＿ＣＯＮＴ［１５：０］はそれぞれ入出力端子ＤＱ［１５：０］からデータを入力するか出力するかを切り替える切替制御信号である。ＩＮ＿ＣＯＮＴ［３５：１６］、ＯＵＴ＿ＣＯＮＴ［３５：１６］はそれぞれ入出力端子ＤＱ［３５：１６］からデータを入力するか出力するかを切り替える切替制御信号である。
【００５６】
上述のように、書込みコマンドＷが連続する場合、ＣＩＯモードを選択するのが好ましい。この場合、ユーザは書込みコマンドＷ毎に、書込みコマンドＷの入力と同時にＣＩＯコマンドを入力する。これにより、入出力端子ＤＱ［１５：０］と、入出力端子ＤＱ［３５：１６］の両方から書込みデータが入力される。このように、アクセスコマンドと同時に入力端子設定コマンドが入力されるため、当該アクセスコマンドに対するデータの入出力の際に、ＣＩＯコード、ＳＩＯモードをコマンドサイクル毎に適切に切替えることができる。なお、図５に示す場合のデータバス効率は、ＣＩＯモードのみの半導体メモリにおいて同じアクセスコマンドが連続する場合のデータバス効率と同等である。
【００５７】
次に、書込みコマンドＷと読出しコマンドＲが交互に入力される場合の半導体メモリ１０の動作について説明する。図６は、半導体メモリ１０において、書込みコマンドＷと読出しコマンドＲが交互に入力される場合のメモリアクセスのタイミングチャートの一例を示す図である。
【００５８】
上述の通り、書込みコマンドＷと読出しコマンドＲが混在するメモリアクセスの場合、ＳＩＯモードを選択するのが好ましい。この場合、ユーザは、各書込みコマンドＷ、読出しコマンドＲ毎に、これらのアクセスコマンドの入力と同時にＳＩＯコマンドを入力する。そうすると、端子ＤＱ０〜ＤＱ１５はホストからメモリへのデータ転送（書込み）専用、端子ＤＱ１６〜ＤＱ３５はメモリからホストへのデータ転送（読出し）専用に設定される。
【００５９】
ＳＩＯモードでは、データの衝突がないためデータターンアラウンド期間を考慮する必要がない。このため、書込みコマンド、読出しコマンドをコマンドサイクルスピードで交互に入力することができる。なお、ＳＩＯモードでは、入出力端子のビット幅がＣＩＯモードのときの半分になる。このため、メモリセルコア内の動作対象となるビット幅、すなわち、転送されるデータのビット幅（実施の形態１の例で１４４ビット）を半分に制御して電流を削減するか、又は、設計を簡単にするため余ったデータを破棄する等が考えられる。
【００６０】
次に、書込みコマンドが連続して入力された後に、読出しコマンドと書込みコマンドが交互に入力される場合の半導体メモリ１０の動作について説明する。図７は、半導体メモリ１０において、書込みコマンドＷが連続して入力された後に、読出しコマンドＲと書込みコマンドＷが交互に入力される場合のメモリアクセスのタイミングチャートの一例を示す図である。図７に示す例では、３つの連続した書込みコマンドが入力された後に、書込みコマンド、読出しコマンド、書込みコマンドが順に入力されるものとする。
【００６１】
図７に示す例では、ＳＩＯモード時に、入出力端子ＤＱ０〜ＤＱ１５がホストからメモリへのデータ転送（書込み）専用に割り当てられ、入出力端子ＤＱ１６〜ＤＱ３５をメモリからホストへのデータの転送（読出し）専用に割り当てられる。
【００６２】
ユーザは、メモリコントローラ等にメモリへのアクセスコマンドのキューを格納している。このキューを解析することにより、連続した書込みコマンドから読出しコマンドと書込みコマンドが交互に実施されるメモリアクセスパターンの変化を判定することができる。この判定に基づいて、入出力端子設定コマンドを設定することができる。
【００６３】
入出力端子ＤＱのデータの転送方向を変更する場合、データターンアラウンドを設ける必要がある。図７において、Ｔ１０はデータアラウンドを示す。図７に示すように、連続した３つの書込みコマンドＷの途中で、入出力端子設定コマンドが、ＣＩＯコマンドからＳＩＯコマンドへと切り替えられる。
【００６４】
具体的には、最初の書込みコマンド入力と同時にＣＩＯコマンドが入力され、２、３番目の書込みコマンド入力と同時にＳＩＯコマンドが入力される。これにより、端子ＤＱ［１５：０］で書込みデータの入力が実行されている間に、端子ＤＱ［３５：１６］のデータ転送方向の切り替えに必要なデータターンアラウンド期間を確保することができる。
【００６５】
これにより、３番目の書込みコマンドの２コマンドサイクル後から読出しコマンド、書込みコマンドがランダムに入力されるメモリアクセスに適した入出力端子の設定に切り替えることができる。
【００６６】
特開２００８−１９２２６４号公報では、モードレジスタ設定（ＭＲＳ：Mode Register Set）コマンドにより、アドレスピンの接続先を切り替え、データ入出力に使用する技術が提案されている。ここで、特開２００８−１９２２６４号公報で提案されているように、ＭＲＳコマンドにより入出力端子の設定を変更する半導体メモリについて考える。
【００６７】
図１５は、ＭＲＳコマンドにより入出力端子の設定を変更する比較例の半導体メモリにおいて、書込みコマンドが連続して入力された後に、読出しコマンドと書込みコマンドが交互に入力される場合に、ＭＲＳコマンドで入出力端子ＤＱの設定を変更するときのメモリアクセスのタイミングチャートである。
【００６８】
図１５に示すように、ＭＲＳコマンドで入出力端子ＤＱを切り替える場合、動作モード切替時間Ｔ４が発生する。動作モード切替時間Ｔ４は、通常、データターンアラウンドＴ３よりも数倍長い期間が必要となっている。通常、ＭＲＳコマンドは、様々なメモリの動作モードを変更できるように、動作モード切替後のデコード回路やメモリへの反映時間を考慮し、２０ｃｙｃ以上で設定されていることが多い。例えば、ＬＬ（Low Latency）ＤＲＡＭＩＩＩでは、動作モード切替時間Ｔ４は２４ｃｙｃである。
【００６９】
このような半導体メモリにおいて、メモリセルへのアクセス状況に応じてＭＲＳコマンドを入力していたのでは、仮に動作モード切替時間Ｔ４が短くても、図７を用いて説明した例より短い時間で入出力端子ＤＱをＳＩＯ、ＣＩＯと切り替えることはできない。このように、ＭＲＳコマンドを用いた場合、ＣＩＯモードとＳＩＯモードの切り替えに時間がかかり、データバスの効率を改善することができない。
【００７０】
上記説明したように、実施の形態１では、データターンアラウンドを考慮して、ユーザがＣＩＯモードとＳＩＯモードとをメモリアクセス中にダイナミックに切替えることができる。これにより、様々なデータアクセスにおけるデータバス効率を改善することができる。
【００７１】
なお、実施の形態１では、入出力端子設定コマンドがアクセスコマンドの入力と同時に入力される例について説明したが、これに限定されるものではない。入出力端子設定コマンドは、アクセスコマンドが入力された以降、当該アクセスコマンドに対応したデータが出力される前までに入力されてもよい。
【００７２】
実施の形態２．
前述の実施の形態１では、図６に示したように、ＳＩＯモード時にＣＩＯモードに対し入出力データのビット幅が半分になってしまい、ＳＩＯモード時のデータバス効率を５０％以上にすることができない。実施の形態２では、ＳＩＯモード時のデータバス効率を改善する例を示す。
【００７３】
実施の形態２に係る半導体メモリについて図８を参照して説明する。図８は、実施の形態２に係る半導体メモリに用いられるデータ変換回路２１Ａの構成を示す図である。図８のデータ変換回路２１Ａは、図２に示すデータ変換回路２１、データ変換回路２２の代わりに用いられる。その他の構成は、実施の形態１と同様であるため、説明を省略する。
【００７４】
図８に示すように、データ変換回路２１Ａは、ラッチ回路２１１Ａ、２１２Ａ、マルチプレクサ２１３Ａを備えている。ラッチ回路２１１Ａ、２１２Ａは、トライステートバッファ回路３０又は読み出されたデータをクロックＣＬＫのライズエッジ、フォールエッジで取り込む一連のラッチ回路である。
【００７５】
図８に示す例では、Ｉ／Ｆ回路２０の仕様が、ＣＩＯモードにおいてＢＬ４、ＳＩＯモードでＢＬ８であるものとする。ラッチ回路２１１Ａは、８つのレジスタが直列に接続されたシフトレジスタである。ラッチ回路２１２Ａは、４つのレジスタが直列に接続されたシフトレジスタである。
【００７６】
ＣＩＯ−ＷＲモードでは、それぞれのラッチ回路２１１Ａ、２１２Ａは、外部クロックで書込みデータＤＩＷｎ、ＤＩＷｎ＋１をラッチし、後段のレジスタへ順次転送する。ラッチ回路２１１ＡのＬＡで示すレジスタまでデータが入力された時点では、ラッチ回路２１２Ａの全てのレジスタにデータが入力されている。この時点で、ラッチ回路２１１Ａにラッチされたデータは、カラムデコーダ１７による選択に基づいてメモリセルコアへ転送される。また、ラッチ回路２１２Ａにラッチされたデータは、マルチプレクサ２１３Ａに入力される。すなわち、ＣＩＯ−ＷＲモードでは、ラッチ回路２１１Ａの４つのレジスタ及びラッチ回路２１２Ａの４つのレジスタで書込みデータが転送される。なお、ＣＩＯ−ＲＤモードでは、データ変換回路２１Ａ内の読出しデータの転送方向が、書込みデータの転送方向と逆になる。
【００７７】
ＳＩＯ−ＷＲモードでは、ＤＩＷｎのみが入力され、ＤＩＷｎ＋１は入力されない。従って、書込みデータＤＩＷｎのみがラッチ回路２１１Ａ内のレジスタ間で順次転送される。このとき、ラッチ回路２１２Ａはラッチ動作を停止する。ラッチ回路２１１Ａの全てのレジスタに書込みデータＤＩＷｎが入力された時点で、ＬＡで示されるレジスタよりも先に入力された書込みデータは、マルチプレクサ２１３Ａに入力される。また、ＬＡ以降のレジスタに入力された書込みデータは、カラムデコーダ１７による選択に基づいてメモリセルコアに転送される。すなわち、ＳＩＯ−ＷＲモードでは、ラッチ回路２１１Ａを構成する８つのレジスタで書込みデータが転送され、ラッチ回路２１２Ａでは書込みデータは転送されない。従って、ＣＩＯ−ＷＲモード時とＳＩＯ-ＷＲモード時で転送されるデータ数は等しい。なお、ＳＩＯ−ＲＤモードでは、データ変換回路２１内の読出しデータの転送方向が、書込みデータの転送方向と逆になる。
【００７８】
マルチプレクサ２１３Ａには、ＣＩＯ−ＷＲモード時は書込みデータがラッチ回路２１２Ａから入力され、ＳＩＯ−ＷＲモード時は書込みデータがラッチ回路２１１Ａから入力される。マルチプレクサ２１３Ａは、ラッチ回路２１１Ａ又は２１２Ａのいずれかから入力された書込みデータを、カラムデコーダ１７による選択に基づいてメモリセルコアに転送する。マルチプレクサ２１３Ａは、ロジック回路１３から出力されるＣＩＯ−ＷＲコマンド、ＳＩＯ−ＷＲコマンドにより制御される。
【００７９】
すなわち、ラッチ回路２１２Ａは、ＣＩＯを介して入出力されるデータを第１バースト長で保持する第１ラッチ回路である。また、ラッチ回路２１１Ａは、ＳＩＯを介して入出力されるデータを第１バースト長の２倍の長さの第２バースト長で保持する第２ラッチ回路である。さらに、ＳＩＯが選択された場合に入出力されるデータのバースト長は、ＣＩＯが選択された場合に入出力されるデータのバースト長よりも長い。実施の形態２に示す例では、ＳＩＯが選択された場合に入出力されるデータのバースト長は、ＣＩＯが選択された場合に入出力されるデータのバースト長の２倍となる。
【００８０】
図９は、実施の形態２に係る半導体メモリにおいて読出しコマンドと書込みコマンドが交互に入力される場合のメモリアクセスのタイミングチャートの一例を示す図である。上述のように、読出しコマンドと書込みコマンドが交互に入力される場合、ＳＩＯモードが選択される。
【００８１】
実施の形態１では、ＣＩＯモードに対し、ＳＩＯモードでは、データの入出力に用いられる端子の数が半分となる。すなわち、ＳＩＯモード時のメモリセルコア１５に転送されるデータのビット数がＣＩＯモード時の半分となる。書込みデータと読出しデータを同一クロックでそれぞれの入出力端子ＤＱに転送することができない。従って、データバス効率は５０％よりも低くなる。
【００８２】
これに対し、実施の形態２では、ＳＩＯモードではＢＬ（バースト長）をＣＩＯモードのＢＬの２倍に設定している。すなわち、一つのコマンドに対するデータの数を、ＣＩＯモードとＳＩＯモードとでそろえることができる。図９において、最初の書込みコマンドＷに対する書込みデータをＤＴ１とし、次の読出しコマンドＲに対する読出しデータをＤＴ２とする。最初の書込みコマンドＷの入力から、所定のレイテンシＴ１１後に、入出力端子ＤＱ０〜ＤＱ１５を介して、ＢＬ８の書込みデータＤＴ１がホストからメモリセルコア１５に転送される。
【００８３】
そして、次のコマンドサイクルで読出しコマンドＲが入力され、レイテンシＴ１１と同じレイテンシＴ１２後に、入出力端子ＤＱ１６〜ＤＱ３５を介して、ＢＬ８の読出しデータＤＴ２がメモリセルコア１５からホストに転送される。ＳＩＯモード時のＢＬは８であるため、８ＤＤＲクロック（すなわち、４クロックのライズエッジとフォールエッジ）でデータが入出力される。
【００８４】
図９に示すように、最初の書込みコマンドＷに対する書込みデータＤＴ１が入力されるクロックの４ＤＤＲクロック目から、次の読出しコマンドに対する読出しデータＤＴ２が出力される。すなわち、書込みデータＤＴ１の後半のデータ転送と、読出しデータＤＴ２の前半のデータ転送とが重なる。このように、ＳＩＯが選択された場合に入出力されるデータのバースト長を、ＣＩＯが選択された場合に入出力されるデータのバースト長の２倍とすることで、ＳＩＯモードにおけるデータバス効率を１００％まで改善することが可能となる。
【００８５】
図１０に、実施の形態２に係る半導体メモリに用いられる他のデータ変換回路２１Ｂの構成を示す。図１０のデータ変換回路２１Ｂは、図２に示すデータ変換回路２１、データ変換回路２２の代わりに用いられる。その他の構成は、実施の形態１と同様であるため、説明を省略する。
【００８６】
図１０に示すように、データ変換回路２１Ｂは、ラッチ回路２１１Ｂ、ラッチ回路２１２Ｂ、マルチプレクサ２１３Ｂを備えている。ラッチ回路２１１Ｂ、２１２Ｂは、トライステートバッファ回路３０又は読み出されたデータをクロックＣＬＫのライズエッジ、フォールエッジで取り込む一連のラッチ回路である。
【００８７】
図１０に示す例では、Ｉ／Ｆ回路２０の仕様が、ＣＩＯモードにおいてＢＬ４、ＳＩＯモードでＢＬ８であるものとする。ラッチ回路２１１Ｂ、２１２Ｂは、それぞれ４つのレジスタが直列に接続されたシフトレジスタである。
【００８８】
マルチプレクサ２１３Ｂは、入出力端子設定コマンドに基づいて、書込みデータＤＩＷｎ＋１か、ラッチ回路２１１Ｂから転送されてくる書込みデータのいずれかを選択し、ラッチ回路２１２Ｂに出力する選択回路である。マルチプレクサ２１３Ｂは、ロジック回路１３から出力されるＣＩＯ−ＷＲコマンド、ＳＩＯ−ＷＲコマンド等により制御される。
【００８９】
ＣＩＯ−ＷＲモードでは、マルチプレクサ２１３Ｂにおいて、トライステートバッファ回路３０から入力される書込みデータＤＩＷｎ＋１が選択される。ラッチ回路２１１Ｂ、２１２Ｂは、それぞれ外部クロックで書込みデータＤＩＷｎ、ＤＩＷｎ＋１をラッチし、後段のレジスタへ順次転送する。ラッチ回路２１１ＢのＬＢで示すレジスタまでデータが入力された時点で、ラッチ回路２１１Ｂ、２１２Ｂにラッチされたデータは、カラムデコーダ１７による選択に基づきメモリセルコアに転送される。なお、ＣＩＯ−ＲＤモードでは、データ変換回路２１Ａ内の読出しデータの転送方向が、書込みデータの転送方向と逆になる。
【００９０】
ＳＩＯ−ＷＲモードでは、書込みデータＤＩＷｎのみが入力され、書込みデータＤＩＷｎ＋１は入力されない。マルチプレクサ２１３Ｂは、ラッチ回路２１１Ｂから転送されてくる書込みデータを選択する。図１０に示す例では、ＢＬ８の書込みデータＤＩＷｎがラッチ回路２１１Ｂ内のレジスタ間で順次転送される。ラッチ回路２１１Ｂのレジスタが全てデータで埋まった後、書込みデータＤＩＷｎは、マルチプレクサ２１３Ｂを経由してラッチ回路２１２Ｂのレジスタへ順次転送される。
【００９１】
ラッチ回路２１１Ｂ、２１２Ｂの全てのレジスタに書込みデータＤＩＷｎが入力された時点で、ラッチされた書込みデータはカラムデコーダ１７によって選択されたビット線を介してメモリセルコアに転送される。すなわち、ラッチ回路２１１Ｂとラッチ回路２１２Ｂとで、ＢＬ８の書込みデータＤＩＷｎを保持する。このように、レジスタ数を増やすことなく、ＳＩＯモード時のＢＬをＣＩＯモード時のＢＬよりも長くすることができ、半導体メモリのサイズの増大を防ぐことが可能となる。
【００９２】
実施の形態２において、ＳＩＯモードではＢＬ８であるため、同じアクセスコマンドが連続する場合には、前回のアクセスコマンドが入力された８ＤＤＲクロック後に次のアクセスコマンドが入力される。すなわち、アクセスコマンドの間隔はＢＬによって決定される。しかしながら、図９に示すように書込みコマンドと読出しコマンドが交互に入力される場合には、４ＤＤＲクロック毎にアクセスコマンドが入力される。つまり、同じアクセスコマンドの間に、このアクセスコマンドとは異なるアクセスコマンドを挿入することができる。
【００９３】
なお、実施の形態２においても、入出力端子設定コマンドの入力が、アクセスコマンドの入力に対して特定のレイテンシで入力されてもよい。すなわち、入出力端子設定コマンドは、アクセスコマンドが入力された以降、当該アクセスコマンドに対応したデータが入出力される前までに入力される。例えば、書込みコマンドよりも１クロック遅れて入出力端子設定コマンドを入力することができる。入出力端子設定コマンドの入力タイミングは諸条件により、フレキシブルに設定可能になる。
【００９４】
また、実施の形態１、２の上述の説明では、ロジック回路１３は、アクセスコマンドと入出力端子設定コマンドとを別々に出力しているが、アクセスコマンドと入出力端子設定コマンドをあらかじめ混合した一つのコマンドを設定し、カラムデコーダ１７、Ｉ／Ｆ回路２０に出力するようにしてもよい。混合したコマンドとは、すなわち、ロジック回路１３は、カラムデコーダ１７、Ｉ／Ｆ回路２０の両方に、ＳＩＯ−ＲＤコマンド、ＳＩＯ−ＷＲコマンド、ＣＩＯ−ＲＤコマンド、ＣＩＯ−ＷＲコマンドを出力してもよい。
【００９５】
実施の形態３．
上述の実施の形態の半導体メモリ１０を用いたメモリシステムについて説明する。図１１は、実施の形態３に係るメモリシステム１００の構成を示す図である。図１１は、半導体メモリ１０をネットワークスイッチに適用した例である。図１１に示すように、メモリシステム１００は、ＡＳＩＣ（Application Specific Integrated Circuit）４０、バッファメモリ５０、検索用メモリ５１を備える。ＡＳＩＣ４０と、バッファメモリ５０、検索用メモリ５１とは、それぞれバス６０を介して接続されている。
【００９６】
バッファメモリ５０としては、実施の形態１、２において説明した半導体メモリ１０が用いられる。検索用メモリ５１としては実施の形態１、２において説明した半導体メモリ１０でも良いし、実施の形態１、２において説明したメモリと同じＩ／ＦであればＴＣＡＭ（Ternary Content Addressable Memory）を用いることができる。なお、以下の説明では、検索用メモリ５１としてＴＣＡＭを用いた例について説明する。
【００９７】
ＡＳＩＣ４０は、パケットが入力される複数のポートＰＯＲＴ１〜ＰＯＲＴ４を有している。メモリシステム１００では、ＡＳＩＣ４０のある特定のポートから入力されたパケットを一旦バッファメモリ５０に格納する。次にパケットの宛先アドレスを検索用メモリ５１で検索し、行先データが取得される。行先データに基づいてバッファメモリ５０に格納されているパケットを所定のポートに出力する。
【００９８】
検索用メモリ５１は、図示しない複数のＣＡＭセルにより構成される複数のエントリで記憶データを保持する。各エントリは、それぞれアドレスが与えられている。検索用メモリ５１は、パケットを受け付けて各エントリについて記憶データと一致するか不一致かを並列に判定する。検索用メモリ５１の各ＣＡＭセルは、ハイ、ロー、ドントケアの３値をとることができる。例えば、入力されるパケットと記憶データとが一致するエントリがあればその一致データに基づいた行先データを出力する。また、検索用メモリ５１は、バッファメモリ５０と同様にＣＩＯモードとＳＩＯモードとをとることができる。
【００９９】
ＡＳＩＣ４０は、バッファメモリ５０、検索用メモリ５１を制御するメモリコントローラを有する。図１２は、図１１のＡＳＩＣ４０に内蔵されるメモリコントローラ４１の構成を示す図である。図１２に示すように、メモリコントローラ４１は、ＦＩＦＯ（First-In First-Out）４２、コマンド監視回路４３、メモリ制御論理回路４４、ＰＨＹ（physical layer）４５を有している。
【０１００】
メモリコントローラ４１は、バッファメモリ５０に対するアクセスコマンドや検索用メモリ５１のエントリに対するアクセスコマンドを生成する。また、メモリコントローラ４１は、アクセスコマンドの入力と同時にバッファメモリ５０の入出力端子をＣＩＯ、ＳＩＯのいずれかに切替える入出力端子設定コマンドを出力する。さらに、メモリコントローラ４１は、検索用メモリ５１のエントリへのアクセスコマンドと同時に、検索用メモリ５１の入出力端子設定情報を出力する。検索用メモリ５１は、アクセスコマンド毎に入出力端子設定情報を取り込み、データの入出力するタイミングに合わせて、ＣＩＯとＳＩＯとを切り替える。
【０１０１】
メモリコントローラ４１は、内部バス４６を介して、ＡＳＩＣ４０の内部ロジックと接続されている。内部バス４６としては、例えば、ＡＲＭ社のＡＭＢＡ（Advanced Microcontroller Bus Architecture）バス等を用いることができる。
【０１０２】
ＦＩＦＯ４２は、内部ロジックから入力されたバッファメモリ５０へのアクセスコマンドを格納して、入力された順にメモリ制御論理回路４４に出力するバッファ回路である。メモリ制御論理回路４４は、入力されたアクセスコマンドを、バッファメモリ５０へのアクセス特性がよくなるように並べ替える。ＤＲＡＭの場合は、メモリ制御論理回路４４は、アクセスコマンドの間に定期的にリフレッシュコマンドを挿入する。ＦＩＦＯ４２は、メモリ制御論理回路４４におけるこれらの制御を行うときに発生する制御時間を吸収するために用いられる。
【０１０３】
コマンド監視回路４３は、ＦＩＦＯ４２に格納されたアクセスコマンドを監視する。具体的には、コマンド監視回路４３は、アクセスコマンド中の書込みコマンド、読出しコマンドの並びや頻度を確認し、アクセスコマンド毎にＩ／Ｆ回路２０の入出力端子ＤＱをＣＩＯとするかＳＩＯとするか決定する。
【０１０４】
例えば、コマンド監視回路４３は、書込みコマンド又は読出しコマンドが連続する場合は入出力端子ＤＱをＣＩＯとするＣＩＯ命令を発行する。また、書込みコマンドと読出しコマンドとが交互に発生する場合には、入出力端子ＤＱをＳＩＯとするＳＩＯ命令を発行して、メモリ制御論理回路４４に出力する。メモリ制御論理回路４４は、ＣＩＯ命令、ＳＩＯ命令に従って、入出力端子設定コマンドを生成する。
【０１０５】
ＰＨＹ４５は、メモリコントローラ４１とバス６０とのインターフェースであり、一般的に、フィジカルレイヤコントローラ（physical layer controller）にあたる。ＰＨＹ４５は、メモリ制御論理回路４４からのアクセスコマンドをバッファメモリ５０、検索用メモリ５１に転送すると同時に、入出力端子設定コマンドを転送する。
【０１０６】
バッファメモリ５０に格納されるパケットは頻繁に更新されるため、バッファメモリ５０へのアクセスには、書込み動作、読出し動作が混在する。このため、メモリシステム１００のパフォーマンスを落とす原因となっている。しかしながら、実施の形態３では、バス６０に接続されるＡＳＩＣ４０に、アクセスコマンドを監視するコマンド監視回路４３が設けられている。コマンド監視回路４３によって、アクセスコマンド毎にバッファメモリ５０をＣＩＯモードとＳＩＯモードとに切替えることによって、データバスの効率を向上させ、メモリシステム１００全体のパフォーマンスを向上させることが可能となる。また、検索用メモリ５１に格納される行先データも時々更新されるので、同様にデータバスの効率を向上させることが可能となる。
【０１０７】
以上説明したように、ユーザがアクセスコマンドを頻繁に切り替えるメモリアクセス時はデータターンアラウンドが発生しないＳＩＯモードを選択し、同一のアクセスコマンドが連続するようなメモリアクセスの時は全バス領域を一方向で使用できるＣＩＯモードを選択することによりバス効率を改善することができる。
【０１０８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１０９】
１０  半導体メモリ
１１  アドレスレジスタ
１２  レジスタ
１３  ロジック回路
１４  ロウデコーダ
１５  メモリセルコア
１６  センスアンプ
１７  カラムデコーダ
１８  レジスタ
２０  Ｉ／Ｆ回路
２１  データ変換回路
２２  データ変換回路
３０  トライステートバッファ回路
３１  トライステートバッファ
３１ａ  レシーバ回路
３１ｂ  バッファ回路
３２  トライステートバッファ
３２ａ  レシーバ回路
３２ｂ  バッファ回路
４０  ＡＳＩＣ
４１  メモリコントローラ
４２  ＦＩＦＯ
４３  コマンド監視回路
４４  メモリ制御論理回路
４５  ＰＨＹ
４６  内部バス
５０  バッファメモリ
５１  検索用メモリ
６０  バス
１００  メモリシステム
２１１  ラッチ回路
２１２  ラッチ回路
２１Ａ  データ変換回路
２１１Ａ  ラッチ回路
２１２Ａ  ラッチ回路
２１３Ａ  マルチプレクサ
２１Ｂ  データ変換回路
２１１Ｂ  ラッチ回路
２１２Ｂ  ラッチ回路
２１３Ｂ  マルチプレクサ
【図１】
0006468971.tif 000002
【図２】
0006468971.tif 000003
【図３】
0006468971.tif 000004
【図４】
0006468971.tif 000005
【図５】
0006468971.tif 000006
【図６】
0006468971.tif 000007
【図７】
0006468971.tif 000008
【図８】
0006468971.tif 000009
【図９】
0006468971.tif 000010
【図１０】
0006468971.tif 000011
【図１１】
0006468971.tif 000012
【図１２】
0006468971.tif 000013
【図１３】
0006468971.tif 000014
【図１４】
0006468971.tif 000015
【図１５】
0006468971.tif 000016