JP6232964B2 - Dmaコントローラ - Google Patents
Dmaコントローラ Download PDFInfo
- Publication number
- JP6232964B2 JP6232964B2 JP2013238836A JP2013238836A JP6232964B2 JP 6232964 B2 JP6232964 B2 JP 6232964B2 JP 2013238836 A JP2013238836 A JP 2013238836A JP 2013238836 A JP2013238836 A JP 2013238836A JP 6232964 B2 JP6232964 B2 JP 6232964B2
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- block
- buffer
- memory
- control 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Description
そこで、バス調停器が、残りの転送時間の余裕度に応じてデータ転送の優先順位をアクセス単位でダイナミックに変更する技術が提案されている(例えば、特許文献1参照)。
このため、動画を表示させる場合のように、DMAコントローラや、それ以外の他のバスマスタが並列的にバススレーブの高速メモリにアクセスする構成では、優先順位の高い動画の表示処理に関わるアクセスが待たされ、結果的に、いわゆるコマ落ちが発生する可能性が高くなる。
本発明は、このような事情に鑑みてなされたものであり、その目的の一つは、バススレーブを共有するシステムにおいてアクセスの競合を減らすことができるDMAコントローラを提供することにある。
この一態様に係るDMAコントローラによれば、ブロックが時間的に集中して、転送元のバススレーブからバッファへの格納されること、または、バッファから転送先のバススレーブへの転送されること、がない。このため、当該バススレーブを共有する他のバスマスタからすれば、DMAコントローラがブロックを転送しない期間に当該バススレーブにアクセス(読出または格納)することができるので、当該バススレーブに対するアクセスの競合を減らすことができる。
なお、1群のデータとは、(CPUによって発行される)転送指示によって、転送元のバススレーブから転送先のバススレーブに転送すべきデータの全体をいう。
この構成によれば、第1バッファと第2バッファとにおいて、転送元のバススレーブからのブロックの読み出しと、転送先のバススレーブへのブロックの転送を同時に実行できるので、転送の効率化が図られる
この構成によれば、第1バッファと第2バッファとにおいて、転送元のバスマスタからのブロックが格納されるものと、転送先のバスマスタに転送されるブロックの読み出し元となるものとが別々になるので、転送の効率化が図られる。
なお、転送制御部が、一のブロックを転送先バススレーブに転送するのを遅らせた場合とは、他のバスマスタによって当該転送先バススレーブが使用されている場合である。また、所定のデータ転送速度とは、バススレーブにアクセスするバスマスタに割り当てられた比率によって後述するように定められる。
この図に示されるようにシステム1は、CPU10、ROM(Read Only Memory)20、メモリ30、デコーダ40、ラスタライザ50、ディスプレイコントローラ60、および、表示部70を含み、これらのうち、ROM20および表示部70を除き、バスBを介して互いに接続されている。
このシステム1は、圧縮された動画データをデコードした後、フレーム毎にラスタライズ(描画)して、表示部70に表示させる処理(表示処理)を実行する。
ROM20は、例えば書き替え可能なフラッシュメモリなどであり、動画データを圧縮した状態で、すなわち圧縮データとして記憶する。DMAコントローラ100は、詳細については後述するが、ROM20に記憶された圧縮データを読み出して、メモリ30に転送する。メモリ30は、アクセス(格納および書込)が高速な、例えばSDRAM(Synchronous Dynamic Random Access Memory)であり、DMAコントローラ100とともに、CPU10、デコーダ40、ラスタライザ50、ディスプレイコントローラ60に共有される。
デコーダ40は、メモリ30に転送された圧縮データを動画データにデコードして、メモリ30に格納する。ラスタライザ50は、メモリ30に格納された動画データをラスタライズして、メモリ30に割り当てられた描画領域32に格納する。描画領域32は、一種のフレームバッファである。ディスプレイコントローラ60は、ラスタライズされたデータを描画領域32から、走査(水平走査および垂直走査)の順に読み出し、表示部70に供給して画面表示させる。
このため、CPU10が、ROM20から圧縮データを、バスBを介して読み出す構成では、CPU10に負荷がかかるだけなく、バスBの占有時間が長くなる。そこで、本実施形態では、DMAコントローラ100が、ROM20から圧縮データを(低速で)読み出した後に、一旦、メモリ30に(高速で)転送する構成となっている。
この図に示されるように、DMAコントローラ100は、デマルチプレクサ102と、バッファ104と、マルチプレクサ106と、転送制御部110と、アップカウンタ114と、ダウンカウンタ124と、を含む構成となっている。
デマルチプレクサ102は、選択信号Sel-Aが例えばHレベルであれば、入力端Inに入力されたデータを実線で示されるように出力端aから出力し、Lレベルであれば、破線で示されるように出力端bから出力する。マルチプレクサ106は、選択信号Sel-AがHレベルであれば(当該選択信号Sel-Aの否定信号がLレベルであれば)、実線で示されるように入力端bに入力されたデータを出力端Outから出力し、選択信号Sel-AがLレベルであれば(当該選択信号Sel-Aの否定信号がHレベルであれば)、破線で示されるように入力端aに入力されたデータを出力端Outから出力する。
このように、バッファ104の入出力は、選択信号Sel-Aによって、図において実線または破線のいずれかとなるように制御される。
すなわち、DMAコントローラ100は、1群の圧縮データを512バイト毎のブロックに区切ってROM20からメモリ30にDMA転送する。このとき、転送制御部110は、リード転送する際の圧縮データの格納先と、ライト転送する際の圧縮データの読出元とを、第1バッファ104aおよび第2バッファ104bとで交互に切り換える。
ウェイト回数Wcは、1ブロックの圧縮データをライト転送してから、次の1ブロックの圧縮データをライト転送するまでの期間を、ウェイトのサイクル回数で示したものであり、転送制御部110のレジスタ112にセットされる。
ここで、ウェイトの1サイクルは、1ブロックのライト転送に要する時間、すなわち、512バイトのブロックを、バスBを介してメモリ30に転送するのに要する時間としている。ウェイト回数Wcについては、例えば後述するようなメモリ帯域に割り当てによって制限(または制約される)データ転送速度に応じて設定される。
データ転送速度の単位は、一般に「ビット/秒」で表されるが、ここでは、計算を簡単にするために、「ブロック/フレーム」とする。本実施形態において、1ブロックは512バイトとしており、また、1フレームは、例えば表示の垂直走査周波数が60Hz(1秒あたり60コマの表示)であれば、16.7ミリ秒である。
DMAコントローラ100が、例えば1フレーム当たり2ブロックを、ROM20からメモリ30にDMA転送する場合、すなわちデータ転送速度として2ブロック/フレームとする場合を想定する。この場合に、1ブロックのライト転送に要する時間が0.418ミリ秒であれば、ウェイト回数Wcは、単位時間である1フレーム(16.7ミリ秒)を、2ブロックのライト転送に要する時間(=0.418×2ミリ秒)で除した「20」に設定される。これにより、20ウェイトにつき、1ブロックが(1ウェイトで)DMA転送されるように設定される。
なお、実際には、CPU10が、データ転送速度に応じたウェイト回数WcをDMA転送指示する際に出力する構成となるが、後述するように、ウェイト回数Wcについては動的に切り替えられる場合もある。
このようにウェイト回数Wcについては、データ転送速度に応じて設定される。ここで、データ転送速度が低ければ、ウェイト回数Wcが大きくなる。ウェイト回数Wcが大きくなるにつれて、DMAコントローラ100以外の他のバスマスタ(CPU10、デコーダ40、ラスタライザ50、ディスプレイコントローラ60)が、メモリ30にアクセスすることが可能な期間が長くなる。
一方、アップカウンタ114は、ウェイトの周期に等しいクロックClkにしたがってカウント値Q1を「1」ずつアップカウントする。すなわち、512バイトの1ブロックがメモリ30にライト転送される時間(ウェイト)を単位として、カウント値Q1がアップカウントされる構成となっている。
なお、クロックClkは、図示省略したクロックジェネレータによって生成される。
このため、転送制御部110は、あるブロック(第1ブロックおよび第2ブロックを除く)のリード転送を次の場合に実行する。すなわち、あるブロックのリード転送が一方のバッファに対して開始される場合とは、当該ブロックの1つ前のブロックが、他方のバッファへのリード転送が完了している場合(条件A)であって、かつ、当該一方のバッファにおいて、2つ前のブロックのライト転送がすでに完了して空になっている場合(条件B)である。
ただし、第1ブロックでは1つ前のブロックが存在しない。このため、第1ブロックのライト転送については、ウェイトをかけることなく(第1ブロックのリード転送が完了していれば)、実行することができる。
図4および図5は、各ブロックをリード転送するためのリード転送処理を示すフローチャートであり、図6および図7は、各ブロックをライト転送するためのライト転送処理を示すフローチャートである。
なお、リード転送処理とライト転送処理とは、互いに並行して実行される。また、以下においては説明の便宜上、奇数(1、3、5、…)ブロックは第1バッファ104aに転送され、偶数(2、4、6、…)ブロックは第2バッファ104bに転送されるものとする。また、ここでは、ウェイト回数Wcおよび転送回数Tcについては、具体的な数値で特定しないで説明する。
転送制御部110は、CPU10からDMA転送指示があったとき、初期設定を実行する(ステップSa11)。具体的には、転送制御部110は、当該CPU10から供給されるウェイト回数Wcをレジスタ112にセットし、当該CPU10から供給される転送回数Tcをレジスタ122にセットするとともに、当該転送回数Tcをダウンカウンタ124にセットする。
続いて、転送制御部110は、転送対象である1群の圧縮データの第1ブロックをROM20から読み出して、デマルチプレクサ102を介して、第1バッファ104aに格納する(リード転送の開始、ステップSa13)。
ここで、転送制御部110は、第1ブロックのリード転送が完了したか否かを判別する(ステップSa14)。第1ブロックのリード転送が完了していないと判別すれば(ステップSa14の判別結果が「No」であれば)、転送制御部110は、処理手順をステップSa13に戻す。このため、第1ブロックのリード転送が完了するまで、転送制御部110は、ステップSa13を実行することになる。
第2ブロックのリード転送が完了したならば(ステップSa17の判別結果が「Yes」であれば)、転送制御部110は、変数mに「3」をセットする(ステップSa18)。ここで、変数mは、リード転送の対象とするブロックの番号を示す。これにより、リード転送の対象は、1群の圧縮データのうち、第3ブロックに設定される。
なお、第1ブロックおよび第2ブロックのリード転送と、第3ブロック以降のリード転送と区別している理由は、上述したように、第1ブロックでは、上記条件Aおよび条件Bの充足が要件ではなく、第2ブロックでは、上記条件Bの充足が要件ではないからである。
一方、第(m−2)ブロックのライト転送が完了すれば(ステップSa19の判別結果が「Yes」になれば)、転送制御部110は、選択信号Sel-Aを反転させて、リード転送の格納先とライト転送の読出元とを切り換える(ステップSa20)。そして、転送制御部110は、ROM20から第mブロックを読み出し、デマルチプレクサ102を介して、制御信号Sel-Aで選択した方のバッファにリード転送する(ステップSa21、Sa22)。
なお、ステップSa21における第mブロックのリード転送は、mが「3」であれば、第2ブロックのリード転送の完了後(ステップSa16、Sa17の後)に実行され、mが「4」以上であれば、第(m−1)ブロックのリード転送の完了後(変数mがインクリメントされる前のステップSa21、Sa22の後)に実行される。このため、上記条件Aについては、フローチャートで示される処理の順序に従えば、必然的に充足することになるので、条件Aを満たすか否かを判別するステップを、特別に用意している訳ではない。
リード転送したブロックが最終ブロックであったならば(ステップSa23の判別結果が「Yes」であれば)、後述する例外処理によって選択信号Sel-Aを反転した(ステップSa25)後、このリード転送処理が終了する。
ただし、リード転送処理は終了しても、バッファに格納されたブロックが転送されるライト転送処理は引き続き実行される。詳細については後述するが、図8において、リード転送処理は、※印で示される時刻S11における例外処理によって選択信号Sel-Aが反転された時点で終了するが、引き続き実行されるライト転送処理によって最終ブロック(第6ブロック)がライト転送されることになる。
これによって、最終の第Tcブロックまで、格納先であるバッファを交互に切り換えながらリード転送が実行される。
まず、転送制御部110は、第1ブロックのリード転送が完了しているか否かを判別し(ステップSb11)、当該第1ブロックのリード転送が完了していなければ(ステップSb11の判別結果が「No」であれば)、当該第1ブロックのリード転送が完了するまで待機する。
なお、ここでいう諸条件とは、例えば、メモリ30が他のバスマスタによって使用されていないことなどである。諸条件をクリアしていなければ(ステップSb12の判別結果が「No」であれば)、転送制御部110は、当該諸条件がクリアされるまで待機するが、ここでの説明では、当該諸条件はクリアされているものとする。
次に、転送制御部110は、アップカウンタ114にリセット信号を出力して、カウント値Q1をゼロにリセットする(ステップSb13)。なお、フローチャートでは特に図示しないが、アップカウンタ114は、リード転送処理およびライト転送処理とは独立して、ウェイトの周期に等しいクロックClkにしたがってカウント値Q1をアップカウントする。
なお、転送制御部110は、あるブロックをメモリ30にライト転送する場合、バススレーブであるメモリ30へのアクセスをCPU10に通知する。このため、DMAコントローラ100以外の他のバスマスタ、具体的には、CPU10、デコーダ40、ラスタライザ50、ディスプレイコントローラ60は、メモリ30へのアクセスすることができなくなる。
また、 第1ブロックのライト転送後、転送制御部110は、ダウンカウンタ124にパルス信号を出力して、カウント値Q2を「1」だけデクリメントさせる(ステップSb16)。カウント値Q2は、初期設定(図4のステップSa11)において転送回数Tcがセットされるとともに、1ブロックのライト転送が完了する毎に「1」だけデクリメントされる(ステップSb16、Sb23)。このため、カウント値Q2は、1群の圧縮データのうち、ライト転送が完了していないブロック数を示すことになる。
なお、変数nの初期値を「2」にして、第1ブロックのライト転送と、第2ブロック以降のライト転送とを区別している理由は、上述したように、第2ブロック以降のライト転送については、1つ前のブロックをライト転送してから、ウェイト回数Wcで示されるサイクル数を経過して時点で実行する。これに対して、第1ブロックについては1つ前のブロックが存在しないので、バッファへのリード転送が完了した後、直ちに実行できるためである。
なお、ここでいう諸条件とは、例えば、ステップSb12におけるメモリ30が他のバスマスタによって使用されていないことに加えて、ライト転送の対象である第nブロックのリード転送が完了していることなどである。諸条件をクリアしていなければ(ステップSb19の判別結果が「No」であれば)、転送制御部110は、当該諸条件がクリアされるまで待機するが、ここでの説明では、当該諸条件はクリアされているものとする。
次に、転送制御部110は、カウント値Q2がゼロであるか否か、すなわち、ライト転送がされていないブロックが存在するか否かを判別する(ステップSb24)。
カウント値Q1がウェイト回数Wcに達していなければ(ステップSb26の判別結果が「No」であれば)、転送制御部110は、処理手順をステップSb26に戻して、当該カウント値Q1がウェイト回数Wcに達するまで待機する。カウント値Q1がウェイト回数Wcに達したとき(ステップSb26の判別結果が「Yes」になったとき)、転送制御部110は、CPU10から指示された1群の圧縮データのDMA転送を完了して、次のDMA転送指示を受け付ける。
まず、時刻S1でCPU10によるDMA転送指示があったときに、リード転送処理では、第1ブロックがROM20から第1バッファ104aにリード転送される(ステップSa11〜Sa14)。
時刻S2で第1ブロックのリード転送が完了すると、リード転送処理においては、選択信号Sel-Aが反転するので(ステップSa15)、第2ブロックが第2バッファ104bにリード転送される(Sa16、Sa17)。一方、ライト転送処理においては、第1ブロックが第1バッファ104aからメモリ30にライト転送され(ステップSb11〜Sb15)、この後、変数nに「2」がセットされる(ステップSb17)。
時刻S5で第2ブロックのライト転送が完了すると、ライト転送処理においては、ステップSb22の判別結果が「Yes」になり、変数nがインクリメントされて「3」となる(ステップSb25)。一方、リード転送処理においては、ステップSa19の判別結果が「Yes」になり、選択信号Sel-Aが反転して(ステップSa20)、変数mの「4」に対応した第4ブロックが第2バッファ104bにリード転送され(Sa21、Sa22)、この後、変数mが「5」にインクリメントされる(ステップSa24)。
時刻S5で第2ブロックのライト転送が完了すると、ライト転送処理においては、ステップSb22の判別結果が「Yes」になり、変数nがインクリメントされて「3」となる(ステップSb25)。一方、リード転送処理においては、ステップSa19の判別結果が「Yes」になり、選択信号Sel-Aが反転して(ステップSa20)、変数mの「4」に対応した第4ブロックが第2バッファ104bにリード転送され(Sa21、Sa22)、この後、変数mが「5」にインクリメントされる(ステップSa24)。
時刻S7で第3ブロックのライト転送が完了すると、ライト転送処理においては、ステップSb22の判別結果が「Yes」になり、変数nがインクリメントされて「4」となる(ステップSb25)。一方、リード転送処理においては、ステップSa19の判別結果が「Yes」になり、選択信号Sel-Aが反転して(ステップSa20)、変数mの「5」に対応した第5ブロックが第1バッファ104aにリード転送され(Sa21、Sa22)、この後、変数mが「6」にインクリメントされる(ステップSa24)。
時刻S9で第4ブロックのライト転送が完了すると、ライト転送処理においては、ステップSb22の判別結果が「Yes」になり、変数nがインクリメントされて「5」となる(ステップSb25)。一方、リード転送処理においては、ステップSa19の判別結果が「Yes」になり、選択信号Sel-Aが反転して(ステップSa20)、変数mの「6」に対応した第6ブロックが第2バッファ104bにリード転送される(Sa21、Sa22)。なお、変数mの「6」は、転送回数Tcの「6」であるので、以降、変数mはインクリメントされない。
時刻S11で第5ブロックのライト転送が完了すると、ライト転送処理においては、ステップSb22の判別結果が「Yes」になり、変数nがインクリメントされて「6」となる(ステップSb25)。一方、リード転送処理においては例外処理として選択信号Sel-Aが反転され(ステップSa25)、この後、リード転送処理が終了する。
時刻S10から期間Wが経過した時刻S12に至ると、ライト転送処理においては、変数nの「6」に対応した第6ブロックのライト転送が開始される(ステップSb21)。
第6ブロックのライト転送の開始前には、アップカウンタ114のカウント値Q1はゼロにリセットされ(ステップSb20)、この後、第6ブロックのライト転送が開始される(ステップSb20)。第6ブロックのライト転送が完了したときは、カウント値Q1はゼロにリセットされてから、クロック信号Clkの1周期の時間が経過しているので、カウント値Q1が「1」にアップカウントされた状態である。このため、第6ブロックのライト転送が完了した直後は、ステップSb26の判別結果が「No」であり、DMA転送処理自体は完了しない。
本実施形態において、DMA転送処理が完了するのは、アップカウンタ114のカウント値Q1がウェイト回数Wcに達した時点、すなわち、時刻S12から期間Wが経過した時刻S13である。
このため、最終の第6バッファのライト転送が終了した時点で、次の1群の圧縮データをDMA転送する指示があったとき、当該次のDMA転送は、時刻S13以降において実行される。
また、本実施形態では、DMA転送終了時を、アップカウンタ114のカウント値Q1がウェイト回数Wcに達した時点としているのは、各ブロックをメモリ30に転送する際のデータ転送速度を一定に保つためである。
詳細には、DMA転送では、後述する図11に示されるようにメモリ帯域の割り当てが予め決まっている場合があるが、最終の第6ブロックのライト転送終了時をDMA転送終了時にすると、第5ブロックのライト転送開始から第6ブロックのライト転送終了までの期間が、他の第1〜第4ブロックと比較して短くなる。このため、第1〜第4ブロックについてはライト転送のデータ転送速度が、1フレーム当たり2ブロックであるのに対し、第5および第6ブロックについてはライト転送の実際のデータ転送速度が、1フレームよりも短い期間で2ブロックとなるので、データ転送速度の均一化が図れなくなる。これに対して、本実施形態では、DMA転送終了時を、アップカウンタ114のカウント値Q1がウェイト回数Wcに達した時刻S13としているので、第5および第6ブロックについての転送速度も、1フレーム当たり2ブロックとなり、第1〜第4ブロックについてのデータ転送速度と揃えることができる。
このため、ある動画を表示させるための処理が実行されている場合に、例えば次に表示すべき動画の圧縮データのDMA転送がCPUによって指示されたとき、当該DMA転送によってメモリが期間Xcにわたって使用されてしまうと、他のバスマスタは一時的にメモリにアクセスすることができなくなる。
動画を表示するためには、フレーム(コマ)毎に、デコード処理、ラスタライズおよび当該ラスタライズの結果を表示する処理が滞りなく並行して実行される必要がある。比較例に係るDMAコントローラが期間Xcにわたってメモリを占有してしまうと、他のバスマスタがメモリにアクセスできなくなり、1フレームの期間で動画表示処理が滞って、いわゆるコマ落ちが発生し、動画の表示品質を低下させてしまう可能性が高くなる。
同図の(a)は、メモリ帯域の合計を100%としたときに、DMAコントローラ(DMAC)によるDMA転送が実行されない場合に、各バスマスタに割り当てられる比率の一例を示した図である。この図では、DMAコントローラ以外のCPU、ラスタライザ、デコーダおよびディスプレイコントローラが、図に示されるパーセンテージを上限として、メモリ30にアクセスすることを示している。
この図では、比較例に係るDMAコントローラがDMA転送によって、メモリ帯域の35%を使用したことを示している。一方、DMA転送によってメモリ帯域のうち、他のバスマスタへの割り当ては、同図に示されるように減少する。すなわち、他のバスマスタであるCPU、ラスタライザ、デコーダおよびディスプレイコントローラについては、それぞれDMAコントローラによってメモリ帯域が奪われることになる。このため、他のデバイスでは、処理が滞りやすくなり、コマ落ちの原因となる。
ただし、この構成では、DMA転送しない場合において、メモリ帯域に設ける空きが非常に無駄であり、他のバスマスタの転送効率が低下してしまう。
ただし、本実施形態に係るDMAコントローラ100では、1群の圧縮データをブロックに分割して、時間的に離散させて各ブロックをメモリ30にDMA転送するので、図10の(b)に示されるように、DMAコントローラ100によって占められるメモリ帯域の比率は、例えば5%で済み、比較例(図12の(b)参照)に対して低くなる。
このため、本実施形態に係るDMAコントローラ100において、図11の(a)に示されるように、DMA転送が実行されないときに、メモリ帯域に予め5%の空きを設けておく一方、同図の(b)に示されるように、DMA転送が実行されるときには、当該空きの帯域部分をDMAコントローラ100に割り当てる構成にして良い。このような構成であっても、DMA転送しない場合において、メモリ帯域に設ける無駄な空きが、比較例(図13の(a)参照)に対して少なくすることができる。
なお、DMAコントローラに割り当てるメモリ帯域の5%とは、上述した例でいえば、20サイクルのウェイトにつき、1ブロックを(1ウェイトで)メモリ30にDMA転送する場合をいう。
例えば、図9の(b)において、第2ブロックのライト転送が、他のバスマスタによるメモリ30のアクセスによって時間αだけ待機させられた場合、次の第3ブロックのライト転送を期間αだけ早めて実行する構成としても良い。すなわち、第2ブロックのライト転送が第1ブロックのライト転送から期間(W+α)経過した時点で開始した場合、次の第3ブロックのライト転送を、第2ブロックのライト転送から期間(W−α)経過した時点で実行する構成としても良い。
このような構成によれば、あるブロックのライト転送が、他のバスマスタによるメモリ30のアクセスによって遅延しても、当該ブロックの次のライト転送が時間的に早められるので、単位時間にDMA転送されるブロック数を一定に保つことができる。すなわち、DMAコントローラ100によるデータ転送速度を均一に保つことができる。
なお、転送制御部110は、あるブロックのライト転送を時間αだけ待機させた場合であっても、次のブロックのライト転送を、期間Wよりも時間αだけ早めない構成としても良い。この構成によれば、単位時間にDMA転送されるブロック数、すなわちDMAコントローラ100によるDMA転送のデータ転送速度を、予め定められた値よりも抑えることができる。
すなわち、本発明は、バッファ104に格納させたブロックを転送先のバススレーブ(メモリ30)に転送する場合のみならず、転送元のバススレーブ(メモリ30)から内蔵バッファに転送する場合にも適用可能である。なお、転送元のバススレーブから内蔵バッファに転送する場合の動作については、DMAコントローラ100によるライト転送において転送元と転送先とが異なるだけでほぼ同様な動作となる。
このようにウェイトを変更する構成によって、DMA転送のデータ転送速度を動的に制御することができる。
また、実施形態では、バッファ104を第1バッファ104aと第2バッファ104bとに分けたが、1群のデータをブロック化し、時間的に離散させてライト転送することができれば良いので、1つのバッファを用いる構成でも良い。
なお、DMA転送の対象は、圧縮データに限られず、圧縮していない動画データでも良いし、動画以外のデータであっても良い。
Claims (5)
- 1群のデータを転送元のバススレーブから転送先のバススレーブに転送するDMAコントローラであって、
先入れ先出し型のバッファと、
前記1群のデータを、所定のデータ量のブロックを単位として前記転送元のバススレーブからバッファに格納させる動作、または、前記バッファに格納させたブロックを前記転送先のバススレーブに転送する動作、を所定のデータ転送速度に応じた期間のウェイトをかけて実行する転送制御部と、
を具備することを特徴とするDMAコントローラ。 - 前記バッファは、前記所定のデータ量の記憶容量を有する先入れ先出し型の第1バッファおよび第2バッファを含み、
前記転送制御部は、前記第1バッファまたは第2バッファの一方に対して前記転送元のバススレーブからのブロックを格納させた場合に、前記第1バッファまたは第2バッファの他方からブロックを読み出して、前記転送先のバススレーブに転送する
ことを特徴とする請求項1に記載のDMAコントローラ。 - 前記転送制御部は、
一のブロックを前記転送先のバススレーブに転送するのを遅らせた場合、当該一のブロックの次のブロックを前記転送先のバススレーブに転送するまでのウェイトを減少させる
ことを特徴とする請求項1または2に記載のDMAコントローラ。 - 前記転送制御部は、
一のブロックを前記転送先のバススレーブに転送するのを遅らせた場合、当該一のブロックの次のブロックを前記転送先のバススレーブに転送するまでのウェイトを減少させない
ことを特徴とする請求項1または2に記載のDMAコントローラ。 - 前記転送制御部は、
外部から入力されるイベント信号によって前記ウェイトを変更する
ことを特徴とする請求項1または2に記載のDMAコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013238836A JP6232964B2 (ja) | 2013-11-19 | 2013-11-19 | Dmaコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013238836A JP6232964B2 (ja) | 2013-11-19 | 2013-11-19 | Dmaコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015099477A JP2015099477A (ja) | 2015-05-28 |
JP6232964B2 true JP6232964B2 (ja) | 2017-11-22 |
Family
ID=53376057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013238836A Expired - Fee Related JP6232964B2 (ja) | 2013-11-19 | 2013-11-19 | Dmaコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6232964B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6985810B2 (ja) | 2017-04-27 | 2021-12-22 | キヤノン株式会社 | 転送装置、転送方法および複合機 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004079583A1 (ja) * | 2003-03-05 | 2004-09-16 | Fujitsu Limited | データ転送制御装置およびdmaデータ転送制御方法 |
JP2006285300A (ja) * | 2005-03-31 | 2006-10-19 | Toshiba Corp | 信号転送装置及び信号転送方法 |
JP2007206799A (ja) * | 2006-01-31 | 2007-08-16 | Toshiba Corp | データ転送装置、情報記録再生装置およびデータ転送方法 |
-
2013
- 2013-11-19 JP JP2013238836A patent/JP6232964B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015099477A (ja) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190354317A1 (en) | Operation instruction scheduling method and apparatus for nand flash memory device | |
JP5774699B2 (ja) | マルチメディアプロセッサにおける順序通りでないコマンド実行 | |
US20090300324A1 (en) | Array type processor and data processing system | |
US8095744B2 (en) | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages | |
JPH0962563A (ja) | 共有メモリシステム、並列型処理装置並びにメモリlsi | |
JP2004287757A (ja) | Dma制御装置 | |
EP1880297B1 (en) | Data transfer arbitration apparatus and data transfer arbitration method | |
US9552619B2 (en) | Image processing apparatus and image processing interface circuit | |
JP5707911B2 (ja) | データ転送制御装置 | |
US6606691B2 (en) | System integrating agents having different resource-accessing schemes | |
JP6232964B2 (ja) | Dmaコントローラ | |
US20120203942A1 (en) | Data processing apparatus | |
CA2323116A1 (en) | Graphic processor having multiple geometric operation units and method of processing data thereby | |
US10983937B2 (en) | Method for managing access to a shared bus and corresponding electronic device | |
JP6142783B2 (ja) | メモリコントローラ,情報処理装置及びメモリコントローラの制御方法 | |
JP2007206924A (ja) | 演算処理システム | |
US9747231B2 (en) | Bus access arbiter and method of bus arbitration | |
JP4126959B2 (ja) | データ転送システム、およびアクセスモニタ装置 | |
US20140297972A1 (en) | Memory control device and memory control method | |
US20120144150A1 (en) | Data processing apparatus | |
JP5623150B2 (ja) | 電子機器及びその制御方法 | |
JP4335327B2 (ja) | 調停装置および方法 | |
JP7435055B2 (ja) | 通信装置、通信装置の制御方法、および集積回路 | |
JP7310536B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP6117495B2 (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20150410 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160921 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170704 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170830 |
|
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: 20170926 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171009 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6232964 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |