(57)【要約】【課題】起動時間を短縮することが可能となる携帯情報端末を提供する。【解決手段】少なくとも一つのストレージデバイスと、ＲＡＭと、電源投入のときに、前記ストレージデバイスに格納された読出しデータを自身を介して前記ＲＡＭへＤＭＡ転送させる前記ストレージデバイス個別に対応した少なくとも一つのホストコントローラと、を備え、前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりもサイズが大きな読出しデータを、前記少なくとも一つのストレージデバイスのうち少なくともいずれかのスペックで定まる最大読出しサイズよりも小さくなるよう分割した読出しデータが前記ストレージデバイスへ配置される構成とした。【選択図】図６
2013250930.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのストレージデバイスと、
ＲＡＭと、
電源投入のときに、前記ストレージデバイスに格納された読出しデータを自身を介して前記ＲＡＭへＤＭＡ転送させる前記ストレージデバイス個別に対応した少なくとも一つのホストコントローラとを備え、
前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりもサイズが大きな読出しデータを、前記少なくとも一つのストレージデバイスのうち少なくともいずれかのスペックで定まる最大読出しサイズよりも小さくなるよう分割した読出しデータが前記ストレージデバイスへ配置される、ことを特徴とする携帯情報端末。
【請求項２】
前記少なくとも一つのストレージデバイスは、二つ以上のストレージデバイスであり、
前記少なくとも一つのホストコントローラは、二つ以上のホストコントローラであることを特徴とする請求項１に記載の携帯情報端末。
【請求項３】
前記ストレージデバイスから前記ＲＡＭへのデータ転送の完了を待つ待ち状態において、前記ＲＡＭに転送された圧縮済の読出しデータの解凍処理と、前記ＲＡＭに転送された読出しデータに基づいてＤＭＡ転送を割愛した読出しデータを再構築する再構築処理のうち少なくともいずれかを行うプロセッサを備えることを特徴とする請求項１または請求項２に記載の携帯情報端末。
【請求項４】
前記再構築処理は、読出しデータの足し合わせ、流用の少なくともいずれかによるものであることを特徴とする請求項３に記載の携帯情報端末。
【請求項５】
前記再構築処理の後、前記プロセッサは、再構築されたデータに基づいてチェックサムを算出し、算出されたチェックサムを前記ＲＡＭに転送された読出しデータに付加されたチェックサムと照合することを特徴とする請求項３または請求項４に記載の携帯情報端末。
【請求項６】
少なくとも一つのストレージデバイスと、
ＲＡＭと、
電源投入のときに、前記ストレージデバイスに格納された読出しデータを自身を介して前記ＲＡＭへＤＭＡ転送させる前記ストレージデバイス個別に対応した少なくとも一つのホストコントローラとを備えた携帯情報端末における前記ストレージデバイスへ読出しデータを配置するためのデータ配置プログラムであって、
コンピュータを、
配置対象の読出しデータのサイズが、前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりも大きいと判定する手段と、
前記判定がされると、前記少なくとも一つのストレージデバイスのうち少なくともいずれかのスペックで定まる最大読出しサイズよりもサイズが小さくなるよう前記配置対象の読出しデータを分割する手段と、
前記分割後の読出しデータを前記ストレージデバイスへ配置する手段と
して機能させるためのデータ配置プログラム。
【請求項７】
前記コンピュータを、
二つ以上のストレージデバイスである前記少なくとも一つのストレージデバイスのうち、スペックで定まる最大読出しサイズより配置対象の読出しデータのサイズが小さくなる方のストレージデバイスへ前記配置対象の読出しデータを配置する手段として機能させるための請求項６に記載のデータ配置プログラム。
【請求項８】
前記コンピュータを、
前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりも配置対象の読出しデータのサイズが小さいと判定する手段と、
前記判定がされると、前記少なくとも一つのストレージデバイスのうち読み出し速度の最も速いストレージデバイスへ前記配置対象の読出しデータを配置する手段と
して機能させるための請求項７に記載のデータ配置プログラム。
【請求項９】
前記コンピュータを、
データ圧縮を行わない、データ圧縮を行う、他のデータの足し合わせにより代用してＤＭＡ転送を割愛する、他のデータの流用により代用してＤＭＡ転送を割愛する、の少なくともいずれかを含めた複数段階の重みづけを、前記携帯情報端末により起動時に実行されるプログラムを構成する分割された各データに対して行う手段と、
前記重みづけに基づいて前記ストレージデバイスへ配置する読出しデータを決定する手段と
して機能させるための請求項６〜請求項８のいずれか１項に記載のデータ配置プログラム。
【請求項１０】
前記コンピュータを、
解凍処理が済んだか否かを示す解凍フラグと、前記ＲＡＭに転送された読出しデータに基づく足し合わせによるＤＭＡ転送が割愛された読出しデータの再構築が済んだか否かを示す第１転送割愛データ展開フラグと、前記ＲＡＭに転送された読出しデータに基づく流用によるＤＭＡ転送が割愛された読出しデータの再構築が済んだか否かを示す第２転送割愛データ展開フラグの少なくともいずれかを、前記重みづけに応じた内容で前記ストレージデバイスへ配置する読出しデータに付加する手段と
して機能させるための請求項９に記載のデータ配置プログラム。
【請求項１１】
前記コンピュータを、
前記ストレージデバイスへ配置する読出しデータにチェックサムを付加すると共に、前記読出しデータの再構築により再構築された読出しデータに基づき算出されたチェックサムと前記付加されたチェックサムの照合が済んだか否かを示すチェックサム照合フラグを、前記重みづけに応じた内容で前記ストレージデバイスへ配置する読出しデータに付加する手段として機能させるための請求項１０に記載のデータ配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯情報端末に関する。
【背景技術】
【０００２】
従来より、スマートフォンなどの多機能携帯電話を含む携帯情報端末が様々に提案されている。このような携帯情報端末においては、回路規模、コスト、容量の面で有利であるＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリ）がプログラムの記憶に使用される。携帯情報端末の電源を投入するとブートが行われるが、その際、ＮＡＮＤメモリからＲＡＭにプロセッサが実行するためのプログラムが転送される。
【０００３】
例えば、特許文献１には、ＮＡＮＤメモリにプログラムを圧縮して格納しておき、電源投入後、２つのＣＰＵがＮＡＮＤコントローラの状態（ビジー又はレディ）に応じて、バッファに一旦保存されたデータを解凍処理してＲＡＭに展開するか、ＮＡＮＤメモリからデータを読出しバッファへ保存するような携帯情報端末が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９３８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、従来、ＮＡＮＤメモリからのブートにおいて、ＤＭＡ（Direct Memory Access）転送を利用してＮＡＮＤメモリ及びＮＡＮＤコントローラを含むＮＡＮＤデバイスからＲＡＭへプログラムを転送するものがある。ＤＭＡとは、プロセッサを介さずに各種デバイスからＲＡＭへ直接データ転送を行う方式である。この場合、ＮＡＮＤデバイスからＲＡＭへはＤＭＡコントローラを含むホストコントローラを介してデータが転送される。
【０００６】
このような場合、プログラムを構成する分割された各データがＮＡＮＤデバイスに格納され、各データが順番に読み出されて転送される。ＮＡＮＤデバイスは、データを読出し中はビジー状態となり、データ読出しが完了するとレディ状態となる。また、ホストコントローラは、ホストコントローラが有するＦＩＦＯ（First In, First Out）バッファが溢れなければレディ状態となり、溢れている場合はビジー状態となる。データ読出しが完了してＮＡＮＤデバイスがレディ状態となると、ホストコントローラもレディ状態である場合は次のデータを読み出すことができる。しかし、ＮＡＮＤデバイスがレディ状態となっても、ホストコントローラがビジー状態の場合はビジー状態が解除されるまで次のデータを読み出すことができず、それまでの待ち状態（ビジー待ち状態）が発生する。
【０００７】
従来は、ＮＡＮＤデバイスのスペックで定める最大読出しサイズを考慮してＮＡＮＤデバイスへデータが分割されて格納されておらず、スペックオーバーの巨大なデータを一度に読み出すことがあった。この場合、ホストコントローラに負荷がかかり、ビジー待ち状態の時間（ビジー待ち時間）が長くなり、結果的に全部のデータを読み出す処理時間が長くなるという問題があった。
【０００８】
また、従来は、ＮＡＮＤデバイスといった単一のストレージデバイスにのみデータを格納していたので、ＮＡＮＤデバイスのビジー状態が解除されるまでの待ち時間（ビジー待ち時間）が長くなり、このような要因によっても全部のデータを読み出す処理時間が長くなっていた。
【０００９】
上記のように全部のデータを読み出す処理時間が長いと、携帯情報端末において電源投入後、システムが起動して使用可能状態に移行するまでの起動時間が長くなるため、個人差はあるもののユーザによっては不快感を持つという問題があった。また、携帯情報端末の生産ラインで電源投入を行う行程がある場合は、起動時間が長くなれば、生産ラインでの作業時間が長くなり、生産コストが上昇するという問題もあった。特にスマートフォンなどの多機能な携帯情報端末である場合は起動時間がより長くなるので上記問題点が顕著となる。
【００１０】
そこで、本発明は、起動時間を短縮することが可能となる携帯情報端末、及びそのような携帯情報端末のためのデータ配置プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の携帯情報端末は、少なくとも一つのストレージデバイスと、
ＲＡＭと、
電源投入のときに、前記ストレージデバイスに格納された読出しデータを自身を介して前記ＲＡＭへＤＭＡ転送させる前記ストレージデバイス個別に対応した少なくとも一つのホストコントローラと、を備え、
前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりもサイズが大きな読出しデータを、前記少なくとも一つのストレージデバイスのうち少なくともいずれかのスペックで定まる最大読出しサイズよりも小さくなるよう分割した読出しデータが前記ストレージデバイスへ配置される構成とする。
【００１２】
このような構成によれば、ストレージデバイスのスペックで定まる最大読出しサイズを考慮して適切なサイズに読出しデータが分割されてストレージデバイスへ配置されるので、ＤＭＡ転送の際にホストコントローラのビジー待ち時間を抑制することができる。従って、データ転送時間を短縮でき、電源投入時の起動時間を短縮することが可能となる。
【００１３】
また、上記構成において、前記少なくとも一つのストレージデバイスは、二つ以上のストレージデバイスであり、
前記少なくとも一つのホストコントローラは、二つ以上のホストコントローラであることとしてもよい。
【００１４】
このような構成によれば、ストレージデバイスのビジー待ち時間を抑制することができるので、データ転送時間ひいては起動時間をより短縮することが可能となる。
【００１５】
また、上記いずれかの構成において、前記ストレージデバイスから前記ＲＡＭへのデータ転送の完了を待つ待ち状態において、前記ＲＡＭに転送された圧縮済の読出しデータの解凍処理と、前記ＲＡＭに転送された読出しデータに基づいてＤＭＡ転送を割愛した読出しデータを再構築する再構築処理のうち少なくともいずれかを行うプロセッサを備えることとしてもよい。
【００１６】
このような構成によれば、データ転送と並行して起動に必要な処理を行うので、起動時間を大幅に短縮することが可能となる。また、圧縮済の読出しデータを転送したり、ＤＭＡ転送を割愛することにより、データ転送時間を抑制することができる。
【００１７】
また、上記構成において、前記再構築処理は、読出しデータの足し合わせ、流用の少なくともいずれかによるものであることとしてもよい。
【００１８】
また、上記いずれかの構成において、前記再構築処理の後、前記プロセッサは、再構築されたデータに基づいてチェックサムを算出し、算出されたチェックサムを前記ＲＡＭに転送された読出しデータに付加されたチェックサムと照合することとしてもよい。
【００１９】
このような構成によれば、チェックサムの照合により、データ再構築処理が正常に行われたかを判定することができる。
【００２０】
また、本発明のデータ配置プログラムは、
少なくとも一つのストレージデバイスと、
ＲＡＭと、
電源投入のときに、前記ストレージデバイスに格納された読出しデータを自身を介して前記ＲＡＭへＤＭＡ転送させる前記ストレージデバイス個別に対応した少なくとも一つのホストコントローラと、を備えた携帯情報端末における前記ストレージデバイスへ読出しデータを配置するためのデータ配置プログラムであって、
コンピュータを、
配置対象の読出しデータのサイズが、前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりも大きいと判定する手段と、
前記判定がされると、前記少なくとも一つのストレージデバイスのうち少なくともいずれかのスペックで定まる最大読出しサイズよりもサイズが小さくなるよう前記配置対象の読出しデータを分割する手段と、
前記分割後の読出しデータを前記ストレージデバイスへ配置する手段と、
して機能させるためのデータ配置プログラムとしている。
【００２１】
このような構成によれば、ストレージデバイスのスペックで定まる最大読出しサイズを考慮して適切なサイズに読出しデータが分割されてストレージデバイスへ配置されるので、ＤＭＡ転送の際にホストコントローラのビジー待ち時間を抑制することができる。従って、データ転送時間を短縮でき、携帯情報端末の電源投入時の起動時間を短縮することが可能となる。
【００２２】
また、上記構成において、前記コンピュータを、二つ以上のストレージデバイスである前記少なくとも一つのストレージデバイスのうち、スペックで定まる最大読出しサイズより配置対象の読出しデータのサイズが小さくなる方のストレージデバイスへ前記配置対象の読出しデータを配置する手段として機能させるためのものとしてもよい。
【００２３】
このような構成によれば、ホストコントローラのビジー待ち時間を抑制すると共に、ストレージデバイスのビジー待ち時間も抑制できるので、携帯情報端末の起動時間を短縮できる。
【００２４】
また、上記構成において、前記コンピュータを、
前記少なくとも一つのストレージデバイスのスペックで定まるいずれの最大読出しサイズよりも配置対象の読出しデータのサイズが小さいと判定する手段と、
前記判定がされると、前記少なくとも一つのストレージデバイスのうち読み出し速度の最も速いストレージデバイスへ前記配置対象の読出しデータを配置する手段と、
して機能させるためのものとしてもよい。
【００２５】
このような構成によれば、データ転送時間ひいては起動時間をより短縮できる。
【００２６】
また、上記いずれかの構成において、前記コンピュータを、データ圧縮を行わない、データ圧縮を行う、他のデータの足し合わせにより代用してＤＭＡ転送を割愛する、他のデータの流用により代用してＤＭＡ転送を割愛する、の少なくともいずれかを含めた複数段階の重みづけを、前記携帯情報端末により起動時に実行されるプログラムを構成する分割された各データに対して行う手段と、
前記重みづけに基づいて前記ストレージデバイスへ配置する読出しデータを決定する手段と、して機能させるためのものとしてもよい。
【００２７】
このような構成によれば、携帯情報端末においてＤＭＡ転送させるデータ量を削減することができ、データ転送時間を短縮できる。
【００２８】
また、上記構成において、前記コンピュータを、解凍処理が済んだか否かを示す解凍フラグと、前記ＲＡＭに転送された読出しデータに基づく足し合わせによるＤＭＡ転送が割愛された読出しデータの再構築が済んだか否かを示す第１転送割愛データ展開フラグと、前記ＲＡＭに転送された読出しデータに基づく流用によるＤＭＡ転送が割愛された読出しデータの再構築が済んだか否かを示す第２転送割愛データ展開フラグの少なくともいずれかを、前記重みづけに応じた内容で前記ストレージデバイスへ配置する読出しデータに付加する手段として機能させるためのものとしてもよい。
【００２９】
このような構成によれば、携帯情報端末において解凍フラグ、第１転送割愛データ展開フラグ、第２転送割愛データ展開フラグを参照して、圧縮済の読出しデータの解凍処理、ＤＭＡ転送が割愛された読出しデータの再構築処理を行える。
【００３０】
また、上記構成において、前記コンピュータを、前記ストレージデバイスへ配置する読出しデータにチェックサムを付加すると共に、前記読出しデータの再構築により再構築された読出しデータに基づき算出されたチェックサムと前記付加されたチェックサムの照合が済んだか否かを示すチェックサム照合フラグを、前記重みづけに応じた内容で前記ストレージデバイスへ配置する読出しデータに付加する手段として機能させるためのものとしてもよい。
【００３１】
このような構成によれば、携帯情報端末においてチェックサム照合フラグを参照してチェックサムの照合を行え、データ再構築が正常に行われたかを判定できる。
【発明の効果】
【００３２】
本発明によると、携帯情報端末における起動時間を短縮することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係るパソコンとスマートフォンのブロック構成を示す図である。
【図２】本発明の一実施形態に係るツール（ソフトウェア）によるデータ配置処理に関するフローチャートである。
【図３】図２のフローチャートにおけるステップＳ４の処理に関するフローチャートである。
【図４】データ配置処理の具体例を示す図である。
【図５】サイズの大きい読出しデータを分割する場合の具体例を示す図である。
【図６】本発明の一実施形態に係るスマートフォンのブロック構成を示す図である。
【図７】本発明の一実施形態に係るスマートフォンにおけるブート処理に関するフローチャートである。
【図８】本発明の一実施形態に係るストレージデバイス及びホストコントローラのビジー待ち時間の一例を示す図である。
【図９】従来技術に係るストレージデバイス及びホストコントローラのビジー待ち時間の一例を示す図である。
【発明を実施するための形態】
【００３４】
以下に本発明の一実施形態について図面を参照して説明する。
【００３５】
＜携帯情報端末へのデータ配置に関して＞
まず、携帯情報端末の起動時間の短縮を目的として、データを携帯情報端末のストレージデバイスへ適切に分割配置するツール（ソフトウェア）について説明する。
【００３６】
このようなツールを記憶されたパソコン（パーソナルコンピュータ）１０と、パソコン１０と接続された携帯情報端末の一例であるスマートフォン２０のブロック構成図を図１に示す。
【００３７】
図１に示すパソコン１０は、ＣＰＵ１０１と、記憶装置１０２と、ＲＡＭ１０３と、表示部１０４と、操作部１０５と、ＵＳＢ（Universal Serial Bus）インタフェース１０６を備えている。
【００３８】
ＣＰＵ１０１は、液晶ディスプレイ等で構成される表示部１０４、及び、キーボード及びマウス等で構成される操作部１０５等の装置各部に、バスを介して接続されている。記憶装置１０２は、例えばハードディスク装置で構成される。ツールである制御プログラム１０２Ａ、及びスマートフォン２０内部で稼働するファームウェア１０２Ｂが記憶装置１０２に記憶される（なお、ＲＡＭ１０３のワークメモリに記憶してもよい）。ファームウェア１０２Ｂは、スマートフォン内部で稼働するブートローダー、デバイスドライバー、ＯＳ、アプリケーションソフトウェア等の実行コード、及び実行コードで参照するデータで構成される。ＲＡＭ１０３は、ＣＰＵ１０１による制御プログラム１０２Ａの実行時にワークメモリとして用いられる。ＵＳＢインタフェース１０６は、スマートフォン２０側のＵＳＢインタフェース２０３とＵＳＢケーブルにより接続され、ＵＳＢインタフェース２０３との間で通信を行う。なお、パソコン１０とスマートフォン２０を接続するインタフェースはＵＳＢに限ることはない。
【００３９】
スマートフォン２０は、ストレージデバイスとして、ＮＡＮＤデバイス２０１及びμＳＤカードデバイス２０２を備えている。なお、図１では図示していないが、通話機能、メール機能、インターネット機能、カメラ機能等のスマートフォン２０に必要な機能のための各種構成はスマートフォン２０に当然に備えられる。
【００４０】
ここで、パソコン１０により処理されるスマートフォン２０のストレージデバイスへの読出しデータ配置処理に関するフローチャートを図２に示す。
【００４１】
図２のフローチャートが開始されると、ステップＳ１で、ＣＰＵ１０１は、制御プログラム１０２Ａの指令を受け、ファームウェア１０２Ｂに対して４段階の重みづけを行う。ここで、図４のステップＳ１に一例を示すように、ファームウェア１０２Ｂは予め複数のデータに分割されており、分割された各データに対して４段階の重みづけを行う。
【００４２】
４段階とは、（１）圧縮しない、（２）圧縮する、（３）他の読出しデータの足し合わせで代用することにより転送を割愛する、（４）他の読出しデータの流用（コピー）で代用することにより転送を割愛する、の４つのグループである。ここで、転送を割愛するとは、スマートフォン２０においてストレージデバイスからＲＡＭへの起動時の転送を割愛するという意である。また、上記（２）の重みづけを行ったデータについては、圧縮処理を行う。圧縮のアルゴリズムとしては、例えば、ツィッターなどストリーミングデータ圧縮で利用実績の多いＬＺＯ（Lempel-Ziv-Oberhumer）やsnappyを採用することができる。
【００４３】
例えば、図４のステップＳ１に示す例であれば、データＤについてはデータＡとデータＢの足し合わせで代用し、データＥについてはデータＣの流用で代用している。また、データＢ及びＦについては圧縮処理を行う。
【００４４】
次に、ステップＳ２で、ＣＰＵ１０１は、制御プログラム１０２Ａの指令を受け、ステップＳ１で重みづけをされたデータの読み出し順を算出する。このとき、ステップＳ１で上記（３）又は（４）に重みづけしたデータについては転送を割愛するので読み出さないこととして扱う。
【００４５】
例えば、図４のステップＳ２に示す例であれば、データＤ及びＥは読み出さないこととして、読出し順を算出している。
【００４６】
そして、ステップＳ３で、ＣＰＵ１０１は、制御プログラム１０２Ａの指令を受け、ステップＳ２で読み出し順を算出したデータについてソートを行い、ソートされたデータに読み出し順を示す読み出し順フラグを含む各種フラグを付加する。ソートされたデータは、スマートフォン２０のストレージデバイスへ配置されて起動時にストレージデバイスから読み出される読出しデータとなる。なお、読出しデータには、一部、圧縮されたデータが含まれる（図４ではデータＢ及びデータＦは圧縮済データ）。
【００４７】
読み出し順フラグ以外には、解凍が済んだか否かを示す解凍フラグ、他のデータの足し合わせでの代用により転送を割愛したデータの足し合わせによる展開（再構築）が済んだか否かを示す第１転送割愛データ展開フラグ、他のデータの流用での代用により転送を割愛されたデータの、流用（コピー）による展開が済んだか否かを示す第２転送割愛データ展開フラグを付加する。更には、読出しデータに対応してチェックサムを付加すると共に、再構築された転送を割愛したデータに基づき算出されたチェックサムと上記付加されたチェックサムの照合が済んでいるか否かを示すチェックサム照合フラグも読出しデータに対応して付加する。
【００４８】
例えば、図４のステップＳ３に示す例であれば、データＢ及びＦについては圧縮処理をしているので、解凍フラグを未解凍とする。また、データＡとデータＢの足し合わせによりデータＤを展開するので、データＡ及びＢについては第１転送割愛データ展開フラグを未展開とし、データＣの流用によりデータＥを展開するので、データＣについては第２転送割愛データ展開フラグを未展開とする。また、チェックサム照合フラグは、データＡ、Ｂ及びＣについては未照合とする。
【００４９】
次に、ステップＳ４で、ＣＰＵ１０１は、制御プログラム１０２Ａの指令を受け、ステップＳ３でフラグを付加した読出しデータをＮＡＮＤデバイス２０１又はμＳＤカードデバイス２０２に分割して配置する。
【００５０】
ここでは、より具体的に、図３に示すフローチャートの処理が行われる。まず、ステップＳ４１で、ＣＰＵ１０１は、配置対象の読出しデータがＮＡＮＤデバイスのスペックで定められる最大読出しサイズより小さいか否かを判定する。もし、最大読出しサイズより小さい場合は（ステップＳ４１のＹ）、ステップＳ４２に進み、ＣＰＵ１０１は、配置対象の読出しデータがμＳＤカードデバイスのスペックで定められる最大読出しサイズより小さいか否かを判定する。
【００５１】
もし、最大読出しサイズ以上の場合は（ステップＳ４２のＮ）、ステップＳ４４に進み、ＣＰＵ１０１は、配置対象の読出しデータの配置先をＮＡＮＤデバイス２０１に決定する。一方、μＳＤカードデバイスのスペックで定められる最大読出しサイズより小さい場合は（ステップＳ４２のＹ）、ステップＳ４３に進み、ＣＰＵ１０１は、ＮＡＮＤデバイス２０１とμＳＤカードデバイス２０２のうち読み出し速度の速い方のデバイスにデータ配置先を決定する。
【００５２】
ステップＳ４１でＮＡＮＤデバイスのスペックで定められる最大読出しサイズ以上の場合は（ステップＳ４１のＮ）、ステップＳ４５に進み、ＣＰＵ１０１は、配置対象の読出しデータがμＳＤカードデバイスのスペックで定められる最大読出しサイズより小さいか否かを判定する。もし、最大読出しサイズより小さい場合は（ステップＳ４５のＹ）、ステップＳ４６に進み、ＣＰＵ１０１は、配置対象の読出しデータの配置先をμＳＤカードデバイス２０２に決定する。
【００５３】
一方、μＳＤカードデバイスのスペックで定められる最大読出しサイズ以上の場合は（ステップＳ４５のＮ）、ステップＳ４７に進み、ＣＰＵ１０１は、配置対象の読出しデータを半分に分割し、図２に示すステップＳ１の処理に戻り、重みづけをし直す。
【００５４】
例えば、図５に示す例であれば、データＣがＮＡＮＤデバイス及びμＳＤカードデバイスのいずれの最大読出しサイズ以上である場合を示し、この場合、データＣがデータＣ１及びＣ２に半分に分割される。そして、ステップＳ１に戻り、重みづけが再度なされる。このとき、データＥは元々データＣの流用で代用するものであったので、データＣ１とＣ２の足し合わせにより代用するようにしている。
【００５５】
そして、ステップＳ４３、Ｓ４４、Ｓ４６のいずれかの後、ステップＳ４８に進み、ＣＰＵ１０１は、全ての読出しデータについて配置先を決定したか否かを判定し、そうでない場合は（ステップＳ４８のＮ）、配置対象の読出しデータを変えてステップＳ４１の処理に戻る。
【００５６】
ステップＳ４８で、全ての読出しデータについて配置先を決定している場合は（ステップＳ４８のＹ）、ステップＳ４９に進み、ＣＰＵ１０１は、決定された配置先に応じて記憶装置１０２に記憶された各読出しデータをＵＳＢインタフェース１０６及び２０３を介してＮＡＮＤデバイス２０１又はμＳＤカードデバイス２０２へ配置する。このとき、付加された各種フラグ及びチェックサムを読出しデータに対応させてＮＡＮＤデバイス２０１又はμＳＤカードデバイス２０２へ配置する。
【００５７】
ステップＳ４９の後、図２のエンドに進み、処理は完了となる。
【００５８】
＜携帯情報端末におけるブート処理に関して＞
以上のようにしてスマートフォン２０のストレージデバイスに配置された読出しデータは、スマートフォン２０の電源投入後、ストレージデバイスからＲＡＭへ転送され、システムが起動する。
【００５９】
読出しデータの転送処理に関するスマートフォン２０のブロック構成図を図６に示す。図６に示すように、スマートフォン２０は、先述したＮＡＮＤデバイス２０１及びμＳＤカードデバイス２０２（図１）に加えて、ＮＡＮＤデバイス２０１に対応したＮＡＮＤホストコントローラ２１１と、μＳＤカードデバイス２０２に対応したμＳＤホストコントローラ２１２と、プロセッサ２２１と、ＲＡＭ２２２を備えている。
【００６０】
ＮＡＮＤホストコントローラ２１１は、バスＩ／Ｏ２１１Ａと、ＦＩＦＯ（First In, First Out）バッファ２１１Ｂと、バスＩ／Ｏ２１１Ｃと、エラー訂正部２１１Ｄと、レジスタ２１１Ｅと、ＤＭＡ（Direct Memory Access）コントローラ２１１Ｆを備えている。
【００６１】
ＮＡＮＤデバイス２０１に記憶されたデータは、バスＩ／Ｏ２１１Ａ、エラー訂正部２１１Ｄ、ＦＩＦＯバッファ２１１Ｂ、バスＩ／Ｏ２１１Ｃを介してＲＡＭ２２２へＤＭＡ転送される。ＤＭＡコントローラ２１１Ｆは、ＤＭＡ転送を制御するコントローラである。また、レジスタ２１１Ｅは、ＦＩＦＯバッファ２１１Ｂの状態を保持したり、プロセッサ２２１からＤＭＡコントローラ２１１Ｆへのデータ読出し指示を保持したりする。
【００６２】
μＳＤホストコントローラ２１２は、バスＩ／Ｏ２１２Ａと、ＦＩＦＯバッファ２１２Ｂと、バスＩ／Ｏ２１２Ｃと、レジスタ２１２Ｄと、ＤＭＡコントローラ２１２Ｅを備えている。
【００６３】
μＳＤカードデバイス２０２に記憶されたデータは、バスＩ／Ｏ２１２Ａ、ＦＩＦＯバッファ２１２Ｂ、バスＩ／Ｏ２１２Ｃを介してＲＡＭ２２２へＤＭＡ転送される。ＤＭＡコントローラ２１２Ｅは、ＤＭＡ転送を制御するコントローラである。また、レジスタ２１２Ｄは、ＦＩＦＯバッファ２１２Ｂの状態を保持したり、プロセッサ２２１からＤＭＡコントローラ２１２Ｅへのデータ読出し指示を保持したりする。
【００６４】
プロセッサ２２１は、マルチコアプロセッサとして構成され、ＤＭＡコントローラ２１１Ｆ及び２１２Ｅへのデータ読出し指示を行う他に、ＲＡＭ２２２に転送された圧縮済データの解凍処理、ＲＡＭ２２に転送されたデータに基づく足し合わせや流用によるデータ再構築等の各種処理を行う。
【００６５】
次に、電源投入時のスマートフォン２０におけるブート処理に関するフローチャートを図７に示す。図７に示すフローチャートは、ＮＡＮＤデバイス２０１に格納されたブートローダーを実行するプロセッサ２２１により処理される。なお、ブートローダーは、サイズに余裕があり、全くバージョンアップを必要としない条件では、不図示のブートＲＯＭに格納するようにしてもよい。
【００６６】
電源が投入されると図７のフローチャートが開始され、まずステップＳ１１で、プロセッサ２２１は、ＮＡＮＤデバイス２０１及びμＳＤカードデバイス２０２に配置された読出し順フラグをサーチする。
【００６７】
次に、ステップＳ１２で、プロセッサ２２１は、ステップＳ１１のサーチ結果に基づき、ＮＡＮＤホストコントローラ２１１のＤＭＡコントローラ２１１ＦとμＳＤカードデバイス２０２のＤＭＡコントローラ２１２Ｅ個別に最初に読み出すべきデータを設定する。これにより、ＤＭＡコントローラ２１１Ｆの制御により、設定されたデータ（読出しデータと、対応する各種フラグ及びチェックサム）のＮＡＮＤデバイス２０１からＲＡＭ２２２へのＤＭＡ転送が開始されると共に、ＤＭＡコントローラ２１２Ｅの制御により、設定されたデータのμＳＤカードデバイス２０２からＲＡＭ２２２へのＤＭＡ転送が開始される。
【００６８】
そして、ステップＳ１３で、プロセッサ２２１は、設定されたデータのＲＡＭ２２２への転送（コピー）が完了したか否かを判定する。このとき、プロセッサ２２１は、ＮＡＮＤデバイス２０１又はμＳＤカードデバイス２０２の状態をＮＡＮＤホストコントローラ２１１又はμＳＤホストコントローラ２１２を介してポーリングし、ストレージデバイスの状態がビジー状態であればコピーは完了していないと判定し、レディ状態であればコピーは完了したと判定する。なお、いずれのストレージデバイスへポーリングするかは読み出し順フラグにより決定される。
【００６９】
もしコピーが完了しておらずコピー完了待ちである場合は（ステップＳ１３のＹ）、ステップＳ１５に進み、プロセッサ２２１は、ＲＡＭ２２２へのコピーが完了した読出しデータで解凍が必要なものがあるか判定する。この判定はＲＡＭ２２２へコピーされた解凍フラグを参照することにより行われる。
【００７０】
もし、解凍が必要なものがある場合は（ステップＳ１５のＹ）、ステップＳ１６に進み、プロセッサ２２１は、子プロセスを立ち上げる。そして、ステップＳ１７で、プロセッサ２２１は、ＲＡＭ２２２に格納された解凍順番待ちの読出しデータを解凍処理する。解凍の優先順番は読み出し順フラグにより決定される。解凍処理が完了すると、プロセッサ２２１は、ＲＡＭ２２２に格納された対応する解凍フラグを解凍済とする。そして、ステップＳ１８で子プロセスが終了し、ステップＳ１３へ戻る。なお、解凍が必要なものがない場合は（ステップＳ１５のＮ）、そのままステップＳ１３へ戻る。
【００７１】
また、ステップＳ１３でコピーが完了している場合は（ステップＳ１３のＮ）、ステップＳ１４に進み、プロセッサ２２１は、ＮＡＮＤホストコントローラ２１１のＦＩＦＯバッファ２１１Ｂ又はμＳＤホストコントローラ２１２のＦＩＦＯバッファ２１２Ｂの状態を確認し、ＦＩＦＯバッファが溢れていない場合は、ＤＭＡコントローラ２１１Ｆ又はＤＭＡコントローラ２１２Ｅに次に読み出すデータの読出しを追加設定する。
【００７２】
ＦＩＦＯバッファ２１１Ｂ又は２１２Ｂが溢れた場合にレジスタ２１１Ｅ又は２１２Ｄにビジー状態を示すフラグが保持され、そうでない場合はレディ状態を示すフラグが保持される。従って、プロセッサ２２１がレジスタへポーリングすることにより、ＦＩＦＯバッファが溢れているか否かを判定できる。もし、ＦＩＦＯバッファが溢れている場合は、プロセッサ２２１は、データの読出しを設定しない。ステップＳ１４の後は、ステップＳ１３へ戻る。
【００７３】
また、ステップＳ１５〜Ｓ１８に示した解凍に関する処理と並行して、プロセッサ２２１は、次のようなデータ再構築、チェックサム照合に関する処理も行う。
【００７４】
データの足し合わせによるデータ再構築に関しては、ＲＡＭ２２２にコピーが完了した読出しデータで足し合わせによってデータ再構築が必要なものがあるとＲＡＭ２２２に格納された第１転送割愛データ展開フラグに基づきプロセッサ２２１により判定されると、プロセッサ２２１は子プロセスを立ち上げ、読出しデータの足し合わせによりデータをＲＡＭ２２２に再構築する。再構築の優先順番は読み出し順フラグにより決定される。再構築が完了すると、プロセッサ２２１は対応する第１転送割愛データ展開フラグを展開済とし、子プロセスを終了する。
【００７５】
データの流用によるデータ再構築に関しては、ＲＡＭ２２２にコピーが完了した読出しデータで流用（コピー）によってデータ再構築が必要なものがあるとＲＡＭ２２２に格納された第２転送割愛データ展開フラグに基づきプロセッサ２２１により判定されると、プロセッサ２２１は子プロセスを立ち上げ、読出しデータのコピーによりデータをＲＡＭ２２２に再構築する。再構築の優先順番は読み出し順フラグにより決定される。再構築が完了すると、プロセッサ２２１は対応する第２転送割愛データ展開フラグを展開済とし、子プロセスを終了する。
【００７６】
また、チェックサム照合に関しては、データの足し合わせ又は流用によるデータ再構築が済んでいる読出しデータでチェックサム照合が必要なものがあるとＲＡＭ２２２に格納されたチェックサム照合フラグに基づきプロセッサ２２１により判定されると、プロセッサ２２１は子プロセスを立ち上げ、再構築されたデータに基づきチェックサムを算出し、算出されたチェックサムをＲＡＭ２２２に格納されたチェックサムと照合する。照合の優先順番は読み出し順フラグにより決定される。
【００７７】
照合の結果、一致した場合は、正常にデータ再構築が行われているとして、プロセッサ２２１は対応するチェックサム照合フラグを照合済とし、子プロセスを終了する。一方、チェックサムが一致しなかった場合は、データ再構築が異常であるとして、プロセッサ２２１はブート処理を中断し、スマートフォン２０をシャットダウンする。
【００７８】
このようにしてストレージデバイスに配置された全てのデータについてＲＡＭ２２２へコピーが完了し、ＲＡＭ２２２に格納された各種フラグが全て処理済となると、ＲＡＭ２２２に格納された読出しデータがプロセッサ２２１により実行され、システムが起動し、スマートフォン２０の表示部には待ち受け画面が表示される。
【００７９】
以上のように本実施形態によれば、ツールによって予め、スマートフォン２０のいずれのストレージデバイスのスペックにより定まる最大読出しサイズよりもサイズが大きな読出しデータを、少なくともいずれかのストレージデバイスに対応する最大読出しサイズよりサイズが小さくなるよう分割してストレージデバイスへ配置する。これにより、スマートフォン２０のブート処理において、ストレージデバイスへ配置された読出しデータをＲＡＭへ転送する際にホストコントローラのＦＩＦＯバッファが溢れる状態を抑制し、ホストコントローラのビジー待ち時間を短縮できる。図８に本発明の実施形態に係るホストコントローラのビジー待ち時間の一例を示すが、図９に示すデータサイズのスペックを考慮しないで読出しデータをストレージデバイスに配置した従来例に比べて、ホストコントローラのビジー待ち時間を短縮することができる。
【００８０】
更には、ＮＡＮＤデバイス２０１とμＳＤカードデバイス２０２といった２つのストレージデバイスに読出しデータを分割して配置し、各ストレージデバイスに対応した各ホストコントローラを介してデータ転送するので、単一のストレージデバイスのみを用いる場合よりも、ブート処理におけるデータ転送の際にストレージデバイスのビジー待ち時間を短縮できる。図８に本発明の実施形態に係るストレージデバイスのビジー待ち時間の一例を示すが、図９に示す単一のストレージデバイスのみを用いた従来例に比べて、ストレージデバイスのビジー待ち時間を短縮することができる。
【００８１】
以上の要因により、ＤＭＡによるデータ転送時間を短縮でき、結果的に起動時間を短縮できる。更に、データ転送の待ち時間を利用して、解凍処理、データの再構築、チェックサム照合を行うので、起動時間を極力短縮することができる。
【００８２】
起動時間の短縮により、ユーザが使用可能となる状態へ移行するまでの待ち時間が短縮され、ユーザの不快感を抑えると共に、生産ラインで起動させる場合は作業時間が短縮されるので、生産コストを低減することもできる。
【００８３】
＜その他＞
以上、本発明の一実施形態について説明したが、本発明の趣旨の範囲内であれば、実施形態は種々変更が可能である。
【００８４】
例えば、上記実施形態では、ＮＡＮＤデバイスとμＳＤカードデバイスの２つのストレージデバイスを用いる例を説明したが、単一のストレージデバイスを用いるようにしても、スペックの定める最大読出しサイズより小さくなるよう読出しデータを分割してストレージデバイスへ配置すれば、ホストコントローラのビジー待ち時間を短縮して起動時間を短縮する効果を享受できる。
【００８５】
また、３つ以上のストレージデバイスを用いるようにしてもよい。例えば、ＮＡＮＤデバイス、μＳＤカードデバイスに加えて、ｅＭＭＣ（embedded Multi Media Card）デバイス、ＵＦＳ（Universal Flash Storage）デバイスを用いるようにしてもよい。
【００８６】
また、本発明に係る携帯情報端末としては、スマートフォンに限らず、タブレット型コンピュータ等を採用することもできる。
【００８７】
また、本発明に係るコンピュータとは、パソコンに限らず、スマートフォン等の他の電子機器も含む。
【符号の説明】
【００８８】
１０  パソコン
１０１  ＣＰＵ
１０２  記憶装置
１０２Ａ  制御プログラム
１０２Ｂ  ファームウェア
１０３  ＲＡＭ
１０４  表示部
１０５  操作部
１０６  ＵＳＢインタフェース
２０  スマートフォン
２０１  ＮＡＮＤデバイス
２０２  μＳＤカードデバイス
２０３  ＵＳＢインタフェース
２１１  ＮＡＮＤホストコントローラ
２１１Ａ  バスＩ／Ｏ
２１１Ｂ  ＦＩＦＯバッファ
２１１Ｃ  バスＩ／Ｏ
２１１Ｄ  エラー訂正部
２１１Ｅ  レジスタ
２１１Ｆ  ＤＭＡコントローラ
２１２  μＳＤホストコントローラ
２１２Ａ  バスＩ／Ｏ
２１２Ｂ  ＦＩＦＯバッファ
２１２Ｃ  バスＩ／Ｏ
２１２Ｄ  レジスタ
２１２Ｅ  ＤＭＡコントローラ
２２１  プロセッサ
２２２  ＲＡＭ
【図１】
2013250930.tif 000003
【図２】
2013250930.tif 000004
【図３】
2013250930.tif 000005
【図４】
2013250930.tif 000006
【図５】
2013250930.tif 000007
【図６】
2013250930.tif 000008
【図７】
2013250930.tif 000009
【図８】
2013250930.tif 000010
【図９】
2013250930.tif 000011