(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、一実施形態を説明する。
図1に示すように、データ処理装置11は、複数(
図1では3つ)のバスマスタ21a〜21dと、1つのバスコントローラ22を有している。バスコントローラ22は、メモリ12に接続されている。メモリ12は例えば、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)である。
【0009】
バスマスタ21aは、複数(
図1では3つ)の機能ブロック31a〜33aを有している。各機能ブロック31a〜33aは、それぞれ設定された処理を実行する。そして、各機能ブロック31a〜33aは、それぞれの処理に応じてメモリ12をアクセスする。例えば、機能ブロック31aは、メモリ12から読み出したデータを処理し、処理後のデータをメモリ12へ書き込む。また、機能ブロック32aは、データ処理装置11の外部から供給されるデータをメモリ12へ、または供給されるデータを処理してメモリ12へ書き込む。機能ブロック31a〜33aは処理回路の一例である。
【0010】
バスマスタ21aは、各機能ブロック31a〜33aのアクセスのための転送要求をバスコントローラ22へ出力する。バスマスタ21aは、メモリ12へデータを書き込むためのライト転送要求を出力する。また、バスマスタ21aは、メモリ12のデータを読み出すためのリード転送要求を出力する。
【0011】
同様に、バスマスタ21bは、複数(
図1では2つ)の機能ブロック31b,32bを有している。それら機能ブロック31b,32bは、それぞれの処理に応じてメモリ12をアクセスする。バスマスタ21bは、各機能ブロック31b,32bの処理に応じて、メモリ12へデータを書き込むためのライト転送要求、メモリ12のデータを読み出すためのリード転送要求を出力する。機能ブロック31b、32bは処理回路の一例である。
【0012】
また、バスマスタ21cは、複数(
図1では3つ)の機能ブロック31c〜33cを有している。それら機能ブロック31c〜33cは、それぞれの処理に応じてメモリ12をアクセスする。バスマスタ21cは、各機能ブロック31c〜33cの処理に応じて、メモリ12へデータを書き込むためのライト転送要求、メモリ12のデータを読み出すためのリード転送要求を出力する。機能ブロック31c〜33cは処理回路の一例である。
【0013】
また、バスマスタ21dは、複数(
図1では3つ)の機能ブロック31d〜33dを有している。それら機能ブロック31d〜33dは、それぞれの処理に応じてメモリ12をアクセスする。バスマスタ21dは、各機能ブロック31d〜33dの処理に応じて、メモリ12へデータを書き込むためのライト転送要求、メモリ12のデータを読み出すためのリード転送要求を出力する。機能ブロック31d〜33dは処理回路の一例である。
【0014】
バスコントローラ22は、各バスマスタ21a〜21dが出力する転送要求を調停し、調停結果を要求元のバスマスタへ通知する。また、バスコントローラ22は、調停結果に応じた1つの転送要求をメモリ12へ出力する。メモリ12は、転送要求に含まれるアクセス情報(各種コマンド、アドレス、データ、等)に応じてライト処理またはリード処理を行う。
【0015】
図2に示すように、バスマスタ21aは、機能ブロック31a〜33a、転送要求発行回路41a,42a、クロック制御回路43a、記憶部51a〜53aを有している。同様に、バスマスタ21bは、機能ブロック31b,32b、転送要求発行回路41b,42b、クロック制御回路43b、記憶部51b〜53bを有している。バスコントローラ22は、ライト調停回路61W、ライトキュー62W、リード調停回路61R、リードキュー62R、情報送信回路63を有している。バスマスタ21bに含まれる各回路は、バスマスタ21aに含まれる各回路と同様の機能を有している。なお、図示しないが、
図1に示すバスマスタ21c,21dは、バスマスタ21a,21bと同様の回路を有している。
【0016】
バスマスタ21aの転送要求発行回路41aは、データをメモリ12に書き込むための転送要求(ライト転送要求)WRaを発行する。ライト転送要求WRaは、マスタ情報と制御情報を含む。マスタ情報は、転送要求を発行するバスマスタの情報と、メモリ12に書き込むデータを出力する機能ブロックの情報を含む。例えば、機能ブロック31aの出力データをメモリ12に書き込むためのライト転送要求WRaは、バスマスタ21aを示す情報(例えば識別情報)と、機能ブロック31aを示す情報(例えば識別情報)を含む。制御情報は、メモリ12をアクセスするための情報であり、データを格納するアドレス、データ、制御コマンド(例えばライトコマンド)を含む。
【0017】
また、マスタ情報は、メモリ12に書き込むデータを参照する機能ブロックがある場合、その機能ブロックの情報とその機能ブロックを含むバスマスタの情報を含む。転送要求発行回路41aは、記憶部51aに格納された情報に基づいて、メモリ12に書き込むデータを参照する機能ブロックがあるか否かを判定し、その判定結果に基づいて、これらの情報を含むマスタ情報を生成する。記憶部51aは第1の記憶部の一例である。
【0018】
記憶部51aに格納された情報は、複数の機能ブロックの間における依存関係を示す。例えば、バスマスタ21aの記憶部51aには、バスマスタ21aに含まれる機能ブロック31a〜33aに対して、依存関係にある機能ブロック及びバスマスタの情報が記憶されている。
【0019】
例えば、機能ブロック31aは処理後のデータをメモリ12に書き込む。バスマスタ21bの機能ブロック31bは、メモリ12に格納されたデータを参照して処理を行う。つまり、機能ブロック31bは、処理の実行において、機能ブロック31aの出力データを必要とする。したがって、機能ブロック31bの処理タイミング(データを読み出すタイミング)は、機能ブロック31aの処理タイミング(データの書き込みタイミング)に依存する。なお、機能ブロックにおけるデータを参照する処理は、そのデータの値に応じて実行する処理、データを処理して別のデータを生成する処理、等を含む。
【0020】
このような依存関係に対し、バスマスタ21aの記憶部51aに格納された情報は、バスマスタ21aの機能ブロック31a〜33aに対して依存関係のある機能ブロックの情報及びその機能ブロックを含むバスマスタの情報を含む。機能ブロックの情報及びバスマスタの情報は、例えば機能ブロック及びバスマスタを識別するための情報(識別情報)である。上記例の場合、記憶部51aに格納された情報は、機能ブロック31aの識別情報と、依存関係にある機能ブロック31bの識別情報、この機能ブロック31bを含むバスマスタ21bの識別情報を含み、これらは関連付けられている。なお、以下の説明において、
図2に示す各ブロックの符号を識別情報として用いるものとする。
【0021】
例えば、
図5に示すように、記憶部51aに格納された情報は、機能ブロック31aの識別情報と、機能ブロック31aに関連付けられた依存先のバスマスタ21b及び機能ブロック31bの識別情報を含む。また、記憶部51aに格納された情報は、機能ブロック32aの識別情報と、機能ブロック32aに関連付けられた依存先のバスマスタ21c及び機能ブロック32cの識別情報を含む。また、記憶部51aに格納された情報は、機能ブロック33aの識別情報と、機能ブロック33aに関連付けられた依存先のバスマスタ21d及び機能ブロック32dの識別情報を含む。
【0022】
図2に示す転送要求発行回路41aは、機能ブロック31aに関するライト転送要求WRaを発行するとき、その機能ブロック31aの情報によって記憶部51aの情報を検索する。そして、転送要求発行回路41aは、機能ブロック31aに関連付けられた依存先の情報が記憶部51aに含まれる場合、記憶部51aから読み出した情報を含むライト転送要求WRaを発行する。なお、以下の説明において、依存先の情報を含むマスタ情報を依存情報と呼ぶことがある。つまり、依存情報は、ライト転送要求のデータを出力する機能ブロックの情報、その機能ブロックを含むバスマスタの情報、機能ブロックの出力データを参照する機能ブロックの情報とその機能ブロックを含むバスマスタの情報と、を含む。
【0023】
バスマスタ21aの転送要求発行回路42aは、機能ブロック31a〜33aに対応するデータをメモリ12から読み出すための転送要求(リード転送要求)RRaを発行する。リード転送要求RRaは、ライト転送要求WRaと同様に、マスタ情報と制御情報を含む。マスタ情報は、転送要求を発行するバスマスタの情報と、メモリ12から読み出したデータを処理する機能ブロックの情報を含む。例えば、機能ブロック31aがメモリ12からデータを読み出すためのリード転送要求RRaは、バスマスタ21aを示す情報(例えば識別情報)と、機能ブロック31aを示す情報(例えば識別情報)を含む。制御情報は、メモリ12をアクセスするための情報であり、データが格納されたアドレス、データ、制御コマンド(例えばリードコマンド)を含む。
【0024】
また、マスタ情報は、メモリ12から読み出すデータについて、依存関係にある機能ブロックがある場合、その機能ブロックの情報とその機能ブロックを含むバスマスタの情報を含む。転送要求発行回路42aは、記憶部51aに格納された情報に基づいて、依存関係にある機能ブロックがあるか否かを判定し、その判定結果に基づいて、これらの情報を含むマスタ情報を生成する。そして、転送要求発行回路42aは、生成したマスタ情報と制御情報を含むリード転送要求RRaを発行する。
【0025】
なお、以下の説明において、上記のライト転送要求WRaと同様に、リード転送要求RRaにおいて、依存先の情報を含むマスタ情報を依存情報と呼ぶことがある。つまり、依存情報は、リード転送要求のデータを必要とする機能ブロックの情報、その機能ブロックを含むバスマスタの情報、機能ブロックが必要とするデータについて依存関係にある機能ブロックの情報とその機能ブロックを含むバスマスタの情報と、を含む。
【0026】
同様に、バスマスタ21bは転送要求を発行する。つまり、バスマスタ21bの転送要求発行回路41bはライト転送要求WRbを発行する。また、バスマスタ21bの転送要求発行回路42bはリード転送要求RRbを発行する。これらの転送要求WRb,RRbは、データの依存関係に応じたマスタ情報と制御情報を含む。
【0027】
バスコントローラ22のライト調停回路61Wは、ライト転送要求WRa,WRbを調停し、調停結果に応じてライト転送要求をライトキュー62Wに格納する。ライト調停回路61Wは、例えば優先度に応じてライト転送要求を調停する。優先度は、バスマスタや機能ブロックに設定される。ライト調停回路61Wは、同時に受信したライト転送要求において、優先度に基づいて、優先度の高いライト転送要求から優先度の低いライト転送要求の順番でライトキュー62Wに格納する。
【0028】
図4(a)に示すように、ライトキュー62Wは、複数のライト転送要求を記憶する。各ライト転送要求は、マスタ情報と制御情報を含む。ライトキュー62Wは、例えば先入れ先出し(First In First Out:FIFO)方式のメモリである。バスコントローラ22は、ライトキュー62Wに格納されたライト転送要求を、それらの格納順序にしたがって処理し、メモリ12に対して制御情報を出力する。
【0029】
図2に示すリード調停回路61Rは、メモリ12に対するリード転送要求RRa,RRbを調停し、調停結果に応じてリード転送要求をリードキュー62Rに格納する。リード調停回路61Rは、例えば優先度に応じてリード転送要求を調停する。優先度は、バスマスタや機能ブロックに設定される。リード調停回路61Rは、同時に受信したリード転送要求において、優先度に基づいて、優先度の高いリード転送要求から優先度の低いリード転送要求の順番でリードキュー62Rに格納する。
【0030】
図4(b)に示すように、リードキュー62Rは、複数のリード転送要求を記憶する。各リード転送要求は、マスタ情報と制御情報を含む。リードキュー62Rは、例えば先入れ先出し(FIFO)方式のメモリである。バスコントローラ22は、リードキュー62Rに格納されたリード転送要求を、格納された順番にしたがって処理し、メモリ12に対して制御情報を出力する。
【0031】
情報送信回路63は、ライトキュー62Wとリードキュー62Rのそれぞれに格納された転送要求に基づいて、依存情報と待ち段数をバスマスタに送信する。
詳述すると、情報送信回路63は、ライトキュー62Wに格納された転送要求に基づいて、ライト転送要求を出力したバスマスタに待ち段数を送信する。そして、情報送信回路63は、ライト転送要求のマスタ情報に依存関係のバスマスタ及び機能ブロックの情報が含まれる場合、その依存関係にあるバスマスタに待ち段数と依存情報を送信する。
【0032】
また、情報送信回路63は、リードキュー62Rに格納された転送要求に基づいて、リード転送要求を出力したバスマスタに待ち段数を送信する。そして、情報送信回路63は、リード転送要求のマスタ情報に依存関係のバスマスタ及び機能ブロックの情報が含まれる場合、上記の待ち段数とともに依存情報を送信する。
【0033】
なお、ライト転送要求に対する待ち段数,依存情報をライト待ち段数,ライト依存情報と呼ぶことがある。同様に、リード転送要求に対する待ち段数,依存情報をリード待ち段数,リード依存情報と呼ぶことがある。ライト待ち段数は第1の待ち段数の一例である。リード待ち段数は第2の待ち段数の一例である。
【0034】
上記したように、ライト調停回路61Wは、受信したライト転送要求をライトキュー62Wに格納する。バスコントローラ22は、ライトキュー62Wに記憶されたライト転送要求を順次処理し、処理したライト転送要求を削除する。つまり、ライト転送要求の格納又は処理によって、ライトキュー62Wの状態(ライトキュー62Wに記憶されたライト転送要求の数)が変化する。
【0035】
情報送信回路63は、ライトキュー62Wの状態変化に基づいて、ライトキュー62Wに記憶されたライト転送要求を、最後に格納されたライト転送要求から格納順序と逆にチェックする。そして、情報送信回路63は、ライトキュー62Wに記憶されたライト転送要求のマスタ情報に基づいて、ライト転送要求を出力したバスマスタに待ち段数とマスタ情報を送信する。待ち段数は、ライトキュー62Wに記憶されているライト転送要求に応じた値(例えば、ライト転送要求の数−1)である。また、情報送信回路63は、ライトキュー62Wに記憶されたライト転送要求のマスタ情報に依存関係のバスマスタ及び機能ブロックの情報が含まれる場合、その依存関係にあるバスマスタに待ち段数と依存情報(マスタ情報)を送信する。
【0036】
同様に、リード調停回路61Rは、受信したリード転送要求をリードキュー62Rに格納する。バスコントローラ22は、リードキュー62Rに記憶されたリード転送要求を順次処理し、処理したリード転送要求を削除する。つまり、リード転送要求の格納又は処理によって、リードキュー62Rの状態(リードキュー62Rに記憶されたリード転送要求の数)が変化する。
【0037】
情報送信回路63は、リードキュー62Rの状態変化に基づいて、リードキュー62Rに記憶されたリード転送要求を、最後に格納されたリード転送要求から格納順序と逆にチェックする。そして、情報送信回路63は、リードキュー62Rに記憶されたリード転送要求のマスタ情報に基づいて、リード転送要求を出力したバスマスタに待ち段数とマスタ情報を送信する。待ち段数は、リードキュー62Rに記憶されているリード転送要求に応じた値(例えば、リード転送要求の数−1)である。
【0038】
バスマスタ21aのクロック制御回路43aは、クロック信号CLKに基づいて、機能ブロック31a〜33aに対するクロック信号CK1a〜CK3aと、転送要求発行回路42aに対するクロック信号CKTaを供給する。クロック信号CLKは、例えば、データ処理装置11のシステムクロック信号である。クロック信号CKTaは第1のクロック信号の一例である。クロック信号CK1a〜CK3aは第2のクロック信号の一例である。
【0039】
クロック制御回路43aは、バスコントローラ22から送信される情報と、記憶部52a,53aに格納された情報に基づいて、各クロック信号CK1a〜CK3a,CKTaを制御(供給と停止)する。詳しくは、クロック制御回路43aは、バスコントローラ22から送信されるライト待ち段数,ライト依存情報と、記憶部52aに格納された情報に基づいて、転送要求発行回路42aに対するクロック信号CKTaを制御(供給)する。また、クロック制御回路43aは、バスコントローラ22から送信されるリード待ち段数とリード依存情報と、記憶部53aに格納された情報に基づいて、各クロック信号CK1a〜CK3aを制御(供給)する。
【0040】
記憶部52aには判定情報が記憶されている。判定情報は、機能ブロックに対して依存関係にあるバスマスタに対するしきい値を含む。記憶部52aは第2の記憶部の一例である。
【0041】
図6に示すように、判定情報は、依存関係にある機能ブロック及びバスマスタの情報(識別情報)としきい値を含む。なお、判定情報において依存関係にあるバスマスタは、機能ブロックが参照するデータを出力する機能ブロックとその機能ブロックを含むバスマスタ、つまり一連の処理過程において機能ブロックの前段となる機能ブロック及びバスマスタを示す。例えば、
図6において、判定情報は、機能ブロック31aの情報と、機能ブロック31aに対して依存関係にある機能ブロック31b及びバスマスタ21bの情報と、その機能ブロック31bに対応するしきい値「5」を含む。
【0042】
しきい値は、例えば前段の機能ブロックにおける処理(例えば出力データの量)に応じて設定される。前段の機能ブロックにおける処理データ量(出力データの量)は、その機能ブロックを含むバスマスタのライト転送要求に対する転送許可から転送終了までの時間に対応する。ライト転送要求から転送許可までの時間は、ライト待ち段数に対応する。したがって、ライト待ち段数と、出力データ量に応じてリード転送要求を発行することで、転送終了に応じたタイミングでそのデータのリードが可能となる。つまり、リード転送要求を発行する転送要求発行回路42aに対して、ライト待ち段数と、出力データ量に応じてクロック信号CKTaを供給することにより、転送終了に応じたタイミングでそのデータのリードが可能となる。
【0043】
記憶部53aにはクロック制御情報が記憶されている。クロック制御情報は、機能ブロックにおけるしきい値を含む。記憶部53aは第3の記憶部の一例である。
図7に示すように、クロック制御情報は、機能ブロックに対して、複数の状態に応じて設定された標準のしきい値を含む。標準のしきい値は、その機能ブロックの処理に応じて設定されるものであり、上記した依存関係や後述する動作条件、等が考慮されていないものである。標準のしきい値は、データ処理装置の構成(各バスマスタの構成)に応じて、例えばデータ処理装置の設計のときに設定される。なお、記憶部53aは、例えば電気的に書き換え可能な不揮発性の半導体記憶装置であり、所定の形式(例えばカード形式やプログラム形式)によって外部からクロック制御情報の設定が可能である。
【0044】
機能ブロックの状態は、例えば、「通常時」、「処理待ち」「先行処理」である。例えば、「通常時」はメモリからデータを読み出して処理するときを示す。「処理待ち」はメモリから既にデータを読み出して処理の開始を待っているときを示す。そして、「先行処理」は、処理の開始に際して所定の設定(例えば電源の投入時における初期設定)を必要とするときを示す。例えば、機能ブロック31aについて、「通常時」のしきい値は「5」、「処理待ち」のしきい値は「1」、「先行処理」のしきい値は「7」である。なお、機能ブロックの状態によって、クロック信号を停止しない場合がある。このような状態に対するしきい値は、
図7に示すように、「停止しない」または「常時供給」が設定される。なお、「停止しない」または「常時供給」において設定されるしきい値は、システムにおいて設定可能な範囲の最大値(例えば8ビットの場合には「255」)である。
【0045】
また、記憶部53aには、機能ブロックの動作情報が記憶されている。動作情報は、機能ブロックにおける処理について、必要となる情報である。例えば、複数のリード転送要求によってメモリ12から読み出したデータ(例えば、複数ブロックのデータ)を処理する機能ブロックの情報である。
【0046】
また、記憶部53aには、バスマスタ21aにおいて固有の制御情報が記憶されている。固有の制御情報は、機能ブロックの動作における情報(動作条件)を含み、この動作情報(動作条件)は、機能ブロックにおける処理を示す情報である。
【0047】
例えば、所定の機能ブロックは、上記したように、他の機能ブロックがメモリ12に格納したデータを参照する。したがって、記憶部53aに格納された情報(動作条件)は、参照するデータの有無を示す情報(依存情報)を含む。
【0048】
また、所定の機能ブロックは、その処理において、複数(例えば2つ)のリード転送要求によってメモリ12から読み出したデータ(例えば、複数ブロックのデータ)を必要とする。つまり、この機能ブロックは、1つのリード転送要求によってメモリ12から読み出したデータのみではデータが揃っていないため、処理を開始することができない。したがって、このような機能ブロックに対するクロック信号の供給タイミングは、複数のリード転送要求に対する待ち段数に基づいて設定される。
【0049】
図3に示すように、クロック制御回路43aは、判定回路71と制御回路72を有している。
判定回路71には、待ち段数(ライト待ち段数,リード待ち段数)と依存情報(ライト依存情報,リード依存情報)が供給される。また、判定回路71には、
図2に示す機能ブロック31a〜33aの動作状況に応じた状況信号SI1a〜SI3aと、転送要求発行回路42aの動作状況に応じた状況信号SITaが供給される。判定回路71は、依存情報と各状況信号SI1a〜SI3a,SITaに基づいて、
図2に示す記憶部52a,53aから判定情報,クロック制御情報,動作条件を読み出す。そして、判定回路71は、これらに基づいて、制御信号SC1,SC2,SC3,SCTを出力する。
【0050】
制御回路72は、複数(
図3では4つ)のスイッチ回路SW1,SW2,SW3,SWTを有している。スイッチ回路SW1〜SW3,SWTの第1端子にはクロック信号CLKが供給され、各スイッチ回路SW1〜SW3,SWTの第2端子は
図2に示す機能ブロック31a〜33a,転送要求発行回路42aに接続される。スイッチ回路SW1〜SW3,SWTは、制御信号SC1〜SC3,SCTに応答してオンオフする。
【0051】
例えば、判定回路71は、ライト依存情報に含まれる機能ブロックの情報とバスマスタの情報によって記憶部52aに記憶された情報を検索する。判定回路71は、検索結果に基づいて、ライト依存情報に含まれる機能ブロック及びバスマスタに対応するしきい値を記憶部52aから読み出す。そして、判定回路71は、ライト待ち段数をしきい値と比較し、ライト待ち段数がしきい値以下になると、制御信号SCTによってスイッチ回路SWTをオンする。オンしたスイッチ回路SWTにより、クロック信号CKTaが
図2に示す転送要求発行回路42aに供給される。転送要求発行回路42aは、クロック信号CKTaの供給に基づいて動作し、リード転送要求を発行する。
【0052】
また、判定回路71は、リード転送要求に対してバスコントローラ22から送信されるマスタ情報と状況信号SI1a〜SI3aに基づいて記憶部53aを検索する。判定回路71は、検索結果に基づいて、機能ブロックの状態に応じたしきい値を記憶部53aから読み出す。そして、判定回路71は、しきい値とリード待ち段数を比較し、リード待ち段数がしきい値以下になると、制御信号、例えば制御信号SC1によってスイッチ回路SW1をオンする。オンしたスイッチ回路SW1により、クロック信号CK1aが
図2に示す機能ブロック31aに供給される。機能ブロック31aは、クロック信号CK1aの供給に基づいて動作し、データを処理する。
【0053】
なお、判定回路71は、動作条件に基づいて、複数のリード転送要求によってメモリ12から読み出すデータを必要とする機能ブロックの場合、その機能ブロックの動作条件に基づいて、複数のリード転送要求に応じた複数の待ち段数に基づいて、クロック信号を制御する。
【0054】
例えば、1つの機能ブロックにおいて、処理に必要なデータをX1,Y1とする。
図2に示す転送要求発行回路42aは、データX1を読み出すためのリード転送要求と、データY1を読み出すためのリード転送要求を発行する。バスコントローラ22は、それらのリード転送要求に基づいて、待ち段数を送信する。データX1を読み出すリード転送要求に対する待ち段数Wax、データY2を読み出すリード転送要求に対する待ち段数Wayとする。
【0055】
判定回路71は、両待ち段数Wax,Wayを互いに比較する。判定回路71は、待ち段数Waxと待ち段数Wayの大きい方を選択し、その選択した待ち段数を、機能ブロックに対する待ち段数Wazとする。判定回路71は、設定した待ち段数Wazを、記憶部53aから読み出したしきい値と比較する。そして、判定回路71は、設定した待ち段数リード待ち段数が設定したしきい値以下になると、制御信号、例えば制御信号SC2によってスイッチ回路SW2をオンする。オンしたスイッチ回路SW2により、クロック信号CK2aが
図2に示す機能ブロック32aに供給される。機能ブロック32aは、クロック信号CK2aの供給に基づいて動作する。このとき、機能ブロック32aにおいて上記のデータX1とデータY1が揃っている。したがって、機能ブロック32aは、データX1,Y1の処理を実行することができる。
【0056】
次に、
図8にしたがって、バスマスタとバスコントローラの処理を説明する。なお、
図8は、バスマスタ21aがメモリ12(
図1参照)に書き込むデータを依存関係のあるバスマスタ21bが読み出すときのクロック供給制御にかかる処理を示す。バスマスタ21a,21b,バスコントローラ22に含まれる回路の動作を、概略的にバスマスタ21a,21b,バスコントローラ22が行うものとして説明し、必要に応じて個々の回路を用いて説明する。
【0057】
先ず、バスマスタ21aにおける処理を説明する。
ステップ101(転送要求発行)において、バスマスタ21aは、ライト転送要求WRaを発行する。このライト転送要求WRaのマスタ情報は、依存関係にある機能ブロックとバスマスタの情報を含む。次いで、ステップ102(キュー情報受信)において、バスマスタ21aは、バスコントローラ22から送信されるマスタ情報と待ち段数を受信する。そして、バスマスタ21aは、他の処理を行う。
【0058】
次に、バスコントローラ22における処理を説明する。
ステップ111〜114は、
図2に示すライト転送要求WRaに対するバスコントローラ22の処理を示す。ステップ115,116は、
図2に示すリード転送要求RRaに対するバスコントローラ22の処理を示す。
【0059】
先ず、ライト転送要求WRaに対する処理を説明する。
ステップ111(転送要求調停)において、バスコントローラ22は、バスマスタ21aからのライト転送要求WRaを受信する。そして、バスコントローラ22は、受信したライト転送要求WRaを調停し、
図2に示すライトキュー62Wに格納する。
【0060】
ステップ112(キュー情報通知)において、バスコントローラ22は、ライトキュー62Wの状態変化に基づいて、キュー情報(マスタ情報及び待ち段数)を要求元のバスマスタ21aに通知する。
【0061】
次に、ステップ113において、バスコントローラ22は、ライトキュー62Wに格納したライト転送要求のマスタ情報に依存関係がある情報が含まれるか否かを判定する。バスコントローラ22は、依存関係の情報が含まれる場合にステップ114へ移行し、依存関係の情報が含まれない場合にステップ111へ移行する。
【0062】
ステップ114(依存情報通知)において、バスコントローラ22は、依存関係にあるバスマスタに対して待ち段数と依存情報を通知する。そして、バスコントローラ22は、ステップ111へ移行し、待機する。
【0063】
次に、リード転送要求RRaに対する処理を説明する。
ステップ115(転送要求調停)において、バスコントローラ22は、受信したリード転送要求RRaを調停し、リードキュー62Rに格納する。次いで、ステップ116(キュー情報通知)において、バスコントローラ22は、リードキュー62Rの状態変化に基づいて、マスタ情報と待ち段数を要求元のバスマスタ21bに通知する。
【0064】
次に、バスマスタ21bにおける処理を説明する。
ステップ121(依存情報取得)において、バスマスタ21bは、
図2に示す記憶部53bから、動作すべき機能ブロック(例えば、
図2に示す機能ブロック31b)について、参照するデータの有無を示す情報(依存情報)を取得する。
【0065】
次いで、ステップ122において、バスマスタ21bは、ステップ121において取得した情報に基づいて、前段のマスタがメモリ12に格納するデータ(前データ)が必要か否かを判定する。前データが必要な場合はステップ123へ移行し、前データが不要な場合はステップ126へ移行する。
【0066】
次いで、ステップ123(依存情報受信)において、バスマスタ21bは、バスコントローラ22から送信される依存情報及び待ち段数を受信する。
そして、ステップ124(しきい値設定)において、バスマスタ21bは、依存情報に含まれるバスマスタ及び機能ブロックの情報に基づいて、
図2に示す記憶部52bの判定情報からしきい値を読み出す。
【0067】
次いで、ステップ125において、バスマスタ21bは、バスコントローラ22から受信したライト待ち段数をしきい値と比較し、ライト待ち段数がしきい値以下か否かを判定する。ライト待ち段数がしきい値以下の場合にはステップ126へ移行し、ライト待ち段数がしきい値より大きい場合にはステップ123へ移行する。
【0068】
ステップ126(クロック供給)において、バスマスタ21bは、転送要求発行回路42bにクロック信号CKTbを供給する。
ステップ127(転送要求発行)において、転送要求発行回路42bは、クロック信号CKTbに基づいて動作し、リード転送要求RRbを発行する。
【0069】
ステップ128(キュー情報受信)において、バスマスタ21bは、バスコントローラ22から、リード転送要求RRbに対するマスタ情報及び待ち段数を受信する。
ステップ129(しきい値設定)において、バスマスタ21bは、マスタ情報に含まれる機能ブロックの情報に基づいて、
図2に示す記憶部53bのクロック制御情報から、機能ブロックの状態に対応するしきい値を取得する。
【0070】
ステップ130において、バスマスタ21bは、バスコントローラ22から受信したリード待ち段数をしきい値と比較し、リード待ち段数がしきい値以下か否かを判定する。リード待ち段数がしきい値以下の場合にはステップ131へ移行し、リード待ち段数がしきい値より大きい場合にはステップ128へ移行する。
【0071】
ステップ131(クロック供給)において、バスマスタ21bは、機能ブロック31bへクロック信号CK1bを供給する。そして、ステップ121へ移行する。
次に、上記のデータ処理装置の作用を説明する。
【0072】
なお、ここでは、データ処理装置の一例として、画像データを処理するデータ処理装置を例として説明する。画像データに対する処理の一例として、画像データを縮小する処理を説明する。
【0073】
図9に示すように、データ処理装置11のバスマスタ21aにおいて、機能ブロック31aは画像処理部である。転送要求発行回路41aは、画像処理部31aの出力データをメモリ12へ格納するためにライト転送要求WRaを発行する。
【0074】
バスマスタ21bにおいて、機能ブロック31bは縮小処理部であり、機能ブロック32bはデータ格納部である。バスマスタ21bは、バスマスタ21aの画像処理部31aからメモリ12に格納されたデータを読み出し、データ格納部32bに格納する。そして、縮小処理部31bは、データ格納部32bから読み出したデータを処理し、処理後のデータをメモリ12へ格納する。
【0075】
したがって、バスマスタ21bのデータ格納部32bと縮小処理部31bにおける処理は、バスマスタ21aの画像処理部31aの処理に依存したタイミングで実施される。つまり、バスマスタ21aの画像処理部31aは、バスマスタ21bのデータ格納部32bと縮小処理部31bに対して依存関係にある。
【0076】
図11(a)に示すように、画像G1は、所定のサイズ(水平方向の画素数H1と垂直方向の画素数V1)である。
図9に示す画像処理部31aは、この画像G1のデータをメモリ12に格納する。そして、縮小処理部31bは、画像G1のサイズを、設定された縮小率にしたがって変更する。
【0077】
図11(b)は、縮小処理後の画像G2を示す。この画像G2は、所定のサイズ(水平方向の画素数H2と垂直方向の画素数V2)である。
なお、
図11(a)に示す画像G1は、2つのブロックデータにより形成される。
【0078】
図12に示すように、メモリ12には、2つのブロックデータDX,DYが格納されている。これら2つのブロックデータDX,DYにより
図11(a)に示す画像G1が形成(表示)される。バスマスタ21bは、2つのブロックデータDX,DYを順次読み出す。
図12において、破線にて示す矩形部分は、1回のリード転送要求により読み出されるデータを示す。このデータをそれぞれDX1,DY1とする。
図9に示す縮小処理部31bは、データDX1,DY1を処理する。
【0079】
図10に示すように、先ず、ライト転送要求WRaが発行され、データWDaが
図9に示すメモリ12へ転送される。データWDaは、転送期間を示す。ライト転送要求WRaからデータWDaの転送開始(図において左端)までの期間がライト待ち段数に対応する。
【0080】
図9に示すクロック制御回路43bは、依存情報に応じたしきい値とライト待ち段数とに基づいて、クロック信号CKTbを転送要求発行回路42bに供給し、その転送要求発行回路42bは、リード転送要求RRbを発行する。このように、転送要求発行回路42bは、データWDaがメモリ12へ格納されるよりも早いタイミングでリード転送要求RRbを発行する。これにより、データWDaが格納されたタイミングで、そのデータの読み出しが可能となる。
【0081】
次に、データの読み出しにおける処理を説明する。
図13〜
図16は、データの読み出しに係る回路の動作期間を示す。
図13に示すように、転送要求発行回路41bは、
図12に示すデータDX1,DY1を読み出すために、リード転送要求Rx,Ryを順次発行する。
【0082】
バスコントローラ22は、リード転送要求Rx、Ryを順次処理する。これにより、データ格納部32bに対して、リード転送要求Rxに対応するデータDX1と、リード転送要求Ryに対応するデータDY1が順次格納される。
【0083】
図9に示すクロック制御回路43bは、バスコントローラ22から送信されるリード転送要求Ryに対する待ち段数に基づいて縮小処理部31bに対してクロック信号を供給する。つまり、データDX1がデータ格納部32bに格納された段階では、データが揃っていないため、クロック信号CK1bは供給されない。そして、データDY1がデータ格納部32bに格納されたタイミングで縮小処理部31bが動作を開始する。
【0084】
なお、データ処理を行う前において所定の処理(例えば、起動時の初期設定)が必要な縮小処理部31bの場合、その動作情報(動作条件)が記憶部53b(
図2参照)に格納されている。
図9に示すクロック制御回路43bは、この動作情報にしたがって、縮小処理部31bに対してクロック信号を供給する。
【0085】
即ち、
図14に示すように、縮小処理部31bは、ハッチングで示した所定の処理を実行した後、データ格納部32bに格納されたデータを処理する。このように、所定の処理に応じてクロック信号を縮小処理部31bに供給することで、データDY1がデータ格納部32bに格納されたタイミングで縮小処理部31bが動作を開始することが可能となる。
【0086】
次に、比較例を説明する。なお、比較例の説明において、上記の実施形態と同じ部材名及び符号を用いて説明する。
図15に示すように、第1の比較例において、データ格納部32bがデータDY1の格納完了をクロック制御回路43bに通知する。クロック制御回路43bは、通知を受けて縮小処理部31bにクロック信号を供給する。この場合、データDY1の格納完了からデータDX1,DY1の処理を開始するまでに時間を要する。このような時間は、データの処理期間の長期化を招き、データ処理装置における処理速度を低下させる。
【0087】
また、
図16に示すように、第2の比較例において、データDX1の格納に基づいて縮小処理部31bにクロック信号を供給する。この場合、データDY1の格納完了、つまりデータDX1,DY1が揃ったタイミングで縮小処理部31bにおける処理を開始する。しかし、この比較例において、縮小処理部31bは、クロック信号が供給されても、データDY1が格納されるまで処理を開始することができない。つまり、データDY1が格納されるまで、縮小処理部31bに対して無駄にクロック信号が供給される。クロック信号が供給されると、縮小処理部31bにおいて、電力が消費される。したがって、このようなクロック信号の供給は、消費電力の低減を阻害する。
【0088】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)バスマスタ21aは、メモリ12に対してデータを格納する機能ブロック31aを有し、バスマスタ21bは、機能ブロック31aがメモリ12に格納したデータを参照する機能ブロック31bを有している。バスマスタ21aの転送要求発行回路41aは、機能ブロック31aの状態と記憶部53aの情報に基づいて、機能ブロック31aと依存関係を持つ機能ブロック31bと、その機能ブロック31bを含むバスマスタ21bを示す依存情報を含むライト転送要求WRaを発行する。バスコントローラ22のライト調停回路61Wは、受信したライト転送要求WRaをライトキュー62Wに格納する。バスコントローラ22の情報送信回路63は、ライトキュー62Wのライト転送要求に基づいて、待ち段数と依存情報を、依存関係のあるバスマスタ21bに送信する。バスマスタ21bのクロック制御回路43bは、受信した依存情報に基づいて、依存関係のあるバスマスタ21aに対応するしきい値を記憶部52bから取得する。そして、クロック制御回路43bは、しきい値と待ち段数に基づいて、転送要求発行回路41bに対するクロック信号CKTbを制御する。
【0089】
待ち段数は、バスマスタ21aの機能ブロック31aがメモリ12に対してデータを格納するまでの期間に対応する。したがって、メモリ12に格納されるデータについて機能ブロック31aと依存関係にある機能ブロック31bを含むバスマスタ21bの転送要求発行回路41bに対するクロック信号CKTbを制御する。転送要求発行回路41bは、クロック信号CKTbに基づいて、メモリ12のデータを読み出すリード転送要求RRbを発行する。このように、機能ブロック31aがメモリ12にデータを書き込むタイミングに応じて転送要求発行回路41bに対するクロック信号CKTbを供給する。これにより、転送が不可能である期間におけるリード転送要求の発行を抑制する。このことは、転送要求発行回路41bに対して、転送が可能な期間にクロック信号CKTbを供給することになる。したがって、転送要求発行回路41bに対する無駄なクロック供給を低減し、消費電力を低減することができる。
【0090】
(2)バスマスタ21bの転送要求発行回路42bは、リード転送要求RRbを発行する。バスコントローラ22は、リード転送要求RRbに対するリード待ち段数とマスタ情報をバスマスタ21bに送信する。バスマスタ21bのクロック制御回路43bは、リード待ち段数とマスタ情報に基づいて、クロック信号CK1bを機能ブロック31bに供給する。このように、機能ブロック31bに対してメモリ12からデータが読み出されるタイミングに応じて、その機能ブロック31bに対するクロック信号CK1bを供給する。したがって、機能ブロック31bに対する無駄なクロック供給を低減し、消費電力を低減することができる。
【0091】
(3)バスマスタ21bは2つの機能ブロック31b,32bを有し、依存情報は、バスマスタ21bに含まれる機能ブロック31b,32bの識別情報を含む。したがって、クロック制御回路43bは、依存情報に基づいてクロック信号を制御する対象となる機能ブロックを判定し、その判定した機能ブロックに対応するクロック信号を、リード待ち段数に基づいて制御する。このように、複数の機能ブロックを含むバスマスタにおいて、必要となる機能ブロックに対するクロック信号の制御を容易に行うことができるようになる。
【0092】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態において、
図2では、1つのバスマスタ21aに1つの転送要求発行回路41aを含むように示したが、各機能ブロック31a〜33aに対応する転送要求発行回路を含むようにしてもよい。また、機能ブロック31a〜33aのそれぞれに転送要求発行回路を含めてもよい。
【0093】
・上記実施形態において、
図2では、1つのバスマスタ21aに1つのクロック制御回路43aを含むように示したが、各機能ブロック31a〜33aと転送要求発行回路41aに対応するクロック制御回路を含むようにしてもよい。また、機能ブロック31a〜33aと転送要求発行回路41aのそれぞれにクロック制御回路を含めてもよい。
【0094】
・上記実施形態では、各機能ブロックと転送要求発行回路に対するクロック信号を制御(供給または停止)したが、供給するクロック信号の周波数を制御するようにしてもよい。例えば、クロック信号CLKに基づいてクロック信号CK1aを生成する分周回路を用いてその分周回路における分周比を制御するようにしてもよい。
【0095】
・バスマスタに含まれる機能ブロックの数は、上記実施形態に限定されない。例えば、機能ブロックの数を、1つまたは4つ以上としてもよい。
・上記実施形態に対し、
図5に示す記憶部51aに格納された情報において、1つの機能ブロックに対して関連付けられた複数の機能ブロックが関連付けられていてもよい。例えば、
図1に示すデータ処理装置11において、機能ブロック31aがメモリ12に格納するデータを、バスマスタ21cの機能ブロック32cと、バスマスタ21dの機能ブロック33dが参照する。このような場合、バスコントローラ22は、バスマスタ21aのライト転送要求WRaに基づいて、バスマスタ21c,21dに対して待ち段数と依存情報を送信する。このように、複数の機能ブロックが参照する場合においても、上記実施形態と同様に、バスマスタ21c,21dにおいてクロック信号を制御することが可能となり、消費電力の低減を図ることができる。また、各バスマスタ21c,21dにおいて、好適なタイミングでリード転送要求を発行することができ、処理時間の長期化(処理速度の低下)を抑制することができる。