JPH03212753A - 入出力装置に対するアトミックアクセス装置及び方法 - Google Patents

入出力装置に対するアトミックアクセス装置及び方法

Info

Publication number
JPH03212753A
JPH03212753A JP2311224A JP31122490A JPH03212753A JP H03212753 A JPH03212753 A JP H03212753A JP 2311224 A JP2311224 A JP 2311224A JP 31122490 A JP31122490 A JP 31122490A JP H03212753 A JPH03212753 A JP H03212753A
Authority
JP
Japan
Prior art keywords
input
processor
output device
command packet
host data
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
JP2311224A
Other languages
English (en)
Inventor
Brian M Kelleher
ブライアン マイケル ケラハー
Shu-Shia Chow
シュー シア チョー
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH03212753A publication Critical patent/JPH03212753A/ja
Pending legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00—Digital computers in general; Data processing equipment in general
    • G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163—Interprocessor communication
    • G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はダイレクトメモリアクセス(DMA)入出力(
Ilo)装置に対してデータを転送するための装置と方
法で、ユーザがアトミックに入出力装置にアクセスでき
るようになったものに関する。アトミックにアクセスす
るとは、2つ以上の個別処理からなる命令が、他の処理
に対する割り込みなしに完全に実行されることを意味す
る。殊に、本発明は多数のプロセッサが単一のI10装
置を平行してアクセスするようなマルチプロセッサシス
テムにおける装置と方法に関する。
〔従来の技術〕
一個のI10装置は、通常の場合、データと命令をシス
テムの主要計算資源から次の2つの方法の何れかによっ
て受取るようになっている。即ち、I10レジスタの直
接メモリマツピングアクセスによるか、I10装置が直
接、データを主メモリサブシステム間で転送しあうよう
なりMA機構によるかの何れかによって行われる。何れ
の場合にも、データ転送の大きさがシステムバス上のア
トミックアクセスよりも大きく、I10装置に対して同
時平行的なユーザが多数存在し、I10装置が一つの入
力の流れを有する場合には、数人のユーザ間でI10装
置を同期化する機構が存在しなければならない。
I10装置の相互排除やその他の共有資源の相互排除ソ
フトウェアインタロックにより行われるのが普通である
。処理命令集合によってはインターロックされた命令を
含んでいるものがあり、そのことによってI10装置の
ユーザのプロセッサは多数の論理命令を単一のアトミッ
ク命令として実行することができる。例えば、プロセッ
サはメモリ内の1ビツトをテストし、もしそれがクリア
されていれば、分岐した後、ビットを単一の命令中に全
てセットすることかできる。このため共用資源上の相互
排除をソフトウェアロックによって実施することが可能
となる。I10装置その他の共用資源は、ビットがセッ
トされている場合には[ロック」されている、即ち利用
不可能であると考えられる。ビットをセットする処理は
資源を「所有する」。命令がインターロックされない複
数のシステムは、その他のアトミックプロトコルを通過
しなければならず、恐らくオペレーティングシステム又
はその他の独自な処理を通して同期する。
殊に、マルチユーザ、多重処理環境におけるグラフィッ
クサブシステムは先の処理でセットアツプされ同じプロ
セッサにより後続の処理のために待機する状態を内部に
維持している。もう一つのプロセッサにより割り込みか
生ずると、それらの状態が維持されるという保証はない
。それ故、この環境においてアトミック命令を実行する
ための手法が必要とされている。
〔発明の要約〕
本発明による直接メモリアクセスにより入出力装置に対
してアトミックアクセスを行う装置は、少なくとも一つ
のホストデータプロセッサを備えている。1つのメモリ
が一本のバスによって少なくとも1つのホストデータプ
ロセッサに接続される。入出力装置を備えるグラフィッ
クサブシステムが上記バスに接続される。上記メモリは
グラフィックサブシステム用に複数の命令を含むコマン
ドパケットを格納するロツ。クダウンバッファを有する
。上記少なくとも一つのホストデータプロセッサは、コ
マンドパケットを生成する第1のプログラムを備えてい
る。グラフィックサブシステムは、第1のプログラムの
制御の下に少なくとも一つのホストデータプロセッサに
よってアドレッシング可能なグラフィックプロセッサを
備えることによってグラフィックプロセッサの可用性を
判断するようになっている。グラフィックプロセッサは
、それが利用可能な場合に、コマンドパケットのグラフ
ィックサブシステムに対する転送を入出力読取りトラン
ザクションとして開始するための第2のプログラムを備
えている。上記第2のプログラムは複数の命令をアトミ
ックに実行する。
本発明に従い直接メモリアクセスによってI10装置に
アトミックにアクセスする方法は、入出力装置に対して
複数の命令を含む1つのコマンドパケットを生成するこ
とを伴う。上記コマンドパケットは物理的に隣接するロ
ックダウンメモリバッファを有する一定のメモリ内に格
納される。入出力装置は、質問されて、入出力装置の可
用性が判断される。コマンドパケットが入出力読取りト
ランザクションとして入出力装置へ転送される作業は、
入出力装置が利用可能な場合に、開始される。上記複数
の命令はアトミックに実行される。
本発明の上記の並びにそれに関連する目的、利点および
特徴は、図面と相俟って、以下の詳細な解説を検討する
ことによって当業者により理解可能な筈である。
〔実施例〕
さて図面について述べると、殊に第1図には、DMAに
よってI10装置にアトミックアクセスするためのシス
テム30のブロック線図が示されている。CPU32は
バス36によって浮動小数点プロセッサ(FPU)34
に接続されている。
上記CPU32は32ビツトシステムバス38により、
グラフィックサブシステム45におけるランダムアクセ
スメモリ(RAM)40、キャッシュ42およびインタ
ーフェース44に接続れている。インターフェース44
はバス46によりグラフィックプロセッサ48へ接続さ
れている。グラフィックプロセッサ48は120ビツト
グラフイツクバス50によりフレームバッファ52に接
続されている。フレームバッファ52は、バス56によ
りビデオデジタル・アナログ変換器(DAC)54へ接
続されている。DAC54は、ライン60によりビデオ
デイスプレィ58に接続されている。このシステムでは
、グラフィックサブシステム45は■/○装置であり、
それに対するアトミックアクセスが必要になる。
グラフィックサブシステム45に対するコマンドパケッ
トインターフェース44はメインメモリ40からグラフ
ィックサブシステム45に対して形状とグラフィックの
コンテキスト情報を転送する。かかる転送において、一
定のアプリケーションでは、コマンドのリストがそれ自
身のアドレス空間における物理的に隣接するロックダウ
ンメモリバッファ47へ書込まれる。上記システム30
はDMAを有するため、バッファ47はメインメモリシ
ステム40内に存在する。システム30は書戻しキャッ
シュ42を有するため、バ・ノファ47の内容をキャッ
シュ42内へ転記して、バッファへの書込み時にバス3
8に対して殆んどもしくは全くトラヒックを発生させる
ことはない。
DMAのないシステム上では、このバッファはグラフィ
ックサブシステム上に局部的に存在することになろう。
バッファ47が一杯になると、CPU32は、グラフィ
ックサブシステム45上のI10アドレスからの読取り
を介してグラフィックサブシステム45に、それがコマ
ンドパケットの転送を開始すべきことを知らせる。処理
の状態はI10読取りトランザクションの結果として復
帰される。
ゴマンドパケット転送の開始後、グラフィ・ツクサブシ
ステム45は、パケットを解析し、適当な処理を実行し
、コマンドパケットの最初のロングワード内に符号化さ
れたトランザクションシンタクスの詳細を見い出す。パ
ケット内のコマンドの実行はアトミックであり、これは
1パケツト内のコマンドが次のパケット内のどのコマン
ドよりも先に全て実行されたことを意味する。更に、そ
の実行順序はコマンドがパケット内で現われる順序であ
ることが保証される。
以下の論説はコマンドパケットインターフェース44を
使用するアプリケーションソフトウェアの一般的枠組を
述べるものである。その次にコマンドプロトコルについ
て論する。
以下のテーブルIはコマンドを発してフレームバッファ
52内に線を引く手続の概要を示す。
Line(Xl、  yl、  X2.  y2)( /1 ネ 各クリ ッ ピング矩形のループ for(i=0;  i<numcIip Rects
  ;  i+t) (μ 本頂点データをコマンドパケット内へ書込み9) fillLinePacket(pPacket、  
XI、yl、X2.y2゜clipRect[i]); While(”staml)  !  = GOOD)
pPacket = 5w1tchPacket();
) ) 大域的変数pPacketは、グラフィックサブシステ
ム45のコマンドバッファ47として機能する物理的に
隣接するロックダウンメモリバッファの仮想アドレスで
ある。コマンドパケットメモリに関す′る同期問題を回
避するために、2つのコマンドパケットバッフ747を
交互に使用する。このコマンドパケットの交替は5w1
tchPacket()ルーチンにより処理される。
Lineプロシージャはまづヘッダ情報と頂点データに
よりコマンドパケットを満たさなければならない。その
後I10アドレスstampから読出しを行い、システ
ムバス38上の状態を受取る。テーブルIIはI10読
取りの結果としてグラフィックサブシステム45により
復帰可能な状態値を列挙したものである。
テーブルII OGOOD   データ受取る。
矩形クリッピングがハードウェアで行われる場合、ライ
ンはウィンドウのクリップリスト内のそれぞれのクリッ
ピング矩形に逐次クリップされる。
クリップ矩形はfjllLinePacket()ルー
チンニよりコマンドパケット内に配置される。
Lineプロシージャは110読取りトランザクション
の状態をチエツクする。もし状態か良好(GOOD)で
あれば、グラフィックサブシステム45は即座にコマン
ドパケットの転送を開始する。プロシージャはただ状態
ワード上を旋回するだけだから、BUSY状態は、ソフ
トウェア再試行を惹起する。
高性能のグラフィックに対してはテーブル■のコードも
テーブルIIの手続きインターフェースも適当ではない
。それらは、コマンドパケットインターフェースの枠組
の些細な例を与えるために示したものである。
コマンドパケットインターフェースは線や矩形を描くよ
うに高水準の命令に対するアトミックなアクセスを可能
にする。グラフィックサブシステム45に対するアクセ
スは上記の枠組を通じて得られる。アプリケーションに
よって発せられるI/○読取り処理とグラフィックサブ
システム45により発せられるコマンドパケットトラン
ザクションの双方を含むアトミック処理を保証するため
に、コマンドパケットの物理アドレスはI10読取りト
ランザクションのアドレス中に符号化される。この符号
化によって、グラフィックサブシステム45に対してパ
ケットアドレスが得られ、コマンドパケット転送が実行
可能となる一方、アプリケーションは同じアトミック処
理の一部としての状態を受取る。
第2図は、一定のシステム30aのマルチプロセッサ形
式を示し、同形式では第1のCPU32aはバス36a
によってFPU34aに接続されている。キャッシュ4
2aはバス38aによりCPU32aに接続されている
。キャッシュ42bはバス38aによりCPU32bに
接続されている。これ以外の構造、システム30aがマ
ルチプロセッサモードで動作するという事実、第2図の
実施例の構造と動作は、第1図の実施例におけると同一
である。
第3図に示すように、I10読取りトランザクションア
ドレス70のビット2I:2は、コマンドパケットアド
レス72のビット3011を含む。実際には、正確なビ
ット位置は、使用されるシステムバスに依存する。指定
位置は32ビツトシステムバス38に対するものである
。もし利用可能な物理アドレス空間が32ビツトよりも
小さい場合、高次ビットは無視される。I10読取りト
ランザクションのアドレスの残りのビットは、グラフィ
ックサブシステム45によりデコードされた実行特有の
基底アドレスであって、1つのパケット転送が開示され
るべきことを示す。コマンドパケットのアドレスが次の
ようにつくりだされる。コマンドパケットアドレス72
のビット100かゼロで、パケットを2048バイト境
界上に整合させる。ビット30:11はI10読取りト
ランサクションアドレス70のビット21:2に等しい
。コマンドパケットアドレスのビット31はゼロである
。第2図は、I/○読取りトランザクションのアドレス
70からコマンドパケット転送の基底アドレス72への
マツピングを示す。
【図面の簡単な説明】
第1図は本発明によるシステムのブロック線図、第2図
は本発明によるシステムのもう一つの実施例のブロック
線図、第3図は本発明を実施する際にI10読取りトラ
ンザクションアドレスからコマンドパケット転送の基底
アドレスヘマッピングする方法を示す線図。 30・・・アトミックアクセスシステム、36・バス、
34・・・浮動小数点プロセッサ、32・・・CPU、
38・・・32ビツトシステムバス、45・ ・グラフ
ィックサブシステム、42・・・キャッシュ、44・・
・インターフェース、52・・・フレームバッファ、4
4・コマンドパケットインターフェース。 手 続 補 正 書 (方式) ■、事件の表示 平成2年特許願第311224号 3、補正をする者 事件との関係 出 願 人 4、代 理 人 5、補正命令の日付 平成3年2月12日

Claims (3)

    【特許請求の範囲】
  1. (1)入出力装置に対するアトミックアクセス装置にお
    いて、少なくとも一つのホストデータプロセッサと、一
    本のバスによって、上記少なくとも一つのホストデータ
    プロセッサに接続されるメモリと、上記バスに対して接
    続される入出力装置を備えるグラフィックサブシステム
    と、から成り、上記メモリが上記グラフィックサブシス
    テムに対する複数の命令を含む1つのコマンドパケット
    を記憶するロックダウンバッファを備え、上記少なくと
    も一つのホストデータプロセッサがコマンドパケットを
    生成する第1のプログラムを備え、上記グラフィックサ
    ブシステムが上記第1のプログラムの制御の下に上記少
    なくとも一つのホストデータプロセッサによってアドレ
    ッシング可能なグラフィックプロセッサを備えることに
    よって上記グラフィックプロセッサの可用性を判断し、
    上記グラフィックプロセッサはこのグラフィックプロセ
    ッサが利用可能である場合に上記コマンドパケットの上
    記グラフィックサブシステムへの転送を入出力読取り処
    理として開始し、上記複数の命令をアトミックに実行す
    る第2のプログラムを備える前記装置。
  2. (2)入出力装置に対するアトミックアクセス装置にお
    いて、少なくとも一つのホストデータプロセッサと、1
    本のバスにより上記少なくとも一つのホストデータプロ
    セッサに接続されるメモリと、上記バスに接続される入
    出力装置を備えるサブシステムと、から成り、上記メモ
    リが上記サブシステムに対する複数の命令を含むコマン
    ドパケットをストアするロックダウンバッファを有し、
    上記少なくとも一つのホストデータプロセッサがコマン
    ドパケットを生成する第1のプログラムを含み、上記サ
    ブシステムが上記第1のプログラムの制御の下に上記少
    なくとも一つのホストデータプロセッサによってアドレ
    ッシング可能のプロセッサを備えることによって上記プ
    ロセッサの可用性を判断し、上記プロセッサが、このプ
    ロセッサが利用可能な場合に上記コマンドパケットの上
    記サブシステムへの転送を入出力読取り処理として開始
    し、上記複数の命令をアトミックに実行する第2のプロ
    グラムを備える前記装置。
  3. (3)入出力装置に対するアトミックアクセス方法にお
    いて、入出力装置に対する複数の命令を含むコマンドパ
    ケットを生成し、上記コマンドパケットを物理的に隣接
    するロックダウンメモリバッファを備えるメモリ内に記
    憶し、入出力装置をアドレッシングして入出力装置の可
    用性を判断し、入出力装置が利用可能な場合にコマンド
    パケットの入出力装置に対する転送を入出力読取り処理
    として開始し、上記複数の命令をアトミックに実行する
    前記方法。
JP2311224A 1989-11-17 1990-11-16 入出力装置に対するアトミックアクセス装置及び方法 Pending JPH03212753A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US440588 1989-11-17
US07/440,588 US5218678A (en) 1989-11-17 1989-11-17 System and method for atomic access to an input/output device with direct memory access

Publications (1)

Publication Number Publication Date
JPH03212753A true JPH03212753A (ja) 1991-09-18

Family

ID=23749363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2311224A Pending JPH03212753A (ja) 1989-11-17 1990-11-16 入出力装置に対するアトミックアクセス装置及び方法

Country Status (5)

Country Link
US (1) US5218678A (ja)
EP (1) EP0430500B1 (ja)
JP (1) JPH03212753A (ja)
CA (1) CA2030021A1 (ja)
DE (1) DE69028492T2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488569A (en) * 1993-12-20 1996-01-30 At&T Corp. Application-oriented telecommunication system interface
US5666509A (en) * 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
US5835742A (en) * 1994-06-14 1998-11-10 Apple Computer, Inc. System and method for executing indivisible memory operations in multiple processor computer systems with multiple busses
US5548780A (en) * 1994-07-21 1996-08-20 Apple Computer, Inc. Method for semaphore communication between incompatible bus locking architectures
JP3209140B2 (ja) 1997-04-04 2001-09-17 株式会社セガ 画像処理装置
US6128674A (en) * 1997-08-08 2000-10-03 International Business Machines Corporation Method of minimizing host CPU utilization in driving an adapter by residing in system memory a command/status block a soft interrupt block and a status block queue
US6160560A (en) * 1998-08-10 2000-12-12 Diamond Multimedia Systems, Inc. Graphic request management system
US6430628B1 (en) * 1998-12-08 2002-08-06 Intel Corporation Method and apparatus for reducing direct memory access transfers using smart coalescing
US7752340B1 (en) * 2006-03-31 2010-07-06 Emc Corporation Atomic command retry in a data storage system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4402046A (en) * 1978-12-21 1983-08-30 Intel Corporation Interprocessor communication system
US4491916A (en) * 1979-11-05 1985-01-01 Litton Resources Systems, Inc. Large volume, high speed data processor
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4689739A (en) * 1983-03-28 1987-08-25 Xerox Corporation Method for providing priority interrupts in an electrophotographic machine
US4814977A (en) * 1983-10-18 1989-03-21 S&C Electric Company Apparatus and method for direct memory to peripheral and peripheral to memory data transfers
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
JPS61107456A (ja) * 1984-10-30 1986-05-26 Toshiba Corp 割込制御方式
US4719621A (en) * 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
US5014186A (en) * 1986-08-01 1991-05-07 International Business Machines Corporation Data-processing system having a packet transfer type input/output system
US4953101A (en) * 1987-11-24 1990-08-28 Digital Equipment Corporation Software configurable memory architecture for data processing system having graphics capability
EP0330425B1 (en) * 1988-02-23 1995-12-06 Digital Equipment Corporation Symmetric multi-processing control arrangement
US5175837A (en) * 1989-02-03 1992-12-29 Digital Equipment Corporation Synchronizing and processing of memory access operations in multiprocessor systems using a directory of lock bits

Also Published As

Publication number Publication date
EP0430500A3 (en) 1992-03-04
CA2030021A1 (en) 1991-05-18
EP0430500A2 (en) 1991-06-05
EP0430500B1 (en) 1996-09-11
DE69028492T2 (de) 1997-04-03
DE69028492D1 (de) 1996-10-17
US5218678A (en) 1993-06-08

Similar Documents

Publication Publication Date Title
US5404522A (en) System for constructing a partitioned queue of DMA data transfer requests for movements of data between a host processor and a digital signal processor
US6046752A (en) Peer-to-peer parallel processing graphics accelerator
US6470380B1 (en) Signal processing device accessible as memory
JPH08278918A (ja) エンディアンタスクを実行するシステム及び方法
JP2557199B2 (ja) インターフェース・システムおよび方法
JPH1078873A (ja) エミュレーション・システムで非同期信号を処理する方法
US5790887A (en) Method and apparatus for processing programmed input/output (PIO) operations in a computer system
US5218678A (en) System and method for atomic access to an input/output device with direct memory access
US5887190A (en) System for determining from a command storing in a storage circuit an application program which has initiated the command to determine an input/output device address
US5129065A (en) Apparatus and methods for interface register handshake for controlling devices
JPH1173365A (ja) データ移動操作を最適化する方法
CN119645903A (zh) 一种提高实时图像数据输入处理和输出效率的优化方法
JPS623347A (ja) エラ−回復情報退避方式
US20020143967A1 (en) Bit-granular writes of control registers
JPS63118969A (ja) 情報処理装置
JPS6097459A (ja) デ−タ処理システム同期方法
JPH09134326A (ja) コンピュータシステム
JP2933569B2 (ja) 中央演算処理装置
CN120541012A (zh) 基于MPSoC的用户态固态存储系统
JPH0262651A (ja) 並列計算機における相互排除方式
JPH07320070A (ja) グラフィックス専用ハードウェアへのデータ転送方法及びその装置とグラフィックスシステム
Yin et al. Implementing high performance remote method invocation in cca
JPH02188865A (ja) プロセッサ間共有メモリ管理装置
JPS61273659A (ja) デ−タ処理方式
JPS62236061A (ja) Cpu間通信方式