JP2004192426A - 記憶装置及びその制御方法 - Google Patents
記憶装置及びその制御方法 Download PDFInfo
- Publication number
- JP2004192426A JP2004192426A JP2002360850A JP2002360850A JP2004192426A JP 2004192426 A JP2004192426 A JP 2004192426A JP 2002360850 A JP2002360850 A JP 2002360850A JP 2002360850 A JP2002360850 A JP 2002360850A JP 2004192426 A JP2004192426 A JP 2004192426A
- Authority
- JP
- Japan
- Prior art keywords
- address
- keyword
- keyword information
- actual data
- data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】記憶内容の検索効率を向上させる記憶装置及びその制御方法を提供する。
【解決手段】記憶装置10は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリ30と、入力されたアドレスに対応した前記メモリの記憶領域にアクセスして、前記アドレスに対応して記憶されたキーワード情報及び前記先頭アドレスを読み出すアクセス回路40と、前記実データを検索するための検索キーワードを保持するキーワード保持回路50と、前記検索キーワードと、前記アクセス回路により読み出されたキーワード情報とを比較する比較回路60と、前記比較回路において前記検索キーワードと前記キーワード情報とが一致したと判断されたとき、前記アクセス回路により読み出された前記先頭アドレスを保持するヒットデータレジスタ70とを含む。
【選択図】 図1
【解決手段】記憶装置10は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリ30と、入力されたアドレスに対応した前記メモリの記憶領域にアクセスして、前記アドレスに対応して記憶されたキーワード情報及び前記先頭アドレスを読み出すアクセス回路40と、前記実データを検索するための検索キーワードを保持するキーワード保持回路50と、前記検索キーワードと、前記アクセス回路により読み出されたキーワード情報とを比較する比較回路60と、前記比較回路において前記検索キーワードと前記キーワード情報とが一致したと判断されたとき、前記アクセス回路により読み出された前記先頭アドレスを保持するヒットデータレジスタ70とを含む。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、記憶装置及びその制御方法に関する。
【0002】
【従来の技術】
半導体記憶装置(広義には記憶装置)の1つとして、フラッシュEEPROM(Electrically Erasable Programmable Read-Only Memory)等のフラッシュメモリを内蔵するフラッシュメモリ装置がある。このフラッシュメモリ装置は、書き換え回数の制限があるものの、不揮発性で、かつ書き換え可能である。そのため、内蔵するメモリの大容量化に伴い、フラッシュメモリ装置は、ファイル管理情報を記憶するファイルメモリとして使用されることが多くなっている。例えばフラッシュメモリ装置は、メモリカードとして従来のハードディスク装置に代えて、パーソナルコンピュータ、PDA(Personal Digital Assistant)又はディジタルカメラの外部記憶装置として用いられる。
【0003】
フラッシュメモリ装置に記憶されたファイルのデータにアクセスする場合、パーソナルコンピュータやPDA等の制御を司るホスト(CPU)側で実行されるオペレーティングシステム(OS)がファイル管理情報を参照し、所望のファイルの格納位置に対応するアドレスを用いたアクセスを指示する。フラッシュメモリ装置は、ホストから指示されたアドレスに対し、当該アドレスに対応して記憶されたデータを出力する。
【0004】
このようなファイル管理情報は、頻繁に更新されるため、フラッシュメモリ内の所定の領域において書き換えの局所的な集中が発生する場合がある。そのため、OSが管理する論理アドレスとフラッシュメモリの物理アドレスとのアドレス変換の制御が行われる(例えば特許文献1参照。)。これにより、メモリのブロック単位の書き換え回数を平均化させて、フラッシュメモリ装置の寿命を延ばすことができる。
【0005】
【特許文献1】
特開2000−285001号公報
【0006】
【発明が解決しようとする課題】
しかしながら、上述のフラッシュメモリ装置を始めとするその他の記憶装置では、ホストから指示された論理アドレスを物理アドレスに変換し、該物理アドレスに対するアクセスのみを実行するものであった。したがって、ホスト側において所望のファイル名が不明な場合、ホストからの指示により記憶装置から全てのファイルを読み出し、その上で例えばユーザがその内容を確認する等してファイルの取捨選択処理を行う必要があり、検索効率が著しく低かった。このように、ホスト側でファイル名が不明な場合に自動検索を行うことが困難であり、なおかつユーザがファイルの内容を確認して目的のファイルを探すといった煩雑な作業が必要とされていた。特に、フラッシュメモリのように、読み出し速度が遅い場合、ホストを含むシステム全体の処理能力を大幅に低下させてしまうという問題があった。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、記憶内容の検索効率を向上させる記憶装置及びその制御方法を提供することにある。
【0008】
【課題を解決するための手段】
上記課題を解決するために本発明は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリと、入力されたアドレスに対応した前記メモリの記憶領域にアクセスして、前記アドレスに対応して記憶されたキーワード情報及び前記先頭アドレスを読み出すアクセス回路と、前記実データを検索するための検索キーワードを保持するキーワード保持回路と、前記検索キーワードと、前記アクセス回路により読み出されたキーワード情報とを比較する比較回路と、前記比較回路において前記検索キーワードと前記キーワード情報とが一致したと判断されたとき、前記アクセス回路により読み出された前記先頭アドレスを保持するヒットデータレジスタとを含む記憶装置に関係する。
【0009】
本発明においては、検索に先立ってキーワード保持回路に検索キーワードが保持される。そして、メモリには、実データを検索するためのキーワード情報と、該実データの先頭アドレスとが、互いに関連付けて記憶されている。そこで、アクセスしたアドレスのキーワード情報をメモリから読み出し、比較回路において検索キーワードとを比較する。そして、検索キーワードと一致したときに、当該実データの先頭アドレスをヒットデータレジスタに保持していく。これにより、メモリから実データを読み出して、所望のデータであるか否かを判断する必要がなくなり、判断処理の負荷軽減と、アクセス速度の向上とを図ることができる。
【0010】
本発明に係る記憶装置では、前記キーワード情報を記憶する領域と、前記実データの先頭アドレスを記憶する領域とは、同一ページに存在していてもよい。
【0011】
ここで、ページは、複数のデータが一括して読み出される記憶単位と言うことができる。
【0012】
本発明によれば、複数ページまたがってキーワード情報と実データの先頭アドレスが記憶される場合に比べて、ページ単位に読み出しが行われる記憶装置では、検索に必要な処理時間が短縮される。
【0013】
本発明に係る記憶装置では、前記メモリは、その記憶領域が複数の領域に分割されたページを単位に、前記キーワード情報及び前記先頭アドレスを記憶することができる。
【0014】
本発明によれば、ページ単位に検索処理が可能な記憶装置を提供することができるので、任意の領域にデータが記憶される場合に比べて構成を簡素化することができ、かつ検索効率を向上させることができる。
【0015】
また本発明に係る記憶装置では、外部からの要求に応じて、前記ヒットデータレジスタに保持された先頭アドレスを外部に出力することができる。
【0016】
本発明によれば、外部からの要求があったときのみ先頭アドレスを外部に出力させることができるので、アクセスのオーバーヘッドを削除することができ、検索処理に伴うアクセス速度を向上させることができる。
【0017】
また本発明に係る記憶装置では、前記ヒットデータレジスタは、複数回の各アクセスのアドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持し、外部からの要求に応じて、前記ヒットデータレジスタに保持された複数の先頭アドレスを外部に出力することができる。
【0018】
本発明によれば、検索対象のデータが記憶される先頭アドレスのみを一括して取得することができるので、各アクセスのオーバーヘッドを削除することができ、検索処理に伴うアクセス速度を大幅に向上させることができる。
【0019】
また本発明に係る記憶装置では、前記アクセス回路は、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスに基づいて前記メモリにアクセスすることができる。
【0020】
本発明によれば、検索されたデータを連続的にアクセスすることができるので、検索の際のアクセス速度を向上させることができる。
【0021】
また本発明に係る記憶装置では、前記メモリは、更に前記実データの内容を把握するためのサムネール情報を記憶し、前記比較回路により前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記サムネール情報を出力することができる。
【0022】
本発明によれば、検索対象となるデータが必要とするものであるか否かの判断の際、補助的にサムネール情報を用いることができるので、検索効率を大幅に向上させることができる。
【0023】
また本発明に係る記憶装置では、前記メモリは、データの書き換えが可能な不揮発性メモリであってもよい。
【0024】
ここでメモリは、電気的又は光学的に、所与の単位でデータが消去可能なものであってもよい。
【0025】
本発明によれば、キーワード情報等を製造時又は初期化時に設定しておけば良く、頻繁に電源が切断される場合であっても、検索効率を向上させることができる記憶装置を提供することができる。また電源が切断された場合でも、キーワード情報等が保持され、検索に必要な記憶内容が破壊されることなく無事である可能性が高くなり、信頼性を向上させることができる。
【0026】
また本発明に係る記憶装置では、前記メモリは、フラッシュメモリであってもよい。
【0027】
本発明によれば、電源が頻繁に切断される場合であっても、検索効率を向上させ、かつ比較的大容量で安価な記憶装置を提供することができる。また電源が切断された場合でもキーワード情報等が保持され、検索に必要な記憶内容が破壊されることなく無事である可能性が高くなり、信頼性を向上させることができる。
【0028】
また本発明は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持する記憶装置の制御方法に関係する。
【0029】
また本発明は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスに基づいて前記メモリにアクセスする記憶装置の制御方法に関係する。
【0030】
また本発明は、その記憶領域が複数の領域に分割されたページを単位に、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、アクセスごとに、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出して、前記実データを検索するための検索キーワードと前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持し、外部からの要求に応じて、保持された先頭アドレスを出力する記憶装置の制御方法に関係する。
【0031】
また本発明は、実データに関連付けられたキーワード情報及び該実データの内容を把握するためのサムネール情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出されたサムネール情報を出力する記憶装置の制御方法に関係する。
【0032】
また本発明に係る記憶装置の制御方法では、 前記キーワード情報を記憶する領域と、前記実データの先頭アドレスを記憶する領域とは、同一ページに存在していてもよい。
【0033】
【発明の実施の形態】
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0034】
図1に、本実施形態における記憶装置の原理的な構成図を示す。本実施形態における記憶装置10は、ホスト20に接続される。ホスト20は、中央処理装置(Central Processing Unit:CPU)やMPUを含み、例えばOS等のソフトウェア制御により、記憶装置10を含むシステム全体の制御を司る。
【0035】
記憶装置10は、メモリ30、アクセス回路40、キーワード保持回路50、比較回路60、ヒットデータレジスタ70を含む。
【0036】
メモリ30は、ホスト20がアクセスする実データを記憶する。その際、ホスト20による検索処理におけるアクセス速度を向上させるため、メモリ30は、当該実データを検索するための1又は複数のキーワード情報(広義には、実データに関連付けられたキーワード情報)と、該実データの記憶領域の先頭アドレスとを互いに関連付けて記憶する。更にメモリ30では、キーワード情報に関連付けて該実データの内容を把握するためのサムネール情報を記憶することもできる。より具体的には、メモリ30は、キーワード情報の記憶領域に関連付けられた記憶領域にサムネール情報と、実データの先頭アドレスとを記憶する。なお、メモリ30が、サムネール情報の記憶領域に関連付けられた記憶領域に実データの先頭アドレスを記憶するようにしても良い。
【0037】
メモリ30では、その記憶領域が複数の領域に分割されたページを単位に、少なくともデータの読み出しが行われる。この場合、当該ページ単位に実データであるファイルのデータが記憶される。したがって、メモリ30では、ページ単位に、上述のキーワード情報、サムネール情報及び実データの先頭アドレスが記憶される。更にメモリ30の各ページにおいて、データ部と冗長部とが設けられる。一般的に、冗長部の記憶容量がデータ部の記憶容量より小さい。したがって、少なくとも実データの先頭アドレスを冗長部に記憶させることが望ましい。こうすることで、記憶容量の大きいデータ部により多くのキーワード情報を記憶させることができると共に、必要に応じてサムネール情報を記憶させることができる。その結果、検索効率が大幅に向上する。
【0038】
アクセス回路40は、ホスト20から指示されたアドレスを用いてメモリ30に対するアクセスを実行する。メモリ30は、アクセス回路40によって出力されたアドレスに対応したページのキーワード情報、サムネール情報及び実データの先頭アドレスを出力する。メモリ30から出力されたキーワード情報、サムネール情報及び実データの先頭アドレスは、データレジスタ32に保持される。
【0039】
またアクセス回路40は、メモリ30から読み出された実データの先頭アドレスを用いて、メモリ30に対する再アクセスを実行するようにしてもよい。この際、再アクセス用のアドレスは、当該先頭アドレスをそのまま用いてもよいし、該先頭アドレスをその一部に用いたアドレスであってもよい。
【0040】
キーワード保持回路50は、ホスト20からの設定コマンドにより設定されたキーワードを保持する。キーワード保持回路50が保持するキーワードは、検索キーワードとして比較回路60に対して供給される。
【0041】
比較回路60は、データレジスタ32に保持された1又は複数のキーワード情報それぞれについて、検索キーワードと一致するか否かを比較する。そして、比較回路60は、その比較結果をヒットデータレジスタ70に対して出力する。
【0042】
ヒットデータレジスタ70は、比較回路60の比較結果に基づいて、データレジスタ32に保持された実データの先頭アドレスを保持する。より具体的には、比較回路60においてデータレジスタ32に保持された1又は複数のキーワード情報のうち少なくとも1つと検索キーワードとの一致が検出されたとき、ヒットデータレジスタ70は、データレジスタ32に保持された実データの先頭アドレスを保持する。ヒットデータレジスタ70に保持されたデータは、ホスト20からのコマンドに応じて、検索アドレスとしてホスト20に対して出力される。
【0043】
データレジスタ32に保持されたサムネール情報は、ホスト20からのコマンドにより、サムネールデータとしてホスト20に対して出力される。
【0044】
このような構成の記憶装置10に記憶されるファイルのデータに対して、ホスト20が検索処理を実行する場合を考える。まずホスト20による設定コマンドにより、所望のファイルの検索に必要なキーワードが記憶装置10に対して設定される。このキーワードは、記憶装置10のキーワード保持回路50に保持される。
【0045】
記憶装置10では、ホスト20によって指示されたアドレスごとに、アクセス回路40がメモリ30に対するアクセスを実行する。
【0046】
メモリ30は、アクセス回路40からのアドレスに対応したページに記憶されたキーワード情報、サムネール情報、実データの先頭アドレスを出力する。出力されたキーワード情報、サムネール情報、実データの先頭アドレスは、データレジスタ32に保持される。比較回路60では、キーワード保持回路50に保持された検索キーワードとデータレジスタ32に保持されたキーワード情報との一致検出が行われる。比較回路60の比較結果は、ヒットデータレジスタ70に反映させる。すなわち比較回路60において検索キーワードとキーワード情報との一致が検出されたことを条件に、ヒットデータレジスタ70はデータレジスタ32に保持された実データの先頭アドレスを保持する。
【0047】
ホスト20から指示されたアドレスにより検索が行われ、キーワード情報と検索キーワードとの一致が検出されるたびに、ヒットデータレジスタ70は実データの先頭アドレスを保持する。このように、ホスト20からのアクセスごとに、キーワード情報の一致検出を行って実データの先頭アドレスを順次ヒットデータレジスタ70に蓄積させる。ヒットデータレジスタ70に保持された先頭アドレスは、例えばホスト20からのコマンドによる指示によって出力させることができる。こうすることで、ホスト20との間のアクセスを最小限に抑えることができ、アクセス速度の向上を図ることができる。
【0048】
以下では、本実施形態における記憶装置10を、不揮発性のフラッシュメモリ装置(広義には半導体記憶装置)に適用した場合について説明する。
【0049】
図2に、フラッシュメモリ装置のハードウェア構成例を示す。フラッシュメモリ装置(半導体記憶装置)100は、フラッシュメモリ110、コマンドシーケンサ120、アドレスセレクタ130、ヒットデータレジスタ140、キーワード比較判定回路150、データセレクタ160を含む。フラッシュメモリ110に入出力されるデータは、一旦データレジスタ112に保持される。
【0050】
図1におけるメモリ30の機能は、フラッシュメモリ110により実現される。図1におけるアクセス回路40の機能は、コマンドシーケンサ120及びアドレスセレクタ130により実現される。図1におけるキーワード保持回路50及び比較回路60の機能は、キーワード比較判定回路150により実現される。図1におけるヒットデータレジスタ70の機能は、ヒットデータレジスタ140により実現される。図1におけるデータレジスタ32の機能は、データレジスタ112により実現される。
【0051】
フラッシュメモリ110は、フラッシュEEPROMを用いて構成され、ページ単位でデータが記憶されている。各ページは、データ部と冗長部とを含む。データ部には、例えば512バイト(B)分の主データが記憶される。冗長部には、主データに対応した例えば16バイト分の関連データが記憶される。アドレスセレクタ130から出力された内部アドレス(アクセスアドレス)i_Adrに対応してフラッシュメモリ110から出力されるページのデータは、データレジスタ112に記憶される。
【0052】
コマンドシーケンサ120は、フラッシュメモリ装置100の各部の制御を司る。コマンドシーケンサ120には、外部(例えばホスト)から各種制御信号が入力される。制御信号には、チップセレクトxCS、コマンドラッチイネーブルCLE、アドレスラッチイネーブルALE、リードイネーブルxRD、ライトイネーブルxWR、ビジーxBUSYがある。チップセレクトxCSは、ホストからフラッシュメモリ装置100にアクセスするためのイネーブル信号である。コマンドラッチイネーブルCLEは、ホストから指定されるコマンドをフラッシュメモリ装置100内の内部レジスタに取り込むための信号である。アドレスラッチイネーブルALEは、ホストから指示されたアドレスをフラッシュメモリ装置100内に取り込むための信号である。リードイネーブルxRDは、フラッシュメモリ110から出力されたデータをデータバス幅単位でシリアル出力させるための信号である。ライトイネーブルxWRは、ホストからの書き込みデータをフラッシュメモリ装置100内に取り込むための信号である。ビジーxBUSYは、フラッシュメモリ装置100の内部動作状態を示す信号である。
【0053】
コマンドシーケンサ120は、これら制御信号と内部動作状態により、フラッシュメモリ110に対して書き込み又は読み出しのタイミング制御を行う。
【0054】
アドレスセレクタ130には、ホストから指示されたアドレス(Adr[25:0])と、ヒットデータレジスタ140に保持されたヒットデータ(h_Data[12:0])とが入力される。ヒットデータは、これに先立ってホストからの指示によるアクセスの結果、ヒットデータレジスタ140に保持された実データの先頭アドレスである。アドレスセレクタ130は、ホストから指示されたアドレスAdrと、該アドレスAdrの少なくとも一部をヒットデータに置き換えたアドレスとのうちいずれか一方を内部アドレスi_Adrとして出力する。
【0055】
ヒットデータレジスタ140には、データレジスタ112に保持された検索されたファイルの先頭アドレスが保持される。より詳しくは、キーワード比較判定回路150の判定結果(比較結果)に基づいて、ヒットデータレジスタ140はデータレジスタ112に保持された先頭アドレスを保持する。
【0056】
ヒットデータレジスタ140に保持された先頭アドレスは、アドレスセレクタ130及びデータセレクタ160に対して出力される。アドレスセレクタ130に出力された先頭アドレスは、フラッシュメモリ110に対する再アクセス用に用いられる。データセレクタ160に出力された先頭アドレスは、ホストに対して検索結果を出力するために用いられる。先頭アドレスがどちらに出力されるかは、ホストからのコマンドに応じて決定される。
【0057】
キーワード比較判定回路150には、ホストからデータセレクタ160を介して検索キーワードが設定される。検索キーワードは、キーワード比較判定回路150において、データレジスタ112に保持されたキーワード情報との比較に用いられる。キーワード比較判定回路150は、キーワード情報ごとに、検索キーワードと比較し、キーワード情報と検索キーワードとが一致するか否かを判定する。キーワード比較判定回路150の判定結果(比較結果)は、ヒットデータレジスタ140に対して通知される。
【0058】
データセレクタ160は、ホストに接続されるデータバスを、データレジスタ112、ヒットデータレジスタ140又はキーワード比較判定回路150のいずれかに接続する。データレジスタ112に保持されたデータ(例えばサムネール情報)は、データセレクタ160を介し、ホストに対して出力される。ヒットデータレジスタ140に保持されたデータ(例えば検索結果の先頭アドレス)は、データセレクタ160を介し、ホストに対して出力される。またホストから指定された検索キーワードが、データセレクタ160を介し、キーワード比較判定回路150に入力される。
【0059】
図3に、ホストから出力されるアドレスAdrについて説明するための図を示す。アドレスAdr[25:22]はエリア指定領域、アドレスAdr[21:13]はブロック指定領域、アドレスAdr[12:9]はページ指定領域である。アドレスセレクタ130は、アドレスAdr[21:9]を切り替えることにより、指定するブロック又はページを切り替えることができる。
【0060】
図4に、フラッシュメモリ装置の要部の詳細な構成例を示す。ただし、図2に示すフラッシュメモリ装置100と同一部分には同一符号を付し、適宜説明を省略する。
【0061】
アドレスセレクタ130は、ページアドレスセレクタ132を含む。ページアドレスセレクタ132は、i_search_sel信号に基づき、アドレスAdr[21:9]又はヒットデータh_Data[12:0]のいずれかを、内部アドレスi_Adr[21:9]として出力する。一方、アドレスセレクタ130は、アドレスAdr[25:22]、Adr[8:0]をそのまま内部アドレスi_Adr[25:22]、i_Adr[8:0]として出力する。こうすることで、アドレスAdr[25:0]の一部のみを置換し、ページ単位でアドレスを切り替えることができる。i_search_sel信号は、ダイレクトアクセスを行うか否かを示す信号である。i_search_sel信号は、ホストによって指定されたコマンドを判別したコマンドシーケンサ120により生成される。
【0062】
ヒットデータレジスタ140は、複数のエントリを有する。各エントリには、データレジスタ112に保持された実データの先頭アドレスが記憶される。なお、データレジスタ112には検索ページのデータ(キーワード情報、サムネール情報、検索対象の実データの先頭アドレス)が保持されている。ヒットアドレスセレクタ142は、ヒットデータレジスタ140のエントリを指定し、当該エントリに先頭アドレスを出力したり、当該エントリから先頭アドレスを読み出すことができる。
【0063】
ヒットデータレジスタ140に保持され、ヒットアドレスセレクタ142によって選択されたエントリのデータ(s_Data)は、ヒットデータh_Data[12:0]としてページアドレスセレクタ132に対して出力される。また、ヒットデータレジスタ140では、i_search_hit信号に基づき、ヒットアドレスセレクタ142によって選択されたエントリに、データレジスタ112に保持された先頭アドレスが格納される。
【0064】
キーワード比較判定回路150は、キーワードレジスタ152と、コンパレータ154とを含む。キーワードレジスタ152には、データセレクタ160を介してホストによって設定される検索キーワードH_KWが設定される。コンパレータ154は、キーワードレジスタ152に設定された検索キーワードと、データレジスタ112に保持されたキーワード情報h_KeyWdとを比較する。その比較結果は、i_search_hit信号として出力される。
【0065】
i_search_hit信号は、ページアドレスセレクタ132、ヒットアドレスセレクタ142及びヒットデータレジスタ140に供給される。
【0066】
i_search_sel信号によりダイレクトアクセスモードに設定されているとき、ページアドレスセレクタ132は、i_search_hit信号により規定されるタイミングで、ヒットデータh_Data[12:0]を内部アドレスi_Adr[21:9]として出力する。またi_search_sel信号によりダイレクトアクセスモードに設定されていないとき、ページアドレスセレクタ132は、アドレスAdr[21:9]を内部アドレスi_Adr[21:9]として出力する。
【0067】
i_search_hit信号によりキーワード情報が検索キーワードと一致したことが通知されたとき、ヒットアドレスセレクタ142は、ヒットデータレジスタ140に対してデータレジスタ112に保持された先頭アドレスを出力する。そして、ヒットデータレジスタ140には、その選択されたエントリに、データレジスタ112からの先頭アドレスが保持される。
【0068】
ホストによる検索キーワードの設定コマンドに基づくi_search_keyword信号によって検索キーワードの設定時には、データセレクタ160は、ホストからのデータを、検索キーワードH_KWとしてキーワードレジスタ152に出力する。一方、検索キーワードを設定しないときは、データセレクタ160は、ホストとデータレジスタ112との間でデータの入出力を行う。
【0069】
またヒットデータレジスタ140において、ヒットアドレスセレクタ142により選択されたエントリに保持された先頭アドレスは、ホストからのコマンドに応じてデータセレクタ160を介してホスト側に出力される(H_Data)。
【0070】
図5に、ダイレクトアクセスモードにおけるフラッシュメモリ装置100の動作タイミング例を示す。チップセレクトxCSにより選択状態になったフラッシュメモリ装置100では、ホストから指示されたアドレスAdrを用いてフラッシュメモリ110にアクセスが行われる。アドレスAdrによりフラッシュメモリ110の検索ページにアクセスされたものとすると、データレジスタ112には検索ページのデータ(キーワード情報、サムネール情報、検索対象の実データの先頭アドレス)が保持される。その後、キーワード比較判定回路150では、検索キーワードとキーワード情報との比較により、キーワードの一致検出が行われる。そして、一致が検出されると、データレジスタ112に保持された実データの先頭アドレスがヒットデータレジスタ140に記憶される。また、アドレスセレクタ130は、アドレスAdr[25:0]の一部を実データの先頭アドレスに置き換えて再アクセス用のアドレスを生成する。その後、再アクセス用のアドレスに基づき再アクセスが行われる。データレジスタ112には、再アクセスデータが保持される。
【0071】
図6に、ダイレクトアクセスモードにおけるフラッシュメモリ装置100の内部信号の動作タイミング例を示す。まずホストは、所望のファイルの検索キーワードを特定する。そして、ホストは、フラッシュメモリ装置100に対し、コマンドにより、検索キーワードを設定すると共に該検索キーワードを用いた検索処理の実行を指示する(T1)。具体的には、フラッシュメモリ装置100では、ホストによりチップレレクトxCSの論理レベルが「L」、コマンドラッチイネーブルCLEの論理レベルが「H」の状態で、ライトイネーブルxWRの立ち下がりでコマンドが取り込まれる。コマンドは例えば上位4ビットでコマンドの内容が識別され、下位4ビットでコマンドに付随するパラメータが与えられる。したがって、上位4ビットのコマンドにより検索を指示し、下位4ビットで検索回数等を指示することも可能である。
【0072】
その後、ホストは、フラッシュメモリ装置100に対して3バイト分のリードアドレスを与える。具体的には、フラッシュメモリ装置100では、チップセレクトxCSの論理レベルが「L」、アドレスラッチイネーブルALEの論理レベルが「H」の状態で、ライトイネーブルxWRの立ち下がりで、ホストからのリードアドレスと、例えば32バイトの検索キーワードH_KWを取り込む。そして、ビジーxBUSYの立ち下がりで、アドレスセレクタ130を初期化してホストから指示されたアドレス(Adr[25:0])をそのままフラッシュメモリ110に対して出力するように設定する(T2)。
【0073】
そしてフラッシュメモリ装置100では、フラッシュメモリ110に対するリードアクセスが実行される。具体的には、内部リード信号i_xRDの立ち下がりで、ホストから指示されたアドレスAdr[25:0]に対応するページデータがフラッシュメモリ110から読み出され、データレジスタ112に記憶される。更に、キーワード比較判定回路150において、キーワードレジスタ152に保持された検索キーワード(H_KW)と、データレジスタ112に記憶されたページデータに含まれるキーワード情報(h_KeyWd)とが比較され、一致するか否かが判定される。そして、一致すると判定されたとき、i_search_hit信号の論理レベルを「L」から「H」に変化させ、その立ち上がりエッジでデータレジスタ112に記憶されたページデータに含まれる実データの先頭アドレスをヒットアドレスセレクタ142を介して、ヒットデータレジスタ140の所与の1エントリに格納する(T3)。
【0074】
そして、フラッシュメモリ装置100では、ビジーxBUSYの論理レベルを「H」に変化させ、アクセスを終了する。
【0075】
次に、フラッシュメモリ装置100の動作について説明する。
【0076】
図7に、フラッシュメモリ装置100におけるページ構成例を示す。ページデータは、528バイトである。各ページは、データ部と冗長部とを含む。冗長部のデータは、データ部の記憶領域に関連付けられた記憶領域に記憶される。データ部には、512バイト(B)のユーザデータが記憶される。図7において、ユーザデータは、第1及び第2のキーワード情報と、サムネール情報とを含む。第1及び第2のキーワード情報は、それぞれ文字、英数字、記号を含むデータであり、各32バイトの検索に必要な情報(例えばテキストデータ)である。サムネール情報は、検索対象となる実データの内容を把握するための画像や要約等の概要を示す情報(例えばバイナリデータ又はテキストデータ)である。なお、データ部には、キーワード情報が1つのみであってもよいし、キーワード情報が3以上含まれていても良い。キーワード情報の数は、データ部の記憶容量に応じて決定される。
【0077】
冗長部には、計16バイトの第1及び第2の冗長データが記憶される。そのうち、2バイトの第2の冗長データは、13ビット(b)の実データの先頭アドレスを含む。
【0078】
図8に、フラッシュメモリ装置におけるキーワード検索フローの一例を示す。
まずフラッシュメモリ装置100では、ホストから指示されたアドレスを用いてフラッシュメモリ110がアクセスされる(ステップS300)。次に、ホストから指示されたアドレスに対応するページに記憶された第1及び第2のキーワード情報、サムネール情報及び実アドレスの先頭アドレスが、フラッシュメモリ110から読み出される。読み出されたデータは、データレジスタ112に保持される(ステップS301)。
【0079】
そして、キーワード比較判定回路150のコンパレータ154において、予めホストにより設定された検索キーワードと一致するか否かが判別される(ステップS302)。コンパレータ154において検索キーワードと第1又は第2のキーワード情報とが一致すると判別されたとき(ステップS302:Y)、冗長部に記憶された実データの先頭アドレスがヒットデータレジスタ140にラッチされる(ステップS303)。
【0080】
そして、ホストにより、ダイレクトアクセスモードに設定されているとき(ステップS304:Y)、ラッチされた実データの先頭アドレスはヒットデータh_Data[12:0]としてページアドレスセレクタ132に供給される。ページアドレスセレクタ132は、アドレスAdr[21:9]をヒットデータh_Data[12:0]に置換したアドレスによりフラッシュメモリ110にアクセスし(ステップS305)、一連のアクセスを終了する(エンド)。
【0081】
一方、ステップS302で第1及び第2のキーワード情報が検索キーワードと一致しないと判別されたとき(ステップS302:N)、或いはステップS304でダイレクトアクセスモードに設定されていないとき(ステップS304:N)、一連のキーワード検索のアクセスを終了する(エンド)。
【0082】
図9に、フラッシュメモリ装置100が適用されるメモリシステムの構成の概要を示す。このメモリシステムでは、本実施形態におけるフラッシュメモリ装置100が、ホスト400に接続される。ホスト400は、CPU又はMPUを含み、メモリシステム全体の制御を司る。ホスト400上で動作するOSの指示により、ホスト400は、ワークメモリ410に記憶されたデータに対して処理を行う。
【0083】
フラッシュメモリ装置100には、複数のファイルのデータが記憶される。これらファイルの所在(フラッシュメモリ110におけるアドレス)は、ディレクトリ情報と呼ばれるファイル管理情報により管理される。ディレクトリ情報もまた、フラッシュメモリ装置100に記憶される。この場合、例えばメモリシステムの初期化時において、フラッシュメモリ装置100に記憶されたディレクトリ情報がワークメモリ410上に展開される。ホスト400は、ワークメモリ410に展開されたディレクトリ情報を参照して、フラッシュメモリ装置100に記憶されたファイルにアクセスを実行する。
【0084】
図10に、ディレクトリ情報の構成例を示す。ディレクトリ情報には、各ファイルのファイル名に対応して、アドレスが記憶される。このアドレスは、ファイルのデータが記憶されるフラッシュメモリ装置100の論理的な先頭アドレスである。例えば、ファイル名「A」というファイルにアクセスする場合、ディレクトリ情報を参照してファイル「A」が記憶されるフラッシュメモリ装置100の先頭アドレスaを得る。そこでホスト400が、該先頭アドレスaによりフラッシュメモリ装置100にアクセスすることで、アドレスaに対応するページに記憶されたファイル「A」のデータを読み出すことができる。
【0085】
図11に、メモリシステムにおけるフラッシュメモリ装置100の動作を模式的に示す。フラッシュメモリ装置100のフラッシュメモリ110において、ファイル「A」、「B」、「C」のデータが記憶されるページの先頭アドレスをアドレスa、b、cとする。ファイルaに対応するページには、ホスト400によって、予めデータ部にキーワード情報key1a、key2a(第1及び第2のキーワード情報)と、サムネール情報とが設定され、冗長部に実データの先頭アドレス(実アドレス)a´が設定される。同様に、ファイルb(ファイルc)に対応するページには、ホスト400によって、予めデータ部にキーワード情報key1b、key2b(key1c、key2c)と、サムネール情報とが設定され、冗長部に実データの先頭アドレス(実アドレス)b´(c´)が設定される。
【0086】
ここで、ホスト400がフラッシュメモリ装置100に対し、キーワードKWを含むファイルを検索する場合を考える。まずホスト400は、キーワード検索に先立って、フラッシュメモリ装置100に対してキーワードKWを設定する。
このキーワードKWは、キーワード比較判定回路150のキーワードレジスタ152に保持される。
【0087】
次にホスト400は、図10に示すディレクトリ情報を参照して、検索対象のファイル「A」、「B」、「C」、・・・のそれぞれが記憶されるページの先頭アドレスa、b、c、・・・を取得する。ホスト400は、アドレスa、b、c、・・・の順にフラッシュメモリ装置100にアクセスし、キーワードKWを含むファイルの検索処理を行う。
【0088】
すなわち、ホスト400は、まずファイル「A」がキーワードKWを含むか否かを判別するため、ファイル「A」が記憶されるページに対応するアドレスaを用いてフラッシュメモリ装置100にアクセスする。フラッシュメモリ装置100では、例えば論理アドレスと物理アドレスとの間の変換等を行ってフラッシュメモリ110にアクセスすることができるが、ここでは説明の簡略化のためにアドレス変換を行わないものとする。
【0089】
フラッシュメモリ装置100では、ファイルaに対応したページのデータがデータレジスタ112に保持される。ファイルaに対応したページのデータは、キーワード情報key1a、key1bと、サムネール情報と、実データの先頭アドレス(実アドレス)a´である。
【0090】
次に、キーワード比較判定回路150において、予め設定されたキーワードKWと、キーワード情報key1a、key1bとの比較が行われる。その結果、キーワードKWと、いずれかのキーワード情報とが一致したことが検出されると、データレジスタ112に保持された実データの先頭アドレスa´がヒットデータレジスタ140に保持される。
【0091】
以上のような手順を、ファイル「B」、「C」、・・・の順で行うことで、ホスト400からの1回のアクセスのみで、キーワードKWを含むファイルの先頭アドレスをヒットデータレジスタ140に蓄積させることが可能となる。
【0092】
ここで、ホストからのコマンドによってダイレクトアクセスモードに設定されている場合、アドレスセレクタ130により、ヒットデータレジスタ140に保持された実データの先頭アドレスa´を用いて、図11に示すように再アクセスを行うことができる。アドレスセレクタ130は、例えば図4に示すようにアドレスaの一部のみをアドレスa´に置換しても良いし、そのまま用いることも可能である。アドレスa´に基づいて、再アクセス用のアドレスが生成されればよい。
【0093】
このようにアドレスセレクタ130により、アドレスa´に対応するページにアクセスして、該ページに記憶されたファイル「A」の実データがデータレジスタ112に保持される。このファイル「A」の実データは、例えばホスト400からの指示により、ホスト400に対して出力される。
【0094】
或いは、ヒットデータレジスタ140にファイルの実アドレスa´が保持されているものとする。この場合、図12(A)に示すように、ホスト400からの第1のコマンドにより、ヒットデータレジスタ140にファイルの実アドレスa´をホスト400に対して出力するようにしてもよい。より具体的には、フラッシュメモリ装置100が内蔵するコマンドデコーダ420により、ホスト400からのコマンドをデコードする。その結果、当該コマンドがヒットデータレジスタ140の保持内容の出力指示であることを判別すると、ヒットデータレジスタ140に保持された実アドレスa´を、例えば図4に示すデータセレクタ160を介してホスト400に対し出力する。ホスト400では、キーワードKWの検索のみでは所望のファイルか否かを判断できないとき、ファイル「A」のサムネール情報を読み出して判断した上で、必要に応じて実アドレスa´を用いてファイル「A」のデータを改めて読み出すことができる。
【0095】
更にヒットデータレジスタ140にファイルの実アドレスa´、b´、c´が保持されているものとする。この場合、図12(B)に示すように、ホスト400からの第2のコマンドにより、ヒットデータレジスタ140に保持された内容を一括してホスト400に対して出力するようにしてもよい。より具体的には、フラッシュメモリ装置100が内蔵するコマンドデコーダ420により、ホスト400からのコマンドをデコードする。その結果、当該コマンドがヒットデータレジスタ140の保持内容の一括出力指示であることが判別すると、ヒットデータレジスタ140に保持された実アドレスa´、b´、c´を、例えば図4に示すデータセレクタ160を介してホスト400に対し出力する。
ホスト400では、キーワードKWの検索のみでは所望のファイルか否かを判断できないとき、ファイル「A」のサムネール情報を読み出して判断した上で、必要に応じて実アドレスa´を用いてファイル「A」のデータを改めて読み出すことができる。ホスト400では、キーワードKWの検索のみでは所望のファイルか否かを判断できないとき、ファイル「A」、「B」、「C」のサムネール情報を読み出して判断した上で、必要なファイルの実アドレスを用いて当該ファイルのデータを改めて読み出すことができる。
【0096】
このようにフラッシュメモリ装置100が適用されるメモリシステムでは、ホストから指示される検索の効率を大幅に向上させることができ、ホストを含むシステム全体の処理能力の低下を防止することができる。
【0097】
以上説明した実施形態では、半導体記憶装置として、不揮発性で、かつアクセス速度が遅いフラッシュメモリを含むものを例に説明したが、これに限定されるものではない。例えば、揮発性のメモリであるSRAMやDRAMを含む半導体記憶装置であってもよい。
【0098】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
【0099】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【図1】本実施形態における記憶装置の原理的な構成を示すブロック図。
【図2】フラッシュメモリ装置のハードウェア構成例を示すブロック図。
【図3】ホストから出力されるアドレスについての説明図。
【図4】フラッシュメモリ装置の要部の詳細な構成例を示すブロック図。
【図5】フラッシュメモリ装置の動作タイミング例を示すタイミング図。
【図6】フラッシュメモリ装置の内部信号の動作タイミング例を示すタイミング図。
【図7】フラッシュメモリ装置におけるページ構成例を示す説明図。
【図8】フラッシュメモリ装置のキーワード検索の一例のフロー図。
【図9】メモリシステムの構成の概要を示すブロック図。
【図10】ディレクトリ情報の構成例を示す説明図。
【図11】フラッシュメモリ装置の動作を説明する模式図。
【図12】図12(A)はホストからの出力指示があった場合の説明図。図12(B)はホストからの一括出力指示があった場合の説明図。
【符号の説明】
10 記憶装置、20、400 ホスト、30 メモリ、32、112 データレジスタ、40 アクセス回路、50 キーワード保持回路、60 比較回路、70、140 ヒットデータレジスタ、100 フラッシュメモリ装置(半導体記憶装置)、110 フラッシュメモリ、120 コマンドシーケンサ、130アドレスセレクタ、132 ページアドレスセレクタ、142 ヒットアドレスセレクタ、150 キーワード比較判定回路、152 キーワードレジスタ、154 コンパレータ、160 データセレクタ、410 ワークメモリ、420 コマンドデコーダ
【発明の属する技術分野】
本発明は、記憶装置及びその制御方法に関する。
【0002】
【従来の技術】
半導体記憶装置(広義には記憶装置)の1つとして、フラッシュEEPROM(Electrically Erasable Programmable Read-Only Memory)等のフラッシュメモリを内蔵するフラッシュメモリ装置がある。このフラッシュメモリ装置は、書き換え回数の制限があるものの、不揮発性で、かつ書き換え可能である。そのため、内蔵するメモリの大容量化に伴い、フラッシュメモリ装置は、ファイル管理情報を記憶するファイルメモリとして使用されることが多くなっている。例えばフラッシュメモリ装置は、メモリカードとして従来のハードディスク装置に代えて、パーソナルコンピュータ、PDA(Personal Digital Assistant)又はディジタルカメラの外部記憶装置として用いられる。
【0003】
フラッシュメモリ装置に記憶されたファイルのデータにアクセスする場合、パーソナルコンピュータやPDA等の制御を司るホスト(CPU)側で実行されるオペレーティングシステム(OS)がファイル管理情報を参照し、所望のファイルの格納位置に対応するアドレスを用いたアクセスを指示する。フラッシュメモリ装置は、ホストから指示されたアドレスに対し、当該アドレスに対応して記憶されたデータを出力する。
【0004】
このようなファイル管理情報は、頻繁に更新されるため、フラッシュメモリ内の所定の領域において書き換えの局所的な集中が発生する場合がある。そのため、OSが管理する論理アドレスとフラッシュメモリの物理アドレスとのアドレス変換の制御が行われる(例えば特許文献1参照。)。これにより、メモリのブロック単位の書き換え回数を平均化させて、フラッシュメモリ装置の寿命を延ばすことができる。
【0005】
【特許文献1】
特開2000−285001号公報
【0006】
【発明が解決しようとする課題】
しかしながら、上述のフラッシュメモリ装置を始めとするその他の記憶装置では、ホストから指示された論理アドレスを物理アドレスに変換し、該物理アドレスに対するアクセスのみを実行するものであった。したがって、ホスト側において所望のファイル名が不明な場合、ホストからの指示により記憶装置から全てのファイルを読み出し、その上で例えばユーザがその内容を確認する等してファイルの取捨選択処理を行う必要があり、検索効率が著しく低かった。このように、ホスト側でファイル名が不明な場合に自動検索を行うことが困難であり、なおかつユーザがファイルの内容を確認して目的のファイルを探すといった煩雑な作業が必要とされていた。特に、フラッシュメモリのように、読み出し速度が遅い場合、ホストを含むシステム全体の処理能力を大幅に低下させてしまうという問題があった。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、記憶内容の検索効率を向上させる記憶装置及びその制御方法を提供することにある。
【0008】
【課題を解決するための手段】
上記課題を解決するために本発明は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリと、入力されたアドレスに対応した前記メモリの記憶領域にアクセスして、前記アドレスに対応して記憶されたキーワード情報及び前記先頭アドレスを読み出すアクセス回路と、前記実データを検索するための検索キーワードを保持するキーワード保持回路と、前記検索キーワードと、前記アクセス回路により読み出されたキーワード情報とを比較する比較回路と、前記比較回路において前記検索キーワードと前記キーワード情報とが一致したと判断されたとき、前記アクセス回路により読み出された前記先頭アドレスを保持するヒットデータレジスタとを含む記憶装置に関係する。
【0009】
本発明においては、検索に先立ってキーワード保持回路に検索キーワードが保持される。そして、メモリには、実データを検索するためのキーワード情報と、該実データの先頭アドレスとが、互いに関連付けて記憶されている。そこで、アクセスしたアドレスのキーワード情報をメモリから読み出し、比較回路において検索キーワードとを比較する。そして、検索キーワードと一致したときに、当該実データの先頭アドレスをヒットデータレジスタに保持していく。これにより、メモリから実データを読み出して、所望のデータであるか否かを判断する必要がなくなり、判断処理の負荷軽減と、アクセス速度の向上とを図ることができる。
【0010】
本発明に係る記憶装置では、前記キーワード情報を記憶する領域と、前記実データの先頭アドレスを記憶する領域とは、同一ページに存在していてもよい。
【0011】
ここで、ページは、複数のデータが一括して読み出される記憶単位と言うことができる。
【0012】
本発明によれば、複数ページまたがってキーワード情報と実データの先頭アドレスが記憶される場合に比べて、ページ単位に読み出しが行われる記憶装置では、検索に必要な処理時間が短縮される。
【0013】
本発明に係る記憶装置では、前記メモリは、その記憶領域が複数の領域に分割されたページを単位に、前記キーワード情報及び前記先頭アドレスを記憶することができる。
【0014】
本発明によれば、ページ単位に検索処理が可能な記憶装置を提供することができるので、任意の領域にデータが記憶される場合に比べて構成を簡素化することができ、かつ検索効率を向上させることができる。
【0015】
また本発明に係る記憶装置では、外部からの要求に応じて、前記ヒットデータレジスタに保持された先頭アドレスを外部に出力することができる。
【0016】
本発明によれば、外部からの要求があったときのみ先頭アドレスを外部に出力させることができるので、アクセスのオーバーヘッドを削除することができ、検索処理に伴うアクセス速度を向上させることができる。
【0017】
また本発明に係る記憶装置では、前記ヒットデータレジスタは、複数回の各アクセスのアドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持し、外部からの要求に応じて、前記ヒットデータレジスタに保持された複数の先頭アドレスを外部に出力することができる。
【0018】
本発明によれば、検索対象のデータが記憶される先頭アドレスのみを一括して取得することができるので、各アクセスのオーバーヘッドを削除することができ、検索処理に伴うアクセス速度を大幅に向上させることができる。
【0019】
また本発明に係る記憶装置では、前記アクセス回路は、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスに基づいて前記メモリにアクセスすることができる。
【0020】
本発明によれば、検索されたデータを連続的にアクセスすることができるので、検索の際のアクセス速度を向上させることができる。
【0021】
また本発明に係る記憶装置では、前記メモリは、更に前記実データの内容を把握するためのサムネール情報を記憶し、前記比較回路により前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記サムネール情報を出力することができる。
【0022】
本発明によれば、検索対象となるデータが必要とするものであるか否かの判断の際、補助的にサムネール情報を用いることができるので、検索効率を大幅に向上させることができる。
【0023】
また本発明に係る記憶装置では、前記メモリは、データの書き換えが可能な不揮発性メモリであってもよい。
【0024】
ここでメモリは、電気的又は光学的に、所与の単位でデータが消去可能なものであってもよい。
【0025】
本発明によれば、キーワード情報等を製造時又は初期化時に設定しておけば良く、頻繁に電源が切断される場合であっても、検索効率を向上させることができる記憶装置を提供することができる。また電源が切断された場合でも、キーワード情報等が保持され、検索に必要な記憶内容が破壊されることなく無事である可能性が高くなり、信頼性を向上させることができる。
【0026】
また本発明に係る記憶装置では、前記メモリは、フラッシュメモリであってもよい。
【0027】
本発明によれば、電源が頻繁に切断される場合であっても、検索効率を向上させ、かつ比較的大容量で安価な記憶装置を提供することができる。また電源が切断された場合でもキーワード情報等が保持され、検索に必要な記憶内容が破壊されることなく無事である可能性が高くなり、信頼性を向上させることができる。
【0028】
また本発明は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持する記憶装置の制御方法に関係する。
【0029】
また本発明は、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスに基づいて前記メモリにアクセスする記憶装置の制御方法に関係する。
【0030】
また本発明は、その記憶領域が複数の領域に分割されたページを単位に、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、アクセスごとに、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出して、前記実データを検索するための検索キーワードと前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持し、外部からの要求に応じて、保持された先頭アドレスを出力する記憶装置の制御方法に関係する。
【0031】
また本発明は、実データに関連付けられたキーワード情報及び該実データの内容を把握するためのサムネール情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出されたサムネール情報を出力する記憶装置の制御方法に関係する。
【0032】
また本発明に係る記憶装置の制御方法では、 前記キーワード情報を記憶する領域と、前記実データの先頭アドレスを記憶する領域とは、同一ページに存在していてもよい。
【0033】
【発明の実施の形態】
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0034】
図1に、本実施形態における記憶装置の原理的な構成図を示す。本実施形態における記憶装置10は、ホスト20に接続される。ホスト20は、中央処理装置(Central Processing Unit:CPU)やMPUを含み、例えばOS等のソフトウェア制御により、記憶装置10を含むシステム全体の制御を司る。
【0035】
記憶装置10は、メモリ30、アクセス回路40、キーワード保持回路50、比較回路60、ヒットデータレジスタ70を含む。
【0036】
メモリ30は、ホスト20がアクセスする実データを記憶する。その際、ホスト20による検索処理におけるアクセス速度を向上させるため、メモリ30は、当該実データを検索するための1又は複数のキーワード情報(広義には、実データに関連付けられたキーワード情報)と、該実データの記憶領域の先頭アドレスとを互いに関連付けて記憶する。更にメモリ30では、キーワード情報に関連付けて該実データの内容を把握するためのサムネール情報を記憶することもできる。より具体的には、メモリ30は、キーワード情報の記憶領域に関連付けられた記憶領域にサムネール情報と、実データの先頭アドレスとを記憶する。なお、メモリ30が、サムネール情報の記憶領域に関連付けられた記憶領域に実データの先頭アドレスを記憶するようにしても良い。
【0037】
メモリ30では、その記憶領域が複数の領域に分割されたページを単位に、少なくともデータの読み出しが行われる。この場合、当該ページ単位に実データであるファイルのデータが記憶される。したがって、メモリ30では、ページ単位に、上述のキーワード情報、サムネール情報及び実データの先頭アドレスが記憶される。更にメモリ30の各ページにおいて、データ部と冗長部とが設けられる。一般的に、冗長部の記憶容量がデータ部の記憶容量より小さい。したがって、少なくとも実データの先頭アドレスを冗長部に記憶させることが望ましい。こうすることで、記憶容量の大きいデータ部により多くのキーワード情報を記憶させることができると共に、必要に応じてサムネール情報を記憶させることができる。その結果、検索効率が大幅に向上する。
【0038】
アクセス回路40は、ホスト20から指示されたアドレスを用いてメモリ30に対するアクセスを実行する。メモリ30は、アクセス回路40によって出力されたアドレスに対応したページのキーワード情報、サムネール情報及び実データの先頭アドレスを出力する。メモリ30から出力されたキーワード情報、サムネール情報及び実データの先頭アドレスは、データレジスタ32に保持される。
【0039】
またアクセス回路40は、メモリ30から読み出された実データの先頭アドレスを用いて、メモリ30に対する再アクセスを実行するようにしてもよい。この際、再アクセス用のアドレスは、当該先頭アドレスをそのまま用いてもよいし、該先頭アドレスをその一部に用いたアドレスであってもよい。
【0040】
キーワード保持回路50は、ホスト20からの設定コマンドにより設定されたキーワードを保持する。キーワード保持回路50が保持するキーワードは、検索キーワードとして比較回路60に対して供給される。
【0041】
比較回路60は、データレジスタ32に保持された1又は複数のキーワード情報それぞれについて、検索キーワードと一致するか否かを比較する。そして、比較回路60は、その比較結果をヒットデータレジスタ70に対して出力する。
【0042】
ヒットデータレジスタ70は、比較回路60の比較結果に基づいて、データレジスタ32に保持された実データの先頭アドレスを保持する。より具体的には、比較回路60においてデータレジスタ32に保持された1又は複数のキーワード情報のうち少なくとも1つと検索キーワードとの一致が検出されたとき、ヒットデータレジスタ70は、データレジスタ32に保持された実データの先頭アドレスを保持する。ヒットデータレジスタ70に保持されたデータは、ホスト20からのコマンドに応じて、検索アドレスとしてホスト20に対して出力される。
【0043】
データレジスタ32に保持されたサムネール情報は、ホスト20からのコマンドにより、サムネールデータとしてホスト20に対して出力される。
【0044】
このような構成の記憶装置10に記憶されるファイルのデータに対して、ホスト20が検索処理を実行する場合を考える。まずホスト20による設定コマンドにより、所望のファイルの検索に必要なキーワードが記憶装置10に対して設定される。このキーワードは、記憶装置10のキーワード保持回路50に保持される。
【0045】
記憶装置10では、ホスト20によって指示されたアドレスごとに、アクセス回路40がメモリ30に対するアクセスを実行する。
【0046】
メモリ30は、アクセス回路40からのアドレスに対応したページに記憶されたキーワード情報、サムネール情報、実データの先頭アドレスを出力する。出力されたキーワード情報、サムネール情報、実データの先頭アドレスは、データレジスタ32に保持される。比較回路60では、キーワード保持回路50に保持された検索キーワードとデータレジスタ32に保持されたキーワード情報との一致検出が行われる。比較回路60の比較結果は、ヒットデータレジスタ70に反映させる。すなわち比較回路60において検索キーワードとキーワード情報との一致が検出されたことを条件に、ヒットデータレジスタ70はデータレジスタ32に保持された実データの先頭アドレスを保持する。
【0047】
ホスト20から指示されたアドレスにより検索が行われ、キーワード情報と検索キーワードとの一致が検出されるたびに、ヒットデータレジスタ70は実データの先頭アドレスを保持する。このように、ホスト20からのアクセスごとに、キーワード情報の一致検出を行って実データの先頭アドレスを順次ヒットデータレジスタ70に蓄積させる。ヒットデータレジスタ70に保持された先頭アドレスは、例えばホスト20からのコマンドによる指示によって出力させることができる。こうすることで、ホスト20との間のアクセスを最小限に抑えることができ、アクセス速度の向上を図ることができる。
【0048】
以下では、本実施形態における記憶装置10を、不揮発性のフラッシュメモリ装置(広義には半導体記憶装置)に適用した場合について説明する。
【0049】
図2に、フラッシュメモリ装置のハードウェア構成例を示す。フラッシュメモリ装置(半導体記憶装置)100は、フラッシュメモリ110、コマンドシーケンサ120、アドレスセレクタ130、ヒットデータレジスタ140、キーワード比較判定回路150、データセレクタ160を含む。フラッシュメモリ110に入出力されるデータは、一旦データレジスタ112に保持される。
【0050】
図1におけるメモリ30の機能は、フラッシュメモリ110により実現される。図1におけるアクセス回路40の機能は、コマンドシーケンサ120及びアドレスセレクタ130により実現される。図1におけるキーワード保持回路50及び比較回路60の機能は、キーワード比較判定回路150により実現される。図1におけるヒットデータレジスタ70の機能は、ヒットデータレジスタ140により実現される。図1におけるデータレジスタ32の機能は、データレジスタ112により実現される。
【0051】
フラッシュメモリ110は、フラッシュEEPROMを用いて構成され、ページ単位でデータが記憶されている。各ページは、データ部と冗長部とを含む。データ部には、例えば512バイト(B)分の主データが記憶される。冗長部には、主データに対応した例えば16バイト分の関連データが記憶される。アドレスセレクタ130から出力された内部アドレス(アクセスアドレス)i_Adrに対応してフラッシュメモリ110から出力されるページのデータは、データレジスタ112に記憶される。
【0052】
コマンドシーケンサ120は、フラッシュメモリ装置100の各部の制御を司る。コマンドシーケンサ120には、外部(例えばホスト)から各種制御信号が入力される。制御信号には、チップセレクトxCS、コマンドラッチイネーブルCLE、アドレスラッチイネーブルALE、リードイネーブルxRD、ライトイネーブルxWR、ビジーxBUSYがある。チップセレクトxCSは、ホストからフラッシュメモリ装置100にアクセスするためのイネーブル信号である。コマンドラッチイネーブルCLEは、ホストから指定されるコマンドをフラッシュメモリ装置100内の内部レジスタに取り込むための信号である。アドレスラッチイネーブルALEは、ホストから指示されたアドレスをフラッシュメモリ装置100内に取り込むための信号である。リードイネーブルxRDは、フラッシュメモリ110から出力されたデータをデータバス幅単位でシリアル出力させるための信号である。ライトイネーブルxWRは、ホストからの書き込みデータをフラッシュメモリ装置100内に取り込むための信号である。ビジーxBUSYは、フラッシュメモリ装置100の内部動作状態を示す信号である。
【0053】
コマンドシーケンサ120は、これら制御信号と内部動作状態により、フラッシュメモリ110に対して書き込み又は読み出しのタイミング制御を行う。
【0054】
アドレスセレクタ130には、ホストから指示されたアドレス(Adr[25:0])と、ヒットデータレジスタ140に保持されたヒットデータ(h_Data[12:0])とが入力される。ヒットデータは、これに先立ってホストからの指示によるアクセスの結果、ヒットデータレジスタ140に保持された実データの先頭アドレスである。アドレスセレクタ130は、ホストから指示されたアドレスAdrと、該アドレスAdrの少なくとも一部をヒットデータに置き換えたアドレスとのうちいずれか一方を内部アドレスi_Adrとして出力する。
【0055】
ヒットデータレジスタ140には、データレジスタ112に保持された検索されたファイルの先頭アドレスが保持される。より詳しくは、キーワード比較判定回路150の判定結果(比較結果)に基づいて、ヒットデータレジスタ140はデータレジスタ112に保持された先頭アドレスを保持する。
【0056】
ヒットデータレジスタ140に保持された先頭アドレスは、アドレスセレクタ130及びデータセレクタ160に対して出力される。アドレスセレクタ130に出力された先頭アドレスは、フラッシュメモリ110に対する再アクセス用に用いられる。データセレクタ160に出力された先頭アドレスは、ホストに対して検索結果を出力するために用いられる。先頭アドレスがどちらに出力されるかは、ホストからのコマンドに応じて決定される。
【0057】
キーワード比較判定回路150には、ホストからデータセレクタ160を介して検索キーワードが設定される。検索キーワードは、キーワード比較判定回路150において、データレジスタ112に保持されたキーワード情報との比較に用いられる。キーワード比較判定回路150は、キーワード情報ごとに、検索キーワードと比較し、キーワード情報と検索キーワードとが一致するか否かを判定する。キーワード比較判定回路150の判定結果(比較結果)は、ヒットデータレジスタ140に対して通知される。
【0058】
データセレクタ160は、ホストに接続されるデータバスを、データレジスタ112、ヒットデータレジスタ140又はキーワード比較判定回路150のいずれかに接続する。データレジスタ112に保持されたデータ(例えばサムネール情報)は、データセレクタ160を介し、ホストに対して出力される。ヒットデータレジスタ140に保持されたデータ(例えば検索結果の先頭アドレス)は、データセレクタ160を介し、ホストに対して出力される。またホストから指定された検索キーワードが、データセレクタ160を介し、キーワード比較判定回路150に入力される。
【0059】
図3に、ホストから出力されるアドレスAdrについて説明するための図を示す。アドレスAdr[25:22]はエリア指定領域、アドレスAdr[21:13]はブロック指定領域、アドレスAdr[12:9]はページ指定領域である。アドレスセレクタ130は、アドレスAdr[21:9]を切り替えることにより、指定するブロック又はページを切り替えることができる。
【0060】
図4に、フラッシュメモリ装置の要部の詳細な構成例を示す。ただし、図2に示すフラッシュメモリ装置100と同一部分には同一符号を付し、適宜説明を省略する。
【0061】
アドレスセレクタ130は、ページアドレスセレクタ132を含む。ページアドレスセレクタ132は、i_search_sel信号に基づき、アドレスAdr[21:9]又はヒットデータh_Data[12:0]のいずれかを、内部アドレスi_Adr[21:9]として出力する。一方、アドレスセレクタ130は、アドレスAdr[25:22]、Adr[8:0]をそのまま内部アドレスi_Adr[25:22]、i_Adr[8:0]として出力する。こうすることで、アドレスAdr[25:0]の一部のみを置換し、ページ単位でアドレスを切り替えることができる。i_search_sel信号は、ダイレクトアクセスを行うか否かを示す信号である。i_search_sel信号は、ホストによって指定されたコマンドを判別したコマンドシーケンサ120により生成される。
【0062】
ヒットデータレジスタ140は、複数のエントリを有する。各エントリには、データレジスタ112に保持された実データの先頭アドレスが記憶される。なお、データレジスタ112には検索ページのデータ(キーワード情報、サムネール情報、検索対象の実データの先頭アドレス)が保持されている。ヒットアドレスセレクタ142は、ヒットデータレジスタ140のエントリを指定し、当該エントリに先頭アドレスを出力したり、当該エントリから先頭アドレスを読み出すことができる。
【0063】
ヒットデータレジスタ140に保持され、ヒットアドレスセレクタ142によって選択されたエントリのデータ(s_Data)は、ヒットデータh_Data[12:0]としてページアドレスセレクタ132に対して出力される。また、ヒットデータレジスタ140では、i_search_hit信号に基づき、ヒットアドレスセレクタ142によって選択されたエントリに、データレジスタ112に保持された先頭アドレスが格納される。
【0064】
キーワード比較判定回路150は、キーワードレジスタ152と、コンパレータ154とを含む。キーワードレジスタ152には、データセレクタ160を介してホストによって設定される検索キーワードH_KWが設定される。コンパレータ154は、キーワードレジスタ152に設定された検索キーワードと、データレジスタ112に保持されたキーワード情報h_KeyWdとを比較する。その比較結果は、i_search_hit信号として出力される。
【0065】
i_search_hit信号は、ページアドレスセレクタ132、ヒットアドレスセレクタ142及びヒットデータレジスタ140に供給される。
【0066】
i_search_sel信号によりダイレクトアクセスモードに設定されているとき、ページアドレスセレクタ132は、i_search_hit信号により規定されるタイミングで、ヒットデータh_Data[12:0]を内部アドレスi_Adr[21:9]として出力する。またi_search_sel信号によりダイレクトアクセスモードに設定されていないとき、ページアドレスセレクタ132は、アドレスAdr[21:9]を内部アドレスi_Adr[21:9]として出力する。
【0067】
i_search_hit信号によりキーワード情報が検索キーワードと一致したことが通知されたとき、ヒットアドレスセレクタ142は、ヒットデータレジスタ140に対してデータレジスタ112に保持された先頭アドレスを出力する。そして、ヒットデータレジスタ140には、その選択されたエントリに、データレジスタ112からの先頭アドレスが保持される。
【0068】
ホストによる検索キーワードの設定コマンドに基づくi_search_keyword信号によって検索キーワードの設定時には、データセレクタ160は、ホストからのデータを、検索キーワードH_KWとしてキーワードレジスタ152に出力する。一方、検索キーワードを設定しないときは、データセレクタ160は、ホストとデータレジスタ112との間でデータの入出力を行う。
【0069】
またヒットデータレジスタ140において、ヒットアドレスセレクタ142により選択されたエントリに保持された先頭アドレスは、ホストからのコマンドに応じてデータセレクタ160を介してホスト側に出力される(H_Data)。
【0070】
図5に、ダイレクトアクセスモードにおけるフラッシュメモリ装置100の動作タイミング例を示す。チップセレクトxCSにより選択状態になったフラッシュメモリ装置100では、ホストから指示されたアドレスAdrを用いてフラッシュメモリ110にアクセスが行われる。アドレスAdrによりフラッシュメモリ110の検索ページにアクセスされたものとすると、データレジスタ112には検索ページのデータ(キーワード情報、サムネール情報、検索対象の実データの先頭アドレス)が保持される。その後、キーワード比較判定回路150では、検索キーワードとキーワード情報との比較により、キーワードの一致検出が行われる。そして、一致が検出されると、データレジスタ112に保持された実データの先頭アドレスがヒットデータレジスタ140に記憶される。また、アドレスセレクタ130は、アドレスAdr[25:0]の一部を実データの先頭アドレスに置き換えて再アクセス用のアドレスを生成する。その後、再アクセス用のアドレスに基づき再アクセスが行われる。データレジスタ112には、再アクセスデータが保持される。
【0071】
図6に、ダイレクトアクセスモードにおけるフラッシュメモリ装置100の内部信号の動作タイミング例を示す。まずホストは、所望のファイルの検索キーワードを特定する。そして、ホストは、フラッシュメモリ装置100に対し、コマンドにより、検索キーワードを設定すると共に該検索キーワードを用いた検索処理の実行を指示する(T1)。具体的には、フラッシュメモリ装置100では、ホストによりチップレレクトxCSの論理レベルが「L」、コマンドラッチイネーブルCLEの論理レベルが「H」の状態で、ライトイネーブルxWRの立ち下がりでコマンドが取り込まれる。コマンドは例えば上位4ビットでコマンドの内容が識別され、下位4ビットでコマンドに付随するパラメータが与えられる。したがって、上位4ビットのコマンドにより検索を指示し、下位4ビットで検索回数等を指示することも可能である。
【0072】
その後、ホストは、フラッシュメモリ装置100に対して3バイト分のリードアドレスを与える。具体的には、フラッシュメモリ装置100では、チップセレクトxCSの論理レベルが「L」、アドレスラッチイネーブルALEの論理レベルが「H」の状態で、ライトイネーブルxWRの立ち下がりで、ホストからのリードアドレスと、例えば32バイトの検索キーワードH_KWを取り込む。そして、ビジーxBUSYの立ち下がりで、アドレスセレクタ130を初期化してホストから指示されたアドレス(Adr[25:0])をそのままフラッシュメモリ110に対して出力するように設定する(T2)。
【0073】
そしてフラッシュメモリ装置100では、フラッシュメモリ110に対するリードアクセスが実行される。具体的には、内部リード信号i_xRDの立ち下がりで、ホストから指示されたアドレスAdr[25:0]に対応するページデータがフラッシュメモリ110から読み出され、データレジスタ112に記憶される。更に、キーワード比較判定回路150において、キーワードレジスタ152に保持された検索キーワード(H_KW)と、データレジスタ112に記憶されたページデータに含まれるキーワード情報(h_KeyWd)とが比較され、一致するか否かが判定される。そして、一致すると判定されたとき、i_search_hit信号の論理レベルを「L」から「H」に変化させ、その立ち上がりエッジでデータレジスタ112に記憶されたページデータに含まれる実データの先頭アドレスをヒットアドレスセレクタ142を介して、ヒットデータレジスタ140の所与の1エントリに格納する(T3)。
【0074】
そして、フラッシュメモリ装置100では、ビジーxBUSYの論理レベルを「H」に変化させ、アクセスを終了する。
【0075】
次に、フラッシュメモリ装置100の動作について説明する。
【0076】
図7に、フラッシュメモリ装置100におけるページ構成例を示す。ページデータは、528バイトである。各ページは、データ部と冗長部とを含む。冗長部のデータは、データ部の記憶領域に関連付けられた記憶領域に記憶される。データ部には、512バイト(B)のユーザデータが記憶される。図7において、ユーザデータは、第1及び第2のキーワード情報と、サムネール情報とを含む。第1及び第2のキーワード情報は、それぞれ文字、英数字、記号を含むデータであり、各32バイトの検索に必要な情報(例えばテキストデータ)である。サムネール情報は、検索対象となる実データの内容を把握するための画像や要約等の概要を示す情報(例えばバイナリデータ又はテキストデータ)である。なお、データ部には、キーワード情報が1つのみであってもよいし、キーワード情報が3以上含まれていても良い。キーワード情報の数は、データ部の記憶容量に応じて決定される。
【0077】
冗長部には、計16バイトの第1及び第2の冗長データが記憶される。そのうち、2バイトの第2の冗長データは、13ビット(b)の実データの先頭アドレスを含む。
【0078】
図8に、フラッシュメモリ装置におけるキーワード検索フローの一例を示す。
まずフラッシュメモリ装置100では、ホストから指示されたアドレスを用いてフラッシュメモリ110がアクセスされる(ステップS300)。次に、ホストから指示されたアドレスに対応するページに記憶された第1及び第2のキーワード情報、サムネール情報及び実アドレスの先頭アドレスが、フラッシュメモリ110から読み出される。読み出されたデータは、データレジスタ112に保持される(ステップS301)。
【0079】
そして、キーワード比較判定回路150のコンパレータ154において、予めホストにより設定された検索キーワードと一致するか否かが判別される(ステップS302)。コンパレータ154において検索キーワードと第1又は第2のキーワード情報とが一致すると判別されたとき(ステップS302:Y)、冗長部に記憶された実データの先頭アドレスがヒットデータレジスタ140にラッチされる(ステップS303)。
【0080】
そして、ホストにより、ダイレクトアクセスモードに設定されているとき(ステップS304:Y)、ラッチされた実データの先頭アドレスはヒットデータh_Data[12:0]としてページアドレスセレクタ132に供給される。ページアドレスセレクタ132は、アドレスAdr[21:9]をヒットデータh_Data[12:0]に置換したアドレスによりフラッシュメモリ110にアクセスし(ステップS305)、一連のアクセスを終了する(エンド)。
【0081】
一方、ステップS302で第1及び第2のキーワード情報が検索キーワードと一致しないと判別されたとき(ステップS302:N)、或いはステップS304でダイレクトアクセスモードに設定されていないとき(ステップS304:N)、一連のキーワード検索のアクセスを終了する(エンド)。
【0082】
図9に、フラッシュメモリ装置100が適用されるメモリシステムの構成の概要を示す。このメモリシステムでは、本実施形態におけるフラッシュメモリ装置100が、ホスト400に接続される。ホスト400は、CPU又はMPUを含み、メモリシステム全体の制御を司る。ホスト400上で動作するOSの指示により、ホスト400は、ワークメモリ410に記憶されたデータに対して処理を行う。
【0083】
フラッシュメモリ装置100には、複数のファイルのデータが記憶される。これらファイルの所在(フラッシュメモリ110におけるアドレス)は、ディレクトリ情報と呼ばれるファイル管理情報により管理される。ディレクトリ情報もまた、フラッシュメモリ装置100に記憶される。この場合、例えばメモリシステムの初期化時において、フラッシュメモリ装置100に記憶されたディレクトリ情報がワークメモリ410上に展開される。ホスト400は、ワークメモリ410に展開されたディレクトリ情報を参照して、フラッシュメモリ装置100に記憶されたファイルにアクセスを実行する。
【0084】
図10に、ディレクトリ情報の構成例を示す。ディレクトリ情報には、各ファイルのファイル名に対応して、アドレスが記憶される。このアドレスは、ファイルのデータが記憶されるフラッシュメモリ装置100の論理的な先頭アドレスである。例えば、ファイル名「A」というファイルにアクセスする場合、ディレクトリ情報を参照してファイル「A」が記憶されるフラッシュメモリ装置100の先頭アドレスaを得る。そこでホスト400が、該先頭アドレスaによりフラッシュメモリ装置100にアクセスすることで、アドレスaに対応するページに記憶されたファイル「A」のデータを読み出すことができる。
【0085】
図11に、メモリシステムにおけるフラッシュメモリ装置100の動作を模式的に示す。フラッシュメモリ装置100のフラッシュメモリ110において、ファイル「A」、「B」、「C」のデータが記憶されるページの先頭アドレスをアドレスa、b、cとする。ファイルaに対応するページには、ホスト400によって、予めデータ部にキーワード情報key1a、key2a(第1及び第2のキーワード情報)と、サムネール情報とが設定され、冗長部に実データの先頭アドレス(実アドレス)a´が設定される。同様に、ファイルb(ファイルc)に対応するページには、ホスト400によって、予めデータ部にキーワード情報key1b、key2b(key1c、key2c)と、サムネール情報とが設定され、冗長部に実データの先頭アドレス(実アドレス)b´(c´)が設定される。
【0086】
ここで、ホスト400がフラッシュメモリ装置100に対し、キーワードKWを含むファイルを検索する場合を考える。まずホスト400は、キーワード検索に先立って、フラッシュメモリ装置100に対してキーワードKWを設定する。
このキーワードKWは、キーワード比較判定回路150のキーワードレジスタ152に保持される。
【0087】
次にホスト400は、図10に示すディレクトリ情報を参照して、検索対象のファイル「A」、「B」、「C」、・・・のそれぞれが記憶されるページの先頭アドレスa、b、c、・・・を取得する。ホスト400は、アドレスa、b、c、・・・の順にフラッシュメモリ装置100にアクセスし、キーワードKWを含むファイルの検索処理を行う。
【0088】
すなわち、ホスト400は、まずファイル「A」がキーワードKWを含むか否かを判別するため、ファイル「A」が記憶されるページに対応するアドレスaを用いてフラッシュメモリ装置100にアクセスする。フラッシュメモリ装置100では、例えば論理アドレスと物理アドレスとの間の変換等を行ってフラッシュメモリ110にアクセスすることができるが、ここでは説明の簡略化のためにアドレス変換を行わないものとする。
【0089】
フラッシュメモリ装置100では、ファイルaに対応したページのデータがデータレジスタ112に保持される。ファイルaに対応したページのデータは、キーワード情報key1a、key1bと、サムネール情報と、実データの先頭アドレス(実アドレス)a´である。
【0090】
次に、キーワード比較判定回路150において、予め設定されたキーワードKWと、キーワード情報key1a、key1bとの比較が行われる。その結果、キーワードKWと、いずれかのキーワード情報とが一致したことが検出されると、データレジスタ112に保持された実データの先頭アドレスa´がヒットデータレジスタ140に保持される。
【0091】
以上のような手順を、ファイル「B」、「C」、・・・の順で行うことで、ホスト400からの1回のアクセスのみで、キーワードKWを含むファイルの先頭アドレスをヒットデータレジスタ140に蓄積させることが可能となる。
【0092】
ここで、ホストからのコマンドによってダイレクトアクセスモードに設定されている場合、アドレスセレクタ130により、ヒットデータレジスタ140に保持された実データの先頭アドレスa´を用いて、図11に示すように再アクセスを行うことができる。アドレスセレクタ130は、例えば図4に示すようにアドレスaの一部のみをアドレスa´に置換しても良いし、そのまま用いることも可能である。アドレスa´に基づいて、再アクセス用のアドレスが生成されればよい。
【0093】
このようにアドレスセレクタ130により、アドレスa´に対応するページにアクセスして、該ページに記憶されたファイル「A」の実データがデータレジスタ112に保持される。このファイル「A」の実データは、例えばホスト400からの指示により、ホスト400に対して出力される。
【0094】
或いは、ヒットデータレジスタ140にファイルの実アドレスa´が保持されているものとする。この場合、図12(A)に示すように、ホスト400からの第1のコマンドにより、ヒットデータレジスタ140にファイルの実アドレスa´をホスト400に対して出力するようにしてもよい。より具体的には、フラッシュメモリ装置100が内蔵するコマンドデコーダ420により、ホスト400からのコマンドをデコードする。その結果、当該コマンドがヒットデータレジスタ140の保持内容の出力指示であることを判別すると、ヒットデータレジスタ140に保持された実アドレスa´を、例えば図4に示すデータセレクタ160を介してホスト400に対し出力する。ホスト400では、キーワードKWの検索のみでは所望のファイルか否かを判断できないとき、ファイル「A」のサムネール情報を読み出して判断した上で、必要に応じて実アドレスa´を用いてファイル「A」のデータを改めて読み出すことができる。
【0095】
更にヒットデータレジスタ140にファイルの実アドレスa´、b´、c´が保持されているものとする。この場合、図12(B)に示すように、ホスト400からの第2のコマンドにより、ヒットデータレジスタ140に保持された内容を一括してホスト400に対して出力するようにしてもよい。より具体的には、フラッシュメモリ装置100が内蔵するコマンドデコーダ420により、ホスト400からのコマンドをデコードする。その結果、当該コマンドがヒットデータレジスタ140の保持内容の一括出力指示であることが判別すると、ヒットデータレジスタ140に保持された実アドレスa´、b´、c´を、例えば図4に示すデータセレクタ160を介してホスト400に対し出力する。
ホスト400では、キーワードKWの検索のみでは所望のファイルか否かを判断できないとき、ファイル「A」のサムネール情報を読み出して判断した上で、必要に応じて実アドレスa´を用いてファイル「A」のデータを改めて読み出すことができる。ホスト400では、キーワードKWの検索のみでは所望のファイルか否かを判断できないとき、ファイル「A」、「B」、「C」のサムネール情報を読み出して判断した上で、必要なファイルの実アドレスを用いて当該ファイルのデータを改めて読み出すことができる。
【0096】
このようにフラッシュメモリ装置100が適用されるメモリシステムでは、ホストから指示される検索の効率を大幅に向上させることができ、ホストを含むシステム全体の処理能力の低下を防止することができる。
【0097】
以上説明した実施形態では、半導体記憶装置として、不揮発性で、かつアクセス速度が遅いフラッシュメモリを含むものを例に説明したが、これに限定されるものではない。例えば、揮発性のメモリであるSRAMやDRAMを含む半導体記憶装置であってもよい。
【0098】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
【0099】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【図1】本実施形態における記憶装置の原理的な構成を示すブロック図。
【図2】フラッシュメモリ装置のハードウェア構成例を示すブロック図。
【図3】ホストから出力されるアドレスについての説明図。
【図4】フラッシュメモリ装置の要部の詳細な構成例を示すブロック図。
【図5】フラッシュメモリ装置の動作タイミング例を示すタイミング図。
【図6】フラッシュメモリ装置の内部信号の動作タイミング例を示すタイミング図。
【図7】フラッシュメモリ装置におけるページ構成例を示す説明図。
【図8】フラッシュメモリ装置のキーワード検索の一例のフロー図。
【図9】メモリシステムの構成の概要を示すブロック図。
【図10】ディレクトリ情報の構成例を示す説明図。
【図11】フラッシュメモリ装置の動作を説明する模式図。
【図12】図12(A)はホストからの出力指示があった場合の説明図。図12(B)はホストからの一括出力指示があった場合の説明図。
【符号の説明】
10 記憶装置、20、400 ホスト、30 メモリ、32、112 データレジスタ、40 アクセス回路、50 キーワード保持回路、60 比較回路、70、140 ヒットデータレジスタ、100 フラッシュメモリ装置(半導体記憶装置)、110 フラッシュメモリ、120 コマンドシーケンサ、130アドレスセレクタ、132 ページアドレスセレクタ、142 ヒットアドレスセレクタ、150 キーワード比較判定回路、152 キーワードレジスタ、154 コンパレータ、160 データセレクタ、410 ワークメモリ、420 コマンドデコーダ
Claims (14)
- 実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリと、
入力されたアドレスに対応した前記メモリの記憶領域にアクセスして、前記アドレスに対応して記憶されたキーワード情報及び前記先頭アドレスを読み出すアクセス回路と、
前記実データを検索するための検索キーワードを保持するキーワード保持回路と、
前記検索キーワードと、前記アクセス回路により読み出されたキーワード情報とを比較する比較回路と、
前記比較回路において前記検索キーワードと前記キーワード情報とが一致したと判断されたとき、前記アクセス回路により読み出された前記先頭アドレスを保持するヒットデータレジスタと、
を含むことを特徴とする記憶装置。 - 請求項1において、
前記キーワード情報を記憶する領域と、前記実データの先頭アドレスを記憶する領域とは、同一ページに存在することを特徴とする記憶装置。 - 請求項1又は2において、
前記メモリは、
その記憶領域が複数の領域に分割されたページを単位に、前記キーワード情報及び前記先頭アドレスを記憶することを特徴とする記憶装置。 - 請求項1乃至3のいずれかにおいて、
外部からの要求に応じて、前記ヒットデータレジスタに保持された先頭アドレスを外部に出力することを特徴とする記憶装置。 - 請求項4において、
前記ヒットデータレジスタは、
複数回の各アクセスのアドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持し、
外部からの要求に応じて、前記ヒットデータレジスタに保持された複数の先頭アドレスを外部に出力することを特徴とする記憶装置。 - 請求項1乃至5のいずれかにおいて、
前記アクセス回路は、
前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスに基づいて前記メモリにアクセスすることを特徴とする記憶装置。 - 請求項1乃至6のいずれかにおいて、
前記メモリは、
更に前記実データの内容を把握するためのサムネール情報を記憶し、
前記比較回路により前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記サムネール情報を出力することを特徴とする記憶装置。 - 請求項1乃至7のいずれかにおいて、
前記メモリは、
データの書き換えが可能な不揮発性メモリであることを特徴とする記憶装置。 - 請求項8において、
前記メモリは、
フラッシュメモリであることを特徴とする記憶装置。 - 実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、
入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、
前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、
前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持することを特徴とする記憶装置の制御方法。 - 実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、
入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、
前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、
前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスに基づいて前記メモリにアクセスすることを特徴とする記憶装置の制御方法。 - その記憶領域が複数の領域に分割されたページを単位に、実データに関連付けられたキーワード情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、
アクセスごとに、入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出して、前記実データを検索するための検索キーワードと前記アドレスに対応して読み出されたキーワード情報とを比較し、前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出された実データの先頭アドレスを保持し、
外部からの要求に応じて、保持された先頭アドレスを出力することを特徴とする記憶装置の制御方法。 - 実データに関連付けられたキーワード情報及び該実データの内容を把握するためのサムネール情報を記憶すると共に、該キーワード情報に関連付けて前記実データの先頭アドレスを記憶するメモリを有する記憶装置の制御方法であって、
入力されたアドレスに対応した前記メモリの記憶領域に記憶されたキーワード情報及び先頭アドレスを読み出し、
前記実データを検索するための検索キーワードと、前記アドレスに対応して読み出されたキーワード情報とを比較し、
前記検索キーワードと前記キーワード情報とが一致したとき、前記アドレスに対応して前記メモリから読み出されたサムネール情報を出力することを特徴とする記憶装置の制御方法。 - 請求項10乃至13のいずれかにおいて、
前記キーワード情報を記憶する領域と、前記実データの先頭アドレスを記憶する領域とは、同一ページに存在することを特徴とする記憶装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002360850A JP2004192426A (ja) | 2002-12-12 | 2002-12-12 | 記憶装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002360850A JP2004192426A (ja) | 2002-12-12 | 2002-12-12 | 記憶装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004192426A true JP2004192426A (ja) | 2004-07-08 |
Family
ID=32759806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002360850A Withdrawn JP2004192426A (ja) | 2002-12-12 | 2002-12-12 | 記憶装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004192426A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8698599B2 (en) | 2008-04-16 | 2014-04-15 | Sony Corporation | Reader/writer, communication processing device, communication processing method, data management system and communication system |
JP2017021857A (ja) * | 2016-10-21 | 2017-01-26 | 株式会社東芝 | メモリシステムのローカルコントローラ |
US9953107B2 (en) | 2011-08-08 | 2018-04-24 | Toshiba Memory Corporation | Memory system including key-value store |
-
2002
- 2002-12-12 JP JP2002360850A patent/JP2004192426A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8698599B2 (en) | 2008-04-16 | 2014-04-15 | Sony Corporation | Reader/writer, communication processing device, communication processing method, data management system and communication system |
US9953107B2 (en) | 2011-08-08 | 2018-04-24 | Toshiba Memory Corporation | Memory system including key-value store |
US10579683B2 (en) | 2011-08-08 | 2020-03-03 | Toshiba Memory Corporation | Memory system including key-value store |
JP2017021857A (ja) * | 2016-10-21 | 2017-01-26 | 株式会社東芝 | メモリシステムのローカルコントローラ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8145829B2 (en) | Flash memory device capable of preventing read disturbance | |
US5448728A (en) | Storage medium control system for controlling a write-once read-many storage medium | |
US7302517B2 (en) | Apparatus and method for controlling execute-in-place (XIP) in serial flash memory, and flash memory chip using the same | |
US5717886A (en) | Semiconductor disk device and memory management method | |
EP1522928A2 (en) | Priority-based flash memory control apparatus for XIP in serial flash memory, memory management method using the same, and flash memory chip thereof | |
JP2010157130A (ja) | メモリシステム | |
JP2004318940A (ja) | 記憶装置 | |
WO2005124530A2 (en) | Method for controlling memory card and method for controlling nonvolatile semiconductor memory | |
JP2005071380A (ja) | 非同期読み出しキャッシュメモリおよび前記キャッシュメモリを備えたデータメモリへのアクセスを制御する装置。 | |
US20060143405A1 (en) | Data processing device | |
JP2010102623A (ja) | キャッシュメモリ及びその制御方法 | |
JP2002229852A (ja) | キャッシュシステムの制御回路 | |
TWI715408B (zh) | 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法 | |
JP2004192426A (ja) | 記憶装置及びその制御方法 | |
JP2000305818A (ja) | チップカードのメモリ断片化解消(デフラグ) | |
US7107407B2 (en) | Arithmetic unit with reduced startup time and method of loading data | |
JP2000030375A (ja) | データ処理システム、アクセス装置及び記録媒体 | |
JP2867965B2 (ja) | データ処理装置及びデータ処理方法 | |
JP2004145446A (ja) | 記憶装置及びその制御方法 | |
CN117632809B (zh) | 存储器控制器、数据读取方法及存储装置 | |
JP2003203486A (ja) | 半導体記憶装置及びその制御方法 | |
JP3190661B2 (ja) | 情報処理システム | |
JP2000099399A (ja) | ウェイ予測型キャッシュメモリとそのアクセス方法 | |
JP2000148587A (ja) | 記憶装置および記憶領域の決定方法 | |
JP2003036201A (ja) | メモリアクセス管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060307 |