(57)【要約】データを不揮発性メモリから揮発性メモリへ転送するための構造および方法である。「転送ビット」と呼ばれる付加的なビットが各データワードに含まれる。転送ビットはプログラムされた値にセットされ、メモリ転送中に制御回路によってモニタされる。供給電圧が正しいプログラミングにとって十分である場合、転送ビットは「プログラムされた」として読出され、データ転送は続く。供給電圧が適正なプログラミングのための最小供給電圧よりも低い場合、転送ビットは「消去された」として読出され、データ転送は再開始される。一実施例では、「消去された」値にセットされた第２の転送ビットが各ワードに含まれる。
2005507132.tif 000002
【特許請求の範囲】
【請求項１】
初期化回路であって、
複数のワードを含む不揮発性メモリを備え、各ワードは「プログラムされた」値および「消去された」値のうちの一方である第１の格納値を有する第１の転送ビットを含み、不揮発性メモリは、入力ポートと、出力ポートと、制御入力ポートとを有しており、前記初期化回路はさらに、
不揮発性メモリの出力ポートに結合された入力ポートと、出力ポートとを有するセンスアレイを備え、出力ポートは、感知された第１の転送ビットが配置される第１の端子を含み、前記初期化回路はさらに、
センスアレイの出力ポートに結合された入力ポートと、制御入力ポートとを有する揮発性メモリ、および、
センスアレイの第１の端子と、不揮発性メモリおよび揮発性メモリの制御入力ポートとに結合された制御回路を備える、初期化回路。
【請求項２】
第１の転送ビットは各ワードの同じ位置にある、請求項１に記載の初期化回路。
【請求項３】
各ワードは、第２の格納値を有する第２の転送ビットをさらに含み、第２の格納値は第１の格納値とは異なっており、
センスアレイ出力ポートは、感知された第２の転送ビットが配置される第２の端子をさらに含み、
制御回路はセンスアレイの第２の端子にさらに結合されている、請求項１に記載の初期化回路。
【請求項４】
制御回路は、センスアレイの第１の端子に結合されたラッチを備える、請求項１に記載の初期化回路。
【請求項５】
初期化回路は、プログラマブルロジックデバイスの一部を備える、請求項１に記載の初期化回路。
【請求項６】
複数のワードは、プログラマブルロジックデバイス用の設定データを構成する、請求項５に記載の初期化回路。
【請求項７】
プログラマブルロジックデバイスはＣＰＬＤである、請求項５に記載の初期化回路。
【請求項８】
不揮発性メモリおよび揮発性メモリを含むプログラマブルロジックデバイスを設定するための装置であって、不揮発性メモリはプログラマブルロジックデバイス用の設定データを構成する複数のワードを含み、各ワードは「プログラムされた」値および「消去された」値のうちの一方である第１の格納値を有する第１の転送ビットを含んでおり、装置は、
プログラマブルロジックデバイスに電源投入するための手段と、
ワードの各々を不揮発性メモリから揮発性メモリへ、最初のワードから最後のワードへのワード順で転送するための手段と、
各ワードについて、不揮発性メモリから揮発性メモリへ転送された第１の転送ビットの第１の検出値を検出するための手段と、
任意の１ワードについて第１の検出値が第１の格納値と異なる場合に、ワードの各々を不揮発性メモリから揮発性メモリへ転送して各ワードについて第１の検出値を検出することを繰返すための手段とを備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この発明は、不揮発性メモリと揮発性メモリとの間のデータ転送に関する。より特定的には、この発明は、たとえばプログラマブルロジックデバイスでの設定データの転送において、不揮発性メモリから揮発性メモリへのデータ転送の信頼性を向上させるために、転送ビットを使用することに関する。
【背景技術】
【０００２】
発明の背景
プログラマブルロジックデバイス（ＰＬＤ）は、特定のロジック機能を実行するようにユーザによってプログラム可能な周知の種類のデジタル集積回路である。ＰＬＤの一種である複合プログラマブルロジックデバイス（ＣＰＬＤ）は通常、入力／出力（Ｉ／Ｏ）セルのグループと、プログラマブル機能ブロックの対応する組と、スイッチマトリックスと呼ばれる配線マトリックスとを含む。Ｉ／Ｏセルは、ＣＰＬＤと他のデバイスまたはシステムとの間に通信を提供する。機能ブロックは、複数のＰ項（積項）を生成し、これらのＰ項から１つ以上のＳＯＰ（積の合計）出力信号を生成する。スイッチマトリックスは、機能ブロックおよびＩ／Ｏセル間の内部通信を提供する。
【０００３】
Ｉ／Ｏセル、機能ブロック、およびスイッチマトリックスの機能性は、ＣＰＬＤに同様に含まれるメモリセルに格納されたデータビットによって制御される。したがって、ＣＰＬＤの機能性は、これらのメモリセルにデータ値を書込むことによって規定される。このプロセスは「プログラミング」または「設定（コンフィギュレーション）」と呼ばれ、メモリセルに書込まれたデータ値は「プログラミングデータ」または「設定データ」と呼ばれる。ＣＰＬＤは不揮発性デバイスである。つまり、ＣＰＬＤは、一旦プログラムされると、電力がデバイスから除去されて再投入された後で再度プログラムされる必要がない。
【０００４】
公知のさまざまなＣＰＬＤの１つが、ザイリンクス・インコーポレイテッド（Xilinx, Inc.）によって製造された「クールランナーTM」（“CoolRunnerTM”）ＣＰＬＤ系列である。クールランナーデバイスは、カリフォルニア（California）州サンホセ（San Jose）のザイリンクス・インコーポレイテッドから入手可能な「プログラマブルロジックデータブック２０００」（The Programmable Logic Data Book 2000）のページ６−１〜６−１３に記載されている。
【０００５】
クールランナーＣＰＬＤは、電力消費を低減するよう設計された数々の特徴をデバイスに取り入れた低電力デバイスである。そのような特徴の１つは、一方が不揮発性（他のＣＰＬＤと同様）、一方が揮発性の２組のメモリセルを含むことである。他のＣＰＬＤと同様にデバイスがプログラムされると、プログラミングデータが不揮発性メモリセルのグループに書込まれる。しかしながら、これらの不揮発性メモリセルはデバイスの機能性を直接制御しない。その代わり、デバイスがシステムに挿入されて電力が印加されると、プログラミングデータは不揮発性メモリセルから揮発性メモリセルのグループへコピーされる。クールランナーＣＰＬＤにおけるＩ／Ｏセル、機能ブロック、およびスイッチマトリックスの機能性を制御するのは、これらの揮発性メモリセル内のデータである。揮発性メモリは同様にロードされた不揮発性メモリよりも消費電力が少ないため、この固有のアーキテクチャ上の特徴はクールランナーデバイスの低電力消費に寄与している。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、供給電圧が低過ぎるかまたはノイズがあり過ぎる場合にデータ転送が起こると、このデータ転送はエラーのない状態にはならないかも知れない。
【０００７】
低い供給電圧によって起こるエラーを低減する、またはなくす公知の方法の１つは、ＣＰＬＤに防護策を組み込んで、最小供給電圧に達するまでデータ転送を保留する、ということである。たとえば、バンドギャップ回路またはダイオードスタックなどの基準回路を用いて、最小供給電圧をセットすることができる。しかしながら、システム供給電圧は、たとえば３．３ボルトから１．８ボルト〜１．５ボルト、およびそれ以下へ下がってきている。システム供給電圧が下がるにつれ、システム供給電圧と制御可能な最小供給電圧との差は、温度変動およびシリコン製造公差がその差を取るに足りないものとする点まで減少される。ある条件下で、十分に低いシステム供給電圧が与えられると、不揮発性メモリから揮発性メモリへのデータ転送が全くトリガされない場合があり得る。
【０００８】
ノイズのある供給電圧によって起こるエラーも問題となり得る。供給電圧は、増加中、最小供給電圧を越えて上昇し、メモリ転送をトリガしてから、「グリッチ」で低くなり、瞬間的に最小供給電圧より下に降下する場合がある。このグリッチが検出されなければ、不良データが１つ以上の揮発性メモリセルにロードされるおそれがある。最も問題なのは、プログラムされた（ローの、または導通の）値の転送である。供給電圧が最小供給電圧より下に降下すると、データは、消去された（ハイの、または非導通の）データとして転送する。
【０００９】
ＣＰＬＤの中には、最小供給電圧信号が、供給電圧が不揮発性メモリから揮発性メモリへのデータ転送を可能にするのに十分高いことを感知する別の信号によって、ゲート制御されるものもある。しかしながら、この構成は、データ転送開始時の供給電圧を検出するだけである。（この解決策は、メモリ機能性を検査するために使用される、「ダミーワード」をメモリアレイに供給する周知の技術と同様である。）供給電圧がメモリ転送中の任意の時点でほんの一時的でも降下すると、データ転送エラーが起こり得る。
【００１０】
したがって、不揮発性メモリと揮発性メモリとの間のデータ転送エラーの発生率を低減させる構造および方法を導入することが望ましい。
【課題を解決するための手段】
【００１１】
発明の概要
この発明は、データを不揮発性メモリから揮発性メモリへ転送する、たとえば、ＣＰＬＤにおいて設定データを不揮発性メモリから揮発性メモリへ転送するための構造および方法を提供する。
【００１２】
ＣＰＬＤメモリはワードで構成されており、その各々は、通常数百〜数千ビットの多数のビットを含む。ＣＰＬＤの電源投入および初期化シーケンス中、不揮発性メモリデータがセンスアンプによって感知され、揮発性メモリアレイに１ワードずつ書込まれる。通常、消去された（ハイの、または非導通の）不揮発性セルを感知することは、非常に低い電圧ででも問題を引き起こさない。しかしながら、プログラムされた（ローの、または導通の）不揮発性セルを感知することは、非常に低い電圧で問題を引き起こす。センスアンプの状態を切換えるために電流を十分低下させることができる十分な電圧バイアスが、プログラムされたセルに印加されなければならない。
【００１３】
この発明は、２つのメモリ間で転送された各データワードに「転送ビット」と呼ばれる付加的なビットを配置することによって、この問題に対処している。好ましくは、転送ビットは各ワード内の同じ位置にある。転送ビットは好ましくは、プログラムされた値にセットされる。なぜなら、これらの値の転送は、上述のように問題をより含んでいるためである。
【００１４】
メモリ転送中、センスアンプは転送ビットの状態を読出し、結果を制御回路へ送り返す。転送ビットが「プログラムされた」値として不揮発性メモリに格納され、供給電圧が正しいデータ転送にとって十分である場合、転送ビットは「プログラムされた」として読出される。供給電圧が適正なデータ転送のための最小供給電圧よりも下である場合、転送ビットは「消去された」として読出される。
【００１５】
制御回路は、たとえば、データ転送が始まる前にリセットされるラッチを含んでいてもよい。転送ビットが各ワードについて「プログラムされた」として感知される限り、ラッチ内の値はリセットのままとなり、初期化は完了するまで続く。転送ビットが任意のワードについて「消去された」として感知されると、ラッチ内の値はセットされ、データ転送は最初の転送されたワードから再び開始される。
【００１６】
このため、転送ビットをＣＰＬＤプログラミングワードに含めることは、不揮発性メモリ内の各ワードが適正に感知され、揮発性メモリに書込まれることを確実にする。
【００１７】
一実施例では、「消去された」転送ビットは、データ転送の即時の再開始をトリガする。別の実施例では、データ転送が完了するまでラッチ内の値はチェックされない。その時点で、１つ以上の転送ビットが「消去された」として誤って検出されると、データ転送シーケンス全体が繰返される。一実施例では、データ転送全体には約２０−４０マイクロ秒（１ワードにつき約２００ナノ秒）かかる。したがって、データ転送シーケンス全体を繰返すことによって被るさらなる遅延は比較的些細なものである。
【００１８】
別の実施例では、第２の転送ビットが各ワードに含まれる。この第２の転送ビットは「消去された」ビットである。このため、一方の転送ビットがプログラムされ、他方が消去される。任意のワードについて、「消去された」転送ビットが「プログラムされた」として感知された場合、それはたとえばセンスアンプのダイナミックなプリチャージが成功しなかったことを示すかも知れない。
【００１９】
他の実施例、特に非常に大きいワードを有する実施例では、多数の「プログラムされた」転送ビット、および／または多数の「消去された」転送ビットが含まれる。転送が成功したかどうかを判断するために、「プログラムされた」転送ビットはＯＲ処理（ＯＲｅｄ）、「消去された」転送ビットはＡＮＤ処理（ＡＮＤｅｄ）され得る。一実施例では、１つ以上の「消去された」転送ビットが、不揮発性メモリに格納された各ワードに含まれ、「プログラムされた」転送ビットは含まれない。この実施例は、たとえば、供給電圧が非常に安定しており、単調に上昇することがわかっている状況で使用可能である。
【００２０】
各ワードへ１つまたは２つの転送ビットを、関連する支援回路とともに追加しても、ダイ面積は殆ど追加されない。一実施例では、２つの転送ビットの追加によってＣＰＬＤ製品に追加されるダイ面積は０．１％未満である。このため、追加コストは取るに足りず、一方、データ転送の信頼性の向上は非常に価値があるものとなる。
【発明を実施するための最良の形態】
【００２１】
以下の図面において、この発明を、限定のためではなく例示のために説明する。図中、同じ参照符号は同様の要素を指す。
【００２２】
図面の詳細な説明
この発明は、さまざまな電子機器に適用可能であると考えられる。この発明は、複合プログラマブルロジックデバイス（ＣＰＬＤ）といったプログラマブルロジックデバイス（ＰＬＤ）にとって特に適用可能であり、有益であることがわかっている。この発明はそのようには限定されていないものの、この発明の認識は、この場合では不揮発性メモリおよび揮発性メモリの双方を含むＣＰＬＤでの特定の例によって提示されている。
【００２３】
図１は、ＣＰＬＤの電源投入シーケンスにおける第１の場合を示す。図１では、動作電圧（データを不揮発性メモリから揮発性メモリへ正しく転送するのに十分な電圧）は、Ｖｏｐで表される。トリガ電圧（データ転送が開始される時点の電圧）は、Ｖｔｒｉｇで表される。ＣＰＬＤ用の電力供給は、Ｖｓｕｐｐｌｙで表される。明らかに、図１は、トリガ電圧が動作電圧よりも高い理想的な場合を示している。
【００２４】
供給電圧がトリガ電圧の値まで上昇すると（時点Ｔ０）、データ転送が開始される。この時点で、供給電圧は十分に高く、そのためデータ転送はエラーなく進行する。この場合、前述の先行技術の方法および構造はかなり良好に機能する。
【００２５】
図２は、ＣＰＬＤ電源投入シーケンスにおける第２の場合を示す。この場合、トリガ電圧は動作電圧よりも低い。この場合は、たとえば、Ｖｔｒｉｇを異常に低い値に変更する極度の処理コーナで（at an extreme processing corner）、または、不揮発性メモリセルの動作マージンがＣＰＬＤの拡張使用もしくは他の要因により減少した場合に起こり得る。
【００２６】
時点Ｔ１で、供給電圧はトリガ電圧に達し、データ転送が始まる。しかしながら、供給電圧は動作電圧にはまだ達しておらず、そのためデータ転送エラーが起こる。先行技術の方法および構造を使用すると、データは誤って転送され、次に揮発性メモリに保持される。この発明の方法および構造を使用すると、データ転送エラーは依然として起こるが、エラーは検出され、訂正される。
【００２７】
「プログラムされた」値を有する転送ビットが初めて「消去された」として検出されると、データ転送プロセスが再び開始される。実際、供給電圧が動作電圧に達し、プログラムされた値が正しく転送する時点Ｔ２の前に、データの最初のワード（または最初の数ワード）がしばしば転送されているかも知れない。無効の転送ビットがないかチェックする前にデータ転送全体が終了するようになっている別の実施例では、供給電圧は、データ転送を再び開始する前に、より安定しやすくなっている。
【００２８】
図３は第３の場合を示しており、ここでは、供給電圧がデータ転送をトリガするのに十分高く上昇し（時点Ｔ３）、次に時点Ｔ４で動作電圧より下に降下して戻っている。明らかに、先行技術の方法および構造はこの場合には機能しない。この発明の方法および構造を使用すると、データ転送は、供給電圧が時点Ｔ５で動作電圧よりも上に再度上昇するまで再び開始される（必要であれば繰返し行なわれる）。
【００２９】
図４は、この発明の一実施例に従ったプログラマブルロジックデバイスのための初期化および設定回路を示す。この回路は、不揮発性メモリ４０１と、センスアレイ４０２と、揮発性メモリ４０３と、制御回路４０４とを含む。不揮発性メモリ４０１に格納された各ワードＷＯＲＤ（０）〜ＷＯＲＤ（ｎ）は、一連の設定データビットＢＩＴ（０）〜ＢＩＴ（ｍ）と、転送ビットとを含む。
【００３０】
センスアレイ４０２は、不揮発性メモリ４０１の出力ポートと揮発性メモリ４０３の入力ポートとの間に結合されている。一実施例では、センスアレイ４０２は、不揮発性メモリに格納された値を感知する複数のセンスアンプＳＡ（０）〜ＳＡ（ｍ＋１）を含む。図示された実施例では、値は次にセンスアレイ４０２から揮発性メモリ４０３へ平行にパスされ、そこでそれらは格納される。データ転送は、各メモリの端子を制御するよう結合された制御回路４０４の制御の下で実行される。
【００３１】
２つのメモリ間で転送されるデータの各ワードは、少なくとも１つの転送ビットを含む。図示された実施例では、たった１つの転送ビットが含まれている。好ましくは、この転送ビットは「プログラムされた」値として不揮発性メモリに格納されている。制御回路は転送ビットをセンス回路によって検出されたようにモニタし、転送ビットが「消去された」値として検出されると転送プロセスを再開始する。
【００３２】
図５は、この発明の別の実施例に従ったプログラマブルロジックデバイスを設定する方法を示す。ステップ５０１で、デバイス用の設定データがデバイス上の不揮発性メモリに格納される。設定データの各ワードは、少なくとも１つの転送ビットとともに格納されている。
【００３３】
ステップ５０２で、デバイスは、恐らくはデバイスを含む完成したシステムの一部として電源投入される。ステップ５０３で、好ましくはステップ５０２の電源投入に応答して、デバイス上の不揮発性メモリと揮発性メモリとの間でデータ転送が開始される。
【００３４】
１度に１つのワードが２つのメモリ間で転送される。転送ビットについて感知された値はまた、転送中にチェックされる（ステップ５０４）。値が「プログラムされた」として格納され、「消去された」として検出される場合、または、「消去された」として格納され、「プログラムされた」として検出される場合、データ転送は再度初期化され、最初のワードが再度転送される（ステップ５０５）。値が期待された値として検出されている場合には、データ転送は正しく実行されたと推定される。（ステップ５０６で検査されるように）転送すべきワードが他にある場合、転送プロセスは次のワードへと続く（ステップ５０７）。データ転送が完了した場合（つまり、転送されたワードが転送すべき一連のワードの最後のものであった場合）、設定は完了し、デバイス動作がステップ５０８で始まる。
【００３５】
図６は、この発明に従ったプログラマブルロジックデバイスを設定する別の方法を示す。図６に示す方法は図５の方法と同様であるが、この実施例では、２つの転送ビットが設定データの各ワードに含まれている点が異なる。第１の転送ビットは「プログラムされた」値を有して不揮発性メモリに格納されている。第２の転送ビットは「消去された」値を有して不揮発性メモリに格納されている。
【００３６】
したがって、図５にステップ５０４として示された値のチェックは、ステップ６０１および６０２で実行される２つの別個の値のチェックに置換えられる。ステップ６０１で「プログラムされた」転送ビットが「消去された」として感知される場合、または、ステップ６０２で「消去された」転送ビットが「プログラムされた」として感知される場合、メモリ転送は再開始される（ステップ５０５）。ステップ６０１および６０２はいずれの順序でも実行可能である。
【００３７】
図７は、この発明に従ったプログラマブルロジックデバイスを設定する別の方法を示す。図７に示す方法は図５の方法と同様である。各ワードの後で転送ビットの値がチェックされる（ステップ５０４）。１つ以上の転送ビットが予期しない結果を示す場合、メモリ記憶装置においてエラーフラグがセットされる（ステップ７０９）。一実施例では、上述のように予期しない結果が検出されると、ラッチがセットされる。期待した結果が得られようと得られまいと、データ転送は完了するまで続く（ステップ５０６）。この時点で、エラーフラグがチェックされ（ステップ７１０）、エラーが検出された場合、メモリ転送は再開始される（ステップ５０５）。
【００３８】
この発明の関連技術分野の当業者であれば、ここの開示の結果としてなされ得るさまざまな変更および追加を理解するであろう。たとえば、上述の文は、ＣＰＬＤでの設定データの転送という文脈においてこの発明の方法および構造を説明している。しかしながら、この発明は、不揮発性メモリおよび揮発性メモリを含む他のデバイスでの他の種類のデータの転送にも適用可能である。さらに、ここに記載されたもの以外の不揮発性メモリ、揮発性メモリ、センスアレイ、センスアンプ、制御回路、およびラッチを使用してこの発明を実現することが可能である。また、構成要素の中には互いに直接接続されて図示されているものもあれば、中間構成要素を介して接続されていることが図示されているものもある。各々の場合、配線方法が、２つ以上の回路ノード間に何らかの所望の電気通信を確立している。当業者であれば理解するように、そのような通信はしばしば、数々の回路設定を用いて達成され得る。したがって、そのような変更および追加はすべて、添付された特許請求の範囲およびそれらの均等物のみによって限定されるべきこの発明の範囲内にあると考えられる。
【図面の簡単な説明】
【００３９】
【図１】理想的な場合におけるＣＰＬＤ電圧供給の増加を示す図である。
【図２】トリガ電圧が動作電圧よりも低い場合のＣＰＬＤ電圧供給の増加を示す図である。
【図３】電源投入中、電圧供給が動作電圧よりも下に「グリッチ」で低下した場合のＣＰＬＤ電圧供給の増加を示す図である。
【図４】この発明の一実施例に従った、不揮発性メモリから揮発性メモリへデータを転送するための回路のブロック図である。
【図５】この発明の別の実施例に従った、不揮発性メモリから揮発性メモリへデータを転送する第１の方法のフローチャートである。
【図６】この発明の別の実施例に従った、不揮発性メモリから揮発性メモリへデータを転送する第２の方法のフローチャートである。
【図７】この発明の別の実施例に従った、不揮発性メモリから揮発性メモリへデータを転送する第３の方法のフローチャートである。
【図４】
2005507132.tif 000003
【図５】
2005507132.tif 000004
【図６】
2005507132.tif 000005
【図７】
2005507132.tif 000006
【国際公開パンフレット】
2005507132.tif 000007
2005507132.tif 000008
2005507132.tif 000009
2005507132.tif 000010
2005507132.tif 000011
2005507132.tif 000012
2005507132.tif 000013
2005507132.tif 000014
2005507132.tif 000015
2005507132.tif 000016
2005507132.tif 000017
2005507132.tif 000018
2005507132.tif 000019
2005507132.tif 000020
2005507132.tif 000021
2005507132.tif 000022
2005507132.tif 000023
2005507132.tif 000024
2005507132.tif 000025
【国際調査報告】
2005507132.tif 000026
2005507132.tif 000027