処理装置
【課題】データ転送を調停する調停部の設定を容易にしうるようにすること。
【解決手段】転送モニタ回路33は、調停回路31にて制御されるDMAチャネルのチャネル番号と、生成されるDMAチャネルにより転送されるデータのデータ量をモニタ情報として記憶する。そして、転送モニタ回路33は、調停回路31が調停する要求信号を出力する処理部21〜28が動作するタイミングを制御する同期信号Syncや、処理部21〜28から出力されるエラー通知信号ERR、等に基づく期間のモニタ情報を記憶する
【解決手段】転送モニタ回路33は、調停回路31にて制御されるDMAチャネルのチャネル番号と、生成されるDMAチャネルにより転送されるデータのデータ量をモニタ情報として記憶する。そして、転送モニタ回路33は、調停回路31が調停する要求信号を出力する処理部21〜28が動作するタイミングを制御する同期信号Syncや、処理部21〜28から出力されるエラー通知信号ERR、等に基づく期間のモニタ情報を記憶する
【発明の詳細な説明】
【技術分野】
【0001】
複数の処理部とメモリとの間のデータ転送を調停する調停部を含む処理装置に関する。
【背景技術】
【0002】
デジタルスチルカメラ等の電子機器は、データを処理する複数の異なる処理部と、処理に必要なデータを格納するためのメモリを有している。各処理部は、メモリからデータを読み出し、処理後のデータをメモリに書き込む。各処理部は、処理の都合によってメモリをアクセスする、つまりメモリへのアクセスが非同期に発生するため、メモリに対して複数の処理部から同時にアクセスの要求が発生する、つまりアクセス要求が競合する場合がある。この競合を解決するため、電子機器は、メモリに対するアクセスの要求を調停する調停装置を有している。調停方法の1つの例は、各処理部に対応して設定された優先順位に従ってメモリに対するアクセスを許可するものであり、別の例は、各処理部に対して均等にアクセスを許可するものである。
【0003】
電子機器には、一定時間内にデータの転送を終了しなければならない処理部を含むものがある。このような処理部の優先度よりも優先度が高い他の処理部がアクセスを頻繁に行う状況では、データの転送を終了することができなくなる場合が生じる。このため、例えば転送データ量をモニタし、転送データが所定量未満の場合に処理部の優先度を動的に変更する調停装置が提案されている(例えば、特許文献1〜4参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−49479号公報
【特許文献2】特開2003−6139号公報
【特許文献3】特開2005−4563号公報
【特許文献4】特開平9−91194号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、電子機器、例えばデジタルスチルカメラでは、シャッターボタンの操作に対応して順次実行される処理、つまり処理部がメモリをアクセスする順番が決まっているため、シャッターボタンを操作する毎に、転送データが所定量未満になり優先度を変更しなければならない。このため、電子機器のデバッグにおいて、各処理部の優先度等を調整することが考えられる。そして、この調整のために、処理部が転送したデータの量や、調停装置の状態をモニタすることが要求されている。
【0006】
この調停装置で、データ転送を調停する調停部の設定を容易にしうるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一側面によれば、処理装置は、種類の処理を行う複数の処理部と、前記複数の処理部に接続可能なメモリへ前記複数の処理部から出力される要求信号のうちの1つを各処理部に応じて設定された設定情報に従って選択し、その選択した要求信号を出力する処理部に前記メモリとの間のデータ転送を制御する調停部と、前記調停部にて制御されるDMAチャネルをモニタしたモニタ情報を記憶する転送モニタ回路と、を有し、前記モニタ情報は、前記調停部にて調停されてDMAチャネルを形成するチャネル番号の履歴と、前記DMAチャネルにて転送されるデータ量とを含み、前記転送モニタ回路は、前記処理部の動作状態に応じた期間における前記モニタ情報を記憶する。
【発明の効果】
【0008】
開示の装置は、データ転送を調停する調停部の設定を容易にしうるようにすることができる。
【図面の簡単な説明】
【0009】
【図1】電子機器のブロック回路図である。
【図2】処理装置のブロック回路図である。
【図3】調停回路のブロック回路図である。
【図4】優先順位制御部のブロック回路図である。
【図5】レベル間調停部の動作説明図である。
【図6】チャネル確定部の動作説明図である。
【図7】レベル内調停部のブロック回路図である。
【図8】優先フラグ生成部のブロック回路図である。
【図9】レベル内調停部の動作を説明するためのフローチャートである。
【図10】優先フラグ生成部の動作を説明するためのフローチャートである。
【図11】転送モニタ回路のブロック回路図である。
【図12】チャネル履歴回路のブロック回路図である。
【図13】チャネル履歴回路の動作説明図である。
【図14】転送モニタ回路の動作を示すタイミング図である。
【図15】転送モニタ回路の動作を示すタイミング図である。
【図16】モニタ機能の動作を説明するためのフローチャートである。
【図17】優先順位変更動作を説明するためのフローチャートである。
【図18】デバッグ処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0010】
以下、一実施形態を図面に従って説明する。
図1に示すように、電子機器10は例えばデジタルスチルカメラであり、撮像部11、処理装置12、表示部13、メモリ14を有する。撮像部11は撮像素子(イメージ・センサ)を含む。撮像素子はCCDやCMOSイメージセンサ等である。撮像部11は、例えば、撮像素子と信号処理部と信号生成部を含む。信号生成部は、クロック信号、同期信号を含むタイミング信号を生成し、出力する。撮像素子は、入射する光を電気信号に変換して1フレーム分の画像データを生成する。そして、撮像素子は、タイミング信号に基づいて、各フレームの画像データを出力する。信号処理部は例えばアナログフロントエンドであり、撮像素子から出力されるアナログの画像データをデジタル化し、そのデジタル化した画像データを同期信号Syncに基づいて出力する。同期信号Syncは、1フレームの区切りを示す垂直同期信号と、1ラインの区切りを示す水平同期信号を含む。
【0011】
処理装置12は、同期信号Syncに基づいて動作する複数の処理部を有する。各処理部は、割り当てられた処理に応じて、メモリ14をアクセスする。メモリ14は例えばシンクロナスダイナミックランダムアクセスメモリ(SDRAM)である。処理装置12は、メモリ14に格納されたデータを表示部13に出力する。表示部13は、LCDやELディスプレイ等であり、処理装置12から出力されるデータに基づく画像を表示する。尚、表示部13は、紙等の媒体に画像を表示する所謂印刷装置や、壁面等に画像を表示する所謂プロジェクタなどであってもよい。
【0012】
処理装置12にはデバッグ装置200が接続される。デバッグ装置200は、処理装置12の動作の誤りを見つけて修正したり、処理装置12の動作を調整したりするものであり、例えばインサーキットエミュレータ(ICE)とパーソナルコンピュータ(PC)とを含む。PCには、ICEを介して処理装置12から読み出される各種デバッグ情報が表示される。デバッグ情報は、処理装置12に発生するエラー情報、処理装置12の動作をモニタしたモニタ情報を含む。PCは、作業者(開発者、デバッグ担当者、等)の操作に従って設定値がICE、処理装置12に書き込まれる。この設定値は、処理装置12の動作における設定値、ICEの動作を制御する設定値、を含む。ICEの動作を制御する設定値(ブレークポイント等)を適宜設定することにより、処理装置12の動作を容易に確認することができる。そして、処理装置12の動作をモニタする動作と、そのモニタ結果に応じて変更した設定値を処理装置12に書き込む動作を繰り返すことにより、処理装置12の動作に応じた適切な設定値を設定し、処理装置12の動作状態を改善することができる。
【0013】
図2に示すように、処理装置12は、複数の処理部21〜28を有する。各処理部21〜28は、データを処理するものであり、各処理に応じてメモリ14をアクセスするための要求信号を含む各種信号を出力する。
【0014】
各処理部21〜28の一例を説明する。
第1処理部21はプリプロセス部(前処理部)であり、撮像部11から出力される画像データに対しホワイトバランス等の前処理を行い、処理後のデータをメモリ14に格納する。第2処理部22は補正部であり、メモリ14から読み出したデータに対してγ補正等の補正処理を行い、補正後のデータをメモリ14に格納する。第3処理部23はカラープロセスであり、メモリ14から読み出したデータに対して色空間変換処理を行い、処理後のデータをメモリ14に格納する。第4処理部24はノイズ除去部であり、メモリ14から読み出したデータに対して所定の処理を行ってノイズを除去し、処理後のデータをメモリ14に格納する。
【0015】
第5処理部25は解像度変換部であり、メモリ14から読み出したデータに対して、画素データの間引き、データ補間などの処理を行い、処理後のデータをメモリ14に格納する。第6処理部26は圧縮伸張部であり、所定の方式(例えばJPEG方式)によりメモリ14から読み出したデータに対して符号・復号(圧縮・伸長)処理を行い、処理後のデータをメモリ14に格納する。第7処理部27は画像効果処理部であり、メモリ14から読み出したデータに対して輪郭強調等の処理を行い、処理後のデータをメモリ14に格納する。第8処理部28は出力部であり、メモリ14から読み出したデータを表示のためのデータに変換し、変換後のデータを表示部13に出力する。
【0016】
即ち、第1〜第7処理部21〜27はメモリ14にデータを格納する処理を行う。従って、第1〜第7処理部21〜27はメモリ14にデータを書き込むためにバスを使用する要求信号W0〜W6を調停回路31に出力する。また、第2〜第8処理部22〜28はメモリ14からデータを読み出す処理を行う。従って、第2〜第8処理部22〜28は、メモリ14からデータを読み出すためにバスを使用する要求信号R1〜R7を調停回路31に出力する。
【0017】
また、各処理部21〜28は、メモリ14をアクセスするためのパラメータを調停回路31に出力する。このパラメータは、データをアクセスする領域を示すアドレス、データ量を含む。データ量は例えばバースト長である。上記したように、メモリ14にSDRAMを用いた場合、このメモリ14は、指定したアドレスから連続した複数のアドレスのデータを書き込み又は読み出すモード(バースト・モード)を有している。バースト長は、連続してアクセスするデータの数である。
【0018】
調停回路31は、複数(本実施形態では4つ)の直接メモリアクセス制御回路(Direct Memory Access controller:以下、DMACという)32a〜32dと、転送モニタ回路33を含む。
【0019】
各DMAC32a〜32dは、各処理部21〜28から出力される要求信号に応答して、各処理部21〜28とメモリ14との間でデータを直接的に転送するチャネル(DMAチャネル)を制御する。各処理部21〜28は、DMAチャネルを介してメモリ14をアクセスする。各処理部21〜28が実行する処理は互いに異なり、各処理に応じて必要なデータの量が異なる。そして、各処理部21〜28は、それぞれが実行する処理に必要なデータをメモリ14から読み出す、又は処理したデータをメモリ14に書き込むために要求信号を出力する。従って、メモリ14に対するアクセス要求が非同期で発生するため、メモリ14に対するアクセス要求が同時に発生する、即ち要求信号が競合する場合がある。このため、各DMAC32a〜32dは、それぞれ設定された複数の処理部からの要求を調停し、その調停により選択したチャネル、即ち処理部の要求信号に基づくリクエスト信号をメモリコントローラ34に出力する。また、各DMAC32a〜32dは、選択したチャネルに対応する処理部から出力されるパラメータをメモリコントローラ34に出力する。
【0020】
メモリコントローラ34はアービタ(バス制御部)35を含む。このアービタ35には、各DMAC32a〜32dから出力される要求信号が入力される。また、このアービタ35には、CPU36とDSP37とから要求信号が入力される。つまり、アービタ35に対してCPU36及びDSP37も処理部として認識される。アービタ35は、各要求信号を調停して1つの処理部に対してバス使用許可を与える。使用許可を受け取った処理部は、バス38及びメモリコントローラ34を介してメモリ14をアクセスする。メモリ14は、処理部からメモリコントローラ34を介して供給されるパラメータに従ってデータの読み出し又は書き込みを行う。
【0021】
上記各DMAC32a〜32dは、要求信号の受け付け、受け付けた要求信号に対する動作の変更が可能に構成されている。要求信号に対する動作は、要求信号に対する優先順位、要求信号に対する優先回数、要求信号の割当て、を含む。例えば、各DMAC32a〜32dは、それぞれ変更項目の値を記憶するレジスタを有し、そのレジスタの値を変更する(書き換える)ことにより、変更後の値に応じた動作を行う。優先順位は、要求信号、即ち各処理部に対して設定される。
【0022】
優先回数は、例えば、同じ優先順位に設定された複数の処理部について、要求信号を受け付ける回数を変更する。要求信号の受け付け回数は、その要求信号を出力する処理部に割り当てるバス38の使用時間に対応する。従って、転送するデータ量の異なる処理部について、そのデータ量に応じて優先回数を設定することにより、効率的なデータ転送や、一定時間内のデータ転送の終了が可能となる。
【0023】
要求信号の割当ては、各DMAC32a〜32dが受け付ける要求信号の設定である。例えば、DMAC32a,32bには、処理部21〜27の要求信号W1〜W7が入力されている。設定の一例は、所定の動作モードにおいて、第1DMAC32aが要求信号W1〜W4を受け付けて調停処理を行い、第2DMAC32bが要求信号W5〜W7を受け付けて調停処理を行うものである。この設定に対し、別の動作モードでは、要求信号W2〜W6を受け付ける必要があり、かつ要求信号W3,W4を出力する処理部23,24の処理が他の処理部の処理よりもメモリ14との間の転送量が多い。このような場合、第1DMAC32aに要求信号W2,W3,W6を割当て、第2DMAC32bに要求信号W4,W5を割り当てる。このように、要求信号W3,W4を第1DMAC32aと第2DMAC32bがそれぞれ受け付けるように設定を変更することにより、要求信号W3,W4の実質的な優先順位を高くすること、要求信号W3,W4を出力する処理部23,24がバス38を利用する回数(時間)を多くすることが可能となり、処理部23,24の処理を所定の時間内に終了させることが可能となる。
【0024】
CPU36は、図示しない操作部の操作に従って、各処理部の動作を制御する。更に、CPU36は、その時の動作に応じた信号選択情報をDMAC32a〜32dに書き込む。動作は、例えば、撮影動作、画像表示動作、データ変換を含む。つまり、撮影動作、即ち入射光に応じた画像データを記憶する動作と、記憶した画像データを表示する動作と、記憶した画像データのフォーマット(サイズ、色、圧縮方向、等)を変換する動作では、優先的に動作させなければならない処理部が異なる。従って、動作に応じての信号選択情報により、各処理部21〜28が出力する要求信号の優先度が設定される。即ち、処理装置12は、その時々の動作に応じて処理部21〜28の優先度を設定する。調停回路31のDMAC32a〜32dは、それぞれに設定された信号選択情報に応じて要求信号を調停する。
【0025】
上記転送モニタ回路33は、DMAC32a〜32dにより制御されるDMAチャネル等をモニタし、そのモニタ結果を保持する。上記したように、各DMAC32a〜32dは、それぞれ、設定された信号選択情報に基づいて、各処理部21〜28から出力される要求信号に応じてDMAチャネルを制御する。そして、各処理部21〜28は、DMAチャネルを介して、メモリ14に対して、処理に必要なデータの読み出し、処理後のデータの書き込みを行う。このため、各DMAC32a〜32dに対する各処理部21〜28の優先順序等の設定は、各処理部21〜28の処理に影響する。従って、DMAC32a〜32dの調停結果(チャネル番号)等を監視し、監視結果に応じて、優先順位等を調整する必要がある。
【0026】
転送モニタ回路33は、所定の情報をモニタし、そのモニタ情報を記憶する。モニタ情報を取得するトリガは、定期的にレベルが変化する信号(定期トリガ)、非定期にレベルが変化する信号(非定期トリガ)を含む。モニタ情報は、定期トリガ間に発生する要求信号のチャネル番号、要求信号に対応するDMAチャネルの転送量、非定期トリガが発生するまでに生成されるDMAチャネルの履歴、のうちの少なくとも1つを含む。
【0027】
また、転送モニタ回路33は、非定期トリガの発生をCPU36に通知する機能を有している。この機能は、例えば、CPU36に対する割り込み信号により提供される。即ち、転送モニタ回路33は、非定期トリガの発生に応答して割り込み信号を出力する。CPU36は、この割り込み信号に応答して、調停回路31に設定した情報をモニタ情報として記憶する。調停回路31に対する設定は、上記したように、各DMAC32a〜32dが受け付ける要求信号のチャネル番号、受け付けるように設定した要求信号に対する優先順位、優先回数、等を含む。
【0028】
上記したように、調停回路31には、CPU36から優先度等の情報が設定される。つまり、調停回路31は、CPU36との間でデータの授受を行うCPUインタフェースを有している。そして、CPU36は、CPUインタフェースを介して各DMAC32a〜32dと転送モニタ回路33に接続されている。従って、調停回路31は、転送モニタ回路33に記憶されたモニタ情報を、CPU36から読み出すことが可能に構成されている。
【0029】
図1に示すデバッグ装置200は、CPU36に接続され、CPU36の動作をシミュレートする。従って、デバッグ装置は、CPU36に記憶されたモニタ情報、転送モニタ回路33に記憶されたモニタ情報を読み出し、その値を表示装置に表示させることができる。そして、操作者(設計者)は、表示装置に表示されたモニタ情報に基づいて、各DMAC32a〜32dに設定する情報を変更する。例えば、各処理部21〜28の処理においてエラーが発生した場合、そのエラーが発生するまでのDMAチャネルの状態をモニタ情報に基づいて確認し、優先度を変更し、その変更後の優先度を対応するDMACに設定する。これにより、前回の処理の実行においてエラーが発生したDMAチャネルの優先度が高くなるため、エラーの発生を防止することができるようになる。
【0030】
次に、調停回路31を詳述する。
上記したように、調停回路31は、各処理部21〜28から出力される要求信号を調停するDMAC32a〜32dと、各DMAC32a〜32dの動作をモニタする転送モニタ回路33とを有している。このため、先ず各DMAC32a〜32dを詳述し、次に転送モニタ回路33を詳述する。
【0031】
[DMAC32a〜32d]
第1DMAC32a及び第2DMAC32bは書き込みのための要求信号W0〜W6を調停するためのものであり、第3DMAC32c及び第4DMAC32dは読み出しのための要求信号R1〜R7を調停するためのものである。
【0032】
このように、2つの書き込み用のDMAC32a,32bと2つの読み出し用のDMAC32c,32dを有することは、リソース、即ちデータを転送するバスを有効に活用するためのものである。例えば、第2処理部(補正部)22がメモリ14から読み出したデータを処理している間、バスをその他の処理部が読み出し又は書き込みを行うことができる。また、メモリ14に対するアクセスに要する時間と、処理部にてデータを入出力するために要する時間とに差がある、即ちアクセス速度に差があるため、1つの処理部がアクセスしている間に次のアクセスのための要求信号を受け付けてメモリ14からバッファに読み出すことで、連続的なアクセスが可能となる。
【0033】
第1DMAC32aには、複数(本実施形態では7)の書込要求信号W0〜W6、即ち、処理部21〜27から出力される全ての書込要求信号W0〜W6が入力される。DMAC32aには複数の優先レベルが設定され、各優先レベルには少なくとも1つのチャネル番号が設定されている。チャネル番号は、DMAC32aに入力される要求信号に対して設定されている。本実施形態において、DMAC32aには3つの優先レベルが設定され、各優先レベルには要求信号W0〜W6のうちの少なくとも1つに応じたチャネル番号が設定されている。このチャネル番号は信号選択情報として設定される。
【0034】
DMAC32aは、各優先レベル内において、設定されたチャネル番号について競合する要求をラウンドロビン方式により調停する。更に、DMAC32aは、各設定レベルにおいて選択したチャネル番号について競合する要求を調停する。DMAC32aには、このレベル間調停において、各レベルにはそれぞれ選択回数が設定されている。各レベルの選択回数は、例えば各レベルの優先度に応じて、それぞれのレベルよりも優先度が高いレベルに設定された選択回数より少ない選択回数が設定されている。
【0035】
DMAC32aは、上位レベル、即ち優先度の高いレベルに設定されたチャネル番号を順次選択する。そして、DMAC32aは、各レベルに設定された回数のチャネル番号を選択すると、そのレベルよりも下位、即ち低いレベルに設定されたチャネル番号を、そのレベルに設定された回数選択する。即ち、DMAC32aは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。従って、DMAC32aは、優先レベルの高い要求信号が多い場合であっても、所定の割合で優先レベルの低い要求信号を選択する。これにより、低い優先レベルの要求信号を確実に選択してその要求信号を出力する処理部がメモリ14をアクセスする権利、即ちメモリ14が接続された共有バスの使用権を獲得することができる。
【0036】
同様に、第2DMAC32bには、複数(本実施形態では7)の書込要求信号W0〜W6、即ち、処理部21〜27から出力される全ての書込要求信号W0〜W6が入力される。そして、第2DMAC32bは、3つの優先レベルが設定され、各優先レベルには要求信号W0〜W6のうちの少なくとも1つに応じたチャネル番号が設定されている。更に、第2DMAC32bは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。
【0037】
第3DMAC32cには、複数(本実施形態では7)の読出要求信号R1〜R7、即ち、処理部22〜28から出力される全ての読出要求信号R1〜R7が入力される。そして、第3DMAC32cは、3つの優先レベルが設定され、各優先レベルには要求信号R1〜R7のうちの少なくとも1つに応じたチャネル番号が設定されている。更に、第3DMAC32cは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。
【0038】
同様に、第4DMAC32dには、複数(本実施形態では7)の読出要求信号R1〜R7、即ち、処理部22〜28から出力される全ての読出要求信号R1〜R7が入力される。そして、第4DMAC32dは、3つの優先レベルが設定され、各優先レベルには要求信号R1〜R7のうちの少なくとも1つに応じたチャネル番号が設定されている。更に、第4DMAC32dは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。
【0039】
図3に示すように、第1DMAC32aは、優先順位制御部41、パラメータ選択部42、プロトコル制御部43、ラッチ部44,45を含む。
優先順位制御部41は、各処理部21〜27から出力される要求信号W0〜W6に基づいて、設定された情報に従って選択した1つの要求信号のチャネル番号をパラメータ選択部42とプロトコル制御部43に出力する。また、優先順位制御部41は、選択したチャネル番号に応じた要求有効信号をプロトコル制御部43に出力する。パラメータ選択部42は、各処理部21〜27から出力されるパラメータPa0〜Pa6のうち、チャネル番号に対応する処理部から出力されるパラメータを選択し、その選択したパラメータを転送パラメータPDaとして出力する。
【0040】
プロトコル制御部43は、要求有効信号に基づいて、メモリコントローラ34に対する転送要求信号SDaを出力する。この転送要求信号SDaは、要求信号に対するチャネル番号を含む。ラッチ部44は、プロトコル制御部43から出力される転送要求信号SDaを保持する。
【0041】
また、プロトコル制御部43は、要求有効信号に基づいて応答信号を出力する。この応答信号は、各要求信号、即ち各処理部21〜27に対応し、優先順位制御部41により選択されたチャネル番号の処理部21〜27に対応する応答信号が、要求を受け付けた旨、即ち、DMAチャネルによる転送を許可する信号となる。ラッチ部45は、プロトコル制御部43から出力される応答信号をラッチして、そのラッチレベルに応じ各処理部21〜27に対する応答信号CW0〜CW6を出力する。
【0042】
第2DMAC32bは、第1DMAC32aと同様に構成され、各処理部21〜27から出力される要求信号W0〜W6に基づいて、選択したチャネル番号を含む転送要求信号SDbを出力する。また、第2DMAC32bは、各処理部21〜27から出力されるパラメータPa0〜Pa7のうち、選択したチャネル番号に対応するパラメータを転送パラメータPDbとして出力する。また、第2DMAC32bは、選択したチャネル番号に基づいて、応答信号CW0〜CW6を出力する。
【0043】
第3DMAC32cは、第1DMAC32aと同様に構成され、各処理部22〜28から出力される要求信号R1〜R7に基づいて、選択したチャネル番号を含む転送要求信号SDcを出力する。また、第3DMAC32cは、各処理部22〜28から出力されるパラメータPa1〜Pa8のうち、選択したチャネル番号に対応するパラメータを転送パラメータPDcとして出力する。また、第4DMAC32dは、選択したチャネル番号に基づいて、応答信号CR1〜CR7を出力する。
【0044】
第4DMAC32dは、第3DMAC32cと同様に構成され、各処理部22〜28から出力される要求信号R1〜R7に基づいて、選択したチャネル番号を含む転送要求信号SDdを出力する。また、第4DMAC32dは、各処理部22〜28から出力されるパラメータPa1〜Pa8のうち、選択したチャネル番号に対応するパラメータを転送パラメータPDdとして出力する。また、第4DMAC32dは、選択したチャネル番号に基づいて、応答信号CR1〜CR7を出力する。
【0045】
図4に示すように、優先順位制御部41は、設定されたレベルに対応する複数(本実施形態では3つ)のレベル内調停部51a〜51cを有する。本実施形態において、第1レベル内調停部51aは1番目の優先度、即ち最も高い優先度に設定され、第2レベル内調停部51bは2番目の優先度に設定され、第3レベル内調停部51cは3番目の優先度、即ち最も低い優先度に設定されている。
【0046】
各レベル内調停部51a〜51cには、それぞれ書込要求信号W0〜W6、即ち、処理部21〜27から出力される全ての書込要求信号W0〜W6が入力される。また、各レベル内調停部51a〜51cには、それぞれ第1イネーブル信号ENa1〜ENc1が入力される。第1イネーブル信号ENa1〜ENc1は、それぞれのレベル内調停部51a〜51cが出力したチャネル番号に対してバス使用権が確定したか否かを示す。各レベル内調停部51a〜51cは、第1イネーブル信号ENa1〜ENc1に基づいて、それぞれが出力したチャネル番号についてバス使用権が確定した場合に、所定の方式(本実施形態ではラウンドロビン方式)により優先度を変更する。
【0047】
各レベル内調停部51a〜51cには、それぞれ信号選択情報が格納されている。信号選択情報は、少なくとも1つのチャネル番号を含む。また、信号選択情報は、それぞれのレベル内調停部51a〜51cにおいて、調停の優先度が設定されている。各レベル内調停部51a〜51cは、それぞれ設定されたチャネル番号に対応する書込要求信号の調停を行い、要求の有無を示す有効信号SE1〜SE3を生成する。そして、各レベル内調停部51a〜51cは、イネーブル信号(確定信号)に応答して調停結果に応じたチャネル番号を出力する。そして、各レベル内調停部51a〜51cは、上記の第1イネーブル信号ENa1〜ENc1に基づいて、各信号選択情報の優先度を変更する。
【0048】
優先順位制御部41は、設定されたレベルに対応する2つの優先フラグ生成部52a,52bを有している。各優先フラグ生成部52a,52bは、要求信号が競合する場合に、それぞれ対応するレベルの要求信号を優先するか、他のレベルの要求信号を優先するかを示す優先フラグを生成する。従って、最下位以外のレベルを優先しない場合、自動的に最下位のレベルの要求信号が選択されるため、最下位以外のレベルに対応して優先フラグ生成部が設けられている。
【0049】
優先フラグ生成部52aには、第1イネーブル信号ENa1及び第2イネーブル信号ENa2が入力される。第1イネーブル信号ENa1は、優先フラグ生成部52aが対応するレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。第2イネーブル信号ENa2は、他のレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。即ち、優先フラグ生成部52aは、第1イネーブル信号ENa1により当該優先レベルのチャネル番号について使用権が確定したことを確認し、第2イネーブル信号ENa2により他のレベルのチャネル番号について使用権が確定したことを確認する。第1優先フラグ生成部52aは、最上位の優先レベルに対応する。従って、第1優先フラグ生成部52aは、自身のレベルに対応するチャネル番号についてバス使用権が確定したか、自身より低いレベルのチャネル番号についてバス使用権が確定したかを判断する。優先フラグ生成部52aは、カウント機能を有し、それぞれバス使用権が確定した回数をカウントする。そして、優先フラグ生成部52aは、それぞれのカウント値に基づいて、優先フラグSP1を生成する。
【0050】
優先フラグSP1は、例えば2値の信号であり、第1の値(例えば「0」)の場合に、当該レベルのチャネル番号が優先であることを示し、第2の値(例えば「1」)の場合に、他のレベルのチャネル番号が優先であることを示す。
【0051】
第2優先フラグ生成部52bには、第1優先フラグ生成部52aと同様に、第1イネーブル信号ENb1及び第2イネーブル信号ENb2が入力される。第1イネーブル信号ENb1は、優先フラグ生成部52bが対応するレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。第2イネーブル信号ENb2は、他のレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。第2優先フラグ生成部52bは、第1イネーブル信号ENb1及び第2イネーブル信号ENb2に基づいて、優先フラグSP2を生成する。
【0052】
上記したように、第1優先フラグ生成部52aは、自身のレベル(最上位レベル)を優先するか、他のレベル即ち自身より下位のレベルを優先するかを示す優先フラグSP1を生成する。同様に、第2優先フラグ生成部52bは、自身のレベルを優先するか他のレベルを優先するかを示す優先フラグSP2を生成する。他のレベルについて、最上位のレベルについては、第1優先フラグ生成部52aに入力される第1イネーブル信号ENa1により示されている。従って、第2優先フラグ生成部52bは、自身のレベルを優先するか、自身より下位のレベルを優先するかを示す優先フラグSP2を生成する。
【0053】
優先順位制御部41は、設定されたレベルに対応する2つのレベル間調停部53a,53bを有している。
第1レベル間調停部53aには、第1レベル内調停部51aから出力される有効信号SE1と、第1優先フラグ生成部52aから出力される優先フラグSP1と、オア回路56の出力信号SE21が入力される。オア回路56には、第2レベル内調停部51bから出力される有効信号SE2と、第3レベル内調停部51cから出力される有効信号SE3が入力される。オア回路56は、両有効信号SE2,SE3を論理和演算して合成信号SE21を生成する。この合成信号SE21は、第2レベル内調停部51b及び第3レベル内調停部51cのうちの少なくとも一方について有効となる要求信号が入力されていることを示す。つまり、合成信号SE21は、レベル間調停部53aの設定レベルに対して、そのレベルよりも下位のレベルについて有効な要求信号があることを示す有効信号である。
【0054】
第1レベル間調停部53aは、両有効信号SE1,SE2のうちの何れか一方が有効な要求があることを示す場合、その有効な要求があることを示す有効信号をレベル間調停信号SA1として出力する。また、第1レベル間調停部53aは、両有効信号SE1,SE2がともに有効な要求であることを示す、つまり有効信号SE1,SE2が競合している場合に、優先フラグSP1に従って何れか一方を選択し、その選択した有効信号をレベル間調停信号SA1として出力する。つまり、第1レベル間調停部53aは、優先フラグSP1に従って、自己のレベルを優先する場合には有効信号SE1を選択し、自己のレベルを優先しない、即ち他のレベルを優先する場合には有効信号SE2を選択する。
【0055】
図5は、第1レベル間調停部53aの動作説明図である。同図において、「優先フラグ」は第1優先フラグ生成部52aから出力される優先フラグSP1を示し、「有効信号1」は第1レベル内調停部51aから出力される有効信号SE1を示し、「有効信号2」は第2レベル内調停部51bから出力される有効信号SE2を示す。「0」の「優先フラグ」は上位側レベルを優先することを示し、「1」の「優先フラグ」は下位側レベルを優先することを示す。「1」の「有効信号1」「有効信号2」は、設定されたDMAチャネルからの要求があることを示し、「0」は要求がないことを示す。
【0056】
従って、「有効信号1」「有効信号2」がともに「1」の場合は、レベル間において要求が競合していることを示す。この場合、レベル間調停部53aは、選択結果に示すように、「0」の優先フラグに従って「有効信号1」を選択し、「1」の優先フラグに従って「」有効信号2」を選択する。
【0057】
同様に、第2レベル間調停部53bには、第2レベル内調停部51bから出力される有効信号SE2と、第2優先フラグ生成部52bから出力される優先フラグSP2と、第3レベル内調停部51cから出力される有効信号SE3が入力される。第2レベル間調停部53bは、優先フラグSP2に従って、両有効信号SE2,SE3のうちの何れか一方を選択し、選択した有効信号をレベル間調停信号SA2として出力する。
【0058】
各レベル間調停部53a,53bから出力されるレベル間調停信号SA1,SA2は、チャネル確定部54に入力される。このチャネル確定部54には、各レベル内調停部51a〜51cから出力されるチャネル番号SN1〜SN3が入力される。チャネル確定部54は、レベル間調停信号SA1,SA2に基づいて、各チャネル番号SN1〜SN3のうちの1つに対してバス使用権を確定し、確定したチャネル番号CNaを出力する。このチャネル番号CNaは、図2に示すメモリコントローラ34に供給される。
【0059】
図6は、チャネル確定部54の動作説明図である。同図において、「レベル間調停信号1」は第1レベル間調停部53aから出力される調停信号SA1を示し、「レベル間調停信号2」は第2レベル間調停部53bから出力される調停信号SA2を示し、「有効信号3」は第3レベル内調停部51cから出力される有効信号SE3を示す。「1」の「レベル間調停信号」は対応する優先レベルのチャネル番号が有効、即ち要求があることを示す。
【0060】
従って、上位レベル側の「レベル間調停信号」が「1」の場合に、その上位側レベルのチャネル番号に対してバスの使用権を確定する。そして、各「レベル間調停信号」が「0」の場合に、下位側レベル、即ち最下位レベルのチャネル番号に対してバスの使用権を確定する。
【0061】
更に、チャネル確定部54は、各チャネル番号SN1〜SN3に対してバス使用権を確定したか否かを示すイネーブル信号ENa1〜ENc1を生成する。各イネーブル信号ENa1〜ENc1は、それぞれ対応するレベルのレベル内調停部51a〜51cに出力される。
【0062】
第2のレベルに対応するイネーブル信号ENb1と第3のレベル(最下位レベル)に対応するイネーブル信号ENc1は、オア回路57に入力される。オア回路57は、両信号ENb1,ENc1を論理和演算して生成した信号を最上位レベルに対応する第2イネーブル信号ENa2として出力する。また、第3のレベルに対応するイネーブル信号ENc1は、第2のレベルについて、イネーブル信号ENb1に対して他のレベルのチャネル番号を確定したことを示す。従って、チャネル確定部54から出力される第3のレベルに対応するイネーブル信号ENc1は、第2のレベルにおいて他のレベルのチャネル番号を確定したことを示す第2イネーブル信号ENb2として優先フラグ生成部52bに入力される。
【0063】
次に、レベル内調停部51aの構成を説明する。
図7に示すように、レベル内調停部51aは、判定部61、選択部62、情報記憶部63、並び替え部64を有する。判定部61には所定数の要求信号(本実施形態では、すべての要求信号W0〜W6)が入力される。また、判定部61には、情報記憶部63に記憶された設定情報が入力される。
【0064】
情報記憶部63は、複数(n個)のレジスタ631 〜63n を含み、各レジスタ631 〜63n にはそれぞれ設定情報又は非設定情報が記憶される。設定情報は判定部61に入力される要求信号W0〜W6のうち、当該レベル内調停部51aに割り当てられた要求信号を出力するDMAチャネル(処理部)のチャネル番号であり、非設定情報はチャネル番号が設定されていないことを示す値である。情報記憶部63はレジスタ631 〜63n により構成されているため、複数のレジスタに同一値のチャネル番号を設定可能である。この設定情報及び非設定情報は、図2に示すCPU36により選択部62を介して書き込まれる。
【0065】
CPU36は、電源投入時の初期化処理や、設定情報であるチャネル番号を設定チャネル値とする。各レジスタ631 〜63n は、それぞれ記憶した情報(値)を出力する。
判定部61は、サービス間隔(バスの使用を許可する期間)毎に、各要求信号W0〜W6に基づいて、レベル内調停部51aの優先レベルに設定されたDMAチャネルによるバス使用権の要求があるか否かを判断する。そして、判定部61は、要求がある場合にはそのDMAチャネルのチャネル番号SN1と、要求があることを示す(例えばHレベル)有効信号SE1を出力する。一方、要求がない場合には、その旨を示す(例えばLレベル)有効信号SE1を出力する。
【0066】
詳述すると、判定部61は、各要求信号W0〜W6がバス使用権の要求を示す(例えばHレベル)か否かを判断する。これは、要求信号W0〜W6の論理和演算結果により判断される。判定部61は、要求がある場合に、その要求を示す要求信号のチャネル番号と、各レジスタ631 〜63n から出力される設定チャネル値とを順次比較し、最初に設定チャネル値と一致するチャネル番号を、このレベル内調停部51aにおける調停結果、即ち選択したチャネル番号とする。判定部61は、設定したチャネル番号SN1を出力するとともに、出力するチャネル番号SN1が有効であることを示す有効信号SE1を出力する。また、判定部61は、決定したチャネル番号、即ち要求信号のチャネル番号と最初に一致した設定チャネル値が記憶されたレジスタを示すポインタ情報を並び替え部64に出力する。
【0067】
並び替え部64には、情報記憶部63を構成するすべてのレジスタ631 〜63n に記憶された情報が入力される。並び替え部64は、シフトレジスタであり、判定部61から入力されたポインタ情報が示すレジスタに記憶された情報が最終のレジスタに記憶されるように、情報の並び替えを行い、その結果を選択部62に出力する。例えば、判定部61において、2番目のレジスタ632 に記憶された設定チャネル値と等しいチャネル番号のDMAチャネルからの要求を選択した場合、判定部61は、その2番目のレジスタ632 を示すポインタ情報を出力する。並び替え部64は、そのポインタ情報に従って、3〜n番目のレジスタ633 〜63n に記憶された情報を2〜(n−1)番目のレジスタ632 〜63n-1 のレジスタに記憶するとともに、2番目のレジスタ632 に記憶された情報をn番目のレジスタ63n に記憶されるように、情報をシフトし、そのシフト結果を選択部62に出力する。尚、図ではレジスタ633 を省略している。
【0068】
選択部62には、イネーブル信号ENa1が入力される。選択部62は、図2に示すCPU36から入力される情報(設定情報及び非設定情報)をレジスタ631 〜63n に書き込む。また、選択部62は、イネーブル信号ENa1に基づいて、該信号ENa1がこの優先レベルの要求が確定したことを示す場合に並び替え部64から入力される情報をレジスタ631 〜63n に書き込む。この並び替え部64及び選択部62により、情報記憶部63に記憶したチャネル番号をラウンドロビン方式により並び替え、この優先レベル内の優先順序を変更する。
【0069】
次に、優先フラグ生成部52aの構成を説明する。
図8に示すように、優先フラグ生成部52aは、カウンタ制御部71、選択部72、カウンタ73、フラグ制御部74を有する。カウンタ73は、第1カウンタ73aと第2カウンタ73bとを有する。両カウンタ73a,73bは例えばアップカウンタである。両カウンタ73a,73bには、それぞれカウントアップ値が図2に示すCPU36から格納される。第1カウンタ73aと第2カウンタ73bにそれぞれ格納されるカウントアップ値は、上位側レベル内調停部即ち第1レベル内調停部51aと、下位側レベル内調停部即ち第2レベル内調停部51bの優先順位の比に応じた値である。それぞれのカウントアップ値は、例えば、「4」,「3」である。両カウンタ73a,73bは、カウンタ制御部71から出力されるカウントアップ信号に応答してカウントアップ(+1)する。そして、各カウンタ73a,73bは、それぞれカウント値がカウントアップ値と一致すると一致信号をカウンタ制御部71に出力するとともに、カウント値をクリア(=0)する。
【0070】
カウンタ制御部71には、第1イネーブル信号ENa1と第2イネーブル信号ENa2が入力される。カウンタ制御部71は、第1イネーブル信号ENa1に応答して第1カウンタ73aにカウントアップ信号を出力し、第2イネーブル信号ENa2に応答して第2カウンタ73bにカウントアップ信号を出力する。第1イネーブル信号ENa1は、レベル間で要求が競合した場合に上位側レベル、即ち第1レベル内調停部51aの優先レベルのチャネル番号を確定したことを示し、第2イネーブル信号ENa2は、レベル間で要求が競合した場合に下位側レベル、即ち第1レベル内調停部51aより下位の優先レベルのチャネル番号を確定したことを示す。従って、第1カウンタ73aのカウント値は、調停によって上位側レベルの要求を確定した回数を示し、第2カウンタ73bのカウント値は調停によって下位側レベルの要求を確定した回数を示す。
【0071】
カウンタ制御部71は、両カウンタ73a,73bから出力される一致信号に基づいてフラグ制御信号をフラグ制御部74に出力する。フラグ制御部74は、フラグ制御信号に応答して優先フラグSP1を生成する。詳述すると、カウンタ制御部71は、第1イネーブル信号ENa1に応答して第1カウンタ73aをカウントアップさせている間、フラグ制御信号によりフラグ制御部74から上位レベルを優先する優先フラグ(例えば値「0」、Lレベル)を出力させる。このとき、図4に示す第1レベル間調停部53aは、第1レベル内調停部51aと第2レベル内調停部51bからそれぞれ要求があることを示す有効信号SE1,SE2が出力されると、「0」の優先フラグSP1に応答して、上位側レベルの有効信号SE1を選択する。そして、第1レベル間調停部53aは、選択した有効信号を上位側レベルと下位側レベルとの間で要求信号を調停したことを示すレベル間調停信号SA1として出力する。
【0072】
そして、カウンタ制御部71は、第1カウンタ73aが一致信号を出力すると、フラグ制御信号によりフラグ制御部74から下位レベルを優先する優先フラグ(例えば値「1」、Hレベル)を出力させる。すると、図4に示す第1レベル間調停部53aは、第1レベル内調停部51aと第2レベル内調停部51bからそれぞれ要求があることを示す有効信号SE1,SE2が出力されると、「1」の優先フラグSP1に応答して、下位側レベルの有効信号SE2を選択する。そして、第1レベル間調停部53aは、選択した有効信号を上位側レベルと下位側レベルとの間で要求信号を調停したことを示すレベル間調停信号SA1として出力する。
【0073】
従って、このレベル間調停部53aは、優先フラグ生成部52aの第1カウンタ73aと第2カウンタ73bにそれぞれ設定したカウント値の回数だけ上位側レベルの要求と下位側レベルの要求をそれぞれ確定する。即ち、レベル間調停部53aは、第1及び第2カウンタ73a,73bに設定したカウント値の比に応じて、上位側レベルの要求を優先するとともに、下位側レベルの要求を許容する。
【0074】
第2レベル内調停部51bは、第1レベル内調停部51aと同じ構成であるため、図面を省略する。
第2レベル内調停部51bの情報記憶部63には、少なくとも1つのチャネル番号が記憶される。従って、第2レベル内調停部51bにチャネル番号の設定を設定することにより、同チャネル番号のDMAチャネルに対する優先レベルを容易に設定することができる。また、第1レベル内調停部51aに設定したチャネル番号を削除し、同チャネル番号を第2レベル内調停部51bに設定することにより、同チャネル番号のDMAチャネルに対する優先レベルを容易に変更することができる。
【0075】
また、各レベル内調停部51a,51bの情報記憶部63は、それぞれ複数のレジスタから構成されている。従って、例えば第1レベル内調停部51aにおいて同一値のチャネル番号を複数のレジスタに設定する。この場合、同一値のチャネル番号を設定したレジスタの数だけ、同チャネル番号のDMAチャネルに対してバス使用権が与えられる。即ち、設定するレジスタの数に応じて、同一レベル内において優先度を上げることができる。
【0076】
同一値のチャネル番号の設定は、異なる優先レベルについても行うことができる。即ち、第1レベル内調停部51aと第2レベル内調停部51bに同じ値のチャネル番号を設定する。この場合、上記と同様に、設定したレジスタの数だけそのチャネル番号のDMAチャネルにバス使用権が与えられる。
【0077】
第3レベル内調停部51cは、第1レベル内調停部51aと同じ構成であるため、図面を省略する。
この第3レベル内調停部51cについても、第2レベル内調停部51bと同様のことがいえる。即ち、各レベル内調停部51a〜51cに対してチャネル番号を設定することにより、優先レベルを容易に設定することができる。また、設定したチャネル番号を変更することにより、優先レベルを容易に変更することができる。更に、その時に動作しない処理部について、第1〜第3レベル内調停部51a〜51cの何れにもチャネル番号を設定しないことにより、同チャネル番号のDMAチャネルに対してバス使用権を許容しない。即ち、必要としないDMAチャネルに対してリソースであるバス使用権を設定しないため、必要とするDMAチャネルに対してバス使用権を従来に比べて多く与えることができる。
【0078】
そして、第2優先フラグ生成部52bは、第1優先フラグ生成部52aと同じ構成であるため、図面を省略する。第2優先フラグ生成部52bの第1及び第2カウンタ73a,73bには、第1優先フラグ生成部52aと同様に、上位側レベルの要求と下位側レベルの要求を確定する値が格納されている。従って、図4に示すように、この第2優先フラグ生成部52bが生成する優先フラグSP2を入力する第2レベル間調停部53bは、レベル間調停部53aは、第1及び第2カウンタ73a,73bに設定したカウント値の比に応じて、上位側レベルの要求を優先するとともに、下位側レベルの要求を許容する。優先レベルが高く設定されたDMAチャネルの処理部から連続的にバス使用権の要求がある場合でも、優先レベルが最も低く設定された第3レベル内調停部51cに設定されたチャネル番号のDMAチャネルについてもバス使用権を確定する。即ち、各レベル内調停部51a〜51cに設定されたチャネル番号のDMAチャネルのすべてに対してバス使用権を確実に確定することができる。
【0079】
上記のレベル内調停部の処理の流れを図9に従って説明する。
先ず、各レベル内調停部に対してDMAチャネルの割当て、即ちチャネル番号の設定が行われる(ステップ81)。次に、レベル間調停部は、転送中、即ちバスが使用中か否かを判断し(ステップ82)、転送中の場合には転送終了まで待つ。転送が終了すると、レベル間調停部は、割当てチャネルの要求があるか否かを判断し(ステップ83)、要求が無い場合にはステップ82に戻る。
【0080】
チャネルの要求がある場合、チャネル内調停部は要求チャネルの検索を行い(ステップ84)、優先チャネルを決定する(ステップ85)。次に、レベル内調停部は、レベル内調停部に対して有効信号の出力がディセーブル(禁止)されているか否かを判断し(ステップ86)、ディセーブルされていない場合に有効信号及びチャネル番号を出力する(ステップ87)。次に、レベル内調停部は、当グループが選択されたか否か、即ち当該レベルのチャネル番号に対してバスの使用権が確定されたか否かを判断し(ステップ88)、選択された場合にチャネル番号の並び替えを行う(ステップ89)。そして、1回のサービスについての全ての処理が終了したか否かを判断し(ステップ90)、処理終了によりステップ82に戻って次の要求を待つ。
【0081】
上記の優先フラグ生成部が実行する処理の流れを図10に従って説明する。
先ず、優先フラグ生成部に対して優先フラグ初期値、優先比率(カウント値)が設定される(ステップ91)。次に、優先フラグ生成部は、優先フラグ側、即ちその時に優先しているレベル(上位側レベル又は下位側レベル)について要求受付があるか否かを判断し(ステップ92)、要求受付がある場合に要求が競合しているか否かを判断する(ステップ93)。次に、優先フラグ生成部は、競合している場合に、優先フラグ側のカウント値をダウンカウントする(ステップ94)。
【0082】
次に、優先フラグ生成部は、カウント値がゼロ「0」か否か、即ち設定された数の要求を受け付けたか否かを判断し(ステップ95)、カウント値が「0」の場合に優先フラグ側の優先比率、即ちカウント値を再設定する(ステップ96)。次に、優先フラグ生成部は優先フラグを反転する、即ち優先するレベルを切り換えるように優先フラグを変更する(ステップ97)。そして、1回のサービスについての全ての処理が終了したか否かを判断し(ステップ98)、処理終了によりステップ82に戻って次の要求を待つ。
【0083】
従って、図9に示す処理を記述したプログラムを記憶し、そのプログラムを実行する処理部によりレベル内調停部を構成することもできる。同様に、図10に示す処理を記述したプログラムを記憶し、そのプログラムを実行する処理部により優先フラグ生成部を生成することもできる。
【0084】
次に、転送モニタ回路33を説明する。
図11に示すように、転送モニタ回路33は、モニタ情報を記憶する情報記憶部33aと、情報記憶部33aを制御する制御部33bを含む。
【0085】
情報記憶部33aは、レジスタ101、チャネル履歴回路102、加算器103、レジスタ104、レジスタ105、チャネル選択部106、アンド回路107を含む。
レジスタ101には、図3に示すDMAC32aから出力されるチャネル番号CNaが入力される。また、レジスタ101には、イネーブル信号MENが入力される。本実施形態のレジスタ101は、イネーブル信号MENに応答して、供給されるチャネル番号CNaを記憶し、記憶したチャネル番号を出力する。
【0086】
チャネル履歴回路102は、複数のチャネル番号を記憶可能に構成されている。例えば、チャネル履歴回路102はシフトレジスタのように構成され、チャネル番号を順次記憶する。チャネル番号は、図2に示すDMAC32aが調停する処理部21〜27の要求に対応している。従って、DMAC32aにより選択されたチャネル番号を順次記憶することは、処理部21〜27に対してDMAチャネルを設定するサービスの履歴を記憶することである。
【0087】
また、チャネル履歴回路102は、記憶した複数のチャネル番号を並列的に読み出すことが可能に構成されている。つまり、チャネル履歴回路102は、直列的に発生するチャネル番号を順次記憶し、記憶した複数のチャネル番号を並列的に読み出すことが可能に構成されている。この構成により、記憶した複数のチャネル番号を容易に読み出すことができる。
【0088】
加算器103には、図3に示す各DMAC32aから出力される転送パラメータPDaが供給される。また、この加算器103には、レジスタ104の出力データが供給される。加算器103は、転送パラメータPDaに含まれる転送データ量をレジスタ104の出力データに加算し、その加算結果を出力する。レジスタ104は、加算器103の出力データを記憶する。従って、レジスタ104は、転送データ量を累積加算した演算結果を記憶し、その演算結果(累積値)を出力する。つまり、転送モニタ回路33は、転送データ量を累積演算する演算器を含む。また、レジスタ104は、クリア信号Tcに応答して記憶値をクリア(=0)にする。
【0089】
レジスタ105は、更新トリガ信号Tuに応答して、レジスタ104の出力データ、即ち転送データ量の累積値を記憶する。そして、レジスタ105は、記憶した累積値(データ量モニタ値)を出力する。
【0090】
チャネル選択部106には、図3に示すDMAC32aから出力される応答信号CW0〜CW6が供給される。チャネル選択部106は、応答信号CW0〜CW6に基づいて、要求に対するチャネル番号が確定しているときに所定レベル(本実施形態ではHレベル)の確定信号CKを出力する。
【0091】
アンド回路107は、確定信号とモニタ期間信号MKを論理演算(論理積演算)して上記のイネーブル信号MENを生成し、そのイネーブル信号MENを出力する。モニタ期間信号MKは、後述するが、転送状態をモニタする期間Hレベルとなる。従って、モニタ期間において、DMAチャネルのチャネル番号が確定する毎にイネーブル信号MENが出力される。
【0092】
上記のレジスタ101,104は、イネーブル信号MENに応答してそれぞれ情報を記憶する。従って、チャネル番号が確定する毎に、そのチャネル番号と、チャネル番号におけるデータ転送量を累積した累積値を記憶する。
【0093】
上記したように、情報記憶部33aは、DMAC32aの調停結果であるチャネル番号、及びDMAC32aにより制御されるDMAチャネルにおけるデータ転送量を記憶する。つまり、図11に示す情報記憶部33aは、DMAC32aに対応するものである。そして、転送モニタ回路33は、他のDMAC32b〜32dに対応する情報記憶部を有している。これらの情報記憶部は、図11に示す情報記憶部33aと同様に構成されるため、図面を省略する。
【0094】
制御部33bは、開始トリガ選択部108、終了トリガ選択部109、更新トリガ選択部110、モニタ制御部111、比較回路112、分周回路113、CPUインタフェース114を含む。
【0095】
開始トリガ選択部108は、モニタを開始する開始トリガ信号Tsを生成する。本実施形態では、開始トリガ選択部108には、垂直同期信号Vs、DMAチャネル起動信号DWA、ソフトウェアトリガ信号SF1が入力される。開始トリガ選択部108は、入力信号のうち、設定値に応じた信号を選択し、その選択した信号に基づいて開始トリガ信号Tsを生成する。
【0096】
垂直同期信号Vsは、同期信号Syncに含まれ、図1に示す撮像部11から読み出した1つのフレームの画像データの開始を示すパルス信号である。
DMAチャネル起動信号DWAは、各処理部21〜28が出力する信号であり、設定されたDMAチャネルによりデータ転送を開始するための信号である。
【0097】
ソフトウェアトリガ信号SF1は、図2のCPU36から供給される信号である。転送モニタ回路33は、調停回路31の動作確認、動作調整を行うために、調停回路31の動作をモニタするものである。つまり、図1に示すデバッグ装置200を接続したときに有効な回路であり、CPU36から供給する信号は、デバッグ装置200から供給する信号である。従って、デバッグ装置200からモニタの開始を設定することができるため、任意の時点(モニタしたいタイミング)からのモニタ情報を容易に取得することができる。
【0098】
終了トリガ選択部109は、モニタを終了する終了トリガ信号Teを生成する。本実施形態では、終了トリガ選択部109には、エラー通知信号ERR、DMAチャネル停止信号DST、リミット判定信号LTが入力される。終了トリガ選択部109は、入力信号のうち、設定値に応じた信号を選択し、その選択した信号に基づいて終了トリガ信号Teを生成する。
【0099】
エラー通知信号ERRは、各処理部21〜28が出力する信号である。処理部21〜28のうちのいくつかは、同期信号Syncに基づいて、1つのフレームの画像データに対する処理を、1つのフレームを転送する期間内で処理しなければならない。例えば、画像データをメモリ14に格納するキャプチャ処理は、同期信号Sync(垂直同期信号Vs)に基づいて転送される画像データを、次の垂直同期信号Vsが入力されるまでにメモリ14に格納しなければデータの取りこぼしとなる。また、表示処理は、同期信号Sync(垂直同期信号Vs)に基づいて1つのフレームの画像データを表示部13に出力しなければ、表示の乱れを発生する。
【0100】
これらの異常は、該当する処理部が処理を実行するフレーム期間のみならず、以前の他の処理部の処理の遅延により発生する場合もある。従って、各処理部21〜28は、規定時間(1フレーム期間)内に所定量(1フレーム分の画像データ)を処理できない場合に、エラー通知信号ERRを出力する。そして、エラー通知信号ERRに応じてモニタを終了し、記憶されたモニタ情報を読み出すことにより、エラーが発生した処理部、エラーが発生するまでにDMAチャネルを利用した処理部、転送データ量を確認することができる。その確認結果により、処理部の優先順位や、DMAC32a〜32dに割り当てる処理部の組み合わせを調整することにより、異常発生を防ぐことができるようになる。
【0101】
リミット判定信号LTは、比較回路112から出力される。比較回路112には、レジスタ104から出力される信号、即ち累積データ量が供給される。また、比較回路112はCPUインタフェース114に接続され、図2に示すCPU36からリミット値LMが設定される。このリミット値LMは、更新期間内におけるデータ転送量(合計値)の最大値であり、転送データ量の累積値がこのリミット値を越える場合には、DMAチャネルの転送が処理部の処理に影響する場合が考えられる。このため、リミット値LMを越える転送データ量が発生したときに、モニタを終了するためのものである。
【0102】
DMAチャネル停止信号DSTは、各処理部21〜28が出力する信号であり、設定されたDMAチャネルにおけるデータ転送を停止するための信号である。DMAチャネル停止信号によりモニタを終了することにより、そのDMAチャネルを利用したDMA転送中に発生する状態をモニタすることができるようになる。
【0103】
モニタ制御部111は、開始トリガ選択部108から出力される開始トリガ信号Tsと、終了トリガ選択部109から出力される終了トリガ信号Teに基づいて、モニタする期間を示すモニタ期間信号MKを出力する。本実施形態のモニタ制御部111は、開始トリガ信号Tsに応じてHレベルのモニタ期間信号MKを出力し、終了トリガ信号Teに応答してLレベルのモニタ期間信号MKを出力する。このモニタ期間信号MKと、チャネル選択部106から出力される確定信号CKとに基づいて、上記のイネーブル信号MENが生成される。
【0104】
また、モニタ制御部111は、終了トリガ信号Teに基づいて、割り込み信号IRを出力する。この割り込み信号IRは、CPUインタフェース114を介して図2のCPU36に供給される。従って、CPU36つまり図1に示すデバッグ装置200は、モニタの終了通知を受け取ることができる。
【0105】
更新トリガ選択部110には、分周回路113から出力される分周信号DH、ソフトウェアトリガ信号SF2が入力される。更新トリガ選択部110は、入力信号のうち、設定値に応じた信号を選択し、その選択した信号に基づいて更新トリガ信号Tuを生成する。
【0106】
更新トリガ信号Tuは、チャネル履歴回路102とレジスタ105に供給される。チャネル履歴回路102は、更新トリガ信号Tuに応答してチャネル履歴を更新する。レジスタ105は、更新トリガ信号Tuに応答して、保持する累積値を更新する。
【0107】
また、更新トリガ選択部110は、選択した信号に基づいて、クリア信号Tcを生成する。クリア信号Tcはレジスタ104に供給される。レジスタ104は、クリア信号Tcに応答してレジスタ内容をクリア(=0)する。つまり、レジスタ104は、クリア信号Tcに応答して累積値をリセットする。
【0108】
分周回路113は、水平同期信号Hsに基づいてを設定された分周比にて分周して分周信号DHを生成する。水平同期信号Hsは同期信号Syncに含まれ、フレームに含まれる1つのライン(水平ライン)の画像データの開始を示すパルス信号である。分周回路113は、設定された分周値(分周比)にて水平同期信号Hsを分周して分周信号DHを生成する。分周値(分周比)は、モニタ情報を更新する期間に応じて設定される。分周値が小さいと、モニタ情報を更新する回数が増える(更新期間が短)ため、DMAチャネルの設定等が判りやすくなる。また、分周値が大きいと、モニタ情報を更新する回数が少なくなる(更新期間が長)ため、例えばフレームを跨る長期間のモニタが可能となる。
【0109】
ソフトウェアトリガ信号SF2は、上記の信号SF1と同様に、図2のCPU36から供給される信号である。従って、デバッグ装置200からモニタ情報の更新タイミングを設定することができるため、任意の期間のモニタ情報を容易に取得することができる。
【0110】
上記のチャネル履歴回路102は、例えば図12に示すように、制御回路121、履歴制御イネーブルレジスタ122、アンド回路123、複数の記憶部124(1)〜124(n)を含む。制御回路121は、初期化信号I1とDMAチャネル停止信号DSTとに基づいて、履歴制御イネーブルレジスタ122の内容を変更する。本実施形態において、履歴を更新するときにレジスタ122に第1の所定値(例えば1)を書き込み、履歴を更新しないときに第2の所定値(例えば0)を書き込む。レジスタ122は、その内容に応じた信号を出力する。また、制御回路121は、エラー通知信号ERRに応答して履歴を更新しないようにレジスタ122に第2の所定値を書き込む。
【0111】
アンド回路123は、レジスタ122の出力信号と確定信号CKに基づいて更新信号U1を生成する。
各記憶部124(1)〜124(n)は、直列接続され、初段の記憶部124(1)にチャネル番号CNaが入力される。
【0112】
記憶部124(1)は、選択回路125(1)とレジスタ126(1)を含む。選択回路125(1)には、初期値とチャネル番号CNaが入力される。選択回路125(1)は、初期化制御信号I2に応答して初期値を選択して出力し、更新信号に応答してチャネル番号CNaを選択して出力する。レジスタ126(1)は、選択回路125(1)から出力される信号(値)を記憶し、その記憶値と等しい信号(値)を出力する。
【0113】
各記憶部124(2)〜124(n)は、記憶部124(1)と同様に、それぞれ選択回路125(2)〜125(n)とレジスタ126(2)〜126(n)を含む。
従って、各記憶部124(1)〜124(n)は、初期化制御信号I2に応答して供給される初期値を記憶する。初期値は、例えばゼロ(0b)である。尚、「b」は値がバイナリ形式(2進数形式)の値であることを示す。これにより、全ての記憶部に、(1)〜124(n)が同時に記憶される。
【0114】
各記憶部124(1)〜124(n)は、更新信号U1に応答して、入力値を保持する。これにより、更新信号U1が供給される毎に、入力されるチャネル番号CNaを記憶するとともに、記憶したチャネル番号、即ちチャネル履歴をシフトする。
【0115】
従って、図13の左端に示すように、更新信号U1が供給されると、記憶部124(1)はその時のチャネル番号(000001b)を記憶する。次に更新信号U1が供給されると、(000001b)を次の記憶部124(2)にシフトし、記憶部124(1)に新たなチャネル番号(000011b)を記憶する。
【0116】
また、各記憶部124(1)〜124(n)の出力端子は図11に示すCPUインタフェース114に接続されている。従って、図2に示すCPU36、即ち図1に示すデバッグ装置200は、チャネル履歴回路102に記憶された複数のチャネル番号(チャネル履歴)を読み出すことができる。
【0117】
次に、上記のように構成された転送モニタ回路33の動作を説明する。
一例として、図11に示す開始トリガ選択部108は、垂直同期信号Vsを選択して開始トリガ信号Tsを出力し、終了トリガ選択部109はエラー通知信号ERRを選択して終了トリガ信号Teを出力し、分周信号DHを選択して更新トリガ信号Tuを出力する。
【0118】
転送モニタ回路33は、Hレベルの開始トリガ信号Ts(Vs)に応答してモニタを開始し、更新トリガ信号Tu(DH)に応答してモニタ情報を更新する。そして、転送モニタ回路33は、エラー通知信号ERRに応答してモニタを終了する。
【0119】
図14において、処理部21の動作期間を「fpm」、処理部23の動作期間を「fcm」、処理部25の動作期間を「frm」、処理部26の動作期間を「fj」、処理部28の動作期間を「fdm」として示している。図中「m」はフレーム番号を示す。つまり、「fp1」は、1つ目のフレームの画像データを処理部21が処理している期間を示している。また、「m」が2桁の場合、1桁目がフレーム番号を、2桁目が処理内容の区別を示している。例えば、「fp11」は、処理部23が1つ目のフレームの画像データを表示部13へ出力するためのデータを生成する処理(カラープロセス1)を示し、「fp22」は処理部23が2つ目のフレームの画像データを、処理部26へ供給するためのデータを生成する処理(カラープロセス2)を示す。
【0120】
図1に示す撮像部11から入力される画像データを表示部13に表示させるための処理と、図示しない操作部(シャッターボタン)の操作に応じて画像データを記憶するための処理は、解像度(記憶する画像データのデータサイズ)等が異なる。また、シャッターボタンを操作して記録準備を行っている場合にも、表示部13への表示が必要である。尚、図14において、「fp21」を示していないのは、操作部に対する操作の有無、即ち、シャッターボタンが操作されていない(半押しされていない)状態を示すものである。
【0121】
また、図14において、ハッチングで示した部分は、処理が遅延した期間を示す。この処理の遅延は、例えば、メモリ14に対するアクセスが集中して、データ転送が待たされることに起因する。この結果、データ量がピーク値を越える(データ量についてハッチングで示した部分)ため、処理部21の処理において転送エラーが発生する。
【0122】
この時のモニタ情報に基づいて、処理部23の処理「fc13」と処理部25の処理「fr13」の優先度を上げる。すると、図15に示すように、処理部26に供給するデータを生成する処理「fr22」「fp23」の処理は遅延するものの、データ量がピーク値を越えることがなくなるため、エラーの発生を回避することができる。尚、遅延した処理「fr22」「fp23」は、データを記録する準備のためのデータであり、遅延しても、データの取りこぼしや表示の異常を発生しないため、問題とならない。
【0123】
次に、モニタ機能の動作を図16に示すフローチャートに従って説明する。
先ず、図2のCPU36から各DMAC32a〜32dに対して優先順位が設定される(ステップ131)。転送モニタ回路33は、開始トリガ信号Ts(垂直同期信号Vs)が入力されたか否かを判断する(ステップ132)。
【0124】
開始トリガ信号Tsが入力されると、モニタを開始する(ステップ133)。そして、更新トリガ信号Tu(分周信号DH)が入力されているか否かを判断し(ステップ134)、更新トリガ信号Tuが入力されるとモニタ情報を更新する(ステップ135)。
【0125】
次に、終了トリガ信号Teが入力されているか否かを判断し(ステップ136)、終了トリガ信号Teが入力されていない場合にはステップ134に移行し、終了トリガ信号Teが入力されている場合には処理を終了する。
【0126】
次に、デバッグ処理を図17に示すフローチャートに従って説明する。
先ず、図2のCPU36(又はデバッグ装置200)から各DMAC32a〜32dに対して優先順位の初期値を設する(ステップ141)。そして、モニタを開始する(ステップ142)。即ち、デバッグ装置200から各処理部21〜28が動作するように制御する。
【0127】
そして、図11に示すモニタ制御部111から割り込みが発生すると、エラーが発生したか否かを判断する(ステップ143)。エラーが発生した場合、モニタ情報を解析し(ステップ144)、調整対象チャネルを特定する(ステップ145)。そして、対象チャネルの優先順位を変更し、(ステップ146)、ステップ143に移行する。
【0128】
エラーが発生していない場合、モニタ情報を集計し(ステップ147)、処理を終了するか否かを判断する(ステップ148)。デバッグ処理を継続する場合にはステップ143に移行する。
【0129】
次に、優先順位変更動作を図18に示すフローチャートに従って説明する。
先ず、図2のCPU36から各DMAC32a〜32dに対して優先順位の初期値を設する(ステップ151)。次に、CPU36は、垂直同期信号Vsが入力されたか否かを判断する(ステップ152)。垂直同期信号Vsが入力されると、フレームカウンタをカウントアップする(ステップ153)。そして、フレームカウンタのカウント値に基づいて、次に処理する画像データのフレームが目的のフレームか否かを判断する(ステップ154)。
【0130】
目的のフレームに到達すると、水平同期信号Hsが入力されたか否かを判断する(ステップ155)。水平同期信号Hsが入力されると、太インカウンタをカウントアップする(ステップ156)。そして、ラインカウンタのカウント値に基づいて、次に処理する画像データのラインが目的のラインか否かを判断する(ステップ157)。
【0131】
目的のラインに到達すると、優先順位の設定を変更する(ステップ158)。
例えば、図15に示す例では、2フレーム目の画像データ、つまり操作部(シャッターボタン)が操作された直後のフレームの画像データに対して、(1ライン目から)処理部23,25の優先度を上げる。即ち、CPU36は、操作部が操作された直後のフレームの画像データを処理する期間における処理部23,25の優先度を、全ての期間において高い優先度に設定するのではなく、必要とする期間のみ優先度を変更する。詳しくは、必要とする期間に先立って、優先度を変更するものである。
【0132】
この優先度の変更は、1つのフレームに対するものだけでなく、時間的に離間した複数のフレーム、又は時間的に連続した複数のフレームについて行われる場合がある。つまり、変更するフレーム数、ライン数、変更する優先度がレジスタに書き込まれ、CPU36はそのレジスタを参照して目的とする時期に優先順位の設定を変更する。そして、全ての変更が期間に対する処理が終了する、例えば、シャッターボタンの操作が解除されると、優先順位変更動作を終了する。
【0133】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)転送モニタ回路33は、調停回路31にて制御されるDMAチャネルのチャネル番号と、生成されるDMAチャネルにより転送されるデータのデータ量をモニタ情報として記憶する。そして、転送モニタ回路33は、調停回路31が調停する要求信号を出力する処理部21〜28が動作するタイミングを制御する同期信号Syncや、処理部21〜28から出力されるエラー通知信号ERR、等に基づく期間のモニタ情報を記憶するようにした。その結果、必要とする期間のモニタ情報を取得することができるため、デバッグ装置200を接続して処理部21〜28の動作をデバッグする場合に、モニタ情報に基づいて処理部21〜28から出力される要求信号を調停する調停回路31の状態を調整することができる。
【0134】
(2)転送モニタ回路33は、処理部21〜28が処理する画像データの開始を示す同期信号Syncと、各処理部21〜28から出力されるエラー通知信号ERR、DMAチャネル起動信号・停止信号に基づいてトリガ信号を生成し、そのトリガ信号に基づく期間、モニタ情報を記憶するようにした。その結果、処理部21〜28の動作に応じたモニタ情報を記憶することができる。
【0135】
(3)転送モニタ回路33は、更新トリガ信号Tuに基づいて、チャネル番号の履歴を記憶する。また、転送モニタ回路33は、更新トリガ信号Tuに基づいて、DMAチャネルにて転送されるデータの累積値を更新記憶するようにした。その結果、更新トリガ信号Tuのタイミングでモニタ情報を記憶するため、処理装置12を繰り返し動作させてモニタ情報を記憶させる場合に、同じ期間でモニタすることができ、調停回路31の調整結果を容易に確認することができる。
【0136】
(4)転送モニタ回路33は、処理部21〜28から出力されるエラー通知信号ERRに基づいて終了トリガ信号Teを生成するようにした。その結果、処理部21〜28にエラーが発生するまでのモニタ情報を容易に記憶することができるため、デバッグ装置200を用いてエラーの発生要因を容易に確認することができる。
【0137】
(5)転送モニタ回路33は、データ量の累積値とリミット値とを比較する比較回路112を含み、その比較回路112の出力信号に基づいて終了トリガ信号Teを生成するようにした。その結果、処理部21〜28にエラーが発生するまでのモニタ情報を容易に記憶することができるため、デバッグ装置200を用いてエラーの発生要因を容易に確認することができる。
【0138】
(6)転送モニタ回路33は、CPU36、即ちデバッグ装置200から供給されるソフトウェアトリガ信号SF1,SF2に基づいて開始トリガ信号Ts、更新トリガ信号Tuを生成するようにした。その結果、デバッグ装置200からモニタの開始とモニタ情報の更新を制御することができるため、任意の期間のモニタ情報を容易に取得することができる。
【0139】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態では、図11に示す転送モニタ回路33が、図2に示すDMAC32a〜32dに対応する情報記憶部を含むとしたが、複数のDMACに対して1つの情報記憶部を含むとしてもよい。同じ画像データを繰り返し入力した場合、その画像データに対する各処理部21〜28の処理は、毎回同じである。つまり、処理部21の動作が繰り返し再現される。従って、モニタするDMACを順次切り替えるように設定することで、全てのDMACの動作をモニタすることができる。
【0140】
・上記実施形態では、終了トリガ選択部109は、エラー通知信号ERR、DMAチャネル停止信号、リミット判定信号LTのうちから選択した信号に基づいて終了トリガ信号Teを生成するようにしたが、エラー通知信号ERR、DMAチャネル停止信号、リミット判定信号LTに基づいて、例えばオア処理して終了トリガ信号Teを生成するようにしてもよい。
【0141】
・上記実施形態は電子機器としてデジタルスチルカメラについて説明したが、要求信号の調停を行うものであればどの様な電子機器に適用してもよい。電子機器の例として、ファクシミリ装置、プリンタ、複写機、デジタルビデオカメラ、録画装置(ビデオデッキ)、などがある。
【0142】
・上記実施形態は、処理部21〜28を有し、調停回路31は、それら処理部21〜28からの要求信号を調停することとしたが、処理部の数、各処理部が実行する処理、等を適宜変更してもよい。
【0143】
・上記実施形態は、調停回路31は、書込要求信号W0〜W6を調停するDMAC32a,32bを有することとしたが、1つ、又は3つ以上の調停機能部を有する構成としてもよい。同様に、調停回路31は、読出要求信号R1〜R7を調停するDMAC32c,32dを有することとしたが、1つ、又は3つ以上の調停機能部を有する構成としてもよい。
【0144】
・上記実施形態は、各DMAC32a〜32dにそれぞれ3つの優先レベルを設定した、即ちそれぞれ3つのレベル内調停部51a〜51cを有する構成としたが、それぞれ2つ、又は4つ以上の優先レベルを設定する、即ち2つ又は4つ以上のレベル内調停部を有する構成としてもよい。それぞれの設定に応じて、優先フラグ生成部等の回路構成を変更することはいうまでもない。
【0145】
・上記実施形態は、各DMAC32a〜32dにそれぞれ3つの優先レベルを設定した、即ちそれぞれ3つのレベル内調停部51a〜51cを有する構成としたが、それぞれに設定するレベル数を変更してもよい。それぞれの設定に応じて、優先フラグ生成部等の回路構成を変更することはいうまでもない。
【0146】
・上記実施形態において、各レベル内調停部51a〜51cの動作を適宜停止させるようにしてもよい。例えば、動作禁止信号をCPU36から各レベル内調停部51a〜51cに供給する。各レベル内調停部51a〜51cは、第1レベル(例えばHレベル)の動作禁止信号に応答して動作を停止し、第2レベル(例えばLレベル)の動作禁止信号うに応答して調停動作を実行する。このように構成することで、任意のレベルに設定したチャネルの要求の優先度を変更する(優先度を上げる)ことができる。尚、レベル間調停部53a,53bにおいて所定のレベルに対する調停を行わないようにすればよいため、図5に示す判定部61が、信号に応答して有効信号SE1をディスエーブル、即ち有効ではないことを示す信号レベルとするようにしてもよい。
【符号の説明】
【0147】
14 メモリ
21〜28 処理部
31 調停回路
32a〜32d DMAC
33 調停モニタ回路
34 メモリコントローラ
36 CPU
38 共有バス
W0〜W6,R1〜R7 要求信号
【技術分野】
【0001】
複数の処理部とメモリとの間のデータ転送を調停する調停部を含む処理装置に関する。
【背景技術】
【0002】
デジタルスチルカメラ等の電子機器は、データを処理する複数の異なる処理部と、処理に必要なデータを格納するためのメモリを有している。各処理部は、メモリからデータを読み出し、処理後のデータをメモリに書き込む。各処理部は、処理の都合によってメモリをアクセスする、つまりメモリへのアクセスが非同期に発生するため、メモリに対して複数の処理部から同時にアクセスの要求が発生する、つまりアクセス要求が競合する場合がある。この競合を解決するため、電子機器は、メモリに対するアクセスの要求を調停する調停装置を有している。調停方法の1つの例は、各処理部に対応して設定された優先順位に従ってメモリに対するアクセスを許可するものであり、別の例は、各処理部に対して均等にアクセスを許可するものである。
【0003】
電子機器には、一定時間内にデータの転送を終了しなければならない処理部を含むものがある。このような処理部の優先度よりも優先度が高い他の処理部がアクセスを頻繁に行う状況では、データの転送を終了することができなくなる場合が生じる。このため、例えば転送データ量をモニタし、転送データが所定量未満の場合に処理部の優先度を動的に変更する調停装置が提案されている(例えば、特許文献1〜4参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−49479号公報
【特許文献2】特開2003−6139号公報
【特許文献3】特開2005−4563号公報
【特許文献4】特開平9−91194号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、電子機器、例えばデジタルスチルカメラでは、シャッターボタンの操作に対応して順次実行される処理、つまり処理部がメモリをアクセスする順番が決まっているため、シャッターボタンを操作する毎に、転送データが所定量未満になり優先度を変更しなければならない。このため、電子機器のデバッグにおいて、各処理部の優先度等を調整することが考えられる。そして、この調整のために、処理部が転送したデータの量や、調停装置の状態をモニタすることが要求されている。
【0006】
この調停装置で、データ転送を調停する調停部の設定を容易にしうるようにすることを目的とする。
【課題を解決するための手段】
【0007】
本発明の一側面によれば、処理装置は、種類の処理を行う複数の処理部と、前記複数の処理部に接続可能なメモリへ前記複数の処理部から出力される要求信号のうちの1つを各処理部に応じて設定された設定情報に従って選択し、その選択した要求信号を出力する処理部に前記メモリとの間のデータ転送を制御する調停部と、前記調停部にて制御されるDMAチャネルをモニタしたモニタ情報を記憶する転送モニタ回路と、を有し、前記モニタ情報は、前記調停部にて調停されてDMAチャネルを形成するチャネル番号の履歴と、前記DMAチャネルにて転送されるデータ量とを含み、前記転送モニタ回路は、前記処理部の動作状態に応じた期間における前記モニタ情報を記憶する。
【発明の効果】
【0008】
開示の装置は、データ転送を調停する調停部の設定を容易にしうるようにすることができる。
【図面の簡単な説明】
【0009】
【図1】電子機器のブロック回路図である。
【図2】処理装置のブロック回路図である。
【図3】調停回路のブロック回路図である。
【図4】優先順位制御部のブロック回路図である。
【図5】レベル間調停部の動作説明図である。
【図6】チャネル確定部の動作説明図である。
【図7】レベル内調停部のブロック回路図である。
【図8】優先フラグ生成部のブロック回路図である。
【図9】レベル内調停部の動作を説明するためのフローチャートである。
【図10】優先フラグ生成部の動作を説明するためのフローチャートである。
【図11】転送モニタ回路のブロック回路図である。
【図12】チャネル履歴回路のブロック回路図である。
【図13】チャネル履歴回路の動作説明図である。
【図14】転送モニタ回路の動作を示すタイミング図である。
【図15】転送モニタ回路の動作を示すタイミング図である。
【図16】モニタ機能の動作を説明するためのフローチャートである。
【図17】優先順位変更動作を説明するためのフローチャートである。
【図18】デバッグ処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0010】
以下、一実施形態を図面に従って説明する。
図1に示すように、電子機器10は例えばデジタルスチルカメラであり、撮像部11、処理装置12、表示部13、メモリ14を有する。撮像部11は撮像素子(イメージ・センサ)を含む。撮像素子はCCDやCMOSイメージセンサ等である。撮像部11は、例えば、撮像素子と信号処理部と信号生成部を含む。信号生成部は、クロック信号、同期信号を含むタイミング信号を生成し、出力する。撮像素子は、入射する光を電気信号に変換して1フレーム分の画像データを生成する。そして、撮像素子は、タイミング信号に基づいて、各フレームの画像データを出力する。信号処理部は例えばアナログフロントエンドであり、撮像素子から出力されるアナログの画像データをデジタル化し、そのデジタル化した画像データを同期信号Syncに基づいて出力する。同期信号Syncは、1フレームの区切りを示す垂直同期信号と、1ラインの区切りを示す水平同期信号を含む。
【0011】
処理装置12は、同期信号Syncに基づいて動作する複数の処理部を有する。各処理部は、割り当てられた処理に応じて、メモリ14をアクセスする。メモリ14は例えばシンクロナスダイナミックランダムアクセスメモリ(SDRAM)である。処理装置12は、メモリ14に格納されたデータを表示部13に出力する。表示部13は、LCDやELディスプレイ等であり、処理装置12から出力されるデータに基づく画像を表示する。尚、表示部13は、紙等の媒体に画像を表示する所謂印刷装置や、壁面等に画像を表示する所謂プロジェクタなどであってもよい。
【0012】
処理装置12にはデバッグ装置200が接続される。デバッグ装置200は、処理装置12の動作の誤りを見つけて修正したり、処理装置12の動作を調整したりするものであり、例えばインサーキットエミュレータ(ICE)とパーソナルコンピュータ(PC)とを含む。PCには、ICEを介して処理装置12から読み出される各種デバッグ情報が表示される。デバッグ情報は、処理装置12に発生するエラー情報、処理装置12の動作をモニタしたモニタ情報を含む。PCは、作業者(開発者、デバッグ担当者、等)の操作に従って設定値がICE、処理装置12に書き込まれる。この設定値は、処理装置12の動作における設定値、ICEの動作を制御する設定値、を含む。ICEの動作を制御する設定値(ブレークポイント等)を適宜設定することにより、処理装置12の動作を容易に確認することができる。そして、処理装置12の動作をモニタする動作と、そのモニタ結果に応じて変更した設定値を処理装置12に書き込む動作を繰り返すことにより、処理装置12の動作に応じた適切な設定値を設定し、処理装置12の動作状態を改善することができる。
【0013】
図2に示すように、処理装置12は、複数の処理部21〜28を有する。各処理部21〜28は、データを処理するものであり、各処理に応じてメモリ14をアクセスするための要求信号を含む各種信号を出力する。
【0014】
各処理部21〜28の一例を説明する。
第1処理部21はプリプロセス部(前処理部)であり、撮像部11から出力される画像データに対しホワイトバランス等の前処理を行い、処理後のデータをメモリ14に格納する。第2処理部22は補正部であり、メモリ14から読み出したデータに対してγ補正等の補正処理を行い、補正後のデータをメモリ14に格納する。第3処理部23はカラープロセスであり、メモリ14から読み出したデータに対して色空間変換処理を行い、処理後のデータをメモリ14に格納する。第4処理部24はノイズ除去部であり、メモリ14から読み出したデータに対して所定の処理を行ってノイズを除去し、処理後のデータをメモリ14に格納する。
【0015】
第5処理部25は解像度変換部であり、メモリ14から読み出したデータに対して、画素データの間引き、データ補間などの処理を行い、処理後のデータをメモリ14に格納する。第6処理部26は圧縮伸張部であり、所定の方式(例えばJPEG方式)によりメモリ14から読み出したデータに対して符号・復号(圧縮・伸長)処理を行い、処理後のデータをメモリ14に格納する。第7処理部27は画像効果処理部であり、メモリ14から読み出したデータに対して輪郭強調等の処理を行い、処理後のデータをメモリ14に格納する。第8処理部28は出力部であり、メモリ14から読み出したデータを表示のためのデータに変換し、変換後のデータを表示部13に出力する。
【0016】
即ち、第1〜第7処理部21〜27はメモリ14にデータを格納する処理を行う。従って、第1〜第7処理部21〜27はメモリ14にデータを書き込むためにバスを使用する要求信号W0〜W6を調停回路31に出力する。また、第2〜第8処理部22〜28はメモリ14からデータを読み出す処理を行う。従って、第2〜第8処理部22〜28は、メモリ14からデータを読み出すためにバスを使用する要求信号R1〜R7を調停回路31に出力する。
【0017】
また、各処理部21〜28は、メモリ14をアクセスするためのパラメータを調停回路31に出力する。このパラメータは、データをアクセスする領域を示すアドレス、データ量を含む。データ量は例えばバースト長である。上記したように、メモリ14にSDRAMを用いた場合、このメモリ14は、指定したアドレスから連続した複数のアドレスのデータを書き込み又は読み出すモード(バースト・モード)を有している。バースト長は、連続してアクセスするデータの数である。
【0018】
調停回路31は、複数(本実施形態では4つ)の直接メモリアクセス制御回路(Direct Memory Access controller:以下、DMACという)32a〜32dと、転送モニタ回路33を含む。
【0019】
各DMAC32a〜32dは、各処理部21〜28から出力される要求信号に応答して、各処理部21〜28とメモリ14との間でデータを直接的に転送するチャネル(DMAチャネル)を制御する。各処理部21〜28は、DMAチャネルを介してメモリ14をアクセスする。各処理部21〜28が実行する処理は互いに異なり、各処理に応じて必要なデータの量が異なる。そして、各処理部21〜28は、それぞれが実行する処理に必要なデータをメモリ14から読み出す、又は処理したデータをメモリ14に書き込むために要求信号を出力する。従って、メモリ14に対するアクセス要求が非同期で発生するため、メモリ14に対するアクセス要求が同時に発生する、即ち要求信号が競合する場合がある。このため、各DMAC32a〜32dは、それぞれ設定された複数の処理部からの要求を調停し、その調停により選択したチャネル、即ち処理部の要求信号に基づくリクエスト信号をメモリコントローラ34に出力する。また、各DMAC32a〜32dは、選択したチャネルに対応する処理部から出力されるパラメータをメモリコントローラ34に出力する。
【0020】
メモリコントローラ34はアービタ(バス制御部)35を含む。このアービタ35には、各DMAC32a〜32dから出力される要求信号が入力される。また、このアービタ35には、CPU36とDSP37とから要求信号が入力される。つまり、アービタ35に対してCPU36及びDSP37も処理部として認識される。アービタ35は、各要求信号を調停して1つの処理部に対してバス使用許可を与える。使用許可を受け取った処理部は、バス38及びメモリコントローラ34を介してメモリ14をアクセスする。メモリ14は、処理部からメモリコントローラ34を介して供給されるパラメータに従ってデータの読み出し又は書き込みを行う。
【0021】
上記各DMAC32a〜32dは、要求信号の受け付け、受け付けた要求信号に対する動作の変更が可能に構成されている。要求信号に対する動作は、要求信号に対する優先順位、要求信号に対する優先回数、要求信号の割当て、を含む。例えば、各DMAC32a〜32dは、それぞれ変更項目の値を記憶するレジスタを有し、そのレジスタの値を変更する(書き換える)ことにより、変更後の値に応じた動作を行う。優先順位は、要求信号、即ち各処理部に対して設定される。
【0022】
優先回数は、例えば、同じ優先順位に設定された複数の処理部について、要求信号を受け付ける回数を変更する。要求信号の受け付け回数は、その要求信号を出力する処理部に割り当てるバス38の使用時間に対応する。従って、転送するデータ量の異なる処理部について、そのデータ量に応じて優先回数を設定することにより、効率的なデータ転送や、一定時間内のデータ転送の終了が可能となる。
【0023】
要求信号の割当ては、各DMAC32a〜32dが受け付ける要求信号の設定である。例えば、DMAC32a,32bには、処理部21〜27の要求信号W1〜W7が入力されている。設定の一例は、所定の動作モードにおいて、第1DMAC32aが要求信号W1〜W4を受け付けて調停処理を行い、第2DMAC32bが要求信号W5〜W7を受け付けて調停処理を行うものである。この設定に対し、別の動作モードでは、要求信号W2〜W6を受け付ける必要があり、かつ要求信号W3,W4を出力する処理部23,24の処理が他の処理部の処理よりもメモリ14との間の転送量が多い。このような場合、第1DMAC32aに要求信号W2,W3,W6を割当て、第2DMAC32bに要求信号W4,W5を割り当てる。このように、要求信号W3,W4を第1DMAC32aと第2DMAC32bがそれぞれ受け付けるように設定を変更することにより、要求信号W3,W4の実質的な優先順位を高くすること、要求信号W3,W4を出力する処理部23,24がバス38を利用する回数(時間)を多くすることが可能となり、処理部23,24の処理を所定の時間内に終了させることが可能となる。
【0024】
CPU36は、図示しない操作部の操作に従って、各処理部の動作を制御する。更に、CPU36は、その時の動作に応じた信号選択情報をDMAC32a〜32dに書き込む。動作は、例えば、撮影動作、画像表示動作、データ変換を含む。つまり、撮影動作、即ち入射光に応じた画像データを記憶する動作と、記憶した画像データを表示する動作と、記憶した画像データのフォーマット(サイズ、色、圧縮方向、等)を変換する動作では、優先的に動作させなければならない処理部が異なる。従って、動作に応じての信号選択情報により、各処理部21〜28が出力する要求信号の優先度が設定される。即ち、処理装置12は、その時々の動作に応じて処理部21〜28の優先度を設定する。調停回路31のDMAC32a〜32dは、それぞれに設定された信号選択情報に応じて要求信号を調停する。
【0025】
上記転送モニタ回路33は、DMAC32a〜32dにより制御されるDMAチャネル等をモニタし、そのモニタ結果を保持する。上記したように、各DMAC32a〜32dは、それぞれ、設定された信号選択情報に基づいて、各処理部21〜28から出力される要求信号に応じてDMAチャネルを制御する。そして、各処理部21〜28は、DMAチャネルを介して、メモリ14に対して、処理に必要なデータの読み出し、処理後のデータの書き込みを行う。このため、各DMAC32a〜32dに対する各処理部21〜28の優先順序等の設定は、各処理部21〜28の処理に影響する。従って、DMAC32a〜32dの調停結果(チャネル番号)等を監視し、監視結果に応じて、優先順位等を調整する必要がある。
【0026】
転送モニタ回路33は、所定の情報をモニタし、そのモニタ情報を記憶する。モニタ情報を取得するトリガは、定期的にレベルが変化する信号(定期トリガ)、非定期にレベルが変化する信号(非定期トリガ)を含む。モニタ情報は、定期トリガ間に発生する要求信号のチャネル番号、要求信号に対応するDMAチャネルの転送量、非定期トリガが発生するまでに生成されるDMAチャネルの履歴、のうちの少なくとも1つを含む。
【0027】
また、転送モニタ回路33は、非定期トリガの発生をCPU36に通知する機能を有している。この機能は、例えば、CPU36に対する割り込み信号により提供される。即ち、転送モニタ回路33は、非定期トリガの発生に応答して割り込み信号を出力する。CPU36は、この割り込み信号に応答して、調停回路31に設定した情報をモニタ情報として記憶する。調停回路31に対する設定は、上記したように、各DMAC32a〜32dが受け付ける要求信号のチャネル番号、受け付けるように設定した要求信号に対する優先順位、優先回数、等を含む。
【0028】
上記したように、調停回路31には、CPU36から優先度等の情報が設定される。つまり、調停回路31は、CPU36との間でデータの授受を行うCPUインタフェースを有している。そして、CPU36は、CPUインタフェースを介して各DMAC32a〜32dと転送モニタ回路33に接続されている。従って、調停回路31は、転送モニタ回路33に記憶されたモニタ情報を、CPU36から読み出すことが可能に構成されている。
【0029】
図1に示すデバッグ装置200は、CPU36に接続され、CPU36の動作をシミュレートする。従って、デバッグ装置は、CPU36に記憶されたモニタ情報、転送モニタ回路33に記憶されたモニタ情報を読み出し、その値を表示装置に表示させることができる。そして、操作者(設計者)は、表示装置に表示されたモニタ情報に基づいて、各DMAC32a〜32dに設定する情報を変更する。例えば、各処理部21〜28の処理においてエラーが発生した場合、そのエラーが発生するまでのDMAチャネルの状態をモニタ情報に基づいて確認し、優先度を変更し、その変更後の優先度を対応するDMACに設定する。これにより、前回の処理の実行においてエラーが発生したDMAチャネルの優先度が高くなるため、エラーの発生を防止することができるようになる。
【0030】
次に、調停回路31を詳述する。
上記したように、調停回路31は、各処理部21〜28から出力される要求信号を調停するDMAC32a〜32dと、各DMAC32a〜32dの動作をモニタする転送モニタ回路33とを有している。このため、先ず各DMAC32a〜32dを詳述し、次に転送モニタ回路33を詳述する。
【0031】
[DMAC32a〜32d]
第1DMAC32a及び第2DMAC32bは書き込みのための要求信号W0〜W6を調停するためのものであり、第3DMAC32c及び第4DMAC32dは読み出しのための要求信号R1〜R7を調停するためのものである。
【0032】
このように、2つの書き込み用のDMAC32a,32bと2つの読み出し用のDMAC32c,32dを有することは、リソース、即ちデータを転送するバスを有効に活用するためのものである。例えば、第2処理部(補正部)22がメモリ14から読み出したデータを処理している間、バスをその他の処理部が読み出し又は書き込みを行うことができる。また、メモリ14に対するアクセスに要する時間と、処理部にてデータを入出力するために要する時間とに差がある、即ちアクセス速度に差があるため、1つの処理部がアクセスしている間に次のアクセスのための要求信号を受け付けてメモリ14からバッファに読み出すことで、連続的なアクセスが可能となる。
【0033】
第1DMAC32aには、複数(本実施形態では7)の書込要求信号W0〜W6、即ち、処理部21〜27から出力される全ての書込要求信号W0〜W6が入力される。DMAC32aには複数の優先レベルが設定され、各優先レベルには少なくとも1つのチャネル番号が設定されている。チャネル番号は、DMAC32aに入力される要求信号に対して設定されている。本実施形態において、DMAC32aには3つの優先レベルが設定され、各優先レベルには要求信号W0〜W6のうちの少なくとも1つに応じたチャネル番号が設定されている。このチャネル番号は信号選択情報として設定される。
【0034】
DMAC32aは、各優先レベル内において、設定されたチャネル番号について競合する要求をラウンドロビン方式により調停する。更に、DMAC32aは、各設定レベルにおいて選択したチャネル番号について競合する要求を調停する。DMAC32aには、このレベル間調停において、各レベルにはそれぞれ選択回数が設定されている。各レベルの選択回数は、例えば各レベルの優先度に応じて、それぞれのレベルよりも優先度が高いレベルに設定された選択回数より少ない選択回数が設定されている。
【0035】
DMAC32aは、上位レベル、即ち優先度の高いレベルに設定されたチャネル番号を順次選択する。そして、DMAC32aは、各レベルに設定された回数のチャネル番号を選択すると、そのレベルよりも下位、即ち低いレベルに設定されたチャネル番号を、そのレベルに設定された回数選択する。即ち、DMAC32aは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。従って、DMAC32aは、優先レベルの高い要求信号が多い場合であっても、所定の割合で優先レベルの低い要求信号を選択する。これにより、低い優先レベルの要求信号を確実に選択してその要求信号を出力する処理部がメモリ14をアクセスする権利、即ちメモリ14が接続された共有バスの使用権を獲得することができる。
【0036】
同様に、第2DMAC32bには、複数(本実施形態では7)の書込要求信号W0〜W6、即ち、処理部21〜27から出力される全ての書込要求信号W0〜W6が入力される。そして、第2DMAC32bは、3つの優先レベルが設定され、各優先レベルには要求信号W0〜W6のうちの少なくとも1つに応じたチャネル番号が設定されている。更に、第2DMAC32bは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。
【0037】
第3DMAC32cには、複数(本実施形態では7)の読出要求信号R1〜R7、即ち、処理部22〜28から出力される全ての読出要求信号R1〜R7が入力される。そして、第3DMAC32cは、3つの優先レベルが設定され、各優先レベルには要求信号R1〜R7のうちの少なくとも1つに応じたチャネル番号が設定されている。更に、第3DMAC32cは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。
【0038】
同様に、第4DMAC32dには、複数(本実施形態では7)の読出要求信号R1〜R7、即ち、処理部22〜28から出力される全ての読出要求信号R1〜R7が入力される。そして、第4DMAC32dは、3つの優先レベルが設定され、各優先レベルには要求信号R1〜R7のうちの少なくとも1つに応じたチャネル番号が設定されている。更に、第4DMAC32dは、各優先レベルに設定された選択回数の比率に応じて、各優先レベルのチャネル番号即ち要求信号を選択し、選択した要求信号を出力する。
【0039】
図3に示すように、第1DMAC32aは、優先順位制御部41、パラメータ選択部42、プロトコル制御部43、ラッチ部44,45を含む。
優先順位制御部41は、各処理部21〜27から出力される要求信号W0〜W6に基づいて、設定された情報に従って選択した1つの要求信号のチャネル番号をパラメータ選択部42とプロトコル制御部43に出力する。また、優先順位制御部41は、選択したチャネル番号に応じた要求有効信号をプロトコル制御部43に出力する。パラメータ選択部42は、各処理部21〜27から出力されるパラメータPa0〜Pa6のうち、チャネル番号に対応する処理部から出力されるパラメータを選択し、その選択したパラメータを転送パラメータPDaとして出力する。
【0040】
プロトコル制御部43は、要求有効信号に基づいて、メモリコントローラ34に対する転送要求信号SDaを出力する。この転送要求信号SDaは、要求信号に対するチャネル番号を含む。ラッチ部44は、プロトコル制御部43から出力される転送要求信号SDaを保持する。
【0041】
また、プロトコル制御部43は、要求有効信号に基づいて応答信号を出力する。この応答信号は、各要求信号、即ち各処理部21〜27に対応し、優先順位制御部41により選択されたチャネル番号の処理部21〜27に対応する応答信号が、要求を受け付けた旨、即ち、DMAチャネルによる転送を許可する信号となる。ラッチ部45は、プロトコル制御部43から出力される応答信号をラッチして、そのラッチレベルに応じ各処理部21〜27に対する応答信号CW0〜CW6を出力する。
【0042】
第2DMAC32bは、第1DMAC32aと同様に構成され、各処理部21〜27から出力される要求信号W0〜W6に基づいて、選択したチャネル番号を含む転送要求信号SDbを出力する。また、第2DMAC32bは、各処理部21〜27から出力されるパラメータPa0〜Pa7のうち、選択したチャネル番号に対応するパラメータを転送パラメータPDbとして出力する。また、第2DMAC32bは、選択したチャネル番号に基づいて、応答信号CW0〜CW6を出力する。
【0043】
第3DMAC32cは、第1DMAC32aと同様に構成され、各処理部22〜28から出力される要求信号R1〜R7に基づいて、選択したチャネル番号を含む転送要求信号SDcを出力する。また、第3DMAC32cは、各処理部22〜28から出力されるパラメータPa1〜Pa8のうち、選択したチャネル番号に対応するパラメータを転送パラメータPDcとして出力する。また、第4DMAC32dは、選択したチャネル番号に基づいて、応答信号CR1〜CR7を出力する。
【0044】
第4DMAC32dは、第3DMAC32cと同様に構成され、各処理部22〜28から出力される要求信号R1〜R7に基づいて、選択したチャネル番号を含む転送要求信号SDdを出力する。また、第4DMAC32dは、各処理部22〜28から出力されるパラメータPa1〜Pa8のうち、選択したチャネル番号に対応するパラメータを転送パラメータPDdとして出力する。また、第4DMAC32dは、選択したチャネル番号に基づいて、応答信号CR1〜CR7を出力する。
【0045】
図4に示すように、優先順位制御部41は、設定されたレベルに対応する複数(本実施形態では3つ)のレベル内調停部51a〜51cを有する。本実施形態において、第1レベル内調停部51aは1番目の優先度、即ち最も高い優先度に設定され、第2レベル内調停部51bは2番目の優先度に設定され、第3レベル内調停部51cは3番目の優先度、即ち最も低い優先度に設定されている。
【0046】
各レベル内調停部51a〜51cには、それぞれ書込要求信号W0〜W6、即ち、処理部21〜27から出力される全ての書込要求信号W0〜W6が入力される。また、各レベル内調停部51a〜51cには、それぞれ第1イネーブル信号ENa1〜ENc1が入力される。第1イネーブル信号ENa1〜ENc1は、それぞれのレベル内調停部51a〜51cが出力したチャネル番号に対してバス使用権が確定したか否かを示す。各レベル内調停部51a〜51cは、第1イネーブル信号ENa1〜ENc1に基づいて、それぞれが出力したチャネル番号についてバス使用権が確定した場合に、所定の方式(本実施形態ではラウンドロビン方式)により優先度を変更する。
【0047】
各レベル内調停部51a〜51cには、それぞれ信号選択情報が格納されている。信号選択情報は、少なくとも1つのチャネル番号を含む。また、信号選択情報は、それぞれのレベル内調停部51a〜51cにおいて、調停の優先度が設定されている。各レベル内調停部51a〜51cは、それぞれ設定されたチャネル番号に対応する書込要求信号の調停を行い、要求の有無を示す有効信号SE1〜SE3を生成する。そして、各レベル内調停部51a〜51cは、イネーブル信号(確定信号)に応答して調停結果に応じたチャネル番号を出力する。そして、各レベル内調停部51a〜51cは、上記の第1イネーブル信号ENa1〜ENc1に基づいて、各信号選択情報の優先度を変更する。
【0048】
優先順位制御部41は、設定されたレベルに対応する2つの優先フラグ生成部52a,52bを有している。各優先フラグ生成部52a,52bは、要求信号が競合する場合に、それぞれ対応するレベルの要求信号を優先するか、他のレベルの要求信号を優先するかを示す優先フラグを生成する。従って、最下位以外のレベルを優先しない場合、自動的に最下位のレベルの要求信号が選択されるため、最下位以外のレベルに対応して優先フラグ生成部が設けられている。
【0049】
優先フラグ生成部52aには、第1イネーブル信号ENa1及び第2イネーブル信号ENa2が入力される。第1イネーブル信号ENa1は、優先フラグ生成部52aが対応するレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。第2イネーブル信号ENa2は、他のレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。即ち、優先フラグ生成部52aは、第1イネーブル信号ENa1により当該優先レベルのチャネル番号について使用権が確定したことを確認し、第2イネーブル信号ENa2により他のレベルのチャネル番号について使用権が確定したことを確認する。第1優先フラグ生成部52aは、最上位の優先レベルに対応する。従って、第1優先フラグ生成部52aは、自身のレベルに対応するチャネル番号についてバス使用権が確定したか、自身より低いレベルのチャネル番号についてバス使用権が確定したかを判断する。優先フラグ生成部52aは、カウント機能を有し、それぞれバス使用権が確定した回数をカウントする。そして、優先フラグ生成部52aは、それぞれのカウント値に基づいて、優先フラグSP1を生成する。
【0050】
優先フラグSP1は、例えば2値の信号であり、第1の値(例えば「0」)の場合に、当該レベルのチャネル番号が優先であることを示し、第2の値(例えば「1」)の場合に、他のレベルのチャネル番号が優先であることを示す。
【0051】
第2優先フラグ生成部52bには、第1優先フラグ生成部52aと同様に、第1イネーブル信号ENb1及び第2イネーブル信号ENb2が入力される。第1イネーブル信号ENb1は、優先フラグ生成部52bが対応するレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。第2イネーブル信号ENb2は、他のレベルの要求(信号、チャネル番号)についてバス使用権が確定したか否かを示す。第2優先フラグ生成部52bは、第1イネーブル信号ENb1及び第2イネーブル信号ENb2に基づいて、優先フラグSP2を生成する。
【0052】
上記したように、第1優先フラグ生成部52aは、自身のレベル(最上位レベル)を優先するか、他のレベル即ち自身より下位のレベルを優先するかを示す優先フラグSP1を生成する。同様に、第2優先フラグ生成部52bは、自身のレベルを優先するか他のレベルを優先するかを示す優先フラグSP2を生成する。他のレベルについて、最上位のレベルについては、第1優先フラグ生成部52aに入力される第1イネーブル信号ENa1により示されている。従って、第2優先フラグ生成部52bは、自身のレベルを優先するか、自身より下位のレベルを優先するかを示す優先フラグSP2を生成する。
【0053】
優先順位制御部41は、設定されたレベルに対応する2つのレベル間調停部53a,53bを有している。
第1レベル間調停部53aには、第1レベル内調停部51aから出力される有効信号SE1と、第1優先フラグ生成部52aから出力される優先フラグSP1と、オア回路56の出力信号SE21が入力される。オア回路56には、第2レベル内調停部51bから出力される有効信号SE2と、第3レベル内調停部51cから出力される有効信号SE3が入力される。オア回路56は、両有効信号SE2,SE3を論理和演算して合成信号SE21を生成する。この合成信号SE21は、第2レベル内調停部51b及び第3レベル内調停部51cのうちの少なくとも一方について有効となる要求信号が入力されていることを示す。つまり、合成信号SE21は、レベル間調停部53aの設定レベルに対して、そのレベルよりも下位のレベルについて有効な要求信号があることを示す有効信号である。
【0054】
第1レベル間調停部53aは、両有効信号SE1,SE2のうちの何れか一方が有効な要求があることを示す場合、その有効な要求があることを示す有効信号をレベル間調停信号SA1として出力する。また、第1レベル間調停部53aは、両有効信号SE1,SE2がともに有効な要求であることを示す、つまり有効信号SE1,SE2が競合している場合に、優先フラグSP1に従って何れか一方を選択し、その選択した有効信号をレベル間調停信号SA1として出力する。つまり、第1レベル間調停部53aは、優先フラグSP1に従って、自己のレベルを優先する場合には有効信号SE1を選択し、自己のレベルを優先しない、即ち他のレベルを優先する場合には有効信号SE2を選択する。
【0055】
図5は、第1レベル間調停部53aの動作説明図である。同図において、「優先フラグ」は第1優先フラグ生成部52aから出力される優先フラグSP1を示し、「有効信号1」は第1レベル内調停部51aから出力される有効信号SE1を示し、「有効信号2」は第2レベル内調停部51bから出力される有効信号SE2を示す。「0」の「優先フラグ」は上位側レベルを優先することを示し、「1」の「優先フラグ」は下位側レベルを優先することを示す。「1」の「有効信号1」「有効信号2」は、設定されたDMAチャネルからの要求があることを示し、「0」は要求がないことを示す。
【0056】
従って、「有効信号1」「有効信号2」がともに「1」の場合は、レベル間において要求が競合していることを示す。この場合、レベル間調停部53aは、選択結果に示すように、「0」の優先フラグに従って「有効信号1」を選択し、「1」の優先フラグに従って「」有効信号2」を選択する。
【0057】
同様に、第2レベル間調停部53bには、第2レベル内調停部51bから出力される有効信号SE2と、第2優先フラグ生成部52bから出力される優先フラグSP2と、第3レベル内調停部51cから出力される有効信号SE3が入力される。第2レベル間調停部53bは、優先フラグSP2に従って、両有効信号SE2,SE3のうちの何れか一方を選択し、選択した有効信号をレベル間調停信号SA2として出力する。
【0058】
各レベル間調停部53a,53bから出力されるレベル間調停信号SA1,SA2は、チャネル確定部54に入力される。このチャネル確定部54には、各レベル内調停部51a〜51cから出力されるチャネル番号SN1〜SN3が入力される。チャネル確定部54は、レベル間調停信号SA1,SA2に基づいて、各チャネル番号SN1〜SN3のうちの1つに対してバス使用権を確定し、確定したチャネル番号CNaを出力する。このチャネル番号CNaは、図2に示すメモリコントローラ34に供給される。
【0059】
図6は、チャネル確定部54の動作説明図である。同図において、「レベル間調停信号1」は第1レベル間調停部53aから出力される調停信号SA1を示し、「レベル間調停信号2」は第2レベル間調停部53bから出力される調停信号SA2を示し、「有効信号3」は第3レベル内調停部51cから出力される有効信号SE3を示す。「1」の「レベル間調停信号」は対応する優先レベルのチャネル番号が有効、即ち要求があることを示す。
【0060】
従って、上位レベル側の「レベル間調停信号」が「1」の場合に、その上位側レベルのチャネル番号に対してバスの使用権を確定する。そして、各「レベル間調停信号」が「0」の場合に、下位側レベル、即ち最下位レベルのチャネル番号に対してバスの使用権を確定する。
【0061】
更に、チャネル確定部54は、各チャネル番号SN1〜SN3に対してバス使用権を確定したか否かを示すイネーブル信号ENa1〜ENc1を生成する。各イネーブル信号ENa1〜ENc1は、それぞれ対応するレベルのレベル内調停部51a〜51cに出力される。
【0062】
第2のレベルに対応するイネーブル信号ENb1と第3のレベル(最下位レベル)に対応するイネーブル信号ENc1は、オア回路57に入力される。オア回路57は、両信号ENb1,ENc1を論理和演算して生成した信号を最上位レベルに対応する第2イネーブル信号ENa2として出力する。また、第3のレベルに対応するイネーブル信号ENc1は、第2のレベルについて、イネーブル信号ENb1に対して他のレベルのチャネル番号を確定したことを示す。従って、チャネル確定部54から出力される第3のレベルに対応するイネーブル信号ENc1は、第2のレベルにおいて他のレベルのチャネル番号を確定したことを示す第2イネーブル信号ENb2として優先フラグ生成部52bに入力される。
【0063】
次に、レベル内調停部51aの構成を説明する。
図7に示すように、レベル内調停部51aは、判定部61、選択部62、情報記憶部63、並び替え部64を有する。判定部61には所定数の要求信号(本実施形態では、すべての要求信号W0〜W6)が入力される。また、判定部61には、情報記憶部63に記憶された設定情報が入力される。
【0064】
情報記憶部63は、複数(n個)のレジスタ631 〜63n を含み、各レジスタ631 〜63n にはそれぞれ設定情報又は非設定情報が記憶される。設定情報は判定部61に入力される要求信号W0〜W6のうち、当該レベル内調停部51aに割り当てられた要求信号を出力するDMAチャネル(処理部)のチャネル番号であり、非設定情報はチャネル番号が設定されていないことを示す値である。情報記憶部63はレジスタ631 〜63n により構成されているため、複数のレジスタに同一値のチャネル番号を設定可能である。この設定情報及び非設定情報は、図2に示すCPU36により選択部62を介して書き込まれる。
【0065】
CPU36は、電源投入時の初期化処理や、設定情報であるチャネル番号を設定チャネル値とする。各レジスタ631 〜63n は、それぞれ記憶した情報(値)を出力する。
判定部61は、サービス間隔(バスの使用を許可する期間)毎に、各要求信号W0〜W6に基づいて、レベル内調停部51aの優先レベルに設定されたDMAチャネルによるバス使用権の要求があるか否かを判断する。そして、判定部61は、要求がある場合にはそのDMAチャネルのチャネル番号SN1と、要求があることを示す(例えばHレベル)有効信号SE1を出力する。一方、要求がない場合には、その旨を示す(例えばLレベル)有効信号SE1を出力する。
【0066】
詳述すると、判定部61は、各要求信号W0〜W6がバス使用権の要求を示す(例えばHレベル)か否かを判断する。これは、要求信号W0〜W6の論理和演算結果により判断される。判定部61は、要求がある場合に、その要求を示す要求信号のチャネル番号と、各レジスタ631 〜63n から出力される設定チャネル値とを順次比較し、最初に設定チャネル値と一致するチャネル番号を、このレベル内調停部51aにおける調停結果、即ち選択したチャネル番号とする。判定部61は、設定したチャネル番号SN1を出力するとともに、出力するチャネル番号SN1が有効であることを示す有効信号SE1を出力する。また、判定部61は、決定したチャネル番号、即ち要求信号のチャネル番号と最初に一致した設定チャネル値が記憶されたレジスタを示すポインタ情報を並び替え部64に出力する。
【0067】
並び替え部64には、情報記憶部63を構成するすべてのレジスタ631 〜63n に記憶された情報が入力される。並び替え部64は、シフトレジスタであり、判定部61から入力されたポインタ情報が示すレジスタに記憶された情報が最終のレジスタに記憶されるように、情報の並び替えを行い、その結果を選択部62に出力する。例えば、判定部61において、2番目のレジスタ632 に記憶された設定チャネル値と等しいチャネル番号のDMAチャネルからの要求を選択した場合、判定部61は、その2番目のレジスタ632 を示すポインタ情報を出力する。並び替え部64は、そのポインタ情報に従って、3〜n番目のレジスタ633 〜63n に記憶された情報を2〜(n−1)番目のレジスタ632 〜63n-1 のレジスタに記憶するとともに、2番目のレジスタ632 に記憶された情報をn番目のレジスタ63n に記憶されるように、情報をシフトし、そのシフト結果を選択部62に出力する。尚、図ではレジスタ633 を省略している。
【0068】
選択部62には、イネーブル信号ENa1が入力される。選択部62は、図2に示すCPU36から入力される情報(設定情報及び非設定情報)をレジスタ631 〜63n に書き込む。また、選択部62は、イネーブル信号ENa1に基づいて、該信号ENa1がこの優先レベルの要求が確定したことを示す場合に並び替え部64から入力される情報をレジスタ631 〜63n に書き込む。この並び替え部64及び選択部62により、情報記憶部63に記憶したチャネル番号をラウンドロビン方式により並び替え、この優先レベル内の優先順序を変更する。
【0069】
次に、優先フラグ生成部52aの構成を説明する。
図8に示すように、優先フラグ生成部52aは、カウンタ制御部71、選択部72、カウンタ73、フラグ制御部74を有する。カウンタ73は、第1カウンタ73aと第2カウンタ73bとを有する。両カウンタ73a,73bは例えばアップカウンタである。両カウンタ73a,73bには、それぞれカウントアップ値が図2に示すCPU36から格納される。第1カウンタ73aと第2カウンタ73bにそれぞれ格納されるカウントアップ値は、上位側レベル内調停部即ち第1レベル内調停部51aと、下位側レベル内調停部即ち第2レベル内調停部51bの優先順位の比に応じた値である。それぞれのカウントアップ値は、例えば、「4」,「3」である。両カウンタ73a,73bは、カウンタ制御部71から出力されるカウントアップ信号に応答してカウントアップ(+1)する。そして、各カウンタ73a,73bは、それぞれカウント値がカウントアップ値と一致すると一致信号をカウンタ制御部71に出力するとともに、カウント値をクリア(=0)する。
【0070】
カウンタ制御部71には、第1イネーブル信号ENa1と第2イネーブル信号ENa2が入力される。カウンタ制御部71は、第1イネーブル信号ENa1に応答して第1カウンタ73aにカウントアップ信号を出力し、第2イネーブル信号ENa2に応答して第2カウンタ73bにカウントアップ信号を出力する。第1イネーブル信号ENa1は、レベル間で要求が競合した場合に上位側レベル、即ち第1レベル内調停部51aの優先レベルのチャネル番号を確定したことを示し、第2イネーブル信号ENa2は、レベル間で要求が競合した場合に下位側レベル、即ち第1レベル内調停部51aより下位の優先レベルのチャネル番号を確定したことを示す。従って、第1カウンタ73aのカウント値は、調停によって上位側レベルの要求を確定した回数を示し、第2カウンタ73bのカウント値は調停によって下位側レベルの要求を確定した回数を示す。
【0071】
カウンタ制御部71は、両カウンタ73a,73bから出力される一致信号に基づいてフラグ制御信号をフラグ制御部74に出力する。フラグ制御部74は、フラグ制御信号に応答して優先フラグSP1を生成する。詳述すると、カウンタ制御部71は、第1イネーブル信号ENa1に応答して第1カウンタ73aをカウントアップさせている間、フラグ制御信号によりフラグ制御部74から上位レベルを優先する優先フラグ(例えば値「0」、Lレベル)を出力させる。このとき、図4に示す第1レベル間調停部53aは、第1レベル内調停部51aと第2レベル内調停部51bからそれぞれ要求があることを示す有効信号SE1,SE2が出力されると、「0」の優先フラグSP1に応答して、上位側レベルの有効信号SE1を選択する。そして、第1レベル間調停部53aは、選択した有効信号を上位側レベルと下位側レベルとの間で要求信号を調停したことを示すレベル間調停信号SA1として出力する。
【0072】
そして、カウンタ制御部71は、第1カウンタ73aが一致信号を出力すると、フラグ制御信号によりフラグ制御部74から下位レベルを優先する優先フラグ(例えば値「1」、Hレベル)を出力させる。すると、図4に示す第1レベル間調停部53aは、第1レベル内調停部51aと第2レベル内調停部51bからそれぞれ要求があることを示す有効信号SE1,SE2が出力されると、「1」の優先フラグSP1に応答して、下位側レベルの有効信号SE2を選択する。そして、第1レベル間調停部53aは、選択した有効信号を上位側レベルと下位側レベルとの間で要求信号を調停したことを示すレベル間調停信号SA1として出力する。
【0073】
従って、このレベル間調停部53aは、優先フラグ生成部52aの第1カウンタ73aと第2カウンタ73bにそれぞれ設定したカウント値の回数だけ上位側レベルの要求と下位側レベルの要求をそれぞれ確定する。即ち、レベル間調停部53aは、第1及び第2カウンタ73a,73bに設定したカウント値の比に応じて、上位側レベルの要求を優先するとともに、下位側レベルの要求を許容する。
【0074】
第2レベル内調停部51bは、第1レベル内調停部51aと同じ構成であるため、図面を省略する。
第2レベル内調停部51bの情報記憶部63には、少なくとも1つのチャネル番号が記憶される。従って、第2レベル内調停部51bにチャネル番号の設定を設定することにより、同チャネル番号のDMAチャネルに対する優先レベルを容易に設定することができる。また、第1レベル内調停部51aに設定したチャネル番号を削除し、同チャネル番号を第2レベル内調停部51bに設定することにより、同チャネル番号のDMAチャネルに対する優先レベルを容易に変更することができる。
【0075】
また、各レベル内調停部51a,51bの情報記憶部63は、それぞれ複数のレジスタから構成されている。従って、例えば第1レベル内調停部51aにおいて同一値のチャネル番号を複数のレジスタに設定する。この場合、同一値のチャネル番号を設定したレジスタの数だけ、同チャネル番号のDMAチャネルに対してバス使用権が与えられる。即ち、設定するレジスタの数に応じて、同一レベル内において優先度を上げることができる。
【0076】
同一値のチャネル番号の設定は、異なる優先レベルについても行うことができる。即ち、第1レベル内調停部51aと第2レベル内調停部51bに同じ値のチャネル番号を設定する。この場合、上記と同様に、設定したレジスタの数だけそのチャネル番号のDMAチャネルにバス使用権が与えられる。
【0077】
第3レベル内調停部51cは、第1レベル内調停部51aと同じ構成であるため、図面を省略する。
この第3レベル内調停部51cについても、第2レベル内調停部51bと同様のことがいえる。即ち、各レベル内調停部51a〜51cに対してチャネル番号を設定することにより、優先レベルを容易に設定することができる。また、設定したチャネル番号を変更することにより、優先レベルを容易に変更することができる。更に、その時に動作しない処理部について、第1〜第3レベル内調停部51a〜51cの何れにもチャネル番号を設定しないことにより、同チャネル番号のDMAチャネルに対してバス使用権を許容しない。即ち、必要としないDMAチャネルに対してリソースであるバス使用権を設定しないため、必要とするDMAチャネルに対してバス使用権を従来に比べて多く与えることができる。
【0078】
そして、第2優先フラグ生成部52bは、第1優先フラグ生成部52aと同じ構成であるため、図面を省略する。第2優先フラグ生成部52bの第1及び第2カウンタ73a,73bには、第1優先フラグ生成部52aと同様に、上位側レベルの要求と下位側レベルの要求を確定する値が格納されている。従って、図4に示すように、この第2優先フラグ生成部52bが生成する優先フラグSP2を入力する第2レベル間調停部53bは、レベル間調停部53aは、第1及び第2カウンタ73a,73bに設定したカウント値の比に応じて、上位側レベルの要求を優先するとともに、下位側レベルの要求を許容する。優先レベルが高く設定されたDMAチャネルの処理部から連続的にバス使用権の要求がある場合でも、優先レベルが最も低く設定された第3レベル内調停部51cに設定されたチャネル番号のDMAチャネルについてもバス使用権を確定する。即ち、各レベル内調停部51a〜51cに設定されたチャネル番号のDMAチャネルのすべてに対してバス使用権を確実に確定することができる。
【0079】
上記のレベル内調停部の処理の流れを図9に従って説明する。
先ず、各レベル内調停部に対してDMAチャネルの割当て、即ちチャネル番号の設定が行われる(ステップ81)。次に、レベル間調停部は、転送中、即ちバスが使用中か否かを判断し(ステップ82)、転送中の場合には転送終了まで待つ。転送が終了すると、レベル間調停部は、割当てチャネルの要求があるか否かを判断し(ステップ83)、要求が無い場合にはステップ82に戻る。
【0080】
チャネルの要求がある場合、チャネル内調停部は要求チャネルの検索を行い(ステップ84)、優先チャネルを決定する(ステップ85)。次に、レベル内調停部は、レベル内調停部に対して有効信号の出力がディセーブル(禁止)されているか否かを判断し(ステップ86)、ディセーブルされていない場合に有効信号及びチャネル番号を出力する(ステップ87)。次に、レベル内調停部は、当グループが選択されたか否か、即ち当該レベルのチャネル番号に対してバスの使用権が確定されたか否かを判断し(ステップ88)、選択された場合にチャネル番号の並び替えを行う(ステップ89)。そして、1回のサービスについての全ての処理が終了したか否かを判断し(ステップ90)、処理終了によりステップ82に戻って次の要求を待つ。
【0081】
上記の優先フラグ生成部が実行する処理の流れを図10に従って説明する。
先ず、優先フラグ生成部に対して優先フラグ初期値、優先比率(カウント値)が設定される(ステップ91)。次に、優先フラグ生成部は、優先フラグ側、即ちその時に優先しているレベル(上位側レベル又は下位側レベル)について要求受付があるか否かを判断し(ステップ92)、要求受付がある場合に要求が競合しているか否かを判断する(ステップ93)。次に、優先フラグ生成部は、競合している場合に、優先フラグ側のカウント値をダウンカウントする(ステップ94)。
【0082】
次に、優先フラグ生成部は、カウント値がゼロ「0」か否か、即ち設定された数の要求を受け付けたか否かを判断し(ステップ95)、カウント値が「0」の場合に優先フラグ側の優先比率、即ちカウント値を再設定する(ステップ96)。次に、優先フラグ生成部は優先フラグを反転する、即ち優先するレベルを切り換えるように優先フラグを変更する(ステップ97)。そして、1回のサービスについての全ての処理が終了したか否かを判断し(ステップ98)、処理終了によりステップ82に戻って次の要求を待つ。
【0083】
従って、図9に示す処理を記述したプログラムを記憶し、そのプログラムを実行する処理部によりレベル内調停部を構成することもできる。同様に、図10に示す処理を記述したプログラムを記憶し、そのプログラムを実行する処理部により優先フラグ生成部を生成することもできる。
【0084】
次に、転送モニタ回路33を説明する。
図11に示すように、転送モニタ回路33は、モニタ情報を記憶する情報記憶部33aと、情報記憶部33aを制御する制御部33bを含む。
【0085】
情報記憶部33aは、レジスタ101、チャネル履歴回路102、加算器103、レジスタ104、レジスタ105、チャネル選択部106、アンド回路107を含む。
レジスタ101には、図3に示すDMAC32aから出力されるチャネル番号CNaが入力される。また、レジスタ101には、イネーブル信号MENが入力される。本実施形態のレジスタ101は、イネーブル信号MENに応答して、供給されるチャネル番号CNaを記憶し、記憶したチャネル番号を出力する。
【0086】
チャネル履歴回路102は、複数のチャネル番号を記憶可能に構成されている。例えば、チャネル履歴回路102はシフトレジスタのように構成され、チャネル番号を順次記憶する。チャネル番号は、図2に示すDMAC32aが調停する処理部21〜27の要求に対応している。従って、DMAC32aにより選択されたチャネル番号を順次記憶することは、処理部21〜27に対してDMAチャネルを設定するサービスの履歴を記憶することである。
【0087】
また、チャネル履歴回路102は、記憶した複数のチャネル番号を並列的に読み出すことが可能に構成されている。つまり、チャネル履歴回路102は、直列的に発生するチャネル番号を順次記憶し、記憶した複数のチャネル番号を並列的に読み出すことが可能に構成されている。この構成により、記憶した複数のチャネル番号を容易に読み出すことができる。
【0088】
加算器103には、図3に示す各DMAC32aから出力される転送パラメータPDaが供給される。また、この加算器103には、レジスタ104の出力データが供給される。加算器103は、転送パラメータPDaに含まれる転送データ量をレジスタ104の出力データに加算し、その加算結果を出力する。レジスタ104は、加算器103の出力データを記憶する。従って、レジスタ104は、転送データ量を累積加算した演算結果を記憶し、その演算結果(累積値)を出力する。つまり、転送モニタ回路33は、転送データ量を累積演算する演算器を含む。また、レジスタ104は、クリア信号Tcに応答して記憶値をクリア(=0)にする。
【0089】
レジスタ105は、更新トリガ信号Tuに応答して、レジスタ104の出力データ、即ち転送データ量の累積値を記憶する。そして、レジスタ105は、記憶した累積値(データ量モニタ値)を出力する。
【0090】
チャネル選択部106には、図3に示すDMAC32aから出力される応答信号CW0〜CW6が供給される。チャネル選択部106は、応答信号CW0〜CW6に基づいて、要求に対するチャネル番号が確定しているときに所定レベル(本実施形態ではHレベル)の確定信号CKを出力する。
【0091】
アンド回路107は、確定信号とモニタ期間信号MKを論理演算(論理積演算)して上記のイネーブル信号MENを生成し、そのイネーブル信号MENを出力する。モニタ期間信号MKは、後述するが、転送状態をモニタする期間Hレベルとなる。従って、モニタ期間において、DMAチャネルのチャネル番号が確定する毎にイネーブル信号MENが出力される。
【0092】
上記のレジスタ101,104は、イネーブル信号MENに応答してそれぞれ情報を記憶する。従って、チャネル番号が確定する毎に、そのチャネル番号と、チャネル番号におけるデータ転送量を累積した累積値を記憶する。
【0093】
上記したように、情報記憶部33aは、DMAC32aの調停結果であるチャネル番号、及びDMAC32aにより制御されるDMAチャネルにおけるデータ転送量を記憶する。つまり、図11に示す情報記憶部33aは、DMAC32aに対応するものである。そして、転送モニタ回路33は、他のDMAC32b〜32dに対応する情報記憶部を有している。これらの情報記憶部は、図11に示す情報記憶部33aと同様に構成されるため、図面を省略する。
【0094】
制御部33bは、開始トリガ選択部108、終了トリガ選択部109、更新トリガ選択部110、モニタ制御部111、比較回路112、分周回路113、CPUインタフェース114を含む。
【0095】
開始トリガ選択部108は、モニタを開始する開始トリガ信号Tsを生成する。本実施形態では、開始トリガ選択部108には、垂直同期信号Vs、DMAチャネル起動信号DWA、ソフトウェアトリガ信号SF1が入力される。開始トリガ選択部108は、入力信号のうち、設定値に応じた信号を選択し、その選択した信号に基づいて開始トリガ信号Tsを生成する。
【0096】
垂直同期信号Vsは、同期信号Syncに含まれ、図1に示す撮像部11から読み出した1つのフレームの画像データの開始を示すパルス信号である。
DMAチャネル起動信号DWAは、各処理部21〜28が出力する信号であり、設定されたDMAチャネルによりデータ転送を開始するための信号である。
【0097】
ソフトウェアトリガ信号SF1は、図2のCPU36から供給される信号である。転送モニタ回路33は、調停回路31の動作確認、動作調整を行うために、調停回路31の動作をモニタするものである。つまり、図1に示すデバッグ装置200を接続したときに有効な回路であり、CPU36から供給する信号は、デバッグ装置200から供給する信号である。従って、デバッグ装置200からモニタの開始を設定することができるため、任意の時点(モニタしたいタイミング)からのモニタ情報を容易に取得することができる。
【0098】
終了トリガ選択部109は、モニタを終了する終了トリガ信号Teを生成する。本実施形態では、終了トリガ選択部109には、エラー通知信号ERR、DMAチャネル停止信号DST、リミット判定信号LTが入力される。終了トリガ選択部109は、入力信号のうち、設定値に応じた信号を選択し、その選択した信号に基づいて終了トリガ信号Teを生成する。
【0099】
エラー通知信号ERRは、各処理部21〜28が出力する信号である。処理部21〜28のうちのいくつかは、同期信号Syncに基づいて、1つのフレームの画像データに対する処理を、1つのフレームを転送する期間内で処理しなければならない。例えば、画像データをメモリ14に格納するキャプチャ処理は、同期信号Sync(垂直同期信号Vs)に基づいて転送される画像データを、次の垂直同期信号Vsが入力されるまでにメモリ14に格納しなければデータの取りこぼしとなる。また、表示処理は、同期信号Sync(垂直同期信号Vs)に基づいて1つのフレームの画像データを表示部13に出力しなければ、表示の乱れを発生する。
【0100】
これらの異常は、該当する処理部が処理を実行するフレーム期間のみならず、以前の他の処理部の処理の遅延により発生する場合もある。従って、各処理部21〜28は、規定時間(1フレーム期間)内に所定量(1フレーム分の画像データ)を処理できない場合に、エラー通知信号ERRを出力する。そして、エラー通知信号ERRに応じてモニタを終了し、記憶されたモニタ情報を読み出すことにより、エラーが発生した処理部、エラーが発生するまでにDMAチャネルを利用した処理部、転送データ量を確認することができる。その確認結果により、処理部の優先順位や、DMAC32a〜32dに割り当てる処理部の組み合わせを調整することにより、異常発生を防ぐことができるようになる。
【0101】
リミット判定信号LTは、比較回路112から出力される。比較回路112には、レジスタ104から出力される信号、即ち累積データ量が供給される。また、比較回路112はCPUインタフェース114に接続され、図2に示すCPU36からリミット値LMが設定される。このリミット値LMは、更新期間内におけるデータ転送量(合計値)の最大値であり、転送データ量の累積値がこのリミット値を越える場合には、DMAチャネルの転送が処理部の処理に影響する場合が考えられる。このため、リミット値LMを越える転送データ量が発生したときに、モニタを終了するためのものである。
【0102】
DMAチャネル停止信号DSTは、各処理部21〜28が出力する信号であり、設定されたDMAチャネルにおけるデータ転送を停止するための信号である。DMAチャネル停止信号によりモニタを終了することにより、そのDMAチャネルを利用したDMA転送中に発生する状態をモニタすることができるようになる。
【0103】
モニタ制御部111は、開始トリガ選択部108から出力される開始トリガ信号Tsと、終了トリガ選択部109から出力される終了トリガ信号Teに基づいて、モニタする期間を示すモニタ期間信号MKを出力する。本実施形態のモニタ制御部111は、開始トリガ信号Tsに応じてHレベルのモニタ期間信号MKを出力し、終了トリガ信号Teに応答してLレベルのモニタ期間信号MKを出力する。このモニタ期間信号MKと、チャネル選択部106から出力される確定信号CKとに基づいて、上記のイネーブル信号MENが生成される。
【0104】
また、モニタ制御部111は、終了トリガ信号Teに基づいて、割り込み信号IRを出力する。この割り込み信号IRは、CPUインタフェース114を介して図2のCPU36に供給される。従って、CPU36つまり図1に示すデバッグ装置200は、モニタの終了通知を受け取ることができる。
【0105】
更新トリガ選択部110には、分周回路113から出力される分周信号DH、ソフトウェアトリガ信号SF2が入力される。更新トリガ選択部110は、入力信号のうち、設定値に応じた信号を選択し、その選択した信号に基づいて更新トリガ信号Tuを生成する。
【0106】
更新トリガ信号Tuは、チャネル履歴回路102とレジスタ105に供給される。チャネル履歴回路102は、更新トリガ信号Tuに応答してチャネル履歴を更新する。レジスタ105は、更新トリガ信号Tuに応答して、保持する累積値を更新する。
【0107】
また、更新トリガ選択部110は、選択した信号に基づいて、クリア信号Tcを生成する。クリア信号Tcはレジスタ104に供給される。レジスタ104は、クリア信号Tcに応答してレジスタ内容をクリア(=0)する。つまり、レジスタ104は、クリア信号Tcに応答して累積値をリセットする。
【0108】
分周回路113は、水平同期信号Hsに基づいてを設定された分周比にて分周して分周信号DHを生成する。水平同期信号Hsは同期信号Syncに含まれ、フレームに含まれる1つのライン(水平ライン)の画像データの開始を示すパルス信号である。分周回路113は、設定された分周値(分周比)にて水平同期信号Hsを分周して分周信号DHを生成する。分周値(分周比)は、モニタ情報を更新する期間に応じて設定される。分周値が小さいと、モニタ情報を更新する回数が増える(更新期間が短)ため、DMAチャネルの設定等が判りやすくなる。また、分周値が大きいと、モニタ情報を更新する回数が少なくなる(更新期間が長)ため、例えばフレームを跨る長期間のモニタが可能となる。
【0109】
ソフトウェアトリガ信号SF2は、上記の信号SF1と同様に、図2のCPU36から供給される信号である。従って、デバッグ装置200からモニタ情報の更新タイミングを設定することができるため、任意の期間のモニタ情報を容易に取得することができる。
【0110】
上記のチャネル履歴回路102は、例えば図12に示すように、制御回路121、履歴制御イネーブルレジスタ122、アンド回路123、複数の記憶部124(1)〜124(n)を含む。制御回路121は、初期化信号I1とDMAチャネル停止信号DSTとに基づいて、履歴制御イネーブルレジスタ122の内容を変更する。本実施形態において、履歴を更新するときにレジスタ122に第1の所定値(例えば1)を書き込み、履歴を更新しないときに第2の所定値(例えば0)を書き込む。レジスタ122は、その内容に応じた信号を出力する。また、制御回路121は、エラー通知信号ERRに応答して履歴を更新しないようにレジスタ122に第2の所定値を書き込む。
【0111】
アンド回路123は、レジスタ122の出力信号と確定信号CKに基づいて更新信号U1を生成する。
各記憶部124(1)〜124(n)は、直列接続され、初段の記憶部124(1)にチャネル番号CNaが入力される。
【0112】
記憶部124(1)は、選択回路125(1)とレジスタ126(1)を含む。選択回路125(1)には、初期値とチャネル番号CNaが入力される。選択回路125(1)は、初期化制御信号I2に応答して初期値を選択して出力し、更新信号に応答してチャネル番号CNaを選択して出力する。レジスタ126(1)は、選択回路125(1)から出力される信号(値)を記憶し、その記憶値と等しい信号(値)を出力する。
【0113】
各記憶部124(2)〜124(n)は、記憶部124(1)と同様に、それぞれ選択回路125(2)〜125(n)とレジスタ126(2)〜126(n)を含む。
従って、各記憶部124(1)〜124(n)は、初期化制御信号I2に応答して供給される初期値を記憶する。初期値は、例えばゼロ(0b)である。尚、「b」は値がバイナリ形式(2進数形式)の値であることを示す。これにより、全ての記憶部に、(1)〜124(n)が同時に記憶される。
【0114】
各記憶部124(1)〜124(n)は、更新信号U1に応答して、入力値を保持する。これにより、更新信号U1が供給される毎に、入力されるチャネル番号CNaを記憶するとともに、記憶したチャネル番号、即ちチャネル履歴をシフトする。
【0115】
従って、図13の左端に示すように、更新信号U1が供給されると、記憶部124(1)はその時のチャネル番号(000001b)を記憶する。次に更新信号U1が供給されると、(000001b)を次の記憶部124(2)にシフトし、記憶部124(1)に新たなチャネル番号(000011b)を記憶する。
【0116】
また、各記憶部124(1)〜124(n)の出力端子は図11に示すCPUインタフェース114に接続されている。従って、図2に示すCPU36、即ち図1に示すデバッグ装置200は、チャネル履歴回路102に記憶された複数のチャネル番号(チャネル履歴)を読み出すことができる。
【0117】
次に、上記のように構成された転送モニタ回路33の動作を説明する。
一例として、図11に示す開始トリガ選択部108は、垂直同期信号Vsを選択して開始トリガ信号Tsを出力し、終了トリガ選択部109はエラー通知信号ERRを選択して終了トリガ信号Teを出力し、分周信号DHを選択して更新トリガ信号Tuを出力する。
【0118】
転送モニタ回路33は、Hレベルの開始トリガ信号Ts(Vs)に応答してモニタを開始し、更新トリガ信号Tu(DH)に応答してモニタ情報を更新する。そして、転送モニタ回路33は、エラー通知信号ERRに応答してモニタを終了する。
【0119】
図14において、処理部21の動作期間を「fpm」、処理部23の動作期間を「fcm」、処理部25の動作期間を「frm」、処理部26の動作期間を「fj」、処理部28の動作期間を「fdm」として示している。図中「m」はフレーム番号を示す。つまり、「fp1」は、1つ目のフレームの画像データを処理部21が処理している期間を示している。また、「m」が2桁の場合、1桁目がフレーム番号を、2桁目が処理内容の区別を示している。例えば、「fp11」は、処理部23が1つ目のフレームの画像データを表示部13へ出力するためのデータを生成する処理(カラープロセス1)を示し、「fp22」は処理部23が2つ目のフレームの画像データを、処理部26へ供給するためのデータを生成する処理(カラープロセス2)を示す。
【0120】
図1に示す撮像部11から入力される画像データを表示部13に表示させるための処理と、図示しない操作部(シャッターボタン)の操作に応じて画像データを記憶するための処理は、解像度(記憶する画像データのデータサイズ)等が異なる。また、シャッターボタンを操作して記録準備を行っている場合にも、表示部13への表示が必要である。尚、図14において、「fp21」を示していないのは、操作部に対する操作の有無、即ち、シャッターボタンが操作されていない(半押しされていない)状態を示すものである。
【0121】
また、図14において、ハッチングで示した部分は、処理が遅延した期間を示す。この処理の遅延は、例えば、メモリ14に対するアクセスが集中して、データ転送が待たされることに起因する。この結果、データ量がピーク値を越える(データ量についてハッチングで示した部分)ため、処理部21の処理において転送エラーが発生する。
【0122】
この時のモニタ情報に基づいて、処理部23の処理「fc13」と処理部25の処理「fr13」の優先度を上げる。すると、図15に示すように、処理部26に供給するデータを生成する処理「fr22」「fp23」の処理は遅延するものの、データ量がピーク値を越えることがなくなるため、エラーの発生を回避することができる。尚、遅延した処理「fr22」「fp23」は、データを記録する準備のためのデータであり、遅延しても、データの取りこぼしや表示の異常を発生しないため、問題とならない。
【0123】
次に、モニタ機能の動作を図16に示すフローチャートに従って説明する。
先ず、図2のCPU36から各DMAC32a〜32dに対して優先順位が設定される(ステップ131)。転送モニタ回路33は、開始トリガ信号Ts(垂直同期信号Vs)が入力されたか否かを判断する(ステップ132)。
【0124】
開始トリガ信号Tsが入力されると、モニタを開始する(ステップ133)。そして、更新トリガ信号Tu(分周信号DH)が入力されているか否かを判断し(ステップ134)、更新トリガ信号Tuが入力されるとモニタ情報を更新する(ステップ135)。
【0125】
次に、終了トリガ信号Teが入力されているか否かを判断し(ステップ136)、終了トリガ信号Teが入力されていない場合にはステップ134に移行し、終了トリガ信号Teが入力されている場合には処理を終了する。
【0126】
次に、デバッグ処理を図17に示すフローチャートに従って説明する。
先ず、図2のCPU36(又はデバッグ装置200)から各DMAC32a〜32dに対して優先順位の初期値を設する(ステップ141)。そして、モニタを開始する(ステップ142)。即ち、デバッグ装置200から各処理部21〜28が動作するように制御する。
【0127】
そして、図11に示すモニタ制御部111から割り込みが発生すると、エラーが発生したか否かを判断する(ステップ143)。エラーが発生した場合、モニタ情報を解析し(ステップ144)、調整対象チャネルを特定する(ステップ145)。そして、対象チャネルの優先順位を変更し、(ステップ146)、ステップ143に移行する。
【0128】
エラーが発生していない場合、モニタ情報を集計し(ステップ147)、処理を終了するか否かを判断する(ステップ148)。デバッグ処理を継続する場合にはステップ143に移行する。
【0129】
次に、優先順位変更動作を図18に示すフローチャートに従って説明する。
先ず、図2のCPU36から各DMAC32a〜32dに対して優先順位の初期値を設する(ステップ151)。次に、CPU36は、垂直同期信号Vsが入力されたか否かを判断する(ステップ152)。垂直同期信号Vsが入力されると、フレームカウンタをカウントアップする(ステップ153)。そして、フレームカウンタのカウント値に基づいて、次に処理する画像データのフレームが目的のフレームか否かを判断する(ステップ154)。
【0130】
目的のフレームに到達すると、水平同期信号Hsが入力されたか否かを判断する(ステップ155)。水平同期信号Hsが入力されると、太インカウンタをカウントアップする(ステップ156)。そして、ラインカウンタのカウント値に基づいて、次に処理する画像データのラインが目的のラインか否かを判断する(ステップ157)。
【0131】
目的のラインに到達すると、優先順位の設定を変更する(ステップ158)。
例えば、図15に示す例では、2フレーム目の画像データ、つまり操作部(シャッターボタン)が操作された直後のフレームの画像データに対して、(1ライン目から)処理部23,25の優先度を上げる。即ち、CPU36は、操作部が操作された直後のフレームの画像データを処理する期間における処理部23,25の優先度を、全ての期間において高い優先度に設定するのではなく、必要とする期間のみ優先度を変更する。詳しくは、必要とする期間に先立って、優先度を変更するものである。
【0132】
この優先度の変更は、1つのフレームに対するものだけでなく、時間的に離間した複数のフレーム、又は時間的に連続した複数のフレームについて行われる場合がある。つまり、変更するフレーム数、ライン数、変更する優先度がレジスタに書き込まれ、CPU36はそのレジスタを参照して目的とする時期に優先順位の設定を変更する。そして、全ての変更が期間に対する処理が終了する、例えば、シャッターボタンの操作が解除されると、優先順位変更動作を終了する。
【0133】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)転送モニタ回路33は、調停回路31にて制御されるDMAチャネルのチャネル番号と、生成されるDMAチャネルにより転送されるデータのデータ量をモニタ情報として記憶する。そして、転送モニタ回路33は、調停回路31が調停する要求信号を出力する処理部21〜28が動作するタイミングを制御する同期信号Syncや、処理部21〜28から出力されるエラー通知信号ERR、等に基づく期間のモニタ情報を記憶するようにした。その結果、必要とする期間のモニタ情報を取得することができるため、デバッグ装置200を接続して処理部21〜28の動作をデバッグする場合に、モニタ情報に基づいて処理部21〜28から出力される要求信号を調停する調停回路31の状態を調整することができる。
【0134】
(2)転送モニタ回路33は、処理部21〜28が処理する画像データの開始を示す同期信号Syncと、各処理部21〜28から出力されるエラー通知信号ERR、DMAチャネル起動信号・停止信号に基づいてトリガ信号を生成し、そのトリガ信号に基づく期間、モニタ情報を記憶するようにした。その結果、処理部21〜28の動作に応じたモニタ情報を記憶することができる。
【0135】
(3)転送モニタ回路33は、更新トリガ信号Tuに基づいて、チャネル番号の履歴を記憶する。また、転送モニタ回路33は、更新トリガ信号Tuに基づいて、DMAチャネルにて転送されるデータの累積値を更新記憶するようにした。その結果、更新トリガ信号Tuのタイミングでモニタ情報を記憶するため、処理装置12を繰り返し動作させてモニタ情報を記憶させる場合に、同じ期間でモニタすることができ、調停回路31の調整結果を容易に確認することができる。
【0136】
(4)転送モニタ回路33は、処理部21〜28から出力されるエラー通知信号ERRに基づいて終了トリガ信号Teを生成するようにした。その結果、処理部21〜28にエラーが発生するまでのモニタ情報を容易に記憶することができるため、デバッグ装置200を用いてエラーの発生要因を容易に確認することができる。
【0137】
(5)転送モニタ回路33は、データ量の累積値とリミット値とを比較する比較回路112を含み、その比較回路112の出力信号に基づいて終了トリガ信号Teを生成するようにした。その結果、処理部21〜28にエラーが発生するまでのモニタ情報を容易に記憶することができるため、デバッグ装置200を用いてエラーの発生要因を容易に確認することができる。
【0138】
(6)転送モニタ回路33は、CPU36、即ちデバッグ装置200から供給されるソフトウェアトリガ信号SF1,SF2に基づいて開始トリガ信号Ts、更新トリガ信号Tuを生成するようにした。その結果、デバッグ装置200からモニタの開始とモニタ情報の更新を制御することができるため、任意の期間のモニタ情報を容易に取得することができる。
【0139】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態では、図11に示す転送モニタ回路33が、図2に示すDMAC32a〜32dに対応する情報記憶部を含むとしたが、複数のDMACに対して1つの情報記憶部を含むとしてもよい。同じ画像データを繰り返し入力した場合、その画像データに対する各処理部21〜28の処理は、毎回同じである。つまり、処理部21の動作が繰り返し再現される。従って、モニタするDMACを順次切り替えるように設定することで、全てのDMACの動作をモニタすることができる。
【0140】
・上記実施形態では、終了トリガ選択部109は、エラー通知信号ERR、DMAチャネル停止信号、リミット判定信号LTのうちから選択した信号に基づいて終了トリガ信号Teを生成するようにしたが、エラー通知信号ERR、DMAチャネル停止信号、リミット判定信号LTに基づいて、例えばオア処理して終了トリガ信号Teを生成するようにしてもよい。
【0141】
・上記実施形態は電子機器としてデジタルスチルカメラについて説明したが、要求信号の調停を行うものであればどの様な電子機器に適用してもよい。電子機器の例として、ファクシミリ装置、プリンタ、複写機、デジタルビデオカメラ、録画装置(ビデオデッキ)、などがある。
【0142】
・上記実施形態は、処理部21〜28を有し、調停回路31は、それら処理部21〜28からの要求信号を調停することとしたが、処理部の数、各処理部が実行する処理、等を適宜変更してもよい。
【0143】
・上記実施形態は、調停回路31は、書込要求信号W0〜W6を調停するDMAC32a,32bを有することとしたが、1つ、又は3つ以上の調停機能部を有する構成としてもよい。同様に、調停回路31は、読出要求信号R1〜R7を調停するDMAC32c,32dを有することとしたが、1つ、又は3つ以上の調停機能部を有する構成としてもよい。
【0144】
・上記実施形態は、各DMAC32a〜32dにそれぞれ3つの優先レベルを設定した、即ちそれぞれ3つのレベル内調停部51a〜51cを有する構成としたが、それぞれ2つ、又は4つ以上の優先レベルを設定する、即ち2つ又は4つ以上のレベル内調停部を有する構成としてもよい。それぞれの設定に応じて、優先フラグ生成部等の回路構成を変更することはいうまでもない。
【0145】
・上記実施形態は、各DMAC32a〜32dにそれぞれ3つの優先レベルを設定した、即ちそれぞれ3つのレベル内調停部51a〜51cを有する構成としたが、それぞれに設定するレベル数を変更してもよい。それぞれの設定に応じて、優先フラグ生成部等の回路構成を変更することはいうまでもない。
【0146】
・上記実施形態において、各レベル内調停部51a〜51cの動作を適宜停止させるようにしてもよい。例えば、動作禁止信号をCPU36から各レベル内調停部51a〜51cに供給する。各レベル内調停部51a〜51cは、第1レベル(例えばHレベル)の動作禁止信号に応答して動作を停止し、第2レベル(例えばLレベル)の動作禁止信号うに応答して調停動作を実行する。このように構成することで、任意のレベルに設定したチャネルの要求の優先度を変更する(優先度を上げる)ことができる。尚、レベル間調停部53a,53bにおいて所定のレベルに対する調停を行わないようにすればよいため、図5に示す判定部61が、信号に応答して有効信号SE1をディスエーブル、即ち有効ではないことを示す信号レベルとするようにしてもよい。
【符号の説明】
【0147】
14 メモリ
21〜28 処理部
31 調停回路
32a〜32d DMAC
33 調停モニタ回路
34 メモリコントローラ
36 CPU
38 共有バス
W0〜W6,R1〜R7 要求信号
【特許請求の範囲】
【請求項1】
種類の処理を行う複数の処理部と、
前記複数の処理部に接続可能なメモリへ前記複数の処理部から出力される要求信号のうちの1つを各処理部に応じて設定された設定情報に従って選択し、その選択した要求信号を出力する処理部に前記メモリとの間のデータ転送を制御する調停部と、
前記調停部にて制御されるDMAチャネルをモニタしたモニタ情報を記憶する転送モニタ回路と、
を有し、
前記モニタ情報は、
前記調停部にて調停されてDMAチャネルを形成するチャネル番号の履歴と、
前記DMAチャネルにて転送されるデータ量とを含み、
前記転送モニタ回路は、
前記処理部の動作状態に応じた期間における前記モニタ情報を記憶すること、
を特徴とする処理装置。
【請求項2】
前記転送モニタ回路は、
前記モニタ情報を記憶する期間を制御するトリガ信号を、前記処理部の動作信号に基づいて生成すること、
を特徴とする請求項1に記載の処理装置。
【請求項3】
前記トリガ信号は、
前記モニタ情報の記憶を開始する開始トリガ信号と、
前記モニタ情報の記憶を終了する終了トリガ信号と、
前記モニタ情報を更新する更新トリガ信号を含み、
前記転送モニタ回路は、前記更新トリガ信号に基づいて複数のチャネル番号を順次記憶するチャネル履歴回路と、前記データ量を累積加算する演算器と、前記演算器の演算結果を前記更新トリガ信号に応答して更新記憶するレジスタと、を含むこと、
を特徴とする請求項2に記載の処理装置。
【請求項4】
前記処理部は、画像データを処理するものであり、
前記転送モニタ回路は、少なくとも前記画像データを転送するための同期信号に基づいて前記開始トリガ信号と前記更新トリガ信号を生成すること、
を特徴とする請求項3に記載の処理装置。
【請求項5】
前記転送モニタ回路は、
前記データ量の累積値とリミット値とを比較する比較回路を有し、
前記処理部から出力されるエラー通知信号と、前記比較回路の出力信号とのうちの少なくとも一方の信号に基づいて前記終了トリガ信号を生成すること、
を特徴とする請求項3又は請求項4に記載の処理装置。
【請求項1】
種類の処理を行う複数の処理部と、
前記複数の処理部に接続可能なメモリへ前記複数の処理部から出力される要求信号のうちの1つを各処理部に応じて設定された設定情報に従って選択し、その選択した要求信号を出力する処理部に前記メモリとの間のデータ転送を制御する調停部と、
前記調停部にて制御されるDMAチャネルをモニタしたモニタ情報を記憶する転送モニタ回路と、
を有し、
前記モニタ情報は、
前記調停部にて調停されてDMAチャネルを形成するチャネル番号の履歴と、
前記DMAチャネルにて転送されるデータ量とを含み、
前記転送モニタ回路は、
前記処理部の動作状態に応じた期間における前記モニタ情報を記憶すること、
を特徴とする処理装置。
【請求項2】
前記転送モニタ回路は、
前記モニタ情報を記憶する期間を制御するトリガ信号を、前記処理部の動作信号に基づいて生成すること、
を特徴とする請求項1に記載の処理装置。
【請求項3】
前記トリガ信号は、
前記モニタ情報の記憶を開始する開始トリガ信号と、
前記モニタ情報の記憶を終了する終了トリガ信号と、
前記モニタ情報を更新する更新トリガ信号を含み、
前記転送モニタ回路は、前記更新トリガ信号に基づいて複数のチャネル番号を順次記憶するチャネル履歴回路と、前記データ量を累積加算する演算器と、前記演算器の演算結果を前記更新トリガ信号に応答して更新記憶するレジスタと、を含むこと、
を特徴とする請求項2に記載の処理装置。
【請求項4】
前記処理部は、画像データを処理するものであり、
前記転送モニタ回路は、少なくとも前記画像データを転送するための同期信号に基づいて前記開始トリガ信号と前記更新トリガ信号を生成すること、
を特徴とする請求項3に記載の処理装置。
【請求項5】
前記転送モニタ回路は、
前記データ量の累積値とリミット値とを比較する比較回路を有し、
前記処理部から出力されるエラー通知信号と、前記比較回路の出力信号とのうちの少なくとも一方の信号に基づいて前記終了トリガ信号を生成すること、
を特徴とする請求項3又は請求項4に記載の処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2011−8413(P2011−8413A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−149963(P2009−149963)
【出願日】平成21年6月24日(2009.6.24)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成21年6月24日(2009.6.24)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]