JP2963696B2 - データ転送制御システム - Google Patents

データ転送制御システム

Info

Publication number
JP2963696B2
JP2963696B2 JP14559789A JP14559789A JP2963696B2 JP 2963696 B2 JP2963696 B2 JP 2963696B2 JP 14559789 A JP14559789 A JP 14559789A JP 14559789 A JP14559789 A JP 14559789A JP 2963696 B2 JP2963696 B2 JP 2963696B2
Authority
JP
Japan
Prior art keywords
block
data
dma
transfer
status
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
JP14559789A
Other languages
English (en)
Other versions
JPH0310354A (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.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems 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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP14559789A priority Critical patent/JP2963696B2/ja
Publication of JPH0310354A publication Critical patent/JPH0310354A/ja
Application granted granted Critical
Publication of JP2963696B2 publication Critical patent/JP2963696B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はブロック分割されたデータバッファを転送元
又は転送先としてDMA(ダイレクト・メモリ・アクセ
ス)転送を行うためのデータ転送制御システムに関し、
例えばシリアル通信による受信データをフレームもしく
はブロック毎データバッファへ格納するためのデータ転
送制御システムに適用して有効な技術に関するものであ
る。
〔従来技術〕
HDLC(ハイレベル・データ・リンク・コントロール)
手順などに準拠して情報をビットシリアルにやりとりす
る場合には、SCI(シリアル・コミュニケーション・イ
ンタフェース)コントローラがフレームと呼ばれる単位
でデータの送受信を行う。送受信されたデータは、上位
プロセッサの処理に委ねられるが、SCIコントローラに
よるデータの送受信と上位プロセッサによるデータ処理
とは通常非同期で行われるため、送受信データは一旦デ
ータバッファに格納される。このような場合に、SCIコ
ントローラが受信したデータをフレームのようなブロッ
ク単位でデータバッファに転送したり、転送すべきデー
タをブロック単位でデータバッファからSCIコントロー
ラに転送したりするとき、上位プロセッサの負担を軽減
して複数のデータブロックを効率的に転送するには、DM
A(ダイレクト・メモリ・アクセス)コントローラがサ
ポートするデータチェイン機能を利用することができ
る。
このデータチェイン機能を利用する場合、上位プロセ
ッサは、多数用意したバッファ領域を、ポインタとして
機能する記述子によって次々と連結させるためのデータ
転送制御テーブルを予めメモリ上に形成しておく。この
データ転送制御テーブルを構成する個々の記述子は、デ
ータ転送元又はデータ転送先とされるバッファ領域の先
頭アドレス、及び連鎖される次の記述子の先頭アドレス
などを含む。例えば受信データをデータバッファにブロ
ック転送する場合、上位プロセッサは、その動作を指示
する所定のチェインブロック転送モードをDMAコントロ
ーラのモードレジスタに設定した後、最初に受信データ
を転送すべきバッファ領域を示す記述子の先頭アドレス
(カレントディスクリプタアドレス)、受信データを転
送すべき末尾のバッファ領域の次のバッファ領域を示す
記述子の先頭アドレス(エラーディスクリプタアドレ
ス)、そして個々のバッファ領域に共通の大きさをバイ
ト単位で示すバッファ長などを、DMAコントローラ内部
の所定レジスタに初期設定する。このようにして初期設
定が行われた後、SCIコントローラから転送要求がある
と、DMAコントローラは、カレントディスクリプタアド
レスレジスタに初期設定されている値に従って所定の記
述子を読み込み、読み込んだ記述子が示すバッファ領域
にSCIコントローラの受信データを転送制御する。この
ようにしてブロックデータが所定のバッファ領域に転送
されると、DMAコントローラは、カレントディスクリプ
タアドレスレジスタの値を、先に読み込んだ記述子が保
有する次に連鎖する記述子のスタートアドレスに更新し
てバッファ領域の切り換え処理を行い、次のブロックデ
ータの転送を継続する。
バッファ領域の切り換え処理を行ったとき、カレント
ディスクリプタアドレスとエラーディスクリプタアドレ
スが一致したときには、既に受信データの処理を終えた
バッファ領域が存在しなくなっているため、DMAコント
ローラはデータ転送を終了する。
尚、データチェイン方式のDMA転送について記載され
た文献の例としては昭和63年7月株式会社日立製作所発
行の「HD6418OS、NPUハードウェアマニュアル」第378頁
から第400頁がある。
〔発明が解決しようとする課題〕
しかしながら、複数のブロックデータをDMA転送する
従来方式では、ブロックデータ毎に転送制御テーブルに
含まれる記述子の先頭アドレスや、当該記述子によって
指定されるバッファ領域のメモリアドレスなどを読み込
んでからDMA転送を行わなければならないため、バッフ
ァ領域の切り換えに時間がかかるという問題点があっ
た。例えば、通信制御装置とデータバッファとの間でデ
ータチェイン転送などを行うとき、バッファ領域を切り
換えるときのオーバーヘッドが大きいと、これによって
通信速度が制限されてしまう。
また、上位プロセッサはデータ転送されたバッファ領
域のデータに対して所定の処理を行うが、処理されたバ
ッファ領域に再びDMA転送を可能にするには、上位プロ
セッサはデータバッファへの処理状態に応じて、上記エ
ラーディスクリプタアドレスなどをDMAコントローラに
再設定しなければならず、そのための制御も複雑になっ
てしまう。
本発明の目的は、複数のブロックデータに対するDMA
転送効率を向上させすることができるデータ転送制御シ
ステムを提供することにある。また、本発明の別の目的
は、複数のブロックデータをブロック分割されたデータ
バッファにDMA転送するとき、プロセッサの負担を軽減
することができると共に、制御手順を簡素化することが
できるデータ転送制御システムを提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴に
ついては本明細書の記述及び添付図面から明らかになる
であろう。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概
要を簡単に説明すれば下記の通りである。
すなわち、ブロック分割されたデータバッファの各ブ
ロック毎に対応するブロックステータスの保持領域を、
DMAコントローラ及びプロセッサの双方がリード・ライ
ト可能に用意し、DMAコントローラがリードしたブロッ
クステータスが第1の状態にあるとき、当該ブロックス
テータスに対応するブロックへのDMA転送をDMAコントロ
ーラに許容すると共に、データ転送されたブロックに対
応するブロックステータスをDMAコントローラに第2の
状態に変更させ、当該ブロックのデータがプロセッサで
処理されて当該ブロックステータスが再び第1の状態に
変更されるまで斯るブロックステータスに応ずるブロッ
クへのデータ転送を禁止するようにするものである。
このとき、プロセッサは、リードしたブロックステー
タスが第2の状態にあるとき、当該ブロックステータス
に対応するブロックのデータを処理し、処理を行ったブ
ロックに対応するブロックステータスを第1の状態に設
定変更する。
DAMコントローラ及びプロセッサの双方によるブロッ
クステータスの管理ならびにデータバッファに対するア
クセス制御を容易化するには、上記ブロックステータス
の保持領域を、対応ブロックの定義領域に含めておくと
よい。
また、連続的に連鎖するブロックの順番にブロック定
義領域をデータ転送制御テーブルに形成するようにし、
このときプロセッサは、データバッファの先頭アドレ
ス、各ブロック共通のブロック長並びにブロック数、そ
して上記転送制御テーブルの先頭アドレスを、DMAコン
トローラに初期設定し、初期設定された条件に従ってDM
Aコントローラが、データバッファのブロックを連鎖さ
せるように順番に指定してDMA転送を行うようにする。
このとき、データバッファの利用効率を高めるには、
データバッファのブロックをループ状に連鎖させるよう
に順番に指定して利用すればよい。
そして、DMAコントローラによる上記転送制御テーブ
ルのアクセス速度を速めるには当該転送制御テーブルを
内蔵するDMAコントローラを用いることができる。さら
に、DMAコントローラが所定のブロックにデータを転送
したとき、斯るDMAコントローラが、当該ブロックの先
頭アドレスとデータ転送語数とをブロック定義領域に設
定するようにすれば、プロセッサは、各ブロックの先頭
アドレスを予め定義領域に定義しておく手間が省かれ
る。
〔作 用〕
上記した手段によれば、データバッファにデータ転送
を行うDMAコントローラと、データバッファに転送され
たデータを処理するプロセッサとが共有する上記ブロッ
クステータスは、1つのブロックに対するデータ転送処
理とデータ処理とが交互に行われるように互いの処理を
調停するように作用し、このことが、データ転送された
ブロックデータの不所望な破壊を防止しながら、DMAコ
ントローラによる転送継続のための制御を単純化する。
言い換えるなら、DMAコントローラによるデータバッフ
ァへのデータ転送と、データバッファに転送されたデー
タに対するプロセッサの処理との繰り返しにおいて、プ
ロセッサによるDMAコントローラに対するデータ転送制
御条件の再設定を必要としなくなる。
これに加えて、データバッファのブロック及びブロッ
ク定義領域を順番に連鎖させるための情報がDMAコント
ローラに初期設定され、初期設定された情報に基づいて
DMAコントローラ自らがデータバッファのブロックを連
鎖させるように順番に指定してDMA転送を行うことは、
ブロックの切り換えに際して連鎖されるべき次のブロッ
クの所在を示す情報を得るために、従来のように次の記
述子の所在を示す情報や、その情報によって指定される
記述子に含まれるメモリアドレスを複数回に分けて読み
込む処理を必要としないように作用し、これによってデ
ータバッファのブロックを切り換える処理の高速化を達
成する。
そして、転送方向が逆の場合にも上記同様に作用す
る。
〔実 施 例〕
第1図には本発明の一実施例に係るデータ転送制御シ
ステムのブロック図構成例が示される。
同図において1は通信コントローラであり、SCIコン
トローラ2及びDMAコントローラ3などを含み、送受信
データや各種パラメータなどを格納するRAM(ランダム
・アクセス・メモリ)で成るようなメインメモリ4やホ
ストプロセッサ5などの上位レイヤとシステムバス6を
介してインタフェースされると共に、通信回線TL,RLに
て送受信される情報に対して所定の通信プロトコルに従
った処理を行う。特に制限されないが、この通信コント
ローラ1は、公知の半導体集積回路製造技術によってシ
リコンのような1個の半導体基板に形成されている。
上記SCIコントローラ2は、得に制限されないが、送
信回線TL及び受信回路RLを介して他局に接続される回線
制御部や、この回線制御部によるデータ送受信に必要な
プロトコル処理のための制御部、そして送受信すべきデ
ータを先入れ先出し形式で一時的に蓄えるバッファなど
を含む。斯るSCIコントローラ2は、回線制御部から入
力されるフレームと、ホストプロセッサ5から与えられ
るコマンドを内部で処理して、ビットシリアルに情報を
送受信制御処理する。例えば、入力フレームに対しては
応答フレームを、そしてコマンドに対しては応答ステー
タスを生成する。入力フレームに対する処理は、そのフ
レームの種類を解読してフィールドを切り分け、そのフ
レームの種類に応ずる処理を内蔵制御部に与えたり、情
報フィールドのデータを内蔵バッファに順次蓄えてい
く。この処理の結果に対しては応答フレームが生成され
る。上位レイヤから与えられるコマンドは送信起動コマ
ンドなどであり、内蔵制御部はそのコマンドを実行した
処理結果に応じて応答ステータスを生成し、これを上位
レイヤに返す。
上記DMAコントローラ3は、SCIコントローラ2からの
DMA転送要求に従って、SCIコントローラ2が受信したデ
ータを直接メインメモリ4の所定領域に転送制御した
り、メインメモリ4の所定領域に格納されている送信す
べきデータを直接SCIコントローラ2に転送制御したり
する。
メインメモリ4に転送された受信データはホストプロ
セッサ5のデータ処理に供され、また送信すべきデータ
はホストプロセッサ5によるデータ処理を介して生成さ
れているが、SCIコントローラ2によるデータの送受信
はフレームを単位として行われるため、メインメモリ4
上の送受信データもフレーム毎に区別されたブロックデ
ータとして格納されている。
送受信データをフレーム単位で区別してメインメモリ
4に格納するため、メインメモリ4にはブロック分割さ
れたデータバッファ10が形成されている。このデータバ
ッファ10は、特に制限されないが、n分割された第1ブ
ロックBLK1乃至第nブロックBLKnに分割されている。各
ブロックのブロック長は全て同一とされ、データバッフ
ァ10は連続するアドレス空間に配置されている。そして
各ブロックBLK1〜BLKnを定義するための領域として、例
えばメインメモリ4に転送制御テーブル11が形成されて
いる。この転送制御テーブル11は、上記第1ブロックBL
K1〜第nブロックBLKnに夫々対応する第1記述子DCRP1
〜第n記述子DCRPnを含み、各記述子には、ブロックス
テータス、ブロック先頭アドレス、及び転送語数を保持
する領域が1バイトづつ設けられている。それら記述子
DCRP1〜DCRPnは連続するアドレス空間に配置されてい
る。
上記ブロック先頭アドレスは、それを含む記述子に対
応するブロックのスタートアドレスを意味する。例えば
第1記述子DCRP1に書き込まれるブロック開始アドレス
は第1ブロックのスタートアドレスとされる。転送語数
は、それを含む記述子に対応するブロックに格納されて
いるブロックデータのバイト数を表す。例えば第1記述
子DCRP1に書き込まれる転送語数は第1ブロックBLK1に
格納されるブロックデータのバイト数とされる。
ブロックステータスは、特に制限されないが、その状
態0により、対応ブロックへのデータの書き込みを許容
するステータスとみなされ、またその状態1により、対
応ブロックからのデータの読み出しを許容するステータ
スとみなされる。このように定義されたブロックステー
タスは、データバッファ10がDMA転送における転送元に
なるか転送先になるかにより、言い換えるなら、データ
バッファ10に受信データが書き込まれるか、或いは送信
すべきデータが書き込まれるかにより、DMAコントロー
ラ3及びホストプロセッサ5にとって夫々固有の意味を
持つ。
即ち、SCIコントローラ2が受信したデータをDMAコン
トローラ3によりデータバッファ10にブロック転送する
場合には、DMAコントローラ3にとってブロックステー
タスは、それを含む記述に対応するブロックに対するDM
A転送の可否を意味するステータスとみなされ、特に制
限されないが、ブロックステータスが状態0のときには
対応ブロックに対するDMA転送を許容し、状態1のとき
には対応ブロックに対するDMA転送を禁止するという意
味を持つ。このときホストプロセッサ5にとってブロッ
クステータスは、それを含む記述子に対応するブロック
への処理の可否を意味するステータスとみなされ、ブロ
ックステータスが状態1のときには対応ブロックのデー
タを読み出して処理することを許容し、状態0のときに
は対応ブロックのデータを読み出して処理することを禁
止するという意味を持つ。
一方、送信すべきデータをホストプロセッサ5がデー
タバッファ10に書き込み、書き込まれたデータをDMAコ
ントローラ3がSCIコントローラ2にブロック転送する
場合には、ホストプロセッサ5にとってブロックステー
タスは、それを含む記述子に対応するブロックに対する
データの書き込みの可否を意味するステータスとみなさ
れ、ブロックステータスが状態0のときには対応ブロッ
クに対するデータの書き込みを許容し、状態1のときに
は対応ブロックに対するデータの書き込みを禁止すると
いう意味を持つ。このときDMAコントローラ3にとって
ブロックステータスは、それを含む記述子に対応するブ
ロックを転送元とするDMA転送の可否を意味するステー
タスとみなされ、ブロックステータスが状態1のときに
は対応ブロックのデータをDMA転送することを意味し、
状態0のときには対応するブロックのデータに対するDM
A転送を禁止するという意味を持つ。
ブロックステータスに対して斯様な定義が与えられた
とき、DMAコントローラ3及びホストプロセッサ5は、
特に制限されないが、ブロックステータスを参照しなが
ら次に挙げる処理を行うようになっている。
SCIコントローラ2が受信したデータをDMAコントロー
ラ3によりデータバッファ10にブロツク転送する場合に
は、第1図に示されるように、DMAコントローラ3は、
所定の記述子に含まれるブロックステータスを読み込み
()、これが状態0であるなら、当該記述子に対応す
るブロツクに受信データを転送し()、その後当該記
述子のブロックステータスを状態1に書き換えると共
に、その記述子にブロック先頭アドレスと転送語数を書
き込む()。ブロックステータスが状態1である場合
には、それが状態0に反転されるまで、言い換えるなら
当該ブロックステータスに対応するブロックのデータが
ホストプロセッサ5により処理されるまで、DMAコント
ローラ3は、斯るブロックへのデータ転送を休止する。
一方、ホストプロセッサ5は、DMAコントローラ3によ
るデータ転送が行われていないとき、所定の記述子に含
まれるブロックステータスを読み込む()、これが状
態1であるなら、当該記述子に含まれているブロック先
頭アドレスや転送語数をリードし()これを用いて対
応するブロックの受信データを読み出して処理し
()、その後当該記述子のブロックステータスを状態
0に書き換える()。ブロックステータスが状態0で
ある場合には、それが状態1に反転されるまで、言い換
えるなら、当該ブロックステータスに対応するブロック
に受信データがDMA転送されるまで、ホストプロセッサ
5は斯るブロックへの処理を行わない。
送信すべきデータをホストプロセッサ5がデータバッ
ファ10に書き込み、書き込まれたデータをDMAコントロ
ーラ3がSCIコントローラ2にブロック転送する場合に
は、第2図に示されるように、ホストプロセッサ5は、
所定の記述子に含まれるブロックステータスを読み込み
()、これが状態0であるなら、当該記述子に対応す
るブロックに送信すべきデータを書き込み()、その
後当該記述子のブロックステータスを状態1に書き換え
ると共に、その記述子にブロック先頭アドレスと転送語
数を書き込む()。ブロックステータスが状態1であ
る場合には、それが状態0に反転されるまで、言い換え
るなら、当該ブロックステータスに対応するブロックの
データがDMAコントローラ3によりSCIコントローラ2に
転送されるまでホストプロセッサ5は、斯るブロックへ
のデータの書き込みを休止する。一方、DMAコントロー
ラ3は、ホストプロセッサ5によるデータの書き込みが
行われていないとき、所定の記述子に含まれるブロック
ステータスを読み込み()、これが状態1であるな
ら、当該記述子に含まれているブロック先頭アドレスや
転送語数をリードし()、これを用いて対応するブロ
ックのデータをSCIコントローラ2にDMA転送し()、
その後当該記述子のブロックステータスを状態0に書き
換える()。ブロックステータスが状態0である場合
には、それが状態1に反転されるまで、言い換えるな
ら、当該ブロックステータスに対応するブロックに送信
すべきデータが書き込まれるまで、DMAコントローラ3
は、斯るブロックへのDMA転送処理を行わない。
第3図には、上記DMAコントローラ3の一例が示され
る。このDMAコントローラ3は、上記転送制御テーブル1
1やデータバッファ10を利用したブロックデータのDMA転
送制御に利用されるレジスタセットとして、例えば以下
に説明する各種レジスタを有する。第3図において20は
モードレジスタであり、SCIコントローラ2が受信した
データをデータバッファ10にDMA転送する動作モードや
ホストプロセッサ5がデータバッファ10に書き込んだ送
信すべきデータをSCIコントローラ2にDMA転送する動作
モードなどがホストプロセッサ5によって設定される。
21はコントロールレジスタ群であり、上記データバッフ
ァ10や転送制御テーブル11の領域を指定したり、それら
に含まれるブロックや記述子を順番に連鎖させるために
必要な情報などがホストプロセッサ5により初期設定さ
れるようになっており、そのためのレジスタとして、転
送制御テーブル先頭アドレスレジスタ22、データバッフ
ァ先頭アドレスレジスタ23、ブロック長レジスタ24、及
びブロック数レジスタ25、を含む。このコントロールレ
ジスタ群21に含まれるレジスタには、データ入出力バッ
ファ35を介して外部からデータが与えられるが、そのと
きのレジスタの選択は、アドレス入出力バッファ36を通
して外部から与えられるアドレス信号によって行われる
ようになっている。尚、データ入出力バアッファ35及び
アドレス入出力バッファ36はホストプロセッサ5並びに
SCIコントローラ2の双方とインタフェースされるよう
になっている。
27はワークレジスタ群であり、例えばDMAコントロー
ラ3がリードしたブロックステータスや転送制御テーブ
ル11に書き込むべきブロックステータスを保持するブロ
ックステータスレジスタ28、ブロック先頭アドレスレジ
スタ29、ブロック毎のデータ転送語数をバイト単位で保
有するデータ転送語数カウントレジスタ30、及びデータ
バッファ10の先頭ブロックから何番目のブロックを現在
利用しているかを示すブロック数カウントレジスタ31を
含む。そして、転送制御テーブル11をアクセスするため
のアドレスは転送制御テーブルアドレスレジスタ32が保
有し、又、データバッファ10をアクセスするためのアド
レスはデータバッファアドレスレジスタ33が保有するよ
うになっている。
コントロールレジスタ群21に含まれるレジスタ22〜25
がホストプロセッサ5により初期設定されると、レジス
タ22に設定された転送制御テーブルの先頭アドレスがレ
ジスタ32に内部転送されると共に、レジスタ23に初期設
定されたデータバッファの先頭アドレスがレジスタ33に
内部転送される。転送制御テーブルアドレスレジスタ32
が保有するアドレスによって転送制御テーブル11をアク
セスすると、当該レジスタ32のアドレスは演算部40によ
り次のメモリアドレスにインクリメントされる。同様に
データバッファアドレスレジスタ33が保有するアドレス
によってデータバッファ10をアクセスすると、当該レジ
スタ33のアドレスは演算部40により次のメモリアドレス
にインクリメントされる。そしてデータバッファ10がバ
イト単位でアクセスされる毎にデータ転送語数がカウン
トレジスタ30の値が演算部40によりインクリメント又は
ディクリメントされる。インクリメントするかディクリ
メントするかは、データ転送モードに従って決定され
る。即ち、受信データのDMA転送モードの場合にはイン
クリメントされ、最終的に、1つのブロックに転送され
たブロックデータの転送語数を保有することになる。こ
のとき、当該レジスタ30が最終的に保有することになる
データ転送語数は、1つのブロックに対するDMA転送が
終了されたとき、そのブロックに対応する記述子に書き
込まれるようになっている。送信データのDMA転送モー
ドの場合には、所定の記述子から読み込んだ転送語数を
初期値として順次ディクリメントされる。このとき、当
該レジスタ30の値が0にクリアされると、DMA制御部41
はブロックの切り換え処理を行う。受信データのDMA転
送を行っている場合におけるブロック切り換え処理は、
SCIコントローラ2が受信データのフレーム末尾を検出
することに連動してDMA制御部41に与えられる。
上記ブロック切り換え処理は、当該処理が指示された
ときのブロック数カウントレジスタ31の値と、ブロック
長レジスタ24の設定値とを剰乗し、これによって得られ
たメモリアドレスによって上記データバッファアドレス
レジスタ33の値を書き換えることによって行われるよう
になっている。このブロック切り換え処理が行われたと
きに、転送制御テーブルレジスタ32の値も次のメモリア
ドレスに更新され、これによって、切り換えられたブロ
ックに対応する記述子もリード可能になる。
受信データのDMA転送モードが設定されているときに
データバッファアドレスレジスタ33にブロックの先頭ア
ドレスが書き込まれると、その先頭アドレスはブロック
先頭アドレスレジスタ29に保持されるようになってい
る。斯るレジスタ29に保持されているブロック先頭アド
レスは、当該ブロックに対するDMA転送が終了されたと
き、そのブロックに対応する記述子の所定領域に書き込
まれる。このようにして記述子に書き込まれたブロック
先頭アドレスは、ホストプロセッサ5がその記述子に対
応するブロックのデータを読み出すときに利用される。
一方、送信データのDMA転送モードが設定されていると
きには、送信すべきデータのブロックに対応する記述子
が保有するブロック先頭アドレスを上記ブロック先頭ア
ドレスレジスタ29に読み込み、この値をデータバッファ
アドレスレジスタ33に内部転送して当該ブロックのメモ
リアドレスを順次生成していってもよいが、受信データ
のDMA転送動作と同じくDMAコントローラ3の内部制御に
基づくブロック切り換え処理に従ってそのデータバッフ
ァアドレスレジスタ33に保持されているブロックの先頭
アドレスを利用するようにしてもよい。
DMA転送制御部41は、ブロック数レジスタ25の値とブ
ロック数カウントレジスタ31の値が一致するかを監視
し、これが一致したとき、言い換えるなら、データバッ
ファ10の最終のブロックを利用したDMA転送を終了した
ときには、転送制御テーブルアドレスレジスタ32をレジ
スタ22が保有する転送制御テーブル先頭アドレスによっ
て書き換えると共に、データバッファアドレスレジスタ
33をレジスタ23が保有するデータバッファ先頭アドレス
によって書き換える。これにより、データバッファ10の
ブロックを、ループ状に連鎖させて順番に利用可能にな
る。また、DMA転送制御部41は、転送制御テーブル11の
記述子からブロックステータスレジスタ28に読み込んだ
ブロックステータスの状態を判定すると共に、その判定
結果と、モードレジスタ20に設定されているDMA転送モ
ードとの関係に従って、当該記述子に対応するブロック
に対するDMA転送が許容されているか否かを判別する。
そしてそのブロックに対するブロックデータの転送を終
えてブロックの切り換え処理を行うとき、ブロックステ
ータスレジスタ28におけるブロックステータスの状態を
反転し、この反転したブロックステータスによって斯る
記述子のブロックステータスを書き換え制御する。
DMAコントローラ3に対するDMA転送要求は、特に制限
されないが、SCIコントローラ2から出力されるDMAリク
エスト信号DREQがDMA制御部41にアサートされることに
よって与えられる。DMA転送要求があると、DMA制御部41
はホスト制御部42を介してホストプロセッサ5にバスリ
クエスト信号BREQをアサートし、これに応答してホスト
プロセッサ5がバスアクノレッジ信号BACKをアサートす
ることによってDMAコントローラ3がバス権を獲得す
る。これにより、DMA制御部41はDMAアクノレッジ信号を
アセートしてSCIコントローラ2のDMA転送要求に承認を
与える。DMA制御部41は、特に制限されないが、この承
認を与えた後上記ブロックデータのDMA転送に必要な制
御を開始する。尚、ホスト制御部42は、必要に応じて割
り込み信号IRQやDMA転送終了信号DENDをホストプロセッ
サ5に与えるようになっている。
次に上記実施例のシステムにおける受信データのDMA
転送動作の一例を第4図を中心に説明する。
ホストプロセッサ5が、上記レジスタ22〜25に、転送
制御テーブル先頭アドレス、データバッファ先頭アドレ
ス、ブロック長、そしてブロック数を初期設定し(ST
1)、次いで、モードレジスタ20に受信データのDMA転送
モードを設定することにより(ST2)、DMAコントローラ
3は、SCIコントローラ2が受信したデータをデータバ
ッファ10にDMA転送可能にされる。現在までのホストプ
ロセッサ5とDMAコントローラ3の処理により、例えば
データバッファ10の第iブロックBLKiと第jブロックBL
Kjに未処理受信データが残されているとする。この状態
でDMAコントローラ3にSCIコントローラ2からDMA転送
要求があると(ST3)、DMAコントローラ3はホストプロ
セッサ5にバス権を要求し(ST4)、それが承認されて
バス権を獲得することにより(ST5)、SCIコントローラ
2にDMA転送要求の承認を与える(ST6)。そしてDMAコ
ントローラ3は、そのとき転送制御テーブルアドレスレ
ジスタ32が保有している第k番目の記述子DCR1Pkの先頭
アドレスを利用してブロックステータスBSTkをブロック
ステータスレジスタ28に読み込む(ST7)。読み込まれ
たブロックステータスBSTkはDMA制御部41によりその状
態が判定され、状態0である場合には、そのときデータ
バッファアドレスレジスタ33が保持さている第k番目の
ブロックBLKkの先頭アドレスを利用して、当該ブロック
BLKkに、SCIコントローラ2から受信データが順番にDMA
転送される(ST8)。受信データのフレーム末尾がSCIコ
ントローラ2によって検出されると、当該ブロックBLKk
へのDMA転送が所定のタイミングで停止される。これに
よりDMA制御部41はブロックステータスレジスタ28が保
持するブロックステータスBSTkを状態1に反転させて、
記述子DCRPkのブロックステータス保持領域を書き換え
ると共に、その時ブロック先頭アドレスレジスタ29に保
持されている当該ブロックBLKkの先頭アドレス、並びに
そのときデータ転送語数カウントレジスタ30が保有して
いる転送語数を、その記述子DCRPkの第2バイト目及び
第3バイト目に書き込む(ST9)。これにより、ブロッ
クBLKkに格納された受信データに対するホストプロセッ
サ5の処理が許容される。そして、DMAコントローラ3
は、信号DENDをアサートすると共に、信号BREQをネゲー
トして(ST10)、受信データの転送終了とバス権の放棄
とをホストプロセッサ5に通知する。
これによってバス権を獲得した(ST11)ホストプロセ
ッサ5は、内部動作制御手順に従って、受信データの処
理を継続するため、第i番目の記述子DCRPiからブロッ
クステータスBSTiを読み込む(ST12)。このブロックス
テータスBSTiが状態1であることを検出すると、引き続
いて当該記述子DCRPiからブロック先頭アドレス及び転
送語数をリードし(ST13)、これに基づいて対応する第
i番目のブロックBLKiに格納されている受信データを読
んで所定のデータ処理を行い(ST14)、その後斯る記述
子DCRPiのブロックステータスBSTiを状態0に書き換え
て(ST15)、ブロックBLKiへの新たな受信データの格納
を許容する。上記実施例によれば以下の作用効果を得る
ことができる。
(1)ブロック分割されたデータバッファ10の各ブロッ
クBLK1〜BKLn枚に対応するブロックステータスの保持領
域を、DMAコントローラ3及びホストプロセッサ5の双
方がリード・ライト可能に設けられ、DMAコントローラ
3がリードしたブロックステータス状態0であるとき、
当該ブロックステータスに対応するブロックへのDMA転
送をDMAコントローラ3に許容すると共に、データ転送
されたブロックに対応するブロックステータスをDMAコ
ントローラ3に状態1に変更させ、当該ブロックのデー
タがホストプロセッサ5で処理されて当該ブロックステ
ータスが再び状態0に変更されるまで斯るブロックステ
ータスに応ずるブロックへのデータ転送を禁止するよう
になっている。このとき、ホストプロセッサ5は、リー
ドしたブロックステータスが状態1であるとき、当該ブ
ロックステータスに対応するブロックのデータを処理
し、処理を行ったブロックに対応するブロックステータ
スを状態0に設定変更する。このように各ブロックBLK1
〜BLKnに1対1対応するブロックステータスBST1〜BSTn
は、1つのブロックに対するデータ転送処理とデータ処
理とが交互に行われるように互いの処理を調停するよう
に作用するから、これにより、データ転送されたブロッ
クデータの不所望な破壊を防止しながらDMAコントロー
ラ3による転送継続のための制御を単純化することがで
きる。言い換えるなら、DMAコントローラ3によるデー
タバッファ10へのデータ転送と、データバッファ10に転
送されたデータに対するホストプロセッサ5の処理との
繰り返しにおいて、ホストプロセッサ5によるDMAコン
トローラ3に対するデータ転送制御条件の再設定を必要
としないでも済むようになる。
(2)ブロックステータスを、その状態0により、対応
ブロックへのデータの書き込みを許容するステータスと
みなし、またその状態1により、対応ブロックからのデ
ータの読み出しを許容するステータスとみなすように、
斯るブロックステータスに対する意味付けをホストプロ
セッサ5及びDMAコントローラ3に定義しておくと、デ
ータバッファ10がDMA転送における転送元になるか転送
先になるかにより、言い換えるなら、データバッファ10
に受信データが書き込まれるか、或いは送信すべきデー
タが書き込まれるかにより、DMAコントローラ3及びホ
ストプロセッサ5は、そのブロックステータスの意味あ
いを判定する。したがって、送信すべきデータをホスト
プロセッサ5がデータバッファ10に書き込む処理と、書
き込まれたデータをDMAコントローラ3がSCIコントロー
ラ2にDMA転送する処理とに対しても、上記ブロックス
テータスを利用して、1つのブロックに対する処理が交
互に行われるように互いの処理を調停することができ
る。
(3)ブロックステータスの保持領域を、対応ブロック
の定義領域、即ち記述子に含めるようにすることによ
り、DMAコントローラ3及びホストプロセッサ5の双方
によるブロックステータスの管理ならびにデータバッフ
ァ10に対するアクセス制御を容易化することができる。
(4)連続的に連鎖するブロックBLK1〜BLKnの順番にブ
ロック定義領域即ち記述子DCRP1〜DCRPnをデータ転送制
御テーブル11に形成するようにし、このときホストプロ
セッサ5は、データバッファ10の先頭アドレス、各ブロ
ックに共通のブロックに共通のブロック長並びにブロッ
ク数、そして上記転送制御テーブル11の先頭アドレス
を、DMAコントローラ3に初期設定し、初期設定された
条件に従ってDMAコントローラ3が、データバッファ10
のブロックを連鎖させるように順番に指定してDMA転送
を行うようにすることにより、ブロックの切り換えに際
して連鎖されるべき次のブロックの所在を示す情報を得
るために、従来のように次の記述子の所在を示す情報
や、その情報によって指定される記述子に含まれるメモ
リアドレスを複数回に分けて転送制御テーブルから読み
込む処理を必要としなくなり、これによってデータバッ
ファ10のブロックを切り換える処理の高速化を達成する
ことができる。
(5)上記作用効果(4)において、DMAコントローラ
3がデータバッファ10をループ状に連鎖させるように順
番に指定して利用することにより、データバッファ10の
利用効率を高めることができる。
(6)上記夫々の作用効果により、複数のブロックデー
タに対するDMA転送効率を向上させることができると共
に、ホストプロセッサ5の負担を軽減することができ、
これによりシステムのスループットを向上させることが
できる。
(7)転送制御テーブル11をDMAコントローラ3に内蔵
することにより、DMAコントローラ3による転送制御テ
ーブル11のアクセス速度を速めることができる。
(8)DMAコントローラ3が所定のブロックにデータを
転送したとき、斯るDMAコントローラ3が、当該ブロッ
クの先頭アドレスとデータ転送語数とをそのブロックに
対応する記述子に書き込むようにすることにより、ホス
トプロセッサ5は、各ブロックの先頭アドレスなどを予
め各記述子に定義しておかなくてもよくなる。
以上本発明者によってなされた発明を実施例に基づい
て具体的に説明したが、本発明はそれに限定されるもの
ではなく、その要旨を逸脱しない範囲において種々変更
可能である。
例えば、上記実施例ではデータバッファとSCIコント
ローラとの間でブロックデータをDMA転送する場合につ
いて説明したが、本発明はそれに限定されず、メモリ間
でのDMA転送にも適用することができる。また、DMAコン
トローラ内部の各種レジスタの構成は上記実施例に限定
されず適宜変更することができる。また、転送制御テー
ブルをDMAコントローラに内蔵させる場合には、当該テ
ーブルを内外から夫々アクセス可能にしておけばよい。
DMAコントローラと、SCIコントローラのような入出力回
路とは、夫々別チップで構成することもできる。
以上の説明では本発明者によってなされた発明を主と
してその背景となった利用分野である通信コントローラ
を含むシステムに適用した場合について説明したが、本
発明はそれに限定されるものではなく、DMAコントロー
ラと共にフロッピーディスクコントローラやハードディ
スクコントローラなどを含むシステムなどその他のシス
テムにも広く利用することができる。本発明は、少なく
ともブロックデータをDMA転送する条件のものに適用す
ることができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによ
って得られる効果を簡単に説明すれば下記の通りであ
る。
すなわち、DMAコントローラとプロセッサとがリード
・ライト可能に共有するブロックステータスの状態に対
しては、データ転送方向やDMA転送モードに応じて夫々
固有の意味付けが与えられ、DMAコントローラ及びプロ
セッサは、その定義付けに照らしてブロックステータス
の状態を判定してブロックデータに対する所要の処理を
行い、その処理を終えた後には当該処理対象ブロックに
応ずるブロックステータスの状態を反転するようになっ
ているから、ブロック分割されたデータバッファを転送
元又は転送先とするDMA転送のためのDMAコントローラと
プロセッサの処理に際し、上記ブロックステータスを参
照することにより、1つのブロックに対する双方からの
処理が交互に行われるように互いの処理を簡単に調停す
ることができるという効果がある。
したがって、データバッファ上のブロックデータに対
する処理が行われる前にこれが不所望に書き換えられて
しまうことを防止して、DMAコントローラによる転送継
続のための制御を単純化することができる。言い換える
なら、DMAコントローラによるデータバッファへのデー
タ転送と、データバッファに転送されたデータに対する
プロセッサの処理との繰り返しなどにおいて、プロセッ
サによるDMAコントローラに対するデータ転送制御条件
の再設定を行わなくても済むようになる。
また、ブロックステータスの保持領域を、対応ブロッ
クの定義領域に含めるようにすることにより、DMAコン
トローラ及びホストプロセッサの双方によるブロックス
テータスの管理並びにデータバッファに対するアクセス
制御を容易化することができるという効果がある。
さらに、連続的に連鎖するブロックの順番にブロック
定義領域を転送制御テーブルに形成するようにし、この
ときプロセッサは、データバッファの先頭アドレス、各
ブロックに共通のブロツク長並びにブロック数、そして
上記転送制御テーブルの先頭アドレスを、DMAコントロ
ーラに初期設定し、初期設定された条件に従ってDMAコ
ントローラが、データバッファのブロックを連鎖させる
ように順番に指定してDMA転送を行うようにすることに
より、ブロックの切り換えに際して連鎖されるべき次の
ブロックの所在を示す情報を得るために、従来のように
次の記述子の所在を示す情報や、その情報によって指定
される記述子に含まれるメモリアドレスを複数回に分け
て転送制御テーブルから読み込む処理を必要としなくな
り、これによってデータバッファのブロック切り換え処
理の高速化を達成することができるという効果がある。
このとき、DMAコントローラがデータバッファをルー
プ状に連鎖させるように順番に指定して利用することに
より、データバッファの利用効率を高めることができる
という効果がある。
上記夫々の効果により、複数のブロックデータに対す
るDMA転送効率を向上させることができると共に、プロ
セッサの負担を軽減することができ、これによりシステ
ムのスループットを向上させることができるという効果
がある。
そして、転送制御テーブルをDMAコントローラに内蔵
することにより、DMAコントローラによる転送制御テー
ブルのアクセス速度を速めることができ、また、DMAコ
ントローラが所定のブロックにデータを転送したとき、
斯るDMAコントローラが当該ブロックの先頭アドレスと
データ転送語数とをそのブロックに対応する記述子に書
き込むようにすることにより、プロセッサは、各ブロッ
クの先頭アドレスなどを予め各記述子に定義しておかな
くてもよくなる。
【図面の簡単な説明】
第1図は本発明に係るデータ転送制御システムの一実施
例を受信データのDMA転送との関連において示したブロ
ック図、 第2図は本発明に係るデータ転送制御システムの一実施
例を送信データのDMA転送との関連において示したブロ
ック図、 第3図は第1図及び第2図のシステムに含まれるDMAコ
ントローラの一例を示すブロック図、 第4図はDMAコントローラによる受信データのDMA転送処
理と、ホストプロセッサによる受信データの処理との関
係を示した一例動作説明図である。 1……通信コントローラ、2……SCIコントローラ、3
……DMAコントローラ、4……メインメモリ、5……ホ
ストプロセッサ、6……システムバス、10……データバ
ッファ、BLK1〜BLKn……ブロック、11……転送制御テー
ブル、DCRP1〜DCRPn……記述子、20……モードレジス
タ、22……転送制御テーブル先頭アドレスレジスタ、23
……データバッファ先頭アドレスレジスタ、24……ブロ
ック長レジスタ、25……ブロック数レジスタ、28……ブ
ロックステータスレジスタ、29……ブロック先頭アドレ
スレジスタ、30……データ転送語数カウントレジスタ、
31……ブロック数カウントレジスタ、32……転送制御テ
ーブルアドレスレジスタ、33……データバッファアドレ
スレジスタ、41……DMA制御部。
フロントページの続き (72)発明者 降旗 信義 東京都小平市上水本町5丁目22番1号 日立マイクロコンピュータエンジニアリ ング株式会社内 (56)参考文献 特開 昭63−292261(JP,A) 特開 昭63−124161(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 13/28 310

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】プロセッサと、DMAコントローラと、前記
    プロセッサ及びDMAコントローラの双方によってアクセ
    ス可能なメモリと、を有し、 前記メモリは複数のブロックから成るデータバッファ
    と、前記ブロック毎の記述子領域が形成される転送制御
    テーブルとを有し、 前記夫々の記述子領域はブロックステータスの保持領域
    とブロック定義領域とを有し、 前記プロセッサは、DMAコントローラに、前記データバ
    ッファの先頭アドレス、前記転送制御テーブルの先頭ア
    ドレス及び前記ブロックの大きさと数を初期設定可能に
    され、 DMA転送要求に応答する前記DMAコントローラは、前記プ
    ロセッサによる初期設定内容に従って前記ブロックを順
    番に指定したDMA転送制御が可能であって、前記記述子
    領域からリードしたブロックステータスが第1の状態で
    あるとき当該ブロックステータスに対応されるブロック
    を対象とするDMA転送を行うと共に、当該DMA転送された
    ブロックのブロックステータスを第2の状態に変更し、
    上記ブロックのデータに対するプロセッサの処理を許容
    し、且つ、その処理が済んで当該ブロックステータスが
    プロセッサにより第1の状態に戻されるまでブロックへ
    の新たなデータ転送を抑制するものであることを特徴と
    するデータ転送制御システム。
  2. 【請求項2】前記DMAコントローラはブロックを順番に
    指定したDMA転送制御においてブロックをループ状に連
    鎖させるように順番に指定可能であることを特徴とする
    請求項1記載のデータ転送制御システム。
  3. 【請求項3】前記DMAコントローラは、ブロックにデー
    タを転送したとき、そのブロックのブロック定義領域に
    ブロックの先頭アドレスとデータ転送語数とを設定する
    処理を行うようにされて成るものであることを特徴とす
    る請求請求項2記載のデータ転送制御システム。
JP14559789A 1989-06-08 1989-06-08 データ転送制御システム Expired - Fee Related JP2963696B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14559789A JP2963696B2 (ja) 1989-06-08 1989-06-08 データ転送制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14559789A JP2963696B2 (ja) 1989-06-08 1989-06-08 データ転送制御システム

Publications (2)

Publication Number Publication Date
JPH0310354A JPH0310354A (ja) 1991-01-17
JP2963696B2 true JP2963696B2 (ja) 1999-10-18

Family

ID=15388745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14559789A Expired - Fee Related JP2963696B2 (ja) 1989-06-08 1989-06-08 データ転送制御システム

Country Status (1)

Country Link
JP (1) JP2963696B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07105071A (ja) * 1993-09-30 1995-04-21 Sony Corp 情報転送装置及び情報記録装置
DE10030158A1 (de) * 2000-06-20 2002-01-03 Bayerische Motoren Werke Ag Steuergerät mit einem Hauptmikroprozessor und mit einer Prozessorschnittstelle zu einer Bus-Sende-Empfangseinheit

Also Published As

Publication number Publication date
JPH0310354A (ja) 1991-01-17

Similar Documents

Publication Publication Date Title
US5613162A (en) Method and apparatus for performing efficient direct memory access data transfers
US4141067A (en) Multiprocessor system with cache memory
US6081851A (en) Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
US4937734A (en) High speed bus with virtual memory data transfer and rerun cycle capability
US5590369A (en) Bus supporting a plurality of data transfer sizes and protocols
JPH09160861A (ja) ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
JP2539058B2 (ja) デ―タプロセッサ
US5481681A (en) Data transfer operations between two asynchronous buses
US5668957A (en) Method and apparatus for providing virtual DMA capability on an adapter connected to a computer system bus with no DMA support
JPH04363746A (ja) Dma機能を有するマイクロコンピュータシステム
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
EP1431878A2 (en) Shared write buffer in a peripheral interface and method of operating
EP0969384B1 (en) Method and apparatus for processing information, and providing medium
US5097483A (en) Tri-statable bus with apparatus to drive bus line to first level and then second level for predetermined time before turning off
US5745707A (en) Bus control device for computer system having computer and DMA device
JP2963696B2 (ja) データ転送制御システム
JPH0628261A (ja) データ転送方法及び装置
US6651152B1 (en) Microcomputer including download circuit controlling data download to plurality of memories
US5546560A (en) Device and method for reducing bus activity in a computer system having multiple bus-masters
JP3110024B2 (ja) メモリ制御システム
US5752265A (en) Memory accessing in a multi-processor system using snooping
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JPH02310649A (ja) 受信フレーム転送方式および通信制御装置
JPS585824A (ja) チヤネル間デ−タ転送方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees