(57)【要約】【課題】ＤＭＡ転送が競合した場合でも効率良くバスのデータ転送をする。【解決手段】データのＤＭＡ転送を制御するＤＭＡＣ１１３を含む複数のＤＭＡＣ内蔵デバイスにこれらＤＭＡＣ内蔵デバイス間を接続するデータバス１３０を使用させるための制御を行うバス制御装置１００であって、ＤＭＡＣ内蔵デバイスは、ＤＭＡＣの動作を制御するＤＭＡＣ制御部１１４を備え、第１のＤＭＡＣ内蔵デバイス１１０をデータバスのバスマスタとして第１のＤＭＡ転送を実行中に、第１のＤＭＡＣ１１３の使用による後続の第２のＤＭＡ転送が要求された場合に、所定の条件に応じて、第１のＤＭＡＣ制御部１１４から第２のＤＭＡＣ制御部１２４に、第１のＤＭＡ転送の未転送データの転送を完了させるための設定情報を送信してから、第２のＤＭＡ転送を第１のＤＭＡＣで実行させる。【選択図】図１
2008165463.tif 000002
【特許請求の範囲】
【請求項１】
データのＤＭＡ（ Direct Memory Access ）転送を制御するＤＭＡＣ（ Direct Memory Access Controller ）を含む複数のＤＭＡＣ内蔵デバイスに該ＤＭＡＣ内蔵デバイス間を接続するデータバスを使用させるための制御を行うバス制御装置であって、
一のＤＭＡＣ内蔵デバイスを前記データバスのバスマスタとして第１のＤＭＡ転送を実行中に、前記一のＤＭＡＣ内蔵デバイスに含まれる一のＤＭＡＣの使用による後続の第２のＤＭＡ転送が要求された場合に、所定の条件に応じて、前記第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を実行するＤＭＡＣおよび前記第２のＤＭＡ転送を実行するＤＭＡＣを決定することを特徴とするバス制御装置。
【請求項２】
前記ＤＭＡＣ内蔵デバイスは、前記ＤＭＡＣの動作を制御するＤＭＡＣ制御部を備え、
前記所定の条件とは、前記一のＤＭＡＣに備わる一のＤＭＡＣ制御部が
動作中の前記第１のＤＭＡ転送を停止して、前記第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を他のＤＭＡＣに処理させて、前記第２のＤＭＡ転送を前記一のＤＭＡＣで処理させる第１条件と、
前記第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を前記一のＤＭＡＣでそのまま動作させながら、前記第２のＤＭＡ転送を前記他のＤＭＡＣで処理させる第２条件と、
の場合における前記データバスの使用効率を判別した比較結果を意味することを特徴とする請求項１に記載のバス制御装置。
【請求項３】
前記第１条件の方が前記データバスの使用効率が良いと前記一のＤＭＡＣ制御部で検出された場合に、前記一のＤＭＡＣ制御部から前記他のＤＭＡＣ内蔵デバイスに備わる他のＤＭＡＣ制御部に、前記第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を完了させるための設定情報を送信することを特徴とする請求項２に記載のバス制御装置。
【請求項４】
前記複数のＤＭＡＣ内蔵デバイス間には、前記データバスとは独立して、前記設定情報を交信する設定情報専用線が前記複数のＤＭＡＣ内蔵デバイス間を接続するようにして設けられることを特徴とする請求項３に記載のバス制御装置。
【請求項５】
前記一のＤＭＡＣ制御部で判別した前記比較結果において、前記データバスの使用効率が良くなる条件の方のＤＭＡＣに前記第２のＤＭＡ転送を処理させることを特徴とする請求項２〜４の何れか１項に記載のバス制御装置。
【請求項６】
前記ＤＭＡＣは、動作中のＤＭＡ転送に対応する固有の管理番号が付される管理番号設定領域を備えていることを特徴とする請求項１〜５の何れか１項に記載のバス制御装置。
【請求項７】
前記バス制御装置の動作制御をするＣＰＵで前記第１のＤＭＡ転送を設定する際に、該第１のＤＭＡ転送の転送データに前記管理番号が付され、該管理番号の番号情報が前記管理番号設定領域に付され、前記一のＤＭＡＣが競合して、前記第１のＤＭＡ転送が停止されて、該第１のＤＭＡ転送が他のＤＭＡＣに移行した場合には、前記管理番号の番号情報も同時に前記他のＤＭＡＣに送信・設定されることを特徴とする請求項６に記載のバス制御装置。
【請求項８】
前記一のＤＭＡＣ内蔵デバイスが前記第１のＤＭＡ転送を停止し、前記他のＤＭＡＣに対して、前記第１のＤＭＡ転送の残りの未転送データを送信・設定した際に、動作中の前記他のＤＭＡＣに対応する前記残りの未転送エータの送信元となる前記一のＤＭＡＣに付された前記管理番号によって示される割り込み番号と、前記ＤＭＡ転送の対応順を示す通し番号となるＤＭＡ管理番号と、を管理する割り込み管理部を備えていることを特徴とする請求項１〜７の何れか１項に記載のバス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置等に使用されるバスシステムにおけるバス制御装置に関し、特に、大規模集積回路（ ＬＳＩ：Large Scale Integration ）などに搭載されるＤＭＡ（ Direct Memory Access ）転送を行うＤＭＡＣ（ Direct Memory Access Controller ）が内蔵されたＤＭＡＣ内蔵デバイスが接続されたバスシステムでバスを使用するためのバス制御装置に関する。
【背景技術】
【０００２】
従来から、パーソナルコンピュータやワークステーション、オフィスコンピュータ等の情報処理装置に使用されるバスシステムでは、ＣＰＵを介さずに、Ｉ／Ｏ機器とメモリ間でバスを通じて直接データをやりとりするＤＭＡ転送が実行されるものがある。また、バスシステムでは、ＣＰＵのオーバヘッドを伴わずに、高速・大容量のデータ転送が可能となるＤＭＡ転送を実現するコントローラであるＤＭＡＣを搭載するものがあり、外部装置からの受信データを主記憶部となるメモリに書き込み、また、メモリから送信データを読み出して外部装置に出力する等のデータ転送が実行される。当該データ転送をする際に、低速なシステムでは、中央処理装置（ ＣＰＵ：Central Processing Unit ）がバス権を有して、ＣＰＵとメモリとの間でデータ転送を実行するが、高速なシステムでは、ＣＰＵによる転送では時間がかかるために、ＤＭＡＣがバス権を有して外部装置のインターフェースである入出力（Ｉ／Ｏ）モジュールを制御し、ＣＰＵを介さずに直接的にメモリとのデータ転送を実行してＤＭＡ転送を実現している。
【０００３】
複数のモジュールが共通のデータバスに接続されているシステムにおいて、ＤＭＡ転送を行う場合は、ＤＭＡＣが各モジュールからのＤＭＡ転送要求の調停を行い、ＤＭＡ転送が可能なモジュールに対して許可を与えてＤＭＡ転送を行っている。この場合、早くＤＭＡ転送要求を出したモジュールまたは優先順位の高いモジュールがデータバスを連続で占有し、他のモジュールのＤＭＡ転送が不可能となる場合があった。
【０００４】
このようなＤＭＡ転送を行うシステムで、バスの使用効率を向上させるために、特許文献１には、各モジュールから出されるＤＭＡ転送要求をＤＭＡＣが調停し、ＤＭＡ転送要求が競合した場合には、優先順位の高いモジュールのＤＭＡ転送要求に対してＤＭＡ転送の許可を与え、当該許可が与えられたモジュールがデータバスを使用してＤＭＡ転送を行う制御を基本とする一方で、ＤＭＡ転送要求に対する許可が下りたモジュールが、次にＤＭＡ転送要求を実行可能とするまでの待ち時間を示すＤＭＡ転送要求間隔を設定するレジスタを各モジュールに備えるバス制御装置が開示されている。このバス制御装置によって、ＤＭＡ転送要求の発生タイミングが分散され、優先順位の低いモジュールもある程度の割合でデータバスを使用でき、バスの効率的使用が可能になる。
【特許文献１】特開２００２−３５１８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したようなバスの使用効率を向上させるバス制御装置では、例えば、図６に示すような２つのデバイスとなる第１のＡＳＩＣ６１０と第２のＡＳＩＣ６２０がデータバス６３０で接続されるバスシステム６００において、図６の点線に示すように、第１のメモリ６１２から第２のメモリ６２２に第１のＡＳＩＣ６１０内のＤＭＡ転送を実現する第１のＤＭＡＣ６１１を使用してデータ転送する場合、第１のＡＳＩＣ６１０がデータバス６３０のバスマスタとなり、第２のＡＳＩＣ６２０がデータバス６３０のバススレーブとなる。
【０００６】
しかしながら、当該バスシステム６００において別のタスクで第１のメモリ６１２から第１のＩ／Ｏ６１４にデータをＤＭＡ転送する必要が生じ、かつ第１のＡＳＩＣ６１０内にＤＭＡＣが１チャネルしかない場合、第１のメモリ６１２から第２のメモリ６２２への転送が完了して第１のＤＭＡＣ６１１が空くのを待つか、第２のＡＳＩＣ６２０内の第２のＤＭＡＣ６２１を使用して、図６に示す一点鎖線のように、メモリバス６３１→第１のＡＳＩＣ６１０→データバス６３０→第２のＡＳＩＣ６２０→データバス６３０→第１のＡＳＩＣ６１０→第１のＩ／Ｏバス６３２→第１のＩ／Ｏ６１４のように転送を行うか、ＣＰＵ６４０による転送を行うしかない。すなわち、ＤＭＡ転送が競合した際には、何れの場合も、転送速度が遅くなったり、バスを無駄に占有するため、非常にデータの転送効率が悪いことが問題となっていた。
【０００７】
そこで、本発明は、従来のバス制御装置およびバス制御方法が有する上記問題点に鑑みてなされたものであり、本発明の目的は、ＤＭＡ転送が競合した場合でも効率良くバスのデータ転送をすることの可能な、新規かつ改良されたバス制御装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある実施の態様によれば、データのＤＭＡ転送を制御するＤＭＡＣを含む複数のＤＭＡＣ内蔵デバイスにこれらＤＭＡＣ内蔵デバイス間を接続するデータバスを使用させるための制御を行うバス制御装置であって、一のＤＭＡＣ内蔵デバイスをデータバスのバスマスタとして第１のＤＭＡ転送を実行中に、当該一のＤＭＡＣ内蔵デバイスに含まれる一のＤＭＡＣの使用による後続の第２のＤＭＡ転送が要求された場合に、所定の条件に応じて、第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を実行するＤＭＡＣおよび前記第２のＤＭＡ転送を実行するＤＭＡＣを決定することを特徴とするバス制御装置が提供される。
【０００９】
このような構成とすることにより、例えば、一のＤＭＡＣが動作中で、この一のＤＭＡＣを第２のＤＭＡ転送のために使用したい場合に、動作中の一のＤＭＡＣの動作完了まで待つ必要がなくなるので、ＤＭＡ転送が競合した場合でのデータバスでのデータ転送が迅速に実行されるようになる。また、最初から第２のＤＭＡ転送を他のＤＭＡＣで行うと、データバスの無駄な占有を引き起こす場合があるため、ＤＭＡ転送が競合した場合のバスの帯域を最小限に抑えることができる。さらに、ＤＭＡＣを切り替えている間に動作中のＤＭＡ転送が完了してしまう場合等には、バスマスタを切り替えるよりも、現在動作中のＤＭＡ転送が完了するのを待った方が効率良くなるため、デーダバスの使用状況に応じたＤＭＡ転送が実行されるようになる。
【００１０】
このとき、上記実施の態様において、ＤＭＡＣ内蔵デバイスは、ＤＭＡＣの動作を制御するＤＭＡＣ制御部を備え、所定の条件とは、動作中の第１のＤＭＡ転送を停止して、この第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を他のＤＭＡＣに処理させて、第２のＤＭＡ転送を一のＤＭＡＣで処理させる第１条件と、第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を一のＤＭＡＣでそのまま処理させながら、第２のＤＭＡ転送を他のＤＭＡＣで処理させる第２条件と、の場合におけるデータバスの使用効率を一のＤＭＡＣに備わる一のＤＭＡＣ制御部で判別した比較結果を意味することとしてもよい。
【００１１】
このような構成とすることにより、ＣＰＵが介在することなく、各デバイスのＤＭＡＣ制御部同士がデータバスを介して設定情報のやり取りを行うので、バス制御装置の動作制御をするＣＰＵは、最初に１回だけＤＭＡ設定を行えば、途中でＤＭＡ転送を停止したり、再設定したりする必要がなくなるので、ＣＰＵでの動作制御の無駄を削減できる。また、バスマスタ変更後の各ＤＭＡ転送のデータ経路が如何なる状況になるかを事前にシミュレーションし、バスシステム全体として、最もバス使用効率が高くなるように、ＤＭＡＣ制御部が使用するＤＭＡＣを決定するので、ＤＭＡ転送が競合した場合でも、より確実に効率良くバスのデータ転送をすることが出来るようになる。
【００１２】
このとき、上記実施の態様において、第１条件の方がデータバスの使用効率が良いと一のＤＭＡＣ制御部で検出された場合に、当該一のＤＭＡＣ制御部から他のＤＭＡＣ内蔵デバイスに備わる他のＤＭＡＣ制御部に、第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を完了させるための設定情報を送信することとしてもよい。
【００１３】
このような構成とすることにより、ＤＭＡ転送が競合した際には、データバスのバス帯域を落とすことなく、効率良くバスのデータ転送をすることが出来るようになる。
【００１４】
このとき、上記実施の態様において、複数のＤＭＡＣ内蔵デバイス間には、データバスとは独立して、設定情報を交信する設定情報専用線が複数のＤＭＡＣ内蔵デバイス間を接続するようにして設けられることとしてもよい。
【００１５】
このような構成とすることにより、第１のＤＭＡ転送の未転送データの転送を完了させるための設定情報をデータバスとは別個独立の専用線でやり取りするので、データバスを占有せず、バス帯域を落とさなくなる。
【００１６】
このとき、上記実施の態様において、一のＤＭＡＣ制御部で判別した比較結果において、データバスの使用効率が良くなる条件の方のＤＭＡＣに第２のＤＭＡ転送を処理させることとしてもよい。
【００１７】
このような構成とすることにより、バスシステム全体として、最もバス使用効率が高くなるように、ＤＭＡＣ制御部が使用するＤＭＡＣをバスの使用効率の状況に応じて決定するので、ＤＭＡ転送が競合した場合でも、より好適な処理経路で確実に効率良くバスのデータ転送をすることが出来るようになる。
【００１８】
このとき、上記実施の態様において、ＤＭＡＣは、動作中のＤＭＡ転送に対応する固有の管理番号が付される管理番号設定領域を備えていることとしてもよい。特に、バス制御装置の動作制御をするＣＰＵで第１のＤＭＡ転送を設定する際に、この第１のＤＭＡ転送の転送データに前記管理番号が付され、当該管理番号の番号情報が管理番号設定領域に付され、一のＤＭＡＣが競合して、第１のＤＭＡ転送が停止されて、第１のＤＭＡ転送が他のＤＭＡＣに移行した場合には、管理番号の番号情報も同時に送信・設定されることが好ましい。
【００１９】
このような構成とすることにより、各ＤＭＡ転送に管理番号を付けることで、ＤＭＡ転送を最終的に完了させるＤＭＡＣがＣＰＵで最初に設定したＤＭＡＣと異なる場合に、どのＤＭＡ転送が完了したかをＣＰＵが認識することができる。
【００２０】
このとき、上記実施の態様において、一のＤＭＡＣ内蔵デバイスが第１のＤＭＡ転送を停止し、他のＤＭＡＣに対して、第１のＤＭＡの残りの未転送データを送信・設定した際に、動作中の他のＤＭＡＣに対応する前記残りの未転送エータの送信元となる前記一のＤＭＡＣに付された前記管理番号によって示される割り込み番号と、各ＤＭＡ転送の対応順を示す通し番号となるＤＭＡ管理番号と、を管理する割り込み管理部を備えていることとしてもよい。
【００２１】
このような構成とすることにより、割り込み管理部で管理された割り込み番号とＤＭＡ管理番号の対応付けによって、もし、ＣＰＵが最初に設定したＤＭＡＣの割り込み番号がＤＭＡ転送を最終的に完了させるＤＭＡＣの割り込み番号と異なる場合でも、ＣＰＵが各ＤＭＡ転送完了割り込みに対する処理を正しく実行可能となる。
【発明の効果】
【００２２】
以上説明したように本発明によれば、ＣＰＵの介在をせずに、バスシステムに接続された複数のＤＭＡＣ内蔵デバイスのバスマスタを所定の条件に応じて切り替えることが出来るので、ＤＭＡ転送が競合した場合でも、バスの帯域を最小限に抑えることによって、効率良くバスのＤＭＡ転送によるデータ転送が実現される。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２４】
まず、本発明のバス制御装置の第１の実施の形態の構成について、図面を使用しながら説明する。図１は、本実施の形態のバス制御装置の概略構成を示すブロック図である。
【００２５】
本実施の形態のバス制御装置１００は、図１に示すように、第１のＡＳＩＣ１１０と第２のＡＳＩＣ１２０が共通のデータバス１３０に接続された構造であり、第１のＡＳＩＣ１１０とＣＰＵバス１３６を介して接続されるＣＰＵ１４０で当該バス制御装置１００の動作制御が実行される。
【００２６】
第１のＡＳＩＣ１１０は、第１のメモリバス１３１を介して、不図示の外部装置からの受信データを格納する主記憶部となる第１のメモリ１１１が接続されており、第１のＩ／Ｏバス１３４を介して、バス制御装置１００の不図示の周辺装置等とのインターフェース部分となる第１のＩ／Ｏ１１２が接続されている。
【００２７】
また、第１のＡＳＩＣ１１０には、ＣＰＵ１４０を介さずに、Ｉ／Ｏ機器とメモリ間でデータバス１３０を介して直接データのやりとりをするＤＭＡ転送を制御する第１のＤＭＡＣ１１３が設けられている。すなわち、第１のＡＳＩＣ１１０は、ＤＭＡ転送を制御する第１のＤＭＡＣ１１３を含むＤＭＡＣ内蔵デバイスとなり、外部装置からの受信データを第１のメモリ１１１に書き込み、また、第１のメモリ１１１から送信データを読み出して外部装置に出力する等のデータ転送が実行される。
【００２８】
第２のＡＳＩＣ１２０は、第２のメモリバス１３２を介して、不図示の外部装置からの受信データを格納する主記憶部となる第２のメモリ１２１が接続されており、第２のＩ／Ｏバス１３５を介して、バス制御装置１００の不図示の周辺装置等とのインターフェース部分となる第２のＩ／Ｏ１２２が接続されている。
【００２９】
また、外部Ｉ／Ｆバス１３３を介して、不図示の外部装置等とのインターフェース部分となる外部Ｉ／Ｆ１５０が接続されている。この外部Ｉ／Ｆ１５０を介して、外部装置からの受信データを第２のメモリ１２１に書き込み、また、第２のメモリ１２１から送信データを読み出して外部装置に出力する等のデータ転送が実行される。
【００３０】
さらに、第２のＡＳＩＣ１２０には、第１のＡＳＩＣ１１０と同様に、ＤＭＡ転送を制御する第２のＤＭＡＣ１２３が設けられている。すなわち、第２のＡＳＩＣ１２０は、ＤＭＡ転送を制御する第２のＤＭＡＣ１２３を含むＤＭＡＣ内蔵デバイスとなり、外部装置からの受信データを第２のメモリ１２１に書き込み、また、第２のメモリ１２１から送信データを読み出して外部装置に出力する等のデータ転送が実行される。
【００３１】
また、本実施の形態では、第１および第２のＤＭＡＣ１１３、１２３は、ＤＭＡ転送を最終的に完了させるＤＭＡＣがＣＰＵ１４０で最初に設定したＤＭＡＣと異なる場合に、どのＤＭＡ転送が完了したかをＣＰＵ１４０が認識できるようにするために、動作中のＤＭＡ転送に対応する固有の管理番号が付される管理番号設定領域（図示せず）を備えている。その際に、特に、ＣＰＵ１４０でＤＭＡ転送を設定する際に、このＤＭＡ転送で転送されるデータにＤＭＡ転送に対応する管理番号が付加され、当該管理番号の番号情報を上記の管理番号設定領域に設定され、ＤＭＡＣ１１３、１２３が競合した際に、ＤＭＡ転送が停止されて、他のＤＭＡＣ１１３、１２３にＤＭＡ転送が移行した場合には、管理番号の番号情報も同時に送信・設定されることが好ましい。
【００３２】
本実施の形態のバス制御装置１００は、図１に示すように、メモリ１１１、１２１がローカルに接続されたデバイス１１０、１２０が複数個（図１では２個）、データバス１３０を介して接続されている。このような構成において、本実施の形態のバス制御装置１００は、メモリ１１１とメモリ１２１との間、またはメモリ１１１、１２１とＩ／Ｏ１１２、１２２との間でデータをＤＭＡ転送する場合に、転送中にバスマスタとなるデバイスであるＤＭＡＣ１１３、１２３を動的に切り替えることで効率的にＤＭＡ転送が行えるようにするものである。
【００３３】
次に、本実施の形態のバス制御装置１００がバスマスタの動的な切り替えによる効率的なＤＭＡ転送の実行をするための本実施の形態の特徴部に関して、図２を使用しながら説明する。図２は、図１に示す本実施の形態のバス制御装置のブロック図の詳細説明図である。
【００３４】
ＤＭＡＣ内蔵デバイスとなる第１のＡＳＩＣ１１０は、第１のＤＭＡＣ１１３の動作を制御する第１のＤＭＡＣ制御部１１４を備える。また、第１のＡＳＩＣ１１０は、図２に示すように、ＣＰＵ１４０とのインターフェースとなるＣＰＵインターフェース部１１７、第１のメモリ１１１に対する制御を実行する第１のメモリ制御部１１５と、第１のＩ／Ｏ１１２に対する制御を実行する第１のＩ／Ｏ制御部１１６を備える。
【００３５】
一方、ＤＭＡＣ内蔵デバイスとなる第２のＡＳＩＣ１２０は、第２のＤＭＡＣ１２３の動作を制御する第２のＤＭＡＣ制御部１２４を備える。また、第２のＡＳＩＣ１２０は、図２に示すように、第２のメモリ１２１に対する制御を実行する第２のメモリ制御部１２５と、第２のＩ／Ｏ１２２に対する制御を実行する第２のＩ／Ｏ制御部１２６と、外部Ｉ／Ｆ１５０に対する制御を実行する外部Ｉ／Ｆ制御部１２７を備える。
【００３６】
また、本実施の形態では、第１のＡＳＩＣ１１０と第２のＡＳＩＣ１２０は、データバス１３０を占有してバス帯域を落とすことを防止するために、データバス１３０とは、別個独立して、第１のＤＭＡ転送の未転送データのＤＭＡ転送を完了させるための設定情報を交信する設定情報専用線となるＤＭＡ制御線１６０を介して接続されている。
【００３７】
本実施の形態のバス制御装置１００をこのような構成とすることにより、第１のＡＳＩＣ１１０がデータバス１３０のバスマスタとなって動作している第１のＡＳＩＣ１１０のＤＭＡ転送を停止し、残りのＤＭＡ転送は、第２のＡＳＩＣ１２０内の第２のＤＭＡＣ１２３で行うことで、第１のＡＳＩＣ１１０内の第１のＤＭＡＣ１１３を後続のＤＭＡ転送と言った別のタスクに使用可能となる。
【００３８】
このようなＤＭＡＣ１１３、１２３を切り替える操作は、ＣＰＵ１４０を介さずに、第１のＡＳＩＣ１１０と第２のＡＳＩＣ１２０との間で、後続の転送アドレス情報や残りの転送データサイズ等のＤＭＡ転送データのやり取りを実行して、そのＤＭＡ転送データを元に、第２のＡＳＩＣ１２０の第２のＤＭＡＣ１２３へ自動で設定して、起動が行えるようにしておく。つまり、ＣＰＵ１４０は、最初に第１のＡＳＩＣ１１０内の第１のＤＭＡＣ１１３に対して、一度だけ第１のＤＭＡ転送を設定・起動を行えば、後のＤＭＡ転送の処理は、第１のＡＳＩＣ１１０の第１のＤＭＡＣ１１３の競合が発生した時点で、自動的に第１のＡＳＩＣ１１０の第１のＤＭＡＣ制御部１１４と第２のＡＳＩＣ１２０の第２のＤＭＡＣ制御部１２４との間で自動切り替えを行う。
【００３９】
これによって、空きとなった第１のＡＳＩＣ１１０内の第１のＤＭＡＣ１１３を使用して、図１に示すように、第１のメモリ１１１から第１のＩ／Ｏ１１２へのＤＭＡ転送を第１メモリバス１３１から第１のＡＳＩＣ１１０、第１のＩ／Ｏバス１３４、第１のＩ／Ｏ１１２のように最短パスで転送可能となる。
【００４０】
さらに、本実施の形態では、例えば、ＣＰＵ１４０が第１のＡＳＩＣ１１０の第１のＤＭＡ転送を停止して、第２のＤＭＡＣ１２３に対して、第１のＤＭＡ転送の残りの未転送データをＤＭＡ転送可能とする割り込み処理を正確に実行させるために、動作中の第２のＤＭＡＣ１２３に対応する割り込みソースを示す当該残りの未転送エータの送信元となる第１のＤＭＡＣ１１３の管理番号によって示される割り込み番号と、各ＤＭＡ転送の対応順を示す通し番号となるＤＭＡ管理番号と、を管理する割り込み管理部１７０を備えている。これらの割り込み番号とＤＭＡ管理番号は、割り込み管理部１７０に含まれる参照テーブルの一例となる図３に示すような割り込み番号管理テーブルに記載される。割り込み番号管理テーブルに記載されるこれらの割り込み番号とＤＭＡ管理番号は、ＣＰＵ１４０と各ＤＭＡＣ制御部１１４、１２４によって、常に最新状態を保つようにして更新される。
【００４１】
その際に、ＣＰＵ１４０が最初に第１のＤＭＡ転送を処理するために設定した第１のＡＳＩＣ１１０と、第１のＤＭＡ転送を最終的に完了させる例えば、第２のＡＳＩＣ１２０の割り込み番号が異なる場合に備えて、ＣＰＵ１４０は、当該割り込み処理を受け付けると、まず、割り込み管理部１７０内に含まれる図３に示すような割り込み番号管理テーブルを参照して、どのＤＭＡ転送が完了したことによる割り込み処理であるかを認識する。
【００４２】
例えば、ＣＰＵ１４０が第１のＤＭＡＣ１１３に対して、第１のＤＭＡ転送を設定する時に、図３に示すように、ＤＭＡ転送の対応順の通し番号となるＤＭＡ管理番号１と、割り込み要求を出す主体となる第１のＤＭＡＣ１１３の管理番号によって示される割り込み番号１を割り込み番号管理テーブルに追加する。次に、ＣＰＵ１４０は、第２のＤＭＡ転送を第１のＤＭＡＣ１１３で行わせるために、第１のＤＭＡＣ制御部１１４にＤＭＡ要求を出すと共に、ＣＰＵ１４０は、第２のＤＭＡ転送も第１のＤＭＡＣ１１３で行うつもりであるので、第１のＤＭＡ転送と同じく割り込み番号を１として、当該割り込み番号１およびＤＭＡ管理番号２を割り込み番号管理テーブルに追加する。第２のＤＭＡ転送の要求を受けた第１のＤＭＡＣ制御部１１４は、第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を第２のＤＭＡＣ１２３に行わせるために、第２のＤＭＡＣ制御部１２４に対して、ＤＭＡ管理番号（この場合、１）と共に、第１のＤＭＡ転送の未転送データのＤＭＡ転送を完了させるための設定情報となるＤＭＡ設定情報を転送し、これらを受けた第２のＤＭＡＣ制御部１２４は、自らが割り込み要求を出す主体となるので、割り込み管理部１７０の割り込み番号管理テーブルのＤＭＡ管理番号１にあたる第１のＤＭＡ転送の割り込み番号を２に更新する。
【００４３】
このように、本実施の形態では、割り込み番号およびＤＭＡ管理番号が割り込み管理部１７０内に備わる割り込み番号管理テーブルに記載され、当該割り込み番号管理テーブルをＣＰＵ１４０と各ＤＭＡＣ制御部１１４、１２４が常に最新状態に保つように更新される。このため、割り込み管理部１７０で管理された割り込み番号とＤＭＡ管理番号との対応付けによって、もし、ＣＰＵ１４０が最初に設定したＤＭＡＣの割り込み番号がＤＭＡ転送を最終的に完了させるＤＭＡＣの割り込み番号と異なる場合でも、ＣＰＵ１４０が各ＤＭＡ転送完了割り込みに対する処理を正しく実行可能となる。
【００４４】
次に、本実施の形態のバス制御装置１００によるＤＭＡ転送の動作について、図面を使用しながら説明する。図４は、本実施の形態のバス制御装置で第１のＡＳＩＣをデータバスのバスマスタとして第１のＤＭＡ転送を実行中に第１のＤＭＡＣの使用による後続の第２のＤＭＡ転送が要求された場合の動作処理を示すフローチャートであり、図５は、図４に示す第１のＤＭＡ転送の未転送データのＤＭＡ転送処理を第１のＤＭＡＣから第２のＤＭＡＣに切り替える動作処理を示すフローチャートである。
【００４５】
本実施の形態のバス制御装置１００で第１のＡＳＩＣ１１０をデータバス１３０のバスマスタとして第１のＤＭＡ転送を実行中に、第１のＤＭＡＣ１１３の使用による後続の第２のＤＭＡ転送が要求されて、第２のＤＭＡ転送が開始された場合には、まず、バスマスタ側である第１のＤＭＡＣ１１３が動作中か否かの判別が行われる（工程Ｓ４０１）。
【００４６】
工程Ｓ４０１で第１のＤＭＡＣ１１３が動作中と検出された場合には、バススレーブ側である第２のＤＭＡＣ１２３が動作中か否かの判別が行われる（工程Ｓ４１１）。
【００４７】
一方、工程Ｓ４０１で第１のＤＭＡＣ１１３が動作中と検出されない場合には、第１のＤＭＡＣ１１３に対して、ＣＰＵ１４０は、第２のＤＭＡ転送の設定をする（工程Ｓ４０２）。
【００４８】
その後、第１のＤＭＡＣ１１３に対して、第２のＤＭＡ転送を開始してから（工程Ｓ４０３）、第２のＤＭＡ転送完了の割り込みが有るか否かの判別が行われる（工程Ｓ４０４）。工程Ｓ４０４で第２のＤＭＡ転送完了の割り込みが有ると検出された場合は、第２のＤＭＡ転送が終了となる。一方、工程Ｓ４０４で第２のＤＭＡ転送完了の割り込みが無いと検出された場合は、再度、第２のＤＭＡ転送完了の割り込みが有るか否かの判別が行われる（工程Ｓ４０４）。
【００４９】
工程Ｓ４１１でバススレーブ側である第２のＤＭＡＣ１２３が動作中でないと検出されると、バス使用効率の検証を行う（工程Ｓ４１２）。工程Ｓ４１２では、動作中の第１のＤＭＡ転送を停止して、未処理分の残りの第１のＤＭＡ転送を第２のＤＭＡＣ１２３に処理させて、第２のＤＭＡ転送を第１のＤＭＡＣ１１３で処理させる場合でのデータバス１３０の使用効率と、第１のＤＭＡ転送を第１のＤＭＡＣ１１３でそのまま動作させながら、第２のＤＭＡ転送を第２のＤＭＡＣ１２３で処理させる場合でのデータバス１３０の使用効率を検証する。データバス１３０の使用効率は、どれだけデータバス１３０が占有されているかの判断を元に算出され、具体的には、クロック（時間）を元に算出される。
【００５０】
工程Ｓ４１２でのバス効率の検証をしてから、データバス１３０の使用効率が第１のＤＭＡＣ１１３の使用効率の方が高いか否かの判別が行われる（工程Ｓ４１３）。工程Ｓ４１３でデータバス１３０の使用効率に関して、第１のＤＭＡＣ１１３の使用効率の方が低いと検出されたら、その後、第２のＤＭＡＣ１２３に対して、ＣＰＵ１４０で第２のＤＭＡ転送を設定して（工程Ｓ４１４）、第２のＤＭＡＣ１２３に対して、第２のＤＭＡ転送を開始する（工程Ｓ４１５）。
【００５１】
第２のＤＭＡ転送を開始した後は、第２のＤＭＡ転送完了の割り込みの有無の判別が行われる（工程Ｓ４１６）。工程Ｓ４１６で第２のＤＭＡ転送完了の割り込みが有りと検出されたら、第２のＤＭＡ転送が終了する。一方、工程Ｓ４１６で第２のＤＭＡ転送完了の割り込みが無いと検出されたら、再度、第２のＤＭＡ転送を開始した後は、第２のＤＭＡ転送完了の割り込みの有無の判別が行われる（工程Ｓ４１６）。
【００５２】
また、工程Ｓ４１３でデータバス１３０の使用効率に関して第１のＤＭＡＣ１１３の使用効率の方が高いと検出されたら、動作中の第１のＤＭＡＣ１１３の残り転送量が少ないか否かの判別が行われる（工程Ｓ４１７）。工程Ｓ４１７で動作中の第１のＤＭＡＣ１１３の残り転送量が少ないと検出された場合は、その後、第２のＤＭＡＣ１２３に対して、ＣＰＵ１４０で第２のＤＭＡ転送を設定して（工程Ｓ４１４）、工程Ｓ４１４以降は、上述したように、工程Ｓ４１５、工程Ｓ４１６へと続く。
【００５３】
一方、工程Ｓ４１７で動作中の第１のＤＭＡＣ１１３の残り転送量が少ないと検出されなかった場合は、その後、図５に示す第１のＤＭＡ転送の未転送データのＤＭＡ転送処理を第１のＤＭＡＣ１１３から第２のＤＭＡＣ１２３に切り替える動作処理に移行する。
【００５４】
図５に示すように、第１のＤＭＡ転送の未転送データの転送処理を第１のＤＭＡＣ１１３から第２のＤＭＡＣ１２３に切り替える動作処理を開始すると、まず、第１のＤＭＡＣ制御部１１４が第１のＤＭＡＣ１１３の動作を停止させる（工程Ｓ５０１）。その後、第１のＤＭＡ転送の未転送データである残りの転送情報を第２のＤＭＡＣ制御部１２４に送信する（工程Ｓ５０２）。
【００５５】
第１のＤＭＡ転送の残りの転送情報を第２のＤＭＡＣ制御部１２４が受信すると、第２のＤＭＡＣ制御部１２４は、第２のＤＭＡＣ１２３に対して、第１のＤＭＡ転送の残りの転送情報となる未転送データのＤＭＡ転送を設定する（工程Ｓ５０３）。
【００５６】
その後、動作中の第２のＤＭＡＣ１２３に対応する割り込みソースを管理する割り込み管理部１７０に備わる割り込み番号管理テーブルの割り込み管理情報の更新をする（工程Ｓ５０４）。
【００５７】
割り込み管理情報を更新後、第２のＤＭＡＣ１２３に対して、第１のＤＭＡ転送の残りの転送情報となる未転送データの転送を開始する（工程Ｓ５０５）。
【００５８】
その後、第１のＤＭＡＣ１１３に対して、ＣＰＵ１４０で第２のＤＭＡ転送が設定されて（工程Ｓ５０６）、第１のＤＭＡＣ１１３に対して、第２のＤＭＡ転送が開始される（工程Ｓ５０７）。
【００５９】
第２のＤＭＡ転送が開始以降に、第２のＤＭＡ転送完了割り込みの有無が判別される（工程Ｓ５０８）。工程Ｓ５０８で第２のＤＭＡ転送完了割り込みが有ると検出されると、第２のＤＭＡ転送は、終了する。一方、第２のＤＭＡ転送完了割り込みが無いと検出されると、また、第２のＤＭＡ転送完了割り込みの有無が判別される（工程Ｓ５０８）。
【００６０】
なお、第１のＤＭＡＣ制御部１１４は、使用するＤＭＡＣを切り替えることでデータの転送効率が上がっても、動作中のＤＭＡ転送の残り転送データが少ないために、ＤＭＡＣの切り替え処理を行っている間に、動作中のＤＭＡ転送が完了する場合には、バスマスタを切り替えるよりも、現在動作中のＤＭＡ転送が完了するのを待った方が効率良くなるため、ＤＭＡＣを切り替えずに、動作中のＤＭＡ転送の完了まで待機する。
【００６１】
以上説明したように、本実施の形態のバス制御装置１００は、第１のＡＳＩＣ１１０をデータバス１３０のバスマスタとして第１のＤＭＡ転送を実行中に、第１のＤＭＡＣ１１３の使用による後続の第２のＤＭＡ転送が要求された場合に、所定の条件に応じて、第１のＤＭＡＣ制御部１１４から第２のＤＭＡＣ制御部１２４に、第１のＤＭＡ転送の残りの未転送データのＤＭＡ転送を完了させるための設定情報を送信してから、第２のＤＭＡ転送を第１のＤＭＡＣ１１３で実行させる。
【００６２】
このため、第１のＤＭＡＣ１１３が動作中に当該第１のＤＭＡＣ１１３を第２のＤＭＡ転送のために使用したい場合に、動作中の第１のＤＭＡＣ１１３の動作完了まで待つ必要がなくなるので、ＤＭＡ転送が競合した場合でのデータバス１３０でのデータ転送に余分な時間をかけずに迅速に実行されるようになる。また、最初から第２のＤＭＡ転送を第２のＤＭＡＣ１２３で実行する場合は、データバス１３０の無駄な占有を引き起こす場合があるため、ＤＭＡ転送が競合した場合のバスの帯域を最小限に抑えることができる。さらに、ＣＰＵ１４０が介在することなく、各デバイスのＤＭＡＣ制御部同士がデータバス１３０あるいはＤＭＡ制御線１６０を介して設定情報のやり取りを行うので、バス制御装置１００の動作制御をするＣＰＵ１４０は、最初に１回だけＤＭＡ設定を行えば、途中でＤＭＡ転送を停止したり、再設定したりする必要がなくなるので、ＣＰＵ１４０での動作制御の無駄を削減できる。
【００６３】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００６４】
例えば、上述の第１の実施の形態では、データバスを共有するＤＭＡＣ内蔵デバイスとなるＡＳＩＣの数が２つの場合について説明しているが、当該データバスを共有するＤＭＡＣ内蔵デバイスとなるＡＳＩＣは、３つ以上のバスシステムにも本発明のバス制御装置を適用可能である。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施形態におけるバス制御装置の概略構成を示すブロック図である。
【図２】同実施の形態におけるバス制御装置のブロック図の詳細説明図である。
【図３】同実施の形態におけるバス制御装置の割り込み管理部内に含まれる割り込み番号管理テーブルの一例を示す図である。
【図４】同実施の形態におけるバス制御装置で第１のＡＳＩＣをデータバスのバスマスタとして、第１のＤＭＡ転送を実行中に第１のＤＭＡＣの使用による後続の第２のＤＭＡ転送が要求された場合の動作処理を示すフローチャートである。
【図５】図４に示す第１のＤＭＡ転送の未転送データの転送処理を第１のＤＭＡＣから第２のＤＭＡＣに切り替える動作処理を示すフローチャートである。
【図６】従来のバス制御装置の概略構成を示すブロック図である。
【符号の説明】
【００６６】
１００      バス制御装置
１１０      一のＤＭＡＣ内蔵デバイス（第１のＡＳＩＣ）
１１３      一のＤＭＡＣ（第１のＤＭＡＣ）
１１４      一のＤＭＡＣ制御部（第１のＤＭＡＣ制御部）
１２０      他のＤＭＡＣ内蔵デバイス（第２のＡＳＩＣ）
１２３      他のＤＭＡＣ（第２のＤＭＡＣ）
１２４      他のＤＭＡＣ制御部（第２のＤＭＡＣ制御部）
１３０      データバス
１４０      ＣＰＵ
１６０      設定情報専用線（ＤＭＡ制御線）
１７０      割り込み管理部
【図１】
2008165463.tif 000003
【図２】
2008165463.tif 000004
【図３】
2008165463.tif 000005
【図４】
2008165463.tif 000006
【図５】
2008165463.tif 000007
【図６】
2008165463.tif 000008