JPH0773155A - ホスト処理装置のバスへ接続するためのsimdアーキテクチャ - Google Patents

ホスト処理装置のバスへ接続するためのsimdアーキテクチャ

Info

Publication number
JPH0773155A
JPH0773155A JP5313850A JP31385093A JPH0773155A JP H0773155 A JPH0773155 A JP H0773155A JP 5313850 A JP5313850 A JP 5313850A JP 31385093 A JP31385093 A JP 31385093A JP H0773155 A JPH0773155 A JP H0773155A
Authority
JP
Japan
Prior art keywords
signal
bus
circuit
sequencer
slave
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
JP5313850A
Other languages
English (en)
Other versions
JP3556966B2 (ja
Inventor
Daniel Davies
ダニエル・デイビース
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of JPH0773155A publication Critical patent/JPH0773155A/ja
Application granted granted Critical
Publication of JP3556966B2 publication Critical patent/JP3556966B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 SIMD並列処理装置などの並列処理装置が
ホスト処理装置のバスのスレーブおよびマスタとなり得
るような回路を提供する。 【構成】 コプロセッサ装置は処理ユニットと、制御回
路と、コプロセッサ装置をホスト処理装置へ接続するた
めの回路を含む。接続回路はスレーブ回路とマスタ回路
を含む。スレーブ回路はホスト処理装置のバスからコプ
ロセッサ操作の要求を受信して要求された操作が実行さ
れるように制御回路へ信号を供給する。マスタ回路は制
御回路からのデータ転送操作の要求を受信して、要求さ
れたデータ転送操作を実行するためホストバス操作を要
求しまたコプロセッサ装置とホストバスの間でデータ転
送も行なう。制御回路は制御/状態レジスタと制御保存
回路を含む。

Description

【発明の詳細な説明】
【0001】本発明は並列処理装置に関する。
【0002】ウィルソン(Wilson)の米国特許第5,1
29,092号では、画像および空間的に関連のあるデ
ータなどのデータ行列を処理するための単一命令多重デ
ータ(SIMD)並列処理装置を開示している。図1お
よび図2に関連して図示しまた解説しているように、こ
の処理装置は隣接する処理ユニット間に直接データ通信
リンクを有する隣り合わせ処理ユニットの線型連鎖を含
む。
【0003】ウィルソン092号で図1、図2、図5と
の関連で図示しまた説明しているように、処理ユニット
は8個のグループを構成し、ホストコンピュータと制御
装置はどちらもデータバイト線と称する8ビット線経由
でこのグループからのデータを送受信可能である。
【0004】ウィルソン092号では図6Aおよび図6
Bとの関連でメモリと加算器(アキュムレータ)間のデ
ータ置換のための置換演算も説明している。
【0005】ヒリス(Hillis)の米国特許第5,11
3,510号ではシンキングマシンズ社(Thinking Mac
hines Corporation )製のSIMD並列処理装置である
コネクションマシン(Connection Machine)において使
用するために明らかに開発された多処理装置内のキャッ
シュメモリを操作するための技術を開示している。図3
との関連で図示しまた解説しているように、多処理装置
システムのそれぞれの処理装置は対応するキャッシュへ
接続している。キャッシュメモリがミス信号を出力する
と、バス調停ユニットはそれぞれの連続したキャッシュ
で現在の更新が実行されている間は更新を実行し得ない
ことを示す信号を供給して、優先連鎖の中の更新を要求
している第1のキャッシュが一時的に他の全ての更新要
求を無効にする。更新要求を受信すると、共有メモリは
指定されたアドレスのデータを取得してデータレディ信
号と、アドレスと、データを出力する。アドレスがキャ
ッシュの問題となるアドレス指定範囲内に有る場合また
はキャッシュが更新要求の供給源の場合、キャッシュメ
モリはアドレスおよびデータ信号を受信し保存する。そ
の結果、全てのキャッシュは任意の範囲検出装置によっ
てのみ制限される主メモリからの更新データを受信す
る。
【0006】本発明では並列処理装置における基本的な
問題を取り扱う。
【0007】SIMD並列処理装置は、それぞれがメモ
リ中の自分のデータをアクセス可能な処理ユニットを含
む。それぞれの処理装置が独立した命令のシーケンスを
実行可能な多重命令多重データ(MIMD)並列処理装
置とは異なり、SIMD並列処理装置内の全ての処理ユ
ニットはおなじ命令のストリームを受信する。
【0008】SIMD並列処理装置は画像処理などのデ
ータアレイに対する演算に特に有用である。しかし従来
のSIMD並列処理装置はホスト処理装置のバスへ接続
された補助演算装置として効率的な演算を行なうように
は設計されていない。幾つかの在来のSIMD並列処理
装置はデータ入出力について主としてシフトレジスタに
頼っており、ホスト処理装置のバスからのデータ受信に
おいて互換性がない。その他のSIMD並列処理装置は
隅角を折り返す回路に水平方向の様式でデータを供給し
て、ここからそれぞれの処理ユニットへ垂直方向の様式
でデータを供給している。別のSIMD並列処理装置で
は、それぞれの処理ユニットのキャッシュメモリはバス
を介して共有メモリをアクセス可能だが、多数の処理ユ
ニットのそれぞれをホスト装置のメモリへホスト装置の
バスを経由して接続するには実際的とは言えない。
【0009】本発明はSIMD並列処理装置などの並列
処理装置がホスト処理装置のバスのスレーブおよびマス
タとなり得るような回路を提供することによってこれと
これに関連した問題を軽減するアーキテクチャの発見に
基づくものである。その結果、並列処理装置はホスト処
理装置のバスのスレーブとして命令を受信できるがその
他の目的たとえばデータを処理ユニットへ入出力するな
どではホスト処理装置のバスのマスタとなることが出来
る。
【0010】本アーキテクチャはホスト処理装置の中央
演算処理装置(CPU)およびメモリなどのその他の部
材も接続されているホストバスへ接続することが出来る
補助演算装置として実施可能である。補助演算装置は複
数の処理ユニットを含む。補助演算装置はまた補助演算
装置を制御しまた処理ユニットを制御するための信号を
供給するように接続してある制御回路も含む。最後に、
補助演算装置はホスト装置へ接続するためのホストバス
接続回路も含む。
【0011】ホストバス接続回路はスレーブ回路とマス
タ回路を含んでいる。スレーブ回路は補助演算装置の演
算を要求するホストバスからの信号を受信し、これに応
じて補助演算装置の制御回路へ信号を供給して補助演算
装置に要求された演算を実行させる。マスタ回路は補助
演算装置の制御回路からデータ転送操作を要求する信号
を受信し、これに応じてホストバスへホストバスの操作
を要求する信号を供給し、補助演算装置からホストバス
へまたはホストバスから補助演算装置へのいずれかにデ
ータを転送し要求されたデータ転送操作を実行する。
【0012】上述したような補助演算装置のアーキテク
チャは多くの方法で有利である。
【0013】処理ユニットへのデータ入出力操作は補助
演算装置の通常操作に統合することが可能であり、これ
によって大きな柔軟性が得られる。たとえば、巨大なア
レイの小から大まで異なる大きさの部分を定義するデー
タが特定の補助演算装置の操作で必要に応じて容易に取
り扱うことが出来るように、いろいろな大きさのいずれ
かのデータブロックを要求に応じて転送することが出来
る。さらに、転送はデータブロックからのデータ項目が
処理ユニット間で等しく分配されるように実施すること
が可能である。
【0014】柔軟なブロックの大きさとデータ項目を等
しく分配する能力は画像処理の用途で特に重要である。
これらの特徴のため、画像または異なる大きさの画像の
別の部分を定義するデータを処理ユニットへ供給するこ
とが出来る。たとえば、それぞれの処理ユニットはメモ
リ回路を含むように実施可能であり、それぞれのデータ
の画素または一群の画素を定義しているワードをそれぞ
れの処理ユニットのメモリ回路内にロードすることが出
来る。さらに、それぞれの処理ユニットのメモリ回路は
処理ユニットの処理回路の内部レジスタより多くのデー
タ項目を保存し得るような充分な大きさをとることが出
来るので、メモリ回路が処理回路のためのキャッシュ機
能を実行できる。処理ユニットは1次元アレイを構成で
きまた全ての処理ユニットのメモリ回路全部で一枚以上
の画像を保存するのに充分な大きさに出来、それぞれの
処理ユニットのメモリ回路がそれぞれの画像内のそれぞ
れの水平方向の画像ブロックからのそれぞれのワードを
保存する。それぞれの水平方向の画像ブロックは水平方
向の様式で処理ユニットのアレイに充分に適合するだけ
の小さい単一行または行の一部である。
【0015】コプロセッサのアーキテクチャは多数のバ
ス手順およびブロック寸法のいずれにも適合することが
出来る。特定のバス手順用のスレーブ回路およびマスタ
回路は従来の部材を用いて容易にまた安価に製作可能で
ある。コプロセッサ制御回路は複雑さのあらゆる適切な
レベルを提供可能で、たとえばコプロセッサの演算を実
行させるために実行されるマイクロ命令を保存する制御
保存回路を用いて実施可能である。マイクロ命令はホス
トバスからスレーブ回路によってロードすることが出
来、ホスト処理装置のブロックの大きさに適合するよう
に出来る。
【0016】上述のコプロセッサのアーキテクチャによ
ればホストバスの他のマスタからの入力または出力操作
の要求に応答するために別個の制御回路を有する必要が
なくなる。別のマスタはマスタ回路に入力または出力操
作を実行させるようにコプロセッサ制御回路が要求する
ように制御保存回路内へマイクロ命令をロードすること
が出来る。
【0017】上述のコプロセッサのアーキテクチャによ
れば、それぞれの処理ユニットは水平方向のフォーマッ
トでのデータを取り扱うように構成することが出来る。
データ項目は水平方向のフォーマットで受信されまた操
作が水平方向のフォーマットで実行されることから、隅
角で折り返す回路は必要とされない。
【0018】図1はホスト処理装置のバスへコプロセッ
サとして接続することのできる並列処理装置の一般的部
材を示す略ブロック図である。
【0019】図2Aは図1のスレーブ回路がコプロセッ
サの処理要求に応答する一般的動作を示す流れ図であ
る。
【0020】図2Bは図1のコプロセッサ内の処理ユニ
ットからホストバス上のスレーブ回路へデータを転送す
るマスタの処理における一般的動作を示す流れ図であ
る。
【0021】図2Cは図1のコプロセッサ内の一組の処
理ユニットへホストバス上のスレーブ回路からデータを
転送するマスタの処理における一般的動作を示す流れ図
である。
【0022】図3はSparc-Station のSバスに接続した
SIMD並列処理装置の実施における部材を示す略ブロ
ック図である。
【0023】図4は図3の制御回路の部材を示す略ブロ
ック図である。
【0024】図5は図3の処理ユニットの部材を示す略
ブロック図である。
【0025】図6は図4の制御保存回路にマイクロ命令
をロードすることにおける一般的動作を示す流れ図であ
る。
【0026】図7は図3のボックスへのクロック信号を
制御する部材を示す略ブロック図である。
【0027】図8は図7のDVMAシーケンサをSバス
にまたマスタ回路のその他の回路に接続する線を表わす
略ブロック図である。
【0028】図9は図7のスレーブシーケンサをSバス
へまたスレーブ回路のその他の部材へ接続する線を示す
略ブロック図である。
【0029】図10は図9のスレーブシーケンサがエラ
ーを含む信号にどのように応答するかを示すタイミング
図である。
【0030】図11は制御/状態レジスタからデータを
読み出す操作を要求する信号に対して図9のスレーブシ
ーケンサがどのように応答するかを示すタイミング図で
ある。
【0031】図12は制御/状態レジスタ内にRUNビ
ットを書き込む操作を要求する信号に対して図9のスレ
ーブシーケンサがどのように応答するかを示すタイミン
グ図である。
【0032】図13は起動用PROMからデータを読み
出す操作を要求する信号に対して図9のスレーブシーケ
ンサがどのように応答するかを示すタイミング図であ
る。
【0033】図14は制御保存回路からデータを読み出
す操作を要求する信号に対して図9のスレーブシーケン
サがどのように応答するかを示すタイミング図である。
【0034】図15は制御保存回路へデータを書き込む
操作を要求する信号に対して図9のスレーブシーケンサ
がどのように応答するかを示すタイミング図である。
【0035】図16はホスト装置のメモリからデータを
読み出すDMA操作を要求する信号に対して図8のDV
MAシーケンサがどのように応答するかを示すタイミン
グ図である。
【0036】図17は図16の操作の間にパイプライン
・レジスタ回路を通るデータの動きを示す略流れ図であ
る。
【0037】図18はホスト装置のメモリからのデータ
を書き込むDMA操作を要求する信号に対して図8のD
VMAシーケンサがどのように応答するかを示すタイミ
ング図である。
【0038】図19は図18の操作の間にパイプライン
・レジスタ回路を通るデータの動きを示す略流れ図であ
る。
【0039】図20は複数ワードを読み込むDMA操作
を要求する信号に図8のDVMAシーケンサがどのよう
に応答を開始するかを示すタイミング図である。
【0040】図21は複数ワードを読み込むDMA操作
を要求する信号に対して図8のDVMAシーケンサがど
のように応答を完了するかを示すタイミング図である。
【0041】図22は図20および図21の操作の間に
パイプライン・レジスタ回路を通過するデータの動きを
示す略流れ図である。
【0042】図23は複数ワードを書き込むDMA操作
を要求する信号に対して図8のDVMAシーケンサがど
のように応答を開始するかを示すタイミング図である。
【0043】図24は複数ワードを書き込むDMA操作
を要求する信号に対して図8のDMVAシーケンサがど
のように応答を完了するかを示すタイミング図である。
【0044】図25は図23および図24の操作の間に
パイプライン・レジスタ回路を通過するデータの動きを
示す略流れ図である。
【0045】図1から図2Cでは本発明の一般的特徴を
図示している。図1では、ホスト処理装置のバスへコプ
ロセッサとして接続可能な並列処理装置の部材を示す。
図2Aではコプロセッサ内の制御回路へデータを供給す
るスレーブ操作における動作を示す。図2Bではホスト
バス上のスレーブへ処理ユニットからのデータを転送す
るマスタの操作における動作を示す。図2Cでは一組の
処理ユニットへホストバス上のスレーブからのデータを
転送するマスタの操作における動作を示す。
【0046】図1のホスト処理装置は、その他の部材た
とえばホスト装置の中央演算処理装置(CPU)14や
メモリ16などを接続可能なホストバス12を含む。ホ
ストバス12はホストバス制御回路18で制御可能であ
る。その他の各種部材たとえば入出力装置や別のコプロ
セッサなどをホストバス12に接続することが可能であ
る。
【0047】図1のコプロセッサ20は、処理ユニット
22、コプロセッサ20を制御するためのコプロセッサ
制御回路24、コプロセッサ20をホスト装置10に接
続するためのホストバス接続回路30を含む並列処理装
置である。コプロセッサ制御回路24は処理ユニット2
2へ制御信号を供給する。
【0048】ホストバス接続回路30はスレーブ回路3
2とマスタ回路34を含む。
【0049】スレーブ回路32はコプロセッサの操作を
要求する信号を受信するようにホストバス12へ接続さ
れており、この信号はたとえばホスト装置のCPU14
が供給し得るものである。スレーブ回路32も要求され
たコプロセッサの操作が実行されるようにコプロセッサ
制御回路24へ信号を供給することにより応答するため
に接続されている。
【0050】マスタ回路34はデータ転送操作を要求す
る信号を受信するように制御回路24へ接続されてい
る。これに呼応して、マスタ回路34はホストバス操作
を要求する信号をホストバス12へ供給する。これらの
信号は、たとえばホストバス12の制御要求を含み、ホ
ストバス制御回路18はバス制御を許可することにより
これに応答することが出来る。マスタ回路34はまた1
つの処理ユニット22からホストバス12へ、またはホ
ストバス12から少なくとも1つの処理ユニット22の
組へ、要求されたデータ転送が実行されるようにデータ
を転送する。
【0051】図2Aにおいて、囲み50の動作では、ス
レーブ回路32はホストバス12からコプロセッサの操
作要求を表わす信号を受信している。信号は適用可能な
バス手順にしたがってホストバス12に接続されたマス
タが供給できる。囲み52の動作では、スレーブ回路3
2がコプロセッサ制御回路24へ信号を供給して要求に
応答している。この信号は、たとえば制御信号であった
り、またはホストバス12から要求の一部として受信し
たアドレスまたはその他のデータ項目を含むことが出来
る。
【0052】図2Bにおいて、囲み60の動作では、コ
プロセッサ制御回路24は処理ユニット22へまたマス
タ回路34へ信号を供給し、マスタ回路34が処理ユニ
ットの1つからのデータ項目を取得するようにしてい
る。囲み62の動作では、コプロセッサ制御回路24は
データ転送操作を要求する信号をマスタ回路34へ供給
している。要求された操作には処理ユニットからのデー
タ項目をホストバス12に接続したスレーブへ転送する
出力操作が含まれる。囲み64の動作では、マスタ回路
34はホストバス12の制御を要求する信号を供給して
要求に応答している。ホストバス制御回路18がマスタ
回路34にホストバスの制御を許可すると、囲み66の
動作で、マスタ回路34はホストバス12を経由してス
レーブへデータ項目を供給する。
【0053】図2Cにおいて、囲み70の動作では、コ
プロセッサ制御回路24はデータ転送操作を要求する信
号をマスタ回路34へ供給している。要求された操作に
はデータ項目をホストバス12に接続したスレーブから
受信する入力操作が含まれる。囲み72の動作では、マ
スタ回路34はホストバス12の制御を要求する信号を
供給することで要求に応答している。ホストバス制御回
路18がマスタ回路34にホストバスの制御を許可する
と、囲み74の動作で、マスタ回路34はホストバス1
2を経由してスレーブからデータ項目を受信する。囲み
76の動作では、コプロセッサ制御回路24はマスタ回
路34および処理ユニット22へ信号を供給して、マス
タ回路34が少なくとも1つの処理ユニット22の組へ
データ項目を供給するようにしている。
【0054】図8から図25では本発明を実施するため
に上述の一般的実施の特徴をどのように使用できるかを
示している。図8および図9では、DVMAシーケンサ
282およびスレーブシーケンサ284がその他の部材
にどのように接続されるかを図示している。図10から
図15では、スレーブシーケンサ284が操作要求にど
のように応答するかを示している。図16から図19で
はマスタシーケンサ282が単一ワード読み込みと書き
出し操作の要求に対してどのように応答するかを示して
いる。図20から図25では複数ワード読み込みまたは
書き出しが行なわれるようなバースト転送操作の要求に
対してどのように応答するかを示している。
【0055】上述のように、DVMAインタフェース1
12およびスレーブインタフェース114はそれぞれに
各々のシーケンサつまりDVMAシーケンサ282およ
びスレーブシーケンサ284を用いて実施することが出
来る。図8ではDVMAシーケンサ282がSバス10
2およびその他の部材へどのように接続されるかを示
す。図9ではスレーブシーケンサ284がSバス102
およびその他の部材へどのように接続されるかを示す。
【0056】DVMAシーケンサ282およびスレーブ
シーケンサ284は、サン・マイクロシステムズ社部品
番号800−5922−10、Sバス仕様書B.0版、
1990年に記載されている要件にしたがってそれぞれ
実施し、仕様書からSバス102に供給すべき信号、S
バス102からの信号に応答するために利用可能な周
期、Sバス102における信号のタイミング、Sバス1
02上の信号の手順、および起動用PROM116に必
要な内容を決定することが出来る。図8および図9でCl
k 、D[31:0] 、BReq* 、BGnt* 、Rd、Siz[2:0]、Ack[2:
0]、As* 、PA[27:0]、SSel* と印を付けてある線はSバ
ス仕様書B.0版から理解できよう。DVMAシーケン
サ282およびスレーブシーケンサ284はたとえば、
トランジスタを用いてまたは図10から図25に関連し
て詳細を説明したような信号を提供する1つまたはそれ
以上のプログラマブルロジックアレイ(PLA)を用い
てそれぞれ実施することが出来る。説明した実施におい
て、信号は一般にprocClk の昇端でコプロセッサ内部へ
進むが、データはレジスタ付トランシーバ188を経由
してまたいくつかの信号はClk の昇端でDVMAシーケ
ンサ282およびスレーブシーケンサ284内部へ進行
する。
【0057】図8において、DVMAシーケンサ282
はSバス102およびSバスバッファ198を含むその
他の部材へ信号を供給する方法を制御するレジスタ兼復
号回路154からの信号を受信する。図示したように、
Sバスバッファ198はSバス102のD[31:0] 線へ接
続されており、Sバスバッファ198はSバス102の
タイミング制約を満足させるようにDVMAシーケンサ
282の制御下で動作する。レジスタ付トランシーバ1
94およびSバスレジスタ196は一方でパイプライン
段階を提供する。レジスタ付トランシーバ194はレジ
スタ付トランシーバ122と協働してケーブル118の
両端での信号の刻時の信頼性を確保する。
【0058】上述のフィールドに加えて、それぞれのマ
イクロ命令はDVMAシーケンサ282の動作に関連す
るフィールドを含むことが出来る。単一のビットで現在
の周期がSバスDMA読取かどうかを示すことが出来
る。3ビットのフィールドで大きさを示すために標準S
バス符号化を用いるバースト転送の大きさを示すことが
出来る。2ビットのフィールドで待機しない状態、バス
許可を待機する状態、SバススレーブからのAck[2:0]線
上のワード信号を待機する状態を含めSバスDMAマス
タの周期の状態を示すことが出来る。別の2ビットフィ
ールドで分岐に関する情報を提供でき、これには直前の
動作がキャリーまたはボロー信号を提供したこと、直前
の動作の結果が0だったこと、直前の動作の結果が否定
またはReturnAck だったこと、Sバス制御回路がバス許
可を下げることによって全てのドライバを停止させ、シ
ーケンサが転送を実行するためにDVMAシーケンサ2
82を再起動しなければならないような条件を示すため
の値を有する。
【0059】DVMAシーケンサ282により制御され
るそれぞれのデータ転送動作は、Sバス102の制御要
求を出さなければならないことを示すレジスタ兼復号回
路154からのバス要求信号に応答して開始することが
出来る。バス要求信号はDVMAシーケンサ282がS
バス102上のBReq* 線を引き下げるため提供する単一
ビットとすることが出来る。同時に、DVMAシーケン
サ282はクロック制御論理回路280に信号を供給し
てレジスタ兼復号回路154へのクロック信号の供給を
停止させることが出来る。
【0060】バス要求信号を供給する前に、レジスタ兼
復号回路154は要求されたデータ転送動作を準備する
ために必要とされる全ての他の動作を実行することが出
来る。たとえば、アドレスを表わすデータ項目をレジス
タ付トランシーバ194内に保存し、また書き込み動作
のためには書き込むべきデータ項目をレジスタ付トラン
シーバ122内に保存することが出来る。いずれの場合
にも、データ項目は処理ユニット130から取得するこ
とが出来、ユニットの1つが適切なマイクロプロセッサ
220および222の動作を通じてまたはSRAM24
0からのデータ項目を取り込むことによってデータ項目
を取得でき、またはデータ項目を定数バッファ192か
ら取得することが出来る。
【0061】バス要求信号を供給する際に、レジスタ兼
復号回路154は読み取り/書き込み信号およびブロッ
クサイズ信号を供給することも出来る。読み取り/書き
込み信号は要求された動作が読み込み動作であるかまた
は書き込み動作であるかを表わし、ブロックサイズ信号
は転送すべきデータブロックの大きさを表わす。BReq*
線を引き下げてBGnt* 線上にSバス102の制御を取得
していることを表わす信号を受信したあと、DVMAシ
ーケンサ282はSバス102のRd線に読み取り/書き
込み信号を供給しまたSバス102のSiz[2:0]線にブロ
ックサイズ信号を供給することも可能である。
【0062】BReq* 線に応答して、Sparc-Station 10
0内のSバス制御回路はDVMAシーケンサ282のBG
nt* 線を引き下げ、Sバス102の制御を渡す。BGnt*
に応答して、DVMAシーケンサ282は以下に詳細を
説明するような信号を供給して要求されたデータ転送動
作を実行し、Sバス102に接続されたスレーブの読み
取りまたは書き込みを行なう。読み込み動作中、スレー
ブがAck[2:0]線上に信号を供給し続けて線D[31:0] にデ
ータを供給する場合はいつでもDVMAシーケンサ28
2がSバスバッファ198へ制御信号を供給してデータ
を受信する準備が出来ていなければならない。DVMA
シーケンサ282はまたクロック制御論理回路280へ
も信号を送りレジスタ兼復号回路154がクロックパル
スを受信して受信データを保存するようにSバスレジス
タ196を制御することが出来るように準備する必要が
ある。書き込み動作中、DVMAシーケンサ282は同
様に信号を供給してSバスレジスタ196からのデータ
がSバスバッファ198を介してSバスの線D[31:0] へ
供給されるようにする。
【0063】図8に図示した回路に加えて、図1のマス
タ回路34の機能を実行するために各種の付加回路を用
意することが出来る。たとえば、マスタ回路34は処理
ユニット全てに接続した共通データバス156を含むこ
とが出来る。図5との関連ですでに説明したように、マ
スタ回路34はそれぞれの処理ユニットについて、処理
ユニットをデータ供給源であると示すためまたはデータ
の宛先である一組の処理ユニット内に処理ユニットが存
在することを示すために制御回路126が信号を供給す
るレジスタ付トランシーバ212を含むことも出来る。
【0064】共通データバス156とレジスタ付トラン
シーバ212はSバス102との間でのデータ転送経路
を提供しており、これはそれぞれの処理ユニットへの独
立した線など他の構造より一層効率的であり得る。この
経路を通って、データを処理ユニットからレジスタ付ト
ランシーバ122へ、またレジスタ付トランシーバ19
4、Sバスレジスタ196、Sバスバッファ198を経
由してSバス102へ直接転送できる。同様に、Sバス
102からのデータをSバスバッファ198、Sバスレ
ジスタ196、およびレジスタ付トランシーバ194を
介してレジスタ付トランシーバ122へさらに一組の処
理ユニットへ直接転送することが出来る。つまりレジス
タ付トランシーバ122、レジスタ付トランシーバ19
4、およびSバスレジスタ196は共通データバス15
6とSバス102の間で転送されるデータ項目を保存す
るためのパイプラインとして機能することになる。図5
との関連で前述したように、レジスタ兼復号回路154
は書き込み可能信号を供給して処理ユニット内のSRA
M240にその組のそれぞれの処理ユニットのレジスタ
付トランシーバ212からのデータを保存することが出
来る。
【0065】上述の回路により提供される経路は隅角折
り返し回路を含んでいない。これはそれぞれの処理ユニ
ットが水平方向のフォーマットにあるデータを取り扱う
ように構成されている場合に好適である。
【0066】図8の回路はホスト装置CPU14の介在
なしに図1のメモリ16などのメモリに対するダイレク
トメモリアクセス(DMA)方式読み取りおよび書き込
みを実行できる。たとえば、画像処理を実行する上で
は、マスタ回路14はホスト装置のCPUとは独立に、
マイクロプロセッサ220および222の要求およびS
RAM240の容量に従い画像の部分を定義するデータ
の読み取りまたは書き込みが出来る。この能力は連続し
た画像内の多数のタイルのそれぞれを取り扱うために使
用可能である。SRAM240はマイクロプロセッサ2
20および222の内部レジスタより多くのデータ項目
を保存できるため、SRAM240を用いてマイクロプ
ロセッサ220および222のためのデータの取込みが
可能である。
【0067】図9では、スレーブシーケンサ284はS
バス102上の線SSel* 、AS* 、Rd、Siz[2:0]、PA[27:
0]で要求された動作を表わす信号を受信する。
【0068】Sバス102はこれに接続しているそれぞ
れのスレーブに対してSSel* 線を含む。バス制御回路が
スレーブのアドレス空間内の位置を表わす仮想アドレス
をD[31:0] 線上で受信すると、バス制御回路はスレーブ
のSSel* 線を低値に引き下げることでスレーブによる操
作要求を表わす。バス制御回路は仮想アドレスを適切な
物理アドレスへ変換しまたPA[27:0]線上の物理アドレス
を供給し、その時点でバス制御回路はAS* 線を用いて、
SSel* 、Rd、およびSiz[2:0]線が有効でありアドレスが
PA[27:0]上にありまたマスタがD[31:0] 線上の仮想アド
レスを供給停止可能であることを示すことが出来る。
【0069】SSel* 、Rd、およびSiz[2:0]線上の信号は
スレーブシーケンサ284がSバス102、Sバスレジ
スタ188、Sバスバッファ190を含むほかの部材へ
信号を供給する方法を制御する。たとえばSSel* 線とAS
* 線の降端に応答して、スレーブシーケンサ284はS
バス102のAck[2:0]線上に信号を供給し、Rd、Siz[2:
0]、PA[27:0]線上の要求がエラーかを示す、または要求
された動作を実行する上でD[31:0] 線上で読み込むまた
は書き込むことの出来るデータユニットの大きさを示
す。Sバススレーブは一般に16ワードブロックまでの
バイトサイズとは異なるいくつかの大きさの転送を取り
扱う許可を有しているものの、スレーブシーケンサ28
4は限られた能力でのみ実施する必要がある。たとえ
ば、スレーブシーケンサ284はワードおよびバイト単
位の転送だけを取り扱うことが出来、また線Ack[2:0]上
にワードまたはバイトを示すことが出来る。
【0070】図示したように、Sバスバッファ190は
Sバス102のD[31:0] 線に接続されており、Sバスバ
ッファ190はスレーブシーケンサ284の制御下でS
バス102のタイミングの制約を満足させるように動作
する。Sバスレジスタ188はSバス102からクロッ
クを供給されているが、スレーブシーケンサ284によ
り制御されることでトランシーバ124および制御保存
回路150との間のケーブル118両端での信号の刻時
の信頼性を確保するようにパイプライン段階を提供す
る。スレーブシーケンサ284はたとえば、Sバスレジ
スタ188がデータを受信する方向を決定して、所定の
周期の間にこれを有効または無効にすることが出来る。
【0071】同様に、アドレスバッファ182はSバス
102のPA[27:0]線に接続されており、スレーブシーケ
ンサ284の制御下でケーブル118経由でCSアドレ
スバッファ180へと起動用PROM116へのアドレ
スを供給する。起動用PROM116はスレーブシーケ
ンサ284の制御下にあるバッファ184を介してSバ
ス102のD[31:0] 線へ出力を供給する。スレーブシー
ケンサ284はまたバッファ184の1ビットを直接駆
動して制御/状態レジスタ168内のRUNビットの値
を示すことの出来る接続も有している。
【0072】スレーブシーケンサ284はまたクロック
制御論理回路280とケーブル118経由で制御保存回
路150の書き込み可能線とケーブル118経由でMA
R152およびCSアドレスバッファ180の出力イネ
ーブル線へも信号を供給する。出力イネーブル信号はM
AR152およびCSアドレスバッファ180からの出
力をゲートする従来回路へ供給して制御保存回路150
をアクセスするためのアドレスを選択することが出来
る。図示した線に加えて、スレーブシーケンサ284は
トランシーバ124へ制御信号を供給するようにも接続
してある。
【0073】スレーブシーケンサ280により制御され
る動作には、制御保存回路150からデータを読み込む
またはデータを書き出す操作、出力/状態レジスタ16
8からデータを読み込むまたはデータを書き出す操作、
およびSバス102へ起動用PROM116からデータ
を読み出す操作が含まれる。必要であればスレーブシー
ケンサ284はアドレスバッファ182が線PA[27:0]か
ら起動用PROM116へまたCSアドレスバッファ1
80へのアドレスを示すデータを提供することが出来る
ように制御信号を供給することが出来る。アドレスの高
次ビットから、スレーブシーケンサ284はアドレスが
起動用PROM116用か、制御保存回路150用か、
または制御/状態レジスタ168用かを決定できる。た
とえば、0から(256K−1)のアドレスは起動用P
ROM116用、アドレス256Kから(512K−
1)は制御保存回路150用、またアドレス512Kか
ら(768K−1)は制御/状態レジスタ168用とす
ることが出来る。
【0074】スレーブシーケンサ284は起動用PRO
M116へ出力イネーブル信号を供給してアドレスバッ
ファ182内のデータで示されるアドレスからデータを
読み出すことが出来る。次に、スレーブシーケンサ28
4はバッファ184に制御信号を供給してSバス102
の線D[31:0] 上に起動用PROM116からのデータを
供給できるようにすることが出来る。起動用PROM1
16は一度に1バイトを供給するので、スレーブシーケ
ンサ284は起動用PROM116用アドレスとSiz[2:
0]線上のワード信号を受信した場合Ack[2:0]線上に1バ
イト信号を供給する。
【0075】スレーブシーケンサ284はMAR152
およびCSアドレスバッファ180の出力イネーブルへ
信号を供給してCSアドレスバッファ180からのアド
レスが制御保存回路150へ供給されるようにする。Rd
線に従ってスレーブシーケンサ284は制御保存回路1
50の出力イネーブル端子へ動作が読み込みまたは書き
込み操作どちらであるかを表わす信号を供給する。スレ
ーブシーケンサ284はさらに制御保存回路150へま
たはここからワードを転送する信号を供給することが出
来る。
【0076】操作が制御保存回路150からの1ワード
読み出しの場合スレーブシーケンサ284は選択信号を
トランシーバ124へまた制御信号をSバスレジスタ1
88とSバスバッファ190へ供給してワードをSバス
102の線D[31:0] へ転送することが出来る。スレーブ
シーケンサ284は制御保存回路150がコプロセッサ
とホスト装置のCPUの間のメールボックスとして使用
されている場合また診断動作中にも制御保存回路150
からSバス102へデータを転送することが出来る。
【0077】操作が制御保存回路150への書き込みの
場合、スレーブシーケンサ284は制御信号をSバスバ
ッファ190およびSバスレジスタ188へまた選択信
号をトランシーバ124へ供給することにより、書き込
むワードを線D[31:0] から適切なトランシーバ124の
1つへ転送できる。スレーブシーケンサ284の主な機
能の1つはSバス102から制御保存回路へこの方法で
マイクロ命令を転送することである。スレーブシーケン
サ284はまた制御保存回路150がコプロセッサとホ
スト装置のCPUの間のメールボックスとして使用中の
場合制御保存回路150へSバス102からのデータを
転送することも出来る。
【0078】現行の実施において操作が制御/保存レジ
スタ168の読み取りまたは書き込みの場合、RUNビ
ットだけが読み出しまたは書き込みされる。スレーブシ
ーケンサ284は書き込むべきデータを直接制御/状態
レジスタ168へ供給するように接続してあり、また制
御/状態レジスタ168から直接読み込まれるデータを
受信するように接続してある。読み込み操作の場合、ス
レーブシーケンサ284はRUNビットの値をバッファ
184を介して1つまたはそれ以上の線D[31:0] へ供給
することが出来る。書き込み操作の場合、PA[27:0]線上
のアドレスはRUNビットをセットするかまたはクリア
するかを表わし、スレーブシーケンサ284はセットま
たはクリア信号を制御/状態レジスタ168へ直接供給
することが出来る。
【0079】図10から図15はスレーブシーケンサ2
84により制御される操作の間にどのように信号が供給
されるかを詳細に図示している。図16から図25では
DVMAシーケンサ282により制御される操作の間に
どのように信号が供給されるかを詳細に図示している。
いずれの場合にも、操作を制御するシーケンサ内の論理
は受信する信号に基づいて別の部材への信号を供給す
る。論理は従来のデジタル論理設計の原則にしたがって
設計することが出来る。
【0080】図10から図25に図示した信号の大半は
図8および図9を参照して上述したものである。さら
に、それぞれのタイミング図はClk 信号およびprocClk
信号を含んでいる。Sバス102は図7を参照して上述
したようにクロック制御論理回路280で受信するClk
線を有している。クロック制御論理回路280はその結
果レジスタ兼復号回路154へprocClk 信号を供給す
る。
【0081】クロック制御論理回路280は3入力の単
一ANDゲートのように動作することが出来る。1つの
入力はSバス102からのClk である。もう1つの入力
はスレーブシーケンサ284が低値にすることでprocCl
k 信号を停止させる線であり、第3の入力はDVMAシ
ーケンサ282が低値にすることでprocClk 信号を停止
させる線である。従って、procClk はスレーブシーケン
サ284またはDVMAシーケンサ282いずれかによ
り停止できるが、両方のシーケンサが再開を許可した場
合に限って再開することが出来る。prokClk 信号上の不
用意なスパイクを防止するため、スレーブシーケンサ2
84およびDVMAシーケンサ282はSバスのClk 信
号が低値の間だけクロック制御信号の状態を変更できる
ようになっている。
【0082】図10は動作中にprocClk 信号を停止させ
ることなくスレーブシーケンサにより実行される動作を
示している。言い換えれば、動作中のClk 線上のそれぞ
れのパルスがprocClk パルスを発生させるので、コプロ
セッサがマイクロ命令を実行することになる。
【0083】Clk 周期−1の間に、現在のバスマスタは
Siz[2:0]およびRd線上に信号を供給開始し、仮想アドレ
スVAをD[31:0] 線上に供給し続ける。Clk 周期0の間
に、ホストバス制御回路はスレーブシーケンサ284の
AS* 線とSSel* 線を低値にする。ホストバス制御回路は
またPA[27:0]上にVAから得られた物理アドレスも供給
し現在のバスマスタはVAの供給を停止する。
【0084】これに応答して、スレーブシーケンサ28
4はSiz[2:0]上の信号で示されたブロックサイズがスレ
ーブシーケンサ284で支持されていない大きさである
と決定する。つまりClk 周期1の間に、スレーブシーケ
ンサ284はエラーを表わす信号をAck[2:0]に供給開始
する。この信号を検出するとホストバス制御回路はAS*
線をClk 周期2の間に低値にする。Clk 周期2の間にエ
ラー信号の終端を検出すると、ホストバス制御回路はCl
k 周期3の間にSSel* を低値にしてPA[27:0]への物理ア
ドレスの供給を停止する。同様にエラー信号の終端を検
出すると、現在のバスマスタはClk 周期3の間にSiz[2:
0]およびRdへの信号供給を停止する。
【0085】図11から図15はClk 周期0の間に供給
される信号がエラーではないとスレーブシーケンサ28
4が決定しそれによって要求された動作を実行し、マイ
クロ命令の実行を阻止するためにクロック制御論理回路
280へprocClk 信号を停止させる信号を送出する動作
を図示している。それぞれの動作が完了すると、スレー
ブシーケンサ284はクロック制御論理回路280を開
放しprocClk パルスがまた供給されるようにする。
【0086】図11は制御/状態レジスタ168のRU
Nビットを読み取る動作を図示している。Clk 周期1の
間にスレーブシーケンサ284はクロック制御論理回路
280へ信号を送出してprocClk を停止させ、アドレス
バッファ182を経由してCSアドレスバッファ180
へPA[27:0]上の物理アドレスを供給するのに必要な全て
の信号を供給する。Clk 周期2および3の間に次のよう
なことが起こる。物理アドレスは制御/状態レジスタ1
68をアドレスするように接続してあるCSアドレスバ
ッファ180へ伝えられる。スレーブシーケンサ284
はRUNビットの値Reg を制御/状態レジスタ168か
ら読み出す。スレーブシーケンサ284はまたReg をR
UN線上のバッファ184へ供給する。Clk 周期3の間
にスレーブシーケンサ284はワードが供給されること
を表わす信号をAck[2:0]に供給する。Clk 周期4の間に
スレーブシーケンサ284は制御信号をバッファ184
へ供給することでReg をD[31:0] 線上に供給する。おな
じ周期中にスレーブシーケンサ284はクロック制御論
理回路280へ信号を送ってマイクロ命令の実行を再開
できるようにprocClk を再開させる。
【0087】Clk 周期4の開始時にAck[2:0]でワード信
号を受信すると、ホストバス制御回路はClk 周期4の間
にAS* を低値にする。同様に、現在のバスマスタはD[3
1:0]線上に供給された場合にReg を取り扱うように準備
することでワード信号に応答する。
【0088】図12は制御/状態レジスタ168に書き
込む動作、特定すれば制御保存回路150のアドレスn
に保存されたマイクロ命令ルーチンの実行を開始するた
めにRUNビットを設定する動作を示している。上述の
ように、アドレス0はRUNビットがセットされていな
い間にMAR152へ読み込まれており、制御保存回路
150へ繰り返して供給され、制御保存回路は次に実行
するno op 命令を供給する。図12に図示したのと同様
の動作を用いてRUNビットをクリアすることが出来
る。
【0089】Clk 周期1の間に、スレーブシーケンサ2
84はクロック制御論理回路280へ信号を送出してpr
ocClk を停止させ、アドレスバッファ182を経由して
CSアドレスバッファ180へPA[27:0]の物理アドレス
を供給するのに必要な全ての信号を供給する。おなじ周
期中に、現在のバスマスタは制御/状態レジスタ168
に書き込むデータをD[31:0] 上に供給開始することが出
来る。スレーブシーケンサ284はD[31:0] の最上位ビ
ットからまたはこれ以外ではPA[27:0]のアドレスの高次
ビットからRUNビットをセットするかまたはクリアす
るかを決定することが出来る。
【0090】Clk 周期2および3では、スレーブシーケ
ンサ284がD[31:0] の最上位ビットまたはPA[27:0]の
アドレスの高次ビットに従って制御/状態レジスタ16
8のRUNビットをセットするかまたはクリアする信号
を供給する。Clk 周期3ではスレーブシーケンサ284
はAck[2:0]上にワード信号を供給する。
【0091】Ack[2:0]上のワード信号をClk 周期4の開
始時に受信すると、ホストバス制御回路はClk 周期4の
間にAS* を低値にする。同様に、現在のバスマスタはD
[31:0] 上へのデータ供給を停止する。
【0092】Clk 周期5の間に、スレーブシーケンサ2
84はクロック制御論理回路280へ信号を送ってマイ
クロ命令の実行をClk 周期6の間に再開できるようにpr
ocClk を再開させる。ここでアドレス0のマイクロ命令
の実行によりアドレスnをMAR152に読み込ませ、
nのマイクロ命令がClk 周期7の間に取り込まれClk周
期8で復号される。つまり、Clk 周期8では、新しいア
ドレスがマイクロ命令の制御下にMAR152へ読み込
まれマイクロ命令の実行を開始したことになる。
【0093】図13は起動用PROM116からのバイ
トを読み込む動作を示し図11に図示した動作と非常に
良く似ている。主な相違はClk 周期2、3、4にみられ
る。Clk 周期2および3では、スレーブシーケンサ28
4が起動用PROM116へ出力イネーブル信号を供給
してアドレスバッファ182からのアドレスが起動用P
ROM116を経由して伝達されまた1バイトを読み出
すようにする。Clk 周期3で、スレーブシーケンサ28
4は1バイトを供給することを示す信号をAck[2:0]に供
給する。Clk 周期4では、スレーブシーケンサ284は
クロック信号をバッファ184へ供給することでそのバ
イトをD[31:0] へ供給する。おなじ周期中に、スレーブ
シーケンサ284はクロック制御論理回路280へ信号
を送りマイクロ命令の実行を再開し得るようにprocClk
を再開させる。
【0094】Clk 周期4の初めにAck[2:0]上にバイト信
号を受信すると、ホストバス制御回路はClk 周期4の間
AS* を低値にする。同様に、起動時には通常ホスト装置
のCPUである現在のバスマスタが、D[31:0] に供給さ
れる場合にそのバイトを取り扱うように準備することで
バイト信号に応答する。
【0095】図14はClk 周期0の初めにSiz[2:0]へ現
在のバスマスタにより供給される信号で表わされる制御
保存回路150からのワードを読み取る動作を示す。Cl
k 周期1の間に、スレーブシーケンサ284はクロック
制御回路280へ信号を送ってprocClk を停止させ、ま
たアドレスバッファ182を介してCSアドレスバッフ
ァ180へPA[27:0]の物理アドレスを供給するのに必要
な全ての信号を供給する。Clk 周期2では、スレーブシ
ーケンサ284は出力イネーブル信号をCSアドレスバ
ッファ180へ送出して物理アドレスがClk 周期3の間
に制御保存回路150へ供給されるようにする。
【0096】Clk 周期2から4までのそれぞれで、スレ
ーブシーケンサ284はSバスレジスタ188およびS
バスバッファ190へ制御信号を送出してパイプライン
中のどのようなデータでもD[31:0] へ転送させる。Clk
周期2および3の間また他の図面においても同様な周期
の間に供給されたデータは有用なデータであるとは限ら
ないのでジャンク(屑)と称される。Clk 周期3および
4の間に、CSアドレスバッファ180内の物理アドレ
スに応答して制御保存回路150から読み出されたワー
ドが適切なトランシーバ124のひとつを介してSバス
レジスタ188へ転送され、さらにSバスバッファ19
0を通してClk 周期4の終までにD[31:0] へ確実に達す
るようにする。
【0097】Clk 周期3の間に、スレーブシーケンサ2
84はワードをSバスレジスタ188へ保存するための
制御信号を供給し、Ack[2:0]にワードが供給されること
を表わす信号も供給する。Clk 周期4の間に、スレーブ
シーケンサ284はクロック制御論理回路280へproc
Clk を再開させる信号を送出してマイクロ命令の実行を
再開させることが出来る。
【0098】Clk 周期4の初めにAck[2:0]上でワード信
号を受信すると、ホストバス制御回路はClk 周期4の間
AS* を低値にする。同様に、現在のバスマスタはワード
がD[31:0] に供給されるときに取り扱えるように準備す
ることでワード信号に応答する。
【0099】図15は制御保存回路150にワードを書
き込む動作を示している。Clk 周期1の間に、スレーブ
シーケンサ284はクロック制御論理回路280へ信号
を送出してprocClk を停止させ、またアドレスバッファ
182を介してCSアドレスバッファ180へPA[27:0]
上に物理アドレスを供給するために必要な全ての信号を
供給する。同一周期中に、現在のバスマスタは制御保存
回路150へ書き込むワードをD[31:0] に供給開始す
る。
【0100】Clk 周期2では、スレーブシーケンサ28
4が出力イネーブル信号をCSアドレスバッファ180
に供給して制御保存回路150へ物理アドレスが供給さ
れるようにする。おなじ周期中に、スレーブシーケンサ
284はSバスレジスタ188のD[31:0] にワードを保
存するための制御信号も供給する。
【0101】Clk 周期3の間に、スレーブシーケンサ2
84はAck[2:0]にワードが書き込まれつつあることを示
す信号を供給する。Clk 周期4では、スレーブシーケン
サ284は制御保存回路150を書き込み可能とするた
めの信号を供給しまた書き込むワードを適切なトランシ
ーバ124の1つを経由して制御保存回路150へ転送
するための信号を供給し、信号が書き込まれる。
【0102】Ack[2:0]上にClk 周期4の初めにワード信
号を受信すると、ホストバス制御回路はClk 周期4の間
AS* を高値にする。同様に、現在のバスマスタはD[31:
0] 上へのワード供給を停止する。
【0103】Clk 周期5の間に、スレーブシーケンサ2
84は出力イネーブル信号を供給して、次のマイクロ命
令を取り出すための準備としてMAR152からのアド
レスが制御保存回路150へ供給されるようにする。お
なじ周期中に、スレーブシーケンサ284はクロック制
御論理回路280へ信号を送出しClk 周期6の間にマイ
クロ命令の実行が再開できるようにprocClk を再開させ
る。
【0104】図16はスレーブからのワードをレジスタ
兼復号回路154からの信号に応答して読み出すDMA
動作を図示している。Clk 周期−2(図示していない)
では、レジスタ兼復号回路154が読み込むべきワード
についての仮想アドレスVAをレジスタ付トランシーバ
194を経由してSバスレジスタ196へ転送する動作
を完了できる。おなじ周期中に、レジスタ兼復号回路1
54はDVMAシーケンサ282に動作を要求する信号
を供給できる。これに応じて、DVMAシーケンサ28
2はクロック制御論理回路280にすぐに信号を送って
procClk を停止させ、DVMAシーケンサ282が要求
された動作を実行し続けるために別のprocClk パルスが
必要となるまでマイクロ命令の実行が中断される。つま
りprocClk はClk 周期−1の間パルス出力されないこと
になる。
【0105】Clk 周期−1の間、DVMAシーケンサ2
82はBReq* 線を低値にしてSバス102の制御を要求
する。これに応じて、Sバス制御回路はDVMAシーケ
ンサ282のBGnt* 線をClk 周期0の間低値にして、バ
ス制御を許可する。場合によっては、BGnt* 信号までに
さらなる周期が挟まることもあり得る。
【0106】BGnt* 信号を受信すると、DVMAシーケ
ンサ282はレジスタ兼復号回路154の要求した動作
の実行を開始する。Clk 周期1では、DVMAシーケン
サ282はSiz[2:0]線上にワード信号またRd線上に読み
込み信号を供給する。また、DVMAシーケンサ282
はSバスバッファ198に制御信号を供給してSバスレ
ジスタ196からのVAがD[31:0] 線上に供給されるよ
うにする。次に、DVMAシーケンサ282はクロック
制御論理回路280に信号を送出してprocClkを再開さ
せ、Clk 周期2の間に1つのprocClk パルスが発生する
ようにして次のマイクロ命令を実行させる。このマイク
ロ命令の実行では、レジスタ兼復号回路154がSバス
レジスタ196とレジスタ付トランシーバ194を経由
してデータを転送する方向を変化させる信号を供給し、
データはSバス102からSバスバッファ198を通っ
て受信できるようになる。
【0107】図16において、Sバス制御回路はVAを
すぐに物理アドレスへ変換し、またClk 周期2の間にPA
[27:0]線上に物理アドレスを供給する。場合によって
は、物理アドレスの供給までにさらなる周期が挟まるこ
ともあり得る。物理アドレスがすでに利用可能であるこ
とを示すために、Sバス制御回路はClk 周期2の間にAS
* 線も低値にする。
【0108】AS* に応答して、DVMAシーケンサ28
2はClk 周期3と4と5の間にSバスバッファ198へ
制御信号を供給し、VAがもはやD[31:0] に供給されて
いないことを示す。その結果、スレーブがClk 周期4の
間にAck[2:0]にワード信号を供給すると、D[31:0] 上の
ワードをClk 周期5の間にSバスレジスタ196へ転送
できる。Sバス制御回路はBGnt* およびAS* を高値にす
ることでワード信号に応答するが、DVMAシーケンサ
282がすでにSバス102を必要としないためこれは
許容し得ることである。
【0109】DVMAシーケンサ282はクロック制御
論理回路280に信号を送出してprocClk を再開させる
ことでワード信号に応答し、マイクロ命令のシーケンス
が実行されワードの受信と宛先への転送が実行される。
レジスタ兼復号回路154はClk 周期6の間にマイクロ
命令を実行し、ワードがD[31:0] から消去されるまでに
Sバスレジスタ196内に保存されるように信号を供給
する。次のマイクロ命令でレジスタ付トランシーバ19
4ならびに122を介して一組の処理ユニットへワード
を転送することが出来る。
【0110】図17は図16におけるいくつかのClk 周
期のそれぞれの終端でのパイプライン・レジスタの略図
を示している。それぞれの略図では、パイプラインは下
端のSバス102へと上端の1つまたはそれ以上の処理
ユニットから延出している。最上部のパイプラインの段
階は処理ユニットのレジスタ付トランシーバ212を表
わす。第2の段階はレジスタ付トランシーバ122を示
す。第3の段階はレジスタ付トランシーバ194を示
す。第4の段階はSバスレジスタ196を表わす。図1
6の動作に関係しないデータは破線で示してある。
【0111】略図310は、Clk 周期−4などのClk 周
期−2より幾らか先に始まり、仮想アドレスVAは処理
ユニットの1つのレジスタ付トランシーバ212に存在
する。略図312および314では、VAはレジスタ付
トランシーバ122へさらにレジスタ付トランシーバ1
94へ転送されており、パイプラインは図16のClk周
期−2の終端での状態になっている。
【0112】略図316では、Clk 周期−1のあとのパ
イプラインを示し、Sバスレジスタ196内にVAがあ
る。次に、Clk 周期2の終端までに、VAは保存されな
くなり、パイプラインは略図318に図示したように図
16の動作に関連するデータをまったく含まなくなる。
【0113】略図320ではClk 周期6以降のパイプラ
インを示し、Sバス102からのデータワードはSバス
レジスタ196に保存されている。略図322、32
4、326はClk 周期7、8、9でワードがどのように
転送されて全処理ユニットのレジスタ付トランシーバ2
12に到達するかを示している。Clk 周期10では、ワ
ードは一組の処理ユニットのそれぞれのSRAM240
内に書き込まれ、動作を完了できる。
【0114】図17に図示したいくつかの段階はそれぞ
れのマイクロ命令を実行した結果として発生することが
出来る。たとえば、略図310、312、314、31
6は図16のClk 周期−1より先行する周期において実
行したマイクロ命令の結果として発生し、また略図32
0、322、324、326はそれぞれClk 周期6、
7、8、9で実行したマイクロ命令の結果として発生す
るものである。略図318はマイクロ命令の実行の全て
の作用を明示的に図示してはいないが、Clk 周期2で実
行したマイクロ命令は前述のように後続のデータ転送方
向に影響を有している。
【0115】図18はレジスタ兼復号回路154からの
信号に応答してワードを書き込むDMA動作を図示して
いる。Clk 周期−2(図示していない)において、レジ
スタ兼復号回路154はレジスタ付トランシーバ194
を経由してSバスレジスタ196に書き込むワードにつ
いての仮想アドレスVAを転送しまたレジスタ付トラン
シーバ122を経由してレジスタ付トランシーバ194
に書き込むワードを転送する動作を完了することが出来
る。おなじ周期中に、レジスタ兼復号回路154はDV
MAシーケンサ282に動作を要求する信号を供給でき
る。これに応じて、DVMAシーケンサ282はすぐに
クロック制御論理回路280へ信号を供給してprocClk
を停止させ、DVMAシーケンサ282が要求された動
作を実行し続けるために別のprocClk パルスが必要とな
るまでマイクロ命令の実行が中断される。つまりprocCl
k はClk 周期−1の間はパルス出力されないことにな
る。
【0116】Clk 周期−1の間、DVMAシーケンサ2
82はBReq* 線を低値にしてSバス102の制御を要求
する。これに応じてSバス制御回路はDVMAシーケン
サ282のBGnt* 線をClk 周期0の間低値にして、バス
制御を許可する。場合によってはBGnt* 信号以前にさら
なる周期が挟まることも有り得る。
【0117】BGnt* 信号を受信すると、DVMAシーケ
ンサ282はレジスタ兼復号回路154の要求した動作
を実行開始する。Clk 周期1では、DVMAシーケンサ
282はSiz[2:0]にワード信号またRdに読み取り信号を
供給する。また、DVMAシーケンサ282はSバスバ
ッファ198に制御信号を供給してSバスレジスタ19
6からのVAがD[31:0] 線上に供給されるようにする。
次に、DVMAシーケンサ282はクロック制御論理回
路280に信号を送出してClk 周期2の間にprocClk パ
ルスを1つ供給させ、次のマイクロ命令が実行されるよ
うにする。このマイクロ命令の実行において、レジスタ
兼復号回路154はレジスタ付トランシーバ194から
Sバスレジスタ196へ書き込むワードを送出する信号
を供給して書き込むワードがSバスバッファ198を経
由してSバス102へ供給できるようにする。
【0118】図18では、Sバス制御回路はVAをすぐ
に物理アドレスへ変換して、Clk 周期2の間に物理アド
レスをPA[27:0]へ供給する。場合によっては物理アドレ
スが供給されるまでにさらなる周期が挟まることもあり
得る。物理アドレスが利用可能になったことを示すた
め、Sバス制御回路はClk 周期2の間にAS* も低値にす
る。
【0119】スレーブがClk 周期4の間にAck[2:0]にワ
ードを受信したことを表わすワード信号を供給すると、
DVMAシーケンサ282はClk 周期5でデータワード
の供給を停止する。Sバス制御回路はBGnt* 線およびAS
* 線を低値にすることでワード信号にも応答するが、D
VMAシーケンサ282がもはやSバス102を必要と
しないためこれは許容し得ることである。
【0120】DVMAシーケンサ282はクロック制御
論理回路280へ信号を送出してprocClk を再開させて
ワード信号にも応答し、マイクロ命令の通常の実行が再
びClk 周期5で開始できるようにする。スレーブはすで
にSiz[2:0]とPA[2:0] を必要としないので、これらの線
上の信号は周期6で消去される。
【0121】図19は図18のいくつかのClk 周期のそ
れぞれの終端でのレジスタのパイプラインの略図であ
る。
【0122】略図350は、Clk 周期−4などClk 周期
−2より幾らか先に始まり、仮想アドレスVAが処理ユ
ニットの1つのレジスタ付トランシーバ212に存在し
ている。略図352はClk 周期−3のことがあり、VA
はレジスタ付トランシーバ122へ転送されており、書
き込むデータワードは処理ユニットの1つのレジスタ付
トランシーバ212に存在している。略図354では、
VAはレジスタ付トランシーバ194へさらに転送され
ており、データワードがレジスタ付トランシーバ122
へ転送されているので、パイプラインは図18のClk 周
期−2の終端での状態になっている。
【0123】略図356はClk 周期−1のあとでのパイ
プラインを示し、VAはSバスレジスタ196にまたデ
ータワードはレジスタ付トランシーバ194にある。次
に、Clk 周期2の終端までに、データワードはSバスレ
ジスタ196に到達し略図358に図示したようにSバ
ス102へ供給できるようになる。
【0124】図16から図19の単一ワードDMA読み
出しおよび書き込み動作は、たとえばカーネルまたはそ
の他の特定のデータを1つまたはそれ以上の処理ユニッ
トとホスト装置のメモリまたは別のメモリ装置の間での
転送を行なうためにデバッグしている間に使用すること
が出来る。
【0125】また図16および図19に図示したように
単一ワードのDMA読み出しおよび書き込み動作は図1
4および図15のスレーブ動作と組み合わせることによ
って処理ユニットとホスト装置のCPUの間または制御
保存回路150を介して別のバスマスタの間でデータ転
送するために使用できる。言い換えれば、スレーブシー
ケンサ284はここへまたはここからDMA読み出しま
たは書き込み動作が実行されるスレーブとなることが出
来る。一般に、スレーブシーケンサ284が制御保存回
路150から読み出しまたはここへ書き込んでいるどの
Clk 周期でも、スレーブシーケンサ284がクロック制
御論理回路280へ信号を送出してprocClk を停止させ
ることが出来る。その他のClk 周期の間、マスタシーケ
ンサ282はマスタ動作を実行するための必要に応じて
クロック制御論理回路へ信号を送ってprocClk を再開さ
せることが出来る。
【0126】同様に、図18および図19に図示したよ
うな単一ワードのDMA書き込み動作は図12の場合と
類似のスレーブ動作と組み合わせることによってRUN
ビットをクリアし、コプロセッサが実際にそれ自身を停
止させることが出来るようになっている。言い換えれ
ば、レジスタ兼復号回路154はRUNビットのクリア
を検出してno op 命令を実行することによりこれに応答
することが出来る。
【0127】しかし単一ワードのDMA読み出しおよび
書き込み動作は画像の転送のためには効率的ではない。
このような転送は通常大量のワードが関係してくるため
である。
【0128】図20から図25は複数ワードのDMA読
み出しおよび書き込みを図示している。これらの動作は
ブロック転送またはバースト転送とも称し、画像の一部
または全部を定義するデータの転送において非常に有用
であり得る。
【0129】図20および図21では、レジスタ兼復号
回路154からの信号に応答してスレーブから複数ワー
ドを読み出すDMA動作の開始と終了をそれぞれ示して
いる。図20においてClk 周期4を通る第1の数周期で
は、図16のそれと同一であるが、仮想アドレスVAが
ワードブロック内のどのワードを第1に転送するかを示
している点で異なっている。
【0130】ブロック転送はSiz[2:0]で示されるため、
スレーブは一連のデータワードを供給することで応答す
る。スレーブはたとえば、図20のClk 周期5の初めで
示したように、各周期に1つのワードを供給できる。ス
レーブはこれ以外に図21に図示したように1つおきの
周期ごとに1ワードを供給することも出来る。いずれの
場合にも、スレーブは図21のClk 周期6に図示したよ
うに複数ワードの転送が完了するまで継続することにな
る。より一般的には、データワード間のほとんどすべて
の他のクロック周期番号でスレーブにデータの供給また
は併合を許容することが出来るが、トランザクションが
長すぎればバス制御回路がこれを終了させてもよい。マ
スタはスレーブがAck[2:0]上に信号を供給する場合いつ
でも別のワードを供給できなければならない。
【0131】図20のClk 周期6から10のそれぞれと
図21のClk 周期2、4、6の間、クロック制御論理回
路280はprocClk パルスを供給してDVMAシーケン
サ282からの信号に応答し、レジスタ兼復号回路15
4がマイクロ命令を実行する。これらのマイクロ命令の
実行において、レジスタ兼復号回路154はD[31:0]か
らSバスレジスタ196にデータワードそれぞれを保存
するためとパイプラインに沿って処理ユニットへデータ
ワードを進めるために信号を供給する。一方、図21の
Clk 周期1、3、5の間、DVMAシーケンサ282は
クロック制御論理回路280へ信号を供給してprocClk
を停止させる。
【0132】その結果、図21のClk 周期4の間にAck
[2:0]に最後のワード信号を供給すると、Sバス制御回
路はBGnt* とAS* 線を高値にしてワード信号に応答す
る。これはDVMAシーケンサ282がもはやSバス1
02を必要としないため許容し得ることである。DVM
Aシーケンサ282はクロック制御論理回路280へ信
号を送ってprocClk を再開させ、処理ユニットへのデー
タワード転送を完了するためのマイクロ命令がClk 周期
6から10の間に実行されるようにする。
【0133】図22は図20および図21のいくつかの
Clk 周期のそれぞれの終端におけるレジスタのパイプラ
インの略図である。略図370および372はそれぞれ
図17の略図310および324と同一である。略図3
74では、図20のClk 周期7のあとのパイプラインを
示し、第1のデータワードはレジスタ付トランシーバ1
94に保存されており、第2のデータワードはSバスレ
ジスタ196に保存されている。同様に、略図376お
よび378はそれぞれ図20のClk 周期8と9のあとの
パイプラインを示し、この時点でパイプラインはデータ
ワードで埋められている。Clk 周期9のあとで開始し
て、それぞれの処理ユニットのレジスタ付トランシーバ
212に保存されているデータワードは一組の処理ユニ
ットのそれぞれのSRAM240に保存することが出来
る。たとえば、レジスタ兼復号回路154はそれぞれの
Clk 周期にマイクロ命令を実行して書き込みイネーブル
信号をそれぞれの周期にただ1つの処理ユニットのSR
AM240へ供給し、データワードが均等に分配され1
つのデータワードがそれぞれの処理ユニットに格納され
るようにすることが出来る。
【0134】スレーブが全てのClk 周期でワードを供給
する場合、DVMAシーケンサ282はクロック制御論
理回路280に信号を供給して、全てのClk 周期でproc
Clkパルスを供給させ、図20に図示したようにパイプ
ラインを満たしておくことが出来る。スレーブが1つお
きのClk 周期でデータワードを供給する場合、DVMA
シーケンサ282はクロック制御論理回路280に信号
を供給して1つおきのClk 周期にprocClk パルスを供給
させて、D[31:0] からのデータワードが交互のClk 周期
でSバスレジスタ196に保存されるようにして、図2
1に図示したようにパイプラインを満たしておくことが
出来る。一般に、DVMAシーケンサ282はクロック
制御論理回路280に信号を送出することによってD[3
1:0] にワードが存在することを示すスレーブからのAck
[2:0]上の信号に応答し、procClkパルスを供給すること
でスレーブがワードを供給するどのような周期にもDV
MAシーケンサ282がデータを取り扱えるようにして
いる。
【0135】略図380は図21のClk 周期6のあとの
パイプラインを示しており、スレーブからの最後のデー
タワードNがSバスレジスタ196に保存されている。
略図382、384、386はそれぞれ図21のClk 周
期7、8、9のあとのパイプラインを示しており、ワー
ドNがどのようにレジスタ付トランシーバ212に到達
し、ここからSRAM240へ保存されて複数ワードの
読み込み動作を完了するかを示している。前述のよう
に、データワードは均等に分配でき、1つのワードがそ
れぞれの処理ユニットのSRAM240に保存される。
【0136】スレーブからの複数ワードを保存するため
に利用できる時間が限られているので、転送が完了する
まで複数ワード転送でのワードについての操作を実行す
るのは通常不可能である。しかしこれが可能だとする
と、画像を読み込むとおりに画像を縮小するまたはその
他の処理を施すことまたは直前に保存した画像と読み出
した画像を比較することが可能となり有利であろう。
【0137】図23および図24ではそれぞれレジスタ
兼復号回路154からの信号に応答してスレーブへ複数
ワードを書き込むDMA動作の開始と終了を図示してい
る。Clk 周期4を通る図23の第1の数周期は図18と
同一であるが、仮想アドレスVAがワードブロック内の
どのワードを第1に転送するかを示している点で異なっ
ている。
【0138】ブロック転送はSiz[2:0]で示されるので、
スレーブは図23のClk 周期5で始まるAck[2:0]上の一
連のワード信号で応答し、それぞれのワード信号でデー
タワードがスレーブに受信されたことを示す。それぞれ
のワード信号に応答して、DVMAシーケンサ282は
次のデータワードをD[31:0] へ供給する。スレーブは図
23に図示したように全周期でAck[2:0]にワード信号を
供給しまたは図24に図示したように1つおきにまたは
上述のようにワード間の何らかのほかのクロック周期数
を有する別の間隔で、図24のClk 周期5で図示したよ
うに複数ワードの転送が完了するまで供給することが出
来る。
【0139】図23のClk 周期5から10のそれぞれと
図24の周期0、2、4を除く図24のClk 周期−1、
1、3の間、、DVMAシーケンサ282はクロック制
御回路280へ信号を送出してそれぞれの周期でprocCl
k パルスを供給させ、これに応じてレジスタ兼復号回路
154はマイクロ命令を実行する。これらのマイクロ命
令の実行において、レジスタ兼復号回路154はSバス
レジスタ196とレジスタ付トランシーバ194とレジ
スタ付トランシーバ122とそれぞれの処理ユニットの
レジスタ付トランシーバ212へ信号を供給し、データ
ワードがSバス102に向かい処理ユニットからパイプ
ラインに沿って進むようにする。一方、図24の周期
0、2、4の間、DVMAシーケンサ282はクロック
制御回路280に信号を送出してprocClk 信号を停止さ
せる。たとえば、レジスタ兼復号回路154はそれぞれ
のClk 周期でマイクロ命令を実行して、それぞれのClk
周期で別の処理ユニットのレジスタ付トランシーバ21
2へ供給源選択信号を供給し、1つのデータワードがそ
れぞれの処理ユニットから受信されるようにすることが
出来る。
【0140】その結果、スレーブが図24のClk 周期4
の間にAck[2:0]に最後のワード信号を供給すると、Sバ
ス制御回路はBGnt* とAs* 線を高値にすることでワード
信号に応答するが、これはDVMAシーケンサ282が
もはやSバス102を必要としていないため許容し得る
ことである。DVMAシーケンサ282はクロック制御
論理回路280に信号を送出してprocClk を再開させ、
通常のマイクロ命令の実行がClk 周期5で再開されるよ
うにする。
【0141】図25は図23および図24のいくつかの
Clk 周期のそれぞれの終端でのレジスタのパイプライン
の略図を示している。略図410および412はそれぞ
れ図19の略図350および352と同一である。略図
414は図23のClk 周期−2のあとのパイプラインを
示し、仮想アドレスVAがレジスタ付トランシーバ19
4に存在しまたこの後ろのパイプラインがワード1とワ
ード2で埋められている。略図416および418は図
23のClk 周期−1および2のあとのパイプラインをそ
れぞれ示しており、このあとパイプラインはAck[2:0]上
のスレーブからのワード信号の準備としてデータワード
で埋められている。
【0142】スレーブが図23のように全てのClk 周期
でまたは図24のように1つおきのClk 周期でAck[2:0]
にワード信号を供給すると、DVMAシーケンサ282
は同様に全てのClk 周期でまたは1つおきのClk 周期で
それぞれSバス102にデータワードを供給することが
できる。略図420、422、424、426ではそれ
ぞれ図24のClk 周期−3、−1、1、3のあとのパイ
プラインを示しており、ワードNがどのようにSバスレ
ジスタ196へ到達し、ここからSバス102へ供給さ
れて複数ワードの書き込み動作を完了できるかを示して
いる。
【0143】図15から図25の動作を行なうために実
行するマイクロ命令は、図6について前述したように、
ホスト装置のメモリから制御保存回路150へロードす
ることが出来る。ホスト装置は開始点と長さによるなど
で制御保存回路150の内容の記録を保存するようにプ
ログラムしておくことが出来る。
【0144】上述の実施はマイクロ命令に条件の検査を
行なうことを許可していない。DVMAシーケンサ28
2がホストバスを待機している場合はいつでもマイクロ
命令の実行を阻止するので、マイクロ命令はホストバス
上で遅延が存在しないかのように実行される。
【0145】上述の実施例で示唆されるように、典型的
なマイクロ命令のシーケンスはパイプライン中に仮想ア
ドレスを供給することから開始することが出来る。書き
込み動作を実行中の場合には、シーケンスはパイプライ
ン中に書き込むべきデータも供給可能である。そのあと
でバス制御を要求する。バス制御が受け入れられると、
アドレスが供給され、書き込み動作の場合にはデータが
パイプラインに送出される。スレーブが書き込み動作に
応答すると、データはパイプラインへ供給される。読み
込み動作の場合、データはスレーブが供給したかのよう
にパイプラインから保存される。
【0146】本発明は米国特許第5,065,437
号、米国特許第5,048,109号、米国特許第5,
129,014号、米国特許第5,131,049号に
記載されている形式の画像処理を含む多くの方法に応用
することが出来る。これらの画像処理技術では第1の画
像を定義するデータを使用して、浸蝕や拡大といった上
述のセラの書籍に記載されている演算などの操作を通じ
て第2の画像を取得している。このような演算は、たと
えばそれぞれが原本画像をシフトしてシフトした画像を
取得し次に原本画像からの値とシフトした画像からの値
をそれぞれの位置で用いてブール代数演算を実行するよ
うな一連の下位演算により実行できる。コプロセッサは
このような演算を上述のようにホストメモリからDMA
操作を通して取得した画像データについて実行すること
が出来る。
【0147】本発明はその他の各種の演算たとえば画素
の計数、グレースケール形態化、歪曲検出、および画像
に対するブール演算などを実行するために応用すること
も可能である。
【0148】本発明は多数の画像を取り扱うようなまた
は非常に大きな画像を取り扱うような状況に特に関連す
る。画像をホストバス経由で転送する能力はこのような
状況で非常に重要である。
【0149】本発明はコプロセッサがホストバスのほか
のマスタとコプロセッサの制御保存回路を通じて通信す
るような実施に関連して説明した。本発明はまたその他
の通信技術たとえばホストメモリの一領域を介してまた
はホスト処理装置への割り込み線を介して実施してもよ
い。
【0150】本発明は並列処理装置内の処理装置がホス
トバス上に供給されるアドレスを取得できるような実施
に関連して説明した。本発明はまたホストバスへのアド
レスを取得するためのその他の技術たとえば特化したア
ドレス計算回路などを用いて実施してもよい。
【図面の簡単な説明】
【図1】 ホスト処理装置のバスへコプロセッサとして
接続することのできる並列処理装置の一般的部材を示す
略ブロック図である。
【図2】 Aは図1のスレーブ回路がコプロセッサの処
理要求に応答する一般的動作を示す流れ図、Bは図1の
コプロセッサ内の処理ユニットからホストバス上のスレ
ーブ回路へデータを転送するマスタの処理における一般
的動作を示す流れ図、Cは図1のコプロセッサ内の一組
の処理ユニットへホストバス上のスレーブ回路からデー
タを転送するマスタの処理における一般的動作を示す流
れ図である。
【図3】 Sparc-Station のSバスに接続したSIMD
並列処理装置の実施における部材を示す略ブロック図で
ある。
【図4】 図3の制御回路の部材を示す略ブロック図で
ある。
【図5】 図3の処理ユニットの部材を示す略ブロック
図である。
【図6】 図4の制御保存回路にマイクロ命令をロード
することにおける一般的動作を示す流れ図である。
【図7】 図3のボックスへのクロック信号を制御する
部材を示す略ブロック図である。
【図8】 図7のDVMAシーケンサをSバスにまたマ
スタ回路のその他の回路に接続する線を表わす略ブロッ
ク図である。
【図9】 図7のスレーブシーケンサをSバスへまたス
レーブ回路のその他の部材へ接続する線を示す略ブロッ
ク図である。
【図10】 図9のスレーブシーケンサがエラーを含む
信号にどのように応答するかを示すタイミング図であ
る。
【図11】 制御/状態レジスタからデータを読み出す
操作を要求する信号に対して図9のスレーブシーケンサ
がどのように応答するかを示すタイミング図である。
【図12】 制御/状態レジスタ内にRUNビットを書
き込む操作を要求する信号に対して図9のスレーブシー
ケンサがどのように応答するかを示すタイミング図であ
る。
【図13】 起動用PROMからデータを読み出す操作
を要求する信号に対して図9のスレーブシーケンサがど
のように応答するかを示すタイミング図である。
【図14】 制御保存回路からデータを読み出す操作を
要求する信号に対して図9のスレーブシーケンサがどの
ように応答するかを示すタイミング図である。
【図15】 制御保存回路へデータを書き込む操作を要
求する信号に対して図9のスレーブシーケンサがどのよ
うに応答するかを示すタイミング図である。
【図16】 ホスト装置のメモリからデータを読み出す
DMA操作を要求する信号に対して図8のDVMAシー
ケンサがどのように応答するかを示すタイミング図であ
る。
【図17】 図16の操作の間にパイプライン・レジス
タ回路を通るデータの動きを示す略流れ図である。
【図18】 ホスト装置のメモリからのデータを書き込
むDMA操作を要求する信号に対して図8のDVMAシ
ーケンサがどのように応答するかを示すタイミング図で
ある。
【図19】 図18の操作の間にパイプライン・レジス
タ回路を通るデータの動きを示す略流れ図である。
【図20】 複数ワードを読み込むDMA操作を要求す
る信号に図8のDVMAシーケンサがどのように応答を
開始するかを示すタイミング図である。
【図21】 複数ワードを読み込むDMA操作を要求す
る信号に対して図8のDVMAシーケンサがどのように
応答を完了するかを示すタイミング図である。
【図22】 図20および図21の操作の間にパイプラ
イン・レジスタ回路を通過するデータの動きを示す略流
れ図である。
【図23】 複数ワードを書き込むDMA操作を要求す
る信号に対して図8のDVMAシーケンサがどのように
応答を開始するかを示すタイミング図である。
【図24】 複数ワードを書き込むDMA操作を要求す
る信号に対して図8のDMVAシーケンサがどのように
応答を完了するかを示すタイミング図である。
【図25】 図23および図24の操作の間にパイプラ
イン・レジスタ回路を通過するデータの動きを示す略流
れ図である。
【符号の説明】
10 ホスト処理装置、12 ホストバス、14 CP
U、16 メモリ、18ホストバス制御回路、20 コ
プロセッサ、22 処理ユニット、24 コプロセッサ
制御回路、30 ホストバス接続回路、32 スレーブ
回路、34 マスタ回路、100 Sparc-Station ワー
クステーション、102 Sバス、112 DVMAイ
ンタフェース、114 スレーブインタフェース、11
6 起動用PROM、118 ケーブル、122 レジ
スタ付トランシーバ、124 トランシーバ124、1
26 制御回路、130 処理ユニット、150 制御
保存回路、152 MAR、154 レジスタ兼復号回
路、156 共通データバス、180 CSアドレスバ
ッファ、188 Sバスレジスタ、190 Sバスバッ
ファ、192 定数バッファ、194 レジスタ付トラ
ンシーバ、196Sバスレジスタ、198 Sバスバッ
ファ、212 レジスタ付トランシーバ、220 マイ
クロプロセッサ、240 SRAM、280 クロック
制御論理回路、282 DVMAシーケンサ、284
スレーブシーケンサ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 次のものを含むコプロセッサ:複数の処
    理ユニット;前記処理ユニットを制御するための信号を
    供給するために接続してあるコプロセッサ装置を制御す
    るためのコプロセッサ制御回路;およびホストバスを含
    むホスト処理装置に前記コプロセッサ装置を接続するた
    めのホストバス接続回路;前記ホストバス接続回路は次
    のものを含む:コプロセッサ操作を要求する前記ホスト
    バスからの信号を受信するために接続してあり、さらに
    前記コプロセッサ装置が要求されたコプロセッサ操作を
    実行するように、前記コプロセッサ制御回路へ信号を供
    給することによって、コプロセッサ操作を要求する前記
    ホストバスからの信号に応答するために接続してあるス
    レーブ回路;およびデータ転送操作を要求する前記コプ
    ロセッサ制御回路からの信号を受信するために接続して
    あり、さらに要求されたデータ転送操作を実行するため
    にホストバス操作を要求する前記ホストバスへの信号を
    供給することにより、また前記コプロセッサから前記ホ
    ストバスへまたは前記ホストバスから前記コプロセッサ
    へデータを転送することによって、データ転送操作を要
    求する前記コプロセッサ制御回路からの信号に応答する
    ようにも接続してあるマスタ回路。
JP31385093A 1992-12-18 1993-12-14 コプロセッサ Expired - Fee Related JP3556966B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/993,256 US5655131A (en) 1992-12-18 1992-12-18 SIMD architecture for connection to host processor's bus
US993256 1992-12-18

Publications (2)

Publication Number Publication Date
JPH0773155A true JPH0773155A (ja) 1995-03-17
JP3556966B2 JP3556966B2 (ja) 2004-08-25

Family

ID=25539306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31385093A Expired - Fee Related JP3556966B2 (ja) 1992-12-18 1993-12-14 コプロセッサ

Country Status (4)

Country Link
US (1) US5655131A (ja)
EP (1) EP0602915B1 (ja)
JP (1) JP3556966B2 (ja)
DE (1) DE69327150T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003151A (ja) * 2008-06-20 2010-01-07 Renesas Technology Corp データ処理装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2987308B2 (ja) * 1995-04-28 1999-12-06 松下電器産業株式会社 情報処理装置
US6321323B1 (en) * 1997-06-27 2001-11-20 Sun Microsystems, Inc. System and method for executing platform-independent code on a co-processor
US6608625B1 (en) 1998-10-14 2003-08-19 Hitachi, Ltd. Three dimensional graphic processor
US6560674B1 (en) 1998-10-14 2003-05-06 Hitachi, Ltd. Data cache system
US6347344B1 (en) 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
US6434649B1 (en) 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
KR100385233B1 (ko) * 2000-03-14 2003-05-23 삼성전자주식회사 데이터 프로세싱 시스템의 익스포넌트 유닛
TW514791B (en) * 2001-05-28 2002-12-21 Via Tech Inc Structure, method and related control chip for accessing device of computer system with system management bus
US6901421B2 (en) 2002-03-25 2005-05-31 The Boeing Company System, method and computer program product for signal processing of array data
US7500083B2 (en) * 2005-08-15 2009-03-03 Silicon Informatics Accelerated processing with scheduling to configured coprocessor for molecular data type by service and control coprocessor upon analysis of software code
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
US8099537B2 (en) * 2006-04-26 2012-01-17 Panasonic Corporation Method, device, and system for transmitting data fragments over multiple transmission lines and techniques for stopping data transmission
KR20110013868A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템
US8732437B2 (en) * 2010-01-26 2014-05-20 Oracle America, Inc. Low-overhead misalignment and reformatting support for SIMD
US9262704B1 (en) * 2015-03-04 2016-02-16 Xerox Corporation Rendering images to lower bits per pixel formats using reduced numbers of registers
US9665415B2 (en) * 2015-09-26 2017-05-30 Intel Corporation Low-latency internode communication
CN108268281B (zh) * 2017-01-04 2021-12-07 中科创达软件股份有限公司 处理器协同方法及电路

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
JPS56164464A (en) * 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4745546A (en) * 1982-06-25 1988-05-17 Hughes Aircraft Company Column shorted and full array shorted functional plane for use in a modular array processor and method for using same
US4814973A (en) * 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
US4850027A (en) * 1985-07-26 1989-07-18 International Business Machines Corporation Configurable parallel pipeline image processing system
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
DE3851005T2 (de) * 1987-06-01 1995-04-20 Applied Intelligent Syst Inc Paralleles Nachbarverarbeitungssystem und -Verfahren.
US5129092A (en) * 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
US5230042A (en) * 1987-09-25 1993-07-20 Minolta Camera Kabushiki Kaisha Digital image processing apparatus
JPH01147656A (ja) * 1987-12-03 1989-06-09 Nec Corp マイクロプロセッサ
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US5148547A (en) * 1988-04-08 1992-09-15 Thinking Machines Corporation Method and apparatus for interfacing bit-serial parallel processors to a coprocessor
JPH0786870B2 (ja) * 1988-04-15 1995-09-20 株式会社日立製作所 コプロセツサのデータ転送制御方法およびその回路
US5038282A (en) * 1988-05-11 1991-08-06 Massachusetts Institute Of Technology Synchronous processor with simultaneous instruction processing and data transfer
US5268856A (en) * 1988-06-06 1993-12-07 Applied Intelligent Systems, Inc. Bit serial floating point parallel processing system and method
US5251295A (en) * 1988-07-11 1993-10-05 Minolta Camera Kabushiki Kaisha Image processing system having slave processors for controlling standard and optional modules
GB2225882A (en) * 1988-12-06 1990-06-13 Flare Technology Limited Computer bus structure for multiple processors
JPH02230383A (ja) * 1989-03-03 1990-09-12 Hitachi Ltd 画像処理装置
JP3066908B2 (ja) * 1990-08-27 2000-07-17 キヤノン株式会社 符号,復号装置
US5325500A (en) * 1990-12-14 1994-06-28 Xerox Corporation Parallel processing units on a substrate, each including a column of memory
US5379438A (en) * 1990-12-14 1995-01-03 Xerox Corporation Transferring a processing unit's data between substrates in a parallel processor
US5437045A (en) * 1992-12-18 1995-07-25 Xerox Corporation Parallel processing with subsampling/spreading circuitry and data transfer circuitry to and from any processing unit
US5428804A (en) * 1992-12-18 1995-06-27 Xerox Corporation Edge crossing circuitry for SIMD architecture
US5375080A (en) * 1992-12-18 1994-12-20 Xerox Corporation Performing arithmetic on composite operands to obtain a binary outcome for each multi-bit component
US5450604A (en) * 1992-12-18 1995-09-12 Xerox Corporation Data rotation using parallel to serial units that receive data from memory units and rotation buffer that provides rotated data to memory units
US5408670A (en) * 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5450603A (en) * 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003151A (ja) * 2008-06-20 2010-01-07 Renesas Technology Corp データ処理装置

Also Published As

Publication number Publication date
DE69327150D1 (de) 2000-01-05
DE69327150T2 (de) 2000-04-13
EP0602915B1 (en) 1999-12-01
EP0602915A3 (en) 1996-01-24
US5655131A (en) 1997-08-05
EP0602915A2 (en) 1994-06-22
JP3556966B2 (ja) 2004-08-25

Similar Documents

Publication Publication Date Title
JPH0773155A (ja) ホスト処理装置のバスへ接続するためのsimdアーキテクチャ
JP3669576B2 (ja) コンピュータシステム
US5696989A (en) Microcomputer equipped with DMA controller allowed to continue to perform data transfer operations even after completion of a current data transfer operation
JPH09160861A (ja) ローカル・プロセッサの介入なしにコマンド・ブロックをローカル処理サイドに転送するための情報処理システム
JP2829091B2 (ja) データ処理システム
JPH06223209A (ja) 処理装置との間にデータ転送のためのバスを有するsimdアーキテクチャ
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
US5859990A (en) System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices
US5307471A (en) Memory controller for sub-memory unit such as disk drives
EP0212637B1 (en) Mircrocomputer
US5862407A (en) System for performing DMA byte swapping within each data element in accordance to swapping indication bits within a DMA command
JP3971535B2 (ja) Simd型プロセッサ
US6229543B1 (en) Microprocessor, and graphics processing apparatus and method using the same
US6134642A (en) Direct memory access (DMA) data transfer requiring no processor DMA support
US6727903B1 (en) Microprocessor, and graphics processing apparatus and method using the same
JP2001134538A (ja) 信号処理装置
JPH06274450A (ja) データ転送システム
JPS63223943A (ja) ダイレクトメモリアクセス制御装置
JPH0736806A (ja) Dma方式
JP2533886B2 (ja) デ―タ転送方式
JPH0612368A (ja) 高精細画像処理装置
JPH02166548A (ja) 共通バス制御方式
JP2000311249A (ja) グラフィック処理装置とそのグラフィックコマンド処理方法
JPS6293742A (ja) プロセツサ間インタフエ−ス方式
JPH0619817A (ja) 通信プロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040317

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040514

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees