(57)【要約】【課題】既存の記憶装置への適用が可能で、ホスト機器の起動時間の短縮を図る。【解決手段】第１の記憶部と、ホスト機器からの要求に基づいてこの第１の記憶部に格納されたデータの書き込み動作及び読み出し動作を行うコントローラとを備えた記憶装置において、記憶装置に第２の記憶部を設け、コントローラに、ホスト機器の起動時にこのホスト機器から読み出し要求があった第１の記憶部のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報を取得し、記憶装置の起動時に、アドレス情報を用いて第１の記憶部から起動データを少なくとも含むデータを読み出して第２の記憶部に格納し、ホスト機器から読み出し要求があったら、第２の記憶部に格納したデータをホスト機器に転送する制御部を設けた。【選択図】図２
2018010452.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器の起動に必要な起動データを含むデータが格納され、アドレスにより前記データのアクセス位置が管理された第１の記憶部と、前記ホスト機器からの要求に基づいてこの第１の記憶部に格納された前記データの書き込み動作及び読み出し動作を行うコントローラとを備えた記憶装置において、
前記記憶装置は第２の記憶部を備え、
前記コントローラは、前記ホスト機器の起動時にこのホスト機器から読み出し要求があった前記第１の記憶部の前記アドレスと読み出し要求があった前記データのデータ量とを含むアドレス情報を取得し、前記記憶装置の起動時に、前記アドレス情報を用いて前記第１の記憶部から前記起動データを少なくとも含む前記データを読み出して前記第２の記憶部に格納し、前記ホスト機器から読み出し要求があったら、前記第２の記憶部に格納した前記データを前記ホスト機器に転送する制御部を備えることを特徴とする記憶装置。
【請求項２】
前記第２の記憶部の前記データの読み出し速度は、前記第１の記憶部の前記データの読み出し速度より早いことを特徴とする請求項１記載の記憶装置。
【請求項３】
前記制御部は前記アドレス情報を前記第２の記憶部に格納することを特徴とする請求項１または２記載の記憶装置。
【請求項４】
前記アドレス情報は、前記データの読み出し開始位置の論理アドレスとその論理アドレスから読み出される前記データのデータ量との組が、前記ホスト機器からの読み出し要求の順に配列されたものであることを特徴とする請求項１〜３のいずれかに記載の記憶装置。
【請求項５】
前記アドレス情報は、前記データの読み出し開始位置の前記論理アドレスを前記制御部における前記第１の記憶部の管理単位であるサイズに区切った管理単位アドレスと、前記管理単位アドレスから読み出される前記データのデータ量を前記サイズの単位に区切った管理単位データ量との組が、前記ホスト機器からの読み出し要求の順に配列されたものであることを特徴とする請求項４記載の記憶装置。
【請求項６】
前記制御部は、前記第２の記憶部に格納された前記アドレス情報を、所定のタイミングで前記第１の記憶部の特定の前記アドレスに格納することを特徴とする請求項３記載の記憶装置。
【請求項７】
前記所定のタイミングは、前記ホスト機器からの書き込み要求があった時であることを特徴とする請求項６記載の記憶装置。
【請求項８】
前記所定のタイミングは、前記第２の記憶部に所定量の前記アドレス情報が格納された時であることを特徴とする請求項６記載の記憶装置。
【請求項９】
前記制御部は、前記記憶装置の起動時に前記第１の記憶部の前記特定のアドレスにアクセスして前記アドレス情報を取得することを特徴とする請求項６〜８のいずれかに記載の記憶装置。
【請求項１０】
起動データを用いて起動動作を行うホスト機器と、
前記起動データを含むデータが格納され、アドレスにより前記データのアクセス位置が管理された第１の記憶部と、前記ホスト機器からの要求に基づいてこの第１の記憶部に格納された前記データの書き込み動作及び読み出し動作を行うコントローラとを備えた記憶装置と
を有する情報処理システムにおいて、
前記記憶装置は第２の記憶部を備え、
前記コントローラは、前記ホスト機器の起動時にこのホスト機器から読み出し要求があった前記第１の記憶部の前記アドレスと読み出し要求があった前記データのデータ量とを含むアドレス情報を取得し、前記記憶装置の起動時に、前記アドレス情報を用いて前記第１の記憶部から前記起動データを少なくとも含む前記データを読み出して前記第２の記憶部に格納し、前記ホスト機器から読み出し要求があったら、前記第２の記憶部に格納した前記データを前記ホスト機器に転送する制御部を備えることを特徴とする情報処理システム。
【請求項１１】
ホスト機器の起動に必要な起動データを含むデータが格納され、アドレスにより前記データのアクセス位置が管理された第１の記憶部と、前記ホスト機器からの要求に基づいてこの第１の記憶部に格納された前記データの書き込み動作及び読み出し動作を行うコントローラと、第２の記憶部とを備えた記憶装置における起動方法であって、
前記ホスト機器の起動時にこのホスト機器から読み出し要求があった前記第１の記憶部の前記アドレスと読み出し要求があった前記データのデータ量とを含むアドレス情報を取得し、前記記憶装置の起動時に、前記アドレス情報を用いて前記第１の記憶部から前記起動データを少なくとも含む前記データを読み出して前記第２の記憶部に格納し、前記ホスト機器から読み出し要求があったら、前記第２の記憶部に格納した前記データを前記ホスト機器に転送する
ことを特徴とする記憶装置における起動方法。
【請求項１２】
ホスト機器の起動に必要な起動データを含むデータが格納され、アドレスにより前記データのアクセス位置が管理された第１の記憶部と、前記ホスト機器からの要求に基づいてこの第１の記憶部に格納された前記データの書き込み動作及び読み出し動作を行うコントローラと、第２の記憶部とを備えたコンピュータにより実行されるプログラムであって、
このプログラムが前記コンピュータにより実行されると、このコンピュータを、
前記ホスト機器の起動時にこのホスト機器から読み出し要求があった前記第１の記憶部の前記アドレスと読み出し要求があった前記データのデータ量とを含むアドレス情報を取得し、前記コンピュータの起動時に、前記アドレス情報を用いて前記第１の記憶部から前記起動データを少なくとも含む前記データを読み出して前記第２の記憶部に格納し、前記ホスト機器から読み出し要求があったら、前記第２の記憶部に格納した前記データを前記ホスト機器に転送する制御部として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト機器の起動に必要な起動データが格納された記憶装置、情報処理システム、記憶装置の起動方法及びプログラムに関する。
【背景技術】
【０００２】
ＭＦＰ（MultiFunction Peripheral）などの産業機器を含むホスト機器には、このホスト機器の起動に必要なブートローダ等の起動データが格納された記憶装置が、このホスト機器に内蔵され、あるいは、外部インタフェースを介して接続されていることがある。
【０００３】
このような記憶装置が接続されたホスト機器が起動されると、このホスト機器は、記憶装置に格納されたブートローダ等の起動データの読み出し要求コマンドをこの記憶装置に送出し、記憶装置は、この読み出し要求コマンドに応答して、内部に格納された起動データを読み出してホスト機器に送出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２９９２４２号公報
【特許文献２】特開２００３−３３７７４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
記憶装置には通常、ホスト機器を制御するためのＯＳ（Operating System）や作業データ等も格納されるので、大容量でありかつ不揮発性であることが求められる。従って、従来の記憶装置には、ＨＤＤ（Hard Disc Drive）装置やＮＡＮＤフラッシュメモリを用いたＳＳＤ（Solid State Drive）装置が多用されている。これらＨＤＤ装置やＳＳＤ装置は、ＲＡＭ（Random Access Memory）に用いられる揮発性メモリに比較すればその読み出し速度は低速である。このため、ホスト機器の起動に一定の時間が必要であるという課題があった。
【０００６】
特に、近年のＮＡＮＤフラッシュメモリのプロセスの進化に伴い、１チップの容量が大きくなるに連れて、同一容量のＳＳＤ装置に必要なチップが少なくて済む傾向にある。ＳＳＤ装置に必要なチップ数の削減は、一方で、複数のチップを用いた並行処理、言い換えれば同時読み出し処理速度の低下につながる可能性が高い。このため、起動データが格納された記憶装置が接続されたホスト機器において、起動時間の短縮が課題となっていた。
【０００７】
なお、ホスト機器の起動時に記憶装置に格納されたブートローダ等の起動データをホスト機器のＲＡＭに転送する技術は提案されている（例えば特許文献１、２参照）が、これら特許文献１、２に開示された技術は、既存の記憶装置に対して特別な構成を付加することで、起動データをホスト機器のＲＡＭに転送している。従って、既存の記憶装置への適用は困難であった。
【０００８】
本発明は上述した課題に鑑みてなされたものであり、既存の記憶装置への適用が可能で、ホスト機器の起動時間の短縮を図ることが可能な記憶装置、情報処理システム、記憶装置の起動方法及びプログラムの提供をその目的の一つとしている。
【課題を解決するための手段】
【０００９】
本発明は、ホスト機器の起動に必要な起動データを含むデータが格納され、アドレスによりデータのアクセス位置が管理された第１の記憶部と、ホスト機器からの要求に基づいてこの第１の記憶部に格納されたデータの書き込み動作及び読み出し動作を行うコントローラとを備えた記憶装置に適用される。そして、記憶装置に第２の記憶部を設け、コントローラに、ホスト機器の起動時にこのホスト機器から読み出し要求があった第１の記憶部のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報を取得し、記憶装置の起動時に、アドレス情報を用いて第１の記憶部から起動データを少なくとも含むデータを読み出して第２の記憶部に格納し、ホスト機器から読み出し要求があったら、第２の記憶部に格納したデータをホスト機器に転送する制御部を設けることにより、上述の課題の少なくとも一つを解決している。
【００１０】
コントローラの制御部は、ホスト機器の起動時にこのホスト機器から読み出し要求があった第１の記憶部のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報を取得し、記憶装置の起動時に、アドレス情報を用いて第１の記憶部から起動データを少なくとも含むデータを読み出して第２の記憶部に格納し、ホスト機器から読み出し要求があったら、第２の記憶部に格納したデータをホスト機器に転送している。これにより、ホスト機器からの読み出し要求に応じて起動データを含むデータを速やかにホスト機器に転送することができる。
【００１１】
ここで、第２の記憶部のデータの読み出し速度は、第１の記憶部のデータの読み出し速度より早いことが好ましい。また、制御部は、アドレス情報を第２の記憶部に格納することが好ましい。
【００１２】
また、アドレス情報は、データの読み出し開始位置の論理アドレスとその論理アドレスから読み出されるデータのデータ量との組が、ホスト機器からの読み出し要求の順に配列されたものであることが好ましく、さらに、アドレス情報は、データの読み出し開始位置の論理アドレスを制御部における第１の記憶部の管理単位であるサイズに区切った管理単位アドレスと、管理単位アドレスから読み出されるデータのデータ量をサイズ単位に区切った管理単位データ量との組が、ホスト機器からの読み出し要求の順に配列されたものであることが好ましい。
【００１３】
また、制御部は、第２の記憶部に格納されたアドレス情報を、所定のタイミングで第１の記憶部の特定のアドレスに格納することが好ましく、さらに、この所定のタイミングは、ホスト機器からの書き込み要求があった時であるか、第２の記憶部に所定量のアドレス情報が格納された時であることが好ましい。
【００１４】
さらに、制御部は、記憶装置の起動時に第１の記憶部の特定のアドレスにアクセスしてアドレス情報を取得することが好ましい。
【００１５】
また、本発明は、起動データを用いて起動動作を行うホスト機器と、起動データを含むデータが格納され、アドレスによりデータのアクセス位置が管理された第１の記憶部と、ホスト機器からの要求に基づいてこの第１の記憶部に格納されたデータの書き込み動作及び読み出し動作を行うコントローラとを備えた記憶装置とを有する情報処理システムに適用される。そして、記憶装置に第２の記憶部を設け、コントローラに、ホスト機器の起動時にこのホスト機器から読み出し要求があった第１の記憶部のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報を取得し、記憶装置の起動時に、アドレス情報を用いて第１の記憶部から起動データを少なくとも含むデータを読み出して第２の記憶部に格納し、ホスト機器から読み出し要求があったら、第２の記憶部に格納したデータをホスト機器に転送する制御部を設けることにより、上述の課題の少なくとも一つを解決している。
【００１６】
さらに、本発明は、ホスト機器の起動に必要な起動データを含むデータが格納され、アドレスによりデータのアクセス位置が管理された第１の記憶部と、ホスト機器からの要求に基づいてこの第１の記憶部に格納されたデータの書き込み動作及び読み出し動作を行うコントローラと、第２の記憶部とを備えた記憶装置における起動方法に適用される。そして、ホスト機器の起動時にこのホスト機器から読み出し要求があった第１の記憶部のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報を取得し、記憶装置の起動時に、アドレス情報を用いて第１の記憶部から起動データを少なくとも含むデータを読み出して第２の記憶部に格納し、ホスト機器から読み出し要求があったら、第２の記憶部に格納したデータをホスト機器に転送することにより、上述の課題の少なくとも一つを解決している。
【００１７】
そして、本発明は、ホスト機器の起動に必要な起動データを含むデータが格納され、アドレスによりデータのアクセス位置が管理された第１の記憶部と、ホスト機器からの要求に基づいてこの第１の記憶部に格納されたデータの書き込み動作及び読み出し動作を行うコントローラと、第２の記憶部とを備えたコンピュータにより実行されるプログラムに適用される。そして、このプログラムがコンピュータにより実行されると、このコンピュータを、ホスト機器の起動時にこのホスト機器から読み出し要求があった第１の記憶部のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報を取得し、コンピュータの起動時に、アドレス情報を用いて第１の記憶部から起動データを少なくとも含むデータを読み出して第２の記憶部に格納し、ホスト機器から読み出し要求があったら、第２の記憶部に格納したデータをホスト機器に転送する制御部として機能させることにより、上述の課題の少なくとも一つを解決している。
【発明の効果】
【００１８】
本発明によれば、既存の記憶装置への適用が可能で、ホスト機器の起動時間の短縮を図ることが可能な記憶装置、情報処理システム、記憶装置の起動方法及びプログラムを実現することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態であるＳＳＤ装置の概略構成を示すブロック図である。
【図２】一実施形態のＳＳＤ装置の機能構成を示す機能ブロック図である。
【図３】一実施形態のＳＳＤ装置の初期起動時の動作を説明するための図である。
【図４】一実施形態のＳＳＤ装置の通常起動時の動作を説明するための図である。
【図５】一実施形態のＳＳＤ装置の初期起動時の動作を説明するためのフローチャートである。
【図６】一実施形態のＳＳＤ装置の通常起動時の動作を説明するためのフローチャートである。
【図７】一実施形態のＳＳＤ装置の通常起動時の動作を説明するためのフローチャートである。
【図８】一実施形態のＳＳＤ装置におけるアドレス情報の一例を示す図である。
【図９】一実施形態のＳＳＤ装置におけるアドレス情報の他の例を示す図である。
【図１０】一実施形態のＳＳＤ装置におけるアドレス情報のまた他の例を示す図である。
【発明を実施するための形態】
【００２０】
（一実施形態）
以下、図面を参照して、本発明の実施形態について説明する。
【００２１】
（一実施形態のＳＳＤ装置の構成）
図１は、本発明の記憶装置をＳＳＤ装置に適用した一実施形態の概略構成を示すブロック図、図２は、一実施形態のＳＳＤ装置の機能構成を示す機能ブロック図である。
【００２２】
これら図において、１０は一実施形態であるＳＳＤ装置であり、このＳＳＤ装置１０は、コントローラ１１、ＲＡＭ（Random Access Memory）１２、ＲＯＭ（Read Only Memory）１３及びフラッシュメモリ１４を備えている。本実施形態のＳＳＤ装置１０は、例えば本実施形態ではＭＦＰであるホスト機器２０に接続され、ホスト機器２０からの書き込み指令に応じて所定のデータを格納し、また、読み出し指令に応じて格納された所定のデータを送出するものである。
【００２３】
コントローラ１１はＳＳＤ装置１０全体の制御を行うもので、ＣＰＵ（Central Processing Unit）１５、ホストインタフェース（Ｉ／Ｆ）１６、フラッシュインタフェース（Ｉ／Ｆ）１７、ＲＡＭインタフェース（Ｉ／Ｆ）１８及びＲＯＭインタフェース（Ｉ／Ｆ）１９を備える。
【００２４】
ＣＰＵ１５は、ＲＯＭ１３内に格納されているファームウェア（図１において図示略）が電源投入時にＲＡＭ１２に展開され、このファームウェアが実行されることでコントローラ１１、ひいてはＳＳＤ装置１０の制御を行うとともに、図２に示す各機能部に示す機能を備える。図２に示す各機能部については後述する。ホストＩ／Ｆ１６は、所定の外部インタフェースを介してホスト機器２０に接続され、ＣＰＵ１５の制御下において、このホスト機器２０との間で、外部インタフェースが定めるプロトコル、コマンドに準拠してデータの送受信を行う。本実施形態では、ホストＩ／Ｆ１６とホスト機器２０とは、ＨＤＤなどで多用される汎用性を有するインタフェース、例えばＡＴＡ、ＳＣＳＩにより接続されている。フラッシュＩ／Ｆ１７はフラッシュメモリ１４に接続され、ＣＰＵ１５の制御下において、このフラッシュメモリ１４に対してデータの書き込み／読み出し動作を行う。ＲＡＭ  Ｉ／Ｆ１８はＲＡＭ１２に接続され、ＣＰＵ１５の制御下において、このＲＡＭ１２に対してデータの書き込み／読み出し動作を行う。ＲＯＭ  Ｉ／Ｆ１９はＲＯＭ１３に接続され、ＣＰＵ１５の制御下において、このＲＯＭ１３に対してデータの読み出し動作を行う。
【００２５】
ＲＡＭ１２はコントローラ１１のワークメモリとして用いられ、各種データが一時的に格納される。また、このＲＡＭ１２には、ホスト機器２０の起動時にこのホスト機器２０から読み出し要求があったフラッシュメモリ１４のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報、及び、ホスト機器２０の起動に必要な起動データを含むデータが格納されることがある（いずれも図１において図略）。このため、ＲＡＭ１２は、２００ＭＢ程度の大容量のものであることが好ましい。アドレス情報及び起動データの詳細については後述する。ＲＯＭ１３には、上述のようにＳＳＤ装置１０の制御を行うファームウェアが格納されている。
【００２６】
フラッシュメモリ１４は、本実施例ではＮＡＮＤ型フラッシュメモリである。また、本実施形態では、フラッシュメモリ１４内の空間は論理アドレス（LBA：Logical Block Addressing）及び物理ブロックにより把握され、ホスト機器２０はこの論理アドレスを直接指定することで特定領域に対するデータのアクセスを行うことが可能とされている。コントローラ１１は、ホスト機器２０から論理アドレスが直接指定されると、ＲＡＭ１２内に格納された論理アドレス−物理ブロック変換テーブル（図略）を参照して、実際にアクセスすべき物理ブロックを特定し、この物理ブロックに対するアクセスを行う。なお、本実施形態の説明では、論理アドレスを単に「アドレス」とのみ称することがある。
【００２７】
なお、本実施形態のフラッシュメモリ１４では、１つの物理ブロックは複数のページを有しており、データの書き込み動作はページ単位で、データの消去動作はブロック単位で行われる。また、各ページは複数のセクタからなる。
【００２８】
（一実施形態のＳＳＤ装置の機能構成）
次に、図２は、本実施形態のＳＳＤ装置１０の機能構成を示す機能ブロック図である。本実施形態のＳＳＤ装置１０は、コントローラ１１と、フラッシュメモリ１４である第１の記憶部と、ＲＡＭ１２である第２の記憶部と、ＲＯＭ１３である第３の記憶部とを備え、コントローラ１１は制御部３０を備える。
【００２９】
制御部３０は、主に第１の記憶部１４に対するデータの読み出し／書き込みを制御するものであり、ホスト機器２０と汎用性を有するインタフェース、例えばＡＴＡやＳＣＳＩを介して接続され、ホスト機器２０から送出される読み出し要求／書き込み要求コマンド及び書き込まれるべきデータを受信し、これらコマンドに基づいて第１の記憶部１４に格納されているデータを読み出し、また、データを書き込み、読み出したデータをホスト機器２０に送出する。また、制御部３０は、コントローラ１１に接続された第２の記憶部１２、第３の記憶部１３との間でのデータの読み出し／書き込みも制御する。
【００３０】
特に、本実施形態の制御部３０は、ホスト機器２０の起動時に、このホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量とを含むアドレス情報３１を取得する。また、制御部３０は、ＳＳＤ装置１０の起動時に、アドレス情報３１を用いて第１の記憶部１４から起動データ３２を少なくとも含むデータを読み出して第２の記憶部１２に格納する。そして、制御部３０は、ホスト機器２０から読み出し要求があったら、第２の記憶部１２に格納した、起動データ３２を含むデータをホスト機器２０に転送する。制御部３０の動作については、再度詳細に説明する。
【００３１】
ここで、制御部３０は、アドレス情報３１を第２の記憶部１２に格納することが好ましく、さらに好ましくは、制御部３０は、ホスト機器２０から読み出し要求コマンドが到来する度にホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量とを第２の記憶部１２に格納することが好ましい。
【００３２】
そして、制御部３０は、第２の記憶部１２に格納されたアドレス情報３１を、所定のタイミングで第１の記憶部１４の特定のアドレスに格納することが好ましく、さらに、この所定のタイミングは、ホスト機器２０からの書き込み要求があった時であるか、第２の記憶部１２に所定量のアドレス情報、例えば数千コマンドに相当するアドレス情報が格納された時であることが好ましい。
【００３３】
さらに、制御部３０は、ＳＳＤ装置１０の起動時に第１の記憶部１４の特定のアドレスにアクセスしてアドレス情報３１を取得することが好ましい。特定のアドレスの詳細については後述する。
【００３４】
第１の記憶部１４には、アドレス情報３１、起動データ３２及び作業データ３３が格納されている。
【００３５】
アドレス情報３１は、既に説明したように、ホスト機器２０の起動時に、このホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量とを含む。ここで、アドレス情報３１は、データの読み出し開始位置の論理アドレスとその論理アドレスから読み出されるデータのデータ量との組が、ホスト機器２０からの読み出し要求の順に配列されたものであることが好ましく、さらに、アドレス情報３１は、データの読み出し開始位置の論理アドレスを制御部３０における第１の記憶部１４の管理単位であるサイズに区切った管理単位アドレスと、管理単位アドレスから読み出されるデータのデータ量をサイズ単位に区切った管理単位データ量との組が、ホスト機器２０からの読み出し要求の順に配列されたものであることが好ましい。
【００３６】
アドレス情報３１は、第１の記憶部１４の特定のアドレスに格納されていることが好ましい。ここにいう特定のアドレスには、後述するファームウェア３４に予め記述されたアドレス、第１の記憶部１４の非ユーザ領域（管理領域）、すなわち、ホスト機器２０のＯＳ（Operating System）の管理下にある領域のアドレス、ユーザ領域のうちホスト機器２０のＯＳやアプリケーションプログラムが通常使用しないアドレスが含まれる。また、通常使用しないアドレスとしては、ＭＢＲ（マスターブートレコード：Master Boot Record）の次のアドレスであるLBA 0x0001や、最終ＬＢＡ＋１に相当するアドレスが挙げられる。
【００３７】
起動データ３２は、既に説明したように、ホスト機器２０の起動に必要なデータであり、ブートローダと、ＯＳのうちホスト機器２０の起動時に必要とされるデータが少なくとも含まれる。起動データ３２は、第１の記憶部１４の所定のアドレスに格納されており、ホスト機器２０は、起動データ３２が格納されている第１の記憶部１４のアドレス、及び、起動データ３２を含むデータの読み出し量を把握しているものとする。作業データ３３は、ホスト機器２０の動作時に格納されるデータである。
【００３８】
第２の記憶部１２にも、アドレス情報３１及び起動データ３２が適宜格納される。但し、これらアドレス情報３１等は、後に詳細に説明するように、所定のタイミングで第２の記憶部１２に一時的に格納され、起動データ３２については、これも所定のタイミングでホスト機器２０に送出される。ここで、第２の記憶部１２のデータの読み出し速度は、第１の記憶部１４のデータの読み出し速度より早いことが好ましく、より好ましくは、制御部３０からホスト機器２０へのデータ転送速度に近い速度であることが好ましい。
【００３９】
第３の記憶部１３にはファームウェア３４が格納されている。
【００４０】
以上の説明において、制御部３０はコントローラ１１、特にＣＰＵ１５の動作により実現され、第１の記憶部１４はフラッシュメモリ１４により実現され、第２の記憶部１２はＲＡＭ１２により実現され、そして、第３の記憶部１３はＲＯＭ１３により実現される。
【００４１】
（一実施形態のアドレス情報の詳細）
次に、図８〜図１０を参照して、本実施形態のＳＳＤ装置１０の第１の記憶部１４及び第２の記憶部１２に格納されるアドレス情報３１の詳細について説明する。
【００４２】
図８は、一実施形態のＳＳＤ装置１０におけるアドレス情報３１の一例を示す図である。図８に示すアドレス情報３１は、ホスト機器２０からの読み出し要求コマンドにおける第１の記憶部１４の読み出し開始論理アドレス（ＬＢＡ）が記述される論理アドレス領域３１ａと、この読み出し開始論理アドレスからのデータの読み出しデータ量がセクタの個数（SectorCount）で記述されるセクタ個数領域３１ｂとからなり、それぞれの領域に、ホスト機器２０からの読み出し要求コマンドが到来した順に読み出し開始論理アドレス及びセクタ個数が組となって格納されている。
【００４３】
次に、図９は、一実施形態のＳＳＤ装置１０におけるアドレス情報３１の他の例を示す図である。図９に示すアドレス情報３１は、ホスト機器２０からの読み出し要求コマンドにおける第１の記憶部１４の読み出し開始論理アドレスを、ＳＳＤ装置１０のファームウェア３４による第１の記憶部１４の管理サイズ単位（図９に示す例では４ＫＢである）で区切った管理アドレス（UnitAddress）が記述される管理アドレス領域３１ｃと、この管理アドレスからのデータの読み出し量が管理サイズ単位（Size）で記述される管理サイズ領域３１ｄとからなり、それぞれの領域に、ホスト機器２０からの読み出し要求コマンドが到来した順に管理アドレス及び管理サイズが組となって格納されている。
【００４４】
次に、図１０は、一実施形態のＳＳＤ装置１０におけるアドレス情報３１のまた他の例を示す図である。図１０に示すアドレス情報３１は、図９に示すアドレス情報３１と同様に、ホスト機器２０からの読み出し要求コマンドにおける第１の記憶部１４の読み出し開始論理アドレスを、ＳＳＤ装置１０のファームウェア３４による第１の記憶部１４の管理サイズ単位で区切った管理アドレス（UnitAddress）が記述される管理アドレス領域３１ｅと、この管理アドレスからのデータの読み出し量が管理サイズ単位（Size）で記述される管理サイズ領域３１ｆとからなる。図１０に示すアドレス情報３１では、ホスト機器２０から読み出し要求があった読み出し開始アドレスから連続または重複してデータの読み出しがあった場合、読み出すべきデータの管理サイズを増加させることで、管理アドレスの記述をまとめている。一例として、図１０に示す例は、図９に示す例と同一の読み出し要求がホスト機器２０からあった場合において、図９において管理アドレスが７ｈ〜Ａｈが連続したアドレスであるため、管理アドレス７ｈからのデータ読み出し量である管理サイズを４ｈと記述することで、管理アドレス領域３１ｅに記述する管理アドレスをまとめている。
【００４５】
但し、図１０に示す例では、後述するように、ホスト機器２０からの読み出し要求コマンドを一時的に第２の記憶部１２に格納する際に、管理アドレスが連続的であるか否かを確認し、連続的である場合は管理アドレスをまとめる作業が必要になるので、管理アドレスの重複または連続性を判断するのは過去２コマンド分に限る手法もある。
【００４６】
また、図８〜図１０に示すアドレス情報３１では、ホスト機器２０からの読み出し要求コマンドが到来した順に読み出し開始アドレス及びデータ量などが記述されているが、第１の記憶部１４からの起動データ３２読み出しの効率を考慮すると、読み出し開始アドレスを昇順（降順もありうる）に並べ替えておくことも考えられるが、アドレス情報３１を並べ替えている際にＳＳＤ装置１０に電断が生じると、アドレス情報３１自体が破損してしまう可能性があるので、ホスト機器２０からの読み出し要求コマンドが到来した順に格納することが好ましい。
【００４７】
なお、図８〜図１０に示すアドレス情報３１における読み出しデータ量はセクタ単位または管理サイズ単位であるので、このアドレス情報３１に基づいて読み出されたデータは起動データ３２以外のデータを含みうる。しかしながら、読み出されたデータが起動データ３２以外のデータを含んでいることに特段の問題は生じない。
【００４８】
（一実施形態のＳＳＤ装置の動作の概要）
次に、図３及び図４を参照して、本実施形態のＳＳＤ装置１０の動作の概要について説明する。図３及び図４は、一実施形態のＳＳＤ装置の動作の一例を説明するための図であり、図３は初期起動時の動作を説明するための図、図４は通常起動時の動作を説明するための図である。ここに、初期起動時とは、アドレス情報３１の収集及び第１の記憶部１４への格納が行われていない状態を示し、通常起動時とは、アドレス情報３１が第１の記憶部１４に格納されている状態を示す。
【００４９】
図３に示す動作は、ホスト機器２０及びＳＳＤ装置１０の初期起動時に行われる。まず、図中Ａに示すように、ホスト機器２０に電源が投入されてこのホスト機器２０の動作が開始すると、ホスト機器２０内のファームウェア等の動作により、ＳＳＤ装置１０の第１の記憶部１４に格納されている起動データ３２の読み出し要求がホスト機器２０からＳＳＤ装置１０に送出される。
【００５０】
ＳＳＤ装置１０の制御部３０は、図中Ｂに示すように、ホスト機器２０からの読み出し要求に基づいて、第１の記憶部１４にアクセスして起動データ３２を読み出し、図中Ｃに示すように、この起動データ３２をホスト機器２０に送出する。これと並行して、ＳＳＤ装置１０の制御部３０は、図中Ｄに示すように、ホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量を、好ましくはホスト機器２０からの読み出し要求順に配列して、第２の記憶部１２に格納する。
【００５１】
そして、所定のタイミングが到来したら、ＳＳＤ装置１０の制御部３０は、図中Ｅに示すように、第２の記憶部１２に格納したアドレス情報３１を第１の記憶部１４の特定のアドレスに格納する。
【００５２】
次に、図４に示す動作は、ホスト機器２０及びＳＳＤ装置１０の通常起動時に行われる。まず、ＳＳＤ装置１０に電源が投入されてこのＳＳＤ装置１０の動作が開始すると、ＳＳＤ装置１０の第３の記憶部１３に格納されているファームウェア３４が実行され、このファームウェア３４の動作により、ＳＳＤ装置１０の制御部３０が、図中Ｆに示すように、第１の記憶部１４の特定のアドレスに格納されているアドレス情報３１を読み出し、このアドレス情報３１を第２の記憶部１２に格納する。次いで、図中Ｇに示すように、制御部３０が第２の記憶部１２に格納されているアドレス情報３１を読み出し、次いで、図中Ｈに示すように、このアドレス情報３１に基づいて、制御部３０は、第１の記憶部１４に格納されている起動データ３２を読み出し、図中Ｊに示すように、この起動データ３２を第２の記憶部１２に格納する。
【００５３】
通常、ホスト機器２０からの読み出し要求コマンドは、ホスト機器２０のファームウェア立ち上げ等が終了してからＳＳＤ装置１０に到来するので（図中Ｋ）、ＳＳＤ装置１０の制御部３０は、図中Ｌに示すように、ホスト機器２０からの読み出し要求コマンドに応答して、第１の記憶部１４から読み出されて第２の記憶部１２に格納されている起動データ３２のうち、ホスト機器２０から読み出し要求コマンドに対応したデータをホスト機器２０に送出する指示を行い、図中Ｍに示すように、このデータをホスト機器２０に送出する。
【００５４】
本実施形態の第１の記憶部１４はＮＡＮＤフラッシュメモリから構成されている一方、第２の記憶部１２は揮発性メモリであるＲＡＭから構成されているので、第２の記憶部１２のデータの読み出し速度は第１の記憶部１４のそれより高速である。従って、図４に示すように、起動データ３２を予め先読みして第１の記憶部１４から第２の記憶部１２に転送し、ホスト機器２０から読み出し要求コマンドが到来したら第２の記憶部１２に格納された起動データ３２をホスト機器２０に送出することにより、ホスト機器２０からの読み出し要求コマンドが到来する都度第１の記憶部１４にアクセスして起動データ３２を読み出すよりも、起動データ３２を高速にホスト機器２０に転送することができ、この結果、ホスト機器２０の起動時間の短縮を図ることができる。
【００５５】
（一実施形態のＳＳＤ装置の動作）
次に、図５〜図７に示すフローチャートにより、本実施形態のＳＳＤ装置１０の動作について説明する。
【００５６】
まず、図５は、一実施形態のＳＳＤ装置１０の初期起動時の動作を説明するためのフローチャートである。
【００５７】
図５のフローチャートに示す動作は、ＳＳＤ装置１０への電源投入により開始する。まず、ステップＳ１では、第３の記憶部１３に格納されているファームウェア３４をコントローラ１１の制御部３０が読み出し、このファームウェア３４を第２の記憶部１２に展開してから実行する。
【００５８】
ステップＳ２では、ホスト機器２０からの読み出し要求コマンドを制御部３０が受信する。ステップＳ３では、ステップＳ２でホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量を第２の記憶部１２に格納する。
【００５９】
ステップＳ４では、ホスト機器２０からの読み出し要求コマンドに応じて、制御部３０が第１の記憶部１４にアクセスし、起動データ３２を読み出す。そして、ステップＳ５では、第１の記憶部１４から読み出した起動データ３２をホスト機器２０に送信する。
【００６０】
ステップＳ６では、ホスト機器２０からＳＳＤ装置１０への書き込み要求コマンドが到来したか否かが判定され、書き込み要求コマンドが到来したと判定されたら（ステップＳ６においてＹＥＳ）、プログラムはステップＳ７に移行し、書き込み要求コマンドが到来していないと判定されたら（ステップＳ６においてＮＯ）、プログラムはステップＳ２に戻ってステップＳ２〜Ｓ６の動作を繰り返す。
【００６１】
ステップＳ７では、制御部３０が、第２の記憶部１２に格納されている第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量との組を第１の記憶部１４の特定アドレスに格納する。これにより、ホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量とが、ホスト機器２０からの読み出し要求順に配列されたアドレス情報３１が、第１の記憶部１４の特定アドレスに格納される。
【００６２】
次に、図６〜７は、一実施形態のＳＳＤ装置１０の通常起動時の動作を説明するためのフローチャートである。
【００６３】
図６のフローチャートに示す動作は、ＳＳＤ装置１０への電源投入により開始する。まず、ステップＳ１０では、第３の記憶部１３に格納されているファームウェア３４をコントローラ１１の制御部３０が読み出し、このファームウェア３４を第２の記憶部１２に展開してから実行する。
【００６４】
ステップＳ１１では、制御部３０が、第１の記憶部１４の特定アドレスに格納されているアドレス情報３１を読み出す。次いで、ステップＳ１２では、ステップＳ１１で読み出したアドレス情報３１に基づいて、制御部３０が第１の記憶部１４から起動データ３２を読み出し、ステップＳ１３ではステップＳ１２で読み出した起動データ３２を第２の記憶部１２に格納する。
【００６５】
ステップＳ１４では、ホスト機器２０からの読み出し要求コマンドを制御部３０が受信する。ステップＳ１５では、ステップＳ２でホスト機器２０から読み出し要求があった第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量を第２の記憶部１２に格納する。
【００６６】
ステップＳ１６では、ホスト機器２０からの読み出し要求コマンドに応じて、制御部３０が第２の記憶部１２にアクセスし、起動データ３２を読み出す。そして、ステップＳ１７では、第２の記憶部１２から読み出した起動データ３２をホスト機器２０に送信する。
【００６７】
ステップＳ１８では、ホスト機器２０からＳＳＤ装置１０への書き込み要求コマンドが到来したか否かが判定され、書き込み要求コマンドが到来したと判定されたら（ステップＳ１８においてＹＥＳ）、プログラムはステップＳ１９に移行し、書き込み要求コマンドが到来していないと判定されたら（ステップＳ１８においてＮＯ）、プログラムはステップＳ１４に戻ってステップＳ１４〜Ｓ１８の動作を繰り返す。
【００６８】
ステップＳ１９では、制御部３０が、第２の記憶部１２に格納されている第１の記憶部１４のアドレスと読み出し要求があったデータのデータ量との組を第１の記憶部１４の特定アドレスに格納する。
【００６９】
なお、図６のステップＳ１３に示す起動データ３２の第２の記憶部１２への格納作業が完了する前に、ステップＳ１４に示すホスト機器２０からＳＳＤ装置１０への読み出し要求コマンドが到来した場合は、ホスト機器２０からの読み出し要求コマンドを優先して処理することが好ましい。
【００７０】
（一実施形態のＳＳＤ装置の効果）
以上詳細に説明したように、本実施形態のＳＳＤ装置１０では、ＳＳＤ装置１０の起動時に第１の記憶部１４に格納されている起動データ３２を先読みして第２の記憶部１２に格納し、ホスト機器２０からＳＳＤ装置１０への読み出し要求コマンドが到来したら、この読み出し要求コマンドに応答して、第２の記憶部１２に格納されている起動データ３２をホスト機器２０に送出している。ホスト機器２０から読み出し要求コマンドが到来するタイミングは、通常、ホスト機器２０のファームウェア起動後であり、ＳＳＤ装置１０の起動後から一定のタイムラグが生じるので、このタイムラグの間に起動データ３２を第２の記憶部１２に読み込んでおいて、ホスト機器２０からＳＳＤ装置１０への読み出し要求コマンドが到来したら直ちに起動データ３２をホスト機器２０に送出することができるので、ホスト機器２０の起動時間の短縮を図ることができる。
【００７１】
加えて、第２の記憶部１２のデータの読み出し速度は第１の記憶部１４のそれより高速であるので、ホスト機器２０からの読み出し要求コマンドが到来する都度第１の記憶部１４にアクセスして起動データ３２を読み出すよりも、起動データ３２を高速にホスト機器２０に転送することができ、この結果、ホスト機器２０の起動時間の短縮を図ることができる。
【００７２】
しかも、本実施形態のＳＳＤ装置１０は、従前のＳＳＤ装置に特段のハードウェアを付加することなく、ホスト機器２０の起動時間の短縮を図ることができる。
【００７３】
以上から、本実施形態によれば、既存の記憶装置への適用が可能で、ホスト機器の起動時間の短縮を図ることが可能なＳＳＤ装置１０を実現することができる。
【００７４】
（変形例）
なお、本発明の記憶装置は、その細部が上述の一実施形態に限定されず、種々の変形例が可能である。一例として、上述の一実施形態では、アドレス情報３１及び起動データ３２を揮発性メモリであるＲＡＭ１２に格納していたが、第２の記憶部としてＭＲＡＭ（Magnetoresistive Random Access Memory）等の不揮発性メモリを用意し、この不揮発性メモリに格納してもよい。
【符号の説明】
【００７５】
１０    ＳＳＤ装置
１１    コントローラ
１２    第２の記憶部（ＲＡＭ）
１３    第３の記憶部（ＲＯＭ）
１４    第１の記憶部（フラッシュメモリ）
１５    ＣＰＵ
２０    ホスト機器
３０    制御部
３１    アドレス情報
３２    起動データ
３３    作業データ
３４    ファームウェア
【図１】
2018010452.tif 000003
【図２】
2018010452.tif 000004
【図３】
2018010452.tif 000005
【図４】
2018010452.tif 000006
【図５】
2018010452.tif 000007
【図６】
2018010452.tif 000008
【図７】
2018010452.tif 000009
【図８】
2018010452.tif 000010
【図９】
2018010452.tif 000011
【図１０】
2018010452.tif 000012