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

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

Info

Publication number
JP2014167763A
JP2014167763A JP2013040027A JP2013040027A JP2014167763A JP 2014167763 A JP2014167763 A JP 2014167763A JP 2013040027 A JP2013040027 A JP 2013040027A JP 2013040027 A JP2013040027 A JP 2013040027A JP 2014167763 A JP2014167763 A JP 2014167763A
Authority
JP
Japan
Prior art keywords
access
data
access request
connection
request
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.)
Pending
Application number
JP2013040027A
Other languages
English (en)
Inventor
Yuichiro Kimijima
裕一郎 君島
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 JP2013040027A priority Critical patent/JP2014167763A/ja
Priority to US14/176,522 priority patent/US20140244887A1/en
Priority to CN201410071667.0A priority patent/CN104021095A/zh
Publication of JP2014167763A publication Critical patent/JP2014167763A/ja
Pending legal-status Critical Current

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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

【課題】メモリ装置に対するメモリアクセスを好適に制御する。
【解決手段】最初に受信した先頭アクセス要求が発行されてから、連結を行う期間内に発行されるアクセス要求を連結して、連結アクセス要求を生成する。このとき連結を行う期間は、先頭アクセス要求が発行されてからメモリ装置への他のアクセスがなされるまでの時間内に、連結アクセス要求に対応するデータについてのアクセスが完了するように設定される。
【選択図】図2

Description

本発明は、電子機器及びその制御方法に関し、特にメモリ装置へのアクセス制御技術に関する。
デジタルカメラ等の電子機器では、様々な信号処理機能を備える。近年、例えば画像データのような信号処理対象のデータの容量は増加傾向にあり、処理量もそれに応じて増大する。このため、各信号処理機能については、応答性能の向上等、高速化が要求される。また画像処理等では、処理対象のデータを例えばSDRAM等のバスを介して接続されるメモリ装置に格納し、格納したデータを読み出しながら処理を適用する等の動作が行われている。メモリ装置を介する信号処理機能を実現する処理回路(クライアント)とメモリ装置とは、バスマスタ及びバスを介して接続される。このとき、バスマスタから大容量のデータをメモリ装置に書き込むあるいは読み出すメモリアクセスを高速化するために、バスの広帯域化がなされている。
しかしながら、広帯域バスの帯域幅に対して、クライアントの内部回路が最適設計なされていないことがある。このような場合、クライアントから受信されたデータを、バスマスタが広帯域バスに送出する際に不整合が生じ、アクセス効率が低下する可能性がある。
ここで、図9(a)を用いてアクセス効率の低下について例示する。図は、画像処理回路(クライアント)が、バスマスタであるDMAC(Direct Memory Access Controller)を経由して、バスを介してSDRAMにライトアクセス(書き込み)を行う場合の処理を概略的に示している。
ライトアクセスを行う場合、クライアントはまず、SDRAMへのライトリクエストをDMACに送信する。このときクライアントは、ライトリクエストと共にライト先アドレス及びバースト長(転送長)の情報を送信する。DMACは、ライトリクエストを受信すると、ライトアクノレッジ信号をクライアントに対して返す。
クライアントは、DMACからのライトアクノレッジ信号を受信すると、ライトアクセスを開始する。図9(a)の例では、クライアントの1つのデータのデータ幅は32bitであり、バースト長は8であるものとする。このときクライアントは、バースト長分、即ち8個の連続したデータを、DMACに送信する。つまり、1回のライトリクエストに対応して、32×8=256bitのデータがDMACを介してバスに送出される。
一方で、SDRAMへのアクセスにおけるデータ幅が128bitであるとする。つまり、クライアントから送出される128÷32=4回分のデータが、SDRAMへのDMACの1アクセスで書き込まれる。
またSDRAMのアクセスにおけるバースト長は、選択されるSDRAM内におけるデータの処理方式によって決定される。具体的には、SDRAM内で1サイクルに処理可能なビット数が予め定義されている。例えばDDR2タイプのSDRAMでは、1サイクルで4bitのデータが処理可能であり、これを4ビットプリフェッチと呼ぶ。即ち、4ビットプリフェッチである場合、SDRAMの最小のバースト長は4バーストとなり、これ以上転送長を短くすることはできない。つまり、図9(a)の例では、DMACからSDRAMに書き込まれる4バーストのデータ長128×4=512bitが、DMACの1回のライトアクセスの転送長となる。
これに対し、1回のライトリクエストでクライアントから送出されるデータ長は256bitであるため、図9(a)の下部に示されたSDRAMライトデータのように、SDRAMへの後半の2バースト分のアクセスは無駄な処理となる。なお、実際は後半の2バースト分のアクセスはマスク信号によってマスクされ、SDRAMへの書き込みはなされない。即ち、このようなDMACのSDRAMへのデータアクセス長と、1回のライトリクエストでのデータアクセス長の違いによって、SDRAMへの無駄なアクセスがなされる問題があった。
特許文献1には、DMA転送により任意のデータ量を転送する際に、DMACからのデータ転送回数少なくして転送時間を短縮することで、バスへのアクセス効率を改善することが開示されている。また同様に、例えば図9(a)の環境において、図9(b)のようにクライアントからの2回のライトリクエストをまとめてからDMACに送信することで、DMACからSDRAMへの無駄なアクセスを回避することが考えられる。
特開2000−132497号公報
しかしながら、図9(a)と図9(b)とを対比してわかるように、SDRAMへの転送長を考慮してリクエストをまとめる方法では、1回目のライトリクエストに対応するデータが送出されてSDRAMに書き込まれるまでの時間(レイテンシ)が長くなる。また図9(b)のようにライトリクエストが連続して行われない場合、即ち1回目のライトリクエストの発行から2回目のライトリクエストを発行するまでに時間が空く場合は、さらにレイテンシが大きくなる。
このようにクライアントのデータ送出から、SDRAMにデータが書き込まれるまでのレイテンシが大きくなった場合、次のような問題が生じる。SDRAMに書き込まれたデータを読み出して処理する他のクライアント、あるいは書き込みを行ったクライアント自身が、SDRAMへの書き込みが完了していないにも関わらず、該データのリードアクセスを行ってしまう可能性がある。即ち、クライアントによるSDRAMへのライトアクセスを、クライアントによるSDRAMからのリードアクセスが追い越してしまう可能性がある。
本発明は、上述の問題点に鑑みてなされたものであり、メモリ装置に対するメモリアクセスを好適に制御する電子機器及びその制御方法を提供することを目的とする。
前述の目的を達成するために、本発明の電子機器は、以下の構成を備える。
システムバスに接続されたメモリ装置へのアクセス制御を行う電子機器であって、メモリ装置へのアクセス要求を発行し、1回のアクセス要求に対応して第1のデータ長を有するデータの送受信を行う処理回路と、処理回路により発行されたアクセス要求を連結して、1つの連結アクセス要求を生成する連結手段と、連結手段によるアクセス要求の連結を行う期間を設定する設定手段と、連結手段により連結されたアクセス要求の各々に対応した、送受信を行うデータのデータ長を合算して、連結アクセス要求に対応して送受信するデータのデータ長であって、第1のデータ長より長い第2のデータ長を決定する決定手段と、システムバスを介して、連結アクセス要求を送出し、決定手段により決定された第2のデータ長のデータについて、メモリ装置にアクセスするアクセス制御手段と、を有し、連結手段は、最初に受信した先頭アクセス要求が発行されてから連結を行う期間内に発行されるアクセス要求を連結して、連結アクセス要求を生成することを特徴とする。
このような構成により本発明によれば、メモリ装置に対するメモリアクセスを好適に制御することが可能となる。
本発明の実施形態に係るデジタルカメラ100の機能構成を示したブロック図 本発明の実施形態に係る検出処理系103の内部構成を例示したブロック図 本発明の実施形態1に係るライトリクエスト連結部204の詳細構成を示したブロック図 本発明の実施形態に係る、リクエストの連結処理を説明するための図 本発明の実施形態に係る、リクエストの連結処理におけるタイムアウト時間を説明するための図 本発明の実施形態1に係るデジタルカメラ100で実行される、処理系アクセス処理を例示したフローチャート 本発明の実施形態2に係るライトリクエスト連結部204の詳細構成を示したブロック図 本発明の実施形態2に係るデジタルカメラ100で実行される、処理系アクセス処理を例示したフローチャート 従来のメモリアクセスを説明するための図
[実施形態1]
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、電子機器の一例としての、複数の処理系が、データをSDRAMに書き込み、あるいは読み出ししながら処理を行うデジタルカメラに、本発明を適用した例を説明する。しかし、本発明は、複数の処理系がメモリ装置を交互にアクセスすることが可能な任意の機器に適用可能である。
《デジタルカメラ100の構成》
図1は、本発明の実施形態に係るデジタルカメラ100の機能構成を示すブロック図である。
CPU105は、デジタルカメラ100が備える各ブロックの動作を制御する。具体的にはCPU105は、不図示のROMに格納されたデジタルカメラ100の動作プログラムを読み出し、不図示のRAMに展開して実行することにより各ブロックの動作を制御する。
SDRAM113は、本実施形態のデジタルカメラ100が有する各処理系の回路における処理で使用されるデータを格納するメモリ装置である。SDRAM113に対するデータの書き込みや読み出しは、SDRAMコントローラ112により管理され、行われる。本実施形態のデジタルカメラ100は、データを送受信する、撮像系101、信号処理系102、検出処理系103、及び画像圧縮伸長系104の4つの処理系(処理回路)を有する。
撮像系101は、撮像処理を行い、画像データを生成する。撮像系101は、例えばCCDやCMOSセンサ等の撮像素子を有する。撮像素子は、光学系117を介して撮像素子上に結像された光学像を光電変換し、撮像信号を生成する。また撮像系101は、撮像信号に含まれるリセットノイズを除去する相関二重サンプリング、撮像信号のレベルを利得可変に増幅する利得可変増幅、及びアナログデータをデジタルデータに量子化するA/D変換に係る処理を行う。なお、光学系117は対物レンズ、フォーカスレンズ、絞り等で構成される。
信号処理系102は、撮像系101により生成されたデジタル画像データについて、種々のデジタル信号処理を行う。具体的には信号処理系102は、不図示の画像評価値を取得し、該評価値に基づいて適切なデジタル信号処理を行う。
検出処理系103は、撮像系101あるいは信号処理系102により生成されたデジタル画像データについて、画像中の特徴検出処理や動体追尾処理等を行う。検出処理系103では、画素間引き読み出しにより得られた画像データや、ブロック分割された一部の画像データが用いられる。
画像圧縮伸長系104は、信号処理系102により生成された画像データに対して、例えばJPEG形式等の、予め設定されている画像圧縮形式に準じた符号化処理を行い、記録用の画像データを生成する。生成された記録用の画像データは、後述する記録媒体115に記録される。また画像圧縮伸長系104は、記録媒体115から読み出された圧縮画像データに対して伸長処理を行い、SDRAM113に表示する画像データを生成する。
セレクタ106は、本実施形態が備える各種処理系に係るデータ転送がある場合に、処理系と後述する第1DMAC107、第2DMAC108、及び第3DMAC109とを選択的に接続する。
第1DMAC107、第2DMAC108、及び第3DMAC109は、本実施形態のデジタルカメラ100が備える、SDRAM113に対するDMA転送用のコントローラである。撮像系101、信号処理系102、検出処理系103、及び画像圧縮伸長系104は、DMACを介することで、CPUを経由せずにSDRAM113にアクセスすることができる。なお、以下の説明において、単に「DMAC」と記載した場合は、第1DMAC107、第2DMAC108、及び第3DMAC109のいずれであってもよいものとする。
表示デバイス111は、例えばLCD等のデジタルカメラ100が有する表示装置である。表示デバイス111は、撮像系101により撮影された画像データがスルー表示されることで、電子ビューファインダとして機能する。また表示デバイス111には、画像圧縮伸長系104により伸長された、記録媒体115から読み出された画像データが表示される。表示デバイス111の表示制御は表示コントローラ110により行われる。
記録媒体115は、例えばデジタルカメラ100が有する内蔵メモリや、メモリカードやHDD等のデジタルカメラ100に着脱可能に接続された記録装置である。媒体コントローラ114は、記録媒体115へのデータの書き込み、及び記録媒体115からのデータの読み出しを制御する。
なお、CPU105、各DMAC、表示コントローラ110、SDRAMコントローラ112、及び媒体コントローラ114は、システムバス116を介して接続される。システムバス116は、デジタルカメラ100に合わせて帯域幅が設計されており、所謂広帯域バスであるものとする。ここで、CPU105及び各DMACはバスマスタ、表示コントローラ110、SDRAMコントローラ112、及び媒体コントローラ114はバススレーブである。
〈各種処理系の内部構成〉
次に、検出処理系103を例に、各種処理系の内部構成について図2を参照して説明する。
各種処理系は、対応する処理を実行するチップ等の処理コアを有する。検出処理系103の場合、検出処理コア201が検出処理を行う。検出処理コア201には、DMACを介してSDRAM113への書き込み、あるいはSDRAM113からの読み出しを行うために、DMACとのインタフェースが接続される。具体的には検出処理コア201は、データ書き込み用のライトIF202、及びデータ読み出し用のリードIF203が接続される。
例えば検出処理コア201がSDRAM113へのデータの書き込みを行う場合は、まず検出処理コア201からライトリクエスト信号がDMACに対して発行される。そしてDMACからリクエストへの応答であるライトアクノレッジ信号を受信すると、検出処理コア201は書き込むデータを出力する。
ここで、本実施形態の処理系の各々は、上述したようにSDRAM113のデータ幅やシステムバス116の帯域幅に、必ずしも最適化されている訳ではない。これは、新たに開発されたデジタルカメラ100において、全ての処理系の処理コアが一新される訳ではないことによる。即ち、システムバス116の帯域幅が拡張されたとしても、各処理コアのインタフェースからローカルバスに出力されるデータ幅は変更されない可能性がある。
本実施形態では各種処理系とSDRAM113間のデータ転送を効率化するために、処理系はライトリクエストあるいはリードリクエストを連結するライトリクエスト連結部204及びリードリクエスト連結部205を有する。ライトIF202とライトリクエスト連結部204、リードIF203とリードリクエスト連結部205は、それぞれ第1ローカルデータバス206、第2ローカルデータバス207で接続される。本実施形態の検出処理系103の第1ローカルデータバス206及び第2ローカルデータバス207では、ライトIF202あるいはリードIF203に合わせ、1データのデータ幅が32bitのデータがやり取りされる。
ライトリクエスト連結部204及びリードリクエスト連結部205は、ライトIF202あるいはリードIF203から受け付けたリクエストを連結し、1つの連結リクエストとしてDMACに対して送出する。また各連結部は、ライトIF202あるいはリードIF203から受け付けたリクエストの情報を格納すると、リクエストについてのアクノレッジ信号を、ライトIF202あるいはリードIF203に出力する。
またライトリクエスト連結部204は、ライトIF202からライトリクエストに対応して受信したデータを、内蔵する後述のデータバッファ303に蓄積する。そして連結ライトリクエストについての連結ライトアクノレッジ信号を受信すると、ライトリクエスト連結部204は連結したライトリクエストに対応して受信したデータを第3ローカルデータバス208を介してセレクタ106に出力する。即ち、ライトリクエスト連結部204は、SDRAM113へのデータのアクセス制御を行う。このとき、第3ローカルデータバス208に出力される1データのデータ幅は、SDRAM113のデータ幅やシステムバス116の帯域幅に適合されているものとする。即ち、本実施形態のライトリクエスト連結部204は、32bitから128bitへの変換を行う。
一方、リードリクエスト連結部205は、リードIF203からのリードリクエストを連結した連結リクエストについて、対応するデータをDMACを介して受信する。リードリクエスト連結部205は、受信したデータをリードIF203が扱うデータ幅に変換して第2ローカルデータバス207に送出する。即ち、本実施形態のリードリクエスト連結部205は、128bitから32bitへの変換を行う。
《ライトリクエスト連結部204の詳細構成》
ここで、本実施形態の各連結部の詳細構成について、ライトリクエスト連結部204を例に図3を用いて説明する。
ライトリクエスト連結部204において、ライトIF202において発行されたライトリクエストは、比較器301及びリクエストキューバッファ302に入力される。なお、ライトリクエストは、以下の情報を含む。
・データを書き込むSDRAM113上のライトアドレス(アクセス開始アドレス)の情報
・1アクセスのデータ転送におけるバースト長(32bitのデータの連続転送回数:第1のデータ長)
リクエストキューバッファ302は、受信したライトリクエストに含まれるライトアドレス及びバースト長の情報を保持する。リクエストキューバッファ302は、受信したライトリクエストの情報を、管理するポインタ値で示されるアドレスに格納すると、受信完了通知であるライトアクノレッジ信号を返却する。なお、リクエストキューバッファ302に保持されるライトリクエストの情報は、連結するリクエストのみであってよい。本実施形態のリクエストキューバッファ302は、連結ライトリクエストが送出された後、後述するリクエスト発行制御部306によりリセットされる。
比較器301は、受信したライトリクエストで指定されるライトアドレスが、直前に受信したライトリクエストに対応したデータがSDRAM113に書き込まれた際の最終アドレスに連続するかを判定する。本実施形態のように複数のリクエストを1つの連結リクエストに変換する場合、DRAMから見れば、SDRAM113に対して1つのリクエストで指定される先頭アドレスから、所定のデータ長のデータにアクセスすることになる。即ち、連結リクエストによりアクセスするSDRAM113の領域は、連続している必要がある。このため、本実施形態では比較器301においてリクエストを連結した場合にアクセスするアドレスが連続するかを判断する。具体的には比較器301は、受信したライトリクエストで指定される最新開始アドレスと、最後に受信したライトリクエストで指定される直前開始アドレス及び直前バースト長との間に、
(最新開始アドレス)−(直前開始アドレス)=(直前バースト長)
の関係が成り立つか否かを判定する。例えば図4に示されるようなライトリクエストが行われる場合、1回目に発行されたライトリクエストと2回目に発行されたライトリクエストとの間では、
0x1008−0x1000=0x0008
であり、バースト長8(BL0)と等しいため上述の関係が成り立つ。一方、4回目に発行されたライトリクエストと5回目に発行されたライトリクエストとの間では、
0x2000−0x1010=0x0FF0≠0x0004(BL3)
であるため上述の関係は成り立たない。
比較器301は、判定結果を、アドレス連続判定信号として後述のリクエスト発行制御部306に出力する。
データバッファ303は、ライトアクノレッジ信号に対応してライトIF202から入力されるデータを格納する。データバッファ303は、データを格納すると例えばデータが格納されている最終アドレスのポインタ値をリクエスト発行制御部306に出力する。該ポインタ値は、リクエスト発行制御部306にデータバッファ303に蓄積されたデータ容量を認識させるために用いられる。
加算器304は、連結ライトリクエストをDMACに送信する際に、リクエストキューバッファ302に保持されている全てのリクエストのバースト長を合算し、バースト長の総和をリクエスト発行制御部306に出力する。
リクエスト発行制御部306は、連結ライトリクエストのDMACへの発行を制御する。具体的にはリクエスト発行制御部306は、アドレス連結判定信号を参照し、アドレスジャンプが発生したと判定される前までに受信したライトリクエストを連結し、連結ライトリクエストを発行する。リクエスト発行制御部306は、リクエストキューバッファ302に保持されている、最初に受信されたライトリクエストに含まれるライトアドレス情報と、加算器304により出力されたバースト長の総和(第2のデータ長)とを含めて、連結ライトリクエストを発行する。なお、アドレスジャンプが発生したと判定した場合、リクエスト発行制御部306は、受信したライトリクエストの情報の格納及びライトアクノレッジ信号の返却をリクエストキューバッファ302に行わせないように制御する。
またリクエスト発行制御部306は、連結ライトリクエストに対する応答である連結ライトアクノレッジ信号を受信すると、データバッファ303に格納されている、連結ライトリクエストに対応するデータを第3ローカルデータバス208に送出させる。本実施形態では、データバッファ303から送出されるデータは、1データのデータ長が128bitに変換されたデータとなる。例えば図4に示す例の場合、ライトアドレスのアドレスジャンプが検出された際(アドレス連続判定信号がHigh)に、連結ライトリクエストが発行され、DMACに対して送出される。図4の場合、連結ライトリクエストは、最初に受信したライトリクエストのライトアドレス(0x1000)、及びバースト長の総和(8+4+4+4=20)を用いて発行される。なお、連結ライトリクエストにおけるバースト長の情報は、本実施形態ではライトリクエスト連結部204の前後で書き込み対象の1データのデータ長が32bitから128bitに変換される。このため、1データが128bitの場合のバースト長に変換する必要があるため、連結ライトリクエストで伝達されるバースト長の情報は、20÷(128÷32)=5バーストとなる。
またリクエスト発行制御部306は、SDRAM113へのデータの書き込みの完了前に、該データの読み出しに係る要求がSDRAM113に行われないように、ライトリクエストの連結について他の条件を定める。具体的にはリクエスト発行制御部306は、連結するライトリクエストのうち、最初のライトリクエスト(先頭ライトリクエスト)の発行から、連結したデータのSDRAM113への書き込みが完了するまでの時間を考慮し、ライトリクエストを連結する。
本実施形態ではライトリクエスト連結部204は、先頭ライトリクエストの発行からの経過時間を計測するタイマ305を有する。タイマ305は、先頭ライトリクエストの発行から予め設定した時間(タイムアウト時間)が経過した場合、タイムアウト検出信号をリクエスト発行制御部306に送出する。そしてリクエスト発行制御部306は、タイムアウト検出信号を受け取った時点で受信していたライトリクエストを、連結対象のライトリクエストとして決定する。なお、タイムアウト時間については、セレクタ106によりタイマ305に供給される。
〈タイムアウト時間〉
ここで、タイマ305に対して供給されるタイムアウト時間の決定方法について、図5を用いて詳細を説明する。
図5に示されるように、先頭ライトリクエストが発行された際にタイマ305のカウントが開始される。このとき、連結するライトリクエストを決定するためのタイムアウト時間T2は、次のように決定される。
まず、1つの処理系のライトIF202が1つのデータについてライトリクエストを発行してから、同一のあるいは他の処理系によるSDRAM113に書き込まれた該データへのアクセスがなされるまでの最短時間T0が得られる。最短時間T0は、デジタルカメラ100で行われる各処理系の並列動作等により規定される。
また図示される時間T1は、DMACのライトリクエスト(連結ライトリクエスト)発行から、該リクエストがSDRAM1コントローラ112により受け付けられるまでに要する最大所要時間を示す。最大所要時間T1は、デジタルカメラ100において同時並行的に発生しうる、システムバス116へのバスマスタからの同時アクセス処理を考慮して、次のように規定することができる。なお、最大所要時間T1は、設定されている撮影モード等、デジタルカメラ100のステータスに応じて変化するものであってもよい。この場合CPU105は、現在のデジタルカメラ100のステータスを判断して最大所要時間T1を決定し、タイムアウト時間T2を算出してタイマ305に供給すればよい。
例えば、本実施形態のように4つのバスマスタ(CPU105、第1DMAC107、第2DMAC108、及び第3DMAC109)が、SDRAM113にアクセスするために、システムバス116に対して同時アクセスする場合を考える。SDRAM113にアクセスするために、各バスマスタが先行して発行したリクエストは、本実施形態ではSDRAMコントローラ112において4つまで保持(キューイング)されることが可能であるものとする。また、本例ではシステムバス116に対して、4つのバスマスタから同時並行的にアクセスが発生しうるものとする。つまり、本実施形態のデジタルカメラ100では、1つのバスマスタによるSDRAM113へのアクセスは、少なくとも
・キューイングされたリクエスト4回分(最大数)に係るアクセス
・システムバス116におけるバスアービトレーションによる4回分(最大数)のアクセス
が完了した後には行われることになる。即ち、合計4+4=8回分のSDRAM113へのアクセスが完了すれば、該1つのバスマスタによるSDRAM113へのリクエストが受理され、アクセスが可能になる。
ここで、SDRAM113への1回分のデータアクセスに係る最長時間Taccは、バスマスタの最大バースト長から規定することができる。即ち、本例では1つのバスマスタからの結合ライトリクエストを発行してから受け付けられるまでの保証時間であるT1は、Tacc×8と定義することができる。このようにして規定された最短時間T0から最大所要時間T1を減算することにより、タイムアウト時間T2が規定できる(T2=T0−T1)。CPU105は、このように規定したタイムアウト時間T2を、セレクタ106に供給する。
また、ライトリクエスト連結部204のデータバッファ303は有限領域である。このため、上述した条件とは別に、SDRAM113への書き込みを行うデータでデータバッファ303が満たされた場合(データバッファFULLを受信)に、リクエスト発行制御部306は連結するライトリクエストの受け付けを中断する。なお、データバッファ303の容量は、例えばSDRAM113への最大バースト長分に設定されていればよい。
即ち、本実施形態のリクエスト発行制御部306は、
1.連続して受信したリクエストによりアクセスするアドレスが不連続の場合
2.最初のリクエスト発行からタイムアウト時間を超えた場合
3.データバッファ303がFULL状態になった場合
のいずれかである場合に、それまでに受信したリクエストを連結する。
《処理系アクセス処理》
このような構成をもつ本実施形態のデジタルカメラ100の処理系アクセス処理について、図6のフローチャートを用いて具体的な処理を説明する。なお、本処理系アクセス処理は、例えば1つの処理系(対象処理系)においてSDRAM113とのアクセスが必要な処理が行われる際に開始されるものとして説明する。
S601で、CPU105は、システムバス116に同時動作しうるバスマスタの数を取得する。同時動作しうるバスマスタの数の情報は、上述したようにデジタルカメラ100のステータスに応じて予め規定され、例えば不図示のROMに格納されているものとする。CPU105は、該情報を読み出し、同時動作しうるバスマスタの数を取得する。
S602で、CPU105は、同時動作しうるバスマスタのうち、最長のバースト転送を行うバスマスタを特定し、1回分のデータアクセスに係る最長時間Taccを特定する。
S603で、CPU105は、予め定められた最短時間T0、1回分のデータアクセスに係る最長時間Tacc、及び同時動作しうるバスマスタの数から、タイムアウト時間T2を算出して、対象処理系のタイマ305に供給する。
S604で、対象処理系はCPU105の制御により処理を開始する。
S605で、対象処理系のリクエスト発行制御部306は、いずれかのリクエストの連結条件を満たしたか否かを判断する。リクエスト発行制御部306は、リクエストの連結条件を満たしたと判断した場合は処理をS606に移し、満たしていないと判断した場合は処理をS607に移す。
S606で、リクエスト発行制御部306は、リクエストを連結し、連結リクエストをセレクタ106に出力する。またリクエスト連結部は、連結リクエストに対するアクノレッジ信号を受信すると、SDRAM113へのアクセスを開始する。例えば書き込み動作の場合、ライトリクエスト連結部204はデータバッファ303に蓄積されたライトデータをセレクタ106に出力する。
S607で、CPU105は、対象処理系の処理が完了したか否かを判断する。CPU105は、対象処理系の処理が完了したと判断した場合は処理をS608に移し、完了していないと判断した場合は処理をS605に移す。
S608で、リクエスト連結部は、CPU105の制御の下、未送出の受信したリクエストに係る処理を実行し、本処理系アクセス処理を完了する。例えば書き込み動作の場合、ライトリクエスト連結部204は、データバッファ303に残存しているデータをFLUSH処理(強制的にSDRAM113に対して書き込む)する。具体的にはCPU105が、FLUSH処理の要求信号をリクエスト発行制御部306に供給することで、FLUSH処理が実行される。
以上説明したように、本実施形態の電子機器は、メモリ装置に対するメモリアクセスを好適に制御することができる。具体的には電子機器は、最初に受信した先頭アクセス要求が発行されてから、連結を行う期間内に発行されるアクセス要求を連結して、連結アクセス要求を生成する。このとき連結を行う期間は、先頭アクセス要求が発行されてからメモリ装置への他のアクセスがなされるまでの時間内に、連結アクセス要求に対応するデータについてのアクセスが完了するように設定される。
このようにすることで、例えばアクセス要求を連結している期間に、他の処理系によって該連結したアクセス要求によってアクセスされるSDRAM113のデータへのアクセスが生じないようにすることができる。より詳細には、連結したアクセス要求によりSDRAM113に書き込まれるデータについての読み出し処理が、前後して行われることを回避することができる。
[実施形態2]
上述した実施形態1では、1つの処理系のライトリクエストが発行されてから、該リクエストで書き込まれたデータへの次のアクセスがなされるまでの最短時間T0が、予め定められるものとして説明した。一般に、同時動作するバスマスタが多く、使用されているシステムバス116の帯域が大きい場合に、ライトアクセスの遅延が生じうる。本実施形態では、このような、例えばCPU105の処理がシステムバス116の帯域を広く占有する場合等、最短時間T0を具体的に規定することが困難、即ちタイムアウト時間を規定することが困難な状況での処理について以下に説明する。なお、本実施形態のデジタルカメラ100において、上述した実施形態1と同様の構成については、同一の参照符号を付して説明を省略するものとする。
《ライトリクエスト連結部204の詳細構成》
本実施形態のライトリクエスト連結部204は、上述した実施形態1の構成に加えて第1セレクタ701及び第2セレクタ702を有する。
本実施形態では、CPU105は、最短時間T0が規定できない場合、あるいは使用されているシステムバス116の帯域が所定値以上を占める場合には、SDRAM113に対するアクセスの不整合が生じないように制御を行う。具体的にはCPU105は、上述の条件に該当する場合は、アクセス遅延が生じうると判断し、アクセス要求の連結を行わないためのリクエスト連結処理中止信号を、第1セレクタ701及び第2セレクタ702に供給する。
第1セレクタ701には、ライトリクエスト連結部204に入力されたライトリクエストと、リクエスト発行制御部306から出力された連結ライトリクエストとが入力される。第1セレクタ701は、CPU105よりリクエスト連結処理中止信号が供給された場合は、ライトリクエスト連結部204に入力されたライトリクエスト、即ちライトIF202が出力したライトリクエストを連結せずに出力する。また第1セレクタ701は、リクエスト連結処理中止信号が供給されない場合は、リクエスト発行制御部306により入力された連結ライトリクエストを出力する。
第2セレクタ702には、ライトリクエスト連結部204に入力されたライトリクエストがリクエストキューバッファ302に格納されたことを示すライトアクノレッジ信号と、DMACより返却されたライトアクノレッジ信号とが入力される。第2セレクタ702は、CPU105よりリクエスト連結処理中止信号が供給された場合は、DMACより返却されたライトアクノレッジ信号を、ライトリクエスト連結部204のライトアクノレッジ信号として出力する。このとき出力されるライトアクノレッジ信号は、第1セレクタ701が出力した、ライトIF202が出力したライトリクエストに対する、DMACの応答信号である。また第2セレクタ702は、リクエスト連結処理中止信号が供給されない場合は、リクエストキューバッファ302が出力するライトアクノレッジ信号を出力する。
つまり、本実施形態のライトリクエスト連結部204は、CPU105がリクエスト連結処理中止信号を出力する場合、ライトIF202から入力されるアクセス要求をスルーしてDMACに出力する。またライトリクエスト連結部204は、DMACから返却されたアクノレッジ信号をスルーしてライトIF202に出力する。
《処理系アクセス処理》
このような構成を有する本実施形態のデジタルカメラ100の処理系アクセス処理について、図8のフローチャートを用いて具体的な処理を説明する。なお、本処理系アクセス処理は、例えば1つの処理系(対象処理系)においてSDRAM113とのアクセスが必要な処理が行われる際に開始されるものとして説明する。なお、本処理系アクセス処理において、上述の実施形態1の処理系アクセス処理と同様の処理を行うステップについては、同一の参照符号を付して説明を省略するものとする。
処理が開始すると、CPU105はS801で、対象処理系がライトリクエストを発行してから、リクエストに対応してSDRAM113に書き込まれたデータが、次に読み出されるまでの最短時間T0を規定できるか否かを判断する。具体的にはCPU105は、例えば現在同時動作しているバスマスタの数や行われている処理を判断し、最短時間T0を規定できるか否かを判断する。CPU105は、最短時間T0が規定できると判断した場合は処理をS601に移し、規定できないと判断した場合は処理をS802に移す。
S802で、CPU105は、使用されているシステムバス116の帯域が予め定められた閾値以下であるか否かを判断する。帯域の閾値は、例えば実験的に得られた、最短時間T0が規定できない状況下でアクセス不整合が生じない値であってよい。CPU105は、使用されている帯域が閾値以下であると判断した場合は、最短時間T0が規定できない状況下でアクセス不整合が生じなかった際に得られた、次のアクセスまでに要する時間を最短時間T0として規定して処理をS601に移す。またCPU105は、使用されている帯域が閾値より大きいと判断した場合は処理をS803に移す。
S803で、CPU105は、リクエストの連結を行わないよう、ライトリクエスト連結部204にリクエスト連結処理中止信号を供給し、処理をS604に移す。なお、この場合、S605における連結条件の判断は、常に満たしていないと判断される。
このようにすることで、システムバス116の使用状況や各バスマスタでの処理に応じて、好適にメモリ装置に対するメモリアクセスを制御できる。
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (9)

  1. システムバスに接続されたメモリ装置へのアクセス制御を行う電子機器であって、
    前記メモリ装置へのアクセス要求を発行し、1回のアクセス要求に対応して第1のデータ長を有するデータの送受信を行う処理回路と、
    前記処理回路により発行されたアクセス要求を連結して、1つの連結アクセス要求を生成する連結手段と、
    前記連結手段によるアクセス要求の連結を行う期間を設定する設定手段と、
    前記連結手段により連結されたアクセス要求の各々に対応した、送受信を行うデータのデータ長を合算して、前記連結アクセス要求に対応して送受信するデータのデータ長であって、前記第1のデータ長より長い第2のデータ長を決定する決定手段と、
    前記システムバスを介して、前記連結アクセス要求を送出し、前記決定手段により決定された前記第2のデータ長のデータについて、前記メモリ装置にアクセスするアクセス制御手段と、を有し、
    前記連結手段は、最初に受信した先頭アクセス要求が発行されてから前記連結を行う期間内に発行されるアクセス要求を連結して、前記連結アクセス要求を生成する
    ことを特徴とする電子機器。
  2. 前記設定手段は、前記先頭アクセス要求が発行されてから前記メモリ装置への他のアクセスがなされるまでの時間内に、前記連結アクセス要求に対応する前記第2のデータ長のデータについてのアクセスが完了するように、前記連結を行う期間を設定することを特徴とする請求項1に記載の電子機器。
  3. 前記設定手段は、前記先頭アクセス要求が発行されてから前記メモリ装置への他のアクセスがなされるまでの時間から、前記連結アクセス要求を発行した後、前記連結アクセス要求が受理されて前記第2のデータ長のデータについてのアクセスが完了するまでに要する最大所要時間を減算して得られた値を、前記連結を行う期間として設定することを特徴とする請求項1または2に記載の電子機器。
  4. 前記設定手段は、同時に前記システムバスを介したアクセスを行う処理回路の最大数に応じて前記最大所要時間を決定することを特徴とする請求項3に記載の電子機器。
  5. 前記メモリ装置に対してなされたアクセス要求を保持する保持手段をさらに有し、
    前記設定手段は、前記保持手段が保持するアクセス要求の最大数に応じて前記最大所要時間を決定する
    ことを特徴とする請求項3または4に記載の電子機器。
  6. 前記連結手段は、前記先頭アクセス要求が発行されてから前記メモリ装置への他のアクセスがなされるまでの時間が規定できない場合に、アクセス要求の連結を行わないことを特徴とする請求項2乃至5のいずれか1項に記載の電子機器。
  7. 前記連結手段は、前記システムバスにおいてデータ転送に使用されている帯域が所定値以上を占める場合に、アクセス要求の連結を行わないことを特徴とする請求項1乃至6のいずれか1項に記載の電子機器。
  8. アクセス要求は、前記メモリ装置のアクセス開始アドレス及び前記第1のデータ長を含み、
    前記連結手段は、新たに発行されたアクセス要求に含まれる前記アクセス開始アドレスが、直前に発行されたアクセス要求に含まれる前記アクセス開始アドレスに前記第1のデータ長を加算した値と異なる場合に、前記新たに発行されたアクセス要求よりも前に発行されたアクセス要求を連結する
    ことを特徴とする請求項1乃至7のいずれか1項に記載の電子機器。
  9. システムバスに接続されたメモリ装置へのアクセス制御を行う電子機器の制御方法であって、前記電子機器は、前記メモリ装置へのアクセス要求を発行し、1回のアクセス要求に対応して第1のデータ長を有するデータの送受信を行う処理回路を有し、
    前記制御方法は、
    前記電子機器の連結手段が、前記処理回路により発行されたアクセス要求を連結して、1つの連結アクセス要求を生成する連結工程と、
    前記電子機器の設定手段が、前記連結工程におけるアクセス要求の連結を行う期間を設定する設定工程と、
    前記電子機器の決定手段が、前記連結工程において連結されたアクセス要求の各々に対応した、送受信を行うデータのデータ長を合算して、前記連結アクセス要求に対応して送受信するデータのデータ長であって、前記第1のデータ長より長い第2のデータ長を決定する決定工程と、
    前記電子機器のアクセス制御手段が、前記システムバスを介して、前記連結アクセス要求を送出し、前記決定工程において決定された前記第2のデータ長のデータについて、前記メモリ装置にアクセスするアクセス制御工程と、を有し、
    前記連結手段は前記連結工程において、最初に受信した先頭アクセス要求が発行されてから前記連結を行う期間内に発行されるアクセス要求を連結して、前記連結アクセス要求を生成する
    ことを特徴とする電子機器の制御方法。
JP2013040027A 2013-02-28 2013-02-28 電子機器及びその制御方法 Pending JP2014167763A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013040027A JP2014167763A (ja) 2013-02-28 2013-02-28 電子機器及びその制御方法
US14/176,522 US20140244887A1 (en) 2013-02-28 2014-02-10 Data processing apparatus and control method
CN201410071667.0A CN104021095A (zh) 2013-02-28 2014-02-28 数据处理设备和控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013040027A JP2014167763A (ja) 2013-02-28 2013-02-28 電子機器及びその制御方法

Publications (1)

Publication Number Publication Date
JP2014167763A true JP2014167763A (ja) 2014-09-11

Family

ID=51389414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013040027A Pending JP2014167763A (ja) 2013-02-28 2013-02-28 電子機器及びその制御方法

Country Status (3)

Country Link
US (1) US20140244887A1 (ja)
JP (1) JP2014167763A (ja)
CN (1) CN104021095A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085515A (ja) * 2014-10-23 2016-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP2018511112A (ja) * 2015-03-27 2018-04-19 インテル・コーポレーション シーケンシャル書き込みストリーム管理
JP2021120909A (ja) * 2017-06-30 2021-08-19 ルネサスエレクトロニクス株式会社 半導体集積回路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3206568B2 (ja) * 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置
WO2004057481A1 (ja) * 2002-12-20 2004-07-08 Fujitsu Limited Dma制御装置、dma制御方法、dma制御プログラム
JP4651277B2 (ja) * 2003-11-13 2011-03-16 ソニー株式会社 情報記録再生装置および方法、プログラム格納媒体、並びにプログラム
CN100426793C (zh) * 2005-10-22 2008-10-15 华为技术有限公司 一种存储器的控制器及控制方法
CN102135946A (zh) * 2010-01-27 2011-07-27 中兴通讯股份有限公司 一种数据处理方法和装置
CN102169467A (zh) * 2010-06-22 2011-08-31 上海盈方微电子有限公司 一种离散式外设dma传输方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016085515A (ja) * 2014-10-23 2016-05-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US9620215B2 (en) 2014-10-23 2017-04-11 International Business Machines Corporation Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode
JP2018511112A (ja) * 2015-03-27 2018-04-19 インテル・コーポレーション シーケンシャル書き込みストリーム管理
JP2021120909A (ja) * 2017-06-30 2021-08-19 ルネサスエレクトロニクス株式会社 半導体集積回路
JP7075528B2 (ja) 2017-06-30 2022-05-25 ルネサスエレクトロニクス株式会社 半導体集積回路

Also Published As

Publication number Publication date
CN104021095A (zh) 2014-09-03
US20140244887A1 (en) 2014-08-28

Similar Documents

Publication Publication Date Title
JP2001189886A (ja) 撮像装置、情報処理装置、画像処理システム、画像処理方法、及び記憶媒体
US20090135256A1 (en) Sata camera system
JP4452690B2 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
JP6370027B2 (ja) 高クロック速度での連続リードバーストサポート
JP2014167763A (ja) 電子機器及びその制御方法
JP4883520B2 (ja) メモリ制御装置およびメモリ制御方法
US10771681B2 (en) Imaging pickup apparatus of which display start timing and display quality are selectable, method of controlling the same
US8285932B2 (en) Mass storage system with improved usage of buffer capacity
JP2010198138A (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JP2015118571A (ja) 記録再生装置、記録再生装置の制御方法及びコンピュータプログラム
JP2014170476A (ja) データ処理装置およびその制御方法
JP2006039672A (ja) バス要求制御回路
JP2006189919A (ja) 電子機器、制御方法及びコンピュータプログラム
JPWO2018084004A1 (ja) デバイス制御装置、デバイス装置、制御方法、プログラム、およびデバイス制御システム
JP5335598B2 (ja) 情報処理装置、その制御方法及びプログラム
KR101286328B1 (ko) 멀티미디어 스토리지 카드 시스템
CN109284243B (zh) 基于usb的fpga通信控制装置及方法
JP4514411B2 (ja) バス間通信インタフェース装置
JP2006243890A (ja) バスブリッジおよびデータ転送方法およびプログラム
JP6112972B2 (ja) 撮像装置
JP2005062997A (ja) データ転送制御装置、ディスクレコーダ、およびデータ転送制御方法
JP2021096715A (ja) 通信装置および通信装置の処理方法
JP4934578B2 (ja) 携帯電子装置及び動作クロック制御方法
JP2009104529A (ja) 情報処理装置、音声付動画記録装置及び情報処理方法
JP3837407B2 (ja) Icカード及びその制御方法