(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
記憶データのエラーを検出し、訂正するECC機能は、半導体記憶回路のデータ信頼性を高めるための技術として広く用いられている。近年では、独立したメモリチップのみならず、メモリ混載LSIに集積化されたメモリマクロにおいてもECC機能が搭載されることがある。
【0003】
ECC機能を搭載したメモリマクロは、例えば、特開2010−86210号公報に開示されている。
図1は、この公報に開示されているコントローラ106の構成を示している。コントローラ106は、メモリ101とメモリコントローラ102とプロセッサ104とを備えている。メモリ101とメモリコントローラ102とは、信号線群103で接続され、メモリコントローラ102とプロセッサ104とは信号線群105で接続されている。プロセッサ104が、信号線群105で伝送される制御信号(クロックCLK、リードライト制御RW、転送開始BS、アドレス及びデータAD)によってメモリコントローラ102にリード動作又はライト動作を指示すると、メモリコントローラ102は、信号線群103で伝送される制御信号(クロックCLK、アドレスA、ローアドレスストローブRAS、カラムアドレスストローブCAS、ライトイネーブルWE、データマスクDM、データストローブDQS、データDQ)によってメモリ101にアクセス(リード動作又はライト動作)を行う。ここで、メモリコントローラ102は、ECC機能を有しており、ECC符号化やECC復号化処理を行う。
【0004】
ECC機能を搭載したメモリマクロについては、他にも、特開2002−74983号公報、特開2006−244632号公報、及び、特開2008−90419号公報にも開示されている。
【0005】
半導体記憶回路に対する一つの要求は、リード動作、ライト動作における動作周波数を高めることである。動作周波数を高めることで、高速なリード動作、ライト動作を実現することが可能になる。
【0006】
もう一つの要求は、リード動作とライト動作との切り替えを含め、各動作サイクルにおいて完全なランダムアクセス性を維持することである。例えば、ライト動作が指示された動作サイクルの次のサイクルにおいてリード動作が禁止されるような事態は、外部から半導体記憶回路を制御するために使用される制御ロジックを複雑化し、ランダムアクセス性を低下させてしまう。
【0007】
しかしながら、ECC機能を付加することで、上記の要求を同時に満たせなくなることがある。例えば、動作周波数を高くすると、ECC符号化処理とメモリセルへの書き込みとを一つの動作サイクルで完了することができなくなり、同様に、メモリセルからの読み出しとECC復号化処理とが一つの動作サイクルで完了することができなくなる。ECC処理(即ち、ECC符号化処理又はECC復号化処理)とメモリセルへのアクセスを単一の動作サイクルで完了させるという条件の下では、動作周波数は、ECC処理に要する時間とメモリセルへのアクセスに要する時間の和に対応する周波数に制約されてしまう。
【0008】
このような問題に対処するための一つの手法は、例えば上記の特開2010−086120号公報に開示されているように、メモリアクセスのための処理とECC符号化処理又はECC復号化処理とをパイプライン化することである。即ち、ライト動作では、ライトコマンドとデータとアドレスが入力された動作サイクルにおいてECC符号化処理が行われ、その次の動作サイクルにおいてデータがメモリコアに書き込まれる。リード動作では、リードコマンドとアドレスとが入力された動作サイクルにおいてメモリコアからデータが読みだされ、その次の動作サイクルにおいてECC復号化処理が行われる。このような動作によれば、一の動作サイクルの長さ自体は短くできるので、動作周波数を低減させずにECC処理を行うことができる。
【0009】
図2は、
図1の半導体記憶回路のライト動作とリード動作の例を示すタイミングチャートである。
図2には、上述のようなECC処理とメモリアクセスとがパイプライン化された動作が図示されている。ここで、
図1の回路では、メモリコントローラ102は、プロセッサ104から受け取ったアドレスをそのままメモリ101に転送すると同時にECC処理を行うように構成されているから、結果として、ライトコマンドとデータとアドレスが入力された動作サイクルにおいてECC符号化処理が行われ、その次の動作サイクルにおいてデータがメモリコアに書き込まれる動作を行うことになることに留意されたい。
【0010】
例えば、
図2の動作では、時刻t1において、ライトコマンドが入力され、アドレスA1を指定するアドレス信号が入力され、更に、データ入力にデータD1が入力されると、時刻t1から開始される動作サイクルにおいてECC処理が行われ、次の動作サイクル(時刻t2で開始される動作サイクル)においてメモリ101が活性化されてデータ書き込みが行われる。また、時刻t3において、リードコマンドが入力されると共に、アドレスA2を指定するアドレス信号が入力されると、時刻t3から開始される動作サイクルにおいてメモリ101が活性化されてデータ読み出しが行われ、次の動作サイクル(時刻t4で開始される動作サイクル)においてECC復号化処理が行われる。
【0011】
しかしながら、
図2に図示されている動作では、ライトサイクル数(ライトコマンドの入力の後、データ書き込みを完了するのに必要な動作サイクルの数)が2に悪化し、また、リードサイクル数(リードコマンドの入力の後、データ読み出しを完了するのに必要な動作サイクルの数)も2に劣化してしまう。
【0012】
加えて、
図2に図示されている動作では、ライトコマンドの入力の次の動作サイクルでリードコマンドの入力を禁止する必要があり、ランダムアクセス性が失われる。ライト動作は、ライトコマンドが入力された動作サイクルの次の動作サイクルでメモリ101へのアクセスが行われる一方で、リード動作は、リードコマンドが入力された動作サイクルでメモリ101へのアクセスが行われるので、ライトコマンドの入力の次の動作サイクルでリードコマンドが入力されるとメモリ101へのアクセスが衝突してしまう。
【0013】
このような不具合を解消するためには、リードコマンドが入力された動作サイクルの次の動作サイクルでメモリ101へのアクセスを行い、アクセスの衝突を回避することも考えられる。しかしながら、そのような動作では、リードサイクル数が3に増大してしまう。
【0014】
このような問題は、メモリ混載LSIにおいて特に問題になる。メモリ混載LSIでは、メモリインターフェースがボトルネックとならないため、メモリコアの動作速度が増大される上、ランダムアクセス性能に対する要求が大きい。このため、ライド動作、リード動作に必要な動作サイクル数の増大の問題や、ライトコマンド、リードコマンドの入力タイミングの制約の問題は、特に深刻になる。
【発明を実施するための形態】
【0021】
第1の実施形態:
図3は、本発明の第1の実施形態の半導体記憶回路の構成を示すブロック図である。第1の実施形態では、本発明の半導体記憶回路がRAMマクロ10として構成されている。RAMマクロ10は、メモリコア1と、アドレス入力バッファ2と、データ入力バッファ3と、ECCエンコーダ4と、ECCデコーダ5と、出力バッファ6と、遅延回路7とを備えている。
【0022】
メモリコア1は、メモリセルが行列に配置されたセルアレイを備えており、該セルアレイにデータが記憶される。メモリコア1には、ランダムアクセスに対応した様々なメモリセルが使用可能であり、例えば、DRAM(dynamic random access memory)セル、SRAM(static
random access memory)セル等がメモリコア1のメモリセルとして使用可能である。アドレス入力バッファ2は、当該RAMマクロ10の外部から入力されたアドレスADD及びコマンドCOMをメモリコア1に転送する。データ入力バッファ3は、当該RAMマクロ10の外部から入力された入力データDATA_INをECCエンコーダ4に転送する。データ入力バッファ3には、データマスク信号Maskが供給されており、データ入力バッファ3は、入力データDATA_INの一部のビットをマスクする機能を有している。
【0023】
ECCエンコーダ4は、入力データDATA_INに対してECC符号化処理を行い、ECCデータを生成する。ここで、ECCデータとは、メモリコア1に記憶されたデータの誤り検出及び誤り訂正に使用されるデータである。ECCエンコーダ4は、入力データDATA_INとECCデータとを書き込みデータとしてメモリコア1に転送する。メモリコア1に送られた書き込みデータは、メモリコア1に記憶される。
【0024】
ECCデコーダ5は、メモリコア1から読み出された読み出しデータに対しECC復号化処理を行い、出力データDATA_OUTを生成する。詳細には、メモリコア1から読み出された読み出しデータには、実効データ(即ち、入力データに相当するデータ)とECCデータとが含まれている。ECCデコーダ5は、メモリコア1から読み出された読み出しデータに対し、ECCデータを用いて誤り検出を行う。誤りが検出されなかった場合、読み出しデータに含まれている実効データを出力データDATA_OUTとして出力する。また、誤りが検出され、且つ、誤り訂正可能な場合、ECCデコーダ5は、読み出しデータに対して誤り訂正を行い、得られた訂正後データを出力データDATA_OUTとして出力バッファ6に送る。出力バッファ6は、出力データDATA_OUTを外部に出力する。
【0025】
該RAMマクロ10には、外部からクロック信号CLKが供給されており、メモリコア1と、アドレス入力バッファ2と、データ入力バッファ3と、ECCデコーダ5と、出力バッファ6とは、該クロック信号CLKに応答して動作する。ここで、クロック信号CLKは、動作サイクルの長さと同一の周期を有している。クロック信号CLKの1周期が動作サイクルに対応している。
【0026】
ただし、メモリコア1とECCデコーダ5には、クロック信号CLKが遅延回路7によって遅延されて得られる遅延クロック信号CLKDが供給される。これは、メモリコア1の活性化タイミングを遅延させると共に、メモリコア1の活性化タイミングに合わせてECCデコーダ5の動作タイミングを遅延させるためである。以下に詳細に述べられるように、本実施形態のRAMマクロ10では、メモリコア1の活性化タイミングとECCデコーダ5の動作タイミングを遅らせることが高い動作周波数の維持とランダムアクセス性の向上のために重要である。
【0027】
図4は、第1の実施形態のRAMマクロ10の動作を示すタイミングチャートである。クロック信号CLKが遅延回路7によって遅延され、遅延クロック信号CLKDが生成される。
図4の例では、遅延クロック信号CLKDのクロック信号CLKからの遅延時間はt
Dとして図示されている。
【0028】
ライト動作では、ライト動作が行われる動作サイクルの開始時に、クロック信号CLKのアサート(本実施形態では、クロック信号CLKの立ち上がりエッジ)に同期して、コマンドCOMとしてライトコマンドが入力される。ライトコマンドの入力と共に、書き込みアドレスを指定するアドレスADDと、入力データDATA_INとが同時に入力される。アドレス入力バッファ2及びデータ入力バッファ3は、クロック信号CLKのアサートに同期してアドレスADD及び入力データDATA_INを取り込む。続いて、ECCエンコーダ4によってECC符号化処理が行われてECCデータが生成される。更に、遅延クロック信号CLKDのアサート(本実施形態では、遅延クロック信号CLKDの立ち上がりエッジ)に応答してメモリコア1が活性化され(即ち、書き込みアドレスに対応する選択ワード線が活性化され)、メモリコア1への書き込みデータ(即ち、入力データDATA_INとECCデータ)の書き込みが行われる。
【0029】
ここで、遅延クロック信号CLKDの遅延時間t
Dは、メモリコア1が活性化されるタイミングがECC符号化処理の完了の後になり、且つ、次の動作サイクルの開始時には、メモリコア1の書き込みアドレスのメモリセルのデータが確定しているように調節されている。次の動作サイクルの開始時点においては、メモリコア1の書き込みアドレスのメモリセルのデータが確定しているから、ライトサイクル数は1であることに留意されたい。
【0030】
例えば、ある動作サイクルが開始される時刻t1において、ライトコマンドとアドレスA1と入力データD1とが入力されると、入力データD1に対してECC符号化処理が行われてECCデータが生成される。続いて、遅延クロック信号CLKDのアサートに応答してメモリコア1が活性化される。このとき、メモリコア1では、アドレスA1によって選択されるワード線WL1が活性化され、書き込みデータがアドレスA1に対応するメモリセルに書き込まれる。
【0031】
時刻t4においてライトコマンドとアドレスA4と入力データD4とが入力された場合、時刻t5においてライトコマンドとアドレスA5と入力データD5とが入力された場合についても同様にしてライト動作が行われる。
【0032】
ここで、ライト動作の完全な完了は、ライト動作が開始された動作サイクルの次の動作サイクルに跨っていることに留意されたい。しかしながら、後述のように、次の動作サイクルにおいてもメモリコア1の活性化タイミングが遅延されるから、ライト動作の完了の遅延は問題にならない。
【0033】
一方、リード動作では、リード動作が開始される動作サイクルの開始時に、クロック信号CLKのアサートに同期して、コマンドCOMとしてリードコマンドが入力され、更に、読み出しアドレスを指定するアドレスADDが入力される。続いて、遅延クロック信号CLKDのアサートに応答してメモリコア1が活性化され(即ち、読み出しアドレスに対応する選択ワード線が活性化され)、メモリコア1のアドレスADDに対応するメモリセルから読み出しデータが読みだされる。
【0034】
続いて、次の動作サイクルの遅延クロック信号CLKDのアサートに応答してメモリコア1から読み出された読み出しデータがECCデコーダ5に取り込まれ、ECCデコーダ5によってECC復号化処理が行われる。ECC復号化処理で得られた出力データDATA_OUTは、出力バッファ6に送られる。出力バッファ6は、リード動作が開始される動作サイクルの次の次の動作サイクルの開始時に出力データDATA_OUTをECCデコーダ5から取り込み、取り込んだ出力データDATA_OUTを外部に出力する。このようなリード動作では、リードサイクル数は2であることに留意されたい。
【0035】
例えば、ある動作サイクルが開始される時刻t2において、リードコマンドとアドレスA2とが入力されたとする。その後、遅延クロック信号CLKDのアサートに応答してメモリコア1が活性化され(即ち、アドレスA2に対応するワード線が活性化され)、メモリコア1からアドレスA2に対応する読み出しデータが読みだされる。更に、次の動作サイクル(時刻t3に開始される動作サイクル)の遅延クロック信号CLKDのアサートに応答してメモリコア1から読み出された読み出しデータがECCデコーダ5に取り込まれ、ECCデコーダ5によってECC復号化処理が行われる。ECC復号化処理によって得られた出力データQ2は、出力バッファ6に送られる。出力バッファ6に送られた出力データQ2は、その次の動作サイクル(時刻t4に開始される動作サイクル)の開始時に出力バッファ6に取り込まれ、外部に出力される。
【0036】
時刻t3においてライトコマンドとアドレスA3とが入力された場合についても同様にしてリード動作が行われる。
【0037】
ここで、リード動作の完全な完了は、リード動作が開始された動作サイクルの次の次の動作サイクルに跨っていることに留意されたい。しかしながら、後述のように、各動作サイクルにおいてメモリコア1の活性化タイミングが遅延されるから、リード動作の完了の遅延は問題にならない。
【0038】
上述された本実施形態のRAMマクロ10の動作では、ライト動作時に、遅延クロック信号CLKDに同期してメモリコア1が活性化されるため、ECC符号化処理が行われる動作サイクルと同一の動作サイクルにおいて書き込みアドレスのメモリセルへの書き込みを開始できる。その結果、ライト動作におけるメモリコア1の内部動作はライトコマンドが入力された動作サイクルの次の動作サイクルに跨るものの、ライトサイクル数は1に低減できる。
【0039】
また、リード動作が開始された次の動作サイクルにおいて遅延クロック信号CLKDに同期してECC復号化処理が開始されるため、このため、動作周波数を低減しなくてもその次の動作サイクルの開始時には読み出しデータの出力が可能になる。即ち、動作周波数を高く維持することができる。更に、このような動作によれば、リード動作におけるメモリコア1の内部動作はリードコマンドが入力された動作サイクルの次の次の動作サイクルに跨るものの、リードサイクル数は2に維持される。
【0040】
加えて、本実施形態のRAMマクロ10の動作では、リード動作時及びライト動作時の両方において、遅延クロック信号CLKDに同期してメモリコア1が活性化される。これにより、各ライトコマンドが入力された後、メモリコア1が活性化されるタイミング(即ち、選択ワード線が活性化されるタイミング)までの遅延時間と、各リードコマンドが入力された後、メモリコア1が活性化されるタイミングまでの遅延時間とが同一となる。
【0041】
このような動作によれば、ランダムアクセス性が向上される。
図4から理解されるように、ライトコマンドが入力された動作サイクルの次の動作サイクルにリードコマンドを入力しても、ライト動作とリード動作のメモリコア1の活性化が衝突することはない。同様に、リードコマンドが入力された動作サイクルの次の動作サイクルにライトコマンドを入力しても、ライト動作とリード動作のメモリコア1の活性化が衝突することはない。
【0042】
第2の実施形態:
図5は、本発明の第2の実施形態の半導体記憶回路の構成を示すブロック図である。第2の実施形態の半導体記憶回路は、レイトライト(late write)方式でライト動作を行うRAMマクロ10Aとして構成されている。ここで、レイトライト方式とは、ライトコマンドの入力と共に入力された書き込みアドレス及びデータをレジスタに保存しておき、次のライトコマンドが入力された動作サイクルにおいて、保存された書き込みアドレスのメモリセルに、保存されたデータを書き込む方式である。以下、第2の実施形態のRAMマクロ10Aの構成と動作を説明する。
【0043】
第2の実施形態のRAMマクロ10Aは、第1の実施形態のRAMマクロ10と類似した構成を有しているが、アドレスレジスタ8、データレジスタ9及びセレクタ11を追加的に備え、且つ、遅延回路7の代わりにレイトライト制御回路7Aを備えている点で異なる。アドレスレジスタ8は、アドレスADDを一時的に保存する機能を有しており、データレジスタ9は、ECCエンコーダ4から書き込みデータ(入力データDATA_INとECCデータ)を受け取り、一時的に保存する機能を有している。セレクタ11は、リード動作が行われる場合にアドレス入力バッファ2から出力されるアドレスをメモリコア1に送り、ライト動作が行われる場合にアドレスレジスタ8から出力されるアドレスをメモリコア1に送る。後述のように、アドレスレジスタ8、データレジスタ9及びセレクタ11は、レイトライト方式のライト動作を実現するために使用される。
【0044】
レイトライト制御回路7Aは、外部から供給されるクロック信号CLKに同期して、RAMマクロ10Aの各回路(メモリコア1、アドレス入力バッファ2、データ入力バッファ3、ECCエンコーダ4、ECCデコーダ5、アドレスレジスタ8、データレジスタ9、及びセレクタ11)を制御する。レイトライト制御回路7AにはコマンドCOMが入力されており、レイトライト制御回路7Aは、そのコマンドCOMに応じて各種の制御を行う。
図5において、記号CTRL_RAMは、メモリコア1を制御するための制御信号である。他の回路にも動作を制御するための制御信号が供給される。また、データ入力バッファ3にデータマスク信号Maskが供給されており、データ入力バッファ3が入力データDATA_INの一部のビットをマスクする機能を有している。
【0045】
図6は、第2の実施形態のRAMマクロ10Aの動作を示すタイミングチャートである。ライト動作が開始される動作サイクルの開始時に、クロック信号CLKのアサートに同期して、コマンドCOMとしてライトコマンドが入力される。ライトコマンドの入力と共に、書き込みアドレスを指定するアドレスADDと、入力データDATA_INとが同時に入力される。アドレス入力バッファ2及びデータ入力バッファ3は、それぞれ、クロック信号CLKのアサートに同期してアドレスADDと入力データDATA_INとを取り込む。
【0046】
更に、クロック信号CLKのアサートに応答してメモリコア1が活性化され(即ち、選択ワード線が活性化され)、書き込みデータのメモリコア1への書き込みが行われる。ここで、ライト動作では、セレクタ11によってアドレスレジスタ8の出力が選択されるため、メモリコア1が活性化されたときに選択されるアドレスは、アドレスレジスタ8に記憶されていたアドレス、即ち、その前のライトコマンドと共に入力された書き込みアドレスである。また、書き込まれる書き込みデータは、データレジスタ9に記憶されていた書き込みデータ、即ち、当該前のライトコマンドと共に入力された入力データDATA_IN及びその入力データDATA_INからECC符号化処理によって生成されたECCデータである。このような動作により、レイトライト方式のライト動作が実現されている。
【0047】
データレジスタ9に記憶されていた書き込みデータとECCデータのメモリコア1への書き込みと並行して、アドレスレジスタ8及びデータレジスタ9の更新が行われる。最新のライトコマンドの入力と共に入力されたアドレスADDがアドレスレジスタ8に書き込まれる。更に、最新のライトコマンドの入力と共に入力された入力データDATA_INに対してECCエンコーダ4によってECC符号化処理が行われてECCデータが生成される。入力された入力データDATA_INと生成されたECCデータとは、ECCエンコーダ4からデータレジスタ9に送られて書き込みデータとして保存される。データレジスタ9に保存された書き込みデータが、ライトコマンドが次に入力されたときにメモリコア1に送られて書き込まれる。
【0048】
例えば、時刻t1以前に、アドレスレジスタ8にアドレスA0が保存され、データレジスタ9に書き込みデータD0Eが保存されていたとする。ある動作サイクルが開始される時刻t1において、ライトコマンドとアドレスA1と入力データD1とが入力されると、ライトコマンドの入力に応答して、メモリコア1が活性化される。このとき、アドレスレジスタ8に保存されていたアドレスA0に対応するワード線が選択され、データレジスタ9に保存されていた書き込みデータD0EがアドレスA0に対応するメモリセルに書き込まれる。
【0049】
並行して、入力データD1に対してECC符号化処理が行われてECCデータが生成され、入力データD1と生成されたECCデータとが書き込みデータD1Eとしてデータレジスタ9に保存される。加えて、アドレスA1がアドレスレジスタ8に保存される。
【0050】
次に時刻t4においてライトコマンドとアドレスA4と入力データD4とが入力されると、ライトコマンドの入力に応答してメモリコア1が活性化される。このとき、アドレスレジスタ8に保存されていたアドレスA1に対応するワード線が選択され、データレジスタ9に保存されていた書き込みデータD1EがアドレスA1に対応するメモリセルに書き込まれる。
【0051】
並行して、入力データD4に対してECC符号化処理が行われてECCデータが生成され、入力データD4と生成されたECCデータとが書き込みデータD4Eとしてデータレジスタ9に保存される。時刻t5においてライトコマンドが入力されると、同様にして、データレジスタ9に保存されていた書き込みデータD4Eがアドレスレジスタ8に保存されていたアドレスA4に対応するメモリセルに書き込まれる。時刻t5においてライトコマンドと共に入力された入力データD5及びアドレスA5についても、同様にしてライト動作が行われる。
【0052】
一方、リード動作では、リード動作が開始される動作サイクルの開始時に、クロック信号CLKのアサートに同期して、コマンドCOMとしてリードコマンドが入力され、更に、読み出しアドレスを指定するアドレスADDが入力される。更に、クロック信号CLKのアサートに応答してメモリコア1が活性化され(即ち、読み出しアドレスに対応する選択ワード線が活性化され)、メモリコア1から読み出しデータが読みだされる。読み出された読み出しデータには、実効データとECCデータとが含まれている。
【0053】
続いて、次の動作サイクルの開始時のクロック信号CLKのアサートに応答してメモリコア1から読み出された読み出しデータがECCデコーダ5に取り込まれ、ECCデコーダ5によってECC復号化処理が行われる。ECC復号化処理で得られた出力データDATA_OUTは、出力バッファ6に送られる。出力バッファ6は、ECCデコーダ5から受け取った出力データDATA_OUTを外部に出力する。リード動作は、リードコマンドが入力された動作サイクルの次の次の動作サイクルの開始時には完了している。このようなリード動作では、リードサイクル数は2であることに留意されたい。
【0054】
例えば、ある動作サイクルが開始される時刻t2において、リードコマンドとアドレスA2とが入力されたとする。リードコマンドの入力に応答してメモリコア1が活性化され(即ち、アドレスA2に対応するワード線が活性化され)、メモリコア1からアドレスA2に対応する読み出しデータが読みだされる。更に、次の動作サイクル(時刻t3に開始される動作サイクル)の開始時のクロック信号CLKのアサートに応答してメモリコア1から読み出された読み出しデータがECCデコーダ5に取り込まれ、ECCデコーダ5によってECC復号化処理が行われる。ECC復号化処理によって得られた出力データQ2は、出力バッファ6に送られる。出力データQ2は、出力バッファ6から外部に出力される。
【0055】
時刻t3においてライトコマンドとアドレスA3とが入力された場合についても同様にしてリード動作が行われる。
【0056】
上述された本実施形態のRAMマクロ10Aの動作では、ライト動作としてレイトライト方式が採用されているため、あるライトコマンドと同時に入力された入力データDATA_INがメモリコア1に実際に書き込まれる動作サイクルは、次のライトコマンドが入力された動作サイクルである。このため、第1の実施形態のように、遅延クロック信号CLKDを用いてメモリコア1の活性化のタイミングを遅延させなくとも、ECC符号化処理に必要な時間を確保できる。その一方で、ライトコマンドが入力された動作サイクルにおいてライト動作が完了できるので、実効的なライトサイクル数は1に低減できる。
【0057】
また、リード動作が開始された次の動作サイクルの開始時にクロック信号CLKに同期してECC復号化処理が開始されるため、動作周波数を低減しなくても、その次の動作サイクルの開始時には出力データDATA_OUTの出力が可能になる。即ち、動作周波数を高く維持することができる。更に、このような動作によれば、リードサイクル数は2に維持される。
【0058】
加えて、本実施形態のRAMマクロ10Aの動作では、リード動作時及びライト動作時の両方において、動作サイクルの開始時のクロック信号CLKのアサートに応答してメモリコア1が活性化される。これにより、各ライトコマンドが入力された後、メモリコア1が活性化されるタイミング(即ち、選択ワード線が活性化されるタイミング)までの遅延時間と、各リードコマンドが入力された後、メモリコア1が活性化されるタイミングまでの遅延時間とが同一となる。
【0059】
このような動作によれば、ランダムアクセス性が向上される。
図6から理解されるように、ライトコマンドが入力された動作サイクルの次の動作サイクルにリードコマンドを入力しても、ライト動作とリード動作のメモリコア1の活性化が衝突することはない。同様に、リードコマンドが入力された動作サイクルの次の動作サイクルにライトコマンドを入力しても、ライト動作とリード動作のメモリコア1の活性化が衝突することはない。
【0060】
第3の実施形態:
図7は、本発明の第3の実施形態の半導体記憶回路の構成を示すブロック図である。第3の実施形態の半導体記憶回路は、メモリリダンダンシー(memory redundancy)技術による信頼性の向上に対応した構成を有するRAMマクロ10Bとして構成されている。詳細には、第3の実施形態のRAMマクロ10Bは、第1の実施形態のRAMマクロ10と類似した構成を有しているが、リダンダンシー判定回路12を有している点で異なる。更に、メモリコア1には冗長メモリセルが設けられる。
【0061】
リダンダンシー判定回路12は、アドレス入力バッファ2からアドレスADD(書き込みアドレス又は読み出しアドレス)を受け取り、受け取ったアドレスADDに対してリダンダンシー判定処理を行ってリダンダンシー判定信号を生成する。詳細には、リダンダンシー判定回路12は、受け取ったアドレスADDが故障のあるメモリセルを選択するものであった場合、当該故障のあるメモリセルの代わりに冗長メモリセルを選択することを指示するリダンダンシー判定信号をメモリコア1に送る。メモリコア1のデコーダ1aは、アドレス入力バッファ2から受け取ったアドレスADDとリダンダンシー判定信号に応答して、故障のあるメモリセルの代わりに冗長メモリセルを選択する。例えば、故障のあるメモリセルが接続されたワード線の代わりに、冗長メモリセルに対応する冗長ワード線を選択してもよく、また、故障のあるメモリセルが接続されたビット線の代わりに、冗長メモリセルに対応する冗長ビット線を選択してもよい。ここで、リダンダンシー判定回路12の動作が、ECCエンコーダ4の動作と並行して行われることに留意されたい。
【0062】
第1の実施形態では、メモリコア1の活性化のタイミングが遅延されているため、動作速度を決定するクリティカルパスが、アドレスADDを伝送するパスではなく、入力データDATA_IN又は出力データDATA_OUTを伝送するパスになる。一方、第3の実施形態では、このことを有効に利用し、動作速度の低下や面積増大の一因となっているリダンダンシー判定回路12とデコーダ1aにおける信号処理(リダンダンシー判定処理と、メモリコア1のワード線及び/又はビット線の置換)が、ECCエンコーダ4によるECC符号化処理と並列に行われる。これにより、面積や消費電力を低減できる回路構成やレイアウトを選択できるようになる。
【0063】
第4の実施形態:
図8は、本発明の第4の実施形態の半導体記憶回路の動作を示すタイミングチャートである。第4の実施形態では、第2の実施形態のRAMマクロ10Aと同一の構成のRAMマクロが使用される。但し、第4の実施形態では、リード動作において、クロック信号CLKのネゲート(本実施形態ではクロック信号CLKの立ち下がりエッジ)に応答して出力データDATA_OUTが出力されるようにRAMマクロの動作が変更される。これにより、リードサイクル数が1.5に短縮される。第4の実施形態のRAMマクロのライト動作は、第2の実施形態と同一である。
【0064】
詳細には、リード動作が開始される動作サイクルの開始時に、クロック信号CLKのアサートに同期して、コマンドCOMとしてリードコマンドが入力され、更に、読み出しアドレスを指定するアドレスADDが入力される。更に、クロック信号CLKのアサートに応答してメモリコア1が活性化され(即ち、読み出しアドレスに対応する選択ワード線が活性化され)、メモリコア1から読み出しデータが読みだされる。
【0065】
続いて、次の動作サイクルの開始時のクロック信号CLKのアサートに応答してメモリコア1から読み出された読み出しデータがECCデコーダ5に取り込まれ、ECCデコーダ5によってECC復号化処理が行われる。ECC復号化処理で得られた出力データDATA_OUTは、出力バッファ6に送られる。
【0066】
出力バッファ6は、クロック信号CLKのネゲートに応答してECCデコーダ5から出力データDATA_OUTを受け取り、受け取った出力データDATA_OUTを外部に出力する。リード動作は、リードコマンドが入力された動作サイクルの次の動作サイクルの中間において完了することになる。このようなリード動作によれば、リードサイクル数を1.5に短縮することができる。
【0067】
第5の実施形態:
図9は、本発明の第5の実施形態の半導体記憶回路の構成を示すブロック図である。第5の実施形態の半導体記憶回路は、第2の実施形態のRAMマクロ10Aと同様に、レイトライト(late write)方式でライト動作を行うRAMマクロ10Cとして構成されている。ただし、第5の実施形態のRAMマクロ10Cでは、出力バッファ6に、専用の出力クロック信号CLK_OUTが供給される。第2の実施形態のRAMマクロ10Aの構成では、出力データDATA_OUTの生成タイミングがECCデコーダ5における遅延に影響されるため、読み出しデータの内容によってデータリリースのタイミングがバラつくことが問題になり得る。このような問題に対処するために、第5の実施形態では、クロック信号CLKを遅延して得られる出力クロック信号CLK_OUTがレイトライト制御回路7Aから出力バッファ6に供給され、出力バッファ6が出力クロック信号CLK_OUTに同期して出力データDATA_OUTを出力する。これにより、各動作サイクルにおけるデータリリースのタイミングが一定になる。
【0068】
図10は、第5の実施形態のRAMマクロ10Cの動作を示すタイミングチャートである。第5の実施形態のRAMマクロ10Cのライト動作は、第2の実施形態の同一である。
【0069】
一方、リード動作は下記のようにして行われる。リード動作が開始される動作サイクルの開始時に、クロック信号CLKのアサートに同期して、コマンドCOMとしてリードコマンドが入力され、更に、読み出しアドレスを指定するアドレスADDが入力される。更に、クロック信号CLKのアサートに応答してメモリコア1が活性化され(即ち、読み出しアドレスに対応する選択ワード線が活性化され)、メモリコア1から読み出しデータとECCデータとが読みだされる。
【0070】
続いて、次の動作サイクルの開始時のクロック信号CLKのアサートに応答してメモリコア1から読み出された読み出しデータがECCデコーダ5に取り込まれ、ECCデコーダ5によってECC復号化処理が行われる。ECC復号化処理で得られた出力データDATA_OUTは、出力バッファ6に送られる。
【0071】
出力バッファ6は、出力クロック信号CLK_OUTのアサートに応答してECCデコーダ5から出力データDATA_OUTを受け取り、受け取った出力データDATA_OUTを外部に出力する。このようなリード動作では、リードサイクル数を2に維持する一方で、各動作サイクルにおけるデータリリースのタイミングを一定にすることができる。
【0072】
また、第5の実施形態において、出力クロック信号CLK_OUTを、クロック信号CLKを半周期だけ遅延させることによって生成すれば、第4の実施形態と同様に、リードサイクル数を1.5に短縮することもできる。
【0073】
第6の実施形態:
図11及び
図12は、本発明の第6の実施形態の半導体記憶回路の動作を示すタイミングチャートである。第6の実施形態では、リフレッシュ動作を必要とするメモリセルが集積化されたメモリコア1が使用される場合のRAMマクロの動作が提示される。DRAMセルは、リフレッシュ動作が必要なメモリセルの典型的な例である。
【0074】
ここで、
図11は、第1の実施形態のRAMマクロ10の動作の変形例を示しており、遅延クロック信号CLKDが使用される場合のRAMマクロの動作を示している。一方、
図12は、第2の実施形態のRAMマクロ10Aの動作の変形例を示しており、レイトライト方式でのライト動作が行われる場合のRAMマクロの動作を示している。
図11、
図12の何れの動作においても、リフレッシュ動作の実行を指示するコマンド(リフレッシュコマンド)に応答してリフレッシュ動作が行われる。リフレッシュコマンドと共にアドレスADDが入力され、当該アドレスADDに対応する選択ワード線に接続されたメモリセルがリフレッシュされる。
【0075】
本実施形態では、リフレッシュコマンドが入力された後、メモリコア1が活性化されるタイミング(即ち、選択ワード線が活性化されるタイミング)までの遅延時間が、各ライトコマンドが入力された後、メモリコア1が活性化されるタイミング(即ち、選択ワード線が活性化されるタイミング)までの遅延時間、及び、各リードコマンドが入力された後、メモリコア1が活性化されるタイミングまでの遅延時間と同一に調節される。具体的には、
図11の動作では、リード動作時、ライト動作時、リフレッシュ動作のいずれにおいても、遅延クロック信号CLKDに同期してメモリコア1が活性化される。一方、
図12の動作では、リード動作時、ライト動作時、リフレッシュ動作のいずれにおいても、動作サイクルの開始時のクロック信号CLKのアサートに応答してメモリコア1が活性化される。これにより、リフレッシュコマンドが入力された後、メモリコア1が活性化されるタイミングまでの遅延時間が、各ライトコマンドが入力された後、メモリコア1が活性化されるタイミングまでの遅延時間(即ち、各リードコマンドが入力された後、メモリコア1が活性化されるタイミングまでの遅延時間)と同一になる。このような動作によれば、リフレッシュ動作を含めてランダムアクセス性を向上させることができる。
【0076】
なお、上述には、本発明の実施形態が様々に記述されているが、本発明は上記の実施形態に限定されると解釈してはならない。本発明は、上記の実施形態に対して当業者に自明的な変更して実施してもよいことに留意されたい。また、上記には様々な実施形態が記載されているが、技術的に矛盾がない限り、複数の実施形態が組み合わせて実施されることも可能である。