JPH0877347A - 画像/グラフィックス処理用のデータ処理装置およびその操作方法 - Google Patents

画像/グラフィックス処理用のデータ処理装置およびその操作方法

Info

Publication number
JPH0877347A
JPH0877347A JP7085856A JP8585695A JPH0877347A JP H0877347 A JPH0877347 A JP H0877347A JP 7085856 A JP7085856 A JP 7085856A JP 8585695 A JP8585695 A JP 8585695A JP H0877347 A JPH0877347 A JP H0877347A
Authority
JP
Japan
Prior art keywords
address
transfer
packet transfer
memory
bit
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
JP7085856A
Other languages
English (en)
Inventor
Robert J Gove
ジェイ.ゴウブ ロバート
M Guttag Karl
エム.ガタッグ カール
Keith Balmer
ブラマー キース
Christopher J Read
ジェイ.リード クリストファー
Robertson Iain
ロバートソン イェイン
Ing Symons Nicholas
イング − シモンズ ニコラス
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/209,123 external-priority patent/US5651127A/en
Priority claimed from US08/209,124 external-priority patent/US5487146A/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH0877347A publication Critical patent/JPH0877347A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Image Input (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 画像/グラフィックス処理用のデータ処理装
置において、メモリアクセスのアドレス制御方式を改善
する。 【構成】 データ処理装置100は、メモリ10、2
0、ガイドテーブル、及びアドレス発生回路を有し、制
御回路80は、パケット転送リクエスト、及びパケット
転送パラメータを受け、該パケット転送パラメータは、
スタートアドレス、ガイドテーブルエントリ、及びテー
ブルポインタを含む。ガイドテーブルは、ガイドテーブ
ルエントリを含み、それぞれのエントリは、アドレス
値、アドレスのブロックを定義するディメンション値を
含む。アドレス発生回路は、スタートアドレス、及びガ
イドテーブルエントリのアドレス値から形成されるスタ
ートアドレスを有するそれぞれのガイドテーブルエント
リに対応するメモリアクセス用のアドレスのブロックの
集合を形成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デジタルデータ処理の
技術分野にあり、より詳細には特にデジタル画像/グラ
フィック処理のようなデジタルデータ処理を行うマイク
ロプロセッサ回路アーキテクチャおよび方法に関する。
【0002】
【従来技術】本発明の実施例は用途が多く、そのうちの
いくつかは説明のための背景として本明細書に説明した
コンピュータグラフィックの分野に関する。ビットマッ
プグラフィックとして知られているコンピュータグラフ
ィックの分野では、コンピュータメモリは、画像のうち
の個々の画素すなわちピクセルのデータを画像内のその
ピクセルの位置に対応するメモリ位置に記憶するように
なっている。この画像はディスプレイすべき画像、また
は操作し、記憶し、ディスプレイし、または再送信する
取り込み画像とすることができる。ビットマップコンピ
ュータグラフィックの技術分野は、ダイナミックランダ
ムアクセスメモリ(DRAM)のコストが低下し、かつ
記憶容量が増加したこと、更にマイクロプロセッサのコ
ストが低下し、処理パワーが増大したことにより、大幅
に有利となった。これらの部品のコストおよび性能が有
利に変わったことにより、より大規模で、かつより複雑
なコンピュータ画像システムを経済的に実現することが
可能となった。
【0003】
【発明が解決しようとする課題】ビットマップグラフィ
ックの分野は、画像データ操作に使用される処理タイプ
の変遷において、数回の段階を経験している。まず最初
に、ビットマップグラフィックをサポートするコンピュ
ータシステムは、すべてのビットマップ演算のためにシ
ステムプロセッサを使用していた。このタイプのシステ
ムには数種の欠点がある。第1の欠点として、コンピュ
ータシステムのプロセッサは、ビットマップグラフィッ
クの取り扱いのために特に設計されたものではないこと
が挙げられる。汎用計算に極めて妥当なデザイン選択
は、ビットマップグラフィックシステムには不適当であ
る。従って、ある種のルーチングラフィックのタスクは
低速でしか作動しない。更にビットマップグラフィック
の画像操作のために必要な処理は、他の演算も低速にす
るほど、システムのプロセッサの計算容量に負荷をかけ
ることが、すぐに判った。
【0004】ビットマップグラフィック処理の革新にお
ける次の段階は、専用ハードウェアのグラフィックコン
トローラにあった。これらデバイスは、システムプロセ
ッサの制御により、簡単な図形、例えばライン、楕円お
よび円を描画できる。これらデバイスのうちで、ピクセ
ルブロック転送(PixBlt)を行うこともできるデ
バイスもある。ピクセルブロック転送とは、メモリのあ
る部分から他の部分へ画像データをメモリ上で移動する
操作のことである。ピクセルブロック転送は、ディスプ
レイされていないメモリからビットマップディスプレイ
メモリに転送することにより、標準的画素、例えば特定
タイプのフォントのアルファニューメリックキャラクタ
をディスプレイ内に入れるのに有効である。最も頻繁に
使用されるグラフィック機能のうちのいくつかを行うた
めのビルトインアルゴリズムは、システム性能を改善す
る一つの方法を提供するものである。グラフィックコン
ピュータシステムは、かかるハードウェアのグラフィッ
クコントローラでほとんど実現されていないような他の
機能を有利に含むこともできる。これらの他の機能は、
システムプロセッサによりソフトウェアで実現できる。
これらのハードウェアグラフィックコントローラでは、
一般にシステムプロセッサのビットマップメモリへのご
く限られたアクセスを可能とし、これによりシステムソ
フトウェアがハードウェアのグラフィックコントローラ
の機能の固定された組の機能を拡張できる程度が制限さ
れている。
【0005】グラフィックシステムプロセッサは、ビッ
トマップグラフィック処理の革新において、別の進歩に
寄与した。グラフィックシステムプロセッサとはマイク
ロプロセッサの属性のすべてを有し、更にビットマップ
グラフィックのための特殊機能を含むプログラマブルデ
バイスである。テキサスインスツルメンツ社によって製
造されたTMS34010およびTMS34020グラ
フィックシステムプロセッサは、このクラスのデバイス
の代表例である。これらグラフィックシステムプロセッ
サは、マイクロプロセッサと同様に、記憶されたプログ
ラムに応答するもので、演算論理ユニット、レジスタフ
ァイル内のデータ記憶装置ならびにプログラムフローお
よび外部データメモリの制御により、データを操作でき
る能力を有する。更にこれらデバイスは適当なプログラ
ム制御で作動する特殊グラフィックオペレーション用ハ
ードウェアを含む。これらシステムプロセッサのインス
トラクションセット内の付加インストラクションが、こ
の特殊グラフィック用ハードウェアを制御するようにな
っている。これらインストラクションおよびこれらをサ
ポートするハードウェアは多くのコンテクストで有効な
ベースレベルのグラフィック機能を実行するように選択
されている。従って特定の問題のために選択されたアル
ゴリズムを用いることにより、多くの異なるグラフィッ
クアプリケーションに対してプログラムできる。これに
より、ハードウェア用コントローラからプログラムマイ
クロプロセッサに変えることによって得られる有効性の
増大と同様に有効性が増す。かかるグラフィックシステ
ムプロセッサは、マイクロプロセッサと同様にプログラ
ム可能なデバイスであるので、これらはスタンドアロー
ングラフィックプロセッサ、システムプロセッサにスレ
ーブ制御されるグラフィックコプロセッサ、または密に
結合されたグラフィックコントローラとして作動でき
る。
【0006】いくつかの分野では、経済的に実現できる
ように、よりコスト的に効果的であり、パワーのあるグ
ラフィックオペレーションを利用することが好ましい。
これらの例としては、ビデオ会議、フル動画ビデオによ
るマルチメディア計算、高品位テレビ、カラーファクシ
ミリ、スマートフォトコピー、画像認識システムおよび
デジタル写真がある。これらの分野の各々には固有の問
題がある。画像データ圧縮およびデコンプレッションの
問題はこれらアプリケーションのいくつかにおいて共通
のテーマとなっている。画像および特定のフルモーショ
ンのビデオに必要な送信バンド幅の値および記憶容量は
大きい。許容可能な最終画質を生じさせるような効率的
なビデオ圧縮およびデコンプレッションを用いない場
合、これらのアプリケーションは送信バンド幅および記
憶容量に関連するコストによって制限されてしまう。こ
の分野では、画像処理機能、例えば画像認識およびグラ
フィック機能、例えばディスプレイ制御の双方をサポー
トできる単一システムに対するニーズもある。
【0007】
【課題を解決するための手段】本発明は、メモリアクセ
スのアドレスの制御様式に関する。本発明のデータ処理
装置は、メモリと、制御回路と、ガイドテーブルと、ア
ドレス発生回路と、を含む。該制御回路は、パケット転
送リクエストと、パケット転送パラメータとを受ける。
該パケット転送パラメータは、スタートアドレスと、あ
る数のガイドテーブルエントリと、テーブルポインタと
を含む。前記ガイドテーブルは、ガイドテーブルエント
リを含み、それぞれのガイドテーブルエントリは、アド
レス値およびアドレスのブロックを定義するディメンシ
ョン値を含む。前記テーブルポインタは、最初に前記ガ
イドテーブル内の第1ガイドテーブルエントリをポイン
トする。前記アドレス発生回路は、それぞれのガイドテ
ーブルエントリに対応するメモリアクセス用のアドレス
のブロックの集合を形成する。前記アドレス発生回路
は、前記スタートアドレスと、前記テーブルポインタに
よりポイントされた前記ガイドテーブルエントリの前記
アドレス値と、の所定の組合せから、ブロックスタート
アドレスを形成する。第1ブロックスタートアドレス
は、前記スタートアドレスである。前記アドレス発生回
路は、前記ブロックスタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記ディメンション値と、からアドレスのブロッ
クを形成する。前記アドレス発生回路は、前記ブロック
スタートアドレスと、前記ガイドテーブルエントリの前
記ディメンション値と、からアドレスのブロックを形成
する。前記データ処理装置は、アドレスの該ブロックに
メモリアクセスを行う。該メモリアクセスに続いて、前
記アドレス発生回路は、前記ガイドテーブルの次のエン
トリをポイントするように前記テーブルポインタを更新
する。
【0008】前記アドレス発生回路は、随意選択的に、
前記アドレス値を前記前のブロックスタートアドレスに
加算することにより、スタートアドレスと、ガイドテー
ブルエントリのアドレス値と、の前記所定の組合せを形
成しうる。これは、デルタガイデッドアドレッシングと
して公知である。前記アドレス発生回路は、随意選択的
に、前記ガイドテーブル値を前記スタートアドレスに加
算することにより、スタートアドレスと、ガイドテーブ
ルエントリのアドレス値と、の前記所定の組合せを形成
しうる。これは、オフセットガイデッドアドレッシング
として公知である。
【0009】それぞれのガイドテーブルエントリの前記
ディメンション値は、画素のアレイの水平ディメンショ
ン値および垂直ディメンション値を含む。前記メモリア
クセスは、アドレスの前記ブロックからのメモリリード
でありうる。前記メモリアクセスは、アドレスの前記ブ
ロックへのメモリライトのものでありうる。実施例にお
いては、メモリと、データプロセッサと、上述のメモリ
アクセスを行うデータ転送制御装置とは、単一半導体チ
ップ内に構成されうる。該データ転送制御装置は、オン
チップメモリと同様に、外部メモリにアクセスしうる。
【0010】
【実施例】図1は、本発明により画像およびグラフィッ
ク処理のために製造されたマルチプロセッサの集積回路
を含む画像データ処理システムのブロック図である。こ
のデータ処理システムは、ホスト処理システム1を含
む。このホスト処理システム1は、図1のデータ処理シ
ステムのうちのホストシステムに対しデータ処理を行
う。ホスト処理システム1にはプロセッサ、少なくとも
一つの入力デバイス、長期記憶デバイス、リードオンリ
ーメモリ、ランダムアクセスメモリおよびホストシステ
ムバスに結合された少なくとも一つのホスト周辺機器が
含まれる。ホスト処理システム1は、その処理機能によ
り画像データ処理システムの機能を制御する。
【0011】マルチプロセッサ集積回路100は、図1
の画像データ処理システムの画像演算のためのデータ操
作および計算を含むデータ処理のほとんどを行う。マル
チプロセッサ集積回路100は、画像システムバスに双
方向に結合されており、この画像システムバスによりホ
スト処理システム1と通信するようになっている。図1
の回路配列では、マルチプロセッサ集積回路100はホ
スト処理システム1と独立して作動する。しかしながら
マルチプロセッサ集積回路100はホスト処理システム
1に応答できる。
【0012】図1は2つの画像システムを示す。撮像デ
バイス3は画像入力デバイスとして働く文書スキャナ、
電荷結合デバイススキャナまたはビデオカメラを示し、
撮像デバイス3はこの画像を画像キャプチャコントロー
ラ4へ送り、コントローラ4はこの画像をデジタル化
し、画像をマスタースキャンフレームに変換するように
働く。このフレームキャプチャプロセスは、マルチプロ
セッサ集積回路100からの信号により制御される。こ
うして形成された画像フレームは、ビデオランダムアク
セスメモリ5に記憶される。ビデオランダムアクセスメ
モリ5は、マルチプロセッサ集積回路100により画像
処理のためのデータ転送を可能とする画像システムバス
を介してアクセスできる。
【0013】 第2画像システムはビデオディスプレイ
をドライブする。マルチプロセッサ集積回路100はピ
クセルマップを介して、ディスプレイされる画像を指定
するビデオランダムアクセスメモリ6と通信する。マル
チプロセッサ集積回路100は画像システムバスを介
し、ビデオランダムアクセスメモリに記憶された画像デ
ータを制御する。この画像に対応するデータはビデオラ
ンダムアクセスメモリ6から再コールされ、ビデオパレ
ット7に供給される。ビデオパレット7は、この再コー
ルされたデータを別のカラースペースに変換し、ピクセ
ルごとのビット数等を拡張できる。この変換はルックア
ップテーブルによって行うことができる。ビデオパレッ
ト7はビデオディスプレイ8を駆動するための適当なビ
デオ信号も発生する。これらビデオ信号がアナログ信号
であれば、ビデオパレット7は適当なデジタルーアナロ
グ変換機能も含む。このビデオパレット7から出力され
るビデオレベル信号は、カラー、飽和および輝度情報を
含むことができる。マルチプロセッサ集積回路100
は、ビデオパレット7内に記憶されたデータを制御し、
データ変換プロセスおよび画像フレームのタイミングを
制御する。マルチプロセッサ集積回路100は、ビデオ
パレット7の制御によりビデオディスプレイ両像のうち
のフレーム当たりのライン長さおよびライン数、同期信
号およびリトレース信号およびブランキング信号を制御
できる。重要なことに、マルチプロセッサ集積回路10
0は、グラフィックディスプレイ情報をビデオランダム
アクセスメモリ6内のどこに記憶するかを決定し、制御
する。その後ビデオランダムアクセスメモリ6からの読
み出しの間、マルチプロセッサ集積回路100はビデオ
ランダムアクセスメモリ6からの読み出しシーケンス、
アクセスすべきアドレスおよびビデオディスプレイ8に
所望のグラフィック画像を発生するのに必要な制御情報
を決定する。
【0014】ビデオディスプレイ8は、ユーザーによっ
て見ることがでいるように、指定されたビデオデータを
発生する。これには2つの技術が広く使用されている。
第1の技術は、各ピクセルにおける色、色合い、輝度お
よび飽和度の点でビデオデータを特定するものであり、
第2の技術では、各ピクセルに対し、赤、青および緑の
カラーレベルを指定する。ビデオディスプレイ8のため
のビデオパレット7は、所定の技術とコンパーチブルと
なるように設計され、製造されている。図1は、画像シ
ステムバスに結合された付加メモリ9を示している。こ
の追加メモリは、付加ビデオランダムアクセスメモリ、
ダイナミックランダムアクセスメモリ、スタッティック
ランダムアクセスメモリまたはリードオンリーメモリを
含むことができる。マルチプロセッサ集積回路100は
その全体または一部をメモリ9に記憶されたプログラム
により制御できる。このメモリ9も、種々のタイプのグ
ラフィック画像データを記憶できる。更にマルチプロセ
ッサ集積回路100は、ビデオランダムアクセスメモ
リ、ダイナミックランダムアクセスメモリおよびスタッ
ティックランダムアクセスメモリのためのメモリインタ
ーフェース回路を含むことが好ましい。このように、ビ
デオランダムアクセスメモリ5または6を用いることな
く、マルチプロセッサ集積回路100を使用してシステ
ムを構築できる。
【0015】図1はトランシーバ16を示している。こ
のトランシーバ16は、画像システムバスと通信チャン
ネルとの間で変換と双方向の通信とを行うものである。
このトランシーバ16を用いたシステムの一例としてビ
デオ会議がある。図1に示された画像データ処理システ
ムは、第1地点にいる人物のビデオ画像を形成するの
に、撮像デバイス3と、画像キャプチャコントローラ4
を用いる。マルチプロセッサ集積回路100はビデオ圧
縮を行い、トランシーバ16および通信チャンネルを介
して別の地点にある同様な画像データ処理システムへこ
の圧縮したビデオ信号を送信する。トランシーバ16
は、通信チャンネルを介して遠隔地の画像データ処理シ
ステムからの同じように圧縮されたビデオ信号を受信す
る。マルチプロセッサ集積回路100はこの受信した信
号をデコンプレスし、ビデオランダムアクセスメモリ6
およびビデオパレット7を制御して、ビデオディスプレ
イ8上に対応するデコンプレスされたビデオ信号をディ
スプレイする。本発明は、画像データ処理システムがト
ランシーバ16を利用するような例のみに限定されるも
のでないことに留意されたい。更に双方向の通信は同じ
タイプの信号である必要はないことに留意されたい。例
えば対話型ケーブルテレビ信号では、ケーブルシステム
のヘッドが圧縮ビデオ信号を通信チャンネルを介して画
像データ処理システムへ送り、画像データ処理システム
は制御およびデータ信号をトランシーバ16および通信
チャンネルを介してケーブルシステムヘッドへ送り返す
ことができる。
【0016】図1は、ホスト処理システム1を含むシス
テム内で具現化されたマルチプロセッサ集積回路100
を示す。当業者であれば、マルチプロセッサ集積回路1
00を有効なシステムのうちの単なるプロセッサとして
も使用できるような本発明の好ましい実施例を、開示内
容から実現できよう。かかるシステムでは、マルチプロ
セッサ集積回路100はシステムの機能すべてを実行す
るようプログラムされる。 このマルチプロセッサ集積
回路100は画像処理に使用されるシステムで特に有効
である。マルチプロセッサ集積回路100は複数の同一
プロセッサを含むことが好ましい。これらプロセッサの
各々をデジタル画像/グラフィックプロセッサと称す。
このような記載は、単に便宜的なものである。本発明を
実施したプロセッサは、一つの集積回路または複数の集
積回路上に別個に製造したプロセッサとすることができ
る。単一集積回路上に製造する場合、このような単一集
積回路はデジタル画像/グラフィックプロセッサにより
使用されるリードオンリーメモリおよびランダムアクセ
スメモリをオプションとして含むことができる。
【0017】図2は、マルチプロセッサ集積回路100
のアーキテクチャを示す。マルチプロセッサ集積回路1
00は、2つのランダムアクセスメモリ10および20
(その各々は複数の部分に別れている)と、クロスバー
50と、マスタープロセッサ60と、デジタル画像/グ
ラフィックプロセッサ71、72、73および74と、
システムメモリへのアクセスを仲介する転送コントロー
ラ80と、独立した第1および第2画像メモリへのアク
セスを制御できるフレームコントローラ90とを含む。
マイクロプロセッサ集積回路100は、高度のオペレー
ションパラレリズム(並行性)を提供する。これは画像
処理およびグラフィックオペレーション、例えばマルチ
メディアの計算において有効である。これらプロセッサ
が有効となる画像およびグラフィック処理以外の計算ア
プリケーションもあるので、画像/グラフィックプロセ
ッサとしてプロセッサ71、72、73および74を参
考としたことは、単なる便宜的なものである。
【0018】マイクロプロセッサ集積回路100は2つ
のランダムアクセスメモリを含む。ランダムアクセスメ
モリ10は、主にマスタープロセッサ60の専用であ
る。このメモリは2つのインストラクションキャッシュ
メモリ11および12と、2つのデータキャッシュメモ
リ13および14と、パラメータメモリ15を含む。こ
れらメモリ部分は物理的には同一とすることができる
が、異なるように接続し、使用することもできる。ラン
ダムアクセスメモリ20はマスタープロセッサ60およ
びデジタル画像/グラフィックプロセッサ71、72、
73および74の各々によってアクセスできる。各デジ
タル画像/グラフィックプロセッサ71、72、73お
よび74は、5つの対応するメモリ部分を有する。これ
らはインストラクションキャッシュメモリ、3つのデー
タメモリおよび1つのパラメータメモリを含む。従って
デジタル画像/グラフィックプロセッサ71は対応する
インストラクションキャッシュメモリ21、データメモ
リ22、23、24およびパラメータメモリ25を有
し、デジタル画像/グラフィックプロセッサ72は対応
するインストラクションキャッシュメモリ26と、デー
タメモリ27、28、29およびパラメータメモリ30
を有し、デジタル画像/グラフィックプロセッサ73は
対応するインストラクションキャッシュメモリ31と、
データメモリ32、33、34およびパラメータメモリ
35を有し、デジタル画像/グラフィックプロセッサ7
4は対応するインストラクションキャッシュメモリ36
と、データメモリ37、38、39およびパラメータメ
モリ40とを有する。ランダムアクセスメモリ10の部
分と同じように、これらメモリ部分は物理的に同一にで
きるが、異なるように接続し、使用することもできる。
メモリ10および20のうちのこれらメモリ部分の各々
は、例えば20Kバイトを含み、マルチプロセッサ集積
回路100内の総メモリは50Kバイトとなる。
【0019】マルチプロセッサ集積回路100は、複数
の独立したパラレルデータ転送を用いることにより、プ
ロセッサとメモリとの間で高レートのデータ転送を行う
ように製造されている。クロスバー50はこれらのデー
タ転送を可能にするものであり、各デジタル画像/グラ
フィックプロセッサ71、72、73および74は、サ
イクルごとに同時に作動できる3つのメモリポートを有
する。インストラクションポート(I)は対応するイン
ストラクションキャッシュから64ビットのデータワー
ドをフェッチでき、ローカルデータポート(L)はデジ
タル画像/グラフィックプロセッサに対応するデータメ
モリまたはパラメータメモリから32ビットのデータワ
ードを読み出したり、これに書き込みを行うことができ
る。グローバルデータポート(G)は、データメモリま
たはパラメータメモリまたはランダムアクセスメモリ2
0のいずれかから32ビットのデータワードを読み出し
たり、書き込んだりできる。マスタープロセッサ60
は、2つのメモリポートを含む。インストラクションポ
ート(I)はインストラクションキャッシュ11および
12のいずれかから32ビットのインストラクションワ
ードをフェッチできる。データポート(C)はデータキ
ャッシュ13または14、ランダムアクセスメモリ10
のうちのパラメータメモリ15、またはデータメモリ、
パラメータメモリ、ランダムアクセスメモリ20の任意
のものから32ビットのデータワードを読み出したり、
これらに書き込みできる。転送コントローラ80はデー
タポート(C)を介してランダムアクセスメモリ10ま
たは20の部分のいずれかにアクセスできる。従って一
つのメモリサイクルで16のパラレルメモリアクセスを
リクエストできる。このような多数のパラレルアクセス
をサポートするように、ランダムアクセスメモリ10お
よび20は、25のメモリに分割されている。
【0020】クロスバー50はマスタープロセッサ6
0、デジタル画像/グラフィックプロセッサ71、7
2、73および74、および転送コントローラ80とメ
モリ10および20との接続を制御する。クロスバー5
0は、列と行に配置された複数のクロスポイント51を
含む。クロスポイント51の各列は、単一メモリ部分お
よび対応するアドレスのレンジに対応する。プロセッサ
はこのプロセッサが出力するアドレスの最高位ビットに
よるメモリ部分のうちの一つへのアクセスをリクエスト
する。プロセッサにより出力されるこのアドレスは、行
に沿って進む。このアドレスを有するメモリ部分に対応
するクロスポイント51は、メモリ部分へのアクセスを
許可または否定することによって応答する。それ以外の
いずれのプロセッサも、そのときのメモリサイクルの間
にそのメモリ部分へのアクセスをリクエストしない場
合、クロスポイント51が行と列を結合することによ
り、アクセスを許可する。これによりそのメモリ部分に
アドレスが供給される。このメモリ部分はそのアドレス
におけるデータアクセスを可能にすることに応答する。
このデータアクセスはデータ読み出しオペレーションま
たはデータ書き込みオペレーションのいずれかでよい。
【0021】2つ以上のプロセッサが同じメモリ部分へ
のアクセスを同時にリクエストする場合、クロスバー5
0はリクエスト中のプロセッサのうちの一つのアクセス
しか許可しない。クロスバー50のうちの各列のうちの
クロスポイント51は、優先階層に基づいて通信し、ア
クセスを許可する。同じランクを有するアクセスの2つ
のリクエストが同時に行われた場合、クロスバー50は
最後に許可されたプロセッサが最も低い優先度を有する
ラウンドロビン法によりアクセスを許可する。リクエス
トにサービスする必要がある限り、各々の許可されたア
クセスが続く。プロセッサはメモリサイクルごとにアド
レスを変更できるので、クロスバー50はサイクルごと
にプロセッサとメモリ部分との間の相互接続を変更でき
る。マスタープロセッサ60は、マルチプロセッサ集積
回路100のための主要制御機能を実行することが好ま
しい。マスタープロセッサ60はハードウェアの浮動小
数点計算ユニットを含む32ビットの縮小インストラク
ションセットコンピュータ(RISC)プロセッサであ
ることが好ましい。RISCアーキテクチャによれば、
メモリへのすべてのアクセスは、ロードおよび記憶イン
ストラクションで実行され、ほとんどの整数および論理
演算はレジスタ上で1回のサイクルで実行される。しか
しながら整数および論理ユニットによって使用されるの
と同じレジスタファイルを用いる場合、一般に演算を実
行するには2サイクルがかかる。レジスタのスコアポー
ドは正しいレジスタアクセスシーケンスを維持するよう
に保証するものであり、画像処理における制御機能に対
してはRISCアーキテクチャが適当である。浮動小数
点計算ユニットは画像回転機能の高速計算を可能にする
もので、このような機能は画像処理に重要である。
【0022】マスタープロセッサ60は、インストラク
ションキャッシュメモリ11またはインストラクション
キャッシュメモリ12からのインストラクションワード
をフェッチする。同じように、マスタープロセッサ60
はデータキャッシュ13またはデータキャッシュ14の
いずれかからデータをフェッチする。各メモリ部分は2
Kバイトのメモリを含むので、14Kバイトのインスト
ラクションキャッシュと4Kバイトのデータキャッシュ
があることになる。キャッシュ制御はマスタープロセッ
サ60の不可欠な機能であり、上記のようにマスタープ
ロセッサ60はクロスバー50を介して他のメモリ部分
にもアクセスできる。4つのデジタル画像/グラフィッ
クプロセッサ71、72、73および74の各々は、高
度にパラレルなデジタル信号プロセッサ(DSP)アー
キテクチャを有する。デジタル画像/グラフィックプロ
セッサ71、72、73および74は3つの別個のユニ
ット、すなわちデータユニットと、アドレスユニット
と、プログラムフロー制御ユニットを用いた高度なオペ
レーションのパラレリズムが得られる。これら3つのユ
ニットは、インストラクションパイプライン内の異なる
命令で同時に作動する、更にこれらユニットの各々は、
内部パラレリズムを含む。
【0023】デジタル画像/グラフィックプロセッサ7
1、72、73および74は、マルチインストラクショ
ンマルチデータモード(MIMD)で独立したインスト
ラクションストリームを実行できる。このMIMDモー
ドでは、各デジタル画像/グラフィックプロセッサは、
対応するインストラクションキャッシュからの個々のプ
ログラム(これは独立的でも協働的でもよい)を実行す
る。後者のケースでは、クロスバー50は共用メモリと
共に、プロセッサ内通信を可能にする。デジタル画像/
グラフィックプロセッサ71、72、73および74
は、同期MIMDモードでも作動できる。同期MIMD
モードでは、各デジタル画像/グラフィックプロセッサ
のプログラムフロー制御ユニット130は、すべての同
期したプロセッサが進む準備がなされるまで、次のイン
ストラクションのフェッチを禁止する。このような同期
MIMDモードは密に結合されたオペレーションにおけ
るロックステップでデジタル画像/グラフィックプロセ
ッサの別々のプログラムを実行できるようにするもので
ある。
【0024】デジタル画像/グラフィックプロセッサ7
1、72、73、74は、単一インストラクションマル
チデータモード(SIMD)で異なるデータに対する同
じインストラクションを実行できる。このモードにおい
て、4つのデジタル画像/グラフィックプロセッサのた
めの単一インストラクションストリームは、インストラ
クションキャッシュメモリ21から生じる。データユニ
ット画像/グラフィックプロセッサ71は、フェッチオ
ペレーションおよびブランチオペレーションを制御し、
クロスバー50は他のデジタル画像/グラフィックプロ
セッサ72、73および74へ同じインストラクション
を供給する。デジタル画像/グラフィックプロセッサ7
1は、デジタル画像/グラフィックプロセッサ71、7
2、73および74のすべてに対するインストラクショ
ンフェッチを制御するので、これらデジタル画像/グラ
フィックプロセッサは本来SIMDモードでは同期化さ
れるものである。
【0025】転送コントローラ80は、マルチプロセッ
サ集積回路100のための組み合わされたダイレクトメ
モリアクセス(DMA)マシンと、メモリインターフェ
ースであり、この転送コントローラ80は、インテリジ
ェントにキューイングし、優先度をセットし、5つのプ
ログラマブルプロセッサのデータリクエストおよびキャ
ッシュミスにサービスする。マスタープロセッサ60お
よびデジタル画像/グラフィックプロセッサ71、7
2、73および74のいずれも、転送コントローラ80
を介してマルチブロセッサ集積回路100の外部のメモ
リおよびシステムにアクセスする。データキャッシュま
たはインストラクションキャッシュミスは転送コントロ
ーラ80によって自動的に取り扱われる。キャッシュサ
ービス(S)ポートは、かかるキャッシュミスを転送コ
ントローラ80へ伝送し、キャッシュサービスポート
(S)はメモリからではなくプロセッサから情報を読み
出すマスタープロセッサ60およびデジタル画像/グラ
フィックプロセッサ71、72、73および74は、リ
ンクされたリストパケット転送として転送コントローラ
80からのデータ転送をリクエストできる。これらリン
クされたリストパケット転送は、ソースメモリアドレス
と宛て先メモリアドレスとの間で多次元ブロックの情報
の転送を可能にするものであり、これらアドレスはマル
チプロセッサ集積回路100内にあってもよいし、また
はマルチプロセッサ集積回路100の外部にあってもよ
い。転送コントローラ80は、内部のデータを保持する
のに周期的なリフレッシュを必要とするダイナミックラ
ンダムアクセスメモリ(DRAM)用のリフレッシュコ
ントローラも含むことが好ましい。
【0026】フレームコントローラ90はマルチプロセ
ッサ集積回路100と、外部画像キャプチャおよびディ
スプレイシステムとの間のインターフェースである。こ
のフレームコントローラ90は、キャプチャおよびディ
スプレイデバイスに対する制御を行い、これらデバイス
とメモリとの間のデータの移動を自動的に管理する。こ
のため、フレームコントローラ90は、2つの独立した
画像システムに対して同時に制御を行う。これら画像シ
ステムは一般に画像キャプチャ(取り込み)用第1画像
システムと画像ディスプレイ用の第2画像システムとか
らなるが、フレームコントローラ90の使用はユーザー
によって制御される。これら画像システムは、通常、フ
レームグラバーまたはフレームバッファ記憶装置のいず
れかに対して使用される独立したフレームメモリを含
む。フレームコントローラ90はリフレッシュおよびシ
フトレジスタ制御により、ビデオダイナミックランダム
アクセスメモリ(VRAM)を制御するように作動する
ことが好ましい。
【0027】マルチプロセッサ集積回路100は、大規
模画像処理のために設計されている。マスタープロセッ
サ60は埋め込み制御を行い、デジタル画像/グラフィ
ックプロセッサ71、72、73、74の活動を調和さ
せ、これらプロセッサの発生した結果を解釈する。デジ
タル画像/グラフィックプロセッサ71、72、73、
74は、ピクセル解析および操作に良好に適している。
ピクセルのデータが多く、情報が少ないとみなされる場
合、代表的なアプリケーションではデジタル画像/グラ
フイックプロセッサ71、72、73、74がピクセル
を良好に検査し、未加工データを情報とする。次にこの
情報は、デジタル画像/グラフィックプロセッサ71、
72、73、74またはマスタープロセッサ60のいず
れかによって分析できる。クロスバー50はプロセッサ
内通信を仲介する。更にこのクロスバー50はマスター
プロセッサ集積回路100を共用メモリシステムとして
実現できるようにする。このアーキテクチャでは、メッ
セージの通過は通信の主な形態となる必要はない。しか
しながら共用メモリをメッセージが通過するようにでき
る。各デジタル画像/グラフィックプロセッサ、クロス
バー50の対応する部分およびメモリ20の対応する部
分は、この実施例内で同じ幅を有する。これにより、同
じピン出力を維持しながら、モジュラー式のデジタル画
像/グラフィックプロセッサおよび対応するメモリの追
加または取り外しに適応できるようにすることにより、
アーキテクチャをフレキシブルにできる。
【0028】ある実施例では、マルチプロセッサ集積回
路100のすべての部品は、0.6μmの特徴的寸法を
用いた相補的酸化金属半導体(CMOS)に形成された
単一集積回路に配置されている。マルチプロセッサ集積
回路100は、256個のピンを有するピングリッドア
レイパッケージ内に適当に製造される。入出力端は、例
えばTTL論理電圧にコンパーチブルであり、マルチプ
ロセッサ集積回路100は、約300万個のトランジス
タを含み、50MHzのクロックレートを使用してい
る。図3は、インタラプトイネーブルレジスタINTE
N110およびインタラプトフラグレジスタINTFL
Gのためのフィールド定義を示す。rと表示されたビッ
トは、将来の使用に対して保留されており、−のついた
ビットは、好ましい実施例では使用されないが、別の実
施例では使用できる。インタラプト(割り込み)は、左
から右に優先度が決められている。各インタラプトソー
スは、インタラプトイネーブルレジスタINTEN11
0の対応するイネーブル(E)ビット内に1をセットす
ることによって、個々にイネーブルできる。インタラプ
トフラグレジスタINTFLG115のインタラプトソ
ースビットは、右から左へ、すなわち常時イネーブルに
されているエミュレーションインタラプトETRAP、
XYパッチインタラブト、タスクインタラプト、パケッ
ト転送ビジーインタラプトPTB、パケット転送エラー
インタラプトPTERROR、パケット転送成功インタ
ラプトPTEND、マスタプロセッサ60メッセージイ
ンタラプトMPMSG、デジタル画像/グラフィックプ
ロセッサ71メッセージインタラプトDIGPOMS
G、デジタル画像/グラフィックプロセッサ72メッセ
ージインタラプトDIGP1MSG、デジタル画像/グ
ラフィックプロセッサ73メッセージインタラプトDI
GP2MSG、デジタル画像/グラフィックプロセッサ
74メッセージインタラプトDIGP3MSGの方向
に、優先度が低くなるようになっている。ビット31〜
28は、8個のデジタル画像/グラフィックプロセッサ
を含むマルチプロセッサ集積回路100の実現の際に4
つの追加デジタル画像/グラフィックプロセッサからの
メッセージインタラプトのために保留されている。
【0029】インタラプトイネーブルレジスタINTE
N110のWビット(ビット0)はインタラプトフラグ
レジスチINTFLG115への書き込みを制御する。
通常このビットはエミュレーションインタラプトをイネ
ーブルするかどうかを制御する。好ましい実施例では、
エミュレーションインタラプトはディスエープルできな
いので、インタラプトイネーブルレジスタINTEN1
10内で、このインタラプトに対するイネーブルビット
の必要はない。インタラプトイネーブルレジスタINT
EN110のビット0は、インタラプトフラグレジスタ
INTFLG115の作動を変えるものである。インタ
ラプトイネーブルレジスタINTEN110のWビット
が1であると、インタラプトフラグレジスタINTFL
G115へのソフトウェアの書き込みはビットを1にセ
ットできるだけである。これらの条件では、インタラプ
トフラグレジスタINTFLG115のビットへの0の
書き込みは全く効果はない。このようなWビットが0で
ある場合、インタラプトフラグレジスタINTFLG1
15のいずれかのビットへの1の書き込みは、そのビッ
トを0にクリアする。インタラプトフラグレジスタIN
TFLG115の任意のビットへの0への書き込みは全
く効果がない。これにより、他のステートを乱すことな
くインタラプトフラグレジスタINTFLG115内の
個々のインタラプトフラグをクリアできる。各インタラ
プトサービスルーチンは、リターン前に対応するインタ
ラプトフラグを適当にクリアするが、その理由は好まし
い実施例ではハードウェアによってこれらフラグをクリ
アしていないからである。この唯一の例外として、エミ
ュレーションインタラプトETRAPハードウェアによ
ってクリアされるが、この理由は、このようなインタラ
プトが常時イネーブルされているからである。特定のイ
ンタラプトソースがソフトウェアの書き込みによってこ
れをクリアするのと同じように、インタラプトフラグレ
ジスタINTFLG115内のビットを同時にセットし
ようとしている場合、ロジックによりこのビットはセッ
トされる。
【0030】ETRAPインタラプトフラグ(インタラ
プトフラグレジスタINTFLG115のビット0)
は、解析論理またはETRAPインストラクションのい
ずれかからセットされる。このインタラプトはディスエ
ーブルされないので、通常は即座にサービスされるが、
インタラプトサービスはパイプラインストール条件、例
えばクロスバー50を介するメモリの競合が解決される
まで待機する。ENTRAPインタラプトフラグは、イ
ンタラプトサービスがされる際にハードウェアによって
クリアされるインタラプトフラグレジスタINTFLG
115内の単なるインタラプトビットである。XY P
ATCHインタラプトフラグ(インタラプトフラグレジ
スタINTFLG115のビット11)は、XYアドレ
ス指定をするのにグローバルアドレスユニット610
と、ローカルアドレスユニット620との組み合わせを
用いる際に、所定の条件でセットされる。XYパッチさ
れたアドレス指定は所定の条件でインタラプトを発生で
きる。XYパッチされたアドレス指定のためのインスト
ラクションワードの呼び出しは、かかるインタラプトを
発生できるかどうか、更に指定されたパッチの内外でア
ドレス上で許可されたインタラプトを行うかどうかを示
している。
【0031】マスタプロセッサ60からのコマンドを受
信した際に、TASKインタラプトフラグ(インタラプ
トフラグレジスタINTFLG115内のビット14)
がセットされる。このインタラプトによりデジタル画像
/グラフィックプロセッサ71がそのTASKインタラ
プトベクトルをロードする。このインタラプトは、例え
ばマスタプロセッサ60の制御により、選択されたデジ
タル画像/グラフィックプロセッサ71、72、73、
74をスイッチングさせることができる キューアクティブビットが1のとき、ソフトウェアが通
信用レジスタCOMM120のパケット転送ビットに1
を書き込む場合、パケット転送ビジーインタラプトフラ
グPTB(インタラプトフラグレジスタINTFLG1
15のビット17)がセットされる。これにより先のパ
ケット転送が終了したかどうかをチェックすることなく
パケット転送を送ることができる。先のパケット転送が
まだ待機中であれば、このインタラプトフラグはセット
状態となる。これについては通信用レジスタCOMM1
20の説明と関連して後に詳細に述べる。
【0032】デジタル画像/グラフィックプロセッサに
より送られるパケット転送を実行する間に、転送用コン
トローラ80がエラー条件に遭遇すれば、パケット転送
エラーインタラプトフラグPTERROR(インタラプ
トフラグレジスタINTFLG115のビット18)が
セットされる。転送コントローラ80がデジタル画像/
グラフィックプロセッサのリンクされたリストの終了部
に遭遇するか、または終了時にリクエスト中のデジタル
画像/グラフィックプロセッサをインタラプトするよ
う、転送コントローラ80に命令するパケット転送を完
了した際に、パケット転送エンドインタラプトフラグP
TEND(インタラプトフラグレジスタINTFLG1
15のビット19)が転送コントローラ80によってセ
ットされる。
【0033】マスタプロセッサ60がそのデジタル画像
/グラフィックプロセッサにメッージインタラプトを送
ると、マスタプロセッサメッセージインタラプトフラグ
MPMSG(インタラプトフラグレジスタINTFLG
115のビット20)がセット状態となる。インタラプ
トフラグレジスタINTFLG115のビット27〜2
4は、デジタル画像/グラフィックプロセッサ71、7
2、73、74からのメッセージインタラプトをログす
る。デジタル画像/グラフィックプロセッサ71、7
2、73または74は、インタラプトフラグレジスタI
NTFLG115の対応するビットを介してそれ自体に
メッセージを送ったり、それ自体をインタラプトでき
る。デジタル画像/グラフィックプロセッサ71が、デ
ジタル画像/グラフィックプロセッサにメッセージイン
タラプトを送ると、デジタル画像/グラフィックプロセ
ッサ0のメッセージインタラプトフラグDIGPOMS
G(インタラプトフラグレジスタINTFLG115の
ビット24)がセットされる。同様に、デジタル画像/
グラフィックプロセッサ72が、メッセージインタラプ
トを送ると、デジタル画像/グラフィックプロセッサ1
のメッセージインタラプトフラグDIGP1MSG(イ
ンタラプトフラグレジスタINTFLG115のビット
25)がセットされる。デジタル画像/グラフィックプ
ロセッサ73が、メッセージインタラプトを送ると、デ
ジタル画像/グラフィックプロセッサ2のメッセージイ
ンタラプトフラグDIGP2MSG(インタラプトフラ
グレジスタINTFLG115のビット26)がセット
される。デジタル画像/グラフィックプロセッサ74
が、メッセージインタラプトを送ると、デジタル画像/
グラフィックプロセッサ3のメッセージインタラプトフ
ラグDIGP3MSG(インタラプトフラグレジスタI
NTFLG115のビット27)がセットされる。先に
述べたように、インタラプトフラグレジスタINTFL
G115のビット31〜28は、8個のデジタル画像/
グラフィックプロセッサを含むマルチプロセッサ集積回
路100を実現する際の4つの付加的デジタル画像/グ
ラフィックプロセッサからのメッセージインタラプトの
ために保留されている。
【0034】イネーブルされたインタラプトが起きる
と、小ステートマシンにすることができるインタラプト
疑似インストラクションユニットがインストラクション
レジスターアドレスステージでパイプラインに次の疑似
インストラクションの組を注入する。
【0035】
【数1】
【0036】これら疑似インストラクションをそれぞれ
PS1、PS2、PS3、PS4およびPS5と称す。
このシーケンスによってはサブルーチンIPRSからの
インストラクションポインタリターンはセーブされな
い。インタラプトサービスルーチンがなんらかのブラン
チを実行する場合、インタラプトサービスルーチンによ
ってまず最初にサブルーチンIPRSからのインストラ
クションポインタリターンをプッシュし、リターン前に
レストアしなければならない。ベクトルフェッチは保護
されているサブルーチンIPRSからのインストラクシ
ョンポインタリターンを全プログラムカウンタPC70
1にロードすることである。これによりプログラムカウ
ンタPC701のS、GおよびLビットがロードされる
ので、すべてのインタラプトベクトルの3つの最小位ビ
ットが0にされる。この説明の例外は、リセット後にフ
ェッチされるタスクベクトルは、ルーピングをディスエ
ーブルするようにLビット(プログラムカウンタPC7
01のビット0)をセットさせなければならないことで
ある。
【0037】インタラプトフラグレジスタINTFLG
115内に示されたインタラプトのためのインタラプト
サービスルーチンの開始ポイントのそれぞれのアドレス
のデジタル画像/グラフィックプロセッサインタラプト
ペクトルと称す。これらアドレスはソフトウェアによっ
て発生され、表1に示されるそれぞれのインタラプトさ
れたデジタル画像/グラフィックプロセッサ71、7
2、73、74に対応するパラメータメモリ25、3
0、35、40にデータとしてロードされる。インタラ
プト疑似インストラクションPS3は、対応するパラメ
ータメモリ25、30、35または40における表示さ
れたアドレスに記憶された32ビットのアドレスを取り
出し、これをプログラムカウンタPC701に記憶す
る。インタラプト疑似インストラクションユニット77
0はインタラプトイネーブルレジスタによってイネーブ
ルされた最高優先度のインタラプトに基づき、対応する
パラメータメモリのためにアドレスを計算する。インタ
ラプト疑似インストラクションユニット770は各デジ
タル画像/グラフィックプロセッサのためのユニークな
アドレスを発生するよう、通信レジスタCOMM120
からのデジタル画像/グラフィックプロセッサ番号を含
むように作動する。インタラプト疑似インストラクショ
ンPS4およびPS5は、インタラプトサービスルーチ
ンへのブランチの後のディレイスロット内にあることに
留意されたい。
【0038】
【表1】
【0039】各アドレスにて#は通信レジスタCOMM
120から得られたデジタル画像/グラフィックプロセ
ッサ番号と置換される。
【0040】インタラプトサービスルーチンの最後の4
つのインストラクションは、次の(32ビットデータの
シフトされていないインデックス)オペレーションを含
んでいなければならない。
【0041】
【数2】
【0042】これらインストラクションをそれぞれRE
TI1、RETI2、RETI3およびRETI4と称
す。他のオペレーションは希望すればこれらオペレーシ
ョンとパラレルにコード化できるが、これらのオペレー
ションのいずれもステータスレジスタ211を変えては
ならない。
【0043】新しいタスクをデジタル画像/グラフィッ
クプロセッサ上で実行すべきであり、新しいタスクを終
了した後に最初のステートに復帰すべき場合インタラプ
トステートをセーブできる。インタラプトイネーブルレ
ジスタINTEN110上のWビットにより制御される
書き込みモードにより、セービングまたはレストアオペ
レーション中にインタラプトを失うことなくこれを行う
ことができる。これは次のインストラクションシーケン
スで実行できる。まずDINTインストラクションによ
りインタラプトをディスエーブルし、次にインタラプト
イネーブルレジスタINTEN110およびインタラプ
トフラグレジスタINTFLG115の双方をセーブ
し、インタラプトイネーブルレジスタINTEN110
のWビット(ビット0)を0にセットし、16進数FF
FFFFFFをインタラプトフラグレジスタINTFL
G115に書き込む。イネーブリングインタラプトを含
むことができる新しいタスクを実行する。新しいタスク
の完了後、元のタスクをリカバーし、最初にDINTイ
ンストラクションによりインタラプトをディスエーブル
し、インタラプトイネーブルレジスタINTEN110
のWビットを1にセットする。メモリからインタラプト
フラグレジスタINTFLG115のステータスをレス
トアし、次にメモリからインタラプトイネーブルレジス
タINTEN110のステータスをレストアする。最後
にEINTインストラクションによりインタラプトをイ
ネーブルする。
【0044】各デジタル画像/グラフィックプロセッサ
71、72、73、74は、他のデジタル画像/グラフ
ィックプロセッサおよびマスタプロセッサ60にコマン
ドワードを送信できる。レジスタA15の宛て先、グロ
ーバルアドレスユニットのうちの0値のアドレスレジス
タによるレジスタ間の移動により、宛て先プロセッサへ
のコマンドワードの転送が開始される。このようなレジ
スタ間の転送は、後述するように、一つのインストラク
ションでデータユニット110のオペレーションおよび
ローカルデータポート144を介したアクセスと組み合
わせることができる。このようなコマンドワードは特別
コマンドワード信号に伴われてグローバルデータポート
148を介してクロスバー50へ送信される。これによ
りマスタプロセッサ60およびデジタル画像/グラフィ
ックプロセッサ71、72、73、74はマルチプロセ
ッサ集積回路100の他のプロセッサとの通信が認めら
れる。
【0045】図4は、これらコマンドワードのフィール
ド定義を略図で示している。好ましい実施例では、コマ
ンドワードはグローバルデータポート148を介して送
信されるデータと同一の32ビット長さを有する。各コ
マンドワードの最小位のビットは、コマンドワードがア
ドレス指定される一つ以上のプロセッサおよび他の回路
を定義している。各受け入れ側回路は、これらビットが
コマンドワードをその回路に向けることを表示している
場合に限り、受信したコマンドワードに応答する。各コ
マンドワードのビット3〜0はそれぞれデジタル画像/
グラフィックプロセッサ74、73、72、71をそれ
ぞれ指定している。好ましい実施例ではビット7〜4は
使用されず、8個のデジタル画像/グラフィックプロセ
ッサを有するマルチプロセッサ集積回路100内で使用
するために保留されている。ビット8はマルチプロセッ
サ60にコマンドワードをアドレス指定することを表示
している。ビット9はコマンドワードを転送コントロー
ラ80に向けることを表示しており、ビット10はコマ
ンドワードをフレームコントローラ90へ向けることを
表示している。ここですべての回路はすべてのコマンド
ワードを他のすべての回路に送ることを許可されている
わけではないことに留意されたい。例えばシステムレベ
ルのコマンドワードはデジタル画像/グラフィックプロ
セッサから他のデジタル画像/グラフィックプロセッサ
またはマスタプロセッサ60へ送ることはできない。マ
スタプロセッサ60しか、転送コントローラ80または
フレームコントローラ90へコマンドワードを送ること
ができない。どの回路がどのコマンドワードを他のどの
回路に送ることができるかの制限について、各コマンド
ワードフィールドの説明と関連させて後に説明する。
【0046】コマンドワードのRビット(ビット31)
は、リセットビットである。マスタプロセッサ60はこ
のワードをデジタル画像/グラフィックプロセッサに対
して発生したり、またはあるデジタル画像/グラフィッ
クプロセッサがこのコマンドワードを自己に発生したり
できる。意図している実施例は、いずれのデジタル画像
/グラフィックプロセッサの他のデジタル画像/グラフ
ィックプロセッサをリセットできない。下記のリセット
シーケンスの説明全体で、アドレス内の各数字の#はコ
マンドレジスタCOMM120のビット1〜0に記憶さ
れたデジタル画像/グラフィックプロセッサの番号と置
換すべきであることに留意されたい。指定されたデジタ
ル画像/グラフィックプロセッサがリセットコマンドワ
ードを受けると、まずホールトラッチをセットし、リセ
ットリクエスト信号を転送コントローラ80へ送る。転
送コントローラ80はリセットアクノーリッジ信号をデ
ジタル画像/グラフィックプロセッサへ送る。リセット
中のデジタル画像/グラフィックプロセッサは、転送プ
ロセッサ80からリセットアクノーリッジ信号が受信さ
れるまで、別の動作は実行しない。リセットアクノーリ
ッジの受信時にデジタル画像/グラフィックプロセッサ
は次のシーケンスのオペレーションを開始する。すなわ
ち既にセットされていなければホールトラッチをセット
し、通信レジスタCOMM120のF、P、QおよびS
ビットを0にクリア(これらビットの使用については後
述する)し、アドレスユニット120によりペンディン
グ中のメモリアクセスをクリアし、インストラクション
キャッシュサービスリクエストをリセットし、インスト
ラクションレジスター実行ステージIRE752に次の
インストラクションをロードする。
【0047】
【数3】
【0048】このインストラクションはプログラムカウ
ンタPC701に対して1ビット左にシフトされたスタ
ックポインタA14の内容に対して変化しないようにさ
れている否定、桁上げ、オーバーフローおよび0ステー
タスビット、更にRビットセットを無条件にロードし、
スタックポインタA14のロードと並行にスタックポイ
ンタA14をリセットし、インストラクションレジスタ
アドレスステージIRAに下記のインストラクションを
ロードする。
【0049】
【数4】
【0050】このインストラクションはアドレスPBA
と16進数FCの合計によって表示されるアドレスにプ
ログラムカウンタPC701の内容を記憶させ、インタ
ラプト疑似インストラクションユニット770をセット
して、次にインタラプト疑似インストラクションPS3
をロードし、タスクインタラプトを表示するインタラプ
トフラグレジスタINTFLG115のビット14をセ
ットし、インタラプトフラグレジスタINTFLG11
5のビット0をクリアしてエミュレータトラップインタ
ラプトETRAPをクリアし、ループ制御レジスタLC
TLのビット11、7および3をクリアして、よってす
べてのループをディスエーブルする。
【0051】マスタプロセッサ60がアンホールトコマ
ンドワードを送信すると、デジタル画像/グラフィック
プロセッサによる実行が開始する。この実行によってデ
ジタル画像/グラフィックプロセッサの作動が開始する
と16進数010#7FCをアドレス指定するよう、プ
ログラムカウンタPC701に記憶されていたアドレス
をセーブする。これにより12ビットだけ左にシフトさ
れていたスタックポインタA14の前の内容およびプロ
グラムカウンタPC701の制御ビット(ビット2〜
0)の現在の値がセーブされ、アドレス16進数010
0#7F0をスタックポインタA14にロードし、プロ
グラムカウンタPC701に制御ビット2〜0が000
となっているタスクインタラプトベクトルをロードし、
アドレス16進数0100#7F8に制御ビット2〜0
を含むインストラクションレジスタアドレスステージI
PAの内容を記憶し、アドレス16進数0100#7F
4に制御ビット2〜0を含むインストラクションレジス
タ実行ステージIPEの内容を記憶し、タスクインタラ
プトによって示されたアドレスにおいてプログラムの実
行を開始する。表2にリセット後のスタックステートが
示されている。
【0052】
【表2】
【0053】インストラクションレジスターアドレスス
テージIRAおよびインストラクションレジスタ実行ス
テージIREの先のステートは、制御ビット2〜0を含
む。スタックポインタA14はアドレス16進数010
0#7F0を含むことに留意のこと。
【0054】コマンドワードのうちのHビット(ビット
30)はホールトビットである。マスタプロセッサ60
はこのコマンドワードを任意のデジタル画像/グラフィ
ックプロセッサに発生することもできるし、あるデジタ
ル画像/グラフィックプロセッサはこのコマンドを自ら
に発生することもできる。意図している実施例では、い
ずれのデジタル画像/グラフィックプロセッサも他のデ
ジタル画像/グラフィックプロセッサを停止することは
できない。指定されたデジタル画像/グラフィックプロ
セッサがこのコマンドワードを受信すると、デジタル画
像/グラフィックプロセッサはホールトラッチをセット
し、パイプラインを停止させる。この後のデジタル画像
/グラフィックプロセッサは無限にクロスバーメモリが
競合しているかのように働く。何もリセットされず、何
もインタラプトは起きないか、またはそのように認識さ
れる。あるデジタル画像/グラフィックプロセッサはコ
マンドワードを送ることにより自身を停止させると、ホ
ールトコマンドワードを送るインストラクションの後の
2つのインストラクションは、そのインストラクション
パイプライン内にあることに留意されたい。ホールトコ
マンドワードを発生したインストラクションの後の第1
インストラクションのアドレスパイプラインステージが
インストラクションパイプラインの性質により、すでに
そのアドレスパイプラインステージを実行することにな
ることに留意されたい。このようなホールトステートは
マスタプロセッサ60からのアンホールトコマンドワー
ドを受信することによってしか反転できない。
【0055】ホールト条件は変わらないので、デジタル
画像/グラフィックプロセッサ内のパワー消費量を減少
させる。デジタル画像/グラフィックプロセッサがこの
モードになっている間、クロックを停止することにより
更にパワーを節約できる。
【0056】コマンドワードのUビット(ビット29)
は、アンホールトビットである。このコマンドワードは
マスタプロセッサ60から一つ以上のデジタル画像/グ
ラフィックプロセッサ71、72、73、74によって
しか発生できない。アンホールトコマンドワードは宛て
先デジタル画像/グラフィックプロセッサのホールトラ
ッチをクリアし、デジタル画像/グラフィックプロセッ
サは次に、何も起こらなかったがごとくホールトの後に
コードの実行を再開する。これはハードウェアまたはコ
ードリセットの後でデジタル画像/グラフィックプロセ
ッサをスタートさせる好ましい方法である。アンホール
トコマンドワードの実行時に宛て先デジタル画像/グラ
フィックプロセッサは、そのタスクインタラプトベクト
ルによって示されたアドレスでもコードの実行を始め
る。Uビットの優先度は単一コマンドワードのHビット
よりも高い。したがってHビットとUビットとの双方を
備えた単一コマンドワードを受信する結果、アンホール
トコマンドが実行される。マスタプロセッサ60からの
アンホールトコマンドワードとデジタル画像/グラフィ
ックプロセッサ自体により送信されるホールトコマンド
ワードを同時に受信することにより、マスタプロセッサ
60のアンホールトコマンドワードに優先権が与えられ
る。これによりRビットはUビットより優先度が高くな
る。従って、RビットとUビットセットの双方を有する
マスタプロセッサ60からの単一コマンドワードが受信
される結果、デジタル画像/グラフィックプロセッサは
ホールト状態にリセットされる。
【0057】コマンドワードのIビット(ビット28)
は、インストラクションキャッシュフラッシュビットで
ある。マスタプロセッサ60がこのコマンドワードをい
ずれかのデジタル画像/グラフィックプロセッサに送っ
てもよいし、一つのデジタル画像/グラフィックプロセ
ッサがかかるコマンドワードを自身に発生してもよい。
意図している実施例では、いずれのデジタル画像/グラ
フィックプロセッサも他のデジタル画像/グラフィック
プロセッサによるインストラクションキャッシュフラッ
シュを命令できない。このコマンドワードを受信する指
定されたデジタル画像/グラフィックプロセッサはその
インストラクションキャッシュをフラッシュする。イン
ストラクションキャッシュフラッシュは、キャッシュタ
グの値フィールドをキャッシュタグレジスタ自身の番号
にセットさせ、存在するビットのすべてをクリアし、
L、R、Uビットをタグレジスタ自身の番号にセットす
る。
【0058】コマンドワードのDビット(ビット27)
は、データキャッシュフィールドを表示する。デジタル
画像/グラフィックプロセッサ71、72、73、74
は、データキャッシュを使用しないので、このコマンド
ワードはデジタル画像/グラフィックプロセッサに適用
されず、これらに無視される。マスタプロセッサ60は
このコマンドワードを自らに送り、そのデータキャッシ
ュメモリ13および14をフラッシュさせることができ
る。
【0059】コマンドワードのKビット(ビット14)
は、タスクインタラプトを表示している。マスタプロセ
ッサ60はこのコマンドワードをいずれのデジタル画像
/グラフィックプロセッサ71、72、73または74
にも送ることができるが、いずれのデジタル画像/グラ
フィックプロセッサも他のデジタル画像/グラフィック
プロセッサまたはマスタプロセッサ60にこのコマンド
ワードを送ることはできない。
【0060】コマンドワードのGビット(ビット13)
は、メッセージインタラプトを表示する。いずれのデジ
タル画像/グラフィックプロセッサもこのメッセージイ
ンタラプトを他のデジタル画像/グラフィックプロセッ
サまたはマスタプロセッサ60に送ることができる。か
かるコマンドワードで指定されたデジタル画像/グラフ
ィックプロセッサは、そのメッセージインタラプトフラ
グをセットし、メッセージインタラプトがインタラプト
イネーブルレジスタINTEN110のビット20によ
りイネーブルされると、メッセージインタラプトを取り
込む。好ましい実施例では、このコマンドワードは転送
コントローラ80に送られることはない。
【0061】デジタル画像/グラフィックプロセッサが
自身にコマンドワードを発生し、Hビットにより自らを
停止させたり、またはIビットによってインストラクシ
ョンキャッシュをフラッシュさせると、このコマンドを
実行するには、このコマンドワードは対応するデジタル
画像/グラフィックプロセッサの指定ビットセットを有
していなければならない。これは一貫性を持たせ、かつ
コマンドワード機能を将来的に拡張できるようにするた
めである。
【0062】図5は通信レジスタCOMMのフィールド
定義を略図で示す。F、S、QおよびPビット(ビット
31〜28)は、デジタル画像/グラフィックプロセッ
サ71、72、73または74および転送コントローラ
80からのパケット転送の通信に使用される。Fおよび
Sビットは通常の読み出し/書き込みビットであり、P
ビットはSビットが0であるか、または同時に0にクリ
アされる場合に限り書き込みが可能である。9ビット
は、読み出し専用であり、パケット転送は転送コントロ
ーラ80によるデータ移動のためのデジタル画像/グラ
フィックプロセッサ71、72、73または74による
リクエストである。これらデータ移動ではマイクロプロ
セッサ集積回路100の内部のメモリ11〜14および
21〜40だけを必要とする場合もあれば、内部メモリ
と外部メモリの双方を必要とする場合もある。パケット
転送はリンクされたリスト構造として記憶され、各デジ
タル画像/グラフィックプロセッサに対しては、1度に
一つのパケット転送しかアクティブにできない。リクエ
スト中のデジタル画像/グラフィックプロセッサ717
2、73または74に対応するパラメータメモリ25、
30、35または40内の専用アドレスにおけるリンク
されたリストポインタは、アクティブなリンクされたリ
ストの開始点をポイントする。リンクされたリストにお
ける各エントリーは、次のリストエントリーに対するポ
インタを含む。
【0063】パケット転送の初期化を行うには次のステ
ップが必要である。まずデジタル画像/グラフィックプ
ロセッサは、対応するパラメータメモリに所望するパケ
ット転送パラメータをセットする。次にデジタル画像/
グラフィックプロセッサは対応するパラメータメモリに
所定のアドレスの16進数0100#0FCにリンクさ
れたリストの第1リンクのアドレスを記憶し、ここで#
はデジタル画像/グラフィックプロセッサの番号と置換
される。Pビット(ビット28)の1へのセットによ
り、パケット転送の転送コントローラ80に警告が与え
られる。デジタル画像/グラフィックプロセッサはFビ
ット(ビット31)を1にセットすることにより高い優
先度をリクエストしたり、またはFビットをクリアする
ことにより低い優先度をリクエストできる。
【0064】転送コントローラ80はPビットがセット
されたことを認識し、Fビットのステートに基づきパケ
ット転送への優先度を割り当てる。転送コントローラ8
0はPビットをクリアし、Qビットをセットすることに
よりパケット転送が待ち行列内にあることを表示する。
次に転送コントローラ80は対応するパラメータメモリ
内の所定のアドレス、すなわち16進数の0100#0
FCにアクセスし、リンクされたリストに基づくパケッ
ト転送のサービスを行う。パケット転送が完了すると、
転送コントローラ80はQビットを0にクリアし、待ち
行列がもはやアクティブでないことを表示する。デジタ
ル画像/グラフィックプロセッサは、パケット転送が完
了したかどうかを表示するため、このビットを周期的に
読み出すことができる。これとは別に、パケット転送自
体がパケット転送終了時にリクエスト中のデジタル画像
/グラフィックプロセッサをインタラプトするように転
送コントローラ80に命令することもできる。この場
合、転送コントローラ80はビット19すなわちパケッ
ト転送エンドインタラプトビットPTENDをインタラ
プトフラグレジスタINTFLG115にセットするこ
とにより、インタラプトをデジタル画像/グラフィック
プロセッサへ送る。パケット転送サービス中に転送コン
トローラ80がエラーを生じると、ビット18、すなわ
ちパケット転送エラーインタラプトビットPTERRO
RをインタラプトフラグレジスタINTFLG115に
セットすることにより、デジタル画像/グラフィックプ
ロセッサにインタラプト信号を送る。デジタル画像/グ
ラフィックプロセッサは表1および適当なインタラプト
サービスルーチンに記載された位置に記憶されている適
当なインタラプトベクトルを有する。
【0065】デジタル画像/グラフィックプロセッサ
は、転送コントローラ80が先のリクエストにサービス
している間、別のパケットをリクエストできる。この場
合、デジタル画像/グラフィックプロセッサはQビット
が1である間にPビットを1にセットする。これが行わ
れると、転送コントローラ80はインタラプトフラグレ
ジスタINTFLG115のビット17をセットするこ
とにより、デジタル画像/グラフィックプロセッサにパ
ケット転送ビジーインタラプトPTBを送る。転送コン
トローラ80はPビットを0にクリアする。リクエスト
中のデジタル画像/グラフィックプロセッサのインタラ
プトサービスルーチンは、第1パケット転送が待ち行列
内にある間、第2パケット転送を一時中止し、パケット
転送をキャンセルしたり、他のある訂正措置をとること
ができる。このような特徴により、デジタル画像/グラ
フィックプロセッサは通信レジスタCOMM120のQ
ビットを最初にチェックすることなく、パケット転送を
送ることができる。
【0066】デジタル画像/グラフィックプロセッサ
は、Sビットを1にセットすることによりパケット転送
のサービスを一時中止にできる。転送コントローラ80
は、Sビットが1であることを検出する。パケット転送
が待ち行列内にある間このことが起きると、転送コント
ローラ80はQビットをPビットにコピーし、Qビット
をクリアする。これによりPビットは一般に1にセット
される。リクエスト中のデジタル画像/グラフィックプ
ロセッサ内のソフトウェアは、SおよびPビットのステ
ータスを変えることができる。転送コントローラ80は
一時中断されたパケット転送のリンクされたリスト内の
位置をメモリに保持する。Sビットが0であり、Pビッ
トが同時に1であると、転送コントローラ80が判断す
ると、一時中止されていたパケット転送は再開される。
【0067】通信レジスタCOMM120の同期ビット
フィールド(ビット15〜8)は、同期したマルチイン
ストラクション、マルチデータモードで使用される。こ
のフィールドは、同期したマルチインストラクション、
マルチデータモードを可能にするロックインストラクシ
ョンLCKおよびこのモードをディスエーブルするアン
ロックインストラクションUNLCKによって境界が定
められたインストラクションのために作動する。ビット
11〜8は、インストラクションのフェッチをデジタル
画像/グラフィックプロセッサ74、73、72および
71とそれぞれ同期化すべきかどうかを表示している。
これらビットのいずれかにおける1は、対応するデジタ
ル画像/グラフィックプロセッサが先のインストラクシ
ョンの実行を完了したことを表示するまでのデジタル画
像/グラフィックプロセッサがインストラクションフェ
ッチを遅延することを示している。このデジタル画像/
グラフィックプロセッサを同期すべき他のデジタル画像
/グラフィックプロセッサは、同様にして通信レジスタ
COMM120内の対応するビットをセットすることに
ある。デジタル画像/グラフィックプロセッサが同期し
たマルチインストラクション、マルチデータモードにあ
る場合、それ自身に対応する同期ビットをセットする必
要はないが、セットしても害はない。ビット15〜12
は、8つのデジタル画像/グラフィックプロセッサまで
拡張する場合に保留したものである。
【0068】通信レジスタCOMM120のDIGP#
フィールド(ビット2〜0)は、マルチプロセッサ集積
回路100上の各々の特定のデジタル画像/グラフィッ
クプロセッサに対してユニークとなっている。これらビ
ットは読み出し専用であり、これらビットに書き込もう
とする試みは不可能である。これは同地つでないデジタ
ル画像/グラフィックプロセッサ71、72、73およ
び74の一部にすぎないからであり、ビット1〜0は表
3に示すような特定のデジタル画像/グラフィックプロ
セッサを識別する2ビットのコードに配線で発生でき
る。
【0069】
【表3】
【0070】ビット2は8個のデジタル画像/グラフィ
ックプロセッサを有するマルチプロセッサ集積回路10
0で使用するために保留されていることに留意された
い。現在好ましい実施例は、このビットは、4つのデジ
タル画像/グラフィックプロセッサ71、72、73お
よび74のすべてに対し0となるように、配線で発生さ
れる。
【0071】通信レジスタCOMM120のこの部分は
特定のデジタル画像/グラフィックプロセッサを識別す
るように働き、デジタル画像/グラフィックプロセッサ
の識別番号は通信レジスタCOMM120と7(16進
数0000007)とAND論理演算することによって
抽出できる。例えば、インストラクションD0=COM
M&7がこれを行う。このインストラクションは通信レ
ジスタCOMM120のビット2〜10内のデータだけ
をリターンさせる。このインストラクションは8個のデ
ジタル画像/グラフィックプロセッサを有する実施例に
対して適しており、各デジタル画像/グラフィックプロ
セッサに対応するデータメモリおよびパラメータメモリ
のアドレスは、そのデータ画像/グラフィックプロセッ
サの識別に依存するので、識別番号によりソフトウェア
がこれら対応するメモリのアドレスを計算できる。この
ような識別番号を使用することにより、プログラムを実
行する特定のデジタル画像/グラフィックプロセッサと
独立したソフトウェアを書き込むことが可能となる。デ
ジタル画像/グラフィックプロセッサと独立したプログ
ラムが、対応するパラメータメモリのベースアドレス
と、データメモリのベースアドレスに対しレジスタPB
AおよびDBAを使用することもできる。
【0072】マルチプロセッサ集積回路100は小エン
ディアンまたは大エンディアンフォーマットで作動でき
る。特に表記しなければ、図および表は大エンディアン
フォーマットでのオペレーションを示す。内部レジスタ
および外部データバスのためのビットナンバリングは、
常に右側にビット0を有する小エンディアンの規定に従
う。64ビットのWワード内のバイトは、小エンディア
ンモードでは右側からアドレス指定され、大エンディア
ンモードでは左側からアドレス指定される。常に32ビ
ットオペレーションを用いて内部レジスタにアクセスす
ることにより混乱を受けることができる。他の実施例で
バス幅を広くしたり狭くしたりすることもできる。16
ビットの整数倍であるバス幅が最も有効であると信じら
れる。
【0073】転送コントローラ80は、マルチプロセッ
サ集積回路100のうちのマスタプロセッサ60および
デジタル画像/グラフィックプロセッサ71、72、7
3、74と外部メモリ、例えばビデオRAM5および6
並びにメモリ9との間のインターフェースとなってい
る。転送コントローラ80は、いくつかの自律的メモリ
オペレーションのみならずプロセッサによってリクエス
トされるメモリオペレーションを実行する。これらにつ
いては後述する。転送コントローラ80はすべてのメモ
リ11、12、13、14、15、21、22、23、
24、25、26、27、28、29、30、31、3
2、33、34、35、36、37、38、39および
40にアクセスをするクロスバー50に、64ビットの
バス接続をしている。従って転送コントローラ80はイ
ンストラクションキャッシュ、データメモリおよびパラ
メータメモリのすべてにアクセスできる。第2の64ビ
ットのバスは、画像システムバスに接続し、オフチップ
アクセスを行う。
【0074】転送コントローラ80はそのホールド/ホ
ールドアクノーリッジ機構を使用することにより、画像
システムを介する外部メモリへのアクセスを外部ホスト
が行うことを可能にしている。転送コントローラ80は
キャッシュミスおよびパケット転送リクエストを行い、
外部DRAM/VRAMのリフレッシュを行い、フレー
ムコントローラ90が必要とするシリアルレジスタ転送
サイクルを実行し、VRAMをベースとするディスプレ
イ/キャプチャバッファを更新する。メモリ22、2
3、24、27、28、29、32、33、34、3
7、38および39を用いる転送コントローラ80のメ
モリオペレーションは、通常、デジタル画像/グラフィ
ックプロセッサ71、72、73、74またはマスタプ
ロセッサ60からのパケット転送リクエストに応答して
行われる。パケット転送は、オンチップメモリとオフチ
ップメモリとの間でデータを転送する極めてフレキシブ
ルな方法を提供するものである。転送コントローラ80
は直接外部アクセス(DEA)サイクルを用いることに
より、プロセッサに直接データを送ることもできる。直
接外部アクセスサイクルはデジタル画像/グラフィック
プロセッサ71、72、73、74がオフチップメモリ
にアクセスできるようにすると共に、外部メモリにアク
セスする際にマスタプロセッサ60がそのデータキャッ
シュメモリをバイパスできるようにする。転送コントロ
ーラ80は種々のリクエストの優先権を定め、必要であ
ればパケット転送リクエスト間で外部メモリインターフ
ェースをタイムシェアする。マスタプロセッサ60、デ
ジタル画像/グラフィックプロセッサ71、72、7
3、74、フレームコントローラ90およびホスト処理
システム1からのリクエストのすべては固定された優先
度(順位)決定方法によりサービスされる。同じ優先度
の多数のリクエストがペンディングであると、転送コン
トローラ80はラウンドロビン方法に基づいてこれらに
サービスを行う。
【0075】転送コントローラ80はプロセッサからの
多くの異なるタイプのリクエストを処理しなければなら
ない。最適なシステムの性能を保つには、これらリクエ
ストは緊急度および重要性によって優先度が定められ
る。転送コントローラ80はこれらの異なる優先度に基
づいて作動するので、クロスバー50に対する自己の優
先度はサイクルごとに変わり得る。
【0076】図6は、画像システムバス上での転送コン
トローラ80のオペレーションの優先度を示す。これは
階層200として示されている。同じ優先度の多数のリ
クエストが受信されると、転送コントローラ80はこれ
らをラウンドロビン法で処理する。これについては図6
に示されている。いずれのプロセッサもパケット転送に
対して一つのアクティブな優先度しか有することができ
ない。マスタプロセッサ60が緊急優先度、高い優先度
および低い優先度のパケツト転送リクエストを送ること
ができるが、デジタル画像/グラフィックプロセッサ7
1、72、7374は、高低優先度のパケット転送に限
定されている。
【0077】最高優先度201はホスト処理システム1
による外部バスリクエスト(HRRQ)のサービスであ
る。転送コントローラ80はホストリクエストライン上
の信号に応答し、画像システムバスの制御をホスト処理
システム1の下に置くことができる。
【0078】次に低い優先度202は、フレームコント
ローラ90からのメモリリクエストのサービスである。
次に低い優先度203は、緊急なダイナミックランダム
アクセスメモリ(DRAM)のリフレッシュリクエスト
のサービスである。更に下に述べるように、DRAMリ
フレッシュリクエストの所定のバックログが形成された
際に、これら緊急DRAMリフレッシュリクエストが生
じる。
【0079】次の優先度204は、マスタプロセッサ6
0のインストラクションキャッシュメモリ11および1
2、データキャッシュメモリ12および13のサービス
並びにインタラプトがディスエーブルされたときのマス
タプロセッサ60の緊急パケットリクエストである。各
プロセッサに含まれる関連するキャッシュロジックによ
り、キャッシュに関連する転送コントローラ80のすべ
てのオペレーションが自動的にリクエストされる。リク
エストされたデータは外部メモリ位置からリクエスト中
のプロセッサのデータキャッシュメモリ内の適当なサブ
ブロックへ移動される。転送コントローラ80はマスタ
プロセッサ60が必要とする際に、マスタプロセッサ6
0のためにデータキャッシュメモリ13および14のダ
ーティサブブロックもセーブする。緊急パケット転送リ
クエストはマスタプロセッサ60によってリクエストで
きるだけであり、パケット転送リクエスト内の特定のビ
ットのセッティングを含む。これについては後述する。
マスタプロセッサ60がインタラプトをイネーブルする
場合、これらデータ転送は優先度が低いことに留意され
たい。
【0080】次に低い優先度は、デジタル画像/グラフ
ィックプロセッサ71、72、7374またはマスタプ
ロセッサ60のインストラクションキャッシュメモリ1
1および12、データキャッシュメモリ12および13
のインストラクションキャッシュリクエストまたはダイ
レクト外部アクセス(DEA)リクエストのサービス、
並びにインタラプトがイネーブルされている時のマスタ
プロセッサ60の緊急パケット転送リクエストを行うこ
とである。ここで、同じレベルの同時のアクセスリクエ
ストは、リクエストしているプロセッサに応じてラウン
ドロビン法により処理されることに留意されたい。同じ
プロセッサに対するキャッシュサービスリクエストおよ
びダイレクト外部アクセスリクエストは、次のプロセッ
サにトークンを送る前にサービスされる。
【0081】次の優先レベル206は、高い優先度のパ
ケット転送である。図6に示すように、種々のプロセッ
サから生じたパケット転送は、ラウンドロビン法で処理
される。マスタプロセッサ60またはデジタル画像/グ
ラフィックプロセッサ71、72、73または74のう
ちの一つがリクエストされたデータを待っている場合、
通常、高い優先度のパケット転送を用いる。転送コント
ローラ80は次の優先レベル207を有する低い優先度
のパケット転送に対して同様なラウンドロビン法を用い
る。マスタプロセッサ60またはデジタル画像/グラフ
ィックプロセッサ71、72、73または74のうちの
一つが、リクエストされたデータを待っていない場合、
このプロセッサは低い優先度のパケット転送を通常用い
る。後述するように、リクエスト中のプロセッサはパケ
ット転送を緊急にするか、高い優先度にするか、または
低い優先度にするかを表示する。
【0082】各リクエストの優先原理について、下に説
明する。外部デバイス、例えばホスト処理システム1
は、欲する場合、迅速なアクセスを行うことができなけ
ればならない。外部デバイスは後述するように、REQ
[1:0]をモニタすることにより、必要であれば高い
優先度のリクエストに対し転送コントローラ80に画像
システムバスを戻すことができる。フレームコントロー
ラ90のリクエストはビデオディスプレイまたはビデオ
キャプチャを悪化することなく、タイムクリティカルな
VRAM転送サイクルが生じるように、第2の優先度を
受け入れる。ホストリクエストサイクルおよびフレーム
コントローラ90のリクエストは、間欠的にしか発生し
ないので、高い優先度を必要とする緊急DRAMリフレ
ッシュはその下の優先度が与えられる。次の優先度はマ
スタプロセッサ60のキャッシュサービス、ダイレクト
外部アクセスおよびマスタプロセッサ60のインタラプ
トがディスエーブルされている際に生じる緊急優先度の
パケット転送サイクルである。これにより、通常インタ
ラプトをディスエーブルするマスタプロセッサ60のイ
ンタラプトサービスルーチンは、システム性能を最大に
するようにできるだけ迅速に実行することができる。デ
ジタル画像/グラフィックプロセッサ71、72、7
3、74のキャッシュサービスおよびダイレクト外部ア
クセスリクエストは次の優先度である。リクエストのサ
ービスがなされるまで、プロセッサはアイドル状態であ
るので、これらを迅速にサービスすることが重要であ
る。マスタプロセッサ60のキャッシュサービス、ダイ
レクト外部アクセスリクエストおよび緊急パケット転送
も、インタラプトがイネーブルされている場合のこの優
先度にある。その理由は、マスタプロセッサ60はシス
テム内の他の場所からのインタラプトリクエストにサー
ビスしていないからである。高い優先度のパケット転送
はリクエスト中のプロセッサが転送を終了するのにデー
タを待っていること、または転送コントローラ80が外
部バスバンド幅を最適にするよう、クロスバーアクセス
のためにデジタル画像/グラフィックプロセッサ71、
72、73および74よりも高い優先度とすることが必
要であることを意味している。低い優先度のパケット転
送は、プロセッサがデータを待っていないことを意味し
ているので、これらには極めて低い優先度が与えられ
る。意図する実施例では、トリックルリフレッシュサイ
クルに最下位の優先度が与えられる。これらサイクル
は、外部バスがアイドル状態であり、リフレッシュバッ
クログが0でない場合に実行されるだけである。これ
は、バックログを小さくし、後の時間に高い優先度の緊
急リフレッシュがリクエストされる可能性を少なくする
のに役立っている。
【0083】転送コントローラ80が同じ優先度の異な
るプロセッサから多数のリクエストを受けるときはいつ
も、これらの間でラウンドロビン法を行う。このラウン
ドロビン法は、固定された周期的な優先方法である。す
なわちこのことは、ラウンドロビンからいずれのプロセ
ッサも除くことができず、サイクル内のプロセッサの順
序を変えることができないことを意味している。特定の
プロセッサのリクエストが完了すると、常にチェーン内
でペンディング中のリクエストを有する次のプロセッサ
にラウンドロビントークンが渡される。他のプロセッサ
からの等しい優先度のリクエストをサービスする必要が
あるときは、これによって一つのプロセッサが転送コン
トローラ80を独占することが防止される。
【0084】転送コントローラ80のサービスを行うリ
クエストレベルに応じ、転送コントローラ80のクロス
バーの優先度はダイナミックに変わる。これについて
は、図7において階層210として示されている。転送
コントローラ80には次の優先度が割り当てられる。緊
急優先度のパケット転送リクエスト、キャッシュサービ
スリクエスト、ダイレクト外部アクセスリクエストのサ
ービスを行っているとき、またはそのパイプラインをフ
ラッシングしているときに、転送コントローラ80はマ
スタプロセッサ60の優先度212の上の優先度で作動
する。転送コントローラ80が、緊急DRAMリフレッ
シュリクエスト、フレームコントローラ90からのリク
エスト、ホストインターフェースリクエストまたはソフ
トリセットを受けるときはいつも、そのパイプラインを
フラッシュする。これらは完了を待っている待機中の外
部サイクルで開始することはできない。パイプラインの
フラッシングは、ときどき生じるか、または短期間の間
マスタプロセッサ60をロックアウトするだけである。
【0085】転送コントローラ80にはデジタル画像/
グラフィックプロセッサ71、72、73、74の優先
度214よりも高く、かつ高優先度のパケット転送用マ
スタプロセッサ60よりも低い優先度213が与えられ
る。これにより、マスタプロセッサ60をロックアウト
することなく転送コントローラ80に最大の可能な優先
度が与えられる。マスタプロセッサ60は一般にコント
ローラとして使用されるので、長期間これをロックアウ
トすることは、システムに好ましくない影響が及ぶ。
【0086】転送コントローラ80が低い優先度のパケ
ット転送を行う場合、このコントローラの優先度214
はデジタル画像/グラフィックプロセッサ71、72、
73、74のラウンドロビンの優先度214よりも低
い。これによってパケット転送の優先度が低い際に転送
コントローラ80がデジタル画像/グラフィックプロセ
ッサ71、72、73、74からのクロスバンド幅をス
チールすることが防止される。デジタル画像/グラフィ
ックプロセッサ71、72、73、74のローカルメモ
リアクセスは異なるメモリに向けられ、干渉できないこ
とに留意すべきである。従ってこれらローカルメモリア
クセスはラウンドロビン法で同じステージを有する。
【0087】転送コントローラ80によってより高い優
先度のリクエストが受け入れられる場合、このコントロ
ーラは新しいリクエストのクロスバーの優先度で現在の
オペレーションを完了したり、一時中断したりする。こ
れによりシステム内でのブロックが発生しないよう保証
される。従って例えば高い優先度のパケット転送リクエ
ストが受け入れられる場合、高い優先度で低い優先度の
パケット転送の一時中断が生じる。
【0088】転送コントローラ80はデジタル画像/グ
ラフィックプロセッサ71、72、73、74のインス
トラクションキャッシュミス、マスタプロセッサ60の
インストラクションおよびデータキャッシュミスに自動
的にサービスを行う。多数のキャッシュサービスリクエ
ストが受信されると、転送コントローラ80は図6に示
すように、ラウンドロビン法に基づき、これらの優先度
を定める。キャッシュミスのサービスが完了すると、転
送コントローラ80はリクエスト中のプロセッサにシグ
ナルを送る。マスタプロセッサ60はラウンドロビンで
の順番内にサービスされるインストラクションおよびデ
ータキャッシュの双方を有することができる。
【0089】デジタル画像/グラフィックプロセッサ7
1、72、73、74のインストラクションキャッシュ
は、各々4つの128バイト(16インストラクショ
ン)のサブブロックを含む4つのブロックから成る1方
向の組の関連(完全関連)キャッシュである。他の実施
例では、他方向の組の関連キャッシュを用いることもで
きる。デジタル画像/グラフィックプロセッサがキャッ
シュミスを経験すると、このプログラムフロー制御ユニ
ットは転送コントローラ80に信号を送ってキャッシュ
ミスサービスをリクエストする。デジタル画像/グラフ
ィックプロセッサ71、72、73または74は、イン
ストラクションを入れるキャッシュブロックを決定し、
この情報のみならずアドレスも転送コントローラ80へ
送る。転送コントローラ80は、外部メモリからの完全
サブブロック(128バイト)をフェッチし、これをリ
クエスト中のデジタル画像/グラフィックプロセッサ7
1、72、73、74の適当なキャッシュサブブロック
へ入れる。次に転送コントローラ80はリクエストのサ
ービスが完了し、プロセッサがそのプログラムの実行を
続けることができる旨を、デジタル画像/グラフィック
プロセッサ71、72、73または74へ知らせる。
【0090】マスタプロセッサ60は、各々4ブロック
から成る4方向の関連する組である。各ブロックは4つ
の64バイトのサブブロックを含む。マスタプロセッサ
60はインストラクションキャッシュまたはデータキャ
ッシュ、または双方に対するサービスをリクエストでき
る。マスタプロセッサ60のインストラクションキャッ
シュサービスリクエストは、転送コントローラ80によ
りフェッチされるサブブロックの大きさがわずか64バ
イトであることを除けば、デジタル画像/グラフィック
プロセッサ71、72、73、74のキャッシュリクエ
ストと同様に取り扱われる。
【0091】マスタプロセッサ60のデータキャッシュ
メモリ13および14は、転送コントローラ80がその
内容を外部メモリに書き戻すようにリクエストできる点
でインストラクションキャッシュ11および12と異な
っている。転送コントローラ80はマスタプロセッサ6
0のデータキャッシュミスに対し、マスタプロセッサ6
0のインストラクションキャッシュを用いる場合と同じ
ように、64バイトのサブブロックをフェッチする。し
かしながら一致するタグアドレスが発見できず、すべて
のブロックを使用したことによりマスタプロセッサ60
がブロックミスを起こす場合、このプロセッサはまず最
初に転送コントローラ80にブロックを置換する前に、
最後に使用したブロック内にダーティサブブロックを書
き戻すことをリクエストする。ダーティサブブロックの
書き戻しは、ラウンドロビン優先度内の単一マスタプロ
セッサ60の順番内で行うことができる。転送コントロ
ーラ80は特殊キャッシュインストラクションに応答し
てダーティサブブロックを書き戻すようにもリクエスト
できる。
【0092】転送コントローラ80はマスタプロセッサ
60およびデジタル画像/グラフィックプロセッサ7
1、72、73、74からのすべてのダイレクト外部ア
クセス(DEA)リクエストを処理する責任を負ってい
る。ダイレクト外部アクセスサイクルはデジタル画像/
グラフィックプロセッサ71、72、73、74が外部
メモリ内のデータに直接アクセスできるようにすると共
に、マスタプロセッサ60がそのデータキャッシュをバ
イパスできるようにする。ダイレクト外部アクセスには
高い優先度が与えられているので、これらアクセスは長
さが1バイト、半ワード(16ビット)、1ワード(3
2ビット)、またはダブルワード(64ビット)となり
得る単一アクセスに限られる。これにより、一つのプロ
セッサが多数のダイレクト外部アクセスサイクルで外部
バスを独占することが防止され、これによりダイレクト
外部アクセスリクエストおよび他のプロセッサのキャッ
シュミスのサービスが行われるのが防止される。単一の
オフチップメモリ位置への高速アクセス、例えばプログ
ラム可変またはオフチップレジスタが必要なときに、ダ
イレクト外部アクセスサイクルが使用される。
【0093】デジタル画像/グラフィックプロセッサ7
1、72、73、74は、それらのパラメータメモリ2
5、30、35および40、並びにそれらのデータメモ
リ22、23、24、26、28、29、32、33、
34、37、38および39に通常アクセスする。16
進数02000000以上のアドレスへのアクセスによ
り、ダイレクト外部アクセスリクエストは自動的に転送
コントローラ80へ送られる。このリクエストはキャッ
シュダイレクト外部アクセスラウンドロビンにおけるリ
クエスト中のデジタル画像/グラフィックプロセッサ7
1、72、73、74の順番に達したときにサービスを
受ける。キャッシュミスリクエストおよびダイレクト外
部アクセスリクエストの双方は、継続中の場合に1回で
サービスを行うことができる。クロスバーを介してアク
セスできないオンチップメモリ領域、例えばマスタプロ
セッサ60のパラメータメモリ16へのデジタル画像/
グラフィックプロセッサ71、72、73、74のアク
セスは、転送コントローラ80へのダイレクト外部アク
セスリクエストに変換される。しかしながらこのダイレ
クト外部アクセスはフォールトとなる。フォールトを生
じさせるようなデジタル画像/グラフィックプロセッサ
71、72、73、74のダイレクト外部アクセスサイ
クルは、フォールトしたデジタル画像/グラフィックプ
ロセッサ71、72、73、74のキャッシュサイクル
と同じように取り扱われる。
【0094】マスタプロセッサ60はデジタル画像/グ
ラフィックプロセッサ71、72、73、74と若干異
なる態様でダイレクト外部アクセスサイクルを用いる。
マスタプロセッサ60は、データキャッシュメモリ13
および14により通常外部メモリにアクセスする。マス
タプロセッサ60はダイレクト外部アクセスサイクルを
利用し、データキャッシュメモリ13および14および
アクセスメモリを直接バイパスする。特殊メモリロード
または記憶インストラクションを用いることにより、ダ
イレクト外部アクセスサイクルが明瞭に指定される。マ
スタプロセッサ60にアクセスできないオンチップアド
レス、例えばデジタル画像/グラフィックプロセッサ7
1、72、73、74のインストラクションキャッシュ
メモリ21、26、31および36に対するかかる特別
ロードまたは記憶インストラクションを、マスタプロセ
ッサ60が実行しようとする場合、このオペレーション
はダイレクト外部アクセスリクエストに変換され、次に
変換コントローラ80によってフォールトされる。アク
セス可能なオンチップメモリ領域、例えばオンチップレ
ジスタまたはデジタル画像/グラフィックプロセッサ7
1、72、73、74のデータメモリ22、23、2
4、27、28、29、32、33、34、37、3
8、39への特別メモリロードまたは記憶オペレーショ
ンは、通常のロードまたは記憶オペレーションに変換さ
れ、転送コントローラ80を介してダイレクト外部アク
セスリクエストは行われない。
【0095】図8は、転送コントローラ80の高度なブ
ロック図を示す。下記に、各主要ブロックを簡単に説明
する。転送コントローラ80は内部メモリインターフェ
ース301と、外部メモリインターフェース302と、
リクエスト待ち行列化および優先度決定回路303と、
キャッシュ、VRAMおよびリフレッシュコントローラ
310と、パケット転送用先入れ先出し(FIFO)バ
ッファ311と、キャッシュバッファ312と、ソース
レジスタ321およびソース制御ロジック322から成
るソースマシン320と、ソースマルチプレクサおよび
アライメントロジック330と、宛て先レジスタ341
および宛て先制御ロジック342から成る宛て先マシン
340と、宛て先マルチプレクサおよびアライメントロ
ジック302とから成る。
【0096】転送コントローラ80はマルチプロセッサ
集積回路100による外部メモリへのすべてのアクセス
に対して責任を負っている。外部メモリインターフェー
スは多数の異なるタイプや大きさのメモリデバイスおよ
び周辺機器に合わせるように設計されている。アクセス
されるメモリのタイプは、ダイナミックに決定されるの
で、各メモリサイクルのタイミングはアクセスされるデ
バイスに対して最適にすることができる。
【0097】次は、外部メモインターフェース302を
介して外部データアクセスのために使用されるマルチプ
ロセッサ集積回路100の信号のリストである。
【0098】アドレスバスA[31:0]。これはマル
チプロセッサ集積回路100からの32ビットのバイト
アドレスを外部メモリに送るためのものである。このア
ドレスはDRAMアクセスに対して多重化できる。
【0099】アクセスシフト選択AS[2:0]。これ
らの入力は転送プロセッサ80による別アドレスへ与え
られるシフト量を決定する。表4aおよび4bに示すよ
うに、0を含む8つのシフト量がサポートされている。
表4aはアドレスバスビットA[31:16]上の出力
を示し、表4bはアドレスバスビットA[15:0]上
の出力を示す。
【0100】
【表4】
【0101】行アドレス時間の間、アドレスバスA[3
1:0]は、通常のアドレス値を出力する。列アドレス
時間の間、アドレスバスA[31:0]は表4aおよび
4bに示すようにアドレスシフト選択AS[2:0]に
従ってシフトされたアドレス値を出力する。Xと表示さ
れたアドレスライン出力は、ドライブされず、高インピ
ーダンス状態にセットされたものであることに留意され
たい。
【0102】バスサイズ選択BS[1:0]。これは6
4ビット幅よりも狭いデータバスに対するダイナミック
なバスの大きさの決定を可能とする。下記の表5に、こ
れら入力信号のコード化を示す。
【0103】
【表5】
【0104】出力ブロックCLKOUT。このクロック
出力は外部ロジックがマルチプロセッサ集積回路100
の作動に同期できるようにするものである。別タイミン
グ選択CT[1:0]。これらの入力信号は転送コント
ローラ80によって与えられる現在のメモリサイクルの
どのタイミングであるかを決定する。下記の表6にこれ
ら入力信号のコード化を示す。
【0105】
【表6】
【0106】列アドレスストローブCAS′[7:
0]。これら出力は、DRAM/VRAMの反転CAS
をドライブする。個々のバイトアクセスを可能にするよ
うに、8個のストローブが達成される。エンディアンモ
ードにかかわらず、反転CAS[0]は、D[7:0]
でのデータ転送に対応し、CAS′[1]は、D[1
5:9]上の転送に対応する。トランスペアレンシーで
はこれら信号はバイト書き込みストローブとして使用さ
れる。データバスD[63:0]。この入出力バスは、
マルチプロセッサ集積回路100の内外にメモリサイク
ル当たり64ビットまでのアクセスを可能とする。
【0107】データバッファ出力イネーブルDBE
N′。この出力はデータトランシーバをオンにするのに
用いることができる。データ方向インディケータDDI
N′。この出力は、データトランシーバに対する方向イ
ンディケータとなる。特別機能ピンDSF1およびDS
F2。これら出力は特別VRAM機能を選択するのに使
用される。フォールト反転FAULT。この入力はメモ
リフォールトが生じたことを、マルチプロセッサ集積回
路100に知らせる。
【0108】ページサイズ選択PS[2:0]。これら
入力は現在アクセスされているメモリのページ選択をマ
ルチプロセッサ集積回路100に示す。これら入力の使
用については、後に更に詳細に説明する。行アドレスス
トローブ反転RAS。これら出力はDRAM/VRAM
の反転RAS入力をドライブする。
【0109】READY。この入力は完了すべきメモリ
サイクルに対して外部デバイスがレディー状態となって
いることを表示する。これはメモリサイクル内に待機ス
テートを挿入するのに、転送コントローラ80によって
使用される。
【0110】リトライRETRY′。この入力はメモリ
がビジーとなっており、転送コントローラ80が再びメ
モリサイクルを開始すべきことをマルチプロセッサ集積
回路100に表示するものである。行ラッチRL′。こ
の出力はアドレスバス上に有効な32ビットアドレスが
存在していることを表示するものである。
【0111】ステータスコードSTATUS[4:
0]。この出力は現在の転送コントローラのメモリサイ
クルのタイプと、起点についての詳細な説明を与える。
表7に示すように、行アクセスの開始から列アクセスの
開始までに、STATUS[4:1]の出力がコード化
される。下記のUTIME′と共にこれらをコーディン
グすることにより、マルチプロセッサ集積回路100の
タイミングに発生するメモリタイミングを外部デバイス
が発生することができるようなっている。
【0112】
【表7】
【0113】行時間ステータスコードの詳細は次のとお
りである。パケット転送、キャッシュミスまたはダイレ
クト外部アクセスリクエストに対しては通常の読み出し
コードが出力される。パケット転送、データキャッシュ
書き戻しまたはダイレクト外部アクセスリクエストによ
って発生される通常の書き込みサイクルに対しては通常
の書き込みコードが出力される。トリックルリフレッシ
ュサイクルおよびリフレッシュコントローラからの緊急
リフレッシュリクエストにより発生されるバーストリフ
レッシュサイクルの間にリフレッシュコードが出力され
る。
【0114】下記に周辺デバイスパケット読み出しおよ
び書き込みについて更に説明する。周辺デバイスのパケ
ット転送の結果として生じるメモリ読み出しサイクルに
対しては、周辺デバイスパケット転送読み出しコードが
出力される。このことは、後の列アクセス上のメモリか
ら読み出されるデータを、転送を開始させた周辺デバイ
スによってラッチすべきことを示している。周辺デバイ
スのパケット転送の結果として生じるメモリ書き込みサ
イクルに対しては、周辺デバイスパケット転送書き込み
コードが出力される。このことは、周辺デバイスがメモ
リ内に入れるべきデータでバスをドライブできるよう
に、後の列アクセスの間にマルチプロセッサ集積回路1
00がデータバスを高インピーダンスにすることを意味
している。
【0115】ブロック書き込みは特別なVRAMサイク
ルである。ブロック書き込みアクセスモードでパケット
転送によって発生されたVRAMに対し、ブロック書き
込みサイクル中にブロック書き込みコードが出力され
る。アクセスモードとしてブロック書き込みを指定した
パケット転送のカラーレジスタロード部分の間でロード
カラーレジスタコードが出力される。このサイクルはシ
ステムVRAMのカラーレジスタにデータを入れるのに
使用され、このカラーレジスタデータは部分書き込みサ
イクル中にメモリに書き込まれる。
【0116】シリアルレジスタ転送アクセスモードを使
用してパケット転送のソースサイクルの間にパケット転
送シフトレジスタ読み出しコードが出力される。このサ
イクルはシステムのVRAM上で読み出しメモリからレ
ジスタへの転送を行うものである。シリアルレジスタ転
送アクセスモードを指定したパケット転送の宛て先サイ
クルの間に出力される。このサイクルシステムVRAM
上での書き込みレジスタからメモリへの転送を実行す
る。
【0117】このフレームサイクルはフレームコントロ
ーラ90によって必要とされるメモリアクセスである。
シフトレジスタの読み出しおよび書き込みは特別シルア
ルレジスタのVRAMサイクルとなっている。位置読み
出し転送コードのうちのフレーム0は、フレームコント
ローラ90によってリクエストされるそれぞれのフル読
み出し転送サイクルの間に出力される。これらサイクル
はシステムVRAM上でのフル読み出し転送サイクルを
実行し、STATUS[2]信号はフレーム0のリクエ
ストサイクルでは0であり、フレーム1のリクエストサ
イクルでは1である。フレームコントローラ90によっ
てリクエストされるフル書き込み転送サイクルの間にフ
レーム0または1の書き込み転送コードが出力される。
これらサイクルは、システムVRAM上でのフル書き込
み転送サイクルを実行する。STATUS[2]信号は
フレーム0のリクエストサイクルに対しては0であり、
フレーム1のリクエストサイクルに対しては1である。
フレームコントローラ90はスプリット読み出し転送サ
イクルをリクエストするとフレーム0または1のスプリ
ット読み出し転送コードが出力される。これらサイクル
はVRAMメモリの行からシリアルレジスタの半分への
転送を行う。STATUS[2]信号はフレーム0のリ
クエストサイクルに対しては0であり、フレーム1のリ
クエストサイクルに対しては1である。フレームコント
ローラ90によってリクエストされるスプリット書き込
み転送サイクルの間に、フレーム0または1のスプリッ
ト書き込み転送コードが出力される。これらサイクルは
VRAMシリアルレジスタの半分からメモリアレイ内へ
転送を行う。STATUS[2]信号はフレーム0のリ
クエストサイクルに対しては0であり、フレーム1のリ
クエストサイクルに対しては1である。
【0118】別アクセスからのスタートから行アクセス
のスタートまでに、表8に示すように、STATUS
[4:1]の出力がコード化される。この情報は、転送
コントローラ80を介してマルチプロセッサ集積回路1
00により出力され、メモリサイクルをリクエストする
モジュールを示す。これら信号は、システム解析および
デバッグのため発生されるが、外部メモリシステムには
不要である。
【0119】
【表8】
【0120】転送/出力イネーブル反転TR。転送コン
トローラからのこの出力は、DRAM出力ドライバおよ
びVRAMシフトレジスタ転送サイクルをイネーブルす
る。ユーザータイミング選択反転UTIME。この入力
は転送コントローラが反転RASおよび反転CAS
[7:0]のタイミングを変え、ユーザーが自らのメモ
リタイミングを発生できるようにするものである。この
入力はマルチプロセッサ集積回路100が作動するエン
ディアンモードを決定するようにリセットでも使用され
る。書き込みイネーブル反転WE。これは通常は書き込
みまたは書き込み転送サイクルが生じていることをメモ
リに表示する出力である。内部メモリテストモードで
は、この信号は内部メモリへの書き込みを行うよう、外
部デバイスによってドライブされる入力となっている。
【0121】マルチプロセッサ集積回路100により発
生される各外部メモリサイクルは、ページモードサイク
ルを除く期間中の少なくとも5つのマシンステートであ
る。マシンステートは1クロック期間の長さにあり、C
LKOUTの降下エッジで始まる。各メモリサイクルは
2つの部分、すなわちアドレスサブサイクルとデータサ
ブサイクルとを有する。ページモードサイクルは、アク
セスが一つのアドレスサブサイクルとマルチデータサブ
サイクルを有するこのフォームの拡張である。
【0122】アドレスサブサイクルは外部メモリサイク
ルの第1マシンステートで開始し、少なくとも4つのマ
シンステート長さである。このときにアクセスのための
アドレスおよびステータスコードが出力される。この時
間にDRAMおよびVRAMのための行アドレスがラッ
チされるので、このサイクル部分は、行アドレス時間と
も称される。
【0123】アドレスバスA[31:0]は、現在アク
セス中の64ビットワードの開始バイトをポイントする
32ビットのアドレスを出力する。このアクセスは転送
すべきスタートバイトおよびデータ量に応じて1〜8バ
イトのいずれでもよい。このアドレスはマルチプロセッ
サ集積回路100の外部メモリスペースをデコードする
のに使用される。次に外部デコードロジックは多数の信
号をマルチプロセッサ集積回路100へ戻し、アドレス
シフト選択AS[2:0]によりアクセスされているデ
バイスのタイプ、列タイミング選択CT[1:0]によ
り速度、ページサイズ選択PS[2:0]によりページ
サイズ、バスサイズ選択BS[1:0]によりデータバ
ス幅を表示する。この情報はアドレスサブサイクルの長
さのみならず、データサブサイクルの長さ、アドレス指
定およびその数を決定するのに使用される。アドレスお
よびステータスはRL′またはRAS′によりラッチで
きる。
【0124】アドレスサブサイクルは、実行されるアク
セスのタイプが必要とするような4つのマシンステート
を越えるマシンステートの整数だけ自動的に延長され
る。このサブサイクルは更に待機ステートの挿入によっ
ても延長される。このサブサイクルは少なくとも1つの
マシンステートの長さであり、アドレスサブサイクルの
直後に続く。この時には、DRAMおよびVRAMのた
めの別アドレスが出力され、マルチプロセッサ集積回路
100を外部メモリとの間でデータが転送される。この
メモリサイクル部分は、列アドレス時間と称される。
【0125】データバスD[63:0]は、マルチプロ
セッサ集積回路100と外部メモリの間でデータを転送
する。これらデータは書き込みサイクルでドライブされ
るか、または読み出しサイクルでラッチされるかのいず
れかである。バス上の有効データの位置はマルチプロセ
ッサ集積回路100のエンディアンモード、転送データ
量およびメモリ幅により決定される。
【0126】この時間の間に出力される列アドレスは、
32ビットバイトのアドレスのシフトされた変形例であ
る。アドレスバスA[31:0]バス上のアドレスのア
ライメントはアドレスサブサイクル中にマルチプロセッ
サ集積回路100へ入力されるアドレスシフト選択AS
[2:0]によって決定される。
【0127】データサブサイクルの長さは、通常、アド
レスサブサイクル中にマルチプロセッサ集積回路100
へ入力される列タイミング選択CT[1:0]により決
定されるような1つ、2つまたは3つのマシンステート
である。より長いアクセス時間を必要とするデバイス
は、アドレスまたはデータサブサイクルのいずれかに待
機ステートを挿入できる。
【0128】現在のメモリアクセスは、行時間における
ページサイズ選択PS[2:0]入力に基づく先のアク
セスと同一方向で、かつ同一メモリページ内にあるとき
はいつも、転送コントローラ80はページモードサイク
ルを使用する。ページモードサイクルは後にマルチデー
タサイクルが続く一つのアドレスサブサイクルから成
り、データは同じメモリページ内に限り隣接している必
要はない。
【0129】アドレスおよびデータサブサイクルの双方
の間で、マルチプロセッサ集積回路100はSTATU
S[4:0]ピン上にステータスコードを出力する。こ
れらステータスコードは実行中の外部サイクルに関する
情報を与えるものである。アドレスサブサイクルの行時
間の間、STATUS[4:0]ピンは表7に示すよう
なコードを出力し、実行中のサイクルのタイプを表示す
る。その行時間ステータスコードは反転RLまたは反転
RAS信号によってラッチでき、メモリバンクデコーデ
ィングを行ったり、特別ハードウェア機能をイネーブル
するように外部ロジックによって使用される。データサ
ブサイクルの列時間の間、STATUS[4:0]ピン
に関する情報が変化し、そのサイクルおよびそのリクエ
スト中のプロセッサについての詳細が与えられる。表8
にはこれらアクティビティコードが示されている。これ
らコードはサイクル自体のタイプに関する情報を与える
ものでないので、システムのデバッグを容易にするよう
に、主として使用されるものである。
【0130】転送コントローラ80が外部メモリと正し
く通信できるようにするため、アクセス中のメモリがど
のタイプであるかを知る必要がある。これはマルチプロ
セッサ集積回路100のアドレスシフト選択AS[2:
0]、バスサイズ選択BS[1:0]、列時間選択CT
[2:0]およびページサイズ選択PS[2:0]入力
を用いることにより、行時間でメモリタイプを識別する
ことにより行われる。マルチプロセッサ集積回路100
は外部メモリアドレスおよび行時間ステータスコードを
出力し、これら入力をサンプリングし、メモリタイプを
決定する。これによりアドレスをデコードし、メモリ識
別信号を適当なレベルにドライブするための外部ロジッ
ク時間が与えられる。選択されたメモリタイプは、次の
アドレスサブサイクルまで有効な状態に留まる。
【0131】マルチプロセッサ集積回路100はDRA
MのみならずSRAMもサポートしているので、アドレ
スバス上に多重化された行および列アドレスを発生しな
ければならない。マルチプロセッサ集積回路100は常
に行時間にフルの32ビットバイトのアドレスを出力す
る。列時間で、この回路はバス上のアドレスをシフトし
てDRAMによってすでにラッチされている行アドレス
に列アドレスを一致させなければならない。アレイサイ
ズはデバイスの行/列アドレスビットの数を決定するの
で、列アドレスを正しく合わせるにはマルチプロセッサ
集積回路100はアクセスするDRAMのアレイサイズ
に知っている必要がある。これはアドレスシフト選択A
S[2:0]入力を使用して行われる選択である。外部
論理は行時間においてマルチプロセッサ集積回路100
によって出力されるアドレスをデコードし、アドレスシ
フト選択AS[2:0]入力に3ビットのシフトコード
を供給する。転送コントローラ80はこの値をサンプリ
ングし、ラッチし、これを使ってダイナミックメモリに
必要なようにアドレスを多重化するか、またはスタティ
ックメモリおよび周辺機器と使用するため、多重化しな
でおくかを決定する。
【0132】表4aおよび4bは、サンプルされたアド
レスシフト選択AS[2:0]の値が列時間に出力され
るアドレスにどのように影響するかを示している。値が
000である場合、各々の後の列アドレスにたいしてシ
フトされていない32ビットのアドレスが出力される。
値が0でない場合、表4aおよび4bが示すように、そ
の後の別アドレスがシフトされる。シフト値は8〜14
ビットの範囲であるが、このことは64K×N個〜25
6M×N個のアレイサイズに対応する8〜14個のアド
レスピンを備えたダイナミックメモリがサポートされる
ことを意味している。アドレスバスA[2:0]はシフ
ト量に関係なくバイトアドレスビット0〜2を常に出力
する。これはダイナミックバスのサイジングをサポート
するため行われる。
【0133】例えば1M×4個のDRAMが64ビット
ワイドのコンフィギュレーションでデータバスに接続さ
れていると仮定する。これらメモリは各々10ビットの
行および列アドレスを必要とする。マルチプロセッサ集
積回路100のアドレスシフト選択AS[2:0]はバ
イトアドレスを示しており、メモリバンクは64ビット
幅であり、ここのバイトは反転CAS[7:0]ストロ
ーブにより制御されるので無視できる。このことは、メ
モリはビットA[3]で始まる20個の隣接するアドレ
スビットを必要とする。表4aおよび4bを検討する
と、011アドレスシフト選択のAS[1:0]の値は
16ビットの多重化されたアドレスを与えることが判
る。ビットA[3]の開始アドレスが列時間におけるア
ドレスピンA[13]に対応しているので、A[13]
で開始する10個のマルチプロセッサ集積回路100の
アドレスピンにはDRAMアドレスピンが接続されてい
る。
【0134】可能であれば転送コントローラ80はペー
ジモードサイクルを実行するので、コントローラは現在
アクセス中のメモリのためのページまたは行境界を、い
つクロスして新しいページ上の行のアクセスを行うこと
ができるかを知る必要がある。現在のアクセスに対する
ページサイズは、外部ロジックによりページサイズ選択
PS[2:0]ピンに置かれる3ビットの値により表示
される。転送コントローラ80は行時間でこれらピンを
サンプリングし、これらを使用して変化しているどのア
ドレスピンがページの変化を表示しているかを決定す
る。サンプリングされた値は、次の行アクセスまでに転
送コントローラ80によって保持される。ページサイズ
選択PS[2:0]に表示されたページサイズは、必ず
しもアドレスシフト選択AS[2:0]上に表示された
シフト量に対応しているわけではないが、この理由は、
多数のバンクをインターリーブすることができるからで
ある。
【0135】外部メモリアクセスが起きるといつも、転
送コントローラ80はアドレスの21個の最高位ビット
を内部LASTPAGEレジスタ360に記録する。各
々のその後の列アクセスのアドレスは、この値と比較さ
れる。これは図9にプログラムされている。ページサイ
ズ選択PS[2:0]に入力された値は、比較中にLA
STPAGEレジスタ360の6個の最小位ビットを選
択的に無視するのに使用される。この比較において、ペ
ージサイズ選択PS[2:0]−1の値に等しいビット
番号よりも低いLASTPAGEレジスタは無視され
る。常に15個の最高位ビットが比較され、常に次のア
ドレスの11の最小位ビットが無視される。LASTP
AGEレジスタ136のイネーブルされたビットと次の
メモリアドレスとが一致しない場合、ページが変わり、
行アドレスサイクルと共に次のメモリアドレスが始ま
る。ページサイズ選択PS[2:0]=00であれば、
ページモードがディスエーブルされ、別の行アクセスと
共にその後のサイクルが開始される。
【0136】例えばアクセスされているメモリが他のバ
ンクとインターリーブされない64ビットのデータバス
として接続されている16個の1M×4個のDRAMか
ら成ると仮定する。各メモリデバイスは2の10乗ビッ
トの行サイズを有する。DRAMのページモードサイク
ルの間に、単一行内の任意の位置にアクセスできるの
で、コンフィギュレーションのためのページサイズは2
の10乗個の位置/ページ×8バイト/位置=8Kバイ
ト/ページとなる。図9が示すように、これは011の
ページサイズ選択PS[2:0]に対応する。転送コン
トローラ80が行時間でページサイズ選択PS[2:
0]=011をサンプリングすると、コントローラはペ
ージ境界がクロスされたかどうかを判断するため、その
後のアクセスのビット31〜13をチェックする。これ
はこのような特殊コンフィギュレーションに対するDR
AMの行アドレスビットおよびバンクデコードビットに
対応する。図9に、8個の可能なページサイズ選択PS
[2:0]のための比較されたアドレスビットおよびペ
ージサイズが示されている。
【0137】
【表9】
【0138】LASTPAGEレジスタ360は関連す
る有効ビット361を有する。この有効ビット361
は、LASTPAGEレジスタに記憶されたデータが有
効なものとして処理されたか、または無効なものとして
みなされたかを示す。LASTPAGEレジスタ360
はリセット、ホストアクセス、フォールトおよび再試行
の後、またはアクセス方向の切り替え、例えば読み出し
と書き込みとの切り替えの後に、有効なものとみなされ
る。これにより、その後のアクセス前に常に行アクセス
が強制的に行われる。更にLASTPAGEレジスタ3
60はリフレッシュサイクル、フレームコントローラ9
0のリクエストしたサイクルおよびパケット転送の発生
したシリアルレジスタ転送サイクルの前後で無効とみな
されるので、これらサイクルは常にシングルのノンペー
ジモードサイクルとして生じる。周辺デバイスのパケッ
ト転送の特殊な例では、周辺デバイス転送ステータスコ
ードが出力されるように、常に行アクセスで転送が開始
する。新しいステータスコードが出力できるように、転
送の終了時にLASTPAGEレジスタ360のデータ
は無効とみなされる。しかしながら転送中はLASTP
AGEレジスタ360は周辺デバイス転送が可能な限り
ページモードサイクルを利用するように、通常作動す
る。
【0139】現在のアクセスのためのバスサイズを決定
するように、行時間でバスサイズ選択PS[1:0]ピ
ンがサンプリングされる。転送コントローラ80は表5
に示すように、8、16、32または64ビットのバス
サイズをサポートする。バスサイズをセットすることに
より、各列アクセス中に転送コントローラ80が転送で
きるバイトの最大数が決定される。リクエストされたバ
イト数がバスサイズを越える場合、転送コントローラ8
0は転送を完了するように自動的にマルチアクセスを実
行する。選択されたバスサイズは、転送にデータバスの
どの部分が必要となるかも決定する。64ビットのメモ
リに対しては、全バスを利用できる。32ビットメモリ
に対しては、ビッグエンディアンモードでデータバスD
[63:32]ピンを使用し、リトルエンディアンモー
ドではデータバスD[31:0]ピンを用いる。ビッグ
エンディアンモードおよびリトルエンディアンモードで
はそれぞれ16ビットバスはデータバスD[63:4
8]ピンおよびデータバスD[15:0]ピンを利用
し、8ビットバスはデータバスD[63:56]ピンお
よびデータバスD[7:0]ピンを用いる。どのような
バスサイズを使用するにせよ、転送コントローラ80は
常にデータをバスの適当な部分に一致させ、適当な反転
CASストローブを附勢し、有効なバイトしか転送され
ないように保証する。
【0140】転送コントローラ80はメモリタイミング
の4つの基本的組をサポートしている。これにより待機
ステートを使用することなく、1列アクセス当たり1、
2または3クロックサイクルを選択することができる。
すべてのタイプは性質がDRAMに類似しているが、各
々は特定タイプのDRAMまたはSRAMに適してい
る。使用するタイミングは表6に示すように、列タイミ
ング選択CT[1:0]入力によって決定される。現在
アクセス中のメモリタイプを決定するため、アドレスを
デコードした後に外部デコードロジックはこれらピンを
適当なレベルまでドライブする。パイプライン化されて
いない1サイクル/列タイミングは、極めて高速のアク
セス時間を有するデバイスと共に使用されるよう設計さ
れている。パイプライン化された1サイクル/列タイミ
ングは、アクセスがパイプライン化されていることを除
けば1サイクル/列タイミングに類似している。1サイ
クルで1つのアドレスを出力し、次のサイクルでそのア
ドレスに対応するデータがアクセスされる。このタイミ
ングはパイプライン化されたページモードサイクルをサ
ポートするDRAM/VRAMと共に使用するためのも
のであるが。同期式SRAMデバイスと共に使用するこ
ともできる。パイプライン化されていない2サイクル/
列タイミングサイクルは、SRAMおよび高速DRAM
デバイスに対して列アクセス時間の2クロックサイクル
を発生する。更にこれらタイミングサイクルは、行アド
レス時間に1サイクルを加えることも行う。パイプライ
ン化されていない3サイクル/列サイクルは、DRAM
およびその他の低速デバイスに用いるためのものであ
る。このサイクルは列アクセス時間の3クロックサイク
ルを発生する外に、行アクセス時間に2つのクロックサ
イクルを加える。更に選択された列タイミングは全ペー
ジの間、すなわち次の行アクセスが行われるまで有効な
ままである。外部デバイスの役割は、発生されたアドレ
スに基づき、適当な列タイミング選択CT[1:0]を
供給することである。
【0141】ブロック書き込みサイクルおよびロードカ
ラーレジスタサイクルの間、バスサイズ選択BS[1:
0]ピンは異なる目的に対して使用される。ブロック書
き込みは64ビットバスに対してしかサポートされてい
ないので、バスサイズ情報は不要である。その代わり
に、アドレス指定されたメモリがサポートするブロック
書き込みのタイプを表示するように、バスサイズ選択B
S[1:0]が使用される。表23には、これらサイク
ルの間のBS[1:0]の値が示されている。ブロック
書き込みについては後に詳細に説明する。
【0142】図8に示した意図する実施例では、転送コ
ントローラ80の外部メモリインターフェース302に
よりマルチプロセッサ集積回路100の外部メモリサイ
クルが発生される。外部メモリインターフェース302
はメモリインターフェース信号の変化を制御するよう、
一連のステートを発生する複雑なステートマシンを含ん
でいる。発生されるステートおよびそれらのシーケンス
は、実行されるサイクルのタイプ、アクセスされるメモ
リの列タイミング、次に実行すべきアクセスおよびフォ
ールト等のような外部または内部事象に基づき変わる。
意図する実施例では、マシンステートを含むが、当業者
であればリードオンリーメモリに固定プログラムを有す
るマイクロコントローラまたはプログラマブルマイクロ
プロセッサによって、これら機能を実行できることは理
解できよう。
【0143】図10は、外部メモリインターフェース3
02のための方法を定めた完全ステート図を示す。多数
のステートとステート遷移が存在するが、これらのシー
ケンスは基本的には、実行されるメモリアクセスに対し
て選択される列タイミングに依存する。更にステートは
2つのグループ、すなわち行時間ステートと列時間ステ
ートとに分解できる。
【0144】行時間ステートは、各メモリアクセスのア
ドレスサブサイクルすなわち行時間を構成し、外部メモ
リインターフェース302は新しいページアクセスが開
始する時はいつもこれらステートに入る。アドレスされ
るメモリタイプが決定されるのは、これらステートの間
である。各行アクセスの間には、最低4つの行ステート
が生じる。これらは次のように定義される。
【0145】すべてのメモリアクセスに対する開始ステ
ートはr1ステート370である。ステート370中、
転送コントローラ80は行アドレスA[31:0]およ
びサイクルタイプSTATUS[4:0]を出力し、す
べての制御信号を不作動ステートにドライブする。
【0146】すべてのメモリアクセスに共通な次のステ
ートは、r2ステート371である。ステート371中
では、転送コントローラ80は反転RLハイをアサート
し、データ転送方向に従ってDDIN′をドライブす
る。ステート371中に、転送コントローラ80はアド
レスシフト選択AS[2:0]、バスサイズ選択[1:
0]、列タイミング選択CT[1:0]、ページサイズ
選択PS[2:0]および反転UTIME入力をサンプ
リングする。
【0147】外部メモリインターフェース302は、ブ
ロック書き込みおよびロード色レジスタを含む読み出し
および書き込みのために、r3ステート372となる。
ステート373中、転送コントローラ80はDBE
N′、DSF1、DSF2、反転TRGおよびWE′を
アクティブ行時間レベルにドライブし、FAUL′T、
READYおよびRETRY′入力をサンプリングす
る。
【0148】外部メモリインターフェース302は、リ
フレッシュの間に限りrf3ステート373にとなるス
テート373中、転送コントローラ80は、すべてのC
AS′[7:0]ストローブを附勢し、FAULT′、
READYおよびRETRY′入力をサンプリングす
る。
【0149】外部メモリインターフェース302は、シ
フトレジスタ転送サイクルに限り、tr3ステート37
4となる。ステート374は外部的にはr3ステート3
72と同一である。
【0150】外部メモリインターフェース302は、列
タイミング選択CT[1:0]=11のときに、3サイ
クル/列アクセスの間に限り、r4ステート375とな
る。信号遷移は生ぜず、転送コントローラ80はRET
RY′入力をサンプリングする。
【0151】列タイミング選択CT[1]=1のとき
に、r5ステート376は2および3サイクル/列アク
セスと共通である。ステート376中、転送コントロー
ラ80は、RAS′出力を低レベルにドライブし、RE
TRY′入力をサンプリングする。
【0152】外部メモリインターフェース302はリフ
レッシュを除くすべてのアクセスの間でr6ステート3
77となる。ステート377中、転送コントローラ80
はRAS′が既に低レベルでなければこれを低レベルに
ドライブし、DBEN′、DSF1、DSF2、TR
G′およびWE′をそれらの適当な行時間レベルにドラ
イブする。転送コントローラ80はREADYおよびR
ETRY′入力もサンプリングする。ステート377
は、多数回繰り返すことができる。
【0153】外部メモリインターフェース302は、リ
フレッシュサイクルに限り、rf6ステート378とな
る。ステート378中、転送コントローラ80はRA
S′出力を低レベルにドライブし、RETRY′入力を
サンプリングする。
【0154】rf7ステート379は列タイミング選択
CT[1]=1のとき、2および3サイクル/列リフレ
ッシュと共通である。ステート379中、転送コントロ
ーラ80はSTATUS「4:0]に関するプロセッサ
アクティビティコードを出力し、RETRY′入力をサ
ンプリングする。
【0155】外部メモリインターフェース302は列タ
イミング選択CT[1:0]=11のとき、3サイクル
/列リフレッシュの間に限り、rf8ステート380と
なる。信号の遷移は生じない。転送コントローラ80は
RETRY入力をサンプリングする。
【0156】rf9ステート381は、すべてのリフレ
ッシュに対する最終ステートである。ステート381
中、転送コントローラ80はSTATUS[4:0]に
関するプロセッサのアクティビティコードを出力し、R
ETRY′入力をサンプリングする。
【0157】rhizステート382は、高インピーダ
ンスステートである。外部メモリインターフェース30
2は、外部バスホストリクエスト中にステート382と
なる。バスレリースを介する画像システムバスの復帰ま
でに外部メモリインターフェース302はステート38
2を繰り返す。
【0158】列時間ステートは各メモリアクセスのデー
タサブサイクルまたは行時間を含む。これらステートの
間にすべてのデータ転送が行われる。外部メモリインタ
ーフェース302は2つの基本シーケンスの列ステー
ト、すなわちパイプライン化された、またはパイプライ
ン化されていない1サイクル/列アクセスに対するシー
ケンスと、2および3サイクル/列アクセスに対するシ
ーケンスをとる。ページモードオペレーションの間、マ
ルチ列アクセスが生じ得るので、外部メモリインターフ
ェース302はシングルページモードアクセスが進行す
る間、何回もこれらステートシーケンスを繰り返すこと
がある。
【0159】c1、2ステート382は、列タイミング
選択CT[1:0]=10の際の2サイクル/列アクセ
スのための第1列ステートである。ステート382の
間、転送コントローラ80はアドレスバスA[31:
0]上の列アドレスおよびSTATUS[4:0]に関
するプロセッサアクティビティコードを出力する。転送
コントローラ80は、書き込みサイクルであればデータ
出力をドライブし、適当なCAS′[7:0]ストロー
ブをアサートする。
【0160】c1、3ステート384は、列タイミング
選択CT[1:0]=11の際の3サイクル/列アクセ
スのための第1列ステートである。ステート384の
間、転送コントローラ80はアドレスバスA[31:
0]上の列アドレスおよびSTATUS[4:0]に関
するプロセッサアクティビティコードを出力する。転送
コントローラ80は、書き込みサイクルであればデータ
出力をドライブする。
【0161】c2、3ステート385は、列タイミング
選択CT[1:0]=11の際の3サイクル/列アクセ
スのための第2列ステートである。ステート385の
間、転送コントローラ80は、適当なCAS′[7:
0]ストローブをアサートする。
【0162】c3ステート386は、列タイミング選択
CT[1]=1の際の2および3サイクル/列アクセス
のための最終列ステートである。ステート386の間、
転送コントローラ80は、READY入力をサンプリン
グし、そのときのサイクルが読み出しサイクルであれ
ば、入力データをラッチする。
【0163】cs1ステート387は、列タイミング選
択CT[1]=0の際の1サイクル/列読み出しのため
の開始列ステートである。ステート387の間、転送コ
ントローラ80は、アドレスバスA[31:0]上の列
アドレス、STATUS[4:0]に関するプロセッサ
のアクティビティコードを出力し、すべての反転CAS
[7:0]ストローブをアサートする。転送コントロー
ラ80は入力データをラッチしない。
【0164】cs2ステート388は第2開始列ステー
トである。外部メモリインターフェース302は、列タ
イミング選択CT[1:0]=00のときに限り、パイ
プライン化された1サイクル/列読み出しのためにcs
1ステート387の後に、常にステート388を挿入す
る。ステート388中、転送コントローラ80は列アド
レスおよび次の列アクセスのプロセッサアクティビティ
コードを出力する。転送コントローラ80はステート3
88中に入力データをラッチしない。
【0165】cpステート389は、列タイミング選択
CT[1]=0のとき、すべての1サイクル/列アクセ
スに対する基本的列ステートである。外部メモリインタ
ーフェース302は、必要な開始ステートの完了後に各
ページモード列アクセスのためにステート389を繰り
返す。ステート389中、転送コントローラ80はアド
レスバスA[31:0]上の列アドレスおよびSTAT
US[4:0]上のプロセッサアクティビティコードを
出力し、適当なCAS′[7:0]ストローブをアサー
トする。転送コントローラ80は有効データの書き込み
のためにドライブアウトし、有効データの読み出しのた
めにラッチインする。
【0166】cdrステート390は、列タイミング選
択CT[1]=0のときの1サイクル/列アクセスのた
めの読み出しドレインステートである。外部メモリイン
ターフェース302は、最終cpステート389の後の
ステート390またはページ変化またはパイプラインバ
ブルのため、またはインターフェースがアイドル状態と
なったために、他の列アクセスがペンディング中でない
場合、cs1ステート387を有する。ステート390
中、転送コントローラ80は反転CAS[7:0]スト
ローブをアサートしないが、先のcpステート389ま
たはcs1ステート387によりアドレス指定される入
力データをラッチする。
【0167】外部メモリインターフェース302は、列
タイミング選択CT[1:0]=00のとき、パイプラ
イン化された1サイクル/列書き込みドレインサイクル
のためのcdwステート391となる。外部メモリイン
ターフェース302は新しいページの開始時にr1ステ
ート370に復帰する直前に、ステート391となる。
ステート391中、転送コントローラ80はすべてのC
AS′[7:0]ストローブをスタートし、最終書き込
みされたデータでパイプライン化されたメモリアレイを
更新する。
【0168】ciステート392は、アイドル列ステー
トである。必要なドレインステートの後にそれ以上の列
アクセスがペンディング中でなければ、外部メモリイン
ターフェース302はステート392となる。これはパ
イプラインバブルによって生じ得るか、またはそれ以上
のサイクルがリクエストされておらず、ページ変化が生
じないためインターフェースがページモードに留まって
いるからである。
【0169】図10に示したステート遷移インディケー
タは、どの条件によって別のステートへの遷移が生じる
かを決定する。この場合、所定のステートへの遷移が生
じるには、多数の条件を満たさなければならない。これ
らステート遷移条件および事象のリストは次の通りであ
る。
【0170】CT=XXr3ステート372の間にラッ
チされた表示列タイミング選択CT[1:0]の値に対
してステート変化が生じる。
【0171】 r、読み出し−読み出しサイクルが生じる。 w、書き込み−書き込みサイクルが生じる。 rt−読み出し転送サイクルが生じる。 wt−書き込み転送サイクルが生じる。 フォールト−r3ステート中に低レベルにサンプリング
されたFAULT′入力は、メモリアクセスがフォール
トであることを表示する。 再試行−r3ステート372に低レベルにサンプリング
されたRETRY′入力は、行時間再試行をリクエスト
する。 待機−r3ステート372、r6ステート377または
c3ステート386中に低レベルにサンプリングされた
READY入力は、そのときのステートの繰り返しをリ
クエストする。 スピン−これは転送コントローラ80のパイプラインが
ロードできるように、別のr3スピン377を加えるた
め内部で発生されたリクエストである。外部メモリイン
ターフェース302は、先のページアクセスからバスサ
イズが変わると、各2サイクル/列書き込み中に1回、
各1サイクル/列各中に2回、1サイクル/列アクセス
中に1回、ステート372となる。 新しい列−このときのメモリサイクルは同じメモリペー
ジの次の別アクセスである。 ドレイン−このときのメモリサイクルは1サイクル/列
読み出しサイクルである。このときの読み出しステート
の後には、ペンディングとなっている列アクセスはな
い。 アイドル−そのときのステートの後にペンディングであ
る列アクセスは無く、すべてのドレインステートは完了
している。 新ページ−次のメモリアクセスはページの変更および新
しい行アクセスを必要とする。
【0172】転送コントローラ80は内部メモリインタ
ーフェース301および外部メモリインターフェース3
02の双方のうちにパイプラインを含む。そのときのア
クセスがまだ完了していないとき、これらパイプライン
は転送コントローラ80が必要とするメモリアクセスを
待つことができる。例えばパケットリクエストがオンチ
ップメモリからオフチップメモリに転送中である場合、
宛て先サイクルはアクセス当たり2サイクルを必要とす
ることがある。必要とされるデータがパケット転送FI
FOバッファ311にあると仮定すると、アクセス当た
り1サイクルでパケット転送FIFOバッファ311か
らデータを抽出できるので、第1サイクルが完了する前
に、パイプラインに別の宛て先サイクルを挿入できる。
【0173】これらパイプラインは通常ユーザーに対し
て完全にトランスペアレントである。作動に対するこの
効果は、パイプラインがドレイン状態となっているとき
に見えるだけである。外部メモリインターフェース30
2の外部メモリパイプラインに1サイクルをロードする
には、パイプラインに既に含まれている他のサイクルと
同じメモリページ内にこのサイクルが入っていなければ
ならない。パイプラインに一旦1つのサイクルを挿入す
ると、これを除くことはできず、このサイクルを発生し
なければならない。従って新しいメモリページへのアク
セスがリクエストされると、まず最初にパイプライン内
のサイクルを完了しなければならない。転送コントロー
ラ80が外部メモリへのパケット転送を行い、フレーム
コントローラがメモリリクエストを発生する場合、フレ
ームコントローラサイクルがより高い優先度を有してい
たとしても、フレームコントローラ90がリクエストし
たサイクルを発生する前に、現にパイプライン内にある
列サイクルを完了しなければならない。キャッシュおよ
び外部メモリアクセス、ホストアクセスおよび緊急リフ
レッシュ前、パケット転送一時中断中、および列時間再
試行後にも、パイプラインのドレインを行うことができ
る。緊急リクエストがペンディングのとき、パイプライ
ンのドレインには最高の優先度が与えられる。
【0174】外部メモリアクセス中、作動サイクルが存
在していてもよく、この間にアクティブな列アクセスは
生じない。これらの期間は転送コントローラ80の内部
パイプライン内のバブルの結果である。転送コントロー
ラ80がこのサイクル中に実行される動作がないときに
バブルが生じる。これは転送コントローラ80が書き込
みサイクルのための次のアクセスを実行するのに十分な
データを有していないこと、パケット転送FIFOバッ
ファ311がフル状態であり、読み出しサイクルでそれ
以上データをロードできないこと、また、端にアクティ
ビティのリクエストはないことを理由とする、クロスバ
ーの競合の結果として生じ得る。これら条件のいずれも
生じない場合、バブルも発生しない。
【0175】バブルの一例は、転送コントローラ80が
内部ソースおよび外部宛て先のパケット転送のサービス
をしているときである。転送コントローラ80があると
きにソースデータの1バイトにしかアクセスできず、そ
のときに書き込み宛て先データの8バイトしか書き込み
できないように、パケット転送がセットされている場
合、転送コントローラ80は8回の内部サイクルごとに
1回、宛て先アクセスを行うことができるだけである。
この結果、転送コントローラ80は次の列アクセスを実
行するのに十分なデータの8バイトを持つのを待ちなが
ら、外部メモリ宛て先サイクル内にバブルを挿入する。
挿入されるバブルサイクルの回数は、外部メモリサイク
ルのタイミングに依存する。
【0176】広範なメモリのタイプおよび組み合わせ、
更に周辺機器をサポートするため、マルチプロセッサ集
積回路100は外部メモリサイクルの拡張、再試行およ
び終了のための種々の方法を提供する。これらの各々に
ついて次の章でより詳細に説明する。
【0177】転送コントローラ80がパイプライン内で
ペンディング中の列アクセスのすべてを完了すると、メ
モリアクセスの終了の準備ができる。しかしながら新し
い行アクセスが必要となるまで終了は行われない。次の
メモリアクセスまでciステート392において外部メ
モリ信号はアクティブ状態のままである。これによりD
RAMデバイスはページモードステートの状態に維持で
きる。次のアドレスが先のメモリアクセスと同じメモリ
ページ内に入り、同一方向である場合、行アクセスサイ
クルは不要である。次のメモリアクセスが行アクセスを
必要とする場合、そのときのページモードアクセスは終
了し、新しい行アクセスが開始する。それ以外の外部バ
スアクティビティがほとんどない場合、新しい行アクセ
スの発生を必要とするトリックルリフレッシュサイクル
の発生により、最終列アクセスの終了後にすぐにほとん
どのメモリサイクルが終了される。
【0178】マルチプロセッサ集積回路100はメモリ
サイクル時間を延長するように、待機ステートの挿入を
サポートする。これはREADY入力を用いることによ
って行われる。このREADY入力は、CLKOUTの
効果エッジで適当な時間にサンプリングされたものであ
り、READYがハイレベルでサンプリングされた場
合、サイクルは通常の態様で続行する。READYが低
レベルでサンプリングされた場合、現在のマシンステー
トが繰り返され、次のCLKOUTで再びREADYが
サンプリングされる。このメモリサイクルは転送コント
ローラ80がハイレベルのREADYをサンプリングす
るまで、そのときのステートを繰り返すように続く。
【0179】転送コントローラ80は多数の待機ステー
トによりホールドアップされるメモリアクセスを終了さ
せるようなタイムアウトまたはアボート機構を有してい
ない。サービスを待つことができる高い優先度の外部メ
モリアクセスのロックアウトを防止するため、適当な時
間に完了できないメモリアクセスはフォールトとする
か、または再試行すべきである。
【0180】任意のタイプのメモリサイクルに対する行
時間の間に、待機ステートを加えることができる。列ア
クセス当たり2サイクルおよび3サイクルの双方の間
で、列時間において待機ステートを挿入することもでき
る。待機ステートは反転RASの降下の前後の行時間の
間に2つの位置で待機ステートを挿入できる。適当なコ
ントローラ80は、まずr3ステート372またはrf
3ステート373またはtr3ステート374の開始時
に、READY信号をサンプリングできる。これにより
この時間で行アドレスおよび/またはサイクルタイプを
デコードし、反転RASの降下前にアドレス指定された
デバイスが、更なるアクセス時間を必要とするかを判断
できる。転送コントローラ80がハイレベルのREAD
Yをサンプリングするまで、r3ステート372が繰り
返される。READYが低レベルでサンプリングされる
とき、r3ステート372が繰り返されるが、反転FA
ULTおよび反転RETRY入力は再サンプリングされ
ない。待機ステートが挿入される前の第1r3ステート
372サイクル中にアクセスをフォールトするか、また
は再試行しなければならない。r6ステート377中で
READY入力を再びサンプリングする。これはRA
S′の降下後に起きるので、必要とし得るデバイスに対
し、追加RAS′アクセスタイムを発生できる。REA
DYが低レベルでサンプリングされる場合、このREA
DYが再びハイレベルでサンプリングされるまでr6ス
テート377が繰り返される。
【0181】転送コントローラ80は2および3サイク
ル/列書き込みおよびバスサイズを変更する1サイクル
/列アクセスの間に自動的に付加的r6ステート377
を挿入する。転送コントローラ80はこれらr6ステー
ト377の各々の間で通常の態様でREADYをサンプ
リングする。従って、低レベルでサンプリングされるR
EADYから生じる余分なr6ステート377は、転送
コントローラ80によって既に挿入されたステートに加
えられる。
【0182】列アクセス当たり1サイクルの間では、列
時間待機ステートはサポートされていないので、これら
サイクルの間でr6ステート377を越えてREADY
はサンプリングされない。転送コントローラ80は、列
アクセス当たり2および3サイクルに対しc3ステート
386の間でREADYピンをサンプリングする。これ
は列アドレスおよび反転CASの降下後に生じるので、
必要とするデバイスに対し延長されたCASアクセス時
間を与えることができる。READYがハイレベルでサ
ンプリングされる場合、c3ステート386は列アクセ
スを完了させる。そうでない場合、c3ステート386
が繰り返され、ハイレベルでサンプリングされるまで転
送コントローラ80はその後のCLKOUT降下エッジ
ごとにREADYをサンプリングする。
【0183】マルチプロセッサ集積回路100は2つの
タイプの再試行機構、すなわち行時間再試行および列時
間再試行をサポートしている。行われる再試行のタイプ
は、マルチプロセッサ集積回路100の反転RETRY
入力がアクティブ低レベルとなるメモリアクセスのどの
点にあるかによって決まる。
【0184】行時間再試行は、現在のアクセスが完了で
きず、再試行が必要なことを外部ロジックがマルチプロ
セッサ集積回路100に伝えることができる方法を提供
する。この行時間再試行は、r3ステート372の開始
点でまずサンプリングされる際、RETRY′入力を低
レベルにドライブすることによって発生される。発生R
ETRYが低レベルでサンプリングされる場合、転送コ
ントローラ80はr3ステート372の終了点で現在の
アクセスを終了する。次により高い優先度のリクエスト
がペンディング中でなければ、再試行されるアクセスは
新しいr1ステート370と共にすぐに再スタートす
る。この場合、再試行されるサイクルは、より高い優先
度のリクエストのサービスが完了するまで再スタートさ
れない。
【0185】パケット転送サイクル中に行時間再試行が
行われ、同等以上の優先度のパケット転送リクエストが
ペンディング中であれば、行われている再試行が一時中
断され、PTMINによって定義されるインターバルが
終了したとみなされる。パケット転送が優先度/ラウン
ドロビンチェーン内の順番に再び達し、パケット転送が
再開されるまで、転送コントローラ80は、この一時中
断されたパケット転送を再試行することはない。
【0186】列時間再試行は従来の意味では実際には再
試行ではない。むしろこれらは行アクセスリクエストと
考えることができる。列再試行が生じると、転送コント
ローラ80はそのパイプライン内でペンディング中のす
べての列アクセスを完了し、行アクセスと共に次のアク
セスを開始する。従って再試行がリクエストされた後に
多数の列アクセスが行われることがある。行アクセスが
再スタートされた後にはこれら行アクセスは繰り返され
ることはない。r3ステート372の後で反転RETR
Y入力が低レベルでサンプリングされる時間に列時間の
再試行が行われる。転送コントローラ80は各CLKO
UT降下エッジでr3ステート372の後の各ステート
の終了点で、RETRY′をサンプリングするので、反
転RETRYは各サンプリング期間中で有効な高レベル
または低レベルとなっていなければならない。転送コン
トローラ80が低レベルの反転RETRYをサンプリン
グする場合、転送コントローラ80のパイプライン内に
現在あるすべての列アクセスが完了するとすぐに、その
ときのページモードが終了する。再試行が一旦リクエス
トされると、反転RETRY入力に入力された値はそれ
以上の効果がなくなる。しかしながら転送コントローラ
80は残りの列アクセスの各々の間で反転RETRYを
サンプリングし続けるので、RETRY′は各サンプリ
ング期間中に高または低レベルに維持されていなければ
ならない。通常のオペレーションは、システムがRET
RY′を低レベルにドライブし、現在の行アクセスの終
了時までこれを低レベルに維持させるためである。
【0187】外部メモリインターフェース302のパイ
プラインにロードする方法により、読み出しサイクル中
にr3ステート375またはr5ステート376でRE
TRY′をアサートすることは全く効果がない。RET
RY′入力はまだサンプリングされており、有効な高ま
たは低レベルになければならない。このため、列時間再
試行が望まれる場合、行アクセスの終了時までにRET
RY′を低レベルにアサートしなければならない。フレ
ームコントローラ90のVRAMアクセスサイクルおよ
びリフレッシュサイクルは、列時間によって影響されな
いが、その理由は、性質上、新しい行アクセスは単一列
アクセスの後に続くからである。
【0188】システムエラーのため、システムがメモリ
アクセスを完了できない場合、システムはメモリサイク
ルをフォールトすることによりマルチプロセッサ集積回
路100に通知できる。これによりメモリサイクルを再
試行する前にマスタプロセッサ60はエラーを訂正でき
る。メモリフォールトは行時間で発生できるだけであ
り、r3ステート372の開始時にFAULT′入力を
低レベルにドライブすることにより開始される。転送コ
ントローラ80はメモリサイクルの他の部分の間で反転
フォールトをサンプリングすることはない。フォールト
機構はフォールトを生じさせたアクセスのタイプに多少
依存して変わる。これについては後により詳細に説明す
る。異なるタイプのサイクルリクエストに対するメモリ
フォールトは次のようにサポートされている。
【0189】フレームコントローラ90のサイクル。フ
レームコントローラ90のサイクルの間にフォールトは
サポートされておらず、反転FAULTピンは無視され
る。リフレッシュサイクル。リフレッシュサイクル中に
フォールトはサポートされず、反転FAULTピンは無
視される。
【0190】デジタル画像/グラフィックプロセッサキ
ャッシュおよびダイレクトメモリアクセスリクエスト。
これらサイクルの間にフォールトはサポートされる。リ
クエスト中のプロセッサはフォールトがクリアされるま
で完了されるリクエストは見ない。他のデジタル画像/
グラフィックプロセッサ71、72、73、74からの
リクエストはサービスされ続ける。
【0191】マスタプロセッサのインストラクションま
たはデータキャッシュリクエスト。これらサイクル中に
サポートされるフォールトはサポートされる。フォール
トされたキャッシュリクエストは即座にキャンセルさ
れ、マスタプロセッサ60はインタラプトされる。その
他のキャッシュはペンディング中のリクエストをサービ
スすることができる。
【0192】マスタプロセッサ60のダイレクトメモリ
アクセスリクエスト。これらサイクル中にはフォールト
がサポートされる。外部アクセスリクエストが即座にキ
ャンセルされ、マスタプロセッサ60がインタラプトさ
れる。
【0193】パケット転送。パケット転送なかにはフォ
ールトがサポートされる。このパケット転送は一時中断
され、そのステートはリクエスト中のプロセッサのパラ
メータメモリにセーブされる。他のプロセッサからのパ
ケット転送リクエストはまだサービス可能である。セー
ブされたパラメータ内には転送コントローラ80の内部
パケット転送ステートが含まれる。パケット転送が外部
メモリ間で外部メモリなされる場合、外部メモリ間の転
送バッファのステートもセーブされる。バッファ自体は
変わらない。セーブされたパケット転送オプションフィ
ールド内のパケット転送ステートビットは、フォールト
がソースへの転送または宛て先への転送で生じたかどう
かを示すのにセットされる。
【0194】一旦、パラメータがセーブされると、転送
コントローラ80はマスタプロセッサ60のうちのFL
TSTSレジスタ内の適当なビットをセットし、どのプ
ロセッサのパケット転送がフォールトしたかを表示す
る。下記の表13にはFLTSTSレジスタのコーディ
ングが示されている。FLTSTSレジスタ内のプロセ
ッサビットもマスタプロセッサ60に対し、パケット転
送フォールトインタラプトを発生する。マスタプロセッ
サ60はどのプロセッサがフォールトされたパケット転
送をリクエストしたかを探すため、FLTSTSレジス
タを読み出すことができる。一旦プロセッサが識別され
れば、マスタプロセッサ60は一時中断されているパケ
ット転送パラメータを検査し、フォールトを生じさせた
メモリアクセスを決定できる。
【0195】パケット転送中にフォールトが生じたこと
は、デジタル画像/グラフィックプロセッサ71、7
2、73または74は知らない。このプロセッサは、パ
ケット転送がまだ完了していないことを知っているだけ
である。フォールトを訂正したり、またはリクエスト中
のデジタル画像/グラフィックプロセッサ71、72、
73または74に、そのパケット転送リクエストのキャ
ンセルを求めるのは、マスタプロセッサ60の役割であ
る。
【0196】マスタプロセッサ60がフォールトを訂正
できる場合、FLTSTSレジスタ内のビットをクリア
することができ、パケット転送リクエストは自動的に再
送信される。フォールトしたパケット転送は、ラウンド
ロビン優先法における順番を受けると、その内部ステー
トがパラメータメモリ内のセーブされたパラメータから
レストアされ、転送コントローラ80はフォールトされ
たアクセスでパケット転送を続ける。
【0197】デジタル画像/グラフィックプロセッサが
リクエストしたキャッシュサービスまたはダイレクト外
部メモリアクセスリクエスト中にフォールトが生じた場
合、リクエスト中のプロセッサのパラメータメモリのキ
ャッシュフォールトアドレス位置に、フォールトの生じ
たアドレスがセーブされる。マスタプロセッサ60のF
LTSTSレジスタにおける適当なビットがセットさ
れ、インタラプトがマスタプロセッサ60に送られる。
マスタプロセッサ60がパラメータメモリを検査し、フ
ォールトしたアドレスを決定できる。マスタプロセッサ
60がフォールトを訂正できる場合、このプロセッサは
FLTSTSレジスタ内のビットをクリアし、リクエス
トは再スケジュールされる。フォールトが訂正できず、
マスタプロセッサ60がリクエスト中のデジタル画像/
グラフィックプロセッサにキャッシュミスまたはダイレ
クト外部アクセスリクエストをアボートすることを求め
る場合、デジタル画像/グラフィックプロセッサにリセ
ットリクエストを送らなければならない。これによりそ
のタスクがアボートされる。
【0198】デジタル画像/グラフィックプロセッサ7
1、72、73または74は、キャッシュまたはダイレ
クト外部アクセスリクエスト中にフォールトが生じたこ
とを知らず、そのリクエストが完了していないことを知
っているにすぎない。フォールトを訂正したり、リクエ
スト中のデジタル画像/グラフィックプロセッサをリセ
ットするのは、マスタプロセッサ60の役割である。
【0199】マスタプロセッサ60がキャッシュフィル
またはダイレクト外部アクセスサイクルのフォールトを
リクエストした場合、このリクエストは即座にキャンセ
ルされ、マスタプロセッサ60にメモリフォールトイン
タラプトが送られる。このメモリフォールトインタラプ
トはフォールトがデータキャッシュフォールトまたはイ
ンストラクションキャッシュフォールトであったことを
表示する。データキャッシュフォールトが生じた場合、
そのアドレスがセーブされ、データがセーブされる。
【0200】オンチップアドレスへの所定のアクセス
は、反転FAULT入力と独立したフォールトを生じさ
せ得る。不法なオンチップアクセスが行われると、これ
が生じる。試みられたサイクルに対する通常のフォール
ト機構が適応される。オンチップフォールトとは次のと
おりである。
【0201】データメモリまたはデジタル画像/グラフ
ィックプロセッサパラメータメモリでない16進数02
000000以下のアドレスとの間でのデジタル画像/
グラフィックプロセッサのパケット転送。
【0202】データメモリまたはデジタル画像/グラフ
ィックプロセッサパラメータメモリでない16進数02
000000以下のアドレスとの間でのデジタル画像/
グラフィックプロセッサのキャッシュサービス、または
マスタプロセッサ60のキャッシュサービス、またはダ
イレクト外部アクセス。データメモリまたはデジタル画
像/グラフィックプロセッサパラメータメモリでない1
6進数02000000以下のマスタプロセッサ60の
パケット転送。
【0203】マルチプロセッサ集積回路100によって
発生されるメモリタイミングと異なるメモリタイミング
の発生を望むユーザーを補助するために、UTIME′
が発生される。このUTIME′が行時間において低レ
ベルでサンプリングされると、現在のページの残りに対
して、反転RASおよびCAS′[7:0]出力のタイ
ミングが変えられる。列アクセスが開始したことを表示
するように、RAS′信号が変えられる。従ってRA
S′の降下によってユーザーがタイミングを決めたCA
S′信号をトリガできる。実際の列アクセスが開始され
たときに、マシンステートのみにおいてRAS′をアク
ティブ低レベルにアサートできるにすぎないので、転送
コントローラ80のパイプライン内のバブルを理解する
ことができる。行アドレスと同時に列アドレスストロー
ブCAS′[7:0]が出力される。これにより、これ
らストローブはどのバイトがアクセスされたかを表示す
るのに使用でき、外部CAS′の発生が容易となる。R
AS′のタイミングは変わっているので、必要な場合に
は外部ロジックが自らのRAS′タイミングを発生しな
ければならない。外部から発生されたRAS′は、R
L′の降下エッジによってトリガできる。サイクルの開
始時点で出力されたステータスコードは、そのときのサ
イクルの間にてTRG′、WE′等のエモリタイミング
を発生するのに必要なすてべの情報を提供することに留
意されたい。
【0204】転送コントローラ80の内部メモリインタ
ーフェース301は、クロスバー50を介し、オンチッ
プメモリにアクセスする。64ビットの内部データバス
は、1サイクルにつき0〜8バイトを転送できる。外部
メモリインターフェース302は、オフチップメモリお
よび周辺機器のすべてにアクセスする。外部メモリイン
ターフェース302は、種々のメモリおよび周辺機器の
タイプにインターフェースするのに必要なサイクルおよ
び制御信号を発生する。64ビットの外部データバスは
1サイクルにつき0〜8バイトを転送し、8、16、3
2および64ビットのデータ幅を有する画像システムバ
スに接続されたデバイスに対し、ダイナミックバスサイ
ズのサポートをする。
【0205】外部メモリインターフェース302は、転
送コントローラ80が外部デバイスとバスを共用できる
ようにする簡単なハンドシェイク機構を含む。このハン
ドシェイク機構は4つの同期信号を活用する。すなわち
ホストリクエスト入力HREQ′、ホストアクノーリッ
ジ出力HACK′および内部リクエスト出力RREQ
[1:0]である。
【0206】外部デバイスが画像システムバスの制御を
望む際、ホストリクエスト入力HREQ′は、マルチプ
ロセッサ集積回路100に信号を送る。外部デバイスは
バスのオーナーシップを持ちたい場合、ホストリクエス
ト入力HREQ′を低レベルにドライブする。これは転
送コントローラ80が受けることもできる最高優先度の
リクエストであり、転送コントローラ80は、最も初期
に起こり得る時間にバスのドライブを停止させる。その
ときのオペレーションが終了し、転送コントローラ80
のパイプラインが空になると、転送コントローラ80の
バスオーナーシップが終了する。外部デバイスはバスを
望む限り、HREQ′を低レベルアクティブにドライブ
し続けなければならない。HREQ′がハイレベルで非
アクティブとなると、転送コントローラ80はバスを所
有し、これをドライブする。HREQ′入力は内部的に
マルチプロセッサ集積回路100の内部ブロックに同期
している。
【0207】ホストアクノーリッジ出力HACK′は、
転送コントローラ80が画像システムバスの制御信号を
発生する準備が完了した信号を発生する。転送コントロ
ーラ80はアクティブなHREQ′の後に、HACK′
を低レベルにドライブし、その信号を高インピーダンス
にドライブし、バスを放棄していること表示する。反転
HACKが低レベルアクティブであると、CLKOUT
を除くすべての外部メモリインターフェース302のバ
ス出力が、高インピーダンスとされる。内部リクエスト
出力REQ[1:0]、HACK′およびフレームコン
トローラ90の出力は、ドライブされ続ける。外部デバ
イスは必要に応じて画像システムバスをドライブでき
る。転送コントローラは、HREQ′が非アクティブと
なったことが検出された後に、非同期的に、HACK′
をハイレベルで非アクティブにドライブし、バスのドラ
イブを再開する。
【0208】内部リクエスト出力REQ[1:0]は、
転送コントローラ80によって受信される最高優先度の
内部リクエストの2つのビットコード化を形成する。表
3にリクエストコードおよびそれらの関連するサイクル
を示す。
【0209】
【表10】
【0210】外部ロジックはいつバスを放棄して転送コ
ントローラ80に戻すかを決定するため、内部リクエス
ト出力REQ[1:0]をモニタできる。転送コントロ
ーラ80によってホストリクエストには最高の優先度が
与えられているので、システムデザイナーは、ホストが
バスの所有権を放棄して転送コントローラ80に返すの
はどのREQ[1:0]の値にするかを決定することに
より、外部デバイスが作動するレベルを決定できる。
【0211】転送コントローラ80は外部メモリシステ
ムが必要とするDRAMリフレッシュサイクルを自動的
に発生するためのプログラマブルリフレッシュコントロ
ーラを含む。リフレッシュレジスタ313に、このリフ
レッシュのためのパラメータが記憶される。キャッシュ
制御ロジックは、マスタプロセッサ60およびデジタル
画像/グラフィックプロセッサ71、72、73および
74がリクエストするようなキャッシュフィルおよび書
き込みバックを実行するのに必要なアドレスを発生す
る。フレームコントローラ90のリクエストはVRAM
制御論理によって処理される。
【0212】転送コントローラ80はパケット転送を処
理するための2つの独立したコントローオラを有する。
ソースレジスタ321とソースコントローラ322から
成るソースマシンは、ソースメモリからデータをフェッ
チするのに必要なアドレスを発生する。転送コントロー
ラ80にパケット転送リクエストを送る際、このリクエ
ストはソースデータをどのようにアクセスすべきかを指
定する多数のパラメータを含む。これらパラメータはソ
ースレジスタ322にロードされ、ソースアドレスを発
生するようソース制御ロジック323によって使用され
る。同様なパラメータの組が宛て先レジスタ341にロ
ードされ、宛て先制御ロジック342によって使用さ
れ、宛て先メモリ領域にパケットデータを書き込むのに
必要なアドレスを発生する。宛て先レジスタ341と宛
て先制御ロジック342の組み合わせにより宛て先マシ
ン340を形成している。ソースマシン320および宛
て先マシン340は各々オンチップメモリ10および2
0とオフチップメモリとの双方のアドレス指定が可能で
ある。
【0213】図11は、ソースマシン320の構造を示
す。ソースマシン320の内部構造と宛て先マシン34
0の構造は同一である。転送コントローラ80の他に対
する接続のいくつかが異なっているにすぎない。ソース
マシンは次のようなレジスタを含む。CACHEADR
レジスタ401は転送方向に応じて内部アドレスまたは
外部アドレスのいずれかを含む。このアドレスは、キャ
ッシュサブブロックのアドレスと共に、転送コントロー
ラ80の内部Sポートからロードされる。オンチップア
ドレスの上部ビットを発生するのに、マルチプレクサを
使用できる。
【0214】ABPITCHレジスタ402は、次のラ
インのための開始アドレスを発生するため、開始アドレ
スに加算される(または減算される)ピッチを含む。G
TPIPEレジスタ403は実際には3つの部分に分割
されている。第1部分は、ASTARTが宛て先となっ
ている32ビットアドレスである。第2部分はBCOU
NTが宛て先となっている16ビットのラインカウント
であり、第3部分はACOUNTが宛て先となっている
16ビットのバイトカウントである。このレジスタは、
関連するレジスタにフェッチしたガイドテーブルを即座
に記憶できないとき、ガイドテーブルオペレーション中
の一時レジスタとして働く。
【0215】ASTARTレジスタ404は、現在のラ
インの開始アドレスの記録を記憶し、ASTARTレジ
スタ404は、ガイドされた転送を実行する際にガイド
テーブルアドレス/オフセット入力に対して倍になる。
BSTARTレジスタ405は、現在のバッチの開始ア
ドレスの記録を記憶する。BSTARTレジスタ405
は、また、オフセットガイドされた転送に対しベースア
ドレスを含み、デルタガイドされた転送に対しては最終
バッチ開始アドレスを含む。
【0216】CRNTADRレジスタ406はパケット
サービスの現在のアドレスを記憶する。このアドレスは
次のアクセスを実行する場所のアドレスである。次のア
ドレスを発生するよう転送されるバイト数がこの値に加
算されたり、またはこれより減算される。ラインまたは
ピッチが完了すると、CRNTADRレジスタ406に
は次のラインまたはバッチの開始アドレスがロードされ
る。
【0217】BCPITCHレジスタ407は、次のバ
ッチのための開始アドレスを発生するよう、現在のバッ
チの開始アドレスに加算もしくはこれより減算されるピ
ッチを記憶している。ガイドされた転送を行うとき、こ
のBCPITCHレジスタ407は、ガイドテーブルポ
インタとして使用される。ACOUNTレジスタ408
はライン内のバイト数を記憶している。このバイト数は
定数であるか、または可変バッチガイドされた転送のた
めのガイドテーブル入力からロードされる。ACURR
ENTレジスタ409はライン内に残っているそのとき
のバイト数を記憶する。
【0218】BCOUNTはバッチ内のライン数を記憶
する。この数は定数であるかまたは可変バッチのガイド
された転送のためのガイドテーブル入力からロードされ
る。BCURRENTレジスタ411は、バッチ内に残
っている1未満のラインの現在の数を記憶する。CCU
RRENTレジスタ412は、パケット内に残っている
1未満のバッチの現在の数を記憶する。ガイドされた転
送を行うとき、これはその変わりにガイドテーブル内に
残っている入力の数を表示する。
【0219】CBYTESレジスタ413はダイレクト
メモリアクセスまたはキャッシュサービスにより転送す
べき残っているバイトの現在の数を記憶する。BUFP
TRレジスタ414は、ソースマシン320と宛て先マ
シン340によって共用されるレジスタである。BUF
PTRレジスタ414は、外部メモリ間でのパケット転
送中にバッファとして使用されるパラメータメモリの部
分をポイントする。マルチプレクサはオンチップアドレ
スの上部ビットを発生するのに使用できる。
【0220】FCOUNTレジスタ431(図12に示
す)は、パイプライン内に現在あるすべてのインストラ
クションが完了した後、パケット転送用FIFOバッフ
ァ311内にどれだけ多くのバイトが残るかを示す5ビ
ットの値(16〜0のみ)を記憶する。
【0221】BUFCOUNTレジスタ441(図13
に示す)は、外部メモリ間バッファ内にどれだけ多くの
スペアバイトが残るかを示す8ビットの値(128〜0
のみ)を記憶する。ソースマシン320の中心は、マシ
ンが転送したいバイト数を決定するための計算用ハード
ウェアと方法である。これはバイト計算回路415の数
で行われる。これは次元内に残っているバイト数、アド
レスの一致、バスサイズおよび次元が前方にアドレス指
定されているか、または後方にアドレス指定されている
かどうかに応じて決まる。エンディアンはこの計算には
重要ではない。次元内に残っているバイト数が8以上で
あると一時的に仮定すると、表11は異なっているアラ
インメントのためにマシンが転送を望んでいるバイト
数、バスサイズおよびアドレス指定の方向(前方または
後方)を示している。
【0222】
【表11】
【0223】バスが64ビット幅であり、アドレス指定
が前方であれば、3つの最小位のアドレスビットの2の
補数をとることにより、上記の値を推定する。4番目の
アドレスビットは桁上げ用である。次元が後方にアドレ
ス指定される場合、3つの最小位のアドレスビットの値
に1を加えるだけでバイト数を計算する。バスが32ビ
ット幅で、アドレス指定が前方であれば、2つの最小位
のアドレスビットの2の補数をとることにより、上記の
値を推定する。桁上げにより第3ビットとなる。次元が
後方にアドレス指定される場合、2つの最小位アドレス
ビットの値に1を加えるだけで、バイト数を計算でき
る。これらの場合、計算に通常含まれる次の最高位ビッ
トの影響は無視しなければならない。バスが16ビット
幅で前方にアドレス指定される場合、最小位アドレスビ
ットだけの2の補数をとることにより、上記値が推定さ
れる。桁上げは第2ビットとなる。次元が後方にアドレ
ス指定される場合、最小位ビットの値に1を加えるだけ
でバイト数が計算される。これらの場合、通常計算に含
まれる次の2つの最高位ビットの影響は無視しなければ
ならない。
【0224】上記の説明は、マシンがそれ自体を現在の
バスサイズに一致させるため、転送を望むバイトの数に
ついて述べたものである。このオペレーションが行われ
た後に、連続する転送は自動的に現在のバスサイズによ
って可能なバイトの最大数となる。このバスサイズを変
更する場合、これも自動的に処理される。次にアドレス
レジスタはバイト数だけインクリメントまたはデクリメ
ントされ、次のデータの開始点をポイントする。現在の
次元カウントの残りのバイトの新しい数を示すように、
同じ数だけデクリメントされる。マシンが転送を望むバ
イト数が、次元内に残っているバイト数よりも大きくな
るまでこのプロセスが続き、残りのバイト数よりも転送
を望むバイト数が大きくなった時点まで、実際に転送さ
れるバイト数を低い値にしなければならず、こうして次
元の転送を完了する。このような条件は、転送を望むバ
イト数から残っているバイト数を減算することにより検
出され、借りが起こらない場合は次元の最終転送に達
し、転送すべきバイト数のためにバイトカウントを用い
る。借り条件に基づくこれら2つの値の選択のためにマ
ルチプレクサが使用される。
【0225】転送が次元内の最終であり、パケットリク
エストが実行中であれば、通常の第1次元計算を行う代
わりに、次の次元パラメータを計算する。BCURRE
NTレジスタ411内の値が0であるかどうかにより、
BCURRENTレジスタ411またはCCURREN
Tレジスタ412のいずれかをデクリメントする。いず
れの場合にせよ、xCOUNTレジスタから小さい次元
のxCURRENTカウントをロードし、次の第1次元
を開始する。
【0226】BCURRENTレジスタ411の値が0
となるかどうかに応じて、ASTARTレジスタ404
にABPITCHレジスタ402に記憶されていた値を
加算(または減算)するか、またはBSTARTレジス
タ404にBCPITCHレジスタ407に記憶されて
いた値を加算(または減算)することにより、次の次元
のためのアドレスも計算される。計算された値は、CR
NTADRレジスタ406およびASTARTレジスタ
404に書き込まれBCURRENTレジスタ411内
の値が0であれば、BSTARTレジスタ405にも書
き込まれる。
【0227】第1次元の最終転送が実行され、BCUR
RENTレジスタ411およびCCURRENTレジス
タ412内の値がいずれも0であれば、ソースマシン3
20はパケットサービスを完了する。ソースマシン32
0および宛て先マシン340の双方がこの状態に達する
と、全パケットサービスが完了する。パケット転送オプ
ションフィールドのソースおよび宛て先更新モードに応
じ、ステージで追加次元計算を行うことができ、CRN
TADRレジスタ406に記憶されていたデータが下の
パケットリクエスト位置にセーブされる。これにより残
されている点でのパケット転送の後における再送信が可
能となる。
【0228】これらアドレス計算は2つの32ビット加
算器420および423で行われる。マルチプレクサ4
21および422は、加算器420への入力を選択し、
同様にマルチプレクサ424および425は加算器42
3への入力を選択する。加算器420は、CACHEA
DRレジスタ401、ABPITCHレジスタ402、
ASTARTレジスタ404、BSTARTレジスタ4
05、CRNTADRレジスタ406およびBCPIT
CHレジスタ407のサービスを行う。加算器423
は、ACOUNTレジスタ408、ACURRENTレ
ジスタ409、BCOUNTレジスタ410、BCUR
RENTレジスタ411、CCURRENTレジスタ4
12およびCBYTESレジスタ413に対するサービ
スを行う。
【0229】上記説明は、パケット転送について簡単に
触れたものであるが、同様な方法がキャッシュサービス
およびバッファ操作に対しても適用されることに留意さ
れたい。キャッシュサービスの場合、アドレスは常に一
致した境界上で開始し、アドレスがキャッシュサブブロ
ックの終了点に達するとサービスが終了するので、バイ
トカウンタはない。このことは、ソースマシン320が
デジタル画像/グラッフィックプロセッサのインストラ
クションキャッシュまたはマスタプロセッサ60のデー
タまたはインストラクションキャッシュにサービスする
かどうかに応じて変わる。
【0230】上記説明は、転送するバイト数の計算を常
に実行できることを示唆している。パケット転送用FI
FOバッファ311は、マシンがその数のバイトを転送
するには、過度に満杯または空状態となり得るので、こ
のことは当てはまらない。したがってパイプライン内に
オペレーションをロードする前にさらに計算を行う必要
がある。
【0231】ソースマシン320がパケット転送用FI
FOバッファ311内に残されている余裕よりも多いバ
イトを転送したい場合、待機する必要がある。宛て先マ
シン340がパケット転送用FIFOバッファ311内
にあるバイト数よりも多いバイトを転送したい場合も待
機する必要がある。宛て先マシン340が読み出しをす
るのに、パケット転送用FIFOバッファ311内に十
分なバイトをソースマシン320がロードしようとする
場合、双方の転送を続けることができる。
【0232】これら計算は図12に示されたロジックで
実行される。FCOUNTレジスタ431は既にパイプ
ライン内にあるオペレーションが完了した場合、パケッ
ト転送用FIFOバッファ311内に入るデータのバイ
ト数を記録する。加算器434はソースマシン320が
パケット転送用FIFOバッファ311に転送したいバ
イト数にこの値を加える。合計値が16を越える場合、
ソースマシン320は続けることはできないが、宛て先
マシン320がいくらかのデータを空にすることを待た
なければならない。加算器434は、17個以上の出力
を発生し、この出力はソースマシン320に供給され、
このマシンをストールさせる。現在の値または加算器3
43の17以上の出力により選択された加算の結果のい
ずれかであるパケット転送用FIFOバッファ311内
の新しいバイト数がマルチプレクサ435を通して減算
器436へ送られる。減算器436は宛て先マシン34
0が転送したいバイト数からパケット転送用FIFOバ
ッファ311内の新しいバイト数を減算する。減算器4
36が借り信号を発生しなければ、宛て先マシン340
は続行できる。減算器426が借り信号を発生すると、
この借り信号はマルチプレクサ437を制御して、差ま
たは減算前の値を選択してFCOUNTレジスタ431
にセーブする。
【0233】キャッシュサービスのためにキャッシュバ
ッファ312を使用するときは、同様な組の計算が必要
である。マルチプレクサ433に対するモード信号がF
COUNTレジスタ431が計算のソースとして働く
か、またはキャッシュバッファ312に記憶されていた
バイト数を記憶する同様なCHCOUNTレジスタ43
2として働くかを選択する。
【0234】外部メモリ間転送を実行するとき、転送プ
ロセッサ80は、リクエスト中のプロセッサのパラメー
タメモリの一部をバッファとして使用する。この外部メ
モリ間バッファのステートおよびその内容は管理が必要
である。バッファポインタBUFPTRレジスタ414
は、ソースマシン240と宛て先マシン340とによっ
て共用されるが、その理由は、このバッファは1度に一
つしかアクセスできないからである。BUFPTRレジ
スタ414は、ソースマシン320および宛て先マシン
340の通常のロジックを使用して、バッファとの間で
転送されたバイト数だけインクリメントされる。BUF
PTRレジスタ414は長さが8ビットだけでよい。こ
のアドレスの最高位ビットは、各プロセッサに対して固
定されており、リクエスト中のプロセッサに基づき、一
定のマルチプレクサから供給される。通常の一致/残留
スペースロジックを用いて、転送されたバイト数が計算
される。外部メモリ間バッファを空にするソースマシン
320は、BUFCOUNTレジスタ441を使用して
そのバイトに残っている値を記憶する。外部メモリ間バ
ッファを満たす宛て先マシン340は、FCOUNTレ
ジスタ431を使用してバイトに残っている値を記憶す
る。
【0235】図13は、バッファカウント演算を示して
いる。BUFCOUNTレジスタ441は、転送方向に
応じて外部メモリ間バッファ内のスペアバイトの数また
は空にすべき残っているデータバイトの数の8ビットカ
ウントである。ソースマシン320は、外部メモリ間バ
ッファを満たしたとき、パケット転送用FIFOバッフ
ァ311にロードするバイト数だけBUFCOUNTレ
ジスタ441をデクリメントする。BUFCOUNTレ
ジスタ441が7以下になるとソースマシン320が停
止し、パケット転送用FIFOバッファ311が外部メ
モリ間バッファ内に空にされるまで、宛て先マシン34
0の作動が続く。従ってソースマシン320は外部メモ
リ間バッファ内に入るデータよりも多いデータをフェッ
チできない。外部メモリ間バッファは、少なくとも12
0バイトで満杯になる。
【0236】外部メモリ間バッファが満杯になる状態と
空になる状態の間で、BUFCOUNTレジスタ441
は128から減算し、これを外部メモリ間バッファ内に
残っているデータバイトの数にしなければならない。外
部メモリ間バッファを空にすると、ソースマシン320
はBUFCOUNTレジスタ441が0となるまで、こ
れをデクリメントする。宛て先マシン340はパケット
転送用FIFOバッファ311を空にし続け、再び方向
を反転させる。外部メモリ間バッファの充填が開始する
前に、BUFCOUNTレジスタ441は128にリセ
ツトされる。マルチプレクサ442および443、およ
びフル(全)加算器444は、このような必要な演算を
行う。
【0237】パケット転送が一時中断されているとき、
BUFCOUNTレジスタ441およびBUFPTRレ
ジスタ414は、他のパケットパラメータがセーブされ
る。レストレーション時にオペレーションを正しく再開
できるように、外部メモリ間バッファを空にするか、ま
たは満たす、現在の方向を表示するビットもセーブされ
る。
【0238】図14aおよび14bは、小エンディアン
および大エンディアン係数のための、それぞれのポイン
タFDPTRおよびFSPTRとパケット転送用FIF
Oバッファ311との関係を示している。パケットリク
エストはソースおよび宛て先の形状を実質的に任意また
は従属的にできるので、宛て先に対して常に一致するわ
けではない。図8において、ソースと宛て先の整列がコ
ンスタントに互いに変化した状態で、0バイトのサイク
ルと8バイトのサイクルとの間でソースマシン320は
記憶し、宛て先マシン340はフェッチが可能である。
従ってパケット転送用FIFOバッファ311は16バ
イトのバイト幅のFIFOであり、このFIFOはソー
スからの0〜8バイトをロードできるのと同時に、宛て
先への0〜8バイトを空にできる。ソースマルチプレク
サおよび整列ロジック330はソースから適当なバイト
を抽出し、これらバイトをパケット転送用FIFOバッ
ファ311の隣接するFIFOデータを維持する位置に
記憶する。宛て先マルチプレクサおよび整列ロジック3
50は、パケット転送用FIFOバッファ311からの
最も古いバイトを抽出し、宛て先に書き込む前に正しい
位置に8バイトワードでこれらバイトを一致させる。ソ
ースマルチプレクサおよび整列ロジック330、並びに
宛て先マルチプレクサおよび整列ロジック350は、そ
れらの転送を一致でき、できるだけ長くこの状態に留め
ることができるようになるとすぐに、64ビットのダブ
ルワードの境界にこれらの転送を一致させる。従ってソ
ースマルチプレクサおよび整列ロジック330並びに宛
て先マルチプレクサおよび整列ロジック350は、変動
する整列状態をサポートする。
【0239】パケット転送用FIFOバッファ311
は、サーキュラバッファとして16ビットを取り扱う。
データの開始点を任意のバイト位置とすることができ
る。宛て先マルチプレクサおよび整列ロジック350が
データを抽出する点は、4ビットのFDPTRレジスタ
によって表示され、FDPTRレジスタはデータを抽出
する同じサイクルで変更され、ポインタを新しいデータ
の開始点に移動する。宛て先マルチプレクサおよび整列
ロジック350は、抽出されたバイトを取り込み、宛て
先ダブルワード内の正しい位置へこれらを整列させる。
パケット転送用FDPTRバッファ311からの抽出お
よび整列は宛て先マルチプレクサおよび整列ロジック3
50内の8つのパラレルな16ビットバレルシフタから
成る16ポジションバイトローテータを使用した1工程
で行われる。周辺のバイトをスワップするように、ガン
のようなデータの操作を実行し、次に別の回転を行う。
宛て先マルチプレクサおよび整列ロジック350も、宛
て先に適当なバイトだけが書き込まれるように、同様に
バイトストローブを操作する。
【0240】ソースマルチプレクサおよび整列ロジック
330からのパケット転送用FIFOバッファ311へ
のローディングは、実質的に同様なオペレーションであ
る。ソースマルチプレクサおよび整列ロジック330
は、4ビットのFSPTRレジスタによってマークされ
た最初の空いている位置にそのデータを書き込み、新し
い最初の空いた位置を有するFSPTRレジスタを更新
する。パケット転送用FIFOバッファ311がフル状
態のとき、FSPTRレジスタは、一旦宛て先マルチプ
レクサおよび整列ロジック350があるデータを抽出す
れば、空となる最初の位置を実際にポイントする。
【0241】宛て先マシン340は、クロックサイクル
のスレーブ位相に関するデータを抽出する。ソースマシ
ン320はクロックサイクルの次のマスタ位相時にロー
ドする。大エンディアンおよび小エンディアン作動モー
ドをサポートするため、いずれの方向にもデータ回転を
行う必要がある。データの連続性が常に正しくなるよう
にパケット転送用FIFOバッファ311の外側から見
た場合、小エンディアンモードではデータ回転は時計回
り方向にし、大エンディアンモードでは反時計回り方向
にする。従って操作マルチプレクサおよび整列ロジック
330、宛て先マルチプレクサおよび整列ロジック35
0、ポインタFSPTRおよびFDPTRおよびパケッ
ト転送用FIFOバッファ311のレジスタは、双方の
エンディアンに合わせるように設計しなければならな
い。
【0242】図12のFCOUNTレジスタ431は、
パケット転送用FIFOバッファ311にどれだけ多く
のバイトが保持されているかの表示を記憶する。このF
COUNTレジスタ431は、17以上の値を決して含
むことができない。このレジスタはこのレジスタ内に記
憶された値がパイプライン内に現在あるインストラクシ
ョンのすべてが完了した後に、パケット転送用FIFO
バイト311内にどれだけ多くのバイトが入るかを表示
するように、パイプラインのローディング前にソースマ
シン320および宛て先マシン340によって操作され
る。これによって、パケット転送用FIFOバッファ3
11のブロッキングを生じさせるようなパイプラインへ
のオペレーションのローディングができなくなる。従っ
て、宛て先マシン340は常に十分なバイトを有し、ソ
ースマシン320は常に十分な余裕を有することとな
る。この結果、FDPTRまたはFSPTRが互いにオ
ーバーテイクをする危険がなくなる。新しいパケットリ
クエストを開始すると、FDPTRおよびFSPTRが
0にリセットされるので、これらの双方は同じ位置をポ
イントし、FCOUNTレジスタ431は0にリセット
される。これによりパケット転送用FIFOバッファ3
11の正しい初期化が保証される。
【0243】パケット転送が一時中断されると、FDP
TR、FSPTRおよびFCOUNTレジスタ431の
みならず、パケット転送用FIFOバッファ311レジ
スタ自身も制御される。これによりパケット転送用FI
FOバッファ311の全ステートが保持され、よってこ
のステートはパケット転送の再開時にレストアできる。
【0244】値で満杯にされたパケット転送は、満杯に
している値をパケット転送用FIFOバッファ311の
最下位のダブルワードにロードし、FCOUNTレジス
タ431を16にセットし、FDPTRをエンディアン
のための正しいデータ開始点にセットする。小エンディ
アンに対してはバイト0であり、大エンディアンに対し
てはバイト7である。値で満杯にされたパケット転送中
では、FCOUNTレジスタ431の値は変更されな
い。従って宛て先マシン340は、満杯になったパケッ
ト転送用FIFOバイト311を常時見ているので、こ
の満杯にしている値をフェッチし、整列する。ソースマ
シン320も満杯にされたパケット転送用FIFOバイ
ト311を常時見ているので、必要に際し、停止する。
値で満杯にされたパケット転送を一時中断またはレスト
アする際には、パケット転送FIFOバッファ311の
ステートは一時中断の別の形態に対する場合のように、
セーブされ、レストアされるだけである。従って値で満
杯にされたパケット転送を一時中断するためには特別な
考慮は不要である。
【0245】ソースマシン320は、2つのパイプライ
ンを含み、宛て先マシン340と別のパイプラインを共
用する。パイプラインは内部メモリインターフェース3
01および外部メモリインターフェース302とインタ
ーフェースされ、4つの方向のデータ転送、すなわちオ
ンチップからオンチップへ、オフチップからオンチップ
へ、オンチップからオフチップへ、オフチップからオフ
チップへのデータ転送を可能とする。ソースマシン32
0のアドレスパイプライン427およびバイトパイプラ
イン428は、宛て先マシン340のパイプラインから
分離されているが、共通のパイプラインの進行を行うよ
うに連動されている。これにより、ステップ状に維持し
ながら内部メモリインターフェース310および外部イ
ンターフェース320上での独立した行動が可能となっ
ている。あるインターフェースへの不連続性は、他のイ
ンターフェースを停止させることもある。アドレスパイ
プライン420はソースマシン320によってアクセス
されるアドレスを記憶し、バイトパイプライン428は
バイトストローブおよび整列情報を記憶する。この情報
はどのバイトが対応しており、パケット転送用FIFO
バッファ311またはキャッシュバッファ312にどれ
だけ多くのバイトをロードしたり、これらから除くかを
表示している。転送コントローラ80のレジスタの転送
にあたり、バイトパケット428はレジスタ番号を記憶
する。サービスを受けた情報もバイトパイプラインを下
方に移働し、オペレーションがいつ完了したかを表示す
る。
【0246】ソースマシン320と宛て先マシン340
は、リクエストパイプライン429を共用する。リクエ
ストパイプライン429はステータス情報、例えば低優
先度パケット転送、ダイレクト外部アクセス等の実行中
のオペレーションのタイプ、およびリクエスト中のプロ
セッサの表示を記憶する。リクエストパイプライン42
9は、ステータス事象が生じるときを表示するパラレル
制御情報も記憶する。
【0247】一つ以上のアクセスが停止する際には、と
きどき内部パイプラインにバブルが生じる。転送コント
ローラ80は、ガイドされた転送中にガイドテーブルの
値をフェッチするのに、これらバブルを使用する。これ
により、転送コントローラ80の転送中バンド幅をより
効率的に使用できる。宛て先レジスタがフリーでない場
合、このようなフェッチされたガイドテーブルの値は、
GTPIPEレジスタ403の関連部分に記憶される。
【0248】転送コントローラ80はバイト配列された
パケット転送のみにおいて、データ配列を行うことがで
きる。ソースマシン320と宛て先マシン340とは独
立しているので、これらマシンの各々は0バイトの各サ
イクルと8バイトの各サイクルとの間でフェッチしたり
記憶することができる。このことは、ソースアドレスと
宛て先アドレスとの相互の整列はコンスタントに変化し
得ることを意味している。変動する整列をサポートする
ため、転送コントローラ80はパケット転送用FIFO
バッファ311とソース配列ロジック332と、宛て先
整列ロジック352を含んでいる。パケット転送FIF
Oバッファ311は、16バイトのFIFOレジスタで
あり、このレジスタはソースからの0〜8バイトのロー
ドと、宛て先への0〜8バイトを空にすることを同時に
行うことができる。ソースマルチプレクサ331および
ソース配列ロジック332は、ソースから適当なバイト
を抽出し、これらを先のソースバイトに隣接するパケッ
ト転送用FIFOバッファ311に記憶する。宛て先配
列ロジック352および宛て先マルチプレクサ351
は、パケット転送用FIFOバッファ311から最も古
いバッファを抽出し、現在アドレス指定されている宛て
先の8バイトのダブルワードで、正しい位置にこれらを
配列する。パケット転送配列およびFIFO操作は自動
的であり、意図する実施例ではプログラマーに対してト
ランスペアレントである。
【0249】キャッシュバッファ312にはパケット転
送用FIFOバッファ311に対して作動が類似する8
バイトのバッファであり、キャッシュおよびダイレクト
外部アクセスオペレーション中に使用される。キャッシ
ュの内外への転送は常に8バイト幅である。キャッシュ
バッファ312には外部メモリバスが60ビット幅より
も狭い場合にデータを配列するのを助ける。キャッシュ
バッファ312をパケット転送用FIFO場合に311
と別個に設けたことにより、現在パケット転送用FIF
Oバッファ312にあるパケットデータを最初に空にす
ることなく、パケット転送の途中でより高い優先度のキ
ャッシュおよびダイレクト外部アクセスリクエストをサ
ービスすることが可能となっている。
【0250】転送コントローラ80はオンチップメモリ
にマッピングされる4つの、ユーザーがアクセス可能な
レジスタを有する。これらレジスタはロードおよび記憶
インストラクションによりマスタプロセッサ60によっ
てアクセス可能である。これらレジスタはデジタル画像
/グラフィックプロセッサ71、72、73、74に対
してはアクセスできない。表12はこれらレジスタをリ
ストアップしたものである。
【0251】
【表12】
【0252】REFCNTLレジスタは、システムのD
RAMリフレツシュサイクルを制御するのに使用される
2つの16ビットの値を含む。16ビットREFRAT
Eフィールド(ビット15〜0)は、DRAMリフレッ
シュサイクルを発生するインターバルを決定する。RE
FRATEにおける値は、各リフレッシュリクエストの
間に生じるマルチプロセッサ集積回路100のクロック
サイクル数を示す。REFRATEにおける32(16
進数0020)未満の値は、DRAMリフレッシュをデ
ィスエープルする。REFRATEフィールドはリセッ
ト時に32(16進数0020)にセットされる。DR
AMリフレッシュ中、16ビットの疑似アドレスが外部
アドレスバス上に出力され、リフレッシュバンクデコー
ディングまたはRAS′だけのリフレッシュとともに使
用される。16ビットRPARLDフィールド(ビット
31〜16)は、リフレッシュサイクル中に出力される
最大値を含む。現在のリフレッシュアドレスのトラック
を維持するのに、リフレッシュアドレスカウンタが使用
される。このカウンタはリフレッシュサイクルが起きる
たびにデクリメントされ、このカウンタが0に達する
と、RPARLDにおける値が再ロードされる。RPA
RLDフィールドはリセット時に16進数0FFFFに
セットされる。
【0253】パケット転送用最小レジスタPTMIN5
11およびパケット転送用最大レジスタPTMAX51
2は、パケット転送の作動時間を制御するようになって
いる。これらレジスタは、図31に示されており、以
下、更に説明する。パケット転送用最小レジスタPTM
IN511は、より高い優先度のパケット転送によって
パケット転送をインタラプトできる前に、転送コントロ
ーラ80によってパケット転送のサービスを行わなけれ
ばならないクロックサイクルの最小数を記憶する。好ま
しい実施例では、パケット転送用最小レジスタPTMI
N511の24の最小位のビットしか実行されない。よ
り高い位のビットからの読み出しは、常に0に復帰し、
これらビットへの書き込みは全く効果がない。リセット
時にパケット転送用最小レジスタPTMIN511には
16進数10000(64Kサイクル)がロードされ
る。パケット転送用最大レジスタPTMAX512は、
タイムアウト前にパケット転送用最小レジスタPTMI
N511により指定される時間の後にパケット転送を続
けることができる最大時間を決定する。本実施例では、
パケット転送用最大レジスタPTMAX512は24の
最小位のビットを実行する。より高い位のビットからの
読み出しは0に復帰し、これらビットへの書き込みは何
らの効果もない。従ってPTMINサイクルの後により
高い優先度のパケット転送によりパケット転送をインタ
ラプトでき、PTMIN+PTMAXサイクルの後に同
じ優先度の別のパケット転送を実行するため、このパケ
ット転送を一時中断できる。より高い優先度のパケット
転送のため、あるパケット転送を一時中断できるとき、
パケット転送用最大レジスタPTMAX512内に記憶
された値は、影響しない。リセット時にPTMAXに1
6進数の値10000(16Kサイクル)がロードされ
る。
【0254】パケット転送またはデジタル画像/グラフ
ィックプロセッサ71、72、73、74のインストラ
クションキャッシュフィルサイクルまたはダイレクト外
部アクセスサイクル中にフォールトが生じたことを表示
するステータスビットを含む。表13は、FLTSTS
レジスタ上の特定のビットの意味を示す。
【0255】
【表13】
【0256】転送コントローラ80は、所定のメモリフ
ォールトの検出に基づき、FLTSTSレジスタの個々
のビットをセットする。マスタプロセッサ60のリクエ
ストしたパケット転送中にフォールトが生じると、Mビ
ット(ビット0)は1にセットされる。ビット19〜1
6はデジタル両像/グラフィックプロセッサ71、7
2、73、74によってリクエストされるパケット転送
フォールトを表示するのに使用される。DIGP3(ビ
ット19)は、デジタル画像/グラフィックプロセッサ
74のパケット転送フォールトを表示し、DIGP2
(ビット18)はデジタル画像/グラフィックプロセッ
サ73のパケット転送フォールトを表示し、DIGP1
(ビット17)はデジタル画像/グラフィックプロセッ
サ72のパケット転送フォールトを表示し、DIGPO
(ビット16)はデジタル画像/グラフィックプロセッ
サ71のパケット転送フォールトを表示する。8つのデ
ジタル画像/グラフィックプロセッサを含む実施例で、
パケット転送フォールトをレポートするのにビット23
〜20が保留される。対応するデジタル画像/グラフィ
ックプロセッサによりリクエストされるパケット転送中
にフォールトが生じると、これらビットの各々が1にセ
ットされる。
【0257】DIGPC3ビット(ビット27)は、キ
ャッシュフィルまたはデジタル画像/グラフィックプロ
セッサ74によりリクエストされるダイレクト外部アク
セスオペレーション中にフォールトが生じると1にセッ
トされ、同様に、DIGPC2ビット(ビット26)に
おける1は、キャッシュフィルまたはデジタル画像/グ
ラフィックプロセッサ73によりリクエストされるダイ
レクト外部アクセスオペレーション中のフォールトを表
示する。DIGPC1ビット(ビット25)における1
は、キャッシュフィルまたはデジタル画像/グラフィッ
クプロセッサ72によりリクエストされるダイレクト外
部アクセスオペレーション中のフォールトを表示する。
DIGPC0ビット(ビット24)における1は、キャ
ッシュフィルまたはデジタル画像/グラフィックプロセ
ッサ71によりリクエストされるダイレクト外部アクセ
スオペレーション中のフォールトを表示する。8つのデ
ジタル画像/グラフィックプロセッサを使用する実施例
では、付加的デジタル画像/グラフィックプロセッサに
よりリクエストされるキャッシュフィルまたはダイレク
ト外部アクセスオペレーションを表示するのに、ビット
31〜28が保留される。
【0258】M、DIGP3〜0、またはDIGP3〜
0ビットのうちのいずれかをセットすると、マスタプロ
セッサ60がインタラプトされる。セットされているF
LTSTSビットをクリアすると、関連するパケット転
送、キャッシュフィルまたは外部アクセスが再スケージ
ュール化される。適当なビットに1を書き込むと、FL
TSTSビットがクリアされ、1つのビットに0を書き
込んでも何の効果もない。
【0259】マスタプロセッサ60のレジスタは、スコ
アボード化されているので、フォールトを生じたダイレ
クト外部アクセスリクエストは必ずしもこのプロセッサ
のインストラクションパイプラインを停止するわけでは
ない。マスタプロセッサ60はデータアクセスの別の試
みを行う場合に限り、ダイレクト外部アクセス記憶装置
のフォールトにより停止する。フォールトの生じたダイ
レクト外部アクセスロードは、同じ条件下またはダイレ
クト外部アクセスによりロードされるレジスタを使用す
る試みをなす場合に、マスタプロセッサ60を停止させ
る。デジタル画像/グラフィックプロセッサ71、7
2、73または74によりリクエストされるフォールト
の生じたダイレクト外部アクセスは、リクエストされた
ダイレクト外部アクセスが完了するまでに、常にリクエ
スト中のプロセッサを停止させる。
【0260】パケット転送はメモリのうちの2つの領域
間でのデータのブロック転送である。ソース(Src)
メモリエリアから宛て先(Dst)メモリエリアまで、
転送コントローラ80によってデータが転送される。ソ
ースおよび宛て先エリアは、オンチップまたはオフチッ
プメモリのいずれでもよい。パケット転送は、転送コン
トローラ80への領域としてマスタプロセッサ60また
はデジタル画像/グラフィックプロセッサ71、72、
73、74のうちの1つによって開始される。転送コン
トローラ80は、図6および7に示すように、リクエス
ト待ち行列化および優先度決定ロジック303により、
固定された優先度決定方法およびラウンドロビン優先度
決定方法を用いてリクエストをサービスする。一つのプ
ロセッサがリクエストを送信すると、このプロセッサは
プロセッサの実行を続けることができる。パケット転送
はプロセッササイクルを追加することなく、転送コント
ローラ80によって完了される。パケット転送は、異な
る優先度レベルに基づいて送信できるので、より高い優
先度の転送は低い方の優先度の転送をインタラプトでき
る。このようなことが生じると、優先度の低い方の転送
は転送コントローラ80によって一時中断され、転送内
の現在位置が制御される。より高い優先度の転送が完了
すると、インタラプトされたポイントで一時中断された
転送が自動的に再開される。
【0261】パケット転送の理解を容易とするため、パ
ケット転送を説明するのに用いる用語の簡単な定義を順
に説明する。ラインとはメモリにおける多数の隣接する
バイトのことであり、パッチとは開始アドレスが等距離
離間しているライングループのことであり、パケットと
はパッチの組であり、ピッチとは2つのライン間または
2つのパッチの開始点の間のアドレスの差であり、パラ
メータテーブルとはデータのパケットおよびどのように
ソースから宛て先に移動すべきかを記述するパラメータ
の、8ダブルワード長の組であり、リンクされたリスト
とはパラメータテーブルの組であり、テーブルの各々は
リスト内の次のテーブルをポイントするものである。ガ
イドテーブルとは、パケット転送における個々のパッチ
を記述するパラメータのテーブルであり、ソース転送と
は、ソースメモリ位置からのデータの転送のことであ
り、宛て先転送とは、宛て先メモリ位置へのデータの転
送のことである。
【0262】各プロセッサは関連するパラメータメモリ
を有し、転送コントローラがプロセッサからのパケット
転送リクエストにサービスする際、転送コントローラ8
0が使用するため、関連するパラメータメモリ内に多数
の位置が別個にセットされている。図15にはこれらエ
リアが示されている。転送コントローラ80により使用
されるパラメータメモリエリアは、転送コントローラ8
0の使用のみに限定されているわけではない。しかしな
がら、これら位置に入れられるデータはパケット転送オ
ペレーション中、転送コントローラ80によってオーバ
ーライトされる可能性があることを知っておく必要があ
る。パケット転送リクエストがアクティブである時、こ
れら位置に書き込みを行ってはならない。その理由は、
このような書き込みによってパケット転送またはそのデ
ータが破壊されるからである。
【0263】プロセッサがパケット転送を初期化するた
めのプロセス、方法またはシーケンスの一例は次のとお
りである。対応するパラメータメモリ内にパケット転送
パラメータテーブルを作成する。必要であれば、オンチ
ップメモリ内にパケット転送用ガイドテーブルを作成す
る。ガイドテーブルの性質については後に更に説明す
る。第1パラメータテーブルの開始点をポイントするよ
うに、パラメータメモリ内のリンクされたリストの開始
アドレスをセットする。図15は、このリンクされたリ
ストの開始アドレスを記憶すべき対応するパラメータメ
モリ内の位置を示す。マスタプロセッサ60に対し、こ
のリンクされたリストの開始アドレスは、16進数01
0100FCから16進数010100FFのアドレス
に記憶しなければならない。デジタル両像/グラフィッ
クプロセッサ71、72、73、74に対しては、この
ようなリンクされたリストの開始アドレスは16進数0
100#0FC〜16進数0100#0FF(ここで#
はデジタル画像/グラフィックプロセッサの数である)
のアドレスに記憶しなければならない。次に適当なパケ
ット転送優先ビットおよびPビットをセットして、転送
コントローラ80にリクエストを送る。マスタプロセッ
サ60のためのPKTREQ制御レジスタ内およびデジ
タル画像/グラフィックプロセッサ71、72、73、
74のCOMMレジスタ内に、これらビットが位置す
る。転送コントローラ80は、これらレジスタのステー
タスを検出し、図6および7に示された優先度に従って
パケット転送リクエストのサービスをする。
【0264】パケット転送リクエストはリンクされたリ
スト構造のように送られる。リンクされたリストは単に
パケット転送パラメータテーブルの集合であり、ここで
は各パケット転送は、リスト上の次の入力の入力ポイン
トに対するポインタを含む。パケット転送はオンチップ
またはオフチップメモリ上で作動できるが、パラメータ
テーブル自体のリンクされたリストはオンチップメモリ
に記憶しなければならない。各プロセッサはメモリに記
憶された多数のリンクされたリストを有することができ
るが、一時にそのうちの一つしかアクティブになれな
い。リクエスト中のプロセッサのパラメータメモリ内の
専用のリンクされたリストの開始アドレス位置に、アク
ティブなリンクされたリストの開始点が記憶される。リ
ンクされたリスト内の各入力パラメータテーブルは、リ
スト上の次の入力の位置に対するポインタを含む。リス
トの終了部はパケット転送パラメータテーブルのパケッ
ト転送オプションフィールド内のストップビットによっ
てマークされているので、リスト内の最終入力は、いず
れの位置もポイントできる。
【0265】図16は、簡単なリンクされたリスト構造
を示す。このリストは2つのパケット転送パラメータテ
ーブルを含む。リスト開始ポインタは、第1パケット転
送パラメータテーブルの開始アドレスを記憶し、第1パ
ケット転送パラメータテーブル内の第1データは、第2
の、すなわち本例では最終のパケット転送パラメータテ
ーブルのアドレス内にある。本例は、2つのパケット転
送パラメータテーブルしか含まないが、リンクされたリ
ストは、オンチップメモリに合わせるよう、できるだけ
長くすることができる。
【0266】あるプロセッサがPビットをセットするこ
とによりパケット転送を送った場合、転送コントローラ
80は対応するプロセッサのQビットをセットすること
によって応答する。このことは、そのプロセッサのリン
クされたリストがパケットコントローラ80内に待ち行
列状になっていることを表示する。パケット転送優先レ
ベルに適当なラウンドロビントークンがリクエスト中の
プロセッサに達すると、転送コントローラ80はリクエ
ストのサービスをアクティブに開始する。転送コントロ
ーラ80がリクエスト中のプロセッサのパラメータメモ
リ内のリンクされたリストの開始位置を読み出す。転送
コントローラ80は第1パケット転送パラメータテーブ
ルの内容を、そのソースマシン320および宛て先マシ
ン340内のレジスタに読み出す。次に転送コントロー
ラ80はソースマシン320および宛て先マシン340
を使用して、パラメータテーブル内に表示されたように
データを転送する。パケット転送が完了すると、転送コ
ントローラ80はリンクされたリスト内の次のアドレス
と共に、パラメータメモリ内のリンクされたリストの開
始アドレスを更新する。このアドレスは、ちょうど完了
したパケット転送パラメータテーブルの第1入力から読
み出される。転送コントローラは次に、リンクされたリ
スト上の最後の入力に達するまで、この手順を繰り返
す。
【0267】本明細書に述べたパケット転送デバイス、
プロセスおよび方法は、データの移動のフレキシビリテ
ィを最大にできるよう、多数の異なるフォーマットおよ
びオプションを提供するものである。これらフォーマッ
トを検討する際、パケット転送のソース転送と宛て先転
送とは互いに独立していることに留意することが重要で
ある。これにより読み出し時のフォーマットと完全に異
なるフォーマットを利用してパケットデータを書き込む
ことができ、これにより任意の数のスプレッド機能また
はマージ機能を自動的に達成できる。これら2つの基本
的パケット転送フォーマットは、次元が決定され、ガイ
ドされている。これらフォーマットはソース転送または
ソース転送を記述しているかまたは宛て先転送を記述し
ているかに応じて、どのようにデータを読み出すか、ま
たは書き込むかを決定できる。ソース転送と宛て先転送
に対して異なるフォーマットを規定することが可能であ
ることに留意されたい。
【0268】次元の定められた転送は、最もシンプルな
タイプであるが、最も硬直したタイプでもある。このよ
うな次元の定められた転送はデータバイトの簡単な隣接
するリニアシーケンスでもよいし、または多数のかかる
領域から構成できるソースまたは宛て先を記述する。ア
ドレス指定機構は三次元までのアレイの指定を可能とす
る。この機構は、単一パケット転送による多数の二次元
状パッチの転送を可能とする。第1またはA次元に沿う
データは、常に1バイトだけ離れている。第2すなわち
B次元および第3すなわちC次元に沿う間隔は任意であ
るが、パッチ全体に対して固定されている。宛て先次元
が完了すると、転送が完了する。
【0269】図17は、次元の定められた転送がどのよ
うにソースメモリまたは宛て先メモリにアクセスするか
の例を示している。この図は3ラインの2パッチから成
るパケットを示しており、各パッチは512個の隣接す
る8ビットピクセルから成る。例えば2つのデジタル画
像/グラフィックプロセッサ71、72、73、74が
3×3の畳み込み(各々はラインのパッチの1つに作用
する)を実行しようとしている場合、これが必要となり
得る。第1パッチ(PQR)は、デジタル画像/グラフ
ィックプロセッサ71と関連するデータメモリ22に転
送すべきデータを示し、第2パッチ(STU)データは
デジタル画像/グラフィックプロセッサ72に関連する
データメモリ27に転送すべきデータを示す。本例はソ
ースメモリエリアから転送コントローラ80がデータを
どのように読み出すべきかを指定しているので、ソース
転送を示していることになる。データパケットは、次の
パラメータ、すなわちAカウント、Bカウント、Cカウ
ント、開始アドレス、BピッチおよびCピッチによって
特定される。Aカウントとは、第1次元内の隣接するデ
ータバイトの数であり、図17の例ではこの数は512
である。Bカウントとは、パッチを形成する工程の数ま
たは1未満のライン数である。図12はBカウントが2
である場合を示す。Cカウントは1未満のパケットを形
成するためのパッチ工程の数である。図17はCカウン
ト数が1である場合を示す。開始アドレスとは、パケッ
トの開始点のリニアアドレスである。このアドレスはP
と表示されるバイトのアドレスである。Bピッチとは第
2次元のリニアピッチのことである。すなわちバイトP
とQとのアドレスの差またはバイトQとRとのアドレス
の差である。Cピッチとは第3次元のリニアピッチ、す
なわちバイトPとSとのアドレスの差のことである。ソ
ース転送および宛て先転送のいずれも、このように定義
できるが、ソースと宛て先の形状を全く異なるようにで
きるように、パラメータは独立したものである。
【0270】次元の定められた転送のすべての次元をア
クティブにする必要はない。Bカウントおよび/または
Cカウントを0にセットすることにより、転送を個々の
バイト、ピクセルの倍数バイト、ラインまたはパッチに
限定できる。0のAカウント値は転送されるデータを0
にするので、エラーを発生し得る。
【0271】ガイド転送とは次元アドレスのシーケンス
をパケット転送パラメータ内の値のみから計算するので
はなく、オンチップメモリ内のテーブルからガイドする
転送のことである。これらのオペレーションは次元の定
められた転送よりも複雑であるが、よりフレキシブルで
ある。ガイド転送には2つのクラス、すなわち固定パッ
チ転送と可変パッチ転送とがある。固定パッチガイド転
送は次元の定められた転送の場合のようにパケット転送
パラメータ内に記述された第1次元および第2次元を有
するが、第3次元はオンチップガイドテーブル内のエン
トリーからガイドされる。可変パッチガイドテーブルで
はガイドテーブルは各パッチに対しA次元およびB次元
のサイズも決定する。いずれの形態でも、2つの1次元
は次元の定められたテーブルと同じようにアクティブで
ある。従つて各ガイドテーブルエントリーが2つの第1
次元のサイズに従って個々のバイト、倍数バイトの個々
のピクセル、ラインまたは2次元パッチを移動できる。
これによりルックアップテーブルによるライン描きまた
はデータ処理の際に生じるような多数のイレギュラーな
オペレーションが可能となる。
【0272】特に表示しない限り、ガイド転送について
の次の記載における情報は、ソース転送および宛て先転
送の双方にも同じように当てはまる。ガイドテーブルは
単なるエントリーのブロックであり、これは転送のタイ
プに応じて32ビットまたは64ビットとなり得る。こ
のガイドテーブルは、オンチップメモリ内に位置してい
なければならない。ガイドテーブルは固定パッチ転送に
対しては、32ビットワードのアドレスに整列していな
ければならず、可変パッチ転送に対しては64ビットの
ダブルワードアドレスに整列していなければならない。
ガイドテーブルが含むガイドテーブルの開始アドレスお
よびエントリーの数は、対応するパケット転送パラメー
タテーブル内に表示される。各ガイドテーブルエントリ
ーはパケット転送内の2次元パッチに対応しており、転
送コントローラ80がパケット転送サービスをする際、
このコントローラはパケット転送内の次のパッチの処理
をするのに必要なように、ガイドテーブルエントリーを
一つずつフェッチする。ガイドテーブルエントリーの詳
細については、下記のガイド転送の詳細な説明で述べ
る。
【0273】固定パッチガイド転送は、32ビットエン
トリーを含むオンチップガイドテーブルを使用する。こ
のテーブルは、ワード整列されていなければならないの
で、テーブルのエントリーアドレスの最小位の2つのビ
ットは00でなければならない。各エントリーは3次元
の転送のためのアドレスを計算するのに使用される情報
を含む。固定パッチ転送は3つのタイプがある。すなわ
ち固定パッチデルタガイド転送、固定パッチオフセット
転送および固定パッチオフセットガイドルックアップテ
ーブル転送がある。これらタイプについては、下記によ
り詳細に説明する。
【0274】固定パッチデルタガイド転送に対し、ガイ
ドテーブルは現在のパッチの開始アドレスを形成するの
に、先の2次元パッチの開始アドレスに追加すべき32
ビットのデルタ値を含む。パッチサイズはAカウントお
よびBカウントパケット転送パラメータによって固定さ
れ、定義される。
【0275】図18に、固定パッチデルタガイドパケッ
ト転送のプロセスおよび方法の一例が示されている。こ
こで、第1パッチすなわちパッチAの開始アドレスを形
成するため、パケット転送パラメータ内に示された開始
アドレスに値デルタAが加算される。この開始アドレス
は最終パッチ開始レジスタ403に記憶され、パッチB
の開始アドレスを形成するのに最終パッチ開始点403
に記憶されたパッチAの開始アドレスに、デルタBが加
算され、同様に、その後同じような加算が行われる。こ
こで加算値は次のパッチの開始アドレスのベースを形成
するよう、最終パッチ開始レジスタ403に常時記憶さ
れることに留意されたい。図18に示すように、テーブ
ルポインタ501は、ガイドテーブル502内の次のエ
ントリーをポイントするように、各パッチの後に4バイ
トだけインクリメントされる。多数のエントリーカウン
タ503には、最初パケット転送パラメータテーブルか
らのエントリー値の数がロードされており、エントリー
カウンタ503の数は各パッチの後で一つだけデクリメ
ントされる。エントリー各503の数が0に達するとパ
ケット転送が終了する。
【0276】固定パッチオフセットガイドパケット転送
は、ガイドテーブル502を使用し、このテーブル50
2は各パッチの開始アドレスを形成するため、パケット
転送パラメータ内に示されるベースアドレスに加算すべ
き32ビットの値を含む。パッチサイズはAカウントお
よびCカウントパケット転送パラメータにより固定さ
れ、定義される。
【0277】図19は固定パッチオフセットガイドパケ
ット転送のためのアドレス指定機構プロセスおよび方法
を示す。ガイドテーブル502における第1エントリー
からの値デルタAは、パッチAの開始アドレスを形成す
るため、パケット転送パラメータテーブルに特定され、
ベースアドレスレジスタ505に記憶されたベースアド
レスに加算される。次に、パッチBの開始アドレスを形
成するよう、ベースアドレスレジスタ505内に記憶さ
れたアドレスにデルタBが加算され、ガイドテーブル5
02内の最終エントリーまでに同様な加算が行われる。
ここで、パケット転送パラメータテーブル内に特定され
たベースアドレスが0になると、ガイドテーブル502
は絶対アドレスを指定する。デルタガイド転送の場合と
同じように、テーブルポインタ501は現在のガイドテ
ーブルエントリーをポイントし、エントリーカウンタ5
03の数は実行するパッチの数をトラッキングする。
【0278】ガイドテーブル502は、固定パッチオフ
セットガイドルックアップテーブルパケット転送に対
し、32ビットのオフセット値を含む。この値はオフセ
ットレジスタ506内で0フィルの状態で0、1、2ま
たは3ビットだけ左にシフトしベースアドレスレジスタ
505内に記憶されたアドレスに加算されるべきもので
ある。ベースアドレスレジスタ505に記憶されたベー
スアドレスは、パケット転送パラメータに示されてお
り、これによりルックアップテーブルのデータサイズと
独立したルックアップテーブルのオペレーションのため
に転送を利用できる。固定パッチオフセットガイドルッ
クアップテーブルフォーマットは、ソース転送に対して
使用できるだけである。シフト量はパケット転送パラメ
ータのAカウントフィールドのビット1〜3のうちの最
も左側のビットの位置によって表示されている。ビット
3のうちの1は、左にシフトされた3つの場所を示し、
ビット2は2つの場所を示し、ビット1は1つの場所を
示す。ビット1〜3の中に1がない場合は、0シフトを
示す。このような左シフトにより、8、16、32およ
び64ビットのサポートが可能となる。ルックアップテ
ーブル転送のためのパッチサイズは、固定された1次元
であり、1、2、4または8バイトにセットされる。
【0279】図20は、固定パッチオフセットガイドル
ックアップテーブルパケット転送のためのアドレス計算
の一例を示す。ここでオフセットAはAカウントフィー
ルド内の値によって示されるようなルックアップテーブ
ルのデータサイズに従って、0、1、2または3ビット
だけ左にシフトされる。オフセットレジスタ505内の
このようなシフトされたアドレスは、パッチAの開始ア
ドレスを形成するため、ベースアドレスレジスタ505
内に記憶されたベースアドレスに加算される。次に、オ
フセットB値がシフトされ、ベースアドレスレジスタ5
05内のベースアドレスに加算され、パッチBの開始ア
ドレスを形成し、同様な操作が次々に実行される。ガイ
ドテーブル502からオフセット値がロードされる際に
シフトが行われる。先の実施例で述べたように、テーブ
ルポインタ501およびエントリーレジスタ503の数
は、ガイドテーブル502内の現在位置およびパッチの
数のトラッキングを維持する。
【0280】可変パッチガイド転送は、パケット転送パ
ラメータ内でなく、ガイドテーブル内のすべてのパッチ
サイズ情報を特定する。これによりパケット転送内の各
パッチが異なる次元を有することができる。転送はデル
タガイドまたはオフセットガイドのいずれでもよい。ガ
イドテーブルは可変ガイドパッチ転送に対し64ビット
のダブルワードエントリーから成る。図21にガイドテ
ーブル用の小エンディアンフォーマットが示されてい
る。ダブルワードの下方の半分は第1の2つの次元に対
するAカウント値およびBカウント値を含む。上方の3
2ビットは第3次元のアドレスを計算するのに使用され
る値を含む。図22は、大エンディアンガイドテーブル
フォーマットを示し、このフォーマットでは、上方の3
2ビットがAカウント値およびBカウント値を含み、下
方の32ビットがオフセットまたはデルタを含む。
【0281】32ビットの書き込みを用いることによ
り、エンディアンフォーマットから独立したガイドテー
ブルを作成するためのソフトウェアが適当に与えられ
る。AおよびBカウントはワード1のアドレスに現れ、
オフセット/デルタアドレスはワード0のアドレスに現
れる。ここでワード1はワード0よりも大きいアドレス
の4バイトにある。転送コントローラ80は64ビット
のアクセス中に一時に双方の32ビットワードをアクセ
スし、そのとき選択されているエンディアンモードに従
って正しい内部オペレーションをするのに必要なワード
順序を調節する。可変パッチ転送のためのガイドテーブ
ルエントリーはダブルワードに整列すべきである。すな
わちバイトアドレスの3つの最小位ビットを000とし
なければならない。
【0282】図23は、可変パッチのデルタガイドパケ
ット転送の一例を示す。可変パッチデルタガイドパケッ
ト転送に対し、ガイドテーブルエントリーの第1ワード
は、最後のパッチ開始レジスタ504内に記憶された先
のパッチの開始アドレスに加算すべき32ビットのデル
タ量を含む。パケット転送パラメータには第1パッチの
ための開始アドレスが示されている。パッチサイズは可
変であり、各ガイドテーブルエントリーの第2ワード内
に指定される。ここで、パッチWの開始アドレスを形成
するのに、パケット転送パラメータ内に特定された開始
アドレスにデルタWが加算される。Aカウントは第1次
元のバイトの数の長さを決定し、Bカウントは第2次元
のサイズ(これはライン−1の数である)を決定する。
次にパッチXの開始アドレスを発生するよう、最終パッ
チ開始レジスタ504内に記憶されたパッチW開始アド
レスにデルタXが加算される。先に固定パッチ転送の場
合に述べたように、テーブルポインタ501およびエン
トリーカウンタ503の数は、ガイドテーブル502内
の位置のトラッキングを維持する。各ガイドテーブルエ
ントリーは、64ビットすなわち8バイトであるので、
テーブルポインタ501は、8バイトよりも大きいアド
レスをポイントするようにインクリメントされる。
【0283】図24には、可変パッチオフセットガイド
パケット転送の一例が示されている。可変パッチオフセ
ットガイドパケット転送のための各ガイドテーブルエン
トリーの1ワードは、32ビットオフセット値を含む。
この32ビットのオフセット値は、各パッチの開始アド
レスを計算するよう、ベースアドレスレジスタ505内
に記憶されたベースアドレスに加算される。このベース
アドレスはパケット転送パラメータ内で特定される。パ
ッチサイズは可変であり、各ガイドテーブルエントリー
の他方の半分内に特定される。パッチWの開始アドレス
を発生するように、ベースアドレスレジスタ505内に
記憶されているベースアドレスに、アドレスWの値が加
算される。Aカウント値およびBカウント値はパッチの
サイズを決定する。パッチXのための開始アドレスを得
るよう、ベースアドレスレジスタ505内に記憶された
下のベースアドレスにオフセットXが加算される。テー
ブルポインタ501およびエントリーカウンタ503の
数は、ガイドテーブル502内の位置のトラッキングを
維持しながらテーブルポインタ501が8だけインクリ
メントされる。
【0284】ルックアップテーブルパケット転送に類似
する、値でフィルする(fill−with−valu
e)パケット転送は、ソース転送に対して指定できるに
すぎない。この値でフィルするパケット転送は実際には
ソースメモリからデータを転送するのではなく、むしろ
パケット転送パラメータ内にソースの値を特定するよう
になっている。2つの32ビットフィールド、最大位の
フィル値のワードおよび最小位のフィル値のワードが、
宛て先メモリを満たすのに使用される64ビットの値を
特定する。フィルパターンが64ビット未満であれば、
最小値のフィル値のワードおよび最大位のフィル値のワ
ードにわたって、このパターンを再現しなければならな
い。フィル値では整列オペレーションが実行されず、宛
て先ダブルワードに書き込まれるバイトはフィル値のダ
ブルワードからの対応するバイトとなっている。値でフ
ィルするパケット転送に対して、ソース開始アドレスま
たはソース次元カウントは特定されない。パケット転送
のサイズは宛て先転送パラメータによって決定される。
【0285】種々の転送フォーマットによりソース転送
と宛て先転送の多数の組み合わせが可能となっている。
これら組み合わせを特定するため、パケット転送パラメ
ータテーブル内のパラメータのフォーマットは、必要な
ソース転送および宛て先転送のタイプに応じて変わる。
パラメータテーブルの内容の説明を補助するため、図2
5〜29に種々の可能なパラメータの例が示されてい
る。
【0286】パケット転送パラメータテーブルは、オン
チップメモリすなわちマスタプロセッサ60のパラメー
タメモリ15、デジタル画像/グラフィックプロセッサ
71、72、73、74のパラメータメモリ25、3
0、35または40、もしくは、デジタル画像/グラフ
ィックプロセッサ71、72、73、74のデータメモ
リ22、23、24、27、28、29、32、33、
34、37、38または39内にあることが好ましい。
パケット転送パラメータテーブルは、整列された64バ
イトでなければならない。すなわち6つの最小位アドレ
スビットが000000となる。どのメモリがこのテー
ブルを含むかについては、制限はない。従ってマスタプ
ロセッサ60はデジタル画像/グラフィックプロセッサ
71に対応するパラメータメモリ25にあるパラメータ
テーブルを使用することができる。リクエスト中のプロ
セッサはパケット転送リクエストを送る前に自己のパラ
メータメモリ内のリンクされたリストの開始アドレス位
置に適当な開始アドレスを入れるだけである。
【0287】図25〜28に関連して、次の章はパケッ
ト転送パラメータ内の種々のフィールドについて述べ
る。PTによって表示されるパケット転送パラメータの
開始アドレスに対する各フィールドのアドレスは、フィ
ールドが有効な転送タイプと同じように示される。多く
の場合、2つの同じフィールドがあり、1つはソース転
送用であり、他方は宛て先転送用である。これらの場
合、1つのコンテクストでフィールドの記述が示され
る。あるフィールドは、転送のタイプに応じて使用しな
い。これらのケースではフィールドはプログラムしない
ままにできる。表14は可能なオプションのすべてをリ
ストアップしたものである。以下、これらのオプション
について詳細に説明する。
【0288】
【表14】
【0289】パケット転送パラメータ内の第1データワ
ードは、次のパラメータテーブルの次のパケット転送開
始アドレスである。このワードはすべてのパケット転送
タイプに存在し、パケット転送用のリンクされたリスト
上の次のエントリーの開始点に対する32ビットのポイ
ンタである。このワードは64バイトの整列したオンチ
ップアドレスをポイントするので、このアドレスの6つ
の最小位のビットは000000とならなければならな
い。パケット転送用オプションフィールド内の停止ビッ
トは、リンクされたリストを終了させるのに使用される
ので、リンクされたリストの最終エントリーは、次の特
別なアドレスエントリーを必要としない。パケット転送
が成功裏に終了するときはいつも、リクエスト中のプロ
セッサのパラメータメモリ内のリンクされたリストの開
始アドレス位置に、次のパケット転送エントリーアドレ
スワード内の値が書き込まれる。これによりポインタは
次のパケット転送に自動的に進む。このポインタは、リ
ンクされたリストに実行を休止するのに停止ビットが使
用される場合に、このポインタがリンクされたリストが
イネーブルされた際にリンクされたリスト上の次のパケ
ット転送をポイントするように、リンクされたリスト上
の最終パケットが完了した後にも、更新される。
【0290】第2ワードは、パケット転送オプションフ
ィールドとなっている。これはPT+4に位置する。こ
のパケット転送オプションフィールドは、データを転送
する方法で種々のオプションを指定するようにすべての
パケット転送タイプで使用される。以下、このパケット
転送オプションフィールドについて詳細に説明する。
【0291】次元が定められたパケット転送およびデル
タガイドパケット転送で使用される第3および第4デー
タワードは、ソースおよび宛て先開始アドレスとなって
いる。PT+8にはソース開始アドレスがあり、PT+
12には宛て先アドレスがある。これらフィールドは次
元の定められたパケット転送およびデルタガイドパケッ
ト転送で使用される。次元の定められたパケット転送に
対し、各々はソースまたは宛て先のための開始バイトア
ドレスを表示する32ビットのワードであり、デルタガ
イド転送に対し、各々はソースまたは宛て先転送のため
に第1デルタオフセット値を加算する開始アドレスを示
す。
【0292】オフセットガイドパケット転送で使用され
る第3および第4データワードは、PT+8にはソース
開始アドレスがあり、PT+12には宛て先アドレスが
ある。これらフィールドは、オフセットガイド転送モー
ドを使用する際に、ソースおよび宛て先開始アドレスの
場所をとる32ビットのオフセット値である。
【0293】第5および第6データワードは、ソースお
よび宛て先のAおよびBカウントであり、PT+16バ
イトにおける第5データワードはビット15〜0にソー
ス用のAカウントを有し、ビット31〜16にソース用
のBカウントを有する。同様に、PT+20における第
6データワードは、ビット15〜0に宛て先用Aカウン
トを有し、ビット31〜16に宛て先用Bカウントを有
する。このAカウントの16ビットフィールドは、次元
の決められた、すなわち固定パッチ転送のためのソース
または宛て先の対応する第1次元において、転送すべき
バイトの数を指定する。可変パッチガイド転送に関して
は、Aカウントフィールドは使用されない。更に値でフ
ィルされたパケット転送に関してはソースAカウントは
使用されない。Bカウントの16ビットフィールドは、
次元の定められた、または固定されたパッチ転送用のソ
ースまたは宛て先の対応する第2の次元で発生すべきス
テップ数を特定する。これはライン−1の数に等しい。
従って0の値は第2の次元をディスエーブルし、その結
果パッチ当たり1本のラインしか転送しない。ソースB
カウントは値でフィルされたパケット転送中には使用さ
れない。
【0294】次元の定められたパケット転送内のPT+
24およびPT+28に位置する第7および第8データ
ワードは、それぞれソースCカウントおよび宛て先Cカ
ウントである。これら32ビットのフィールドはソース
または宛て先の第3次元におけるパッチ工程数を特定す
る。従って0の値は第3次元をディスエーブルし、一つ
のパッチしか転送しない。フィル転送に対してはソース
Cカウントフィールドを使用されない。
【0295】デルタまたはオフセットガイドパケット転
送における第7および第8データワードはエントリーの
数である。これらの32ビットフィールドにおける値
は、それぞれソースおよび宛て先のためのガイドテーブ
ルのエントリーの数を指定する。従ってこれらフィール
ドは、転送される情報のパッチ数を表示する。値が0で
あればデータ転送は行われない。
【0296】PT+32およびPT+36には第9およ
び第10データワードがある。次元の定められた固定パ
ッチパケット転送では、これら32ビットのフィールド
はソースおよび宛て先の第2次元のピッチを特定する。
このピッチの値はソースまたは宛て先ラインの開始アド
レスに加算され、次のラインの開始アドレスを得る。対
応するBカウントフィールドにおける値は、0である
が、このフィールドはプログラムされない状態のままに
できる。
【0297】PT+40およびPT+44にはそれぞれ
第11および第12データワードがある。次元の定めら
れたパケット転送では、これら32ビットフィールドで
は、ソースまたは宛て先の第3次元のピッチを特定す
る。次のパッチの開始アドレスを得るのに、ソースまた
は宛て先パッチの開始アドレスにこのピッチの値が加算
される。対応するCカウントフィールド内の値が0であ
れば、このフィールドはプログラムされない状態のまま
にできる。
【0298】デルタまたはオフセットガイド転送におい
て、第11および第12データワードは、ガイドテーブ
ルアドレスである。これらフィールドにはそれぞれのガ
イドテーブル内の第1エントリーをポイントする整列さ
れたアドレスがロードされる。これらデータワードの値
は、ガイドテーブルからエントリーが取り出されるたび
に固定パッチ転送に対しては4だけ、または可変パッチ
転送に対しては8だけ自動インクリメントされる。これ
らガイドテーブル開始アドレスは、固定パッチパケット
転送に対しては32ビットワードアドレスに対して整列
し、可変パッチパケット転送に対しては64ビットダブ
ルワードアドレスに整列しなければならない。ガイドテ
ーブルはオンチップメモリ内になければならず、いずれ
かの条件が真でなければ、イリーガルなアドレスエラー
インタラプトが生じる。
【0299】第9および第11データワードは、値で満
たされたパケット転送において特別な用途がある。これ
ら2つの32ビットフィールドは64ビットフィルパタ
ーンを構成する。宛て先のダブルワードに書き込まれた
バイトはフィル値のダブルワード内の対応するバイトか
ら取り出される。従ってフィルパターンが64ビット未
満であれば、これら2つのデータワード内でデータ値を
繰り返さなければならない。値でフィルするパケット転
送に対し、このフィル値はソースに対してのみ可能であ
るが、他方、宛て先は次元の定めれられた、固定または
可変パッチのデルタまたはオフセットガイドにできる。
【0300】パケット転送がソーストランスペアレンシ
ーを利用する場合、第13および第14データワードは
トランスペアレンシー値をホールドする。この64ビッ
トのダブルワードはPT+48で開始する。この64ビ
ットフィールドはトランスペアレンシーを選択した場
合、比較すべき値を表示するのに使用される。パケット
転送オプションフィールドのパケットアクセスモードフ
ィールドは、このフィールド内に含まれる値のトランス
ペアレンシーサイズまたは数を表示する。宛て先ダブル
ワードにすぐに書き込まれるバイトは、トランスペアレ
ンシー値内の対応するバイトと比較され、一致が見つか
ればバイトストローブが非アクティブにドライブされ
る。ピクセルサイズが64ビット未満であれば、データ
値を再現しなければならない。このフィールドはブロッ
クの書き込みを除くすべての非トランスペアレンシー転
送に対しては用いられない。ソーストランスペアレンシ
ー値は、エンディアンモードにかかわらず、メモリに書
き込まれるのとまさに同じように、転送コントローラ8
0によって使用されるので、ワードスワップは生じな
い。これは図25に示されている。パケット転送パラメ
ータテーブル開始アドレスに続く48バイトをアドレス
指定するダブルワード書き込みとして常にこの値を書き
込むことにより、混乱を避けることができる。
【0301】パケット転送はブロック書き込みモードを
使用する場合、第3および第4データワードはカラーレ
ジスタのデータをホールドする。64ビットのカラーレ
ジスタフィールドはブロック書き込みサイクルの準備の
際にビデオランダムアクセスメモリ(VRAM)をロー
ドするのに使用される値を含む。この値は、シミュレー
トされたブロック書き込みを実行する際にも使用され
る。転送コントローラ80はエンディアンモードにかか
わらず、トランスペアレンシー値に関してこれまで述べ
たのとまったく同じ態様で書き込まれるカラーレジスタ
値を使用する。これは図29に示されている。以下、こ
のフィールドの使用について詳細に説明する。
【0302】パケット転送パラメータの最終ダブルワー
ドを形成するPT+56で開始する第15および第16
データワードは、すべての転送モードに対してそのとき
は使用されず、プログラムされない状態のままにでき
る。これらデータワードはマルチプロセッサ集積回路1
00を未来バージョンで使用できる。
【0303】図25〜29は、パケット転送パラメータ
テーブルの少数の可能なフォーマットを示す。図25
は、ソーストランスペアレンシーを有するソースおよび
宛て先用の次元の定められたパケット転送用のパラメー
タのテーブルの一例を示し、PT+48にトランスペア
レンシーワード0が記憶され、PT+52にトランスペ
アレンシーワード1が記憶される。図26は、値でフィ
ルする宛て先用の次元の定められたパケット転送用パラ
メータテーブルの一例を示す。PT+40にフィル値の
最大のビットが記憶される。PT+32にフィル値の最
小位のビットが記憶される。図27は、次元の定められ
たソースおよび固定パッチガイド宛て先パケット転送用
のパラメータテーブルの一例を示す。PT+12におけ
るデータワードは、ベースアドレスを記憶し、PT+2
8におけるデータワードはガイドテーブル内のエントリ
ー数を記憶し、PT+44におけるデータワードはガイ
ドテーブルの開始アドレスを記憶する。図28は、次元
の定められたソースおよび可変パッチガイド宛て先パケ
ットのためのパラメータテーブルの一例を示す。通常P
T+22に記憶される宛て先AおよびBカウントはプロ
グラムされないが、その理由は、これらカウントが宛て
先ガイドテーブルの一部であるからである。図29は、
次元の定められたブロック書き込みパケット転送用の一
例を示す。PT+48で開始するダブルワードは、カラ
ーレジスタワード0および1を含むことに留意された
い。
【0304】パケット転送オプションフィールドはソー
スおよび宛て先転送のためにどんなフォームの転送を用
いるかを選択し、現在のパケットがリンクされたリスト
を終了させるかどうかを決定する。更に特殊転送モー
ド、パケット転送終了時の付加的アドレス計算の実行、
次元アドレス計算の方向変化またはソース転送と宛て先
転送の反転のような多数の付加的特徴の選択を可能にす
る。図30にパケット転送オプションフィールドのフォ
ーマットが示されている。オプションフィールドにすべ
て0をロードすることにより、特殊アドレスモードを用
いないで、ソースおよび宛て先で次元の定められた転送
を利用するデフォールトパケット転送を行うことにな
る。
【0305】パケット転送オプションフィールドのビッ
ト1〜0は、宛て先更新モードフィールドを形成する。
これら2つのビットは、元のパケット転送パラメータテ
ーブル内の宛て先開始アドレスが、パケット転送が完了
した場合にどのように更新されるかを表示する。これら
ビットが0でなければ、パケット転送完了後に余分なア
ドレス計算を行う。パケット転送パラメータテーブルに
指定された元の宛て先開始アドレス上にこの値が書き込
まれる。これによりパケット転送を更に送ることが可能
となり、オフ状態から続けることが可能となる。これは
特に2つのメモリエリア間でピンポン操作するのに有効
である。
【0306】表15に、宛て先更新モードがリストアッ
プされている。下記のような宛て先反転アドレス指定ビ
ットの反転宛て先Cまたは反転宛て先Bの一方がセット
されると、加算よりも減算を行う。
【0307】
【表15】
【0308】宛て先更新モードは、使用中の最大次元の
追加ステップを実行するのに使用できるが、他の有効な
オペレーションも実行できる。転送は2次元だけにする
ことができたが、Cピッチを加えるよう、モード10も
使用できる。これにより最終パケットに対し次の2次元
パケットを位置させることができる。2つの1次元また
は2次元パッチ間で、例えばオンチップデータメモリ上
でピンポン動作するパケット転送を再送信するのにモー
ド11が特に有効である。完了時にパケット転送パラメ
ータを更新するたびに、第3次元のアドレス指定方向が
反転されるので、この方向はメモリエリア間で交互に変
わる。
【0309】この機能は、主に次元の定められた転送と
共に使用することを意図するものである。この機能は、
ガイド転送で指定できるが、注意が必要である。ガイド
転送に対しては、宛て先Cピッチは宛て先ガイドテーブ
ルポインタと置換されていることを思い出していただき
たい。
【0310】パケット転送オプションフィールドのビッ
ト6〜4は、宛て先転送モードフィールドを形成する。
これら3つのビットは宛て先アドレス指定のためにどの
フォームの転送を使用すべきかを表示する。ソース指定
モードルックアップテーブルおよび値によるフィル操作
は宛て先アドレス指定のために定義されていない(保留
されている)。
【0311】
【表16】
【0312】パケット転送オプションフィールドのビッ
ト9〜8は、ソース更新モードフィールドを形成する。
表17に、このソース更新モードが示されている。適当
なソース反転アドレス指定ビット、反転ソースCまたは
反転ソースBがセットされる場合、加算よりも減算を実
行する。
【0313】
【表17】
【0314】これら2つのビットはパケット転送が完了
した際に元のパケット転送パラメータ内のソース開始ア
ドレスをどの値で更新すべきかを表示する。これらビッ
トが0でなければパケット転送完了後に追加的ソースア
ドレス計算を実行する。次にパケット転送パラメータに
指定された元のソース開始アドレス上にこの値を書き込
む。これによりパケット転送を再び送ることができ、先
の時間に残っていた場所より続けることができる。この
ような転送は、2つのメモリエリア間でピンポン操作す
るのに特に有効である。これらモードは先に宛て先アド
レスの発生で述べたように、操作アドレスの発生でも同
じような用途がある。
【0315】パケット転送オプションフィールドのビッ
ト14〜12は、ソース転送モードフィールドを形成す
る。これら3つのビットは、ソースアドレス指定のため
どのフォームの転送を使用すべきかを表示する。表18
にこれらのコーディングを示す。
【0316】
【表18】
【0317】パケット転送オプションフィールドのビッ
ト18〜16は、パケット転送アクセスモードフィール
ドを形成する。これら3つのビットは表19に示される
ような特別なアクセスモードをエンコードするのに用い
られる。これらモードは宛て先にソースデータを書き込
む方法を変えるものであり、オンチップメモリの宛て先
に対し、モード000の通常の転送しか許可されない。
【0318】
【表19】
【0319】000のコーディングは、外部メモリに対
する通常のアクセスモードまたはページモードアクセス
を可能にする。ソースまたは宛て先上では特別なアドレ
ス指定モードは使用されない。変更をすることなく、ソ
ースから宛て先にデータが転送される。
【0320】001のコーディングは、周辺デバイス転
送モードを可能にする。周辺デバイスモードはメモリコ
ントローラとして転送コントローラ80を使用するマル
チプロセッサ集積回路100の外部のメモリを、他のデ
バイスが読み出したり書き込んだりするのを可能にす
る。デバイスのメモリの読み出しはソースをプログラム
することによって達成され、デバイスのメモリへの書き
込みは宛て先をプログラムすることによって達成され
る。いずれの場合にせよ、転送コントローラ80は通常
は転送パラメータに従って発生されたアドレスによりメ
モリアドレスおよび制御ラインをドライブするが、周辺
デバイスがデータを読み出したりドライブしたりできる
ように、データバスをハイインピーダンスモードとす
る。周辺デバイスモードは値でフィルする転送を除き、
任意の形態のソースまたは宛て先転送と共に使用でき
る。
【0321】010のコーディングはパケット転送がV
RAMブロック書き込みを使用できるようにする。これ
により、転送コントローラ80はVRAMカラーレジス
タにロードし、VRAMブロック書き込みモードを使っ
て外部メモリへの宛て先書き込みを実行する。このモー
ドでは、VRAMカラーレジスタデータがVRAM内の
どの位置に書き込まれるかを指定する、ブロック書き込
みアドレスマスクビットをソースデータが表示する。こ
れらビットは通常のアドレス指定を用いてソースからフ
ェッチされ、その後、ブロック書き込みモードを用いて
宛て先VRAMに書き込まれる。VRAMカラーレジス
タにロードされる値は、パケット転送パラメータのカラ
ーレジスタ値として指定される。
【0322】ブロック書き込みオペレーションはオフチ
ップの宛て先だけにサポートされている。オンチップ宛
て先アドレスへのブロック書き込みの試みは、エラー条
件によりパケット転送を一時中断させる。
【0323】011のコーディングはシリアルレジスタ
転送モードを可能にする。一般に、VRAMのバルク初
期化を行うために、シリアルレジスタ転送モードが使用
される。VRAMの行をVRAMシリアルシフトレジス
タにコピーするのに、ソースアドレスが使用される。次
にシフトレジスタを多数のVRAMメモリの行にコピー
するのに、宛て先アドレスが使用される。通常のオペレ
ーションはソースへのカウントに1バイトをロードし、
宛て先に1のAカウントおよびn−1(ここでnは書き
込みを行う行の数)のBカウントをロードすることであ
る。このモードでは、データバスまたはクロスバー50
上でのデータ転送は行われず、VRAMによりすべての
データ転送が行われることに留意されたい。すべてのソ
ースアクセスおよび宛て先アクセスは非ページモードと
なる。シリアルレジスタ転送オペレーションは、オフチ
ップのソースおよび宛て先だけにサポートされている。
【0324】1XXフォームのコーディングはトランス
ペアレンシーを可能にする。通常、ソースおよび宛て先
の次元の定められた転送またはガイド転送が実行され
る。しかしながら宛て先データを書き込む前に、このデ
ータはパケット転送パラメータ内に示されたトランスペ
アレンシー値を比較される。このトランスペアレンシー
の比較は、トランスペアレンシーおよびバイト書き込み
回路353で行われる。パケットアクセスモードの2つ
の最小位のビットはトランスペアレンシーデータのサイ
ズを表示する。従って、1回の64ビットの比較、2回
の32ビットの比較、4回の16ビットの比較または8
回の8ビットの比較がなされる。比較のいずれかが真で
あれば、トランスペアレンシーおよびバイト書き込み回
路353は。宛て先バイトが書き込まれないように対応
するバイトストローブをディスエーブルする。オンチッ
プソースまたは宛て先アドレスによるトランスペアレン
シーの試みにより、パケット転送はエラー条件で一時中
断される。
【0325】パケット転送オプションフィールドのビッ
ト19は、交換用ソースおよび宛て先パラメータビット
である。ビット19のセットにより、ソースおよび宛て
先パラメータをマチュアルでスワップすることなく、パ
ケット転送方向を反転できる。これは元の位置にデータ
を戻す際に有効である。交換用ビットがセットされる
と、転送コントローラ80はパケット転送パラメータを
ロードする際に、すべてのソースおよび宛て先値の開始
アドレス、ピッチ、カウント、ガイドテーブルポインタ
およびフィル値のすべてをスワップする。表20は、こ
のビットがセットされる場合の32ビットのスワップを
示す。PTはパケット転送パラメータテーブルの次のエ
ントリーアドレスのアドレスを表示する。
【0326】
【表20】
【0327】PTにおける次のエントリーアドレスデー
タおよびPT+04におけるパケット転送オプションフ
ィールドは、これらの値がソースまたは宛て先に関連し
ていないので、それらの先の位置に止まることに留意さ
れたい。更にトランスペアレンシーデータまたはカラー
レジスタデータを記憶するPT+48およびPT+52
は、スワップされないことにも留意されたい。これによ
り、64ビットのトランスペアレンシーまたはカラーレ
ジスタパラメータはその値を維持できる。転送コントロ
ーラ80はソースおよび宛て先に関連したパラメータワ
ードのスワップのほかに、パケット転送オプションフィ
ールド内でソースおよび宛て先に関連したビットもスワ
ップする。これについては表21に示されている。
【0328】
【表21】
【0329】スワップのいずれかの結果、機能がサポー
トされなくなると、パケット転送はエラー条件により一
時中断する。パケット転送パラメータがロードされると
きはいつも、ソースパラメータと宛て先パラメータとの
交換が実行される。パケット転送が一時中断されている
場合、そのときのパラメータはリクエスト中のプロセッ
サのパラメータメモリにセーブされる前に、元の位置へ
スワップし戻される。一時中断されたパケット転送がレ
ストアされる場合、パラメータは転送コントローラ80
によりロードされる際に再びスワップされる。
【0330】パケット転送オプションフィールド内で更
新モードのうちの一つが指定される場合、パケット転送
の完了時に通常のオペレーションが行われる。例えばソ
ース更新オペレーションが選択される場合、元のパケッ
ト転送パラメータ内ソース開始アドレスは、パケット転
送中に宛て先開始アドレスとして実際に使用されても更
新されることになる。同様に、更新モードとしてトグル
反転ソースCアドレス指定ビットを指定すると、元のパ
ケット転送オプションフィールドのビット22がトグリ
ングされ、これにより実際にパケット転送が再送信され
た場合、宛て先Cのアドレス指定が反転される。
【0331】上記例が示すようにXビットを使用する際
には注意が必要である。例えば次元の定められた宛て先
パケット転送に対する値で満たされたソースのために指
定する場合、値によるフィルオペレーションは宛て先オ
ペレーションとして指定できないので、パケット転送は
エラーにより一時中断される。エラーが発生しない場合
でも、宛て先開始アドレスおよびカウントには、一般に
プログラムされないソース値がロードされる。同様に、
フィル値のワードには宛て先ピッチがロードされる。こ
の結果、極めて無意味なパケット転送となる。
【0332】パケット転送オプションのビット21は反
転ソースBアドレス指定ビットである。このビットを1
にセットすると、ソースの第2の次元が後方にアドレス
指定される。加算よりもむしろ先のライン開始アドレス
からBピッチが減算される。このビットが0であれば、
通常はパケット転送ソースアドレス指定が行われる。
【0333】パケット転送オプションフィールドのビッ
ト22は、反転ソースCアドレス指定ビットである。こ
のビットを1にセットすると、ソースの第3次元が後方
にアドレス指定される。加算よりもむしろ先のパッチ開
始アドレスからCピッチが減算される。このビットが0
であれば、通常はパケット転送ソースアドレス指定が行
われる。このビットはガイド転送に対しては意味がな
く、ガイドテーブルを介してCのアドレス指定を特定す
る。
【0334】パケットテーブルオプションフィールドの
ビット23は、反転ソースAアドレス指定ビットであ
る。このビットを1にセットすると、ソースおよび宛て
先の第1次元は後方にアドレス指定される。ダブルワー
ドアドレスはインクリメントされる代わりにデクリメン
トされる。このことは、Bピッチが加算(または減算)
される値は、第1の次元における最も大きなアドレスで
あることを意味している。ダブルワード内でのバイトに
よるアドレス指定は反転されず単なるダブルワードのア
ドレス指定であることに留意されたい。
【0335】パケットテーブルオプションフィールドの
ビット24は、反転宛て先Bの宛て先指定ビットであ
る。このビットを1にセットすると、宛て先の第2の次
元が後方にアドレス指定される。Bピッチは加算される
よりもむしろ先のライン開始アドレスから減算される。
このビットが0であれば、通常はパケット転送ソースア
ドレス指定が行われる。
【0336】ビット25は反転宛て先Cのアドレス指定
ビットである。このビットを1にセットすると、宛て先
の第3の次元が後方にアドレス指定される。Cピッチは
加算されるよりもむしろ先のパッチ開始アドレスから減
算される。このビットが0であれば、通常はパケット転
送ソースアドレス指定が行われる。このビットはガイド
転送に対しては意味がなく、ガイドテーブルを介してC
アドレス指定を特定する。
【0337】パケットテーブルオプションフィールドの
ビット28は、ビットを終了した際のインタラプトであ
る。このビットを1にセットすると、リンクされたリス
ト上のこのエントリーを終了した後にすぐに、パケット
転送を開始しているプロセッサに通常のインタラプトが
送られる。リンクされたリストは更にエントリーを含む
ことができる。これによりリンクされたリスト内の特定
のポイントに達したときに、リクエスト中のプロセッサ
にフラグを立てることができる。このビットが0であれ
ば、リンクされたリスト内の対応するパケットエントリ
ーが終了した際には、プロセッサにはインタラプトは送
られない。従って、このビットセットを有するエントリ
ーが生じて完了するか、またはリンクされたリストの終
わりにあるパケット転送が完了するかのいずれかまで
に、インタラプトが発生されることはない。しかしなが
らエラーがある時間に生じた場合、転送コントローラ8
0はリクエスト中のプロセッサに即座にエラーインタラ
プトを送る。
【0338】パケット転送オプションフィールドのビッ
ト30〜29は、パケット転送ステータスフィールドを
形成する。パケット転送ステータスフィールドはパケッ
ト転送リクエストのステートを表している。プロセッサ
がリクエストを送る際には、これらビットは常に00と
セットされていなければならない。リンクされたリスト
内のパケット転送が一時中断状態の場合、転送コントロ
ーラ80は、これが中断中のパケットパラメータエリア
にセーブしているパケット転送オプションフィールド内
の適当なパケット転送ステータスビットをセットする。
中断されたパケット転送がフレッシュなパケット転送よ
りも多くのパケットを含んでおり、従って異なる態様で
セーブされ、レストアされるので、このような操作が必
要である。転送コントローラ80がパケット転送パラメ
ータをロード中に、これらビットのいずれかが1とみな
されると、転送コントローラはパケット転送を一時中断
し、よって余分なパラメータのすべてをレストアする。
このフィールドは、表22にリストされているようにコ
ード化される。
【0339】
【表22】
【0340】次の条件のうちの1つが生じたためにパケ
ット転送が一時中断されると、転送コントローラ80は
これらビットに01を書き込む。すなわち転送コントロ
ーラ80により、より高い優先度のパケット転送リクエ
ストが受信される場合、パケット転送が多くタイムアウ
トしてしまった場合、パケット転送をリクエストしたプ
ロセッサがパケット転送の一時中断を求めた場合、また
はエラー条件が生じた場合、ビット30は実際にフォー
ルトが生じたことによりパケット転送を一時中断したこ
とを表示する。ビット29は、フォールトがソースにあ
るのか宛て先にあるのかを表示する。フォールト条件を
解決するため、この情報はマスタプロセッサ60が必要
とする。このことは、フォールトの生じたパケット転送
のパラメータを再ロードする際の転送コントローラ80
には関係がない。その理由は、一時中断プロセスとレス
トアプロセスとはすべてのタイプの一時中断パケット転
送に対して同じであるからである。
【0341】交換用ソースおよび宛て先パラメータビッ
ト(ビット19)が中断されたパケット転送オプション
フィールド内で1であれば、フォールトの生じたパケッ
ト転送に対するビット29の意味は反転する。従って1
0が宛て先上でのフォールトを示し、11がソース上で
のフォールトを示す。従ってマスタプロセッサ60のソ
フトウェアはフォールトの生じたアドレスーを決定する
際に、ビット29と19の双方を検査しなければならな
い。
【0342】転送コントローラ80はパケット転送中に
フォールトが生じた場合に数種の措置をとる。転送コン
トローラ80は、ビット29と30を適当にセットし、
この適当なビットをFLTSTSレジスタ内にセットす
る。転送コントローラ80がマスタプロセッサ60にフ
ォールトインタラプトを発生する。デジタル画像/グラ
フィックプロセッサ71、72、73または74のうち
の一つがパケット転送を発生する場合、このプロセッサ
はフォールトが生じていることについて認識していな
い。マスタプロセッサ60は、このフォールト条件をク
リアし、FLTSTSレジスタ内のフォールトフラグを
クリアしなければならない。FLTSTSレジスタ内の
対応するフォールトフラグをクリアする際に転送コント
ローラ80はパケット転送を自動的に再送信する。
【0343】パケット転送オプションフィールドのビッ
ト31はストップビットである。このビットはリンクさ
れたリストの終了部をマークするのに使用されている。
このビットが1であるパケット転送に会うと、パケット
転送は完了され、リンクされたリストが終了される。終
了前にリクエスト中のプロセッサのパラメータメモリ内
のリンクされたリストの開始アドレス位置に、次のエン
トリーアドレスフィールドがコピーされる。従ってリン
クされたリストが再イネーブル化されると、リンクされ
たリスト内の次のエントリーで実行が開始する。これに
より、ピンポンオペレーションのような繰り返しオペレ
ーションに特に有効な円形状のリンクされたリストが形
成できる。ストップビットは所望の位置でリンクされた
リストをブレークするのにも使用できる。
【0344】転送コントローラ80がパラメータテーブ
ルからのパケット転送パラメータを一旦読み出すと、デ
ータの転送を開始する準備が完了する。これを行うた
め、転送コントローラ80はクロスバーアクセスまたは
外部メモリアクセスのいずれかまたは双方を発生しなけ
ればならない。ソースから宛て先へのデータの基本的フ
ローには4つの可能性がある。すなわちオンチップから
オンチップへ、オンチップからオフチップへ、オフチッ
プからオンチップへ、更にオフチップからオフチップへ
のフローがある。最初の3つは通常取り扱われている
が、最後のケースは特別なケースである。
【0345】ソースマシン320は、正常なパケットデ
ータ転送フロー中に、転送パラメータに基づきソースア
ドレスを発生し、これを用いて適当なオンチップまたは
オフチップメモリからデータをフェッチする。クロスバ
ーまたは外部メモリバスからデータが受け取られると、
必要なバイトは抽出され、ソース整列ロジック332に
よって整列され、次にパケット適当なFIFOバッファ
312に入れられる。これと同時に宛て先マシン340
は宛て先メモリのためのアドレスも発生する。パケット
転送FIFOバッファ311が一旦次の宛て先メモリア
クセスに必要なバイト数を含むと、宛て先マシン340
は必要なクロスバーまたは外部メモリサイクルを発生す
る。
【0346】パケット転送FIFOバッファ311は、
データフローを制御し、ソースマシン320と宛て先マ
シン340との同期を維持するように働く。あるとき
に、パケット転送FIFOバッファ311が次の宛て先
アクセスのための十分なソースバイトを含んでいない場
合、データが利用可能となるまで宛て先マシン340は
停止する。これと同じように、パケット転送FIFOバ
ッファ311がフル状態となれば、宛て先マシン340
が次のソースアクセスを完了させるのに十分なバイトを
引き出すまで停止する。これにより、ソース転送が宛て
先転送をオーバーランさせることが防止される。特殊な
パケット転送アクセスモードに対しては、このデータフ
ローは多少変えることができる。
【0347】クロスバー50と外部メモリインターフェ
ースは独立しているので、ソース転送は外部バス上で行
われ、クロスバー上で宛て先転送を行うことができ、ま
た、パラレル状態で外部バス上で宛て先転送を行い、ク
ロスバー上でソース転送を行うこともできる。オンチッ
プからオンチップへの転送に対してはソースと宛て先と
は必要に応じてクロスバーインターフェースを共用し、
サイクルをインターリーブすることになる。
【0348】キャッシュサービスリクエスト、ダイレク
ト外部アクセスリクエスト、フレームコントローラ90
のリクエスト、緊急リフレッシュおよびホストリクエス
トは、パケット転送を一時中断させることはない。これ
らリクエストがパケット転送よりも優先度が高い場合に
のみ、ソースマシン320および宛て先マシン340の
一方または双方を停止できる。フレームコントローラ9
0および緊急リフレッシュサイクルは、外部メモリイン
ターフェースだけを使用する。従ってパケット転送クロ
スバーアクセスは続いて行うことができる。ソースマシ
ン320または宛て先マシン340のいずれかが、外部
メモリインターフェースを使用している場合、パケット
転送FIFOバッファ311は、最終的にフル状態また
は空状態となる。従ってクロスバーを用いるコントロー
ラは外部メモリインターフェースが再び利用できるまで
停止していなければならない。オンチップからオンチッ
プへの転送である場合、ソースマシン320および宛て
先マシン340の双方は、障害を受けない状態を続ける
ことができる。キャッシュおよびダイレクト外部アクセ
スサービスは、クロスバーと外部インターフェースの双
方を使用するので、これらは一般に、必要とするサイク
ル数の間でパケット転送を停止する。
【0349】オンチップソースからオフチップの宛て先
へのパケット転送は、他の3つのパケット転送の例と異
なって取り扱われる。DRAMまたはVRAM上でペー
ジモードの利点を活用するため、転送コントローラ80
はオフチップソースからオンチップへの列アクセスのペ
ージモードバーストを実行し、次にオンチップからオフ
チップの宛て先への別のページモードバーストを実行す
る。これを行うにはオンチップバッファを使用しなけれ
ばならない。各プロセッサは図15に示すように、この
目的のために保留された対応するパラメータメモリ内の
128バイトのエリアを有する。図15に示すように、
マスタプロセッサ60によってリクエストされるオフチ
ップからオフチップへのパケット転送は、アドレスの1
6進数01010100から16進数0101017F
を使用する。デジタル画像/グラフィックプロセッサ7
1、72、73、74のうちの一つによってリクエスト
されるオフチップからオフチップへのパケット転送が、
アドレスの16進数0100#100から16進数01
00#17F(ここで#は表3にリストされているよう
なデジタル画像/グラフィックプロセッサの番号に対応
する)を利用する。このパラメータメモリバッファの内
外へのデータの転送は、転送コントローラ80のハード
ウェアにより処理され、ユーザーに対しトランスペアレ
ントである。
【0350】パケット転送パラメータの組み合わせは、
完了するのに極めて長い時間を必要とする、極めて大き
な転送の指定を可能とする。更により高い優先度のパケ
ット転送リクエストが、パケット転送をインタラプトし
続け、パラメータのロードに長い時間がかかるの防止す
る。このような状況のいずれかの発生を防止するため、
転送コントローラ80は図31に示されている2つの2
4ビットレジスタのパケット転送最小レジスタPTMI
N511とパケット転送最大レジスタPTMAX512
を含むタイマーを有する。これらレジスタはパケット転
送の最小長さと最大長さとを指定する。パケット転送カ
ウンタPTCOUNT513は、パケット転送を実行す
るクロックサイクル数を表示する。
【0351】パケット転送最小レジスタPTMIN51
1は、より高い優先度のパケット転送リクエストによっ
て中断できる前に、パケット転送が実行しなければなら
ないクロックサイクルの最小数を示す。パラメータがロ
ードされた後にパケット転送が開始すると、タイマーシ
ーケンサ515はパケット転送最小レジスタPTMIN
511に記憶されていた値を、パケット転送カウンタP
TCOUNT513にロードする。パケット転送カウン
タPTCOUNT513は、パケット転送が転送コント
ローラ80によってアクティブにサービスされるクロッ
クサイクルごとに、1だけデクリメントする。パケット
転送カウンタPTCOUNT513は、パケット転送中
に生じ得るキャッシュサービスサイクル、フレームコン
トローラ90サイクル、ホストサイクルまたはリフレッ
シュサイクル中にはデクリメントしないが、アクティブ
なパケット転送サービス中に生じる再試行または待機ス
テート中にデクリメントする。しかしながら、クロスバ
ーのパケット転送アクセスがまだ行われている場合、外
部バス上でのフレームコントローラ90、ホストまたは
リフレッシュ活動中にデクリメントされる。パケット転
送はPTCOUNTが0に達したことを0検出器514
がタイマーシーケンサ515に信号を送るまで、優先度
の高いパケット転送リクエストによってインターラプト
することはできない。またパケット転送はエラーまたは
フォールト条件によって一時中断することもできる。パ
ケット転送最小レジスタPTMIN511には、リセッ
ト時に16進数10000(65,536サイクル)が
ロードされる。
【0352】パケット転送最小レジスタPTMIN51
1の重要な用途は、すでに中断したパケット転送のパラ
メータを別のメモリエリアに転送するための停止不能な
パケット転送を行うことである。別の一時中断によりデ
ータを転送するパラメータメモリエリアにオーバーライ
トされるので、パケット転送最小レジスタPTMIN5
11はパケット転送を完了できるように保証するために
使用される。かかる転送はフォールト状態にならないこ
とが重要である。その理由は、この状態になるとパラメ
ータメモリエリアもオーバーライトされるからである。
このような特徴により、最小時間前により高い優先度の
メモリアクセスがパケット転送をアボートすることが防
止され、従って最小の数のデータ転送が行われる。
【0353】パケット転送最大レジスタPTMAX51
2は、1つのパケット転送によるデータの転送の独占を
防止するのに使用される。PTMIN時間が経過し、パ
ケット転送カウンタPTCOUNT513が0検出器5
14に検出されるように、0にデクリメントされると、
タイマーシーケンサ515はパケット転送最大レジスタ
PTMAX512内に記憶されていた値をパケット転送
カウンタPTCOUNT513にロードする。これによ
り、タイムアウトするまでに転送を進めることができる
残りの時間が決まる。従ってインタラプトされないパケ
ット転送のための最大期間は、PTMIN+PTMAX
クロックサイクルとなる。パケット転送カウンタPTC
OUNT513は、リフレッシュのような非パケット転
送サイクルを除く、パケット転送が連続的にアクティブ
となるサイクルごとにデクリメントされる。パケット転
送完了前にパケット転送カウンタPTCOUNT513
内の値が0に達したことを、0検出器514が検出する
と、パケット転送はタイムアウトしたものと見なされ
る。タイマーシーケンサ515は、パケット転送を一時
中断し、転送コントローラ80はラウンドロビン状に同
じ優先度の次のリクエストに移る。同じ優先度の他のリ
クエストがペンディング中となっていなければ、このよ
うな同じ優先度のリクエストまたは優先度のより高いリ
クエストが生じるまで、または転送が完了するまで、0
のPTCOUNTと共に転送を続行できる。パケット転
送最小レジスタPTMIN511内に指定されたサイク
ル数が経過した後に、優先度のより高いパケット転送リ
クエストが受信されると、PTMAXに達したか否かに
係わらず、アクティブなパケット転送が一時中断され
る。パケット転送最大レジスタPTMAX512にはリ
セットで16進数10000(65,536サイクル)
がロードされる。
【0354】パケット転送が一時中断状態となると、リ
ンクされたリスト全体も一時中断される。ラウンドロビ
ントークンはリンクされたリスト内の次のパケット転送
でなくて、ペンディング中のリクエストと共に次のプロ
セッサに進む。パケット転送がタイムアウトすると、一
時中断された転送のステートはリクエスト中のプロセッ
サのパラメータメモリにセーブされる。ラウンドロビン
の優先度がそのプロセッサに戻されると、転送コントロ
ーラ80は連続のためのこのリクエストを自動的に再送
信する。一時中断されたパケット転送が再開されるとき
はいつも、フル状態のPTMINおよびPTMAX値が
有効となる。
【0355】好ましい実施例では、パケット転送最小レ
ジスタPTMIN511およびパケット転送最大レジス
タPTMAX512は、24ビットしか含まない。従っ
てタイムアウトすることなく、パケット転送サービスが
続くことのできる最大時間は50MHzの目標作動周波
数で約0.67秒である。
【0356】パケット転送用のリンクされたリストは、
次のように転送コントローラ80によって管理される。
緊急優先度を除くパケット転送中にリフレッシュ、フレ
ームコントローラ90、ホストインターフェースまたは
キャッシュサービスリクエストが受信される場合、パケ
ット転送パラメータのステートは転送コントローラ80
の内部レジスタに保持され、必要であればソースおよび
/または宛て先転送が停止される。優先度のより高いリ
クエストのサービスが完了すると、パケット転送が開始
される。
【0357】優先度のより高いパケット転送リクエス
ト、タイムアウト、リクエスト中のプロセッサからの一
時中断リクエスト、フォールトまたはエラーによってパ
ケット転送がインタラプトされると、パケット転送が一
時中断される。リクエスト中のプロセッサのパラメータ
メモリ内のリンクされたリストの開始アドレスが、セー
ブされたパケット転送パラメータをポイントするように
変更される。このインタラプトが優先度のより高いパケ
ット転送によるものである場合、ラウンドロビントーク
ンはインタラプトされたパケット転送と共に留まるの
で、優先度のより低いリクエストが再開されると、その
サービスが再開される。パケット転送パラメータのロー
ディング中に優先度のより高いリクエストが生じると、
ローディングが停止される。一時中断は行われない。優
先度のより高いパケット転送が完了すると、元のパラメ
ータリストからパケット転送パラメータがロードされ
る。パケット転送がタイムアウト、フォールト、エラー
または一時中断リクエストにより一時中断されている場
合、優先度決定チェーンの終了部にインタラプトされた
パケット転送を送るように、ラウンドロビントークンが
進められる。
【0358】パケット転送が完了し、パケット転送オプ
ションフィールドのインタラプトビットが1となると、
転送コントローラ80はリクエスト中のプロセッサにパ
ケットの終了部のインタラプト信号を発生する。リンク
されたリスト内に1のパケット転送オプションフィール
ドの停止ビットを有する最終パケット転送が完了する
と、転送コントローラ80がリクエスト中のプロセッサ
にパケットの終了部インタラプト信号を発生する。パケ
ット転送が完了すると、パケット転送のパケット転送オ
プションフィールドストップビットがセットされていて
も、リクエスト中のプロセッサのパラメータメモリ内の
リンクされたリストの開始アドレス位置に、パケット転
送パラメータからの次のアドレスフィールドが書き込ま
れる。
【0359】パケット転送パラメータがロードされる
と、転送コントローラ80はパケット転送オプションフ
ィールドのパケット転送ステータスビットをチェックす
る。パケット転送が一時中断されたことをこれらビット
が表示する場合、一時中断された転送を付加的ステート
情報がロードされる。これらについては後に更に説明す
る。
【0360】パケット転送がエラー状態を経験すると、
転送コントローラ80は即座にデータの転送を停止し、
一時中断を実行する。転送コントローラ80はリクエス
ト中のプロセッサのPTERRORフラグをセットす
る。転送コントローラ80はリンクされたリストが終了
したことを表示するため、リクエスト中のプロセッサの
COMNレジスタ120のQビットもセットする。リク
エスト中のプロセッサは、セーブされたパラメータから
のエラーの原因を決定するようにプログラムすることが
できる。
【0361】パケット転送中に多数の条件のいずれかが
エラーを生じさせる。試みられたVRAMアクセスモー
ド、例えばオンチップメモリ内のソースまたは宛て先に
よるブロック書き込み宛て先転送またはシリアルレジス
タ転送がエラーを生じさせる。トランスペアレンシーを
利用して試みられるオンチップ宛て先アクセスもエラー
を生じさせる。値でフィルされた場合を除くソース転
送、シフトレジスタ転送または周辺デバイス転送の長さ
よりも、パケット転送リクエスト宛て先転送のバイトの
総数の長さが長くなると、エラーが生じる。ルックアッ
プテーブルの宛て先オペレーションを試みる際にエラー
が生じる。このようなエラーは、交換用ソースおよび宛
て先パラメータのオペレーションから生じる。リンクさ
れたリストの開始アドレスまたはリンクされたリストの
次のエントリーがアドレスのオフチップをポイントする
際にエラーが生じる。パケット転送パラメータテーブル
およびリンクされたリストの開始アドレスが64バイト
の境界に整列していないときにも、エラーが生じる。ソ
ースまたは宛て先ガイドテーブルポインタがオフチップ
メモリをポイントしたり、これらが正しく整列されてい
ないときに試みられるパケットリクエストの際にエラー
が生じる。実際のエラー状態を表示するようにステータ
スビットはセーブされず、このエラー状態は一時中断パ
ラメータのステートから推定しなければならない。
【0362】リンクされたリストの開始アドレスまたは
リンクされたリストのアドレスのオフチップの次のエン
トリー、整列状態のパケット転送パラメータテーブルま
たはオフチップメモリへのガイドテーブルポインタによ
って生じたエラーは、パケット転送パラメータをリクエ
スト中のプロセッサのパラメータメモリの一時中断エリ
アにセーブしない。これはデータを転送する前にパケッ
ト転送がアボートし、実際に開始することがないからで
ある。従って、エラーの原因を診断しようとすると、リ
ンクされたリストのアドレスの有効性をチェックして、
一時中断されたパラメータが有効であることを保証しな
ければならない。
【0363】転送コントローラ80は多くの条件下でパ
ケット転送を一時中断する。優先度のより高いパケット
転送リクエストを受けると、現在のパケット転送のため
にPTMINに指定されていたサイクル数がなくなる場
合に、パケット転送を一時中断する。転送コントローラ
80はサイクル数がPTMIN+PTMAXを越え、タ
イムアウトし、別のプロセッサからの同じ優先度のパケ
ット転送リクエストがペンディング中である場合、パケ
ット転送を一時中断する。転送コントローラ80がリク
エスト中のプロセッサがこのコントローラにCOMMレ
ジスタ120のSビットにより一時中断することを求め
る場合、パケット転送を一時中断する。ソースアドレス
指定または宛て先アドレス指定中にメモリフォールトが
生じる場合、転送コントローラ80はパケット転送を一
時中断する。エラー状態が検出される場合、転送コント
ローラ80はパケット転送を一時中断する。また、外部
メモリアクセス中に再試行が行われ、別のプロセッサか
らの同じ優先度のパケット転送リクエストが待機中であ
り、現在のパケット転送のためのPTMIN内に指定さ
れたサイクル数がなくなる場合、転送コントローラ80
はパケット転送を一時中断する。
【0364】これらケースの各々における一時中断機構
は同一である。転送コントローラ80は現在のパケット
転送パラメータおよび転送コントローラ80の内部ステ
ートをセーブする。この情報により、パケット転送を将
来続行できる。これらパラメータはリクエスト中のプロ
セッサのパラメータメモリの一時中断エリアにセーブさ
れる。図15に示すように、マスタプロセッサ60がパ
ケット転送をリクエストした場合、このエリアは16進
数01010000から16進数0101007Fとな
る。デジタル画像/グラフィックプロセッサ71、7
2、73、74の一つにリクエストされたパケット転送
のための一時中断されたパケットパラメータエリアは、
アドレスの16進数0101#000から16進数01
00#07F(ここで#は表3にリストしたようなデジ
タル画像/グラフィックプロセッサ番号に対応する)を
使用する。図32および33には、これらパラメータの
ためのフォーマットが示されている。図32における%
のマークのついたダブるワードは、現在のエンディアン
のためには調節されないことに留意されたい。
【0365】一時中断条件が生じ、ペンディング中の外
部メモリ行アクセスが完了した直後に、一時中断が開始
する。リクエスト中のプロセッサのパラメータメモリ上
の外部間バッファは空ではないが、パケット転送FIF
Oバッファ311の現在ステートがセーブされる。この
方法により、原因にかかわらず、パケット転送は一貫し
て中断できる。パケット転送FIFOバッファ311の
空状態は生じないので、この一時中断は高速となるよう
にも保証されている。従ってパケット転送FIFOバッ
ファ311を空にするのに潜在的に低速のパケット転送
を待つことなく、緊急優先度のパケット転送リクエスト
を急速にサービスできる。
【0366】パラメータメモリが一時中断の原因となっ
ている場合、より高い優先度の転送コントローラ80の
クロスバーの優先レベルで実行される。従って一時中断
が完了するまでデジタル画像/グラフィックプロセッサ
71、72、73、74またはマスタプロセッサ60は
一時的な競合を経験することがある。一時中断がタイム
アウト、フォールト、エラーまたはリクエスト中のプロ
セッサからの一時中断リクエストによるものであるとき
は、パケット転送の元の転送コントローラ80のクロス
バーの優先度で、この一時中断が実行される。
【0367】新しいアドレスをポイントするように、リ
ンクされたリストの開始アドレスポインタが変えられる
ことを条件に、一時中断されたパケット転送パラメータ
を他の場所でコピーし、その新しい位置から再送信する
ことができる。パケット転送オプションフィールドのパ
ケット転送ステータスピットは、パケット転送が一時中
断されたことを表示するので、一時中断されたパラメー
タの全組は、その位置がどこであれ、再送信時にロード
される。一時中断されたパラメータの新しい開始アドレ
スは、偶数の128バイトの境界上で整列していなけれ
ばならず、従って7つの最小位アドレスビットは、再送
信すぺき一時中断されているパケット転送に対し000
0000とならなければならない。
【0368】パケット転送一時中断エリアにセーブされ
た最初の8つの64ビットダブルワードは、通常のパケ
ット転送パラメータを示す。これらは、少数の例外を除
き、ユーザーによってプログラムされたパラメータと同
じである。最初の32ビットワードは、リンクされたリ
スト上の次のエントリーのアドレスでなく、一時中断さ
れたパケット転送の元のエントリーアドレスを含む。C
カウントフィールドは、次元の定められた転送のための
現在のCカウントを含む。ガイド転送に対し、Cカウン
トフィールドはガイドカウントとガイドテーブルポイン
タフィールドを含み、ガイドテーブルポインタフィール
ドはガイドテーブルポインタの現在位置を含む。更にパ
ケット転送オプションフィールドはパラメータが一時中
断されたパケット転送を表示することを示すように変え
られた、そのパケット転送ステータスフィールドを有す
る。
【0369】一時中断エリアは通常のユーザーがプログ
ラムしたパケット転送パラメータの他に8個の保留され
た内部ステートのダブルワードも含む。これらワードは
一時中断されたパケット転送が再スタートされる際に自
動的にロードされるフィールドである。これらは一時中
断した際のパケット転送の次元内ステートに関する情報
を含む。これらの値は、これらが再送信される際に残さ
れる場所で正確に一時中断されたパケット転送を正しく
開始できるようにセーブされる。16進数040で終了
するアドレスにおけるデータワードは、現在のソースA
およびBのカウントを記憶する。これらはソースマシン
320のACURRENTおよびBCURRENTから
の16ビットの値である。Bのカウントはビット31〜
16に記憶され、Aのカウントはビット15〜0に記憶
される。16進数044で終了するアドレスにおけるデ
ータワードは、現在の宛て先AおよびBのカウントを記
憶する。これらは宛て先マシン340のAカウントおよ
びBカウントレジスタからの16ビットの値である。B
のカウントはビット31〜16に記憶され、Aのカウン
トはビット15〜0に記憶される。16進数048で終
了するアドレスにおけるデータワードは、現在のソース
A開始アドレスまたは現在のガイドテーブルアドレスで
ある。一時中断されたパケットサービスバラメータ内の
対応するPビットは、どのデータがここに記憶されたか
を表示する。元のBのカウントが0に達するまでガイド
テーブルのフェッチは行われないので、ガイドパケット
転送でもここにソースAの開始アドレスを記憶できるこ
とに留意されたい。16進数04Cで終了するアドレス
におけるデータワードは、現在の宛て先Aの開始アドレ
スまたは現在のガイドテーブルフェッチ値であり、その
識別は一時中断されたパケットサービスパラメータの対
応するPビットによって決定される。16進数050お
よび056で終了するアドレスにおけるデータワード
は、現在の宛て先Bの開始アドレスまたは対応するガイ
ドテーブルフェッチ値である。
【0370】16進数058で終了するアドレスで開始
する16ビットのダブルワードは、一時中断されたパケ
ットサービスパラメータを記憶する。一時中断されたパ
ケットサービスパラメータのフォーマットは図32およ
び33に示されている。上部データワードのビット31
〜30はPビットである。ビット31における1は、ガ
イドテーブルからフェッチされたソースマシン320の
ASTARTレジスタおよびBSTARTレジスタの値
を記憶する。これと異なり、これらレジスタは次元の定
められた転送からの値を記憶する。同様にビット30に
おける1は、一時中断されたパケット転送パラメータが
ガイドテーブルからフェッチされたソースマシン320
のASTARTレジスタおよびBSTARTレジスタ値
を記憶し、0はこれら値が次元の定められた転送からの
ものであることを表示する。これらビットは一時中断さ
れたパケット転送がガイドソースまたは宛て先アドレス
指定を含んでいたことを、パケット転送オプションフィ
ールドが表示している場合に意味があるにすぎない。こ
れとは異なり、データは次元の定められた転送からのも
のであると見なされる。
【0371】Eビット(上方データワードのビット2
9)は、一時中断されたパケット転送がオフチップから
オフチップへのパケット転送であることを表示する。か
かるオフチップからオフチップへのパケット転送は、リ
クエスト中のプロセッサのパラメータメモリ内のバッフ
ァを利用する。このEビットが1であれば、一時中断さ
れたパケット転送はオフチップからオフチップへのパケ
ット転送である。このEビットが0であれば、一時中断
されたパケット転送は他の3つのタイプのうちの一つで
あり、リクエスト中のプロセッサのパラメータメモリは
外部から外部へのバッファ化されたデータを記憶しな
い。
【0372】Sビット(上部データワードのビット2
8)は、パラメータメモリの外部間バッファがソースマ
シン320によってアクセスされているか、宛て先マシ
ン340でアクセスされているかどうかを表示する。E
ビットが1であって、リクエスト中のプロセッサのパラ
メータメモリ内の外部間でバッファ化されたデータの記
憶を表示している場合にかぎり意味がある。Sビットが
1である場合、ソースマシン320はパケット転送が一
時中断されているときに、外部間バッファにアクセス中
である。Sビットが0であれば宛て先コントローラは外
部間バッファにアクセス中である。
【0373】上部データワードのビット20〜16は、
BUFPTRレジスタ414の値を記憶する。BUFP
TRレジスタ414は、パラメータメモリの外部間バッ
ファへのポインタである。このポインタを記憶すると、
パラメータメモリの外部間バッファのステータスをリカ
バーすることにより、外部間パケット転送の再使用が可
能となる。当然ながらこのフィールドは、一時中断パケ
ット転送が外部間パケット転送である場合にのみ意味が
ある。
【0374】上部データワードのビット14〜8は、B
UFCOUNTレジスタ441の値を記憶する。このB
UFCOUNTレジスタ441の値は、Sビットのステ
ータスに基づいて解釈される。Sビットが1であって、
パラメータメモリの外部間パッファのソースアドレス指
定が一時中断していることが表示されると、BUFCO
UNTレジスタ441はバッファ内に残っているバイト
数を表示する。Sビットが0であり、パラメータメモリ
の外部間アドレスの宛て先アクセスの一時中断を表示し
ている場合、BUFCOUNTレジスタ441はバッフ
ァ内に記憶されたバイト数を表示する。このフィールド
は一時中断された外部間パケット転送にしか意味がな
い。上部データワードのビット3〜0は、FCOUNT
である。これはパケット転送FIFOバッファ311に
このとき保持されているデータのバイト数である。
【0375】一時中断されたパケットサービスパラメー
タの下部データワードは、2つのFIFOポインタを保
持する。下部データワードのビット11〜8は、FDP
TRすなわち宛て先ポインタを記憶する。下部データワ
ードのビット3〜0は、FSPTRすなわちソースポイ
ンタを記憶する。これらポインタは、一時中断点におけ
る一時中断バケット転送の再開を可能にする。
【0376】16進数060で終了するアドレスで開始
する4つのデータワードは、パケット転送FIFOバッ
ファ311の内容を記憶している。パケット転送FIF
Oバッファ311を空にするかわりに、このデータを記
憶することにより、より高い優先度のパケット転送を早
期にスタートできる。将来、より大きなバッファを使用
する場合に、このような大きなパケット転送用FIFO
バッファ311の内容の記憶をサポートするために、1
6進数070で終了するアドレスで開始する4つのデー
タワードが保留されていることに留意されたい。
【0377】転送コントローラ80は、多数の標準的で
ないパケット転送アクセスモードをサポートする。これ
らにはブロックライト、シリアルレジスタ転送、トラン
スペアレンシーおよび周辺デバイス転送が含まれる。こ
れら非標準的パケット転送アクセスモードは、パケット
転送パラメータのパケット転送オプションフィールドに
よりイネーブルされる。
【0378】パケット転送パラメータのパケットアクセ
スモードが010に等しいとき、このモードはブロック
書き込みパケットアクセスモードを可能にする。転送コ
ントローラ80は3つの異なるブロック書き込み機構、
すなわち8x、3xおよびシミュレート機構をサポート
する。システムハードウェアは、ブロックの書き込みが
開始する時間にブロック書き込み機構を決定する。これ
によりソフトウェアはシステムが使用するブロック書き
込みのタイプがどのタイプであるかとは無関係に、また
はこれをアドレス指定されたメモリがサポートするか否
かとは無関係に、ソフトウェアがブロック書き込みを利
用できるようにする。しかしながらブロック書き込みモ
ードの各々は、64ビットのバスサイズおよび8ビット
の値(1〜8)に対してしかサポートされていない。ブ
ロック書き込みのための宛て先スタートアドレスはオフ
チップであり、64ビットに整列していなければならな
い。すなわち最小位の6つのアドレスビットは0000
00でなければならない。
【0379】転送コントローラ80によって使用される
ブロック書き込みモードは、外部回路によりマルチプロ
セッサ集積回路100のBS[1:0]ピンに入力され
た値によって選択される。好ましい実施例では、ブロッ
ク書き込みは64ビットのデータバスに対してのみサポ
ートされているので、これらバスサイズ入力はブロック
書き込みおよび負荷カラーレジスタサイクル中にブロッ
ク書き込み選択として使用される。表23は、BS
[1:0]により選択されたブロック書き込みモードを
示す。
【0380】
【表23】
【0381】種々のVRAMサイズおよびアーキテクチ
ャのために、多数の異なるブロック書き込み方法があ
る。以下の表記法は、種々のブロック書き込み方法;す
なわちC×L×R(ここでCはカラーレジスタ当たりの
列位置の数、Lはビットによるカラーレジスタの長さ、
Rはカラーレジスタの数である)を示すのに使用されて
いる。たいていの1MビットのVRAMは、256Kビ
ット×7ビットデータアレイを有し、4×4×1のブロ
ック書き込みをサポートしている。これらは1つの4ビ
ットカラーレジスタを有し、各ブロック書き込みサイク
ルは、4メモリアレイ平面での4つの隣接する列位置へ
のカラーレジスタの書き込みを制御している。
【0382】8×(倍の)ブロック書き込みは、位置当
たり8ビットに、アクセス当たり8つの行位置を(すな
わち8×8×1または8×8×2)書き込みできるVR
AMと共に使用するようになっている。ソースデータの
各ビットは、データバスD[63:0]上の1ビットに
出力され、このサイクルでアクセスされる64個の列の
うちの1つに対する8ビットVRAMカラーレジスタの
書き込みをイネーブルしたりディスエーブルしたりす
る。各列は各VRAM内の8つのメモリアレイ平面の各
々における列位置を表示している。従って1回のアクセ
スで64までのバイトのカラーレジスタデータを書き込
みできる。
【0383】8×ブロック書き込みをサポートするビデ
オRAMは、ブロック書き込みサイクル中に最小位の3
つの列のアドレスを無視する。従って、データバスは6
4ビット(8バイト幅)であるので、ブロック書き込み
サイクルは常に64バイトの境界上で開始する。64バ
イトに整列されていない宛て先アドレスに対し、転送コ
ントローラ80はソースビットを整列し、書き込みされ
ていない64バイトのアクセス内の位置に対して喪失し
た0を発生する。次に転送コントローラ80は、ビット
がデータバス上のVRAMの各々内の適当な列位置をア
ドレス指定するように、ビットを再マップ化する。
【0384】図34は、小エンディアンモードにおける
8×ブロック書き込みのためのデータ再マップ化プロセ
スを示す。最初の8つのソースビットは宛て先のうちの
最初の8バイトを制御する。これらバイトは実際は、ア
クセスされている8個の8平面VRAMアレイの各々に
おける最小位の列位置である。最小位バイトはブロック
書き込み中にVRAMのD0入力(および16ビットV
RAMのためのD8入力)によって制御されるので、ソ
ースビット0〜7はデータバスのそれぞれのビット0、
8、16、24、32、40、48および56にマップ
化され、これらは、アクセスされたVRAMのD0入力
(16ビットデバイスのためのD0およびD8入力)を
表示する。ソースビットの残りは同様にマップ化され
る。転送コントローラ80は、大エンディアン8×ブロ
ック書き込みのための同様なマッピングを行う。大エン
ディアンモードではソース画像のうちの最小位ビットは
左側の最大ビットであり、最高位ビットは右側の最大ビ
ットである。マッピング機構は小エンディアンモードの
ために使用されているものと同じであるので、ソースビ
ット0〜7はそれぞれビット63、55、47、39、
31、23、15および7にマップ化されている。これ
らビットはVRAMアレイ内でアクセスされている最小
位列位置を表示する。これらバイトは、VRAMのD0
入力(16ビットデバイスのためのD0およびD8入
力)によって制御されているので、ブロック書き込みが
正しく作動できるように、逆の順にVRAMに接続しな
ければならない。
【0385】データは逆の順に書き込みされ、読み出さ
れるので、データバスを逆の順に接続しても通常の読み
出しおよび書き込みに影響しない。VRAMのシリアル
ポートの内外にシフトされるビットは、逆の順となるこ
とをユーザーは認識しなければならない。このようにす
るには、適当なオペレーションを保証するため、出力デ
バイスまたは入力デバイスを接続する際にシリアルデー
タバスの順を反転しなければならないことがある。
【0386】4×ブロック書き込みモードは、アクセス
当たり4列の位置、すなわち位置当たり4または8ビッ
トのいずれかで、4×4×1、4×4×4、4×8×
1、4×8×2を書き込みできるVRAMと共に使用す
るように設計されている。4×4のブロック書き込みの
場合、ソースデータの各ビットは、データバスD[6
3:0]上の2ビットに出力され、このサイクルでアク
セスされる64列のうちの2つに対する4ビットVRA
Mカラーレジスタのうちの2つの書き込みをイネーブル
またはディスエーブルする。各列はアレイのうちの4つ
の平面上の列位置を表示する。各カラーレジスタは4ビ
ット幅しかないので、8ビットのピクセルを表示するの
に2つのレジスタが必要である。従って各ソースビット
は8ビットの書き込みが生じるように、隣接するニブル
に書き込む2つのカラーレジスタを制御しなければなら
ない。これにより1回のアクセスでカラーレジスタデー
タのうちの32バイトまでを書き込みできる。
【0387】4×ブロック書き込みをサポートするVR
AMは、ブロック書き込みサイクル中に最小位の2つの
列アドレスを無視する。従ってブロック書き込みは常に
32バイト境界上で始まる。8×ブロック書き込みと同
じように、転送コントローラ80は32バイトブロック
内の宛て先開始アドレスのダブルワードによって指定さ
れたデータにソースデータを整列し、書き込まれていな
いダブルワードに対し、喪失した0を満たす。
【0388】図35は、小エンディアンモードにおける
4×ブロック書き込みのためのデータ再マップ化プロセ
スを示す。最初の8つのソースビットは宛て先の最初の
8つのバイトを制御する。しかしながら4×4ブロック
書き込みでは、各データ入力では4ビットしか書き込み
しないので、完全なバイトを書き込みするように2つの
データバスピンに各ソースビットをマップ化しなければ
ならない。従ってソースビット0〜7はビット0と4、
8と12、16と20、24と28、32と36、40
と44、48と52ならびに56と60にそれぞれマッ
プ化される。
【0389】4×8×1または4×8×2のブロック書
き込みの場合、VRAMカラーレジスタは8ビット幅で
ある。しかしながら書き込むべきバイトを選択するの
に、VRAMの8個のデータ入力のうちの4つしか使用
しない。従ってデータバスのうちの半分は使用せず、1
回のアクセスで32バイトしか書き込みできない。しか
しながら、D[63:0]上に実際に入力されるデータ
は同じであり、VRAMは他のどのニブルも無視するだ
けであることに留意されたい。大エンディアンモードで
は、ソースビット0〜7は外部データバスのうちのビッ
ト63と59、55と51、47と43、39と35、
31と27、23と19、15と11ならびに7と3に
マップ化される。8×大エンディアンブロック書き込み
と同じように、正しいオペレーションを保証するように
VRAMにデータバスを逆の順序で接続しなければなら
ない。
【0390】ブロック書き込みをサポートしないメモリ
デバイスに対し、転送コントローラ80はシミュレート
されたブロック書き込みモードを提供する。このモード
では、データバス上にパケット転送パラメータ内に含ま
れていた64ビットのカラーレジスタ値が出力され、サ
イクル中にアドレス指定される8バイトのうちの1つを
イネーブルまたはディスエーブルするよう、CAS′列
アドレスストローブピンを制御することにより、各ソー
スデータビットはバイト選択信号として機能する。従っ
てブロック書き込みは実質的にはカラーレジスタ値がフ
ィル値となるような、値でフィルするタイプの転送に変
換される。次に、宛て先アクセスは、ソースデータによ
って指定されるように、あるバイトへの書き込みをディ
スエーブルする通常のページモードの64ビットの書き
込みサイクルとなる。
【0391】4×および8×ブロック書き込みサイクル
を実行する前に、VRAMのカラーレジスタに正しい値
をロードしなければならない。転送コントローラ80は
パケット転送パラメータに含まれるカラーレジスタ値を
使用するロードカラーレジスタLCRサイクルを実行す
ることによりこれを行う。ブロック書き込みパケット転
送は、より高い優先度のリクエスト、例えばVRAMカ
ラーレジスタを変え得るホストアクセスまたは他のブロ
ック書き込みパケット転送によってインタラプトできる
ので、ブロック書き込みパケット転送が再開するときは
いつも、ロードカラーレジスタサイクルも実行しなけれ
ばならない。従って4×または8×ブロック書き込みパ
ケット転送が始まるとき、一時中断からブロック書き込
みパケット転送が再開するとき、ホストが画像システム
バスを使用し、これを戻した後ブロック書き込みパケッ
ト転送が続くときはいつも、ロードカラーレジスタが始
まる。アクセスされているメモリがシミュレートされた
ブロック書き込みを必要とする場合には、ロードカラー
レジスタサイクルは実行されない。
【0392】一旦カラーラッチがロードされると、上記
条件のうちの1つが発生しなければ、別のロードカラー
レジスタサイクルを実行することはない。例えば8×モ
ードでブロック書き込みが開始し、次にシミュレートさ
れたモードと8×モードが交互に変わると、8×モード
となるたびにロードカラーレジスタが繰り返されること
はない。
【0393】ブロック書き込みパケット転送のための事
象シーケンスは次のとおりである。転送コントローラ8
0は、実行すべきロードカラーレジスタステータスコー
ドおよび第1ブロック書き込みのアドレスを出力する。
次に転送コントローラ80は、BS[1:0]ピンに入
力された値を読み出す。BS[1:0]が10または1
1に等しければ、パケット転送パラメータ内に含まれる
64ビットのカラーレジスタ値も用いてロードカラーレ
ジスタサイクルを完了する。この後に、4×または8×
ブロックサイクルを発生してパケット転送を完了する。
一方、BS[1:0]が00であれば、ロードカラーレ
ジスタサイクルはデータとしてパケット転送パラメータ
内に含まれる64ビットのカラーレジスタ値およびバイ
ト選択信号としてソースデータビットを用いる通常のペ
ージモードの書き込みとなる。ページ変更またはより高
い優先度のサイクルからのインタラプトのために、新し
い行アクセスが開始された場合、実行すべきロードカラ
ーレジスタのステータスコードおよび次のブロック書き
込みのアドレスを出力する工程を、次の宛て先アドレス
に対して繰り返す。
【0394】ロードカラーレジスタサイクルが一旦実行
されると、次のようにシーケンスが続く。転送コントロ
ーラ80がブロック書き込みステータスコードおよび実
行すべき次のブロック書き込みのアドレスを出力する。
BS[1:0]が10または11である場合、ソースデ
ータビットを用いてブロック書き込みページモードサイ
クルが完了される。新しい行アクセスが開始されると、
ブロック書き込みステータスコードおよび実行すべき次
のブロック書き込みのアドレスを出力するステップが繰
り返される。他方、BS[1:0]が00であれば、ブ
ロック書き込みサイクルはパケット転送内に含まれる6
4ビットのカラーレジスタ値をデータとして使用し、ソ
ースデータビットをバイト選択ビットとして使用する、
通常のページモード書き込みとなる。新しい行アクセス
が開始されると、ブロック書き込みステータスコードお
よび実行すべき次のブロック書き込みのアドレスを出力
するステップが次の宛て先アドレスに対して繰り返され
る。
【0395】転送コントローラ80は実際の4×または
8×ブロック書き込みを常に実行するように試みる。従
ってシミュレートされたブロック書き込みモード中に生
じる通常の書き込みサイクルは、常にロードカラーレジ
スタまたはブロック書き込みステータスコードを有す
る。
【0396】パケット転送オプションフィールド内のパ
ケットアクセスモードが、シリアルレジスタ転送モード
を選択する011であれば、転送コントローラ80のデ
ータ転送モードがディスエーブルされる。転送コントロ
ーラ80はアドレスおよびCAS′を出力するだけであ
る。転送コントローラは更に行時間にTRG′、W′お
よびDSF[1:0]ピンもドライブし、読み出し転送
または書き込み転送のVRAMモードのいずれかを選択
する。これらオペレーションのいずれかを実行する際、
D[63:0]ピンは行時間に16進数FFFFFFF
FFFFFFFFFのマスク値を出力して、VRAM転
送マスクをディスエーブルする。
【0397】メモリからレジスタへの転送である読み出
し転送を実行するためのアドレスを発生するのにソース
パラメータが使用され、レジスタからメモリへの転送で
ある書き込み転送を実行するのに宛て先メモリが使用さ
れる。
【0398】ソースおよび宛て先の双方によって実行さ
れる各アクセスは、1回の行アクセスである。転送コン
トローラ80を介するデータの転送は行われないので、
宛て先アクセス前にすべてのソースアクセスが実行され
る。各ソースアクセスはVRAMの行をVRAMシフト
レジスタ内に転送させる。実際にはソースパラメータは
通常整列したアドレス、1のAカウント、0のBカウン
トおよび0のCカウントでセットアップされる。従って
1回の転送しか実行されない。読み出し転送に対しては
すべての反転CASラインはアクティブであるので、ソ
ースバスサイズ以下のAカウントをセッティングする結
果、1回の転送が行われる。従ってほとんどの状況に対
して1のソースAカウントが理想的である。
【0399】各宛て先アクセスは、VRAMシフトレジ
スタのデータをVRAMメモリアレイの行内に転送させ
る。通常、各宛て先アクセスは次の逐次行アドレスに対
する整列された転送となっている。これは、整列された
開始アドレス、1のAカウント、行数−1のBカウント
およびVRAM行アドレスピッチに等しいBピッチで宛
て先パラメータをセットアップすることによって行われ
る。書き込み転送中、すべての反転CASラインが附勢
されるので、宛て先バスサイズ以下のAカウントをセッ
トする結果、ライン当たり1回の転送が行われる。従っ
て1の宛て先Aカウントはほとんどの状況に対して理想
的である。
【0400】シフトレジスタ転送パケット転送は、VR
AMシフトレジスタの内容を変え得る優先度のより高い
リクエストによりインタラプトされ得るので、VRAM
シフトレジスタが損なわれる可能性がある場合はいつ
も、読み出し転送サイクルを実行する必要がある。従っ
て、シフトレジスタ転送パケット転送が開始するとき、
シフトレジスタ転送パケット転送が一時中断された後に
再開するとき、更にホストが使用され、画像システムバ
スに復帰した後にシフトレジスタ転送パケット転送が続
くときはいつも、シフトレジスタ転送パケット転送ノソ
ースオペレーション、すなわち読み出し転送が行われ
る。
【0401】図37にシリアルレジスタ転送パケット転
送の簡単な例が示されている。行0は所望のパターンに
セットされているものとする。パケット転送はこのパタ
ーンは行2、4、6、8および10にコピーし、ストラ
イブ状効果を発生するためのものである。
【0402】パケット転送オプションフィールド内のパ
ケット転送アクセスモードビットを、1XXにセットす
ることにより、トランスペアレンシーモードをイネーブ
ルする。トランスペアレンシーモードのうちの1つを指
定することによりソース上でのトランスペアレンシーオ
ペレーションがイネーブルされる。ソースデータはパケ
ット転送パラメータ内に指定された64ビットのトラン
スペアレンシーモード値と比較される。トランスペアレ
ンシーは8、16、32または64ビットデータサイズ
として指定できる。1回の64ビットの比較、2回の3
2ビットの比較、4回の64ビットの比較または8回の
8ビットの比較を行う。比較の結果が真であれば、トラ
ンスペアレンシーおよびバイト書き込み回路353(図
38に示される)が対応するバイトストローブをディス
エーブルし、宛て先バイトの書き込みを防止する。トラ
ンスペアレンシーはオフチップの宛て先にしかサポート
されていない。オンチップの宛て先に対するトランスペ
アレンシーを指定すると、エラー条件によりパケット転
送が一時中断される。
【0403】ソースデータが宛て先および外部バスサイ
ズに整列された後、トランスペアレンシーおよびバイト
書き込み回路353(図38に示されている)によりト
ランスペアレンシー検出が行われる。バスサイズが64
ビット未満であっても、データのうちのすべての8バイ
トがトランスペアレンシー値の対応する8バイトと比較
される。8回の比較は、トランスペアレンシーデータサ
イズに従ってグループ分けされる。グループ内の比較さ
れるバイトがすべて一致すると、そのグループに関連す
るバイトストローブCAS′信号がディスエーブルさ
れ、そのグループ内のバイトのいずれかへの書き込みが
防止される。
【0404】図37a、37b、37cおよび37d
は、それぞれ64ビット、32ビット、16ビットおよ
び8ビットのトランスペアレンシーデータサイズに対し
てどのように比較を行うかを示している。&記号はグル
ープを形成するのに、どのバイトの比較をAND演算す
るかを示している。図37aが示すように、64ビット
のトランスペアレンシーサイズは1回の64ビットの比
較を行う。ソースデータおよびトランスペアレンシー値
が等しければCAS′ストローブのすべてがディスエー
ブルされる。それ以外の場合、8バイトのすべてが書き
込まれる。図37bは、32ビットのトランスペアレン
シーサイズで2回の32ビットの比較が行われ、それぞ
れCAS′[7:4]およびCAS′[3:0]を制御
することを示している。図37cは、16ビットのトラ
ンスペアレンシーサイズにおいて、4回の16ビットの
比較が行われ、それぞれCAS′[7:6]、CAS′
[5:4]、CAS′[3:2]およびCAS′[1:
0]を制御することを示している。図37dは8ビット
のトランスペアレンシーサイズにて8回の8ビットの比
較を別々に行い、CAS′[7]、CAS′[6]、C
AS′[5]、CAS′[4]、CAS′[3]、CA
S′[2]、CAS′[3:2]、CAS′[1:0]
を制御することを示している。CAS′[7:0]スト
ローブは、オペレーションのエンディアンにかかわら
ず、データバス上の同一ビットにより常時識別される。
【0405】外部バスへの整列後、トランスペアレンシ
ーの比較が行われる。従って外部バスサイズが32ビッ
トであれば、64ビットのトランスペアレンシーモード
が選択されていても、データは常にトランスペアレンシ
ー値のうちのビット31〜0(大エンディアンモードで
はビット63〜32)と比較される。このトランスペア
レンシー機構は整数の比較グループに分割できる現在の
バスサイズで作動するようになっている。従ってバスサ
イズは常にトランスペアレンシーサイズ以上でなければ
ならない。
【0406】図38は、宛て先マルチプレクサおよび整
列ロジック350の一部である、トランスペアレンシー
およびバイト書き込みロジック353の構造を示す。ト
ランスペアレンシーレジスタ601は、パケット転送パ
ラメータからの64ビットのトランスペアレンシー値を
記憶する。一連の8ビットのコンパレータ611、61
2、613、614、615、616、617および6
18は、トランスペアレンシーレジスタ601内に記憶
されたトランスペアレンシー値のバイトの個々のビット
と、宛て先マルチプレクサ351からの整列された宛て
先データのバイトの対応するビットとを比較する。各コ
ンパレータ611、612、613、614、615、
616、617、618は、対応するビットが同じであ
るかどうかを表示するバイトの等しい信号を発生する。
ハーフワードANDゲート621、622、623およ
び624の一組は、バイト0と1、バイト2と3、バイ
ト4と5、並びにバイト6と7に対する対応するハーフ
ワードの等しい信号をそれぞれ形成する。2つのワード
ANDゲート631および632は、ハーフワードAN
Dゲート621、622、623および624に接続さ
れており、バイト0〜3およびバイト4〜7に対する対
応するワードの等しい信号を形成する。最後に、ダブル
ワードのANDゲート641はワードゲート631およ
び632に接続されており、すべての64ビットに対す
るダブルワードの等しい信号を形成する。
【0407】マルチプレクサ645は8個のバイトの等
しい信号、4つのハーフワードの等しい信号、2つのワ
ードの等しい信号およびダブルワードの等しい信号を受
ける。このマルチプレクサ645はパケット転送オプシ
ョンフィールドのパケット転送アクセスモードのビット
17〜16に従って選択されたトランスペアレンシーサ
イズの表示も受ける。これらビットは表19に示される
ようにコード化されている。マルチプレクサ645の出
力バイト書き込みストローブは、それぞれの入力および
トランスペアレンシーサイズに基づき、反転CAS信号
を実際に発生する。8ビットのトランスペアレンシーサ
イズが選択される場合、バイトの等しい信号がそれぞれ
のバイト書き込みストローブを制御する。トランスペア
レンシーカラー値と、対応するデータバイトが等しいこ
との表示は、バイト書き込みストローブを禁止する。従
ってメモリにはデータは書き込まれない。16ビットの
トランスペアレンシーサイズが選択されると、各ハーフ
ワードの等しい信号は2つの対応するバイト書き込みス
トローブを制御し、よって、各ハーフワードの等しい信
号は2バイトの書き込みストローブを制御する。32ビ
ットのトランスペアレンシーサイズが制御されると、各
ワードの等しい信号は4つの対応するバイト書き込みス
トローブを制御する。64ビットのトランスペアレンシ
ーサイズが選択されると、8つのバイト書き込みストロ
ーブのすべてがダブルワードの等しい信号によって制御
される。従って、選択されたトランスペアレンシーサイ
ズに基づき、トランスペアレンシーサイズに等しいデー
タ部分とトランスペアレンシーカラー値との同一性によ
り、データの宛て先への書き込みがアボートされる。こ
の機能は多くのグラフィックアプリケーションで極めて
有効である。
【0408】パケット転送オプションのパケットアクセ
スモードが001に等しいときに、周辺デバイスモード
が選択されると、周辺デバイス転送が実行される。この
モードは周辺デバイスが転送コントローラ80のメモリ
コントローラを活用し、マルチプロセッサ集積回路10
0の外部のメモリとの間における読み出しまたは書き込
みを可能にする。周辺デバイス転送が行われると、転送
コントローラ80はメモリアドレスおよび制御ラインを
ドライブするが、データを読み出したり、ドライブ出力
させることはない。これにより、周辺デバイス、例えば
画像システムバスに接続されているホストシステム1
は、データの書き込みまたは読み出しを可能にする。周
辺転送の読み出しまたは書き込み方向は、パケット転送
パラメータをプログラムする方法により決定される。
【0409】メモリから周辺デバイスへの読み出しを行
う周辺読み出し転送は、周辺デバイスが必要とするメモ
リデータにアクセスするよう、パケット転送のソースパ
ラメータをプログラムすることによって発生される。ソ
ースアクセスモードは、次元の定められた転送またはガ
イド転送のいずれかにできるが、値でフィルする転送に
はできない。宛て先転送は宛て先転送モードを000フ
ィールドにセットし、宛て先Aカウントを0にセットす
ることによりディスエーブルしなければならない。
【0410】周辺デバイスからメモリへの書き込みを行
う周辺書き込み転送は、周辺デバイスが書き込みを必要
とするメモリエリアにアクセスするよう、宛て先パラメ
ータをプログラムすることによって発生される。宛て先
アクセスモードは次元の定められた転送またはガイド転
送のいずれかにできる。ソース転送はソース転送モード
を000にセットし、ソースAカウントを0にセットす
ることによりディスエーブルしなければならない。バイ
トの宛て先番号がバイトのソース番号を越えたとして
も、この例ではパケット転送エラーは生じない。
【0411】周辺デバイスパケット転送リクエストは、
任意の優先度のプロセッサにより送信でき、通常の優先
度決定方法を用いてサービスされる。しかしながら通常
のオペレーションはデータの読み出し、書き込みを望む
際に、周辺デバイスに転送を開始させるようになってい
る。このような開始は、外部インタラプトを用いること
によって行われる。周辺デバイスがサービスを必要とす
る際、周辺デバイスはマルチプロセッサ集積回路100
の外部のインタラプト入力の一つにより、マルチプロセ
ッサ60をインタラプトできる。マスタプロセッサ60
は次に、インタラプトサービスルーチンの一部として周
辺デバイスパケット転送を送ることができる。サービス
ルーチン内でインタラプトがディスエーブルされれば、
この転送は緊急優先度を送ることにより、デジタル画像
/グラフィックプロセッサ71、72、73、74のキ
ャッシュリクエストよりも高い優先度を与えることがで
きる。
【0412】周辺デバイスがマスタプロセッサ60を一
旦インタラプトすると、周辺デバイスは転送コントロー
ラ80がデータの読み出し、書き込みをできる前に、パ
ケット転送を開始するまで待機しなければならない。周
辺デバイスの転送の開始は、行時間におけるステータス
[4:0]上に出力される特別サイクルタイプのコード
によって信号が送られる。読み出しに対しては値001
00が使用され、書き込みに対しては値00101が使
用される。周辺デバイス転送の開始点および終了点は、
常にLASTPAGEレジスタ360を無効にし、行ア
クセスを強制的に行わせる。周辺デバイスはデータ転送
をいつ行うかを決定するよう、STATUS[4:0]
をモニタしなければならない。転送コントローラ80に
より発生されるメモリサイクルのバスサイズのタイプ、
列タイミング等は、サイクルの開始点におけるメモリ識
別入力バスサイズ選択BS[1:0]、列タイミング選
択CT[1:0]等によって選択されるものに対応す
る。次に周辺デバイスは、CAS′[7:0]、CLK
OUT等を用いる、その後の列アクセスにそのデータ転
送を同期化できる。
【0413】メモリのアドレス指定はパケット転送パラ
メータによって行われるので、転送周辺デバイスでは転
送コントローラ80によってアクセスされる順で、デー
タを送受信するように準備が整っていなければならな
い。周辺デバイスは転送コントローラ80の転送レート
に合致したり、転送を低速にするよう、待機ステートを
挿入できるようになっていなければならない。
【0414】周辺デバイスは転送のために画像システム
バスを使用しているので、周辺デバイス転送が開始する
までバスをドライブしてはならない。これは周辺デバイ
スとマルチプロセッサ集積回路100のデータバスとの
間にトランシーバを置き、周辺デバイス転送中にこれら
をイネーブルするだけで達成できる。マルチプロセッサ
集積回路100は転送中にそのデータバスを高インピー
ダンスとし、外部トランシーバが設けられていれば、こ
れをディスエーブルするよう、反転DBENをハイレベ
ルで非アクティブとなるようにドライブする。
【0415】転送コントローラ80は、大エンディアン
フォーマットまたは小エンディアンフォーマットのいず
れかでデータにアクセスできる。このエンディアンモー
ドは、バイトをアクセスする方法を選択する。小エンデ
ィアンフォーマットではバイト0はワード内の最も右側
のバイトであり、その後に続くバイトは左に向かって番
号がつけられる。大エンディアンフォーマットではバイ
ト0はワード内の最も左側のバイトであり、その後に続
くバイト2は右側に番号がつけられる。
【0416】アドレスの最小位の3ビットおよび転送す
べきバイト数は、有効データバイトの位置を決定する。
表24aおよび24bは、小エンディアンモードで64
ビットバス転送のためのバイト位置を示す。表24aお
よび24bではVは有効バイト位置を示し、0は無効バ
イトを示す。点線はそのオペレーションを実行できない
ことを示す。
【0417】
【表24】
【0418】表25aおよび25bは、大エンディアン
モードにおける64ビットバス転送のためのバイト位置
を示す。
【0419】
【表25】
【0420】外部バスが32ビットに制限されていると
き、データの転送にはバスのうちの最小位の4バイトし
か使用しない。このことは、小エンディアン転送ではD
[31:0]が使用され、大エンディアン転送に対して
はD[63:32]が使用されることを意味している。
表26には、小エンディアンのためのアドレスの最小位
の2ビットに基づくバイト位置が示されている。Xは無
視する64ビットバスのバイトを表示し、点線は実行で
きない転送を示している。
【0421】
【表26】
【0422】表27には、大エンディアンのためのアド
レスの最小位の2ビットに基づくバイト位置が示されて
いる。
【0423】
【表27】
【0424】外部バスが16ビットに制限されている
と、データの転送のために小エンディアンのための最小
位の2バイトD[15:0]または大エンディアンのた
めのD[63:48]が使用される。表28は、アドレ
スの最小位バイトに基づく小エンディアンモードのため
のバイト位置を示す。
【0425】
【表28】
【0426】表29は、アドレスの最小位ビットに基づ
く小エンディアンモードのためのバイト位置を示す。
【0427】
【表29】
【0428】外部バスが8ビット用に構成されていると
き、データ転送のために小エンディアン用の最小位のバ
イトD[7:0]または大エンディアン用D[63:5
6]だけが使用される。
【0429】内部クロスバー上で32ビットの外部デー
タを転送する際、転送コントローラ80は表24a、2
4b、25aおよび25bからの1バイト、2バイト、
3バイトおよび4バイトのバイト位置を用いて、通常6
4ビットのアクセスを実行する。内部クロスバー上で1
6ビットの外部データを転送する際、転送コントローラ
80は表24a、24b、25aおよび25bからの1
バイトおよび2バイトのバイト位置を用いて、通常の6
4ビットアクセスを実行する。
【0430】反転UTIME入力を用いてリセット時に
マルチプロセッサ集積回路100のエンディアンモード
が選択される。マルチプロセッサ集積回路100は反転
リセット入力上の立ち上がりエッジの前のクロックサイ
クルにおけるUTIME′の値をサンプリングし、合致
する。UTIME′がリセットの終了時に低レベル
(0)にサンプリングされた場合、マルチプロセッサ集
積回路100は次のハードウェアのリセットが生じるま
で、大エンディアンモードで作動する。UTIME′が
高レベル(1)でサンプリングされると、マルチプロセ
ッサ集積回路100は小エンディアンモードで作動す
る。
【0431】パケット転送パラメータはこれまで述べた
ように、ワード(32ビット)レベルのみにおいて、エ
ンディアンと独立している。転送コントローラ80はパ
ケット転送パラメータをダブルワード(64ビット)転
送として常にフェッチし、記憶する。転送コントローラ
80は選択されたエンディアンに従って32ビットのワ
ードをスワップする。ワード内の16ビットの量、例え
ばAカウントおよびBカウントは、これら値を含むフィ
ールドが単一の32ビットの量とみなされるので、エン
ディアンに従ってスワップされることはない。同様に、
64ビットのトランスペアレンシーワードおよび64ビ
ットのカラーレジスタ値のフィールドは、常に単一の6
4ビット量として取り扱われ、そのバイトはエンディア
ンに従ってスワップされることはない。
【0432】ローカルメモリの読み出しおよび書き込み
サイクルは、メモリとプロセッサ集積回路100との間
でデータとインストラクションとを転送するのに使用さ
れる。これらサイクルはパケット転送、キャッシュリク
エストまたは転送コントローラ80に対するダイレクト
外部アクセスリクエストの結果として生じ得る。読み出
しサイクルはデータをメモリからマルチプロセッサ集積
回路100へ転送する。転送コントローラ80はこのサ
イクルの開始点でSTATUS[4:0]上に0000
0を出力し、読み出しが行われていることを表示する。
サイクル中WE′は高レベルで非アクティブに保持さ
れ、TRG′はRAS′の降下後に低レベルにドライブ
され、メモリ出力ドライバをイネーブルし、DDIN′
はデータトランシーバがマルチプロセッサ集積回路10
0の内部をドライブするように、このサイクル中に低レ
ベルでアクティブとなる。転送コントローラ80はD
[63:0]をメモリから駆動できるように高インピー
ダンスにスイッチングし、適当な熱ステートの間に入力
データをラッチする。転送コントローラ80は常に64
ビットのダブルワードを読み出し、次に適当なデータバ
イトとを抽出し、整列する。従って64ビット未満のバ
スサイズに対して、無効バイトを放棄する。
【0433】図39は、高品位テレビシステムにおけ
る、本発明に係わるマルチプロセッサ集積回路100の
使用法を示す。図39は、高品位テレビ信号の3つのソ
ースを示している。これら信号としては、放送テレビ信
号、コンパクトディスクのリードオンリーメモリ信号お
よびケーブルテレビ信号がある。
【0434】アンテナ801は高品位テレビ信号を含む
放送用無線周波数信号を受信し、テレビチューナー80
2は特定の無線周波数信号を選択する同調受信機と、無
線周波数信号上にエンコードされた画像データを抽出す
る複合器と、アナログ/デジタルコンバータを含む。従
ってテレビチューナー802は、高品位テレビ画像に対
応するデジタル信号を発生する。これらデジタル信号は
バッファ803に一時的に記憶されるようになってい
る。
【0435】コンパクトディスクリードオンリーメモリ
(CDROM)プレーヤー811は、コンパクトディス
ク上に永久記録されたデータを読み出す。これらデータ
は、所望の高品位テレビプログラムに対応した画像デー
タを含む。コンパクトディスクリードオンリーメモリプ
レーヤー811は、コンパクトディスクから読み出した
デジタルデータを一時記憶のためバッファ812へ供給
する。バッファ812は、画像システムバスにも接続さ
れている。
【0436】ケーブルシステムボックス821は、ケー
ブルシステムに双方向に接続する。このような双方向の
接続によりケーブルシステムからユーザーに高品位テレ
ビ信号の送信を行い、更にユーザーからケーブルシステ
ムへリクエスト、質問等の送信を行うことができるよう
になっている。ケーブルシステムはユーザーへのデジタ
ル送信を利用したり、上記無線周波数放送に類似する無
線周波数送信を利用したりできる。ケーブルシステムボ
ックス821は、デジタル画像データを一時記憶できる
よう、バッファ822に供給するための必要な変換回路
を含む。ここでバッファ822画像システムバスにも接
続されていることに留意されたい。高品位テレビは送信
モードに拘わらずデータ圧縮フォーマットで送信する可
能性がかなり高い。マイクロプロセッサ集積回路100
は、圧縮されたデータを受信し、このデータを個々のテ
レビフレームにデコンプレス(圧縮解凍)し、フレーム
データをビデオランダムアクセスメモリ6に供給するよ
うにプログラムされている。先に述べたように、このデ
ータはビデオランダムアクセスメモリ6からリコールさ
れ、ビデオパレット7へ供給される。ビデオパレット7
は、適当なビデオ信号を発生し、ビデオディスプレイ8
をドライブする。画像データをディスプレイに供給する
際に、画像データをデコンプレスする方法は、マイクロ
プロセッサ集積回路100内および画像システムバスに
沿った多数のデータ移動を伴う。転送コントローラ80
はマスタプロセッサ60およびデジタル画像/グラフィ
ックプロセッサ71、72、73および74からのバケ
ット転送用リクエストに応答し、このデータ移動を制御
し、更にメモリリフレッシュのような他の画像システム
バスの使用と、このデータ移動とを調和させる。
【0437】図40は、本発明の別のシステムの実施例
を示す。図40では、マルチプロセッサの集積回路10
1はマスタプロセッサ60と単一のデジタル画像/グラ
フィックプロセッサ71を含む。マルチプロセッサ集積
回路101はマルチプロセッサ集積回路100よりも狭
いシリコン基板面積しか必要としないので、より安価に
製造できる。マルチプロセッサ集積回路101は、マル
チプロセッサ集積回路100の製造に対して先に述べた
技術と同じ技術を用いて製造される。各デジタル画像/
グラフィックプロセッサの幅は、対応するメモリおよび
クロスバー50の関連する部分の幅と一致するので、マ
ルチプロセッサ集積回路100をデジタル画像/グラフ
ィックプロセッサ71と72との間でカットし、マルチ
プロセッサ集積回路101を得ることができる。4つの
デジタル画像/グラフィックプロセッサの処理容量が不
要の場合には、アプリケーションのためマルチプロセッ
サ集積回路101を用いることができる。
【0438】図42では、マルチプロセッサ集積回路1
01がカラーファクシミリ装置の一部として示されてい
る。モデム1301は送受信のための電話回線に双方に
結合されている。モデム1301は、バッファ1302
とも通信し、このバッファは画像システムバスに更に結
合されている。モデム1301は電話回線を介してファ
クシミリ信号を受信し、モデム1301はこれら信号を
復調し、復調信号は次にバッファ1302に一時的に記
憶される。転送コントローラ80はデジタル画像/グラ
フィックプロセッサ71によって処理できるよう、デー
タメモリ22、23、24へデータを転送することによ
り、バッファ1302にサービスする。デジタル画像/
グラフィックプロセッサ71が、入進データの前に位置
づけることができない場合、転送するコントローラ80
はこのデータを場合1302からメモリ9へ転送するこ
ともできる。デジタル画像/グラフィックプロセッサ7
1は入進ファクシミリの画像データを処理する。この処
理では、画像デコンプレッション、ノイズ低減、誤り訂
正、カラーベース補正等を行ってもよい。一旦処理した
場合、転送コントローラ80は画像データをデータメモ
リ22、23、24からビデオランダムアクセスメモリ
(VRAM)1303へ転送する。プリンタコントロー
ラ1304は、フレームコントローラ90の制御によ
り、画像データをリコールし、これをカラープリンタ1
305へ供給し、このプリンタはハードコピーを作成す
る。
【0439】図40の装置はカラーファクシミリを送る
こともできる。撮像デバイス3はソース原画をスキャン
する。撮像デバイス3はフレームコントローラ90の制
御により作動している画像キャプチャコントローラ4
へ、生の画像データを供給する。この画像データは、ビ
デオランダムアクセスメモリ1303に記憶される。図
40に示された実施例は、別個のビデオランダムアクセ
スメモリを利用している図1の実施例と対照的に、画像
キャプチャと画像ディスプレイの双方のためにビデオラ
ンダムアクセスメモリ1303を共用している。転送コ
ントローラ80は、この画像データをデータメモリ2
2、23、24へ転送する。次にデジタル画像/グラフ
ィックプロセッサ71は、データ圧縮、誤り訂正冗長
性、カラーベース補正等のために画像データを処理す
る。この処理されたデータはファクシミリ転送をサポー
トするのに必要なように、転送コントローラ80によっ
てバッファ1303へ転送される。転送コントローラ8
0は相対的データレートに応じてバッファ1302への
転送前に一時的にメモリ9にデータを記憶する。バッフ
ァ1302内のこの画像データは、モデム1301によ
り変調され、電話回線を通して送信される。
【0440】撮像デバイスとカラープリンタとが同じシ
ステム内に設けられているので、このシステムはカラー
複写機としても作動できることに留意されたい。この場
合、データ圧縮とデコンプレッションは不要である。し
かしながらノイズ低減およびカラーベース補正のために
は、まだデジタル画像/グラフィックプロセッサ71が
有効である。コピーが原画と異なるカラーを有するよう
に、色を注意深くずらすように、デジタル画像/グラフ
ィックプロセッサ71をプログラムすることも可能であ
る。フォールスカラーリングとして知られているこの技
術は、データのダイナミックレンジを利用可能なプリン
トカラーのダイナミックレンジに合わせるのに有効であ
る。
【0441】以上の説明に関して更に以下の項を開示す
る。 (1)複数の対応するアドレスにデータを記憶するメモ
リと、パケット転送リクエストと、パケット転送パラメ
ータとを受ける動作をする制御回路であって、該パケッ
ト転送パラメータが、スタートアドレスと、ある数のガ
イドテーブルエントリと、テーブルポインタとを含む、
前記制御回路と、前記数のガイドテーブルエントリを含
むガイドテーブルであって、それぞれのガイドテーブル
エントリが、アドレス値およびアドレスのブロックを定
義するディメンション値を含み、前記テーブルポインタ
が最初に前記ガイドテーブル内の第1ガイドテーブルエ
ントリをポイントする、前記ガイドテーブルと、前記制
御回路に結合せしめられたアドレス発生回路であって、
該アドレス発生回路が、前記パケット転送パラメータか
ら、前記スタートアドレスと、前記数のガイドテーブル
エントリと、前記テーブルポインタとを受ける動作を
し、前記アドレス発生回路が、前記ガイドテーブルエン
トリに対応するメモリアクセス用のアドレスのブロック
の集合を、前記スタートアドレスと、前記テーブルポイ
ンタによりポイントされた前記ガイドテーブルエントリ
の前記アドレス値と、の所定の組合せから、ブロックス
タートアドレスであって、該第1ブロックスタートアド
レスが前記スタートアドレスである、前記ブロックスタ
ートアドレスを形成し、該ブロックスタートアドレス
と、前記テーブルポインタによりポイントされた前記ガ
イドテーブルエントリの前記ディメンション値と、から
アドレスのブロックを形成し、アドレスの該ブロックに
メモリアクセスを行い、もしガイドテーブルエントリの
前記数よりも少ないメモリアクセスしか行われ終わって
いなければ、前記メモリアクセスに続いて、前記ガイド
テーブルの次のエントリをポイントするように前記テー
ブルポインタを更新する、ことによって形成する、前記
アドレス発生回路と、を含む、データ処理装置。
【0442】(2)前記アドレス発生回路が、前記アド
レス値を前記前のブロックスタートアドレスに加算する
ことにより、前記スタートアドレスと、前記テーブルポ
インタによりポイントされた前記ガイドテーブルエント
リの前記アドレス値と、の前記所定の組合せを形成す
る、第1項記載のデータ処理装置。
【0443】(3)前記アドレス発生回路が、前記テー
ブルポインタによりポイントされた前記ガイドテーブル
値を前記スタートアドレスに加算することにより、前記
スタートアドレスと、前記テーブルポインタによりポイ
ントされた前記ガイドテーブルエントリの前記アドレス
値と、の前記所定の組合せを形成する、第1項記載のデ
ータ処理装置。
【0444】(4)それぞれのガイドテーブルエントリ
の前記ディメンション値が、画素のアレイの水平ディメ
ンション値および垂直ディメンション値を含む、第1項
記載のデータ処理装置。
【0445】(5)前記メモリアクセスが、アドレスの
前記ブロックからのメモリリードから成る、第1項記載
のデータ処理装置。
【0446】(6)前記メモリアクセスが、アドレスの
前記ブロックへのメモリライトから成る、第1項記載の
データ処理装置。
【0447】(7)単一半導体チップ上に、メモリと、
パケット転送リクエストを発生する回路を有するデータ
プロセッサと、前記メモリと、前記データプロセッサ
と、に接続されたデータ転送制御装置であって、該デー
タ転送制御装置が、パケット転送リクエストと、パケッ
ト転送パラメータとを受ける動作をする制御回路であっ
て、該パケット転送パラメータが、スタートアドレス
と、ある数のガイドテーブルエントリと、テーブルポイ
ンタとを含む、前記制御回路と、前記数のガイドテーブ
ルエントリを含むガイドテーブルであって、それぞれの
ガイドテーブルエントリが、アドレス値およびアドレス
のブロックを定義するディメンション値を含み、前記テ
ーブルポインタが最初に前記ガイドテーブル内の第1ガ
イドテーブルエントリをポイントする、前記ガイドテー
ブルと、前記制御回路に結合せしめられたアドレス発生
回路であって、該アドレス発生回路が、前記パケット転
送パラメータから、前記スタートアドレスと、前記数の
ガイドテーブルエントリと、前記テーブルポインタとを
受ける動作をし、前記アドレス発生回路が、前記ガイド
テーブルエントリに対応するメモリアクセス用のアドレ
スのブロックの集合を、前記スタートアドレスと、前記
テーブルポインタによりポイントされた前記ガイドテー
ブルエントリの前記アドレス値と、の所定の組合せか
ら、ブロックスタートアドレスであって、該第1ブロッ
クスタートアドレスが前記スタートアドレスである、前
記ブロックスタートアドレスを形成し、該ブロックスタ
ートアドレスと、前記テーブルポインタによりポイント
された前記ガイドテーブルエントリの前記ディメンショ
ン値と、からアドレスのブロックを形成し、アドレスの
該ブロックにメモリアクセスを行い、もしガイドテーブ
ルエントリの前記数よりも少ないメモリアクセスしか行
われ終わっていなければ、前記メモリアクセスに続い
て、前記ガイドテーブルの次のエントリをポイントする
ように前記テーブルポインタを更新する、ことによって
形成する、前記アドレス発生回路と、を含む、前記デー
タ転送制御装置と、を備えた、集積回路。
【0448】(8)前記アドレス発生回路が、前記アド
レス値を前記前のブロックスタートアドレスに加算する
ことにより、前記スタートアドレスと、前記テーブルポ
インタによりポイントされた前記ガイドテーブルエント
リの前記アドレス値と、の前記所定の組合せを形成す
る、第7項記載の集積回路。
【0449】(9)前記アドレス発生回路が、前記テー
ブルポインタによりポイントされた前記ガイドテーブル
値を前記スタートアドレスに加算することにより、前記
スタートアドレスと、前記テーブルポインタによりポイ
ントされた前記ガイドテーブルエントリの前記アドレス
値と、の前記所定の組合せを形成する、第7項記載の集
積回路。
【0450】(10)それぞれのガイドテーブルエント
リの前記ディメンション値が、画素のアレイの水平ディ
メンション値および垂直ディメンション値を含む、第7
項記載の集積回路。
【0451】(11)前記メモリアクセスが、アドレス
の前記ブロックからのメモリリードから成る、第7項記
載の集積回路。
【0452】(12)前記メモリアクセスが、アドレス
の前記ブロックへのメモリライトから成る、第7項記載
の集積回路。
【0453】(13)前記単一半導体チップ上に含まれ
ない外部メモリにアクセスする動作をする外部メモリイ
ンタフェースをさらに含み、前記アドレス発生回路が、
前記メモリおよび前記外部メモリの双方を含むアドレス
を発生する、第7項記載の集積回路。
【0454】(14)複数の位置に情報を記憶するステ
ップと、パケットリクエストを受けてスタートアドレス
および制御信号を供給するステップと、該スタートアド
レス、制御信号、およびパッチ値に応答してパッチアド
レスを発生するステップと、パッチ情報をデコードして
ディメンション値およびパッチ値を供給するステップ
と、前記スタートアドレスと、前記ディメンション値
と、前記パッチ値とに応答してパッチアドレスを発生す
るステップと、を含む、データ処理装置を操作する方
法。
【0455】(15)複数の対応するアドレスにデータ
を記憶するメモリと、パケット転送リクエストと、パケ
ット転送パラメータとを受ける動作をする制御回路であ
って、該パケット転送パラメータが、スタートアドレス
と、アドレスのブロックを定義するディメンション値
と、ある数のガイドテーブルエントリと、テーブルポイ
ンタとを含む、前記制御回路と、前記数のガイドテーブ
ルエントリを含むガイドテーブルであって、それぞれの
ガイドテーブルエントリがアドレス値を含み、前記テー
ブルポインタが最初に前記ガイドテーブル内の第1ガイ
ドテーブルエントリをポイントする、前記ガイドテーブ
ルと、前記制御回路と、前記ガイドテーブルと、に結合
せしめられたアドレス発生回路であって、該アドレス発
生回路が、前記パケット転送パラメータから、前記スタ
ートアドレスと、前記ディメンション値と、前記数のガ
イドテーブルエントリと、前記テーブルポインタとを受
ける動作をし、前記アドレス発生回路が、前記ガイドテ
ーブルエントリに対応するメモリアクセス用のアドレス
のブロックの集合を、前記スタートアドレスと、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ルエントリの前記アドレス値と、の所定の組合せから、
ブロックスタートアドレスであって、該第1ブロックス
タートアドレスが前記スタートアドレスである、前記ブ
ロックスタートアドレスを形成し、該ブロックスタート
アドレスと、前記ディメンション値とからアドレスのブ
ロックを形成し、アドレスの該ブロックにメモリアクセ
スを行い、もしガイドテーブルエントリの前記数よりも
少ないメモリアクセスしか行われ終わっていなければ、
前記メモリアクセスに続いて、前記ガイドテーブルの次
のエントリをポイントするように前記テーブルポインタ
を更新する、ことによって形成する、前記アドレス発生
回路と、を含む、データ処理装置。
【0456】(16)前記アドレス発生回路が、前記ア
ドレス値を前記前のブロックスタートアドレスに加算す
ることにより、前記スタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記アドレス値と、の前記所定の組合せを形成す
る、第15項記載のデータ処理装置。
【0457】(17)前記アドレス発生回路が、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ル値を前記スタートアドレスに加算することにより、前
記スタートアドレスと、前記テーブルポインタによりポ
イントされた前記ガイドテーブルエントリの前記アドレ
ス値と、の前記所定の組合せを形成する、第15項記載
のデータ処理装置。
【0458】(18)前記パケット転送パラメータの前
記ディメンション値が、画素のアレイの水平ディメンシ
ョン値および垂直ディメンション値を含む、第15項記
載のデータ処理装置。
【0459】(19)前記メモリアクセスが、アドレス
の前記ブロックからのメモリリードから成る、第15項
記載のデータ処理装置。
【0460】(20)前記メモリアクセスが、アドレス
の前記ブロックへのメモリライトから成る、第15項記
載のデータ処理装置。
【0461】(21)単一半導体チップ上に、メモリ
と、パケット転送リクエストを発生する回路を有するデ
ータプロセッサと、前記メモリと、前記データプロセッ
サと、に接続されたデータ転送制御装置であって、該デ
ータ転送制御装置が、パケット転送リクエストと、パケ
ット転送パラメータとを受ける動作をする制御回路であ
って、該パケット転送パラメータが、スタートアドレス
と、アドレスのブロックを定義するディメンション値
と、ある数のガイドテーブルエントリと、テーブルポイ
ンタとを含む、前記制御回路と、前記数のガイドテーブ
ルエントリを含むガイドテーブルであって、それぞれの
ガイドテーブルエントリがアドレス値を含み、前記テー
ブルポインタが最初に前記ガイドテーブル内の第1ガイ
ドテーブルエントリをポイントする、前記ガイドテーブ
ルと、前記制御回路と、前記ガイドテーブルと、に結合
せしめられたアドレス発生回路であって、該アドレス発
生回路が、前記パケット転送パラメータから、前記スタ
ートアドレスと、前記ディメンション値と、前記数のガ
イドテーブルエントリと、前記テーブルポインタとを受
ける動作をし、前記アドレス発生回路が、前記ガイドテ
ーブルエントリに対応するメモリアクセス用のアドレス
のブロックの集合を、前記スタートアドレスと、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ルエントリの前記アドレス値と、の所定の組合せから、
ブロックスタートアドレスであって、該第1ブロックス
タートアドレスが前記スタートアドレスである、前記ブ
ロックスタートアドレスを形成し、該ブロックスタート
アドレスと、前記パケット転送パラメータの前記ディメ
ンション値とからアドレスのブロックを形成し、アドレ
スの該ブロックにメモリアクセスを行い、もしガイドテ
ーブルエントリの前記数よりも少ないメモリアクセスし
か行われ終わっていなければ、前記メモリアクセスに続
いて、前記ガイドテーブルの次のエントリをポイントす
るように前記テーブルポインタを更新する、ことによっ
て形成する、前記アドレス発生回路と、を含む、前記デ
ータ転送制御装置と、を備えた、集積回路。
【0462】(22)前記アドレス発生回路が、前記ア
ドレス値を前記前のブロックスタートアドレスに加算す
ることにより、前記スタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記アドレス値と、の前記所定の組合せを形成す
る、第21項記載の集積回路。
【0463】(23)前記アドレス発生回路が、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ル値を前記スタートアドレスに加算することにより、前
記スタートアドレスと、前記テーブルポインタによりポ
イントされた前記ガイドテーブルエントリの前記アドレ
ス値と、の前記所定の組合せを形成する、第21項記載
の集積回路。
【0464】(24)前記パケット転送パラメータの前
記ディメンション値が、画素のアレイの水平ディメンシ
ョン値および垂直ディメンション値を含む、第21項記
載の集積回路。
【0465】(25)前記メモリアクセスが、アドレス
の前記ブロックからのメモリリードから成る、第21項
記載の集積回路。
【0466】(26)前記メモリアクセスが、アドレス
の前記ブロックへのメモリライトから成る、第21項記
載の集積回路。
【0467】(27)前記単一半導体チップ上に含まれ
ない外部メモリにアクセスする動作をする外部メモリイ
ンタフェースをさらに含み、前記アドレス発生回路が、
前記メモリおよび前記外部メモリの双方を含むアドレス
を発生する、第21項記載の集積回路。
【0468】(28)複数の位置に情報を記憶するステ
ップと、パケットリクエストを受けて、スタートアドレ
スと、制御信号と、パッチ値と、を供給するステップ
と、該スタートアドレスと、該制御信号と、該パッチ値
と、に応答してパッチアドレスを発生するステップと、
を含む、画像処理装置を操作する方法。
【0469】(29)本発明は、メモリアクセスのアド
レスの制御様式に関する。本発明のデータ処理装置は、
メモリと、制御回路と、ガイドテーブルと、アドレス発
生回路と、を含む。該制御回路は、パケット転送リクエ
ストと、パケット転送パラメータとを受ける。該パケッ
ト転送パラメータは、スタートアドレスと、ある数のガ
イドテーブルエントリと、テーブルポインタとを含む。
前記ガイドテーブルは、ガイドテーブルエントリを含
み、それぞれのガイドテーブルエントリは、アドレス値
およびアドレスのブロックを定義するディメンション値
を含む。前記テーブルポインタは、最初に前記ガイドテ
ーブル内の第1ガイドテーブルエントリをポイントす
る。前記アドレス発生回路は、前記スタートアドレス
と、前記ガイドテーブルエントリの前記アドレス値と、
の所定の組合せから形成されるスタートアドレスを有す
る、それぞれのガイドテーブルエントリに対応するメモ
リアクセス用のアドレスのブロックの集合を形成する。
アドレスの該ブロックは、前記ディメンション値から形
成される。前記メモリアクセスに続いて、前記アドレス
発生回路は、前記ガイドテーブルの次のエントリをポイ
ントするように前記テーブルポインタを更新する。前記
アドレス発生回路は、随意選択的に、前記アドレス値を
前記前のブロックスタートアドレスに加算することによ
り、または、前記ガイドテーブル値を前記スタートアド
レスに加算することにより、スタートアドレスと、ガイ
ドテーブルエントリのアドレス値と、の前記所定の組合
せを形成しうる。前記メモリアクセスは、アドレスの前
記ブロックからのメモリリード、または、アドレスの前
記ブロックへのメモリライトでありうる。実施例におい
ては、メモリと、データプロセッサと、上述のメモリア
クセスを行うデータ転送制御装置とは、単一半導体チッ
プ内に構成される。該データ転送制御装置は、オンチッ
プメモリと同様に、外部メモリにアクセスしうる。
【0470】警告:著作権1991年テキサスインスツ
ルメンツ社 本特許文献の開示の一部は、著作権およ
びマスクワーク保護の対象となる資料を含む。この著作
権およびマスクワークの所有者は、米国特許庁の特許フ
ァイルまたは記録にある特許文献または特許の開示の、
何人によるコピーに反対するものではないが、それ以外
に対しては、すべての著作権およびマスクワークの権利
を留保するものである。
【0471】関連出願とのクロスレファレンス:本願
は、下記の米国特許および継続中の米国特許出願に開示
された発明の改良に関するもので、下記の特許および米
国特許出願はすべてテキサスインスツルメンツ社に譲渡
されたものであり、これらのいずれも参考例として援用
する。
【0472】1994年6月21日に出願された「プロ
セッサとメモリをクロスバーリンクしたマルチプロセッ
サおよびその作動方法」を発明の名称とする、米国特許
出願第08/263,501号。この出願は、1993
年10月12日出願され現在放棄された米国特許出願第
08/135,754号の継続出願であり、1992年
8月21日に出願され現在放棄されている米国特許出願
第07/933,865号の継続出願であり、この米国
特許出願第07/933,865号は、1989年11
月17日出願され現在放棄されている米国特許出願第0
7/435,591号の継続出願である。
【0473】1989年11月17日出願され1993
年5月18日に発行された「SIMD/MIMD再構成
可能なマルチプロセッサおよびオペレーション方法」を
発明の名称とする米国特許第5,212,777号。
【0474】1989年11月17日出願され現在放棄
されている米国特許出願第07/437,856号の継
続出願である、1992年6月5日出願され現在放棄さ
れている米国特許出願第07/895,565号の継続
出願である、1994年6月22日出願された「マルチ
プロセッサ用再構成可能な通信およびそのオペレーショ
ン方法」を発明の名称とする米国特許出願第08/26
4,111号。
【0475】1989年11月17日出願され現在放棄
されている米国特許出願第07/437,852号の継
続出願である、1994年6月22日出願された「小エ
リアのクロスバーおよびそのオペレーション方法」を発
明の名称とする米国特許出願第08/264,582
号。
【0476】1989年11月17日出願され現在放棄
されている米国特許出願第07/437,853号の継
続出願である、1993年5月15日出願された「同期
されたMIMDマルチ処理システムおよびそのオペレー
ション方法」を発明の名称とする米国特許出願第08/
032,530号。
【0477】1989年11月17日出願され、199
3年3月23日発行された「スライスされたアドレス指
定用マルチプロセッサおよびそのオペレーション方法」
を発明の名称とする米国特許第5,197,140号。
【0478】1989年11月17日出願され、199
4年8月16日発行された「画像データの二進ストリー
ム内の1の数をカウントするための相互接続された半加
算器のマトリックスを利用する1をカウントする回路」
を発明の名称とする米国特許第5,339,447号。
【0479】1989年11月17日出願され、199
3年8月24日に発行された「SIMDモードで作動す
る際にデータメモリとしてMIMDインストラクション
メモリを再利用するデュアルモードのSIMD/MIM
Dプロセサ」を発明の名称とする米国特許第5,23
9,654号。
【0480】1989年11月17日出願され現在放棄
されている米国特許出願第437,854号の継続出願
である、1992年6月29日に出願された「イメージ
ングコンピュータおよびそのオペレーション方法」を発
明の名称とする米国特許出願第07/911,562
号。
【0481】1989年11月17日出願され、199
3年7月6日に発行された「集積クロスポイントロジッ
クを有するスイッチマトリックスおよびそのオペレーシ
ョン方法」を発明の名称とする米国特許第5,226,
125号。
【0482】1993年11月30日出願された「バレ
ルローテータを備えた3入力端論理ユニット」を発明の
名称とする米国特許出願第08/160,299号。
【0483】1993年11月30日出願された「複数
の独立部分および各部分からの結果の表示ビットを記憶
するレジスタを有する算術諭理ユニット」を発明の名称
とする米国特許出願第08/158,742号。
【0484】1993年11月30日出願された「レジ
スタペア条件からのメモリストア」を発明の名称とする
米国特許出願第08/160,118号。
【0485】1993年11月30日出願され現在放棄
されている米国特許出願第08/160,115号の継
続出願である、1994年10月17日出願された「繰
り返しごとに複数の商ビットを形成する繰り返し割り算
装置、システムおよび方法」。
【0486】1993年11月30日出願された「混合
された算術およびブール組み合わせを形成する3入力端
算術論理ユニット」を発明の名称とする米国特許出願第
08/159,285号。
【0487】1993年11月30日出願された「単一
データワードの複数の等しい部分におけるデータの合計
を計算する方法、装置およびシステム」を発明の名称と
する米国特許出願第08/160,119号。
【0488】1993年11月30日出願された「サイ
ズ検出のため最小位ビットの変化を用いるハフマンコー
ド化方法、回路およびシステム」を発明の名称とする米
国特許出願第08/159,359号。
【0489】1993年11月30日出願された「負の
数を変換するため条件付き減算を利用するハフマンコー
ド化方法、回路およびシステム」を発明の名称とする米
国特許出願第08/160,296号。
【0490】1993年11月30日出願された「複数
の絶対値の差を合計するための方法、装置およびシステ
ム」を発明の名称とする米国特許出願第08/160,
112号。
【0491】1993年11月30日出願された「排他
的ORによる最も左側の1の検出を利用する繰り返し割
り算装置、システムおよび方法」を発明の名称とする米
国特許出願第08/160,120号。
【0492】1993年11月30日出願された「2つ
の独立アドレスの選択的マージを利用するアドレス発生
器」を発明の名称とする米国特許出願第08/160,
114号。
【0493】1993年11月30日出願された「相関
化方法、装置およびシステム」を発明の名称とする米国
特許出願第08/160,116号。
【0494】1993年11月30日出願された「複数
の独立したプロセッサオペレーションを制御する長いイ
ンストラクションワード」を発明の名称とする米国特許
出願第08/160,297号。
【0495】1993年11月30日出願された「直交
データ変換のための回転レジスタ」を発明の名称とする
米国特許出願第08/159,346号。
【0496】1993年11月30日出願された「メデ
ィアンフィルタ方法、回路およびシステム」を発明の名
称とする米国特許出願第08/159,652号。
【0497】1993年11月30日出願された「条件
レジスタソース選択を備えた算術論理ユニット」を発明
の名称とする米国特許出願第08/159,344号。
【0498】1993年11月30日出願された「繰り
返しによる除算のための装置、システムおよび方法」を
発明の名称とする米国特許出願第08/160,301
号。
【0499】1993年11月30日出願された「冗長
コード化された乗算の結果を利用する乗算丸め方法」を
発明の名称とする米国特許出願第08/159,650
号。
【0450】1993年11月30日出願された「スプ
リット乗算方法」を発明の名称とする米国特許出願第0
8/159,349号。
【0451】1993年11月30日出願された「ゼロ
の条件テストを含む混合形条件テストおよびブランチ演
算」を発明の名称とする米国特許出願第08/158,
741号。
【0452】1993年11月30日出願された「パッ
クされたワード対の乗算方法」を発明の名称とする米国
特許出願第08/160,302号。
【0453】1993年11月30日出願された「シフ
タを備えた3入力端算術論理ユニット」を発明の名称と
する米国特許出願第08/160,573号。
【0454】1993年11月30日出願された「マス
ク発生器を備えた3入力端算術論理ユニット」を発明の
名称とする米国特許出願第08/159,282号。
【0455】1993年11月30日出願された「バレ
ルローテータおよびマスク発生器を備えた3入力端算術
論理ユニット」を発明の名称とする米国特許出願第08
/160,111号。
【0456】1993年11月30日出願された「シフ
タおよびマスク発生器を備えた3入力端算術論理ユニッ
ト」を発明の名称とする米国特許出願第08/160,
298号。
【0457】1993年11月30日出願された「第2
入力と第3入力のブール組み合わせプラス第2入力と第
3入力の第2ブール組み合わせが加算された第1入力の
合計を計算する3入力端算術論理ユニット」を発明の名
称とする米国特許出願第08/159,345号。
【0458】1993年11月30日出願された「第
1、第2および第3入力のブール組み合わせプラス第
1、第2、第3入力の第2ブール組み合わせの合計を計
算する3入力端算術論理ユニット」を発明の名称とする
米国特許出願第08/160,113号。
【0459】1993年11月30日出願された「桁上
げ伝搬ロジックを利用する3入力端算術論理ユニット」
を発明の名称とする米国特許出願第08/159,64
0号。
【0460】1993年11月30日出願された「書き
込み優先権を利用するIF、THENオペレーションの
ためのデータ処理装置、システムおよび方法」を発明の
名称とする米国特許出願第08/160,300号。
【0461】1993年3月8日出願された「MPベク
トルインストラクションFP+LOAD/STORE」
を発明の名称とする米国特許出願第08/207,98
9号(TI整理番号15521)。
【0462】1993年3月8日出願された「不動点少
数のための正規化方法」を発明の名称とする米国特許出
願第08/ 号(TI整理番号18695)。
【0463】本願は下記の米国特許出願とも関連してお
り、これらのいずれも参考例としてここに援用する。
【0464】1993年3月8日出願された「PP転送
プロセッサにおけるトランスペアレンシーおよび平面マ
スキング」を発明の名称とする米国特許出願第08/2
08,413号。
【0465】1993年3月8日出願された「トランス
ペアレンシーを備えたPIXBLT」を発明の名称とす
る米国特許出願第08/208,161号。
【0466】1993年3月8日出願された「プロセッ
サからのメッセージパッシングおよびブラストインタラ
プト」を発明の名称とする米国特許出願第08/20
8,171号。
【0467】1993年3月8日出願された「X、Y次
元を備えたガイド転送および変数ステッピング」を発明
の名称とする米国特許出願第08/209,123号。
【0468】1993年3月8日出願された「ガイド転
送ラインドローイング」を発明の名称とする米国特許出
願第08/209,124号。
【0469】1993年3月8日出願された「異なるメ
モリタイプを同時に制御する転送プロセッサ用メモリイ
ンターフェース」を発明の名称とする米国特許出願第0
8/208,517号。
【0470】1993年3月8日出願された「TP転送
プロセッサのアーキテクチャ」を発明の名称とする米国
特許出願第08/207,503号。
【図面の簡単な説明】
【図1】本発明の画像処理システムのシステムアーキテ
クチャを示す図。
【図2】単一集積回路マルチプロセッサのアーキテクチ
ャを示す図。
【図3】デジタル画像/グラフィックプロセッサのイン
タラプトイネーブルおよびインタラプトフラグレジスタ
を示す図。
【図4】共通ワードのフイールドを示す図。
【図5】デジタル画像/グラフィックプロセッサの通信
レジスタを示す図。
【図6】画像システムバスの優先度およびオペレーショ
ン方法を示す図。
【図7】クロスバー優先度およびマルチプロセッサ集積
回路内のオペレーション方法を示す図。
【図8】本発明の実施例の転送プロセッサ構造を示す
図。
【図9】LASTPAGEレジスタの使用を示す図。
【図10】外部メモリシーケンサのステート図およびオ
ペレーション方法を示す図。
【図11】ソースマシン構造を示す図。
【図12】パケット転送FIFOバッファ、キャッシュ
バッファ算術演算およびブロックの例を示す図。
【図13】バッファカウント算術演算およびブロックの
例を示す図。
【図14】aは小エンディアンパケット転送FIFOバ
ッファの例および方法を示す図。bは大エンディアンパ
ケット転送FIFOバッファの例および方法を示す図。
【図15】プロセッサのパラメータメモリの使用例を示
す図。
【図16】リンクされたリストパケット転送方法の一例
を示す図。
【図17】次元の定められたパケット転送方法の一例を
示す図。
【図18】固定パッチのデルタガイドパケット転送方法
の一例を示す図。
【図19】固定パッチのオフセットガイド転送方法の一
例を示す図。
【図20】固定パッチのオフセットガイドルックアップ
テーブルパケット転送方法の一例を示す図。
【図21】小エンディアン可変パッチガイドテーブルフ
ォーマットを示す図。
【図22】大エンディアン可変パッチガイドテーブルフ
ォーマットを示す図。
【図23】可変パッチデルタガイドパケット転送方法の
一例を示す図。
【図24】可変パッチオフセットガイドパッチ転送方法
の一例を示す図。
【図25】ソーストランスペアレンシーパラメータを備
えた、次元の定められたパケット転送の一例を示す図。
【図26】フィルパラメータを備えた、次元の定められ
たパケット転送の一例を示す図。
【図27】次元の定められたソースおよび固定パッチガ
イド宛て先パケット転送パラメータの一例を示す図。
【図28】次元の定められたソースおよび可変パッチガ
イド宛て先パケット転送パラメータの一例を示す図。
【図29】次元の定められたブロック書き込みパケット
転送パラメータの一例を示す図。
【図30】パケット転送パラメータのエンコーディング
を示す図。
【図31】パケット転送タイマー構造を示す図。
【図32】一時中断されたパケット転送パラメータの記
憶方怯の一例を示す図。
【図33】一時中断されたパケットサービスパラメータ
のエンコーディングを示す図。
【図34】小エンディアンモードでの8×ブロック書き
込みビット再マッピングにおけるビット再マッピングの
一例を示す図。
【図35】小エンディアンモードでの4×ブロック書き
込みビット再マッピングにおけるビット再マッピングの
一例を示す図。
【図36】シリアルレジスタ転送方法の−例を示す図。
【図37】トランスペアレンシーオペレーションを示す
図。
【図38】トランスペアレンシーおよびバイト書き込み
ロジック回路の実施例を示す図。
【図39】高品位テレビシステムの一実施例を示す図。
【図40】単一のデジタル画像/グラフィックプロセッ
サを有するマルチプロセッサ集積回路を含むカラーファ
クシミリシステムの一実施例を示す図。
【符号の説明】
1 ホスト処理システム 2 ホスト周辺デバイス 3 撮像デバイス 4 画像キャプチャコントローラ 5、6 ビデオラム 7 ビデオパレット 8 ビデオディスプレイ 9 メモリ 16 トランシーバ 100 マルチプロセッサ集積回路
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成7年6月8日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 画像/グラフィックス処理用のデータ
処理装置およびその操作方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デジタルデータ処理の
技術分野にあり、より詳細には特にデジタル画像/グラ
フィック処理のようなデジタルデータ処理を行うマイク
ロプロセッサ回路アーキテクチャおよび方法に関する。
【0002】
【従来技術】本発明の実施例は用途が多く、そのうちの
いくつかは説明のための背景として本明細書に説明した
コンピュータグラフィックの分野に関する。ビットマッ
プグラフィックとして知られているコンピュータグラフ
ィックの分野では、コンピュータメモリは、画像のうち
の個々の画素すなわちピクセルのデータを画像内のその
ピクセルの位置に対応するメモリ位置に記憶するように
なっている。この画像はディスプレイすべき画像、また
は操作し、記憶し、ディスプレイし、または再送信する
取り込み画像とすることができる。ビットマップコンピ
ュータグラフィックの技術分野は、ダイナミックランダ
ムアクセスメモリ(DRAM)のコストが低下し、かつ
記憶容量が増加したこと、更にマイクロプロセッサのコ
ストが低下し、処理パワーが増大したことにより、大幅
に有利となった。これらの部品のコストおよび性能が有
利に変わったことにより、より大規模で、かつより複雑
なコンピュータ画像システムを経済的に実現することが
可能となった。
【0003】
【発明が解決しようとする課題】ビットマップグラフィ
ックの分野は、画像データ操作に使用される処理タイプ
の変遷において、数回の段階を経験している。まず最初
に、ビットマップグラフィックをサポートするコンピュ
ータシステムは、すべてのビットマップ演算のためにシ
ステムプロセッサを使用していた。このタイプのシステ
ムには数種の欠点がある。第1の欠点として、コンピュ
ータシステムのプロセッサは、ビットマップグラフィッ
クの取り扱いのために特に設計されたものではないこと
が挙げられる。汎用計算に極めて妥当なデザイン選択
は、ビットマップグラフィックシステムには不適当であ
る。従って、ある種のルーチングラフィックのタスクは
低速でしか作動しない。更にビットマップグラフィック
の画像操作のために必要な処理は、他の演算も低速にす
るほど、システムのプロセッサの計算容量に負荷をかけ
ることが、すぐに判った。
【0004】ビットマップグラフィック処理の革新にお
ける次の段階は、専用ハードウェアのグラフィックコン
トローラにあった。これらデバイスは、システムプロセ
ッサの制御により、簡単な図形、例えばライン、楕円お
よび円を描画できる。これらデバイスのうちで、ピクセ
ルブロック転送(PixBlt)を行うこともできるデ
バイスもある。ピクセルブロック転送とは、メモリのあ
る部分から他の部分へ画像データをメモリ上で移動する
操作のことである。ピクセルブロック転送は、ディスプ
レイされていないメモリからビットマップディスプレイ
メモリに転送することにより、標準的画素、例えば特定
タイプのフォントのアルファニューメリックキャラクタ
をディスプレイ内に入れるのに有効である。最も頻繁に
使用されるグラフィック機能のうちのいくつかを行うた
めのビルトインアルゴリズムは、システム性能を改善す
る一つの方法を提供するものである。グラフィックコン
ピュータシステムは、かかるハードウェアのグラフィッ
クコントローラでほとんど実現されていないような他の
機能を有利に含むこともできる。これらの他の機能は、
システムプロセッサによりソフトウェアで実現できる。
これらのハードウェアグラフィックコントローラでは、
一般にシステムプロセッサのビットマップメモリへのご
く限られたアクセスを可能とし、これによりシステムソ
フトウェアがハードウェアのグラフィックコントローラ
の機能の固定された組の機能を拡張できる程度が制限さ
れている。
【0005】グラフィックシステムプロセッサは、ビッ
トマップグラフィック処理の革新において、別の進歩に
寄与した。グラフィックシステムプロセッサとはマイク
ロプロセッサの属性のすべてを有し、更にビットマップ
グラフィックのための特殊機能を含むプログラマブルデ
バイスである。テキサスインスツルメンツ社によって製
造されたTMS34010およびTMS34020グラ
フィックシステムプロセッサは、このクラスのデバイス
の代表例である。これらグラフィックシステムプロセッ
サは、マイクロプロセッサと同様に、記憶されたプログ
ラムに応答するもので、演算論理ユニット、レジスタフ
ァイル内のデータ記憶装置ならびにプログラムフローお
よび外部データメモリの制御により、データを操作でき
る能力を有する。更にこれらデバイスは適当なプログラ
ム制御で作動する特殊グラフィックオペレーション用ハ
ードウェアを含む。これらシステムプロセッサのインス
トラクションセット内の付加インストラクションが、こ
の特殊グラフィック用ハードウェアを制御するようにな
っている。これらインストラクションおよびこれらをサ
ポートするハードウェアは多くのコンテクストで有効な
ベースレベルのグラフィック機能を実行するように選択
されている。従って特定の問題のために選択されたアル
ゴリズムを用いることにより、多くの異なるグラフィッ
クアプリケーションに対してプログラムできる。これに
より、ハードウェア用コントローラからプログラムマイ
クロプロセッサに変えることによって得られる有効性の
増大と同様に有効性が増す。かかるグラフィックシステ
ムプロセッサは、マイクロプロセッサと同様にプログラ
ム可能なデバイスであるので、これらはスタンドアロー
ングラフィックプロセッサ、システムプロセッサにスレ
ーブ制御されるグラフィックコプロセッサ、または密に
結合されたグラフィックコントローラとして作動でき
る。
【0006】いくつかの分野では、経済的に実現できる
ように、よりコスト的に効果的であり、パワーのあるグ
ラフィックオペレーションを利用することが好ましい。
これらの例としては、ビデオ会議、フル動画ビデオによ
るマルチメディア計算、高品位テレビ、カラーファクシ
ミリ、スマートフォトコピー、画像認識システムおよび
デジタル写真がある。これらの分野の各々には固有の問
題がある。画像データ圧縮およびデコンプレッションの
問題はこれらアプリケーションのいくつかにおいて共通
のテーマとなっている。画像および特定のフルモーショ
ンのビデオに必要な送信バンド幅の値および記憶容量は
大きい。許容可能な最終画質を生じさせるような効率的
なビデオ圧縮およびデコンプレッションを用いない場
合、これらのアプリケーションは送信バンド幅および記
憶容量に関連するコストによって制限されてしまう。こ
の分野では、画像処理機能、例えば画像認識およびグラ
フィック機能、例えばディスプレイ制御の双方をサポー
トできる単一システムに対するニーズもある。
【0007】
【課題を解決するための手段】本発明は、メモリアクセ
スのアドレスの制御様式に関する。本発明のデータ処理
装置は、メモリと、制御回路と、ガイドテーブルと、ア
ドレス発生回路と、を含む。該制御回路は、パケット転
送リクエストと、パケット転送パラメータとを受ける。
該パケット転送パラメータは、スタートアドレスと、あ
る数のガイドテーブルエントリと、テーブルポインタと
を含む。前記ガイドテーブルは、ガイドテーブルエント
リを含み、それぞれのガイドテーブルエントリは、アド
レス値およびアドレスのブロックを定義するディメンシ
ョン値を含む。前記テーブルポインタは、最初に前記ガ
イドテーブル内の第1ガイドテーブルエントリをポイン
トする。前記アドレス発生回路は、それぞれのガイドテ
ーブルエントリに対応するメモリアクセス用のアドレス
のブロックの集合を形成する。前記アドレス発生回路
は、前記スタートアドレスと、前記テーブルポインタに
よりポイントされた前記ガイドテーブルエントリの前記
アドレス値と、の所定の組合せから、ブロックスタート
アドレスを形成する。第1ブロックスタートアドレス
は、前記スタートアドレスである。前記アドレス発生回
路は、前記ブロックスタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記ディメンション値と、からアドレスのブロッ
クを形成する。前記アドレス発生回路は、前記ブロック
スタートアドレスと、前記ガイドテーブルエントリの前
記ディメンション値と、からアドレスのブロックを形成
する。前記データ処理装置は、アドレスの該ブロックに
メモリアクセスを行う。該メモリアクセスに続いて、前
記アドレス発生回路は、前記ガイドテーブルの次のエン
トリをポイントするように前記テーブルポインタを更新
する。
【0008】前記アドレス発生回路は、随意選択的に、
前記アドレス値を前記前のブロックスタートアドレスに
加算することにより、スタートアドレスと、ガイドテー
ブルエントリのアドレス値と、の前記所定の組合せを形
成しうる。これは、デルタガイデッドアドレッシングと
して公知である。前記アドレス発生回路は、随意選択的
に、前記ガイドテーブル値を前記スタートアドレスに加
算することにより、スタートアドレスと、ガイドテーブ
ルエントリのアドレス値と、の前記所定の組合せを形成
しうる。これは、オフセットガイデッドアドレッシング
として公知である。
【0009】それぞれのガイドテーブルエントリの前記
ディメンション値は、画素のアレイの水平ディメンショ
ン値および垂直ディメンション値を含む。前記メモリア
クセスは、アドレスの前記ブロックからのメモリリード
でありうる。前記メモリアクセスは、アドレスの前記ブ
ロックへのメモリライトのものでありうる。実施例にお
いては、メモリと、データプロセッサと、上述のメモリ
アクセスを行うデータ転送制御装置とは、単一半導体チ
ップ内に構成されうる。該データ転送制御装置は、オン
チップメモリと同様に、外部メモリにアクセスしうる。
【0010】
【実施例】図1は、本発明により画像およびグラフィッ
ク処理のために製造されたマルチプロセッサの集積回路
を含む画像データ処理システムのブロック図である。こ
のデータ処理システムは、ホスト処理システム1を含
む。このホスト処理システム1は、図1のデータ処理シ
ステムのうちのホストシステムに対しデータ処理を行
う。ホスト処理システム1にはプロセッサ、少なくとも
一つの入力デバイス、長期記憶デバイス、リードオンリ
ーメモリ、ランダムアクセスメモリおよびホストシステ
ムバスに結合された少なくとも一つのホスト周辺機器が
含まれる。ホスト処理システム1は、その処理機能によ
り画像データ処理システムの機能を制御する。
【0011】マルチプロセッサ集積回路100は、図1
の画像データ処理システムの画像演算のためのデータ操
作および計算を含むデータ処理のほとんどを行う。マル
チプロセッサ集積回路100は、画像システムバスに双
方向に結合されており、この画像システムバスによりホ
スト処理システム1と通信するようになっている。図1
の回路配列では、マルチプロセッサ集積回路100はホ
スト処理システム1と独立して作動する。しかしながら
マルチプロセッサ集積回路100はホスト処理システム
1に応答できる。
【0012】図1は2つの画像システムを示す。撮像デ
バイス3は画像入力デバイスとして働く文書スキャナ、
電荷結合デバイススキャナまたはビデオカメラを示し、
撮像デバイス3はこの画像を画像キャプチャコントロー
ラ4へ送り、コントローラ4はこの画像をデジタル化
し、画像をマスタースキャンフレームに変換するように
働く。このフレームキャプチャプロセスは、マルチプロ
セッサ集積回路100からの信号により制御される。こ
うして形成された画像フレームは、ビデオランダムアク
セスメモリ5に記憶される。ビデオランダムアクセスメ
モリ5は、マルチプロセッサ集積回路100により画像
処理のためのデータ転送を可能とする画像システムバス
を介してアクセスできる。
【0013】第2画像システムはビデオディスプレイを
ドライブする。マルチプロセッサ集積回路100はピク
セルマップを介して、ディスプレイされる画像を指定す
るビデオランダムアクセスメモリ6と通信する。マルチ
プロセッサ集積回路100は画像システムバスを介し、
ビデオランダムアクセスメモリに記憶された画像データ
を制御する。この画像に対応するデータはビデオランダ
ムアクセスメモリ6から再コールされ、ビデオパレット
7に供給される。ビデオパレット7は、この再コールさ
れたデータを別のカラースペースに変換し、ピクセルご
とのビット数等を拡張できる。この変換はルックアップ
テーブルによって行うことができる。ビデオパレット7
はビデオディスプレイ8を駆動するための適当なビデオ
信号も発生する。これらビデオ信号がアナログ信号であ
れば、ビデオパレット7は適当なデジタル−アナログ変
換機能も含む。このビデオパレット7から出力されるビ
デオレベル信号は、カラー、飽和および輝度情報を含む
ことができる。マルチプロセッサ集積回路100は、ビ
デオパレット7内に記憶されたデータを制御し、データ
変換プロセスおよび画像フレームのタイミングを制御す
る。マルチプロセッサ集積回路100は、ビデオパレッ
ト7の制御によりビデオディスプレイ画像のうちのフレ
ーム当たりのライン長さおよびライン数、同期信号およ
びリトレース信号およびブランキング信号を制御でき
る。重要なことに、マルチプロセッサ集積回路100
は、グラフィックディスプレイ情報をビデオランダムア
クセスメモリ6内のどこに記憶するかを決定し、制御す
る。その後ビデオランダムアクセスメモリ6からの読み
出しの間、マルチプロセッサ集積回路100はビデオラ
ンダムアクセスメモリ6からの読み出しシーケンス、ア
クセスすべきアドレスおよびビデオディスプレイ8に所
望のグラフィック画像を発生するのに必要な制御情報を
決定する。
【0014】ビデオディスプレイ8は、ユーザーによっ
て見ることがでいるように、指定されたビデオデータを
発生する。これには2つの技術が広く使用されている。
第1の技術は、各ピクセルにおける色、色合い、輝度お
よび飽和度の点でビデオデータを特定するものであり、
第2の技術では、各ピクセルに対し、赤、青および緑の
カラーレベルを指定する。ビデオディスプレイ8のため
のビデオパレット7は、所定の技術とコンパーチブルと
なるように設計され、製造されている。図1は、画像シ
ステムバスに結合された付加メモリ9を示している。こ
の追加メモリは、付加ビデオランダムアクセスメモリ、
ダイナミックランダムアクセスメモリ、スタッティック
ランダムアクセスメモリまたはリードオンリーメモリを
含むことができる。マルチプロセッサ集積回路100は
その全体または一部をメモリ9に記憶されたプログラム
により制御できる。このメモリ9も、種々のタイプのグ
ラフィック画像データを記憶できる。更にマルチプロセ
ッサ集積回路100は、ビデオランダムアクセスメモ
リ、ダイナミックランダムアクセスメモリおよびスタッ
ティックランダムアクセスメモリのためのメモリインタ
ーフェース回路を含むことが好ましい。このように、ビ
デオランダムアクセスメモリ5または6を用いることな
く、マルチプロセッサ集積回路100を使用してシステ
ムを構築できる。
【0015】図1はトランシーバ16を示している。こ
のトランシーバ16は、画像システムバスと通信チャン
ネルとの間で変換と双方向の通信とを行うものである。
このトランシーバ16を用いたシステムの一例としてビ
デオ会議がある。図1に示された画像データ処理システ
ムは、第1地点にいる人物のビデオ画像を形成するの
に、撮像デバイス3と、画像キャプチャコントローラ4
を用いる。マルチプロセッサ集積回路100はビデオ圧
縮を行い、トランシーバ16および通信チャンネルを介
して別の地点にある同様な画像データ処理システムへこ
の圧縮したビデオ信号を送信する。トランシーバ16
は、通信チャンネルを介して遠隔地の画像データ処理シ
ステムからの同じように圧縮されたビデオ信号を受信す
る。マルチプロセッサ集積回路100はこの受信した信
号をデコンプレスし、ビデオランダムアクセスメモリ6
およびビデオパレット7を制御して、ビデオディスプレ
イ8上に対応するデコンプレスされたビデオ信号をディ
スプレイする。本発明は、画像データ処理システムがト
ランシーバ16を利用するような例のみに限定されるも
のでないことに留意されたい。更に双方向の通信は同じ
タイプの信号である必要はないことに留意されたい。例
えば対話型ケーブルテレビ信号では、ケーブルシステム
のヘッドが圧縮ビデオ信号を通信チャンネルを介して画
像データ処理システムへ送り、画像データ処理システム
は制御およびデータ信号をトランシーバ16および通信
チャンネルを介してケーブルシステムヘッドへ送り返す
ことができる。
【0016】図1は、ホスト処理システム1を含むシス
テム内で具現化されたマルチプロセッサ集積回路100
を示す。当業者であれば、マルチプロセッサ集積回路1
00を有効なシステムのうちの単なるプロセッサとして
も使用できるような本発明の好ましい実施例を、開示内
容から実現できよう。かかるシステムでは、マルチプロ
セッサ集積回路100はシステムの機能すべてを実行す
るようプログラムされる。このマルチプロセッサ集積回
路100は画像処理に使用されるシステムで特に有効で
ある。マルチプロセッサ集積回路100は複数の同一プ
ロセッサを含むことが好ましい。これらプロセッサの各
々をデジタル画像/グラフィックプロセッサと称す。こ
のような記載は、単に便宜的なものである。本発明を実
施したプロセッサは、一つの集積回路または複数の集積
回路上に別個に製造したプロセッサとすることができ
る。単一集積回路上に製造する場合、このような単一集
積回路はデジタル画像/グラフィックプロセッサにより
使用されるリードオンリーメモリおよびランダムアクセ
スメモリをオプションとして含むことができる。
【0017】図2は、マルチプロセッサ集積回路100
のアーキテクチャを示す。マルチプロセッサ集積回路1
00は、2つのランダムアクセスメモリ10および20
(その各々は複数の部分に別れている)と、クロスバー
50と、マスタープロセッサ60と、デジタル画像/グ
ラフィックプロセッサ71、72、73および74と、
システムメモリへのアクセスを仲介する転送コントロー
ラ80と、独立した第1および第2画像メモリへのアク
セスを制御できるフレームコントローラ90とを含む。
マイクロプロセッサ集積回路100は、高度のオペレー
ションパラレリズム(並行性)を提供する。これは画像
処理およびグラフィックオペレーション、例えばマルチ
メディアの計算において有効である。これらプロセッサ
が有効となる画像およびグラフィック処理以外の計算ア
プリケーションもあるので、画像/グラフィックプロセ
ッサとしてプロセッサ71、72、73および74を参
考としたことは、単なる便宜的なものである。
【0018】マイクロプロセッサ集積回路100は2つ
のランダムアクセスメモリを含む。ランダムアクセスメ
モリ10は、主にマスタープロセッサ60の専用であ
る。このメモリは2つのインストラクションキャッシュ
メモリ11および12と、2つのデータキャッシュメモ
リ13および14と、パラメータメモリ15を含む。こ
れらメモリ部分は物理的には同一とすることができる
が、異なるように接続し、使用することもできる。ラン
ダムアクセスメモリ20はマスタープロセッサ60およ
びデジタル画像/グラフィックプロセッサ71、72、
73および74の各々によってアクセスできる。各デジ
タル画像/グラフィックプロセッサ71、72、73お
よび74は、5つの対応するメモリ部分を有する。これ
らはインストラクションキャッシュメモリ、3つのデー
タメモリおよび1つのパラメータメモリを含む。従って
デジタル画像/グラフィックプロセッサ71は対応する
インストラクションキャッシュメモリ21、データメモ
リ22、23、24およびパラメータメモリ25を有
し、デジタル画像/グラフィックプロセッサ72は対応
するインストラクションキャッシュメモリ26と、デー
タメモリ27、28、29およびパラメータメモリ30
を有し、デジタル画像/グラフィックプロセッサ73は
対応するインストラクションキャッシュメモリ31と、
データメモリ32、33、34およびパラメータメモリ
35を有し、デジタル画像/グラフィックプロセッサ7
4は対応するインストラクションキャッシュメモリ36
と、データメモリ37、38、39およびパラメータメ
モリ40とを有する。ランダムアクセスメモリ10の部
分と同じように、これらメモリ部分は物理的に同一にで
きるが、異なるように接続し、使用することもできる。
メモリ10および20のうちのこれらメモリ部分の各々
は、例えば20Kバイトを含み、マルチプロセッサ集積
回路100内の総メモリは50Kバイトとなる。
【0019】マルチプロセッサ集積回路100は、複数
の独立したパラレルデータ転送を用いることにより、プ
ロセッサとメモリとの間で高レートのデータ転送を行う
ように製造されている。クロスバー50はこれらのデー
タ転送を可能にするものであり、各デジタル画像/グラ
フィックプロセッサ71、72、73および74は、サ
イクルごとに同時に作動できる3つのメモリポートを有
する。インストラクションポート(I)は対応するイン
ストラクションキャッシュから64ビットのデータワー
ドをフェッチでき、ローカルデータポート(L)はデジ
タル画像/グラフィックプロセッサに対応するデータメ
モリまたはパラメータメモリから32ビットのデータワ
ードを読み出したり、これに書き込みを行うことができ
る。グローバルデータポート(G)は、データメモリま
たはパラメータメモリまたはランダムアクセスメモリ2
0のいずれかから32ビットのデータワードを読み出し
たり、書き込んだりできる。マスタープロセッサ60
は、2つのメモリポートを含む。インストラクションポ
ート(I)はインストラクションキャッシュ11および
12のいずれかから32ビットのインストラクションワ
ードをフェッチできる。データポート(C)はデータキ
ャッシュ13または14、ランダムアクセスメモリ10
のうちのパラメータメモリ15、またはデータメモリ、
パラメータメモリ、ランダムアクセスメモリ20の任意
のものから32ビットのデータワードを読み出したり、
これらに書き込みできる。転送コントローラ80はデー
タポート(C)を介してランダムアクセスメモリ10ま
たは20の部分のいずれかにアクセスできる。従って一
つのメモリサイクルで16のパラレルメモリアクセスを
リクエストできる。このような多数のパラレルアクセス
をサポートするように、ランダムアクセスメモリ10お
よび20は、25のメモリに分割されている。
【0020】クロスバー50はマスタープロセッサ6
0、デジタル画像/グラフィックプロセッサ71、7
2、73および74、および転送コントローラ80とメ
モリ10および20との接続を制御する。クロスバー5
0は、列と行に配置された複数のクロスポイント51を
含む。クロスポイント51の各列は、単一メモリ部分お
よび対応するアドレスのレンジに対応する。プロセッサ
はこのプロセッサが出力するアドレスの最高位ビットに
よるメモリ部分のうちの一つへのアクセスをリクエスト
する。プロセッサにより出力されるこのアドレスは、行
に沿って進む。このアドレスを有するメモリ部分に対応
するクロスポイント51は、メモリ部分へのアクセスを
許可または否定することによって応答する。それ以外の
いずれのプロセッサも、そのときのメモリサイクルの間
にそのメモリ部分へのアクセスをリクエストしない場
合、クロスポイント51が行と列を結合することによ
り、アクセスを許可する。これによりそのメモリ部分に
アドレスが供給される。このメモリ部分はそのアドレス
におけるデータアクセスを可能にすることに応答する。
このデータアクセスはデータ読み出しオペレーションま
たはデータ書き込みオペレーションのいずれかでよい。
【0021】2つ以上のプロセッサが同じメモリ部分へ
のアクセスを同時にリクエストする場合、クロスバー5
0はリクエスト中のプロセッサのうちの一つのアクセス
しか許可しない。クロスバー50のうちの各列のうちの
クロスポイント51は、優先階層に基づいて通信し、ア
クセスを許可する。同じランクを有するアクセスの2つ
のリクエストが同時に行われた場合、クロスバー50は
最後に許可されたプロセッサが最も低い優先度を有する
ラウンドロビン法によりアクセスを許可する。リクエス
トにサービスする必要がある限り、各々の許可されたア
クセスが続く。プロセッサはメモリサイクルごとにアド
レスを変更できるので、クロスバー50はサイクルごと
にプロセッサとメモリ部分との間の相互接続を変更でき
る。マスタープロセッサ60は、マルチプロセッサ集積
回路100のための主要制御機能を実行することが好ま
しい。マスタープロセッサ60はハードウェアの浮動小
数点計算ユニットを含む32ビットの縮小インストラク
ションセットコンピュータ(RISC)プロセッサであ
ることが好ましい。RISCアーキテクチャによれば、
メモリへのすべてのアクセスは、ロードおよび記憶イン
ストラクションで実行され、ほとんどの整数および論理
演算はレジスタ上で1回のサイクルで実行される。しか
しながら整数および論理ユニットによって使用されるの
と同じレジスタファイルを用いる場合、一般に演算を実
行するには2サイクルがかかる。レジスタのスコアボー
ドは正しいレジスタアクセスシーケンスを維持するよう
に保証するものであり、画像処理における制御機能に対
してはRISCアーキテクチャが適当である。浮動小数
点計算ユニットは画像回転機能の高速計算を可能にする
もので、このような機能は画像処理に重要である。
【0022】マスタープロセッサ60は、インストラク
ションキャッシュメモリ11またはインストラクション
キャッシュメモリ12からのインストラクションワード
をフェッチする。同じように、マスタープロセッサ60
はデータキャッシュ13またはデータキャッシュ14の
いずれかからデータをフェッチする。各メモリ部分は2
Kバイトのメモリを含むので、14Kバイトのインスト
ラクションキャッシュと4Kバイトのデータキャッシュ
があることになる。キャッシュ制御はマスタープロセッ
サ60の不可欠な機能であり、上記のようにマスタープ
ロセッサ60はクロスバー50を介して他のメモリ部分
にもアクセスできる。4つのデジタル画像/グラフィッ
クプロセッサ71、72、73および74の各々は、高
度にパラレルなデジタル信号プロセッサ(DSP)アー
キテクチャを有する。デジタル画像/グラフィックプロ
セッサ71、72、73および74は3つの別個のユニ
ット、すなわちデータユニットと、アドレスユニット
と、プログラムフロー制御ユニットを用いた高度なオペ
レーションのパラレリズムが得られる。これら3つのユ
ニットは、インストラクションパイプライン内の異なる
命令で同時に作動する、更にこれらユニットの各々は、
内部パラレリズムを含む。
【0023】デジタル画像/グラフィックプロセッサ7
1、72、73および74は、マルチインストラクショ
ンマルチデータモード(MIMD)で独立したインスト
ラクションストリームを実行できる。このMIMDモー
ドでは、各デジタル画像/グラフィックプロセッサは、
対応するインストラクションキャッシュからの個々のプ
ログラム(これは独立的でも協働的でもよい)を実行す
る。後者のケースでは、クロスバー50は共用メモリと
共に、プロセッサ内通信を可能にする。デジタル画像/
グラフィックプロセッサ71、72、73および74
は、同期MIMDモードでも作動できる。同期MIMD
モードでは、各デジタル画像/グラフィックプロセッサ
のプログラムフロー制御ユニット130は、すべての同
期したプロセッサが進む準備がなされるまで、次のイン
ストラクションのフェッチを禁止する。このような同期
MIMDモードは密に結合されたオペレーションにおけ
るロックステップでデジタル画像/グラフィックプロセ
ッサの別々のプログラムを実行できるようにするもので
ある。
【0024】デジタル画像/グラフィックプロセッサ7
1、72、73、74は、単一インストラクションマル
チデータモード(SIMD)で異なるデータに対する同
じインストラクションを実行できる。このモードにおい
て、4つのデジタル画像/グラフィックプロセッサのた
めの単一インストラクションストリームは、インストラ
クションキャッシュメモリ21から生じる。データユニ
ット画像/グラフィックプロセッサ71は、フェッチオ
ペレーションおよびブランチオペレーションを制御し、
クロスバー50は他のデジタル画像/グラフィックプロ
セッサ72、73および74へ同じインストラクション
を供給する。デジタル画像/グラフィックプロセッサ7
1は、デジタル画像/グラフィックプロセッサ71、7
2、73および74のすべてに対するインストラクショ
ンフェッチを制御するので、これらデジタル画像/グラ
フィックプロセッサは本来SIMDモードでは同期化さ
れるものである。
【0025】転送コントローラ80は、マルチプロセッ
サ集積回路100のための組み合わされたダイレクトメ
モリアクセス(DMA)マシンと、メモリインターフェ
ースであり、この転送コントローラ80は、インテリジ
ェントにキューイングし、優先度をセットし、5つのプ
ログラマブルプロセッサのデータリクエストおよびキャ
ッシュミスにサービスする。マスタープロセッサ60お
よびデジタル画像/グラフィックプロセッサ71、7
2、73および74のいずれも、転送コントローラ80
を介してマルチプロセッサ集積回路100の外部のメモ
リおよびシステムにアクセスする。データキャッシュま
たはインストラクションキャッシュミスは、転送コント
ローラ80によって自動的に取り扱われる。キャッシュ
サービス(S)ポートは、かかるキャッシュミスを転送
コントローラ80へ伝送し、キャッシュサービスポート
(S)はメモリからではなくプロセッサから情報を読み
出すマスタープロセッサ60およびデジタル画像/グラ
フィックプロセッサ71、72、73および74は、リ
ンクされたリストパケット転送として転送コントローラ
80からのデータ転送をリクエストできる。これらリン
クされたリストパケット転送は、ソースメモリアドレス
と宛て先メモリアドレスとの間で多次元ブロックの情報
の転送を可能にするものであり、これらアドレスはマル
チプロセッサ集積回路100内にあってもよいし、また
はマルチプロセッサ集積回路100の外部にあってもよ
い。転送コントローラ80は、内部のデータを保持する
のに周期的なリフレッシュを必要とするダイナミックラ
ンダムアクセスメモリ(DRAM)用のリフレッシュコ
ントローラも含むことが好ましい。
【0026】フレームコントローラ90はマルチプロセ
ッサ集積回路100と、外部画像キャプチャおよびディ
スプレイシステムとの間のインターフェースである。こ
のフレームコントローラ90は、キャプチャおよびディ
スプレイデバイスに対する制御を行い、これらデバイス
とメモリとの間のデータの移動を自動的に管理する。こ
のため、フレームコントローラ90は、2つの独立した
画像システムに対して同時に制御を行う。これら画像シ
ステムは一般に画像キャプチャ(取り込み)用第1画像
システムと画像ディスプレイ用の第2画像システムとか
らなるが、フレームコントローラ90の使用はユーザー
によって制御される。これら画像システムは、通常、フ
レームグラバーまたはフレームバッファ記憶装置のいず
れかに対して使用される独立したフレームメモリを含
む。フレームコントローラ90は、リフレッシュおよび
シフトレジスタ制御により、ビデオダイナミックランダ
ムアクセスメモリ(VRAM)を制御するように作動す
ることが好ましい。
【0027】マルチプロセッサ集積回路100は、大規
模画像処理のために設計されている。マスタープロセッ
サ60は埋め込み制御を行い、デジタル画像/グラフィ
ックプロセッサ71、72、73、74の活動を調和さ
せ、これらプロセッサの発生した結果を解釈する。デジ
タル画像/グラフィックプロセッサ71、72、73、
74は、ピクセル解析および操作に良好に適している。
ピクセルのデータが多く、情報が少ないとみなされる場
合、代表的なアプリケーションではデジタル画像/グラ
フィックプロセッサ71、72、73、74がピクセル
を良好に検査し、未加工データを情報とする。次にこの
情報は、デジタル画像/グラフィックプロセッサ71、
72、73、74またはマスタープロセッサ60のいず
れかによって分析できる。クロスバー50はプロセッサ
内通信を仲介する。更にこのクロスバー50はマスター
プロセッサ集積回路100を共用メモリシステムとして
実現できるようにする。このアーキテクチャでは、メッ
セージの通過は通信の主な形態となる必要はない。しか
しながら共用メモリをメッセージが通過するようにでき
る。各デジタル画像/グラフィックプロセッサ、クロス
バー50の対応する部分およびメモリ20の対応する部
分は、この実施例内で同じ幅を有する。これにより、同
じピン出力を維持しながら、モジュラー式のデジタル画
像/グラフィックプロセッサおよび対応するメモリの追
加または取り外しに適応できるようにすることにより、
アーキテクチャをフレキシブルにできる。
【0028】ある実施例では、マルチプロセッサ集積回
路100のすべての部品は、0.6μmの特徴的寸法を
用いた相補的酸化金属半導体(CMOS)に形成された
単一集積回路に配置されている。マルチプロセッサ集積
回路100は、256個のピンを有するピングリッドア
レイパッケージ内に適当に製造される。入出力端は、例
えばTTL論理電圧にコンパーチブルであり、マルチプ
ロセッサ集積回路100は、約300万個のトランジス
タを含み、50MHzのクロックレートを使用してい
る。図3は、インタラプトイネーブルレジスタINTE
N110およびインタラプトフラグレジスタINTFL
Gのためのフィールド定義を示す。rと表示されたビッ
トは、将来の使用に対して保留されており、−のついた
ビットは、好ましい実施例では使用されないが、別の実
施例では使用できる。インタラプト(割り込み)は、左
から右に優先度が決められている。各インタラプトソー
スは、インタラプトイネーブルレジスタINTEN11
0の対応するイネーブル(E)ビット内に1をセットす
ることによって、個々にイネーブルできる。インタラプ
トフラグレジスタINTFLG115のインタラプトソ
ースビットは、右から左へ、すなわち常時イネーブルに
されているエミュレーションインタラプトETRAP、
XYパッチインタラプト、タスクインタラプト、パケッ
ト転送ビジーインタラプトPTB、パケット転送エラー
インタラプトPTERROR、パケット転送成功インタ
ラプトPTEND、マスタプロセッサ60メッセージイ
ンタラプトMPMSG、デジタル画像/グラフィックプ
ロセッサ71メッセージインタラプトDIGPOMS
G、デジタル画像/グラフィックプロセッサ72メッセ
ージインタラプトDIGP1MSG、デジタル画像/グ
ラフィックプロセッサ73メッセージインタラプトDI
GP2MSG、デジタル画像/グラフィックプロセッサ
74メッセージインタラプトDIGP3MSGの方向
に、優先度が低くなるようになっている。ビット31〜
28は、8個のデジタル画像/グラフィックプロセッサ
を含むマルチプロセッサ集積回路100の実現の際に4
つの追加デジタル画像/グラフィックプロセッサからの
メッセージインタラプトのために保留されている。
【0029】インタラプトイネーブルレジスタINTE
N110のWビット(ビット0)は、インタラプトフラ
グレジスタINTFLG115への書き込みを制御す
る。通常、このビットはエミュレーションインタラプト
をイネーブルするかどうかを制御する。好ましい実施例
では、エミュレーションインタラプトはディスエーブル
できないので、インタラプトイネーブルレジスタINT
EN110内で、このインタラプトに対するイネーブル
ビットの必要はない。インタラプトイネーブルレジスタ
INTEN110のビット0は、インタラプトフラグレ
ジスタINTFLG115の作動を変えるものである。
インタラプトイネーブルレジスタINTEN110のW
ビットが1であると、インタラプトフラグレジスタIN
TFLG115へのソフトウェアの書き込みはビットを
1にセットできるだけである。これらの条件では、イン
タラプトフラグレジスタINTFLG115のビットへ
の0の書き込みは全く効果はない。このようなWビット
が0である場合、インタラプトフラグレジスタINTF
LG115のいずれかのビットへの1の書き込みは、そ
のビットを0にクリアする。インタラプトフラグレジス
タINTFLG115の任意のビットへの0への書き込
みは全く効果がない。これにより、他のステートを乱す
ことなくインタラプトフラグレジスタINTFLG11
5内の個々のインタラプトフラグをクリアできる。各イ
ンタラプトサービスルーチンは、リターン前に対応する
インタラプトフラグを適当にクリアするが、その理由は
好ましい実施例ではハードウェアによってこれらフラグ
をクリアしていないからである。この唯一の例外とし
て、エミュレーションインタラプトETRAPハードウ
ェアによってクリアされるが、この理由は、このような
インタラプトが常時イネーブルされているからである。
特定のインタラプトソースがソフトウェアの書き込みに
よってこれをクリアするのと同じように、インタラプト
フラグレジスタINTFLG115内のビットを同時に
セットしようとしている場合、ロジックによりこのビッ
トはセットされる。
【0030】ETRAPインタラプトフラグ(インタラ
プトフラグレジスタINTFLG115のビット0)
は、解析論理またはETRAPインストラクションのい
ずれかからセットされる。このインタラプトはディスエ
ーブルされないので、通常は即座にサービスされるが、
インタラプトサービスはパイプラインストール条件、例
えばクロスバー50を介するメモリの競合が解決される
まで待機する。ENTRAPインタラプトフラグは、イ
ンタラプトサービスがされる際にハードウェアによって
クリアされるインタラプトフラグレジスタINTFLG
115内の単なるインタラプトビットである。XY P
ATCHインタラプトフラグ(インタラプトフラグレジ
スタINTFLG115のビット11)は、XYアドレ
ス指定をするのにグローバルアドレスユニット610
と、ローカルアドレスユニット620との組み合わせを
用いる際に、所定の条件でセットされる。XYパッチさ
れたアドレス指定は所定の条件でインタラプトを発生で
きる。XYパッチされたアドレス指定のためのインスト
ラクションワードの呼び出しは、かかるインタラプトを
発生できるかどうか、更に指定されたパッチの内外でア
ドレス上で許可されたインタラプトを行うかどうかを示
している。
【0031】マスタプロセッサ60からのコマンドを受
信した際に、TASKインタラプトフラグ(インタラプ
トフラグレジスタINTFLG115内のビット14)
がセットされる。このインタラプトによりデジタル画像
/グラフィックプロセッサ71がそのTASKインタラ
プトベクトルをロードする。このインタラプトは、例え
ばマスタプロセッサ60の制御により、選択されたデジ
タル画像/グラフィックプロセッサ71、72、73、
74をスイッチングさせることができる。キューアクテ
ィブビットが1のとき、ソフトウェアが通信用レジスタ
COMM120のパケット転送ビットに1を書き込む場
合、パケット転送ビジーインタラプトフラグPTB(イ
ンタラプトフラグレジスタINTFLG115のビット
17)がセットされる。これにより先のパケット転送が
終了したかどうかをチェックすることなくパケット転送
を送ることができる。先のパケット転送がまだ待機中で
あれば、このインタラプトフラグはセット状態となる。
これについては通信用レジスタCOMM120の説明と
関連して後に詳細に述べる。
【0032】デジタル画像/グラフィックプロセッサに
より送られるパケット転送を実行する間に、転送用コン
トローラ80がエラー条件に遭遇すれば、パケット転送
エラーインタラプトフラグPTERROR(インタラプ
トフラグレジスタINTFLG115のビット18)が
セットされる。転送コントローラ80がデジタル画像/
グラフィックプロセッサのリンクされたリストの終了部
に遭遇するか、または終了時にリクエスト中のデジタル
画像/グラフィックプロセッサをインタラプトするよ
う、転送コントローラ80に命令するパケット転送を完
了した際に、パケット転送エンドインタラプトフラグP
TEND(インタラプトフラグレジスタINTFLG1
15のビット19)が転送コントローラ80によってセ
ットされる。
【0033】マスタプロセッサ60がそのデジタル画像
/グラフィックプロセッサにメッージインタラプトを送
ると、マスタプロセッサメッセージインタラプトフラグ
MPMSG(インタラプトフラグレジスタINTFLG
115のビット20)がセット状態となる。インタラプ
トフラグレジスタINTFLG115のビット27〜2
4は、デジタル画像/グラフィックプロセッサ71、7
2、73、74からのメッセージインタラプトをログす
る。デジタル画像/グラフィックプロセッサ71、7
2、73または74は、インタラプトフラグレジスタI
NTFLG115の対応するビットを介してそれ自体に
メッセージを送ったり、それ自体をインタラプトでき
る。デジタル画像/グラフィックプロセッサ71が、デ
ジタル画像/グラフィックプロセッサにメッセージイン
タラプトを送ると、デジタル画像/グラフィックプロセ
ッサ0のメッセージインタラプトフラグDIGPOMS
G(インタラプトフラグレジスタINTFLG115の
ビット24)がセットされる。同様に、デジタル画像/
グラフィックプロセッサ72が、メッセージインタラプ
トを送ると、デジタル画像/グラフィックプロセッサ1
のメッセージインタラプトフラグDIGP1MSG(イ
ンタラプトフラグレジスタINTFLG115のビット
25)がセットされる。デジタル画像/グラフィックプ
ロセッサ73が、メッセージインタラプトを送ると、デ
ジタル画像/グラフィックプロセッサ2のメッセージイ
ンタラプトフラグDIGP2MSG(インタラプトフラ
グレジスタINTFLG115のビット26)がセット
される。デジタル画像/グラフィックプロセッサ74
が、メッセージインタラプトを送ると、デジタル画像/
グラフィックプロセッサ3のメッセージインタラプトフ
ラグDIGP3MSG(インタラプトフラグレジスタI
NTFLG115のビット27)がセットされる。先に
述べたように、インタラプトフラグレジスタINTFL
G115のビット31〜28は、8個のデジタル画像/
グラフィックプロセッサを含むマルチプロセッサ集積回
路100を実現する際の4つの付加的デジタル画像/グ
ラフィックプロセッサからのメッセージインタラプトの
ために保留されている。
【0034】イネーブルされたインタラプトが起きる
と、小ステートマシンにすることができるインタラプト
疑似インストラクションユニットがインストラクション
レジスタ−アドレスステージでパイプラインに次の疑似
インストラクションの組を注入する。
【0035】
【数1】
【0036】これら疑似インストラクションをそれぞれ
PS1、PS2、PS3、PS4およびPS5と称す。
このシーケンスによってはサブルーチンIPRSからの
インストラクションポインタリターンはセーブされな
い。インタラプトサービスルーチンがなんらかのブラン
チを実行する場合、インタラプトサービスルーチンによ
ってまず最初にサブルーチンIPRSからのインストラ
クションポインタリターンをプッシュし、リターン前に
レストアしなければならない。ベクトルフェッチは保護
されているサブルーチンIPRSからのインストラクシ
ョンポインタリターンを全プログラムカウンタPC70
1にロードすることである。これによりプログラムカウ
ンタPC701のS、GおよびLビットがロードされる
ので、すべてのインタラプトベクトルの3つの最小位ビ
ットが0にされる。この説明の例外は、リセット後にフ
ェッチされるタスクベクトルは、ルーピングをディスエ
ーブルするようにLビット(プログラムカウンタPC7
01のビット0)をセットさせなければならないことで
ある。
【0037】インタラプトフラグレジスタINTFLG
115内に示されたインタラプトのためのインタラプト
サービスルーチンの開始ポイントのそれぞれのアドレス
のデジタル画像/グラフィックプロセッサインタラプト
ベクトルと称す。これらアドレスはソフトウェアによっ
て発生され、表1に示されるそれぞれのインタラプトさ
れたデジタル画像/グラフィックプロセッサ71、7
2、73、74に対応するパラメータメモリ25、3
0、35、40にデータとしてロードされる。インタラ
プト疑似インストラクションPS3は、対応するパラメ
ータメモリ25、30、35または40における表示さ
れたアドレスに記憶された32ビットのアドレスを取り
出し、これをプログラムカウンタPC701に記憶す
る。インタラプト疑似インストラクションユニット77
0はインタラプトイネーブルレジスタによってイネーブ
ルされた最高優先度のインタラプトに基づき、対応する
パラメータメモリのためにアドレスを計算する。インタ
ラプト疑似インストラクションユニット770は各デジ
タル画像/グラフィックプロセッサのためのユニークな
アドレスを発生するよう、通信レジスタCOMM120
からのデジタル画像/グラフィックプロセッサ番号を含
むように作動する。インタラプト疑似インストラクショ
ンPS4およびPS5は、インタラプトサービスルーチ
ンへのブランチの後のディレイスロット内にあることに
留意されたい。
【0038】
【表1】
【0039】各アドレスにて#は通信レジスタCOMM
120から得られたデジタル画像/グラフィックプロセ
ッサ番号と置換される。
【0040】インタラプトサービスルーチンの最後の4
つのインストラクションは、次の(32ビットデータの
シフトされていないインデックス)オペレーションを含
んでいなければならない。
【0041】
【数2】
【0042】これらインストラクションをそれぞれRE
TI1、RETI2、RETI3およびRETI4と称
す。他のオペレーションは希望すればこれらオペレーシ
ョンとパラレルにコード化できるが、これらのオペレー
ションのいずれもステータスレジスタ211を変えては
ならない。
【0043】新しいタスクをデジタル画像/グラフィッ
クプロセッサ上で実行すべきであり、新しいタスクを終
了した後に最初のステートに復帰すべき場合インタラプ
トステートをセーブできる。インタラプトイネーブルレ
ジスタINTEN110上のWビットにより制御される
書き込みモードにより、セービングまたはレストアオペ
レーション中にインタラプトを失うことなくこれを行う
ことができる。これは次のインストラクションシーケン
スで実行できる。まずDINTインストラクションによ
りインタラプトをディスエーブルし、次にインタラプト
イネーブルレジスタINTEN110およびインタラプ
トフラグレジスタINTFLG115の双方をセーブ
し、インタラプトイネーブルレジスタINTEN110
のWビット(ビット0)を0にセットし、16進数FF
FFFFFFをインタラプトフラグレジスタINTFL
G115に書き込む。イネーブリングインタラプトを含
むことができる新しいタスクを実行する。新しいタスク
の完了後、元のタスクをリカバーし、最初にDINTイ
ンストラクションによりインタラプトをディスエーブル
し、インタラプトイネーブルレジスタINTEN110
のWビットを1にセットする。メモリからインタラプト
フラグレジスタINTFLG115のステータスをレス
トアし、次にメモリからインタラプトイネーブルレジス
タINTEN110のステータスをレストアする。最後
にEINTインストラクションによりインタラプトをイ
ネーブルする。
【0044】各デジタル画像/グラフィックプロセッサ
71、72、73、74は、他のデジタル画像/グラフ
ィックプロセッサおよびマスタプロセッサ60にコマン
ドワードを送信できる。レジスタA15の宛て先、グロ
ーバルアドレスユニットのうちの0値のアドレスレジス
タによるレジスタ間の移動により、宛て先プロセッサへ
のコマンドワードの転送が開始される。このようなレジ
スタ間の転送は、後述するように、一つのインストラク
ションでデータユニット110のオペレーションおよび
ローカルデータポート144を介したアクセスと組み合
わせることができる。このようなコマンドワードは特別
コマンドワード信号に伴われてグローバルデータポート
148を介してクロスバー50へ送信される。これによ
りマスタプロセッサ60およびデジタル画像/グラフィ
ックプロセッサ71、72、73、74はマルチプロセ
ッサ集積回路100の他のプロセッサとの通信が認めら
れる。
【0045】図4は、これらコマンドワードのフィール
ド定義を略図で示している。好ましい実施例では、コマ
ンドワードはグローバルデータポート148を介して送
信されるデータと同一の32ビット長さを有する。各コ
マンドワードの最小位のビットは、コマンドワードがア
ドレス指定される一つ以上のプロセッサおよび他の回路
を定義している。各受け入れ側回路は、これらビットが
コマンドワードをその回路に向けることを表示している
場合に限り、受信したコマンドワードに応答する。各コ
マンドワードのビット3〜0はそれぞれデジタル画像/
グラフィックプロセッサ74、73、72、71をそれ
ぞれ指定している。好ましい実施例ではビット7〜4は
使用されず、8個のデジタル画像/グラフィックプロセ
ッサを有するマルチプロセッサ集積回路100内で使用
するために保留されている。ビット8はマルチプロセッ
サ60にコマンドワードをアドレス指定することを表示
している。ビット9はコマンドワードを転送コントロー
ラ80に向けることを表示しており、ビット10はコマ
ンドワードをフレームコントローラ90へ向けることを
表示している。ここですべての回路はすべてのコマンド
ワードを他のすべての回路に送ることを許可されている
わけではないことに留意されたい。例えばシステムレベ
ルのコマンドワードはデジタル画像/グラフィックプロ
セッサから他のデジタル画像/グラフィックプロセッサ
またはマスタプロセッサ60へ送ることはできない。マ
スタプロセッサ60しか、転送コントローラ80または
フレームコントローラ90へコマンドワードを送ること
ができない。どの回路がどのコマンドワードを他のどの
回路に送ることができるかの制限について、各コマンド
ワードフィールドの説明と関連させて後に説明する。
【0046】コマンドワードのRビット(ビット31)
は、リセットビットである。マスタプロセッサ60はこ
のワードをデジタル画像/グラフィックプロセッサに対
して発生したり、またはあるデジタル画像/グラフィッ
クプロセッサがこのコマンドワードを自己に発生したり
できる。意図している実施例は、いずれのデジタル画像
/グラフィックプロセッサの他のデジタル画像/グラフ
ィックプロセッサをリセットできない。下記のリセット
シーケンスの説明全体で、アドレス内の各数字の#はコ
マンドレジスタCOMM120のビット1〜0に記憶さ
れたデジタル画像/グラフィックプロセッサの番号と置
換すべきであることに留意されたい。指定されたデジタ
ル画像/グラフィックプロセッサがリセットコマンドワ
ードを受けると、まずホールトラッチをセットし、リセ
ットリクエスト信号を転送コントローラ80へ送る。転
送コントローラ80はリセットアクノーリッジ信号をデ
ジタル画像/グラフィックプロセッサへ送る。リセット
中のデジタル画像/グラフィックプロセッサは、転送プ
ロセッサ80からリセットアクノーリッジ信号が受信さ
れるまで、別の動作は実行しない。リセットアクノーリ
ッジの受信時にデジタル画像/グラフィックプロセッサ
は次のシーケンスのオペレーションを開始する。すなわ
ち既にセットされていなければホールトラッチをセット
し、通信レジスタCOMM120のF、P、QおよびS
ビットを0にクリア(これらビットの使用については後
述する)し、アドレスユニット120によりペンディン
グ中のメモリアクセスをクリアし、インストラクション
キャッシュサービスリクエストをリセットし、インスト
ラクションレジスタ−実行ステージIRE752に次の
インストラクションをロードする。
【0047】
【数3】
【0048】このインストラクションはプログラムカウ
ンタPC701に対して1ビット左にシフトされたスタ
ックポインタA14の内容に対して変化しないようにさ
れている否定、桁上げ、オーバーフローおよび0ステー
タスビット、更にRビットセットを無条件にロードし、
スタックポインタA14のロードと並行にスタックポイ
ンタA14をリセットし、インストラクションレジスタ
アドレスステージIRAに下記のインストラクションを
ロードする。
【0049】
【数4】
【0050】このインストラクションはアドレスPBA
と16進数FCの合計によって表示されるアドレスにプ
ログラムカウンタPC701の内容を記憶させ、インタ
ラプト疑似インストラクションユニット770をセット
して、次にインタラプト疑似インストラクションPS3
をロードし、タスクインタラプトを表示するインタラプ
トフラグレジスタINTFLG115のビット14をセ
ットし、インタラプトフラグレジスタINTFLG11
5のビット0をクリアしてエミュレータトラップインタ
ラプトETRAPをクリアし、ループ制御レジスタLC
TLのビット11、7および3をクリアして、よってす
べてのループをディスエーブルする。
【0051】マスタプロセッサ60がアンホールトコマ
ンドワードを送信すると、デジタル画像/グラフィック
プロセッサによる実行が開始する。この実行によってデ
ジタル画像/グラフィックプロセッサの作動が開始する
と16進数010#7FCをアドレス指定するよう、プ
ログラムカウンタPC701に記憶されていたアドレス
をセーブする。これにより12ビットだけ左にシフトさ
れていたスタックポインタA14の前の内容およびプロ
グラムカウンタPC701の制御ビット(ビット2〜
0)の現在の値がセーブされ、アドレス16進数010
0#7F0をスタックポインタA14にロードし、プロ
グラムカウンタPC701に制御ビット2〜0が000
となっているタスクインタラプトベクトルをロードし、
アドレス16進数0100#7F8に制御ビット2〜0
を含むインストラクションレジスタアドレスステージI
PAの内容を記憶し、アドレス16進数0100#7F
4に制御ビット2〜0を含むインストラクションレジス
タ実行ステージIPEの内容を記憶し、タスクインタラ
プトによって示されたアドレスにおいてプログラムの実
行を開始する。表2にリセット後のスタックステートが
示されている。
【0052】
【表2】
【0053】インストラクションレジスタ−アドレスス
テージIRAおよびインストラクションレジスタ実行ス
テージIREの先のステートは、制御ビット2〜0を含
む。スタックポインタA14はアドレス16進数010
0#7F0を含むことに留意のこと。
【0054】コマンドワードのうちのHビット(ビット
30)はホールトビットである。マスタプロセッサ60
はこのコマンドワードを任意のデジタル画像/グラフィ
ックプロセッサに発生することもできるし、あるデジタ
ル画像/グラフィックプロセッサはこのコマンドを自ら
に発生することもできる。意図している実施例では、い
ずれのデジタル画像/グラフィックプロセッサも他のデ
ジタル画像/グラフィックプロセッサを停止することは
できない。指定されたデジタル画像/グラフィックプロ
セッサがこのコマンドワードを受信すると、デジタル画
像/グラフィックプロセッサはホールトラッチをセット
し、パイプラインを停止させる。この後のデジタル画像
/グラフィックプロセッサは無限にクロスバーメモリが
競合しているかのように働く。何もリセットされず、何
もインタラプトは起きないか、またはそのように認識さ
れる。あるデジタル画像/グラフィックプロセッサはコ
マンドワードを送ることにより自身を停止させると、ホ
ールトコマンドワードを送るインストラクションの後の
2つのインストラクションは、そのインストラクション
パイプライン内にあることに留意されたい。ホールトコ
マンドワードを発生したインストラクションの後の第1
インストラクションのアドレスパイプラインステージが
インストラクションパイプラインの性質により、すでに
そのアドレスパイプラインステージを実行することにな
ることに留意されたい。このようなホールトステートは
マスタプロセッサ60からのアンホールトコマンドワー
ドを受信することによってしか反転できない。
【0055】ホールト条件は変わらないので、デジタル
画像/グラフィックプロセッサ内のパワー消費量を減少
させる。デジタル画像/グラフィックプロセッサがこの
モードになっている間、クロックを停止することにより
更にパワーを節約できる。
【0056】コマンドワードのUビット(ビット29)
は、アンホールトビットである。このコマンドワードは
マスタプロセッサ60から一つ以上のデジタル画像/グ
ラフィックプロセッサ71、72、73、74によって
しか発生できない。アンホールトコマンドワードは宛て
先デジタル画像/グラフィックプロセッサのホールトラ
ッチをクリアし、デジタル画像/グラフィックプロセッ
サは次に、何も起こらなかったがごとくホールトの後に
コードの実行を再開する。これはハードウェアまたはコ
ードリセットの後でデジタル画像/グラフィックプロセ
ッサをスタートさせる好ましい方法である。アンホール
トコマンドワードの実行時に宛て先デジタル画像/グラ
フィックプロセッサは、そのタスクインタラプトベクト
ルによって示されたアドレスでもコードの実行を始め
る。Uビットの優先度は単一コマンドワードのHビット
よりも高い。したがってHビットとUビットとの双方を
備えた単一コマンドワードを受信する結果、アンホール
トコマンドが実行される。マスタプロセッサ60からの
アンホールトコマンドワードとデジタル画像/グラフィ
ックプロセッサ自体により送信されるホールトコマンド
ワードを同時に受信することにより、マスタプロセッサ
60のアンホールトコマンドワードに優先権が与えられ
る。これによりRビットはUビットより優先度が高くな
る。従って、RビットとUビットセットの双方を有する
マスタプロセッサ60からの単一コマンドワードが受信
される結果、デジタル画像/グラフィックプロセッサは
ホールト状態にリセットされる。
【0057】コマンドワードのIビット(ビット28)
は、インストラクションキャッシュフラッシュビットで
ある。マスタプロセッサ60がこのコマンドワードをい
ずれかのデジタル画像/グラフィックプロセッサに送っ
てもよいし、一つのデジタル画像/グラフィックプロセ
ッサがかかるコマンドワードを自身に発生してもよい。
意図している実施例では、いずれのデジタル画像/グラ
フィックプロセッサも他のデジタル画像/グラフィック
プロセッサによるインストラクションキャッシュフラッ
シュを命令できない。このコマンドワードを受信する指
定されたデジタル画像/グラフィックプロセッサはその
インストラクションキャッシュをフラッシュする。イン
ストラクションキャッシュフラッシュは、キャッシュタ
グの値フィールドをキャッシュタグレジスタ自身の番号
にセットさせ、存在するビットのすべてをクリアし、
L、R、Uビットをタグレジスタ自身の番号にセットす
る。
【0058】コマンドワードのDビット(ビット27)
は、データキャッシュフィールドを表示する。デジタル
画像/グラフィックプロセッサ71、72、73、74
は、データキャッシュを使用しないので、このコマンド
ワードはデジタル画像/グラフィックプロセッサに適用
されず、これらに無視される。マスタプロセッサ60は
このコマンドワードを自らに送り、そのデータキャッシ
ュメモリ13および14をフラッシュさせることができ
る。
【0059】コマンドワードのKビット(ビット14)
は、タスクインタラプトを表示している。マスタプロセ
ッサ60はこのコマンドワードをいずれのデジタル画像
/グラフィックプロセッサ71、72、73または74
にも送ることができるが、いずれのデジタル画像/グラ
フィックプロセッサも他のデジタル画像/グラフィック
プロセッサまたはマスタプロセッサ60にこのコマンド
ワードを送ることはできない。
【0060】コマンドワードのGビット(ビット13)
は、メッセージインタラプトを表示する。いずれのデジ
タル画像/グラフィックプロセッサもこのメッセージイ
ンタラプトを他のデジタル画像/グラフィックプロセッ
サまたはマスタプロセッサ60に送ることができる。か
かるコマンドワードで指定されたデジタル画像/グラフ
ィックプロセッサは、そのメッセージインタラプトフラ
グをセットし、メッセージインタラプトがインタラプト
イネーブルレジスタINTEN110のビット20によ
りイネーブルされると、メッセージインタラプトを取り
込む。好ましい実施例では、このコマンドワードは転送
コントローラ80に送られることはない。
【0061】デジタル画像/グラフィックプロセッサが
自身にコマンドワードを発生し、Hビットにより自らを
停止させたり、またはIビットによってインストラクシ
ョンキャッシュをフラッシュさせると、このコマンドを
実行するには、このコマンドワードは対応するデジタル
画像/グラフィックプロセッサの指定ビットセットを有
していなければならない。これは一貫性を持たせ、かつ
コマンドワード機能を将来的に拡張できるようにするた
めである。
【0062】図5は通信レジスタCOMMのフィールド
定義を略図で示す。F、S、QおよびPビット(ビット
31〜28)は、デジタル画像/グラフィックプロセッ
サ71、72、73または74および転送コントローラ
80からのパケット転送の通信に使用される。Fおよび
Sビットは通常の読み出し/書き込みビットであり、P
ビットはSビットが0であるか、または同時に0にクリ
アされる場合に限り書き込みが可能である。9ビット
は、読み出し専用であり、パケット転送は転送コントロ
ーラ80によるデータ移動のためのデジタル画像/グラ
フィックプロセッサ71、72、73または74による
リクエストである。これらデータ移動ではマイクロプロ
セッサ集積回路100の内部のメモリ11〜14および
21〜40だけを必要とする場合もあれば、内部メモリ
と外部メモリの双方を必要とする場合もある。パケット
転送はリンクされたリスト構造として記憶され、各デジ
タル画像/グラフィックプロセッサに対しては、1度に
一つのパケット転送しかアクティブにできない。リクエ
スト中のデジタル画像/グラフィックプロセッサ71、
72、73または74に対応するパラメータメモリ2
5、30、35または40内の専用アドレスにおけるリ
ンクされたリストポインタは、アクティブなリンクされ
たリストの開始点をポイントする。リンクされたリスト
における各エントリーは、次のリストエントリーに対す
るポインタを含む。
【0063】パケット転送の初期化を行うには次のステ
ップが必要である。まずデジタル画像/グラフィックプ
ロセッサは、対応するパラメータメモリに所望するパケ
ット転送パラメータをセットする。次にデジタル画像/
グラフィックプロセッサは対応するパラメータメモリに
所定のアドレスの16進数0100#0FCにリンクさ
れたリストの第1リンクのアドレスを記憶し、ここで#
はデジタル画像/グラフィックプロセッサの番号と置換
される。Pビット(ビット28)の1へのセットによ
り、パケット転送の転送コントローラ80に警告が与え
られる。デジタル画像/グラフィックプロセッサはFビ
ット(ビット31)を1にセットすることにより高い優
先度をリクエストしたり、またはFビットをクリアする
ことにより低い優先度をリクエストできる。
【0064】転送コントローラ80はPビットがセット
されたことを認識し、Fビットのステートに基づきパケ
ット転送への優先度を割り当てる。転送コントローラ8
0はPビットをクリアし、Qビットをセットすることに
よりパケット転送が待ち行列内にあることを表示する。
次に転送コントローラ80は対応するパラメータメモリ
内の所定のアドレス、すなわち16進数の0100#0
FCにアクセスし、リンクされたリストに基づくパケッ
ト転送のサービスを行う。パケット転送が完了すると、
転送コントローラ80はQビットを0にクリアし、待ち
行列がもはやアクティブでないことを表示する。デジタ
ル画像/グラフィックプロセッサは、パケット転送が完
了したかどうかを表示するため、このビットを周期的に
読み出すことができる。これとは別に、パケット転送自
体がパケット転送終了時にリクエスト中のデジタル画像
/グラフィックプロセッサをインタラプトするように転
送コントローラ80に命令することもできる。この場
合、転送コントローラ80はビット19すなわちパケッ
ト転送エンドインタラプトビットPTENDをインタラ
プトフラグレジスタINTFLG115にセットするこ
とにより、インタラプトをデジタル画像/グラフィック
プロセッサへ送る。パケット転送サービス中に転送コン
トローラ80がエラーを生じると、ビット18、すなわ
ちパケット転送エラーインタラプトビットPTERRO
RをインタラプトフラグレジスタINTFLG115に
セットすることにより、デジタル画像/グラフィックプ
ロセッサにインタラプト信号を送る。デジタル画像/グ
ラフィックプロセッサは表1および適当なインタラプト
サービスルーチンに記載された位置に記憶されている適
当なインタラプトベクトルを有する。
【0065】デジタル画像/グラフィックプロセッサ
は、転送コントローラ80が先のリクエストにサービス
している間、別のパケットをリクエストできる。この場
合、デジタル画像/グラフィックプロセッサはQビット
が1である間にPビットを1にセットする。これが行わ
れると、転送コントローラ80はインタラプトフラグレ
ジスタINTFLG115のビット17をセットするこ
とにより、デジタル画像/グラフィックプロセッサにパ
ケット転送ビジーインタラプトPTBを送る。転送コン
トローラ80はPビットを0にクリアする。リクエスト
中のデジタル画像/グラフィックプロセッサのインタラ
プトサービスルーチンは、第1パケット転送が待ち行列
内にある間、第2パケット転送を一時中止し、パケット
転送をキャンセルしたり、他のある訂正措置をとること
ができる。このような特徴により、デジタル画像/グラ
フィックプロセッサは通信レジスタCOMM120のQ
ビットを最初にチェックすることなく、パケット転送を
送ることができる。
【0066】デジタル画像/グラフィックプロセッサ
は、Sビットを1にセットすることによりパケット転送
のサービスを一時中止にできる。転送コントローラ80
は、Sビットが1であることを検出する。パケット転送
が待ち行列内にある間このことが起きると、転送コント
ローラ80はQビットをPビットにコピーし、Qビット
をクリアする。これによりPビットは一般に1にセット
される。リクエスト中のデジタル画像/グラフィックプ
ロセッサ内のソフトウェアは、SおよびPビットのステ
ータスを変えることができる。転送コントローラ80は
一時中断されたパケット転送のリンクされたリスト内の
位置をメモリに保持する。Sビットが0であり、Pビッ
トが同時に1であると、転送コントローラ80が判断す
ると、一時中止されていたパケット転送は再開される。
【0067】通信レジスタCOMM120の同期ビット
フィールド(ビット15〜8)は、同期したマルチイン
ストラクション、マルチデータモードで使用される。こ
のフィールドは、同期したマルチインストラクション、
マルチデータモードを可能にするロックインストラクシ
ョンLCKおよびこのモードをディスエーブルするアン
ロックインストラクションUNLCKによって境界が定
められたインストラクションのために作動する。ビット
11〜8は、インストラクションのフェッチをデジタル
画像/グラフィックプロセッサ74、73、72および
71とそれぞれ同期化すべきかどうかを表示している。
これらビットのいずれかにおける1は、対応するデジタ
ル画像/グラフィックプロセッサが先のインストラクシ
ョンの実行を完了したことを表示するまでのデジタル画
像/グラフィックプロセッサがインストラクションフェ
ッチを遅延することを示している。このデジタル画像/
グラフィックプロセッサを同期すべき他のデジタル画像
/グラフィックプロセッサは、同様にして通信レジスタ
COMM120内の対応するビットをセットすることに
ある。デジタル画像/グラフィックプロセッサが同期し
たマルチインストラクション、マルチデータモードにあ
る場合、それ自身に対応する同期ビットをセットする必
要はないが、セットしても害はない。ビット15〜12
は、8つのデジタル画像/グラフィックプロセッサまで
拡張する場合に保留したものである。
【0068】通信レジスタCOMM120のDIGP#
フィールド(ビット2〜0)は、マルチプロセッサ集積
回路100上の各々の特定のデジタル画像/グラフィッ
クプロセッサに対してユニークとなっている。これらビ
ットは読み出し専用であり、これらビットに書き込もう
とする試みは不可能である。これは同地つでないデジタ
ル画像/グラフィックプロセッサ71、72、73およ
び74の一部にすぎないからであり、ビット1〜0は表
3に示すような特定のデジタル画像/グラフィックプロ
セッサを識別する2ビットのコードに配線で発生でき
る。
【0069】
【表3】
【0070】ビット2は8個のデジタル画像/グラフィ
ックプロセッサを有するマルチプロセッサ集積回路10
0で使用するために保留されていることに留意された
い。現在好ましい実施例は、このビットは、4つのデジ
タル画像/グラフィックプロセッサ71、72、73お
よび74のすべてに対し0となるように、配線で発生さ
れる。
【0071】通信レジスタCOMM120のこの部分は
特定のデジタル画像/グラフィックプロセッサを識別す
るように働き、デジタル画像/グラフィックプロセッサ
の識別番号は通信レジスタCOMM120と7(16進
数0000007)とAND論理演算することによって
抽出できる。例えば、インストラクションD0=COM
M&7がこれを行う。このインストラクションは通信レ
ジスタCOMM120のビット2〜10内のデータだけ
をリターンさせる。このインストラクションは8個のデ
ジタル画像/グラフィックプロセッサを有する実施例に
対して適しており、各デジタル画像/グラフィックプロ
セッサに対応するデータメモリおよびパラメータメモリ
のアドレスは、そのデータ画像/グラフィックプロセッ
サの識別に依存するので、識別番号によりソフトウェア
がこれら対応するメモリのアドレスを計算できる。この
ような識別番号を使用することにより、プログラムを実
行する特定のデジタル画像/グラフィックプロセッサと
独立したソフトウェアを書き込むことが可能となる。デ
ジタル画像/グラフィックプロセッサと独立したプログ
ラムが、対応するパラメータメモリのベースアドレス
と、データメモリのベースアドレスに対しレジスタPB
AおよびDBAを使用することもできる。
【0072】マルチプロセッサ集積回路100は小エン
ディアンまたは大エンディアンフォーマットで作動でき
る。特に表記しなければ、図および表は大エンディアン
フォーマットでのオペレーションを示す。内部レジスタ
および外部データバスのためのビットナンバリングは、
常に右側にビット0を有する小エンディアンの規定に従
う。64ビットのWワード内のバイトは、小エンディア
ンモードでは右側からアドレス指定され、大エンディア
ンモードでは左側からアドレス指定される。常に32ビ
ットオペレーションを用いて内部レジスタにアクセスす
ることにより混乱を受けることができる。他の実施例で
バス幅を広くしたり狭くしたりすることもできる。16
ビットの整数倍であるバス幅が最も有効であると信じら
れる。
【0073】転送コントローラ80は、マルチプロセッ
サ集積回路100のうちのマスタプロセッサ60および
デジタル画像/グラフィックプロセッサ71、72、7
3、74と外部メモリ、例えばビデオRAM5および6
並びにメモリ9との間のインターフェースとなってい
る。転送コントローラ80は、いくつかの自律的メモリ
オペレーションのみならずプロセッサによってリクエス
トされるメモリオペレーションを実行する。これらにつ
いては後述する。転送コントローラ80はすべてのメモ
リ11、12、13、14、15、21、22、23、
24、25、26、27、28、29、30、31、3
2、33、34、35、36、37、38、39および
40にアクセスをするクロスバー50に、64ビットの
バス接続をしている。従って転送コントローラ80はイ
ンストラクションキャッシュ、データメモリおよびパラ
メータメモリのすべてにアクセスできる。第2の64ビ
ットのバスは、画像システムバスに接続し、オフチップ
アクセスを行う。
【0074】転送コントローラ80はそのホールド/ホ
ールドアクノーリッジ機構を使用することにより、画像
システムを介する外部メモリへのアクセスを外部ホスト
が行うことを可能にしている。転送コントローラ80は
キャッシュミスおよびパケット転送リクエストを行い、
外部DRAM/VRAMのリフレッシュを行い、フレー
ムコントローラ90が必要とするシリアルレジスタ転送
サイクルを実行し、VRAMをベースとするディスプレ
イ/キャプチャバッファを更新する。メモリ22、2
3、24、27、28、29、32、33、34、3
7、38および39を用いる転送コントローラ80のメ
モリオペレーションは、通常、デジタル画像/グラフィ
ックプロセッサ71、72、73、74またはマスタプ
ロセッサ60からのパケット転送リクエストに応答して
行われる。パケット転送は、オンチップメモリとオフチ
ップメモリとの間でデータを転送する極めてフレキシブ
ルな方法を提供するものである。転送コントローラ80
は直接外部アクセス(DEA)サイクルを用いることに
より、プロセッサに直接データを送ることもできる。直
接外部アクセスサイクルはデジタル画像/グラフィック
プロセッサ71、72、73、74がオフチップメモリ
にアクセスできるようにすると共に、外部メモリにアク
セスする際にマスタプロセッサ60がそのデータキャッ
シュメモリをバイパスできるようにする。転送コントロ
ーラ80は種々のリクエストの優先権を定め、必要であ
ればパケット転送リクエスト間で外部メモリインターフ
ェースをタイムシェアする。マスタプロセッサ60、デ
ジタル画像/グラフィックプロセッサ71、72、7
3、74、フレームコントローラ90およびホスト処理
システム1からのリクエストのすべては固定された優先
度(順位)決定方法によりサービスされる。同じ優先度
の多数のリクエストがペンディングであると、転送コン
トローラ80はラウンドロビン方法に基づいてこれらに
サービスを行う。
【0075】転送コントローラ80はプロセッサからの
多くの異なるタイプのリクエストを処理しなければなら
ない。最適なシステムの性能を保つには、これらリクエ
ストは緊急度および重要性によって優先度が定められ
る。転送コントローラ80はこれらの異なる優先度に基
づいて作動するので、クロスバー50に対する自己の優
先度はサイクルごとに変わり得る。
【0076】図6は、画像システムバス上での転送コン
トローラ80のオペレーションの優先度を示す。これは
階層200として示されている。同じ優先度の多数のリ
クエストが受信されると、転送コントローラ80はこれ
らをラウンドロビン法で処理する。これについては図6
に示されている。いずれのプロセッサもパケット転送に
対して一つのアクティブな優先度しか有することができ
ない。マスタプロセッサ60が緊急優先度、高い優先度
および低い優先度のパケット転送リクエストを送ること
ができるが、デジタル画像/グラフィックプロセッサ7
1、72、73、74は、高低優先度のパケット転送に
限定されている。
【0077】最高優先度201はホスト処理システム1
による外部バスリクエスト(HRRQ)のサービスであ
る。転送コントローラ80はホストリクエストライン上
の信号に応答し、画像システムバスの制御をホスト処理
システム1の下に置くことができる。
【0078】次に低い優先度202は、フレームコント
ローラ90からのメモリリクエストのサービスである。
次に低い優先度203は、緊急なダイナミックランダム
アクセスメモリ(DRAM)のリフレッシュリクエスト
のサービスである。更に下に述べるように、DRAMリ
フレッシュリクエストの所定のバックログが形成された
際に、これら緊急DRAMリフレッシュリクエストが生
じる。
【0079】次の優先度204は、マスタプロセッサ6
0のインストラクションキャッシュメモリ11および1
2、データキャッシュメモリ12および13のサービス
並びにインタラプトがディスエーブルされたときのマス
タプロセッサ60の緊急パケットリクエストである。各
プロセッサに含まれる関連するキャッシュロジックによ
り、キャッシュに関連する転送コントローラ80のすべ
てのオペレーションが自動的にリクエストされる。リク
エストされたデータは外部メモリ位置からリクエスト中
のプロセッサのデータキャッシュメモリ内の適当なサブ
ブロックへ移動される。転送コントローラ80はマスタ
プロセッサ60が必要とする際に、マスタプロセッサ6
0のためにデータキャッシュメモリ13および14のダ
ーティサブブロックもセーブする。緊急パケット転送リ
クエストはマスタプロセッサ60によってリクエストで
きるだけであり、パケット転送リクエスト内の特定のビ
ットのセッティングを含む。これについては後述する。
マスタプロセッサ60がインタラプトをイネーブルする
場合、これらデータ転送は優先度が低いことに留意され
たい。
【0080】次に低い優先度は、デジタル画像/グラフ
ィックプロセッサ71、72、73、74またはマスタ
プロセッサ60のインストラクションキャッシュメモリ
11および12、データキャッシュメモリ12および1
3のインストラクションキャッシュリクエストまたはダ
イレクト外部アクセス(DEA)リクエストのサービ
ス、並びにインタラプトがイネーブルされている時のマ
スタプロセッサ60の緊急パケット転送リクエストを行
うことである。ここで、同じレベルの同時のアクセスリ
クエストは、リクエストしているプロセッサに応じてラ
ウンドロビン法により処理されることに留意されたい。
同じプロセッサに対するキャッシュサービスリクエスト
およびダイレクト外部アクセスリクエストは、次のプロ
セッサにトークンを送る前にサービスされる。
【0081】次の優先レベル206は、高い優先度のパ
ケット転送である。図6に示すように、種々のプロセッ
サから生じたパケット転送は、ラウンドロビン法で処理
される。マスタプロセッサ60またはデジタル画像/グ
ラフィックプロセッサ71、72、73または74のう
ちの一つがリクエストされたデータを待っている場合、
通常、高い優先度のパケット転送を用いる。転送コント
ローラ80は次の優先レベル207を有する低い優先度
のパケット転送に対して同様なラウンドロビン法を用い
る。マスタプロセッサ60またはデジタル画像/グラフ
ィックプロセッサ71、72、73または74のうちの
一つが、リクエストされたデータを待っていない場合、
このプロセッサは低い優先度のパケット転送を通常用い
る。後述するように、リクエスト中のプロセッサはパケ
ット転送を緊急にするか、高い優先度にするか、または
低い優先度にするかを表示する。
【0082】各リクエストの優先原理について、下に説
明する。外部デバイス、例えばホスト処理システム1
は、欲する場合、迅速なアクセスを行うことができなけ
ればならない。外部デバイスは後述するように、REQ
〔1:0〕をモニタすることにより、必要であれば高い
優先度のリクエストに対し転送コントローラ80に画像
システムバスを戻すことができる。フレームコントロー
ラ90のリクエストはビデオディスプレイまたはビデオ
キャプチャを悪化することなく、タイムクリティカルな
VRAM転送サイクルが生じるように、第2の優先度を
受け入れる。ホストリクエストサイクルおよびフレーム
コントローラ90のリクエストは、間欠的にしか発生し
ないので、高い優先度を必要とする緊急DRAMリフレ
ッシュはその下の優先度が与えられる。次の優先度はマ
スタプロセッサ60のキャッシュサービス、ダイレクト
外部アクセスおよびマスタプロセッサ60のインタラプ
トがディスエーブルされている際に生じる緊急優先度の
パケット転送サイクルである。これにより、通常インタ
ラプトをディスエーブルするマスタプロセッサ60のイ
ンタラプトサービスルーチンは、システム性能を最大に
するようにできるだけ迅速に実行することができる。デ
ジタル画像/グラフィックプロセッサ71、72、7
3、74のキャッシュサービスおよびダイレクト外部ア
クセスリクエストは次の優先度である。リクエストのサ
ービスがなされるまで、プロセッサはアイドル状態であ
るので、これらを迅速にサービスすることが重要であ
る。マスタプロセッサ60のキャッシュサービス、ダイ
レクト外部アクセスリクエストおよび緊急パケット転送
も、インタラプトがイネーブルされている場合のこの優
先度にある。その理由は、マスタプロセッサ60はシス
テム内の他の場所からのインタラプトリクエストにサー
ビスしていないからである。高い優先度のパケット転送
はリクエスト中のプロセッサが転送を終了するのにデー
タを待っていること、または転送コントローラ80が外
部バスバンド幅を最適にするよう、クロスバーアクセス
のためにデジタル画像/グラフィックプロセッサ71、
72、73および74よりも高い優先度とすることが必
要であることを意味している。低い優先度のパケット転
送は、プロセッサがデータを待っていないことを意味し
ているので、これらには極めて低い優先度が与えられ
る。意図する実施例では、トリックルリフレッシュサイ
クルに最下位の優先度が与えられる。これらサイクル
は、外部バスがアイドル状態であり、リフレッシュバッ
クログが0でない場合に実行されるだけである。これ
は、バックログを小さくし、後の時間に高い優先度の緊
急リフレッシュがリクエストされる可能性を少なくする
のに役立っている。
【0083】転送コントローラ80が同じ優先度の異な
るプロセッサから多数のリクエストを受けるときはいつ
も、これらの間でラウンドロビン法を行う。このラウン
ドロビン法は、固定された周期的な優先方法である。す
なわちこのことは、ラウンドロビンからいずれのプロセ
ッサも除くことができず、サイクル内のプロセッサの順
序を変えることができないことを意味している。特定の
プロセッサのリクエストが完了すると、常にチェーン内
でペンディング中のリクエストを有する次のプロセッサ
にラウンドロビントークンが渡される。他のプロセッサ
からの等しい優先度のリクエストをサービスする必要が
あるときは、これによって一つのプロセッサが転送コン
トローラ80を独占することが防止される。
【0084】転送コントローラ80のサービスを行うリ
クエストレベルに応じ、転送コントローラ80のクロス
バーの優先度はダイナミックに変わる。これについて
は、図7において階層210として示されている。転送
コントローラ80には次の優先度が割り当てられる。緊
急優先度のパケット転送リクエスト、キャッシュサービ
スリクエスト、ダイレクト外部アクセスリクエストのサ
ービスを行っているとき、またはそのパイプラインをフ
ラッシングしているときに、転送コントローラ80はマ
スタプロセッサ60の優先度212の上の優先度で作動
する。転送コントローラ80が、緊急DRAMリフレッ
シュリクエスト、フレームコントローラ90からのリク
エスト、ホストインターフェースリクエストまたはソフ
トリセットを受けるときはいつも、そのパイプラインを
フラッシュする。これらは完了を待っている待機中の外
部サイクルで開始することはできない。パイプラインの
フラッシングは、ときどき生じるか、または短期間の間
マスタプロセッサ60をロックアウトするだけである。
【0085】転送コントローラ80にはデジタル画像/
グラフィックプロセッサ71、72、73、74の優先
度214よりも高く、かつ高優先度のパケット転送用マ
スタプロセッサ60よりも低い優先度213が与えられ
る。これにより、マスタプロセッサ60をロックアウト
することなく転送コントローラ80に最大の可能な優先
度が与えられる。マスタプロセッサ60は一般にコント
ローラとして使用されるので、長期間これをロックアウ
トすることは、システムに好ましくない影響が及ぶ。
【0086】転送コントローラ80が低い優先度のパケ
ット転送を行う場合、このコントローラの優先度214
はデジタル画像/グラフィックプロセッサ71、72、
73、74のラウンドロビンの優先度214よりも低
い。これによってパケット転送の優先度が低い際に転送
コントローラ80がデジタル画像/グラフィックプロセ
ッサ71、72、73、74からのクロスバンド幅をス
チールすることが防止される。デジタル画像/グラフィ
ックプロセッサ71、72、73、74のローカルメモ
リアクセスは異なるメモリに向けられ、干渉できないこ
とに留意すべきである。従ってこれらローカルメモリア
クセスはラウンドロビン法で同じステージを有する。
【0087】転送コントローラ80によってより高い優
先度のリクエストが受け入れられる場合、このコントロ
ーラは新しいリクエストのクロスバーの優先度で現在の
オペレーションを完了したり、一時中断したりする。こ
れによりシステム内でのブロックが発生しないよう保証
される。従って例えば高い優先度のパケット転送リクエ
ストが受け入れられる場合、高い優先度で低い優先度の
パケット転送の一時中断が生じる。
【0088】転送コントローラ80はデジタル画像/グ
ラフィックプロセッサ71、72、73、74のインス
トラクションキャッシュミス、マスタプロセッサ60の
インストラクションおよびデータキャッシュミスに自動
的にサービスを行う。多数のキャッシュサービスリクエ
ストが受信されると、転送コントローラ80は図6に示
すように、ラウンドロビン法に基づき、これらの優先度
を定める。キャッシュミスのサービスが完了すると、転
送コントローラ80はリクエスト中のプロセッサにシグ
ナルを送る。マスタプロセッサ60はラウンドロビンで
の順番内にサービスされるインストラクションおよびデ
ータキャッシュの双方を有することができる。
【0089】デジタル画像/グラフィックプロセッサ7
1、72、73、74のインストラクションキャッシュ
は、各々4つの128バイト(16インストラクショ
ン)のサブブロックを含む4つのブロックから成る1方
向の組の関連(完全関連)キャッシュである。他の実施
例では、他方向の組の関連キャッシュを用いることもで
きる。デジタル画像/グラフィックプロセッサがキャッ
シュミスを経験すると、このプログラムフロー制御ユニ
ットは転送コントローラ80に信号を送ってキャッシュ
ミスサービスをリクエストする。デジタル画像/グラフ
ィックプロセッサ71、72、73または74は、イン
ストラクションを入れるキャッシュブロックを決定し、
この情報のみならずアドレスも転送コントローラ80へ
送る。転送コントローラ80は、外部メモリからの完全
サブブロック(128バイト)をフェッチし、これをリ
クエスト中のデジタル画像/グラフィックプロセッサ7
1、72、73、74の適当なキャッシュサブブロック
へ入れる。次に転送コントローラ80はリクエストのサ
ービスが完了し、プロセッサがそのプログラムの実行を
続けることができる旨を、デジタル画像/グラフィック
プロセッサ71、72、73または74へ知らせる。
【0090】マスタプロセッサ60は、各々4ブロック
から成る4方向の関連する組である。各ブロックは4つ
の64バイトのサブブロックを含む。マスタプロセッサ
60はインストラクションキャッシュまたはデータキャ
ッシュ、または双方に対するサービスをリクエストでき
る。マスタプロセッサ60のインストラクションキャッ
シュサービスリクエストは、転送コントローラ80によ
りフェッチされるサブブロックの大きさがわずか64バ
イトであることを除けば、デジタル画像/グラフィック
プロセッサ71、72、73、74のキャッシュリクエ
ストと同様に取り扱われる。
【0091】マスタプロセッサ60のデータキャッシュ
メモリ13および14は、転送コントローラ80がその
内容を外部メモリに書き戻すようにリクエストできる点
でインストラクションキャッシュ11および12と異な
っている。転送コントローラ80はマスタプロセッサ6
0のデータキャッシュミスに対し、マスタプロセッサ6
0のインストラクションキャッシュを用いる場合と同じ
ように、64バイトのサブブロックをフェッチする。し
かしながら一致するタグアドレスが発見できず、すべて
のブロックを使用したことによりマスタプロセッサ60
がブロックミスを起こす場合、このプロセッサはまず最
初に転送コントローラ80にブロックを置換する前に、
最後に使用したブロック内にダーティサブブロックを書
き戻すことをリクエストする。ダーティサブブロックの
書き戻しは、ラウンドロビン優先度内の単一マスタプロ
セッサ60の順番内で行うことができる。転送コントロ
ーラ80は特殊キャッシュインストラクションに応答し
てダーティサブブロックを書き戻すようにもリクエスト
できる。
【0092】転送コントローラ80はマスタプロセッサ
60およびデジタル画像/グラフィックプロセッサ7
1、72、73、74からのすべてのダイレクト外部ア
クセス(DEA)リクエストを処理する責任を負ってい
る。ダイレクト外部アクセスサイクルはデジタル画像/
グラフィックプロセッサ71、72、73、74が外部
メモリ内のデータに直接アクセスできるようにすると共
に、マスタプロセッサ60がそのデータキャッシュをバ
イパスできるようにする。ダイレクト外部アクセスには
高い優先度が与えられているので、これらアクセスは長
さが1バイト、半ワード(16ビット)、1ワード(3
2ビット)、またはダブルワード(64ビット)となり
得る単一アクセスに限られる。これにより、一つのプロ
セッサが多数のダイレクト外部アクセスサイクルで外部
バスを独占することが防止され、これによりダイレクト
外部アクセスリクエストおよび他のプロセッサのキャッ
シュミスのサービスが行われるのが防止される。単一の
オフチップメモリ位置への高速アクセス、例えばプログ
ラム可変またはオフチップレジスタが必要なときに、ダ
イレクト外部アクセスサイクルが使用される。
【0093】デジタル画像/グラフィックプロセッサ7
1、72、73、74は、それらのパラメータメモリ2
5、30、35および40、並びにそれらのデータメモ
リ22、23、24、26、28、29、32、33、
34、37、38および39に通常アクセスする。16
進数02000000以上のアドレスへのアクセスによ
り、ダイレクト外部アクセスリクエストは自動的に転送
コントローラ80へ送られる。このリクエストはキャッ
シュダイレクト外部アクセスラウンドロビンにおけるリ
クエスト中のデジタル画像/グラフィックプロセッサ7
1、72、73、74の順番に達したときにサービスを
受ける。キャッシュミスリクエストおよびダイレクト外
部アクセスリクエストの双方は、継続中の場合に1回で
サービスを行うことができる。クロスバーを介してアク
セスできないオンチップメモリ領域、例えばマスタプロ
セッサ60のパラメータメモリ16へのデジタル画像/
グラフィックプロセッサ71、72、73、74のアク
セスは、転送コントローラ80へのダイレクト外部アク
セスリクエストに変換される。しかしながらこのダイレ
クト外部アクセスはフォールトとなる。フォールトを生
じさせるようなデジタル画像/グラフィックプロセッサ
71、72、73、74のダイレクト外部アクセスサイ
クルは、フォールトしたデジタル画像/グラフィックプ
ロセッサ71、72、73、74のキャッシュサイクル
と同じように取り扱われる。
【0094】マスタプロセッサ60はデジタル画像/グ
ラフィックプロセッサ71、72、73、74と若干異
なる態様でダイレクト外部アクセスサイクルを用いる。
マスタプロセッサ60は、データキャッシュメモリ13
および14により通常外部メモリにアクセスする。マス
タプロセッサ60はダイレクト外部アクセスサイクルを
利用し、データキャッシュメモリ13および14および
アクセスメモリを直接バイパスする。特殊メモリロード
または記憶インストラクションを用いることにより、ダ
イレクト外部アクセスサイクルが明瞭に指定される。マ
スタプロセッサ60にアクセスできないオンチップアド
レス、例えばデジタル画像/グラフィックプロセッサ7
1、72、73、74のインストラクションキャッシュ
メモリ21、26、31および36に対するかかる特別
ロードまたは記憶インストラクションを、マスタプロセ
ッサ60が実行しようとする場合、このオペレーション
はダイレクト外部アクセスリクエストに変換され、次に
変換コントローラ80によってフォールトされる。アク
セス可能なオンチップメモリ領域、例えばオンチップレ
ジスタまたはデジタル画像/グラフィックプロセッサ7
1、72、73、74のデータメモリ22、23、2
4、27、28、29、32、33、34、37、3
8、39への特別メモリロードまたは記憶オペレーショ
ンは、通常のロードまたは記憶オペレーションに変換さ
れ、転送コントローラ80を介してダイレクト外部アク
セスリクエストは行われない。
【0095】図8は、転送コントローラ80の高度なブ
ロック図を示す。下記に、各主要ブロックを簡単に説明
する。転送コントローラ80は内部メモリインターフェ
ース301と、外部メモリインターフェース302と、
リクエスト待ち行列化および優先度決定回路303と、
キャッシュ、VRAMおよびリフレッシュコントローラ
310と、パケット転送用先入れ先出し(FIFO)バ
ッファ311と、キャッシュバッファ312と、ソース
レジスタ321およびソース制御ロジック322から成
るソースマシン320と、ソースマルチプレクサおよび
アライメントロジック330と、宛て先レジスタ341
および宛て先制御ロジック342から成る宛て先マシン
340と、宛て先マルチプレクサおよびアライメントロ
ジック302とから成る。
【0096】転送コントローラ80はマルチプロセッサ
集積回路100による外部メモリへのすべてのアクセス
に対して責任を負っている。外部メモリインターフェー
スは多数の異なるタイプや大きさのメモリデバイスおよ
び周辺機器に合わせるように設計されている。アクセス
されるメモリのタイプは、ダイナミックに決定されるの
で、各メモリサイクルのタイミングはアクセスされるデ
バイスに対して最適にすることができる。
【0097】次は、外部メモインターフェース302を
介して外部データアクセスのために使用されるマルチプ
ロセッサ集積回路100の信号のリストである。
【0098】アドレスバスA〔31:0〕。これはマル
チプロセッサ集積回路100からの32ビットのバイト
アドレスを外部メモリに送るためのものである。このア
ドレスはDRAMアクセスに対して多重化できる。
【0099】アクセスシフト選択AS〔2:0〕。これ
らの入力は転送プロセッサ80による別アドレスへ与え
られるシフト量を決定する。表4aおよび4bに示すよ
うに、0を含む8つのシフト量がサポートされている。
表4aはアドレスバスビットA〔31:16〕上の出力
を示し、表4bはアドレスバスビットA〔15:0〕上
の出力を示す。
【0100】
【表4】
【0101】行アドレス時間の間、アドレスバスA〔3
1:0〕は、通常のアドレス値を出力する。列アドレス
時間の間、アドレスバスA〔31:0〕は表4aおよび
4bに示すようにアドレスシフト選択AS〔2:0〕に
従ってシフトされたアドレス値を出力する。Xと表示さ
れたアドレスライン出力は、ドライブされず、高インピ
ーダンス状態にセットされたものであることに留意され
たい。
【0102】バスサイズ選択BS〔1:0〕。これは6
4ビット幅よりも狭いデータバスに対するダイナミック
なバスの大きさの決定を可能とする。下記の表5に、こ
れら入力信号のコード化を示す。
【0103】
【表5】
【0104】出力ブロックCLKOUT。このクロック
出力は外部ロジックがマルチプロセッサ集積回路100
の作動に同期できるようにするものである。別タイミン
グ選択CT〔1:0〕。これらの入力信号は転送コント
ローラ80によって与えられる現在のメモリサイクルの
どのタイミングであるかを決定する。下記の表6にこれ
ら入力信号のコード化を示す。
【0105】
【表6】
【0106】列アドレスストローブCAS’〔7:
0〕。これら出力は、DRAM/VRAMの反転CAS
をドライブする。個々のバイトアクセスを可能にするよ
うに、8個のストローブが達成される。エンディアンモ
ードにかかわらず、反転CAS
〔0〕は、D〔7:0〕
でのデータ転送に対応し、CAS’〔1〕は、D〔1
5:9〕上の転送に対応する。トランスペアレンシーで
はこれら信号はバイト書き込みストローブとして使用さ
れる。データバスD〔63:0〕。この入出力バスは、
マルチプロセッサ集積回路100の内外にメモリサイク
ル当たり64ビットまでのアクセスを可能とする。
【0107】データバッファ出力イネーブルDBE
N’。この出力はデータトランシーバをオンにするのに
用いることができる。データ方向インディケータDDI
N’。この出力は、データトランシーバに対する方向イ
ンディケータとなる。特別機能ピンDSF1およびDS
F2。これら出力は特別VRAM機能を選択するのに使
用される。フォールト反転FAULT。この入力はメモ
リフォールトが生じたことを、マルチプロセッサ集積回
路100に知らせる。
【0108】ページサイズ選択PS〔2:0〕。これら
入力は現在アクセスされているメモリのページ選択をマ
ルチプロセッサ集積回路100に示す。これら入力の使
用については、後に更に詳細に説明する。行アドレスス
トローブ反転RAS。これら出力はDRAM/VRAM
の反転RAS入力をドライブする。
【0109】READY。この入力は完了すべきメモリ
サイクルに対して外部デバイスがレディー状態となって
いることを表示する。これはメモリサイクル内に待機ス
テートを挿入するのに、転送コントローラ80によって
使用される。
【0110】リトライRETRY’。この入力はメモリ
がビジーとなっており、転送コントローラ80が再びメ
モリサイクルを開始すべきことをマルチプロセッサ集積
回路100に表示するものである。行ラッチRL’。こ
の出力はアドレスバス上に有効な32ビットアドレスが
存在していることを表示するものである。
【0111】ステータスコードSTATUS〔4:
0〕。この出力は現在の転送コントローラのメモリサイ
クルのタイプと、起点についての詳細な説明を与える。
表7に示すように、行アクセスの開始から列アクセスの
開始までに、STATUS〔4:1〕の出力がコード化
される。下記のUTIME’と共にこれらをコーディン
グすることにより、マルチプロセッサ集積回路100の
タイミングに発生するメモリタイミングを外部デバイス
が発生することができるようなっている。
【0112】
【表7】
【0113】行時間ステータスコードの詳細は次のとお
りである。パケット転送、キャッシュミスまたはダイレ
クト外部アクセスリクエストに対しては通常の読み出し
コードが出力される。パケット転送、データキャッシュ
書き戻しまたはダイレクト外部アクセスリクエストによ
って発生される通常の書き込みサイクルに対しては通常
の書き込みコードが出力される。トリックルリフレッシ
ュサイクルおよびリフレッシュコントローラからの緊急
リフレッシュリクエストにより発生されるバーストリフ
レッシュサイクルの間にリフレッシュコードが出力され
る。
【0114】下記に周辺デバイスパケット読み出しおよ
び書き込みについて更に説明する。周辺デバイスのパケ
ット転送の結果として生じるメモリ読み出しサイクルに
対しては、周辺デバイスパケット転送読み出しコードが
出力される。このことは、後の列アクセス上のメモリか
ら読み出されるデータを、転送を開始させた周辺デバイ
スによってラッチすべきことを示している。周辺デバイ
スのパケット転送の結果として生じるメモリ書き込みサ
イクルに対しては、周辺デバイスパケット転送書き込み
コードが出力される。このことは、周辺デバイスがメモ
リ内に入れるべきデータでバスをドライブできるよう
に、後の列アクセスの間にマルチプロセッサ集積回路1
00がデータバスを高インピーダンスにすることを意味
している。
【0115】ブロック書き込みは特別なVRAMサイク
ルである。ブロック書き込みアクセスモードでパケット
転送によって発生されたVRAMに対し、ブロック書き
込みサイクル中にブロック書き込みコードが出力され
る。アクセスモードとしてブロック書き込みを指定した
パケット転送のカラーレジスタロード部分の間でロード
カラーレジスタコードが出力される。このサイクルはシ
ステムVRAMのカラーレジスタにデータを入れるのに
使用され、このカラーレジスタデータは部分書き込みサ
イクル中にメモリに書き込まれる。
【0116】シリアルレジスタ転送アクセスモードを使
用してパケット転送のソースサイクルの間にパケット転
送シフトレジスタ読み出しコードが出力される。このサ
イクルはシステムのVRAM上で読み出しメモリからレ
ジスタへの転送を行うものである。シリアルレジスタ転
送アクセスモードを指定したパケット転送の宛て先サイ
クルの間に出力される。このサイクルシステムVRAM
上での書き込みレジスタからメモリへの転送を実行す
る。
【0117】このフレームサイクルはフレームコントロ
ーラ90によって必要とされるメモリアクセスである。
シフトレジスタの読み出しおよび書き込みは特別シルア
ルレジスタのVRAMサイクルとなっている。位置読み
出し転送コードのうちのフレーム0は、フレームコント
ローラ90によってリクエストされるそれぞれのフル読
み出し転送サイクルの間に出力される。これらサイクル
はシステムVRAM上でのフル読み出し転送サイクルを
実行し、STATUS〔2〕信号はフレーム0のリクエ
ストサイクルでは0であり、フレーム1のリクエストサ
イクルでは1である。フレームコントローラ90によっ
てリクエストされるフル書き込み転送サイクルの間にフ
レーム0または1の書き込み転送コードが出力される。
これらサイクルは、システムVRAM上でのフル書き込
み転送サイクルを実行する。STATUS〔2〕信号は
フレーム0のリクエストサイクルに対しては0であり、
フレーム1のリクエストサイクルに対しては1である。
フレームコントローラ90はスプリット読み出し転送サ
イクルをリクエストするとフレーム0または1のスプリ
ット読み出し転送コードが出力される。これらサイクル
はVRAMメモリの行からシリアルレジスタの半分への
転送を行う。STATUS〔2〕信号はフレーム0のリ
クエストサイクルに対しては0であり、フレーム1のリ
クエストサイクルに対しては1である。フレームコント
ローラ90によってリクエストされるスプリット書き込
み転送サイクルの間に、フレーム0または1のスプリッ
ト書き込み転送コードが出力される。これらサイクルは
VRAMシリアルレジスタの半分からメモリアレイ内へ
転送を行う。STATUS〔2〕信号はフレーム0のリ
クエストサイクルに対しては0であり、フレーム1のリ
クエストサイクルに対しては1である。
【0118】別アクセスからのスタートから行アクセス
のスタートまでに、表8に示すように、STATUS
〔4:1〕の出力がコード化される。この情報は、転送
コントローラ80を介してマルチプロセッサ集積回路1
00により出力され、メモリサイクルをリクエストする
モジュールを示す。これら信号は、システム解析および
デバッグのため発生されるが、外部メモリシステムには
不要である。
【0119】
【表8】
【0120】転送/出力イネーブル反転TR。転送コン
トローラからのこの出力は、DRAM出力ドライバおよ
びVRAMシフトレジスタ転送サイクルをイネーブルす
る。ユーザータイミング選択反転UTIME。この入力
は転送コントローラが反転RASおよび反転CAS
〔7:0〕のタイミングを変え、ユーザーが自らのメモ
リタイミングを発生できるようにするものである。この
入力はマルチプロセッサ集積回路100が作動するエン
ディアンモードを決定するようにリセットでも使用され
る。書き込みイネーブル反転WE。これは通常は書き込
みまたは書き込み転送サイクルが生じていることをメモ
リに表示する出力である。内部メモリテストモードで
は、この信号は内部メモリへの書き込みを行うよう、外
部デバイスによってドライブされる入力となっている。
【0121】マルチプロセッサ集積回路100により発
生される各外部メモリサイクルは、ページモードサイク
ルを除く期間中の少なくとも5つのマシンステートであ
る。マシンステートは1クロック期間の長さにあり、C
LKOUTの降下エッジで始まる。各メモリサイクルは
2つの部分、すなわちアドレスサブサイクルとデータサ
ブサイクルとを有する。ページモードサイクルは、アク
セスが一つのアドレスサブサイクルとマルチデータサブ
サイクルを有するこのフォームの拡張である。
【0122】アドレスサブサイクルは外部メモリサイク
ルの第1マシンステートで開始し、少なくとも4つのマ
シンステート長さである。このときにアクセスのための
アドレスおよびステータスコードが出力される。この時
間にDRAMおよびVRAMのための行アドレスがラッ
チされるので、このサイクル部分は、行アドレス時間と
も称される。
【0123】アドレスバスA〔31:0〕は、現在アク
セス中の64ビットワードの開始バイトをポイントする
32ビットのアドレスを出力する。このアクセスは転送
すべきスタートバイトおよびデータ量に応じて1〜8バ
イトのいずれでもよい。このアドレスはマルチプロセッ
サ集積回路100の外部メモリスペースをデコードする
のに使用される。次に外部デコードロジックは多数の信
号をマルチプロセッサ集積回路100へ戻し、アドレス
シフト選択AS〔2:0〕によりアクセスされているデ
バイスのタイプ、列タイミング選択CT〔1:0〕によ
り速度、ページサイズ選択PS〔2:0〕によりページ
サイズ、バスサイズ選択BS〔1:0〕によりデータバ
ス幅を表示する。この情報はアドレスサブサイクルの長
さのみならず、データサブサイクルの長さ、アドレス指
定およびその数を決定するのに使用される。アドレスお
よびステータスはRL′またはRAS′によりラッチで
きる。
【0124】アドレスサブサイクルは、実行されるアク
セスのタイプが必要とするような4つのマシンステート
を越えるマシンステートの整数だけ自動的に延長され
る。このサブサイクルは更に待機ステートの挿入によっ
ても延長される。このサブサイクルは少なくとも1つの
マシンステートの長さであり、アドレスサブサイクルの
直後に続く。この時には、DRAMおよびVRAMのた
めの別アドレスが出力され、マルチプロセッサ集積回路
100を外部メモリとの間でデータが転送される。この
メモリサイクル部分は、列アドレス時間と称される。
【0125】データバスD〔63:0〕は、マルチプロ
セッサ集積回路100と外部メモリの間でデータを転送
する。これらデータは書き込みサイクルでドライブされ
るか、または読み出しサイクルでラッチされるかのいず
れかである。バス上の有効データの位置はマルチプロセ
ッサ集積回路100のエンディアンモード、転送データ
量およびメモリ幅により決定される。
【0126】この時間の間に出力される列アドレスは、
32ビットバイトのアドレスのシフトされた変形例であ
る。アドレスバスA〔31:0〕バス上のアドレスのア
ライメントはアドレスサブサイクル中にマルチプロセッ
サ集積回路100へ入力されるアドレスシフト選択AS
〔2:0〕によって決定される。
【0127】データサブサイクルの長さは、通常、アド
レスサブサイクル中にマルチプロセッサ集積回路100
へ入力される列タイミング選択CT〔1:0〕により決
定されるような1つ、2つまたは3つのマシンステート
である。より長いアクセス時間を必要とするデバイス
は、アドレスまたはデータサブサイクルのいずれかに待
機ステートを挿入できる。
【0128】現在のメモリアクセスは、行時間における
ページサイズ選択PS〔2:0〕入力に基づく先のアク
セスと同一方向で、かつ同一メモリページ内にあるとき
はいつも、転送コントローラ80はページモードサイク
ルを使用する。ページモードサイクルは後にマルチデー
タサイクルが続く一つのアドレスサブサイクルから成
り、データは同じメモリページ内に限り隣接している必
要はない。
【0129】アドレスおよびデータサブサイクルの双方
の間で、マルチプロセッサ集積回路100はSTATU
S〔4:0〕ピン上にステータスコードを出力する。こ
れらステータスコードは実行中の外部サイクルに関する
情報を与えるものである。アドレスサブサイクルの行時
間の間、STATUS〔4:0〕ピンは表7に示すよう
なコードを出力し、実行中のサイクルのタイプを表示す
る。その行時間ステータスコードは反転RLまたは反転
RAS信号によってラッチでき、メモリバンクデコーデ
ィングを行ったり、特別ハードウェア機能をイネーブル
するように外部ロジックによって使用される。データサ
ブサイクルの列時間の間、STATUS〔4:0〕ピン
に関する情報が変化し、そのサイクルおよびそのリクエ
スト中のプロセッサについての詳細が与えられる。表8
にはこれらアクティビティコードが示されている。これ
らコードはサイクル自体のタイプに関する情報を与える
ものでないので、システムのデバッグを容易にするよう
に、主として使用されるものである。
【0130】転送コントローラ80が外部メモリと正し
く通信できるようにするため、アクセス中のメモリがど
のタイプであるかを知る必要がある。これはマルチプロ
セッサ集積回路100のアドレスシフト選択AS〔2:
0〕、バスサイズ選択BS〔1:0〕、列時間選択CT
〔2:0〕およびページサイズ選択PS〔2:0〕入力
を用いることにより、行時間でメモリタイプを識別する
ことにより行われる。マルチプロセッサ集積回路100
は外部メモリアドレスおよび行時間ステータスコードを
出力し、これら入力をサンプリングし、メモリタイプを
決定する。これによりアドレスをデコードし、メモリ識
別信号を適当なレベルにドライブするための外部ロジッ
ク時間が与えられる。選択されたメモリタイプは、次の
アドレスサブサイクルまで有効な状態に留まる。
【0131】マルチプロセッサ集積回路100はDRA
MのみならずSRAMもサポートしているので、アドレ
スバス上に多重化された行および列アドレスを発生しな
ければならない。マルチプロセッサ集積回路100は常
に行時間にフルの32ビットバイトのアドレスを出力す
る。列時間で、この回路はバス上のアドレスをシフトし
てDRAMによってすでにラッチされている行アドレス
に列アドレスを一致させなければならない。アレイサイ
ズはデバイスの行/列アドレスビットの数を決定するの
で、列アドレスを正しく合わせるにはマルチプロセッサ
集積回路100はアクセスするDRAMのアレイサイズ
に知っている必要がある。これはアドレスシフト選択A
S〔2:0〕入力を使用して行われる選択である。外部
論理は行時間においてマルチプロセッサ集積回路100
によって出力されるアドレスをデコードし、アドレスシ
フト選択AS〔2:0〕入力に3ビットのシフトコード
を供給する。転送コントローラ80はこの値をサンプリ
ングし、ラッチし、これを使ってダイナミックメモリに
必要なようにアドレスを多重化するか、またはスタティ
ックメモリおよび周辺機器と使用するため、多重化しな
でおくかを決定する。
【0132】表4aおよび4bは、サンプルされたアド
レスシフト選択AS〔2:0〕の値が列時間に出力され
るアドレスにどのように影響するかを示している。値が
000である場合、各々の後の列アドレスにたいしてシ
フトされていない32ビットのアドレスが出力される。
値が0でない場合、表4aおよび4bが示すように、そ
の後の別アドレスがシフトされる。シフト値は8〜14
ビットの範囲であるが、このことは64K×N個〜25
6M×N個のアレイサイズに対応する8〜14個のアド
レスピンを備えたダイナミックメモリがサポートされる
ことを意味している。アドレスバスA〔2:0〕はシフ
ト量に関係なくバイトアドレスビット0〜2を常に出力
する。これはダイナミックバスのサイジングをサポート
するため行われる。
【0133】例えば1M×4個のDRAMが64ビット
ワイドのコンフィギュレーションでデータバスに接続さ
れていると仮定する。これらメモリは各々10ビットの
行および列アドレスを必要とする。マルチプロセッサ集
積回路100のアドレスシフト選択AS〔2:0〕はバ
イトアドレスを示しており、メモリバンクは64ビット
幅であり、ここのバイトは反転CAS〔7:0〕ストロ
ーブにより制御されるので無視できる。このことは、メ
モリはビットA〔3〕で始まる20個の隣接するアドレ
スビットを必要とする。表4aおよび4bを検討する
と、011アドレスシフト選択のAS〔1:0〕の値は
16ビットの多重化されたアドレスを与えることが判
る。ビットA〔3〕の開始アドレスが列時間におけるア
ドレスピンA〔13〕に対応しているので、A〔13〕
で開始する10個のマルチプロセッサ集積回路100の
アドレスピンにはDRAMアドレスピンが接続されてい
る。
【0134】可能であれば転送コントローラ80はペー
ジモードサイクルを実行するので、コントローラは現在
アクセス中のメモリのためのページまたは行境界を、い
つクロスして新しいページ上の行のアクセスを行うこと
ができるかを知る必要がある。現在のアクセスに対する
ページサイズは、外部ロジックによりページサイズ選択
PS〔2:0〕ピンに置かれる3ビットの値により表示
される。転送コントローラ80は行時間でこれらピンを
サンプリングし、これらを使用して変化しているどのア
ドレスピンがページの変化を表示しているかを決定す
る。サンプリングされた値は、次の行アクセスまでに転
送コントローラ80によって保持される。ページサイズ
選択PS〔2:0〕に表示されたページサイズは、必ず
しもアドレスシフト選択AS〔2:0〕上に表示された
シフト量に対応しているわけではないが、この理由は、
多数のバンクをインターリーブすることができるからで
ある。
【0135】外部メモリアクセスが起きるといつも、転
送コントローラ80はアドレスの21個の最高位ビット
を内部LASTPAGEレジスタ360に記録する。各
々のその後の列アクセスのアドレスは、この値と比較さ
れる。これは図9にプログラムされている。ページサイ
ズ選択PS〔2:0〕に入力された値は、比較中にLA
STPAGEレジスタ360の6個の最小位ビットを選
択的に無視するのに使用される。この比較において、ペ
ージサイズ選択PS〔2:0〕−1の値に等しいビット
番号よりも低いLASTPAGEレジスタは無視され
る。常に15個の最高位ビットが比較され、常に次のア
ドレスの11の最小位ビットが無視される。LASTP
AGEレジスタ136のイネーブルされたビットと次の
メモリアドレスとが一致しない場合、ページが変わり、
行アドレスサイクルと共に次のメモリアドレスが始ま
る。ページサイズ選択PS〔2:0〕=00であれば、
ページモードがディスエーブルされ、別の行アクセスと
共にその後のサイクルが開始される。
【0136】例えばアクセスされているメモリが他のバ
ンクとインターリーブされない64ビットのデータバス
として接続されている16個の1M×4個のDRAMか
ら成ると仮定する。各メモリデバイスは2の10乗ビッ
トの行サイズを有する。DRAMのページモードサイク
ルの間に、単一行内の任意の位置にアクセスできるの
で、コンフィギュレーションのためのページサイズは2
の10乗個の位置/ページ×8バイト/位置=8Kバイ
ト/ページとなる。図9が示すように、これは011の
ページサイズ選択PS〔2:0〕に対応する。転送コン
トローラ80が行時間でページサイズ選択PS〔2:
0〕=011をサンプリングすると、コントローラはペ
ージ境界がクロスされたかどうかを判断するため、その
後のアクセスのビット31〜13をチェックする。これ
はこのような特殊コンフィギュレーションに対するDR
AMの行アドレスビットおよびバンクデコードビットに
対応する。図9に、8個の可能なページサイズ選択PS
〔2:0〕のための比較されたアドレスビットおよびペ
ージサイズが示されている。
【0137】
【表9】
【0138】LASTPAGEレジスタ360は関連す
る有効ビット361を有する。この有効ビット361
は、LASTPAGEレジスタに記憶されたデータが有
効なものとして処理されたか、または無効なものとして
みなされたかを示す。LASTPAGEレジスタ360
はリセット、ホストアクセス、フォールトおよび再試行
の後、またはアクセス方向の切り替え、例えば読み出し
と書き込みとの切り替えの後に、有効なものとみなされ
る。これにより、その後のアクセス前に常に行アクセス
が強制的に行われる。更にLASTPAGEレジスタ3
60はリフレッシュサイクル、フレームコントローラ9
0のリクエストしたサイクルおよびパケット転送の発生
したシリアルレジスタ転送サイクルの前後で無効とみな
されるので、これらサイクルは常にシングルのノンペー
ジモードサイクルとして生じる。周辺デバイスのパケッ
ト転送の特殊な例では、周辺デバイス転送ステータスコ
ードが出力されるように、常に行アクセスで転送が開始
する。新しいステータスコードが出力できるように、転
送の終了時にLASTPAGEレジスタ360のデータ
は無効とみなされる。しかしながら転送中はLASTP
AGEレジスタ360は周辺デバイス転送が可能な限り
ページモードサイクルを利用するように、通常作動す
る。
【0139】現在のアクセスのためのバスサイズを決定
するように、行時間でバスサイズ選択PS〔1:0〕ピ
ンがサンプリングされる。転送コントローラ80は表5
に示すように、8、16、32または64ビットのバス
サイズをサポートする。バスサイズをセットすることに
より、各列アクセス中に転送コントローラ80が転送で
きるバイトの最大数が決定される。リクエストされたバ
イト数がバスサイズを越える場合、転送コントローラ8
0は転送を完了するように自動的にマルチアクセスを実
行する。選択されたバスサイズは、転送にデータバスの
どの部分が必要となるかも決定する。64ビットのメモ
リに対しては、全バスを利用できる。32ビットメモリ
に対しては、ビッグエンディアンモードでデータバスD
〔63:32〕ピンを使用し、リトルエンディアンモー
ドではデータバスD〔31:0〕ピンを用いる。ビッグ
エンディアンモードおよびリトルエンディアンモードで
はそれぞれ16ビットバスはデータバスD〔63:4
8〕ピンおよびデータバスD〔15:0〕ピンを利用
し、8ビットバスはデータバスD〔63:56〕ピンお
よびデータバスD〔7:0〕ピンを用いる。どのような
バスサイズを使用するにせよ、転送コントローラ80は
常にデータをバスの適当な部分に一致させ、適当な反転
CASストローブを附勢し、有効なバイトしか転送され
ないように保証する。
【0140】転送コントローラ80はメモリタイミング
の4つの基本的組をサポートしている。これにより待機
ステートを使用することなく、1列アクセス当たり1、
2または3クロックサイクルを選択することができる。
すべてのタイプは性質がDRAMに類似しているが、各
々は特定タイプのDRAMまたはSRAMに適してい
る。使用するタイミングは表6に示すように、列タイミ
ング選択CT〔1:0〕入力によって決定される。現在
アクセス中のメモリタイプを決定するため、アドレスを
デコードした後に外部デコードロジックはこれらピンを
適当なレベルまでドライブする。パイプライン化されて
いない1サイクル/列タイミングは、極めて高速のアク
セス時間を有するデバイスと共に使用されるよう設計さ
れている。パイプライン化された1サイクル/列タイミ
ングは、アクセスがパイプライン化されていることを除
けば1サイクル/列タイミングに類似している。1サイ
クルで1つのアドレスを出力し、次のサイクルでそのア
ドレスに対応するデータがアクセスされる。このタイミ
ングはパイプライン化されたページモードサイクルをサ
ポートするDRAM/VRAMと共に使用するためのも
のであるが。同期式SRAMデバイスと共に使用するこ
ともできる。パイプライン化されていない2サイクル/
列タイミングサイクルは、SRAMおよび高速DRAM
デバイスに対して列アクセス時間の2クロックサイクル
を発生する。更にこれらタイミングサイクルは、行アド
レス時間に1サイクルを加えることも行う。パイプライ
ン化されていない3サイクル/列サイクルは、DRAM
およびその他の低速デバイスに用いるためのものであ
る。このサイクルは列アクセス時間の3クロックサイク
ルを発生する外に、行アクセス時間に2つのクロックサ
イクルを加える。更に選択された列タイミングは全ペー
ジの間、すなわち次の行アクセスが行われるまで有効な
ままである。外部デバイスの役割は、発生されたアドレ
スに基づき、適当な列タイミング選択CT〔1:0〕を
供給することである。
【0141】ブロック書き込みサイクルおよびロードカ
ラーレジスタサイクルの間、バスサイズ選択BS〔1:
0〕ピンは異なる目的に対して使用される。ブロック書
き込みは64ビットバスに対してしかサポートされてい
ないので、バスサイズ情報は不要である。その代わり
に、アドレス指定されたメモリがサポートするブロック
書き込みのタイプを表示するように、バスサイズ選択B
S〔1:0〕が使用される。表23には、これらサイク
ルの間のBS〔1:0〕の値が示されている。ブロック
書き込みについては後に詳細に説明する。
【0142】図8に示した意図する実施例では、転送コ
ントローラ80の外部メモリインターフェース302に
よりマルチプロセッサ集積回路100の外部メモリサイ
クルが発生される。外部メモリインターフェース302
はメモリインターフェース信号の変化を制御するよう、
一連のステートを発生する複雑なステートマシンを含ん
でいる。発生されるステートおよびそれらのシーケンス
は、実行されるサイクルのタイプ、アクセスされるメモ
リの列タイミング、次に実行すべきアクセスおよびフォ
ールト等のような外部または内部事象に基づき変わる。
意図する実施例では、マシンステートを含むが、当業者
であればリードオンリーメモリに固定プログラムを有す
るマイクロコントローラまたはプログラマブルマイクロ
プロセッサによって、これら機能を実行できることは理
解できよう。
【0143】図10は、外部メモリインターフェース3
02のための方法を定めた完全ステート図を示す。多数
のステートとステート遷移が存在するが、これらのシー
ケンスは基本的には、実行されるメモリアクセスに対し
て選択される列タイミングに依存する。更にステートは
2つのグループ、すなわち行時間ステートと列時間ステ
ートとに分解できる。
【0144】行時間ステートは、各メモリアクセスのア
ドレスサブサイクルすなわち行時間を構成し、外部メモ
リインターフェース302は新しいページアクセスが開
始する時はいつもこれらステートに入る。アドレスされ
るメモリタイプが決定されるのは、これらステートの間
である。各行アクセスの間には、最低4つの行ステート
が生じる。これらは次のように定義される。
【0145】すべてのメモリアクセスに対する開始ステ
ートはr1ステート370である。ステート370中、
転送コントローラ80は行アドレスA〔31:0〕およ
びサイクルタイプSTATUS〔4:0〕を出力し、す
べての制御信号を不作動ステートにドライブする。
【0146】すべてのメモリアクセスに共通な次のステ
ートは、r2ステート371である。ステート371中
では、転送コントローラ80は反転RLハイをアサート
し、データ転送方向に従ってDDIN’をドライブす
る。ステート371中に、転送コントローラ80はアド
レスシフト選択AS〔2:0〕、バスサイズ選択〔1:
0〕、列タイミング選択CT〔1:0〕、ページサイズ
選択PS〔2:0〕および反転UTIME入力をサンプ
リングする。
【0147】外部メモリインターフェース302は、ブ
ロック書き込みおよびロード色レジスタを含む読み出し
および書き込みのために、r3ステート372となる。
ステート373中、転送コントローラ80はDBE
N’、DSF1、DSF2、反転TRGおよびWE’を
アクティブ行時間レベルにドライブし、FAULT’、
READYおよびRETRY’入力をサンプリングす
る。
【0148】外部メモリインターフェース302は、リ
フレッシュの間に限りrf3ステート373にとなるス
テート373中、転送コントローラ80は、すべてのC
AS’〔7:0〕ストローブを附勢し、FAULT’、
READYおよびRETRY’入力をサンプリングす
る。
【0149】外部メモリインターフェース302は、シ
フトレジスタ転送サイクルに限り、tr3ステート37
4となる。ステート374は外部的にはr3ステート3
72と同一である。
【0150】外部メモリインターフェース302は、列
タイミング選択CT〔1:0〕=11のときに、3サイ
クル/列アクセスの間に限り、r4ステート375とな
る。信号遷移は生ぜず、転送コントローラ80はRET
RY’入力をサンプリングする。
【0151】列タイミング選択CT〔1〕=1のとき
に、r5ステート376は2および3サイクル/列アク
セスと共通である。ステート376中、転送コントロー
ラ80は、RAS’出力を低レベルにドライブし、RE
TRY’入力をサンプリングする。
【0152】外部メモリインターフェース302はリフ
レッシュを除くすべてのアクセスの間でr6ステート3
77となる。ステート377中、転送コントローラ80
はRAS’が既に低レベルでなければこれを低レベルに
ドライブし、DBEN’、DSF1、DSF2、TR
G’およびWE’をそれらの適当な行時間レベルにドラ
イブする。転送コントローラ80はREADYおよびR
ETRY’入力もサンプリングする。ステート377
は、多数回繰り返すことができる。
【0153】外部メモリインターフェース302は、リ
フレッシュサイクルに限り、rf6ステート378とな
る。ステート378中、転送コントローラ80はRA
S’出力を低レベルにドライブし、RETRY’入力を
サンプリングする。
【0154】rf7ステート379は列タイミング選択
CT〔1〕=1のとき、2および3サイクル/列リフレ
ッシュと共通である。ステート379中、転送コントロ
ーラ80はSTATUS〔4:0〕に関するプロセッサ
アクティビティコードを出力し、RETRY’入力をサ
ンプリングする。
【0155】外部メモリインターフェース302は列タ
イミング選択CT〔1:0〕=11のとき、3サイクル
/列リフレッシュの間に限り、rf8ステート380と
なる。信号の遷移は生じない。転送コントローラ80は
RETRY入力をサンプリングする。
【0156】rf9ステート381は、すべてのリフレ
ッシュに対する最終ステートである。ステート381
中、転送コントローラ80はSTATUS〔4:0〕に
関するプロセッサのアクティビティコードを出力し、R
ETRY’入力をサンプリングする。
【0157】rhizステート382は、高インピーダ
ンスステートである。外部メモリインターフェース30
2は、外部バスホストリクエスト中にステート382と
なる。バスレリースを介する画像システムバスの復帰ま
でに外部メモリインターフェース302はステート38
2を繰り返す。
【0158】列時間ステートは各メモリアクセスのデー
タサブサイクルまたは行時間を含む。これらステートの
間にすべてのデータ転送が行われる。外部メモリインタ
ーフェース302は2つの基本シーケンスの列ステー
ト、すなわちパイプライン化された、またはパイプライ
ン化されていない1サイクル/列アクセスに対するシー
ケンスと、2および3サイクル/列アクセスに対するシ
ーケンスをとる。ページモードオペレーションの間、マ
ルチ列アクセスが生じ得るので、外部メモリインターフ
ェース302はシングルページモードアクセスが進行す
る間、何回もこれらステートシーケンスを繰り返すこと
がある。
【0159】c1、2ステート382は、列タイミング
選択CT〔1:0〕=10の際の2サイクル/列アクセ
スのための第1列ステートである。ステート382の
間、転送コントローラ80はアドレスバスA〔31:
0〕上の列アドレスおよびSTATUS〔4:0〕に関
するプロセッサアクティビティコードを出力する。転送
コントローラ80は、書き込みサイクルであればデータ
出力をドライブし、適当なCAS’〔7:0〕ストロー
ブをアサートする。
【0160】c1、3ステート384は、列タイミング
選択CT〔1:0〕=11の際の3サイクル/列アクセ
スのための第1列ステートである。ステート384の
間、転送コントローラ80はアドレスバスA〔31:
0〕上の列アドレスおよびSTATUS〔4:0〕に関
するプロセッサアクティビティコードを出力する。転送
コントローラ80は、書き込みサイクルであればデータ
出力をドライブする。
【0161】c2、3ステート385は、列タイミング
選択CT〔1:0〕=11の際の3サイクル/列アクセ
スのための第2列ステートである。ステート385の
間、転送コントローラ80は、適当なCAS’〔7:
0〕ストローブをアサートする。
【0162】c3ステート386は、列タイミング選択
CT〔1〕=1の際の2および3サイクル/列アクセス
のための最終列ステートである。ステート386の間、
転送コントローラ80は、READY入力をサンプリン
グし、そのときのサイクルが読み出しサイクルであれ
ば、入力データをラッチする。
【0163】cs1ステート387は、列タイミング選
択CT〔1〕=0の際の1サイクル/列読み出しのため
の開始列ステートである。ステート387の間、転送コ
ントローラ80は、アドレスバスA〔31:0〕上の列
アドレス、STATUS〔4:0〕に関するプロセッサ
のアクティビティコードを出力し、すべての反転CAS
〔7:0〕ストローブをアサートする。転送コントロー
ラ80は入力データをラッチしない。
【0164】cs2ステート388は第2開始列ステー
トである。外部メモリインターフェース302は、列タ
イミング選択CT〔1:0〕=00のときに限り、パイ
プライン化された1サイクル/列読み出しのためにcs
1ステート387の後に、常にステート388を挿入す
る。ステート388中、転送コントローラ80は列アド
レスおよび次の列アクセスのプロセッサアクティビティ
コードを出力する。転送コントローラ80はステート3
88中に入力データをラッチしない。
【0165】cpステート389は、列タイミング選択
CT〔1〕=0のとき、すべての1サイクル/列アクセ
スに対する基本的列ステートである。外部メモリインタ
ーフェース302は、必要な開始ステートの完了後に各
ページモード列アクセスのためにステート389を繰り
返す。ステート389中、転送コントローラ80はアド
レスバスA〔31:0〕上の列アドレスおよびSTAT
US〔4:0〕上のプロセッサアクティビティコードを
出力し、適当なCAS’〔7:0〕ストローブをアサー
トする。転送コントローラ80は有効データの書き込み
のためにドライブアウトし、有効データの読み出しのた
めにラッチインする。
【0166】cdrステート390は、列タイミング選
択CT〔1〕=0のときの1サイクル/列アクセスのた
めの読み出しドレインステートである。外部メモリイン
ターフェース302は、最終cpステート389の後の
ステート390またはページ変化またはパイプラインバ
ブルのため、またはインターフェースがアイドル状態と
なったために、他の列アクセスがペンディング中でない
場合、cs1ステート387を有する。ステート390
中、転送コントローラ80は反転CAS〔7:0〕スト
ローブをアサートしないが、先のcpステート389ま
たはcs1ステート387によりアドレス指定される入
力データをラッチする。
【0167】外部メモリインターフェース302は、列
タイミング選択CT〔1:0〕=00のとき、パイプラ
イン化された1サイクル/列書き込みドレインサイクル
のためのcdwステート391となる。外部メモリイン
ターフェース302は新しいページの開始時にr1ステ
ート370に復帰する直前に、ステート391となる。
ステート391中、転送コントローラ80はすべてのC
AS’〔7:0〕ストローブをスタートし、最終書き込
みされたデータでパイプライン化されたメモリアレイを
更新する。
【0168】ciステート392は、アイドル列ステー
トである。必要なドレインステートの後にそれ以上の列
アクセスがペンディング中でなければ、外部メモリイン
ターフェース302はステート392となる。これはパ
イプラインバブルによって生じ得るか、またはそれ以上
のサイクルがリクエストされておらず、ページ変化が生
じないためインターフェースがページモードに留まって
いるからである。
【0169】図10に示したステート遷移インディケー
タは、どの条件によって別のステートへの遷移が生じる
かを決定する。この場合、所定のステートへの遷移が生
じるには、多数の条件を満たさなければならない。これ
らステート遷移条件および事象のリストは次の通りであ
る。
【0170】CT=XXr3ステート372の間にラッ
チされた表示列タイミング選択CT〔1:0〕の値に対
してステート変化が生じる。
【0171】 r、読み出し−読み出しサイクルが生じる。 w、書き込み−書き込みサイクルが生じる rt−読み出し転送サイクルが生じる。 wt−書き込み転送サイクルが生じる。 フォールト−r3ステート中に低レベルにサンプリング
されたFAULT’入力は、メモリアクセスがフォール
トであることを表示する。 再試行−r3ステート372に低レベルにサンプリング
されたRETRY’入力は、行時間再試行をリクエスト
する。 待機−r3ステート372、r6ステート377または
c3ステート386中に低レベルにサンプリングされた
READY入力は、そのときのステートの繰り返しをリ
クエストする。 スピン−これは転送コントローラ80のパイプラインが
ロードできるように、別のr3スピン377を加えるた
め内部で発生されたリクエストである。外部メモリイン
ターフェース302は、先のページアクセスからバスサ
イズが変わると、各2サイクル/列書き込み中に1回、
各1サイクル/列各中に2回、1サイクル/列アクセス
中に1回、ステート372となる。 新しい列−このときのメモリサイクルは同じメモリペー
ジの次の別アクセスである。 ドレイン−このときのメモリサイクルは1サイクル/列
読み出しサイクルである。このときの読み出しステート
の後には、ペンディングとなっている列アクセスはな
い。 アイドル−そのときのステートの後にペンディングであ
る列アクセスは無く、すべてのドレインステートは完了
している。新ページ−次のメモリアクセスはページの変
更および新しい行アクセスを必要とする。
【0172】転送コントローラ80は内部メモリインタ
ーフェース301および外部メモリインターフェース3
02の双方のうちにパイプラインを含む。そのときのア
クセスがまだ完了していないとき、これらパイプライン
は転送コントローラ80が必要とするメモリアクセスを
待つことができる。例えばパケットリクエストがオンチ
ップメモリからオフチップメモリに転送中である場合、
宛て先サイクルはアクセス当たり2サイクルを必要とす
ることがある。必要とされるデータがパケット転送FI
FOバッファ311にあると仮定すると、アクセス当た
り1サイクルでパケット転送FIFOバッファ311か
らデータを抽出できるので、第1サイクルが完了する前
に、パイプラインに別の宛て先サイクルを挿入できる。
【0173】これらパイプラインは通常ユーザーに対し
て完全にトランスペアレントである。作動に対するこの
効果は、パイプラインがドレイン状態となっているとき
に見えるだけである。外部メモリインターフェース30
2の外部メモリパイプラインに1サイクルをロードする
には、パイプラインに既に含まれている他のサイクルと
同じメモリページ内にこのサイクルが入っていなければ
ならない。パイプラインに一旦1つのサイクルを挿入す
ると、これを除くことはできず、このサイクルを発生し
なければならない。従って新しいメモリページへのアク
セスがリクエストされると、まず最初にパイプライン内
のサイクルを完了しなければならない。転送コントロー
ラ80が外部メモリへのパケット転送を行い、フレーム
コントローラがメモリリクエストを発生する場合、フレ
ームコントローラサイクルがより高い優先度を有してい
たとしても、フレームコントローラ90がリクエストし
たサイクルを発生する前に、現にパイプライン内にある
列サイクルを完了しなければならない。キャッシュおよ
び外部メモリアクセス、ホストアクセスおよび緊急リフ
レッシュ前、パケット転送一時中断中、および列時間再
試行後にも、パイプラインのドレインを行うことができ
る。緊急リクエストがペンディングのとき、パイプライ
ンのドレインには最高の優先度が与えられる。
【0174】外部メモリアクセス中、作動サイクルが存
在していてもよく、この間にアクティブな列アクセスは
生じない。これらの期間は転送コントローラ80の内部
パイプライン内のバブルの結果である。転送コントロー
ラ80がこのサイクル中に実行される動作がないときに
バブルが生じる。これは転送コントローラ80が書き込
みサイクルのための次のアクセスを実行するのに十分な
データを有していないこと、パケット転送FIFOバッ
ファ311がフル状態であり、読み出しサイクルでそれ
以上データをロードできないこと、また、端にアクティ
ビティのリクエストはないことを理由とする、クロスバ
ーの競合の結果として生じ得る。これら条件のいずれも
生じない場合、バブルも発生しない。
【0175】バブルの一例は、転送コントローラ80が
内部ソースおよび外部宛て先のパケット転送のサービス
をしているときである。転送コントローラ80があると
きにソースデータの1バイトにしかアクセスできず、そ
のときに書き込み宛て先データの8バイトしか書き込み
できないように、パケット転送がセットされている場
合、転送コントローラ80は8回の内部サイクルごとに
1回、宛て先アクセスを行うことができるだけである。
この結果、転送コントローラ80は次の列アクセスを実
行するのに十分なデータの8バイトを持つのを待ちなが
ら、外部メモリ宛て先サイクル内にバブルを挿入する。
挿入されるバブルサイクルの回数は、外部メモリサイク
ルのタイミングに依存する。
【0176】広範なメモリのタイプおよび組み合わせ、
更に周辺機器をサポートするため、マルチプロセッサ集
積回路100は外部メモリサイクルの拡張、再試行およ
び終了のための種々の方法を提供する。これらの各々に
ついて次の章でより詳細に説明する。
【0177】転送コントローラ80がパイプライン内で
ペンディング中の列アクセスのすべてを完了すると、メ
モリアクセスの終了の準備ができる。しかしながら新し
い行アクセスが必要となるまで終了は行われない。次の
メモリアクセスまでciステート392において外部メ
モリ信号はアクティブ状態のままである。これによりD
RAMデバイスはページモードステートの状態に維持で
きる。次のアドレスが先のメモリアクセスと同じメモリ
ページ内に入り、同一方向である場合、行アクセスサイ
クルは不要である。次のメモリアクセスが行アクセスを
必要とする場合、そのときのページモードアクセスは終
了し、新しい行アクセスが開始する。それ以外の外部バ
スアクティビティがほとんどない場合、新しい行アクセ
スの発生を必要とするトリックルリフレッシュサイクル
の発生により、最終列アクセスの終了後にすぐにほとん
どのメモリサイクルが終了される。
【0178】マルチプロセッサ集積回路100はメモリ
サイクル時間を延長するように、待機ステートの挿入を
サポートする。これはREADY入力を用いることによ
って行われる。このREADY入力は、CLKOUTの
効果エッジで適当な時間にサンプリングされたものであ
り、READYがハイレベルでサンプリングされた場
合、サイクルは通常の態様で続行する。READYが低
レベルでサンプリングされた場合、現在のマシンステー
トが繰り返され、次のCLKOUTで再びREADYが
サンプリングされる。このメモリサイクルは転送コント
ローラ80がハイレベルのREADYをサンプリングす
るまで、そのときのステートを繰り返すように続く。
【0179】転送コントローラ80は多数の待機ステー
トによりホールドアップされるメモリアクセスを終了さ
せるようなタイムアウトまたはアボート機構を有してい
ない。サービスを待つことができる高い優先度の外部メ
モリアクセスのロックアウトを防止するため、適当な時
間に完了できないメモリアクセスはフォールトとする
か、または再試行すべきである。
【0180】任意のタイプのメモリサイクルに対する行
時間の間に、待機ステートを加えることができる。列ア
クセス当たり2サイクルおよび3サイクルの双方の間
で、列時間において待機ステートを挿入することもでき
る。待機ステートは反転RASの降下の前後の行時間の
間に2つの位置で待機ステートを挿入できる。適当なコ
ントローラ80は、まずr3ステート372またはrf
3ステート373またはtr3ステート374の開始時
に、READY信号をサンプリングできる。これにより
この時間で行アドレスおよび/またはサイクルタイプを
デコードし、反転RASの降下前にアドレス指定された
デバイスが、更なるアクセス時間を必要とするかを判断
できる。転送コントローラ80がハイレベルのREAD
Yをサンプリングするまで、r3ステート372が繰り
返される。READYが低レベルでサンプリングされる
とき、r3ステート372が繰り返されるが、反転FA
ULTおよび反転RETRY入力は再サンプリングされ
ない。待機ステートが挿入される前の第1r3ステート
372サイクル中にアクセスをフォールトするか、また
は再試行しなければならない。r6ステート377中で
READY入力を再びサンプリングする。これはRA
S’の降下後に起きるので、必要とし得るデバイスに対
し、追加RAS’アクセスタイムを発生できる。REA
DYが低レベルでサンプリングされる場合、このREA
DYが再びハイレベルでサンプリングされるまでr6ス
テート377が繰り返される。
【0181】転送コントローラ80は2および3サイク
ル/列書き込みおよびバスサイズを変更する1サイクル
/列アクセスの間に自動的に付加的r6ステート377
を挿入する。転送コントローラ80はこれらr6ステー
ト377の各々の間で通常の態様でREADYをサンプ
リングする。従って、低レベルでサンプリングされるR
EADYから生じる余分なr6ステート377は、転送
コントローラ80によって既に挿入されたステートに加
えられる。
【0182】列アクセス当たり1サイクルの間では、列
時間待機ステートはサポートされていないので、これら
サイクルの間でr6ステート377を越えてREADY
はサンプリングされない。転送コントローラ80は、列
アクセス当たり2および3サイクルに対しc3ステート
386の間でREADYピンをサンプリングする。これ
は列アドレスおよび反転CASの降下後に生じるので、
必要とするデバイスに対し延長されたCASアクセス時
間を与えることができる。READYがハイレベルでサ
ンプリングされる場合、c3ステート386は列アクセ
スを完了させる。そうでない場合、c3ステート386
が繰り返され、ハイレベルでサンプリングされるまで転
送コントローラ80はその後のCLKOUT降下エッジ
ごとにREADYをサンプリングする。
【0183】マルチプロセッサ集積回路100は2つの
タイプの再試行機構、すなわち行時間再試行および列時
間再試行をサポートしている。行われる再試行のタイプ
は、マルチプロセッサ集積回路100の反転RETRY
入力がアクティブ低レベルとなるメモリアクセスのどの
点にあるかによって決まる。
【0184】行時間再試行は、現在のアクセスが完了で
きず、再試行が必要なことを外部ロジックがマルチプロ
セッサ集積回路100に伝えることができる方法を提供
する。この行時間再試行は、r3ステート372の開始
点でまずサンプリングされる際、RETRY’入力を低
レベルにドライブすることによって発生される。発生R
ETRYが低レベルでサンプリングされる場合、転送コ
ントローラ80はr3ステート372の終了点で現在の
アクセスを終了する。次により高い優先度のリクエスト
がペンディング中でなければ、再試行されるアクセスは
新しいr1ステート370と共にすぐに再スタートす
る。この場合、再試行されるサイクルは、より高い優先
度のリクエストのサービスが完了するまで再スタートさ
れない。
【0185】パケット転送サイクル中に行時間再試行が
行われ、同等以上の優先度のパケット転送リクエストが
ペンディング中であれば、行われている再試行が一時中
断され、PTMINによって定義されるインターバルが
終了したとみなされる。パケット転送が優先度/ラウン
ドロビンチェーン内の順番に再び達し、パケット転送が
再開されるまで、転送コントローラ80は、この一時中
断されたパケット転送を再試行することはない。
【0186】列時間再試行は従来の意味では実際には再
試行ではない。むしろこれらは行アクセスリクエストと
考えることができる。列再試行が生じると、転送コント
ローラ80はそのパイプライン内でペンディング中のす
べての列アクセスを完了し、行アクセスと共に次のアク
セスを開始する。従って再試行がリクエストされた後に
多数の列アクセスが行われることがある。行アクセスが
再スタートされた後にはこれら行アクセスは繰り返され
ることはない。r3ステート372の後で反転RETR
Y入力が低レベルでサンプリングされる時間に列時間の
再試行が行われる。転送コントローラ80は各CLKO
UT降下エッジでr3ステート372の後の各ステート
の終了点で、RETRY’をサンプリングするので、反
転RETRYは各サンプリング期間中で有効な高レベル
または低レベルとなっていなければならない。転送コン
トローラ80が低レベルの反転RETRYをサンプリン
グする場合、転送コントローラ80のパイプライン内に
現在あるすべての列アクセスが完了するとすぐに、その
ときのページモードが終了する。再試行が一旦リクエス
トされると、反転RETRY入力に入力された値はそれ
以上の効果がなくなる。しかしながら転送コントローラ
80は残りの列アクセスの各々の間で反転RETRYを
サンプリングし続けるので、RETRY’は各サンプリ
ング期間中に高または低レベルに維持されていなければ
ならない。通常のオペレーションは、システムがRET
RY’を低レベルにドライブし、現在の行アクセスの終
了時までこれを低レベルに維持させるためである。
【0187】外部メモリインターフェース302のパイ
プラインにロードする方法により、読み出しサイクル中
にr3ステート375またはr5ステート376でRE
TRY’をアサートすることは全く効果がない。RET
RY’入力はまだサンプリングされており、有効な高ま
たは低レベルになければならない。このため、列時間再
試行が望まれる場合、行アクセスの終了時までにRET
RY’を低レベルにアサートしなければならない。フレ
ームコントローラ90のVRAMアクセスサイクルおよ
びリフレッシュサイクルは、列時間によって影響されな
いが、その理由は、性質上、新しい行アクセスは単一列
アクセスの後に続くからである。
【0188】システムエラーのため、システムがメモリ
アクセスを完了できない場合、システムはメモリサイク
ルをフォールトすることによりマルチプロセッサ集積回
路100に通知できる。これによりメモリサイクルを再
試行する前にマスタプロセッサ60はエラーを訂正でき
る。メモリフォールトは行時間で発生できるだけであ
り、r3ステート372の開始時にFAULT’入力を
低レベルにドライブすることにより開始される。転送コ
ントローラ80はメモリサイクルの他の部分の間で反転
フォールトをサンプリングすることはない。フォールト
機構はフォールトを生じさせたアクセスのタイプに多少
依存して変わる。これについては後により詳細に説明す
る。異なるタイプのサイクルリクエストに対するメモリ
フォールトは次のようにサポートされている。
【0189】フレームコントローラ90のサイクル。フ
レームコントローラ90のサイクルの間にフォールトは
サポートされておらず、反転FAULTピンは無視され
る。リフレッシュサイクル。リフレッシュサイクル中に
フォールトはサポートされず、反転FAULTピンは無
視される。
【0190】デジタル画像/グラフィックプロセッサキ
ャッシュおよびダイレクトメモリアクセスリクエスト。
これらサイクルの間にフォールトはサポートされる。リ
クエスト中のプロセッサはフォールトがクリアされるま
で完了されるリクエストは見ない。他のデジタル画像/
グラフィックプロセッサ71、72、73、74からの
リクエストはサービスされ続ける。
【0191】マスタプロセッサのインストラクションま
たはデータキャッシュリクエスト。これらサイクル中に
サポートされるフォールトはサポートされる。フォール
トされたキャッシュリクエストは即座にキャンセルさ
れ、マスタプロセッサ60はインタラプトされる。その
他のキャッシュはペンディング中のリクエストをサービ
スすることができる。
【0192】マスタプロセッサ60のダイレクトメモリ
アクセスリクエスト。これらサイクル中にはフォールト
がサポートされる。外部アクセスリクエストが即座にキ
ャンセルされ、マスタプロセッサ60がインタラプトさ
れる。
【0193】パケット転送。パケット転送なかにはフォ
ールトがサポートされる。このパケット転送は一時中断
され、そのステートはリクエスト中のプロセッサのパラ
メータメモリにセーブされる。他のプロセッサからのパ
ケット転送リクエストはまだサービス可能である。セー
ブされたパラメータ内には転送コントローラ80の内部
パケット転送ステートが含まれる。パケット転送が外部
メモリ間で外部メモリなされる場合、外部メモリ間の転
送バッファのステートもセーブされる。バッファ自体は
変わらない。セーブされたパケット転送オプションフィ
ールド内のパケット転送ステートビットは、フォールト
がソースへの転送または宛て先への転送で生じたかどう
かを示すのにセットされる。
【0194】一旦、パラメータがセーブされると、転送
コントローラ80はマスタプロセッサ60のうちのFL
TSTSレジスタ内の適当なビットをセットし、どのプ
ロセッサのパケット転送がフォールトしたかを表示す
る。下記の表13にはFLTSTSレジスタのコーディ
ングが示されている。FLTSTSレジスタ内のプロセ
ッサビットもマスタプロセッサ60に対し、パケット転
送フォールトインタラプトを発生する。マスタプロセッ
サ60はどのプロセッサがフォールトされたパケット転
送をリクエストしたかを探すため、FLTSTSレジス
タを読み出すことができる。一旦プロセッサが識別され
れば、マスタプロセッサ60は一時中断されているパケ
ット転送パラメータを検査し、フォールトを生じさせた
メモリアクセスを決定できる。
【0195】パケット転送中にフォールトが生じたこと
は、デジタル画像/グラフィックプロセッサ71、7
2、73または74は知らない。このプロセッサは、パ
ケット転送がまだ完了していないことを知っているだけ
である。フォールトを訂正したり、またはリクエスト中
のデジタル画像/グラフィックプロセッサ71、72、
73または74に、そのパケット転送リクエストのキャ
ンセルを求めるのは、マスタプロセッサ60の役割であ
る。
【0196】マスタプロセッサ60がフォールトを訂正
できる場合、FLTSTSレジスタ内のビットをクリア
することができ、パケット転送リクエストは自動的に再
送信される。フォールトしたパケット転送は、ラウンド
ロビン優先法における順番を受けると、その内部ステー
トがパラメータメモリ内のセーブされたパラメータから
レストアされ、転送コントローラ80はフォールトされ
たアクセスでパケット転送を続ける。
【0197】デジタル画像/グラフィックプロセッサが
リクエストしたキャッシュサービスまたはダイレクト外
部メモリアクセスリクエスト中にフォールトが生じた場
合、リクエスト中のプロセッサのパラメータメモリのキ
ャッシュフォールトアドレス位置に、フォールトの生じ
たアドレスがセーブされる。マスタプロセッサ60のF
LTSTSレジスタにおける適当なビットがセットさ
れ、インタラプトがマスタプロセッサ60に送られる。
マスタプロセッサ60がパラメータメモリを検査し、フ
ォールトしたアドレスを決定できる。マスタプロセッサ
60がフォールトを訂正できる場合、このプロセッサは
FLTSTSレジスタ内のビットをクリアし、リクエス
トは再スケジュールされる。フォールトが訂正できず、
マスタプロセッサ60がリクエスト中のデジタル画像/
グラフィックプロセッサにキャッシュミスまたはダイレ
クト外部アクセスリクエストをアボートすることを求め
る場合、デジタル画像/グラフィックプロセッサにリセ
ットリクエストを送らなければならない。これによりそ
のタスクがアボートされる。
【0198】デジタル画像/グラフィックプロセッサ7
1、72、73または74は、キャッシュまたはダイレ
クト外部アクセスリクエスト中にフォールトが生じたこ
とを知らず、そのリクエストが完了していないことを知
っているにすぎない。フォールトを訂正したり、リクエ
スト中のデジタル画像/グラフィックプロセッサをリセ
ットするのは、マスタプロセッサ60の役割である。
【0199】マスタプロセッサ60がキャッシュフィル
またはダイレクト外部アクセスサイクルのフォールトを
リクエストした場合、このリクエストは即座にキャンセ
ルされ、マスタプロセッサ60にメモリフォールトイン
タラプトが送られる。このメモリフォールトインタラプ
トはフォールトがデータキャッシュフォールトまたはイ
ンストラクションキャッシュフォールトであったことを
表示する。データキャッシュフォールトが生じた場合、
そのアドレスがセーブされ、データがセーブされる。
【0200】オンチップアドレスへの所定のアクセス
は、反転FAULT入力と独立したフォールトを生じさ
せ得る。不法なオンチップアクセスが行われると、これ
が生じる。試みられたサイクルに対する通常のフォール
ト機構が適応される。オンチップフォールトとは次のと
おりである。
【0201】データメモリまたはデジタル画像/グラフ
ィックプロセッサパラメータメモリでない16進数02
000000以下のアドレスとの間でのデジタル画像/
グラフィックプロセッサのパケット転送。
【0202】データメモリまたはデジタル画像/グラフ
ィックプロセッサパラメータメモリでない16進数02
000000以下のアドレスとの間でのデジタル画像/
グラフィックプロセッサのキャッシュサービス、または
マスタプロセッサ60のキャッシュサービス、またはダ
イレクト外部アクセス。データメモリまたはデジタル画
像/グラフィックプロセッサパラメータメモリでない1
6進数02000000以下のマスタプロセッサ60の
パケット転送。
【0203】マルチプロセッサ集積回路100によって
発生されるメモリタイミングと異なるメモリタイミング
の発生を望むユーザーを補助するために、UTIME’
が発生される。このUTIME’が行時間において低レ
ベルでサンプリングされると、現在のページの残りに対
して、反転RASおよびCAS’〔7:0〕出力のタイ
ミングが変えられる。列アクセスが開始したことを表示
するように、RAS’信号が変えられる。従ってRA
S’の降下によってユーザーがタイミングを決めたCA
S’信号をトリガできる。実際の列アクセスが開始され
たときに、マシンステートのみにおいてRAS’をアク
ティブ低レベルにアサートできるにすぎないので、転送
コントローラ80のパイプライン内のバブルを理解する
ことができる。行アドレスと同時に列アドレスストロー
ブCAS’〔7:0〕が出力される。これにより、これ
らストローブはどのバイトがアクセスされたかを表示す
るのに使用でき、外部CAS’の発生が容易となる。R
AS’のタイミングは変わっているので、必要な場合に
は外部ロジックが自らのRAS’タイミングを発生しな
ければならない。外部から発生されたRAS’は、R
L’の降下エッジによってトリガできる。サイクルの開
始時点で出力されたステータスコードは、そのときのサ
イクルの間にてTRG’、WE’等のエモリタイミング
を発生するのに必要なすてべの情報を提供することに留
意されたい。
【0204】転送コントローラ80の内部メモリインタ
ーフェース301は、クロスバー50を介し、オンチッ
プメモリにアクセスする。64ビットの内部データバス
は、1サイクルにつき0〜8バイトを転送できる。外部
メモリインターフェース302は、オフチップメモリお
よび周辺機器のすべてにアクセスする。外部メモリイン
ターフェース302は、種々のメモリおよび周辺機器の
タイプにインターフェースするのに必要なサイクルおよ
び制御信号を発生する。64ビットの外部データバスは
1サイクルにつき0〜8バイトを転送し、8、16、3
2および64ビットのデータ幅を有する画像システムバ
スに接続されたデバイスに対し、ダイナミックバスサイ
ズのサポートをする。
【0205】外部メモリインターフェース302は、転
送コントローラ80が外部デバイスとバスを共用できる
ようにする簡単なハンドシェイク機構を含む。このハン
ドシェイク機構は4つの同期信号を活用する。すなわち
ホストリクエスト入力HREQ’、ホストアクノーリッ
ジ出力HACK’および内部リクエスト出力RREQ
〔1:0〕である。
【0206】外部デバイスが画像システムバスの制御を
望む際、ホストリクエスト入力HREQ’は、マルチプ
ロセッサ集積回路100に信号を送る。外部デバイスは
バスのオーナーシップを持ちたい場合、ホストリクエス
ト入力HREQ’を低レベルにドライブする。これは転
送コントローラ80が受けることもできる最高優先度の
リクエストであり、転送コントローラ80は、最も初期
に起こり得る時間にバスのドライブを停止させる。その
ときのオペレーションが終了し、転送コントローラ80
のパイプラインが空になると、転送コントローラ80の
バスオーナーシップが終了する。外部デバイスはバスを
望む限り、HREQ’を低レベルアクティブにドライブ
し続けなければならない。HREQ’がハイレベルで非
アクティブとなると、転送コントローラ80はバスを所
有し、これをドライブする。HREQ’入力は内部的に
マルチプロセッサ集積回路100の内部ブロックに同期
している。
【0207】ホストアクノーリッジ出力HACK’は、
転送コントローラ80が画像システムバスの制御信号を
発生する準備が完了した信号を発生する。転送コントロ
ーラ80はアクティブなHREQ’の後に、HACK’
を低レベルにドライブし、その信号を高インピーダンス
にドライブし、バスを放棄していること表示する。反転
HACKが低レベルアクティブであると、CLKOUT
を除くすべての外部メモリインターフェース302のバ
ス出力が、高インピーダンスとされる。内部リクエスト
出力REQ〔1:0〕、HACK’およびフレームコン
トローラ90の出力は、ドライブされ続ける。外部デバ
イスは必要に応じて画像システムバスをドライブでき
る。転送コントローラは、HREQ’が非アクティブと
なったことが検出された後に、非同期的にHACK’を
ハイレベルで非アクティブにドライブし、バスのドライ
ブを再開する。
【0208】内部リクエスト出力REQ〔1:0〕は、
転送コントローラ80によって受信される最高優先度の
内部リクエストの2つのビットコード化を形成する。表
3にリクエストコードおよびそれらの関連するサイクル
を示す。
【0209】
【表10】
【0210】外部ロジックはいつバスを放棄して転送コ
ントローラ80に戻すかを決定するため、内部リクエス
ト出力REQ〔1:0〕をモニタできる。転送コントロ
ーラ80によってホストリクエストには最高の優先度が
与えられているので、システムデザイナーは、ホストが
バスの所有権を放棄して転送コントローラ80に返すの
はどのREQ〔1:0〕の値にするかを決定することに
より、外部デバイスが作動するレベルを決定できる。
【0211】転送コントローラ80は外部メモリシステ
ムが必要とするDRAMリフレッシュサイクルを自動的
に発生するためのプログラマブルリフレッシュコントロ
ーラを含む。リフレッシュレジスタ313に、このリフ
レッシュのためのパラメータが記憶される。キャッシュ
制御ロジックは、マスタプロセッサ60およびデジタル
画像/グラフィックプロセッサ71、72、73および
74がリクエストするようなキャッシュフィルおよび書
き込みバックを実行するのに必要なアドレスを発生す
る。フレームコントローラ90のリクエストはVRAM
制御論理によって処理される。
【0212】転送コントローラ80はパケット転送を処
理するための2つの独立したコントローオラを有する。
ソースレジスタ321とソースコントローラ322から
成るソースマシンは、ソースメモリからデータをフェッ
チするのに必要なアドレスを発生する。転送コントロー
ラ80にパケット転送リクエストを送る際、このリクエ
ストはソースデータをどのようにアクセスすべきかを指
定する多数のパラメータを含む。これらパラメータはソ
ースレジスタ322にロードされ、ソースアドレスを発
生するようソース制御ロジック323によって使用され
る。同様なパラメータの組が宛て先レジスタ341にロ
ードされ、宛て先制御ロジック342によって使用さ
れ、宛て先メモリ領域にパケットデータを書き込むのに
必要なアドレスを発生する。宛て先レジスタ341と宛
て先制御ロジック342の組み合わせにより宛て先マシ
ン340を形成している。ソースマシン320および宛
て先マシン340は各々オンチップメモリ10および2
0とオフチップメモリとの双方のアドレス指定が可能で
ある。
【0213】図11は、ソースマシン320の構造を示
す。ソースマシン320の内部構造と宛て先マシン34
0の構造は同一である。転送コントローラ80の他に対
する接続のいくつかが異なっているにすぎない。ソース
マシンは次のようなレジスタを含む。CACHEADR
レジスタ401は転送方向に応じて内部アドレスまたは
外部アドレスのいずれかを含む。このアドレスは、キャ
ッシュサブブロックのアドレスと共に、転送コントロー
ラ80の内部Sポートからロードされる。オンチップア
ドレスの上部ビットを発生するのに、マルチプレクサを
使用できる。
【0214】ABPITCHレジスタ402は、次のラ
インのための開始アドレスを発生するため、開始アドレ
スに加算される(または減算される)ピッチを含む。G
TPIPEレジスタ403は実際には3つの部分に分割
されている。第1部分は、ASTARTが宛て先となっ
ている32ビットアドレスである。第2部分はBCOU
NTが宛て先となっている16ビットのラインカウント
であり、第3部分はACOUNTが宛て先となっている
16ビットのバイトカウントである。このレジスタは、
関連するレジスタにフェッチしたガイドテーブルを即座
に記憶できないとき、ガイドテーブルオペレーション中
の一時レジスタとして働く。
【0215】ASTARTレジスタ404は、現在のラ
インの開始アドレスの記録を記憶し、ASTARTレジ
スタ404は、ガイドされた転送を実行する際にガイド
テーブルアドレス/オフセット入力に対して倍になる。
BSTARTレジスタ405は、現在のパッチの開始ア
ドレスの記録を記憶する。BSTARTレジスタ405
は、また、オフセットガイドされた転送に対しベースア
ドレスを含み、デルタガイドされた転送に対しては最終
パッチ開始アドレスを含む。
【0216】CRNTADRレジスタ406はパケット
サービスの現在のアドレスを記憶する。このアドレスは
次のアクセスを実行する場所のアドレスである。次のア
ドレスを発生するよう転送されるバイト数がこの値に加
算されたり、またはこれより減算される。ラインまたは
ピッチが完了すると、CRNTADRレジスタ406に
は次のラインまたはパッチの開始アドレスがロードされ
る。
【0217】BCPITCHレジスタ407は、次のパ
ッチのための開始アドレスを発生するよう、現在のパッ
チの開始アドレスに加算もしくはこれより減算されるピ
ッチを記憶している。ガイドされた転送を行うとき、こ
のBCPITCHレジスタ407は、ガイドテーブルポ
インタとして使用される。ACOUNTレジスタ408
はライン内のバイト数を記憶している。このバイト数は
定数であるか、または可変パッチガイドされた転送のた
めのガイドテーブル入力からロードされる。ACURR
ENTレジスタ409はライン内に残っているそのとき
のバイト数を記憶する。
【0218】BCOUNTはパッチ内のライン数を記憶
する。この数は定数であるかまたは可変パッチのガイド
された転送のためのガイドテーブル入力からロードされ
る。BCURRENTレジスタ411は、パッチ内に残
っている1未満のラインの現在の数を記憶する。CCU
RRENTレジスタ412は、パケット内に残っている
1未満のパッチの現在の数を記憶する。ガイドされた転
送を行うとき、これはその変わりにガイドテーブル内に
残っている入力の数を表示する。
【0219】CBYTESレジスタ413はダイレクト
メモリアクセスまたはキャッシュサービスにより転送す
べき残っているバイトの現在の数を記憶する。BUFP
TRレジスタ414は、ソースマシン320と宛て先マ
シン340によって共用されるレジスタである。BUF
PTRレジスタ414は、外部メモリ間でのパケット転
送中にバッファとして使用されるパラメータメモリの部
分をポイントする。マルチプレクサはオンチップアドレ
スの上部ビットを発生するのに使用できる。
【0220】FCOUNTレジスタ431(図12に示
す)は、パイプライン内に現在あるすべてのインストラ
クションが完了した後、パケット転送用FIFOバッフ
ァ311内にどれだけ多くのバイトが残るかを示す5ビ
ットの値(16〜0のみ)を記憶する。
【0221】BUFCOUNTレジスタ441(図13
に示す)は、外部メモリ間バッファ内にどれだけ多くの
スペアバイトが残るかを示す8ビットの値(128〜0
のみ)を記憶する。ソースマシン320の中心は、マシ
ンが転送したいバイト数を決定するための計算用ハード
ウェアと方法である。これはバイト計算回路415の数
で行われる。これは次元内に残っているバイト数、アド
レスの一致、バスサイズおよび次元が前方にアドレス指
定されているか、または後方にアドレス指定されている
かどうかに応じて決まる。エンディアンはこの計算には
重要ではない。次元内に残っているバイト数が8以上で
あると一時的に仮定すると、表11は異なっているアラ
インメントのためにマシンが転送を望んでいるバイト
数、バスサイズおよびアドレス指定の方向(前方または
後方)を示している。
【0222】
【表11】
【0223】バスが64ビット幅であり、アドレス指定
が前方であれば、3つの最小位のアドレスビットの2の
補数をとることにより、上記の値を推定する。4番目の
アドレスビットは桁上げ用である。次元が後方にアドレ
ス指定される場合、3つの最小位のアドレスビットの値
に1を加えるだけでバイト数を計算する。バスが32ビ
ット幅で、アドレス指定が前方であれば、2つの最小位
のアドレスビットの2の補数をとることにより、上記の
値を推定する。桁上げにより第3ビットとなる。次元が
後方にアドレス指定される場合、2つの最小位アドレス
ビットの値に1を加えるだけで、バイト数を計算でき
る。これらの場合、計算に通常含まれる次の最高位ビッ
トの影響は無視しなければならない。バスが16ビット
幅で前方にアドレス指定される場合、最小位アドレスビ
ットだけの2の補数をとることにより、上記値が推定さ
れる。桁上げは第2ビットとなる。次元が後方にアドレ
ス指定される場合、最小位ビットの値に1を加えるだけ
でバイト数が計算される。これらの場合、通常計算に含
まれる次の2つの最高位ビットの影響は無視しなければ
ならない。
【0224】上記の説明は、マシンがそれ自体を現在の
バスサイズに一致させるため、転送を望むバイトの数に
ついて述べたものである。このオペレーションが行われ
た後に、連続する転送は自動的に現在のバスサイズによ
って可能なバイトの最大数となる。このバスサイズを変
更する場合、これも自動的に処理される。次にアドレス
レジスタはバイト数だけインクリメントまたはデクリメ
ントされ、次のデータの開始点をポイントする。現在の
次元カウントの残りのバイトの新しい数を示すように、
同じ数だけデクリメントされる。マシンが転送を望むバ
イト数が、次元内に残っているバイト数よりも大きくな
るまでこのプロセスが続き、残りのバイト数よりも転送
を望むバイト数が大きくなった時点まで、実際に転送さ
れるバイト数を低い値にしなければならず、こうして次
元の転送を完了する。このような条件は、転送を望むバ
イト数から残っているバイト数を減算することにより検
出され、借りが起こらない場合は次元の最終転送に達
し、転送すべきバイト数のためにバイトカウントを用い
る。借り条件に基づくこれら2つの値の選択のためにマ
ルチプレクサが使用される。
【0225】転送が次元内の最終であり、パケットリク
エストが実行中であれば、通常の第1次元計算を行う代
わりに、次の次元パラメータを計算する。BCURRE
NTレジスタ411内の値が0であるかどうかにより、
BCURRENTレジスタ411またはCCURREN
Tレジスタ412のいずれかをデクリメントする。いず
れの場合にせよ、xCOUNTレジスタから小さい次元
のxCURRENTカウントをロードし、次の第1次元
を開始する。
【0226】BCURRENTレジスタ411の値が0
となるかどうかに応じて、ASTARTレジスタ404
にABPITCHレジスタ402に記憶されていた値を
加算(または減算)するか、またはBSTARTレジス
タ404にBCPITCHレジスタ407に記憶されて
いた値を加算(または減算)することにより、次の次元
のためのアドレスも計算される。計算された値は、CR
NTADRレジスタ406およびASTARTレジスタ
404に書き込まれBCURRENTレジスタ411内
の値が0であれば、BSTARTレジスタ405にも書
き込まれる。
【0227】第1次元の最終転送が実行され、BCUR
RENTレジスタ411およびCCURRENTレジス
タ412内の値がいずれも0であれば、ソースマシン3
20はパケットサービスを完了する。ソースマシン32
0および宛て先マシン340の双方がこの状態に達する
と、全パケットサービスが完了する。パケット転送オプ
ションフィールドのソースおよび宛て先更新モードに応
じ、ステージで追加次元計算を行うことができ、CRN
TADRレジスタ406に記憶されていたデータが下の
パケットリクエスト位置にセーブされる。これにより残
されている点でのパケット転送の後における再送信が可
能となる。
【0228】これらアドレス計算は2つの32ビット加
算器420および423で行われる。マルチプレクサ4
21および422は、加算器420への入力を選択し、
同様にマルチプレクサ424および425は加算器42
3への入力を選択する。加算器420は、CACHEA
DRレジスタ401、ABPITCHレジスタ402、
ASTARTレジスタ404、BSTARTレジスタ4
05、CRNTADRレジスタ406およびBCPIT
CHレジスタ407のサービスを行う。加算器423
は、ACOUNTレジスタ408、ACURRENTレ
ジスタ409、BCOUNTレジスタ410、BCUR
RENTレジスタ411、CCURRENTレジスタ4
12およびCBYTESレジスタ413に対するサービ
スを行う。
【0229】上記説明は、パケット転送について簡単に
触れたものであるが、同様な方法がキャッシュサービス
およびバッファ操作に対しても適用されることに留意さ
れたい。キャッシュサービスの場合、アドレスは常に一
致した境界上で開始し、アドレスがキャッシュサブブロ
ックの終了点に達するとサービスが終了するので、バイ
トカウンタはない。このことは、ソースマシン320が
デジタル画像/グラッフィックプロセッサのインストラ
クションキャッシュまたはマスタプロセッサ60のデー
タまたはインストラクションキャッシュにサービスする
かどうかに応じて変わる。
【0230】上記説明は、転送するバイト数の計算を常
に実行できることを示唆している。パケット転送用FI
FOバッファ311は、マシンがその数のバイトを転送
するには、過度に満杯または空状態となり得るので、こ
のことは当てはまらない。したがってパイプライン内に
オペレーションをロードする前にさらに計算を行う必要
がある。
【0231】ソースマシン320がパケット転送用FI
FOバッファ311内に残されている余裕よりも多いバ
イトを転送したい場合、待機する必要がある。宛て先マ
シン340がパケット転送用FIFOバッファ311内
にあるバイト数よりも多いバイトを転送したい場合も待
機する必要がある。宛て先マシン340が読み出しをす
るのに、パケット転送用FIFOバッファ311内に十
分なバイトをソースマシン320がロードしようとする
場合、双方の転送を続けることができる。
【0232】これら計算は図12に示されたロジックで
実行される。FCOUNTレジスタ431は既にパイプ
ライン内にあるオペレーションが完了した場合、パケッ
ト転送用FIFOバッファ311内に入るデータのバイ
ト数を記録する。加算器434はソースマシン320が
パケット転送用FIFOバッファ311に転送したいバ
イト数にこの値を加える。合計値が16を越える場合、
ソースマシン320は続けることはできないが、宛て先
マシン320がいくらかのデータを空にすることを待た
なければならない。加算器434は、17個以上の出力
を発生し、この出力はソースマシン320に供給され、
このマシンをストールさせる。現在の値または加算器3
43の17以上の出力により選択された加算の結果のい
ずれかであるパケット転送用FIFOバッファ311内
の新しいバイト数がマルチプレクサ435を通して減算
器436へ送られる。減算器436は宛て先マシン34
0が転送したいバイト数からパケット転送用FIFOバ
ッファ311内の新しいバイト数を減算する。減算器4
36が借り信号を発生しなければ、宛て先マシン340
は続行できる。減算器426が借り信号を発生すると、
この借り信号はマルチプレクサ437を制御して、差ま
たは減算前の値を選択してFCOUNTレジスタ431
にセーブする。
【0233】キャッシュサービスのためにキャッシュバ
ッファ312を使用するときは、同様な組の計算が必要
である。マルチプレクサ433に対するモード信号がF
COUNTレジスタ431が計算のソースとして働く
か、またはキャッシュバッファ312に記憶されていた
バイト数を記憶する同様なCHCOUNTレジスタ43
2として働くかを選択する。
【0234】外部メモリ間転送を実行するとき、転送プ
ロセッサ80は、リクエスト中のプロセッサのパラメー
タメモリの一部をバッファとして使用する。この外部メ
モリ間バッファのステートおよびその内容は管理が必要
である。バッファポインタBUFPTRレジスタ414
は、ソースマシン240と宛て先マシン340とによっ
て共用されるが、その理由は、このバッファは1度に一
つしかアクセスできないからである。BUFPTRレジ
スタ414は、ソースマシン320および宛て先マシン
340の通常のロジックを使用して、バッファとの間で
転送されたバイト数だけインクリメントされる。BUF
PTRレジスタ414は長さが8ビットだけでよい。こ
のアドレスの最高位ビットは、各プロセッサに対して固
定されており、リクエスト中のプロセッサに基づき、一
定のマルチプレクサから供給される。通常の一致/残留
スペースロジックを用いて、転送されたバイト数が計算
される。外部メモリ間バッファを空にするソースマシン
320は、BUFCOUNTレジスタ441を使用して
そのバイトに残っている値を記憶する。外部メモリ間バ
ッファを満たす宛て先マシン340は、FCOUNTレ
ジスタ431を使用してバイトに残っている値を記憶す
る。
【0235】図13は、バッファカウント演算を示して
いる。BUFCOUNTレジスタ441は、転送方向に
応じて外部メモリ間バッファ内のスペアバイトの数また
は空にすべき残っているデータバイトの数の8ビットカ
ウントである。ソースマシン320は、外部メモリ間バ
ッファを満たしたとき、パケット転送用FIFOバッフ
ァ311にロードするバイト数だけBUFCOUNTレ
ジスタ441をデクリメントする。BUFCOUNTレ
ジスタ441が7以下になるとソースマシン320が停
止し、パケット転送用FIFOバッファ311が外部メ
モリ間バッファ内に空にされるまで、宛て先マシン34
0の作動が続く。従ってソースマシン320は外部メモ
リ間バッファ内に入るデータよりも多いデータをフェッ
チできない。外部メモリ間バッファは、少なくとも12
0バイトで満杯になる。
【0236】外部メモリ間バッファが満杯になる状態と
空になる状態の間で、BUFCOUNTレジスタ441
は128から減算し、これを外部メモリ間バッファ内に
残っているデータバイトの数にしなければならない。外
部メモリ間バッファを空にすると、ソースマシン320
はBUFCOUNTレジスタ441が0となるまで、こ
れをデクリメントする。宛て先マシン340はパケット
転送用FIFOバッファ311を空にし続け、再び方向
を反転させる。外部メモリ間バッファの充填が開始する
前に、BUFCOUNTレジスタ441は128にリセ
ットされる。マルチプレクサ442および443、およ
びフル(全)加算器444は、このような必要な演算を
行う。
【0237】パケット転送が一時中断されているとき、
BUFCOUNTレジスタ441およびBUFPTRレ
ジスタ414は、他のパケットパラメータがセーブされ
る。レストレーション時にオペレーションを正しく再開
できるように、外部メモリ間バッファを空にするか、ま
たは満たす、現在の方向を表示するビットもセーブされ
る。
【0238】図14aおよび14bは、小エンディアン
および大エンディアン係数のための、それぞれのポイン
タFDPTRおよびFSPTRとパケット転送用FIF
Oバッファ311との関係を示している。パケットリク
エストはソースおよび宛て先の形状を実質的に任意また
は従属的にできるので、宛て先に対して常に一致するわ
けではない。図8において、ソースと宛て先の整列がコ
ンスタントに互いに変化した状態で、0バイトのサイク
ルと8バイトのサイクルとの間でソースマシン320は
記憶し、宛て先マシン340はフェッチが可能である。
従ってパケット転送用FIFOバッファ311は16バ
イトのバイト幅のFIFOであり、このFIFOはソー
スからの0〜8バイトをロードできるのと同時に、宛て
先への0〜8バイトを空にできる。ソースマルチプレク
サおよび整列ロジック330はソースから適当なバイト
を抽出し、これらバイトをパケット転送用FIFOバッ
ファ311の隣接するFIFOデータを維持する位置に
記憶する。宛て先マルチプレクサおよび整列ロジック3
50は、パケット転送用FIFOバッファ311からの
最も古いバイトを抽出し、宛て先に書き込む前に正しい
位置に8バイトワードでこれらバイトを一致させる。ソ
ースマルチプレクサおよび整列ロジック330、並びに
宛て先マルチプレクサおよび整列ロジック350は、そ
れらの転送を一致でき、できるだけ長くこの状態に留め
ることができるようになるとすぐに、64ビットのダブ
ルワードの境界にこれらの転送を一致させる。従ってソ
ースマルチプレクサおよび整列ロジック330並びに宛
て先マルチプレクサおよび整列ロジック350は、変動
する整列状態をサポートする。
【0239】パケット転送用FIFOバッファ311
は、サーキュラバッファとして16ビットを取り扱う。
データの開始点を任意のバイト位置とすることができ
る。宛て先マルチプレクサおよび整列ロジック350が
データを抽出する点は、4ビットのFDPTRレジスタ
によって表示され、FDPTRレジスタはデータを抽出
する同じサイクルで変更され、ポインタを新しいデータ
の開始点に移動する。宛て先マルチプレクサおよび整列
ロジック350は、抽出されたバイトを取り込み、宛て
先ダブルワード内の正しい位置へこれらを整列させる。
パケット転送用FDPTRバッファ311からの抽出お
よび整列は宛て先マルチプレクサおよび整列ロジック3
50内の8つのパラレルな16ビットバレルシフタから
成る16ポジションバイトローテータを使用した1工程
で行われる。周辺のバイトをスワップするように、ガン
のようなデータの操作を実行し、次に別の回転を行う。
宛て先マルチプレクサおよび整列ロジック350も、宛
て先に適当なバイトだけが書き込まれるように、同様に
バイトストローブを操作する。
【0240】ソースマルチプレクサおよび整列ロジック
330からのパケット転送用FIFOバッファ311へ
のローディングは、実質的に同様なオペレーションであ
る。ソースマルチプレクサおよび整列ロジック330
は、4ビットのFSPTRレジスタによってマークされ
た最初の空いている位置にそのデータを書き込み、新し
い最初の空いた位置を有するFSPTRレジスタを更新
する。パケット転送用FIFOバッファ311がフル状
態のとき、FSPTRレジスタは、一旦宛て先マルチプ
レクサおよび整列ロジック350があるデータを抽出す
れば、空となる最初の位置を実際にポイントする。
【0241】宛て先マシン340は、クロックサイクル
のスレーブ位相に関するデータを抽出する。ソースマシ
ン320はクロックサイクルの次のマスタ位相時にロー
ドする。大エンディアンおよび小エンディアン作動モー
ドをサポートするため、いずれの方向にもデータ回転を
行う必要がある。データの連続性が常に正しくなるよう
にパケット転送用FIFOバッファ311の外側から見
た場合、小エンディアンモードではデータ回転は時計回
り方向にし、大エンディアンモードでは反時計回り方向
にする。従って操作マルチプレクサおよび整列ロジック
330、宛て先マルチプレクサおよび整列ロジック35
0、ポインタFSPTRおよびFDPTRおよびパケッ
ト転送用FIFOバッファ311のレジスタは、双方の
エンディアンに合わせるように設計しなければならな
い。
【0242】図12のFCOUNTレジスタ431は、
パケット転送用FIFOバッファ311にどれだけ多く
のバイトが保持されているかの表示を記憶する。このF
COUNTレジスタ431は、17以上の値を決して含
むことができない。このレジスタはこのレジスタ内に記
憶された値がパイプライン内に現在あるインストラクシ
ョンのすべてが完了した後に、パケット転送用FIFO
バイト311内にどれだけ多くのバイトが入るかを表示
するように、パイプラインのローディング前にソースマ
シン320および宛て先マシン340によって操作され
る。これによって、パケット転送用FIFOバッファ3
11のブロッキングを生じさせるようなパイプラインへ
のオペレーションのローディングができなくなる。従っ
て、宛て先マシン340は常に十分なバイトを有し、ソ
ースマシン320は常に十分な余裕を有することとな
る。この結果、FDPTRまたはFSPTRが互いにオ
ーバーテイクをする危険がなくなる。新しいパケットリ
クエストを開始すると、FDPTRおよびFSPTRが
0にリセットされるので、これらの双方は同じ位置をポ
イントし、FCOUNTレジスタ431は0にリセット
される。これによりパケット転送用FIFOバッファ3
11の正しい初期化が保証される。
【0243】パケット転送が一時中断されると、FDP
TR、FSPTRおよびFCOUNTレジスタ431の
みならず、パケット転送用FIFOバッファ311レジ
スタ自身も制御される。これによりパケット転送用FI
FOバッファ311の全ステートが保持され、よってこ
のステートはパケット転送の再開時にレストアできる。
【0244】値で満杯にされたパケット転送は、満杯に
している値をパケット転送用FIFOバッファ311の
最下位のダブルワードにロードし、FCOUNTレジス
タ431を16にセットし、FDPTRをエンディアン
のための正しいデータ開始点にセットする。小エンディ
アンに対してはバイト0であり、大エンディアンに対し
てはバイト7である。値で満杯にされたパケット転送中
では、FCOUNTレジスタ431の値は変更されな
い。従って宛て先マシン340は、満杯になったパケッ
ト転送用FIFOバイト311を常時見ているので、こ
の満杯にしている値をフェッチし、整列する。ソースマ
シン320も満杯にされたパケット転送用FIFOバイ
ト311を常時見ているので、必要に際し、停止する。
値で満杯にされたパケット転送を一時中断またはレスト
アする際には、パケット転送FIFOバッファ311の
ステートは一時中断の別の形態に対する場合のように、
セーブされ、レストアされるだけである。従って値で満
杯にされたパケット転送を一時中断するためには特別な
考慮は不要である。
【0245】ソースマシン320は、2つのパイプライ
ンを含み、宛て先マシン340と別のパイプラインを共
用する。パイプラインは内部メモリインターフェース3
01および外部メモリインターフェース302とインタ
ーフェースされ、4つの方向のデータ転送、すなわちオ
ンチップからオンチップへ、オフチップからオンチップ
へ、オンチップからオフチップへ、オフチップからオフ
チップへのデータ転送を可能とする。ソースマシン32
0のアドレスパイプライン427およびバイトパイプラ
イン428は、宛て先マシン340のパイプラインから
分離されているが、共通のパイプラインの進行を行うよ
うに連動されている。これにより、ステップ状に維持し
ながら内部メモリインターフェース310および外部イ
ンターフェース320上での独立した行動が可能となっ
ている。あるインターフェースへの不連続性は、他のイ
ンターフェースを停止させることもある。アドレスパイ
プライン420はソースマシン320によってアクセス
されるアドレスを記憶し、バイトパイプライン428は
バイトストローブおよび整列情報を記憶する。この情報
はどのバイトが対応しており、パケット転送用FIFO
バッファ311またはキャッシュバッファ312にどれ
だけ多くのバイトをロードしたり、これらから除くかを
表示している。転送コントローラ80のレジスタの転送
にあたり、バイトパケット428はレジスタ番号を記憶
する。サービスを受けた情報もバイトパイプラインを下
方に移動し、オペレーションがいつ完了したかを表示す
る。
【0246】ソースマシン320と宛て先マシン340
は、リクエストパイプライン429を共用する。リクエ
ストパイプライン429はステータス情報、例えば低優
先度パケット転送、ダイレクト外部アクセス等の実行中
のオペレーションのタイプ、およびリクエスト中のプロ
セッサの表示を記憶する。リクエストパイプライン42
9は、ステータス事象が生じるときを表示するパラレル
制御情報も記憶する。
【0247】一つ以上のアクセスが停止する際には、と
きどき内部パイプラインにバブルが生じる。転送コント
ローラ80は、ガイドされた転送中にガイドテーブルの
値をフェッチするのに、これらバブルを使用する。これ
により、転送コントローラ80の転送中バンド幅をより
効率的に使用できる。宛て先レジスタがフリーでない場
合、このようなフェッチされたガイドテーブルの値は、
GTPIPEレジスタ403の関連部分に記憶される。
【0248】転送コントローラ80はバイト配列された
パケット転送のみにおいて、データ配列を行うことがで
きる。ソースマシン320と宛て先マシン340とは独
立しているので、これらマシンの各々は0バイトの各サ
イクルと8バイトの各サイクルとの間でフェッチしたり
記憶することができる。このことは、ソースアドレスと
宛て先アドレスとの相互の整列はコンスタントに変化し
得ることを意味している。変動する整列をサポートする
ため、転送コントローラ80はパケット転送用FIFO
バッファ311とソース配列ロジック332と、宛て先
整列ロジック352を含んでいる。パケット転送FIF
Oバッファ311は、16バイトのFIFOレジスタで
あり、このレジスタはソースからの0〜8バイトのロー
ドと、宛て先への0〜8バイトを空にすることを同時に
行うことができる。ソースマルチプレクサ331および
ソース配列ロジック332は、ソースから適当なバイト
を抽出し、これらを先のソースバイトに隣接するパケッ
ト転送用FIFOバッファ311に記憶する。宛て先配
列ロジック352および宛て先マルチプレクサ351
は、パケット転送用FIFOバッファ311から最も古
いバッファを抽出し、現在アドレス指定されている宛て
先の8バイトのダブルワードで、正しい位置にこれらを
配列する。パケット転送配列およびFIFO操作は自動
的であり、意図する実施例ではプログラマーに対してト
ランスペアレントである。
【0249】キャッシュバッファ312にはパケット転
送用FIFOバッファ311に対して作動が類似する8
バイトのバッファであり、キャッシュおよびダイレクト
外部アクセスオペレーション中に使用される。キャッシ
ュの内外への転送は常に8バイト幅である。キャッシュ
バッファ312には外部メモリバスが60ビット幅より
も狭い場合にデータを配列するのを助ける。キャッシュ
バッファ312をパケット転送用FIFO場合に311
と別個に設けたことにより、現在パケット転送用FIF
Oバッファ312にあるパケットデータを最初に空にす
ることなく、パケット転送の途中でより高い優先度のキ
ャッシュおよびダイレクト外部アクセスリクエストをサ
ービスすることが可能となっている。
【0250】転送コントローラ80はオンチップメモリ
にマッピングされる4つの、ユーザーがアクセス可能な
レジスタを有する。これらレジスタはロードおよび記憶
インストラクションによりマスタプロセッサ60によっ
てアクセス可能である。これらレジスタはデジタル画像
/グラフィックプロセッサ71、72、73、74に対
してはアクセスできない。表12はこれらレジスタをリ
ストアップしたものである。
【0251】
【表12】
【0252】REFCNTLレジスタは、システムのD
RAMリフレッシュサイクルを制御するのに使用される
2つの16ビットの値を含む。16ビットREFRAT
Eフィールド(ビット15〜0)は、DRAMリフレッ
シュサイクルを発生するインターバルを決定する。RE
FRATEにおける値は、各リフレッシュリクエストの
間に生じるマルチプロセッサ集積回路100のクロック
サイクル数を示す。REFRATEにおける32(16
進数0020)未満の値は、DRAMリフレッシュをデ
ィスエーブルする。REFRATEフィールドはリセッ
ト時に32(16進数0020)にセットされる。DR
AMリフレッシュ中、16ビットの疑似アドレスが外部
アドレスバス上に出力され、リフレッシュバンクデコー
ディングまたはRAS’だけのリフレッシュとともに使
用される。16ビットRPARLDフィールド(ビット
31〜16)は、リフレッシュサイクル中に出力される
最大値を含む。現在のリフレッシュアドレスのトラック
を維持するのに、リフレッシュアドレスカウンタが使用
される。このカウンタはリフレッシュサイクルが起きる
たびにデクリメントされ、このカウンタが0に達する
と、RPARLDにおける値が再ロードされる。RPA
RLDフィールドはリセット時に16進数0FFFFに
セットされる。
【0253】パケット転送用最小レジスタPTMIN5
11およびパケット転送用最大レジスタPTMAX51
2は、パケット転送の作動時間を制御するようになって
いる。これらレジスタは、図31に示されており、以
下、更に説明する。パケット転送用最小レジスタPTM
IN511は、より高い優先度のパケット転送によって
パケット転送をインタラプトできる前に、転送コントロ
ーラ80によってパケット転送のサービスを行わなけれ
ばならないクロックサイクルの最小数を記憶する。好ま
しい実施例では、パケット転送用最小レジスタPTMI
N511の24の最小位のビットしか実行されない。よ
り高い位のビットからの読み出しは、常に0に復帰し、
これらビットへの書き込みは全く効果がない。リセット
時にパケット転送用最小レジスタPTMIN511には
16進数10000(64Kサイクル)がロードされ
る。パケット転送用最大レジスタPTMAX512は、
タイムアウト前にパケット転送用最小レジスタPTMI
N511により指定される時間の後にパケット転送を続
けることができる最大時間を決定する。本実施例では、
パケット転送用最大レジスタPTMAX512は24の
最小位のビットを実行する。より高い位のビットからの
読み出しは0に復帰し、これらビットへの書き込みは何
らの効果もない。従ってPTMINサイクルの後により
高い優先度のパケット転送によりパケット転送をインタ
ラプトでき、PTMIN+PTMAXサイクルの後に同
じ優先度の別のパケット転送を実行するため、このパケ
ット転送を一時中断できる。より高い優先度のパケット
転送のため、あるパケット転送を一時中断できるとき、
パケット転送用最大レジスタPTMAX512内に記憶
された値は、影響しない。リセット時にPTMAXに1
6進数の値10000(16Kサイクル)がロードされ
る。
【0254】パケット転送またはデジタル画像/グラフ
ィックプロセッサ71、72、73、74のインストラ
クションキャッシュフィルサイクルまたはダイレクト外
部アクセスサイクル中にフォールトが生じたことを表示
するステータスビットを含む。表13は、FLTSTS
レジスタ上の特定のビットの意味を示す。
【0255】
【表13】
【0256】転送コントローラ80は、所定のメモリフ
ォールトの検出に基づき、FLTSTSレジスタの個々
のビットをセットする。マスタプロセッサ60のリクエ
ストしたパケット転送中にフォールトが生じると、Mビ
ット(ビット0)は1にセットされる。ビット19〜1
6はデジタル画像/グラフィックプロセッサ71、7
2、73、74によってリクエストされるパケット転送
フォールトを表示するのに使用される。DIGP3(ビ
ット19)は、デジタル画像/グラフィックプロセッサ
74のパケット転送フォールトを表示し、DIGP2
(ビット18)はデジタル画像/グラフィックプロセッ
サ73のパケット転送フォールトを表示し、DIGP1
(ビット17)はデジタル画像/グラフィックプロセッ
サ72のパケット転送フォールトを表示し、DIGP0
(ビット16)はデジタル画像/グラフィックプロセッ
サ71のパケット転送フォールトを表示する。8つのデ
ジタル画像/グラフィックプロセッサを含む実施例で、
パケット転送フォールトをレポートするのにビット23
〜20が保留される。対応するデジタル画像/グラフィ
ックプロセッサによりリクエストされるパケット転送中
にフォールトが生じると、これらビットの各々が1にセ
ットされる。
【0257】DIGPC3ビット(ビット27)は、キ
ャッシュフィルまたはデジタル画像/グラフィックプロ
セッサ74によりリクエストされるダイレクト外部アク
セスオペレーション中にフォールトが生じると1にセッ
トされ、同様に、DIGPC2ビット(ビット26)に
おける1は、キャッシュフィルまたはデジタル画像/グ
ラフィックプロセッサ73によりリクエストされるダイ
レクト外部アクセスオペレーション中のフォールトを表
示する。DIGPC1ビット(ビット25)における1
は、キャッシュフィルまたはデジタル画像/グラフィッ
クプロセッサ72によりリクエストされるダイレクト外
部アクセスオペレーション中のフォールトを表示する。
DIGP0ビット(ビット24)における1は、キャッ
シュフィルまたはデジタル画像/グラフィックプロセッ
サ71によりリクエストされるダイレクト外部アクセス
オペレーション中のフォールトを表示する。8つのデジ
タル画像/グラフィックプロセッサを使用する実施例で
は、付加的デジタル画像/グラフィックプロセッサによ
りリクエストされるキャッシュフィルまたはダイレクト
外部アクセスオペレーションを表示するのに、ビット3
1〜28が保留される。
【0258】M、DIGP3〜0、またはDIGP3〜
0ビットのうちのいずれかをセットすると、マスタプロ
セッサ60がインタラプトされる。セットされているF
LTSTSビットをクリアすると、関連するパケット転
送、キャッシュフィルまたは外部アクセスが再スケージ
ュール化される。適当なビットに1を書き込むと、FL
TSTSビットがクリアされ、1つのビットに0を書き
込んでも何の効果もない。
【0259】マスタプロセッサ60のレジスタは、スコ
アボード化されているので、フォールトを生じたダイレ
クト外部アクセスリクエストは必ずしもこのプロセッサ
のインストラクションパイプラインを停止するわけでは
ない。マスタプロセッサ60はデータアクセスの別の試
みを行う場合に限り、ダイレクト外部アクセス記憶装置
のフォールトにより停止する。フォールトの生じたダイ
レクト外部アクセスロードは、同じ条件下またはダイレ
クト外部アクセスによりロードされるレジスタを使用す
る試みをなす場合に、マスタプロセッサ60を停止させ
る。デジタル画像/グラフィックプロセッサ71、7
2、73または74によりリクエストされるフォールト
の生じたダイレクト外部アクセスは、リクエストされた
ダイレクト外部アクセスが完了するまでに、常にリクエ
スト中のプロセッサを停止させる。
【0260】パケット転送はメモリのうちの2つの領域
間でのデータのブロック転送である。ソース(Src)
メモリエリアから宛て先(Dst)メモリエリアまで、
転送コントローラ80によってデータが転送される。ソ
ースおよび宛て先エリアは、オンチップまたはオフチッ
プメモリのいずれでもよい。パケット転送は、転送コン
トローラ80への領域としてマスタプロセッサ60また
はデジタル画像/グラフィックプロセッサ71、72、
73、74のうちの1つによって開始される。転送コン
トローラ80は、図6および7に示すように、リクエス
ト待ち行列化および優先度決定ロジック303により、
固定された優先度決定方法およびラウンドロビン優先度
決定方法を用いてリクエストをサービスする。一つのプ
ロセッサがリクエストを送信すると、このプロセッサは
プロセッサの実行を続けることができる。パケット転送
はプロセッササイクルを追加することなく、転送コント
ローラ80によって完了される。パケット転送は、異な
る優先度レベルに基づいて送信できるので、より高い優
先度の転送は低い方の優先度の転送をインタラプトでき
る。このようなことが生じると、優先度の低い方の転送
は転送コントローラ80によって一時中断され、転送内
の現在位置が制御される。より高い優先度の転送が完了
すると、インタラプトされたポイントで一時中断された
転送が自動的に再開される。
【0261】パケット転送の理解を容易とするため、パ
ケット転送を説明するのに用いる用語の簡単な定義を順
に説明する。ラインとはメモリにおける多数の隣接する
バイトのことであり、パッチとは開始アドレスが等距離
離間しているライングループのことであり、パケットと
はパッチの組であり、ピッチとは2つのライン間または
2つのパッチの開始点の間のアドレスの差であり、パラ
メータテーブルとはデータのパケットおよびどのように
ソースから宛て先に移動すべきかを記述するパラメータ
の、8ダブルワード長の組であり、リンクされたリスト
とはパラメータテーブルの組であり、テーブルの各々は
リスト内の次のテーブルをポイントするものである。ガ
イドテーブルとは、パケット転送における個々のパッチ
を記述するパラメータのテーブルであり、ソース転送と
は、ソースメモリ位置からのデータの転送のことであ
り、宛て先転送とは、宛て先メモリ位置へのデータの転
送のことである。
【0262】各プロセッサは関連するパラメータメモリ
を有し、転送コントローラがプロセッサからのパケット
転送リクエストにサービスする際、転送コントローラ8
0が使用するため、関連するパラメータメモリ内に多数
の位置が別個にセットされている。図15にはこれらエ
リアが示されている。転送コントローラ80により使用
されるパラメータメモリエリアは、転送コントローラ8
0の使用のみに限定されているわけではない。しかしな
がら、これら位置に入れられるデータはパケット転送オ
ペレーション中、転送コントローラ80によってオーバ
ーライトされる可能性があることを知っておく必要があ
る。パケット転送リクエストがアクティブである時、こ
れら位置に書き込みを行ってはならない。その理由は、
このような書き込みによってパケット転送またはそのデ
ータが破壊されるからである。
【0263】プロセッサがパケット転送を初期化するた
めのプロセス、方法またはシーケンスの一例は次のとお
りである。対応するパラメータメモリ内にパケット転送
パラメータテーブルを作成する。必要であれば、オンチ
ップメモリ内にパケット転送用ガイドテーブルを作成す
る。ガイドテーブルの性質については後に更に説明す
る。第1パラメータテーブルの開始点をポイントするよ
うに、パラメータメモリ内のリンクされたリストの開始
アドレスをセットする。図15は、このリンクされたリ
ストの開始アドレスを記憶すべき対応するパラメータメ
モリ内の位置を示す。マスタプロセッサ60に対し、こ
のリンクされたリストの開始アドレスは、16進数01
0100FCから16進数010100FFのアドレス
に記憶しなければならない。デジタル画像/グラフィッ
クプロセッサ71、72、73、74に対しては、この
ようなリンクされたリストの開始アドレスは16進数0
100#0FC〜16進数0100#0FF(ここで#
はデジタル画像/グラフィックプロセッサの数である)
のアドレスに記憶しなければならない。次に適当なパケ
ット転送優先ビットおよびPビットをセットして、転送
コントローラ80にリクエストを送る。マスタプロセッ
サ60のためのPKTREQ制御レジスタ内およびデジ
タル画像/グラフィックプロセッサ71、72、73、
74のCOMMレジスタ内に、これらビットが位置す
る。転送コントローラ80は、これらレジスタのステー
タスを検出し、図6および7に示された優先度に従って
パケット転送リクエストのサービスをする。
【0264】パケット転送リクエストはリンクされたリ
スト構造のように送られる。リンクされたリストは単に
パケット転送パラメータテーブルの集合であり、ここで
は各パケット転送は、リスト上の次の入力の入力ポイン
トに対するポインタを含む。パケット転送はオンチップ
またはオフチップメモリ上で作動できるが、パラメータ
テーブル自体のリンクされたリストはオンチップメモリ
に記憶しなければならない。各プロセッサはメモリに記
憶された多数のリンクされたリストを有することができ
るが、一時にそのうちの一つしかアクティブになれな
い。リクエスト中のプロセッサのパラメータメモリ内の
専用のリンクされたリストの開始アドレス位置に、アク
ティブなリンクされたリストの開始点が記憶される。リ
ンクされたリスト内の各入力パラメータテーブルは、リ
スト上の次の入力の位置に対するポインタを含む。リス
トの終了部はパケット転送パラメータテーブルのパケッ
ト転送オプションフィールド内のストップビットによっ
てマークされているので、リスト内の最終入力は、いず
れの位置もポイントできる。
【0265】図16は、簡単なリンクされたリスト構造
を示す。このリストは2つのパケット転送パラメータテ
ーブルを含む。リスト開始ポインタは、第1パケット転
送パラメータテーブルの開始アドレスを記憶し、第1パ
ケット転送パラメータテーブル内の第1データは、第2
の、すなわち本例では最終のパケット転送パラメータテ
ーブルのアドレス内にある。本例は、2つのパケット転
送パラメータテーブルしか含まないが、リンクされたリ
ストは、オンチップメモリに合わせるよう、できるだけ
長くすることができる。
【0266】あるプロセッサがPビットをセットするこ
とによりパケット転送を送った場合、転送コントローラ
80は対応するプロセッサのQビットをセットすること
によって応答する。このことは、そのプロセッサのリン
クされたリストがパケットコントローラ80内に待ち行
列状になっていることを表示する。パケット転送優先レ
ベルに適当なラウンドロビントークンがリクエスト中の
プロセッサに達すると、転送コントローラ80はリクエ
ストのサービスをアクティブに開始する。転送コントロ
ーラ80がリクエスト中のプロセッサのパラメータメモ
リ内のリンクされたリストの開始位置を読み出す。転送
コントローラ80は第1パケット転送パラメータテーブ
ルの内容を、そのソースマシン320および宛て先マシ
ン340内のレジスタに読み出す。次に転送コントロー
ラ80はソースマシン320および宛て先マシン340
を使用して、パラメータテーブル内に表示されたように
データを転送する。パケット転送が完了すると、転送コ
ントローラ80はリンクされたリスト内の次のアドレス
と共に、パラメータメモリ内のリンクされたリストの開
始アドレスを更新する。このアドレスは、ちょうど完了
したパケット転送パラメータテーブルの第1入力から読
み出される。転送コントローラは次に、リンクされたリ
スト上の最後の入力に達するまで、この手順を繰り返
す。
【0267】本明細書に述べたパケット転送デバイス、
プロセスおよび方法は、データの移動のフレキシビリテ
ィを最大にできるよう、多数の異なるフォーマットおよ
びオプションを提供するものである。これらフォーマッ
トを検討する際、パケット転送のソース転送と宛て先転
送とは互いに独立していることに留意することが重要で
ある。これにより読み出し時のフォーマットと完全に異
なるフォーマットを利用してパケットデータを書き込む
ことができ、これにより任意の数のスプレッド機能また
はマージ機能を自動的に達成できる。これら2つの基本
的パケット転送フォーマットは、次元が決定され、ガイ
ドされている。これらフォーマットはソース転送または
ソース転送を記述しているかまたは宛て先転送を記述し
ているかに応じて、どのようにデータを読み出すか、ま
たは書き込むかを決定できる。ソース転送と宛て先転送
に対して異なるフォーマットを規定することが可能であ
ることに留意されたい。
【0268】次元の定められた転送は、最もシンプルな
タイプであるが、最も硬直したタイプでもある。このよ
うな次元の定められた転送はデータバイトの簡単な隣接
するリニアシーケンスでもよいし、または多数のかかる
領域から構成できるソースまたは宛て先を記述する。ア
ドレス指定機構は三次元までのアレイの指定を可能とす
る。この機構は、単一パケット転送による多数の二次元
状パッチの転送を可能とする。第1またはA次元に沿う
データは、常に1バイトだけ離れている。第2すなわち
B次元および第3すなわちC次元に沿う間隔は任意であ
るが、パッチ全体に対して固定されている。宛て先次元
が完了すると、転送が完了する。
【0269】図17は、次元の定められた転送がどのよ
うにソースメモリまたは宛て先メモリにアクセスするか
の例を示している。この図は3ラインの2パッチから成
るパケットを示しており、各パッチは512個の隣接す
る8ビットピクセルから成る。例えば2つのデジタル画
像/グラフィックプロセッサ71、72、73、74が
3×3の畳み込み(各々はラインのパッチの1つに作用
する)を実行しようとしている場合、これが必要となり
得る。第1パッチ(PQR)は、デジタル画像/グラフ
ィックプロセッサ71と関連するデータメモリ22に転
送すべきデータを示し、第2パッチ(STU)データは
デジタル画像/グラフィックプロセッサ72に関連する
データメモリ27に転送すべきデータを示す。本例はソ
ースメモリエリアから転送コントローラ80がデータを
どのように読み出すべきかを指定しているので、ソース
転送を示していることになる。データパケットは、次の
パラメータ、すなわちAカウント、Bカウント、Cカウ
ント、開始アドレス、BピッチおよびCピッチによって
特定される。Aカウントとは、第1次元内の隣接するデ
ータバイトの数であり、図17の例ではこの数は512
である。Bカウントとは、パッチを形成する工程の数ま
たは1未満のライン数である。図12はBカウントが2
である場合を示す。Cカウントは1未満のパケットを形
成するためのパッチ工程の数である。図17はCカウン
ト数が1である場合を示す。開始アドレスとは、パケッ
トの開始点のリニアアドレスである。このアドレスはP
と表示されるバイトのアドレスである。Bピッチとは第
2次元のリニアピッチのことである。すなわちバイトP
とQとのアドレスの差またはバイトQとRとのアドレス
の差である。Cピッチとは第3次元のリニアピッチ、す
なわちバイトPとSとのアドレスの差のことである。ソ
ース転送および宛て先転送のいずれも、このように定義
できるが、ソースと宛て先の形状を全く異なるようにで
きるように、パラメータは独立したものである。
【0270】次元の定められた転送のすべての次元をア
クティブにする必要はない。Bカウントおよび/または
Cカウントを0にセットすることにより、転送を個々の
バイト、ピクセルの倍数バイト、ラインまたはパッチに
限定できる。0のAカウント値は転送されるデータを0
にするので、エラーを発生し得る。
【0271】ガイド転送とは次元アドレスのシーケンス
をパケット転送パラメータ内の値のみから計算するので
はなく、オンチップメモリ内のテーブルからガイドする
転送のことである。これらのオペレーションは次元の定
められた転送よりも複雑であるが、よりフレキシブルで
ある。ガイド転送には2つのクラス、すなわち固定パッ
チ転送と可変パッチ転送とがある。固定パッチガイド転
送は次元の定められた転送の場合のようにパケット転送
パラメータ内に記述された第1次元および第2次元を有
するが、第3次元はオンチップガイドテーブル内のエン
トリーからガイドされる。可変パッチガイドテーブルで
はガイドテーブルは各パッチに対しA次元およびB次元
のサイズも決定する。いずれの形態でも、2つの1次元
は次元の定められたテーブルと同じようにアクティブで
ある。従って各ガイドテーブルエントリーが2つの第1
次元のサイズに従って個々のバイト、倍数バイトの個々
のピクセル、ラインまたは2次元パッチを移動できる。
これによりルックアップテーブルによるライン描きまた
はデータ処理の際に生じるような多数のイレギュラーな
オペレーションが可能となる。
【0272】特に表示しない限り、ガイド転送について
の次の記載における情報は、ソース転送および宛て先転
送の双方にも同じように当てはまる。ガイドテーブルは
単なるエントリーのブロックであり、これは転送のタイ
プに応じて32ビットまたは64ビットとなり得る。こ
のガイドテーブルは、オンチップメモリ内に位置してい
なければならない。ガイドテーブルは固定パッチ転送に
対しては、32ビットワードのアドレスに整列していな
ければならず、可変パッチ転送に対しては64ビットの
ダブルワードアドレスに整列していなければならない。
ガイドテーブルが含むガイドテーブルの開始アドレスお
よびエントリーの数は、対応するパケット転送パラメー
タテーブル内に表示される。各ガイドテーブルエントリ
ーはパケット転送内の2次元パッチに対応しており、転
送コントローラ80がパケット転送サービスをする際、
このコントローラはパケット転送内の次のパッチの処理
をするのに必要なように、ガイドテーブルエントリーを
一つずつフェッチする。ガイドテーブルエントリーの詳
細については、下記のガイド転送の詳細な説明で述べ
る。
【0273】固定パッチガイド転送は、32ビットエン
トリーを含むオンチップガイドテーブルを使用する。こ
のテーブルは、ワード整列されていなければならないの
で、テーブルのエントリーアドレスの最小位の2つのビ
ットは00でなければならない。各エントリーは3次元
の転送のためのアドレスを計算するのに使用される情報
を含む。固定パッチ転送は3つのタイプがある。すなわ
ち固定パッチデルタガイド転送、固定パッチオフセット
転送および固定パッチオフセットガイドルックアップテ
ーブル転送がある。これらタイプについては、下記によ
り詳細に説明する。
【0274】固定パッチデルタガイド転送に対し、ガイ
ドテーブルは現在のパッチの開始アドレスを形成するの
に、先の2次元パッチの開始アドレスに追加すべき32
ビットのデルタ値を含む。パッチサイズはAカウントお
よびBカウントパケット転送パラメータによって固定さ
れ、定義される。
【0275】図18に、固定パッチデルタガイドパケッ
ト転送のプロセスおよび方法の一例が示されている。こ
こで、第1パッチすなわちパッチAの開始アドレスを形
成するため、パケット転送パラメータ内に示された開始
アドレスに値デルタAが加算される。この開始アドレス
は最終パッチ開始レジスタ403に記憶され、パッチB
の開始アドレスを形成するのに最終パッチ開始点403
に記憶されたパッチAの開始アドレスに、デルタBが加
算され、同様に、その後同じような加算が行われる。こ
こで加算値は次のパッチの開始アドレスのベースを形成
するよう、最終パッチ開始レジスタ403に常時記憶さ
れることに留意されたい。図18に示すように、テーブ
ルポインタ501は、ガイドテーブル502内の次のエ
ントリーをポイントするように、各パッチの後に4バイ
トだけインクリメントされる。多数のエントリーカウン
タ503には、最初パケット転送パラメータテーブルか
らのエントリー値の数がロードされており、エントリー
カウンタ503の数は各パッチの後で一つだけデクリメ
ントされる。エントリー各503の数が0に達するとパ
ケット転送が終了する。
【0276】固定パッチオフセットガイドパケット転送
は、ガイドテーブル502を使用し、このテーブル50
2は各パッチの開始アドレスを形成するため、パケット
転送パラメータ内に示されるベースアドレスに加算すべ
き32ビットの値を含む。パッチサイズはAカウントお
よびCカウントパケット転送パラメータにより固定さ
れ、定義される。
【0277】図19は固定パッチオフセットガイドパケ
ット転送のためのアドレス指定機構プロセスおよび方法
を示す。ガイドテーブル502における第1エントリー
からの値デルタAは、パッチAの開始アドレスを形成す
るため、パケット転送パラメータテーブルに特定され、
ベースアドレスレジスタ505に記憶されたベースアド
レスに加算される。次に、パッチBの開始アドレスを形
成するよう、ベースアドレスレジスタ505内に記憶さ
れたアドレスにデルタBが加算され、ガイドテーブル5
02内の最終エントリーまでに同様な加算が行われる。
ここで、パケット転送パラメータテーブル内に特定され
たベースアドレスが0になると、ガイドテーブル502
は絶対アドレスを指定する。デルタガイド転送の場合と
同じように、テーブルポインタ501は現在のガイドテ
ーブルエントリーをポイントし、エントリーカウンタ5
03の数は実行するパッチの数をトラッキングする。
【0278】ガイドテーブル502は、固定パッチオフ
セットガイドルックアップテーブルパケット転送に対
し、32ビットのオフセット値を含む。この値はオフセ
ットレジスタ506内で0フィルの状態で0、1、2ま
たは3ビットだけ左にシフトし、ベースアドレスレジス
タ505内に記憶されたアドレスに加算されるべきもの
である。ベースアドレスレジスタ505に記憶されたベ
ースアドレスは、パケット転送パラメータに示されてお
り、これによりルックアップテーブルのデータサイズと
独立したルックアップテーブルのオペレーションのため
に転送を利用できる。固定パッチオフセットガイドルッ
クアップテーブルフォーマットは、ソース転送に対して
使用できるだけである。シフト量はパケット転送パラメ
ータのAカウントフィールドのビット1〜3のうちの最
も左側のビットの位置によって表示されている。ビット
3のうちの1は、左にシフトされた3つの場所を示し、
ビット2は2つの場所を示し、ビット1は1つの場所を
示す。ビット1〜3の中に1がない場合は、0シフトを
示す。このような左シフトにより、8、16、32およ
び64ビットのサポートが可能となる。ルックアップテ
ーブル転送のためのパッチサイズは、固定された1次元
であり、1、2、4または8バイトにセットされる。
【0279】図20は、固定パッチオフセットガイドル
ックアップテーブルパケット転送のためのアドレス計算
の一例を示す。ここでオフセットAはAカウントフィー
ルド内の値によって示されるようなルックアップテーブ
ルのデータサイズに従って、0、1、2または3ビット
だけ左にシフトされる。オフセットレジスタ505内の
このようなシフトされたアドレスは、パッチAの開始ア
ドレスを形成するため、ベースアドレスレジスタ505
内に記憶されたベースアドレスに加算される。次に、オ
フセットB値がシフトされ、ベースアドレスレジスタ5
05内のベースアドレスに加算され、パッチBの開始ア
ドレスを形成し、同様な操作が次々に実行される。ガイ
ドテーブル502からオフセット値がロードされる際に
シフトが行われる。先の実施例で述べたように、テーブ
ルポインタ501およびエントリーレジスタ503の数
は、ガイドテーブル502内の現在位置およびパッチの
数のトラッキングを維持する。
【0280】可変パッチガイド転送は、パケット転送パ
ラメータ内でなく、ガイドテーブル内のすべてのパッチ
サイズ情報を特定する。これによりパケット転送内の各
パッチが異なる次元を有することができる。転送はデル
タガイドまたはオフセットガイドのいずれでもよい。ガ
イドテーブルは可変ガイドパッチ転送に対し64ビット
のダブルワードエントリーから成る。図21にガイドテ
ーブル用の小エンディアンフォーマットが示されてい
る。ダブルワードの下方の半分は第1の2つの次元に対
するAカウント値およびBカウント値を含む。上方の3
2ビットは第3次元のアドレスを計算するのに使用され
る値を含む。図22は、大エンディアンガイドテーブル
フォーマットを示し、このフォーマットでは、上方の3
2ビットがAカウント値およびBカウント値を含み、下
方の32ビットがオフセットまたはデルタを含む。
【0281】32ビットの書き込みを用いることによ
り、エンディアンフォーマットから独立したガイドテー
ブルを作成するためのソフトウェアが適当に与えられ
る。AおよびBカウントはワード1のアドレスに現れ、
オフセット/デルタアドレスはワード0のアドレスに現
れる。ここでワード1はワード0よりも大きいアドレス
の4バイトにある。転送コントローラ80は64ビット
のアクセス中に一時に双方の32ビットワードをアクセ
スし、そのとき選択されているエンディアンモードに従
って正しい内部オペレーションをするのに必要なワード
順序を調節する。可変パッチ転送のためのガイドテーブ
ルエントリーはダブルワードに整列すべきである。すな
わちバイトアドレスの3つの最小位ビットを000とし
なければならない。
【0282】図23は、可変パッチのデルタガイドパケ
ット転送の一例を示す。可変パッチデルタガイドパケッ
ト転送に対し、ガイドテーブルエントリーの第1ワード
は、最後のパッチ開始レジスタ504内に記憶された先
のパッチの開始アドレスに加算すべき32ビットのデル
タ量を含む。パケット転送パラメータには第1パッチの
ための開始アドレスが示されている。パッチサイズは可
変であり、各ガイドテーブルエントリーの第2ワード内
に指定される。ここで、パッチWの開始アドレスを形成
するのに、パケット転送パラメータ内に特定された開始
アドレスにデルタWが加算される。Aカウントは第1次
元のバイトの数の長さを決定し、Bカウントは第2次元
のサイズ(これはライン−1の数である)を決定する。
次にパッチXの開始アドレスを発生するよう、最終パッ
チ開始レジスタ504内に記憶されたパッチW開始アド
レスにデルタXが加算される。先に固定パッチ転送の場
合に述べたように、テーブルポインタ501およびエン
トリーカウンタ503の数は、ガイドテーブル502内
の位置のトラッキングを維持する。各ガイドテーブルエ
ントリーは、64ビットすなわち8バイトであるので、
テーブルポインタ501は、8バイトよりも大きいアド
レスをポイントするようにインクリメントされる。
【0283】図24には、可変パッチオフセットガイド
パケット転送の一例が示されている。可変パッチオフセ
ットガイドパケット転送のための各ガイドテーブルエン
トリーの1ワードは、32ビットオフセット値を含む。
この32ビットのオフセット値は、各パッチの開始アド
レスを計算するよう、ベースアドレスレジスタ505内
に記憶されたベースアドレスに加算される。このベース
アドレスはパケット転送パラメータ内で特定される。パ
ッチサイズは可変であり、各ガイドテーブルエントリー
の他方の半分内に特定される。パッチWの開始アドレス
を発生するように、ベースアドレスレジスタ505内に
記憶されているベースアドレスに、アドレスWの値が加
算される。Aカウント値およびBカウント値はパッチの
サイズを決定する。パッチXのための開始アドレスを得
るよう、ベースアドレスレジスタ505内に記憶された
下のベースアドレスにオフセットXが加算される。テー
ブルポインタ501およびエントリーカウンタ503の
数は、ガイドテーブル502内の位置のトラッキングを
維持しながらテーブルポインタ501が8だけインクリ
メントされる。
【0284】ルックアップテーブルパケット転送に類似
する、値でフィルする(fill−With−valu
e)パケット転送は、ソース転送に対して指定できるに
すぎない。この値でフィルするパケット転送は実際には
ソースメモリからデータを転送するのではなく、むしろ
パケット転送パラメータ内にソースの値を特定するよう
になっている。2つの32ビットフィールド、最大位の
フィル値のワードおよび最小位のフィル値のワードが、
宛て先メモリを満たすのに使用される64ビットの値を
特定する。フィルパターンが64ビット未満であれば、
最小値のフィル値のワードおよび最大位のフィル値のワ
ードにわたって、このパターンを再現しなければならな
い。フィル値では整列オペレーションが実行されず、宛
て先ダブルワードに書き込まれるバイトはフィル値のダ
ブルワードからの対応するバイトとなっている。値でフ
ィルするパケット転送に対して、ソース開始アドレスま
たはソース次元カウントは特定されない。パケット転送
のサイズは宛て先転送パラメータによって決定される。
【0285】種々の転送フォーマットによりソース転送
と宛て先転送の多数の組み合わせが可能となっている。
これら組み合わせを特定するため、パケット転送パラメ
ータテーブル内のパラメータのフォーマットは、必要な
ソース転送および宛て先転送のタイプに応じて変わる。
パラメータテーブルの内容の説明を補助するため、図2
5〜29に種々の可能なパラメータの例が示されてい
る。
【0286】パケット転送パラメータテーブルは、オン
チップメモリすなわちマスタプロセッサ60のパラメー
タメモリ15、デジタル画像/グラフィックプロセッサ
71、72、73、74のパラメータメモリ25、3
0、35または40、もしくは、デジタル画像/グラフ
ィックプロセッサ71、72、73、74のデータメモ
リ22、23、24、27、28、29、32、33、
34、37、38または39内にあることが好ましい。
パケット転送パラメータテーブルは、整列された64バ
イトでなければならない。すなわち6つの最小位アドレ
スビットが000000となる。どのメモリがこのテー
ブルを含むかについては、制限はない。従ってマスタプ
ロセッサ60はデジタル画像/グラフィックプロセッサ
71に対応するパラメータメモリ25にあるパラメータ
テーブルを使用することができる。リクエスト中のプロ
セッサはパケット転送リクエストを送る前に自己のパラ
メータメモリ内のリンクされたリストの開始アドレス位
置に適当な開始アドレスを入れるだけである。
【0287】図25〜28に関連して、次の章はパケッ
ト転送パラメータ内の種々のフィールドについて述べ
る。PTによって表示されるパケット転送パラメータの
開始アドレスに対する各フィールドのアドレスは、フィ
ールドが有効な転送タイプと同じように示される。多く
の場合、2つの同じフィールドがあり、1つはソース転
送用であり、他方は宛て先転送用である。これらの場
合、1つのコンテクストでフィールドの記述が示され
る。あるフィールドは、転送のタイプに応じて使用しな
い。これらのケースではフィールドはプログラムしない
ままにできる。表14は可能なオプションのすべてをリ
ストアップしたものである。以下、これらのオプション
について詳細に説明する。
【0288】
【表14】
【0289】パケット転送パラメータ内の第1データワ
ードは、次のパラメータテーブルの次のパケット転送開
始アドレスである。このワードはすべてのパケット転送
タイプに存在し、パケット転送用のリンクされたリスト
上の次のエントリーの開始点に対する32ビットのポイ
ンタである。このワードは64バイトの整列したオンチ
ップアドレスをポイントするので、このアドレスの6つ
の最小位のビットは000000とならなければならな
い。パケット転送用オプションフィールド内の停止ビッ
トは、リンクされたリストを終了させるのに使用される
ので、リンクされたリストの最終エントリーは、次の特
別なアドレスエントリーを必要としない。パケット転送
が成功裏に終了するときはいつも、リクエスト中のプロ
セッサのパラメータメモリ内のリンクされたリストの開
始アドレス位置に、次のパケット転送エントリーアドレ
スワード内の値が書き込まれる。これによりポインタは
次のパケット転送に自動的に進む。このポインタは、リ
ンクされたリストに実行を休止するのに停止ビットが使
用される場合に、このポインタがリンクされたリストが
イネーブルされた際にリンクされたリスト上の次のパケ
ット転送をポイントするように、リンクされたリスト上
の最終パケットが完了した後にも、更新される。
【0290】第2ワードは、パケット転送オプションフ
ィールドとなっている。これはPT+4に位置する。こ
のパケット転送オプションフィールドは、データを転送
する方法で種々のオプションを指定するようにすべての
パケット転送タイプで使用される。以下、このパケット
転送オプションフィールドについて詳細に説明する。
【0291】次元が定められたパケット転送およびデル
タガイドパケット転送で使用される第3および第4デー
タワードは、ソースおよび宛て先開始アドレスとなって
いる。PT+8にはソース開始アドレスがあり、PT+
12には宛て先アドレスがある。これらフィールドは次
元の定められたパケット転送およびデルタガイドパケッ
ト転送で使用される。次元の定められたパケット転送に
対し、各々はソースまたは宛て先のための開始バイトア
ドレスを表示する32ビットのワードであり、デルタガ
イド転送に対し、各々はソースまたは宛て先転送のため
に第1デルタオフセット値を加算する開始アドレスを示
す。
【0292】オフセットガイドパケット転送で使用され
る第3および第4データワードは、PT+8にはソース
開始アドレスがあり、PT+12には宛て先アドレスが
ある。これらフィールドは、オフセットガイド転送モー
ドを使用する際に、ソースおよび宛て先開始アドレスの
場所をとる32ビットのオフセット値である。
【0293】第5および第6データワードは、ソースお
よび宛て先のAおよびBカウントであり、PT+16バ
イトにおける第5データワードはビット15〜0にソー
ス用のAカウントを有し、ビット31〜16にソース用
のBカウントを有する。同様に、PT+20における第
6データワードは、ビット15〜0に宛て先用Aカウン
トを有し、ビット31〜16に宛て先用Bカウントを有
する。このAカウントの16ビットフィールドは、次元
の決められた、すなわち固定パッチ転送のためのソース
または宛て先の対応する第1次元において、転送すべき
バイトの数を指定する。可変パッチガイド転送に関して
は、Aカウントフィールドは使用されない。更に値でフ
ィルされたパケット転送に関してはソースAカウントは
使用されない。Bカウントの16ビットフィールドは、
次元の定められた、または固定されたパッチ転送用のソ
ースまたは宛て先の対応する第2の次元で発生すべきス
テップ数を特定する。これはライン−1の数に等しい。
従って0の値は第2の次元をディスエーブルし、その結
果パッチ当たり1本のラインしか転送しない。ソースB
カウントは値でフィルされたパケット転送中には使用さ
れない。
【0294】次元の定められたパケット転送内のPT+
24およびPT+28に位置する第7および第8データ
ワードは、それぞれソースCカウントおよび宛て先Cカ
ウントである。これら32ビットのフィールドはソース
または宛て先の第3次元におけるパッチ工程数を特定す
る。従って0の値は第3次元をディスエーブルし、一つ
のパッチしか転送しない。フィル転送に対してはソース
Cカウントフィールドを使用されない。
【0295】デルタまたはオフセットガイドパケット転
送における第7および第8データワードはエントリーの
数である。これらの32ビットフィールドにおける値
は、それぞれソースおよび宛て先のためのガイドテーブ
ルのエントリーの数を指定する。従ってこれらフィール
ドは、転送される情報のパッチ数を表示する。値が0で
あればデータ転送は行われない。
【0296】PT+32およびPT+36には第9およ
び第10データワードがある。次元の定められた固定パ
ッチパケット転送では、これら32ビットのフィールド
はソースおよび宛て先の第2次元のピッチを特定する。
このピッチの値はソースまたは宛て先ラインの開始アド
レスに加算され、次のラインの開始アドレスを得る。対
応するBカウントフィールドにおける値は、0である
が、このフィールドはプログラムされない状態のままに
できる。
【0297】PT+40およびPT+44にはそれぞれ
第11および第12データワードがある。次元の定めら
れたパケット転送では、これら32ビットフィールドで
は、ソースまたは宛て先の第3次元のピッチを特定す
る。次のパッチの開始アドレスを得るのに、ソースまた
は宛て先パッチの開始アドレスにこのピッチの値が加算
される。対応するCカウントフィールド内の値が0であ
れば、このフィールドはプログラムされない状態のまま
にできる。
【0298】デルタまたはオフセットガイド転送におい
て、第11および第12データワードは、ガイドテーブ
ルアドレスである。これらフィールドにはそれぞれのガ
イドテーブル内の第1エントリーをポイントする整列さ
れたアドレスがロードされる。これらデータワードの値
は、ガイドテーブルからエントリーが取り出されるたび
に固定パッチ転送に対しては4だけ、または可変パッチ
転送に対しては8だけ自動インクリメントされる。これ
らガイドテーブル開始アドレスは、固定パッチパケット
転送に対しては32ビットワードアドレスに対して整列
し、可変パッチパケット転送に対しては64ビットダブ
ルワードアドレスに整列しなければならない。ガイドテ
ーブルはオンチップメモリ内になければならず、いずれ
かの条件が真でなければ、イリーガルなアドレスエラー
インタラプトが生じる。
【0299】第9および第11データワードは、値で満
たされたパケット転送において特別な用途がある。これ
ら2つの32ビットフィールドは64ビットフィルパタ
ーンを構成する。宛て先のダブルワードに書き込まれた
バイトはフィル値のダブルワード内の対応するバイトか
ら取り出される。従ってフィルパターンが64ビット未
満であれば、これら2つのデータワード内でデータ値を
繰り返さなければならない。値でフィルするパケット転
送に対し、このフィル値はソースに対してのみ可能であ
るが、他方、宛て先は次元の定めれられた、固定または
可変パッチのデルタまたはオフセットガイドにできる。
【0300】パケット転送がソーストランスペアレンシ
ーを利用する場合、第13および第14データワードは
トランスペアレンシー値をホールドする。この64ビッ
トのダブルワードはPT+48で開始する。この64ビ
ットフィールドはトランスペアレンシーを選択した場
合、比較すべき値を表示するのに使用される。パケット
転送オプションフィールドのパケットアクセスモードフ
ィールドは、このフィールド内に含まれる値のトランス
ペアレンシーサイズまたは数を表示する。宛て先ダブル
ワードにすぐに書き込まれるバイトは、トランスペアレ
ンシー値内の対応するバイトと比較され、一致が見つか
ればバイトストローブが非アクティブにドライブされ
る。ピクセルサイズが64ビット未満であれば、データ
値を再現しなければならない。このフィールドはブロッ
クの書き込みを除くすべての非トランスペアレンシー転
送に対しては用いられない。ソーストランスペアレンシ
ー値は、エンディアンモードにかかわらず、メモリに書
き込まれるのとまさに同じように、転送コントローラ8
0によって使用されるので、ワードスワップは生じな
い。これは図25に示されている。パケット転送パラメ
ータテーブル開始アドレスに続く48バイトをアドレス
指定するダブルワード書き込みとして常にこの値を書き
込むことにより、混乱を避けることができる。
【0301】パケット転送はブロック書き込みモードを
使用する場合、第3および第4データワードはカラーレ
ジスタのデータをホールドする。64ビットのカラーレ
ジスタフィールドはブロック書き込みサイクルの準備の
際にビデオランダムアクセスメモリ(VRAM)をロー
ドするのに使用される値を含む。この値は、シミュレー
トされたブロック書き込みを実行する際にも使用され
る。転送コントローラ80はエンディアンモードにかか
わらず、トランスペアレンシー値に関してこれまで述べ
たのとまったく同じ態様で書き込まれるカラーレジスタ
値を使用する。これは図29に示されている。以下、こ
のフィールドの使用について詳細に説明する。
【0302】パケット転送パラメータの最終ダブルワー
ドを形成するPT+56で開始する第15および第16
データワードは、すべての転送モードに対してそのとき
は使用されず、プログラムされない状態のままにでき
る。これらデータワードはマルチプロセッサ集積回路1
00を未来バージョンで使用できる。
【0303】図25〜29は、パケット転送パラメータ
テーブルの少数の可能なフォーマットを示す。図25
は、ソーストランスペアレンシーを有するソースおよび
宛て先用の次元の定められたパケット転送用のパラメー
タのテーブルの一例を示し、PT+48にトランスペア
レンシーワード0が記憶され、PT+52にトランスペ
アレンシーワード1が記憶される。図26は、値でフィ
ルする宛て先用の次元の定められたパケット転送用パラ
メータテーブルの一例を示す。PT+40にフィル値の
最大のビットが記憶される。PT+32にフィル値の最
小位のビットが記憶される。図27は、次元の定められ
たソースおよび固定パッチガイド宛て先パケット転送用
のパラメータテーブルの一例を示す。PT+12におけ
るデータワードは、ベースアドレスを記憶し、PT+2
8におけるデータワードはガイドテーブル内のエントリ
ー数を記憶し、PT+44におけるデータワードはガイ
ドテーブルの開始アドレスを記憶する。図28は、次元
の定められたソースおよび可変パッチガイド宛て先パケ
ットのためのパラメータテーブルの一例を示す。通常P
T+22に記憶される宛て先AおよびBカウントはプロ
グラムされないが、その理由は、これらカウントが宛て
先ガイドテーブルの一部であるからである。図29は、
次元の定められたブロック書き込みパケット転送用の一
例を示す。PT+48で開始するダブルワードは、カラ
ーレジスタワード0および1を含むことに留意された
い。
【0304】パケット転送オプションフィールドはソー
スおよび宛て先転送のためにどんなフォームの転送を用
いるかを選択し、現在のパケットがリンクされたリスト
を終了させるかどうかを決定する。更に特殊転送モー
ド、パケット転送終了時の付加的アドレス計算の実行、
次元アドレス計算の方向変化またはソース転送と宛て先
転送の反転のような多数の付加的特徴の選択を可能にす
る。図30にパケット転送オプションフィールドのフォ
ーマットが示されている。オプションフィールドにすべ
て0をロードすることにより、特殊アドレスモードを用
いないで、ソースおよび宛て先で次元の定められた転送
を利用するデフォールトパケット転送を行うことにな
る。
【0305】パケット転送オプションフィールドのビッ
ト1〜0は、宛て先更新モードフィールドを形成する。
これら2つのビットは、元のパケット転送パラメータテ
ーブル内の宛て先開始アドレスが、パケット転送が完了
した場合にどのように更新されるかを表示する。これら
ビットが0でなければ、パケット転送完了後に余分なア
ドレス計算を行う。パケット転送パラメータテーブルに
指定された元の宛て先開始アドレス上にこの値が書き込
まれる。これによりパケット転送を更に送ることが可能
となり、オフ状態から続けることが可能となる。これは
特に2つのメモリエリア間でピンポン操作するのに有効
である。
【0306】表15に、宛て先更新モードがリストアッ
プされている。下記のような宛て先反転アドレス指定ビ
ットの反転宛て先Cまたは反転宛て先Bの一方がセット
されると、加算よりも減算を行う。
【0307】
【表15】
【0308】宛て先更新モードは、使用中の最大次元の
追加ステップを実行するのに使用できるが、他の有効な
オペレーションも実行できる。転送は2次元だけにする
ことができたが、Cピッチを加えるよう、モード10も
使用できる。これにより最終パケットに対し次の2次元
パケットを位置させることができる。2つの1次元また
は2次元パッチ間で、例えばオンチップデータメモリ上
でピンポン動作するパケット転送を再送信するのにモー
ド11が特に有効である。完了時にパケット転送パラメ
ータを更新するたびに、第3次元のアドレス指定方向が
反転されるので、この方向はメモリエリア間で交互に変
わる。
【0309】この機能は、主に次元の定められた転送と
共に使用することを意図するものである。この機能は、
ガイド転送で指定できるが、注意が必要である。ガイド
転送に対しては、宛て先Cピッチは宛て先ガイドテーブ
ルポインタと置換されていることを思い出していただき
たい。
【0310】パケット転送オプションフィールドのビッ
ト6〜4は、宛て先転送モードフィールドを形成する。
これら3つのビットは宛て先アドレス指定のためにどの
フォームの転送を使用すべきかを表示する。ソース指定
モードルックアップテーブルおよび値によるフィル操作
は宛て先アドレス指定のために定義されていない(保留
されている)。
【0311】
【表16】
【0312】パケット転送オプションフィールドのビッ
ト9〜8は、ソース更新モードフィールドを形成する。
表17に、このソース更新モードが示されている。適当
なソース反転アドレス指定ビット、反転ソースCまたは
反転ソースBがセットされる場合、加算よりも減算を実
行する。
【0313】
【表17】
【0314】これら2つのビットはパケット転送が完了
した際に元のパケット転送パラメータ内のソース開始ア
ドレスをどの値で更新すべきかを表示する。これらビッ
トが0でなければパケット転送完了後に追加的ソースア
ドレス計算を実行する。次にパケット転送パラメータに
指定された元のソース開始アドレス上にこの値を書き込
む。これによりパケット転送を再び送ることができ、先
の時間に残っていた場所より続けることができる。この
ような転送は、2つのメモリエリア間でピンポン操作す
るのに特に有効である。これらモードは先に宛て先アド
レスの発生で述べたように、操作アドレスの発生でも同
じような用途がある。
【0315】パケット転送オプションフィールドのビッ
ト14〜12は、ソース転送モードフィールドを形成す
る。これら3つのビットは、ソースアドレス指定のため
どのフォームの転送を使用すべきかを表示する。表18
にこれらのコーディングを示す。
【0316】
【表18】
【0317】パケット転送オプションフィールドのビッ
ト18〜16は、パケット転送アクセスモードフィール
ドを形成する。これら3つのビットは表19に示される
ような特別なアクセスモードをエンコードするのに用い
られる。これらモードは宛て先にソースデータを書き込
む方法を変えるものであり、オンチップメモリの宛て先
に対し、モード000の通常の転送しか許可されない。
【0318】
【表19】
【0319】000のコーディングは、外部メモリに対
する通常のアクセスモードまたはページモードアクセス
を可能にする。ソースまたは宛て先上では特別なアドレ
ス指定モードは使用されない。変更をすることなく、ソ
ースから宛て先にデータが転送される。
【0320】001のコーディングは、周辺デバイス転
送モードを可能にする。周辺デバイスモードはメモリコ
ントローラとして転送コントローラ80を使用するマル
チプロセッサ集積回路100の外部のメモリを、他のデ
バイスが読み出したり書き込んだりするのを可能にす
る。デバイスのメモリの読み出しはソースをプログラム
することによって達成され、デバイスのメモリへの書き
込みは宛て先をプログラムすることによって達成され
る。いずれの場合にせよ、転送コントローラ80は通常
は転送パラメータに従って発生されたアドレスによりメ
モリアドレスおよび制御ラインをドライブするが、周辺
デバイスがデータを読み出したりドライブしたりできる
ように、データバスをハイインピーダンスモードとす
る。周辺デバイスモードは値でフィルする転送を除き、
任意の形態のソースまたは宛て先転送と共に使用でき
る。
【0321】010のコーディングはパケット転送がV
RAMブロック書き込みを使用できるようにする。これ
により、転送コントローラ80はVRAMカラーレジス
タにロードし、VRAMブロック書き込みモードを使っ
て外部メモリへの宛て先書き込みを実行する。このモー
ドでは、VRAMカラーレジスタデータがVRAM内の
どの位置に書き込まれるかを指定する、ブロック書き込
みアドレスマスクビットをソースデータが表示する。こ
れらビットは通常のアドレス指定を用いてソースからフ
ェッチされ、その後、ブロック書き込みモードを用いて
宛て先VRAMに書き込まれる。VRAMカラーレジス
タにロードされる値は、パケット転送パラメータのカラ
ーレジスタ値として指定される。
【0322】ブロック書き込みオペレーションはオフチ
ップの宛て先だけにサポートされている。オンチップ宛
て先アドレスへのブロック書き込みの試みは、エラー条
件によりパケット転送を一時中断させる。
【0323】011のコーディングはシリアルレジスタ
転送モードを可能にする。一般に、VRAMのバルク初
期化を行うために、シリアルレジスタ転送モードが使用
される。VRAMの行をVRAMシリアルシフトレジス
タにコピーするのに、ソースアドレスが使用される。次
にシフトレジスタを多数のVRAMメモリの行にコピー
するのに、宛て先アドレスが使用される。通常のオペレ
ーションはソースへのカウントに1バイトをロードし、
宛て先に1のAカウントおよびn−1(ここでnは書き
込みを行う行の数)のBカウントをロードすることであ
る。このモードでは、データバスまたはクロスバー50
上でのデータ転送は行われず、VRAMによりすべての
データ転送が行われることに留意されたい。すべてのソ
ースアクセスおよび宛て先アクセスは非ページモードと
なる。シリアルレジスタ転送オペレーションは、オフチ
ップのソースおよび宛て先だけにサポートされている。
【0324】1XXフォームのコーディングはトランス
ペアレンシーを可能にする。通常、ソースおよび宛て先
の次元の定められた転送またはガイド転送が実行され
る。しかしながら宛て先データを書き込む前に、このデ
ータはパケット転送パラメータ内に示されたトランスペ
アレンシー値を比較される。このトランスペアレンシー
の比較は、トランスペアレンシーおよびバイト書き込み
回路353で行われる。パケットアクセスモードの2つ
の最小位のビットはトランスペアレンシーデータのサイ
ズを表示する。従って、1回の64ビットの比較、2回
の32ビットの比較、4回の16ビットの比較または8
回の8ビットの比較がなされる。比較のいずれかが真で
あれば、トランスペアレンシーおよびバイト書き込み回
路353は。宛て先バイトが書き込まれないように対応
するバイトストローブをディスエーブルする。オンチッ
プソースまたは宛て先アドレスによるトランスペアレン
シーの試みにより、パケット転送はエラー条件で一時中
断される。
【0325】パケット転送オプションフィールドのビッ
ト19は、交換用ソースおよび宛て先パラメータビット
である。ビット19のセットにより、ソースおよび宛て
先パラメータをマニュアルでスワップすることなく、パ
ケット転送方向を反転できる。これは元の位置にデータ
を戻す際に有効である。交換用ビットがセットされる
と、転送コントローラ80はパケット転送パラメータを
ロードする際に、すべてのソースおよび宛て先値の開始
アドレス、ピッチ、カウント、ガイドテーブルポインタ
およびフィル値のすべてをスワップする。表20は、こ
のビットがセットされる場合の32ビットのスワップを
示す。PTはパケット転送パラメータテーブルの次のエ
ントリーアドレスのアドレスを表示する。
【0326】
【表20】
【0327】PTにおける次のエントリーアドレスデー
タおよびPT+04におけるパケット転送オプションフ
ィールドは、これらの値がソースまたは宛て先に関連し
ていないので、それらの先の位置に止まることに留意さ
れたい。更にトランスペアレンシーデータまたはカラー
レジスタデータを記憶するPT+48およびPT+52
は、スワップされないことにも留意されたい。これによ
り、64ビットのトランスペアレンシーまたはカラーレ
ジスタパラメータはその値を維持できる。転送コントロ
ーラ80はソースおよび宛て先に関連したパラメータワ
ードのスワップのほかに、パケット転送オプションフィ
ールド内でソースおよび宛て先に関連したビットもスワ
ップする。これについては表21に示されている。
【0328】
【表21】
【0329】スワップのいずれかの結果、機能がサポー
トされなくなると、パケット転送はエラー条件により一
時中断する。パケット転送パラメータがロードされると
きはいつも、ソースパラメータと宛て先パラメータとの
交換が実行される。パケット転送が一時中断されている
場合、そのときのパラメータはリクエスト中のプロセッ
サのパラメータメモリにセーブされる前に、元の位置へ
スワップし戻される。一時中断されたパケット転送がレ
ストアされる場合、パラメータは転送コントローラ80
によりロードされる際に再びスワップされる。
【0330】パケット転送オプションフィールド内で更
新モードのうちの一つが指定される場合、パケット転送
の完了時に通常のオペレーションが行われる。例えばソ
ース更新オペレーションが選択される場合、元のパケッ
ト転送パラメータ内ソース開始アドレスは、パケット転
送中に宛て先開始アドレスとして実際に使用されても更
新されることになる。同様に、更新モードとしてトグル
反転ソースCアドレス指定ビットを指定すると、元のパ
ケット転送オプションフィールドのビット22がトグリ
ングされ、これにより実際にパケット転送が再送信され
た場合、宛て先Cのアドレス指定が反転される。
【0331】上記例が示すようにXビットを使用する際
には注意が必要である。例えば次元の定められた宛て先
パケット転送に対する値で満たされたソースのために指
定する場合、値によるフィルオペレーションは宛て先オ
ペレーションとして指定できないので、パケット転送は
エラーにより一時中断される。エラーが発生しない場合
でも、宛て先開始アドレスおよびカウントには、一般に
プログラムされないソース値がロードされる。同様に、
フィル値のワードには宛て先ピッチがロードされる。こ
の結果、極めて無意味なパケット転送となる。
【0332】パケット転送オプションのビット21は反
転ソースBアドレス指定ビットである。このビットを1
にセットすると、ソースの第2の次元が後方にアドレス
指定される。加算よりもむしろ先のライン開始アドレス
からBピッチが減算される。このビットが0であれば、
通常はパケット転送ソースアドレス指定が行われる。
【0333】パケット転送オプションフィールドのビッ
ト22は、反転ソースCアドレス指定ビットである。こ
のビットを1にセットすると、ソースの第3次元が後方
にアドレス指定される。加算よりもむしろ先のパッチ開
始アドレスからCピッチが減算される。このビットが0
であれば、通常はパケット転送ソースアドレス指定が行
われる。このビットはガイド転送に対しては意味がな
く、ガイドテーブルを介してCのアドレス指定を特定す
る。
【0334】パケットテーブルオプションフィールドの
ビット23は、反転ソースAアドレス指定ビットであ
る。このビットを1にセットすると、ソースおよび宛て
先の第1次元は後方にアドレス指定される。ダブルワー
ドアドレスはインクリメントされる代わりにデクリメン
トされる。このことは、Bピッチが加算(または減算)
される値は、第1の次元における最も大きなアドレスで
あることを意味している。ダブルワード内でのバイトに
よるアドレス指定は反転されず単なるダブルワードのア
ドレス指定であることに留意されたい。
【0335】パケットテーブルオプションフィールドの
ビット24は、反転宛て先Bの宛て先指定ビットであ
る。このビットを1にセットすると、宛て先の第2の次
元が後方にアドレス指定される。Bピッチは加算される
よりもむしろ先のライン開始アドレスから減算される。
このビットが0であれば、通常はパケット転送ソースア
ドレス指定が行われる。
【0336】ビット25は反転宛て先Cのアドレス指定
ビットである。このビットを1にセットすると、宛て先
の第3の次元が後方にアドレス指定される。Cピッチは
加算されるよりもむしろ先のパッチ開始アドレスから減
算される。このビットが0であれば、通常はパケット転
送ソースアドレス指定が行われる。このビットはガイド
転送に対しては意味がなく、ガイドテーブルを介してC
アドレス指定を特定する。
【0337】パケットテーブルオプションフィールドの
ビット28は、ビットを終了した際のインタラプトであ
る。このビットを1にセットすると、リンクされたリス
ト上のこのエントリーを終了した後にすぐに、パケット
転送を開始しているプロセッサに通常のインタラプトが
送られる。リンクされたリストは更にエントリーを含む
ことができる。これによりリンクされたリスト内の特定
のポイントに達したときに、リクエスト中のプロセッサ
にフラグを立てることができる。このビットが0であれ
ば、リンクされたリスト内の対応するパケットエントリ
ーが終了した際には、プロセッサにはインタラプトは送
られない。従って、このビットセットを有するエントリ
ーが生じて完了するか、またはリンクされたリストの終
わりにあるパケット転送が完了するかのいずれかまで
に、インタラプトが発生されることはない。しかしなが
らエラーがある時間に生じた場合、転送コントローラ8
0はリクエスト中のプロセッサに即座にエラーインタラ
プトを送る。
【0338】パケット転送オプションフィールドのビッ
ト30〜29は、パケット転送ステータスフィールドを
形成する。パケット転送ステータスフィールドはパケッ
ト転送リクエストのステートを表している。プロセッサ
がリクエストを送る際には、これらビットは常に00と
セットされていなければならない。リンクされたリスト
内のパケット転送が一時中断状態の場合、転送コントロ
ーラ80は、これが中断中のパケットパラメータエリア
にセーブしているパケット転送オプションフィールド内
の適当なパケット転送ステータスビットをセットする。
中断されたパケット転送がフレッシュなパケット転送よ
りも多くのパケットを含んでおり、従って異なる態様で
セーブされ、レストアされるので、このような操作が必
要である。転送コントローラ80がパケット転送パラメ
ータをロード中に、これらビットのいずれかが1とみな
されると、転送コントローラはパケット転送を一時中断
し、よって余分なパラメータのすべてをレストアする。
このフィールドは、表22にリストされているようにコ
ード化される。
【0339】
【表22】
【0340】次の条件のうちの1つが生じたためにパケ
ット転送が一時中断されると、転送コントローラ80は
これらビットに01を書き込む。すなわち転送コントロ
ーラ80により、より高い優先度のパケット転送リクエ
ストが受信される場合、パケット転送が多くタイムアウ
トしてしまった場合、パケット転送をリクエストしたプ
ロセッサがパケット転送の一時中断を求めた場合、また
はエラー条件が生じた場合、ビット30は実際にフォー
ルトが生じたことによりパケット転送を一時中断したこ
とを表示する。ビット29は、フォールトがソースにあ
るのか宛て先にあるのかを表示する。フォールト条件を
解決するため、この情報はマスタプロセッサ60が必要
とする。このことは、フォールトの生じたパケット転送
のパラメータを再ロードする際の転送コントローラ80
には関係がない。その理由は、一時中断プロセスとレス
トアプロセスとはすべてのタイプの一時中断パケット転
送に対して同じであるからである。
【0341】交換用ソースおよび宛て先パラメータビッ
ト(ビット19)が中断されたパケット転送オプション
フィールド内で1であれば、フォールトの生じたパケッ
ト転送に対するビット29の意味は反転する。従って1
0が宛て先上でのフォールトを示し、11がソース上で
のフォールトを示す。従ってマスタプロセッサ60のソ
フトウェアはフォールトの生じたアドレス一を決定する
際に、ビット29と19の双方を検査しなければならな
い。
【0342】転送コントローラ80はパケット転送中に
フォールトが生じた場合に数種の措置をとる。転送コン
トローラ80は、ビット29と30を適当にセットし、
この適当なビットをFLTSTSレジスタ内にセットす
る。転送コントローラ80がマスタプロセッサ60にフ
ォールトインタラプトを発生する。デジタル画像/グラ
フィックプロセッサ71、72、73または74のうち
の一つがパケット転送を発生する場合、このプロセッサ
はフォールトが生じていることについて認識していな
い。マスタプロセッサ60は、このフォールト条件をク
リアし、FLTSTSレジスタ内のフォールトフラグを
クリアしなければならない。FLTSTSレジスタ内の
対応するフォールトフラグをクリアする際に転送コント
ローラ80はパケット転送を自動的に再送信する。
【0343】パケット転送オプションフィールドのビッ
ト31はストップビットである。このビットはリンクさ
れたリストの終了部をマークするのに使用されている。
このビットが1であるパケット転送に会うと、パケット
転送は完了され、リンクされたリストが終了される。終
了前にリクエスト中のプロセッサのパラメータメモリ内
のリンクされたリストの開始アドレス位置に、次のエン
トリーアドレスフィールドがコピーされる。従ってリン
クされたリストが再イネーブル化されると、リンクされ
たリスト内の次のエントリーで実行が開始する。これに
より、ピンポンオペレーションのような繰り返しオペレ
ーションに特に有効な円形状のリンクされたリストが形
成できる。ストップビットは所望の位置でリンクされた
リストをブレークするのにも使用できる。
【0344】転送コントローラ80がパラメータテーブ
ルからのパケット転送パラメータを一旦読み出すと、デ
ータの転送を開始する準備が完了する。これを行うた
め、転送コントローラ80はクロスバーアクセスまたは
外部メモリアクセスのいずれかまたは双方を発生しなけ
ればならない。ソースから宛て先へのデータの基本的フ
ローには4つの可能性がある。すなわちオンチップから
オンチップへ、オンチップからオフチップへ、オフチッ
プからオンチップへ、更にオフチップからオフチップへ
のフローがある。最初の3つは通常取り扱われている
が、最後のケースは特別なケースである。
【0345】ソースマシン320は、正常なパケットデ
ータ転送フロー中に、転送パラメータに基づきソースア
ドレスを発生し、これを用いて適当なオンチップまたは
オフチップメモリからデータをフェッチする。クロスバ
ーまたは外部メモリバスからデータが受け取られると、
必要なバイトは抽出され、ソース整列ロジック332に
よって整列され、次にパケット適当なFIFOバッファ
312に入れられる。これと同時に宛て先マシン340
は宛て先メモリのためのアドレスも発生する。パケット
転送FIFOバッファ311が一旦次の宛て先メモリア
クセスに必要なバイト数を含むと、宛て先マシン340
は必要なクロスバーまたは外部メモリサイクルを発生す
る。
【0346】パケット転送FIFOバッファ311は、
データフローを制御し、ソースマシン320と宛て先マ
シン340との同期を維持するように働く。あるとき
に、パケット転送FIFOバッファ311が次の宛て先
アクセスのための十分なソースバイトを含んでいない場
合、データが利用可能となるまで宛て先マシン340は
停止する。これと同じように、パケット転送FIFOバ
ッファ311がフル状態となれば、宛て先マシン340
が次のソースアクセスを完了させるのに十分なバイトを
引き出すまで停止する。これにより、ソース転送が宛て
先転送をオーバーランさせることが防止される。特殊な
パケット転送アクセスモードに対しては、このデータフ
ローは多少変えることができる。
【0347】クロスバー50と外部メモリインターフェ
ースは独立しているので、ソース転送は外部バス上で行
われ、クロスバー上で宛て先転送を行うことができ、ま
た、パラレル状態で外部バス上で宛て先転送を行い、ク
ロスバー上でソース転送を行うこともできる。オンチッ
プからオンチップへの転送に対してはソースと宛て先と
は必要に応じてクロスバーインターフェースを共用し、
サイクルをインターリーブすることになる。
【0348】キャッシュサービスリクエスト、ダイレク
ト外部アクセスリクエスト、フレームコントローラ90
のリクエスト、緊急リフレッシュおよびホストリクエス
トは、パケット転送を一時中断させることはない。これ
らリクエストがパケット転送よりも優先度が高い場合に
のみ、ソースマシン320および宛て先マシン340の
一方または双方を停止できる。フレームコントローラ9
0および緊急リフレッシュサイクルは、外部メモリイン
ターフェースだけを使用する。従ってパケット転送クロ
スバーアクセスは続いて行うことができる。ソースマシ
ン320または宛て先マシン340のいずれかが、外部
メモリインターフェースを使用している場合、パケット
転送FIFOバッファ311は、最終的にフル状態また
は空状態となる。従ってクロスバーを用いるコントロー
ラは外部メモリインターフェースが再び利用できるまで
停止していなければならない。オンチップからオンチッ
プへの転送である場合、ソースマシン320および宛て
先マシン340の双方は、障害を受けない状態を続ける
ことができる。キャッシュおよびダイレクト外部アクセ
スサービスは、クロスバーと外部インターフェースの双
方を使用するので、これらは一般に、必要とするサイク
ル数の間でパケット転送を停止する。
【0349】オンチップソースからオフチップの宛て先
へのパケット転送は、他の3つのパケット転送の例と異
なって取り扱われる。DRAMまたはVRAM上でペー
ジモードの利点を活用するため、転送コントローラ80
はオフチップソースからオンチップへの列アクセスのペ
ージモードバーストを実行し、次にオンチップからオフ
チップの宛て先への別のページモードバーストを実行す
る。これを行うにはオンチップバッファを使用しなけれ
ばならない。各プロセッサは図15に示すように、この
目的のために保留された対応するパラメータメモリ内の
128バイトのエリアを有する。図15に示すように、
マスタプロセッサ60によってリクエストされるオフチ
ップからオフチップへのパケット転送は、アドレスの1
6進数01010100から16進数0101017F
を使用する。デジタル画像/グラフィックプロセッサ7
1、72、73、74のうちの一つによってリクエスト
されるオフチップからオフチップへのパケット転送が、
アドレスの16進数0100#100から16進数01
00#17F(ここで#は表3にリストされているよう
なデジタル画像/グラフィックプロセッサの番号に対応
する)を利用する。このパラメータメモリバッファの内
外へのデータの転送は、転送コントローラ80のハード
ウェアにより処理され、ユーザーに対しトランスペアレ
ントである。
【0350】パケット転送パラメータの組み合わせは、
完了するのに極めて長い時間を必要とする、極めて大き
な転送の指定を可能とする。更により高い優先度のパケ
ット転送リクエストが、パケット転送をインタラプトし
続け、パラメータのロードに長い時間がかかるの防止す
る。このような状況のいずれかの発生を防止するため、
転送コントローラ80は図31に示されている2つの2
4ビットレジスタのパケット転送最小レジスタPTMI
N511とパケット転送最大レジスタPTMAX512
を含むタイマーを有する。これらレジスタはパケット転
送の最小長さと最大長さとを指定する。パケット転送カ
ウンタPTCOUNT513は、パケット転送を実行す
るクロックサイクル数を表示する。
【0351】パケット転送最小レジスタPTMIN51
1は、より高い優先度のパケット転送リクエストによっ
て中断できる前に、パケット転送が実行しなければなら
ないクロックサイクルの最小数を示す。パラメータがロ
ードされた後にパケット転送が開始すると、タイマーシ
ーケンサ515はパケット転送最小レジスタPTMIN
511に記憶されていた値を、パケット転送カウンタP
TCOUNT513にロードする。パケット転送カウン
タPTCOUNT513は、パケット転送が転送コント
ローラ80によってアクティブにサービスされるクロッ
クサイクルごとに、1だけデクリメントする。パケット
転送カウンタPTCOUNT513は、パケット転送中
に生じ得るキャッシュサービスサイクル、フレームコン
トローラ90サイクル、ホストサイクルまたはリフレッ
シュサイクル中にはデクリメントしないが、アクティブ
なパケット転送サービス中に生じる再試行または待機ス
テート中にデクリメントする。しかしながら、クロスバ
ーのパケット転送アクセスがまだ行われている場合、外
部バス上でのフレームコントローラ90、ホストまたは
リフレッシュ活動中にデクリメントされる。パケット転
送はPTCOUNTが0に達したことを0検出器514
がタイマーシーケンサ515に信号を送るまで、優先度
の高いパケット転送リクエストによってインターラプト
することはできない。またパケット転送はエラーまたは
フォールト条件によって一時中断することもできる。パ
ケット転送最小レジスタPTMIN511には、リセッ
ト時に16進数10000(65,536サイクル)が
ロードされる。
【0352】パケット転送最小レジスタPTMIN51
1の重要な用途は、すでに中断したパケット転送のパラ
メータを別のメモリエリアに転送するための停止不能な
パケット転送を行うことである。別の一時中断によりデ
ータを転送するパラメータメモリエリアにオーバーライ
トされるので、パケット転送最小レジスタPTMIN5
11はパケット転送を完了できるように保証するために
使用される。かかる転送はフォールト状態にならないこ
とが重要である。その理由は、この状態になるとパラメ
ータメモリエリアもオーバーライトされるからである。
このような特徴により、最小時間前により高い優先度の
メモリアクセスがパケット転送をアボートすることが防
止され、従って最小の数のデータ転送が行われる。
【0353】パケット転送最大レジスタPTMAX51
2は、1つのパケット転送によるデータの転送の独占を
防止するのに使用される。PTMIN時間が経過し、パ
ケット転送カウンタPTCOUNT513が0検出器5
14に検出されるように、0にデクリメントされると、
タイマーシーケンサ515はパケット転送最大レジスタ
PTMAX512内に記憶されていた値をパケット転送
カウンタPTCOUNT513にロードする。これによ
り、タイムアウトするまでに転送を進めることができる
残りの時間が決まる。従ってインタラプトされないパケ
ット転送のための最大期間は、PTMIN+PTMAX
クロックサイクルとなる。パケット転送カウンタPTC
OUNT513は、リフレッシュのような非パケット転
送サイクルを除く、パケット転送が連続的にアクティブ
となるサイクルごとにデクリメントされる。パケット転
送完了前にパケット転送カウンタPTCOUNT513
内の値が0に達したことを、0検出器514が検出する
と、パケット転送はタイムアウトしたものと見なされ
る。タイマーシーケンサ515は、パケット転送を一時
中断し、転送コントローラ80はラウンドロビン状に同
じ優先度の次のリクエストに移る。同じ優先度の他のリ
クエストがペンディング中となっていなければ、このよ
うな同じ優先度のリクエストまたは優先度のより高いリ
クエストが生じるまで、または転送が完了するまで、0
のPTCOUNTと共に転送を続行できる。パケット転
送最小レジスタPTMIN511内に指定されたサイク
ル数が経過した後に、優先度のより高いパケット転送リ
クエストが受信されると、PTMAXに達したか否かに
係わらず、アクティブなパケット転送が一時中断され
る。パケット転送最大レジスタPTMAX512にはリ
セットで16進数10000(65,536サイクル)
がロードされる。
【0354】パケット転送が一時中断状態となると、リ
ンクされたリスト全体も一時中断される。ラウンドロビ
ントークンはリンクされたリスト内の次のパケット転送
でなくて、ペンディング中のリクエストと共に次のプロ
セッサに進む。パケット転送がタイムアウトすると、一
時中断された転送のステートはリクエスト中のプロセッ
サのパラメータメモリにセーブされる。ラウンドロビン
の優先度がそのプロセッサに戻されると、転送コントロ
ーラ80は連続のためのこのリクエストを自動的に再送
信する。一時中断されたパケット転送が再開されるとき
はいつも、フル状態のPTMINおよびPTMAX値が
有効となる。
【0355】好ましい実施例では、パケット転送最小レ
ジスタPTMIN511およびパケット転送最大レジス
タPTMAX512は、24ビットしか含まない。従っ
てタイムアウトすることなく、パケット転送サービスが
続くことのできる最大時間は50MHzの目標作動周波
数で約0.67秒である。
【0356】パケット転送用のリンクされたリストは、
次のように転送コントローラ80によって管理される。
緊急優先度を除くパケット転送中にリフレッシュ、フレ
ームコントローラ90、ホストインターフェースまたは
キャッシュサービスリクエストが受信される場合、パケ
ット転送パラメータのステートは転送コントローラ80
の内部レジスタに保持され、必要であればソースおよび
/または宛て先転送が停止される。優先度のより高いリ
クエストのサービスが完了すると、パケット転送が開始
される。
【0357】優先度のより高いパケット転送リクエス
ト、タイムアウト、リクエスト中のプロセッサからの一
時中断リクエスト、フォールトまたはエラーによってパ
ケット転送がインタラプトされると、パケット転送が一
時中断される。リクエスト中のプロセッサのパラメータ
メモリ内のリンクされたリストの開始アドレスが、セー
ブされたパケット転送パラメータをポイントするように
変更される。このインタラプトが優先度のより高いパケ
ット転送によるものである場合、ラウンドロビントーク
ンはインタラプトされたパケット転送と共に留まるの
で、優先度のより低いリクエストが再開されると、その
サービスが再開される。パケット転送パラメータのロー
ディング中に優先度のより高いリクエストが生じると、
ローディングが停止される。一時中断は行われない。優
先度のより高いパケット転送が完了すると、元のパラメ
ータリストからパケット転送パラメータがロードされ
る。パケット転送がタイムアウト、フォールト、エラー
または一時中断リクエストにより一時中断されている場
合、優先度決定チェーンの終了部にインタラプトされた
パケット転送を送るように、ラウンドロビントークンが
進められる。
【0358】パケット転送が完了し、パケット転送オプ
ションフィールドのインタラプトビットが1となると、
転送コントローラ80はリクエスト中のプロセッサにパ
ケットの終了部のインタラプト信号を発生する。リンク
されたリスト内に1のパケット転送オプションフィール
ドの停止ビットを有する最終パケット転送が完了する
と、転送コントローラ80がリクエスト中のプロセッサ
にパケットの終了部インタラプト信号を発生する。パケ
ット転送が完了すると、パケット転送のパケット転送オ
プションフィールドストップビットがセットされていて
も、リクエスト中のプロセッサのパラメータメモリ内の
リンクされたリストの開始アドレス位置に、パケット転
送パラメータからの次のアドレスフィールドが書き込ま
れる。
【0359】パケット転送パラメータがロードされる
と、転送コントローラ80はパケット転送オプションフ
ィールドのパケット転送ステータスビットをチェックす
る。パケット転送が一時中断されたことをこれらビット
が表示する場合、一時中断された転送を付加的ステート
情報がロードされる。これらについては後に更に説明す
る。
【0360】パケット転送がエラー状態を経験すると、
転送コントローラ80は即座にデータの転送を停止し、
一時中断を実行する。転送コントローラ80はリクエス
ト中のプロセッサのPTERRORフラグをセットす
る。転送コントローラ80はリンクされたリストが終了
したことを表示するため、リクエスト中のプロセッサの
COMNレジスタ120のQビットもセットする。リク
エスト中のプロセッサは、セーブされたパラメータから
のエラーの原因を決定するようにプログラムすることが
できる。
【0361】パケット転送中に多数の条件のいずれかが
エラーを生じさせる。試みられたVRAMアクセスモー
ド、例えばオンチップメモリ内のソースまたは宛て先に
よるブロック書き込み宛て先転送またはシリアルレジス
タ転送がエラーを生じさせる。トランスペアレンシーを
利用して試みられるオンチップ宛て先アクセスもエラー
を生じさせる。値でフィルされた場合を除くソース転
送、シフトレジスタ転送または周辺デバイス転送の長さ
よりも、パケット転送リクエスト宛て先転送のバイトの
総数の長さが長くなると、エラーが生じる。ルックアッ
プテーブルの宛て先オペレーションを試みる際にエラー
が生じる。このようなエラーは、交換用ソースおよび宛
て先パラメータのオペレーションから生じる。リンクさ
れたリストの開始アドレスまたはリンクされたリストの
次のエントリーがアドレスのオフチップをポイントする
際にエラーが生じる。パケット転送パラメータテーブル
およびリンクされたリストの開始アドレスが64バイト
の境界に整列していないときにも、エラーが生じる。ソ
ースまたは宛て先ガイドテーブルポインタがオフチップ
メモリをポイントしたり、これらが正しく整列されてい
ないときに試みられるパケットリクエストの際にエラー
が生じる。実際のエラー状態を表示するようにステータ
スビットはセーブされず、このエラー状態は一時中断パ
ラメータのステートから推定しなければならない。
【0362】リンクされたリストの開始アドレスまたは
リンクされたリストのアドレスのオフチップの次のエン
トリー、整列状態のパケット転送パラメータテーブルま
たはオフチップメモリへのガイドテーブルポインタによ
って生じたエラーは、パケット転送パラメータをリクエ
スト中のプロセッサのパラメータメモリの一時中断エリ
アにセーブしない。これはデータを転送する前にパケッ
ト転送がアボートし、実際に開始することがないからで
ある。従って、エラーの原因を診断しようとすると、リ
ンクされたリストのアドレスの有効性をチェックして、
一時中断されたパラメータが有効であることを保証しな
ければならない。
【0363】転送コントローラ80は多くの条件下でパ
ケット転送を一時中断する。優先度のより高いパケット
転送リクエストを受けると、現在のパケット転送のため
にPTMINに指定されていたサイクル数がなくなる場
合に、パケット転送を一時中断する。転送コントローラ
80はサイクル数がPTMIN+PTMAXを越え、タ
イムアウトし、別のプロセッサからの同じ優先度のパケ
ット転送リクエストがペンディング中である場合、パケ
ット転送を一時中断する。転送コントローラ80がリク
エスト中のプロセッサがこのコントローラにCOMMレ
ジスタ120のSビットにより一時中断することを求め
る場合、パケット転送を一時中断する。ソースアドレス
指定または宛て先アドレス指定中にメモリフォールトが
生じる場合、転送コントローラ80はパケット転送を一
時中断する。エラー状態が検出される場合、転送コント
ローラ80はパケット転送を一時中断する。また、外部
メモリアクセス中に再試行が行われ、別のプロセッサか
らの同じ優先度のパケット転送リクエストが待機中であ
り、現在のパケット転送のためのPTMIN内に指定さ
れたサイクル数がなくなる場合、転送コントローラ80
はパケット転送を一時中断する。
【0364】これらケースの各々における一時中断機構
は同一である。転送コントローラ80は現在のパケット
転送パラメータおよび転送コントローラ80の内部ステ
ートをセーブする。この情報により、パケット転送を将
来続行できる。これらパラメータはリクエスト中のプロ
セッサのパラメータメモリの一時中断エリアにセーブさ
れる。図15に示すように、マスタプロセッサ60がパ
ケット転送をリクエストした場合、このエリアは16進
数01010000から16進数0101007Fとな
る。デジタル画像/グラフィックプロセッサ71、7
2、73、74の一つにリクエストされたパケット転送
のための一時中断されたパケットパラメータエリアは、
アドレスの16進数0101#000から16進数01
00#07F(ここで#は表3にリストしたようなデジ
タル画像/グラフィックプロセッサ番号に対応する)を
使用する。図32および33には、これらパラメータの
ためのフォーマットが示されている。図32における%
のマークのついたダブるワードは、現在のエンディアン
のためには調節されないことに留意されたい。
【0365】一時中断条件が生じ、ペンディング中の外
部メモリ行アクセスが完了した直後に、一時中断が開始
する。リクエスト中のプロセッサのパラメータメモリ上
の外部間バッファは空ではないが、パケット転送FIF
Oバッファ311の現在ステートがセーブされる。この
方法により、原因にかかわらず、パケット転送は一貫し
て中断できる。パケット転送FIFOバッファ311の
空状態は生じないので、この一時中断は高速となるよう
にも保証されている。従ってパケット転送FIFOバッ
ファ311を空にするのに潜在的に低速のパケット転送
を待つことなく、緊急優先度のパケット転送リクエスト
を急速にサービスできる。
【0366】パラメータメモリが一時中断の原因となっ
ている場合、より高い優先度の転送コントローラ80の
クロスバーの優先レベルで実行される。従って一時中断
が完了するまでデジタル画像/グラフィックプロセッサ
71、72、73、74またはマスタプロセッサ60は
一時的な競合を経験することがある。一時中断がタイム
アウト、フォールト、エラーまたはリクエスト中のプロ
セッサからの一時中断リクエストによるものであるとき
は、パケット転送の元の転送コントローラ80のクロス
バーの優先度で、この一時中断が実行される。
【0367】新しいアドレスをポイントするように、リ
ンクされたリストの開始アドレスポインタが変えられる
ことを条件に、一時中断されたパケット転送パラメータ
を他の場所でコピーし、その新しい位置から再送信する
ことができる。パケット転送オプションフィールドのパ
ケット転送ステータスビットは、パケット転送が一時中
断されたことを表示するので、一時中断されたパラメー
タの全組は、その位置がどこであれ、再送信時にロード
される。一時中断されたパラメータの新しい開始アドレ
スは、偶数の128バイトの境界上で整列していなけれ
ばならず、従って7つの最小位アドレスビットは、再送
信すべき一時中断されているパケット転送に対し000
0000とならなければならない。
【0368】パケット転送一時中断エリアにセーブされ
た最初の8つの64ビットダブルワードは、通常のパケ
ット転送パラメータを示す。これらは、少数の例外を除
き、ユーザーによってプログラムされたパラメータと同
じである。最初の32ビットワードは、リンクされたリ
スト上の次のエントリーのアドレスでなく、一時中断さ
れたパケット転送の元のエントリーアドレスを含む。C
カウントフィールドは、次元の定められた転送のための
現在のCカウントを含む。ガイド転送に対し、Cカウン
トフィールドはガイドカウントとガイドテーブルポイン
タフィールドを含み、ガイドテーブルポインタフィール
ドはガイドテーブルポインタの現在位置を含む。更にパ
ケット転送オプションフィールドはパラメータが一時中
断されたパケット転送を表示することを示すように変え
られた、そのパケット転送ステータスフィールドを有す
る。
【0369】一時中断エリアは通常のユーザーがプログ
ラムしたパケット転送パラメータの他に8個の保留され
た内部ステートのダブルワードも含む。これらワードは
一時中断されたパケット転送が再スタートされる際に自
動的にロードされるフィールドである。これらは一時中
断した際のパケット転送の次元内ステートに関する情報
を含む。これらの値は、これらが再送信される際に残さ
れる場所で正確に一時中断されたパケット転送を正しく
開始できるようにセーブされる。16進数040で終了
するアドレスにおけるデータワードは、現在のソースA
およびBのカウントを記憶する。これらはソースマシン
320のACURRENTおよびBCURRENTから
の16ビットの値である。Bのカウントはビット31〜
16に記憶され、Aのカウントはビット15〜0に記憶
される。16進数044で終了するアドレスにおけるデ
ータワードは、現在の宛て先AおよびBのカウントを記
憶する。これらは宛て先マシン340のAカウントおよ
びBカウントレジスタからの16ビットの値である。B
のカウントはビット31〜16に記憶され、Aのカウン
トはビット15〜0に記憶される。16進数048で終
了するアドレスにおけるデータワードは、現在のソース
A開始アドレスまたは現在のガイドテーブルアドレスで
ある。一時中断されたパケットサービスパラメータ内の
対応するPビットは、どのデータがここに記憶されたか
を表示する。元のBのカウントが0に達するまでガイド
テーブルのフェッチは行われないので、ガイドパケット
転送でもここにソースAの開始アドレスを記憶できるこ
とに留意されたい。16進数04Cで終了するアドレス
におけるデータワードは、現在の宛て先Aの開始アドレ
スまたは現在のガイドテーブルフェッチ値であり、その
識別は一時中断されたパケットサービスパラメータの対
応するPビットによって決定される。16進数050お
よび056で終了するアドレスにおけるデータワード
は、現在の宛て先Bの開始アドレスまたは対応するガイ
ドテーブルフェッチ値である。
【0370】16進数058で終了するアドレスで開始
する16ビットのダブルワードは、一時中断されたパケ
ットサービスパラメータを記憶する。一時中断されたパ
ケットサービスパラメータのフォーマットは図32およ
び33に示されている。上部データワードのビット31
〜30はPビットである。ビット31における1は、ガ
イドテーブルからフェッチされたソースマシン320の
ASTARTレジスタおよびBSTARTレジスタの値
を記憶する。これと異なり、これらレジスタは次元の定
められた転送からの値を記憶する。同様にビット30に
おける1は、一時中断されたパケット転送パラメータが
ガイドテーブルからフェッチされたソースマシン320
のASTARTレジスタおよびBSTARTレジスタ値
を記憶し、0はこれら値が次元の定められた転送からの
ものであることを表示する。これらビットは一時中断さ
れたパケット転送がガイドソースまたは宛て先アドレス
指定を含んでいたことを、パケット転送オプションフィ
ールドが表示している場合に意味があるにすぎない。こ
れとは異なり、データは次元の定められた転送からのも
のであると見なされる。
【0371】Eビット(上方データワードのビット2
9)は、一時中断されたパケット転送がオフチップから
オフチップへのパケット転送であることを表示する。か
かるオフチップからオフチップへのパケット転送は、リ
クエスト中のプロセッサのパラメータメモリ内のバッフ
ァを利用する。このEビットが1であれば、一時中断さ
れたパケット転送はオフチップからオフチップへのパケ
ット転送である。このEビットが0であれば、一時中断
されたパケット転送は他の3つのタイプのうちの一つで
あり、リクエスト中のプロセッサのパラメータメモリは
外部から外部へのバッファ化されたデータを記憶しな
い。
【0372】Sビット(上部データワードのビット2
8)は、パラメータメモリの外部間バッファがソースマ
シン320によってアクセスされているか、宛て先マシ
ン340でアクセスされているかどうかを表示する。E
ビットが1であって、リクエスト中のプロセッサのパラ
メータメモリ内の外部間でバッファ化されたデータの記
憶を表示している場合にかぎり意味がある。Sビットが
1である場合、ソースマシン320はパケット転送が一
時中断されているときに、外部間バッファにアクセス中
である。Sビットが0であれば宛て先コントローラは外
部間バッファにアクセス中である。
【0373】上部データワードのビット20〜16は、
BUFPTRレジスタ414の値を記憶する。BUFP
TRレジスタ414は、パラメータメモリの外部間バッ
ファへのポインタである。このポインタを記憶すると、
パラメータメモリの外部間バッファのステータスをリカ
バーすることにより、外部間パケット転送の再使用が可
能となる。当然ながらこのフィールドは、一時中断パケ
ット転送が外部間パケット転送である場合にのみ意味が
ある。
【0374】上部データワードのビット14〜8は、B
UFCOUNTレジスタ441の値を記憶する。このB
UFCOUNTレジスタ441の値は、Sビットのステ
ータスに基づいて解釈される。Sビットが1であって、
パラメータメモリの外部間バッファのソースアドレス指
定が一時中断していることが表示されると、BUFCO
UNTレジスタ441はバッファ内に残っているバイト
数を表示する。Sビットが0であり、パラメータメモリ
の外部間アドレスの宛て先アクセスの一時中断を表示し
ている場合、BUFCOUNTレジスタ441はバッフ
ァ内に記憶されたバイト数を表示する。このフィールド
は一時中断された外部間パケット転送にしか意味がな
い。上部データワードのビット3〜0は、FCOUNT
である。これはパケット転送FIFOバッファ311に
このとき保持されているデータのバイト数である。
【0375】一時中断されたパケットサービスパラメー
タの下部データワードは、2つのFIFOポインタを保
持する。下部データワードのビット11〜8は、FDP
TRすなわち宛て先ポインタを記憶する。下部データワ
ードのビット3〜0は、FSPTRすなわちソースポイ
ンタを記憶する。これらポインタは、一時中断点におけ
る一時中断パケット転送の再開を可能にする。
【0376】16進数060で終了するアドレスで開始
する4つのデータワードは、パケット転送FIFOバッ
ファ311の内容を記憶している。パケット転送FIF
Oバッファ311を空にするかわりに、このデータを記
憶することにより、より高い優先度のパケット転送を早
期にスタートできる。将来、より大きなバッファを使用
する場合に、このような大きなパケット転送用FIFO
バッファ311の内容の記憶をサポートするために、1
6進数070で終了するアドレスで開始する4つのデー
タワードが保留されていることに留意されたい。
【0377】転送コントローラ80は、多数の標準的で
ないパケット転送アクセスモードをサポートする。これ
らにはブロックライト、シリアルレジスタ転送、トラン
スペアレンシーおよび周辺デバイス転送が含まれる。こ
れら非標準的パケット転送アクセスモードは、パケット
転送パラメータのパケット転送オプションフィールドに
よりイネーブルされる。
【0378】パケット転送パラメータのパケットアクセ
スモードが010に等しいとき、このモードはブロック
書き込みパケットアクセスモードを可能にする。転送コ
ントローラ80は3つの異なるブロック書き込み機構、
すなわち8x、3xおよびシミュレート機構をサポート
する。システムハードウェアは、ブロックの書き込みが
開始する時間にブロック書き込み機構を決定する。これ
によりソフトウェアはシステムが使用するブロック書き
込みのタイプがどのタイプであるかとは無関係に、また
はこれをアドレス指定されたメモリがサポートするか否
かとは無関係に、ソフトウェアがブロック書き込みを利
用できるようにする。しかしながらブロック書き込みモ
ードの各々は、64ビットのバスサイズおよび8ビット
の値(1〜8)に対してしかサポートされていない。ブ
ロック書き込みのための宛て先スタートアドレスはオフ
チップであり、64ビットに整列していなければならな
い。すなわち最小位の6つのアドレスビットは0000
00でなければならない。
【0379】転送コントローラ80によって使用される
ブロック書き込みモードは、外部回路によりマルチプロ
セッサ集積回路100のBS〔1:0〕ピンに入力され
た値によって選択される。好ましい実施例では、ブロッ
ク書き込みは64ビットのデータバスに対してのみサポ
ートされているので、これらバスサイズ入力はブロック
書き込みおよび負荷カラーレジスタサイクル中にブロッ
ク書き込み選択として使用される。表23は、BS
〔1:0〕により選択されたブロック書き込みモードを
示す。
【0380】
【表23】
【0381】種々のVRAMサイズおよびアーキテクチ
ャのために、多数の異なるブロック書き込み方法があ
る。以下の表記法は、種々のブロック書き込み方法;す
なわちC×L×R(ここでCはカラーレジスタ当たりの
列位置の数、Lはビットによるカラーレジスタの長さ、
Rはカラーレジスタの数である)を示すのに使用されて
いる。たいていの1MビットのVRAMは、256Kビ
ット×7ビットデータアレイを有し、4×4×1のブロ
ック書き込みをサポートしている。これらは1つの4ビ
ットカラーレジスタを有し、各ブロック書き込みサイク
ルは、4メモリアレイ平面での4つの隣接する列位置へ
のカラーレジスタの書き込みを制御している。
【0382】8×(倍の)ブロック書き込みは、位置当
たり8ビットに、アクセス当たり8つの行位置を(すな
わち8×8×1または8×8×2)書き込みできるVR
AMと共に使用するようになっている。ソースデータの
各ビットは、データバスD〔63:0〕上の1ビットに
出力され、このサイクルでアクセスされる64個の列の
うちの1つに対する8ビットVRAMカラーレジスタの
書き込みをイネーブルしたりディスエーブルしたりす
る。各列は各VRAM内の8つのメモリアレイ平面の各
々における列位置を表示している。従って1回のアクセ
スで64までのバイトのカラーレジスタデータを書き込
みできる。
【0383】8×ブロック書き込みをサポートするビデ
オRAMは、ブロック書き込みサイクル中に最小位の3
つの列のアドレスを無視する。従って、データバスは6
4ビット(8バイト幅)であるので、ブロック書き込み
サイクルは常に64バイトの境界上で開始する。64バ
イトに整列されていない宛て先アドレスに対し、転送コ
ントローラ80はソースビットを整列し、書き込みされ
ていない64バイトのアクセス内の位置に対して喪失し
た0を発生する。次に転送コントローラ80は、ビット
がデータバス上のVRAMの各々内の適当な列位置をア
ドレス指定するように、ビットを再マップ化する。
【0384】図34は、小エンディアンモードにおける
8×ブロック書き込みのためのデータ再マップ化プロセ
スを示す。最初の8つのソースビットは宛て先のうちの
最初の8バイトを制御する。これらバイトは実際は、ア
クセスされている8個の8平面VRAMアレイの各々に
おける最小位の列位置である。最小位バイトはブロック
書き込み中にVRAMのD0入力(および16ビットV
RAMのためのD8入力)によって制御されるので、ソ
ースビット0〜7はデータバスのそれぞれのビット0、
8、16、24、32、40、48および56にマップ
化され、これらは、アクセスされたVRAMのD0入力
(16ビットデバイスのためのD0およびD8入力)を
表示する。ソースビットの残りは同様にマップ化され
る。転送コントローラ80は、大エンディアン8×ブロ
ック書き込みのための同様なマッピングを行う。大エン
ディアンモードではソース画像のうちの最小位ビットは
左側の最大ビットであり、最高位ビットは右側の最大ビ
ットである。マッピング機構は小エンディアンモードの
ために使用されているものと同じであるので、ソースビ
ット0〜7はそれぞれビット63、55、47、39、
31、23、15および7にマップ化されている。これ
らビットはVRAMアレイ内でアクセスされている最小
位列位置を表示する。これらバイトは、VRAMのD0
入力(16ビットデバイスのためのD0およびD8入
力)によって制御されているので、ブロック書き込みが
正しく作動できるように、逆の順にVRAMに接続しな
ければならない。
【0385】データは逆の順に書き込みされ、読み出さ
れるので、データバスを逆の順に接続しても通常の読み
出しおよび書き込みに影響しない。VRAMのシリアル
ポートの内外にシフトされるビットは、逆の順となるこ
とをユーザーは認識しなければならない。このようにす
るには、適当なオペレーションを保証するため、出力デ
バイスまたは入力デバイスを接続する際にシリアルデー
タバスの順を反転しなければならないことがある。
【0386】4×ブロック書き込みモードは、アクセス
当たり4列の位置、すなわち位置当たり4または8ビッ
トのいずれかで、4×4×1、4×4×4、4×8×
1、4×8×2を書き込みできるVRAMと共に使用す
るように設計されている。4×4のブロック書き込みの
場合、ソースデータの各ビットは、データバスD〔6
3:0〕上の2ビットに出力され、このサイクルでアク
セスされる64列のうちの2つに対する4ビットVRA
Mカラーレジスタのうちの2つの書き込みをイネーブル
またはディスエーブルする。各列はアレイのうちの4つ
の平面上の列位置を表示する。各カラーレジスタは4ビ
ット幅しかないので、8ビットのピクセルを表示するの
に2つのレジスタが必要である。従って各ソースビット
は8ビットの書き込みが生じるように、隣接するニブル
に書き込む2つのカラーレジスタを制御しなければなら
ない。これにより1回のアクセスでカラーレジスタデー
タのうちの32バイトまでを書き込みできる。
【0387】4×ブロック書き込みをサポートするVR
AMは、ブロック書き込みサイクル中に最小位の2つの
列アドレスを無視する。従ってブロック書き込みは常に
32バイト境界上で始まる。8×ブロック書き込みと同
じように、転送コントローラ80は32バイトブロック
内の宛て先開始アドレスのダブルワードによって指定さ
れたデータにソースデータを整列し、書き込まれていな
いダブルワードに対し、喪失した0を満たす。
【0388】図35は、小エンディアンモードにおける
4×ブロック書き込みのためのデータ再マップ化プロセ
スを示す。最初の8つのソースビットは宛て先の最初の
8つのバイトを制御する。しかしながら4×4ブロック
書き込みでは、各データ入力では4ビットしか書き込み
しないので、完全なバイトを書き込みするように2つの
データバスピンに各ソースビットをマップ化しなければ
ならない。従ってソースビット0〜7はビット0と4、
8と12、16と20、24と28、32と36、40
と44、48と52ならびに56と60にそれぞれマッ
プ化される。
【0389】4×8×1または4×8×2のブロック書
き込みの場合、VRAMカラーレジスタは8ビット幅で
ある。しかしながら書き込むべきバイトを選択するの
に、VRAMの8個のデータ入力のうちの4つしか使用
しない。従ってデータバスのうちの半分は使用せず、1
回のアクセスで32バイトしか書き込みできない。しか
しながら、D〔63:0〕上に実際に入力されるデータ
は同じであり、VRAMは他のどのニブルも無視するだ
けであることに留意されたい。大エンディアンモードで
は、ソースビット0〜7は外部データバスのうちのビッ
ト63と59、55と51、47と43、39と35、
31と27、23と19、15と11ならびに7と3に
マップ化される。8×大エンディアンブロック書き込み
と同じように、正しいオペレーションを保証するように
VRAMにデータバスを逆の順序で接続しなければなら
ない。
【0390】ブロック書き込みをサポートしないメモリ
デバイスに対し、転送コントローラ80はシミュレート
されたブロック書き込みモードを提供する。このモード
では、データバス上にパケット転送パラメータ内に含ま
れていた64ビットのカラーレジスタ値が出力され、サ
イクル中にアドレス指定される8バイトのうちの1つを
イネーブルまたはディスエーブルするよう、CAS’列
アドレスストローブピンを制御することにより、各ソー
スデータビットはバイト選択信号として機能する。従っ
てブロック書き込みは実質的にはカラーレジスタ値がフ
ィル値となるような、値でフィルするタイプの転送に変
換される。次に、宛て先アクセスは、ソースデータによ
って指定されるように、あるバイトへの書き込みをディ
スエーブルする通常のページモードの64ビットの書き
込みサイクルとなる。
【0391】4×および8×ブロック書き込みサイクル
を実行する前に、VRAMのカラーレジスタに正しい値
をロードしなければならない。転送コントローラ80は
パケット転送パラメータに含まれるカラーレジスタ値を
使用するロードカラーレジスタLCRサイクルを実行す
ることによりこれを行う。ブロック書き込みパケット転
送は、より高い優先度のリクエスト、例えばVRAMカ
ラーレジスタを変え得るホストアクセスまたは他のブロ
ック書き込みパケット転送によってインタラプトできる
ので、ブロック書き込みパケット転送が再開するときは
いつも、ロードカラーレジスタサイクルも実行しなけれ
ばならない。従って4×または8×ブロック書き込みパ
ケット転送が始まるとき、一時中断からブロック書き込
みパケット転送が再開するとき、ホストが画像システム
バスを使用し、これを戻した後ブロック書き込みパケッ
ト転送が続くときはいつも、ロードカラーレジスタが始
まる。アクセスされているメモリがシミュレートされた
ブロック書き込みを必要とする場合には、ロードカラー
レジスタサイクルは実行されない。
【0392】一旦カラーラッチがロードされると、上記
条件のうちの1つが発生しなければ、別のロードカラー
レジスタサイクルを実行することはない。例えば8×モ
ードでブロック書き込みが開始し、次にシミュレートさ
れたモードと8×モードが交互に変わると、8×モード
となるたびにロードカラーレジスタが繰り返されること
はない。
【0393】ブロック書き込みパケット転送のための事
象シーケンスは次のとおりである。転送コントローラ8
0は、実行すべきロードカラーレジスタステータスコー
ドおよび第1ブロック書き込みのアドレスを出力する。
次に転送コントローラ80は、BS〔1:0〕ピンに入
力された値を読み出す。BS〔1:0〕が10または1
1に等しければ、パケット転送パラメータ内に含まれる
64ビットのカラーレジスタ値も用いてロードカラーレ
ジスタサイクルを完了する。この後に、4×または8×
ブロックサイクルを発生してパケット転送を完了する。
一方、BS〔1:0〕が00であれば、ロードカラーレ
ジスタサイクルはデータとしてパケット転送パラメータ
内に含まれる64ビットのカラーレジスタ値およびバイ
ト選択信号としてソースデータビットを用いる通常のペ
ージモードの書き込みとなる。ページ変更またはより高
い優先度のサイクルからのインタラプトのために、新し
い行アクセスが開始された場合、実行すべきロードカラ
ーレジスタのステータスコードおよび次のブロック書き
込みのアドレスを出力する工程を、次の宛て先アドレス
に対して繰り返す。
【0394】ロードカラーレジスタサイクルが一旦実行
されると、次のようにシーケンスが続く。転送コントロ
ーラ80がブロック書き込みステータスコードおよび実
行すべき次のブロック書き込みのアドレスを出力する。
BS〔1:0〕が10または11である場合、ソースデ
ータビットを用いてブロック書き込みページモードサイ
クルが完了される。新しい行アクセスが開始されると、
ブロック書き込みステータスコードおよび実行すべき次
のブロック書き込みのアドレスを出力するステップが繰
り返される。他方、BS〔1:0〕が00であれば、ブ
ロック書き込みサイクルはパケット転送内に含まれる6
4ビットのカラーレジスタ値をデータとして使用し、ソ
ースデータビットをバイト選択ビットとして使用する、
通常のページモード書き込みとなる。新しい行アクセス
が開始されると、ブロック書き込みステータスコードお
よび実行すべき次のブロック書き込みのアドレスを出力
するステップが次の宛て先アドレスに対して繰り返され
る。
【0395】転送コントローラ80は実際の4×または
8×ブロック書き込みを常に実行するように試みる。従
ってシミュレートされたブロック書き込みモード中に生
じる通常の書き込みサイクルは、常にロードカラーレジ
スタまたはブロック書き込みステータスコードを有す
る。
【0396】パケット転送オプションフィールド内のパ
ケットアクセスモードが、シリアルレジスタ転送モード
を選択する011であれば、転送コントローラ80のデ
ータ転送モードがディスエーブルされる。転送コントロ
ーラ80はアドレスおよびCAS’を出力するだけであ
る。転送コントローラは更に行時間にTRG’、W’お
よびDSF〔1:0〕ピンもドライブし、読み出し転送
または書き込み転送のVRAMモードのいずれかを選択
する。これらオペレーションのいずれかを実行する際、
D〔63:0〕ピンは行時間に16進数FFFFFFF
FFFFFFFFFのマスク値を出力して、VRAM転
送マスクをディスエーブルする。
【0397】メモリからレジスタへの転送である読み出
し転送を実行するためのアドレスを発生するのにソース
パラメータが使用され、レジスタからメモリへの転送で
ある書き込み転送を実行するのに宛て先メモリが使用さ
れる。
【0398】ソースおよび宛て先の双方によって実行さ
れる各アクセスは、1回の行アクセスである。転送コン
トローラ80を介するデータの転送は行われないので、
宛て先アクセス前にすべてのソースアクセスが実行され
る。各ソースアクセスはVRAMの行をVRAMシフト
レジスタ内に転送させる。実際にはソースパラメータは
通常整列したアドレス、1のAカウント、0のBカウン
トおよび0のCカウントでセットアップされる。従って
1回の転送しか実行されない。読み出し転送に対しては
すべての反転CASラインはアクティブであるので、ソ
ースバスサイズ以下のAカウントをセッティングする結
果、1回の転送が行われる。従ってほとんどの状況に対
して1のソースAカウントが理想的である。
【0399】各宛て先アクセスは、VRAMシフトレジ
スタのデータをVRAMメモリアレイの行内に転送させ
る。通常、各宛て先アクセスは次の逐次行アドレスに対
する整列された転送となっている。これは、整列された
開始アドレス、1のAカウント、行数−1のBカウント
およびVRAM行アドレスピッチに等しいBピッチで宛
て先パラメータをセットアップすることによって行われ
る。書き込み転送中、すべての反転CASラインが附勢
されるので、宛て先バスサイズ以下のAカウントをセッ
トする結果、ライン当たり1回の転送が行われる。従っ
て1の宛て先Aカウントはほとんどの状況に対して理想
的である。
【0400】シフトレジスタ転送パケット転送は、VR
AMシフトレジスタの内容を変え得る優先度のより高い
リクエストによりインタラプトされ得るので、VRAM
シフトレジスタが損なわれる可能性がある場合はいつ
も、読み出し転送サイクルを実行する必要がある。従っ
て、シフトレジスタ転送パケット転送が開始するとき、
シフトレジスタ転送パケット転送が一時中断された後に
再開するとき、更にホストが使用され、画像システムバ
スに復帰した後にシフトレジスタ転送パケット転送が続
くときはいつも、シフトレジスタ転送パケット転送ノソ
ースオペレーション、すなわち読み出し転送が行われ
る。
【0401】図37にシリアルレジスタ転送パケット転
送の簡単な例が示されている。行0は所望のパターンに
セットされているものとする。パケット転送はこのパタ
ーンは行2、4、6、8および10にコピーし、ストラ
イプ状効果を発生するためのものである。
【0402】パケット転送オプションフィールド内のパ
ケット転送アクセスモードビットを、1XXにセットす
ることにより、トランスペアレンシーモードをイネーブ
ルする。トランスペアレンシーモードのうちの1つを指
定することによりソース上でのトランスペアレンシーオ
ペレーションがイネーブルされる。ソースデータはパケ
ット転送パラメータ内に指定された64ビットのトラン
スペアレンシーモード値と比較される。トランスペアレ
ンシーは8、16、32または64ビットデータサイズ
として指定できる。1回の64ビットの比較、2回の3
2ビットの比較、4回の64ビットの比較または8回の
8ビットの比較を行う。比較の結果が真であれば、トラ
ンスペアレンシーおよびバイト書き込み回路353(図
38に示される)が対応するバイトストローブをディス
エーブルし、宛て先バイトの書き込みを防止する。トラ
ンスペアレンシーはオフチップの宛て先にしかサポート
されていない。オンチップの宛て先に対するトランスペ
アレンシーを指定すると、エラー条件によりパケット転
送が一時中断される。
【0403】ソースデータが宛て先および外部バスサイ
ズに整列された後、トランスペアレンシーおよびバイト
書き込み回路353(図38に示されている)によりト
ランスペアレンシー検出が行われる。バスサイズが64
ビット未満であっても、データのうちのすべての8バイ
トがトランスペアレンシー値の対応する8バイトと比較
される。8回の比較は、トランスペアレンシーデータサ
イズに従ってグループ分けされる。グループ内の比較さ
れるバイトがすべて一致すると、そのグループに関連す
るバイトストローブCAS’信号がディスエーブルさ
れ、そのグループ内のバイトのいずれかへの書き込みが
防止される。
【0404】図37a、37b、37cおよび37d
は、それぞれ64ビット、32ビット、16ビットおよ
び8ビットのトランスペアレンシーデータサイズに対し
てどのように比較を行うかを示している。&記号はグル
ープを形成するのに、どのバイトの比較をAND演算す
るかを示している。図37aが示すように、64ビット
のトランスペアレンシーサイズは1回の64ビットの比
較を行う。ソースデータおよびトランスペアレンシー値
が等しければCAS’ストローブのすべてがディスエー
ブルされる。それ以外の場合、8バイトのすべてが書き
込まれる。図37bは、32ビットのトランスペアレン
シーサイズで2回の32ビットの比較が行われ、それぞ
れCAS’〔7:4〕およびCAS’〔3:0〕を制御
することを示している。図37cは、16ビットのトラ
ンスペアレンシーサイズにおいて、4回の16ビットの
比較が行われ、それぞれCAS’〔7:6〕、CAS’
〔5:4〕、CAS’〔3:2〕およびCAS’〔1:
0〕を制御することを示している。図37dは8ビット
のトランスペアレンシーサイズにて8回の8ビットの比
較を別々に行い、CAS’〔7〕、CAS’〔6〕、C
AS’〔5〕、CAS’〔4〕、CAS’〔3〕、CA
S’〔2〕、CAS’〔3:2〕、CAS’〔1:0〕
を制御することを示している。CAS’〔7:0〕スト
ローブは、オペレーションのエンディアンにかかわら
ず、データバス上の同一ビットにより常時識別される。
【0405】外部バスへの整列後、トランスペアレンシ
ーの比較が行われる。従って外部バスサイズが32ビッ
トであれば、64ビットのトランスペアレンシーモード
が選択されていても、データは常にトランスペアレンシ
ー値のうちのビット31〜0(大エンディアンモードで
はビット63〜32)と比較される。このトランスペア
レンシー機構は整数の比較グループに分割できる現在の
バスサイズで作動するようになっている。従ってバスサ
イズは常にトランスペアレンシーサイズ以上でなければ
ならない。
【0406】図38は、宛て先マルチプレクサおよび整
列ロジック350の一部である、トランスペアレンシー
およびバイト書き込みロジック353の構造を示す。ト
ランスペアレンシーレジスタ601は、パケット転送パ
ラメータからの64ビットのトランスペアレンシー値を
記憶する。一連の8ビットのコンパレータ611、61
2、613、614、615、616、617および6
18は、トランスペアレンシーレジスタ601内に記憶
されたトランスペアレンシー値のバイトの個々のビット
と、宛て先マルチプレクサ351からの整列された宛て
先データのバイトの対応するビットとを比較する。各コ
ンパレータ611、612、613、614、615、
616、617、618は、対応するビットが同じであ
るかどうかを表示するバイトの等しい信号を発生する。
ハーフワードANDゲート621、622、623およ
び624の一組は、バイト0と1、バイト2と3、バイ
ト4と5、並びにバイト6と7に対する対応するハーフ
ワードの等しい信号をそれぞれ形成する。2つのワード
ANDゲート631および632は、ハーフワードAN
Dゲート621、622、623および624に接続さ
れており、バイト0〜3およびバイト4〜7に対する対
応するワードの等しい信号を形成する。最後に、ダブル
ワードのANDゲート641はワードゲート631およ
び632に接続されており、すべての64ビットに対す
るダブルワードの等しい信号を形成する。
【0407】マルチプレクサ645は8個のバイトの等
しい信号、4つのハーフワードの等しい信号、2つのワ
ードの等しい信号およびダブルワードの等しい信号を受
ける。このマルチプレクサ645はパケット転送オプシ
ョンフィールドのパケット転送アクセスモードのビット
17〜16に従って選択されたトランスペアレンシーサ
イズの表示も受ける。これらビットは表19に示される
ようにコード化されている。マルチプレクサ645の出
力バイト書き込みストローブは、それぞれの入力および
トランスペアレンシーサイズに基づき、反転CAS信号
を実際に発生する。8ビットのトランスペアレンシーサ
イズが選択される場合、バイトの等しい信号がそれぞれ
のバイト書き込みストローブを制御する。トランスペア
レンシーカラー値と、対応するデータバイトが等しいこ
との表示は、バイト書き込みストローブを禁止する。従
ってメモリにはデータは書き込まれない。16ビットの
トランスペアレンシーサイズが選択されると、各ハーフ
ワードの等しい信号は2つの対応するバイト書き込みス
トローブを制御し、よって、各ハーフワードの等しい信
号は2バイトの書き込みストローブを制御する。32ビ
ットのトランスペアレンシーサイズが制御されると、各
ワードの等しい信号は4つの対応するバイト書き込みス
トローブを制御する。64ビットのトランスペアレンシ
ーサイズが選択されると、8つのバイト書き込みストロ
ーブのすべてがダブルワードの等しい信号によって制御
される。従って、選択されたトランスペアレンシーサイ
ズに基づき、トランスペアレンシーサイズに等しいデー
タ部分とトランスペアレンシーカラー値との同一性によ
り、データの宛て先への書き込みがアボートされる。こ
の機能は多くのグラフィックアプリケーションで極めて
有効である。
【0408】パケット転送オプションのパケットアクセ
スモードが001に等しいときに、周辺デバイスモード
が選択されると、周辺デバイス転送が実行される。この
モードは周辺デバイスが転送コントローラ80のメモリ
コントローラを活用し、マルチプロセッサ集積回路10
0の外部のメモリとの間における読み出しまたは書き込
みを可能にする。周辺デバイス転送が行われると、転送
コントローラ80はメモリアドレスおよび制御ラインを
ドライブするが、データを読み出したり、ドライブ出力
させることはない。これにより、周辺デバイス、例えば
画像システムバスに接続されているホストシステム1
は、データの書き込みまたは読み出しを可能にする。周
辺転送の読み出しまたは書き込み方向は、パケット転送
パラメータをプログラムする方法により決定される。
【0409】メモリから周辺デバイスへの読み出しを行
う周辺読み出し転送は、周辺デバイスが必要とするメモ
リデータにアクセスするよう、パケット転送のソースパ
ラメータをプログラムすることによって発生される。ソ
ースアクセスモードは、次元の定められた転送またはガ
イド転送のいずれかにできるが、値でフィルする転送に
はできない。宛て先転送は宛て先転送モードを000フ
ィールドにセットし、宛て先Aカウントを0にセットす
ることによりディスエーブルしなければならない。
【0410】周辺デバイスからメモリへの書き込みを行
う周辺書き込み転送は、周辺デバイスが書き込みを必要
とするメモリエリアにアクセスするよう、宛て先パラメ
ータをプログラムすることによって発生される。宛て先
アクセスモードは次元の定められた転送またはガイド転
送のいずれかにできる。ソース転送はソース転送モード
を000にセットし、ソースAカウントを0にセットす
ることによりディスエーブルしなければならない。バイ
トの宛て先番号がバイトのソース番号を越えたとして
も、この例ではパケット転送エラーは生じない。
【0411】周辺デバイスパケット転送リクエストは、
任意の優先度のプロセッサにより送信でき、通常の優先
度決定方法を用いてサービスされる。しかしながら通常
のオペレーションはデータの読み出し、書き込みを望む
際に、周辺デバイスに転送を開始させるようになってい
る。このような開始は、外部インタラプトを用いること
によって行われる。周辺デバイスがサービスを必要とす
る際、周辺デバイスはマルチプロセッサ集積回路100
の外部のインタラプト入力の一つにより、マルチプロセ
ッサ60をインタラプトできる。マスタプロセッサ60
は次に、インタラプトサービスルーチンの一部として周
辺デバイスパケット転送を送ることができる。サービス
ルーチン内でインタラプトがディスエーブルされれば、
この転送は緊急優先度を送ることにより、デジタル画像
/グラフィックプロセッサ71、72、73、74のキ
ャッシュリクエストよりも高い優先度を与えることがで
きる。
【0412】周辺デバイスがマスタプロセッサ60を一
旦インタラプトすると、周辺デバイスは転送コントロー
ラ80がデータの読み出し、書き込みをできる前に、パ
ケット転送を開始するまで待機しなければならない。周
辺デバイスの転送の開始は、行時間におけるステータス
〔4:0〕上に出力される特別サイクルタイプのコード
によって信号が送られる。読み出しに対しては値001
00が使用され、書き込みに対しては値00101が使
用される。周辺デバイス転送の開始点および終了点は、
常にLASTPAGEレジスタ360を無効にし、行ア
クセスを強制的に行わせる。周辺デバイスはデータ転送
をいつ行うかを決定するよう、STATUS〔4:0〕
をモニタしなければならない。転送コントローラ80に
より発生されるメモリサイクルのバスサイズのタイプ、
列タイミング等は、サイクルの開始点におけるメモリ識
別入力バスサイズ選択BS〔1:0〕、列タイミング選
択CT〔1:0〕等によって選択されるものに対応す
る。次に周辺デバイスは、CAS’〔7:0〕、CLK
OUT等を用いる、その後の列アクセスにそのデータ転
送を同期化できる。
【0413】メモリのアドレス指定はパケット転送パラ
メータによって行われるので、転送周辺デバイスでは転
送コントローラ80によってアクセスされる順で、デー
タを送受信するように準備が整っていなければならな
い。周辺デバイスは転送コントローラ80の転送レート
に合致したり、転送を低速にするよう、待機ステートを
挿入できるようになっていなければならない。
【0414】周辺デバイスは転送のために画像システム
バスを使用しているので、周辺デバイス転送が開始する
までバスをドライブしてはならない。これは周辺デバイ
スとマルチプロセッサ集積回路100のデータバスとの
間にトランシーバを置き、周辺デバイス転送中にこれら
をイネーブルするだけで達成できる。マルチプロセッサ
集積回路100は転送中にそのデータバスを高インピー
ダンスとし、外部トランシーバが設けられていれば、こ
れをディスエーブルするよう、反転DBENをハイレベ
ルで非アクティブとなるようにドライブする。
【0415】転送コントローラ80は、大エンディアン
フォーマットまたは小エンディアンフォーマットのいず
れかでデータにアクセスできる。このエンディアンモー
ドは、バイトをアクセスする方法を選択する。小エンデ
ィアンフォーマットではバイト0はワード内の最も右側
のバイトであり、その後に続くバイトは左に向かって番
号がつけられる。大エンディアンフォーマットではバイ
ト0はワード内の最も左側のバイトであり、その後に続
くバイト2は右側に番号がつけられる。
【0416】アドレスの最小位の3ビットおよび転送す
べきバイト数は、有効データバイトの位置を決定する。
表24aおよび24bは、小エンディアンモードで64
ビットバス転送のためのバイト位置を示す。表24aお
よび24bではVは有効バイト位置を示し、0は無効バ
イトを示す。点線はそのオペレーションを実行できない
ことを示す。
【0417】
【表24】
【0418】表25aおよび25bは、大エンディアン
モードにおける64ビットバス転送のためのバイト位置
を示す。
【0419】
【表25】
【0420】外部バスが32ビットに制限されていると
き、データの転送にはバスのうちの最小位の4バイトし
か使用しない。このことは、小エンディアン転送ではD
〔31:0〕が使用され、大エンディアン転送に対して
はD〔63:32〕が使用されることを意味している。
表26には、小エンディアンのためのアドレスの最小位
の2ビットに基づくバイト位置が示されている。Xは無
視する64ビットバスのバイトを表示し、点線は実行で
きない転送を示している。
【0421】
【表26】
【0422】表27には、大エンディアンのためのアド
レスの最小位の2ビットに基づくバイト位置が示されて
いる。
【0423】
【表27】
【0424】外部バスが16ビットに制限されている
と、データの転送のために小エンディアンのための最小
位の2バイトD〔15:0〕または大エンディアンのた
めのD〔63:48〕が使用される。表28は、アドレ
スの最小位バイトに基づく小エンディアンモードのため
のバイト位置を示す。
【0425】
【表28】
【0426】表29は、アドレスの最小位ビットに基づ
く小エンディアンモードのためのバイト位置を示す。
【0427】
【表29】
【0428】外部バスが8ビット用に構成されていると
き、データ転送のために小エンディアン用の最小位のバ
イトD〔7:0〕または大エンディアン用D〔63:5
6〕だけが使用される。
【0429】内部クロスバー上で32ビットの外部デー
タを転送する際、転送コントローラ80は表24a、2
4b、25aおよび25bからの1バイト、2バイト、
3バイトおよび4バイトのバイト位置を用いて、通常6
4ビットのアクセスを実行する。内部クロスバー上で1
6ビットの外部データを転送する際、転送コントローラ
80は表24a、24b、25aおよび25bからの1
バイトおよび2バイトのバイト位置を用いて、通常の6
4ビットアクセスを実行する。
【0430】反転UTIME入力を用いてリセット時に
マルチプロセッサ集積回路100のエンディアンモード
が選択される。マルチプロセッサ集積回路100反転リ
セット入力上の立ち上がりエッジの前のクロックサイク
ルにおけるUTIME’の値をサンプリングし、合致す
る。UTIME’がリセットの終了時に低レベル(0)
にサンプリングされた場合、マルチプロセッサ集積回路
100は次のハードウェアのリセットが生じるまで、大
エンディアンモードで作動する。UTIME’が高レベ
ル(1)でサンプリングされると、マルチプロセッサ集
積回路100は小エンディアンモードで作動する。
【0431】パケット転送パラメータはこれまで述べた
ように、ワード(32ビット)レベルのみにおいて、エ
ンディアンと独立している。転送コントローラ80はパ
ケット転送パラメータをダブルワード(64ビット)転
送として常にフェッチし、記憶する。転送コントローラ
80は選択されたエンディアンに従って32ビットのワ
ードをスワップする。ワード内の16ビットの量、例え
ばAカウントおよびBカウントは、これら値を含むフィ
ールドが単一の32ビットの量とみなされるので、エン
ディアンに従ってスワップされることはない。同様に、
64ビットのトランスペアレンシーワードおよび64ビ
ットのカラーレジスタ値のフィールドは、常に単一の6
4ビット量として取り扱われ、そのバイトはエンディア
ンに従ってスワップされることはない。
【0432】ローカルメモリの読み出しおよび書き込み
サイクルは、メモリとプロセッサ集積回路100との間
でデータとインストラクションとを転送するのに使用さ
れる。これらサイクルはパケット転送、キャッシュリク
エストまたは転送コントローラ80に対するダイレクト
外部アクセスリクエストの結果として生じ得る。読み出
しサイクルはデータをメモリからマルチプロセッサ集積
回路100へ転送する。転送コントローラ80はこのサ
イクルの開始点でSTATUS〔4:0〕上に0000
0を出力し、読み出しが行われていることを表示する。
サイクル中WE’は高レベルで非アクティブに保持さ
れ、TRG’はRAS’の降下後に低レベルにドライブ
され、メモリ出力ドライバをイネーブルし、DDIN’
はデータトランシーバがマルチプロセッサ集積回路10
0の内部をドライブするように、このサイクル中に低レ
ベルでアクティブとなる。転送コントローラ80はD
〔63:0〕をメモリから駆動できるように高インピー
ダンスにスイッチングし、適当な熱ステートの間に入力
データをラッチする。転送コントローラ80は常に64
ビットのダブルワードを読み出し、次に適当なデータバ
イトとを抽出し、整列する。従って64ビット未満のバ
スサイズに対して、無効バイトを放棄する。
【0433】図39は、高品位テレビシステムにおけ
る、本発明に係わるマルチプロセッサ集積回路100の
使用法を示す。図39は、高品位テレビ信号の3つのソ
ースを示している。これら信号としては、放送テレビ信
号、コンパクトディスクのリードオンリーメモリ信号お
よびケーブルテレビ信号がある。
【0434】アンテナ801は高品位テレビ信号を含む
放送用無線周波数信号を受信し、テレビチューナー80
2は特定の無線周波数信号を選択する同調受信機と、無
線周波数信号上にエンコードされた画像データを抽出す
る複合器と、アナログ/デジタルコンバータを含む。従
ってテレビチューナー802は、高品位テレビ画像に対
応するデジタル信号を発生する。これらデジタル信号は
バッファ803に一時的に記憶されるようになってい
る。
【0435】コンパクトディスクリードオンリーメモリ
(CDROM)プレーヤー811は、コンパクトディス
ク上に永久記録されたデータを読み出す。これらデータ
は、所望の高品位テレビプログラムに対応した画像デー
タを含む。コンパクトディスクリードオンリーメモリプ
レーヤー811は、コンパクトディスクから読み出した
デジタルデータを一時記憶のためバッファ812へ供給
する。バッファ812は、画像システムバスにも接続さ
れている。
【0436】ケーブルシステムボックス821は、ケー
ブルシステムに双方向に接続する。このような双方向の
接続によりケーブルシステムからユーザーに高品位テレ
ビ信号の送信を行い、更にユーザーからケーブルシステ
ムへリクエスト、質問等の送信を行うことができるよう
になっている。ケーブルシステムはユーザーへのデジタ
ル送信を利用したり、上記無線周波数放送に類似する無
線周波数送信を利用したりできる。ケーブルシステムボ
ックス821は、デジタル画像データを一時記憶できる
よう、バッファ822に供給するための必要な変換回路
を含む。ここでバッファ822画像システムバスにも接
続されていることに留意されたい。高品位テレビは送信
モードに拘わらずデータ圧縮フォーマットで送信する可
能性がかなり高い。マイクロプロセッサ集積回路100
は、圧縮されたデータを受信し、このデータを個々のテ
レビフレームにデコンプレス(圧縮解凍)し、フレーム
データをビデオランダムアクセスメモリ6に供給するよ
うにプログラムされている。先に述べたように、このデ
ータはビデオランダムアクセスメモリ6からリコールさ
れ、ビデオパレット7へ供給される。ビデオパレット7
は、適当なビデオ信号を発生し、ビデオディスプレイ8
をドライブする。画像データをディスプレイに供給する
際に、画像データをデコンプレスする方法は、マイクロ
プロセッサ集積回路100内および画像システムバスに
沿った多数のデータ移動を伴う。転送コントローラ80
はマスタプロセッサ60およびデジタル画像/グラフィ
ックプロセッサ71、72、73および74からのパケ
ット転送用リクエストに応答し、このデータ移動を制御
し、更にメモリリフレッシュのような他の画像システム
バスの使用と、このデータ移動とを調和させる。
【0437】図40は、本発明の別のシステムの実施例
を示す。図40では、マルチプロセッサの集積回路10
1はマスタプロセッサ60と単一のデジタル画像/グラ
フィックプロセッサ71を含む。マルチプロセッサ集積
回路101はマルチプロセッサ集積回路100よりも狭
いシリコン基板面積しか必要としないので、より安価に
製造できる。マルチプロセッサ集積回路101は、マル
チプロセッサ集積回路100の製造に対して先に述べた
技術と同じ技術を用いて製造される。各デジタル画像/
グラフィックプロセッサの幅は、対応するメモリおよび
クロスバー50の関連する部分の幅と一致するので、マ
ルチプロセッサ集積回路100をデジタル画像/グラフ
ィックプロセッサ71と72との間でカットし、マルチ
プロセッサ集積回路101を得ることができる。4つの
デジタル画像/グラフィックプロセッサの処理容量が不
要の場合には、アプリケーションのためマルチプロセッ
サ集積回路101を用いることができる。
【0438】図42では、マルチプロセッサ集積回路1
01がカラーファクシミリ装置の一部として示されてい
る。モデム1301は送受信のための電話回線に双方に
結合されている。モデム1301は、バッファ1302
とも通信し、このバッファは画像システムバスに更に結
合されている。モデム1301は電話回線を介してファ
クシミリ信号を受信し、モデム1301はこれら信号を
復調し、復調信号は次にバッファ1302に一時的に記
憶される。転送コントローラ80はデジタル画像/グラ
フィックプロセッサ71によって処理できるよう、デー
タメモリ22、23、24へデータを転送することによ
り、バッファ1302にサービスする。デジタル画像/
グラフィックプロセッサ71が、入進データの前に位置
づけることができない場合、転送するコントローラ80
はこのデータを場合1302からメモリ9へ転送するこ
ともできる。デジタル画像/グラフィックプロセッサ7
1は入進ファクシミリの画像データを処理する。この処
理では、画像デコンプレッション、ノイズ低減、誤り訂
正、カラーベース補正等を行ってもよい。一旦処理した
場合、転送コントローラ80は画像データをデータメモ
リ22、23、24からビデオランダムアクセスメモリ
(VRAM)1303へ転送する。プリンタコントロー
ラ1304は、フレームコントローラ90の制御によ
り、画像データをリコールし、これをカラープリンタ1
305へ供給し、このプリンタはハードコピーを作成す
る。
【0439】図40の装置はカラーファクシミリを送る
こともできる。撮像デバイス3はソース原画をスキャン
する。撮像デバイス3はフレームコントローラ90の制
御により作動している画像キャプチャコントローラ4
へ、生の画像データを供給する。この画像データは、ビ
デオランダムアクセスメモリ1303に記憶される。図
40に示された実施例は、別個のビデオランダムアクセ
スメモリを利用している図1の実施例と対照的に、画像
キャプチャと画像ディスプレイの双方のためにビデオラ
ンダムアクセスメモリ1303を共用している。転送コ
ントローラ80は、この画像データをデータメモリ2
2、23、24へ転送する。次にデジタル画像/グラフ
ィックプロセッサ71は、データ圧縮、誤り訂正冗長
性、カラーベース補正等のために画像データを処理す
る。この処理されたデータはファクシミリ転送をサポー
トするのに必要なように、転送コントローラ80によっ
てバッファ1303へ転送される。転送コントローラ8
0は相対的データレートに応じてバッファ1302への
転送前に一時的にメモリ9にデータを記憶する。バッフ
ァ1302内のこの画像データは、モデム1301によ
り変調され、電話回線を通して送信される。
【0440】撮像デバイスとカラープリンタとが同じシ
ステム内に設けられているので、このシステムはカラー
複写機としても作動できることに留意されたい。この場
合、データ圧縮とデコンプレッションは不要である。し
かしながらノイズ低減およびカラーベース補正のために
は、まだデジタル画像/グラフィックプロセッサ71が
有効である。コピーが原画と異なるカラーを有するよう
に、色を注意深くずらすように、デジタル画像/グラフ
ィックプロセッサ71をプログラムすることも可能であ
る。フォールスカラーリングとして知られているこの技
術は、データのダイナミックレンジを利用可能なプリン
トカラーのダイナミックレンジに合わせるのに有効であ
る。
【0441】以上の説明に関して更に以下の項を開示す
る。 (1)複数の対応するアドレスにデータを記憶するメモ
リと、パケット転送リクエストと、パケット転送パラメ
ータとを受ける動作をする制御回路であって、該パケッ
ト転送パラメータが、スタートアドレスと、ある数のガ
イドテーブルエントリと、テーブルポインタとを含む、
前記制御回路と、前記数のガイドテーブルエントリを含
むガイドテーブルであって、それぞれのガイドテーブル
エントリが、アドレス値およびアドレスのブロックを定
義するディメンション値を含み、前記テーブルポインタ
が最初に前記ガイドテーブル内の第1ガイドテーブルエ
ントリをポイントする、前記ガイドテーブルと、前記制
御回路に結合せしめられたアドレス発生回路であって、
該アドレス発生回路が、前記パケット転送パラメータか
ら、前記スタートアドレスと、前記数のガイドテーブル
エントリと、前記テーブルポインタとを受ける動作を
し、前記アドレス発生回路が、前記ガイドテーブルエン
トリに対応するメモリアクセス用のアドレスのブロック
の集合を、前記スタートアドレスと、前記テーブルポイ
ンタによりポイントされた前記ガイドテーブルエントリ
の前記アドレス値と、の所定の組合せから、ブロックス
タートアドレスであって、該第1ブロックスタートアド
レスが前記スタートアドレスである、前記ブロックスタ
ートアドレスを形成し、該ブロックスタートアドレス
と、前記テーブルポインタによりポイントされた前記ガ
イドテーブルエントリの前記ディメンション値と、から
アドレスのブロックを形成し、アドレスの該ブロックに
メモリアクセスを行い、もしガイドテーブルエントリの
前記数よりも少ないメモリアクセスしか行われ終わって
いなければ、前記メモリアクセスに続いて、前記ガイド
テーブルの次のエントリをポイントするように前記テー
ブルポインタを更新する、ことによって形成する、前記
アドレス発生回路と、を含む、データ処理装置。
【0442】(2) 前記アドレス発生回路が、前記ア
ドレス値を前記前のブロックスタートアドレスに加算す
ることにより、前記スタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記アドレス値と、の前記所定の組合せを形成す
る、第1項記載のデータ処理装置。
【0443】(3)前記アドレス発生回路が、前記テー
ブルポインタによりポイントされた前記ガイドテーブル
値を前記スタートアドレスに加算することにより、前記
スタートアドレスと、前記テーブルポインタによりポイ
ントされた前記ガイドテーブルエントリの前記アドレス
値と、の前記所定の組合せを形成する、第1項記載のデ
ータ処理装置。
【0444】(4)それぞれのガイドテーブルエントリ
の前記ディメンション値が、画素のアレイの水平ディメ
ンション値および垂直ディメンション値を含む、第1項
記載のデータ処理装置。
【0445】(5)前記メモリアクセスが、アドレスの
前記ブロックからのメモリリードから成る、第1項記載
のデータ処理装置。
【0446】(6)前記メモリアクセスが、アドレスの
前記ブロックへのメモリライトから成る、第1項記載の
データ処理装置。
【0447】(7)単一半導体チップ上に、メモリと、
パケット転送リクエストを発生する回路を有するデータ
プロセッサと、前記メモリと、前記データプロセッサ
と、に接続されたデータ転送制御装置であって、該デー
タ転送制御装置が、パケット転送リクエストと、パケッ
ト転送パラメータとを受ける動作をする制御回路であっ
て、該パケット転送パラメータが、スタートアドレス
と、ある数のガイドテーブルエントリと、テーブルポイ
ンタとを含む、前記制御回路と、前記数のガイドテーブ
ルエントリを含むガイドテーブルであって、それぞれの
ガイドテーブルエントリが、アドレス値およびアドレス
のブロックを定義するディメンション値を含み、前記テ
ーブルポインタが最初に前記ガイドテーブル内の第1ガ
イドテーブルエントリをポイントする、前記ガイドテー
ブルと、前記制御回路に結合せしめられたアドレス発生
回路であって、該アドレス発生回路が、前記パケット転
送パラメータから、前記スタートアドレスと、前記数の
ガイドテーブルエントリと、前記テーブルポインタとを
受ける動作をし、前記アドレス発生回路が、前記ガイド
テーブルエントリに対応するメモリアクセス用のアドレ
スのブロックの集合を、前記スタートアドレスと、前記
テーブルポインタによりポイントされた前記ガイドテー
ブルエントリの前記アドレス値と、の所定の組合せか
ら、ブロックスタートアドレスであって、該第1ブロッ
クスタートアドレスが前記スタートアドレスである、前
記ブロックスタートアドレスを形成し、該ブロックスタ
ートアドレスと、前記テーブルポインタによりポイント
された前記ガイドテーブルエントリの前記ディメンショ
ン値と、からアドレスのブロックを形成し、アドレスの
該ブロックにメモリアクセスを行い、もしガイドテーブ
ルエントリの前記数よりも少ないメモリアクセスしか行
われ終わっていなければ、前記メモリアクセスに続い
て、前記ガイドテーブルの次のエントリをポイントする
ように前記テーブルポインタを更新する、ことによって
形成する、前記アドレス発生回路と、を含む、前記デー
タ転送制御装置と、を備えた、集積回路。
【0448】(8)前記アドレス発生回路が、前記アド
レス値を前記前のブロックスタートアドレスに加算する
ことにより、前記スタートアドレスと、前記テーブルポ
インタによりポイントされた前記ガイドテーブルエント
リの前記アドレス値と、の前記所定の組合せを形成す
る、第7項記載の集積回路。
【0449】(9)前記アドレス発生回路が、前記テー
ブルポインタによりポイントされた前記ガイドテーブル
値を前記スタートアドレスに加算することにより、前記
スタートアドレスと、前記テーブルポインタによりポイ
ントされた前記ガイドテーブルエントリの前記アドレス
値と、の前記所定の組合せを形成する、第7項記載の集
積回路。
【0450】(10)それぞれのガイドテーブルエント
リの前記ディメンション値が、画素のアレイの水平ディ
メンション値および垂直ディメンション値を含む、第7
項記載の集積回路。
【0451】(11)前記メモリアクセスが、アドレス
の前記ブロックからのメモリリードから成る、第7項記
載の集積回路。
【0452】(12)前記メモリアクセスが、アドレス
の前記ブロックへのメモリライトから成る、第7項記載
の集積回路。
【0453】(13)前記単一半導体チップ上に含まれ
ない外部メモリにアクセスする動作をする外部メモリイ
ンタフェースをさらに含み、前記アドレス発生回路が、
前記メモリおよび前記外部メモリの双方を含むアドレス
を発生する、第7項記載の集積回路。
【0454】(14)複数の位置に情報を記憶するステ
ップと、パケットリクエストを受けてスタートアドレス
および制御信号を供給するステップと、該スタートアド
レス、制御信号、およびパッチ値に応答してパッチアド
レスを発生するステップと、パッチ情報をデコードして
ディメンション値およびパッチ値を供給するステップ
と、前記スタートアドレスと、前記ディメンション値
と、前記パッチ値とに応答してパッチアドレスを発生す
るステップと、を含む、データ処理装置を操作する方
法。
【0455】(15)複数の対応するアドレスにデータ
を記憶するメモリと、パケット転送リクエストと、パケ
ット転送パラメータとを受ける動作をする制御回路であ
って、該パケット転送パラメータが、スタートアドレス
と、アドレスのブロックを定義するディメンション値
と、ある数のガイドテーブルエントリと、テーブルポイ
ンタとを含む、前記制御回路と、前記数のガイドテーブ
ルエントリを含むガイドテーブルであって、それぞれの
ガイドテーブルエントリがアドレス値を含み、前記テー
ブルポインタが最初に前記ガイドテーブル内の第1ガイ
ドテーブルエントリをポイントする、前記ガイドテーブ
ルと、前記制御回路と、前記ガイドテーブルと、に結合
せしめられたアドレス発生回路であって、該アドレス発
生回路が、前記パケット転送パラメータから、前記スタ
ートアドレスと、前記ディメンション値と、前記数のガ
イドテーブルエントリと、前記テーブルポインタとを受
ける動作をし、前記アドレス発生回路が、前記ガイドテ
ーブルエントリに対応するメモリアクセス用のアドレス
のブロックの集合を、前記スタートアドレスと、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ルエントリの前記アドレス値と、の所定の組合せから、
ブロックスタートアドレスであって、該第1ブロックス
タートアドレスが前記スタートアドレスである、前記ブ
ロックスタートアドレスを形成し、該ブロックスタート
アドレスと、前記ディメンション値とからアドレスのブ
ロックを形成し、アドレスの該ブロックにメモリアクセ
スを行い、もしガイドテーブルエントリの前記数よりも
少ないメモリアクセスしか行われ終わっていなければ、
前記メモリアクセスに続いて、前記ガイドテーブルの次
のエントリをポイントするように前記テーブルポインタ
を更新する、ことによって形成する、前記アドレス発生
回路と、を含む、データ処理装置。
【0456】(16)前記アドレス発生回路が、前記ア
ドレス値を前記前のブロックスタートアドレスに加算す
ることにより、前記スタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記アドレス値と、の前記所定の組合せを形成す
る、第15項記載のデータ処理装置。
【0457】(17)前記アドレス発生回路が、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ル値を前記スタートアドレスに加算することにより、前
記スタートアドレスと、前記テーブルポインタによりポ
イントされた前記ガイドテーブルエントリの前記アドレ
ス値と、の前記所定の組合せを形成する、第15項記載
のデータ処理装置。
【0458】(18)前記パケット転送パラメータの前
記ディメンション値が、画素のアレイの水平ディメンシ
ョン値および垂直ディメンション値を含む、第15項記
載のデータ処理装置。
【0459】(19)前記メモリアクセスが、アドレス
の前記ブロックからのメモリリードから成る、第15項
記載のデータ処理装置。
【0460】(20)前記メモリアクセスが、アドレス
の前記ブロックへのメモリライトから成る、第15項記
載のデータ処理装置。
【0461】(21)単一半導体チップ上に、メモリ
と、パケット転送リクエストを発生する回路を有するデ
ータプロセッサと、前記メモリと、前記データプロセッ
サと、に接続されたデータ転送制御装置であって、該デ
ータ転送制御装置が、パケット転送リクエストと、パケ
ット転送パラメータとを受ける動作をする制御回路であ
って、該パケット転送パラメータが、スタートアドレス
と、アドレスのブロックを定義するディメンション値
と、ある数のガイドテーブルエントリと、テーブルポイ
ンタとを含む、前記制御回路と、前記数のガイドテーブ
ルエントリを含むガイドテーブルであって、それぞれの
ガイドテーブルエントリがアドレス値を含み、前記テー
ブルポインタが最初に前記ガイドテーブル内の第1ガイ
ドテーブルエントリをポイントする、前記ガイドテーブ
ルと、前記制御回路と、前記ガイドテーブルと、に結合
せしめられたアドレス発生回路であって、該アドレス発
生回路が、前記パケット転送パラメータから、前記スタ
ートアドレスと、前記ディメンション値と、前記数のガ
イドテーブルエントリと、前記テーブルポインタとを受
ける動作をし、前記アドレス発生回路が、前記ガイドテ
ーブルエントリに対応するメモリアクセス用のアドレス
のブロックの集合を、前記スタートアドレスと、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ルエントリの前記アドレス値と、の所定の組合せから、
ブロックスタートアドレスであって、該第1ブロックス
タートアドレスが前記スタートアドレスである、前記ブ
ロックスタートアドレスを形成し、該ブロックスタート
アドレスと、前記パケット転送パラメータの前記ディメ
ンション値とからアドレスのブロックを形成し、アドレ
スの該ブロックにメモリアクセスを行い、もしガイドテ
ーブルエントリの前記数よりも少ないメモリアクセスし
か行われ終わっていなければ、前記メモリアクセスに続
いて、前記ガイドテーブルの次のエントリをポイントす
るように前記テーブルポインタを更新する、ことによっ
て形成する、前記アドレス発生回路と、を含む、前記デ
ータ転送制御装置と、を備えた、集積回路。
【0462】(22)前記アドレス発生回路が、前記ア
ドレス値を前記前のブロックスタートアドレスに加算す
ることにより、前記スタートアドレスと、前記テーブル
ポインタによりポイントされた前記ガイドテーブルエン
トリの前記アドレス値と、の前記所定の組合せを形成す
る、第21項記載の集積回路。
【0463】(23)前記アドレス発生回路が、前記テ
ーブルポインタによりポイントされた前記ガイドテーブ
ル値を前記スタートアドレスに加算することにより、前
記スタートアドレスと、前記テーブルポインタによりポ
イントされた前記ガイドテーブルエントリの前記アドレ
ス値と、の前記所定の組合せを形成する、第21項記載
の集積回路。
【0464】(24)前記パケット転送パラメータの前
記ディメンション値が、画素のアレイの水平ディメンシ
ョン値および垂直ディメンション値を含む、第21項記
載の集積回路。
【0465】(25)前記メモリアクセスが、アドレス
の前記ブロックからのメモリリードから成る、第21項
記載の集積回路。
【0466】(26)前記メモリアクセスが、アドレス
の前記ブロックへのメモリライトから成る、第21項記
載の集積回路。
【0467】(27)前記単一半導体チップ上に含まれ
ない外部メモリにアクセスする動作をする外部メモリイ
ンタフェースをさらに含み、前記アドレス発生回路が、
前記メモリおよび前記外部メモリの双方を含むアドレス
を発生する、第21項記載の集積回路。
【0468】(28)複数の位置に情報を記憶するステ
ップと、パケットリクエストを受けて、スタートアドレ
スと、制御信号と、パッチ値と、を供給するステップ
と、該スタートアドレスと、該制御信号と、該パッチ値
と、に応答してパッチアドレスを発生するステップと、
を含む、画像処理装置を操作する方法。
【0469】(29)本発明は、メモリアクセスのアド
レスの制御様式に関する。本発明のデータ処理装置は、
メモリと、制御回路と、ガイドテーブルと、アドレス発
生回路と、を含む。該制御回路は、パケット転送リクエ
ストと、パケット転送パラメータとを受ける。該パケッ
ト転送パラメータは、スタートアドレスと、ある数のガ
イドテーブルエントリと、テーブルポインタとを含む。
前記ガイドテーブルは、ガイドテーブルエントリを含
み、それぞれのガイドテーブルエントリは、アドレス値
およびアドレスのブロックを定義するディメンション値
を含む。前記テーブルポインタは、最初に前記ガイドテ
ーブル内の第1ガイドテーブルエントリをポイントす
る。前記アドレス発生回路は、前記スタートアドレス
と、前記ガイドテーブルエントリの前記アドレス値と、
の所定の組合せから形成されるスタートアドレスを有す
る、それぞれのガイドテーブルエントリに対応するメモ
リアクセス用のアドレスのブロックの集合を形成する。
アドレスの該ブロックは、前記ディメンション値から形
成される。前記メモリアクセスに続いて、前記アドレス
発生回路は、前記ガイドテーブルの次のエントリをポイ
ントするように前記テーブルポインタを更新する。前記
アドレス発生回路は、随意選択的に、前記アドレス値を
前記前のブロックスタートアドレスに加算することによ
り、または、前記ガイドテーブル値を前記スタートアド
レスに加算することにより、スタートアドレスと、ガイ
ドテーブルエントリのアドレス値と、の前記所定の組合
せを形成しうる。前記メモリアクセスは、アドレスの前
記ブロックからのメモリリード、または、アドレスの前
記ブロックへのメモリライトでありうる。実施例におい
ては、メモリと、データプロセッサと、上述のメモリア
クセスを行うデータ転送制御装置とは、単一半導体チッ
プ内に構成される。該データ転送制御装置は、オンチッ
プメモリと同様に、外部メモリにアクセスしうる。
【0470】警告:著作権1991年テキサスインスツ
ルメンツ社 本特許文献の開示の一部は、著作権およ
びマスクワーク保護の対象となる資料を含む。この著作
権およびマスクワークの所有者は、米国特許庁の特許フ
ァイルまたは記録にある特許文献または特許の開示の、
何人によるコピーに反対するものではないが、それ以外
に対しては、すべての著作権およびマスクワークの権利
を留保するものである。
【0471】関連出願とのクロスレファレンス:本願
は、下記の米国特許および継続中の米国特許出願に開示
された発明の改良に関するもので、下記の特許および米
国特許出願はすべてテキサスインスツルメンツ社に譲渡
されたものであり、これらのいずれも参考例として援用
する。
【0472】1994年6月21日に出願された「プロ
セッサとメモリをクロスバーリンクしたマルチプロセッ
サおよびその作動方法」を発明の名称とする、米国特許
出願第08/263,501号。この出願は、1993
年10月12日出願され現在放棄された米国特許出願第
08/135,754号の継続出願であり、1992年
8月21日に出願され現在放棄されている米国特許出願
第07/933,865号の継続出願であり、この米国
特許出願第07/933,865号は、1989年11
月17日出願され現在放棄されている米国特許出願第0
7/435,591号の継続出願である。
【0473】1989年11月17日出願され1993
年5月18日に発行された「SIMD/MIMD再構成
可能なマルチプロセッサおよびオペレーション方法」を
発明の名称とする米国特許第5,212,777号。
【0474】1989年11月17日出願され現在放棄
されている米国特許出願第07/437,856号の継
続出願である、1992年6月5日出願され現在放棄さ
れている米国特許出願第07/895,565号の継続
出願である、1994年6月22日出願された「マルチ
プロセッサ用再構成可能な通信およびそのオペレーショ
ン方法」を発明の名称とする米国特許出願第08/26
4,111号。
【0475】1989年11月17日出願され現在放棄
されている米国特許出願第07/437,852号の継
続出願である、1994年6月22日出願された「小エ
リアのクロスバーおよびそのオペレーション方法」を発
明の名称とする米国特許出願第08/264,582
号。
【0476】1989年11月17日出願され現在放棄
されている米国特許出願第07/437,853号の継
続出願である、1993年5月15日出願された「同期
されたMIMDマルチ処理システムおよびそのオペレー
ション方法」を発明の名称とする米国特許出願第08/
032,530号。
【0477】1989年11月17日出願され、199
3年3月23日発行された「スライスされたアドレス指
定用マルチプロセッサおよびそのオペレーション方法」
を発明の名称とする米国特許第5,197,140号。
【0478】1989年11月17日出願され、199
4年8月16日発行された「画像データの二進ストリー
ム内の1の数をカウントするための相互接続された半加
算器のマトリックスを利用する1をカウントする回路」
を発明の名称とする米国特許第5,339,447号。
【0479】1989年11月17日出願され、199
3年8月24日に発行された「SIMDモードで作動す
る際にデータメモリとしてMIMDインストラクション
メモリを再利用するデュアルモードのSIMD/MIM
Dプロセサ」を発明の名称とする米国特許第5,23
9,654号。
【0480】1989年11月17日出願され現在放棄
されている米国特許出願第437,854号の継続出願
である、1992年6月29日に出願された「イメージ
ングコンピュータおよびそのオペレーション方法」を発
明の名称とする米国特許出願第07/911,562
号。
【0481】1989年11月17日出願され、199
3年7月6日に発行された「集積クロスポイントロジッ
クを有するスイッチマトリックスおよびそのオペレーシ
ョン方法」を発明の名称とする米国特許第5,226,
125号。
【0482】1993年11月30日出願された「バレ
ルローテータを備えた3入力端論理ユニット」を発明の
名称とする米国特許出願第08/160,299号。
【0483】1993年11月30日出願された「複数
の独立部分および各部分からの結果の表示ビットを記憶
するレジスタを有する算術論理ユニット」を発明の名称
とする米国特許出願第08/158,742号。
【0484】1993年11月30日出願された「レジ
スタペア条件からのメモリストア」を発明の名称とする
米国特許出願第08/160,118号。
【0485】1993年11月30日出願され現在放棄
されている米国特許出願第08/160,115号の継
続出願である、1994年10月17日出願された「繰
り返しごとに複数の商ビットを形成する繰り返し割り算
装置、システムおよび方法」。
【0486】1993年11月30日出願された「混合
された算術およびブール組み合わせを形成する3入力端
算術論理ユニット」を発明の名称とする米国特許出願第
08/159,285号。
【0487】1993年11月30日出願された「単一
データワードの複数の等しい部分におけるデータの合計
を計算する方法、装置およびシステム」を発明の名称と
する米国特許出願第08/160,119号。
【0488】1993年11月30日出願された「サイ
ズ検出のため最小位ビットの変化を用いるハフマンコー
ド化方法、回路およびシステム」を発明の名称とする米
国特許出願第08/159,359号。
【0489】1993年11月30日出願された「負の
数を変換するため条件付き減算を利用するハフマンコー
ド化方法、回路およびシステム」を発明の名称とする米
国特許出願第08/160,296号。
【0490】1993年11月30日出願された「複数
の絶対値の差を合計するための方法、装置およびシステ
ム」を発明の名称とする米国特許出願第08/160,
112号。
【0491】1993年11月30日出願された「排他
的ORによる最も左側の1の検出を利用する繰り返し割
り算装置、システムおよび方法」を発明の名称とする米
国特許出願第08/160,120号。
【0492】1993年11月30日出願された「2つ
の独立アドレスの選択的マージを利用するアドレス発生
器」を発明の名称とする米国特許出願第08/160,
114号。
【0493】1993年11月30日出願された「相関
化方法、装置およびシステム」を発明の名称とする米国
特許出願第08/160,116号。
【0494】1993年11月30日出願された「複数
の独立したプロセッサオペレーションを制御する長いイ
ンストラクションワード」を発明の名称とする米国特許
出願第08/160,297号。
【0495】1993年11月30日出願された「直交
データ変換のための回転レジスタ」を発明の名称とする
米国特許出願第08/159,346号。
【0496】1993年11月30日出願された「メデ
ィアンフィルタ方法、回路およびシステム」を発明の名
称とする米国特許出願第08/159,652号。
【0497】1993年11月30日出願された「条件
レジスタソース選択を備えた算術論理ユニット」を発明
の名称とする米国特許出願第08/159,344号。
【0498】1993年11月30日出願された「繰り
返しによる除算のための装置、システムおよび方法」を
発明の名称とする米国特許出願第08/160,301
号。
【0499】1993年11月30日出願された「冗長
コード化された乗算の結果を利用する乗算丸め方法」を
発明の名称とする米国特許出願第08/159,650
号。
【0500】1993年11月30日出願された「スプ
リット乗算方法」を発明の名称とする米国特許出願第0
8/159,349号。
【0501】1993年11月30日出願された「ゼロ
の条件テストを含む混合形条件テストおよびブランチ演
算」を発明の名称とする米国特許出願第08/158,
741号。
【0502】1993年11月30日出願された「パッ
クされたワード対の乗算方法」を発明の名称とする米国
特許出願第08/160,302号。
【0503】1993年11月30日出願された「シフ
タを備えた3入力端算術論理ユニット」を発明の名称と
する米国特許出願第08/160,573号。
【0504】1993年11月30日出願された「マス
ク発生器を備えた3入力端算術論理ユニット」を発明の
名称とする米国特許出願第08/159,282号。
【0505】1993年11月30日出願された「バレ
ルローテータおよびマスク発生器を備えた3入力端算術
論理ユニット」を発明の名称とする米国特許出願第08
/160,111号。
【0506】1993年11月30日出願された「シフ
タおよびマスク発生器を備えた3入力端算術論理ユニッ
ト」を発明の名称とする米国特許出願第08/160,
298号。
【0507】1993年11月30日出願された「第2
入力と第3入力のブール組み合わせプラス第2入力と第
3入力の第2ブール組み合わせが加算された第1入力の
合計を計算する3入力端算術論理ユニット」を発明の名
称とする米国特許出願第08/159,345号。
【0508】1993年11月30日出願された「第
1、第2および第3入力のブール組み合わせプラス第
1、第2、第3入力の第2ブール組み合わせの合計を計
算する3入力端算術論理ユニット」を発明の名称とする
米国特許出願第08/160,113号。
【0509】1993年11月30日出願された「桁上
げ伝搬ロジックを利用する3入力端算術論理ユニット」
を発明の名称とする米国特許出願第08/159,64
0号。
【0510】1993年11月30日出願された「書き
込み優先権を利用するIF、THENオペレーションの
ためのデータ処理装置、システムおよび方法」を発明の
名称とする米国特許出願第08/160,300号。
【0511】1993年3月8日出願された「MPベク
トルインストラクションFP+LOAD/STORE」
を発明の名称とする米国特許出願第08/207,98
9号(TI整理番号15521)。
【0512】1993年3月8日出願された「不動点少
数のための正規化方法」を発明の名称とする米国特許出
願第08/ 号(TI整理番号1869
5)。
【0513】本願は下記の米国特許出願とも関連してお
り、これらのいずれも参考例としてここに援用する。
【0514】1993年3月8日出願された「PP転送
プロセッサにおけるトランスペアレンシーおよび平面マ
スキング」を発明の名称とする米国特許出願第08/2
08,413号。
【0515】1993年3月8日出願された「トランス
ペアレンシーを備えたPIXBLT」を発明の名称とす
る米国特許出願第08/208,161号。
【0516】1993年3月8日出願された「プロセッ
サからのメッセージパッシングおよびブラストインタラ
プト」を発明の名称とする米国特許出願第08/20
8,171号。
【0517】1993年3月8日出願された「X、Y次
元を備えたガイド転送および変数ステッピング」を発明
の名称とする米国特許出願第08/209,123号。
【0518】1993年3月8日出願された「ガイド転
送ラインドローイング」を発明の名称とする米国特許出
願第08/209,124号。
【0519】1993年3月8日出願された「異なるメ
モリタイプを同時に制御する転送プロセッサ用メモリイ
ンターフェース」を発明の名称とする米国特許出願第0
8/208,517号。
【0520】1993年3月8日出願された「TP転送
プロセッサのアーキテクチャ」を発明の名称とする米国
特許出願第08/207,503号。
【図面の簡単な説明】
【図1】本発明の画像処理システムのシステムアーキテ
クチャを示す図。
【図2】単一集積回路マルチプロセッサのアーキテクチ
ャを示す図。
【図3】デジタル画像/グラフィックプロセッサのイン
タラプトイネーブルおよびインタラプトフラグレジスタ
を示す図。
【図4】共通ワードのフィールドを示す図。
【図5】デジタル画像/グラフィックプロセッサの通信
レジスタを示す図。
【図6】画像システムバスの優先度およびオペレーショ
ン方法を示す図。
【図7】クロスバー優先度およびマルチプロセッサ集積
回路内のオペレーション方法を示す図。
【図8】本発明の実施例の転送プロセッサ構造を示す
図。
【図9】LASTPAGEレジスタの使用を示す図。
【図10】外部メモリシーケンサのステート図およびオ
ペレーション方法を示す図。
【図11】ソースマシン構造を示す図。
【図12】パケット転送FIFOバッファ、キャッシュ
バッファ算術演算およびブロックの例を示す図。
【図13】バッファカウント算術演算およびブロックの
例を示す図。
【図14】aは小エンディアンパケット転送FIFOバ
ッファの例および方法を示す図。bは大エンディアンパ
ケット転送FIFOバッファの例および方法を示す図。
【図15】プロセッサのパラメータメモリの使用例を示
す図。
【図16】リンクされたリストパケット転送方法の一例
を示す図。
【図17】次元の定められたパケット転送方法の一例を
示す図。
【図18】固定パッチのデルタガイドパケット転送方法
の一例を示す図。
【図19】固定パッチのオフセットガイド転送方法の一
例を示す図。
【図20】固定パッチのオフセットガイドルックアップ
テーブルパケット転送方法の一例を示す図。
【図21】小エンディアン可変パッチガイドテーブルフ
ォーマットを示す図。
【図22】大エンディアン可変パッチガイドテーブルフ
ォーマットを示す図。
【図23】可変パッチデルタガイドパケット転送方法の
一例を示す図。
【図24】可変パッチオフセットガイドパッチ転送方法
の一例を示す図。
【図25】ソーストランスペアレンシーパラメータを備
えた、次元の定められたパケット転送の一例を示す図。
【図26】フィルパラメータを備えた、次元の定められ
たパケット転送の一例を示す図。
【図27】次元の定められたソースおよび固定パッチガ
イド宛て先パケット転送パラメータの一例を示す図。
【図28】次元の定められたソースおよび可変パッチガ
イド宛て先パケット転送パラメータの一例を示す図。
【図29】次元の定められたブロック書き込みパケット
転送パラメータの一例を示す図。
【図30】パケット転送パラメータのエンコーディング
を示す図。
【図31】パケット転送タイマー構造を示す図。
【図32】一時中断されたパケット転送パラメータの記
憶方法の一例を示す図。
【図33】一時中断されたパケットサービスパラメータ
のエンコーディングを示す図。
【図34】小エンディアンモードでの8×ブロック書き
込みビット再マッピングにおけるビット再マッピングの
一例を示す図。
【図35】小エンディアンモードでの4×ブロック書き
込みビット再マッピングにおけるビット再マッピングの
一例を示す図。
【図36】シリアルレジスタ転送方法の一例を示す図。
【図37】トランスペアレンシーオペレーションを示す
図。
【図38】トランスペアレンシーおよびバイト書き込み
ロジック回路の実施例を示す図。
【図39】高品位テレビシステムの一実施例を示す図。
【図40】単一のデジタル画像/グラフィックプロセッ
サを有するマルチプロセッサ集積回路を含むカラーファ
クシミリシステムの一実施例を示す図。
【符号の説明】 1 ホスト処理システム 2 ホスト周辺デバイス 3 撮像デバイス 4 画像キャプチャコントローラ 5、6 ビデオラム 7 ビデオパレット 8 ビデオディスプレイ 9 メモリ 16 トランシーバ 100 マルチプロセッサ集積回路
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/163 G06F 15/64 450 C (72)発明者 キース ブラマー イギリス国ベッドフォード,サルコム ク ローズ 6 (72)発明者 クリストファー ジェイ.リード アメリカ合衆国テキサス州ヒューストン, バーリンゲイム 11807 (72)発明者 イェイン ロバートソン イギリス国ベッドフォードシャー,グレン ジ レーン,10 (72)発明者 ニコラス イング − シモンズ イギリス国ハンチングドン,ケンブリッジ シャー カウンティ,アルコンベリィ ウ エストン,ハイフィールド アベニュー, 47

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数の対応するアドレスにデータを記憶す
    るメモリと、 パケット転送リクエストと、パケット転送パラメータと
    を受ける動作をする制御回路であって、該パケット転送
    パラメータが、スタートアドレスと、ある数のガイドテ
    ーブルエントリと、テーブルポインタとを含む、前記制
    御回路と、 前記数のガイドテーブルエントリを含むガイドテーブル
    であって、それぞれのガイドテーブルエントリが、アド
    レス値およびアドレスのブロックを定義するディメンシ
    ョン値を含み、前記テーブルポインタが最初に前記ガイ
    ドテーブル内の第1ガイドテーブルエントリをポイント
    する、前記ガイドテーブルと、 前記制御回路に結合せしめられたアドレス発生回路であ
    って、該アドレス発生回路が、前記パケット転送パラメ
    ータから、前記スタートアドレスと、前記数のガイドテ
    ーブルエントリと、前記テーブルポインタとを受ける動
    作をし、前記アドレス発生回路が、前記ガイドテーブル
    エントリに対応するメモリアクセス用のアドレスのブロ
    ックの集合を、 前記スタートアドレスと、前記テーブルポインタにより
    ポイントされた前記ガイドテーブルエントリの前記アド
    レス値と、の所定の組合せから、ブロックスタートアド
    レスであって、該第1ブロックスタートアドレスが前記
    スタートアドレスである、前記ブロックスタートアドレ
    スを形成し、 該ブロックスタートアドレスと、前記テーブルポインタ
    によりポイントされた前記ガイドテーブルエントリの前
    記ディメンション値と、からアドレスのブロックを形成
    し、 アドレスの該ブロックにメモリアクセスを行い、 もしガイドテーブルエントリの前記数よりも少ないメモ
    リアクセスしか行われ終わっていなければ、前記メモリ
    アクセスに続いて、前記ガイドテーブルの次のエントリ
    をポイントするように前記テーブルポインタを更新す
    る、ことによって形成する、前記アドレス発生回路と、
    を含む、データ処理装置。
  2. 【請求項2】複数の位置に情報を記憶するステップと、 パケットリクエストを受けてスタートアドレスおよび制
    御信号を供給するステップと、 該スタートアドレスと、制御信号と、パッチ値と、に応
    答してパッチアドレスを発生するステップと、 パッチ情報をデコードしてディメンション値およびパッ
    チ値を供給するステップと、 前記スタートアドレスと、前記ディメンション値と、前
    記パッチ値とに応答してパッチアドレスを発生するステ
    ップと、を含む、データ処理装置を操作する方法。
JP7085856A 1994-03-08 1995-03-07 画像/グラフィックス処理用のデータ処理装置およびその操作方法 Pending JPH0877347A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US209124 1994-03-08
US209123 1994-03-08
US08/209,123 US5651127A (en) 1994-03-08 1994-03-08 Guided transfers with variable stepping
US08/209,124 US5487146A (en) 1994-03-08 1994-03-08 Plural memory access address generation employing guide table entries forming linked list

Publications (1)

Publication Number Publication Date
JPH0877347A true JPH0877347A (ja) 1996-03-22

Family

ID=26903840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7085856A Pending JPH0877347A (ja) 1994-03-08 1995-03-07 画像/グラフィックス処理用のデータ処理装置およびその操作方法

Country Status (4)

Country Link
EP (1) EP0671718B1 (ja)
JP (1) JPH0877347A (ja)
KR (1) KR100372061B1 (ja)
DE (1) DE69524798T2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008521097A (ja) * 2004-11-15 2008-06-19 エヌヴィディア コーポレイション ビデオ処理
US8885053B2 (en) 2003-02-20 2014-11-11 Panasonic Corporation Integrated circuit and electric device for avoiding latency time caused by contention
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US9111368B1 (en) 2004-11-15 2015-08-18 Nvidia Corporation Pipelined L2 cache for memory transfers for a video processor

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3062418B2 (ja) * 1995-06-02 2000-07-10 キヤノン株式会社 表示装置並びに表示システム及び表示制御方法
DE10303095A1 (de) * 2003-01-27 2004-08-12 Infineon Technologies Ag Datenverarbeitungsvorrichtung
EP1591906A1 (en) 2004-04-27 2005-11-02 Texas Instruments Incorporated Efficient data transfer from an ASIC to a host using DMA
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
US9632976B2 (en) 2012-12-07 2017-04-25 Nvidia Corporation Lazy runahead operation for a microprocessor
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9823931B2 (en) 2012-12-28 2017-11-21 Nvidia Corporation Queued instruction re-dispatch after runahead
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57500529A (ja) * 1980-02-29 1982-03-25
US5251303A (en) * 1989-01-13 1993-10-05 International Business Machines Corporation System for DMA block data transfer based on linked control blocks
WO1992002879A1 (en) * 1990-08-03 1992-02-20 Du Pont Pixel Systems Limited Virtual memory system
GB2250615B (en) * 1990-11-21 1995-06-14 Apple Computer Apparatus for performing direct memory access with stride

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885053B2 (en) 2003-02-20 2014-11-11 Panasonic Corporation Integrated circuit and electric device for avoiding latency time caused by contention
JP2008521097A (ja) * 2004-11-15 2008-06-19 エヌヴィディア コーポレイション ビデオ処理
JP4906734B2 (ja) * 2004-11-15 2012-03-28 エヌヴィディア コーポレイション ビデオ処理
US9111368B1 (en) 2004-11-15 2015-08-18 Nvidia Corporation Pipelined L2 cache for memory transfers for a video processor
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder

Also Published As

Publication number Publication date
KR100372061B1 (ko) 2003-03-12
EP0671718A1 (en) 1995-09-13
KR950033816A (ko) 1995-12-26
EP0671718B1 (en) 2002-01-02
DE69524798D1 (de) 2002-02-07
DE69524798T2 (de) 2002-08-14

Similar Documents

Publication Publication Date Title
US5487146A (en) Plural memory access address generation employing guide table entries forming linked list
US5560030A (en) Transfer processor with transparency
US5524265A (en) Architecture of transfer processor
US6185629B1 (en) Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time
JPH0877347A (ja) 画像/グラフィックス処理用のデータ処理装置およびその操作方法
US5724599A (en) Message passing and blast interrupt from processor
US5651127A (en) Guided transfers with variable stepping
US5493646A (en) Pixel block transfer with transparency
US5956744A (en) Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US5850632A (en) Memory access controller utilizing cache memory to store configuration information
JP5285828B2 (ja) 並列データ処理装置
US6948050B1 (en) Single integrated circuit embodying a dual heterogenous processors with separate instruction handling hardware
US5613146A (en) Reconfigurable SIMD/MIMD processor using switch matrix to allow access to a parameter memory by any of the plurality of processors
US5768609A (en) Reduced area of crossbar and method of operation
JP3806936B2 (ja) データ・フロー制御および複数の処理装置を有する画像圧縮コプロセッサ
US5510740A (en) Method for synchronizing clocks upon reset
US5239654A (en) Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5933624A (en) Synchronized MIMD multi-processing system and method inhibiting instruction fetch at other processors while one processor services an interrupt
US5371896A (en) Multi-processor having control over synchronization of processors in mind mode and method of operation
US5592405A (en) Multiple operations employing divided arithmetic logic unit and multiple flags register
KR100246067B1 (ko) 집적회로 장치와 디지탈 데이타 처리 및 비디오 디스플레이 신호 발생 시스템
US5860086A (en) Video processor with serialization FIFO
US5754191A (en) Method and apparatus for optimizing pixel data write operations to a tile based frame buffer
JP3518788B2 (ja) デジタル・データ及びビデオ信号の処理デバイス及びシステム
US5655131A (en) SIMD architecture for connection to host processor's bus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060414