(57)【要約】【課題】データの衝突を起こすことなく、連続アクセスを高速に実行可能な半導体記憶装置を提供する。【解決手段】ライトデータが供給されるライトパス及びリードデータが供給されるリードパスを有する入出力回路１２０と、入出力回路１２０とメモリセルアレイ１０３とを接続するデータラインＷＬＩＮＥ，ＲＬＩＮＥとを備える。入出力回路１２０は、ライトパス上のライトデータをデータラインＷＬＩＮＥに供給するライトバッファ１１４と、データラインＲＬＩＮＥを介して供給されたリードデータをリードパスに供給するリードアンプ１０８と、ライトアドレスとリードアドレスとの一致を検出したことに応答してライトパス上のライトデータをリードパスに供給するバイパス回路とを備えている。これにより、データの衝突を回避することが可能となる。【選択図】図１
2010113765.tif 000002
【特許請求の範囲】
【請求項１】
複数のワード線と、複数のビット線と、前記ワード線及び前記ビット線の交点に配置された複数のメモリセルとを有するメモリセルアレイと、
前記メモリセルアレイに書き込むべきライトデータが供給されるライトパスと、前記メモリセルアレイから読み出されたリードデータが供給されるリードパスとを有する入出力回路と、
前記入出力回路と前記メモリセルアレイとを接続する第１及び第２のデータラインとを備え、
前記入出力回路は、
前記ライトパス上の前記ライトデータを前記第１のデータラインに供給するライトバッファと、
前記第２のデータラインを介して供給された前記リードデータを前記リードパスに供給するリードアンプと、
前記ライトデータを書き込むべきライトアドレスと前記リードデータを読み出すべきリードアドレスとの一致を検出する検出回路と、
前記検出回路によって一致が検出されたことに応答して、前記ライトパス上の前記ライトデータを前記リードパスに供給するバイパス回路と、をさらに含むことを特徴とする半導体記憶装置。
【請求項２】
前記入出力回路は、前記検出回路によって一致が検出されたことに応答して、前記リードアンプの活性化を禁止する第１の禁止回路をさらに含むことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記メモリセルアレイは、
対応する前記ビット線にそれぞれ接続された複数のセンスアンプと、
前記複数のビット線と前記第１のデータラインとをそれぞれ接続する複数の第１のカラムスイッチと、
前記複数のビット線と前記第２のデータラインとをそれぞれ接続する複数の第２のカラムスイッチと、
前記ライトアドレスに基づいて前記複数の第１のカラムスイッチのいずれかを活性化させる第１のカラム選択ドライバと、
前記リードアドレスに基づいて前記複数の第２のカラムスイッチのいずれかを活性化させる第２のカラム選択ドライバと、
前記検出回路によって一致が検出されたことに応答して、前記第２のカラムスイッチの活性化を禁止する第２の禁止回路と、をさらに備えることを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記第１のデータラインを介した前記ライトデータの書き込みは、第１のアクセス要求に応答した動作であり、
前記第２のデータラインを介した前記リードデータの読み出しは、前記第１のアクセス要求に続く第２のアクセス要求に応答した動作であることを特徴とする請求項１乃至３のいずれか一項に記載の半導体記憶装置。
【請求項５】
複数のワード線と、複数のビット線と、前記ワード線及び前記ビット線の交点に配置された複数のメモリセルとを有するメモリセルアレイと、
前記メモリセルアレイに書き込むべきライトデータが供給される第１及び第２のライトパスを有する入出力回路と、
前記入出力回路と前記メモリセルアレイとを接続する第１及び第２のデータラインとを備え、
前記入出力回路は、
前記第１のライトパス上の前記ライトデータを前記第１のデータラインに供給する第１のライトバッファと、
前記第２のライトパス上の前記ライトデータを前記第２のデータラインに供給する第２のライトバッファと、
前記第１のデータラインを介してライトデータを書き込むべき第１のライトアドレスと前記第２のデータラインを介してライトデータを書き込むべき第２のライトアドレスとの一致を検出する検出回路と、
前記検出回路によって一致が検出されたことに応答して、第１及び第２のライトバッファのいずれか一方の活性化を禁止する禁止回路と、をさらに含むことを特徴とする半導体記憶装置。
【請求項６】
前記入出力回路は、
前記メモリセルアレイから読み出されたリードデータが供給されるリードパスと、
前記第１又は第２のデータラインを介して供給された前記リードデータを前記リードパスに供給するリードアンプと、
前記第１又は第２のライトパス上の前記ライトデータを前記リードパスに供給するバイパス回路と、をさらに含むことを特徴とする請求項５に記載の半導体記憶装置。
【請求項７】
前記第１及び第２のデータラインがいずれも階層化構造を有していることを特徴とする請求項１乃至６のいずれか一項に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置に関し、特に、連続したアクセスが可能な半導体記憶装置に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）に代表される半導体記憶装置は、メモリセルアレイと入出力回路がＩ／Ｏラインを介して接続されることが一般的である。したがって、ライト動作時においては、Ｉ／Ｏラインを介して入出力回路からメモリセルアレイにライトデータを供給し、リード動作時においては、メモリセルアレイから読み出されたリードデータをＩ／Ｏラインを介して入出力回路に供給する。
【０００３】
図４１は、一般的なＤＲＡＭの主要部の構成を示す回路図である。
【０００４】
図４１に示すＤＲＡＭは、ワード線ＷＬ０，ＷＬ１・・・と、ビット線対ＢＬ０，ＢＬ１・・・と、ワード線とビット線の交点に配置されたメモリセルＭＣとを有するメモリセルアレイ１を備えている。各ビット線対ＢＬ０，ＢＬ１・・・には、それぞれセンスアンプ２が接続されている。各センスアンプ２は、それぞれ対応するカラムスイッチ５を介して、Ｉ／ＯラインＬＩＯに接続されている。カラムスイッチ５には、カラム選択ドライバ４の出力であるカラム選択信号ＹＳ０，ＹＳ１・・・がそれぞれ供給され、これによって、いずれか一つがオンする。
【０００５】
Ｉ／ＯラインＬＩＯは、相補の差動信号を伝送するための配線であり、入出力回路２０に接続されている。入出力回路２０は、ライトバスＷＢＵＳを介して供給されたライトデータをＩ／ＯラインＬＩＯに供給するライトバッファ１０と、Ｉ／ＯラインＬＩＯを介して供給されたリードデータをリードバスＲＢＵＳに供給するリードアンプ６とを備えている。
【０００６】
このような構成を有するＤＲＡＭの動作について説明する。
【０００７】
まず、ワードドライバ３によりワード線ＷＬ０，ＷＬ１・・・のいずれか、例えばワード線ＷＬ０を駆動すると、メモリセルＭＣに蓄えられている信号電荷が各ビット線対ＢＬ０，ＢＬ１・・・に読み出される。しかしながら、ビット線対ＢＬ０，ＢＬ１・・・に現れる信号量は微小であるため、これをセンスアンプ２によって増幅する。すると、ビット線対ＢＬ０，ＢＬ１・・・はフル振幅し、選択されているメモリセルＭＣはフルレベルに再書き込みされ、また増幅された信号はセンスアンプ２に保持される。
【０００８】
次に、カラム選択ドライバ４によっていずれかのカラム選択信号ＹＳ０，ＹＳ１・・・を活性化させ、これによっていずれかのカラムスイッチ５をオンさせる。これにより、いずれかのビット線対がＩ／ＯラインＬＩＯに接続される。
【０００９】
しかしながら、Ｉ／ＯラインＬＩＯに読み出された信号もまた微小信号である。このため、リード動作を行う場合には、Ｉ／ＯラインＬＩＯに読み出された信号をリードアンプ６によってさらに増幅し、保持回路７にラッチした後、トライステートバッファ８を介してリードバスＲＢＵＳから出力する。リードアンプ６、保持回路７及びトライステートバッファ８は、いずれも活性化信号ＲＡＥに同期して動作する。活性化信号ＲＡＥは、リード動作時におけるタイミング信号である。
【００１０】
一方、ライト動作を行う場合には、ライトバスＷＢＵＳを介して供給されるライトデータを保持回路９にラッチした後、ライトバッファ１０を介してＩ／ＯラインＬＩＯに供給する。保持回路９及びライトバッファ１０は、いずれも活性化信号ＷＢＥに同期して動作する。活性化信号ＷＢＥは、ライト動作時におけるタイミング信号である。Ｉ／ＯラインＬＩＯに供給されたライトデータは、オンしているカラムスイッチ５を介していずれか一対のビット線対に供給される。これにより、センスアンプ２にはライトデータが強制的に書き込まれ、これがメモリセルＭＣに書き込まれる。
【００１１】
次に、ライト動作とリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングについて説明する。
【００１２】
図４２は、同一アドレスに対してライト動作及びリード動作が連続して要求された場合の動作タイミングを示すタイミング図である。
【００１３】
まず、時刻ｔ１においてライト要求が発行されると、所定時間後、ライトバスＷＢＵＳにライトデータＤが供給される。そして、時刻ｔＷＢＥにおいて活性化信号ＷＢＥが活性化し、これによってＩ／ＯラインＬＩＯにライトデータＤが出力される。その後、カラム選択信号ＹＳ０が活性化し、これによって対応するビット線対ＢＬ０にライトデータＤが書き込まれる。次に、時刻ｔ２においてリード要求が発行されると、時刻ｔ１のライト要求によって書き込まれたデータＤがＩ／ＯラインＬＩＯに読み出される。Ｉ／ＯラインＬＩＯに有意の電位差が生じた後、時刻ｔＲＡＥにおいて活性化信号ＲＡＥが活性化し、これによってリードデータＤがリードバスＲＢＵＳに読み出される。
【００１４】
このように、１クロックサイクルでライト動作が完了する場合には、同一アドレスに対してライト動作及びリード動作が連続して要求された場合であっても、Ｉ／ＯラインＬＩＯやビット線上でデータの衝突が生じることはない。図示しないが、同一アドレスに対してリード動作及びライト動作が交互に連続して要求された場合、同一アドレスに対してライト動作が２回以上連続して要求された場合、同一アドレスに対してリード動作が２回以上連続して要求された場合においてもデータの衝突は生じず、正しく動作を行うことができる。つまり、１クロックサイクルでライト動作やリード動作が完了する場合には、いかなるアクセスが要求されたとしても正常な動作を行うことができる。このため、図４１に示したように、Ｉ／ＯラインＬＩＯを複数のセンスアンプ２によって共有することができ、Ｉ／ＯラインＬＩＯは文字通りインプット及びアウトプットの両方の役割を果たす。
【００１５】
しかしながら、近年はメモリデバイスの動作も複雑化してきており、メモリセルアレイに書き込む前に、符号化など複雑な演算が行われるケースが増加すると考えられる。このようなケースとしては、ＥＣＣ（Error Correcting Code）回路を内蔵したメモリデバイスが挙げられ、場合によっては、１クロックサイクルでライト動作を完了できないケースも考えられる。１クロックサイクルでライト動作を完了できない場合、ライト動作及びリード動作が連続して要求されると、ライト動作が、続くリード動作に食い込んでしまう。このような不具合についてタイミング図を用いてより詳細に説明する。
【００１６】
図４３は、１クロックサイクルでライト動作を完了できないメモリにおいて、異なるアドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【００１７】
まず、時刻ｔ１においてライト要求が発行されると、長い時間を要する演算が行われる。演算が完了すると、ライトバスＷＢＵＳにライトデータＤが供給される。そして、時刻ｔＷＢＥにおいて活性化信号ＷＢＥが活性化し、これによってＩ／ＯラインＬＩＯにライトデータＤ０が出力される。その後、カラム選択信号ＹＳ０が活性化し、これによって対応するビット線対ＢＬ０にライトデータＤが書き込まれる。次に、時刻ｔ２においてリード要求が発行されると、対応するカラム選択信号ＹＳ１が活性化し、Ｉ／ＯラインＬＩＯにリードデータＤ１が現れる。本例においては、時刻ｔ１におけるライト要求から時刻ｔＷＢＥにおける活性化信号ＷＢＥの活性化及びカラム選択信号ＹＳ０が活性化は、当然、演算時間分だけ遅延させられる。このため、ビット線対ＢＬ０にライトデータＤ０を書き込んでいる最中にカラム選択信号ＹＳ１が立ち上がり、ビット線対ＢＬ１にもライトデータＤ０を書き込むような形になるため、ビット線対ＢＬ１からのリードデータＤ１がＢＬ０へのライトデータＤ０の影響を受ける。仮に、図４３のようにビット線対ＢＬ１上のリードデータＤ１が反転に至らなくても、Ｉ／ＯラインＬＩＯはライトデータＤ０の影響を強く受ける。このため、時刻ｔ２のリード要求に相当して時刻ｔＲＡＥに活性化する活性化信号ＲＡＥによってリードバスＲＢＵＳに供給される値は、期待されるＤ１ではなくＤ０となってしまうだろう。つまり、誤ったデータが読み出されることになる。
【００１８】
図４４は、１クロックサイクルでライト動作を完了できないメモリにおいて、同一アドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【００１９】
ライト動作に関しては、図４３を用いて説明した動作と同様である。つまり、時刻ｔ１のライト要求に応答して、ライトデータＤはライトバスＷＢＵＳ、Ｉ／ＯラインＬＩＯ、ビット線対ＢＬ０へと順調に伝送される。しかしながら、ビット線対ＢＬ０に書き込んでいる途中に、時刻ｔ２のリード要求に応答して、カラム選択信号ＹＳ０が立ち上がってしまう。続く時刻ｔＲＡＥにおける活性化信号ＲＡＥの活性化がライトバッファ１０の活性期間（ＷＢＥ＝Ｈ）であれば、データＤを正しく読み出すことも可能かも知れないが、図４４に示す例のように、ライトバッファ１０の活性期間後（ＷＢＥ＝Ｌ）となってしまうと、振幅中のビット線対ＢＬ０がＩ／ＯラインＬＩＯに接続されるため、Ｉ／ＯラインＬＩＯの電位が引っ張られてしまう。このため、Ｉ／ＯラインＬＩＯ上の信号量が少ないと、時刻ｔＲＡＥにおいて活性化信号ＲＡＥが活性化すると、リードバスＲＢＵＳに正しい値を読み出せないであろう（Ｘ：不定）。
【００２０】
ここで、図４３に示したように、異なるアドレス間のWRITE to READ動作においてライト動作が次のリード動作に食い込む場合には、Ｉ／ＯラインＬＩＯをライト用のデータラインと、リード用のデータラインに分ければよい。そうすればライトデータとリードデータの衝突がなくなるからである。これに伴い、カラム選択信号ＹＳについても、ライト用のカラム選択信号ＹＳ１と、リード用のカラム選択信号に分ければよい。このようなＩ／Ｏ分離は、非特許文献１，２にも記載されている。
【特許文献１】特開２００７−４２１７６号公報
【特許文献２】特開２００４−８６９７０号公報
【非特許文献１】Y. Nakagome et al., Symposium on VLSI Circuits, Dig of Tech. Papers, pp. 17-18, 1990
【非特許文献２】「超LSIメモリ」、培風館、伊藤清男著1994年11月、ISBN4563036099、pp.165-167
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、Ｉ／Ｏ分離のみでは、図４４に示した同一アドレスのWRITE to READ動作における問題を解決することはできない。したがって、同一アドレスのWRITE to READ動作が要求された場合であっても正しく動作を行うためには、クロックサイクルを長く設定するしかなく、これが高速動作の妨げとなっていた。このため、同一アドレスのWRITE to READ動作を正しく行い、且つ、高速動作が可能な半導体記憶装置が望まれている。
【００２２】
また、上記の、開始するまでに時間がかかるライト動作を必要とする場合に関して、データ衝突の問題は、WRITE to READ動作だけでなく、WRITE to WRITE動作によっても生じうる。すなわち、演算などにより、開始するまでに時間がかかるライト動作と、通常通り、クロックに応じて速やかに開始できるライト動作の２種を有する場合である。この場合、開始するまでに時間がかかるライト動作が、次サイクル、すなわち、次サイクルのリード動作、及び、次サイクルのクロックに応じて速やかに開始できるライト動作に重なってくる問題が生じる。特に、開始するまでに時間がかかるライト動作と、クロックに応じて速やかに開始できるライト動作の重なりに関しては、Ｉ／Ｏラインをライト用のデータラインとリード用のデータラインに分けることでは対応できない。このようなことが生じる端的な例は、ライトサイクルが、クロックに応じて速やかに開始できるライト動作と、それに続く、開始するまでに時間がかかるライト動作の２種のライト動作によって構成される場合である。このため、異なるアドレス間、および、同一アドレスのWRITE to WRITE動作を正しく行い、且つ、高速動作が可能な半導体記憶装置も望まれている。
【課題を解決するための手段】
【００２３】
本発明による半導体記憶装置は、開始に長い時間を要するライト動作に続いて、速やかに、連続的に、リード動作やライト動作を実施できるよう、次の構造を特徴とする。WRITE to READ動作を対象とする場合は、複数のワード線、複数のビット線、ワード線及びビット線の交点に配置された複数のメモリセルを有するメモリセルアレイと、メモリセルアレイに書き込むべきライトデータが供給されるライトパス及びメモリセルアレイから読み出されたリードデータが供給されるリードパスとを有する入出力回路と、入出力回路とメモリセルアレイとを接続する第１及び第２のデータラインとを備え、入出力回路は、ライトパス上のライトデータを第１のデータラインに供給するライトバッファと、第２のデータラインを介して供給されたリードデータをリードパスに供給するリードアンプと、ライトデータを書き込むべきライトアドレスとリードデータを読み出すべきリードアドレスとの一致を検出する検出回路と、検出回路によって一致が検出されたことに応答して、ライトパス上のライトデータをリードパスに供給するバイパス回路と、をさらに含むことを特徴とする。
【００２４】
また、WRITE to WRITE動作を対象とする場合は、複数のワード線、複数のビット線、ワード線及びビット線の交点に配置された複数のメモリセルを有するメモリセルアレイと、メモリセルアレイに書き込むべきライトデータが供給される第１及び第２のライトパスを有する入出力回路と、入出力回路とメモリセルアレイとを接続する第１及び第２のデータラインとを備え、入出力回路は、第１のライトパス上のライトデータを第１のデータラインに供給する第１のライトバッファと、第２のライトパス上のライトデータを第２のデータラインに供給する第２のライトバッファと、第１のデータラインを介してライトデータを書き込むべき第１のライトアドレスと第２のデータラインを介してライトデータを書き込むべき第２のライトアドレスとの一致を検出する検出回路と、検出回路によって一致が検出されたことに応答して、第１及び第２のライトバッファのいずれか一方の活性化を禁止する禁止回路と、をさらに含むことを特徴とする。
【発明の効果】
【００２５】
本発明によれば、WRITE to READ動作を対象とする場合は、入出力回路とメモリセルアレイとが２系統のデータラインによって接続されていることから、１クロックサイクルでライト動作が完了しない場合であっても、ライト動作とリード動作を連続的に行うことが可能となる。しかも、また、ライトアドレスとリードアドレスが一致した場合に、ライトデータをそのままリードバスに供給するバイパス回路を備えていることから、同一アドレスのWRITE to READ動作が要求された場合、実際にリード動作を行うことなく、正しくリードデータを出力することが可能となる。
【００２６】
また、WRITE to WRITE動作を対象とする場合は、入出力回路とメモリセルアレイとが２系統のデータラインによって接続されていることから、１クロックサイクルでライト動作が完了しない場合であっても、そのライト動作と、通常のタイミングで開始できるライト動作を、連続的に行うことが可能となる。しかも、また、両ライトアドレスが一致した場合に、いずれか一方のライトを禁止する回路を備えていることから、同一アドレスのWRITE to WRITE動作が要求された場合、両ライトデータの衝突を防ぐことで、所望のデータを書き込むことが可能になる。
【発明を実施するための最良の形態】
【００２７】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
【００２８】
図１は、本発明の好ましい第１の実施形態による半導体記憶装置１００の主要部の構成を示す回路図である。特に限定されるものではないが、本実施形態による半導体記憶装置１００はＤＲＡＭである。
【００２９】
図１に示すように、本実施形態による半導体記憶装置１００は、ワード線ＷＬ０，ＷＬ１・・・と、ビット線対ＢＬ０，ＢＬ１・・・と、ワード線とビット線の交点に配置されたメモリセルＭＣとを有するメモリセルアレイ１０３を備えている。各ビット線対ＢＬ０，ＢＬ１・・・には、それぞれセンスアンプ１０２が接続されている。各センスアンプ１０２は、それぞれ対応するカラムスイッチ１０６を介して、リード用データラインＲＬＩＮＥに接続されているとともに、それぞれ対応するカラムスイッチ１０７を介して、ライト用データラインＷＬＩＮＥに接続されている。カラムスイッチ１０６には、リード用カラム選択ドライバ１０４の出力であるリード用カラム選択信号ＹＲ０，ＹＲ１・・・がそれぞれ供給され、これによってリード動作時においてはいずれか一つがオンする。一方、カラムスイッチ１０７には、ライト用カラム選択ドライバ１０５の出力であるライト用カラム選択信号ＹＷ０，ＹＷ１・・・がそれぞれ供給され、これによってライト動作時においてはいずれか一つがオンする。
【００３０】
リード用データラインＲＬＩＮＥは、相補のリードデータを伝送するための配線であり、入出力回路１２０に接続されている。また、ライト用データラインＷＬＩＮＥは、相補のライトデータを伝送するための配線であり、入出力回路１２０に接続されている。入出力回路１２０は、ライトバスＷＢＵＳを介して供給されたライトデータＷＤをライト用データラインＷＬＩＮＥに供給するライトバッファ１１４と、リード用データラインＲＬＩＮＥを介して供給されたリードデータＲＤをリードバスＲＢＵＳに供給するリードアンプ１０８とを備えている。
【００３１】
また、入出力回路１２０は、ライトデータＷＤを一時的に保持するレジスタ１１５と、リードアンプ１０８の出力とレジスタ１１５の出力のいずれかを選択するマルチプレクサ１１１をさらに備えている。マルチプレクサ１１１の選択は、後述する検出回路によって制御される。これらレジスタ１１５及びマルチプレクサ１１１は、ライトバスＷＢＵＳを介して供給されたライトデータをリードバスＲＢＵＳに供給するバイパス回路を構成する。
【００３２】
次に、本実施形態による半導体記憶装置１００の基本的な動作について説明する。
【００３３】
まず、リード動作が要求された場合、ワードドライバ１０１によりワード線ＷＬ０，ＷＬ１・・・のいずれか、例えばワード線ＷＬ０を駆動する。これにより、メモリセルＭＣに蓄えられている信号電荷が各ビット線対ＢＬ０，ＢＬ１・・・に読み出される。ビット線対ＢＬ０，ＢＬ１・・・に現れる信号量は微小であるため、これをセンスアンプ１０２によって増幅する。すると、ビット線対ＢＬ０，ＢＬ１・・・はフル振幅し、選択されているメモリセルＭＣはフルレベルに再書き込みされ、また増幅された信号はセンスアンプ１０２に保持される。
【００３４】
次に、リード用カラム選択ドライバ１０４によっていずれかのリード用カラム選択信号ＹＲ０，ＹＲ１・・・を活性化させ、これによっていずれかのカラムスイッチ１０６をオンさせる。これにより、いずれかのビット線対がリード用データラインＲＬＩＮＥに接続される。リード用データラインＲＬＩＮＥに読み出された信号もまた微小信号であることから、これをリードアンプ１０８によってさらに増幅し、保持回路１１０にラッチした後、マルチプレクサ１１１及びトライステートバッファ１１２を介してリードバスＲＢＵＳから出力する。
【００３５】
リードアンプ１０８及び保持回路１１０は、いずれも活性化信号ＲＡＥに同期して動作する。活性化信号ＲＡＥは、活性化信号ＲＡＥＰとアドレス遷移検出信号ＡＴとが入力されるＡＮＤゲート１０９の出力である。活性化信号ＲＡＥＰはリード動作時におけるタイミング信号であり、アドレス遷移検出信号ＡＴは後述する検出回路の出力信号である。また、マルチプレクサ１１１には、アドレス遷移検出信号ＡＴを遅延させた遅延アドレス遷移検出信号ＡＴＤが入力されており、これが活性化していない場合（通常のケース）においては、入力１側、つまり、実際のリードデータＲＤを選択する。これに対し、マルチプレクサ１１１は、遅延アドレス遷移検出信号ＡＴＤが活性化している場合（一致検出したケース）においては、入力０側、つまり、レジスタ１１５の出力を選択する。尚、トライステートバッファ１１２は、活性化信号ＲＡＥＰに同期して動作する。
【００３６】
一方、ライト動作を行う場合には、ライトバスＷＢＵＳを介して供給されるライトデータＷＤを保持回路１１３にラッチした後、ライトバッファ１１４を介してライト用データラインＷＬＩＮＥに供給する。保持回路１１３及びライトバッファ１１４は、いずれも活性化信号ＷＢＥに同期して動作する。活性化信号ＷＢＥは、ライト動作時におけるタイミング信号である。ライト用データラインＷＬＩＮＥに供給されたライトデータＷＤは、ライト用カラム選択ドライバ１０５の制御により、オンしているカラムスイッチ１０７を介していずれか一対のビット線対に供給される。これにより、センスアンプ１０２にはライトデータＷＤが強制的に書き込まれ、これがメモリセルＭＣに書き込まれる。
【００３７】
また、保持回路１１３にラッチされたライトデータＷＤは、レジスタ１１５にも供給される。レジスタ１１５は、活性化信号ＲＡＥＰに同期して動作する回路であり、上述の通り、その出力はマルチプレクサ１１１の入力０に供給されている。
【００３８】
図２は、アドレス遷移検出信号ＡＴを生成するための検出回路１３０の回路図である。
【００３９】
図２に示すように、検出回路１３０には、現在の選択アドレスＩＡ［ｔ］、現在のリード状態フラグＲＥ［ｔ］及び現在のライト状態フラグＷＲ［ｔ］が供給される。ここで「状態フラグ」とは当該サイクルがその状態であるとき"Ｈ"、それ以外は"Ｌ"となる信号である。
【００４０】
現在の選択アドレスＩＡ［ｔ］は、そのままＥＸＯＲゲート１３１に供給されるとともに、ＤＱラッチ１３２に供給される。ＤＱラッチ１３２は内部クロックに同期して、１サイクル後に相当する内部クロックで、現在の選択アドレスＩＡ［ｔ］をラッチしながら出力する回路であり、したがってその出力は、１サイクル前の選択アドレスを示すＩＡ［ｔ−１］となる。詳しくは次の通りである。もし、ＤＱラッチが、内部クロックがＨの期間にデータをＤからＱに伝達し、内部クロックがＬの期間に、Ｑで、そのデータをラッチするタイプ、いわゆる、ラッチ機能付ゲートであれば、ＤＱラッチに供給される内部クロックは、選択アドレスＩＡ［ｔ］を出力する内部クロックより、内部クロックＨ期間分速い内部クロックであり、これにより、データの貫通を防ぎながら、１サイクル前のデータを現サイクルに乗せることが可能になる。もし、ＤＱラッチが、前記ラッチ機能付ゲートをマスタースレイブに接続した、いわゆる、ＤＱフリップフロップであれば、ＤＱラッチに供給される内部クロックは、選択アドレスＩＡ［ｔ］を出力する内部クロックと同じクロックでよく、容易に、１サイクル前のデータを現サイクルに乗せることができる。１サイクル前の選択アドレスを示すＩＡ［ｔ−１］は、ＥＸＯＲゲート１３１に供給される。したがって、ＥＸＯＲゲート１３１は、同じ選択アドレスが２回連続して入力された場合に、その出力ＸをＬとする。それ以外のケースでは、出力Ｘはハイレベルに保たれる。
【００４１】
また、現在のリード状態フラグＲＥ［ｔ］は、そのままＮＡＮＤゲート１３３に供給され、現在のライト状態フラグＷＲ［ｔ］はＤＱラッチ１３４に供給される。ＤＱラッチ１３４も、ＤＱラッチ１３２と同様な動作を行い、は内部クロックに同期して、１サイクル後に相当する内部クロックで、現在のライト状態フラグＷＲ［ｔ］をラッチする回路であり、したがってその出力は、１サイクル前のライト状態フラグＷＲ［ｔ−１］となる。１サイクル前のライト状態フラグＷＲ［ｔ−１］は、ＮＡＮＤゲート１３３に供給される。したがって、ＮＡＮＤゲート１３３は、ライト動作とリード動作が連続して要求された場合（WRITE to READ動作）に、その出力ＹをＬとする。それ以外のケースでは、出力Ｙはハイレベルに保たれる。
【００４２】
出力Ｘ，ＹはＯＲゲート１３５に供給される。したがって、WRITE to READ動作において同じ選択アドレスが入力された場合に限り、アドレス遷移検出信号ＡＴの論理レベルはＬとなる。それ以外のケースでは、アドレス遷移検出信号ＡＴはハイレベルに保たれる。
【００４３】
アドレス遷移検出信号ＡＴは、遅延回路１３６に供給される。遅延回路１３６の出力は遅延アドレス遷移検出信号ＡＴＤとなる。遅延アドレス遷移検出信号ＡＴＤは、タイミングを取るためにアドレス遷移検出信号ＡＴを遅らせた信号である。
【００４４】
ここで、アドレス遷移検出信号ＡＴがＬレベルである場合の動作について説明する。上述の通り、アドレス遷移検出信号ＡＴがＬレベルとなるのは、前サイクルがライト動作、現サイクルがリード動作であって、前サイクルと現サイクルのアドレスが一致しているケースである。
【００４５】
選択信号ＡＴは図１に示すリード用カラム選択ドライバ１０４に共通に供給されている。このため、選択信号ＡＴがＬレベルであると、現サイクルがリード動作であるにもかかわらず、リード用カラム選択ドライバ１０４の出力は全てローレベルに固定される。これにより、リード用のカラム選択信号ＹＲは全く活性化しないため、カラムスイッチ１０６は全てオフ状態となる。したがってセンスアンプ１０２に読み出されたデータは放置される。実際は、直前のサイクルでライト動作が行われているため、センスアンプ１０２は書き込み動作を継続しており、その書き込みが邪魔されること無く続く。また、ＡＮＤゲート１０９によって活性化信号ＲＡＥＰが遮断されるため、リードアンプ１０８は増幅動作を行わない。したがって、リードアンプ１０８にて電流消費は生じない。また、保持回路１１０も特に動作しない。保持回路１１０に保持されているデータは、前回のリード動作で読み出されたデータなど、読み出す必要のないデータである。
【００４６】
一方、レジスタ１１５は、活性化信号ＲＡＥＰを受けて、直前のライトサイクルで書き込んだデータＷＤを取り込み、信号線ＨＤＡＴＡに保持している。今説明している動作は、「WRITE to READ動作で、かつ、リードサイクルのアドレスがライトサイクルと同一」なので、信号線ＨＤＡＴＡに保持されている値が読み出したいデータであるはずである。そして、マルチプレクサ１１１にて信号線ＨＤＡＴＡに保持されている値が選択され、信号線ＲＢＵＳＰに出力される。続くトライステートバッファ１１２も活性化信号ＲＡＥＰで活性しているため、リードバスＲＢＵＳにはライトデータＷＤがそのまま返されることになる。
【００４７】
尚、リード動作の際に動作する、保持回路１１０、保持回路１１５、マルチプレクサ１１１、トライステートバッファ１１２は、遅延アドレス遷移検出信号ＡＴＤが活性化信号ＲＡＥＰと同タイミングであることも考慮すると、いずれも活性化信号ＲＡＥＰに同期して動くので、保持回路１１０と保持回路１１５は、ＲＡＥＰ＝"Ｈ"の期間のみ保持するタイプでも良いが、本明細書ではDQ-FFのように1サイクル保持するタイプを用いて説明する。また、1サイクル保持するタイプの方が、信号線ＲＢＵＳＰなどに保持されているデータを次サイクルまで持ち越すこともでき、演算の自由度も上がると考えられる。
【００４８】
次に、ライト動作とリード動作が連続して要求された場合（WRITE to READ動作）の動作について、タイミング図を用いて説明する。
【００４９】
図３は、異なるアドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【００５０】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、演算のために遅れてライトバスＷＢＵＳにライトデータＤ０が供給される。そして、その遅延を見越した時刻ｔＷＢＥにおいて活性化信号ＷＢＥが活性化し、これによって保持回路１１３にライトデータＤ０が取り込まれ、ライト用データラインＷＬＩＮＥに出力される。その後、ライト用のカラム選択信号ＹＷ０が活性化し、これによって対応するビット線対ＢＬ０にライトデータＤ０が書き込まれる。
【００５１】
次に、時刻ｔ２においてビット線対ＢＬ１に相当するアドレスを指定してリード要求が発行されるが、時刻ｔ１におけるライト動作とはアドレスが異なるため、READ to WRITE動作であっても、アドレス遷移検出信号ＡＴは"Ｈ"である。このため、ライト用のカラム選択信号ＹＷ０が活性化している最中に、リード用のカラム選択信号ＹＲ１が活性化する。このとき、ＹＲ１で選択されるビット線対はＢＬ１であり、ＹＷ０で選択されているビット線対ＢＬ０とは異なるため、データの衝突は生じない。
【００５２】
ビット線対ＢＬ１のデータＤ１は、リード用データラインＲＬＩＮＥに読み出されるが、ここでも、先のライト要求により書き込みが行われているライト用データラインＷＬＩＮＥとは別のデータラインであるため、データの衝突はない。ここで、ＡＴ＝"Ｈ"のため、時刻ｔＲＡＥで活性化信号ＲＡＥＰが立ち上がると、ほぼ同時に活性化信号ＲＡＥも立ち上がる。これにより、リードアンプ１０８が活性化され、リードデータD1が保持回路１１０に保持される。一方、活性化信号ＲＡＥＰ立ち上がりを受けて、レジスタ１１５に保持されている直前のライトデータＤ０は信号線ＨＤＡＴＡに転送されるが、遅延アドレス遷移検出信号ＡＴＤも"Ｈ"であるため、マルチプレクサ１１１は入力１側を選択し、リードデータＤ１がリードバスＲＢＵＳに読み出される。
【００５３】
このように所望のデータの書き込みと読み出しが値の衝突なく行える。
【００５４】
図４は、同一アドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【００５５】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、演算のために遅れてライトバスＷＢＵＳにライトデータＤが供給される。そして、その遅延を見越した時刻ｔＷＢＥにおいて活性化信号ＷＢＥが活性化し、これによって保持回路１１３にライトデータＤが取り込まれ、ライト用データラインＷＬＩＮＥに出力される。その後、ライト用のカラム選択信号ＹＷ０が活性化し、これによって対応するビット線対ＢＬ０にライトデータＤが書き込まれる。ここまでは、図３に示した動作と同様である。
【００５６】
次に、時刻ｔ２においてビット線対ＢＬ０に相当するアドレスを指定してリード要求が発行されると、同一アドレスに対するREAD to WRITE動作が成立することから、アドレス遷移検出信号ＡＴは"Ｌ"になる。このため、通常の動作であれば活性化するリード用のカラム選択信号ＹＲ０は活性化しない。このときビット線対ＢＬ０は、先のライト要求によりデータＤを書き込んでいる最中のため、信号量もまだ小さい状態にある。このため、これを途中で読み出すと、データＤが破壊される可能性があるが、ＡＴ＝"Ｌ"であることから、このデータＤが読み出されることはない。したがって、書き込み最中のビット線対ＢＬ０は、負荷の変化なども特になく、安定した書き込みが続く。
【００５７】
続いて、時刻ｔＲＡＥにおいて活性化信号ＲＡＥＰが立ち上がるが、ＡＴ＝"Ｌ"のため活性化信号ＲＡＥは立ち上がらず、リードアンプ１０８も活性化されない。一方、活性化信号ＲＡＥＰに同期して、レジスタ１１５にライトデータＷＤが保持され、これが信号線ＨＤＡＴＡに転送される。そして、遅延アドレス遷移検出信号ＡＴＤも"Ｌ"であるため、マルチプレクサ１１１は入力０側を選択し、ライトデータＷＤがそのままリードデータＤとしてリードバスＲＢＵＳに読み出される。
【００５８】
このように、同一アドレスに対するWRITE to READ動作であっても、所望のデータの書き込みと読み出しが値の衝突なく行うことが可能である。
【００５９】
以上説明したように、本実施形態による半導体記憶装置１００は、入出力回路１２０とメモリセルアレイ１０３がリード用データラインＲＬＩＮＥとライト用データラインＷＬＩＮＥからなる２系統のデータラインによって接続されていることから、ライト動作に時間がかかる場合であっても、１クロックサイクルでWRITE to READ動作を行うことが可能となる。しかも、ライトデータをそのままリードバスに返すバイパス回路を備えていることから、同一アドレスのWRITE to READ動作が要求された場合は、実際にリード動作を行うことなく、正しくリードデータを出力することが可能となることから、同一アドレスに対するWRITE to READ動作がクロックサイクルをリミットすることもない。
【００６０】
ここまで述べた構成では、ライト動作時に行われる「演算」はアレイ動作を伴わないものであったが、これがメモリセルアレイ１０３に対するリード動作を伴うものであっても構わない。つまり、ライト要求に対してまずリード動作を行い、続いてライト動作を行うものであっても構わない。ただし、この場合、上述したWRITE to READ動作のみならず、WRITE to WRITE動作においても、内部的にWRITE to READ動作と同様な問題が生じる。すなわち、WRITE時に、まずリード動作を行い、続いてライト動作を行うことを考えると、次のWRITE時のリード動作に対して、前のWRITE時のライト動作が食い込み、これまで述べてきたのと同様な問題が生じる、。この問題も、本発明によって解決することができる。
【００６１】
図５は、WRITE to READ動作及びWRITE to WRITE動作におけるアドレスの一致を検出可能な検出回路１３０ａの回路図である。図５において、図２に示した検出回路１３０と同一の要素には同一の符号を付し、重複する説明は省略する。
【００６２】
図５に示す検出回路１３０ａは、現在のリード状態フラグＲＥ［ｔ］と、ＤＱラッチ１４２によって生成される１サイクル前のライト状態フラグＷＲ［ｔ−１］が供給されるＡＮＤゲート１４１を備える。したがって、ＡＮＤゲート１４１は、ライト動作とリード動作が連続して要求された場合（WRITE to READ動作）に、その出力ＹをＨとする。それ以外のケースでは、出力ＹはＬレベルに保たれる。
【００６３】
さらに、図５に示す検出回路１３０ａは、現在のライト状態フラグＷＲ［ｔ］と、ＤＱラッチ１４４によって生成される１サイクル前のライト状態フラグＷＲ［ｔ−１］が供給されるＡＮＤゲート１４３を備える。したがって、ＡＮＤゲート１４３は、ライト動作が２回連続して要求された場合（WRITE to WRITE動作）に、その出力ＺをＨとする。それ以外のケースでは、出力ＹはＬレベルに保たれる。
【００６４】
出力Ｙ，ＺはＮＯＲゲート１４５に供給され、ＮＯＲゲート１４５の出力ＷとＥＸＯＲゲート１３１の出力ＸはＯＲゲート１４６に供給される。したがって、WRITE to READ動作において同じ選択アドレスが入力された場合、並びに、WRITE to WRITE動作において同じ選択アドレスが入力された場合にアドレス遷移検出信号ＡＴの論理レベルがＬとなる。
【００６５】
このようにアドレス遷移検出信号ＡＴの発生回路は、ライト動作時に行う演算の種類によって変更されうる。ここに述べた、演算にリード動作を伴う実例は、別の実施例で詳しく述べる。また、本実施形態に示した制御では、演算時間だけアレイに対する書き込みが遅れるので、ライトコマンド後にプリチャージコマンド投入可能時刻を決めるスペックtDPL(tWR)に対して、動作が厳しくなることにも言及しておく。
【００６６】
次に、本発明の好ましい第２の実施形態について説明する。
【００６７】
上述した第１の実施形態は、メモリセルアレイ１０３へのライト動作を、続くリードサイクルに完全に重なるまで遅らせて動作させることも可能である。この場合、メモリセルアレイ１０３へのライト動作の要求の受け入れはクロック同期ではあるが、実際のライト動作を開始するまでの遅延部分はクロックに対して非同期であり、演算時間に相当する遅延線を経由してアクセスする必要があるため、遅延線の設計などがやや複雑になる。
【００６８】
これに対し、本実施形態は、メモリセルアレイ１０３へのライト動作によるアクセスを純粋なクロック同期とすべく、次サイクルに同期して実施する。これにより、実効的なライトサイクルは、自分のサイクルと、次のサイクルからなる２サイクル分であるため、演算に１サイクル、アレイアクセスに１サイクルとクロック同期の設計ができ、設計が容易化される。ただし、スペックtDPL(tWR)は１サイクルのレイテンシを要することを言及しておく。アドレス遷移検出信号ＡＴの発生回路は、演算がアレイアクセスを伴わない場合は図２のタイプを、演算がリード動作を伴う場合は図５のタイプを用いる。本実施形態による半導体記憶装置の主要部の構成については、図１に示した回路構成をそのまま用いることができる。
【００６９】
図６は、メモリセルアレイ１０３へのライト動作を、続くリードサイクルに完全に重ねて動作させる場合の動作タイミングを示すタイミング図であり、同一アドレスに対してWRITE to READ動作が要求された場合を示している。
【００７０】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト動作を要求すると、ライトバスＷＢＵＳには、１サイクル後の時刻ｔ２に同期して、データＤが書き込まれる。ライトバッファ起動信号ＷＢＥも時刻ｔ２に同期して、時刻ｔＷＢＥに立ち上がる。これにより、保持回路１１３にデータＤが取り込まれ、ライトバッファ１１４によってライト用データラインＷＬＩＮＥにデータＤが供給される。続いてライト用のカラム選択信号ＹＷ０が立ち上がり、ビット線対ＢＬ０にデータＤが書き込まれる。
【００７１】
一方、時刻ｔ２には、ビット線対ＢＬ０に相当するアドレスを指定してリード動作が要求されている。つまり、ライトアドレスとリードアドレスが同一であることから、アドレス遷移検出信号ＡＴは"Ｌ"となる。このため、リード用のカラム選択信号ＹＲ０は非活性状態に保たれる。このときビット線対ＢＬ０は、先のライト要求によりデータＤを書き込んでいる最中のため、信号量もまだ小さい状態にある。このため、これを途中で読み出すと、データＤが破壊される可能性があるが、ＡＴ＝"Ｌ"であることから、このデータＤが読み出されることはない。したがって、書き込み最中のビット線対ＢＬ０は、負荷の変化なども特になく、安定した書き込みが続く。つまり、通常であればリード用データラインＲＬＩＮＥに読み出されるリードデータは無い。続いて、時刻ｔＲＡＥに活性化信号ＲＡＥＰが立ち上がるが、ＡＴ＝"Ｌ"のため活性化信号ＲＡＥは立ち上がらず、このためリードアンプ１０８も活性化されない。一方、活性化信号ＲＡＥＰに同期して、レジスタ１１５にライトデータＤが保持され、これが信号線ＨＤＡＴＡに転送される。そして、遅延アドレス遷移検出信号ＡＴＤも"Ｌ"であるため、マルチプレクサ１１１は入力０側を選択し、ライトデータＤがそのままリードデータＤとしてリードバスＲＢＵＳに読み出される。
【００７２】
尚、本実施形態においても、異なるアドレスに対するWRITE to READ動作が問題なく実行できることは言うまでもない。
【００７３】
ところで、近年のＤＲＡＭは、ライトコマンド投入からアレイへのライト動作開始までの期間に、所定のレイテンシが追加されることがある。例えばＤＤＲ型のＤＲＡＭでは、当該サイクルでＤＱＳが入力され始め、次サイクルでＤＱＳに同期してデータを取り込み、さらに次サイクルでデータをＣＬＫに乗せるので、合計２サイクルのレイテンシを持つ。この２サイクルの間に演算をすませ、ライト動作は正規のレイテンシで動作させれば、スペックtDPL(tWR)も犯されない。このような構成のうち、演算がリード動作を伴う場合は、本実施形態で説明した構成を１サイクル前倒しで適用すれば良い。これを図７を用いて説明する。
【００７４】
図７は、演算がリード動作を伴う場合の動作タイミングを説明するための図であり、（ａ）は単独のライト動作、（ｂ）はWRITE to READ動作、（ｃ）はWRITE to WRITE動作を示している。
【００７５】
図７（ａ）に示すライト動作では、時刻ｔ１に発行されたライトコマンドに対し、アレイに対する正規のライト要求は時刻ｔ３に開始されるが、実際は時刻ｔ２でリードを行い、時刻ｔ３でライトを行う。
【００７６】
図７（ｂ）に示すWRITE to READ動作では、時刻ｔ１に発行されたライトコマンドに対し、時刻ｔ２でリード、時刻ｔ３でライトを行う。その後、時刻ｔ４にリードコマンドが発行されている。
【００７７】
図７（ｃ）に示すWRITE to WRITE動作では、時刻ｔ１に発行されたライトコマンドに対し、時刻ｔ２でリード、時刻ｔ３でライトを行う。一方、時刻ｔ２に発行されたライトコマンドに対し、時刻ｔ３でリード、時刻ｔ４でライトを行う。このため、時刻ｔ２ではリード動作のみが行われ、時刻ｔ３ではライト動作とリード動作が同時に行われ、時刻ｔ４ではライト動作のみが行われる。
【００７８】
したがって、ライト動作とリード動作との重複は、図７（ｂ）に示すWRITE to READ動作では生じず、図７（ｃ）に示すWRITE to WRITEでのみで生じる。そのため、アドレス遷移検出信号ＡＴの発生回路は、図８に示す回路を用いる必要がある。図８に示す検出回路１３０ｂは、図２に示した検出回路１３０と基本的に同じ回路構成を有しているが、ＮＡＮＤゲート１３３の一端に現在のライト状態フラグＷＲ［ｔ］が入力される点において異なる。これにより、アドレス遷移検出信号ＡＴは、WRITE to WRITE動作の時だけ"Ｌ"となる状態信号Ｙと、連続して同一アドレスが入力された場合にだけ"Ｌ"となる状態信号Ｘの論理和で得られるため、WRITE to WRITE動作で、且つ、両ライトサイクルのアドレスが同一である場合においてのみＡＴ＝"Ｌ"となる。
【００７９】
このように、本実施形態によれば、ライト要求がされると実際にメモリセルアレイ１０３に対してライト動作を行う前にリード動作を行う必要があり、且つ、これらの動作を純粋なクロック同期とする半導体記憶装置において、同一アドレスのWRITE to WRITE動作が要求された場合は、実際にリード動作を行うことなく、続くライト動作を正しく行うことが可能となる。
【００８０】
次に、本発明の好ましい第３の実施形態について説明する。
【００８１】
上述した第２の実施形態のように、同一サイクルでライト動作とリード動作が可能であれば、両動作とも１クロックサイクルに収まるような場合は、ライト要求とリード要求を同時に受け付けることもできる。本実施形態は、これを考慮した実施形態である。本実施形態による半導体記憶装置の主要部の構成については、図１に示した回路構成をそのまま用いることができる。
【００８２】
本実施形態においては、ライト動作とリード動作が重なるのは、ライト要求とリード要求を同時に受け付けた時である。したがって、本実施形態においては、アドレス遷移検出信号ＡＴの発生回路は、図９に示す回路を用いる必要がある。図９に示す検出回路１３０ｃは、図２に示した検出回路１３０からＤＱラッチ１３２，１３４を削除した回路構成を有しており、ＥＸＯＲゲート１３１には現在のリード用アドレスＩＡＲ［ｔ］と現在のライト用アドレスＩＡＷ［ｔ］が供給され、ＮＡＮＤゲート１３３には現在のリード状態フラグＲＥ［ｔ］と現在のライト状態フラグＷＲ［ｔ］が入力される。これにより、アドレス遷移検出信号ＡＴは、ライト要求とリード要求が同時に発行され、且つ、リードアドレスとライトアドレスが同一である場合にだけ"Ｌ"となる。
【００８３】
図１０は、本実施形態において、ライト要求とリード要求が同時に発行され、且つ、リードアドレスとライトアドレスが同一である場合の動作タイミングを示すタイミング図である。
【００８４】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト動作を要求すると、ライトバスＷＢＵＳには、時刻ｔ１に同期してデータＤが書き込まれる。ライトバッファ起動信号ＷＢＥも時刻ｔ１に同期して、時刻ｔＷＢＥに立ち上がる。これにより、保持回路１１３にデータＤが取り込まれ、ライトバッファ１１４によってライト用データラインＷＬＩＮＥにデータＤが供給される。続いてライト用のカラム選択信号ＹＷ０が立ち上がり、ビット線対ＢＬ０にデータＤが書き込まれる。
【００８５】
一方、時刻ｔ１においては、ビット線対ＢＬ０に相当するアドレスを指定してリード動作も要求されている。つまり、ライトアドレスとリードアドレスが同一であることから、アドレス遷移検出信号ＡＴは"Ｌ"となる。このため、リード用のカラム選択信号ＹＲ０は非活性状態に保たれる。このときビット線対ＢＬ０は、先のライト要求によりデータＤを書き込んでいる最中のため、信号量もまだ小さい状態にある。このため、これを途中で読み出すと、データＤが破壊される可能性があるが、ＡＴ＝"Ｌ"であることから、このデータＤが読み出されることはない。したがって、書き込み最中のビット線対ＢＬ０は、負荷の変化なども特になく、安定した書き込みが続く。つまり、通常であればリード用データラインＲＬＩＮＥに読み出されるリードデータは無い。続いて、時刻ｔＲＡＥに活性化信号ＲＡＥＰが立ち上がるが、ＡＴ＝"Ｌ"のため活性化信号ＲＡＥは立ち上がらず、このためリードアンプ１０８も活性化されない。一方、活性化信号ＲＡＥＰに同期して、レジスタ１１５にライトデータＤが保持され、これが信号線ＨＤＡＴＡに転送される。そして、遅延アドレス遷移検出信号ＡＴＤも"Ｌ"であるため、マルチプレクサ１１１は入力０側を選択し、ライトデータＤがそのままリードデータＤとしてリードバスＲＢＵＳに読み出される。
【００８６】
尚、本実施形態においても、異なるアドレスに対するWRITE to READ動作が問題なく実行できることは言うまでもない。
【００８７】
本実施形態のように、ライト要求とリード要求が同時に行われる可能性のある半導体記憶装置としては、デュアルポートメモリが挙げられる。本発明をデュアルポートメモリに適用した場合のより具体的な実施形態については後述するが、本実施形態の特徴は、同一アドレスに対するライト要求とリード要求があった場合、ライト要求に対しては実際にライト動作を行う一方、リード要求に対しては実際にリード動作を行うこと無く、ライトデータをそのままリードデータとして返していることである。
【００８８】
次に、本発明の好ましい第４の実施形態について説明する。
【００８９】
上述した第３の実施形態は、同一アドレスに対するライト要求とリード要求があった場合、ライト要求に対しては実際にライト動作を行う一方、リード要求に対しては実際にリード動作を行うこと無く、ライトデータをそのままリードデータとして返している。これに対し、本実施形態では、同一アドレスに対するライト要求とリード要求があった場合、リード要求に対して実際にリード動作を行い、その後、ライト要求に対して実際にライト動作を行う。本実施形態による半導体記憶装置の主要部の構成については、図１に示した回路構成をそのまま用いることができる。
【００９０】
このような場合、リード要求に応じた活性化信号ＲＡＥＰに対して、ライトバッファ活性信号ＷＢＥの活性化を遅らせる必要があり、結果としてライト動作が次サイクルに食い込む形となる。そのため、第１の実施形態と同様の対策が必要となる。本実施形態においては、アドレス遷移検出信号ＡＴの発生回路は、図１１に示す回路を用いる必要がある。図１１に示す検出回路１３０ｄは、図９に示した検出回路１３０ｃにＤＱラッチ１５１，１５２を追加した回路構成を有している。これにより、ＥＸＯＲゲート１３１には現在のリード用アドレスＩＡＲ［ｔ］と１サイクル前のライト用アドレスＩＡＷ［ｔ−１］が供給され、ＮＡＮＤゲート１３３には現在のリード状態フラグＲＥ［ｔ］と１サイクル前のライト状態フラグＷＲ［ｔ−１］が入力される。これにより、アドレス遷移検出信号ＡＴは、ライト要求の次のサイクルでリード要求が発行され、且つ、リードアドレスとライトアドレスが同一である場合にだけ"Ｌ"となる。
【００９１】
図１２は、本実施形態において、ライト要求とリード要求の同時発行が連続的に行われ、且つ、リードアドレスとライトアドレスが同一である場合の動作タイミングを示すタイミング図である。
【００９２】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してリード動作を要求すると、ＡＴ＝"Ｈ"であることから、リード用のカラム選択信号ＹＲ０が活性化し、ビット線対ＢＬ０からリードデータＲ１が読み出され、リード用データラインＲＬＩＮＥに供給される。続いて、時刻ｔ１に対応する時刻ｔＲＡＥ１に活性化信号ＲＡＥＰが立ち上がり、ＡＴ＝"Ｈ"のため活性化信号ＲＡＥも立ち上がる。これにより、データＲ１リードアンプ１０８によって増幅され、保持回路１１０に保持される。そして、マルチプレクサ１１１は入力１側を選択するため、リードデータＲ１はマルチプレクサ１１１を介してリードバスＲＢＵＳに出力される。
【００９３】
一方、時刻ｔ１にはビット線対ＢＬ０に相当するアドレスを指定してライト動作も要求されており、ライトバスＷＢＵＳには、時刻ｔ１に同期して、データＷ１が書き込まれる。ライトバッファ起動信号ＷＢＥは時刻ｔＲＡＥ１よりも遅い時刻ｔＷＢＥ１に立ち上がる。これにより、データＷ１は保持回路１１３に保持されるとともに、ライトバッファ１１４によってライト用データラインＷＬＩＮＥに供給される。続いてライト用のカラム選択信号ＹＷ０が立ち上がり、ビット線対ＢＬ０にデータＷ１が書き込まれる。ここで、ＹＲ０とＹＷ０は同一アドレスであり、同じビット線対ＢＬ０を選択するため、データＷ１を書き込みやすくするよう、ＹＲ０を立ち下げる工夫も必要であろう。データＲ１は保持回路１１０にすでに保持されているので特に問題は無い。
【００９４】
続いて、時刻ｔ２において再びビット線対ＢＬ０に相当するアドレスを指定してリード動作を要求すると、当該リード要求に対応するアドレスが前サイクルのライト要求に対応するアドレスが同一であるため、アドレス遷移検出信号ＡＴが"Ｌ"となり、通常であれば立ち上がるカラム選択信号ＹＲ０は立ち上がらない。このときビット線対ＢＬ０は、先のライト要求によりデータＷ１を書き込んでいる最中のため、信号量もまだ小さい状態にある。このため、これを途中で読み出すと、データＷ１が破壊される可能性があるが、ＡＴ＝"Ｌ"であることから、このデータＷ１が読み出されることはない。したがって、書き込み最中のビット線対ＢＬ０は、負荷の変化なども特になく、安定した書き込みが続く。つまり、通常であればリード用データラインＲＬＩＮＥに読み出されるリードデータは無い。続いて、時刻ｔＲＡＥ２に活性化信号ＲＡＥＰが立ち上がるが、ＡＴ＝"Ｌ"のため活性化信号ＲＡＥは立ち上がらず、このためリードアンプ１０８も活性化されない。一方、活性化信号ＲＡＥＰに同期して、レジスタ１１５にライトデータＷ１が保持され、これが信号線ＨＤＡＴＡに転送される。そして、遅延アドレス遷移検出信号ＡＴＤも"Ｌ"であるため、マルチプレクサ１１１は入力０側を選択し、ライトデータＷ１がそのままリードデータとしてリードバスＲＢＵＳに読み出される。
【００９５】
一方、時刻ｔ２にはビット線対ＢＬ０に相当するアドレスを指定してライト動作も要求されており、ライトバスＷＢＵＳには、時刻ｔ２に同期して、データＷ２が書き込まれる。ライトバッファ起動信号ＷＢＥは時刻ｔＲＡＥ２よりも遅い時刻ｔＷＢＥ２に立ち上がる。これにより、データＷ２は保持回路１１３に取り込まれ、ライトバッファ１１４によってライト用データラインＷＬＩＮＥに供給される。
【００９６】
このように、ライト要求とリード要求を同じアドレスで受け入れた際も、サイクル時間tCKを律速せずに、まず書かれているデータをリードし、その後、データをライトする動作を実現できる。なお、本実施形態に示した動作は、リードアンプタイミング待ち時間分、アレイに対する書き込みが遅れるので、ライトコマンド後にプリチャージコマンド投入可能時刻を決めるスペックtDPL(tWR)に対して、動作が厳しくなることは、実施形態１と同様である。
【００９７】
次に、本発明の好ましい第５の実施形態について説明する。
【００９８】
本実施形態は、本発明をＥＣＣ回路内蔵ＤＲＡＭに適用した例である。
【００９９】
ここでまず、一般のＥＣＣ動作のうちメモリに対してよく用いられる、組織符号の単一誤り訂正ハミング符号に関して、書き込み及び読み出しを説明する。情報ビット数をｋビット、検査ビット数をｍビット、総データｎ（＝ｋ＋ｍ）ビットとする。また、計算は２を法とした（modulo 2）ものとし、元は｛０，１｝であり、加算＋は排他的論理和とする。また、組織符号とは、情報ビットと検査ビットを完全に分離できる符号のことである。
【０１００】
まず、書き込みに関して説明する。書き込むｋビット幅の情報ビットｉを式（１）に示す。
【０１０１】
【数１】
2010113765.tif 000003
【０１０２】
組織符号では、情報ビットｉと検査ビットｐを分離して処理できるので、情報ビットｉは、情報ビット用メモリアレイにはそのまま書き込まれ、一方、検査ビット用メモリアレイには、ｍ行ｋ列の変換行列Ａによってｍビット幅の検査ビットｐに変換されて書き込まれる。これを式（２）〜式（４）に示す。
【０１０３】
【数２】
2010113765.tif 000004
【０１０４】
ただし、変換行列Ａの要素である縦ベクトルａｉ（i=1,2,...,k）は、ゼロベクトルではなく、単位ベクトルでもなく、かつ、互いに異なるものであるとする。以上が書き込みであり、情報ビットｉに変換行列Ａを作用させて検査ビットｐに変換する部分が「符号化」である。結果として、メモリアレイには式（５）に示すｎ（＝ｋ＋ｍ）ビット幅の総データdが書き込まれることになる。
【０１０５】
【数３】
2010113765.tif 000005
【０１０６】
次に、読み出しに関して説明する。メモリアレイに書き込まれている総データｄにはｎビット幅のエラーｅが重畳し、ｄ'に変化しているものとする。同様に、情報ビットはｉ'に、検査ビットはｐ'に変化しているものとする。これを、式（６）、式（７）に示す。
【０１０７】
【数４】
2010113765.tif 000006
【０１０８】
まず、符号化して書き込んでおいた検査ビットｐ'と比較するため、情報ビットｉ'の書き込みのときに用いたのと同じ変換行列Ａを作用させ、ｍビット幅の比較用ビットｑを得る。すなわち、比較用ビットｑは、式（６）により、式（８）のようになる。
【０１０９】
【数５】
2010113765.tif 000007
【０１１０】
もしエラーが無ければ、比較用ビットｑは検査ビットｐ'と一致するはずであるし、たしかに、式（８）からも分かる。ここまでで、情報ビットｉ'に変換行列Ａを作用させて比較用ビットｑを得る部分が「符号化」である。読み出しのときと同じ変換行列Ａを用いることができるのが組織符号の特徴である。
【０１１１】
続いて、比較用ビットｑと検査ビットｐ'が一致するかどうか比較するため、（２を法にした）加算をし、結果としてｍビット幅の結果ビットｓを得るものとする。結果ビットｓは、式（２）、式（６）、式（８）より、式（９）〜式（１１）のようになる。なお、計算では、２を法にした加算の規則a+a=0を使用した。
【０１１２】
【数６】
2010113765.tif 000008
【０１１３】
今、エラーｅが単一誤りの場合を考える。ｅのｉビット目にエラーがある場合、結果ビットｓは、式（９）、式（１０）より、式（１２）のようになる。
【０１１４】
【数７】
2010113765.tif 000009
【０１１５】
すなわち、情報ビットｉ'にエラーがある場合（i∈[1,k]の場合）、変換行列Ａのｉ番目の縦ベクトル要素であるａｉが得られ、検査ビットｐ'にエラーがある場合（i∈[k+1,n]の場合）、単位行列umの(i-k)番目の縦単位ベクトル要素であるumi-kが得られる。ここで、ａｉは、前に述べたように、ゼロベクトルではなく、単位ベクトルでもなく、互いに異なるものであるから、結果ビットｓの結果から、ｉ番目のビットにエラーが生じたと断定できる。なお、ａｉがゼロベクトルで無いのは、エラーが無い場合と区別するためであり、ａｉが単位ベクトルでないのは、エラーが検査ビットｐ'にある場合（i∈[k+1,n]の場合）と区別するためである。このように、結果ビットｓはエラービット情報を与えるのでシンドロームと呼ばれる。また、式（１０）の行列Ｈは、式（１２）のようにシンドロームを求めるのに用いられるので、ハミング検査行列と呼ばれる。次に、ｍビット幅のシンドロームｓに、ベクトル関数Ｆを作用させ、すなわちデコードして、情報ビットｉ'のエラービット情報である、ｋビット幅のエラービット位置データｔを割り出す。なお、ここでは、エラーの訂正の対象を情報ビットｉ'のみとし、検査ビットｐ'は除外している。これは、単一誤り訂正ハミング符号では、検査ビットｐ'にエラーがあっても、情報ビットｉ'は正しく読み出されるからであり、回路削減のためによく用いられる方法である。これを式(13)に示す。
【０１１６】
【数８】
2010113765.tif 000010
【０１１７】
ここで、ベクトル関数Ｆの要素である関数ｆｉ（i=1,2,...,k）は、シンドロームｓが変換行列Ａのｉ番目の縦ベクトル要素ａｉと等しい場合のみ１になるように選んである。すると、エラービット位置データｔの要素のうち、情報ビットｉ'の訂正すべきビットを示す要素のみが１となり、他の要素は０となる。結果、エラービット位置データｔはエラーｅ１と等しくなる。ここまでで、比較用ビットｑと検査ビットｐ'を比較して、シンドロームｓからエラービット位置データｔを得る部分が「検査」である。
【０１１８】
続いて、エラービット位置データｔを情報ビットｉ'に作用させて訂正する様子を式（１４）に示す。
【０１１９】
【数９】
2010113765.tif 000011
【０１２０】
ここでは式（６）、式（１３）、および２を法にした加算の規則a+a=0を用いた。ここまでで、情報ビットｉ'にシンドロームから得られた位置データｔを作用させて情報ビットを訂正する部分が「訂正」である。
【０１２１】
このように読み出しでは「符号化」→「検査」→「訂正」を行っている。
【０１２２】
以上のように、ＥＣＣ回路内蔵ＤＲＡＭに記憶されるデータとしては、実際に必要となる「情報ビット」と、情報ビットに誤りが生じた場合に訂正するために用いる「検査ビット」の２つがある。ライト動作時においては、情報ビットを書き込むとともに、情報ビットを符号化して検査ビットを生成し（符号化ステップ）、これを書き込む。リード動作時においては、情報ビットと検査ビットを読み出し、一方で、読み出した情報ビットを符号化し（符号化ステップ）、符号化した情報ビットと検査ビットを比較することで情報ビット中の不良箇所を割り出し（検査ステップ）、情報ビットの不良箇所に対して訂正を施して読み出す（訂正）。このように、書き込み時は「符号化」、読み出し時は「符号化」→「検査」→「訂正」の動作が行われる。
【０１２３】
あるビット数の情報ビットを訂正するのに必要な検査ビット数は情報理論で求まり、最も簡単な、単一誤り訂正の場合でも、ｋビットの情報ビットを訂正できる検査ビット数ｍは、以下の式（１５）を満たす分だけ必要になる。すなわち、ｍ個の検査ビットによって表せる場合の数２ｍが、不良ビットが存在する場合の不良箇所数（ｍ＋ｋ）と、不良ビットが存在しない場合の数１の和より大きければ、検査ビットによって、不良箇所を断定することが可能になる。
【０１２４】
【数１０】
2010113765.tif 000012
【０１２５】
上記式から、ｋ＝８の場合ｍ＝４、ｋ＝１６の場合ｍ＝５、ｋ＝３２の場合ｍ＝６となり、情報ビット数が増えるほど、情報ビット数ｋに対して必要な検査ビット数ｍの割合は小さくなる。しかしながら、ＤＲＡＭには同時にリード／ライトするデータの一部をマスクする「バイトマスク機能」が要求されることから、同時にリード／ライトするデータのビット数が多くても、１バイト単位、つまり、８ビット単位で検査ビットを割り当てなければならなくなる。この場合、８ビットの情報ビットに対して検査ビットは４ビット必要となる。つまり、総ビット数は１２ビットであり、情報ビットの１．５倍となる。これは、メモリセルアレイの規模が１．５倍になることを意味し、チップサイズの大幅増加につながる。
【０１２６】
本実施形態はこのような問題を解決するものである。上記の問題を回避するには、リード動作時には通常通り、「符号化」→「検査」→「訂正」の動作で読み出すのであるが、ライト動作時には、まず、読み出し（「符号化」→「検査」→「訂正」）を行い、この訂正されたデータに、ライトデータを混ぜ込み、更新された総情報ビットを用いて書き込み（「符号化」）を行えばよい。メモリセルアレイに対して実際に書き込みを行う前に、既に書き込まれているデータを一度読み出すことで、情報ビット数を増やすわけである。
【０１２７】
この原理を利用した方法の１つとして、特許文献１に記載された方法が知られている。特許文献１に記載された方法は、ＤＲＡＭのセンスアンプアクティブ動作とプリチャージ動作を利用するものである。まず、ＡＣＴコマンドによって「符号化」→「検査」→「訂正」（前述のリード動作に相当）を行い、訂正されたデータをセンスアンプに保持する。続いてＲＥＡＤコマンドが投入された場合は、センスアンプに訂正されて保持されているデータを読み出す。一方、ＷＲＩＴＥコマンドが投入された場合は、センスアンプに訂正されて保持されているデータにライトデータを上書きする。最後に、プリチャージコマンドで「符号化」（前述のライト動作に相当）を行う。
【０１２８】
つまり、リードコマンドでは、ＡＣＴコマンドで訂正されて読み出されたデータを読み出しており、ライトコマンドでは、ＡＣＴコマンドで読み出されたデータにライトデータを混ぜ込んでおり、最後に、プリチャージコマンドで符号化して書き込み動作を実行している。このように、特許文献１では、ロウ系のサイクルを利用して、既に書き込まれているデータを一度読み出しすことで情報ビット数を増加させ、情報ビット数の制限を受けないＥＣＣ動作を行っている。
【０１２９】
しかしながら、特許文献１の方法では、ロウ系サイクルを利用して演算を行っているため、演算対象が活性センスアンプ全数となる。つまり、実際に入出力しないデータに対しても演算を行う必要があるため、消費電力が余分にかかる。また、演算対象がセンスアンプになるため、情報ビット用のセンスアンプと検査ビット用のセンスアンプは常に同一の組み合わせである必要があり、そのためカラム選択線も常に同一の組み合わせである必要がある。当然のことながら、冗長救済用の冗長カラム選択線についても同様であり、情報ビット数を比較的大きく設計した場合には、１箇所の救済に必要な冗長カラム選択線数が増え、救済設計が難しくなる。
【０１３０】
本実施形態は、このような特許文献１の問題をも解消するものである。本実施形態では、ロウ系のサイクルではなく、カラム系のサイクルを利用して、情報ビット数の制限を受けないＥＣＣ動作を可能とする回路構成を提供する。これにより、特許文献１が有している問題を解消できる。すなわち、実際に入出力するデータのＥＣＣ動作に必要最小限の演算しか行わないので無駄がない。また、演算はアレイの外で行うので、冗長救済の回路に対してなんら制限はない。
【０１３１】
この場合、リードサイクルでは、リード動作のみを行うことになるが、ライトサイクルでは、まずリード動作を行い、続いてライト動作を行う必要がある。これは、第１の実施形態において、演算がアレイに対するリード動作を含む例であると言える。以下、具体的に説明する。本動作は、ＥＣＣ符号が組織符号でない場合でも、ライト動作／リード動作の対象をアレイ全体とし、その際のリード動作を「符号化＆検査」→「訂正」のように符号化と検査を一体として、ライト動作の符号器と別の形にすれば可能である。しかし、組織符号の場合は、ライト動作とリード動作で符号器を同じ形にできることで、タイミング設計が容易になるので、以下の説明では組織符号の場合を例に説明する。
【０１３２】
図１３は、本発明の好ましい第５の実施形態による半導体記憶装置２００の主要部の構成を示す回路図である。特に限定されるものではないが、本実施形態による半導体記憶装置２００もＤＲＡＭである。
【０１３３】
図１３に示すように、本実施形態による半導体記憶装置２００は、情報ビット用メモリアレイ２０１と、検査ビット用メモリアレイ２０９とを備えている。情報ビット用メモリアレイ２０１は、情報ビットを格納するためのメモリセルアレイであり、検査ビット用メモリアレイ２０９は、検査ビットを格納するためのメモリセルアレイである。各メモリセルアレイ２０１，２０９の回路構成は、図１に示したメモリセルアレイ１０３と同様である。
【０１３４】
情報ビット用メモリアレイ２０１から読み出されるリードデータ（情報ビット）は、リード用カラム選択ドライバ２０２の出力であるリード用カラム選択信号ＩＹＲ０，ＩＹＲ１・・・に基づいてリード用データラインＩＲＬＩＮＥに供給される。また、情報ビット用メモリアレイ２０１に書き込むべきライトデータ（情報ビット）は、ライト用カラム選択ドライバ２０３の出力であるライト用カラム選択信号ＩＹＷ０，ＩＹＷ１・・・に基づいてライト用データラインＩＷＬＩＮＥから供給される。同様に、検査ビット用メモリアレイ２０９から読み出されるリードデータ（検査ビット）は、リード用カラム選択ドライバ２１０の出力であるリード用カラム選択信号ＰＹＲ０，ＰＹＲ１・・・に基づいてリード用データラインＰＲＬＩＮＥに供給される。また、検査ビット用メモリアレイ２０９に書き込むべきライトデータ（検査ビット）は、ライト用カラム選択ドライバ２１１の出力であるライト用カラム選択信号ＰＹＷ０，ＰＹＷ１・・・に基づいてライト用データラインＰＷＬＩＮＥから供給される。この点、図１に示した半導体記憶装置１００と同様である。
【０１３５】
情報ビット用メモリアレイ２０１に対して設けられたリード用データラインＩＲＬＩＮＥ及びライト用データラインＩＷＬＩＮＥのビット幅はｋビットである。一方、検査ビット用メモリアレイ２０９に対して設けられたリード用データラインＰＲＬＩＮＥ及びライト用データラインＰＷＬＩＮＥのビット幅はｍビットである。これらデータラインＩＲＬＩＮＥ，ＩＷＬＩＮＥ，ＰＲＬＩＮＥ、ＰＷＬＩＮＥはいずれも入出力回路２３０に接続されている。
【０１３６】
入出力回路２３０は、リード用データラインＩＲＬＩＮＥとマルチプレクサ２１７との間に設けられた符号化回路２０７、検査回路２０８、訂正回路２１５を備えている。符号化回路２０７は、ｋビットの情報ビットからｍビットの検査ビットを生成する回路である。検査回路２０８は、符号化回路２０７によって生成された検査ビットと、リード用データラインＰＲＬＩＮＥを介して検査ビット用メモリアレイ２０９から読み出された検査ビットとを照合する回路である。訂正回路２１５は、検査回路２０８の検査結果に基づいて情報ビットを訂正することにより、誤りを含む情報ビットを正しい内容に訂正する回路である。訂正回路２１５によって訂正された情報ビットは、マルチプレクサ２１７を介してリードバスＲＢＵＳに供給されるとともに、ミキサ２２０に供給される。
【０１３７】
ミキサ２２０は、情報ビット用メモリアレイ２０１から読み出され、訂正された情報ビットが一時的に格納されるとともに、ライトバスＷＢＵＳを介して入力されたライトデータによってこれを上書きする回路である。ライトデータによる情報ビットの上書きは、ライト用バイトマスク信号ＤＭによって、バイト単位で行うことができる。つまり、情報ビットが複数バイトであっても、１バイト単位で部分的な上書きが可能である。
【０１３８】
ミキサ２２０の出力は、ライトバッファ２２１を介してライト用データラインＩＷＬＩＮＥに供給される。また、ミキサ２２０の出力は、符号化回路２２２にも供給され、これによってｋビットの情報ビットからｍビットの検査ビットが生成される。生成された検査ビットは、ライトバッファ２２３を介してライト用データラインＰＷＬＩＮＥに供給される。さらに、ミキサ２２０の出力は、レジスタ２１６にも供給される。レジスタ２１６の出力はマルチプレクサ２１７に供給される。
【０１３９】
その他の構成は、図１に示した半導体記憶装置１００と類似していることから、詳細な説明は省略する。
【０１４０】
本実施形態では、アドレスの一致によってアドレス遷移検出信号ＩＡＴが活性化する。アドレス遷移検出信号ＩＡＴは、情報ビットを制御する際に用いるアドレス遷移検出信号であり、遅延アドレス遷移検出信号ＩＡＴＤは、訂正されたデータをリードバスＲＢＵＳに出力するタイミングを決める信号である活性化信号ＩＲＡＥＰＤに合わせて、アドレス遷移検出信号ＩＡＴを遅延させた信号である。また、アドレス遷移検出信号ＰＡＴは、検査ビットを制御する際に用いるアドレス遷移検出信号である。動作のタイミングはそれぞれ異なるが、根幹となる信号は図５に示した検出回路１３０ａを用いることができる。すなわち、通常はＩＡＴ，ＰＡＴ＝"Ｈ"であるが、WRITE to READ動作で、READサイクルのアドレスがWRITEサイクルと同一な場合か、もしくは、WRITE to WRITE動作で、両WRITEサイクルのアドレスが同一な場合、ＩＡＴ，ＩＡＴＤ，ＰＡＴ＝"Ｌ"となる。
【０１４１】
ここで、通常の動作、すなわち、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴがいずれも"Ｈ"である場合の動作について説明する。
【０１４２】
まずリードサイクルを説明する。リードサイクルでは、リード動作のみを行う。つまり、情報ビット用メモリアレイ２０１に対し、ドライバ２０２によってリード用カラム選択線ＩＹＲを駆動し、リード用データラインＩＲＬＩＮＥにｋビットの情報ビットデータを読み出す。読み出された情報ビットは、活性化信号ＩＲＡＥＰに同期してリードアンプ２０４で増幅され、保持回路２０５に保持される。さらに、符号化回路２０７によってｋビットの情報ビットデータをｍビットの符号ビットデータに変換する。
【０１４３】
一方、検査ビット用メモリアレイ２０９に対して、ドライバ２１０によってリード用カラム選択線ＰＹＲを駆動し、リード用データラインＰＲＬＩＮＥにｍビットの検査ビットデータを読み出す。読み出された検査ビットは、活性化信号ＰＲＡＥＰに同期してリードアンプ２１２で増幅され、保持回路２１４に保持される。ここで、検査ビット用のカラム選択線ＰＹＲの駆動タイミングと、リードアンプ２１２の活性タイミングは、情報ビット用のそれらより、符号化回路２０７による符号化時間分遅らせる。これにより、符号化回路２０７によって生成された検査ビットと、検査ビット用メモリアレイ２０９から読み出された検査ビットが、検査回路２０８にほぼ同時に到達する。
【０１４４】
検査回路２０８はこれら２つの検査ビットを用いて演算し、ｋ個のエラービット位置データ、いわゆるシンドロームを割り出す。得られたシンドロームは、訂正回路２１５に供給される。訂正回路２１５は、保持回路２０５に保持されている情報ビットデータと、検査回路から供給されるシンドロームを用いて演算を行い、情報ビットデータに含まれている誤りを訂正し、訂正データＲＲＤを出力する。このとき、信号線ＨＤＡＴＡには、活性化信号ＩＲＡＥＰＤに同期して何らかのデータが現れているが、遅延アドレス遷移検出信号ＩＡＴＤ＝"Ｈ"のため、マルチプレクサ２１７は入力１側を選択する。このため、マルチプレクサ２１７は、訂正データＲＲＤを信号線ＲＢＵＳＰに出力する。
【０１４５】
尚、遅延アドレス遷移検出信号ＩＡＴＤが変化する場合は、活性化信号ＩＲＡＥＰＤと同じタイミングで変化するよう設計される。ＡＮＤゲート２１９は、信号線ＲＢＵＳＰ上のデータをリードバスＲＢＵＳに出力するか否かを決める回路であり、活性化信号ＩＲＡＥＰＤと信号ＲＥＤによって信号ＩＲＡＥＤを生成する。また、リード用バイトマスク信号ＱＭによって、１バイト単位の読み出しも可能としてある。信号ＲＥＤは、リード状態フラグを活性化信号ＩＲＡＥＰＤに合わせて遅らせた信号であり、この場合ＲＥＤ＝"Ｈ"であり、リードマスク情報ＱＭに従いながら、信号線ＲＢＵＳＰのデータを活性化信号ＩＲＡＥＰＤに同期してリードバスＲＢＵＳに必要なバイト数のデータを出力する。なお、活性化信号ＩＲＡＥＰＤの活性化タイミングは、情報ビット用のリードアンプ２０４の活性化タイミングより、符号化回路２０７による符号化時間と、検査回路２０８による検査時間と、訂正回路２１５による訂正時間との合計時間分遅らせる必要がある。このようにして、訂正された情報ビットデータがリードバスＲＢＵＳに出力される。
【０１４６】
次にライトサイクルを説明する。ライトサイクルにおいては、まずリード動作を行い、次にライト動作を行う。リード動作の詳細については上述の通りであり、訂正された情報ビットデータを、マルチプレクサ２１７を経由して、信号線ＲＢＵＳＰに出力する。但し、ライトサイクルにおいてＲＥＤ＝"Ｌ"となることから、ＡＮＤゲート２１９の出力はＬレベルであり、トライステートバッファ２１８が非活性となる。したがって、リードデータはリードバスＲＢＵＳには出力されない。
【０１４７】
続くライト動作においては、ライトバッファ起動信号ＩＷＢＥに同期して、ライトバスＷＢＵＳから供給されるライトデータをミキサ２２０に取り込む。また、信号線ＲＢＵＳＰからは先のリード動作で訂正したデータがミキサ２２０に供給される。ミキサ２２０は、データマスク情報ＤＭに従ってこれらを混合し、信号線ＩＷＤにｋ個の情報ビットデータを出力する。出力された情報ビットデータは、レジスタ２１６に保持される。信号線ＲＢＵＳＰからミキサ２２０にデータを取り込むにためは、保持回路２０５，２１４はそれまでデータを保持しなければならず、１サイクル保持タイプの回路構成とすることが望ましい。また、ミキサ２２０は、直後にリードサイクルを行う場合、保持回路２１６にデータを渡さなければならない。このため、ミキサ２２０は１サイクル保持タイプの回路構成を有している。
【０１４８】
続いて、ライトバッファ２２１によって、ｋ個の情報ビットデータを情報ビットメモリアレイ２０１に書き込む。一方、符号化回路２２２は、信号線ＩＷＤ上のｋ個の情報ビットデータを符号化してｍ個の符号ビットデータを生成する。生成された符号ビットデータ（検査ビット）は、ライトバッファ２２３により、ライトバッファ起動信号ＰＷＢＥに同期して検査ビットアレイ２０９に書き込まれる。ここで検査ビット用のライトバッファ２２３の活性タイミングは、情報ビットのそれに対して、符号化回路２２２による符号化時間分遅らせる必要がある。このようにして、データマスクによって制限されるビット数より多くの情報ビットを用いて符号化書き込みを行うことが可能となる。
【０１４９】
ところで、符号化回路２０７と符号化回路２２２は、符号理論から、同一論理の回路構成を採ることができる。したがって、符号化回路２０７と符号化回路２２２を全く同一のレイアウトとすれば、遅延時間が一致することから、タイミング設計が容易になる。すなわち、検査ビット用アレイ２０９の制御タイミングを、情報ビット用アレイ２０１の制御タイミングに対して、符号化回路２０７の符号化時間（＝符号化回路２２２の符号化時間）分、一律に遅らせればよくなる。
【０１５０】
さらに言えば、検査ビット用アレイ２０９のワード線制御部（図示せず）と、情報ビット用アレイ２０１のワード線制御部（図示せず）と別回路とし、ＡＣＴタイミング及びＰＲＥタイミングについても符号化回路２０７の符号化時間（＝符号化回路２２２の符号化時間）分遅らせルことが好ましい。これによれば、符号化回路２２２の符号化時間だけＰＲＥ動作に食い込む書き込み時間を帳消しに出来る。こう考えると、情報ビット用アレイ２０１のリード動作制御系を内部クロックＩＣＬＫに同期させた場合、データ出力および情報ビット用アレイ２０１のライト動作制御系に対しては、内部クロックＩＣＬＫよりリードアンプ２０４の増幅に用いる時間と、「符号化」→「検査」→「訂正」に要する時間を加算した時間分遅らせた内部クロックＩＣＬＫＤを用いればよい。また、検査ビット用アレイ２０９のリード動作制御系に対しては、内部クロックＩＣＬＫより「符号化」時間分遅らせた内部クロックＰＣＬＫを用いればよい。さらに、検査ビット用アレイ２０９のライト動作制御系に対しては、内部クロックＰＣＬＫよりリードアンプ２１２の増幅に用いる時間と「符号化」→「検査」→「訂正」に要する時間を加算した時間分遅らせた内部クロックＰＣＬＫＤを用いればよい。図示はしないが、検査ビット用アレイ２０９のワード線制御部は、情報ビット用アレイ２０１より、符号化回路２０７の符号化時間（＝符号化回路２２２の符号化時間）分、遅らせればよい。これによれば、各回路の動作を容易に同期させることが可能となる。
【０１５１】
図１４は、WRITE to READ動作で、リードサイクルのアドレスがライトサイクルと同一な場合の動作タイミングを示すタイミング図である。図１４ではＳＤＲ（SIngle Data Rate）の場合を想定している。ＤＤＲ（Double Data Rate）でも、レイテンシを考慮して同様な設計をすれば、同様に動作させることが可能である。
【０１５２】
まず、時刻ｔ１にライトコマンドを投入すると、メモリセルアレイは同じく時刻ｔ１にライトサイクル要求を受け、ライトサイクル、すなわち、リード動作及びライト動作の順に行う。まずはリード動作を始める。情報ビットに関しては、内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を駆動し、情報ビットデータＩＲをビット線対ＩＢＬ０からリード用データラインＩＲＬＩＮＥに読み出す。そして、活性化信号ＩＲＡＥＰが内部クロックＩＣＬＫのアクティブエッジから増幅待ち時間ｄだけ待って立ち上がり、保持回路２０５に保持する。
【０１５３】
一方、検査ビットに関しては、内部クロックＩＣＬＫのアクティブエッジを符号化時間ａだけ遅らせた内部クロックＰＣＬＫに同期してカラム選択信号ＰＹＲ０を駆動し、検査ビットデータＰＲをビット線対ＰＢＬ０からリード用データラインＰＲＬＩＮＥに読み出す。そして、活性化信号ＰＲＡＥＰが内部クロックＰＣＬＫから増幅待ち時間ｄだけ待って立ち上がり、保持回路２１４に保持する。
【０１５４】
そして、保持回路２０５に保持された情報ビットデータは、符号化時間ａを経過後、保持回路２１４に保持された検査ビットデータと合流し、検査時間ｂ、訂正時間ｃの後、信号線ＲＲＤに訂正データＲとして読み出される。この場合、アドレス遷移検出信号ＩＡＴＤ＝"Ｈ"のため、訂正データＲは信号線ＲＢＵＳＰまで読み出され、ミキサ２０に供給される。尚、内部クロックＩＣＬＫをｄ＋（ａ＋ｂ＋ｃ）だけ遅らせた内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤが立ち上がるが、今はライトサイクルなので信号ＩＲＡＥＤは立ち上がらず、このため、訂正データＲはリードバスＲＢＵＳには出力されない。一方、信号ＩＲＡＥＰＤによって信号線ＨＤＡＴＡに信号線ＩＷＤ上のデータが保持されているが、これは不要データである。
【０１５５】
続いてライト動作を始める。情報ビットに関しては、内部クロックＩＣＬＫＤに同期して、ライトバッファ起動信号ＩＷＢＥを立ち上げ、ライトバスＷＢＵＳからライトデータＷを取り込み、信号線ＲＢＵＳＰからは先ほど読み出した訂正データＲを取り込み、これらをミキサ２２０にて混合する。つまり、訂正データＲにライトデータＷを上書きする。この時、上書き動作はデータマスク情報ＤＭに従って行われる。つまり、データマスクが指示されていない場合には、訂正データＲの全ビットにライトデータＷを上書きするが、データマスクが指示されている場合には、訂正データＲのうちマスクされてないビット対してライトデータＷを上書きする。このようにして混合された書き込み用情報ビットＩＷは、信号線ＩＷＤに出力され、レジスタ２１６に保持される。また、信号線ＩＷＤ上の書き込み用情報ビットＩＷは、ライトバッファ２２１を介してライト用データラインＩＷＬＩＮＥに供給され、カラム選択信号ＩＹＷ０の活性化に応答してビット線ＩＢＬ０に書き込まれる。また、信号線ＩＷＤ上の書き込み用情報ビットＩＷは符号化回路２２２にも供給され、これにより検査ビットＰＷが生成される。検査ビットＰＷは、ライトバッファ２２３を介してライト用データラインＰＷＬＩＮＥに供給され、カラム選択信号ＰＹＷ０の活性化に応答してビット線ＰＢＬ０に書き込まれる。尚、検査ビットＰＷは、情報ビットＩＷに対して符号化時間ａだけ遅れるので、内部クロックＰＣＬＫをｄ＋（ａ＋ｂ＋ｃ）だけ遅らせた内部クロックＰＣＬＫＤに同期したライトバッファ活性信号ＰＷＢＥによってライト用データラインＰＷＬＩＮＥに書き込まれる。
【０１５６】
次に、時刻ｔ２にリードコマンドを投入すると、メモリセルアレイは同じく時刻ｔ２にリードサイクル要求を受け、リード動作を始める。情報ビットに関しては、内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を立ち上げようとするが、アドレス遷移検出信号ＩＡＴＤ＝"Ｌ"のため、カラム選択信号ＩＹＲは全て非活性に保たれる。つまり、現在、前サイクルのライト動作で情報ビットＩＷを書き込み中であるが、それを読み出すことはない。続いてリードアンプ活性タイミング信号ＩＲＡＥＰによってリードアンプ活性信号ＩＲＡＥを立ち上げようとするが、アドレス遷移検出信号ＩＡＴＤ＝"Ｌ"のためリードアンプ２０４は活性化しない。このため、リードアンプ２０４が無駄な電流を消費することはない。
【０１５７】
一方、検査ビットに関しては、内部クロックＰＣＬＫに同期してカラム選択信号ＰＹＲ０を立ち上げようとするが、アドレス遷移検出信号ＰＡＴ＝"Ｌ"のため、カラム選択信号ＰＹＲは全て非活性に保たれる。つまり、現在、前サイクルのライト動作で検査ビットＰＷを書き込み中であるが、それを読み出すことはない。続いてリードアンプ活性タイミング信号ＰＲＡＥＰによってリードアンプ活性信号ＰＲＡＥを立ち上げようとするが、アドレス遷移検出信号ＰＡＴ＝"Ｌ"のため、リードアンプ２１２は活性化しない。このため、リードアンプ２１２が無駄な電流を消費することはない。
【０１５８】
このように、情報ビットも検査ビットもメモリアレイからは読み出されない。そして、内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤを立ち上げ、信号線ＩＷＤに保持されている、前サイクルに書き込みに用いた情報ビットをレジスタ２１６に取り込む。これにより、信号線ＨＤＡＴＡには前サイクルに書き込みに用いた情報ビットが現れる。そして、マルチプレクサ２１７は入力０側を選択し、信号線ＨＤＡＴＡ上の情報ビットをリードバスＲＢＵＳに出力する。ここで信号線ＩＷＤ上のデータは、スタティックラッチで保持されているデータなので、エラーが生じるとは考えにくく、特に訂正を行う必要はない。
【０１５９】
このように、本実施形態によれば、ＥＣＣ回路内蔵ＤＲＡＭにおいて、どのようなアクセスが要求された場合であっても、サイクル時間を律速することなくＥＣＣ動作を実現できる。しかも、ライト動作が要求された場合、データマスクがされている場合であっても、データマスクが無い場合と同じビット数の情報ビットを読み出し、これにライトデータを部分的に上書きしていることから、符号化を行う情報ビット数が多くなる。このため、情報ビット数に対して必要な検査ビット数の割合は小さくなり、メモリセルアレイの規模増大を抑制することも可能となる。但し、第１の実施形態においても述べたように、演算時間だけメモリセルアレイに対する書き込みが遅れるので、ライトコマンド後にプリチャージコマンド投入可能時刻を決めるスペックtDPL(tWR)に対して、動作が厳しくなることに言及しておく。また、アクセス時間tAAも符号化時間分遅れる。
【０１６０】
次に、本発明の好ましい第６の実施形態について説明する。
【０１６１】
本実施形態は、上述した第５の実施形態による半導体記憶装置と基本的な回路構成（図１３参照）は同じであるが、第２の実施形態において述べたように、近年のＤＲＡＭのライトレイテンシを考慮して、スペックtDPL(tWR)を犯さない構成としている。本実施形態では、第５の実施形態に対し、各信号の基準クロックに変更が必要となる。なお、以下で特には説明しないが、バイトマスクに対する対処は第５の実施形態と同様である。
【０１６２】
情報ビット用アレイ２０１のリード動作制御系は内部クロックＩＣＬＫ、データ出力は、内部クロックＩＣＬＫよりリードアンプ２０４増幅時間と「符号化」→「検査」→「訂正」に要する時間分遅らせた内部クロックＩＣＬＫＤ、検査ビット用アレイ２０９のリード動作制御系は、内部クロックＩＣＬＫより「符号化」時間分遅らせた内部クロックＰＣＬＫを用いる。ここまでは第５の実施形態と同じであるが、情報ビット用アレイ２０１のライト動作制御系には内部クロックＩＣＬＫ、検査ビット用アレイ２０９のライト動作制御系には内部クロックＰＣＬＫを用いる。また、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴの根幹となる信号は図８に示した検出回路１３０ｂを用いることができる。すなわち、通常は"Ｈ"だが、「WRITE to WRITE動作で、両WRITEサイクルのアドレスが同一な場合」にＬレベルとなる信号である。また、信号線ＲＢＵＳＰからミキサ２２０がデータを取り込むのは１サイクル後なので、保持回路２０５，２１４は、１サイクル保持タイプの回路にする必要がある。
【０１６３】
図１５は、WRITE to WRITE動作で、これらライトサイクルのアドレスが同一の場合の動作タイミングを示すタイミング図である。図１５ではＤＤＲ１型のＤＲＡＭを想定している。
【０１６４】
まず、時刻ｔ１にライトコマンドを投入すると、メモリセルアレイは、通常時刻ｔ３にライトサイクル要求を受けるのであるが、リード動作は時刻ｔ２から始めても問題ないため、時刻ｔ２からライトサイクル、すなわち、時刻ｔ２のリード動作後に時刻ｔ３のライト動作を始めるように設計する。この場合、図８に示した検出回路１３０ｂも、時刻ｔ２を原点に動作することに言及しておく。
【０１６５】
まずはリード動作を始める。情報ビットに関しては、内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を駆動し、情報ビットデータＩＲ０をビット線対ＩＢＬ０からリード用データラインＩＲＬＩＮＥに読み出す。そして、リードアンプ活性タイミング信号ＩＲＡＥＰを内部クロックＩＣＬＫのアクティブエッジから増幅待ち時間ｄだけ待って立ち上げ、保持回路２０５に保持する。
【０１６６】
一方、検査ビットに関しては、内部クロックＩＣＬＫを符号化時間ａだけ遅らせた内部クロックＰＣＬＫに同期して、カラム選択信号ＰＹＲ０を駆動し、検査ビットデータＰＲをビット線対ＰＢＬ０からリード用データラインＰＲＬＩＮＥに読み出す。そして、リードアンプ活性タイミング信号ＰＲＡＥＰを内部クロックＰＣＬＫから増幅待ち時間ｄだけ待って立ち上げ、保持回路２１４に保持する。
【０１６７】
そして、保持回路２０５に保持された情報ビットデータは、符号化時間ａを経過した後、保持回路２１４に保持されている検査ビットデータと合流し、検査時間ｂ、訂正時間ｃが経過した後、信号線ＲＲＤに訂正データＲ０として読み出される。この場合、ＩＡＴＤ＝"Ｈ"のため、訂正データＲ０は信号線ＲＢＵＳＰまで読み出される。なお、内部クロックＩＣＬＫをｄ＋（ａ＋ｂ＋ｃ）だけ遅らせた内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤが立ち上がるが、今はライトサイクルなのでＩＲＡＥＤは立ち上がらず、したがって、訂正データＲ０はリードバスＲＢＵＳには出力されない。一方、信号ＩＲＡＥＰＤによって信号線ＨＤＡＴＡに信号線ＩＷＤ上のデータが保持されているが、これは不要データである。
【０１６８】
続いて、時刻ｔ３にライト動作を始める。情報ビットに関しては、時刻ｔ３内部クロックＩＣＬＫに同期してライトバッファ起動信号ＩＷＢＥを立ち上げ、ライトバスＷＢＵＳからライトデータＷ０をミキサ２２０に取り込む。一方、信号線ＲＢＵＳＰからは、先ほど読み出した訂正データＲ０をミキサ２２０に取り込む。そして、ミキサ２２０にてこれらを混合し、得られた書き込み用情報ビットＩＷ０を信号線ＩＷＤに出力する。書き込み用情報ビットＩＷ０は、ライトバッファ２２１によってライト用データラインＩＷＬＩＮＥに供給され、カラム選択信号ＩＹＷ０に同期してビット線対ＩＢＬ０に書き込まれる。一方、書き込み用情報ビットＩＷ０は符号化回路２２２にも供給され、これよって、符号化時間ａだけ遅れてｍビットの検査ビットＰＷ０が生成される。生成された検査ビットＰＷ０は、内部クロックＰＣＬＫに同期したライトバッファ活性信号ＰＷＢＥに同期して、ライトバッファ２２３によってライト用データラインＰＷＬＩＮＥに供給され、カラム選択信号ＰＹＷ０に同期してビット線対ＰＢＬ０に書き込まれる。
【０１６９】
通常は、時刻ｔ２にライトコマンドを投入すると、メモリセルアレイは、時刻ｔ４にライトサイクル要求を受けるのだが、時刻ｔ３からライトサイクル、すなわち、時刻ｔ３のリード動作後に時刻ｔ４のライト動作を始める。アドレス遷移検出信号ＩＡＴも、時刻ｔ３を原点に動作することに言及しておく。
【０１７０】
まずはリード動作を始める。情報ビットに関しては、時刻ｔ３の内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を駆動しようとするが、ＩＡＴＤ＝"Ｌ"のため駆動しない。現在、ビット線対ＩＢＬ０は、先のライトサイクルのライト動作を行っているが、そのデータを読むことは無い。続いて、リードアンプ活性タイミング信号ＩＲＡＥＰが時刻ｔ３の内部クロックＩＣＬＫから増幅待ち時間ｄだけ待って立ち上がるが、ＩＡＴＤ＝"Ｌ"のため活性化信号ＩＲＡＥが立ち上がることは無く、リードアンプ２０４は活性化しない。このため、リードアンプ２０４が無駄な増幅電流を流すことはない。
【０１７１】
一方、検査ビットに関しては、内部クロックＩＣＬＫを符号化時間ａだけ遅らせた時刻ｔ３の内部クロックＰＣＬＫに同期してカラム選択信号ＰＹＲ０を駆動しようとするが、ＰＡＴＤ＝"Ｌ"のため駆動しない。現在、ビット線対ＰＢＬ０は、先のライトサイクルのライト動作を行っているが、そのデータを読むことは無い。続いて、リードアンプ活性タイミング信号ＰＲＡＥＰが時刻ｔ３の内部クロックＰＣＬＫから増幅待ち時間ｄだけ待って立ち上がるが、ＰＡＴＤ＝"Ｌ"のため活性化信号ＰＲＡＥが立ち上がることは無く、リードアンプ２１２は活性化しない。このため、リードアンプ２１２が無駄な増幅電流を流すことはない。
【０１７２】
このように、情報ビットも検査ビットもメモリアレイ２０１，２０９からは読み出さない。
【０１７３】
そして、時刻ｔ３の内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤが立ち上がり、信号線ＩＷＤに保持されている、前サイクルに書き込みに用いた情報ビットデータＩＷ０をレジスタ２１６に取り込み、信号線ＨＤＡＴＡに出力する。そして、内部クロックＩＣＬＫＤに同期したアドレス遷移検出信号ＩＡＴＤが"Ｌ"レベルであることから、マルチプレクサ２１７は入力０側を選択し、信号線ＨＤＡＴＡ上のデータを信号線ＲＢＵＳＰに出力する。
【０１７４】
続いて、時刻ｔ４にライト動作を始める。情報ビットに関しては、時刻ｔ４の内部クロックＩＣＬＫに同期して、ライトバッファ起動信号ＩＷＢＥを立ち上げ、ライトバスＷＢＵＳからライトデータＷ１を取り込み、ミキサ２２０に供給する。一方、信号線ＲＢＵＳＰからは、先ほどリードデータとみなした信号ＩＷ０をミキサ２２０に取り込む。そして、ミキサ２２０はこれらを混合し、得られた書き込み用情報ビットＩＷ１を信号線ＩＷＤに出力する。出力された書き込み用情報ビットＩＷ１は、ライトバッファ２２１によってライト用データラインＩＷＬＩＮＥに供給され、カラム選択信号ＩＹＷ０に同期してビット線対ＩＢＬ０に書き込まれる。
【０１７５】
一方、書き込み用情報ビットＩＷ１は符号化回路２２２にも供給され、これよって、符号化時間ａだけ遅れてｍビットの検査ビットＰＷ１が生成される。生成された検査ビットＰＷ１は、時刻ｔ４の内部クロックＰＣＬＫに同期したライトバッファ活性信号ＰＷＢＥに同期して、ライトバッファ２２３によってライト用データラインＰＷＬＩＮＥに供給され、カラム選択信号ＰＹＷ０に同期してビット線対ＰＢＬ０に書き込まれる。
【０１７６】
このように、本実施形態においても、どのようなアクセスが要求された場合であっても、サイクル時間を律速することなくＥＣＣ動作を実現できる。しかも、本実施形態では、第２の実施形態と同様、スペックtDPL(tWR)を犯すことはない。但し、アクセス時間tAAは符号化時間分遅れる。
【０１７７】
次に、本発明の好ましい第７の実施形態について説明する。
【０１７８】
上述した第３の実施形態のように、ライト要求とリード要求が同時に行われる可能性のある半導体記憶装置として、デュアルポートメモリが挙げられる。本実施形態は、本発明をデュアルポートメモリに適用した場合のより具体的な実施形態である。
【０１７９】
デュアルポートメモリとは、入出力ポートを２系統有し、両ポートから同時に、同じメモリ空間にアクセスできるメモリで、ＣＰＵや周辺コントローラなど、メモリに直接アクセスしたり、バッファ領域をランダムにアクセスする必要があるようなデバイス同士が通信する際に、データ受け渡しの仲介役として用いられる。従来のデュアルポートメモリは、主にＳＲＡＭが用いられていたが、これをＤＲＡＭで実現する方法が特許文献２で提案されている。
【０１８０】
図１６は、特許文献２にて提案されているデュアルポートメモリの主要部の構成を示す回路図である。
【０１８１】
図１６に示すＤＲＡＭメモリセル３０１は、ワード線ＷＤ０ａによって選択されるトランスファーゲート３０２と、ワード線ＷＤ０ｂによって選択されるトランスファーゲート３０３で共有されている。トランスファーゲート３０２はメモリセル３０１をセンスアンプ３０４に接続するスイッチであり、トランスファーゲート３０３はメモリセル３０１をセンスアンプ３０５に接続するスイッチである。センスアンプ３０４のデータは、カラム選択信号ＹＳ０ａによって入出力ポート（ＰＯＲＴ１）３０６につながり、センスアンプ３０５のデータは、カラム選択信号ＹＳ０ｂによって入出力ポート３０７（ＰＯＲＴ２）につながる。つまり、それぞれの入出力ポート３０６，３０７に対してセンスアンプがそれぞれ割り当てられている。
【０１８２】
このような構成とすれば、同一アドレスに対する異なるデータのライト動作以外は、ロウアクセス、カラムアクセスとも自由に行うことができることから、各入出力ポートから独立に同一メモリアレイに対してアクセスすることができる。但し、メモリセルがＤＲＡＭセルであることから、ワード線を立ち上げてからセンスアンプを活性化させるまでの初期読み出し期間はノイズに弱い。このため、大きな隣接ノイズが発生すると、データが反転するおそれがある。しかしながら、図１６に示すデュアルポートメモリは、ワード線ＷＤ０ａが選択されてからセンスアンプ３０４が活性化するまでの間に、すでに活性状態にあるセンスアンプ３０８に対してライト動作が行われると、センスアンプ３０４には大きな隣接ノイズが加わることから、センスアンプ３０４は誤データを増幅してしまうであろう。このような問題を解消するためには、センスアンプ３０８に対するライト動作をセンスアンプ３０４の増幅が完了するまで待たせる必要がある。
【０１８３】
このように、特許文献２に記載されたデュアルポートメモリでは、ＤＲＡＭメモリセル特有のノイズ対策と必要になり、スムーズなクロック同期動作が行えなくなるか、クロックサイクルを大幅に伸ばす必要が出てくる。また、ワード線、ビット線、センスアンプとも、ポートの数だけ有する必要があり、メモリアレイはほぼ２倍になってしまう。
【０１８４】
本実施形態はこのような問題を解決すべく、デュアルポートメモリの定義を少し緩めた疑似的なデュアルポート構成を採ることによって、クロックサイクルを保持しつつ、適度なデュアルポートアクセスを行えるデュアルポートメモリを提供するものである。
【０１８５】
デュアルポートメモリを介したデータの授受は、一方のポートがコントローラデバイスにつながり、他方のポートが出力デバイスにつながる場合が多い。このような場合は、コントローラデバイス側は主にライト動作を行い、出力デバイス側は主にリード動作を行う。したがって、このような使用形態においては、ライト動作とリード動作を同時に実行できることが重要と考えられる。
【０１８６】
本実施形態では、同一のロウアドレスに対して、リード動作とライト動作を同時に実行できるメモリを提供する。リード動作とライト動作を同時に実行可能なアドレスを同一ロウアドレスに絞ることによって、マルチアクセス時期をセンスアンプ増幅後のみにすることができ、ＤＲＡＭの初期読み出し動作におけるノイズの影響などを考慮する必要がなくなる。また、フルページ分のデータを対象とできるので、アクセス方法を工夫すればヒット確率も上がるであろう。具体的には次のようにデュアルポートメモリを構成する。前記の通り、第３の実施形態はリード動作とライト動作を同時に実行可能なメモリコアを与える。このメモリコアに対し、ライトパスをデュアルポートで共有する調停回路と、リードパスをデュアルポートで共有する調停回路を付加する。調停のしかたは、一方のポートがライトパスに割り当てられる場合は、もう一方のポートはリードパスに割り当てるものとする。これにより、ライトパスとリードパスの同時動作という形で、デュアルポートのリード動作とライト動作の同時動作が実現できる。
【０１８７】
図１７は、本発明の好ましい第７の実施形態による半導体記憶装置４００の主要部の構成を示す回路図である。本実施形態による半導体記憶装置４００はＤＲＡＭである。
【０１８８】
図１７に示すように、アレイまわりのデータのコントロールは上述した第３の実施形態と同じであり、ライト動作用のライトバスＷＢＵＳと、リード動作用のリードバスＲＢＵＳを、ＰＯＲＴ１とＰＯＲＴ２が共有する構成を有している。アドレス遷移検出信号ＡＴ，ＡＴＤは、図９に示した検出回路１２０ｃを用いることができる。つまり、ライト要求とリード要求を同時に受け付け、かつ、リード用アドレスとライト用アドレスが一致するときのみ、アドレス遷移検出信号ＡＴ，ＡＴＤは"Ｌ"となる。これにより、第３の実施形態と同様、ライト要求とリード要求を同じアドレスで受け入れた際は、ライトデータをアレイに書き込むとともに、当該ライトデータをリードデータとして返す構成となる。
【０１８９】
各ポートデータの振り分けは次のように行う。尚、図１７において、サフィックスａが付された信号はＰＯＲＴ１用の信号であり、サフィックスｂが付された信号はＰＯＲＴ２用の信号である。
【０１９０】
まずライト動作系に関して説明する。ＰＯＲＴ１がライト動作であり、ＰＯＲＴ２がライト動作ではないときは、トライステートバッファ４０１のゲートが開き、ＰＯＲＴ１のライトデータがライトバスＷＢＵＳに供給される。逆に、ＰＯＲＴ１がライト動作ではなく、ＰＯＲＴ２がライト動作であるときは、トライステートバッファ４０２のゲートが開き、ＰＯＲＴ２のライトデータがライトバスＷＢＵＳに供給される。このようにして、各ポートからのライトデータを共通のライトバスＷＢＵＳに乗せ分ける。保持回路４０３は、いずれもポートからのライトデータであっても保持する必要があることから、ライトバッファ活性信号ＷＢＥａ，ＷＢＥｂの排他的論理和出力に応じて動作する。
【０１９１】
次にリード動作系に関して説明する。リードアンプ４０５及び保持回路４０６は、ＰＯＲＴ１がリード動作であり、ＰＯＲＴ２がリード動作ではないとき、もしくは、ＰＯＲＴ１がリード動作ではなく、ＰＯＲＴ２がリード動作であるときのどちらかで活性化しなければならないので、活性化信号ＲＡＥＰａ，ＲＡＥＰｂの排他的論理和出力によって活性化する。保持回路４０７も、活性化信号ＲＡＥＰａ，ＲＡＥＰｂの排他的論理和出力によって活性化する。そして、マルチプレクサ４０８で入力１側及び入力０側のどちらかを選び、選択された側の信号をリードバスＲＢＵＳに供給する。そして、ＰＯＲＴ１がリード動作であり、ＰＯＲＴ２がリード動作ではないときは、トライステートバッファ４０９を介してＰＯＲＴ１側に出力し、逆に、ＰＯＲＴ１がリード動作ではなく、ＰＯＲＴ２がリード動作であるときは、トライステートバッファ４１０を介してＰＯＲＴ２側に出力する。
【０１９２】
なお、ＰＯＲＴ１とＰＯＲＴ２のアドレスは、選択回路４１１を用いてリード動作用アドレスＩＡＲとライト動作用アドレスＩＡＷに分けて使用する。また、ＰＯＲＴ１とＰＯＲＴ２のアドレスは、アドレス遷移検出信号ＡＴを生成する際にも使用する。なお、本実施形態では、動作できない組み合わせである、ＰＯＲＴ１とＰＯＲＴ２における同時ライト動作や、ＰＯＲＴ１とＰＯＲＴ２における同時リード動作は受け付けない。その代わり、本実施形態では検出回路１２を備えており、ＰＯＲＴ１とＰＯＲＴ２における同時ライト動作が要求された場合は信号ＷＦＢＤＮを活性化させ、ＰＯＲＴ１とＰＯＲＴ２における同時リード動作が要求された場合は信号ＲＦＢＤＮを活性化させ、さらに、アドレス遷移検出信号が"Ｌ"となった場合は信号ＡＴＢＭＯＮを活性化させる。これらの信号を利用すれば、書けなかったデータをもう一度書いたり、読めなかったデータをもう一度読んだり、といった制御もできるであろう。
【０１９３】
尚、本発明による半導体記憶装置におけるモリセルアレイの構成が図１６に示した構成であってはならない訳ではなく、図１６に示したメモリセルアレイを用いることも可能である。以下の実施形態に関しても同様である。
【０１９４】
次に、本発明の好ましい第８の実施形態について説明する。
【０１９５】
本実施形態は、上述した第７の実施形態をさらに発展させ、同一のロウアドレスに対するリード及びライトの同時動作に加えて、異なるアドレスを指定したＰＯＲＴ１とＰＯＲＴ２における同時ライト動作、並びに、ＰＯＲＴ１とＰＯＲＴ２における同時リード動作が可能なデュアルポートメモリを提供するものである。第３の実施形態の展開例のひとつとなる。
【０１９６】
上述した第７の実施形態では、データ線およびカラム選択信号をライト動作用とリード動作用に分けていたが、本実施形態ではこれをＰＯＲＴ１用とＰＯＲＴ２用に分ける。具体的には次のようにデュアルポートメモリを構成する。前記の通り、第３の実施形態はリード動作とライト動作を同時に実行可能なメモリコアを与える。ＰＯＲＴ１がライト動作、ＰＯＲＴ２がリード動作の場合に同時動作が可能なよう、第３の実施形態のメモリコアのライトパスをＰＯＲＴ１に割り当て、リードパスをＰＯＲＴ２に割り当てる。さらに、ＰＯＲＴ１がライト動作、ＰＯＲＴ２がライト動作の場合に同時動作が可能なよう、ＰＯＲＴ２側にライト機能を付加し、データラインをＩ／Ｏとする。仮に、この構成をＡと呼ぶとする。一方、ＰＯＲＴ２がライト動作、ＰＯＲＴ１がリード動作の場合に同時動作が可能なよう、第３の実施形態のメモリコアのライトパスをＰＯＲＴ２に割り当て、リードパスをＰＯＲＴ１に割り当てる。さらに、ＰＯＲＴ２がライト動作、ＰＯＲＴ１がライト動作の場合に同時動作が可能なよう、ＰＯＲＴ１側にライト機能を付加し、データラインをＩ／Ｏとする。仮に、この構成をＢと呼ぶとする。構成Ａと構成Ｂを重ね合わせると、第３の実施形態を、２種、同時に内在させた形で、ＰＯＲＴ１とＰＯＲＴ２に分かれている構成を得ることができる。
【０１９７】
図１８は、本発明の好ましい第８の実施形態による半導体記憶装置５００の主要部の構成を示す回路図である。本実施形態による半導体記憶装置５００はＤＲＡＭである。
【０１９８】
図１８に示すように、ＰＯＲＴ１を用いたライト動作時には、保持回路５０１でライトデータを取り込み、ライトバッファ５０２によってＩ／ＯラインＬＩＯａにライトデータを供給する。ＰＯＲＴ１を用いたリード動作時には、Ｉ／ＯラインＬＩＯａを介して供給されたリードデータをリードアンプ５０３で増幅し、保持回路５０４で保持し、マルチプレクサ５０６で選択した後、トライステートバッファ５０７から出力する。これらをＰＯＲＴ１内で独立したタイミングで行う。但し、ＰＯＲＴ１のリード動作がＰＯＲＴ２のライト動作と同じアドレスで重なったときは、ＰＯＲＴ２のライトデータをＰＯＲＴ１のリードデータとして利用する必要がある。この場合には、保持回路５０４ではなくＰＯＲＴ２側の保持回路５０８に保持されたデータをマルチプレクサ５０６によって選択する。したがって、ＰＯＲＴ２側の保持回路５０８は、ＰＯＲＴ１系のタイミングで動作する必要がある。以上の説明は、ＰＯＲＴ２側についても同様であるので、重複する説明は省略する。
【０１９９】
このため、カラム選択ドライバ５０９、リードアンプ５０３、マルチプレクサ５０６を制御するアドレス遷移検出信号ＡＴａ，ＡＴｂは、図１９に示す検出回路１３０ｅによって生成される。図１９に示す検出回路１３０ｅは、ＰＯＲＴ１がリード、ＰＯＲＴ２がライトであり、且つ、ＰＯＲＴ１のアドレスとＰＯＲＴ２のアドレスが同一である場合、アドレス遷移検出信号ＡＴａをＬレベルとする。同様に、ＰＯＲＴ１がライト、ＰＯＲＴ２がリードであり、且つ、ＰＯＲＴ１のアドレスとＰＯＲＴ２のアドレスが同一である場合、アドレス遷移検出信号ＡＴｂをＬレベルとする。
【０２００】
アドレス遷移検出信号ＡＴａが"Ｌ"である場合には、ＰＯＲＴ１のカラム選択信号およびリードアンプ５０３は駆動されず、ＰＯＲＴ２のライトデータをＰＯＲＴ１のリードデータとして代用する。ＰＯＲＴ２のライト動作については通常通り行う。同様に、アドレス遷移検出信号ＡＴｂが"Ｌ"である場合には、ＰＯＲＴ２のカラム選択信号およびリードアンプは駆動されず、ＰＯＲＴ１のライトデータをＰＯＲＴ２のリードデータとして代用する。ＰＯＲＴ１のライト動作については通常通り行う。
【０２０１】
本実施形態によるデュアルポートメモリは、検出回路５１０を備えている。検出回路５１０は、禁止された組み合わせである、同一アドレスを指定したＰＯＲＴ１とＰＯＲＴ２における同時ライト動作が要求された場合に活性化する信号ＷＦＢＤＮと、ＡＴａ，ＡＴｂのいずれかが"Ｌ"となった場合に活性化する信号ＡＴＢＭＯＮを生成する。これらの信号を利用すれば、書けなかったデータをもう一度書くといった制御もできるであろう。尚、図１８に示した回路図では、禁止されたアクセスが要求された際は動作しないよう考慮されている。
【０２０２】
本実施形態では、同一アドレスを指定したＰＯＲＴ１とＰＯＲＴ２における同時リード動作は禁止されていない。しかしながら、リード動作によって得られる信号量が、一方のリード動作分の信号量しか保障できない場合は、図２０に示すように、一方のポートに対応したリード動作のみを行い、得られたリードデータをＰＯＲＴ１とＰＯＲＴ２で共有することが好ましい。
【０２０３】
図２０に示す回路では、同一アドレスのリード動作同士の組み合わせの際には、ＰＯＲＴ２は通常通りリード動作を行う。一方、ＰＯＲＴ１側は、マルチプレクサ５２１を通じてＰＯＲＴ２のリードデータを受け取り、一方、アドレス遷移検出信号ＡＴＲＲによって、ＰＯＲＴ１用のカラム選択ドライバ５２２を止め、ＰＯＲＴ１用のリードアンプ５２３の活性化も禁止する。アドレス遷移検出信号ＡＴＲＲは、図２１に示す検出回路１３０ｆによって生成することができる。アドレス遷移検出信号ＡＴＲＲＤは、アドレス遷移検出信号ＡＴＲＲをリードアンプ増幅タイミングまで遅らせた信号である。
【０２０４】
次に、本発明の好ましい第９の実施形態について説明する。
【０２０５】
第４の実施形態では、ライト要求とリード要求を同じアドレスで受け付けた際は、まずメモリセルアレイに記憶されているデータをリードし、その後、ライトデータを書き込んでいる。これを利用して、本実施形態は、同一ロウアドレスに対し、リード動作とライト動作を同時に実行できるデュアルポートメモリを提供するものである。具体的には次のようにデュアルポートメモリを構成する。前記の通り、第４の実施形態もリード動作とライト動作を同時に実行可能なメモリコアを与える。このメモリコアに対し、ライトパスをデュアルポートで共有する調停回路と、リードパスをデュアルポートで共有する調停回路を付加する。調停のしかたは、一方のポートがライトパスに割り当てられる場合は、もう一方のポートはリードパスに割り当てるものとする。これにより、ライトパスとリードパスの同時動作というかたちで、デュアルポートのリード動作とライト動作の同時動作が実現できる。
【０２０６】
具体的な回路構成は、図１７に示した第７の実施形態によるデュアルポートメモリと同一であり、アドレス遷移検出信号ＡＴは図１１に示した検出回路１３０ｄを用いる。この場合、WRITE to READ動作でライト動作時のアドレスとリード動作時のアドレスが同じときにＡＴ＝"Ｌ"となり、第４の実施形態で述べた回避動作を行う。このため、サイクル時間tCKを律速せずに、まず書かれているデータをリードし、後にデータをライトする動作を実現できる。なお、本動作は、リードアンプ活性待ち時間分、アレイに対する書き込みが遅れるので、ライトコマンド後にプリチャージコマンド投入可能時刻を決めるスペックtDPL(tWR)に対して、動作が厳しくなることは、第４の実施形態と同様である。
【０２０７】
次に、本発明の好ましい第１０の実施形態について説明する。
【０２０８】
本実施形態は、上述した第９の実施形態をさらに発展させ、同一ロウアドレスに対するリード動作とライト動作の同時動作に加えて、リード動作とリード動作の同時動作、および、異なるアドレス間のライト動作とライト動作の同時動作ができるデュアルポートメモリを提供するものである。第４の実施形態の展開例のひとつとなる。
【０２０９】
上述した第９の実施形態では、データ線およびカラム選択信号をライト動作用とリード動作用に分けていたが、本実施形態ではライト動作用とリード動作用のセットを、もう１セット用意し、これらをＰＯＲＴ１用とＰＯＲＴ２用にそれぞれ使い分ける。具体的には次のようにデュアルポートメモリを構成する。前記の通り、第４の実施形態もリード動作とライト動作を同時に実行可能なメモリコアを与える。ＰＯＲＴ１がライト動作、ＰＯＲＴ２がリード動作の場合に同時動作が可能で、かつ、次サイクルのＰＯＲＴ２のリード動作にも対応できるよう、第４の実施形態のメモリコアのライトパスをＰＯＲＴ１に割り当て、リードパスをＰＯＲＴ２に割り当てる。仮に、この構成をＡと呼ぶとする。一方、ＰＯＲＴ２がライト動作、ＰＯＲＴ１がリード動作の場合に同時動作が可能で、かつ、次サイクルのＰＯＲＴ１のリード動作にも対応できるよう、第４の実施形態のメモリコアのライトパスをＰＯＲＴ２に割り当て、リードパスをＰＯＲＴ１に割り当てる。仮に、この構成をＢと呼ぶとする。構成Ａと構成Ｂを重ね合わせると、第４の実施形態を、２種、同時に内在させた形で、ＰＯＲＴ１とＰＯＲＴ２に、それぞれがライト動作用とリード動作用のセットを１セット持った状態で、分かれている構成を得ることができるが、同一ポートでのライト動作と次サイクルのリード動作の組み合わせには対応できていない。そこで、さらに、ＰＯＲＴ１のライト動作の次サイクルのＰＯＲＴ１のリード動作にも対応できるようバイパスレジスタを設け、同様に、ＰＯＲＴ２のライト動作の次サイクルのＰＯＲＴ２のリード動作にも対応できるようバイパスレジスタを設ける。これにより、あらゆる動作に対応できるようになる。
【０２１０】
図２２は、本発明の好ましい第１０の実施形態による半導体記憶装置６００の主要部の構成を示す回路図である。本実施形態による半導体記憶装置６００はＤＲＡＭである。
【０２１１】
図２２に示すように、本実施形態では、ＰＯＲＴ１のライト動作では、ライトバスＷＢＵＳａから供給されたライトデータは、保持回路６０１に取り込まれ、ライトバッファ６０２によってライト用データラインＷＬＩＮＥａに供給される。ＰＯＲＴ１のリード動作では、リード用データラインＲＬＩＮＥａから読み出されたリードデータをリードアンプ６０３で増幅、保持回路６０４で保持し、マルチプレクサ６０７，６０８により選択されてリードバスＲＢＵＳａに出力される。これらの動作をＰＯＲＴ１内において独立したタイミングで行う。ＰＯＲＴ２についても同様である。
【０２１２】
但し、ＰＯＲＴ１のリード動作が、ＰＯＲＴ１又はＰＯＲＴ２のライト動作と、同じアドレスで重なったときは、どちらかライトしているポートのデータを利用する必要がある。このため、保持回路６０５，６０６は、それぞれ、ＰＯＲＴ１とＰＯＲＴ２のＯＲのタイミングで動くことになる。まず、マルチプレクサ６０７でＰＯＲＴ１の保持データを使うか、ＰＯＲＴ２の保持データを使うかを選択し、さらに、マルチプレクサ６０８でアレイから読み出したデータを使うか保持データを使うかを選択する。このため、カラム選択ドライバ６１０，６１１、リードアンプ６０３、マルチプレクサ６０７，６０８を制御するアドレス遷移検出信号ＡＴａ，ＡＴｂは、図２３に示す検出回路１３０ｇによって生成する必要がある。
【０２１３】
図２３に示す検出回路１３０ｇは、ＰＯＲＴ１がWRITE to READ動作をし、両アドレスが同じ場合か、または、ＰＯＲＴ２がライト動作をした後ＰＯＲＴ１がリード動作をし、ＰＯＲＴ２のライトアドレスとＰＯＲＴ１のリードアドレスが同じ場合、アドレス遷移検出信号ＡＴａをＬレベルとする。また、ＰＯＲＴ２がライト動作をした後、ＰＯＲＴ１がリード動作をし、ＰＯＲＴ２のライトアドレスとＰＯＲＴ１のリードアドレスが同じ場合、信号ＡＴＭａをＬレベルとする。同様に、ＰＯＲＴ２がWRITE to READ動作をし、両アドレスが同じ場合か、または、ＰＯＲＴ１がライト動作をした後ＰＯＲＴ２がリード動作をし、ＰＯＲＴ１のライトアドレスとＰＯＲＴ２のリードアドレスが同じ場合、アドレス遷移検出信号ＡＴｂをＬレベルとする。また、ＰＯＲＴ１がライト動作をした後、ＰＯＲＴ２がリード動作をし、ＰＯＲＴ１のライトアドレスとＰＯＲＴ２のリードアドレスが同じ場合、信号ＡＴＭｂをＬレベルとする。
【０２１４】
図２２に示すように、アドレス遷移検出信号ＡＴａ＝"Ｌ"である場合は、ＰＯＲＴ１用のカラム選択ドライバ６１０、リードアンプ６０３、保持回路６０４は駆動されず、ライトしているポートのライト動作を行う。信号ＡＴＭａはライトしているポートに応じてＨ又はＬとなり、代用データとして、ライトしているポートのライト動作に用いたデータの読み出しを制御する。
【０２１５】
本実施形態によるデュアルポートメモリは、検出回路６１２を備えている。検出回路６１２は、図１８に示した検出回路５１０と同じ回路構成を有しており、検出回路５１０と同じ役割を果たす。尚、本実施形態においても、禁止されたアクセスが要求された際は動作しないよう考慮されている。
【０２１６】
本実施形態においても、同一アドレスを指定したＰＯＲＴ１とＰＯＲＴ２における同時リード動作は禁止されていない。しかしながら、リード動作によって得られる信号量が、一方のリード動作分の信号量しか保障できない場合は、図２４に示すように、一方のポートに対応したリード動作のみを行い、得られたリードデータをＰＯＲＴ１とＰＯＲＴ２で共有することが好ましい。
【０２１７】
図２４に示す回路では、同一アドレスのリード動作同士の組み合わせの際には、ＰＯＲＴ２は通常通りリード動作を行う。一方、ＰＯＲＴ１側は、マルチプレクサ６２１を通じてＰＯＲＴ２のリードデータを受け取り、一方、アドレス遷移検出信号ＡＴＲＲによって、ＰＯＲＴ１用のカラム選択ドライバ６２２を止め、ＰＯＲＴ１用のリードアンプ６２３の活性化も禁止する。アドレス遷移検出信号ＡＴＲＲは、図２１に示した検出回路１３０ｆによって生成することができる。アドレス遷移検出信号ＡＴＲＲＤは、アドレス遷移検出信号ＡＴＲＲをリードアンプ増幅タイミングまで遅らせた信号である。
【０２１８】
なお、本動作はリードアンプのタイミング待ち時間分、アレイに対する書き込みが遅れるので、ライトコマンド後にプリチャージコマンド投入可能時刻を決めるスペックtDPL(tWR)に対して動作が厳しくなることは、第９の実施形態と同様である。
【０２１９】
次に、本発明の好ましい第１１の実施形態について説明する。
【０２２０】
本実施形態は、本発明をＰＲＡＭに適用した例である。ＰＲＡＭはメモリセルに相変化材料を用いた半導体記憶装置であり、相変化材料が結晶状態（セット状態）であるか、アモルファス状態（リセット状態）であるかによって、情報を不揮発的に記憶する。また、相変化材料を結晶状態とアモルファス状態の中間状態に精度良く制御すれば、１つのメモリセルに２値を超える情報を記録することが可能である。このような多値ＰＲＡＭにおいては、相変化材料の状態を高精度に制御する必要があることから、いかなるデータを書き込む場合も、一旦リセットライト（アモルファス化）を行ってから、続いて、セットライト（結晶化）を行うことが望ましい。
【０２２１】
このような制御を行う場合、１回のライト要求に応じて２回のライト動作を行う必要があることから、WRITE to READ動作において、最初のライト要求における２回目のライト動作が、次サイクルのリード動作と衝突するという問題が生じる。また、WRITE to WRITE動作においても、最初のライト要求における２回目のライト動作が、次サイクルの１回目のライト動作と衝突するという問題が生じる。本実施形態はこれら問題を解決するものである。つまり、図１に示した第１の実施形態によるWRITE to READ動作の対策に加え、WRITE to WRITE動作にも対応するものである。具体的には次のように回路を構成する。前記の通り、第１の実施形態は、ライト動作とリード動作の衝突を回避するメモリコアを与える。本実施形態の場合でリード動作と衝突するのは、ライト要求における２回目のライト動作であるので、ライトパスにはライト要求における２回目のライト動作を割り当てる。一方、ライト要求における１回目のライト動作は、次サイクルのリード動作と衝突することはないので、リードパスを流用可能となる。よって、リードパスにライト動作機能を設け、リードラインはＩ／Ｏに変更する。これにより、WRITE to READ動作の問題を解決できる。また、ライト動作に関しても、１回目のライト動作用のパスは第１の実施形態のリードパスに追加され、２回目のライト動作用のパスは第１の実施形態のライトパスそのものであるため、、互いのパスが分離され、WRITE to WRITEの問題も解決できる。
【０２２２】
図２５は、本発明の好ましい第１１の実施形態による半導体記憶装置７００の主要部の構成を示す回路図である。特に限定されるものではないが、本実施形態による半導体記憶装置７００はＰＲＡＭである。
【０２２３】
図２５に示すように、本実施形態による半導体記憶装置７００は、ワード線ＷＬ０，ＷＬ１・・・と、ビット線対ＢＬ０，ＢＬ１・・・と、ワード線とビット線の交点に配置されたメモリセルＭＣとを有するメモリセルアレイ７０７を備えている。各ビット線対ＢＬ０，ＢＬ１・・・には、それぞれセンスアンプ７０４が接続されている。各センスアンプ７０４は、それぞれ対応するカラムスイッチ７０３を介して、Ｉ／ＯラインＬＩＯに接続されているとともに、それぞれ対応するカラムスイッチ７１１を介して、ライト用データラインＷＬＩＮＥに接続されている。カラムスイッチ７０３には、カラム選択ドライバ７０５の出力であるカラム選択信号Ｙ０，Ｙ１・・・がそれぞれ供給され、これによってリード動作時又はライト動作時においてはいずれか一つがオンする。一方、カラムスイッチ７１１には、ライト用カラム選択ドライバ７１２の出力であるライト用カラム選択信号ＹＷ０，ＹＷ１・・・がそれぞれ供給され、これによってライト動作時においてはいずれか一つがオンする。
【０２２４】
Ｉ／ＯラインＬＩＯは、相補のリードデータ又はライトデータを伝送するための配線であり、入出力回路７２０に接続されている。また、ライト用データラインＷＬＩＮＥは、相補のライトデータを伝送するための配線であり、入出力回路７２０に接続されている。入出力回路７２０は、ライトバスＷＢＵＳ１を介して供給されたライトデータＷＤ１をＩ／ＯラインＬＩＯに供給するライトバッファ７０２と、ライトバスＷＢＵＳ２を介して供給されたライトデータＷＤ２をライト用データラインＷＬＩＮＥに供給するライトバッファ７１０と、Ｉ／ＯラインＬＩＯを介して供給されたリードデータＲＤをリードバスＲＢＵＳに供給するリードアンプ７１４とを備えている。
【０２２５】
また、入出力回路７２０は、ライトデータＷＤ２を一時的に保持するレジスタ７１８と、リードアンプ７１４の出力とレジスタ７１８の出力のいずれかを選択するマルチプレクサ７１６をさらに備えている。マルチプレクサ７１６の選択は、図２６に示す検出回路７３０の出力によって制御される。
【０２２６】
次に、図２５を参照しながら、ＡＴ１＝"Ｈ"，ＡＴ２＝"Ｈ"である場合、つまり、通常時におけるライトサイクルおよびリードサイクルを説明する。
【０２２７】
まず、ライトサイクルを説明する。ライトサイクルでは、まずプリライト用データをライトバスＷＢＵＳ１に書き込み、これを保持回路７０１に信号ＷＢＥ１の活性化タイミングで取り込み、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給する。そして、カラム選択ドライバ７０５で選択されたカラムスイッチ７０３を介して、プリライト用データをビット線対ＢＬ０に供給する。そして、センスアンプ７０４によってビット線対ＢＬ０を駆動し、ワードドライバ７０６で選択されたメモリセルＭＣに対して書き込む。続いて、メモリセルＭＣへの書き込みが終了するのを待って、ライト用データをライトバスＷＢＵＳ２に書き込み、これを保持回路７０８に信号ＷＢＥ２の活性化タイミングで取り込み、ライトバッファ７１０によってライト用データラインＷＬＩＮＥに供給する。そして、カラム選択ドライバ７１２で選択されたカラムスイッチ７１１を介して、ライト用データをビット線対ＢＬ０に供給する。そして、センスアンプ７０４によってビット線対ＢＬ０を駆動し、ワードドライバ７０６で選択されたメモリセルＭＣに対して再び書き込みを行う。
【０２２８】
次に、リードサイクルを説明する。リードサイクルは通常のリード動作と変わりない。つまり、カラム選択ドライバ７０５でカラムスイッチ７０３を選択し、センスアンプ７０４に保持されているリードデータを、Ｉ／ＯラインＬＩＯに読み出す。読み出されたリードデータは、活性化信号ＲＡＥＰの活性化タイミングでリードアンプ７１４により増幅され、保持回路７１５に保持される。さらに、マルチプレクサ７１６を経て信号線ＲＢＵＳＰに読み出され、トライステートバッファ７１７によってリードバスＲＢＵＳに出力する。なお、保持回路７１８及びマルチプレクサ７１７は、図１に示した保持回路１１５及びマルチプレクサ１１１と同じ役割を果たす。
【０２２９】
以上の動作は、アドレス遷移検出信号ＡＴ１＝"Ｈ"，ＡＴ２＝"Ｈ"である場合、つまり、通常時における動作である。図２６に示すように、アドレス遷移検出信号ＡＴ１は検出回路７３１によって生成され、WRITE to READ動作で、かつ、アドレスが遷移しないときに"Ｌ"となる。つまり、この回路部分は、図２に示した検出回路１３０と全く同じである。ＡＴ１がＬレベルになると、同一アドレスのWRITE to READ動作の際に、同時に行われているライト動作とリード動作に対して、メモリセルアレイ７０７はリード動作を止めてライト動作のみを行い、周辺回路はライト動作に用いたデータをリードデータとしてそのまま返す、という動作が起動される。
【０２３０】
また、アドレス遷移検出信号ＡＴ２は検出回路７３２によって生成され、WRITE to WRITE動作で、かつ、アドレスが遷移しないときに"Ｌ"となり、次サイクルで"Ｈ"にリセットされる信号である。ＡＴ２がＬレベルになると、同一アドレスのWRITE to WRITE動作の際に、同時に行われている2つのライト動作に対して、先のライト動作を止めて後のライト動作のみを行う、という動作が起動される。アドレス遷移検出信号ＡＴ２の生成において、信号ＡＣＬＫＤによるリセットが必要になる理由は後の説明で明らかになる。
【０２３１】
次に、WRITE to WRITE動作における動作タイミングを、アドレスが異なる場合とアドレスが同一である場合のそれぞれについてタイミングチャートを用いて説明する。ここでは、説明のしやすさから、アレイ制御用クロックＡＣＬＫと、これをプリライト動作時間ｄだけ遅らせたクロックＡＣＬＫＤを用いて説明する。
【０２３２】
図２７は、異なるアドレスに対してライト動作が連続して要求された場合（WRITE to WRITE動作）の動作タイミングを示すタイミング図である。
【０２３３】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ１１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ１１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。その後、カラム選択信号Ｙ０の活性化によってプリライトデータＤ１１がビット線対ＢＬ０に供給される。次に、プリライト動作時間ｄだけ遅れてライトバスＷＢＵＳ２にライトデータＤ１２が供給される。そして、アレイ制御用クロックＡＣＬＫに対して同じくプリライト動作時間ｄだけ遅れたクロックＡＣＬＫＤに同期した信号ＷＢＥ２Ｐによって、保持回路７０８にライトデータＤ１２が取り込まれ、ライトバッファ７１０によってライト用データラインＷＬＩＮＥに供給される。その後、カラム選択信号ＹＷ０の活性化によってライトデータＤ１２がビット線対ＢＬ０に供給される。これにより、ビット線対ＢＬ０に繋がる所定のメモリセルに対して、プリライト及びライトがこの順に実行される。
【０２３４】
一方、時刻ｔ２においてビット線対ＢＬ１に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ２１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ２１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。その後、カラム選択信号Ｙ１の活性化によってプリライトデータＤ２１がビット線対ＢＬ１に供給される。次に、プリライト動作時間ｄだけ遅れてライトバスＷＢＵＳ２にライトデータＤ２２が供給される。そして、アレイ制御用クロックＡＣＬＫに対して同じくプリライト動作時間ｄだけ遅れたクロックＡＣＬＫＤに同期した信号ＷＢＥ２Ｐによって、保持回路７０８にライトデータＤ２２が取り込まれ、ライトバッファ７１０によってライト用データラインＷＬＩＮＥに供給される。その後、カラム選択信号ＹＷ１の活性化によってライトデータＤ２２がビット線対ＢＬ１に供給される。これにより、ビット線対ＢＬ１に繋がる所定のメモリセルに対して、プリライト及びライトがこの順に実行される。
【０２３５】
ここで、時刻ｔ１に要求されたのデータＤ１２のライト動作と、時刻ｔ２に要求されたのデータＤ２１のプリライト動作は同時に行われる。しかしながら、図２７に示すように信号パスが完全に分離しているため、データの衝突はない。
【０２３６】
図２８は、同一のアドレスに対してライト動作が連続して要求された場合（WRITE to WRITE動作）の動作タイミングを示すタイミング図である。
【０２３７】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ１１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ１１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。その後、カラム選択信号Ｙ０の活性化によってプリライトデータＤ１１がビット線対ＢＬ０に供給される。次に、プリライト動作時間ｄだけ遅れてライトバスＷＢＵＳ２にライトデータＤ１２が供給される。そして、アレイ制御用クロックＡＣＬＫに対して同じくプリライト動作時間ｄだけ遅れたクロックＡＣＬＫＤに同期した信号ＷＢＥ２Ｐによって、保持回路７０８にライトデータＤ１２が取り込まれ、ライトバッファ７１０によってライト用データラインＷＬＩＮＥに供給される。但し、本例では、時刻ｔ２においてもビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されるため、上記の書き込みの途中に、次サイクルの動作が割り込む。
【０２３８】
つまり、時刻ｔ２においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ２１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ２１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。この時、ライト用データラインＷＬＩＮＥ側では、時刻ｔ１に要求されたライトサイクルによるライトデータＤ１２が書き込み途中の状態にある。しかし、このデータＤ１２はプリライトデータＤ２１によって上書きされるべきデータなので、書き込む必要はない。そこで、アドレス遷移検出信号ＡＴ２によってライトデータＤ１２の書き込みを中止し、その代わりに、プリライトデータＤ２１をＩ／ＯラインＬＩＯに書き込む。続くカラム選択信号の活性化動作においても、アドレス遷移検出信号ＡＴ２を用いてカラム選択信号ＹＷ０の活性化を禁止し、その代わりに、カラム選択信号Ｙ０を活性化させる。これにより、ビット線対ＢＬ０上における異なるライトデータの衝突を避ける。
【０２３９】
次に、時間ｄだけ遅れて、ライトバスＷＢＵＳ２にライトデータＤ２２を書き込み、クロックＡＣＬＫＤに同期した信号ＷＢＥ２Ｐによって保持回路７０８に取り込む。そして、保持したライトデータＤ２２をライト用データラインＷＬＩＮＥに供給するのであるが、もし、アドレス遷移検出信号ＡＴ２をアレイ制御用クロックＡＣＬＫのみに同期させた場合、Ｌレベルとなるアドレス遷移検出信号ＡＴ２が時刻ｔ２に対応する信号ＷＢＥ２ＰのＨレベルと重なってしまい、この場合にはライト用データラインＷＬＩＮＥへの書き込みに支障をきたす。そのため、アドレス遷移検出信号ＡＴ２のリセットはクロックＡＣＬＫＤで行う。これにより、信号ＷＢＥ２Ｐによってライト用データラインＷＬＩＮＥに書き込みを行い、クロックＡＣＬＫＤに同期するカラム選択信号ＹＷ０によってビット線対ＢＬ０に書き込みを行う。
【０２４０】
以上のように、WRITE to WRITE動作では、異なるアドレス間動作、同一アドレス間動作とも、データが衝突すること無く動作できる。
【０２４１】
次に、最も動作が複雑となる、同一アドレスに対するWRITE to WRITE to READ動作について説明する。
【０２４２】
図２９は、同一のアドレスに対するWRITE to WRITE to READ動作を示すタイミング図である。
【０２４３】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ１１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ１１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。その後、カラム選択信号Ｙ０の活性化によってプリライトデータＤ１１がビット線対ＢＬ０に供給される。次に、プリライト動作時間ｄだけ遅れてライトバスＷＢＵＳ２にライトデータＤ１２が供給される。そして、アレイ制御用クロックＡＣＬＫに対して同じくプリライト動作時間ｄだけ遅れたクロックＡＣＬＫＤに同期した信号ＷＢＥ２Ｐによって、保持回路７０８にライトデータＤ１２が取り込まれ、ライトバッファ７１０によってライト用データラインＷＬＩＮＥに供給される。本例においても、時刻ｔ２においてもビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されるため、上記の書き込みの途中に、次サイクルの動作が割り込む。
【０２４４】
つまり、時刻ｔ２においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ２１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ２１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。この時、ライト用データラインＷＬＩＮＥ側では、時刻ｔ１に要求されたライトサイクルによるライトデータＤ１２が書き込み途中の状態にある。しかし、このデータＤ１２はプリライトデータＤ２１によって上書きされるべきデータなので、書き込む必要はない。そこで、アドレス遷移検出信号ＡＴ２によってライトデータＤ１２の書き込みを中止し、その代わりに、プリライトデータＤ２１をＩ／ＯラインＬＩＯに書き込む。続くカラム選択信号の活性化動作においても、アドレス遷移検出信号ＡＴ２を用いてカラム選択信号ＹＷ０の活性化を禁止し、その代わりに、カラム選択信号Ｙ０を活性化させる。
【０２４５】
次に、時間ｄだけ遅れて、ライトバスＷＢＵＳ２にライトデータＤ２２を書き込み、クロックＡＣＬＫＤに同期した信号ＷＢＥ２Ｐによって保持回路７０８に取り込む。そして、アドレス遷移検出信号ＡＴ＝"Ｈ"を受けて、ライト用データラインＷＬＩＮＥにライトデータＤ２２を供給し、カラム選択信号ＹＷ０によってビット線対ＢＬ０に書き込む。
【０２４６】
さらに、時刻ｔ３においてビット線対ＢＬ０に相当するアドレスを指定してリード要求が発行されると、通常では、アレイ制御用クロックＡＣＬＫに同期してカラム選択信号Ｙ０を立ち上げ、ビット線対ＢＬ０からデータを読み出すのであるが、現在はライトデータＤ２２の書き込み途中であり、アドレス遷移検出信号ＡＴ１＝"Ｌ"である。このため、カラム選択信号Ｙ０は立ち上がらず、ビット線対ＢＬ０にはライトデータＤ２２のライト動作のみが継続される。続いて、活性化信号ＲＡＥＰが立ち上がり、通常であれば保持回路７１５にリードデータを取り込むのであるが、アドレス遷移検出信号ＡＴ１＝"Ｌ"であることから、リードアンプ７１４及び保持回路７１５は動作しない。その代わりに、信号線ＨＤＡＴＡ上の信号をマルチプレクサ７１６によって選択し、信号線ＲＢＵＳＰに出力する。さらに、トライステートバッファ７１７によってリードバスＲＢＵＳに出力する。
【０２４７】
このように、本実施形態では、WRITE to WRITE動作も、WRITE to READ動作も、サイクル時間を律速せず、データの衝突もなく、正しく行うことができる。ただし、本実施形態ではライト動作がプリライト動作分遅れるので、その分、tDPLが厳しくなることには言及しておく。
【０２４８】
なお、上記実施形態では、ライトバスＷＢＵＳ１の書き込みに対して、ライトバスＷＢＵＳ２の書き込みを遅らせているが、これらが同時でであってもよい。ライトバスＷＢＵＳ２上のデータが１サイクル保持されているのであれば、時間ｄだけ遅れても取り込みは可能である。
【０２４９】
次に、本発明の好ましい第１２の実施形態について説明する。
【０２５０】
上記第１１の実施形態では、ライトサイクルの際、プリライト動作終了後、速やかに、続くライト動作を実行したが、本実施形態は、両動作ともクロック同期で実行する。つまり、第２の実施形態によるWRITE to READ動作の対策に加え、WRITE to WRITE動作にも対応するものである。この場合、プリライト動作時間を見越したクロックＡＣＬＫＤは存在しないことから、WRITE to WRITE動作用のアドレス遷移検出信号ＡＴ２は、図３０に示す検出回路７３０ａによって生成する。図３０に示す検出回路７３０ａは、図２６に示した検出回路７３０からＳＲ−ＦＦを省略した回路構成を有している。WRITE to READ動作用のアドレス遷移検出信号ＡＴ１の生成回路部には変更はない。
【０２５１】
図３１は、同一のアドレスに対するWRITE to WRITE to READ動作を示すタイミング図である。
【０２５２】
まず、時刻ｔ１においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ１１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ１１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。その後、カラム選択信号Ｙ０の活性化によってプリライトデータＤ１１がビット線対ＢＬ０に供給される。次に、時刻ｔ２に同期した信号ＷＢＥ２Ｐによって、保持回路７０８にライトデータＤ１２が取り込まれる。また、時刻ｔ２のアレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ２Ｐによってライト用データラインＷＬＩＮＥに書きこもうとするが、アドレス遷移検出信号ＡＴ＝"Ｌ"のため信号ＷＢＥ２は全く立ち上がらず、ライト用データラインＷＬＩＮＥへの書き込みは行わない。同様にカラム選択信号ＹＷ０も全く立ち上がらない。
【０２５３】
そして、時刻ｔ２においてビット線対ＢＬ０に相当するアドレスを指定してライト要求が発行されると、ライトバスＷＢＵＳ１にプリライトデータＤ２１が供給される。そして、アレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ１によって、保持回路７０１にプリライトデータＤ２１が取り込まれ、ライトバッファ７０２によってＩ／ＯラインＬＩＯに供給される。このとき、動作が重なっている時刻ｔ１のライトサイクルは、ＡＴ２＝"Ｌ"のため完全に停止しており、このためデータの衝突はない。また、上述した第１１の実施形態の場合は、動作しているものを停止させるのであるが、本実施例では全く動作させないので、消費電流も抑えられる。
【０２５４】
次に、時刻ｔ３に同期してライトバスＷＢＵＳ２にライトデータＤ２２を書き込み、時刻ｔ３のアレイ制御用クロックＡＣＬＫに同期した信号ＷＢＥ２Ｐによって保持回路７０８に取り込む。そして、アドレス遷移検出信号ＡＴ＝"Ｈ"を受けて、ライト用データラインＷＬＩＮＥにライトデータＤ２２を供給し、カラム選択信号ＹＷ０によってビット線対ＢＬ０に書き込む。
【０２５５】
さらに、時刻ｔ３においてビット線対ＢＬ０に相当するアドレスを指定してリード要求が発行されると、通常では、アレイ制御用クロックＡＣＬＫに同期してカラム選択信号Ｙ０を立ち上げ、ビット線対ＢＬ０からデータを読み出すのであるが、現在はライトデータＤ２２の書き込み途中であり、アドレス遷移検出信号ＡＴ１＝"Ｌ"である。このため、カラム選択信号Ｙ０は立ち上がらず、ビット線対ＢＬ０にはライトデータＤ２２のライト動作のみが継続される。続いて、活性化信号ＲＡＥＰが立ち上がり、通常であれば保持回路７１５にリードデータを取り込むのであるが、アドレス遷移検出信号ＡＴ１＝"Ｌ"であることから、リードアンプ７１４及び保持回路７１５は動作しない。その代わりに、信号線ＨＤＡＴＡ上の信号をマルチプレクサ７１６によって選択し、信号線ＲＢＵＳＰに出力する。さらに、トライステートバッファ７１７によってリードバスＲＢＵＳに出力する。
【０２５６】
このように、本実施形態では、WRITE to WRITE動作も、WRITE to READ動作も、サイクル時間を律速せず、データの衝突もなく、行うことができる。ただし、本実施形態ではライト動作が１サイクル分遅れるので、tDPLに１サイクルのレイテンシが必要になることに言及しておく。
【０２５７】
なお、上記実施形態では、ライトバスＷＢＵＳ１の書き込みに対して、ライトバスＷＢＵＳ２の書き込みを遅らせているが、本実施形態ではこれは必須である。したがって、ライトバスＷＢＵＳ２のデータがライトバスＷＢＵＳ１と同時に供給される場合には、シフトレジスタなどで１サイクル遅らせる必要がある。
【０２５８】
次に、本発明の好ましい第１３の実施形態について説明する。
【０２５９】
近年のＤＲＡＭは、ライトコマンド投入からアレイへのライト動作開始までの期間に、所定のレイテンシが追加されることがある。例えばＤＤＲ型のＤＲＡＭでは、当該サイクルでＤＱＳが入力され始め、次サイクルでＤＱＳに同期してデータを取り込み、さらに次サイクルでデータをＣＬＫに乗せるので、合計２サイクルのレイテンシを持つ。この２サイクルの間に演算をすませ、ライト動作は正規のレイテンシで動作させれば、スペックtDPL(tWR)も犯されない。本実施形態は、上述した第１２の実施形態で説明した構成を１サイクル前倒しで適用した例である。
【０２６０】
図３２は、本実施形態における動作タイミングを説明するための図であり、（ａ）は単独のライト動作、（ｂ）はWRITE to READ動作、（ｃ）はWRITE to WRITE動作を示している。本実施形態においては、先行するライトのデータを外部から受け取ることが出来ないため、本データはライト動作前に、あらかじめ決まっているものとする。
【０２６１】
図３２（ａ）に示すライト動作では、時刻ｔ１に発行されたライトコマンドに対し、アレイに対する正規のライト要求は時刻ｔ３に開始されるが、実際は時刻ｔ２でプリライトを行い、時刻ｔ３でライトを行う。
【０２６２】
図３２（ｂ）に示すWRITE to READ動作では、時刻ｔ１に発行されたライトコマンドに対し、時刻ｔ２でプリライト、時刻ｔ３でライトを行う。その後、時刻ｔ４にリードコマンドが発行され、リード動作が行われる。
【０２６３】
図３２（ｃ）に示すWRITE to WRITE動作では、時刻ｔ１に発行されたライトコマンドに対し、時刻ｔ２でプリライト、時刻ｔ３でライトを行う。一方、時刻ｔ２に発行されたライトコマンドに対して、時刻ｔ３でプリライト、時刻ｔ４でライトを行う。このため、時刻ｔ２ではライト動作のみが行われ、時刻ｔ３では２つのライト動作が同時に行われ、時刻ｔ４ではライト動作のみが行われる。
【０２６４】
このように、本実施形態では、WRITE to READでは動作の重なりは生じなくなり、WRITE to WRITEでのみで動作の重なりが生じる。そのため、本実施形態では、アドレス遷移のアドレス遷移検出信号ＡＴの生成回路としては、図３３に示す検出回路７３０ｂを用いる必要がある。図３３に示す検出回路７３０ｂは、図３０に示した検出回路７３０ａからアドレス遷移検出信号ＡＴ１の生成回路を省略した構成を有している。つまり、WRITE to WRITE動作用のアドレス遷移検出信号ＡＴ２のみを生成すればよい。また、回路構成に関しても、図２５からWRITE to READ対策回路が削除された、図４６のようになる。すなわち、WRITE to WRITE動作対策のみでよくなり、２種のライト動作のデータパスが分離されていることが重要となる。
【０２６５】
次に、本発明の好ましい第１４の実施形態について説明する。
【０２６６】
本実施形態は、一つのメモリセルに２値以上の情報を格納可能な多値ＰＲＡＭに関する。第１１の実施形態を、より具体的に、ＰＲＡＭ用に構成しなおしたものである。ＰＲＡＭのメモリセルに対する一般的なデータの書き込みは、次のように、メモリ素子に電流パルスを印加することで行う。
【０２６７】
図３４に示すように、アモルファス状態（高抵抗、高閾値状態）に転移させるためには、大電流の短いパルスである、リセットパルス８０１を印加する。リセットパルス８０１は、結晶を融解するのに十分なパワーを与えるべく電流Ｉｍに設定され、融解時間Ｔ０だけ電流Ｉｍを印加し続け、融解したところで、短い立ち下げ時間Ｔ１で立ち下げる。これにより、融解した相変化材料が急冷され、一様なアモルファス状態が形成される。一方、結晶状態（低抵抗、低閾値状態）に転移させるためには、やや少ない電流の長いパルスである、セットパルス８０２を印加する。セットパルス８０２は、結晶化するのに十分で、かつ、融解には至らない電流Ｉｘを、結晶化時間Ｔ２だけ印加し続け、結晶化させる。以上の操作により、メモリ素子をアモルファス状態と結晶状態のいずれかに制御することが可能となる。さらには、これらパルスを細かく調整することで、さらに細かい結晶性の制御が可能である。
【０２６８】
例えば、図３５に示すように、書き込むべき論理レベルにかかわらず一度リセットパルス８０１でアモルファス化した後、続くセットパルス８０２を融解電流Ｉｍ付近までの電流値に設定し、その後、徐々に結晶化電流Ｉｘ以下の電流値まで減らせば、時間Ｔ２の制御によって結晶化の度合いを調整することができる。
【０２６９】
さらに、図３６に示すように、リセットパルス８０１のみを用い、リセットパルス８０１の立ち下げ時間Ｔ１を調整することで、結晶化の度合いを調整する。この場合、Ｔ１を短くするとアモルファス状態が得られ、Ｔ１を長くするほど、結晶化の度合い（全アモルファス領域に対する、結晶領域の割合）が高まる。すなわち、多値化が可能となる。
【０２７０】
さらに、図３７に示すように、セットパルス８０２のパルス幅Ｔ２を完全に結晶する幅より短く設定し、これを複数投入することで、結晶化の度合いを調整し、多値化することもできる。この場合も、図示しないが、書き込むべき論理レベルにかかわらず一度リセットパルスでアモルファス化することが望ましい。
【０２７１】
さらに、図３８に示すように、セットパルス８０２の電流値を制御することで、結晶化の度合いを調整し多値化するも可能である。この場合も、図示しないが、書き込むべき論理レベルにかかわらず一度リセットパルスでアモルファス化することが望ましい。
【０２７２】
さらに、図３９に示すように、書き込むべき論理レベルにかかわらずリセットパルス８０１でアモルファス化し、続いて、閾値を調整すべく、調整されたセットパルス８０２で、多値データをセットすることで、前状態によらず正確に多値データを記憶させることができる。
【０２７３】
したがって、図３５〜図３９に示した方法を用いれば、上述した第１１の実施形態を利用して、リセットパルス８０１プリライト動作で制御し、セットパルス８０２を続くライト動作で制御すれば、サイクル時間を律速することなく、多値（２値を含む）ＰＲＡＭを構成できると考えられる。但し、ＰＲＡＭのライト動作はＤＲＡＭに比べて時間がかかることから、現状では、「tCKが大きい場合」や「プリフェッチ機構などにより、アレイのサイクル時間がtCKに対して大きい場合」において好適である。もちろん、ＰＲＡＭのライト動作をＤＲＡＭと同様のスピードで実行できるのであれば、ＤＲＡＭと全く同様に取り扱うことが可能である。
【０２７４】
図４０は、本発明の好ましい第１４の実施形態による半導体記憶装置９００の主要部の構成を示す回路図である。本実施形態による半導体記憶装置９００はＰＲＡＭである。
【０２７５】
図４０に示すように、本実施形態による半導体記憶装置９００は、ワード線ＷＬ０，ＷＬ１・・・と、ビット線ＢＬ０，ＢＬ１・・・と、ワード線とビット線の交点に配置されたメモリセルＭＣとを有するメモリセルアレイ９０８を備えている。各ビット線ＢＬ０，ＢＬ１・・・は、それぞれ対応するカラムスイッチ９０３を介して、Ｉ／ＯラインＬＩＯに接続されているとともに、それぞれ対応するカラムスイッチ９１３を介して、ライト用データラインＷＬＩＮＥに接続されている。カラムスイッチ９０３には、カラム選択ドライバ９０４の出力であるカラム選択信号Ｙ０，Ｙ１・・・がそれぞれ供給され、これによってリード動作時又はライト動作時においてはいずれか一つがオンする。一方、カラムスイッチ９１３には、ライト用カラム選択ドライバ９１４の出力であるライト用カラム選択信号ＹＷ０，ＹＷ１・・・がそれぞれ供給され、これによってライト動作時においてはいずれか一つがオンする。
【０２７６】
Ｉ／ＯラインＬＩＯは、リード電流又はリセット電流を流すためのシングル配線であり、入出力回路９３０に接続されている。また、ライト用データラインＷＬＩＮＥは、セット電流を流すするためのシングル配線であり、入出力回路９３０に接続されている。
【０２７７】
入出力回路９３０は、ライトバスＷＢＵＳを介して供給されたライトデータＷＤに基づいて、ライト用データラインＷＬＩＮＥに所定のセット電流を流すセットパルス発生器９１２と、Ｉ／ＯラインＬＩＯに流れるリード電流に基づいてリードデータＲＤを生成するリードアンプ９１８とを備えている。また、入出力回路９３０は、ライトデータＷＤを一時的に保持するレジスタ９２２と、リードアンプ９１８の出力とレジスタ９２２の出力のいずれかを選択するマルチプレクサ９２０をさらに備えている。
【０２７８】
図４０に示すように、メモリセルＭＣはパスゲートＰＧと相変化素子ＰＣからなるＰＲＡＭセルである。相変化素子ＰＣの一端は高電位に固定れており、もう一端はパスゲートＰＧにつながっている。パスゲートＰＧはワード線ＷＬによって制御され、ビット線ＢＬと相変化素子ＰＣとを接続する。
【０２７９】
リセットパルスを発生するリセットパルス発生器９０２はＮＭＯＳからなり、パルス整形器９０１を通じてプリライト制御系の信号ＷＢＥ１によって制御される。セットパルス発生器９１２もＮＭＯＳからなり、パルス整形器９１１を通じてライト制御系の信号ＷＢＥ２Ｐによって制御される。なお、セットパルス発生器９１２及びパルス整形器９１１は、多値記録方法に応じて回路構成を変える必要がある。例えば、セットパルス発生器９１２を複数用意し、パルス整形器９１１で選択制御しても構わないし、パルス整形器９１１の制御によってセットパルス発生器９１２のゲートレベルを制御しても構わない。
【０２８０】
リード電流発生器９１６は、パルス整形器９１５を通じて、相変化素子ＰＣの閾値を超えないようにリード電流を生成する。リード電流によって変化するＩ／ＯラインＬＩＯの電位は、電位ＶＲＦを参照電位とするリードアンプ９１８によって増幅され、保持回路９１９にラッチされる。リードアンプ９１８は、１つのＩ／ＯラインＬＩＯに対して複数設けられており、これによって、多値データの読み出しを行う。この場合、それぞれの参照電位ＶＲＦの値は個々に異なることに言及しておく。
【０２８１】
また、ビット線ＢＬにはプリチャージ回路９０６が接続されている。プリチャージ回路９０６は、ワード線ＷＬが選択され、カラム選択信号が活性化していないときに、相変化素子ＰＣに電流が流れないよう、ビット線ＢＬを高電位に固定する役割を果たす。その制御はＯＲゲート９０５により行われる。その他の構成は、第１１の実施形態とほぼ同様であることから、重複する説明は省略する。
【０２８２】
このように、本実施形態では、リセットパルス８０１をプリライト動作で制御し、セットパルス８０２を続くライト動作で制御できることから、データの衝突が生じない多値ＰＲＡＭを提供することが可能となる。もちろん、第１２の実施形態や第１３の実施形態においても、リセットパルス８０１をプリライト動作で制御し、セットパルス８０２を続くライト動作で制御することができる。
【０２８３】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【０２８４】
例えば、実施形態における、入出力回路とメモリアレイをつなぐデータラインは、階層を伴ったデータラインでもよい。階層数も問わない。すなわち、図４５（ａ）に示すような１マットアレイ構成１００１に関しては、ここまで説明してきたとおり適用可能であり、図４５（ｂ）のような、通常のメモリデバイスのアレイに用いられる、階層化データライン構造を伴う複数マット構成１００２であっても、サブ入出力回路についてはサブデータラインを介してメモリアレイにつながっており、メイン入出力回路については、メインデータライン、サブ入出力回路、サブデータラインを介して、メモリアレイとつながっているので、サブ入出力回路であっても、メイン入出力回路であっても適用が可能である。また、勿論、図４５（ｃ）のように、独立に動作できるバンクを持たせても構わない。
【図面の簡単な説明】
【０２８５】
【図１】本発明の好ましい第１の実施形態による半導体記憶装置１００の主要部の構成を示す回路図である。
【図２】検出回路１３０の回路図である。
【図３】第１の実施形態において、異なるアドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【図４】第１の実施形態において、同一アドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【図５】検出回路１３０ａの回路図である。
【図６】第２の実施形態において、メモリセルアレイ１０３へのライト動作を、続くリードサイクルに完全に重ねて動作させる場合の動作タイミングを示すタイミング図であり、同一アドレスに対してWRITE to READ動作が要求された場合を示している。
【図７】第２の実施形態において、演算がリード動作を伴う場合の動作タイミングを説明するための図であり、（ａ）は単独のライト動作、（ｂ）はWRITE to READ動作、（ｃ）はWRITE to WRITE動作を示している。
【図８】検出回路１３０ｂの回路図である。
【図９】検出回路１３０ｃの回路図である。
【図１０】第３の実施形態において、ライト要求とリード要求が同時に発行され、且つ、リードアドレスとライトアドレスが同一である場合の動作タイミングを示すタイミング図である。
【図１１】検出回路１３０ｄの回路図である。
【図１２】第４の実施形態において、ライト要求とリード要求の同時発行が連続的に行われ、且つ、リードアドレスとライトアドレスが同一である場合の動作タイミングを示すタイミング図である。
【図１３】本発明の好ましい第５の実施形態による半導体記憶装置２００の主要部の構成を示す回路図である。
【図１４】第５の実施形態において、WRITE to READ動作でリードサイクルのアドレスがライトサイクルと同一な場合の動作タイミングを示すタイミング図である。
【図１５】第６の実施形態において、WRITE to WRITE動作でこれらライトサイクルのアドレスが同一の場合の動作タイミングを示すタイミング図である。
【図１６】従来のデュアルポートメモリの主要部の構成を示す回路図である。
【図１７】本発明の好ましい第７の実施形態による半導体記憶装置４００の主要部の構成を示す回路図である。
【図１８】本発明の好ましい第８の実施形態による半導体記憶装置５００の主要部の構成を示す回路図である。
【図１９】検出回路１３０ｅの回路図である。
【図２０】半導体記憶装置５００の変形例を示す回路図である。
【図２１】検出回路１３０ｆの回路図である。
【図２２】本発明の好ましい第１０の実施形態による半導体記憶装置６００の主要部の構成を示す回路図である。
【図２３】検出回路１３０ｇの回路図である。
【図２４】半導体記憶装置６００の変形例を示す回路図である。
【図２５】本発明の好ましい第１１の実施形態による半導体記憶装置７００の主要部の構成を示す回路図である。
【図２６】検出回路７３０の回路図である。
【図２７】第１１の実施形態において、異なるアドレスに対してライト動作が連続して要求された場合（WRITE to WRITE動作）の動作タイミングを示すタイミング図である。
【図２８】第１１の実施形態において、同一のアドレスに対してライト動作が連続して要求された場合（WRITE to WRITE動作）の動作タイミングを示すタイミング図である。
【図２９】第１１の実施形態において、同一のアドレスに対するWRITE to WRITE to READ動作を示すタイミング図である。
【図３０】検出回路７３０ａの回路図である。
【図３１】第１２の実施形態において、同一のアドレスに対するWRITE to WRITE to READ動作を示すタイミング図である。
【図３２】第１３の実施形態における動作タイミングを説明するための図であり、（ａ）は単独のライト動作、（ｂ）はWRITE to READ動作、（ｃ）はWRITE to WRITE動作を示している。
【図３３】検出回路７３０ｂの回路図である。
【図３４】ＰＲＡＭのメモリセルにデータを書き込む際のパルス波形を示す波形図である。
【図３５】ＰＲＡＭのメモリセルに多値データを書き込む際のパルス波形の一例を示す波形図である。
【図３６】ＰＲＡＭのメモリセルに多値データを書き込む際のパルス波形の他の例を示す波形図である。
【図３７】ＰＲＡＭのメモリセルに多値データを書き込む際のパルス波形のさらに他の例を示す波形図である。
【図３８】ＰＲＡＭのメモリセルに多値データを書き込む際のパルス波形のさらに他の例を示す波形図である。
【図３９】ＰＲＡＭのメモリセルに多値データを書き込む際のパルス波形のさらに他の例を示す波形図である。
【図４０】本発明の好ましい第１４の実施形態による半導体記憶装置９００の主要部の構成を示す回路図である。
【図４１】一般的なＤＲＡＭの主要部の構成を示す回路図である。
【図４２】同一アドレスに対してライト動作及びリード動作が連続して要求された場合の動作タイミングを示すタイミング図である。
【図４３】１クロックサイクルでライト動作を完了できないメモリにおいて、異なるアドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【図４４】１クロックサイクルでライト動作を完了できないメモリにおいて、同一アドレスに対してライト動作及びリード動作が連続して要求された場合（WRITE to READ動作）の動作タイミングを示すタイミング図である。
【図４５】（ａ）は１マットアレイ構成を示し、（ｂ）は階層化データライン構造を伴う複数マット構成を示し、（ｃ）は複数バンクに分割された構成を示している。
【図４６】半導体記憶装置７００からWRITE to READ対策回路を削除した回路構成を示す。
【符号の説明】
【０２８６】
ＷＬ      ワード線
ＢＬ      ビット線
ＭＣ      メモリセル
１０１    ワードドライバ
１０２    センスアンプ
１０３    メモリセルアレイ
１０４    リード用カラム選択ドライバ
１０５    ライト用カラム選択ドライバ
１０６，１０７    カラムスイッチ
１０８    リードアンプ
１０９    ＡＮＤゲート
１１０    保持回路
１１１    マルチプレクサ
１１２    トライステートバッファ
１１３    保持回路
１１４    ライトバッファ
１１５    レジスタ
１２０    入出力回路
ＲＬＩＮＥ    リード用データライン
ＷＬＩＮＥ    ライト用データライン
【図１】
2010113765.tif 000013
【図２】
2010113765.tif 000014
【図３】
2010113765.tif 000015
【図４】
2010113765.tif 000016
【図５】
2010113765.tif 000017
【図６】
2010113765.tif 000018
【図７】
2010113765.tif 000019
【図８】
2010113765.tif 000020
【図９】
2010113765.tif 000021
【図１０】
2010113765.tif 000022
【図１１】
2010113765.tif 000023
【図１２】
2010113765.tif 000024
【図１３】
2010113765.tif 000025
【図１４】
2010113765.tif 000026
【図１５】
2010113765.tif 000027
【図１６】
2010113765.tif 000028
【図１７】
2010113765.tif 000029
【図１８】
2010113765.tif 000030
【図１９】
2010113765.tif 000031
【図２０】
2010113765.tif 000032
【図２１】
2010113765.tif 000033
【図２２】
2010113765.tif 000034
【図２３】
2010113765.tif 000035
【図２４】
2010113765.tif 000036
【図２５】
2010113765.tif 000037
【図２６】
2010113765.tif 000038
【図２７】
2010113765.tif 000039
【図２８】
2010113765.tif 000040
【図２９】
2010113765.tif 000041
【図３０】
2010113765.tif 000042
【図３１】
2010113765.tif 000043
【図３２】
2010113765.tif 000044
【図３３】
2010113765.tif 000045
【図３４】
2010113765.tif 000046
【図３５】
2010113765.tif 000047
【図３６】
2010113765.tif 000048
【図３７】
2010113765.tif 000049
【図３８】
2010113765.tif 000050
【図３９】
2010113765.tif 000051
【図４０】
2010113765.tif 000052
【図４１】
2010113765.tif 000053
【図４２】
2010113765.tif 000054
【図４３】
2010113765.tif 000055
【図４４】
2010113765.tif 000056
【図４５】
2010113765.tif 000057
【図４６】
2010113765.tif 000058