(57)【要約】【課題】エリアペナルティを小さくし、または動作中に劣化した不良を救済することができるメモリコントローラを提供する。【解決手段】冗長メモリ１０は、メモリ内の不良なメモリセルに代わって、データを記憶する。救済回路１１は、不良なメモリセルのアドレスを保持し、入力されたアドレスと保持しているアドレスが一致するときには、冗長メモリ１０にデータを書込み、または冗長メモリ１０からのデータを読出して出力する。パワーアップ回路54は、パワーアップシーケンス時に、メモリ内のＢＩＳＴ回路を起動して、メモリから送られるテスト結果が不良なメモリセルのアドレスを受けて、アドレスを不良なメモリセルのアドレスとして救済回路１１に保持させる。【選択図】図１
2013118034.tif 000002
【特許請求の範囲】
【請求項１】
メモリを制御するメモリコントローラであって、
前記メモリ内の不良なメモリセルに代わって、データを記憶する冗長メモリと、
前記不良なメモリセルのアドレスを保持し、入力されたアドレスと前記保持しているアドレスが一致するときには、前記冗長メモリにデータを書込み、または前記冗長メモリからのデータを読出して出力する救済回路と、
パワーアップシーケンス時に、前記メモリ内のＢＩＳＴ回路を起動して、前記メモリから送られるテスト結果が不良なメモリセルのアドレスを受けて、前記アドレスを前記不良なメモリセルのアドレスとして前記救済回路に保持させるパワーアップ回路を備える、メモリコントローラ。
【請求項２】
前記メモリコントローラは、
前記メモリセルから読み出されたデータのエラーをチェックし、前記エラーのあったメモリセルのアドレスを前記不良なメモリセルのアドレスとして、前記救済回路に保持させるエラー回路を備える、請求項１記載のメモリコントローラ。
【請求項３】
前記救済回路は、データの書込み時に、前記入力されたアドレスと前記保持しているアドレスが一致するときには、書込データを前記冗長メモリに記憶させ、前記保持しているアドレスを有効に設定する、請求項２記載のメモリコントローラ。
【請求項４】
前記救済回路は、データの読出し時に、前記入力されたアドレスと前記保持しているアドレスが一致するときには、前記保持しているアドレスが有効に設定されている場合に限り、前記メモリセルから読み出されたデータに代えて、前記冗長メモリに記憶されているデータを外部へ出力する、請求項３記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに関する。
【背景技術】
【０００２】
特許文献１（特開平１０−２４２２８８号公報）にはメモリ内部にＢＩＳＴ（Build In Self Test）回路を設け、救済することが記載されている。特許文献１のシステムは、ランダムアクセスメモリＲＡＭ等の半導体メモリを搭載する論理集積回路装置ＬＳＩ等に、ビルトインセルフテスト回路ＢＩＳＴと、例えばビルトインセルフテスト回路ＢＩＳＴによるパワーオンリセット時の機能試験結果に応じて障害となった欠陥素子を自動的に冗長素子と置き換える欠陥救済回路つまり冗長アドレス切り換え回路ＲＡＸＣとを設ける。また、ビルトインセルフテスト回路ＢＩＳＴ及び冗長アドレス切り換え回路ＲＡＸＣを、論理集積回路装置等の所定の製造工程における機能試験及び欠陥救済に活用する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４２２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、図１１に示すように、通常メモリ１は、プロセッサやＡＳＩＣ２に含まれるメモリコントローラ３によって制御される。
【０００５】
テスト回路および救済回路を、メモリではなくメモリコントロール側に設けても、テストおよび救済が可能である。
【０００６】
図１２は、テスト回路および救済回路を備えるメモリコントローラの構成を表わす図である。
【０００７】
図１２に示すように、このメモリコントローラは、パワーアップ回路４と、ＢＯＳＴ（Built-Out Self Test）回路５と、内部回路６と、冗長メモリ１０および救済回路１１からなる冗長救済回路９と、切替回路７と、ＰＨＹ８とを備える。
【０００８】
パワーアップ回路４は、電源立ち上げ時のパワーアップシーケンスを制御する。
ＢＯＳＴ回路５は、メモリ内のメモリセルのテストを制御する。
【０００９】
内部回路６は、メモリをコントロールするための処理を行なう。
冗長メモリ１０は、メモリ内の不良メモリセルに代わって、データを記憶する。
【００１０】
救済回路１１は、冗長メモリ１０からのデータの読出し、または冗長メモリ１０へのデータの書込みを制御する。
【００１１】
切替回路７は、メモリから送られてきたデータの出力先を切替え、メモリへ出力するデータの入力元を切替える。
【００１２】
ＰＨＹ８は、メモリとの間のインタフェースである。
また、図１３に示すように、プロセッセに複数のメモリが接続し、それぞれのメモリの容量や種類が違うこともある。その場合、それぞれのメモリに対応した冗長救済回路が必要となり、エリアペナルティが大きくなる。
【００１３】
また、特許文献１のような従来の方法では、通常動作とテスト動作が別であったため、動作中に劣化した不良は救済できないという問題がある。
【００１４】
それゆえに、本発明の目的は、エリアペナルティを小さくすることができるメモリコントローラを提供することである。さらに、本発明の目的は、動作中に劣化した不良を救済することができるメモリコントローラを提供することである。
【課題を解決するための手段】
【００１５】
本発明の一実施形態のメモリコントローラは、メモリを制御するメモリコントローラであって、メモリ内の不良なメモリセルに代わって、データを記憶する冗長メモリと、不良なメモリセルのアドレスを保持し、入力されたアドレスと保持しているアドレスが一致するときには、冗長メモリにデータを書込み、または冗長メモリからのデータを読出して出力する救済回路と、パワーアップシーケンス時に、メモリ内のＢＩＳＴ回路を起動して、メモリから送られるテスト結果が不良なメモリセルのアドレスを受けて、アドレスを不良なメモリセルのアドレスとして救済回路に保持させるパワーアップ回路を備える。
【発明の効果】
【００１６】
本発明によれば、エリアペナルティを小さくすることができる。また、本発明によれば、動作中に劣化した不良を救済することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態のメモリコントローラの構成を表わす図である。
【図２】第１の実施の形態の電源立ち上げ時の動作を示す図である。
【図３】図１に含まれる救済回路の詳細な構成を表わす図である。
【図４】第１の実施の形態の救済動作の手順を表わすフローチャートである。
【図５】第１の実施形態のメモリの構成を表わす図である。
【図６】第２の実施形態のメモリコントローラの構成を表わす図である。
【図７】第２の実施形態の不良メモリセルのアドレスの登録手順を表わすフローチャートである。
【図８】第２の実施形態の救済動作の手順を表わすフローチャートである。
【図９】第３の実施形態の冗長メモリおよび救済回路を表わす図である。
【図１０】第３の実施形態における不良メモリセルのアドレスの登録および救済の手順を１つにまとめたフローチャートである。
【図１１】メモリとメモリコントローラを説明するための図である。
【図１２】テスト回路および救済回路を備えるメモリコントローラの構成を表わす図である。
【図１３】複数のメモリに対応する冗長救済回路を説明するための図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
（メモリコントローラの構成）
図１は、第１の実施形態のメモリコントローラの構成を表わす図である。
【００１９】
このメモリコントローラ５３が、従来例の図１２のメモリコントローラ３と相違する点は、ＢＯＳＴ回路５を含まない点と、パワーアップ回路の機能である。
【００２０】
図１２に含まれるようなメモリをテストするためのＢＯＳＴ回路５は、メモリ全体の空間をテストするためにアドレスを発生し、不良ビットを探すために様々なデータパターンを発生する必要がある。そのため、ＢＯＳＴ回路５は、内部にシーケンサを設ける必要があり、回路規模が大きくなる。さらに、ＢＯＳＴ回路５は、接続するメモリ毎に変更する必要があり、共通化も難しい。また、図１３で示したように、複数のメモリを接続する時は、メモリごとに、ＢＯＳＴ回路５を設ける必要がある。
【００２１】
これに対して、図１に示すように、本実施の形態のメモリコントローラは、回路規模の大きいＢＯＳＴ回路を含まずに、パワーアップ回路５４が、通常のメモリに搭載されているＢＩＳＴ回路を利用して、メモリをテストする。
【００２２】
（動作）
図２は、第１の実施の形態の電源立ち上げ時の動作を示す図である。
【００２３】
従来は、メモリへのパワーアップシーケンスを実行すると、通常の動作が開始されるが、本実施の形態では、メモリコントローラ５３内部のパワーアップ回路５４は、パワーアップシーケンス後、メモリ内部のＢＩＳＴ回路を起動する。メモリ内部のＢＩＳＴ回路は、ビットエラーが発生した時はエラーのアドレスとエラーコードをパワーアップ回路５４に転送する。パワーアップ回路５４は、救済回路１１にエラーのアドレスを保持させる。
【００２４】
図１２に示す従来例では、ＢＯＳＴ回路でメモリテストをコントロールし、結果を救済回路１１に転送した。これに対して、本実施の形態では、メモリ内部のＢＩＳＴ回路のテスト結果が救済回路１１に転送される。エラーが発生したアドレスにアクセスされた時は、メモリにアクセスするのではなく、メモリコントローラ内部に設けた冗長メモリ１０にアクセスする。そのためエラーが回避される。たとえば、１つのアドレスのエラーを救済するのであれば、メモリと接続しているＩＯ分だけのメモリ容量を冗長メモリとして搭載するだけであり、エリアペナルティは非常に小さい。
【００２５】
（救済回路）
図３は、図１に含まれる救済回路の詳細な構成を表わす図である。
【００２６】
図３を参照し、救済回路１１は、アドレス比較回路２１と、スタック２２とを含む。
アドレス比較回路２１は、保持しているアドレスと入力されるアドレスが一致しているときに、冗長メモリ１０へのアクセスを許可する。スタック２２は、データの書込時には、外部からのアドレスが保持しているアドレスと一致しているときに、外部からのデータを冗長メモリ１０へ出力する。スタック２２は、データの読出時には、保持しているアドレスと入力されるアドレスが一致しているときに、冗長メモリ１０から出力されたデータを外部へ出力する。
【００２７】
（救済動作）
図４は、第１の実施の形態の救済動作の手順を表わすフローチャートである。
【００２８】
アドレス比較回路２１には、ＢＩＳＴ動作によって得られた不良メモリセルのアドレスが保存されているものとする。
【００２９】
図４を参照して、読出コマンド（Ｒｅａｄ）が入力されたときには（ステップＳ１０１でＲｅａｄ）、内部回路６内の図示しない制御回路は、メモリへ読み出しコマンドを送る（ステップＳ１０２）。
【００３０】
アドレス比較回路２１は、入力された読出しアドレスと保持している不良アドレスを比較し、切替回路７は、一致しなければ（ステップＳ１０３でＭｉｓｓ）、メモリから読出されたデータを内部回路６に転送する。
【００３１】
一方、切替回路７は、一致した場合には（ステップＳ１０３でＨｉｔ）、メモリから読み出されたデータに代えて冗長メモリ１０から読み出されたデータを内部回路６に転送する（ステップＳ１０４）。
【００３２】
書込コマンド（Ｗｒｉｔｅ）が入力されたときには（ステップＳ１０１でＷｒｉｔｅ）、内部回路６内の制御回路は、書込みデータをメモリおよびスタック２２に書き込む（ステップＳ１０５）。
【００３３】
アドレス比較回路２１は、入力された書込みアドレスと保持している不良アドレスを比較して、一致した場合には（ステップＳ１０６でＨｉｔ）、スタック２２は、保持したデータを冗長メモリ１０に転送する（ステップＳ１０７）。
【００３４】
（メモリ）
図５は、第１の実施形態のメモリの構成を表わす図である。
【００３５】
図５を参照して、このメモリ１は、制御信号バッファ１２１と、アドレスバッファ１２２と、クロックバッファ２３と、出力バッファ２４と、入力バッファ２５と、ＰＬＬ（Phase Locked Loop）回路２６と、制御回路２７と、ＢＩＳＴ回路２８と、メモリアレイ制御回路２９と、メモリアレイ３０と、リードアンプ＆ライトドライバ３１とを備える。
【００３６】
制御信号バッファ１２１は、外部から入力される制御信号Ｃｏｍｍａｎｄを受ける。
アドレスバッファ１２２は、外部からのアドレス信号Ａｄｄｒｅｓｓを受ける。
【００３７】
クロックバッファ２３は、外部からのクロック信号ＣＬＫを受ける。
出力バッファ２４は、外部へデータを出力する。
【００３８】
入力バッファ２５は、外部からのデータを受ける。
ＰＬＬ回路２６は、外部からのクロックＣＬＫに基づいて、内部クロックを生成して出力する。
【００３９】
制御回路２７は、メモリ１全体を制御する。
ＢＩＳＴ回路２８は、パワーアップシーケンス時に、メモリアレイ３０に含まれるメモリセルをテストし、テスト結果が不良のメモリセルのアドレスを出力バッファ２４を介してメモリコントローラ５３に出力する。
【００４０】
メモリアレイ制御回路２９は、メモリアレイ３０を制御し、ローデコーダ、カラムデコーダなどを含む。
【００４１】
メモリアレイ３０は、複数のメモリセルを含む。
リードアンプ＆ライトドライバ３１は、書込時に外部からのデータをメモリアレイ３０へ出力し、読出時に、メモリアレイ３０から出力されたデータを出力バッファを介して外部へ出力する。
【００４２】
［第２の実施形態］
第１の実施形態では、メモリが動作中に劣化して不良を発生した時には救済できない。不良アドレスを見つけるために、メモリのテストが必要であるためである。これに対して、第２の実施形態では、メモリが動作中の不具合に対応する。
【００４３】
（構成）
図６は、第２の実施形態のメモリコントローラの構成を表わす図である。
【００４４】
図６のメモリコントローラ６３が、図１のメモリコントローラ５３と相違する点は、ＥＣＣ（Error Check and Correction）回路８０を備える点である。
【００４５】
ＥＣＣ回路８０は、動作中にメモリセルの読出データのエラーを検出したときには、エラーのあった不良メモリセルのアドレスをアドレス比較回路６１へ出力するとともに、エラーを訂正する。
【００４６】
アドレス比較回路６１は、受取った不良メモリセルのアドレスを保持する。
（不良メモリセルのアドレス登録動作）
図７は、第２の実施形態の不良メモリセルのアドレスの登録手順を表わすフローチャートである。
【００４７】
図７を参照して、読出コマンド（Ｒｅａｄ）が入力されたときには（ステップＳ２０１でＲｅａｄ）、内部回路１６内の図示しない制御回路は、メモリへ読み出しコマンドを送る（ステップＳ２０２）。
【００４８】
ＥＣＣ回路８０は、メモリから読み出されたデータにエラーがあるか否かをチェックし、エラーがあった場合には（ステップＳ２０３でエラーあり）、エラーを修正するとともに、エラーのあった不良メモリセルのアドレスをアドレス比較回路６１へ出力して、アドレス比較回路６１に不良メモリセルのアドレスを記憶させる（ステップＳ２０４）。
【００４９】
書込コマンド（Ｗｒｉｔｅ）が入力されたときには（ステップＳ２０１でＷｒｉｔｅ）、内部回路６内の制御回路は、書込みデータをメモリに書き込む（ステップＳ２０５）。
【００５０】
（救済動作）
図８は、第２の実施の形態の救済動作の手順を表わすフローチャートである。
【００５１】
アドレス比較回路６１には、ＥＣＣ回路８０によって検出された不良メモリセルのアドレスが保存されているものとする。
【００５２】
図８を参照して、読出コマンド（Ｒｅａｄ）が入力されたときには（ステップＳ１０１でＲｅａｄ）、内部回路１６内の図示しない制御回路は、メモリへ読み出しコマンドを送る（ステップＳ３０２）。
【００５３】
アドレス比較回路６１は、入力された読出しアドレスと保持している不良アドレスを比較する。アドレス比較が一致している場合には（ステップＳ３０３でＨｉｔ）、一致したアドレスが有効、つまり冗長メモリ１０にデータが書き込まれている場合には（ステップＳ３０４でＹＥＳ）、切替回路７は、メモリから読み出されたデータに代えて冗長メモリ１０から読み出されたデータを内部回路１６に転送する（ステップＳ３０５）。
【００５４】
切替回路７は、アドレスが一致しない場合（ステップＳ３０３でＭｉｓｓ）、または一致したアドレスが有効でない場合（ステップＳ３０４でＮＯ）、メモリから読出されたデータを内部回路１６に転送する。
【００５５】
書込コマンド（Ｗｒｉｔｅ）が入力されたときには（ステップＳ１０１でＷＲＩＴＥ）、内部回路１６内の制御回路は、書込みデータをメモリおよびスタック２２に書き込む（ステップＳ１０５）。
【００５６】
アドレス比較回路６１は、入力された書込みアドレスと保持している不良アドレスを比較して、一致した場合には（ステップＳ３０７でＨｉｔ）、スタック２２は、保持したデータを冗長メモリ１０に転送するともに、アドレス比較回路６１は、一致したアドレスを有効に設定する（ステップＳ３０８）。
【００５７】
［第３の実施形態］
第３の実施形態では、図９に示すように、メモリコントローラは、３個の冗長メモリ７１ａ，７１ｂ，７１ｃを備え、各冗長メモリは、不良メモリセルに代わって、データを記憶する。
【００５８】
救済回路７６は、スタック２２と、アドレス比較回路７２ａ，７２ｂ，７２ｃと、セレクタ７３を含む。
【００５９】
アドレス比較回路７２ａは、冗長メモリ７１ａが置換する不良メモリセルのアドレスを記憶し、外部からのアドレスと記憶しているアドレスとを比較する。アドレス比較回路７２ｂは、冗長メモリ７１ｂが置換する不良メモリセルのアドレスを記憶し、外部からのアドレスと記憶しているアドレスとを比較する。アドレス比較回路７２ｃは、冗長メモリ７１ｃが置換する不良メモリセルのアドレスを記憶し、外部からのアドレスと記憶しているアドレスとを比較する。
【００６０】
セレクタ７３は、データの書込み時に、アドレス比較回路７２ａでアドレスが一致した場合には、スタック２２内のデータを冗長メモリ７１ａへ出力する。セレクタ７３は、データの読出し時に、アドレス比較回路７２ａでアドレスが一致した場合には、冗長メモリ７１ａのデータをスタック２２へ出力する。
【００６１】
セレクタ７３は、データの書込み時に、アドレス比較回路７２ｂでアドレスが一致した場合には、スタック２２内のデータを冗長メモリ７１ｂへ出力する。セレクタ７３は、データの読出し時に、アドレス比較回路７２ｂでアドレスが一致した場合には、冗長メモリ７１ｂのデータをスタック２２へ出力する。
【００６２】
セレクタ７３は、データの書込み時に、アドレス比較回路７２ｃでアドレスが一致した場合には、スタック２２内のデータを冗長メモリ７１ｃへ出力する。セレクタ７３は、データの読出し時に、アドレス比較回路７２ｃでアドレスが一致した場合には、冗長メモリ７１ｃのデータをスタック２２へ出力する。
【００６３】
（アドレス登録および救済）
図１０は、第３の実施形態における不良メモリセルのアドレスの登録および救済の手順を１つにまとめたフローチャートである。
【００６４】
図１０を参照して、読出コマンド（Ｒｅａｄ）が入力されたときには（ステップＳ４０１でＲｅａｄ）、内部回路１６内の図示しない制御回路は、メモリへ読み出しコマンドを送る（ステップＳ３０２）。
【００６５】
アドレス比較回路７２ａ，７２ｂ，７２ｃは、入力された読出しアドレスと保持している不良アドレスを比較する。アドレス比較が一致している場合には（ステップＳ４０３でＨｉｔ）、一致したアドレスが有効、つまり冗長メモリ７１ａ，７１ｂ，７１ｃにデータが書き込まれている場合には（ステップＳ４０４でＹＥＳ）、切替回路７は、メモリから読み出されたデータに代えて冗長メモリ７１ａ，７１ｂ，７１ｃから読み出されたデータを内部回路１６に転送する（ステップＳ４０５）。
【００６６】
一方、アドレス比較が一致していない場合には（ステップＳ４０３でＮＯ）、ＥＣＣ回路８０は、メモリから読み出されたデータにエラーがあるか否かをチェックし、エラーがあった場合には（ステップＳ４０６でＹＥＳ）、冗長メモリ７１ａ，７１ｂ，７１ｃのいずれかにに空きがあるかどうかを調べる。冗長メモリ７１ａ，７１ｂ，７１ｃのいずれかに空きがある場合には（ステップＳ４０７でＹＥＳ）、エラーのあった不良メモリセルのアドレスをアドレス比較回路７２ａ，７２ｂ，７２ｃのうち空きのある冗長メモリに対応するものへ出力して、そのアドレス比較回路に不良メモリセルのアドレスを記憶させる（ステップＳ４０８）。さらに、ＥＣＣ回路８０は、読み出したデータのエラーを修正する（ステップＳ３０９）。
【００６７】
一致したアドレスが有効でない場合（ステップＳ３０４でＮＯ）、またはメモリから読み出されたデータにエラーがエラーがなかった場合には（ステップＳ３０６でＮＯ）、メモリから読出されたデータを内部回路１６に転送する（ステップＳ３１０）。
【００６８】
書込コマンド（Ｗｒｉｔｅ）が入力されたときには（ステップＳ４０１でＷＲＩＴＥ）、内部回路１６内の制御回路は、書込みデータをメモリおよびスタック２２に書き込む（ステップＳ１０５）。
【００６９】
アドレス比較回路７２ａ，７２ｂ，７２ｃは、入力された書込みアドレスと保持している不良アドレスを比較して、一致した場合には（ステップＳ４１２でＨｉｔ）、スタック２２は、保持したデータを対応の冗長メモリ７１ａ，７１ｂ，７２ｃのうち、一致したアドレス比較回路に対応する冗長メモリに転送するともに、一致したアドレス比較回路は、一致したアドレスを有効に設定する（ステップＳ４１３）。
【００７０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７１】
１，１ａ，１ｂ，１ｃ  メモリ、２  プロセッセｏｒＡＳＩＣ、３，５３  メモリコントローラ、５  ＢＯＳＴ回路、６  内部回路、７  切替回路、８，８ａ，８ｂ，８ｃ  ＰＨＹ、９，９ａ，９ｂ，９ｃ，６９  冗長救済回路、１０，７１ａ，７１ｂ，７１ｃ  冗長メモリ、１１，６２  救済回路、２１，６１，７２ａ，７２ｂ，７２ｃ  アドレス比較回路、２２，６２  スタック、２３  クロックバッファ、２４  出力バッファ、２５  入力バッファ、２６  ＰＬＬ回路、２７  制御回路、２８  ＢＩＳＴ回路、２９  メモリアレイ制御回路、３０  メモリアレイ、３１  リードアンプ＆ライトドライバ、５３  メモリコントローラ、５４  パワーアップ回路、７３  セレクタ、８０  ＥＣＣ回路、１２１  制御信号バッファ、１２２  アドレスバッファ。
【図１】
2013118034.tif 000003
【図２】
2013118034.tif 000004
【図３】
2013118034.tif 000005
【図４】
2013118034.tif 000006
【図５】
2013118034.tif 000007
【図６】
2013118034.tif 000008
【図７】
2013118034.tif 000009
【図８】
2013118034.tif 000010
【図９】
2013118034.tif 000011
【図１０】
2013118034.tif 000012
【図１１】
2013118034.tif 000013
【図１２】
2013118034.tif 000014
【図１３】
2013118034.tif 000015