JP5623150B2 - 電子機器及びその制御方法 - Google Patents

電子機器及びその制御方法 Download PDF

Info

Publication number
JP5623150B2
JP5623150B2 JP2010139941A JP2010139941A JP5623150B2 JP 5623150 B2 JP5623150 B2 JP 5623150B2 JP 2010139941 A JP2010139941 A JP 2010139941A JP 2010139941 A JP2010139941 A JP 2010139941A JP 5623150 B2 JP5623150 B2 JP 5623150B2
Authority
JP
Japan
Prior art keywords
bus
burst length
bus master
data
real
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.)
Expired - Fee Related
Application number
JP2010139941A
Other languages
English (en)
Other versions
JP2012003636A5 (ja
JP2012003636A (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 JP2010139941A priority Critical patent/JP5623150B2/ja
Publication of JP2012003636A publication Critical patent/JP2012003636A/ja
Publication of JP2012003636A5 publication Critical patent/JP2012003636A5/ja
Application granted granted Critical
Publication of JP5623150B2 publication Critical patent/JP5623150B2/ja
Expired - Fee Related 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

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

Description

本発明は、電子機器及びその制御方法に関する。
複数のバスマスタが効率良くバスへアクセスする方式として、スプリット・バス・トランザクションという方式がある。スプリット・バス・トランザクションは、バスへのリクエストを、予め予約しておく点に特徴がある。このようにしてスレーブへのアクセス要求(リクエスト)と応答とを分離することで、スループットの向上が図られる反面、リアルタイム性の高いバスマスタからの要求にもかかわらず、スレーブ応答が遅れる可能性がある。
特許文献1は、リアルタイム性の高いバスマスタのスレーブ応答の遅れることを回避するために、スレーブ応答時間の最悪値とデータバッファの蓄積量から、他のバスマスタのアクセスを禁止する方式を提案している。
特開2006-189919号公報
しかしながら、現行のデジタルスチルカメラ等の製品においては、内部バス(特定のバスマスタとバススレーブ間のバス)と、外部バス(外部メモリとスレーブが接続されるバス)の比率が異なる場合がある。例えば、製品形態として上位機種と呼ばれるものは、外部バスとして帯域の大きいもの(ここでは、外部メモリのデータ幅やクロックの周波数を指す)を使用する。その一方、下位機種と呼ばれる製品に対しては、コスト削減の目的で、外部バスに帯域の低いものを使用する。
一方、内部バスに関しては、一般的に、LSI等のハードウェアで実装されることが多く、製品形態(上位/下位)によらず、固定帯域を使用することになる。複数のLSIを開発するには開発工数やコストもかかるため、上位から下位の機種に関係なく、できるだけ同一のLSIを使用することが、デジタルスチルカメラの開発手法となっている。
外部バスの仕様に応じて、製品毎にバス使用条件に応じたバス設計を行うとすると、製品毎の設計負荷が生じ効率的ではない。特に、スプリット・バス・トランザクションを使用している場合、バススレーブの応答時間を考慮する必要があり、外部バスの変更に際してその都度変更するのは、大変手間のかかる作業となる。
以下に、スプリット・バス・トランザクションにおいて、外部バスに変更が生じたときのバススレーブの待ち時間がどのように変化するのかを簡単に説明する。
図12(A)は、内部バス、外部バス共に64ビット、クロック周波数が同一のバスアクセスのタイミングチャートである。3つのバスマスタA、B、Cを仮定し、バスマスタA、Bはバスリクエストを既に発行済みである。ここでバスマスタCがバスリクエストを発行すると、予約済のバスマスタA、Bの処理終了後にバスマスタCの処理が開始される。従って、このときのバスマスタCのスレーブ応答待ち時間は、図示された、T1の時間となる。なお、各バスマスタは、それぞれ、最大バースト長として「4」の長さのアクセスを行っている。
一方、図12(B)は、図12(A)に対して、外部バスが32ビットに削減された場合のタイミングチャートである。このとき、外部バスは、図12(A)のときのバス幅に対して1/2となるため、外部バスのアクセス時間は、2倍の時間を要する。従って、バスマスタCのスレーブ応答の待ち時間T1は、約2倍の時間となる。
このような場合、従来のような他のバスマスタのアクセスを禁止するような制御だけでは、待ち時間が長くなった分だけアクセスが禁止される可能性が高まる。その結果、禁止時間が多くなり、他のバスマスタの処理が遅れ、全体処理のスループット低下につながることが想定される。
そこで本発明は、全体処理のスループット低下を防止しつつも、リアルタイム性を必要とするバスマスタの動作を保証するための技術を提供することを目的とする。
上記課題を解決するためのある側面に対応する発明は電子機器であって、
リアルタイム処理の開始要求に応じてリアルタイム処理を行う処理手段と、
バスと、
前記処理手段からのデータを転送する第1のバスマスタを含み、それぞれが前記バスに接続された複数のバスマスタと、
前記バスに接続され、前記複数のバスマスタとメモリとの間でデータの転送を行うメモリコントローラと、
前記複数のバスマスタから発行されたリクエストに応じて前記メモリコントローラによりデータの転送を行わせるとともに、前記バスマスタの転送データのバースト長を制御する制御手段とを備え
前記制御手段は、前記処理手段による前記リアルタイム処理が行われていない場合、前記複数のバスマスタのうち前記第1のバスマスタ以外の所定のバスマスタの転送データのバースト長を第1のバースト長に設定し、前記処理手段による前記リアルタイム処理が開始された場合、前記リアルタイム処理の開始要求を受け付けたときに発行済みのリクエストによるデータの転送が完了した後、前記所定のバスマスタにおける転送データのバースト長を、前記第1のバースト長から、前記第1のバースト長よりも短い第2のバースト長に変更することを特徴とする。
上記課題を解決するための他の側面に対応する発明は電子機器であって、
撮像手段と、
バスと、
前記撮像手段により得られた画像データを転送する第1のバスマスタを含み、それぞれが前記バスに接続された複数のバスマスタと、
前記バスに接続され、前記複数のバスマスタとメモリとの間で画像データの転送を行うメモリコントローラと、
前記複数のバスマスタから発行されたリクエストに応じて前記メモリコントローラにより画像データの転送を行わせるとともに、前記バスマスタの転送データのバースト長を制御する制御手段とを備え
前記制御手段は、前記撮像手段による連写処理が行われていない場合、前記複数のバスマスタのうち前記第1のバスマスタ以外の所定のバスマスタの転送データのバースト長を第1のバースト長に設定し、連写開始の要求により前記撮像手段による連写処理が開始された場合、前記連写開始の要求を受け付けたときに発行済みのリクエストによる画像データの転送が完了した後、前記所定のバスマスタの転送データのバースト長を、前記第1のバースト長から、前記第1のバースト長よりも短い第2のバースト長に変更することを特徴とする。
本発明によれば、全体処理のスループット低下を防止しつつも、リアルタイム性を必要とするバスマスタの動作を保証するための技術を提供することができる。
実施形態に対応する電子機器の構成例を示すブロック図。 実施形態に対応するデータバッファ9のデータの蓄積状況の説明図。 データバスの占有状況の一例の説明図。 データバスの占有状況の他の一例の説明図。 実施形態1を適用した場合のデータバスの占有状況の一例の説明図。 実施形態1に対応する処理のフローチャート。 実施形態2に対応する外部メモリに対するアクセスの説明図。 実施形態2に対応するフローチャート。 実施形態3に対応するバッファの蓄積量とアクセス制御の閾値との関係の説明図。 実施形態3における各バスマスタへの属性割り当ての説明図。 実施形態3に対応する処理のフローチャート。 内部バスと外部バスの帯域によりバスマスタの応答時間が変化することを概念的に説明する図。
次に図を参照しながら、本発明の実施形態について説明する。以下の実施形態では、内部バスに複数のバスマスタとバススレーブとが接続され、バススレーブを介した外部メモリへのアクセスをバスアービタを用いて制御するシステムLSIを備える電子機器の動作を説明する。当該電子機器の一例として各実施形態デジタルカメラを採用するが、デジタルカメラの代わりにデジタルビデオカメラ、カメラ付携帯電話、カメラ付きパーソナルコンピュータ等の撮像装置や情報処理装置を採用することも可能である。
[実施形態1]
図1は、実施形態1の電子機器の一例であるデジタルカメラにおけるバスシステムの構成を説明するブロック図である。以下、図1について説明をする。
図1において、システムLSI1は、発明の実施形態に対応するバスシステムを含むシステムLSIである。内部バス2は、システムLSI1内に存在する内部バスである。バスマスタ3から8は、内部バス2に接続されるバスマスタである。各バスマスタは属性情報を有する。この属性情報は、各バスマスタが必要とするバス帯域等によって、予め決定される。割り当てられた属性情報と、バスアービタからの禁止信号と制限信号とによって、各バスマスタの制御(主にバースト長)を切り替える。属性情報の決定方法の具体例及びそれを用いた制御の詳細については実施形態3で説明する。
データバッファ9は、第1のバスマスタとしてのバスマスタ#0に接続され、アクセス禁止要求信号15とアクセス制限要求信号16の2本の信号を出力する。バスアービタ10は、複数のバスマスタからのスレーブに対するリクエストの調停を行う。また、バスマスタに対するバースト長の切替指示を行う。より具体的には、データバッファ9から出力されるアクセス禁止要求信号15に従って、禁止信号を各バスマスタに発行できる。更に、データバッファ9から出力されるアクセス制限要求信号16によって、制限信号を各バスマスタに発行できる。アクセス禁止要求信号15及びアクセス制限要求信号16に基づく制御については実施形態3で説明する。
メインCPU11は、システムLSI1の制御を司り、各バスマスタに対して属性を設定することができる。バススレーブ12は、内部バスと接続され、外部メモリを制御するメモリコントローラとして機能する。本実施形態ではバススレーブの数は1個である。システムLSI1は、その他に外部メモリ(SDRAM)13と、外部メモリとバススレーブとを接続する外部バス14とを含む。
データバッファ9には、撮像回路20が接続されている。撮像回路20には、CCDやCMOSといった撮像素子で構成される光学センサ(以下センサ)22から読み出されたアナログデータが、回路群21でデジタルデータに変換されて入力される。撮像回路20には生成された撮像画像データが次々と入力され、バスマスタ#0(3)は内部バス2を介して外部メモリ13に撮像画像データを送信し、保持させる。これら一連の処理を撮像処理とする。撮像回路20、回路群21及びセンサ22は、全体として撮像画像データ生成部として機能する。バスマスタ#0(3)は、データバッファ9に蓄積される撮像画像データがオーバフローする前にデータを読み出し、バスへ送信しなくてはならない。従って、撮像処理は、データバッファ9をオーバフローさせないような、リアルタイム性を保証することが必要な「リアルタイム処理」に該当する。
現像処理回路30は、第2のバスマスタとしてのバスマスタ#3(6)と接続され、外部メモリ13に保持された撮像画像データを読み出す。現像処理回路30は、バスマスタ#3(6)が読み出した撮像画像データに、適正な画像処理を施してJPEG等の画像圧縮方式に従って圧縮処理を行う。これら一連の処理を現像処理とする。
本実施形態では、上述の撮像処理において、例えば連写のようなバースト的に撮像処理が行われた場合を説明する。
図2は、データバッファ9のデータの蓄積状況を説明する図である。ここでは撮像回路20から撮像画像データが送信され、データバッファ9に蓄えられていく。データバッファ9は、説明の簡単のため0から3までの4領域に分割している。ある時点において、領域0にデータが蓄積されている。バスマスタ#0(3)は、蓄積されているデータにつき、バスアービタ10にリクエストを発行する。
図3は、バスマスタ#0(3)が、リクエストを発行する際のタイミングチャートである。図2(A)の状態では、図3のサイクル6のタイミングで、バスリクエストが発行されるが、図3では、この時点で既に他のバスマスタ#2(5)及び#1(4)がバスリクエストを発行している。よって、これら発行済の2個のリクエストの処理が終了するまで、バスマスタ#0(3)のアクセスは待たされる。即ち、この待ち時間の間にデータバッファ9がオーバフローしなければ、撮像処理のリアルタイム性が保証されることになる。
ここで簡単のために、撮像回路20がデータバッファ9の1つの領域(図2で4分割した領域のうちの一つ分の領域)にデータを蓄積するのに要する時間と、バスマスタが、1回のアクセスを完了するまでの時間(図3のT1に相当する。)が同一であると仮定する。T1が経過した後のサイクル12の時点では、データバッファの状態は、図2(B)の状態となり、領域0、領域1にそれぞれデータが蓄積されている。更に、T1が経過した時点のサイクル17の時点では、図2(C)の状態となり、領域0、領域1及び領域2にそれぞれデータが蓄積されている。更にT1が経過したサイクル22の時点では、領域3までデータが蓄えられるが、領域0に空きができるので次の処理は領域0を使用できる。
次に、外部メモリ13のデータ幅が、前述の64ビットから32ビットとなるような場合について説明をする。図4は、外部バス14が32ビット時のタイミングチャートである。外部バスのバス幅が64ビットから32ビットと1/2となったために、マスタがアクセスを完了するまでの時間T1は2倍となっている。一方、撮像回路20からのデータ入力速度は変化しないため、1回のアクセスT1に対して、データバッファは、領域0から領域2までを消費し、次のアクセスでは、オーバフローを起こしリアルタイム性は成立しない。リアルタイム性を保証するためには、データバッファ9の容量を増やすか、リクエストの先行予約を禁止する等の対策を行わなくてはならない。
図5は、各バスマスタの属性に応じて、バスマスタ#0(3)以外のバスマスタ(#1や#2等)の最大バースト長を変更した場合のタイミングチャートを示している。なお、バスマスタ#1、#2等の最大バースト長を切り替えるタイミングについては、図6のフローチャートを参照して後述する。図4では、バスマスタ#1(4)及び#2(5)の内部バス2でのバースト長は、「4」であったが、図5では、バスマスタ#1(4)及び#2(5)のバースト長は「2」となっている。これにより、外部バス14が32ビット時にも、外部バス14にバースト長4でアクセスを行うことができることになり、バスマスタ#0のアクセスを待たせることなくリアルタイム性を保証することができる。
なお、図3乃至図5は、バスリクエストがバスアービタ10によって即座に受け付けられると仮定したタイミングチャートとなっている。
次に、図6を参照して、バスマスタの最大バースト長を切り替える処理を説明する。S601では、ユーザからの操作に基づき撮像画像データ生成部における連写の開始要求を受け付ける。当該開始要求は、CPU11が検知して、バスアービタ10に通知する。S602では、バスアービタ10が、連写開始要求を受付時点で予約されているバスマスタからのリクエストの処理の完了を確認する。これら予約されているリクエストは高々数個なので、これによりレリーズタイムラグのような問題が発生する可能性は極めて低いと考えられる。S603では、バスアービタ10が、最大バースト長として第1のバースト長(例えば、「4」)に割り当てられているバスマスタに対して、最大バースト長をより短い第2のバースト長(例えば、「2」)に切り替えるよう切替指示する。604では、センサからの撮像画像データを取り込み連写による撮像処理をスタートさせる。
なお、バスマスタ#0以外のバスマスタの最大バースト長を、初めから「2」に設定すれば、当然リアルタイム性を保証できる。しかし、バスの帯域を効率的に使用するには、1回あたりのトランザクションのバースト長をできるだけ長くとったほうが効率がよい。そこで現像処理を通常行う場合は、とり得る最大のバースト長を使用する一方、リアルタイム性を要求する連写処理といった特定の処理が発生した場合、現像処理のバースト長を「4」から「2」に削減する。これにより、撮像処理におけるデータバッファのオーバフローを回避し、連写における撮像処理のリアルタイム性を保証することができる。
本実施形態によれば、外部バスと、内部バスの比率が異なる場合において、内部バスを構成するシステムを変更することなく、特定のバスマスタのバースト長を変更することだけで、リアルタイム性を必要とするバスマスタの動作を保証できる。また、アクセス方式によって帯域が変わるようなSDRAM等の外部メモリとアクセスするような外部バスについては、帯域が変化するタイミングにて、特定のバスマスタのバースト長を制御する。これによりリアルタイム性を必要とするバスマスタの保証を行うことが可能である。
[実施形態2]
次に、実施形態2として、撮像処理と現像処理とが同時に動作する例を説明する。本実施形態における撮像装置の構成は図1に示すのと同様である。また、撮像処理、及び現像処理についても、実施形態1で説明した処理と同様である。実施形態2における撮像処理でも、実施形態1と同様に連写を行う。撮像画像データは、外部メモリ(SDRAM)113に随時保持される。
本実施形態では、外部メモリ(SDRAM)113が複数のバンクに分割されて構成されている。図7は実施形態2におけるバンク構成例を示す図である。図7に示すように、外部メモリ13は、4つのバンクに分割されている。以下、図7を参照して外部メモリ13に、連写された撮像画像データがどのように保持されるのかを説明する。まず、図7(A)に示すように、1枚目の撮像画像データはバンク0に保持され、2枚目の撮像画像データはバンク1に保持される。続いて3枚目の撮像画像データが外部メモリ13に入力されてきた場合、1枚目の撮像画像データは既に処理が終了されているとして、当該撮像画像データをバンク0に保持する。同様にして、4枚目の撮像画像データはバンク1に保持する。このようにして、バンク0とバンク1とを切り替えながら、撮像画像データを外部メモリ13へ保持していく。
次に、現像処理において、どのように撮像画像データを読み出すかについて説明する。まず、1枚目の撮像画像データのバンク0への書き込みが終了すると、2枚目の撮像画像データのバンク1への書き込みがスタートし、その時点でバンク0に書き込まれた撮像画像データの読み出しを開始する。2枚目の撮像画像データのバンク1への書き込みが終了した時点で、バンク1に書き込まれた撮像画像データの読み出しを開始する。
ここで配慮すべきは、撮像処理で外部メモリ13への書き込みのアクセスと、現像処理での外部メモリ13からの読み出しのアクセスとは、常に異なるバンクに対して行われる点である。その理由は、一般にSDRAMへのアクセスが、同一バンクで異なるページ(ROWアドレス)に対して行われた場合、ページクローズ及びページオープンがSDRAMのアクセスに発生し、SDRAMの効率を下げるからである。以下、このような動作をページコンフリクトと呼ぶ。ページクローズとはSDRAMへのプリチャージ動作をいい、ページオープンとはSDRAMへのページアクティブコマンドをいう。
ところが、SDRAM及びセンサの各仕様は製品仕様に応じて異なることが多く、撮像画像データのサイズとSDRAMの1バンクのサイズが所望なサイズとならない場合が発生する。この場合、撮像処理及び現像処理の各アクセスを完全に別バンクとすることが困難となる状況も生じ得る。例えば、図7(B)に示すように、撮像画像データの一部がバンク0をはみ出すと(図の領域701)、別のバンクへのアクセスが発生する。このはみ出したアクセスが、前述の現像処理のデータ読み出しと同一のバンクであった場合、撮像処理と現像処理とが、同一のバンクアクセスとなり、頻繁にページコンフリクトが発生し、予想されるSDRAMの帯域を下回る可能性がある。このような場合、実施形態1で既に説明したように、バスマスタ#0のスレーブ応答の待ち時間が長くなり、データバッファに蓄積される撮像画像データがオーバフローを起こし、リアルタイム性を保証できない可能性を生じる。
しかし、センサの画像サイズは既知のため、バンクをはみ出してアクセスするときのタイミングは、SDRAMへのアドレス更新を監視していれば容易にわかる。そこで本実施形態では、このタイミングを事前に検知してバスのアクセス方式を変更(バースト長を変更)することでリアルタイム性を保証することを目的とする。
次に図8を参照して、本実施形態の処理シーケンスを説明する。S801では、撮像処理を開始する。ここでの処理は連写での1枚分の処理である。S802では、バスアービタ10が現在実行されている撮像処理のアクセス先のバンクが異なるバンクに切り替わったか否か(バンクをはみ出したかどうか)を監視する。本実施形態では、バンクが切り替わった場合、同時に実行されている現像処理と同一のバンクにアクセスが発生しているとみなす。
そこで、S802にてバンクが切り替わったと判定された場合(S802で「YES」)、S803に移行する。S803では、バスアービタ10が、現像処理で内部バス2へアクセスするバスマスタ#3(6)の最大バースト長を「4」から「2」に切り替える指示をバスマスタ#3へ送信する。このようにして予約済のリクエストのバースト長を削減することで、同一バンクアクセスによるスレーブ最大応答時間がバッファのオーバフローまでの時間以内となれば、バースト長の削減でリアルタイム性を保証できる。
このようにして、撮像処理と現像処理とでアクセスするバンクが異なり、SDRAMの帯域を十分に使用できる場合、現像処理のバースト長を最大長4に割り当てる。その一方、SDRAMの帯域を十分に使用できないような、バンクコンフリクトが発生する場合、バースト長を「2」に落として、現像処理のスループットをできるだけ落とすことなく、撮像処理のリアルタイム性を保証することができる。
[実施形態3]
上述の実施形態1及び2では、特定処理のリアルタイム性を保証するため、スレーブ応答時間を削減する目的でリアルタイム性の高いバスマスタ以外のバスマスタのバースト長の変更を行った。ところが、昨今のデジタルカメラでは、リアルタイム性を保証する処理が多岐にわたり、各々について、同様な処理を行っていては開発の効率が悪い。本実施形態では、リアルタイム性の高いバスマスタに接続されるデータバッファの容量から、他のバスマスタの効率をできるだけ落とすことなく、ハードウェアによる処理により、自動的にリアルタイム性を保証する。
本実施形態における撮像装置の構成は図1に示すのと同様である。また、撮像処理、及び現像処理についても、実施形態1で説明した処理と同様である。なお、本実施形態におけるデータバッファ9の容量は、バスマスタがバスアクセスする際のスレーブ応答の最悪時間で見積もられる。特開2006-189919号公報は、データバッファに複数の閾値を持たせて、ある閾値に対して、データの蓄積量が上回った場合は、他のバスマスタのバスへのリクエスト発行を禁止する方法を提案している。
本実施形態は、これに対して、更に、バスマスタのリクエスト発行を禁止する目的ではなく、他のバスマスタのバースト長を制限することを目的とする閾値レベルを別途設ける。なお、閾値は、制限の発行と制限の解除にヒステリシスを持たせた複数の閾値を設定してもよいが、本実施形態では、簡単のために1つの閾値で説明を行う。
図9は、データバッファの閾値を説明した図である。図9(A)は、撮像回路20がデータの書き込みを実行する、データバッファ9のようなライトバッファについて説明したものである。また図9(B)は、バスマスタがデータの読み出しを実行するような、例えば表示画像データを外部メモリ13から読み出す場合等に使用されるデータバッファ(リードバッファ)を説明した図である。表示画像データは、特定のフレームレートで出力する必要があるためリアルタイム性が必要となる。本実施形態では、ライトバッファの場合について説明するが、図9(B)のようなリードバッファについても同様な処理を適用可能であることは当業者で有れば直ちに理解できるであろう。
図9(A)では、データがデータバッファ9の下から蓄積される例を示している。データバッファ9にデータが全く蓄積されていないときを「0」とし、データバッファ9にデータがフルに蓄積されたときを「FULL」として表記している。本実施形態では、アクセス禁止レベル901とアクセス制限レベル902の2通りのレベルを設定する。アクセス制限レベル902は、バッファにおけるデータ蓄積量が当該レベルを超えた場合に、データバッファ9がアクセス制限要求信号16をバスアービタ10に発行するための閾値として機能する。バスアービタ10はアクセス制限要求信号16を受信すると、バスマスタの属性に応じて特定のバスマスタに対して、制限信号を発行する。
ここで、属性の決め方の一例を示す。図10は、図1のバスマスタ#0から#5までの属性を、リアルタイム性の有無、アクセスタイプ及びバンド使用量によって決定している。なお、本実施形態におけるアクセスタイプは、SDRAMのアドレスを「連続」して行うか、或いは、「ランダム」に行うかで区別される。なお、連続して行う場合はバースト長を長くとるほうが効率が良くなる。属性は、「0」から「3」までの4段階で識別される。属性の値が「0」又は「1」のバスマスタは、実行する処理にリアルタイム性が必要とされるバスマスタであって、バスアービタ10からの禁止信号や制限信号によってバスへのリクエストが制御されることはない。
属性「0」と「1」の違いについては、属性0は、バスマスタ#0(3)のように、バンド使用量が多いためにリアルタイム性を確保するのに他のバスマスタの動作を制御しなければならない場合が発生するバスマスタである。即ち、「リアルタイム性・あり、アクセスタイプ:連続、バンド使用量:多い」、というパターンのバスマスタである。一方の属性1は、バンド使用量が少ないため、スレーブの応答時間が特に問題とならないようなバスマスタである。即ち、「リアルタイム性・あり、アクセスタイプ:ランダム、バンド使用量:少ない」、というパターンのバスマスタである。このような属性1のバスマスタは、他のバスマスタを制御することはない。
属性3のバスマスタは、実施形態2で説明したような現像処理を行うようなバスマスタである。即ち、「リアルタイム性・なし、アクセスタイプ:連続、バンド使用量:多い」、というパターンのバスマスタである。このようなバスマスタはリアルタイム性を保証する必要は必ずしもないが、処理時間を短縮させるためにはできるだけ長いバースト長で処理する必要があり、使用するバスの帯域も多い。属性2については、属性3ほどバスの帯域を使用せず、かつリアルタイム性を保証する必要はない。即ち、「リアルタイム性・なし、アクセスタイプ:連続、バンド使用量:普通」、というパターンのバスマスタである。
以上の属性について、属性0及び属性1については、第1の属性として「制限制御:なし、禁止制御:なし」、とする。また属性2については、第2の属性として「制限制御:なし、禁止制御:あり」、属性3については、第3の属性として「制限制御:あり、禁止制御:あり」、とする。
本実施形態では、バスアービタ10から出力される制限信号で、属性3に割り当てられたバスマスタに対してバースト長を制限するような制御を行う。ここでは、現像処理のように、バス使用帯域は多いがリアルタイム性を保証する必要のない処理を行うバスマスタに対して、アクセスの制限(ここでは、バースト長を4から2へ切り替える)を行うことで、リアルタイム性の保証を行う。
なお、アクセスの制限を実行しないバスマスタによるアクセスが瞬間的に同時に発生してしまうことも、非常にまれであるが想定される。そのような場合、データバッファ9の蓄積量が、図9(A)に示すアクセス禁止レベル901に到達する。この場合、データバッファ9はアクセス禁止要求信号15をバスアービタ10へ発行する。バスアービタ10はアクセス禁止要求信号15を受信すると、図10で禁止制御の欄に「あり」と記載されたバスマスタ(バスマスタ#2, バスマスタ#3, バスマスタ#5)に対し禁止信号を発行して、バスへのリクエストを禁止する。
図11は、本実施形態に対応する処理のフローチャートである。まず、S1101において、データバッファ9は、蓄積量Vbを検知する。続くS1102において、データバッファ9は、蓄積量Vbがアクセス制限レベル(Acl)を超えるか否かを判定する。もし、Aclを超えない場合(S1102で「NO」)、S1101に戻る。一方、Aclを超える場合(S1102で「YES」)、S1103に移行して、データバッファ9は、蓄積量Vbがアクセス禁止レベル(Apl)を超えるか否かを判定する。もし、Aplを超える場合(S1103で「YES」)、S1104に移行する。
S1104では、データバッファ9が、バスアービタ10に対してアクセス禁止要求信号15を発行し、続くS1105では、バスアービタ10がアクセス禁止要求信号15に対応して禁止信号を各バスマスタに発行する。この禁止信号は、属性2及び3に属するバスマスタに対して有効であり、当該バスマスタはバスへのリクエストを抑制する。なお、この禁止信号は、データバッファ9の蓄積量がアクセス禁止レベルを下回るようになれ解除される。
また、蓄積量VbがAplを超えない場合(S1103で「NO」)、S1106に移行する。S1106では、データバッファ9が、バスアービタ10に対してアクセス制限要求信号16を発行し、続くS1107では、バスアービタ10がアクセス制限要求信号16に対応して制限信号を各バスマスタに発行する。この制限信号は、属性3に属するバスマスタに対してのみ有効であり、当該バスマスタは、バースト長を切り替える。例えば、バスマスタ#3は、バースト長を「4」から「2」に切り替える。なお、この制限信号は、データバッファ9の蓄積量がアクセス制限レベルを下回るようになれば解除される。。
以上のように、本実施形態では、データバッファの蓄積量が所定量を超えた場合に、特定のバスマスタのバースト長を切り替えることを特徴とする。より具体的には、データバッファの蓄積度に応じてアクセスの制御レベルを切り替えて、特定処理のリアルタイム性を確保することができる。これにより、リアルタイム性の高いバスマスタに接続されるデータバッファの容量から、他のバスマスタの効率をできるだけ落とすことなく、ハードウェアによる処理により、自動的にリアルタイム性を保証することができる。
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (4)

  1. リアルタイム処理の開始要求に応じてリアルタイム処理を行う処理手段と、
    バスと、
    前記処理手段からのデータを転送する第1のバスマスタを含み、それぞれが前記バスに接続された複数のバスマスタと、
    前記バスに接続され、前記複数のバスマスタとメモリとの間でデータの転送を行うメモリコントローラと、
    前記複数のバスマスタから発行されたリクエストに応じて前記メモリコントローラによりデータの転送を行わせるとともに、前記バスマスタの転送データのバースト長を制御する制御手段とを備え
    前記制御手段は、前記処理手段による前記リアルタイム処理が行われていない場合、前記複数のバスマスタのうち前記第1のバスマスタ以外の所定のバスマスタの転送データのバースト長を第1のバースト長に設定し、前記処理手段による前記リアルタイム処理が開始された場合、前記リアルタイム処理の開始要求を受け付けたときに発行済みのリクエストによるデータの転送が完了した後、前記所定のバスマスタにおける転送データのバースト長を、前記第1のバースト長から、前記第1のバースト長よりも短い第2のバースト長に変更することを特徴とする電子機器。
  2. 撮像手段と、
    バスと、
    前記撮像手段により得られた画像データを転送する第1のバスマスタを含み、それぞれが前記バスに接続された複数のバスマスタと、
    前記バスに接続され、前記複数のバスマスタとメモリとの間で画像データの転送を行うメモリコントローラと、
    前記複数のバスマスタから発行されたリクエストに応じて前記メモリコントローラにより画像データの転送を行わせるとともに、前記バスマスタの転送データのバースト長を制御する制御手段とを備え
    前記制御手段は、前記撮像手段による連写処理が行われていない場合、前記複数のバスマスタのうち前記第1のバスマスタ以外の所定のバスマスタの転送データのバースト長を第1のバースト長に設定し、連写開始の要求により前記撮像手段による連写処理が開始された場合、前記連写開始の要求を受け付けたときに発行済みのリクエストによる画像データの転送が完了した後、前記所定のバスマスタの転送データのバースト長を、前記第1のバースト長から、前記第1のバースト長よりも短い第2のバースト長に変更することを特徴とする電子機器。
  3. リアルタイム処理の開始要求に応じてリアルタイム処理を行う処理手段と、
    バスと、
    前記処理手段からのデータを転送する第1のバスマスタを含み、それぞれが前記バスに接続された複数のバスマスタと、
    前記バスに接続され、前記複数のバスマスタとメモリとの間でデータの転送を行うメモリコントローラと、
    前記複数のバスマスタから発行されたリクエストに応じて前記メモリコントローラによりデータの転送を行わせるとともに、前記バスマスタの転送データのバースト長を制御する制御手段とを備える電子機器の制御方法であって、
    前記制御手段が、前記処理手段による前記リアルタイム処理が行われていない場合、前記複数のバスマスタのうち前記第1のバスマスタ以外の所定のバスマスタの転送データのバースト長を第1のバースト長に設定し、前記処理手段による前記リアルタイム処理が開始された場合、前記リアルタイム処理の開始要求を受け付けたときに発行済みのリクエストによるデータの転送が完了した後、前記所定のバスマスタにおける転送データのバースト長を、前記第1のバースト長から、前記第1のバースト長よりも短い第2のバースト長に変更する制御工程を
    備えることを特徴とする方法。
  4. 撮像手段と、
    バスと、
    前記撮像手段により得られた画像データを転送する第1のバスマスタを含み、それぞれが前記バスに接続された複数のバスマスタと、
    前記バスに接続され、前記複数のバスマスタとメモリとの間で画像データの転送を行うメモリコントローラと、
    前記複数のバスマスタから発行されたリクエストに応じて前記メモリコントローラにより画像データの転送を行わせるとともに、前記バスマスタの転送データのバースト長を制御する制御手段と
    を備える電子機器の制御方法であって、
    前記制御手段が、前記撮像手段による連写処理が行われていない場合、前記複数のバスマスタのうち前記第1のバスマスタ以外の所定のバスマスタの転送データのバースト長を第1のバースト長に設定し、連写開始の要求により前記撮像手段による連写処理が開始された場合、前記連写開始の要求を受け付けたときに発行済みのリクエストによる画像データの転送が完了した後、前記所定のバスマスタにおける転送データのバースト長を、前記第1のバースト長から、前記第1のバースト長よりも短い第2のバースト長に変更する制御工程
    を備えることを特徴とする方法。
JP2010139941A 2010-06-18 2010-06-18 電子機器及びその制御方法 Expired - Fee Related JP5623150B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010139941A JP5623150B2 (ja) 2010-06-18 2010-06-18 電子機器及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010139941A JP5623150B2 (ja) 2010-06-18 2010-06-18 電子機器及びその制御方法

Publications (3)

Publication Number Publication Date
JP2012003636A JP2012003636A (ja) 2012-01-05
JP2012003636A5 JP2012003636A5 (ja) 2013-08-01
JP5623150B2 true JP5623150B2 (ja) 2014-11-12

Family

ID=45535513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010139941A Expired - Fee Related JP5623150B2 (ja) 2010-06-18 2010-06-18 電子機器及びその制御方法

Country Status (1)

Country Link
JP (1) JP5623150B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6886301B2 (ja) * 2017-01-26 2021-06-16 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
JP6833644B2 (ja) * 2017-09-13 2021-02-24 株式会社東芝 転送装置、転送方法及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049388A (ja) * 1996-08-02 1998-02-20 Fuji Xerox Co Ltd 入出力制御装置
JP4024005B2 (ja) * 2001-03-14 2007-12-19 株式会社リコー Dmaコントローラ装置
JP2003208398A (ja) * 2002-01-16 2003-07-25 Matsushita Electric Ind Co Ltd データ入出力装置、データ入出力方法、プログラム、および媒体
JP4590304B2 (ja) * 2004-08-18 2010-12-01 キヤノン株式会社 画像撮影再生装置及びデータ処理方法
JP2006189919A (ja) * 2004-12-28 2006-07-20 Canon Inc 電子機器、制御方法及びコンピュータプログラム
JP4850504B2 (ja) * 2005-12-15 2012-01-11 キヤノン株式会社 信号処理装置、撮像装置およびデータ転送方法
JP5147430B2 (ja) * 2008-01-29 2013-02-20 三菱電機株式会社 データ送受信装置

Also Published As

Publication number Publication date
JP2012003636A (ja) 2012-01-05

Similar Documents

Publication Publication Date Title
JP4408263B2 (ja) データ転送システムおよびデータ転送方法
JP5351145B2 (ja) メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法
US8554962B2 (en) Data transfer control device and data transfer control method
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
US20120047299A1 (en) Data transfer device, method of transferring data, and image forming apparatus
US8543777B2 (en) Memory control apparatus, memory control method, and computer program with refresh commands at optimum intervals
US9026697B2 (en) Data processing apparatus
JP5623150B2 (ja) 電子機器及びその制御方法
JP4693843B2 (ja) メモリ制御装置及びメモリ制御方法
US8301816B2 (en) Memory access controller, system, and method
US20060047866A1 (en) Computer system having direct memory access controller
JP6700739B2 (ja) コントローラおよび制御方法
US7516258B2 (en) Electronic apparatus and control method
JP4335327B2 (ja) 調停装置および方法
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
JP2011034214A (ja) メモリ制御装置
JP3820831B2 (ja) メモリ制御方法及び装置
JP4633334B2 (ja) 情報処理装置およびメモリアクセス調停方法
JP4163487B2 (ja) メモリ制御装置、画像形成装置及びメモリシステムの制御方法
JP2006189919A (ja) 電子機器、制御方法及びコンピュータプログラム
JP4633290B2 (ja) データ処理装置及びその装置におけるアクセス調停方法
JP5146675B2 (ja) 画像処理装置、その制御方法及び制御プログラム、並びに画像形成装置
JP4640434B2 (ja) デジタルカメラ
JP2006331008A (ja) メモリインタフェース
JP2006164099A (ja) メモリ制御装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140924

R151 Written notification of patent or utility model registration

Ref document number: 5623150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees