JP5408844B2 - バスシステム - Google Patents

バスシステム Download PDF

Info

Publication number
JP5408844B2
JP5408844B2 JP2007150781A JP2007150781A JP5408844B2 JP 5408844 B2 JP5408844 B2 JP 5408844B2 JP 2007150781 A JP2007150781 A JP 2007150781A JP 2007150781 A JP2007150781 A JP 2007150781A JP 5408844 B2 JP5408844 B2 JP 5408844B2
Authority
JP
Japan
Prior art keywords
bus
transfer
bus master
clock
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007150781A
Other languages
English (en)
Other versions
JP2008033896A (ja
Inventor
浩二 森谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007150781A priority Critical patent/JP5408844B2/ja
Priority to US11/765,172 priority patent/US7681067B2/en
Publication of JP2008033896A publication Critical patent/JP2008033896A/ja
Application granted granted Critical
Publication of JP5408844B2 publication Critical patent/JP5408844B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、バスシステムに関し、特に、バスマスタがバスを介してバススレーブにデータを転送するために用いて好適なものである。
バス上に複数のバスマスタが接続されており、各バスマスタがバスに接続されたバススレーブにデータ転送を行う技術が従来から実現されている(特許文献1を参照)。この場合、バスマスタは、バス上のアービタ(バス調停器)に転送要求を出力し、アービタから転送許可が与えられると、データ転送を開始するという構成が一般的である。また、アービタの調停アルゴリズムとしては、固定プライオリティ方式やラウンドロビン方式等が一般的である。
特開2001−243176号公報
しかしながら、前述した固定プライオリティ方式やラウンドロビン方式といった調停アルゴリズムによるバス調停においては、各バスマスタがデータ転送を行う際に要求するデッドラインを保証することが困難であった。
例えば、ある所定期間内に各バスマスタが要求する「平均帯域の和」が、バスの割当可能な帯域の範囲内だとしても、所定期間内の一部の期間に着目すると、各バスマスタが要求する帯域の和が、バスの割当て可能な帯域を超えてしまうことがある。
この場合、固定プライオリティ方式やラウンドロビン方式といった単純な調停アルゴリズムでは、デッドラインを保証するという観点から適切なバス調停が行われないという問題点があった。
更に、階層化されたバスの場合、各階層ごとに固定プライオリティ方式やラウンドロビン方式といった単純な調停アルゴリズムによってバス調停を行うと、下位階層に接続されたバスマスタが、上位階層において必ずしも優先的にバス権を取得できない。このため、デッドラインを保証することが困難であるという問題点もあった。
また、デッドラインに対して必要以上の転送能力があるバスマスタには、待ち状態が発生する。その場合、待ち状態でもクロックが供給されることで、無駄な電力を消費していまうといった問題点があった。
本発明は、以上のような問題点に鑑みてなされたものであり、適切なデッドラインを保証することが、小さな消費電力で実現できるようにすることを目的とする。
本発明は上述の課題を解決するために、バスを介してバススレーブにデータを転送する転送手段と、前記データを転送すべき期限までの残り時間を計数する残り時間計数手段と、前記データのうち、未転送の残りのデータ量を計数する残りデータ量計数手段と、前記残り時間計数手段により計数された残り時間と、前記残りデータ量計数手段により計数された残りのデータ量とに基づいて、前記データを処理する処理モジュールの処理クロックを切り替えるクロック切り替え手段とを備えたことを特徴とするバスシステム等を提供する。
本発明によれば、データを転送すべき期限までの残り時間と、未転送の残りのデータ量とに基づいて、転送要求の優先度を決定する。従って、デッドラインの近いバスマスタに接続された処理モジュールの処理クロックの周波数を優先的に増加させ、単位時間当たりの転送量を上昇させることが可能になる。更には、デットラインに必要な処理性能を超えているバスマスタに接続された処理モジュールの処理クロックの周波数を減少させることが可能である。以上により、適切なデッドラインを保証することが、小さな消費電力で実現可能なバスシステムを構築できる。
(第1の実施形態)
以下に、図面を参照しながら、本発明の第1の実施形態について説明する。
図1は、バスマスタの構成の一例を表すブロック図である。
図1において、バスマスタ1は、バススレーブI/F部10、転送時間レジスタ11、転送量レジスタ12、転送開始レジスタ13、処理サイクルレジスタ15、バスマスタI/F部20、及びバスマスタ制御部21を備えて構成される。更にバスマスタ1は、データ処理部22、転送要求度計算部23、残り転送時間レジスタ24、残り転送量レジスタ25、及びFIFO27も備えている。
図2は、バスマスタ1を用いたバスシステムの概略構成の一例を表すブロック図である。尚、このバスシステムは、例えば計算機システムや画像処理システム等で使用される。
図2において、情報処理装置100は、バス40、CPU41、アービタ42、バスマスタ43〜45、バススレーブ46、47、処理モジュール48〜50、及びクロック供給回路51を備えて構成される。尚、図2に示すバスマスタ43〜45は、各々図1に示したバスマスタ1に相当する。
まず、図1に示したバスマスタ1の概要を説明する。
バススレーブI/F部10は、バス40上のCPU(図2のCPU41に相当する)からのレジスタアクセスを受け付けるインターフェースである。
転送時間レジスタ11は、バスマスタ1が行うデータ転送に要求される転送時間(即ち、転送開始から転送終了までの時間の最大値)を1μ秒単位で設定する、転送時間設定のためのレジスタである。転送量レジスタ12は、バスマスタ1が行うデータ転送の転送量をバイト単位で設定する、転送量設定のためのレジスタである。
またバスマスタ1は、転送開始レジスタ13に「1」が書き込まれることによってデータ転送を開始し、転送が完了すると転送開始レジスタ13の値を自動的にクリアする。
FIFO27は、処理モジュール(図2の処理モジュール48〜50に相当する)の処理クロック周波数とバス40のクロック周波数との違いを吸収するために、処理モジュールからのデータや処理モジュールへのデータを一時的に格納する。FIFO27があることで、処理モジュールの処理クロック周波数がバス40のクロック周波数より遅くなっても、バス40の転送効率を低下させないようにすることができる。
バスマスタI/F部20は、バス40上のバススレーブ(図2のバススレーブ46、47に相当する)と、後述するデータ処理部22との間のデータ転送を行うためのインターフェースである。
バスマスタ制御部21は、バスマスタI/F部20、転送開始レジスタ13、後述する残り転送時間レジスタ24、並びに残り転送量レジスタ25を制御する。
データ処理部22は、転送データを生成又は受信する部分である。データ処理部22が備える機能は、バスマスタ1に要求される機能によって異なる。データ処理部22は、例えば、画像処理を行うブロックや、外部との通信を行うインターフェースブロック等を備えることができる。
次に、バスマスタ1の詳細について説明する。バス40上のCPU41から転送開始レジスタ13に「1」が書き込まれると、バスマスタ制御部21は、残り転送時間レジスタ24並びに残り転送量レジスタ25に対してロード信号をアサート(assert)する。
これにより、転送時間レジスタ11の値が残り転送時間レジスタ24にコピーされると共に、転送量レジスタ12の値が残り転送量レジスタ25にコピーされる。
その後バスマスタ制御部21は、残り転送時間レジスタ24に対しては1μ秒ごとに時間減算信号をアサートする。これにより、残り転送時間レジスタ24は、時間減算信号を受信するたびに1μ秒を減算して、データを転送すべき期限までの残り時間を計数(残り時間計数)を行う。また、バスマスタ制御部21は、残り転送量レジスタ25に対してはデータ転送が行われる度に転送されたバイト数分の転送量減算信号をアサートする。これにより、残り転送量レジスタ25は、転送量減算信号を受信するたびに、受信した転送量減算信号に応じて未転送の残りのデータ量を計数して、残りデータ量計数を行う。
例えば本実施形態においては、バス40における1ワードは32ビットである。このため、転送量減算信号として、1ワードの転送が行われた場合には「4」が、ハーフワード転送が行われた場合には「2」が、バイト転送が行われた場合には「1」がそれぞれアサートされる。残り転送量レジスタ25は、自身の値から転送量減算信号の値を減算する。
以上により、残り転送時間レジスタ24並びに残り転送量レジスタ25の値は減算され、残り転送時間並びに残り転送量の値が適切に更新される。
データ処理部22も、転送開始レジスタ13に「1」が書き込まれることによって起動される。
データが送信可能若しくは受信可能になると、データ処理部22は、バスマスタ制御部21に対してデータレディ信号をアサートする。
データレディ信号のアサートを受けて、バスマスタ制御部21は、バス40上のアービタ(図2のアービタ42に相当する)に対して転送要求信号をアサートするよう、バスマスタI/F20を制御する。
一方、転送要求度計算部23は、残り転送時間レジスタ24並びに残り転送量レジスタ25の値に基づいてデータ転送の要求レートを計算する。当該要求レートは、バスマスタの優先度決定のために利用できる。 本実施形態における転送要求度計算部23の計算式は、以下の(1)式で与えられる。
要求レート=(残り転送量レジスタ25の値/残り転送時間レジスタ24の値) ・・・(1)
この計算式により、残りのデータ量が同一である場合、残り時間が少なくなるほど転送要求度(要求レート)は大きくなる。一方、同一の残り時間に対しては、残りデータ量が多くなるほど転送要求度は大きくなる。転送要求度計算部23は、クロック供給回路51に対して、要求レートの計算結果を出力する。
図3は、クロック供給回路51の詳細な構成の一例を表す図である。
図3において、クロック選択回路61は、バスマスタ43〜45毎の要求レートと処理サイクルとを入力し、各バスマスタ43〜45に接続される処理モジュール48〜50に対して最適な処理クロックを選択する。ここで、処理サイクルは、処理モジュール48〜50がFIFO27に1ワードを転送するために要するクロックサイクルであり、各処理モジュールの処理能力を表す。この処理サイクルは、処理サイクルレジスタ15に設定される。よって、各バスマスタは、自身に接続された処理モジュールの処理能力検出を該処理サイクルレジスタ15に設定された処理サイクルに基づいて行うことができる。
カウンタ68は、バス40の転送クロックによってカウントするカウンタである。本実施形態では、カウンタ68は、160MHzの160進カウンタである。
ゲート信号生成回路62〜64はそれぞれ、クロック選択回路51によって選択された周波数を出力するために、160進カウンタ68のカウント値から、ゲート信号を生成する。クロックゲート回路65、66、67は、それぞれゲート生成回路62〜64が生成したゲート信号によって決定される周波数のクロックを出力する。
本実施形態では、0〜160MHzのクロックを1MHzの分解能で生成することが可能である。
図4は、クロック選択回路61の詳細なアルゴリズムの一例を表すフローチャートである。
ステップS401において、クロック選択回路61は、変数の初期化を行う。具体的にクロック選択回路61は、残りレートをバス40の最大の転送レートである「160」に設定する。ここで、転送レートの単位はMW/secであって、単位時間あたりのデータ量を表す(M=106、W=ワード)。また、ループ回数をバスマスタの総数に設定する。図2に示した例では、ループ回数を「3」に設定する。
次に、ステップS402において、クロック選択回路61は、要求レートに基づいて、優先されるバスマスタを選択する。ここでは、要求レートの高いバスマスタを選択する。即ち、要求レートの高いバスマスタに高い優先度が与えられる。要求レートが同じ場合には、マスタ番号の小さいものが優先されるものとする。
次に、ステップS403において、クロック選択回路61は、ステップS402で選択したバスマスタの要求レートが、残りレートよりも大きいか否かを判定する。この判定の結果、ステップS402で選択したバスマスタの要求レートが、残りレートよりも大きい場合(ステップS403において「YES」)にはステップS404へ進む。一方、残りレートの方が要求レートよりも大きい場合には(ステップS403において「NO」)、ステップS405へ進む。
ステップS404でクロック選択回路61は、バスマスタ43〜45のうち、優先マスタとしてステップS402で選択されたバスマスタに接続された処理モジュールのクロック周波数を、残りレートに該バスマスタの処理サイクルを乗算した値に設定する。この設定値は、該処理モジュールが残りレートを達成するためのクロック周波数に等しい。また、周波数の分解能(本実施形態では1MHz)対して端数がある場合には設定値を切り上げるものとする。
一方、ステップS405でクロック選択回路61は、バスマスタ43〜45のうち、優先マスタとしてステップS402で選択されたバスマスタに接続された処理モジュールのクロック周波数を、要求レートに該バスマスタの処理サイクルを乗算した値とする。この設定値は、該処理モジュールが要求レートを達成するためのクロック周波数に等しい。また、周波数の分解能(本実施形態では1MHz)に対して端数がある場合には設定値を切り上げるものとする。
以上のようにして処理モジュール48〜50のクロック周波数が設定されると、ステップS406に進む。ステップS406に進むと、クロック選択回路61は、ループ回数から「1」を減算する。
次に、ステップS407において、クロック選択回路61は、ループ回数が0であるか否かを判定する。この判定の結果、ループ回数が0(ゼロ)である場合には(ステップS407において「YES」)、クロック選択処理を終了する。一方、ループ回数が0でない場合は(ステップS407において「NO」)、ステップS402へ戻って、未選択のバスマスタについて、クロック周波数を選択するための処理を実行する。
図4の処理を周期的に行うことによって、各バスマスタ43〜45の要求レートに従ったクロック周波数を動的に設定すること(動的なクロック切り替え)が可能になる。
以下、図5を参照して、本実施形態に対応するクロック周波数の動的設定処理の具体例を説明する。図5は、3つのバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。
本実施形態においては、バスマスタ43(マスタ1)は、転送すべきデータ量:d1、目標転送時間(デッドライン):t1として、初期の要求レートは120MW/secとなる。また、バスマスタ44(マスタ2)は、転送すべきデータ量:d2、目標転送時間(デッドライン):t2として、初期の要求レートは50MW/secとなる。さらに、バスマスタ45(マスタ3)は、転送すべきデータ量:d3、目標転送時間(デッドライン):t3として、初期の要求レートは25MW/secである。なお、本実施形態では、d2>d1>d3である。 また、各バスマスタ43〜45に接続された処理モジュール48〜50の処理サイクルは、以下の通りである。即ち、処理モジュール48の処理サイクルは1サイクルであり、処理モジュール49の処理サイクルは2サイクルであり、処理モジュール50の処理サイクルは2サイクルである。
データの転送を開始したときは、バスマスタ43(マスタ1)の要求レートが最大であるので、バスマスタ43(マスタ1)の要求を満足するようにデータを転送する。そのため、バスマスタ43(マスタ1)に接続される処理モジュール43には、要求レートに処理サイクルを乗算した120MHzのクロックが供給される。
次に優先されるバスマスタは、バスマスタ44(マスタ2)である。従って、バスマスタ44(マスタ2)のクロック周波数を、バスマスタ43(マスタ1)の転送要求が満足するように決定する。つまり、バス40の最大の転送能力は160MW/secであるので、バスマスタ44(マスタ2)の転送レートは、160MW/secから120MW/secを減算した残りのレート(40MW/sec)が最大値となる。
バスマスタ44(マスタ2)の要求レートは50MW/secであるが、この要求レートは、残りのレートを超えている。このため、バスマスタ44(マスタ2)に接続された処理モジュール49には、残りのレート(40MW/sec)に処理サイクルを乗算した80MHzのクロックが供給される。
バスマスタ45(マスタ3)の要求レートは25MW/secであるが、バスマスタ43、44(マスタ1、2)のデータ転送を満足させるようにすると残りのレートが0(ゼロ)である。このため、バスマスタ45(マスタ3)に接続された処理モジュール50は、0MHz(停止状態)になる。
転送時間t1が経過すると、バスマスタ43(マスタ1)は全てのデータ量d1の転送を終了する。そうすると、バスマスタ43(マスタ1)の要求レートは0(ゼロ)になる。
転送時間t1が経過した時点でのバスマスタ44(マスタ2)の要求レートは、(d2−40MW・t1)/(t2−t1)=60MW/secであり、バスマスタ45(マスタ3)の要求レートは、d3/(t3−t1)=30MW/secである。従って、要求レートが高いバスマスタ44(マスタ2)がバスマスタ45(マスタ3)に優先され、バスマスタ44(マスタ2)に接続された処理モジュール49には、要求レートに処理サイクルを乗算した120MHzのクロックが供給される。そうすると、残りのレートは160MW/sec−60MW/sec=100MW/secである。バスマスタ45(マスタ3)の要求レート(30MW/sec)は、この残りのレートを超えない。このため、バスマスタ45(マスタ3)に接続された処理モジュール50には、要求レートに処理サイクルを乗算した60MHzのクロックが供給される。
転送時間t2が経過すると、バスマスタ44(マスタ2)は全てのデータ量d2の転送を終了する。そうすると、バスマスタ44(マスタ2)の要求レートが0(ゼロ)になる。
転送時間t2が経過した時点でのバスマスタ45(マスタ3)の要求レートは{d3−(t2−t1)・30MW}/(t3−t2)=30MW/secである。よって、バスマスタ45(マスタ3)に接続された処理モジュール50には、要求レートに処理サイクルを乗算した60MHzのクロックが引き続き供給される。
転送時間t3が経過すると、バスマスタ45(マスタ3)は全てのデータ量d3の転送を終了する。そうすると、バスマスタ45(マスタ3)での要求レートが0(ゼロ)となる。
尚、本実施形態において、バスマスタやそれに接続される処理モジュールの数は3個に限定されるものではない。
また、図3に示したカウンタ68は、160MHzの160進カウンタに限定されるものではない。例えば、8進カウンタである場合はクロックの分解能が20MHzとなる。
更に選択可能なクロックが単純な分周であってもよい。例えば、選択可能なクロックが160MHz、80MHz、40MHz、20MHz、0MHzであってもよい。この場合、選択可能なクロック周波数の中から要求レートに最も近いクロック周波数に、処理モジュールのクロックを切り替えるようにすれば、図4のアルゴリズムを適応することが可能である。このように、段階的な周波数の切り替えであっても、動的に制御を行うことでデットラインの保証が可能となる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。尚、以下の説明において、第1の実施形態と同一の部分については、詳細な説明を省略する。
図6は、バスシステムの概略構成の一例を表すブロック図である。
図6において、情報処理装置200は、上位階層バス140、CPU141、アービタ142、バスマスタ143、バススレーブ146、処理モジュール148、及び下位階層バス160を備えて構成される。更に情報処理装置200は、バスマスタ144、145、バススレーブ147、処理モジュール149、150、クロック供給部151、及びバスブリッジ152を備えている。
前述した第1の実施形態で説明した図2の情報処理装置100と、本情報処理装置200との相違点は、上位階層バス140と下位階層バス160との2つにバスが階層化されている点である。
バス階層を跨いたデータの転送は、バスブリッジ152を介して行われる。ここで、上位階層バス140では、160MHzのクロックでデータの転送が行われ、下位階層バス160では。40MHzのクロックでデータの転送されるものとする。従って、バスの最大転送レートは、上位階層バス140で160MW/secとなり、下位階層バス160で40MW/secとなる。
図8は、バスマスタの構成の一例を表すブロック図である。
図8において、バスマスタ101は、バススレーブI/F部110、転送時間レジスタ111、転送量レジスタ112、転送開始レジスタ113、転送能力レジスタ114、バスマスタI/F部120、及びバスマスタ制御部121を備えて構成される。更にバスマスタ101は、データ処理部122、転送要求度計算部123、残り転送時間レジスタ124、残り転送量レジスタ125、及びFIFO127も備えている。
前述した第1の実施形態で説明した図1のバスマスタ1と、本バスマスタ101との相違点は、以下の2点である。第1に、本実施形態のバスマスタ101は、バスマスタに接続された処理モジュールの処理サイクルを設定する処理サイクルレジスタ15を有していない。第2に、本実施形態のバスマスタ101は、転送サイクルレジスタ114を有している。転送サイクルレジスタ114は、後述の式(2)で求められるバスマスタの転送サイクル(転送能力)を設定する、転送能力設定のためのレジスタである。
上位階層バス140に接続されたバスマスタ143の転送サイクルは、1サイクルである。下位階層バス160に接続されたバスマスタ144、145の転送サイクルは、以下の(2)式によって決定される。
転送サイクル=(上位階層バス140のクロック周波数/下位階層バス160のクロック周波数) ・・・(2)
上述のように、上位階層バス140のクロック周波数は160MHzであり、下位階層バス160のクロック周波数は40MHzである。従って、バスマスタ143(マスタ1)の転送サイクルは1サイクルになり、バスマスタ144、145(マスタ2、3)の転送サイクルは、160/40=4サイクルになる。
転送要求度計算部123は、残り転送時間レジスタ124並びに残り転送量レジスタ125の値、更にはCPU141によって予め設定された転送サイクルレジスタ114の値に基づいてデータ転送の要求レート及び要求度を計算する。
本実施形態における転送要求度計算部123は、要求レートを以下の(3)式で求める。
要求レート=(残り転送量レジスタ125の値/残り転送時間レジスタ124の値) ・・・(3)
また、転送用要求度計算部123は、要求度を以下の(4)式で求める。
要求度=(要求レート×転送サイクルレジスタ114の値) ・・・(4)で与えられる。
この(3)式及び(4)式により、バスマスタの転送サイクルが同一であり、且つ残りのデータ量が同一である場合には、残り時間が少なくなるほど転送要求度は大きくなる。
一方、バスマスタの転送サイクルが同一であり、且つ残り時間が同一である場合には、残りデータ量が多くなるほど転送要求度は大きくなる。
更には、残りのデータ量が同一であり、且つ残り時間が同一である場合には、バスマスタの転送サイクルが大きいほど転送要求度は大きくなる。
転送量転送要求度計算部123は、クロック供給回路151に対して、転送要求度の計算結果と要求レートの計算結果とを出力する。
転送要求度信号をアサートするタイミングは、転送要求信号のアサートの開始と同一サイクルであり、以降、データの転送が完了するまで転送要求度及び要求レートの値は保持される。
図10は、クロック選択回路161の詳細なアルゴリズムの一例を表すフローチャートである。
ステップS1001〜S1003及びステップS1006〜S1007は、それぞれ第1の実施形態で説明した図4のステップS401〜S403及びステップS406〜S407と同じ処理を行う。
図10のフローチャートと、第1の実施形態で説明した図4のフローチャートとの違いは以下の2点である。
第1に、ステップS1004において、クロック選択回路161は、クロックを残りレートに設定する。第2に、ステップS1005において、クロック選択回路161は、クロックを要求レートに設定する。
本実施形態では、バスマスタ143〜145に接続された全ての処理モジュール148〜150が、1クロックで1ワードの転送が可能であることを想定しており、処理モジュール148〜150の処理サイクルを考慮していない。しかしながら、処理モジュール148〜150が1ワードを転送するために複数のクロックを要する場合には、第1実施形態で説明した処理モジュールの処理サイクルを考慮しなければならない。
図9は、本実施形態のクロック供給回路151の詳細な構成の一例を表す図である。
図9において、161はクロック選択回路である。165〜167はクロックゲート回路である。162〜164はゲート信号生成回路である。
第1の実施形態で説明した図3のクロック供給回路51と、図9のクロック供給回路151との違いは、以下の2点である。第1に、図9のクロック供給回路151は、各バスマスタ143〜145に接続された処理モジュール148〜150の処理サイクルを入力しない。第2に、図9のクロック供給回路151は、各バスマスタ143〜145の転送要求度計算部123が出力する要求度を入力する。
以下、図7を参照して、本実施形態に対応するクロック周波数の動的設定処理の具体例を説明する。図7は、バスが階層化されて構成されたバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。
本実施形態では、バスマスタ143(マスタ1)の初期の要求レートを、転送すべきデータ量:d1、目標転送時間(デッドライン):t1として、120MW/secとする。また、バスマスタ144(マスタ2)の初期の要求レートを、転送すべきデータ量:d2、目標転送時間(デッドライン):t2として、33MW/secとする。さらに、バスマスタ145(マスタ3)の初期の要求レートを、転送すべきデータ量:d3、目標転送時間(デッドライン):t3として、25MW/secとする。なお、本実施形態では、d1>d3>d2である。 また、バスマスタ143(マスタ1)の転送サイクルは1サイクル、バスマスタ144(マスタ2)の転送サイクルは4サイクル、バスマスタ145(マスタ3)の転送サイクルは4サイクルである。
この場合、バスマスタ143(マスタ1)の初期の要求度は120(=120×1)となる。また、バスマスタ144(マスタ2)の初期の要求度は132(=33×4)となる。さらに、バスマスタ145(マスタ3)の初期の要求度は100(=25×4)となる。このように、データの転送を開始したときは、バスマスタ144(マスタ2)の要求度が最大である。
ここで注目すべきは、要求レートはバスマスタ144(マスタ2)の方が、バスマスタ143(マスタ1)よりも低いにもかかわらず、要求度はバスマスタ144(マスタ2)の方が、バスマスタ143(マスタ1)よりも高くなっている点である。これは、バスマスタ144(マスタ2)の転送能力が低いため(実際には下位階層バス160の転送能力が低いため)、デットラインを保証するための緊急度がバスマスタ143(マスタ1)よりもバスマスタ144(マスタ2)の方が高くなるからである。
従って、バスマスタ144(マスタ2)の要求を満足するようにデータを転送する。即ち、バスマスタ144(マスタ2)に接続された処理モジュール149には、33MHzのクロックが供給される。
次に優先されるバスマスタは、バスマスタ143(マスタ1)である。従って、バスマスタ143(マスタ1)のクロック周波数を、バスマスタ144(マスタ2)の転送要求を満足するように決定する。つまり、残りの転送レートは127MW/secであるので、バスマスタ143(マスタ1)の要求レートは、この残りの転送レートを超えない。従って、バスマスタ143(マスタ1)に接続された処理モジュール148には、120MHzのクロックが供給される。そして、残りのレートは7MW/secとなる。バスマスタ145(マスタ3)の要求レートは、この残りのレートを超える。このため、バスマスタ145(マスタ3)に接続された処理モジュール150には、7MHzのクロックが供給される。
転送時間t1が経過すると、バスマスタ143(マスタ1)は全てのデータ量d1の転送を終了する。そうすると、バスマスタ143(マスタ1)の要求レートは0(ゼロ)になる。
転送時間t1が経過した時点でのバスマスタ144(マスタ2)の要求レートは、(d2−t1・33MW)/(t2−t1)=33MW/secとなる。また、バスマスタ145(マスタ3)の要求レートは、(d3−t1・7MW)/(t3−t1)=28MW/secである。この時点でのバスマスタ144(マスタ2)の要求度は、132(=33×4)であり、バスマスタ145(マスタ3)の要求度は、112(=28×4)である。従って、要求度が高いバスマスタ144(マスタ2)がバスマスタ145(マスタ3)に優先され、バスマスタ144(マスタ2)に接続された処理モジュール149には、33MHzのクロックが供給される。
残りのレートは127MW/secである。この残りのレートは、バスマスタ145(マスタ3)の要求レートを超えている。このため、バスマスタ145(マスタ3)に接続された処理モジュール150には、28MHzのクロックが供給される。
転送時間t2が経過すると、バスマスタ144(マスタ2)は全てのデータ量d2の転送を終了する。よって、バスマスタ144(マスタ2)の要求レートが0(ゼロ)になる。
転送時間t2が経過した時点でのバスマスタ145(マスタ3)の要求度は{d3−(t1・7MW)−(t2−t1)・28MW}/(t3−t2)=28MW/secである。よって、バスマスタ145(マスタ3)に接続された処理モジュール150には、28MHzのクロックが引き続き供給される。
転送時間t3が経過すると、バスマスタ145(マスタ3)は全てのデータ量d3の転送を終了する。よって、バスマスタ145(マスタ3)での要求レートが0(ゼロ)となる。
なお、第1の実施形態で説明した図4、及び本実施形態で説明した図7では、バスの転送効率が100%の場合を想定している。一方、現実のバスシステムは、バスマスタの切り替わりや、バススレーブの待ち時間等によって、転送効率が低下する場合が多い。
しかしながら、第1及び第2の実施形態では、実際の転送時間と転送量とを各バスマスタが監視(モニタ)している。従って、転送効率が低下した分、要求度や要求レートを上昇させることによって、動的な調整が可能となり、各バスマスタに対して正確にデットラインを保証することが可能になる。
以上のような構成並びに方式を採り、バスマスタの転送クロックを制御することで、バスを階層化した構成にしても、そうしない構成にしても、各バスマスタに対して適切なデッドライン保証を行うことが可能となる。
また、処理モジュールのクロックがデータの転送に最適化されるために、消費電力を軽減することが可能となる。
(第3の実施形態)
以下に、図面を参照しながら、本発明の第3の実施形態について説明する。
図11は、バスマスタ1を用いたバスシステムの概略構成の一例を表すブロック図である。尚、このバスシステムは、例えば計算機システムや画像処理システム等で使用される。
図11において、情報処理装置300は、バス240、CPU241、アービタ242、バスマスタ243〜245、バススレーブ246、247、処理モジュール248〜250、及びクロック供給回路251、電源供給回路252、253、254を備えて構成される。尚、図11に示すバスマスタ243〜245は、各々図1に示したバスマスタ1に相当する。
処理モジュール248、249、250用の駆動電源は、それぞれ電源供給回路252、253、254から供給される。その他のブロック241、242、243、244、245、246、247、251、252、253、254の電源は、外部のコア電源260から供給されるものとする。また、処理モジュール248、249、250は、それぞれバスマスタ243、244、245やクロック供給回路251と異なる電圧値によって電源が供給されても問題がないように回路が構成されているものとする。
図12は、本実施形態のクロック供給回路251の詳細な構成の一例を表す図である。
図12において、261はクロック選択回路である。265〜267はクロックゲート回路である。262〜264はゲート信号生成回路である。
第1の実施形態で説明した図3のクロック供給回路51と、図12のクロック供給回路251との違いは、クロック選択回路261で生成する処理モジュール248、249、250のクロックの周波数値を出力していることである。当該クロック周波数値は、処理モジュール248、249、250にそれぞれ駆動電源の供給を行う電源供給回路252、253、254に出力される。
図13は、本実施形態の電源供給回路252、253、254の詳細な構成の一例を表す図である。
図13において、271は、クロック供給回路251のクロック選択回路261から供給されたクロック周波数値を電圧値に変換するためのルックアップテーブル(以下、LUTと呼ぶ)である。272は、LUT271から与えられるデジタル値であるところの電圧値をアナログ値に変換するデジタルアナログ変換回路(以下、D/A変換回路と呼ぶ)である。273は、D/A変換回路によって与えられるアナログ値に応じてコア電源から処理モジュール248、249、250の電源を生成する電圧生成回路である。
図14は、LUT271において周波数値を電圧値に変換する特性を表す図である。周波数が最大値の場合、電圧値はコア電圧と同じ値である。周波数値が下がると電圧値も降下する。この特性は本実施形態であるところのバスシステムが利用する半導体の特性に合わせればよい。
上述のように、処理モジュール248、249、250のバス転送の状況に応じて最適な周波数のクロックを供給するとともに、クロックの周波数に応じた最適な電圧を供給することで消費電力の更なる軽減が可能である。
(本発明の他の実施形態)
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給してもよい。そのシステムあるいは装置のコンピュータ(CPUあるいはMPU)に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになる。また、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでない。そのプログラムコードがコンピュータにおいて稼働しているオペレーティングシステムあるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードに備わるCPUが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
また、供給されたプログラムコードがコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいて機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
なお、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の第1の実施形態を示し、バスマスタの構成の一例を表すブロック図である。 本発明の第1の実施形態を示し、バスマスタを用いたバスシステムの概略構成の一例を表すブロック図である。 本発明の第1の実施形態を示し、クロック供給回路の詳細な構成の一例を表す図である。 本発明の第1の実施形態を示し、クロック選択回路の詳細なアルゴリズムの一例を表すフローチャートである。 本発明の第1の実施形態を示し、3つのバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。 本発明の第2の実施形態を示し、バスシステムの概略構成の一例を表すブロック図である。 本発明の第2の実施形態を示し、バスが階層化されて構成されたバスマスタが同時にデータの転送を開始した場合の様子の一例を表す図である。 本発明の第2の実施形態を示し、バスマスタの構成の一例を表すブロック図である。 本発明の第2の実施形態を示し、クロック供給回路の詳細な構成の一例を表す図である。 本発明の第2の実施形態を示し、クロック選択回路の詳細なアルゴリズムの一例を表すフローチャートである。 本発明の第3の実施形態を示し、バスマスタを用いたバスシステムの概略構成の一例を表すブロック図である。 本発明の第3の実施形態を示し、クロック供給回路の詳細な構成の一例を表す図である。 本発明の第3の実施形態を示し、電源供給回路の詳細な構成の一例を表す図である。 本発明の第3の実施形態を示し、周波数値と電圧値の特性を表す図である。
符号の説明
1、101 バスマスタ
10、110 バススレーブI/F部
11、111 転送時間レジスタ
12、112 転送量レジスタ
13、113 転送開始レジスタ
14 転送サイクルレジスタ
15 処理サイクルレジスタ
20、120 バスマスタI/F部
21、121 バスマスタ制御部
22、122 データ処理部
23、123 転送要求度計算部
24、124 残り転送時間レジスタ
25、125 残り転送量レジスタ
26、126 処理クロック供給部
27、127 FIFO
40、140、160 バス
41、141、241 CPU
42、142、161、242 アービタ
43、44、45、143、144、145、243、244、245 バスマスタ
46、47、146、147、246、247 バススレーブ
48〜50、148〜150、248〜250 処理モジュール
51、151、251 クロック供給部
61、161、261 クロック選択回路
62〜64、162〜164、262〜264 ゲート信号生成回路
65〜67、165〜167、265〜267 クロックゲート回路
68、168、268 カウンタ
100、200、300 情報処理装置
252、253、254 電源供給回路
260、コア電源
271 LUT
272 A/D変換回路
273 電圧生成回路

Claims (8)

  1. バスを介してバススレーブにデータを転送する転送手段と、
    前記データを転送すべき期限までの残り時間を計数する残り時間計数手段と、
    前記データのうち、未転送の残りのデータ量を計数する残りデータ量計数手段と、
    前記残り時間計数手段により計数された前記残り時間と、前記残りデータ量計数手段により計数された前記残りのデータ量とに基づいて、前記データを処理する処理モジュールの処理クロックを切り替えるクロック切り替え手段と
    を備えたことを特徴とするバスシステム。
  2. 前記クロック切り替え手段は、前記残り時間計数手段により計数された前記残り時間と、前記残りデータ量計数手段により計数された前記残りのデータ量との比に基づいて、前記処理クロックを切り替えることを特徴とする請求項1に記載のバスシステム。
  3. 前記データの転送時間を設定する転送時間設定手段と、
    前記データの転送量を設定する転送量設定手段とを有し、
    前記残り時間計数手段は、前記転送時間設定手段により設定された転送時間に基づいて、前記データを転送すべき期限までの残り時間を計数し、
    前記残りデータ量計数手段は、前記転送量設定手段により設定された転送量に基づいて、前記未転送の残りのデータ量を計数することを特徴とする請求項1又は2に記載のバスシステム。
  4. 前記転送手段と、前記残り時間計数手段と、前記残りデータ量計数手段とを少なくとも有する複数のバスマスタ装置を備え、
    前記複数のバスマスタ装置の要求レートに基づいて、優先度を決定する優先度決定手段を備え、
    前記クロック切り替え手段は、前記優先度決定手段により決定された優先度と、前記要求レートとに基づいて、前記複数のバスマスタ装置に接続された各処理モジュールのクロックを切り替えることを特徴とする請求項1から3の何れか1項に記載のバスシステム。
  5. 前記複数のバスマスタ装置は、前記データの転送能力を設定する転送能力設定手段を備え、
    前記優先度決定手段は、前記要求レートと前記データの転送能力との比に基づいて、優先度を決定することを特徴とする請求項4に記載のバスシステム。
  6. 前記複数のバスマスタ装置は、自身に接続された処理モジュールの処理能力を検出する処理能力検出手段を備え、
    前記クロック切り替え手段は、前記複数のバスマスタ装置の要求レートと、前記処理能力検出手段により検出された処理能力とに基づいて、前記複数のバスマスタ装置に接続された各処理モジュールのクロックを切り替えることを特徴とする請求項に記載のバスシステム。
  7. 前記複数のバスマスタ装置は、自身に接続された処理モジュールの処理能力を検出する処理能力検出手段を備え、
    前記クロック切り替え手段は、前記優先度決定手段により決定された優先度と、前記要求レートと、前記処理能力検出手段により検出された処理能力とに基づいて、前記複数のバスマスタ装置に接続された各処理モジュールのクロックを切り替えることを特徴とする請求項4又は5に記載のバスシステム。
  8. 前記クロック切り替え手段によって切り替えられたクロックの周波数に応じて、各処理モジュールを駆動する電源の電圧を切り替える手段を更に備えることを特徴とする請求項1から請求項7の何れか1項に記載のバスシステム。
JP2007150781A 2006-07-04 2007-06-06 バスシステム Active JP5408844B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007150781A JP5408844B2 (ja) 2006-07-04 2007-06-06 バスシステム
US11/765,172 US7681067B2 (en) 2006-07-04 2007-06-19 Bus system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006184812 2006-07-04
JP2006184812 2006-07-04
JP2007150781A JP5408844B2 (ja) 2006-07-04 2007-06-06 バスシステム

Publications (2)

Publication Number Publication Date
JP2008033896A JP2008033896A (ja) 2008-02-14
JP5408844B2 true JP5408844B2 (ja) 2014-02-05

Family

ID=38920306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007150781A Active JP5408844B2 (ja) 2006-07-04 2007-06-06 バスシステム

Country Status (2)

Country Link
US (1) US7681067B2 (ja)
JP (1) JP5408844B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080074545A (ko) * 2007-02-09 2008-08-13 삼성전자주식회사 버스 시스템 및 그 제어 방법
JP5224924B2 (ja) * 2008-06-18 2013-07-03 キヤノン株式会社 通信制御装置
GB201211340D0 (en) * 2012-06-26 2012-08-08 Nordic Semiconductor Asa Control of semiconductor devices
GB2544083B (en) * 2015-11-05 2020-05-20 Advanced Risc Mach Ltd Data stream assembly control

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263172A (en) * 1990-04-16 1993-11-16 International Business Machines Corporation Multiple speed synchronous bus having single clock path for providing first or second clock speed based upon speed indication signals
JPH0696014A (ja) * 1992-09-14 1994-04-08 Fuji Xerox Co Ltd バス使用優先順位制御装置
US5825992A (en) * 1995-06-09 1998-10-20 Ricoh Company, Ltd. Facsimile device
JPH10289203A (ja) * 1997-04-14 1998-10-27 Matsushita Electric Ind Co Ltd バス調停装置
JP2001243176A (ja) 2000-02-29 2001-09-07 Canon Inc 画像データ処理システム
JP2002099433A (ja) * 2000-09-22 2002-04-05 Sony Corp 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体
JP2004070579A (ja) * 2002-08-05 2004-03-04 Denso Corp タスクスケジューリング装置、タスクスケジューリング方法、プログラム
JP4033066B2 (ja) * 2003-05-07 2008-01-16 ソニー株式会社 周波数制御装置、情報処理装置、周波数制御方法及びプログラム
EP1475798A1 (en) * 2003-05-08 2004-11-10 Matsushita Electric Industrial Co., Ltd. Data processor, data processing method, program for data processor, and program recording medium
JP4974508B2 (ja) * 2005-10-28 2012-07-11 キヤノン株式会社 バスマスタ装置、バス調停装置及びバス調停方法

Also Published As

Publication number Publication date
US7681067B2 (en) 2010-03-16
US20080010391A1 (en) 2008-01-10
JP2008033896A (ja) 2008-02-14

Similar Documents

Publication Publication Date Title
US20200159279A1 (en) Low power autonomous peripheral management
TWI291086B (en) Frequency control apparatus and information processing apparatus
EP2558944B1 (en) Methods of bus arbitration for low power memory access
KR101443418B1 (ko) 파워 할당 관리 방법 및 시스템
US20090249089A1 (en) Method and apparatus for dynamic power management control using serial bus management protocols
US9747963B2 (en) Multi-channel memory system using asymmetric channel frequency scaling and related power management method
KR20130036011A (ko) 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
JP2005216308A (ja) 帯域幅成形システム及び方法
JP2005285093A (ja) プロセッサ電力制御装置及びプロセッサ電力制御方法
JP5408844B2 (ja) バスシステム
US7623395B2 (en) Buffer circuit and buffer control method
JP2006331107A (ja) 電力管理回路、及び電子回路
US20060095637A1 (en) Bus control device, arbitration device, integrated circuit device, bus control method, and arbitration method
JP2008046771A (ja) ダイレクトメモリアクセスコントローラ
CN110573989B (zh) 多客户端***中实时流的动态仲裁方法
JP2009116702A (ja) 半導体集積回路
CN111399614A (zh) 用于控制功率的电子电路
US20060047866A1 (en) Computer system having direct memory access controller
EP1513069A2 (en) Resource management apparatus
JP4696003B2 (ja) データ転送回路
JP2016076249A (ja) 画像処理装置、その制御方法、及びプログラム
JP5877348B2 (ja) メモリ制御システム及び電力制御方法
JP2003271542A (ja) ダイレクトアクセスコントローラ
JP2005063358A (ja) 命令供給制御装置および半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131105

R151 Written notification of patent or utility model registration

Ref document number: 5408844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151