(57)【要約】本発明は、フラッシュ、ＥＥＰＲＯＭあるいはＮＡＮＤアレイ等の、非揮発性メモリ（１４）からのコード転送を可能にし、そのコードを、ＣＰＵ等の実行エンティティ（１２）によって実行できるようにするためのシステムを提供する。本発明は、ＳＲＡＭ等の少量の揮発性メモリ（１０）を多量の非揮発性メモリに結合して、主に比較的に安価な不揮発性構成要素からなる、非常に効率的な実行可能なコード保存システムを可能にする。
2004527040.tif 000002
【特許請求の範囲】
【請求項１】
実行不可能なメモリからコード実行を可能にするためのシステムであって、
ｉ．ホスト・システムのためのコードを実行する実行エンティティ、
ｉｉ．システム・コード及びデータを保存するための、実行不可能なメモリ構成要素、そして
ｉｉｉ．前記コードを実行するためのメモリ・バッファとして作用する実行可能なメモリ構成要素からなり、前記実行不可能なメモリ構成要素の内容の一部が、前記実行可能なメモリ構成要素内に位置して、前記実行不可能なメモリ構成要素の内容の前記一部が、前記実行可能なメモリ構成要素の実行可能な機能をエミュレートすることを特徴とするシステム。
【請求項２】
前記実行可能なメモリ構成要素が、前記実行不可能なメモリ構成要素から前記実行可能なメモリ構成要素へ要求データをダウンロードするダウンロード・メカニズムを用いて、前記実行エンティティが要求するデータ・アドレスを、前記実行可能なメモリ構成要素へダウンロードする、請求項１に記載のシステム。
【請求項３】
前記実行不可能なメモリ構成要素が、ＮＡＮＤフラッシュ構成要素、シリアルＥＥＰＲＯＭ及びフラッシュメモリ構成要素からなるグループから選択され、前記実行不可能なメモリ構成要素が実行可能なメモリとして機能する、請求項１に記載のシステム。
【請求項４】
実行不可能なメモリを用いてコードを実行するためのシステムであって、
ｉ．コードを実行するための実行エンティティ、
ｉｉ．前記コード及びデータを保存するための実行不可能なメモリ構成要素、そして
ｉｉｉ．複数の実行可能なメモリ構成要素からなり、これらの実行可能なメモリ構成要素は、前記コードのダウンロード処理中、前記データへのアクセスのためにメモリ・ロックを防止する多数のメモリ・バッファとして作用することを特徴とするシステム。
【請求項５】
前記複数のメモリ・バッファの各々が、ダウンロード・ロジック及びメモリ・バッファ・スペースを含む、請求項４に記載のシステム。
【請求項６】
実行不可能なメモリを用いてコードを実行するための方法であって、
ｉ．実行エンティティからの少なくとも一つのコード要求をバッファーリングするための、実行可能なメモリを提供する、
ｉｉ．実行可能なコードを保存するための、実行不可能なメモリを提供する、
ｉｉｉ．前記実行可能なメモリの実行可能な機能をエミュレートするため、前記実行可能なメモリへ前記実行可能なコードの少なくとも一部をダウンロードする、
ｉｖ．前記実行可能なメモリから少なくとも一つの前記コード要求を実行する、そして
ｖ．前記実行可能なメモリ内に、前記実行不可能なメモリの内容の実行をバッファーリングするステップからなる方法。
【請求項７】
さらに、
ａ）実行可能なバッファ内の前記内容の利用可能性を保証する少なくとも一つの命令セットを処理する、そして
ｂ）前記内容が利用可能でない場合、前記内容が利用可能になるまで実行可能なエンティティが読み取りサイクルを遅らせるよう、ビジー信号を供給するステップからなる、請求項６に記載の方法。
【請求項８】
前記実行可能なコードの少なくとも一部の前記ダウンロードが、
（ａ）データを求めて前記実行可能なメモリに問い合わせる、そして
（ｂ）前記データの問い合わせアドレスが実行不可能なメモリ内にのみ利用可能である場合、前記実行不可能なメモリの要求位置から、前記実行可能なメモリのバッファ領域へダウンロード処理を開始するステップを含む、請求項６に記載の方法。
【請求項９】
ステップｉｖが、さらに、
Ｉ．前記ダウンロード処理中のアクセスに対して、前記実行不可能なメモリの前記一部がロックするのを防止するために、複数の実行可能なメモリ・バッファを提供する、
ＩＩ．前記複数の実行可能なメモリ・バッファの一つへ前記実行可能なコードをロードする、そして
ＩＩＩ．追加の前記実行可能なメモリ・バッファの少なくとも一つを、前記ホスト・システムがアクセスできるよう、そして前記ホスト・システムが実行可能なように維持することを含む、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行不可能なメモリを、実行可能なメモリとして用いるためのシステムに関する。
【背景技術】
【０００２】
異なるタイプのメモリを分類する方法の一つは、コードを直接実行する能力によって分けることである。メモリ・デバイスから直接コードを実行する能力は、通常、メモリ・デバイスの、次の特性を必要とする。
１．アドレス・バス、データバス、そしていくつかの制御信号（読み取り可能、書き込み可能等）を含む標準メモリ・インタフェース。実行エンティティ（ＣＰＵ、コントローラ等）は、（アドレス・バスの信号を提供することによって）必要なコードのアドレスを決定し、（必要な制御信号を提供することによって）任意のサイクルを実行し、そして（数ｎＳから数百ｎＳに及ぶ）短時間後に必要なコードがデータバスに現われることを予期する。
２．メモリ・デバイスの全メモリ・スペースの完全な可視性。これは、実行エンティティが、アドレス値を（装置のメモリ・スペース内の）どのような有効な状態へも変換することができるにも拘わらず、同じ遅延周期後に必要なコードを得ることを意味する。この作動は、ランダムアクセス能力としても知られている。
【０００３】
上記の特性を持たないメモリ・デバイスは、実行可能なメモリとして用いることはできない。実際、メモリ・スペース全体の完全な可視性に必要な条件が、メモリ・デバイスの内部アーキテクチャを規定し、各メモリ・セルは、遅延なくホスト・システムによって直接的にアクセスされる必要がある。前記アーキテクチャは、装置内に多量のルーティング信号を必要とする。これらのルーティング信号はシリコン・スペースを占拠するため、装置は高価なものとなる。メモリ・デバイスのランダムアクセス必要条件が装置をコスト高にするということが、この産業界で受け入れられている意見である。
【０００４】
実行可能でないメモリ・デバイスの例としては、ＮＡＮＤフラッシュメモリがある。この装置は、コード実行以外の、データ保存の用途等の目的のために開発されたものである。ＮＡＮＤフラッシュがコードを直接実行するように要求されないという事実は、異なるタイプの内部アーキテクチャの使用を可能にする。ＮＡＮＤフラッシュ・アーキテクチャは、各位置への直接的なアクセス（ランダムアクセス）を許さず、その代わりにメモリ・セルへのより複雑なインタフェースを提供する。このアーキテクチャは、（実行可能なメモリに必要な量よりも）少ないルーティングリソースを必要とするため、（ビット単位の）コストが低いという利点がある。しかし、先に言及したように、その主要な制限は、実行不可能なことである。
【０００５】
したがって、ＮＡＮＤフラッシュ等の実行不可能なメモリを、実行可能なメモリとして用いることができるようにするシステムの必要性が広く認識されており、そのようなシステムを得ることは大変有利である。
【０００６】
本発明は、（ＮＡＮＤフラッシュメモリのような）実行不可能なメモリからのコード実行を可能にするシステム及び方法を提供する。本発明の実施例は、よりコスト高な解決方法（実行可能なメモリ）が通常必要とされる用途において、低コストのメモリ部品の使用を可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、実行不可能なメモリからのコード実行を可能にするシステムを提供する。本発明は、少量の実行可能なメモリを多量の実行不可能なメモリに結合して、比較的に安い実行不可能なメモリ構成要素からなる、非常に効率的な実行可能なデータ保存システムを可能にする。
【課題を解決するための手段】
【０００８】
例えば、実施例は、８ＭＢのＮＡＮＤフラッシュ（実行不可能）、そして１ＫＢのＳＲＡＭ（実行可能）を含んでもよい。追加のＳＲＡＭは、（コスト的に）無視できる程度であるが、さらに詳述するように、８ＭＢのＮＡＮＤフラッシュのすべてからの実行を可能にする。これらの数字は単に一例であるが、この文書を通して用いる。正確な必要条件に基づいて、他の組合せも考慮できるし、また具現することができる。
【０００９】
本発明は、通常高価な構成要素（実行可能なメモリ）で得られる高機能を、低コストの構成要素（実行不可能なメモリ）を用いて達成することが可能なメモリ・システムを提供する。本発明のメカニズムは、次のものを必要とする。
１．装置は、ホスト・システム（実行エンティティ）に対して完全な可視性を持つ、少量の完全にマッピングされたメモリ（ランダムアクセス）をサポートする。
２．装置は、実行可能なバッファ内における要求情報の利用可能性を保証するアルゴリズムを処理する。
３．装置は、情報がまだ利用可能でない場合にビジー信号を提供する。
【００１０】
本発明の好適実施例によれば、どの時点においても、ランダムアクセス・メモリ（例えば、１ＫＢのＳＲＡＭ）は、実行不可能なアレイ（例えば、全ＮＡＮＤ容量からの少量部分、８ＭＢ等）からの、同量のメモリ容量（例えば、１ＫＢ）を含む。この例によれば、（ＮＡＮＤの１ＫＢを反映する）ＳＲＡＭの１ＫＢは、実行可能なものとして作用するので、実行可能なメモリ（ランダムアクセス及び標準メモリ・インタフェース）の必要条件を満たす。ＣＰＵは、ＳＲＡＭ内容の範囲内のどの位置でも実行することができる。
【００１１】
本発明のもう一つの好適実施例では、複数のメモリ・バッファを提供することによって、実行不可能なメモリから実行可能なメモリへのデータ・ダウンロードと、データあるいはコード要求の処理とを同時に行うことが可能になる。
【００１２】
本発明を、添付図面を参照しながら実施例を用いて説明する。
【発明を実施するための最良の形態】
【００１３】
本発明は、実行可能なメモリ・システム内の処理の改善に関する。特に、本発明は、実行不可能なメモリからの、コードの実行を可能にするシステム及び方法を提供する。
【００１４】
次の説明文は、本発明を、本技術における通常の技能者が利用できるように、特定な用途に関して必要条件と共に説明するものである。好適実施例への種々の変更は、本技術における技能者には明らかであり、ここに定義する一般的な原理は、他の実施例にも適用できるものである。したがって、本発明は、特定な実施例に限定されてしまうことを意図せず、ここに開示する原理及び新規な特徴に一貫して、最も広い範囲が与えられるべきである。
【００１５】
本発明は、実行不可能なメモリが、実行可能なメモリとして機能することを可能にするためのシステム及び方法である。このシステムは、多量の実行不可能なメモリが、実行可能なメモリとして機能することができるように、多量の実行不可能なメモリの他に少量の実行可能なメモリの使用を必要とする。
【００１６】
例えば、本発明によるメモリ・システムの実施例は、８ＭＢのＮＡＮＤフラッシュ（実行不可能）構成要素と、１ＫＢのＳＲＡＭ（実行可能）構成要素とを含むことができる。この追加のＳＲＡＭは、（コストとして）無視できる程度であるが、下記に詳述するように、８ＭＢのＮＡＮＤフラッシュのすべてからの実行を可能にする。これらの数字は単に一例であり、一貫性を保つために、この文書を通して用いる。正確な必要条件に基づいて、他の組合せも考慮して具現できる。このように、本発明は、低コストで実行不可能な構成要素に基づいて、実行可能なメモリの高度な機能を用いるシステムを築くことを可能にする。
【００１７】
本発明によるシステム及び方法の原理及び作用は、図面及びその説明文から明確に理解することができる。これらの図面は、単に説明の目的を担うものであって、限定するものではない。
本発明は次の構成要素を含む。
１．コードを実行するための、ＣＰＵ、コントローラ等の実行エンティティ。
２．システム・コード及びデータを保存するための、実行不可能なメモリ構成要素。
３．コード実行のためのメモリ・バッファとして作用するための、実行可能なメモリ構成要素。この実行可能なメモリ構成要素は、その内部に、実行可能なメモリ構成要素を模倣し、実行不可能なメモリ構成要素から実行可能なメモリ構成要素へ要求データをダウンロードすることを可能にする、実行不可能なメモリ構成要素の内容の一部を含む。
【００１８】
図１は、基本システム構成要素の一例と、本発明の処理の流れを示す。図１によれば、コードを実行し、データを処理するための、ＣＰＵ、コントローラ等の実行エンティティ１２を備え、さらに、システム・コードとデータを保存するための、実行不可能なメモリ構成要素１４を備える。このような実行不可能なメモリ構成要素の例としては、ＮＡＮＤフラッシュメモリ、シリアルＥＥＰＲＯＭ・ＡＮＤフラッシュメモリ等がある。本発明の最終的な主構成要素は、少量の完全にマッピングされた実行可能なメモリ１０（ランダムアクセス）である。この実行可能なメモリは、コード実行の目的でバッファとして作用し、ホスト・システム（実行エンティティ１２）の完全な可視性を備えるように構成される。このタイプのメモリの例としては、ＳＲＡＭ、ＮＯＲフラッシュ等がある。この実行可能なメモリ構成要素１０は、その内部に、実行可能なメモリ構成要素を模倣し、実行不可能なメモリ構成要素１４から実行可能なメモリ構成要素１０へ要求データをダウンロードすることを可能にするための、実行可能なメモリ構成要素のサイズ以下の、実行不可能なメモリ構成要素内容１４の一部分を含む。
【００１９】
本発明の好適実施例によれば、上記の例に示すように、次の必要条件を満たす必要がある。
１．ＳＲＡＭの１ＫＢが実行可能であって、実行可能なメモリの必要条件（ランダムアクセス及び標準メモリ・インタフェース）を満たす。したがって、ＣＰＵあるいは実行エンティティ１２は、ＳＲＡＭ１０の範囲内のどの位置をも実行することができる。本発明によれば、どの時点でも、ＳＲＡＭ１０の１ＫＢは、ＮＡＮＤフラッシュ配列１４から（ＮＡＮＤ全容量８ＭＢから）、最大で１ＫＢまでを含む。ＮＡＮＤフラッシュ配列１４からのデータはＳＲＡＭ１０内にダウンロードされるが、このＳＲＡＭ１０内のデータは、ＮＡＮＤフラッシュ１４内容の部分的コピーである。このようにして、ＳＲＡＭ１０機能がＮＡＮＤ１２の内容に対してエミュレートされ、ＳＲＡＭ１０内のＮＡＮＤ１２の内容が実行可能になる。
２．このステージまでは、ＮＡＮＤフラッシュの僅かな小さな部分（１ＫＢ）だけが実行可能である。したがって、実行エンティティ１２の要求に応じてＮＡＮＤフラッシュ１４のどの内容をも含むことができるよう、１ＫＢのＳＲＡＭバッファを制御可能なメカニズムを提供する必要がある。
３．ＳＲＡＭバッファ１０の内容を正しく制御できるよう、実施例は、ＮＡＮＤフラッシュからＳＲＡＭバッファへデータを速くダウンロードでき、実行可能なバッファ内における要求情報の利用可能性を保証するための、ダウンロード・オンライン・アルゴリズムを含む。多くのタイプのダウンロード・アルゴリズムを用いることができる。非常に基本的な、そして単純な例をここに示す。
ｉ．実行可能なメモリに、要求データの位置あるいはアドレスについて問い合わせを行う。
ｉｉ．（実行エンティティ１２が要求する）要求アドレスが、現在のＳＲＡＭバッファ内容に含まれている限り、装置はすぐに、バッファから必要とされるコードを得ることができるため、内容を変化させることはない。
ｉｉｉ．要求アドレスが現在のＳＲＡＭバッファ内容内に含まれない場合、ダウンロード・アルゴリズムは、ＮＡＮＤフラッシュ１４の要求位置からＳＲＡＭバッファ１０へダウンロード処理を開始する。ダウンロード処理が完了すると、ＳＲＡＭバッファ１０内には、実行可能な状態で要求情報が利用可能になる。
ｉｖ．本発明の装置は、実行可能なバッファ内における要求情報の利用可能性を保証する、少なくとも一つのアルゴリズムを処理する。装置は、情報がまだ利用可能ではない場合、ビジー信号を提供する。例えば、（データ・アドレスに応じる）要求データがＳＲＡＭの現在の範囲内にない場合、ＮＡＮＤからＳＲＡＭへデータをダウンロードしなければならない。この処理は、時間（ダウンロード待ち時間）がかかり、この間、要求アドレスは要求コード（要求内容）を返すことができない。したがって、発せられるビジー信号は、データのダウンロードが完了するまで、ホスト・システムがデータ要求を停止するよう、ホスト・システムに警告する。
【００２０】
上記ダウンロード・アルゴリズム、すなわち命令は、実行可能な状態でのＮＡＮＤフラッシュ内容の完全な可視性という必要条件を満たすと見なすことができる。注意すべきは、ダウンロード処理中、メモリが全く実行に利用可能できないため、いつも本来の完全な可視性があるとは言えないということである。
【００２１】
本発明のもう一つの好適実施例によれば、提案したダウンロード・アルゴリズム、すなわち命令セット、そしてシステム・アーキテクチャは、より良い機能を持つよう、容易に強化できる。例えば、図２から明らかなように、提案したアーキテクチャは、要求コードを実行するのにメモリが利用可能でない場合に時間帯を伴う。これらの場合、メモリ・デバイスが、実行すべき要求コードをダウンロードしている間、要求コードがまだ利用可能でないということを知らせるために、実行エンティティ３０へ「ビジー信号」２６を提供する必要がある。実行エンティティ３０は、メモリ・デバイスが要求コードを供給する準備ができるまで、実行の試みを保留するために「ビジー信号」２６を用いるべきである。従来の技術によるプラットホームに依存する、実行の試みの保留の方法が多くある。
【００２２】
本発明のもう一つの好適実施例は、二つの、あるいは多数のＳＲＡＭバッファ２０を持つ。このバッファ、あるいはバッファのセットは、図２から明らかなように、ダウンロード処理中、メモリのアクセスがロックされるのを防止するために用いることができる。この場合、ダウンロード処理は、一つのＳＲＡＭバッファへ要求内容をロードする。これをダウンロード・ロジック２２と呼ぶが、この間、他のＳＲＡＭバッファ２０はアクセス可能で、そして実行可能である。実行可能なバッファ２０は、二つ以上の実行可能なバッファを含むように拡張することができる。この場合、ダウンロード・ステート・マシンの適当なサポートによって、一つ以上のバッファの内容を変更しながら、同時に一つ以上の他のバッファからのコード実行をサポートすることは可能である。このアプリケーションは、ビジー待ち時間を短くして、読み取り／書き込み性能をかなり改善する。このバッファは、また、デュアルバッファ（二つのバッファがある場合）、あるいはマルチプルバッファとも呼ぶ。
【００２３】
本発明の実施例の前述の説明は、実例及び説明の目的で提示したもので、詳述すること、あるいは開示の正確な形態に本発明を限定することを意図していない。上記の説明から、多くの変更及び変化が可能であることは明らかである。本発明の範囲は、この詳細な説明によってではなく、むしろ添付の請求項によって限定されるべきである。
【図面の簡単な説明】
【００２４】
【図１】本発明によるメモリ・システムの構成要素を示す。
【図２】本発明によるプロセスを示す。一つ以上の実行可能なメモリ・バッファを提供し、実行可能なバッファ内に要求データが存在することを保証するためにビジー信号を用いる。
【図１】
2004527040.tif 000003
【図２】
2004527040.tif 000004
【国際公開パンフレット】
2004527040.tif 000005
2004527040.tif 000006
2004527040.tif 000007
2004527040.tif 000008
2004527040.tif 000009
2004527040.tif 000010
2004527040.tif 000011
2004527040.tif 000012
2004527040.tif 000013
2004527040.tif 000014
2004527040.tif 000015
2004527040.tif 000016
2004527040.tif 000017
2004527040.tif 000018
【国際調査報告】
2004527040.tif 000019
2004527040.tif 000020