JP4175404B2 - Dma制御方法及びdmaコントローラ - Google Patents

Dma制御方法及びdmaコントローラ Download PDF

Info

Publication number
JP4175404B2
JP4175404B2 JP2006202105A JP2006202105A JP4175404B2 JP 4175404 B2 JP4175404 B2 JP 4175404B2 JP 2006202105 A JP2006202105 A JP 2006202105A JP 2006202105 A JP2006202105 A JP 2006202105A JP 4175404 B2 JP4175404 B2 JP 4175404B2
Authority
JP
Japan
Prior art keywords
priority
channel
setting
order
value
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
JP2006202105A
Other languages
English (en)
Other versions
JP2008027353A (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.)
Murata Machinery Ltd
Original Assignee
Murata Machinery 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 Murata Machinery Ltd filed Critical Murata Machinery Ltd
Priority to JP2006202105A priority Critical patent/JP4175404B2/ja
Priority to US11/782,297 priority patent/US20080028109A1/en
Publication of JP2008027353A publication Critical patent/JP2008027353A/ja
Application granted granted Critical
Publication of JP4175404B2 publication Critical patent/JP4175404B2/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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control

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転送の内、最も優先順位が高いチャネルに係るDMA転送を実行するDMA制御方法及びDMAコントローラに関する。
DMA(Direct Memory Access)転送においては、CPUが関与することなく、例えば1個のデータ記憶装置と、データの転送を要求する複数の転送要求デバイスとの間でデータが直接的に転送される。この場合、各転送要求デバイスについてDMA転送が実行され、各DMA転送のデータ転送経路はチャネルと呼ばれる。
複数のチャネルが存在する場合でも、データ転送経路として用いられるハードウェア(データバス、アドレスバス等)は一般に1つであるため、一のチャネルでDMA転送を実行している場合、即ち一のチャネルに係るDMA転送によってバスが占有されている場合には、他のチャネルに係るDMA転送を実行することはできない。
このため、DMA転送においては、各チャネルに優先順位が設定され、複数のチャネルに係るDMA転送が同時的に要求された場合には、より高い優先順位が設定されているチャネルにバスの占有が許可される。
各チャネルに対する優先順位の設定方式としては、従来、各チャネルに固定的に不変の優先順位を設定する固定優先順位方式が知られている。
また、各チャネルに優先順位を適宜に設定し、DMA転送が実行されたチャネルの優先順位を最下位に設定するラウンドロビン方式、最上位に設定するLRU(Least Recently Used )方式も知られている。
更に、各チャネルの優先順位を格納するプライオリティレジスタを用いる方式が知られている。プライオリティレジスタを用いる場合、プライオリティレジスタに設定する値を書き換えることによって、各チャネルの優先順位が変更される。
以上のような各方式には夫々一長一短がある。
互いの長所を生かし短所を補うため、従来、ラウンドロビン方式とLRU方式とを切り換えてデータを転送するバスアービタ回路が提案されている(特許文献1参照)。
また、プライオリティレジスタと、固定優先順位方式又はラウンドロビン方式によって、データ転送が要求される都度、各チャネルの優先順位を判断する判断部とを併用する記録装置が提案されている(特許文献2参照)。
特開2000−148667号公報 特開2005−71186号公報
しかしながら、特許文献1に開示されているバスアービタ回路はラウンドロビン方式とLRU方式を適切に切り換えるための複雑な回路と繁雑な制御用ソフトウエアとが必要になる。
一方、特許文献2に開示されている記録装置は、転送要求信号を受け付ける都度、転送要求信号を受け付けたチャネルの優先順位を判断してプライオリティレジスタを書き換えるための複雑な回路と繁雑な制御用ソフトウエアとが必要になる。
また、固定優先順位方式及びLRU方式では、優先順位が高いチャネルに係るDMA転送要求が連続すると、優先順位が低いチャネルに係るDMA転送要求が全く受け付けられず、このチャネルに関する必要な帯域(データ転送速度)が確保できないことがあり、このため、システム全体に支障をきたすことがある。
ラウンドロビン方式では、DMA転送を許可したチャネルの優先順位が最下位に回されるため、一旦転送を許可されたチャネルに対する転送要求が、他のチャネルに対する転送要求が処理された後でないと許可されないことがある。この結果、帯域確保のため優先的にDMA転送を実行する必要があるチャネル、使用頻度が高いチャネル等(即ち優先度が高いチャネル)のDMA転送が後回しにされて、このチャネルよりも優先度が低いチャネルに係るDMA転送が先に実行され、システム全体に支障をきたすことがある。
本発明は斯かる事情に鑑みてなされたものであり、その主たる目的は、DMA転送が実行された一のチャネルの優先順位を最下位に設定し、他のチャネルの優先順位を、最下位を除く所定の順位に設定することにより、各チャネルに適切な優先順位を容易に設定して、DMA転送全体の効率を向上することができるDMA制御方法を提供することにある。
本発明の他の目的は、各チャネルの優先順位の初期値、DMA転送が実行された場合の各チャネルの優先順位の設定値、及び各チャネルの優先順位の現在値を夫々格納するレジスタを備えることにより、簡易な構成で各チャネルに適切な優先順位を設定して、DMA転送全体の効率を向上することができるDMAコントローラを提供することにある。
本発明の更に他の目的は、レジスタに格納すべき値を外部から設定する構成とすることにより、各チャネルに更に適切な優先順位を設定することができるDMAコントローラを提供することにある。
第1発明に係るDMA制御方法は、夫々に優先順位が設定されている複数のチャネルに係るDMA転送を制御すべく、各チャネルの優先度に応じて、各チャネルの優先順位の互いに異なる初期値を格納する初期順位レジスタと、DMA転送が実行された場合の各チャネルの優先順位の設定値を格納すべく、優先度が低いチャネルに対しては最下位の値を、優先度が高いチャネルに対しては最下位を除く所定の順位の値を夫々格納する設定順位レジスタと、各チャネルの優先順位の互いに異なる現在値を格納する優先順位レジスタとを備えるDMAコントローラ前記初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として前記優先順位レジスタに格納する初期化ステップと、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付ステップと、転送要求信号を受け付けたチャネルに係るDMA転送の内、最も優先順位が高いチャネルに係るDMA転送を実行すべく、前記受付ステップで転送要求信号を受け付けたチャネルの優先順位の現在値を前記優先順位レジスタから読み出し、読み出した優先順位の現在値に応じた順番で前記チャネルに係るDMA転送を実行する実行ステップとを実行するDMA制御方法であって前記DMAコントローラが、前記実行ステップで前記チャネルに係るDMA転送を実行した場合、DMA転送が実行されたチャネルの優先順位の設定値を前記設定順位レジスタから読み出す読出ステップと、該読出ステップで読み出した設定値が最下位の値である場合、前記チャネルの優先順位を最下位に設定する第1設定ステップと、前記読出ステップで読み出した設定値が最下位を除く所定の順位の値である場合、前記チャネルの優先順位を前記所定の順位に設定する第2設定ステップと、前記第1設定ステップ又は前記第2設定ステップで優先順位設定ることによって複数のチャネルに対して同一の優先順位が設定される場合に、前記第1設定ステップ又は前記第2設定ステップで優先順位設定たチャネル以外の少なくとも1個のチャネルに設定されている優先順位を該優先順位から所定値ずつ繰り上げ(又は繰り下げ)る調整ステップと、前記第1設定ステップ、前記第2設定ステップ、及び/又は前記調整ステップで設定された優先順位に応じて、前記優先順位レジスタに格納される優先順位の現在値を書き換える書換ステップと実行することを特徴とする。
第2発明に係るDMAコントローラは、複数のチャネルに係るDMA転送を制御するDMAコントローラにおいて、各チャネルの優先度に応じて、各チャネルの優先順位の互いに異なる初期値を格納する初期順位レジスタと、DMA転送が実行された場合の各チャネルの優先順位の設定値を格納すべく、優先度が低いチャネルに対しては最下位の値を、優先度が高いチャネルに対しては最下位を除く所定の順位の値を夫々格納する設定順位レジスタと、各チャネルの優先順位の互いに異なる現在値を格納する優先順位レジスタと、前記初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として前記優先順位レジスタに格納する初期化手段と、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付手段と、該受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を前記優先順位レジスタから読み出す第1読出手段と、該第1読出手段が読み出した優先順位の現在値に応じた順番で前記チャネルに係るDMA転送を実行する転送手段と、該転送手段が前記チャネルに係るDMA転送を実行した場合、DMA転送が実行されたチャネルの優先順位の設定値を前記設定順位レジスタから読み出す第2読出手段と、該第2読出手段が読み出した設定値が最下位の値である場合、前記チャネルの優先順位を最下位に設定する第1設定手段と、前記第2読出手段が読み出した設定値が最下位を除く所定の順位の値である場合、前記チャネルの優先順位を前記所定の順位に設定する第2設定手段と、前記第1設定手段又は前記第2設定手段が優先順位を設定することによって複数のチャネルに対して同一の優先順位が設定される場合に、前記第1設定手段又は前記第2設定手段が優先順位を設定したチャネル以外の少なくとも1個のチャネルに設定されている優先順位を該優先順位から所定値ずつ繰り上げ(又は繰り下げ)る調整手段と、前記第1設定手段、前記第2設定手段、及び/又は前記調整手段が設定した優先順位に応じて、前記優先順位レジスタに格納される優先順位の現在値を書き換える書換手段とを備えることを特徴とする。
第3発明に係るDMAコントローラは、前記初期順位レジスタ及び/又は設定順位レジスタに格納すべき各チャネルの優先順位の値が夫々外部から設定可能であることを特徴とする。
本発明にあっては、複数のチャネルに係るDMA転送を制御すべく、DMAコントローラが初期順位レジスタと設定順位レジスタと優先順位レジスタとを備える。
また、DMAコントローラは、初期化手段、受付手段、第1読出手段、転送手段、第2読出手段、及び書換手段を備える。
第2発明に係るDMAコントローラは、例えば、第1発明に係るDMA制御方法に基づく制御用ソフトウエアによって制御される。このDMA制御方法は、受付ステップと、実行ステップと、第1設定ステップと、第2設定ステップと、調整ステップとを有する。
初期順位レジスタには、各チャネルの優先順位の初期値が格納される。この初期値は、各チャネルの優先度に応じた値であることが望ましい。即ち、優先度の高いチャネルから順に、高い優先順位が与えられる。ここで、初期順位レジスタに関しては、複数のチャネルに同一の値が与えられることはない。
設定順位レジスタには、DMA転送が実行された場合の各チャネルの優先順位の設定値が格納される。この設定値としては、最下位の値と、最下位を除く所定の順位の値とが用いられる。
ただし、この設定値も、各チャネルの優先度に応じた値であることが望ましい。即ち、優先度が低いチャネルに対しては最下位の値が与えられ、優先度が高いチャネルに対しては、最下位を除く所定の順位の値が与えられる。
設定順位レジスタに関しては、複数のチャネルに同一の値が与えられることもある。
優先順位レジスタには、各チャネルの優先順位の現在値が格納される。そして、優先順位レジスタに各チャネルの優先順位の現在値が格納されることによって、複数のチャネル夫々に、互いに異なる優先順位が設定される。
このために、DMAコントローラの初期化手段は、例えばDMAコントローラの起動直後、又は前回の一連のDMA転送作業の終了時に、初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として優先順位レジスタに格納する。
さて、受付手段は、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける(受付ステップ)。
転送要求信号を受け付けたチャネルに係るDMA転送の内、最も優先順位が高いチャネルに係るDMA転送を実行する実行ステップの前段階として、第1読出手段は、受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を優先順位レジスタから読み出す。
次に、転送手段が、実行ステップの後段階として、第1読出手段が読み出した優先順位の現在値に応じた順番で、転送要求信号を受け付けたチャネルに係るDMA転送を実行する。
この結果、転送要求信号を受け付けたチャネルが単一である場合は、このチャネルに係るDMA転送が実行されるが、転送要求信号を受け付けたチャネルが複数である場合は、優先順位が高いチャネルに係るDMA転送から順にDMA転送が実行される。
第2読出手段は、転送手段が、受付手段が転送要求信号を受け付けたチャネルに係るDMA転送を実行した場合、DMA転送が実行されたチャネルの優先順位の設定値を設定順位レジスタから読み出し、書換手段は、第2読出手段が読み出した設定値に基づいて、優先順位レジスタに格納される優先順位の現在値を書き換える。
第2読出手段が設定順位レジスタから読み出した設定値が最下位の値である場合、DMA転送が実行されたチャネル(一のチャネル)の優先順位は最下位に設定される(第1設定ステップ)。
一方、第2読出手段が設定順位レジスタから読み出した設定値が、最下位を除く所定の順位の値である場合、DMA転送が実行されたチャネル(他のチャネル)の優先順位は、最下位を除く所定の順位に設定される(第2設定ステップ)。この順位は、DMA転送が実行されたときの順位か、又はDMA転送が実行されたときの順位とは異なる順位である。
ところで、設定順位レジスタには、複数のチャネルに同一の値が与えられることもあるため、第1設定ステップ又は第2設定ステップで優先順位が設定されることによって複数のチャネルに対して同一の優先順位が設定されることがある。
この場合、書換手段は、第1設定ステップ又は第2設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り上げ(又は繰り下げ)ることによって、優先順位レジスタに関し、複数のチャネルに同一の優先順位が設定されることがないよう調整する(調整ステップ)。
このように、優先順位レジスタに格納される値は、DMA転送の実行によって変化し得るが、初期順位レジスタ及び設定順位レジスタ夫々に格納される値は、DMA転送の実行によって変化することはない。
しかも、優先順位レジスタに格納される値は、各チャネルに固定的な不変の値ではなく、また、DMA転送が実行されたチャネルを必ず最下位又は最上位に回すような値でもないため、チャネルの優先度に応じた適切な優先順位が各チャネルに設定されることになる。
第3発明にあっては、初期順位レジスタ及び設定順位レジスタ夫々に格納される値は、例えばDMAコントローラの起動後、一連のDMA転送作業の終了時等に、外部から設定可能である。
第1発明のDMA制御方法及び第2発明のDMAコントローラによる場合、DMA転送が実行されたチャネルに、このチャネルの優先順位として、最下位、又は最下位以外の所定の順位を柔軟に設定することができる。このため、DMA転送が実行されたチャネルに、チャネル毎の固定値が設定されることも、必ず最下位又は最上位の値が設定されることもない。
具体的には、初期順位レジスタ及び設定順位レジスタ夫々に、各チャネルに対応して適切な値を格納しておくことによって、優先順位レジスタに、各チャネルに対応する適切な優先順位の現在値を格納することができる。そして、複数のDMA転送要求を、優先順位レジスタに格納された優先順位の現在値の順番で、即ち適切な順番で処理していくことができる。
この結果、簡易な構成のDMAコントローラを用いて、各チャネルに適切な優先順位を容易に設定することができ、延いては、DMA転送全体の効率を向上することができる。
第3発明のDMAコントローラによる場合、例えばDMAコントローラの起動後、一連のDMA転送作業の終了時等に、次に実行すべきDMA転送の優先度に応じて、初期順位レジスタ及び/又は設定順位レジスタに格納すべき各チャネルの適切な優先順位の値を夫々外部から設定することができる。このため、優先順位レジスタに各チャネルの優先順位の適切な現在値を格納することができ、この結果、各チャネルに更に適切な優先順位を設定することができる。
以下、本発明を、その実施の形態を示す図面に基づいて詳述する。
図1は、本発明に係るDMAコントローラ1の構成を示すブロック図である。
本実施の形態におけるDMAコントローラ1は、9個のチャネルに係るDMA転送を制御すべく、デジタル複合機に組み込まれている。図1は、このデジタル複合機の要部の構成を示すブロック図でもある。
デジタル複合機は、制御中枢としてのプロセッサであるCPU21が、RAM23を作業領域として用いつつ、ROM22に格納されているコンピュータプログラム及びデータに従って、スキャナによる原稿画像の読み取り、プリンタによる原稿画像のコピー出力(プリントアウト)、ファクシミリ通信によるデータの送信、ファクシミリ通信により受信したデータのプリントアウト等の機能を実現する。
CPU21は、ROM22、RAM23、及びDMAコントローラ1に、システムバス51を介して接続されている。
DMAコントローラ1には、データバス52を介して直接的に、SDRAMを用いてなるデータ記憶装置4が接続されている。
また、DMAコントローラ1には、システムバス51を介して直接的に、データの転送を要求する9個の転送要求デバイスとして、データ入出力装置(I/O)31,32,…,39が接続されている。つまり、I/O31,32,…,39とデータ記憶装置4とは直接的に接続されておらず、DMAコントローラ1を介して接続されている。
ここで、データの転送とは、データ記憶装置4に対するデータの書き込み又は読み出しである。
I/O31,32,…,39は、具体的には、データ記憶装置4に対するファクシミリ画像データの書き込み又は読み出しを要求するモデム、スキャナが原稿から読み取ってなる画像データの書き込みを要求する読取用コーデック、プリンタが記録シートに画像を形成すべく用いる画像データの読み出しを要求するプリント用コーデック等である。
データ記憶装置4に対するデータの入出力は、DMAコントローラ1によるDMA転送によってCPU21の介在なしで行われる。
ここで、I/O31に関するデータの転送経路をチャネル(ch)1とする。I/O31は、信号線を介して、DMAコントローラ1へ、ch1に関するデータの転送を要求する転送要求信号dreq1を出力し、dreq1によるDMA転送に応答する転送応答信号ack1をDMAコントローラ1から入力される。ただし、I/O31は、ack1が入力されるまで、dreq1の出力を継続する。
データ記憶装置4へデータを書き込む場合、ack1を入力されたI/O31は、書き込むべきデータをシステムバス51へ出力する。dreq1を入力されたDMAコントローラ1は、システムバス51へ出力されたデータをデータ記憶装置4に書き込む。
データ記憶装置4からデータを読み出す場合、dreq1を入力されたDMAコントローラ1は、読み出すべきデータをデータ記憶装置4から読み出してシステムバス51へ出力する。ack1を入力されたI/O31は、システムバス51へ出力されたデータを受け取る。
I/O31と同様に、ch2,…,9夫々に対応するI/O32,…,39は、dreq2,…,9及びack2,…,9を用いてデータの読み書きを行なう。
次に、DMAコントローラ1の構成を詳述する。
DMAコントローラ1は、各ch1,2,…,9の優先順位の初期値を格納する初期順位レジスタ11と、DMA転送が実行された場合の各ch1,2,…,9の優先順位の設定値を格納する設定順位レジスタ12と、各ch1,2,…,9の優先順位の現在値を格納する優先順位レジスタ13と、優先順位レジスタ13を内蔵する制御部14と、セレクタ15とを備える。
優先順位レジスタ13に優先順位の現在値が格納されることによって、DMAコントローラ1は、夫々に優先順位が設定されている複数のチャネルに係るDMA転送を制御するDMAコントローラとして機能する。
以下に、DMAコントローラ1によるDMA転送について説明する。
DMAコントローラ1の制御部14は信号線を介してI/O31,32,…,39夫々に接続されており、I/O31,32,…,39からdreq1,2,…,9を入力された場合に、ack1,2,…,9をI/O31,32,…,39へ出力することによって、DMA転送を制御する。
このために、制御部14は、所定のタイミングで、初期順位レジスタ11に格納されている優先順位の初期値を、優先順位の現在値として優先順位レジスタ13に格納する。つまり制御部14は、優先順位レジスタ13に格納されている値を初期値に初期化する初期化手段として機能する。
このタイミングは、例えば、優先順位レジスタ13の初期化を指示する指示信号がCPU21から入力された場合である。具体的には、CPU21は、デジタル複合機の電源がオフからオンになった場合、I/O31,32,…,39全部に関するデータ転送が実行されていない場合、所定時刻に達した場合等に制御部14へ指示信号を出力する。
また、制御部14は、I/O31,32,…,39からdreq1,2,…,9を入力されることによって、各ch1,2,…,9に関するデータの転送を要求する転送要求信号を受け付ける受付手段として機能する。
受付手段は、各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付ステップを実行する。
1又は複数のdreqが入力されている場合、制御部14は、入力されているdreqに対応するチャネル(即ち制御部14へdreqを出力しているチャネル)の優先順位の現在値を優先順位レジスタ13から読み出す。つまり制御部14は、受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を優先順位レジスタ13から読み出す第1読出手段として機能する。
制御部14は、優先順位レジスタ13から読み出した優先順位の現在値が最も小さい(優先順位が最も高い)チャネルへ、このチャネルに対応するackを出力し、そして、このチャネルに係るDMA転送を行なう。ここで、ackの出力によって、制御部14に対するdreqの入力は停止する。制御部14へdreqを出力しているチャネルが1個である場合、制御部14がackを出力すべきチャネルは、当然ながらこのチャネルとなる。
制御部14がackを出力したチャネルに係るDMA転送が終了した後で、制御部14は、後述するように優先順位レジスタ13の書き換えを行なう。
優先順位レジスタ13の書き換え後、1又は複数のdreqが制御部14に入力されている場合、制御部14は、入力されているdreqに対応するチャネルの優先順位の現在値を再び優先順位レジスタ13から読み出し、読み出した優先順位の現在値が最も小さいチャネルへ、このチャネルに対応するackを出力し、そして、このチャネルに係るDMA転送を行なう。
優先順位レジスタ13の書き換え後、dreqが制御部14に入力されていない場合、制御部14はdreqが入力されるまで待機する。
つまり、制御部14は、第1読出手段が読み出した優先順位の現在値に応じた順番で、転送要求信号を受け付けたチャネルに係るDMA転送を実行する転送手段として機能する。
以上のように、第1読出手段及び転送手段は、転送要求信号を受け付けたチャネルに係るDMA転送の内、最も優先順位が高いチャネルに係るDMA転送を実行する実行ステップを実行する。
さて、ackを出力した制御部14は、セレクタ15を制御して、データ記憶装置4に対するデータの入出力を行なう。
セレクタ15は、システムバス51及びデータバス52両方に直接的に接続されている。
セレクタ15は、セレクタ15が内蔵するアドレス管理部151に格納されているch1,2,…,9のアドレスに基づいて、チップセレクト信号CS及び読み出し信号RDをデータ記憶装置4へ出力し、データ記憶装置4から読み出したデータを、データバス52、セレクタ15自身及びシステムバス51を介して所要のI/O(I/O31,32,…,39の何れか一つ)へ出力する。同様に、セレクタ15は、チップセレクト信号CS及び書き込み信号WDをデータ記憶装置4へ出力し、I/O31,32,…,39の何れか一つが出力したデータを、システムバス51、セレクタ15自身及びデータバス52を介してデータ記憶装置4に書き込む。
以上のようにしてDMA転送を実行した後、制御部14は、制御部14がackを出力したチャネルの優先順位の設定値を、設定順位レジスタ12から読み出す。つまり、制御部14は、受付手段が転送要求信号を受け付けたチャネルに係るDMA転送を転送手段が実行した場合、DMA転送が実行されたチャネルの優先順位の設定値を設定順位レジスタ12から読み出す第2読出手段として機能する。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。つまり、制御部14は、第2読出手段が読み出した設定値に基づいて、優先順位レジスタ13に格納される優先順位の現在値を書き換える書換手段として機能する。
ところで、デジタル複合機は、図示しない操作パネルを備える。操作パネル51は、デジタル複合機を操作するために設けられた各種のファンクションキー、液晶ディスプレイを利用した表示装置等を備えている。
デジタル複合機のユーザは、この操作パネルを用いてデジタル複合機にデータ(例えば優先順位の初期値及び/又は設定値)を入力する。CPU21は、操作パネルを介して入力されたデータをRAM23に書き込み、また、RAM23から読み出す。
ユーザによって、優先順位の初期値が入力された場合、CPU21は、入力されたデータを初期順位レジスタ11に格納する。同様に、優先順位の設定値が入力された場合、CPU21は、入力されたデータを設定順位レジスタ12に格納する。
即ちユーザは、I/O31,32,…,39に関するデータ転送の優先度に応じて、適切な優先順位の初期値及び設定値を設定することが可能である。
なお、例えばユーザによる優先順位の初期値(及び/又は設定値)の入力がない場合、CPU21は、ROM22に予め記憶されている初期値(及び/又は設定値)を初期順位レジスタ11(及び/又は設定順位レジスタ12)に格納する。
つまり、初期順位レジスタ11及び/又は設定順位レジスタ12に格納すべき各ch1,2,…,9の優先順位の値は、夫々DMAコントローラ1の外部から設定可能であるよう構成されている。
次に、制御部14によって優先順位レジスタ13に格納される優先順位の現在値の書き換えについて詳述する。
図2は、初期順位レジスタ11に格納される優先順位の初期値の一例を示す模式図であり、図3は、設定順位レジスタ12に格納される優先順位の設定値の一例を示す模式図である。
本実施の形態においては9個のチャネルが存在するため、優先順位は最上位の“1”から最下位の“9”までの9個の自然数で示される。
図2に示すように、初期順位レジスタ11には、各ch1,2,…,9に関連付けて、最上位“1”から最下位“9”までの互いに異なる9種類の初期値が格納される。図2には、ch1に関連付けて“1”、ch2に関連付けて“2”、…、ch9に関連付けて“9”が格納されている場合が例示してある。
各ch1,2,…,9に関連付けられる優先順位の初期値は、各ch1,2,…,9の優先度に応じて適切に設定される。つまり、帯域確保のため優先的にDMA転送を実行する必要があるチャネル、使用頻度が高いチャネル等、優先度が高いチャネルには高い優先順位(小さい初期値)が設定される。
また、図3に示すように、設定順位レジスタ12には、各ch1,2,…,9に関連付けて、最上位“1”から最下位“9”までの何れかの値を有する設定値が格納される。各ch1,2,…,9に関連付けられる設定値は、互いに等しくても異なってもよい。ただし、少なくとも1個のチャネルに関連付けて最下位“9”が関連付けられ、少なくとも1個のチャネルに関連付けて、最下位“9”を除く順位が関連付けられる。
最下位“9”が関連付けられるチャネルは優先度が低いチャネルであり、最下位“9”を除く順位が関連付けられるチャネルは優先度が高いチャネルである。また、優先度がより高いチャネルほど、より高い優先度(より小さい設定値)が設定される。
図3には、ch3に関連付けて“4”が格納され、ch3以外のチャネル夫々に関連付けて“9”が格納されている場合が例示してある。つまり、ch3の優先度が高く、ch3以外のチャネルの優先度が低い場合が例示してある。
以下では、ch1,2,3,4に係る転送要求が同時的に発生した場合、即ちI/O31,32,33,34が出力したdreq1,2,3,4がDMAコントローラ1の制御部14に同時的に入力されている場合を例示する。
図4〜図5は、図2及び図3に示すような値が初期順位レジスタ11及び設定順位レジスタ12夫々に格納されている場合に優先順位レジスタ13に格納される優先順位の現在値の遷移の一例を示す模式図であり、図6〜図7は、DMAコントローラ1による優先順位の遷移の一例を示す説明図である。
図4(a)は、優先順位レジスタ13が初期化された直後の優先順位の現在値を示している。このため、図2に示す初期順位レジスタ11に格納されている初期値と同様に、ch1に関連付けて“1”、ch2に関連付けて“2”、…、ch9に関連付けて“9”が格納されている。
制御部14は、入力されているdreq1,2,3,4に対応するチャネルの優先順位の現在値を図4(a)に示す優先順位レジスタ13から読み出す。この場合、ch1の優先順位の現在値が最も小さい“1”であるため、ch1へack1を出力し、そして、ch1に係るDMA転送を行なう。ack1の出力によって、制御部14に対するdreq1の入力は停止する。
ch1に係るDMA転送の終了後、制御部14は、ch1の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“9”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図4(b)に示されている。
図6(a)には、優先順位の順にch1〜ch9が並んでいる状態を示している。優先順位“1”のch1に係るDMA転送が終了した場合、ch1には、設定順位レジスタ12から読み出した優先順位の設定値である“9”が付与される。
ch1に優先順位“9”が付与された時点で、ch1及びch9夫々に同一の優先順位“9”が設定される(優先順位のバッティングが生じる)ため、本実施の形態においては、この時点で優先順位“9”が付与されたch1を優先順位“9”に設定しておき、ch9の優先順位を繰り上げて“8”とする。
同様に、ch8の優先順位を繰り上げて“7”とし、ch7の優先順位を繰り上げて“6”とし、…、ch2の優先順位を繰り上げて“1”とする。
即ち、ch1に係るDMA転送の終了後、ch1〜ch9夫々の優先順位がラウンドロビン方式で設定される。
この結果、図4(b)に示すように、優先順位レジスタ13には、ch1に関連付けて“9”、ch2に関連付けて“1”、ch3に関連付けて“2”、…、ch9に関連付けて“8”が格納される。
優先順位レジスタ13の書き換え後、制御部14は、入力されているdreq2,3,4に対応するチャネルの優先順位の現在値を優先順位レジスタ13から読み出す。この場合、ch2の優先順位の現在値が最も小さい“1”であるため、ch2へack2を出力し、そして、ch2に係るDMA転送を行なう。ack2の出力によって、制御部14に対するdreq2の入力は停止する。
ch2に係るDMA転送の終了後、制御部14は、ch2の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“9”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図4(c)に示されている。
図6(b)には、優先順位“1”のch2に係るDMA転送が終了した場合、ch2に、設定順位レジスタ12から読み出した優先順位の設定値である“9”が付与される状態が示されている。
この場合も、ch1〜ch9夫々の優先順位がラウンドロビン方式で設定され、この結果、図4(c)に示すように、優先順位レジスタ13には、ch1に関連付けて“8”、ch2に関連付けて“9”、ch3に関連付けて“1”、ch4に関連付けて“2”、…、ch9に関連付けて“7”が格納される。
優先順位レジスタ13の書き換え後、制御部14は、入力されているdreq3,4に対応するチャネルの優先順位の現在値を優先順位レジスタ13から読み出す。この場合、ch3の優先順位の現在値が最も小さい“1”であるため、ch3へack3を出力し、そして、ch3に係るDMA転送を行なう。ack3の出力によって、制御部14に対するdreq3の入力は停止する。
ch3に係るDMA転送の終了後、制御部14は、ch3の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“4”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
このとき、制御部14が優先順位レジスタ13に格納されている優先順位の現在値を書き換えた結果が図5(a)に示されている。
図6(c)には、優先順位“1”のch3に係るDMA転送が終了した場合、ch3に、設定順位レジスタ12から読み出した優先順位の設定値である“4”が付与される状態が示されている。
ch3に優先順位“4”が付与された時点で、ch3及びch6夫々に同一の優先順位“4”が設定されるため、本実施の形態においては、この時点で優先順位“4”が付与されたch3を優先順位“4”に設定しておき、ch6の優先順位を繰り上げて“3”とする。
同様に、ch5の優先順位を繰り上げて“2”とし、ch4の優先順位を繰り上げて“1”とする。
即ち、ch1に係るDMA転送の終了後、ch3〜ch6夫々の優先順位がラウンドロビン方式状に設定される。
また、ch7〜ch9及びch1,2夫々は、優先順位のバッティングが生じないため、優先順位の書き換えは行なわれない。
この結果、図5(a)に示すように、優先順位レジスタ13には、ch1に関連付けて“8”、ch2に関連付けて“9”、ch3に関連付けて“4”、ch4に関連付けて“1”、ch5に関連付けて“2”、ch6に関連付けて“3”、ch7に関連付けて“5”、ch8に関連付けて“6”、ch9に関連付けて“7”が格納される。
優先順位レジスタ13の書き換え後、制御部14は、入力されているdreq4に対応するチャネルの優先順位の現在値を優先順位レジスタ13から読み出す。この場合、ch4の優先順位の現在値が最も小さい“1”であるため、ch4へack4を出力し、そして、ch4に係るDMA転送を行なう。ack4の出力によって、制御部14に対するdreq4の入力は停止する。
ch4に係るDMA転送の終了後、制御部14は、ch4の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“9”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図5(b)に示されている。
図7(a)には、優先順位“1”のch4に係るDMA転送が終了した場合、ch4に、設定順位レジスタ12から読み出した優先順位の設定値である優先順位“9”が付与される状態が示されている。
この場合も、ch1〜ch9夫々の優先順位がラウンドロビン方式で設定され、この結果、図5(b)に示すように、優先順位レジスタ13には、ch1に関連付けて“7”、ch2に関連付けて“8”、ch3に関連付けて“3”、ch4に関連付けて“9”、…、ch9に関連付けて“6”が格納される。
この状態で、更に優先順位“1”のch5に係るDMA転送が終了した場合、ch5に、設定順位レジスタ12から読み出した優先順位の設定値である優先順位“9”が付与される状態が図7(b)に示されている。
この場合も、ch1〜ch9夫々の優先順位がラウンドロビン方式で設定される。
以上のようにして、第2読出手段及び書換手段(即ち制御部14)は、設定順位レジスタ12から読み出した優先順位の設定値が優先順位の最下位の値である場合、DMA転送が実行された一のチャネルの優先順位を最下位に設定する第1設定ステップを実行する。
また、第2読出手段及び書換手段は、設定順位レジスタ12から読み出した優先順位の設定値が優先順位の最下位を除く所定の順位の値である場合、DMA転送が実行された他のチャネルの優先順位を、DMA転送が実行されたときの順位又はこの順位とは異なる順位であって、最下位を除く所定の順位に設定する第2設定ステップを実行する。
そして、書換手段である制御部14は、第1設定ステップ又は第2設定ステップで優先順位が設定されることによって複数のチャネルに対して同一の優先順位が設定される場合に、第1設定ステップ又は第2設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り上げる調整ステップを実行する。
なお、例えば第2設定ステップで優先順位が設定されたチャネルの優先順位が最上位である場合、調整ステップにおいて、第2設定ステップで優先順位が設定されたチャネル以外のチャネルの優先順位を繰り下げてもよい。
図8は、設定順位レジスタ12に格納される優先順位の設定値の他の一例を示す模式図である。
図8には、最も優先度が高いch1,2に関連付けて“2”が格納され、次に優先度が高いch5,6に関連付けて“6”が格納され、優先度が低いch3,4に関連付けて“8”が格納され、更に優先度が低いch7,8,9に関連付けて“9”が格納されている場合が例示してある。
以下では、ch1,3,5,9に係る転送要求が同時的に発生した場合、即ちI/O31,33,35,39が出力したdreq1,3,5,9がDMAコントローラ1の制御部14に同時的に入力されている場合を例示する。
図9〜図10は、図2及び図8に示すような値が初期順位レジスタ11及び設定順位レジスタ12夫々に格納されている場合に優先順位レジスタ13に格納される優先順位の現在値の遷移の他の一例を示す模式図である。
図9(a)は、優先順位レジスタ13が初期化された直後の優先順位の現在値を示している。このため、図2に示す初期順位レジスタ11に格納されている初期値と同様に、ch1に関連付けて“1”、ch2に関連付けて“2”、…、ch9に関連付けて“9”が格納されている。
制御部14は、入力されているdreq1,3,5,9に対応するチャネルの優先順位の現在値を図9(a)に示す優先順位レジスタ13から読み出す。この場合、ch1の優先順位の現在値が最も小さい“1”であるため、ch1へack1を出力し、そして、ch1に係るDMA転送を行なう。ack1の出力によって、制御部14に対するdreq1の入力は停止する。
ch1に係るDMA転送の終了後、制御部14は、ch1の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“2”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
即ち、ch1に係るDMA転送の終了後、ch1及びch2夫々の優先順位がラウンドロビン方式状に設定される。ここで、ch3〜ch9夫々は、優先順位のバッティングが生じないため、優先順位の書き換えは行なわれない。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図9(b)に示されている。
優先順位レジスタ13の書き換え後、制御部14は、入力されているdreq3,5,9に対応するチャネルの優先順位の現在値を優先順位レジスタ13から読み出す。この場合、ch3の優先順位の現在値が最も小さい“3”であるため、ch3へack3を出力し、そして、ch3に係るDMA転送を行なう。ack3の出力によって、制御部14に対するdreq3の入力は停止する。
ch3に係るDMA転送の終了後、制御部14は、ch3の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“8”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
即ち、ch3に係るDMA転送の終了後、ch3〜ch8夫々の優先順位がラウンドロビン方式状に設定され、ch1、ch2及びch9夫々の優先順位は変化しない。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図9(c)に示されている。
優先順位レジスタ13の書き換え後、制御部14は、入力されているdreq5,9に対応するチャネルの優先順位の現在値を優先順位レジスタ13から読み出す。この場合、ch5の優先順位の現在値が最も小さい“4”であるため、ch5へack5を出力し、そして、ch5に係るDMA転送を行なう。ack5の出力によって、制御部14に対するdreq5の入力は停止する。
ch5に係るDMA転送の終了後、制御部14は、ch5の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“6”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
即ち、ch5に係るDMA転送の終了後、ch5〜ch7夫々の優先順位がラウンドロビン方式状に設定され、ch1〜ch4及びch8〜ch9夫々の優先順位は変化しない。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図10(a)に示されている。
仮に、ch5に係るDMA転送の終了後(即ち図9(c)の状態で)、設定順位レジスタ12から読み出した優先順位の設定値が“4”である場合、この値と、ch5に関連付けて優先順位レジスタ13に格納されている優先順位の現在値とが等しいため、ch1〜ch9夫々の優先順位は変化しない。つまり、ch1〜ch9夫々の優先順位は固定優先順位方式状に設定される。
優先順位レジスタ13の書き換え後、制御部14は、入力されているdreq9に対応するチャネルの優先順位の現在値を優先順位レジスタ13から読み出す(図10(a))。この場合、ch9の優先順位の現在値が最も小さい“9”であるため、ch9へack9を出力し、そして、ch9に係るDMA転送を行なう。ack9の出力によって、制御部14に対するdreq9の入力は停止する。
ch9に係るDMA転送の終了後、制御部14は、ch9の優先順位の設定値を、設定順位レジスタ12から読み出す。
更に制御部14は、設定順位レジスタ12から読み出した優先順位の設定値“9”に基づいて、優先順位レジスタ13に格納されている優先順位の現在値を書き換える。
しかしながら、設定順位レジスタ12から読み出した優先順位の設定値“9”は、ch9に関連付けて優先順位レジスタ13に格納されている優先順位の現在値“9”に等しいため、ch1〜ch9夫々の優先順位は変化しない。つまり、ch1〜ch9夫々の優先順位は固定優先順位方式状に設定される。
このとき、制御部14が優先順位レジスタ13に格納される優先順位の現在値を書き換えた結果が図10(b)に示されている。
図11及び図12夫々は、設定順位レジスタ12に格納される優先順位の設定値の更に他の一例を示す模式図である。
図11には、ch1,2,3夫々に関連付けて“3”が格納され、更に、ch4に関連付けて“4”、ch5に関連付けて“5”、…、ch9に関連付けて“9”が格納されている場合が例示してある。
図12には、ch1に関連付けて“1”、ch2に関連付けて“2”、ch3に関連付けて“3”が格納され、更に、ch4,5,…,9夫々に関連付けて“9”が格納されている場合が例示してある。
図2及び図11に示すような値が初期順位レジスタ11及び設定順位レジスタ12夫々に格納されている場合、優先順位レジスタ13に格納されるch1,2,3の優先順位の現在値はラウンドロビン方式状に設定され、ch4,5,…,9の優先順位の現在値は、固定優先順位方式状に設定される。
一方、図2及び図12に示すような値が初期順位レジスタ11及び設定順位レジスタ12夫々に格納されている場合、優先順位レジスタ13に格納されるch1,2,3の優先順位の現在値は固定優先順位方式状に設定され、ch4,5,…,9の優先順位の現在値は、ラウンドロビン方式状に設定される。
以上のようなDMA制御方法は、基本的にはラウンドロビン方式状に各チャネルに優先順位を設定するが、DMA転送終了後の優先順位を最下位か、又は最下位以外の順位に設定するため、優先度が高いチャネル、即ち帯域確保のため優先的にDMA転送を実行する必要があるチャネル、使用頻度が高いチャネル等の優先順位が過剰に下がることが抑制される。この結果、システム全体のパフォーマンスが向上される。
しかも、DMA転送終了後の順位はCPU(ホスト)側から各チャネルに対して設定可能であるため、状況に応じて優先順位を適宜に設定することによって、更にシステム全体のパフォーマンスが向上される。
なお、各チャネルに対する設定順位レジスタの設定値を全て最下位の値にした場合は、DMAコントローラはラウンドロビン方式と同様に作動し、全て最上位の値にした場合はLRU方式と同様に作動する。また、各チャネルに対する初期順位レジスタの初期値と設定順位レジスタの設定値とを等しい値にした場合は、DMAコントローラは固定値方式と同様に作動する。
つまり、本発明のDMAコントローラは多様なDMA制御方法に柔軟に対応可能な構成である。
しかしながら、このように制御する場合、本発明のDMAコントローラの構成は、設定順位レジスタを必要とする分だけ、ラウンドロビン方式単独、LRU方式単独、又は固定値単独のDMAコントローラ夫々の構成よりも冗長になりがちである。
即ち、本発明のDMAコントローラは、各チャネルにラウンドロビン方式的に所定の優先順位を設定する本発明のDMA制御方法にて使用する場合に最も効率よく作動する。
また、複数のチャネルに対する設定順位レジスタの設定値を全て最下位の値にし、これらのチャネル以外の複数のチャネルに対する設定順位レジスタの設定値を全て最上位の値にした場合は、DMAコントローラはラウンドロビン方式及びLRU方式を混合したように作動する。ただし、ラウンドロビン方式及びLRU方式を切り換える判定が不要であるため、DMAコントローラの構成は簡易である。
ところで、本実施の形態においては、本発明のDMAコントローラを備え、本発明のDMA制御方法を実施するデジタル複合機を例示したが、これに限定されるものではない。また、チャネルの個数も9個に限るものではない。
本発明に係るDMAコントローラの構成を示すブロック図である。 本発明に係るDMAコントローラが備える初期順位レジスタに格納される優先順位の初期値の一例を示す模式図である。 本発明に係るDMAコントローラが備える設定順位レジスタに格納される優先順位の設定値の一例を示す模式図である。 本発明に係るDMAコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の一例を示す模式図である。 本発明に係るDMAコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の一例を示す模式図である。 本発明に係るDMAコントローラによる優先順位の遷移の一例を示す説明図である。 本発明に係るDMAコントローラによる優先順位の遷移の一例を示す説明図である。 本発明に係るDMAコントローラが備える設定順位レジスタに格納される優先順位の設定値の他の一例を示す模式図である。 本発明に係るDMAコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の他の一例を示す模式図である。 本発明に係るDMAコントローラが備える優先順位レジスタに格納される優先順位の現在値の遷移の他の一例を示す模式図である。 本発明に係るDMAコントローラが備える設定順位レジスタに格納される優先順位の設定値の更に他の一例を示す模式図である。 本発明に係るDMAコントローラが備える設定順位レジスタに格納される優先順位の設定値の更に他の一例を示す模式図である。
符号の説明
1 DMAコントローラ
11 初期順位レジスタ
12 設定順位レジスタ
13 優先順位レジスタ
14 制御部
15 セレクタ
21 CPU
31,32,39 I/O
4 データ記憶装置

Claims (3)

  1. 夫々に優先順位が設定されている複数のチャネルに係るDMA転送を制御すべく、
    各チャネルの優先度に応じて、各チャネルの優先順位の互いに異なる初期値を格納する初期順位レジスタと、
    DMA転送が実行された場合の各チャネルの優先順位の設定値を格納すべく、優先度が低いチャネルに対しては最下位の値を、優先度が高いチャネルに対しては最下位を除く所定の順位の値を夫々格納する設定順位レジスタと、
    各チャネルの優先順位の互いに異なる現在値を格納する優先順位レジスタと
    を備えるDMAコントローラ
    前記初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として前記優先順位レジスタに格納する初期化ステップと、
    各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付ステップと、
    転送要求信号を受け付けたチャネルに係るDMA転送の内、最も優先順位が高いチャネルに係るDMA転送を実行すべく、前記受付ステップで転送要求信号を受け付けたチャネルの優先順位の現在値を前記優先順位レジスタから読み出し、読み出した優先順位の現在値に応じた順番で前記チャネルに係るDMA転送を実行する実行ステップと
    を実行するDMA制御方法であって
    前記DMAコントローラが、
    前記実行ステップで前記チャネルに係るDMA転送を実行した場合、DMA転送が実行されたチャネルの優先順位の設定値を前記設定順位レジスタから読み出す読出ステップと、
    該読出ステップで読み出した設定値が最下位の値である場合、前記チャネルの優先順位を最下位に設定する第1設定ステップと、
    前記読出ステップで読み出した設定値が最下位を除く所定の順位の値である場合、前記チャネルの優先順位を前記所定の順位に設定する第2設定ステップと、
    前記第1設定ステップ又は前記第2設定ステップで優先順位設定ることによって複数のチャネルに対して同一の優先順位が設定される場合に、前記第1設定ステップ又は前記第2設定ステップで優先順位設定たチャネル以外の少なくとも1個のチャネルに設定されている優先順位を該優先順位から所定値ずつ繰り上げ(又は繰り下げ)る調整ステップと、
    前記第1設定ステップ、前記第2設定ステップ、及び/又は前記調整ステップで設定された優先順位に応じて、前記優先順位レジスタに格納される優先順位の現在値を書き換える書換ステップと
    実行することを特徴とするDMA制御方法。
  2. 複数のチャネルに係るDMA転送を制御するDMAコントローラにおいて、
    各チャネルの優先度に応じて、各チャネルの優先順位の互いに異なる初期値を格納する初期順位レジスタと、
    DMA転送が実行された場合の各チャネルの優先順位の設定値を格納すべく、優先度が低いチャネルに対しては最下位の値を、優先度が高いチャネルに対しては最下位を除く所定の順位の値を夫々格納する設定順位レジスタと、
    各チャネルの優先順位の互いに異なる現在値を格納する優先順位レジスタと、
    前記初期順位レジスタに格納されている優先順位の初期値を、優先順位の現在値として前記優先順位レジスタに格納する初期化手段と、
    各チャネルに関するデータの転送を要求する転送要求信号を受け付ける受付手段と、
    該受付手段が転送要求信号を受け付けたチャネルの優先順位の現在値を前記優先順位レジスタから読み出す第1読出手段と、
    該第1読出手段が読み出した優先順位の現在値に応じた順番で前記チャネルに係るDMA転送を実行する転送手段と、
    該転送手段が前記チャネルに係るDMA転送を実行した場合、DMA転送が実行されたチャネルの優先順位の設定値を前記設定順位レジスタから読み出す第2読出手段と、
    該第2読出手段が読み出した設定値が最下位の値である場合、前記チャネルの優先順位を最下位に設定する第1設定手段と、
    前記第2読出手段が読み出した設定値が最下位を除く所定の順位の値である場合、前記チャネルの優先順位を前記所定の順位に設定する第2設定手段と、
    前記第1設定手段又は前記第2設定手段が優先順位を設定することによって複数のチャネルに対して同一の優先順位が設定される場合に、前記第1設定手段又は前記第2設定手段が優先順位を設定したチャネル以外の少なくとも1個のチャネルに設定されている優先順位を該優先順位から所定値ずつ繰り上げ(又は繰り下げ)る調整手段と、
    前記第1設定手段、前記第2設定手段、及び/又は前記調整手段が設定した優先順位に応じて、前記優先順位レジスタに格納される優先順位の現在値を書き換える書換手段と
    を備えることを特徴とするDMAコントローラ。
  3. 前記初期順位レジスタ及び/又は設定順位レジスタに格納すべき各チャネルの優先順位の値が夫々外部から設定可能であることを特徴とする請求項2に記載のDMAコントローラ。
JP2006202105A 2006-07-25 2006-07-25 Dma制御方法及びdmaコントローラ Expired - Fee Related JP4175404B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006202105A JP4175404B2 (ja) 2006-07-25 2006-07-25 Dma制御方法及びdmaコントローラ
US11/782,297 US20080028109A1 (en) 2006-07-25 2007-07-24 Direct memory access control method and direct memory access controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006202105A JP4175404B2 (ja) 2006-07-25 2006-07-25 Dma制御方法及びdmaコントローラ

Publications (2)

Publication Number Publication Date
JP2008027353A JP2008027353A (ja) 2008-02-07
JP4175404B2 true JP4175404B2 (ja) 2008-11-05

Family

ID=38987722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006202105A Expired - Fee Related JP4175404B2 (ja) 2006-07-25 2006-07-25 Dma制御方法及びdmaコントローラ

Country Status (2)

Country Link
US (1) US20080028109A1 (ja)
JP (1) JP4175404B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5225054B2 (ja) * 2008-12-19 2013-07-03 株式会社東芝 Icカード
CN103678204B (zh) * 2013-12-30 2017-02-15 龙芯中科技术有限公司 处理器及数据处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213084B2 (en) * 2003-10-10 2007-05-01 International Business Machines Corporation System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US7249381B2 (en) * 2004-03-29 2007-07-24 Bryte Computer Technologies, Inc. Controller and resource management system and method with improved security for independently controlling and managing a computer system
TWI286693B (en) * 2004-11-12 2007-09-11 Via Tech Inc Method for dynamically adjusting the data transfer order of PCI Express root ports

Also Published As

Publication number Publication date
US20080028109A1 (en) 2008-01-31
JP2008027353A (ja) 2008-02-07

Similar Documents

Publication Publication Date Title
KR100708128B1 (ko) 낸드 플래시 메모리 제어 장치 및 방법
US7724984B2 (en) Image processing apparatus
US9967423B2 (en) Image forming apparatus and method for controlling image forming apparatus
JP5411530B2 (ja) 並列処理プロセッサシステム
JPWO2008117520A1 (ja) メモリコントローラ、不揮発性メモリシステムおよびホスト装置
US7725621B2 (en) Semiconductor device and data transfer method
JP5108578B2 (ja) 画像処理コントローラ及び画像形成装置
JP4640989B2 (ja) 画像処理装置及び画像処理制御方法
JP4175404B2 (ja) Dma制御方法及びdmaコントローラ
JP5173707B2 (ja) 情報処理装置、及びその制御方法
JP2011039849A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP5080318B2 (ja) 画像処理装置及びアクセス制御方法
US8359564B2 (en) Circuit design information generating equipment, function execution system, and memory medium storing program
JP2007223163A (ja) 画像形成装置、画像表示方法
JP2011003060A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
US9667531B2 (en) Image processing apparatus and control method
JP2005182538A (ja) データ転送装置
JP4816272B2 (ja) 画像処理装置及び制御プログラム
JP6357804B2 (ja) 画像処理装置、集積回路、及び画像形成装置
US20160154603A1 (en) Data transfer control device, apparatus including the same, and data transfer control method
JP7006410B2 (ja) 制御装置、画像形成装置および回路装置
JP2014154935A (ja) 再構成可能デバイス、及びそれを備えた画像形成装置
JP4793798B2 (ja) マイクロコンピュータ
JP2015133644A (ja) 画像処理装置、同装置における画像処理方法及び画像処理プログラム
JP5245803B2 (ja) 画像処理装置及び画像処理モジュール

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080526

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

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

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees