(57)【要約】【課題】メモリカードの特性差に依存せずに、安定したアクセス制御を行うアクセス制御装置及びアクセス制御方法の提供。【解決手段】新たに装着されたメモリカード内に使用領域情報が存在しない場合（Ｓ１１：ＮＯ）、プログラム領域が存在するメモリカードについては、プログラム領域以外の領域に対して転送試験を行い（Ｓ１４）、プログラム領域が存在しないメモリカードについては、全領域に対して転送試験を行う（Ｓ１３）。タスクの種類に応じた全転送方式による転送試験が完了したか否かを判断し（Ｓ１６）、全転送方式で転送試験が完了したと判断した場合（Ｓ１６：ＹＥＳ）、転送試験の結果を解析することにより（Ｓ１７）、各タスクの割当領域を決定し、使用領域情報をメモリカードへ書き込む（Ｓ１８）。【選択図】図４
2013242716.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶媒体の存在を検出する検出手段を備え、検出した記憶媒体へのアクセスを伴うタスクを実行する際に、実行すべきタスクの種類に応じて規定してあるアクセス方式及びアクセスの最小単位のデータサイズに従って、前記記憶媒体へのアクセスを行うアクセス制御装置において、
タスクの種類に応じて規定されているアクセス方式及びデータサイズに従って、タスクの種類毎に前記記憶媒体へのデータの転送試験を実行する実行手段と、
実行した転送試験の結果に基づいて、タスクの種類毎に、タスクを実行する際にアクセスすべき前記記憶媒体内の領域を決定する領域決定手段と
を備えることを特徴とするアクセス制御装置。
【請求項２】
前記実行手段は、前記記憶媒体が備える記憶領域を複数の領域に分割し、分割した各領域へのデータの転送速度を計測し、計測した転送速度が閾値以上であるか否かを領域毎に判定するようにしてあり、
前記領域決定手段は、計測した転送速度が閾値以上である領域の中から、アクセスすべき領域を決定するようにしてあることを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記領域決定手段が決定した領域に係る情報を前記記憶媒体に記憶させる手段を更に備えることを特徴とする請求項１又は請求項２に記載のアクセス制御装置。
【請求項４】
データを記憶する記憶媒体の存在を検出し、検出した記憶媒体へのアクセスを伴うタスクを実行する際に、実行すべきタスクの種類に応じて規定してあるアクセス方式及びアクセスの最小単位のデータサイズに従って、前記記憶媒体へのアクセスを行うアクセス制御方法において、
タスクの種類に応じて規定されているアクセス方式及びデータサイズに従って、タスクの種類毎に前記記憶媒体へのデータの転送試験を実行し、
実行した転送試験の結果に基づいて、タスクの種類毎に、タスクを実行する際にアクセスすべき前記記憶媒体内の領域を決定する
ことを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードへのアクセスを行うアクセス制御装置及びアクセス制御方法に関する。
【背景技術】
【０００２】
従来、ＳＤカードなどのメモリカードを使用する装置において、各タスクの動作を制御しているファームウェアは、各デバイスドライバを通して、様々なアクセス単位サイズ、アクセス方式を使用して、記憶領域内の任意のアクセス開始位置へアクセスを行っていた。
【０００３】
例えば、あるタスクは、６４ＫＢ単位のシーケンシャルアクセス方式を使用し、別のタスクは、４ＫＢ単位のシーケンシャルアクセス方式を使用し、更に別のタスクは、１ＫＢ〜４ＫＢの可変サイズでランダムアクセス方式を使用して、メモリカードへのアクセスを行っていた。
【０００４】
ＳＤカードなどのメモリカードは、ＮＡＮＤフラッシュメモリ、ＮＡＮＤコントローラ等を備える。ＮＡＮＤフラッシュメモリへのデータの書き込み及び読み込みは、ページと呼ばれる単位で実行される。一方、データの消去は、ブロックと呼ばれる複数ページをひとまとめにした単位で一括して実行される。
【０００５】
このため、データを書き込むときには、前もってデータをブロック単位で消去してから、データの書き込みを行う必要があり、１ページの書き換えであっても、そのページを含んだ１ブロックの内容全てを全ＮＡＮＤフラッシュメモリの外部に読出して、一時的に保持しておき、書き込み対象の１ブロック全てを消去する必要がある。ＮＡＮＤフラッシュメモリの外部の記憶領域で必要なデータの書き換えを行ってから、消去済みのブロックに改めて書き戻す動作が行われる。
【０００６】
ＮＡＮＤフラッシュメモリのプロセスシュリンクが進むことにより、一般的には、ページサイズが大きくなるため、消去ブロックのサイズが大きくなり、消去時間は長くなる。また、プロセスシュリンクが進むことにより、書換保証回数が減少する傾向にあり、書き込み時間の増加とともに、記憶デバイスとしてのアクセス性能や信頼性が低下する傾向にある。
【０００７】
そこで、ＮＡＮＤフラッシュメモリのアクセス制御を行うＮＡＮＤコントローラと外部ＲＡＭとを使用し、様々な手法を駆使して、性能の低減を最小限に止める工夫がなされている（例えば、特許文献１及び２を参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−３１７５８３号公報
【特許文献２】特開２００５−２２２２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、同じプロセスのＮＡＮＤフラッシュメモリを使用していても、ＮＡＮＤコントローラの違いや、外部ＲＡＭ容量の違い、制御手法の違いにより、メモリカードのアクセス性能は異なる。また、アクセス単位サイズの違いやアクセス方式の違い、書き込み開始位置（アドレス）によっても、メモリカードによって大きく特性が変わってしまう状況にある。
【００１０】
このため、メモリカード内のＮＡＮＤフラッシュメモリ及びＮＡＮＤコントローラの特性、並びにＮＡＮＤコントローラが用いる制御プログラムの特性により、メモリカード毎にアクセス性能に相違が生じる。また、メモリカードへアクセスする際のアクセス単位サイズ、アクセス方式、及びアクセス開始位置の違いによっても、アクセス性能に相違が生じる。
【００１１】
一般的に、メモリカードへのアクセスを行うシステムでは、実行するタスクによって固定のアクセス単位サイズ及び固定のアクセス方式を使用し、アクセス開始位置についてはメモリカード使用状況によって動的に決めることが多い。この場合、メモリカードへのアクセス速度（帯域）が影響する処理においては、メモリカードの特性の違いにより、システム側が所望する処理性能が得られないことがある。
【００１２】
例えば、ＭＦＰなどで、複数のタスクが様々なアクセス単位サイズ、アクセス方式、書き込み開始位置でメモリカードへアクセスを行う場合において、メモリカードの種類によりデータ書き込み処理が追従できなくなり、正しくメモリカードアクセスが行われなくなるという問題が発生していた。
【００１３】
本発明は、斯かる事情に鑑みてなされたものであり、メモリカードの特性差に依存せずに、安定したアクセス制御が可能なアクセス制御装置及びアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係るアクセス制御装置は、データを記憶する記憶媒体の存在を検出する検出手段を備え、検出した記憶媒体へのアクセスを伴うタスクを実行する際に、実行すべきタスクの種類に応じて規定してあるアクセス方式及びアクセスの最小単位のデータサイズに従って、前記記憶媒体へのアクセスを行うアクセス制御装置において、タスクの種類に応じて規定されているアクセス方式及びデータサイズに従って、タスクの種類毎に前記記憶媒体へのデータの転送試験を実行する実行手段と、実行した転送試験の結果に基づいて、タスクの種類毎に、タスクを実行する際にアクセスすべき前記記憶媒体内の領域を決定する領域決定手段とを備えることを特徴とする。
【００１５】
本発明に係るアクセス制御装置は、前記実行手段は、前記記憶媒体が備える記憶領域を複数の領域に分割し、分割した各領域へのデータの転送速度を計測し、計測した転送速度が閾値以上であるか否かを領域毎に判定するようにしてあり、前記領域決定手段は、計測した転送速度が閾値以上である領域の中から、アクセスすべき領域を決定するようにしてあることを特徴とする。
【００１６】
本発明に係るアクセス制御装置は、前記領域決定手段が決定した領域に係る情報を前記記憶媒体に記憶させる手段を更に備えることを特徴とする。
【００１７】
本発明に係るアクセス制御方法は、データを記憶する記憶媒体の存在を検出し、検出した記憶媒体へのアクセスを伴うタスクを実行する際に、実行すべきタスクの種類に応じて規定してあるアクセス方式及びアクセスの最小単位のデータサイズに従って、前記記憶媒体へのアクセスを行うアクセス制御方法において、タスクの種類に応じて規定されているアクセス方式及びデータサイズに従って、タスクの種類毎に前記記憶媒体へのデータの転送試験を実行し、実行した転送試験の結果に基づいて、タスクの種類毎に、タスクを実行する際にアクセスすべき前記記憶媒体内の領域を決定することを特徴とする。
【００１８】
メモリカードへのアクセスを行う機能を備えた装置、例えば、ＭＦＰのように複数の機能を有する装置では、様々な種類のタスクが、タスク毎に定められた転送単位サイズ及び転送方式に従って、メモリカードへのアクセスを行う。
近年、メモリカードの移り変わりは激しく、内部のＮＡＮＤフラッシュメモリは、毎年のようにプロセスシュリンクが進み、それに伴ってメモリカードの特性も変化している。また、メモリカードの動作を制御するＮＡＮＤコントローラは複雑な処理をしており、制御プログラムの作り込みによって、メモリカードへアクセスする際の特性が大きく変化する場合がある。
【００１９】
本発明では、メモリカードのような記憶媒体の存在を検出した場合、記憶媒体が備える記憶領域に対して転送試験を実施し、その結果に応じて、各タスクが使用する記憶領域を決定する構成としているので、個々の記憶媒体の特性に応じたアクセスが可能となる。
【００２０】
また、本発明では、転送試験が実施済みの記憶媒体には、各タスクが使用する記憶領域の情報が書き込まれる。アクセス制御装置は、記憶媒体に書き込まれている記憶領域の情報に基づき、各タスクが使用すべき記憶媒体内の記憶領域を割り当てることができる。
【発明の効果】
【００２１】
本発明によれば、様々な記憶媒体へのアクセスが可能な場合であっても、個々の記憶媒体の特性に影響されずに、安定したアクセス制御が可能となる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に係るデジタル複合機の概略構成を示すブロック図である。
【図２】ＮＡＮＤフラッシュメモリにおける記憶領域の構成例を示す模式図である。
【図３】コントローラが備えるテーブルの一例を示す模式図である。
【図４】メモリカードの装着時にコントローラが実行する処理の手順を示すフローチャートである。
【図５】転送試験結果及び使用領域情報を説明する図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態として、アクセス制御装置を備えたデジタル複合機について、図面を用いて具体的に説明を行う。
図１は、本実施の形態に係るデジタル複合機の概略構成を示すブロック図である。本実施の形態に係るデジタル複合機は、複合機全体の制御を行うコントローラ１０、メモリカード２００を着脱可能に装着する装着部２０、ファクシミリの送受信に係る処理を行うファクシミリ処理部３０、コピー処理を行うコピー処理部４０、及びプリント処理を行うプリント処理部５０を備える。
【００２４】
コントローラ１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、及びメモリカード制御部１４を備える。ＣＰＵ１１は、コントローラ１０内部のＲＯＭ１２、ＲＡＭ１３及びメモリカード制御部１４の制御を行う共に、コントローラ１０外部に接続されたファクシミリ処理部３０、コピー処理部４０、プリント処理部５０等の周辺デバイスの制御を行う。ＲＯＭ１２は、ＣＰＵ１１が実行するプログラムを記憶するための記憶デバイスであり、フラッシュメモリなどの不揮発性メモリにより構成される。ＲＡＭ１３は、ＣＰＵ１１と接続され、各種の処理を実行するときのワークエリアとして使用したり、各種データを一時的に記憶するための記憶デバイスであり、ＤＲＡＭなどの揮発性メモリにより構成される。
【００２５】
メモリカード制御部１４は、ＣＰＵ１１などからの指示に従って、メモリカード２００へのアクセス制御を行う。メモリカード制御部１４は、メモリカード２００とのインタフェース仕様に従い、メモリカード２００とコマンド及びデータのやり取りを行うことで、コントローラ１０とメモリカード２００との間でデータを送受信することができる。
【００２６】
ＣＰＵ１１は、ＲＯＭ１２に予め記憶されたプログラムをＲＡＭ１３に読み込んで実行し、ＲＯＭ１２、ＲＡＭ１３及びメモリカード制御部１４等の制御を行うことにより、コントローラ１０を本発明に係るアクセス制御装置として機能させる。
【００２７】
ファクシミリ処理部３０は、図示しない公衆回線から受信したファクシミリデータをＲＡＭ１３に一時的に記憶し、そのファクシミリデータをビットマップ変換した後、データ圧縮を行う。コントローラ１０は、ファクシミリ処理部３０により圧縮された圧縮データを、メモリカード制御部１４を介してメモリカード２００に保存する。その後、コントローラ１０は、メモリカード２００に保存された圧縮データをＲＡＭ１３に読み出す。ファクシミリ処理部３０は、ＲＡＭ１３に読み出された圧縮データを伸長し、図示しないエンジン部へ転送することによって、印字処理を行う。なお、ファクシミリデータ受信時のメモリカード２００へのデータの保存、及びメモリカード２００からのデータの読み出しは、例えば、ＣＰＵ１１がファクシミリ受信に係るタスクを実行することによって行う。
【００２８】
コピー処理部４０は、図示しないスキャナ部で読み取られた画像データをＲＡＭ１３に一時的に記憶し、その画像データに所定の画像処理を施した後、データ圧縮を行う。コントローラ１０は、コピー処理部４０により圧縮された圧縮データを、メモリカード制御部１４を介してメモリカード２００に保存する。その後、コントローラ１０は、メモリカード２００に保存された圧縮データをＲＡＭ１３に読み出す。コピー処理部４０は、ＲＡＭ１３に読み出された圧縮データを伸長し、図示しないエンジン部へ転送することによって、印字処理を行う。なお、コピー処理時のメモリカード２００へのデータの保存は、例えば、ＣＰＵ１１がコピー処理（スキャン）に係るタスクを実行することによって行い、コピー処理時のメモリカード２００からのデータの読み出しは、例えば、ＣＰＵ１１がコピー処理（印字）に係るタスクを実行することによって行う。
【００２９】
プリント処理部５０は、図示しないネットワーク上のパーソナルコンピュータから受信したプリントデータをＲＡＭ１３に一時的に記憶し、そのプリントデータをビットマップ変換した後、データ圧縮を行う。コントローラ１０は、プリント処理部５０により圧縮された圧縮データを、メモリカード制御部１４を介してメモリカード２００に保存する。その後、コントローラ１０は、メモリカード２００に保存された圧縮データをＲＡＭ１３に読み出す。プリント処理部５０は、ＲＡＭ１３に読み出された圧縮データを伸長し、図示しないエンジン部へ転送することによって、印字処理を行う。なお、プリント処理時のメモリカード２００へのデータの保存は、例えば、ＣＰＵ１１がプリント処理（ＲＩＰ）に係るタスクを実行することによって行い、プリント処理時のメモリカード２００からのデータの読み出しは、例えば、ＣＰＵ１１がプリント処理（印字）に係るタスクを実行することによって行う。
【００３０】
メモリカード２００は、ＮＡＮＤコントローラ２０１、ＮＡＮＤフラッシュメモリ２０２、及びバッファ２０３を備える。
ＮＡＮＤコントローラ２０１は、メモリカード制御部１４とのインタフェース仕様に従い、コマンドやデータのやり取りを行って、データを送受信する。また、ＮＡＮＤコントローラ２０１、ＮＡＮＤフラッシュメモリ２０２及びバッファ２０３を制御して、ＮＡＮＤフラッシュメモリ２０２へのデータの書き込み、又はＮＡＮＤフラッシュメモリ２０２からのデータの読出しに係る制御を行う。
【００３１】
ＮＡＮＤフラッシュメモリ２０２は、不揮発性記憶素子からなる半導体メモリの一種である。バッファ２０３は、ＮＡＮＤコントローラ２０１とＮＡＮＤフラッシュメモリ２０２との間で一時的にデータを格納するためのバッファメモリであり、揮発性のＲＡＭにより構成される。
【００３２】
図２は、ＮＡＮＤフラッシュメモリ２０２における記憶領域の構成例を示す模式図である。ＮＡＮＤフラッシュメモリは、一般的に、データを書き込む前に、書き込み先に記録されているデータを一旦消去して、白紙の状態に戻してからデータの書き込みを行わなければならないという特徴がある。データの書き込み及び読み込みは、複数のセクタからなるページという単位でしか行えない。図２に示した例では、アクセスの最小単位であるセクタ（５１２バイト）が４つ集まって、ページ（２０４８バイト）を構成している。また、前述したデータを書き込む際の消去は、ブロックと呼ばれる複数ページを単位として一括して行われる。図２に示した例では、１つの消去ブロックは、６４ページ（１２８Ｋバイト）から構成されている。
【００３３】
本実施の形態において、メモリカード２００は、セクタが８３８８６０８個、すなわち、２０９７１５２ページ、３２７６８ブロック（消去ブロック０〜３２７６７）を持つ、総記憶容量４ギガバイト（４ＧＢ）のメモリカードであるとする。
【００３４】
本実施の形態に係るデジタル複合機は、ファクシミリ機能、コピー機能、プリンタ機能を有しており、複数のタスクがメモリカード２００へのアクセスを行う。デジタル複合機内部にて実行される各タスクは、メモリカード２００にアクセスする際、ある一定以上の帯域性能を維持しなければ、所定の機能を果たせなくなる場合がある。例えば、ファクシミリ受信に係るタスクにおいて、受信したデータを逐次的にメモリカード２００へ保存する際、メモリカード２００への書き込み帯域が遅い場合、公衆回線を必要以上に占有する可能性があり、場合によってはタイムアウトを起こして回線が途中で切れてしまうことが起こり得る。
【００３５】
また、コピー処理に係るタスクにおいては、スキャナで読み取った画像データを圧縮した後、メモリカード２００への書き込みを行うが、スキャナの読み取り速度に相応した帯域で書き込まなければ、所定のコピー性能を出すことができない。
また、メモリカード２００に格納された画像データを読み出しながら、データを伸長した後、エンジンによる印字を行う場合、メモリカード２００からのデータの読み出し帯域が遅ければ、本来のエンジン性能を出すことができなかったり、場合によってはタイムアウトにより印字不良を引き起こす可能性がある。
【００３６】
そこで、本発明に係るアクセス制御装置として機能するコントローラ１０は、メモリカード２００に対するデータの転送試験を行い、各タスクが必要とする帯域を満たすように、各タスクが使用する記憶領域を決定するようにしている。このため、コントローラ１０は、メモリカード２００へのアクセスを伴うタスクに関して、アクセス単位サイズ、アクセス方式、必要帯域、及び必要領域を対応付けて記憶したテーブルを備える。このようなテーブルは、例えば、ＲＯＭ１２に格納される。
【００３７】
図３は、コントローラ１０が備えるテーブルの一例を示す模式図である。図３に示した例では、転送方式Ａ〜Ｆにより識別される６種類のタスクがメモリカード２００に対してアクセスを行うことを示している。
【００３８】
アクセス単位サイズは、タスクが書き込み又は読み込みを行う際の最小単位サイズを表す。このサイズは、タスクがメモリカード２００に一度にアクセスするコマンドの最小単位サイズである。例えば、あるタスクにより、ある書き込み位置から６４ＫＢの書き込みコマンドが発行されたとする。この場合、メモリカード２００のＮＡＮＤコントローラ２０１は、書き込み位置より６４ＫＢ分のセクタが含まれるブロック内のデータを全てバッファ２０３に一時退避させ、退避元のブロックを消去する。次に、ＮＡＮＤコントローラ２０１は、退避させたデータに対して６４ＫＢ分書き換えた後、ページ単位でＮＡＮＤフラッシュメモリ２０２に対して書き戻す処理を繰り返す。
【００３９】
アクセス方式は、シーケンシャル方式又はランダム方式である。メモリカード２００に記憶するデータは、一般的に、ファイルシステムと呼ばれるデータ管理方式を取り、各データをファイルとして管理している。
ここで、シーケンシャル方式とは、ファイルが複数ページ又は複数ブロックに跨がって格納される場合に使用される。メモリカード２００がＳＤカードである場合、書き込みコマンドとしてＣＭＤ２５（WRITE MULTIPLE BLOCK）が使用される。
また、ランダム方式とは、ある特定の位置に格納されたデータに直接アクセスする場合に使用される。メモリカード２００がＳＤカードである場合、書き込みコマンドとしてＣＭＤ２４（WRITE SINGLE BLOCK）が使用される。
【００４０】
必要帯域とは、各タスクが必要としている帯域であり、例えば、１秒間当たりに書き込み又は読み込みできるデータサイズで表される。また、必要領域とは、各タスクが必要としているメモリカード２００内の領域サイズを表す。
【００４１】
次に、各タスクが使用するメモリカード２００の領域を決定する処理の手順について説明する。図４は、メモリカード２００の装着時にコントローラ１０が実行する処理の手順を示すフローチャートである。この処理は、コントローラ１０のＣＰＵ１１が行う処理を記したプログラムの１つのサブルーチンにより実行される。
【００４２】
ＣＰＵ１１は、装着部２０にメモリカード２００が装着されたことを検出した場合、装着されたメモリカード２００内に、各タスクが使用する領域の情報（使用領域情報）が格納されているか否かを判断する（ステップＳ１１）。本実施の形態では、メモリカード２００が装着部２０に装着されたことを示す信号をコントローラ１０が取得することによって、メモリカード２００の存在を検出する。ステップＳ１１の判断は、過去に転送試験が実施され、各タスクが使用する領域が決定されたメモリカード２００に対して、再度転送試験を実施することを回避するために行う。
メモリカード２００内に使用領域情報が存在すると判断した場合（Ｓ１１：ＹＥＳ）、ＣＰＵ１１は、後述するステップＳ１９の処理を実行し、既に記憶されている使用領域情報を参照してメモリカード２００へのアクセス制御を行う。
【００４３】
メモリカード２００内に使用領域情報が存在しないと判断した場合（Ｓ１１：ＮＯ）、ＣＰＵ１１は、メモリカード２００内にプログラム領域が存在するか否かを判断する（ステップＳ１２）。メモリカード２００には、ＮＡＮＤコントローラ２０１に実行させるプログラムが書き込まれている場合がある。この場合、プログラム領域の書き込み位置及びサイズを示す情報がプログラムと共に書き込まれるため、ＣＰＵ１１は、この情報を参照することにより、プログラム領域が存在するか否かを判断することができる。
【００４４】
メモリカード２００内にプログラム領域が存在しないと判断した場合（Ｓ１２：ＮＯ）、ＣＰＵ１１は、メモリカード２００内の全領域に対してデータの転送試験を実行する（ステップＳ１３）。また、メモリカード２００内のプログラム領域が存在すると判断した場合（Ｓ１２：ＹＥＳ）、ＣＰＵ１１は、メモリカード２００内のプログラム領域以外の領域に対してデータの転送試験を行う（ステップＳ１４）。
【００４５】
このとき、ＣＰＵ１１は、メモリカード２００へのアクセスを伴うタスク毎にデータの転送試験を行う。例えば、図３のテーブルに示す転送方式「Ａ」のタスクは、アクセス単位サイズが６４ＫＢ、アクセス方式がシーケンシャル方式のタスクであるので、ＣＰＵ１１は、６４ＫＢのシーケンシャル方式でメモリカード２００へのアクセスを行い、アクセスに要した時間を計測することにより、アクセス帯域を求めることで転送試験を行う。
また、図３に示すように、本実施の形態では、各タスクの必要領域の最小単位が２５６ＭＢであるため、ＣＰＵ１１は、メモリカード２００の４ＧＢの記憶領域を、２５６ＭＢ毎に１６個の領域（領域＃１〜領域＃１６とする）に分割し、プログラム領域（領域＃１）以外の全ての領域（領域＃２〜領域＃１６）に対して、データの転送試験を実行する。
【００４６】
ＣＰＵ１１は、試験対象の各領域について求めたアクセス帯域を平均し、その平均値を転送試験の結果としてＲＡＭ１３に保存する（ステップＳ１５）。
次いで、ＣＰＵ１１は、全ての転送方式で転送試験を実行したか否かを判断する（ステップＳ１６）。転送試験が未実行の転送方式が存在する場合（Ｓ１６：ＮＯ）、ＣＰＵ１１は、処理をステップＳ１２へ戻し、全ての転送方式で転送試験が実行されるまでステップＳ１２〜Ｓ１５の処理を繰り返す。
【００４７】
ＣＰＵ１１は、各転送方式（本実施の形態では、転送方式「Ａ」〜「Ｆ」）による転送試験を順次行い、全ての転送方式で転送試験が完了した場合（Ｓ１６：ＹＥＳ）、転送試験の結果の解析を行う（ステップＳ１７）。
次いで、ＣＰＵ１１は、図３に示すテーブルを参照し、各タスクの必要領域に従って、各タスクの必要帯域を満足している領域の中からどの領域を割り当てるかを決定し、メモリカード２００内の予め定めた領域に各タスクが使用する領域の情報（使用領域情報）を格納する（ステップＳ１８）。
【００４８】
ＣＰＵ１１は、メモリカード２００内の使用領域情報を参照し、各タスクが使用する領域をＲＡＭ１３内のワーク領域に設定することによって、各タスクにメモリカード内の使用領域を割り当てる（ステップＳ１９）。実行するタスクがメモリカード２００へのアクセスを伴う場合、ＣＰＵ１１は、割り当てた使用領域をタスクが使用するように、メモリカード２００へのアクセスを制御する。
【００４９】
図５は、転送試験結果及び使用領域情報を説明する図である。本実施の形態では、図３に示すように、各タスクの必要領域の最小単位が２５６ＭＢであるため、メモリカードの総記憶容量である４ＧＢを２５６ＭＢ単位で領域＃１〜領域＃１６までの１６個の領域に分割し、夫々の領域において転送試験を実行すればよい。ここで、メモリカード２００の記憶領域に上述したプログラム領域が設定されている場合、この領域については転送試験から除外すればよい。図５に示す例では、セクタ０より２５６ＭＢ分の領域＃１がプログラム領域であるため、領域＃１を除く、領域＃２〜領域＃１６（すなわち、セクタ５２４２８８より（４ＧＢ−２５６ＭＢ）分の領域）が、転送試験の対象となる。
【００５０】
領域＃２に対して、転送方式「Ａ」で転送試験を行った結果、転送方式「Ａ」のタスク（本実施の形態では、コピー処理におけるスキャンに係るタスク）が必要とする必要帯域２．５ＭＢ／ｓ以上を満たす場合、転送結果として「○」を記録し、満たさない場合、転送結果として「×」を記録する。次いで、領域＃３、領域＃４、…、領域＃１６に対して、転送方式「Ａ」の転送試験を順次行い、転送結果を記録する。図５に示した例では、領域＃２〜領域＃４までは転送方式「Ａ」のタスクが必要とする必要帯域を満たし、領域＃５〜領域＃１６までは必要帯域を満たさなかったことを示している。転送方式「Ｂ」〜「Ｆ」の各タスクについても、同様に、領域＃２〜領域＃１６に対する転送試験を行い、各領域に対する転送試験の結果を記録する。
【００５１】
ＣＰＵ１１は、各タスクについて実行した転送試験の結果に基づき、各タスクが使用する領域を決定する。例えば、ＣＰＵ１１は、必要帯域を満たす領域が少なかったタスクから順次使用領域を決定することができる。図５に示した例では、必要帯域を満たす領域が最も少ないタスクは、転送方式「Ａ」のタスクであり、転送方式「Ａ」の必要領域は２５６ＭＢであるので、転送方式「Ａ」のタスクが使用する領域を例えば領域＃２に決定する。
【００５２】
次に必要帯域を満たす領域が少ないタスクは、転送方式「Ｄ」のタスクであり、転送方式「Ｄ」の必要領域は１ＧＢであるので、転送方式「Ｄ」のタスクが使用する領域を例えば領域＃３〜領域＃６に決定する。同様に、他のタスクについても使用領域を決定することにより、例えば、図５に示すように、各タスクに対する使用領域が決定される。
なお、図５に示した例では、領域＃８を各タスクが使用しない予備の領域として設定している。
【００５３】
本実施の形態では、プログラム領域以外の全領域に対して転送試験を実施したが、必ずしも全セクタに対して転送試験する必要はないかもしれない。例えば、上述した実施の形態の場合、各２５６ＭＢの領域の中の先頭の数ＭＢにだけ転送試験を実施し、平均帯域を求めて、その領域全体の帯域としてもほぼ問題とならない。また、より正確に帯域を求めたい場合は、２５６ＭＢ領域の先頭数ＭＢ、中間の数ＭＢ、及び最後の数ＭＢに対して転送試験を実施し、それぞれで得られる帯域を平均することにより、全セクタに対して転送試験して得られる平均帯域により近づくと考えられる。
【００５４】
メモリカード２００からの読み込み性能は、アクセス単位サイズが決まれば、アクセス位置に関係なくほぼ一定となる場合が多いため、書き込み性能に絞って、より詳細に転送試験を行う構成としてもよい。例えば、上記の構成に追加して、アクセスを開始する最初の位置（アドレス・バウンダリ）に着目した転送試験を実施し、アクセスするデータサイズに応じてアドレス調整（アラインメントという）を行うことにより、より最適な書き込みアクセスが可能になる。
【００５５】
以上のように、本発明に係るアクセス制御装置は、コントローラ１０側の処理を最適化することにより、メモリカード２００に対する高速アクセスを実現することができる。このようなコントローラ１０は、メモリカード２００を記録媒体として使用するデジタル複合機（ＭＦＰ）、デジタル家電、デジタルカメラ、携帯電話端末、及び携帯タブレット端末などに利用できる。メモリカード２００への転送帯域がその装置の動作性能に直結する場合は、特に好適に機能する。
【符号の説明】
【００５６】
１０  コントローラ
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  メモリカード制御部
２０  装着部
３０  ファクシミリ処理部
４０  コピー処理部
５０  プリント処理部
２００  メモリカード
２０１  ＮＡＮＤコントローラ
２０２  ＮＡＮＤフラッシュメモリ
２０３  バッファ
【図１】
2013242716.tif 000003
【図２】
2013242716.tif 000004
【図３】
2013242716.tif 000005
【図４】
2013242716.tif 000006
【図５】
2013242716.tif 000007