JP3712842B2 - データ転送制御方法、データ転送制御装置及び情報記録媒体 - Google Patents

データ転送制御方法、データ転送制御装置及び情報記録媒体 Download PDF

Info

Publication number
JP3712842B2
JP3712842B2 JP21023397A JP21023397A JP3712842B2 JP 3712842 B2 JP3712842 B2 JP 3712842B2 JP 21023397 A JP21023397 A JP 21023397A JP 21023397 A JP21023397 A JP 21023397A JP 3712842 B2 JP3712842 B2 JP 3712842B2
Authority
JP
Japan
Prior art keywords
dma
bus
data transfer
processor
usage rate
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
JP21023397A
Other languages
English (en)
Other versions
JPH1153300A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP21023397A priority Critical patent/JP3712842B2/ja
Priority to US09/127,805 priority patent/US6119176A/en
Publication of JPH1153300A publication Critical patent/JPH1153300A/ja
Priority to US09/621,658 priority patent/US6298397B1/en
Application granted granted Critical
Publication of JP3712842B2 publication Critical patent/JP3712842B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、共有バスにDMAコントローラを接続してデータ転送を行なうコンピュータ構成の情報処理装置におけるデータ転送制御方法、データ転送制御装置及び情報記録媒体に関する。
【0002】
【従来の技術】
一般に、情報処理装置では、周辺装置との間でデータの授受を行なうために、システムバス或いはI/OバスにDMAコントローラ(以下、「DMAC」と略して示す)を接続し、このDMACを用いてDMA(ダイレクト・メモリ・アクセス)、即ち、メモリに対して直接アクセスを行なうようにしている。
【0003】
ここで、周辺装置との間で行なわれるデータ転送は、その多くが非同期方式であり、ハンド・シェイクを行ないながらデータを転送することが多い。つまり、これらのデータ転送には明確な帯域(バンド)がなく、DMAによりメモリからデータを読み込めたときがデータを周辺装置に対して送出するタイミングであり、また、DMAによりメモリに対してデータを書き込めたときが続くデータを受信できるタイミングである。
【0004】
また、周辺装置或いはネットワークとの間で、同期的にデータ転送を行なう場合には、その同期的なデータ転送のバンドを考慮し、また、同一のバス上で行なわれるデータ転送の最大転送バンドを考慮に加え、さらに、CPUによって同一のバス上で行なわれるトランザクションによって消費されるバンドを考慮して、バスの仕様を決定し、バスを設計或いは選定し、これらの全てのトランザクションが滞らずに行なわれることを保証している。
【0005】
【発明が解決しようとする課題】
ところが、システムを設計する際に、上記のようにバス上で行なわれるデータ転送の各バンドを考慮し、システムバス、I/Oバスに行なわれる総バンドからバスの仕様を決定し、バスを設計或いは選定することで、これらの全てのトランザクションが滞らずに行なわれることを保証する方式によると、殆ど起こる可能性のないバスの輻輳状態時以外においては過度な仕様となってしまう。
【0006】
また、拡張I/Oにおいては、さらにどのような拡張ボードが実装され、どの程度のデータ転送バンドが要求されるかはシステム設計時には判断がつかず、システム使用時に予想以上にバスが輻輳状態に陥って、各データ転送のバンドを保証できない状況を生じてしまうことがある。
【0007】
特に、従来の情報処理装置におけるデータ転送制御では、DMACやCPU等を接続するバスのバンド及び周辺装置との間のデータ転送のバンドを考慮していないため、既にバスが飽和している状況下であっても、アプリケーション・プログラム等によって新たなデータ転送が要求されたならば、これを受けて新たなDMAを開始してしまうことになる。このような状況が発生すると、或るバンドで同期的なデータ転送を行なうインタフェースではデータの欠損が生じ、システムとしては致命的な状況となり得る。これは、新たに開始したDMAを用いたインタフェースに関わるだけでなく、その他全ての同期的なデータ転送を行なうインタフェースに同様な問題を生ずる。
【0008】
例えば、Video インタフェース、ネットワーク・インタフェースのように或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス上で既に行なわれているような状況下で、アプリケーション・プログラム等により新たなインタフェースでのデータ転送が要求された時に、共有バスのバンド幅上、新たなDMAを起動する余地がない場合でも、この新たなDMAを起動させてしまうので、これらのデータ転送が保証されなくなってしまう。これは、大量データのコピー操作等の連続したデータ転送や周期的に実行されるプログラムによるデータ転送が要求された場合には、特に問題となる。
【0009】
また、例えばIEEE1394のように1つのインタフェース上に100MHz,200MHz,400MHzといった周波数のデータが混在する場合、インタフェースからデータを受信するまでその受信データのデータ転送レートは判らず、このデータをメモリに記憶するために用いるDMAの必要とするバンド幅も特定できない場合もあり、メモリに確実にデータを記憶させることができないこともある。
【0010】
或いは、非同期のインタフェースでは、前述したようにハンドシェイクによりデータの送受信が行なわれるため、通信する相手によってデータ転送レートが左右され、このデータをメモリに記憶させるために用いるDMAの必要とするバンド幅も特定できない状況にあり、通信する相手によってはメモリに確実にデータを記憶させることができないこともある。
【0011】
そこで、本発明は、共有バスに接続され、所定のデータ転送レートを必要とする複数のDMACに対して、必要とするデータ転送レートによるデータ転送を保証し得るデータ転送制御方法、データ転送制御装置及び情報記録媒体を提供することを目的とする。
【0012】
【課題を解決するための手段】
請求項1記載のデータ転送制御方法の発明は、共有バスに接続されたDMAコントローラ及びプロセッサを有し、前記DMAコントローラにより行われるDMA(ダイレクト・メモリ・アクセス)を制御するデータ転送制御装置におけるデータ転送制御方法であって、共有バスのビジー時間を監視することで、DMA起動済みの全DMAコントローラにより行なわれるデータ転送によるバス使用率を算出し、前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定機能、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定設定により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入機能をバス・インタフェースによって実行し、メモリを有して、各DMAコントローラに関連付けられて設けられ、DMAが必要とするデータ転送レート及び1回のDMAで転送するデータサイズの情報を前記メモリに格納し、前記メモリに記憶してある新たに要求されたDMAが必要とするデータ転送レート、1回のDMAで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたDMAのバス使用率を算出し、新たなDMAの起動が要求された際に、前記DMA起動済みの全DMAコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出機能により算出された新たに要求されたDMAのバス使用率に基づいて新たに要求されたDMAの起動の可/不可を判断し、可能と判断された場合には新たに要求されたDMAを起動させ、不可能と判断された場合には新たに要求されたDMAの起動を待機させ、既に実行されている何れかのDMAが終了し、前記共有バスに新たに要求されたDMAを実行する余裕が生じた時点で待機させていたDMAを起動させることを特徴とする。
【0013】
従って、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るDMAの起動が要求された場合には、監視手段が全DMAコントローラにより行われるデータ転送によるバス使用率を算出し、バス・インタフェースにおいては、設定手段が各プロセッサのバス使用率を設定し、共有バスでのバス使用率が設定されたプロセッサごとのバス使用率を上回らないようにウェイトを挿入し、バス使用率算出手段が、各DMAコントローラに関連付けられて新たに要求されたDMAのバス使用率を算出し、共有バスのバンド幅上、新たなDMAを起動させる余裕がない場合にはその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス上で既に行なわれているときに、新たなDMAが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。
【0014】
このような請求項1記載のデータ転送制御方法の発明は、例えば、請求項記載のデータ転送制御装置によって実現される他、請求項記載の情報記録媒体に記録されたプログラムをコンピュータに読み取らせることによっても実現される。
【0015】
請求項2記載の発明は、請求項1記載のデータ転送制御方法において、新たなDMAの起動が要求された際の起動の可/不可の判断により、不可能と判断された場合にはそのDMAの起動を待機キューを用いて待機要求の管理を行い、DMAを用いる各インタフェースに優先度付けがなされている場合には優先度によってDMAの待機の順序を入替えることを特徴とする。
【0016】
従って、新たに要求されたDMAの起動の可/不可を判断し、不可能と判断した場合には待機要求を出して管理し、また、優先度が付けられている場合には、該優先度によってDMAの待機の順序を入れ替えることができるので、優先順位に従ってDMAを起動させることができ、しかも、特殊回路の組み込みに伴うハード構成の変更を必要としない。
【0017】
このような請求項2記載のデータ転送制御方法の発明は、例えば、請求項記載のデータ転送制御装置によって実現される他、請求項記載の情報記録媒体に記録されたプログラムをコンピュータに読み取らせることによっても実現される。
【0048】
【発明の実施の形態】
本発明の第一の実施の形態を図1ないし図3に基づいて説明する。本実施の形態のデータ転送制御方法は、そのハードウェア構成として、図1に示すような情報処理装置1を利用している。
【0049】
この情報処理装置1は、1個のコンピュータシステムによるものであり、コンピュータの主体として2つのプロセッサ(PU)2,3を備えている。これらのプロセッサ2,3は、特に図示しないが、CPUと、CPUにバス接続されたROM及びRAMとによるマイクロコンピュータ構成とされている。これらのプロセッサ2,3が接続された共有バス4には、主記憶5が接続されている他、複数のインタフェース・モジュール(I/Fモジュール)6,7及びI/Fボード8が接続されている。
【0050】
主記憶5は、例えば、HDD(Hard Disc Drive)により構成されている他、必要に応じて、フロッピディスクが装填されるFDD(Floppy Disc Drive)、CD‐ROMが装填されるCD‐ROMドライブ等により構成されている。
【0051】
I/Fモジュール6は、同期出力I/Fモジュールであり、同期出力I/F9において出力するデータを前記主記憶5からDMAによって読み込むDMAC10と、このDMAC10に接続されたROM(不揮発性のメモリ)11と、同期出力I/F9を制御する同期出力I/F回路12とにより構成されている。
【0052】
I/Fモジュール7は、ネットワークI/Fモジュールであり、ネットワークI/F13において受信するデータをDMAを用いて前記主記憶5に書き込むDMAC14と、このDMAC14に接続されたROM(不揮発性のメモリ)15と、ネットワークI/F13を制御するネットワークI/F回路16とにより構成されている。
【0053】
I/Fボード8は、非同期I/Fボードであり、拡張スロット17を介して前記共有バス4に接続されており、ボードが接続される共有バス4とのインタフェースを制御するバスI/F回路18と、このバスI/F回路18に接続されてボードの情報を提供するROM(不揮発性のメモリ)19と、非同期I/F20において送受信するデータを前記主記憶に対してDMAするDMAC21と、前記非同期I/F20を制御する非同期I/F回路22とにより構成されている。非同期I/Fボード8に対しては非同期I/F20を介して2次記憶装置23が接続されている。
【0054】
ここで、このような情報処理装置1は、各種データを一時記憶するデータ記憶デバイスとしては、プロセッサ2,3や主記憶5におけるRAM,HDD,フロッピディスク等が設けられており、予め記録されたプログラム等のソフトウェアをプロセッサ2,3中のCPUに提供できる情報記録媒体としては、プロセッサ2,3や主記憶5におけるROM,RAM,HDD,フロッピディスク,CD‐ROM等が設けられている。なお、フロッピディスクやCD‐ROMは、情報処理装置1に固定的には設けられておらず、単体で取扱える交換自在な情報記録媒体としての形態を備える。そして、コンピュータの主体としてのプロセッサ2,3中のCPUは、交換自在な情報記録媒体としての形態を備えたフロッピディスクやCD‐ROM等にソフトウェアとして予め設定された制御プログラムによって各種の処理動作を実行する。このような制御プログラムは、CD‐ROMドライプにより読み取られるCD‐ROMに格納されていたり、HDDに予めインストールされている。何れにしても、情報処理装置1の起動時に、このような制御プログラムがプロセッサ2,3中のRAMに複写されてCPUに読み取られ、各種の処理動作が実行される。
【0055】
このような情報処理装置1におけるデータ転送制御方法を図2及び図3に示すフローチャートを参照して説明する。まず、システムの立上り時にプロセッサ2,3のバス使用率を想定し(ステップS1)、共有バス4に接続されているプロセッサ2,3の個数(ここでは、2個)とこの想定したバス使用率とを乗算することで全プロセッサ2,3によって使用されるバス使用率を算出する(S2)。算出されたバス使用率をBPとする。その後、アプリケーションプログラム或いはシステム制御プログラムより、或るインタフェースに対する制御要求があるまで待機し(S3)、制御要求があったら受け付ける。制御要求を受け付けた場合(S3のY)、その要求内容を判別する(S4)。
【0056】
要求内容の判別の結果、インタフェースにおけるデータ転送を要求するものである場合には、そのインタフェースを制御するデバイス・ドライバによってDMAの起動が要求された際に(S5)、I/Fモジュール6,7又は8内の固定アドレスに置かれたROM11,15又は19からDMAの必要とするデータ転送レート及び1回のDMAで転送するデータサイズとを読出す(S6)。ここで、ROMはDMACに物理的に接続されているか否かは問わない(本実施の形態では、ROM11,15はDMAC10,14に接続されているが、ROM19はバスI/F回路18を介してDMAC21に接続されている)。また、DMAの必要とするデータ転送レートは、同期出力I/F9に係るDMAにおいてはこの同期出力I/F9におけるデータ転送レートであり、非同期I/F20に係るDMAにおいてはインタフェース信号の規定上考え得る最大のデータ転送レートである。ROMからのデータの読出しとともに、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このインタフェースのがデータ転送によってバスを使用するバス使用率DPを算出する(S7)。
【0057】
そこで、この時点で既に起動されている全DMA及び全プロセッサ2,3によって使用されるバス使用率BPと、算出されたバス使用率DPとが、
DP>1−BP
なる関係にあるか否かにより、新たに要求されたDMAの起動の可/不可を判断する(S8)。ここに、本発明におけるDMAの起動の可/不可を判断する手順或いは判断手段の機能が実行される。
【0058】
ここで、DP>1−BPなる関係を満たす場合には(S8のY)、DMAの起動が不可能であると判断し、待機キューにこのDMAの起動を登録し(S9)、後述する割込処理を待つ待機状態となる。ここに、本発明におけるDMAの起動を待機させる手順或いは待機手段の機能が実行される。
【0059】
一方、DP>1−BPなる関係を満たさない場合には(S8のN)、DMAの起動が可能であると判断し、バス使用率BPに算出された今回用のバス使用率DPを加算してバス使用率BPを更新する(S10)。ここに、本発明における加算する手順或いは加算手段の機能が実行される。更新後、新たに要求された今回のDMAを起動させる(S11)。ここに、本発明におけるDMAを起動させる手順或いは起動手段の機能が実行される。
【0060】
また、ステップS4における要求内容の判別の結果、受け付けた制御要求がネットワークI/F13をアクティベートするものの場合には、ネットワークI/Fモジュール7内の固定アドレスに置かれたROM15からネットワークの最大周波数でデータ受信した時に受信データを確実にメモリに書き込むためにDMAが必要とするデータ転送レート及び1回のDMAで転送するデータサイズを読出し(S12)、ステップS7の場合と同様に、ネットワークI/F13のDMAがデータ転送によって共有バス4を使用するバス使用率DPを算出する(S13)。バス使用率DPを算出した後は、前述した場合と同様に、ステップS8による判断処理を行なう。この場合の判断処理は、インタフェースのアクティベートの可/不可を判断する処理となる。アクティベートが可能と判断された場合には(S8のN)、ステップS10,S11の手順を経る。アクティベートが不可能と判断された場合には(S8のY)、アクティベーションを待機させる(S9)。
【0061】
さらに、ステップS4における要求内容の判別の結果、受け付けた制御要求がネットワークI/F13をインアクティベートするものであれば、ネットワークI/F13に係るDMAが既に起動されているか否かを判断する(S14)。既に起動していれば(S14のY)、そのDMAを停止させ(S15)、かつ、このDMAを起動する際に算出されてバス使用率BPに加算されたバス使用率DPをBPから減算してバス使用率BPを更新する(S16)。ここに、本発明における減算する手順或いは減算手段の機能が実行される。一方、このDMAがまだ起動されていなければ(S14のN)、待機キューにあるDMA起動要求を削除する(S17)。
【0062】
また、既に起動されているDMAの終了に伴う割込処理(図3参照)においては、まず、ネットワークI/F13に係るDMAの終了であるか否かを判断する(S18)。ネットワークI/F13に係るDMAの終了であれば(S18のY)、ネットワークI/F13のデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行なう(S19)。一方、ネットワークI/F13以外のインタフェースに係るDMAの終了であれば(S18のN)、該当するデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行い(S20)、さらに、このDMAを起動する際に算出されてバス使用率BPに加算されたバス使用率DPをBPから減算してバス使用率BPを更新する(S21)。このステップS21においても、本発明における減算する手順或いは減算手段の機能が実行される。
【0063】
その後、待機キューに待機されているDMAが存在するか否かを判断し(S22)、待機されているDMAが存在すれば待機キューの先頭に置かれているDMAに関して算出されたバス使用率DPとステップS21で更新されたバス使用率BPとから、
DP>1−BP
なる関係にあるか否かにより、待機キューの先頭のDMAを実行する余裕が生じたか否かを判断する(S23)。DP>1−BPなる関係になく余裕が生じたと判断されると(S23のN)、待機キューから当該DMAを取り除き(S24)、さらに、バス使用率BPに当該DMA用のバス使用率DPを加算してバス使用率BPを更新した後で(S25)、待機されていたこのDMAを起動させる(S26)。これらのステップS22〜S26により、本発明における待機後のDMAを起動させる手順或いは待機後起動手段の機能が実行される。ネットワークI/F13に関わるアクティベートの場合であれば、待機後のインタフェースをアクティベーションを実行させる手順或いは待機後アクティベーション実行手段の機能として実行される。
【0064】
従って、本実施の形態によれば、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るDMAの起動が要求された場合には、共有バス4のバンド幅上、新たなDMAを起動させる余裕がない場合にはその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス4上で既に行なわれているときに、新たなDMAが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。つまり、共有バス4に接続され、所定のデータ転送レートを必要とする複数のDMAC10,14,21に対して、必要とするデータ転送レートによるデータ転送を保証することができる。また、新たに要求されたDMAの起動の可/不可を判断するために用いる現時点のバス使用率BPは、既に起動されているDMAに係る情報に基づき容易に算出することができるので、特殊回路の組み込みに伴うハード構成の変更も必要としない。
【0065】
また、ネットワークI/F13に関連して、そのインタフェースからデータを受信するまでその受信データのデータ転送レートが判らず、このデータをメモリに記憶させるために用いるDMAの必要とするバンド幅も特定できないような状況下であっても、インタフェースでの最大転送レートを用いてバスのバンド幅の予約ができるので、どのような周波数のデータを受信した場合にもメモリにデータを確実に記憶させることができる。
【0066】
さらに、非同期I/F20ではハンドシェイクによりデータの送受信を行なうため、通信する相手によってデータ転送レートが左右され、このデータをメモリに記憶させるために用いるDMAの必要とするバンド幅も特定できない状況であっても、インタフェース信号線の規定上考え得る最大のデータ転送レートを用いてバスのバンド幅を予約することができるので、どのような相手と通信する場合にもメモリにデータを確実に記憶させることができる。
【0067】
本発明の第二の実施の形態を図4ないし図6に基づいて説明する。前記実施の形態で示した部分と同一部分は同一符号を用いて示し、説明も省略する(後述する実施の形態でも同様とする)。本実施の形態のデータ転送制御方法は、そのハードウェア構成として、図4に示すような情報処理装置31を利用している。
【0068】
この情報処理装置31も、1個のコンピュータシステムによるものである。本実施の形態では、プロセッサ2,3に対して各々バスI/F回路32,33を備えたプロセッサ・ユニット・モジュール34,35が用いられている。ここに、前記バスI/F回路32,33は、共有バス4に接続されてバスのインタフェース制御を行なうとともに、各プロセッサ2,3による共有バス4でのバス使用率を設定する設定手段と、設定されたバス使用率を上回らないように各プロセッサ2,3によるバスアクセスに対してウエイト(待機)を挿入するウエイト挿入手段を備えている(或いは、後述する実施の形態の如く、各プロセッサ2,3の単位時間当りの使用時間を設定する設定手段と、単位時間においてプロセッサ2,3による共有バス4の使用時間が設定手段により設定された使用時間を上回らないように各プロセッサ2,3によるバスアクセスに対してウエイトを挿入するウエイト挿入手段を備えている)。
【0069】
また、共有バス4に対してはこの共有バス4に接続されたDMAC10,14,21によるバス使用率を測定するために、共有バス4のビジー時間を監視する監視手段としてのバスモニタ36が接続されている。
【0070】
さらに、本実施の形態における非同期I/ボード8では、バスI/F回路18に対してROM19に代えて不揮発性RAM(NVRAM)37が接続されている。また、ネットワークI/Fモジュール7に代えて、同期入力I/Fモジュール38が設けられ、同期入力I/F39を制御する同期入力I/F40を備えている。
【0071】
このような情報処理装置31におけるデータ転送制御方法を図5及び図6に示すフローチャートを参照して説明する。まず、システムの立上り時にプロセッサ2,3のバス使用率を想定し(ステップS31)、共有バス4に接続されているプロセッサ2,3の個数(ここでは、2個)とこの想定したバス使用率とを乗算することで全プロセッサ2,3によって使用されるバス使用率を算出する(S32)。算出されたバス使用率をPPとする。算出後、各プロセッサ・ユニット・モジュール34,35のバスI/F回路32,33内の内部レジスタにステップS31で想定されたバス使用率を設定する。ここに、本発明におけるバス使用率を設定する設定手段の機能が実行される。
【0072】
次に、非同期I/F13に2次記憶装置23などの周辺装置が接続されているか否かを判断し(S34)、周辺装置が接続されていればその周辺装置との間で通信を行ないその周辺装置がデータ転送可能なレート等の情報を受け取る(S35)。受け取ったレート等の情報は、非同期I/Fボード8上の不揮発性RAM37に書き込む(S36)。
【0073】
その後、アプリケーションプログラム或いはシステム制御プログラムより、或るインタフェースに対する制御要求があるまで待機し(S37)、制御要求があったら、そのインタフェースを制御するデバイス・ドライバによってDMAの起動の要求を受け付ける(S38)。このようなDMAの起動が要求された際に、I/Fモジュール6,38又は8内の固定アドレスに置かれたROM11,15或いは不揮発性RAM37からDMAの必要とするデータ転送レート及び1回のDMAで転送するデータサイズとを読出す(S39)。ここで、非同期I/F20に係るDMAのデータ転送レートは、接続される周辺装置がデータ転送可能なレートが非同期I/F20のDMAの必要とするデータ転送レートである。ROM等からのデータの読出しとともに、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このインタフェースのがデータ転送によってバスを使用するバス使用率DPを算出する(S40)。また、この時点までに既に起動されている全DMAによって使用されるバス使用率MPをバスモニタ36によって測定する(S41)。
【0074】
そこで、この時点で既に起動されている全DMAによって使用されるバス使用率MP及び全プロセッサ2,3によって使用されるバス使用率PPと、算出されたバス使用率DPとが、
DP>1−(PP+MP)
なる関係にあるか否かにより、新たに要求されたDMAの起動の可/不可を判断する(S42)。ここに、本発明におけるDMAの起動の可/不可を判断する手順或いは判断手段の機能が実行される。
【0075】
ここで、DP>1−(PP+MP)なる関係を満たす場合には(S42のY)、DMAの起動が不可能であると判断し、待機キューにこのDMAの起動を登録し(S44又はS45)、後述する割込処理を待つ待機状態となる。ここに、本発明におけるDMAの起動を待機させる手順或いは待機手段、並びに、待機要求の管理を行なう手順或いは待機要求管理手段の機能が実行される。この待機キューに登録するに先立ち、インタフェースの優先度をチェックする(S43)。通常の優先度であれば(S43のN)、待機キューの最後にこのDMAの起動を登録するが(S44)、高い優先度が設定されていれば(S43のY)、待機キューの先頭にこのDMAの起動を登録する(S45)。ここに、待機の順序を入替える手順或いは優先度処理手段の機能が実行される。
【0076】
一方、DP>1−(PP+MP)なる関係を満たさない場合には(S42のN)、DMAの起動が可能であると判断し、このインタフェースがデータを受信するかどうかをチェックし(S46)、データを受信する場合であれば、既に受信バッファが割当てられているか否かをチェックする(S47)。既に割当てられていれば、そのまま要求されているDMAを起動させる(S49)。しかし、割当てられていなければ、必要サイズのメモリ領域をバッファ領域として割当ててから(S48)、この要求されているDMAを起動させる(S49)。ステップS47,S48により、本発明におけるメモリ領域を割当てる手順或いはメモリ割当処理手段の機能が実行される。即ち、受信データを記憶するためにDMAが使用するバッファ領域に関して、要求されたDMAが待機状態にある間にはメモリ領域の割当てを行なわず、他のDMAが終了し、待機状態にあったDMAの設定がなされる際に、このDMAの設定に先んじてそのDMAが使用するバッファ領域に関してメモリ領域の割当てが行なわれる。また、ステップS49により、本発明におけるDMAを起動させる手順或いは起動手段の機能が実行される。
【0077】
また、既に起動されているDMAの終了に伴う割込処理(図6参照)においては、該当するデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行ない(S50)、待機キューに待機されているDMAが存在するか否かを判断する(S51)。待機されているDMAが存在すれば待機キューの先頭に置かれているDMAに関して算出されたバス使用率DPと算出、測定されたバス使用率PP,MPとから、
DP>1−(PP+MP)
なる関係にあるか否かにより、待機キューの先頭のDMAを実行する余裕が生じたか否かを判断する(S52)。DP>1−(PP+MP)なる関係になく余裕が生じたと判断されると(S52のN)、待機キューから当該DMAを取り除き(S53)、このインタフェースがデータを受信するかどうかをチェックし(S54)、データを受信する場合であれば、既に受信バッファが割当てられているか否かをチェックする(S55)。既に割当てられていれば、そのまま要求されているDMAを起動させる(S57)。しかし、割当てられていなければ、必要サイズのメモリ領域をバッファ領域として割当ててから(S56)、この要求されているDMAを起動させる(S57)。ステップS55,S56によっても、本発明におけるメモリ領域を割当てる手順或いはメモリ割当処理手段の機能が実行される。また、ステップS57により、本発明における待機後のDMAを起動させる手順或いは待機後起動手段の機能が実行される。
【0078】
従って、本実施の形態によっても、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るDMAの起動が要求された場合には、共有バス4のバンド幅上、新たなDMAを起動させる余裕がない場合にはその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス4上で既に行なわれているときに、新たなDMAが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。つまり、共有バス4に接続され、所定のデータ転送レートを必要とする複数のDMAC10,14,21に対して、必要とするデータ転送レートによるデータ転送を保証することができる。
【0079】
また、非同期I/F20によって通信する2次記憶装置23等の周辺装置の送受信可能なデータ転送レート等の情報を用いて実際のインタフェース上のデータ転送レートを算出しているので、より信頼性の高いバス使用率の計算が可能になる。また、バスモニタ36に基づき現時点の現実のバス使用率MPを測定できるため、既にDMAの起動がなされている全DMAC及び全プロセッサによって行なわれるデータ転送によるバス使用率を算出する必要がなくなり、プロセッサの負荷を軽減することもできる。
【0080】
また、各インタフェース9,39のDMAに関わる情報をDMAC10,14に接続されたROM11,15等の不揮発性のメモリから読出すことができ、また、インタフェース20がI/O拡張ボードによって実現されている場合には、ボード8上の負は説性RAM37等の不揮発性のメモリから読出すことができるので、システム構成が変更された場合にも柔軟に対応できる。
【0081】
また、一般には、プロセッサによるバス使用率は実行しているプログラムに依存し、或る時点でのプロセッサによるバス使用率を厳密に推定若しくは予測するのは非常に難しいが、本実施の形態では、プロセッサ2,3がバスI/F回路32,33を備え、予めプロセッサ2,3毎のバス使用率がバスI/F回路32,33に設定されるので、プロセッサ2,3によるバス使用率を固定することができ、かつ、そのバス使用率を超えないことを保証することができるので、より信頼性の高いバス使用率の計算が可能となる。
【0082】
また、本実施の形態によれば、共有バス4のバンド幅上、新たなDMAを起動する余地がない状態において複数のDMAの起動が要求された場合に、要求された複数のDMAの起動を要求順に待機させることができる上に、待機処理の管理が容易となる。さらに、インタフェース毎に優先度が付けられている場合には、優先度の低いインタフェースに係るDMAの起動が既に待機させられている状態においても、優先度の高いインタフェースに係るDMAの起動が要求された場合にはこれを優先するので、例えば、緊急的に或るインタフェースによるデータ転送が必要になった場合にも迅速に対応することができる。
【0083】
加えて、待機させられているDMAの利用するバッファ領域の割当てを、実際にDMAが起動される時点まで遅らせることができるので、メモリ領域を節約でき、メモリの有効活用が可能となる。
【0084】
本発明の第三の実施の形態を図7に基づいて説明する。本実施の形態は、プロセッサ・ユニット・モジュール34,35中で用いられるバスI/F回路32,33の構成に関するものである。
【0085】
このバスI/F回路32(又は、33)は、タイマ41とカウンタ42とレジスタ43と比較器44とウエイト挿入回路45とバス・トランザクション待機回路46とにより構成されている。前記タイマ41は単位時間を計時する。前記カウンタ42は、プロセッサ2(又は、3)がバス権を受けてからバス・トランザクションが終了するまでの時間を累積し、前記タイマ41によって計時される単位時間が経過した際にクリアされるもので、前記タイマ42とともに本発明における時間測定手段として機能する。前記レジスタ43はプロセッサ2(又は、3)の単位時間当たりのバス使用時間を設定するもので、本発明における設定手段として機能する。前記比較器44は前記レジスタ43に設定されたバス使用時間と前記カウンタ42によって測定された実際のバス使用時間とを比較するもので、本発明における比較手段として機能する。前記ウエイト挿入回路45は、前記比較器44から既に実際のバス使用時間が設定されたバス使用時間を上回っていることを示す比較結果信号がアクティブである間にプロセッサ2(又は、3)からのバス・トランザクションがReq*信号により要求された時にWait*信号 (ウエイト信号)によりウエイトを挿入する。前記バス・トランザクション待機回路46は、前記比較器44からの比較結果信号がアクティブである間にこのバス・トランザクションに係るバス権要求信号Br* をマスクし、トランザクションを待機させるもので、本発明における待機手段として機能する。
【0086】
このような構成において、本実施の形態のバスI/F回路32(又は、33)の作用について説明する。まず、前述した実施の形態の場合と同様に、システムの立上り時に、プロセッサ2(又は、3)のバス使用率を想定し、想定したこのバス使用率とバスI/F回路32(又は、33)の単位時間から単位時間当たりのバス使用時間を算出し、ここから評価誤差を考慮して或る時間を差し引いて、これをバスI/F回路32(又は、33)に与えられるクロックCLKにおけるクロック数に換算してレジスタ43に設定する。
【0087】
その後、単位時間を計時するタイマ41はクロックCLKに同期してカウントし、単位時間が経過する毎にカウンタ42をクリアするクリア信号を出力する。カウンタ42はプロセッサ2(又は、3)がバス権を受けてからバス・トランザクションが終了するまでの間クロックCLKに同期してカウントアップし、タイマ41からのクリア信号によってクリアされてから再度クリアされるまでの間にプロセッサ2(又は、3)がバスを使用した合計時間をカウントする。新たにプロセッサ2(又は、3)がReq*信号 によりバス・トランザクションを要求した際、カウンタ42のカウント値とレジスタ43に設定されている値(バス使用時間)とを比較器44で比較した比較結果信号が既にカウント値が設定値以上であることを示すアクティブ状態の時にはプロセッサ2(又は、3)へのWait* 信号をウエイト挿入回路45によりアサートする。同時に、カウント値が設定値以上である間は、バス権を要求する信号をバス・トランザクション待機回路46によってマスクする。その後、タイマ41が単位時間を計時し、カウンタ42がクリアされて比較器44の比較結果信号がディアサートされると、バス・トランザクション待機回路46によるマスクを解除してバス権を要求する信号をアサートしてバス・トランザクションを開始し、メモリからのデータを受け付け、或いは、データの書き込みが完了した場合であればウエイト挿入回路45によるWait *信号をディアサートする。
【0088】
従って、本実施の形態によれば、バスI/F回路32,33によりプロセッサ2,3のバス使用率を固定することができ、信頼性の高いバス使用率の算出が可能となる。
【0089】
本発明の第四の実施の形態を図8ないし図10に基づいて説明する。本実施の形態のデータ転送制御方法は、そのハードウェァ構成として、図8に示すような情報処理装置51を利用している。
【0090】
この情報処理装置51も、1個のコンピュータシステムによるものである。本実施の形態では、共有バス4に2つの同期出力I/Fモジュール6,52が接続されている。同期出力I/Fモジュール6は前述した実施の形態の場合と同じであるが、同期出力I/Fモジュール52は、前記プロセッサ2又は3によってデータが書き込まれるデータ出力用FIFO(ファースト・イン・ファースト・アウト・メモリ)53と、同期出力I/F54を制御する同期出力I/F回路55とにより構成されている。
【0091】
このような情報処理装置51におけるデータ転送制御方法を図9及び図10に示すフローチャートを参照して説明する。まず、アプリケーションプログラムより、或るインタフェースに対する制御要求があるまで待機する(S61)。制御要求があったら、そのインタフェースを制御するデバイス・ドライバによってDMAの起動の要求があったら(S62のY)、同期出力I/Fモジュール6内の固定アドレスに置かれたROM11からDMAの必要とするデータ転送レート及び1回のDMAで転送するデータサイズを読出す(S63)。ROMからのデータの読出しとともに、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このインタフェースがデータ転送によってバスを使用するバス使用率DPを算出する(S64)。
【0092】
そこで、この時点で既に起動されている全DMA及び全プロセッサ2,3によって使用されるバス使用率BPと、算出されたバス使用率DPとが、
DP>1−BP
なる関係にあるか否かにより、新たに要求されたDMAの起動の可/不可を判断する(S65)。ここで、DP>1−BPなる関係を満たす場合には(S65のY)、DMAの起動が不可能であると判断し、待機キューにそのDMAの起動を登録し(S66)、後述する割込処理を待つ待機状態となる。
【0093】
一方、DP>1−BPなる関係を満たさない場合には(S65のN)、DMAの起動が可能であると判断し、バス使用率BPに算出された今回用のバス使用率DPを加算してバス使用率BPを更新する(S67)。更新後、新たに要求された今回のDMAを起動させる(S68)。
【0094】
ところで、ステップS62の制御要求の受け付け後、インタフェースを制御するデバイス・ドライバによってプロセッサ2,3による周期的なデータ転送が要求されているか否かをチェックする(S69)。周期的なデータ転送が要求されている場合であれば、このデータ転送において必要とするデータ転送レート、システムに固定のメモリのアクセス・レイテンシ及びバス権調停に関わるレイテンシから、このデータ転送によってバスを使用するバス使用率DPを算出する(S70)。
【0095】
そこで、この時点で既に起動されている全DMA及び全プロセッサ2,3によって使用されるバス使用率BPと、算出されたバス使用率DPとが、
DP>1−BP
なる関係にあるか否かにより、新たに要求されたデータ転送の開始の可/不可を判断する(S71)。ここで、DP>1−BPなる関係を満たす場合には(S71のY)、データ転送の開始が不可能であると判断し、待機キューにそのデータ転送の開始を登録し(S72)、後述する割込処理を待つ待機状態となる。
【0096】
一方、DP>1−BPなる関係を満たさない場合には(S71のN)、データ転送の開始が可能であると判断し、バス使用率BPに算出された今回用のバス使用率DPを加算してバス使用率BPを更新する(S73)。更新後、新たに要求された周期的なデータ転送を行なうために、このデータ転送を行なう周期プログラムを起動させる(S74)。ここに、周期プログラムとは、一定の周期で呼び出されて処理を行なうプログラムであり、ここでは、同期出力I/F54に出力するデータを同期出力I/Fモジュール52上のデータ出力用FIFO53に書き込む処理を行なう。
【0097】
また、既に起動されているDMAの終了に伴う割込処理或いはタイマによる割込処理(図10参照)においては、割込みに係るデバイス・ドライバの割込処理ルーチンにおいてデバイス制御処理を行い(S75)、さらに、DMAの終了に伴う割込処理においてはこのDMAを起動する際に算出されてバス使用率BPに加算されたバス使用率DPをBPから除算してバス使用率BPを更新する(S76)。また、既に終了している周期プログラムがあれば(S77のY)、この周期プログラムの開始の際に算出したバス使用率DPをBPから除算してバス使用率BPを更新する(S78)。その後、待機キューに待機されているDMA或いはデータ転送が存在するか否かを判断し(S79)、待機されているDMA或いはデータ転送が存在すれば待機キューの先頭に置かれているDMAに関して算出されたバス使用率DPとステップS67又はS73で更新されたバス使用率BPとから、
DP>1−BP
なる関係にあるか否かにより、待機キューの先頭のDMAの起動或いはデータ転送の開始を実行する余裕が生じたか否かを判断する(S80)。DP>1−BPなる関係になく余裕が生じたと判断されると(S80のN)、待機キューから当該DMA或いはデータ転送を取り除き(S81)、さらに、バス使用率BPに当該DMA用或いはデータ転送用のバス使用率DPを加算してバス使用率BPを更新した後で(S82)、待機されていたこのDMAを起動させる(S84)。周期的なデータ転送の開始が待機されていた場合には(S83のY)、このデータ転送を行なう周期プログラムを起動させる(S84)。
【0098】
従って、本実施の形態によれば、例えば、大量データのコピー操作等の連続したデータ転送や周期的に実行されるプログラムによるデータ転送が要求された場合に、共有バス4のバンド幅上、新たなデータ転送を開始する余地がない場合には、そのデータ転送の開始を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス4上で既に行なわれているときに、新たなデータ転送が開始されることに起因してデータ転送が保証されなくなってしまうのを防止することができる。
【0099】
【発明の効果】
請求項1記載のデータ転送制御方法の発明、請求項記載のデータ転送制御装置の発明、及び、請求項記載の情報記録媒体の発明によれば、アプリケーション・プログラムやシステム制御プログラム等により新たなインタフェースでのデータ転送が要求され、この新たなインタフェースに係るDMAの起動が要求された場合には、監視手段によって現時点のバス使用率を算出し、バス・インファフェースが各プロセッサのバス使用率を設定し、共有バスで延ばす使用率が設定されたプロセッサごとのバス使用率を上回らないようにウェイトを挿入し、また、新たに要求されたDMAのバス使用率を算出し、共有バスのバンド幅上、新たなDMAを起動させる余裕がなければその起動を待機させるので、或る固定のデータ転送レートのデータ転送を必要とするインタフェースに係るデータ転送が共有バス上で既に行なわれているときに、新たなDMAが起動されることに起因してデータ転送が保証されなくなってしまうのを防止することができ、結局、共有バスに接続され、所定のデータ転送レートを必要とする複数のDMAコントローラに対して、必要とするデータ転送レートによるデータ転送を保証することができる。
【0100】
請求項2記載のデータ転送制御方法の発明、請求項記載のデータ転送制御装置の発明、及び、請求項記載の情報記録媒体の発明によれば、新たなDMAの起動が要求された際の起動の可/不可の判断により、待機要求の管理を行い、また、優先度付けがなされている場合には優先度によってDMAの待機の順序を入替えるので、新たに要求されたDMAの起動の可/不可を判断し、不可能と判断した場合には待機要求を出して管理し、また、優先度が付けられている場合には、該優先度によってDMAの待機の順序を入れ替えることができるので、優先順位に従ってDMAを起動させることができ、しかも、特殊回路の組み込みに伴うハード構成の変更を必要としない。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態を示す情報処理装置のブロック図である。
【図2】そのデータ転送制御処理を示すフローチャートである。
【図3】割込処理を示すフローチャートである。
【図4】本発明の第二の実施の形態を示す情報処理装置のブロック図である。
【図5】そのデータ転送制御処理を示すフローチャートである。
【図6】割込処理を示すフローチャートである。
【図7】本発明の第三の実施の形態を示すバスI/F回路のブロック図である。
【図8】本発明の第四の実施の形態を示す情報処理装置のブロック図である。
【図9】そのデータ転送制御処理を示すフローチャートである。
【図10】割込処理を示すフローチャートである。
【符号の説明】
1 コンピュータ
2,3 プロセッサ
4 共有バス
9 インタフェース
10 DMAコントローラ
11 不揮発性のメモリ
13 インタフェース
14 DMAコントローラ
15 不揮発性のメモリ
19 不揮発性のメモリ
20 非同期なインタフェース
21 DMAコントローラ
23 周辺装置
31 コンピュータ
32,33 バス・インタフェース回路
36 監視手段
37 不揮発性のメモリ
39 インタフェース
41,42 時間測定手段
43 設定手段
44 比較手段
45 ウエイト挿入手段
46 待機手段
54 インタフェース

Claims (6)

  1. 共有バスに接続されたDMAコントローラ及びプロセッサを有し、前記DMAコントローラにより行われるDMA(ダイレクト・メモリ・アクセス)を制御するデータ転送制御装置におけるデータ転送制御方法であって、
    共有バスのビジー時間を監視することで、DMA起動済みの全DMAコントローラにより行なわれるデータ転送によるバス使用率を算出し、
    前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定機能、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定設定により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入機能をバス・インタフェースによって実行し、
    メモリを有して、各DMAコントローラに関連付けられて設けられ、DMAが必要とするデータ転送レート及び1回のDMAで転送するデータサイズの情報を前記メモリに格納し、前記メモリに記憶してある新たに要求されたDMAが必要とするデータ転送レート、1回のDMAで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたDMAのバス使用率を算出し、
    新たなDMAの起動が要求された際に、前記DMA起動済みの全DMAコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出機能により算出された新たに要求されたDMAのバス使用率に基づいて新たに要求されたDMAの起動の可/不可を判断し、
    可能と判断された場合には新たに要求されたDMAを起動させ、
    不可能と判断された場合には新たに要求されたDMAの起動を待機させ、
    既に実行されている何れかのDMAが終了し、前記共有バスに新たに要求されたDMAを実行する余裕が生じた時点で待機させていたDMAを起動させることを特徴とするデータ転送制御方法。
  2. 新たなDMAの起動が要求された際の起動の可/不可の判断により、不可能と判断された場合にはそのDMAの起動を待機キューを用いて待機要求の管理を行い、
    DMAを用いる各インタフェースに優先度付けがなされている場合には優先度によってDMAの待機の順序を入替えることを特徴とする請求項1記載のデータ転送制御方法。
  3. 共有バスに接続されたDMAコントローラ及びプロセッサを有し、前記DMAコントローラにより行われるDMA(ダイレクト・メモリ・アクセス)を制御するデータ転送制御装置であって、
    共有バスのビジー時間を監視することで、DMA起動済みの全DMAコントローラにより行なわれるデータ転送によるバス使用率を算出する監視手段と、
    前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定手段、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定手段により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入手段を有するバス・インタフェースと、
    各DMAコントローラに関連付けられて設けられ、DMAが必要とするデータ転送レート及び1回のDMAで転送するデータサイズの情報が格納されたメモリを有して、前記メモリに記憶してある新たに要求されたDMAが必要とするデータ転送レート、1回のDMAで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたDMAのバス使用率を算出するバス使用率算出手段と、
    新たなDMAの起動が要求された際に、前記監視手段により算出したDMA起動済みの全DMAコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出手段により算出された新たに要求されたD MAのバス使用率に基づいて新たに要求されたDMAの起動の可/不可を判断する判断手段と、
    可能と判断された場合には新たに要求されたDMAを起動させる起動手段と、
    不可能と判断された場合には新たに要求されたDMAの起動を待機させる待機手段と、
    既に実行されている何れかのDMAが終了し、前記共有バスに新たに要求されたDMAを実行する余裕が生じた時点で待機させていたDMAを起動させる待機後起動手段と、
    備えることを特徴とするデータ転送制御装置。
  4. 新たなDMAの起動が要求された際の起動の可/不可の判断により、不可能と判断された場合にはそのDMAの起動を待機キューを用いて待機要求の管理を行う待機要求管理手段と、
    DMAを用いる各インタフェースに優先度付けがなされている場合には優先度によってDMAの待機の順序を入替える優先度処理手段とを、さらに備えることを特徴とする請求項記載のデータ転送制御装置
  5. 共有バスに接続されたDMAコントローラ及びプロセッサを有し、前記DMAコントローラにより行われるDMA(ダイレクト・メモリ・アクセス)を制御するデータ転送制御装置におけるコンピュータで読み取り可能な情報記録媒体であって、
    共有バスのビジー時間を監視することで、DMA起動済みの全DMAコントローラにより行なわれるデータ転送によるバス使用率を算出する監視手順と、
    前記プロセッサに接続され、各プロセッサのバス使用率を設定する設定機能、および、前記プロセッサによる前記共有バスでのバス使用率が前記設定設定により設定されたプロセッサ毎のバス使用率を上回らないように、プロセッサによるバスアクセスに対してウエイトを挿入するウエイト挿入機能をバス・インタフェースによって実行するバス・インタフェース手順と、
    メモリを有し、各DMAコントローラに関連付けられて設けられ、DMAが必要とするデータ転送レート及び1回のDMAで転送するデータサイズの情報を格納し、前記メモリに記憶してある新たに要求されたDMAが必要とするデータ転送レート、1回のDMAで転送するデータサイズ或いはシステムに固有のメモリが受け付けられるデータサイズ、メモリのアクセス・レイテンシ、および、バス権調停に関わるレイテンシを用いて新たに要求されたDMAのバス使用率を算出する手順と、
    新たなDMAの起動が要求された際に、前記監視機能により算出したDMA起動済みの全DMAコントローラにより行なわれるデータ転送による現時点のバス使用率、前記バス・インタフェースにより設定された各プロセッサのバス使用率から求められる全プロセッサによるバス使用率、および、バス使用率算出機能により算出された新たに要求されたDMAのバス使用率に基づいて新たに要求されたDMAの起動の可/不可を判断する手順と、
    可能と判断された場合には新たに要求されたDMAを起動させる手順と、
    不可能と判断された場合には新たに要求されたDMAの起動を待機させる手順と、
    既に実行されている何れかのDMAが終了し、前記共有バスに新たに要求されたDMAを実行する余裕が生じた時点で待機させていたDMAを起動させる手順と、
    をコンピュータに実行させるためのプログラムが記録されていることを特徴とする情報記録媒体。
  6. 新たなDMAの起動が要求された際の起動の可/不可の判断により、不可能と判断された場合にはそのDMAの起動を待機キューを用いて待機要求の管理を行う手順と、
    DMAを用いる各インタフェースに優先度付けがなされている場合には優先度によってDMAの待機の順序を入替える手順と、
    を前記コンピュータに実行させるためのプログラムが記録されていることを特徴とする請求項5記載の情報記録媒体。
JP21023397A 1997-08-05 1997-08-05 データ転送制御方法、データ転送制御装置及び情報記録媒体 Expired - Fee Related JP3712842B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP21023397A JP3712842B2 (ja) 1997-08-05 1997-08-05 データ転送制御方法、データ転送制御装置及び情報記録媒体
US09/127,805 US6119176A (en) 1997-08-05 1998-08-03 Data transfer control system determining a start of a direct memory access (DMA) using rates of a common bus allocated currently and newly requested
US09/621,658 US6298397B1 (en) 1997-08-05 2000-07-21 Data transfer control system determining a start of a direct memory access (DMA) using rates of a common bus allocated currently and newly requested

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21023397A JP3712842B2 (ja) 1997-08-05 1997-08-05 データ転送制御方法、データ転送制御装置及び情報記録媒体

Publications (2)

Publication Number Publication Date
JPH1153300A JPH1153300A (ja) 1999-02-26
JP3712842B2 true JP3712842B2 (ja) 2005-11-02

Family

ID=16585998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21023397A Expired - Fee Related JP3712842B2 (ja) 1997-08-05 1997-08-05 データ転送制御方法、データ転送制御装置及び情報記録媒体

Country Status (2)

Country Link
US (2) US6119176A (ja)
JP (1) JP3712842B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW406229B (en) * 1997-11-06 2000-09-21 Hitachi Ltd Data process system and microcomputer
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
DE19846913A1 (de) * 1998-10-12 2000-04-20 Oce Printing Systems Gmbh Elektronische Steuereinrichtung mit einem parallelen Datenbus und Verfahren zum Betreiben der Steuereinrichtung
US6560652B1 (en) * 1998-11-20 2003-05-06 Legerity, Inc. Method and apparatus for accessing variable sized blocks of data
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
ITTO20010838A1 (it) * 2001-08-30 2003-03-02 Telecom Italia Lab Spa Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo.
US6925512B2 (en) * 2001-10-15 2005-08-02 Intel Corporation Communication between two embedded processors
JP2003141057A (ja) * 2001-11-06 2003-05-16 Mitsubishi Electric Corp Dma転送制御回路
US6877059B2 (en) * 2002-03-29 2005-04-05 Emc Corporation Communications architecture for a high throughput storage processor
US6813689B2 (en) 2002-03-29 2004-11-02 Emc Corporation Communications architecture for a high throughput storage processor employing extensive I/O parallelization
US6792506B2 (en) * 2002-03-29 2004-09-14 Emc Corporation Memory architecture for a high throughput storage processor
US7209979B2 (en) * 2002-03-29 2007-04-24 Emc Corporation Storage processor architecture for high throughput applications providing efficient user data channel loading
US6865643B2 (en) * 2002-03-29 2005-03-08 Emc Corporation Communications architecture for a high throughput storage processor providing user data priority on shared channels
US8176143B2 (en) * 2002-09-20 2012-05-08 Ricoh Company, Ltd. Web service providing apparatus
JP2004206749A (ja) * 2002-12-24 2004-07-22 Funai Electric Co Ltd データ記憶装置
US20040153591A1 (en) * 2003-01-07 2004-08-05 Yoshiteru Tanaka Bus arbiter
EP1761023B1 (en) * 2003-03-04 2018-05-02 Ricoh Company, Ltd. Image forming apparatus and image processing apparatus
JP2005056067A (ja) * 2003-08-01 2005-03-03 Matsushita Electric Ind Co Ltd Dma転送制御装置
US20050052688A1 (en) * 2003-08-12 2005-03-10 Teruyuki Maruyama Document edit method and image processing apparatus
AU2004316014B2 (en) 2004-02-19 2010-06-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for state memory management
JP2005293427A (ja) * 2004-04-02 2005-10-20 Matsushita Electric Ind Co Ltd データ転送処理装置及びデータ転送処理方法
US7930422B2 (en) 2004-07-14 2011-04-19 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
US7698473B2 (en) * 2005-01-05 2010-04-13 Sony Computer Entertainment Inc. Methods and apparatus for list transfers using DMA transfers in a multi-processor system
JP2008083911A (ja) * 2006-09-27 2008-04-10 Matsushita Electric Ind Co Ltd Dma転送制御装置および半導体集積回路装置
JP5064336B2 (ja) * 2008-09-12 2012-10-31 株式会社リコー 画像形成システムおよびプログラム
TW201039131A (en) * 2009-04-24 2010-11-01 Silicon Motion Inc Apparatus for controlling at least one electronic device and related method thereof
JP5423483B2 (ja) 2010-03-04 2014-02-19 株式会社リコー データ転送制御装置
CN107517069B (zh) * 2017-08-22 2020-06-02 深圳市华信天线技术有限公司 跳频同步的方法、装置、接收机以及发射机
KR102364382B1 (ko) * 2017-12-20 2022-02-16 한국전기연구원 듀얼 포트 메모리 및 그 제어 방법
US11561909B2 (en) * 2021-04-28 2023-01-24 Western Digital Technologies, Inc. Bandwidth allocation for storage system commands in peer-to-peer environment

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
EP0454605A3 (en) * 1990-04-25 1992-04-22 International Business Machines Corporation Bus request device in a direct memory access (dma) system
JPH04169953A (ja) * 1990-11-02 1992-06-17 Toshiba Corp コンピュータシステム
JPH05250305A (ja) * 1992-03-06 1993-09-28 Mitsubishi Electric Corp データ転送制御方式
EP0576122B1 (en) * 1992-04-27 2001-08-29 Nippon Telegraph And Telephone Corporation Packet network and method for congestion avoidance in packet networks
JP2870569B2 (ja) * 1993-03-22 1999-03-17 富士通株式会社 フレームリレー交換装置における輻輳処理方式および輻輳処理回路
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5533205A (en) * 1994-03-30 1996-07-02 International Business Machines Corporation Method and system for efficient bus allocation in a multimedia computer system
DE19521069C1 (de) * 1995-06-09 1996-06-05 Siemens Ag ATM-Kommunikationseinrichtung
US6055577A (en) * 1996-05-06 2000-04-25 Oracle Corporation System for granting bandwidth for real time processes and assigning bandwidth for non-real time processes while being forced to periodically re-arbitrate for new assigned bandwidth
JP2930020B2 (ja) * 1996-07-18 1999-08-03 日本電気株式会社 通信制御装置
US6038620A (en) * 1996-09-09 2000-03-14 International Business Machines Corporation Method and system for optimal high speed match in a high performance controller which ensures an input/output interface stays ahead of a host interface

Also Published As

Publication number Publication date
US6298397B1 (en) 2001-10-02
US6119176A (en) 2000-09-12
JPH1153300A (ja) 1999-02-26

Similar Documents

Publication Publication Date Title
JP3712842B2 (ja) データ転送制御方法、データ転送制御装置及び情報記録媒体
JP3636157B2 (ja) データ転送制御装置、電子機器及びデータ転送制御方法
JP3181515B2 (ja) データ転送方法及びその方法を用いたデータ転送装置
US7467245B2 (en) PCI arbiter
US20100162256A1 (en) Optimization of application power consumption and performance in an integrated system on a chip
JP4974508B2 (ja) バスマスタ装置、バス調停装置及びバス調停方法
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
US20080270658A1 (en) Processor system, bus controlling method, and semiconductor device
JP2007508607A (ja) 複数のプロセッサと1つのメモリシステムを有するシステムのためのメモリインタフェース
EP1063594A2 (en) An interrupt controller and a microcomputer incorporating this controller
JPH0728758A (ja) ダイナミックタイムループ調停及び装置
JP3755594B2 (ja) データ転送制御装置及び電子機器
CN111290983A (zh) Usb传输设备及传输方法
JP2007041771A (ja) プロセススケジューリングシステム、プロセススケジューリング方法およびプログラム
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
US6658510B1 (en) Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
JP2004078683A (ja) コンピュータシステムおよび共有メモリ制御方法
JP2001022686A (ja) 情報処理システム
JP2006215621A (ja) Dma制御装置
JP4953794B2 (ja) バスシステムのバス調停方法及びバスシステム
JP2000293480A (ja) Dma転送装置
EP3238085B1 (en) Virtual legacy wire
JPH10320349A (ja) プロセッサ及び当該プロセッサを用いるデータ転送システム
JP2002049580A (ja) バス管理装置、バス使用要求送信装置、バス管理方法、及びバス使用要求送信方法
JP2001056793A (ja) 情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050627

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050609

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050818

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090826

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100826

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110826

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120826

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130826

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees