JPH06274436A - データ転送方式 - Google Patents

データ転送方式

Info

Publication number
JPH06274436A
JPH06274436A JP6218393A JP6218393A JPH06274436A JP H06274436 A JPH06274436 A JP H06274436A JP 6218393 A JP6218393 A JP 6218393A JP 6218393 A JP6218393 A JP 6218393A JP H06274436 A JPH06274436 A JP H06274436A
Authority
JP
Japan
Prior art keywords
transfer
data
task
reception
logical path
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.)
Granted
Application number
JP6218393A
Other languages
English (en)
Other versions
JP3176472B2 (ja
Inventor
Makoto Yoshioka
誠 吉岡
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.)
N T T DATA TSUSHIN KK
NTT Data Corp
Original Assignee
N T T DATA TSUSHIN KK
NTT Data Communications Systems Corp
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 N T T DATA TSUSHIN KK, NTT Data Communications Systems Corp filed Critical N T T DATA TSUSHIN KK
Priority to JP06218393A priority Critical patent/JP3176472B2/ja
Publication of JPH06274436A publication Critical patent/JPH06274436A/ja
Application granted granted Critical
Publication of JP3176472B2 publication Critical patent/JP3176472B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 本発明は、コンピュータシステム本体などの
上で実行されるタスクとそれに接続されるオプションボ
ードなどの上で実行されるタスクとの間で、データ転送
効率の高いデータ転送を実現可能とすることを目的とす
る。 【構成】 受信準備完了時点で転送先タスクから発行さ
れるREADコマンドに基づき、設定部118がテーブ
ル120に準備完了の情報を設定する。それに同期し
て、設定部118から発行される準備完了コマンドに基
づき、設定部110がテーブル114にも準備完了の情
報を設定する。通知レスポンス発行部111は、テーブ
ル114で準備完了の情報が設定され転送データキュー
115にデータが存在する論理パス番号でのみ、転送デ
ータキュー115上のWRITEコマンドを選択する。
そのWRITEコマンドの内容を解析しテーブル120
を参照するだけで、転送先及び転送元アドレス、並びに
転送データ数が取得され、それらに基づき、DMAコン
トローラ109でDMA転送が実行される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
本体などの第1のデータ処理装置とそのコンピュータシ
ステムに接続されるオプションボードなどの第2のデー
タ処理装置との間のデータ転送方式に係り、更に詳しく
は、一方のデータ処理装置上で実行されるタスク(プロ
セス)に他方のデータ処理装置上で実行されるタスクか
らデータを転送するためのデータ転送方式に関する。
【0002】
【従来の技術】パーソナルコンピュータなどのコンピュ
ータシステムにおいて、本体の拡張スロットにネットワ
ークインタフェースボード、モデムボード、画像処理ボ
ードなどのデータ処理ボード(入出力装置)を装着する
ことにより、その機能向上を図ることができるものが多
い。
【0003】この場合、コンピュータシステムの本体
(以下、「本体側装置」と呼ぶ)とデータ処理ボード
(以下、「ボード側装置」と呼ぶ)との間でデータ転送
をする必要が生ずる。データ転送の方式としては、DM
A(Direct Memory Access)転送方式が一般的に採用され
る。この方式では、ボード側装置が、データの入出力に
使用されるメモリのアドレス及びデータ転送数を管理
し、本体側装置のメモリに直接アクセスしてデータの転
送を行う。
【0004】本体側装置とボード側装置の間のDMA転
送は、通常、本体側装置とボード側装置のそれぞれにお
いて動作するドライバプログラム(以下、これらを「本
体側ドライバ」及び「ボード側ドライバ」と呼ぶ)によ
って制御される。そして、これらのドライバが、ボード
側装置内に設けられ本体側装置からのアドレス指定によ
ってアクセス可能なレジスタを介して通信を行いながら
DMA転送のためのアドレス及びデータ転送数などの設
定を行った後に、DMA転送が開始される。
【0005】図5に、ボード側装置から本体側装置への
DMA転送が実行される場合のシーケンスの従来例を示
す。まず、ボード側装置において、ボード側装置で実行
されていたタスク(例えばネットワークに対してデータ
の送受信を行うためのタスク)からDMA転送要求コマ
ンドが発生すると、そのタスクからボード側ドライバの
処理が割り当てられるタスク(以下、簡単のため単に
「ボード側ドライバ」という)に制御が移される。ボー
ド側ドライバは、シーケンスS1で、DMA転送要求コ
マンドを発行したタスクから通知された転送データ数を
ボード側装置内のデータレジスタに書き込む。
【0006】ここで、タスク(又はプロセス)とは、本
体側装置又はボード側装置が実行する任意の処理単位を
いう。1つ又は複数の処理は、1つ又はそれ以上のタス
クに割り当てることができ、ある瞬間においてはコンピ
ュータシステム上ではただ1つのタスクが実行されてい
る。
【0007】次に、シーケンスS2で、ボード側ドライ
バが、ボード側装置内のステータスレジスタに転送開始
要求フラグを書き込んだ後、本体側装置に割込み要求信
号を出力する。
【0008】この結果、本体側装置において割込みが発
生する。本体側装置のオペレーティングシステムは、こ
の割込みを受け付けた場合、シーケンスS3で、ボード
側装置内のステータスレジスタにセットされている転送
開始要求フラグを検出することによりボード側装置にお
いてDMA転送要求が発生したことを認識し、その結
果、現在本体側装置で実行されているタスクから本体側
ドライバの処理が割り当てられるタスク(以下、簡単の
ため単に「本体側ドライバ」という)へ制御を移す。
【0009】本体側ドライバは、シーケンスS4で、デ
ータレジスタにセットされている転送データ数を読み取
る。その後、本体側ドライバは、シーケンスS5で、ボ
ード側装置内のステータスレジスタに転送準備完了フラ
グを書き込んだ後、ボード側装置に割込み要求信号を出
力する。
【0010】この結果、ボード側装置において割込みが
発生する。ボード側ドライバは、この割込みを受け付け
た場合、シーケンスS6で、ステータスレジスタにセッ
トされている転送準備完了フラグを確認することによ
り、DMA転送を開始してよいことを認識する。
【0011】この間、本体側ドライバは、シーケンスS
5の割込み通知に続くシーケンスS7で、ボード側装置
内のDMAコントローラに、ボード側装置から送られて
きた転送データ数と、転送データが格納される本体側装
置内のメモリのドライバ用バッファ領域のアドレスであ
る転送先アドレスを書き込んだ後、起動指示を出力す
る。この後は、本体側装置自身は、本体側装置内のバス
権をDMAコントローラに引き渡し、停止状態になる。
【0012】また、ボード側ドライバは、シーケンスS
6の割込み発生に続くシーケンスS8で、DMAコント
ローラに、転送データが読み出されるボード側装置内の
メモリの転送元アドレスを書き込んだ後、起動指示を出
力する。この後は、ボード側装置自身も、ボード側装置
内のローカルバスのバス権をDMAコントローラに引き
渡し、DMAコントローラ以外の部分は停止状態にな
る。
【0013】DMAコントローラは、上述の本体側装置
からの起動指示とボード側装置からの起動指示を受け取
ることによってバス権を獲得すると、転送元アドレスを
ボード側装置内のローカルアドレスバスを介してボード
側装置内のメモリに指定することによって、転送データ
をボード側装置内のローカルデータバスからデータレジ
スタを介して本体側装置のデータバスに読み出し、続い
て、転送先アドレスを本体側装置のアドレスバスを介し
て本体側装置内のメモリに指定することによって、本体
側装置のデータバスに読み出されている転送データを本
体側装置内のドライバ用バッファ領域に書き込む。その
後、DMAコントローラは、転送元アドレス及び転送先
アドレスをそれぞれ1アドレス更新し、上述と同様の動
作を繰り返す。DMAコントローラは、転送回数が転送
データ数を越えた時点で、DMA転送を完了する。
【0014】この結果、シーケンスS9で、DMAコン
トローラからボード側装置自身に対して、DMA転送が
完了した旨の割込みが発生し、ボード側ドライバが動作
を再開する。
【0015】また、シーケンスS10では、DMAコン
トローラから本体側装置に対し、DMA転送が完了した
旨の割込みが発生し、本体側ドライバが動作を再開す
る。本体側ドライバは、シーケンスS11で、ボード側
装置内のステータスレジスタにDMA転送完了フラグを
書き込んだ後に、ボード側装置に割込み要求信号を出力
する。そして、本体側ドライバは、ドライバ用バッファ
領域に転送されたデータのヘッダ情報などを解析するこ
とにより、そのデータが転送されるべきタスクを決定
し、そのタスクにデータが受信された旨を通知した後、
DMA転送処理を完了し、そのタスクへ制御を移す。
【0016】この後は、転送先のタスクが、ドライバ用
バッファ領域に受信されたデータを自分自身のバッファ
領域へ転送し、それに対してデータ処理を行う。一方、
本体側装置からの割込み要求の結果、ボード側装置にお
いて割込みが発生する。ボード側ドライバは、この割込
みを受け付けた場合、シーケンスS12で、ステータス
レジスタにセットされているDMA転送完了フラグを確
認することにより、DMA転送が完了したことを認識す
る。この結果、ボード側ドライバは、最初にDMA転送
を発生させたタスクにDMA転送が完了した旨を通知
し、そのタスクへ制御を戻す。
【0017】以上のDMA転送のシーケンスの従来例
は、ボード側装置から本体側装置へのDMA転送が実行
される場合のものであったが、本体側装置からボード側
装置へのDMA転送が実行される場合も、本体側ドライ
バとボード側ドライバの処理が入れ替わるだけで同様で
ある。
【0018】ここで、近年のコンピュータシステムにお
いては、マルチタスク処理を可能とするオペレーティン
グシステムのもとで動作するものが多くなってきてい
る。このようなオペレーティングシステムのもとでは、
システムの種々の状態変化(イベント)が発生したそれ
ぞれのタイミングで、又は予め時分割されたそれぞれの
タイミングで、或いはそれらの組合せによって決定され
るそれぞれのタイミングで、複数のタスクが実行され
る。この結果、1つのコンピュータシステム上で異なる
処理を並列的に実行することが可能となる。
【0019】今、例えば、1つの装置にLAN(ローカ
ルエリアネットワーク)などのネットワークを介して複
数の装置が接続されている場合に、或る装置から送られ
てきたデータは自装置内のディスク装置にファイルとし
て格納され、他の装置から送られてきたデータは自装置
内のディスプレイ装置の画面に表示されるというよう
に、1つの装置上で異なる処理が並列的に実行される例
は数多い。
【0020】ここで、ディスク装置へのアクセス処理と
ディスプレイ装置でのデータ表示処理は、処理を開始さ
せるイベント、処理の動作時間、又は処理が実行される
ための条件などが異なり互いに異質の処理であるため、
これらの処理は別々のタスクに割り当てられるのが普通
である。
【0021】また、同様な処理、例えばディスク装置へ
のアクセス処理といった処理についても、その処理の契
機となるイベントが複数の装置によって発生され得る場
合には、装置毎の独立性を確保するなどのために、各装
置に対応する処理毎に別々のタスクが生成される場合が
多い。
【0022】上述のように、タスク毎に別々のデータ処
理が実行される場合には、それぞれのデータ処理に伴っ
て実行される装置間(例えば前述した本体側装置とボー
ド側装置の間)のデータ転送処理もタスク毎に独立して
実行する必要性が生ずる。
【0023】タスク毎に独立したデータ転送を実現する
ための第1の従来方式として、タスク毎に別々のデータ
転送機構(入出力機構)が設けられる方式がある。第2
の従来方式として、前述した例のように、各タスク毎の
転送データは、転送先の装置内の受信用バッファ領域
(前述した例ではドライバ用バッファ領域)に一旦順次
受信された後に、転送先の各タスクのバッファ領域に順
次転送される方式がある。
【0024】第3の従来方式として、転送先の各タスク
のバッファ領域が固定され、各バッファ領域に直接転送
データが転送される方式が考えられる。
【0025】
【発明が解決しようとする課題】しかし、上述の第1の
従来方式では、タスク毎に別々のデータ転送機構(入出
力機構)を設けなければならないことによるハードウエ
アの増加が避けられないという問題点を有している。ま
た、一般的に、各入出力機構には、本体側装置からのア
クセスを可能とするための個別のI/Oアドレスが割り
当てられるため、第1の従来方式のように複数のデータ
転送機構が設けられる場合はそれぞれの分のI/Oアド
レスの割当てが必要となる。しかし、I/Oアドレスの
資源はそれほど多くは確保できないのが普通であるた
め、I/Oアドレスの占有量の増加は他のI/O機器の
接続に制限を生じさせてしまうという問題点を有してい
る。
【0026】一方、第2の従来方式も、以下のような種
々の問題点を有する。まず、転送データは転送先の装置
内の受信用バッファ領域に一旦受信された後に転送先の
タスクのバッファ領域に転送されるため、転送データの
転送先がどのタスクであるかはその転送データを受信し
てその内容を解析するまではわからない。従って、転送
先のタスクと転送元のタスクとの間でフロー制御を行う
ことができず転送元のタスクはDMA転送の開始契機を
決定できないため、転送先のタスクは任意のタイミング
でデータを出力せざるを得ない。しかし、受信用バッフ
ァ領域に受信された転送データが転送先のタスクのバッ
ファ領域に転送される場合、そのタスクの処理状態によ
ってはデータ転送処理の時間にばらつきが生じ、受信用
バッファ領域がなかなか開放されない結果、その間に他
のデータ転送を行うことができず、データ転送効率が著
しく低下してしまうという問題点を有している。
【0027】また、受信側のドライバに割り当てられた
タスクは、受信用バッファ領域に転送されたデータのヘ
ッダ情報などを解析してそのデータが転送されるべきタ
スクを決定する処理、その処理結果に基づく転送先のタ
スクとの間のタスク間通信の処理、及び受信用バッファ
領域と転送先のタスクのバッファ領域との間のデータ転
送の処理に時間がかかってしまい、データ転送速度の低
下を招いてしまうという問題点を有している。
【0028】加えて、受信用バッファ領域とタスク毎の
バッファ領域の2つのバッファ領域が必要となり、特に
受信用バッファ領域としては、最大量のデータ転送を行
うタスクに合せてバッファ領域を確保する必要があるた
め、メモリ資源の利用効率の低下を招いてしまうという
問題点を有している。
【0029】更に、転送先のタスクのバッファ領域が固
定される第3の従来方式は、各タスクが主記憶装置上で
再配置可能(リロケータブル)な状態で実行される形態
のマルチタスクシステムには適用できないという問題点
を有している。
【0030】この問題点を解決するために、データ転送
の開始前に転送元のタスクが転送先のタスクとの間でフ
ロー制御のためのタスク間通信を行い、転送先のタスク
のバッファ領域の状態とアドレスを確認した上で、転送
先のタスクのバッファ領域にデータを直接転送すること
が容易に考えられるが、特に本体側装置とボード側装置
の間のように異なるアドレス空間を有する装置間でタス
ク間通信を実現するためには複雑なプロトコルが必要と
なり、やはりデータ転送速度の低下を招いてしまうとい
う問題点を有している。
【0031】本発明は、I/Oアドレスやメモリ資源を
浪費することなく、マルチタスクシステムにおいても高
いデータ転送効率を実現可能とすることを目的とする。
【0032】
【課題を解決するための手段】本発明は、パーソナルコ
ンピュータなどのコンピュータシステムにおいて、本体
側のデータ処理装置に、その拡張スロットにネットワー
クインタフェースボード、モデムボード、画像処理ボー
ドなどのデータ処理ボード(入出力装置)である他のデ
ータ処理装置が接続された構成を前提とする。そして、
送信側のデータ処理装置上で実行されるタスクである少
なくとも1つの転送元タスクから受信側のデータ処理装
置上で実行されるタスクである少なくとも1つの転送先
タスクに転送データを転送するための、例えばダイレク
トメモリアクセス方式によるデータ転送方式を前提とす
る。この場合、本体側のデータ処理装置及びボード側の
データ処理装置共に、送信側及び受信側のデータ処理装
置となることができる。
【0033】そして、まず、転送元タスクと転送先タス
クの組合せ毎に論理パスを設定する論理パス設定手段を
有する。この手段は、例えば、上記組合せ毎に論理パス
番号を割り当てるオペレーティングシステムである。
【0034】次に、論理パス設定手段で設定された論理
パス毎に、その論理パスに対応する転送元タスクの受信
準備状態を管理する受信準備状態管理手段を有する。こ
の手段は、例えば、受信側及び送信側のそれぞれのデー
タ処理装置に設けられる(受信状態管理テーブル120
及び送信状態管理テーブル114)。
【0035】次に、論理パス設定手段で設定された論理
パス毎に、その論理パスに対応する転送先タスクが所有
する受信バッファ領域のアドレスである転送先アドレス
を管理する転送先アドレス管理手段を有する。この手段
は、例えば、受信側のデータ処理装置に設けられる(受
信状態管理テーブル120)。
【0036】次に、受信準備を完了した転送先タスクか
らの通知に基づき、受信準備状態管理手段において、そ
の通知を発生した転送先タスクに対応する論理パスに対
して受信準備が完了した旨を示す状態を設定する受信準
備状態設定手段を有する。この手段は、例えば、前述の
受信準備状態管理手段と同様、受信側及び送信側のそれ
ぞれのデータ処理装置に設けられる。そして、受信側の
データ処理装置内の受信準備状態設定手段(テーブル設
定部118)は、受信準備を完了した転送先タスクから
の通知に基づき、受信側のデータ処理装置内の受信準備
状態管理手段において、その通知を発生した転送先タス
クに対応する論理パスに対して受信準備が完了した旨を
示す状態を設定すると共に、送信側のデータ処理装置内
の受信準備状態設定手段に通知を発生した転送先タスク
に対応する論理パスに対する受信準備が完了した旨を示
す通知を行う。また、送信側のデータ処理装置内の受信
準備状態設定手段(テーブル設定部110)は、受信側
のデータ処理装置内の受信準備状態設定手段からの通知
に基づき、送信側のデータ処理装置内の受信準備状態管
理手段において、受信準備を完了した転送先タスクに対
応する論理パスに対して受信準備が完了した旨を示す状
態を設定する。
【0037】また、受信準備を完了した転送先タスクか
らの通知に基づき、転送先アドレス管理手段において、
その通知を発生した転送先タスクに対応する論理パスに
対して転送先アドレスを設定する転送先アドレス設定手
段を有する。この手段は、例えば、受信側のデータ処理
装置に設けられる(テーブル設定部118)。
【0038】続いて、受信準備状態管理手段を参照する
ことにより、何れかの転送元タスクから発生された転送
要求のうち、受信準備が完了した旨を示す状態が設定さ
れている論理パスに対応する転送元タスクからの転送要
求のみを選択する転送要求選択手段を有する。この手段
は、例えば、送信側のデータ処理装置内に設けられ、送
信側のデータ処理装置内の受信準備状態管理手段を参照
することにより、何れかの転送元タスクから発生された
転送要求のうち、受信準備が完了した旨を示す状態が設
定されている論理パスに対応する転送元タスクからの転
送要求のみを選択する。
【0039】次に、転送先アドレス管理手段から、転送
要求選択手段により選択された転送要求に対応する論理
パスに対して設定されている転送先アドレスを取得し、
転送要求選択手段により選択された転送要求から、その
転送要求を発生した転送元タスクが所有する送信バッフ
ァ領域のアドレスである転送元アドレスと、転送データ
数とを取得する転送要求実行準備手段を有する。この手
段は、例えば、次のような、受信側のデータ処理装置内
に設けられる受信側転送要求実行準備手段と、送信側の
データ処理装置内に設けられる送信側転送要求実行準備
手段とから構成される。即ち、受信側転送要求実行準備
手段は、受信側のデータ処理装置内の受信準備状態管理
手段から転送要求選択手段より通知された論理パスに対
して設定されている転送先アドレスを取得すると共に、
送信側のデータ処理装置内の転送要求選択手段から適宜
通知される転送データ数を取得する。また、送信側転送
要求実行準備手段は、転送要求選択手段により選択され
た転送要求から転送元アドレスを取得する。
【0040】更に、転送要求実行準備手段で取得された
転送先アドレス、転送元アドレス、及び転送データ数に
基づき、転送元タスクが所有する送信バッファ領域から
転送先タスクが所有する受信バッファ領域に転送データ
を転送するデータ転送実行手段を有する。この手段は、
例えば、送信側転送要求実行準備手段で取得された転送
先アドレスと転送データ数、及び受信側転送要求実行準
備手段で取得された転送元アドレスに基づき、転送元タ
スクが所有する送信バッファ領域から転送先タスクが所
有する受信バッファ領域に、例えばダイレクトメモリア
クセス方式により、転送データを転送する。
【0041】上述の本発明の構成において、送信側のデ
ータ処理装置内に、論理パス毎に、その論理パスに対応
する転送元タスクから発生された転送要求であって転送
要求選択手段によってまだ選択されていないものを保持
する転送データキュー手段を、例えば送信側のデータ処
理装置内に更に有するように構成できる。
【0042】この場合、前述した転送要求選択手段は、
送信側のデータ処理装置内の受信準備状態管理手段を参
照することにより、所定の優先順位に従って、転送デー
タキュー手段に転送要求が存在する論理パスのうち、受
信準備が完了した旨を示す状態が設定されている論理パ
スに対応する転送要求のみを選択する。
【0043】また、論理パス設定手段は、論理パスの設
定時に、転送データキュー手段において、設定される論
理パスに対応する内容を破棄するように構成できる。
【0044】
【作用】本発明では、データ転送を実行するタスク間で
予め論理的なパスが設定され、例えば送信側及び受信側
のデータ処理装置内に、各論理パスに係る転送先タスク
の受信準備状態が設定される受信準備状態管理手段が設
けられ、例えば受信側のデータ処理装置内に、転送先タ
スクの送信バッファ領域に関する転送先アドレスが設定
される転送先アドレス管理手段が設けられることが特徴
である。そして、これらの管理手段を参照してフロー制
御が行われながら、データ転送を実行するタスク間で両
方のタスクのバッファ領域を直接使用してデータ転送が
実行されることが大きな特徴である。
【0045】この場合、転送先タスクが受信準備を完了
した時点で、転送先タスクから受信準備状態設定手段及
び転送先アドレス管理手段に通知がなされ、この結果、
受信準備状態管理手段及び転送先アドレス管理手段にお
いて、その通知を発生した転送先タスクに対応する論理
パスに対応する受信準備状態及び転送先アドレスの設定
がなされる。
【0046】このため、転送元タスクから転送要求が発
生している場合、転送要求選択手段は、受信準備状態管
理手段を参照するだけで、転送元タスクと転送先タスク
との間でタスク間通信を行うことなく、受信準備が完了
した論理パスに対応する転送要求のみを選択することが
できる。これにより、転送元タスクと転送先タスクとの
間のフロー制御が実現される。
【0047】更に、転送要求選択手段により転送要求が
選択された場合、転送要求実行準備手段は、転送先アド
レス管理手段を参照するだけで、選択された転送要求に
対応する論理パスに対して設定されている転送先アドレ
スを取得でき、また、選択された転送要求から、転送元
アドレスと転送データ数を取得できる。
【0048】従って、転送元タスクと転送先タスクとの
間でタスク間通信を行うことなく、データ転送実行手段
が、転送元タスクの送信バッファ領域と転送先タスクの
受信バッファ領域との間で、直接データを転送すること
ができる。
【0049】この結果、転送先タスクは、データ転送が
完了するとすぐに、転送データに対してデータ処理を行
うことができる。なお、転送先タスクにおいて、実行ア
ドレスの再配置(リロケーション)が発生した場合に
は、転送先タスクが転送先アドレス管理手段に通知をし
直すことによって、転送先アドレス管理手段における転
送先アドレスを容易に変更することができる。
【0050】また、論理パス設定手段が、論理パスの設
定時に、転送データキュー手段において、設定される論
理パスに対応する内容を破棄することにより、転送先タ
スク又は転送元タスクの何れかにおいて、或いはそれら
を制御するシステムタスクにおいて何らかの異常が発生
したような場合に適切に対処することができる。この場
合、該当する論理パスの内容のみが破棄されるため、他
の論理パスが影響を受けることはない。
【0051】
【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。本発明の実施例は、データ転送を
実行するタスク間で予め論理的なパスが設定され、転送
元及び転送先の装置内に、各パスのフロー制御に関する
制御データと転送先アドレスが随時書き込まれる状態管
理テーブルが設けられることを特徴とする。そして、こ
の状態管理テーブルの内容を参照してフロー制御が行わ
れながら、データ転送を実行するタスク間で両方のタス
クのバッファ領域を直接使用してDMA転送が実行され
ることが大きな特徴である。
【0052】図1は、本発明の実施例の全体構成図であ
る。この実施例は、ボード側装置から本体側装置へのD
MA転送を実現するためのシステムとして構成されてい
る。なお、本実施例の説明の後に述べるように、本体側
装置からボード側装置へのDMA転送を実現するための
システムも、本実施例の構成に基づけば容易に実現する
ことができる。
【0053】図1において、本体側装置101は、例え
ばコンピュータシステムの本体である。ボード側装置1
02は、コンピュータシステムの拡張スロットなどに装
着されるネットワークインタフェースボード、モデムボ
ード、画像処理ボードなどのデータ処理ボードである。
本体側装置101とボード側装置102は、本体側装置
101内のデータバス103、アドレスバス104、特
には図示しない制御バス、及び後述する割込み要求線1
05、106などによって接続される。
【0054】本体側装置101において、破線部125
は、本体側中央処理装置(本体側CPU)の機能部分で
あり、本発明に特に関連する機能部分として、テーブル
設定部118とDMA起動部119を含む。これらの機
能は、本体側CPUが所定の本体側ドライバプログラム
を実行する機能として実現される。破線部125は、ア
ドレスバス104に対してアドレスを出力することがで
き、データバス103に対してデータを入出力すること
ができる。
【0055】また、破線部126は、本体内RAM(主
記憶装置)の機能部分であり、本発明に特に関連するデ
ータ部分として、本体側で実行されデータ転送を実行す
る複数のタスクとそれぞれのバッファ領域のデータ部
分、及び受信状態管理テーブル120のデータ部分が示
されている。破線部126では、アドレスバス104か
らアドレスが指定され、そのアドレス指定に基づいてデ
ータバス103に対してデータが入出力される。
【0056】ボード側装置102において、破線部12
2は、ボード側CPUの機能部分であり、本発明に特に
関連する機能部分として、テーブル設定部110、通知
レスポンス発行部111、DMA起動部112、及びキ
ュー管理部113を含む。これらの機能は、ボード側C
PUが所定のボード側ドライバプログラムを実行する機
能として実現される。破線部122は、ローカルアドレ
スバス117に対してボード内アドレスを出力すること
ができ、ローカルデータバス116に対してデータを入
出力することができる。また、後述する破線部121を
直接制御することができる。
【0057】破線部124は、ボード内RAMの機能部
分であり、本発明に特に関連するデータ部分として、ボ
ード側で実行されデータ転送を実行する複数のタスクと
それぞれのバッファ領域のデータ部分、送信状態管理テ
ーブル114のデータ部分、及び転送データキュー11
5のデータ部分が示されている。破線部124では、ロ
ーカルアドレスバス117からアドレスが指定されるこ
とにより、ローカルデータバス116に対してデータが
入出力される。
【0058】破線部123は、DMA転送制御用ハード
ウエアの機能部分であり、DMAコントローラ109と
して実現される。破線部121は、ボード側装置102
と本体側装置101との間で各種情報を授受するための
レジスタの機能部分であり、本体側装置101又はボー
ド側装置102の状態を示すステータスレジスタ107
と、各種データを保持するデータレジスタ108として
実現される。破線部121では、本体側装置101から
アドレスバス104を介してアドレスが指定されること
により、データバス103を介して本体側装置101と
の間でデータが授受される。また、破線部121では、
破線部122で示されるボード側CPUの機能部分又は
破線部123で示されるDMAコントローラ109から
直接制御されることにより、ローカルデータバス116
を介してそれらとの間でデータが授受される。
【0059】上述の構成を有する本発明の実施例の動作
について、図2のシーケンス図に沿って、以下に説明す
る。始めに、本体側装置101では、ボード側装置10
2から転送データを受け取るためのタスク(以下、「転
送先タスク」という)として、例えば図1に示されるよ
うに、#1〜#Nに示されるそれぞれ独立した複数のタスク
が実行されている。また、ボード側装置102でも、本
体側装置101に転送データを送出するためのタスク
(以下、「転送元タスク」という)として、例えば図1
に示されるように、#1〜#Mに示されるそれぞれ独立した
複数のタスクが実行されている。
【0060】そして、今、本体側装置101の#1、#i、
及び#Nの各タスクが、それぞれ、ボード側装置102の
#j、#M、及び#1の各タスクとデータ転送を行うとする。
この場合、例えば本体側装置101のオペレーティング
システムによって、本体側装置101の#1のタスクとボ
ード側装置102の#jのタスクには論理パス番号ID=
1が割り当てられる。同様に、本体側装置101の#iの
タスクとボード側装置102の#MのタスクにはID=2
が割り当てられ、本体側装置101の#Nのタスクとボー
ド側装置102の#1のタスクにはID=2が割り当てら
れる。各タスクは、自タスクに割り当てられた論理パス
番号を認識できているものとする。
【0061】上述の準備動作の後、まず、シーケンスS
1で、本体側装置101内で実行されている転送先タス
クは、それが転送データを受け取る準備が完了したタイ
ミングで、READコマンドを発行する。この場合に、
転送先タスクは、READコマンドに、その転送先タス
クに対して予め割り当てられている論理パス番号(I
D)と、転送データが受信されるその転送先タスク内の
バッファ領域のアドレス(以下、「転送先アドレス」と
いう)を指定する。
【0062】次に、上述のREADコマンドの発行を契
機として本体側ドライバのテーブル設定部118のタス
クに制御が移される。テーブル設定部118は、シーケ
ンスS2で、上述のREADコマンドに基づき、受信状
態管理テーブル120に、READコマンドに指定され
ている論理パス番号に対応させて、そのREADコマン
ドを発行した転送先タスクがデータの受信準備を完了し
た旨を示すデータと、転送先アドレスを設定する。転送
先タスクがデータの受信準備を完了した旨を示すデータ
は、受信状態管理テーブル120上では、テーブル設定
部118がボード側装置102に次に説明する準備完了
コマンドを発行済みであることを示すデータとして設定
される。
【0063】図3(b) に受信状態管理テーブル120の
構成例を示す。この例では、本体側装置101において
実行されている転送先タスクのうち、論理パス番号ID
=2である#iのタスクと、ID=3である#Nのタスクに
おいて受信準備が完了し、#iのタスクのバッファ領域に
関する転送先アドレスは12345h(“h”はそれが付加さ
れている数値が16進数であることを示す)で、#Nのタ
スクのバッファ領域に関する転送先アドレスは6789Ahで
あることが示されている。また、ID=1である#1のタ
スクにおいてはまだ受信準備が完了していないことが示
されている。
【0064】その後、テーブル設定部118は、シーケ
ンスS3で、アドレスバス104及びデータバス103
を介して、準備完了コマンドをボード側装置102内の
データレジスタ108に書き込んだ後、ボード側装置1
02に割込み要求線105を介して割込み要求信号を出
力する。データレジスタ108に書き込まれる準備完了
コマンドのデータフォーマットを図4(a) に示す。即
ち、nバイトの大きさを有するデータレジスタ108の
うち、その最初のバイトに準備完了コマンドを示すコマ
ンドコードが書き込まれ、次のバイトに準備が完了した
転送先タスクの論理パス番号が書き込まれる。
【0065】上述の割込み要求の結果、ボード側装置1
02において割込みが発生する。ボード側装置102の
システムは、この割込みを受け付けた場合、シーケンス
S4で、制御線127及びローカルデータバス116を
介してステータスレジスタ107にセットされている準
備完了フラグを確認することにより、転送先タスクにお
いて受信準備が完了したことを認識する。これにより、
今までボード側装置102内で実行されていたタスクか
らボード側ドライバのテーブル設定部110のタスクに
制御が移される。
【0066】テーブル設定部110は、シーケンスS5
で、制御線127及びローカルデータバス116を介し
てデータレジスタ108から準備完了コマンドを読み出
し、続いて、送信状態管理テーブル114に、準備完了
コマンドに指定されている論理パス番号に対応させて、
その論理パス番号に対応する転送先タスクがデータの受
信準備を完了した旨を示すデータを設定する。転送先タ
スクがデータの受信準備を完了した旨を示すデータは、
送信状態管理テーブル114上では、テーブル設定部1
10が本体側装置101内のテーブル設定部118から
準備完了コマンドを受信済みであることを示すデータと
して設定される。
【0067】図3(a) に送信状態管理テーブル114の
構成例を示す。この例では、本体側装置101において
実行されている転送先タスクのうち、論理パス番号ID
=2である#iのタスクと、ID=3である#Nのタスクに
おいて受信準備が完了し、ID=1である#1のタスクに
おいてはまだ受信準備が完了していないことが示されて
いる。なお、転送データキューについては後述する。
【0068】その後、テーブル設定部110は、シーケ
ンスS6で、制御線127及びローカルデータバス11
6を介して、ステータスレジスタ107に設定完了フラ
グを書き込んだ後、本体側装置101に割込み要求線1
06を介して割込み要求信号を出力する。
【0069】この結果、本体側装置において割込みが発
生する。本体側装置のオペレーティングシステムは、こ
の割込みを受け付けた場合、シーケンスS7で、アドレ
スバス104及びデータバス103を介してステータス
レジスタ107にセットされている設定完了フラグを検
出することによりボード側装置102において準備完了
コマンドに対応する送信状態管理テーブル114への設
定が完了したことを認識する。
【0070】以上のシーケンスS1〜S7の一連の動作
の結果、上述の設定が行われた論理パス番号について
は、後述する通知レスポンスの発行が可能な状態にな
り、受信準備が完了する。
【0071】そして、ボード側装置102においてはテ
ーブル設定部110のタスクからアプリケーションなど
の他のタスクに制御が移され、本体側装置101におい
てテーブル設定部118のタスクからアプリケーション
などの他のタスクに制御が移される。そして、転送先タ
スクにおいて転送データの受信準備が完了する毎に、上
述のシーケンスS1〜S7の一連の動作が繰り返され
る。
【0072】ここで、上述のシーケンスS1〜S7の一
連の動作と共に、図3(a) の送信状態管理テーブル11
4及び図3(b) の受信状態管理テーブル120の例を比
較すると、転送先タスクで発行されるREADコマンド
及びそれに基づいて本体側装置101からボード側装置
102に通知される準備完了コマンドに基づいて、本体
側装置101とボード側装置102とでは、転送先タス
クの受信状態が完全に同期して管理されることがわか
る。従って、本体側ドライバは受信状態管理テーブル1
20を、また、ボード側ドライバは送信状態管理テーブ
ル114をそれぞれ制御することにより、転送先タスク
と転送元タスクとの間のフロー制御を実現することが可
能となる。
【0073】次に、上述のシーケンスS1〜S7の一連
の動作からは独立して、ボード側装置102内で実行さ
れている転送元タスクは、任意のタイミングであるシー
ケンスS8で、転送要求であるWRITEコマンドを発
行する。この場合に、転送元タスクは、WRITEコマ
ンドに、その転送先タスクに対して予め割り当てられて
いる論理パス番号(ID)と、転送されるデータが格納
されているその転送元タスク内のバッファ領域のアドレ
ス(以下、「転送元アドレス」という)、及び転送デー
タ数を指定する。
【0074】上述したWRITEコマンドの発行を契機
としてボード側ドライバのキュー管理部113のタスク
に制御が移される。キュー管理部113は、シーケンス
S9で、上述のWRITEコマンドの論理パス番号(I
D)を確認した後、その論理パス番号に対応する転送デ
ータキュー(WRITEコマンドの待合わせ行列)11
5に、上述のWRITEコマンドを追加する。また、キ
ュー管理部113は、送信状態管理テーブル114に、
上述の確認した論理パス番号に対応させて、転送データ
キュー115にデータが存在する旨のデータ(「データ
有り」)を設定する。そして、再び、キュー管理部11
3のタスクからアプリケーションなどの他のタスクに制
御が移される。
【0075】以上のシーケンスS8とS9の動作は、転
送元タスクにおいて転送要求が発生する毎に実行され
る。一方、所定のスケジューリングのもとでボード側ド
ライバの通知レスポンス発行部111のタスクが実行さ
れる。通知レスポンス発行部111は、送信状態管理テ
ーブル114において、「コマンド受信状態=済み」で
あり(転送先タスクがデータの受信準備を完了してお
り)、「転送データキュー=データ有り」となっている
論理パス番号が少なくとも1つ以上存在するか否か、即
ち、データ転送が可能な論理パス番号が存在するか否か
を常に監視している。
【0076】データ転送が可能な論理パス番号が存在す
ると判定した場合、シーケンスS10で、通知レスポン
ス発行部111は、適当な優先順位制御に基づいて何れ
か1つの論理パス番号を選択し、その論理パス番号に対
応する転送データキュー115から最も古いWRITE
コマンドを取り出す。図3(a) の例では、論理パス番号
ID=2の転送データキュー115においてデータ転送
が可能であると判定され、そこからWRITEコマンド
が取り出される。そして、通知レスポンス発行部111
は、選択した論理パス番号とその取り出したWRITE
コマンドに設定されている転送データ数に基づいて、制
御線127及びローカルアドレスバス117を介して、
通知レスポンスをデータレジスタ108に書き込む。デ
ータレジスタ108に書き込まれる通知レスポンスのデ
ータフォーマットを図4(b) に示す。即ち、nバイトの
大きさを有するデータレジスタ108のうち、最初の2
バイトに転送データ数が書き込まれ、次のバイトに通知
レスポンスを示すコマンドコードが書き込まれ、更にそ
の次のバイトに転送要求を発生した転送元タスクの論理
パス番号が書き込まれる。
【0077】次に、通知レスポンス発行部111は、シ
ーケンスS11で、制御線127及びコンピュータデー
タバス103を介してステータスレジスタ107に転送
開始要求フラグを書き込んだ後、本体側装置101に割
込み要求線106を介して割込み要求信号を出力する。
【0078】上述の割込み要求の結果、本体側装置10
1において割込みが発生する。本体側装置101のオペ
レーティングシステムは、この割込みを受け付けた場
合、シーケンスS12で、アドレスバス104及びデー
タバス103を介してステータスレジスタ107にセッ
トされている転送開始要求フラグを確認することによっ
て、転送元タスクにおいて転送要求が発生したことを認
識する。これにより、今まで本体側装置101内で実行
されていたタスクから本体側ドライバのDMA起動部1
19のタスクに制御が移される。
【0079】DMA起動部119は、シーケンスS13
で、アドレスバス104及びデータバス103を介して
データレジスタ108から通知レスポンスを読み出し、
その通知レスポンスから転送データ数と論理パス番号を
取得する。その後、DMA起動部119は、シーケンス
S14で、アドレスバス104及びデータバス103を
介してステータスレジスタ107に転送準備完了フラグ
を書き込んだ後、ボード側装置102に割込み要求線1
05を介して割込み要求信号を出力する。
【0080】この結果、ボード側装置102において割
込みが発生する。ボード側装置102のシステムは、こ
の割込みを受け付けた場合、シーケンスS15で、制御
線127及びローカルデータバス116を介してステー
タスレジスタ107にセットされている転送準備完了フ
ラグを確認することにより、DMA転送を開始してよい
ことを認識する。これにより、通知レスポンス発行部1
11のタスクからDMA起動部112のタスクに制御が
移される。この際、通知レスポンス発行部111のタス
クからDMA起動部112のタスクに、通知レスポンス
発行部111が選択した転送データキュー115の論理
パス番号と、その転送データキュー115から取り出し
たWRITEコマンドに設定されている転送元アドレス
が通知される。
【0081】この間、本体側ドライバのDMA起動部1
19は、シーケンスS14の割込み通知に続くシーケン
スS16で、受信状態管理テーブル120において、前
述した通知レスポンスから取得した論理パス番号に対応
する転送先タスクがデータの受信準備を完了しているこ
と(準備完了コマンドが発行済みであること)を確認し
た後、その論理パス番号に対して設定されている転送先
タスクのバッファ領域である転送先アドレスを取得す
る。図3(b) の例では、論理パス番号ID=2に対応す
る転送先アドレス“12345h”が取得される。その後、D
MA起動部119は、その論理パス番号に対応する受信
状態管理テーブル120の内容を初期状態(「コマンド
発行状態=未」、「転送先アドレス=−」)に戻す。更
に、DMA起動部119は、アドレスバス104及びデ
ータバス103を介してボード側装置102内のDMA
コントローラ109に、ボード側装置102から送られ
てきた転送データ数と、受信状態管理テーブル120か
ら取得した転送先アドレスを書き込んだ後、起動指示を
出力する。この後は、本体側装置101自身は、本体側
装置101内のバス権をDMAコントローラ109に引
き渡し、停止状態になる。
【0082】一方、ボード側ドライバのDMA起動部1
12は、シーケンスS17で、送信状態管理テーブル1
14において、シーケンスS15で通知レスポンス発行
部111から通知された論理パス番号に対応するコマン
ド受信状態を初期状態(「コマンド受信状態=未」)に
戻す。また、DMA起動部112は、その論理パス番号
に対応する転送データキュー115にWRITEコマン
ドが残っているか否かを判定し、残っていないならば、
送信状態管理テーブル114において、上述の論理パス
番号に対応する転送データキューの状態を初期状態
(「転送データキュー=データ無し」)に戻す。その
後、DMA起動部112は、DMAコントローラ109
に、シーケンスS15で通知レスポンス発行部111か
ら通知された転送元タスクのバッファ領域である転送元
アドレスを書き込んだ後、起動指示を出力する。この後
は、ボード側装置102自身も、ボード側装置102内
のローカルバスのバス権をDMAコントローラ109に
引き渡し、DMAコントローラ109以外の部分は停止
状態になる。
【0083】DMAコントローラ109は、上述の本体
側装置101からの起動指示とボード側装置102から
の起動指示を受け取ることによってバス権を獲得する
と、転送元アドレスをボード側装置102内のローカル
アドレスバス117を介してボード側装置102内のメ
モリに指定すると共に制御線128を介してデータレジ
スタ108を制御することによって、転送元タスクのバ
ッファ領域に格納されている転送データをボード側装置
102内のローカルデータバス116からデータレジス
タ108を介して本体側装置101のデータバス103
に読み出す。続いて、DMAコントローラ109は、転
送先アドレスを本体側装置101のアドレスバス104
を介して本体側装置101内のメモリに指定することに
よって、本体側装置101のデータバス103に読み出
されている転送データを本体側装置101内の転送先タ
スクのバッファ領域に直接書き込む。その後、DMAコ
ントローラ109は、転送元アドレス及び転送先アドレ
スをそれぞれ1アドレス更新し、上述と同様の動作を繰
り返す。DMAコントローラ109は、転送回数が転送
データ数を越えた時点で、DMA転送を完了する。
【0084】この結果、シーケンスS18で、DMAコ
ントローラ109からボード側装置102自身に対し
て、DMA転送が完了した旨の割込みが発生し、ボード
側ドライバのDMA起動部112が動作を再開する。
【0085】また、シーケンスS19では、DMAコン
トローラ109から本体側装置101に対し、DMA転
送が完了した旨の割込みが発生し、本体側ドライバのD
MA起動部119が動作を再開する。
【0086】本体側ドライバのDMA起動部119は、
シーケンスS20で、アドレスバス104及びデータバ
ス103を介してステータスレジスタ107にDMA転
送完了フラグを書き込んだ後、ボード側装置102に割
込み要求線105を介して割込み要求信号を出力する。
そして、DMA起動部119は、シーケンスS13で通
知レスポンスから取得した論理パス番号に対応する転送
先タスクに対して、DMA転送に成功した旨を通知した
後、DMA転送処理を完了し、その転送先タスクへ制御
を移す。この結果、転送先タスクは、DMA転送が完了
するとすぐに、転送データに対してデータ処理を行うこ
とができる。
【0087】一方、本体側装置101からの割込み要求
の結果、ボード側装置102において割込みが発生す
る。ボード側装置102のシステムがこの割込みを受け
付けた場合、ボード側ドライバのDMA起動部112
が、シーケンスS21で、制御線127及びローカルデ
ータバス116を介してステータスレジスタ107にセ
ットされているDMA転送完了フラグを確認することに
より、DMA転送が完了したことを認識する。この結
果、DMA起動部112は、シーケンスS15で通知レ
スポンス発行部111から通知された論理パス番号に対
応する転送元タスクにDMA転送が完了した旨を通知
し、その転送元タスクへ制御を戻す。
【0088】上述のシーケンスS10〜S21で示され
る一連のDMA転送動作は、所定のスケジューリングの
もとでボード側ドライバの通知レスポンス発行部111
が、送信状態管理テーブル114においてデータ転送可
能な論理パス番号を検出する毎に、実行される。
【0089】以上説明したように、本発明の実施例で
は、転送データの受信準備が完了したタイミングで転送
先タスクから発行されるREADコマンドに基づいて、
受信側装置である本体側装置101において、本体側ド
ライバのテーブル設定部118が受信状態管理テーブル
120に準備完了の情報を設定する。更に、READコ
マンドに同期して発行される準備完了コマンドに基づい
て、送信側装置であるボード側装置102において、ボ
ード側ドライバのテーブル設定部110が送信状態管理
テーブル114にも準備完了の情報を設定する。そし
て、ボード側ドライバの通知レスポンス発行部111
は、送信状態管理テーブル114において、準備完了の
情報が設定され転送データキュー115にデータが存在
する論理パス番号に対してのみ、DMA転送を起動す
る。
【0090】このようにして、送信状態管理テーブル1
14をアクセスするだけで、DMA転送の起動時に転送
元タスクと転送先タスクとの間でタスク間通信を行うこ
となく、両者の間のフロー制御を実現することができ
る。
【0091】また、本体側装置101では、READコ
マンドの発行時に、本体側ドライバのテーブル設定部1
18が受信状態管理テーブル120に転送先タスクのバ
ッファ領域のアドレスを転送先アドレスとして設定する
ことができ、更に、ボード側装置102では、WRIT
Eコマンドの発行時に、転送データキュー115に転送
元タスクのバッファ領域のアドレスを転送元アドレスと
して保持することができる。このため、WRITEコマ
ンドの内容を解析し受信状態管理テーブル120をアク
セスするだけで、DMA転送の起動時に転送元タスクと
転送先タスクとの間でタスク間通信を行うことなく、転
送元タスクのバッファ領域と転送先タスクのバッファ領
域との間で直接データを転送することができる。
【0092】なお、転送先タスクにおいて、実行アドレ
スの再配置(リロケーション)が発生した場合には、転
送先タスクがREADコマンドを発行し直すことによっ
て、受信状態管理テーブル120における転送先アドレ
スを容易に変更することができる。
【0093】また、転送先タスク又は転送元タスクの何
れかにおいて、或いはそれらを制御するシステムタスク
において何らかの異常が発生したような場合には、転送
先タスクがREADコマンドを発行し直すと共に、転送
元タスクがそのタスクに対応する論理パス番号の転送デ
ータキュー115の内容を破棄して初期化するコマンド
を実行することにより、異常発生後に転送データキュー
115に残っていた無効データを破棄することができ
る。この場合、該当する論理パス番号のパスのみが初期
化されるため、他の論理パス番号のパスが影響を受ける
ことはない。
【0094】以上説明した実施例においては、送信状態
管理テーブル114には転送データキュー115におけ
るデータの有無のみが保持されるように構成されたが、
転送データキュー115におけるキューの大きさも保持
されるように構成し、そのデータに基づいて通知レスポ
ンスが発行されるときの優先順位が決定されるようにし
てもよい。
【0095】最後に、以上説明した実施例は、ボード側
装置102から本体側装置101へのDMA転送を実現
するためのシステムとして構成されているが、本体側装
置101からボード側装置102へのDMA転送を実現
するためのシステムも、上述の実施例の構成に基づけば
容易に実現することができる。
【0096】即ち、そのようなシステムにおいては、ま
ず、本体側ドライバに、ボード側ドライバのテーブル設
定部110、通知レスポンス発行部111、DMA起動
部112、及びキュー管理部113と同等の機能部分が
付加され、本体側装置101内のメモリに、ボード側装
置102の送信状態管理テーブル114及び転送データ
キュー115と同等の機能部分が付加される。一方、ボ
ード側ドライバに、本体側ドライバのテーブル設定部1
18及びDMA起動部119と同等の機能部分が付加さ
れ、ボード側装置102内のメモリに、本体側装置10
1の受信状態管理テーブル120と同等の機能部分が付
加される。そして、DMAコントローラ109は、DM
A転送時には、アドレスバス104に転送元アドレスを
指定し、ローカルアドレスバス117に転送先アドレス
を指定する。
【0097】
【発明の効果】本発明によれば、転送元タスクから転送
要求が発生している場合、受信準備状態管理手段を参照
するだけで、転送元タスクと転送先タスクとの間でタス
ク間通信を行うことなく、受信準備が完了した論理パス
に対応する転送要求のみをその実行のために選択するこ
とができ、転送元タスクと転送先タスクとの間のフロー
制御を実現することが可能となる。
【0098】また、転送先アドレス管理手段を参照する
だけで、実行される転送要求に対応する論理パスに対し
て設定されている転送先アドレスを取得することができ
るため、転送元タスクと転送先タスクとの間でタスク間
通信を行うことなく、転送元タスクの送信バッファ領域
と転送先タスクの受信バッファ領域との間で、直接デー
タを転送することができる。
【0099】この結果、転送先タスクは、データ転送が
完了するとすぐに、転送データに対してデータ処理を行
うことが可能となる。更に、転送先タスクにおいて、実
行アドレスの再配置(リロケーション)が発生した場合
でも、転送先アドレス管理手段における転送先アドレス
を容易に変更することが可能となる。
【0100】また、転送先タスク又は転送元タスクの何
れかにおいて、或いはそれらを制御するシステムタスク
において何らかの異常が発生したような場合には、転送
データキュー手段において該当する論理パスに対応する
内容のみを破棄することにより、他の論理パスに影響を
与えずに論理パスの復帰を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明の実施例の構成図である。
【図2】本発明の実施例におけるDMA転送のシーケン
スを示した図である。
【図3】状態管理テーブルの構成図である。
【図4】制御データの構成図である。
【図5】従来例におけるDMA転送のシーケンスを示し
た図である。
【符号の説明】
101 本体側装置 102 ボード側装置 103 データバス 104 アドレスバス 105、106 割込み要求線 107 ステータスレジスタ 108 データレジスタ 109 DMAコントローラ 110 テーブル設定部 111 通知レスポンス発行部 112 DMA起動部 113 キュー管理部 114 送信状態管理テーブル 115 転送データキュー 116 ローカルデータバス 117 ローカルアドレスバス 118 テーブル設定部 119 DMA起動部 120 受信状態管理テーブル 121〜126 破線部 127、128 制御線

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 送信側のデータ処理装置上で実行される
    タスクである少なくとも1つの転送元タスクから受信側
    のデータ処理装置上で実行されるタスクである少なくと
    も1つの転送先タスクに転送データを転送するためのデ
    ータ転送方式において、 前記転送元タスクと前記転送先タスクの組合せ毎に論理
    パスを設定する論理パス設定手段と、 該論理パス設定手段で設定された論理パス毎に、該論理
    パスに対応する前記転送元タスクの受信準備状態を管理
    する受信準備状態管理手段と、 前記論理パス設定手段で設定された論理パス毎に、該論
    理パスに対応する前記転送先タスクが所有する受信バッ
    ファ領域のアドレスである転送先アドレスを管理する転
    送先アドレス管理手段と、 受信準備を完了した転送先タスクからの通知に基づき、
    前記受信準備状態管理手段において、該通知を発生した
    転送先タスクに対応する論理パスに対して受信準備が完
    了した旨を示す状態を設定する受信準備状態設定手段
    と、 前記受信準備を完了した転送先タスクからの通知に基づ
    き、前記転送先アドレス管理手段において、該通知を発
    生した転送先タスクに対応する論理パスに対して前記転
    送先アドレスを設定する転送先アドレス設定手段と、 前記受信準備状態管理手段を参照することにより、何れ
    かの前記転送元タスクから発生された転送要求のうち、
    前記受信準備が完了した旨を示す状態が設定されている
    前記論理パスに対応する前記転送元タスクからの前記転
    送要求のみを選択する転送要求選択手段と、 前記転送先アドレス管理手段から、前記転送要求選択手
    段により選択された転送要求に対応する前記論理パスに
    対して設定されている前記転送先アドレスを取得し、前
    記転送要求選択手段により選択された転送要求から、該
    転送要求を発生した前記転送元タスクが所有する送信バ
    ッファ領域のアドレスである転送元アドレスと、転送デ
    ータ数とを取得する転送要求実行準備手段と、 該転送要求実行準備手段で取得された前記転送先アドレ
    ス、前記転送元アドレス、及び前記転送データ数に基づ
    き、前記転送元タスクが所有する送信バッファ領域から
    前記転送先タスクが所有する受信バッファ領域に前記転
    送データを転送するデータ転送実行手段と、 を有することを特徴とするデータ転送方式。
  2. 【請求項2】 前記受信準備状態管理手段及び前記受信
    準備状態設定手段は前記受信側のデータ処理装置及び前
    記送信側のデータ処理装置のそれぞれに設けられ、 前記受信側のデータ処理装置内の受信準備状態設定手段
    は、前記受信準備を完了した転送先タスクからの通知に
    基づき、前記受信側のデータ処理装置内の受信準備状態
    管理手段において、該通知を発生した転送先タスクに対
    応する論理パスに対して受信準備が完了した旨を示す状
    態を設定すると共に、前記送信側のデータ処理装置内の
    受信準備状態設定手段に前記通知を発生した転送先タス
    クに対応する論理パスに対する受信準備が完了した旨を
    示す通知を行い、 前記送信側のデータ処理装置内の受信準備状態設定手段
    は、前記受信側のデータ処理装置内の受信準備状態設定
    手段からの通知に基づき、前記送信側のデータ処理装置
    内の受信準備状態管理手段において、前記受信準備を完
    了した転送先タスクに対応する論理パスに対して受信準
    備が完了した旨を示す状態を設定し、 前記転送先アドレス管理手段及び前記転送先アドレス設
    定手段は、前記受信側のデータ処理装置に設けられ、 前記転送要求選択手段は、前記送信側のデータ処理装置
    内に設けられ、前記送信側のデータ処理装置内の受信準
    備状態管理手段を参照することにより、何れかの前記転
    送元タスクから発生された転送要求のうち、前記受信準
    備が完了した旨を示す状態が設定されている前記論理パ
    スに対応する前記転送元タスクからの前記転送要求のみ
    を選択する、 ことを特徴とする請求項1に記載のデータ転送方式。
  3. 【請求項3】 前記転送要求選択手段は、前記選択した
    転送要求から前記転送データ数を取得し、該転送データ
    数及び前記選択した転送要求に対応する前記論理パスを
    前記受信側のデータ処理装置に通知し、 前記転送要求実行準備手段は、前記受信側のデータ処理
    装置に設けられ、前記受信側のデータ処理装置内の受信
    準備状態管理手段から前記転送要求選択手段より通知さ
    れた論理パスに対して設定されている前記転送先アドレ
    スを取得すると共に、前記転送要求選択手段から通知さ
    れた前記転送データ数を取得する受信側転送要求実行準
    備手段と、前記送信側のデータ処理装置に設けられ、前
    記転送要求選択手段により選択された転送要求から前記
    転送元アドレスを取得する送信側転送要求実行準備手段
    とから構成され、 前記データ転送実行手段は、前記送信側転送要求実行準
    備手段で取得された前記転送先アドレスと前記転送デー
    タ数、及び前記受信側転送要求実行準備手段で取得され
    た前記転送元アドレスに基づき、前記転送元タスクが所
    有する送信バッファ領域から前記転送先タスクが所有す
    る受信バッファ領域に前記転送データを転送する、 ことを特徴とする請求項2に記載のデータ転送方式。
  4. 【請求項4】 前記送信側のデータ処理装置内に、前記
    論理パス毎に、該論理パスに対応する転送元タスクから
    発生された転送要求であって前記転送要求選択手段によ
    ってまだ選択されていないものを保持する転送データキ
    ュー手段を更に有し、 前記転送要求選択手段は、前記送信側のデータ処理装置
    内の受信準備状態管理手段を参照することにより、所定
    の優先順位に従って、前記転送データキュー手段に前記
    転送要求が存在する論理パスのうち、前記受信準備が完
    了した旨を示す状態が設定されている前記論理パスに対
    応する転送要求のみを選択する、 ことを特徴とする請求項2又は3の何れか1項に記載の
    データ転送方式。
  5. 【請求項5】 前記論理パス設定手段は、前記論理パス
    の設定時に、前記転送データキュー手段において、前記
    設定される論理パスに対応する内容を破棄する、 ことを特徴とする請求項4に記載のデータ転送方式。
  6. 【請求項6】 前記データ転送実行手段は、ダイレクト
    メモリアクセス方式によるデータ転送を実行する、 ことを特徴とする請求項1乃至5の何れか1項に記載の
    データ転送方式。
JP06218393A 1993-03-22 1993-03-22 データ転送方式 Expired - Lifetime JP3176472B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06218393A JP3176472B2 (ja) 1993-03-22 1993-03-22 データ転送方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06218393A JP3176472B2 (ja) 1993-03-22 1993-03-22 データ転送方式

Publications (2)

Publication Number Publication Date
JPH06274436A true JPH06274436A (ja) 1994-09-30
JP3176472B2 JP3176472B2 (ja) 2001-06-18

Family

ID=13192772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06218393A Expired - Lifetime JP3176472B2 (ja) 1993-03-22 1993-03-22 データ転送方式

Country Status (1)

Country Link
JP (1) JP3176472B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4759810B2 (ja) * 1999-05-10 2011-08-31 ソニー株式会社 画像処理装置及びロボット装置並びに画像処理方法
JP2013535735A (ja) * 2010-07-29 2013-09-12 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法
WO2020235174A1 (ja) * 2019-05-17 2020-11-26 オムロン株式会社 転送装置、情報処理装置、および、データ転送方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4759810B2 (ja) * 1999-05-10 2011-08-31 ソニー株式会社 画像処理装置及びロボット装置並びに画像処理方法
JP2013535735A (ja) * 2010-07-29 2013-09-12 サムスン エレクトロニクス カンパニー リミテッド マルチコアシステムのためのダイレクトメモリアクセス装置およびその動作方法
WO2020235174A1 (ja) * 2019-05-17 2020-11-26 オムロン株式会社 転送装置、情報処理装置、および、データ転送方法
JP2020190765A (ja) * 2019-05-17 2020-11-26 オムロン株式会社 転送装置、情報処理装置、および、データ転送方法
US11625348B2 (en) 2019-05-17 2023-04-11 Omron Corporation Transfer device, information processing device, and data transfer method

Also Published As

Publication number Publication date
JP3176472B2 (ja) 2001-06-18

Similar Documents

Publication Publication Date Title
KR950002713B1 (ko) 인터페이스 시스템 및 데이타 전송 제어방법
FI101432B (fi) Vikasietoinen tietokonejärjestelmä
US6128669A (en) System having a bridge with distributed burst engine to decouple input/output task from a processor
JPH06202883A (ja) プロセス間通信装置及び通信方法
JPH03501784A (ja) コンピュータのインタフェース・アーキテクチャ
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
EP0908826A2 (en) Packet protocol and distributed burst engine
WO2002031672A2 (en) Method and apparatus for interprocessor communication and peripheral sharing
JPH09128252A (ja) 優先度付きタスク実行制御方法及びデータ処理装置
GB1511281A (en) Trap semaphore in computer
JPH10293744A (ja) Pciバス・システム
JPH04312160A (ja) マルチプロセッサシステムおよびそのメッセージ送受信制御装置
JP3245500B2 (ja) マルチプログラミングにおける事象管理方式
JP3176472B2 (ja) データ転送方式
JPH02213976A (ja) 多重処理コンピユータ及びプロセツサ間通信方法
JPH1196108A (ja) 計算機システム及びバス制御装置
US6247093B1 (en) Data processing apparatus for executing synchronous instructions prior to executing asynchronous instructions
JPH10260850A (ja) 仮想計算機システム
US20240129255A1 (en) Server delay control device, server delay control method, and program
KR101119458B1 (ko) 비동기 통신 기술
KR960006472B1 (ko) TICOM IOP 환경에서 FDDI펌웨어(firmware) 구동방법
JP2003114871A (ja) Usb制御装置
JPH0887459A (ja) バックグラウンド通信方式
JPH11184712A (ja) 情報処理装置
JP2003167836A (ja) デバイスドライバ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010313

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090406

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090406

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100406

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130406

Year of fee payment: 12