(57)【要約】【課題】  プログラマブルメモリにおけるプログラムの記録回数を減少させる。【解決手段】  プログラマブルメモリ４０は、Ｎ個のワンタイムプログラマブル（ＯＴＰ）メモリ行４３１、出力モジュール４４、判定モジュール４１、および、書き込みモジュール４２を含む。出力モジュール４４はＯＴＰメモリ行４３１の全てのデータを受信し、出力データＯを生成する。判定モジュール４１は出力データＯおよび入力データＩを受信し、出力データＯおよび入力データＩに従って書き込み制御データＺを生成する。出力データＯのビットデータが入力データＩのビットデータと異なる場合に、書き込み制御データＺのビットがイネーブルとされる。書き込みモジュール４２は書き込み制御データＺを受信し、イネーブルとされたビットに対応するＯＴＰメモリ行４３１のプログラムされていないＯＴＰメモリセルに所定のビットデータを保存する。【選択図】        図４
2007122852.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルメモリであって、
各ワンタイムプログラマブル（ＯＴＰ）メモリ行が複数のＯＴＰメモリセルを有するＮ個のＯＴＰメモリ行、ここにおいて、Ｎは正の整数である；
前記Ｎ個のＯＴＰメモリ行の全てのデータを受信して、Ｎビットの出力データを生成する出力モジュール、ここにおいて、前記出力データの各ビットデータは、前記ビットデータに対応する各ＯＴＰメモリ行の全てのデータに対して行われる演算により生成される；
前記出力データおよびＮビットの入力データを受信し、前記出力データおよび前記入力データに従ってＮビットの書き込み制御データを生成する判定モジュール、ここにおいて、前記出力データのＭ番目のビットデータが前記入力データのＭ番目のビットデータと異なる場合に、前記書き込み制御データのＭ番目のビットデータがイネーブルとされ、他の場合に前記書き込み制御データのＭ番目のビットデータがディセーブルとされる、ここで、Ｍは１〜Ｎの正の整数である；および
前記書き込み制御データを受信し、前記書き込み制御データのＭ番目のビットデータがイネーブルである場合に、対応するＭ番目のＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに所定のビットデータを記録する書き込みモジュール；
を備える。
【請求項２】
請求項１のプログラマブルメモリであって、
前記出力モジュールはＮ個の演算ユニットを有し、各演算ユニットはその対応するＯＴＰメモリ行の全てのＯＴＰメモリセルからのデータを受信し、前記プログラマブルメモリの出力データの１つのビットデータを生成する。
【請求項３】
請求項１のプログラマブルメモリであって、
前記出力モジュールが、
前記Ｎ個のＯＴＰメモリ行のＮ組のデータを受信し、ビット選択信号に従って１組の出力データを演算データとして選択する第１マルチプレクサ；
前記第１マルチプレクサから出力された前記演算データを受信し、演算ビットデータを生成する演算ユニット；および
前記ビット選択信号に従って前記演算ビットデータを記憶し、記憶したデータをＮビットの出力データとして出力するＮビットレジスタ；
を備える。
【請求項４】
請求項３のプログラマブルメモリであって、
前記判定モジュールが、
前記入力データを受信し、前記ビット選択信号に従って前記入力データの１つのビットデータを入力ビットデータとして選択する第２マルチプレクサ；および
前記第２マルチプレクサから出力された前記入力ビットデータ、および、前記書き込み制御データとして書き込み制御信号を出力するための前記演算ビットデータを受信する判定ユニット、ここにおいて、前記入力ビットデータが前記演算ビットデータと異なる場合に前記書き込み制御信号がイネーブルとされる；
を備える。
【請求項５】
請求項４のプログラマブルメモリであって、
前記書き込みモジュールが、
前記Ｎ個のＯＴＰメモリ行の前記Ｎ組のデータを受信し、前記ビット選択信号に従って１組のデータをメモリセルデータとして選択する第３マルチプレクサ；
前記書き込み制御データおよび前記第３マルチプレクサから出力された前記メモリセルデータを受信し、前記書き込み制御データがイネーブルである場合に書き込み信号を生成する書き込みユニット；および
前記書き込みユニットから出力された前記書き込み信号を受信し、前記ビット選択信号に従って前記書き込み信号に対応する１つのＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに前記書き込み信号を保存するデマルチプレクサ；
を備える。
【請求項６】
請求項２のプログラマブルメモリであって、
前記判定モジュールが前記Ｎビットの入力データおよび前記Ｎビットの出力データを受信して、前記Ｎビットの書き込み制御データを生成するＮ個の判定ユニットを備え、
前記入力データのＭ番目のビットデータが前記出力データのＭ番目のビットデータと異なる場合に、前記書き込み制御データのＭ番目のビットデータがイネーブルとされる。
【請求項７】
請求項６のプログラマブルメモリであって、
前記書き込みモジュールは、前記Ｎビットの書き込み制御データおよびＮ個のＯＴＰメモリ行の前記Ｎ組のデータを受信し、前記書き込み制御データに対応する前記ビットデータがイネーブルである場合に、対応するＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに前記所定のデータを保存するＮ個の書き込みユニットを有する。
【請求項８】
請求項２のプログラマブルメモリであって、
前記判定モジュールが、
Ｎビットの入力データを受信し、ビット選択信号に従って前記入力データの１つのビットデータを入力ビットデータとして選択する第１マルチプレクサ；
前記Ｎビットの出力データを受信し、前記出力データの１つのビットデータを出力ビットデータとして選択する第２マルチプレクサ；および
前記第１マルチプレクサから出力された前記入力ビットデータ、および、前記第２マルチプレクサから出力された前記出力ビットデータを受信して、書き込み制御信号を前記書き込み制御データとして出力する判定ユニット、ここにおいて、前記入力ビットデータが前記出力ビットデータと異なる場合に前記書き込み制御信号がイネーブルとされる；
を備える。
【請求項９】
請求項８のプログラマブルメモリであって、
前記書き込みモジュールが、
前記Ｎ個のＯＴＰメモリ行の前記Ｎ組のデータを受信し、前記ビット選択信号に従って１組のデータをメモリセルデータとして選択する第３マルチプレクサ；
前記書き込み制御データおよび前記第３マルチプレクサから出力された前記メモリセルデータを受信し、前記書き込み制御データがイネーブルである場合に書き込み信号を生成する書き込みユニット；および
前記書き込みユニットの前記書き込み信号を受信し、前記ビット選択信号に従って前記書き込み信号に対応する１つのＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに前記書き込み信号を保存するデマルチプレクサ；
を備える。
【請求項１０】
複数のワンタイムプログラマブル（ＯＴＰ）メモリ行を有するプログラマブルメモリのメモリモジュールであって、各ＯＴＰメモリ行が、
複数のＯＴＰメモリセル；
全ての前記ＯＴＰメモリセルの出力信号を受信し、出力ビットデータを生成する演算ユニット；
入力ビットデータおよび前記出力ビットデータを受信し、書き込み制御信号を生成する判定ユニット、ここにおいて、前記入力ビットデータが前記出力ビットデータと異なる場合に前記書き込み制御信号がイネーブルとされる；および
前記書き込み制御信号がイネーブルである場合にプログラムされていないＯＴＰメモリセルにデータを保存する書き込みユニット；
を備える。
【請求項１１】
請求項１０のメモリモジュールであって、
前記プログラマブルメモリがＮ個のワンタイムプログラマブル（ＯＴＰ）メモリ行を有し、Ｎビットのデータを記録する。
【請求項１２】
Ｎ行のワンタイムプログラマブル（ＯＴＰ）メモリセルを有するプログラマブルメモリにＮビットの入力データを保存するために使用される書き込み方法であって、
前記プログラマブルメモリのＮビットの入力データおよびＮビットの出力データを読み出す工程；
前記Ｎビットの入力データの各ビットデータを前記Ｎビットの出力データの対応する各ビットデータと比較する工程；および
前記入力データの対応するビットデータが前記出力データの対応するビットデータと異なる場合にＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに所定の値を保存する書き込み動作を行う工程；
を備える。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブルメモリおよびそのアクセス方法に関し、特に、Ｎ行のワンタイムプログラマブル（ＯＴＰ）メモリセルにより、マルチタイムプログラマブル（ＭＴＰ）記録を行うプログラマブルメモリおよびそのアクセス方法に関するものである。
【背景技術】
【０００２】
ウエハ、スーパーツイストネマチック液晶表示装置（ＳＴＮ−ＬＣＤ）、または薄膜トランジスタ液晶表示装置（ＴＦＴ−ＬＣＤ）の製造においては、完成品がそれぞれの電気的または光学的特性を有する可能性がある。製造歩留まりを向上するための典型的な方法では、目標の特性パラメータと比較されるべき実際の特性パラメータが測定され、その後、調整工程により補正される。ここで、その調整工程は容易に実現され、永久に維持される必要がある。例えば、補正された値はヒューズの焼切や不揮発性メモリにより記録されてもよい。ヒューズはレーザにより、あるいは、高電圧または高電流を与えることにより焼き切られてもよい。さらに、不揮発性メモリはワンタイムプログラマブルメモリ（ＯＴＰメモリ）、またはマルチタイムプログラマブルメモリ（ＭＴＰメモリ）であってもよく、それらは異なった構造により互いに区別される。また、実現の困難さによっては、調整工程は完成品や完成品に設けられたメモリセルに直接行われてもよい。
【０００３】
調整手段、ヒューズ、または不揮発性メモリが何度も繰り返し設定可能である場合は、より多くの柔軟性が製造途上にもたらされることは明らかである。それにより、仕様変更の後に、新たに補正された値を設定することができるからである。しかしながら、ヒューズなどのワンタイムプログラマブルメモリセルと比較すると、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのマルチタイムプログラマブルメモリには、追加の回路や複雑な製造プロセスが必要であり、製造コストが高くなってしまう。さらに、マルチタイムプログラマブルメモリの歩留まりは半導体製造工場において使用される半導体製造プロセスに密接に関係しているため、最大リスクが増大する。
【０００４】
したがって、マルチタイムプログラマブル記録がワンタイムプログラマブルメモリセルにより実現されるならば、マルチタイムの設定の柔軟性が維持される状況下で製造プロセスが簡素化され、製造コストが減少することとなる。
【０００５】
図１は、米国特許第６，７２８，１３７号に記載のプログラマブルメモリの構造を示すブロック図である。図１を参照すると、マルチタイムプログラマブル記録を実現するために、複数組のワンタイムプログラマブルメモリブロック１５がプログラマブルメモリ１０において使用されている。プログラマブルメモリ１０は、制御回路１１により制御される行デコーダ１２および列デコーダ１３を介してデータの書き込みおよび読み出しを行う。しかしながら、プログラマブルメモリ１０には、いずれのプログラマブルメモリブロックがプログラムされたのかを記録するために追加の記録エレメント１４が必要である。
【０００６】
図２は、米国公開番号２００５０２３２０３９に記載の他のプログラマブルメモリの構造を示すブロック図である。図２を参照すると、図１に示すプログラマブルメモリ１０と類似のマルチタイムプログラマブルメモリ２０は、マルチタイムプログラマブル記録を実現するために、複数組の調整ワンタイムプログラマブル（ＯＴＰ）メモリブロック２２を含む。新たなデータが１つのＯＴＰメモリブロック２２に保存されると、プログラマブルメモリ２０の書き込みデバイス２１は、ＯＴＰメモリブロック２２に対応して選択の目的に利用されるＯＴＰエレメント２４に同時に設定を行うことができる。すなわち、図１に示す記録エレメント１４はＯＴＰエレメント２４に置き換えられる。さらに、プログラマブルメモリ２０の複数の選択デバイス２３は最新の更新されたデータを出力するために用いられる。
【０００７】
図３は、米国公開番号２００５０２５３６２４に記載の他のプログラマブルメモリの構造を示すブロック図である。図３を参照すると、マルチタイムプログラマブルメモリ３０は、図２に示されるマルチタイムプログラマブルメモリ２０と類似しており、複数組の調整ワンタイムプログラマブル（ＯＴＰ）メモリブロック２２がマルチタイムプログラマブル記録を実現するために用いられる。しかしながら、図３に示すように、図２に示すＯＴＰエレメント２４は複数の判定デバイス３４に置き換えられる。したがって、ＯＴＰエレメント２４に関する追加の記録は必要ではなくなる。
【０００８】
通常、ＯＴＰセルとして機能する破壊可能なヒューズ構造は、典型的にはレーザにより、または高電圧や高電流を与えることにより焼き切られるため、ヒューズの構造を広げて周囲の回路に影響が及ぶことを避けるためには広い領域が確保されなければならない。一方、典型的な電荷蓄積型のＯＴＰメモリを使用する場合、その保存されたデータは高温、強電磁場、高強度の照明などの不利な環境で失われる可能性があり、設定された補正済みの値は永久には保存されなくなる。この環境では、電圧調整キャパシタを増加させる、電源の電圧を制限するまたは電流を制限する、ＩＣレイアウトに使用する金属の保護層を形成するなどの特別な処理を回路の設計に対して施す必要がある。しかしながら、従来の各ＭＴＰメモリビットと比較すると、このような修正によって各ＯＴＰメモリビットの領域が何倍も大きくなってしまう。さらに、プログラムすべきビットの数が増加すればするほど、プログラムの失敗が生じる可能性も高くなってしまう。例えば、付与される電圧または電流の強さが不十分である場合は、破壊可能なヒューズ構造は焼き切られなくなる。また、付与される電圧または電流の強さが大きい場合は、繰り返される焼切動作に起因する非常に強いストレスによってＩＣチップが損傷する可能性がある。
【０００９】
上述の３つのメモリの構造を比較すると、それらは書き込み手順に類似点を有することがわかる。具体的には、変更されるべきビットデータの量がどんなに大きくても、変更されたビットデータを保存するために新しい１組のＯＴＰメモリセルが常に設けられる。例えば、１つのビットのみが変更されるべきであっても、新しい１組のＯＴＰメモリセルが設けられなければならない。さらに、上記の３つのメモリの構造では、各メモリセルセットは同数のメモリセルを有し、出力データは１つのメモリセルセットのビットデータしか含まない。
【発明の開示】
【発明の概要】
【００１０】
したがって、本発明の目的は、完成品の補正パラメータを保存するのに必要とされるメモリのビットが最小限に抑えられ、補正パラメータの設定の精度が改善されるように、プログラムの記録回数を減らすことができるプログラマブルメモリおよびそのアクセス方法を提供することである。
【００１１】
本発明のもう１つの目的は、各ビットデータに対する事前判断を用いて、そのビットデータを変更する必要があるかどうかを決定するプログラマブルメモリおよびそのアクセス方法を提供することである。
【００１２】
本発明によれば、プログラマブルメモリは、複数のワンタイムプログラマブル（ＯＴＰ）メモリセルを有するＮ個のＯＴＰメモリ行、出力モジュール、判定モジュール、および、書き込みモジュールを含む。前記出力モジュールは、前記ＯＴＰメモリ行のN組のデータを受信し、Ｎビットの出力データを生成する、ここにおいて、前記出力データの各ビットデータは、前記ビットデータに対応するＯＴＰメモリ行の全てのデータに対して行われる演算により生成される。前記判定モジュールは、前記Nビットの出力データおよびＮビットの入力データを受信し、前記出力データおよび前記入力データに従ってＮビットの書き込み制御データを生成する。前記出力データのＭ番目のビットデータが前記入力データのＭ番目のビットデータと異なる場合に、前記書き込み制御データのＭ番目のビットがイネーブルとされる。前記書き込みモジュールは前記Ｎビットの書き込み制御データを受信し、前記書き込みデータの対応するビットがイネーブルである場合に、ＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに所定のビットデータを保存する。
【００１３】
本発明の設計によって、前記入力データおよび各ビットに対する前記保存データに対して前もった判断が行われて更新動作が必要かどうかが決定されるため、反復プログラマブル動作の許容範囲が増加し、プログラム時間およびプログラミングの失敗の可能性がすべて減少する。
【００１４】
本発明は後に与えられる詳細な説明、および、実例としてのみ与えられる添付図面によってより深く理解されることとなるが、それらは本発明を限定するものではない。
【発明を実施するための最良の形態】
【００１５】
添付の図面を参照して、本発明のプログラマブルメモリおよびそのアクセス方法について説明する。
【００１６】
図４は、本発明のプログラマブルメモリを示すブロック図である。図４を参照すると、プログラマブルメモリ４０は判定モジュール４１、書き込みモジュール４２、ワンタイムプログラマブル（ＯＴＰ）メモリモジュール４３、および、出力モジュール４４を含む。
【００１７】
ＯＴＰメモリモジュール４３はＮ行のＯＴＰメモリセルを含み、各行は複数のＯＴＰメモリセルを有する。出力モジュール４４は、ＯＴＰメモリモジュール４３における全てのＯＴＰメモリセルのＮ組の出力データＹを受信し、演算を行うことによりＮビットのデータＯを生成する。具体的には、ＯＴＰメモリセルの各行は１つのビット出力データを生成するものであってよい。例えば、１つのＯＴＰメモリ行の全てのデータが奇数個の値１を含む場合は、その行の出力ビットデータは値１とされ、一方、１つのＯＴＰメモリ行の全てのデータが偶数個の値１を含む場合は、その行の出力ビットデータは値０とされる。
【００１８】
判定モジュール４１は、Ｎビットの入力データＩおよびＮビットの出力データＯの各ビットデータを受信し、それらを比較してＮビットの書き込み制御データＺを生成する。入力データＩのＭ番目のビットデータが出力データＯのＭ番目のビットデータと異なる場合、これは、異なるビットデータが書き込まれる必要があることを示すため、そのＭ番目のビットに対する書き込み制御データＺがイネーブルとされる（例えば、ロジック「Ｈ」として設定される）。一方、入力データＩのＭ番目のビットデータが出力データＯのＭ番目のビットデータと同一である場合、これは、ビットデータが書き込まれる必要がないことを示すため、そのＭ番目のビットに対する書き込み制御データＺがディセーブルとされる（例えば、ロジック「Ｌ」として設定される）。書き込みモジュール４２はＮ行のＯＴＰメモリセルのＮ組の出力データＹ、および、Ｎビットの書き込み制御データＺを受信し、書き込み制御データＺの少なくとも１つのビットがイネーブルである場合に、書き込みモジュール４２はＯＴＰメモリセルのまだプログラムされていない１個のセルに所定のデータ（ｄａｔｕｍ）（値１など）を保存する。例えば、ＯＴＰメモリセルの出力データＹの値０は、対応するメモリセルがまだプログラムされていないことを示す。
【００１９】
図５は、本発明の第１の実施の形態を示すブロック図である。図５を参照すると、プログラマブルメモリ５０はＮ個の判定ユニット４１１〜４１Ｎ、Ｎ個の書き込みユニット４２１〜４２Ｎ、Ｎ行のＯＴＰメモリセル４３１〜４３Ｎ、および、Ｎ個の演算ユニット４４１〜４４Ｎを含む。図４に示すように、Ｎ個の判定ユニット４１１〜４１Ｎは判定モジュール４１を構成し、Ｎ行のＯＴＰメモリセル４３１〜４３ＮはＯＴＰメモリモジュール４３を構成し、Ｎ個の演算ユニット４４１〜４４Ｎは出力モジュール４４を構成する。
【００２０】
Ｎ個の判定ユニット４１１〜４１ＮはＮビットの入力データＩ１〜ＩＮおよびＮビットの出力データＯ１〜ＯＮをそれぞれ受信し、Ｎビットの書き込み制御データＺ１〜ＺＮを生成する。入力データＩ１が出力データＯ１と同一である場合、書き込み制御データＺ１はディセーブルとされ（すなわち、値０として設定され）、これはビットデータが変更される必要がないことを示す。一方、入力データＩ１が出力データＯ１と異なる場合は、書き込み制御データＺ１はイネーブルとされ（すなわち、値１として設定され）、これはビットデータが変更される必要があることを示す。残りのデータＩ２〜ＩＮも同様にして導き出される。
【００２１】
書き込みユニット４２１〜４２ＮはＮビットの書き込み制御データＺ１〜ＺＮ、および、Ｎ行のＯＴＰメモリセル４３１〜４３ＮのＮ組の出力データＹ１〜ＹＮをそれぞれ受信する。そして、書き込みデータＺ１〜ＺＮの少なくとも１つがイネーブルとされる場合に、まだプログラムされていないＯＴＰメモリセルの１つに所定の値が保存される。例えば、入力データＩ１が出力データＯ１と異なる場合、書き込み制御データＺ１はイネーブルとされる。例を挙げると、出力ビットデータが［１００］である３つのＯＴＰメモリセルをＯＴＰメモリ行４３１が有する場合、書き込みユニット４２１により生成される書き込みビットデータＸ１は［０１０］であり、所定の値がＯＴＰメモリセルＭ１２に保存される。
【００２２】
本実施の形態では、Ｎ個のＯＴＰメモリ行４３１〜４３Ｎのそれぞれはデータを保存するＢ個のＯＴＰメモリセルを有する。
【００２３】
Ｎ個の演算ユニット４４１〜４４ＮはＮ行のＯＴＰメモリセル４３１〜４３ＮのＮ組の出力データＹ１〜ＹＮをそれぞれ受信する。そして、１つの演算ユニットが１つの対応するＯＴＰメモリ行の出力データＹ１〜ＹＮにおける値１の数を算出して出力データＯ１〜ＯＮを生成する。演算ユニットは排他的ＯＲゲート、排他的ＮＯＲゲート、２進加算器、または同様の機能を果たすことができる他のデバイスであってもよい。
【００２４】
図６は、本発明の第２の実施の形態を示すブロック図である。図６を参照すると、プログラマブルメモリ５０と類似のプログラマブルメモリ５０’は、Ｎ個の判定ユニット４１１〜４１Ｎ、Ｎ個の書き込みユニット４２１〜４２Ｎ、Ｎ行のＯＴＰメモリ４３１〜４３Ｎ、および、Ｎ個の演算ユニット４４１〜４４Ｎを含む。主な違いは、プログラマブルメモリ５０’では、ＯＴＰメモリ行４３１’〜４３Ｎ’のそれぞれは異なる数のＯＴＰメモリセルを有し得ることである。例えば、１番目のＯＴＰメモリ行がＢ個のＯＴＰメモリセルを有する場合、２番目のＯＴＰメモリ行はＣ個のＯＴＰメモリセルを有し、Ｃの値はＢの値と同じではない。ＢおよびＣは自然数である。
【００２５】
標準仕様を満たすように完成品の特性を制御するために用いられる典型的な方法には、製造前計画（適切な原料および製造方法を選択すること）、製造における制御、および製造後の修正が含まれる。その修正は、完成品の歩留まりが向上するように、特定の特性パラメータの平均を標準仕様の許容範囲の中心に近づけつつ標準偏差を低下させることを目的としてしてる。統計的法則によれば、大量の完成品の特性はしばしばガウス分布に従って表される。すなわち、大部分の完成品は分布曲線の平均的な位置に分布し、それらはほとんどは標準偏差の３倍の範囲外には分布しない。さらに、ＯＴＰメモリでは、最下位ビット（ＬＳＢ）のデータを変更する可能性は最上位ビット（ＭＳＢ）よりも高い。そのため、最下位ビット（ＬＳＢ）に対する要求を満たして反復プログラマブル動作の許容範囲を効果的に増加させるためにより多くのＯＴＰメモリセルが設けられるべきである。したがって、第２の実施の形態に係るプログラマブルメモリ５０’では、変更される可能性が低いＯＴＰメモリ行のメモリセルの一部は省略されてもよく、また変更される可能性が高いＯＴＰメモリ行に変更して設けられてもよい。それによって、ＯＴＰメモリセルの必要数を減らすことができる。
【００２６】
図７は、本発明に係る判定モジュールおよび書き込みモジュールの他の実施の形態を示すブロック図である。図５および図６では、プログラマブルメモリの判定モジュール４１はＮ個の判定ユニット４１１〜４１Ｎを含む。これと比べて、プログラマブルメモリの判定モジュール４１は判定ユニット７１を１つだけ含み、異なるビットデータを選択するために第１マルチプレクサ７２および第２マルチプレクサ７３を追加的に使用する。第１マルチプレクサ７２はＮビットの入力データＩ１〜ＩＮを受信し、ビット選択信号に従って１つのビットデータを出力する。第２マルチプレクサ７３はＮビットの出力データＯ１〜ＯＮを受信し、このビット選択信号に従って１つのビットデータを出力する。判定ユニット７１は、第１マルチプレクサ７２および第２マルチプレクサ７３の出力データを受信して比較し、書き込み制御データ（ｄａｔｕｍ）を書き込み制御データＺとして生成する。書き込み制御データＺは１ビットのデータであってもよい。
【００２７】
さらに、図５および図６に示すＮ個の書き込みユニット４２１〜４２Ｎとは異なって、図７に示す書き込みモジュール４２は書き込みユニット７４を１つだけ含み、異なるビットデータを選択するためにデマルチプレクサ７５および第３マルチプレクサ７６を追加的に使用する。第３マルチプレクサ７６はＮ組のＯＴＰメモリ行からＮ組の出力データＹ１〜ＹＮを受信し、ビット選択信号に従って１組のデータ（メモリセルデータ）を出力する。書き込みユニット７４は書き込み制御データＺ（書き込み制御データ（ｄａｔｕｍ））を受信し、書き込み制御データＺがイネーブルである場合に、第３マルチプレクサ７６の出力データに従って１組の書き込みデータを生成する。デマルチプレクサ７５は書き込みデータを受信し、ビット選択信号に従って対応するプログラマブルメモリ行に出力する。
【００２８】
図８は、本発明のプログラマブルメモリに係る出力モジュールの他の実施の形態を示すブロック図である。図５および図６に示すＮ個の演算ユニット４４１〜４４Ｎとは異なって、図８に示す出力モジュール４４は１つの演算ユニット８２および１つのレジスタユニット８３を含み、また出力モジュール４４は異なるビットデータを選択するためにマルチプレクサ８１を用いる。マルチプレクサ８１はＮ組のＯＴＰメモリ行からＮ組の出力データＹ１〜ＹＮを受信し、ビット選択信号に従って１組のデータを出力する。演算ユニット８２はマルチプレクサ８１の出力データを受信してビットデータを生成し、レジスタ８３の対応するビットアドレスにそのビットデータを記憶する。この動作は、マルチプレクサ８１の出力データを合計し、最下位ビットの値をビットデータとして選択する、または、マルチプレクサ８１の出力データに排他的論理和演算を行うことにより実現される。あるいは、演算ユニット８２はマルチプレクサ８１の出力データ中の値１の数を計算してもよく、マルチプレクサ８１の出力データが奇数個の値１を含む場合は出力ビットデータは値１とされ、他の場合は、出力ビットデータは値０とされる。出力ビットデータはビット選択信号に従ってレジスタ８３のビットアドレスに記憶され、記憶された全てのビットデータはＮビットの出力データＯ１〜ＯＮとして出力される。演算ユニット８２は排他的ＯＲゲート、排他的ＮＯＲゲート、２進加算器、または同様の機能を果たすことができる他のデバイスであってもよい。
【００２９】
図９は、本発明のプログラマブルメモリに係る判定モジュールおよび書き込みモジュールの他の実施の形態を示すブロック図である。まず、図７に戻って参照すると、判定モジュール４１は判定ユニット７１を含み、また異なるビットデータを選択するために第１マルチプレクサ７２および第２マルチプレクサ７３を用いる。図７に示す第２マルチプレクサ７３および図８に示す出力モジュールのマルチプレクサ８１は同一の機能を有するため、図９に示されるように、図８に示す出力モジュールが利用される場合は、判定モジュール４１’の第２マルチプレクサ７３は省略することができる。したがって、判定モジュール４１’の判定ユニット７１は第１マルチプレクサ７２の出力データ、および、出力モジュールの演算ユニット８２の出力（演算ビットデータ）Ｏ’を直接受信することができる。
【００３０】
図１０は、本発明に係るＯＴＰメモリに対する書き込み手順を示すフローチャートを示しており、ここでＯＴＰメモリはＮ行のＯＴＰメモリセルからなる。
【００３１】
ステップＳ１００２：  開始。
【００３２】
ステップＳ１００４：  Ｎビットの書き込みデータおよびＮビットの出力データを読み出す。
【００３３】
ステップＳ１００６：  Ｎビットの書き込みデータの各ビットデータをＮビットの出力データの各ビットデータと比較する。
【００３４】
ステップＳ１００８：  ビットデータの比較がなされた後、書き込み動作を行う。入力データのビットデータが出力データのビットデータと同一である場合は、ビットデータはそのビットに対応するＯＴＰメモリ行のＯＴＰメモリセルに保存されない。一方、入力データのビットデータが出力データのビットデータと異なる場合は、所定のビットデータ（１など）がそのビットに対応するＯＴＰメモリ行のプログラムされていないＯＴＰメモリセルに保存される。
【００３５】
ステップＳ１０１０：  終了。
【００３６】
図１１は、本発明に係るＯＴＰメモリに対する読み出し手順を示すフローチャートであり、ここでＯＴＰメモリはＮ行のＯＴＰメモリセルからなる。
【００３７】
ステップＳ１１０２：  開始。
【００３８】
ステップＳ１１０４：  Ｎ行のＯＴＰメモリセルのデータを読み出す。
【００３９】
ステップＳ１１０６：  各ＯＴＰメモリ行の全てのデータに論理演算を行い、１つのＯＴＰメモリ行における値１の数を求める。その数が奇数である場合は出力ビットデータは値１とされ、他の場合は、出力ビットデータは値０とされる。
【００４０】
ステップＳ１１０８：  終了。
【００４１】
本発明の設計によって、各ビットに対する入力データおよび保存データに対して前もった判断が行われ、更新した書き込み値が必要かどうかを決定する。書き込み値は値１または値０であるため、再書き込み動作が不要とされる確率は５０％である。したがって、反復プログラマブル動作の許容範囲が増加し、プログラム時間およびプログラミングの失敗の可能性がすべて減少する。従来のメモリの構造に戻って参照すると、それらはすべてメモリセルセットに同数のメモリセルを有し、出力データは１つのメモリセルセットのビットデータしか含んでいないことがわかる。一方、本発明のプログラマブルメモリは、Ｎ行のＯＴＰメモリセルによりＮビットのデータを出力することができ、各行は異なる数のメモリセルを有することができる。さらに、本発明によれば、ビットは書き込みまたは読み出し動作の単位であり、出力ビットデータは各ＯＴＰメモリ行に保存されている全てのデータに対する演算が行われた後に出力される。
【００４２】
さらに、従来のメモリの構造では、ＯＴＰメモリセルセットの数は再書き込みの回数に等しく、ビット数は１つのＯＴＰメモリセルセットの幅で決まる。一方、本発明によれば、ＯＴＰメモリ行の数はプログラマブルメモリに保存されているデータのビット数に等しく、再書き込みの回数は１つのＯＴＰメモリ行のセル数および記録されるべきデータにより決定される。最小記録回数は１つのＯＴＰメモリ行のセル数に等しい。
【００４３】
本発明は、一例として、好ましい実施の形態について述べられてきたが、本発明は開示された実施の形態には限定されないと理解されるべきである。反対に、当業者にとって明らかであろう様々な改良および類似の装置を含むことも意図されている。例えば、図７に示す第２マルチプレクサ７３は省略可能であり、マルチプレクサ８１の出力信号は判定ユニットに直接与えられてもよい。したがって、添付の特許請求の範囲には、このような改良および類似の装置をすべて包含するように最も広い解釈が与えられるべきである。
【図面の簡単な説明】
【００４４】
【図１】米国特許第６７２８１３７号に記載のプログラマブルメモリの構造を示すブロック図である。
【図２】米国公開番号２００５０２３２０３９に記載の他のプログラマブルメモリの構造を示すブロック図である。
【図３】米国公開番号２００５０２５３６２４に記載の他のプログラマブルメモリの構造を示すブロック図である。
【図４】本発明のプログラマブルメモリを示すブロック図である。
【図５】本発明の第１の実施の形態を示すブロック図である。
【図６】本発明の第２の実施の形態を示すブロック図である。
【図７】本発明に係る判定モジュールおよび書き込みモジュールの他の実施の形態を示すブロック図である。
【図８】本発明のプログラマブルメモリに係る出力モジュールの他の実施の形態を示すブロック図である。
【図９】本発明のプログラマブルメモリに係る判定モジュールおよび書き込みモジュールの他の実施の形態を示すブロック図である。
【図１０】本発明に係るＯＴＰメモリに対する書き込み手順を示すフローチャートである。
【図１１】本発明に係るＯＴＰメモリに対する読み出し手順を示すフローチャートである。
【符号の説明】
【００４５】
４０    プログラマブルメモリ
４１    判定モジュール
４２    書き込みモジュール
４４    出力モジュール
７１    判定ユニット
７２    第１マルチプレクサ
７３    第２マルチプレクサ
７４    書き込みユニット
７５    デマルチプレクサ
７６    第３マルチプレクサ
８１    マルチプレクサ
８３    レジスタ
４１１    判定ユニット
４２１    書き込みユニット
４３１    ＯＴＰメモリセル
４４１    演算ユニット
Ｉ    入力データ
Ｏ    （プログラマブルメモリの）出力データ
Ｏ’    演算ビットデータ
Ｙ    （ＯＴＰメモリ行の）出力データ
Ｚ    書き込み制御データ
Ｓ１００４，Ｓ１００６，Ｓ１００８    ステップ
【図１】
2007122852.tif 000003
【図２】
2007122852.tif 000004
【図３】
2007122852.tif 000005
【図４】
2007122852.tif 000006
【図５】
2007122852.tif 000007
【図６】
2007122852.tif 000008
【図７】
2007122852.tif 000009
【図８】
2007122852.tif 000010
【図９】
2007122852.tif 000011
【図１０】
2007122852.tif 000012
【図１１】
2007122852.tif 000013
【外国語明細書】
Title of Invention 
PROGRAMMABLE MEMORY AND ACCESS METHOD FOR THE SAME
Technical Field
The invention relates to a programmable memory and its access method and, more particularly, to a programmable memory and its access method that perform multi-time programmable (MTP) recordings by N rows of one-time programmable (OTP) memory cells.
Background Art
In the manufactures of a wafer, a super-twist nematic LCD (STN-LCD), or a thin-film transistor LCD (TFT-LCD), the finished products may have their respective electrical or optical characteristics. In order to improve the yield of manufacture, a typical method is to measure the actual characteristic parameters that are to be compared with target ones and then corrected by adjust procedures, where the adjust procedures are required to be easily implemented and permanently maintained. For example, the corrected values may be recorded by fuse burnout or by a non-volatile memory. The fuse may be burnt out by lasers or by applying high voltage/large current. Further, the non-volatile memory may be a one-time programmable memory (OTP memory) or a multi-time programmable memory (MTP memory), which are distinguished from each other according to their distinct architectures. Also, according to the difficulty of implement, the adjust procedures may be directly performed on the finished products or on memory cells to be affixed on the finished products.
It is clearly seen that the more flexibility is provided during manufacture if the adjust means, the fuse or the non-volatile memory, can be repeatedly set for several times. Thereby, a new corrected value can be set up once the specification is changed. However, compared with a one-time programmable memory cell such as a fuse, a multi-time programmable memory such as an EPROM, an EEPROM, or a flash memory requires additional circuits or complex fabrication processes to result in a high fabrication cost. Moreover, the yield of the multi-time programmable memory is closely related to semiconductor processes manipulated in a semiconductor factory, and thus the capacity risk is increased.
Hence, if multi-time programmable recordings are achieved by one-time programmable memory cells, the manufacture process is simplified and the fabrication cost is reduced under the circumstance that the flexibility of multi-time settings is maintained.
FIG. 1 shows a block diagram illustrating a programmable memory architecture described in US patent No. 6,728,137. Referring to FIG. 1, multiple sets of one-time programmable memory blocks 15 are used in a programmable memory 10 to achieve multi-time programmable recordings. The programmable memory 10 writes-in and reads out data through row decoders 12 and column decoders 13 controlled by a control circuit 11. However, the programmable memory 10 requires additional record elements 14 to record which programmable memory block has been programmed.
FIG. 2 shows a block diagram illustrating another programmable memory architecture described in U.S. Publication Number 20050232039. Referring to FIG. 2, a multi-time programmable memory 20, similar to the programmable memory 10 shown in FIG. 1, includes multiple sets of adjusting one-time programmable (OTP) memory blocks 22 to achieve multi-time programmable recordings. When new data are stored in one OTP memory block 22, a write device 21 of the programmable memory 20 may simultaneously set an OTP element 24, which is used for selection purpose, corresponding to the OTP memory block 22. That is, the record element 14 shown in FIG. 1 is replaced by the OTP element 24. Further, multiple selection devices 23 of the programmable memory 20 are used to output latest updated data.
FIG. 3 shows a block diagram illustrating another programmable memory architecture described in U.S. Publication Number 20050253624. Referring to FIG. 3, a multi-time programmable memory 30 is similar to the multi-time programmable memory 20 shown in FIG. 2, where multiple sets of adjusting one-time programmable (OTP) memory blocks 22 are used to achieve multi-time programmable recordings. However, the OTP element 24 shown in FIG. 2 is replaced by multiple judge devices 34, as shown in FIG. 3. Hence, additional recordings about OTP element 24 are no longer needed.
Usually, since the destructive fuse structure functioning as the OTP cell is typically burnt out by lasers or by applying high voltage/large current, large areas must be reserved for spreading the fuse structure to avoid influencing surrounding circuits. On the other hand, if a typical charge capacitor type OTP memory is used, its stored data may be lost under adverse circumstances such as high temperature, fierce electromagnetic field or high intensity illumination, and thus the set corrected values are no longer permanently preserved. Under the circumstance, specific treatments on circuit design are needed, such as increase of voltage-regulated capacitors, voltage-limiting/current-limiting for power source, or formation of metallic shield layers used in IC layout. However, such remedies may result in a several times area of each OTP memory bit when compared with each conventional MTP memory bit. Besides, the larger the number of bits to be programmed, the higher the opportunity of the occurrence of programmed failures becomes.  For example, if the intensity of applied voltage/current is insufficient, the destructive fuse structure will not be burnt out. Moreover, if the intensity of applied voltage/current is great, the fierce stress due to repeated burn out operations may cause damages to an IC chip.
When we compare the three memory architecture described above, it is found they have similarities in their write-in procedures. Specifically, no matter how large the amount of the bit data are to be changed, a new set of OTP memory cells is always provided for storing the changed bit data. For example, even only one bit is to be changed, a new set of OTP memory cells must be provided. Further, in the above three memory architectures, each memory cell set has identical number of memory cells, and the output data contain bit data of only one memory cell set.  
Disclosure of Invention
Summary of Invention
Hence, an object of the invention is to provide a programmable memory and its access method capable of reducing the number of programmed recording times, so that the required memory bits for storing correction parameters of finished products is minimized, and that the set accuracy of correction parameters is improved.
Another object of the invention is to provide a programmable memory and its access method that use prejudge on each bit datum to determine whether the bit datum is needed to be changed.
According to the invention, a programmable memory includes N number of one-time programmable (OTP) memory rows having multiple OTP memory cells, an output module, a judge module, and a write-in module. The output module receives N sets of data of the OTP memory rows and generates N-bit output data, wherein each bit datum of the output data is generated by means of a calculation performed on all data of an OTP memory row corresponding to the bit datum. The judge module receives the N-bit output data and N-bit input data and generates N-bit write-in control data according to the output data and the input data. When the Mth bit datum of the output data is different to the Mth bit datum of the input data, the Mth bit of the write-in control data is enabled. The write-in module receives the N-bit write-in control data and stores a preset bit datum in an unprogrammed OTP memory cell of an OTP memory row if the corresponding bit of the write-in data is enabled.
Through the design of the invention, since prejudge is performed on the input data and the stored data for each bit to determine whether an updated operation is needed, the tolerance of repeat programmable operations is increased, and the programming time and the possibility of programming failures are all reduced. 
The present invention will become more fully understood from the detailed description given hereinbelow and the accompanying drawings which are given by way of illustration only, and thus are not limitative of the present invention.
Best Mode for Carrying Out the Invention
The programmable memory and access method for the same of the invention will be described with reference to the accompanying drawings. 
FIG. 4 shows a block diagram illustrating a programmable memory of the invention. Referring to FIG. 4, the programmable memory 40 includes a judge module 41, a write-in module 42, a one-time programmable (OTP) memory module 43, and an output module 44.
The OTP memory module 43 includes N rows of OTP memory cells, with each row having multiple OTP memory cells. The output module 44 receives N-sets output data Y of all OTP memory cells in the OTP memory module 43 and generates N-bits data O by carrying out operations. Specifically, each row of the OTP memory cells may generate one bit output datum. For example, in case all data of one OTP memory row include an odd number of value 1, the output bit datum of that row is value 1; on the contrary, in case all data of one OTP memory row include an even number of value 1, the output bit datum of that row is value 0.
The judge module 41 receives each bit datum of the N-bits input data I and N-bits output data O and then compares them to generate N-bits write-in control data Z.  If the Mth bit datum of input data I is different to that of the output data O, this means a different bit datum is needed to be written-in, and thus the write-in control data Z for that Mth bit is enabled (for example, set as logic “H”). On the contrary, If the Mth bit datum of input data I is the same as that of the output data O, this means the bit datum is not needed to be written-in, and thus the write-in control data Z for that Mth bit are disabled (for example, set as logic “L”). The write-in module 42 receives N-sets output data Y of the N rows of OTP memory cells and the N-bits write-in control data Z, and, when at least one bit of the write-in control data Z is enabled, it also stores a preset datum (such as value 1) in one of the OTP memory cells that has not been programmed yet. For example, the value 0 of the output data Y of the OTP memory cells indicates that the corresponding memory cell has not been programmed yet.
FIG. 5 shows a block diagram illustrating a first embodiment of the invention. Referring to FIG. 5, the programmable memory 50 includes N judge units 411-41N, N write-in units 421-42N, N rows of OTP memory cells 431-43N, and N operation units 441-44N. The N judge units 411-41N constitute the judge module 41, the N rows of OTP memory cells 431-43N constitute the OTP memory module 43, and the N operation units 441-44N constitute the output module 44, as shown in FIG. 4.
The N judge units 411-41N respectively receive N-bits input data I1-IN and N-bits output data O1-ON and generate N-bits write-in control data Z1-ZN. If an input datum I1 is the same as an output datum O1, the write-in control datum Z1 is disabled (or set as value 0), which means the bit datum needs not be changed. On the contrary, if the input datum I1 is different to the output datum O1, the write-in control datum Z1 is enabled (or set as value 1), which means the bit datum needs being changed. The rest datum I2 to datum IN may be deduced by analogy. 
The N write-in units 421-42N respectively receives N-bits write-in control data Z1-ZN and N-sets output data Y1-YN of N rows of OTP memory cells 431-43N. Also, when at least one of the write-in data Z1-ZN is enabled, a preset value is stored in one of the OTP memory cells that have not been programmed yet. For example, when the input datum I1 is different to the output datum O1, the write-in control datum Z1 is enabled. Take for example, if the OTP memory row 431 has three OTP memory cells whose output bit data are [100], the write-in bit data X1 generated by the write-in unit 421 are [010], and the preset value is stored in the OTP memory cell M12. 
In this embodiment, each of the N number of OTP memory rows 431-43N has B number of OTP memory cells for storing data.
The N operation units 441-44N respectively receive N-sets output data Y1-YN of the N rows of OTP memory cells 431-43N. Also, one operation unit calculates the number of value 1 in the output data Y1-YN of one corresponding OTP memory row to generate output data O1-ON. The operation unit may be an exclusive OR gate, an exclusive NOR gate, a binary adder, or other device capable of performing the same function.
FIG. 6 shows a block diagram illustrating a second embodiment of the invention. Referring to FIG. 6, the programmable memory 50’, similar to the programmable memory 50, includes N judge units 411-41N, N write-in units 421-42N, N rows of OTP memory 431-43N, and N operation units 441-44N. The major difference is that, in the programmable memory 50’, each of the OTP memory rows 431’-43N’ can have a different number of OTP memory cells. For example, if a first OTP memory row has B number of OTP memory cells, then a second OTP memory row has C number of OTP memory cells, where the value of C is not equal to that of B. B and C are nature numbers.
Typical methods used to control the characteristics of a finished product to meet a standard specification include plans for pre-fabrication (selection of proper raw materials and fabrication methods), controls in manufacture, and remedies for post-fabrication. The remedies aim to allow averages of specific characteristic parameters to approach the center of allowable ranges of a standard specification and meanwhile lower the standard deviation, so that the yield of finished products is improved. According to statistic principles, the characteristics of massive finished products often represent conforming to Gaussian distribution; that is, most of the finished products are distributed at the average location of the distribution curve, and rarely few of them are distributed at outside of a range with three times standard deviation. Further, in an OTP memory, the probability of changing the datum of a least significant bit (LSB) is higher than that of a most significant bit (MSB). Hence, more OTP memory cells should be provided to satisfy the demand of the least significant bit (LSB) to effectively increase the tolerance of repeat programmable operations. Therefore, in the programmable memory 50’ according to the second embodiment, part of the memory cells in the OTP memory row having lower changing probability may be omitted or may turn to be provided for the OTP memory row having higher altering probability. Thereby, the required number of OTP memory cells can be reduced.
FIG. 7 shows a block diagram illustrating another embodiment of the judge module and the write-in module according to the invention. In FIG. 5 and FIG. 6, the judge module 41 of a programmable memory includes N judge units 411-41N. In comparison, the judge module 41 of a programmable memory contains only one judge unit 71, and it additionally uses a first multiplexer 72 and a second multiplexer 73 to select data of different bits. The first multiplexer 72 receives N-bits input data I1-IN and outputs one bit data according to a bit selection signal. The second multiplexer 73 receives N-bits output data O1-ON and outputs one bit data according to the bit selection signal. The judge unit 71 receives and then compares the output data of the first and the second multiplexers 72 and 73 to generate a write-in control datum as the write-in control data Z, and the write-in control data Z may be 1-bit data.
Besides, unlike N write-in units 421-42N shown in FIG. 5 and FIG. 6, the write-in module 42 shown in FIG. 7 includes only one write-in unit 74, and it additionally uses a demultiplexer 75 and a third multiplexer 76 to select data of different bits. The third multiplexer 76 receives N-sets output data Y1-YN from N sets of OTP memory rows and outputs one set (memory cell data) of them according to the bit selection signal. The write-in unit 74 receives the write-in control data Z (write-in control datum) and generates a set of write-in data according to the output data of the third multiplexer 76 when the write-in control data Z are enabled. The demultiplexer 75 receives the write-in data and outputs them to their corresponding programmable memory rows according to the bit selection signal.
FIG. 8 shows a block diagram illustrating another embodiment of the output module according to the programmable memory of the invention. Unlike N operation units 441-44N shown in FIG. 5 and FIG. 6, the output module 44 shown in FIG. 8 includes only one operation unit 82 and one register unit 83, and it also uses a multiplexer 81 to select data of different bits. The multiplexer 81 receives N-sets output data Y1-YN from N sets of OTP memory rows and outputs one set of them according to the bit selection signal. The operation unit 82 receives the output data of the multiplexer 81 to generate a bit data and stores the bit data in its corresponding bit address of the register 83. This can be done by summing up the output data of the multiplexer 81 and then choosing the lowest bit number as the bit data, or by performing an XOR operation on the output data of the multiplexer 81. Alternatively, the operation unit 82 may calculate the number of value 1 in the output data of the multiplexer 81, and, in case the output data of the multiplexer 81 contain an odd number of value 1, the output bit datum is value 1; otherwise, the output bit datum is value 0. The output bit datum is stored in a bit address of the register 83 according to the bit select signal, and all the stored bit data are output as the N-bit output data O1-ON. The operation unit 82 may be an exclusive OR gate, an exclusive NOR gate, a binary adder, or other device capable of performing the same function.
FIG. 9 shows a block diagram illustrating another embodiment of the judge module and the write-in module according to the programmable memory of the invention. First, referring back to FIG. 7, the judge module 41 includes a judge unit 71, and it also uses a first and a second multiplexers 72 and 73 to select data of different bits. Since the second multiplexer 73 shown in FIG. 7 and the multiplexer 81 of the output module shown in FIG. 8 have identical functions, the second multiplexer 73 for the judge module 41’can be omitted when the output module shown in FIG. 8 is used, as shown in FIG. 9. Thus, the judge unit 71 of the judge module 41’ may directly receive the output data of the first multiplexer 72 and the output (operational bit datum) O’ of the operation unit 82 in the output module.
FIG. 10 shows a flow chart illustrating a write-in procedure for an OTP memory according to the invention, where the OTP memory consists of N rows of OTP memory cells.
Step S1002：Start.
Step S1004 : Read out N-bit write-in data and N-bit output data.
Step S1006 : Compare each bit datum of the N-bit write-in data with each bit datum of the N-bit output data.
Step S1008 : Perform write-in operation after the bit datum comparison is made. When the bit datum of the input data is the same as that of the output data, the bit datum is not stored in an OTP memory cell of an OTP memory row corresponding to that bit. On the contrary, when the bit datum of the input data is different to that of the output data, a preset bit datum (such as 1) is stored in an unprogrammed OTP memory cell of an OTP memory row corresponding to that bit.
Step S1010: End.
FIG. 11 shows a flow chart illustrating a read out procedure for OTP memory according to the invention, where the OTP memory consists of N rows of OTP memory cells.
Step S1102 : Start.
Step S1104 : Read out data of N rows of OTP memory cells.
Step S1106 : Perform logic operations on all data of each OTP memory row to obtain the number of value 1 in one OTP memory row.  If the number is an odd number, the output bit datum is value 1; otherwise, the output bit datum is value 0.
Step S1108 : End.
Through the design of the invention, prejudge is performed on the input data and stored data for each bit to determine whether an updated write-in value is needed. Since the write-in value is either value 1 or value 0, there is a probability of 50 percent that a re-write operation is not needed. Therefore, the tolerance of repeat programmable operations is increased, and the programming time and the possibility of programming failures are all reduced.  Referring back to conventional memory architectures, it is found all of them have the same number of memory cells in a memory cell set, and the output data contain bit data of only one memory cell set. On the contrary, the programmable memory of the invention may output N-bit data by N rows of OTP memory cells, and each row may have a different number of memory cells. Further, according to the invention, the bit is a unit for write-in or read out operations, and the output bit data are output after calculations on all data stored in each OTP memory row have been performed. 
Further, in conventional memory architectures, the number of OTP memory cell sets equals the number of rewrite times, and the bit number is determined by the width of one OTP memory cell set. On the contrary, according to the invention, the number of the OTP memory rows equals the bit number of stored data in the programmable memory, and the number of rewrite times is determined by the cell number of one OTP memory row and data to be recorded. The minimum number of record times equals the cell number of one OTP memory row.
While the invention has been described by way of example and in terms of the preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. To the contrary, it is intended to cover various modifications and similar arrangements as would be apparent to those skilled in the art. For example, the second multiplexer 73 shown in FIG. 7 can be omitted, and then the output signals of the multiplexer 81 may be directly provided for the judge unit. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.
Brief Description of Drawings
FIG. 1 shows a block diagram illustrating a programmable memory architecture described in US patent No. 6728137.
FIG. 2 shows a block diagram illustrating another programmable memory architecture described in U.S. Publication Number 20050232039.
FIG. 3 shows a block diagram illustrating another programmable memory architecture described in U.S. Publication Number 20050253624.
FIG. 4 shows a block diagram illustrating a programmable memory of the invention.
FIG. 5 shows a block diagram illustrating a first embodiment of the invention.
FIG. 6 shows a block diagram illustrating a second embodiment of the invention.
FIG. 7 shows a block diagram illustrating another embodiment of the judge module and the write-in module according to the invention. 
FIG. 8 shows a block diagram illustrating another embodiment of the output module according to the programmable memory of the invention.
FIG. 9 shows a block diagram illustrating another embodiment of the judge module and the write-in module according to the programmable memory of the invention.
FIG. 10 shows a flow chart illustrating a write-in procedure for an OTP memory according to the invention.
FIG. 11 shows a flow chart illustrating a read out procedure for OTP memory according to the invention.
Description of Notations
40  programmable memory
41  judge module
42  write-in module
44  output module
71  judge unit
72  first multiplexer
73  second multiplexer
74  write-in unit
75  demultiplexer
76  third multiplexer
81  multiplexer
83  register
411  judge unit
421  write-in unit
431  OTP memory cell
441  operation unit
I  input data
O  output data (of programmable memory)
O’  operational bit datum
Y  output data (of OTP memory row)
Z  write-in control data
S1004, S1006, S1008  Step
1. A programmable memory, comprising:
N number of one-time programmable (OTP) memory rows, each OTP memory row having multiple OTP memory cells, wherein N is a positive integer;
an output module for receiving all data of the N number of OTP memory rows to generate N-bit output data, wherein each bit datum of the output data is generated by means of a calculation performed on all data of each OTP memory row corresponding to the bit datum;
a judge module for receiving the output data and N-bit input data and generating N-bit write-in control data according to the output data and the input data, wherein, when the Mth bit datum of the output data is different to the Mth bit datum of the input data, the Mth bit datum of the write-in control data is enabled, and otherwise the Mth bit datum of the write-in control data is disabled, where M is a positive integer from 1 to N; and
a write-in module for receiving the write-in control data and recording a preset bit datum in an unprogrammed OTP memory cell of the corresponding Mth OTP memory row when the Mth bit datum of the write-in control data is enabled.
2. The programmable memory according to claim 1, wherein the output module has N number of operation units, and each operation unit receives all output data of its corresponding OTP memory row and generates one bit datum of the output data of the programmable memory.
3. The programmable memory according to claim 1, wherein the output module comprises:
a first multiplexer for receiving N sets of the data of the N number of OTP memory rows and selecting one set of the output data as operation data according to a bit selection signal;
an operation unit for receiving the operation data output from the first multiplexer and generating an operational bit datum; and
a N-bit register for storing the operational bit datum according to the bit selection signal and outputting the stored data as the N-bit output data.
4. The programmable memory according to claim 3, wherein the judge module comprises:
a second multiplexer for receiving the input data and selecting one bit datum of the input data as an input bit datum according to the bit selection signal; and 
a judge unit for receiving the input bit datum output from the second multiplexer and the operational bit datum for output a write-in control signal as the write-in control data, wherein the write-in control signal is enabled when the input bit datum is different to the operational bit datum.
5. The programmable memory according to claim 4, wherein the write-in module comprises: 
a third multiplexer for receiving the N sets of the data of the N number of OTP memory rows and selecting one set of the data as memory cell data according to the bit selection signal;
a write-in unit for receiving the write-in control data and the memory cell data output from the third multiplexer and generating a write-in signal when the write-in control data is enabled; and
a demultiplexer for receiving the write-in signal output from the write-in unit and storing the write-in signal in an unprogrammed OTP memory cell of one OTP memory row corresponding to the write-in signal according to the bit selection signal.
6. The programmable memory according to claim 2, wherein the judge module comprises N number of judge units for receiving the N-bit input data and the N-bit output data to generate the N-bit write-in control data, wherein the Mth bit datum of the write-in control data is enabled when the Mth bit datum of the input data is different to the Mth bit datum of the output data.
7. The programmable memory according to claim 6, wherein the write-in module has N number of write-in units for receiving the N-bit write-in control data and the N sets data of N number of OTP memory rows and storing the preset datum in an unprogrammed OTP memory cell of the corresponding OTP memory row when the bit datum corresponding to the write-in control data is enabled.
8. The programmable memory according to claim 2, wherein the judge module comprises:
a first multiplexer for receiving N-bit input data and selecting one bit datum of the input data as an input bit datum according to a bit selection signal;
a second multiplexer for receiving the N-bit output data and selecting one bit datum of the output data as an output bit datum; and
a judge unit for receiving the input bit datum output from the first multiplexer and the output bit datum output from the second multiplexer and outputting a write-in control signal as the write-in control data, wherein the write-in control signal being enabled when the input bit datum is different to the output bit datum.
9. The programmable memory according to claim 8, wherein the write-in module comprises: 
a third multiplexer for receiving the N sets of data of the N number of OTP memory rows and selecting one set data as memory cell data according to the bit selection signal;
a write-in unit for receiving the write-in control data and the memory cell data output from the third multiplexer and generating a write-in signal when the write-in control data is enabled; and
a demultiplexer for receiving the write-in signal of the write-in unit and storing the write-in signal in an unprogrammed OTP memory cell of one OTP memory row corresponding to the write-in signal according to the bit selection signal.
10. A memory module of a programmable memory, the programmable memory having a plurality of one-time programmable (OTP) memory rows, each OTP memory row comprising: 
multiple OTP memory cells;
an operation unit for receiving output signals of all the OTP memory cells and generating an output bit datum;
a judge unit for receiving an input bit datum and the output bit datum and generating a write-in control signal, wherein the write-in control signal is enabled when the input bit datum is different to the output bit datum; and 
a write-in unit for storing data in an unprogrammed OTP memory cell when the write-in control signal is enabled.
11. The memory module according to claim 10, wherein the programmable memory has N number of one-time programmable (OTP) memory rows and records N-bit data.
12. A write-in method used for storing N-bit input data in a programmable memory having N rows of one-time programmable (OTP) memory cells, the method comprising the steps of:
reading out the N-bit input data and N-bit output data of the programmable memory;
comparing each bit datum of the N-bit input data with each corresponding bit datum of the N-bit output data; and
performing write-in operations for storing a preset value in an unprogrammed OTP memory cell of a OTP memory row when the corresponding bit datum of the input data is different to that of the output data.
Problem to be solved 
Reducing the number of programmed recording times in a programmable memory
Solution 
A programmable memory 40 includes N number of one-time programmable (OTP) memory rows 431, an output module 44, a judge module 41, and a write-in module 42. The output module 44 receives all data of the OTP memory rows 431 and generates output data O. The judge module 41 receives the output data O and input data I and generates write-in control data Z according to the output data O and the input data I. When a bit datum of the output data O is different to a bit datum of the input data I, the bit of the write-in control data Z is enabled. The write-in module 42 receives the write-in control data Z and stores a preset bit datum in an unprogrammed OTP memory cell of an OTP memory row 431 corresponding to the enabled bit.
Selected figure: FIG. 4
2007122852.tif 000014
2007122852.tif 000015
2007122852.tif 000016
2007122852.tif 000017
2007122852.tif 000018
2007122852.tif 000019
2007122852.tif 000020
2007122852.tif 000021
2007122852.tif 000022
2007122852.tif 000023
2007122852.tif 000024