(57)【要約】【課題】メモリ装置の「沈み込み」と呼ばれるスループット性能の低下を防止する。【解決手段】データ処理部（１００）からそのデータ処理の処理単位毎に出力される要求信号(１０１)に基づいてバースト転送要求生成部(２００)にバースト転送要求の出力タイミングを与えるタイミング生成部(５０３)を設け、このタイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間と閾値レジスタの設定閾値で規定される時間との大小関係に基づいてバースト転送要求(３０１)の出力タイミングを制御する。前記経過時間が最大閾値で規定される時間を超える場合には前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。これにより、要求信号の発行が遅延したときはこれを待たずに先行してメモリ装置に次回のバースト転送要求を与えることができる【選択図】図１
2009134392.tif 000002
【特許請求の範囲】
【請求項１】
メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有し、
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が閾値レジスタの設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、データ処理装置。
【請求項２】
前記閾値レジスタをリードアクセス及びライトアクセス可能な制御部を有する、請求項１記載のデータ処理装置。
【請求項３】
メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有し、
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第１閾値レジスタの設定値で規定される時間よりも短いときは前記第１閾値レジスタの設定値で規定される時間の経過を待って前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、データ処理装置。
【請求項４】
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第２閾値レジスタの設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、請求項３記載のデータ処理装置。
【請求項５】
前記第１閾値レジスタ及び第２をリードアクセス及びライトアクセス可能な制御部を有する、請求項４記載のデータ処理装置。
【請求項６】
前記データ処理部は画像データに符号化復号処理を行なうＣＯＤＥＣであり、１個の半導体基板に形成された、請求項５記載のデータ処理装置。
【請求項７】
メモリ装置と、前記メモリ装置をアクセス可能な第１のデータ処理装置と、前記メモリ装置をアクセス可能な第２のデータ処理装置とを有するデータ処理システムであって、
前記第１のデータ処理装置は、前記メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有し、
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が閾値レジスタの設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、データ処理システム。
【請求項８】
メモリ装置と、前記メモリ装置をアクセス可能な第１のデータ処理装置と、前記メモリ装置をアクセス可能な第２のデータ処理装置とを有するデータ処理システムであって、
前記第１のデータ処理装置は、前記メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有し、
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第１閾値レジスタの設定値で規定される時間よりも短いときは前記第１閾値レジスタの設定値で規定される時間の経過を待って前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、データ処理システム。
【請求項９】
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第２閾値レジスタの設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、請求項８記載のデータ処理システム。
【請求項１０】
前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第１閾値レジスタの設定値で規定される時間を越えかつ第２閾値レジスタの設定値で規定される時間よりも短いときは前記要求信号の活性化に同期して前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える、請求項９記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバースト転送によるメモリ装置の制御に関し、例えば表示フレーム単位で画像データの符号化復号処理を行なうＣＯＤＥＣを備えたＳＯＣ（システム・オン・チップ）のような半導体装置、更にはデータ処理システムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
データ処理装置、あるいはデー処理装置内に設置されるプロセッサやアクセラレータ等のデータ処理エンジンの性能を向上させるには、効率の良いメモリアクセス制御が重要である。
【０００３】
例えばデータ処理エンジンにて画像コーデック処理を実施しようとした場合、ある一定以上のデータ流量（スループット性能）を保ちながら、データ処理エンジンへ一度に大容量データを転送（バースト転送）する必要が生じる。通常画像コーデック処理において、データ処理エンジンは実行すべき全処理をある小さな単位（例えばマクロ・ブロック単位）に分割し、個々の単位処理毎に必要なデータをメモリ装置からバースト転送で読み出し、画像コーデック処理に必要な動作を繰り返し実行することで、必要な処理を実行する。
【０００４】
上述の通り、メモリ装置からのバースト転送は、データ処理エンジンが個々の単位処理を完了する速度（単位処理ピッチ）に合わせて実行する必要がある。このため、データ処理エンジンはメモリ装置からのバースト転送を開始するタイミングを制御するための信号（単位処理開始信号）をメモリ制御装置に発行し、メモリ制御装置はその単位処理開始信号が発行される間隔である単位処理ピッチに合わせて、バースト転送をメモリ装置に対して発行することで、効率の良いメモリアクセスを実現していた。
【０００５】
図２に従来技術における、データ処理エンジンの単位処理ピッチに併せたバースト転送を実現するための、メモリ制御装置の構成例を示す。図２において、バースト転送要求生成部１０は、メインプロセッサ等によってバースト転送に必要なバースト転送開始アドレスやバースト数等が処理単位毎に予め設定されている。バースト転送要求生成部１０はデータ処理エンジン１００からある単位処理毎に単位処理開始信号１０１が発行されると、それに応答してメモリ装置４００にバーストアクセスコマンド等のバースト転送要求３０１を出力する。バースト転送要求３０１を受けたメモリ装置１３はバースト動作によってデータを出力し、出力されたデータはＦＩＦＯバッファ６００に蓄積され、データ処理エンジン１００はＦＩＦＯバッファ６００から取り出したデータを用いて所要のデータ処理を実行する。
【０００６】
図３には図２の技術における、バースト転送処理の流れが示される。データ処理エンジン１００がｉ番目の単位処理を開始する直前に単位処理開始信号１０１を発行する。バースト転送要求生成部１０は単位処理開始信号１０１が発行されたのを受け、ｉ番目の処理単位に必要なバースト転送を目的とした一連のバースト転送要求３０１を、メモリ装置４００に発行する。メモリ装置４００はバースト転送要求３０１に応じて必要なデータをＦＩＦＯバッファ６００に出力する。データ処理エンジン１００はＦＩＦＯバッファ６００からデータを取出してｉ番目の単位処理を実行する。
【０００７】
データ処理エンジン１００はｉ番目の単位処理を完了した後、ｉ＋１番目の単位処理を実行するため、上記に示した一連のバースト転送処理をｉ＋１番目の単位処理に必要なデータに対して繰り返し実行する。以降、データ処理エンジン１００におけるｉ＋１番目の処理が完了すると次はｉ＋２番目…、と言う様にデータ処理エンジン１００は一連の動作を必要な回数だけ繰り返すことで、その処理を継続して行く。
【０００８】
通常データ処理エンジン１００は上述の一連の処理を、その単位処理の大きさあるいは複雑さに依存した一定の単位処理ピッチで実行する。すなわち、ｉ番目〜ｉ＋１番目の単位処理開始信号１０１の発行時間間隔は、ｉ＋１番目〜ｉ＋２番目のそれとほぼ等しい状態で、各々の単位処理は実行される。よってデータ処理エンジン１００がある一定の時間間隔で単位処理開始信号１０１を発行する事により、メモリ装置４００における個々の単位処理に対応したメモリアクセスはある一定の時間間隔に分散されて処理される事になる。
【０００９】
しかし、何らかの要因、例えばデータ処理エンジン１００に対する割り込み処理の発生等により、ある単位処理の完了が遅れた場合、その遅れに従って単位処理開始信号１０１及びバースト転送要求３０１の発行が遅れる。逆に何らかの要因によりある単位処理の完了が早まった場合、その早まりに従って単位処理開始信号１０１及びバースト転送要求３０１の発行が早まる。つまり、この単位処理の完了時期の「揺らぎ」によりメモリ装置に対するメモリアクセスに乱れが生じる事になる。
【００１０】
上記メモリアクセスの乱れはアクセス効率の低下を招くことがある。この様な「揺らぎ」によるアクセス効率低下を解決するための手段として例えば、特許文献１に示される様な解決策がある。これは例えばメモリ装置４００がバースト転送要求３０１を受け付ける調停処理を、ある一定の時間間隔（調停タイミング）で実施する場合に、バースト転送要求３０１がある調停タイミングに間に合わなかったケースでは、その調停タイミングでバースト転送要求３０１が発行されなかったことを記憶する。後程、遅れてバースト転送要求３０１が発行された場合で、そのバースト転送要求が以前の調停タイミングに間に合わなかったと記憶されている時は、例え調停タイミング以外の時刻にそのリクエストが発行されたとしても、優先してそのリクエストを受け付けることで、リクエストの「揺らぎ」によるアクセス効率低下を防止しようとするものである。
【００１１】
図４には従来技術における、バースト転送処理中に発生しうる状況について示す。図４は、データ処理エンジン１００におけるｉ番目の単位処理の完了が何らかの要因で遅れたため、ｉ＋１番目に対する単位処理開始信号１０１の発行が遅れた状況を示している。バースト転送要求生成部１０は単位処理開始信号１０１が発行されるタイミングに併せて、バースト転送要求３０１をメモリ装置４００に対して発行する様に制御を行うため、バースト転送要求３０１は単位処理開始信号１０１の遅れに併せたタイミングで発行される。
【００１２】
ここで、メモリ装置４００は先の特許文献１に示される手法により、通常の調停タイミングよりも遅れて発行されたｉ＋１番目のバースト転送要求３０１を優先して受け付け、調停タイミング外の時刻に処理を実行する。これに対して、ｉ番目あるいはｉ＋２番目の単位処理は通常の単位処理ピッチで完了した場合、ｉ番目あるいはｉ＋２番目に対応するバースト転送要求３０１は、メモリ装置４００において通常の調停タイミングで受け付けられ、その処理が実施されることになる。
【００１３】
【特許文献１】特開２００６−１９５７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、図４に示した状況において、ｉ＋１番目およびｉ＋２番目のバースト転送要求３０１が集中してメモリ装置４００に対して発行された場合、状況によってメモリ装置４００はｉ＋１番目およびｉ＋２番目の処理を連続して実施しなければならない事がある。
【００１５】
一般的に、メモリ装置４００はバースト転送要求が集中して発行された場合、メモリ装置４００の内部でのリクエスト要求間での調停処理やメモリアクセス処理が煩雑化する事により、バースト転送要求３０１が分散して発行された場合に比べて個々のバースト転送要求に対する処理速度が低下する現象、例えば、メモリ装置４０１からバースト出力されるデータ出力の応答が遅くなる等、が見られる。この現象は特にバースト転送要求の集中によるメモリ装置の「沈み込み」と呼ばれ、システム全体のスループット性能を低下させる要因の１つとなる。
【００１６】
本発明は、上述の様なバースト転送要求がメモリ装置に対して集中して発行される事が要因で発生する、メモリ装置の「沈み込み」と呼ばれるスループット性能の低下を防止することができるデータ処理装置、更にはテータ処理システムを提供することを目的とする。
【００１７】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１８】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１９】
すなわち、データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいてバースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部を設け、このタイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間と閾値レジスタの設定閾値で規定される時間との大小関係に基づいてバースト転送要求の出力タイミングを制御する。例えば、前記経過時間が最大閾値で規定される時間を超える場合には前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。前記経過時間が最小閾値で規定される時間よりも短い場合には当該最小閾値で規定される時間の経過を待って前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００２０】
上記によれば、データ処理部からの要求信号の発行が遅延したときはこれを待たずに先行してメモリ装置に次回のバースト転送要求を与えることができる。また、データ処理部からの要求信号の発行が早すぎるときはそれよりも遅れてメモリ装置に次回のバースト転送要求を与えることができる。
【発明の効果】
【００２１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。すなわち、メモリ装置の「沈み込み」と呼ばれるスループット性能の低下を防止することができる。
【発明を実施するための最良の形態】
【００２２】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２３】
〔１〕データ処理装置（５０）は、メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部(１００)と、順次データを読み出すためにメモリ装置にバースト転送要求（３０１）を出力するバースト転送要求生成部（２００）と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号（１０１）に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部（５０３）とを有する。前記タイミング生成部は、前記バースト転送要求（３０１）が出力されてから前記要求信号(１０１)が活性化されるまでの経過時間が閾値レジスタ（５００）の設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００２４】
上記によれば、データ処理部からの要求信号の発行が遅延したときはこれを待たずに先行してメモリ装置に次回のバースト転送要求を与えることができる。
【００２５】
〔２〕項１のデータ処理装置は更に、前記閾値レジスタをリードアクセス及びライトアクセス可能な制御部（７００）を有する。プログラマブルの前記閾値レジスタの設定が可能になる。
【００２６】
〔３〕データ処理装置（５０Ａ）は、メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有する。前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第１閾値レジスタ（５００Ｂ）の設定値で規定される時間よりも短いときは第１閾値レジスタの設定値で規定される時間の経過を待って前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００２７】
上記によれば、データ処理部からの要求信号の発行が早すぎるときはそれよりも遅れてメモリ装置に次回のバースト転送要求を与えることができる。
【００２８】
〔４〕項３のデータ処理装置において、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第２閾値レジスタ（５００Ａ）の設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００２９】
これによれば、データ処理部からの要求信号の発行が遅延したときはこれを待たずに先行してメモリ装置に次回のバースト転送要求を与えることができる。
【００３０】
〔５〕項４のデータ処理装置は更に、前記第１閾値レジスタ及び第２をリードアクセス及びライトアクセス可能な制御部を有する。プログラマブルの前記第１及び第２閾値レジスタの設定が可能になる。
【００３１】
〔６〕項５のデータ処理装置において、前記データ処理部は画像データに符号化復号処理を行なうＣＯＤＥＣであり、データ処理装置は１個の半導体基板に形成される。ＣＯＤＥＣ処理の高速化に資することができる。
【００３２】
〔７〕データ処理システムは、メモリ装置と、前記メモリ装置をアクセス可能な第１のデータ処理装置と、前記メモリ装置をアクセス可能な第２のデータ処理装置とを有する。前記第１のデータ処理装置は、前記メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有する。前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が閾値レジスタの設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００３３】
上記によれば、データ処理部からの要求信号の発行が遅延したときはこれを待たずに先行してメモリ装置に次回のバースト転送要求を与えることができる。したがって、第１データ処理装置によるデータ処理に「揺らぎ」を生じてもメモリ装置に対するバースト転送要求の集中を抑制でき、その間に第２のデータ処理装置によるメモリ装置のアクセスが発生しても、アクセス要求の集中によるメモリ装置の「沈み込み」が緩和され、データ処理システム全体のスループット性能の向上に寄与することができる。
【００３４】
〔８〕データ処理システムは、メモリ装置と、前記メモリ装置をアクセス可能な第１のデータ処理装置と、前記メモリ装置をアクセス可能な第２のデータ処理装置とを有する。前記第１のデータ処理装置は、前記メモリ装置から順次読み出されたデータを用いてデータ処理を行なうデータ処理部と、順次データを読み出すためにメモリ装置にバースト転送要求を出力するバースト転送要求生成部と、前記データ処理部からそのデータ処理の処理単位毎に出力される要求信号に基づいて前記バースト転送要求生成部にバースト転送要求の出力タイミングを与えるタイミング生成部とを有する。前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第１閾値レジスタの設定値で規定される時間よりも短いときは第２閾値レジスタの設定値で規定される時間の経過を待って前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００３５】
上記によれば、データ処理部からの要求信号の発行が早すぎるときはそれよりも遅れてメモリ装置に次回のバースト転送要求を与えることができる。したがって、第１データ処理装置によるデータ処理に「揺らぎ」を生じてもメモリ装置に対するバースト転送要求の集中を抑制でき、その間に第２のデータ処理装置によるメモリ装置のアクセスが発生しても、アクセス要求の集中によるメモリ装置の「沈み込み」が緩和され、データ処理システム全体のスループット性能の向上に寄与することができる。
【００３６】
〔９〕項８のデータ処理システムにおいて、前記タイミング生成部は更に、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第２閾値レジスタの設定値で規定される時間を越えたときは前記要求信号の活性化を待たずに前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００３７】
これによれば、データ処理部からの要求信号の発行が遅延したときはこれを待たずに先行してメモリ装置に次回のバースト転送要求を与えることができる。
【００３８】
〔１０〕項９のデータ処理システムにおいて、前記タイミング生成部は、前記バースト転送要求が出力されてから前記要求信号が活性化されるまでの経過時間が第１閾値レジスタの設定値で規定される時間を越えかつ第２閾値レジスタの設定値で規定される時間よりも短いときは前記要求信号の活性化に同期して前記バースト転送要求生成部にバースト転送要求の出力タイミングを与える。
【００３９】
２．実施の形態の詳細
実施の形態について更に詳述する。以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明する。なお、発明を実施するための最良の形態を説明するための全図において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【００４０】
図１には本発明に係るデータ処理装置の一例としてマイクロコントローラ５０が示される。マイクロコントローラ５０は、特に制限されないが、単結晶シリコンのような１個の半導体基板にＣＭＯＳ集積回路製造技術等によって形成され、例えばＳＯＣとして構成される。
【００４１】
マイクロコントローラ５０には代表的に示されたメモリ装置４００が接続される。図示はしないが、メモリ装置４００はバスを介してその他のデータ処理装置によっても共有される。メモリ装置４０は例えばシンクロナスＤＲＡＭのようにバーストアクセスコマンド等が供給されることにより、それによって指定されるデータを連続的に出力するバースト転送動作が可能にされる。尚、メモリ装置４００はシンクロナスＤＲＡＭに限定されずシンクロナスＳＲＡＭ等であってもよい。
【００４２】
マイクロコントローラ５０は、全体の制御を司るメインプロセッサ７００と、メモリ装置４００から順次読み出されたデータを用いてデータ処理を行なうデータ処理エンジン１００を有する。データ処理エンジン１００はメインプロセッサ７００に対してアクセラレータとして位置付けられる。特に制限されないが、データ処理エンジン１０はメインプロセッサ７００からの指示に従って画像データの符号化復号処理等を行なう。例えば、符号化された表示フレームの画像データを、復号処理単位のような単位処理毎にメモリ装置４００から順次読み込んでデータ処理を繰り返す。以下において、マイクロコントローラがメモリ装置４００をアクセスするための構成について詳述する。
【００４３】
マイクロコントローラ５０は、メモリ装置４００をバーストアクセスするために、バースト転送要求生成部２００及びタイミング生成部５０３を有する。メモリ装置４００からデータ処理エンジン１００に至るリードデータパスにはＦＩＦＯ（First In First Out）バッファ６００が配置され、ＦＩＦＯバッファ６００は現在の空き容量のデータ６０１をバースト転送要求生成部２００に出力する。バースト転送要求生成部２００はメインプロセッサ７００によってバースト転送の転送開始アドレス及び転送語数等のバースト転送条件が初期設定され、ＦＩＦＯバッファ６００に必要な空き容量のあることを条件に、タイミング生成部５０３からバースト転送許可信号５２１により転送指示が与えられるのに応答して、メモリ装置４００にバーストアクセスコマンド等のバースト転送要求３０１を出力可能にされる。
【００４４】
データ処理エンジン１００はデータ処理の単位処理毎に単位処理開始信号１０１を出力する。タイミング生成部５０３は単位処理開始信号１０１等に基づいて前記タイミング信号５２１を生成する。このタイミング生成部５０３は、閾値設定レジスタ５００、タイムアウト検出器５１０及びバースト転送許可判定器５２０から成る。閾値設定レジスタ５００はメインプロセッサ７００によりリードライトアクセス可能にされ、所要の経過時間の上限が設定される。タイムアウト検出器５１０はバースト転送要求３０１が発行されてからの経過時間を測定し、この計測時間と閾値設定レジスタ５００で指定された時間とを比較し、経過時間が前記指定時間を超えたか否か、即ち、単位処理開始信号１０１に対してタイムアウトが発生したか否かを判定する。タイムアウトが発生するとタイムアウト信号５１１が活性化され、即ちイネーブルレベルにされる。タイムアウトが発生する前に単位処理開始信号１０１が活性化されたときは前記測定動作を終了し、次の測定動作に備える。バースト転送許可判定器５２０は単位処理開始信号１０１及びタイムアウト信号５１１を入力し、単位処理開始信号１０１が活性化される前にタイムアウト信号５１１が活性化されたときはそれに同期してバースト転送許可信号５２１を活性化する。タイムアウト信号５１１が活性化される前に単位処理開始信号１０１が活性化されたときはそれに同期してバースト転送許可信号５２１を活性化する。
【００４５】
メモリ装置４００はバースト転送要求３０１を受け付けると、それによる指示に従ってバーストリード動作を行って、リードデータ４０１をＦＩＦＯバッファ６００に供給する。図示はしないが、メモリ装置４００が他のプロセッサからもアクセス可能にされている場合、メモリ装置４００がバースト転送要求３０１を受け付ける際の調停手段としては、ある一定の時間間隔毎に定期的に調停を実施するもの、あるいは任意のタイミングでバースト転送要求３０１が発行される毎に調停を実施するもの等を採用すればよい。
【００４６】
図５には図１のマイクロコントローラ５０における単位処理毎のバースト転送動作の流れが例示される。ここで、閾値設定レジスタ５００にはメインプロセッサ７００を介して、ある適切な経過時間の上限値を示す閾値が設定されているものとする。
【００４７】
データ処理エンジン１００がｉ番目の単位処理を開始する直前に、ｉ番目に相当する単位処理開始信号１０１を発行する（ｔ１）。バースト転送要求生成部２００はバースト転送許可信号５２１の活性化を受けると、ＦＩＦＯバッファ６００に必要な空きがある場合にはバースト転送要求３０１をメモリ装置４００に送出する。メモリ装置４００はバースト転送要求３０１のリクエストに従い必要な内部処理を行った後、対応するデータ４０１をＦＩＦＯバッファ６００に向けて出力する。
【００４８】
上述の動作に並列してタイミング生成部５０３はｉ＋１番目の単位処理に必要なデータのバースト転送のための監視を行う。即ち、タイムアウト検出器５１０は、ｉ番目に相当するバースト転送要求３０１が発行されたのを受け、経過時間を測定するためのカウンタを“０”にリセットして、ｉ番目のバースト転送要求３０１が発行されてからの経過時間を監視する（Ｓ１）。カウンタは例えばある時間間隔毎に＋１のインクリメント動作を行う構成とすればよい。例えばタイムアウト検出器５１０はタイマ・カウンタを備えればよい。タイムアウト検出器５１０はその内部の前記カウンタの計数値と、閾値設定レジスタ５００の設定値とを比較しながら、同時にｉ＋１番目の単位処理開始信号１０１が発行されるのを監視し、ｉ＋１番目の単位処理開始信号１０１が発行される前に、ｉ番目のバースト転送要求３０１発行からの経過時間が、閾値設定レジスタ５００の設定値を超えるかどうか、即ちタイムアウトを生じたか否かを判断する。
【００４９】
ここで図５では、ｉ＋１番目の単位処理開始信号１０１が発行される前にタイムアウトが発生（ｔ２）した場合を示している。この場合バースト転送許可判定器５２０は、ｉ＋１番目に対応するタイムアウト信号５１１が、ｉ＋１番目に相当する単位処理開始信号１０１よりも先に発行されたのを受け、単位処理開始信号１０１の発行を待たずにｉ＋１番目に相当するバースト転送を実施するため、バースト転送要求生成器２００に対してバースト転送許可信号５２１を発行する。ここで、バースト転送許可信号５２１が既に発行された後で遅れてｉ＋１番目の単位処理開始信号１０１が発行されても（ｔ３）、バースト転送許可判定器５２０はｉ＋１番目に相当するバースト転送許可信号５２１は既に発行済として、余分なバースト転送許可信号５２１は発行しない。
【００５０】
バースト転送要求生成部２００は時刻ｔ２にｉ＋１番目のバースト転送許可信号５２１が発行されたのを受け、ＦＩＦＯバッファ６００に必要な空き領域があるのを確認して、バースト転送要求３０１をメモリ装置４００に発行する。メモリ装置４００はバースト転送要求３０１を受け付け、対応するデータをＦＩＦＯバッファ６００に出力する。
【００５１】
上述の動作に並行して先程と同様に、タイムアウト検出器５１０はｉ＋１番目に相当するバースト転送要求３０１が時刻ｔ２に発行されたことを受け、その経過時間を測定するカウンタを"０"にリセットして、時刻ｔ２にｉ＋１番目のバースト転送要求３０１発行されてから経過した時間を監視する。タイムアウト検出器５１０はその内部のカウンタと、閾値設定レジスタ５００の設定値とを比較しながら、同時にデータ処理エンジン１００からｉ＋２番目の単位処理開始信号１０１が発行されるのを監視し、ｉ＋２番目の単位処理開始信号１０１が発行される前に、その経過時間が閾値を超えた（タイムアウト）か否かを判断する（Ｓ２）。図５では、タイムアウトが発生する前にｉ＋２番目の単位処理開始信号１０１が発行される（時刻ｔ４）場合を示している。この場合バースト転送許可判定器５２０は、ｉ＋２番目に対応する単位処理開始信号１０１が、ｉ＋２番目に相当するタイムアウト信号５１１よりも先に発行されたこと受け、ｉ＋２番目に相当するバースト転送を実施するため、バースト転送要求生成部２００に対してバースト転送許可信号５２１を発行する。これによりバースト転送要求生成部２００はｉ＋２番目に相当するバースト転送要求３０１をメモリ装置４００に発行し、また、内部のカウンタを“０”にリセットして余分にタイムアウト信号５１１の出力を抑制する。
【００５２】
以上説明した様に、前記ｉ番目、ｉ＋１番目、ｉ＋２番目の単位処理に対応したバースト転送要求３０１が発行されるタイミングは、それぞれｉ番目、ｉ＋１番目、ｉ＋２番目の単位処理開始信号１０１の間隔、すなわちデータ処理エンジンによる単位処理のピッチが前後に揺らいでいるのにも拘わらず、閾値設定レジスタ５００で指定した閾値に近い時間間隔に分散されている。バースト転送要求３０１が適切に分散された状態で発行されるため、メモリ装置４００は常に最適な状態で対応するデータを出力出力することが可能となり、システム全体として最適なスループットが確保されることが期待できる。
【００５３】
図６には本発明に係るデータ処理装置として別のマイクロコントローラ５０Ａが例示される。図１に示されるマイクロコントローラ５０との相違点は、最大閾値設定レジスタ５０Ａ及び最小閾値設定レジスタの設定値を用いてタイムアウト検出信号を生成するようにした点である。そこではその相違点について以下で説明し、その他の点についてはその詳細な説明を省略する。
【００５４】
最大閾値設定レジスタ５００Ａにはある経過時間の上限値がメインプロセッサ７００により設定され、最小閾値設定レジスタ５００Ｂにはある経過時間の下限値がメインプロセッサ７００により設定される。メインプロセッサ７００は双方のレジスタ５００Ａ，５０Ｂに任意の最大経時間，最小経過時間を指定する。タイムアウト検出器５１０Ａは、メモリ転送要求３１０が発行されてからの経過時間を測定し、レジスタ５００Ａ，５０Ｂで指定される最大・最小閾値と比較することで、単位処理開始信号１０１に対してタイムアウトが発生したかどうかを判定する。５１２は上限時間に対するタイムアウト信号（最大タイムアウト信号）、５１３は下限時間に対するタイムアウト信号（最小タイムアウト信号）である。バースト転送許可判定器５２０Ａはタイムアウト信号５１３によるタイムアウトの前に単位処理開始信号１０１の活性化を検出したときはタイムアウト信号５１３によるタイムアウトを待ってバースト転送許可信号５２１をバースト転送要求生成部２００に与える。バースト転送許可判定器５２０Ａはタイムアウト信号５１２によるタイムアウトの前に単位処理開始信号１０１の活性化を検出していないときはタイムアウト信号５１２によるタイムアウトに同期してバースト転送許可信号５２１をバースト転送要求生成部２００に与える。バースト転送許可判定器５２０Ａはタイムアウト信号５１３によるタイムアウトの後であってタイムアウト信号５１２によるタイムアウトの前に単位処理開始信号１０１の活性化を検出していないときは単位処理開始信号１０１の活性化に同期してバースト転送許可信号５２１をバースト転送要求生成部２００に与える。バースト転送許可信号５２１が与えられたバースト転送要求生成部２００の機能は図1の場合と変わりない。
【００５５】
図７には図６のマイクロコントローラ５０Ａにおける単位処理毎のメモリ転送の流れが例示される。ここで、閾値設定レジスタ５００Ａ、５００Ｂにはある適切な経過時間の上限値および下限値を示す最大・最小閾値が設定されているものとする。
【００５６】
データ処理エンジン１００がｉ番目の単位処理を開始する直前に、ｉ番目に相当する単位処理開始信号１０１を発行する(ｔ１)。後述する通り、単位処理開始信号１０１が最小タイムアウト信号５１３よりも後の時刻かつ、最大タイムアウト信号５１２よりも前の時刻で発行された場合、バースト転送許可判定器５２０Ａは直ちにバースト転送許可信号５２１を発行する。バースト転送要求生成器２００はバースト転送許可信号５２１が成立したのを受け、ＦＩＦＯバッファ６００に必要な空き容量がある場合にバースト転送要求３０１をメモリ装置４００に対して送出する。メモリ装置４００は其れに従って必要な内部処理を行った後、対応するデータを出力する。
【００５７】
上述の動作と並列して、タイムアウト検出器５１０Ａは単位処理開始信号１００がｉ＋１番目の単位処理に必要なデータのバースト転送のための監視を行う。具体的には、タイムアウト検出器５１０Ａはｉ番目に相当するバースト転送要求３０１が発行されたのを受け、その内部に存在する経過時間を測定するカウンタを“０”にリセットして、ｉ番目のバースト転送要求３０１発行からの経過時間を監視する。カウンタは例えばある時間間隔毎に＋１する様な構成が考えられる。
【００５８】
タイムアウト検出器５１０Ａはその内部のカウンタによる計数値と閾値設定レジスタ５００１Ａ，５００Ｂの値とを比較しながら、同時にデータ処理エンジン１００からｉ＋１番目の単位処理開始信号１０１が発行されるのを監視し、ｉ＋１番目の単位処理開始信号１０１が発行される時刻が、ｉ番目のバースト転送要求３０１の発行からの経過時間に対して最小閾値よりも早い（アーリーピッチ）か、最小閾値よりは遅くて最大閾値よりは早い（定刻ピッチ）か、最大閾値を超える（タイムアウト）か否かを判断する（Ｓ１０）。
【００５９】
ここで図７では、ｉ＋１番目の単位処理開始信号１０１が定刻ピッチで発行された場合を示している。即ち、時刻ｔ２に最小タイムアウト信号５１３が出力される。この場合バースト転送許可判定器５２０Ａは、ｉ＋１番目の単位処理開始信号１０１が発行される時刻ｔ３に同期して、ｉ＋１番目に相当するバースト転送を実施するため、バースト転送許可信号５２１を発行する。ここで、バースト転送許可信号５２１が発行されるとそれに併せてｉ＋１番目に相当するバースト転送要求３０１が直ちに発行されることで、タイムアウト検出器５１０Ａ内部のカウンタはタイムアウトを検出する前に“０”にリセットされるため、タイムアウトによる余分なバースト転送許可信号５２１は発行されない。
【００６０】
バースト転送要求生成器２００はｉ＋１番目のバースト転送許可信号５２１が発行されたのを受け、ｉ＋１番目に相当するバースト転送要求３０１をメモリ装置４００に対して発行する。
【００６１】
上述の動作と並列して先程と同様に、タイムアウト検出器５１０Ａはデータ処理エンジン１００がｉ＋２番目の単位処理に必要なデータのバースト転送のための監視を行う。具体的には、タイムアウト検出器５１０Ａはｉ＋１番目に相当するバースト転送要求３０１が発行されたの受け、その内部に存在する経過時間を測定するカウンタを“０”にリセットして、ｉ＋１番目のバースト転送要求３０１発行からの経過時間を監視する(Ｓ１１)。
【００６２】
図８には図６のマイクロコントローラ５０Ａにおける単位処理毎のメモリ転送の流れについて別ケースでの説明を例示する。ここで、閾値設定レジスタ５００Ａ，５００Ｂにはある適切な経過時間の上限値および下限値を示す最大・最小閾値が設定されているものとする。また図８におけるｉ番目の単位処理開始信号１０１の発行に対する動作および監視は、上述の図７に対するそれと全く同様である。
【００６３】
タイムアウト検出器５１０Ａはその内部のカウンタによる計数値と、閾値設定レジスタ５００Ａ，５００Ｂの設定値とを比較しながら、同時にデータ処理エンジン１００からｉ＋１番目の単位処理開始信号１０１が発行されるのを監視し、ｉ＋１番目の単位処理開始信号１０１が発行される時刻が、ｉ番目のバースト転送要求３０１発行からの経過時間に対して最小閾値よりも早い（アーリーピッチ）か、最小閾値よりは遅くて最大閾値よりは早い（定刻ピッチ）か、最大閾値を超える（タイムアウト）かどうかを判断する（Ｓ１０）。
【００６４】
ここで図８では、ｉ＋１番目の単位処理開始信号１０１がアーリーピッチで発行された場合を示している。この場合バースト転送許可判定器５２０Ａは、指定されたピッチよりも単位処理開始信号１０１の単位処理ピッチが早過ぎるものとして、ｉ＋１番目の単位処理開始信号１０１発行タイミング（ｔ２）ではバースト転送許可信号５２１を発行せず、最小タイムアウト信号５１３が発行されたのを待って、バースト転送要求生成部２００に対してバースト転送許可信号５２１を発行する（ｔ３）。ここで、バースト転送許可信号５２１が発行されるとそれに併せてｉ＋１番目に相当するバースト転送要求３０１が発行されることで、タイムアウト検出器５１０Ａ内部のカウンタはタイムアウトを検出する前に“０”にリセットされるため、タイムアウトによる余分なバースト転送要求５２１は発行されない。
【００６５】
バースト転送要求生成部２００はｉ＋１番目の転送許可信号５２１が発行されたのを受け、ｉ＋１番目に相当するバースト転送要求３０１をメモリ装置４００に対して発行する。メモリ装置４００はバースト転送要求３０１を介して発行されるリクエストを受け付け、対応するデータを出力する。
【００６６】
上述の動作と並列して先程と同様に、タイムアウト検出器５１０Ａはｉ＋２番目の単位処理に必要なデータのバースト転送のための監視を行う(Ｓ１１)。具体的には、タイムアウト検出器５１０Ａはｉ＋１番目に相当するバースト転送要求３０１が発行されたの受け、その内部に存在する経過時間を測定するカウンタを“０”にリセットして、ｉ＋１番目のバースト転送要求３０１発行からの経過時間を監視する。すなわち、タイムアウト検出器５１０Ａはその内部のカウンタによる計数値と、閾値設定レジスタ５００Ａ，５００Ｂに設定された低最大・最小閾値とを比較しながら、同時にデータ処理エンジン１００からｉ＋２番目の単位処理開始信号１０１が発行されるのを監視し、ｉ＋２番目の単位処理開始信号１０１が発行される時刻が、ｉ＋１番目のバースト転送要求３０１発行からの経過時間に対して最小閾値よりも早い（アーリーピッチ）か、最小閾値よりは遅くて最大閾値よりは早い（定刻ピッチ）か、最大閾値を超える（タイムアウト）かどうかを判断する（Ｓ１１）。
【００６７】
ここで図８では、ｉ＋２番目の単位処理開始信号１０１が発行される前にタイムアウトが発生した場合を示している。この場合バースト転送許可判定器５２０Ａは、ｉ＋２番目に対応する最大タイムアウト信号５１２が、ｉ＋２番目に相当する単位処理開始信号１０１よりも先に発行されたのを受け（ｔ４）、単位処理開始信号１０１の発行を待たずにｉ＋２番目に相当するバースト転送を実施するために、バースト転送要求生成部２００に対してバースト転送許可信号５２１を発行する。ここで、バースト転送許可信号５２１が既に発行された後で遅れてｉ＋２番目の単位処理開始信号１０１が発行されても、バースト転送許可判定器５２０Ａはｉ＋２番目に相当する５２１は既に発行済として、余分なバースト転送許可信号５２１は発行しない。
【００６８】
以上説明した様に、これらｉ番目、ｉ＋１番目、ｉ＋２番目の単位処理に対応したバースト転送要求３０１の発行されたタイミングは、それぞれｉ番目、ｉ＋１番目、ｉ＋２番目の単位処理開始信号１０１の間隔である、データ処理エンジン１００の単位処理ピッチが前後に揺らいでいるのにも拘わらず、個々の処理単位が閾値設定レジスタ５００Ａ,５００Ｂで指定した最大・最小閾値で限定された時刻内に収まる形で、互いに分散されている。メモリ装置４０はバースト転送要求３０１が適切に分散された状態で発行されるため、常に最適な状態で対応するデータをアクセスすることが可能となり、システム全体として最適なスループットが確保されることが期待できる。
【００６９】
以上説明した図１及び図６の例によれば、データ処理エンジンの単位処理ピッチが何らかの要因で、早まったり遅れたりした場合でも、指定された閾値を元にメモリ装置に対するメモリ転送リクエストを適切に分散させて発行することが可能となる。これにより、メモリ装置は常に最適な状態で対応するデータをアクセスすることが可能となり、システム全体として最適なスループットが確保されることが期待できる。
【００７０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００７１】
例えば、上記の例では、閾値設定レジスタ５００、５００Ａ、５００Ｂはメインプロセッサを用いてユーザが任意に設定可能としているが、それに設定される閾値は、タイミング生成部が更新可能とする構成も考えられる。この場合、タイミング生成部は例えばｉ＋１番目の単位処理開始信号が発行される時に、１番目からｉ番目の単位処理ピッチの平均値を用いて閾値設定レジスタの設定値を更新することで、自律的に最適な閾値を設定しながら処理を行うことが可能である。
【００７２】
また、ＦＩＦＯバッファ６００はメモリ装置のデータ出力速度とデータ処理エンジンの動作速度の相違を吸収するためのメモリであって、双方の動作速度が等しければＦＩＦＯバッファを設けなくてもよい。
【００７３】
以上の説明ではデータ処理エンジン（例えば画像処理用）での動作を例に説明しているが、これはデータ処理エンジンに限定されるものでは無く、例えばデータ処理エンジンをプロセッサに置き換えたシステムへの適用が考えられる。またメモリ装置への接続方法は必ずしも１対１の接続である必要は無く、実施例におけるデータ処理エンジンおよびメモリ制御装置の組が複数、メモリ装置に対して接続（例えばバス経由での接続）されているものへの応用が考えられる。
【図面の簡単な説明】
【００７４】
【図１】本発明に係るデータ処理装置の一例としてマイクロコントローラを示すブロック図である。
【図２】従来技術における、データ処理エンジンの単位処理ピッチに併せたバースト転送を実現するための、メモリ制御装置の構成を例示するブロック図である。
【図３】図２の技術における、バースト転送処理の流れが示すタイムチャートである。
【図４】図２の従来技術における、バースト転送処理中に発生しうる状況について示したタイムチャートである。
【図５】図１のマイクロコントローラにおける単位処理毎のバースト転送動作の流れが例示するタイムチャートである。
【図６】本発明に係るデータ処理装置として別のマイクロコントローラを例示するブロック図である。
【図７】図６のマイクロコントローラにおける単位処理毎のメモリ転送の流れが例示するタイムチャートである。
【図８】図６のマイクロコントローラにおける単位処理毎のメモリ転送の流れについて別ケースを例示するタイムチャートである。
【符号の説明】
【００７５】
５０、５０Ａ  マイクロコントローラ
１００  データ処理エンジン
１０１  単位処理開始信号
２００  バースト転送要求生成部
３０１  バースト転送要求
４００  メモリ装置
５００  閾値設定レジスタ
５００Ａ  最大閾値設定レジスタ
５００Ｂ  最小閾値畝低レジスタ
５０３、５０３Ａ  タイミング生成部
５１０、５１０Ａ  タイムアウト検出器
５１１  タイムアウト信号
５１２  最大タイムアウト信号
５１３  最小タイムアウト信号
５２０、５２０Ａ  バースト転送許可判定器
５２１  バースト転送許可信号
６００  ＦＩＦＯバッファ
７００  メインプロセッサ
【図１】
2009134392.tif 000003
【図２】
2009134392.tif 000004
【図３】
2009134392.tif 000005
【図４】
2009134392.tif 000006
【図５】
2009134392.tif 000007
【図６】
2009134392.tif 000008
【図７】
2009134392.tif 000009
【図８】
2009134392.tif 000010