(57)【要約】自動一時停止および再開動作をサポート可能なハードウエア構造を備え、不揮発性メモリを用いてコード実行およびデータ格納／処理を同時に実行させることが可能な装置および方法が提供される。本構造は、一時停止ロジック回路および再開ロジック回路（２６および２７）をチップハードウエアに集積、または、チップと組み合わせて動作することができるような方法でロジックチップを常駐させる必要がある。本装置および方法は、フラッシュメモリチップ（２４）が消去／プログラム動作を処理した状態で、通常このような装置を破壊する衝突を防いでコード実行処理を可能にする。これは、チップおよびＣＰＵ／バス（２０）アクティビティの動作状態を検出し、読み取り要求と衝突しないようにするために、フラッシュメモリデバイスに一時停止および／またはＶＳ再開プログラム／消去動作を適切なときに命令することで達成される。
2004505374.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリデバイスを用いてデータ処理動作中にコードを実行する装置であって、
前記メモリデバイスを制御するＣＰＵ／バス／コントローラと、
前記装置のコードおよびデータを保留する不揮発性アレイと、
前記不揮発性アレイの内容およびアクティビティを制御する不揮発性デバイス回路と、
動作の自動一時停止および／または自動再開を可能にするロジック回路とを備えるコード実行装置。
【請求項２】
動作の前記一時停止および／または再開がハードウエア手段で開始されることを特徴とする請求項１記載のコード実行装置。
【請求項３】
前記不揮発性メモリデバイスがフラッシュメモリデバイスであることを特徴とする請求項１記載のコード実行装置。
【請求項４】
前記ロジック回路が、単一のシリコンダイを有する単一チップデバイス内にコード実行およびデータ格納／処理機能を可能にすることを特徴とする請求項１記載のコード実行装置。
【請求項５】
前記ロジック回路が、単一のシリコンダイを有する単一メモリチップの一バンク内にコード実行およびデータ格納／処理機能を可能にすることを特徴とする請求項１記載のコード実行装置。
【請求項６】
前記ロジック回路がメモリチップに組み込まれていることを特徴とする請求項１記載のコード実行装置。
【請求項７】
前記ロジック回路がメモリチップの外部から機能することを特徴とする請求項１記載のコード実行装置。
【請求項８】
複数の前記ロジック回路がメモリチップに組み込まれていることを特徴とする請求項１記載のコード実行装置。
【請求項９】
複数の前記ロジック回路が、メモリチップの外部で機能することを特徴とする請求項１記載のコード実行装置。
【請求項１０】
前記ロジック回路が、前記メモリチップ内の現動作状態を監視可能であることを特徴とする請求項１記載のコード実行装置。
【請求項１１】
前記ロジック回路が、ＯＳ／アプリケーション／ファイルマネージメントソフトウエアで読み取り可能なように、現チップ動作状態にマークを付けることが可能であることを特徴とする請求項１記載のコード実行装置。
【請求項１２】
前記ＣＰＵ／バス／コントローラが、前記メモリチップに対しＣＰＵ／バス／コントローラ読み取り動作を遅延するように合図することにより、前記メモリチップに対し動作を一時停止および／または再開させることを特徴とする請求項１記載のコード実行装置。
【請求項１３】
不揮発性メモリデバイス上でデータ処理中にコードを実行する方法であって、
ｉ．不揮発性メモリデバイスで動作するために、少なくとも一つのロジック回路を追加するステップと、
ｉｉ．前記メモリチップ内の現動作状態を監視するステップと、
ｉｉｉ．前記チップがコード実行可能である場合にＣＰＵ／バスに合図をするステップと、
ｉｖ．ＣＰＵ／バスアクティビティを監視するステップと、
ｖ．チップ動作を一時停止および／または再開するようチップに命令するステップとを含むコード実行方法。
【請求項１４】
不揮発性メモリデバイス上でデータ処理中にコードを実行する方法であって、
ｉ．不揮発性メモリチップと連動するために少なくとも一つのロジック回路を追加するステップと、
ｉｉ．チップがプログラム／消去モード／動作中の状態で読み取り要求を検出するステップと、
ｉｉｉ．プログラムおよび／または消去動作を自動的に一時停止モードに移行する自動移行ステップと、
ｉｖ．さらなる読み取り／取り出し命令を実行する前にＣＰＵ／バスに対し待機するように合図するステップと、
ｖ．ＣＰＵ／バスが（自動的に）読み取り／取り出し命令を継続できるように合図を停止するステップと、
ｖｉ．プログラム／消去動作を継続するために前記チップを再開動作に移行するステップとを含むコード実行方法。
【請求項１５】
一時停止モードへの前記移行ステップが、チップ内のＯＳ／アプリケーション／ファイルマネージメントソフトウエアによって読み取るための状態にマークを付けるステップを含むことを特徴とする請求項１４記載のコード実行方法。
【請求項１６】
データ処理動作をハードウエア主導で一時停止することが可能な一時停止ロジック回路と、
データ処理動作をハードウエア主導で再開することが可能な再開ロジック回路とを備える単一フラッシュメモリデバイス。
【発明の詳細な説明】
【０００１】
【発明の分野および背景】
本発明は、不揮発性メモリにデータ格納デバイスとして動作した状態でコードを実行させることのできる装置に関する。
【０００２】
不揮発性メモリはまず第一にコードの実行に使われる。不揮発性コード格納メモリの市場では、フラッシュメモリが、コスト面で優れており、製造が容易であり、集積密度が高いために、各種ＲＯＭ（読み出し専用格納素子）ファミリー（ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ）に取って代わりつつある。フラッシュメモリが、スタンドアロンのデバイスおよび内臓式メモリとして広く使用されている。この市場では、デバイスのコストを下げるために、小さなシリコン領域に情報ビットを詰め込むことにしのぎを削っている。コード実行分野に使われる最も一般的なフラッシュメモリのタイプは、ＮＯＲフラッシュメモリと呼ばれる。ＮＯＲフラッシュメモリは、アドレスのおのおのにランダムにアクセスできるので、そこからコード実行ができる。したがって、ＮＯＲフラッシュメモリは、ＸＩＰメモリと呼ばれ、ここでＸＩＰは、「適切に実行可能」ということを意味する。
【０００３】
これまでフラッシュメモリのコード実行面を説明してきたが、もう一つ成長し主流になりつつあるのが、データ格納に関する市場である。データ格納に使うフラッシュメモリは、フラッシュメモリディスクと呼ばれ、Ｈ／Ｗ（フラッシュメモリ）およびＳ／Ｗパッケージ（ファイルシステムマネージメント、ＯＳインターフェース、など）から構成されている。
【０００４】
通常現在のアプリケーションでは、フラッシュメモリはコード実行およびデータ格納の双方に使われる。今日、各種機能を別個のデバイス（すなわちデバイス組）で構成する構造が最も多い。アプリケーションのデータとコードの双方を、同一のデバイス（単一のデバイス）を用いて格納できると非常に価値がある。その主な利点は、不動産要件、チップ数、シリコンサイズ、消費電力の削減にある。次の筋書きは、この方法の主な問題点を説明する。例えば、アプリケーションのＯＳで、二つのタスクが実行されていると仮定しよう。第１のタスク（Ｔ１）は、データ格納ドライバタスクである。これは、アプリケーションデータのすべてをフラッシュメモリに格納する役目をする。第２のタスク（Ｔ２）は、フラッシュメモリ（勿論、同一のフラッシュメモリ）から実行されるあるコードである。筋書きとして、まずデータ管理要求の一部として、フラッシュメモリのある領域へ消去コマンドを発行する。ＮＯＲフラッシュメモリの典型的な消去時間は１秒である。この時間帯（この１秒以内）に、ＯＳはＴ２にタイムスロットを与え、Ｔ２はフラッシュメモリからコード実行を開始する。この時点で、オペレーションは障害を起こし、すべてのアプリケーションを障害に追い込む。その理由は、フラッシュメモリが読み取り動作不可能で（例えば、コード実行）、他の部分の消去／プログラミングに忙しいからである。ＯＳもＴ２も、フラッシュメモリが現在使用不可能なことを認識しない。ＯＳもＴ２もフラッシュメモリに格納されているコードは常に実行可能であると予期しているが、実際はそうではないからである。上述のように、フラッシュメモリが格納されたコードを実行不可能ということは、よくあることであり、実際にはむしろＴ１要求に続く部分の消去／プログラミングに忙しいときはいつも例外なく実行不可能である。
【０００５】
【既知のソリューション】
１．データ格納用と、コード格納用（ＸＩＰ）の二つのデバイスを使用。上述のように、これが今日用いられている一般的な構成である。図１がこのソリューションを具体的に示している。このソリューションは、より高い不動産要件、チップ数、シリコンサイズ、消費電力という難点がある。
【０００６】
２．マルチバンク構造を備える１個のデバイスを用いると、読み取りおよび消去／プログラムを同時にアクセスすることが可能である。フラッシュメモリメーカー数社が、マルチバンク（通常、デュアルバンク）構造のフラッシュメモリデバイスを製造し始めた。この方法をとると、不動産要件は減り、チップ数も一つに減るが、欠点は、シリコン製造経費が増えることである（マルチバンク設計による）。この設計によると製造経費増は、通常の設計に比べて３０％と予想され、実際にはシリコンチップのこの追加的な機能に代価を払わなければならない。この方法は、不動産要件の厳しいアプリケーションには好評である。図２はこのソリューションを具体的に説明している。
【０００７】
３．装置のタスクをすべて制御しスケジュールする、例えば、インテルのＰＳＭのような特別なシステムソフトウエアを備えた単一のデバイスを使用する。このソリューションは、デバイスの二つの機能を可能にするために、フラッシュメモリの一時中断および再開のＳ／Ｗコマンドを使用する。このソリューションで、認識をしないという問題点は解決されるが、そのコストは複雑に膨れ上がる。すなわち、明らかにすべてのＣＰＵおよび／またはＯＳに合致したソリューションが必要になる。特別な装置Ｓ／ＷがＯＳに加えられて、すべてのタスクおよび割り込みの制御とスケジューリングを行う。複雑度が高いため、このソリューションを統合して開発する時間は過度に長くなる。加えて、この方法は、ある隙間市場に適する非常に立ち入った取り組み方である。
【０００８】
したがって、不揮発性メモリを、コード実行およびデータ格納の双方を同時に行うことができる装置が明らかに必要であり、又その機能を備えると極めて大きな利点がある。
【０００９】
本発明は、データ格納／処理およびコード実行の両方に使える単一の不揮発性（フラッシュメモリ）デバイス（または、一組のデバイス）の問題を解決するもう一つの方法を提供する。このソリューションは、双方の用途に使用可能な独特の機能を提供し、特に、ある部分の消去／プログラミングにフラッシュメモリが忙しいときも含め、いつでもフラッシュメモリからコードを実行できる。
【００１０】
本発明は、フラッシュメモリデバイスを効率的な方法で製造し動作可能にし、フラッシュメモリをコード実行およびデータ格納／処理に同時に使うことを可能にするハードウエアアプリケーションである。
【００１１】
【発明の概要】
本発明に基づき、不揮発性メモリ、とりわけ、フラッシュメモリが、コード実行およびデータ格納／処理を可能にする装置は次のものを備える。
・　ＣＰＵ／バス／コントローラ
・　不揮発性アレイ
・　不揮発性デバイス回路
・　ロジック回路
ここで、前記ロジック回路は、自動一時停止および再開動作をサポート可能なハードウエア装置である。
【００１２】
本発明は、自動一時停止および再開動作をサポート可能なオンチップのＨ／Ｗ構造を設計、実施可能にする。本ソリューションによりどのようなＣＰＵ／ＯＳの集積化も容易にできる。
【００１３】
本発明は、フラッシュメモリチップのような不揮発性メモリチップが、消去／プログラム動作をした状態で、コード実行処理ができるようにする。これは、チップの動作状態およびＣＰＵ／バスのアクティビティを検知し、読み取り要求と衝突しないように、適切なときに、一時停止および／または再開プログラム／消去動作をフラッシュメモリに命令することによって達成される。それによって、本装置は、チップがプログラム／消去動作を処理した状態で、ＣＰＵ／バス／コントローラを読み取り命令実行からバッファする。
【００１４】
添付の図面を参照し、本発明を例示としてのみ以下に説明する。
【００１５】
【好適な実施形態の説明】
本発明は、不揮発性メモリチップを用いて、コード実行並びにデータ格納および処理を同時に可能にする装置と方法である。
【００１６】
具体的には、本発明は、同一のチップ上に格納されたデータを同時に処理した状態で、フラッシュメモリチップ上のコードを実行するために用いることが可能である。これは、自動一時停止および自動再開動作を利用することに基づいている。
【００１７】
本発明によるこのような装置の動作原理は、添付の図面および説明を参照してよりよく理解されよう。
【００１８】
図３および図４は、本発明の実施形態における基本的な構成要素および動作を説明する。一つの論理回路（すなわち、数個の回路）である本発明のハードウエア構造は、次の方法による自動一時停止およびプログラムの自動再開および／または消去動作を可能にするように設計されている。例えば、アクティブな消去／プログラム命令１０がメモリデバイスに発行されると仮定する。メモリデバイスは、消去／プログラム動作１５を実行し、同時に読み取り要求１１が登録される。読み取り要求が実行不可能で装置をクラッシュ（強制停止）する現行の方法とは対照的に、本発明は一時的にプログラム／消去動作１５を停止１２する。停止モード１２では、ＣＰＵ／バスは、読み取り要求を自由に継続できる。その後続いて、タイムアウト１３（読み取り動作がない所定の時間帯）を検出するために、読み取り動作が監視される。検出すると同時に、それは再開動作１４に命令を発し、プログラム／消去動作１５が継続できるようにする。より詳細には、装置は以下のように動作する。
【００１９】
１．一時停止動作は、次の条件で自動的に実行する。
１．１　デバイスが消去／プログラム動作１５にかかりきりである。
１．２　デバイス１１が読み取りを試みる。
【００２０】
２．使用中信号２２（図４）がデバイスの一時停止状態１２（一時停止待ち時間と呼ばれる）への移行を指示する。ＣＰＵ／バスに対するある物理的信号である使用中信号が、プラットフォーム上で使われ、フラッシュメモリチップ上に格納されたコードがすぐに実行可能であることを合図する。ホストＣＰＵ／バス／コントローラ２０、または、ホストバス２１は、この信号を使い、その標準の保留／再試行メカニズム、または、ＣＰＵ／バス／コントローラによって提供されるその他の手段を用いて、動作を保留／再試行し、読み取り試行の失敗に起因するクラッシュを回避する。
【００２１】
３．読み取りサイクルがすべて完了すると、ただちに再開動作１４が自動的に実行される。タイムアウト検出１３（読み取り動作が行われない所定の時間帯）を使用して完了したことが検出される。所定の時間間隔、または、その他の選択された方法のような代替的要素に基づいて、一時停止動作の実行が命令される。
【００２２】
【利　点】
まず第一に、本発明は、１個の不揮発性チップ、または、一つにまとめられたチップとして動作するチップバンクを、データ格納／処理およびコード実行の両方に使用可能にする。このようにして、それは不動産要件、チップ数、シリコンサイズ、消費電力を大幅に削減できる。本発明を市場のその他のソリューションと比較すると、インテルのＰＳＭ（他のソリューション：ａおよびｂは、はるかにコストが高い）は、フラッシュメモリデバイス（Ｈ／ＷおよびＳ／Ｗ）をプラットフォーム環境（ＣＰＵ、バスおよびＯＳ）に容易に集積できるという大きな利点がある。このソリューションを使うと、ＯＳコンポーネント（例えば、スケジューラ）および他のソフトウエア要素とのインターフェースが不要である。その元で実行されているＯＳとタスクのすべては、フラッシュメモリの条件にまったく気づかずに、その条件に無関係にそれをアクセス可能である。唯一集積しなければならないのは、一時停止待ち時間中に生じる動作を、ＣＰＵ、バス、コントローラが保留／再試行できるようにする簡単なＨ／Ｗの集積である。通常の一般的な保留／再試行メカニズム、または、読み取り／取り出しサイクルの実行時間を遅らせる可能性があるＣＰＵ／バス上に存在するその他のメカニズムを実行する上で、このハードウエアの集積が必要である。一個のチップ上で、データ格納およびコード実行の二つの動作を通知して可能にするためには、ロジック回路をメモリチップ内に組み込むか、外部ロジックとして付加するかのいずれかが必要となり、その結果として、自動再開および一時停止を容易にする。
【００２３】
【自動一時停止メカニズム】
このセクションでは、自動一時停止機能のメカニズムと実行について説明する。
自動一時停止ロジック２６（図４）は、消去またはプログラム動作が開始１５（図３）するときに動作する。これらの動作（消去またはプログラム）のうちの一つが検出されたときに、自動一時停止ロジック２６がトリガされる。この瞬間以降、ロジックはデバイスからの読み取り動作１１を待つ（ステータスビットまたは同様のものとは対照的な実質的なデータを出力するデバイスを必要とする読み取り動作）。読み取り動作１１を受信する前に消去／プログラム動作１５が完了すると、ロジックおよびチップは双方ともアイドル状態１７に戻る。読み取り動作は、デバイスから供給される（例えば、コントロール信号、アドレス信号、読み取り命令）手段に基づいて認識される。読み取り動作１１が検出された瞬間、自動一時停止ロジック２６はデバイスを一時停止状態１２に移行させるプロセスを実行する。このロジックは、デバイス内に存在するメカニズムを用いて、このタスク（例えば、あるデバイスで使用可能な一時停止命令）を実行する。その上、このロジックは、デバイスが自動一時停止状態１２に入ったある箇所（例えば、Ｉ／Ｏポートまたは専用のレジスタ）にマークを付ける。このマークは、ファイルシステムマネージメントＳ／Ｗによって使うことができる。その上、外部信号（使用中信号）２２を用いて自動一時停止状態１２に近づいているということを、デバイスが示すこともできる。この信号はプラットフォームによって使われ、読み取り動作１１試行、または、読み取り／取り出しサイクルの実行を遅延させる可能性のあるＣＰＵ／バス内のその他のメカニズムを保留／再試行するのに使うこともできる。このロジックは、又、デバイスが実際に自動一時停止状態１２に移行したことを確認する役目も果たす。確認段階の後、使用中信号２２は停止し、デバイスが自動一時停止状態１２に移行したことを示す。この瞬間以降、デバイスは必要に応じて読み取り要求を実行できる状態にある。
【００２４】
【自動再開メカニズム】
デバイスが自動一時停止状態１２に移行したときに、自動再開ロジック２７が動作を開始する。このロジックの目的は、自動一時停止ロジック２６によってインタラプトされたプログラム／消去動作１５を再開することである。このロジックは、例えば、自動一時停止ロジック２６と同様の技術を用いて、デバイスで行われる読み取り動作を監視しなければならない。このロジックは、一時停止動作を再開する役目がある。デバイスの読み取り動作の中断を待つ必要がある。中断が十分長い場合は（アプリケーションおよび環境に依存する）、このロジックは、デバイスがプログラム／消去動作１５を再開するプロセスを実行する（例えば、あるデバイスで使える再開命令を実行する）。このロジックは、中断が本当のものか、または、単に一時的中断かを決定するメカニズムを含む（例えば、読み取り動作をしていない時間を計数するタイマ）。このロジックは、又、デバイスが自動一時停止状態１２に移行したことを示す（例えば、Ｉ／Ｏポートまたは専用のレジスタ）マークを停止する役目がある。
【００２５】
本発明を、限定された数の実施形態で説明したが、本発明の多様な変形、改善、その他のアプリケーションを実施してもよい。
【図面の簡単な説明】
【図１】コード実行およびデータ処理のために、二つの別個のデバイスがメモリチップに組み込まれた現在もっとも一般的なソリューションの説明図である。
【図２】マルチバンク構造が使われているフラッシュメモリチップでコード実行およびデータ処理を達成する代替的なソリューションの説明図である。
【図３】本発明の装置基本動作の説明図である。
【図４】本発明の装置の基本部品のフローチャートである。
【図１】
2004505374.tif 000003
【図２】
2004505374.tif 000004
【図３】
2004505374.tif 000005
【図４】
2004505374.tif 000006
【国際公開パンフレット】
2004505374.tif 000007
2004505374.tif 000008
2004505374.tif 000009
2004505374.tif 000010
2004505374.tif 000011
2004505374.tif 000012
2004505374.tif 000013
2004505374.tif 000014
2004505374.tif 000015
2004505374.tif 000016
2004505374.tif 000017
2004505374.tif 000018
2004505374.tif 000019
2004505374.tif 000020
2004505374.tif 000021
2004505374.tif 000022
2004505374.tif 000023
2004505374.tif 000024
【国際調査報告】
2004505374.tif 000025