JP2004505332A - 高速データアクセスを維持しながらram寸法を減少させる方法および装置 - Google Patents
高速データアクセスを維持しながらram寸法を減少させる方法および装置 Download PDFInfo
- Publication number
- JP2004505332A JP2004505332A JP2001554178A JP2001554178A JP2004505332A JP 2004505332 A JP2004505332 A JP 2004505332A JP 2001554178 A JP2001554178 A JP 2001554178A JP 2001554178 A JP2001554178 A JP 2001554178A JP 2004505332 A JP2004505332 A JP 2004505332A
- Authority
- JP
- Japan
- Prior art keywords
- tag value
- memory
- ram
- data
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Mobile Radio Communication Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
- Image Processing (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
高速データアクセスを維持しながら、必要とされるRAMの量を減少させる方法および装置である。データ記録は、回路がパワーダウンされた場合でもデータ記録のコンテンツを維持するために不揮発性メモリ中に保存されることが多い。本発明において、不揮発性RAMのデータ記録の集合中の各記録は、タグ値を出力する関数H(x)に入力される。計算されたタグ値は、RAM中の予め定められたメモリ位置に保存される。計算された各タグは、長さが不揮発性RAM中に保存された記録より短い。したがって、各データ記録に対する1つのタグ値を保存するために必要なRAMは、RAM中のデータ記録の集合全体を保存するために必要とされるものより少くなる。H(y)の値は、yに対応したデータ記録エントリが所望されたときに計算される。その後、H(y)の値はタグ値表中の全ての値と比較される。整合が見出された場合、不揮発性RAM中のその位置から対応した記録が検索され、yと比較される。値が整合しなかった場合、H(y)に整合する別の位置を求めてタグ値表がサーチされる。その結果、最小量のRAMだけを必要として不揮発性RAMのコンテンツとの非常に速い比較が可能となる。
Description
【0001】
【発明の属する技術分野】
本発明は、電子回路に関する。とくに、本発明は、低速の不揮発性メモリからのデータの高速ルックアップおよび検索を維持しながら、装置において必要とされるRAMが減少される新しい改善された方法および装置に関する。
【0002】
【従来の技術】
あるタイプの電子メモリは、最新の電子装置のほとんど全てにおいて使用されている。電子メモリはフロッピーディスク、磁気テープ、ハードディスクおよび集積回路(IC)の形態をとることができる。各形態のメモリにはそれぞれ利点と欠点がある。フロッピーディスクは可搬の媒体上で多くのデータ更新を可能にするが、その容量は限られており、読出しおよび書込みアクセス時間が著しく長い。磁気テープおよびハードディスクの両者は非常に大きい容量を有しているが、非可搬性であり、大量のサポートハードウェアを必要とし、その読出しおよび書込みアクセスは低速である。フロッピーディスク、ハードディスクおよび磁気テープ中に保存されているデータは最初に、媒体上に保存される前にソフトウェアでファイルフォーマットにフォーマット化される。データが記憶媒体から再生されるとき、リクエストされたデータの位置を突きとめて抽出するようにソフトウェアファイルルーチンが実行されなければならない。これのためにデータアクセスプロセスがさらに遅くなる。それは、このプロセスがすでに低速であるハードウェアアクセスの上位にソフトウェア層を付け加えるためである。
【0003】
メモリが可搬装置中に集積される必要がある場合、典型的にICメモリが使用される。さまざまなタイプおよび個数のICがメモリの量をスケールすることができる。ICには最小のサポートハードウェアがあればよく、ICは非常に小型であり、高速読出しおよび書込みアクセスを行うことができる。あるICメモリは、ソフトウェア層を必要とせずに直接アクセスを容易にサポートすることができる。
【0004】
種々の設計要求に対するソリューションを提供するために種々の異なったタイプのICメモリが利用可能である。それぞれのタイプのメモリが多くの設計要求を満足させることができているが、完全な設計ソリューションを提供するメモリタイプは存在しない。任意の特定のアプリケーションに対して選択されるメモリのタイプは、計画された使用および性能の設計トレードオフに依存する。
【0005】
最も一般的なタイプのICメモリは、読出し専用メモリ(ROM)である。その名称が意味するように、このメモリは読出しアクセスのみ可能である。ROM装置は、それがプログラムされると、再度書込みを行われることはできない。埋込まれたソフトウェアアプリケーションは、埋込まれたコードおよびデータ記録を記憶するためにROMを使用する。埋込まれたソフトウェアアプリケーション内のプロセッサは各命令をROMから検索し、それを実行する。ROM内にプログラムされる情報の揮発性に応じて、異なったタイプのROMが利用可能である。ROM中に記憶されるべき情報が変更されないと予測され、予測されるデバイス量が大きい場合、マスクプログラム可能なROMが使用される。このタイプのROMはダイのパッケージ前にマスクプログラムされる。プログラムされる情報は非常に安定していなければならず、かつ改訂をなされてはならない。これは、プログラムされた情報の変更にはマスク変更が必要とされるためである。マスクプログラムされたROMを使用する利点は、多量の完成した製品のために費用および時間が節約されることである。別のタイプのROMは、マスクプログラムされたROMを正当化するのに十分な生産量またはコード安定性を一様に保たない製品に対して利用可能である。
【0006】
プログラム可能な読出し専用メモリ(PROM)は、装置製造業者が埋め込まれたコードをプログラムすることを可能にする。これによってコードの改訂は可能になるが、しかしROMは、それがプログラムされると、依然として修正または消去は不可能である。旧式のコード改訂によりプログラムされた装置は、その旧式のコード改訂により使用されるか、あるいは廃棄されるかのいずれかを行うことが必要となる。
【0007】
消去可能なプログラム可能な読出し専用メモリ(EPROM)は、プログラムされた部分を完全に消去する能力を提供する。EPROMの消去は、予め定められた時間中ダイを紫外線(UV)光に露出することにより行われる。ダイはパッケージ上の透明なウインドウを通してUV光に露出されることができる。EPROMは一度消去されると、再度プログラムされることが可能である。EPROMは典型的に、予測されるコード改訂数が多い技術開発にしか使用されない。EPROMは、透明ウインドウに適合することのできるパッケージタイプで制限されるためにPROMと比較してはるかに高価である。EPROMは消去され、再度プログラムされることが可能であるが、コードへの修正は完全にチップの単位で行われなければならない。コード内の変更には、それがたとえ1ビットであっても、完全な消去および再プログラミングが必要である。この制限のために、消去のためのUV光への要求と共に、EPROMを更新するタスクがもとの装置製造会社(OEM)に限られてしまう。
【0008】
選択的なコンテンツ消去および再プログラミングを可能にする装置は、電気的に消去可能なプログラム可能な読出し専用メモリ(EEPROM)である。通常のEEPROMは、データが適切に更新されることを可能にする。すなわち、特定のデータ位置が消去され、その同じ位置に新しいデータが重書きされることができる。データはEEPROMから迅速に読出されることができるが、通常のEEPROMの書込みサイクルは、読出しより数桁長い時間を要する。通常のEEPROMを使用する別の欠点は、通常のEEPROMセルの固有の構造のために発生する。通常のEEPROMセルの構造には、標準的なPROMより多くのトランジスタが必要である。構造が増加した結果、メモリ容量が減少し、費用が増加する。これらの欠点のために、通常のEEPROMの使用はほとんどの消費者エレクトロニクスアプリケーションにおいて禁止的なものである。
【0009】
ランダムアクセスメモリ(RAM)は、代わりとなる別の記憶手段を代表するものである。RAMは選択的なデータの読出しおよび書込みを可能にする。読出しおよび書込みはバイト単位で行われることができる。以前書き込まれたバイトに新しいデータを書込む前の消去サイクルは不要である。さらに、EEPROMとは異なり、RAMの読出しおよび書込みサイクルの時間はほぼ同じである。RAMの密度および容量はROMに匹敵する。RAMの使用における主な欠点は、記憶されたデータが揮発性の性質を有することである。RAM中に記憶された情報は、RAMがパワーダウンしたときに常に失われる。これは、ICが電力サイクル後でもメモリのコンテンツが残っている不揮発性メモリであるROMと対照的である。RAMのコンテンツを保持するために、常にチップ上において電力が維持されなければならない。このため、正常な給電に対して電池バックアップが必要である。電源が断たれているとき、電池バックアップが故障した場合、RAMのコンテンツは失われるであろう。このために、RAMは埋込まれたコードに対して使用されず、ダイナミックメモリに対してのみ使用される。RAMを埋込まれたコードに対して使用した場合、電池パワーの損失および電源不調の影響を受け易くなる。さらに、RAMを埋込まれたコードに使用した場合、セルラー電話機のような電池動作装置は、その電池寿命がRAMの定常的な電力要求のために短くなるであろう。RAMをダイナミックメモリに使用したとき、電力サイクル後にコンテンツが失われるかどうかはシステムにおいて問題ではない。これによって電池バックアップが必要でなくなる。しかしながら、RAMの費用はROMの費用より高価である。
【0010】
さらに別の記憶手段は、一般にフラッシュメモリと呼ばれるセクタEEPROMである。セクタEEPROMは、バイト単位での読出しおよび書込みを可能にする不揮発性記憶装置である。RAMとは異なり、セクタEEPROMでは、消去動作が以前書込まれたバイト上に再書込みする前に行われなければならない。しかしながら、データ消去はバイト単位で行われることはできない。消去はセクタ単位でのみ行われることができ、この場合そのセクタのサイズは選択された特定のメモリ装置によって規定される。消去可能なセクタは常に1バイトより大きく、64Kバイト程度であることができる。しかしながら、消去サイクルの数は無制限ではなく、最大サイクル寿命によって制限されている。セクタEEPROMに対する典型的な推奨消去サイクル寿命は、100,000サイクルである。したがって、予想される装置寿命にわたって100,000より多い消去サイクルを必要とする用途に対して、セクタEEPROMは使用されない。セクタEEPROMは、100,000より少い消去および再書込みサイクルを必要とする用途では他のタイプの再書込み可能なメモリにまさる利点を有する。セクタEEPROMは、それが不揮発性であるため、埋込まれたコードアプリケーションに対していずれのタイプのRAMよりも好ましい。セクタEEPROMは、回路内のメモリの部分に再書込みするセクタEEPROMの能力のためにEPROMより好ましい。セクタEEPROMはまたチップ消去に対してUV光を必要としない。セクタEEPROMは、その装置が同等の再書込み制限を有する通常のEEPROMより費用が廉価で密度が高いため好ましい。セクタEEPROMは、ユーザ構成可能なデータの不揮発性記憶のために可搬電子装置において使用される。
【0011】
【発明が解決しようとする課題】
セクタEEPROM中に記憶されたデータは、ファイルシステムに従うようにフォーマット化されることが多い。ファイルフォーマット規定はセクタサイズにされた消去サイクルで部分的に決定される。データは、セクタEEPROM中のデータが適所に再書込みされることができないので、特定の位置にメモリマップされない。ソフトウェアオーバーヘッドの追加により、結果的にメモリアクセス時間が劇的に増加する。マルチタスクシステムでは、アクセス時間がさらに増加する。マルチタスクシステムにおける不揮発性メモリのアクセスは高い優先度のタスクによって先取りされる可能性がある。先取りによって優先度の低いほうのタスクはその進行の前に優先度の高いほうのタスクの終了を待つことを要求される。ソフトウェアオーバーヘッドがアクセス時間の計算に含まれている場合、セクタEEPROMからのデータへのアクセス時間は、RAM装置中に記憶されているデータへのアクセス時間より1000乃至10,000倍長い。
【0012】
長いアクセス時間のためにユーザインターフェース問題が生じる。無線電話機のような可搬電子装置において、不揮発性のユーザ構成可能データは、セクタEEPROM中に記憶されることが多い。電話帳データへのアクセスが瞬時に行われたように見える場合、ユーザインターフェースの性能が高められている。セクタEEPROMからデータを検索すると、電話帳中のエントリと比較して、ユーザが電話番号を入力したときのユーザの応答が遅くなる。これは、セクタEEPROMからデータを検索するために初期化されなければならないファイルシステムを処理しているソフトウェアオーバーヘッドのためである。長いアクセス時間遅延は、データ検索が予め定められたある時間ウインドウ内で行われなければならない実時間システムにおいて深刻な問題を発生させる。
【0013】
セクタEEPROMまたはその他任意の不揮発性メモリの長いアクセス時間に対する1つの解決方法は、不揮発性データ記録からRAMに全てのデータを転送することである。データ記録は、装置のパワーアップ時に不揮発性RAMから転送されることができる。その後、全てのデータがRAMから迅速に検索されることができる。これによって、ユーザインターフェースの性能が著しく向上する。しかしながら、この解決方法はその費用が著しく高額であり、スペース的にも欠点を有する。ユーザインターフェースの性能向上のみのために不揮発性メモリのコンテンツを冗長に記憶するRAMが追加される必要がある。不揮発性メモリ中に記憶されているデータへのアクセス時の高速ユーザインターフェースを維持するために必要なRAM量を減少させる方法および装置が必要とされている。
【0014】
【課題を解決するための手段】
本発明は、低速の不揮発性メモリからの高速のデータ検索をサポートするために必要とされるRAM量を減少させる新しい改善された方法および装置である。不揮発性メモリの代わりにRAMを使用することにより、データサーチ時間が大幅に減少される。RAMアクセスは、不揮発性メモリがアクセスされるたびに行われなければならないソフトウェアオーバーヘッドにより不揮発性メモリアクセスより数桁高速である。
【0015】
データ記録の集合は、不揮発性メモリ中に保存されることができる。不揮発性データ記録へのアクセスは、不揮発性メモリアクセスに関連したソフトウェアオーバーヘッドのために低速である。本発明は不揮発性メモリ中に保存されているデータ記録のサーチの性能を大幅に向上させるために使用されることができる。不揮発性メモリ中に保存されているデータ記録がサーチされなければならないとき、不揮発性メモリへの種々のアクセスが典型的に必要とされる。本発明は、RAM中の予め定められた位置に一連の計算されたタグ値を保存することによって不揮発性データ記録へのアクセスの数を減少させる。不揮発性メモリ中に保存されたデータ記録のサーチは、対応したタグ値を求めて予め定められたRAM位置よってサーチし、その後、整合したタグ値が見出された場合に不揮発性データ記録をルックアップすることによって行われる。RAM中の整合したタグ値をサーチすることにより、整合したデータ記録をサーチするために必要とされる典型的な不揮発性メモリアクセス数が1に減少する。これは、多くの不揮発性の記録の検索、および不揮発性データ記録の通常のサーチで必要とされる比較と対照的である。
【0016】
RAMにおいて予め定められた数のメモリ位置が割当てられ、それは不揮発性メモリ中に保存されているデータ記録の数に対応している。RAMにおいて割当てられた各メモリ位置は、不揮発性メモリ中に保存されているデータ記録を保持するのに十分な大きさのものでなくてもよい。好ましい実施形態において、RAMの2バイトが不揮発性メモリ中の各データ記録位置に割当てられる。不揮発性データ記録は随意の長さのものであってよい。タグ関数H(x)は、各不揮発性記録を対応したタグ値にマッピングするものと定義される。タグ関数H(x)はタグ値に対するデータ記録の1:1マッピングを行う必要はない。タグ値に対するデータ記録の1:1マッピングは不揮発性メモリアクセスの数を、データ記録サーチ当り1回の不揮発性記録アクセスに最小にする。
【0017】
予め定められたRAM位置は、対応した不揮発性データ記録のコンテンツから決定されたタグ値を保持する。特定のデータ記録のサーチが必要とされたとき、タグ値がサーチされた記録に対して計算される。サーチされた記録がyで示された場合、タグ値H(y)が計算される。その後、タグ値H(y)は、予め定められたRAM位置中に記憶されている全てのタグ値と比較される。このステップは、RAMの高速のアクセス能力によって非常に迅速に行われる。RAM中に整合タグ値が見出された場合、対応した不揮発性メモリ位置は、特定のRAM位置に対応したその位置として識別される。不揮発性データ記録のコンテンツは検索され、サーチされた記録と比較される。両者が整合した場合、サーチは終了する。検索された不揮発性メモリ記録とサーチされた記録が整合しない場合、サーチされた記録に対して計算されたタグ値への付加的な整合を求めてRAM中の残りのタグ値がサーチされる。サーチは、同じ整合が見出されるか、あるいはRAMタグ値の最後のものに達するまで続けられる。
【0018】
本発明は、大部分のサーチがRAMタグ表を使用して行われるため、データ記録のサーチに要する時間量を著しく減少させる。不揮発性メモリ記録は、タグ値整合が見出されたときにのみアクセスされる。大部分のサーチに対して、1回の不揮発性メモリアクセスが行われるだけでよい。時間の節約によりユーザインターフェース性能の向上が可能となり、一方でRAMの減少によりハードウェア費用が減少する。
【0019】
【発明の実施の形態】
以下の詳細な説明および添付図面から、本発明の特徴、目的および利点がさらに明らかになる。なお、図面において同じ参照符号が一貫して対応的に使用されている。
電子装置中のメモリおよび記憶装置は、予測される需要に応じて割当てられる。無線電話機のような電子装置において、メモリは典型的に不揮発性メモリおよびRAMの形態である。不揮発性メモリはPROMと不揮発性セクタEEPROMの組合せであってもよい。この技術において一般に知られている不揮発性セクタEEPROMのタイプはフラッシュメモリである。
【0020】
フラッシュメモリを使用した場合の利点の1つは、その電子的に消去されて再書込みされる能力である。上述されたフラッシュメモリの欠点の1つは、データを適切に更新することができないことである。全セクタは同時に消去されなければならない。フラッシュメモリのスペースの使用効率を最大にするために、フラッシュメモリ中に保存されたデータは特定の位置にメモリマップされるのではなく、むしろ、それはファイルベースの記憶システムを使用して保存される。それとは対照的に、RAM中に記憶されたデータは適切に更新されることができ、また、これによってメモリマップに割当てられることが可能である。
【0021】
図1は、無線電話機10のような電子装置のメモリ20の構造のブロック図を示している。メモリ20中に保存されている全てのデータは、データベース110 内において管理されている。性質的に揮発性または一時的なデータは、RAM120 中に保存される。RAM120 中のデータは、それが適切に更新されることができるため、メモリマップに割当てられることが可能である。しかしながら、種々の長さまたは位置を有するデータの別の一部は、ファイルシステム130 を使用して管理される。ファイルシステム130 は、ファイルベースのデータのフォーマット、位置およびサイズを決定するソフトウェアルーチンである。ファイルベースの構造をそれのデータとして使用する装置の1つは不揮発性メモリ140 である。不揮発性メモリ140 中に保存されている全てデータは最初に、ファイルシステム130 においてフォーマット化されなければならない。不揮発性メモリ140 をファイルシステム130 の下層にすることによって、不揮発性メモリ140 中に保存されているデータへのアクセスがさらに遅延される。不揮発性メモリ140 中に記憶されているデータへのアクセスの遅延は、データがユーザインターフェースの一部分として不揮発性メモリから検索されなければならない場合、望ましくない遅延を生じさせる可能性が高い。無線電話機において一般に利用可能なデータを使用する一例は、ユーザにより作成された電話帳のサーチである。
【0022】
無線電話機には典型的に、ユーザにより作成された電話帳エントリを保存する能力がある。ユーザは典型的に、不揮発性メモリ内に保存された電子電話帳中に100件を超える電話番号および対応した名前を持っている可能性が高い。実際のエントリ数は、設計者が電話帳に割当てることを同意したメモリスペースの量によってのみ制限される。電話番号および名前はそれぞれ、不揮発性メモリ中に保存されるデータ記録を構成している。各電話番号は32までの文字長であることができる。この長さによってエリアコード、内線拡張(internal phone extension)、アクセスコードおよび個人識別番号が、指定された番号として自動的にダイヤルされることが可能となる。1つの名前に対して任意の文字数が割当てられることができるが、便宜上32文字長が仮定される。512の組合せられた電話番号と名前のエントリが可能であると仮定した場合、16Kの不揮発性メモリが割当てられなければならない。ユーザが電話番号または名前を入力し、対応した保存された情報を求めて電話帳をサーチすることを望んだ場合、不揮発性メモリ内に保存されたデータ記録がサーチされなければならない。
【0023】
不揮発性メモリ内に保存されたデータ記録はファイルシステム130 によってのみ読出されることができる。ファイルシステム130 はデータベース110 の下の層である。不揮発性メモリの上部のマルチプル層にアクセスすることは、不揮発性メモリ中に記憶されているデータ記録へのアクセスに大幅な遅延を生じさせる。通常のサーチルーチン中、データ記録は不揮発性メモリから検索され、入力データと比較される。両者が整合した場合、その整合に対応したデータ記録が見出される。両者が整合しなかった場合、最初に検索されたデータ記録は廃棄され、次のデータ記録が不揮発性メモリから検索される。不揮発性メモリからのデータ記録の検索および入力データとの比較は、整合が見出されるまで、あるいは不揮発性メモリ中の全ての記録がサーチされるまで続けられる。データ記録を不揮発性メモリから検索する前に横断されなければならないマルチプル層は、遅延に大きく影響する。入力データが不揮発性メモリ中に保存されている非常に多数の内容と比較されなければならない場合、遅延はユーザインターフェースにとって過度に長いものとなる。名前または電話番号を入力し、そのエントリに関する記憶されている情報の検索を望んだユーザは長時間は待てないと予想される。ユーザインターフェースはユーザにとってシームレスで瞬時のものに思われる必要がある。
【0024】
不揮発性メモリのデータ記録のサーチに関連した速度を増加させる1つの方法は、サーチをRAMにおいて行うことである。RAM中に保存されているデータ記録へのアクセス時間は、不揮発性メモリから等価なデータ記録を検索するためのアクセス時間より数桁速い。アクセス時間の差は、ファイルシステムのためであると考えることができる。RAMは、データ記録がファイルシステムの下でフォーマット化され、アクセスされることを必要としない。不揮発性メモリの代わりにRAMにおいてサーチを行うために、全ての不揮発性メモリのデータ記録はRAMに転送されることができる。したがって、サーチが必要とされたとき、データ記録は全てRAMにおいて利用可能である。この実施形態には、不揮発性メモリにおいて利用できるデータ記録を冗長的に記憶するだけのために大量のRAMを使用するという欠点がある。付加的なRAMの費用および物理的サイズの増大のために、この解決方法は、無線電話機のような可搬電子装置において実施するには理想的なものとはいえない。
【0025】
図2のAには別の実施形態が示されており、この実施形態は、不揮発性メモリ中に記憶されたデータ記録のサーチ時間を改善するが、不揮発性メモリのコンテンツ全体をRAM中に保存することを必要としない。図2のAにおいて、不揮発性メモリ中に保存されたデータ記録を保持するためにRAMは使用されない。その代りに、RAMハッシュビン220 がRAM中に規定される。元の不揮発性(NV)記録210 のそれぞれはハッシュ関数に入力される。入力NV記録210 に対するポインタは、出力ハッシュ番号に対応したRAMハッシュビン220 中に記憶される。ハッシュ関数では、RAMハッシュビン220 に対するNV記録210 の1:1マッピングを行う必要がない。しかしながら、ハッシュ関数の選択はアクセス速度と引き換えにRAMハッシュビン220 の数とトレードオフする。ハッシュ関数マッピングが特有になると、それだけ一層RAMハッシュビン220 に対して必要とされるスペースが大きくなる。特有のハッシュ関数マッピングの利点は、整合を求めてNV記録210 をサーチした場合の不揮発性メモリへのアクセス数が減少することである。
【0026】
図2Aに示されている実施形態は次のように行われる。電子装置を初期化したとき、NV記録210 はそれぞれハッシュ関数に入力される。初期化は、電子装置に対する任意の事象として定義されることができる。無線電話機における初期化はパワーアップとして定義される。ハッシュ関数の一例を次の式で示す:
【数1】
この式において、xi はハッシュ関数に入力された特定のNVデータ記録中のi番目のバイトを表す。yi は、特定のNVデータ記録中のiバイトを処理した後のハッシュ関数の出力を表す。数Nは、各NVデータ記録エントリを含むバイトの数を表す。各NVデータ記録は上述の例では32バイト長である。上記の例においてデータ記録長はN=32として示される。実際の実施形態では、計算は整数を使用して行われる。入力から出力へのマッピングは、整数計算が使用される場合、1:1ではないことが認識されることができる。
【0027】
ハッシュ関数出力は規定されたRAMハッシュビン220 の範囲内に入る。ハッシュ関数への入力として使用されたNV記録に対するポインタ222 は、RAMハッシュビン220 中に保存される。ポインタが記憶のために使用するメモリスペースはデータ記録より少い。典型的に、4バイトがポインタに割当てられる。512のエントリを有する不揮発性データ記録に関して、ポインタを全て収容するために2Kのメモリが必要である。これによって、RAMメモリスペースの可能な節約が得られる。
【0028】
各ハッシュビンには、2以上のポインタ222 を保存する能力がある。これは、ハッシュ関数においては出力に対する入力の1:1マッピングが行われないために必要である。ハッシュ関数に1:1マッピングが欠如しているために、RAMメモリ割当てに関する問題が生じる。各ハッシュビンがおそらくただ1つのポインタを有することを保証するために、非常に多くのハッシュビンが規定される必要がある。規定されたハッシュビンの数が少い場合、各ハッシュビンが多くのポインタを記憶する必要がある可能性がある。
【0029】
設計者は、64Kのハッシュビンが規定された場合に各ハッシュビンがその中に1つのポインタだけを有することを保証することができる。データ記録の全てを識別するのに2Kのポインタがあればよいため、明らかに、大多数のハッシュビンが空ポインタを含むこととなる。不揮発性データ記録の全てをRAM中にロードするより大量のRAMスペースが64Kのハッシュビンの割当てに必要であることは明らかである。したがって、この解決方法は実用不可能である。必要とされるRAMを減少させるために、設計によって64K未満のハッシュビンが割当てられる。しかしながら、ハッシュビンの数を減少することにより、任意の1つのハュビンが2以上のポイタン値を含む可能性が必然的に高くなる。
【0030】
ある入力データへのデータ記録整合を見出すために、入力データは最初にハッシュ関数を通過させられる。その後、ハッシュ関数の出力によりサーチルーチンは特定のハッシュビンに導かれる。ハッシュビンに記憶されるポインタが1つもない場合、不揮発性データ記録中で見出される整合は1つもない。通常のサーチでは、1つの整合も存在しないと決定する前に、不揮発性メモリ中のデータ記録の全てが検索されて入力と比較される必要がある。ハッシュビン方法を使用することにより、1つの整合も存在しないと決定する前に、不揮発性メモリへのアクセスは行われる必要がない。
【0031】
ハッシュビン中に記憶されるポインタが存在している場合、最初のポインタはハッシュビンから検索され、そのポインタが示すNV記録が検索される。その後、入力と検索されたデータ記録との間で全比較が行われる。両者が同じである場合、整合が見出され、残りの関連したデータ記録が検索されることができる。検索されたデータ記録が整合しない場合、ハッシュビン中に次のポインタが存在するならば、それが検索されなければならない。比較が行われ、整合が見出されるか、あるいはハッシュビンポインタにより示される不揮発性データ記録全ての比較がなされるまで、ハッシュビンからのポインタの検索が繰返される。
【0032】
前の実施形態では、不揮発性メモリに対して多数のアクセスが行われる可能性がある。不揮発性メモリへのアクセスの数は、各ハッシュビン中に記憶されるポインタの数に依存する。必要とされるハッシュビンの数は、ハッシュ関数に関連している。特有のハッシュビンの数を増やすことにより、不揮発性メモリへのアクセス数が減少する。不揮発性メモリへのアクセス数の減少は、必要とされるRAMの増加という犠牲の下に成立する。
【0033】
本発明は、データ記録をサーチする回数を減少させると共に必要とされるRAMを減少させる構成を使用する。図2のBには本発明のブロック図が示されている。本発明において、NV記録210 は上述したようにデータ記録の集合を含んでいる。しかしながら、RAMにおいてハッシュビンを規定する代りに、RAMにおいてメモリのブロックがタグ値230 に割当てられる。はじめの例において説明したように、不揮発性メモリ中に保存された各データ記録は32文字長である。512の利用可能な記録が不揮発性メモリにおいて割当てられる。これはメモリの16Kに対応する。本発明はRAMスペースの2バイトを不揮発性メモリ中の各データ記録に割当てる。512のデータ記録に適合するために、RAMの1Kバイトが割当てられる必要がある。各不揮発性メモリ記録に割当てられるRAMのバイト数は一定なので、対応した不揮発性データ記録に対してRAMアドレス位置が割当てられることができる。一例として、最初の不揮発性データ記録はRAMにおいて割当てられる最初の2バイトに対応している。
【0034】
各不揮発性データ記録に割当てられたRAMの2バイトは、データ記録全体を保持するには不十分である。その代りに、その2バイトは、デヘータ記録に対応したタグ値を保持する。タグ値は、上述された同じハッシュ関数を使用して生成される。不揮発性メモリ中の各データ記録に対応したタグ値が計算され、RAM内の予め定められた位置に保存される。したがって、本発明は割当てられるRAMの量を最小にする。RAM中の2バイトは不揮発性データ記録のそれぞれに割当てられ、512のデータ記録が存在している。したがって、RAMの1Kだけが割当てられればよい。
【0035】
入力値が不揮発性メモリのデータ記録のコンテンツと比較される必要がある場合、入力値が最初にハッシュ関数を通過させられる。その後、出力ハッシュ値がRAM中に保存されているタグ値と比較される。整合したタグ値の位置が突きとめられた場合、そのタグ値の位置に対応した不揮発性メモリのコンテンツが検索され、元の入力値と比較される。両者が同じである場合、整合が見出される。そうでなければ、別のタグ値が整合データ記録を生成するか、あるいはタグ値リストの終りに達するまで、RAMのタグ値に対するサーチが続けられる。このようにして、ほとんどのサーチがRAMにおいて行なわれ、計算された入力タグ値が前に保存されたタグ値の1つと整合した場合にのみ不揮発性メモリがアクセスされる。ハッシュ関数が生成する複製タグ値の数がそれ程多くない場合、不揮発性メモリへのアクセス数が最小にされる。上述のハッシュ関数を使用することにより、不揮発性メモリへのアクセス数は最小となり、99%のデータサーチに対して1回である。
【0036】
図3は、本発明のフローチャートを示している。ルーチンは状態301 においてスタートする。このルーチンは、装置がパワーアップに切換えられたときは常に初期化される。無線電話機においては、ユーザが電話機をパワーアップした場合は常にこのルーチンが状態301 からスタートする。次にこのルーチンは状態304 に進み、不揮発性(NV)メモリのデータ記録の中の全てのエントリが読出される。次に状態308 において、NVメモリエントリに対するタグ値が計算される。各NVメモリエントリに対するタグ値は、上述したハッシュ関数のように関数を使用して計算される。各タグ値には2バイトが必要とされる。
【0037】
その後、ルーチンは状態310 に進み、計算されたタグ値が予め定められたRAM位置に記憶される。各RAM位置はNVメモリのデータ記録集合におけるエントリに対応する。一例として、RAMタグ値表における6番目のエントリは、そのエントリが実際にはNVメモリのどこに位置しているかにかかわらず、NVメモリデータ記録における6番目のエントリに対応した絶対アドレスである。
【0038】
タグ値がRAM中に保存された後、データ記録のサーチは主としてRAMにおいて行なわれることができる。状態320 は、エントリ“y”がデータ記録のコンテンツと比較される必要があることを想定する。無線電話機のような電子装置において、エントリ“y”はユーザにより入力される電話番号に対応することが可能である。データ記録コンテンツは、特定の電話番号に関連した名前および情報に対応する。ユーザは電話番号を入力し、その番号に関して以前記憶された情報の全てを検索することを所望することができる。
【0039】
サーチの第1のステップは状態322 において行なわれ、この状態322 において入力“y”に対応したタグ値が計算される。状態324 において、サーチで使用されたインデックスカウンタが初期化される。次にフローチャートはポイント330 に進む。このポイント330 はフローチャートの機能的要素ではなく、図3のフローチャートの状態と図4のフローチャートの状態とを結びつけるために示されているに過ぎない。
【0040】
図4は、図3のフローチャートと図4のフローチャートとを結びつけるポイント330 からスタートする。ルーチンはこのポイント330 から状態340 に進む。状態340 において、ルーチンは、インデックスカウンタにより識別される位置に対応している以前保存されたタグ値をRAMから検索する。次にルーチンは状態344 に進み、ここにおいて、エントリ“y”に対応したタグ値は検索されたRAMのタグ値と比較される。検索および比較動作は非常に迅速に行なわれる。これは、タグ値の長さが2バイトに過ぎず、全ての値がRAM中に存在しているためである。ルーチンにより2つのタグ値は整合しないと決定された場合、ルーチンは状態354 に進み、この状態354 において、入力タグ値と比較される必要のあるタグエントリがRAM中に存在するかどうかを調べるためのチェックが行なわれる。状態354 において、比較されていないRAM中のタグ値をルーチンが識別した場合、ルーチンは状態358 に進み、インデックスカウンタをインクリメントする。インデックスカウンタがインクリメントされた後、ルーチンは状態340 に戻り、インデックスカウンタにより識別された次のタグ値を検索する。
【0041】
その代わりに、状態354 において、エントリタグ値と比較されていないRAM中のタグ値は1つもないことがルーチンにより決定された場合、ルーチンは状態362 に進み、ここで、ルーチンは、入力エントリに整合するデータ記録はメモリ中に1つも存在しないと推断する。その後、ルーチンは終了する。入力エントリに対するタグ値に整合するタグ値が1つもない場合、必然的にその入力エントリに整合するデータ記録は1つも不揮発性メモリ中に記憶されていない。本発明では、この状況において不揮発性メモリへのアクセスは行われない。したがって、不揮発性メモリにアクセスすることなく、サーチによって不揮発性データ記録の整合は1つもないと決定されることができる。
【0042】
その代わり、ルーチンにより状態344 において、検索されたタグ値が入力エントリタグ値と整合すると決定された場合、ルーチンは状態348 に進む。この状態348 において、ルーチンは、RAMから以前検索された整合したタグ値に対応したデータ記録を不揮発性メモリから検索する。したがって、不揮発性メモリ中に保存されているデータ記録は、そのデータ記録に対するタグ値が入力エントリのタグ値に整合した場合にのみアクセスされる。
【0043】
実際のデータ記録が不揮発性メモリから検索されると、ルーチンは状態350 に進み、全記録の比較を行う。ハッシュ関数ではデータ記録からタグ値に対する1:1マッピングが行われないため、全記録の比較が要求される。入力エントリおよび不揮発性データ記録は同じタグ値を生成しない可能性があるが、実際のデータ記録は整合を実際に確認するために比較されなければならない。
【0044】
検索された不揮発性メモリデータ記録が入力エントリに整合した場合、成功的なサーチが行われている。これ以上サーチルーチンを続ける理由がないので、ルーチンは終了し、サーチすべき新しい入力エントリを待つ。
【0045】
状態350 において、検索された不揮発性メモリデータ記録が入力エントリに整合しないとルーチンにより決定された場合、ルーチンは上述したように、状態354 に進んで、全てのRAMタグ値がサーチされたか否かを決定する。
【0046】
図3および4のフローチャートには、低速の不揮発性メモリ中に記憶されたデータ記録の高速サーチを援助するために最小量のRAMがどのようにして使用されることができるかが示されている。不揮発性メモリデータ記録のコンテンツ全体をRAM中にロードするのではなく、1組のタグ値だけがRAM中にロードされる。入力エントリを求めてデータ記録がサーチされる必要が生じたとき、最初にその入力エントリは、RAM中に保存されたタグ値を生成するために以前使用された同じハッシュ関数を使用してタグ値を生成するために使用される。その後、入力エントリタグ値はRAM中に保存されているタグ値と連続的に比較される。整合したタグ値が見出された場合、対応したデータ記録は不揮発性メモリから検索される。したがって、不揮発性メモリは、整合したデータ記録が検索される可能性が高い場合にのみアクセスされる。その後、不揮発性メモリから検索されたデータ記録は入力エントリと比較される。2つの記録は同じタグ値を生成するため、整合が得られる可能性は高い。しかしながら、検索されたデータ記録と入力エントリとが整合しなかった場合、その入力エントリのタグ値に整合する任意の他のタグ値を求めてRAMタグ値表の残りのものがサーチされる。ハッシュ関数ではタグ値に対する入力の1:1マッピングはほとんど行われないため、典型的に不揮発性メモリはサーチ当り1回だけアクセスされる。このようにして、不揮発性メモリに対するアクセス数が最小にされ、一方本発明を実施するために必要なRAM量が最小にされる。
【0047】
上記の好ましい実施形態の説明は、当業者が本発明を形成または使用することを可能にするために示されたものである。当業者はこれらの実施形態に対する種々の修正を容易に認識し、ここに規定されている一般原理は発明力を要することなく別の実施形態に適用されることができる。したがって、本発明はここに示されている実施形態に制限されず、ここに開示されている原理および新しい特徴との広い適用範囲の一致に従うものである。
【図面の簡単な説明】
【図1】
積層にされたメモリ構造のブロック図。
【図2】
NVメモリテーブルのRAMベースのルックアップの実施を示すブロック図。
【図3】
本発明のRAM構成のフローチャート。
【図4】
本発明のRAM構成のフローチャート。
【発明の属する技術分野】
本発明は、電子回路に関する。とくに、本発明は、低速の不揮発性メモリからのデータの高速ルックアップおよび検索を維持しながら、装置において必要とされるRAMが減少される新しい改善された方法および装置に関する。
【0002】
【従来の技術】
あるタイプの電子メモリは、最新の電子装置のほとんど全てにおいて使用されている。電子メモリはフロッピーディスク、磁気テープ、ハードディスクおよび集積回路(IC)の形態をとることができる。各形態のメモリにはそれぞれ利点と欠点がある。フロッピーディスクは可搬の媒体上で多くのデータ更新を可能にするが、その容量は限られており、読出しおよび書込みアクセス時間が著しく長い。磁気テープおよびハードディスクの両者は非常に大きい容量を有しているが、非可搬性であり、大量のサポートハードウェアを必要とし、その読出しおよび書込みアクセスは低速である。フロッピーディスク、ハードディスクおよび磁気テープ中に保存されているデータは最初に、媒体上に保存される前にソフトウェアでファイルフォーマットにフォーマット化される。データが記憶媒体から再生されるとき、リクエストされたデータの位置を突きとめて抽出するようにソフトウェアファイルルーチンが実行されなければならない。これのためにデータアクセスプロセスがさらに遅くなる。それは、このプロセスがすでに低速であるハードウェアアクセスの上位にソフトウェア層を付け加えるためである。
【0003】
メモリが可搬装置中に集積される必要がある場合、典型的にICメモリが使用される。さまざまなタイプおよび個数のICがメモリの量をスケールすることができる。ICには最小のサポートハードウェアがあればよく、ICは非常に小型であり、高速読出しおよび書込みアクセスを行うことができる。あるICメモリは、ソフトウェア層を必要とせずに直接アクセスを容易にサポートすることができる。
【0004】
種々の設計要求に対するソリューションを提供するために種々の異なったタイプのICメモリが利用可能である。それぞれのタイプのメモリが多くの設計要求を満足させることができているが、完全な設計ソリューションを提供するメモリタイプは存在しない。任意の特定のアプリケーションに対して選択されるメモリのタイプは、計画された使用および性能の設計トレードオフに依存する。
【0005】
最も一般的なタイプのICメモリは、読出し専用メモリ(ROM)である。その名称が意味するように、このメモリは読出しアクセスのみ可能である。ROM装置は、それがプログラムされると、再度書込みを行われることはできない。埋込まれたソフトウェアアプリケーションは、埋込まれたコードおよびデータ記録を記憶するためにROMを使用する。埋込まれたソフトウェアアプリケーション内のプロセッサは各命令をROMから検索し、それを実行する。ROM内にプログラムされる情報の揮発性に応じて、異なったタイプのROMが利用可能である。ROM中に記憶されるべき情報が変更されないと予測され、予測されるデバイス量が大きい場合、マスクプログラム可能なROMが使用される。このタイプのROMはダイのパッケージ前にマスクプログラムされる。プログラムされる情報は非常に安定していなければならず、かつ改訂をなされてはならない。これは、プログラムされた情報の変更にはマスク変更が必要とされるためである。マスクプログラムされたROMを使用する利点は、多量の完成した製品のために費用および時間が節約されることである。別のタイプのROMは、マスクプログラムされたROMを正当化するのに十分な生産量またはコード安定性を一様に保たない製品に対して利用可能である。
【0006】
プログラム可能な読出し専用メモリ(PROM)は、装置製造業者が埋め込まれたコードをプログラムすることを可能にする。これによってコードの改訂は可能になるが、しかしROMは、それがプログラムされると、依然として修正または消去は不可能である。旧式のコード改訂によりプログラムされた装置は、その旧式のコード改訂により使用されるか、あるいは廃棄されるかのいずれかを行うことが必要となる。
【0007】
消去可能なプログラム可能な読出し専用メモリ(EPROM)は、プログラムされた部分を完全に消去する能力を提供する。EPROMの消去は、予め定められた時間中ダイを紫外線(UV)光に露出することにより行われる。ダイはパッケージ上の透明なウインドウを通してUV光に露出されることができる。EPROMは一度消去されると、再度プログラムされることが可能である。EPROMは典型的に、予測されるコード改訂数が多い技術開発にしか使用されない。EPROMは、透明ウインドウに適合することのできるパッケージタイプで制限されるためにPROMと比較してはるかに高価である。EPROMは消去され、再度プログラムされることが可能であるが、コードへの修正は完全にチップの単位で行われなければならない。コード内の変更には、それがたとえ1ビットであっても、完全な消去および再プログラミングが必要である。この制限のために、消去のためのUV光への要求と共に、EPROMを更新するタスクがもとの装置製造会社(OEM)に限られてしまう。
【0008】
選択的なコンテンツ消去および再プログラミングを可能にする装置は、電気的に消去可能なプログラム可能な読出し専用メモリ(EEPROM)である。通常のEEPROMは、データが適切に更新されることを可能にする。すなわち、特定のデータ位置が消去され、その同じ位置に新しいデータが重書きされることができる。データはEEPROMから迅速に読出されることができるが、通常のEEPROMの書込みサイクルは、読出しより数桁長い時間を要する。通常のEEPROMを使用する別の欠点は、通常のEEPROMセルの固有の構造のために発生する。通常のEEPROMセルの構造には、標準的なPROMより多くのトランジスタが必要である。構造が増加した結果、メモリ容量が減少し、費用が増加する。これらの欠点のために、通常のEEPROMの使用はほとんどの消費者エレクトロニクスアプリケーションにおいて禁止的なものである。
【0009】
ランダムアクセスメモリ(RAM)は、代わりとなる別の記憶手段を代表するものである。RAMは選択的なデータの読出しおよび書込みを可能にする。読出しおよび書込みはバイト単位で行われることができる。以前書き込まれたバイトに新しいデータを書込む前の消去サイクルは不要である。さらに、EEPROMとは異なり、RAMの読出しおよび書込みサイクルの時間はほぼ同じである。RAMの密度および容量はROMに匹敵する。RAMの使用における主な欠点は、記憶されたデータが揮発性の性質を有することである。RAM中に記憶された情報は、RAMがパワーダウンしたときに常に失われる。これは、ICが電力サイクル後でもメモリのコンテンツが残っている不揮発性メモリであるROMと対照的である。RAMのコンテンツを保持するために、常にチップ上において電力が維持されなければならない。このため、正常な給電に対して電池バックアップが必要である。電源が断たれているとき、電池バックアップが故障した場合、RAMのコンテンツは失われるであろう。このために、RAMは埋込まれたコードに対して使用されず、ダイナミックメモリに対してのみ使用される。RAMを埋込まれたコードに対して使用した場合、電池パワーの損失および電源不調の影響を受け易くなる。さらに、RAMを埋込まれたコードに使用した場合、セルラー電話機のような電池動作装置は、その電池寿命がRAMの定常的な電力要求のために短くなるであろう。RAMをダイナミックメモリに使用したとき、電力サイクル後にコンテンツが失われるかどうかはシステムにおいて問題ではない。これによって電池バックアップが必要でなくなる。しかしながら、RAMの費用はROMの費用より高価である。
【0010】
さらに別の記憶手段は、一般にフラッシュメモリと呼ばれるセクタEEPROMである。セクタEEPROMは、バイト単位での読出しおよび書込みを可能にする不揮発性記憶装置である。RAMとは異なり、セクタEEPROMでは、消去動作が以前書込まれたバイト上に再書込みする前に行われなければならない。しかしながら、データ消去はバイト単位で行われることはできない。消去はセクタ単位でのみ行われることができ、この場合そのセクタのサイズは選択された特定のメモリ装置によって規定される。消去可能なセクタは常に1バイトより大きく、64Kバイト程度であることができる。しかしながら、消去サイクルの数は無制限ではなく、最大サイクル寿命によって制限されている。セクタEEPROMに対する典型的な推奨消去サイクル寿命は、100,000サイクルである。したがって、予想される装置寿命にわたって100,000より多い消去サイクルを必要とする用途に対して、セクタEEPROMは使用されない。セクタEEPROMは、100,000より少い消去および再書込みサイクルを必要とする用途では他のタイプの再書込み可能なメモリにまさる利点を有する。セクタEEPROMは、それが不揮発性であるため、埋込まれたコードアプリケーションに対していずれのタイプのRAMよりも好ましい。セクタEEPROMは、回路内のメモリの部分に再書込みするセクタEEPROMの能力のためにEPROMより好ましい。セクタEEPROMはまたチップ消去に対してUV光を必要としない。セクタEEPROMは、その装置が同等の再書込み制限を有する通常のEEPROMより費用が廉価で密度が高いため好ましい。セクタEEPROMは、ユーザ構成可能なデータの不揮発性記憶のために可搬電子装置において使用される。
【0011】
【発明が解決しようとする課題】
セクタEEPROM中に記憶されたデータは、ファイルシステムに従うようにフォーマット化されることが多い。ファイルフォーマット規定はセクタサイズにされた消去サイクルで部分的に決定される。データは、セクタEEPROM中のデータが適所に再書込みされることができないので、特定の位置にメモリマップされない。ソフトウェアオーバーヘッドの追加により、結果的にメモリアクセス時間が劇的に増加する。マルチタスクシステムでは、アクセス時間がさらに増加する。マルチタスクシステムにおける不揮発性メモリのアクセスは高い優先度のタスクによって先取りされる可能性がある。先取りによって優先度の低いほうのタスクはその進行の前に優先度の高いほうのタスクの終了を待つことを要求される。ソフトウェアオーバーヘッドがアクセス時間の計算に含まれている場合、セクタEEPROMからのデータへのアクセス時間は、RAM装置中に記憶されているデータへのアクセス時間より1000乃至10,000倍長い。
【0012】
長いアクセス時間のためにユーザインターフェース問題が生じる。無線電話機のような可搬電子装置において、不揮発性のユーザ構成可能データは、セクタEEPROM中に記憶されることが多い。電話帳データへのアクセスが瞬時に行われたように見える場合、ユーザインターフェースの性能が高められている。セクタEEPROMからデータを検索すると、電話帳中のエントリと比較して、ユーザが電話番号を入力したときのユーザの応答が遅くなる。これは、セクタEEPROMからデータを検索するために初期化されなければならないファイルシステムを処理しているソフトウェアオーバーヘッドのためである。長いアクセス時間遅延は、データ検索が予め定められたある時間ウインドウ内で行われなければならない実時間システムにおいて深刻な問題を発生させる。
【0013】
セクタEEPROMまたはその他任意の不揮発性メモリの長いアクセス時間に対する1つの解決方法は、不揮発性データ記録からRAMに全てのデータを転送することである。データ記録は、装置のパワーアップ時に不揮発性RAMから転送されることができる。その後、全てのデータがRAMから迅速に検索されることができる。これによって、ユーザインターフェースの性能が著しく向上する。しかしながら、この解決方法はその費用が著しく高額であり、スペース的にも欠点を有する。ユーザインターフェースの性能向上のみのために不揮発性メモリのコンテンツを冗長に記憶するRAMが追加される必要がある。不揮発性メモリ中に記憶されているデータへのアクセス時の高速ユーザインターフェースを維持するために必要なRAM量を減少させる方法および装置が必要とされている。
【0014】
【課題を解決するための手段】
本発明は、低速の不揮発性メモリからの高速のデータ検索をサポートするために必要とされるRAM量を減少させる新しい改善された方法および装置である。不揮発性メモリの代わりにRAMを使用することにより、データサーチ時間が大幅に減少される。RAMアクセスは、不揮発性メモリがアクセスされるたびに行われなければならないソフトウェアオーバーヘッドにより不揮発性メモリアクセスより数桁高速である。
【0015】
データ記録の集合は、不揮発性メモリ中に保存されることができる。不揮発性データ記録へのアクセスは、不揮発性メモリアクセスに関連したソフトウェアオーバーヘッドのために低速である。本発明は不揮発性メモリ中に保存されているデータ記録のサーチの性能を大幅に向上させるために使用されることができる。不揮発性メモリ中に保存されているデータ記録がサーチされなければならないとき、不揮発性メモリへの種々のアクセスが典型的に必要とされる。本発明は、RAM中の予め定められた位置に一連の計算されたタグ値を保存することによって不揮発性データ記録へのアクセスの数を減少させる。不揮発性メモリ中に保存されたデータ記録のサーチは、対応したタグ値を求めて予め定められたRAM位置よってサーチし、その後、整合したタグ値が見出された場合に不揮発性データ記録をルックアップすることによって行われる。RAM中の整合したタグ値をサーチすることにより、整合したデータ記録をサーチするために必要とされる典型的な不揮発性メモリアクセス数が1に減少する。これは、多くの不揮発性の記録の検索、および不揮発性データ記録の通常のサーチで必要とされる比較と対照的である。
【0016】
RAMにおいて予め定められた数のメモリ位置が割当てられ、それは不揮発性メモリ中に保存されているデータ記録の数に対応している。RAMにおいて割当てられた各メモリ位置は、不揮発性メモリ中に保存されているデータ記録を保持するのに十分な大きさのものでなくてもよい。好ましい実施形態において、RAMの2バイトが不揮発性メモリ中の各データ記録位置に割当てられる。不揮発性データ記録は随意の長さのものであってよい。タグ関数H(x)は、各不揮発性記録を対応したタグ値にマッピングするものと定義される。タグ関数H(x)はタグ値に対するデータ記録の1:1マッピングを行う必要はない。タグ値に対するデータ記録の1:1マッピングは不揮発性メモリアクセスの数を、データ記録サーチ当り1回の不揮発性記録アクセスに最小にする。
【0017】
予め定められたRAM位置は、対応した不揮発性データ記録のコンテンツから決定されたタグ値を保持する。特定のデータ記録のサーチが必要とされたとき、タグ値がサーチされた記録に対して計算される。サーチされた記録がyで示された場合、タグ値H(y)が計算される。その後、タグ値H(y)は、予め定められたRAM位置中に記憶されている全てのタグ値と比較される。このステップは、RAMの高速のアクセス能力によって非常に迅速に行われる。RAM中に整合タグ値が見出された場合、対応した不揮発性メモリ位置は、特定のRAM位置に対応したその位置として識別される。不揮発性データ記録のコンテンツは検索され、サーチされた記録と比較される。両者が整合した場合、サーチは終了する。検索された不揮発性メモリ記録とサーチされた記録が整合しない場合、サーチされた記録に対して計算されたタグ値への付加的な整合を求めてRAM中の残りのタグ値がサーチされる。サーチは、同じ整合が見出されるか、あるいはRAMタグ値の最後のものに達するまで続けられる。
【0018】
本発明は、大部分のサーチがRAMタグ表を使用して行われるため、データ記録のサーチに要する時間量を著しく減少させる。不揮発性メモリ記録は、タグ値整合が見出されたときにのみアクセスされる。大部分のサーチに対して、1回の不揮発性メモリアクセスが行われるだけでよい。時間の節約によりユーザインターフェース性能の向上が可能となり、一方でRAMの減少によりハードウェア費用が減少する。
【0019】
【発明の実施の形態】
以下の詳細な説明および添付図面から、本発明の特徴、目的および利点がさらに明らかになる。なお、図面において同じ参照符号が一貫して対応的に使用されている。
電子装置中のメモリおよび記憶装置は、予測される需要に応じて割当てられる。無線電話機のような電子装置において、メモリは典型的に不揮発性メモリおよびRAMの形態である。不揮発性メモリはPROMと不揮発性セクタEEPROMの組合せであってもよい。この技術において一般に知られている不揮発性セクタEEPROMのタイプはフラッシュメモリである。
【0020】
フラッシュメモリを使用した場合の利点の1つは、その電子的に消去されて再書込みされる能力である。上述されたフラッシュメモリの欠点の1つは、データを適切に更新することができないことである。全セクタは同時に消去されなければならない。フラッシュメモリのスペースの使用効率を最大にするために、フラッシュメモリ中に保存されたデータは特定の位置にメモリマップされるのではなく、むしろ、それはファイルベースの記憶システムを使用して保存される。それとは対照的に、RAM中に記憶されたデータは適切に更新されることができ、また、これによってメモリマップに割当てられることが可能である。
【0021】
図1は、無線電話機10のような電子装置のメモリ20の構造のブロック図を示している。メモリ20中に保存されている全てのデータは、データベース110 内において管理されている。性質的に揮発性または一時的なデータは、RAM120 中に保存される。RAM120 中のデータは、それが適切に更新されることができるため、メモリマップに割当てられることが可能である。しかしながら、種々の長さまたは位置を有するデータの別の一部は、ファイルシステム130 を使用して管理される。ファイルシステム130 は、ファイルベースのデータのフォーマット、位置およびサイズを決定するソフトウェアルーチンである。ファイルベースの構造をそれのデータとして使用する装置の1つは不揮発性メモリ140 である。不揮発性メモリ140 中に保存されている全てデータは最初に、ファイルシステム130 においてフォーマット化されなければならない。不揮発性メモリ140 をファイルシステム130 の下層にすることによって、不揮発性メモリ140 中に保存されているデータへのアクセスがさらに遅延される。不揮発性メモリ140 中に記憶されているデータへのアクセスの遅延は、データがユーザインターフェースの一部分として不揮発性メモリから検索されなければならない場合、望ましくない遅延を生じさせる可能性が高い。無線電話機において一般に利用可能なデータを使用する一例は、ユーザにより作成された電話帳のサーチである。
【0022】
無線電話機には典型的に、ユーザにより作成された電話帳エントリを保存する能力がある。ユーザは典型的に、不揮発性メモリ内に保存された電子電話帳中に100件を超える電話番号および対応した名前を持っている可能性が高い。実際のエントリ数は、設計者が電話帳に割当てることを同意したメモリスペースの量によってのみ制限される。電話番号および名前はそれぞれ、不揮発性メモリ中に保存されるデータ記録を構成している。各電話番号は32までの文字長であることができる。この長さによってエリアコード、内線拡張(internal phone extension)、アクセスコードおよび個人識別番号が、指定された番号として自動的にダイヤルされることが可能となる。1つの名前に対して任意の文字数が割当てられることができるが、便宜上32文字長が仮定される。512の組合せられた電話番号と名前のエントリが可能であると仮定した場合、16Kの不揮発性メモリが割当てられなければならない。ユーザが電話番号または名前を入力し、対応した保存された情報を求めて電話帳をサーチすることを望んだ場合、不揮発性メモリ内に保存されたデータ記録がサーチされなければならない。
【0023】
不揮発性メモリ内に保存されたデータ記録はファイルシステム130 によってのみ読出されることができる。ファイルシステム130 はデータベース110 の下の層である。不揮発性メモリの上部のマルチプル層にアクセスすることは、不揮発性メモリ中に記憶されているデータ記録へのアクセスに大幅な遅延を生じさせる。通常のサーチルーチン中、データ記録は不揮発性メモリから検索され、入力データと比較される。両者が整合した場合、その整合に対応したデータ記録が見出される。両者が整合しなかった場合、最初に検索されたデータ記録は廃棄され、次のデータ記録が不揮発性メモリから検索される。不揮発性メモリからのデータ記録の検索および入力データとの比較は、整合が見出されるまで、あるいは不揮発性メモリ中の全ての記録がサーチされるまで続けられる。データ記録を不揮発性メモリから検索する前に横断されなければならないマルチプル層は、遅延に大きく影響する。入力データが不揮発性メモリ中に保存されている非常に多数の内容と比較されなければならない場合、遅延はユーザインターフェースにとって過度に長いものとなる。名前または電話番号を入力し、そのエントリに関する記憶されている情報の検索を望んだユーザは長時間は待てないと予想される。ユーザインターフェースはユーザにとってシームレスで瞬時のものに思われる必要がある。
【0024】
不揮発性メモリのデータ記録のサーチに関連した速度を増加させる1つの方法は、サーチをRAMにおいて行うことである。RAM中に保存されているデータ記録へのアクセス時間は、不揮発性メモリから等価なデータ記録を検索するためのアクセス時間より数桁速い。アクセス時間の差は、ファイルシステムのためであると考えることができる。RAMは、データ記録がファイルシステムの下でフォーマット化され、アクセスされることを必要としない。不揮発性メモリの代わりにRAMにおいてサーチを行うために、全ての不揮発性メモリのデータ記録はRAMに転送されることができる。したがって、サーチが必要とされたとき、データ記録は全てRAMにおいて利用可能である。この実施形態には、不揮発性メモリにおいて利用できるデータ記録を冗長的に記憶するだけのために大量のRAMを使用するという欠点がある。付加的なRAMの費用および物理的サイズの増大のために、この解決方法は、無線電話機のような可搬電子装置において実施するには理想的なものとはいえない。
【0025】
図2のAには別の実施形態が示されており、この実施形態は、不揮発性メモリ中に記憶されたデータ記録のサーチ時間を改善するが、不揮発性メモリのコンテンツ全体をRAM中に保存することを必要としない。図2のAにおいて、不揮発性メモリ中に保存されたデータ記録を保持するためにRAMは使用されない。その代りに、RAMハッシュビン220 がRAM中に規定される。元の不揮発性(NV)記録210 のそれぞれはハッシュ関数に入力される。入力NV記録210 に対するポインタは、出力ハッシュ番号に対応したRAMハッシュビン220 中に記憶される。ハッシュ関数では、RAMハッシュビン220 に対するNV記録210 の1:1マッピングを行う必要がない。しかしながら、ハッシュ関数の選択はアクセス速度と引き換えにRAMハッシュビン220 の数とトレードオフする。ハッシュ関数マッピングが特有になると、それだけ一層RAMハッシュビン220 に対して必要とされるスペースが大きくなる。特有のハッシュ関数マッピングの利点は、整合を求めてNV記録210 をサーチした場合の不揮発性メモリへのアクセス数が減少することである。
【0026】
図2Aに示されている実施形態は次のように行われる。電子装置を初期化したとき、NV記録210 はそれぞれハッシュ関数に入力される。初期化は、電子装置に対する任意の事象として定義されることができる。無線電話機における初期化はパワーアップとして定義される。ハッシュ関数の一例を次の式で示す:
【数1】
この式において、xi はハッシュ関数に入力された特定のNVデータ記録中のi番目のバイトを表す。yi は、特定のNVデータ記録中のiバイトを処理した後のハッシュ関数の出力を表す。数Nは、各NVデータ記録エントリを含むバイトの数を表す。各NVデータ記録は上述の例では32バイト長である。上記の例においてデータ記録長はN=32として示される。実際の実施形態では、計算は整数を使用して行われる。入力から出力へのマッピングは、整数計算が使用される場合、1:1ではないことが認識されることができる。
【0027】
ハッシュ関数出力は規定されたRAMハッシュビン220 の範囲内に入る。ハッシュ関数への入力として使用されたNV記録に対するポインタ222 は、RAMハッシュビン220 中に保存される。ポインタが記憶のために使用するメモリスペースはデータ記録より少い。典型的に、4バイトがポインタに割当てられる。512のエントリを有する不揮発性データ記録に関して、ポインタを全て収容するために2Kのメモリが必要である。これによって、RAMメモリスペースの可能な節約が得られる。
【0028】
各ハッシュビンには、2以上のポインタ222 を保存する能力がある。これは、ハッシュ関数においては出力に対する入力の1:1マッピングが行われないために必要である。ハッシュ関数に1:1マッピングが欠如しているために、RAMメモリ割当てに関する問題が生じる。各ハッシュビンがおそらくただ1つのポインタを有することを保証するために、非常に多くのハッシュビンが規定される必要がある。規定されたハッシュビンの数が少い場合、各ハッシュビンが多くのポインタを記憶する必要がある可能性がある。
【0029】
設計者は、64Kのハッシュビンが規定された場合に各ハッシュビンがその中に1つのポインタだけを有することを保証することができる。データ記録の全てを識別するのに2Kのポインタがあればよいため、明らかに、大多数のハッシュビンが空ポインタを含むこととなる。不揮発性データ記録の全てをRAM中にロードするより大量のRAMスペースが64Kのハッシュビンの割当てに必要であることは明らかである。したがって、この解決方法は実用不可能である。必要とされるRAMを減少させるために、設計によって64K未満のハッシュビンが割当てられる。しかしながら、ハッシュビンの数を減少することにより、任意の1つのハュビンが2以上のポイタン値を含む可能性が必然的に高くなる。
【0030】
ある入力データへのデータ記録整合を見出すために、入力データは最初にハッシュ関数を通過させられる。その後、ハッシュ関数の出力によりサーチルーチンは特定のハッシュビンに導かれる。ハッシュビンに記憶されるポインタが1つもない場合、不揮発性データ記録中で見出される整合は1つもない。通常のサーチでは、1つの整合も存在しないと決定する前に、不揮発性メモリ中のデータ記録の全てが検索されて入力と比較される必要がある。ハッシュビン方法を使用することにより、1つの整合も存在しないと決定する前に、不揮発性メモリへのアクセスは行われる必要がない。
【0031】
ハッシュビン中に記憶されるポインタが存在している場合、最初のポインタはハッシュビンから検索され、そのポインタが示すNV記録が検索される。その後、入力と検索されたデータ記録との間で全比較が行われる。両者が同じである場合、整合が見出され、残りの関連したデータ記録が検索されることができる。検索されたデータ記録が整合しない場合、ハッシュビン中に次のポインタが存在するならば、それが検索されなければならない。比較が行われ、整合が見出されるか、あるいはハッシュビンポインタにより示される不揮発性データ記録全ての比較がなされるまで、ハッシュビンからのポインタの検索が繰返される。
【0032】
前の実施形態では、不揮発性メモリに対して多数のアクセスが行われる可能性がある。不揮発性メモリへのアクセスの数は、各ハッシュビン中に記憶されるポインタの数に依存する。必要とされるハッシュビンの数は、ハッシュ関数に関連している。特有のハッシュビンの数を増やすことにより、不揮発性メモリへのアクセス数が減少する。不揮発性メモリへのアクセス数の減少は、必要とされるRAMの増加という犠牲の下に成立する。
【0033】
本発明は、データ記録をサーチする回数を減少させると共に必要とされるRAMを減少させる構成を使用する。図2のBには本発明のブロック図が示されている。本発明において、NV記録210 は上述したようにデータ記録の集合を含んでいる。しかしながら、RAMにおいてハッシュビンを規定する代りに、RAMにおいてメモリのブロックがタグ値230 に割当てられる。はじめの例において説明したように、不揮発性メモリ中に保存された各データ記録は32文字長である。512の利用可能な記録が不揮発性メモリにおいて割当てられる。これはメモリの16Kに対応する。本発明はRAMスペースの2バイトを不揮発性メモリ中の各データ記録に割当てる。512のデータ記録に適合するために、RAMの1Kバイトが割当てられる必要がある。各不揮発性メモリ記録に割当てられるRAMのバイト数は一定なので、対応した不揮発性データ記録に対してRAMアドレス位置が割当てられることができる。一例として、最初の不揮発性データ記録はRAMにおいて割当てられる最初の2バイトに対応している。
【0034】
各不揮発性データ記録に割当てられたRAMの2バイトは、データ記録全体を保持するには不十分である。その代りに、その2バイトは、デヘータ記録に対応したタグ値を保持する。タグ値は、上述された同じハッシュ関数を使用して生成される。不揮発性メモリ中の各データ記録に対応したタグ値が計算され、RAM内の予め定められた位置に保存される。したがって、本発明は割当てられるRAMの量を最小にする。RAM中の2バイトは不揮発性データ記録のそれぞれに割当てられ、512のデータ記録が存在している。したがって、RAMの1Kだけが割当てられればよい。
【0035】
入力値が不揮発性メモリのデータ記録のコンテンツと比較される必要がある場合、入力値が最初にハッシュ関数を通過させられる。その後、出力ハッシュ値がRAM中に保存されているタグ値と比較される。整合したタグ値の位置が突きとめられた場合、そのタグ値の位置に対応した不揮発性メモリのコンテンツが検索され、元の入力値と比較される。両者が同じである場合、整合が見出される。そうでなければ、別のタグ値が整合データ記録を生成するか、あるいはタグ値リストの終りに達するまで、RAMのタグ値に対するサーチが続けられる。このようにして、ほとんどのサーチがRAMにおいて行なわれ、計算された入力タグ値が前に保存されたタグ値の1つと整合した場合にのみ不揮発性メモリがアクセスされる。ハッシュ関数が生成する複製タグ値の数がそれ程多くない場合、不揮発性メモリへのアクセス数が最小にされる。上述のハッシュ関数を使用することにより、不揮発性メモリへのアクセス数は最小となり、99%のデータサーチに対して1回である。
【0036】
図3は、本発明のフローチャートを示している。ルーチンは状態301 においてスタートする。このルーチンは、装置がパワーアップに切換えられたときは常に初期化される。無線電話機においては、ユーザが電話機をパワーアップした場合は常にこのルーチンが状態301 からスタートする。次にこのルーチンは状態304 に進み、不揮発性(NV)メモリのデータ記録の中の全てのエントリが読出される。次に状態308 において、NVメモリエントリに対するタグ値が計算される。各NVメモリエントリに対するタグ値は、上述したハッシュ関数のように関数を使用して計算される。各タグ値には2バイトが必要とされる。
【0037】
その後、ルーチンは状態310 に進み、計算されたタグ値が予め定められたRAM位置に記憶される。各RAM位置はNVメモリのデータ記録集合におけるエントリに対応する。一例として、RAMタグ値表における6番目のエントリは、そのエントリが実際にはNVメモリのどこに位置しているかにかかわらず、NVメモリデータ記録における6番目のエントリに対応した絶対アドレスである。
【0038】
タグ値がRAM中に保存された後、データ記録のサーチは主としてRAMにおいて行なわれることができる。状態320 は、エントリ“y”がデータ記録のコンテンツと比較される必要があることを想定する。無線電話機のような電子装置において、エントリ“y”はユーザにより入力される電話番号に対応することが可能である。データ記録コンテンツは、特定の電話番号に関連した名前および情報に対応する。ユーザは電話番号を入力し、その番号に関して以前記憶された情報の全てを検索することを所望することができる。
【0039】
サーチの第1のステップは状態322 において行なわれ、この状態322 において入力“y”に対応したタグ値が計算される。状態324 において、サーチで使用されたインデックスカウンタが初期化される。次にフローチャートはポイント330 に進む。このポイント330 はフローチャートの機能的要素ではなく、図3のフローチャートの状態と図4のフローチャートの状態とを結びつけるために示されているに過ぎない。
【0040】
図4は、図3のフローチャートと図4のフローチャートとを結びつけるポイント330 からスタートする。ルーチンはこのポイント330 から状態340 に進む。状態340 において、ルーチンは、インデックスカウンタにより識別される位置に対応している以前保存されたタグ値をRAMから検索する。次にルーチンは状態344 に進み、ここにおいて、エントリ“y”に対応したタグ値は検索されたRAMのタグ値と比較される。検索および比較動作は非常に迅速に行なわれる。これは、タグ値の長さが2バイトに過ぎず、全ての値がRAM中に存在しているためである。ルーチンにより2つのタグ値は整合しないと決定された場合、ルーチンは状態354 に進み、この状態354 において、入力タグ値と比較される必要のあるタグエントリがRAM中に存在するかどうかを調べるためのチェックが行なわれる。状態354 において、比較されていないRAM中のタグ値をルーチンが識別した場合、ルーチンは状態358 に進み、インデックスカウンタをインクリメントする。インデックスカウンタがインクリメントされた後、ルーチンは状態340 に戻り、インデックスカウンタにより識別された次のタグ値を検索する。
【0041】
その代わりに、状態354 において、エントリタグ値と比較されていないRAM中のタグ値は1つもないことがルーチンにより決定された場合、ルーチンは状態362 に進み、ここで、ルーチンは、入力エントリに整合するデータ記録はメモリ中に1つも存在しないと推断する。その後、ルーチンは終了する。入力エントリに対するタグ値に整合するタグ値が1つもない場合、必然的にその入力エントリに整合するデータ記録は1つも不揮発性メモリ中に記憶されていない。本発明では、この状況において不揮発性メモリへのアクセスは行われない。したがって、不揮発性メモリにアクセスすることなく、サーチによって不揮発性データ記録の整合は1つもないと決定されることができる。
【0042】
その代わり、ルーチンにより状態344 において、検索されたタグ値が入力エントリタグ値と整合すると決定された場合、ルーチンは状態348 に進む。この状態348 において、ルーチンは、RAMから以前検索された整合したタグ値に対応したデータ記録を不揮発性メモリから検索する。したがって、不揮発性メモリ中に保存されているデータ記録は、そのデータ記録に対するタグ値が入力エントリのタグ値に整合した場合にのみアクセスされる。
【0043】
実際のデータ記録が不揮発性メモリから検索されると、ルーチンは状態350 に進み、全記録の比較を行う。ハッシュ関数ではデータ記録からタグ値に対する1:1マッピングが行われないため、全記録の比較が要求される。入力エントリおよび不揮発性データ記録は同じタグ値を生成しない可能性があるが、実際のデータ記録は整合を実際に確認するために比較されなければならない。
【0044】
検索された不揮発性メモリデータ記録が入力エントリに整合した場合、成功的なサーチが行われている。これ以上サーチルーチンを続ける理由がないので、ルーチンは終了し、サーチすべき新しい入力エントリを待つ。
【0045】
状態350 において、検索された不揮発性メモリデータ記録が入力エントリに整合しないとルーチンにより決定された場合、ルーチンは上述したように、状態354 に進んで、全てのRAMタグ値がサーチされたか否かを決定する。
【0046】
図3および4のフローチャートには、低速の不揮発性メモリ中に記憶されたデータ記録の高速サーチを援助するために最小量のRAMがどのようにして使用されることができるかが示されている。不揮発性メモリデータ記録のコンテンツ全体をRAM中にロードするのではなく、1組のタグ値だけがRAM中にロードされる。入力エントリを求めてデータ記録がサーチされる必要が生じたとき、最初にその入力エントリは、RAM中に保存されたタグ値を生成するために以前使用された同じハッシュ関数を使用してタグ値を生成するために使用される。その後、入力エントリタグ値はRAM中に保存されているタグ値と連続的に比較される。整合したタグ値が見出された場合、対応したデータ記録は不揮発性メモリから検索される。したがって、不揮発性メモリは、整合したデータ記録が検索される可能性が高い場合にのみアクセスされる。その後、不揮発性メモリから検索されたデータ記録は入力エントリと比較される。2つの記録は同じタグ値を生成するため、整合が得られる可能性は高い。しかしながら、検索されたデータ記録と入力エントリとが整合しなかった場合、その入力エントリのタグ値に整合する任意の他のタグ値を求めてRAMタグ値表の残りのものがサーチされる。ハッシュ関数ではタグ値に対する入力の1:1マッピングはほとんど行われないため、典型的に不揮発性メモリはサーチ当り1回だけアクセスされる。このようにして、不揮発性メモリに対するアクセス数が最小にされ、一方本発明を実施するために必要なRAM量が最小にされる。
【0047】
上記の好ましい実施形態の説明は、当業者が本発明を形成または使用することを可能にするために示されたものである。当業者はこれらの実施形態に対する種々の修正を容易に認識し、ここに規定されている一般原理は発明力を要することなく別の実施形態に適用されることができる。したがって、本発明はここに示されている実施形態に制限されず、ここに開示されている原理および新しい特徴との広い適用範囲の一致に従うものである。
【図面の簡単な説明】
【図1】
積層にされたメモリ構造のブロック図。
【図2】
NVメモリテーブルのRAMベースのルックアップの実施を示すブロック図。
【図3】
本発明のRAM構成のフローチャート。
【図4】
本発明のRAM構成のフローチャート。
Claims (20)
- 個々のデータ記録の集合を生成し、
データ記録の集合をメモリ中に記憶し、
集合中の各データ記録に対するタグ値を生成し、
そのタグ値を高速メモリ中の予め定められた位置に記憶し、
データ記録の集合のサーチを必要とする入力エントリを受取り、
入力エントリに対応した入力エントリタグ値を生成し、
その入力エントリタグ値を高速メモリ中に記憶されているタグ値と比較し、
入力エントリタグ値に整合したタグ値に対応したデータ記録をデータ記録の集合から検索し、
検索されたデータ記録を入力エントリと比較するステップを含んでいる必要な高速メモリ量を最小にする高速データアクセス方法。 - タグ値を生成するステップは、データ記録をハッシュ関数に入力し、ハッシュ関数出力をタグ値として割当てるステップを含んでいる請求項1記載の方法。
- 入力エントリタグ値を生成するステップは、入力エントリをハッシュ関数に入力し、ハッシュ関数出力を入力エントリタグ値として割当てるステップを含んでいる請求項2記載の方法。
- データ記録の集合は、不揮発性メモリ中に記憶されている請求項1記載の方法。
- 不揮発性メモリはフラッシュメモリである請求項4記載の方法。
- 高速メモリはRAMである請求項1記載の方法。
- 入力エントリタグ値に整合したタグ値に対応した全てのデータ記録に対してデータ記録の検索および比較ステップを繰返すステップをさらに含んでいる請求項1記載の方法。
- データ記録の集合を規定する複数のデータ記録が記憶される第1のメモリと、
デジタルプロセッサと、
第1のメモリ中に記憶されたデータ記録のそれぞれに対応しているデジタルプロセッサにより計算されたタグ値が記憶される第2のメモリとを具備しており、
デジタルプロセッサは、入力エントリを求めてデータ記録の集合をサーチするリクエストに応答して、入力エントリに対応した入力エントリタグ値を計算し、その入力エントリタグ値を第2のメモリ中に記憶されているタグ値のそれぞれと比較し、入力エントリタグ値に整合したタグ値に対応したデータ記録を検索し、入力エントリをその検索されたデータ記録と比較する、必要な高速メモリ量を最小にする高速データアクセス装置。 - 第1のメモリは不揮発性メモリである請求項8記載の装置。
- 第2のメモリはRAMである請求項8記載の装置。
- データ記録は、電子電話帳中のエントリを含んでいる請求項8記載の装置。
- タグ値はハッシュ関数への入力としてデータ記録を使用してハッシュ関数の出力として計算される請求項8記載の装置。
- 入力エントリタグ値は、タグ値の計算に使用されたものと同じハッシュ関数を使用して計算される請求項12記載の装置。
- 第1のメモリ中に記憶されている各データ記録に対して第2のメモリでは2バイトが割当てられる請求項8記載の装置。
- データ記録の集合を規定する複数のデータ記録が記憶される第1のメモリと、
デジタルプロセッサと、
第1のメモリ中に記憶されたデータ記録のそれぞれに対応しているデジタルプロセッサにより計算されたタグ値が記憶される第2のメモリとを具備しており、
デジタルプロセッサは、入力エントリを求めてデータ記録の集合をサーチするリクエストに応答して、入力エントリに対応した入力エントリタグ値を計算し、その入力エントリタグ値を第2のメモリ中に記憶されているタグ値のそれぞれと比較し、入力エントリタグ値に整合したタグ値に対応したデータ記録を検索し、入力エントリをその検索されたデータ記録と比較する、必要とされるRAMが減少される高速データアクセス向けに構成された電話装置。 - データ記録の集合は、電子電話帳である請求項15記載の電話装置。
- 第1のメモリは不揮発性メモリである請求項15記載の電話装置。
- 第2のメモリはRAMである請求項15記載の電話装置。
- タグ値は、ハッシュ関数への入力としてデータ記録を使用してハッシュ関数の出力として計算される請求項15記載の電話装置。
- 入力エントリタグ値は、タグ値の計算に使用されたものと同じハッシュ関数を使用して計算される請求項19記載の電話装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/487,948 US6484250B1 (en) | 2000-01-19 | 2000-01-19 | Hash technique eliminating pointer storage to reduce RAM size |
PCT/US2001/001892 WO2001053950A2 (en) | 2000-01-19 | 2001-01-19 | A method and apparatus for reducing ram size while maintaining fast data access |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004505332A true JP2004505332A (ja) | 2004-02-19 |
Family
ID=23937770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001554178A Pending JP2004505332A (ja) | 2000-01-19 | 2001-01-19 | 高速データアクセスを維持しながらram寸法を減少させる方法および装置 |
Country Status (13)
Country | Link |
---|---|
US (1) | US6484250B1 (ja) |
EP (1) | EP1381966B1 (ja) |
JP (1) | JP2004505332A (ja) |
KR (1) | KR100749971B1 (ja) |
CN (1) | CN1282108C (ja) |
AT (1) | ATE308079T1 (ja) |
AU (1) | AU774735B2 (ja) |
CA (1) | CA2397940A1 (ja) |
DE (1) | DE60114470T2 (ja) |
ES (1) | ES2254361T3 (ja) |
HK (1) | HK1062947A1 (ja) |
IL (1) | IL150668A0 (ja) |
WO (1) | WO2001053950A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8670262B2 (en) | 2006-12-20 | 2014-03-11 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772177B2 (en) * | 2001-06-01 | 2004-08-03 | International Business Machines Corporation | System and method for parallelizing file archival and retrieval |
KR20040000182A (ko) * | 2002-06-24 | 2004-01-03 | 주식회사 이투엠솔루션 | 전화번호 검색장치 및 방법 |
US6865100B2 (en) * | 2002-08-12 | 2005-03-08 | Micron Technology, Inc. | 6F2 architecture ROM embedded DRAM |
KR20040031926A (ko) * | 2002-10-07 | 2004-04-14 | 엘지전자 주식회사 | 이동 통신 단말기의 전화 번호 검색 방법 |
US7093099B2 (en) * | 2002-12-12 | 2006-08-15 | Alacritech, Inc. | Native lookup instruction for file-access processor searching a three-level lookup cache for variable-length keys |
JP4327585B2 (ja) * | 2003-12-25 | 2009-09-09 | 株式会社東芝 | 記憶装置 |
US7272654B1 (en) * | 2004-03-04 | 2007-09-18 | Sandbox Networks, Inc. | Virtualizing network-attached-storage (NAS) with a compact table that stores lossy hashes of file names and parent handles rather than full names |
KR100623363B1 (ko) * | 2004-06-04 | 2006-09-19 | 주식회사 팬택 | 부정 논리곱형 플래시 메모리를 구비한 휴대용 기기에서의멀티미디어 데이터 처리 장치 및 그 방법 |
CN100389406C (zh) * | 2006-01-16 | 2008-05-21 | 深圳创维数字技术股份有限公司 | 在嵌入系统的非易失存储器中进行数据操作的方法 |
CN103023943B (zh) * | 2011-09-27 | 2016-06-22 | 中国移动通信集团公司 | 任务处理方法及其装置、终端设备 |
CN102346783B (zh) * | 2011-11-09 | 2014-09-17 | 华为技术有限公司 | 数据检索方法及装置 |
US11468781B2 (en) | 2017-08-11 | 2022-10-11 | The Boeing Company | Simulation of an asset including message playback using nested hash tables |
US11119999B2 (en) | 2019-07-24 | 2021-09-14 | Sap Se | Zero-overhead hash filters |
US11636047B2 (en) | 2021-08-31 | 2023-04-25 | Micron Technology, Inc. | Hash operations in memory for data sharing |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69029544T2 (de) * | 1989-07-31 | 1997-06-12 | Philips Electronics Nv | Speicherarchitektur und Schaltung zum Hashcodieren |
JPH09130A (ja) * | 1995-06-22 | 1997-01-07 | Noriomi Yoshimizu | 水中水上両用めがね |
US5754844A (en) * | 1995-12-14 | 1998-05-19 | Sun Microsystems, Inc. | Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location |
US5944781A (en) * | 1996-05-30 | 1999-08-31 | Sun Microsystems, Inc. | Persistent executable object system and method |
US6044079A (en) * | 1997-10-03 | 2000-03-28 | International Business Machines Corporation | Statistical packet discard |
US6324637B1 (en) * | 1999-08-13 | 2001-11-27 | Sun Microsystems, Inc. | Apparatus and method for loading objects from a primary memory hash index |
-
2000
- 2000-01-19 US US09/487,948 patent/US6484250B1/en not_active Expired - Lifetime
-
2001
- 2001-01-19 DE DE60114470T patent/DE60114470T2/de not_active Revoked
- 2001-01-19 EP EP01903157A patent/EP1381966B1/en not_active Revoked
- 2001-01-19 ES ES01903157T patent/ES2254361T3/es not_active Expired - Lifetime
- 2001-01-19 CA CA002397940A patent/CA2397940A1/en not_active Abandoned
- 2001-01-19 AU AU31008/01A patent/AU774735B2/en not_active Ceased
- 2001-01-19 CN CNB018038409A patent/CN1282108C/zh not_active Expired - Fee Related
- 2001-01-19 JP JP2001554178A patent/JP2004505332A/ja active Pending
- 2001-01-19 WO PCT/US2001/001892 patent/WO2001053950A2/en active IP Right Grant
- 2001-01-19 KR KR1020027009226A patent/KR100749971B1/ko not_active IP Right Cessation
- 2001-01-19 IL IL15066801A patent/IL150668A0/xx unknown
- 2001-01-19 AT AT01903157T patent/ATE308079T1/de not_active IP Right Cessation
-
2004
- 2004-08-05 HK HK04105813A patent/HK1062947A1/xx not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8670262B2 (en) | 2006-12-20 | 2014-03-11 | Mosaid Technologies Incorporated | Hybrid solid-state memory system having volatile and non-volatile memory |
KR101495928B1 (ko) | 2006-12-20 | 2015-02-25 | 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 | 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템 |
KR101495975B1 (ko) | 2006-12-20 | 2015-02-26 | 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 | 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템 |
Also Published As
Publication number | Publication date |
---|---|
ES2254361T3 (es) | 2006-06-16 |
KR100749971B1 (ko) | 2007-08-16 |
AU774735B2 (en) | 2004-07-08 |
AU3100801A (en) | 2001-07-31 |
HK1062947A1 (en) | 2004-12-03 |
KR20030036133A (ko) | 2003-05-09 |
WO2001053950A2 (en) | 2001-07-26 |
ATE308079T1 (de) | 2005-11-15 |
EP1381966B1 (en) | 2005-10-26 |
US6484250B1 (en) | 2002-11-19 |
WO2001053950A3 (en) | 2003-11-20 |
CA2397940A1 (en) | 2001-07-26 |
EP1381966A2 (en) | 2004-01-21 |
DE60114470T2 (de) | 2006-07-20 |
CN1282108C (zh) | 2006-10-25 |
CN1496523A (zh) | 2004-05-12 |
DE60114470D1 (de) | 2005-12-01 |
IL150668A0 (en) | 2003-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7493442B2 (en) | Multiple segment data object management | |
JP3706167B2 (ja) | 半導体ディスク装置 | |
JP5005171B2 (ja) | 論理ブロックをスプリットする方法および装置 | |
RU2243588C2 (ru) | Энергонезависимое устройство памяти, устройство записи и способ записи | |
US6374324B2 (en) | Flash memory array access method and device | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US6477616B1 (en) | Storage device, storage system, memory management method, recording medium, and computer data signal | |
US7529882B2 (en) | Dynamic volume management for flash memories | |
JP3215237B2 (ja) | 記憶装置および記憶装置の書き込み/消去方法 | |
US5717886A (en) | Semiconductor disk device and memory management method | |
JP2004505332A (ja) | 高速データアクセスを維持しながらram寸法を減少させる方法および装置 | |
US6839798B1 (en) | Flash memory capable of storing frequently rewritten data | |
US20100131700A1 (en) | Memory indexing system and process | |
JPH10124381A (ja) | 半導体記憶装置 | |
JP3827682B2 (ja) | フラッシュメモリ、そのためのマッピング制御装置及び方法 | |
KR20030011230A (ko) | 비휘발성 기억 장치 및 그의 재기입 제어 방법 | |
US8219739B2 (en) | Read-only optimized flash file system architecture | |
KR100914646B1 (ko) | 멀티-플레인 구조의 플래시 메모리 관리 방법 | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
JP2008084184A (ja) | メモリコントローラ | |
JPH07153284A (ja) | 不揮発性半導体記憶装置及びその制御方法 | |
JPH0778485A (ja) | 不揮発性半導体記憶装置とデータ書換/読出方法 | |
JP3801176B2 (ja) | メモリ制御方法、記憶装置、制御プログラムおよび可読記録媒体 | |
JPH09231110A (ja) | Icカード | |
JP2002222120A (ja) | メモリ・アクセス管理装置並びに管理方法 |