以下に、本発明のDMA転送装置の実施形態1、2、4,5および本発明のデータ転送装置の実施形態3、6について、図面を参照しながら詳細に説明する。なお、本発明のDMA転送装置およびデータ転送装置はそれぞれ、例えば携帯型ゲーム機などのように複数種類のデータを扱う電子機器であってもよく、例えば携帯型ゲーム機などのように複数種類のデータを扱う複数の電子機器の間をDMA転送可能とするDMA転送システムおよび、複数の電子機器の間をデータ転送可能とするデータ転送システムや、インターネットやイントラネットなどを介して互いに離れた複数の電子機器間をDMA転送可能とするDMA転送システムおよび、複数の電子機器の間をデータ転送可能とするデータ転送システムであってもよい。
ここで、まず、本発明の実施形態1〜3および4〜6について簡単に説明する。本発明の実施形態1〜3では、データ転送完了後、そのモジュールによる次の転送要求が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のモジュールからのDMA要求が全てなくなるまで抑制される場合について説明する。また、本発明の実施形態4〜6では、データ転送完了後、データ転送が完了したモジュールよりも優先順位が下位にある他のモジュールの中から、優先順位が最も高いモジュールに許可が順次与えられる場合について説明する。これらのいずれの場合にも、複数のモジュールによりデータバスが共有された装置において、より効率良くデータ転送を行い、特定のモジュールによりデータバスが占有され続けることによって生じる不整合を確実に回避する本発明の目的を達成することができる。
(実施形態1)
本実施形態1では、DMA要求に対する許可が与えられたDMAモジュールのDMA転送が完了した後に、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が無くなるまで、次のDMA要求が抑制されることにより、DMAモジュールによるDMA転送が循環され、特許文献1に開示されている従来技術のようにDMAインターバルを大きく設定する必要がなく、各モジュールによるデータバスの使用割合を必要に応じて調整することができる場合について説明する。なお、DMA要求に対する許可が与えられたDMAモジュールのDMA転送が完了した後に、DMA転送が完了したDMAモジュール以外の他のDMAモジュールからのDMA要求が全て無くなるまで、次のDMA要求が抑制するようにしてもよい。この「全てなくなるまで」は、優先順位が高いデータ転送モジュールから順次実行したときのデータ転送要求の有無を検出している。
図1は、本発明の実施形態1に係るDMA転送装置におけるデータバスの接続例を示すブロック図である。
図1において、本実施形態1のDMA転送装置1は、データバス11が複数のDMAモジュール12−0、12−1、・・・12−nと制御手段としてのCPU13に共有されており、各DMAモジュール12−0、12−1、・・・12−nからのDMA要求が競合した場合には、DMAバス調停回路14によって調停が行われ、CPU13からのバス要求とDMAモジュール12−0、12−1、・・・12−nのうちのいずれかからのバス要求が競合した場合には、バス調停回路15によって調停が行われて、CPU13またはDMAモジュール12−0、12−1、・・・12−nの一つがデータバス11のバスマスターとしてバス接続を許可され、そのCPU13またはDMAモジュール12−0、12−1、・・・12−nのいずれかがデータバス11に接続される。
さらに、データバス11には、スレーブブロックとして制御回路16、メモリ制御回路17および外部デバイス制御回路18が接続されており、上記バスマスターとしてデータバス11に接続されたCPU13またはDMAモジュール12−0、12−1、・・・12−nのうちのいずれかによって、制御回路16内に設けられたレジスタ16a、メモリ制御回路17内に設けられたレジスタ17a、メモリ制御回路18によって制御されるメモリ19,20、および外部デバイス制御回路18内に設けられたレジスタ18a間のデータ転送が制御されるように構成されている。
複数のDMAモジュール12−0、12−1、・・・、12−nおよびCPU13からは、それぞれのデータ転送が必要になったタイミングにおいて、データ転送要求が出力される。DMAバス調停回路14においては、複数のDMAモジュール12−0、12−1、・・・、12−nから出力される各データ転送要求(DMA要求)が調停され、DMAバス調停回路14からバス調停回路15に対して、データ転送を許可されたDMAモジュールからのデータ転送要求が出力される。
このバス調停回路15においては、DMAバス調停回路14からのデータ転送要求とCPU13からのバス要求とが調停され、複数のDMAモジュール12−0、12−1、・・・、12−nおよびCPU13のうち、バスマスターとしてデータ転送を許可されたものが、データバス11に接続されてアクセス可能とされる。
本実施形態1のDMA転送装置1においては、図13に示す従来のDMA転送装置100の場合と同様に、優先順位が最も高いモジュール12−0によりデータバス11が占有されることを回避するために、各DMAモジュールによるDMA転送完了後に次のDMA要求が行われるまでの間隔を示すDMAインターバルが設定されている。例えば、DMAインターバル時間は、各DMAモジュール12−0、12−1、・・・、12−n内に設けられたレジスタ12−0a、12−1a、・・・、12−naにそれぞれ設定されている。各DMAモジュール12−0、12−1、・・・、12−nからのDMA要求に対して、DMA転送が許可されてDMA転送の実行が完了された時点から、所定期間のDMAインターバルが経過してから、次のDMA要求が発生される。
さらに、本実施形態1のDMA転送装置1においては、図13に示す従来のDMA転送装置100のように、DMAインターバルが設定されても、さらに優先順位が低いDMAモジュール102−3によるDMA転送を実行できず、DMAモジュール102−3によるDMA転送の実行を可能にするためにDMAインターバルが大きく設定した場合には、どのDMAモジュールからのDMA要求も発生しない無駄な期間が生じるという問題を解決するために、各DMAモジュール12−0、12−1、・・・、12−nからのDMA要求が競合した場合に、DMAバス調停回路14によって、優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可が与えられ、許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまで抑制されるように構成されている。これにより、各DMAモジュール12−0、12−1、・・・、12−nによるデータバス11の使用割合が必要に応じて調整される。
例えば、図1に示すDMAバス調停回路14によって、各DMAモジュール12−1、12−2、・・・、12−nからの各DMA要求の有無が把握されると共に、DMA転送が実行されて終了したDMAモジュールの番号が記憶手段としてのレジスタ14aに保存される。優先順位が高い順に、最後にDMA転送が実行されたDMAモジュールよりも優先順位が上位であるDMAモジュールおよび最後にDMA転送が実行されたDMAモジュールからのDMA要求がマスクされることによって、DMA要求が抑制される。このDMA要求のマスクはDMAインターバルの期間後に行われる。
さらに、DMAバス調停回路14によって、最後にDMA転送が実行されたDMAモジュール以外の他のDMAモジュールからの各DMA要求の有無が調べられる。最後にDMA転送が実行されたDMAモジュールよりも優先順位が下位であるDMAモジュールからの各DMA要求が全てなくなった時点で、最後にDMA転送が実行されたDMAモジュールの番号がクリアされ、全てのDMA要求に対するマスクがクリアされる。
以下に、本実施形態1のDMA転送装置1におけるデータバス11の使用例について、図2のタイミングチャートを用いて説明する。
図2は、上記図1に示す本実施形態1のDMA転送装置1におけるデータバス11の使用例を説明するためのタイミングチャートである。なお、横軸は時間の経過を示し、各波形はDMAモジュール12−0〜12−3からのデータ転送要求(DMA要求)およびDMAモジュール12−0〜12−3によるデータ転送(DMA転送)の実行を示し、矢印はDMAインターバルの期間を示している。また、この事例では、DMAモジュールの優先順位は、DMAモジュール12−0を最も高くし、DMAモジュール12−3を最も低くしている。即ち、
DMAモジュール12−0 > DMAモジュール12−1 > DMAモジュール12−2 > DMAモジュール12−3
とされているものとする。
但し、図2では、DMA要求に対する許可が与えられたDMAモジュールのDMA転送が完了した後に、DMA転送が完了したDMAモジュール以外の他のDMAモジュールからのDMA要求が全て無くなるまで、次のDMA要求が抑制する場合であって、この「全てなくなるまで」は、優先順位が高いデータ転送モジュールから順次実行したときのデータ転送要求の有無を検出している場合を示しているが、ここでは、図2を用いて、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまで抑制されることにより、全てのDMAモジュールによるデータ転送が循環方式により実行される場合について説明する。この場合、図2では、抑制期間(マスク期間)が異なっている。
まず、タイミングaで、DMAモジュール12−3からのデータ転送要求(DMA要求)が発生すると、他のDMAモジュール12−0〜12−2からのデータ転送要求は発生していないため、DMAモジュール12−3によるデータ転送(DMA転送)が許可されて実行される。このDMAモジュール12−3によるデータ転送実行中に、次のタイミングbで、DMAモジュール12−2からのデータ転送要求が発生され、さらに次のタイミングcで、DMAモジュール12−1からの転送要求が発生するが、DMAモジュール12−3によるデータ転送実行中であるため、データ転送実行が許可されずに待たされる。
次に、タイミングdで、DMAモジュール12−3によるデータ転送が完了するが、タイミングfまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−3からのデータ転送要求は発生されない。また、DMAモジュール12−3よりも優先順位が下位のDMAモジュールがないため、DMAバス調停回路14によって全てのDMA要求のマスクがクリアされる。
さらに、タイミングdで、DMAモジュール12−0からのデータ転送要求が発生した時点で、DMAモジュール12−0、DMAモジュール12−1およびDMAモジュール12−2からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が他のものに優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。
その後、タイミングeで、DMAモジュール12−0によるデータ転送が完了するが、タイミングhまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMAモジュール12−0以外の他のDMAモジュール12−1〜12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−0から次のDMA要求が発生されることを抑制するため、タイミングkまでDMAモジュール12−0からのデータ転送要求がマスクされる。
このタイミングeで、DMAモジュール12−0によるデータ転送が完了した時点で、DMAモジュール12−1およびDMAモジュール12−2からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−1が優先され、DMAモジュール12−1によるデータ転送が許可されて実行される。
その後、タイミングgで、DMAモジュール12−1によるデータ転送が完了するが、タイミングjまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−1よりも優先順位が下位にある他のDMAモジュール12−2および12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−1から次のDMA要求が発生されることを抑制するため、タイミングmまでDMAモジュール12−1からのデータ転送要求がマスクされる。
さらに、タイミングgで、DMAモジュール12−1によるデータ転送が完了した時点で、DMAモジュール12−2およびDMAモジュール12−3からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングiで、DMAモジュール12−2によるデータ転送が完了するが、タイミングlまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−2からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−2よりも優先順位が下位にある他のDMAモジュール12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−2から次のDMA要求が発生されることを抑制するため、タイミングoまでDMAモジュール12−2からのデータ転送要求がマスクされる。
さらに、タイミングiで、DMAモジュール12−2によるデータ転送が完了した時点で、DMAモジュール12−3からのデータ転送要求のみが発生されており、他のDMAモジュール12−0〜12−2からのデータ転送要求が発生されていないため、DMAモジュール12−3によるデータ転送が許可されて実行される。
その後、タイミングkで、DMAモジュール12−3によるデータ転送が完了するが、タイミングnまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−3からのデータ転送要求は発生されない。また、DMAモジュール12−3よりも優先順位が下位に他のDMAモジュールがないため、DMAバス調停回路14によって全てのDMA要求のマスクがクリアされる。
さらに、タイミングkで、DMAモジュール12−3によるデータ転送が完了した時点で、DMAモジュール12−0からのデータ転送要求のみが発生しており、他のDMAモジュール12−1〜12−3からのデータ転送要求が発生されていないため、DMAモジュール12−0によるデータ転送が許可されて実行される。
その後、タイミングmで、DMAモジュール12−0によるデータ転送が完了するが、タイミングpまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−0よりも優先順位が下位にある他のDMAモジュール12−1〜12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−0から次のDMA要求が発生されることを抑制するため、さらに加えてタイミングsまでDMAモジュール12−0からのデータ転送要求がマスクされる。
さらに、タイミングmで、DMAモジュール12−0によるデータ転送が完了した時点で、DMAモジュール12−1からのデータ転送要求のみが発生されており、DMAモジュール12−1より優先的に上位の他のDMAモジュール12−0からのデータ転送要求が発生されていないため、DMAモジュール12−1によるデータ転送が許可されて実行される。
その後、タイミングoで、DMAモジュール12−1によるデータ転送が完了するが、タイミングrまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−1よりも優先順位が下位にある他のDMAモジュール12−2および12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−1から次のDMA要求が発生されることを抑制するため、タイミングuまでDMAモジュール12−1からのデータ転送要求がマスクされる。
さらに、タイミングoで、DMAモジュール12−1によるデータ転送が完了した時点で、DMAモジュール12−2およびDMAモジュール12−3からのデータ転送要求が発生されているが、優先順位に従ってDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングqで、DMAモジュール12−2によるデータ転送が完了するが、タイミングtまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−2からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−2よりも優先順位が下位にある他のDMAモジュール12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−2から次のDMA要求が発生されることを抑制するため、DMAモジュール12−2からのデータ転送要求がマスクされる。
さらに、タイミングqで、DMAモジュール12−2によるデータ転送が完了した時点で、DMAモジュール12−3からのデータ転送要求のみが発生されており、他のDMAモジュール12−0〜12−2からのデータ転送要求が発生していないため、DMAモジュール12−3によるデータ転送が許可されて実行される。
その後、タイミングsで、DMAモジュール12−3によるデータ転送が完了するが、タイミングvまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−3からのデータ転送要求は発生されない。また、DMAモジュール12−3よりも優先順位が下位に他のDMAモジュールがないため、DMAバス調停回路14によって全てのDMA要求のマスクがクリアされる。
さらに、タイミングsで、DMAモジュール12−3によるデータ転送が完了した時点で、DMAモジュール12−0からのデータ転送要求のみが発生しており、他のDMAモジュール12−1および12−2からのデータ転送要求が発生していないため、DMAモジュール12−0によるデータ転送が許可されて実行される。その後、タイミングuで、DMAモジュール12−0によるデータ転送が完了する。また、DMAモジュール12−0以外の他のDMAモジュール12−1〜12−3からのDMA要求がなくなるまで、DMAバス調停回路14によって、DMAモジュール12−0から次のDMA要求が発生されることを抑制するため、DMAモジュール12−0からのデータ転送要求がマスクされる。
以上のように、本実施形態1のDMA転送装置1によれば、DMA要求に対する許可が与えられたモジュールによるDMA転送が完了された後に、次のDMA要求が行われるまでの間隔を示すDMAインターバルの期間(矢印で示す期間)が設定され、さらに、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が無くなるまで次のDMA要求の発生が抑制される。これによって、優先順位が最も高いDMAモジュール12−0によりデータバスが占有され続けることなく、これよりも優先順位が低いDMAモジュール12−1およびDMAモジュール12−2によるDMA転送を実行することが可能とされ、さらに優先順位が低いDMAモジュール12−3によるDMA転送を実行することも可能となる。さらに、特許文献1に開示されている従来技術のように、DMAモジュール12−3によるDMA転送を実行可能とするためにDMAインターバルを大きく設定する必要がない。よって、各DMAモジュールにおいて必要に応じてDMAインターバルを設定することにより、各DMAモジュールによるデータバスの使用割合を必要に応じて調整することが可能になり、どのDMAモジュールからのDMA要求も発生しない無駄な期間が生じるという問題を防ぐことができる。
(実施形態2)
本実施形態2では、各DMAモジュールによるDMA転送が一巡する時点で、CPUからのバス要求がある場合に、CPUによる転送処理を実行可能な期間を示すCPUサイクルの期間を含めて、次のDMA要求が抑制されることにより、各DMAモジュールおよびCPUによるデータバスの使用割合を必要に応じて調整することが可能になり、CPUにより転送処理を実行可能なサイクルを明確に把握して要求することができる場合について説明する。
図3は、本発明の実施形態2に係るDMA転送装置におけるデータバスの接続例を示すブロック図である。なお、図1のDMA転送装置の作用効果と同一の作用効果を相する部材には同一の符号を付する。
図3において、本実施形態2のDMA転送装置2は、図1に示す実施形態1のDMA転送装置1の場合と同様に、データバス11が複数のDMAモジュール12−0、12−1、・・・、12−nおよびCPU13に共有されたDMA転送装置であって、各DMAモジュール12−0、12−1、・・・、12−nによるDMA転送完了後に次のDMA要求が行われるまでの間隔を示すDMAインターバルが、各DMAモジュール12−0、12−1、・・・、12−n内に設けられたレジスタ12−0a、12−1a、・・・、12−naに設定されている。
また、通常、CPU13からは、常にバス要求が出力されているが、各DMAモジュール12−0、12−1、・・・、12−nよりも優先順位が低く、CPU13によるデータ転送処理を実行可能なサイクルを明確に把握して要求することが困難であるため、本実施形態2のDMA転送装置2では、このCPUサイクルが、DMAバス調停回路14A内に設けられたレジスタ14aに設定されている。各DMAモジュール12−0、12−1、・・・、12−nからのDMA要求が競合した場合には、DMAバス調停回路14Aによって、優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可が与えられ、許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、他のDMAモジュールからのDMA要求が全てなくなるまで抑制される。各DMAモジュール12−0、12−1、・・・、12−nによるDMA転送が一巡した時点でCPU13からのバス要求がある場合には、CPUサイクルの期間だけ、次のDMA要求の発生が抑制されるように構成されている。これにより、各DMAモジュール12−0、12−1、・・・、12−nおよびCPU13によるデータバスの使用割合が必要に応じて調整される。
以下に、本実施形態2のDMA転送装置2におけるデータバス11の使用例について、図4のタイミングチャートを用いて説明する。
図4は、上記図1に示す本実施形態2のDMA転送装置2におけるデータバスの使用例を説明するためのタイミングチャートである。なお、横軸は時間の経過を示し、各波形はDMAモジュール12−0〜12−2からのデータ転送要求(DMA要求)とCPU13からのバス要求(CPU要求)およびDMAモジュール12−0〜12−2によるデータ転送(DMA転送)とCPU13によるデータ転送の実行を示し、矢印はDMAインターバルの期間およびCPUサイクルの期間を示している。
ここでは、DMAモジュール12−0〜12−2およびCPU13の優先順位は、DMAモジュール12−0の優先順位が最も高く、CPU13の優先順位が最も低く設定されている。即ち、
DMAモジュール12−0 > DMAモジュール12−1 > DMAモジュール12−2 > CPU13
とされているものとする。
但し、図4では、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、DMA転送が完了したDMAモジュール以外の他のDMAモジュールからのDMA要求が全てなくなるまで抑制されることにより、全ての各DMAモジュール12−0〜12−2およびCPU13によるデータ転送が循環方式により実行される。さらに、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、CPUサイクルの期間だけ、次のDMA要求の発生が抑制される場合を示しているが、ここでは、図4を用いて、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、優先順位がより低い他のDMAモジュールからのDMA要求が全てなくなるまで抑制されることにより、全ての各DMAモジュール12−0〜12−2およびCPU13によるデータ転送が循環方式により実行される。さらに、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合には、CPUサイクルの期間だけ、次のDMA要求の発生が抑制される。例えば、各DMAモジュール12−0〜12−2の実行の循環が一巡した時点で、CPU13からのバス要求がある場合には、全てのDMAモジュール12−0〜12−2からのDMA要求がマスクされた状態がCPUサイクルの期間だけ保持された後、全てのDMAモジュール12−0〜12−2からのDMA要求のマスクがクリアされる。この場合、図4では、抑制期間(マスク期間)が異なっている。
まず、タイミングaで、CPU13からのデータ転送要求(バス要求)が発生すると、他のDMAモジュール12−0〜12−2からのデータ転送要求が発生されていないため、CPU13によるデータ転送が許可されて実行される。CPU13によるデータ転送実行中に、タイミングbで、DMAモジュール12−2からのデータ転送要求(DMA要求)が発生し、タイミングcで、DMAモジュール12−1からのデータ転送要求が発生するが、タイミングdまではCPUサイクルの期間であるため、データ転送実行が許可されずに待たされる。その後、タイミングdで、CPUサイクルの期間が完了すると、DMAバス調停回路14によって全てのDMA要求のマスクがクリアされる。
さらに、タイミングdで、DMAモジュール12−0からのデータ転送要求が発生した時点で、DMAモジュール12−0、DMAモジュール12−1、DMAモジュール12−2およびCPU13からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。
その後、タイミングeで、DMAモジュール12−0によるデータ転送が完了するが、タイミングhまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−0よりも優先順位が下位にある(DMAモジュール12−0以外の)他のDMAモジュール12−1,12−2からのDMA要求およびCPU13からのデータ転送要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−0から次のDMA要求が発生することを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、CPUサイクルの期間だけ、次のDMA要求が発生することを抑制するために、タイミングkまでDMAモジュール12−0からのデータ転送要求がマスクされる。
さらに、タイミングeで、DMAモジュール12−0によるデータ転送が完了した時点で、DMAモジュール12−1、DMAモジュール12−2およびCPU13からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−1が優先され、DMAモジュール12−1によるデータ転送が許可されて実行される。
その後、タイミングgで、DMAモジュール12−1によるデータ転送が完了するが、タイミングjまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−1よりも優先順位が下位にある他のDMAモジュール12−0および12−2、およびCPU13からのからのDMA要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−1から次のDMA要求が発生されることを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、CPUサイクルの期間だけ、次のDMA要求が発生されることを抑制するために、タイミングmまでDMAモジュール1からのデータ転送要求がマスクされる。
さらに、タイミングgで、DMAモジュール12−1によるデータ転送が完了した時点で、DMAモジュール12−2およびCPU13からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングiでDMAモジュール12−2によるデータ転送が完了するが、タイミングlまでのDMAインターバルの期間(矢印で示す期間)は、DMAモジュール12−2からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−2よりも優先順位が下位にある他のDMAモジュール12−0および12−1、およびCPU13からのからのDMA要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−2から次のDMA要求が発生することを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、所定のCPUサイクルの期間だけ、次のDMA要求が発生することを抑制するために、タイミングoまでDMAモジュール12−2からのデータ転送要求がマスクされる。
さらに、このタイミングiで、DMAモジュール12−2によるデータ転送が完了した時点で、CPU13からのデータ転送要求のみが発生されているため、CPU13によるデータ転送が許可されて実行される。
その後、タイミングkで、優先順位の最も低いCPUサイクルの期間が完了すると、DMAバス調停回路14Aによって全てのDMA要求のマスクがクリアされる。
さらに、タイミングkで、CPU13によるデータ転送が完了した時点で、DMAモジュール12−0およびCPU13からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が優先され、DMAモジュール12−0によるデータ転送が許可されて実行される。
その後、タイミングmで、DMAモジュール12−0によるデータ転送が完了するが、タイミングpまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−0よりも優先順位が下位にある他のDMAモジュール12−1および12−2からのDMA要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−0から次のDMA要求が発生されることを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、そのCPUサイクルの期間だけ、次のDMA要求が発生することを抑制するために、タイミングsまでDMAモジュール12−0からのデータ転送要求がマスクされる。
さらに、タイミングmで、DMAモジュール12−0によるデータ転送が完了した時点で、DMAモジュール12−1および12−2、およびCPU13からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−1が優先され、DMAモジュール12−1によるデータ転送が許可されて実行される。
その後、タイミングoで、DMAモジュール12−1によるデータ転送が完了するが、タイミングrまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−1よりも優先順位が下位にある他のDMAモジュール12−0および12−2、およびCPU13からのDMA要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−1から次のDMA要求が発生されることを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、そのCPUサイクルの期間だけ、次のDMA要求が発生されることを抑制するために、タイミングuまでDMAモジュール12−1からのデータ転送要求がマスクされる。
さらに、タイミングoで、DMAモジュール12−1によるデータ転送が完了した時点で、DMAモジュール12−2およびCPU13からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングqで、DMAモジュール12−2によるデータ転送が完了するが、タイミングtまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−2からのデータ転送要求は発生されない。また、DMA転送が完了したDMAモジュール12−2よりも優先順位が下位にある他のDMAモジュール12−0および12−1、およびCPU13からのからのDMA要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−2から次のDMA要求が発生することを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、所定のCPUサイクルの期間だけ、次のDMA要求が発生することを抑制するために、タイミングoまでDMAモジュール12−2からのデータ転送要求がマスクされる。
さらに、タイミングqで、DMAモジュール12−2によるデータ転送が完了した時点で、CPU13からのデータ転送要求のみが発生されているため、CPU13によるデータ転送が許可されて実行される。
その後、タイミングkで、優先順位の最も低いCPUサイクルの期間が完了すると、DMAバス調停回路14Aによって全てのDMA要求のマスクがクリアされる。
さらに、タイミングsで、CPU13によるデータ転送が完了した時点で、DMAモジュール12−0およびCPU13からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が優先され、DMAモジュール12−0によるデータ転送が許可されて実行される。その後、タイミングuで、DMAモジュール12−0によるデータ転送が完了される。また、DMA転送が完了したDMAモジュール12−0よりも優先順位が下位にある他のDMAモジュール12−1および12−2、CPU13からのDMA要求がなくなるまで、DMAバス調停回路14Aによって、DMAモジュール12−0から次のDMA要求が発生することを抑制し、各DMAモジュール12−0〜12−2によるDMA転送が一巡した時点でCPU13からのバス要求がある場合に、そのCPUサイクルの期間だけ、次のDMA要求が発生されることを抑制するために、DMAモジュール12−0からのデータ転送要求がマスクされる。
以上のように、本実施形態2のDMA転送装置2によれば、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送が完了した後に、次のDMA要求が行われるまでの間隔を示すDMAインターバル(図4で矢印で示す期間)が設定され、さらに、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールなどからのDMA要求が無くなるまで次のDMA要求の発生が抑制される。これにより、優先順位が高いDMAモジュール12−0によりデータバスが占有され続けることがなくなり、DMAモジュール12−0以外のDMAモジュール12−1およびDMAモジュール12−2によるDMA転送を順次実行することが可能となる。さらに、優先順位が低いCPU13によるDMA転送を実行可能となる。DMA転送を実行可能とするためにDMAインターバルを大きく設定する必要がないため、各DMAモジュールにおいて必要に応じてDMAインターバルを設定することにより、各DMAモジュールによるデータバスの使用割合を必要に応じて調整することが可能になり、どのDMAモジュールからのDMA要求も発生しない無駄な期間が生じるという問題を防ぐことができる。さらに、CPU13によるデータ転送処理を実行可能なCPUサイクルが設定されているため、CPUサイクルを明確に把握してDMAバス調停回路14Aに要求することが可能になる。
(実施形態3)
本実施形態3では、各データ転送モジュールからのデータ転送要求が競合した場合に、データ転送バス調停手段によって、優先順位が高いデータ転送モジュールからのデータ転送要求に対してデータ転送の許可が与えられ、許可が与えられたデータ転送モジュールによるデータ転送の完了後、データ転送インターバル後に行われる次のデータ転送要求が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のデータ転送モジュールからのデータ転送要求が全てなくなるまで抑制されている場合について説明する。なお、データ転送インターバル後に行われる次のデータ転送要求が、DMA転送が完了したDMAモジュール以外の他のデータ転送モジュールからのデータ転送要求が全てなくなるまで抑制されていてもよい。この「全てなくなるまで」は、優先順位が高いデータ転送モジュールから順次実行したときのデータ転送要求の有無を検出している。
図5は、本発明の実施形態3に係るデータ転送装置におけるデータバスの接続例を示すブロック図である。
図5において、本実施形態3のデータ転送装置3は、CPUに接続されていないデータ転送専用バスであるデータバス21が複数のDTC(データ転送回路)モジュール22−0、22−1、・・・、22−n(nは0以上の整数)に共有されており、各DTCモジュール22−0、22−1、・・・、22−nからのデータ転送要求が競合した場合には、DTCバス調停回路24によって調停が行われて、各DTCモジュール22−0、22−1、・・・、22−nのうちの一つがデータ転送専用バス21にバス接続を許可されて接続される。
また、データ転送専用バスのデータバス21には、前述した通り、制御回路16、メモリ制御回路17および外部デバイス制御回路18が接続されており、データ転送専用バス21に接続された上記各DTCモジュール22−0、22−1、・・・、22−nによって、制御回路16内に設けられたレジスタ16a、メモリ制御回路17に設けられたレジスタ17a、メモリ制御回路17によって制御されるメモリ19,20、および外部デバイス制御回路18内に設けられたレジスタ18aとの間のデータ転送が制御されるように構成されている。
複数のDTCモジュール22−0、22−1、・・・、22−nからは、それぞれのデータ転送が必要になったタイミングにおいて、データ転送要求が出力される。DTCバス調停回路24においては、複数のDTCモジュール22−0、22−1、・・・、22−nから出力されるデータ転送要求が調停され、複数のDTCモジュール22−0、22−1、・・・、22−nのうち、データ転送を許可されたものが、データバス21を介してアクセス可能とされる。
本実施形態3のデータ転送装置3では、優先順位が高いデータ転送モジュールによりデータバス21が占有されることを回避するために、各DMAモジュール22−0、22−1、・・・、22−nによるデータ転送完了後に次のデータ転送要求が行われるまでの間隔を示すデータ転送インターバルの期間(図6に矢印で示した期間)が設定されている。例えば、データ転送インターバル期間は、各DMAモジュール22−0、22−1、・・・、22−n内にそれぞれ設けられた各レジスタ22−0a、22−1a、・・・、22−naにそれぞれ設定されている。各DTCモジュール22−0、22−1、・・・、22−nからのデータ転送要求に対して、データ転送が許可されてデータ転送の実行が完了した時点からデータ転送インターバルが経過してから、次のDMA要求が発生される。
前述したように、従来は、データ転送インターバルが設定されても、さらに優先順位が低いDTCモジュールによるデータ転送を実行できず、そのDTCモジュールによるデータ転送の実行を可能にするためにDTCインターバルが大きく設定された場合にはどのDTCモジュールから複数のデータ転送要求も発生しない無駄な期間が生じる。これを解決するために、本実施形態3のデータ転送装置3では、各DTCモジュール22−0、22−1、・・・、22−nからのDTC要求が競合した場合に、DTCバス調停回路24によって、優先順位が高いDTCモジュールからのデータ転送要求に対してデータ転送の許可が与えられ、許可が与えられたDTCモジュールによるデータ転送の完了後、データ転送インターバル後に行われる次のデータ転送要求の発生が、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールからのデータ転送要求が全てなくなるまで抑制されるように構成されている。これにより、各DTCモジュール22−0、22−1、・・・、22−nによるデータバス21の使用割合が必要に応じて調整される。
以下に、本実施形態3のデータ転送装置3におけるデータ転送専用バス(データバス21)の使用例について、図6のタイミングチャートを用いて説明する。
図6は、上記図5に示す本実施形態3のデータ転送装置3におけるデータ転送専用バス(データバス21)の使用例を説明するためのタイミングチャートである。なお、横軸は時間の経過を示し、各波形はDTCモジュール22−0〜22−3からのデータ転送要求(DTC要求)およびDTCモジュール22−0〜22−3によるデータ転送(DTC転送)の実行を示し、矢印はデータ転送インターバルの期間を示している。
この事例では、各DTCモジュール22−0〜22−3の優先順位は、DTCモジュール22−0の優先順位が最も高く、DTCモジュール22−3の優先順位が最も低い。即ち、
DTCモジュール22−0 > DTCモジュール22−1 > DTCモジュール22−2 > DTCモジュール22−3
とされているものとする。
但し、図6では、データ転送要求に対する許可が与えられた各DTCモジュールによるデータ転送の完了後、データ転送インターバル後に行われる次のデータ転送要求の発生が、DTC転送が完了したDTCモジュール以外の他のDTCモジュールからのデータ転送要求が全てなくなるまで抑制される場合について説明するが、ここでは、図6を用いて、データ転送要求に対する許可が与えられた各DTCモジュールによるデータ転送の完了後、データ転送インターバル後に行われる次のデータ転送要求の発生が、DTC転送が完了したDTCモジュールよりも優先順位が下位にある他のDTCモジュールからのデータ転送要求が全てなくなるまで抑制されることにより、全てのDTCモジュール22−0〜22−3によるデータ転送が循環方式により実行される場合について説明する。この場合、図6では、抑制期間(マスク期間)が異なっている。
まず、タイミングaで、DTCモジュール22−3からのデータ転送要求が発生すると、他のDTCモジュール22−0〜22−2からのデータ転送要求が発生していないため、DTCモジュール22−3によるデータ転送が許可されて実行される。DTCモジュール22−3によるデータ転送実行中に、タイミングbで、DTCモジュール22−2からのデータ転送要求が発生し、タイミングcで、DTCモジュール22−1からの転送要求が発生するが、DTCモジュール22−3によるデータ転送実行中であるため、データ転送実行が許可されずに待たされる。
次に、タイミングdで、DTCモジュール22−3によるデータ転送が完了するが、タイミングfまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−3からのデータ転送要求は発生されない。また、DTCモジュール22−3よりも優先順位が下位である他のDTCモジュールがないため、DTCバス調停回路24によって全てのデータ転送要求のマスクがクリアされる。
さらに、タイミングdで、DTCモジュール22−0からのデータ転送要求が発生した時点で、DTCモジュール22−0、DTCモジュール22−1およびDTCモジュール22−2からのデータ転送要求がそれぞれ発生しているが、優先順位に従ってDTCモジュール22−0が優先され、DTCモジュール22−0からのデータ転送が許可されて実行される。
その後、タイミングeで、DTCモジュール22−0によるデータ転送が完了するが、タイミングhまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−0からのデータ転送要求は発生されない。また、DTCモジュール22−0よりも優先順位が下位にある他のDTCモジュール22−1〜22−3からのDTC要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−0から次のデータ転送要求が発生されることを抑制するため、タイミングkまでDTCモジュール22−0からのデータ転送要求がマスクされる。
さらに、タイミングeで、DTCモジュール22−0によるデータ転送が完了した時点で、DTCモジュール22−1およびDTCモジュール22−2からの各データ転送要求が発生されているが、優先順位に従ってDTCモジュール22−1が優先され、DTCモジュール22−1によるデータ転送が許可されて実行される。
その後、タイミングgで、DTCモジュール22ー1によるデータ転送が完了するが、タイミングjまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−1からのデータ転送要求は発生されない。また、DTCモジュール22−1よりも優先順位が下位にある他のDTCモジュール22−2および22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−1から次のデータ転送要求が発生することを抑制するため、タイミングmまでDTCモジュール22−1からのデータ転送要求がマスクされる。
さらに、タイミングgで、DTCモジュール22−1によるデータ転送が完了した時点で、DTCモジュール22−2およびDTCモジュール22−3からの各データ転送要求が発生しているが、優先順位に従ってDTCモジュール22−2が優先され、DTCモジュール22−2によるデータ転送が許可されて実行される。
その後、タイミングiで、DTCモジュール22−2によるデータ転送が完了するが、タイミングlまでのDTCインターバルの期間(矢印で示す期間)はDTCモジュール22−2からのデータ転送要求は発生されない。また、DTCモジュール22ー2よりも優先順位が下位にある他のDTCモジュール22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−2から次のデータ転送要求が発生することを抑制するため、タイミングoまでDTCモジュール22−2からのデータ転送要求がマスクされる。
さらに、タイミングiで、DTCモジュール22−2によるデータ転送が完了した時点で、DTCモジュール22−3からのデータ転送要求のみが発生しており、その以外のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−3によるデータ転送が許可されて実行される。
その後、タイミングkで、DTCモジュール22−3によるデータ転送が完了するが、タイミングnまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−3からのデータ転送要求は発生されない。また、DTCモジュール22−3よりも優先順位が下位にある他のDTCモジュールがないため、DTCバス調停回路24によって全てのデータ転送要求のマスクがクリアされる。
さらに、タイミングkで、DTCモジュール22−3によるデータ転送が完了した時点で、DTCモジュール22−0からのデータ転送要求のみが発生しており、他のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−0によるデータ転送が許可されて実行される。
その後、タイミングmで、DTCモジュール22−0によるデータ転送が完了するが、タイミングpまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−0からのデータ転送要求は発生されない。また、DTCモジュール22ー0よりも優先順位が下位にある他のDTCモジュール22−1〜22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−0から次のデータ転送要求が発生されることを抑制するため、タイミングsまでDTCモジュール22−0からのデータ転送要求がマスクされる。
さらに、タイミングmで、DTCモジュール22−0によるデータ転送が完了した時点で、DTCモジュール22−1からのデータ転送要求のみが発生されており、DTCモジュール22−1以外の他のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−1によるデータ転送が許可されて実行される。
その後、タイミングoで、DTCモジュール22−1によるデータ転送が完了するが、タイミングrまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−1からのデータ転送要求は発生されない。また、DTCモジュール22−1よりも優先順位が下位である他のDTCモジュール22−2および22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−1から次のデータ転送要求が発生されることを抑制するため、タイミングuまでDTCモジュール22−1からのデータ転送要求がマスクされる。
さらに、タイミングoで、DTCモジュール22−1によるデータ転送が完了した時点で、DTCモジュール22−2およびDTCモジュール22−3からのデータ転送要求が発生しているが、優先順位に従ってDTCモジュール22−2が優先され、DTCモジュール22−2によるデータ転送が許可されて実行される。
その後、タイミングqで、DTCモジュール22−2によるデータ転送が完了するが、タイミングtまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−2からのデータ転送要求は発生されない。また、DTCモジュール22−2よりも優先順位が下位にある他のDTCモジュール22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−2から次のデータ転送要求が発生されることを抑制するため、DTCモジュール22−2からのデータ転送要求がマスクされる。
さらに、タイミングqで、DTCモジュール22−2によるデータ転送が完了した時点で、DTCモジュール22−3からのデータ転送要求のみが発生されており、DTCモジュール22−3以外の他のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−3によるデータ転送が許可されて実行される。
その後、タイミングsで、DTCモジュール22−3によるデータ転送が完了するが、タイミングvまでのDMAインターバルの期間(矢印で示す期間)はDTCモジュール22−3からのデータ転送要求は発生されない。
さらに、タイミングsで、DTCモジュール22−3によるデータ転送が完了した時点で、DTCモジュール22−0からのデータ転送要求のみが発生されており、他のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−0によるデータ転送が許可されて実行される。その後、タイミングuで、DTCモジュール22−0によるデータ転送が完了する。また、DTCモジュール22−0よりも優先順位が下位にある他のDTCモジュール22−1〜22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24によって、DTCモジュール22−0から次のデータ転送要求が発生されることを抑制するため、DTCモジュール22−0からのデータ転送要求がマスクされる。
以上のように、本実施形態3のデータ転送装置3によれば、データ転送要求に対する許可が与えられたDTCモジュールによるデータ転送が完了した後に、次のデータ転送要求が行われるまでの間隔を示すデータ転送インターバルが設定され、さらに、DTCモジュール22−0よりも優先順位が下位にある他のDTCモジュールからのデータ転送要求が無くなるまで次のデータ転送要求の発生が抑制される。これにより、優先順位が最も高いDTCモジュール22−0によりデータバス21が占有され続けることなく、これよりも優先順位が低いDTCモジュール22−1およびDTCモジュール22−2によるデータ転送を実行することが可能とされ、さらに優先順位が低いDTCモジュール22−3によるデータ転送を実行することも可能となる。さらに、DTCモジュール22−3によるデータ転送を実行可能とするためにDMAインターバルを必要以上に大きく設定する必要がないため、各DTCモジュールにおいて必要に応じてデータ転送インターバルを設定することにより、各DTCモジュールによるデータ転送専用バス(データバス)の使用割合を必要に応じて調整することが可能になり、どのDTCモジュールからのデータ転送要求も発生しない無駄な期間が生じるという問題を防ぐことができる。
(実施形態4)
本実施形態4では、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまで、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールの中から、優先順位が最も高いDMAモジュールに許可を順次与えてそれぞれ実行させる場合について説明する。
図7は、本発明の実施形態4に係るDMA転送装置におけるデータバスの接続例を示すブロック図である。
図7において、本実施形態1のDMA転送装置4は、データバス11が複数のDMAモジュール12−0、12−1、・・・12−nと、制御手段としてのCPU13とに共有されており、各DMAモジュール12−0、12−1、・・・12−nからのDMA要求が競合した場合には、DMAバス調停回路14Bによって調停が行われ、CPU13からのバス要求とDMAモジュール12−0、12−1、・・・12−nのうちのいずれかからのバス要求が競合した場合には、バス調停回路15によって調停が行われて、CPU13またはDMAモジュール12−0、12−1、・・・12−nの一つがデータバス11のバスマスターとしてバス接続を許可され、そのCPU13またはDMAモジュール12−0、12−1、・・・12−nのいずれかがデータバス11に接続される。
さらに、データバス11には、スレーブブロックとして制御回路16、メモリ制御回路17および外部デバイス制御回路18が接続されており、上記バスマスターとしてデータバス11に接続されたCPU13またはDMAモジュール12−0、12−1、・・・12−nのうちのいずれかによって、制御回路16内に設けられたレジスタ16a、メモリ制御回路17内に設けられたレジスタ17a、メモリ制御回路18によって制御されるメモリ19,20、および外部デバイス制御回路18内に設けられたレジスタ18a間のデータ転送が制御されるように構成されている。
複数のDMAモジュール12−0、12−1、・・・、12−nおよびCPU13からは、それぞれのデータ転送が必要になったタイミングにおいて、データ転送要求が出力される。DMAバス調停回路14Bにおいては、複数のDMAモジュール12−0、12−1、・・・、12−nから出力される各データ転送要求(DMA要求)が調停され、DMAバス調停回路14Bからバス調停回路15に対して、データ転送を許可されたDMAモジュールからのデータ転送要求が出力される。
このバス調停回路15においては、DMAバス調停回路14Bからのデータ転送要求とCPU13からのバス要求とが調停され、複数のDMAモジュール12−0、12−1、・・・、12−nおよびCPU13のうち、バスマスターとしてデータ転送を許可されたものが、データバス11に接続されてアクセス可能とされる。
本実施形態1のDMA転送装置1においては、図13に示す従来のDMA転送装置100の場合と同様に、優先順位が最も高いモジュール12−0によりデータバス11が占有されることを回避するために、各DMAモジュール12−0、12−1、・・・、12−nのいずれかによるDMA転送完了後に次のDMA要求が行われるまでの間隔を示すDMAインターバルの期間が設定されている。例えば、DMAインターバル期間は、各DMAモジュール12−0、12−1、・・・、12−n内に設けられた記憶手段としてのレジスタ12−0b、12−1b、・・・、12−nbにそれぞれ設定されている。各DMAモジュール12−0、12−1、・・・、12−nからのDMA要求に対して、DMA転送が許可されてDMA転送の実行が完了された時点からDMAインターバルが経過されてから、次のDMA要求が発生される。
さらに、本実施形態4のDMA転送装置4においては、図13に示す従来のDMA転送装置100のように、所定期間のDMAインターバルが設定されても、さらに優先順位が低い例えばDMAモジュール102−3によるDMA転送を実行できず、DMAモジュール102−3によるDMA転送の実行を可能にするためにDMAインターバルが大きく設定した場合には、どのDMAモジュールからのDMA要求も発生しない無駄な期間が生じるという問題を解決するために、各DMAモジュール12−0、12−1、・・・、12−nからのDMA要求が競合した場合に、DMAバス調停回路14Bによって、優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可が与えられ、許可が与えられたDMAモジュールによるDMA転送の完了後、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからの各DMA要求が全てなくなるまで、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールの中から、優先順位が高いDMAモジュールに許可が順次与えられて実行される。これにより、各DMAモジュール12−0、12−1、・・・、12−nによるデータバス11の使用割合が調整される。
つまり、DMAバス調停回路14Bによって、DMA転送が実行されて終了したDMAモジュールの番号が記憶手段としてのレジスタ14bに保存される。最後にDMA転送が実行されたDMAモジュールよりも優先順位が下位にある他のDMAモジュール(レジスタ14bに保存されたモジュール番号を基準にして次の番号から求められたDMAモジュール)からの各DMA要求の有無が調べられる。その最後にDMA転送が実行されたDMAモジュールよりも優先順位が下位にある他のDMAモジュールからの各DMA要求が全てなくなった時点で、最後にDMA転送が実行されたDMAモジュールの番号がリセットされ、最初の状態に戻る。
以下に、本実施形態4のDMA転送装置4におけるデータバス11の使用例について、図8のタイミングチャートを用いて説明する。
図8は、上記図7に示す本実施形態4のDMA転送装置4におけるデータバス11の使用例を説明するためのタイミングチャートである。なお、横軸は時間の経過を示し、各波形はDMAモジュール12−0〜12−3からのデータ転送要求(DMA要求)およびDMAモジュール12−0〜12−3によるデータ転送(DMA転送)の実行を示し、矢印はDMAインターバルの期間を示している。また、この事例では、DMAモジュールの優先順位は、DMAモジュール12−0を最も高くし、DMAモジュール12−3を最も低くしている。即ち、
DMAモジュール12−0 > DMAモジュール12−1 > DMAモジュール12−2 > DMAモジュール12−3
とされているものとする。
但し、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからの各DMA要求が全てなくなるまでDMA転送が順次実行されることにより、全てのDMAモジュールによるデータ転送が循環方式により実行される。
図8に示すように、まず、タイミングaで、DMAモジュール12−3からのデータ転送要求(DMA要求)が発生すると、他のDMAモジュール12−0〜12−2からのデータ転送要求は発生していないため、DMAモジュール12−3によるデータ転送(DMA転送)が許可されて実行される。このDMAモジュール12−3によるデータ転送実行中に、次のタイミングbで、DMAモジュール12−2からのデータ転送要求が発生され、さらに次のタイミングcで、DMAモジュール12−1からの転送要求が発生するが、DMAモジュール12−3によるデータ転送実行中であるため、データ転送実行が許可されずに待たされる。
次に、タイミングdで、DMAモジュール12−3によるデータ転送が完了するが、タイミングfまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−3からのデータ転送要求は発生されない。また、DMAモジュール12−3よりも優先順位が下位にある他のDMAモジュールがないため、DMAバス調停回路14Bによって、転送が完了したDMAモジュールよりも優先順位が下位にあるDMAモジュールを把握して調停する処理がリセットされて調停処理の対象が全DMAモジュールとなる。
さらに、タイミングdで、DMAモジュール12−3によるデータ転送が完了した時点で、DMAモジュール12−0、DMAモジュール12−1およびDMAモジュール12−2からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が他のものに優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。
その後、タイミングeで、DMAモジュール12−0によるデータ転送が完了するが、タイミングhまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMAモジュール12−0よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−1〜12−3からのDMA要求がなくなるまで、DMAバス調停回路14Bによって、DMA要求が発生しているDMAモジュール22−1およびDMAモジュール22−2の中から、優先順位に従ってDMAモジュール22−1が優先され、DMAモジュール22−1によるデータ転送が許可されて実行される。
その後、タイミングgで、DMAモジュール12−1によるデータ転送が完了するが、タイミングjまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMAモジュール12−1よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−2および12−3からのデータ転送要求がなくなるまで、DMAバス調停回路14Bによって、DMA要求が発生しているDMAモジュール22−2およびDMAモジュール22−3の中から、優先順位に従ってDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングiで、DMAモジュール12−2によるデータ転送が完了するが、タイミングlまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−2からのデータ転送要求は発生されない。また、DTCバス調停回路14Bによって、DMAモジュール12−2よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−3によるデータ転送が許可されて実行される。
その後、タイミングkで、DMAモジュール12−3によるデータ転送が完了するが、タイミングnまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−3からのデータ転送要求は発生されない。また、DMAモジュール12−3よりも優先順位が下位にある他のDMAモジュールがないため、DMAバス調停回路14Bによって、優先順位が下位にあるDMAモジュールを把握して調停する処理がリセットされて調停処理の対象が全DMAモジュールとなる。
さらに、タイミングkで、DMAモジュール12−3によるデータ転送が完了した時点で、DMAモジュール12−0、DMAモジュール12−1およびDMAモジュール12−2からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が他のものに優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。
その後、タイミングmで、DMAモジュール12−0によるデータ転送が完了するが、タイミングpまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMAモジュール12−0よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−1〜12−3からのデータ転送要求がなくなるまで、DMAバス調停回路14Bによって、優先順位に従ってDMAモジュール12−1が他のものに優先され、DMAモジュール12−1からのデータ転送が許可されて実行される。
その後、タイミングoで、DMAモジュール12−1によるデータ転送が完了するが、タイミングrまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMAモジュール12−1よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−2および12−3からのデータ転送要求がなくなるまで、DMAバス調停回路14Bによって、DMAモジュール22−2およびDMAモジュール22−3の中から、優先順位に従ってDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングqで、DMAモジュール12−2によるデータ転送が完了するが、タイミングtまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−2からのデータ転送要求は発生されない。また、DMAモジュール12−2よりも優先順位が下位にあってDMA要求がある他のDMAモジュール12−3によるデータ転送が許可されて実行される。
その後、タイミングsで、DMAモジュール12−3によるデータ転送が完了するが、タイミングvまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−3からのデータ転送要求は発生されない。また、DMAモジュール12−3よりも優先順位が下位にある他のDMAモジュールがないため、DMAバス調停回路14Bによって全てのDMA要求のマスクがクリアされる。
さらに、タイミングsで、DMAモジュール12−3によるデータ転送が完了した時点で、DMAモジュール12−0、DMAモジュール12−1およびDMAモジュール12−2からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が他のものに優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。その後、タイミングuで、DMAモジュール12−0によるデータ転送が完了する。また、DMAモジュール12−0よりも優先順位が下位にあってDMA要求がある他のDMAモジュール12−1〜12−3からのデータ転送要求がなくなるまで、DMAバス調停回路14Bによって、DMAモジュール12−1〜12−3の中から、優先順位に従ってDMAモジュール12−1が優先され、DMAモジュール12−1によるデータ転送が許可されて実行される。
以上のように、本実施形態4のDMA転送装置4によれば、DMA要求に対する許可が与えられたモジュールによるDMA転送が完了された後に、次のDMA要求が行われるまでの間隔を示すDMAインターバルの期間(矢印で示す期間)が設定され、さらに、DMAモジュール12−0よりも優先順位が下位にあってDMA要求がある他のDMAモジュールから、優先順位に従ったDMAモジュールが優先されて実行される。これによって、優先順位が最も高いDMAモジュール12−0によりデータバスが占有され続けることなく、これよりも優先順位が低いDMAモジュール12−1およびDMAモジュール12−2によるDMA転送を実行することが可能とされ、さらに優先順位が低いDMAモジュール12−3によるDMA転送を実行することも可能となる。さらに、特許文献1に開示されている従来技術のように、DMAモジュール12−3によるDMA転送を実行可能とするためにDMAインターバルを大きく設定する必要がない。よって、各DMAモジュールにおいて必要に応じてDMAインターバルを設定することにより、各DMAモジュールによるデータバスの使用割合を必要に応じて調整することが可能になり、どのDMAモジュールからのDMA要求も発生しない無駄な期間が生じるという問題を防ぐことができる。
(実施形態5)
本実施形態5では、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまで、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールの中から、優先順位が最も高いDMAモジュールに許可を順次与えてそれぞれ実行させ、さらに、該各DMAモジュールによるDMA転送が一巡した時点で該CPUからのバス要求がある場合に、該CPUの所定の該CPUサイクルの期間だけ該CPUによるデータ転送を許可して実行させる場合について説明する。
図9は、本発明の実施形態5に係るDMA転送装置におけるデータバスの接続例を示すブロック図である。なお、図3のDMA転送装置の作用効果と同一の作用効果を相する部材には同一の符号を付する。
図9において、本実施形態5のDMA転送装置5は、図3に示す実施形態2のDMA転送装置2の場合と同様に、データバス11が複数のDMAモジュール12−0、12−1、・・・、12−nおよびCPU13に共有されたDMA転送装置であって、各DMAモジュール12−0、12−1、・・・、12−nによるDMA転送完了後に次のDMA要求が行われるまでの間隔を示すDMAインターバルの期間が、各DMAモジュール12−0、12−1、・・・、12−n内に設けられたレジスタ12−0c、12−1c、・・・、12−ncに設定されている。
また、通常、CPU13からは、常にバス要求が出力されているが、各DMAモジュール12−0、12−1、・・・、12−nよりも優先順位が低く、CPU13によるデータ転送処理を実行可能なサイクルを明確に把握して要求することが困難であるため、本実施形態5のDMA転送装置5では、このCPUサイクルが、DMAバス調停回路14C内に設けられたレジスタ14cに設定されている。各DMAモジュール12−0、12−1、・・・、12−nからのDMA要求が競合した場合には、DMAバス調停回路14Cによって、優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可が与えられ、許可が与えられたDMAモジュールによるDMA転送の完了後、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからの各DMA要求が全てなくなるまで、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールの中から、優先順位が最も高いDMAモジュールに許可が順次与えられて実行される。このようにして、各DMAモジュール12−0、12−1、・・・、12−nによるDMA転送の実行が一巡した時点で、CPU13からのバス要求がある場合には、CPUサイクルの期間だけ、CPU13によるデータ転送が許可されて実行される。これにより、各DMAモジュール12−0、12−1、・・・、12−nによるデータバス11の使用割合が調整される。
つまり、DMAバス調停回路14Cによって、DMA転送が実行されて終了したDMAモジュールの番号が記憶手段としてのレジスタ14cに保存される。最後にDMA転送が実行されたDMAモジュールよりも優先順位が下位にある他のDMAモジュール(レジスタ14cに保存されたモジュール番号を基準にして次の番号から求められたDMAモジュール)からの各DMA要求の有無が調べられる。その最後にDMA転送が実行されたDMAモジュールよりも優先順位が下位にある他のDMAモジュールからの各DMA要求が全てなくなった時点で、最後にDMA転送が実行されたDMAモジュールの番号がリセットされ、最初の初期状態に戻る。
以下に、本実施形態5のDMA転送装置5におけるデータバス11の使用例について、図10のタイミングチャートを用いて説明する。
図10は、上記図9に示す本実施形態5のDMA転送装置5におけるデータバスの使用例を説明するためのタイミングチャートである。なお、横軸は時間の経過を示し、各波形はDMAモジュール12−0〜12−2からのデータ転送要求(DMA要求)とCPU13からのバス要求(CPU要求)およびDMAモジュール12−0〜12−2によるデータ転送(DMA転送)とCPU13によるデータ転送の実行を示し、矢印はDMAインターバルの期間(実線の矢印)およびCPUサイクルの期間(点線の矢印)を示している。
ここでは、DMAモジュール12−0〜12−2およびCPU13の優先順位は、DMAモジュール12−0の優先順位が最も高く、CPU13の優先順位が最も低く設定されている。即ち、
DMAモジュール12−0 > DMAモジュール12−1 > DMAモジュール12−2 > CPU13
とされているものとする。
但し、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送の完了後、DMAインターバル後に行われる次のDMA要求の発生が、優先順位がより低い他のDMAモジュールからのDMA要求が全てなくなるまで、許可が与えられたDMAモジュールよりも優先順位が下位にある他のDMAモジュールから、優先順位が高いDMAモジュールに許可が与えられる。全ての各DMAモジュール12−0〜12−2によるデータ転送が循環方式により実行される。さらに、各DMAモジュール12−0〜12−2によるDMA転送が一巡した後に、CPU13によるデータ転送が実行される。
図10に示すように、まず、タイミングaで、CPU13からのデータ転送要求(バス要求)が発生すると、他のDMAモジュール12−0〜12−2からのデータ転送要求が発生されていないため、CPU13によるデータ転送が許可されて実行される。CPU13によるデータ転送実行中に、タイミングbで、DMAモジュール12−2からのデータ転送要求(DMA要求)が発生し、タイミングcで、DMAモジュール12−1からのデータ転送要求が発生するが、タイミングdまではCPUサイクルの期間であるため、データ転送実行が許可されずに待たされる。
次に、タイミングdで、CPU13によるデータ転送が完了するが、CPU13よりも優先順位が下位にある他のDMAモジュールがないため、DMAバス調停回路14Cによって、優先順位が下位にあるDMAモジュールを把握する処理がリセットされる。
このCPU13からのデータ転送が完了した時点で、DMAモジュール12−0、DMAモジュール12−1、DMAモジュール12−2からのデータ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。
その後、タイミングeで、DMAモジュール12−0によるデータ転送が完了するが、タイミングhまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMAモジュール12−0よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−1〜12−3から、 優先順位に従ってDMAモジュール12−1が優先され、DMAモジュール12−1によるデータ転送が許可されて実行される。
その後、タイミングgで、DMAモジュール12−1によるデータ転送が完了するが、タイミングjまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMAモジュール12−1よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−2が優先され、DMAモジュール12−2によるデータ転送が許可されて実行される。
その後、タイミングiでDMAモジュール12−2によるデータ転送が完了するが、タイミングlまでのDMAインターバルの期間(矢印で示す期間)は、DMAモジュール12−2からのデータ転送要求は発生されない。また、DMAモジュール12−2よりも優先順位が下位にある他のDMAモジュールがなく、CPU13からのDMA要求がある場合、所定のCPUサイクルの期間だけ、CPU13によるデータ転送が許可されて実行される。
さらに、タイミングkで、CPU13によるデータ転送が完了するが、CPU13よりも優先順位が下位にある他のDMAモジュールがないため、DMAバス調停回路14Cによって、優先順位が下位にあるDMAモジュールなどを把握する処理がリセットされる。
タイミングkで、優先順位の最も低いCPUサイクルの期間が完了すると、DMAモジュール12−0、DMAモジュール12−1およびDMAモジュール12−2からの各データ転送要求が発生しているが、DMAバス調停回路14Cによって、優先順位に従ってDMAモジュール12−0が他のものに優先され、DMAモジュール12−0からのデータ転送が許可されて実行される。
その後、タイミングmで、DMAモジュール12−0によるデータ転送が完了するが、タイミングpまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−0からのデータ転送要求は発生されない。また、DMAモジュール12−0よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−1および12−2から、優先順位に従ってDMAモジュール12−1が他のものに優先され、DMAモジュール12−1からのデータ転送が許可されて実行される。
その後、タイミングoで、DMAモジュール12−1によるデータ転送が完了するが、タイミングrまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−1からのデータ転送要求は発生されない。また、DMAモジュール12−1よりも優先順位が下位にあって各DMA要求がある他のDMAモジュール12−2からのデータ転送が許可されて実行される。
その後、タイミングqで、DMAモジュール12−2によるデータ転送が完了するが、タイミングtまでのDMAインターバルの期間(矢印で示す期間)はDMAモジュール12−2からのデータ転送要求は発生されない。また、DMAモジュール12−2よりも優先順位が下位の他のDMAモジュールはなく、DMAバス調停回路14Cによって、CPU13からのDMA要求がある場合、所定のCPUサイクルの期間だけ、CPU13によるデータ転送が許可されて実行される。
その後、タイミングsでCPUサイクルの期間が完了すると、CPU13よりも優先順位が下位にある他のDMAモジュールなどがないため、DMAバス調停回路14Cによって、優先順位が下位にあるDMAモジュールなどを把握する処理がリセットされる。
タイミングsで、CPU13によるデータ転送が完了した時点で、DMAモジュール12−0および12−1、およびCPU13からの各データ転送要求が発生しているが、優先順位に従ってDMAモジュール12−0が優先され、DMAモジュール12−0によるデータ転送が許可されて実行される。その後、タイミングuで、DMAモジュール12−0によるデータ転送が完了される。
以上のように、本実施形態5のDMA転送装置5によれば、DMA要求に対する許可が与えられたDMAモジュールによるDMA転送が完了した後に、次のDMA要求が行われるまでの間隔を示すDMAインターバル(図10で矢印で示す期間)が設定され、さらに、DMAモジュール12−0よりも優先順位が下位にあってDMA要求がある他のDMAモジュールから、優先順位に従ったDMAモジュールが優先されて実行される。これによって、優先順位が最も高いDMAモジュール12−0によりデータバスが占有され続けることなく、これよりも優先順位が低いDMAモジュール12−1およびDMAモジュール12−2によるDMA転送を実行することが可能となる。さらに、優先順位が低いDMAモジュールによるDMA転送を実行可能とするためにDMA転送を実行可能とするためにDMAインターバルを大きく設定する必要がないため、各DMAモジュールにおいて必要に応じてDMAインターバルを設定することにより、各DMAモジュールによるデータバスの使用割合を必要に応じて調整することが可能になり、どのDMAモジュールからのDMA要求も発生しない無駄な期間が生じるという問題を防ぐことができる。さらに、CPU13によるデータ転送処理を実行可能なCPUサイクルが設定されるため、CPUサイクルを明確に把握してDMAバス調停回路14Cに要求することが可能になる。
(実施形態6)
本実施形態6では、各データ転送モジュールからのデータ転送要求が競合した場合に、データ転送バス調停手段によって、優先順位が高いデータ転送モジュールからのデータ転送要求に対してデータ転送の許可が与えられ、許可が与えられたデータ転送モジュールによるデータ転送の完了後、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールからの各データ転送要求が全てなくなるまで、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールの中から、優先順位が最も高いデータ転送モジュールに許可が順次与えられてそれぞれ実行される場合について説明する。
図11は、本発明の実施形態6に係るデータ転送装置におけるデータバスの接続例を示すブロック図である。
図11において、本実施形態6のデータ転送装置6は、CPUに接続されていないデータ転送専用バスであるデータバス21が複数のDTC(データ転送回路)モジュール22−0、22−1、・・・、22−n(nは0以上の整数)に共有されており、各DTCモジュール22−0、22−1、・・・、22−nからのデータ転送要求が競合した場合には、DTCバス調停回路24によって調停が行われて、各DTCモジュール22−0、22−1、・・・、22−nのうちの一つがデータ転送専用バス21にバス接続を許可されて接続される。
また、データ転送専用バスのデータバス21には、前述した通り、制御回路16、メモリ制御回路17および外部デバイス制御回路18が接続されており、データ転送専用バス21に接続された上記各DTCモジュール22−0、22−1、・・・、22−nによって、制御回路16内に設けられたレジスタ16a、メモリ制御回路17に設けられたレジスタ17a、メモリ制御回路17によって制御されるメモリ19,20、および外部デバイス制御回路18内に設けられたレジスタ18aとの間のデータ転送が制御されるように構成されている。
複数のDTCモジュール22−0、22−1、・・・、22−nからは、それぞれのデータ転送が必要になったタイミングにおいて、データ転送要求が出力される。DTCバス調停回路24においては、複数のDTCモジュール22−0、22−1、・・・、22−nの複数から出力される各データ転送要求が調停され、複数のDTCモジュール22−0、22−1、・・・、22−nのうち、データ転送を許可されたものが、データバス21を介してアクセス可能とされる。
本実施形態6のデータ転送装置6では、優先順位が高いデータ転送モジュールによりデータバス21が占有され続けることを回避するために、各DMAモジュール22−0、22−1、・・・、22−nのいずれかによるデータ転送完了後に次のデータ転送要求が行われるまでの間隔を示すデータ転送インターバルの期間(図12の矢印で示す期間)が設定されている。例えば、データ転送インターバル期間は、各DMAモジュール22−0、22−1、・・・、22−n内にそれぞれ設けられた各レジスタ22−0a、22−1a、・・・、22−naにそれぞれ設定されている。各DTCモジュール22−0、22−1、・・・、22−nからのデータ転送要求に対して、データ転送が許可されてデータ転送の実行が完了した時点からのデータ転送インターバルが経過してから、次のDMA要求が発生される。
前述したように、従来は、データ転送インターバルが設定されても、さらに優先順位が低いDTCモジュールによるデータ転送を実行できず、そのDTCモジュールによるデータ転送の実行を可能にするためにDTCインターバルが大きく設定された場合にはどのDTCモジュールからのデータ転送要求も発生しない無駄な期間が生じる。これを解決するために、本実施形態6のデータ転送装置6では、各DTCモジュール22−0、22−1、・・・、22−nから複数のDTC要求が競合した場合に、DTCバス調停回路24によって、優先順位が高いDTCモジュールからのデータ転送要求に対してデータ転送の許可が与えられ、許可が与えられたDTCモジュールによるデータ転送の完了後、データ転送が完了したDTCモジュールよりも優先順位が下位にある他のDTCモジュールからの各DTC要求が全てなくなるまで、許可が与えられたDTCモジュールよりも優先順位が下位にある他のDTCモジュールの中から、優先順位が最も高いDTCモジュールに許可が順次与えられてそれぞれ実行される。これにより、各DTCモジュール22−0、22−1、・・・、22−nによるデータバス21の使用割合が必要に応じて調整される。
つまり、DTCバス調停回路24Aによって、DTC転送が実行されて終了したDTCモジュールの番号が記憶手段としてのレジスタ24bに保存される。最後にDTC転送が実行されたDTCモジュールよりも優先順位が下位にある他のDTCモジュール(レジスタ24bに保存されたモジュール番号を基準にして次の番号から求められたDTCモジュール)からの各DTC要求の有無が調べられる。その最後にDTC転送が実行されたDTCモジュールよりも優先順位が下位にある他のDTCモジュールからの各DTC要求が全てなくなった時点で、最後にDTC転送が実行されたDTCモジュールの番号がリセットされ、最初の初期状態に戻る。
以下に、本実施形態6のデータ転送装置6におけるデータ転送専用バス(データバス21)の使用例について、図12のタイミングチャートを用いて説明する。
図12は、図11に示す本実施形態6のデータ転送装置6におけるデータ転送専用バス(データバス21)の使用例を説明するためのタイミングチャートである。なお、横軸は時間の経過を示し、各波形はDTCモジュール22−0〜22−3からのデータ転送要求(DTC要求)およびDTCモジュール22−0〜22−3によるデータ転送(DTC転送)の実行を示し、矢印はデータ転送インターバルの期間を示している。
この事例では、各DTCモジュール22−0〜22−3の優先順位は、DTCモジュール22−0の優先順位が最も高く、DTCモジュール22−3の優先順位が最も低い。即ち、
DTCモジュール22−0 > DTCモジュール22−1 > DTCモジュール22−2 > DTCモジュール22−3
とされているものとする。
但し、データ転送要求に対する許可が与えられた各DTCモジュールによるデータ転送の完了後、データ転送インターバル後に行われる次のデータ転送要求の発生が、DTC転送が完了したDTCモジュールよりも優先順位が下位にある他のDTCモジュールからの各DTC要求が全てなくなるまでDTC転送が順次実行されることにより、全てのDTCモジュールによるデータ転送が循環方式により実行される。
図12に示すように、まず、タイミングaで、DTCモジュール22−3からのデータ転送要求が発生すると、他のDTCモジュール22−0〜22−2からのデータ転送要求が発生していないため、DTCモジュール22−3によるデータ転送が許可されて実行される。DTCモジュール22−3によるデータ転送実行中に、タイミングbで、DTCモジュール22−2からのデータ転送要求が発生し、タイミングcで、DTCモジュール22−1からの転送要求が発生するが、DTCモジュール22−3によるデータ転送実行中であるため、データ転送実行が許可されずに待たされる。
次に、タイミングdで、DTCモジュール22−3によるデータ転送が完了するが、タイミングfまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−3からのデータ転送要求は発生されない。また、DTCモジュール22−3よりも優先順位が下位にある他のDTCモジュールがないため、DTCバス調停回路24Aによって、転送が完了したDTCモジュールよりも優先順位が下位にあるDTCモジュールを把握し、その中から調停する処理がリセットされて調停処理の対象が全DMAモジュールとなる。
さらに、タイミングdで、DTCモジュール22−0、DTCモジュール22−1およびDTCモジュール22−2からのデータ転送要求がそれぞれ発生しているが、優先順位に従ってDTCモジュール22−0が優先され、DTCモジュール22−0からのデータ転送が許可されて実行される。
その後、タイミングeで、DTCモジュール22−0によるデータ転送が完了するが、タイミングhまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−0からのデータ転送要求は発生されない。また、DTCモジュール22−0よりも優先順位が下位にあってDTC要求がある他のDTCモジュール22−1〜22−3からのDTC要求がなくなるまで、DTCバス調停回路24Aによって、DTC要求が発生しているDTCモジュール22−1およびDTCモジュール22−2の中から、優先順位に従ってDTCモジュール22−1が優先され、DTCモジュール22−1によるデータ転送が許可されて実行される。
その後、タイミングgで、DTCモジュール22ー1によるデータ転送が完了するが、タイミングjまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−1からのデータ転送要求は発生されない。また、DTCモジュール22−1よりも優先順位が下位にあって各DTC要求がある他のDTCモジュール22−2および22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24Aによって、DTC要求が発生しているDTCモジュール22−2およびDTCモジュール22−3の中から、優先順位に従ってDTCモジュール22−2が優先され、DTCモジュール22−2によるデータ転送が許可されて実行される。
その後、タイミングiで、DTCモジュール22−2によるデータ転送が完了するが、タイミングlまでのDTCインターバルの期間(矢印で示す期間)はDTCモジュール22−2からのデータ転送要求は発生されない。また、DTCバス調停回路24Aによって、DTCモジュール12−2よりも優先順位が下位にあって各DTC要求がある他のDTCモジュール22−3によるデータ転送が許可されて実行される。
その後、タイミングkで、DTCモジュール22−3によるデータ転送が完了するが、タイミングnまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−3からのデータ転送要求は発生されない。また、DTCモジュール12−3よりも優先順位が下位にある他のDTCモジュールがないため、DTCバス調停回路24Aによって、優先順位が下位にあるDTCモジュールを把握して調停する処理がリセットされて調停処理の対象が全DTCモジュールとなる。
さらに、タイミングkで、DTCモジュール22−3によるデータ転送が完了した時点で、DTCモジュール22−0からのデータ転送要求のみが発生しており、他のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−0によるデータ転送が許可されて実行される。
その後、タイミングmで、DTCモジュール22−0によるデータ転送が完了するが、タイミングpまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−0からのデータ転送要求は発生されない。また、また、DTCモジュール22ー0よりも優先順位が下位であって各DTC要求がある他のDTCモジュール22−1〜22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24Aによって、優先順位に従ってDMAモジュール12−1が他のものに優先され、DMAモジュール12−1からのデータ転送が許可されて実行される。
その後、タイミングoで、DTCモジュール22−1によるデータ転送が完了するが、タイミングrまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−1からのデータ転送要求は発生されない。また、DTCモジュール22−1よりも優先順位が下位であって各DMA要求がある他のDTCモジュール22−2および22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24Aによって、DTCモジュール22−2およびDTCモジュール22−3の中から、優先順位に従ってDTCモジュール22−2が優先され、DTCモジュール22−2によるデータ転送が許可されて実行される。
その後、タイミングqで、DTCモジュール22−2によるデータ転送が完了するが、タイミングtまでのデータ転送インターバルの期間(矢印で示す期間)はDTCモジュール22−2からのデータ転送要求は発生されない。また、DTCモジュール22−2よりも優先順位が下位であってDMA要求がある他のDTCモジュール22−3によるデータ転送が許可されて実行される。
その後、タイミングsで、DTCモジュール22−3によるデータ転送が完了するが、タイミングvまでのDMAインターバルの期間(矢印で示す期間)はDTCモジュール22−3からのデータ転送要求は発生されない。
さらに、タイミングsで、DTCモジュール22−3によるデータ転送が完了した時点で、DTCモジュール22−0および22−1からのデータ転送要求が発生しており、その他のDTCモジュールからのデータ転送要求が発生されていないため、DTCモジュール22−0によるデータ転送が許可されて実行される。その後、タイミングuで、DTCモジュール22−0によるデータ転送が完了する。また、DTCモジュール22−0よりも優先順位が下位であってDTC要求のある他のDTCモジュール22−1〜22−3からのデータ転送要求がなくなるまで、DTCバス調停回路24Aによって、DTCモジュール12−1〜12−3の中から、優先順位に従ってDTCモジュール12−1が優先され、DTCモジュール12−1によるデータ転送が許可されて実行される。
以上のように、本実施形態6のデータ転送装置6によれば、データ転送要求に対する許可が与えられたDTCモジュールによるデータ転送が完了した後に、次のデータ転送要求が行われるまでの間隔を示すデータ転送インターバルが設定され、さらに、さらにそのDTCモジュールよりも優先順位が下位にある他のDTCモジュールからのデータ転送要求が無くなるまで、それよりも優先順位が下位にある他のDTCモジュールから、優先順位に従ったDMAモジュールが優先されて実行される。これにより、優先順位が最も高いDTCモジュール22−0によりデータバス21が占有され続けることなく、これよりも優先順位が低いDTCモジュール22−1およびDTCモジュール22−2によるデータ転送を実行することが可能とされ、さらに優先順位が低いDTCモジュール22−3によるデータ転送をも実行することも可能となる。さらに、DTCモジュール22−3によるデータ転送を実行可能とするためにDMAインターバルを必要以上に大きく設定する必要がないため、各DTCモジュールにおいて必要に応じてデータ転送インターバルを設定することにより、各DTCモジュールによるデータ転送専用バス(データバス)の使用割合を必要に応じて調整することが可能になり、どのDTCモジュールからのデータ転送要求も発生しない無駄な期間が生じるという問題を防ぐことができる。
したがって、上記実施形態1〜6によれば、各モジュールによる転送完了後に次の転送要求が行われるまでの間隔を示すインターバルの期間が、各モジュール内のレジスタに設定されている。各モジュールからの転送要求が競合した場合には、優先順位が最も高いモジュールからの転送要求に対して転送許可が与えられ、そのデータ転送の完了後、次の転送要求の発生が、他のモジュールからのDMA要求が全てなくなるまで抑制されるか、または、そのデータ転送の完了後、データ転送が完了したモジュールよりも優先順位が下位にある他のモジュールの中から、優先順位が最も高いモジュールに許可が順次与えられる。これによって、複数のモジュールによりデータバスが共有されたDMA転送装置またはDTC転送装置において、より効率良くデータ転送を行い、特定のモジュールによりデータバスが占有され続けることによって生じる不整合を確実に回避することができる。
なお、上記実施形態1、2では、次のDMA要求の抑制は、DMAモジュールからのDMA要求を当該DMA要求がなかったようにマスクする場合について説明したが、これに限らず、次のDMA要求の抑制は、DMAモジュールからのDMA要求の発生を停止させるように制御してもよい。また、上記実施形態3では、次のデータ転送要求の抑制は、データ転送モジュールからのデータ転送要求を当該データ転送要求がなかったようにマスクする場合について説明したが、これに限らず、次のデータ転送要求の抑制は、データ転送モジュールからのデータ転送要求の発生を停止させるように制御してもよい。
なお、上記実施形態1、2では、DMA転送の完了後で次のDMA要求の抑制前に、DMA要求が行われないDMAインターバルの期間が別途設けられている場合について説明したが、これに限らず、DMAインターバルの期間が別途設けられていない場合もあり得る。また、上記実施形態4、5では、DMA転送の完了後に、次のDMA要求までにDMA要求が行われないDMAインターバルの期間が別途設けられている場合について説明したが、これに限らず、DMAインターバルの期間が別途設けられていない場合もあり得る。この期間に関する情報は、DMAモジュール毎に設けられた第1記憶手段内にそれぞれ記憶されて設定されている。
また、上記実施形態3では、データ転送の完了後で次のデータ転送要求の抑制前に、データ転送要求が行われないデータ転送インターバルの期間が別途設けられている場合について説明したが、これに限らず、DMAインターバルの期間が別途設けられていない場合もあり得る。また、上記実施形態6では、データ転送の完了後に、次のDMA要求までにデータ転送要求が行われないデータ転送インターバルの期間が別途設けられている場合について説明したが、これに限らず、DMAインターバルの期間が別途設けられていない場合もあり得る。この期間に関する情報は、データ転送モジュール毎に設けられた第4記憶手段内にそれぞれ記憶されて設定されている。
なお、上記実施形態1〜6では、特に説明しなかったが、DMAバス調停14は、DMA要求の競合時に、各DMAモジュールのうちの優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可を与え、DMA転送が完了した後に、このDMAモジュールからの次のDMA要求が、DMA転送が完了したDMAモジュール以外の他のDMAモジュールからのDMA要求が全てなくなるまでの期間だけ抑制される。または、DMAバス調停14は、DMA要求の競合時に、各DMAモジュールのうちの優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可を与え、DMA転送が完了した後に、このDMAモジュールからの次のDMA要求が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまでの期間だけ抑制される。
また、DMAバス調停回路14Aは、DMA要求の競合時に、各DMAモジュールのうちの優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可を与え、DMA転送が完了した後に、このDMAモジュールからの次のDMA要求が、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまでの期間だけ抑制され、さらに、各DMAモジュールによるDMA転送が一巡した時点で該CPUからのバス要求がある場合に、CPUの所定のCPUサイクルの期間だけ、次のDMA要求が抑制される。
さらに、データ転送バス調停回路24は、データ転送要求の競合時に、各データ転送モジュールのうちの優先順位が高いデータ転送モジュールからのデータ転送要求に対してデータ転送の許可を与え、データ転送が完了した後に、このデータ転送モジュールからの次のデータ転送要求が、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールからのデータ転送要求が全てなくなるまでの期間だけ抑制される。
さらに、DMAバス調停回路14Bは、DMA要求の競合時に、各データ転送モジュールのうちの優先順位が高いデータ転送モジュールからのデータ転送要求に対してデータ転送の許可を与え、データ転送が完了した後に、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまで、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールの中から、優先順位が最も高いDMAモジュールに許可を順次与えてそれぞれ実行させる。
さらに、DMAバス調停回路14Cは、DMA要求の競合時に、各DMAモジュールのうちの優先順位が高いDMAモジュールからのDMA要求に対してDMA転送の許可を与え、DMA転送が完了した後に、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールからのDMA要求が全てなくなるまで、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールの中から、優先順位が最も高いDMAモジュールに許可を順次与えてそれぞれ実行させ、さらに、各DMAモジュールによるDMA転送が一巡した時点で該CPUからのバス要求がある場合に、CPUの所定の該CPUサイクルの期間だけ該CPUによるデータ転送を許可して実行させる。
さらに、データ転送バス調停回路24Aは、データ転送要求の競合時に、各データ転送モジュールのうちの優先順位が高いデータ転送モジュールからのデータ転送要求に対してデータ転送の許可を与え、該データ転送が完了した後に、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールからのデータ転送要求が全てなくなるまで、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールの中から、優先順位が最も高いデータ転送モジュールに許可が順次与えられてそれぞれ実行される。
以上のいずれのDMAバス調停回路においても、より効率良くデータ転送を行い、特定のモジュールによりデータバスが占有され続けることによって生じる不整合を回避することができ、しかも、そのモジュールよりも優先順位が低いCPUによるデータ転送処理を実行可能するサイクルをも明確に把握して要求できる本発明の目的を達成することができる。また、以上のいずれのデータ転送バス調停回路においても、CPUが接続されないデータ転送専用バスを複数のデータ転送モジュールにより共有する場合に、特定のモジュールによりデータ転送専用バスが占有され続けることによって生じる不整合を回避できる本発明の目的を達成することができる。
なお、上記実施形態1、2、4および5では、特に説明しなかったが、DMA転送が完了したDMAモジュールに関する情報が、DMAバス調停回路に設けられたレジスタなどの第2記憶手段内にそれぞれ記憶されて設定される。DMA転送が完了したDMAモジュール以外の他のDMAモジュールは、第2記憶手段に前記DMAモジュールに関する情報として記憶されたモジュール番号以外のDMAモジュールである。また、DMA転送が完了したDMAモジュールよりも優先順位が下位にある他のDMAモジュールは、第2記憶手段にDMAモジュールに関する情報として記憶されたモジュール番号を基準にして次の番号以降のDMAモジュールである。
また、上記実施形態3、6では、特に説明しなかったが、データ転送が完了したデータ転送モジュールに関する情報が、データ転送バス調停回路に設けられた第5記憶手段内にそれぞれ記憶されて設定される。データ転送が完了したデータ転送モジュール以外の他のデータ転送モジュールは、第5記憶手段にデータ転送モジュールに関する情報として記憶されたモジュール番号以外のデータ転送モジュールである。また、データ転送が完了したデータ転送モジュールよりも優先順位が下位にある他のデータ転送モジュールは、第5記憶手段にデータ転送モジュールに関する情報として記憶されたモジュール番号を基準にして次の番号以降のデータ転送モジュールである。
以上のように、本発明の好ましい実施形態1〜6を用いて本発明を例示してきたが、本発明は、この実施形態1〜6に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態1〜6の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。