JP2010129029A - メモリアクセス制御装置およびメモリアクセス制御方法 - Google Patents

メモリアクセス制御装置およびメモリアクセス制御方法 Download PDF

Info

Publication number
JP2010129029A
JP2010129029A JP2008306025A JP2008306025A JP2010129029A JP 2010129029 A JP2010129029 A JP 2010129029A JP 2008306025 A JP2008306025 A JP 2008306025A JP 2008306025 A JP2008306025 A JP 2008306025A JP 2010129029 A JP2010129029 A JP 2010129029A
Authority
JP
Japan
Prior art keywords
data
command
write
memory
unit
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.)
Withdrawn
Application number
JP2008306025A
Other languages
English (en)
Inventor
Yosuke Fukuda
洋介 福田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008306025A priority Critical patent/JP2010129029A/ja
Priority to US12/628,633 priority patent/US8301816B2/en
Publication of JP2010129029A publication Critical patent/JP2010129029A/ja
Withdrawn 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/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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

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

Abstract

【課題】メモリとのデータの転送効率を向上させたメモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法を提供する。
【解決手段】画像処理システム1において、第2のDRAMコントローラ20に、画像処理ユニット30のコマンドI/FとデータI/Fからの両方のデータが入力されるまで第1DRAMコントローラ10へ出力しないように制御するか、若しくは、コマンドI/Fにデータが入力された際にすぐさま第1DRAMコントローラ10に出力しその後に対応するデータI/Fからデータが入力されたときにデータI/Fのデータを出力するように制御するか、のいずれかのモードに切替えてその切り替えに応じたタイミングでデータを出力する調停回路21を備える。
【選択図】図1

Description

本発明は、メモリへのアクセスを制御するメモリアクセス制御装置およびメモリアクセス制御方法に関する。
従来、さまざまなデータ処理がLSI(Large Scale Integration)により実現されている。例えば、ビデオカメラやデジタルカメラなどには、画像センサーから取り込んだ画像データにさまざまな処理を施すためのLSIが搭載されている。また、携帯電話や携帯音楽端末にも音声データにさまざまな処理を施すためのLSIが搭載されている。このような画像データや音声データ等の大容量のデータに複雑な処理を施すこれらのLSIには、接続されるメモリなどの記憶装置とのデータ転送に高いスループットが要求され、さまざまな技術が開発されてきている。
例えば、特許文献1に記載の半導体装置では、複数のデータを処理するデータ処理部と処理したデータを一時的に蓄積するバッファと、バッファに蓄積されたデータをバースト転送でデータ格納部へ転送するバッファ制御部を備え、前記バッファ制御部は、1回のバースト転送で転送されるデータ量が前記バッファに蓄積される前にバースト転送を開始させることによって、バッファに蓄積されたデータ転送を効率良く行うことが提案されている。
この、特許文献1に記載された半導体装置は、複数のデータ処理部からバッファに蓄えられ、バッファから調停回路までのデータ転送効率を上げることを目的にしており、データ転送を行った先のメモリコントローラ部での処理を考慮してデータ転送効率を上げているわけではない。
また、特許文献2に記載のデータ転送システムでは、複数のマスタと外部メモリの制御を行うメモリコントローラと、各バスマスタからのバス使用要求を調停するバスアービターとが接続されるバスのデータ転送システムにおいて、メモリコントローラが各バスマスタにバス使用推薦情報を通知し、各バスマスタがメモリコントローラから通知されたバス使用推薦情報に基づいてバスアービターにバス使用要求を発行している。
特開2008−165485号公報 特開2006−127408号公報
ここで、複数のバスマスタ301、302、303からアクセスされるDRAMコントローラ100のブロック図を図4に示す。図4に示したDRAMコントローラ100は、バスマスタ301、302、303とは、アドレス・リード/ライトなどのデータが入力されるコマンドI/Fと、バスマスタ301、302、303からDRAM200に対して書き込むデータが入力されるデータI/Fと、接続され、コマンドI/Fから入力されるリード・ライト・データアクセス数・アドレスを示すデータからDRAM200に対して発行するコマンド入力データを決定するコマンド解析部101と、コマンド解析部101が解析したコマンド入力データとデータI/Fから入力されるデータとを受け取りDRAM200に対してコマンド制御信号とデータ制御信号とを出力するタイミングを制御するコマンド実行部102と、を備えている。なお、DRAM200はSDRAM(Synchronous Dynamic Random Access Memory)やDDR(Double Data Rate)−SDRAMなどのバーストアクセス可能なメモリである。
このDRAMコントローラ100においては、コマンドI/Fから入力されたデータがDRAM200に対するコマンド制御信号として出力されるまでのレイテンシが、データI/Fから入力されたデータがDRAM200に対するデータ制御信号として出力されるまでのレイテンシよりも多い。このコマンドI/Fからコマンド制御信号が出力されるまでのレイテンシが発生する理由は、コマンドI/Fから入力される信号を解析し複数のコマンドを発生させることや、リード・ライトによる判別を行うことに起因する。
そのため、コマンドI/FとデータI/Fに同時にデータが入力されたとしても、コマンドI/Fから入力されたデータの処理が終わるまでの間、データI/Fから入力されたデータをデータ制御信号としてDRAM200に出力できず、DRAMコントローラ100はDRAMに対してアクセスできない時間が発生し、DRAMコントローラ100とDRAM200の間の転送効率が低下するという問題があった。
また、図4に示したDRAMコントローラ100において、DRAMコントローラ100の先には複数のバスマスタ301、302、303が存在しており、あるバスマスタがDRAMコントローラ100に対するコマンドI/FとデータI/Fのバスを占有する機構となっている。例えばバスマスタ301がDRAMコントローラ100に対してライト要求を発行する時は、コマンドI/Fにライト要求を発行し、データI/Fにデータを入力しきるまで、他のバスマスタ302、303はDRAMコントローラ100に対してライト要求を行えない。
このため、あるマスタがライト要求を発行した後、データI/Fに入力するデータを準備するのに大きなレイテンシがかかっている時に、コマンドI/FとデータI/Fとを占有してしまうため、他のマスタがDRAMコントローラ100に対してライト要求を行えないことから、DRAMコントローラ100は結果的にDRAM200に対する転送効率が落ちてしまうという問題があった。
本発明はかかる問題を解決することを目的としている。
すなわち、本発明は、メモリとのデータ転送効率を向上させたメモリアクセス制御装置、メモリアクセス制御システムおよびメモリアクセス制御方法を提供することを目的としている。
請求項1に記載された発明は、複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、前記複数のバスマスタそれぞれに対応して設けられ、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータを前記コマンド解析部に出力し、前記ライトデータを前記コマンド実行部へ出力するタイミング調停部と、が設けられていることを特徴とするメモリアクセス制御装置である。
請求項2に記載された発明は、複数のバスマスタと、前記複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、自身が発行するライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、自身が発行するライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力するタイミング調停部と、が前記バスマスタそれぞれに設けられていることを特徴とするメモリアクセス制御装置である。
請求項3に記載された発明は、請求項1または2に記載された発明において、前記複数のバスマスタが前記メモリ制御部へライトアクセス要求を行う際のアクセス優先権を設定するアクセス優先権設定部を有し、前記アクセス優先権設定部が、予め定めた所定時間間隔で前記複数のバスマスタのアクセス優先権を順次切替えられるように構成されていることを特徴とする。
請求項4に記載された発明は、請求項1乃至3のうち一項に記載された発明において、前記アクセス優先権設定部が、前記複数のバスマスタのうち特定のバスマスタにアクセス優先権を設定されるように構成されていることを特徴とする。
請求項5に記載された発明は、請求項1乃至4のうち一項に記載された発明において、前記バスマスタが、前記ライトデータよりも前記コマンドデータを先に出力するように構成されていることを特徴とする。
請求項6に記載された発明は、複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析し、その解析結果と前記複数のバスマスタから入力されるライトデータに基づいて前記メモリに対してコマンド制御信号とデータ制御信号とを出力して前記メモリを制御するメモリアクセス制御方法において、前記バスマスタからのライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記メモリ制御部へ発行するモード、または、前記バスマスタからのライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記メモリ制御部へ発行するモード、のいずれかのモードへ設定し、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力することを特徴とするメモリアクセス制御方法である。
請求項1に記載の発明によれば、モード設定部がバスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でコマンド解析部へ発行するモード、または、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモード、のいずれかのモードに設定されて、そのモード設定に応じたタイミングでタイミング調停部が前記バスマスタからの前記ライトアクセス要求および前記コマンドデータを前記コマンド解析部に出力し、前記ライトデータを前記コマンド実行部へ出力しているので、複数のバスマスタからアクセスがある場合は、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でライトアクセス要求をコマンド解析部へ発行するモードに設定すれば、1つのバスマスタがデータを準備する間にコマンドI/FやデータI/Fを占有することがなくなり、他のバスマスタからのアクセス要求も受け付けられるために、バスマスタとの間のバスの転送効率が向上し、結果的にメモリとのデータの転送効率を向上させることができる。
また、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモードに設定することができるようにしておくことで、他のバスマスタからのアクセスが無いことが明らかな場合にコマンドデータのみを先に受け付けてコマンド制御信号を生成するまでのレイテンシを稼ぐことでメモリのデータの転送効率を向上させることができる。
請求項2に記載の発明によれば、モード設定部がバスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でメモリ制御部へ発行するモード、または、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもメモリ制御部へ発行するモード、のいずれかのモードに設定されて、そのモード設定に応じたタイミングでタイミング調停部が前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力しているので、複数のバスマスタからアクセスがある場合は、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でライトアクセス要求をコマンド解析部へ発行するモードに設定すれば、1つのバスマスタがデータを準備する間にコマンドI/FやデータI/Fを占有することがなくなり、他のバスマスタからのアクセス要求も受け付けられるために、バスマスタとの間のバスの転送効率が向上し、結果的にメモリとのデータの転送効率を向上させることができる。
また、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモードに設定することができるようにしておくことで、他のバスマスタからのアクセスが無いことが明らかな場合にコマンドデータのみを先に受け付けてコマンド制御信号を生成するまでのレイテンシを稼ぐことでメモリのデータの転送効率を向上させることができる。
さらに、各バスマスタそれぞれにモード設定部とタイミング調停部とが設けられているので、個別にモード設定することができ、使用条件によって用途を選ぶことができる。例えば、他のバスマスタと競合しないバスマスタではライトアクセス要求をコマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくてもコマンド解析部へ発行するモードに設定すれば、メモリアクセス制御装置で一括して制御することと比較してそのバスマスタについては余計な制限がなくなるために、メモリへのデータ転送効率を向上させることができる。
請求項3に記載の発明によれば、メモリ制御部へのアクセス優先権を時間によって設定することができるので、アクセス優先権を手動で設定することなく、自動的に各バスマスタにアクセス優先権を与えることができる。
請求項4に記載の発明によれば、メモリ制御部へのアクセス優先権を特定のバスマスタへ与えるように設定できるので、例えば特定のバスマスタのみアクセスされることが予め判明している処理においては、時間によってアクセス優先権を与えるよりも効率的にアクセスすることができる。
請求項5に記載の発明によれば、バスマスタがライトデータよりもコマンドデータを先に出力するように構成されているので、コマンド解析部におけるコマンド解析によって生じるレイテンシ時間をライトデータに先行して出力することで相殺することができる。
請求項6に記載の発明によれば、バスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で発行するモード、または、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくても発行するモード、のいずれかのモードに設定されて、そのモード設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力しているので、複数のバスマスタからアクセスがある場合は、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点でライトアクセス要求を発行するモードに設定すれば、1つのバスマスタがデータを準備する間にコマンドI/FやデータI/Fを占有することがなくなり、他のバスマスタからのアクセス要求も受け付けられるために、バスマスタとの間のバスの転送効率が向上し、結果的にメモリとのデータの転送効率を向上させることができる。
また、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃ってなくても発行するモードに設定することができるようにしておくことで、他のバスマスタからのアクセスが無いことが明らかな場合にコマンドデータのみを先に受け付けてコマンド制御信号を生成するまでのレイテンシを稼ぐことでメモリのデータの転送効率を向上させることができる。
以下、本発明の一実施形態を、図1乃至図3を参照して説明する。図1は、本発明の一実施形態にかかるメモリアクセス制御装置を有する画像処理システム1のブロック図である。図2は、図1に示した第2のDRAMコントローラの詳細を示す説明図である。図3は、図1に示した画像処理ユニットの詳細を示したブロック図である。
図1に示した画像処理システム1は、第1DRAMコントローラ10と、第2DRAMコントローラ20と、画像処理ユニット30a、30b、30cと、DRAM40と、を備え、第1DRAMコントローラ10と、第2DRAMコントローラ20と、で本発明の一実施形態にかかるメモリアクセス制御装置50を構成している。
第1DRAMコントローラ10は、後述する第2DRAMコントローラ20のコマンドI/Fから入力されたコマンドデータを処理するコマンド解析部11と、コマンド解析部11から入力されるデータと第2DRAMコントローラ20のデータI/Fから入力されたライトデータとを処理しDRAM40を制御するコマンド実行部12と、を備えている。
コマンド解析部11は、第2DRAMコントローラ20のコマンドI/Fから入力されるコマンドデータを解析し、リード・ライト・データアクセス数・アドレスからDRAM40に対して行うアクセス制御内容を決定しコマンド実行部12に出力する。アクセス制御内容とはDRAM40に対するコマンドを意味し、リフレッシュなどDRAM40としての動作を保証する制御も含まれる。このリフレッシュなどは、コマンド解析部11で自動的に挿入されるコマンドである。また、このような処理を行うため、コマンド解析部11ではコマンドを解析しコマンド実行部12に出力するまでにレイテンシが発生する。このレイテンシは、第1DRAMコントローラ10の内部の動作周波数が上がることや、入力されるコマンドデータを解析する複雑さに比例して増加する。
コマンド実行部12は、第2DRAMコントローラ20からコマンド解析部11を経由してレイテンシがついたコマンドデータと第2DRAMコントローラ20から入力されるライトデータとを受け取り、DRAM40に対してアドレス・リード・ライト・チップセレクトといったコマンド制御信号とライトデータを含むデータ制御信号とを出力する。
また、コマンド実行部12は、DRAM40に対してライトを行う際に、コマンド解析部11から入力されるコマンドデータと第2DRAMコントローラ20から入力されるライトデータが揃っていなければ、DRAM40に対してコマンド制御信号とデータ制御信号の出力が行われない。揃っていない場合は、コマンドデータ、ライトデータが揃うまで待つ。なお、DRAM40からのリード時は、コマンド解析部11から入力されるコマンドデータを受け取った時点で出力することが可能である。また、コマンド実行部12は、DRAM40に対するコマンド制御信号出力時に、以前に出力されたコマンド制御信号から次に出力するコマンド制御信号を決定する機構を備えても良い。例えば、DRAM40の同一のバンクに対するアクセスであれば、プリチャージ期間を省略して次のコマンド制御信号を発行可能とする。
第2DRAMコントローラ20は、図1に示したように複数の画像処理ユニット30a、30b、30cと、コマンドI/FおよびデータI/Fで接続されるとともに第1DRAMコントローラ10ともコマンドI/FおよびデータI/Fで接続される。
コマンドI/Fは、コマンドI/Fへの要求を表すコマンドI/F・REQ信号、リード・ライト・データアクセス数・アドレスなどの情報を含んだコマンドの内容を表すコマンドI/F・データ信号、通信相手がコマンドI/F・REQ信号を受信したことを表すコマンドI/F・ACK信号から構成されている。データI/Fは、データI/Fへの要求を表すデータI/F・REQ信号、ライトデータを表すデータI/F・データ信号、通信相手がデータI/F・REQ信号を受信したことを表すコマンドI/F・ACK信号から構成されている。
コマンドI/FとデータI/Fを使用した通信は次のように行われる。画像処理ユニット30は、コマンドI/F・REQ信号を“1”にした際に、コマンドI/F・データ信号を送信し、コマンドI/F・ACK信号で“1”を受信したときにコマンドI/F・REQ信号を“0”にする。画像処理ユニット30は、データI/F・REQ信号を“1”にした際に、データI/F・データ信号を送信し、データI/F・ACK信号で“1”を受信したときにデータI/F・REQ信号を“0”にする。第1DRAMコントローラ10は、コマンドI/F・REQ信号を受信した際に、コマンドI/F・データ信号を取り込み、コマンドI/F・ACK信号を返し、同様にデータI/F・REQ信号を受信した際に、データI/F・データ信号を取り込み、データI/F・ACK信号を返す。
上述した通信プロトコルを第2DRAMコントローラ20の動作に置き換えると次のようになる。第2DRAMコントローラ20は、複数の画像処理ユニット30a、30b、30cのうちコマンドI/FのREQ信号(コマンドI/F・REQ信号)を受信した1つの画像処理ユニット30のコマンドI/Fから入力されるデータを受け付けるとともに第1DRAMコントローラ10へこのREQ信号とデータ(コマンドデータ)を出力する。そして、第1DRAMコントローラ10からREQ信号とコマンドデータを受け付けたことを示すACK信号(コマンドI/F・ACK信号)が入力された場合は、そのACK信号をREQ信号を出力した画像処理ユニット30へ出力する。
次に、画像処理ユニット30は、コマンドI/F・ACK信号とデータI/F・ACK信号を受け取った後、コマンドI/F・REQ信号とデータI/F・REQ信号を取り下げて、データI/F・REQ信号とデータ(ライトデータ)を出力する。第2DRAMコントローラ20ではこのデータI/F・REQ信号とデータを第1のDRAMコントローラ10へ出力し、第1DRAMコントローラ10からREQ信号とデータを受け付けたことを示すACK信号(データI/F・ACK信号)が入力された場合は、そのACK信号をREQ信号を出力した画像処理ユニット30へ出力する。そしてこのデータI/Fの通信プロトコルは最初に出力したコマンドI/F・データ内のアクセス数を表す情報の回数分だけ行われ、画像処理ユニット30はデータI/F・ACKをその回数分受け取る。
また、第2DRAMコントローラ20は、ある画像処理ユニット30と接続されたデータI/FとコマンドI/Fから入力されたデータを第1DRAMコントローラ10に出力する際に、その画像処理ユニット30と接続されたコマンドI/FとデータI/Fからの両方のデータが入力されるまで第1DRAMコントローラ10へ出力しないように制御する、つまり、コマンドI/FとデータI/Fの両方が揃った時点で第1DRAMコントローラ10へ出力するか、若しくは、その画像処理ユニット30と接続されたコマンドI/Fにデータが入力されたらすぐさま第1DRAMコントローラ10に出力しその後に対応するデータI/Fからデータが入力されたときにデータI/Fのデータを出力するか、のいずれかに切替える調停回路21を複数の画像処理ユニット30a、30b、30c毎に備えている。この調停回路21はレジスタによって上記のいずれかへの切替えを制御できるようになっていても良いし、レジスタ以外の機能ブロックや外部端子などによって制御しても良い。
なお、コマンドI/FとデータI/Fが揃ってから第1DRAMコントローラ10に出力する場合は、その画像処理ユニット30がデータを揃えている間に他の画像処理ユニット30と接続されたデータI/FとコマンドI/Fからデータが入力された場合は他の画像処理ユニット30と接続されたデータI/FとコマンドI/Fから入力されたデータを第1DRAMコントローラ10へ出力する。
また、第2DRAMコントローラ20は、各画像処理ユニット30から入力されたコマンドI/F・REQ信号を第1DRAMコントローラ10のコマンドI/F・REQ信号として出力することをバスマスタ切り替え制御回路内部で計時している時間によってどの画像処理ユニット30を優先して出力するように制御するか、画像処理ユニット30aから入力されたコマンドI/F・REQ信号を他の画像処理ユニット30b、30cから入力されたコマンドI/F・REQ信号よりも優先的に第1DRAMコントローラ10のコマンドI/F・REQ信号として出力するように制御するかを、切替えるバス使用権制御回路22を備えている。
図2に第2DRAMコントローラ20内の調停回路21とバス使用権制御回路22との具体的な回路例を示す。
調停回路21は、画像処理ユニット30aからコマンドI/F・REQ信号を受信し、ANDゲート21aの一方の入力端子に到達する。ANDゲート21aの他方の入力端子に入力されるORゲート21bの出力は、画像処理ユニット30aのデータI/F・REQとレジスタ21cの設定値によって決定され、モード設定部としてのレジスタ21cの出力が“0”であれば、データI/F・REQ信号を受信するまで“0”のままで、レジスタ21cの出力が“1”であればデータI/F・REQ信号を受信せずとも、コマンドI/F・REQ信号を受信すると同時に“1”となる。すなわち、ANDゲート21aとORゲート21bとで、複数のバスマスタそれぞれに対応して設けられ、モード設定部の設定に応じたタイミングでバスマスタからのライトアクセス要求およびコマンドデータをコマンド解析部に出力し、ライトデータをコマンド実行部へ出力するタイミング調停部を構成している。
したがって、レジスタ21cの設定値により、データI/FとコマンドI/Fのデータの両方が揃ってから第1DRAMコントローラ10へのコマンドI/F・REQ信号を出力するか、コマンドI/Fのデータが揃った時点で第1DRAMコントローラ10にコマンドI/F・REQ信号を出力するかを切替えることが可能となる。すなわち、バスマスタからのライトアクセス要求を、コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記メモリ制御部へ発行するモード、または、コマンドデータがそろった時点でそのコマンドデータと対となるライトデータが全て揃っていなくてもメモリ制御部へ発行するモード、のいずれかのモードへ設定することができる。
なお、レジスタ21cは第2DRAMコントローラ20内に1つ備えられ、各調停回路21が共通で使用する。また、レジスタ21cの設定は任意であるが、処理内容によって各画像処理ユニット30a、30b、30cがともにアクセスすることが想定される場合は“0”に設定し、特定の画像処理ユニット30との通信が連続することが想定される場合は“1”に設定するようにすれば良い。この切替えは処理内容と対応付けて自動で切り替わるようにしてもよい。
FF21dはANDゲート21aからの入力が“1”のときに “1”を出力し続け、後述するカウンタ21eからの入力が“1”の場合に“0”に初期化されるフリップフロップで構成されている。つまり、FF21dは、レジスタ21cが“1”の場合、コマンドI/F・REQ信号が“1”で“1”を出力し、レジスタ21cが“0”の場合、コマンドI/F・REQ信号とデータI/F・REQ信号がともに“1”で“1”を出力する。
カウンタ21eは、コマンドI/F・REQ信号が“1”のときにコマンドI/F・データの内容を取り込み保持する。第2DRAMコントローラ20は、上述したようにコマンドI/F・REQ信号とコマンドI/F・データが出力された後、第1DRAMコントローラ10からコマンドI/F・ACK信号とデータI/F・ACK信号を受け取り、画像処理ユニット30aへのコマンドI/F・ACK信号とデータI/F・ACK信号として出力している。カウンタ21eは、FF21dから“1”が出力されている間、データI/F・REQ信号が“0”から“1”となる度にカウントアップし、保持したアクセス数と比較し、比較した結果が一致したときに、カウンタ21eをクリアし“1”を出力する。カウンタ21eから“1”が出力されるとFF21dが“0”となり、また後述するバスマスタ切替制御回路22aから調停回路21に出力される信号が“0”になり、調停回路21のANDゲート21fの他方の入力端子を“0”にして画像処理ユニット30aとの通信を終了する。
アクセス優先権設定部としてのバス使用権制御回路22は、バスマスタ切替制御回路22aを備えている。バスマスタ切替制御回路22aは、各画像処理ユニット30a、30b、30cそれぞれに対応する調停回路21から、FF21dの出力信号と、カウンタ21eの出力信号と、ORゲート22bと、が入力されている。図2において信号S1は画像処理ユニット30bに対応する調停回路21のFF21dの出力信号に相当する信号であり、信号S2は画像処理ユニット30bに対応する調停回路21のカウンタ21eの出力信号に相当する信号であり、信号S3は画像処理ユニット30cに対応する調停回路21のFF21dの出力信号に相当する信号であり、信号S4は画像処理ユニット30cに対応する調停回路21のカウンタ21eの出力信号に相当する信号である。そして、バスマスタ切替制御回路22aは、画像処理ユニット30aに対応する調停回路21のANDゲート21fの他方の入力への信号S5と、画像処理ユニット30bに対応する調停回路21のANDゲート21fの他方の入力への信号S6と、画像処理ユニット30cに対応する調停回路21のANDゲート21fの他方の入力への信号S7と、を出力する。
バスマスタ切替制御回路22aは、FF21dから“1”、信号S1から“0”、信号S3から“0”、カウンタ21eから“0”、ORゲート22bから“1”が入力された場合には、信号S5に“1”、信号S6に“0”、信号S7に“0”を出力する。また、カウンタ21e、信号S2、信号S4から“0”、FF21d、信号S1、信号S3から“1”、ORゲート22bから“0”が入力された場合には、内部で計時している時間によって調停回路21への信号S5、S6、S7のうちどれか1つに対して“1”を出力する。つまり、あるクロックサイクル数分信号S5に対して“1”を出力したら、次のあるクロックサイクル数分は信号S6に対して“1”を出力し、その次のあるクロックサイクル数分は信号S7に対して“1”を出力する、といったように所定時間毎に排他的に信号S5、S6、S7に“1”を出力するように切替える。また、バス切替制御回路22aは、一旦信号S5、S6、S7のどれかに“1”を出力すると、カウンタ21e、信号S2、信号S4のうちどれかから“1”が入力されない限り、All“0”に戻らない回路である。
つまり、上述した条件と図2の回路図からバスマスタ切替制御回路22aの出力である信号S5は、“1”であるときに画像処理ユニット30aからのコマンドI/FとデータI/Fの全ての信号を第1DRAMコントローラ10へ出力するように制御し、“0”のときには出力しないように制御している信号である。これは信号S6、S7もそれぞれの調停回路21において同様である。
ORゲート22bは、レジスタ22cの設定値と、画像処理ユニット30bが出力したコマンドI/F・REQ信号と画像処理ユニット30cが出力したコマンドI/F・REQ信号とが入力されたNORゲート22dの出力と、のうちのどちらかが“1”の場合にバスマスタ切替制御回路22aに対して“1”を出力する。
レジスタ22cは、外部から設定可能であり、“1”に設定することにより、同時に入力された他の画像処理ユニット30b、30cのコマンドI/F・REQ信号の状況を見ることなく、バスマスタ切替制御回路22aの出力信号S5に“1”を出力するようにでき、また、“0”に設定することにより、時間によってバスマスタ切替制御回路22aの出力信号S5、S6、S7を排他的に“1”を出力するようにできる。
つまり、レジスタ22cの設定によって、各画像処理ユニット30から入力されたコマンドI/F・REQ信号を第1DRAMコントローラ10のコマンドI/F・REQ信号として出力することをバスマスタ切り替え制御回路内部で計時している時間によって制御するか、画像処理ユニット30aから入力されたコマンドI/F・REQ信号を他の画像処理ユニット30b、30cから入力されたコマンドI/F・REQ信号よりも優先的に第1DRAMコントローラ10のコマンドI/F・REQ信号として出力するかを制御するかを、切替えている。すなわち、予め定めた所定時間間隔で前記複数のバスマスタのアクセス優先権を順次切替えることと、複数のバスマスタのうち特定のバスマスタにアクセス優先権を設定できるようにすることと、を切り替えている。
バスマスタとしての画像処理ユニット30a、30b、30cは、データ処理部31と、バッファ32と、バッファ制御回路33と、コマンド発行回路34と、画像処理ユニット制御部35と、を備えている。本実施形態において画像処理ユニット30a、30b、30cは、同一の構成の画像処理ユニット30となっている。
データ処理部31は、外部から入力される入力データ・第2DRAMコントローラ20からのデータI/Fを介して入力されたデータ(DRAM40からのリードデータ)に対して所定のデータ処理を行う。
バッファ32は、データ処理部31で処理したデータを蓄える。バッファ制御回路33は、バッファ32からデータI/Fの入出力と第2DRAMコントローラ20に対するデータI/FのREQ信号を出力し、第2DRAMコントローラがREQ信号を受け付けた場合ACK信号を受け取りデータI/FのREQ信号の出力を取り下げる。
コマンド発行回路34は、コマンドI/Fへデータ(コマンドデータ)を出力すると同時に外部の第2DRAMコントローラ20に対してコマンドI/FのREQ信号を出力し、第2DRAMコントローラ20がREQ信号を受け付けた場合ACK信号を受け取りコマンドI/FへのREQ信号の出力を取り下げる。
画像処理ユニット制御部35は、コマンド発行回路34および外部へ入力データを要求する入力データ要求信号を制御する。
ここで、本実施形態の画像処理ユニット制御部35が入力データ要求を行い始めてからデータI/Fにデータを出力するまでのレイテンシは、画像処理ユニット30が入力データ要求を外部に対して発行し入力データが入力されるまでのN時間と、入力データがデータ処理部31で処理しバッファ32に蓄えられるまでのM時間との和となり(M+N)時間となる。また、画像処理ユニット制御部35が入力データ要求を行い始めてからコマンドI/Fにデータを出力するまでのレイテンシをL時間とすると、画像処理ユニット部35は、入力データ要求と同時にコマンド発行回路34に対して制御を行うこと、また、コマンド発行回路34はデータ処理部31よりも複雑な処理を行っていないためレイテンシを比較すると(M+N)>Lとなる。よって、画像処理ユニット30は、第2DRAMコントローラ20に対して、コマンドI/Fへの要求がデータI/Fへの要求よりも先に出力されるユニットとなる。
なお、バスマスタとして本実施形態では画像を処理する回路である画像処理ユニット30としたが、それに限らずデータ処理を行う回路であって、上述したコマンドI/FとデータI/Fのレイテンシの条件を満たす回路であれば良い。
メモリとしてのDRAM40は、各画像処理ユニット30a、30b、30cが処理したデータを一時的に格納するために使用され、読み書きが自在な半導体記憶素子(メモリ)である。また、DRAM40は、情報の記憶が電荷によって行われ、電荷は時間と共に減少することから、一定時間毎に記憶保持のための再書き込み(リフレッシュ)を行なう必要があるメモリであって、バーストアクセスを行うことが可能なSDRAMやDDR−SDRAM(DDR2やDDR3なども含む)である。
本実施形態によれば、画像処理システム1において、第2のDRAMコントローラ20に、画像処理ユニット30のコマンドI/FとデータI/Fからの両方のデータが入力されるまで第1DRAMコントローラ10へ出力しないように制御するか、若しくは、コマンドI/Fにデータが入力された際にすぐさま第1DRAMコントローラ10に出力しその後に対応するデータI/Fからデータが入力されたときにデータI/Fのデータを出力するように制御するか、のいずれかのモードに切替えてその切り替えに応じたタイミングでデータを出力する調停回路21を備えているので、複数の画像処理ユニット30からアクセスがある場合は、コマンドI/FのデータとデータI/Fのデータとが揃った時点でライトアクセス要求を第1DRAMコントローラ10へ発行すれば、1つの画像処理ユニット30がデータを準備する間に第1DRAMコントローラ10のコマンドI/FやデータI/Fを占有することがなくなり、他の画像処理ユニットからのアクセス要求も受け付けられるために、画像処理ユニット30との間のバスの転送効率が向上し、結果的にDRAMとのデータの転送効率を向上させることができる。
また、第1DRAMコントローラ10のコマンド実行部12は、第2DRAMコントローラ20がコマンドI/Fから入力されたコマンドをすぐさま第1DRAMコントローラへ出力するように切替えることもできるので、コマンド解析部11のレイテンシ時間を画像処理ユニット30からのコマンドI/Fの要求を先に行って相殺することができる。
なお、上述した実施形態においては、第2DRAMコントローラ20が、各画像処理ユニット30から入力されるコマンドI/FとデータI/Fのデータの両方が揃った際に第1DRAMコントローラ10へ出力するか、コマンドI/Fのみが入力された時点で第1DRAMコントローラ10へ出力するか、を切替えているが、この機構を各画像処理ユニット30が持ってもよい。具体的には、図2のANDゲート21a、ORゲート21b、レジスタ21cを各画像処理ユニット30内に持つ。すなわち、バスマスタに、モード設定部とタイミング調停部とが設けられている。
このようにすることで、各画像処理ユニット30が、ライトアクセス要求をコマンドI/FのデータとデータI/Fのデータとが全て揃った時点で第2DRAMコントローラ20へ発行するか、または、ライトアクセス要求をコマンドI/FのデータとデータI/Fのデータとが全て揃っていなくても第2DRAMコントローラ20へ発行するか、をモード設定部の設定によって切替えることができ、使用条件によって用途を選ぶことができる。例えば、他の画像処理ユニット30と競合しない画像処理ユニット30ではライトアクセス要求をコマンドI/FのデータとデータI/Fのデータとが全て揃ってなくても第2DRAMコントローラ20へ発行するように選択すれば、第2DRAMコントローラ20で一括して制御することと比較してその画像処理ユニット30については余計な制限がなくなるために、DRAM40へのデータ転送効率を向上させることができる。
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
本発明の一実施形態にかかるメモリアクセス制御装置を有する画像処理システムのブロック図である。 図1に示した第2のDRAMコントローラの詳細を示す説明図である。 図1に示した画像処理ユニットの詳細を示したブロック図である。 従来の複数のバスマスタからアクセスされるDRAMコントローラのブロック図である。
符号の説明
1 画像処理システム
10 第1DRAMコントローラ
11 コマンド解析部
12 コマンド実行部
20 第2DRAMコントローラ
21 調停回路
21a ANDゲート(タイミング調停部)
21b ORゲート(タイミング調停部)
21c レジスタ(モード設定部)
22 バス使用権制御回路(アクセス優先権設定部)
30a 画像処理ユニット(バスマスタ)
30b 画像処理ユニット(バスマスタ)
30c 画像処理ユニット(バスマスタ)

Claims (6)

  1. 複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、
    前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、前記バスマスタからのライトアクセス要求が入力された際に前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、
    前記複数のバスマスタそれぞれに対応して設けられ、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータを前記コマンド解析部に出力し、前記ライトデータを前記コマンド実行部へ出力するタイミング調停部と、
    が設けられていることを特徴とするメモリアクセス制御装置。
  2. 複数のバスマスタと、前記複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析するコマンド解析部と、前記複数のバスマスタから入力されるライトデータおよび前記コマンド解析部の解析結果に基づいて前記メモリに対してコマンド制御信号およびデータ制御信号を出力するコマンド実行部と、が設けられたメモリアクセス制御装置において、
    自身が発行するライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記コマンド解析部へ発行するモード、または、自身が発行するライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記コマンド解析部へ発行するモード、のいずれかのモードへ設定するモード設定部と、
    前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力するタイミング調停部と、
    が前記バスマスタそれぞれに設けられていることを特徴とするメモリアクセス制御装置。
  3. 前記複数のバスマスタが前記メモリ制御部へライトアクセス要求を行う際のアクセス優先権を設定するアクセス優先権設定部を有し、
    前記アクセス優先権設定部が、予め定めた所定時間間隔で前記複数のバスマスタのアクセス優先権を順次切替えられるように構成されていることを特徴とする請求項1または2に記載のメモリアクセス制御装置。
  4. 前記アクセス優先権設定部が、前記複数のバスマスタのうち特定のバスマスタにアクセス優先権を設定されるように構成されていることを特徴とする請求項1乃至3のうちいずれか一項に記載のメモリアクセス制御装置。
  5. 前記バスマスタが、前記ライトデータよりも前記コマンドデータを先に出力するように構成されていることを特徴とする請求項1乃至4のうちいずれか一項に記載のメモリアクセス制御装置。
  6. 複数のバスマスタからメモリへのライトアクセス要求およびコマンドデータが入力されて前記コマンドデータから前記メモリへのアクセス内容を解析し、その解析結果と前記複数のバスマスタから入力されるライトデータに基づいて前記メモリに対してコマンド制御信号とデータ制御信号とを出力して前記メモリを制御するメモリアクセス制御方法において、
    前記バスマスタからのライトアクセス要求を前記コマンドデータとそのコマンドデータと対となるライトデータとが全て揃った時点で前記メモリ制御部へ発行するモード、または、前記バスマスタからのライトアクセス要求を前記コマンドデータが揃った時点でそのコマンドデータと対となるライトデータが全て揃っていなくても前記メモリ制御部へ発行するモード、のいずれかのモードへ設定し、前記モード設定部の設定に応じたタイミングで前記バスマスタからの前記ライトアクセス要求および前記コマンドデータ並びに前記ライトデータを出力することを特徴とするメモリアクセス制御方法。
JP2008306025A 2008-12-01 2008-12-01 メモリアクセス制御装置およびメモリアクセス制御方法 Withdrawn JP2010129029A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008306025A JP2010129029A (ja) 2008-12-01 2008-12-01 メモリアクセス制御装置およびメモリアクセス制御方法
US12/628,633 US8301816B2 (en) 2008-12-01 2009-12-01 Memory access controller, system, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008306025A JP2010129029A (ja) 2008-12-01 2008-12-01 メモリアクセス制御装置およびメモリアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2010129029A true JP2010129029A (ja) 2010-06-10

Family

ID=42223816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008306025A Withdrawn JP2010129029A (ja) 2008-12-01 2008-12-01 メモリアクセス制御装置およびメモリアクセス制御方法

Country Status (2)

Country Link
US (1) US8301816B2 (ja)
JP (1) JP2010129029A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012138822A (ja) 2010-12-27 2012-07-19 Ricoh Co Ltd 誤差拡散処理回路
KR102382860B1 (ko) 2017-12-13 2022-04-06 삼성전자주식회사 이미지 센싱 시스템 및 이의 동작 방법
US11667120B2 (en) 2019-12-27 2023-06-06 Ricoh Company, Ltd. Liquid discharge apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970978B1 (en) * 2002-04-03 2005-11-29 Advanced Micro Devices, Inc. System and method for providing a pre-fetch memory controller
JP2006127408A (ja) 2004-11-01 2006-05-18 Canon Inc データ転送システム及びその制御方法
JP5055989B2 (ja) 2006-12-08 2012-10-24 富士通セミコンダクター株式会社 メモリコントローラ
JP2008165485A (ja) 2006-12-28 2008-07-17 Fujitsu Ltd 半導体装置及びバッファ制御回路
US20080189479A1 (en) * 2007-02-02 2008-08-07 Sigmatel, Inc. Device, system and method for controlling memory operations
JP4880503B2 (ja) 2007-03-14 2012-02-22 株式会社リコー 画像処理装置、画像処理方法、画像処理プログラム及び画像形成システム
US8463987B2 (en) * 2008-09-23 2013-06-11 Intel Corporation Scalable schedulers for memory controllers

Also Published As

Publication number Publication date
US8301816B2 (en) 2012-10-30
US20100138578A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
JP5893632B2 (ja) ストリームトランザクション情報に基づいてページ管理ポリシーを適用するためのメモリコントローラ、システム、および方法
JP6053384B2 (ja) 情報処理装置、メモリ制御装置およびその制御方法
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
JP3819004B2 (ja) メモリ制御装置
US7996601B2 (en) Apparatus and method of partially accessing dynamic random access memory
US7373453B2 (en) Method and apparatus of interleaving memory bank in multi-layer bus system
KR100694095B1 (ko) 버스 연결 방법 및 장치
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
JP4902640B2 (ja) 集積回路、及び集積回路システム
JP2010129029A (ja) メモリアクセス制御装置およびメモリアクセス制御方法
US7913013B2 (en) Semiconductor integrated circuit
JP2007102755A (ja) 共有メモリ装置のための仲裁スキーム
US8244929B2 (en) Data processing apparatus
CN102522113B (zh) 一种sdram桥接电路
JP2011034214A (ja) メモリ制御装置
JP2010244408A (ja) メモリコントローラおよびメモリインターフェース方法
US20130097388A1 (en) Device and data processing system
JP4843216B2 (ja) メモリ制御装置
JP3820831B2 (ja) メモリ制御方法及び装置
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
KR20010050234A (ko) 메모리(mem)와 결합한 데이터 처리용 디바이스
KR100579419B1 (ko) Ddr sdram 데이터 전송을 위한 amba인터페이스 장치
JP2011180654A (ja) 調停装置
JP2004005108A (ja) データ転送制御方法およびデータ転送制御装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120207