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

データ転送制御システム

Info

Publication number
JPH0310354A
JPH0310354A JP14559789A JP14559789A JPH0310354A JP H0310354 A JPH0310354 A JP H0310354A JP 14559789 A JP14559789 A JP 14559789A JP 14559789 A JP14559789 A JP 14559789A JP H0310354 A JPH0310354 A JP H0310354A
Authority
JP
Japan
Prior art keywords
block
data
transfer
dma
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.)
Granted
Application number
JP14559789A
Other languages
English (en)
Other versions
JP2963696B2 (ja
Inventor
Koji Suzuki
公司 鈴木
Nobuyoshi Furuhata
信義 降旗
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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 Microcomputer Engineering 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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

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

Claims (1)

  1. 【特許請求の範囲】 1、データバッファを複数のブロックに分割して転送元
    又は転送先とし、他の記憶手段又はデータ入出力手段と
    の間でデータをDMA転送するデータ転送制御システム
    であって、分割された夫々のブロック毎に対応するブロ
    ックステータスの保持領域を、DMAコントローラ及び
    プロセッサの双方がリード・ライト可能に用意し、DM
    Aコントローラがリードしたブロックステータスが第1
    の状態にあるとき、DMAコントローラは、当該ブロッ
    クステータスに対応するブロックへのDMA転送を行う
    と共に、データ転送されたブロックに対応するブロック
    ステータスを第2の状態に変更して、上記ブロックのデ
    ータに対するプロセッサの処理を許容し、且つ、その処
    理が済んで当該ブロックステータスがプロセッサにより
    第1の状態に戻されるまでそのブロックへの新たなデー
    タ転送を禁止するようにされて成るデータ転送制御シス
    テム。 2、データバッファを複数のブロックに分割して転送元
    又は転送先とし、他の記憶手段又はデータ入出力手段と
    の間でデータをDMA転送するデータ転送制御システム
    であって、分割された夫々のブロック毎に対応するブロ
    ックステータスの保持領域を、DMAコントローラ及び
    プロセッサの双方がリード・ライト可能に用意し、上記
    ブロックステータスの第2の状態を、対応ブロックへの
    データの書き込みを許容するステータスとみなし、また
    その第1の状態を対応ブロックからのデータの読み出し
    を許容するステータスとみなすように、ブロックステー
    タスの意味付けが上記DMAコントローラ及びプロセッ
    サに定義され、DMAコントローラ及びプロセッサは、
    そのブロックステータスの定義付けに照らしてブロック
    ステータスの状態を判定し対応ブロックのデータに対す
    るアクセス制御を行い、その処理を終えた後、当該処理
    対象ブロックに応するブロックステータス保持領域の状
    態を反転するようにされて成るデータ転送制御システム
    。 3、上記ブロックステータスの保持領域を対応ブロック
    の定義領域に含めた請求項1又は2記載のデータ転送制
    御システム。 4、連続的に連鎖するブロックの順番にブロック定義領
    域をデータ転送制御テーブルに形成するようにし、上記
    プロセッサは、データバッファの先頭アドレス、各ブロ
    ックに共通のブロック長並びにブロック数、そして上記
    転送制御テーブルの先頭アドレスを、上記DMAコント
    ローラに初期設定し、初期設定された条件に従ってDM
    Aコントローラがデータバッファのブロックを順番に指
    定してDMA転送を行うようにされて成る請求項3記載
    のデータ転送制御システム。 5、上記DMAコントローラは、データバッファのブロ
    ックをループ状に連鎖させるように順番に指定してDM
    A転送を行うようにされて成る請求項4記載のデータ転
    送制御システム。 6、上記DMAコントローラが所定のブロックにデータ
    を転送したとき、DMAコントローラが、ブロック定義
    領域に、当該ブロックの先頭アドレスとデータ転送語数
    を設定する処理を行うようにされて成る請求項5記載の
    データ転送制御システム。
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 true JPH0310354A (ja) 1991-01-17
JP2963696B2 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)

Cited By (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 情報転送装置及び情報記録装置
JP2002082842A (ja) * 2000-06-20 2002-03-22 Bayerische Motoren Werke Ag メインマイクロプロセッサと、バス送受信ユニットに対するプロセッサインタフェースとを有する制御装置

Cited By (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 情報転送装置及び情報記録装置
JP2002082842A (ja) * 2000-06-20 2002-03-22 Bayerische Motoren Werke Ag メインマイクロプロセッサと、バス送受信ユニットに対するプロセッサインタフェースとを有する制御装置

Also Published As

Publication number Publication date
JP2963696B2 (ja) 1999-10-18

Similar Documents

Publication Publication Date Title
US5613162A (en) Method and apparatus for performing efficient direct memory access data transfers
JPH06266649A (ja) 複数のデータチャネルを介してデータを転送する方法及びその回路アーキテクチャ
JPH06266650A (ja) データを転送する方法と装置及びデータ転送をインタリーブする装置
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
JPS6375955A (ja) プログラムモ−ド・アクセス制御方式
KR100348545B1 (ko) 통신 dma 장치
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JPH0310354A (ja) データ転送制御システム
JP2723970B2 (ja) データ転送制御装置
JP2002259326A (ja) Dmaコントローラ及びdma転送方法
JP3678537B2 (ja) データ転送方法及び装置
JPH02310649A (ja) 受信フレーム転送方式および通信制御装置
JPH05289979A (ja) データ転送制御方式、データ転送制御装置、及び通信制御システム
JP2594611B2 (ja) Dma転送制御装置
JPH06244902A (ja) 通信制御装置
JP2005190496A (ja) データ転送方法及び装置
JPH0246967B2 (ja)
JPH04282938A (ja) 通信制御装置
JPH04346150A (ja) データ転送処理システム
JPH06314251A (ja) Scsiデータ転送装置
JP2003150534A (ja) チェインブロック転送方法及び通信制御装置
JPH08202648A (ja) ダイレクトメモリアクセス転送方式及び方法
JPH0136138B2 (ja)
JPH01129342A (ja) Dma転送時における特定領域コピー方式
JPH02301851A (ja) システムバスアクセス方式

Legal Events

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