JP2017162431A - メモリ制御装置及び撮像装置 - Google Patents
メモリ制御装置及び撮像装置 Download PDFInfo
- Publication number
- JP2017162431A JP2017162431A JP2016120206A JP2016120206A JP2017162431A JP 2017162431 A JP2017162431 A JP 2017162431A JP 2016120206 A JP2016120206 A JP 2016120206A JP 2016120206 A JP2016120206 A JP 2016120206A JP 2017162431 A JP2017162431 A JP 2017162431A
- Authority
- JP
- Japan
- Prior art keywords
- arbitration
- arbiter
- sub
- access request
- command
- 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
Links
Images
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
Abstract
【課題】 アービタを多段階の階層構造としながらも、リアルタイム性が高く、より優先度の高い処理を破綻を防止しつつ、各バスマスタの調停を行う。【解決手段】 複数のバスマスタからの共有メモリへのアクセスを制御するメモリコントローラであって、前記バスマスタからのアクセス要求を調停するアービタと、前記アービタで調停されたアクセス要求のコマンドを格納し、順に実行するコマンドキューと、前記アービタの調停実施の可否を制御する調停制御部とを有する。ここでアービタは、接続された複数のバスマスタ間の要求を調停する複数のサブアービタと、複数のサブアービタ間を調停するメインアービタとを有する。そして、調停制御部は、調停実施後に所定の条件が満たされるまで次の調停実施を停止する。【選択図】 図1
Description
本発明は、特にアービタを多段階の階層構造とした場合のメモリ制御技術に関するものである。
従来より、LSI(Large Scale Integration)と、SDRAM(Synchronous Dynamic Random Access Memory)等の揮発性メモリを組み合わせてシステムを構築することが行われている。LSIには各種処理を行う処理部を実装させ、それら処理部がSDRAMを共有メモリとして利用するというものである。そして、LSI内には、各処理部が共有メモリにアクセスする際の調停を行うメモリコントローラも実装することになる。最近の半導体微細化技術の進歩により、より多くの処理部がLSIに実装できるようになってきている。かかるLSIを実装する装置としては、例えばデジタルスチルカメラやビデオカメラなどの撮像装置を挙げることができる。この撮像装置では、システム制御用のCPU(Central Processing Unit)、センサからの入力画像に対して色変換やリサイズ処理等を行う現像処理部、記録媒体に効率良く記録するためのデータ圧縮部等が一つのLSIに実装されている。LSI内に実装する処理部の個数が増えると、今度はメモリコントローラの調停に係る負担が大きくなる。そこで、これまで1つのアービタで対処していた構成を、多段階のアービタ階層構造にする技術が開発されている(例えば、特許文献1)。
通常、LSIに実装される各種処理部は、共有メモリへのアクセスが競合した場合に対処するための優先順位が設定されている。しかしながら、特許文献1に開示された技術では、複数の処理部が同時に共有メモリへのアクセス要求を発行した場合に、それら処理部が優先順位に従った順番で共有メモリへのアクセスが許可されるとは限らない。故に、厳格な処理タイミングが要求されるシステムでは、処理に破綻が生じる可能性がある。そこで、本発明は多段階のアービタ階層構造としつつ、処理の破綻を防止する技術を提供するものである。
上記課題を解決するために本発明のメモリ制御装置は以下の構成を備える。すなわち、
複数のバスマスタからの共有メモリへのアクセスを制御するメモリ制御装置であって、
それぞれが複数の前記バスマスタに接続され、接続された複数の前記バスマスタからの前記共有メモリに対するアクセス要求を調停することにより一つのバスマスタを選択し、選択したバスマスタからのアクセス要求を出力する複数のサブアービタと、
前記複数のサブアービタから出力されたアクセス要求を調停することにより一つの前記サブアービタから出力されたアクセス要求を選択し、選択したアクセス要求を出力するメインアービタと、
前記メインアービタから出力されたアクセス要求のコマンドを格納し、格納された前記コマンドを実行するコマンドキューと、
前記メインアービタの調停実施の可否を制御する調停制御部とを有し、
前記調停制御部は、調停の開始した後に所定の条件が満たされるまで次の調停実施を停止することを特徴とする。
複数のバスマスタからの共有メモリへのアクセスを制御するメモリ制御装置であって、
それぞれが複数の前記バスマスタに接続され、接続された複数の前記バスマスタからの前記共有メモリに対するアクセス要求を調停することにより一つのバスマスタを選択し、選択したバスマスタからのアクセス要求を出力する複数のサブアービタと、
前記複数のサブアービタから出力されたアクセス要求を調停することにより一つの前記サブアービタから出力されたアクセス要求を選択し、選択したアクセス要求を出力するメインアービタと、
前記メインアービタから出力されたアクセス要求のコマンドを格納し、格納された前記コマンドを実行するコマンドキューと、
前記メインアービタの調停実施の可否を制御する調停制御部とを有し、
前記調停制御部は、調停の開始した後に所定の条件が満たされるまで次の調停実施を停止することを特徴とする。
本発明によれば、アービタを多段階の階層構造としながらも、リアルタイム性が高く、より優先度の高い処理の破綻を防止しつつ、各バスマスタの調停を行うことが可能となる。
以下、添付図面に従って本発明に係る実施形態の詳細を以下に説明する。
まず、複数のバスマスタから共有メモリへのアクセスの調停を、1つのアービタが行うシステム構成、並びに、複数のアービタによる階層構造の多段階アービタで行うシステム構成について説明する。図7(a)は、1つのアービタが複数のバスマスタからの共有メモリへのアクセスを調整するシステム構成図、図7(b)が多段階アービタ構造を持つシステム構成図である。いずれのシステムも、バスマスタ、共有メモリ等の各種処理部はLSIに実装されるものとして理解されたい。図8は、図7(a)のシステムにおけるタイミングチャート、図9は図7(b)のシステムのタイミングチャートである。以下、図7(a),(b),図8、図9の調停タイミングの違いを説明する。
図7(a)のシステムでは、単一のアービタ(以下、メインアービタ)700に対して、バスマスタ701〜706が並列に接続されている。そして、バスマスタ701〜706が、この順番に共有メモリへの優先順位を持つものとする。今、図8に示すように、バスマスタ701〜706が同時に共有メモリへアクセスするためにREQ#要求(#は1〜6のいずれか)をメインアービタ700に向けて発行したとする。各バスマスタは、自身のREQ要求に対するACK信号を受信するまで、待機する。メインアービタ700は、バスマスタ701〜706それぞれからREQ#要求を受信すると、予め設定された優先順位に基づき、要求を受け付けたことを示すACK#信号(#は1〜6のいずれか)を送信する。図7に示す単一のメインアービタ700で構成されるシステムにおいては、優先順位に従って各バスマスタにACK#信号が供給される。しかし、バスマスタの数が更に多くなってくると、メインアービタ700の優先順位判定が複雑になり、バス調停処理の負荷が大きくなる。よってバスマスタが多数存在するシステムにおいては、単一アービタによるメモリコントローラのバス調停がネックなり、システムのスループットも下がることも起こり得る。
次に図7(b)の多段階のアービタ階層構造を持つシステムの動作を、図9のタイミングチャートに従って説明する。
図7(b)は、1つのメインアービタ724に対して、複数(図示では3つ)のサブアービタ721〜723が並列に接続される多段の階層構造(図示は2段の階層構造)を示している。そして、サブアービタ721にバスマスタ701、702が接続され、サブアービタ722にバスマスタ703,704が接続され、サブアービタ723にバスマスタ705,706が接続されている。ここでも説明を単純化するため、バスマスタ701〜706が、この順番で共有メモリへのアクセス優先順位を持つものとする。
図9において、タイミングT1にて、全バスマスタ701〜706から同時にMREQ#要求(#は1〜6のいずれか)が発行されたとする。タイミングT2にて、サブアービタ721〜723それぞれは、自身に接続されたバスマスタのうちで最優先の1つのバスマスタを選択する。そして、サブアービタ721乃至723それぞれは、マスタアービタ724に向けて、選択したバスマスタからの要求に基づくSREQ#要求(#は1〜3のいずれか)を発行する。また、サブアービタは、選択したバスマスタに対して応答MACK#信号(#は1〜6のいずれか)を返す。図9の場合には、タイミングT2にて、サブアービタ721がバスマスタ701を、サブアービタ722がバスマスタ703を、そして、サブアービタ723がバスマスタ705を選択している。
次のタイミングT3にて、メインアービタ724はサブアービタ721〜723のうちの1つを、優先順位に応じて選択し、選択したサブアービタに、要求を受け付けたことを示すSACK#信号(#は1〜3のいずれか)を返す。図9の場合、メインアービタ700はサブアービタ721に対してSACK1を返している。サブアービタ721はメインアービタ724からSACK1を検出すると、要求済みのSREQ1を一旦取り下げ、バスマスタ702からの要求に差し替えて再度SREQ1要求をメインアービタ724に向けて発行する。このため、サブアービタ721からのSREQ1がメインアービタ724で受け付けられてから、サブアービタ721が次のSREQ1を発行するまでの期間は、ハンドシェイク処理のタイムラグが発生する。図9において、このハンドシェイクによるタイムラグはT4〜T5である。このタイムラグ期間中に、タイミングT3の時点でメインアービタ24は、到達しているサブアービタ722,723に対して調停処理を実施する。このため、タイミングT4でバスマスタ703、T5でバスマスタ705が選択される。この結果、バスマスタ702は、全バスマスタのなかで2番目に優先度が高く設定されているにも関わらず、それより優先度の低いバスマスタ703、705の要求が先にマスタアービタ724に受け付けられてしまう。つまり、複数のバスマスタが同時にREQ要求を発行したとしても、バスマスタの優先度の順位にその要求が受け付けられない場合が起こり得る。
撮像装置では、センサからの画像取り込みや表示部への画像出力といった短周期で共有メモリへアクセスすることが必要なリアルタイム性の高い処理が存在している。このような装置の場合、優先度通りに調停されないと処理が破綻する恐れがある。本実施形態では、多段階のアービタ構成にしながらも、かかる問題を解決する。
[第1の実施形態]
第1の実施形態では、撮像装置に適用した例を説明する。図1は、第1の実施形態の撮像装置のブロック構成図である。本装置は、LSI100、撮像センサ101、表示部102、記録媒体103、SDRAM104を有する。SDRAM104は、LSI100に実装された各種処理部で利用する共有メモリとして機能することになる。LSI100は、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115、メモリコントローラ(メモリ制御装置)120を有する。このうち、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115それぞれは、共有メモリ(SDRAM104)を利用するバスマスタとして機能する。それ故、特に明示しない限り、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115のいずれかを指す場合には「バスマスタ」と表現する。また、LSI100は、単一の半導体集積回路チップとして構成される。
第1の実施形態では、撮像装置に適用した例を説明する。図1は、第1の実施形態の撮像装置のブロック構成図である。本装置は、LSI100、撮像センサ101、表示部102、記録媒体103、SDRAM104を有する。SDRAM104は、LSI100に実装された各種処理部で利用する共有メモリとして機能することになる。LSI100は、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115、メモリコントローラ(メモリ制御装置)120を有する。このうち、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115それぞれは、共有メモリ(SDRAM104)を利用するバスマスタとして機能する。それ故、特に明示しない限り、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115のいずれかを指す場合には「バスマスタ」と表現する。また、LSI100は、単一の半導体集積回路チップとして構成される。
撮像処理部110は、撮像センサ101から出力された画像データに対して欠陥画素補正、シェーディング補正などを行う。処理された画像データはメモリコントローラ120を経由してSDRAM104に記録される。現像処理部111は、メモリコントローラ120を経由してSDRAM104に記録されている撮像処理後の画像データを読み出す。そして、現像処理部111は、画素補間やフィルタ処理、縮小といったリサイズ処理や色変換処理、例えば圧縮画像データに保存するのに最適なフォーマットであるY ,C b, C r色空間への変換などを含む現像処理を行う。そして、現像部111は、処理後の画像をメモリコントローラ110経由でSDRAM120に記録する。また、評価値処理部112は、SDRAM104から、色変換前後の画像データを、メモリコントローラ110経由で取得する。そして、評価値処理部112は、予め設定した画像領域単位で色情報を分析することで評価値を生成し、メモリコントローラ120を経由してSDRAM104に記録する。認識処理部113は、メモリコントローラ120を経由してSDRAM104より画像信号を読み出し、予め設定されている人物の顔情報と比較して特定の人物が含まれているかを判定する。表示制御部114は、メモリコントローラ120を経由しSDRAM104より現像処理後の画像データを読み出し、表示部102に出力する。符号化部115は、メモリコントローラ120を経由し、SDRAM104より現像処理後の画像を読み出し、H.264等の圧縮・符号化処理を行い、記録媒体103に記録する。撮像装置において、撮像センサ101と表示部102は、所定期間の画像データを決められたタイミングまでに処理することが求められるリアルタイム性が高い処理を行う必要がある。例えば、撮像センサ101と表示部102は、1水平期間の画像データを、次の水平期間の開始までに処理する必要がある。このため、メモリコントローラ120は、撮像処理部110と表示制御部114からの要求を優先的に受け付けるように調停処理を行わなければならない。
次に実施形態のメモリコントローラ120の内部構成について説明する。メモリコントローラ120は、サブアービタ121〜123、メインアービタ124、調停制御部126、コマンドキュー125を有する。各バスマスタは、アクセス要求REQ#を発行する際に、自身を特定する信号、並びに共有メモリ(SDRAM104)に対するコマンドも含めて発行するものとする。そして、サブアービタ121〜123は、自身に接続されたバスマスタ間の調停を行い、メインアービタ124はサブアービタ間の調停を行う。
サブアービタ121〜123、及び、メインアービタ124は、その内部に所定のサイズのバッファメモリを有する。サブアービタ121〜123のバッファメモリは、バスマスタからの要求及びその要求と共に供給された情報を記憶する。メインアービタのバッファメモリは、サブアービタ121〜123からの要求及びその要求と共に供給された情報を記憶する。
サブアービタ121は、バスマスタとしての撮像処理部110、表示制御部114からの共有メモリ(SDRAM104)へのアクセス要求MREQ1、2を受信した場合、予め設定される優先度に応じて一つのバスマスタを選択する。サブアービタ122、123も同様である。そして、サブアービタ121〜123それぞれは、メインアービタ124へアクセス要求SREQ#(#は1〜3のいずれか)を発行する。また、サブアービタ121〜123は、これと同時に、アクセス要求MREQを発行中のバスマスタのうち、選択したバスマスタに対し、アクセス受け付けたことを示す応答MACK#(#は1〜6のいずれか)を出力する。この時、サブアービタ121〜123がメインアービタ124に対して発行するアクセス要求SREQ#には、その要求元のバスマスタを特定する信号、並びに、要求元のバスマスタからのSDRAM104に対するコマンドが含まれるものとする。また、サブアービタ121〜123は、メインアービタ124にアクセス要求している状態において、待たされている他のバスマスタの存在/非存在を示す状態情報RDY#(#は1乃至3のいずれか)をセット/リセットする。実施形態では、各サブアービタは、サブアービタによりアクセス要求が待たされているバスマスタが1つでも存在するとき、状態情報RDY#をセットするものとする。
バスマスタとして機能する撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115それぞれは、LSI100の内部に分散して配置される。それ故、サブアービタ121〜123もLSI内部に分散して配置される。外部デバイスと接続するバスマスタはLSIの外部端子位置の近くに配置されるため、図1に示すように、全体の中で優先度が高い処理部が一つのサブアービタに集中する場合がある。メインアービタ124は調停が許可(ARB_EN=‘1’)されている場合は、サブアービタ121〜123からのアクセス要求に対して、それぞれのアクセス要求の発行元のバスマスタに対して予め設定される優先度に応じて一つのサブアービタを選択する。そして、メインアービタ124は、選択したサブアービタに対し、アクセス要求を受け付けたことを示す応答SACK#(#は1〜3のいずれか)を出力する。また、メインアービタ124は、選択されたアクセス要求のコマンドをコマンドキューへ出力する。コマンドキュー125は、入力されたコマンドを一時記録し、先に格納されたコマンドから順番にSDRAM104に送ることにより、SDRAM104との間でのデータ転送を行う。本実施形態では、コマンドキュー125は1段構成とし、1つのアクセス要求を格納可能であるとする。また、コマンドキュー125は、キューへのコマンドの格納状態をキューフルFULL信号として調停制御部126に供給する。コマンドキュー125は、キューに空きがなくなった場合にはキューフルフラグ(FULL)をセットする。調停制御部126は、サブアービタ121〜123からの状態情報RDY#と、コマンドキュー125からの信号FULLに応じて、メインアービタ124による調停を行うか否か決定するための調停許可信号(ARB_EN)を制御する。
図2は本実施形態におけるメモリコントローラのタイミングチャートである。図2を用いてメモリコントローラ120の制御の一例について説明する。なお、以下の説明においても、特に断りがない限り、バスマスタは、撮像処理部110、現像処理部111、評価値処理部112、認識処理部113、表示制御部114、符号化処理部115のいずれかを指す。また、図2には、各バスマスタの優先度として数値1〜6が示されているが、数値が小さいほど優先度が高いことを示している。また、図1の各サブアービタ121〜123及びメインアービタ124はそれぞれ、不図示のクロック発生部により発生される動作クロックCKLに応じて動作し、下記のようにアクセス要求の調停処理を行う。
図2において、タイミングT1でサブアービタ121〜123に繋がる全てのバスマスタからアクセス要求MREQ1〜MREQ6が発行されている。本実施形態では、後述のように、メインアービタ124が、いずれかのサブアービタからのアクセス要求を受け付けた後、調停制御部126は、今回アクセス要求を受け付けたサブアービタからの状態信号を確認する。そして、今回アクセス要求を受け付けたサブアービタからの状態信号がセットされている場合には、セット状態が解除されるまで、メインアービタ124による調停処理を停止させる。即ち、サブアービタがアクセス要求を受け付けられた後、同じサブアービタによるアクセス要求の受け付け待ち状態であるバスマスタが他に存在する場合、そのサブアービタが次のアクセス要求を発行するまで調停処理を行わないようにする。タイミングT1では、直前にアクセス要求を受け付けたサブアービタが無いため、調停制御部126は、メインアービタ124による調停処理を許可する。
次のタイミングT2にて、サブアービタ121〜123それぞれは、各バスマスタに対して予め設定される優先度に沿って調停を実施し、メインアービタ124に対し、選択されたバスマスタの情報を付加してアクセス要求を発行する(SREQ1〜3)。また、サブアービタ121〜123それぞれは、選択されたバスマスタに要求を受けたことを示す応答MACK#を出力する。ここでは、撮像処理部110、現像処理部111、符号化処理部115が選択されている。また、サブアービタ121〜123それぞれは、アクセス要求発行時に次のアクセス要求が準備できているため、調停待ちのバスマスタ有り示すため、状態情報RDY1〜3をセットする。
次にタイミングT3にて、メインアービタ124は、サブアービタ121から出力されている、優先度が一番高いバスマスタである撮像処理部110からのアクセス要求に対するコマンドを選択し、コマンドキュー125へ出力する。また、メインアービタ124は、サブアービタ121に対してアクセス受け付けたことを示す応答SACK1を出力する。コマンドキュー125は、既にSDRAM104をアクセスしているバスマスタが存在しない場合には、直ぐにそのコマンドをSDRAM104に対して発行し、撮像処理のデータ転送を開始する。また、この段階で、調停制御部126は、今回受け付けたアクセス要求を発行していたサブアービタ121からの状態情報RDY1信号に基づき、サブアービタ121においてアクセス要求が選択されることを待たされているバスマスタの存在を検知できる。そのため、調停制御部126は、状態情報RDY1信号がセット解除の状態となるまで、メインアービタ124による調停所定を停止させる。
次にタイミングT4にて、サブアービタ121は、メインアービタ124からのアクセス受け付けたことを示す応答SACK1に合わせて、アクセス要求SREQ1を一旦取り下げる。そして、タイミングT5にて、サブアービタ121は、待たされていた表示制御部114の情報(表示制御部114を特定する信号とそのコマンドを含む)を付加してアクセス要求SREQ1をメインアービタ124に出力する。このとき、サブアービタ121は、待たされているアクセス要求が無くなるため、状態情報RDY1をクリアする。また、サブアービタ121は、表示制御部114に、要求を受けたことを示す応答MACK2を出力する。
次にタイミングT6でメインアービタ124は、その時点で各サブアービタから発行されているアクセス要求の発行元のうち、優先度が一番高いバスマスタである表示制御部114からのアクセス要求であるサブアービタ121からのアクセス要求に対するコマンドを選択しコマンドキュー125へ出力する。また、サブアービタ121に対してアクセス受け付けたことを示す応答SACK1を出力する。コマンドキュー125はSDRAM104をアクセスしているバスマスタが存在しないため、直ぐにSDRAM104に対し表示制御部114からのコマンドを発行しデータ転送を開始する。
次のタイミングT7にて、サブアービタ121はメインアービタ124からの応答SACK1に合わせて、アクセス要求SREQ1を取り下げる。このタイミングT7では、今回受け付けたアクセス要求を発行していたサブアービタ121からの状態情報RDY1信号がセット状態でない。そのため、調停制御部126はメインアービタ124による調停処理を実行させる。メインアービタ124は、その時点で発行されているアクセス要求の発行元のうち優先度が一番高いバスマスタである現像処理部111からのアクセス要求であるサブアービタ122からのアクセス要求に対するコマンドを選択しコマンドキュー125へ出力する。また、メインアービタ124は、サブアービタ122に対して応答SACK2を出力する。コマンドキュー125はSDRAM104が転送中のため、内部に一時格納しキューフルフラグFULLをセットする。
次にタイミングT8で、サブアービタ122はメインアービタ124からの応答SACK2に合わせて、アクセス要求SREQ2を取り下げる。コマンドキュー125はSDRAM104の転送が終了すると、格納済みの現像処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキュー125は、コマンドキューに空きができるのでキューフルフラグ(FULL)をクリアする。また、この時点で、今回受け付けたアクセス要求を発行していたサブアービタ122からの状態情報RDY2信号がセット状態である。しかし、サブアービタ122に対しては現像処理部111と評価値処理部112がバスマスタとして接続されており、アクセス要求の受け付け待ちであるバスマスタが、優先度が一番低い評価値処理部112であることがわかる。そのため、サブアービタ122から次に発行されるアクセス要求よりも先に、より優先度が低いバスマスタからのアクセス要求が選択される恐れがない。そこで、調停制御部126は、タイミングT8において、状態情報RDY2がセット状態であっても、メインアービタ124による調停処理を許可する。
次にタイミングT9にて、サブアービタ122は、待たされていた評価値処理部112の情報(評価値処理部112を特定する信号とそのコマンドを含む)を付加してアクセス要求SREQ2をメインアービタ124に出力する。このとき、サブアービタ122は、待たされているアクセス要求が無くなるため、状態情報RDY2をクリアする。メインアービタ124は、その時点で各サブアービタから発行されているアクセス要求の発行元のうち、優先度が一番高いバスマスタである符号化処理部115からのアクセス要求であるサブアービタ123からのアクセス要求に対するコマンドを選択しコマンドキュー125へ出力する。また、メインアービタ124は、サブアービタ123に対して応答SACK3を出力する。コマンドキュー125はSDRAM104が転送中のため、内部に一次格納しキューフルフラグFULLをセットする。
次にタイミングT10にて、サブアービタ123はメインアービタ124からの応答SACK3に合わせて、アクセス要求SREQ3を取り下げる。コマンドキュー125はSDRAM104の転送が終了すると、格納済みの符号化処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューに空きができるのでキューフルフラグ(FULL)をクリアする。また、この時点で、今回受け付けたアクセス要求を発行していたサブアービタ123からの状態情報RDY3がセット状態である。そのため、調停制御部126は、メインアービタ124による調停処理を停止させる。
次にタイミングT11にて、サブアービタ123は、待たされていた認識処理部113の情報(認識処理部113を特定する信号とそのコマンドを含む)を付加してアクセス要求SREQ3をメインアービタ124に出力する。このとき、サブアービタ123は、待たされているアクセス要求が無くなるため、状態情報RDY3をクリアする。
次にタイミングT12では、メインアービタ124は、その時点で各サブアービタから発行されているアクセス要求の発行元のうち、優先度が一番高いバスマスタである認識処理部115からのアクセス要求であるサブアービタ123からのアクセスに対するコマンドを選択しコマンドキュー125へ出力する。また、メインアービタ124は、サブアービタ123に対して応答SACK3を出力する。コマンドキュー125はSDRAM104をアクセスしているバスマスタが存在しないため、直ぐにSDRAM104に対し認識処理部113からのコマンドを発行しデータ転送を開始する。
次に、タイミングT13にて、サブアービタ123はメインアービタ124からの応答SACK3に合わせて、アクセス要求SREQ3を取り下げる。メインアービタ124は、優先度が一番高いサブアービタ122からのアクセスに対するコマンドを選択(ここでは評価値処理部112)しコマンドキュー125へ出力する。また、メインアービタ124は、サブアービタ122に対して応答SACK2を出力する。コマンドキュー125はSDRAM104が転送中のため、内部に一時格納しキューフルフラグFULLをセットする。
次に、タイミングT14では、コマンドキュー125はSDRAM104の転送が終了すると、格納済みの評価値処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューに空きができるのでキューフルフラグ(FULL)をクリアする。
上記を踏まえ、本実施形態におけるメインアービタ124の調停処理を図3のフローチャートに従い、かつ、図2のタイミングチャートとの関係で説明する。
図2のタイミングT1、T2ではコマンドキュー125に空きがあり、調停待ちのバスマスタの有無を示す状態情報RDY1〜3もセットされていない。そのため、メインアービタ124は、S301→S302→S303と処理し、調停を許可するため、ARB_EN=‘1’とする。
図2のタイミングT3の調停実施のタイミングで、メインアービタ124は、優先度が一番高いサブアービタ121からのアクセスに対するコマンドを選択(ここでは撮像処理部110)する。ここで、サブアービタ121からの状態情報RDY1がセットされている。つまり、サブアービタ121には、調停待ちのバスマスタが存在することを意味する。本実施例の構成では、サブアービタ121には表示制御部114が接続されており、T4の時点においてメインアービタ124で調停待ちをしている現像処理部111及び符号化処理115より表示制御部114の優先度が高い。このため、メインアービタ124が調停を実施すると表示制御部114より優先度の低いバスマスタが選択されるため優先度の逆転が起きてしまう。このため、調停処理部126は、図3においてS301→S302→S304→S305→S306と判定処理を進め、調停を禁止するため、ARB_EN=‘0’とする。つまり、メインアービタ124による調停処理が一時的に停止される。また、タイミングT3にて、メインアービタ124は、サブアービタ121からの要求SREQ1と共に受信した、撮像処理部110からのコマンドをコマンドキュー125に出力する。このとき、コマンドキュー125は空であるので、そのコマンドが実行される。
タイミングT4では、前回調停で選択したサブアービタ121より調停待ちマスタの有りを示す状態情報RDY1がセットされている。調停処理部126は、タイミングT3と同様に優先度の逆転を防止するため、図3においてS301→S302→S304→S305→S306の判定処理を経て、調停を禁止するために、ARB_EN=‘0’とする。
タイミングT5では、メインアービタ124によって前回選択したサブアービタ121からの状態情報RDY1がクリアされる。そのため、調停処理部126は、図3においてS301→S302→S303と判定処理を経て、調停を許可するため、ARB_EN=‘1’にする。そして、タイミングT6の調停実施のタイミングでは、サブアービタ121からの状態情報RDY1がセットされていない。そのため、調停処理部126は、図3においてS301→302→304→303と判定処理を経て、調停を許可するため、ARB_EN=‘1’にする。なお、このとき、サブアービタ121〜123から発行されているアクセス要求の発行元のうち、最も優先度の高いバスマスタは表示制御部114であるので、メインアービタ124は、表示制御部114からのアクセス要求であるアブアービタ121からのアクセス要求を、コマンドキュー125に出力する。コマンドキュー125は、この時点で空であるので、そのコマンドは直ちに実行される。
タイミングT7にて、メインアービタ124は、そのタイミングで最も優先度の高いバスマスタ(現像処理部111)からのアクセス要求であるサブアービタ122からの要求SREQ2に対して応答信号SACK2を出力する。そして、メインアービタ124は、現像処理部111からの要求コマンドをコマンドキュー125に出力する。このとき、前回の表示制御部114からのコマンドが実行中であるため、現像処理部111からの要求コマンドはコマンドキュー125に保留として蓄積される。この結果、コマンドキュー125の空きがない。それ故、調停処理部126は、図3においてS301→S306と判定処理を経て、調停を禁止するため、ARB_EN=‘0’とする。
タイミングT8では、前回調停で選択されたサブアービタ122からの状態情報RDY2がセットされている。本実施形態の構成では、サブアービタ122には評価値処理部112が接続されており、T8の時点においてメインアービタ124で調停待ちをしている符号化処理115より評価値処理部112の優先度が低い。このため、メインアービタ124が調停を実施しても優先度の逆転は発生しない。また、このタイミングでは、コマンドキュー125にあった現像処理部111からのコマンドが実行され、コマンドキュー125が空になる。それ故、メインアービタ124は、図3においてS301→S302→S304→S305→S303と判定され、調停を許可するため、ARB_EN=‘1’とする。
タイミングT9では、前回の現像処理部111からのコマンドが実行中であるため、符号化処理部115からの要求コマンドはコマンドキュー125に保留として蓄積される。この結果、コマンドキュー125の空きがない。それ故、調停処理部126は、図3においてS301→S306と判定処理を経て、調停を禁止するため、ARB_EN=‘0’とする。
タイミングT10では、コマンドキュー125にあった符号化処理部115からのコマンドが実行され、コマンドキュー125が空になる。しかし、前回調停で選択したサブアービタ123より調停待ちマスタの有りを示す状態情報RDY3がセットされている。つまり、サブアービタ123には、調停待ちのバスマスタが存在することを意味する。本実施例の構成では、サブアービタ123には認識処理部113が接続されており、T4の時点においてメインアービタ124で調停待ちをしている評価値処理部112より認識処理部113の優先度が高い。このため、メインアービタ124が調停を実施すると認識処理部112より優先度の低いバスマスタが選択されるため優先度の逆転が起きてしまう。それ故、調停制御部126は、図3においてS301→S302→S304→S305→S306の判定処理を経て、調停を禁止するため、ARB_EN=‘0’とする。
タイミングT11では、メインアービタ124によって前回選択したサブアービタ123からの状態情報RDY3がクリアされる。また、コマンドキューにも空きがあるので、調停制御部126は、図3においてS301→S302→S303と判定処理を経て、調停を許可するため、ARB_EN=‘1’にする。
タイミングT12では、コマンドキュー125に空きがあり、調停待ちのバスマスタの有無を示す状態情報RDY1〜3もセットされていない。そのため、メインアービタ124は、S301→S302→S303と処理し、調停を許可するため、ARB_EN=‘1’とする。
タイミングT13では、前回の認識処理部113からのコマンドが実行中であるため、評価値処理部112からの要求コマンドはコマンドキュー125に保留として蓄積される。この結果、コマンドキュー125の空きがない。それ故、調停処理部126は、図3においてS301→S306と判定処理を経て、調停を禁止するため、ARB_EN=‘0’とする。
タイミングT14、T15ではコマンドキュー125に空きがあり、調停待ちのバスマスタの有無を示す状態情報RDY1〜3もセットされていない。そのため、調停処理部126は、S301→S302→S303と処理し、調停を許可するため、ARB_EN=‘1’とする。
なお、メインアービタ124は、先に説明したように内部にバッファメモリを有する。そして、調停制御部126から調停可のARBN_ENを受信した場合、バッファメモリに記憶された中で優先度の高いコマンドを、コマンドキューに125に出力する。
以上の結果、タイミングT3〜T5で示すように一つのサブアービタに優先度の高いバスマスタが集中し、より優先度の高いバスマスタのアクセス要求がメインアービタに到達していない状況があった場合、メインアービタの調停が禁止される。この結果、メインアービタは、優先度の低いバスマスタからの要求を、優先度の高いバスマスタより先行して受信してしまうことを防止できる。
よって、多段階のアービタ構造としたメモリコントローラにおいて、複数のバスマスタによるアクセス要求をしている状況下においても、リアルタイム性の高いバスマスタが優先的に処理され、システム或いは装置として処理の破綻も防止できる。
なお、上記実施形態では、サブアービタ121〜123のそれぞれは、2つのバスマスタが接続されるものとして説明したが、複数のバスマスタが接続可能であればよく、その数に特に制限はない。また、コマンドキュー125のキューの段数を1段として説明したが、その段数に特に制限はない。
[第2の実施形態]
次に、第2の実施形態について説明する。上記の第1の実施形態では、メモリコントローラは、複数のアービタによる多段階の階層構造とした。そして、アービタ間のハンドシェイク期間中にメインアービタ124が調停を禁止することで、優先度通りに調停することを実現した。しかし、図2のタイミングT5〜7の期間は、SDRAM104が待機状態でバスマスタからのアクセス要求が出ているにも関わらず、調停が禁止されるため、SDRAMのメモリバス帯域をロスすることになる。このため、リアルタイム性の高い処理を保証する場合、システム全体で使用できるメモリバス帯域の使用率が低下するという課題がある。撮像装置では、センサからの読み出しや表示装置への出力は所定周期間隔での処理が必要なリアルタイム性の高い処理である。しかし、動作モードによって処理周期は変動する。また、SDRAM104とのアクセスに必要な転送時間はバスマスタからのアクセス要求によって異なる。
次に、第2の実施形態について説明する。上記の第1の実施形態では、メモリコントローラは、複数のアービタによる多段階の階層構造とした。そして、アービタ間のハンドシェイク期間中にメインアービタ124が調停を禁止することで、優先度通りに調停することを実現した。しかし、図2のタイミングT5〜7の期間は、SDRAM104が待機状態でバスマスタからのアクセス要求が出ているにも関わらず、調停が禁止されるため、SDRAMのメモリバス帯域をロスすることになる。このため、リアルタイム性の高い処理を保証する場合、システム全体で使用できるメモリバス帯域の使用率が低下するという課題がある。撮像装置では、センサからの読み出しや表示装置への出力は所定周期間隔での処理が必要なリアルタイム性の高い処理である。しかし、動作モードによって処理周期は変動する。また、SDRAM104とのアクセスに必要な転送時間はバスマスタからのアクセス要求によって異なる。
本第2の実施形態では、サブアービタとメインアービタ間のハンドシェイク期間中に、より優先度の高いバスマスタからの要求がメインアービタに到達していない状況において、メインアービタがリアルタイム性の高い処理が破綻しない範囲で調停を実施する。これにより、メモリバス帯域のロスを軽減することを可能にする。
図4は、本第2の実施形態が適用する撮像装置のブロック構成図である。同図における符号400〜404、410〜415は、第1の実施形態の図1における符号101〜104、110〜115と同一の構成要素であり、その機能や動作も同じであるものとし、それらの説明は省略する。また、以下に説明するバスマスタにおける処理時間、周期等を示す情報はメインアービタ424が予め保持しているものとするが、LSI400の外部に設けられたROMに保持させても構わない。
周期制御部430は、撮影時の動作モードに合わせて、水平周期信号(HD)を生成し、生成した水平同期信号を表示制御部414とマージン算出部427に出力する。表示制御部414は、水平同期信号に合わせてSDRAM404より現像処理後の画像データを読み出し、表示部402に出力する。コマンドキュー425は、入力されたコマンドを一時的に格納する。そして、コマンドキュー425は、先に格納されたコマンドから順番にSDRAM404(共有メモリ)に送ることにより、SDRAM404とデータ転送を行い、コマンドキューの空きがなくなった場合はキューフルフラグ(FULL)をセットする。また、SDRAM404と転送中の処理を完了するために必要な時間(tTRANS)を算出し、マージン算出部427へ出力する。調停制御部426は、各サブアービタからの状態情報RDY#(#は1〜3)とコマンドキュー425からの信号FULLに応じてメインアービタ424の調停許可信号ARB_ENを生成する。生成する調停許可信号ARB_ENは3種類であり、許可を示すARB_EN=‘2’、条件付き許可を示すARB_EN=‘1’、そして、禁止を示すARB_EN=‘0’である。マージン算出部427は動作モード毎に予め設定される表示処理周期、と表示処理で必要な転送処理時間より周期マージンを算出する。そして、マージン算出部427は、算出した周期マージンから動作状態によって変動するコマンドキューの処理時間(tTRANS)を減算することで、調停許可マージンtMERGINを算出し、メインアービタ424に出力する。メインアービタ424は、調停許可信号ARB_ENを判定し、調停が許可される場合はサブアービタ421〜423からのアクセス要求に対して、予め設定される優先度に応じて一つのサブアービタを選択する。そして、メインアービタ424は、選択したサブアービタに対し、アクセス受け付けたことを示す応答SACKを出力する。また、メインアービタ424は、選択されたアクセス要求のコマンドをコマンドキュー425へ出力する。
図5は本第2の実施形態におけるメモリコントローラ420の処理に係るタイミングチャートである。図5を用いてメモリコントローラ420の制御の一例について説明する。
図5において、タイミングT1で水平同期信号HDを検出した表示制御部414は、アクセス要求MREQ2をサブアービタ421に向けて発行する。図5では、他のバスマスタとの競合時を示すため、他のバスマスタも同時にアクセス要求(MREQ1、3〜6)を発行させている。つまり、表示制御部414よりも優先度の高い撮像処理部410もアクセス要求MREQ1を発行している。ここで、それぞれのアクセス要求が受け付けられた場合の転送処理時間を、各MREQのセット後に示している。例えば、MRQ1、MRQ2の場合にはともに“2”であることを示している。また、マージン算出部427は、調停許可マージンtMERGINを算出する。図5の場合、HD周期は「8」である。よって、調停マージンtMERGINは、次回のHDまでの残り時間HD_CNTの「8」から、表示処理時間に要する時間「2」とコマンドキューの処理時間tTRANS「0」を減算した「6」となる。
次にタイミングT2で、サブアービタ421〜423それぞれは、予め設定される優先度に従ってバスマスタを選択して調停を実施する。そして、サブアービタ421〜423は、メインアービタ424に対し、選択されたバスマスタの情報(バスマスタを特定する信号及びコマンド)を付加してアクセス要求SREQ1〜3を発行する。また、サブアービタ421〜423それぞれは、アクセス要求発行時に次のアクセス要求が準備できているため、調停待ちのバスマスタ有り示すため、状態情報RDY1〜3をセットする。ここでは、コマンドキューの処理時間tTRANSに変化はないが、次回のHDまでの残り時間HD_CNTが7に減るため、調停許可マージンtMERGINは5となる。
次のタイミングT3にて、メインアービタ424は、優先度が一番高いバスマスタが接続されたサブアービタ421からのアクセス要求によるコマンドを選択(ここでは撮像処理)しコマンドキュー425へ出力する。また、メインアービタ424は、サブアービタ421に対してアクセス受け付け信号SACK1を出力する。コマンドキュー425は、SDRAM404とのデータ転送中でない場合は直ぐにコマンドを発行し、撮像処理のデータ転送を開始する。処理時間「2」の撮像処理のコマンドが格納されたため、コマンドキューの処理時間tTRANSは2(=HD_CNT「6」−表示処理時間「2」−tTRANS「2」)となる。
次にタイミングT4にて、サブアービタ421はアクセス受け付け信号SACK1に合わせて、アクセス要求SREQ1を一旦取り下げる。また、タイミングT4において、各サブアービタから発行されているアクセス要求のうち、優先度が一番高いサブアービタ422からのアクセスの転送処理時間「1」が調停許可マージンtMERGIN「2」より小さい。そのため、調停処理部426は、今回アクセス要求を受け付けたサブアービタ421からの状態情報RDY1がセット状態の場合であっても、メインアービタ424による調停処理を許可する。メインアービタ424は、優先度に基づいて選択した現像処理のコマンドをコマンドキュー425へ出力する。コマンドキュー425はSDRAM404が転送中のため、メインアービタ424から転送されたコマンドを内部に一時的に格納する。これを受けて、コマンドキュー425はキューフルフラグFULLをセットする。ここでは、SDRAM404と転送中の撮像処理の残り転送処理時間は1減るが、新たに現像処理の転送処理時間:1が加算されるためコマンドキューの処理時間tTRANSは「2」となる。次回のHDまでの残り時間HD_CNTも「5」に減るため、調停許可マージンtMERGINは「1」となる。
次にタイミングT5にて、サブアービタ421は、待たされていた表示処理の情報を含むアクセス要求SREQ1をメインアービタ424に出力する。このとき、サブアービタ421は、待たされているアクセス要求がなくなるため、状態情報RDY1をクリアする。この時点で発行されているアクセス要求のうち、優先度が一番高いサブアービタ423からのアクセスの転送処理時間「2」が調停許可マージンtMERGIN「1」より大きい。そのため、調停処理部426は、メインアービタ424による調停を行わないように制御する。また、コマンドキュー425はSDRAM404の転送が終了すると、格納済みの現像処理によるコマンドを発行し、データ転送を開始する。ここでは、コマンドキューの処理時間tTRANSは現像処理のみとなるため1となる。また、次回HDまでの残り時間HD_CNTも「4」に減るが、コマンドキューの処理時間tTRANSは変化しないため、調停許可マージンtMERGINは「1」となる。
次にタイミングT6にて、サブアービタ422は待たされていた評価値処理の情報を含むアクセス要求SREQ2をメインアービタ424に出力する。このとき、サブアービタ422は、待たされているアクセス要求がなくなるため、状態情報RDY2をクリアする。タイミングT6では、状態情報RDY1、RDY2が何れもセット状態でないため、調停処理部426はメインアービタ424による調停処理を許可する。メインアービタ424は、その時点で、優先度が一番高いバスマスタからのアクセス要求である、サブアービタ421からのアクセス要求によるコマンドを選択(ここでは表示処理)し、コマンドキュー425へ出力する。また、メインアービタ434は、サブアービタ421に対してアクセス受け付け信号SACK1を出力する。コマンドキュー425はSDRAM404に対し表示処理に対するコマンドを発行しデータ転送を開始する。ここでは、コマンドキューの処理時間tTRANSは表示処理のみとなるため「2」となる。また、次回HDまでの残り時間HD_CNTも「3」に減るが、周期処理の対象である表示部の転送が開始されたため、調停許可マージンtMERGINは次回HDまで無効となる。
次にタイミングT7にて、サブアービタ421はアクセス受け付け信号SACK1に合わせて、アクセス要求SREQ1を一旦取り下げる。メインアービタ424は、そのタイミングで優先度が一番高いサブアービタ423からのアクセス要求によるコマンドを選択(ここでは符号化処理)しコマンドキュー425へ出力する。また、サブアービタ423に対してアクセス受け付け信号SACK3を出力する。コマンドキュー425はSDRAM404が転送中のため、メインアービタ424から転送されたコマンドを内部に一時的に格納する。これを受けて、コマンドキュー425はキューフルフラグFULLをセットする。ここでは、SDRAM404と転送中の撮像処理の残り転送処理時間は1減るが、新たに符号化処理の転送処理時間「2」が加算されるためコマンドキューの処理時間tTRANSは3となる。
次にタイミングT8にて、サブアービタ423はアクセス受け付け信号SACK3に合わせて、アクセス要求SREQ3を一旦取り下げる。コマンドキュー425はSDRAM404の転送が終了すると、格納済みの符号化処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューに空きができるのでキューフルフラグ(FULL)をクリアする。ここでは、コマンドキューの処理時間tTRANSは符号化処理のみとなるため「2」となる。
次にタイミングT9にて、水平同期信号HDを検出した表示制御部414は、アクセス要求MREQ2を発行する。サブアービタ423は待たされていた認識処理の情報を含むアクセス要求SREQ3をメインアービタ424に出力する。このとき、サブアービタ422は、待たされているアクセス要求がなくなるため、状態情報RDY3をクリアする。メインアービタ424は、このタイミングで優先度が一番高いバスマスタからのアクセス要求である、サブアービタ422からのアクセス要求によるコマンドを選択(ここでは評価値処理)し、コマンドキュー425へ出力する。コマンドキュー425はSDRAM404が転送中のため、メインアービタ424から転送されたコマンドを内部に一時的に格納する。これを受けて、コマンドキュー425はキューフルフラグFULLをセットする。また、サブアービタ422に対してアクセス受け付け信号SACK2を出力する。ここでは、SDRAM404と転送中の符号化処理の残り転送処理時間は1減るが、新たに評価値処理の転送処理時間「1」が加算されるためコマンドキューの処理時間tTRANSは「2」となる。また、HDを検出したため、マージン算出部427は、調停許可マージンを再計算する。次回のHDまでの残り時間HD_CNT「8」から、表示処理時間「2」、コマンドキューの処理時間tTRANS「2」を減算するので、調停許可マージンtMERGINは「4」となる。
次にタイミングT10にて、サブアービタ421は表示処理の情報を含むアクセス要求SREQ1をメインアービタ424に出力する。また、サブアービタ422はアクセス受け付け信号SACK2に合わせて、アクセス要求SREQ2を取り下げる。コマンドキュー425はSDRAM404の転送が終了すると、格納済みの評価値処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューに空きができるのでキューフルフラグ(FULL)をクリアする。ここでは、コマンドキューの処理時間tTRANSは符号化処理のみとなるため「1」となる。
次にタイミングT11にて、メインアービタ434は、その時点で優先度が一番高いバスマスタからのアクセス要求である、サブアービタ421からのアクセス要求によるコマンドを選択(ここでは表示処理)し、コマンドキュー425へ出力する。また、サブアービタ421に対してアクセス受け付け信号SACK1を出力する。コマンドキュー425はSDRAM404に対し表示処理に対するコマンドを発行しデータ転送を開始する。ここでは、コマンドキューの処理時間tTRANSは表示処理のみとなるため「2」となる。また、次回HDまでの残り時間HD_CNTも「5」に減るが、周期処理の対象である表示部の転送が開始されたため、調停許可マージンtMERGINは次回HDまで無効となる。
次にタイミングT12では、サブアービタ421はアクセス受け付け信号SACK1に合わせて、アクセス要求SREQ1を取り下げる。メインアービタ424は、このタイミングで優先度が一番高いバスマスタからのアクセス要求である、サブアービタ423からのアクセス要求によるコマンドを選択(ここでは認識処理)し、コマンドキュー425へ出力する。コマンドキュー425はSDRAM404が転送中のため、内部に一次格納する。これを受けて、コマンドキュー425はキューフルフラグFULLをセットする。ここでは、SDRAM404と転送中の表示処理の残り転送処理時間は1減るが、新たに認識処理の転送処理時間「1」が加算されるためコマンドキューの処理時間tTRANSは2となる。
次にタイミングT13では、サブアービタ422はアクセス受け付け信号SACK2に合わせて、アクセス要求SREQ2を取り下げる。コマンドキュー425はSDRAM404の転送が終了すると、格納済みの認識処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューに空きができるのでキューフルフラグ(FULL)をクリアする。ここでは、コマンドキューの処理時間tTRANSは認識処理のみとなるため「1」となる。
図6は本第2の実施形態におけるメインアービタ424の調停制御フローチャートである。以下、図5、6を用いて、メインアービタ424の調停許可の判定制御について説明する。
図5のタイミングT1、T2、T13ではコマンドキュー425に空きがあり、調停待ちのマスタの有無を示す状態情報RDY1〜3もセットされていない。そのため、このタイミングにて、メインアービタ425は、図6においてS601→S602→S603と判定処理を行い、調停を許可するため、ARB_EN=‘1’とする。図5のタイミングT3の調停実施のタイミングでは、メインアービタ424は、選択したサブアービタ421の調停待ちバスマスタの有無を示す状態情報RDY1がセットされていると判定する。本実施形態の構成では、サブアービタ421には表示制御部414が接続されており、T3の時点においてメインアービタ424で調停待ちをしているなかで一番優先度の高い現像処理部411より表示制御部414の優先度が高い。このため、メインアービタが調停を実施すると表示制御部414より優先度の低いバスマスタが選択されるため優先度の逆転が起きてしまう。しかし、現像処理の処理時間は「1」で調停許可マージンtMERGIN「2」より小さい。このため、メインアービタ424は、図6のS601→S602→S604→S605→S606→S603と判定処理を行い、調停を許可するため、ARB_EN=‘1’とする。タイミングT4、T7、T9、T12では、コマンドキューの空きがないため、図6においてS601→S607と判定され、調停が禁止されるので、ARB_EN=‘0’となる。タイミングT5では、メインアービタ424は、選択したサブアービタ422の調停待ちバスマスタの有無を示す状態情報RDY2がセットされていると判定する。本実施形態の構成では、サブアービタ422には評価値処理部412が接続されており、メインアービタ424で調停待ちをしている符号化処理415より評価値処理部412の優先度が低い。しかし、符号化処理の処理時間「2」は、調停許可マージンtMERGIN「1」より大きい。このため、メインアービタ424は、図6のS601→S602→S604→S605→S606→S607と判定処理を行い、調停が禁止されるので、ARB_EN=‘0’となる。タイミングT6では、メインアービタ424は、選択したサブアービタ421の調停待ちバスマスタの有無を示す状態情報RDY1がセットされていないと判定する。また、コマンドキューに空きがあるため、図6のS601→S602→S603と判定処理を行い、調停を許可するため、ARB_EN=‘1’とする。タイミングT8では、メインアービタ424は、選択したサブアービタ423の調停待ちバスマスタの有無を示す状態情報RDY3がセットされていると判定する。本実施形態の構成では、サブアービタ423には認識処理部413が接続されており、T8の時点においてメインアービタ424で調停待ちをしているなかで一番優先度の高い評価値処理部412より認識処理部413の優先度が高い。このため、メインアービタが調停を実施すると認識処理部413より優先度の低いバスマスタが選択されるため優先度の逆転が起きてしまう。しかし、調停許可マージンtMERGINは無効となっているため、図6のS601→S602→S604→S605→S606→S603と判定処理を行い、調停を許可するため、ARB_EN=‘1’とする。タイミングT10では、メインアービタ424によって前回選択したサブアービタ422からの状態情報RDY2がクリアされている。また、コマンドキューにも空きがあるので、メインアービタ424は、図3においてS601→S602→S603と判定処理を経て、調停を許可するため、ARB_EN=‘1’にする。タイミングT11では、メインアービタ424によって前回選択したサブアービタ422からの状態情報RDY2がクリアされている。また、コマンドキューにも空きがあるので、メインアービタ424は、図3においてS601→S602→S603と判定処理を経て、調停を許可するため、ARB_EN=‘1’にする。
以上に説明したように、タイミングT4で示すようにサブアービタとメインアービタ間のハンドシェイク期間中に、より優先度の高いバスマスタのアクセス要求がメインアービタに到達していない状況があったとする。この場合、本第2の実施形態のメインアービタ424は、リアルタイム性の高い処理のマージンの範囲であれば、優先度の低いバスマスタのアクセス要求を先行して受け付ける。この結果、リアルタイム性の高い処理の破綻を防止しつつ、メモリバス帯域のロスを削減することができる。
[第3の実施形態]
次に、第3の実施形態について説明する。上記の第1の実施形態では、バスマスタの転送処理時間よりもアービタ間のハンドシェイク時間が大きい。このため、図2のタイミングT5〜6の期間は、SDRAM104が待機状態でバスマスタからのアクセス要求が出ているにも関わらず、調停が禁止されるため、SDRAMのメモリバス帯域をロスすることになる。つまり、バスマスタの転送処理時間よりもアービタ間のハンドシェイク時間が小さい場合はアービタ間のハンドシェイクが終了するまで調停を停止してもメモリバス帯域のロスは発生しない。
次に、第3の実施形態について説明する。上記の第1の実施形態では、バスマスタの転送処理時間よりもアービタ間のハンドシェイク時間が大きい。このため、図2のタイミングT5〜6の期間は、SDRAM104が待機状態でバスマスタからのアクセス要求が出ているにも関わらず、調停が禁止されるため、SDRAMのメモリバス帯域をロスすることになる。つまり、バスマスタの転送処理時間よりもアービタ間のハンドシェイク時間が小さい場合はアービタ間のハンドシェイクが終了するまで調停を停止してもメモリバス帯域のロスは発生しない。
そこで、本第3の実施形態では、サブアービタとメインアービタ間のハンドシェイク期間中はメインアービタの調停を停止する。これにより、サブアービタで待たされている他のバスマスタの存在/非存在を示す状態情報RDYを使用することなく優先度の低いバスマスタからの要求を、優先度の高いバスマスタより先行して受信してしまうことを防止する。
図10は、本第3の実施形態が適用する撮像装置のブロック構成図である。同図における符号1000〜1004、1010〜1015は、第1の実施形態の図1における符号101〜104、110〜115それぞれに対応し、その機能や動作も同じであるものとし、それらの説明は省略する。また、以下に説明するバスマスタにおける処理時間を示す情報はメインアービタ1024が予め保持しているものとするが、LSI100の外部に設けられたROMに保持させても構わない。
次に第3の実施形態のメモリコントローラ1020の内部構成について説明する。メモリコントローラ1020は、サブアービタ1021〜1023、メインアービタ1024、タイマ1040、調停制御部1026、コマンドキュー1025を有する。各バスマスタは、アクセス要求REQ#を発行する際に、自身を特定する信号、並びに共有メモリ(SDRAM1004)に対するコマンドも含めて発行するものとする。そして、サブアービタ1021〜1023は、自身に接続されたバスマスタ間の調停を行い、メインアービタ1024はサブアービタ間の調停を行う。
サブアービタ1021は、バスマスタとしての撮像処理部1010、表示制御部1014からの共有メモリ(SDRAM1004)へのアクセス要求MREQ1、2を同時に受信した場合、予め設定される優先度に応じて一つのバスマスタを選択し、選択したバスマスタからのアクセス要求をメインアービタ1024に転送する。サブアービタ1022、1023も同様である。そして、サブアービタ1021〜1023それぞれは、メインアービタ1024へアクセス要求SREQ#(#は1〜3のいずれか)を発行する。また、サブアービタ1021は、これと同時に、アクセス要求MREQを発行中のバスマスタのうち、選択したバスマスタに対し、アクセス受け付けたことを示す応答MACK#(#は1、2のいずれか)を出力する。サブアービタ1022、1023も同様である。また、サブアービタ1021〜1023からメインアービタ1024に発行されるアクセス要求SREQ#には、その要求元のバスマスタを特定する信号、並びに、要求元のバスマスタからのSDRAM1004に対するコマンドが含まれるものとする。
メインアービタ1024は調停が許可(ARB_EN=‘1’)されている場合は、アクセス要求を発行中のサブアービタ1021〜1023から、予め設定される優先度に応じた1つのサブアービタを選択する。そして、メインアービタ1024は、選択したサブアービタに対し、アクセス受け付けたことを示す応答SACK#(#は1〜3のいずれか)を出力する。また、メインアービタ1024は、選択されたサブアービタからのアクセス要求のコマンドをコマンドキュー1025とタイマ1040へ出力する。コマンドキュー1025は、メインアービタ1024から出力されたアクセス要求によるコマンドを一時的に格納する。そして、先に格納したコマンドから順番にSDRAM1004に転送し、SDRAM1004とデータ転送を行う。また、コマンドキュー1025は、キューへのコマンドの格納状態をキューフルFULL信号として調停制御部1026に供給する。コマンドキュー1025は、キューに空きがなくなった場合にはキューフルフラグ(FULL)をセットする。タイマ1040は、メインアービタ1024で調停の開始されたときにタイマのカウントを起動し、カウント値が予め設定される所定値になるまで次の調停実施を停止するSTOP信号を調停制御部1026へ出力する。調停制御部1026は、コマンドキュー1025からの信号FULLとタイマ1040からの信号STOPに応じて、メインアービタ1024による調停可否を決定するための調停許可信号(ARB_EN)を制御する。
図11は本第3の実施形態におけるメモリコントローラ1020の処理に係るタイミングチャートである。図11を用いてメモリコントローラ1020の制御の一例について説明する。
図11において、タイミングT1でサブアービタ1021〜1023に繋がる全てのバスマスタからアクセス要求MREQ1〜MREQ6が発行されている。
次のタイミングT2にて、サブアービタ1021〜1023それぞれは、予め設定される優先度に従って調停を実施し、メインアービタ1024に対し、選択されたバスマスタを特定する情報を付加してアクセス要求を発行する(SREQ1〜3)。また、サブアービタ1021〜1023それぞれは、選択されたバスマスタに、要求を受けたことを示す応答MACK#を出力する。なお、図示の場合、このタイミングにて、撮像処理部1010、現像処理部1011、符号化処理部1015が選択されていることを示している。
次にタイミングT3にて、メインアービタ1024は、その時点で優先度が一番高いバスマスタからのアクセス要求である、サブアービタ1021からのアクセス要求によるコマンドを選択(ここでは撮像処理部1010)し、コマンドキュー1025へ出力する。また、メインアービタ1024は、サブアービタ1021に対してアクセス受け付けたことを示す応答SACK1を出力する。コマンドキュー1025は、既にSDRAM1004をアクセスしているバスマスタが存在しない場合には、直ぐにそのコマンドを発行し、撮像処理のデータ転送を開始する。また、タイマ1040はメインアービタ1024で調停が実施されるとクロックCLKに同期してカウントアップを開始する。本実施形態ではサブアービタ1021〜1023とメインアービタ1024間のハンドシェイク期間を「2」とする。タイマ1040は、カウント値が「1」、「2」の期間はSTOP信号をセットする。図11の例では、メインアービタ1024は、タイミングT3でサブアービタ1021〜1−23から同時にアクセス要求SREQ#を受信し、調停を行うことになるので、タイマ1040はカウントアップを行い、そのタイマカウント値が「1」にセットされることになる。
次にタイミングT4にて、サブアービタ1021は、メインアービタ1024からのアクセス受け付けたことを示す応答SACK1に合わせて、アクセス要求SREQ1を一旦取り下げる。そして、タイミングT5にて、サブアービタ1021は、待たされていた表示制御部1014の情報(表示制御部1014を特定する信号とそのコマンドを含む)を付加してアクセス要求SREQ1をメインアービタ1024に出力する。このとき、タイマ1040はアービタ間のハンドシェイク期間とタイマカウント値が等しくなるため、STOP信号をクリアする。つまり、メインアービタ1024による調停ARB_ENが“1”となって、調停可となる。また、サブアービタ1021は表示制御部114に要求を受けたことを示す応答MACK2を出力する。
次にタイミングT6でメインアービタ1024は、優先度が一番高いサブアービタ1021からのアクセスに対するコマンドを選択(ここでは表示制御部1014)しコマンドキュー1025へ出力する。また、サブアービタ1021に対してアクセス受け付けたことを示す応答SACK1を出力する。コマンドキュー1025はSDRAM1004が転送中のため、内部に一次格納しキューフルフラグFULLをセットする。また、タイマ1040はタイマのカウントアップを開始する。
次のタイミングT7にて、サブアービタ1021はメインアービタ1024からの応答SACK1に合わせて、アクセス要求SREQ1を取り下げる。コマンドキュー1025はSDRAM1004の転送が終了すると、格納済みの表示処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューが空になるためFULLをクリアする。そして、タイミングT8では、タイマ1040はアービタ間のハンドシェイク期間とタイマカウント値が等しくなるため、STOP信号をクリアする。
次にタイミングT9でメインアービタ1024は、その時点で優先度が一番高いバスマスタからのアクセス要求である、サブアービタ1022からのアクセス要求によるコマンドを選択(ここでは現像処理部1011)しコマンドキュー1025へ出力する。また、サブアービタ1022に対してアクセス受け付けたことを示す応答SACK2を出力する。コマンドキュー1025はSDRAM1004が転送中のため、メインアービタ1024からのコマンドを内部に一時的に格納し、キューフルフラグFULLをセットする。また、タイマ1040はタイマのカウントアップを開始し、STOPをセットする。
次にタイミングT10にて、サブアービタ1022は、メインアービタ1024からのアクセス受け付けたことを示す応答SACK2に合わせて、アクセス要求SREQ2を一旦取り下げる。そして、タイミングT11にて、サブアービタ1022は、待たされていた評価値処理部1012の情報(評価値処理部1012を特定する信号とそのコマンドを含む)を付加してアクセス要求SREQ2をメインアービタ1024に出力する。このとき、タイマ1040はアービタ間のハンドシェイク期間とタイマカウント値が等しくなるため、STOP信号をクリアする。また、サブアービタ1022は評価値処理部1012に要求を受けたことを示す応答MACK2を出力する。また、コマンドキュー1025はSDRAM1004の転送が終了すると、格納済みの現像処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューが空になるためFULLをクリアする。
次にタイミングT12でメインアービタ1024は、その時点で優先度が一番高いバスマスタからのアクセス要求である、サブアービタ1023からのアクセス要求によるコマンドを選択(ここでは符号化処理部1015)し、コマンドキュー1025へ出力する。また、サブアービタ1023に対してアクセス受け付けたことを示す応答SACK3を出力する。コマンドキュー1025はSDRAM1004が転送中のため、メインアービタ1024からのコマンドを内部に一時的に格納し、キューフルフラグFULLをセットする。また、タイマ1040はタイマのカウントアップを開始し、STOPをセットする。
次にタイミングT13にて、サブアービタ1023は、メインアービタ1024からのアクセス受け付けたことを示す応答SACK3に合わせて、アクセス要求SREQ3を一旦取り下げる。そして、タイミングT14にて、サブアービタ1023は、待たされていた認識処理部1013の情報(認識処理部1013を特定する信号とそのコマンドを含む)を付加してアクセス要求SREQ3をメインアービタ1024に出力する。このとき、タイマ1040はアービタ間のハンドシェイク期間とタイマカウント値が等しくなるため、STOP信号をクリアする。また、サブアービタ1023は認識処理部1013に要求を受けたことを示す応答MACK5を出力する。タイミングT15では、コマンドキュー1025はSDRAM1004の転送が終了すると、格納済みの符号化処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューが空になるためFULLをクリアする。
次にタイミングT16でメインアービタ1024は、その時点で優先度が一番高いバスマスタからのアクセス要求である、サブアービタ1023からのアクセス要求によるコマンドを選択(ここでは認識処理部1013)し、コマンドキュー1025へ出力する。また、サブアービタ1023に対してアクセス受け付けたことを示す応答SACK3を出力する。コマンドキュー1025はSDRAM1004が転送中のため、メインアービタ1024からのコマンドを内部に一時的に格納し、キューフルフラグFULLをセットする。また、タイマ1040はタイマのカウントアップを開始し、STOPをセットする。
次にタイミングT17にて、サブアービタ1023は、メインアービタ1024からのアクセス受け付けたことを示す応答SACK3に合わせて、アクセス要求SREQ3を取り下げる。そして、タイミングT18にて、タイマ1040はアービタ間のハンドシェイク期間とタイマカウント値が等しくなるため、STOP信号をクリアする。タイミングT19では、コマンドキュー1025はSDRAM1004の転送が終了すると、格納済みの認識処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューが空になるためFULLをクリアする。
次にタイミングT20でメインアービタ1024は、その時点で優先度が一番高いバスマスタからのアクセス要求である、サブアービタ1022からのアクセス要求によるコマンドを選択(ここでは評価値処理部1012)し、コマンドキュー1025へ出力する。また、サブアービタ1022に対してアクセス受け付けたことを示す応答SACK2を出力する。コマンドキュー1025はSDRAM1004が転送中のため、メインアービタ1024からのコマンドを内部に一時的に格納し、キューフルフラグFULLをセットする。また、タイマ1040はタイマのカウントアップを開始し、STOPをセットする。
次にタイミングT21にて、サブアービタ1022は、メインアービタ1024からのアクセス受け付けたことを示す応答SACK2に合わせて、アクセス要求SREQ2を取り下げる。そして、タイミングT22にて、タイマ1040はアービタ間のハンドシェイク期間とタイマカウント値が等しくなるため、STOP信号をクリアする。タイミングT23では、コマンドキュー1025はSDRAM1004の転送が終了すると、格納済みの評価値処理に対するコマンドを発行し、データ転送を開始する。また、コマンドキューが空になるためFULLをクリアする。
図12は本第3の実施形態におけるメインアービタ1024の調停制御フローチャートである。以下、図11、12を用いて、メインアービタ1024の調停許可の判定制御について説明する。
図11のタイミングT1、T2、T24〜26ではコマンドキュー1025に空きがあり、メインアービタ1024が前回の調停を実施してから所定期間(本実施形態では「2」)を経過している。このため、図12においてS1201→S1202→S1203と判定処理を行い、調停を許可するため、調停制御部1026はARB_EN=‘1’とする。図11のタイミングT3では、コマンドキュー1025に空きがあり、メインアービタ1024で調停が実施されるためタイマ1040よりSTOP信号がセットされる。このため、図12においてS1201→S1202→S1204と判定され、調停制御部1026は調停が禁止する。つまり、調停制御部1026はARB_EN=‘0’とする。また、T4では、タイマ1040のカウンタが動作中でありSTOP信号がセットされているため、図12においてS1201→S1202→S1204と判定され、調停が禁止されるため、ARB_EN=‘0’とする。
図11のタイミングT5、T8では、タイマ1040のカウンタが所定値(本実施形態では「2」)となりSTOP信号がクリアされる。このため、図12においてS1201→S1202→S1203と判定処理が行われ、調停制御部1026は調停を許可するため、ARB_EN=‘1’とする。図11のタイミングT6、T9、T12、T16、T20では、メインアービタ1024で調停が実施され、SDRAM1004も転送中のため、調停されたコマンドがコマンドキュー1025に格納され、FULL信号がセットされるため、図12においてS1201→S1204と判定され、調停が禁止される。このため、調停制御部1026はARB_EN=‘0’とする。
図11のタイミングT7では、SDRAM1004の転送が終了し、コマンドキュー1025に格納されていたコマンドの転送が開始されるためFULL信号がクリアされる。しかし、タイマ1040はカウンタ値が「2」であるので、調停制御部1026へのSTOP信号がセットされている。このため、図12においてS1201→S1202→S1204と判定され、調停制御部1026は調停を禁止するためにARB_EN=‘0’とする。図11のタイミングT10、T13、T14、T17、T18、T21、T22ではコマンドキュー1025に空きがないためFULL信号がセットされている。それ故、図12においてS1201→S1202→S1204と判定され、調停制御部1025は調停を禁止するために、ARB_EN=‘0’とする。
以上の結果、タイミングT3〜T5で示すように一つのサブアービタに優先度の高いバスマスタが集中し、より優先度の高いバスマスタのアクセス要求がメインアービタに到達していない状況においてメインアービタの調停が禁止される。この結果、メインアービタは、優先度の低いバスマスタからの要求を、優先度の高いバスマスタより先行して受信してしまうことを防止できる。
なお、実施形態におけるタイマ1040はクロックCLKに同期して0,1,2の3値を計時するタイマとしたが、計時する値によって発明が限定されるものではない。また、タイマ1040はカウントアップするものとしたが、カウントダウンしても構わない。要は、調停を開始してからの経過時間(クロック数)を計測できれば良いからである。
100…LSI、101…撮像センサ、102…表示部、103…記録媒体、104…SDRAM、110…撮像処理部、111…現像処理部、112…評価値処理部、113…認識処理部、114…表示制御部、115…符号化部、120…メモリコントローラ、121、122、123…サブアービタ、124…メインアービタ、125…コマンドキュー、126…調停制御部
Claims (10)
- 複数のバスマスタからの共有メモリへのアクセスを制御するメモリ制御装置であって、
それぞれが複数の前記バスマスタに接続され、接続された複数の前記バスマスタからの前記共有メモリに対するアクセス要求を調停することにより一つのバスマスタを選択し、選択したバスマスタからのアクセス要求を出力する複数のサブアービタと、
前記複数のサブアービタから出力されたアクセス要求を調停することにより一つの前記サブアービタから出力されたアクセス要求を選択し、選択したアクセス要求を出力するメインアービタと、
前記メインアービタから出力されたアクセス要求のコマンドを格納し、格納された前記コマンドを実行するコマンドキューと、
前記メインアービタの調停実施の可否を制御する調停制御部とを有し、
前記調停制御部は、調停の開始した後に所定の条件が満たされるまで次の調停実施を停止することを特徴とするメモリ制御装置。 - 前記複数のサブアービタそれぞれは、
アクセス要求を発行した複数の前記バスマスタのうち最も優先度の高いバスマスタからのアクセス要求を前記メインアービタに出力するとともに、調停待ちのバスマスタの有無を示す状態情報を前記メインアービタに出力し、
前記調停制御部は、コマンドキューの空き状態と、前記状態情報に基づき、前記メインアービタによる調停の可否を制御する
ことを特徴とする請求項1記載のメモリ制御装置。 - バスマスタの処理のマージンを算出する算出部を備え、
前記算出部は、
予め設定される値と、前記コマンドキューに格納済みのコマンドの転送処理時間より処理のマージンを算出し、
前記メインアービタは、算出した処理のマージンとアクセス要求の転送処理時間より調停を制御することを特徴とする請求項1又は2に記載のメモリ制御装置。 - 前記調停制御部は、前記メインアービタによる調停を開始してからの経過時間を計測するタイマを有し、前記タイマのカウント値が所定値になるまで、前記メインアービタによる次回の調停実施を停止することを特徴とする請求項1に記載のメモリ制御装置。
- 前記複数のサブアービタ、前記メインアービタ、前記コマンドキュー、前記調停制御部、及び、前記サブアービタに接続される複数のバスマスタは、1つのLSIに実装され、
当該LSIの外に接続されたSDRAMで構成される共有メモリと前記バスマスタ間の調停を行うことを特徴とする請求項1乃至4のいずれか項に記載のメモリ制御装置。 - 撮像部と、
表示部と、
共有メモリと、
それぞれが前記共有メモリにアクセスする複数のバスマスタであって、前記撮像部からの画像を処理する画像処理部と、前記表示部に表示する画像を処理する表示制御部と、記録媒体に画像を記録するための処理を行う記録処理部とを含む複数のバスマスタと、して機能する複数の処理部と、
それぞれが複数の前記バスマスタに接続され、接続された複数の前記バスマスタからのアクセス要求を調停することにより一つのバスマスタを選択し、選択したバスマスタからのアクセス要求を出力する複数のサブアービタと、
前記複数のサブアービタから出力されたアクセス要求を調停することにより一つの前記サブアービタから出力されたアクセス要求を選択し、選択したアクセス要求を出力するメインアービタと、
前記メインアービタから出力されたアクセス要求のコマンドを格納し、前記格納したコマンドを実行するコマンドキューと、
前記メインアービタの調停実施の可否を制御する調停制御部とを有し、
前記調停制御部は、調停の開始した後に所定の条件が満たされるまで次の調停実施を停止することを特徴とする撮像装置。 - 複数のバスマスタから共有メモリへののアクセスを制御するメモリ制御装置であって、
それぞれが複数の前記バスマスタに接続され、接続された複数の前記バスマスタからの前記共有メモリに対するアクセス要求を調停して出力する、複数のサブアービタと、
前記複数のサブアービタからのアクセス要求を調停して出力するメインアービタと、
前記メインアービタからのアクセス要求のコマンドを格納し、格納された前記コマンドを実行するコマンドキューと、
前記コマンドキューにおけるコマンドの格納状態、及び、前記サブアービタが発行する所定の情報に基づき、前記バスマスタの調停を行うか否かを制御する調停制御部とを有し、
前記複数のサブアービタそれぞれは、
複数の前記バスマスタから前記共有メモリに対する第1のアクセス要求を受信した場合、当該第1のアクセス要求を発行中のバスマスタのうち、優先度が最も高いバスマスタに対して、要求を受け付けたことを表す第1の応答を出力し、
前記優先度が最も高いバスマスタからの前記第1のアクセス要求に応じて第2のアクセス要求を前記メインアービタに出力し、
前記所定の情報として、待機状態にあるバスマスタの有無を表す状態情報を前記メインアービタに出力し、
前記メインアービタから、前記第2のアクセス要求に対する第2の応答を受信した場合は、前記優先度が最も高いバスマスタからの前記第1のアクセス要求を取り下げ、次に優先度が高いバスマスタからの前記第1のアクセス要求に応じて前記第2のアクセス要求を出力し、
前記メインアービタは、
前記複数のサブアービタから前記第2のアクセス要求を受信した場合、当該受信した第2のアクセス要求のうち、最も優先度の高いバスマスタからの前記共有メモリへのアクセス要求にを出力するとともに、前記最も優先度の高いバスマスタを接続したサブアービタに対して前記第2の応答を出力し、
前記調停制御部は、
前記コマンドキューの格納状態、及び、前記サブアービタからの前記状態情報に基づき、前記バスマスタの調停を行うか否かを制御する
ことを特徴とするメモリ制御装置。 - 複数のバスマスタから共有メモリへのアクセスを制御するメモリ制御装置であって、
それぞれが複数の前記バスマスタに接続され、接続された複数の前記バスマスタからの前記共有メモリに対するアクセス要求を調停して出力する、複数のサブアービタと、
前記複数のサブアービタからのアクセス要求を調停して出力するメインアービタと、
前記メインアービタが調停を行ってからの経過時間に応じて前記メインアービタを制御する調停制御部であって、前記メインアービタが調停を行ってから所定時間が経過するまで、次の調停を停止するように前記メインアービタを制御する調停制御部とを有する
ことを特徴とするメモリ制御装置。 - 前記複数のサブアービタと前記メインアービタはそれぞれ動作クロックに応じて調停を行い、前記調停制御部は、前記動作クロックに同期して前記メインアービタが調停を行ってからの経過時間を計測し、前記計測した経過時間が所定値に達するまで前記メインアービタによる次の調停を停止することを特徴とする請求項8に記載のメモリ制御装置。
- 前記メインアービタからのアクセス要求のコマンドを格納し、前記格納したコマンドを実行するコマンドキューを有し、
前記複数のサブアービタそれぞれは、
複数の前記バスマスタから前記共有メモリに対する第1のアクセス要求を受信した場合、当該第1のアクセス要求を発行中のバスマスタのうち、優先度が最も高いバスマスタに対して、要求を受け付けたことを表す第1の応答を出力し、
前記優先度が最も高いバスマスタからの前記第1のアクセス要求に応じて第2のアクセス要求を前記メインアービタに出力し、
前記メインアービタから、前記第2のアクセス要求に対する第2の応答を受信した場合は、前記優先度が最も高いバスマスタからの前記第1のアクセス要求を取り下げ、次に優先度が高いバスマスタからの前記第1のアクセス要求に応じて前記第2のアクセス要求を出力し、
前記メインアービタは、
前記複数のサブアービタから前記第2のアクセス要求を受信し、且つ、前記調停制御部から調停可を示す信号が発行されている場合、受信した第2のアクセス要求のうち、最も優先度の高いバスマスタからの前記共有メモリへのコマンドをコマンドキューに設定するとともに、前記最も優先度の高いバスマスタを接続したサブアービタに対して前記第2の応答を出力し、
前記調停制御部は、
前記複数のサブアービタから前記第2のアクセス要求を受信した場合における前記メインアービタによる調停を開始してからの経過時間を計測するためのタイマを有し、
前記コマンドキューが新たなコマンドの格納が可能な状態にあり、且つ、前記タイマによる調停を開始してからの経過時間が予め設定された閾値に達したことを表す条件を満たす場合に、前記バスマスタに対して調停可の信号を出力し、前記条件を満たさない場合には調停を停止させる信号を出力することを特徴とする請求項8に記載のメモリ制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016042825 | 2016-03-04 | ||
JP2016042825 | 2016-03-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017162431A true JP2017162431A (ja) | 2017-09-14 |
Family
ID=59857157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016120206A Pending JP2017162431A (ja) | 2016-03-04 | 2016-06-16 | メモリ制御装置及び撮像装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017162431A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791892A (zh) * | 2021-07-30 | 2021-12-14 | 北京智芯微电子科技有限公司 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
-
2016
- 2016-06-16 JP JP2016120206A patent/JP2017162431A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791892A (zh) * | 2021-07-30 | 2021-12-14 | 北京智芯微电子科技有限公司 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
CN113791892B (zh) * | 2021-07-30 | 2024-03-26 | 北京智芯微电子科技有限公司 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411753B2 (en) | Systems and methods for dynamically determining a priority for a queue of commands | |
JP4436367B2 (ja) | 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、及び調停装置を含む動画処理装置 | |
JP2005316608A (ja) | バス調停装置およびバス調停方法 | |
US20070233923A1 (en) | Bus arbitration system and method thereof | |
US8732378B2 (en) | Bus bandwidth monitoring device and bus bandwidth monitoring method | |
US20190079881A1 (en) | Memory access control device, image processing device, and imaging device | |
EP2709020B1 (en) | System and method to arbitrate access to memory | |
US10719458B2 (en) | Data transfer device, image processing device, and imaging device | |
JP2017162431A (ja) | メモリ制御装置及び撮像装置 | |
US11314664B2 (en) | Memory access device, image processing device and imaging device | |
JP4850504B2 (ja) | 信号処理装置、撮像装置およびデータ転送方法 | |
WO2019043822A1 (ja) | メモリアクセス装置、画像処理装置、および撮像装置 | |
JP2011034495A (ja) | メモリアクセス装置、及び映像処理システム | |
JP2006215621A (ja) | Dma制御装置 | |
JP2006039672A (ja) | バス要求制御回路 | |
US8713205B2 (en) | Data transfer device and data transfer method | |
JP2010033496A (ja) | コンピュータシステム | |
US20120042111A1 (en) | Bus bandwidth monitoring device and bus bandwidth monitoring method | |
US8327054B2 (en) | Data check circuit for checking program data stored in memory | |
US7747806B2 (en) | Resource use management device, resource use management system, and control method for a resource use management device | |
JP4898527B2 (ja) | リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法 | |
KR20080079429A (ko) | 단일메모리를 갖는 데이터처리시스템의 메모리 중재기 및그 중재 방법 | |
JP2020035263A (ja) | メモリコントローラ | |
JP2004062333A (ja) | 画像処理装置 | |
JP2017123086A (ja) | 画像処理装置 |