(57)【要約】【課題】    圧縮されたデータを解凍しながら記憶されたデータをアクセスする場合、DMA技術を用いてもデータの転送効率はCPUの処理能力に制限を受けてしまう。CPUが解凍処理中でもデータ転送の効率を高めることを目的とする。【解決手段】  不揮発性メモリに記憶された圧縮または暗号化されたデータを読み出した後、これを解凍または復号化処理に要する処理時間を求める。次の圧縮または暗号化されたデータ読み出しの際、このデータの読み出しに要する時間経過後も解凍または復号化処理が終了していないと予測される場合、あらかじめ転送情報を設定しておいた解凍および復号化処理が不要な別のデータを不揮発性メモリから読み出して転送処理を行うデータ転送装置とする。【選択図】  図６
2008250937.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリのデータを読み出す制御装置であって、
前記不揮発性メモリ上の第１の読み出しアドレスから圧縮または暗号化された第１のデータを転送する、記憶装置の間でデータを転送可能なデータ転送手段と、
前記不揮発性メモリに記憶された圧縮および暗号化されていない第２のデータの第２の読み出しアドレスと第２のデータを転送する第２の転送先アドレスを受信して記憶する記憶手段と、
第１のデータを解凍または復号化する第１の処理に要する処理時間を、第１のデータの第１のデータ量に基づいて予測し、この処理時間内に前記不揮発性メモリから読み出すことができる総データ量を求めるとともに、この総データ量から第３のデータのデータ量を除いた第２のデータ量を求める予測手段と、
第１のデータのデータ転送が終了した場合、前記記憶手段に記憶した第２の読み出しアドレスを前記不揮発性メモリに送信し、第２のデータ量に相当する第２のデータを前記不揮発性メモリから前記記憶手段に記憶した第２の転送先アドレスに転送するよう前記データ転送手段に指示する手段と、
を備えたことを特徴とするメモリ制御装置。
【請求項２】
前記予測手段は、以前に処理した解凍または復号化する処理の処理時間に基づいて所定のデータ量の処理に要する単位処理時間を算出し、この単位処理時間を用いて第２のデータ量を予測することを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記不揮発性メモリは、前記データ転送手段により所定時間内に読み出すことができるデータ量は一定であることを特徴とする、請求項１に記載のメモリ制御装置。
【請求項４】
不揮発性メモリに記憶したデータを読み出す方法であって、
CPUは、前記不揮発性メモリに記憶された圧縮または暗号化された第１のデータを読み出すために、第１のデータが記憶された第１の読み出しアドレスを該メモリに送信し、
前記不揮発性メモリに記憶された圧縮および暗号化されていない第２のデータの第２の読み出しアドレスと、第１のデータを転送する第１の転送先アドレスおよび第２のデータを転送する第２の転送先アドレスをデータ転送装置に送信し、
データ転送装置は、前記不揮発性メモリを読み出して取得した第１のデータを第１の転送先アドレスに転送し、
第１のデータの転送が終了した場合、CPUは転送した第１のデータを解凍または復号化する第１の処理を開始し、
圧縮または暗号化された第３のデータを読み出す場合、
第１のデータの第１のデータ量に基づいて第１の処理に要する処理時間を予測し、この処理時間内に前記不揮発性メモリから読み出すことができる総データ量を求めるとともに、この総データ量から第３のデータのデータ量を除いた第２のデータ量を求め、
データ転送装置は、第２の読み出しアドレスを前記不揮発性メモリに送信し、第２のデータ量に相当する第２のデータを前記不揮発性メモリから第２の転送先アドレスに転送する
ことを特徴とするメモリ制御方法。
【請求項５】
第１の処理に要する処理時間を予測する際、以前に処理した解凍または復号化する処理の処理時間に基づいて所定のデータ量の処理に要する単位処理時間を算出し、この単位処理時間を用いて予測することを特徴とする、請求項４に記載のメモリ制御方法。
【請求項６】
不揮発性メモリに記憶されたデータを読み出す情報機器であって、
前記不揮発性メモリ上の第１の読み出しアドレスから圧縮または暗号化された第１のデータを転送する、記憶装置の間でデータを転送可能なデータ転送手段と、
前記不揮発性メモリに記憶された圧縮および暗号化されていない第２のデータの第２の読み出しアドレスと第２のデータを転送する第２の転送先アドレスを受信して記憶する記憶手段と、
第１のデータを解凍または復号化する第１の処理に要する処理時間を、第１のデータの第１のデータ量に基づいて予測し、この処理時間内に前記不揮発性メモリから読み出すことができる総データ量を求めるとともに、この総データ量から第３のデータのデータ量を除いた第２のデータ量を求める予測手段と、
第１のデータのデータ転送が終了した場合、前記記憶手段に記憶した第２の読み出しアドレスを前記不揮発性メモリに送信し、第２のデータ量に相当する第２のデータを前記不揮発性メモリから前記記憶手段に記憶した第２の転送先アドレスに転送するよう前記データ転送手段に指示する手段と、
を備えたことを特徴とする情報機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのアクセス制御装置に関し、特に不揮発性メモリの制御装置、制御方法およびこれらを用いた情報機器に関する。
【背景技術】
【０００２】
半導体で構成された不揮発性を備えた半導体メモリの容量とアクセス速度が向上し、従来のデータ記憶で用いられている磁気ディスク装置の替わりとしてこれら半導体メモリが使用されることが多くなってきた。
【０００３】
また、圧縮された画像データや暗号化された情報を扱う場合も増え、CPU(Central Processing Unit)の担う処理量も増加している。データの転送に関しては従来からDMA(Direct Memory Access)技術を用いて負荷分散を図っているものの、前述のような圧縮／暗号化データの解凍／復号処理は依然としてCPUが処理しなければならない。CPUが解凍／復号に忙殺されている限り、新たな圧縮／暗号化データを取得しても解凍／復号処理が開始できないためDMA転送も休止せざるを得ず、データを高速転送できるというDMAのメリットが十分生かせていなかった。
【０００４】
たとえば、不揮発性メモリに記憶された暗号化データの読み出しと解凍の処理効率を、不揮発性メモリを用いることで高める技術が提案されている（特許文献１を参照）。
【特許文献１】特開平１０−１０５４６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
圧縮または暗号化されたデータを解凍／復号しながら記憶されたデータをアクセスする場合、DMA技術を用いてもデータの転送効率はCPUの処理能力に制限を受けてしまう。
【０００６】
本発明は上記の問題に鑑みてなされたもので、CPUが解凍あるいは復号化処理中でもCPU処理に依存しないデータのDMA転送を行なうことでデータ転送の効率を高めることを目的とする。
【課題を解決するための手段】
【０００７】
本発明にかかるメモリ制御装置は、
不揮発性メモリのデータを読み出す制御装置であって、前記不揮発性メモリ上の第１の読み出しアドレスから圧縮または暗号化された第１のデータを転送する、記憶装置の間でデータを転送可能なデータ転送手段と、前記不揮発性メモリに記憶された圧縮および暗号化されていない第２のデータの第２の読み出しアドレスと第２のデータを転送する第２の転送先アドレスを受信して記憶する記憶手段と、第１のデータを解凍または復号化する第１の処理に要する処理時間を、第１のデータの第１のデータ量に基づいて予測し、この処理時間内に前記不揮発性メモリから読み出すことができる総データ量を求めるとともに、この総データ量から第３のデータのデータ量を除いた第２のデータ量を求める予測手段と第１のデータのデータ転送が終了した場合、前記記憶手段に記憶した第２の読み出しアドレスを前記不揮発性メモリに送信し、第２のデータ量に相当する第２のデータを前記不揮発性メモリから前記記憶手段に記憶した第２の転送先アドレスに転送するよう前記データ転送手段に指示する手段を備えたことを特徴とする
本発明にかかるメモリ制御方法は、
不揮発性メモリに記憶したデータを読み出す方法であって、CPUは、前記不揮発性メモリに記憶された圧縮または暗号化された第１のデータを読み出すために、第１のデータが記憶された第１の読み出しアドレスを該メモリに送信し、前記不揮発性メモリに記憶された圧縮および暗号化されていない第２のデータの第２の読み出しアドレスと、第１のデータを転送する第１の転送先アドレスおよび第２のデータを転送する第２の転送先アドレスをデータ転送装置に送信し、データ転送装置は、前記不揮発性メモリを読み出して取得した第１のデータを第１の転送先アドレスに転送し、第１のデータの転送が終了した場合、CPUは転送した第１のデータを解凍または復号化する第１の処理を開始し、圧縮または暗号化された第３のデータを読み出す場合、第１のデータの第１のデータ量に基づいて第１の処理に要する処理時間を予測し、この処理時間内に前記不揮発性メモリから読み出すことができる総データ量を求めるとともに、この総データ量から第３のデータのデータ量を除いた第２のデータ量を求め、データ転送装置は、第２の読み出しアドレスを前記不揮発性メモリに送信し、第２のデータ量に相当する第２のデータを前記不揮発性メモリから第２の転送先アドレスに転送することを特徴とする。
【０００８】
また、これらを実現する情報機器が提供される。
【発明の効果】
【０００９】
CPUが解凍あるいは復号化処理中でもCPU処理に依存しないデータのDMA転送を行なうことでデータ転送の効率を高めることができる。
【発明を実施するための最良の形態】
【００１０】
図１は、従来の情報機器の一例を示す図である。図１には、CPU１００、メインメモリ１０１、不揮発性メモリ１０２、内部バス１０３、DMAC１０４および入出力部１０５が示されている。
【００１１】
CPU１００は、中央演算処理装置を示し、あらかじめ与えられたプログラムコードを処理することで所定の機能を果たすように構成されている。
【００１２】
メインメモリ１０１は、CPU１００がプログラムを実行する際の作業域など一時的に記憶しておくための機能を備えている。メインメモリ１０１は、通常は電源を落とすと記憶したデータが消去される揮発性の半導体メモリで構成され、電源停止後も記憶しておく必要があるデータは不揮発性のメモリや、外部の記憶装置に退避しておく必要がある。
【００１３】
不揮発性メモリ１０２は、電源が供給され続けなくとも一旦記憶したデータを保持することができる半導体メモリである。具体的にはNAND型フラッシュメモリのような、大規模のメモリ容量の記憶装置を構成するのに適したメモリ装置を想定している。このような半導体メモリは、データの消去や書き込みの速度が速く大容量化に向いているものの、ブロックと呼ばれる所定の単位での読み書きが必要とされる。メモリカードメディアに広く用いられており、コンパクトフラッシュ（登録商標）、スマートメディア、SDメモリカードなどのように着脱可能に構成されていても良い。
【００１４】
不揮発性メモリは一般にアクセス速度が遅いため、起動時などは不揮発性メモリ１０２に記憶したプログラムやデータを、より速い半導体メモリで構成されたメインメモリ１０１に転送してから実行される。
【００１５】
内部バス１０３は、情報機器内部の各構成部を接続し、それぞれの間でデータをやり取りするための機能を提供する。
【００１６】
DMAC１０４は、DMA(Direct Memory Access)転送を処理する制御装置である。DMAとは、コンピュータシステム内でのデータ転送方式の一つであり、CPU１００を介さずに各装置あるいはメモリとメモリの間で直接データ転送を行なう方式である。単調な大容量のデータ転送に適した方式とされ、おもに上述のような不揮発性メモリ１０２に記憶したプログラムやデータをメインメモリ１０１に転送する際に用いられる。
【００１７】
入出力部１０５は、この情報機器が外部の装置と情報を入出力するためのインタフェースである。たとえば外部に設置された磁気ディスク装置とのデータ交換や、通信網を介して他の情報機器と通信する機能を有している。
【００１８】
図２は、従来の不揮発性メモリ１０２の構成の一例を示す図である。図２では、データ格納部２００、ページ２０１、ブロック２０２、コントローラ２０３、データバッファ２０４およびステータスレジスタ２０５が示されている。
【００１９】
データ格納部２００は、半導体で構成された記憶素子本体を指す。１つのIC(Integrated Circuit)で構成されていても良いし複数のICから構成されていてもかまわない。記憶容量も回路規模、消費電力、コストなどを考慮して適宜選択すればよい。
【００２０】
ページ２０１は、データ格納部２００をアクセスする際の最小単位である。NAND型フラッシュメモリの場合には５１２バイトが一般的である。記憶データのアクセスは、このサイズ単位で振られたアドレスを指定することで行われる。
【００２１】
ブロック２０２は、NAND型フラッシュメモリを扱う場合のアクセス単位の一つである。ブロック２０２の中には複数のページ２０１が含まれ、一度の読み出しコマンドでブロックに含まれる複数のページを読み出すことが可能となっている。このアクセスモードはシーケンシャルリードと呼ばれている。たとえば、ページのサイズが５１２バイト、ブロックに含まれるページ数が３２である場合、５１２バイト単位で最大１６KBの記憶データを連続して読み出すことが出来る。
【００２２】
コントローラ２０３は、CPU１００やDMAC１０４からのコマンドを受け付け、データ格納部２００に記憶されたデータをページ単位、ブロック単位でアクセスできるようにインタフェースを提供する。たとえば、あるアドレスのデータの読み出しを受け付けると、そのアドレスに該当するデータ格納部２００上の記憶素子の場所に記憶されたデータをアクセスし、コマンドの結果としてCPU１００やDMAC１０４に返すように機能する。また、不揮発性メモリ１０２をメモリカードメディアとして機能させる場合には、各種メモリカードメディアの規格に沿ったインタフェースを実現する。
【００２３】
データバッファ２０４は、コントローラ２０３内に設けられた一時記憶域である。前述したようにNAND型フラッシュメモリではページやブロック単位のアクセスとなるため、読み出したデータ格納部２００内のデータを一旦ページ／ブロック単位にまとめるために用いられる。
【００２４】
ステータスレジスタ２０５は、コントローラ２０３の動作状態を記憶すると共に、不揮発性メモリ１０２の動作モードの設定をするために用いられる。このレジスタの値はCPU１００やDMAC１０４からのコマンドを受けることによって変更および読み出すことができる。
【００２５】
図３は、従来のデータ転送にかかるフロー図の一例を示す図である。
【００２６】
まず、不揮発性メモリ１０２に記憶されたデータを読み出すことに先立って、不揮発性メモリ１０２に対し記憶データの読み出しと、データを読み出すアドレスを送信する（ステップＳＴ１）。
【００２７】
CPU１００は読み出しコマンドを送信後、不揮発性メモリ１０２内のステータスレジスタ２０５を参照しながら、読み出しができる状態（READY状態）になったか否かを判定する（ステップＳＴ２）。READY状態で無い場合（Ｎｏ）、準備が整うまで待機する。
【００２８】
つぎに、不揮発性メモリ１０２からのデータ読み出しをDMAC１０４にて行うため、DMAC１０４へ読み出したデータの格納先となるメインメモリ１０１上のアドレスなどの必要な情報を送信する（ステップＳＴ３）。その後、CPU１００はDMAC１０４に、ステップＳＴ３で指示した内容でデータ転送の開始を指示する（ステップＳＴ４）。これを受けてDMAC１０４はCPU１００の動作とは無関係に、内部バス１０３を介しながら不揮発性メモリ１０２からメインメモリ１０１へデータ転送を実施する。
【００２９】
この一連のデータ転送フローの一つ前にDMAC１０４によって転送処理されたデータが解凍処理必要なデータであるか否かを判定し（ステップＳＴ５）、必要と判定されれば（Ｙｅｓ）、CPU１００はこれを解凍処理する（ステップＳＴ６）。
【００３０】
つぎにCPU１００は、DMAC１０４の動作状態を見ながら指示したデータ転送が終了したか否かを判定する（ステップＳＴ７）。終了していなければ（Ｎｏ）、データ転送が終了するまで待機する。
【００３１】
DMA転送が終了していたら（Ｙｅｓ）、必要なすべてのデータの読み出しが終了したか否かを判定し（ステップＳＴ８）、読み出し終了であれば（Ｙｅｓ）不揮発性メモリ１０２からの一連のデータ読み出しを終了する。
【００３２】
未処理の読み出しデータがある場合（Ｎｏ）、再びステップＳＴ１から処理を繰り返す。  
このフローでは、CPU１００のステップＳＴ６による一つ前のデータ転送で読み出した圧縮データの解凍処理の実行中にDMAC１０４による次のデータの読み出しが実行される。このとき、次に読み出したデータが圧縮されていた場合、この圧縮データの解凍処理は待機状態になる。読み出し完了後すぐに次のデータの解凍処理を開始しないように構成する理由の一つにはCPU１００による次の解凍処理を並行して処理するだけの処理能力が不足している場合や、処理に必要な容量がメインメモリ１０１に無い場合が考えられる。
【００３３】
図４は、従来のデータ転送にかかる処理タイミングの一例を示す図である。
【００３４】
DMAC１０４が不揮発性メモリ１０２に記憶されたＮ番目に読み出したブロックのデータは、読み出しが終了した時点でCPU１００の解凍処理に掛けられる。CPU１００によるN番目の解凍処理が始まると、休止中のDMAC１０４にN+１番目の読み出しブロックの指示をして、目的のデータを不揮発性メモリ１０２から読み出す。
【００３５】
このときCPU１００はN番目のデータの解凍処理中であり、すでにDMAC１０４によって読み出しを完了しているN+１番目のデータの解凍処理が保留されてしまう。
【００３６】
N番目のデータの解凍処理が終了すること、これを受けてN+１番目のデータの解凍処理が始まると同時に、DMAC１０４によるN+２番目のデータの読み出しが始まる。この場合も、N+２番目のデータの読み出し終了までにN+１番目のデータの解凍処理が終了していなければDMAC１０４によるN+３番目の読み出しが保留される。
【００３７】
従来の構成では、上記のような圧縮／復号が必要なデータの読み出しをする場合にDMA転送が行なえない時間が発生する。
【００３８】
図５は、本実施形態にかかるデータ構成の一例を示す図である。
【００３９】
不揮発性メモリ１０２に記憶された本実施形態にかかるデータ構成は、ヘッダ３００とこのヘッダを持つデータ３０１が一つの構成要素となっており、これらが複数連なったデータ構成となっている。
【００４０】
ヘッダ３００は、このヘッダと対になったデータ３０１のサイズを示すデータサイズ３０２と、このデータが圧縮されているか否かを示す圧縮／非圧縮区分３０３とを備えている。つまりデータ構成中のあるヘッダ３００の圧縮／非圧縮区分３０３で区分が「圧縮」となっていた場合、データサイズ３０２で示す数だけ、圧縮されたデータが連続して記憶されていることを示している。
【００４１】
図６は、本実施形態にかかる情報機器の一例を示す図である。図１に示した従来の情報機器との相違は、DMAC４００、コマンド・アドレス送信部４０１およびページ予測部４０２である。以下、それぞれについて説明する。
【００４２】
DMAC４００は、DMA(Direct Memory Access)転送を処理する制御装置である。CPU１００を介さずに各装置あるいはメモリとメモリの間で直接データ転送を行なう。さらに、不揮発性メモリ１０２に対し、記憶したデータの読み出し要求を送信する機能が付加されている。
【００４３】
コマンド・アドレス送信部４０１は、不揮発性メモリ１０２に対し、記憶データの読み出しを指示するコマンドと、データを読み出すアドレスを送信する機能を有している。送信するこれらの情報は、データ転送の前にあらかじめCPU１００から指示される。
【００４４】
ページ予測部４０２は、コマンド・アドレス送信部４０１が送信する、非圧縮のデータが記憶されたデータの読み出し処理で読み出すページ数を予測する機能を有する。
【００４５】
図７は、本実施形態にかかるデータ転送のフロー図の一例を示す図である。
【００４６】
まず、不揮発性メモリ１０２に記憶された圧縮データについて、これを読み出すことに先立って不揮発性メモリ１０２に対し読み出しコマンドと、データを読み出すアドレスを送信する（ステップＳＳ１）。
【００４７】
CPU１００は読み出しコマンドを送信後、不揮発性メモリ１０２内のステータスレジスタ２０５を参照しながら、読み出しができる状態（READY状態）になったか否かを判定する（ステップＳＳ２）。READY状態で無い場合（Ｎｏ）、準備が整うまで待機する。
【００４８】
つぎに、不揮発性メモリ１０２からのデータ読み出しをDMAC１０４にて行うため、DMAC１０４へ読み出したデータの格納先となるメインメモリ１０１上のアドレスなどの必要な情報を送信する（ステップＳＳ３）。
【００４９】
つぎに、CPU１００は、不揮発性メモリ１０２に記憶された非圧縮データについて、不揮発性メモリ１０２のデータを読み出すアドレスと、このデータの格納先となるアドレスをDMAC１０４に送信する（ステップＳＳ４）。
【００５０】
その後、CPU１００はDMAC１０４にデータ転送の開始を指示する（ステップＳＳ５）。ステップＳＳ５でデータ転送を指示されたDMAC１０４およびページ予測部４０２の処理については後述する。
【００５１】
この一連のデータ転送フローの一つ前にDMAC１０４によって転送処理されたデータが解凍処理必要なデータであるか否かを判定し（ステップＳＳ６）、必要と判定されれば（Ｙｅｓ）、CPU１００はこれを解凍処理する（ステップＳＳ７）。
【００５２】
つぎにCPU１００は、DMAC１０４の動作状態を見ながら指示したデータ転送が終了したか否かを判定する（ステップＳＳ８）。終了していなければ（Ｎｏ）、データ転送が終了するまで待機する。
【００５３】
DMA転送が終了していたら（Ｙｅｓ）、必要なすべてのデータの読み出しが終了したか否かを判定し（ステップＳＳ９）、読み出し終了であれば（Ｙｅｓ）不揮発性メモリ１０２からの一連のデータ読み出しを終了する。
【００５４】
未処理の読み出しデータがある場合（Ｎｏ）、再びステップＳＳ１から処理を繰り返す。  
図８は、本実施形態にかかる転送処理の一例を示す図である。
【００５５】
ステップＳＳ５で不揮発性メモリ１０２の読み出しを指示されたDMAC１０４は、ステップＳＳ３で送信された読み出し先アドレスに対し、不揮発性メモリ１０２から読み出したデータを転送する（ステップＳＲ１）。
【００５６】
つぎに、CPU１００が解凍処理をしている間に読み出すべき非圧縮データのページ数を、ページ予測部４０２により算出する（ステップＳＲ２）。算出したページ数の情報はDMAC１０４に送られる。
【００５７】
以下に、ページ予測部４０２が行う読み出しページ数の算出方法を説明する。
【００５８】
前述したように、圧縮データを解凍しながら並行して読み出す場合、DMAC１０４によるデータ転送が実質休止している時間が発生する。この休止期間はその時々の圧縮データ量によって動的に変化する。
【００５９】
まず、解凍処理の平均時間（ｔ）はたとえば次のように予測する。
【００６０】
ｔ  ＝  これまでに解凍処理に要した時間の合計値（Ｔ）／圧縮処理実施回数（Ｎ）
一方、不揮発性メモリ１０２から読み出す際、１ページ分の読み出しに要する時間はその構造上ほぼ一定値とみなすことができる。この時間をｓとする。
【００６１】
すると、CPU１００の解凍処理の平均時間内に読み出せるページ数（ｐ）は、
ｐ  ＝  ｔ  ／  ｓ
と表せる。
【００６２】
一度の解凍処理の間に読み出せるページ数（ｐ）は、圧縮されたデータのページと非圧縮データのページ数の合計であるから、圧縮データの読み出しページ数をｐ_ｋとしたとき非圧縮データの読み出しページ数（ｐ_ｎ）は、
ｐ_ｎ  ＝  ｐ  −  ｐ_ｋ
となる。
【００６３】
圧縮データの読み出しページ数（ｐ_ｋ）は、次に読み出す圧縮データのヘッダ３００に記載されたデータサイズ３０２を参照することで求めることが出来る。
【００６４】
つぎに、コマンド・アドレス送信部４０１は、不揮発性メモリ１０２に記憶されたデータを読み出すために、読み出しコマンドとステップＳＳ４で送信されたデータを読み出すアドレスおよび書き出し先アドレスを不揮発性メモリ１０２に対し送信する（ステップＳＲ３）。
【００６５】
そしてDMAC１０４は、不揮発性メモリ１０２の読み出し準備が整うのを待ち、ステップＳＲ２で算出したページ数分のデータを不揮発性メモリ１０２から読み出し先アドレスに転送する（ステップＳＲ４）。
【００６６】
このとき、ステップＳＲ２で算出したページ数分のデータ転送であれば、ステップＳＳ７の解凍処理が終了する時刻にステップＳＲ４のデータ転送処理も終えることができる。よって次のステップＳＳ１からのDMAC１０４によるデータ転送にも影響を与えない。
【００６７】
このように構成すると、読み出した圧縮データの解凍処理の終了を待つ間も、解凍処理に影響の無い非圧縮データのDMA転送を実行でき、DMA転送効率の向上が図れる。
【００６８】
図９は、本実施形態にかかるデータ転送の処理タイミングの一例を示す図である。
【００６９】
DMAC１０４が不揮発性メモリ１０２に記憶されたＮ番目に読み出したブロックのデータは、読み出しが終了した時点でCPU１００の解凍処理に掛けられる。CPU１００によるN番目の解凍処理が始まると、休止中のDMAC１０４にN+１番目の読み出しブロックの指示をして、目的のデータを不揮発性メモリ１０２から読み出す。
【００７０】
このときCPU１００はN番目のデータの解凍処理中であり、すでにDMAC１０４によって読み出しを完了しているN+１番目のデータの解凍処理が保留されるのは従来と同様である。
【００７１】
本実施形態では圧縮データの読み出し後、DMAC１０４のコマンド・アドレス送信部４０１があらかじめ送信しておいた読み出し情報に従って不揮発性メモリ１０２に読み出しを指示し、DMAC１０４により非圧縮データのDMA転送が処理されるように構成している。
【００７２】
図示するようにN+１番目の圧縮データ読み出しの後、M番目に読み込まれる非圧縮データをDMAC１０４が転送処理する。この非圧縮データはCPU１００による解凍処理を要しないため、DMA転送の保留期間を有効に利用することができる。次のN+２番目の圧縮データの読み出しの後に保留期間がある場合には、DMAC１０４によりM+１番目に読まれるべき非圧縮データが読み出される。
【００７３】
このように構成すると、CPUが解凍あるいは復号化処理中でもCPU処理に依存しないデータをDMA転送することで、データ転送の効率を高めることができる。
【００７４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７５】
【図１】従来の情報機器の一例を示す図である。
【図２】従来の不揮発性メモリの構成の一例を示す図である。
【図３】従来のデータ転送にかかるフロー図の一例を示す図である。
【図４】従来のデータ転送にかかる処理タイミングの一例を示す図である。
【図５】本実施形態にかかるデータ構成の一例を示す図である。
【図６】本実施形態にかかる情報機器の一例を示す図である。
【図７】本実施形態にかかるデータ転送のフロー図の一例を示す図である。
【図８】本実施形態にかかる転送処理の一例を示す図である。
【図９】本実施形態にかかるデータ転送の処理タイミングの一例を示す図である。
【符号の説明】
【００７６】
１００・・・ＣＰＵ、１０１・・・メインメモリ、１０２・・・不揮発性メモリ、１０３・・・内部バス、１０４・・・ＤＭＡＣ、１０５・・・入出力部、２００・・・データ格納部、２０１・・・ページ、２０２・・・ブロック、２０３・・・コントローラ、２０４・・・データバッファ、２０５・・・ステータスレジスタ、３００・・・ヘッダ、３０１・・・データ、３０２・・・データサイズ、３０３・・・圧縮／非圧縮区分、４００・・・ＤＭＡＣ、４０１・・・コマンド・アドレス送信部、４０２・・・ページ予測部
【図１】
2008250937.tif 000003
【図２】
2008250937.tif 000004
【図３】
2008250937.tif 000005
【図４】
2008250937.tif 000006
【図５】
2008250937.tif 000007
【図６】
2008250937.tif 000008
【図７】
2008250937.tif 000009
【図８】
2008250937.tif 000010
【図９】
2008250937.tif 000011