(57)【要約】ワンタイムプログラマブル（ＯＴＰ）メモリのプログラミングを制御するためのシステムおよび方法が、開示される。本システムおよび方法は、ｎ＋１ビットのラインに編成されるアレイを備えるＯＴＰメモリアレイであって、ｎは、ＯＴＰメモリのワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ＯＴＰメモリアレイと、ワードが反転されて、または反転されずに記憶されるべきかどうかを判定するように構成される、エンコーディング論理と、記憶されたワードをデコードするように構成され、ワードが反転されて、または反転されずに記憶されているかどうかを示す付加的ビットによって制御される、デコーディング論理とを含む。
2018512689.tif 000002
【特許請求の範囲】
【請求項１】
ワンタイムプログラマブル（ＯＴＰ）メモリをプログラムするための回路配列であって、
ｎ＋１ビットのラインに編成されたアレイを備えるＯＴＰメモリアレイであって、ｎは、前記ＯＴＰメモリのワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ＯＴＰメモリアレイと、
ワードが反転されて、または反転されずに記憶されるべきかどうかを判定するように構成されている、エンコーディング論理と、
記憶されたワードをデコードするように構成され、ワードが反転されて、または反転されずに記憶されているかどうかを示す前記付加的ビットによって制御されている、デコーディング論理と
を備える、回路配列。
【請求項２】
前記エンコーディング論理は、「１」の値を有するビットの数が、ｎ／２を上回る場合、ワードを反転させて記憶し、前記付加的ビットをそのワード内に設定し、そうではない場合、前記エンコーディング論理は、前記付加的ビットを設定せずに、ワードを反転させずに記憶する、請求項１に記載の回路配列。
【請求項３】
前記エンコーディング論理は、前記ＯＴＰメモリ内に記憶されるべきワードを反転するためのインバータと、前記ワードおよび前記反転ワードを受信するマルチプレクサと、前記ワード内の論理「１」の数をカウントするように構成されたカウンタであって、前記カウンタは、前記マルチプレクサを制御し、前記ＯＴＰメモリ内への記憶のために、前記ワード内の論理「１」の数がｎ／２を上回る場合、前記反転ワードを選択し、そうでなければ、前記ワードを選択するように動作可能である、カウンタとを備える、請求項２に記載の回路配列。
【請求項４】
前記デコーディング論理は、記憶されたｎビットワードを反転するように構成されたインバータと、前記記憶されたワードおよび前記反転ワードを受信するマルチプレクサとを備え、前記マルチプレクサは、前記付加的ビットによって制御される、請求項１−３のうちの１項に記載の回路配列。
【請求項５】
ｎ＝３２である、請求項１−４のうちの１項に記載の回路配列。
【請求項６】
前記ＯＴＰメモリは、アドレスと、ワードを読み取り、書き込むための制御入力とを備える、請求項１−５のうちの１項に記載の回路配列。
【請求項７】
前記エンコーディング論理は、「１」の値を有するビットの数が、ｎ／２を上回る、またはそれと等しい場合、ワードを反転させて記憶し、前記付加的ビットをそのワード内に設定し、そうではない場合、前記エンコーディング論理は、前記付加的ビットを設定せずに、ワードを反転させずに記憶する、請求項１−６のうちの１項に記載の回路配列。
【請求項８】
前記エンコーディング論理は、「１」の値を有するビットの数が、反転閾値を上回る場合、ワードを反転させて記憶し、前記付加的ビットをそのワード内に設定し、そうではない場合、前記エンコーディング論理は、前記付加的ビットを設定せずに、ワードを反転させずに記憶する、請求項１−７のうちの１項に記載の回路配列。
【請求項９】
ワンタイムプログラマブル（ＯＴＰ）メモリをプログラムするための方法であって、前記方法は、
データワードを、ｎ＋１ビットのラインに編成されたアレイを備えるＯＴＰメモリアレイ内に記憶することであって、ｎは、前記ＯＴＰメモリのデータワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ことと、
ワードが反転されて、または反転されずに記憶されるべきかどうかを判定することと、
記憶されたワードをデコードすることであって、ワードが反転されて、または反転されずに記憶されているかどうかを示す、前記付加的ビットによって制御される、ことと
を含む、方法。
【請求項１０】
前記データワードを反転させて記憶することは、「１」の値を有するビットの数が、ｎ／２を上回る場合、前記データワードを反転させて記憶し、前記付加的ビットをそのワード内に設定することを含み、そうではない場合、前記エンコーディング論理は、前記付加的ビットを設定せずに、ワードを反転させずに記憶する、請求項９に記載の方法。
【請求項１１】
前記データワードを記憶することは、エンコーディング論理を介して前記データワードを記憶することを含み、前記エンコーディング論理は、前記ＯＴＰメモリ内に記憶されるべきワードを反転するためのインバータと、前記ワードおよび前記反転ワードを受信するマルチプレクサと、前記ワード内の論理「１」の数をカウントするように構成されたカウンタであって、前記カウンタは、前記マルチプレクサを制御し、前記ＯＴＰメモリ内への記憶のために、前記ワード内の論理「１」の数がｎ／２を上回る場合、前記反転ワードを選択し、そうでなければ、前記ワードを選択するように動作可能である、カウンタとを備える、請求項１０に記載の方法。
【請求項１２】
前記記憶されたワードをデコードすることは、デコーディング論理を介して前記記憶されたワードをデコードすることを含み、前記デコーディング論理は、記憶されたｎビットワードを反転するように構成されたインバータと、前記記憶されたワードおよび前記反転ワードを受信するマルチプレクサとを備え、前記マルチプレクサは、前記付加的ビットによって制御される、請求項９−１１のうちの１項に記載の方法。
【請求項１３】
ｎ＝３２である、請求項９−１２のうちの１項に記載の方法。
【請求項１４】
前記ＯＴＰメモリは、アドレスと、ワードを読み取り、書き込むための制御入力とを備える、請求項９−１３のうちの１項に記載の方法。
【請求項１５】
プロセッサによって非一過性コンピュータ可読媒体上に記憶されるプログラム命令を実行するためのコンピュータ実装方法であって、前記命令は、前記プロセッサによって実行されると、
データワードを、ｎ＋１ビットのラインに編成されたアレイを備えるＯＴＰメモリアレイ内に記憶するステップであって、ｎは、前記ＯＴＰメモリのデータワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ステップと、
ワードが反転されて、または反転されずに記憶されるべきかどうかを判定するステップと、
記憶されたワードをデコードするステップであって、ワードが反転されて、または反転されずに記憶されているかどうかを示す、前記付加的ビットによって制御される、ステップと
を含むステップを行う、コンピュータ実装方法。
【請求項１６】
前記データワードを反転させて記憶することは、「１」の値を有するビットの数が、ｎ／２を上回る場合、前記データワードを反転させて記憶し、前記付加的ビットをそのワード内に設定することを含み、そうではない場合、前記エンコーディング論理は、前記付加的ビットを設定せずに、ワードを反転させずに記憶する、請求項１５に記載のコンピュータ実装方法。
【請求項１７】
前記データワードを記憶することは、エンコーディング論理を介して前記データワードを記憶することを含み、前記エンコーディング論理は、前記ＯＴＰメモリ内に記憶されるべきワードを反転するためのインバータと、前記ワードおよび前記反転ワードを受信するマルチプレクサと、前記ワード内の論理「１」の数をカウントするように構成されたカウンタであって、前記カウンタは、前記マルチプレクサを制御し、前記ＯＴＰメモリ内への記憶のために、前記ワード内の論理「１」の数がｎ／２を上回る場合、前記反転ワードを選択し、そうでなければ、前記ワードを選択するように動作可能である、カウンタとを備える、請求項１６に記載のコンピュータ実装方法。
【請求項１８】
前記記憶されたワードをデコードすることは、デコーディング論理を介して前記記憶されたワードをデコードすることを含み、前記デコーディング論理は、記憶されたｎビットワードを反転するように構成されたインバータと、前記記憶されたワードおよび前記反転ワードを受信するマルチプレクサとを備え、前記マルチプレクサは、前記付加的ビットによって制御される、請求項１５−１７のうちの１項に記載のコンピュータ実装方法。
【請求項１９】
ｎ＝３２である、請求項１５−１８のうちの１項に記載のコンピュータ実装方法。
【請求項２０】
前記ＯＴＰメモリは、アドレスと、ワードを読み取り、書き込むための制御入力とを備える、請求項１５−１９のうちの１項に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、同一出願人の、２０１５年３月２０日に出願された米国仮特許出願第６２／１３６，０６１号に対して優先権を主張する。上記文献は、全ての目的に対してここで参照することによって本明細書において援用される。
【０００２】
（技術分野）
本開示は、ワンタイムプログラマブルメモリに関し、特に、そのようなメモリのプログラミングの最小限化のための方法およびシステムに関する。
【背景技術】
【０００３】
（背景）
フラッシュ技術と比較して、ワンタイムプログラマブル（ＯＴＰ）メモリのプログラミング時間は、一桁程度もより長くなり得る。加えて、プログラミング時間は、特定のプログラムされた状態（典型的には、「１」）にプログラムされるべきビットの数に依存する。多くのＯＴＰ実装では、反対の消去された状態（典型的には、「０」）へのプログラミングは、ＯＴＰメモリ内の全ビットが、組立を完了したとき、その消去された状態にあるため、行われる必要はない。しかしながら、ＯＴＰコンテンツ内のバイアス（「０」対「ｌ」の数）を予測することができないという事実に起因して、依然として、全ビットがプログラムされると仮定する、最大プログラミング時間値に悩まされる。
【発明の概要】
【課題を解決するための手段】
【０００４】
種々の実施形態によると、ＯＴＰプログラミング時間は、反転および非反転プログラミングワード間でアルゴリズム的に選択することによって最小限化されることができる。
【０００５】
種々の実施形態によると、ワンタイムプログラマブル（ＯＴＰ）メモリのプログラミングを制御するためのシステムおよび方法が、開示される。本システムおよび方法は、ｎ＋１ビットのラインに編成されるアレイを備えるＯＴＰメモリアレイであって、ｎは、ＯＴＰメモリのワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ＯＴＰメモリアレイと、ワードが反転されて、または反転されずに記憶されるべきかどうかを判定するように構成される、エンコーディング論理と、記憶されたワードをデコードするように構成され、ワードが反転されて、または反転されずに記憶されているかどうかを示す付加的ビットによって制御される、デコーディング論理とを含む。
【０００６】
いくつかの実施形態では、本システムおよび方法は、ワンタイムプログラマブル（ＯＴＰ）メモリをプログラムするための回路配列を含む。回路配列は、ｎ＋１ビットのラインに編成されるアレイを備えるＯＴＰメモリアレイであって、ｎは、ＯＴＰメモリのワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ＯＴＰメモリアレイと、ワードが反転されて、または反転されずに記憶されるべきかどうかを判定するように構成される、エンコーディング論理と、記憶されたワードをデコードするように構成され、ワードが反転されて、または反転されずに記憶されているかどうかを示す付加的ビットによって制御される、デコーディング論理とを含んでもよい。いくつかの実施形態では、「ｎ」は、３２に等しくてもよい。いくつかの実施形態では、ＯＴＰメモリは、アドレスと、ワードを読み取り、書き込むための制御入力とを含んでもよい。
【０００７】
いくつかの実施形態では、エンコーディング論理はまた、「１」の値を有するビットの数が、ｎ／２を上回る場合、ワードを反転させて記憶し、付加的ビットをそのワード内に設定し、そうではない場合、エンコーディング論理は、付加的ビットを設定せずに、ワードを反転させずに記憶してもよい。そのような実施形態では、エンコーディング論理は、ＯＴＰメモリ内に記憶されるべきワードを反転するためのインバータと、ワードおよび反転ワードを受信するマルチプレクサと、ワード内の論理「１」の数をカウントするように構成されたカウンタであって、カウンタは、マルチプレクサを制御し、ＯＴＰメモリ内への記憶のために、ワード内の論理「１」の数がｎ／２を上回る場合、反転ワードを選択し、そうでなければ、ワードを選択するように動作可能である、カウンタとを含んでもよい。
【０００８】
いくつかの実施形態では、デコーディング論理は、記憶されたｎビットワードを反転するように構成されるインバータと、記憶されたワードおよび反転ワードを受信するマルチプレクサとを含んでもよく、マルチプレクサは、付加的ビットによって制御される。
【０００９】
いくつかの実施形態では、エンコーディング論理は、「１」の値を有するビットの数が、ｎ／２を上回る、またはそれと等しい場合、ワードを反転させて記憶し、付加的ビットをそのワード内に設定し、そうではない場合、エンコーディング論理は、付加的ビットを設定せずに、ワードを反転させずに記憶してもよい。
【００１０】
代替実施形態では、エンコーディング論理は、「１」の値を有するビットの数が、反転閾値を上回る場合、ワードを反転させて記憶し、付加的ビットをそのワード内に設定し、そうではない場合、エンコーディング論理は、付加的ビットを設定せずに、ワードを反転させずに記憶してもよい。
【００１１】
いくつかの実施形態では、本システムおよび方法は、ワンタイムプログラマブル（ＯＴＰ）メモリをプログラムするための方法を含んでもよい。本方法は、データワードを、ｎ＋１ビットのラインに編成されるアレイを備えるＯＴＰメモリアレイ内に記憶することであって、ｎは、ＯＴＰメモリのデータワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ことと、ワードが反転されて、または反転されずに記憶されるべきかどうかを判定することと、記憶されたワードをデコードすることであって、ワードが反転されて、または反転されずに記憶されているかどうかを示す、付加的ビットによって制御される、こととを含んでもよい。
【００１２】
いくつかの実施形態では、データワードを反転させて記憶することは、「１」の値を有するビットの数が、ｎ／２を上回る場合、データワードを反転させて記憶し、付加的ビットをそのワード内に設定することを含んでよく、そうではない場合、エンコーディング論理は、付加的ビットを設定せずに、ワードを反転させずに記憶する。
【００１３】
そのような実施形態では、データワードを記憶することは、エンコーディング論理を介してデータワードを記憶することを含んでもよく、エンコーディング論理は、ＯＴＰメモリ内に記憶されるべきワードを反転するためのインバータと、ワードおよび反転ワードを受信するマルチプレクサと、ワード内の論理「１」の数をカウントするように構成されたカウンタであって、カウンタは、マルチプレクサを制御し、ＯＴＰメモリ内への記憶のために、ワード内の論理「１」の数がｎ／２を上回る場合、反転ワードを選択し、そうでなければ、ワードを選択するように動作可能である、カウンタとを備える。
【００１４】
いくつかの実施形態では、記憶されたワードをデコードすることは、デコーディング論理を介して記憶されたワードをデコードすることを含んでもよく、デコーディング論理は、記憶されたｎビットワードを反転するように構成されるインバータと、記憶されたワードおよび反転ワードを受信するマルチプレクサとを備え、マルチプレクサは、付加的ビットによって制御される。
【００１５】
いくつかの実施形態では、本システムおよび方法は、プロセッサによって非一過性コンピュータ可読媒体上に記憶されるプログラム命令を実行するためのコンピュータ実装方法を含んでもよく、命令は、プロセッサによって実行されると、データワードを、ｎ＋１ビットのラインに編成されるアレイを備えるＯＴＰメモリアレイ内に記憶するステップであって、ｎは、ＯＴＰメモリのデータワードサイズを指定する整数であり、付加的ビットは、メモリラインが反転または非反転方式で記憶されるかどうかを示す、ステップと、ワードが反転されて、または反転されずに記憶されるべきかどうかを判定するステップと、記憶されたワードをデコードするステップであって、ワードが反転されて、または反転されずに記憶されているかどうかを示す、付加的ビットによって制御される、ステップとを含むステップを行う。
【図面の簡単な説明】
【００１６】
【図１】図１は、本開示のある実施形態による、オリジナルプログラムデータを生成するために、読取データを反転するかどうかを判定するための例示的プログラミングスキームを図示する。
【図２】図２は、本開示のある実施形態による、ワンタイムプログラマブルメモリをプログラムするためのスキームをプログラムするためのプログラミング値の例示的テーブルを図示する。
【発明を実施するための形態】
【００１７】
（詳細な説明）
種々の実施形態によると、ＯＴＰプログラミング時間は、反転および非反転プログラミングワード間でアルゴリズム的に選択することによって最小限化されることができる。最大値をアレイ全体のためのプログラミング時間に課すために、「１」にプログラムされるビットの数の限界、したがって、総プログラミング時間の限界を導入することが可能性として考えられる。これは、ｎビットワード（ｎビットは、ＯＴＰアレイの読取／書込幅を表す）毎に１つの余剰ＯＴＰビットを追加することを犠牲として行われる。例えば、３２ビット幅ＯＴＰアレイは、３３ビット幅となるように更新されるであろう。
【００１８】
これを行うために、ＯＴＰアレイ内のワード毎の余剰ビットは、対応するワードが所望の値の反転または非反転表現であるかどうかを判定するために使用される。本ワードが書き込まれると、ＯＴＰコントローラ（またはこの場合、ＯＴＰコントローラ外の論理）は、書き込まれるべきデータ内の「１」の数をカウントする。ｎ／２を上回る場合（すなわち、３２ビット幅ＯＴＰアレイに関しては１６ビット）、データは、アレイの中に書き込まれる前に反転され、（ｎ＋１）ビット（以降、「ＩＮＶ」ビットと呼ばれる）は、「１」として書き込まれる。「１」の数がｎ／２未満である場合、ＩＮＶビットは、プログラムされない（すなわち、「０」として書き込まれる）。
【００１９】
任意のワードが、アレイから書き込まれるとき、ＩＮＶビットは、ワードの一部として読み取られ、アレイの中にプログラムされるべきであったオリジナルデータを生成するために、読取データを反転する、または反転しないかどうかを判定するために使用される。
【００２０】
したがって、種々の実施形態は、実装するために、ビット幅プログラミングおよび特殊サイズＯＴＰメモリ構成を利用する。
【００２１】
例えば、Ｎｏｖｏｃｅｌｌ  ＯＴＰアレイに関して、３２ビットワードのための総プログラミング時間は、「１」にプログラムされるビットの数に依存し、各ビットのプログラミングがアレイ内で自己タイミングされるため、典型的数である。加えて、ＯＴＰアレイは、組立が終わると「０」のプログラムされていない状態を有するように製造されるため、「１」ビットをプログラムする必要のみあり、「０」ビットのプログラミングは、必要なく、そのような動作は、ＯＴＰアレイ内で事実上スキップされる。これは、アレイのための総プログラミング時間が規定された「バイアス」（すなわち、「１」にプログラムされるアレイ内のビットの数および「０」にプログラムされるビットの数）を与えられなければならないという状況につながる。
【００２２】
最大値をアレイ全体のためのプログラミング時間を課すために、「１」にプログラムされるビットの数の限界、したがって、総プログラミング時間の限界を導入することが可能性として考えられる。種々の実施形態によると、これは、ｎビットワード（ｎビットは、ＯＴＰアレイの読取／書込幅を表す）毎に１つの余剰ＯＴＰビットを追加することを犠牲として行われることができる。例えば、３２ビット幅ＯＴＰアレイは、３３ビット幅となるように更新されるであろう。
【００２３】
これを行うために、ＯＴＰアレイ内のワード毎の余剰ビットは、対応するワードが所望の値の反転または非反転表現であるかどうかを判定するために使用される。本ワードが書き込まれると、ＯＴＰコントローラ（またはこの場合、ＯＴＰコントローラ外の論理）は、書き込まれるべきデータ内の「１」の数をカウントする。ｎ／２を上回る場合（すなわち、３２ビット幅ＯＴＰアレイに関しては１６ビット）、データは、アレイの中に書き込まれる前に反転され、（ｎ＋１）ビット（以降、「ＩＮＶ」ビットと呼ばれる）は、「１」として書き込まれる。「１」の数がｎ／２未満である場合、ＩＮＶビットは、プログラムされない（すなわち、「０」として書き込まれる）。
【００２４】
また、ＩＮＶビットのために反対極性を使用することも可能性として考えられるが（すなわち、ＩＮＶ＝１は、対応するワードが反転されないことを示す）、任意のｎビットバイナリワードのためのいくつかの構成では、本スキーム下で反転される必要があるワードの数は、５０％未満である。１のカウントが、ｎ／２未満関数（前述のように、ｎ／２を上回るとは対照的に）を使用して比較される場合、反対極性（すなわち、プログラミングワードが反転されることを示すためのＩＮＶ＝０）は、最少数の全体的プログラムされるビットをもたらすであろう。
【００２５】
図１は、本開示のある実施形態による、オリジナルプログラムデータを生成するために、読取データを反転するかどうかを判定するための例示的プログラミングスキーム１００を図示する。任意のワードが、アレイから書き込まれるとき、ＩＮＶビットは、ワードの一部として読み取られ、アレイの中にプログラムされるべきであったオリジナルデータを生成するために、読取データを反転する、または反転しないかどうかを判定するために使用される。
【００２６】
スキーム１００のいくつかの実施形態では、数が、ｎ／２を上回る、それと等しい、またはそれ未満かどうかを判定することのみ必要であるため、「１」の数を判定するために、ｎビットワード全体をカウントする必要がなくなり得る。これを行うために、論理的にビットの対の論理和をとり、次いで、そのカウントがｎ／４を上回るかどうかを判定することがより容易となるであろう。
【００２７】
３２ビットＯＴＰアレイに関する実施例として、システムは、ビット３２および３１、ビット３０および２９、．．．、ビット１および０の論理和をとり、次いで、結果として生じる１６ビットバイナリ数内の「１」の数をカウントし、８を上回るかどうかを判定し得る。８を上回る場合、３２ビットワードを反転し、ＩＮＶを「１」にプログラムするであろう。そうでなければ、ワードを反転せず、ＩＮＶをプログラムされないまま残すであろう。
【００２８】
いくつかの実施形態では、スキーム１００は、ＯＴＰアレイ１０４に通信可能に結合されるＯＴＰコントローラ１０２を含んでもよい。ＯＴＰコントローラ１０２は、マイクロチップＰＩＣシリーズ内で見出されるもの等の任意の適切なＯＴＰコントローラであってもよい。ＯＴＰアレイ１０４は、マイクロチップＰＩＣシリーズ内で見出されるもの等の任意の適切なＯＴＰアレイであってもよい。
【００２９】
いくつかの実施形態では、ＯＴＰコントローラ１０２は、１つまたはそれを上回る制御信号を通してＯＴＰアレイ１０４に通信可能に結合されてもよい。制御信号の数およびタイプは、スキーム１００の特定の構成に従って変動してもよい。例えば、ＯＴＰコントローラ１０２は、端末リセット（例えば、「ＲＳＴＮ」）信号、コマンドイネーブル（例えば、「ＣＥＮ」）信号、二次イネーブル（例えば、「ＷＥＮ」）信号、および／または複数のアドレス信号（例えば、「Ａ［ｍ：０］」）を通してＯＴＰアレイ１０４に通信可能に結合されてもよい。ＯＴＰコントローラ１０２はまた、１つまたはそれを上回るデータ信号（例えば、３２ビットデータバスを例証するであろう、「Ｄ［３１：０］」）ならびに１つまたはそれを上回る二次もしくは帰還データ信号（例えば、３２ビットデータバスを例証するであろう、「Ｑ［３１：０］」）を通してＯＴＰアレイ１０４に通信可能に結合されてもよい。
【００３０】
いくつかの実施形態では、ＯＴＰコントローラ１０２とＯＴＰアレイ１０４との間の通信可能結合は、データ転送の一部として複数の付加的構成要素を含んでもよい。例えば、スキーム１００はまた、インバータ１０６と、１カウンタ１０８と、マルチプレクサ１１０と、インバータ１１２と、マルチプレクサ１１４とを含んでもよい。いくつかの実施形態では、ＯＴＰコントローラ１０２が複数のデータ信号を通して送信するデータは、その同一データの反転を用いて多重化されてもよい（マルチプレクサ１１０を介して）。そのデータは、インバータ１０６によって判定されるであろう。マルチプレクサ１０８において多重化すべき信号の選択は、１カウンタ１０８によって提供されてもよい。１カウンタ１０８は、ＯＴＰコントローラ１０２によってＯＴＰアレイ１０４に書き込まれるワードサイズで記憶される「１」の数のカウントを提供するように動作可能な任意の適切な回路であってもよい。１カウンタ１０８は、本数を計算し、それを使用して、オリジナルデータまたは反転データがＯＴＰアレイ１０４に書き込まれるべきかどうかを判定するように動作可能であってもよい。加えて、１カウンタ１０８は、ＯＴＰアレイ１０４における各記憶されたワード内に余剰ビットとして書き込まれるべき最後の論理「１」を出力してもよい。
【００３１】
いくつかの実施形態では、スキーム１００はまた、インバータ１１４と、マルチプレクサ１１２とを含んでもよい。いくつかの実施形態では、ＯＴＰアレイ１０４が複数の帰還データ信号を通して送信するデータ（例えば、読取のため）は、インバータ１１４によって提供されるように、その同一データの反転を用いて多重化されてもよい（マルチプレクサ１１２を介して）。加えて、マルチプレクサ１１２は、ＯＴＰアレイ１０４からの信号によって切り替えられてもよく、その信号は、ＯＴＰアレイ１０４内に記憶される各ワードの最後に付加される最後の余剰ビットであってもよい。
【００３２】
図２は、本開示のある実施形態による、ワンタイムプログラマブルメモリをプログラムするためのスキーム１００をプログラムするためのプログラミング値２００の例示的テーブルを図示する。プログラミング値２００のテーブルは、本開示を理解する補助として提供され、本開示を限定するものとして理解されるべきではない。
【００３３】
いくつかの実施形態では、テーブル２００は、データ列２０２と、ゼロバイアス列２０４と、反転インジケーション列２０６と、プログラム値列２０８とを含んでもよい。データ列２０２は、スキーム１００に従ってプログラムされるべきデータ値のための各潜在的データを含む。実施例では、データ範囲列２０２は、例証を容易にするために、４ビット範囲のみを示す。より多い、より少ない、および／または異なる値が、本開示の範囲から逸脱することなく、任意の特定の構成内に存在してもよい。
【００３４】
ゼロバイアス列２０４は、特定のデータにおけるデータ値のパーセンテージがゼロであることを示すために使用されてもよい。任意の数のインジケーションスキームが例示的テーブル２００内で使用されてもよいが、ゼロバイアス列２０４は、特定のデータが、５０パーセント未満、正確に５０パーセント、または５０パーセントを上回るゼロを有するかどうかを示す。反転インジケーション列２０６は、次いで、少なくとも、そのデータ場所におけるゼロバイアスが特定の閾値を超えるかどうかに基づいて、特定のデータにおけるデータを反転するかどうかを示してもよい。例えば、ゼロバイアスが、５０パーセントを上回る場合、データを反転する。反転インジケーション列２０６は、データを反転するかどうかを示す、特定のデータ値と関連付けられたデータ値を含んでもよい。例えば、テーブルは、データが反転されるべき場合、「はい」を含んでもよい。他の構成では、反転インジケーション列２０６は、「反転しない」ための論理ゼロおよび「反転する」ための論理１またはその逆を含んでもよい。他のインジケーションスキームも、本開示の範囲から逸脱することなく、当業者に利用可能となってもよい。
【００３５】
いくつかの実施形態では、テーブル２００はまた、プログラム値列２０８を含んでもよい。プログラム値列２０８は、例えば、ＯＴＰコントローラ１０２によって、規定されたデータの中に書き込まれるべき値を含んでもよい。例えば、第１の行では、テーブル２００は、値「００００」がデータ値に書き込まれるべきであることを示す。これは、ゼロバイアスが５０パーセント未満（ゼロバイアス列２０４の第１の行に示されるように）であり、したがって、反転が生じていない（反転インジケーション列２０６の第１の行に示されるように）ためである。他の例示的値も、図２に図示される。
【００３６】
したがって、反転および非反転プログラミングワード間でアルゴリズム的に選択することによって、ＯＴＰプログラミング時間を最小限にするためのシステムおよび方法が、開示される。最大値をアレイ全体のためのプログラミング時間に課すために、「１」にプログラムされるビットの数の限界、したがって、総プログラミング時間の限界を導入することが可能性として考えられる。これは、ｎビットワード（ｎビットは、ＯＴＰアレイの読取／書込幅を表す）毎に１つの余剰ＯＴＰビットを追加することを犠牲として行われる。例えば、３２ビット幅ＯＴＰアレイは、３３ビット幅となるように更新されるであろう。
【図１】
2018512689.tif 000003
【図２】
2018512689.tif 000004
【国際調査報告】
2018512689.tif 000005
2018512689.tif 000006
2018512689.tif 000007