JPH0836542A - Dmaコントローラ - Google Patents

Dmaコントローラ

Info

Publication number
JPH0836542A
JPH0836542A JP17380594A JP17380594A JPH0836542A JP H0836542 A JPH0836542 A JP H0836542A JP 17380594 A JP17380594 A JP 17380594A JP 17380594 A JP17380594 A JP 17380594A JP H0836542 A JPH0836542 A JP H0836542A
Authority
JP
Japan
Prior art keywords
length
address
transfer
controller
dma
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.)
Pending
Application number
JP17380594A
Other languages
English (en)
Inventor
Takayuki Matsumoto
隆行 松本
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.)
NEC Engineering Ltd
Original Assignee
NEC 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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP17380594A priority Critical patent/JPH0836542A/ja
Publication of JPH0836542A publication Critical patent/JPH0836542A/ja
Pending legal-status Critical Current

Links

Classifications

    • CCHEMISTRY; METALLURGY
    • C04CEMENTS; CONCRETE; ARTIFICIAL STONE; CERAMICS; REFRACTORIES
    • C04BLIME, MAGNESIA; SLAG; CEMENTS; COMPOSITIONS THEREOF, e.g. MORTARS, CONCRETE OR LIKE BUILDING MATERIALS; ARTIFICIAL STONE; CERAMICS; REFRACTORIES; TREATMENT OF NATURAL STONE
    • C04B41/00After-treatment of mortars, concrete, artificial stone or ceramics; Treatment of natural stone
    • C04B41/45Coating or impregnating, e.g. injection in masonry, partial coating of green or fired ceramics, organic coating compositions for adhering together two concrete elements
    • C04B41/52Multiple coating or impregnating multiple coating or impregnating with the same composition or with compositions only differing in the concentration of the constituents, is classified as single coating or impregnation

Landscapes

  • Chemical & Material Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Ceramic Engineering (AREA)
  • Materials Engineering (AREA)
  • Structural Engineering (AREA)
  • Organic Chemistry (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【目的】 ディスコネクト及びリコネクトが発生したと
きにDMAコントローラに対して行うDMA転送情報の
退避及び再設定によるCPUの負荷を軽減する。 【構成】 レングスカウンタ11−1〜11−7及びア
ドレスカウンタ12−1〜12−7はディスク装置各々
における転送長及びアドレスをカウントする。レングス
セレクタ14はカレントDMAアクセスレジスタ13の
情報を基にレングスカウンタ11−1〜11−7の出力
から一つを選択する。アドレスセレクタ15はカレント
DMAアクセスレジスタ13の情報を基にアドレスカウ
ンタ12−1〜12−7の出力から一つを選択する。レ
ングス補正値生成用減算器17はカレント転送カウンタ
値格納レジスタ16及びレングスセレクタ14の出力か
ら補正レングスを算出し、アドレス補正用減算器18は
レングス補正値生成用減算器17及びアドレスセレクタ
15の出力から補正アドレスを算出する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はDMAコントローラに関
し、特に複数のSCSI(small compute
r system interface)デバイスが搭
載される装置におけるDMA(ダイレクトメモリアクセ
ス)の制御方式に関する。
【0002】
【従来の技術】通常、SCSIコントローラのホストバ
スとシステム上のバスとの転送を行う場合、その転送に
はDMAコントローラが介在している。
【0003】例えば、イニシエータのSCSIコントロ
ーラに対してディスク装置を制御する2つのターゲット
A,BのSCSIコントローラが接続されており、まず
最初にターゲットA,Bの順番でほぼ同時にディスクラ
イトのデータ転送要求が発生したとする。
【0004】この場合、上記のシステムのCPUはメモ
リが接続されているデータバスと、イニシエータのSC
SIコントローラのホストバスとの間でデータ転送を行
うために、DMAコントローラにまずターゲットAに対
するDMA転送情報(転送アドレス、転送データ長、リ
ードライトの区別等)をセットする。
【0005】これを受けて、DMAコントローラではC
PUからのDMA転送開始を指示するI/Oコマンドを
受けてからDMA転送を開始することができるような状
態としておく。
【0006】その後に、CPUはイニシエータのSCS
Iコントローラに対して、ターゲットAのSCSIコン
トローラとのDMA転送を行うようI/Oコマンドを発
行する。
【0007】CPUからI/Oコマンドを受取ったイニ
シエータのSCSIコントローラはSCSIのバスを獲
得してから、ターゲットAのSCSIコントローラにD
MA転送開始のコマンドを発行する。
【0008】イニシエータのSCSIコントローラから
DMA転送開始のコマンドを受取ったターゲットAのS
CSIコントローラではSCSIのバスを獲得し、イニ
シエータのSCSIコントローラとの間でデータ転送を
開始する。
【0009】これによって、メモリ→データバス→イニ
シエータのSCSIコントローラ→SCSIのバス→タ
ーゲットAのSCSIコントローラ→ディスク装置とい
う経路でデータ転送が可能となる。
【0010】しかしながら、ディスク装置におけるリー
ドライトの処理にはシーク及び回転待ちの時間がある
が、データ転送用のバッファを持っていたとしてもその
バッファはすぐに一杯となってしまうため、いったんデ
ィスコネクトしてSCSIのバスを解放し、その後にシ
ーク及び回転待ちにはいる。
【0011】このとき、ターゲットAのSCSIコント
ローラはイニシエータのSCSIコントローラにディス
コネクトしたことを通知する。イニシエータのSCSI
コントローラはその通知を受けると、ホスト側のDMA
コントローラに割込み信号を出力する。
【0012】DMAコントローラはホストバスの割込み
信号を受けると、その割込み信号に応答して現在実行中
のDMA転送を止め、さらに上位側のCPUに割込み信
号を通知する。
【0013】上位側のCPUはDMAコントローラから
の割込み信号を受けると、I/Oリードコマンドでイニ
シエータのSCSIコントローラのステータスをセンス
し、ターゲットAの転送がディスコネクトされたことを
認識した後に、カレント転送レジスタの値を退避メモリ
エリアにストアする。
【0014】また、CPUはDMAコントローラ内部の
アドレスカウンタ及びレングスカウンタ各々の値もセン
スして退避メモリエリアにストアする。これらの値はタ
ーゲットBのSCSIコントローラの転送が終了してタ
ーゲットAのSCSIコントローラがリコネクトし、タ
ーゲットAに対する残りのデータを転送するときのDM
A転送情報として必要となる。
【0015】次に、CPUはターゲットBに対するDM
A転送情報である転送アドレス及び転送データ長を夫々
DMAコントローラ内のアドレスカウンタ及びレングス
カウンタに設定し、さらにイニシエータのSCSIコン
トローラにターゲットBとのDMA転送に必要な情報を
設定する。
【0016】その後、CPUはDMAコントローラにD
MA転送開始のコマンドを発行し、イニシエータのSC
SIコントローラにはターゲットBのSCSIコントロ
ーラとのDMA転送を行うようI/Oコマンドを発行す
る。
【0017】CPUからI/Oコマンドを受取ったイニ
シエータのSCSIコントローラはSCSIのバスを獲
得してから、ターゲットBのSCSIコントローラにD
MA転送開始のコマンドを発行する。
【0018】イニシエータのSCSIコントローラから
DMA転送開始のコマンドを受取ったターゲットBのS
CSIコントローラではSCSIのバスを獲得し、イニ
シエータのSCSIコントローラとの間でデータ転送を
開始する。
【0019】これによって、メモリ→データバス→イニ
シエータのSCSIコントローラ→SCSIのバス→タ
ーゲットBのSCSIコントローラ→ディスク装置とい
う経路でデータ転送が可能となる。
【0020】ターゲットBのSCSIコントローラがデ
ィスコネクトしてSCSIのバスを解放し、ディスク装
置のシーク及び回転待ちにはいったときに、ターゲット
AのSCSIコントローラではディスク装置のシーク及
び回転待ちが終了すると、イニシエータのSCSIコン
トローラにリコネクトを要求する。イニシエータのSC
SIコントローラはその要求を受けると、ホスト側のD
MAコントローラを通してCPUに割込み信号を出力す
る。
【0021】CPUはDMAコントローラを通して割込
み信号を受けると、I/Oリードコマンドでイニシエー
タのSCSIコントローラのステータスをセンスし、タ
ーゲットAとのリコネクトによるデータ転送と認識す
る。
【0022】ここで、SCSIコントローラ内部にはデ
ータ転送用の数バイトのバッファが設けられているのが
一般的であるため、DMA転送中断時に、メモリとイニ
シエータのSCSIコントローラとの間で転送されるデ
ータ長をカウントするDMAコントローラのレングスカ
ウンタの値が、イニシエータのSCSIコントローラか
らターゲットのSCSIコントローラに転送されるデー
タ長をカウントするイニシエータのSCSIコントロー
ラのカレント転送カウンタの値よりも最大でバッファの
容量分少なくなっていることがある。
【0023】このずれはカレント転送カウンタがSCS
Iのバスのインタフェース部分でカウントを行っている
ために生ずる。そのため、CPUがディスコネクト時に
退避メモリエリアに退避しておいたレングスカウンタ及
びカレント転送カウンタ各々の値を用い、リコネクト時
にそのずれを補正し、アドレスカウンタ及びレングスカ
ウンタへの再設定を行っている。
【0024】その後に、CPUはDMAコントローラに
DMA転送開始のコマンドを発行し、イニシエータのS
CSIコントローラにはターゲットAのSCSIコント
ローラとのDMA転送を行うようI/Oコマンドを発行
する。
【0025】CPUからI/Oコマンドを受取ったイニ
シエータのSCSIコントローラはSCSIのバスを獲
得してから、ターゲットAのSCSIコントローラにD
MA転送開始のコマンドを発行する。
【0026】イニシエータのSCSIコントローラから
DMA転送開始のコマンドを受取ったターゲットAのS
CSIコントローラではSCSIのバスを獲得し、イニ
シエータのSCSIコントローラとの間でデータ転送を
開始する。
【0027】これによって、ディスコネクト時にイニシ
エータのSCSIコントローラ内部のバッファに取り残
されたデータがディスク装置に再転送される。
【0028】また、イニシエータのSCSIコントロー
ラに対してもディスコネクト時に退避メモリエリアに退
避しておいた情報を再設定してからDMAコントローラ
にDMA転送開始のコマンドを発行し、イニシエータの
SCSIコントローラにI/Oコマンドを発行すること
で、ターゲットAに対して残りのデータ転送を行う。
【0029】ターゲットAに対するデータ転送が終了し
た後に、ターゲットAのSCSIコンローラはSCSI
のバスを解放する。これ以降、ターゲットBのシーク及
び回転待ちが終了すると、ターゲットAの処理動作と同
様にして、ターゲットBのリコネクト動作が行われる。
【0030】
【発明が解決しようとする課題】上述した従来の複数の
SCSIデバイスが搭載される装置におけるDMA制御
方式では、ターゲット側がディスコネクトを行う度にC
PUがDMAコントローラからDMA転送情報を退避メ
モリエリアに退避しなければならない。
【0031】また、ターゲット側がリコネクトを行う度
にCPUがDMAコントローラに対して、退避メモリエ
リアに退避してあるDMA転送情報を設定し直さなけれ
ばなければならない。
【0032】また、SCSIの仕様ではイニシエータが
1つに対してターゲットを7つまで接続可能であるが、
7つのターゲットに対して同時にDMA転送要求のコマ
ンドを発行した場合、どのターゲットがディスコネクト
し、どのターゲットがデータ転送可能状態となってデー
タ転送を開始するためにリコネクトを要求してくるかが
分からないので、その都度DMAコントローラにDMA
転送情報を設定するCPUの負荷が多大なものとなって
しまう。
【0033】そこで、本発明の目的は上記の問題点を解
消し、ディスコネクト及びリコネクトが発生したときに
DMAコントローラに対して行うDMA転送情報の退避
及び再設定によるCPUの負荷を軽減することができる
DMAコントローラを提供することにある。
【0034】
【課題を解決するための手段】本発明によるDMAコン
トローラは、複数のディスク装置と主記憶装置との間の
ダイレクトメモリアクセスによるデータ転送を行うDM
Aコントローラであって、前記複数のディスク装置各々
に対応して設けられかつ前記データ転送におけるアドレ
ス情報を生成する複数のアドレスカウンタと、前記複数
のディスク装置各々に対応して設けられかつ前記データ
転送におけるデータ長を計数する複数のレングスカウン
タと、アクセスすべきディスク装置を特定する特定情報
と前記データ転送が中断されたか否かを示す切換情報と
に応じて前記複数のアドレスカウンタの出力のうちの一
つを選択するアドレス選択手段と、前記特定情報と前記
切換情報とに応じて前記複数のレングスカウンタの出力
のうちの一つを選択するレングス選択手段とを備えてい
る。
【0035】本発明による他のDMAコントローラは、
上記の構成のほかに、前記バスが解放されたときまでに
前記バッファに転送されたデータのデータ長を保持する
保持手段と、前記保持手段の内容と前記レングス選択手
段で選択されているレングスカウンタの出力とを減算す
る減算手段と、前記減算手段の減算結果と前記アドレス
選択手段で選択されているアドレスカウンタの出力とか
ら前記データ転送の再開時のアドレスを算出する算出手
段と、前記保持手段の内容を前記レングス選択手段で選
択されているレングスカウンタにロードする手段と、前
記算出手段の算出結果を前記アドレス選択手段で選択さ
れているアドレスカウンタにロードする手段とを具備し
ている。
【0036】本発明による別のDMAコントローラは、
上記の構成のほかに、前記特定情報と前記切換情報とを
格納する格納手段を具備している。
【0037】本発明によるさらに別のDMAコントロー
ラは、上記の構成のほかに、前記アドレス選択手段で選
択されたアドレスカウンタ及び前記レングス選択手段で
選択されたレングスカウンタへの中央処理装置からのア
クセスを禁止する手段を具備している。
【0038】
【作用】カレントDMAアクセスレジスタにDMA転送
の対象であるディスク装置に対応するレングスカウンタ
及びアドレスカウンタを選択するための値とディスコネ
クトによる転送の切換えか否かを示す情報とを設定す
る。
【0039】DMA転送の開始を指示するコマンドの入
力に応答して、カレントDMAアクセスレジスタの内容
を基に選択されたレングスカウンタ及びアドレスカウン
タ各々の値にしたがってDMA転送を行う。
【0040】これによって、ディスコネクトまたはリコ
ネクトが発生したときでもCPUによるDMAコントロ
ーラに対するDMA転送情報の退避及び再設定の負荷を
軽減することが可能となる。
【0041】メモリリード時のリコネクトによるDMA
コントローラの先走りによるイニシエータSCSIコン
トローラのカレント転送カウンタの値とDMAコントロ
ーラのレングスカウンタの値とのずれに対するレングス
及びアドレスの補正をレングスカウンタ及びアドレスカ
ウンタの切換え前に行い、元のレングスカウンタ及びア
ドレスカウンタに格納する。
【0042】これによって、CPUの演算によるレング
ス及びアドレスの補正が不要となり、CPUの負荷を軽
減し、ディスコネクトまたはリコネクトによるDMA転
送の中断から再起動までの時間が短縮可能となる。
【0043】
【実施例】次に、本発明の一実施例について図面を参照
して説明する。
【0044】図1は本発明の一実施例のシステム構成を
示すブロック図である。図において、DMAコントロー
ラ1とCPU2とメインメモリ3とは夫々アドレスバス
101及びデータバス102によって互いに接続されて
いる。
【0045】また、DMAコントローラ1にはデバイス
とのインタフェースとしてイニシエータSCSIコント
ローラ4がSCSIホストバス104を介して接続され
ている。
【0046】イニシエータSCSIコントローラ4には
7台のターゲットSCSIコントローラ5−1〜5−7
がSCSIバス106を介して接続されており、ターゲ
ットSCSIコントローラ5−1〜5−7には夫々ディ
スク装置6−1〜6−7が接続されている。
【0047】図2は図1のDMAコントローラ1の構成
を示すブロック図である。図において、DMAコントロ
ーラ1は7台のターゲットSCSIコントローラ5−1
〜5−7各々に対応するレングスカウンタ11−1〜1
1−7及びアドレスカウンタ12−1〜12−7を有し
ている。
【0048】また、DMAコントローラ1はレングスカ
ウンタ11−1〜11−7各々の出力の中から一つを選
択するレングスセレクタ(SEL)14と、アドレスカ
ウンタ12−1〜12−7各々の出力の中から一つを選
択するアドレスセレクタ(SEL)15と、レングスセ
レクタ14及びアドレスセレクタ15を夫々制御するた
めの情報を保持するカレントDMAアクセスレジスタ1
3とを有している。
【0049】さらに、DMAコントローラ1はレングス
及びアドレスの補正を行うためのカレント転送カウンタ
値格納レジスタ16と、レングス補正値生成用減算器1
7と、アドレス補正用減算器18と、補正アドレス格納
レジスタ19とを有し、さらにまたDMA転送を制御す
るDMA制御部20を有している。
【0050】図3は本発明の一実施例におけるDMA転
送の動作を説明するための図である。図において、メイ
ンメモリ3から読出されたデータはデータバス102と
DMAコントローラ1とSCSIホストバス104とを
介してイニシエータSCSIコントローラ4内のバッフ
ァ41に蓄積される。このとき、DMAコントローラ1
内のレングスカウンタ21はバッファ41に送出される
データのレングスをカウントする。
【0051】バッファ41はその容量がαバイトであ
り、蓄積したデータをSCSIバス106を介してター
ゲットSCSIコントローラ5−1〜5−7に送出す
る。このとき、イニシエータSCSIコントローラ4内
のカレント転送カウンタ42はバッファ41から送出さ
れるデータのレングスをカウントする。
【0052】これら図1〜図3を用いて本発明の一実施
例の動作について説明する。まず、ディスク装置6−1
に対してデータ書込み要求が発生した場合について以下
説明する。
【0053】この場合、CPU2はI/Oライトコマン
ドを発行し、ディスク装置6−1に対するDMA転送情
報をデータバス102を介してDMAコントローラ1に
セットする。
【0054】すなわち、ディスク装置6−1に対するD
MA転送情報として転送方向(メモリリード)と転送開
始アドレスとがアドレスカウンタ12−1に、転送レン
グス長がレングスカウンタ11−1に夫々書込まれる。
【0055】また、CPU2はカレントDMAアクセス
レジスタ13にディスク装置6−1を選択するための値
とディスコネクトによる転送の切換えではないという情
報とをセットする。
【0056】ここで、カレントDMAアクセスレジスタ
13にはレングスカウンタ11−1〜11−7及びアド
レスカウンタ12−1〜12−7各々の出力のうちいず
れか一つを選択するための3ビットのデータ“001”
〜“111”と、ディスコネクトによってデータ転送が
切換わるのかどうかを判別するための1ビットのデータ
“0”,“1”とが保持される。
【0057】このとき、カレントDMAアクセスレジス
タ13にはレングスカウンタ11−1及びアドレスカウ
ンタ12−1各々の出力を選択するためのデータと、デ
ィスコネクトによってデータ転送が切換わらないことを
示すデータとが保持されている。
【0058】よって、レングスセレクタ14はカレント
DMAアクセスレジスタ13の値によってレングスカウ
ンタ11−1の出力を選択し、DMA制御部20に接続
する。また、アドレスセレクタ15はカレントDMAア
クセスレジスタ13の値によってアドレスカウンタ12
−1の出力を選択し、そのアドレスのアドレスバス10
1への出力を可能とする。
【0059】CPU2はDMAコントローラ1及びSC
SIホストバス104を通してイニシエータSCSIコ
ントローラ4にターゲットSCSIコントローラ5−1
に対する転送情報をセットする。この後、CPU2はD
MAコントローラ1及びイニシエータSCSIコントロ
ーラ4に夫々転送開始のI/Oコマンドを発行する。
【0060】イニシエータSCSIコントローラ4はそ
のI/Oコマンドを受取るとSCSIバス106を獲得
し、ターゲットSCSIコントローラ5−1に対してデ
ィスクライトの転送要求がきたことを通知する。
【0061】ターゲットSCSIコントローラ5−1に
通知されたディスクライトの転送要求によって、ディス
ク装置6−1はシーク及びディスク回転待ちに移り、デ
ィスク装置6−1内のバッファにデータを転送するため
にSCSIバス106を獲得する。
【0062】ディスク装置6−1はSCSIバス106
の獲得後、イニシエータSCSIコントローラ4にデー
タ転送要求を出力する。これによって、メインメモリ3
→データバス102→イニシエータSCSIコントロー
ラ4→SCSIバス106→ターゲットSCSIコント
ローラ5−1→ディスク装置6−1という経路でデータ
転送が始まる。
【0063】このデータ転送において、ディスク装置6
−1はシークやディスク回転待ちの終了よりも早くバッ
ファが一杯になってしまうと、ディスコネクトしてSC
SIバス106を解放し、ディスコネクトしたことをイ
ニシエータSCSIコントローラ4に通知する。
【0064】イニシエータSCSIコントローラ4はデ
ィスク装置6−1がディスコネクトを完了したことを認
識し、DMAコントローラ1に対する割込み信号105
をアクティブにする。
【0065】DMAコントローラ1は割込み信号105
がアクティブになったことを認識すると、メインメモリ
3とイニシエータSCSIコントローラ4との間のDM
A転送を中断し、CPU2に対して割込み信号103を
発行してDMA転送が中断したことを通知する。
【0066】CPU2はイニシエータSCSIコントロ
ーラ4からステータスをセンスするとともに、イニシエ
ータSCSIコントローラ4のカレント転送カウンタ4
2をセンスしてその値をDMAコントローラ1のカレン
ト転送カウンタ値格納レジスタ16に格納する。また、
CPU2は設定した転送長だけデータ転送が行われたか
どうかを確認する。
【0067】ここで、メインメモリ3とディスク装置6
−1との間でデータ転送を行っている時にディスク装置
6−2に対してデータ書込み要求が発生したとすると、
CPU2はI/Oライトコマンドを発行し、ディスク装
置6−2に対するDMA転送情報をデータバス102を
介してDMAコントローラ1にセットする。
【0068】すなわち、ディスク装置6−2に対するD
MA転送情報として転送方向(メモリリード)と転送開
始アドレスとがアドレスカウンタ12−2に、転送レン
グス長がレングスカウンタ11−2に夫々書込まれる。
【0069】また、設定した転送長だけデータ転送が行
われずにディスク装置6−1のディスコネクトが行われ
たときは、カレントDMAアクセスレジスタ13にディ
スク装置6−2を選択するための値とディスコネクトに
よる転送の切換えであるという情報とをセットする。
【0070】このとき、カレントDMAアクセスレジス
タ13の情報によってレングスセレクタ14で選択され
るレングスカウンタ11−2の出力及びアドレスセレク
タ15で選択されるアドレスカウンタ12−2の出力は
以下の手順で切換わる。
【0071】まず、第1のステップで、カレントDMA
アクセスレジスタ13にセットされたディスコネクトに
よるデータ転送切換えという情報からレングスセレクタ
14及びアドレスセレクタ15をすぐに切換えず、その
情報をカレントDMAアクセスレジスタ13にセットし
たままにしておく。
【0072】つまり、ここではレングスカウンタ11−
1の値がレングス信号線111に、アドレスカウンタ1
2−1の値がアドレスバス101に夫々出力されたまま
にしておく。
【0073】第2のステップで、イニシエータSCSI
コントローラ4のカレント転送カウンタ42から読出し
た値が格納されているカレント転送カウンタ値格納レジ
スタ16とレングスセレクタ14からレングス信号線1
11に出力されている値とをレングス補正値生成用減算
器17で減算して補正値を求め、レングス補正値生成用
減算器17から補正値信号線113に出力する。
【0074】この補正値信号線113に出力された値と
アドレスセレクタ15からアドレスバス101に出力さ
れている値とをアドレス補正用減算器18で減算して補
正アドレスを求め、補正アドレス信号線114を介して
補正アドレス格納レジスタ19に格納する。
【0075】DMA転送が中断されたときにはDMAコ
ントローラ1のレングスカウンタ21の値が、イニシエ
ータSCSIコントローラ4のカレント転送カウンタ4
2の値よりも最大でバッファ41の容量分少なくなって
いることがある。上記の補正アドレスはこの先走ったデ
ータ転送分のアドレスを戻したものである。
【0076】第3のステップで、カレントDMAアクセ
スレジスタ13にディスク装置6−2に対するDMA転
送における情報がセットされる前の値が示すレングスカ
ウンタ11−1に信号線112及びデータバス102を
介してカレント転送カウンタ値格納レジスタ16の値
を、アドレスカウンタ12−1に信号線115及びデー
タバス102を介して補正アドレス格納レジスタ19の
値を夫々ストアする。
【0077】この後に初めて、レングスセレクタ14及
びアドレスセレクタ15でレングスカウンタ11−2及
びアドレスカウンタ12−2各々の出力を選択するよう
切換える。
【0078】CPU2はカレントDMAアクセスレジス
タ13にディスク装置6−2に対するDMA転送におけ
る情報をセットした後に、DMAコントローラ1及びS
CSIホストバス104を通してイニシエータSCSI
コントローラ4にディスク装置6−2に対するDMA転
送情報をセットする。この後、CPU2はDMAコント
ローラ1及びイニシエータSCSIコントローラ4に夫
々転送開始のI/Oコマンドを発行する。
【0079】イニシエータSCSIコントローラ4はそ
のI/Oコマンドを受取るとSCSIバス106を獲得
し、ターゲットSCSIコントローラ5−2に対してデ
ィスクライトの転送要求がきたことを通知する。
【0080】ターゲットSCSIコントローラ5−2に
通知されたディスクライトの転送要求によって、ディス
ク装置6−2はシーク及びディスク回転待ちに移り、デ
ィスク装置6−2内のバッファにデータを転送するため
にSCSIバス106を獲得する。
【0081】ディスク装置6−2はSCSIバス106
の獲得後、イニシエータSCSIコントローラ4にデー
タ転送要求を出力する。これによって、メインメモリ3
→データバス102→イニシエータSCSIコントロー
ラ4→SCSIバス106→ターゲットSCSIコント
ローラ5−2→ディスク装置6−2という経路でデータ
転送が始まる。
【0082】このデータ転送において、ディスク装置6
−2はバッファが一杯になったところでディスコネクト
してSCSIバス106を解放し、ディスコネクトした
ことをイニシエータSCSIコントローラ4に通知す
る。
【0083】しかしながら、バッファが一杯になる前に
シークやディスク回転待ちが終了したとすると、ディス
ク装置6−2はディスコネクトせずに設定された転送長
分だけデータ転送を行う。
【0084】ターゲットSCSIコントローラ5−2は
ディスク装置6−2へのデータ転送が全て終了すると、
その転送終了をイニシエータSCSIコントローラ4に
通知する。
【0085】イニシエータSCSIコントローラ4はデ
ィスク装置6−2へのデータ転送が全て終了したことを
認識し、DMAコントローラ1に対する割込み信号10
5をアクティブにする。
【0086】DMAコントローラ1は割込み信号105
がアクティブになったことを認識すると、CPU2に対
して割込み信号103を発行してディスク装置6−2に
対するDMA転送が終了したことを通知する。
【0087】CPU2はイニシエータSCSIコントロ
ーラ4からの割込み信号103を受けると、イニシエー
タSCSIコントローラ4からステータスをセンスして
ターゲットSCSIコントローラ5−1のリコネクトで
あることを認識する。
【0088】CPU2はカレントDMAアクセスレジス
タ13にレングスカウンタ11−1及びアドレスカウン
タ12−1を選択するための情報と、ディスク装置6−
2に対するデータ転送が正常終了しているためディスコ
ネクトによるデータ転送の切換えではないという情報と
をセットする。
【0089】ここで、ディスコネクトによるデータ転送
の切換えではないという情報とをセットすると、レング
スセレクタ14及びアドレスセレクタ15は夫々レング
スカウンタ11−1及びアドレスカウンタ12−1各々
の出力を選択するための情報を基にすぐにそれらへの切
換えを行う。
【0090】つまり、レングスカウンタ11−1及びア
ドレスカウンタ12−1各々の出力はすでに補正が行わ
れているので、それ以上の補正を行うことなく、レング
スセレクタ14及びアドレスセレクタ15での切換えが
行われる。
【0091】その後に、イニシエータSCSIコントロ
ーラ4はターゲットSCSIコントローラ5−1にディ
スク装置6−1に対するDMA転送情報をセットしてD
MAを起動する。このDMA転送によって前回行われた
ディスク装置6−1に対するDMA転送の残りのデータ
が転送される。
【0092】上述した動作を、最大7台のターゲットS
CSIコントローラ5−1〜5−7の同時動作時におい
てランダムに起こり得るディスコネクトまたはリコネク
トに対して行うよう制御する。
【0093】このように、DMAコントローラ1内にデ
ィスク装置6−1〜6−7各々に対応してレングカウン
タ11−1〜11−7及びアドレスカウンタ12−1〜
12−7を設け、カレントDMAアクセスレジスタ13
に設定された情報を基にレングカウンタ11−1〜11
−7及びアドレスカウンタ12−1〜12−7各々の出
力のうち一つをレングスセレクタ14及びアドレスセレ
クタ15で夫々選択することによって、最大7台のター
ゲットSCSIコントローラ5−1〜5−7の同時動作
においてディスコネクトまたはリコネクトが発生したと
きでもCPU2によるDMAコントローラ1に対するD
MA転送情報の退避及び再設定の負荷を軽減することが
できる。
【0094】また、メモリリード時のリコネクトによる
DMAコントローラ4の先走りによるイニシエータSC
SIコントローラ4のカレント転送カウンタ42の値と
DMAコントローラ1のレングスカウンタ21の値との
ずれに対するレングス及びアドレスの補正をカレント転
送カウンタ値格納レジスタ16とレングス補正値生成用
減算器17とアドレス補正用減算器18と補正アドレス
格納レジスタ19とによってレングスカウンタ14及び
アドレスカウンタ15による切換え前に行うことで、C
PU2の演算によるレングス及びアドレスの補正が不要
となるので、CPU2の負荷を軽減することができ、さ
らにディスコネクトまたはリコネクトによるDMAの中
断から再起動までの時間を短縮することができる。
【0095】
【発明の効果】以上説明したように本発明によれば、複
数のディスク装置各々に対応して設けられた複数のアド
レスカウンタの出力のうちの一つをアクセスすべきディ
スク装置を特定する特定情報とデータ転送が中断された
か否かを示す切換情報とに応じて選択するとともに、複
数のレングスカウンタの出力のうちの一つを特定情報と
切換情報とに応じて選択することによって、ディスコネ
クト及びリコネクトが発生したときにDMAコントロー
ラに対して行うDMA転送情報の退避及び再設定による
CPUの負荷を軽減することができるという効果があ
る。
【図面の簡単な説明】
【図1】本発明の一実施例のシステム構成を示すブロッ
ク図である。
【図2】図1のDMAコントローラの構成を示すブロッ
ク図である。
【図3】本発明の一実施例におけるDMA転送の動作を
説明するための図である。
【符号の説明】
1 DMAコントローラ 2 CPU 3 メインメモリ 4 イニシエータSCSIコントローラ 5−1〜5−7 ターゲットSCSIコントローラ 6−1〜6−7 ディスク装置 11−1〜11−7 レングスカウンタ 12−1〜12−7 アドレスカウンタ 13 カレントDMAアクセスレジスタ 14 レングスセレクタ 15 アドレスセレクタ 16 カレント転送カウンタ値格納レジスタ 17 レングス補正値生成用減算器 18 アドレス補正用減算器 19 補正アドレス格納レジスタ 20 DMA制御部

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数のディスク装置と主記憶装置との間
    のダイレクトメモリアクセスによるデータ転送を行うD
    MAコントローラであって、前記複数のディスク装置各
    々に対応して設けられかつ前記データ転送におけるアド
    レス情報を生成する複数のアドレスカウンタと、前記複
    数のディスク装置各々に対応して設けられかつ前記デー
    タ転送におけるデータ長を計数する複数のレングスカウ
    ンタと、アクセスすべきディスク装置を特定する特定情
    報と前記データ転送が中断されたか否かを示す切換情報
    とに応じて前記複数のアドレスカウンタの出力のうちの
    一つを選択するアドレス選択手段と、前記特定情報と前
    記切換情報とに応じて前記複数のレングスカウンタの出
    力のうちの一つを選択するレングス選択手段とを有する
    ことを特徴とするDMAコントローラ。
  2. 【請求項2】 前記バスが解放されたときまでに前記バ
    ッファに転送されたデータのデータ長を保持する保持手
    段と、前記保持手段の内容と前記レングス選択手段で選
    択されているレングスカウンタの出力とを減算する減算
    手段と、前記減算手段の減算結果と前記アドレス選択手
    段で選択されているアドレスカウンタの出力とから前記
    データ転送の再開時のアドレスを算出する算出手段と、
    前記保持手段の内容を前記レングス選択手段で選択され
    ているレングスカウンタにロードする手段と、前記算出
    手段の算出結果を前記アドレス選択手段で選択されてい
    るアドレスカウンタにロードする手段とを含むことを特
    徴とする請求項1記載のDMAコントローラ。
  3. 【請求項3】 前記特定情報と前記切換情報とを格納す
    る格納手段を含むことを特徴とする請求項1または請求
    項2記載のDMAコントローラ。
  4. 【請求項4】 前記アドレス選択手段で選択されたアド
    レスカウンタ及び前記レングス選択手段で選択されたレ
    ングスカウンタへの中央処理装置からのアクセスを禁止
    する手段を含むことを特徴とする請求項1から請求項3
    のいずれか記載のDMAコントローラ。
JP17380594A 1994-07-26 1994-07-26 Dmaコントローラ Pending JPH0836542A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17380594A JPH0836542A (ja) 1994-07-26 1994-07-26 Dmaコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17380594A JPH0836542A (ja) 1994-07-26 1994-07-26 Dmaコントローラ

Publications (1)

Publication Number Publication Date
JPH0836542A true JPH0836542A (ja) 1996-02-06

Family

ID=15967495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17380594A Pending JPH0836542A (ja) 1994-07-26 1994-07-26 Dmaコントローラ

Country Status (1)

Country Link
JP (1) JPH0836542A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000031647A1 (fr) * 1998-11-26 2000-06-02 Matsushita Electric Industrial Co., Ltd. Dispositif de traitement d'image
CN107391403A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种存储设备中多路控制器间的通信方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000031647A1 (fr) * 1998-11-26 2000-06-02 Matsushita Electric Industrial Co., Ltd. Dispositif de traitement d'image
US7038737B1 (en) 1998-11-26 2006-05-02 Matsushita Electric Industrial Co., Ltd. Image processing device
CN107391403A (zh) * 2017-07-28 2017-11-24 郑州云海信息技术有限公司 一种存储设备中多路控制器间的通信方法及装置

Similar Documents

Publication Publication Date Title
US6564271B2 (en) Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
JP3193880B2 (ja) データ移行方法
US5758057A (en) Multi-media storage system
US5819111A (en) System for managing transfer of data by delaying flow controlling of data through the interface controller until the run length encoded data transfer is complete
JPH077327B2 (ja) データ転送方法
JPH0824320B2 (ja) 通信制御装置における緩衝域連鎖の方法およびその装置
JP2001524707A (ja) コントローラの機能性を高めるためのファームウェアの使用
US6148366A (en) Storage system which transfers a command and data corresponding to said command subsequent to said command
JP4456084B2 (ja) 制御装置およびそのファームウェア活性交換制御方法
JPH0836542A (ja) Dmaコントローラ
JP3477056B2 (ja) データ転送装置
JPS63180153A (ja) キヤツシユ記憶のラインバツク制御方式
JPH0661074B2 (ja) アクセス制御装置、バスの遊休時間を最小化する方法、dma制御装置、及びdmaデータ転送方法
JPH0519181B2 (ja)
JPH10214247A (ja) 外部記憶装置インタフェース
JPH0452848A (ja) ホスト・アダプタ
JPH0743687B2 (ja) データ記憶サブシステム
JPH02299048A (ja) 転送制御方式
JP2848171B2 (ja) Scsiコントローラ
JPH04365153A (ja) ディスクキャッシュシステム
JPH03226851A (ja) キャッシュ制御装置
JP2002269033A (ja) リトライ制御機能を有するアービタを用いたバスシステムおよびシステムlsi
JPH0440534A (ja) 予備装置切換方式
JPH06274440A (ja) Scsiバス制御におけるsave data point処理方法
JPS6393057A (ja) キヤツシユ記憶装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19991207