JPH06236341A - 入出力記憶装置への直接メモリアクセスを行う装置及び方法 - Google Patents

入出力記憶装置への直接メモリアクセスを行う装置及び方法

Info

Publication number
JPH06236341A
JPH06236341A JP4357768A JP35776892A JPH06236341A JP H06236341 A JPH06236341 A JP H06236341A JP 4357768 A JP4357768 A JP 4357768A JP 35776892 A JP35776892 A JP 35776892A JP H06236341 A JPH06236341 A JP H06236341A
Authority
JP
Japan
Prior art keywords
ccb
dma
controller
dma controller
register
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
JP4357768A
Other languages
English (en)
Other versions
JP3433386B2 (ja
Inventor
Martin Sodos
マーティン・ソドス
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06236341A publication Critical patent/JPH06236341A/ja
Application granted granted Critical
Publication of JP3433386B2 publication Critical patent/JP3433386B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

(57)【要約】 【目的】 DMA制御装置の物理的な限界による限度を
CCBを外部メモリに記憶することにより克服した直接
メモリアクセスのシステムを提供し、DMA制御装置を
提供して外部メモリに記憶されたCCBの動的チェーン
化を実現し、更に競合状態の出現を防ぐ動的チェーン化
を実現する。 【構成】 現在CCB内の所定ビットがセットされてい
るとき、DMA制御装置をプログラムして外部メモリの
特定のアドレスを参照する。DMA制御装置は次にメモ
リのその領域でメモリ読取り操作を行って検索したCC
Bを先のCCBにより利用された位置に記憶する。この
過程はDMA操作が完了するビットがリセットされるま
で続けられる。DMAアクセス中にCCBを動的に変更
して柔軟性のある入出力システムを提供できるので動的
チェーン化に容易に対応できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数チャネルDMA操作
を支援する回路アーキテクチャに関する。
【0002】
【従来の技術】直接メモリアクセス(DMA)は周辺装
置(入出力装置)からメモリへ直接あるいは周辺装置間
で直接に交信する方法である。DMAを利用するとCP
Uの介入なくDMA制御装置によりバイトが移動する。
DMA操作を行うには入出力チャネルに、バスの制御を
獲得して装置にアクセスし、そしてメモリ操作を完了し
たことをCPUに通知する入出力ないしDMA制御装置
を設ける。DMA制御装置は、データ位置やデータサイ
ズといったDMA転送の様々な操作パラメータを指定す
るのに使用するチャネル制御ブロック(CCB)ないし
チャネルプログラムにしたがって作動する。
【0003】CCBを使用するとDMAパラメータのD
MAへのより効率的な記憶、転送、実行を行うことが出
来、入出力トランザクションの一部となるページ数に制
限はなくなる。DMA制御装置は、DMA制御装置の主
メモリ内にあるDMAチャネル制御パラメータの所定数
のブロックのチェーンへのポインタを含むデータチェー
ン・レジスタ(DCR)と呼ばれる追加のレジスタを備
えている。DMAパラメータブロック内のフラッグは、
後続ブロックのチェーン化を続けるべきかどうかを示
す。しかし一体にチェーン化できるCCB数はチャネル
制御ブロックを記憶するためにDMA制御装置チップに
割り当てられたメモリ量により限定され、一般に2ない
し3のCCBを記憶する余裕しかない。
【0004】チェーン化を行う別の方法は、DMA制御
装置にメモリとメモリ内に記憶されたマイクロコードを
実行するプロセッサを設けることである。ニューヨーク
州アルモンクのIBM社により製造されたIBM7090、
7080、システム 360といったこの方法を用いるシステム
では、入出力トランザクションは開始入出力(SIO)
命令を発することで開始する。この命令は入出力装置を
作動するためチャネルプログラムを示す有効アドレスを
提供する。次にチャネルプログラムをSIO有効アドレ
スから始まるメモリから取り出す。データのブロック及
びチャネル命令の2種類の情報がチャネルプログラムに
より転送される。チャネル命令には停止命令と飛越し命
令があり、停止命令は入出力トランザクションを完了
し、飛越し命令は実行するチャネルプログラムの次の命
令のアドレスを変更する。
【0005】より強力で柔軟性のある制御装置を提供す
るため、動的チェーン化手法を開発した。動的チェーン
化により入出力コマンドのチャネルプログラムへの「空
中での」チェーン化が可能になる。動的チェーン化を実
現するため、チャネルプログラムの最後の命令の停止命
令前に飛越し命令を挿入することでチャネルプログラム
への付加物を作成する。飛越し命令はチャネルに付け加
えられた入出力コマンドを含むメモリ内の別の位置を示
す。この手法は命令を動的にチェーン化する機能をもた
らすが、コードの実行が変更点に到達する前にマイクロ
コード内の変更を確実に書き込むようにする際の困難さ
から競合状態が生じる。
【0006】
【発明が解決しようとする課題】従って本発明の目的
は、CCBを外部メモリに記憶する直接メモリアクセス
のシステムを提供することである。本発明の更なる目的
は、外部メモリに記憶されたCCBの動的チェーン化を
実現するDMA制御装置を提供することである。本発明
の別の目的は、競合状態の出現を防ぐ動的チェーン化を
実現するDMA制御装置を提供することである。
【0007】
【課題を解決するための手段】本発明のシステムでは、
以前の方法の条件や制限から解放されたより信頼性のあ
る動作を行う動的チェーン化を実現する新しい方法を提
供する。DMA制御装置の物理的制限により課せられて
いた限界は、チャネル制御ブロック(CCB)を外部メ
モリに記憶することで克服する。現在CCB内の所定の
ビットがセットされているとき、DMA制御装置をプロ
グラムして外部メモリの特定のアドレスを参照する。D
MA制御装置は外部メモリのそのアドレスのCCBを検
索し、そのメモリ領域でメモリ操作を行い、検索したC
CBを先のCCBが利用した位置に記憶する。この過程
はDMA操作が完了するビットがリセットされたCCB
に到達するまで続けられる。従って本発明のシステムで
は、DMAアクセス中に単に外部メモリを更新するだけ
でCCBを動的に変更して柔軟性のある入出力システム
を提供できるので動的チェーン化に容易に対応できる。
更にしばしば生じる競合状態を回避できる動的チェーン
化方法を提供する。各々のCCBには待機ビットと称す
る追加状況ビットを設ける。待機ビットがセットされれ
ば、現在CCBに対する転送は完了し、システムは操作
を停止し、待機ビットがリセットされるまで待機する。
これにより所望のCCBをチェーンに追加する十分な時
間を確保できる。CCBを追加すると、待機ビットはリ
セットされ、それにより通常の処理が続けられる。制御
状況レジスタ(CSR)内にあるチャネル操作レジスタ
(COR)内にも停止状況ビットが設けられている。停
止ビットがセットされると、現在のCCBの実行は現在
CCBの待機ビットの状況に関わらず停止される。停止
ビットがリセットされると、通常の処理が続行される。
【0008】
【実施例】以下の説明では、特定の記憶装置、システ
ム、組織、アーキテクチャなどを本発明の完全な理解を
提供するために述べるが、当業者には本発明はそれらの
特定の詳細なしにも実施できることが明かであろう。他
の場合には、本発明を不必要に曖昧なものにしないため
によく知られた回路やシステムをブロック図形式で示
す。
【0009】図1は本発明により作動する一般的なシス
テムを示したものである。バス10は主メモリ15、CPU
20、入出力装置25、30を初めとする複数装置を相互に接
続している。入出力制御装置35、40は実際の装置25、30
への入力と出力を制御するとともにバス10へのインター
フェイスをも行う。入出力制御装置45は追加のメモリ5
0、55と入出力装置60、65が接続された第2のバス12に
取り付けられている。本発明のシステムでは、入出力制
御装置35、40、45にはDMA操作を行うインテリジェン
スを与える。DMA操作の要求に応えて、入出力制御装
置は所定のアドレスのその内部メモリに割り当てられた
スペースにアクセスして操作のチャネル作動パラメータ
を指定するのに用いるCCBにアクセスする。パラメー
タにアクセスすると、入出力制御装置は供給されたパラ
メータにしたがって直接メモリアクセス操作を行う用意
ができる。直接メモリアクセスに関する詳細は、例えば
A.J.バン・デ・グール「コンピュータアーキテクチャと
設計」(出版社:アディソン・ウェスレー、1989年)ペ
ージ317−321を参照の事。
【0010】本発明の図2を参照すると、入出力制御装
置 100にはメモリ 110のような外部記憶装置に記憶され
たチャネル制御ブロック(CCB)を指定しアクセスで
きる手段が設けられている。CCBのチェーンの実行
中、入出力制御装置 100は外部記憶装置 110にアクセス
してCCBを検索し、それを入出力制御装置 100のメモ
リ内のCCB 120に割り当てられた位置に記憶する。そ
の位置は本実施例では制御状況レジスタ(CSR) 125
内にある。引き続いてDMA操作がCCBパラメータに
したがって行われる。操作が完了すると、入出力制御装
置 100は次のCCBがあればそれを検索し、制御状況レ
ジスタ 125内のCCB位置 120に記憶し、全てのCCB
が処理されるまでこのように処理を続ける。従って大量
のCCBを外部記憶装置に記憶してDMA操作実行中に
検索でき、それによりCCB 120に割り当てられた小量
のメモリにより入出力制御装置 100に課せられた限度を
越えて、CPUの介入なく複数のDMA操作を行う手段
をもたらすことによりかなりの処理上の利点を得ること
ができる。
【0011】各々のCCBには追加状況ビットが与えら
れており、入出力制御ロジック 130を変更して追加状況
ビットを検査し、ビットがセットないしリセットされて
いる場合に所定の機能を行う。それらの追加ビットには
チェーンビットがある。チェーンの次の順次のCCBを
検索するために制御装置ロジック 130が読取り操作を外
部メモリに対して行うときにチェーンビットがセットさ
れる。次に検索されたCCBは入出力メモリのCCBの
所定位置に書き込まれ、DMA制御装置によりちょうど
実行されたCCBをオーバーライトする。次に制御装置
は、検索されて制御装置メモリ内のCCBレジスタに書
き込まれたCCBで指定された操作を行う。
【0012】制御装置ロジックは制御装置、特にチップ
制御状況ブロック 140内にある外部メモリアドレス・ポ
インタで示されたアドレスの外部メモリに対する読取り
を行う。外部メモリアドレス・ポインタは外部記憶装置
内にある最初のCCBを示すハード・コード化値とす
る。CCBカウンタ・レジスタ 160は、あるチャネルに
ついて実行されたチェーン内のCCB数のカウントを維
持する。CCBは固定されたサイズであるので、検索す
るCCBの位置はメモリアドレス・ポインタと実行され
るCCB数により判定することができる。代わりに外部
メモリアドレス・ポインタを制御状況レジスタ内のレジ
スタに配置し、増分して外部メモリ内にある次のCCB
のアドレスを反映させることができる。
【0013】外部メモリからCCBを検索した後、制御
装置ロジックは制御状況レジスタブロック内のレジスタ
にある現在CCBをオーバーライトする。CCBのチェ
ーンビットがセットされれば、CCBカウントレジス
タ、あるいは代わりに外部メモリアドレスポインタを増
分して次のCCBを示す。CCBは固定サイズであるの
で、次のCCBのアドレスは、CCBのサイズをかけた
CCBカウントにより増分された第1の外部にあるCC
Bの既知のアドレスから容易に判定することができる。
同様に、別の実施例では、外部メモリアドレスポインタ
を制御装置ロジックにより固定分だけ更新する。
【0014】外部CCBは内部メモリの内部ブロックの
ある同一アドレスにロードされる。その結果、最初のC
CBがオーバーライトされる。従ってDMA操作のチャ
ネルシーケンスの終わりでは、制御装置ロジック 130は
ポインタないしカウンタを外部メモリの最初のアドレス
にリセットし、最初のCCBを制御状況レジスタブロッ
ク内のCCBレジスタに戻す。最初のCCBのコピー
を、外部メモリのチャネル制御数及びチャネル数(複数
チャネルシステムならば)により識別される所定のアド
レスに記憶する。最初のCCBはDMA操作シーケンス
チェーンの終わりに制御状況レジスタに戻すことが出
来、あるいは行う次のDMA操作シーケンスの最初に戻
すことができる。
【0015】図3は別の実施例を示す。スループットを
更に増大するため、制御装置 200の内部メモリをわずか
に増加して第1 220と第2 222のCCBに対応するよう
にする。更にチップ制御状況ビット 240を拡張して現在
CCBを示しているビットを含める。かくして二重バッ
ファ化を行うことができる。二重バッファ化は次のよう
にして行う。図3を参照すると、第1のCCBは第1の
CCBバッファである第1のCCB 220にある。チップ
制御状況ビット 240は、現在CCBが第1のCCB 220
内にあることを示す。制御装置ロジック 230が第1のC
CB 220内にあるCCBにしたがって処理している間、
CCB内のチェーンビットを検出し、メモリ/読取り操
作を実行して次の外部メモリ 210からのCCBを検索す
る。次のCCBはそこで第2のCCB 222に記憶し、チ
ップ制御状況ビット 240は第1のCCB 220内にあるC
CBに関した処理の終わりに更新ないしトグルされて、
現在CCBは第2のCCB 222にあることを反映する。
従って第1のCCB 220に記憶されたチャネル制御に関
した処理の終わりには制御装置ロジックは第2のCCB
222にあるチャネルブロックにしたがって処理を直ちに
始めることができる。制御装置ロジック 230が第2のC
CB 222の制御ブロックにしたがって処理している間、
第1のCCB 220の内容は外部メモリ 210から検索され
た次のCCBで交信できるということになる。従って外
部メモリからCCBを検索するためにメモリ読取り操作
を行うのに必要な時間により後続の転送の開始が遅れる
ことはなく、全体的な転送速度を増大することができ
る。
【0016】各々の入出力制御装置には、制御装置の操
作状況に関する情報とDMA操作を行うため制御装置の
ハード配線ロジック(制御装置ロジック)により参照さ
れる情報を含む制御・状況レジスタ(CSR)が含まれ
ている。制御状況レジスタブロック内には複数のCCB
があり、各々の入出力チャネルに対して1つのCCBが
与えられている。図4は例示的なCCBを示している。
第1のワードには、宛先肯定応答カウンタ(DAC)、
原始肯定応答カウンタ(SAC)、転送カウント(T
C)、原始アドレス自動増分/減分レジスタ(SIN
C)、宛先アドレス自動増分/減分レジスタ(DIN
C)が含まれている。原始及び宛先肯定応答カウンタは
肯定応答ラインを欠如した装置のプログラマブル待ち状
態の指定に利用する。転送カウントレジスタは操作のた
めに転送するバイト数を指定する。SINC及びDIN
Cレジスタはデータのブロックを転送するといった所定
の操作のための自動増分/減分アドレスの値を記憶す
る。
【0017】最初の32ビットにはデータが送られてくる
アドレスを識別するDMA原始アドレスがあり、次の32
ビットにはデータを送るアドレスを識別する宛先アドレ
スがある。次の64ビットにはチャネル制御レジスタ(C
CR)とスレーブ・バースト機能レジスタ(SBSB
C)が含まれる。以下に述べるようにチャネル制御レジ
スタにはチャネルの様々な操作パラメータのビットが含
まれている。SBSDBは転送を要求する特定スレーブ
装置に対してどのバーストサイズが支援されるかを指定
する。初期化/チェーン/待機レジスタ(ICW)に
は、セットされればCCBが外部メモリにあることを示
し、検索して実行するチェーンビットを含む操作を行う
制御ビットが含まれる。レジスタには初期化状況ビット
も含まれる。このビットをセットすると、制御状況レジ
スタに現在ロードされたCCBは最初のCCBとなり、
実行の用意ができる。初期化ビットがセットされなけれ
ば、最初のCCBは制御状況レジスタに現在ロードされ
ておらず、DMA処理を再初期化する前に、最初のCC
Bを制御状況レジスタのCCB・レジスタにロードしな
ければならない。
【0018】ICWレジスタにはまた、後に説明するよ
うにセットされれば、競合状態によりエラーを招くこと
なくCCBのチェーンを動的に構成するためCCB操作
の実行を停止する待機ビットが含まれている。自動アー
ムカウンタ(AAC)は自動アーム・モードで使用して
CCBの繰り返し数を指定する。チャネル・インターリ
ーブ・サイズ・レジスタ(CHILS)は別のチャネル
を転送可能にする前に転送する最大バイト数を指定す
る。チャネル制御レジスタは図5で詳細に述べる。チャ
ネル制御状況ビットを明記すると次のようになる。
【0019】Mo1,Mo0−操作モード 00 - 単一転送 01 - 自動アーム 1x - 自動実行 DXt - DMA Xferタイプ 0 - 制御装置はバス上のDMAマスタ 1 - 制御装置はバス上のDMAスレーブ Sih - 各々の転送後、原始アドレス自動増分/保持 0 - 転送サイズに基づき各々の転送後、原始アドレスを
増分 1 - 原始アドレスを一定に保持 Dih - 各々の転送後、宛先アドレス自動増分/保持 0 - 転送サイズに基づき各々の転送後、宛先アドレスを
増分 1 - 宛先アドレスを一定に保持 Sec - データバス・エンディアン変換(原始) 0 - 大エンディアン 1 - 小エンディアン Dec - データバス・エンディアン変換(宛先) 0 - 大エンディアン 1 - 小エンディアン SaO - 原始アドレスのオーバーライド(分散) 0 - アドレス・オーバーライドなし(通常モード) 1 - 次のCCBに現在原始ベースアドレスを使用 DaO - 宛先アドレスのオーバーライド(収集) 0 - アドレス・オーバーライドなし(通常モード) 1 - 次のCCBに現在宛先ベースアドレスを使用
【0020】Sai - SINCレジスタに記憶された
値を用いて各々のチャネル制送を完了した後、原始アド
レス自動増分/減分 0 - 自動増分/減分不能 1 - 自動増分/減分使用可能 Dai - DINCレジスタに記憶された値を用いて各
々のチャネル制御ブロックの転送を完了した後、宛先ア
ドレス自動増分/減分 0 - 自動増分/減分不能 1 - 自動増分/減分使用可能 Sb1,Sb0 - 原始バスの選択 00 - バス1、非64ビット 01 - バス1、64ビット 10 - バス2 タイプ1 11 - バス2 タイプ2 Db1,Db0 - 宛先バスの選択 00 - バス1、非64ビット 01 - バス1、64ビット 10 - バス2 タイプ1 11 - バス2 タイプ2 SSync - 原始の同期ないし非同期転送を選択 0 - 同期 1 - 非同期 SMU - 原始の多重ないし非多重モードを選択 0 - 非多重 1 - 多重 SPs1,SPs0 - タイプ2装置の原始ポートサイ
ズ(ないしACKが無視されるときはタイプ1装置) 00 - 64ビット 01 - 32ビット 10 - 16ビット 11 - 8ビット
【0021】 DSync - 宛先の同期ないし非同期転送を選択 0 - 同期 1 - 非同期 DMu - 宛先の多重ないし非多重モードを選択 0 - 非多重 1 - 多重 DPs1,DPs0 - タイプ2装置の宛先ポートサイ
ズ(ないしACKが無視されるときはタイプ1装置) 00 - 64ビット 01 - 32ビット 10 - 16ビット 11 - 8ビット Sack1,Sack0 - 原始肯定応答タイプ制御 タイプ2装置についてはこれらのビットは無視され、モ
ード01が常に使用される。これはタイプ2装置では *A
CKラインを使用しないからである。 00 - *ACKラインのみを遵守 01 - CCB内のSACレジスタの値のみを使用、 *A
CKラインは無視 10 - CCB内のSACレジスタの値を使用し、次に *
ACKラインを遵守 11 - *ACKラインを遵守して、次にSACレジスタ
の値を使用 Dack1,Dack0 - 宛先肯定応答タイプ制御 タイプ2装置についてはこれらのビットは無視され、モ
ード01が常に使用される。 00 - *ACKラインのみを遵守 01 - CCB内のDACレジスタの値のみを使用、 *A
CKラインは無視 10 - CCB内のDACレジスタの値を使用し、次に *
ACKラインを遵守 11 - *ACKラインを遵守して、次にDACレジスタ
の値を使用
【0022】動的チェーン化により、処理中にCCBの
チェーンを変更する柔軟性がもたらされる。例えばCC
Bを追加するには、チェーン内の最後のCCBのチェー
ンビットをセットし、追加するCCBをCCBの後の次
の順番のメモリアドレスに書き込む。しかしCCBのチ
ェーンを動的に変更すると競合状態が生じることがあ
る。それらの競合状態は例えば、CCBが動的にCCB
のチェーンに追加されているときに外部メモリからCC
Bにアクセスされたときに生じる。競合状態はまた、C
CBを動的に追加できる前にチェーン内の最後のCCB
に到達したときにも生じることがある。
【0023】動的チェーン化時の競合状態の発生を避け
る革新的な方法と装置を開発した。以下の説明から当業
者には明らかなように、競合状態を予防する本発明の方
法と装置はどの様な動的チェーン化実現にも利用できる
が、本明細書に記載する外部メモリを使用した動的チェ
ーン化の方法と装置と共に使用することが望ましい。
【0024】競合状態を予防するには、動的チェーン化
操作が完了するまでCCBのチェーン化の進展を停止す
ることが必要であり、待機ビットが各々のCCB内に備
えられている。待機ビットを検出すると、制御装置ロジ
ックは現在CCBの操作の実行を完了するが、そのビッ
トがリセットされるまで後続のDMA操作の実行を停止
する。これにより現在チェーンに対してCCBを動的に
追加ないし変更して競合状態故にエラーを招くことなく
DMA操作を変更する機会がもたらされる。追加のDM
A操作をチェーン化ないしCCBのチャネル内の特定位
置のCCBを挿入ないし除去することが望ましいとき
は、ブロックを追加ないし除去する位置の前のCCB内
にCPUにより待機ビットがセットされる。次にCCB
の追加ないし削除が行われ、待機ビットがリセットさ
れ、その時に制御装置ロジックはCCBにより指定され
たDMA操作の処理を続けることができる。
【0025】上述したように本実施例では待機ビットは
CCBのISWレジスタ内にある。更に停止ビットの追
加状況ビットは、チャネル操作レジスタ(COR)( 1
50、図2)にある制御状況レジスタ( 125、図2)内に
設けるようにする。このビットをセットすることで特定
のCCBを参照することなく操作を停止できる。停止ビ
ットは各々のCCB内にある待機ビットと共にあるいは
除外して使用することができる。多重チャネル制御装置
では、各々のチャネルに1つづつの複数の停止ビットが
与えられており、それによりチャネル操作の全て、ある
いは一部を停止する単純な手法が与えられている。停止
ビットをリセットすると操作を続行することができる。
【0026】図6の流れ図に示す動的チェーン化例は、
DMA操作をCCBのチェーンの終わりに追加するもの
である。これを行うには、CPUないし入出力制御装置
をプログラムする能力を持つ他の装置で外部メモリにア
クセスし、外部メモリ内にあるチェーン内の最後のCC
Bの待機ビットを事前にセットされていなければセット
する(ステップ 300)。動的チェーン化が生じるようで
あれば待機ビットを事前にセットすることができる。待
機ビットを事前にセットすることで、追加CCBを動的
にチェーン化する前に位置をオーバーランする危険を回
避することができる。最後のCCBが現在入出力制御装
置の制御状況レジスタ内にあるならば(ステップ 31
0)、そしてチェーンのDMA操作が完了したならば
(ステップ 330)、動的チェーン化操作は行うことがで
きず、CCBを別のチェーンとして実行するなどの別の
過程を行わなければならない。処理は制御装置ロジック
がセットされた待機ビットを検出するまで続けられて、
操作が停止する。次にCPUは外部メモリ内の最後のC
CBの直後のメモリに新しいCCBを書き込む(ステッ
プ340)。追加CCBが追加される可能性があるので新
しく追加されたCCBのチェーンと待機ビットは事前に
セットするようにする。
【0027】書込み操作を完了すると、待機ビットは外
部メモリと制御状況レジスタ(操作が停止されれば)の
両方にあるCCBでリセットされ(ステップ 350)、そ
れにより処理が再開され(ステップ 370)、動的チェー
ン化が達成される。最初に待機ビットをセットすること
で、制御装置ロジックはセットされた待機ビットを有す
るCCBを越えて処理しないので競合状態(オーバーラ
ン)をなくすことができる。更に制御装置ロジックはセ
ットされた待機ビットを有するCCBの最後まで処理を
続けることが出来、それにより動的チェーン化の処理オ
ーバーヘッドを最小にし、高いスループットを維持でき
る。
【0028】現在指定されたCCBのチェーン内にCC
Bを追加することもできる。図7に明らかにする以下の
例示で反復的チェーン、すなわちチェーンの完了後、チ
ェーンの最上部に回帰するチェーンに関した過程を説明
する。本発明の過程は反復的チェーンに限定はされず、
過程は非反復的チェーンにも等しく適用することができ
る。図7を参照すると、CCBの位置の直前のチェーン
にあるCCBの待機ビットをセットする(ステップ 41
0)。ステップ 415では、現在処理しているCCBの位
置をCCBが追加される位置と比較する。現在処理して
いるCCBがチェーン内で「低い」場合は、システムは
新しいCCBをメモリに書き込む前に、操作がチェーン
の最上部に回帰するまで待機する。現在処理しているC
CBがCCBを追加するチェーン内の位置より上にあれ
ば、システムはセットされた待機ビットを検出すると処
理を停止するので、CCBをすぐに追加することができ
る。次に外部メモリが更新されて新しいCCBを追加す
る(ステップ 420)。これはセットされた待機ビットを
有するCCBのすぐ後のメモリ・アドレスに新しいCC
Bを書込み、残りの後続のCCBを1つのCCBのサイ
ズにより増分された各々の以前のアドレスに対応する新
しいアドレス位置に再書込みすることにより行うことが
できる(ステップ 425)。代わりにCCBを後続のメモ
リ・アドレスに書込み、新しいCCBが所望のシーケン
スで実行されるようにそのアドレスにポインタ・メカニ
ズムを設けることで外部メモリを更新することができ
る。そのチェーンを更新すると、外部待機ビットがリセ
ットされ(ステップ 430)、その後内部待機ビットがリ
セットされ(ステップ 440)、処理が続けられる(ステ
ップ450)。
【0029】図8の流れ図に示す動的チェーン化操作の
他の例は、CCBのアクティブチェーンからCCBを除
去する場合である。図8はCCBをCCBの反復的チェ
ーンから取り除く過程を示している。1つないし複数の
CCBの除去は最初に除去するCCBの直前の外部CC
Bに待機ビットをセットすることで行うことができる
(ステップ 510)。ステップ 515では、システムは現在
処理しているCCBの位置に関して取り除くCCBのチ
ェーン内の位置を判定する。必要に応じてCCB処理が
取り除くCCBの位置の「上」ないし前になるまでシス
テムは待機する。次にCCBが外部メモリから取り除か
れる(ステップ 520)。CCBのチェーンで不連続性が
ないように取り除かれたCCBのすぐ後のCCBのアド
レスを示すために外部メモリにポインタ・メカニズムを
持たせてることができる。代わりにステップ 525で、取
り除かれたCCBの後にそのCCBを連続メモリアドレ
ス内の外部メモリに再書込みを行う。CCBのチェーン
の更新が行われた後、外部メモリ内にあるCCB内の待
機ビットが最初にリセットされ(ステップ 530)、制御
状況レジスタ内のCCB内の待機ビットがリセットされ
て(ステップ 540)処理が続けられる(ステップ 55
0)。
【0030】本発明を実施例に付いて説明したが、以上
の説明から当業者には様々な変形や用途が明らかであろ
う。特に当業者は、本明細書に説明した概念の外部CC
Bの透明チェーン化と動的チェーン化操作の時の競合状
態の予防は互いに使用することができるが、互いに排他
的に使用することもでき、それによっても本明細書に説
明した目的や改善を達成することができることを理解し
よう。
【図面の簡単な説明】
【図1】 本発明による例示的なシステムを示したブロ
ック図である。
【図2】 本発明のシステムの実施例を示すブロック図
である。
【図3】 本発明のシステムの他の実施例を示すブロッ
ク図である。
【図4】 チャネルの様々な操作パラメータを指定する
のに使用するCCBレジスタを示す図である。
【図5】 チャネルの様々な操作パラメータを指定する
のに使用するCCBレジスタを示す図である。
【図6】 動的チェーン化操作中の競合状態を防ぐ本実
施例を示す流れ図である。
【図7】 動的チェーン化操作中の競合状態を防ぐ本実
施例を示す流れ図である。
【図8】 動的チェーン化操作中の競合状態を防ぐ本実
施例を示す流れ図である。
【符号の説明】
110・・・メモリ、130・・・制御装置ロジック、
140・・・チップ制御状況

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 CPU、メモリ、入出力記憶装置からな
    るコンピュータシステムで入出力記憶装置への直接メモ
    リアクセスを行う装置において、 直接メモリアクセス(DMA)操作を行うDMA制御装
    置であって、そのDMA制御装置は制御装置ロジックと
    DMA制御装置により行われる操作を指定するDMA転
    送パラメータを識別するチャネル制御ブロック(CC
    B)を含みDMA制御装置によりアクセスされる第1の
    チャネル制御ブロック・レジスタとからなり、前記DM
    A制御装置ロジックは前記CCBにしたがって操作を行
    い、前記CCBはセットされていれば後続の操作は別の
    CCBにより指定されるように行うことをDMA制御装
    置ロジックに示すチャネル状況ビットを含み、前記第1
    のチャネル制御ブロックレジスタは最初に第1のチャネ
    ル制御ブロックを記憶するものであるDMA制御装置
    と、 第1のCCBに続いて処理する少なくとも1つの後続の
    CCBを含むDMA制御装置外の入出力記憶装置と、 DMA制御装置ロジックに接続され、遂行するDMA操
    作に関する状況を提供するチップ制御状況ブロックであ
    って、そのチップ制御状況ブロックは、処理する次のC
    CBのDMA制御装置外の入出力記憶装置内のアドレス
    を識別する外部メモリアドレス・ポインタを含み、その
    外部メモリアドレス・ポインタは入出力記憶装置内のC
    CBへの各々のアクセスの後に増分され、処理するCC
    Bのチェーン内の次のCCBを示すチップ制御状況ブロ
    ックと、 を備え、前記DMA制御装置は外部メモリアドレス・ポ
    インタにより示されたアドレスの外部入出力記憶装置を
    読取り、CCBレジスタ内に読み取ったCCBを記憶
    し、CCBを処理して第1のCCBレジスタにあるCC
    Bにしたがって操作を行い、 それによりDMA制御装置はDMA制御装置で必要とさ
    れるメモリ量を増加せずにCCBのチェーンにより指定
    された操作チェーンを行う行うことを特徴とする入出力
    記憶装置への直接メモリアクセスを行う装置。
  2. 【請求項2】 CPU、メモリ、入出力記憶装置及び入
    出力記憶装置に関してDMA操作を行う直接メモリアク
    セス(DMA)制御装置を有するコンピュータシステム
    で、入出力記憶装置への直接メモリアクセスを行う方法
    において、 DMA制御装置内に、DMA制御装置により処理されD
    MA制御装置により行われる操作を指定するDMA転送
    パラメータを識別する第1のチャネル制御ブロック(C
    CB)を含む第1のチャネル制御ブロック(CCB)レ
    ジスタを設け、 セットされたときは別のCCBが後に処理されることを
    DMA制御装置に示すチェーンビットをCCB内に設
    け、 入出力記憶装置内のアドレスを識別する外部メモリアド
    レス・ポインタを処理すべき次のCCBのDMA制御装
    置に設け、 CCBレジスタ内のCCBにより指定された操作を行
    い、 チェーン状況ビットを読取り、 操作の遂行の完了時にチェーンビットがセットされてい
    る場合は、外部メモリ・ポインタにより指定されるアド
    レスで外部入出力記憶装置から次の後続のチャネル制御
    ブロックを検索し、 CCBレジスタ内の次のCCBを記憶し、 外部メモリ・ポインタ内のアドレスを増分して、処理す
    る外部入出力記憶装置内の次のCCBを示し、 CCBレジスタ内にある後続のチャネル制御ブロックを
    処理し、 それによりDMA制御装置で必要とされるメモリを増大
    せずにチャネル制御ブロックのチェーン化を達成する入
    出力記憶装置への直接メモリアクセスを行う方法。
JP35776892A 1991-12-30 1992-12-25 入出力記憶装置への直接メモリアクセスを行う装置及び方法 Expired - Fee Related JP3433386B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US815802 1991-12-30
US07/815,802 US5367639A (en) 1991-12-30 1991-12-30 Method and apparatus for dynamic chaining of DMA operations without incurring race conditions

Publications (2)

Publication Number Publication Date
JPH06236341A true JPH06236341A (ja) 1994-08-23
JP3433386B2 JP3433386B2 (ja) 2003-08-04

Family

ID=25218875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35776892A Expired - Fee Related JP3433386B2 (ja) 1991-12-30 1992-12-25 入出力記憶装置への直接メモリアクセスを行う装置及び方法

Country Status (3)

Country Link
US (1) US5367639A (ja)
JP (1) JP3433386B2 (ja)
KR (1) KR930014060A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067242A (ja) * 2012-09-26 2014-04-17 Nec Corp チャネル装置、情報処理装置、コンピュータシステム、データ転送制御方法、および、コンピュータ・プログラム
US9886411B2 (en) 2013-04-10 2018-02-06 Mitsubishi Electric Corporation Data transfer device and data transfer method

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3549003B2 (ja) * 1993-08-31 2004-08-04 株式会社日立製作所 情報送出装置および情報送出/受信システム
DE69435090T2 (de) * 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5708849A (en) * 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
US5613163A (en) * 1994-11-18 1997-03-18 International Business Machines Corporation Method and system for predefined suspension and resumption control over I/O programs
US5644784A (en) * 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
US5826106A (en) * 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
US5968143A (en) * 1995-12-13 1999-10-19 International Business Machines Corporation Information handling system for transfer of command blocks to a local processing side without local processor intervention
US5713044A (en) * 1995-12-19 1998-01-27 Intel Corporation System for creating new group of chain descriptors by updating link value of last descriptor of group and rereading link value of the updating descriptor
US5758187A (en) * 1996-03-15 1998-05-26 Adaptec, Inc. Method for enhancing performance of a RAID 1 read operation using a pair of I/O command blocks in a chain structure
US5768621A (en) * 1996-03-15 1998-06-16 Adaptec, Inc. Chain manager for use in executing a chain of I/O command blocks
US5797034A (en) * 1996-03-15 1998-08-18 Adaptec, Inc. Method for specifying execution of only one of a pair of I/O command blocks in a chain structure
US5812877A (en) * 1996-03-15 1998-09-22 Adaptec, Inc. I/O command block chain structure in a memory
US5790397A (en) 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6041060A (en) * 1997-04-30 2000-03-21 International Business Machines Corporation Communications cell scheduler and scheduling method for providing periodic activities
US6157970A (en) * 1997-09-24 2000-12-05 Intel Corporation Direct memory access system using time-multiplexing for transferring address, data, and control and a separate control line for serially transmitting encoded DMA channel number
US6119189A (en) * 1997-09-24 2000-09-12 Intel Corporation Bus master transactions on a low pin count bus
US5991841A (en) * 1997-09-24 1999-11-23 Intel Corporation Memory transactions on a low pin count bus
US6199121B1 (en) 1998-08-07 2001-03-06 Oak Technology, Inc. High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
US20030229733A1 (en) * 2002-06-05 2003-12-11 Hepner David Frank DMA chaining method, apparatus and system
DE10300030A1 (de) * 2003-01-03 2004-07-22 Micronas Gmbh DMA-Modul und Betriebsverfahren hierfür
JP2006259898A (ja) * 2005-03-15 2006-09-28 Toshiba Corp I/oコントローラ、信号処理システム、およびデータ転送方法
CN1941015B (zh) * 2005-09-30 2011-08-24 西门子(中国)有限公司 一种分布式监控方法
US8117475B2 (en) * 2006-12-15 2012-02-14 Microchip Technology Incorporated Direct memory access controller
CN101558396B (zh) * 2006-12-15 2011-12-14 密克罗奇普技术公司 直接存储器存取控制器
US9141572B2 (en) * 2006-12-15 2015-09-22 Microchip Technology Incorporated Direct memory access controller
US7657792B2 (en) * 2006-12-28 2010-02-02 International Business Machines Corporation Identifying race conditions involving asynchronous memory updates
US7925807B2 (en) * 2008-05-27 2011-04-12 Microsoft Corporation Dynamic microcode for non-volatile memory

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58225422A (ja) * 1982-06-25 1983-12-27 Toshiba Corp デ−タ制御装置
US4837677A (en) * 1985-06-14 1989-06-06 International Business Machines Corporation Multiple port service expansion adapter for a communications controller
US4797812A (en) * 1985-06-19 1989-01-10 Kabushiki Kaisha Toshiba System for continuous DMA transfer of virtually addressed data blocks
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
US5251312A (en) * 1991-12-30 1993-10-05 Sun Microsystems, Inc. Method and apparatus for the prevention of race conditions during dynamic chaining operations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067242A (ja) * 2012-09-26 2014-04-17 Nec Corp チャネル装置、情報処理装置、コンピュータシステム、データ転送制御方法、および、コンピュータ・プログラム
US9886411B2 (en) 2013-04-10 2018-02-06 Mitsubishi Electric Corporation Data transfer device and data transfer method

Also Published As

Publication number Publication date
JP3433386B2 (ja) 2003-08-04
KR930014060A (ko) 1993-07-22
US5367639A (en) 1994-11-22

Similar Documents

Publication Publication Date Title
JP3433386B2 (ja) 入出力記憶装置への直接メモリアクセスを行う装置及び方法
US5251312A (en) Method and apparatus for the prevention of race conditions during dynamic chaining operations
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
JPH0827707B2 (ja) Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置
US9442873B2 (en) Direct memory access controller
JPH05173932A (ja) データ転送装置
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
WO2008020389A2 (en) Flash memory access circuit
US6782463B2 (en) Shared memory array
KR20060028705A (ko) 재 어드레스 가능한 가상 dma 제어 및 상태 레지스터들
US20120254552A1 (en) Memory access remapping
US5546560A (en) Device and method for reducing bus activity in a computer system having multiple bus-masters
JPS5856277A (ja) 情報処理装置ならびに方法
JP2000040057A (ja) 計算機システム、バッファ制御装置及び転送方法
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JPS6230108Y2 (ja)
JPS6336021B2 (ja)
JPS59231665A (ja) デイスク制御装置
JPH06110823A (ja) バス変換システムおよびバッファ装置
JPH01114952A (ja) 情報処理装置におけるメモリ間転送方式
JPH01261763A (ja) Dma転送制御装置
JPH09305536A (ja) バス転送方法及びそのための情報処理装置
JPH0136198B2 (ja)
JPH02252022A (ja) 先入れ先出し記憶装置

Legal Events

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