(57)【要約】  ＤＭＡコントローラ（４０）は、読み出しを開始する読出開始アドレスを格納する読出開始アドレスレジスタ（４０２）と、一の読み出し処理で読み出すデータのサイズを格納する読出データサイズレジスタ（４０３）と、一の読み出し処理の終了後、読出開始アドレスを更新するためのオフセット値を格納するオフセット値レジスタ（４０４）と、一の読み出し処理の繰り返し回数の上限値を格納する繰り返し上限値レジスタ（４０５）と、一の読み出し処理の繰り返し回数を格納する繰り返しカウンタレジスタ（４０６）と、を備える。また、ＤＭＡコントローラ（４０）の制御部（４０１）は、繰り返しカウンタレジスタ（４０６）の格納値が、繰り返し上限値レジスタ（４０５）の格納値に達した場合に、ＤＭＡコントローラ（４０）の処理が終了した旨を示す割込信号を出力する。
2012039143.tif 000002
【特許請求の範囲】
【請求項１】
読み書き可能な記憶媒体からデータを読み出すＤＭＡコントローラであって、
読み出しを開始する読出開始アドレスを格納する読出開始アドレスレジスタと、
一の読み出し処理で読み出すデータのサイズを格納する読出データサイズレジスタと、
前記一の読み出し処理の終了後、前記読出開始アドレスを更新するためのオフセット値を格納するオフセット値レジスタと、
前記一の読み出し処理の繰り返し回数の上限値を格納する繰り返し上限値レジスタと、
前記一の読み出し処理の繰り返し回数を格納する繰り返しカウンタレジスタと、
該繰り返しカウンタレジスタの格納値が、前記繰り返し上限値レジスタの格納値に達した場合に、当該ＤＭＡコントローラの処理が終了した旨を示す所定の割込信号を出力する終了通知手段と、を備えるＤＭＡコントローラ。
【請求項２】
前記終了通知手段は、さらに、前記一の読み出し処理で読み出したデータが、予め指定されたデータと一致するか否かを判定し、一致する場合には、前記割込信号を出力する請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記記憶媒体がフラッシュメモリである請求項１又は２に記載のＤＭＡコントローラ。
【請求項４】
ＣＰＵと、第１のＤＭＡコントローラと、第２のＤＭＡコントローラと、外部メモリと、外部メモリインタフェースと、第１の内部メモリと、第２の内部メモリと、から構成されるデータ読出装置であって、
前記ＣＰＵは、前記第１の内部メモリに、読み出しを開始する読出開始アドレスと、一の読み出し処理で読み出すデータのサイズと、からなるコマンドパラメータの組を所定数格納し、
前記第１のＤＭＡコントローラは、前記第１の内部メモリから前記コマンドパラメータの組を順次取得して、前記外部メモリインタフェースに、当該コマンドパラメータの組に基づく一の読み出し処理を実行させ、
前記外部メモリインタフェースは、前記一の読み出し処理により前記外部メモリから読み出したデータを前記第２のＤＭＡコントローラに転送し、
前記第２のＤＭＡコントローラは、前記外部メモリインタフェースから転送されたデータを前記第２の内部メモリに順次書き込むと共に、前記転送されたデータが、予めＣＰＵによって指定されたデータと一致するか否かを判定し、一致する場合には、前記第１のＤＭＡコントローラ及び当該第２のＤＭＡコントローラの処理が終了した旨を示す所定の割込信号を出力し、
前記ＣＰＵは、前記割込信号が出力されると、前記第２の内部メモリにアクセスして、前記指定したデータを検索するデータ読出装置。
【請求項５】
前記第１のＤＭＡコントローラは、取得すべき前記コマンドパラメータの組が前記第１の内部メモリに存在しない場合、前記割込信号を出力する請求項４に記載のデータ読出装置。
【請求項６】
前記外部メモリは、シリアルフラッシュメモリである請求項４又は５に記載のデータ読出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（Direct Memory Access）コントローラを利用した、読み書き可能な記憶媒体からのデータ読み出し技術に関する。
【背景技術】
【０００２】
例えば、フラッシュメモリを記憶媒体として利用する機器のＣＰＵにおいては、適宜、当該フラッシュメモリのメモリ領域における所望のデータの格納場所（物理アドレス）を特定する処理が必要となる。しかし、メモリ領域が大きい場合等では、データの検索の際のＣＰＵの負担が増大してしまう。そこで、特許文献１等で開示されるようなＤＭＡコントローラにデータの読み出しを実行させ、ＣＰＵの負荷の軽減を図る方法も知られている。【０００３】
この場合、ＣＰＵは、ＤＭＡコントローラが備える読出開始アドレスレジスタと、読出データサイズレジスタに、それぞれ、読み出しを開始するアドレス（読出開始アドレス）と、読み出しするデータサイズ（例えば、バイト単位）をセットする。ＤＭＡコントローラは、指定された読出開始アドレスから指定されたバイト数のデータを読み出すと、割込信号を出力し、データの読み出し動作を終了する。【０００４】
上記の割込信号が出力されると、ＣＰＵは、読み出されたデータが所望のデータであるか否かをチェックする。そして、所望のデータでない場合には、ＣＰＵは、読出開始アドレスレジスタの値を更新し、再度、ＤＭＡコントローラを起動して、データの読み出し動作を行わせる。以後、所望のデータが見つかるまで、ＣＰＵは、かかる制御を繰り返す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１００２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の場合、所望のデータが見つかるまで、ＣＰＵとＤＭＡコントローラのやり取りが頻繁に発生すると、ＣＰＵの負荷が増大し、当該機器全体の性能が低下するおそれもある。これに対し、読出データサイズレジスタに予め大きな値をセットすれば、ＣＰＵのＤＭＡコントローラに対する指令頻度、即ち、介入回数を低減させることができるが、所望のデータ以外のデータが大量に読み出されることにもなり、効率がよくない。【０００７】
本発明は、ＣＰＵの負荷を増大させることなく、読み書き可能な記憶媒体からのデータの読み出しを効率よく行えるようにするＤＭＡコントローラ等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の第１の観点に係るＤＭＡコントローラは、
読み書き可能な記憶媒体からデータを読み出すＤＭＡコントローラであって、
読み出しを開始する読出開始アドレスを格納する読出開始アドレスレジスタと、
一の読み出し処理で読み出すデータのサイズを格納する読出データサイズレジスタと、
前記一の読み出し処理の終了後、前記読出開始アドレスを更新するためのオフセット値を格納するオフセット値レジスタと、
前記一の読み出し処理の繰り返し回数の上限値を格納する繰り返し上限値レジスタと、
前記一の読み出し処理の繰り返し回数を格納する繰り返しカウンタレジスタと、
該繰り返しカウンタレジスタの格納値が、前記繰り返し上限値レジスタの格納値に達した場合に、当該ＤＭＡコントローラの処理が終了した旨を示す所定の割込信号を出力する終了通知手段と、を備える。【０００９】
本発明の第２の観点に係るデータ読出装置は、
ＣＰＵと、第１のＤＭＡコントローラと、第２のＤＭＡコントローラと、外部メモリと、外部メモリインタフェースと、第１の内部メモリと、第２の内部メモリと、から構成されるデータ読出装置であって、
前記ＣＰＵは、前記第１の内部メモリに、読み出しを開始する読出開始アドレスと、一の読み出し処理で読み出すデータのサイズと、からなるコマンドパラメータの組を所定数格納し、
前記第１のＤＭＡコントローラは、前記第１の内部メモリから前記コマンドパラメータの組を順次取得して、前記外部メモリインタフェースに、当該コマンドパラメータの組に基づく一の読み出し処理を実行させ、
前記外部メモリインタフェースは、前記一の読み出し処理により前記外部メモリから読み出したデータを前記第２のＤＭＡコントローラに転送し、
前記第２のＤＭＡコントローラは、前記外部メモリインタフェースから転送されたデータを前記第２の内部メモリに順次書き込むと共に、前記転送されたデータが、予めＣＰＵによって指定されたデータと一致するか否かを判定し、一致する場合には、前記第１のＤＭＡコントローラ及び当該第２のＤＭＡコントローラの処理が終了した旨を示す所定の割込信号を出力し、
前記ＣＰＵは、前記割込信号が出力されると、前記第２の内部メモリにアクセスして、前記指定したデータを検索する。
【発明の効果】
【００１０】
本発明によれば、一の読み出し処理が終了する度に読出開始アドレスを自動的に更新するため、データ読み出しの効率化が図れる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態１に係るＤＭＡコントローラを備えるデータ読出装置の構成を示すブロック図である。
【図２】実施形態１に係るＤＭＡコントローラの構成を示すブロック図である。
【図３】実施形態１のデータ読出処理の手順を示すフローチャートである。
【図４】実施形態１において、読出開始アドレスの更新について説明するための図である。
【図５】本発明の実施形態２に係るＤＭＡコントローラの構成を示すブロック図である。
【図６】実施形態２のデータ読出処理の手順を示すフローチャートである。
【図７】本発明の実施形態３に係るデータ読出装置の構成を示すブロック図である。
【図８】実施形態３において、第１の内部メモリに格納されるコマンドパラメータの組について説明するための図である。
【図９】実施形態３において、外部メモリインタフェースによるデータの読み出し態様について説明するための図である。
【図１０】実施形態３において、第２の内部メモリについて説明するための図である。
【図１１】実施形態３のデータ読出処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１３】
（実施形態１）
図１は、本発明の実施形態１に係るＤＭＡコントローラを備えるデータ読出装置の構成を示すブロック図である。このデータ読出装置は、例えば、太陽光発電システムにおける複数のパワーコンディショナと接続し、各パワーコンディショナの運転状態に関するデータを収集する機器（いわゆる、データロガー）等に搭載される。
【００１４】
図１に示すように、このデータ読出装置は、ＣＰＵ（Central Processing Unit）１０と、ＲＯＭ（Read Only Memory）２０と、ＲＡＭ（Random Access Memory）３０と、ＤＭＡ（Direct Memory Access）コントローラ４０と、記憶媒体５０と、から構成され、各構成部は、バス６０を介して相互に接続されている。
【００１５】
ＣＰＵ１０は、ＲＯＭ２０に記憶されている各種のプログラムやデータ等に基づいて、当該データ読出装置を含む当該機器全体の動作を制御する。ＲＡＭ３０は、記憶媒体５０に転送するためのデータや、読み出したデータ等が一時的に保存される作業用メモリ等として使用される。
【００１６】
ＤＭＡコントローラ４０は、ＣＰＵ１０の指令に従って、記憶媒体５０にアクセスし、データの読み出しを行い、読み出したデータをＲＡＭ３０に保存する。記憶媒体５０は、例えば、読み書き可能な不揮発性の記憶媒体であり、本実施形態では、フラッシュメモリである。
【００１７】
詳細は後述するが、本実施形態のデータ読出装置では、ＣＰＵ１０は、記憶媒体５０に格納されている所望のデータに対する処理（読み出しや削除等）に先んじて、かかるデータの格納場所（換言すると、物理アドレス）を特定するため、ＤＭＡコントローラ４０にデータ読出処理を実行させる。
【００１８】
図２は、ＤＭＡコントローラ４０の構成を示すブロック図である。ＤＭＡコントローラ４０は、データ読出処理を実行する制御部４０１（終了通知手段）と、このデータ読出処理で使用する情報を記憶する複数のレジスタ（読出開始アドレスレジスタ４０２、読出データサイズレジスタ４０３、オフセット値レジスタ４０４、繰り返し上限値レジスタ４０５、繰り返しカウンタレジスタ４０６）と、を備える。
【００１９】
ＣＰＵ１０は、所望のデータ（例えば、セクタ番号）の格納場所の特定が必要になると、読出開始アドレスレジスタ４０２に、読み出しを開始させるアドレス（読出開始アドレス）を格納する。また、ＣＰＵ１０は、一の読出処理で読み出すデータのサイズを示す読出データサイズ（例えば、バイト単位）を読出データサイズレジスタ４０３に格納し、一の読出処理が終了する度に読出開始アドレスを更新するためのオフセット値をオフセット値レジスタ４０４に格納し、一の読出処理を繰り返す回数の上限値を、繰り返し上限値レジスタ４０５に格納する。また、ＣＰＵ１０は、繰り返しカウンタレジスタ４０６を０クリアする。繰り返しカウンタレジスタ４０６には、一の読出処理が繰り返される度にインクリメントされるカウンタ値が格納される。
【００２０】
そして、ＣＰＵ１０は、所定の制御信号をＤＭＡコントローラ４０に出力し、これを契機にして、ＤＭＡコントローラ４０は、データ読出処理を開始する。以降、一の読出処理の繰り返し回数が、上記の上限値に達するまで、ＤＭＡコントローラ４０は、ＣＰＵ１０からの制御を介することなく、データ読出処理を続行する。
【００２１】
図３は、ＤＭＡコントローラ４０が実行する上記のデータ読出処理の手順を示すフローチャートである。上述したように、このデータ読出処理は、ＣＰＵ１０による所定の制御信号の出力を契機にして開始される。
【００２２】
先ず、ＤＭＡコントローラ４０の制御部４０１は、読出開始アドレスレジスタ４０２から読出開始アドレスを取得し（ステップＳ１０１）、読出開始データサイズレジスタ４０３から読出データサイズを取得する（ステップＳ１０２）。
【００２３】
そして、制御部４０１は、この読出開始アドレスが示す記憶媒体５０のメモリ領域から読出データサイズ分のデータを読み出し（ステップＳ１０３）、読み出したデータをＲＡＭ３０に保存する。制御部４０１は、この一の読出処理が終了すると、繰り返しカウンタレジスタ４０６のカウンタ値をインクリメントする（ステップＳ１０４）。
【００２４】
そして、制御部４０１は、繰り返しカウンタレジスタ４０６のカウンタ値（即ち、繰り返し回数）が、繰り返し上限値レジスタ４０５の値（即ち、繰り返し回数の上限値）に達したか否かを判定する（ステップＳ１０５）。その結果、上限値に達していない場合（ステップＳ１０５；ＮＯ）、制御部４０１は、オフセット値レジスタ４０４からオフセット値を取得し（ステップＳ１０６）、取得したオフセット値を加算することで、読出開始アドレスレジスタ４０２の読出開始アドレスを更新する（ステップＳ１０７）。そして、制御部４０１は、ステップＳ１０１の処理を再度実行する。
【００２５】
一方、一の読出処理の繰り返し回数が、予め決められた上限値に達した場合（ステップＳ１０５；ＹＥＳ）、制御部４０１は、所定の割込信号を出力し（ステップＳ１０８）、データ読出処理を終了する。
【００２６】
上記の割込信号が出力されると、ＣＰＵ１０は、ＲＡＭ３０にアクセスして、所望のデータの有無を検索し、所望のデータが存在する場合には、当該時点のＤＭＡコントローラ４０の読出開始アドレスレジスタ４０２の読出開始アドレス、繰り返しカウンタレジスタ４０６のカウンタ値などにより、当該データの格納場所（物理アドレス）を特定する。
【００２７】
一方、ＲＡＭ３０に所望のデータが存在しない場合には、ＣＰＵ１０は、読出開始アドレスレジスタ４０２等に新たな読出開始アドレスを格納し、再度、ＤＭＡコントローラ４０にデータ読出処理を実行させる。
【００２８】
例えば、図４に示すように、ＣＰＵ１０の所望するデータ（例えば、セクタ番号）が、セクタ（例えば、２６０バイト）毎の所定位置（例えば、先頭から４バイト）に存在する場合、セクタの全てのデータを読み出す方式では、効率がよくない。しかし、本実施形態のＤＭＡコントローラ４０では、上記の場合、読出データサイズレジスタ４０３に４（バイト）をセットし、オフセット値レジスタ４０４に２６０（バイト）をセットすることで、４バイト分の一の読出処理が終了する度に、読出開始アドレスを２６０バイト分スキップさせることができる。したがって、ＣＰＵ１０が所望するデータを、より効率的に読み出しすることが可能になる。
【００２９】
なお、記憶媒体５０から１バイト読み出す度に、読出開始アドレスレジスタ４０２の読出開始アドレスを１バイトずつ進めるようにしてもよい。この場合、オフセット値レジスタ４０４には、セクタのサイズ（例えば、２６０バイト）から読出データサイズ（例えば、４バイト）を差し引いた値（例えば、２５６バイト）を格納しておけばよい。
【００３０】
（実施形態２）
続いて、本発明の実施形態２に係るＤＭＡコントローラについて説明する。実施形態２のＤＭＡコントローラについても、実施形態１と同様のデータ読出装置に含まれるものとする。なお、実施形態１のデータ読出装置と共通する部分については、同一の符号を付して説明する。図５は、本実施形態のＤＭＡコントローラ４０の構成を示すブロック図である。図５に示すように、本実施形態のＤＭＡコントローラ４０には、検索データレジスタ４０７が追加されている。この検索データレジスタ４０７には、ＣＰＵ１０が所望するデータ（例えば、セクタ番号）が格納される。
【００３１】
図６のフローチャートを参照して、本実施形態のＤＭＡコントローラ４０が実行するデータ読出処理の手順を説明する。このデータ読出処理も、実施形態１と同様、ＣＰＵ１０による所定の制御信号の出力を契機にして開始される。
【００３２】
先ず、ＤＭＡコントローラ４０の制御部４０１は、読出開始アドレスレジスタ４０２から読出開始アドレスを取得し（ステップＳ２０１）、読出開始データサイズレジスタ４０３から読出データサイズを取得する（ステップＳ２０２）。
【００３３】
そして、制御部４０１は、この読出開始アドレスが示す記憶媒体５０のメモリ領域から読出データサイズ分のデータを読み出し（ステップＳ２０３）、読み出したデータをＲＡＭ３０に保存する。次に、制御部４０１は、この読み出したデータが、検索データレジスタ４０７に格納されているデータと一致するか否かを判定する（ステップＳ２０４）。
【００３４】
その結果、両者が一致する場合（ステップＳ２０４；ＹＥＳ）、制御部４０１は、所定の割込信号を出力し（ステップＳ２０５）、データ読出処理を終了する。
【００３５】
一方、両者が一致しない場合（ステップＳ２０４；ＮＯ）、制御部４０１は、繰り返しカウンタレジスタ４０６のカウンタ値をインクリメントする（ステップＳ２０６）。そして、制御部４０１は、繰り返しカウンタレジスタ４０６のカウンタ値（即ち、繰り返し回数）が、繰り返し上限値レジスタ４０５の値（即ち、繰り返し回数の上限値）に達したか否かを判定する（ステップＳ２０７）。
【００３６】
その結果、上限値に達していない場合（ステップＳ２０７；ＮＯ）、制御部４０１は、オフセット値レジスタ４０４からオフセット値を取得し（ステップＳ２０８）、取得したオフセット値を加算することで、読出開始アドレスレジスタ４０２の読出開始アドレスを更新する（ステップＳ２０９）。そして、制御部４０１は、ステップＳ２０１の処理を再度実行する。
【００３７】
一方、一の読出処理の繰り返し回数が、予め決められた上限値に達した場合（ステップＳ２０７；ＹＥＳ）、制御部４０１は、所定の割込信号を出力し（ステップＳ２０５）、データ読出処理を終了する。
【００３８】
以上のように、本実施形態のＤＭＡコントローラ４０では、ＣＰＵ１０が所望するデータ（例えば、セクタ番号）が読み出されると、割込信号を出力してデータ読出処理を即座に終了する。したがって、処理の効率化、高速化がより一層図れる。
【００３９】
（実施形態３）
続いて、本発明のデータ読出装置の実施形態について説明する。図７は、本実施形態のデータ読出装置の構成を示すブロック図である。図７に示すように、このデータ読出装置は、ＣＰＵ１０と、ＲＯＭ２０と、第１の内部メモリ３１と、第２の内部メモリ３２と、第１のＤＭＡコントローラ４１と、第２のＤＭＡコントローラ４２と、外部メモリインタフェース７０と、外部メモリ５１と、から構成される。
【００４０】
ＣＰＵ１０と、ＲＯＭ２０と、第１の内部メモリ３１と、第２の内部メモリ３２と、第１のＤＭＡコントローラ４１と、第２のＤＭＡコントローラ４２と、外部メモリインタフェース７０とは、内部バス６１を介して相互に接続されている。また、外部メモリインタフェース７０と外部メモリ５１とは、シリアルバスである外部バス６２を介して接続されている。本実施形態では、外部メモリ５１として、シリアルフラッシュメモリを採用する。
【００４１】
ＣＰＵ１０は、ＲＯＭ２０に記憶されている各種のプログラムやデータ等に基づいて、当該データ読出装置を含む当該機器全体の動作を制御する。第１の内部メモリ３１は、例えば、ＳＲＡＭ（Static Random Access Memory）等の読み書き可能な揮発性のメモリである。第１の内部メモリ３１には、詳細は後述するが、ＣＰＵ１０によって、図８に示すように、読出アドレスと、読出データサイズからなるコマンドパラメータの組が複数格納される。
【００４２】
第２の内部メモリ３２は、例えば、ＳＲＡＭ等の読み書き可能な揮発性のメモリであり、詳細は後述するが、外部メモリ５１から読み出され、第２のＤＭＡコントローラ４２に供給されたデータの保存用のメモリとして使用される。
【００４３】
第１のＤＭＡコントローラ４１及び第２のＤＭＡコントローラ４２は、実施形態１のＤＭＡコントローラ４０と同様、ＣＰＵ１０が所望のデータ（例えば、セクタ番号）の格納場所を特定できるようにするため、外部メモリ５１からのデータの読み出しをＣＰＵ１０が介入することなく実行する機能を有する。
【００４４】
第１のＤＭＡコントローラ４１は、ＣＰＵ１０からの所定の制御信号により起動し、第１の内部メモリ３１から、上述したコマンドパラメータの組を順次取得し、かかるコマンドパラメータの組に基づいて、外部メモリインタフェース７０にデータの読み出しを実行させる。例えば、図８に示すように、第１の内部メモリ３１に格納された先頭のコマンドパラメータの組が、読出開始アドレス“０ｘ００００００”、読出データサイズ“２（バイト）”で構成されている場合、外部メモリインタフェース７０は、図９に示すように、データ“００５２ｈ”を読み出す。外部メモリインタフェース７０は、読み出したデータを第２のＤＭＡコントローラ４２に供給する。
【００４５】
第２のＤＭＡコントローラ４２は、ＣＰＵ１０からの所定の制御信号により、第１のＤＭＡコントローラ４１と同期して起動する。第２のＤＭＡコントローラ４２は、外部メモリインタフェース７０から供給されたデータ（読出データ）を第２の内部メモリ３２に順次保存する（図１０参照）。第２のＤＭＡコントローラ４２には、図示しない検索データレジスタが備えられており、この検索データレジスタには、ＣＰＵ１０が格納場所を特定したいデータ（例えば、セクタ番号）が、ＣＰＵ１０によって、予め第２のＤＭＡコントローラ４２の起動前に格納されている。
【００４６】
第２のＤＭＡコントローラ４２は、外部メモリインタフェース７０から受け取った読出データが、上記の検索データレジスタに格納されているデータと一致するか否かを判定する。その結果、両者が一致する場合には、第２のＤＭＡコントローラ４２は、所定の割込信号を出力する。この割込信号の出力に同期して、第１のＤＭＡコントローラ４１及び第２のＤＭＡコントローラ４２の動作が停止する。
【００４７】
なお、検索データレジスタに格納されているデータと一致する読出データが見つからずに、外部メモリ５１からのデータの読み出しが進行すると、やがて、第１のＤＭＡコントローラ４１によって、第１の内部メモリ３１から、全てのコマンドパラメータの組が取得されることになる。その場合、第１のＤＭＡコントローラ４１は、上記の割込信号を出力する。
【００４８】
第２のＤＭＡコントローラ４２又は第１のＤＭＡコントローラ４１から、上記の割込信号が出力されると、ＣＰＵ１０は、第２の内部メモリ３２にアクセスして、保存されてる読出データの中から、所望のデータの有無を検索し、所望のデータが存在する場合には、第１の内部メモリ３１との対応関係などから、当該データの格納場所（物理アドレス）を特定する。
【００４９】
一方、第２の内部メモリ３２に所望のデータが存在しない場合には、ＣＰＵ１０は、第１の内部メモリ３１を０クリア後、新たなコマンドパラメータの組を複数格納し、また、第２の内部メモリ３２を０クリアする。そして、ＣＰＵ１０は、再度、所定の制御信号により、第１のＤＭＡコントローラ４１及び第２のＤＭＡコントローラ４２を起動させて、データの読み出し処理を実行させる。
【００５０】
図１１は、第１のＤＭＡコントローラ４１、第２のＤＭＡコントローラ４２及び外部メモリインタフェース７０が協調することで実行される本実施形態のデータ読出処理の手順を示すフローチャートである。上述したように、このデータ読出処理は、ＣＰＵ１０による所定の制御信号の出力を契機にして開始される。
【００５１】
第１のＤＭＡコントローラ４１は、第１の内部メモリ３１からコマンドパラメータの組を１組取得する（ステップＳ３０１）。そして、第１のＤＭＡコントローラ４１は、かかるコマンドパラメータの組に基づいて、外部メモリインタフェース７０にデータの読み出しを実行させる。外部メモリインタフェース７０は、外部メモリ５１にアクセスして、指定された読出開始アドレスから指定された読出データサイズ分のデータを読み出す（ステップＳ３０２）。外部メモリインタフェース７０は、読み出したデータ（読出データ）を第２のＤＭＡコントローラ４２に供給する。
【００５２】
第２のＤＭＡコントローラ４２は、外部メモリインタフェース７０から供給された読出データを第２の内部メモリ３２に保存する（ステップＳ３０３）。また、第２のＤＭＡコントローラ４２は、この読出データと、予めＣＰＵ１０によって指定されたデータとが一致するか否かを判定する（ステップＳ３０４）。
【００５３】
その結果、両者が一致する場合（ステップＳ３０４；ＹＥＳ）、第２のＤＭＡコントローラ４２は、所定の割込信号を出力する（ステップＳ３０５）。この割込信号の出力に同期して、第１のＤＭＡコントローラ４１及び第２のＤＭＡコントローラ４２の動作が停止し、本データ読出処理は終了する。
【００５４】
一方、両者が一致しない場合（ステップＳ３０４；ＮＯ）、第１のＤＭＡコントローラ４１は、第１の内部メモリ３１から、次のコマンドパラメータの組を１組取得する（ステップＳ３０１）。以降、ＣＰＵ１０によって指定されたデータに一致するデータが読み出されるまで（ステップＳ３０４；ＹＥＳ）、上記処理が繰り返し実行される。なお、上述したように、第１のＤＭＡコントローラ４１によって、第１の内部メモリ３１から全てのコマンドパラメータの組が取得されると、上記の割込信号が出力され、本データ読出処理は終了する。
【００５５】
一般に、シリアルフラッシュメモリには、低コスト化や省電力化が図れ、信頼性もよく、組み込みの設計が容易というメリットがある反面、アクセス処理速度が遅いというデメリットがある。しかし、本実施形態のように、２つのＤＭＡコントローラを備える構成にし、各々を上述したように機能させることで、アクセス処理の高速化が図れる。
【００５６】
また、実施形態２のＤＭＡコントローラ４０と同様に、第２のＤＭＡコントローラ４２は、ＣＰＵ１０が所望するデータが読み出されると、割込信号を出力し、ＣＰＵ１０にデータの読み出し動作の終了を即座に通知する。したがって、処理の効率化、高速化がより一層図れる。
【００５７】
なお、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【００５８】
本出願は、２０１０年９月２１日に出願された日本国特許出願特願２０１０−２１０７９８号に基づく。本明細書中に、その明細書、特許請求の範囲、図面全体を参照して取り込むものとする。
【産業上の利用可能性】
【００５９】
本発明は、フラッシュメモリ等の読み書き可能な記憶媒体を利用する様々な電子機器に好適に採用され得る。
【符号の説明】
【００６０】
１０  ＣＰＵ
２０  ＲＯＭ
３０  ＲＡＭ
３１  第１の内部メモリ
３２  第２の内部メモリ
４０  ＤＭＡコントローラ
４０１  制御部
４０２  読出開始アドレスレジスタ
４０３  読出データサイズレジスタ
４０４  オフセット値レジスタ
４０５  繰り返し上限値レジスタ
４０６  繰り返しカウンタレジスタ
４０７  検索データレジスタ
４１  第１のＤＭＡコントローラ
４２  第２のＤＭＡコントローラ
５０  記憶媒体
５１  外部メモリ
６０  バス
６１  内部バス
６２  外部バス
【図１】
2012039143.tif 000003
【図２】
2012039143.tif 000004
【図３】
2012039143.tif 000005
【図４】
2012039143.tif 000006
【図５】
2012039143.tif 000007
【図６】
2012039143.tif 000008
【図７】
2012039143.tif 000009
【図８】
2012039143.tif 000010
【図９】
2012039143.tif 000011
【図１０】
2012039143.tif 000012
【図１１】
2012039143.tif 000013
【国際調査報告】
2012039143.tif 000014
2012039143.tif 000015