(57)【特許請求の範囲】
【請求項１】
共有バスに接続されたＤＭＡコントローラ及びプロセッサを有し、前記ＤＭＡコントローラにより行われるＤＭＡ（ダイレクト・メモリ・アクセス）を制御するデータ転送制御装置におけるデータ転送制御方法であって、
共有バスのビジー時間を監視することで、ＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送によるバス使用率を算出し、
前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定機能、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定設定により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入機能をバス・インタフェースによって実行し、
メモリを有して、各ＤＭＡコントローラに関連付けられて設けられ、ＤＭＡが必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズの情報を前記メモリに格納し、前記メモリに記憶してある新たに要求されたＤＭＡが必要とするデータ転送レート、１回のＤＭＡで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたＤＭＡのバス使用率を算出し、
新たなＤＭＡの起動が要求された際に、前記ＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出機能により算出された新たに要求されたＤＭＡのバス使用率に基づいて新たに要求されたＤＭＡの起動の可／不可を判断し、
可能と判断された場合には新たに要求されたＤＭＡを起動させ、
不可能と判断された場合には新たに要求されたＤＭＡの起動を待機させ、
既に実行されている何れかのＤＭＡが終了し、前記共有バスに新たに要求されたＤＭＡを実行する余裕が生じた時点で待機させていたＤＭＡを起動させることを特徴とするデータ転送制御方法。
【請求項２】
新たなＤＭＡの起動が要求された際の起動の可／不可の判断により、不可能と判断された場合にはそのＤＭＡの起動を待機キューを用いて待機要求の管理を行い、
ＤＭＡを用いる各インタフェースに優先度付けがなされている場合には優先度によってＤＭＡの待機の順序を入替えることを特徴とする請求項１記載のデータ転送制御方法。
【請求項３】
共有バスに接続されたＤＭＡコントローラ及びプロセッサを有し、前記ＤＭＡコントローラにより行われるＤＭＡ（ダイレクト・メモリ・アクセス）を制御するデータ転送制御装置であって、
共有バスのビジー時間を監視することで、ＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送によるバス使用率を算出する監視手段と、
前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定手段、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定手段により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入手段を有するバス・インタフェースと、
各ＤＭＡコントローラに関連付けられて設けられ、ＤＭＡが必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズの情報が格納されたメモリを有して、前記メモリに記憶してある新たに要求されたＤＭＡが必要とするデータ転送レート、１回のＤＭＡで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたＤＭＡのバス使用率を算出するバス使用率算出手段と、
新たなＤＭＡの起動が要求された際に、前記監視手段により算出したＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出手段により算出された新たに要求されたＤＭＡのバス使用率に基づいて新たに要求されたＤＭＡの起動の可／不可を判断する判断手段と、
可能と判断された場合には新たに要求されたＤＭＡを起動させる起動手段と、
不可能と判断された場合には新たに要求されたＤＭＡの起動を待機させる待機手段と、
既に実行されている何れかのＤＭＡが終了し、前記共有バスに新たに要求されたＤＭＡを実行する余裕が生じた時点で待機させていたＤＭＡを起動させる待機後起動手段と、
備えることを特徴とするデータ転送制御装置。
【請求項４】
新たなＤＭＡの起動が要求された際の起動の可／不可の判断により、不可能と判断された場合にはそのＤＭＡの起動を待機キューを用いて待機要求の管理を行う待機要求管理手段と、
ＤＭＡを用いる各インタフェースに優先度付けがなされている場合には優先度によってＤＭＡの待機の順序を入替える優先度処理手段とを、さらに備えることを特徴とする請求項３記載のデータ転送制御装置。
【請求項５】
共有バスに接続されたＤＭＡコントローラ及びプロセッサを有し、前記ＤＭＡコントローラにより行われるＤＭＡ（ダイレクト・メモリ・アクセス）を制御するデータ転送制御装置におけるコンピュータで読み取り可能な情報記録媒体であって、
共有バスのビジー時間を監視することで、ＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送によるバス使用率を算出する監視手順と、
前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定機能、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定設定により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入機能をバス・インタフェースによって実行するバス・インタフェース手順と、
メモリを有し、各ＤＭＡコントローラに関連付けられて設けられ、ＤＭＡが必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズの情報を格納し、前記メモリに記憶してある新たに要求されたＤＭＡが必要とするデータ転送レート、１回のＤＭＡで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたＤＭＡのバス使用率を算出する手順と、
新たなＤＭＡの起動が要求された際に、前記監視機能により算出したＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出機能により算出された新たに要求されたＤＭＡのバス使用率に基づいて新たに要求されたＤＭＡの起動の可／不可を判断する手順と、
可能と判断された場合には新たに要求されたＤＭＡを起動させる手順と、
不可能と判断された場合には新たに要求されたＤＭＡの起動を待機させる手順と、
既に実行されている何れかのＤＭＡが終了し、前記共有バスに新たに要求されたＤＭＡを実行する余裕が生じた時点で待機させていたＤＭＡを起動させる手順と、
をコンピュータに実行させるためのプログラムが記録されていることを特徴とする情報記録媒体。
【請求項６】
新たなＤＭＡの起動が要求された際の起動の可／不可の判断により、不可能と判断された場合にはそのＤＭＡの起動を待機キューを用いて待機要求の管理を行う手順と、
ＤＭＡを用いる各インタフェースに優先度付けがなされている場合には優先度によってＤＭＡの待機の順序を入替える手順と、
を前記コンピュータに実行させるためのプログラムが記録されていることを特徴とする請求項５記載の情報記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、共有バスにＤＭＡコントローラを接続してデータ転送を行なうコンピュータ構成の情報処理装置におけるデータ転送制御方法、データ転送制御装置及び情報記録媒体に関する。
【０００２】
【従来の技術】
一般に、情報処理装置では、周辺装置との間でデータの授受を行なうために、システムバス或いはＩ／ＯバスにＤＭＡコントローラ（以下、「ＤＭＡＣ」と略して示す）を接続し、このＤＭＡＣを用いてＤＭＡ（ダイレクト・メモリ・アクセス）、即ち、メモリに対して直接アクセスを行なうようにしている。
【０００３】
ここで、周辺装置との間で行なわれるデータ転送は、その多くが非同期方式であり、ハンド・シェイクを行ないながらデータを転送することが多い。つまり、これらのデータ転送には明確な帯域（バンド）がなく、ＤＭＡによりメモリからデータを読み込めたときがデータを周辺装置に対して送出するタイミングであり、また、ＤＭＡによりメモリに対してデータを書き込めたときが続くデータを受信できるタイミングである。
【０００４】
また、周辺装置或いはネットワークとの間で、同期的にデータ転送を行なう場合には、その同期的なデータ転送のバンドを考慮し、また、同一のバス上で行なわれるデータ転送の最大転送バンドを考慮に加え、さらに、ＣＰＵによって同一のバス上で行なわれるトランザクションによって消費されるバンドを考慮して、バスの仕様を決定し、バスを設計或いは選定し、これらの全てのトランザクションが滞らずに行なわれることを保証している。
【０００５】
【発明が解決しようとする課題】
ところが、システムを設計する際に、上記のようにバス上で行なわれるデータ転送の各バンドを考慮し、システムバス、Ｉ／Ｏバスに行なわれる総バンドからバスの仕様を決定し、バスを設計或いは選定することで、これらの全てのトランザクションが滞らずに行なわれることを保証する方式によると、殆ど起こる可能性のないバスの輻輳状態時以外においては過度な仕様となってしまう。
【０００６】
また、拡張Ｉ／Ｏにおいては、さらにどのような拡張ボードが実装され、どの程度のデータ転送バンドが要求されるかはシステム設計時には判断がつかず、システム使用時に予想以上にバスが輻輳状態に陥って、各データ転送のバンドを保証できない状況を生じてしまうことがある。
【０００７】
特に、従来の情報処理装置におけるデータ転送制御では、ＤＭＡＣやＣＰＵ等を接続するバスのバンド及び周辺装置との間のデータ転送のバンドを考慮していないため、既にバスが飽和している状況下であっても、アプリケーション・プログラム等によって新たなデータ転送が要求されたならば、これを受けて新たなＤＭＡを開始してしまうことになる。このような状況が発生すると、或るバンドで同期的なデータ転送を行なうインタフェースではデータの欠損が生じ、システムとしては致命的な状況となり得る。これは、新たに開始したＤＭＡを用いたインタフェースに関わるだけでなく、その他全ての同期的なデータ転送を行なうインタフェースに同様な問題を生ずる。
【０００８】
例えば、Ｖideo インタフェース、ネットワーク・インタフェースのように或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス上で既に行なわれているような状況下で、アプリケーション・プログラム等により新たなインタフェースでのデータ転送が要求された時に、共有バスのバンド幅上、新たなＤＭＡを起動する余地がない場合でも、この新たなＤＭＡを起動させてしまうので、これらのデータ転送が保証されなくなってしまう。これは、大量データのコピー操作等の連続したデータ転送や周期的に実行されるプログラムによるデータ転送が要求された場合には、特に問題となる。
【０００９】
また、例えばＩＥＥＥ１３９４のように１つのインタフェース上に１００ＭＨｚ，２００ＭＨｚ，４００ＭＨｚといった周波数のデータが混在する場合、インタフェースからデータを受信するまでその受信データのデータ転送レートは判らず、このデータをメモリに記憶するために用いるＤＭＡの必要とするバンド幅も特定できない場合もあり、メモリに確実にデータを記憶させることができないこともある。
【００１０】
或いは、非同期のインタフェースでは、前述したようにハンドシェイクによりデータの送受信が行なわれるため、通信する相手によってデータ転送レートが左右され、このデータをメモリに記憶させるために用いるＤＭＡの必要とするバンド幅も特定できない状況にあり、通信する相手によってはメモリに確実にデータを記憶させることができないこともある。
【００１１】
そこで、本発明は、共有バスに接続され、所定のデータ転送レートを必要とする複数のＤＭＡＣに対して、必要とするデータ転送レートによるデータ転送を保証し得るデータ転送制御方法、データ転送制御装置及び情報記録媒体を提供することを目的とする。
【００１２】
【課題を解決するための手段】
請求項１記載のデータ転送制御方法の発明は、共有バスに接続されたＤＭＡコントローラ及びプロセッサを有し、前記ＤＭＡコントローラにより行われるＤＭＡ（ダイレクト・メモリ・アクセス）を制御するデータ転送制御装置におけるデータ転送制御方法であって、共有バスのビジー時間を監視することで、ＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送によるバス使用率を算出し、前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定機能、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定設定により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入機能をバス・インタフェースによって実行し、メモリを有して、各ＤＭＡコントローラに関連付けられて設けられ、ＤＭＡが必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズの情報を前記メモリに格納し、前記メモリに記憶してある新たに要求されたＤＭＡが必要とするデータ転送レート、１回のＤＭＡで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたＤＭＡのバス使用率を算出し、新たなＤＭＡの起動が要求された際に、前記ＤＭＡ起動済みの全ＤＭＡコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出機能により算出された新たに要求されたＤＭＡのバス使用率に基づいて新たに要求されたＤＭＡの起動の可／不可を判断し、可能と判断された場合には新たに要求されたＤＭＡを起動させ、不可能と判断された場合には新たに要求されたＤＭＡの起動を待機させ、既に実行されている何れかのＤＭＡが終了し、前記共有バスに新たに要求されたＤＭＡを実行する余裕が生じた時点で待機させていたＤＭＡを起動させることを特徴とする。
【００１３】
従って、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るＤＭＡの起動が要求された場合には、監視手段が全ＤＭＡコントローラにより行われるデータ転送によるバス使用率を算出し、バス・インタフェースにおいては、設定手段が各プロセッサのバス使用率を設定し、共有バスでのバス使用率が設定されたプロセッサごとのバス使用率を上回らないようにウェイトを挿入し、バス使用率算出手段が、各ＤＭＡコントローラに関連付けられて新たに要求されたＤＭＡのバス使用率を算出し、共有バスのバンド幅上、新たなＤＭＡを起動させる余裕がない場合にはその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス上で既に行なわれているときに、新たなＤＭＡが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。
【００１４】
このような請求項１記載のデータ転送制御方法の発明は、例えば、請求項３記載のデータ転送制御装置によって実現される他、請求項５記載の情報記録媒体に記録されたプログラムをコンピュータに読み取らせることによっても実現される。
【００１５】
請求項２記載の発明は、請求項１記載のデータ転送制御方法において、新たなＤＭＡの起動が要求された際の起動の可／不可の判断により、不可能と判断された場合にはそのＤＭＡの起動を待機キューを用いて待機要求の管理を行い、ＤＭＡを用いる各インタフェースに優先度付けがなされている場合には優先度によってＤＭＡの待機の順序を入替えることを特徴とする。
【００１６】
従って、新たに要求されたＤＭＡの起動の可／不可を判断し、不可能と判断した場合には待機要求を出して管理し、また、優先度が付けられている場合には、該優先度によってＤＭＡの待機の順序を入れ替えることができるので、優先順位に従ってＤＭＡを起動させることができ、しかも、特殊回路の組み込みに伴うハード構成の変更を必要としない。
【００１７】
このような請求項２記載のデータ転送制御方法の発明は、例えば、請求項４記載のデータ転送制御装置によって実現される他、請求項６記載の情報記録媒体に記録されたプログラムをコンピュータに読み取らせることによっても実現される。
【００４８】
【発明の実施の形態】
本発明の第一の実施の形態を図１ないし図３に基づいて説明する。本実施の形態のデータ転送制御方法は、そのハードウェア構成として、図１に示すような情報処理装置１を利用している。
【００４９】
この情報処理装置１は、１個のコンピュータシステムによるものであり、コンピュータの主体として２つのプロセッサ（ＰＵ）２，３を備えている。これらのプロセッサ２，３は、特に図示しないが、ＣＰＵと、ＣＰＵにバス接続されたＲＯＭ及びＲＡＭとによるマイクロコンピュータ構成とされている。これらのプロセッサ２，３が接続された共有バス４には、主記憶５が接続されている他、複数のインタフェース・モジュール（Ｉ／Ｆモジュール）６，７及びＩ／Ｆボード８が接続されている。
【００５０】
主記憶５は、例えば、ＨＤＤ（Ｈard Ｄisc Ｄrive）により構成されている他、必要に応じて、フロッピディスクが装填されるＦＤＤ（Ｆloppy Ｄisc Ｄrive）、ＣＤ‐ＲＯＭが装填されるＣＤ‐ＲＯＭドライブ等により構成されている。
【００５１】
Ｉ／Ｆモジュール６は、同期出力Ｉ／Ｆモジュールであり、同期出力Ｉ／Ｆ９において出力するデータを前記主記憶５からＤＭＡによって読み込むＤＭＡＣ１０と、このＤＭＡＣ１０に接続されたＲＯＭ（不揮発性のメモリ）１１と、同期出力Ｉ／Ｆ９を制御する同期出力Ｉ／Ｆ回路１２とにより構成されている。
【００５２】
Ｉ／Ｆモジュール７は、ネットワークＩ／Ｆモジュールであり、ネットワークＩ／Ｆ１３において受信するデータをＤＭＡを用いて前記主記憶５に書き込むＤＭＡＣ１４と、このＤＭＡＣ１４に接続されたＲＯＭ（不揮発性のメモリ）１５と、ネットワークＩ／Ｆ１３を制御するネットワークＩ／Ｆ回路１６とにより構成されている。
【００５３】
Ｉ／Ｆボード８は、非同期Ｉ／Ｆボードであり、拡張スロット１７を介して前記共有バス４に接続されており、ボードが接続される共有バス４とのインタフェースを制御するバスＩ／Ｆ回路１８と、このバスＩ／Ｆ回路１８に接続されてボードの情報を提供するＲＯＭ（不揮発性のメモリ）１９と、非同期Ｉ／Ｆ２０において送受信するデータを前記主記憶に対してＤＭＡするＤＭＡＣ２１と、前記非同期Ｉ／Ｆ２０を制御する非同期Ｉ／Ｆ回路２２とにより構成されている。非同期Ｉ／Ｆボード８に対しては非同期Ｉ／Ｆ２０を介して２次記憶装置２３が接続されている。
【００５４】
ここで、このような情報処理装置１は、各種データを一時記憶するデータ記憶デバイスとしては、プロセッサ２，３や主記憶５におけるＲＡＭ，ＨＤＤ，フロッピディスク等が設けられており、予め記録されたプログラム等のソフトウェアをプロセッサ２，３中のＣＰＵに提供できる情報記録媒体としては、プロセッサ２，３や主記憶５におけるＲＯＭ，ＲＡＭ，ＨＤＤ，フロッピディスク，ＣＤ‐ＲＯＭ等が設けられている。なお、フロッピディスクやＣＤ‐ＲＯＭは、情報処理装置１に固定的には設けられておらず、単体で取扱える交換自在な情報記録媒体としての形態を備える。そして、コンピュータの主体としてのプロセッサ２，３中のＣＰＵは、交換自在な情報記録媒体としての形態を備えたフロッピディスクやＣＤ‐ＲＯＭ等にソフトウェアとして予め設定された制御プログラムによって各種の処理動作を実行する。このような制御プログラムは、ＣＤ‐ＲＯＭドライプにより読み取られるＣＤ‐ＲＯＭに格納されていたり、ＨＤＤに予めインストールされている。何れにしても、情報処理装置１の起動時に、このような制御プログラムがプロセッサ２，３中のＲＡＭに複写されてＣＰＵに読み取られ、各種の処理動作が実行される。
【００５５】
このような情報処理装置１におけるデータ転送制御方法を図２及び図３に示すフローチャートを参照して説明する。まず、システムの立上り時にプロセッサ２，３のバス使用率を想定し（ステップＳ１）、共有バス４に接続されているプロセッサ２，３の個数（ここでは、２個）とこの想定したバス使用率とを乗算することで全プロセッサ２，３によって使用されるバス使用率を算出する（Ｓ２）。算出されたバス使用率をＢＰとする。その後、アプリケーションプログラム或いはシステム制御プログラムより、或るインタフェースに対する制御要求があるまで待機し（Ｓ３）、制御要求があったら受け付ける。制御要求を受け付けた場合（Ｓ３のＹ）、その要求内容を判別する（Ｓ４）。
【００５６】
要求内容の判別の結果、インタフェースにおけるデータ転送を要求するものである場合には、そのインタフェースを制御するデバイス・ドライバによってＤＭＡの起動が要求された際に（Ｓ５）、Ｉ／Ｆモジュール６，７又は８内の固定アドレスに置かれたＲＯＭ１１，１５又は１９からＤＭＡの必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズとを読出す（Ｓ６）。ここで、ＲＯＭはＤＭＡＣに物理的に接続されているか否かは問わない（本実施の形態では、ＲＯＭ１１，１５はＤＭＡＣ１０，１４に接続されているが、ＲＯＭ１９はバスＩ／Ｆ回路１８を介してＤＭＡＣ２１に接続されている）。また、ＤＭＡの必要とするデータ転送レートは、同期出力Ｉ／Ｆ９に係るＤＭＡにおいてはこの同期出力Ｉ／Ｆ９におけるデータ転送レートであり、非同期Ｉ／Ｆ２０に係るＤＭＡにおいてはインタフェース信号の規定上考え得る最大のデータ転送レートである。ＲＯＭからのデータの読出しとともに、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このインタフェースのがデータ転送によってバスを使用するバス使用率ＤＰを算出する（Ｓ７）。
【００５７】
そこで、この時点で既に起動されている全ＤＭＡ及び全プロセッサ２，３によって使用されるバス使用率ＢＰと、算出されたバス使用率ＤＰとが、
ＤＰ＞１−ＢＰ
なる関係にあるか否かにより、新たに要求されたＤＭＡの起動の可／不可を判断する（Ｓ８）。ここに、本発明におけるＤＭＡの起動の可／不可を判断する手順或いは判断手段の機能が実行される。
【００５８】
ここで、ＤＰ＞１−ＢＰなる関係を満たす場合には（Ｓ８のＹ）、ＤＭＡの起動が不可能であると判断し、待機キューにこのＤＭＡの起動を登録し（Ｓ９）、後述する割込処理を待つ待機状態となる。ここに、本発明におけるＤＭＡの起動を待機させる手順或いは待機手段の機能が実行される。
【００５９】
一方、ＤＰ＞１−ＢＰなる関係を満たさない場合には（Ｓ８のＮ）、ＤＭＡの起動が可能であると判断し、バス使用率ＢＰに算出された今回用のバス使用率ＤＰを加算してバス使用率ＢＰを更新する（Ｓ１０）。ここに、本発明における加算する手順或いは加算手段の機能が実行される。更新後、新たに要求された今回のＤＭＡを起動させる（Ｓ１１）。ここに、本発明におけるＤＭＡを起動させる手順或いは起動手段の機能が実行される。
【００６０】
また、ステップＳ４における要求内容の判別の結果、受け付けた制御要求がネットワークＩ／Ｆ１３をアクティベートするものの場合には、ネットワークＩ／Ｆモジュール７内の固定アドレスに置かれたＲＯＭ１５からネットワークの最大周波数でデータ受信した時に受信データを確実にメモリに書き込むためにＤＭＡが必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズを読出し（Ｓ１２）、ステップＳ７の場合と同様に、ネットワークＩ／Ｆ１３のＤＭＡがデータ転送によって共有バス４を使用するバス使用率ＤＰを算出する（Ｓ１３）。バス使用率ＤＰを算出した後は、前述した場合と同様に、ステップＳ８による判断処理を行なう。この場合の判断処理は、インタフェースのアクティベートの可／不可を判断する処理となる。アクティベートが可能と判断された場合には（Ｓ８のＮ）、ステップＳ１０，Ｓ１１の手順を経る。アクティベートが不可能と判断された場合には（Ｓ８のＹ）、アクティベーションを待機させる（Ｓ９）。
【００６１】
さらに、ステップＳ４における要求内容の判別の結果、受け付けた制御要求がネットワークＩ／Ｆ１３をインアクティベートするものであれば、ネットワークＩ／Ｆ１３に係るＤＭＡが既に起動されているか否かを判断する（Ｓ１４）。既に起動していれば（Ｓ１４のＹ）、そのＤＭＡを停止させ（Ｓ１５）、かつ、このＤＭＡを起動する際に算出されてバス使用率ＢＰに加算されたバス使用率ＤＰをＢＰから減算してバス使用率ＢＰを更新する（Ｓ１６）。ここに、本発明における減算する手順或いは減算手段の機能が実行される。一方、このＤＭＡがまだ起動されていなければ（Ｓ１４のＮ）、待機キューにあるＤＭＡ起動要求を削除する（Ｓ１７）。
【００６２】
また、既に起動されているＤＭＡの終了に伴う割込処理（図３参照）においては、まず、ネットワークＩ／Ｆ１３に係るＤＭＡの終了であるか否かを判断する（Ｓ１８）。ネットワークＩ／Ｆ１３に係るＤＭＡの終了であれば（Ｓ１８のＹ）、ネットワークＩ／Ｆ１３のデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行なう（Ｓ１９）。一方、ネットワークＩ／Ｆ１３以外のインタフェースに係るＤＭＡの終了であれば（Ｓ１８のＮ）、該当するデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行い（Ｓ２０）、さらに、このＤＭＡを起動する際に算出されてバス使用率ＢＰに加算されたバス使用率ＤＰをＢＰから減算してバス使用率ＢＰを更新する（Ｓ２１）。このステップＳ２１においても、本発明における減算する手順或いは減算手段の機能が実行される。
【００６３】
その後、待機キューに待機されているＤＭＡが存在するか否かを判断し（Ｓ２２）、待機されているＤＭＡが存在すれば待機キューの先頭に置かれているＤＭＡに関して算出されたバス使用率ＤＰとステップＳ２１で更新されたバス使用率ＢＰとから、
ＤＰ＞１−ＢＰ
なる関係にあるか否かにより、待機キューの先頭のＤＭＡを実行する余裕が生じたか否かを判断する（Ｓ２３）。ＤＰ＞１−ＢＰなる関係になく余裕が生じたと判断されると（Ｓ２３のＮ）、待機キューから当該ＤＭＡを取り除き（Ｓ２４）、さらに、バス使用率ＢＰに当該ＤＭＡ用のバス使用率ＤＰを加算してバス使用率ＢＰを更新した後で（Ｓ２５）、待機されていたこのＤＭＡを起動させる（Ｓ２６）。これらのステップＳ２２〜Ｓ２６により、本発明における待機後のＤＭＡを起動させる手順或いは待機後起動手段の機能が実行される。ネットワークＩ／Ｆ１３に関わるアクティベートの場合であれば、待機後のインタフェースをアクティベーションを実行させる手順或いは待機後アクティベーション実行手段の機能として実行される。
【００６４】
従って、本実施の形態によれば、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るＤＭＡの起動が要求された場合には、共有バス４のバンド幅上、新たなＤＭＡを起動させる余裕がない場合にはその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス４上で既に行なわれているときに、新たなＤＭＡが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。つまり、共有バス４に接続され、所定のデータ転送レートを必要とする複数のＤＭＡＣ１０，１４，２１に対して、必要とするデータ転送レートによるデータ転送を保証することができる。また、新たに要求されたＤＭＡの起動の可／不可を判断するために用いる現時点のバス使用率ＢＰは、既に起動されているＤＭＡに係る情報に基づき容易に算出することができるので、特殊回路の組み込みに伴うハード構成の変更も必要としない。
【００６５】
また、ネットワークＩ／Ｆ１３に関連して、そのインタフェースからデータを受信するまでその受信データのデータ転送レートが判らず、このデータをメモリに記憶させるために用いるＤＭＡの必要とするバンド幅も特定できないような状況下であっても、インタフェースでの最大転送レートを用いてバスのバンド幅の予約ができるので、どのような周波数のデータを受信した場合にもメモリにデータを確実に記憶させることができる。
【００６６】
さらに、非同期Ｉ／Ｆ２０ではハンドシェイクによりデータの送受信を行なうため、通信する相手によってデータ転送レートが左右され、このデータをメモリに記憶させるために用いるＤＭＡの必要とするバンド幅も特定できない状況であっても、インタフェース信号線の規定上考え得る最大のデータ転送レートを用いてバスのバンド幅を予約することができるので、どのような相手と通信する場合にもメモリにデータを確実に記憶させることができる。
【００６７】
本発明の第二の実施の形態を図４ないし図６に基づいて説明する。前記実施の形態で示した部分と同一部分は同一符号を用いて示し、説明も省略する（後述する実施の形態でも同様とする）。本実施の形態のデータ転送制御方法は、そのハードウェア構成として、図４に示すような情報処理装置３１を利用している。
【００６８】
この情報処理装置３１も、１個のコンピュータシステムによるものである。本実施の形態では、プロセッサ２，３に対して各々バスＩ／Ｆ回路３２，３３を備えたプロセッサ・ユニット・モジュール３４，３５が用いられている。ここに、前記バスＩ／Ｆ回路３２，３３は、共有バス４に接続されてバスのインタフェース制御を行なうとともに、各プロセッサ２，３による共有バス４でのバス使用率を設定する設定手段と、設定されたバス使用率を上回らないように各プロセッサ２，３によるバスアクセスに対してウエイト（待機）を挿入するウエイト挿入手段を備えている（或いは、後述する実施の形態の如く、各プロセッサ２，３の単位時間当りの使用時間を設定する設定手段と、単位時間においてプロセッサ２，３による共有バス４の使用時間が設定手段により設定された使用時間を上回らないように各プロセッサ２，３によるバスアクセスに対してウエイトを挿入するウエイト挿入手段を備えている）。
【００６９】
また、共有バス４に対してはこの共有バス４に接続されたＤＭＡＣ１０，１４，２１によるバス使用率を測定するために、共有バス４のビジー時間を監視する監視手段としてのバスモニタ３６が接続されている。
【００７０】
さらに、本実施の形態における非同期Ｉ／ボード８では、バスＩ／Ｆ回路１８に対してＲＯＭ１９に代えて不揮発性ＲＡＭ（ＮＶＲＡＭ）３７が接続されている。また、ネットワークＩ／Ｆモジュール７に代えて、同期入力Ｉ／Ｆモジュール３８が設けられ、同期入力Ｉ／Ｆ３９を制御する同期入力Ｉ／Ｆ４０を備えている。
【００７１】
このような情報処理装置３１におけるデータ転送制御方法を図５及び図６に示すフローチャートを参照して説明する。まず、システムの立上り時にプロセッサ２，３のバス使用率を想定し（ステップＳ３１）、共有バス４に接続されているプロセッサ２，３の個数（ここでは、２個）とこの想定したバス使用率とを乗算することで全プロセッサ２，３によって使用されるバス使用率を算出する（Ｓ３２）。算出されたバス使用率をＰＰとする。算出後、各プロセッサ・ユニット・モジュール３４，３５のバスＩ／Ｆ回路３２，３３内の内部レジスタにステップＳ３１で想定されたバス使用率を設定する。ここに、本発明におけるバス使用率を設定する設定手段の機能が実行される。
【００７２】
次に、非同期Ｉ／Ｆ１３に２次記憶装置２３などの周辺装置が接続されているか否かを判断し（Ｓ３４）、周辺装置が接続されていればその周辺装置との間で通信を行ないその周辺装置がデータ転送可能なレート等の情報を受け取る（Ｓ３５）。受け取ったレート等の情報は、非同期Ｉ／Ｆボード８上の不揮発性ＲＡＭ３７に書き込む（Ｓ３６）。
【００７３】
その後、アプリケーションプログラム或いはシステム制御プログラムより、或るインタフェースに対する制御要求があるまで待機し（Ｓ３７）、制御要求があったら、そのインタフェースを制御するデバイス・ドライバによってＤＭＡの起動の要求を受け付ける（Ｓ３８）。このようなＤＭＡの起動が要求された際に、Ｉ／Ｆモジュール６，３８又は８内の固定アドレスに置かれたＲＯＭ１１，１５或いは不揮発性ＲＡＭ３７からＤＭＡの必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズとを読出す（Ｓ３９）。ここで、非同期Ｉ／Ｆ２０に係るＤＭＡのデータ転送レートは、接続される周辺装置がデータ転送可能なレートが非同期Ｉ／Ｆ２０のＤＭＡの必要とするデータ転送レートである。ＲＯＭ等からのデータの読出しとともに、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このインタフェースのがデータ転送によってバスを使用するバス使用率ＤＰを算出する（Ｓ４０）。また、この時点までに既に起動されている全ＤＭＡによって使用されるバス使用率ＭＰをバスモニタ３６によって測定する（Ｓ４１）。
【００７４】
そこで、この時点で既に起動されている全ＤＭＡによって使用されるバス使用率ＭＰ及び全プロセッサ２，３によって使用されるバス使用率ＰＰと、算出されたバス使用率ＤＰとが、
ＤＰ＞１−（ＰＰ＋ＭＰ）
なる関係にあるか否かにより、新たに要求されたＤＭＡの起動の可／不可を判断する（Ｓ４２）。ここに、本発明におけるＤＭＡの起動の可／不可を判断する手順或いは判断手段の機能が実行される。
【００７５】
ここで、ＤＰ＞１−（ＰＰ＋ＭＰ）なる関係を満たす場合には（Ｓ４２のＹ）、ＤＭＡの起動が不可能であると判断し、待機キューにこのＤＭＡの起動を登録し（Ｓ４４又はＳ４５）、後述する割込処理を待つ待機状態となる。ここに、本発明におけるＤＭＡの起動を待機させる手順或いは待機手段、並びに、待機要求の管理を行なう手順或いは待機要求管理手段の機能が実行される。この待機キューに登録するに先立ち、インタフェースの優先度をチェックする（Ｓ４３）。通常の優先度であれば（Ｓ４３のＮ）、待機キューの最後にこのＤＭＡの起動を登録するが（Ｓ４４）、高い優先度が設定されていれば（Ｓ４３のＹ）、待機キューの先頭にこのＤＭＡの起動を登録する（Ｓ４５）。ここに、待機の順序を入替える手順或いは優先度処理手段の機能が実行される。
【００７６】
一方、ＤＰ＞１−（ＰＰ＋ＭＰ）なる関係を満たさない場合には（Ｓ４２のＮ）、ＤＭＡの起動が可能であると判断し、このインタフェースがデータを受信するかどうかをチェックし（Ｓ４６）、データを受信する場合であれば、既に受信バッファが割当てられているか否かをチェックする（Ｓ４７）。既に割当てられていれば、そのまま要求されているＤＭＡを起動させる（Ｓ４９）。しかし、割当てられていなければ、必要サイズのメモリ領域をバッファ領域として割当ててから（Ｓ４８）、この要求されているＤＭＡを起動させる（Ｓ４９）。ステップＳ４７，Ｓ４８により、本発明におけるメモリ領域を割当てる手順或いはメモリ割当処理手段の機能が実行される。即ち、受信データを記憶するためにＤＭＡが使用するバッファ領域に関して、要求されたＤＭＡが待機状態にある間にはメモリ領域の割当てを行なわず、他のＤＭＡが終了し、待機状態にあったＤＭＡの設定がなされる際に、このＤＭＡの設定に先んじてそのＤＭＡが使用するバッファ領域に関してメモリ領域の割当てが行なわれる。また、ステップＳ４９により、本発明におけるＤＭＡを起動させる手順或いは起動手段の機能が実行される。
【００７７】
また、既に起動されているＤＭＡの終了に伴う割込処理（図６参照）においては、該当するデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行ない（Ｓ５０）、待機キューに待機されているＤＭＡが存在するか否かを判断する（Ｓ５１）。待機されているＤＭＡが存在すれば待機キューの先頭に置かれているＤＭＡに関して算出されたバス使用率ＤＰと算出、測定されたバス使用率ＰＰ，ＭＰとから、
ＤＰ＞１−（ＰＰ＋ＭＰ）
なる関係にあるか否かにより、待機キューの先頭のＤＭＡを実行する余裕が生じたか否かを判断する（Ｓ５２）。ＤＰ＞１−（ＰＰ＋ＭＰ）なる関係になく余裕が生じたと判断されると（Ｓ５２のＮ）、待機キューから当該ＤＭＡを取り除き（Ｓ５３）、このインタフェースがデータを受信するかどうかをチェックし（Ｓ５４）、データを受信する場合であれば、既に受信バッファが割当てられているか否かをチェックする（Ｓ５５）。既に割当てられていれば、そのまま要求されているＤＭＡを起動させる（Ｓ５７）。しかし、割当てられていなければ、必要サイズのメモリ領域をバッファ領域として割当ててから（Ｓ５６）、この要求されているＤＭＡを起動させる（Ｓ５７）。ステップＳ５５，Ｓ５６によっても、本発明におけるメモリ領域を割当てる手順或いはメモリ割当処理手段の機能が実行される。また、ステップＳ５７により、本発明における待機後のＤＭＡを起動させる手順或いは待機後起動手段の機能が実行される。
【００７８】
従って、本実施の形態によっても、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るＤＭＡの起動が要求された場合には、共有バス４のバンド幅上、新たなＤＭＡを起動させる余裕がない場合にはその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス４上で既に行なわれているときに、新たなＤＭＡが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。つまり、共有バス４に接続され、所定のデータ転送レートを必要とする複数のＤＭＡＣ１０，１４，２１に対して、必要とするデータ転送レートによるデータ転送を保証することができる。
【００７９】
また、非同期Ｉ／Ｆ２０によって通信する２次記憶装置２３等の周辺装置の送受信可能なデータ転送レート等の情報を用いて実際のインタフェース上のデータ転送レートを算出しているので、より信頼性の高いバス使用率の計算が可能になる。また、バスモニタ３６に基づき現時点の現実のバス使用率ＭＰを測定できるため、既にＤＭＡの起動がなされている全ＤＭＡＣ及び全プロセッサによって行なわれるデータ転送によるバス使用率を算出する必要がなくなり、プロセッサの負荷を軽減することもできる。
【００８０】
また、各インタフェース９，３９のＤＭＡに関わる情報をＤＭＡＣ１０，１４に接続されたＲＯＭ１１，１５等の不揮発性のメモリから読出すことができ、また、インタフェース２０がＩ／Ｏ拡張ボードによって実現されている場合には、ボード８上の負は説性ＲＡＭ３７等の不揮発性のメモリから読出すことができるので、システム構成が変更された場合にも柔軟に対応できる。
【００８１】
また、一般には、プロセッサによるバス使用率は実行しているプログラムに依存し、或る時点でのプロセッサによるバス使用率を厳密に推定若しくは予測するのは非常に難しいが、本実施の形態では、プロセッサ２，３がバスＩ／Ｆ回路３２，３３を備え、予めプロセッサ２，３毎のバス使用率がバスＩ／Ｆ回路３２，３３に設定されるので、プロセッサ２，３によるバス使用率を固定することができ、かつ、そのバス使用率を超えないことを保証することができるので、より信頼性の高いバス使用率の計算が可能となる。
【００８２】
また、本実施の形態によれば、共有バス４のバンド幅上、新たなＤＭＡを起動する余地がない状態において複数のＤＭＡの起動が要求された場合に、要求された複数のＤＭＡの起動を要求順に待機させることができる上に、待機処理の管理が容易となる。さらに、インタフェース毎に優先度が付けられている場合には、優先度の低いインタフェースに係るＤＭＡの起動が既に待機させられている状態においても、優先度の高いインタフェースに係るＤＭＡの起動が要求された場合にはこれを優先するので、例えば、緊急的に或るインタフェースによるデータ転送が必要になった場合にも迅速に対応することができる。
【００８３】
加えて、待機させられているＤＭＡの利用するバッファ領域の割当てを、実際にＤＭＡが起動される時点まで遅らせることができるので、メモリ領域を節約でき、メモリの有効活用が可能となる。
【００８４】
本発明の第三の実施の形態を図７に基づいて説明する。本実施の形態は、プロセッサ・ユニット・モジュール３４，３５中で用いられるバスＩ／Ｆ回路３２，３３の構成に関するものである。
【００８５】
このバスＩ／Ｆ回路３２（又は、３３）は、タイマ４１とカウンタ４２とレジスタ４３と比較器４４とウエイト挿入回路４５とバス・トランザクション待機回路４６とにより構成されている。前記タイマ４１は単位時間を計時する。前記カウンタ４２は、プロセッサ２（又は、３）がバス権を受けてからバス・トランザクションが終了するまでの時間を累積し、前記タイマ４１によって計時される単位時間が経過した際にクリアされるもので、前記タイマ４２とともに本発明における時間測定手段として機能する。前記レジスタ４３はプロセッサ２（又は、３）の単位時間当たりのバス使用時間を設定するもので、本発明における設定手段として機能する。前記比較器４４は前記レジスタ４３に設定されたバス使用時間と前記カウンタ４２によって測定された実際のバス使用時間とを比較するもので、本発明における比較手段として機能する。前記ウエイト挿入回路４５は、前記比較器４４から既に実際のバス使用時間が設定されたバス使用時間を上回っていることを示す比較結果信号がアクティブである間にプロセッサ２（又は、３）からのバス・トランザクションがＲeq＊信号により要求された時にＷait＊信号 （ウエイト信号）によりウエイトを挿入する。前記バス・トランザクション待機回路４６は、前記比較器４４からの比較結果信号がアクティブである間にこのバス・トランザクションに係るバス権要求信号Ｂr＊ をマスクし、トランザクションを待機させるもので、本発明における待機手段として機能する。
【００８６】
このような構成において、本実施の形態のバスＩ／Ｆ回路３２（又は、３３）の作用について説明する。まず、前述した実施の形態の場合と同様に、システムの立上り時に、プロセッサ２（又は、３）のバス使用率を想定し、想定したこのバス使用率とバスＩ／Ｆ回路３２（又は、３３）の単位時間から単位時間当たりのバス使用時間を算出し、ここから評価誤差を考慮して或る時間を差し引いて、これをバスＩ／Ｆ回路３２（又は、３３）に与えられるクロックＣＬＫにおけるクロック数に換算してレジスタ４３に設定する。
【００８７】
その後、単位時間を計時するタイマ４１はクロックＣＬＫに同期してカウントし、単位時間が経過する毎にカウンタ４２をクリアするクリア信号を出力する。カウンタ４２はプロセッサ２（又は、３）がバス権を受けてからバス・トランザクションが終了するまでの間クロックＣＬＫに同期してカウントアップし、タイマ４１からのクリア信号によってクリアされてから再度クリアされるまでの間にプロセッサ２（又は、３）がバスを使用した合計時間をカウントする。新たにプロセッサ２（又は、３）がＲeq＊信号 によりバス・トランザクションを要求した際、カウンタ４２のカウント値とレジスタ４３に設定されている値（バス使用時間）とを比較器４４で比較した比較結果信号が既にカウント値が設定値以上であることを示すアクティブ状態の時にはプロセッサ２（又は、３）へのＷait＊ 信号をウエイト挿入回路４５によりアサートする。同時に、カウント値が設定値以上である間は、バス権を要求する信号をバス・トランザクション待機回路４６によってマスクする。その後、タイマ４１が単位時間を計時し、カウンタ４２がクリアされて比較器４４の比較結果信号がディアサートされると、バス・トランザクション待機回路４６によるマスクを解除してバス権を要求する信号をアサートしてバス・トランザクションを開始し、メモリからのデータを受け付け、或いは、データの書き込みが完了した場合であればウエイト挿入回路４５によるＷait ＊信号をディアサートする。
【００８８】
従って、本実施の形態によれば、バスＩ／Ｆ回路３２，３３によりプロセッサ２，３のバス使用率を固定することができ、信頼性の高いバス使用率の算出が可能となる。
【００８９】
本発明の第四の実施の形態を図８ないし図１０に基づいて説明する。本実施の形態のデータ転送制御方法は、そのハードウェァ構成として、図８に示すような情報処理装置５１を利用している。
【００９０】
この情報処理装置５１も、１個のコンピュータシステムによるものである。本実施の形態では、共有バス４に２つの同期出力Ｉ／Ｆモジュール６，５２が接続されている。同期出力Ｉ／Ｆモジュール６は前述した実施の形態の場合と同じであるが、同期出力Ｉ／Ｆモジュール５２は、前記プロセッサ２又は３によってデータが書き込まれるデータ出力用ＦＩＦＯ（ファースト・イン・ファースト・アウト・メモリ）５３と、同期出力Ｉ／Ｆ５４を制御する同期出力Ｉ／Ｆ回路５５とにより構成されている。
【００９１】
このような情報処理装置５１におけるデータ転送制御方法を図９及び図１０に示すフローチャートを参照して説明する。まず、アプリケーションプログラムより、或るインタフェースに対する制御要求があるまで待機する（Ｓ６１）。制御要求があったら、そのインタフェースを制御するデバイス・ドライバによってＤＭＡの起動の要求があったら（Ｓ６２のＹ）、同期出力Ｉ／Ｆモジュール６内の固定アドレスに置かれたＲＯＭ１１からＤＭＡの必要とするデータ転送レート及び１回のＤＭＡで転送するデータサイズを読出す（Ｓ６３）。ＲＯＭからのデータの読出しとともに、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このインタフェースがデータ転送によってバスを使用するバス使用率ＤＰを算出する（Ｓ６４）。
【００９２】
そこで、この時点で既に起動されている全ＤＭＡ及び全プロセッサ２，３によって使用されるバス使用率ＢＰと、算出されたバス使用率ＤＰとが、
ＤＰ＞１−ＢＰ
なる関係にあるか否かにより、新たに要求されたＤＭＡの起動の可／不可を判断する（Ｓ６５）。ここで、ＤＰ＞１−ＢＰなる関係を満たす場合には（Ｓ６５のＹ）、ＤＭＡの起動が不可能であると判断し、待機キューにそのＤＭＡの起動を登録し（Ｓ６６）、後述する割込処理を待つ待機状態となる。
【００９３】
一方、ＤＰ＞１−ＢＰなる関係を満たさない場合には（Ｓ６５のＮ）、ＤＭＡの起動が可能であると判断し、バス使用率ＢＰに算出された今回用のバス使用率ＤＰを加算してバス使用率ＢＰを更新する（Ｓ６７）。更新後、新たに要求された今回のＤＭＡを起動させる（Ｓ６８）。
【００９４】
ところで、ステップＳ６２の制御要求の受け付け後、インタフェースを制御するデバイス・ドライバによってプロセッサ２，３による周期的なデータ転送が要求されているか否かをチェックする（Ｓ６９）。周期的なデータ転送が要求されている場合であれば、このデータ転送において必要とするデータ転送レート、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このデータ転送によってバスを使用するバス使用率ＤＰを算出する（Ｓ７０）。
【００９５】
そこで、この時点で既に起動されている全ＤＭＡ及び全プロセッサ２，３によって使用されるバス使用率ＢＰと、算出されたバス使用率ＤＰとが、
ＤＰ＞１−ＢＰ
なる関係にあるか否かにより、新たに要求されたデータ転送の開始の可／不可を判断する（Ｓ７１）。ここで、ＤＰ＞１−ＢＰなる関係を満たす場合には（Ｓ７１のＹ）、データ転送の開始が不可能であると判断し、待機キューにそのデータ転送の開始を登録し（Ｓ７２）、後述する割込処理を待つ待機状態となる。
【００９６】
一方、ＤＰ＞１−ＢＰなる関係を満たさない場合には（Ｓ７１のＮ）、データ転送の開始が可能であると判断し、バス使用率ＢＰに算出された今回用のバス使用率ＤＰを加算してバス使用率ＢＰを更新する（Ｓ７３）。更新後、新たに要求された周期的なデータ転送を行なうために、このデータ転送を行なう周期プログラムを起動させる（Ｓ７４）。ここに、周期プログラムとは、一定の周期で呼び出されて処理を行なうプログラムであり、ここでは、同期出力Ｉ／Ｆ５４に出力するデータを同期出力Ｉ／Ｆモジュール５２上のデータ出力用ＦＩＦＯ５３に書き込む処理を行なう。
【００９７】
また、既に起動されているＤＭＡの終了に伴う割込処理或いはタイマによる割込処理（図１０参照）においては、割込みに係るデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行い（Ｓ７５）、さらに、ＤＭＡの終了に伴う割込処理においてはこのＤＭＡを起動する際に算出されてバス使用率ＢＰに加算されたバス使用率ＤＰをＢＰから除算してバス使用率ＢＰを更新する（Ｓ７６）。また、既に終了している周期プログラムがあれば（Ｓ７７のＹ）、この周期プログラムの開始の際に算出したバス使用率ＤＰをＢＰから除算してバス使用率ＢＰを更新する（Ｓ７８）。その後、待機キューに待機されているＤＭＡ或いはデータ転送が存在するか否かを判断し（Ｓ７９）、待機されているＤＭＡ或いはデータ転送が存在すれば待機キューの先頭に置かれているＤＭＡに関して算出されたバス使用率ＤＰとステップＳ６７又はＳ７３で更新されたバス使用率ＢＰとから、
ＤＰ＞１−ＢＰ
なる関係にあるか否かにより、待機キューの先頭のＤＭＡの起動或いはデータ転送の開始を実行する余裕が生じたか否かを判断する（Ｓ８０）。ＤＰ＞１−ＢＰなる関係になく余裕が生じたと判断されると（Ｓ８０のＮ）、待機キューから当該ＤＭＡ或いはデータ転送を取り除き（Ｓ８１）、さらに、バス使用率ＢＰに当該ＤＭＡ用或いはデータ転送用のバス使用率ＤＰを加算してバス使用率ＢＰを更新した後で（Ｓ８２）、待機されていたこのＤＭＡを起動させる（Ｓ８４）。周期的なデータ転送の開始が待機されていた場合には（Ｓ８３のＹ）、このデータ転送を行なう周期プログラムを起動させる（Ｓ８４）。
【００９８】
従って、本実施の形態によれば、例えば、大量データのコピー操作等の連続したデータ転送や周期的に実行されるプログラムによるデータ転送が要求された場合に、共有バス４のバンド幅上、新たなデータ転送を開始する余地がない場合には、そのデータ転送の開始を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス４上で既に行なわれているときに、新たなデータ転送が開始されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。
【００９９】
【発明の効果】
請求項１記載のデータ転送制御方法の発明、請求項３記載のデータ転送制御装置の発明、及び、請求項５記載の情報記録媒体の発明によれば、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るＤＭＡの起動が要求された場合には、監視手段によって現時点のバス使用率を算出し、バス・インファフェースが各プロセッサのバス使用率を設定し、共有バスで延ばす使用率が設定されたプロセッサごとのバス使用率を上回らないようにウェイトを挿入し、また、新たに要求されたＤＭＡのバス使用率を算出し、共有バスのバンド幅上、新たなＤＭＡを起動させる余裕がなければその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス上で既に行なわれているときに、新たなＤＭＡが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができ、結局、共有バスに接続され、所定のデータ転送レートを必要とする複数のＤＭＡコントローラに対して、必要とするデータ転送レートによるデータ転送を保証することができる。
【０１００】
請求項２記載のデータ転送制御方法の発明、請求項４記載のデータ転送制御装置の発明、及び、請求項６記載の情報記録媒体の発明によれば、新たなＤＭＡの起動が要求された際の起動の可／不可の判断により、待機要求の管理を行い、また、優先度付けがなされている場合には優先度によってＤＭＡの待機の順序を入替えるので、新たに要求されたＤＭＡの起動の可／不可を判断し、不可能と判断した場合には待機要求を出して管理し、また、優先度が付けられている場合には、該優先度によってＤＭＡの待機の順序を入れ替えることができるので、優先順位に従ってＤＭＡを起動させることができ、しかも、特殊回路の組み込みに伴うハード構成の変更を必要としない。
【図面の簡単な説明】
【図１】本発明の第一の実施の形態を示す情報処理装置のブロック図である。
【図２】そのデータ転送制御処理を示すフローチャートである。
【図３】割込処理を示すフローチャートである。
【図４】本発明の第二の実施の形態を示す情報処理装置のブロック図である。
【図５】そのデータ転送制御処理を示すフローチャートである。
【図６】割込処理を示すフローチャートである。
【図７】本発明の第三の実施の形態を示すバスＩ／Ｆ回路のブロック図である。
【図８】本発明の第四の実施の形態を示す情報処理装置のブロック図である。
【図９】そのデータ転送制御処理を示すフローチャートである。
【図１０】割込処理を示すフローチャートである。
【符号の説明】
１          コンピュータ
２，３      プロセッサ
４          共有バス
９          インタフェース
１０          ＤＭＡコントローラ
１１          不揮発性のメモリ
１３          インタフェース
１４          ＤＭＡコントローラ
１５          不揮発性のメモリ
１９          不揮発性のメモリ
２０          非同期なインタフェース
２１          ＤＭＡコントローラ
２３          周辺装置
３１          コンピュータ
３２，３３    バス・インタフェース回路
３６          監視手段
３７          不揮発性のメモリ
３９          インタフェース
４１，４２    時間測定手段
４３          設定手段
４４          比較手段
４５          ウエイト挿入手段
４６          待機手段
５４          インタフェース
【図１】
0003712842.tif 000002
【図２】
0003712842.tif 000003
【図３】
0003712842.tif 000004
【図４】
0003712842.tif 000005
【図５】
0003712842.tif 000006
【図６】
0003712842.tif 000007
【図７】
0003712842.tif 000008
【図８】
0003712842.tif 000009
【図９】
0003712842.tif 000010
【図１０】
0003712842.tif 000011