JP3433385B2 - 入出力装置に対して実行すべき直接メモリアクセス動作を動的に連鎖する装置及び方法 - Google Patents
入出力装置に対して実行すべき直接メモリアクセス動作を動的に連鎖する装置及び方法Info
- Publication number
- JP3433385B2 JP3433385B2 JP35643092A JP35643092A JP3433385B2 JP 3433385 B2 JP3433385 B2 JP 3433385B2 JP 35643092 A JP35643092 A JP 35643092A JP 35643092 A JP35643092 A JP 35643092A JP 3433385 B2 JP3433385 B2 JP 3433385B2
- Authority
- JP
- Japan
- Prior art keywords
- ccb
- chain
- external memory
- dma controller
- memory
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Description
し、さらに詳細にはI/O同士又はI/Oからメモリな
どの通信をCPUを介さずに直接行うようにしたものに
関する。
(入出力)装置からメモリへの直接通信又は周辺装置間
の直接通信のための方法である。DMAを利用すると、
バイトはDMA制御装置によりCPUの介入なしに移動
される。DMA動作を実行するために、入出力チャネル
に、バス(又は複数のバス)の制御を獲得し、装置をア
クセスし且つメモリ動作が完了したことをCPUに通知
する入出力制御装置又はDMA制御装置を設ける。DM
A制御装置は、データ記憶場所及びデータサイズなどの
DMA転送の様々な動作パラメータを指定するために使
用されるチャネル制御ブロック(CCB)又はチャネル
プログラムのいずれかに従って動作する。
記憶、DMAチャネルへの転送及び実行の効率はさらに
向上し、また、入出力トランザクションの一部を成すべ
きページの数は制限されない。DMA制御装置はデータ
チェーンレジスタ(DCR)と呼ばれる追加レジスタを
具備しており、このレジスタはDMA制御装置の主メモ
リに記憶されている所定数のDMAチャネル制御パラメ
ータのブロックから成るチェーンを指示するポインタを
記憶する。DMAパラメータブロック中のフラグは、後
続ブロックへの連鎖を継続すべきか否かを指定する。と
ころが、一体に連鎖しうるチャネル制御ブロックの数は
チャネル制御ブロックを記憶するためにDMA制御装置
チップ上で割当てられるメモリの量によって制限され、
通常、2つ又は3つのチャネル制御ブロックを記憶する
のに十分な余地しかない。
制御装置にメモリと、メモリに記憶されているマイクロ
コードを実行するためのプロセッサとを設けるというも
のである。ニューヨーク州アーモンクのInterna
tional Business Machinesが
製造しているIBM 7090,7080及びSyst
em 360などのこの方法を採用したシステムにおい
ては、入出力開始(SIO)命令を発行することにより
入出力(I/O)トランザクションを開始する。この命
令は、入出力装置を動作させるためのチャネルプログラ
ムを指示する有効アドレスを提供する。次に、メモリか
らSIO有効アドレスで始まるチャネルプログラムを取
出す。チャネルプログラムはデータのブロックと、チャ
ネル命令という2つの型の情報を転送する。チャネル命
令は停止命令と、飛越し命令とを含む。停止命令は入出
力トランザクションを完了させ、飛越し命令は実行すべ
きチャネルプログラムの次の命令のアドレスを変更す
る。
ために、動的連鎖方式が開発された。動的連鎖は入出力
指令をチャネルプログラムにオンザフライ式連鎖させる
ことができる。動的連鎖を実行するために、チャネルプ
ログラムの最後の命令である停止命令の前に飛越し命令
を挿入することにより、チャネルプログラムの補遺を作
成する。飛越し命令は、チェーンに追加される入出力命
令を記憶しているメモリ中の別の記憶場所を指示する。
この方式は命令を動的に連鎖する能力を与えるが、マイ
クロコードの変更をコードの実行が変更の箇所に到達す
る前に確実に書込むように保証するのが困難であるため
に、競合条件が発生する。
は、チャネル制御ブロックを外部メモリに記憶するよう
な直接メモリアクセスのシステムを提供することであ
る。本発明の目的は、外部メモリに記憶されているチャ
ネル制御ブロックの動的連鎖を実現するためのDMA制
御装置を提供することである。本発明の目的は、競合条
件の発生を阻止するように動的連鎖を実現するためのD
MA制御装置を提供することである。
従来の方法の条件や制限がなく、より確実に動作を実行
する新たな動的連鎖の実現方法を提供する。DMA制御
装置の物理的制限によって課される限界を克服するため
に、チャネル制御ブロックを外部メモリに記憶する。D
MA制御装置は、現在チャネル制御ブロック中の所定の
ビットがセットされたときに外部メモリの特定のアドレ
スを参照するようにプログラムされている。DMA制御
装置は外部メモリのそのアドレスにあるチャネル制御ブ
ロックを検索し、メモリのその領域に対してメモリ動作
を実行して、検索したチャネル制御ブロックを先行チャ
ネル制御ブロックが先に利用していた記憶場所に記憶す
る。このプロセスは、ビットがリセットされているチャ
ネル制御ブロックに到達するまで続き、そのブロックに
到達した時点でDMA動作は完了する。このように、本
発明のシステムでは、チャネル制御ブロックをDMAア
クセス中に動的に変更できるので、動的連鎖に容易に適
応でき、単に外部メモリを更新するだけで自在性に富む
入出力システムが得られるのである。
るような動的連鎖の方法が提供される。各チャネル制御
ブロックには、待ちビットと呼ばれる追加状態ビットが
設けられている。待ちビットがセットされているとき
は、現在CCBについて転送は完了しており、システム
は動作を中断し、待ちビットがリセットされるまで待
つ。これにより、チェーンに所望のCCBを追加するの
に十分な時間が確保される。CCBを追加したならば、
待ちビットをリセットし、そこで正規の処理を続けてゆ
く。制御状態レジスタ(CSR)の中に配置されたチャ
ネル動作レジスタ(COR)には、中断状態ビットも設
けられている。中断ビットがセットされているときは、
現在CCBの待ちビットの状態とは無関係に現在CCB
の実行を中断する。中断ビットがリセットされたなら
ば、正規の処理を継続する。以下の説明を参照すれば、
本発明の目的,特徴及び利点は当業者には自明であろ
う。
めに、説明の便宜上、特定の記憶装置、システム編成、
アーキテクチャなどを記載するが、そのような特定の詳
細な事項がなくとも本発明を実施しうることは当業者に
は明白であろう。また、場合によっては、本発明を無用
にわかりにくくしないために、周知の回路やシステムを
ブロック線図の形態で示すこともある。
を図1に示す。バス10は主メモリ15と、CPU20
と、入出力装置25及び30とを含む複数の装置を相互
に接続する。入出力制御装置35,40はバス10に対
してインタフェースを構成すると共に、実際の入出力装
置25,30に制御入力及び制御出力を供給する。さら
に入出力制御装置45は第2のバス12に接続してお
り、そのバス12には追加メモリ50,55と、入出力
装置60,65が接続している。本発明のシステムで
は、入出力制御装置35,40,45はDMA動作を実
行するための知能を与えられている。DMA動作を実行
すべきであるという要求に応答して、入出力制御装置
は、その動作に要するチャネルの動作パラメータを指定
するために使用されるチャネル制御ブロックをアクセス
するために、装置の内部メモリの中で割当てられている
スペースの所定のアドレスをアクセスする。パラメータ
をアクセスしたならば、入出力制御装置は供給されるパ
ラメータに従って直接メモリアクセス動作を実行できる
状態になる。直接メモリアクセスの詳細については、た
とえば、A.J.vande GoorのComput
er Architecture and Desig
n(Addison−Wesley,Publishe
rs,1989年刊)の317〜321ページを参照。
は、入出力制御装置100の中に、メモリ110などの
外部記憶装置に記憶されているチャネル制御ブロック
(CCB)を指定し且つそのアクセスをイネーブルする
ための手段を設ける。CCBのチェーンの実行中、入出
力制御装置100は1つのチャネル制御ブロックを検索
するために外部記憶装置110をアクセスし、そのチャ
ネル制御ブロックをチャネル制御ブロック用として割当
てられた入出力制御装置100のメモリ内の記憶場所1
20に記憶する。好ましい実施例では、この記憶場所1
20は制御状態レジスタ(CSR)125の中に位置し
ている。その後、チャネル制御ブロックパラメータに従
ってDMA動作を実行する。動作が完了したならば、入
出力制御装置100は次のチャネル制御ブロックを−そ
れが存在すれば−検索し、そのブロックをCSR125
のCCB記憶場所120に記憶し、全てのチャネル制御
ブロックを処理し終わるまでこのようにして処理を続け
る。このように、多数のチャネル制御ブロックを外部記
憶装置に記憶させておき、DMA動作の実行中にブロッ
クを検索することができるので、CCB記憶場所120
として割当てられているメモリの量が少ないことにより
入出力制御装置100に課されていた制限を克服でき、
CPUの介在なしに複数のDMA動作を実行する手段を
設けることによって、処理に際して多大な利点が得られ
る。
いる。入出力制御装置論理130はそれらの追加状態ビ
ットを検査し、ビットがセット/リセットされていれば
所定の機能を実行するように変形されている。それらの
追加ビットの中にチェーンビットがある。チェーンビッ
トは、チェーンの次に続くチャネル制御ブロックを検索
するために制御装置論理130が外部メモリに対して読
取り動作を実行すべき場合にセットされる。次に、検索
したCCBを入出力制御装置のメモリの所定のCCB記
憶場所に書込み、DMA制御装置が実行したばかりのC
CBの上に重ね書きする。次に、制御装置は、検索さ
れ、制御装置のメモリ中のCCBレジスタに書込まれた
CCBにより指定される動作を実行する。
はチップ制御状態ブロック140の中に配置されている
外部メモリアドレスポインタが指示するアドレスに対し
て外部メモリの読取りを実行する。外部メモリアドレス
ポインタは、外部記憶装置の中に位置する第1のCCB
を指示するハードコード化値である。CCBカウンタレ
ジスタ160は、1つのチェーンについて実行されたチ
ェーン中のCCBの数のカウントを維持する。CCBの
サイズは一定であるので、検索すべきCCBの場所をメ
モリアドレスポインタと、実行したCCBの数とに従っ
て確定して良い。あるいは、外部メモリアドレスポイン
タをCSR中の1つのレジスタに記憶させておき、外部
メモリにある次のCCBのアドレスを表すために、ポイ
ンタを増分することも可能である。
索した後、制御装置論理はCSRブロックの中のレジス
タに記憶されている現在チャネル制御ブロックの上に重
ね書きする。CCBのチェーンビットがセットされる
と、CCBカウントレジスタ、あるいは外部メモリアド
レスポインタは次のチャネル制御ブロックを指示するた
めに増分される。CCBのサイズは一定であるので、次
のCCBのアドレスは、外部に第1に位置しているCC
Bの既知のアドレスをCCBカウントにより増分し、そ
れにCCBのサイズを乗算したものから容易に確定され
る。同様に、もう1つの実施例では、外部メモリアドレ
スポインタを制御装置論理により一定量だけ更新する。
のと同じアドレスの内部メモリにロードされる。その結
果、初期CCBは重ね書きされることになる。従って、
DMA動作のチェーンシーケンスの終了時には、制御装
置論理130はポインタ又はカウンタを外部メモリの初
期アドレスにリセットし、初期チャネル制御ブロックを
CSRブロック中のCCBレジスタに復元させる。外部
メモリの、チャネル制御番号及びチャネル番号(多重チ
ャネルシステムの場合)を従って識別される所定のアド
レスに、初期チャネル制御ブロックのコピーを記憶する
のが好ましい。DMA動作のチェーンシーケンスの終了
時、あるいは開始すべきDMA動作の次のシーケンスの
開始時に初期チャネル制御ブロックをCSRに復元させ
ることができる。
に向上させるために、制御装置200の内部メモリを第
1のチャネル制御ブロック220と、第2のチャネル制
御ブロック222とを受入れるようにわずかに拡大させ
ている。加えて、現在チャネル制御ブロックを指示する
ためのビットを取入れるために、チップ制御状態ビット
240を拡張している。このようにして、二重緩衝を実
行しても良い。図3を参照すると、第1のチャネル制御
ブロックは第1のチャネル制御ブロックバッファである
CCB1 220に記憶される。チップ制御状態ビット2
40は、現在チャネル制御ブロックがCCB1 220に
あることを指示すると考えられる。制御装置論理230
がCCB1 220に記憶されているチャネル制御ブロッ
クに従って処理している間、CCB中のチェーンビット
を検出すると共に、外部メモリ210から次のチャネル
制御ブロックを検索するためにメモリ/読取り動作を実
行することができる。続いて、次のCCBをCCB2 2
22に記憶し、CCB1 220に記憶されているチャネ
ル制御ブロックに関する処理の終了時に、現在チャネル
制御ブロックがCCB2 222にあることを表すため
に、チップ制御状態ビット240を更新又はトグルす
る。従って、CCB1 220に記憶されているチャネル
制御ブロックに関わる処理の終了時には、制御装置論理
はCCB2 222に記憶されているチャネル制御ブロッ
クに従って直ちに処理を開始することができる。それに
引続いて、制御装置論理230がCCB2 222のチャ
ネル制御ブロックに従って処理を実行している間には、
CCB1 220の内容を外部メモリ210から検索した
次のチャネル制御ブロックによって更新することができ
る。このように、外部メモリからチャネル制御ブロック
を検索するためにメモリ読取り動作を実行するのに要す
る時間によって後続する転送の開始が遅れることはない
ので、総転送速度は増すのである。
に関する情報と、DMA動作を実行するために制御装置
のハードウェア論理(制御装置論理)が参照する情報と
を記憶する制御/状態レジスタ(CSR)ブロックを含
む。CSRブロックの中には複数のチャネル制御ブロッ
ク(CCB)があり、入出力チャネルごとに1つのCC
Bが存在している。チャネル制御ブロックの1例を図4
に示す。第1の語は宛先肯定応答カウンタ(DAC)
と、ソース肯定応答カウンタ(SAC)と、転送カウン
ト(TC)と、ソースアドレス自動インクレメント/デ
クレメントレジスタ(SINC)と、宛先アドレス自動
インクレメント/デクレメントレジスタとを含む。ソー
ス肯定応答カウンタと宛先肯定応答カウンタは、肯定応
答線を欠く装置のプログラム可能待ち状態指定のために
利用される。転送カウントレジスタは動作のために転送
すべきバイトの数を指定する。SINCレジスタとDI
NCレジスタは、データのブロックを転送するなどの所
定の動作についてアドレスを自動増分/減分するための
値を記憶する。
ドレスを識別するDMAソースアドレスを含み、次の3
2ビットはデータが転送されて行くアドレスを識別する
宛先アドレスを含む。続く64ビットはチャネル制御ブ
ロック(CCR)と、スレーブバースト能力レジスタと
を含む。以下に説明するが、CCRはチャネルの様々な
動作パラメータを表すビットを含む。SBSDBは、転
送を要求する特定のスレーブ装置に関してどのバースト
サイズが支援されるかを指定する。初期設定/チェーン
/待ちレジスタ(ICW)は、セットされたときにはC
CBが外部メモリに記憶されており、そのCCBを検索
し、実行すべきであることを指示するチェーンビットを
含めて、動作を実行するための制御ビットを記憶する。
このレジスタは初期設定状態ビットをさらに含む。この
ビットがセットされているときには、その時点でCSR
にロードされているCCBが初期CCBであり、それを
実行できる状態にある。初期設定ビットがセットされて
いない場合には、初期CCBはその時点でCSRにロー
ドされておらず、DMAプロセスを再開できるようにす
る前に、CSRのCCBレジスタに初期CCBをロード
しなければならない。
しており、以下に説明する通り、このビットは、セット
されているとき、競合条件に起因する誤りを招かずにC
CBのチェーンを動的に構成するためにCCBの実行を
中断する。
ームモードにおいてCCBに関わる繰返しの回数を指定
するために使用される。チャネルインタリーブサイズレ
ジスタ(CHILS)は、別のチャネルを転送可能にす
る前に転送すべきバイトの最大数を指定する。チャネル
制御レジスタについては図5に詳細に示す。
る: Mo1,Mo0−動作モード 00−単一転送 01−自動アーム 1x−自動実行 DXt−DMA転送型 0−制御装置はバスにおけるDMAマスターである 1−制御装置はバスにおけるDMAスレーブである Sih−転送終了ごとのソースアドレス自動インクリメ
ント/保持 0−転送サイズに基づいて転送終了ごとにソースアドレ
スを増分する 1−ソースアドレスを一定に保持する Dih−転送終了ごとの宛先アドレス自動インクリメン
ト/保持 0−転送サイズに基づいて転送終了ごとに宛先アドレス
を増分 1−宛先アドレスを一定に保持 Sec−データバスエンディアン変換(ソース) 0−BIG−エンディアン 1−LITTLE−エンディアン Dec−データバスエンディアン変換(宛先) 0−BIG−エンディアン 1−LITTLE−エンディアン Sa0−ソースアドレスオーバライド(分散) 0−アドレスオーバライドなし(正規モード) 1−次のCCBに対して現在ソース基底アドレスを使用
する Da0−宛先アドレスオーバライド(収集) 0−アドレスオーバライドなし(正規モード) 1−次のCCBに対して現在宛先基底アドレスを使用す
る Sai−SINCレジスタに記憶されている値を使用し
てCCB転送が完了するたびにソースアドレスを自動イ
ンクリメント/デクリメント 0−自動インクリメント/デクリメントディスエーブル 1−自動インクリメント/デクリメントイネーブル Dai−DINCレジスタに記憶されている値を使用し
てCCB転送が完了するたびに宛先アドレスを自動イン
クリメント/デクリメント 0−自動インクリメント/デクリメントディスエーブル 1−自動インクリメント/デクリメントイネーブル Sb1,Sb0−ソースバス選択 00−バス1,非64ビット 11−バス1,64ビット 10−バス2型1 11−バス2型2 Db1,Db0−宛先バス選択 00−バス1,非64ビット 11−バス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ビット DSync−宛先に関して同期転送又は非同期転送を選
択する 0−同期 1−非同期 DMu−宛先に関して多重化モード又は非多重化モード
を選択する 0−非多重化 1−多重化 DPs1,DPs0−型2の装置(又はACKが無視さ
れたときには型1の装置)に関する宛先ポートサイズ 00−64ビット 01−32ビット 10−16ビット 11−8ビット Sack1,Sack0−ソース肯定応答型制御 2型装置の場合、これらのビットを無視し、常に01モ
ードを使用する。これは、2型の装置については*AC
K線を使用しないからである。 00−*ACK線のみを観測する 01−CCBのSACレジスタの値のみを使用する;*
ACK線を無視 10−CCBのSACレジスタの値を使用し、次に*A
CK線を観測する 11−*ACK線を観測し、次にSACレジスタの値を
使用する Dack1,Dack0−宛先肯定応答型制御 2型装置の場合,これらのビットを無視し、常に01モ
ードを使用する 00−*ACK線のみを観測する 01−CCBのDACレジスタの値のみを使用する;*
ACK線を無視 10−CCBのDACレジスタの値を使用し、次に*A
CK線を観測する 11−*ACK線を観測し、次にDACレジスタの値を
使用する
更するための融通性を与える。たとえば、CCBを追加
するときには、チェーンの中の最後のCCBのチェーン
ビットをセットし、追加すべきCCBを最後のCCBの
後の次の順次メモリアドレスに書込む。ところが、CC
Bのチェーンを動的に変更するときに競合条件が起こる
と思われる。それらの競合条件は、たとえば、CCBの
チェーンにチェーンを動的に追加している間に外部メモ
リからCCBのアクセスするときに起こりうる。また、
CCBを動的に追加することができる前にチェーン中の
最後のCCBに到達したときにも起こる可能性がある。
発生を回避するために新規な方法と装置が開発されてい
る。以下の説明から当業者には明白になるであろうが、
競合条件を防止するための本発明の方法と装置はどのよ
うな動的連鎖方式とも組合せて利用できると思われる。
しかし、本発明はここで説明する外部メモリを使用して
動的連鎖を実行する方法及び装置と関連して使用される
のが好ましい。
作が完了するまでCCBのチェーンにおける進行を中断
することが必要である。各チャネル制御ブロックには待
ちビットが設けられている。待ちビットを検出すると、
制御装置論理は現在チャネル制御ブロックの動作の実行
を完了するが、待ちビットがリセットされるまで、後続
するDMA動作の実行を中断する。これにより、競合条
件に起因する誤りを招かずに、DMA動作を変更するた
めに現在チェーンにチャネル制御ブロックを動的に追加
/変更する機会が与えられる。追加のDMA動作を連鎖
すること、あるいは、チャネル制御ブロックのチェーン
の中の特定の場所でチャネル制御ブロックを挿入又は除
去することが望ましい場合、CPUはブロックを追加又
は除去すべき場所の前に位置するチャネル制御ブロック
の中の待ちビットをセットさせる。次に、チャネル制御
ブロックの追加又は削除を実行し、待ちビットをリセッ
トすれば良く、リセットの時点で、制御装置論理はチャ
ネル制御ブロックにより指定されるDMA動作の処理を
継続することができる。
ちビットはチャネル制御ブロックのISWレジスタに入
っている。さらに、CSR(図1の125)、好ましく
はチャネル動作レジスタ(COR)(図1の150)に
追加状態ビットである中断ビットを設けるのが好まし
い。このビットをセットすると、特定のCCBを参照せ
ずに動作は中断される。中断ビットは各CCBの中に入
っている待ちビットと関連して使用されても良く、待ち
ビットとは関係なく使用されても良い。多重チャネル制
御装置においては、チャネルごとに1つずつ、複数の中
断ビットが設けられるので、全てのチャネル動作又は一
部のチャネル動作を中断させる単純な方式が得られる。
中断ビットがリセットされれば、動作を継続できる。
例は、CCBのチェーンの終端にDMA動作を追加する
ことであると考えられる。追加を実行するときには、C
PU又は入出力制御装置をプログラムする能力を有する
他の装置は外部メモリをアクセスし、外部メモリに記憶
されているチェーンの最後のCCBの待ちビットが先に
セットされていなければ、待ちビットをセットする(ス
テップ300)。動的連鎖が起こりそうな場合には、待
ちビットを事前にセットすることができる。待ちビット
を事前にセットすることにより、追加のCCBを動的に
連鎖するのに先立ってその場合をオーバランしてしまう
危険を回避するのである。現在、その最後のチャネル制
御ブロックが入出力制御装置のCSRに記憶されており
(ステップ310)且つチェーンのDMA動作が完了し
ている(ステップ320)ならば、動的連鎖動作を実行
することはできず、そのCCBを別個のチェーンとして
実行するなどの代替プロセスを実行しなければならな
い。制御装置論理がセット状態の待ちビットを検出し
て、動作が中断されるまで、処理は継続する。次に、ス
テップ340で、CPUは外部メモリのその最終チャネ
ル制御ブロックの直後の記憶場所に新たなチャネル制御
ブロックを書込む。追加CCBを追加する可能性がある
ため、この新たに追加されるCCBのチェーンビットと
待ちビットを事前にセットしておくのが好ましい。
SRの双方(動作が中断されている場合)に記憶されて
いるCCBの待ちビットをリセットし(ステップ35
0)、それにより処理は再開して(ステップ370)、
動作連鎖は実行済となる。まず最初に待ちビットをセッ
トすることにより、制御装置論理は待ちビットがセット
されているチャネル制御ブロックを越えて処理しなくな
るので、競合条件(オーバラン)が起こるおそれは排除
される。さらに、制御装置論理は待ちビットがセットさ
れているチャネル制御ブロックの終わりまで処理を継続
できるので、動的連鎖の処理に要するオーバヘッドは最
小限に抑えられると共に、高い処理能力を維持できる。
にCCBを追加しても良い。図7に記載するように、以
下では、再帰的チェーン、すなわち、チェーンの完了時
にチェーンの頭に戻るチェーンに関連してプロセスを説
明する。本発明のプロセスは再帰的チェーンには限定さ
れず、プロセスは非再帰的チェーンにも等しく適用でき
る。図7を参照して説明すると、ステップ410で、チ
ェーン中の追加すべきCCBの記憶場所の直前の場所に
記憶されているCCBの待ちビットをセットする。ステ
ップ415では、現在処理中のCCBの記憶場所をCC
Bを追加すべき記憶場所と比較する。現在処理中のCC
Bがチェーン中の「下位」にあれば、システムはメモリ
に新たにCCBを書込む前に動作がチェーンの頭に戻る
まで待機する。現在処理中のCCBがCCBを追加すべ
きチェーン中の場所より上にある場合には、システムは
セット状態の待ちビットを検出したときに処理を中断す
るので、CCBを直ちに追加することができる。次に、
新たなCCBを追加するために外部メモリを更新する
(ステップ420)。この更新は、待ちビットがセット
されているCCBの直後のメモリアドレスに新たにCC
Bを書込み、残る後続するCCBをそれぞれの旧アドレ
スをCCB1つ分のサイズだけ増分したアドレスに対応
する新たなアドレス場所に再書込みすることにより実行
されるのが好ましい(ステップ425)。あるいは、後
続するメモリアドレスにCCBを書込み、新たなCCB
を所望のシーケンスで実行するようにそのアドレスに対
してポインタメカニズムを設けることにより、外部メモ
リを更新しても良い。チェーンを更新したならば、外部
メモリの待ちビットをリセットし(ステップ430)、
その後に内部メモリの待ちビットをリセットし、処理を
継続してゆく(ステップ450)。
動作のもう1つの例は、CCBのアクティブチェーンか
らCCBを除去するというものである。図8は、CCB
の再帰的チェーンからCCBを除去するプロセスを示
す。1つ又は複数のCCBの除去は、まず、除去すべき
CCBの直前に位置する外部CCBの待ちビットをセッ
トすることにより実行される(ステップ510)。ステ
ップ515では、システムは現在処理中のCCBの場所
に対して除去すべきCCBのチェーン中の場所を確定す
る。システムは、必要に応じて、処理中のCCBが除去
すべきCCBの場所の「上位」、すなわち、前に来るま
で待機する。次に、外部メモリからCCBを除去する
(ステップ520)。CCBのチェーンに不連続が生じ
ないように、外部メモリは除去されるCCBの直後のC
CBのアドレスを指示するポインタメカニズムを含んで
いても良い。あるいは、ステップ525で、除去したC
CBに続くCCBを外部メモリの連続するメモリアドレ
スに再書込みする。CCBのチェーンを更新した後、ま
ず、外部メモリに記憶されているCCBの待ちビットを
リセットし(ステップ530)、CSR中のCCBの待
ちビットをリセットし(ステップ540)、処理を継続
する(ステップ550)。
たが、以上の説明を参照すれば当業者には数多くの代替
構成、変形、変更及び用途が明白になるであろうという
ことは明かである。詳細にいえば、ここで説明した概念
である外部チャネル制御ブロックの透過連鎖と、動作を
動的に連鎖するときの競合条件の防止は互いに関連して
使用されるのが好ましいが、互いに関係なく使用されて
も良く、その場合にもここで論じた目的及び改善を達成
できることは当業者には理解されるであろう。
線図。
ク線図。
ク線図。
めに使用されるチャネル制御ブロックレジスタを示す
図。
めに使用されるチャネル制御ブロックレジスタを示す
図。
ましい実施例を示す流れ図。
ましい実施例を示す流れ図。
ましい実施例を示す流れ図。
Claims (3)
- 【請求項1】 CPUと、主メモリと、バスに結合され
た外部メモリとを具備するコンピュータシステムにあっ
て、実行すべき直接メモリアクセス動作を前記外部メモ
リに動的に連鎖させる装置において: 前記バスに結合されていて直接メモリアクセス(DM
A)動作を実行するDMA制御装置であって、アクセス
可能で、DMA制御装置が実行すべき動作を指定するD
MA転送パラメータを特定するチャネル制御ブロック
(CCB)を含む少なくとも1つのチャネル制御ブロッ
クレジスタと、前記CCBに従って動作を実行するDM
A制御装置論理とを具備しているDMA制御装置を備
え、前記CCBには待ち状態ビットが含まれ、前記待ち
状態ビットは、その待ち状態ビットがリセットされるま
で処理を中断することを前記DMA制御装置論理に指示
するものであり; 前記外部メモリは、前記DMA制御装置の外部にあって
前記バスを介して前記DMA制御装置に結合され、前記
DMA制御装置は外部メモリから第1のCCBに続いて
処理すべき少なくとも1つの次のCCBを受けるように
なされ; 前記DMA制御装置には、前記前記DMA制御装置論理
に結合されてそれへと実行すべきDMA動作に関する状
態を与えるチップ制御状態ブロックが含まれ、このチッ
プ制御状態ブロックには、前記外部メモリにおける、次
に処理すべきCCBのアドレスを特定する外部メモリア
ドレスポインタが含まれ、この外部メモリアドレスポイ
ンタは、前記外部メモリのCCBへのアクセスの終了の
たびに増分されて、処理すべきCCBのチェーン中の次
のCCBを指示するものであり; 前記DMA制御装置は、前記待ち状態ビットがセットさ
れていない場合には、外部メモリアドレスポインタによ
り指定されるアドレスを前記外部メモリから読取り、読
取ったCCBをCCBレジスタに記憶し、そのCCBレ
ジスタに記憶されているCCBに従って動作を実行し、 さらに、CCBのチェーンに追加すべき及び/又はCC
Bのチェーンから除去すべきCCBの記憶場所の前の位
置にあるCCB中の待ち状態ビットをセットし且つリセ
ットする外部プロセッサであって、待ち状態ビットをセ
ットし、少なくとも1つのCCBを追加及び/又は除去
し、待ち状態ビットをリセットすることにより、CCB
のチェーンの動的な変更をできるようにされた外部プロ
セッサを備え、その変更をされたCCBのチェーンにつ
いて処理が継続され; 前記DMA制御装置が、CCBのチェーンの変更によっ
て動作のチェーンを、メモリ量の増加を要することな
く、競合条件に起因する誤りを招かずに、動的に変更で
きる、ことを特徴とする装置。 - 【請求項2】 CPUと、主メモリと、外部メモリと、
それらの外部メモリに関して直接メモリアクセス(DM
A)動作を実行するDMA制御装置とを具備するコンピ
ュータシステムにあって、直接メモリアクセス動作を前
記外部メモリに動的に連鎖させ、その動作のチェーンの
動的な変更をする方法において: 前記DMA制御装置の外部にある外部メモリの中のチャ
ネル制御ブロック(CCB)に関して、第1のCCBに
続いて処理すべきCCBのアドレスを、外部メモリアド
レスポインタで特定する過程を備え、前記DMA制御装
置には少なくとも1つのCCBレジスタが設けられ、そ
のCCBレジスタには、前記DMA制御装置が実行すべ
き動作を指定するDMA転送パラメータを特定するCC
Bが含まれており; 前記DMA制御装置は、前記CCBレジスタに記憶され
ているCCBにより指定されるDMA動作を実行し; DMA動作の実行の完了時に、前記待ちビットがセット
されていなければ, 前記外部メモリから後続CCBを、上記過程で特定した
アドレスで読み出し, その後続CCBを前記CCBレジスタに記憶し, 前記DMA制御装置は、前記CCBレジスタに記憶され
た後続CCBを処理し,前記外部メモリにおける次に処
理すべきCCBのアドレスを、前記外部メモリアドレス
ポインタの増分により特定する過程を備え; DMA動作の実行の完了時に、前記待ちビットがセット
されいれば, 前記DMA制御装置によるCCBの処理を中断し, 待ち状態ビットがリセットされる時点を確定し, CCBのチェーンを変更し, CCBのチェーンが変更された後に待ちビットをリセッ
トし, 待ちビットがリセットされたときに処理を再開する過程
を備えている、ことを特徴とする方法。 - 【請求項3】 CPUと、主メモリと、バスに結合され
た外部メモリとを具備するコンピュータシステムにあっ
て、実行すべき直接メモリアクセス動作を前記外部メモ
リに動的に連鎖させ装置において: 前記バスに結合されていて直接メモリアクセス(DM
A)動作を実行するDMA制御装置であって、アクセス
可能で、DMA制御装置が実行すべき動作を指定するD
MA転送パラメータを特定するチャネル制御ブロック
(CCB)を含む少なくとも1つのチャネル制御ブロッ
クレジスタと、前記CCBに従って動作を実行するDM
A制御装置論理とを具備しているDMA制御装置を備
え、前記CCBにはチェーン状態ビットおよび待ち状態
ビットが含まれ、前記チェーン状態ビットは、後続する
動作を別のCCBにより指定される通りに実行すべきで
あることを前記DMA制御装置論理に指示し、前記CC
Bレジスタは、当初、第1のCCBを記憶しており、前
記待ち状態ビットは、その待ち状態ビットがリセットさ
れるまで処理を中断することを前記DMA制御装置論理
に指示するものであり; 前記外部メモリは、前記DMA制御装置の外部にあって
前記バスを介して前記DMA制御装置に結合され、前記
DMA制御装置は外部メモリから第1のCCBに続いて
処理すべき少なくとも1つの次のCCBを受けるように
なされ; 前記DMA制御装置には、前記前記DMA制御装置論理
に結合されてそれへと実行すべきDMA動作に関する状
態を与えるチップ制御状態ブロックが含まれ、このチッ
プ制御状態ブロックには外部メモリアドレスポインタが
含まれ、その外部メモリアドレスポインタは、前記チェ
ーン状態ビットのセット時には、前記外部メモリにおけ
る、次に処理すべきCCBのアドレスを特定するもので
あり、前記外部メモリアドレスポインタは、前記外部メ
モリのCCBへのアクセスの終了のたびに増分されて、
処理すべきCCBのチェーン中の次のCCBを指示する
ものであり; 前記DMA制御装置は、外部メモリアドレスポインタに
より指定されるアドレスを前記外部メモリから読取り、
読取ったCCBをCCBレジスタに記憶し、そのCCB
レジスタに記憶されているCCBに従って動作を実行
し、 さらに、CCBのチェーンに追加すべき及び/又はCC
Bのチェーンから除去すべきCCBの記憶場所の前の位
置にあるCCB中の待ち状態ビットをセットし且つリセ
ットする外部プロセッサであって、待ち状態ビットをセ
ットし、CCBを追加及び/又は除去し、待ち状態ビッ
トをリセットすることにより、CCBのチェーンの動的
な変更をできるようにされた外部プロセッサを備え、そ
の変更をされたCCBのチェーンについて処理が継続さ
れ; 前記DMA制御装置が、CCBのチェーンの変更によっ
て動作のチェーンを、メモリ量の増加を要することな
く、競合条件に起因する誤りを招かずに、動的に変更で
きる、ことを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US814,864 | 1991-12-30 | ||
US07/814,864 US5251312A (en) | 1991-12-30 | 1991-12-30 | Method and apparatus for the prevention of race conditions during dynamic chaining operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05257866A JPH05257866A (ja) | 1993-10-08 |
JP3433385B2 true JP3433385B2 (ja) | 2003-08-04 |
Family
ID=25216200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35643092A Expired - Lifetime JP3433385B2 (ja) | 1991-12-30 | 1992-12-22 | 入出力装置に対して実行すべき直接メモリアクセス動作を動的に連鎖する装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5251312A (ja) |
JP (1) | JP3433385B2 (ja) |
KR (1) | KR100225744B1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367639A (en) * | 1991-12-30 | 1994-11-22 | Sun Microsystems, Inc. | Method and apparatus for dynamic chaining of DMA operations without incurring race conditions |
EP0549924A1 (en) * | 1992-01-03 | 1993-07-07 | International Business Machines Corporation | Asynchronous co-processor data mover method and means |
JP3187539B2 (ja) * | 1992-07-28 | 2001-07-11 | 株式会社東芝 | データ転送装置 |
US5659690A (en) * | 1992-10-15 | 1997-08-19 | Adaptec, Inc. | Programmably configurable host adapter integrated circuit including a RISC processor |
EP0731945B1 (en) * | 1993-12-01 | 2000-05-17 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US5717952A (en) * | 1994-11-16 | 1998-02-10 | Apple Computer, Inc. | DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command |
US5928349A (en) * | 1995-02-24 | 1999-07-27 | International Business Machines Corporation | Mixed-endian computing environment for a conventional bi-endian computer system |
US5687337A (en) * | 1995-02-24 | 1997-11-11 | International Business Machines Corporation | Mixed-endian computer system |
EP0732659B1 (en) * | 1995-03-17 | 2001-08-08 | LSI Logic Corporation | Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment |
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 |
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 |
US5850567A (en) * | 1996-03-15 | 1998-12-15 | Adaptec, Inc. | Method for specifying concurrent execution of a string of I/O command blocks in a chain structure |
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 |
US5867732A (en) * | 1996-03-15 | 1999-02-02 | Adaptec, Inc. | Hardware method for verifying that an area of memory has only zero values |
US5991861A (en) * | 1996-03-15 | 1999-11-23 | Adaptec, Inc. | Method of enabling and disabling a data function in an integrated circuit |
US5812877A (en) * | 1996-03-15 | 1998-09-22 | Adaptec, Inc. | I/O command block chain structure in a memory |
US5923896A (en) * | 1996-03-15 | 1999-07-13 | Adaptec, Inc. | Method for sequencing execution of I/O command blocks in a chain structure by setting hold-off flags and configuring a counter in each I/O command block |
US5974530A (en) * | 1996-03-15 | 1999-10-26 | Adaptec, Inc. | Integrated PCI buffer controller and XOR function circuit |
US5881250A (en) * | 1996-03-15 | 1999-03-09 | Adaptec, Inc. | Host adapter system including an integrated PCI buffer controller and XOR function circuit |
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 |
US5892969A (en) * | 1996-03-15 | 1999-04-06 | Adaptec, Inc. | Method for concurrently executing a configured string of concurrent I/O command blocks within a chain to perform a raid 5 I/O operation |
US5790397A (en) * | 1996-09-17 | 1998-08-04 | Marathon Technologies Corporation | Fault resilient/fault tolerant computing |
US5896523A (en) * | 1997-06-04 | 1999-04-20 | Marathon Technologies Corporation | Loosely-coupled, synchronized execution |
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 |
US6324599B1 (en) | 1999-01-11 | 2001-11-27 | Oak Technology | Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor |
US6324598B1 (en) | 1999-01-11 | 2001-11-27 | Oak Technology | Software enlarged tag register and method thereof for noting the completion of a DMA transfer within a chain of DMA transfers |
US7689732B2 (en) * | 2006-02-24 | 2010-03-30 | Via Technologies, Inc. | Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels |
WO2010017263A1 (en) * | 2008-08-06 | 2010-02-11 | Sandbridge Technologies, Inc. | Haltable and restartable dma engine |
KR102630079B1 (ko) | 2021-10-29 | 2024-01-29 | 주식회사 알앤에프케미칼 | 생분해성 폴리프로필렌 컴파운드의 제조방법 및 이에 따라 제조한 생분해성 폴리프로필렌 컴파운드 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3898623A (en) * | 1973-06-05 | 1975-08-05 | Ibm | Suspension and restart of input/output operations |
JPS60142418A (ja) * | 1983-12-28 | 1985-07-27 | Hitachi Ltd | 入出力エラ−回復方式 |
JPS6191752A (ja) * | 1984-10-11 | 1986-05-09 | Nec Corp | マイクロコンピユ−タ |
US4797812A (en) * | 1985-06-19 | 1989-01-10 | Kabushiki Kaisha Toshiba | System for continuous DMA transfer of virtually addressed data blocks |
JPH0740252B2 (ja) * | 1986-03-08 | 1995-05-01 | 株式会社日立製作所 | マルチプロセツサシステム |
JPS63216170A (ja) * | 1987-03-05 | 1988-09-08 | Mitsubishi Electric Corp | デイジタル信号処理プロセツサ |
US4989113A (en) * | 1987-03-13 | 1991-01-29 | Texas Instruments Incorporated | Data processing device having direct memory access with improved transfer control |
US5099417A (en) * | 1987-03-13 | 1992-03-24 | Texas Instruments Incorporated | Data processing device with improved direct memory access |
DE3779313D1 (de) * | 1987-08-20 | 1992-06-25 | Ibm | Schnittstellenmechanismus fuer informationsuebertragungssteuerung zwischen zwei vorrichtungen. |
US4930065A (en) * | 1987-08-20 | 1990-05-29 | David Computer Corporation | Automatic data channels for a computer system |
US5131082A (en) * | 1989-06-09 | 1992-07-14 | International Business Machines Corporation | Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block |
US5027310A (en) * | 1989-09-08 | 1991-06-25 | Zilog, Inc. | Carry chain incrementer and/or decrementer circuit |
US5072374A (en) * | 1989-11-07 | 1991-12-10 | Ge Fanuc Automation North America, Inc. | Method for communicating among a plurality of programmable logic controllers each having a dma controller |
-
1991
- 1991-12-30 US US07/814,864 patent/US5251312A/en not_active Expired - Lifetime
-
1992
- 1992-11-28 KR KR1019920022716A patent/KR100225744B1/ko not_active IP Right Cessation
- 1992-12-22 JP JP35643092A patent/JP3433385B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR100225744B1 (ko) | 1999-10-15 |
US5251312A (en) | 1993-10-05 |
KR930014073A (ko) | 1993-07-22 |
JPH05257866A (ja) | 1993-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3433385B2 (ja) | 入出力装置に対して実行すべき直接メモリアクセス動作を動的に連鎖する装置及び方法 | |
JP3433386B2 (ja) | 入出力記憶装置への直接メモリアクセスを行う装置及び方法 | |
EP0550163B1 (en) | Circuit architecture for supporting multiple-channel DMA operations | |
JP2003512670A (ja) | 連結リストdma記述子アーキテクチャ | |
US9442873B2 (en) | Direct memory access controller | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
JPS6049352B2 (ja) | デ−タ処理装置 | |
JPH01125644A (ja) | データ転送装置 | |
JPS5856277A (ja) | 情報処理装置ならびに方法 | |
JP2001056793A (ja) | 情報処理装置 | |
JP4363431B2 (ja) | データ転送方式 | |
JP2000040057A (ja) | 計算機システム、バッファ制御装置及び転送方法 | |
JPH03182945A (ja) | 主記憶内データ転送方式 | |
JP3168845B2 (ja) | ディジタル信号処理装置 | |
JP3127737B2 (ja) | ディジタル信号処理装置 | |
JP3331943B2 (ja) | 情報処理装置および入出力制御装置 | |
JP2710219B2 (ja) | Dma制御装置 | |
JPH01261763A (ja) | Dma転送制御装置 | |
JPS6336021B2 (ja) | ||
JPS60142450A (ja) | 記憶システム | |
JPH0424733B2 (ja) | ||
JPH09160786A (ja) | マイクロプロセッサ | |
JPS6048563A (ja) | チャネル制御方式 | |
JPH01234957A (ja) | Dma制御方法及び装置 | |
JPS61256421A (ja) | 捕助記憶装置転送バツフアの初期化方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090530 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100530 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120530 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130530 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130530 Year of fee payment: 10 |