JP5108690B2 - Dma装置及びdma転送方法 - Google Patents

Dma装置及びdma転送方法 Download PDF

Info

Publication number
JP5108690B2
JP5108690B2 JP2008229600A JP2008229600A JP5108690B2 JP 5108690 B2 JP5108690 B2 JP 5108690B2 JP 2008229600 A JP2008229600 A JP 2008229600A JP 2008229600 A JP2008229600 A JP 2008229600A JP 5108690 B2 JP5108690 B2 JP 5108690B2
Authority
JP
Japan
Prior art keywords
transfer
request
buffer
dma
transfer 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.)
Expired - Fee Related
Application number
JP2008229600A
Other languages
English (en)
Other versions
JP2010061620A (ja
Inventor
弘記 下川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2008229600A priority Critical patent/JP5108690B2/ja
Priority to US12/461,432 priority patent/US8065449B2/en
Publication of JP2010061620A publication Critical patent/JP2010061620A/ja
Application granted granted Critical
Publication of JP5108690B2 publication Critical patent/JP5108690B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/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

Landscapes

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

Description

本発明は、マイクロコンピュータ(以下、マイコンと称す)に関し、特に、マイコンに内蔵されるDMA(Direct Memory Access)装置及びDMA転送方法に関する。
マイコンに搭載される周辺I/O(Input Output Port)の増加に伴うCPU(Central Processor Unit)負荷の軽減を目的として、DMAの多チャネル化の要求がある。一般的に、DMAは、チャネル数分の転送情報をDMA装置に内蔵しているため、多チャネル化すると転送情報の内蔵量が増え、DMAの物理的規模が増加する。
多チャネル化による物理的規模の増加を回避する手段として、転送情報をRAM(Random Access Memory)等の書き換え可能なメモリに配置し、転送の度にRAMから転送情報を読み出し、読み出した情報をDMA装置内に配置してDMA転送を行う手法がある。
RAMに配置した転送情報を読み出すタイプのDMAでは、多チャネル化による物理規模の増加を回避する事はできるが、転送の度にRAMから転送情報を読み出すことによるオーバーヘッドが発生するため、転送性能の劣化を引き起こすという問題がある。
更に、近年では、マイコン動作クロックの高周波数化に対応するために、データパスの切りなおしが頻繁に行われるようになり、転送クロック数を増大させる傾向にある。また、周辺I/Oの多様化や、システムの複雑化に伴う多重バス化により、DMAからRAMへのアクセス経路において、異なるバスへの乗せ替えが必要になり、オーバーヘッドは更に増加する傾向にある。そのため、転送情報の読み出しに起因するオーバーヘッドの削減が望まれている。
図9、図10及び図11を用いて、特許文献1に開示された従来の装置の構成を説明する。図9に示すように、この装置は、DMAカウントレジスタ91、DMAコマンドレジスタ92、DMAアドレスレジスタ93、DMAオフセットレジスタ94及び要求番号レジスタ81からなる第1バッファと、データ転送を行うデータバス95、転送要求信号84、要求信号84に対応する要求番号82、要求番号比較器83、及びDMA制御回路99から構成される。この装置は、RAMに配置した転送情報を読み出すタイプのDMAである。
図10は、RAMに配置した転送情報の例である。転送情報は、転送情報TIA、TIB、TICの3ワード分で一つの転送情報として構成される。図11は、RAM上に配置した複数の転送情報の例である。読み出す転送情報は、RAM上に、転送情報TIA000、TIB000、・・・のようにユーザープログラムによって予め決められた位置に配置されている。
次に、このように構成された装置の動作について説明する。転送要求は、転送要求信号82により行われる。転送要求信号84に対応する要求番号が要求番号82から与えられる。このとき、要求番号比較器83では、要求番号82と要求番号レジスタ81に格納されている値の比較が行われる。初回では、要求番号レジスタ81が空であり、要求番号比較器83での比較結果は一致しない。比較結果が一致しない場合には、要求番号82を要求番号レジスタ81に格納し、要求番号82に対応する転送情報をRAMから読み出す。
まず、転送情報TIAをRAMから読み出し、DMAカウントレジスタ91とDMAコマンドレジスタ92に配置する。次に、転送情報TIB及びTICを順次RAMから読み出し、DMAアドレスレジスタ93に配置する。そしてDMA転送を実行する。
次に、前回の要求番号と同じ転送要求が発生すると、要求番号比較器83では、要求番号82と要求番号レジスタ81に格納されている値の比較が行われる。前回の要求番号と同じ転送要求であるため、比較結果が一致することとなり、転送情報TIA、TIB、TICの読み出しをスキップし、即座にDMA転送を行う。
また、前回の要求番号と異なる転送要求が発生すると、要求番号比較器83で要求番号82と要求番号レジスタ81に格納されている値の比較が行われる。前回の要求番号と異なる転送要求であるため、この比較結果が一致しないこととなる。そこで、前回の要求番号に対応する転送情報TIA、TIB、TICがDMA装置内部に残っているため、前回の要求番号に対応するRAM領域に転送情報TIA、TIB、TICを退避するために書き戻す。その後、今回の要求番号82に対応する転送情報TIA、TIB、TICを読み出して、DMA転送を行う。
このように、従来技術では、要求番号比較器83により、前回の要求番号と今回の要求番号が一致するか否かにより、転送情報の読み出しをスキップするか否かを決定する。
図12は、要求番号が一致する例であり、従来技術の効果が発揮される様子を示すタイミングチャートである。まず、期間T0で転送要求と共に、要求番号02が入力される。DMA装置ではこれを受け、要求番号レジスタ81に要求番号02を設定し、期間T02Rに要求番号02に対応する転送情報TIA、TIB、TICを読み出した後、期間TDMAでDMA転送を行う。次に、期間T1で前回と同じ要求番号02の要求が発生すると、要求番号レジスタ81の値と期間T1での要求番号が同じであるため、転送情報TIA、TIB、TICのリードをスキップして、期間TDMAのサイクルを即座に実行する。
図13は、前回の要求番号と要求番号が一致しない例である。従来技術では、まず、期間T0で要求番号00の転送要求が発生すると、期間T00Rで要求番号00に対応する転送情報TIA、TIB、TICの読み出しが行われ、期間TDMAでDMA転送が行われる。次に、期間T1で要求番号01の転送要求が発生すると、要求番号01は、前回の要求番号00と異なる番号であるため、期間T00Wで要求番号00に対応する転送情報TIA、TIB、TICを退避するための書き戻しが行われる。そして、期間T01Rで要求番号01に対応する転送情報TIA、TIB、TICを読み出して、この転送情報に基づいてDMA転送を行う。
特開2000−99452号公報
図13に示すように、従来では、前回の転送要求と異なる要求番号の転送要求が発生すると、必ず期間T00Wと期間T01Rが発生することとなる。このため、従来技術では、再書込みの時間がオーバーヘッドとなり、応答性能が低下するという問題点がある。
本発明のDMA装置の一態様は、第1転送要求に必要な第1転送情報を保持する第1バッファ及び第2転送要求に必要な第2転送情報を保持する第2バッファと、新たに入力された転送要求である現転送要求と、前記第1転送要求及び前記第2転送要求が一致するか否かを判定する転送要求比較回路と、前記転送要求比較回路において、前記現転送要求と、前記第1転送要求及び前記第2転送要求が一致しないと判定された場合に、前記現転送要求の優先順位が前記第2転送要求の前記優先順位よりも高い場合には、前記第2転送情報を前記現転送要求の転送情報に更新し、前記現転送要求の優先順位が前記第2転送要求の優先順位よりも低い場合には、前記第1転送情報を前記現転送要求の転送情報に更新する優先順位決定回路と、前記優先順位決定回路によって更新された前記第1バッファ又は前記第2バッファに保持された前記転送情報を用いてDMA転送を行うDMA転送制御回路と、を備えたことを特徴とする。
このように、転送情報を保持する第1、第2バッファを設け、転送情報の優先レベルに基づいて第2バッファに保持される転送情報を更新していくことで、優先レベルの高い転送情報が第2バッファに保持され続ける。そのため、例えば、転送頻度の高い転送情報に高い優先レベルを設定しておけば、この優先情報が第2バッファに保持されることとなり、この転送要求が発生した際のオーバーヘッドを削減することができる。これにより、DMA装置の応答性能を向上させることができる。
本発明に係るDMA装置の一態様によれば、DMA装置の応答性能を向上させることができる。
以下、添付した図面を参照して本発明の最良な実施の形態について説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係るDMA装置を含む上位システムの構成例を示すブロック図である。この上位システムは、CPU(Central Processor Unit)120、割り込みコントローラ121、転送要因セレクタ115、DMA(Direct Memory Access)装置116及びバスコントロールユニット117を備えている。
CPU120は、RAM(Random Access Memory)125に格納された種々のプログラムを実行する。CPU120は、データバス228を介してバスコントロールユニット117に接続されている。CPU120は、BCU(Bus Control Unit)制御情報227及びデータバス228を使用し、RAM125や外部メモリ124に格納されたプログラムやデータの呼び出しや書き込みを行う。
割り込みコントローラ121は、周辺I/O(Input/Output)122や外部周辺I/O123から入力された割り込み要求229、230に従って、CPU120上で実行されているプログラムを一時停止させるよう構成されている。
転送要因セレクタ115は、周辺I/O122から出力される割り込み要求229及び外部周辺I/O123から出力される割り込み要求230を入力し、予めプログラムされた優先順位に従って、1つの転送要求を選択する。そして、選択された転送要求をDMA装置116に対して行う。転送要因セレクタ115は、選択した転送要求200の要求番号202と、この転送要求に対してユーザが予め設定した現優先レベル203をDMA装置116に出力する。例えば、転送頻度の多い転送要求に対して高い優先レベルが設定されている。
DMA装置116は、データバス220を介してバスコントロールユニット117に接続されている。DMA装置116は、転送要因セレクタ115より、転送要求200、現優先レベル203及び現優先レベル203を入力し、バスコントロールユニット117に対してBCU制御情報226を入出力する。
バスコントロールユニット117は、BCU制御情報226、データバス220、BCU制御情報227、データバス228を使用して、周辺I/O122と外部周辺I/O123と外部メモリ124とRAM125との間でデータを入出力する。
次に、このように構成された上位システムレベルの動作について説明する。転送要因セレクタ115は、周辺I/O122から出力される割り込み要求229及び外部周辺I/O123から出力される割り込み要求230が入力されると、予めプログラムされた優先順位に従って、一つの転送要求を選択し、転送要求200によって転送要求を行う。このとき、選択した転送要求に対応する現要求番号202と現優先レベル203を出力する。
DMA装置116は、現要求番号202と現優先レベル203と転送要求200を入力し、現要求番号202に対応する転送情報をRAM125から読み出す。そして、DMA装置116は、RAM125から読み出した転送情報に従って、BCU制御情報226及びデータバス220を使用し、周辺I/O122と外部周辺I/O123と外部メモリ124とRAM125との間でDMA転送を行う。
図2は、DMA装置の構成例を示すブロック図である。DMA装置116は、要求番号比較器107、転送情報入出力回路112と優先順位制御回路105と第1バッファ101と第2バッファ102、転送情報選択回路100及びDMA転送制御回路114により構成される。
優先順位制御回路105は、優先レベル比較回路110、転送回数比較回路111、及び判定回路113を備えている。優先順位制御回路105は、優先順位の高い転送要求を第2バッファ102に保持するよう構成されている。具体的には、優先順位制御回路105は、新たに入力された転送要求の優先順位が第2バッファ102に格納された転送要求の優先順位よりも高い場合には、第2バッファ102を選択する。これにより、第2バッファ102には、転送情報入出力回路112から新たに選択された転送要求に対応する転送情報が格納される。
一方、優先順位制御回路105は、新たに入力された転送要求の優先順位が第2バッファ102に格納された転送要求よりも低い場合には、第1バッファ101を選択する。これにより、第1バッファ101には、転送情報入出力回路112より、新たに選択された転送要求に対応する転送情報が格納される。なお、転送要求が発生する前の初期状態においては、第1バッファ101及び第2バッファ102が空の状態であるため、優先順位制御回路105は、第2バッファ102を選択する。これにより、初期状態では、新たに発生した転送要求は第2バッファ102に格納される。
第1バッファ101には、要求番号、ソースアドレスレジスタSAR、ディスティネーションアドレスレジスタDAR、転送回数レジスタDBC及びコントロール情報CIが格納される。第2バッファ102には、優先レベル要求番号、ソースアドレスレジスタSAR、ディスティネーションアドレスレジスタDAR、転送回数レジスタDBC及びコントロール情報CIが格納される。
要求番号比較器107には、転送要因セレクタ115から転送要求200及び現要求番号202が入力される。要求番号比較器107は、入力された現要求番号202と、第1バッファ101及び第2バッファ102に格納された要求番号とを比較し、比較結果に応じて、転送要求信号215、バッファ選択信号201、及び転送情報読み出し要求210を出力する。
転送要求信号215とは、DMA転送制御回路114に対して、DMA転送を要求する信号である。転送情報読み出し要求210は、転送情報入出力回路112に対して、転送情報をRAM125から呼び出すよう要求する信号である。バッファ選択信号201とは、転送情報選択回路100に対して第1バッファ101又は第2バッファ102のいずれかを選択するよう命令する信号である。
転送情報入出力回路112は、転送情報読み出し要求210を入力し、転送回数情報216と転送要求信号214を出力する。また、転送情報入出力回路112は、BCU制御情報226及びデータバス220を使用して、第1バッファ101及び第2バッファ102との間で転送情報221を入出力する。
優先レベル比較回路110は、現優先レベル203と第2バッファ102に格納された優先レベルを入力し、比較結果に応じて比較結果225を出力する。また、優先レベル比較回路110は、現優先レベル203と第2バッファ102に格納された優先レベルが同じ場合には、転送回数比較回路111に対して転送回数比較要求218を出力する。
転送回数比較回路111は、転送回数比較要求218が入力されると、転送情報入出力回路112から新たに入力された転送要求の転送回数情報216を入力すると共に、第2バッファ102から転送回数情報217を入力し、新たに入力された転送要求の1回の転送要求に対して設定されたDMA転送回数と、第2バッファ102に格納された1回の転送要求に対して設定されたDMA転送回数とを比較する。転送回数比較回路111は、この比較結果232を判定回路113に出力する。
図3は、一般的にシングル転送と呼ばれる転送形態を示すタイミングチャートである。シングル転送では、1回のDMA要求により1回のDMA転送が発生する。図7には、100回のDMA要求によって、100回のDMA転送が行われる様子が示されている。
このシングル転送を、第1バッファ101で行う場合は、転送情報TIA、TIB、TICの読み出し、DMA転送、転送情報TIA、TIB、TICの書き戻し、という一連の動作が100回行われるため、転送情報TIA、TIB、TICの読み出しと書き戻しが100回発生することとなる。
図4は、一般的にブロック転送と呼ばれる転送形態を示すタイミングチャートである。ブロック転送では、1回のDMA要求で指定回数分の転送を行うものである。図4では、1回のDMA要求に対して、100回のDMA転送が行われる様子を示している。ブロック転送を第1バッファ101で行う場合には、最初の1回だけ転送情報TIA、TIB、TICを読み出し、100回のDMA転送を行った後、最後の一回だけ転送情報TIA、TIB、TICの書き戻しを行う。
このようなシングル転送及びブロック転送は、更に予め設定された回数分繰り返し実行される。例えば、図3に示すシングル転送の転送要求の繰り返し回数が5回であれば、DMA転送はトータルで5回行われる。一方、図4に示すブロック転送の転送要求の繰り返し回数が5回に設定されていれば、DMA転送はトータルで500回実行されることとなる。
転送回数比較回路111では、新たに入力された転送要求の1回の転送要求に対して設定されたDMA転送回数と、第2バッファ102に格納された1回の転送要求に対して設定されたDMA転送回数が同じ場合には、この予め設定されたシングル転送又はブロック転送の繰り返し回数を比較する。そして、予め設定された繰り返し回数の多い転送要求に対して高い優先順位を設定し、比較結果232として判定回路113に出力する。
判定回路113は、優先レベルについての比較結果225と、DMA転送回数についての比較結果232を入力し、これに基づいてバッファ選択信号212を出力する。バッファ選択信号212は、第1バッファ101及び第2バッファ102に出力される。
第1バッファ101及び第2バッファ102は、転送情報入出回路112との間で転送情報の入出力を行う。第1バッファ101及び第2バッファ102は、バッファ選択信号212に基づいて転送情報入出力回路112から入力される転送情報221を取り込む。
第1バッファ101は、第1バッファ101を選択したことを示すバッファ選択信号212が入力されると、転送情報入出力回路112より転送情報221を取り込んで、転送情報222として転送情報選択回路100に出力する。第2バッファ102は、第2バッファ102を選択したことを示すバッファ選択信号212が入力されると、転送情報入出力回路112より転送情報221を取り込んで、転送情報223として転送情報選択回路100に出力する。
転送情報選択回路100は、要求番号比較器107より入力されるバッファ選択信号201又は優先順位制御回路105から入力されたバッファ選択信号212に基づいて、第1バッファ101から入力される転送情報222又は第2バッファ102から入力される転送情報224を選択し、選択した転送情報222又は224をDMA転送制御回路114に出力する。
DMA転送制御回路114は、要求番号比較器107から入力された転送要求信号215又は転送情報入出力回路112から入力された転送要求信号214に従って、転送情報選択回路100によって選択された転送情報224をBCU制御情報226を介して外部周辺I/O123、周辺I/O122及びRAM125などに出力する。
図5は、第1の実施形態に係るDMA装置において転送される転送情報を示す図である。転送情報入出力回路112によって読み出された転送情報は、転送情報TIA、TIB、TICの3ワード分で一つの転送情報として構成されている。転送情報TIAには、転送回数レジスタDBC及びコントロール情報CIが含まれている。転送除法TIBには、ソースアドレスレジスタSARが含まれている。転送情報TICには、ディスティネーションアドレスレジスタDARが含まれている。
次に、このように構成された第1の実施形態に係るDMA装置の動作例について説明する。図6は、第1の実施形態に係るDMA装置の動作を示すフローチャートである。転送要求が発生すると、現要求番号202と、第1バッファ101及び第2バッファ102の要求番号の比較を行う(S1)。
現要求番号202と第1バッファ101の要求番号が一致した場合は(A)、第1バッファ101に格納された転送情報をそのまま使用してDMA転送を行う(S2)。同様に、現要求番号202と第2バッファ102の要求番号が一致した場合は(B)、第2バッファ102の転送情報をそのまま使用してDMA転送を行う(S6)。
ステップS1において、現要求番号202が第1バッファ101及び第2バッファ102の要求番号のいずれにも一致しない場合には(C)、第2バッファ102に格納された転送要求の優先レベルと、新たに発生した転送要求の優先レベルの比較を行う(S3)。
ステップS3において、第2バッファ102に格納された転送要求の優先レベルが、新たに発生した転送要求の優先レベルよりも高い場合には(A)、新たに発生した転送要求に対応する転送情報を読み出して第1バッファ101に格納し、第1バッファ101に格納された転送情報に基づいてDMA転送を行う(S5)。
ステップS3において、第2バッファ102に格納された転送要求の優先レベルが、新たに発生した転送要求のもつ優先レベルよりも低い場合には(B)、新たに発生した転送要求に対応する転送情報を読み出して、第2バッファ102に格納し、第2バッファ102に格納された転送情報に基づいてDMA転送を行う(S7)。
また、ステップS3において、第2バッファ102の優先レベルと新た入力された転送要求がもつ優先レベルが同じである場合には(C)、第2バッファ102に保持された転送要求のDMA転送回数と、新たに発生した転送情報がもつDMA転送回数を比較する(S4)。
ステップS4において、第2バッファ102に保持された転送要求の1回の転送要求に対するDMA転送回数が、新たに発生した転送要求の1回の転送要求に対するDMA転送回数よりも少ない場合(A)、具体的には、第2バッファ102に保持された転送要求が図3に示す転送要求で、新たに発生した転送要求が図4に示す転送要求である場合には、第2バッファ102に保持された転送要求の優先順位が高いと判断する。そして、新たに発生した転送要求の転送情報を第1バッファ101に格納し、この転送情報によってDMA転送を行う(S5)。
ステップS4において、第2バッファ102に保持された1回の転送要求に対するDMA転送回数が、新たに発生した転送要求がもつ1回の転送要求に対するDMA転送回数よりも多い場合(B)、具体的には、第2バッファ102に保持された転送要求が図4に示す転送要求であり、新たに発生した転送要求が図3に示す転送要求である場合には、新たに発生した転送要求の優先順位よりも高いと判断する。そして、新たに発生した転送要求を第2バッファ102に格納し、第2バッファ101に格納された転送情報によってDMA転送を行う(S7)。
また、新たに入力された転送要求の1回の転送要求に対して設定されたDMA転送回数と、第2バッファ102に格納された1回の転送要求に対して設定されたDMA転送回数が同じ場合には(C)、更に、予め設定されたシングル転送又はブロック転送を繰り返す転送回数を比較する(S8)。そして、予め設定された転送要求を繰り返す転送回数の多い転送要求に対して高い優先順位を設定する。
ステップS8において、第2バッファ102に格納された繰り返し回数が、新たに発生した転送要求の繰り返し回数よりも多い場合(A)、又は同じ場合には(C)、第2バッファ102を更新せず、第1バッファ101に新たに発生した転送要求の転送情報を格納する。そして、第1バッファ101に格納された転送情報を用いてDMA転送を行う(S5)。
一方、ステップS8において、第2バッファ102に格納された繰り返し回数が、新たに発生した転送要求の繰り返し回数よりも少ない場合には、第2バッファ102を更新して新たに発生した転送要求の転送情報を第2バッファ102に格納する。そして、第2バッファ102に格納された転送情報を用いてDMA転送を実行する。このように、1回の転送要求に対するDMA転送の転送回数が同じ場合には、更に、転送要求を繰り返す回数を比較することで、トータルで転送情報の読み出し及び書き戻しの動作の多い転送情報を第2バッファ102に保持することができる。
このように、異なる要求番号がDMA装置116に入力された場合には、優先順位の判定に応じて、新たに入力された転送要求と第2バッファ102に格納された転送要求の優先レベル及び転送回数情報が比較され、優先順位判定の結果、第2バッファ102の優先順位が高いか、同じである場合は第1バッファ101との入れ替えが行われ、第2バッファ102の優先順位が低い場合は、第2バッファ102との入れ替えが行われる。
次に、DMA転送の動作を具体例に沿って説明する。ここで、転送要求について、前回の転送要求と今回の転送要求が同じであるか否かを区別して説明する必要があるため、転送要求"1"と、転送要求"2"という2つの転送要求を例に挙げて説明を行う。
DMA装置116に転送要求"1"が入力されると、要求番号比較器107は、転送要求"1"の現要求番号202と、第1バッファ101及び第2バッファ102に格納された要求番号とを比較する(S1)。ここで、第1バッファ101と第2バッファ102は、空の状態であるため、比較結果が一致しない。要求番号比較器107は、比較結果が一致しないため、転送情報読み出し要求210を転送情報入出力回路112に対して出力することで、転送情報入出力回路112に転送要求"1"の転送情報を読み出させる。
転送情報入出力回路112は、転送情報読み出し要求210が入力されることにより、新たに入力された転送要求に対応する転送情報TIAをRAM125から読み出す。
転送情報TIAの読み出しが完了すると、優先順位制御回路105は、転送要求"1"と、第2バッファ102に格納された転送要求の優先順位を判定する(S3)。優先順位の判定は、2段階の判定によって実行される。まず、優先レベル比較回路110により、入力された転送要求の現優先レベル203と、第2バッファ102に格納済みの優先レベルが比較される。ここで、両者の優先レベルが同じであった場合は、優先レベル比較回路110は、転送回数比較回路111に対して転送回数比較要求218を出力する。
転送回数比較回路111は、転送回数比較要求218が入力されると、転送情報入出力回路112で読み出した転送回数情報216と、第2バッファ102に格納済みの転送回数情報217を比較し、1回の転送要求に対してDMA転送回数の少ない転送要求を優先順位が高いと判定する。このように2段階の判定によって優先順位を決定する。また、第2バッファ102が空である場合には、現優先レベル203の優先順位が高いと判定する。
上記の判定方法に従って、優先順位制御回路105は、転送要求"1"と第2バッファ102の優先順位を比較する(S4)。第2バッファ102は空であるため、優先順位制御回路105は、転送要求"1"の方が第2バッファに格納された転送要求によりも優先順位が高いと判定し、バッファ選択信号212によって第2バッファ102を選択する。また、優先順位制御回路105は、転送情報221を出力することで、既に読み出し済みの転送情報TIAを、第2バッファ102の転送回数レジスタDBC及びコントロール情報CIに格納する。
次に、転送情報入出力回路112により転送情報TIBを読み出し、転送情報221により第2バッファ102のソースアドレスレジスタSARに格納する。次に、転送情報入出力回路112により転送情報TICを読み出し、転送情報221により第2バッファ102のディスティネーションアドレスレジスタDARに格納する。
転送情報選択回路100は、判定回路113から出力されたバッファ選択信号212に基づいて、第2バッファ102からの転送情報223を選択する。転送情報選択回路100は、転送情報224として選択された第2バッファ102に格納された転送情報をDMA転送制御回路114に出力する。これにより、DMA転送制御回路114によって、第2バッファ102に格納された転送情報に基づいてDMA転送が実行される(S5)。ここでは、第2バッファ102に読み込んだ転送情報については、書き戻しを行わない。
次に、再度、DMA装置116に転送要求"1"が入力されると、要求番号比較器107は、入力された転送要求"1"の要求番号と、第1バッファ101及び第2バッファ102に格納された要求番号の比較を行う(S1)。ここで、新たに入力された転送要求"1"は、前回の第2バッファ102に格納済みの要求番号と同じであるため、要求番号比較器107は、第2バッファ102を選択するようバッファ選択信号201を転送情報選択回路100に対して出力する。このように、新たに入力された転送要求"1"が第1バッファ101又は第2バッファ102に格納されている場合には、第1バッファ101及び第2バッファ102に格納された転送情報の更新は行わない。
転送情報選択回路100は、要求番号比較器107により入力されたバッファ選択信号201によって第2バッファ102に格納された転送情報223を選択し、この転送情報223を転送情報224としてDMA転送制御回路114に出力する。DMA転送制御回路114は、要求番号比較器107から入力された転送要求信号215に基づいて、転送情報選択回路100から入力された転送情報224に基づいて転送要求"1"のDMA転送を行う(S6)。
次に、転送要求"1"とは要求番号が異なる転送要求"2"がDMA装置116に入ると、要求番号比較器107は、入力された転送要求"2"の現要求番号202と、第1バッファ101、第2バッファ102に格納された要求番号の比較を行う(S1)。ここで、第1バッファ101は空であり、第2バッファには、転送要求"1"の要求番号が格納された状態である。要求番号比較器107は、新たに入力された転送要求"2"が第1バッファ101及び第2バッファ102に格納済みの要求番号と一致しないので、転送情報読み出し要求210を転送情報入出力回路112に出力し、転送情報入出力回路112に転送要求"2"に対応する転送情報を読み出させる。
転送情報入出力回路112は、要求番号比較器107より転送情報読み出し要求210を入力すると、RAM125から転送情報TIAを読み出す。転送情報TIAの読み出しが完了すると、優先順位制御回路105は、第2バッファ102の転送要求"1"と、新たに入力された転送要求"2"の優先順位を比較する(S3)。先に述べたように、はじめに優先レベルの比較を行い、優先レベルが同じである場合には、1回の転送要求に対するDMA転送回数を比較することにより優先順位を判定する。
この優先順位の比較の結果、第2バッファ102の優先順位が高いと判定された場合には、判定回路113は、第1バッファ101を選択するようバッファ選択信号212を第1バッファ101、第2バッファ102及び転送情報選択回路100に出力する。これにより、第1バッファ101が選択される。転送情報入出力回路112は、転送情報221として、既に読み出し済みの転送情報TIAを第1バッファ101の転送回数レジスタDBC及びコントロール情報CIに格納する。
次に、転送情報入出力回路112は転送情報TIBを読み出し、転送情報221により第1バッファ101のソースアドレスレジスタSARに格納する。転送情報入出力回路112は、転送情報TICを読み出して、転送情報221により第1バッファ101のディスティネーションアドレスレジスタDARに格納する。
転送情報選択回路100は、判定回路113から入力されたバッファ選択信号212によって、第1バッファ101に格納された転送情報222を選択する。DMA転送制御回路114は、転送要求信号214により転送情報224として入力された第1バッファ101の転送情報に基づいてDMA転送を行う(S5)。ここで、第1バッファ101に格納された転送情報については書き戻しを行う。
判定回路113による判定の結果(S3、S4)、第2バッファ102の優先順位の方が低い場合には、バッファ選択信号212により、第2バッファ102を選択する。第2バッファ102には、転送要求"1"の転送情報が既に配置済みであり、配置済みの転送情報を退避するために、第2バッファ102の情報を一旦書き戻し、転送情報221により、既に読み出し済みの転送情報TIAを、第2バッファ102の転送回数レジスタDBC及びコントロール情報CIに格納する。
次に、転送情報入出力回路112は、転送情報TIBを読み出し、転送情報221により第2バッファ102のソースアドレスレジスタSARに格納する。次に、転送情報入出力回路112は、転送情報TICを読み出し、転送情報221により第2バッファ102のディスティネーションアドレスレジスタDARに格納する。転送情報選択回路100は、優先順位制御回路105から入力されたバッファ選択信号212に基づいて、第2バッファ102に格納された転送情報223を選択して、転送情報224としてDMA転送制御回路114に出力する。DMA転送制御回路114は、入力された転送情報223に基づいてDMA転送を行う(S7)。
以上に説明したように、要求番号の異なる転送要求が発生した場合には、新たに発生した転送要求と、第2バッファ102に格納された転送要求の優先順位を比較し、優先順位の高い転送要求については第2バッファ102に格納していくことで、第2バッファ102には、優先順位の高い転送要求が配置され続ける。
これにより、例えば、転送頻度の高い転送情報に高い優先レベルを設定しておけば、このような転送情報が第2バッファ102に保持されることとなり、この転送要求が発生した際の書き戻しによるオーバーヘッドを削減することができる。これによりDMA転送処理の高速化を実現することができる。
また、優先レベルが同一の場合でも、1回の転送要求に対してDMA転送回数の少ない転送要求に高い優先順位を与えることで、第2バッファ102にシングル転送のように1回の転送要求に対してDMA転送回数の少ない転送要求の転送情報が保持されることとなる。これにより、書き戻し動作を低減することでオーバーヘッドを削減することができる。
なお、第1の実施形態では、優先順位の高い転送要求の転送情報を保持する第2バッファ102を1つだけ設ける構成としているが、本発明は、これに限られるものではなく、複数の第2バッファ102を設けるように構成することもできる。これにより、回路規模は大きくなるが、多くの転送情報を保持することができるため、転送情報の読み出し及び書き戻しという動作を削減することができるようになる。
[第2の実施形態]
図7は、本発明の第2の実施形態に係るDMA装置の構成例を示すブロック図である。第2の実施形態の特徴は、第1の実施形態における優先順位制御回路105を、イネーブル付き優先順位制御回路105に変更した点である。また、転送情報入出力回路112は、イネーブル付き優先順位制御回路105に対してホールドイネーブル信号219を出力するように第1の実施形態から変更されている。ホールドイネーブル信号219とは、第2バッファ102の使用を禁止する信号であり、判定回路113の判定にかかわらず第1バッファ101を選択し続けるよう命令する信号である。
転送情報入出力回路112は、転送情報を入力する際に、HENをホールドイネーブル信号219として出力する。このホールドイネーブル信号219は、判定回路113に入力される。判定回路113は、入力された転送情報にホールドイネーブル信号219が含まれる場合には、判定回路113の判定にかかわらず第1バッファ101を選択し続けるようにバッファ選択信号212を出力する。
ホールドイネーブル信号219は、図8に示すように、転送情報のコントロール情報CI中に、イネーブルビットであるHENとして設けられる。なお、ホールドイネーブル信号219は、図8に示す転送情報に限られず、任意の位置に設けることができる。
上記のように、1回の転送要求に対してDMA転送回数の多いブロック転送(図4)については、第1バッファ101を使用したとしても、シングル転送(図3)が第2バッファ102にホールドされ続けている状態と同じ動作となる。ここで、ブロック転送のように、転送情報読み出し及び書き戻しといった動作が少ないDMA転送に対して高い優先度を設定してしまうと、このような転送情報が第2バッファ102に保持され続けるため、シングル転送のように、転送情報の読み出し及び書き戻しという動作の多い転送要求が第2バッファ102に保持されず、第2バッファ102を有効に使用することができない。
そこで、第2の実施形態に係るDMA装置では、図4に示すブロック転送のように、1回の転送要求に対してDMA転送回数の多い(要求間隔は長い)というような特殊な転送要求が存在する場合に、ホールドイネーブル信号219によって第2バッファ102を使用することを禁止する。これにより、シングル転送のように転送情報の読み出し及び書き戻しが多い他の転送要求が第2バッファ102を使用し続けることができ、転送情報の読み出し、及び書き戻しのオーバーヘッドを効果的に削減することができる。
尚、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
本発明の第1の実施形態に係るDMA装置を含む上位システムを示すブロック図である。 本発明の第1の実施形態に係るDMA装置の構成例を示すブロック図である。 DMA装置のシングル転送を示すタイミングチャートである。 DMA装置のブロック転送を示すタイミングチャートである。 本発明の第1の実施形態に係るDMA装置の転送情報を示す図である。 本発明の第1の実施形態に係るDMA装置の動作を示すフローチャートである。 本発明の第2の実施形態に係るDMA装置の構成例を示すブロック図である。 本発明の第2の実施形態に係るDMA装置の転送情報を示す図である。 特許文献1に開示された装置の構成を示すブロック図である。 一般的なマイクロコンピュータのメモリマップと、転送情報がRAMに複数配置されたイメージ図である。 特許文献1のRAMに配置された転送情報を示す図である。 特許文献1に開示された装置において、同一の転送要求が入力された場合のタイミングチャートである。 特許文献1に開示された装置において、異なる転送要求が入力された場合のタイミングチャートである。
符号の説明
81 要求番号レジスタ 82 要求番号
83 要求番号比較器 84 転送要求信号
91 カウントレジスタ 92 コマンドレジスタ
93 アドレスレジスタ 94 要求番号レジスタ
95 データバス 96 転送要求信号
97 要求番号 98 要求番号比較器
99 DMA制御回路 100 転送情報選択回路
101 第1バッファ 102 第2バッファ
105 優先順位制御回路 107 要求番号比較器
110 優先レベル比較回路 111 転送回数比較回路
112 転送情報入出力回路 113 判定回路
114 DMA転送制御回路 115 転送要因セレクタ
116 DMA装置 117 バスコントロールユニット
122 周辺I/O 123 外部周辺I/O
121 割り込みコントローラ 124 外部メモリ
219 ホールドイネーブル信号 220 データバス
228 データバス CI コントロール情報
DAR ディスティネーションアドレスレジスタ
DBC 転送回数レジスタ SAR ソースアドレスレジスタ

Claims (11)

  1. 記憶部から読み出した転送情報であって第1転送要求に必要な第1転送情報を保持する第1バッファと、
    前記記憶部から読み出した転送情報であって前記第1転送要求よりも優先順位が高い第2転送要求に必要な第2転送情報を保持する第2バッファと、
    新たに入力された転送要求である現転送要求と、前記第1転送要求及び前記第2転送要求が一致するか否かを判定する転送要求比較回路と、
    前記転送要求比較回路において、前記現転送要求と、前記第1転送要求及び前記第2転送要求が一致しないと判定された場合で、かつ、前記現転送要求の優先順位が前記第2転送要求の優先順位よりも低い場合には、前記第1転送情報を前記記憶部から読み出した前記現転送要求の転送情報に更新する優先順位決定回路と、
    前記優先順位決定回路によって更新された前記第1バッファ又は前記第2バッファに保持された前記転送情報を用いてDMA転送を行うDMA転送制御回路と、を備えたDMA装置。
  2. 前記優先順位は、1回の転送要求に対して設定されたDMA転送回数に基づいて設定される
    請求項1に記載のDMA装置。
  3. 前記優先順位比較回路は、前記現転送要求の前記DMA転送回数と、前記第2転送要求の前記DMA転送回数が同じ場合には、前記現転送要求と前記第2転送要求の繰り返し回数を比較し、
    前記現転送要求の前記繰り返し回数が前記第2転送要求の前記繰り返し回数よりも多い場合には、前記第1転送情報を前記現転送要求の前記転送情報に更新する、
    請求項2に記載のDMA装置。
  4. 前記現転送要求に対応する前記転送情報を前記記憶部から取得して前記第1バッファ又は前記第2バッファに格納する転送情報入出力回路を更に備え、
    前記転送情報入出力回路は、前記現転送要求の前記転送情報に基づいて、前記第2バッファの更新を禁止する
    請求項1乃至3のうちいずれか1項に記載のDMA装置。
  5. 前記転送情報入出力回路は、前記現転送要求のDMA転送回数が多い場合には、前記第2バッファの更新を禁止する
    請求項に記載のDMA装置。
  6. 前記優先順位比較回路は、初期状態において前記第2バッファに保持された前記転送情報が存在しない場合には、前記第2バッファに前記現転送要求の前記転送情報を書き込む
    請求項1乃至5のうちいずれか1項に記載のDMA装置。
  7. 記憶部から読み出した転送情報であって第1転送要求に必要な第1転送情報を保持する第1バッファと、前記記憶部から読み出した転送情報であって前記第1転送要求よりも優先順位が高い第2転送要求に必要な第2転送情報を保持する第2バッファを備えたDMA装置を用いたDMA転送方法であって、
    新たに入力された転送要求である現転送要求と、前記第1転送要求及び前記第2転送要求が一致するか否かを判定し、
    前記現転送要求と、前記第1転送要求及び前記第2転送要求が一致しないと判定された場合に、転送要求の優先順位を比較し、
    前記現転送要求の優先順位が前記第2転送要求の優先順位よりも低い場合には、前記第1転送情報を前記記憶部から読み出した前記現転送要求の転送情報に更新し、
    更新された前記第1バッファ又は前記第2バッファに保持された前記転送情報を用いてDMA転送を行うDMA転送方法。
  8. 前記優先順位は、1回の転送要求に対して設定されたDMA転送回数に基づいて設定される
    請求項7に記載のDMA転送方法。
  9. 前記現転送要求の前記DMA転送回数と、前記第2転送要求の前記DMA転送回数が同じ場合には、更に前記現転送要求と前記第2転送要求の前記繰り返し回数を比較し、
    前記現転送要求の前記繰り返し回数が前記第2転送要求の前記繰り返し回数よりも多い場合には、前記第1転送情報を前記現転送要求の前記転送情報に更新する、
    請求項8に記載のDMA転送方法。
  10. 前記DMA転送回数が多い前記転送要求については、前記優先順位に関わらず前記第2バッファの更新を禁止し、前記第1バッファを使用することで前記DMA転送を実行する
    請求項8又は9に記載のDMA転送方法。
  11. 初期状態において前記第2バッファに保持された前記第2転送情報が存在しない場合には、前記第2転送情報として前記現転送要求の転送情報を前記第2バッファに書き込む
    請求項7乃至10のうちいずれか1項に記載のDMA転送方法。
JP2008229600A 2008-09-08 2008-09-08 Dma装置及びdma転送方法 Expired - Fee Related JP5108690B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008229600A JP5108690B2 (ja) 2008-09-08 2008-09-08 Dma装置及びdma転送方法
US12/461,432 US8065449B2 (en) 2008-09-08 2009-08-11 DMA device having plural buffers storing transfer request information and DMA transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008229600A JP5108690B2 (ja) 2008-09-08 2008-09-08 Dma装置及びdma転送方法

Publications (2)

Publication Number Publication Date
JP2010061620A JP2010061620A (ja) 2010-03-18
JP5108690B2 true JP5108690B2 (ja) 2012-12-26

Family

ID=41800135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008229600A Expired - Fee Related JP5108690B2 (ja) 2008-09-08 2008-09-08 Dma装置及びdma転送方法

Country Status (2)

Country Link
US (1) US8065449B2 (ja)
JP (1) JP5108690B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8949500B2 (en) * 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US8521921B1 (en) * 2009-05-22 2013-08-27 Marvell International Ltd. Automatic direct memory access (DMA)
US9645738B2 (en) * 2012-08-09 2017-05-09 Spectra Logic Corporation Direct memory access of remote data
JP2015207819A (ja) * 2014-04-17 2015-11-19 株式会社リコー 情報処理装置、情報処理システム、通信制御方法およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962610A (ja) * 1995-08-22 1997-03-07 Mitsubishi Electric Corp Dmaコントローラ
JP2000099452A (ja) * 1998-09-21 2000-04-07 Seiko Epson Corp Dma制御装置
JP2000347987A (ja) * 1999-06-07 2000-12-15 Matsushita Electric Ind Co Ltd Dma転送装置
JP2002207691A (ja) * 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd データ転送制御装置
JP2003256356A (ja) * 2002-03-04 2003-09-12 Toshiba Corp Dmaコントローラ
JP2003271542A (ja) * 2002-03-18 2003-09-26 Fujitsu Ltd ダイレクトアクセスコントローラ
JP2004118300A (ja) * 2002-09-24 2004-04-15 Rohm Co Ltd Dmaコントローラ
DE602004012563T2 (de) * 2004-10-11 2009-05-07 Texas Instruments Inc., Dallas Mehrfädiges DMA
JP4855864B2 (ja) * 2006-08-11 2012-01-18 富士通セミコンダクター株式会社 ダイレクトメモリアクセスコントローラ

Also Published As

Publication number Publication date
US8065449B2 (en) 2011-11-22
JP2010061620A (ja) 2010-03-18
US20100064071A1 (en) 2010-03-11

Similar Documents

Publication Publication Date Title
US9043806B2 (en) Information processing device and task switching method
JP5108690B2 (ja) Dma装置及びdma転送方法
JP6146128B2 (ja) データ処理装置
JP4007483B2 (ja) 高位合成装置および高位合成方法
US6728797B2 (en) DMA controller
US6684267B2 (en) Direct memory access controller, and direct memory access control method
CN107818192B (zh) 存储器事务层级模型模拟方法及系统
US7185122B2 (en) Device and method for controlling data transfer
JP2005182538A (ja) データ転送装置
JP2007206924A (ja) 演算処理システム
JP2009199384A (ja) データ処理装置
JP4363534B2 (ja) マイクロコンピュータ及びマイクロコンピュータの動作設定方法
JP5907558B2 (ja) マルチインターバルタイマ並びにその制御装置、制御方法及び制御プログラム
JP2019219984A (ja) メモリモジュール
US11681527B2 (en) Electronic device and multiplexing method of spatial
JP2004118300A (ja) Dmaコントローラ
JP6133591B2 (ja) 半導体記憶装置及びコンピュータシステム
JP5126010B2 (ja) メモリアクセス制御回路及び画像処理装置
JP4198016B2 (ja) 情報処理装置およびその割り込み制御方法
JP6529092B2 (ja) マルチインターバルタイマ装置、その制御方法および制御プログラム
JP6119997B2 (ja) データ処理装置、データ処理装置の制御方法
JP2005063358A (ja) 命令供給制御装置および半導体装置
JP2004118298A (ja) データ処理制御装置
JP5949330B2 (ja) 情報処理装置、情報処理方法
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120620

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: 20121002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121005

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees