(57)【要約】【課題】ＲＭＷ機能を備えたメモリの性能低下を軽減する。【解決手段】半導体記憶装置１００は、レイトライトアドレスＬＲＡ及びレイトライトデータＬＲＤを一時的に格納するレイトライトレジスタ１３０を備える。ライトコマンドが入力された時に、半導体記憶装置１００は、ダミーリードを行うと共に、ダミーリードにより読み出したデータとライトデータとから所定のビット幅のデータセットＤＳを作成し、さらに、データセットＤＳから訂正ビットを生成する。上記データセットＤＳの生成と訂正ビットの生成に並行して、半導体記憶装置１００は、メモリコア１７０のレイトライトアドレスＬＲＡにレイトライトデータＬＲＤを書き込むレイトライトをすると共に、ライトアドレスを新たなレイトライトアドレスとし、データセットＤＳ及び訂正ビットを新たなレイトライトデータとしてレイトライトレジスタ１３０に格納する。【選択図】図１
2014049148.tif 000002
【特許請求の範囲】
【請求項１】
メモリコアと、
所定のビット幅のデータから訂正ビットを生成する訂正ビット生成回路と、
データセット生成部と、
レイトライトアドレスとレイトライトデータを一時的に格納するレイトライトレジスタと、
前記所定のビット幅未満のライトデータのライトコマンドに応じて、
該ライトコマンドのライトアドレスのデータを前記メモリコアから出力するダミーリード動作と、
前記データ生成部により、前記ライトデータに対して、前記ダミーリード動作により前記メモリコアから出力されたデータで不足ビット分を追加して前記所定のビット幅のデータセットを生成する処理と、
前記訂正ビット生成回路により、前記データセットから前記訂正ビットを生成する処理と、
前記データセットと前記訂正ビットの生成に並行して、前記レイトライトレジスタに格納された前記レイトライトデータを前記レイトライトアドレスに対応する前記メモリコアのメモリセルに書き込むレイトライト動作と、
前記ライトアドレスを新たな前記レイトライトアドレスとし、前記データセット及び前記訂正ビットとを新たな前記レイトライトデータとして前記レイトライトレジスタに格納する処理が行われるように制御を行う制御部と、
を備える半導体記憶装置。
【請求項２】
リードコマンドのときに、
リードアドレスと、前記レイトライトレジスタに格納されている前記レイトライトアドレスとを比較し、
比較の結果、一致する場合には、前記レイトライトレジスタに格納された前記レイトライトデータに含まれる前記データセットを出力する一方、一致しない場合には、前記メモリコアの前記リードアドレスから前記訂正ビットが付属されたデータを読み出すと共に、前記訂正ビットに基づいたエラー訂正処理を行ってから出力するリード回路をさらに備える、
請求項１に記載の半導体記憶装置。
【請求項３】
前記ライトコマンドは、クロックに同期して入力され、
前記制御部は、
前記ダミーリードが、前記クロックに同期して行われ、
前記レイトライトが、前記クロックに同期せず、前記ダミーリードに続いて行われるように制御する、
請求項１に記載の半導体記憶装置。
【請求項４】
前記ライトコマンドは、クロックに同期して入力され、
前記ライトコマンドの前記ライトデータは、前記クロックに同期して、前記ライトコマンドより１サイクル以上後に入力される、
請求項１に記載の半導体記憶装置。
【請求項５】
クロックの複数のサイクルおきに前記メモリコアのリフレッシュが行われるように制御を行うリフレッシュ制御部をさらに備え、
リードコマンドと前記ライトコマンドが、前記クロックに同期して入力され、
前記リフレッシュ制御部は、
前記リフレッシュが、前記クロックに同期せず、前記リードコマンドに応じた前記メモリコアへのアクセス、または前記ダミーリードによる前記メモリコアへのアクセスに続いて行われるように制御を行い、
前記制御部は、
前記リフレッシュが開始されたサイクルの次のサイクルでリードコマンドまたはライトコマンドが入力された場合に、前記リードコマンドに応じて前記メモリコアへのアクセスの開始、または前記ライトコマンドに応じた前記ダミーリードによる前記メモリコアへのアクセスの開始を、前記次のサイクルにおいて所定時間遅延させる、
請求項１に記載の半導体記憶装置。
【請求項６】
クロックの複数のサイクルおきに前記メモリコアのリフレッシュが行われるように制御を行うリフレッシュ制御部をさらに備え、
データの入力と出力がバースト仕様になっており、
リードコマンドと前記ライトコマンドが、前記クロックに同期して入力され、
前記リフレッシュ制御部は、
前記リフレッシュが、前記クロックに同期せず、前記リードコマンドに応じた前記メモリコアへのアクセス、または前記ダミーリードによる前記メモリコアへのアクセスに続いて行われるように制御を行い、
前記制御部は、
前記ダミーリードによる前記メモリコアへのアクセスに続いて前記リフレッシュが行われた場合に、前記ダミーリードの次のサイクルで行われる前記レイトライトの開始を、前記次のサイクルにおいて所定時間遅延させる、
請求項１に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置、例えばエラー訂正機能を備えた半導体記憶装置に関する。
【背景技術】
【０００２】
エラー訂正機能、所謂ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）機能を備えたメモリが知られている。このようなメモリは、ライト時に、エラー訂正のためのチェックビットとしてハミングコードを生成して、ライト対象のデータ（以下「ライトデータ」という）と共にメモリコアに書き込む。そして、リード時には、リード対象のデータ（以下「リードデータ」という）と共にハミングコードをメモリコアから読み出して、ハミングコードに基づいてリードデータにおけるエラーの発生箇所（エラービット）を検出して訂正する。以下の説明において、ＥＣＣエンコードされたデータ（すなわち「主データ＋ハミングコード」）を「ＥＣＣデータ」という。
【０００３】
ハミングコードの最少ビット数は、データバス幅に対し２を底とする対数をとり、これに１を加算することにより求められる。例えば、データバス幅が３２ビットである場合には、ハミングコードとして、少なくとも６ビットが必要である。この場合、６ビットのハミングコードにより、１ビットエラーについては検出乃至訂正が可能であり、２ビットエラーについては検出のみが可能である。一方、データバス幅が３２ビットである場合に７ビットのハミングコードを用いれば、２ビットエラーについても、検出乃至訂正までが可能となる。
【０００４】
データバス幅が大きければ大きいほど、ハミングコードのビット数も増える一方、ハミングコードとデータバス幅の比は、データバス幅が大きいほど小さくなる。従って、ＥＣＣ機能を備えるメモリに対して、データバス幅を大きくし、データバス幅のデータ毎にハミングコードを生成することにより、ＥＣＣ機能に起因するコストを抑制することができる。
【０００５】
このようなことから、近年、メモリのデータバス幅はワイドビット化する傾向にある。特に、組込システムのＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）回路に設けられたＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などは、汎用の単体メモリのようなＩ／Ｆ（インタフェース）仕様の制約が無いため、データバス幅のワイドビット化傾向が顕著である。
【０００６】
このようなメモリでは、通常、データバス幅未満のライトデータもライト可能にするために、ＲＭＷ（Ｒｅａｄ−Ｍｏｄｉｆｙ−Ｗｒｉｔｅ）機能が実装されている。ＲＭＷ機能は、データバス幅未満のライトデータに対して、メモリコアに記憶されたデータで不足部分のビット（「マスクビット」ともいう）を追加してビット数をデータバス幅にしてからハミングコードの生成、メモリコアへの書込みを行う機能である。ＲＭＷ機能については、例えば特許文献１に開示されている。
【０００７】
特許文献１に開示されたように、ＲＭＷ機能を備えたメモリは、データバス幅未満のライトデータのライト時、まず、メモリコアから、該ライトアドレスのデータ（ビット数：データバス幅）と、それに付加されたハミングコードとを読み出す。この読出しは、ダミーリードと呼ばれる。
【０００８】
次いで、ダミーリードで読み出したＥＣＣデータに対して、ＥＣＣデコードを行い、エラーがあればエラーを訂正する。そして、デコードしたデータのうちの、ライトデータのマスクビットに該当する箇所のビットをライトデータに追加してデータセット（ビット数：データバス幅）を生成する。
【０００９】
そして、データセットに対してＥＣＣエンコードすなわちハミングコードの生成をして、データセットとハミングコードからなるＥＣＣデータをメモリコアに書き込む。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−３２７４３７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ここで、図９を参照してＲＭＷ機能を備えたメモリによる処理の流れの一例を考える。
図９において、「ＣＬＫ」、「ＣＯＭ」、「ＡＤＤ」、「ＥＣＣ  ＥＮＣ」、「ＤＡＴＡ／ＭＡＳＫ」、「ＥＣＣ  ＤＥＣ」、「ＤＡＴＡ出力」は、夫々、「クロック」、「コマンド」、「コマンドに対応するアドレス」、「ＥＣＣエンコード」、「ライトコマンドと共に入力されるデータ（ライトデータ）と、マスクビットを示す信号（以下マスク信号という）」、「ＥＣＣデコード」、「リードコマンドに応じて出力されるデータ」を意味する。これらについては、以降の説明に参照される各図面についても同様である。
【００１２】
図９の例では、まず、クロックのサイクルＴ１のライジングエッジ（タイミングｔ１）で、ライトコマンド「ｗｒｉｔｅ」、ライトアドレスＡ１、データ信号Ｄ１（ライトデータとマスク信号ＭＡＳＫ）がメモリに入力される。
【００１３】
メモリは、サイクルＴ１でダミーリードを行う。具体的には、ライトアドレスＡ１に対応するワード線ＷＬ１を選択して該ワード線ＷＬ１上のメモリセルを活性化し、ライトアドレスＡ１に対応するＥＣＣデータ（図中ＥＣＣ  ＤＡＴＡ）を読み出す。
【００１４】
そして、サイクルＴ２で、メモリは、サイクルＴ１で読み出したＥＣＣデータのＥＣＣデコード（エラー訂正を含む。以下同じ）をすると共に、ＥＣＣデコードしたデータと、タイミングｔ１で入力されたデータ信号Ｄ１（ライトデータ／マスク信号ＭＡＳＫ）から、データバス幅と同一ビット幅のデータセット（図中ＤＡＴＡ  ＳＥＴ）を作成する。
【００１５】
次いで、メモリは、サイクルＴ３において、サイクルＴ２で生成したデータセットのＥＣＣエンコードをしてＥＣＣデータを得、続くサイクルＴ４において、該ＥＣＣデータをメモリコアに書き込む。
【００１６】
図９の例では、サイクルＴ５のライジングエッジ（タイミングｔ５）で、リードコマンド（ＲＥＡＤ）と、リードアドレスＡ２が入力される。
【００１７】
そのため、サイクルＴ５において、メモリは、リードアドレスＡ２に対応するワード線ＷＬ２を選択してワード線ＷＬ２上のメモリセルを活性化し、ライトアドレスＡ２に対応するＥＣＣデータを読み出す。
【００１８】
そして、サイクルＴ６で、メモリは、上記ＥＣＣデータのＥＣＣデコードをし、データバス幅と同様のビット数のリードデータＱ２を得て、次のサイクルのライジングエッジ（タイミングｔ７）で出力する。
【００１９】
図９の例では、サイクルＴ６のライジングエッジ（タイミングｔ６）で、ライトコマンド（ＷＲＩＴＥ）と、ライトアドレスＡ３と、データ信号Ｄ３が入力される。
【００２０】
そのため、メモリは、サイクルＴ１のときと同様に、ライトアドレスＡ３に対応するワード線ＷＬ３を選択するなど、ダミーリードからの処理を行う。
【００２１】
図９の例から分かるように、ＲＭＷ機能を備えるメモリでは、データバス幅未満のライトデータについて、ライトコマンドの入力からメモリコアへの書込みまで、サイクルＴ１〜サイクルＴ４までの４サイクルが必要である。また、サイクルＴ１〜サイクルＴ４の４サイクルの間、ワード線ＷＬ１が選択されている状態が続いているが、ワード線ＷＬ１が選択された状態は、サイクルＴ１のダミーリードとサイクルＴ４の書込みのときにのみ必要である。これでは、メモリの性能が低下してしまう問題がある。
【００２２】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２３】
一実施の形態は、半導体記憶装置であり、所定のビット幅のデータから訂正ビットを生成する訂正ビット生成回路と、レイトライトアドレス及びレイトライトデータを一時的に格納するレイトライトレジスタを備える。
【００２４】
ライトコマンドが入力された時に、該半導体記憶装置は、メモリコアのライトアドレスからデータを読み出すダミーリードを行うと共に、ダミーリードにより読み出したデータとライトデータとから前記所定のビット幅のデータセットを作成し、作成したデータセットから訂正ビットを生成する。
【００２５】
該半導体記憶装置は、前記データセットと前記訂正ビットの生成に並行して、レイトライトを行う。具体的には、前記レイトライトレジスタに格納された前記レイトライトデータを前記レイトライトアドレスにに対応する前記メモリコアのメモリセルに書き込む。次いで、前記ライトアドレスをレイトライトアドレスとし、前記データセットと前記訂正ビットを新たなレイトライトデータとして前記レイトライトレジスタに格納する。
【００２６】
なお、上記一実施の形態の半導体記憶装置を方法やシステムに置き換えて表現したもの、該半導体記憶装置を備えたシステムなども、本発明の態様としては有効である。
【発明の効果】
【００２７】
上記一実施の形態の半導体記憶装置によれば、ＲＭＷ機能を備えたメモリの性能低下を軽減することができる。
【図面の簡単な説明】
【００２８】
【図１】第１の実施の形態にかかる半導体記憶装置を示す図である。
【図２】図１に示す半導体記憶装置におけるＥＣＣデコード部１６０の回路構成の例を示す図である。
【図３】図１に示す半導体記憶装置による処理の流れの一例を示すタイミングチャートである。
【図４】第５の実施の形態にかかる半導体記憶装置による処理の流れの一例を示すタイミングチャートである。
【図５】第６の実施の形態にかかる半導体記憶装置を示す図である。
【図６】図５に示す半導体記憶装置による処理の流れの一例を示すタイミングチャートである。
【図７】図５に示す半導体記憶装置による処理の流れの別の一例を示すタイミングチャートである。
【図８】第７の実施の形態にかかる半導体記憶装置による処理の流れの一例を示すタイミングチャートである。
【図９】ＲＭＷ機能を備えたメモリによる処理の流れの一例を示すタイミングチャートである。
【発明を実施するための形態】
【００２９】
以下、図面を参照して実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００３０】
＜第１の実施の形態＞
図１は、第１の実施の形態にかかる半導体記憶装置１００を示す。半導体記憶装置１００は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ（登録商標）などであり、制御部１１０、アドレス入力部１２０、データ入力部１２２、データセット生成部１２４、ＥＣＣエンコード部１２６、レイトライトレジスタ１３０、セレクタ１４０、データ出力部１５０、ＥＣＣデコード部１６０、メモリコア１７０を備える。
【００３１】
半導体記憶装置１００は、エラー訂正機能（ＥＣＣ機能）と、ＲＭＷ機能と、後述するレイトライト（Ｌａｔｅ  Ｗｒｉｔｅ）機能を備えており、その制御部１１０には、ＲＭＷのための制御を行うＲＭＷ制御回路１１２と、レイトライトのための制御を行うレイトライト制御回路１１４を有する。
【００３２】
例として、半導体記憶装置１００のデータバス幅が３２ビットであり、エラー訂正のためのハミングコードが６ビットであるとする。
【００３３】
制御部１１０は、他の機能ブロックの制御を行うものであり、クロックＣＬＫとコマンドＣＭＤが入力される。コマンドＣＭＤとしては、少なくともリードコマンドとライトコマンドがある。制御部１１０におけるＲＭＷ制御回路１１２とレイトライト制御回路１１４は、クロックＣＬＫに同期して、コマンドＣＭＤに応じた制御を行う。制御部１１０により制御の詳細については、他の機能ブロックの動作と共に説明する。
【００３４】
リードコマンドまたはライトコマンドと共に、半導体記憶装置１００には、アドレスＡＤＤ（リードアドレスまたはライトアドレス）が入力される。アドレス入力部１２０は、ＲＭＷ制御回路１１２により制御され、ライトコマンドとリードコマンドのいずれのときにも、アドレスＡＤＤをレイトライトレジスタ１３０とセレクタ１４０に出力する。また、アドレス入力部１２０は、リードコマンドのときに、さらに、アドレスＡＤＤ（リードアドレス）をデータ入力部１２２にも出力する。
【００３５】
データ入力部１２２は、ＲＭＷ制御回路１１２により制御され、ライトコマンドと共に半導体記憶装置１００に入力されたデータ（ライトデータとマスク信号ＭＡＳＫを含む）をデータセット生成部１２４に出力する。また、リードコマンドのときには、データ入力部１２２は、アドレス入力部１２０からのリードアドレスをデータ出力部１５０とＥＣＣデコード部１６０に転送する。
【００３６】
データセット生成部１２４は、データ入力部１２２からのデータに対応するデータセットＤＳを生成してＥＣＣエンコード部１２６に出力する。このデータセットＤＳのビット数は、データバス幅の３２ビットである。データセット生成部１２４は、ライトコマンドと共に半導体記憶装置１００に入力されたライトデータ及びマスク信号ＭＡＳＫと、ＥＣＣデコード部１６０からのデータＥＣＤ（３２ビット）とからデータセットＤＳを生成するものである。データセット生成部１２４によるデータセットＤＳの生成、及びＥＣＣデコード部１６０からのデータＥＣＤについて、後に詳細に説明する。
【００３７】
ＥＣＣエンコード部１２６は、データバス幅（ここでは３２ビット）のデータから訂正ビットとなるハミングコード（ここでは６ビット）を生成する訂正ビット生成回路である。具体的には、ＥＣＣエンコード部１２６は、ＲＭＷ制御回路１１２の制御に従って、ライトコマンドのときに、データセット生成部１２４からのデータセットＤＳに対してハミングコードを生成してデータセットＤＳと共にレイトライトレジスタ１３０に出力する。
【００３８】
レイトライトレジスタ１３０は、アドレスレジスタ１３２とデータレジスタ１３４を備える。
【００３９】
アドレスレジスタ１３２は、レイトライト制御回路１１４により制御され、ライトコマンドのときに、格納していたアドレス（レイトライトアドレスＬＲＡ）をセレクタ１４０に出力すると共に、アドレス入力部１２０からのアドレスＡＤＤ（ライトアドレス）を新たなレイトライトアドレスＬＲＡとして格納する。
【００４０】
リードコマンドのときに、アドレスレジスタ１３２は、格納しているレイトライトアドレスＬＲＡをＥＣＣデコード部１６０に出力する。
【００４１】
データレジスタ１３４は、レイトライト制御回路１１４により制御され、ライトコマンドのときに、格納しているデータ（レイトライトデータＬＲＤ）をメモリコア１７０に出力すると共に、ＥＣＣエンコード部１２６からのデータセットＤＳとハミングコードとを新たなレイトライトデータＬＲＤとして格納する。レイトライトデータＬＲＤのうちのハミングコードの部分と、主データ部分とを夫々「ＨＣ」と「ＭＤ」で表記している。
【００４２】
データレジスタ１３４は、リードコマンドのときに、格納しているレイトライトデータＬＲＤのうちの主データＭＤをＥＣＣデコード部１６０に出力する。
【００４３】
セレクタ１４０は、レイトライト制御回路１１４により制御され、アドレス入力部１２０からのアドレスＡＤＤ（ライトアドレスまたはリードアドレス）と、アドレスレジスタ１３２からのレイトライトアドレスＬＲＡとを選択的にメモリコア１７０に出力する。具体的には、リードコマンドのときにはアドレス入力部１２０からのアドレスＡＤＤ（リードアドレス）をメモリコア１７０に出力する。また、ライトコマンドのときには、セレクタ１４０は、アドレス入力部１２０からのアドレス（ライトアドレス）をメモリコア１７０に出力し、その後、アドレスレジスタ１３２からのレイトライトアドレスＬＲＡをメモリコア１７０に出力する。
【００４４】
メモリコア１７０は、レイトライト制御回路１１４により制御され、リードコマンドのときには、セレクタ１４０からのアドレス（アドレス入力部１２０からのリードアドレス）に対応するメモリセルからリードデータとハミングコードからなるＥＣＣデータ出力する。
【００４５】
また、ライトコマンドのときには、メモリコア１７０は、セレクタ１４０からのライトアドレス（アドレス入力部１２０から）に対応するメモリからＥＣＣデータを出力し、その後、セレクタ１４０からのレイトライトアドレスＬＲＡに対応するメモリセルに、データレジスタ１３４からのレイトライトデータＬＲＤを書き込む。
【００４６】
ＥＣＣデコード部１６０は、ＲＭＷ制御回路１１２により制御される。図２は、その回路構成の一例を示す。
【００４７】
図２に示すように、ＥＣＣデコード部１６０は、比較器１６１、マルチプレクサ１６２、デコード実行部１６３、マルチプレクサ１６４、インバータ回路１６５を備える。リードコマンド時とライトコマンド時を分けてＥＣＣデコード部１６０を説明する。
【００４８】
＜リードコマンド時＞
この場合、比較器１６１は、アドレスＡＤＤ（リードアドレス）と、レイトライトレジスタ１３０のアドレスレジスタ１３２に格納されているレイトライトアドレスＬＲＡとを比較し、比較結果を示すヒットリード信号ＨＲをマルチプレクサ１６２とマルチプレクサ１６４に出力する。具体的には、例えば、比較の結果、リードアドレスＡＤＤとレイトライトアドレスＬＲＡとが一致するときにはヒットリード信号ＨＲに「１」を出力し、リードアドレスＡＤＤとレイトライトアドレスＬＲＡとが一致しないときにはヒットリード信号ＨＲに「０」を出力する。
【００４９】
また、データレジスタ１３４に格納されているレイトライトデータＬＲＤの主データＭＤは、マルチプレクサ１６２に出力される。
【００５０】
また、リードアドレスＡＤＤに応じてメモリコア１７０から出力されたＥＣＣデータのうちの主データＭＤ１は、マルチプレクサ１６２とデコード実行部１６３に入力され、該ＥＣＣデータのうちのハミングコードＨＣ１は、デコード実行部１６３に入力される。
【００５１】
マルチプレクサ１６２は、ヒットリード信号ＨＲが「１」であるとき、すなわちリードアドレスＡＤＤとレイトライトアドレスＬＲＡとが一致するときには、データレジスタ１３４からの主データＭＤを選択して出力する。一方、ヒットリード信号ＨＲが「０」であるとき、すなわちリードアドレスＡＤＤとレイトライトアドレスＬＲＡとが一致しないときには、マルチプレクサ１６２は、メモリコア１７０からの主データＭＤ１を選択して出力する。
【００５２】
デコード実行部１６３は、メモリコア１７０からの主データＭＤ１とハミングコードＨＣ１とに対してＥＣＣデコードを行い、エラー訂正信号ＥＣＳを生成してマルチプレクサ１６４に出力する。
【００５３】
なお、エラー訂正信号ＥＣＳは、主データＭＤ１のうちのどのビットがエラーであるかを示す信号である。
【００５４】
マルチプレクサ１６２が出力したデータ（主データＭＤと主データＭＤ１のいずれか一方であり、以下主データＭＤ２という）は、マルチプレクサ１６４とインバータ回路１６５に入力される。
【００５５】
インバータ回路１６５は、主データＭＤ２の全てのビット（３２ビット）を反転してマルチプレクサ１６４に出力する。
【００５６】
マルチプレクサ１６４は、比較器１６１からのヒットリード信号ＨＲが「１」であるときには、デコード実行部１６３からのエラー訂正信号ＥＣＳ信号を待たずに、マルチプレクサ１６２からの主データＭＤ２（ここでは、データレジスタ１３４からの主データＭＤ）をデータＥＣＤとして出力する。
【００５７】
一方、比較器１６１からのヒットリード信号ＨＲが「０」であるときには、マルチプレクサ１６４は、マルチプレクサ１６２からの主データＭＤ２（ここではメモリコア１７０からの主データＭＤ１）のうちの、エラー訂正信号ＥＣＳにより示されるビットについてはインバータ回路１６５からのビットを選択し、他のビットについては主データＭＤ２のビットを選択して出力する。
【００５８】
マルチプレクサ１６４から出力されたデータＥＣＤは、データセット生成部１２４とデータ出力部１５０に出力される。
【００５９】
データ出力部１５０は、リードコマンドに対応するリードデータとして、データＥＣＤを出力する。つまり、本実施の形態の半導体記憶装置１００において、ＥＣＣデコード部１６０は、リードコマンドに応じたリードデータを得るためのリード回路を兼ねている。
【００６０】
なお、データセット生成部１２４は、ライトコマンド時にのみ動作するため、リードコマンドのときにデータＥＣＤが入力されるものの、特に動作をしない。
【００６１】
＜ライトコマンド時＞
ライトコマンド時に、データレジスタ１３４から前回のライトコマンド時に生成したレイトライトデータＬＲＤがメモリコア１７０に入力される。このレイトライトデータＬＲＤのうちの主データＭＤは、マルチプレクサ１６２にも入力される。
【００６２】
また、今回のアドレスＡＤＤ（ライトアドレス）はメモリコア１７０にも入力されるため、ライトアドレスＡＤＤに対応するＥＣＣデータはメモリコア１７０から出力される。このＥＣＣデータのうちの主データＭＤ１はマルチプレクサ１６２とデコード実行部１６３に入力され、ハミングコードＨＣ１はデコード実行部１６３に入力される。
【００６３】
比較器１６１は、ライトコマンドのときに、ヒットリード信号ＨＲに「０」を出力する。そのため、マルチプレクサ１６２は、メモリコア１７０からの主データＭＤ１を選択して主データＭＤ２としてマルチプレクサ１６４に出力する。
【００６４】
デコード実行部１６３とインバータ回路１６５は、リードコマンド時と同様の動作をする。そのため、マルチプレクサ１６４から出力されたデータＥＣＤは、エラー（あれば）が訂正された主データＭＤ１である。
【００６５】
マルチプレクサ１６４から出力されたデータＥＣＤは、データセット生成部１２４に供される。
【００６６】
データセット生成部１２４は、今回のライトコマンドと共に半導体記憶装置１００に入力されたライトデータとマスク信号ＭＡＳＫと、ＥＣＣデコード部１６０からのデータＥＣＤとからデータセットＤＳを生成する。具体的には、データＥＣＤのうちの、マスク信号ＭＡＳＫが示す夫々のビットを、ライトデータの当該位置に挿入することにより追加して、データバス幅（３２ビット）のデータセットＤＳを生成する。
なお、ライトコマンドのときには、データ出力部１５０は、出力動作をしない。
【００６７】
このように、本実施の形態の半導体記憶装置１００は、ライトコマンドのときに、ダミーリードによりメモリコア１７０からライトアドレスに対応するＥＣＣデータを読み出して、該ＥＣＣデータをデコード（エラー訂正を含む）して得た主データでライトデータの不足ビット分を追加してデータセットＤＳを得てハミングコードを生成すると共に、データセットＤＳとハミングコードとをレイトライトデータＬＲＤとしてレイトライトレジスタ１３０のデータレジスタ１３４に格納する。並行して、レイトライトレジスタ１３０のデータレジスタ１３４に格納されていた、前回のライトコマンドに応じて生成したレイトライトデータＬＲＤをメモリコア１７０に書き込む。
【００６８】
すなわち、半導体記憶装置１００は、ライトコマンド時に、ＲＭＷ機能によりデータセットＤＳとハミングコードを生成するものの、生成したデータセットＤＳとハミングコードを、次のライトコマンドのときに書き込む。このようなライト動作を、レイトライトと呼ぶ。
【００６９】
レイトライトにより、最も新しいライトデータに対応するレイトライトデータＬＲＤは、メモリコア１７０ではなく、データレジスタ１３４に格納されることになる。上記最も新しいライトデータが書き込まれるべきアドレスに、古いデータが格納されたままである。
【００７０】
そのため、半導体記憶装置１００は、リードコマンドのときに、リードアドレスと、アドレスレジスタ１３２に格納されたレイトライトアドレスＬＲＡとが一致するか否かを確認し、一致する場合（ヒットリードの場合）には、データレジスタ１３４に格納されたレイトライトデータＬＲＤのうちの主データＭＤをリードデータとして出力する。
【００７１】
こうすることにより、メモリコア１７０から古いデータが読み出されることを防ぐことができる。
【００７２】
さらに、半導体記憶装置１００は、リードアドレスと、アドレスレジスタ１３２に格納されたレイトライトアドレスＬＲＡとが一致する場合に、ＥＣＣデコード部１６０のマルチプレクサ１６４がデコード実行部１６３からのエラー訂正信号ＥＣＳを待たずに、レイトライトデータＬＲＤのうちの主データＭＤをそのままデータＥＣＤとして出力する、従って、マルチプレクサ１６２による選択動作にかかる時間を隠蔽し、通常のリード時と同様の速度でリードアクセスを完了することができる。
【００７３】
図３は、半導体記憶装置１００による処理の流れの一例を示すタイミングチャートである。分かりやすいように、図３において、リードアクセスについて、リードアドレスが、アドレスレジスタ１３２に格納されているレイトライトアドレスＬＲＡと一致しない場合を例にする。
【００７４】
図示のように、まず、クロックのサイクルＴ１のライジングエッジ（タイミングｔ１）で、ライトコマンド「ｗｒｉｔｅ」、ライトアドレスＡ１、データ信号Ｄ１（ライトデータとマスク信号ＭＡＳＫ）が半導体記憶装置１００に入力される。なお、このときに、アドレスレジスタ１３２には、前回のライトコマンド時のアドレス「Ａ０」がレイトライトアドレスＬＲＡとして格納されており、データレジスタ１３４には、前回のライトコマンド時に生成したＥＣＣデータ「Ｄ０Ｅ」がレイトライトデータＬＲＤとして格納されているとする。
【００７５】
半導体記憶装置１００は、サイクルＴ１でダミーリードを行う。具体的には、ライトアドレスＡ１に対応するワード線ＷＬ１を選択して該ワード線ＷＬ１上のメモリセルを活性化し、ライトアドレスＡ１に対応するＥＣＣデータ（図中ＥＣＣ  ＤＡＴＡ）をメモリコア１７０から読み出す。
【００７６】
そして、サイクルＴ２で、半導体記憶装置１００は、レイトライトを行う。具体的には、アドレスレジスタ１３２に格納されているレイトライトアドレスＬＲＡ（Ａ０）に対応するワード線ＷＬ０を選択して該ワード線ＷＬ０上のメモリを活性化し、データレジスタ１３４に格納されているレイトライトデータＬＲＤ（Ｄ０Ｅ）をメモリコア１７０に書込む。また、アドレスレジスタ１３２は、新たなレイトライトアドレスＬＲＡとして、アドレス「Ａ１」を格納する。
【００７７】
並行して、半導体記憶装置１００は、サイクルＴ１で読み出したＥＣＣデータのＥＣＣデコード（エラー訂正を含む）をすると共に、ＥＣＣデコードしたデータと、タイミングｔ１で入力されたデータ信号Ｄ１（ライトデータ／マスク信号ＭＡＳＫ）から、データバス幅と同一ビット幅のデータセットを作成する。
【００７８】
次いで、半導体記憶装置１００は、サイクルＴ３において、サイクルＴ２で生成したデータセットのＥＣＣエンコードをしてＥＣＣデータを得、このＥＣＣデータを新たなレイトライトデータＬＲＤとしてデータレジスタ１３４に格納する。
【００７９】
サイクルＴ３において、半導体記憶装置１００は、ＥＣＣエンコードを行うが、ＥＣＣエンコードにより生成したＥＣＣデータをメモリコア１７０に書き込まないので、メモリコア１７０に対するリードアクセスが可能になる。
【００８０】
図３の例に示すように、サイクルＴ３のライジングエッジ（タイミングｔ３）で、リードコマンド（ＲＥＡＤ）と、リードアドレスＡ２が入力される。
【００８１】
そのため、サイクルＴ３において、ＥＣＣエンコードに並行して、半導体記憶装置１００は、リードアドレスＡ２に対応するワード線ＷＬ２を選択してワード線ＷＬ２上のメモリセルを活性化し、ライトアドレスＡ２に対応するＥＣＣデータを読み出す。
【００８２】
そして、サイクルＴ４で、半導体記憶装置１００は、サイクルＴ３で読み出したＥＣＣデータのＥＣＣデコードをし、データバス幅と同様のビット数のリードデータＱ２を得て、次のサイクルのライジングエッジ（タイミングｔ５）で出力する。
【００８３】
また、サイクルＴ４のライジングエッジ（タイミングｔ４）で、ライトコマンド「ｗｒｉｔｅ」、ライトアドレスＡ３、データ信号Ｄ３（ライトデータとマスク信号ＭＡＳＫ）が半導体記憶装置１００に入力される。なお、このときに、アドレスレジスタ１３２にはレイトライトアドレスＬＲＡとして「Ａ１」が格納されており、データレジスタ１３４にはレイトライトデータＬＲＤとして「Ｄ１Ｅ」が格納されている。
【００８４】
半導体記憶装置１００は、サイクルＴ４でダミーリードを行う。具体的には、ライトアドレスＡ３に対応するワード線ＷＬ３を選択して該ワード線ＷＬ３上のメモリセルを活性化し、ライトアドレスＡ３に対応するＥＣＣデータをメモリコア１７０から読み出す。
【００８５】
そして、サイクルＴ５で、半導体記憶装置１００は、レイトライトを行う。具体的には、アドレスレジスタ１３２に格納されているレイトライトアドレスＬＲＡ（Ａ１）に対応するワード線ＷＬ１を選択して該ワード線ＷＬ１上のメモリを活性化し、データレジスタ１３４に格納されているレイトライトデータＬＲＤ（Ｄ１Ｅ）をメモリコア１７０に書込む。アドレスレジスタ１３２は、新たなレイトライトアドレスＬＲＡとして、アドレス「Ａ３」を格納する。
【００８６】
並行して、半導体記憶装置１００は、サイクルＴ４で読み出したＥＣＣデータのＥＣＣデコード（エラー訂正を含む）をすると共に、ＥＣＣデコードしたデータと、タイミングｔ４で入力されたデータ信号Ｄ３（ライトデータ／マスク信号ＭＡＳＫ）から、データバス幅と同一ビット幅のデータセットを作成する。
【００８７】
次いで、半導体記憶装置１００は、サイクルＴ６において、サイクルＴ５で生成したデータセットのＥＣＣエンコードをしてＥＣＣデータを得、このＥＣＣデータを新たなレイトライトデータＬＲＤとしてデータレジスタ１３４に格納する。
【００８８】
サイクルＴ６において、半導体記憶装置１００は、ＥＣＣエンコードを行うが、ＥＣＣエンコードにより生成したＥＣＣデータをメモリコア１７０に書き込まないので、メモリコア１７０に対して、リードアクセスに加え、リフレッシュを行うこともできる。
【００８９】
リフレッシュは、コンデンサに電荷を蓄えることにより情報を保持し、蓄積した電荷が時間の経過と共に減少するメモリ（例えばＤＲＡＭ）に対して、一定時間ごとに電荷を注入する処理を意味する。なお、リフレッシュは、通常、ワード線単位で行われる。
【００９０】
例として、本実施の形態の半導体記憶装置１００が外部からのリフレッシュコマンドに応じてリフレッシュを行うものであるとする。図３の例では、タイミングｔ６で、リフレッシュコマンド（図中ＲＥＦＲＥＳＨ）と、リフレッシュの対象となるメモリセルを示すアドレス（リフレッシュアドレス）Ａ４が入力される。
【００９１】
半導体記憶装置１００は、サイクルＴ６において、上記リフレッシュコマンドに応じたリフレッシュ処理を行う。具体的には、リフレッシュアドレスＡ４に対応するワード線ＷＬ４を選択し、該ワード線ＷＬ４上のメモリセルに格納されているデータを読み出して増幅してから元のメモリセルに書き戻す。
【００９２】
図３から分かるように、半導体記憶装置１００は、１度のライト動作を２サイクル（サイクルＴ１〜Ｔ２、またはサイクルＴ２〜Ｔ３）で完了している。図９と比較すると明らかなように、ＲＭＷ機能を備える従来のメモリより、ライトアクセスの速度を２倍に高めることができる。
【００９３】
＜第２の実施の形態＞
第１の実施の形態の半導体記憶装置１００は、ダミーリードにより読み出したＥＣＣデータのデコード及びデータセットの生成と、データセットのＥＣＣエンコードとに１サイクルずつを使用する。そのため、ライトコマンドの入力時から、該ライトコマンドに対応するＥＣＣデータをレイトライトレジスタ１３０に格納するのは、ライトコマンドの入力から３サイクル目になっている。
【００９４】
クロックＣＬＫの周期が比較的に長い半導体記憶装置の場合、例えば、ダミーリードにより読み出したＥＣＣデータのデコードと、データセットの生成と、ＥＣＣエンコードとを１サイクルで完成させるようにすることができる。この場合、ライトコマンドの入力から２サイクル目に、該ライトコマンドに対応するＥＣＣデータをレイトライトレジスタ１３０に格納することができる。
【００９５】
こうすることにより、クロックＣＬＫの１周期を十分に活用することができる。加えて、制御部１１０に備えられた、ＣＬＫ同期用のフリップフロップ（図示せず）が削減でき、ひいては半導体記憶装置の回路規模及び消費電力を削減することができる。
【００９６】
＜第３の実施の形態＞
第１の実施の形態の半導体記憶装置１００は、ライトコマンドに応じたダミーリードと、レイトライトレジスタ１３０に格納されたレイトライトデータＬＲＤのメモリコア１７０への書込み（レイトライト）を、夫々のサイクルのクロックＣＬＫエッジに同期してスタートしている。
【００９７】
レイトライトを、クロックＣＬＫのエッジに同期させず、例えば内部遅延によりダミーリードの完了直後に開始させるようにすることができる。
【００９８】
例えばＤＲＡＭのメモリコアの場合、通常、メモリコアへの書込みに必要な時間がメモリコアからの読み出しに必要な時間より長い。上述したように、レイトライトを、ダミーリードに続く連続動作として開始させるようにすることにより、ダミーリードが行われるサイクルの一部の時間をレイトライトに融通することができる。その結果、クロックＣＬＫの周波数に対するライトマージンのリミットを緩和することができ、高速なクロックＣＬＫを用いるこができる。
【００９９】
さらに、クロックＣＬＫの１周期が比較的に長い場合には、ダミーリードとレイトライトを１サイクルで実施することもでき、実効的には、１サイクルでライト動作を完結できる。この場合、外部からみれば、エラー訂正機能がない場合と同一の仕様になる。
【０１００】
＜第４の実施の形態＞
第１の実施の形態の半導体記憶装置１００では、ライトコマンドと、ライトデータ／マスク信号ＭＡＳＫは、同一のタイミングで入力される。
【０１０１】
しかし、図３から分かるように、サイクルＴ１のライジングエッジｔ１でライトコマンドと同時に入力されたデータ信号Ｄ１（ライトデータ／マスク信号ＭＡＳＫ）が使用されるのは、データセットの生成時、すなわちライトコマンドの入力時からの２サイクル目（サイクルＴ２）である。従って、ライトコマンドの入力に対して、データ信号Ｄ（ライトデータ／マスク信号ＭＡＳＫ）の入力を１サイクル遅延させることができる。
【０１０２】
こうすることにより、リードコマンドが入力されるサイクルの直後のサイクルでライトコマンドが入力されるようにしても、リードコマンドに応じて半導体記憶装置から外部に出力するリードデータと、ライトコマンドに対応するライトデータ／マスク信号ＭＡＳＫとのバッティングを防ぐことができる。そのため、半導体記憶装置のデータＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）部分（例えば外部バス）をリード／ライトで共有させることができ、データ信号線を半分に削減できる。
【０１０３】
＜第５の実施の形態＞
第１の実施の形態にかかる半導体記憶装置１００のレイトライト技術は、半導体記憶装置へのデータ入出力がバースト仕様である場合にも適用することができる。図４のタイミングチャートを参照して説明する。なお、簡潔のために、図４の説明に際して、半導体記憶装置１００の機能ブロックを用いる。
【０１０４】
図４は、バースト仕様として、ＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ）で８ビットずつ４回連続入出力場合の例である。なお、ライト時には、各回において４ビットがマスクされているとする。
【０１０５】
サイクルＴ１のライジングエッジ（タイミングｔ１）において、リードコマンドとリードアドレスＡ１が入力される。このとき、アドレスレジスタ１３２には、レイトライトアドレスＬＲＡ（Ａ０）が格納されており、データレジスタ１３４には、レイトライトデータＬＲＤ（Ｄ０Ｅ）が格納されているとする。
【０１０６】
第５の実施の形態の半導体記憶装置は、サイクルＴ１において、リードアドレスＡ１に対応するワード線ＷＬ１を選択してワード線ＷＬ１上のメモリセルを活性化し、リードアドレスＡ１に対応するＥＣＣデータを読み出す。
【０１０７】
そして、サイクルＴ２で、サイクルＴ１で読み出したＥＣＣデータのＥＣＣデコードをし、３２ビットのリードデータＱ１を得る。
【０１０８】
次いで、第５の実施の形態の半導体記憶装置は、サイクルＴ３〜Ｔ４で、リードデータＱ１を８ビットずつ４回出力する。
【０１０９】
また、サイクルＴ３のライジングエッジ（タイミングｔ３）で、ライトコマンド「ｗｒｉｔｅ」、ライトアドレスＡ２が入力される。また、データ信号Ｄ２（ライトデータとマスク信号ＭＡＳＫ）は、サイクルＴ３〜Ｔ４で４回に分けて入力される。
【０１１０】
第５の実施の形態の半導体記憶装置は、サイクルＴ３でダミーリードを行う。具体的には、ライトアドレスＡ２に対応するワード線ＷＬ２を選択して該ワード線ＷＬ２上のメモリセルを活性化し、ライトアドレスＡ２に対応するＥＣＣデータをメモリコア１７０から読み出す。
【０１１１】
そして、サイクルＴ４でレイトライトを行う。具体的には、アドレスレジスタ１３２に格納されているレイトライトアドレスＬＲＡ（Ａ０）に対応するワード線ＷＬ０を選択して該ワード線ＷＬ０上のメモリを活性化し、データレジスタ１３４に格納されているレイトライトデータＬＲＤ（Ｄ０Ｅ）をメモリコア１７０に書込む。アドレスレジスタ１３２は、新たなレイトライトアドレスＬＲＡとして、アドレス「Ａ２」を格納する。
【０１１２】
並行して、第５の実施の形態の半導体記憶装置は、サイクルＴ３で読み出したＥＣＣデータのＥＣＣデコード（エラー訂正を含む）をすると共に、ＥＣＣデコードしたデータと、タイミングｔ３から入力されたデータ信号Ｄ２（ライトデータ／マスク信号ＭＡＳＫ）から、３２ビットのデータセットを作成する。
【０１１３】
次いで、第５の実施の形態の半導体記憶装置は、サイクルＴ４の次のサイクルにおいて、サイクルＴ４で生成したデータセットのＥＣＣエンコードをしてＥＣＣデータ（Ｄ２Ｅ）を得、このＥＣＣデータを新たなレイトライトデータＬＲＤとしてデータレジスタ１３４に格納する。
【０１１４】
ＥＣＣ機能とＲＭＷ機能を備えた半導体記憶装置では、データの入出力がバースト仕様になっている場合に、ライトコマンドの後にデータセットを生成するために、ライトデータが全て揃ってからデータセットの生成、ＥＣＣデータの生成、生成したＥＣＣデータのメモリコアへの書込みを行う。
【０１１５】
特許文献１には、ＥＣＣ機能とＲＭＷ機能を備え、データの入出力がバースト仕様になっている半導体記憶装置において、ライト動作を高速にする技術が開示されている。この技術は、今回のライトコマンドのときに、レジスタに格納されていた、前回のライトコマンドのときのライトデータからデータセット乃至ＥＣＣデータを作成してメモリコアに書き込むと共に、今回のライトデータをレジスタに格納する。つまり、該技術は、ライトデータが揃うまでの待ち時間に、前回のライトコマンドのときのライトデータからのデータセット乃至ＥＣＣデータの生成、生成したＥＣＣデータのメモリコアへの書込みを行う。
【０１１６】
対して、第５の実施の形態の半導体記憶装置は、ライトデータが揃うまでの待ち時間に、前回のライトコマンドに応じて生成したＥＣＣデータのメモリコアへの書込みを行う。今回のライトデータが揃ってからは、データセット乃至ＥＣＣデータの生成を行うが、メモリコアへの書込みをしないため、特許文献１に開示された技術と同様に、ライト動作を高速に実行することができる。
【０１１７】
＜第６の実施の形態＞
第１の実施の形態の半導体記憶装置１００のときに、外部からのリフレッシュコマンドに応じてリフレッシュ処理を行う場合の例を説明した。上述したレイトライト機能は、ＨＩＤＤＥＮ−ＲＥＦＲＥＳＨを実施する半導体記憶装置にも適用することができる。これについて、第６の実施の形態を用いて説明する。
【０１１８】
ＨＩＤＤＥＮ−ＲＥＦＲＥＳＨは、ＤＲＡＭなどのメモリの内部で、所定時間（通常、複数サイクル）毎に自律的にリフレッシュを行う機能である。ＨＩＤＤＥＮ−ＲＥＦＲＥＳＨ機能を備える半導体記憶装置は、外部からリフレッシュコマンドの入力、すなわちリフレッシュに関する制御を行う必要がない。
【０１１９】
図５は、第６の実施の形態にかかる半導体記憶装置２００を示す。半導体記憶装置２００は、リフレッシュ制御回路２１６とＲＡＤＤ（リフレッシュアドレス）生成回路２１８をさらに備え点と、制御部１１０とセレクタ１４０の代わりに制御部２１０とセレクタ２４０が設けられた点を除き、図１に示す半導体記憶装置２００と同様である。そのため、半導体記憶装置２００について、半導体記憶装置１００と異なる点のみを説明する。
【０１２０】
制御部２１０は、ＲＭＷ制御回路２１２とレイトライト制御回路２１４を備える。ＲＭＷ制御回路２１２は、半導体記憶装置１００の制御部１１０におけるＲＭＷ制御回路１１２の各機能以外に、さらに、リフレッシュ制御回路２１６に第１の信号Ａと第２の信号Ｂを出力する機能を有する。
【０１２１】
第１の信号Ａは、リフレッシュを実行するかの判断のためのコマンド情報である。制御部２１０は、例えば、外部からコマンドＣＭＤが入力される度に、そのコマンドを示す情報を第１の信号Ａとしてリフレッシュ制御回路２１６に出力する。
【０１２２】
また、第２の信号Ｂは、リフレッシュの制御用の内部クロック信号である。
リフレッシュ制御回路２１６は、ＲＭＷ制御回路２１２からの第１の信号Ａと第２の信号Ｂとに基づいて、リフレッシュを実行するか否かを判断する。具体的には、例えば、メモリセル内のデータ保持時間に応じて、複数サイクル毎に、かつ、メモリコア１７０へのリード動作（外部からのリードアクセス及びダミーリード）の直後にリフレッシュを実行するように判断する。
【０１２３】
なお、メモリコア１７０へのリード動作の直後にリフレッシュを実行するように判断することは、リフレッシュアドレスと、外部からのリード／ライトアドレスとのバッティングを回避するためである。
【０１２４】
リフレッシュを実行すると判断したとき、リフレッシュ制御回路２１６は、リフレッシュアドレス（ＲＡＤＤ）の生成を行わせる制御信号をＲＡＤＤ生成回路２１８に出力すると共に、第３の信号Ｃをレイトライト制御回路２１４に出力する。この第３の信号Ｃは、レイトライト制御回路２１４に、リフレッシュの活性化を行わせる制御信号である。
【０１２５】
ＲＡＤＤ生成回路２１８は、リフレッシュアドレスの生成を示す制御信号をリフレッシュ制御回路２１６から受信する度にリフレッシュの対象となるアドレス（リフレッシュアドレスＲＡＤＤ）を生成してセレクタ２４０に出力する。
【０１２６】
リフレッシュは、メモリコアに対してワード線単位に順次行われるため、ＲＡＤＤ生成回路２１８は、前回のリフレッシュアドレスから１ワード線分インクリメントして今回のリフレッシュアドレスを生成する。
【０１２７】
レイトライト制御回路２１４は、リフレッシュ制御回路２１６から第３の信号Ｃを受信すると、リフレッシュを行わせるための制御信号をメモリコア１７０に出力すると共に、ＲＡＤＤ生成回路２１８からのアドレス（リフレッシュアドレス）を選択するようにセレクタ２４０に制御信号を出力する。
【０１２８】
セレクタ２４０は、ＲＡＤＤ生成回路２１８からのリフレッシュアドレスと、アドレス入力部１２０からのアドレスＡＤＤと、アドレスレジスタ１３２からのレイトライトアドレスＬＲＡとから１つを選択してメモリコア１７０に出力する。具体的には、レイトライト制御回路２１４から、レイトライト制御回路２１４からの制御信号がリフレッシュアドレスを選択することを示すときに、セレクタ２４０は、ＲＡＤＤ生成回路２１８からのリフレッシュアドレスを選択する。リードコマンドとライトコマンドが半導体記憶装置２００に入力された場合には、半導体記憶装置１００におけるセレクタ１４０と同様に、アドレス入力部１２０からのアドレスＡＤＤとアドレスレジスタ１３２からのレイトライトアドレスＬＲＡのいずれか一方を選択する。
【０１２９】
メモリコア１７０は、リフレッシュの実行を示す制御信号をレイトライト制御回路２１４から受信すると、セレクタ２４０からのリフレッシュアドレスに対応するワード線を選択して該ワード線上のメモリセルをリフレッシュする。これについては、外部からリフレッシュコマンドが入力された場合の動作と同様であるので、詳細な説明を省略する。
【０１３０】
図６は、半導体記憶装置２００における処理の流れを示すタイミングチャートの一例である。図６において、点線枠により表わされるワード線は、リフレッシュのために活性化されたメモリセルに接続されたワード線である。
【０１３１】
サイクルＴ１のライジングエッジ（タイミングｔ１）において、リードコマンドとリードアドレスＡ１が入力される。このとき、アドレスレジスタ１３２には、レイトライトアドレスＬＲＡ（Ａ０）が格納されており、データレジスタ１３４には、レイトライトデータＬＲＤ（Ｄ０Ｅ）が格納されているとする。
【０１３２】
半導体記憶装置２００は、サイクルＴ１において、リードアドレスＡ１に対応するワード線ＷＬ１を選択してワード線ＷＬ１上のメモリセルを活性化し、リードアドレスＡ１に対応するＥＣＣデータを読み出す。
【０１３３】
そして、サイクルＴ２で、半導体記憶装置２００は、サイクルＴ１で読み出したＥＣＣデータのＥＣＣデコードをし、３２ビットのリードデータＱ１を得る。
【０１３４】
次いで、半導体記憶装置２００は、サイクルＴ３で、リードデータＱ１を外部に出力する。
【０１３５】
また、サイクルＴ２のライジングエッジ（タイミングｔ２）で、リードコマンドとリードアドレスＡ２が入力される。
【０１３６】
半導体記憶装置２００は、サイクルＴ２において、リードアドレスＡ２に対応するワード線ＷＬ２を選択してワード線ＷＬ２上のメモリセルを活性化し、リードアドレスＡ２に対応するＥＣＣデータを読み出す。
【０１３７】
そして、サイクルＴ３で、半導体記憶装置２００は、サイクルＴ２で読み出したＥＣＣデータのＥＣＣデコードをし、３２ビットのリードデータＱ２を得る。
【０１３８】
次いで、半導体記憶装置２００は、サイクルＴ４で、リードデータＱ２を外部に出力する。
【０１３９】
サイクルＴ２において、リードアドレスＡ２に対応するリード動作が完了すると、ワード線ＷＬｎ上のメモリセルのリフレッシュが行われる。本実施の形態において、リフレッシュは、クロックＣＬＫと同期せず、例えば内部遅延などにより、リード動作に連続して実行されるようになっている。そのため、ワード線ＷＬｎ上のメモリセルのリフレッシュは、サイクルＴ２とサイクルＴ３に跨って実行され、遅くてもサイクルＴ３の前半で完了することができる。
【０１４０】
サイクルＴ３のライジングエッジ（タイミングｔ３）で、リードコマンドとリードアドレスＡ３が入力される。
【０１４１】
本実施の形態において、半導体記憶装置２００は、リフレッシュが開始されたサイクル（ここではサイクルＴ２）の次のサイクルのリードがリフレッシュの完了の直後に開始されるように、該リードの開始時間を所定時間遅れさせる。この所定時間は、リフレッシュにかかる時間に応じて設定される。
【０１４２】
そのため、ワード線ＷＬｎ上のメモリセルのリフレッシュがサイクルＴ３に跨るものの、リードアドレスＡ３に対応するメモリコア１７０へのリードは、サイクルＴ３で行うことができる。
【０１４３】
図６に示すように、サイクルＴ３において、半導体記憶装置２００は、リフレッシュの完了後、リードアドレスＡ３に対応するワード線ＷＬ３（図中実線の太線枠）を選択してワード線ＷＬ３上のメモリセルを活性化し、リードアドレスＡ３に対応するＥＣＣデータを読み出している。
【０１４４】
そのため、サイクルＴ４において、半導体記憶装置２００は、サイクルＴ３で読み出したＥＣＣデータのＥＣＣデコードをし、３２ビットのリードデータＱ３を得る。このリードデータＱ３は、サイクルＴ４の次のサイクルで外部に出力される。
【０１４５】
なお、サイクルＴ４のライジングエッジ（タイミングｔ４）で、ライトコマンド「ｗｒｉｔｅ」、ライトアドレスＡ４と、データ信号Ｄ４（ライトデータとマスク信号ＭＡＳＫ）が入力される。
【０１４６】
半導体記憶装置２００は、サイクルＴ４でダミーリードを行う。その後、次のサイクルで、レイトライトを行い、レイトライトレジスタ１３０に格納されたレイトライトアドレスＬＲＡ（Ａ０）に、レイトライトデータＬＲＤ（Ｄ０Ｅ）を書き込む。並行して、半導体記憶装置２００は、サイクルＴ４で行ったダミーリードにより読み出されたＥＣＣデータのデコードと、データセットの生成などを行う。これらの処理については、前述した通りであるため、ここで詳細を省略する。
【０１４７】
図７は、半導体記憶装置２００による処理の流れの別の一例を示す。この例の場合、リフレッシュは、ライトコマンドの後に実行されている。
【０１４８】
図７に示すように、リフレッシュの実行が開始されるまで、半導体記憶装置２００において、図６に示した処理と同様の処理が行われる。
【０１４９】
サイクルＴ３のライジングエッジ（タイミングｔ３）で、ライトコマンドとライトアドレス（Ａ３）、データ信号Ｄ３（ライトデータとマスク信号ＭＡＳＫ）が入力される。
【０１５０】
半導体記憶装置２００は、サイクルＴ３でダミーリードを行うが、このダミーリードの開始時間を、リフレッシュの完了後に遅れさせている。図７に示すように、ダミーリードのためのワード線ＷＬ３の選択は、ワード線ＷＬｎ上のメモリセルのリフレッシュの完了後になされている。
【０１５１】
その後、サイクルＴ４において、半導体記憶装置２００は、サイクルＴ３のダミーリードにより読み出したＥＣＣデータのＥＣＣデコードや、データセットの生成、レジスタ１３０に格納されたレイトライトデータＬＲＤ（Ｄ０Ｅ）のレイトライトを行う。以降の処理に関しても、説明を省略する。
【０１５２】
図６と図７は、リードコマンドに応じたリード動作の後にリフレッシュが実施された場合の例である。例えば、図６において、サイクルＴ３でリフレッシュが実施されず、サイクルＴ４におけるダミーリード（アドレスＡ４に対するリード）の後にリフレッシュが実施され、タイミングｔ５で別のリードコマンドが入力された場合、半導体記憶装置２００は、タイミングｔ５からのサイクルでこのリードコマンドに対応するリード動作の開始を所定時間遅れさせる。
【０１５３】
このように、本実施の形態の半導体記憶装置２００は、リフレッシュの開始をクロックＣＬＫに同期させず、リードコマンドに応じたリード動作及びダミーリードによるリード動作の完了後に開始させるようにすると共に、リフレッシュが開始されたサイクルの次のサイクルで行うリード動作（リードコマンドに応じたリード動作またはダミーリードによるリード動作）の開始を所定時間遅れさせる。こうすることにより、リフレッシュが実施される２サイクルに亘ってメモリコア１７０へ３回アクセスが可能であり、リフレッシュの後のリード動作の開始を、リフレッシュが完了したサイクルの次のサイクルに遅れさせる必要がない。
【０１５４】
＜第７の実施の形態＞
第７の実施の形態も半導体記憶装置である。この半導体記憶装置も、ＨＩＤＤＥＮ−ＲＥＦＲＥＳＨを実施するものであり、データの入出力がバースト仕様になっている。バースト仕様のため、本実施の形態の半導体記憶装置は、リフレッシュ後のリード動作の開始を遅れさせることをせず、リフレッシュ後のレイトライトの開始タイミングを遅れさせる。他の点に関しては、第６の実施の形態の半導体記憶装置２００と同様である。
【０１５５】
図８は、本実施の形態の半導体記憶装置における処理の流れを示すタイミングチャートの一例である。なお、バースト仕様として、この例においても、ＤＤＲ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ）で８ビットずつ４回連続入出力され、ライト時には、各回において４ビットがマスクされている。また、図８において、点線枠により表わされるワード線は、リフレッシュのために活性化されたメモリセルに接続されたワード線であり、実線の太線枠により表されるワード線は、レイトライトのうちの、開始タイミングが遅れさせられたレイトライトのために活性化されたメモリに接続されたワード線である。
【０１５６】
サイクルＴ１のライジングエッジ（タイミングｔ１）において、リードコマンドとリードアドレスＡ１が入力される。このとき、アドレスレジスタ１３２には、レイトライトアドレスＬＲＡ（Ａ０）が格納されており、データレジスタ１３４には、レイトライトデータＬＲＤ（Ｄ０Ｅ）が格納されているとする。
【０１５７】
本実施の形態の半導体記憶装置は、サイクルＴ１において、リードアドレスＡ１に対応するワード線ＷＬ１を選択してワード線ＷＬ１上のメモリセルを活性化し、リードアドレスＡ１に対応するＥＣＣデータを読み出す。
【０１５８】
リードアドレスＡ１に対応するリード動作が完了すると、ワード線ＷＬｎ上のメモリセルのリフレッシュが行われる。半導体記憶装置２００のときと同様に、リフレッシュは、クロックＣＬＫと同期せず、例えば内部遅延などにより、リード動作に連続して実行されるようになっている。
【０１５９】
サイクルＴ２で、本実施の形態の半導体記憶装置は、サイクルＴ１で読み出したＥＣＣデータのＥＣＣデコードをし、３２ビットのリードデータＱ１を得る。
【０１６０】
次いで、本実施の形態の半導体記憶装置は、サイクルＴ３〜Ｔ４で、リードデータＱ１を８ビットずつ４回出力する。
【０１６１】
また、サイクルＴ３のライジングエッジ（タイミングｔ３）で、ライトコマンド「ｗｒｉｔｅ」、ライトアドレスＡ２が入力される。また、データ信号Ｄ２（ライトデータとマスク信号ＭＡＳＫ）は、サイクルＴ３〜Ｔ４で４回に分けて入力される。
【０１６２】
本実施の形態の半導体記憶装置は、サイクルＴ３でダミーリードを行う。具体的には、ライトアドレスＡ２に対応するワード線ＷＬ２を選択して該ワード線ＷＬ２上のメモリセルを活性化し、ライトアドレスＡ２に対応するＥＣＣデータをメモリコア１７０から読み出す。
【０１６３】
サイクルＴ３において、ワード線ＷＬ２に対するリード動作（ダミーリード）が完了すると、ワード線（ＷＬｎ＋１）上のメモリセルのリフレッシュが行われる。前述した通り、このリフレッシュも、クロックＣＬＫに同期せず、ダミーリードに連続して実行されるようになっている。
【０１６４】
サイクルＴ４において、本実施の形態の半導体記憶装置は、レイトライトを行う。具体的には、アドレスレジスタ１３２に格納されているレイトライトアドレスＬＲＡ（Ａ０）に対応するワード線ＷＬ０（図中実線の太線枠）を選択して該ワード線ＷＬ０上のメモリを活性化し、データレジスタ１３４に格納されているレイトライトデータＬＲＤ（Ｄ０Ｅ）をメモリコア１７０に書込む。アドレスレジスタ１３２は、新たなレイトライトアドレスＬＲＡとして、アドレス「Ａ２」を格納する。
【０１６５】
並行して、本実施の形態の半導体記憶装置は、サイクルＴ３で読み出したＥＣＣデータのＥＣＣデコード（エラー訂正を含む）をすると共に、ＥＣＣデコードしたデータと、タイミングｔ３から入力されたデータ信号Ｄ２（ライトデータ／マスク信号ＭＡＳＫ）から、３２ビットのデータセットを作成する。
【０１６６】
次いで、本実施の形態の半導体記憶装置は、サイクルＴ４の次のサイクルにおいて、サイクルＴ４で生成したデータセットのＥＣＣエンコードをしてＥＣＣデータ（Ｄ２Ｅ）を得、このＥＣＣデータを新たなレイトライトデータＬＲＤとしてデータレジスタ１３４に格納する。
【０１６７】
図８から分かるように、この例の場合、ライトコマンドが入力されてからライト動作の完了まで、メモリコア１７０へのアクセスは、最大３回（ダミーリードの１回、リフレッシュの１回、レイトライトの１回）である。そのため、クロックＣＬＫの周波数が２００ＭＨｚであるとすれば、メモリコア１７０の動作周波数が３００ＭＨｚ以上である必要がある。
【０１６８】
ライトコマンドの入力からの２サイクル目に、レイトライトデータＬＲＤのメモリコア１７０へのライト（レイトライト）があり、その前にワード線（ＷＬｎ＋１）上のメモリセルのリフレッシュがあるため、２サイクル目のレイトライト（図８のサイクルＴ４におけるワード線ＷＬ０上のメモリセルへのライト）の開始タイミングを、サイクルＴ４のライジングエッジ（タイミングｔ４）から遅れさせるように制御する必要がある。
【０１６９】
クロックＣＬＫが２００ＭＨｚであり、メモリコア１７０の動作周波数が３００ＭＨｚである場合、ワード線（ＷＬｎ＋１）上のメモリセルのリフレッシュの開始がサイクルＴ３サイクルに食い込んでいることを考慮し、サイクルＴ４におけるレイトライトの開始を、タイミングｔ４から、メモリコア１７０の１周期の半分に相当する１．６５ｎｓ程度遅れさせればよい。
【０１７０】
このように、データの入力がバースト仕様となる本実施の形態の半導体記憶装置は、リフレッシュの開始をクロックＣＬＫに同期させず、リードコマンドに応じたリード動作及びダミーリードによるリード動作の完了後に開始させるようにすると共に、リフレッシュが開始されたサイクルの次のサイクルで行うレイトライトの開始を所定時間遅れさせる。こうすることにより、リフレッシュが実施される２サイクルに亘ってメモリコア１７０へ３回アクセスが可能であり、リフレッシュの後のレイトライト動作の開始を、リフレッシュが完了したサイクルの次のサイクルに遅れさせる必要がない。
【０１７１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１７２】
１００  半導体記憶装置
１１０  制御部
１１２  ＲＭＷ制御回路
１１４  レイトライト制御回路
１２０  アドレス入力部
１２２  データ入力部
１２４  データセット生成部
１２６  ＥＣＣエンコード部
１３０  レイトライトレジスタ
１３２  アドレスレジスタ
１３４  データレジスタ
１４０  セレクタ
１５０  データ出力部
１６０  ＥＣＣデコード部
１６１  比較器
１６２  マルチプレクサ
１６３  デコード実行部
１６４  マルチプレクサ
１６５  インバータ回路
１７０  メモリコア
２００  半導体記憶装置
２１０  制御部
２１２  ＲＭＷ制御回路
２１４  レイトライト制御回路
２１６  リフレッシュ制御回路
２１８  ＲＡＤＤ生成回路
２４０  セレクタ
ＡＤＤ  アドレス
ＣＬＫ  クロック
ＣＭＤ  コマンド
ＤＳ  データセット
ＥＣＳ  エラー訂正信号
ＨＣ、ＨＣ１  ハミングコード
ＨＲ  ヒットリード信号
ＬＲＡ  レイトライトアドレス
ＬＲＤ  レイトライトデータ
ＭＤ１、ＭＤ２  主データ
【図１】
2014049148.tif 000003
【図２】
2014049148.tif 000004
【図３】
2014049148.tif 000005
【図４】
2014049148.tif 000006
【図５】
2014049148.tif 000007
【図６】
2014049148.tif 000008
【図７】
2014049148.tif 000009
【図８】
2014049148.tif 000010
【図９】
2014049148.tif 000011