JPH11167627A - 画像処理装置及びその方法 - Google Patents

画像処理装置及びその方法

Info

Publication number
JPH11167627A
JPH11167627A JP16941498A JP16941498A JPH11167627A JP H11167627 A JPH11167627 A JP H11167627A JP 16941498 A JP16941498 A JP 16941498A JP 16941498 A JP16941498 A JP 16941498A JP H11167627 A JPH11167627 A JP H11167627A
Authority
JP
Japan
Prior art keywords
data
address
output
memory
pixel
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
JP16941498A
Other languages
English (en)
Inventor
Dominic Yip
ジップ ドミニク
Ian R Gibson
リチャード ギブソン アイアン
Mark Pulver
プルバー マーク
Chii Hoon Won Kevin
チー・ホーン ウォン ケビン
John Webb Michael
ジョン ウェブ マイケル
Christopher Amies
アミーズ クリストファー
Raymond Higginbottom Paul
レイモンド ヒギンボトム ポール
Yan Chun Win
ヤン チュン ウィン
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.)
Canon Information Systems Research Australia Pty Ltd
Canon Inc
Original Assignee
Canon Information Systems Research Australia Pty Ltd
Canon 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 AUPO6481A external-priority patent/AUPO648197A0/en
Priority claimed from AUPO6482A external-priority patent/AUPO648297A0/en
Priority claimed from AUPO6479A external-priority patent/AUPO647997A0/en
Priority claimed from AUPO6488A external-priority patent/AUPO648897A0/en
Priority claimed from AUPO6480A external-priority patent/AUPO648097A0/en
Priority claimed from AUPO6485A external-priority patent/AUPO648597A0/en
Priority claimed from AUPO6490A external-priority patent/AUPO649097A0/en
Application filed by Canon Information Systems Research Australia Pty Ltd, Canon Inc filed Critical Canon Information Systems Research Australia Pty Ltd
Publication of JPH11167627A publication Critical patent/JPH11167627A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】 特に高速で多種の画像処理操作が可能な画像
処理装置の提供。 【解決手段】 制御レジスタブロック1470、復号化
ブロック1468、データオブジェクト(DO)プロセ
ッサ1462及びフロー制御回路からなる画像処理装置
242であって、制御レジスタ部は画像処理操作に関係
するすべての情報を記憶する。復号化部は、情報を入力
DOインターフェース1460をコンフィギュアするコ
ンフィグレーション信号に復号化する。入力DOインタ
ーフェースは、外部からのDOを受け付け、記憶し、こ
れらDOをDOプロセッサ1462に供給する。いくつ
かの画像処理操作のために、入力DOインターフェース
はまた、DOの供給源が正しいDOを供給することがで
きるよう、DOに対するアドレスを発生する。DOプロ
セッサ1462は受信DOに演算処理を施す。フロー制
御回路はDOプロセッサ内におけるデータの流れを制御
する。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は画像処理装置に関
し、特に高速で多種の画像処理操作が可能な画像処理装
置に関する。本発明はまた、データキャッシュを用いた
データ処理システムに関し、特に複数の独立してアドレ
ス指定されたデータの供給に関する。
【0002】本発明はさらに、コンピュータによるデー
タ操作に関し、特にコンピュータグラフィックの分野に
おけるデータ操作に関する。本発明はまた、総合コンピ
ュータシステムに接続され、画像の形成をアシストする
グラフィックコプロセッサのようなコンピュータデバイ
スによる画像形成に関する。
【0003】一方本発明は、カラー画像を入力色空間か
ら出力色空間に変換する方法および装置に関する。加え
て本発明は、ダイナミックランダムアクセスメモリ(D
RAM)アレイに複数のバーストアクセス可能なポート
を供給する電気回路に関する。特に、本発明はポート遅
延を削減しながらメモリバンド幅の利用を改良する回路
およびDRAMバンド幅の利用を増やしながら共通メモ
リアレイへの多数ポートアクセスを許可する動的メモリ
コントローラを提供する。
【0004】さらに本発明はデータオブジェクトを画像
処理システムに記憶する装置および方法に関し、特に複
数の編成に再構成可能な装置および画像処理システムに
使用されるハードウエアアクセラレータのアプリケーシ
ョンに関する。
【0005】
【従来の技術】画像処理は従来ホストコンピュータで行
われ、すべての演算処理は普通ソフトウエアでなされて
いた。しかしながら、処理速度向上の要求から、特定用
途の画像処理装置を用いて画像処理を行うことが一般的
に必要となってきている。これらの画像処理装置は典型
的に算術演算を高速化するハードウエアを結合した構成
を有し、処理速度を向上している。また、合成、色空間
変換、画像変形、畳み込み、中間調化などを含む多種の
画像処理操作が可能な画像処理装置に対する必要性や要
求も一般的なものである。
【0006】汎用的な画像処理のハードウエアを実現す
る一つの方法は、画像処理装置の中に各ブロックが一つ
の機能を実現するサブブロックを複数設けることであ
る。しかしながら、この方法では多くのハードウエアが
必要となり、非常に高価なものになる恐れがある。ま
た、この方法で実現されたハードウエアは最初に特定さ
れた機能以外の処理を行うようには構成できない。
【0007】汎用画像処理のためにハードウエアを実現
する別の方法は、いくつかの基本的な機能を実現するデ
ータパスと、あらかじめ定めた画像に対する処理シーケ
ンスを必要な画像処理機能を実現可能な制御ロジックと
を設けることである。しかし、この方法は高い処理速度
要求に対しては通常遅すぎる。また、この方法に基づい
て実現されたハードウエアは、やはり他の画像処理を実
現するようには構成できない。
【0008】上述の2つの方法を用いて必要とされる画
像処理操作を実現するためには非常に複雑な設計が必要
である。よって、通常このような画像処理装置の設計費
用は大きい。そのため、従来の装置が有していた1つま
たはそれ以上の課題を解決した、多数の画像処理操作が
可能な画像処理装置への要求は明らに存在する。データ
処理システム内のデータキャッシュは周知であり、通常
は頻繁にアクセスされるデータを記憶する小容量の高速
ランダムアクセスメモリ(RAM)で構成されている。
通常のデータキャッシュにおいては、一度に一つのデー
タにのみ処理装置からのアクセスが可能である。処理装
置がメモリ中の別個の複数テーブルのデータにあるデー
タを要求するようなシステムにおいては、必要なデータ
すべてが一つのデータパケットで供給されれば便利であ
ろう。
【0009】データの正規化は特定形式から標準形式へ
の変換技術である。正規化処理の適用範囲はコンピュー
タアーキテクチャからデータ通信に渡る工学の広い分野
に存在する。データの正規化はメモリ中でデータを移
動、操作するといったソフトウエアによるところが大き
い。しかし、いかなるシステムであっても、メモリの追
加が必要であり、特に繰り返し処理が必要な場合は比較
的処理が遅くなる恐れがある。
【0010】コンピュータによる画像は多くの異なる形
式になる傾向にある。たとえば、過去においては単に黒
と白のビットマップディスプレイがあったに過ぎず、1
画素あたり1ビットを有するビットマップが用いられて
いた。続いて、カラーディスプレイがその重要性を増
し、その結果として赤、緑および青の各色チャンネル毎
に8ビットからなる形式が重要になった。
【0011】長い時間を経て、透明性を要素に持つ複数
の画像を結合する技術が一般的になり、結果として画素
データに不透明度チャンネルが加えられた。さらに、出
力装置であるカラーディスプレイ装置がしばしば異なる
色空間マッピング技術を用いているため、他の色空間表
現(たとえばYUV、CMYK)もまた一般的である。
【0012】このような技術動向により、コンピュータ
により作成される画像オブジェクトは多数の形式のどれ
かで表現されることになり、処理装置または副処理装置
の比較的高速な画像オブジェクトの取り扱いを困難にし
ている。画像は通常赤、緑、青(RGB)形式のような
加法形式を用いたCRTタイプの表示装置で表示され
る。この形式においては、独立した色情報が赤、緑およ
び青の基本色それぞれについて供給され、これらをまと
めて表示すると、表示したい任意の色を構成する。
【0013】しかし、カラーディスプレイに表示された
画像を印刷しようとする場合、代替え色形式が一般的に
使用される。そのような代替え形式の一つはシアン、マ
ゼンタ、イエロー、ブラック(CMYK)方式である。
このような代替え色形式はカラー印刷装置、たとえばキ
ャノン(株)製の複写機兼プリンターであるキャノンC
LC500(商品名)などに広く使用されている。
【0014】加法色と減法色との関係の原理は単純であ
り、シアン、マゼンタ及びイエローが単に赤、緑及び青
のそれぞれ補色となっている。この関係は以下の式で表
すことができる。 C=1−R (式1) M=1−G (式2) Y=1−B (式3) ブラック(K)は加法基本色のすべての関数として以下
のように表される。
【0015】K=rR+gG+bB (式4) ここで、r、g、およびbは人間の赤、緑および青の知
覚で定められる係数である。実際には上記の式は不十分
であり、たとえばシアンの量は赤、緑および青の量の複
雑な非線形関数となる。他の基本色にも同様の関係が存
在する。印刷機構における非線型変換関数は2つの色形
式変換における非線型変換機能を必要とする。
【0016】色変換を実行する一つの方法は、考えられ
るすべての入力色値それぞれに対応する出力色値を記憶
した大きなルックアップテーブルを用いることである
が、この方法は多量の記憶空間を必要とする。たとえ
ば、24ビットRGB形式の入力色空間を32ビットの
CMYK出力色空間へ変換する場合、出力する各カラー
パス毎の総記憶容量は2^8(2の8乗)*2^8*2
^8(16Mバイト)になる。すべての基本色について
同時に24ビットRGB入力色空間から32ビットCM
YK色空間にマッピングする場合、64Mバイトのルッ
クアップテーブルが必要となり、明らかに非現実的であ
る。
【0017】機能的内挿は第1の色空間、たとえばRG
B色空間を第2の色空間、たとえばCYMK色空間に変
換するような色変換において特に用いられる。このよう
な色変換については米国特許第4,837,722号、
第3,893,166号および第4,511,989号
に説明されている。色空間処理は通常内奏される出力色
の分散配列を用いて行われる。
【0018】色値の分散配列を用いてもなお大きな記憶
容量が必要なのが一般的である。悪いことに現代のマイ
クロプロセッサアーキテクチャにおいては、メモリアレ
イのためのメモリチップをボード上に配置する場所が限
られていることが多い。この問題は、たとえばRGB空
間の各画素を直接対応するCMYK空間に内挿する場合
など、複数の出力色空間値を同時に生成したい場合に特
に顕著である。この場合、必要な記憶容量は4倍にな
る。
【0019】多数のポートに共通するダイナミックメモ
リアレイにバーストアクセスを許可する一つの方法は、
単純にポート間のアクセスを調停し、ポートの1つに対
して1対1対応でのメモリアレイへのアクセスを許可す
ることである。この方法においては、他のポートからア
クセス要求があっても最初のポートがメモリへのアクセ
スを放棄するまで待たなくてはならず、メモリへのアク
セスが行えないという問題がある。この待ち時間は無駄
な時間であり、全体のシステム性能を大きく削減する。
【0020】2番目のポートに最初のポートのメモリア
レイへのアクセスを切り上げさせたり中止させたりする
方法を上述したシステムに組み込むことも考えられる。
しかしこの方法によっても1つ以上のポートがアクセス
を要求し、それが拒絶された場合は依然として処理速度
の低下と無駄な待ち時間が発生する恐れがある。画像処
理システムにおいては、画像生成を加速するために複雑
なアルゴリズムがハードウエアによる画像処理装置に組
み込まれることがしばしばある。また、このような処理
装置においては、処理能力を向上するためにデータバッ
ファが用いられることがある。しかしながら特定の画像
処理に専用のデータバッファを数多く用いるのは非常に
高価である。このため、画像処理装置のアーキテクチ
ャ、特に多くの異なるタイプの処理を行う画像処理装置
のアーキテクチャに必要とされるデータバッファの容量
を最小化するという一般的な要求がある。
【0021】
【課題を解決する手段】本発明の第1は、データオブジ
ェクトに画像処理操作を行う装置であって、データオブ
ジェクトの列(ストリーム)を供給するデータ源回路
と、オペランドオブジェクト列又はアドレスに対応した
オペランドを供給する複数のオペランド源回路と、画像
処理を選択するとともに、画像処理に対応する複数のオ
プションを有効化、無効化する指示回路と、画像処理お
よびそのオプションを記憶するコンフィグレーションレ
ジスタと、画像処理の実施に必要な情報を記憶するレジ
スタファイルと、コンフィグレーションレジスタに接続
され、画像処理およびオプションをデコードするデコー
ド回路と、デコード回路に接続され、デコード回路の出
力を記憶する制御信号レジスタと、制御信号レジスタ、
レジスタファイル、データ源回路及び複数のオペランド
源回路に接続され、(a)制御信号レジスタの出力に従
ってデータ源回路からのデータおよびオペランド源回路
からのオペランドオブジェクトを受け付け、記憶し、最
配列し、(b)制御信号レジスタおよびレジスタファイ
ルの出力に従ってオペランドオブジェクトに対するアド
レスを生成し、(c)レジスタファイルの情報を画像処
理の現在のステータスを反映するように更新する入力イ
ンターフェース回路と、入力インターフェース回路、レ
ジスタファイル及び制御信号レジスタに接続され、制御
信号レジスタ及びレジスタファイルの出力に従って入力
インターフェース回路の出力に演算を行い、処理データ
オブジェクトを生成する処理回路と、処理回路に接続さ
れ、処理データオブジェクトを受信するデータ行き先回
路とを含む画像処理装置である。
【0022】そして好ましくは、処理回路が、制御信号
レジスタおよびレジスタファイルの出力に従って、入力
インターフェース回路の出力の一部に演算処理を行う複
数の同一なチャンネル処理回路と、複数のチャンネル処
理回路に接続され、制御信号レジスタの出力に従って出
力許可信号を発生してチャンネル処理回路中のデータオ
ブジェクトの流れを制御するフロー制御回路とを更に有
する画像処理装置である。
【0023】また、必要に応じて、フロー制御回路に接
続され、制御信号レジスタの出力にしたがってデータオ
ブジェクトに演算処理を行う複数の同一な演算ユニット
と、フロー制御回路及び演算ユニットに接続され、制御
信号レジスタおよびレジスタファイルの出力にしたがっ
て、複数の演算ユニットの出力とレジスタファイルの出
力を加算する結合回路と、結合回路およびフロー制御回
路に接続され、結合回路の出力の丸め処理を行い、丸め
処理された出力の絶対値を得るとともに、絶対値を制御
信号レジスタの出力にしたがってクランプする第1の後
処理回路と、複数の演算ユニットうち選択された複数の
演算ユニットと、第1の後処理回路に接続され、制御信
号レジスタの出力に従って、選択された複数の演算ユニ
ットの出力と第1の後処理回路の出力のいずれかを選択
し、選択した出力を必要に応じてクランプする第2の後
処理回路と、複数の演算回路、結合回路及び第1の後処
理回路に接続され、複数の演算回路と第1の後処理回路
の選択された出力を、複数の演算回路と結合回路の選択
された入力にルーティングするルーティング回路とを更
に有し、場合によって処理回路に含まれるチャンネル処
理回路の数が4である画像処理装置である。
【0024】本発明の第2は、2つのピクセル列と減衰
値列とを合成する装置であって、ピクセル列の内の第1
ピクセル列を供給するデータ源手段と、ピクセル列の内
の第2ピクセル列を供給する第1のオペランド源手段
と、 減衰値列を供給する第2のオペランド源手段と、
合成処理における複数のオプションを有効化又は無効化
する指示手段と、合成処理および指示手段のオプション
を記憶するコンフィグレーションレジスタと、合成処理
の実行に必要な情報を記憶するレジスタファイルと、コ
ンフィグレーションレジスタに接続され、オプションと
合成処理をデコードするデコード手段と、デコード手段
に接続され、デコード手段の出力を記憶する制御信号レ
ジスタと、制御信号レジスタ、レジスタファイル、デー
タ源手段及び第1および第2のオペランド源手段に接続
され、(a)制御信号レジスタの出力に従ってデータ源
手段からのピクセルおよび第2オペランド源手段からの
減衰値を受け付け、記憶し、最配列し、(b)制御信号
レジスタおよびレジスタファイルの出力に従って、第1
のオペランド源手段からのピクセル列を置き換えるデー
タオブジェクト列を生成し、(c)レジスタファイルの
情報を合成処理の現在のステータスを反映するように更
新する入力インターフェース手段と、入力インターフェ
ース手段、レジスタファイル及び制御信号レジスタに接
続され、制御信号レジスタ及びレジスタファイルの出力
に従って入力インターフェース手段の出力に演算を行
い、合成ピクセルを生成する処理手段と、処理手段に接
続され、合成ピクセルを受信するデータ行き先手段とを
含む合成装置である。
【0025】本発明の第3は、インターバル値、分割値
および色テーブル値の列に対して色空間を変換する装置
であって、インターバル値及び分割値を供給するデータ
源手段と、与えられるインターバル値に対応して色テー
ブル値を供給するオペランド源手段と、色変換処理にお
ける複数のオプションを有効化又は無効化する指示手段
と、指示手段の内容を記憶するコンフィグレーションレ
ジスタと、コンフィグレーションレジスタに接続され、
指示手段の内容をデコードするデコード手段と、デコー
ド手段に接続され、デコード手段の出力を記憶する制御
信号レジスタと、制御信号レジスタ、レジスタファイ
ル、データ源手段及びオペランド源手段に接続され、
(a)制御信号レジスタの出力に従ってデータ源手段か
らのインターバル値および分割値を受け付け、記憶し、
最配列し、出力する(b)制御信号レジスタの出力に従
い、インターバル値をアドレスとして使用してオペラン
ド源手段からの色テーブル値をフェッチし、記憶し、最
配列し、出力する、入力インターフェース手段と、入力
インターフェース手段及び制御信号レジスタに接続さ
れ、制御信号レジスタの出力に従って入力インターフェ
ース手段の出力に演算を行い、変換色を生成する処理手
段と、処理手段に接続され、変換色を受信するデータ行
き先手段とを含む色空間変換装置である。
【0026】本発明の第4は、元画像にアフィン画像変
換を行う装置であって、カーネルデスクリプタと重み関
数の重み付けを供給するデータ源手段と、元画像のイン
デックステーブルから与えられるインデックステーブル
アドレスに応じたインデックステーブル値を供給する第
1のオペランド源手段と、与えられるアドレスに応じて
元画像の少なくとも一つのピクセルを供給する第2のオ
ペランド源手段と、アフィン画像変換処理における複数
のオプションを有効化又は無効化する指示手段と、指示
手段の内容を記憶するコンフィグレーションレジスタ
と、コンフィグレーションレジスタに接続され、指示手
段の内容をデコードするデコード手段と、デコード手段
に接続され、デコード手段の出力を記憶する制御信号レ
ジスタと、アフィン画像変換処理の実行に必要な情報を
記憶するレジスタファイルと、制御信号レジスタ、レジ
スタファイル、データ源手段及びオペランド源手段に接
続され、(a)制御信号レジスタの出力に従ってデータ
源手段からのカーネルデスクリプタと重み関数の重み付
けを受け付け、記憶し、(b)カーネルデスクリプタ、
制御信号レジスタおよびレジスタファイルの出力に従っ
て、元画像からフェッチされるピクセルの座標を生成
し、(c)座標及びレジスタファイルの出力から、イン
デックステーブルアドレスを計算し、(d)第1のオペ
ランド源手段からインデックステーブルエントリをフェ
ッチし、(e)インデックステーブルエントリおよび座
標からピクセルアドレスを計算し、(f)前期第2のオ
ペランド源手段から少なくとも一つのピクセルをフェッ
チし、ピクセルを前期制御信号レジスタの出力にしたが
って最配列する入力インターフェース手段と、入力イン
ターフェース手段、レジスタファイル及び制御信号レジ
スタに接続され、制御信号レジスタ及びレジスタファイ
ルの出力に従って入力インターフェース手段の出力に複
数の演算処理を行い、変換ピクセルを生成する処理手段
と、処理手段に接続され、変換ピクセルを受信するデー
タ行き先手段とを含むアフィン画像変換装置である。
【0027】本発明の第5は、畳み込み行列を用いて元
画像に畳み込み処理を行う装置であって、カーネルデス
クリプタと畳み込み行列の係数を供給するデータ源手段
と、 元画像のインデックステーブルから与えられるイ
ンデックステーブルアドレスに応じたインデックステー
ブル値を供給する第1のオペランド源手段と、与えられ
るアドレスに応じて元画像のピクセルを供給する第2の
オペランド源手段と、畳み込み処理における複数のオプ
ションを有効化又は無効化する指示手段と、指示手段の
内容を記憶するコンフィグレーションレジスタと、コン
フィグレーションレジスタに接続され、指示手段の内容
をデコードするデコード手段と、デコード手段に接続さ
れ、デコード手段の出力を記憶する制御信号レジスタ
と、畳み込み処理の実行に必要な情報を記憶するレジス
タファイルと、制御信号レジスタ、レジスタファイル、
データ源手段及びオペランド源手段に接続され、(a)
制御信号レジスタの出力に従ってデータ源手段からのカ
ーネルデスクリプタと畳み込み行列の係数を受け付け、
記憶し、(b)カーネルデスクリプタ、制御信号レジス
タおよびレジスタファイルの出力に従って、元画像から
フェッチされるピクセルの座標を生成し、(c)座標及
びレジスタファイルの出力から、インデックステーブル
アドレスを計算し、(d)第1のオペランド源手段から
インデックステーブルエントリをフェッチし、(e)イ
ンデックステーブルエントリおよび座標からピクセルア
ドレスを計算し、(f)前期制御信号レジスタの出力に
したがって前期第2のオペランド源手段から複数のピク
セルをフェッチし、記憶し、最配列する入力インターフ
ェース手段と、入力インターフェース手段、レジスタフ
ァイル及び制御信号レジスタに接続され、制御信号レジ
スタの出力に従って入力インターフェース手段の出力に
演算処理を行い、変換ピクセルを生成する処理手段と、
処理手段に接続され、変換ピクセルを受信するデータ行
き先手段とを含む畳み込み処理装置である。
【0028】本発明の第6は、変換行列を用いて元デー
タオブジェクト列に線形色空間変換を施す装置であっ
て、元データオブジェクトを供給するデータ源手段と、
与えられる行数に対応して変換行列の複数の係数を供給
するオペラン源手段と、線形色空間変換処理における複
数のオプションを有効化又は無効化する指示手段と、指
示手段の内容を記憶するコンフィグレーションレジスタ
と、コンフィグレーションレジスタに接続され、指示手
段の内容をデコードするデコード手段と、デコード手段
に接続され、デコード手段の出力を記憶する制御信号レ
ジスタと、制御信号レジスタ、データ源手段及びオペラ
ンド源手段に接続され、(a)制御信号レジスタの出力
に従ってデータ源手段からの元データオブジェクトを受
け付け、記憶し、出力する(b)制御信号レジスタの出
力に従い、オペランド源手段から複数の係数をフェッチ
するための行数を生成し、(c)制御信号レジスタの出
力に従い、係数を記憶し、最配列し、出力する入力イン
ターフェース手段と、入力インターフェース手段及び制
御信号レジスタに接続され、制御信号レジスタの出力に
従って入力インターフェース手段の出力に複数の演算を
行い、変換データオブジェクトを生成する処理手段と、
処理手段に接続され、変換データオブジェクトを受信す
るデータ行き先手段とを含む線形色空間変換装置であ
る。
【0029】以下の詳細な説明においては、他の説明は
もとより、特に図129から図140およびその説明に
注意されたい。本発明の目的は、従来技術が有している
1つまたはそれ以上の課題を解決することにある。本発
明の第1は、個々に指定された複数のデータを外部メモ
リ中のデータテーブルから供給する装置であって、m
(複数)個のキャッシュラインを構成するn(複数)個
の独立して指定可能なメモリーバンクを含むキャッシュ
メモリと、n個のメモリーバンクにそれぞれ接続された
n個のプログラム可能なアドレス発生器であって、発生
器がメモリーバンクから同時に複数のデータを読み出す
ための複数のアドレスをインデックスを使用して発生
し、発生するアドレスはタグアドレスとラインアドレス
を含み、キャッシュメモリ中の対応するラインのタグア
ドレスを記憶するタグメモリと、キャッシュメモリ中の
対応するラインのライン有効ステータス(line−v
alid status)を記憶するライン有効メモリ
と、発生器で発生されたアドレスのラインアドレスに対
応したタグアドレスと、タグメモリに記憶されたタグア
ドレスとを比較し、比較結果が一致し、かつ対応するラ
インに対するライン有効ステータスが有効である場合、
ヒット信号を発生するn個のタグ比較器と、ヒット信号
に応答してキャッシュメモリから同時に複数のデータを
読み出す処理を制御し、またヒットシグナルがない場合
は外部メモリからのデータを含む1つまたはそれ以上の
ラインのフェッチを制御するキャッシュコントローラ
と、読み出したデータの出力データパケットにおける位
置を定めるデータオーガナイザとを含むデータ供給装置
である。
【0030】また別の本発明は、個々にアドレス指定さ
れた複数のデータを外部メモリ中のデータテーブルか
ら、各々がm(複数)個のキャッシュラインを有するn
(複数)個の独立してアドレス指定可能なメモリーバン
クを有するキャッシュメモリを介して供給する方法であ
って、タグアドレスとラインアドレスを含み、メモリー
バンクから同時に複数のデータを読み出すための複数の
アドレスを、インデックスを使用して発生し、キャッシ
ュメモリ中の対応するラインのタグアドレスをタグメモ
リに記憶し、キャッシュメモリ中の対応するラインのラ
イン有効ステータス(line−valid stat
us)をライン有効メモリに記憶し、発生器で発生され
た複数のアドレスそれぞれについて、タグアドレスと発
生されたアドレスのラインアドレスに対応するタグメモ
リに記憶されたタグアドレスとを比較し、比較結果が一
致し、かつ対応するラインに対するライン有効ステータ
スが有効である場合、ヒット信号を発生し、ヒット信号
に応答してキャッシュメモリから同時に複数のデータを
読み出す処理を制御し、またヒットシグナルがない場合
は外部メモリからのデータを含む1つまたはそれ以上の
ラインのフェッチを制御し、読み出したデータの出力デ
ータパケットにおける位置を定めるデータ供給方法であ
る。
【0031】さらに別の本発明は、個々にアドレス指定
された複数のデータを外部メモリ中のデータテーブルか
ら供給する装置であって、m(複数)個のキャッシュラ
インを構成する複数のメモリーバンクを有するキャッシ
ュメモリであって、複数のメモリーバンクの各々はm個
のバンクラインから構成され、キャッシュラインの各々
が各メモリーバンクからのバンクラインから構成され、
n個のメモリーバンクにそれぞれ接続されたn個のプロ
グラム可能なアドレス発生器であって、各発生器がメモ
リーバンクからデータを読み出すためのアドレスをイン
デックスを使用して発生し、発生するアドレスはタグア
ドレスとラインアドレスおよびバンクアドレスを含み、
キャッシュメモリ中の対応するキャッシュラインのタグ
アドレスを記憶するタグメモリと、キャッシュメモリ中
の対応するラインのライン有効ステータス(line−
valid status)を記憶するライン有効メモ
リと、発生器で発生されたアドレスのラインアドレスに
対応したタグアドレスと、タグメモリに記憶されたタグ
アドレスとを比較し、比較結果が一致し、かつ対応する
ラインに対するライン有効ステータスが有効である場
合、ヒット信号を発生するn個のタグ比較器と、ヒット
信号に応答してキャッシュメモリからデータを読み出す
処理を制御し、またヒットシグナルがない場合は外部メ
モリからの1つまたはそれ以上のデータを含む1つまた
はそれ以上のラインのフェッチを制御するキャッシュコ
ントローラと、読み出したデータの出力データパケット
における位置を定めるデータオーガナイザとを含むデー
タ供給装置である。
【0032】さらに別の本発明は、個々にアドレス指定
された複数のデータを外部メモリ中のデータテーブルか
ら供給する装置であって、m(複数)個のキャッシュラ
インを構成するn(複数)個の独立して指定可能なメモ
リーバンクを含むキャッシュメモリと、n個のメモリー
バンクにそれぞれ接続されたn個のプログラム可能なア
ドレス発生器であって、発生器がメモリーバンクから同
時に複数のデータを読み出すための複数のアドレスを1
つのインデックスを使用して発生し、発生するアドレス
はタグアドレスとラインアドレスおよびバンクアドレス
を含み、キャッシュメモリ中の対応するキャッシュライ
ンのタグアドレスを記憶するタグメモリと、キャッシュ
メモリ中の対応するラインのライン有効ステータス(l
ine−valid status)を記憶するライン
有効メモリと、発生器で発生されたアドレスのラインア
ドレスに対応したタグアドレスと、タグメモリに記憶さ
れたタグアドレスとを比較し、比較結果が一致し、かつ
対応するラインに対するライン有効ステータスが有効で
ある場合、ヒット信号を発生するn個のタグ比較器と、
ヒット信号に応答してキャッシュメモリから複数のデー
タ同時に読み出す処理を制御し、またヒットシグナルが
ない場合は外部メモリからの1つまたはそれ以上のデー
タを含む1つまたはそれ以上のラインのフェッチを制御
するキャッシュコントローラと、読み出したデータの出
力データパケットにおける位置を定めるデータオーガナ
イザと、装置の現在の処理モードを設定するインターフ
ェースを有し、アドレス発生器が外部メモリに記憶され
たテーブルに依存する現在の処理モードによって定まる
方法で複数のアドレスを発生するデータ供給装置であ
る。
【0033】以下の詳細な説明においては、他の説明は
もとより、特に図141から図144およびその説明に
注意されたい。本発明の目的は、従来技術における1つ
またはそれ以上の課題を解決することにある。本発明の
第1は、データワードフォーマットで供給される入力デ
ータの正規化を行う装置であって、第1データワード及
びそれに続くデータワードの形式を有する入力データを
受信する先入れ先出し(FIFO)バッファと、第1デ
ータワードをFIFOバッファの出力から受信する入力
レジスタと、入力レジスタの第1データワードおよびF
IFOバッファの出力を正規化出力データワードに変換
する組合せ回路と、組合せ回路のコンフィグレーション
信号を発生する制御ユニットと、正規化出力データワー
ドを記憶する出力レジスタとを含む正規化装置である。
【0034】また、好ましくは出力レジスタから正規化
出力ワードを読むグラフィックエンジンと、命令を解読
してグラフィックエンジン及び制御ユニットに制御信号
を供給するプログラムエージェントをさらに有する正規
化装置である。また、好ましくはFIFOバッファがリ
ードおよびライト命令を受けつけるように構成されてお
り、リード命令が制御ユニットから選択的に供給される
正規化装置である。
【0035】また、好ましくはFIFOバッファが空ま
たはデータで満たされている状態にそれぞれ対応したエ
ンプティ状態フラグおよびフル状態フラグが選択的に発
生され、FIFOバッファがエンプティおよびフル状態
フラグで表される状態に応じてリードおよびライト命令
が供給される正規化装置である。本発明の第2は、デー
タワードフォーマットで供給される入力データの正規化
を行う方法であって、(a)先入れ先出し(FIFO)
バッファに、第1データワード及びそれに続くデータワ
ードを連続して供給し、(b)第1データワードをFI
FOバッファの出力から入力レジスタに読み込むステッ
プと、(c)連続データワードをFIFOバッファの出
力に送るようにFIFOバッファを先送りし、(d)入
力レジスタからの第1のデータワードおよびFIFOバ
ッファの出力するそれに続くデータワードを正規化し、
正規化回路の出力としての正規化データを生成し、
(e)正規化回路の出力から正規化データを出力レジス
タに読み込むステップとを有し、正規化を制御ユニット
が発生するコンフィグレーション信号にしたがって実行
する正規化方法である。
【0036】以下の詳細な説明においては、他の説明は
もとより、特に図2および図49、50のいずれかまた
は両方およびその説明に注意されたい。本発明の目的
は、従来技術の1つまたはそれ以上の課題を解決するこ
とにある。本発明の第1は、ある外部データフォーマッ
トのセットから選択されたフォーマットで表現された画
像オブジェクトに対して画像処理を行う画像処理装置で
あって、外部データフォーマットのそれぞれを内部デー
タフォーマットのセットから選ばれた対応するデータフ
ォーマットにマッピングする第1のマッピング手段と、
内部データフォーマットであるときに、画像オブジェク
トに画像処理を施す計算手段と、画像処理が終了した後
で内部データフォーマットのセットの各々を外部データ
フォーマットから選択されたデータフォーマットにマッ
ピングする第2のマッピング手段を含む画像処理装置で
ある。
【0037】また、好ましくは外部データフォーマット
のセットが、データ単位あたり4チャンネルまでの連続
したデータ列を含み、好ましくはチャンネルが1、2、
4、8、または16ビットのサンプルからなる画像処理
装置である。また、望ましくは、外部データフォーマッ
トのセットが、あらかじめ定めた数の有効ビットを含む
ワードの連続から構成されるアンパックトビット列形式
を含む。
【0038】一つの好ましい形態として、内部データフ
ォーマットのセットが、各32ビットワードが4つのア
クティブバイトチャンネルからなる32ビットワード形
式を含む。また別の好ましい形態として、内部データフ
ォーマットのセットが、各32ビットワードが1つのア
クティブバイトチャンネルを有するアンパックトバイト
32ビットワード形式を含む。
【0039】第1および第2のマッピング手段が少なく
とも以下のマッピング処理の1つかそれ以上を実行する
ように構成されていることが特に好ましい。 バイト置換 バイトレーンスワップ データ複製 以下の詳細な説明においては、他の説明はもとより、特
に図2および図22から48の一つまたはそれ以上およ
びその説明に注意されたい。
【0040】本発明の目的は、従来技術の1つまたはそ
れ以上の課題を実質的に解決することにある。本発明の
第1は、入力色空間における複数の入力画素からなる入
力画像を出力色空間における出力画像に変換する変換方
法であって、出力色空間に分散する出力色値を第1のメ
モリに記憶し、入力画像の隣接画素列を供給し、列の各
画素に以下の処理を施す変換方法である。
【0041】現在の入力画素に最も近い画素に対応した
分散する出力色値をキャッシュメモリが記憶していなか
った場合、第1のメモリからキャッシュメモリに記憶
し、入力画素に対応する分散する出力色値の中から、現
在の入力画素に最も近いものをキャッシュメモリから読
み出し、出力色値を出力色空間から得るために読み出し
た出力色値を内挿する。
【0042】また別の本発明は、入力色空間における複
数の入力画素からなる入力画像を出力色空間における出
力画像に変換する変換装置であって、出力色空間に分散
する出力色値を記憶する第1のメモリと、入力画像の隣
接画素列を供給する手段と、現在の入力画素に最も近い
画素に対応した分散する出力色値を記憶していなかった
場合、第1のメモリから記憶するキャッシュメモリと、
入力画素に対応する分散する出力色値の中から、現在の
入力画素に最も近いものをキャッシュメモリから読み出
す手段と、出力色値を出力色空間から得るために読み出
した出力色値を内挿する手段とを有する変換装置であ
る。
【0043】以下の詳細な説明においては、他の説明は
もとより、特に図56から63およびその説明に注意さ
れたい。本発明の目的は、従来技術の1つまたはそれ以
上の課題を少なくとも実質的に解決することにある。本
発明の第1は、多ポートバーストダイナミックランダム
アクセスメモリ(DRAM)システムであって、メモリ
アレイと、メモリアレイを制御するコントローラと、メ
モリアレイにデータを書き込むための書き込みポート
と、メモリアレイからデータを読み出すための読み出し
ポートと、メモリアレイと読み出しポートの間に配置さ
れ、メモリアレイから読み出されたデータを一時的に記
憶する先入れ先出し(FIFO)出力バッファか、メモ
リアレイと書き込みポートの間に配置され、メモリアレ
イに書き込まれる前にデータを一時的に記憶する先入れ
先出し(FIFO)入力バッファを有する多ポートバー
ストDRAMシステムである。
【0044】好ましくは、メモリアレイからデータを読
み出すための複数の読み出しポートと、メモリアレイと
複数の読み出しポートの間に配置され、メモリアレイか
ら読み出されたデータを一時的に記憶する複数のFIF
O出力バッファを有し、もっとも好ましくはメモリアレ
イにデータを書き込むための複数の書き込みポートと、
メモリアレイと複数の書き込みポートの間に配置され、
メモリアレイに書き込む前のデータを一時的に記憶する
複数のFIFO入力バッファを有する多ポートバースト
DRAMシステムである。
【0045】また別の本発明は、メモリアレイとメモリ
コントローラを組み合わせた構成を有する多ポートバー
ストダイナミックランダムアクセスメモリ(DRAM)
装置のアクセス待ち時間を改良する方法であって、メモ
リアレイにデータを書き込むための書き込みポートを供
給し、メモリアレイからデータを読み出すための読み出
しポートを供給し、メモリアレイと読み出しポートの間
に配置され、メモリアレイから読み出されたデータを一
時的に記憶する先入れ先出し(FIFO)出力バッファ
か、メモリアレイと書き込みポートの間に配置され、メ
モリアレイに書き込まれる前にデータを一時的に記憶す
る先入れ先出し(FIFO)入力バッファのいずれかを
供給し、FIFO出力バッファまたはFIFO入力バッ
ファにデータを一時的に記憶するステップを含む、多ポ
ートバーストダイナミックランダムアクセスメモリ(D
RAM)装置のアクセス待ち時間改良方法である。
【0046】以下の詳細な説明においては、他の説明は
もとより、特に図2および図146から149の1つま
たはそれ以上およびその説明に注意されたい。本発明の
目的は、従来技術の1つまたはそれ以上の課題を解決す
ることにある。本発明の第1は、データ記憶装置であっ
て、入力データオブジェクトを受信し、入力データオブ
ジェクトを装置の多数の処理モードの一つに対応した符
号化方法を用いて符号化する符号化器手段と、符号化入
力データオブジェクトを処理モードに従って記憶する記
憶手段と、記憶手段の出力を処理モードに従って復号化
する復号化器手段と、処理モードに従って記憶手段を含
むメモリモジュールに対して読み出し及び書き込みアド
レスを発生するアドレス発生手段と、記憶手段における
データオブジェクトの記憶を制御する制御信号を発生す
る制御手段とを有するデータ記憶装置である。
【0047】また別の本発明は、複数の第1データアイ
テムを含む第1のデータオブジェクトと、1つかそれ以
上の第2データアイテムを含む第2のデータオブジェク
トを記憶するデータ記憶装置であって、第1の再編成モ
ードに従って第1データアイテムを第1のデータオブジ
ェクトの中で再編成し、再編成第1データオブジェクト
を出力する第1の再編成手段と、複数の独立アドレス指
定可能なメモリバンクから構成される記憶手段であっ
て、記憶手段が複数のメモリーラインとして構成され、
各メモリーラインが各メモリーバンクからの記憶位置
(memory location)を含み、第1のデ
ータオブジェクトがメモリーラインに別個に記憶されて
いる第1の書き込みモードに従って、再編成第1データ
オブジェクトを複数の記憶手段に書き込み、第2書き込
みモードに従って第2のデータオブジェクトを複数の記
憶手段に書き込む書き込み手段と、第1の読み出しモー
ドに従って、複数のメモリーバンクから、第1データア
イテムを各々が異なる第1のデータオブジェクトから同
時かつ独立して読み出し、第2の読み出しモードに従っ
て、複数の記憶手段から1つかそれ以上の第2のデータ
オブジェクトを読み出す読み出し手段と、第2の再編成
モードに従って、読み出された複数の第1データアイテ
ムの順序を再編成する第2の再編成手段と、再編成モー
ド、書き込みモード及び読み出しモードを制御する制御
信号を発生する制御手段とを有するデータ記憶装置であ
る。
【0048】またさらに別の本発明は、複数の第1デー
タアイテムを含む第1のデータオブジェクトと、1つま
たはそれ以上の第2データアイテムを含む第2のデータ
オブジェクトを、複数のメモリラインとして構成される
独立アドレス指定可能な複数のメモリバンクを含み、各
メモリーラインが各メモリバンクからの記憶位置(me
mory location)を有する記憶手段に記憶
する方法であって、第1の再編成モードに従い、第1デ
ータアイテムの順序を第1のデータオブジェクトの内部
で再編成し、再編成第1データオブジェクトとを出力
し、第1のデータオブジェクトがメモリーラインに別個
に記憶されている第1の書き込みモードに従って、再編
成第1データオブジェクトを複数の記憶手段に書き込
み、第2書き込みモードに従って第2のデータオブジェ
クトを複数の記憶手段に書き込み、第1の読み出しモー
ドに従って、複数のメモリーバンクから、第1データア
イテムを各々が異なる第1のデータオブジェクトから同
時かつ独立して読み出し、第2の読み出しモードに従っ
て、複数の記憶手段から1つかそれ以上の第2のデータ
オブジェクトを読み出し、第2の再編成モードに従っ
て、読み出された複数の第1データアイテムの順序を再
編成し、再編成モード、書き込みモード及び読み出しモ
ードを制御する制御信号を発生するデータ記憶方法であ
る。
【0049】以下の詳細な説明においては、他の説明は
もとより、特に図111から126の1つまたはそれ以
上およびその説明に注意されたい。
【0050】
【発明の実施の形態】「目次」 1.0 図面の簡単な説明 2.0 テーブルリスト 3.0 好適な及び他の実施例 3.1 複数のストリームアーキテクチャの概要 3.2 ホスト/コプロセッサのキューイング 3.3 コプロセッサのレジスタ説明 3.4 複数のストリームのフォーマット 3.5 現アクティブストリームの判定 3.6 現アクティブストリームのフェッチ命令 3.7 命令のデコード及び実行 3.8 命令コントローラのレジスタの更新 3.9 レジスタアクセスセマフォの意味論 3.10 命令コントローラ 3.11 ローカルレジスタファイルモジュールの説明 3.12 レジスタのリード・ライト処理 3.13 メモリエリアのリード/ライト処理 3.14 Cバス構造 3.15 コプロセッサのデータタイプとデータ操作 3.16 データ正規化処理 3.17 アクセラレータカードの画像処理 3.17.1 合成 3.17.2 色空間変換命令 a. 単一出力カラー空間(SOGCS)変換モード b. 複数出力からー空間モード 3.17.3 LPEG符号化/復号化 a. 符号化 b. 復号化 3.17.4 テーブル索引 3.17.5 データ符号化命令 3.17.6 高速DCT装置 3.17.7 ハフマン復号 3.17.8 イメージ変換命令 3.17.9 コンボルージョン命令 3.17.10 マトリクス乗算 3.17.11 階調(ハーフトーン) 3.17.12 階層イメージフォーマット伸長 3.17.13 メモリコピー命令 a. 汎用データ移動命令 b. ローカルDMA命令 3.17.14 フロー制御命令 3.18 アクセラレータカードのモジュール 3.18.1 ピクセルオーガナイザ 3.18.2 MUVバッファ 3.18.3 結果オーガナイザ 3.18.4 オペランドオーガナイザB,C 3.18.5 メインデータパスユニット 3.18.6 データキャッシュコントローラとキャッ
シュ a. ノーマルキャッシュモード b. 単一出力一般カラー空間変換モード c. 複数出力一般カラー空間変換モード d. JPEG符号化モード e. 低速JPEG復号モード f. マトリクス乗算モード g. ディスエーブルモード h. 無効化モード 3.18.7 入力インターフェーススイッチ 3.18.8 ローカルメモリコントローラ 3.18.9 その他のモード 3.18.10 外部インターフェースコントローラ 3.18.11 周辺インターフェースコントローラ テーブル索引 テーブル1: レジスタの説明 テーブル2: オペコードの説明 テーブル3: オペランドタイプ テーブル4: オペランド説明 テーブル5: モジュールセットアップ順序 テーブル6: Cバス信号の定義 テーブル7: Cバスのトランザクションタイプ テーブル8: データ操作レジスタフォーマット テーブル9: 希望データタイプ テーブル10: シンボル説明 テーブル11: 合成処理 テーブル12: SOGCSモード用アドレス合成 テーブル12A: 色空間変換用命令符号化 テーブル13: 色変換命令用のマイナーオペコード符
号化 テーブル14: データキャッシュに記憶されたハフマ
ン及び量子化テーブル テーブル15: フェッチアドレス テーブル16: ハフマン符号化用テーブル テーブル17: ハフマン及び量子化テーブル用バンク
アドレス テーブル18: 命令ワード−マイナーオペコードフィ
ールド テーブル19: 命令ワード−マイナーオペコードフィ
ールド テーブル20: 命令オペランド−結果ワード テーブル21: 命令ワード テーブル22: 命令オペランド−結果ワード テーブル23: 命令ワード テーブル24: 命令オペランド−結果ワード テーブル25: 命令ワード−マイナーオペコードフィ
ールド テーブル26: 命令ワード−マイナーオペコードフィ
ールド テーブル27: 分数テーブル [好適ならびに他の実施例の説明」好適な実施例では、
ハードウェアアクセラレータによる2つの独立命令スト
リームの利用によってハードウェアラスタリングを行う
ことで大きな利点が得られている。従って、第一の命令
ストリームが現ページの印刷準備をしている間に、次の
命令ストリームが次ページの印刷準備をすることができ
る。ハードウェア資源は、ハードウェアアクセラレータ
が出力装置以上の速度で動作可能である場合に特に効率
的に利用することができる。
【0051】好適な実施例では、2命令ストリームを用
いる構成を示す。しかし、2以上の命令ストリームを用
いる構成も可能であり、ハードウェアトレードオフを鑑
みてもより多くのストリームを用いることによる利点が
得られる。2つのストリームを用いることで、ラスタ画
像コプロセッサのハードウェア資源は、出力装置に応じ
て現ページ、バンド、ストリップなどを印刷装置に転送
している間にも、続くページ、バンド、ストリップなど
の準備に常に関わることができる。 3.1 複数ストリームアーキテクチャの一般構成 図1は、好適な実施例を含むコンピュータハードウェア
構成201を模式的に示した図である。構成201に
は、ブリッジ204を介してホスト記憶メモリ203に
接続されたホストCPU202から成る標準ホストコン
ピュータシステムが含まれている。ホストコンピュータ
システムには、オペレーティングシステムプログラム、
アプリケーション、情報ディスプレイなどの一般のコン
ピュータシステム機能が備わっており、ホストコンピュ
ータシステムはPCIバスインタフェース207を介し
て標準PCIバス206に接続されている。なお、PC
I標準は良く知られた業界標準であり、市販のほとんど
のコンピュータシステム、特にマイクロソフトウインド
ウズ(商標)オペレーティングシステムを搭載している
システムには、PCIバス206が備わっている。PC
Iバス206を用いることにより、PCIバスインタフ
ェース210、他のデバイス211、ローカルメモリ2
12などを更に含む1つ或は複数のPCIカード(例え
ば209)を構成201に付加して利用することが容易
になる。
【0052】好適な実施例では、ページ記述言語で表現
されたグラフィックス処理を高速にするために、ラスタ
画像アクセラレータカード220を備える。ラスタ画像
アクセラレータカード(PCIバスインタフェース22
1を備える)は、他のPCIカード209などと同様に
ホストCPU202とは、緩やかに結合された共有メモ
リの形態で動作するように設計されている。なお、必要
であれば、画像アクセラレータカード220を更にホス
トコンピュータシステムに付加することもできる。ラス
タ画像アクセラレータカードは、ラスタ画像処理動作に
おける複雑かつ多量の動作処理を高速化するためのもの
であり、これらの動作としては、 (a)合成 (b)一般化色空間変換 (c)JPEG符号化/復号 (d)ハフマン、ランレングス、予測符号化/復号 (e)階層的画像(商標)復号 (f)一般化アフィン画像変換 (g)小カーネル畳込演算(コンボルージョン) (h)行列演算 (i)ハーフトーン処理 (j)一括算術/メモリコピー演算 ラスタ画像アクセラレータカード220は更にラスタ画
像コプロセッサ224に接続されたローカルメモリ22
3を備え、ラスタ画像コプロセッサ224はホストCP
U202からの命令に基づいてラスタ画像アクセラレー
タカード220を起動する。ここで、コプロセッサ22
4は特定用途向けLSI(ASIC)であることが望ま
しい。また、ラスタ画像コプロセッサ224は、必要な
少なくとも1つのプリンターデバイス226を周辺イン
タフェース225を介して制御する能力を有する。更
に、画像アクセラレータカード220は、スキャナなど
の入力/出力デバイスを制御することも可能である。あ
わせて、アクセラレータカード220にはラスタ画像コ
プロセッサ224に接続された一般外部インターフェー
ス227が備えられており、モニタリングやテストを行
うこともできる。。
【0053】実行モードでは、ホストCPU202がP
CIバス206を介して一連の命令やデータを送信し、
ラスタ画像コプロセッサ224で画像の生成処理を行
う。送信されたデータはローカルメモリ223のみなら
ずラスタ画像コプロセッサ224中のキャッシュ23
0、あるいはコプロセッサ224中のレジスタ229に
蓄えられる。
【0054】図2は、ラスタ画像コプロセッサ224を
より詳細に示した図である。コプロセッサ224は、前
記の処理を高速化するためのものであり、命令制御部2
35の制御下にある複数の部位から構成される。コプロ
セッサが外界と通信するために、図1のローカルメモリ
223と通信するためのローカルメモリ制御部236を
具備している。周辺インタフェース制御部237は、プ
リンタデバイスとの通信に利用されるもので、セントロ
ニクスインタフェース標準フォーマットや他のビデオイ
ンタフェースフォーマットなどの標準フォーマットを利
用する。周辺インタフェース制御部237はローカルメ
モリ制御部236と内部接続されている。ローカルメモ
リ制御部236と外部インタフェース制御部238とは
入力インタフェーススイッチ252を介して接続されて
おり、入力インタフェーススイッチ252は命令制御部
235と接続されている。入力インタフェーススイッチ
252はまたピクセルオーガナイザ246とデータキャ
ッシュ制御部240に接続されている。入力インタフェ
ーススイッチ252は、外部インタフェース制御部23
7とローカルメモリ制御部236からのデータをスイッ
チして命令制御部235、あるいはデータキャッシュ制
御部240、ピクセルオーガナイザ246に転送するた
めのものである。
【0055】外部インタフェース制御部238は、図1
中のPCIバス206と通信するためにラスタ画像コプ
ロセッサ224中に具備されており、命令制御部235
と接続されている。また、テスト診断を行ったり、クロ
ック信号やグローバル信号を入力するために、命令制御
部239に接続され、コプロセッサ224と協調して動
作する他モジュール239が備わっている。
【0056】データキャッシュ230は、接続されてい
るデータキャッシュ制御部240の制御下で動作する。
データキャッシュ230は種々の用途において用いられ
るが、コプロセッサ224において引き続き使用される
確率の高い最近使用した値を蓄えるために主として用い
られる。上述の高速化処理は、主としてJPEG符号化
/復号器241やメインデータパス部242によって複
数のデータストリームの処理が行われる。部位241、
242は並列にピクセルオーガナイザ246と2つのオ
ペランドオーガナイザ247、248に接続されてい
る。部位241、242からの処理されたストリーム
は、結果オーガナイザ249に転送され、必要であれば
処理や再フォーマット処理が行われる。なお、中間結果
を記録しておきたいことも多いため、データキャッシュ
230に加えて、ピクセルオーガナイザ246と結果オ
ーガナイザ249との間にマルチユースト値(MUV)
バッファ250を備えている。結果オーガナイザ249
からの結果は、必要であれば外部インタフェース制御部
238、ローカルメモリ制御部236、周辺インタフェ
ース制御部237に出力される。
【0057】図2中の点線で示されているように、さら
なる(第3の)データパス部243を、JPEG符号化
/復号器241とメインデータパス部242といった他
の二つのデータパスと「並列に」接続することも可能で
ある。また、四あるいはそれ以上のデータパスを構成す
ることも同様に可能である。なお、パスは「並列に」接
続されてはいるが、並列に動作するものではなく、一つ
のパスのみが一時に動作するものであることに注意され
たい。
【0058】図2のASICの全体設計は以下のような
考えに基づいてなされた。まず第1に、印刷ページでは
小さな、或は一時的な画質劣化をも生じさせないことが
必須である。映像信号では、このような小さな画質劣化
が存在したとしても人間の目では感知されることはない
が、印刷物では印刷ページに永久的に小さな画質劣化が
残ってしまい、目立つようになることもあるからであ
る。更に、プリンタに至るまでに遅延が生じると、ペー
ジがプリンタ内を移動している間に白い未印刷の部位が
ページ上にできてしまうことがあるため、見苦しいもの
となる。そのため、高品質かつ高速に結果を提供するこ
とが必須となり、ソフトウエアを用いるアプローチより
もハードウェアの高速性に頼るアプローチの方が好まし
い。
【0059】第2に、印刷処理を実行するのに必要なさ
まざまな動作ステップ(アルゴリズム)すべてをリスト
アップし、各ステップごとに対応するハードウェアを並
べ上げると、全体のハードウェア量は膨大なものにな
り、非常に高価なものになってしまう。また、ハードウ
ェアの動作スピードは、処理に必要なデータをフェッチ
したり、あるいは処理で生成されたデータを転送するレ
ートによって本質的に制限される。すなわち、動作スピ
ードはインタフェースの帯域幅によって制約を受ける。
【0060】これに対して、全体のASICのデザイン
は、ハードウェアの全体量を模式的に表したときに、必
要なハードウェアの種々の部位が(a)重複しており、
(b)同時に実行されることはない、という驚くべき事
実に基づいている。特に、この点はデータの処理をする
前にデータを転送する際のオーバヘッドにおいて顕著に
みられる。
【0061】このような観点から、いつくかのステップ
を経て、ハードウェアのすべての部位をできるだけアク
ティブにしながら、ハードウェア量を低減することにし
た。第1のステップにおいて、画像操作では多くの場合
同一の基本的種類の繰り返し演算が必要であることを認
識した。従って、データがストリーム状に入力される
と、特定の処理を行うように処理部を構成して長いデー
タストリームを処理し、その後次に必要な処理タイプに
合うように処理部を再構成する。データストリームがか
なり長いと、再構成に要する時間は全体の処理時間と比
較して無視できるほど短くなるため、スループットが向
上することになる。
【0062】また、複数のデータ処理パスを設けると、
他のパスを使用している間に一つのパスを再構成するこ
とで、再構成に要する時間の無駄を省くこともできる。
すなわち、メインデータパス部242がより汎用的な処
理を実行している間に、他のデータパスにおいて部位2
41のようなJPEG符号化/復号、あるいは追加部位
243がある場合にはエントロピー符号化やハフマン符
号化などのより特化した処理を行うことができる。
【0063】更に、処理を進めている間に、処理部位へ
のデータのフェッチや転送を行うこともできる。また、
種々の種別のデータを標準化、統一することにより、更
に高速化を図ることができるとともに、ハードウェア資
源も有効に利用することができる。従って、データのフ
ェッチや転送に関わる全体のオーバヘッドを低減するこ
とができる。
【0064】ここで重要なことは、コプロセッサ224
がホストCPU202(図1)の制御の下で実行される
ことである。この点で、命令制御部235が、コプロセ
ッサ224全体の制御を統括する。命令制御部235
は、CBus(Cバス)と呼ばれる制御バス231によ
ってコプロセッサ224を動作させる。CBus231
はそれぞれのモジュール中のセットレジスタ(図1の2
31)を含むモジュール236−250のそれぞれに接
続され、コプロセッサ224の全体の動作を可能とす
る。図2を見やすくするために、図2では制御バス23
1からそれぞれのモジュール236−250までの接続
は示していない。
【0065】図3は、利用可能なモジュールレジスタの
模式的なレイアウト260を示した図である。レイアウ
ト260は、コプロセッサ224の全体制御のためのレ
ジスタ261と命令制御部235とが含まれる。コプロ
セッサモジュール236−260には、同様のレジスタ
262が含まれる。3.2 ホスト/コプロセッサ・キ
ューイング上述のアーキテクチャによれば、ホストプロ
セッサ202と画像コプロセッサ204との間での協調
が十分にとられていることが必要であることがわかる。
しかしながら、これに対する解は一般的なものであり、
上述のアーキテクチャ特有のものではないため、以下で
はより一般的な計算ハードウェア環境を想定して説明す
る。
【0066】現代のコンピュータシステムは、動的メモ
リ割当を行うために何かしらのメモリ管理手法を必要と
する。1つあるいは複数のコプロセッサを有するシステ
ムでは、コプロセッサによる動的メモリ割当とメモリ使
用との間で同期をとるための手法が必要である。一般的
なコンピュータハードウェア構成では、CPUと特別の
コプロセッサとを備え、それぞれが一連のメモリ群を共
有している。このようなシステムでは、CPUのみがメ
モリを動的に割り当てることのできるシステム中唯一の
部位である。コプロセッサが使用するようにCPUがメ
モリを割り当てた時点で、コプロセッサは当該メモリが
不必要になりCPUによって解放されるまで、自由にメ
モリを利用することができる。すなわち、コプロセッサ
がメモリの使用を終えた後にメモリが解放されることを
保証するために、CPUとコプロセッサとの間には何か
しらの同期が必要となる。この同期に関しては、種々の
解決策が示されてはいるが、必ずしも性能の面で好まし
いとは言い難い。
【0067】静的に割り当てられたメモリを用いれば、
同期の問題を避けることができるが、メモリ資源の利用
を動的に適応させることが不可能となる。同様に、コプ
ロセッサが処理の実行を終えるまでCPUをブロックし
待たせておくことも可能であるが、並列性を失い、全体
のシステム性能を犠牲にすることになる。コプロセッサ
からの処理の終了を知らせるインタラプト信号の利用も
可能であるが、コプロセッサのスループットが非常に高
い場合には大きな処理のオーバヘッドとなってしまう。
【0068】高性能要件の他に、このようなシステムで
は動的なメモリ欠乏に対してしなやかに対処しなければ
ならない。多くのコンピュータシステムでは種々のメモ
リサイズ構成が可能となっているが、多くのメモリを具
備するシステムでは有効資源を最大限に利用して性能を
最大にすることが重要である。同様に、最小のメモリサ
イズ構成のシステムでは、少ないメモリながらも十分な
動作を可能にすべきであり、少なくともメモリ欠乏の際
には性能がしなやかに劣化すべきである。
【0069】これらの問題を解決するために、システム
性能を最大にするとともに、コプロセッサのメモリ使用
をシステム容量や実行する処理の複雑さに動的に適応化
する同期機構が必要である。図4に、(ホスト)CPU
とコプロセッサとの同期をとる好適な構成を示す。図中
の参照番号は、図1の説明において利用したものを用い
ている。
【0070】図4において、CPU202はシステム中
のすべてのメモリ管理を統括している。CPU202
が、自身、あるいはコプロセッサ224での利用のため
に、メモリ203を割り当てる。コプロセッサ224は
グラフィックス特有の命令セットを有しており、ホスト
プロセッサ202と共有しているメモリ203から命令
1022を実行することができる。これらの命令のそれ
ぞれは結果1024を共有メモリ203に書き込むこと
ができ、またメモリ203からオペランドを読み込むこ
ともできる。ここでコプロセッサ命令のオペランド10
23や結果1024を記憶するに要するメモリ203の
量は、処理の複雑さや種別に依存する。
【0071】CPU202は、コプロセッサ224によ
って実行される命令1022を生成する処理をも行う。
CPU202とコプロセッサ224との間の並列性を最
大にするために、CPU202によって生成された命令
は1022に示されるようにキューイングされてからコ
プロセッサ224において実行される。キュー1022
中の各命令は、コプロセッサ224のためにホストCP
U202によって割り当てられた共有メモリ203中の
オペランド1023や結果1024を参照することがで
きる。
【0072】図5に示すように、これらの処理を行うた
めに、命令生成部1030、メモリ管理部1031、キ
ュー管理部1032が接続されている。これらすべての
モジュールはホストCPU202上で単一プロセスとし
て実行される。コプロセッサ224における実行命令は
命令生成部1030において生成され、メモリ管理部1
031のサービスを利用して生成された命令のオペラン
ド1023や結果1024のための領域を割り当てる。
また、命令生成部1030は、キュー管理部1032の
サービスを利用して、コプロセッサ224で実行する命
令をキューイングする。
【0073】各命令がコプロセッサ224において実行
されると、CPU202はメモリ管理部1031によっ
て命令のオペランド用に割り当てられていたメモリを解
放することができる。ある命令の結果が次の命令のオペ
ランドとなることも可能であり、その後でCPUによっ
てメモリが解放される。コプロセッサ224が命令を終
えると同時にインタラプト信号を送出しメモリを解放す
るのではなく、コプロセッサ224が命令を終えた後の
ある時点でクリーンアップ機構を起動し、命令の処理に
要した資源をシステムが解放する。クリーンアップ機構
が起動される時点は、メモリ管理部1031とキュー管
理部1032との関係に依存しており、利用可能なシス
テムメモリ量や各コプロセッサ命令に必要なメモリ量に
応じて動的に適応させることができる。
【0074】図6は、コプロセッサ命令キュー1022
の構成を模式的に示した図である。命令群はホストCP
U202によりペンディング命令キュー1040に挿入
され、コプロセッサ224によって読み出され実行に移
される。コプロセッサ224における実行処理が終了す
ると、命令はクリーンアップキュー1041に転送さ
れ、コプロセッサ224が処理を終えた後で命令が必要
とした資源の解放を行う。
【0075】命令キュー1022自身は固定あるいは動
的可変サイズの巡回バッファとして構成される。命令キ
ュー1022は、CPU202による命令の生成とコプ
ロセッサ224における命令の実行とを分離している。
各命令のオペランドと結果メモリは、命令生成時に命令
生成部1030からの要求に応じてメモリ管理部103
1(図5)によって割り当てられる。新しく生成された
命令のためのメモリ割当が、以下で説明するメモリ管理
部1031とキュー管理部1032との協調動作を起動
させ、利用可能なメモリ量や命令の複雑さにシステムが
自動的に適応できるようにしている。
【0076】命令キュー管理部102は、コプロセッサ
224が命令生成部1030によって生成された命令を
実行し終えるまで、待機することができる。しかし、メ
モリ管理部1031によって割り当てられる命令キュー
1022とメモリ203が十分大きければ、コプロセッ
サ224を全く待つ必要がないか、あるいは少なくとも
すべての命令シーケンスが終了するまで待機する必要は
ない。大きなジョブではこれらの待機時間が、数分間に
も及ぶため、効果は大きい。しかし、ピーク時のメモリ
使用量は利用可能なメモリ量を容易に超えることもあ
る。この時点で、キュー管理部1032とメモリ管理部
1031との間で協調的な動作が開始される。
【0077】命令キュー管理部1032にとって、終了
した命令を「クリーンアップ」し、動的に割り当てられ
たメモリを解放するようにとの指示がなされる時点は適
宜で構わない。メモリ管理部1031が利用可能なメモ
リが少なくなりつつある、あるいはなくなったことを検
出した場合には、キュー管理部1032にクリーンアッ
プ処理を指示し、コプロセッサ224によってもはや利
用されていないメモリを解放させる手段をとる。これに
より、メモリ管理部1031は、CPU202がコプロ
セッサ224を待つ、あるいはコプロセッサ224と同
期することなく、命令生成部1030からの新しく生成
された命令に要するメモリ要求を満足させることができ
る。
【0078】メモリ管理部1031からキュー管理部1
032に終了命令をクリーンアップする要求を出して
も、命令生成部の新しい要求を満たすに足る十分メモリ
が解放されなかった場合には、メモリ管理部1031は
キュー管理部1032にペンディング命令キュー104
0中の処理中命令の一部、例えば半分が終了するまで待
機せよ、と要求する。これにより、コプロセッサ224
命令のいくつかが終了するまでCPU202処理はブロ
ックされることになる。コプロセッサ224命令のいく
つかが終了すると、これらの命令のオペランドが解放さ
れ、要求を満たすに十分なメモリが得られる。処理中の
命令の一部のみを待つことにより、少なくともいくつか
の命令はペンディング命令キュー1040に存在してお
り、コプロセッサ224は常に動作していることにな
る。多くの場合、CPU202が待機するペンディング
命令キュー1040中の一部をクリーンアップすること
により、メモリ管理部1031にとって十分なメモリが
解放され、命令生成部1030の要求を満たすことがで
きる。
【0079】コプロセッサ224がペンディング命令の
例えば半分が実行終了するまで待機したとしても要求を
満たすだけのメモリが解放されなかったという特殊なケ
ースの場合には、メモリ管理部1031はすべてのペン
ディングコプロセッサ命令が終了するまで待機するとい
う最後の手段をとる。システムの現在のメモリ容量を超
えるような非常に大きなかつ複雑なジョブなどを除い
て、これにより命令生成部1030の要求を満たすに十
分な資源が解放される。
【0080】このようなメモリ管理部1031とキュー
管理部1032との協調動作により、システムに与えら
れたメモリ量203の中で効率的にスループットを最大
にすることが可能となる。より多くのメモリがあれば同
期の必要性は少なくなり、より大きなスループットを得
ることができる。逆に、より少ないメモリの場合には、
コプロセッサ224が乏しいメモリ203を使っての処
理が終わるまで待機することが多くなり、利用可能なメ
モリが少なくても動作はするものの性能は劣化する。
【0081】命令生成部1030からの要求を満たす際
にメモリ管理部1031が行う処理ステップを以下にま
とめる。各ステップは順々に実行され、ステップ後にメ
モリ管理部1031が要求を満たすに十分なメモリ20
3が得られるかどうか調べる。十分なメモリが得られる
場合には要求が満たされるため、ステップを終了する。
得られなかった場合には、次のステップに進み、要求を
満たすべくより過激な処理に進む。 1.利用可能なメモリ203で要求を満たすことを試み
る 2.すべての終了した命令をクリーンアップする 3.ペンディング命令の一部が終了するのを待つ 4.すべてのペンディング命令が終了するのを待つ なお、要求を満たすために、ペンディング命令のうちの
異なる部分(例えば、1/3や2/3)を待機すると
か、多量のメモリを使用することがわかっている特定の
命令を待機するなど、他のオプションを用いることもで
きる。
【0082】図7において、メモリ管理部1031とキ
ュー管理部1032との間での協調動作に加えて、固定
長命令キューバッファ1050が溢れた場合にはキュー
管理部1032がコプロセッサ224と同期をとること
もできる。このような状況を図7に示しており、ペンデ
ィング命令キュー1040は長さ10個の命令のキュー
としている。付加される最新の命令が最も大きい数を有
しているため、領域が溢れると最新の命令は位置9に格
納される。次にコプロセッサ224に入力される命令は
位置0において待機している。
【0083】領域が溢れた場合には、キュー管理部10
32はコプロセッサ224がペンディング命令の例えば
半分の処理を終えるまで待機する。この待機により、通
常はキュー管理部1032によって挿入される新しい命
令に必要な十分な領域が解放される。新しい命令をスケ
ジューリングする際のキュー管理部1032の動作は以
下の通りである。 1.命令キュー1040に十分な領域が残っているかテ
ストする 2.十分な領域が残っていない場合は、コプロセッサが
ある所定数の命令が終了するまで待機する 3.新しい命令をキューに挿入する ある命令が終了するのを待機せよと指示されたキュー管
理部1032の動作は以下の通りである。 1.命令が終了したとコプロセッサ224から指示され
るまで待機する 2.クリーンアップされていない終了した命令がある場
合には、次に終了した命令をキューから削除する 新しい命令を生成する際の命令生成部1030の動作は
以下の通りである。 1.命令オペランド1023に必要なメモリをメモリ管
理部1031に要求する 2.転送する命令を生成する 3.コプロセッサ命令をキュー管理部1032に転送し
実行する 以上の動作プロセスを擬似コードの形で示した例を以下
に示す。
【0084】 メモリ管理 ALLOCATE_MEMORY BEGIN IF 要求を満たすのに十分なメモリが得られないとすると THEN 終了した命令すべてをクリーンアップ(一掃)する ENDIF IF 要求を満たすのに十分なメモリが未だ得られないとすると THEN WAIT_FOR_INSTRUCTIONを呼び出 し、ペンディング命令の半分の終了を待つ ENDIF IF 要求を満たすのに十分なメモリが未だ得られないとすると THEN エラーを出力し戻る ENDIF 割り当てたメモリを戻す キュー管理 SCHEDULE_INSTRUCTION BEGIN IF 命令キューに十分な領域が得られないとすると THEN ある所定数の命令をコプロセッサが終了するまで待機する ENDIF 新しい命令をキューに付加する END WAIT_FOR_INSTRUCTION(i) BEGIN 命令iが終了したとコプロセッサから指示されるまで待機する WHILE 終了しているもののクリーンアップされていない命令が ある DO IF 次の終了した命令にクリーンアップ機能が備わっている THEN クリーンアップ機能を呼び出す ENDIF キューから終了した命令を削除する DONE END 命令生成部 GENERATE_INSTRUCTIONS BEGIN ALLOCATE_MEMORYを呼び出し、命令オペランドに必要な メモリをメモリ管理部において割り当てる 転送する命令を生成する SCHEDULE_INSTRUCTIONを呼び出し、コプロセッサ 命令をキュー管理部に転送し実行する END 3.3 コプロセッサのレジスタの説明 図1と3において説明したように、コプロセッサ224
は各命令ストリームを実行するために複数のレジスタを
備える。
【0085】図2中のモジュールに対して、表1はコプ
ロセッサ224において用いられるレジスタの名前、種
別、説明を示しており、付録Bはそれぞれのレジスタの
各フィールドを説明している。 レジスタの説明
【0086】
【表1A】
【0087】
【表1B】
【0088】
【表1C】
【0089】
【表1D】
【0090】
【表1E】
【0091】
【表1F】
【0092】
【表1G】
【0093】これらのレジスタ中で着目すべきものは以
下のものである。 (a)命令ポインタレジスタ(ic_ipaとic_i
pb)。これらのレジスタペアは現在実行している命令
の仮想アドレスを格納する。仮想アドレスの昇順に命令
がフェッチされ実行される。制御が不連続な仮想アドレ
スに移る場合にはジャンプ命令が用いられる。各命令に
は、32ビットのシーケンス番号が付与され、シーケン
ス番号は一命令ごとに1ずつ増える。シーケンス番号は
コプロセッサ224とホストCPU202双方におい
て、命令の生成と実行の同期をとるために用いられる。 (b)終了レジスタ(ic_fnaとic_fnb)。
これらのレジスタペアは、終了した命令のシーケンス番
号を格納する。 (c)ToDoレジスタ(ic_tdaとic_td
b)。これらのレジスタペアは、キューイングされてい
る命令のシーケンス番号を格納する。 (d)インタラプトレジスタ(ic_intaとic_
intb)。これらのレジスタペアは、インタラプトを
かけるシーケンス番号を格納する。 (e)インタラプト状態レジスタ(ic_stat.a
_primedとic_stat.b_prime
d)。これらのレジスタペアは、インタラプト、終了レ
ジスタとが合致した時点でインタラプトを起動するフラ
グであるプライムビットを格納する。本ビットは、イン
タラプト状態(ic_stat)レジスタ中の他のイン
タラプトイネーブルビットや他の状態/構成情報と同様
に格納される。 (f)レジスタアクセスセマフォア(ic_semaと
ic_semb)。ホストCPU202は、コプロセッ
サ224への高速性、即ち、1回以上のレジスタへの書
き込みを必要とするレジスタアクセスに先立ちセマフォ
アを入手しておかなければならない。これに対して、高
速性を必要としないレジスタアクセスの場合は何時でも
実行することができる。ホストCPU202がセマフォ
アを入手することに付随する欠点は、現在実行中の命令
が終了するまでコプロセッサの実行が中断することであ
る。レジスタアクセスセマフォアは、コプロセッサ22
4の構成/状態レジスタの1ビットとして構成される。
これらのレジスタは命令制御美のレジスタ領域中に存在
する。前述の通り、コプロセッサの各サブモジュール
は、それぞれ構成/状態レジスタを備えており、通常の
命令実行においてレジスタが設定される。これらのすべ
てのレジスタは、レジスタマップ上に表されており、多
くは命令実行において暗黙的に修正される。ホストはレ
ジスタマップを介してこれらのレジスタの内容を知るこ
とができる。 3.4 複数ストリームフォーマット 前述の通り、資源を最大限に有効に利用するために、ま
た外部周辺装置に高速に出力するために、コプロセッサ
224は2つの独立な命令ストリームの1つを実行す
る。通常は、1つの命令ストリームは出力デバイスが適
時点で必要とする現在の出力ページに対応しており、2
つ目の命令ストリームが他の命令ストリームが休止中で
あるときにコプロセッサ224のモジュールを利用す
る。ここで、最も重要な点は、必要な出力データを適時
点で出力することであるとともに、続くページ、バンド
などの準備のために資源を最大限に利用することであ
る。従って、コプロセッサ224は、全く独立であるも
のの同じように実行される2つの命令ストリーム(以
下、AとBと呼ぶ)を実行するように設計される。命令
はホストCPU202上で動作しているソフトウエアに
よって生成され、ラスタ画像アクセラレータカード22
0に転送されコプロセッサ224によって実行されるこ
とが望ましい。通常動作では、命令ストリームの1つ
(ストリームA)は、他の命令ストリーム(ストリーム
B)よりも高い優先度で動作する。命令ストリームある
いはキューはホストRAM203(図1)中の一つある
いは複数のバッファに書き込まれる。バッファは開始時
点で割り当てられ、アプリケーションの実行中はホスト
203の物理メモリに固定される。各命令はホストRA
M203の仮想メモリ環境に格納されることが好まし
く、ラスタ画像コプロセッサ224が仮想アドレスから
物理アドレスへの変換を行い、次の命令の位置としてホ
ストRAM203中の対応する物理アドレスを決定す
る。これらの命令は順々にコプロセッサ224のローカ
ルメモリに格納される。
【0094】図8は、ホストRAM203中に格納され
ている2つのストリームAとBのフォーマットを示す図
である。ストリームAとBそれぞれのフォーマットは本
質的に同一である。コプロセッサ224における簡単な
実行モデルは、以下のものから構成される。 *AストリームとBストリームの2つの命令仮想ストリ
ーム *通常はある時点で1つのみの命令が実行される *どちらかのストリームが優先権を有することもできる
し、「ラウンドロビン」的に優先権を交互にすることも
できる *どちらかのストリームを「ロック」して、ストリーム
優先権や他のストリームの命令実行可能度に関わらず、
確実に実行することもできる *どちらかのストリームが空であっても良い *どちらかのストリームが利用不能であっても良い *どちらかのストリームは、後続の命令が「オーバラッ
プ」していなければ、次の命令の実行と「オーバラッ
プ」しているような命令を含んでいても良い *各命令は32ビットの1つずつ増加するような「一意
な」シーケンス番号を有する *各命令はインタラプトや命令実行を停止させるコード
を有していても良い *外部インタフェースの遅延の影響を最小限にするため
に、命令をあらかじめフェッチしても良い 命令制御部235は、コプロセッサ224の全体の実行
制御を行うためや、必要な時にホストRAM203から
命令をフェッチするために、コプロセッサの命令実行モ
デルを実装している。一つの命令ごとに、命令制御部2
35は命令の復号を行い、CBus231を介してモジ
ュール中の種々のレジスタを構成し、該当モジュールに
命令を実行させる処理を行う。
【0095】図9は、命令制御部235で実行する命令
実行サイクルを簡単な形で示した図である。命令実行サ
イクルは4つの主なステージ276−279から成る。
第1ステージ276では、命令ストリームにおいて命令
がペンディング状態であるかどうかを調べる。ペンディ
ング状態である場合には、命令をフェッチして277、
復号ならびに実行し278、レジスタを更新する27
9。 3.5 現在のアクティブストリームの決定 第1ステージでは、2つのステップを実行しなければな
らない。 1.命令がペンディングしているかどうかの決定 2.どの命令ストリームを次にフェッチするかの決定 どの命令がペンディングであるかを決定するためには次
の可能性を調べる。 1.命令制御部がイネーブルかどうか 2.内部エラーやインタラプトにより命令制御部が休止
しているかどうか 3.ペンディングしている外部エラー状態があるかどう
か 4.AあるいはBのストリームがロックしているかどう
か 5.どちらかのストリームシーケンス番号がイネーブル
かどうか 6.どちらかのストリームがペンディング命令を有して
いるかどうか 以下に示す擬似コードは、上記ルールに基づいて命令が
ペンディングしているかどうかを決定するアルゴリズム
を示したものである。このアルゴリズムは、既知の技術
を用いて、命令制御部235中に状態遷移機械を介して
ハードウェアとして実装することができる。
【0096】 ifエラーモードでなく、稼働モードであり、バイパスモードでもなく、自己 診断モードである if Aストリームがロックされていて休止中でない if Aストリームが稼働モードであり、かつ「Aストリームのシーケン ス番号が休止中、あるいはAストリームに命令が存在する」 命令はペンディングしている else 命令はペンディングしていない end if else if Bストリームがロックされていて休止中でない if Bストリームが稼働モードであり、かつ「Bストリームのシーケ ンス番号が休止中、あるいはBストリームに命令が存在する」 命令はペンディングしている else 命令はペンディングしていない end if else /*ストリームがロックされていない*/ if Aストリームが稼働モードで休止中でない、かつ「Aストリー ムのシーケンス番号が休止中、あるいはAストリームに命令が存在する」 命令はペンディングしている else 命令はペンディングしていない end if end if else /*インタフェース制御部が稼動していない*/ 命令はペンディングされていない end if いかなる命令もペンディングしていない場合には、命令
制御部235はペンディング命令が見つかるまで「スピ
ン」あるいはアイドル状態となる。
【0097】どのストリームがアクティブであるか、ど
のストリームを次に実行するかを決定するために、次の
状態が調べられる。 1.どちらかのストリームがロックされているか 2.AとBのストリームにどの優先権が付与されてお
り、最後に実行した命令ストリームはどちらであるか 3.どちらかのストリームが稼動しているか 4.どちらかのストリームがペンディング命令を有して
いるか 以下は、命令制御部によって実装される擬似コードを示
したものであり、どのように次にアクティブとなるスト
リームを決定するかを示している。
【0098】 if Aストリームがロックされている 次のストリームはA else if Bストリームがロックされている 次のストリームはB else /*どちらのストリームもロックされていない*/ if Aストリームが稼動モード、かつ「Aストリームのシーケンス番 号が休止中、あるいはAストリームに命令が存在する」、かつ「Bストリームが 稼動モードで、「Bストリームのシーケンス番号が休止中、あるいはBストリー ムに命令が存在」」しなければ、次のストリームはA else if Bストリームが稼動モード、かつ「Bストリームのシーケ ンス番号が休止中、あるいはBストリームにペンディング命令が存在する」、か つ「Aストリームが稼動モードで、「Aストリームのシーケンス番号が休止中、 あるいはAストリームに命令が存在」」しなければ、次のストリームはB else /*どちらのストリームも命令が存在しない*/ if pri=0 /*A高、B低*/ 次のストリームはA else if pri=1 /*A低、B高*/ 次のストリームはB else if pri=2or3 /*ラウンドロビン*/ if 最後のストリームがA 次のストリームはB else 次のストリームはA end if end if end if end if 条件は常に変化しているため、すべての条件を短時間で
調べることが必要である。 3.6 現在のアクティブストリームのフェッチ命令 次のアクティブ命令ストリームを決定すると、命令制御
部235は対応する命令ポインタレジスタ(ic_ip
aとic_ipb)中のアドレスを用いて命令をフェッ
チする。しかしながら、有効な命令が既に命令制御部2
35中のプレフェッチバッファ内に存在する場合には、
命令制御部235は命令をフェッチしない。
【0099】以下の条件が満たされるときに、プレフェ
ッチバッファ中の命令が有効になる。 1.プレフェッチバッファが有効である 2.プレフェッチバッファ中の命令が現在のアクティブ
ストリームと同じストリームからのものである プレフェッチバッファの内容の有効性は、ic_sta
tレジスタ中のプレフェッチビットによって表され、当
該ビットは命令のプレフェッチが成功した際にセットさ
れる。なお、命令制御部235のいかなるレジスタへの
外部書き込みも、プレフェッチバッファの内容を無効に
させる。 3.7 復号、実行命令 命令がフェッチされ、受理されると、命令制御部235
は命令を復号し、命令を実行するためにコプロセッサ2
24のレジスタ229を構成する。
【0100】ラスタ画像コプロセッサ224において用
いられる命令フォーマットは、命令の生成がホストCP
U202からの命令によって実行され、ホストに対して
直接的なオーバヘッドになるという点で、従来のプロセ
ッサ命令セットとは異なる。また、命令はホストRAM
203に格納され、図1のPCIバス206を介してコ
プロセッサ224に転送されるため、命令はできるだけ
小型化すべきである。好ましくは、コプロセッサ224
は単一の命令によって実行開始されることが望ましい。
また、将来の変更に最大限対処可能とするためには、命
令セットの柔軟性をできるだけ保持することが望まし
い。更に、コプロセッサ224において実行される命令
はオペランドデータの長いストリームにも適用でき、最
適な性能が得られるようにすることも好ましい。なお、
コプロセッサ224が用いる命令復号「哲学」として、
「一般的な命令」の復号を簡潔にかつ高速に行うととも
に、「一般的でない」処理に対してもコプロセッサ22
4の動作に対して細かい制御をホストシステムが行える
ようにデザインを取り入れている。
【0101】図10は、それぞれが32ビットの8ワー
ドから成る単一命令280フォーマットを示している。
各命令は、命令ワード(オプコード)281、オペラン
ドの種別を示すオペランドあるいは結果タイプデータワ
ード282を含む。3つのオペランドA,B,Cのアド
レス283−285も、結果アドレス286とともに含
まれる。更に、領域287も、ホストCPU202が用
いる命令に関する情報を格納するために含んでいる。
【0102】図11は、命令の命令オプコード281の
構造290を示した図である。命令オプコードは32ビ
ット長で、主オプコード291、補オプコード292、
インタラプト(I)ビット293、一部復号(Pd)ビ
ット294、レジスタ長(R)ビット295、ロック
(L)ビット296、長さ297を含む。命令ワード2
90のそれぞれのフィールドの説明を以下の表に示す。
【0103】オプコード説明
【0104】
【表2A】
【0105】
【表2B】
【0106】Iビットフィールド293をセットするこ
とによって、命令が終了した時点で命令の実行がインタ
ラプトされ休止するように命令をコード化することがで
きる。なお、このインタラプトは「命令終了インタラプ
ト」と呼ばれる。一部復号ビット294は、一部復号ビ
ット294のビットがセットされ、ic_cfgレジス
タ中で稼動モードになると、以下に述べるように命令の
実行に先立ち種々のモジュールがマイクロコード化され
るというような一部復号機能を提供する。ロックビット
296は、開始にあたり1つ以上の命令を必要とする処
理の際に用いられる。この際には、命令に先立ち種々の
レジスタがセットされ、次の命令のために現在の命令ス
トリームを「ロック」される。Lビット296がセット
されると、命令が終了した時点で次の命令が同じストリ
ームからフェッチされる。長さフィールド297は各命
令の一般的な定義であり、必要となる「入力データ項
目」数あるいは「出力データ項目」数として定義され、
16ビット長である。64、000項目以上の入力デー
タ項目のストリームに対する処理の場合には、Rビット
295がセットされ、図2のピクセルオーガナイザ24
6中のpo_lenレジスタから入力長を得る。当該レ
ジスタはこのような命令の直前にセットされる。
【0107】図10において、ある命令に必要なオペラ
ンド283〜286の数は用いる命令タイプに応じて可
変である。以下の表は、各命令タイプごとにオペランド
数と長さの定義とを示したものである。 オペランドタイプ
【0108】
【表3】
【0109】図12は、3オペランド命令に対する図1
0のデータワード、オペランド記述子282のデータワ
ードフォーマット300と、2オペランド命令に対する
データワードフォーマット301とを示している。以下
の表に、オペランド記述子のコード化の詳細を示す。 オペランド記述子
【0110】
【表4】
【0111】上述の表において、一定データアドレスモ
ードの場合には、コプロセッサ224が1つの内部デー
タ項目をフェッチあるいは計算して、この項目を当該オ
ペランドの命令長として用いる。タイルアドレスモード
の場合には、コプロセッサ224がいくつかのデータを
サイクルして「タイル効果」を得る。オペランド記述子
のLビットがゼロの場合には、データが短く、データ項
目がオペランドワード中に存在することを意味する。
【0112】図10において、それぞれのオペランド/
結果ワード283−286は、オペランド自身の値ある
いはデータが格納されているオペランド/結果の開始位
置を示す32ビット仮想アドレスを含む。図2の命令制
御部235は、命令を二段階で復号する。最初に、命令
の主オプコードが有効であるかを調べ、主オプコード
(図11)が無効である場合にはエラーを生成する。次
に、CBus231を介して種々のレジスタを設定する
ことにより、命令制御部235が命令を実行し、命令に
指定されている動作を行う。なお、設定するレジスタが
ないような命令もある。
【0113】各モジュールのレジスタは動作に応じてい
くつかの種別に分けられる。まず、状態レジスタタイプ
があり、他のモジュールからは「読み込まれるのみ」
で、レジスタを含むモジュールによって「読み込み/書
き込み」されるものがある。次に、構成レジスタの一番
目のタイプ(以降、config1)は、モジュールか
ら外部的に「読み込み/書き込み」され、レジスタを含
むモジュールからは「読み込みのみ」される。これらの
レジスタは一般にアドレス値などの大きなタイプ構成情
報を格納する際に用いられる。構成レジスタの二番目の
タイプ(以降、config2)はすべてのモジュール
から読み込み、書き込みができるが、レジスタを含むモ
ジュールからは読み込みしかできない。このレジスタタ
イプは、レジスタのビットごとのアドレシングが必要な
ときに用いられる。
【0114】制御タイプのレジスタとしては種々のもの
が存在する。第一のタイプ(以降、control1レ
ジスタ)はすべてのモジュール(レジスタを含むモジュ
ールも含む)によって読み込み/書き込みが可能であ
る。Control1レジスタは、アドレス値などの大
きな制御情報を格納する際に用いられる。同様に、制御
レジスタの第二のタイプ(以降、control2)
は、ビットごとに設定される。
【0115】最後のレジスタタイプ(インタラプトレジ
スタ)は、レジスタを含むモジュールによって1にセッ
トされ、セットされたビットに「1」を外部から書き込
みことによりゼロにリセットすることができるようなビ
ットをレジスタ内に含む。このようなタイプのレジスタ
はそれぞれのモジュールからのインタラプト/エラー信
号に対処するために用いられる。
【0116】コプロセッサ224の各モジュールは、命
令を実行中でビジー状態のときには、CBus231上
のc_activeラインをセットする。このため、命
令制御部235は、CBus231上の各モジュールか
らのc_activeラインの「OR」をとり、命令が
終了した時点を把握することができる。ローカルメモリ
制御モジュール236と周辺インタフェース制御モジュ
ール237とは、オーバラップ命令を実行することがで
き、オーバラップ命令を実行する際に起動するc_ba
ckgroundラインを備える。オーバラップ命令
は、ローカルメモリインタフェースと周辺インタフェー
スとの間でデータを転送する「ローカルDMA」命令で
ある。
【0117】オーバラップローカルDMA命令の実行サ
イクルは、他の命令の実行サイクルとは異なる。オーバ
ラップ命令が実行に移されるにあたっては、命令制御部
235が既にオーバラップ命令が実行されているかどう
かを調べる。オーバラップ命令が既に存在すれば、ある
いはオーバラップ命令が不稼動モードになっていれば、
命令制御部235は命令が終了するのを待ってから、当
該命令の実行に移る。オーバラップ命令が存在せず、か
つ稼動モードになっていれば、命令制御部235はすぐ
にオーバラップ命令を復号し、周辺インタフェース制御
部237やローカルメモリ制御部236を構成し命令を
実行する。レジスタを構成し終えたら、従来の意味で命
令が終了するのを待たずに命令制御部235はレジスタ
(終了レジスタ、状態レジスタ、命令ポインタ等)を更
新する。この時点で、終了シーケンス番号はインタラプ
トシーケンス番号と同一であれば、「オーバラップ命令
終了」インタラプト信号を出力するのではなく単に当該
信号を用意する。「オーバラップ命令終了」インタラプ
ト信号は、オーバラップ命令が完全に終了した時点で出
力される。
【0118】命令が復号されると、命令制御部は現在の
命令を実行しつつ、次の命令をプレフェッチする。ほと
んどの命令では、命令のフェッチ、復号よりも命令の実
行に要する時間の方がかなり長い。命令制御部235
は、以下の条件が揃った時点で命令をプレフェッチす
る。 1.現在実行中の命令がインタラプトや休止中でない 2.現在実行中の命令がジャンプ命令でない 3.次の命令ストリームがプリフェッチ可能である 4.他にペンディングしている命令が存在する 命令制御部235がプレフェッチ可能と判断すると、次
の命令に要求を出し、プレフェッチバッファに配置し、
バッファを有効にする。ここまで処理を進めると、命令
制御部235は現在実行中の命令が終了するまでは何も
することがなく、当該命令の終了をCBus231上の
c_activeとc_backgroundラインを
調べることのみを行う。 3.8 命令制御部のレジスタの更新 命令が終了すると、命令制御部235は新しい状態を反
映させるためにレジスタの更新を行う。この処理は外部
からのアクセスとの同期の問題を避けるために高速に行
わなければならない。この高速更新処理は以下の手順で
行われる。 1.適切なレジスタアクセスセマフォアの入手。セマフ
ォアが命令制御部235の外部のエージェントによって
占有されている場合には、セマフォアが解放されるまで
命令実行サイクルが待機し、解放されてから処理に移
る。 2.適切なレジスタの更新。命令が適切なジャンプ命令
でない場合には、命令ポインタ(ic_ipaとic_
ipb)を命令のサイズ分増加させる。ジャンプ命令の
ときは、ジャンプ先の値が命令ポインタにロードされ
る。従って、シーケンス番号が稼動モードであれば終了
レジスタ(ic_fnaとic_fnb)は増加するこ
とになる。
【0119】状態レジスタ(ic_stat)も新しい
状態を反映させるように適切に更新される。必要であれ
ば、休止ビットを設定することもある。インタラプトが
生じ、インタラプトに対する休止が稼動状態になった
り、エラーが生じた場合には、命令制御部235は休止
する。休止は、状態レジスタ中の命令ストリーム休止ビ
ット(a_pauseとb_pause)をセットする
ことによって起動される。命令実行を再開する際には、
これらのビットを0にリセットしなければならない。 3.1クロックサイクル時間、CBus231上にc_
end信号を送出し、コプロセッサ224中の他のモジ
ュールに命令が終了した旨を伝える。 4.必要であればインタラプトを送出する。インタラプ
トの送出は、以下の状況のときに送出される。 a.「シーケンス番号終了」インタラプトが生じたと
き。すなわち、終了レジスタ(ic_fnaとic_f
nb)シーケンス番号がインタラプトシーケンス番号と
一致したとき。このとき、インタラプトが準備され、シ
ーケンス番号が稼動モードになり、インタラプトが生じ
る。あるいは、 b.終了した命令が終了時点でインタラプトするように
符号化されている場合。この場合にはインタラプト機構
が起動される。 3.9 レジスタアクセスセマフォアのセマンティック
ス レジスタアクセスセマフォアは、複数の命令制御レジス
タに高速アクセスを提供する機構である。高速アクセス
を必要とするレジスタとして、以下のものが挙げられ
る。 1.命令ポインタレジスタ(ic_ipaとic_ip
b) 2.ToDoレジスタ(ic_tdaとic_tdb) 3.終了レジスタ(ic_fnaとic_fnb) 4.インタラプトレジスタ(ic_intaとic_i
ntb) 5.構成レジスタ中の休止ビット(ic_cfg) 外部エージェントはすべてのレジスタをいつでも安全に
読むことができる。また、外部エージェントはすべての
レジスタにいつでも書き込むことができるが、命令制御
部235がこれらのレジスタ中の値を更新してしまわな
いように、外部エージェントはまずレジスタアクセスセ
マフォアを入手しなければならない。命令制御部は、レ
ジスタアクセスセマフォアが外部で宣言されている間は
上述のレジスタ中の値を更新することはできない。ま
た、命令制御部235は、高速を維持するために1クロ
ックサイクルの間に上述のすべてのレジスタを更新す
る。
【0120】前述のように、シーケンス機構が稼動モー
ドであれば、各命令には32ビットの「シーケンス番
号」が付与されている。命令シーケンス番号は順々に増
加していき、0xFFFFFFFFから0x00000
000にラッピングされる。外部からの書き込みがイン
タラプトレジスタ(ic_intaとic_intb)
になされると、命令制御部235はすぐに以下の比較と
更新を行う。 1.インタラプトシーケンス番号(インタラプトレジス
タ中の値)が同一ストリームの終了シーケンス番号(終
了レジスタ中の値)よりも「大きければ」(モジュロ演
算)、命令制御部は状態レジスタ中の「シーケンス番号
終了」準備ビット(ic_stat中のa_prime
dとb_primedビット)をセットすることで「シ
ーケンス番号終了」インタラプト機構を準備する。 2.インタラプトシーケンス番号が終了シーケンス番号
よりも「小さく」、当該ストリームにおいてオーバラッ
プ命令が実行中であり、インタラプトシーケンス番号が
最後のオーバラップ命令シーケンス番号(ic_loa
あるいはic_lobレジスタ中の値)と同一であれ
ば、命令制御部はic_statレジスタ中のa_ol
_primedあるいはb_ol_primedビット
をセットすることで「オーバラップ命令シーケンス番号
終了」インタラプト機構を準備する。 3.インタラプトシーケンス番号が終了シーケンス番号
よりも「小さく」、当該ストリームにおいてオーバラッ
プ命令が実行中であり、インタラプトシーケンス番号が
最後のオーバラップ命令シーケンス番号と同一でなけれ
ば、インタラプトシーケンス番号は終了命令を示すこと
になり、インタラプト機構は準備されない。 4.インタラプトシーケンス番号が終了シーケンス番号
よりも「小さく」、当該ストリームにおいてオーバラッ
プ命令が実行中でなければ、インタラプトシーケンス番
号は終了命令を示すことになり、インタラプト機構は準
備されない。
【0121】外部のエージェントは、状態レジスタ中の
インタラプト準備ビット(a_primed,a_ol
_primed,b_primed,b_ol_pri
medビット)をセットすることができ、インタラプト
機構を独立に起動、解除することができる。 3.10 命令制御部 図13は、命令制御部235をより詳細に示した図であ
る。命令制御部235は、命令実行サイクルを処理しコ
プロセッサ224の全体の実行制御を管理する実行制御
部305を含む。実行制御部305は、命令制御部23
5の全体の実行制御を管理し、命令シーケンスを決定
し、命令のフェッチやプレフェッチを行い、命令の復号
や命令制御レジスタの更新を行う。命令制御部は更に命
令復号器306を備える。命令復号器306は、プレフ
ェッチバッファ307から命令を受信し、前述の通り復
号する。命令復号器306は、他のコプロセッサモジュ
ール中のレジスタを構成して命令を実行する処理も行
う。プレフェッチバッファ制御部307は、プレフェッ
チバッファ制御部中のプレフェッチバッファからの読み
込みや書き込みを管理するとともに、命令復号器306
と入力インタフェーススイッチ252(図2)との間の
インタフェースをも管理する。また、プレフェッチバッ
ファ制御部307は二つの命令ポインタレジスタ(ic
_ipaとic_ipb)の更新をも管理する。命令制
御部235、種々のモジュール239(図2)、外部イ
ンタフェース制御部238(図2)からのCBus23
1(図2)へのアクセスは、三つのモジュールのアクセ
ス要求間での調停を行う「CBus」調停部308にお
いて行われる。要求はCBus231によって種々のモ
ジュールのレジスタ部に転送される。
【0122】図14は、図13の実行制御部305をよ
り詳細に示した図である。前述の通り、実行制御部は図
9の命令実行サイクル275の処理を管理し、特に以下
の処理を行う。 1.次の命令をどの命令ストリームから取り出すかを決
定し、 2.当該命令のフェッチを開始し、 3.プレフェッチバッファに格納されている命令の復号
を命令復号器に指示し、 4.次の命令のプレフェッチを決定して開始し、 5.命令の終了を決定し、 6.命令が終了したらレジスタを更新する。
【0123】実行制御部は、全体の命令実行サイクルを
管理する大きなコア状態器310(以下、中枢部と呼
ぶ)を備える。図15は、上述の命令実行サイクルを管
理する中枢部310状態遷移図を示した図である。図1
4において、実行制御部は命令プレフェッチ論理部31
1を備える。この部位は、実行すべき命令が存在するか
どうか、どの命令ストリームに命令が属するか、の決定
処理を行う。図15の遷移図において開始312ならび
にプレフェッチ313状態は、この情報を用いて命令を
入手する。図14のレジスタ管理部317は、双方の命
令ストリームのレジスタアクセスセマフォアをモニタ
し、各モジュール中の必要なすべてのレジスタを更新す
る処理を行う。また、終了レジスタ(ic_fnaとi
c_fnb)とインタラプトレジスタ(ic_inta
とic_intb)とを比較し、「シーケンス番号終
了」インタラプトを行うべきかどうかを決定する処理
も、レジスタ管理部317が行う。更に、レジスタ管理
部317はインタラプト準備処理も行う。オーバラップ
命令部318は、ic_statレジスタ中の適切な状
態ビットの管理を通して、オーバラップ命令の終了処理
の管理を行う。実行制御部は、更に中枢部310と図1
3の命令復号器306との間のインタフェースを行う復
号インタフェース部319を備える。
【0124】図16は、命令復号部306をより詳細に
示した図である。命令復号器はコプロセッサを構成して
プレフェッチバッファ内の命令を実行する処理を行う。
命令復号器306は、多くの小さな状態マシンの組み合
わせである大きな状態マシンから構成される命令復号シ
ーケンサ321を備える。命令シーケンサ321は,各
モジュール中のレジスタをセットするCBusディスパ
ッチャ312と通信する。また、命令復号シーケンサ3
21は、命令の有効性や命令のオーバラップ状況などの
関連情報を実行制御部に伝える。ここで、命令の有効性
チェックは命令オプコードが予約されているオプコード
であるかどうかをチェックするものである。
【0125】図17は、図16の命令ディスパッチャシ
ーケンサ321をより詳細に示した図である。命令ディ
スパッチャシーケンサ321は、全体のシーケンス制御
状態マシン324と連続したモジュール毎構成シーケン
サ状態マシン(例えば325や326)を備える。モジ
ュール毎構成シーケンサ状態マシンは構成すべき各モジ
ュールに与えられる。全体として状態マシンはモジュー
ルのコプロセッサマイクロプログラミングを定義する。
状態マシン(例えば325)は、CBusディスパッチ
ャに全体のCBusを利用して種々のレジスタをセット
するように指示し、処理のための種々モジュールを構成
する。特定のレジスタに書き込みをするためには、命令
の実行が開始されなければならない。一般に命令の実行
にはシーケンサ321が処理のためにコプロセッサのレ
ジスタを構成する以上の時間が必要である。付録Aにお
いて、コプロセッサの命令シーケンサによって実行され
るマイクロプログラミング処理と命令シーケンサ321
によってセットアップされた形式を示す。
【0126】実際には、命令復号シーケンサ321は命
令ごとにコプロセッサ中のすべてのモジュールを構成す
るわけではない。以下の表では、命令クラスに対するモ
ジュール構成順序を、ピクセルオーガナイザ246(P
O)、データキャッシュ制御部240(DCC)、オペ
ランドオーガナイザB247(OOB)、オペランドオ
ーガナイザC248(OOC)、主データパス242
(MDP)、結果オーガナイザ249(RO)、JPE
Gエンコーダ241(JC)などの構成されるモジュー
ルとともに示している。なお、外部インタフェース制御
部238(EIC),ローカルメモリ制御部236(L
MC),命令制御部235自身(IC)、入力インタフ
ェーススイッチ252(IIS)、雑多モジュール(M
M)などのモジュールは、命令復号処理中には構成され
ることはない。
【0127】モジュール立ち上げ順序
【0128】
【表5】
【0129】図17において、各モジュール構成シーケ
ンサ(例えば325)は必要なレジスタアクセス処理を
行って特定のモジュールを構成するように管理する。ま
た、全体のシーケンス制御状態マシン324は、前述の
順序でモジュール構成シーケンサの全体の動作を管理す
る。図18は、上の表に従って関連するモジュール構成
シーケンサを起動する全体シーケンス制御を状態遷移図
330で表した図である。各モジュール構成シーケンサ
は、モジュールの実行中に種々のレジスタをセットする
ために、CBusディスパッチャを制御して、レジスタ
内容を変更する処理を行う。
【0130】図19は、図13のプリフェッチバッファ
制御部307をより詳細に示した図である。プリフェッ
チバッファ制御部は単一のコプロセッサ命令(6×32
ビットワード)を格納するためのプリフェッチバッファ
335を備える。そして、プリフェッチバッファはIB
usシーケンサ336によって制御される一つの書き込
みポートと、命令復号器、実行制御部、命令制御部CB
usインタフェースにデータを送出する一つの読み込み
ポートを備える。IBusシーケンサ336は、プリフ
ェッチバッファ335の入力インタフェーススイッチへ
の接続においてバスプロトコルを監視する。また、命令
をフェッチするためにアドレスを生成するアドレス管理
部337をも備える。アドレス管理部337は、ic_
ipaあるいはic_ipbの一つを選択し入力インタ
フェーススイッチへのバスに接続する機能と、最後の命
令がどのストリームからフェッチされたかに基づいてi
c_ipaあるいはic_ipbの一つを増加させる機
能と、ic_ipaとic_ipbレジスタにジャンプ
先のアドレスを格納する機能とを有する。PBC制御部
339はプレフェッチバッファ制御部307の全体の制
御を行う。3.11 モジュールローカルレジスタファ
イルの説明図13に示したように、命令制御モジュール
自身を含む各モジュールは、図20に示してあるCBu
sインタフェース制御部303とともに上述したレジス
タ304の内部セットを備え、CBus要求を受け付け
るとともに当該要求に応じて内部レジスタを更新する処
理を行う。モジュールの制御は、CBusインタフェー
ス302を介してモジュール中のレジスタ304に書き
込むことによって行われる。CBus調整部308(図
13)は、命令制御部235、外部インタフェース制御
部、雑多モジュールのどのモジュールがCBusを制御
し、CBusのマスターとして動作し、レジスタの書き
込み/読み出しを行うのかを決定する。
【0131】図20は、各モジュールにおいて用いられ
るCBusインタフェース303の標準構成を示した図
である。標準CBusインタフェース303はCBus
302からの読み出し要求や書き込み要求を受信すると
ともに、モジュール内の種々のサブモジュールによって
341を介して更新されるレジスタファイル304を備
える。更に、メモリ領域の読み出しを含むサブモジュー
ルのメモリ領域の更新を行う制御ライン344が備わっ
ている。標準CBusインタフェース303はCBus
の目的地として振る舞い、レジスタ304や他のサブモ
ジュールのメモリオブジェクトの読み出し要求や書き込
み要求を受け付ける。
【0132】「c_reset」信号345は標準CB
usインタフェース103内のすべてのレジスタをデフ
ォルト状態にセットする。しかし、「c_reset」
は自身とCBusマスターとの間の信号のやり取りを制
御する状態マシンはリセットしない。そのため、「c_
reset」がCBus処理中に送出されたとしても、
当該処理は何かしらの形で終了することになる。「c_
int」347、「c_exp」348、「c_er
r」349信号は、以下の式に基づいてモジュールer
r_intとerr_int_enレジスタの内容より
生成される。
【0133】
【数1】
【0134】
【数2】
【0135】
【数3】
【0136】信号「c_sdata_in」と「c_s
valid_in」345は、モジュール列の中での前
のモジュールからのデータ/有効信号であり、信号「c
_sdata_out」と「c_svalid_ou
t」350は、モジュール列の中での次のモジュールへ
のデータ/有効信号である。標準CBusインタフェー
ス303の機能としては以下のものが含まれる。 1.レジスタの読み出し/書き込み管理 2.メモリ領域の読み出し/書き込み管理 3.テストモードの読み出し/書き込み管理 4.サブモジュールの監視/更新管理 3.12 レジスタ読み出し/書き込み管理 標準CBusインタフェース303はCBus上に流れ
るレジスタ読み出し/書き込み要求やビットセット要求
を受け付ける。標準CBusインタフェースが管理する
CBus命令として以下の2種類ある。 1.タイプA タイプAは、他のモジュールが標準CBusインタフェ
ース303内のレジスタに1、2、3、4バイト読み出
し/書き込みする動作をする。書き込み動作では、命令
サイクルの直後のクロックサイクルでデータサイクルが
生じる。なお、レジスタ書き込み/読み出しのタイプフ
ィールドはそれぞれ「1000」と「1001」であ
る。標準CBusインタフェース303は命令を復号し
て、命令がモジュールのアドレスを指しているか、読み
出し/書き込み動作のどちらかであるか、を調べる。読
み出し動作では、標準CBusインタフェース303
は、CBus処理の「reg」フィールドを用いてどの
レジスタ出力に「c_sdata」バス350を接続す
るかを選択する。書き込み動作では、標準CBusイン
タフェース303は「reg」フィールドと「byt
e」フィールドを用いて選択されたレジスタにデータを
書き込む。読み出し動作が終了すると、標準CBusイ
ンタフェースはデータを戻すと同時に「c_svali
d」350を送出する。書き込み動作が終了すると、標
準CBusインタフェース303は「c_svali
d」350を送出して返答する。 2.タイプC タイプCは、1つのレジスタ中のバイトの1つに他のモ
ジュールが1ビットあるいは複数ビット書き込む動作を
する。命令とデータとは1つのワードにまとめられる。
【0137】標準CBusインタフェース303は命令
をチェックして、命令がモジュールのアドレスを指して
いるかを調べる。また、「reg」「byte」「en
able」フィールドを復号して、必要なイネーブル信
号を生成する。また、命令のデータフィールドを取り出
し、取り出したデータをワードの4バイトすべてに転送
する。これにより、必要なビットはすべてのイネーブル
バイト中のイネーブルビットに書き込まれることにな
る。この動作においては返答は必要ない。 3.13 メモリ領域読み出し/書き込み管理 標準CBusインタフェース303はCBus上のメモ
リ読み出し/書き込み要求を受け付ける。メモリ読み出
し/書き込み要求を受け付けると、標準CBusインタ
フェース303は要求がモジュールのアドレスを指して
いるかを調べる。そして、命令のアドレスフィールドを
復号することで、標準CBusインタフェースは適切な
アドレスと、メモリ読み出し/書き込みを行うサブモジ
ュールへのアドレスストローブ信号344とを生成す
る。書き込み動作では、標準CBusインタフェース
は、命令からのバイトイネーブル信号をサブモジュール
に転送する。
【0138】標準CBusインタフェース303の動作
は、CBus302上のCBus命令のタイプフィール
ドを復号し、次のサイクルにおいてデータがレジスタフ
ァイル304に取り込まれるか、あるいは他のサブモジ
ュール344に転送されるようにするために、レジスタ
ファイル304と出力セレクタ353に適切なイネーブ
ル信号を生成するような読み出し/書き込み制御部35
2によって制御される。CBus命令がレジスタ読み出
し動作であれば、読み出し/書き込み制御部352は出
力セレクタ353をイネーブルにし、「c_sdata
バス」345への正しいレジスタ出力を選択する。命令
がレジスタ書き込み動作であれば、読み出し/書き込み
制御部352はレジスタファイル304をイネーブルに
し、次にサイクルでデータを選択する。もしその命令が
メモリエリアのリード/ライトであれば、読み出し/書
き込み制御部352は適切な信号344を生成し、モジ
ュールが管理するメモリ領域を制御する。レジスタファ
イル304は、レジスタ選択復号部355、出力セレク
タ353、インタラプト356、エラー357、例外3
58生成部、アンマスクエラー生成部359、あるモジ
ュールのレジスタを構成するレジスタ部360の4つの
部位から構成される。レジスタ選択復号部355は、読
み出し/書き込み制御部352からの信号「ref_e
n」(レジスタファイルイネーブル)「write」
「reg」を復号し、あるレジスタをイネーブルにする
ためのレジスタイネーブル信号を生成する。出力セレク
タ353は、読み出し/書き込み制御部352からの信
号「reg」出力に応じて、レジスタ読み出し処理のた
めに正しいレジスタデータを選択しc_sdate_o
utラインに出力する。
【0139】例外生成部356〜359は入力中にエラ
ーが検出されたら出力エラー信号(例えば、347〜3
49、362)を生成する。各出力エラーを計算する手
法は前述の通りである。レジスタ部360は、表5にお
いてレジスタセットの構成を説明したときに論じたよう
に、要求に応じて種々のタイプになり得る。 3.14 CBus構成 前述の通り、CBus(制御バス)は、各モジュールの
標準CBusインタフェース中のレジスタをセットする
ための情報を転送することによって、全体的に各モジュ
ールを制御する。標準CBusインタフェースの記述か
ら明らかなように、CBusは以下の二つの目的を有す
る。 1.各モジュールを駆動する制御バス 2.RAM,FIFO,各モジュール中の状態情報のた
めのアクセスバス CBusは命令−アドレス−データプロトコルを用い
て、モジュール中の構成レジスタをセットすることによ
り、モジュールを制御する。一般に、レジスタは各命令
ごとにセットされるが、修正はどの時点でも行うことが
できる。CBusは状態情報や他の情報を集め、データ
を要求することにより種々のモジュールからRAMやF
IFOデータにアクセスする。
【0140】CBusは以下の3つのどちらかにより処
理ごとに駆動される。 1.命令実行時の命令制御部235(図2) 2.ターゲット(スレーブ)モードバス動作実行時の外
部インタフェース制御部238(図2) 3.外部CBusインタフェースが構成された際には外
部デバイス いずれの場合でも、駆動モジュールはCBusの発モジ
ュールとなり、他のすべてのモジュールが可能な着モジ
ュールとなる。バスの調整処理は命令制御部が行う。
【0141】以下の表は、好適な実施例において用いる
のに適しているCBus信号の一つの定義を示したもの
である。 CBus信号定義
【0142】
【表6】
【0143】CBusのc_iad信号はアドレスデー
タを含み、二つの異なるサイクルにおいて制御部によっ
て駆動される。 1.c_iad上でCBus命令やアドレスが駆動され
る命令サイクル(c_valid高) 2.c_iad(書き込み動作)やc_sdata(読
み出し動作)上でデータが駆動されるデータサイクル
(c_valid低) 書き込み動作の場合は、命令に関するデータは命令サイ
クルの直後にc_iadバス上に置かれる。読み出し動
作の場合は、データサイクルが終了するまで読み出し動
作のターゲットモジュールがc_sdata信号を駆動
する。
【0144】図21において、バスは32ビットの命令
−アドレス−データフィールドを含む。このフィールド
は以下の3つのタイプ(370〜372)がある。 1.タイプA動作(370)は、コプロセッサ中のレジ
スタや各モジュールのデータ領域の読み出し/書き込み
を行うために用いられる。これらの動作は、ターゲット
モードPCIサイクルを実行している外部インタフェー
ス制御部238、命令のためにコプロセッサを構成して
いる命令制御部231、外部CBusインタフェースに
よって生成される。
【0145】これらの動作では、命令サイクルの直後の
クロックサイクルがデータサイクルとなる。 2.タイプB動作(371)は診断モードで用いられ、
ローカルメモリにアクセスしたり、一般インタフェース
上のサイクルを生成する。これらの動作は、ターゲット
モードPCIサイクルを実行している外部インタフェー
ス制御部や外部CBusインタフェースによって生成さ
れる。データサイクルは命令サイクルの後のどの時点で
も良く、データサイクルはc_svalid信号を用い
て着モジュールから返答される。 3.タイプC動作(372)はモジュールのレジスタ中
の各ビットをセットするために用いられる。これらの動
作は、命令のためにコプロセッサを構成している命令制
御部231や外部CBusインタフェースによって生成
される。タイプC動作ではデータサイクルはなく、デー
タは命令サイクル中に含まれる。
【0146】各命令のタイプフィールドは、以下の表に
従って関連するCBus処理を符号化したものである。 CBus処理タイプ
【0147】
【表7】
【0148】バイトフィールドは、レジスタ中のビット
をセットするために用いられる。モジュールフィールド
はCBus上の命令のアドレス先モジュールを指定する
フィールドである。レジスタフィールドはモジュール中
のどのレジスタを更新するかを指定するフィールドであ
る。アドレスフィールドは、動作を行うメモリ部位を指
定するフィールドである、RAM,FIFOなどのアド
レスを指定するものである。イネーブルフィールドは、
ビット設定命令が用いられたときに選択されたバイト中
の選択されたビットをイネーブルにするフィールドであ
る。データフィールドは、更新されるべきバイトに書き
込まれるビットデータを含む。
【0149】前述の通り、CBusは各モジュールごと
に、モジュールが命令実行中のときに送出されるc_a
ctiveラインを含む。命令制御部はこの信号に基づ
いて命令の終了時を知ることができる。また、CBus
は各モジュールごとにバックグラウンドモード時に動作
するc_backgroundラインを、リセット、エ
ラー検出、インタラプトを行うためのリセット、エラ
ー、インタラプトラインとともに含む。 3.15 コプロセッサデータタイプとデータ操作 図2において、コプロセッサ部224の動作、特にJP
EG符号化器241や主データパスのコプロセッサ中の
主な計算処理動作を簡潔にするため、コプロセッサは外
部フォーマットと内部フォーマットとを差別化するデー
タモデルを用いる。外部データフォーマットは、ローカ
ルメモリインタフェースやPCIバスなどのコプロセッ
サの外部インタフェースに現われるデータフォーマット
である。逆に、内部データフォーマットは、コプロセッ
サ224の主機能モジュール間で現われるフォーマット
である。図22は、種々の入力/出力フォーマットを模
式的に示した図である。入力外部フォーマット381
は、ピクセルオーガナイザ246、オペランドオーガナ
イザB247,オペランドオーガナイザC248への入
力フォーマットである。これらのオーガナイザは、入力
外部フォーマットを、JPEG符号化器241や主デー
タパス部242へ入力される入力内部フォーマット38
2に再フォーマットする。また、これら2つの機能部は
出力データを出力内部フォーマットで出力し、結果オー
ガナイザ249が出力内部フォーマットを所望出力フォ
ーマット304に変換する。
【0150】実施例では、外部データフォーマットは3
つのタイプに分けられる。第一のタイプは、データごと
に4つまでのチャネルを有し、各チャネルが1、2、
4、8、あるいは16ビットサンプルから成り立ってい
るような連続ストリームから成るデータの「パックスト
リーム」である。パックストリームは、ピクセル、ピク
セルに変換されるデータ、まとめられたビットなどを表
現する際に用いられる。また、コプロセッサはリトルエ
ンディアンバイトアドレッシングとバイト中ではビッグ
エンディアンビットアドレッシングを用いる。図23は
パックストリームフォーマットの第一の例を示してい
る。ここでは、各オブジェクト387は、各チャネルご
とに2ビットのチャネル0、チャネル1、チャネル2の
三つのチャネルから構成される。このフォーマットのデ
ータ配置が388である。図24の次の例390では、
各データオブジェクトが32ビットワードを有し、チャ
ネルごとに8ビット有する4チャネルオブジェクト39
5が示されている。図25の第三の例395では、ビッ
トアドレス397から始まるチャネルごとに8ビットを
有するチャネルオブジェクト396が示されている。も
ちろん、アプリケーションに応じて、データチャネルの
実際の幅や数は変化する。
【0151】外部データフォーマットの第二のタイプは
「アンパックバイトストリーム」であり、各ワード中の
1バイトのみが有効であるような32ビットワードのシ
ーケンスである。このフォーマットの例が図26の39
9として示されており、各ワード中の単一バイト400
のみが用いられる。さらなる外部データフォーマットは
「他」フォーマットとして分類されるオブジェクトで表
現される。一般に、これらのデータオブジェクトは色空
間変換表、ハフマン符号化表などの大きな表型のデータ
である。
【0152】コプロセッサは4つの内部データタイプを
用いる。第一のタイプは「パックバイト」フォーマット
であり、最後の32ビットワードを除いて4アクティブ
バイトの32ビットワードから成るフォーマットであ
る。図27に、ワードが4バイトであるパックバイトフ
ォーマットの例402を示す。図28に示す次のデータ
タイプは「ピクセル」フォーマットであり、4アクティ
ブバイトチャネルの32ビットワード403から成るフ
ォーマットである。このピクセルフォーマットは4つの
チャネルデータとして解釈される。
【0153】図29に示す次の内部データタイプは「ア
ンパックバイト」フォーマットであり、各ワードは一つ
のアクティブバイトチャネル405と三つの非アクティ
ブバイトチャネルから成るフォーマットである。この
際、アクティブバイトチャネルは最小バイトを占める。
他の内部データオブジェクトは「他」データフォーマッ
トとして区分される。外部フォーマットの入力データは
適切な内部フォーマットに変換される。図30は、種々
のオーガナイザによって実行される外部フォーマット4
10から入力フォーマット411への変換形態を示して
いる。図31は、結果オーガナイザ249によって実行
される内部フォーマット412から外部フォーマット4
13への変換形態を示している。
【0154】以下、変換を実行する処理をより詳細に説
明する。まず入力データ外部フォーマットから内部フォ
ーマットへの変換であるが、図32は変換処理において
種々のオーガナイザによって用いられる手法を示してい
る。はじめは外部他フォーマット416であるが、これ
は種々のオーガナイザを経ずに単に通過する。次に、外
部アンパックバイトフォーマット417は、アンパック
正規化418を行って内部アンパックバイトと呼ばれる
フォーマット419を生成する。アンパック正規化41
8処理は、外部アンパックバイトストリームから非アク
ティブ3バイトを取り除く処理を行う。図33はアンパ
ック正規化処理を示したものであるが、4バイトチャネ
ルを有する入力のうち1つのバイトチャネルのみが出力
フォーマット419において有効な結果となっており、
単なるバイトを出力している様子を示している。
【0155】図32において、パック正規化421処理
は、外部パックストリーム422中の要素オブジェクト
をバイトストリーム423に変換する処理を行う。チャ
ネルの各要素のサイズがバイト以下であれば、サンプル
は8ビット値に補間される。例えば、4ビット単位をバ
イト単位に変換する場合には、4ビット値0xNはバイ
ト値0xNNに変換される。1バイト以上のオブジェク
トの場合には切り捨てが行われる。ストリーム422で
サポートされる入力オブジェクトサイズは、1、2、
4、8、16ビットサイズである。なお、これらは、本
発明が適用されるシステム中のデータオブジェクトやワ
ードの全幅に依存する。
【0156】図34は、チャネルごとに(図23のデー
タフォーマット386ごとのように)2ビット有する3
チャネルオブジェクト形式の入力データ422が入力さ
れたときのパック正規化421の様子を示している。出
力データはバイトチャネルフォーマット423になって
いる。この際、必要であれば各チャネルに「補間処理」
が施され、8ビットサンプルが生成される。
【0157】図32において、ピクセルストリームはそ
の後、パック処理425、アンパック処理426、要素
選択処理427のいずれかに送られる。図35はパック
処理425の例を示したもので、単に非アクティブバイ
トチャネルが取り除かれ、ワードごとの4アクティブバ
イトにパックされたバイトストリームが生成される様子
を示している。即ち、単一の有効バイトストリーム43
0がワードごとの4アクティブバイトを有するフォーマ
ット431に圧縮される。アンパック処理426はほぼ
パック処理の反対の処理であり、アンパックバイトがワ
ードの最小バイトとなる。図36は、パックバイトスト
リーム433がアンパックされ結果434が得られる様
子を示している。
【0158】図37は要素選択427処理を示したもの
であり、Nを単位ごとの入力チャネル数とすると、入力
ストリームからN要素を選択する処理である。アンパッ
ク処理は「プロトタイプピクセル」、例えば437を生
成するときに用いられる。なお、ピクセルチャネルは最
小バイトから埋められる。図38は、形式436の入力
データが要素選択部427によって変換され、プロトタ
イプピクセルフォーマット437が生成される様子を示
している。
【0159】要素選択が行われると、要素入替処理44
0(図32)が行われる。図38は要素入替処理の様子
を示したもので、内部データレジスタ441に格納され
た一定値で選択要素を入れ替え、例のように出力要素2
42を生成する様子を示している。図32において、処
理段425、526、440の出力はレーンスワップ処
理444に送られる。図39に示されているように、レ
ーンスワップ処理はあるレーンを他のレーンにバイトご
とに多重化する処理であり、あるレーンを他のレーンに
複製する処理をも含む。図38の例では、チャネル3と
チャネル1とを入れ替え、チャネル3をチャネル2とチ
ャネル1に複製する様子が示されている。
【0160】図32において、レーンスワップ処理44
4が終わると、データストリームが再読み出しされて複
製処理446に移る前に、マルチユースト値RAM25
0に格納されることもある。複製処理446は単にデー
タオブジェクトを複製する処理である。図40は、複製
処理446をピクセルデータに適用した様子であり、複
製ファクターは1である。
【0161】図41は、複製処理をパックバイトデータ
に適用した様子である。図42は、出力内部フォーマッ
ト383から出力外部フォーマット384にデータを変
換する結果オーガナイザ249の処理を示したものであ
る。この処理では、図32に示した変換処理と同様の処
理424、425、426、440を含むが、処理45
0では更に要素非選択451、非正規化452、バイト
アドレシング453、書き込みマスキング454の処理
を含んでいる。図43に示した要素非選択処理451
は、図37の要素選択処理の逆処理であり、不必要なデ
ータが削除される。例えば、図43では、入力中の3つ
の有効チャネルのみが取り出され、データ項目456に
パックされる。
【0162】図44に示した非正規化処理は、図34で
示したパック正規化処理421のほぼ反対の動作をす
る。非正規化処理では、バイト単位で扱われていた各オ
ブジェクトあるいはデータ項目を非バイト値に変換する
処理が行われる。図42のバイトアドレシング処理45
3は、バイトアドレシングに必要なバイトごとの再構成
処理を行う。外部アンパックバイト出力ストリームで
は、ストリームアドレスの最小2ビットがアクティブス
トリームに対応する。バイトアドレシング処理453で
は、外部アンパックバイトが用いられているとき(図4
5)、1つのバイトチャネルから他のチャネルバイトに
出力ストリームが再マップされる。外部パックストリー
ムが用いられているときは(図46)、バイトアドレシ
ングモジュール453は出力ストリームの開始アドレス
を図示のように再マップする。
【0163】図42の書き込みマスク処理454を図4
7に示す。書き込みされないパックストリームのあるチ
ャネル(例えば460)をマスクする処理である。適用
される入力/出力データタイプ変換は、以下のデータ操
作レジスタの内容に基づいて決められる。 *ピクセルオーガナイザデータ操作レジスタ(po_d
mr) *オペランドオーガナイザBとオペランドオーガナイザ
Cデータ操作レジスタ(oor_dmr,ooc_dm
r) *結果オーガナイザデータ操作レジスタ(ro_dm
r) 命令のための各データ操作レジスタの設定は、以下の2
つの方法によってなされる。 1.命令実行の直前にコプロセッサレジスタに書き込む
標準手法を用いて設定される 2.現在の命令に基づいてコプロセッサ自身で設定され
る 命令復号処理では、コプロセッサはデータの命令ワード
やデータワードの内容を調べ、種々のデータ操作レジス
タをどのように設定するかを決定する処理を他の処理と
ともに行う。なお、命令とオペランドのすべての組み合
わせが有効であるわけではない。いくつかの命令ではオ
ペランドフォーマットを規定しているものもある。不適
切なオペランドを含む命令の場合、「定義されていな
い」結果が生成されることになるが、エラーを生じるこ
となく終了してしまうこともある。対応するデータ記述
子の「S」ビットが0であれば、コプロセッサはデータ
操作レジスタをセットし、現命令を反映させる。
【0164】図48はデータ操作レジスタのフォーマッ
トを示した図である。以下の表は、図48に示されたレ
ジスタ中の種々のビットフォーマットを示している。 データ操作レジスタフォーマット
【0165】
【表8A】
【0166】
【表8B】
【0167】各1つの命令において、複数の内部/外部
データタイプが用いられることがある。オペランド、結
果、命令タイプのすべて組み合わせは有効ではあるが、
これらの組み合わせの一部のみが意味のある結果を生成
する。各命令に対して期待されるオペランドと結果デー
タタイプの具体的な組み合わせを表9に示す。表9は、
外部/内部フォーマットにおいて期待されるデータタイ
プをまとめたものである。
【0168】期待されるデータタイプ
【0169】
【表9】
【0170】なお、表9において用いたシンボルは以下
の通りである。 シンボルの説明
【0171】
【表10】
【0172】3.16 データ正規化回路 図49は、3つの主機能ブロックを含むコンピュータグ
ラフィックスプロセッサを示している。3つの主機能ブ
ロックは、ピクセルオーガナイザ246とオペランドオ
ーガナイザB、C247、248中のデータ正規化部1
062、主データパス242あるいはJPEG部241
の中央グラフィックスエンジン、命令制御部235中の
プログラミングエージェント1064である。データ正
規化部1062と中央グラフィックスエンジンの動作
は、プログラミングエージェント1064への命令スト
リーム1064によって決定される。各命令ごとに、プ
ログラミングエージェント1064は復号処理を行い、
内部制御信号1067と1068をシステム中の他のブ
ロックに出力する。各入力データワード1069ごと
に、正規化部1062は現命令に基づいてデータのフォ
ーマットを行い、処理結果をさらなる処理が実行される
中央グラフィックスエンジン1063に送出する。
【0173】データ正規化部は、簡潔にはピクセルオー
ガナイザとオペランドオーガナイザB,Cを意味する。
これらのオーガナイザはデータ正規化回路を含み、入力
データを適切に正規化した後、JPEG符号化あるいは
主データパス中で中央グラフィックスエンジンに結果を
送出する。中央グラフィックスエンジン1063は、3
2ビットピクセルである標準フォーマットのデータに対
して動作する。従って、正規化部は入力データを32ビ
ットピクセルフォーマットに変換する処理を行う。正規
化部への入力データワード1069も32ビット幅を有
するが、パック要素あるいはアンパックバイトのいずれ
かのフォーマットであってもよい。パック要素入力スト
リームは、データオブジェクトが1,2,4,8,16
バイト幅であるようなデータワード中での連続するオブ
ジェクトから成る。一方、アンパックバイト入力ストリ
ームは、8ビットのバイトのみが有効であるような32
ビットのワードから成る。更に、正規化部で生成される
ピクセルデータ11は、チャネルが8ビット幅で定義さ
れるような1,2,3,4個の有効チャネルから成る。
【0174】図50は、データ正規化部1062の具体
的なハードウェア構成を示した図である。データ正規化
部1062は、FIFOバッファ(FIFO)107
3、32ビット入力レジスタ(REG1)、32ビット
出力レジスタ(REG2)、正規化マルチプレクサ10
75,制御部1076から成る。入力データワード10
69はFIFO1073に格納された後、(REG1)
1074にすべての入力ビットが所望出力フォーマット
に変換されるまでラッチされる。正規化マルチプレクサ
1075は、(REG1)1074中の値と(FIF
O)1073の現出力とからのビットを選択すること
で、REG2にラッチされるピクセルを生成するような
32組み合わせスイッチを備える。即ち、正規化マルチ
プレクサ1075はx[63..32]とx[31..
0]とで示される2つの32ビット入力ワード107
7、1078を入力とする。
【0175】このような手法を用いることで、特に命令
処理においてFIFOが少なくとも2つの有効データワ
ードを有する場合に、装置の全体スループットを向上さ
せることができる。これは、データワードをメモリから
フェッチする手法によるものである。所望データワード
あるいはオブジェクトがFIFOバッファ中の隣接する
入力データワードに拡散あるいは「ラップ」されている
ことがあるが、入力レジスタ1074を用いることで、
FIFOバッファ中の隣接データワードからの要素を用
いて完全な入力データを再構成することができ、主デー
タ操作処理段に先立って必要となるさらなる記憶装置や
ビットストリップ処理を省くことができる。類似のタイ
プの複数データワードが正規化部に入力されるような場
合には、このような構成が大きな利点となる。
【0176】制御部は、REG1 1074やREG2
1076を更新するイネーブル信号REG1_EN1
080やREG2_EN[3..0]1081を生成す
るとともに、FIFO 1073や正規化マルチプレク
サ1075を制御する信号をも生成する。図49のプロ
グラミングエージェント1064はデータ正規化部10
62に対して次のような構成信号を送出する。FIFO
_WR4信号、正規化ファクターn[2..0]、ビッ
トオフセットb[2..0]、チャネルカウントc
[1..0]、外部フォーマット(E)といった信号で
ある。入力データは,有効データが存在するクロックサ
イクルごとにFIFO_WR信号1085を送出するこ
とにより、FIFO1073に書き込まれる。領域が得
られないときには、FIFOはfifo_full状態
フラグ1086を送出する。32ビット入力データが与
えられると、外部フォーマット信号を用いて、入力がパ
ックストリームフォーマット(E=1)であるかアンパ
ックバイト(E=0)であるかが調べられる。E=1の
場合には、正規化ファクターはパックストリームの各要
素サイズとなる。即ち、n=0は1ビット幅の要素、n
=1は2ビット幅要素、n=2は4ビット幅要素、n=
3は8ビット幅要素、n>3は16ビット幅要素を示
す。また、チャネルカウントは、所望有効バイト数でピ
クセルを生成するためにクロックサイクルごとにフォー
マットする連続した入力オブジェクトの最大数である。
具体的には、c=1は最小バイトのみが有効であるピク
セル、c=2は最小2バイトが有効であるピクセル、c
=3は最小3バイトが有効であるピクセル、c=0はす
べての4バイトが有効であるピクセルである。
【0177】パックストリームが8ビット幅以下の要素
から成る場合には、ビットオフセットがREG1に格納
されている値であるx[31..0]中のデータ処理開
始位置を決定する。ビットオフセットがはじめの入力バ
イトの最大ビットからの偏移である場合には、出力デー
タバイトy[7..0]の生成方法は以下の式で与えら
れる。 n=0の場合、 y[i]=x[7−b] 0≦i≦7のとき n=1の場合、 y[i]=x[7−b] i=1,3,5,7のとき y[i]=x[6−b] i=0,2,4,6のとき n=2の場合、 y[3]=x[7−b] y[2]=x[6−b] y[1]=x[5−b] y[0]=x[4−b] y[7]=y[3] y[6]=y[2] y[5]=y[1] y[4]=y[0] n=3の場合、 y[i]=x[i] 0≦i≦7のとき n>3の場合、 y[7...0]=x[15...8] 出力データバイトy[15..8],y[23..1
6],y[31..24]を生成する式も同様である。
【0178】なお、以上の手法は、入力ストリームの要
素を入力し、必要な回数の複製処理を行い標準幅の出力
オブジェクトを生成することで、いかなる長さの出力ア
レイをも生成することができるように拡張できる。ま
た、入力要素の処理順は、リトルエンディアンでもビッ
グエンディアンでも良い。なお、上述の例では、常に処
理が入力バイトの最大ビットから始まるため、ビッグエ
ンディアン要素順を用いている。リトルエンディアン順
を用いる場合には、ビットオフセットを入力バイトの最
小ビットに対する値として再定義する必要がある。ま
た、入力要素幅が標準出力幅以上のときには、出力要素
は入力要素を切り捨てる、一般には適当な数の最小ビッ
トを削除することによって生成される。上式では、16
ビットデータオブジェクトの最大バイトを選択すること
により、16ビット入力要素を切り捨てて8ビット幅標
準出力を生成している。
【0179】図50の制御部はn[2..0]とc
[1..0]の復号を行い、これらとb[2..0]と
を用いて正規化マルチプレクサのための選択信号やRE
G1やREG2のためのイネーブル信号を生成する。ま
た、FIFOは命令中において空になることもあるた
め、制御部はREG1中に入力データを選択する現在の
ビット位置in_bit[4..0]と、出力データの
書き込みを始める現在のバイト位置out_byte
[4..0]を記憶するカウンタを備える。制御部は、
処理が終了した時点で、in_bit[4..0]の値
とREG1の最終オブジェクトの位置とを比較すること
で入力ワードを検出し、FIFOが空でない1クロック
サイクルにおいてFIFO_RD信号を送出することで
FIFO読み出し動作を開始する。信号fifo_em
pty,fifo_fullはFIFO状態フラグであ
り、FIFOが有効なデータを有していないときにfi
fo_empty=1、FIFOがフルのときにfif
o_full=1となる。FIFO_RDが送出された
クロックサイクルにおいて、REG1_ENの送出さ
れ、新しいデータがREG1に取り込まれる。REG2
のイネーブル信号は、それぞれが出力レジスタの各バイ
トに対応ごとに4つある。制御部は、復号されたc
[1..0]、REG1内の処理待機中の有効要素数、
REG2において未使用チャネル数の3つの値中での最
小値をとることで、REG2_EN[3..0]を計算
する。E=0の場合には、REG1中には一つの有効要
素しか存在しない。REG2を占めるチャネル数が復号
されたc[3..0]と等しい場合に、完全な出力ワー
ドが得られる。
【0180】本発明の好適な実施例では、制御部と正規
化マルチプレクサにおいて用いられるオフセットの一部
のみを用いるなど、ビットオフセットパラメータを制限
する機能を付加することにより、図50の装置が占める
回路領域を大幅に低減することができる。このオフセッ
ト制限機能は正規化ファクターに依存するものであり、
以下の式に応じて動作する。
【0181】 b_trunc[2...0]=0 n≧3の場合 =b[2...0] n=0の場合 =b[2...1] n=1の場合 =b[2]&”00” n=2の場合 (「&」はビットごとの結合処理を示す) このような処理により、図50においてMUX0、MU
X1...MUX31で示されている各正規化マルチプ
レクサのサイズが、制限機能を用いないときの32−1
からビットオフセット制限を行ったときの最大サイズ2
0−1まで低減される。このサイズ縮小により回路速度
の向上も図ることができる。
【0182】以上のように、好適な実施例では、データ
をいくつかの正規化形式に変換する効率的な回路を備え
る。 3.17 アクセラレータカードの画像処理動作 図2と表2において、命令制御部235はコプロセッサ
224において実行される動作に帰着される命令を「実
行する」。実行される命令は、主データパス部242に
おいて有用な機能が実行されるような種々の命令を含
む。これらの有用な命令の1つが合成処理である。
【0183】3.17.1 合成 図51は、主データパス部242において実装される合
成モデルを示した図である。合成モデル462は、一般
に3つのデータ入力ソースと出力データ(シンク)46
3を含む。入力ソースの1つは、出力463とメモリ内
での同じ相手先からのピクセルデータ464である。ま
た、色や不透明度などのデータソースとして用いられる
命令オペランド465を含む。ここで、色や不透明度は
フラット、ブレンド、ピクセル、タイルのどれでも良
い。なお、フラットやブレンドに関しては、入力/出力
を介してフェッチするよりも内部で生成した方が高速で
あるため、ブレンド生成部467において生成される。
更に、入力データは、オペランドデータ465を減衰さ
せる減衰データ466をも含む。
【0184】前述のように、通常ピクセルデータは各チ
ャネルが1バイト幅である4つのチャネルから成る。こ
こで、最高アドレスの1バイトが不透明チャネルであ
る。なお、合成処理の動作や有用性に関しては、解説論
文「Thomas Porter and Tom D
uff ”Compositing DigitalI
mages”in Computer Graphic
s,volume 18,number 3,July
1984」などの標準記事を参照されたい。
【0185】コプロセッサはプレ乗算データを用いるこ
ともできる。プレ乗算は、各色チャネルと不透明チャネ
ルとを前もって乗算する処理である。そのため、2つの
オプションのプレ乗算部468、469を備え、必要な
ときに、不透明チャネル470、471と色データとを
プレ乗算し、プレ乗算された出力472、473を得る
ことができる。合成部475は、現在の命令データに基
づいて2つの入力を合成する。以下の表11に、合成オ
ペレータを示す。
【0186】合成動作
【0187】
【表11】
【0188】ここで、(aco,ao)は、色acと不
透明度aoのプレ乗算ピクセルを表す。Rはオフセット
値であり、「wc」は以下で説明するラッピング/クラ
ンピングオペレータである。なお、上表の各オペレータ
の逆動作も合成部475が備えていることに注意された
い。クランプ/ラッピング部476は、制限値0〜25
5内にデータをクランプ、或はラップするための処理部
である。また、必要であれば、データをオプションの
「アンプレ乗算」477処理することもでき、もとのピ
クセル値に戻すこともできる。最後に、出力データ46
3が生成され、メモリに戻される。
【0189】図52は、合成処理を行う際に主データパ
ス部に送られる命令形式を示している。主オプコード中
のXフィールドが1であれば、前記の表に従って加算オ
ペレータが適用される。このフィールドが0であれば、
加算オペレータ以外の他の命令が適用される。Paフィ
ールドは、第一のデータストリーム464(図51)を
プレ乗算するかどうかを示すフィールドである。また、
Pbフィールドは第2のデータストリーム465をプレ
乗算するかどうかを示し、Prフィールドは部位477
を用いて結果を「アンプレ乗算」するかどうかを示す。
Cフィールドは範囲0−255内にラップあるいはクラ
ンプ、オーバフローあるいはアンダーフローするかどう
かを示し、「com−code」フィールドはどのオペ
レータを適用するかを示す。加算オペレータはオフセッ
トレジスタ(mdp_por)を用いることもできる。
このオフセットはラッピング/クランピング処理が行わ
れる前に加算動作の結果から引かれる。加算オペレータ
では、com−codeフィールドはオフセットレジス
タのチャネルごとにイネーブルするかどうかを示すフィ
ールドとなる。
【0190】先に述べた図10の標準命令ワード符号化
280は、合成オペランドのために変更させられる。出
力データの相手先がもとのソースと同じであるため、オ
ペランドAは常に結果ワードと同一となる。そのため、
オペランドAはオペランドBとともにオペランドBをよ
り長く記述することができる。他の命令と同様に、命令
中のA記述子は入力フォーマットを記述し、R記述子が
出力フォーマットを規定する。
【0191】図53は、ブレンド命令の命令ワードフォ
ーマットを第一例470として示している。ブレンド処
理は、各チャネルごとの開始値471と終了値472と
で規定される。同様に、図54は、タイルアドレス47
6、開始オフセット477、長さ478によって規定さ
れるタイル命令フォーマットを示している。すべてのタ
イルアドレスやサイズはバイトごとに特定される。タイ
ル処理はモジュラー的に行われ、図55は図54のフィ
ールド476〜478を説明する図である。タイルアド
レス476はタイルメモリの開始アドレスを、タイル開
始オフセット477はタイル開始時に用いられる最初の
バイトを、タイル長478はラップする全体のタイル長
を指定する。
【0192】図51において、色要素や不透明度は減衰
値466によって減衰させられることもある。減衰値は
以下の3つの手法により得られる。 1.命令のオペランドCワード中に減衰ファクタをいれ
ることによって、ソフトウエアがフラット減衰を指定す
ることができる。 2.1がオンで、0がオフであるビットマップ減衰は、
命令のオペランドCワード中でビットマップのアドレス
を特定するソフトウェアを用いて利用できる。 3.バイトマップ減衰を、命令のオペランドCワードの
バイトマップアドレスに設けてもよい。 4.定するソフトウエアを用いて、1のときにオン、2
のときにオフとするビットマップ減衰を行うことができ
る。
【0193】減衰値は符号なしの0〜255の整数であ
るため、プレ乗算された色チャネルは、 Coa=Coa×A/255 を計算することで、減衰ファクターと乗算される。ここ
で、Aは減衰ファクター、Coはプレ乗算された色チャ
ネルである。
【0194】3.17.2 色空間変換命令 図2と表2において、主データパス部242とデータキ
ャッシュ230は、主に色変換の処理を行う。色空間変
換は第一の色空間フォーマット(例えば、RGBカラー
ディスプレイに適したフォーマット)から第二の色空間
フォーマット(例えばCYMあるいはCYMK印刷に適
したフォーマット)への変換処理を行う。色空間変換処
理はすべての色空間をサポートするように設計されてお
り、1次元から多次元までのいかなる機能において用い
ることができる命令制御部235はCBus231を介
して、主データパス部242、データキャッシュ制御部
240、入力インタフェーススイッチ252、ピクセル
オーガナイザ246、MUVバッファ250、オペラン
ドオーガナイザB247、オペランドオーガナイザC2
48、結果オーガナイザ249を構成し、色変換モード
で動作するように制御する。このモードでは、ピクセル
の複数ラインから成る入力画像がピクセルストリームと
して主データパス部242に1ピクセルラインごとに送
出される。主データパス部242(図2)は入力インタ
フェーススイッチ252からピクセルオーガナイザ24
6を介してピクセルストリームを受け取り、1ピクセル
ごとに色空間変換処理を行う。また、インターバル表や
分数表がMUVバッファ250にあらかじめロードさ
れ、色変換表がデータキャッシュ230にロードされ
る。主データパス242はこれらの表にオペランドオー
ガナイザB,Cを介してアクセスし、例えばRGB色空
間からCYMあるいはCYMK色空間にピクセルを変換
し、変換されたピクセルを結果オーガナイザ249に送
る。主データパス部242、データキャッシュ230、
データ制御部240、他の前述のデバイスは、命令制御
部235の制御のもとで、単一出力一般色空間(SOG
CS)変換モードあるいは複数出力一般色空間(MOG
CS)変換モードのどちらかのモードで動作する。デー
タキャッシュ制御部240やデータキャッシュ230の
詳細に関しては、「データキャッシュ制御部とキャッシ
ュ」240、230(図2)の項目を参照されたい。
【0195】正確な色空間変換処理は複雑な非線形処理
である。例えば、RGBピクセルからCYMK色空間の
単一主色要素(即ちシアン)への色空間変換処理は理論
的には線形であるが、実際には主にピクセルの色要素を
出力する出力デバイスにおいて非線形性が生じてしま
う。RGBピクセルからCYMK色空間の他の主色要素
(黄、マジェンタ、黒)への色空間変換処理においても
同様である。即ち、各色要素において生じてしまう非線
形性を補償するために、非線形色空間変換が一般に用い
られる。このような複雑な色変換処理の非線形性のため
に、複雑な伝達関数が組み込まれたり、ルックアップテ
ーブルが用いられる。例えば24ビットのRGBピクセ
ルの入力色空間が与えられると、これらのピクセルをC
YMK色空間の8ビット主色要素(シアン)にマッピン
グするルックアップテーブルは16メガバイト以上を必
要とする。同様に、24ビットRGBピクセルをCYM
K色空間の4つの8ビット主色要素にマッピングするル
ックアップテーブルは64メガバイト以上となり、膨大
な容量が必要なる。これに対して、主データパス242
(図2)は、データキャッシュ230に格納されたルッ
クアップテーブルを用い、入力色空間中の点に粗い出力
色値を対応させ、出力色値を補間することで中間出力を
得る。 a.単一出力一般色空間(SOGCS)変換モード 単一ならびに複数出力色変換モード(SOGCS)と
(MOGCS)双方とも、RGB色空間は8ビットの
赤、緑、青色要素を有する24ビットピクセルから成
る。RGB色空間の各RGB次元は15の区間に分割さ
れ、それぞれの区間の長さはプリンタのRGBからCY
MK色空間への非線形性の逆関数となるように設定され
る。即ち、伝達関数が強い非線形性を示す場合には区間
の長さを短くし、伝達関数が線形に近い場合には区間の
長さを長くする。このような伝達関数の非線形部位を知
るためには、各出力プリンタの色空間を正確に調べるこ
とが望ましい。しかし、ノウハウやプリンタタイプ(例
えばインクジェット)の測定された特徴に基づいて、伝
達関数を近似あるいはモデル化することも可能である。
入力ピクセルの各色チャネルごとに、色要素値の15の
区間中の位置が決められる。どの区間に入力色要素値が
存在するかを決定するためと、入力色要素値が存在する
区間内の位置を決定するためとの2つのテーブルが主デ
ータパス部242において用いられる。もちろん、異な
る伝達関数を有する出力プリンタに対しては異なるテー
ブルを用いても良い。
【0196】前述のようにRGBの各次元は15の区間
に分割される。即ち、RGB色空間は区間で区切られた
3次元ラティス構造となっており、区間の両端の入力ピ
クセルは入力色空間では粗い配置となっている。更に、
区間の両端に対応する出力色空間の出力色値のみがルッ
クアップテーブルに格納されている。従って、入力色ピ
クセルの出力色値は、入力ピクセルが存在する区間の両
端に対応する出力色値を決定し、区間内の位置に基づい
て出力色値を補間することで求められる。この手法によ
り、大容量のメモリを用いなければならない必要性を低
減できる。
【0197】図56は、入力RGB色ピクセルに対し
て、対応する区間や区間内の位置を決定する例480を
示している。変換処理は、24ビット入力ピクセルの8
ビット入力色チャネルごとに区間テーブル482や区間
内位置テーブル483を用いて実行される。図56にお
いて、8ビット入力色要素481は10進数の4をバイ
ナリー形式で表示したものであるが、この8ビット入力
色要素481が区間テーブルや区間内位置テーブルへの
ルックアップとして用いられる。区間テーブル482
は、入力色要素値481が存在する0から14までの区
間の1つを4ビットで出力する。同様に、区間内テーブ
ル482は、入力色値要素481が存在する区間内での
位置を示す。区間内テーブルは、0から255までの範
囲の8ビット値を格納しており、この値は256の分数
として解釈される。従って、10進数4をバイナリーで
あらわした入力色値要素481の場合には、区間テーブ
ル482をルックアップすることで、出力値0が生成さ
れる。また、入力値4を区間内位置テーブル483でル
ックアップすることにより、分数160/256を表わ
す出力値160が生成される。区間テーブル482と区
間内位置テーブル483からわかるように、区間長は均
一ではない。前述のように、区間長は伝達関数の非線形
性によって決められる。
【0198】上述の通り、各RGB色要素に対して区間
テーブルと区間内位置テーブルとを用いることで、3つ
の区間出力と3つの区間内位置出力が得られる。各色要
素に対する区間/区間内位置テーブルはMUVバッファ
(図2)にロードされ、必要な時点で主データパス24
2によってアクセスされる。色変換処理におけるMUV
バッファ250の構成を図57に示す。MUVバッファ
250(図57)は、それぞれが各色要素に対応する3
つの領域488、489、490に分けられる。各領域
(例えば488)は、更に4ビットの区間テーブルと8
ビットの区間内位置テーブルとに分けられる。12ビッ
ト出力492は主データパス部242によってMUVバ
ッファ250から各入力色チャネルごとに取り出され
る。10進数4の単一入力色要素の上述例では、12ビ
ット出力は000001010000となる。
【0199】図58は、補間処理の例を示した図であ
る。補間処理は、1つの3次元空間500(例えばRG
B色空間)から他の色空間(例えばCMYあるいはCM
YK)への補間が主な処理である。ピクセルP0からP
7はRGB入力色空間内で粗く存在しており、出力色空
間において対応する出力色値CV(P0)からCV(P
7)を有する。ピクセルP0からP7の間に位置する入
力ピクセルPiの出力色要素値は、以下のようにして決
定される。まず、入力ピクセルPiを取り囲む区間の両
端P0,P1,...,P7を決定する。次に、区間内
位置要素frac_r,frac_g,frac_bを
決定し、最後に、P0からP7の両端に対応する出力色
値CV(P0)からCV(P7)の間を区間内位置要素
を用いて補間する。
【0200】補間処理は、まず赤(R)方向の1次元補
間を行い、temp11,temp12,temp1
3,temp14の値を以下の式から求める。 temp11=CV(P0)+frac_r(CV(P
1)−CV(P0)) temp12=CV(P2)+frac_r(CV(P
3)−CV(P2)) temp13=CV(P4)+frac_r(CV(P
5)−CV(P4)) temp14=CV(P6)+frac_r(CV(P
7)−CV(P6)) 次に、補間処理は、以下の式を用いてtemp21,t
emp22を求め、緑(G)方向の1次元補間の計算を
する。
【0201】temp21=temp11+frac_
g(temp12−temp11) temp22=temp13+frac_g(temp
14−temp13) 最後に、以下の式に基づいて最終色出力値を求め、青
(B)方向の最終次元補間を行う。 final=temp21+frag_b(temp2
2−temp21) 入力と出力との範囲が一致しない場合もしばしば有り得
る。ここで、出力範囲が入力範囲よりも狭いと、両端で
範囲をクランプしなければならないことが多い。即ち、
範囲の端あたりの色を変換した際に望ましくないひずみ
が生じることが多い。図59は、この問題が生じる例を
説明しており、入力範囲値を出力範囲値に1次元マッピ
ングする様子が示されている。ここで、入力値に対する
出力値が点510と511とで定まっているものとす
る。最大の出力値が点512でクランプされるとする
と、点511はこの大きさの出力でなければならない。
従って、510と511の2つの点を補間する場合に
は、線515が補間線となり、入力点516には出力値
517が対応する。しかし、範囲の制約が存在しないと
きに出力値が点518になるような場合には、この手法
が必ずしも最適な色マッピングであるとは限らない。5
10と518との補間線は、入力点516に対して出力
値519を生成する。このような2つの出力値517と
519の差異は、特に範囲の端あたりの色を印刷する場
合などしばしば目につくひずみとなる、この問題を避け
るために、主データパス部は、拡張出力色空間で計算
し、以下の式に用いて適切な範囲にスケールやクランプ
することも可能である。
【0202】 0 x≦63のとき out= 2(x−64) 64≦x≦191のとき 255 192≦xのとき 図58において、補間処理は、RGBピクセルを単一出
力色要素(例えばシアン)に変換するSOCGS変換モ
ードでも、RGBピクセルをすべての出力色要素に同時
に変換するMOGCSモードのどちらでも実行される。
色変換が画像中の各ピクセルに対して行われる場合に
は、数100万ピクセルがそれぞれ独立に色変換される
ことになる。従って、高速に動作するためには、入力値
周辺の8つの値(P0−P7)を素早く見つけることが
望ましい。
【0203】図57において説明した通り、主データパ
ス部242は、各色入力チャネルごとに4ビット区間部
位と8ビット区間内位置部位とから成る12ビット出力
を取り出す。主データパス部242は赤、緑、青色チャ
ネルの4ビット区間部位を結合し、図60中の520の
ように単一の12ビットアドレス(IR,IG,IB)
を生成する。図60は、単一12ビットアドレス520
から単一出力色要素563が得られる様子を示したデー
タフロー図である。12ビットアドレス520は、まず
生成部1881(図141)のようなデータキャッシュ
制御部240のアドレス生成部に送られ、メモリバンク
(B0,B1,...,B7)に対する8個の9ビット
ライン/バイトアドレス521を生成する。データキャ
ッシュ(図2)は、8個の独立のメモリバンク522に
分割され、それぞれは8個のライン/バイトアドレスに
よって独立にアドレシングされる。アドレス生成部にお
ける12ビットアドレス520から8ライン/バイトア
ドレスへの変換は、以下の表に従って行われる。
【0204】SOGCSモードにおけるアドレス合成
【0205】
【表12A】
【0206】ここで、BIT[8:6],BIT[5:
3],BIT[2:0]は、それぞれ9ビットバンクア
ドレスの6から8ビット、3から5ビット、0から2ビ
ットを示す。また、R[3:1],G[3:1],B
[3:1]は12ビットアドレス520の4ビット区間
IR,IG,IBの第1から第3ビットまでを示す。表
12のメモリバンク5に関して、12ビットから9ビッ
トへのマッピングを詳細に説明する。12ビットアドレ
ス520中の4ビット赤区間Irの1〜3ビットが9ビ
ットアドレスB5の6〜8ビットにマッピングされ、4
ビット緑区間Igの1〜3ビットが加算されて9ビット
アドレスB5の3〜5ビットにマッピングされ、4ビッ
ト青区間Ibの1〜3ビットが9ビットアドレスB5の
0〜2ビットにマッピングされる。
【0207】8つのライン/バイトアドレス521は、
512×8ビットから成る対応するメモリバンク522
へのアドレスとして用いられ、対応する8ビット出力色
要素523が各メモリバンク522からラッチされる。
このアドレシング処理によれば、端点P0−P7に対応
する出力色値CV(P0)〜CV(P7)がメモリバン
ク中での異なるアドレスとなることがある。例えば、1
2ビットアドレス0000 0000 0000は、す
べてのバンクで000 000 000という同一のバ
ンクアドレスが得られるが、12ビットアドレス000
0 00000001の場合には、バンク7、5、3、
1ではバンクアドレス000 000000となり、バ
ンク6、4、2、0ではバンクアドレス000 000
001となるように異なるバンクアドレスが得られ
る。このようにして、入力ピクセル値を取り囲む8つの
単一出力色値CV(P0)〜CV(P7)が同時に各メ
モリバンクから得られ、メモリバンクにおいて出力色値
が二重になることを防ぐことができる。
【0208】図61は、単一色変換モードにおいて用い
られるデータキャッシュ230のメモリバンクの構成を
示している。各メモリバンクは128ラインエントリか
ら成り、各ラインエントリは32ビット長で4×8ビッ
トメモリ533〜536から構成される。メモリアドレ
ス521の上7ビットは、メモリアドレス中の対応する
データ列を決定し、メモリバンク出力としてラッチ54
2するために用いられる。下2ビットはバイトアドレス
で、マルチプレクサ543への入力となり、どの4×8
ビットエントリを出力として選択544するかを決定す
るために用いられる。クロックサイクルごとに8つの各
メモリバンクのためのデータが出力され、主データパス
部242に送られる。即ち、データキャッシュ制御部は
オペランドオーガナイザ248(図2)から12ビット
のバイトアドレスを受け取り、主データパス部242に
おける補間処理のための8ビット出力色値をオペランド
オーガナイザ247、248に出力する。
【0209】図60において、主データパス部242
(図2)は補間処理を3ステップで実行する。主データ
パス部における第1ステップにおいて、乗算/加算部
(例えば550)は対応するメモリバンク(例えば52
2)から出力される色値と赤区間位置要素551を入力
とし、前記の式の第1ステップに従って4つの出力値を
計算する。第1ステップの出力(例えば553、55
4)は第2ステップ556に送られ、frac_g入力
557を用いて第2ステップの前式に従って出力558
を計算する。最後に、第2ステップ出力558、559
とfrac_b入力562とを用いて、前式に基づいて
最終出力色563を計算する。
【0210】図60に示した処理は、全体で最大のスル
ープットを得るためにパイプライン化されている。更
に、図60の手法は単一出力色要素563が必要なとき
に用いられる。例えば、図60の手法は、まず出力画像
のシアン色要素を生成し、その後でパス間のキャッシュ
テーブルを再ロードして出力画像のマジェンタ、黄、黒
要素を生成するような場合に用いられる。これは、特
に、それぞれの出力色が独立パスとなるような4パス印
刷処理に適している。b.複数出力一般色空間モードコ
プロセッサ224はMOGCSモードでの動作も行う
が、MOGCSモードはいくつかの点を除いてSOCG
Sモードとほぼ同様に動作する。MOGCSモードで
は、図2の主データパス部242、データキャッシュ制
御部240、データキャッシュが協調して、出力される
4つの主色要素を同時に出力する。このためにはデータ
キャッシュ230のサイズが4倍必要となるが、記憶領
域を節約するためにMOGCS動作モードでは、データ
キャッシュ制御部240は出力色空間のすべての出力色
値の1/4のみを格納する。出力色空間の残りの出力色
値は低速度の外部メモリに格納され、必要な時点で取り
出される。なお、本装置や手法は、キャッシュシステム
にある粗い色変換テーブルのミス率が非常に小さいとい
う驚くべき事実に基づいている。これは、多くのカラー
画像では、1つのピクセルと他のピクセルとの色値の分
散が小さいという知見に基づいたものである。また、粗
い出力色値は近隣のピクセルにおいても同じになる確率
が非常に高い。
【0211】図62は、コプロセッサが複数チャネルキ
ャッシュ色変換を実行する手法を示している。各入力ピ
クセルは色要素に分解された後、対応する区間テーブル
値(図56)が前述のように決定され、Ir,Ig,I
b570といった3つの4ビット区間が得られる。結合
された12ビット数570は前述の表12に従って変換
され、8個の9ビットアドレスが得られる。アドレス
(例えば572)は図63において以下で説明するよう
に再マッピングされ、対応するメモリバンク573をル
ックアップして4つの色出力チャネル574が得られ
る。メモリバンク573は、全体で512×32ビット
エントリとなり得るが、そのうちの128×32ビット
エントリを格納する。メモリバンク573はデータキャ
ッシュ230の一部をなし、図63で説明するようにキ
ャッシュとして用いられる。
【0212】図63は、9ビットバンク入力578が5
79に再マッピングされる様子を示しており、ビット5
80〜582の順番を入れ替えることによりメモリパタ
ーンのエイリアスを取り除くことができる。これによ
り、隣接するピクセル値が同じキャッシュ要素のエイリ
アスされる確率を低減することができる。再構成された
メモリアドレス579は、それぞれが32ビットの12
8エントリから成る対応するメモリバンク(例えば58
5)へのアドレスとして用いられる。7ビットラインア
ドレスを用いてメモリ585にアクセスすることで、メ
モリバンクごとにラッチ586される出力が得られる。
各メモリバンク(例えば585)は、それぞれが2ビッ
トの128エントリから成る関連タグメモリを有する。
7ビットラインアドレスは、このタグメモリ587中の
対応するタグにアクセスするためにも用いられる。アド
レス579の最大2ビットをタグメモリ587中の対応
するタグと比較することで、出力色値がキャッシュ中に
格納されているかどうかが決定される。この9ビットア
ドレス中の最大2ビットは、赤と緑データ区間の最大ビ
ットに対応する(表12参照)。従って、MOGCSモ
ードでは、RGB入力色空間が赤と緑次元において効率
よく4象限に分割され、9ビットアドレスの最大2ビッ
トがRGB入力色区間中の象限を指定することになる。
即ち、2つのビットタグによって指定された4つの象限
に、出力色値が効率的に分割される。このため、あるラ
インの各タグ値に対応する色出力値は出力色空間で離れ
て位置することになり、メモリパターンのエイリアスを
削減することができる。
【0213】2つのビットタグが一致しない場合には、
データキャッシュ制御部はキャッシュミスを記録し、必
要なメモリ読み出しがキャッシュルックアップ処理とと
もにデータキャッシュ制御部によって起動される。な
お、キャッシュルックアップ処理は、2ビットタグエン
トリに対応するラインのすべての値が外部メモリから読
み出され、キャッシュに格納されるまで停止状態にあ
る。この処理においては、外部メモリに格納されている
色変換テーブルの関連ラインを読み出す処理が含まれ
る。図63の処理575は図62の各メモリバンク(例
えば573)ごとに実行されるため、キャッシュ内容に
よってはメモリバンクから結果(例えば586)が出力
されるまでに時間が必要となることもある。データ58
6の8つの32ビットセットは、この後主データパス部
(242)に転送され、上述の補間処理(図62)の3
ステップ590−592がすべての色チャネル同時にか
つパイプライン処理で実行され、プリンタデバイスに送
る4つの色書津力595が生成される。
【0214】実験によれば、一般的な画像におけるキャ
ッシュのミス率が平均で0.01から0.03のピクセ
ルごとのキャッシュラインフェッチであるので、図62
と図63において示したキャッシュ機構が有効であるこ
とが示されている。このようなキャッシュ機構を用いる
ことで、多くの場合、データキャッシュ外部のメモリア
クセスに対する要求を大幅に低減することができる。
【0215】コプロセッサが行う2つの色空間変換モー
ド(図10)での命令符号化は以下の構造を有する。 色空間変換における命令符号化
【0216】
【表12B】
【0217】図64は、色空間変換命令における命令フ
ィールド符号化を示したものであり、色変換命令におけ
るマイナーオプコード符号化は以下のようになる。 色変換命令におけるマイナーオプコード符号化
【0218】
【表13】
【0219】図65は、MOGCSモードにおいて、R
GBピクセルストリームをCYMK色値に変換する手法
を示している。ステップS1において、24ビットRG
Bピクセルストリームがピクセルオーガナイザ246
(図2)に入力される。ステップS2では、図56と図
57で説明したように、ピクセルオーガナイザ246が
ルックアップテーブルを用いて各入力画素の4ビット区
間値と8ビット区間内位置とを決定する。入力ピクセル
の区間値と区間内位置は、入力ピクセルがどの区間に存
在するのか、また区間内のどの位置に存在するのかを表
すものである。ステップS3では、主データパス部24
2が入力ピクセルの赤、緑、青色要素の4ビット区間を
結合して、12ビットアドレスワードを生成し、この1
2ビットアドレスワードをデータキャッシュ制御部24
0(図2)に送る。ステップS4では、表12と図62
において説明したように、データキャッシュ制御部24
0がこの12ビットアドレスワードを8つの9ビットア
ドレスに変換する。これらの8つのアドレスは、8つの
出力値CV(P0)−CV(P7)のメモリバンク57
3(図62)中の位置を示す。ステップS5では、デー
タキャッシュ制御部240(図2)が8つの9ビットア
ドレスを、図63で説明したように再マッピングする。
このようにして、赤と緑の4ビット区間の最大ビット
が、9ビットアドレスの最大2ビットにマッピングされ
る。
【0220】ステップS6では、データキャッシュ制御
部240が9ビットアドレスの最大2ビットと、メモリ
587(図63)中の2ビットタグとを比較する。2ビ
ットタグが9ビットアドレスの最大2ビットと一致しな
ければ、出力色値CV(P0)−CV(P7)はキャッ
シュメモリ230に存在しない。従ってステップS7に
おいて、2ビットタグエントリに対応する出力色値が外
部メモリからデータキャッシュ230に読み込まれる。
2ビットタグが9ビットアドレスの最大2ビットと一致
する際には、データキャッシュ制御部240はステップ
S8において図62において説明した要領で8つの出力
色値CV(P0)−CV(P7)を取り出す。このよう
にして、入力ピクセルを取り囲む8つの出力色値CV
(P0)−CV(P7)が主データパス部242によっ
てデータキャッシュ230から取り込まれる。ステップ
S7では、ステップS2で決定された区間内位置を用い
て出力色値CV(P0)−CV(P7)が主データパス
部242において補間され、補間された出力色値が出力
される。
【0221】ここで、RGB色空間や対応する出力色値
を4象限以上、例えば32ブロックに更に分割すること
により、データキャッシュ容量の格納領域を低減するこ
とができることは、専門家にとっては明らかである。3
2ブロックに分割する場合には、データキャッシュの格
納容量は出力色値の1/32ブロックのみで良い。ま
た、MOGCSモードで用いられるデータキャッシュ機
構を単一出力一般変換モードにおいて用いることもでき
ることも、専門家にとっては明らかである。この場合に
も、データキャッシュの格納領域を低減することができ
る。
【0222】3.17.3 JPEG符号化/復号 特にメモリの節約やある場所から他の場所への画像転送
速度の観点において、画像を符号化して格納することに
よる利点は計り知れない。画像符号化としてはさまざま
な広く流布している標準が生まれている。非常に有名な
標準の1つがJPEG標準であるが、JPEG標準に関
する詳細な説明はVan Nostrand Rein
holdにより1993年に出版されたPenneba
kerとMitchellによる著名な本「JPEG:
Still Image Data Compress
ion Standard」を参照されたい。コプロセ
ッサ224はJPEG標準のサブセットを用いて画像を
格納する。JPEG標準の利点は、画質を維持したまま
大幅な圧縮率が得られる点である。もちろん、画像を圧
縮して格納するためには他の標準を用いても良い。JP
EG標準は専門家には良く知られた標準であり、ASI
CSに用いることができるようなJPEGを実装した種
々の製品がJPEGコア製品などを含む製造業者から市
販されている。
【0223】コプロセッサ224は、1、3、4色要素
から成る画像をJPEG符号化/復号する機能を備えて
いる。1色要素画像はメッシュでもメッシュでなくても
良い。即ち、1色要素を、メッシュデータあるいはメッ
シュされていないデータのどちらかでも取り出すことが
できる。メッシュデータの例としてピクセルデータごと
の3色要素(即ち、ピクセルデータごとのRGB)があ
り、メッシュされていないデータの例として、画像の各
色要素が別々に格納されており各色要素を独立に処理で
きるようなデータが挙げられる。3色要素画像の場合に
は、コプロセッサ224は3色チャネルが最小3バイト
に符号化されていると仮定して、ワードごとに1ピクセ
ルを用いる。
【0224】JPEG標準は画像を最小符号化部位(M
CU)と呼ばれる小さな2次元部位に分割する。ここ
で、各最小符号化部位は独立に処理される。JPEG符
号化器(図2)は、ダウンサンプリングされた画像の横
16ピクセル、縦8ピクセルのMCUでも良いし、ダウ
ンサンプリングされていない画像の場合の横8ピクセ
ル、縦8ピクセルのMCUでも良い。
【0225】図66は、3要素画像をダウンサンプリン
グする手法を示している。元のピクセルデータ600
は、各ピクセルは601がYUV色空間でのY,U,V
要素から成るピクセル形式でMUVバッファ250(図
2)に格納されている。このデータはまず4つのデータ
ブロック601〜604から成るMCU部位に変換され
る。データブロックは種々の色要素を含み、ブロック6
01,602は直接サンプルされたY要素であり、ブロ
ック603、604は図3の例においてサブサンプルさ
れたU,V要素である。ここで、コプロセッサ224は
2種類のサブサンプリング機能を備える。1つはフィル
タリングしない直接サンプリングであり、奇数のピクセ
ルデータを残し、偶数のピクセルデータを削除するもの
である。なお、隣接値の平均をとりU,V要素をフィル
タリングすることもできる。
【0226】もう一つのJPEGサブサンプリングは、
図67に示した4色チャネルサブサンプリングである。
このサブサンプリングでは、16×8ピクセル610の
ピクセルデータブロックが通常のY,U,V要素に加え
て不透明度要素(O)を含む4要素611を有してい
る。このピクセルデータ610も図66と同様にサブサ
ンプルされる。しかし、この場合には、不透明チャネル
を用いてデータブロック612、613が作成される。
【0227】図68は、図2のJPEG符号化器241
をより詳細に説明した図である。JPEG符号化/復号
器241は、JPEG符号化と復号との双方を行う。符
号化処理は、バス620を介してピクセルオーガナイザ
246(図2)からブロックデータを受信する。ブロッ
クデータはMUVバッファ250に格納され、ブロック
ごとに処理がなされる。JPEG符号化処理はいくつか
の明確なステップに分割される。これらのステップは、 1.DCT部における離散コサイン変換の実行621 2.DCT出力の量子化622 3.量子化器622で実行されるジグザグスキャンによ
るDCT係数の配置 4.係数符号化器623で実行されるDC DCT係数
の予測符号化とAC DCT係数のランレンクス符号化 5.ハフマン符号化器624で実行される係数符号化器
の出力の可変長符号化。 出力はマルチプレクサ625とRbus626を介して
結果オーガナイザ629(図2)に送られる。
【0228】JPEG復号処理は、JPEG符号化動作
を逆にしたものである。即ち、JPEG復号処理は、B
us620から圧縮されたJPEGブロックを入力する
処理を含む。圧縮データはBus630を介してハフマ
ン符号化器624に送られ、データがDC差分とACラ
ンレンクスとに復号される。次に、データは係数符号化
器623に送られ、ACとDC係数が復号され、通常の
スキャンに戻される。その後、量子化器622において
DC係数に対応する量子化値を乗算することでDC係数
の逆量子化が行われる。最後に、DCT部621におい
て逆離散コサイン変換が施されもとのデータが復元さ
れ、Bus631を介してマルチプレクサ625、Bu
s626を介して結果オーガナイザに送られる。JPE
G符号化器241は、JPEG符号化器の動作を開始さ
せるために命令制御部によってセットされたレジスタを
含むような標準Cbusインタフェース632を介して
の通常の方法で動作する。また、量子化器622とハフ
マン符号化器624はテーブルを必要とするが、これは
必要時にデータキャッシュ230からロードされる。テ
ーブルデータは、Obusインタフェース部634を介
してアクセスされる。ここでObusインタフェース部
634はオペランドオーガナイザB247に接続され、
データキャッシュ制御部240と作用しあう。
【0229】DCT部621はピクセルデータに対して
離散コサイン変換と逆離散コサイン変換とを行う。DC
Tに関しては、さまざまな種類のDCT変換実現手法が
知られており、「Still Image Data
Compression Standard」(同上)
の中にも記されているものの、DCT621は以下の項
「高速DCT装置」で詳述する高速手法を用いている。
なお、DCT変換動作においては、The Trans
actions of the IEICE,vol.
E71,no.11,November 1988の1
095ページに掲載されたにAraiらによる論文「A
Fast DCT−SQ Scheme for I
mages」に基づくDCT変換手法を用いることもで
きる。
【0230】量子化器622はDCT係数の量子化と逆
量子化を行い、データキャッシュに格納された対応する
テーブルから関連値をObusインタフェース部634
を介して取り出すことで動作する。量子化処理において
は、入力データストリームは、データキャッシュ中の量
子化テーブルから読み出された値でもって除算される。
この除算は固定小数点の乗算として実装される。また、
逆量子化処理では、データストリームは逆量子化テーブ
ル中の値と乗算される。
【0231】図69は、逆量子化622をより詳細に説
明した図である。量子化器622は、ローカルバスを介
してDCTモジュール621にデータを渡したり、DC
Tモジュール621からデータを受け取ったりするDC
Tインタフェース640を備える。量子化処理において
は、量子化器622はクロックサイクルごとに2つのD
CT係数を受信する。これらの値は量子化器の内部バッ
ファ641、642の1つに書き込まれる。バッファ6
41、642は入力データをバッファするための2つの
ポートを備えたバッファである。量子化処理において、
DCTサブモジュール621からの係数データはバッフ
ァ641、642の1つに格納される。バッファがフル
になると、データはバッファからジグザグスキャンで読
み出され、Obusインタフェース部634を介して受
信した量子化値でもって乗算器643で乗算される。こ
の出力は係数符号化インタフェース645を介して係数
符号化器623(図68)に転送される。これらの処理
を行っている間、次のブロックの係数が他のバッファに
書き込まれている。JPEG復号処理において、量子化
モジュールは、テーブルに格納された値でもって復号さ
れたDCT係数を乗算することで逆量子化処理を行う。
量子化と逆量子化とはそれぞれ排他的な動作をするた
め、乗算器643は量子化と逆量子化との双方において
用いられる。なお、逆量子化テーブルへのインデックス
として、8×8のブロック中の係数の位置を用いる。
【0232】量子化処理と同様に、2つのバッファ64
1、642が係数符号化器623(図68)からの入力
係数データをバッファするために用いられる。データは
量子化値と乗算され、逆ジグザグスキャン順にバッファ
に書き込まれる。バッファがフルになると、逆量子化さ
れた係数が通常の順番でバッファから2つ同時に読み出
され、DCTインタフェース640を介してDCTサブ
モジュール621(図68)に送られる。従って、係数
符号化器インタフェースモジュール645は、係数符号
化器とのインタフェースとなっており、ローカルバスを
介して符号化器にデータを送ったり符号化器からデータ
を読み出したりする。このモジュールは、符号化時には
ジグザグスキャン順でバッファからデータを読み出し、
復号時には逆ジグザグスキャン順でバッファにデータを
書き込む。DCTインタフェースモジュール640とC
Cインタフェースモジュール645ともバッファからの
読み出しや書き込みを行うことができる。そのため、ア
ドレス/制御マルチプレクサ647を用いて、各インタ
フェースがどちらのバッファと動作しているのかを、量
子化器のすべてのモジュールを制御するための状態マシ
ンから成る制御モジュール648の制御のもとで、決定
する。乗算器643は、16×8の2の補数の乗算器を
用いてDCT係数を量子化テーブル値と乗算しても良
い。
【0233】図68において、係数符号化器623は以
下の機能を実行する。 (a) JPEGモードにおけるDC係数の予測符号化
/復号 (b) JPEGモードにおけるAC係数のランレンク
ス符号化/復号 なお、係数符号化器623は、JPEGモード動作とは
別に、必要な時点でピクセルの予測符号化/復号やメモ
リコピー動作のために用いることができると好ましい。
係数符号化器623は、ピンクブックに規定されている
ように、DC/AC係数の予測/ランレンクス符号化/
復号を行う。また、JPEG標準に規定されているよう
なJPEG AC係数のランレンクス符号化/復号に加
えて、標準の予測符号化/復号機能も備えている。
【0234】ハフマン符号化器624は、JPEGデー
タ列のハフマン符号化/復号を行う。ハフマン符号化モ
ードでは、係数符号化器623からランレンクス符号化
されたデータが受信され、パックバイトのハフマンスト
リームが生成される。また、ハフマン復号モードでは、
ハフマンストリームがPbusインタフェース620か
らパックバイト形式で読み出され、ハフマン復号された
係数が係数符号化モジュール623に送られる。ハフマ
ン符号化器624は、データキャッシュに格納され、O
busインタフェース634を介してアクセスされるハ
フマンテーブルを利用する。或は、ハフマンテーブルを
ハードで構成して高速にすることもできる。
【0235】ハフマン符号化においてデータキャッシュ
を用いるときには、データキャッシュの8つのバンク
は、以下に各テーブルごとに詳細に説明されているよう
にデータテーブルを格納する。 データキャッシュに格納されているハフマン、量子化テ
ーブル
【0236】
【表14】
【0237】図70において、ハフマン符号化器624
は、符号化器660と復号器661との2つの独立のブ
ロックから主に構成される。双方のブロック660、6
61はマルチプレクサモジュール662を介して同じO
busインタフェースを共有する。各ブロックは、それ
ぞれ入力と出力を有し、JPEG符号化器で実行される
機能に応じて、一時点ではどちらか1つのブロックのみ
がアクティブとなる。 a.符号化 JPEGモードにおける符号化においては、ハフマンテ
ーブルを用いて、DC差分値やACランレンクス値に可
変長コード(コードごとに16ビットまで)を割り当て
られる。割り当てられたコードは、CCサブモジュール
からHCサブモジュールに送られる。また、ハフマンテ
ーブルは動作開始前にデータキャッシュから予めロード
されていなければならない。そして、可変長コードをC
Cサブモジュールから送られてきたDCやAC係数の他
のビットと結合し、パックバイト形式が生成される。パ
ック処理の結果、X’FFバイトが得られたとすると、
X’00バイトが挿入される。RSTmマーカが必要な
ときはマーカが挿入されるが、この際には、最後のハフ
マン符号の「1」ビットでのバイト詰込処理と、詰込ま
れたバイトがX’FFになったときのX’00バイト挿
入処理が行われる。RSTmマーカが必要かどうかは、
CCサブモジュールによって指示される。また、HCサ
ブモジュールは、Pbus−CCスレーブインタフェー
ス上の「最後の」信号での指示により、画像の最後にE
OIマーカを挿入する。EOIマーカの挿入処理におい
ては、RSTmマーカと同様のパック処理、詰込み処
理、挿入処理が必要となる。最後に、出力ストリームは
パックバイトとして結果オーガナイザ249に送られ、
外部メモリに書き込まれる。
【0238】非JPEGモードの場合には、CCサブモ
ジュール(Pbus−CCスレーブインタフェース)か
らアンパックデータとして符号化器にデータが送られ
る。各バイトは(JPEGモードと同様に)キャッシュ
にあらかじめロードされたテーブルを用いて独立に符号
化され、可変長シンボルがパックバイト形式にまとめら
れ、結果オーガナイザ249に送られる。なお、出力ス
トリームの最後のバイトは1での詰込処理が行われる。 b.復号 復号アルゴリズムは、高速(リアルタイム)のものと低
速のものとを備える。高速アルゴリズムはJPEGモー
ドのみで動作し、低速アルゴリズムはJPEGモードで
も非JPEGモードでも動作する。
【0239】高速JPEGハフマン復号アルゴリズム
は、ハフマンシンボルをDC差分値あるいはACランレ
ンクス値のどちらかにマッピングする。これは特にJP
EGに適するように設計されており、符号化時において
例のハフマンテーブル(K3,K4,K5,K6)が用
いられることを想定している。なお、これらのテーブル
は、キャッシュメモリを参照することなく復号できるよ
うに、アルゴリズム中にハード的に埋め込まれている。
このような復号処理は、あるデータレートを保証しつつ
復号画像を印刷しなければならないような場合を想定し
たものである。バンド(RSTmマーカで区切られたブ
ロック)を復号するHCサブモジュールのデータレート
は、1クロックサイクルでほぼ1つのDC/AC係数で
ある。HCサブモジュールとCCサブモジュール間で
は、データストリームからX’00挿入バイトを削除す
るために、1クロックサイクル必要になることもある
が、これはデータに強く依存している。
【0240】ハフマン復号器は高速モードで動作し、ク
ロックサイクルごとに1ハフマンシンボルを抽出する。
なお、高速ハフマン復号器については、以下の「可変長
符号の復号器」において記している。また、ハフマン復
号器661は、ヒープに基づく低速復号アルゴリズムを
備えており、図71に示す構造670となっている。
【0241】JPEG符号化ストリームに対して、スト
リッパー671においてX’00挿入バイト、X’FF
詰込バイト、RSTmマーカが取り除かれ、結合された
他のビットとともにハフマンシンボルがシフター672
に送られる。なお、ハフマンのみの符号化ストリームで
はこの処理は行われない。ハフマンシンボル復号の最初
のステップは、ハフマンデータストリームの最初の8ビ
ットでアドレシングされたキャッシュに格納されたHU
FVALテーブルの256のエントリをルックアップす
る処理である。この値が対応するハフマンシンボルの真
の長さである場合には、当該値が出力フォーマッター6
76に転送され、復号値のシンボル長と付加ビット数と
がシフター672にフィードバックされ、関連する付加
ビットを出力フォーマッター676に転送し、復号部6
73に送るハフマンストリームの新しい開始部位を整列
する。ここで、付加ビット数は復号値の関数である。最
初のルックアップが復号値にならなかった場合、即ちハ
フマンシンボルが8ビット以上であった場合には、ヒー
プアドレスが計算され、一致するまで、あるいは「不適
切ハフマンシンボル」条件が満たされるまで、引き続き
ヒープ(キャッシュ内に位置)アクセスが実行される。
ルックアップが一致すると上記と同様の処理が行われ、
「不適切ハフマンシンボル」条件が満たされた場合には
インタラプト状態となる。
【0242】ヒープに基づく復号アルゴリズムは以下の
通りである。 画像の最後までループ シンボル長Nを8にセット 入力ストリームの最初の8ビットをINDEXに格納 HUFVAL(INDEX)をフェッチ If HUFVAL(INDEX)==00xx000111..(ILL) 「不適切ハフマンシンボル」信号の送出 exit elseif HUFVAL(INDEX)==1nnn eeee eee e−−(HIT) nnnビットをeeee eeeeに値として転送 シンボル長N=decimal(nnn)を転送 /*000がシンボル長8として*/ 入力ストリームの調整 break else/*HUFVAL(INDEX)==01iii iiii iii i−−(MISS) HEAPINDEX==ii iiii iiiiにセット(ヒープベース を0に仮定) N=9にセット If 入力ストリームの第9ビットが0である HEAPINDEXを1増加 fi VALUE=HEAP(HEAPINDEX)のフェッチ(第9ビットの 符号) Loop If VALUE==0001 0000 1111−−(NL) 「不適切ハフマンシンボル」信号の送出 exit elseif VALUE===1000 eeee eeee eeee eeeeを値として転送 シンボル長Nを転送 入力ストリームの調整 break else/*VALUE==01iii iiii iiii−−( MISS) N=N+1にセット (HEAPINDEX=ii iiii i iii) If 入力ストリームの第Nビットが0 HEAPINDEXを1増加 fi VALUE=HEAP(HEAPINDEX)のフェッチ pool pool ストリッパ671は、入力JPEG671符号化ストリ
ームからX’00挿入バイト、X’FF詰込みバイト、
RSTmマーカを削除し、「きれいな」ハフマンシンボ
ルを連結された付加ビットとともにシフタ672に転送
する。ハフマンのみの符号化においては他の付加ビット
は存在しないため、このモードにおいては転送されたス
トリームはハフマンシンボルのみから成る。
【0243】シフタ672ブロックは16ビット出力レ
ジスタを備え、次のハフマンシンボルを復号部673に
(MSBからLSBの順番のビットストリームで)転送
する。シンボルは16ビット以下であることも多いが、
どれだけのビットを解析するかを決定するのは復号部6
73に任されている。シフタ672は復号部673から
フィードバック678、即ち現在のシンボル長と(JP
EGモードにおける)現シンボルに続く付加ビット長と
を受信し、シフタ672における次のシンボルの開始時
点を適切に整列させる。
【0244】復号部673はヒープに基づくアルゴリズ
ムのコアを実装しており、Obus674経由でデータ
キャッシュに接続されている。復号部673は、データ
キャッシュフェッチブロック、ルックアップ値比較部、
シンボル長カウンター、ヒープインデックス加算部、付
加ビット数の復号部(復号は復号値に基づいて行われ
る)を備える。ここで、フェッチアドレスは以下のよう
に解釈される。
【0245】フェッチアドレス
【0246】
【表15】
【0247】出力フォーマッターブロック676は8ビ
ット値の復号や(スタンドアロンハフマンモード)、2
4ビット値と付加ビットとRSTmマーカ情報との32
ビットワードへの結合(JPEGモード)を行う。付加
ビットは、復号部673が現シンボルに対する付加ビッ
トの開始位置を決定した後に、シフタ672によって出
力フォーマッタ676に転送される。また、出力フォー
マッタ673は、最終値ワードを予測するために1ワー
ド遅延を用いた2ディープFIFOバッファを備えてい
る。復号処理においては、(高速、低速どちらでも)シ
フタ672が入力ビットストリームの最後部の詰込みビ
ットを復号しようと試みることが生じる。このような状
態はシフタによって通常検出され、「不適切シンボル」
インタラプトを送出する替わりに、「強制終了」信号を
送出する。アクティブな「強制終了」信号が送出される
と、出力フォーマッタ676は最近の1復号ワード(F
IFOにまだ存在している)を「最後」として送出し、
復号ストリームに属していない更に最近のワードを削除
する。
【0248】図70におけるハフマン符号化器660の
詳細を図72に示す。ハフマン符号化器660はルック
アップテーブルを介してバイトデータをハフマンシンボ
ルにマッピングし、符号化部681、シフタ682、出
力フォーマッタ683、キャッシュからアクセスされる
ルックアップテーブルを備える。入力値685はデータ
キャッシュに格納された符号化テーブルを用いて符号化
部681において符号化される。テーブルとしては、符
号化すべき値ごとに対応コードを含むテーブルとコード
長を含むテーブルとの2つのテーブルが必要となるが、
シンボルを符号化する際にはキャッシュ230へのアク
セスは一度で良い。なお、JPEG圧縮においては、A
C係数とDC係数ごとに別のテーブルが必要となる。ま
た、サブサンプリングが実行されている場合には、サブ
サンプル要素と非サブサンプル要素ごとに別のテーブル
が必要となる。非JPEG圧縮では、2つのテーブル
(符号とサイズ)のみが必要である。符号はシフタ68
2によって処理されて、出力ストリームをビットレベル
で構成する。また、シフタ682は、必要時のバイトパ
ディング処理であるRSTmとEOIマーカ挿入処理を
も行う。そして、データバイトは出力フォーマッタ68
3に転送され、X’00バイトでの挿入処理、X’FF
バイトやマーカ符号に先立つFFバイトでの詰込処理、
パッキングされたバイトのフォーマット処理を行う。な
お、非JPEGモードでは、パッキングされたバイトの
フォーマット処理のみが行われる。
【0249】X’FFバイトの挿入処理はシフター68
2によって行われるため、出力フォーマッタ683は
X’FFバイトを前に挿入するために、シフタ682か
らのどのバイトがマーカであるのかを知る必要がある。
これは、バイトに対応しているタグレジスタをシフター
682内に備えることによって行われる。バイト境界に
存在する各マーカは、マーカ挿入処理においてシフター
682によってタグ付けされる。結合処理部683はマ
ーカに先立つX”FF”バイト以降には挿入処理を行わ
ない。タグは、主シフトレジスタと同期してシフトされ
る。
【0250】ハフマン符号化器はJPEG圧縮において
4あるいは8つのテーブルを用い、2つのテーブルを直
接ハフマン符号化に用いる。用いるテーブルを以下に示
す。 ハフマン符号化器において用いられるテーブル
【0251】
【表16】
【0252】3.17.4 テーブルインデックシング ハフマンテーブルは、コプロセッサデータキャッシュ2
30において局所的に格納されている。データキャッシ
ュ230は、各ラインが8ワードから成る128ライン
の直接マッピングキャッシュとして構成される。キャッ
シュライン中の各ワードは独立にアドレスすることがで
き、この特徴をハフマン復号器が利用して同時に複数の
テーブルにアクセスする。テーブルは小さい(≦256
項目)なので、Obusの32ビットアドレスフィール
ドで複数のテーブルへのインデックスを含めることがで
きる。
【0253】上述のように、JPEG低速復号モードで
は、様々なハフマンテーブルを格納するためにデータキ
ャッシュが用いられる。データキャッシュのフォーマッ
トを以下に示す。 ハフマン/量子化テーブルのバンクアドレス
【0254】
【表17】
【0255】JPEG符号化器241(図2)において
JPEG命令が実行されるのに先立ち、画像次元レジス
タ(PO_IDR)あるいは(RO_IDR)に適切な
画像幅値がセットされなければならない。他の命令とと
もに、命令の長さは処理すべき入力データ項目数に関係
する。これはいかなるパディングデータをも含み、用い
られているサブサンプリングオプションや色チャネル数
にも関連する。
【0256】コプロセッサ224により出されたすべて
の命令は、生成する出力データ量を制限するために2つ
の機能を用いる。これらの機能は、入力と出力データの
サイズが異なるときにもっとも有効であり、特にJPE
G符号化/復号のように出力データサイズが未知である
ときに有効である。これらの機能は、出力データを書き
出すか、命令が適切に実行されたように見せながら単に
データを削除するかを決定する。デフォルトではこの機
能はオフになっており、RO_CFGレジスタ中の適切
なビットをイネーブルにすることでオンとなる。しか
し、JPEG命令ではこのビットをセットする特別なオ
プションが用意されている。なお、JPEG圧縮を用い
る際には、コプロセッサ224は出力データの「削除」
や「制限」機能をサポートすることが望ましい。
【0257】図73を用いて、削除、制限処理を説明す
る。入力画像690は、ある高さ691とある幅692
とを有する。ここで、画像の一部分のみに関心があり、
他の部位は印刷するのには関係がないというような状況
がしばしば存在する。しかしながら、JPEG符号化シ
ステムでは8×8ピクセルブロックを対象とする。その
ため、画像の幅が8の倍数とならない場合や、MCU6
95を構成する関心部位領域がきちんと境界と一致しな
い場合が生じる。そこで、出力削除レジスタRO_CU
Tは、出力データストリームのはじめの部位696にお
いて削除する出力バイト数を決定する。また、出力制限
レジスタRO_LMTは、生成する最大出力バイト数を
決定する。この最大出力バイト数は、削除レジスタの結
果に基づいてメモリに書込まれないバイトをも含む。こ
のような処理により、最終出力バイト698以降のデー
タは出力されないような最終出力バイトを求めることが
できる。
【0258】JPEG復号器における削除、制限機能が
特に有効であるケースとして2つの場合がある。第1の
ケースは、図74に示すように、復号画像の1ストリッ
プ701の一部位700を抽出あるいは解凍する場合で
ある。第2のケースは、図75に示すように、全体の画
像714において、複数の完全なストリップ(例えば、
711、712、713)の抽出あるいは解凍が必要と
なる場合である。
【0259】JPEG命令の命令フォーマットやフィー
ルド符号化を図76に示す。マイナーオプコードフィー
ルドの説明を以下に記す。 命令ワード−マイナーオプコードフィールド
【0260】
【表18】
【0261】3.17.5 データ符号化命令 コプロセッサ224は図2のJPEG符号化器の一部を
他の用途で用いることができる機能を備えることが望ま
しい。例えば、ハフマン符号化はJPEGのみならず他
の圧縮手法においても用いられる。また、階層的画像復
号のためのみにハフマン符号化部を制御するデータ符号
化命令が備わっていることも望ましい。更に、ランレン
クス符号化器/復号器、予測符号化器も同様の命令でも
って独立に用いられることができる。
【0262】3.17.6 高速DCT装置 従来の図77に示したような離散コサイン変換(DC
T)装置では、まず8×8ブロックの列方向に対して1
次元DCTを実行し、次いで8×8ピクセルブロックの
行方向に更に1次元DCTすることにより、8×8ピク
セルブロックの2次元変換を実行する。このような装置
では、入力回路1096、算術回路1104、制御回路
1098、置換メモリ回路1090、出力回路1092
を一般に備える。
【0263】入力回路1096は8×8ブロックから8
ビットピクセルを受信する。入力回路1096は、中間
マルチプレクサ1100、1102を介して算術回路1
104に接続されている。算術回路1104は、8×8
ブロックの完全な列あるいは行に対して算術処理を行
う。制御回路1098は、他の全ての回路を制御し、D
CTアルゴリズムを実行する。算術回路の出力は、置換
メモリ1090、レジスタ1095、出力回路1092
に送られる。置換メモリは更にマルチプレクサ1100
に接続され、マルチプレクサ1100は次のマルチプレ
クサ1102に出力を送出する。また、マルチプレクサ
1102はレジスタ1094からのデータをも受信す
る。置換回路1090は8×8ブロックデータを列形式
で入力し、行形式でデータを出力する。出力回路109
2はピクセルデータの8×8ブロックに対するDCT係
数を出力する。
【0264】通常のDCT装置では、算術回路1104
がもっとも複雑であるため、算術回路1104の速度が
全体の装置速度を決定する。図77の算術回路1104
は、一般に算術処理を図78を用いて説明するように複
数の処理段階に分割して処理を行う。従って、各処理段
階1144、1148、1152、1156を加算器や
乗算器などの通常の資源を用いて実行するような単一回
路が用いられる。このような算術回路1104では、単
一の共通回路が回路1104の種々の処理段階を実行す
るために用いられるため、最適速度に比べて速度が遅く
なるという欠点を有する。また、中間結果を蓄える格納
手段もこれに含まれる。回路のクロックサイクル時間は
少なくとも最も遅い回路段階以上でなければならないた
め、全体の処理に要する時間は各処理段階に要する時間
の和以上となり得る。
【0265】図78は、図77の装置における通常の算
術データパスを示したものであり、DCTを4処理段階
で行う処理の一部を示している。なお、本図は実際の実
装を示したものでなく、機能を示したものである。4処
理段階1144、1148、1152、1156のそれ
ぞれは、単一の再構成可能な回路として構築される。サ
イクルごとに、1次元DCTの4処理段階1144、1
148、1152、1156のそれぞれが再構成され
る。また、この回路においては、4処理段階1144、
1148、1152、1156のそれぞれが共通の資源
(加算器や乗算器など)のプールを用いることで、ハー
ドウェア規模を小さくしてえる。
【0266】しかしながら、この回路の欠点は速度が最
適になっていないことである。4処理段階1144、1
148、1152、1156はそれぞれが加算器や乗算
器の同一プールから構成されている。そのため、クロッ
クピリオドは最も遅い処理段階によって決定される(こ
の例ではブロック1144の20ns)。入力と出力マ
ルチプレクサ1146と1154の遅延(それぞれ2n
s)と、フリップフロップ1150の遅延(3ns)を
足すと、全体の遅延が27nsとなる。従って、このD
CT構成では最速27nsで動作する。
【0267】パイプライン形式のDCT構成もよく知ら
れている。この構成の欠点は、多量のハードウェアを必
要とする点である。スループットの観点では本発明の構
成ではパイプライン構成に及ばないものの、現在のほと
んどのDCT構成と比べてきわめて良好な性能/サイズ
特性や速度特性を示す。図79は、ピクセルデータが入
力回路1126に入力され、8ビットピクセルデータの
列を格納するようなJPEG符号化器(図2)において
用いられる好適な離散コサイン変換部の構成を示した図
である。置換メモリは、2次元離散コサイン変換の2回
目のパスを実施するために、列形式データを行形式デー
タに変換する。入力回路1126と置換メモリ1118
からのメモリは、マルチプレクサ1124においてマル
チプレキシングされ、出力データが算術回路1122に
送られる。算術回路1122の結果は、2回目のパスの
終了後出力回路1120に送られる。制御回路1116
は、離散コサイン変換装置中のデータの流れを制御す
る。
【0268】離散コサイン変換処理の第1回目のパスで
は、変換すべき画像の列データあるいはピクセルデータ
に逆変換される変換画像係数が、入力回路1126に送
られる。このパスでは、マルチプレクサ1124は制御
回路1116によって設定され、入力回路1126から
算術回路1122にデータが送られる。図80は、算術
回路1122の構成をより詳細に示した図である。フォ
ワード離散コサイン変換の実行の場合には、フォワード
離散コサイン変換を実行するフォワード回路1138の
結果がマルチプレクサ1124において選択される。こ
こで、マルチプレクサ1124は制御回路1116によ
って設定される。逆離散コサイン変換の実行の場合に
は、制御回路1126の設定に基づいて、逆回路114
0からの出力がマルチプレクサ1142において選択さ
れる。1回目のパスでは、各列ベクトルが算術回路11
22(制御回路1166によって適切に設定される)に
よって処理された後、当該ベクトルが置換メモリ111
8に書込まれる。8×8ブロック中のすべての8列ベク
トルの処理が終わり、置換メモリ1118に書込まれる
と、離散コサイン変換の2回目のパスが開始される。
【0269】フォワードあるいは逆離散コサイン変換の
2回目のパスでは、行形式のベクトルが置換メモリ11
18から読み出され、マルチプレクサ1124を介して
算術回路1122に送られる。このパスでは、マルチプ
レクサ1124は入力回路1136からのデータを無視
し、置換メモリ1118からの行ベクトルデータを算術
回路1122に転送するように、制御回路によって設定
される。算術回路1122中のマルチプレクサ1142
は、逆回路1140からの結果データを算術回路112
2の出力に送る。算術回路1122からの結果が得られ
た時点で、制御回路1116からの指令に基づいて出力
回路1120は結果を取り込み、以降の時点で出力す
る。
【0270】算術回路1122は、中間結果を格納する
記憶部位を持たないという点で、組み合わせ回路となっ
ている。制御回路1116は、データが入力回路113
6からマルチプレクサ1124や算術回路1122を介
して出力されるまでに要する時間を把握しているため、
算術回路1122の出力からの結果ベクトルを出力回路
1120に取り込む時点を正確に指示することができ
る。算術回路1122において中間記憶を持たない利点
は、中間記憶要素との間でのデータのやり取りに必要な
時間を省くことができるとともに、算術回路1122を
データが通過するのに要する時間が内部処理段すべての
和となり、最大の時間を要する処理段のN倍(従来の離
散コサイン変換装置のように)にはならないことが挙げ
られる。なお、ここで、Nは算術回路中の処理段数であ
る。
【0271】図81は、全体の遅延が単に4つの処理段
1158、1160、1162、1164の和、20n
s+10ns+12ns+15ns=57nsとなり、
図78の回路よりも高速となることを示している。この
ような回路によれば、全体のシステムクロックサイクル
を短くすることができる。図81の回路において、結果
を得るのに4クロックサイクルが必要であるとすると、
全体のDCTシステムにおいて最小実行時間は57/4
ns(14.25ns)となり、図78ではDCTクロ
ックサイクルが27nsとせざるを得ないことを鑑みる
と大幅な性能向上となることがわかる。
【0272】本DCT装置の実際の実行時においては、
Yukihiro Arai,Takeshi Agu
i,Masayuki NakajimaらによるTh
eTransactions of the IEIC
E,vol,E71,no.11,1988年11月の
ページ1095に掲載された論文「画像のための高速D
CT−SQ手法」で示されたDCTアルゴリズムを用い
ることもできる。このアルゴリズムをハードウェアで実
行することで、本DCT装置中の算術回路1122に容
易に配置することができる。同様に、他のDCTアルゴ
リズムを算術回路1122中にハードウェアとして配置
することも可能である。
【0273】3.17.7 ハフマン復号器 以下の実施例は、種々の長さのビットフィールドがイン
ターリーブされた可変長符号に対する手法と装置に関す
るものである。特に、本発明の実施例は、可変長符号化
データの効率の良い、高速な、単一処理段(クロックサ
イクル)の復号を提供するものである。ここで、可変長
符号化されていず整列されているようなデータとは、既
に別の前処理ブロックにおいて符号化データストリーム
から削除されているものとする。更に、削除されたバイ
ト整列データの位置情報は、復号されるデータと同時に
復号器の出力に送られる。また、前処理された入力デー
タ中に残っているバイト整列、非可変長符号化ビットフ
ィールドの高速な検出、並びに削除をも提供するもので
ある。
【0274】本発明の好適な実施例では、マーカ符号間
のクロックサイクルごとに1ハフマンシンボルといった
レートで、JPEG符号化データを復号することのでき
る高速ハフマン復号器を備えることが望ましい。これ
は、別の前処理ブロックにおいて、入力データからバイ
ト整列されハフマン符号化されていないマーカヘッダ、
マーカ符号、挿入バイトを分離し、除去する手法によっ
て実現できる。バイト整列されたデータが除去される
と、入力データはデータシフト組み合わせ回路ブロック
に送られ、データ復号レジスタの連続的な挿入処理を行
い、復号部位にデータが送られる。もとの入力データか
ら除去されたマーカの位置はマーカシフトブロックに送
られ、データシフトブロックにおいてシフトされた入力
データと同時にマーカ位置ビットのシフトが行われる。
【0275】復号部は、データ復号レジスタから入力さ
れた符号化ビットフィールドを組合せ回路で復号する。
復号部の出力は、復号値(v)と入力符号の実際の長さ
(m)である。ここで、mはn以下である。また、可変
長ビットフィールドの長さ(a)も出力する。ここで、
aは0以上の値である。可変長ビットフィールドはハフ
マン符号化されていないため、すぐにハフマン符号化さ
れる。復号部の入力中の長さnのビットフィールドは実
際の符号以上の長さを有する。復号部では、実際のコー
ド長(m)を決定し、他のビット(a)の長さとともに
制御ブロックに転送する。制御ブロックはシフト値(a
+m)を決定し、データ/マーカシフトブロックを起動
して次の復号サイクルに備えて入力データをシフトす
る。
【0276】本発明の装置では、復号値、入力符号の実
際の長さ、ハフマン符号化されていないビットフィール
ドの長さを所定の時間内に出力するものであれば、RO
M,RAM,PLAなどのいかなる組合せ回路の復号部
を用いることができる。本実施例では、復号部は、JP
EG標準で規定されているように予測符号化DC係数値
やACランレンクス値を出力する。また、JPEG標準
で規定されているように、復号値と同時に入力データか
ら除去されたハフマン符号化されていないビットフィー
ルドは、DCとAC係数の値を決定する付加ビットを示
す。データ復号レジスタ中のデータから除去されたハフ
マン符号化されていないビットフィールドの他の種別と
しては、JPEG標準に規定されているようにもとの入
力データストリーム中のバイト整列マーカに先立つパデ
ィングビットがある。これらのビットは、制御ブロック
がデータレジスタのパディング領域の内容をチェックす
ることによって検出される。パディング領域はデータレ
ジスタのk最大ビットから成り、マーカレジスタの最大
ビット中のマーカビットの存在によって示される。パデ
ィング領域中のすべてのビットが同一(JPEG標準で
は1)であれば、パディングビットとして判断され、復
号されることなくデータレジスタから除去される。そし
て、次の復号サイクルに向けて、データとマーカレジス
タの内容は更新される。
【0277】装置の実施例では、本発明の好適な実施例
の要求に応じて、出力データのフォーマット処理を行う
出力ブロックを備える。出力ブロックは、JPEGにお
ける付加ビットなどのように、対応する可変長符号化さ
れていないビットフィールドや、JPEGにおけるマー
カのように整列された入力バイトや符号化されていない
ビットフィールドの位置を示す信号とともに、復号値を
出力する。
【0278】JPEG符号化器241(図2)によって
復号されたデータは、JPEGコンパチブルであり、
「付加ビット」と呼ばれる可変長符号化されていないビ
ットフィールド、「パディングフィールド」と呼ばれる
可変長符号化されていないニットフィールド、「マー
カ」「挿入バイト」「詰込バイト」と呼ばれる固定長
の、バイト整列された、符号化されていないビットフィ
ールドがインタリーブされた可変長ハフマン符号化コー
ドから構成される。図82に代表的な入力データを示
す。
【0279】JPEG符号化器241のハフマン復号器
中の全体構成やデータフローを図83と図84に示す。
図83は、JPEGデータのハフマン復号器の構成を詳
細に示している。ストリッパ1171はマーカ符号(符
号FFXXhex,XXは非零)を除去し、バイト(符
号FFhex)を挿入し、バイト(符号Ffhexに続
く符号00hex)を詰込む。これらはすべて入力デー
タのバイト整列された要素であり、32ビットワードと
してストリッパに送られる。処理すべき第1ワードの最
大ビットは、入力ビットストリームの先頭になる。スト
リッパ1171では、バイト整列されたビットフィール
ドが、ハフマン符号の復号処理が復号器のダウンストリ
ーム部位において実際に行われる前に、入力データから
除去される。
【0280】入力データはストリッパ1171にクロッ
クサイクルに1つごとの32ビットワードとして入力さ
れる。入力バイト1211を0から3への番号付けを図
85に示す。番号(i)のバイトが挿入バイト、詰込バ
イト、あるいはマーカであるため除去されたとすると、
番号(i−1)から0の残りのバイトがストリッパ11
71の出力で左にシフトされ、番号(i)を1減らす。
この際、バイト0は「無関係な」バイトとなる。ストリ
ッパ1171から出力されたバイトの有効性は、図85
に示されている別の出力タグ1212によって符号化さ
れる。ストリッパ1171によって除去されないバイト
はストリッパにおいて左詰めで出力される。出力中の各
バイトは、対応するバイトが有効(ストリッパ1171
を通過する)か、無効(ストリッパ1171で除去され
る)か、有効かつマーカの後部か、を示すタグが付加さ
れる。タグ1212は、データシフタを通してデータレ
ジスタ1182へのデータバイトのロードを制御すると
ともに、マーカシフタを通してマーカレジスタ1183
へのマーカ位置のロードを制御する。入力ワードから1
バイト以上削除された場合でも同様の手法が実行され
る。すなわち、すべての残りの有効バイトが左詰めさ
れ、対応する出力タグが出力バイトの有効性を示す。図
85には、種々の入力バイトの組み合わせに対する出力
バイトと出力タグの例1213が示されている。
【0281】図83において、プレシフタとポストシフ
タブロック1172、1173、1180、1181の
役割は、データレジスタ1182とマーカレジスタ11
83に十分な空き領域がある場合にデータレジスタとマ
ーカレジスタとに連続的にデータをロードすることであ
る。データシフタとマーカシフタブロックは、プレシフ
タブロックとポストシフタブロックとから成るが、それ
ぞれは同一であり同様に制御される。差異は、データシ
フタがストリッパ1171からのデータを処理するのに
対し、マーカシフタはタグのみを処理し、マーカ位置を
復号されたハフマン値と同時に復号器に出力する点にあ
る。ポストシフタ1180、1181の出力は、図83
に示されているように対応するレジスタ1182、11
83に直接転送される。
【0282】図86にもデータプレシフタ1172が示
されているが、データプレシフタ1172は、ストリッ
パ1171からのデータに32個のゼロを最小ビット1
251に付加し、64ビットにデータを拡張する。次い
で、拡張データは64ビット幅のバレルシフタ1252
で右にデータレジスタ1182に現在存在するビット数
だけシフトされる。この際、ビット数は、データ118
2、マーカ1183レジスタ内にどれだけの有効ビット
が存在するかを常に把握している制御ロジック1185
から与えられる。そして、バレルレジスタ1252は、
64ビットを、64個の2×1基本マルチプレクサ12
54から成るマルチプレクサブロック1253に転送す
る。各基本2×1マルチプレクサ1254は、バレルシ
フタ1252からの1ビットとデータレジスタ1182
からの1ビットを入力とする。データレジスタ中のビッ
トが有効であるときにデータレジスタビットを出力す
る。一方、無効である場合には、バレルシフタ1252
のビットを出力する。すべての基本マルチプレクサ12
54への制御信号は、図86ならびに図87におけるレ
ジスタ1223のプレシフタ制御ビット0...5とし
て示されているように制御ブロックのシフト制御1信号
より復号される。基本マルチプレクサ1254の出力は
バレルシフタ1255に送られ、図86に示されるよう
に5ビット制御信号シフト制御2より与えられるビット
数分左にシフトされる。これらのビットは、データレジ
スタ1182において現データの復号によって使用され
るビット数を示したものであり、現復号ハフマンコード
長と続く付加ビット数、あるいはパディングビットが検
出されていれば削除されるパディングビット数、あるい
はデータレジスタ1182中の有効ビット数が削除され
るビット数以下であれば0を足したものとなる。このよ
うにして、バレルシフタ1255から出力されるデータ
には、単一復号サイクルの後にデータレジスタ1182
にロードされる新しいデータが含まれることになる。デ
ータレジスタ1182の内容は、最大ビットが復号され
るためにレジスタからシフトアウトされ、ストリッパ1
171から0、8、16、24、32ビットがデータレ
ジスタ1182に付加されるといった具合に変更され
る。データレジスタ1182に復号できるだけの十分な
ビットが存在しない場合には、ストリッパ1171から
のデータが存在すれば現サイクルにおいてロードされ
る。現サイクルにおいてストリッパ1171からのデー
タが存在しない場合には、データレジスタ1182から
の復号ビットは、十分なビット数であれば削除され、十
分なビット数でなければデータレジスタ1182の内容
は変更されない。
【0283】マーカプレシフタ1173、ポストシフタ
1181、マーカレジスタ1183は、データプレシフ
タ1172、データポストシフタ1180、データレジ
スタ1182とそれぞれ同一の部位である。部位117
3、1181、1183内のデータフローならびにこれ
らの部位間のデータフローも、部位1172、118
0、1182間でのデータフローと同一である。同様の
制御信号が制御部1185より双方の部位セットに送ら
れる。これらの部位の差異は、マーカプレシフタ117
3とデータプレシフタ1172の入力データ種別と、マ
ーカレジスタ1183とデータレジスタ1182の内容
がどのように用いられるか、という点である。図88に
示すように、ストリッパ1171からのタグ1261は
8ビットワードとして入力され、データレジスタ118
2に向かうデータバイトごとに2ビット割り当てられて
いる。図85に示した符号化手法によれば、有効かつマ
ーカ後部であるバイトを示す2ビットタグの最大ビット
は1である。ストリッパ1171から同時に送られる4
つのタグの最大ビット位置のみが、マーカプレシフタ1
173の入力1262として送出される。このようにし
て、マーカプレシフタへの入力には、はじめに符号化さ
れたデータビットでマーカの後部に位置する位置を示す
1がセットされたビットが存在することになる。同時
に、これらはデータレジスタ1182中でマーカが後に
続くはじめに符号化されたデータビットの位置をマーク
している。マーカレジスタ1183中のマーカ位置ビッ
トとデータレジスタ1182中のデータビットの同期的
な振る舞いによって、制御ブロック1185はパディン
グビットの検出や削除を行うことができるとともに、復
号データと同時にマーカ位置を復号器の出力に送出する
ことができる。上述の通り、2つのプレシフタ(データ
1172とマーカ1173)、ポストシフタ(データ1
180とマーカ1181)、レジスタ(データ1182
とマーカ1183)は同一の制御信号を与えられている
ため、完全な並列、同期動作が可能となる。
【0284】復号部1184(図89にも示されてい
る)は、データレジスタ1182の最大16ビットを入
力し、復号されたハフマン値、復号される現在の入力符
号長、入力符号に続く付加ビット長(復号値の関数とな
る)を抽出するための組み合わせ回路復号部1184に
送られる。付加ビット長は、対応する前のハフマンシン
ボルが復号された時点で明らかになり、次のハフマンシ
ンボルの開始位置となる。従って、クロックサイクルご
とに1つの値が復号される速度を維持する場合には、ハ
フマン値の復号を組み合わせ回路ブロックで行わなけれ
ばならない。復号部は、図89に示すように、16ビッ
トトークンをデータレジスタ1182から入力し、ハフ
マン値(8ビット)、対応するハフマン符号化されたシ
ンボル(4ビット)、付加ビット(4ビット)を生成す
るような組み合わせ回路ブロックとしてハードワイヤさ
れた4つのPLAスタイルの復号テーブルを備えること
が望ましい。
【0285】パディングビットの削除処理は、制御部1
185の一部であるパディングビットの復号部において
データレジスタ1182中でパディングビット列が検出
された際の実際の復号処理において行われる。図90に
パディングビットの復号部を示す。マーカレジスタ11
83、1242の8最大ビット中にマーカ位置ビットが
存在するかどうかが調べられる。マーカ位置ビットが存
在した場合には、マーカレジスタ1242中のマーカビ
ットに先立つビットに対応するデータレジスタ118
2、1241中のすべてのビットが現在のパディング領
域として判断される。現在のパディング領域の内容は、
パディングビット検出部1243によってすべて1であ
るかどうかがチェックされる。現パディング領域のすべ
てのビットが1である場合には、パディングビットであ
ると判断されデータレジスタから削除される。ここで、
削除処理は、データレジスタ1182、1241(同時
にマーカレジスタ1183、1242)の内容を対応す
るシフタ1172、1173、1180、1181を用
いて1クロックサイクルで左にシフトさせることで行わ
れる。この処理は、復号値が出力されないことを除いて
通常の復号モードと同一である。現パディング領域のす
べてのビットが1でない場合には、パディングビット削
除サイクルではなく通常の復号サイクルが実行される。
パディングビットの検出は上述のように各サイクルごと
に行われ、データレジスタ1182にパディングビット
が存在する場合には削除される。
【0286】図87は、制御部1185を詳細に示した
ものである。制御部の中心部位はレジスタ1223であ
り、データレジスタ1182中の現有効ビット数を保持
している。マーカレジスタ1183中の有効ビット数は
常にデータレジスタ1182中の有効ビット数と等し
い。制御部は3つの機能を実行する。第一の機能は、レ
ジスタ1223に格納されるデータレジスタ1182中
の新しいビット数の計算である。第二の機能は、シフタ
1172、1173、1180、1181、1186、
1187、復号部1184、出力フォーマット部118
8への制御信号の生成である。第三の機能は、上述のよ
うにデータレジスタ1182中のパディングビットの検
出である。
【0287】データレジスタ1182中の新しいビット
数(new_nob)は、データレジスタ1182(n
ob)中の現ビット数と現サイクルにおいてストリッパ
1171からロード可能なビット数(nos)との加算
し、現サイクルにおいてデータレジスタ1182から削
除されるビット数(nor)を減算したものとして計算
される。ここで、現サイクルは、復号サイクルあるいは
パディングビット削除サイクルである。従って、新しい
ビット数は以下のように計算される。
【0288】 new_nob=nob+nos−nor これらの処理は加算器1221と減算器1222とで実
行される。なお、現サイクルにおいてストリッパ117
1からデータが入力されない場合には(nos)が0と
なる。また、データレジスタ1182においてビットが
足りない、即ちデータレジスタ中のビットが制御部11
85からの現符号長と続く付加ビット長との和以下であ
ることにより、現サイクルにおいて復号処理が行われな
い場合にも(nos)は0となる。値(new_no
b)は64を越えることがあり、ブロック1224にお
いて越えているかどうかがチェックされる。このような
場合には、ストリッパ1171は停止状態となり、新し
いデータのロードがなされない。マルチプレクサ123
3は、ストリッパ1171からロードされたビット数を
ゼロにするために用いられる。ここで、ストリッパ11
71を停止させる信号は図示されていない。復号部12
31からの信号「パディングサイクル」はマルチプレク
サ1234を制御し、パディングビット数あるいは復号
ビット数(符号ビットと付加ビットとの長さ)を削除す
べきビット数(nor)として選択する。復号ビット数
がデータレジスタ中のビット数(nob)以上である
と、比較器1228において判断されると、マルチプレ
クサ1234に与えられるシフトすべき有効ビット数は
NANDゲート1230においてゼロに設定される。す
なわち、(nor)はゼロに設定され、データレジスタ
のビットの削除は行われない。マルチプレクサ1234
の出力は、ポストシフタ1182と1183の制御にも
用いられる。データレジスタ1182の幅はデッドロッ
ク状態を避けるように設定される。すなわち、ストリッ
パ1171からの最大ビット数を収容するだけの領域を
データレジスタに確保するように、あるいは復号/パデ
ィングビット削除サイクルの結果として十分な有効ビッ
ト数が削除されるように設定される。
【0289】復号サイクルにおいて削除されるビット数
の計算は加算器1226において実行される。オペラン
ドは組み合わせ回路復号部1184から入力される。1
6ビットの符号長は復号部において”0000”と符号
化されるため、”ou_reduce”ロジック122
5では”0000”が”10000”に符号化され、現
在の符号なしのオペランドが得られる。このオペランド
と減算器1227の出力とが、出力フォーマットシフタ
1186と1187への制御信号を与える。
【0290】ブロック1229はEOI(画像終了)マ
ーカ位置の検出に用いられる。EOIマーカ自身はスト
リッパ1171において削除されるが、ストリッパ11
71で削除される以前にEOIマーカに先立つ位置に存
在していたデータの最終ビットとなるパディングビット
は存在する。比較器1229では、レジスタ1223に
格納されているデータレジスタ1182中のビット数が
8以下であるかどうかをチェックする。8以下であれ
ば、ストリッパ1171から新しいデータは入力されず
(データレジスタ1182が復号されるデータ部の残り
のビットを保持している)、残りのビットが削除された
EOIマーカの前のパディング領域サイズを示すことに
なる。さらなるパディング領域の処理やパディングビッ
トの削除などは、上述のRSTマーカの前のパディング
ビットの場合に用いた手順と同一である。
【0291】バレルシフタ1186、1187と出力フ
ォーマット部1188とはサポートする投割を有し、実
施例に応じたさまざまな実装を考えることができる。ま
た、まったく実装されないこともあり得る。これらへの
制御信号は上述のように制御部1185より与えられ
る。付加ビットプレシフタ1186はデータレジスタか
ら32ビットを入力し、現在復号されているハフマン符
号長だけ左にシフトする。このようにして、現在復号さ
れている符号に続くすべての付加ビットは、バレルシフ
タ1186の出力に合わせて左に位置することになり、
バレルシフタ1187への入力として送られる。付加ビ
ットポストシフタ1187は、データの出力フォーマッ
トとして用いられ図91にも示されている11ビットフ
ィールドにおいて、左整列から右整列に付加ビット位置
を調整する。付加ビットフィールドは出力ワードフォー
マット1196においてビット8からビット18に拡張
され、実際の付加ビット数に応じて最大ビットのいくつ
かは無効であることもある。このビット数はJPEG標
準で規定されているように1196のビット0から3に
符号化される。出力データフォーマットとして異なるフ
ォーマットを用いる場合には、フォーマットに応じてバ
レルシフタ1186、1187とその機能を変更するこ
とになる。
【0292】出力フォーマットブロック1188は復号
値をパックする処理を行い、JPEG標準では制御部1
185から与えられるDC/AC係数(1196,ビッ
ト0から7)とDC係数指示ビット(1196,ビット
19)、付加ビットポストシフタ1187から与えられ
る付加ビット(1196,ビット8から18)、マーカ
レジスタ1183から与えられるマーカ位置ビット(1
196、ビット23)とを図91に示すフォーマットに
従ってワードに構成する処理を行う。出力フォーマット
部1188は、復号部の出力インタフェースに関する機
能要件にも対処する。出力フォーマット部の実装は、異
なる機能要件の結果として出力インタフェースを変更す
ることになると、通常それに応じて変更される。上述の
ハフマン復号器は非常に効果的な復号処理を提供し、高
速復号処理を実現する。
【0293】3.17.8 画像変換命令 これらの命令はソース画像の一般アフィン変換を行うた
めのものである。変換画像の一部を生成する処理は大き
く2つのエリアに分けられる。一つはソース画像のどの
部位が現在の出力スキャンラインと関連するかを決定す
るステップ、もう一つは必要なサブサンプリング/補間
処理を行ってピクセルごとに出力画像を生成するステッ
プである。
【0294】図92は、ソース画像の適切な領域が復号
されているものとして、目的ピクセル値を計算するため
に必要なステップ720のフローチャートを示してい
る。まず、サブサンプリングが行われていればサブサン
プルが721で考慮される。次に、他の補間処理722
と他のサブサンプリング処理といった2つの処理が通常
実装されている。通常、補間とサブサンプリングとは別
のステップであるが、補間とサブサンプリングとを一緒
に行う場合もある。補間処理においては、まず周囲の4
ピクセルを探し、プレ乗算723が必要であるかどうか
を、双線形補間724を行う前に決定する。双線形補間
処理724は一般に計算量が非常に多くなるため、これ
により画像変換処理動作が制約される。目的ピクセル値
を計算する最後のステップは、ソース画像から双線形補
間されたサブサンプルを加算する処理である。加算され
たピクセル値はさまざまな方法で積分727され、目的
画像ピクセル728が生成される。
【0295】画像変換命令のための命令ワード符号を図
93に示すとともに、マイナーオプコードフィールドの
説明を以下の表に示す。 命令ワード:マイナーオプコードフィールド
【0296】
【表19】
【0297】命令オペランドや結果フィールドの説明を
以下に示す。 命令オペランドと結果ワード
【0298】
【表20】
【0299】オペランドAは、実際の変換を定義するた
めに必要なすべての情報を記述している「カーネル記述
子」として知られているデータストラクチャを指す。こ
のデータストラクチャは2つのフォーマットのうちの1
つとなる(A記述子のLビットで定義される)。図94
はカーネル記述子の長い符号フォーマットを示し、図9
5は短い符号フォーマットを示す。カーネル記述子は、
以下の情報を記述する。 1.ソース画像開始座標730(符号なしの固定長、2
4.24解像度)。位置(0、0)が画像の左上。 2.水平731と垂直732(サブサンプル)デルタ
(2の補数、固定長、24.24解像度) 3.後述の固定長行列係数中のバイナリポイントの位置
を示す3ビットのbpフィールド733 4.(存在する場合には)積分行列係数735。これら
は、bpフィールドによって暗黙的に指定されたバイナ
リ点の位置である20のバイナリ点の「可変」ポイント
解像度(2の補数)である。 5.カーネル記述子中の残りのワード数を示すrlフィ
ールド736。この値は列数と行数とを掛けたものから
1を引いた値となる。
【0300】記述子のカーネル係数は列ごとに並べられ
るが、ジグザグスキャンとなるように隣り合う列は逆方
向に並べられる。図96において、オペランドBはソー
ス画像のスキャンラインを指すインデックステーブルへ
のポインターから成る。インデックステーブルの構造は
図96に示されているように、オペランドB740がイ
ンデックステーブル741を指し、インデックステーブ
ルが必要なソース画像ピクセルのスキャンライン(例え
ば742)を指すという構造である。一般に、インデッ
クステーブルとソース画像ピクセルとはキャッシュ可能
であり、ローカルメモリに位置している。
【0301】オペランドCは水平/垂直サブサンプルレ
ートを保持している。水平/垂直サブサンプルレート
は、C記述子が存在する際に指定されるサブサンプル重
み行列の次元によって定義される。行列rとcの次元
は、図97に示すように画像変換命令のデータワードに
符号化されている。結果ピクセルP[N]のチャネルN
は以下の式に基づいて計算される。
【0302】
【数4】
【0303】内部的には、積分値は各チャネルごとの3
6のバイナリ点として保持される。フィールド中のバイ
ナリ点の位置は、BPフィールドによって指定される。
BPフィールドは削除する積分結果の先のビット数を示
している。36ビットの積分値は符号付きの2の補数と
して表現され、指定されたようにクランプ処理あるいは
ラップ処理される。図98に、係数符号におけるBPフ
ィールドの解釈例を示す。
【0304】3.17.9 畳込み命令 レンダリング画像に適用される畳込み処理は、2次元畳
込みカーネルをソース画像に適用して結果画像を生成す
るものである。畳込み処理は通常、エッジ先鋭化やいろ
いろな画像フィルタにおいて用いられる。畳込み処理は
コプロセッサ224において実装され、画像変換処理で
はカーネルが各出力ピクセルごとにカーネル幅だけ移さ
れるのに対し、畳込み処理では各出力ピクセルごとに1
ソースピクセルが移動するといった点以外は、画像変換
処理と同様の処理である。
【0305】ソース画像が値S(x,y)を有し、nx
m畳込みカーネルが値C(x,y)を有すると、SとC
の畳込みH[n]のn番目のチャネルは、
【0306】
【数5】
【0307】で与えられる。ここで、i∈[0,c],
j∈[0,r]である。オフセット値の意味、中間結果
の解像度、bpフィールドの意味は画像変換命令と同一
である。図99は、畳込みカーネル750がソース画像
751に適用し、結果画像752を生成する例を示した
図である。ソース画像アドレス生成や出力ピクセル計算
は、画像変換命令と同様に行われる。命令オペランドも
画像変換と同様の形式である。図100は、畳込み命令
の命令ワード符号を示したものであり、以下の表が種々
のフィールドの説明である。
【0308】命令ワード
【0309】
【表21】
【0310】3.17.10 行列乗算 行列乗算は、2つの色空間においてアフィン変換の関係
が存在するような色空間変換処理などに用いられる。行
列乗算は以下の式で定義される。
【0311】
【数6】
【0312】行列乗算命令オペランドと結果ワードは以
下のフォーマットを有する。 命令オペランドと結果ワード
【0313】
【表22】
【0314】図101に行列乗算命令のための命令ワー
ド符号を示すとともに、以下の表にマイナーオプコード
フィールドを示す 命令ワード
【0315】
【表23】
【0316】3.17.11 ハーフトーン化 コプロセッサ224はハーフトーン処理のための多値レ
ベルディザーを備える。2から255までの値は意味の
あるハーフトーンレベルとなる。ハーフトーンするデー
タは、スクリーンが対応してメッシュあるいはアンメッ
シュである限り、バイト(アンメッシュあるいはメッシ
ュデータからの1チャネル)あるいはピクセル(メッシ
ュ)のどちらでも良い。4つの出力チャネル(あるいは
同一チャネルから4バイト)まで、一緒にパックされた
ようなあるいはバイトごとに1符号にアンパックされた
ようなパックビット(2レベルハーフトーンの場合)あ
るいは符号(2出力レベル以上の場合)生成することが
できる。
【0317】出力ハーフトーン値は以下の式を用いて計
算される。 (P×(l−1)+d)/255 ここで、pはピクセル値(0≦p≦255)、lはレベ
ル数(2≦l≦255)、dはディザ行列値(0≦d≦
254)である。オペランド符号は以下の通りである。 命令オペランドと結果ワード
【0318】
【表24】
【0319】命令ワード符号では、マイナーオプコード
はハーフトーンレベル数を指定する。オペランドB符号
はハーフトーンスクリーンのためのものであり、タイル
合成と同様に符号化される。 3.17.12 階層的画像フォーマット復号 階層的画像フォーマット復号処理は複数のステップを含
む。これらのステップは、水平補間、垂直補間、ハフマ
ン復号、残部融合である。各ステップは別の命令でもっ
て実行される。ハフマン復号ステップでは、補間ステッ
プからの補間された値に付加される残りの値がハフマン
符号化される。従って、JPEG復号部がハフマン復号
において用いられる。
【0320】図102に、水平補間処理を示す。出力ス
トリーム761は入力ストリーム672の2倍のデータ
となり、最後のデータ値763は複製されている76
4。図103は4倍の水平補間を行う例である。階層的
画像フォーマット復号の第2ステップでは、線形補間に
よりピクセル列を2倍あるいは4倍に垂直にアップサン
プルする。このステップでは、1ピクセル列がオペラン
ドA,他の列がオペランドBとなる。
【0321】垂直補間の場合には2倍、4倍どちらの場
合でも、出力データストリームは入力ストリームと同数
のピクセルとなる。図104に、2つの入力データスト
リーム770、771を用いて2倍補間の出力ストリー
ム772と4倍補間の出力ストリーム773を生成する
垂直補間の例が示されている。ピクセル補間の場合に
は、補間処理は4つのチャネルピクセルの4チャネルご
とに別々に行われる。
【0322】残部融合処理は、2つのデータストリーム
のバイトごとの加算を含む。第一ストリーム(オペラン
ドA)はベース値ストリームであり、第二ストリーム
(オペランドB)は残値ストリームである。図105
に、残部融合処理を用いた場合の2つの入力ストリーム
780、781と対応する出力ストリーム782を示
す。
【0323】図106は、階層的画像フォーマット命令
の命令ワード符号を示したものであり、以下の表にマイ
ナーオプコードフィールドの詳細を示す。 命令ワード−マイナーオプコードフィールド
【0324】
【表25】
【0325】3.17.13 命令コピー命令 これらの命令は2つのそれぞれ別のグループに分けられ
る。 a.汎用データ移動命令 これらの命令は、入力インタフェースモジュール、入力
インタフェーススイッチ252、ピクセルオーガナイザ
246、JPEG符号化部241、結果オーガナイザ2
49、出力インタフェースモジュールからなるコプロセ
ッサ224内の通常のデータフローパスを用いる。この
場合、JPEG符号化モジュールはデータを処理を行わ
ずに直接送る。
【0326】データ操作動作の他の命令としては以下の
ものが挙げられる。 ・サブバイト値(ビット、2ビット値、4ビット値)の
バイトへのパッキング、アンパッキング ・ワード内でのバイトのパッキングとアンパッキング ・整列 ・バイトレーンスワッピングと複製 ・メモリクリア ・値の複製 データ操作動作は、ピクセルオーガナイザ(入力)と結
果オーガナイザ(出力)の組み合わせで実行される。多
くの場合、これらの命令は他の命令と組み合わせて用い
られる。 b.ローカルDMA命令 データ操作は行われない。図2に示すように、ローカル
メモリ236と周辺インタフェース237間でデータ転
送(双方向)が行われる。これらの命令は実行が他の命
令とオーバラップする唯一の命令である。最大これらの
命令の1つが「オーバラップしていない」命令と同時に
実行することができる。
【0327】メモリコピー動作では、オペランドAはコ
ピーするデータを示し、結果オペランドはメモリコピー
命令の目的アドレスを示す。汎用のメモリコピー命令で
は、オペランドBによって入力へのデータ操作動作が規
定され、オペランドCによって出力オペランドワードへ
の動作が規定される。 3.17.14 フロー制御命令 フロー制御命令は、図9に示したような命令実行モデル
のさまざまな部位を制御するための命令群である。フロ
ー制御命令としては、命令ストリームを実行しちえると
きに1つの仮想アドレスから他のアドレスへの移動を可
能にする条件付きジャンプあるいは条件なしジャンプを
含む。条件付きジャンプ命令は、コプロセッサやレジス
タでもって関連するフィールドをマスクし、所定の値と
比較することにより決定される。これにより命令の一般
性を保つことができる。更に、フロー制御命令は、オー
バラップ命令と非オーバラップ命令との間の同期をとる
ために、あるいはマイクロプログラミングの一部として
用いられる待機命令をも含む。
【0328】図107に、フロー制御命令の符号を示
す。また、以下の表はマイナーオプコードの説明であ
る。 命令ワード−マイナーオプコードフィールド
【0329】
【表26】
【0330】ジャンプ命令においては、オペランドAワ
ードはジャンプ命令の目的アドレスを指定する。マイナ
ーオプコードのSビットが0にセットされれば、オペラ
ンドBはコプロセッサレジスタを指定し、条件のソース
として用いる。オペランドB記述子の値はレジスタのア
ドレスを指定し、オペランドBワードの値がレジスタ内
容を比較する値となる。オペランドCワードは結果に適
用されるビットごとのマスクを指定する。すなわち、ジ
ャンプ命令条件は以下のビットごとの式が満たされてい
れば真となる。
【0331】(((register_value x
or Operand B)andOperand
C)=0x00000000) 更に、マイクロプログラミングレベルで十分に制御する
ためのレジスタアクセスのためにも当該命令が用いられ
る。 3.18 アクセラレータカードのモジュール 図2において、種々のモジュールを更に説明する。
【0332】3.18.1 ピクセルオーガナイザ ピクセルオーガナイザ246は入力インタフェーススイ
ッチ252からのデータストリームのアドレスを指定し
てバッファに格納する。入力データはピクセルオーガナ
イザの内部メモリに格納されるか、あるいはMUVバッ
ファ250に格納される。入力ストリームに対する必要
なのデータ処理を全部済ませた後、必要に応じて入力ス
トリームを主データパス242あるいはJPEG符号化
器241に渡す。ピクセルオーガナイザの動作モードは
通常のCBusインタフェースによって構成することが
できる。ピクセルオーガナイザ246はPO_CFG制
御レジスタの指定するような五つのモードのうちの一つ
のモードで動作する。これらのモードは次のとおりであ
る。 (a)アイドルモード:ピクセルオーガナイザ246が
動作しないモード。 (b)シーケンシャルモード:入力データは内部FIF
Oに格納されるようになり、ピクセルオーガナイザ24
6はデータの32ビットアドレスを生成して入力インタ
フェーススイッチ252にデータを要求するモード。 (c)色空間変換モード:ピクセルオーガナイザが色空
間変換のためにピクセルをバッファするモード。更に、
MUVバッファ250に格納されているインターバルお
よび分数値を要求する。 (d)JPEG圧縮モード:ピクセルオーガナイザ24
6が画像データをMCUの形式でMUVバッファに格納
するモード。 (e)畳込み演算および画像変換モード:ピクセルオー
ガナイザ246が行列係数をMUVバッファ250に格
納し、必要であれば主データパス242にもそれを伝え
るモード。
【0333】ピクセルオーガナイザ246は主データパ
ス242とJPEG符号化器241の両方ともの動作の
ためにMUVバッファ250を使う。色空間変換におい
て、インターバルおよび分数テーブルはMUV RAM
250によって格納され、36ビットのデータ(4つの
カラーチャネル)×(4ビットのインターバル値と8ビ
ットの分数値)としてアクセスされる。画像変換および
畳込み演算のために、MUV RAM250は行列係数
および関連する構成データを格納する。係数行列は16
行×16列に制限され、各係数の幅は最大20ビットで
ある。MUVRAM250は1クロックサイクルあたり
1つの係数を必要とする。係数データに加えて、バイナ
リポイント、ソーススタート座標、サブサンプルデルタ
等の制御情報も主データパス242に伝えなければなら
ない。この制御情報は、行列係数より先にピクセルオー
ガナイザ246によってフェッチされる。
【0334】JPEG圧縮において、ピクセルオーガナ
イザ246は、MUVバッファ250を使ってMCUを
ダブルバッファする。JPEG圧縮の性能向上のために
は、ダブルバッファ技術を使うことが望ましい。MUV
RAM250の1半分は入力インタフェーススイッチ
252からのデータを使って書き込まれる。一方、もう
一方の半分は、JPEG符号化器241に送るべきデー
タを得るためにピクセルオーガナイザによって読み出さ
れる。 ピクセルオーガナイザ246は、必要とされる
所におけるカラー成分の水平サブサンプリングを行うと
ともに、入力画像のサイズがMCUの整数倍でない場合
にはMCUをパディングする。
【0335】ピクセルオーガナイザ246は、図32に
おいて前述した、バイトレーンスワップと、正規化と、
バイト入り代えと、バイトパックおよびアンパックと、
複写動作とを含む入力データのフォーマットをも行う。
動作はピクセルオーガナイザレジスタを設定することに
より必要に応じて行われる。図108において、ピクセ
ルオーガナイザ246をより詳細に説明する。 ピクセ
ルオーガナイザ246は、CBusインタフェース制御
部801に含まれている自身のレジスタセットの制御に
従い作動しており、CBusインタフェース制御部80
1はグローバルCBusを経由して命令制御部235に
接続されている。ピクセルオーガナイザ246にはオペ
ランドフェッチ部802が含まれており、ピクセルオー
ガナイザ246が必要とするオペランドデータを入力イ
ンタフェーススイッチ252から要求する。、オペラン
ドデータのスタートアドレスは、実行直前にセットされ
るPO_SAIDレジスタによって指定される。PO_
SAIDレジスタは、PO_DMRレジスタのLビット
による指定に応じて、即座のデータを保持することもあ
る。現在アドレスポインタはPO_CDPレジスタに格
納され、入力インタフェーススイッチの要求があればそ
のバースト長さだけ増加される。データがMUV RA
M250にフェッチされるとき、データの現在オフセッ
トはPL_MUVレジスタによって指定されるMUV
RAM250のベースアドレスと連結される。
【0336】オペランドフェッチ部802によってフェ
ッチされたシーケンシャル入力データをバッファするた
めに、FIFO803が用いられる。データ操作部80
4は、図32において説明したような様々な操作を実行
する。データ操作部の出力はMUVアドレス生成部80
5に伝えられる。MUVアドレス生成部805は構成レ
ジスタに従ってデータをMUV RAM250、主デー
タパス242、JPEG符号化器241のどちらかに伝
える。ピクセルオーガナイザ制御部806は、ピクセル
オーガナイザ246のサブモジュール全てのために必要
な制御信号を生成する状態機械である。必要な信号の中
では、種々のBusインタフェース上での通信を制御す
る信号も含まれる。ピクセルオーガナイザ制御部は、状
態レジスタの設定に従い他モジュール239が必要とす
る診断情報を出力する。
【0337】図109において、図108のオペランド
フェッチ部802をより詳細に示す。オペランドフェッ
チ部802には、命令バスアドレス生成部(IAG)8
10が含まれており、オペランドデータをフェッチせよ
という要求を生成する状態機械を含む。この要求は要求
仲裁部811に送られが、要求仲裁部811はアドレス
生成部810の要求とMUVアドレス生成部805の要
求(図108)との間を仲裁しており、勝ちの要求を入
力(MAG)インタフェーススイッチ252に送るよう
にしている。要求仲裁部811は要求を扱うための状態
機械を含んでいる。これは、FIFOカウント部814
を用いてFIFOの状態をモニタし、次の要求をいつデ
スパッチすべきかを決定する。バイトイネーブル生成部
812はIAG810の情報を受け取り、入力インタフ
ェーススイッチ252がリターンする各オペランドにお
ける有効なバイトを指定するバイトイネーブルパタン8
16を生成する。バイトイネーブルパタンは関連するオ
ペランドデータとともにFIFOに格納される。MAG
要求とIAG要求が同時に到着したとき、要求仲裁部8
11はMAG要求をIAG要求より優先して処理する。
【0338】図108において、MUVアドレス生成部
805は異なるいくつかのモードで動作する。これらの
モードにおいて、第1はJPEG(圧縮)モードであ
る。このモードでは、JPEG圧縮のための入力データ
がデータ操作部804によって供給され、MUVバッフ
ァ250はダブルバッファとして使われる。MUV R
AM250アドレス生成部805は、データ操作部80
4によって処理された入力データを格納するに適するM
UVバッファのアドレスを生成する。MAG805は、
格納されたピクセルからカラー成分データを取り出すた
めの読み出しアドレスを生成するとともに、JPEG圧
縮用の8×8ブロークを形成するように動作する。MA
G805は、MCUが画像と一部重なっている場合も扱
う。図110は、MAG805が行うパディング動作の
一例を示す。
【0339】普通のピクセルデータにおいて、MAG8
05は、4つの8ビットRAMのMUV RAM250
における同じアドレス内に、4つのカラー成分を格納す
る。同じカラーチャネルからデータを同時に取り出すた
めに、MCUデータは左にバレルシフトされてからMU
V RAM250に格納される。データの左にシフトさ
れるバイト数は、書き込みアドレスの下位2ビットによ
って決定される。例えば、図111は、サブサンプリン
グの要らない場合32ビットピクセルデータがMUV
RAM250内で配置されるデータ構造を示す。3チャ
ネル又は4チャネルインタリーブJPEGモードにおい
ては、入力データのサブサンプリングが選択されること
もあり得る。サブサンプリングを伴うマルチチャネルJ
PEG圧縮モードにおいて、MAG805(図108)
は、JPEG符号化器の最適性能のために32ビットデ
ータがMUV RAM250に格納される前にサブサン
プリングを行うようになっている。最初四つの入力ピク
セルの中で、MUV RAM250に格納される第1お
よび第4番目のチャネルだけが有用なデータを含んでい
る。第2および第3番目のチャネルのデータはサブサン
プリングされ、ピクセルオーガナイザ246のレジスタ
に格納される。次の4つの入力ピクセルにおいて、第2
および第3番目のチャネルはサブサンプリングされたデ
ータをもって埋められる。図112は、マルチチャネル
サブサンプリングモードにおけるMCUデータ構成の一
例を示す。MAGは単一チャネルアンパックデータ全て
をマルチチャネルピクセルデータと全く同様に扱う。M
UV RAMから読み出された単一チャネルパックデー
タの一例が図113に示されている。
【0340】書き込みプロセスによって入力MCUがM
UV RAMに格納されている間、読み出しプロセスは
MUV RAMから8×8ブロックを読み出す。一般的
に、前記ブロックは各チャネルに対してデータを順次読
み出すことによって、四つの係数ずつMAG805によ
って生成される。ピクセルデータとアンパック入力デー
タにおいて、格納されるデータは図111に示すように
整理される。従って、サンプルされなかったピクセルデ
ータからなる8×8ブロックを合成するためには、読み
出しプロセスはMUV RAMからデータを斜行しなが
ら読み出す。図114は、このようなプロセスの一例を
示す。図114には、四つのチャネルデータにおける読
み出しシケンス示されており、MUV RAM250の
格納形式が同一チャネルから多数の値を同時に読み出す
ことを容易にしていることが分かる。
【0341】色変換モードにおいて、MUV RAM2
50はインターバルおよび分数値を格納するキャッシュ
として用いられ、MAG805はそのキャッシュの制御
部として働くようになっている。MUV RAM250
は3つのカラーチャネル値をキャッシュする。ここで、
各カラーチャネルは256対の4ビットインターバルお
よび分数値を有する。DMUを通じた各ピクセル出力に
おいて、MUV RAM250から前記値を得るために
MAG805が使われる。この値が得られないときに、
MAG805は欠けているインターバルおよび分数値を
フェッチせよというメモリ読み出し要求を出す。帯域の
有効利用のために、要求あたりエントリ一つだけをフェ
ッチする手法のかわりに、多数のエントリをフェッチす
るような手法を取る。
【0342】画像変換および畳込み演算のために、MU
V RAM250はMDPの行列係数を記憶している。
MAGはMUV RAM250に格納されている全ての
行列係数をスキャンする。画像変換および畳込み命令の
始めにおたって、MAG805はオペランドフェッチ部
に要求を出し、オペランドフェッチ部がカーネル記述
“ヘッダ”(図94)とバスト要求の第1行列係数とを
フェッチするようにする。
【0343】図115において、図108のMUVアド
レス生成部(MAG)805をより詳細に示す。MAG
805はIBus要求を多重化するIBus要求モジュ
ール820を備えており、IBus要求は画像変換制御
部(ITX)821と色空間変換(CSC)制御部82
2によって生成される。この要求は、要求を実行するよ
うになっているオペランドフェッチ部に送られる。ピク
セルオーガナイザ246は画像変換、色空間変換のどち
らか1つのモードで動作するようになっているため、制
御部821,822の間では仲裁が要らないことにな
る。IBus要求モジュール820は、オペランドフェ
ッチ部への要求を生成するのに必要なバストアドレスと
バスト長さとを含む情報を、関連するピクセルオーガナ
イザから導出する。
【0344】JPEG制御部824は、JPEG書き込
み制御部とJPEG読み出し制御部という2つの状態機
械を備えており、JPEGモードにおいて使われる。前
記二つの制御部は同時に作動するようになっており、内
部レジスタを用いることによってお互いに同期を取る。
JPEG圧縮動作において、DMUはMCUデータを出
力しMUV RAMに格納する。JPEG書き込み制御
部は水平パディングとピクセルサブサンプリングの制御
とを担当しており、JPEG読み出し制御部は垂直パデ
ィングを担当する。水平パディングはDMU出力を停止
することによって行われ、垂直パディングは既に読み出
した8×8ブロックを再び読み出すことによって行われ
る。
【0345】JPEG書き込み制御部は、ソース画像に
おけるDCUおよびDMU出力ピクセルの現在位置をト
ラッキングしており、水平パディングのためにいつDM
Uを停止すべきかを決定するのにその情報を用いる。M
CUがMUV RAM250に書き込まれたときに、J
PEG書き込み制御部は内部レジスタをセットするかま
たはリセットすることによって、MCUが画像の右エッ
ジにあるかあるいは画像の最低エッジにあるかを表す。
JPEG読み出し制御部は、前記レジスタの内容に基づ
き、垂直パディングが必要であるかや画像の最後のMC
Uまで読んだのかを判断する。
【0346】JPEG書き込み制御部はDMU出力デー
タをトラッキングし、DMU出力データをMUV RA
M250に格納する。前記制御部は、レジスタセットを
用いて入力ピクセルの現在位置を記憶する。この情報は
DMU出力を停止して水平パディングを行うときに使わ
れる。全てのMCUがMUV RAM250に書き込ま
れたときに、前記制御部はMCU情報をJPEG−RW
−IPCレジスタに書き込み、以後JPEG読み出し制
御部によって利用し得るようにする。
【0347】この制御部は、最後のMCUがMUV R
AM250に書き込まれた後、SLEEP状態に入り現
在の命令が終了するまでその状態に残る。JPEG読み
出し制御部は、MUV RAM250に格納されている
MCUから8×8ブロックを読み出す。マルチチャネル
ピクセルにおいては、制御部がMCUを数回に渡って読
み出すようになっており、MUV RAMに格納されて
いる各ピクセルから、各読み出しにおける異なるバイト
を抽出する。
【0348】この制御部はJPEG−RW−IPCによ
って提供される情報を用いて、垂直パディングを行うべ
きかを検出する。垂直パディングはMUV RAM25
0から読み出した直前の8バイトを再び読み出すことに
よって行われる。画像変換制御部821はIBusから
カーネルディスクリプタを読み出し、カーネルヘッダを
MDP242に伝える。そして、po.lenレジスタ
で指定された回数だけ行列係数をスキャンする。画像変
換および畳込み命令において、PO246による全ての
データ出力はIBusから直接フェッチされるようにな
っており、DMUには伝えられない。
【0349】カーネルヘッダの直後フェッチされる第1
行列係数の最初8ビットは、フェッチすべき残りの行列
係数の数を表す。カーネルヘッダは修正されずに直接M
DPに伝えられるが、行列係数はMDPに伝えられる前
にサイン拡張される。ピクセルサブサンプラ825は、
それぞれが入力ワードの1バイトに対して動作する二つ
の同じチャネルサブサンプラを備える。関連する構成レ
ジスタが起動されていないときに、ピクセルサブサンプ
ラは自身の入力をそのまま自身の出力にコピーする。一
方、構成レジスタが起動されているときに、サブサンプ
ラは入力データに対して平均を取るか又は間引きを行う
かすることによって入力データをサブサンプルする。
【0350】MUV多重化モジュール826は現在アク
ティブである制御部からMUV読み出しおよび書き込み
信号を選ぶ。内部多重化部は、MUV RAM250を
使う種々の制御部を経由して、読み出しアドレス出力を
選ぶ。MUV RAM書き込みアドレスはMUV多重化
モジュールの8ビットレジスタに格納されている。MU
V RAM250を用いる制御部は次のMUV RAM
アドレスを決定するための制御を行うとともに、書き込
みアドレスレジスタをロードする。
【0351】MUV有効アクセスモジュール827は色
空間変換制御部によって用いられ、データ操作部による
現在ピクセル出力のインターバルおよび分数値がMUV
RAM250において利用できるかを決定する。一つ
以上のカラーチャネルが欠けているとき、MUV有効ア
クセスモジュール827は関連するアドレスをIBus
要求モジュール820に伝え、インターバルおよび分数
値をバーストモードでロードする。キャッシュミスがサ
ービスされると、MUV有効アクセスモジュール827
は今までフェッチされたインターバルおよび分数値のセ
ットを表す内部有効ビットをセットする。
【0352】複写モジュール829は、内部ピクセルレ
ジスタが定める回数だけ、入力データを複写する。複写
モジュールが現在の入力ワードを複写している間、入力
ストリームは停止されるようになる。PBusインタフ
ェースモジュール830は、ピクセルオーガナイザ24
6を主データパス242およびJPEG符号化器241
にリタイムするか或いはその逆の処理をするのに使われ
る。最後に、MAG制御部831は種々のサブモジュー
ルをイニシエイトする信号とシャットダウンする信号と
を生成する。なお、MAG制御部831は、主データパ
ス242およびJPEG符号化器241からの入力PB
us信号に対する多重化をも行う。
【0353】3.18.2 MUVバッファ 図2においては、これまでの説明から明らかなようにピ
クセルオーガナイザ246はMUVバッファ250と相
互関係にある。再コンフィギュレーション可能なMUV
バッファ250は単純ルックアップテーブルモード(モ
ード0)、多重ルックアップテーブルモード(モード
1)、JPEGモード(モード2)を含む様々な処理モ
ードをサポートしている。それぞれのモードで、バッフ
ァには異なるタイプのデータオブジェクトが格納され
る。例えば、バッファに格納されているデータワード、
様々な検索テーブルの値、単一チャネルデータ、複数チ
ャネルデータはデータオブジェクトである。一般的に、
データオブジェクトは異なるサイズを持つ。更に再コン
フィギュレーション可能なMUVバッファ250に格納
されたデータオブジェクトはバッファのオペレーティン
グモードに依存した様々な方法で実際にアクセスでき
る。
【0354】異なるタイプのデータを書き戻したり及び
格納するのに必要な様々な方法を適切にするために、デ
ータオブジェクトはしばしば、格納される前に符号化さ
れる。データオブジェクトのコーディングに用いられる
方法はデータオブジェクトのサイズ、表現されているデ
ータオブジェクトのフォーマット、どのようにデータオ
ブジェクトがバッファから書き戻されるのか、バッファ
上に形成されたメモリモジュールの構成状態によって決
定される。
【0355】図116は再コンフィギュレーション可能
なMUVバッファ250を実装するために用いられるコ
ンポーネントのブロックダイアグラムである。再コンフ
ィギュレーション可能なMUVバッファ250はエンコ
ーダ1290、ストレージデバイス1293、デコーダ
1291、アドレス読み込み・ローテーション信号発生
器1292からなる。入力データストリーム1295に
データオブジェクトが入力された時には、データオブジ
ェクトはエンコーダ1290により内部データに符号化
され、内部データストリーム1296に配置される。符
号化されたデータオブジェクトはストレージデバイス1
293に格納される。
【0356】格納されたデータオブジェクトを復号化す
る場合には、符号化されたデータは符号化データ出力ス
トリーム1297によりストレージデバイスから取り出
される。符号化データ出力ストリーム1297上の符号
化されたデータはデコーダ1291によって復号化され
る。復号化されたデータオブジェクトは出力データスト
リーム1298上に現れる。
【0357】ストレージデバイス1293への書き込み
アドレス1035はMAG805(図108)により与
えられる。書き込みアドレス1299,1300,13
01も同様にMAG805(図108)によって与えら
れ、アドレス読み込み・ローテーション信号発生器12
92によってストレージデバイス1293に分配され
る。アドレス読み込み・ローテーション信号発生器12
92はまた、入力・出力ローテーション信号1303,
1304をエンコーダ、デコーダそれぞれに対して生成
する。書き込み有効信号1306と1307は外部ソー
スから与えられる。コントローラ801(図108)に
よって与えられる処理モード信号1302はエンコーダ
1290、デコーダ1291、アドレス読み込み・ロー
テーション信号発生器1292、ストレージデバイス1
293に接続される。インクリメント信号1308はア
ドレス読み込み・ローテーション信号発生器内の内部カ
ウンタをインクリメントし、JPEGモード(モード
2)でも用いられることがある。
【0358】再コンフィギュレーション可能なMUVバ
ッファ250が単純ルックアップテーブルモード(モー
ド0)である場合には、本質的にバッファ250はむし
ろ、単一モードのメモリモジュールの様に動作する。デ
ータオブジェクトは本質的にメモリモジュールにアクセ
スする方法と同様な方法でバッファに格納あるいはバッ
ファから取り出せる。
【0359】再コンフィギュレーション可能なMUVバ
ッファ250が多重ルックアップテーブルモード(モー
ド1)で動作中の時、バッファ250はストレージデバ
イス1293に格納されている最大3つの検索テーブル
をもちいて複数のテーブルに分割される。検索テーブル
は同時かつ独立にアクセスすることができる。一例を挙
げると、インターバルおよびフラクションの値は多重ル
ックアップテーブルモードのストレージデバイス129
3に格納される、テーブルは入力データストリーム12
95の下位3バイトを利用してインデックスがつけられ
る。3バイトのそれぞれはストレージデバイス1293
に格納された独立の検索テーブルに発行される。
【0360】画像がJPEG圧縮されているとき、画像
は符号化されたデータストリームに変換される。ピクセ
ルは原画像からMCUのフォーマットで取り出される。
MCUは画像の左から右に、上から下に読み出される。
それぞれのMCUは多数の8×8のブロックに再合成さ
れる。多数の8×8ブロックはMCUから抽出される。
MCUは原画像のカラーコンポーネント、複数チャネル
のJPEGモード、サブサンプリングの必要性等のいく
つかの要因に依存している。8×8のブロックはその後
フォワードDCT(FDCT)、量子化、エントロピー
符号化される。JPEG圧縮の場合には、符号化された
データはデータストリームからシーケンシャルに読み込
まれる。データストリームはエントロピー復号化、逆量
子化、逆DCT(IDCT)が行われる。IDCT処理
の出力は8×8のブロックである。多数の8×8ブロッ
クはMCUを再構成するように統合される。JPEG圧
縮を用いるとき、多数の8×8ブロックは前述の要因に
依存する。再コンフィギュレーション可能なMUVバッ
ファ250はMCUを多数の8×8ブロックに分解した
り、多数の8×8ブロックをMCUに再構成したりする
ときにも用いられる。
【0361】再コンフィギュレーション可能なMUVバ
ッファ250がJPEGモードの処理を行っているとき
はバッファ250への入力データストリーム1295は
JPEG圧縮処理を行っているピクセルあるいはJPE
G圧縮処理を行っている単一のコンポーネントを含んで
いる。バッファ250の出力データストリームはJPE
G伸長処理の単一チャネルデータブロックあるいはJP
EG伸長処理のピクセルデータを含んでいる。このJP
EG圧縮の例では、入力ピクセルはY,U,V,Oの4
チャネルまで構成できる。指定の数のピクセルが完成し
たピクセルブロックとして処理処理されたときには、単
一のコンポーネントデータブロックの抽出が開始でき
る。それぞれの単一のコンポーネントデータブロックは
バッファに格納された同チャネルのピクセルからなるデ
ータにより構成される。従ってこの例では、4つまでの
単一のコンポーネントデータブロックをひとつのピクセ
ルデータブロックから抽出できる。この具体例では、再
コンフィギュレーション可能なMUVバッファ250が
JPEG圧縮用のJPEGモード(モード2)で処理を
行っているときには、多数の単位最小コード(MCU)
はそれぞれ64の単一あるいは複数チャネルのピクセル
をバッファに格納でき、多数の64バイト長の単一チャ
ネルのコンポーネントデータブロックをバッファに格納
されたそれぞれのMCUから抽出できる。例えば、バッ
ファ1289がJPEG伸長を行うためにJPEGモー
ド(モード2)である間は、出力データストリームは、
Y,U,V,Oの最大4つのコンポーネントを持つ出力
ピクセルから構成される。要求された数の完成した単一
のコンポーネントデータブロックをバッファに書き込ん
だときは、ピクセルデータの抽出ができる。異なる色の
コンポーネントに対応する4つの単一のコンポーネント
データブロックからのバイトは出力ピクセルとして取り
出される。
【0362】図117は図116のエンコーダ1290
の詳細図である。ピクセルブロックの伸長のでは、入力
データオブジェクトそれぞれはストレージデバイス12
93に格納される前にバイト方向のローテーションによ
り符号化される(図129)。ローテーションの大きさ
は入力ローテーション制御信号1303により決定され
る。この例ではピクセルデータが最大の4バイトであっ
たときは、32ビットの4入力1出力のマルチプレクサ
1320および1325が、4つのうちの1つの可能な
入力ピクセルのローテーションの選択に用いられる。例
えば、もしピクセルの4つのバイトが(3,2,1,
0)のようにラベルが付けられていたとすると、このピ
クセルのローテーションは(3,2,1,0)(0,
3,2,1)(1,0,3,2)(2,1,0,3)と
なる。4つの符号化されたバイトはストレージデバイス
の1290に出力される。
【0363】バッファがJPEGモード(モード2)以
外のモード、例えば、単一ルックアップテーブルモード
(モード0)、多重ルックアップテーブルモードである
時には、バイト方向のローテーションは必要ではなく、
また入力データオブジェクトに対して行えない。入力デ
ータオブジェクトは後者の場合に、ノーローテーション
の値をもつ入力ローテーション制御信号を無視すること
によって、ローテーションにより妨害を受ける。この値
1323はである。2入力1出力のマルチプレクサ13
21は制御信号1326を入力ローテーション制御信号
1303とノーオペレーション値1323の選択をする
ことによって生成する。現在の処理モード1302はマ
ルチプレクサ選択信号を生成するために、ピクセルブロ
ック分解モードの値と比較される。。信号1326によ
って制御される4入力1出力のマルチプレクサ1320
は入力データオブジェクトの4つのローテーションのう
ち1つを選択し、符号化された入力データストリーム1
326上に符号化された有力データオブジェクトを生成
する。
【0364】図118は符号化された出力データストリ
ーム1297を復号化するデコーダ1291を実装する
組み合わせ回路の回路図である。デコーダ1321はエ
ンコーダと本質的に同様な方法で動作する。デコーダは
データバッファがJPEGモード(モード2)である場
合のみにデータを操作する。下部の符号化されたデータ
ストリーム1297内の符号化された出力データオブジ
ェクトの下位32ビットはデコーダに渡される。データ
はエンコーダ1290でローテーションするのとは逆の
感覚でバイト方向のローテーションを用いて復号化され
る。32ビットの4入力1出力のマルチプレクサは、可
能な4つの種類の符号化データのうちの1つを選択する
ために用いられる。例えば4バイトの入力ピクセルが
(3,2,1,0)の様にラベルが付けられているとす
ると、このピクセルのローテーションの種類は(3,
2,1,0)(2,1,0,3)(1,0,3,2)
(0,3,2,1)の4つが可能である。出力ローテー
ション制御信号1304はバッファがピクセルブロック
分解ノードの時と、他のオペレーションモードでノーオ
ペレーション値が無視されたときに使用される。ノーオ
ペレーション値1333は0である。2入力1出力のマ
ルチプレクサ1331は、出力ローテーション制御信号
1304とノーオペレーション値1333の選択を行う
ことで信号1334を生成する。現在の処理モード13
02はマルチプレクサ選択信号1332を生成するため
に、ピクセルブロック分解モードの値と比較される。信
号1334よって制御される4入力1出力のマルチプ
レクサ1330は符号化された出力データストリーム1
297上の符号化された出力データオブジェクトの4種
類のローテーションを選択し、出力データストリーム1
298上に出力データを生成する。
【0365】図116において、回路で用いられる内部
読み込みアドレス生成の方法は、再コンフィギュレーシ
ョン可能なMUVバッファ250の処理モード1302
によって選択される。単一ルックアップテーブルモード
(モード0)と多重ルックアップテーブルモード(モー
ド1)では読み込みアドレスは外部読み込みアドレス1
299,1300,1301の形でMAG805(図1
08)によって生成される。単純ルックアップテーブル
モード(モード0)ではストレージデバイス1293上
にメモリモジュール1380,1381,1382,1
383,1384,1385(図121)は一緒に処理
する。メモリモジュール1380から1385(図12
1)に与えられる書き込みアドレスと読み込みアドレス
は本質的に同じである。即ち、ストレージデバイス12
93は外部回路に1つの読み込みアドレスと1つの書き
込みアドレスの供給のみを必要とし、これらのアドレス
をメモリモジュール1380から空1385(図12
1)に分配するために内部ロジックを使用する。モード
0では、読み込みアドレスは外部アドレス1299(図
116)により与えられ、本質的に変化しないまま内部
アドレス1348(図121)に分配される。外部読み
込みアドレス1349,1350,1351(図12
1)はモード0では使用されない。書き込みアドレスは
外部書き込みアドレス1305(図116)により与え
られ、本質的に修正なしで各メモリモジュール1380
から1385(図121)の書き込みアドレスに接続さ
れる。
【0366】ここでは、多重ルックアップテーブルモー
ド(モード1)における3ルックアップテーブルの構成
を示す。3つのテーブルが独立にアクセスされるとき、
符号化された入力データは1380から1385(図1
21)までのすべてのメモりもジュールに同時に書き込
まれ、従って3つのテーブルそれぞれに1つのインデッ
クスが必要となる。メモリモジュール1380から13
85(図212)への3つのインデックス、即ち読み込
みアドレスはストレージデバイス1293により与えら
れる。これらの読み込みアドレスは、内部ロジックを用
いて1380から1385の適切なメモリモジュールに
分配される。本質的に単一ルックアップテーブルモード
のときと同様な手法で、外部から与えられる書き込みア
ドレスは、本質的な変更なしに1308から1385の
それぞれのメモリモジュールのアドレスに接続される。
その結果、多重ルックアップテーブルモード(モード
1)では外部読み込みアドレス1299,1300,1
311は内部読み込みアドレス1348,1349,1
350にそれぞれ分配される。内部読み込みアドレス1
352はモード1では使用されない。JPEGモード
(モード2)で使用される内部アドレス生成方法は前述
の方法とは異なる。
【0367】図119はJPEG圧縮を行うJPEGモ
ード(モード2)における、再コンフィギュレーション
可能なデータバッファ用の、読み込みアドレスおよびロ
ーテーション信号生成回路1292を実装する組み合わ
せ回路の回路図である。JPEGモード(モード2)で
は、信号生成器1292はコンポーネントカウンタ13
40とデータバイトカウンタ1341の出力を、ストレ
ージデバイス1293を含むメモリーモジュールの内部
読み込みアドレスを計算するために用いている。コンポ
ーネントブロックカウンタ1340はストレージデバイ
スに格納されている、ピクセルデータブロックから抽出
したコンポーネントブロック数を生成する。そのブロッ
ク数はデータバイトカウンタ1341の出力を4倍する
ことで与えられる。具体的には、ピクセルブロック分解
モードにおける内部読み込みアドレス1348、134
9、1350、1351は次のように計算される。コン
ポーネントブロックカウンタはオフセット値1343、
1344、1345、1347を計算するために使用さ
れ、また出力データバイトカウンタ1341はベース読
み込みアドレス1354を生成するために用いられる。
オフセット値1343はベース読み込みアドレス135
4に加算された1358で、加算値は内部読み込みアド
レス1348(あるいは1349,1350,135
1)である。メモリモジュールのオフセット値は、多重
メモリモジュールで実行される同時読み込みに対して一
般的に異なる値をとるが、コンポーネントブロックの抽
出においては本質的に同じである。ピクセルデータブロ
ック分解モードにおける4つの内部読み込みアドレスを
計算するのに用いられるベースアドレス1354も同様
である。インクリメント信号1308はコンポーネント
バイトカウンタのインクリメント信号として使用され
る。カウンタは読み込みが成功する度にインクリメント
される。コンポーネントブロックカウンタインクリメン
ト信号1356は、単一校正用をデータブロックが正常
にバッファから取り出された後、コンポーネントブロッ
クカウンタ1340をインクリメントするのに用いられ
る。
【0368】出力ローテーション制御信号1304(図
116)はコンポーネントブロックカウンタの出力と出
力データバイトカウンタの出力から取り出され、本質的
に内部アドレスの生成と同じ方法である。コンポーネン
トブロックカウンタの出力はローテーションオフセット
1347を計算するのに用いられる。出力ローテーショ
ン制御信号1304はローテーションオフセット135
5とベース読み込みアドレス1354の和の最下位2ビ
ットにより与えられる。入力ローテーション制御信号
は、アドレス及びローテーション制御信号生成器の例の
様に、外部書き込みアドレス1305の最下位2ビット
により与えられる。
【0369】図120は、再コンフィギュレーション可
能なMUVバッファ250に格納された単一コンポーネ
ントデータからの多重チャネルピクセルデータの再構成
に用いられるもう1つのアドレス生成器1292であ
る。この場合、バッファはJPEG伸長のためのJPE
Gモード(モード2)となる。この場合、単一コンポー
ネントデータブロックはバッファに格納され、ピクセル
データブロックはバッファから取り出される。この例で
は、メモリモジュールへの書き込みアドレスは、本質的
変更なしで外部書き込みアドレス1305によって与え
られる。単一コンポーネントブロックは連続したメモリ
に格納される。この例の入力ローテーション制御信号1
303は単に書き込みアドレスの最下位2ビットによっ
てセットされる。ピクセルカウンタ1360は、バッフ
ァ内に格納されている単一コンポーネントブロックから
抽出されたピクセル数の記録を保持するために用いられ
る。ピクセルカウンタの出力は、読み込みアドレス13
48、1349、1350、1351及び出力ローテー
ション制御信号1304を生成するために用いられる。
一般に読み込みアドレスは、ストレージデバイス129
3を構成するそれぞれのモジュール毎に異なっている。
この例では、読み込みアドレスは単一コンポーネントブ
ロックインデックス1362、1363、1364、1
365あるいは1365とバイトインデックス1361
の2つの部分からなる。特定のブロックの単一コンポー
ネントブロックインデックスを計算するために、オフセ
ットが出力ピクセルカウンタのビット3と4に加えられ
る。一般にオフセット1366、1367、1368、
1369はそれぞれの読み込みアドレスで異なる。ピク
セルカウンタのビット2からビット0は読み込みアドレ
スのバイトインデックス1361に用いられる。読み込
みアドレスは図120に示されるように、単一コンポー
ネントブロックインデックス1362、1363、13
64、1365あるいは1365とバイトインデックス
1361の結合の結果である。この例では、出力ローテ
ーション制御信号1304は、本質的な変化なしにピク
セルカウンタの出力のビット4とビット3により生成さ
れる。インクリメント信号1308はピクセルカウンタ
1360をインクリメントするためのピクセルカウンタ
インクリメント信号として使用される。ピクセルカウン
タ1360はピクセルが正常にバッファから取り出され
たときにインクリメントされる。
【0370】図121はストレージデバイス1293の
構造である。ストレージデバイス1293は1383、
1384、1385の3つの4ビットワイドメモリモジ
ュールと1380,1381、1382の3つの8ビッ
トワイドメモリモジュールを持つことができる。メモリ
モジュールは単一ルックアップテーブルモード(モード
0)の36ビットのワード、多重ルックアップテーブル
モード(モード1)の12×3ビットのワード、JPE
Gモード(モード2)における32ビットのピクセルあ
るいは4×8ビットの単一コンポーネントデータを格納
するために結合できる。通常それぞれのメモリモジュー
ルは符号化された入力及び出力データストリーム(12
96と1297)の異なる部分に関連づけられる。たと
えば、メモリモジュール1380は符号化された入力デ
ータストリーム1296のビット0からビット7に接続
されデータ入力ポートと符号化された出力データストリ
ーム1297のビット0からビット7に接続されたデー
タ出力ポートをもつ。この例ですべてのメモリモジュー
ルの書き込みアドレスは一緒に接続され、同時に同じ値
を共有する。一方、図121に示されるメモリモジュー
ルの読み込みアドレス1386,1387,1388,
1390,1391は読み込みアドレス生成器1292
により与えられ、これらは一般に異なる値をとる。例で
は、共通の書き込み有効信号はすべての8ビットメモリ
モジュールに対して書き込み有効信号を出すために用い
られ、第二の共通の書き込み有効信号はすべての4ビッ
トメモリモジュールに対して書き込み有効信号を出すた
めに用いられる。
【0371】図122はストレージデバイス1293内
のメモリモジュールにアクセスするための読み込みアド
レス1386,1387,1388,1389,139
0を生成するための組み合わせ回路の回路図である。符
号化されたそれぞれの入力データオブジェクトは部分部
分に分解され、それぞれの部分はストレージデバイスの
独立したメモリモジュール内に格納される。従って通
常、すべての処理モードにおけるすべてのメモリモジュ
ールの書き込みアドレスは本質的には同じであり、メモ
リモジュールの書き込みアドレスを計算するために実質
的にロジックは必要ない。一方、読み込みアドレスは通
常、処理毎に異なり、それぞれの処理モードにおけるメ
モリモジュールそれぞれに対しても異なる。再コンフィ
ギュレーション可能なMUVバッファ250の出力デー
タストリーム1298内のすべてのバイトはJPEG圧
縮のJPEGモード(モード2)のバッファに格納され
ているピクセルデータから抽出された単位コンポーネン
トデータ、あるいはJPEG伸長のJPEGモードのバ
ッファ内に格納されて単一コンポーネントデータから抽
出されたピクセルデータを含まなくてはならない。出力
データに対する要求はバッファへの4つの読み込みアド
レス1348、1349、1350、1351の生成に
よって満たされる。多重ルックアップテーブルモード
(モード1)においては、最大3つの検索テーブルがバ
ッファに格納され、従って最大3つまでの読み込みアド
レス1348、1349、1350が3つの検索テーブ
ルにインデックスをつけるために必要である。すべての
メモリモジュールの読み込みアドレスは単一ルックアッ
プテーブルモード(モード0)の場合と同じであり、読
み込みアドレス248のみがこのモードで用いられる。
図122に示されている制御回路の例はストレージデバ
イス1293を構成する6つのメモリモジュールそれぞ
れの読み込みアドレス1386−1391を計算するた
めに、バッファの処理モード信号と最大4つの読み込み
アドレスを用いる。読み込みアドレス生成器1292は
入力信号として外部アドレスバス1348,1349、
1350、1351からなる外部読み込み信号をもち
い、ストレージデバイス1293を構成するメモリモジ
ュールの内部読み込みアドレス1386,1387、1
389、1390を生成する。
【0372】図123はバッファ250が単一ルックア
ップテーブルモードにある時に、どのようにして20ビ
ットの行列係数がバッファ250に格納されるのかを示
した図である。この場合、データオブジェクトが再コン
フィギュレーション可能なMUVバッファに書き込まれ
るときにはキャッシュ上のデータオブジェクトに対して
エンコーディングは通常行われない。行列係数は8ビッ
トメモリモジュール1380,1381,1382に格
納される。行列係数のビット7からビット0はメモリモ
ジュール1380に格納され、ビット15からビット8
はメモリモジュール1381に格納され、ビット19か
らビット16はメモリモジュール1382の下位4ビッ
トに格納される。命令の残りのために必要であるような
バッファに格納されたデータオブジェクトは何回も取り
出される。単一ルックアップテーブルモードにおける、
すべてのメモリモジュールの読み込みと書き込みのアド
レスは本質的に同じである。
【0373】図124は多重ルックアップテーブルモー
ド(モード1)において、どのようにしてバッファにテ
ーブルエントリが格納されるかを示した図である。この
場合、3つの検索テーブルはバッファに格納され、それ
ぞれの検索テーブルは4ビットのインターバル値と8ビ
ットの小数値をもつ。通常インターバール値は4ビット
のメモリモジュールに格納され、小数値は8ビットのメ
モリモジュールに格納される。この場合3つの検索テー
ブル1410,1411,1412はメモリバンク13
80と1383、1381と1384、1382と13
85に格納される。分離過去も未有効制御信号1306
と1307(図121)はストレージデバイスに格納さ
れている小数値に影響せずにストレージデバイス129
3にインターバル値を書き込むことができる。本質的に
同様な方法でインターバル値に影響を与えずに小数値を
書き込むことができる。
【0374】図125はピクセルデータブロックを単一
要素データブロックに分解するJPEGモード(モード
2)の状態の再コンフィギュレーション可能なMUVバ
ッファ250にどのようにしてピクセルデータが書き込
まれるのかを示した図である。ストレージデバイス12
93は、8ビットメモリモジュールと同様な方法で統合
して扱われるメモリモジュール、1381と1384を
含むメモリモジュール1380、1381、1382、
1383、1384からなる4つの8ビットメモリバン
クとして統括される。メモリモジュール1385はJP
EGモード(モード2)では使用されない。32ビット
の符号化されたピクセルは4つのバイトに分解され、そ
れぞれが異なる8ビットのメモリモジュールに格納され
る。
【0375】図126は単一コンポーネントモードであ
るストレージデバイス1293にどのようにして単一コ
ンポーネントデータブロックが格納されるのかを示した
図である。ストレージデバイス1293は、8ビットメ
モリモジュールと同様な方法で統合して扱われるメモリ
モジュール、1381と1384を含むメモリモジュー
ル1380、1381、1382、1383、1384
からなる4つの8ビットメモリバンクとして統括され
る。メモリモジュール1385はJPEGモード(モー
ド2)では使用されない。32ビットの符号化されたピ
クセルは4つのバイトに分解され、それぞれが異なる8
ビットのメモリモジュールに格納される。この場合、単
一コンポーネントブロックは64バイトからなる。単い
るコンポーネントブロックが亜バッファに書き込まれる
ときは、それぞれに異なる量のバイトローテーションが
適用される。32ビットの符号化されたピクセルデータ
はバッファ内の異なる単一コンポーネントデータブロッ
クを読むことで取り出される。
【0376】より詳細な再コンフィギュレーション可能
なデータバッファ250の統括方法は、ピクセルオーガ
ナイザの節を参照せよ。以上の具体例では、再コンフィ
ギュレーション可能はデータバッファが、異なる命令と
関係するデータの処理に用いられることを示した。3つ
の処理モードのある再コンフィギュレーション可能なデ
ータバッファが明らかにされた。異なるアドレスの生成
技術がバッファの処理モードのそれぞれにおいて必要と
なる。単一ルックアップテーブルモード(モード0)は
画像変換において、行列係数をバッファに格納するのに
用いられる。多重ルックアップテーブルモード(モード
1)では多チャネルの色空間変換(CSC)における多
数のインターバル及びフラクション検索テーブルをバッ
ファに格納するのに用いられる。」PEGモード(モー
ド2)はJPEG圧縮、JPEG伸長それぞれにおい
て、MCUデータを8×8の単一コンポーネントブロッ
クに分解、あるいは8×8の単一コンポーネントブロッ
クをMCUに再合成するのに用いられる。
【0377】3.18.3 結果オーガナイザ MUVバッファ250は結果オーガナイザ249におい
ても用いられる。結果オーガナイザ249は、メインデ
ータパス242あるいはJPEGコーダ241のストリ
ームをバッファしてフォーマットする。結果オーガナイ
ザ249はまた、図42で説明した結果データの圧縮、
非圧縮、非正規化、バイトレーンスワップ、再編成にも
関係する。更に結果オーガナイザ249は外部インター
フェースコントローラ238、ローカルメモリコントロ
ーラ236、周辺インターフェースコントローラ237
の要求に対し、その結果を転送する。
【0378】JPEG伸長モードの時、結果オーガナイ
ザ249はMUV RAM250をJPEGコーダ24
9の画像データをダブルバッファするために用いる。ダ
ブルバッファはMUVRAM250の半分に書き込まれ
ているJPEGコーダ241のデータを用いてJPEG
伸長する場合に、同時に残りの半分に書きこまれた画像
データが指定の格納場所に出力されるとき、そのパフォ
ーマンスをあげることができる。
【0379】1,3及び4チャネル画像データは、同一
チャネルからの8ビットのコンポーネントを含む8×8
ブロックの形のJPEG伸長を行っている間に、結果オ
ーガナイザ249に渡される。結果オーガナイザはこれ
らのブロックを指定の順番でMUVRAM250に格納
し、また複数チャネルのインターリーブ画像のために、
データをMUVRAM250から読みこみを行っている
時のチャネルのメッシュを格納する。例えば、YUVに
よる3チャネルのJPEG圧縮ではJPEGコーダ24
1は3つの8×8ブロックを、初めにY、次にU、最後
にVの順で出力する。メッシュ処理がはそれぞれブロッ
クか1つのコンポーネントを取り出すことによって行わ
れ、ピクセルを(YUVX)の形で構成する。ここでX
は未使用チャネルである。バイトスワッピングは出力チ
ャネルのスワップが必要となったときに行われる。結果
オーガナイザはまた、伸長された出力データのクロマデ
ータの再構成のための必要なサブサンプリング処理を行
う必要がある。このことは生成するためにそれぞれのプ
ログラムチャネルを繰り返すという意味を含んでいる。
【0380】図127にもどると図2の結果オーガナイ
ザ249の詳細が示されている。結果オーガナイザ24
9は、その処理に設定されるレジスタのレジスタファイ
ルを含む通常の標準CBusインターフェース840周
辺に基礎をおいている。結果オーガナイザ249の処理
はピクセルオーガナイザ249と同様であるが、リバー
スデータ操作が行われる。データ操作ユニット842は
バイトレーンスワッピング、コンポーネント代入、コン
ポーネント解放、非正規化をMUVアドレス発生器80
5により生成されるデータに対して行う。実行された処
理は図42を参照して前述の通り説明され、内部レジス
タにセットされた様々なフィールドに従って処理が行わ
れる。FIFOキュー843は出力データをそれがRB
us制御ユニット844を用いて出力される前にバッフ
ァを行う。RBus制御ユニット844はアドレスデコ
ーダとアドレス生成器によって構成される。格納モジュ
ール用のアドレスは、必要な出力バイト数のデータに加
えて、内部レジスタに格納される。更に、内部RO_C
UTレジスタはいくつくらいの出力バイトが出力バスの
バイトストリーム上に送られる前に欠落したかを決定す
る。加えて、RO_LMTレジスタは出力制限が中止さ
れた後の次のデータを用いて最大いくつのデータ項目が
出力されるかを決定する。MAG805はJPEG伸長
時にMUVRAM250のアドレスを生成する。MUV
RAM250はJPEGコーダからの出力をダブルバッ
ファするために用いられる。MAG805は内部コンフ
ィギュレーションレジスタに依存するMUVRAM25
0におけるコンポーネントのメッシュを行い、ピクセル
の入った単一チャネル、3チャネル、4チャネルの出力
を行う。バイトレーンスワッピングがピクセルデータを
適切な場所に格納する前に必要となるので、MUVRA
M250から得られるデータはデータ操作ユニットを通
して渡される。結果オーガナイザ249がJPEGモー
ドになっていないときはMAG805は単にPBusレ
シーバ845のデータをデータ操作ユニット842にダ
イレクトに送る。
【0381】3.18.4 オペランドオーガナイザB
及びC 図2に再び戻って、2つの独立なオペランドオーガナイ
ザ247と248はデータキャッシュコントロール24
0のデータバッファの機能と、JPEGコーダ241あ
るいはメインデータパス242にデータを転送する機能
を持つ。オペランドオーガナイザ247と248は様々
なモードで操作される。 (a) オペランドオーガナイザがCBus要求にたい
してのみ応答するアイドルモード (b) 現在の命令のデータがオペランドレジスタの内
部レジスタに格納されている時の直接モード (c) オペレータオーガナイザがシーケンシャルアド
レスおよびデータキャッシュコントローラ240のバッ
ファが満杯である時のデータを生成するシーケンシャル
モード。
【0382】多数のメインデータパス242の処理モー
ドは、少なくともどちらかのオペランドオーガナイザに
シーケンシャルモードであることを要求する。オペラン
ドオーガナイザB247における、合成を含むこれらの
モードは、ほかのイメージを用いて合成されるバッファ
ピクセルで必要である。オペランドオーガナイザC24
8はそれぞれのデータチャネルの値の減衰を行う合成処
理に用いられる。ハーフトーンモードではオペランドオ
ーガナイザB247は8ビットの行列係数のバッファを
行い、階層的画像フォーマット分解モードではオペラン
ドオーガナイザB247は垂直補間と残部融合命令の両
方のデータのバッファを行う。 (d) 定常モードではオペランドオーガナイザBは単
一の内部データワードの組立とそのワードを内部レジス
タによって指定された回数繰返すことを行う。 (e) タイルモードではオペランドオーガナイザBは
ピクセルタイルを構成するデータのバッファを行う。 (f) ランダムモードでは、オペランドオーガナイザ
はデータキャッシュコントローラにMDP242あるい
はJPEGコーダ241のアドレスをダイレクトに転送
する。
【0383】内部長さレジスタは、シーケンシャル、タ
イル、定常の各モードの処理の時に、オペランドオーガ
ナイザ247、248の個々で生成される項目の数を決
定する。オペランドオーガナイザ247、248それぞ
れは、はそれまでに処理されたデータ項目の数を保持
し、内部レジスタによって決定される値に達したら停止
する。オペランドオーガナイザそれぞれは、バイトレー
ンスワッピングを用いた入力データのフォーマット、コ
ンポーネントの代入、圧縮・非圧縮・正規化機能、にた
いしてより信頼がある。要求された処理は内部レジスタ
を用いてコンフィギュレーションされる。更に、オペラ
ンドオーガナイザ247と248それぞれはデータ項目
を制限するためにコンフィギュレーションされる。
【0384】図128では、オペランドオーガナイザ
(247、248)のより詳細な構成が示されている。
オペランドオーガナイザ247、248は通常の標準C
Busインターフェースとオペランドオーガナイザ全体
の制御を司るレジスタ850を含む。更に、OBus制
御ユニット851はデータキャッシュコントローラに接
続され、シーケンシャル、タイル、定常の各モードのア
ドレス生成、オペランドオーガナイザ247,248の
OBusインターフェースの通信を可能にする制御信号
の生成、入力ストリームの過去のクロックサイクルから
保存される状態を必要とする、正規化、繰り返し等を行
うデータ操作ユニットの制御を行う。オペランドオーガ
ナイザ247、248がシーケンシャル、あるいはタイ
ルモードであるときには、OBusコントローラユニッ
ト851はデータの要求をデータキャッシュコントロー
ラに送る。このときアドレスは内部レジスタによって決
定されている。
【0385】それぞれのオペランドオーガナイザは更
に、様々なモードの処理において、データキャッシュコ
ントローラ240からのデータをバッファするために用
いられる36ビット幅のFIFOバッファ852を含ん
でいる。データ操作ユニット853は、ピクセルオーガ
ナイザ246のデータ操作ユニット804に対応する機
能と同じ機能を行う。
【0386】メインデータパス/JPEGコーダインタ
ーフェース854は通常処理モードにおいてメインデー
タパスやJPEGコーダモジュール242、241でや
りとりされるデータ及びアドレスを分配する。MDP/
JCインターフェース854はデータ操作ユニット85
3からのデータをメインデータパス及びそのデータを繰
り返すように構成されたプロセスに送る。色変換モード
の場合には、ユニット851、854はデータキャッシ
ュコントローラ240と色変換テーブルの高速アクセス
を確立するためにバイパスされる。
【0387】3.18.5 主データパス部 以下の実施例の特徴は、複数の画像処理動作を高速で行
うことのできる低価格のコンピュータアーキテクチャを
提供する画像プロセッサに関するものである。更に、画
像プロセッサは、元々は規定されなかった画像処理動作
を行うように構成されることのできる、柔軟性のあるコ
ンピュータアーキテクチャを提供することを目的とす
る。また、画像プロセッサは、同じロジックをたくさん
持っていて、設計プロセスが簡単で安くなるような、コ
ンピュータアーキテクチャを提供することをも目的とす
る。
【0388】コンピュータアーキテクチャは制御レジス
タブロック、復号ブロック、データオブジェクトプロセ
ッサ、および、フロー制御ロジックを具備する。制御レ
ジスタブロックは画像処理動作に関する全ての情報を格
納する。復号ブロックは情報を構成信号に復号し、入力
データオブジェクトインターフェースを構成する。入力
データオブジェクトインターフェースはデータオブジェ
クトを外部から受け取り格納する。そして、これらのデ
ータオブジェクトをデータオブジェクトプロセッサに配
分する。ある画像処理動作においては、入力データオブ
ジェクトインターフェースがデータオブジェクトのアド
レスを生成することもあり、これらのデータオブジェク
トのソースが正しいデータオブジェクトを提供できるよ
うになる。データオブジェクトプロセッサは、受け取っ
たデータオブジェクトに対して算術演算を行う。フロー
制御ロジックは、データオブジェクト処理ロジックの中
のデータオブジェクトフローを制御する。
【0389】特に、データオブジェクトプロセッサは、
いくつかの同一なデータオブジェクトサブプロセッサを
備えることができ、各サブプロセッサは、入力データオ
ブジェクトの一部を処理する。データオブジェクトサブ
プロセッサは、データオブジェクトの当該部分に対し算
術演算を行ういくつかの同一な多機能算術部、出力デー
タオブジェクトを処理する後処理ロジック、および、多
機能算術部と後処理部とを接続する多重化ロジックを有
する。多機能算術部は計算されたデータオブジェクトの
ための記憶装置を具備する。この記憶装置は、フロー制
御ロジックによってイネーブルされるか又はデスエーブ
ルされる。多機能算術部および多重化ロジックは、復号
ロジックによって生成された構成信号によって構成され
る。
【0390】なお、復号ロジックからの構成信号は外部
プログラミングエージェントによって変化されることが
できる。このメカニズムを通じて、どのような多機能ブ
ロックおよび多重化ロジックであっても、外部プログラ
ミングエージェントによって個々に構成することがで
き、前もって規定されなかった画像処理動作を行うよう
に画像プロセッサを構成することを可能にする。本発明
の実施例が持つこれらの特徴およびその他の特徴を以下
で詳述する。
【0391】図2において、前述したように、主データ
パス部242はJPEGデータ符号化以外の全てのデー
タ操作動作および命令を行う。これらの命令には、合
成、色空間変換、画像変換、畳込み演算、行列の乗算、
ハーフトーン処理、メモリ複写、および階層画像フォー
マットの解凍が含まれる。主データパス242はピクセ
ルオーガナイザ246およびオペランドオーガナイザ2
47、248から、ピクセルとオペランドデータとを受
け取り、結果出力を結果オーガナイザ249に送る。
【0392】図129は、主データパス部242のブロ
ック図である。主データパス部242は汎用の画像プロ
セッサであって、入力インターフェース1460、画像
データプロセッサ1462、命令ワードレジスタ146
4、命令ワード復号器1468、制御信号レジスタ14
70、レジスタファイル1472、および、ROM14
75を備える。
【0393】命令制御部235は、バス1454を通じ
て、命令ワードを命令ワードレジスタ1464へ移す。
それぞれの命令ワードは、実行すべき画像処理動作の種
類や画像処理動作の様々なオプションを選択するプラグ
などの情報を含んでいる。命令ワードは、バス1465
を経由して命令ワード復号器1468に運ばれる。それ
で、命令制御部235は、命令ワードを復号するように
命令ワード復号器1468に指示することができる。そ
の指示を受けると、命令復号器1468は命令ワードを
制御信号に復号する。それから、これらの制御信号はバ
ス1469を経由して制御信号レジスタ1470に運ば
れる。それから、制御信号レジスタの出力は、バス14
71を経由して入力インターフェース1460および画
像データプロセッサ1462に接続される。
【0394】主データパス部242をより柔軟性のある
ものにするために、命令制御部235が制御信号レジス
タ1470に直接書き込むこともできる。これによっ
て、主データパス部242の構造を熟知している誰で
も、主データパス部242の細かい構成を行えるように
なり、主データパス部242は命令ワードで記述されて
いない画像処理動作をも実行できるようになる。
【0395】所望の画像処理動作を実行するために必要
な全ての情報を命令ワードに収容できない場合、命令制
御部235は、その収容できない必要な全ての情報をレ
ジスタファイル1472のいくつかの選ばれたレジスタ
に書き込むことができる。この情報は、バス1473を
経由して、入力インターフェース1460および画像デ
ータプロセッサ1462に伝えられる。ある画像処理動
作において、入力インターフェース1460は主データ
パス部242の現在状態を反映するために、レジスタフ
ァイル1472の選ばれたレジスタの内容を更新するこ
ともあり得る。画像処理動作を実行するときに問題が生
じたとき、命令制御部235は前述の特徴を用いて、問
題を容易に発見できるようになる。
【0396】命令ワードの復号が終了し、制御信号レジ
スタに所望する制御信号がロードされたとき、命令制御
部235は主データパス部242に所望画像処理動作の
実行を始めるように指示することができる。この指示を
受けると、入力インターフェース1460はバス145
1からのデータオブジェクトを受け取り始める。入力イ
ンターフェース1460は、実行される画像処理動作の
種類に応じて、オペランドバス1452又はオペランド
バス1453からのオペランドデータを受け取り始める
か、或は、オペランドデータのアドレスを生成してオペ
ランドバス1452又はオペランドバス1453からの
オペランドデータを受け取り始める。入力インターフェ
ース1460は、制御信号レジスタ1470の出力に応
じて、入力データを格納して配列し直す。アフィン画像
変換動作および畳込み演算のような計算を行うとき、入
力インターフェース1460はバス1452および14
53を経由してフェッチされるべき座標をも生成する。
【0397】画像データプロセッサ1462は、入力イ
ンターフェース1460に配列し直してもらったデータ
オブジェクトに対して主算術演算を行う。画像プロセッ
サ1462は、所定の補間ファクタで行われる2つのデ
ータオブジェクトの間の補間、2つのデータオブジェク
トの乗算、及びその結果を255で割る割算、2つのデ
ータオブジェクトに対する通常の乗算及び足し算、デー
タオブジェクトの分数部に対する様々な精度での切り捨
て、データオブジェクトのオーバフローをある最大値
に、そしてデータオブジェクトのアンダフローをある最
低値にそれぞれ抑えるクランプ、データオブジェクトの
スケーリング及びクランピングというような処理を行う
ことができる。バス1471の制御信号は、前記の算術
演算中のどれがデータオブジェクトに対して行われる
か、及びその動作の順序などを制御する。
【0398】ROM1475は、8.8フォーマットで
切り捨てられた255/xの被除数を有するが、ここ
で、xは0から255までの数である。ROM1475
は、バス1476を経由して、入力インターフェース1
460および画像データプロセッサ1462に接続され
る。ROM1475は短い長さのブレンドを生成し、デ
ータオブジェクトに255を掛け、その結果を他のデー
タオブジェクトで割るというような動作に用いられる。
【0399】オペランドバス、例えば1452の数は2
に制限されるが、大多数の画像処理動作においては十分
である。図130は、入力インターフェース1460を
より詳細に示す。入力インターフェース1460は、デ
ータオブジェクトインターフェース部1480、オペラ
ンドインターフェース部1482および1484、アド
レス生成状態器1486、ブレンド生成状態器148
8、行列乗算状態器1490、補間状態器1494、デ
ータ同期部1500、算術部1496、他レジスタ14
98、並びに、データ分配ロジック1505を備える。
【0400】データオブジェクトインターフェース部1
480と、オペランドインターフェース部1482及び
1484とは、外部からデータオブジェクト及びオペラ
ンドを受け取る。インターフェース部1482,148
4は、2つとも制御バス1515からの制御信号によっ
て構成される。インターフェース部1482,1484
は、受け取ったばかりのデータオブジェクト/オペラン
ドを含むデータレジスタを内部に有しており、2つとも
前記データレジスタが有効であるときはVALID信号
を出力する。インターフェース部1482,1484の
データレジスタの出力はデータバス1505に接続され
る。インターフェース部1482、1484のVALI
D信号はフローバス1510に接続される。オペランド
をフェッチするように構成されたとき、オペランドイン
ターフェース部1482および1484は、算術部14
96からのアドレスと、行列乗算状態器1490と、デ
ータオブジェクトインターフェース部1480のデータ
レジスタの出力とを受け取り、その中で必要なアドレス
を制御バス1515からの制御信号に応じて選択する。
いくつかの場合、特に、外部からデータを受けて格納す
る必要がない場合、オペランドインターフェース部14
82および1484のデータレジスタは、データオブジ
ェクトインターフェース部1480または算術部149
6のデータレジスタの出力からデータを格納するように
構成されることが有り得る。
【0401】アドレス生成状態器1486は、アフィン
画像変換動作および畳込み演算動作において算術部14
96を制御し、ソース画像のアクセスされるべき次の座
標を計算する。アドレス生成状態器1486は、制御バ
ス1515のSTART信号が設定されることを待つ。
制御バス1515のSTART信号が設定されると、ア
ドレス生成状態器1486はデータオブジェクトインタ
ーフェース部1480に対してSTALL信号を解除し
て、データオブジェクトが到着することを待つ。なお、
アドレス生成状態器1486は、アドレス生成状態器1
486がフェッチすることを必要とするカーネルデスク
リプタのデータオブジェクトの数と同じとなるようにカ
ウンタを設定する。カウンタの出力は、復号され、オペ
ランドインターフェース部1482および1484のデ
ータレジスタと他レジスタ1498とのイネーブル信号
になる。データオブジェクトインターフェース部148
0からVALID信号が起動されると、アドレス生成状
態器1486はカウンタを減少させるようになり、デー
タオブジェクトの次の部分が異なるレジスタにラッチさ
れる。
【0402】カウンタが零に達すると、アドレス生成状
態器1486はオペランドインターフェース部1484
からインデックステーブル値とピクセルとをフェッチし
始めよとオペランドインターフェース部1482に指示
する。なお、アドレス生成状態器1486は、行の数と
列の数とをそれぞれ持つ2つのカウンタをロードする。
全てのクロックエッジにおいて、かつオペランドインタ
ーフェース部1482などからのSTALL信号によっ
て停止されないとき、カウンタは減少され残りの行と列
を出力する。そして、算術部1496は、フェッチされ
るべき次の座標を計算する。両方のカウンタが零に達す
ると、カウンタは行と列の数を再びロードし、算術部1
496は次の行列の左上端を探すように構成される。
【0403】ピクセルの真の値を決定するために補間が
使われる場合、アドレス生成状態器1486は2つのク
ロックサイクルごとに、行および列の数を減少させる。
これは1ビットカウンタを使って実行され、その出力は
行および列カウンタのイネーブルとして用いられる。行
列が一度スキャンされた後、状態器は長さカウンタのカ
ウントを減少させる信号を送る。カウンタが1に達し
て、かつ最終インデックステーブルアドレスがオペラン
ドインターフェース部1482に送られたとき、状態器
は最終信号を出し、開始ビットをリセットする。
【0404】ブレンド生成状態器1488は、算術部1
496を制御して、ブレンド長さのための0から255
までの数列を生成する。この数列は、ブレンド開始値と
ブレンド終了値との間を補間する補間ファクタとして使
われる。ブレンド生成状態器1488はどちらかのモー
ド(ジャンプモード又はステップモード)で実行すべき
であるかを決める。ブレンド長さが256以下である場
合はジャンプモードが使われ、そうでない場合はステッ
プモードが使われる。
【0405】ブレンド生成状態器1488は、下記の計
算を行い、その結果をレジスタ(reg0,reg1,
reg2)にセットする。ブランドランプが予め決定さ
れた長さでステップモードにある場合、511−長さを
reg0(24ビット)に、512−2*長さをreg
1(24ビット)に、そして、終了−開始をreg2
(4×9ビット)に、それぞれラッチする。ランプがジ
ャンプモードにある場合は、0をreg0(24ビッ
ト)に、255/(長さ−1)をreg1(24ビッ
ト)に、そして、終了−開始をreg2(4×9ビッ
ト)に、それぞれラッチする。
【0406】ステップモードにおいて、以下の処理が各
サイクルにおいて実行される。reg0>0であると
き、reg0にreg1を加え、その結果をreg0に
格納する。もう一つのインクリメンタがイネーブルされ
ることもできるが、その場合には出力が1だけ増加され
る。reg0≦0であるとき、reg0に510を加
え、その結果をreg0に格納する。インクリメンタは
増加されない。インクリメンタの出力はランプ値であ
る。
【0407】ジャンプモードにおいて、以下の処理が各
サイクルにおいて実行される。reg0にreg1を加
える。加算の出力は24ビットであり、16.8の固定
少数点フォーマットで出力される。前記加算出力をre
g0に格納する。分数結果の第1ビットが1である場
合、整数部を増加させる。インクリメンタの整数部の下
位8ビットはランプ値である。このランプ値、即ちre
g2の出力と、ブレンド開始値とは画像データプロセッ
サ1462に送られ、ランプを生成する。
【0408】行列乗算状態器1490は、変換行列を用
いて入力データオブジェクトに対する線形色空間変換を
行う。変換行列は4×5次元である。第1から第4列に
はデータオブジェクトの4チャネルを掛けるようになっ
ており、最後列は積の和に加えられるべき常係数を含ん
でいる。制御バス1515からのSTART信号が起動
されたとき、行列乗算状態器は以下のように動く。
【0409】1)バス1482及び1484から変換行
列の常係数をフェッチすべきライン番号を生成する。な
お、他レジスタ1498をイネーブルして常係数が格納
できるようにする。2)1ビットフリップフロップを備
えていて、ライン番号を生成して、バス1482および
1484から行列の半分をフェッチするときにアドレス
として使う。なお、データオブジェクトの半分から、前
記行列の半分に掛けられるべきものを選択する“MAT
_SEL”信号をも生成する。
【0410】3)データオブジェクトインターフェース
部1480から入力されるデータオブジェクトがないと
き終了する。補間状態器1494は、データオブジェク
トの水平補間を行う。水平補間において、主データパス
部242はバス1451からデータオブジェクトストリ
ームを受け取り、隣のデータオブジェクトの間を補間す
る。そして、元ストリームの2倍、又は4倍の長さであ
るデータオブジェクトのストリームを出力する。データ
オブジェクトはバイト又はピクセルにパックされること
があり得るため、補間状態器1494は、スループット
が最大になるようにそれぞれの場合に異なる操作を行
う。補間状態器1494は以下のように動作する。
【0411】1)INT_SEL信号を生成することに
よって、データ配分ロジック1503が入力データオブ
ジェクトを再配列するようにし、正しいデータオブジェ
クト対に対して補間を行うようにする。 2)隣接するデータオブジェクト対の間を補間するため
の補間ファクタを生成する。
【0412】3)データオブジェクトインターフェース
部1480がもうデータオブジェクトを受け入れないよ
うにするSTALL信号を生成する。これが必要とされ
る理由は、出力ストリームが入力ストリームより長いか
らである。STALL信号はフローバス1510に送ら
れる。算術部1496は、算術計算を行うなめの回路を
具備しており、制御バス1515の制御信号によって構
成される。これは、アフィン画像変換および畳込み演算
と合成においてのブレンド生成という2つの命令のみに
よって使われる。
【0413】アフィン画像変換および畳込み演算におい
て、算術部1496は以下のような演算を行う。1)次
のxおよびy座標を計算する。x座標を計算するため
に、算術部1496は加算器を用いて現在のx座標に水
平および垂直デルタのx成分を加えるか、減算器を用い
て現在のx座標から水平および垂直デルタのx成分を引
くようにする。y座標を計算するために、算術部149
8は加算器を用いて現在のy座標に水平又は垂直デルタ
のy成分を加えるか、減算器を用いて現在のy座標から
水平又は垂直デルタのy成分を引くようにする。
【0414】2)y座標をインデックステーブルオフセ
ットに加算しインデックステーブルアドレスを計算す
る。ピクセルの元の値を求めるために補間を使う場合、
前記の和はインデックスエントリを求めるために、更に
4だけ増加される。 3)x座標をインデックステーブルエントリに加算し、
ピクセルのアドレスを求める。
【0415】4)長さカウントから1を引く。 ブレンド生成において、算術部1496は以下のように
作動する。 1)ステップモードにおいて、ある1つのランプ加算器
を用いてランプ生成アルゴリズムの内部変数を計算す
る。一方、その他の1つの加算器は、インターバル変数
が零より大きいときにランプ値を増加させるために用い
られる。
【0416】2)ジャンプモードにおいては、ジャンプ
値を現在のランプ値に加えるために1つの加算器のみが
必要とされる。 3)ジャンプモードでは、分数の切り捨てが行われる。 4)ランプ生成の始めにあたって、ブランドの終了から
ブランドの開始を引く。
【0417】5)長さカウントから1を引く。 他レジスタ1498は、データオブジェクトインターフ
ェース部1480、並びに、オペランドインターフェー
ス部1482及び1484において、データレジスタ以
外の余分の格納空間を提供する。他レジスタ1498
は、内部変数を格納するか、或はデータオブジェクトイ
ンターフェース部1480からの過去のデータオブジェ
クトをバッファするのにおいて使われるのが普通であ
る。レジスタ1498は、制御バス1515の制御信号
によって構成される。
【0418】データ同期部1500は、制御バス151
5の制御信号によって構成される。データ同期部150
0は、STALL信号をデータオブジェクトインターフ
ェース部1480、並びに、オペランドインターフェー
ス部1482および1484に提供することによって、
あるインターフェース部が、他のインターフェースは持
っていない一部データオブジェクトを受け取った場合、
他のインターフェースの全てかデータを受け取るまでそ
のインターフェース部を停止させる。
【0419】データ配分ロジック1505は、行列乗算
状態器1490からのMAT_SEL信号と、補間状態
器1494からのINT_SEL信号とを含む制御バス
1515の制御信号に応じて、データバス1510およ
びレジスタファイル1472からのデータオブジェクト
をバス1530を経由して再配列する。再配列されたデ
ータはバス1461へ出力される。
【0420】図131は、図129の画像データプロセ
ッサ1462をより詳細に示す。画像データプロセッサ
1462は、パイプライン制御部1540と、多数のカ
ラーチャネルプロセッサ1545,1550,155
5、及び1560とを有する。全てのカラーチャネルプ
ロセッサは、入力インターフェース1460(図13
1)によって駆動されるバス1565から入力を受け取
る。全てのチャネルプロセッサとパイプライン制御部1
540は、バス1472を経由する、制御信号レジスタ
1470からの制御信号によって構成される。全てのカ
ラーチャネルプロセッサは、図129のレジスタファイ
ル1472及びROM1475からの入力をもバス15
80を経由して受け取ることがある。全てのカラーチャ
ネルプロセッサとパイプライン制御部との出力はグルー
プされてバス1570となり、画像データプロセッサ1
462の出力1455を形成する。
【0421】パイプライン制御部1540は、全てのカ
ラーチャネルプロセッサのレジスタをイネーブル又はデ
スエーブルすることによって、全てのカラーチャネルプ
ロセッサのデータオブジェクトのフローを制御する。パ
イプライン制御部1540の中には、レジスタパイプラ
インがある。パイプラインの形態及び長さは、バス14
71からの制御信号により構成されるようになってお
り、パイプライン制御部1540のパイプラインとカラ
ーチャネルプロセッサのパイプラインとは、その形態が
同じである。パイプライン制御部はバス1565からV
ALID信号を受け取る。パイプライン制御部1540
のパイプラインステージそれぞれにおいて、入力VAL
ID信号が起動され、パイプラインステージが停止され
ていない場合、パイプラインステージは全てのカラーチ
ャネルプロセッサに対してレジスタイネーブル信号を起
動させるとともに入力VALID信号をラッチする。そ
れから、ラッチの出力、即ち、VALID信号は、次の
パイプラインステージに移る。このようにして、パイプ
ラインにおけるデータオブジェクトの移動が、データ記
憶装置を用いずに、シミュレートかつ制御される。
【0422】カラーチャネルプロセッサ1545,15
50,1555、及び1560は、入力データオブジェ
クトに対する主な算術動作を行い、各プロセッサは出力
データオブジェクトの1つのチャネルを担当している。
好適な実施例においては、大多数のピクセルデータオブ
ジェクトが最大4つのチャネルを持っているため、カラ
ーチャネルプロセッサの数は4に制限される。
【0423】カラーチャネルプロセッサの中には、ピク
セルの不透明(opacity)チャネルを処理する部
分がある。図131には示されていないが、制御バス1
471に接続されている追加の回路があり、カラーチャ
ネルプロセッサは不透明チャネルを正しく処理するよう
に制御バス1471からの制御信号を変換する。これ
は、ある画像処理動作においては、不透明チャネルに対
する動作がカラーチャネルに対する動作と少し異なるか
らである。
【0424】図132は、カラーチャネルプロセッサ1
545,1550,1555、1560を(図132に
おいては一般的に1600で示した)より詳細に示す。
各カラーチャネルプロセッサ1545,1550,15
55、1560は、処理ブロックA1610と、処理ブ
ロックB1615と、ビッグ加算器1620と、分数切
り捨て部1625と、クランプまたはラッパー1630
と、出力多重化部1635とを備えている。カラーチャ
ネルプロセッサ1600は、制御信号レジスタ1470
からの制御信号をバス1602を経由して、パイプライ
ン制御部1540からのイネーブル信号をバス1604
を経由して、レジスタファイル1472からの情報をバ
ス1605を経由して、その他カラーチャネルプロセッ
サからのデータオブジェクトをバス1603を経由し
て、入力インターフェース1460からのデータオブジ
ェクトをバス1601を経由して、それぞれ受け取る。
【0425】処理ブロックA1610は,バス1601
からのデータオブジェクトに対していくつかの算術動作
を行い、部分的に計算されたデータオブジェクトをバス
1611に出力する。処理ブロックA1610が画像処
理動作のために行うべき処理を以下に説明する。合成に
おいて、処理ブロックA1610はデータオブジェクト
バス1451からのデータオブジェクトに不透明度を掛
け、ブレンド開始値とブレンド終了値との間を図129
の入力インターフェース1460からの補間ファクタに
よって補間し、図129のオペランドバス1452から
のオペランドをプレ乗算するかまたはブレンドカラーに
不透明度を掛けるかする。そして、プレ乗算されたオペ
ランドまたはブレンドカラーデータに対する乗算を減衰
させる。
【0426】一般色空間変換において、処理ブロックA
1610は、図129のバス1451からの2つの分数
値を用いて4つのカラーテーブル値の間を補間する。ア
フィン画像変換および畳込み演算において、処理ブロッ
クA1610はソースピクセルの色に不透明度をプレ乗
算し、現在x座標の分数部を用いて同じ行のピクセルの
間を補間する。
【0427】線形色空間変換において、処理ブロックA
1610はソースピクセルのカラーに不透明度をプレ乗
算し、プレ乗算されたカラーデータに変換行列係数を掛
ける。水平補間と垂直補間において、処理ブロックA1
610は2つのデータオブジェクトの間を補間する。
【0428】レジデュアルマージンにおいて、処理ブロ
ックA1610は2つのデータオブジェクトを加算す
る。処理ブロックA1610は多数の多機能ブロック1
640と、処理ブロックAグルーロジック1645とを
備える。多機能ブロック1640は制御信号によって構
成されていて、以下の機能のどちらかの1つを実行する
ことができる。
【0429】2つのデータオブジェクトに対し加減算を
行う。1つのデータオブジェクトを伝える。2つのデー
タオブジェクトの間をある補間ファクタによって補間す
る。色に不透明度をプレ乗算する。2つのデータオブジ
ェクトを掛け、その積に第3のデータオブジェクトを掛
ける。
【0430】2つのデータオブジェクトに対し加減算を
行い、その結果に不透明度をプレ乗算する。多機能ブロ
ック1640のレジスタは、図131のパイプライン制
御部1540によって生成される、バス1604からの
イネーブル信号によってイネーブルされるかデスエーブ
ルされる。処理ブロックAグルーロジック1645はバ
ス1601からのデータオブジェクトおよびバス160
3からのデータオブジェクトと、いくつかの多機能ブロ
ック1640の出力とを受け取り、これらをその他の選
択された多機能ブロック1640の入力に送る。処理ブ
ロックAグルーロジック1645もバス1602からの
制御信号によって構成される。
【0431】処理ブロックB1615は,バス1601
からのデータオブジェクトとバス1611からの部分的
に計算されたデータオブジェクトとに対して算術動作を
行い、部分的に計算されたデータオブジェクトをバス1
616に出力する。処理ブロックB1615が画像処理
動作のために行う処理を以下に説明する。非正のオペレ
ータをもつ合成において、処理ブロックB1615はデ
ータオブジェクトバス1451からのプレ処理されたデ
ータオブジェクトと、オペランドバス1452からのオ
ペランドに対して、バス1603からの合成被乗数を掛
けるとともに、8.8フォーマットの255/不透明度
の値であるROMの出力を、クランプ/ラップされたデ
ータオブジェクトに掛ける。
【0432】正のオペレータをもつ合成において、処理
ブロックB1615は、プレ処理された2つのデータオ
ブジェクトを加算する。更に、不透明チャネルにおいて
は、前記の和から255を引いて、その差をオフセット
に掛け、その積を255で割る。一般色空間変換におい
て、処理ブロックB1615は、バス1451からの2
つの分数値を用いて4つのカラーテーブル値の間を補間
し、残っている分数値を用いて処理ブロックA1610
からの部分的に補間されたカラー値と、以前の補間結果
との間を補間する。
【0433】アフィン画像変換および畳込み演算におい
て、処理ブロックB1615は、現在y座標の分数部を
用いて、部分的に補間されたピクセルの間を補間し、補
間されたピクセルにサブサンプルウェート行列の係数を
掛ける。線形色空間変換において、処理ブロックB16
15はソースピクセルのカラーに不透明度をプレ乗算
し、プレ乗算されたカラーに変換行列係数を掛ける。
【0434】処理ブロックB1615は、多数の多機能
ブロックと、処理ブロックBグルーロジック1650と
を備える。多機能ブロックは、処理ブロックA1610
のものと同様であるが、処理ブロックBグルーロジック
1650においては、バス1601,1603,161
1,1631からのデータオブジェクトと、選択された
多機能ブロックの出力とを受け入れ、これらを選択され
た多機能ブロックの入力に送る。処理ブロックBグルー
ロジック1650もバス1602からの制御信号によっ
て構成される。
【0435】ビッグ加算器1620は、処理ブロックA
1610と処理ブロックB1615からの部分的結果の
いくつかを結合する。これは、バス1601を経由して
入力インターフェース1640から、バス1611を経
由して処理ブロックA1610から、バス1616を経
由して処理ブロックB1615から、そして、バス16
05を経由してレジスタファイル1472から、それぞ
れの入力を受け取り、バス1621に結合された結果を
出力する。ビッグ加算器1620も、バス1602の制
御信号によって構成される。
【0436】ビッグ加算器1620は、様々な画像処理
動作に従って、異なる構成にすることができる。ビッグ
加算器1620の所定の画像処理動作における動作を以
下に説明する。非正のオペレータを持つ合成において、
ビッグ加算器1620は処理ブロックB1615からの
2つの部分積を合算する。
【0437】正のオペレータを持つ合成において、オフ
セットイネーブルが起動されているときに、ビッグ加算
器1620は不透明度チャネルからオフセットのある先
処理されたデータオブジェクトの和を引く。アフィン画
像変換/畳込み演算において、ビッグ加算器1620は
処理ブロックB1615からの積を累算する。
【0438】線形色空間変換において、第1サイクルで
ビッグ加算器は2つの行列係数/データオブジェクト積
と常係数とを合算する。第2サイクルで、直前サイクル
の和に他のもう2つの行列係数/データオブジェクト積
を加える。分数切り捨て(丸め)部1625は、バス1
621を経由してビッグ加算器1620からの入力を受
け取り、出力の分数部を切り捨てる。分数部を表すビッ
トの数は、レジスタファイル1472からバス1605
のBP信号によって表示される。BP信号を解釈する仕
方を以下の表に表す。切り捨てられた出力はバス162
6に提供される。
【0439】分数テーブル
【0440】
【表27】
【0441】分数切り捨て部1625は、分数の切り捨
ての以外に2つの作業を行う。 1)切り捨てられた結果が負であるかどうかを決定す
る。 2)切り捨てられた結果の絶対値が255より大きいか
どうかを決定する。 クランプ又はラッパー1630はバス1626を経由し
て分数切り捨て部1625から入力を受け取り、下記の
動作をその順序に従い行う。
【0442】切り捨てられた結果の絶対値を求めるべき
というオプションがイネーブルされているとき、その絶
対値を求める。データオブジェクトのアンダフローをあ
る最低値に、そして、データオブジェクトのオーバフロ
ーをある最大値に、それぞれクランプする。出力多重化
部1635は、バス1616の処理ブロックBの出力と
バス1631のクランプまたはラッパーの出力とのなか
で、最終の出力を選択する。なお、データオブジェクト
に対して、いくつかの最終処理をも行うが、以下は所定
の画像処理動作のために行われる動作を説明する。
【0443】非正のオペレータをもつ、プレ乗算なしの
合成において、多重化部1635は処理ブロックB16
15のいくつかの出力を結合し、プレ乗算なしのデータ
オブジェクトを形成する。非正のオペレータをもつ、プ
レ乗算ありの合成において、多重化部1635はクラン
プまたはラッパー1630の出力を通過させる。
【0444】正のオペレータをもつ合成において、多重
化部1635は処理ブロックB1630のいくつかの出
力を結合し、データオブジェクト結果を形成する。一般
色空間変換において、多重化部1635は出力データオ
ブジェクトに対して、翻訳・クランプ機能を適用する。
他の動作において、多重化部1635は、クランプ又は
ラッパー1630の出力を通過させる。
【0445】図133は、例えば1640のような、1
つの多機能ブロックをより詳細に示す。多機能ブロック
1640は、モード検出部1710と、2つの加算オペ
ランド論理部1660及び1670と、3つの多重化論
理部1680,1685,及び1690と、2入力加算
部1675と、2つの加数を持つ2入力乗算部1695
と、レジスタ1705とを備える。
【0446】モード検出部1710は、図129の制御
信号レジスタ1470からのMODE信号1711と、
図129の入力インターフェース1460からの2つの
SUB信号1712及びSWAP信号1713とを受け
取る。モード検出部1710は、これらの信号を復号し
て、加算オペランド論理部1660および1670と、
多重化論理部1680,1685,および1690に伝
えられる制御信号を生成する。そして、この制御信号
は、多機能ブロック1640を種々な動作のできるよう
に構成する。多機能ブロック1640は、8つのモード
を有する。
【0447】1)加減算モード:SUB信号1712に
従い、入力1655を入力1665に加えるか、また
は、入力1665から引く。更に、SWAP信号693
に従い、入力をスワップすることもできる。 2)バイパスモード:入力1655を出力にバイパスす
る。 3)補間モード:入力1675を補間ファクタとして、
入力1655と1665の間を補間する。SWAP信号
1713に従い、入力1655および1665をスワッ
プすることができる。
【0448】4)プレ乗算モード:入力1655に入力
1675を掛け、その結果を255で割る。INCレジ
スタ1708の出力は、正しい結果を得るためにバス1
707における、このステージの結果を増加すべきかど
うかを、次のステージに教える。 5)乗算モード:入力1655に入力1675を掛け
る。
【0449】6)加減算およびプレ乗算モード:入力1
665を入力1655に加えるか、または、入力165
5から引き、その結果に入力1675を掛け、そして、
この積を255で割る。INCレジスタ1708の出力
は、正しい結果を得るためにバス1707にあるこのス
テージの結果を増加すべきかどうかを、次のステージに
教える。
【0450】加算オペランド論理部1660及び167
0は、加算器によって減算もできるようにするために、
必要に応じて入力に対する1の補数を求める。加算器1
675は、バス1662と1672の加算オペランドロ
ジック1660及び1670の出力を合算し、その和を
バス1677に出力する。多重化ロジック1680,1
685、及び1690は、所望の機能を実行するために
適する被乗数と加数を選ぶ。これらは全てモード検出部
1710からのバス1714の制御信号によって構成さ
れる。
【0451】2つの加数を持つ乗算部1695は、バス
1682からの入力をバス1677からの入力に掛け
る。そして、前記積にバス1687および1692から
の入力の和を加える。加算器1700は、乗算部169
5の出力の下位8ビットに乗算部1695の出力の上位
8ビットを加える。加算器1700の桁上げはINCレ
ジスタ1701にラッチされる。INCレジスタ170
1は、信号1702によってイネーブルされる。レジス
タ1705は乗算部1695からの積を記憶する。これ
も信号1702によってイネーブルされる。
【0452】図134は、合成動作のブロック図を示
す。この合成動作は3つの入力データストリームを受け
取る。 1)累算ピクセルデータ:この累算部モデルにおいて、
結果が格納された位置と同一な位置から誘導される。 2)合成オペランド:カラーと不透明度からなる。カラ
ーと不透明度の両方はフラット、ブレンド、ピクセル、
またはタイルであることができる。
【0453】3)減衰:オペランドデータを減衰する。
減衰はフラットなビットマップまたはバイトマップであ
ることができる。 ピクセルデータは典型的に4つのチャネルからなる。そ
の3つのチャネルがピクセルのカラーを形成する。残り
のチャネルはピクセルの不透明度である。ピクセルデー
タはプレ乗算されても、或はされなくてもよい。ピクセ
ルデータがプレ乗算されるとき、各カラーチャネルに不
透明度を掛ける。ピクセルがプレ乗算されると合成動作
の式が簡単になるため、ピクセルデータがプレ乗算され
てから他のピクセルと合成されるのが普通である。
【0454】好適な実施例で実行される合成命令を表1
に示す。各命令はプレ乗算されたデータに働きかける。
(ac0,a0)はプレ乗算されたピクセルカラーac
と不透明度a0を、rは“オフセット”値、wc()は
ラップ/クランプ・オペレータを意味し、表1における
over、in、out、atopの各オペレータの逆
オペレータも実装されている。また、合成モデルは左側
に累算器を備える。
【0455】図134における合成ブロック1760
は、3つのカラーサブブロックと不透明サブブロックを
具備する。各々のカラーサブブロックは、入力ピクセル
の1つのカラーチャンネルと不透明チャンネルに対して
動作して、出力ピクセルのカラーを得る。以上の動作を
擬似コードの形で以下に示す。 PIXEL Composite( IN colorA,colorB: PIXEL; IN opacityA,opacityB: PIXEL; IN comp_op:COMPOSITE_OPERATOR) ( PIXEL result; IFcomp_opがrover,rin,rout,ratopであるとT HEN colorAとcolorBをスワップする; opacityA,opacityBをスワップする; END IF; IF comp_opがover,rover,loado,又は、plus であるとTHEN X=1; ELSE IF comp_opがin,rin,atop,又は、rato pであるとTHEN X=opacityB; ELSE IF comp_opがout,rout,又は、xorであると THEN X=not(opacityB); ELSE IF comp_opがloadzero,loadc,又は、l oadcoであるとTHEN X=0; END IF; IF comp_opがover,rover,atop,ratop,又は 、xorであるとTHEN Y=not(opacitya); ELSE IF comp_opがplus,loadc,又は、loadc oであるとTHEN Y=not(opacitya); ELSE IF comp_opがplus,loadc,又は、loadc oであるとTHEN Y=1; ELSE IF comp_opがin,rin,out,rout,loa dzero,又は、loado THEN Y=0; END IF; result=coloA*X+colorB*Y; RETURN result; 命令’load’と’loado’が不透明チャンネル
に対して異なる意味を持っているため、以上のコードは
不透明サブブロックにおいて異なる。
【0456】図134におけるブロック1765は、ブ
ロック1760の出力をクランプまたはラップする。ブ
ロック1765がクランプするように構成されると、許
容される最小値より小さい全ての値を最小値に、許容さ
れる最大値より大きい全ての値を最大許容値に抑える。
ブロック1765がスワップするように構成されると、
以下の式を計算する。
【0457】((x−min)mod(max−mi
n))+min, ここで、minとmaxはカラーにおいて許容される最
小値と最大値を意味する。最小値と最大値としては、0
と255が望ましい。図134におけるブロック177
0は、ブロック1765からの結果をプレ乗算する。こ
れはプレ乗算されたカラー値に255/oを掛けること
によりピクセルをプレ乗算する。ここで、oは合成後の
不透明度を意味する。255/oの値は合成エンジン内
のROMから得られる。ROM内の値は8.8フォーマ
ットで記憶されており、分数以下の部分は丸められる。
乗算の結果は16.8フォーマットで格納される。逆プ
レ乗算されたピクセルを生成するために、この結果は8
ビットで丸められる。
【0458】ブランド生成部1721は特定の開始値と
終了値を持つ特定長さのブランドを生成する。これは以
下の2つのステージに渡って行なわれる。 1)ランプ生成 2)補間 ランプ生成において、合成エンジンは命令の長さに対し
て、0から255まで線形増加する数列を生成する。ラ
ンプ生成には、長さが255以下の“ジャンプ”モード
と長さが255より長い“ステップ”モードの2つがあ
る。モードは長さの上位24ビットによって決まる。ジ
ャンプモードにおいて、ランプ値の増加分はクロック周
期ごとに少なくとも1である。ステップモードおいて、
ランプ値の増加分はクロック周期ごとに最大1である。
【0459】ジャンプモードにおいて、合成エンジンは
ステップ値255/(長さ−1)を求めるために8.8
フォーマットのROMを用いる。この値は16ビット累
算器に加えられる。累算器の出力は8ビットで切り捨て
られて数列を形成する。ステップモードおいて、合成エ
ンジンはBresenhamの線描アルゴリズムに似た
アルゴリズムを用いる。そのアルゴリズムを以下に示
す。
【0460】 Void line draw(length: INTERGER) { d=511− length; incrE=510; incrNE=512−2*length; ramp−0; for(i=0;i(length;i++) { if d(=0 then d+=incrE; else{ d+=incrNE; ramp++; } } } その後、ランプからブランドを生成するために次の式が
使われる。
【0461】Blend=((end−start)x
ramp/255)+start255による割算に
対して切り捨てが行われる。上記式は、2つの加算器
と、各チャンネルのランプによって(end−star
tに対し)“プレ乗算”を行なうブロックとを必要とす
る。主データパス部242が行なうことのできる他の画
像処理は、一般色空間変換である。一般化色空間変換
(GCSC)は出力カラー値を求めるためにピースワイ
ズトライーリニア(3次線形)補間を用いる。3次元の
入力空間から1次元もしくは4次元出力空間への変換が
行なわれるのが望ましい。
【0462】いくつかの場合においては、色域のエッジ
におけるトライーリニア補間の正確さが問題になる。こ
の問題はエッジ付近に対して敏感なプリントデバイスに
おいて著しくなる。この問題を避けるためにGCSC
は、選択的に拡張出力色空間において計算されることが
でき、次の式を用いて適当な範囲内にスケール及びクラ
ンプされる。
【0463】 好適な実施例が実行できるその他の画像処理には、画像
変換および畳込み演算である。画像変換においてソース
画像はスケール、回転、スキューされる。畳込み演算に
おいて、ソース画像のピクセルは畳込み行列をもってサ
ンプリングされ、目的画像を生成する。目的画像におけ
るスキャンラインを生成するためには次の段階が必要で
ある。
【0464】1)図135に示すような目的画像のスキ
ャンラインを逆変換する。これによって目的画像のスキ
ャンラインを生成するに必要なソース画像のピクセルを
識別することができる。 2)ソース画像の必要部分を解凍する。 3)目的画像の水平、垂直サブサンプリング距離、開始
x,y座標をソース画像に逆変換する。
【0465】4)上記情報を処理部に伝送し、必要なサ
ブサンプリングと補間を行ない、出力画像のピクセルを
求める。 サブサンプリング、補間、目的ピクセルの書き込みなど
は好適な実施例によって行なわれ、ソース画像における
関連する部分、使うべきサブサンプリング周波数などの
計算はホストアプリケーションによって行なわれる。
【0466】図136は目的ピクセル値の計算において
必要な段階のブロック図である。図136は必要なソー
ス画像のピクセルが利用可能であるものと想定してい
る。目的ピクセルを計算する最後の段階は、ソース画像
から2次線形補間された全てのサブサンプルを合算する
ことである。主データパス部242における適当な設定
によって引き出される画像変換エンジンのブロック図を
図137に示す。画像変換エンジン1830はアドレス
生成部1831、プレ乗算部1832、補間部183
3、累算部1834、切捨て、クランプ、絶対値を求め
る論理部1835からなる。
【0467】アドレス生成部1831は、結果ピクセル
を構成するのに必要なソース画像のx,y軸を生成す
る。また、これは入力インデックステーブル1815と
画像1810のピクセルからインデックスオフセットを
求めるためのアドレスを生成する。アドレス生成部18
31がソース画像のx,y軸を生成する前にカーネルデ
ィスクリプタを読む。カーネルディスクリプタのフォー
マットには2つの種類があり、それを図138に示す。
カーネルディスクリプタは、 1)ソース画像の開始座標(符号なしの固定小数点、2
4.24精度)。位置(0、0)は画像の左上端であ
る。
【0468】2)水平、垂直のサブサンプルデルタ(2
の補数、24.24精度) 3)固定小数点行列係数における2進小数点の位置を示
す3ビットのbpフィールド。図150はbpフィール
ドの定義とその説明を示す。 4)累算行列係数。これは20個の2進位置(2の補
数)を持つ”可変”小数点精度のものであり、2進小数
点の位置はbpフィールドにより暗黙的に規定される。
【0469】5)カーネルディスクリプタのワードの残
り個数を示すrlフィールド。この値は行の個数と(列
の個数−1)とを掛けたものと同じである。短いカーネ
ルディスクリプタにおいて、xの開始座標の定数部を除
いた他のパラメータは次のような値を持つ。xの開始座
標の分数<−0,yの開始座標<−0,水平デルタ<−
1.0,垂直デルタ<−1.0.アドレス生成部183
1が構成された後、現座標を計算する。これにはサブサ
ンプル行列の次元に応じて2つの方法がある。サブサン
プル行列の次元が1×1である場合、アドレス生成部1
831は十分な座標が得られるまで水平デルタを現座標
に加える。
【0470】サブサンプル行列の次元が1×1でない場
合、アドレス生成部1831は行列の1つの行が終るま
で水平デルタを現座標に加える。その後、アドレス生成
部1831は次の行の座標を求めるために垂直デルタを
現座標に加える。アドレス生成部1831は次の座標を
求めるため、1つ以上の列が終るまで現座標から水平デ
ルタを引く。その後、アドレス生成部1831は垂直デ
ルタを現座標に加え、そしてこの過程を繰り返す。図1
50の上端におけるダイアグラムは行列へのアクセス方
法を示す。この構造を用いて、行列はジグザグでスキャ
ンされ、この方法によって現在のx,y軸が計算される
ので、必要なレジスタ数は少なくてもよい。累算行列係
数はカーネルディスクリプタにおいて同様な順序で並べ
なければならない。
【0471】現座標を生成した後、アドレス生成部18
31はインデックステーブルのアドレスを求めるため、
y軸をインデックステーブルベースアドレスに加える
(ソースピクセルが補間されている場合、アドレス生成
部1831は次のインデックステーブルも求める必要が
ある)。インデックステーブルベースアドレスは(y+
0)におけるインデックステーブルエントリを指す。イ
ンデックステーブルからインデックスオフセットを求め
た後、アドレス生成部1831はそれをx座標に加え
る。この和は、ソース画像から1ピクセルを求めるとき
に用いられる(ソースピクセルが補間されている場合は
2ピクセル)。ソースピクセルが補間されている場合、
アドレス生成部1831はx座標を次のインデックスオ
フセットに加え、2以上のピクセルを得る。
【0472】画像変換の座標を求めるとき、畳込み演算
においても類似な手法を使う。畳込み演算との唯一の差
異は、畳込み演算は次の出力ピクセルにおける行列の開
始座標が前ピクセルにおける行列の開始座標から水平デ
ルタだけ離れていることである。画像変換において、次
のピクセルにおける行列の開始座標は、以前の出力ピク
セルにおける行列の右上端ピクセルの座標から水平デル
タだけ離れている。
【0473】図139において、中段のダイアグラムは
上記の差を示す。プレ乗算部1832は必要であればピ
クセルのカラーチャネルと不透明チャネルを掛ける。補
間部1832は必要なピクセルの真の色を求めるためソ
ースピクセルを補間する。これはソース画像メモリから
2ピクセルを取り、現在のx座標の分数部分を用いて補
間し、その結果をレジスタに入力する。その後、ソース
画像メモリの次の列の2ピクセルを取り、同じくxの分
数を用いて補間する。その後、補間部1833は現在の
y座標の分数部を用いて、この補間値とその前の補間値
を補間する。
【0474】累算部1834は2つの作業をする。 1)行列係数とピクセルを掛ける。 2)全ての行列に対する上の結果を累算した値を次のス
テージに出力する。 累算部1834の初期値は、チャネルに応じて、0もし
くは特定の値に初期化される。
【0475】ブロック1835は累算部1834の出力
を切り捨て、必要であればアンダーフローやオーバーフ
ローした値を最大値または最小値に制限する。そして、
必要であれば出力の絶対値を求めることもある。累算部
の出力において2進小数点の位置はカーネルディスクリ
プタのbpフィールドによって指定される。bpフィー
ルドは、累算結果において捨てるべきビットの数を示
す。これは、図139における下端のダイアグラムに示
されている。この累算値は符号ありの2の補数として扱
われる。
【0476】主データパス部242が行えるもう1つの
画像処理動作は行列乗算である。行列乗算は2つの空間
の間でアフィン関係がある場合の色空間変換に使われ
る。これが、(3次線形補間に基づく)一般色空間変換
との差異である。行列乗算の結果は次の式によって定義
される。
【0477】
【数7】
【0478】ここで、riは結果ピクセルであり、ai
はAオペランドピクセルである。行列のサイズは5列4
行でなければならない。図140は、主データパス部2
42において行列乗算を行なう乗算−加算器のブロック
図である。この中にはピクセルチャンネルに行列係数を
掛ける乗算部、その結果を合算する加算器、必要に応じ
て出力値をクランプしそして絶対値を求める論理部から
なる。
【0479】行列乗算が終了するためには2クロックサ
イクルが必要である。各サイクルごとに多重化部を設定
し、乗算部と加算部のデータが正しく選択されるように
する。第0サイクルにおいて、ピクセルの最下位2バイ
トが多重化部1851、1852によって選択される。
次にその係数を行列の左側における2つの列、即ち、キ
ャッシュにおける第0ラインにある行列係数に掛ける。
【0480】第1サイクルにおいて、ピクセルのより上
位2バイトがトップ多重化部によって選択される。次に
その係数を行列の右側における2つの列に掛ける。乗算
の結果は最終サイクルの結果に加えられる1854。加
算部における和は8ビットに切り捨てられる1855。
“オペランド論理部”1856は、加算部1854の入
力が4つになるように乗算部出力を再配列する。これは
乗算部の結果に対する加算を可能にするための再配列を
行い、24ビット係数と8ビットピクセル成分との正し
い積を出力するようにする。
【0481】“AC論理部”1855は加算部の出力の
最下位12ビットを切捨て、設定に従い切り捨てられた
結果の絶対値を求める。その後、設定に応じて、その結
果をクランプまたはラップする。“AC論理部”がクラ
ンプするように設定されたとき、0以下の全ての値は0
に、255以上の全ての値は255に抑えられる。“A
C論理部”がラップするように設定されたとき、定数部
分の下位8ビットが出力される。
【0482】主データパス部242は、上記以外の画像
処理を行なうように設定されることもできる。設計再利
用によってコストが低減されるとともに、様々な画像処
理動作を早く行なうことのできるコンピュータアーキテ
クチャについて以下述べるようにする。なお、このコン
ピュータアーキテクチャは柔軟性をもっているため、外
部プログラミングエージェントであってもそのアーキテ
クチャにさえ慣れていれば、元々予測しなかった画像処
理動作をも実行できるようにコンピュータを構成するこ
とができる。また、設計のコアーは主にいくつかの多機
能ブロックからなるため、設計の苦労を著しく減らすこ
とができる。
【0483】3.18.6 データキャッシュ制御部と
キャッシュ データキャッシュ制御部240は、コプロセッサ224
における4キロバイトの読み出しデータキャッシュ23
0を備えている。データキャッシュ230はダイレクト
マップRAMキャッシュとして配列されており、外部メ
モリにおける同じ長さを持つラインのいずれも、キャッ
シューメモリ230(図2)における同じ長さの同じラ
インに直接マッピングされることができる。キャッシュ
メモリにおけるこのラインを普通キャッシュラインと呼
び、上記キャッシュメモリは、多数のこのようなキャッ
シュラインからなる。
【0484】データキャッシュ制御部240は2つのオ
ペランドオーガナイザ247、248からのデータ要求
をサービスする。まずデータがキャッシュ230に存在
するかを確認する。そうでなければデータが外部メモリ
からフェッチされる。データキャッシュ制御部240に
はプログラムのできるアドレス生成部があり、データキ
ャッシュ制御部240がいくつかの異なるアドレッシン
グモードで動作するのを可能にする。また、要求された
データのアドレスがデータキャッシュ制御部240によ
って作られるようになる特殊アドレシングモードもあ
る。このモードでは8ワード(256ビット)までのデ
ータをオペレーションオーガナイザ247、248に同
時に送ることができる。
【0485】キャッシュRAMは8つの独立してアドレ
ス可能なメモリバンクからなる(異なるラインアドレス
によってアドレスされた)。各々のバンクからのデータ
が256ビットに単位付けられる一部の特殊アドレシン
グモードに必要である。この配置は、お互いに異なるバ
ンクから来たものであれば、8つの32ビット要求まで
を同時にサービスすることができる。
【0486】キャッシュは、詳細に後述する以下のモー
ドにおいて動作する。必要であれば、すべてのキャッシ
ュが自動的に入れ込まれるようにすることも可能であ
る。 1.ノーマルモード 2.単一出力一般色空間変換モード 3.多出力一般色空間変換モード 4.JPEG符号化モード 5.低速JPEG復号モード 6.行列乗算モード 7.デスエーブルモード 8.無効化モード 図141は、図2におけるデータキャッシュ制御部24
0のアドレス、データ、制御フローとデータキャッシュ
230とを示す。
【0487】データキャッシュ230は、前述したダイ
レクトマップキャッシュを具備する。データキャッシュ
制御部240は、各キャッシュラインにおけるタグエン
トリを有するタグメモリ1872を具備しており、タグ
エントリはキャッシュラインが現在マップされている外
部メモリアドレスの最上位部を有する。また、現在のキ
ャッシュラインが有効であるかどうかを示すライン有効
状態メモリ1873も備える。全てのキャッシュライン
の初期状態は無効である。
【0488】データキャッシュ制御部240は、オペラ
ンドオーガナイザC247(図2)とオペランドオーガ
ナイザC248(図2)からのデータ要求をオペランド
バスインターフェースを通じて同時にサービスできる。
動作において、オペランドオーガナイザ247、248
(図2)のどちらかの一方もしくは両方はインデックス
1874を提供し、データ要求信号1876を出す。ア
ドレス生成部1881はインデックス1874に対して
1つもしくはそれ以上の完全な外部アドレス1877を
生成する。キャッシュ制御部1878は、生成されたア
ドレス1877のタグアドレスに対するタグメモリ18
72を検査するとともに、関連するキャッシュラインが
有効であるかどうかを調べるためにライン有効状態メモ
リ1873を検査することにより、要求されたデータが
キャッシュ230に存在するかどうかを判断する。要求
されたデータがキャッシュメモリ230に存在すると
き、要求データ1880と共に、アクノレッジメント
(応答)信号1879が関連するオペレーションオーガ
ナイザ247、248に送られる。要求されたデータが
キャッシュメモリ230に存在しないとき、入力バスイ
ンターフェース1871と入力インターフェーススイッ
チ252(図2)を通じて、要求されたデータ1870
が外部メモリからフェッチされる。データ1870は要
求信号1882を出力し、要求されたデータ1870が
生成されたアドレス1877を提供することによってフ
ェッチされる。アクノリッジ信号1883及び要求され
たデータ1870はそれぞれキャッシュ制御部1878
及びキャッシュメモリ230に送られる。それから、そ
のキャッシュメモリ230に関連するキャッシュライン
が新しいデータ1870によって更新される。新しいキ
ャッシュラインのタグアドレスもタグメモリ1872に
書き込まれ、新しいキャッシュラインにおけるライン有
効状態1873が起動される。アクノリッジ信号187
9はデータ1870とともに関連するオペランドオーガ
ナイザ247又は248(図2)に送られる。
【0489】図142において、データキャッシュ23
0のメモリ構成を示す。データキャッシュ230は、キ
ャッシュライン長が32である128個のキャッシュラ
インC0,...,C127をもつダイレクトマップキ
ャッシュとして整理される。キャッシュRAMは別々の
アドレス指定のできるメモリバンクB0,...,B7
を具備しており、各メモリバンクは32ビットのバンク
ライン128個のを持ち、各キャッシュラインCiは8
つのメモリバンクB0,...B7において相当する8
つのバンクラインB0i,...,B7iを有する。
【0490】生成された外部メモリアドレスの構成を図
143に示す。生成されたアドレスは20ビットタグア
ドレス、7ビットラインアドレス、3ビットバンクアド
レス、2ビットバイトアドレスからなる32ビットのワ
ードである。20ビットタグアドレスはタグアドレスと
タグメモリ1872に記憶されているタグと比較するの
に使われる。7ビットラインアドレスはキャッシュメモ
リ1870にある関連するキャッシュラインのアドレス
に使われる。3ビットバンクアドレスはキャッシュメモ
リ1870のメ関連するモリバンクのアドレスに使われ
る。2ビットバイトアドレスは32ビットバンクライン
の関連するバイトのアドレスに使われる。
【0491】図144は、データキャッシュ制御部24
0とデータキャッシュ230の構造のブロック図を示
す。ここで、128×256ビットRAMはキャッシュ
メモリ230を構成し、これは8つの128×32ビッ
トの分離住所付けが可能なメモリバンクからなる。この
RAMは書き込み可能ポート(write)、書き込み
アドレスポート(write_addr)、書き込みデ
ータポート(write_data)を持つ。また、読
み可能ポート(read)、8つの読みアドレスポート
(read_addr)、8つの読みデータ出力ポート
(read_data)を持つ。キャッシュメモリ23
0の全てのメモリバンクへの同時書き込みを可能にさせ
るためキャッシュ制御ブロック1878から書き込み可
能信号が生成される。必要によって、データキャッシュ
230は書き込みデータポート(write_dat
a)を通じて外部メモリからの1もしくはそれ以上のラ
インのデータに更新される。書き込みアドレスポート
(write_addr)にラインアドレスを提供し、
8:1多重化器MUXを利用することによって1ライン
のデータが書き込まれる。8:1多重化器MUXはデー
タキャッシュ制御部(addr_select)の制御
の下で生成された外部アドレスからラインアドレスを選
択する。キャッシュメモリ230の全てのメモリバンク
への同時読み込みを可能にさせるため、キャッシュ制御
ブロック1878から読み可能信号が生成される。この
方法で、キャッシュメモリ230のメモリバンクの8つ
の書きアドレスポート(read_addr)に提供さ
れる各々のラインアドレスに応じて、8つの読みデータ
ポート(read_data)から8つの異なるバンク
ラインのデータを同時に読み込むことができる。
【0492】各々のキャッシュメモリ230のバンクは
プログラム可能アドレス生成器1881を持っている。
これは違う8つの位置への、関連する8つのメモリバン
クからの同時アクセスを可能にする。各々のアドレス生
成器1881はアドレス生成器1881の作動モード設
定のためのdccモード入力、インデックスパケット入
力、ベースアドレス入力、アドレス出力を持つ。プログ
ラム可能アドレス生成器1881の作動モードは、 (a)dccモード入力への信号が各々のアドレス生成
器1881をランダムアクセスモードにし、外部メモリ
アドレスがインデックスパケット入力へ提供され、一つ
もしくはそれ以上のアドレス生成器1881のアドレス
出力に出力されるランダムアクセスモード; (b)dccモード入力への信号が各々のアドレス生成
器1881を適切なモードにするJPEGエンコーディ
ングと復号、色空間変換、行列乗算モード。このモード
では、各々のアドレス生成器1881にはインデックス
パケット入力へのインデックスが入力され、インデック
スアドレスを生成する。作動モードによって、アドレス
生成部は最大8つの異なる外部メモリアドレスを生成さ
せることができる。
【0493】8つのアドレス生成部1881は8つの異
なる論理回路からなっており、各々は入力としてベース
アドレス、出力として外部メモリアドレスを持つdcc
モードとインデックスからなる。ベースアドレスレジス
タ1885はインデックスパケットの組合せである現在
のベースアドレスを記憶し、dccモードレジスタ18
88はデータキャッシュ制御部240の現在の作動モー
ド(dccモード)を記憶する。
【0494】タグメモリ1872は1ブロック、128
×20ビットのマルチポートRAMで構成される。この
RAMは1つの書きポート(update−line−
addr)、1つの書き可能ポート(write)、8
つの読みポート(tag0_data,...,tag
7_data)を持っている。これは、8つのアドレス
生成器1881が現在記憶されている、1つもしくはそ
れ以上に生成されたメモリアドレスの、ラインのタグア
ドレスを決定することによりポート(read0lin
e−addr,...,read7line−add
r)において8つの同時のルックアップを可能にする。
これらラインの現在のタグアドレスはポート(tag0
−data,...,tag7−data)からタグ比
較部1886に出力される。ポート(update−l
ine−addr)のタグメモリ1872への書き込み
を可能にするため、必要によって、キャッシュ制御ブロ
ック1872によりタグ書き信号は生成される。
【0495】128ビットのラインvalidメモリ1
873は、キャッシュメモリ230の各キャッシュライ
ンのvalid状態を保っている。これは1つの書きポ
ート(update−line−addr)、1つの書
き可能ポート(update)、8つの読み込みポート
(read0line−addr,...,read7
line−addr)、8つの読み可能ポート(lin
evalid0,...,linevalid7)から
なる128×1ビットのメモリである。タグメモリと同
じように、これは8つのアドレス生成部1881に、1
つ若しくはそれ以上に生成されたメモリアドレスの個々
のラインアドレスに対して、現在のラインにセーブされ
ているラインvalid状態を決定させることにより、
ポート(read0line−addr,...,re
ad7line−addr)に対しての8つの同時ルッ
クアップを可能にする。このラインの現ラインvali
deビットはポート(linevalid0,...,
linevalid7)からタグ比較部1886に出力
される。必要によっては、ラインvalid状態メモリ
1873の書きポートに、ポート(update−li
ne−addr)からラインvalid状態メモリ18
73への書き込みを可能にするための書き信号がキャッ
シュ制御ブロック1878から生成する。
【0496】タグ比較部1886は8つのタグ比較器か
らなっており、現在生成された外部アドレスのラインア
ドレスによってアクセスされるラインのタグメモリ18
72に現在セーブされているタグアドレスを受け取るた
めのtag_data入力、現在生成された外部メモリ
アドレスのタグアドレス受け取るためのtag_add
r入力、比較されるタグアドレス部を設定するための現
動作モード信号(dcc_mode)を受け取るための
dcc_input、現在生成された外部アドレスのラ
インアドレスによってアクセスされるラインにあるライ
ンvalid状態メモリ1873に現在セーブされてい
るラインvalid状態を受け取るためのline_v
alid入力を持っている。比較部1886は8つのア
ドレス生成部1881それぞれに対して8つのhit出
力を持つ。生成された外部メモリアドレスのタグアドレ
スと、生成された外部メモリのラインアドレスによって
アクセスされる位置にあるタグメモリ1872の内容と
が一致する時、hit信号とそのラインへのラインva
lid状態ビット1873が出力される。この実施例で
は、外部メモリにセーブされているデータ構造は小さく
なり、タグアドレスの最上位ビットが全て同じである。
従って、タグアドレスの変化する最下位ビットだけを比
較すれば良い。これはタグ比較部1866がタグアドレ
スの変化する最下位ビットを比較するよう現作動モード
信号(dcc_mode)を設定することで可能にな
る。
【0497】キャッシュ制御部1878はキャッシュメ
モリ230にあるデータへのアクセスが可能なとき、オ
ペランドB247、オペランドC248からの要求(p
roc_req)と通知(proc_ack)を受け取
る。動作モードによっては、キャッシュメモリ230の
8つまでのバンクから異なるアドレスのデータが要求さ
れる。要求データがキャッシュメモリ230からアクセ
スできる時、タグ比較部1886からそのメモリのライ
ンにヒットを出す。出されたヒット信号(hit
0,...,hit7)に対して、キャッシュ制御部1
878はポート(cache_read)に読み込み可
能信号を生成し、ヒット信号が出されたキャッシュライ
ンへの読み込みを可能にする。ヒット信号(hit
0,...,hit7)ではなく要求(proc_re
q)1876が出された時には、生成された要求(ex
t_req)と供にデータのキャッシュラインの外部メ
モリアドレスが外部メモリに送られる。このキャッシュ
ラインは入力(ext_data)が可能な時、それを
通じてキャッシュメモリ230の8つのバンクに書き込
まれる。この場合、タグ情報もラインアドレスのタグメ
モリ1886に書き込まれ、そのラインのライン状態ビ
ット1873が出力される。
【0498】キャッシュメモリ230の8つのバンクか
らのデータは、データオーガナイザ1892にあるいく
つかの多重化器を通じて出力され、所定の方法で出力デ
ータパケット1894に位置付けられる。ある動作モー
ドでデータオーガナイザ1892は、現動作モード信号
(dcc_mode)と生成された外部メモリアドレス
のバイトアドレス(byte_addr)を用いる事に
よって、8つのメモリバンクから出力された8つの32
ビットワードから8ビットワードを選択、出力すること
ができる。他のモードでデータオーガナイザ1892
は、8つのメモリバンクから出力された8つの32ビッ
トワードを直接出力する。前述した通り、データオーガ
ナイザはこのデータを決められた方式に整列し出力す
る。
【0499】要求は次の段階で行われる。 1)プロセッシングユニットはキャッシュ制御部187
8にあるプロセッシングユニットインターフェースにア
ドレスを送りパケットデータを要求する。 2)8つのアドレス生成ユニット1881は動作モード
に従い、キャッシュメモリの各ブロックのアドレスを生
成する。
【0500】3)生成されたアドレスのタグ位置は3ポ
ートのタグメモリ1886の4ブロックにセーブされて
いるタグアドレスと比較され、8つの生成されたアドレ
スに相当するライン部によって位置づけられる。 4)それらが一致し、そのラインのラインvalid状
態1873が出されたら、要求されたデータはキャッシ
ュメモリ230に存在するとみなされる。
【0501】5)存在しないデータは外部バス1890
を介してフェッチされ、キャッシュメモリ230の8つ
のブロックはその外部メモリからのデータラインの内容
に更新される。新しいデータのタグアドレスはタグメモ
リ1886に書き込まれ、そのラインのラインvali
d状態1873が出される。 6)全ての要求データがキャッシュメモリ230に存在
すれば、それは決められたパケット形式でプロセッシン
グユニットに現れる。
【0502】前述した通り、コプロセッサ224の全て
の部分(図2)は標準CBusインターフェース303
(図20)を含めている。データキャッシュ制御部24
0とキャッシュ230の標準CBusインターフェース
レジスタの詳細は、付録BのB42からB46までに記
載されている。このレジスタの設定はデータ制御部24
0の作動を制御する。簡単のため、2つのレジスタ(b
ase_addressとbcc_mode)だけを図
153に示す。
【0503】データキャッシュ制御部240とデータキ
ャッシュ230が有効ならば、データキャッシュ制御部
は最初全てのキャッシュラインを無効にして標準モード
で動作する。ある命令の終わりには、データキャッシュ
制御部240とキャッシュ230はいつも標準動作モー
ドに切り替わる。”Invalidate”モードを除
いた全てのモードには”Auto−fill and
validate”と言うオプションがある。dcc_
cfg2レジスタに1ビットをセットすることにより、
全てのキャッシュをbase_addressレジスタ
にセーブされているアドレスから始めることができる。
この動作の間、オペランドオーガナイザB、C247,
248からのデータ要求は中止される。キャッシュはこ
の動作が終わった後に有効になる。 a.標準キャッシュモード このモードでは、2つのオペランドオーガナイザにより
要求データの外部メモリアドレスが提供される。アドレ
ス生成部1881が外部メモリアドレスを出力し、内部
タグメモリを用いてそれがメモリキャッシュ230に存
在するのかを確かめる。両方の要求データがキャッシュ
230に存在しない場合、入力インターフェーススイッ
チ252からデータが要求される。持続的かつ同時的要
求に構えてラウンド・ロビンスケジューリングが採用さ
れる。
【0504】同時的な要求に対し、1つのデータアイテ
ムがキャッシュに存在すれば、それは要求したデータバ
スの後ろの32ビットに位置するようになる。他のデー
タは入力インターフェーススイッチを通じて外部に要求
される。 b.シングル出力一般色空間変換モード このモードでは、要求はオペランドオーガナイザ部Bか
ら12ビットバイトのアドレス形式で出される。図60
に示されている様に、要求データアイテムは8ビットカ
ラー出力値である。12ビットアドレスはアドレス生成
部1881のindex_packet入力に入力さ
れ、8つのアドレス生成部1881は図96に示される
形式の32ビット外部メモリアドレスを生成する。この
生成されたアドレスのバンク、ライン、バイトアドレス
は表12と図61によって決められる。外部メモリアド
レスは、8つの9ビットラインとバイトアドレスとして
解釈され、それはRAMの8つのバンクのバイトを指す
ために使われる。キャッシュは補間のため主データパス
242によりオペランドオーガナイザ部に、図60に示
された前述の原理で戻されたバンクの8バイト値を求め
るためにアクセスされる。全てのシングル出力一般カラ
ー値テーブルはキャッシュメモリ230に収まるため、
シングルカラー変換モードを適用する前にシングル出力
カラー値テーブルをキャッシュメモリ230にロードす
るのが望ましい。 c.マルチ出力一般色空間変換モード このモードでは、12ビットワードアドレスがオペラン
ドオーガナイザ部B247から受けられる。要求データ
アイテムは図62を参照して前述した32ビットカラー
出力値である。12ビットアドレスはアドレス生成部1
881のindex_packet入力に入力され、8
つのアドレス生成部1881は、図96に示される形式
の8つの異なる32ビット外部メモリアドレスを作る。
外部メモリアドレスのラインとタグアドレスは、表12
と図63によって決定される。外部メモリアドレスは、
図63を参照して前述したように、7ビットラインアド
レスと2ビットタグアドレスに分けられる9ビットアド
レスを有する8個の9ビットアドレスとして解釈され
る。タグアドレスが発見されなかった場合、入力インタ
ーフェーススイッチ252(図2)から適切なデータが
ロードされるまでキャッシュは停止する。データが利用
可能な場合、出力データはオペランドオーガナイザ部に
出力される。 d.JPEG符号化モード このモードでは、JPEG符号化モードに必要なテーブ
ルなどがキャッシュRAMのバンクにセーブされる。テ
ーブルの記憶についてはJPEG符号化モード(表1
4、16)のところに述べられている。 e.低速JPEG復号モード このモードでは、データは表17に従って生成される。 f.行列乗算モード このモードでは、キャッシュは256バイトラインのデ
ータにアクセスするために使われる。 g.Disabledモード このモードでは、全ての要求は入力インターフェースス
イッチ252にパスされる。 h.Invalidate(無効化)モード このモードでは、ラインvalid状態ビットをクリア
することにより、全てのキャッシュの内容が無効にされ
る。
【0505】3.18.7 入力インターフェーススイ
ッチ 図2で、入力インターフェーススイッチはピクセルオー
ガナイザ部246、データキャッシュ制御部240、命
令制御部235からの要求データを調節する投割を果た
す。またこれは外部インターフェース制御部238とロ
ーカルメモリ制御部236に必要なアドレスとデータを
伝送する。
【0506】入力インターフェーススイッチ252はベ
ースアドレス若しくはホストメモリマップにあるメモリ
オブジェクトのいずれかのレジスタにその設定を保存す
る。20個のアドレスビットが必要なため、これはペー
ジ境界に整列されるバーチュアルアドレスである。ピク
セルオーガナイザ部、データキャッシュ制御部、命令制
御部からの要求に対して、入力インターフェーススイッ
チ252は、まずデータの開始アドレスの上位6ビット
からコプロセッサのベースアドレスビットを減じる。こ
の結果が負であるか、この結果の上位6ビットが0では
ない場合はPCIバスが望ましい伝送先であることを意
味する。
【0507】結果の上位6ビットが0である場合は、デ
ータマップがコプロセッサのメモリ位置を現すことを意
味する。その後、入力インターフェーススイッチはコプ
ロセッサの位置が正しいか否かを判別するため次の3ビ
ットを検査する。コプロセッサの正当な位置は、 1)コプロセッサのベースアドレスからオフセット0x
01000000から始まる一般インターフェースが占
める16メガバイト。
【0508】2)コプロセッサのメモリオブジェクトの
ベースアドレスからオフセット0x02000000か
ら始まるローカルメモリ制御部(LMC)が占める32
メガバイト。 不当なコプロセッサの位置を指す要求は、入力インター
フェーススイッチによりエラーと見なされる。PCIバ
スはコプロセッサのメモリオブジェクトが占める領域以
外のアドレスのデータソースとなる。入力インターフェ
ーススイッチは要求データがPCIバスからのものなの
か、それとも一般インターフェースからのものかをEI
Cに知らせるためiソース信号を用いる。
【0509】アドレス復号処理の後、正当な要求は適切
なIBusインターフェースに伝送される。EICとL
MCはi−ack信号が出された時、入力インターフェ
ーススイッチにデータを伝送する。しかし入力インター
フェーススイッチは入力されるワード数をカウントしな
いので、現在のデータ伝送がいつ終わるのかを、ピクセ
ルオーガナイザ部により制御されるi−oe信号、命令
制御部、データキャッシュ制御部が監視すなければなら
ない。
【0510】入力インターフェーススイッチ252はピ
クセルオーガナイザ部、データキャッシュ制御部、命令
制御部の3つのモジュールを調節する。これらはデータ
を同時に要求することができるが、物理的な資源は2つ
しかないため、その要求は直に処理されない。入力イン
ターフェーススイッチに使われる調節技術は優先権をベ
ースにし、またプログラムも可能である。入力インター
フェーススイッチの設定レジスタにある制御ビットは、
命令制御部、データキャッシュ制御部、ピクセルオーガ
ナイザ部の相対的優先権を指定する。優先権が低いモジ
ュールからの要求は、その他の2つのモジュールからの
同じ資源へのアクセス要求がない場合に受け入れられ
る。少なくとも2つの要求発行元に同じ優先順位が与え
られると、要求が受付けられる発行元を決定するために
ラウンドロビン技術を用いる必要が生じる。
【0511】1つのソースに直ちにアクセスするのが不
可能であるため、入力インターフェーススイッチは要求
されたデータのアドレスとバースト長を記憶し、要求元
から提供されたデータをプリフェッチするかどうかをみ
る必要がある。あるソースに対する処理の中で、IBu
s処理がない場合には優先権を決める調整処理が必要に
なる。
【0512】図145に命令インターフェーススイッチ
252の詳細を示す。スイッチ252は標準CBusイ
ンターフェースとレジスタファイル860以外にアドレ
ス復号器863と調節部864の間に2つのIBusト
ランシーバ661を持つ。アドレス復号器863はピク
セルオーガナイザ部、データキャッシュ制御部、命令制
御部から受けた要求に対するアドレス復号をする。アド
レス復号器863は、アドレスが正当なのかを検査する
他、必要によってアドレスを再マッピングする。調節部
864はどの要求をIBusトランシーバ661からI
Busトランシーバ662に伝送するのかを決める。優
先権はプログラム可能である。
【0513】IBusトランシーバ861、862は、
マルチプレクシングとデマルチプレクシング機能と、他
のインターフェースから入力インターフェーススイッチ
への通信を可能にするためのトライステートのバッファ
ーリング機能を有している。 3.18.8 ローカルメモリ制御部 図2において、ローカルメモリ制御部236は、ローカ
ルメモリの制御及びローカルメモリとコプロセッサ内の
モジュールとの間におけるアクセス要求の処理の全てを
担当する。ローカルメモリ制御部236は、結果オーガ
ナイザ249からの書き込み要求と入力インターフェー
ススイッチ252からの読み出し要求に応答する。更
に、周辺インターフェース制御部237と通常の一般C
Bus入力からの読み出しと書き込み要求に対しても応
答する。ローカルメモリ制御部はプログラム可能なプラ
イオリティシステムを用いており、更にスループットを
最大化するためにFIFOバッファを採用している。
【0514】本発明においては、ファーストイン・ファ
ーストアウト(FIFO)バッファの他に、メモリアレ
イからポートをデカップルするためにマルチポートバー
ストダイナミックメモリ制御部が用いられている。図1
46は、本発明の第1の実施例に従い、4ポートバース
トダイナミックメモリ制御部のブロック図を示してい
る。この回路には、メモリアレイ1910へのアクセス
を必要とする2つの書き込みポート(A1944とB1
946)と2つの読み出しポート(C1948とD19
50)が含まれている。読み出しポート1948、19
50のデータパスは別個のFIFO1936、1938
経由でメモリアレイ1910から出てくるのに対し、2
つの書き込みポートからのデータパスは別個のFIFO
1920、1922を通り、多重化部1912経由でメ
モリアレイ1910に向かう。中央制御部1932は、
ダイナミックメモリ1910へのインターフェースに必
要な全てのコントロール信号を駆動すると共に全体のポ
ートアクセスを調整する。リフレッシュカウンタ193
4は、メモリアレイ1910のためにダイナミックメモ
リのリフレッシュサイクルの必要時期を決め、制御部1
932と共にこれらを調整する。
【0515】好ましくは、メモリアレイ1910に対す
るデータの読み出しと書き込みは、書き込みポート19
44、1946からFIFO1920、1922へ、或
はFIFO1936、1938から読み出しポート19
48、1950への転送の2倍のレートで行われる。こ
の結果、書き込みと読み出しポート1944、194
6、1948、1950を通してデータを転送するのに
要する時間に対し、メモリアレイ1910からの転送、
又はメモリアレイ1910への転送に要する時間(いか
なるメモリシステムのボトルネックである)を可能な限
り短くするのである。
【0516】データは、書き込みポート1944、19
46のいずれかを経由してメモリアレイ1910に書き
込まれる。書き込みポート1944、1946に接続さ
れた回路は、初期値ゼロのFIFO1920、1922
のみを認知する事になる。書き込みポート1944、1
946を通してのデータ転送は、FIFO1920、1
922が一杯になるか、又はバーストが終了するまでス
ムーズに進んでいく。データが最初にFIFO192
0、1922に書き込まれると、制御部1932はDR
AMへのアクセスのための他のポートとの仲裁を行う。
アクセスが得られると、データは最高レートでFIFO
1920、1922から読み出され、メモリアレイ19
10に書き込まれる。DRAM1910へのバースト書
き込みサイクルは、FIFO1920、1922にプリ
セットされた数のデータワードが貯えられた場合、又は
書き込みポートからのバーストが終了した場合のみに開
始される。いずれの場合においても、DRAM1910
へのバーストは許可された時点から進み、FIFO19
20、1922が空になるか、又はより高いプライオリ
ティポートからのサイクル要求があるまで続く。いずれ
のイベントにおいてもデータは、FIFOが充満する
か、又は現在のバーストが終了し、新たなバーストが開
始するまで、書き込みポートからFIFO1920、1
922へ邪魔されなく続けて書き込まれる。後者の場
合、新しいバーストは、以前のバーストがFIFO19
20、1922を空にしてDRAM1910に書き込ま
れるまでは進行されない。前者の場合には、最初のワー
ドがFIFO1920、1922から読み出されてDR
AM1910に書き込まれるや否やデータ転送が再開さ
れる。FIFO1920、1922からのデータ転送が
最高レートであるため、書き込みポート1944、19
46がストールするのは、制御部1832が他のポート
からのサイクル要求で割り込みされた時のみ可能であ
る。書き込みポート1944、1946からFIFO1
920、1922へのデータ転送に対するいかなる割り
込みも、できるだけ最小に維持するのが望ましい。
【0517】読み出しポート1948、1950は逆の
順で動作する。読み出しポート1948、1950が読
み出し要求を出すと、即刻、DRAMサイクルが要求さ
れる。この要求に対する許可が得られるとメモリアレイ
1910が読まれ、対応するFIFO1936、193
8にデータが書き込まれる。最初のデータワードがFI
FO1936、1938に書き込まれるやいなや、読み
出しポート1948、1950による読み出しが可能に
なる。このように最初のデータワードを得るには初期遅
延が存在するが、その後の連続するデータワードの獲得
にはおそらくそれ以上の遅延は出て来ないのである。D
RAMの読み出しは、より高いプライオリティのDRA
M要求があるか、読み出しFIFO1936、1938
が一杯になった場合、或は読み出しポート1948、1
950がそれ以上データを要求しなくなったら終了す
る。一旦このようにして読み出しが終了すると、FIF
O1936、1938へプリセットされているデータワ
ードの数に余裕ができるまで再開されない。一旦読み出
しポートがサイクルを終了すると、FIFO1936、
1938に残っているいかなるデータも廃棄される。
【0518】常にDRAMコントロールが最小値を上回
るようにするため、プリセットされている数のデータワ
ードが全て転送されるまで(或は、対応するFIFO1
920、1922が空になるか、読み出しFIFO19
36、1938が一杯になるまで)バーストが割り込み
されないようにDRAMアクセスへの再仲裁は制限され
る。全てのアクセスポート1944、1946、194
8、1950はそれぞれに対応するバースト開始アドレ
スを持っており、これらはバーストの開始時にカウンタ
1942にラッチされている。このカウンタはポートに
対する取り引きのためのカレントアドレスを保持してお
り、例え転送が割り込みされても、いつでも正しいメモ
リアドレスで再開する事が可能である。現在アクティヴ
なDRAMサイクルのアドレスのみが多重化部1940
により選択され、行アドレスカウンタ1916と列アド
レスカウンタ1918に送られる。アドレスの低次Nビ
ットは列カウンタ1918に入力され、一方の上位アド
レスビットは行カウンタ1916へ入力される。多重化
部1914は、DRAMの行アドレスタイムの間には行
カウンタ1916からメモリアレイ1910へ行アドレ
スを出力し、DRAMの列アドレスタイムの間には列カ
ウンタ1918から列アドレスを送る。行アドレスカウ
ンタ1916と列アドレスカウンタ1918は、いかな
るバーストの開始時においてもメモリアレイDRAM1
910へロードされる。これは、ポートサイクルの開始
時と、割り込みされたバーストの継続時の両方に当ては
まる事実である。列アドレスカウンタ1918は、それ
ぞれのメモリへの転送が起きた後にインクリメントさ
れ、行アドレスカウンタ1916は列アドレスカウンタ
1918がゼロに変わるとインクリメントされる。後者
の場合にはバーストが終了され、新たな行アドレスで再
開されなければならない。
【0519】本実施例では、メモリアレイ1910は4
×8ビットバイトラインを含んでおり、ワード当たり3
2ビットを構成すると仮定している。更に、それぞれの
書き込みポート1944、1946に対応する4バイト
の書き込みイネーブル信号のセット1950、1952
があり、個別的にデータがメモリアレイ1910内のそ
れぞれの32ビットデータワードのそれぞれの8ビット
部分に書き込まれるようにする。メモリアレイ1910
に書き込まれるそれぞれのワード内のいかなるバイトに
データの書き込みに対するマスクを任意にかける事が可
能であるため、対応するFIFO1926、1928に
それぞれのデータワードと共に書き込みイネーブル情報
を貯えておく必要がある。これらのFIFO1926、
1928は書き込みFIFO1920、1922のコン
トロールに用いられるのと同じ信号でコントロールされ
るが、FIFO1920、1922へのデータの書き込
みに必要とされる32ビットの代わりに4ビットのみが
用いられる。同様に、多重化部1930は多重化部19
12と同じようにコントロールされる。選択された書き
込みイネーブルは、制御部1932へ入力され、制御部
はこれらの情報を用い、多重化部1912によりメモリ
アレイ1910へ入力される書き込みデータと同期して
メモリアレイ1910内のアドレスされたワードへの書
き込みを選択的に可能又は不可能にする。
【0520】図146の構成は制御部1932の制御下
で動作する。図147は、図146において制御部19
32の動作の詳細を示す状態図である。パワーアップの
後とリセットの完了時に、状態器は強制的にIDLE1
00状態になり、この状態ですべてのDRAMコントロ
ール信号がインアクティブ(high)になり、多重化
部1914は行アドレスをDRAMアレイ1910へ送
る。リフレッシュまたはサイクル要求が検出されると、
RASDEL11962状態へ遷移される。次のクロッ
クエッジでサイクル要求とリフレッシュがなくなった
ら、状態器はIDLE1900状態に戻る。そうでない
と、DRAM tRP(RASプリチャージタイミング
制限)周期が満たされた時にRASON1966状態へ
遷移され、この時、行アドレスストローブ信号RASは
ローレベルになる。tRCD(RASからCASへの遅
延タイミング制限)が満たされた後、COL1968状
態へ遷移され、DRAMアレイ1910へ入力するため
の列アドレスを選択するように多重化部1914がスイ
ッチされる。次のクロックエッジでCASON1970
状態に遷移され、DRAM列アドレスストローブ(CA
S)信号がアクティブローになる。一旦、tCAS(C
ASアクティヴタイミング制限)が満たされたら、CA
SOFF1972状態へ遷移され、この状態でDRAM
列アドレスストローブ(CAS)は再びインアクティヴ
ハイになる。ここで、更なるデータワードが転送される
ことになっていると共に、より高いプライオリティのサ
イクル要求や、リフレッシュが差し迫ってないか、或は
再仲裁するには速すぎる場合、それから一旦tCP(C
ASプリチャージタイミング制限)周期が満たされたら
CASON1970状態へ復帰し、DRAM列アドレス
ストローブ(CAS)は再びアクティヴローになる。も
し更なるデータワードの転送がない、或は再仲裁が発生
し、より高いプライオリティのサイクル要求や、リフレ
ッシュが差し迫っている場合、tRAS(RASアクテ
ィヴタイミング制限)とtCP(CASプリチャージタ
イミング制限)が両方満たされたら、その代わりにRA
SOFF1974状態へ遷移される。この状態で、DR
AM行アドレスストローブ(RAS)信号はインアクテ
ィヴハイになる。次のクロックエッジで状態器はIDL
E1860状態に復帰し、次のサイクル開始を準備す
る。
【0521】RASDEL2 1964状態でリフレッ
シュ要求が検出されると、一旦tRP(RASプリチャ
ージタイミング制限)が満たされたら、RCASON
1980状態に遷移される。この状態でDRAM列アド
レスストローブがアクティヴローになり、RASリフレ
ッシュサイクルの前にDRAM CASを開始する。次
のクロックエッジで遷移はRRASON 1978へ行
われ、DRAM行アドレスストローブ(RAS)はアク
ティヴローになる。tCAS(CASアクティヴタイミ
ング制限)が満たされると遷移はRCASOFF 19
76へ行われ、DRAM列アドレスストローブ(CA
S)はインアクティヴハイになる。一旦tRAS(RA
Sアクティヴタイミング制限)が満たされると遷移はR
ASOFF1974へ行われ、DRAM行アドレススト
ローブ(RAS)はインアクティヴハイになり、有効的
にリフレッシュサイクルを終了させる。状態器は通常の
DRAMサイクルのために上記のような振る舞いを継続
し、IDLE 1960状態へ遷移する。
【0522】図146のリフレッシュカウンタ1934
は単純にカウンタであり、15マイクロ秒当たりに一回
の固定レート、或は特殊DRAM業者の要求により定ま
ったレートでリフレッシュ要求信号を発生させる。リフ
レッシュ要求が発行されると、この要求は図147の状
態器により認知されるまで発行状態を続ける。このアク
ノレッジメントは、状態器がRCASON1980状態
に入った時に行われ、状態器がリフレッシュ要求の撤去
を検出するまでその状態を続ける。
【0523】図148には、疑似コードフォームで図1
46の仲裁器1924の動作が示されている。ここで
は、4つのサイクル要求発行者の中でどれにメモリアレ
イ1910へのアクセスを許可するかを決める方法と、
アクセスへの公平さを保つためにサイクル要求者のプラ
イオリティを修正するメカニズムを記述している。これ
らのコードに用いられたシンボルは図149に説明され
ている。
【0524】それぞれの要求発行者は、その要求のプラ
イオリティを表す4ビットを持っている。上位の2ビッ
トは一般の構成レジスタに設定されている構成値により
全般的なプライオリティにプリセットされている。プラ
イオリティの下位2ビットは仲裁者24により更新され
る2ビットカウンタに収められている。仲裁の勝者を決
める際に、仲裁者1924は単にそれぞれの要求者の4
ビットの値を比較し、最高値の要求者にアクセスを許可
する。要求者にサイクルが許可されると、下位2ビット
のプライオリティカウンタの値はゼロになり、同一の上
位2ビットのプライオリティ値と勝者より低い下位2ビ
ットのプライオリティ値を持つ他の要求者の下位2ビッ
トのプライオリティカウントは全て1ずつインクリメン
トされる。この結果、今メモリアレイ1910へのアク
セスを許可された要求者は同一の上位2ビットプライオ
リティ値を持つ要求者の間で最も低いプライオリティに
なる。上位2ビットのプライオリティ値が勝者とは違っ
た値を持つ要求者の下位2ビットのプライオリティ値は
影響されない。プライオリティの上位2ビットの値は要
求者の全般的なプライオリティを決め、下位2ビットの
値は同一の上位プライオリティの要求者の間で公平な仲
裁スキームを実現している。このスキームを用いること
により、ハードウェアで結線された固定プライオリティ
(それぞれの要求者の上位2ビットがユニーク)から部
分的な入れ替えと、部分ハードウェア結線(全てではな
いが、一部の上位2ビットプライオリティが他のと異な
る)、厳密に公平な入れ替え(全ての上位2ビットのプ
ライオリティ値が同一)までのいろいろな仲裁スキーム
が実現できる。
【0525】図149は、それぞれの要求者に対するプ
ライオリティビットの構造とそのビットの利用法を示し
ている。ここでは、図148に用いられているシンボル
の意味も定義されている。上記の実施例で各種のFIF
O1920、1922、1938、それから1936は
幅32ビット、深さ32ワードである。この深さは効率
と消費される回路エリアの間の良い線での妥協を与えて
いる。しかし、深さの値は、パフォーマンスの変化と共
に特定のアプリケーションのニーズに合わせて変えられ
る。
【0526】また、ここに示されている4ポート構成は
単に一つの実施例である。メモリアレイと読み出しまた
は書き込みポートのいずれかとの間に単一のFIFOバ
ッファを用意するだけでも効果は得られる。しかし、多
数の読み出しと書き込みポートを用いると最高のスピー
ド向上が得られることになる。 3.18.9 他モジュール 他モジュール239は、コプロセッサ224の動作、リ
セット同期、内部診断信号を必要に応じて外部ピンにま
わすことによるエラーと割り込み信号のマルチプレクシ
ング、CBusの内部と外部フォームとの間のインタフ
ェーシングや内部と一般Bus信号の一般/外部Cbu
s出力ピンへのマルチプレクシングなどのためのクロッ
クの発生と選択を行う。勿論他モジュール239の動作
は、用いられるASICテクノロジによるクロッキング
への要求と具現詳細により異なる。
【0527】3.18.10 外部インターフェース制
御部 次に記述される本発明の特徴は、仮想メモリを共有する
コプロセッサを有するホストコンピュータで仮想メモリ
を提供するための方法と装置に関連している。本発明の
実施例は、コプロセッサがホストプロセッサと連動し仮
想メモリモードで動作可能になるよう模索している。
【0528】特に、コプロセッサはホストプロセッサの
仮想メモリモードで動作することが可能である。コプロ
セッサには、ホストプロセッサの仮想メモリテーブルを
参照することができる仮想メモリ対物理メモリマッピン
グデバイスが含まれており、コプロセッサにより生成さ
れた命令アドレスをホストプロセッサのメモリ内の対応
する物理アドレスにマッピングする。むしろ、仮想メモ
リ対物理メモリマッピングデバイスは、グラフィックイ
メージを生成するためにコンピュータグラフィックコプ
ロセッサの一部を形成する。コプロセッサには、イメー
ジに種々の複雑な動作を行える多数のモジュールが含ま
れる。マッピングデバイスはコプロセッサとホストプロ
セッサとの間の相互作用に関与するのである。
【0529】外部インターフェース制御部(EIC)2
38は、コプロセッサのPCI Busと一般Busへ
のインターフェースを提供する。更に外部インターフェ
ース制御部は、コプロセッサの内部仮想アドレス空間と
ホストシステムの物理アドレス空間との間をつなぐメモ
リマネジメントも提供する。外部インターフェース制御
部238は、入力インターフェーススイッチ252から
の要求に応じてホストメモリからデータを読み出す時
や、結果オーガナイザ249からの要求に応じてホスト
メモリにデータを書き込む時にPCI Bus上のマス
タとして作動する。PCI Busへのアクセスは、
“PCI Local Bus Specificat
ion,draft 2.1”PCI special
interest group,1994の標準に従
って具現する。
【0530】外部インターフェース制御部238は、入
力インターフェーススイッチ252と結果オーガナイザ
249からのPCI取り引きのための同時要求を仲裁す
る。仲裁は構成可能であるのが望ましい。受け取った要
求のタイプには、一度にホストコプロセッサの1行以下
のキャッシュライン読み出しや、ホストの1行と2行の
間のキャッシュラインの読み出しと、2行又はそれ以上
のキャッシュラインの読み出しが含まれる。長さ無制限
の書き込みも外部インターフェース制御部238により
具現される。更に外部インターフェース制御部238
は、随意にデータのプリフェッチングも行う。
【0531】外部インターフェース制御部238の構築
には、全てのコプロセッサの内部モジュールのために仮
想メモリからホストの物理メモリへのアドレスマッピン
グを提供するメモリマネジメントが含まれる。このマッ
ピングは、アクセスを要求するモジュールに対し完全に
透明である。外部インターフェース制御部238がホス
トメモリへのアクセス要求を受け取ると、メモリマネジ
メントユニットを初期化して、その要求されたアドレス
を変換する。メモリマネジメントユニットがアドレスの
変換に失敗すると、場合によっては一つまたはそれ以上
のPCI Busの取り引きがアドレスの変換を完了す
る結果になる。これは、メモリマネジメントユニット自
身がPCI Busへ取り引きを要求するもう一つのソ
ースになれることを意味する。入力インターフェースス
イッチ252や結果オーガナイザ249から要求された
バーストが仮想ページの境界を越えると、外部インター
フェース制御部238は自動的にメモリマネジメントユ
ニットを作動し、全ての仮想アドレスのマッピングを正
しくやり直す。
【0532】メモリマネジメントユニット(MMU)
(図150の915)は、16個のルックアサイドバッ
ファ(TLB)が基本になっている。TLBは仮想対物
理アドレスマッピングのキャッシュとして作動する。T
LBでは次のような作業が可能である。 1)比較:仮想アドレスが与えられると、TLBは対応
する物理アドレスかTLBミス信号(アドレスにマッチ
する有効なエントリがない場合)のいずれかを返す。
【0533】2)置換:TLBには、既存エントリや有
効でないエントリの代わりに新しい仮想対物理マッピン
グが書き込まれる。 3)無効化:仮想アドレスが与えられた時、TLBのエ
ントリにマッチするとマッチしたエントリを無効化す
る。 4)全無効化:すべてのTLBエントリを無効化する。
【0534】5)読み出し:TLBエントリの仮想や物
理アドレスは、4ビットアドレスベースで読み出され
る。テストのみに用いられる。 6)書き込み:TLBエントリの仮想や物理アドレス
は、4ビットアドレスベースで書き込まれる。 TLB内のエントリは図151に示すようなフォーマッ
トになっている。それぞれの有効なエントリは、20ビ
ットの仮想アドレス670、20ビットの物理アドレス
671、それから対応する物理ページが書き込み可能か
否かを表すフラグで構成される。エントリの許容ページ
サイズは4Kバイトである。MMU内のレジスタは、比
較に用いられた10ビットまでのアドレスにマスクをか
けるのに用いることができる。これによってTLBのペ
ージは4Mバイトまでサポートされる。マスクレジスタ
は1つのみであるため、すべてのTLBエントリは同サ
イズのページを参照する。
【0535】TLBには、“Least−Recent
ly Used”(LRU)置換アルゴリズムが用いら
れている。新しいエントリは最も長い時間が経過したエ
ントリに上書きされる。なぜなら、それは最後に書き込
まれたか、或は比較作業で一致したものだからである。
これは無効なエントリがない場合のみに適用される。無
効なエントリがある場合には、有効なエントリに上書き
する前に無効なエントリに書き込まれる。
【0536】図152はTLB比較操作の流れを示す。
受け取られた仮想アドレス880は881〜883の3
つの部分に分けられる。下位12ビット881は常にペ
ージ内のオフセットの部分であるため、対応する物理ア
ドレスビット885へダイレクトに送られる。次の10
ビット882は、マスクビットにより設定された通り、
ページサイズによってオフセットの部分か、ページ番号
の部分かのいずれかである。マスクレジスタ887内の
ゼロの値は、ビットがページオフセットの部分であるた
めTLB比較に用いてはいけないということを示してい
る。10アドレスビットは10マスクビットとロジカル
に“ANDED”(論理積)され、TLBルックアップ
のために下位10ビットの仮想ページ番号889を与え
る。仮想アドレスの上位10ビット883は、仮想ペー
ジ番号889の上位10ビットとしてダイレクトに用い
られる。
【0537】このように生成された20ビットの仮想ペ
ージ番号はTLBに送られる。これがエントリの1つと
一致すると、TLBは対応する物理ページ番号872と
一致した位置の番号を返す。物理アドレス873は、マ
スクレジスタ887を再び用いて物理ページ番号から生
成される。物理ページ番号872の上位10ビットは物
理アドレス873の上位10ビットとしてダイレクトに
用いられる。物理アドレス872の次の10ビットは、
物理ページ番号(対応するマスクビットが1の場合)か
仮想アドレス(マスクビットが0の場合)かのいずれか
から875に選択される。物理アドレスの下位12ビッ
ト885は仮想アドレスからダイレクトに与えられる。
【0538】最後に、マッチに従いLRUバッファ87
6が更新され、マッチされたアドレスの使用を表す。T
LBミスは、入力インターフェーススイッチ252や結
果オーガナイザ249がTLB872に存在しない仮想
アドレスへのアクセスを要求した時に発生する。この場
合、MMUは要求されたアクセスの処理を進める前に、
ホストメモリ203のページテーブルから要求された仮
想対物理変換をフェッチし、それをTLBに書き込まな
ければならない。
【0539】ページテーブルはホストメインメモリのハ
ッシュテーブルである。それぞれのページテーブルエン
トリは、図153に示すようなフォーマットの2つの3
2ビットワードで構成されている。2番目のワードは物
理アドレスのための上位20ビットを構成し、下位12
ビットは予約されている。対応する仮想アドレスの上位
20ビットは最初のワードに与えられている。下位12
ビットには有効(V)ビットと書き込み可能(W)また
は“リードオンリ”ビットが含まれており、残りの10
ビットは予約されている。
【0540】ページテーブルエントリには、基本的にT
LBエントリと同じ情報が含まれている。ページテーブ
ルの余分のフラグは予約されている。ページテーブル自
身は、通常メインメモリ203内の複数のページにわた
って分散され、一般に仮想空間と隣接していて物理空間
とは接していない。MMUには、ソフトウェアにより設
定された16のページテーブルポインタのセットが含ま
れており、それぞれはページテーブルの部分を含んでい
る4Kバイトメモリ領域への20ビットポインタであ
る。これは、コプロセッサ224が64Kバイトサイズ
のページテーブルをサポートし、8Kページマッピング
を有することを意味している。4Kバイトページサイズ
のシステムにおいて、これは最大32Mバイトのマッピ
ングされた仮想アドレス空間を意味する。むしろページ
テーブルポインタは、TLBに用いられるページサイズ
とは関係なく、常に4Kバイトのメモリ領域を参照する
ことである。
【0541】TLBミス後のMMU操作は、次のように
図154の690に示している。 1.TLBに存在しない仮想ページ番号891上のハッ
シュファンクション892を実行し、ページテーブルへ
13ビットのインデックスを生成する。 2.ページテーブルインデックス894、896の上位
4ビット894を用い、ページテーブルポインタ895
を選択する。
【0542】3.20ビットのページテーブルポインタ
895とページテーブルインデックス896の下位9ビ
ットを連結し、最下位3ビットに000を設定すること
により(ページテーブルエントリはホストメモリ内の8
バイトを占めるため)、要求されたページテーブルエン
トリの物理アドレス890を生成する。 4.ページテーブルエントリの物理アドレス898から
始め、ホストメモリから8バイトを読み出す。
【0543】5.8バイトのページテーブルエントリ9
00がPCIバスへ返されたとき、VALIDビットが
1にセットされていれば仮想ページ番号はTLBミスを
起こした元の仮想ページ番号と比較される。両者がマッ
チしないと、上記のプロセスを用いて次のページテーブ
ルエントリがフェッチされる(物理アドレスは8バイト
ずつインクリメントされる)。この過程はマッチする仮
想ページ番号のページテーブルエントリが見つかるま
で、或は無効なページテーブルエントリに遭うまで続け
られる。無効なページテーブルエントリに遭った場合に
は、ページフォールトエラーが出され処理は中止する。
【0544】6.マッチする仮想ページ番号を有するペ
ージテーブルエントリが見つかると、置換操作によって
完全なエントリがTLBに書き込まれる。新しいエント
リはLRUバッファ876によってポイントされたTL
B位置に置かれる。それからTLBの比較作業が再び行
われ、順調に続いて、元の要求されたホストメモリアク
セスの処理が可能になる。新しいエントリがTLBに書
き込まれると、LRUバッファ876は更新される。
【0545】EIC238に具現されているハッシュフ
ァンクション892は、20ビットの仮想ページ番号
(vpn)に対し、次の方程式を用いる。 index=((vpn>>S1)XOR(vpn>>
S2)XOR(vpn>>S3))&Ox1fff; ここで、S1、S2、S3は独立的にプログラム可能な
シフト量(正、又は負)で、それぞれ4つの値を取るこ
とができる。
【0546】ページテーブルの線形探索が4Kバイトの
境界を越えると、MMUは自動的に次のページテーブル
ポインタを選択し、正しい物理メモリ位置で探索を継続
する。この作業には、ページテーブルの最後から最初へ
のラッピングが含まれる。ページテーブルは、探索が常
に終了されるように常に少なくとも1つの無効(nul
l)エントリを含んでいる。
【0547】ソフトウェアがホストメモリ内のページを
置換するたびに、新しい仮想ページのためのページテー
ブルエントリを追加し、置換されたページに対応するエ
ントリを削除しなければならない。また、古いページテ
ーブルエントリはコプロセッサ224のTLBにキャッ
シュされてはいけない。これは、MMU内のTLB無効
化サイクルを果たすことにより行われる。
【0548】無効化サイクルは無効化作業を引き起こす
ビットと共に無効化される仮想ページ番号をし、MMU
へのレジスタ書き込みを通じて果たされる。このレジス
タ書き込みは、ソフトウェアによって直接、或は命令デ
コーダにより割り込みされた命令を通じて果たされる。
無効化作業は、提供された仮想ページ番号のためにTL
B上で果たされる。TLBエントリにマッチすると、エ
ントリは無効にマークされ、無効化された位置が次の置
換作業で用いられるようにLRUテーブルが更新され
る。
【0549】未決定の無効化作業はいかなる未決定のT
LB比較より高いプライオリティを持っている。無効化
作業が完了すると、MMUは無効化ビットをクリアし、
次の無効化処理が可能であることを知らせる。MMUが
要求された仮想アドレスのための有効なページテーブル
エントリを見つけられない場合、これをページフォルト
という。MMUはエラー信号を出し、フォルトを起こし
た仮想アドレスをソフトウェアがアクセス可能なレジス
タに保管する。MMUはアイドル状態に入り、エラーが
解決されるまで待機する。割り込みがクリアされると、
MMUは次の要求された取り引きから再び作業を始め
る。
【0550】読み出し専用とマークされた(書き込み可
能とマークされてない)ページへの書き込み作業がなさ
れた時にもページフォルトが出される。外部インターフ
ェース制御部(EIC)238は、一般バスへアドレス
されている入力インターフェーススイッチ252と結果
オーガナイザ249からの取り引き要求に応じられる。
それぞれの要求モジュールは現在の要求が一般バス用か
あるいはPCIバス用かを表す。入力インターフェース
スイッチ252と結果オーガナイザ249とのコミュニ
ケーションに共通バスを用いるのとは異なり、一般バス
要求へのEIC操作はPCI要求への操作と完全に分か
れている。更にEIC238は、一般バス空間にダイレ
クトにアドレスするCbus取り引きタイプにも応じら
れる。
【0551】図150は、外部インターフェース制御部
238の構造を示している。IBus要求は多重化部9
10を通り、多重化部910は要求の目的地をもとにし
て(PCIまたは一般バス)適当な内部モジュールへ要
求を導く。一般バスへの要求は、RBusとCBusも
持っている一般バス制御部911へ送られる。RBus
上の一般バスとPCIバス要求は異なるコントロール信
号を用いるため、このバスには多重化部が必要とされな
い。
【0552】PCIバスへ導かれたIBus要求はIB
usドライバ(IBD)912によって扱われる。同様
に、PCIへのRBus要求はRBusレシーバ(RB
R)914によって処理される。IBD912とRBR
914は仮想アドレスを、物理アドレスを返すメモリマ
ネジメントユニット(MMU)915に送る。IBD、
RBR、それからMMUは、それぞれPCIトランザク
ションを要求できて、これらはPCIマスタモード制御
部(PMC)917によって生成され、コントロールさ
れる。IBDとMMUはPCI読み出しのみを要求し、
RBRはPCI書き込みのみを要求する。
【0553】別個のPCIターゲットモード制御部(P
TC)918は、ターゲットとしてコプロセッサへアド
レスされた全てのPCIトランザクションを処理する。
これはCBusマスタモード信号を命令制御部へ送り、
すべての他モジュールへのアクセスを可能にする。PT
Cは、返されたCBusデータをPMC経由でPCIバ
スへ送るため、PCIデータバスピンのコントロールは
単一のソースから出される。
【0554】EICレジスタとモジュールメモリへアド
レスされたCBusトランザクションは標準CBusイ
ンターフェース7によって扱われる。全てのサブモジュ
ールはコントロールレジスタからビットをもらい、ステ
ータスレジスタにビットを返す。これらは標準CBus
インターフェース内部に位置している。PCIバストラ
ンザクションのためのパリティ生成とチェックは、PM
CとPTCのコントロール下で作動するパリティ生成と
チェック(PGC)モジュール921によって処理され
る。生成されたパリティは、パリティエラー信号と同様
にPCIバスへ送られる。パリティチェックの結果は、
エラーレポートのためにPTCのコンフィギュレーショ
ンレジスタにも送られる。
【0555】図155は、図150のIBusドライバ
912の構造を示している。受け入れたIBusアドレ
スとコントロール信号はサイクルの始点でラッチされる
930。オアゲート931はサイクルの始まりを検出
し、コントロールロジック932に開始信号を発生す
る。仮想ページ番号を形成するラッチ930の上位アド
レスビットはカウンタ935にロードされる。仮想ペー
ジ番号は、936にラッチされた物理ページ番号を返す
MMU915(図150)へ送られる。
【0556】物理ページ番号と下位仮想アドレスビット
は、マスク937によって再結合され、PMC717
(図102)へのPCI要求のためのアドレス938を
形成する。また、サイクルのためのバーストカウントも
カウンタ939にロードされる。プリフェッチ動作は異
なるカウンタ941とアドレスラッチと比較回路943
を用いる。PMCから返されたデータは、データがプリ
フェッチの一部か否かを表すマーカと共にFIFO94
4にロードされる。データがFIFO944の前の部分
で使用可能になってくると、ラッチ945、946経由
で読み出し、ロジックによりクロックアウトされる。読
み出しロジック946はIBusアクノレッジメント信
号も生成する。
【0557】中央コントロールブロック932は、状態
器を含め、全てのアドレスとデータ要素の順次処理、そ
れからPMCへのインターフェースをコントロールす
る。仮想ページ番号カウンタ935は、IBusアドレ
スからのページ番号ビットで、IBusトランザクショ
ンの開始と共にロードされる。この20ビットカウンタ
の上位10ビットは常に受け入れるアドレスからくる。
下位10ビットに対しては、それぞれのビットは対応す
るマスクビット937が1にセットされていれば受け入
れるアドレスからロードされ、そうでないと、カウンタ
ビットが1にセットされる。20ビットの値はMMUイ
ンターフェースへ送られる。
【0558】通常の動作で、仮想ページ番号は初期アド
レス変換の後で用いられない。しかし、IBDがバース
トのページ境界越えを検出した場合には、仮想ページカ
ウンタがインクリメントされ、もう1つの変換が行われ
る。カウンタがロードされた時仮想ページ番号の一部で
ない下位ビットが1にセットされているため、20ビッ
トの値への単純インクリメントは実際のページ番号フィ
ールドのインクリメントをもたらす。インクリメントさ
れた後、次のインクリメントのためにカウンタをセット
アップするために、マスクビット937が再び用いられ
る。
【0559】物理アドレスは、変換後、MMUが有効な
物理ページ番号を返すたびにラッチされる936。マス
クビットは、返された物理ページ番号と元の仮想アドレ
スビットとを正しく結合するために用いられる。物理ア
ドレスカウンタ938は物理アドレスラッチ936から
ロードされる。これはPMCからワードが返されるたび
にインクリメントされる。インクリメントされるたびに
カウンタはモニタされ、トランザクションがページ境界
を越えようとしているか否かを判断する。マスクビット
は、カウンタのどのビットが比較に用いられるかを判断
するのに使用される。カウンタがページ内に残っている
ワードの数が2つ以下であることを検出すると、コント
ロールロジック932に信号を出し、2つのデータ転送
後現在のPCI要求を終了し、必要に応じて新たなアド
レス変換を要求する。カウンタは新しいアドレス変換後
に再びロードされ、PCI要求が再開する。
【0560】バーストカウンタ939は、トランザクシ
ョンの始点でIBusバースト値と共にロードされる6
ビットのダウンカウンタである。これはPMCからワー
ドが返されるたびにデクリメントされる。カウンタの値
が2つ以下になると、コントロールロジック932へ信
号を出し、これで2つのデータ転送後、PCIトランザ
クションを終了することができる(プリフェッチングが
可能でない限り)。
【0561】プリフェッチアドレスレジスタ943は、
いかなるプリフェッチの最初のワードの物理アドレスと
共にロードされる。続くIBusトランザクションが開
始し、それからプリフェッチカウンタが少なくとも1つ
のワードが巧くプリフェッチされたことを示したら、ト
ランザクションの最初の物理アドレスがプリフェッチア
ドレスの値と比較される。両者がマッチすると、プリフ
ェッチデータはIBus引取りを満たすのに用いられ、
最後にプリフェッチされたワードの後のアドレスでPC
Iトランザクション要求が開始する。
【0562】プリフェッチカウンタ941は4ビットの
カウンタで、プリフェッチ動作中にPMCによってワー
ドが返されるたびに最大入力FIFOの深さと同じカウ
ントまでインクリメントされる。続くIBusトランザ
クションがプリフェッチアドレスとマッチすると、プリ
フェッチカウントがアドレスカウンタに足され、それか
らバーストカウンタから引かれ、PCI要求が要求され
る位置で開始できるようになる。代わりに、IBusト
ランザクションがプリフェッチされたデータの一部だけ
を必要とすると、要求されたバーストの長さはプリフェ
ッチカウントから引かれ、それからラッチされたプリフ
ェッチアドレスに足され、残りのプリフェッチデータは
更なる要求を満たすために保留される。
【0563】データFIFO944は、8ワード×33
ビットの非同期フォールスルーFIFOである。PMC
からのデータは、データがプリフェッチの一部であるか
否かを表すビットと共にFIFOに書きこまれる。FI
FOの先端からのデータは、使用可能になるや否やFI
POから読み出されIBusへ送られる。データ読み出
し信号を生成するロジックはclkと同期して動作し、
IBusアクノレッジメント出力を発生する。トランザ
クションがプリフェッチされたデータを用いて満たされ
る場合に、コントロールロジックからの信号は、FIF
Oから読み出すプリフェッチされたデータの数の情報を
を読み出しロジックに与える。
【0564】図156は、図150のRBusレシーバ
914の構造を示している。コントロールは2つの状態
器950、951との間でスプリットされる。書き込み
状態器951はRBusへのインターフェースをコント
ロールする。入力アドレス752はRBusバーストの
始点でラッチされる。バーストのそれぞれのデータワー
ドは、バイトイネーブルと共にFIFO754に書き込
まれる。FIFO954が充満するようになると書き込
みロジック951によってr−レディが取り消され、オ
ーガナイザがそれ以上のワードを書き込まないようにす
る。
【0565】書き込みロジック951は、再同期開始信
号を介してメイン状態器950にRBusバーストの開
始を通知し、オーガナイザがそれ以上のワードを書き込
まないようにする。仮想ページ番号を形成する上位アド
レスビットはカウンタ957にロードされる。仮想ペー
ジ番号はMMUへ送られ、MMUからは物理ページ番号
958が返される。物理ページ番号と仮想アドレスの下
位ビットはマスクに従って再結合され、カウンタ960
にロードされ、PMCへのPCI要求のためのアドレス
を提供する。PCI要求のそれぞれのワードのためのデ
ータとバイトイネーブルは、すべてのPMCMインター
フェースコントロール信号も扱うメインコントロールロ
ジック950によってFIFO954からクロックアウ
トされる。メイン状態器は、ビジー信号を介してアクテ
ィヴであることを示し、それは書き込み状態器へ再同期
して返される。
【0566】書き込み状態器951は、r−ファイナル
を用いてRBusバーストの終了を検出する。するとF
IFO954へのデータのロードを中止し、メイン状態
器にRBusバーストが終了したことを通知する。メイ
ン状態器はデータFIFOが空になるまでPCI要求を
継続する。それからビジーを取り消し、書き込み状態器
が次のRBusバーストを開始するようにする。
【0567】図150に再び戻り、メモリマネジメント
ユニット915は、IBusドライバ(IBD)912
とRBusレシーバ(IBR)914のために仮想ペー
ジ番号から物理ページ番号への変換を担当する。図15
7に、メモリマネジメントユニットの詳細を示してい
る。16エントリの変換ルックアサイドバッファ(TL
B)970は、TLBアドレスロジック971から入力
データを受け取って出力を送り返す。状態器が含まれて
いるTLBコントロールロジック972は、RBRまた
はIBDからTLBアドレスロジックにバッファされて
いる要求を受け取る。要求を受け取ると、入力のソース
とTLBによって行われる作業を選択する。有効なTL
B作業は、比較、無効化、全無効化、書き込みと読み出
しである。TLB入力アドレスのソースとしては、IB
DとRBRインターフェース(比較作業用)、ページテ
ーブルエントリバッファ974(TLBミスサービス
用)またはTLBアドレスロジック内のレジスタなどが
ある。TLBは、TLBコントロールロジックにそれぞ
れの作業のステータスを返す。成功した比較作業からの
物理ページ番号はIBDとRBRへ送り返す。TLBは
最も最近アクセスされた(LRU)位置の記録を保有
し、これはTLBアドレスロジックにとっては書き込み
作業用の位置として用いるのに有用である。
【0568】比較作業が失敗した場合、TLBコントロ
ールロジック972はページテーブルアクセスコントロ
ールロジック976にPCI要求を開始するよう信号を
出す。ページテーブルアドレスゼネレータ977は、内
部ページテーブルポインタレジスタを用い、仮想ページ
番号をもとにPCIアドレスを生成する。PCI要求か
ら返されたデータは、ページテーブルエントリバッファ
974へラッチされる。要求される仮想アドレスにマッ
チするページテーブルエントリが見つかると、物理ペー
ジ番号がTLBアドレスロジック977へ送られ、その
後ページテーブルアクセスコントロールロジック976
はページテーブルアクセスが完了したことを通知する。
それからTLBコントロールロジック972は、TLB
に新たなエントリを書き込み、比較作業を再び開始す
る。
【0569】SCIへのレジスタ信号とSCIからのレ
ジスタ信号は両方の方向に再同期される980。信号は
全てのサブモジュールへ行き来する。モジュールメモリ
インターフェース981は、標準CBusインターフェ
ースからTLBとページテーブルポインタメモリ要素へ
のアクセスをデコードする。TLBアクセスは読み出し
専用で、データを得るためにTLBコントロールロジッ
クを用いる。ページテーブルポインタは読み出し・書き
込み両方可能で、モジュールメモリインターフェースに
よってダイレクトにアクセスされる。これらのパスには
同期回路も含まれている。
【0570】3.18.11 周辺インターフェース制
御部 図158には、図2の周辺インターフェース制御部(P
IC)の一例を詳細に示している。PIC237は、外
部周辺デバイスへ、又はデバイスからデータを転送する
いくつかのモードの1つで動作する。基本的なモード
は、 1)ビデオ出力モード:このモードで、データは外部ビ
デオクロックとクロック・データイネーブルのコントロ
ール下で、周辺へ転送される。PIC237は、出力デ
ータに対し必要とされるタイミングで出力クロックとク
ロックイネーブルサインを送る。
【0571】2)ビデオ入力モード:このモードで、デ
ータは外部ビデオクロックとクロック・データイネーブ
ルのコントロール下で、周辺へ転送される。 3)セントロニクスモード:このモードは、IEEE
1284標準に定義されている標準プロトコルに従い、
周辺へと周辺からデータを転送する。 PIC237は、必要に応じて、内部データソースや目
的地から外部インターフェースのプロトコルを分離す
る。内部データソースは、出力データの単一ストリーム
にデータを書き込み、選択されているモードによって外
部周辺機器へ転送される。同様に、外部周辺からの全て
のデータは単一入力データストリームに書き込まれ、可
能な内部データ目的地の1つに要求されたトランザクシ
ョンを満たすのに用いられる。
【0572】可能な出力データのソースとしては、LM
C236(ABusを用いる)、RO249(RBus
を用いる)、それから一般CBusの3つが挙げられ
る。PIC237は、これらのデータソースからのトラ
ンザクションに一度に1つのみに応答する。1つのソー
スからのトランザクションは次のソースが考慮される前
に完全に終了するのである。一般に、いつでも1つのみ
のデータソースしかアクティヴになってはならないので
ある。2つ以上のソースがアクティヴになった場合には
CBus、ABus、RBusのプライオリティで順に
処理される。
【0573】通常通り、モジュールはPICの内部レジ
スタが含まれている標準CBusインターフェース99
0のコントロール下で動作する。更に、CBusインタ
ーフェース992は、コプロセッサ224を介して周辺
デバイスをアクセスし、コントロールすることができ
る。ABusインターフェース991もローカルメモリ
制御部とのメモリ相互作用を処理することができる。結
果オーガナイザ249に加え、ABusインターフェー
ス991とCBusインターフェース992は両方とも
バイト−ワイドFIFOが含まれている出力データパス
993へデータを送る。出力データパスへのアクセス
は、どのソースが出力ストリームに対してプライオリテ
ィまたは所有権を持っているかを常にチェックする仲裁
者によってコントロールされる。出力データパスは、ど
っちがイネーブルになっているかによってビデを出力制
御部994とセントロニクス制御部997とインターフ
ェースする。それぞれのモジュール994、997は出
力データパスの内部FIFOから一度に1バイトを読み
出す。セントロニクス制御部997は、周辺デバイスを
コントロールするために標準セントロニクスデータイン
ターフェースを具現する。ビデオ出力制御部には、要求
されるビデオ出力プロトコルに従い、出力パッドをコン
トロールするロジックが含まれている。同様に、ビデオ
入力制御部998には、用いられているいかなるビデオ
入力標準もコントロールするロジックが含まれている。
ビデオ入力制御部998は入力データパスユニット99
9へ出力を出し、これは再びビデオ入力制御部998か
セントロニクス制御部997かのいずれかによって一度
に1バイトずつ非同期でFIFOに書き込まれるデータ
とバイトワイド入力FIFOを構成する。
【0574】データタイマ996には種々のカウンタが
含まれており、出力データパス993と入力データパス
999内のFIFOの現在状態をモニタするために用い
られている。以上のことから、コプロセッサを用いると
多重イメージまたは単一イメージの多重部分を同時に生
成するために二重ストリームの命令を実行するのが可能
に思われる。一次命令ストリームは現在ページの出力イ
メージを得るのに用いられ、一次命令ストリームがアイ
ドルになっている間に次のページのレンダリングを始め
るために二次命令ストリームを用いることができる。そ
の結果、標準モードの動作で、現在ページのイメージは
レンダリングされてからJPEGコーダ241を用いて
圧縮される。イメージをプリントする必要がある時に、
コプロセッサ241は二度JPEGコーダ241を用い
てJPEGエンコーデッドイメージを解凍する。出力デ
バイスにからそれ以上のJPEGデコーデッドイメージ
の部分が必要とされないアイドルタイムの間に、次のペ
ージまたはバンドの構成のために命令を実行するのが可
能である。一般にこのプロセスは、コプロセッサの動作
オーバーラップにより、イメージを生成するレートを上
げる。特に、コプロセッサ224を用いると、コプロセ
ッサに付いたプリンタによってプリントが行われ、結果
的にレンダリングスピードが上がるため、イメージプロ
セシング作業のスピードアップの面でベネフィットが得
られるのである。
【0575】上記好適な実施例は本発明の1つの実施形
態であり、本発明の範囲を外れずに当業者にとって自明
な修正ができることが、以上から明らかであろう。
【0576】付録A コプロセッサマイクロプログラミング この節では新しい命令の実行毎にコプロセッサ内で行わ
れる動作について詳述する。命令実行の間にコプロセッ
サにより行われるすべてのセルフコンフィグレーション
は内部のレジスタのリード/ライトにより実現されてお
り、従って、コプロセッサは外部のCバスインターフェ
ースあるいはホストによってPCIバスインターフェー
スを用いることで完全にマイクロプログラミング可能で
ある。但し、ホストを用いるマイクロプログラミングの
場合には一般的にホスト同期の問題から困難となること
が予想される。本章は読者がコプロセッサについて以下
の点で十分な知識を持っていることを前提している。 1.実行モデル 2.命令セットとコーディング 3.レジスタセット 4.内部構造 A.1 一般事項 A1.1 コプロセッサのセットアップに関する一般事
項 コントロール命令とローカルDMA命令以外のすべての
命令については、コプロセッサで内のデータの流れは基
本的にピクセルオーガナイザの制御下におかれる。ピク
セルオーガナイザは入力データストリームの先頭のフェ
ッチ、データのカウント、及び最後のデータがフェッチ
された時期の決定について責任を持っている。コプロセ
ッサ内のその他のモジュールは基本的に、送られてきた
データに単に応答するだけである。 A1.2 モジュールのコンフィグレーション順序 すべてのモジュールが命令毎にセットアップされるわけ
ではない。いくつかのモジュールは命令デコーディング
時に、全くコンフィグレーションされない。モジュール
のコンフィグレーション順序は常にPO,DCC,OO
B,OOC,MDP,JC,RO,PICの順である。 A1.3 その他のレジスタの設定 命令が、あるレジスタ値の設定を含んで符号化された場
合にはそのレジスタは次の順序に従うマイクロプログラ
ミングにより設定される。 1.設定されるべきレジスタを持つモジュールに、ほか
にレジスタセットが存在しなければ、そのレジスタはほ
かのいかなるレジスタ設定よりも先に設定される。 2.設定されるべきレジスタを持つモジュールに、ほか
にもレジスタセットがあるときはそのレジスタはほかの
レジスタの設定が終わった後に、そのモジュールの_c
fgレジスタの直前に設定される。 A1.4 整合性のない命令オペランドのコーディング 多くの命令は、オペランド及び結果のデータタイブが指
定されているので、ほかのデータタイプが指定された場
合には、無意味な結果を返す。各オペランドに対し、コ
プロセッサは次の手順で目的のオペランドのフォーマッ
トを決定する。 1.オペランドの内部フォーマットが1つのピクセル
(圧縮バイトあるいは非圧縮バイト)に特化されている
場合には、対応するオペランドオーガナイザはこれを反
映して設定される。データキャッシュコントローラはコ
ンフィグレーションされず、従ってノーマルモードで演
算が継続される。 2.オペランドの内部フォーマットが「その他の形式」
に特化されている場合には、コプロセッサは命令からオ
ペランドのフォーマットを生成する。オペランドBとオ
ペランドCについては前進的である。オペランドAにつ
いて「その他の形式」は元来指定されていなく、コプロ
セッサの振る舞いは定義されていない。対応するオペラ
ンドオーガナイザはバイパスモードになり、データキャ
ッシュコントローラは得られたフォーマットのオペラン
ドデータを管理するように設定される。マイクロプログ
ラミングは合理的に様々なモジュール間で相互独立であ
る。 A1.5 疑似命令の文法 ・命令の実行順序は左端の番号で決定される。 ・レジスタ名はHelvetica Bold体でかか
れている。 ・レジスタフィールドはregister.field
によって示される。 ・I,Dは現在復号化されている命令ワードとデータワ
ードをそれぞれ示す。 ・A,B及びCは現在復号化されているオペランドワー
ドA、オペランドワードB、オペランドワードCを示
す。 ・A_deskriptor,B_deskripto
rおよびC_deskriptorは現在復号化されて
いる命令のデータワードのデスクリプタを示す。 ・Rは現在復号化されている命令の結果ワードを示す。 ・”X:Y”はXとYの連結を示す。 ・”@X”はコプロセッサのレジスタ番号Xを示す。 ・”Cbus(X)”はCバスオペレーションXの実行
を示す。 ・”Cbus(X)”はCバスオペレーションXによ
る受け取りデータを示す。 ・”X”は仮想メモリ番地Xを示す。 ・”??”は不明な値、あるいは未定の値を示す。 ・”set”はデータマニピュレーションレジスタの設
定を示す。 A.2 合成演算子 注: 1.主要オペコードは0xCと0xD 2.曖昧さは最上位アドレスのバイト(すなわち、最上
位バイト)であると考える。 3.アキュムレータあるいはオペランドはプレ乗算され
ていてもよい。 4.結果は非プレ乗算されていてもよい。 5.命令長は入力ピクセルの数により定義されている。 A.3 芭空間変換 注: 1.入力空間は常に3次元である。デフォルトでは3つ
の最下位なピクセルのチャネルである。曖昧さは排除さ
れる。 2.カラーテーブルのフォーマットはひとつの出力チャ
ネルを含むものか、4つの出力チャネルを含むもののう
ちどちらかである。 A.4 JPEG命令 注: 1.オペコードは0x2である。 2.オペランドCはセットするためのレジスタでもよ
い。 3.オプションは多数存在する。 ・サブサンプリングを行う/行わない。 ・フィルタリングを行う/行わない。 ・1,3あるいは4スキャン。 4.これらの命令は命令実行前に設定されたいくつかの
レジスタと関係している。 A.4.1 伸長 注:1.以下のレジスタは命令実行前に設定されている
必要がある。 ・ro_idr:出力画像次元数レジスタ ・ro_cut:出力カットレジスタ ・ro_lmt:出力制限レジスタ A.4.2 圧縮 注: 1.以下のレジスタは命令実行前に設定されている必要
がある。 ・po_idr:出力画像次元数レジスタ ・jc_rml:再スタートマーカのインターバル ・ro_cut:出力カットレジスタ ・ro_lmt:出力制限レジスタ A.5 データコーディング 注: 1.すべてのデータコーディング操作は圧縮、圧縮解除
いずれの場合も同じ様に扱われる。これらの操作設定は
JPEGの時とほとんど同じである。 2.可能なエンコーディング操作 ・ハフマン符号化 ・予測符号化 3.可能なデコーディング操作 ・高速ハフマン復号化 ・低速ハフマン復号化 ・packbits復号化(バージョンA) ・packbits復号化(バージョンB) ・予測復号化 4.オペランドCは設定するためのレジスタでも良い。 5.以下のレジスタは命令実行前に設定されている必要
がある。 ・ro_cut:出力カットレジスタ ・ro_lmt:出力制限レジスタ A.6 変換と畳み込み 1.オペコードは0x4(畳み込み)と0x5(変
換)。 2.コプロセッサは画像変換と画像畳み込みのそれぞれ
のために必要となるスーパーセットである操作を行う。
画像変換と画像畳込みの唯一の違いは、コプロセッサに
関する限り、画像変換ではカーネルステップサイズがカ
ーネルの大きさ(水平、垂直)なのに対して、畳込みで
はステップサイズが1ソースピクセルとなっていること
である。 3.オプション: ・隣接ピクセルへのスナッピングおよび補間 ・ピクセル(カーネル)の蓄積を行うか否か ・ソースピクセルのプレ乗算を行うか否か ・最終結果のクランプ、ラッピング、絶対値 4.注:変換と畳込みは元の位置には実行できない。つ
まり、ソースのポインタとデスティネーションのポイン
タが同じであるときは、その内容が破壊される。 A.7 行列乗算 注: 1.オペコードは0x3 2.オプション: ・ソースピクセルのプレ乗算を行うか否か ・最終結果のクランプ、ラッピング、絶対値化 ・オペランドCはレジスタに書き込んでも良い A.8 ハーフトーン処理 注 1.オペコードは0x7 2.オプションはハーフトーンのレベル値のみ 3.ハーフトーンスクリーンが適切にメッシュあるいは
アンメッシュされているかぎり、ピクセルあるいはバイ
トに対して行うことができる。 A.9 メモリーコピー 注: 1.オペコードは0x92.この命令はメモリーコピー
の操作を完了するために、全く個別の機構を用いてい
る。 ・汎用データ転送命令はコプロセッサにおける通常のデ
ータフローを利用し、POおよびRO内のデータ操作ユ
ニットを用いる様々な関数を利用できる。 ・ペリフェラルDMA命令はPICとLMC間の直接的
なコネクションを利用する。このことはデータ操作がで
きないことを意味し、後続の命令と同時実行が可能であ
る。 A.9.1 汎用データ転送 A.9.2 ペリフェラルDMA転送 注: 1.同時実行でもそうでなくとも良い。このことは、I
Cによって扱われている。 2.オペランドCは設定するレジスタでも良い 3.PICはデータを扱うモジュールなので、この命令
はほかの”能動”命令と異なる。 A.10 フォトCD伸長 この命令群は3つの異なる操作すなわち、水平補間、垂
直補間、残部融合から構成される。垂直補間と残部融合
の設定方法は同じである。 これら全ての命令のオペコ
ードは0x9である。 A.10.1 水平補間 注: 1.ピクセルあるいはバイトに対して実行可能 2.この命令はオペランドが1つの命令であり、オペラ
ンドCは設定するレジスタでも良い。 A.10.2 垂直補間と残部融合 注: 1.垂直補間と残部融合の設定は同じである。 2.ピクセルとバイトの両方に対して実行可能。 3.この命令はオペランドが2つの命令であり、オペラ
ンドCはレジスタセットでも良い。 A.11 制御命令 注: 1.制御命令は2種類の操作、すなわちフロー制御命令
と内部アクセス命令からなる。 A.11.1 フロー制御 注: 1.オペコードは0xB 2.フロー制御命令は現在、各種ジャンプ命令と各種の
待機命令から成っている。 3.コプロセッサ内では明確な設置は行われず、またこ
の命令は、”能動”命令ではない。つまり、ほかの命令
のようにコプロセッサ内のサブモジュールが実際に何か
を行ったりはしない。 4.オペランドCは設定するレジスタでも良い。 A.11.2 内部アクセス(リード) 注: 1.オペコードは0xA 2.リード命令はデータをコプロセッサ外に転送する。 3.ROが実際にコプロセッサ内ですべてを行う唯一の
モジュールである。 A.11.3 内部アクセス(ライト) 注: 1.オペコードは0xA 2.ライト命令はデータをコプロセッサ内に転送する。 3.この命令は”能動”命令ではないので、IC以外の
モジュールは実際には何も行わない。 A.12 予約された命令 注: 1.オペコード0x0,0xFは予約されている。 2.予約された命令はマスク可能なエラーを出す。 3.これらの予約された命令はコプロセッサが今後改訂
されたときにほかの命令として使用されることになって
いる。 付録B:レジスタ 1.1 レジスタおよびテーブル 本節ではコプロセッサのレジスタについて解説する。こ
れらのレジスタは3通りの方法で変更可能である。 1.特定のコプロセッサの命令群ははレジスタの読み書
きをするためにある。これらの命令群を用いることでレ
ジスタは、イニシエータのPICバスサイクルの開始あ
るいは汎用インターフェースのトランザクションを用い
て、ローカルメモリインターフェースに関連するメモリ
への、あるいはメモリからの読み書きが行われる。 2.多くのレジスタは命令実行の副作用により内容が変
化する。命令実行のためにコプロセッサが自身の設定を
行うという主要な機構は、様々なレジスタを現在の状態
を反映するように設定することで実現されている。命令
実行終了後には各レジスタはコプロセッサの状態を反映
する。多くの典型的な処理はある命令により完全に特定
され、設定される。いくつかのレジスタでは命令実行の
直前に設定する必要がある。 「予約」レジスタビットの意味 あらゆるレジスタ或はその構成要素の「予約」の意味は
次の通りである。 ・予約された場所への書き込みは行えるが、そのデータ
は棄却される。 ・予約された場所からの読み込みは行えるが、そのデー
タは不定である 全ての特定されていないレジスタ及びレジスタフィール
ドは「予約」である。 1.1.1 レジスタの分類 コプロセッサ内のレジスタは本節に記述される振る舞い
に基づいて分類される。これらの記述は ・外部:モジュール外部(からのアクセス)。CBus
インターフェースを用いた外部アクセスである。すなわ
ち、命令コントローラあるいは外部CBusインターフ
ェースによるターゲットモードのPCIを用いる。注、
レジスタは、バイセットモードを介してPCIバスがら
セットできない。 ・内部:モジュール内部(からのアクセス) 状態レジスタ 状態レジスタは外部からは読み込み専用で、内部からは
読み書き可能。 コンフィグ1レジスタ コンフィグ1レジスタは外部からは読み書き可能で、内
部からは読み込み専用である。コンフィグ1レジスタは
タイプCのCBus操作はサポートせず(すなわち、ビ
ットセットモードをサポートしない)、アドレス値のよ
うなバイト(またはそれより大きな)コンフィギュレー
ション情報を保持するレジスタとして用いられる。 コンフィグ2レジスタ コンフィグ2レジスタも外部から読み書き可能で、内部
からは読み込み専用である。コンフィグ2レジスタはタ
イプCのCBus操作(すなわちビットセットモード)
をサポートし、ビット単位で設定する必要のあるコンフ
ィギュレーション情報を保持するレジスタとして用いら
れる。 コントロール1レジスタ コントロール1レジスタは外部および内部から読み書き
可能。コントロール1レジスタはタイプCのCBus操
作をサポートせず(すなわちビットセットモードをサポ
ートしない)、アドレス値のようなバイト(またはそれ
より大きなコントロール情報を保持するレジスタとして
用いられる。 コントロール2レジスタ コントロール2レジスタは外部および内部から読み書き
可能。コントロール2レジスタはタイプCのCBus操
作(すなわちビッドセットモード)をサポートし、ビッ
ト単位で設定する必要のあるコントロール情報を保持す
るレジスタとして用いられる。 割り込みレジスタ 割り込みレジスタ内のビットは内部からは1にセットで
き、外部からは1を書き込むことによって0にリセット
できる。モジュール割り込み/エラーレジスタもこのタ
イプである。モジュールの割り込み/エラーレジスタは
3つのフィールドから構成される。 [7:0]モジュールによって生成されたあらゆるエラ
ー状態(ステータス)を意味する [23:8]モジュールによって生成されたあらゆる例
外状態を意味する [31:24]モジュールによって生成されたあらゆる
割り込み状態を意味する 1.1.2 レジスタマップ 表1.1はコプロセッサのレジスタである。番号はアド
レスではなくレジスタ番号である。 表1.1 コプロセッサレジスタ 表1.1 コプロセッサレジスタ 1.1.3 レジスタ定義 汎用モジュールレジスタ 命令コントローラレジスタ I. ic_cfg ic_cfgレジスタは3つの部分に別れる。最下位バ
イトはグローバルコンフィギュレーション情報を含む。
最下位から3番目のバイトはストリームAのコンフィギ
ュレーシヨン情報を含み、最上位バイトはストリームB
のコンフィギュレーション情報を含む。 このレジスタ
のリセット値は0x00000000である。 m. is_stat このレジスタは4つのセクションに分かれている。最下
位バイトはICの内部状態を保持する。最下位から2番
目のバイトは現在の命令の復号化された結果と現在及び
プリフェッチした命令ストリームを保持する。最上位か
ら2番目のバイトはAストリームに関してすべてのステ
ータス情報を保持する。最上位バイトはBストリームに
関する情報を保持する。このレジスタのリセット値は0
x00000000である。 n. ic_err int このレジスタはIC内部で割り込みやエラーが発生した
かどうかを示す、アクティブ・ハイのフラグを含む。そ
れぞれのビットは1を書き込むことでクリアされる。 O. ic_err_int_en このレジスタは様々なエラーや割り込みの許可のマスク
を含み、リセット値は0x00000000である。 p. ic_ipa このレジスタはストリームAの命令フェッチに用いられ
る仮想アドレスの最上位30ビットを保持する。2つの
最下位ビットは命令が整列されてるはずであるとして0
に仮定される。このレジスタのリセット値は0x000
00000である。 q. ic_tda このレジスタはストリームAの“to do”値を保持
する。これは適正な命令が存在するまでの32ビット
(ラッピング)のシーケンス番号である。このレジスタ
のリセット値は0x00000000である。 r. ic_fna このレジスタはストリームAの「終了」値を保持する。
これは32ビット(ラッピング)のシーケンス番号で最
後に完了した命令を示している。このレジスタのリセッ
ト値は0x00000000である。 s. ic_inta このレジスタはストリームAの「割り込み」番号を保持
する。これは機構が有効であり用意されている場合にど
こへ割り込みをかけるかの、32ビット(ラッピング)
のシーケンス番号である。このレジスタのリセット値は
0x00000000である。 t. ic_loa このレジスタはストリームAで実行される最後の重複命
令の32ビット(ラッピング)のシーケンス番号を保持
する。このレジスタのリセット値は0x0000000
0である。 u. ic_ipb このレジスタはストリームBの命令フェッチに用いられ
る仮想アドレスの最上位30ビットを保持する。2つの
最下位ビットは命令が整列されているはずであるとして
0に仮定される。このレジスタのリセット値は0x00
000000である。 v. ic_tdp このレジスタはストリームBの“to do”値を保持
する。これは適正な命令が存在するまでの32ビット
(ラッピング)番号である。このレジスタのリセット値
は0x00000000である。 w. ic_fnb このレジスタはストリームBの「終了」値を保持する。
これは32ビット(ラッピング)のシーケンス番号で最
後に完了した命令を示している。このレジスタのリセッ
ト値は0x00000000である。 x. ic_intb このレジスタはストリームBの「割り込み」番号を保持
する。これは機構が有効であり用意されている場合にど
こへ割り込みをかけるかの、32ビット(ラッピング)
のシーケンス番号である。このレジスタのリセット値は
0x00000000である。 y. ic_lob このレジスタはストリームBで実行される最後の重複命
令の32ビット(ラッピング)のシーケンス番号を保持
する。このレジスタのリセット値は0x0000000
0である。 z. ic_sema このレジスタはic_statレジスタの副作用を用い
たエイリアスであり、このレジスタの読み込はストリー
ムAのレジスタセマフォの要求の副作用である。aa.
ic_semb このレジスタはic_statレジスタの副作用を用い
たエイリアスであり、このレジスタの読み込みはストリ
ームBのレジスタセマフォの要求の副作用である。 入力インターフェースレジスタ ab. iis_cfg ac. iis_stat ad. iis_err_int ae. iis_err_int_en af. iis_ic_addr ag. iis_dcc_addr ah. iis_po_addr ai. iis_burst aj. iis_base_addr ak. iis_test 外部インターフェースコントローラレジスタ al. eic_cfg am. eic_stat an. eic_err_int eic_err_intレジスタのエラー及び割り込み
ビットはEICのみによって設定でき、ソフトウェアの
みによってリセットできる。通常のエラー及び割り込み
ビットはそのビットに1を書き込むことでリセットされ
る。PCIコンフィギュレーションレジスタビットのコ
ピーであるエラービットはPCIコンフィギュレーショ
ンレジスタに書き込むことでクリアされなければならな
い。すなわち、eic_err_intでのコピーは何
も影響しない。 ao. eic_err_int_en ap. eic_test aq. eic_pob ar. eic_high_addr as. eic_wtlb_v at. eic_wtlb_p au. eic_mmu_v 注:このレジスタの値は、MMUがページフォールトエ
ラーあるいはMMUからPCIバスのエラーにより無効
でないなら、いつでも変更可能である。 av. eic_mmu_p 注:このレジスタの値は、MMUがページフォールトエ
ラーあるいはMMUからPCIバスのエラーにより無効
でないなら、いつでも変更可能である。 aw. eic_ip_addr 注:このレジスタの値はIBDがIBusからPCIバ
スへのエラーによって無効でないならいつでも変更可能
である。 ax. eic_rp_addr 注:このレジスタの値はRBRがRBusからPCIバ
スへのエラーによって無効でないなら、いつでも変更可
能である。 ay. eic_ig_addr注:このレジスタの値
はGBCが汎用バスのエラーによって無効でないなら、
いつでも変更可能である。 az. eic_rg_addr 注:このレジスタの値はGBCが汎用バスのエラーによ
って無効でないなら、いつでも変更可能である。 PCIバスコンフィギュレーション空間のエイリアス 16ワードからなるPCIバスコンフィギュレーション
空間は0xc0から0xcfまでのアドレスで示される
レジスタにエイリアスされている。 ローカルメモリコントローラレジスタ ba. lmi_cfg このレジスタはLMCの処理モードとパラメータを決定
するのに用いられる多くのコンフィギュレーションビッ
トと制御ビットを含む。sdram_1ピンがハイの時
SDRAM処理を特別に参照するビットは全く影響を持
たない。 このレジスタはclkinの周波数が80M
Hzのとき3.2マイクロ秒のリフレッシュ間隔である
ようなリセット値0x20000100をもつ。すべて
の特別なモードや機能は電源投入時には無効であり、す
べてのアクセス権限は等しく0に設定される。リフレッ
シュはリセット時に有効であるが、ほかのモジュールは
無効(E=0)である。リフレッシュはEビットに影響
されない。 bb. lmi_stat ステータスレジスタはマシン内部の情報と同様にモジュ
ールのアクティブや未決定ビットからなる。ステートマ
シンはCBusインターフェースの2倍のクロックで駆
動されており、従って最新の80MHzクロック2サイ
クルそれぞれの状態情報を保持するのには2フィールド
必要である。 bc. lmi_err_int エラーと割り込みのステータスレジスタは割り込み、例
外、エラー状態の情報を保持する。レジスタは読み書き
でき、読み込みはステータス情報を返し、特定ビットへ
の1の書き込みはそのビットをリセットする。0の書き
込みはそのビットに対して全く影響を持たない。 このレジスタはリセット値0x00000000を持た
なくてはならず、これは割り込み及びエラーが発生して
いないことを示す。予約ビットは常に0であり決して状
態を変更できない。 bd. lmi_err_int_enレジスタ エラー、例外、割り込み有効レジスタはエラー、例外割
り込み信号の有効、無効の選択に用いられる。レジスタ
は読み書きできる。このレジスタはlmi_err_i
ntレジスタ内のエラー、例外、割り込みそれぞれに基
づいて、ビット単位で有効化するのに用いられる。この
レジスタのビットとlmi_err_intレジスタの
ビットとの間には1対1の対応がある。もしlmi_e
rr_int_enレジスタの特定のビットがハイにな
ったらlmi_err_intレジスタの対応するビッ
トが有効になり、それがハイであるならば、LMCモジ
ュールエラー、例外あるいは割り込み信号、c_er
r、c_exp、あるいはc_intが発生できる。も
しlmi_err_int_enレジスタの特定のビッ
トがクリアされたらたらlmi_err_intレジス
タの対応するビットが無効になり、c_err、c_e
xpあるいはc_intを発生させることはできない。
LMCには例外はないので、このレジスタのexp_m
askビットは全く影響せず、すべて予約である。この
レジスタのリセット値はすべてのエラー及び割り込み源
を無効にする0x00000000である。使用されな
いビットは常に0であり、ハイにセットすることはでき
ない。 be. lmi_dcfg このコンフィギュレーションレジスタはDRAMチップ
を使用する場合のサイズやコンフィギュレーションを決
定する設計パラメータを保持する。 このレジスタはす
べてのタイミング制限の値を最大値にするようなリセッ
ト値0x0007ff80を保持する。 bf. lmi_mode レジスタ このコンフィギュレーションレジスタは初期化処理の一
環としてSDRAMモードレジスタに書き込まれる情報
を保持する。このレジスタは常に読み書き可能で、初期
化ビットをセットすることによってSDRAMに書き込
んでも良い。このレジスタはリセット値0x0037を
もつ。この有用なデフォルト値は電源投入プリチャージ
後あるいはレベル1のリセット後直ちに要求される。こ
れは読み込み遅延を3クロックに設定し、バースト長を
シーケンシャルラップを用いたフルページに設定する。
あらゆるリセットの後、もしsdram_1ピンがロー
であれば、SDRAMモードレジスタを初期的にプログ
ラムするために、初期化ビットはセットされる。モード
レジスタの書き込み実行後、このビットは自動的にゼロ
にクリアされる。 周辺インターフェースレジスタ bg. pic_cfg レジスタ bh. pic_stat bi. pic_err_int pic_err_intレジスタのエラーおよび割り込
みビットはPICのみによりセットされ、ソフトウェア
のみによってリセットされる。それぞれのビットは1を
書き込むことでリセットされる bj. pic_err_int_en bk. pic_abus_cfg bl. pic_abus_addr bm. pic_cent_cfg pic_cent_cfgレジスタはセントロニクスモ
ードが有効の場合に、すべてのインターフェースの局面
を制御する読み込み/書き込み信号及び読み込み専用ス
テータス信号を含んでいる。 bn. pic_cent_dir bo. pic_reverse_cfg bp. pic_timer0 bq. pic_timer1 データキャッシュコントローラレジスタbr. dcc
_cfg1 bs. dcc_cfg2 bt. dcc_stat bu. dcc_err_int bv. dcc_err_int_en bw. dcc_lv0 bx. dcc_lv1 by. dcc_lv2 bz. dcc_lv3 ca. dcc_addr cb. dcc_raddrb cc. dcc_raddrc cd. dcc_test オペランドオーガナイザレジスタ オペランドオーガナ
イザレジスタには同様の2つのオペランドオーガナイザ
が存在する:オペランドオーガナイザBとオペランドオ
ーガナイザCである。これらの2つのオペランドオーガ
ナイザ用のレジスタはここに記述されている。ce.
oon_cfg(oob_cfg=0x70,ooc_
cfg=0x80) cf. oon_stat(oob_cfg=0x7
1,ooc_cfg=0x81) cg. oon_err_int(oob_err_i
nt=0x72,err_int=0x82) ch. oon_err_int_en(oob_er
r_int_en=0x73,err_int_en=
0x83) ci. oon_dmr(oob_dmr=0x74,
ooc_dmr=0x84) cj. oon_subst(oob_subst=0
x75,ooc_subst=0x85) ck. oon_cdp(oob_cdp=0x76,
ooc_cdp=0x86) cl. oon_len(oob_len=0x77,
ooc_len=0x87) cm. oon_said(oob_said=0x7
8,ooc_said=0x88) cn. oon_tile(oob_tile=0x7
9,ooc_tile=0x89) ピクセルオーガナイザレジスタ co. po_cfg cp. po_stat cq. po_err_int cr. po_err_int_en cs. po_dmr ct. po_subst cu. po_cdp cv. po_len cw. po_said cx. po_idr cy. po_muv_valid cz. po_muv 主データパスレジスタ da. mdp_cfg すべてのビットは0にリセッ
トされる。 db. mdp_stat すべてのビットは0にリセットされる。 dc. mdp_err_int すべてのビットは0にリセットされる。 dd. mdp_err_int_en すべてのビットは0にリセットされる。 de. mdp_test すべてのビットは0にリセ
ットされる。 df mdp_op1 すべてのビットは0にリセット
される。 dg mdp_op2 すべてのビットは0にリセット
される。 dh mdp_por すべてのビットは0にリセット
される。 di mdp_bi すべてのビットは0にリセットさ
れる。mdp_biレジスタは種々のモードの様々なも
のに用いられる。 dj mdp_bm すべてのビットは0にリセットさ
れる。mdp_bmレジスタは異なるモードの異なるも
のに用いられる。 dk mdp_len すべてのビットは0にリセット
される JPEG符号化器レジスタ dl jc_cfg dm jc_stat dn jc_err_int do jc_err_int_en dp jc_rsi dq jc_decode dr jc_res ds jc_table_sel 結果オーガナイザレジスタ dt ro_cfg du ro_stat dv ro_err_int dw ro_err_int_en dx ro_dmr dy ro_subst dz ro_cdp ea ro_len eb ro_sa ec ro_idr ed ro_vbase ee ro_cut ef ro_lmt PCIコンフィギュレーション空間のエイリアス PC
Iコンフィギュレーション空間は256バイトの、PC
Iによって定義されたレジスタのブロックであり、ホス
トがPCIデバイスをコンフィギュレーションしたり、
その状態を読んだりすることを認めている。それはPC
Iコンフィギュレーションサイクルを用いてアクセスさ
れる。レジスタはまたコプロセッサの内部メモリの読み
込み専用エリアにミラーされており、従ってPCIの通
常のメモリサイクルを用いて読むことができる。EIC
に実装されているコンフィギュレーション空間のフォー
マットを表1.141.1に示す。 表1.141.1 コプロセッサPCI構成の空間的レ
イアウト 予約のレジスタと実装されたレジスタにおける予約のビ
ットは読み込みに対しては0を返し、また書き込みによ
って影響しない。0x40−0xffの範囲のコンフィ
ギュレーション空間のアドレスもまた予約である。ベン
ダー専用のコンフィギュレーションレジスタは定義され
ない。 eg ベンダーID このレジスタは読み込み専用である。CISRAのベン
ダーIDは0x11ACである。 eh デバイスID このレジスタは読み込み専用である。コプロセッサのデ
バイスIDは0x0001である。デバイスIDフィー
ルドは二つの8ビットのフィールドに分割されている:
最上位の8ビットはデバイスの特徴をを示す番号(0x
0はコプロセッサ)で、最下位の8ビットはそのデバイ
スのバージョン番号(0x1はコプロセッサのバージョ
ン)を示す。 ei コマンドレジスタ コマンドレジスタのフィールドの定義を表1.142に
示す。このレジスタのすべての予約されていないビット
は読みこみ/書き込みができる。リセット後にはこのレ
ジスタは0x0000にセットされる。 ej ステータスレジスタ ステータスレジスタのフィ
ールドの定義を表1.143に示す。このレジスタの読
み込みは通常通りである。このレジスタのいくつかのビ
ットは読み込み専用である。その他のビットはコプロセ
ッサのみにより1にセットされ、ホストのみによって0
にリセットされる(テストモードを除く)。ホストはそ
のビットに1を書き込むことでリセットする;0の書き
込みは意味をなさない。リセット後にはこのレジスタは
0x0280にセットされる。 ek リビジョンID これは読み込み専用のレジスタ
である。コプロセッサの初期リビジョンIDは0x01
である。 el クラスコード これは読み込み専用の
レジスタである。コプロセッサはPCISIGの定義さ
れたクラスコードに適さないのでこのレジスタは0xF
F0000にセットされる。 em キャッシュラインサイズ これは32ビットワード単位でシステムのキャッシュラ
インサイズを決定する読み書き可能なレジスタである。
これはコプロセッサがメモリ読み込みラインやメモリ多
重読み込みコマンドを使用するときに決定する。コプロ
セッサはこのレジスタの0から255までの値をサポー
トする。このレジスタにおける0はメモリ読み込みライ
ンおよびメモリ多重読み込みの形式を無効にする。この
レジスタはリセット時には0x00にセットされる。 en 遅延タイマ このレジスタはすべてのPCIの処理にCPUが使用す
る最大のクロック数を特定する読み書きできるレジスタ
である。コプロセッサはこのレジスタにおいて0から2
55の値をサポートする。このレジスタはリセット時に
は0x00にセットされる。 eo ヘッダタイプ この読み込み専用のレジスタは0x00にセットされ
る。このことはコプロセッサがタイプ0のレイアウトの
コンフィギュレーション空間を使用することを意味す
る。 ep ベースアドレス この読み書き可能なレジスタはコプロセッサの内部レジ
スタ、内部メモリ、ローカルメモリ、及び汎用インター
フェースをホストのメモリマップ内に配置するために用
いられる。コプロセッサの様々なリソースは64MB
(すべてが使用される訳ではない)を占有し、従ってこ
のレジスタの先頭6ビットだけが書き込み可能である。
残りのビットはすべて0にハード的に結線されている。
このレジスタの下位の4ビットは読み込み専用の制御ビ
ットであり、これらもまた0に結線されている。このこ
とはレジスタがメモリ空間を参照することを意味し、コ
プロセッサがホスト側の32ビット空間のどこにでもマ
ッピングされ、コプロセッサのリソースがターゲットで
あるときはプリフェッチできないことを意味する。 eq サブシステムベンダーID この読み込み専用レジスタはホストがシステムに実装さ
れたPCIボードのベンダーを識別できるようにする
(ボード上のPCIインターフェースに実装したコンポ
ーネントのベンダーに対して)。このレジスタの内容は
リセット時にEICコンフィギュレーションシリアルポ
ートを用いてロードされる。 er サブシステムID この読み込み専用レジスタはホストがシステムに実装さ
れたPCIボードを識別できるようにする。このレジス
タの内容はリセット時にEICコンフィギュレーション
シリアルポートを用いてロードされる。このメカニズム
はボードの機能あるいはコンフィギュレーションに必要
な情報の外部からの符号化およびホストからの読み込み
を可能にする。 es 割り込みライン この読み書きできるレジスタはシステムソフトウェアが
割り込みラインルーティング情報を記録できる様にする
ために使用され、割り込みサービスソフトウェアにより
アクセスできる。コプロセッサ内の処理には全く影響を
与えない。このレジスタはりセット時には0x00にセ
ットされる。 et 割り込みピン この読み込み専用レジスタはハード的に0x01に結線
されている。このことはコプロセッサがPCIのint
a_1割り込みピンを使用することを示す。 eu Min_Gnt この読み込み専用レジスタはコプロセッサが要求する1
/4マイクロ秒単位のバースト期間長をホストに示す。
このレジスタの最適な値はまだ決まっていない。 ev Max_Lat この読み込み専用レジスタは1/4マイクロ秒単位で
の、コプロセッサが要求するPCIバスのゲインコント
ロール最大遅延をホストに示す。このレジスタの最適な
値はまだ決まっていない。 1.1.4 内部メモリマップ 本節ではコプロセッサの内部メモリマップ内のプレモジ
ュールデータエリアに生ずるオブジェクトの詳細につい
て述べる。 表1.144 コプロセッサ内部メモリマップ 1.1.5 メモリワードフィールド a eic_ptp
【図面の簡単な説明】
【図1】 ホストコンピュータ環境内のラスタ画像コプ
ロセッサの動作を示す図
【図2】 図1のラスタ画像コプロセッサをより詳細に
示した図
【図3】 ラスタ画像コプロセッサのメモリマップを示
す図
【図4】 CPU,命令キュー、命令オペランド、共有
メモリ中の結果、コプロセッサ間の関係を示す図
【図5】 命令生成部、メモリ管理部、キュー管理部、
コプロセッサ間の関係を示す図
【図6】 命令をペンディング命令キューから読み込
み、終了命令キューに配置するグラフィックスコプロセ
ッサの動作を示す図
【図7】 命令キューの固定長巡回バッファ実装を示
し、バッファが溢れるまで待機しする必要性を説明する
【図8】 コプロセッサにおいて用いられる命令実行ス
トリームを示す図
【図9】 命令実行フローチャート、
【図10】 コプロセッサにおいて用いられる標準命令
ワードフォーマットを示す図
【図11】 標準命令の命令ワードフィールドを示す図
【図12】 標準命令のデータワードフィールドを示す
【図13】 図2の命令制御部を模式的に示す図
【図14】 図13の実行制御部をより詳細に示した図
【図15】 命令制御部の状態遷移図
【図16】 図13の命令復号部を示す図
【図17】 図16の命令シーケンサをより詳細に示し
た図
【図18】 図16のIDシーケンサの状態遷移図
【図19】 図13のプレフェッチバッファ制御部をよ
り詳細に示した図
【図20】 コプロセッサで用いられるレジスタ記憶と
モジュール間関連の標準形式を示す図
【図21】 コプロセッサにおいて用いられる制御バス
処理のフォーマットを示す図
【図22】 コプロセッサの一部内のデータフローを示
す図
【図23】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図24】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図25】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図26】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図27】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図28】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図29】 コプロセッサにおいて用いられるさまざま
なデータ再フォーマット例を示す図
【図30】 コプロセッサにおいて実行されるフォーマ
ット変換を示す図
【図31】 コプロセッサにおいて実行されるフォーマ
ット変換を示す図
【図32】 コプロセッサにおいて実行される入力デー
タ変換処理を示す図
【図33】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図34】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図35】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図36】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図37】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図38】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図39】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図40】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図41】 コプロセッサにおいて実行されるさまざま
なデータ変換を示す図
【図42】 コプロセッサにおいて実行されるさまざま
な内部から出力データ変換を示す図
【図43】 コプロセッサにおいて実行されるさまざま
なデータ変換例を示す図
【図44】 コプロセッサにおいて実行されるさまざま
なデータ変換例を示す図
【図45】 コプロセッサにおいて実行されるさまざま
なデータ変換例を示す図
【図46】 コプロセッサにおいて実行されるさまざま
なデータ変換例を示す図
【図47】 コプロセッサにおいて実行されるさまざま
なデータ変換例を示す図
【図48】 どのデータ変換が用いられるべきかを決定
する内部レジスタで用いられるさまざまなフィールドを
示す図
【図49】 データ正規化を用いるグラフィックスサブ
システムのブロック図
【図50】 データ正規化装置の回路図
【図51】 合成処理において実行されるピクセル処理
を示す図
【図52】 合成処理のための命令ワードフォーマット
を示す図
【図53】 合成処理のためのデータワードフォーマッ
トを示す図
【図54】 タイル処理のための命令ワードフォーマッ
トを示す図
【図55】 画像に対するタイル命令の動作を示す図
【図56】 色値を再マッピングするための色区間/区
間内位置テーブルの利用処理を示す図
【図57】 コプロセッサのMUVバッファ内の区間/
区間内位置テーブルの格納形式を示す図
【図58】 コプロセッサにおいて実行される補間を用
いた色変換処理を示す図
【図59】 コプロセッサにおいて実行されるエッジで
の色変換処理の改善処理を示す図
【図60】 コプロセッサにおいて実行される1出力色
のための色空間変換処理を示す図
【図61】 単一色出力色空間変換を用いたときのコプ
ロセッサのキャッシュ内でのメモリ格納を示す図
【図62】 複数色空間変換で用いられる手法を示す図
【図63】 複数色空間変換処理において用いられるキ
ャッシュのためのアドレス再マッピング処理を示す図
【図64】 色空間変換命令における命令ワードフォー
マットを示す図
【図65】 複数色変換手法を示す図
【図66】 コプロセッサで実行されるJPEG変換処
理でのMCUの生成を説明する図
【図67】 コプロセッサで実行されるJPEG変換処
理でのMCUの生成を説明する図
【図68】 コプロセッサのJPEG符号化部の構造を
示す図
【図69】 図68の量子化部をより詳細に示す図
【図70】 図68のハフマン符号化部をより詳細に示
す図
【図71】 ハフマン符号化部と復号部とを示す図
【図72】 ハフマン符号化部と復号部とを示す図
【図73】 コプロセッサで用いられるJPEGデータ
の削除・制約処理を説明する図
【図74】 コプロセッサで用いられるJPEGデータ
の削除・制約処理を説明する図
【図75】 コプロセッサで用いられるJPEGデータ
の削除・制約処理を説明する図
【図76】 JPEG命令の命令ワードフォーマットを
示す図
【図77】 一般の離散コサイン変換装置(従来例)の
ブロック図
【図78】 従来例のDCT装置の算術データパスを示
す図
【図79】 コプロセッサで用いられるDCT装置のブ
ロック図
【図80】 図79の算術回路をより詳細に示すブロッ
ク図
【図81】 図79のDCT装置の算術データパスを示
す図
【図82】 JPEGフォーマットのように符号化され
ていないビットフィールド(バイト整列されているもの
とされていないもの)がインタリーブされた代表的なハ
フマン符号化データを示す図
【図83】 図84のJPEGデータのハフマン復号部
の全体の構造をより詳細に示した図
【図84】 JPEGデータのハフマン復号部の全体の
構造を示す図
【図85】 バイト整列された符号化されていないビッ
トフィールドを入力データから削除するストリッパブロ
ック中のデータ処理を示し、ストリッパから出力される
データに対応するタグ符号の例をも示す図
【図86】 データプレシフタの構成とデータフローを
示す図
【図87】 図81の復号部の制御ロジックを示す図
【図88】 マーカプレシフタの構成とデータフローを
示す図
【図89】 JPEG符号化においてハフマン符号値を
復号する組み合わせ回路のブロック図、
【図90】 パディング領域の概念とパディングビット
の復号部のブロック図
【図91】 復号部から出力され、コプロセッサにおい
て用いられるデータフォーマットの例を示す図
【図92】 画像変換命令において用いられる手法を示
す図
【図93】 画像変換命令における命令ワードフォーマ
ットを示す図
【図94】 コプロセッサで用いられる画像変換カーネ
ルのフォーマットを示す図
【図95】 コプロセッサで用いられる画像変換カーネ
ルのフォーマットを示す図
【図96】 コプロセッサで用いられる画像変換のため
のインデックステーブルの利用処理を示す図
【図97】 変換や畳込みで用いる命令のためのデータ
フィールドフォーマットを示す図、
【図98】 命令ワードのbpフィールドの説明図
【図99】 コプロセッサで用いられる畳込み処理を示
す図
【図100】 コプロセッサで用いられる畳込み命令の
命令ワードフォーマット図
【図101】 コプロセッサで用いられる行列乗算の命
令ワードフォーマット図、
【図102】 コプロセッサで用いられる階層的画像操
作処理を示す図
【図103】 コプロセッサで用いられる階層的画像操
作処理を示す図
【図104】 コプロセッサで用いられる階層的画像操
作処理を示す図
【図105】 コプロセッサで用いられる階層的画像操
作処理を示す図
【図106】 階層的画像命令での命令ワード符号を示
す図
【図107】 コプロセッサで用いられるフロー制御命
令の命令ワード符号を示す図
【図108】 ピクセルオーガナイザをより詳細に示す
【図109】 ピクセルオーガナイザにおけるオペラン
ドフェッチ部をより詳細に示す図
【図110】 コプロセッサで用いられる種々の格納フ
ォーマットを示す図
【図111】 コプロセッサで用いられる種々の格納フ
ォーマットを示す図
【図112】 コプロセッサで用いられる種々の格納フ
ォーマットを示す図
【図113】 コプロセッサで用いられる種々の格納フ
ォーマットを示す図
【図114】 コプロセッサで用いられる種々の格納フ
ォーマットを示す図
【図115】 コプロセッサのピクセルオーガナイザに
おけるMUVアドレス生成部をより詳細に示す図
【図116】 コプロセッサで用いられる多重値(MU
V)バッファのブロック図
【図117】 図116の符号化器の構造を示す図
【図118】 図116の復号器の構造を示す図
【図119】 JPEGモード(ピクセル分解)におい
て読み出しアドレスを生成する図116のアドレス生成
部の構造を示す図
【図120】 JPEGモード(ピクセル復元)におい
て読み出しアドレスを生成する図116のアドレス生成
部の構造を示す図
【図121】 図116の記憶装置を備えるメモリモジ
ュールの構成を示す図
【図122】 読み出しアドレスをメモリモジュールに
多重化する回路の構造を示す図
【図123】 単一ルックアップテーブルモードで動作
するバッファ内にルックアップテーブルエントリがどの
ように格納されるかを示す図
【図124】 多重ルックアップテーブルモードで動作
するバッファ内にルックアップテーブルエントリがどの
ように格納されるかを示す図
【図125】 JPEGモード(ピクセル分解)で動作
するバッファ内にピクセルがどのように格納されるかを
示す図
【図126】 JPEGモード(ピクセル復元)で動作
するバッファから単一カラーがどのように格納されるか
を示す図
【図127】 コプロセッサの結果オーガナイザの構造
をより詳細に示す図
【図128】 コプロセッサのオペランドオーガナイザ
の構造をより詳細に示す図
【図129】 コプロセッサにおいて用いられる主デー
タパス部のためのコンピュータアーキテクチャのブロッ
ク図
【図130】 更なる処理のために入力データオブジェ
クトを受け取り、格納し、再配列するための入力インタ
ーフェースのブロック図
【図131】 入力データオブジェクトに対して算術演
算を実行するための画像データプロセッサのブロック図
【図132】 入力データオブジェクトの1つのチャネ
ルに対して算術演算を実行するためのカラーチャネルプ
ロセッサのブロック図
【図133】 カラーチャネルプロセッサにおける多機
能ブロックのブロック図
【図134】 合成動作のためのブロック図
【図135】 スキャンラインの逆変換を示す図
【図136】 指定されたピクセルにおける値を計算す
るために必要なステップのブロック図
【図137】 画像変換エンジンのブロック図
【図138】 カーネルデスクリップションにおける2
つのフォーマットを示す図
【図139】 bpフィールドの定義と解釈を示す図
【図140】 行列乗算を実行する乗算・加算部のブロ
ック図
【図141】 コプロセッサでのキャッシュ及びキャッ
シュ制御部における制御、アドレス及びデータフローを
示す図
【図142】 キャッシュのメモリ構成を示す図
【図143】 コプロセッサにおけるキャッシュ制御部
のためのアドレスフォーマットを示す図
【図144】 カラーチャネルプロセッサにおける多機
能ブロックのブロック図
【図145】 図144のキャッシュ及びキャッシュコ
ントローラのコプロセッサ入力インターフェーススイッ
チを示す図
【図146】 主アドレス及びデータパスを示すコプロ
セッサの4ボートダイナミックローカルメモリ制御部を
示す図
【図147】 図146の制御部における状態機構図
【図148】 図146の仲裁部における機能を詳細に
リストした擬似コードを示す図
【図149】 図146において用いられる要求者プラ
イオリティビットの構造および用語を示す図
【図150】 コプロセッサにおける外部インターフェ
ース制御部をより詳細に示す図
【図151】 コプロセッサで用いられる物理アドレス
へのマッピング処理又は物理アドレスからのマッピング
処理を示す図
【図152】 コプロセッサで用いられる物理アドレス
へのマッピング処理又は物理アドレスからのマッピング
処理を示す図
【図153】 コプロセッサで用いられる物理アドレス
へのマッピング処理又は物理アドレスからのマッピング
処理を示す図
【図154】 コプロセッサで用いられる物理アドレス
へのマッピング処理又は物理アドレスからのマッピング
処理を示す図
【図155】 図150におけるIBus受信部をより
詳細に示す図
【図156】 図2におけるRBus受信部をより詳細
に示す図
【図157】 図150におけるメモリ管理部をより詳
細に示す図
【図158】 図2における周辺インターフェース制御
部をより詳細に示す図
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI H04N 1/41 G06F 15/62 320A 1/46 H04N 1/40 D 7/24 1/46 Z 7/13 Z (31)優先権主張番号 PO6488 (32)優先日 1997年4月30日 (33)優先権主張国 オーストラリア(AU) (31)優先権主張番号 PO6490 (32)優先日 1997年4月30日 (33)優先権主張国 オーストラリア(AU) (31)優先権主張番号 PO6479 (32)優先日 1997年4月30日 (33)優先権主張国 オーストラリア(AU) (31)優先権主張番号 PO6482 (32)優先日 1997年4月30日 (33)優先権主張国 オーストラリア(AU) (71)出願人 000001007 キヤノン株式会社 東京都大田区下丸子3丁目30番2号 (72)発明者 ドミニク ジップ オーストラリア国 2070 ニューサウスウ ェールズ州 リンドフィールド, ベント ストリート 27 (72)発明者 アイアン リチャード ギブソン オーストラリア国 2034 ニューサウスウ ェールズ州 クージー, マウント スト リート 39 (72)発明者 マーク プルバー オーストラリア国 2042 ニューサウスウ ェールズ州 エンモア, トラファルガー ストリート 15 (72)発明者 ケビン チー・ホーン ウォン オーストラリア国 2118 ニューサウスウ ェールズ州 カーリンフォード, エイド リアン コート 17 (72)発明者 マイケル ジョン ウェブ オーストラリア国 2114 ニューサウスウ ェールズ州 ウェスト デニストーン, グレンナー アベニュー 23 (72)発明者 クリストファー アミーズ オーストラリア国 4051 クイーンズラン ド州 ウィルストン, アンティル スト リート 46 (72)発明者 ポール レイモンド ヒギンボトム オーストラリア国 2073 ニューサウスウ ェールズ州 ウェスト ピンブル, ダイ アナ アベニュー 7 (72)発明者 ウィン ヤン チュン オーストラリア国 2118 ニューサウスウ ェールズ州 カーリンフォード, ケイ ストリート 17

Claims (174)

    【特許請求の範囲】
  1. 【請求項1】 データオブジェクトに画像処理を行う装
    置であって、 前記データオブジェクトの列(ストリーム)を供給する
    データ源手段と、 オペランドオブジェクト列又はアドレスに対応したオペ
    ランドを供給する複数のオペランド源手段と、 画像処理を選択するとともに、該画像処理に対応する複
    数のオプションを有効化、無効化する指示手段と、 前記画像処理およびそのオプションを記憶するコンフィ
    グレーションレジスタと、 前記画像処理の実施に必要な情報を記憶するレジスタフ
    ァイルと、 前記コンフィグレーションレジスタに接続され、前記画
    像処理およびオプションをデコードするデコード手段
    と、 前記デコード手段に接続され、前記デコード手段の出力
    を記憶する制御信号レジスタと、 前記制御信号レジスタ、前記レジスタファイル、前記デ
    ータ源手段及び前記複数のオペランド源手段に接続さ
    れ、(a)前記制御信号レジスタの出力に従って前記デ
    ータ源手段からのデータおよび前記オペランド源手段か
    らの前記オペランドオブジェクトを受け付け、記憶し、
    最配列し、(b)前記制御信号レジスタおよび前記レジ
    スタファイルの出力に従っで前記オペランドオブジェク
    トに対するアドレスを生成し、(c)前記レジスタファ
    イルの前記情報を前記画像処理の現在のステータスを反
    映するように更新する入力インターフェース手段と、 前記入力インターフェース手段、前記レジスタファイル
    及び前記制御信号レジスタに接続され、前記制御信号レ
    ジスタ及び前記レジスタファイルの出力に従って前記入
    力インターフェース手段の出力に演算を行い、処理デー
    タオブジェクトを生成する処理手段と、 前記処理手段に接続され、前記処理データオブジェクト
    を受信するデータ行き先手段とを含む画像処理装置。
  2. 【請求項2】 前記処理手段が、 前記制御信号レジスタおよび前記レジスタファイルの出
    力に従って、前記入力インターフェース手段の出力の一
    部に前記演算処理を行う複数の同一なチャンネル処理手
    段と、 前記複数のチャンネル処理手段に接続され、前記制御信
    号レジスタの出力に従って出力許可信号を発生して前記
    チャンネル処理手段中の前記データオブジェクトの流れ
    を制御するフロー制御手段とを更に有する請求項1記載
    の画像処理装置。
  3. 【請求項3】 前記処理手段が、 前記フロー制御手段に接続され、前記制御信号レジスタ
    の出力にしたがって前記データオブジェクトに前記演算
    処理を行う複数の同一な演算ユニットと、 前記フロー制御手段及び前記演算ユニットに接続され、
    前記制御信号レジスタおよび前記レジスタファイルの出
    力にしたがって、複数の前記演算ユニットの出力と前記
    レジスタファイルの出力を加算する結合手段と、 前記結合手段および前記フロー制御手段に接続され、前
    記結合手段の出力の丸め処理を行い、丸め処理された出
    力の絶対値を得るとともに、前記絶対値を前記制御信号
    レジスタの出力にしたがってクランプする第1の後処理
    手段と、 前記複数の演算ユニットうち選択された複数の演算ユニ
    ットと、前記第1の後処理手段に接続され、前記制御信
    号レジスタの出力に従って、前記選択された複数の演算
    ユニットの出力と前記第1の後処理手段の出力のいずれ
    かを選択し、選択した出力を必要に応じてクランプする
    第2の後処理手投と、 複数の前記演算手段、前記結合手段及び前記第1の後処
    理手段に接続され、前記複数の演算手段と前記第1の後
    処理手段の選択された出力を、複数の前記演算手段と前
    記結合手段の選択された入力にルーティングするルーテ
    ィング回路とを更に有する請求項2記載の画像処理装
    置。
  4. 【請求項4】 255/x(xは0から255までの整
    数)の被除数を含んだ読み出し専用メモリ(ROM)を
    有する請求項1〜3のいずれかに記載の画像処理装置。
  5. 【請求項5】 前記処理手段に含まれる前記チャンネル
    処理手段の数が4である請求項2記載の画像処理装置。
  6. 【請求項6】 2つのピクセル列と減衰値列とを合成す
    る装置であって、 前記ピクセル列の内の第1ピクセル列を供給するデータ
    源手段と、 前記ピクセル列の内の第2ピクセル列を供給する第1の
    オペランド源手段と、 前記減衰値列を供給する第2のオペランド源手段と、 合成処理における複数のオプションを有効化又は無効化
    する指示手段と、 合成処理および前記指示手段の前記オプションを記憶す
    るコンフィグレーションレジスタと、 合成処理の実行に必要な情報を記憶するレジスタファイ
    ルと、 前記コンフィグレーションレジスタに接続され、前記オ
    プションと前記合成処理をデコードするデコード手段
    と、 前記デコード手段に接続され、前記デコード手段の出力
    を記憶する制御信号レジスタと、 前記制御信号レジスタ、前記レジスタファイル、前記デ
    ータ源手段及び前記第1および第2のオペランド源手段
    に接続され、(a)前記制御信号レジスタの出力に従っ
    て前記データ源手段からのピクセルおよび前記第2オペ
    ランド源手段からの前記減衰値を受け付け、記憶し、最
    配列し、(b)前記制御信号レジスタおよび前記レジス
    タファイルの出力に従って、前記第1のオペランド源手
    段からのピクセル列を置き換えるデータオブジェクト列
    を生成し、(c)前記レジスタファイルの前記情報を前
    記合成処理の現在のステータスを反映するように更新す
    る入力インターフェース手段と、 前記入力インターフェース手段、前記レジスタファイル
    及び前記制御信号レジスタに接続され、前記制御信号レ
    ジスタ及び前記レジスタファイルの出力に従って前記入
    力インターフェース手段の出力に演算を行い、合成ピク
    セルを生成する処理手段と、 前記処理手段に接続され、前記合成ピクセルを受信する
    データ行き先手段とを含む合成装置。
  7. 【請求項7】 前記データ源手段および前記第1のオペ
    ランド源手段からのピクセルが4チャンネルから構成さ
    れており、この4チャンネルの内3チャンネルが各ピク
    セルの色を、残りのチャンネルが各ピクセルの不透明度
    を表す請求項6記載の合成装置
  8. 【請求項8】 合成処理の前記オプションが、それぞれ
    のオプションが有効であるときに、 前記データ源手段からのピクセルにおける前記色チャン
    ネルの各々とそのピクセルの不透明度とを乗じる処理
    と、 前記第1のオペランド源手段からのピクセルにおける前
    記色チャンネルの各々とそのピクセルの不透明度とを乗
    じる処理と、 前記第1のオペランド源手段からのピクセル列が前記入
    力インターフェース手段の発生したデータオブジェクト
    列で置換されているか否かを指定する処理と、 どの合成処理が使われているかを指定する処理と、 前記処理手段の出力がクランプされているかラップされ
    ているかを指定する処理と、 前記処理手段中の前記合成ピクセルの各色チャンネルを
    そのピクセルの不透明度で除算する処理とを含む請求項
    7記載の合成装置。
  9. 【請求項9】 前記レジスタファイルの前記情報が、 前記4チャンネルに対するプラス演算子のオフセット 前記4チャンネルに対するブレンドの開始値 前記4チャンネルに対するブレンドの終了値 前記データ源手段からのピクセル列の長さ を含む請求項8記載の合成装置。
  10. 【請求項10】 前記入力インターフェース手段の生成
    する前記データオブジェクト列が、前記データ源手段か
    らのピクセル列の長さに対する0から255までの整数
    のシーケンスである請求項9記載の合成装置。
  11. 【請求項11】 前記処理手段が行う演算処理が、 オプションが有効な時、前記データ源手段からのピクセ
    ルの各色チャンネルを不透明度と乗算し、第1の仮乗算
    ピクセルを生成する処理と、 オプションが有効な時、ブレンドの開始値と終了値の間
    に前記入力インターフェース手段が生成する前記データ
    オブジェクト列を内挿する処理と、 オプションが有効な時、前記第1のオペランド源手段か
    らのピクセルの各色チャンネル又は前記内挿からのブレ
    ンドを、ピクセルの不透明度又はブレンドと乗算し、第
    2の仮乗算ピクセルを生成する処理と、 前記減衰値を前記第2の仮乗算ピクセルと乗算し、減衰
    ピクセルを生成する処理と、 以下の合成処理の一つを前記第1の仮乗算ピクセルと前
    記減衰ピクセルに施し、合成ピクセルを生成する処理
    と、 ここで、(aco,ao)は前記第1の仮乗算ピクセル
    の色ac、不透明度aoを参照し、rは前記プラス演算
    子のオフセット値、wc()はラップ/クランプ演算子
    である前記処理手段の中の合成ピクセルの各色チャンネ
    ルを合成ピクセルの不透明度で除算する処理とを含む請
    求項10記載の合成装置。
  12. 【請求項12】 インターバル値、分割値および色テー
    ブル値の列に対して色空間を変換する装置であって、 前記インターバル値及び分割値を供給するデータ源手段
    と、 与えられる前記インターバル値に対応して前記色テーブ
    ル値を供給するオペランド源手段と、 色変換処理における複数のオプションを有効化又は無効
    化する指示手段と、 前記指示手段の内容を記憶するコンフィグレーションレ
    ジスタと、 前記コンフィグレーションレジスタに接続され、前記指
    示手段の内容をデコードするデコード手段と、 前記デコード手段に接続され、前記デコード手段の出力
    を記憶する制御信号レジスタと、 前記制御信号レジスタ、前記レジスタファイル、前記デ
    ータ源手段及び前記オペランド源手段に接続され、
    (a)前記制御信号レジスタの出力に従って前記データ
    源手段からのインターバル値および分割値を受け付け、
    記憶し、最配列し、出力する(b)前記制御信号レジス
    タの出力に従い、前記インターバル値をアドレスとして
    使用して前記オペランド源手段からの色テーブル値をフ
    ェッチし、記憶し、最配列し、出力する、入力インター
    フェース手段と、 前記入力インターフェース手段及び前記制御信号レジス
    タに接続され、前記制御信号レジスタの出力に従って前
    記入力インターフェース手段の出力に演算を行い、変換
    色を生成する処理手段と、 前記処理手段に接続され、前記変換色を受信するデータ
    行き先手段とを含む色空間変換装置。
  13. 【請求項13】 前記色空間変換処理における前記オプ
    ションが、前記変換色に対して変換処理およびクランプ
    処理を行うか否かを特定することを含む請求項12記載
    の色空間変換装置。
  14. 【請求項14】 前記変換及びクランプ処理が以下の式
    によって計算される請求項13記載の色空間変換装置。 出力値=0 (x≦63の時) =2(x−64) (64≦x≦191の時) =255 (192≦xの時)
  15. 【請求項15】 前記処理手段で行われる前記演算処理
    が、前記分割値の前記色テーブル値への3次元内挿であ
    る請求項14記載の色空間変換装置。
  16. 【請求項16】 元画像にアフィン画像変換を行う装置
    であって、 カーネルデスクリプタと重み関数の重み付けを供給する
    データ源手段と、 前記元画像のインデックステーブルから与えられるイン
    デックステーブルアドレスに応じたインデックステーブ
    ル値を供給する第1のオペランド源手段と、 与えられるアドレスに応じて前記元画像の少なくとも一
    つのピクセルを供給する第2のオペランド源手段と、 アフィン画像変換処理における複数のオプションを有効
    化又は無効化する指示手段と、 前記指示手段の内容を記憶するコンフィグレーションレ
    ジスタと、 前記コンフィグレーションレジスタに接続され、前記指
    示手段の内容をデコードするデコード手段と、 前記デコード手段に接続され、前記デコード手段の出力
    を記憶する制御信号レジスタと、 アフィン画像変換処理の実行に必要な情報を記憶するレ
    ジスタファイルと、前記制御信号レジスタ、前記レジス
    タファイル、前記データ源手段及び前記オペランド源手
    段に接続され、(a)前記制御信号レジスタの出力に従
    って前記データ源手段からのカーネルデスクリプタと重
    み関数の重み付けを受け付け、記憶し、(b)前記カー
    ネルデスクリプタ、前記制御信号レジスタおよび前記レ
    ジスタファイルの出力に従って、前記元画像からフェッ
    チされるピクセルの座標を生成し、(c)前記座標及び
    前記レジスタファイルの出力から、インデックステーブ
    ルアドレスを計算し、(d)前記第1のオペランド源手
    段からインデックステーブルエントリをフェッチし、
    (e)前記インデックステーブルエントリおよび前記座
    標からピクセルアドレスを計算し、(f)前期第2のオ
    ペランド源手段から少なくとも一つのピクセルをフェッ
    チし、該ピクセルを前期制御信号レジスタの出力にした
    がって最配列する入力インターフェース手段と、 前記入力インターフェース手段、前記レジスタファイル
    及び前記制御信号レジスタに接続され、前記制御信号レ
    ジスタ及び前記レジスタファイルの出力に従って前記入
    力インターフェース手段の出力に複数の演算処理を行
    い、変換ピクセルを生成する処理手段と、 前記処理手段に接続され、前記変換ピクセルを受信する
    データ行き先手段とを含むアフィン画像変換装置。
  17. 【請求項17】 前期カーネルデスクリプタが、長形式
    カーネルデスクリプタおよび短形式カーネルデスクリプ
    タの2つの形式を含む請求項16のアフィン画像変換装
    置。
  18. 【請求項18】 前期長形式カーネルディスクリプタ
    が、 座標から始まる元画像と、 元画像水平デルタ、 元画像垂直デルタおよび トランケートのためのバイナリーポイントを含み、 前期短形式カーネルデスクリプタが、 x座標から始まる前記元画像の整数部分およびトランケ
    ートのためのバイナリーポイントを含み、 前期x座標から始まる前記元画像の小数部分を0、x軸
    方向における前記元画像水平デルタを1、y軸方向にお
    ける前記元画像垂直デルタを1とそれぞれ仮定した請求
    項17記載のアフィン画像変換装置。
  19. 【請求項19】 前記座標から始まる元画像が解像度2
    4.24で符号無しの固定小数点値であり、前記元画像
    水平デルタおよび元画像垂直デルタが解像度24.24
    で2の補数固定小数点値である請求項18記載のアフィ
    ン画像変換装置。
  20. 【請求項20】 前記元画像のピクセルが4チャンネル
    を含み、そのうち3チャンネルがピクセルの色を、残り
    のチャンネルがピクセルの不透明度をそれぞれ表す請求
    項16記載のアフィン画像変換装置。
  21. 【請求項21】 前記アフィン画像変換のオプション
    が、 実際のサンプル値を周囲の4ピクセルから共1次内挿に
    よって定めるか、元画像の最も近い位置にあるピクセル
    の値を用いるか、 前記4チャンネルのどれか1つにオフセットを施すか否
    か、 前記元画像からのピクセルに含まれる各色チャンネル
    を、前記元画像からのピクセルの不透明度と乗じるか否
    か、 出力値をクランプするか否か、 出力値の絶対値をラップ又はクランプする前に取得する
    か否か、 の特定を含む請求項20記載のアフィン画像変換装置。
  22. 【請求項22】 前記複数の演算処理が、 オプションが有効な場合、前記元画像からの複数のピク
    セルの各色チャンネルをピクセルの不透明度と乗算し、
    第1の仮乗算ピクセルを生成する処理、 オプションが有効なら、実際のサンプル値を周囲の4ピ
    クセルから共1次内挿によって定め、そうでなければ元
    画像からフェッチされたピクセルの値を実際のサンプル
    値として用いる処理、 複数の前記実際のサンプル値に重み関数を適用して内部
    変換ピクセルを得る処理、 前記カーネルデスクリプタ中の前記バイナリーポイント
    に従って、内部変換ピクセルの小数部を切り捨てる処理
    および、 オプションが有効なとき、前記内部変換ピクセルの絶対
    値を取得し、クランプする処理を含む請求項21記載の
    アフィン画像変換装置。
  23. 【請求項23】 前記重み関数の適用が、各ピクセルに
    異なる重み付けをした前記元画像のサブサンプルピクセ
    ルの2次元配列と前記オフセットの加算によってなされ
    る請求項22記載のアフィン画像変換装置。
  24. 【請求項24】 前記重み関数の前記重み付けが符号付
    きの数値である請求項23記載のアフィン画像変換装
    置。
  25. 【請求項25】 前記アフィン画像変換に必要な情報
    が、 前記サブサンプルの2次元配列の行数および列数、 前記元画像の前記インデックステーブルのベースアドレ
    ス、 前記重み関数に適用するオフセットおよび生成する変換
    ピクセルの数を含む請求項23記載のアフィン画像変換
    装置。
  26. 【請求項26】 畳み込み行列を用いて元画像に畳み込
    み処理を行う装置であって、 カーネルデスクリプタと前記畳み込み行列の係数を供給
    するデータ源手段と、 前記元画像のインデックステーブルから与えられるイン
    デックステーブルアドレスに応じたインデックステーブ
    ル値を供給する第1のオペランド源手段と、 与えられるアドレスに応じて前記元画像のピクセルを供
    給する第2のオペランド源手段と、 畳み込み処理における複数のオプションを有効化又は無
    効化する指示手段と、 前記指示手段の内容を記憶するコンフィグレーションレ
    ジスタと、 前記コンフィグレーションレジスタに接続され、前記指
    示手段の内容をデコードするデコード手段と、 前記デコード手段に接続され、前記デコード手段の出力
    を記憶する制御信号レジスタと、 畳み込み処理の実行に必要な情報を記憶するレジスタフ
    ァイルと、 前記制御信号レジスタ、前記レジスタファイル、前記デ
    ータ源手段及び前記オペランド源手段に接続され、
    (a)前記制御信号レジスタの出力に従って前記データ
    源手段からの前記カーネルデスクリプタと前記畳み込み
    行列の係数を受け付け、記憶し、(b)前記カーネルデ
    スクリプタ、前記制御信号レジスタおよび前記レジスタ
    ファイルの出力に従って、前記元画像からフェッチされ
    るピクセルの座標を生成し、(c)前記座標及び前記レ
    ジスタファイルの出力から、インデックステーブルアド
    レスを計算し、(d)前記第1のオペランド源手段から
    インデックステーブルエントリをフェッチし、(e)前
    記インデックステーブルエントリおよび前記座標からピ
    クセルアドレスを計算し、(f)前期制御信号レジスタ
    の出力にしたがって前期第2のオペランド源手段から複
    数のピクセルをフェッチし、記憶し、最配列する入力イ
    ンターフェース手段と、 前記入力インターフェース手段、前記レジスタファイル
    及び前記制御信号レジスタに接続され、前記制御信号レ
    ジスタの出力に従って前記入力インターフェース手段の
    出力に演算処理を行い、変換ピクセルを生成する処理手
    段と、 前記処理手段に接続され、前記変換ピクセルを受信する
    データ行き先手段とを含む畳み込み処理装置。
  27. 【請求項27】 前期カーネルデスクリプタが、長形式
    カーネルデスクリプタおよび短形式カーネルデスクリプ
    タの2つの形式を含む請求項26の畳み込み処理装置。
  28. 【請求項28】 前期長形式カーネルディスクリプタ
    が、 座標から始まる元画像と、 元画像水平デルタ、 元画像垂直デルタおよびトランケートのためのバイナリ
    ーポイントを含み、 前期短形式カーネルデスクリプタが、 x座標から始まる前記元画像の整数部分およびトランケ
    ートのためのバイナリーポイントを含み、 前期x座標から始まる前記元画像の小数部分を0、x軸
    方向における前記元画像水平デルタを1、y軸方向にお
    ける前記元画像垂直デルタを1とそれぞれ仮定した請求
    項27記載の畳み込み処理装置。
  29. 【請求項29】 前記座標から始まる元画像が解像度2
    4.24で符号無しの固定小数点値であり、前記元画像
    水平デルタおよび元画像垂直デルタが解像度24.24
    で2の補数固定小数点値である請求項28記載の畳み込
    み処理装置。
  30. 【請求項30】 前記元画像のピクセルが4チャンネル
    を含み、そのうち3チャンネルがピクセルの色を、残り
    のチャンネルがピクセルの不透明度をそれぞれ表す請求
    項26記載の畳み込み処理装置。
  31. 【請求項31】 前記畳み込み処理のオプションが、 実際のサンプル値を周囲の4ピクセルから共1次内挿に
    よって定めるか、元画像の最も近い位置にあるピクセル
    の値を用いるか、 前記4チャンネルのどれか1つにオフセットを施すか否
    か、 前記元画像からのピクセルに含まれる各色チャンネル
    を、前記元画像からのピクセルの不透明度と乗じるか否
    か、 出力値をクランプするか否か、 出力値の絶対値をラップ又はクランプする前に取得する
    か否か、 の特定を含む請求項30記載の畳み込み処理装置。
  32. 【請求項32】 前記複数の演算処理が、 オプションが有効な場合、前記元画像からの複数のピク
    セルの各色チャンネルをピクセルの不透明度と乗算し、
    第1の仮乗算ピクセルを生成する処理、 オプションが有効なら、実際のサンプル値を周囲の4ピ
    クセルから共1次内挿によって定め、そうでなければ元
    画像からフェッチされたピクセルの値を実際のサンプル
    値として用いる処理、 複数の前記実際のサンプル値に重み関数を適用して内部
    変換ピクセルを得る処理、 前記カーネルデスクリプタ中の前記バイナリーポイント
    に従って、内部変換ピクセルの小数部を切り捨てる処理
    および、 オプションが有効なとき、前記内部変換ピクセルの絶対
    値を取得し、クランプする処理を含む請求項31記載の
    畳み込み処理装置。
  33. 【請求項33】 前記重み関数の適用が、各ピクセルに
    異なる重み付けをした前記元画像のサブサンプルピクセ
    ルの2次元配列と前記オフセットの加算によってなされ
    る請求項32記載の畳み込み処理装置。
  34. 【請求項34】 前記重み関数の前記重み付けが符号付
    きの数値である請求項31記載の畳み込み処理装置。
  35. 【請求項35】 前記畳み込み処理に必要な情報が、 前記サブサンプルの2次元配列の行数および列数、 前記元画像の前記インデックステーブルのベースアドレ
    ス、 前記重み関数に適用するオフセットおよび生成する変換
    ピクセルの数を含む請求項32記載の畳み込み処理装
    置。
  36. 【請求項36】 変換行列を用いて元データオブジェク
    ト列に線形色空間変換を施す装置であって、 前記元データオブジェクトを供給するデータ源手段と、 与えられる行数に対応して前記変換行列の複数の係数を
    供給するオペラン源手段と、 線形色空間変換処理における複数のオプションを有効化
    又は無効化する指示手段と、 前記指示手段の内容を記憶するコンフィグレーションレ
    ジスタと、 前記コンフィグレーションレジスタに接続され、前記指
    示手段の内容をデコードするデコード手段と、 前記デコード手段に接続され、前記デコード手段の出力
    を記憶する制御信号レジスタと、 前記制御信号レジスタ、前記データ源手段及び前記オペ
    ランド源手段に接続され、(a)前記制御信号レジスタ
    の出力に従って前記データ源手段からの元データオブジ
    ェクトを受け付け、記憶し、出力する(b)前記制御信
    号レジスタの出力に従い、前記オペランド源手段から複
    数の前記係数をフェッチするための前記行数を生成し、
    (c)前記制御信号レジスタの出力に従い、前記係数を
    記憶し、最配列し、出力する入力インターフェース手段
    と、 前記入力インターフェース手段及び前記制御信号レジス
    タに接続され、前記制御信号レジスタの出力に従って前
    記入力インターフェース手段の出力に複数の演算を行
    い、変換データオブジェクトを生成する処理手段と、 前記処理手段に接続され、前記変換データオブジェクト
    を受信するデータ行き先手段とを含む線形色空間変換装
    置。
  37. 【請求項37】 前記変換行列が4行5列であり、 前記データオブジェクトおよび前記変換データオブジェ
    クトが4チャンネルのピクセルであり、該4チャンネル
    のうち3チャンネルがピクセルの色を、残りのチャンネ
    ルがピクセルの不透明度をそれぞれ表し、前記線形色空
    間変換が、以下のように定義される請求項36記載の線
    形色変換処理装置。 ここで、riは変換ピクセルを、aiはオペランドピク
    セルを表す。
  38. 【請求項38】 前記変換行列の係数が解像度12.1
    2の符号付き固定小数点値である請求項37記載の線形
    色変換処理装置。
  39. 【請求項39】 前記線形色空間変換処理における前記
    複数のオプションが、 前記データ源手段からの前記ピクセルの各色チャンネル
    をその不透明度と乗じるか否か、 前記変換データオブジェクトがアンダーフローした際に
    は所定の最低値に、オーバーフローした際には所定の最
    高値にクランプするか否か、 前記変換データオブジェクトの絶対値をラッピング又は
    クランプの前に取得するか否か、を含む請求項38記載
    の線形色変換処理装置。
  40. 【請求項40】 前記処理手段で行われる前記複数の演
    算処理が、 オプションが有効のとき、前記データ源手段からのピク
    セルの各色チャンネルを、その不透明度と乗じて第1の
    仮乗算ピクセルを生成する処理と、 2つのチャンネルを前記変換行列の2つの行と乗算し、
    第1および第2の内部積を得る処理と、 前記第1および第2の内部積および前記変換行列の最後
    の行を加算し、第1の内部加算を得る処理と、 残りの2チャンネルを変換行列の残りの2行と乗じ、第
    3および第4の内部積を得る処理と、 前記第3および第4の内部積を前記第1の内部加算に加
    算し、内部結果を得る処理と、 前記内部結果の小数部を切り捨て、オプションが有効な
    場合、絶対値を取得し、切り捨て処理後の内部結果をク
    ランプする処理とを含む請求項39記載の線形色空間変
    換処理装置。
  41. 【請求項41】 個々に指定された複数のデータを外部
    メモリ中のデータテーブルから供給する装置であって、 m(複数)個のキャッシュラインを構成するn(複数)
    個の独立して指定可能なメモリーバンクを含むキャッシ
    ュメモリと、 前記n個のメモリーバンクにそれぞれ接続されたn個の
    プログラム可能なアドレス発生器であって、該発生器が
    メモリーバンクから同時に複数のデータを読み出すため
    の複数のアドレスをインデックスを使用して発生し、発
    生するアドレスはタグアドレスとラインアドレスを含
    み、 キャッシュメモリ中の対応するラインのタグアドレスを
    記憶するタグメモリと、 キャッシュメモリ中の対応するラインのライン有効ステ
    ータス(line−valid status)を記憶
    するライン有効メモリと、 前記発生器で発生されたアドレスのラインアドレスに対
    応したタグアドレスと、前記タグメモリに記憶されたタ
    グアドレスとを比較し、比較結果が一致し、かつ対応す
    るラインに対するライン有効ステータスが有効である場
    合、ヒット信号を発生するn個のタグ比較器と、 前記ヒット信号に応答してキャッシュメモリから同時に
    複数のデータを読み出す処理を制御し、またヒットシグ
    ナルがない場合は外部メモリからのデータを含む1つま
    たはそれ以上のラインのフェッチを制御するキャッシュ
    コントローラと、 読み出したデータの出力データパケットにおける位置を
    定めるデータオーガナイザとを含むデータ供給装置。
  42. 【請求項42】 前記装置の現在の処理モードを設定す
    るインターフェースを有する請求項41記載のデータ供
    給装置。
  43. 【請求項43】 前記データオーガナイザが前記現在の
    処理モードによって定まる方法によって読み出しデータ
    の出力パケットにおける位置を決定する請求項42記載
    のデータ供給装置。
  44. 【請求項44】 前記アドレス発生器が前記現在の処理
    モードによって定まる方法によって複数のアドレスを発
    生する請求項42または43記載のデータ供給装置。
  45. 【請求項45】 前記タグ比較器が前記現在の処理モー
    ドによって定まるタグアドレスの一部分のみを比較する
    請求項42乃至44に記載のデータ供給装置。
  46. 【請求項46】 前記複数のアドレスが完全外部メモリ
    アドレス形式によって発生される請求項41記載のデー
    タ供給装置。
  47. 【請求項47】 前記メモリーバンクのそれぞれがm個
    のバンクラインからなり、各キャッシュラインが各メモ
    リーバンクのバンクラインから構成される請求項46記
    載のデータ供給装置。
  48. 【請求項48】 前記完全アドレスがタグメモリーに記
    憶されたタグアドレスとの比較に用いられる前記タグア
    ドレス、キャッシュメモリの関係するキャッシュライン
    の指定に用いられる前記ラインアドレス、メモリバンク
    の関係するバンク指定に用いられるバンクアドレスおよ
    びバンクライン中の関係するバイト指定に用いられるバ
    イトアドレスを含む請求項47記載のデータ供給装置。
  49. 【請求項49】 前記アドレス発生器がインデックス及
    び前記現在の処理モードに対応するインデックスアドレ
    スを発生し、該インデックスアドレスが前記完全外部メ
    モリアドレスを発生するためにベースアドレスと加算さ
    れる請求項46乃至48記載のデータ供給装置。
  50. 【請求項50】 前記キャッシュメモリが直接マップキ
    ャッシュである請求項41記載のデータ供給装置。
  51. 【請求項51】 1つかそれ以上のバンクラインが発生
    される対応アドレスに応答してキャッシュメモリから読
    み出される請求項47記載のデータ供給装置。
  52. 【請求項52】 前記複数のデータが1バイトのデータ
    であって、前記データオーガナイザが前記対応アドレス
    のバイトアドレスに応答してバンクラインから読み出さ
    れたデータを選択する手段を有する請求項47のデータ
    供給装置。
  53. 【請求項53】 前記n個のアドレス発生器がn個の異
    なる複合論理回路からなり、該複合論理回路がその入力
    として、ベースアドレス、前記現在の処理モード、イン
    デックスを有し、前記完全外部メモリアドレス形式の発
    生アドレスを出力とする請求項41記載のデータ供給装
    置。
  54. 【請求項54】 個々にアドレス指定された複数のデー
    タを外部メモリ中のデータテーブルから、各々がm(複
    数)個のキャッシュラインを有するn(複数)個の独立
    してアドレス指定可能なメモリーバンクを有するキャッ
    シュメモリを介して供給する方法であって、 タグアドレスとラインアドレスを含み、メモリーバンク
    から同時に複数のデータを読み出すための複数のアドレ
    スを、インデックスを使用して発生するステップと、 キャッシュメモリ中の対応するラインのタグアドレスを
    タグメモリに記憶するステップと、 キャッシュメモリ中の対応するラインのライン有効ステ
    ータス(line−valid status)をライ
    ン有効メモリに記憶するステップと、 前記発生器で発生された複数のアドレスそれぞれについ
    て、タグアドレスと発生されたアドレスのラインアドレ
    スに対応する前記タグメモリに記憶されたタグアドレス
    とを比較し、比較結果が一致し、かつ対応するラインに
    対するライン有効ステータスが有効である場合、ヒット
    信号を発生するステップと、前記ヒット信号に応答して
    キャッシュメモリから同時に複数のデータを読み出す処
    理を制御し、またヒットシグナルがない場合は外部メモ
    リからのデータを含む1つまたはそれ以上のラインのフ
    ェッチを制御するステップと、読み出したデータの出力
    データパケットにおける位置を定めるステップとを含む
    データ供給方法。
  55. 【請求項55】 現在の処理モードを設定するステップ
    を有する請求項54記載のデータ供給方法。
  56. 【請求項56】 前記現在の処理モードによって定まる
    方法によって読み出しデータの出力パケットにおける位
    置を決定するステップを有する請求項54記載のデータ
    供給方法。
  57. 【請求項57】 前記現在の処理モードによって定まる
    方法によって複数のアドレスを発生するステップを有す
    る請求項55または56記載のデータ供給方法。
  58. 【請求項58】 前記現在の処理モードによって定まる
    タグアドレスの一部分のみを比較するステップを有する
    請求項55乃至57に記載のデータ供給方法。
  59. 【請求項59】 前記複数のアドレスを完全外部メモリ
    アドレス形式によって発生する請求項54記載のデータ
    供給方法。
  60. 【請求項60】 前記メモリーバンクのそれぞれがm個
    のバンクラインからなり、前記各キャッシュラインの各
    々が各メモリーバンクのバンクラインから構成される請
    求項59記載のデータ供給方法。
  61. 【請求項61】 前記完全アドレスがタグメモリーに記
    憶されたタグアドレスとの比較に用いられる前記タグア
    ドレス、キャッシュメモリの関係するキャッシュライン
    の指定に用いられる前記ラインアドレス、メモリバンク
    の関係するバンク指定に用いられるバンクアドレスおよ
    びバンクライン中の関係するバイト指定に用いられるバ
    イトアドレスを含む請求項60記載のデータ供給方法。
  62. 【請求項62】 インデックス及び前記現在の処理モー
    ドに対応するインデックスアドレスを発生し、該インデ
    ックスアドレスを前記完全外部メモリアドレスを発生す
    るためにベースアドレスと加算するステップを有する請
    求項59乃至61記載のデータ供給方法。
  63. 【請求項63】 前記キャッシュメモリが直接マップキ
    ャッシュである請求項54記載のデータ供給方法。
  64. 【請求項64】 1つかそれ以上のバンクラインが発生
    される対応アドレスに応答してキャッシュメモリから読
    み出される請求項60記載のデータ供給方法。
  65. 【請求項65】 前記複数のデータが1バイトのデータ
    であって、前記対応アドレスのバイトアドレスに応答し
    てバンクラインから読み出されたデータを選択するステ
    ップを有する請求項64記載のデータ供給方法。
  66. 【請求項66】 前記アドレス発生ステップが、ベース
    アドレス、前記現在の処理モード、インデックスを用
    い、前記完全外部メモリアドレス形式の発生アドレスを
    出力する請求項54記載のデータ供給方法。
  67. 【請求項67】 個々にアドレス指定された複数のデー
    タを外部メモリ中のデータテーブルから供給する装置で
    あって、 m(複数)個のキャッシュラインを構成する複数のメモ
    リーバンクを有するキャッシュメモリであって、前記複
    数のメモリーバンクの各々はm個のバンクラインから構
    成され、前記キャッシュラインの各々が各メモリーバン
    クからの前記バンクラインから構成され、 前記n個のメモリーバンクにそれぞれ接続されたn個の
    プログラム可能なアドレス発生器であって、該各発生器
    がメモリーバンクからデータを読み出すためのアドレス
    をインデックスを使用して発生し、発生するアドレスは
    タグアドレスとラインアドレスおよびバンクアドレスを
    含み、 キャッシュメモリ中の対応するキャッシュラインのタグ
    アドレスを記憶するタグメモリと、 キャッシュメモリ中の対応するラインのライン有効ステ
    ータス(line−valid status)を記憶
    するライン有効メモリと、 前記発生器で発生されたアドレスのラインアドレスに対
    応したタグアドレスと、前記タグメモリに記憶されたタ
    グアドレスとを比較し、比較結果が一致し、かつ対応す
    るラインに対するライン有効ステータスが有効である場
    合、ヒット信号を発生するn個のタグ比較器と、 前記ヒット信号に応答してキャッシュメモリからデータ
    を読み出す処理を制御し、またヒットシグナルがない場
    合は外部メモリからの1つまたはそれ以上のデータを含
    む1つまたはそれ以上のラインのフェッチを制御するキ
    ャッシュコントローラと、 読み出したデータの出力データパケットにおける位置を
    定めるデータオーガナイザとを含むデータ供給装置。
  68. 【請求項68】 前記装置の現在の処理モードを設定す
    るインターフェースを有する請求項67記載のデータ供
    給装置。
  69. 【請求項69】 前記データオーガナイザが前記現在の
    処理モードによって定まる方法によって読み出しデータ
    の出力パケットにおける位置を決定する請求項68記載
    のデータ供給装置。
  70. 【請求項70】 前記アドレス発生器が前記現在の処理
    モードによって定まる方法によって複数のアドレスを発
    生する請求項68または69記載のデータ供給装置。
  71. 【請求項71】 前記タグ比較器が前記現在の処理モー
    ドによって定まるタグアドレスの一部分のみを比較する
    請求項68乃至70に記載のデータ供給装置。
  72. 【請求項72】 前記複数のアドレスが完全外部メモリ
    アドレス形式によって発生される請求項67記載のデー
    タ供給装置。
  73. 【請求項73】 前記完全アドレスがタグメモリーに記
    憶されたタグアドレスとの比較に用いられる前記タグア
    ドレス、キャッシュメモリの関係するキャッシュライン
    の指定に用いられる前記ラインアドレス、メモリバンク
    の関係するバンク指定に用いられるバンクアドレスおよ
    びバンクライン中の関係するバイト指定に用いられるバ
    イトアドレスを含む請求項72記載のデータ供給装置。
  74. 【請求項74】 前記アドレス発生器がインデックス及
    び前記現在の処理モードに対応するインデックスアドレ
    スを発生し、該インデックスアドレスが前記完全外部メ
    モリアドレスを発生するためにベースアドレスと加算さ
    れる請求項71乃至73記載のデータ供給装置。
  75. 【請求項75】 前記キャッシュメモリが直接マップキ
    ャッシュである請求項67記載のデータ供給装置。
  76. 【請求項76】 発生される対応アドレスに応答して1
    つかそれ以上のバンクラインがキャッシュメモリから読
    み出される請求項67記載のデータ供給装置。
  77. 【請求項77】 前記複数のデータが1バイトのデータ
    であって、前記データオーガナイザが前記対応アドレス
    のバイトアドレスに応答してバンクラインから読み出さ
    れたデータを選択する手段を有する請求項76のデータ
    供給装置。
  78. 【請求項78】 前記n個のアドレス発生器がn個の異
    なる複合論理回路からなり、該複合論理回路がその入力
    として、ベースアドレス、前記現在の処理モード、イン
    デックスを有し、前記完全外部メモリアドレス形式の発
    生アドレスを出力とする請求項67記載のデータ供給装
    置。
  79. 【請求項79】 個々にアドレス指定された複数のデー
    タを外部メモリ中のデータテーブルから供給する装置で
    あって、 m(複数)個のキャッシュラインを構成するn(複数)
    個の独立して指定可能なメモリーバンクを含むキャッシ
    ュメモリと、 前記n個のメモリーバンクにそれぞれ接続されたn個の
    プログラム可能なアドレス発生器であって、該発生器が
    メモリーバンクから同時に複数のデータを読み出すため
    の複数のアドレスを1つのインデックスを使用して発生
    し、発生するアドレスはタグアドレスとラインアドレス
    およびバンクアドレスを含み、 キャッシュメモリ中の対応するキャッシュラインのタグ
    アドレスを記憶するタグメモリと、 キャッシュメモリ中の対応するラインのライン有効ステ
    ータス(line−valid status)を記憶
    するライン有効メモリと、 前記発生器で発生されたアドレスのラインアドレスに対
    応したタグアドレスと、前記タグメモリに記憶されたタ
    グアドレスとを比較し、比較結果が一致し、かつ対応す
    るラインに対するライン有効ステータスが有効である場
    合、ヒット信号を発生するn個のタグ比較器と、 前記ヒット信号に応答してキャッシュメモリから複数の
    データ同時に読み出す処理を制御し、またヒットシグナ
    ルがない場合は外部メモリからの1つまたはそれ以上の
    データを含む1つまたはそれ以上のラインのフェッチを
    制御するキャッシュコントローラと、 読み出したデータの出力データパケットにおける位置を
    定めるデータオーガナイザと、 装置の現在の処理モードを設定するインターフェースを
    有し、 前記アドレス発生器が外部メモリに記憶されたテーブル
    に依存する前記現在の処理モードによって定まる方法で
    複数のアドレスを発生するデータ供給装置。
  80. 【請求項80】 データワードフォーマットで供給され
    る入力データの正規化を行う装置であって、 第1データワード及びそれに続くデータワードの形式を
    有する入力データを受信する先入れ先出し(FIFO)
    バッファと、 前記第1データワードを前記FIFOバッファの出力か
    ら受信する入力レジスタと、 該入力レジスタの前記第1データワードおよび前記FI
    FOバッファの出力を正規化出力データワードに変換す
    る組合せ回路と、 該組合せ回路のコンフィグレーション信号を発生する制
    御ユニットと、 前記正規化出力データワードを記憶する出力レジスタと
    を含む正規化装置。
  81. 【請求項81】 前記出力レジスタから前記正規化出力
    ワードを読むグラフィックエンジンと、命令を解読して
    前記グラフィックエンジン及び前記制御ユニットに制御
    信号を供給するプログラムエージェントをさらに有する
    請求項80記載の正規化装置。
  82. 【請求項82】 前記FIFOバッファがリードおよび
    ライト命令を受けつけるように構成されており、前記リ
    ード命令が前記制御ユニットから選択的に供給される請
    求項80または81記載の正規化装置。
  83. 【請求項83】 前記FIFOバッファが空またはデー
    タで満たされている状態にそれぞれ対応したエンプティ
    状態フラグおよびフル状態フラグが選択的に発生され、
    前記FIFOバッファがエンプティおよびフル状態フラ
    グで表される状態に応じて前記リードおよびライト命令
    が供給される請求項82記載の正規化装置。
  84. 【請求項84】 前記入力レジスタが前記制御ユニット
    が供給する読み出し許可信号に応答して前記FIFOバ
    ッファの出力から前記第1データワードを読み取る請求
    項80記載の正規化装置。
  85. 【請求項85】 前記組合せ回路が第1および第2デー
    タワードからのビットを多重化して正規化出力データワ
    ードを発生するように構成された複数の正規化多重化器
    を有する請求項80記載の正規化装置。
  86. 【請求項86】 前記データワードフォーマットが複数
    の32ビットデータワードから構成され、データワード
    はパックドバイトまたはアンパックドバイトが交互に配
    置されてなり、複数のアンパックドバイトを有するデー
    タワードは一つのバリッドバイトから構成され、複数の
    パックドバイトを有するデータワードは32個の1ビッ
    ト、16個の2ビット、8個の4ビット、4個の8ビッ
    トまたは2個の16ビットとから構成されるとともに、
    正規化出力データワードが4個の8ビットからなる請求
    項80記載の正規化装置。
  87. 【請求項87】 前記プログラムエージェントが入力デ
    ータワードがアンパックドバイトを含むかパックドデー
    タオブジェクトを含むかを制御ユニットに知らせる請求
    項86記載の正規化装置。
  88. 【請求項88】 前記入力データワードがパックドデー
    タオブジェクトを含む場合、前記プログラムエージェン
    トがデータオブジェクトのサイズを制御ユニットに知ら
    せる請求項87記載の正規化装置。
  89. 【請求項89】 前記プログラミングエージェントが正
    規化ファクターnによってデータオブジェクトのサイズ
    を表し、前記正規化ファクターnがn=0の時はデータ
    オブジェクトあたり1ビット、n=1はデータオブジェ
    クトあたり2ビット、n=2はデータオブジェクトあた
    り4ビット、n=3はデータオブジェクトあたり8ビッ
    ト、n>3はデータオブジェクトあたり16ビットを示
    す請求項88記載の正規化装置。
  90. 【請求項90】 前記プログラムエージェントが与えら
    れた出力データワードに正規化する連続データオブジェ
    クトの最大値を前記制御ユニットに通知する請求項86
    記載の正規化装置。
  91. 【請求項91】 前記プログラムエージェントが前記最
    大値をチャンネルカウントファクターcで通知し、該チ
    ャンネルカウントファクターcは、c=1が正規化され
    るデータオブジェクトが1つで、出力レジスタに受け渡
    しされることを、c=2は正規化されるデータオブジェ
    クトが2つで、出力レジスタに受け渡しされることを、
    c=3は正規化されるデータオブジェクトが3つで、出
    力レジスタに受け渡しされることを、c=0は正規化さ
    れるデータオブジェクトが4つで、出力レジスタに受け
    渡しされることを、それぞれ示す請求項90記載の正規
    化装置。
  92. 【請求項92】 入力データワードが8ビット幅以下の
    パックドデータオブジェクトから構成される場合、プロ
    グラムエージェントが、前記組合せ回路において第1デ
    ータワードのどのビットが正規化のスタートビットとし
    て使用されているかを順に選択するオフセットファクタ
    ーbを前記制御ユニットに供給する請求項86記載の正
    規化装置。
  93. 【請求項93】 前記オフセットファクターbが前記第
    1データワードの第1バイトの最上位ビット(MSB)
    に対応してたオフセットであり、出力データバイトy
    [7..0]が以下の法則にしたがって生成される請求
    項92記載の正規化装置。
  94. 【請求項94】 前記制御ユニットが前記出力レジスタ
    のうち4バイトを選択し、前記組合せ回路の出力の読み
    取りを許可するバイト制御信号を前記出力レジスタに供
    給する請求項86記載の正規化装置。
  95. 【請求項95】 前記制御ユニットが、入力レジスタか
    ら読み込まれるべく選択されているビットに対応するビ
    ット位置および出力レジスタに書き込まれるべく選択さ
    れているバイトに対応するバイト位置を記録するカウン
    タ手段を有し、前記FIFOバッファが命令処理中に空
    になった場合、その後前記FIFOバッファに読み込ま
    れた入力データの正規化が前記カウンタ手段の状態に基
    づいて再開される請求項94記載の正規化装置。
  96. 【請求項96】 データワードフォーマットで供給され
    る入力データの正規化を行う方法であって、 (a)先入れ先出し(FIFO)バッファに、第1デー
    タワード及びそれに続くデータワードを連続して供給す
    るステップと、 (b)前記第1データワードを前記FIFOバッファの
    出力から入力レジスタに読み込むステップと、 (c)連続データワードをFIFOバッファの出力に送
    るようにFIFOバッファを先送りするステップと、 (d)前記入力レジスタからの前記第1のデータワード
    およびFIFOバッファの出力する前記それに続くデー
    タワードを正規化し、正規化回路の出力としての正規化
    データを生成する正規化ステップと、 (e)前記正規化回路の出力から前記正規化データを出
    力レジスタに読み込むステップとを有し、前記正規化ス
    テップを制御ユニットが発生するコンフィグレーション
    信号にしたがって実行する正規化方法。
  97. 【請求項97】 前記正規化が複数の多重化器によって
    行われる請求項96記載の正規化方法。
  98. 【請求項98】 前記データワードフォーマットが複数
    の32ビットデータワードを含み、データワードはパッ
    クドバイトまたはアンパックドバイトが交互に配置され
    てなり、複数のアンパックドバイトを有するデータワー
    ドは一つのバリッドバイトから構成され、複数のパック
    ドバイトを有するデータワードは32個の1ビット、1
    6個の2ビット、8個の4ビット、4個の8ビットまた
    は2個の16ビットとから構成される請求項96記載の
    正規化方法。
  99. 【請求項99】 制御ユニットから前記FIFOバッフ
    ァ、ラッチおよび正規化回路に、外部から前記制御ユニ
    ットにそれぞれ制御信号を供給するステップを含む請求
    項96記載の正規化方法。
  100. 【請求項100】 1番目と2番目のデータワードがパ
    ックドバイトからなる場合、前記制御信号がデータワー
    ド中のデータオブジェクトのサイズを示す正規化ファク
    ターを含む請求項99記載の正規化方法。
  101. 【請求項101】 ビットオフセットファクターを含む
    制御信号が制御ユニットに供給され、前記ビットオフセ
    ットファクターに基づき1番目または2番目のデータワ
    ードからビットを選択するステップを有する請求項99
    または100記載の正規化方法。
  102. 【請求項102】 ある外部データフォーマットのセッ
    トから選択されたフォーマットで表現された画像オブジ
    ェクトに対して画像処理を行う画像処理装置であって、 前記外部データフォーマットのそれぞれを内部データフ
    ォーマットのセットから選ばれた対応するデータフォー
    マットにマッピングする第1のマッピング手段と、 内部データフォーマットであるときに、画像オブジェク
    トに画像処理を施す計算手段と、 前記画像処理が終了した後で前記内部データフォーマッ
    トのセットの各々を前記外部データフォーマットから選
    択されたデータフォーマットにマッピングする第2のマ
    ッピング手段を含む画像処理装置。
  103. 【請求項103】 前記外部データフォーマットのセッ
    トが、データ単位あたり4チャンネルまでの連続したデ
    ータ列を含む請求項102記載の画像処理装置。
  104. 【請求項104】 前記チャンネルが1、2、4、8、
    または16ビットのサンプルからなる請求項103記載
    の画像処理装置。
  105. 【請求項105】 前記外部データフォーマットのセッ
    トが、あらかじめ定めた数の有効ビットを含むワードの
    連続から構成されるアンパックトビット列形式を含む請
    求項102記載の画像処理装置。
  106. 【請求項106】 前記内部データフォーマットのセッ
    トが、各32ビットワードが4つのアクティブバイトチ
    ャンネルからなる32ビットワード形式を含む請求項1
    02記載の画像処理装置。
  107. 【請求項107】 前記内部データフォーマットのセッ
    トが、各32ビットワードが1つのアクティブバイトチ
    ャンネルを有するアンパックトバイト32ビットワード
    形式を含む請求項102記載の画像処理装置。
  108. 【請求項108】 前記第1および第2のマッピング手
    段が少なくとも以下のマッピング処理の1つかそれ以上
    を実行するように構成されている請求項102記載の画
    像処理装置。 バイト置換 バイトレーンスワップ データ複製
  109. 【請求項109】 前記第1および第2のマッピング手
    段が、マッピング処理を実行するように構成されたデー
    タ操作レジスタを利用可能である請求項102記載の画
    像処理装置。
  110. 【請求項110】 前記マッピング処理が複数のデータ
    チャンネルで同時に実行される請求項102記載の画像
    処理装置。
  111. 【請求項111】 前記第1および第2のマッピング手
    段が、前記画像処理装置に接続された中央処理装置から
    マッピング命令を供給される請求項102記載の画像処
    理装置。
  112. 【請求項112】入力色空間における複数の入力画素か
    らなる入力画像を出力色空間における出力画像に変換す
    る変換方法であって、 前記出力色空間に分散する出力色値を第1のメモリに記
    憶するステップと、 入力画像の隣接画素列を供給し、該列の各画素に以下の
    ステップを施すステップとを有する変換方法。、現在の
    入力画素に最も近い画素に対応した前記分散する出力色
    値をキャッシュメモリが記憶していなかった場合、前記
    第1のメモリからキャッシュメモリに記憶するステップ
    と、 入力画素に対応する前記分散する出力色値の中から、現
    在の入力画素に最も近いものをキャッシュメモリから読
    み出すステップと、 出力色値を前記出力色空間から得るために読み出した出
    力色値を内挿するステップ。
  113. 【請求項113】 各入力画素に最も近い出力色値に対
    する複数のメモリアドレスを発生するステップを含む請
    求項112記載の変換方法。
  114. 【請求項114】 前記アドレス発生ステップが、前記
    メモリアドレスの各々をその1つまたはそれ以上の最上
    位ビットを再配置することによって再マッピングするサ
    ブステップを有する請求項113記載の変換方法。
  115. 【請求項115】 前記アドレス発生ステップが、 前記入力画素の各基本色成分のインターバル値および分
    割値を読み出すサブステップと、 前記入力画素の各基本色成分のインターバル値を連結す
    るサブステップと、 前記連結されたインターバル値を第1アドレスに変換す
    るサブステップと、 前記第1アドレスを前記複数の前記メモリアドレスに変
    換するサブステップとを有する請求項113または11
    4記載の変換方法。
  116. 【請求項116】 前記キャッシュメモリに存在する出
    力色値の中で入力画素に最も近いものを決定するため
    に、前記画素列の各入力画素に対して前記メモリアドレ
    スのタグと以前記憶したタグとを比較するステップと、 キャッシュに保存した出力色値が入力画素に最も近い場
    合、前記メモリアドレスのタグをタブメモリに記憶する
    ステップとをさらに有する請求項113記載の変換方
    法。
  117. 【請求項117】 入力色空間における複数の入力画素
    からなる入力画像を出力色空間における出力画像に変換
    する変換装置であって、 前記出力色空間に分散する出力色値を記憶する第1のメ
    モリと、 入力画像の隣接画素列を供給する手段と、 現在の入力画素に最も近い画素に対応した前記分散する
    出力色値を記憶していなかった場合、前記第1のメモリ
    から記憶するキャッシュメモリと、 入力画素に対応する前記分散する出力色値の中から、現
    在の入力画素に最も近いものをキャッシュメモリから読
    み出す手段と、 出力色値を前記出力色空間から得るために読み出した出
    力色値を内挿する手段とを有する変換装置。
  118. 【請求項118】 各入力画素に最も近い出力色値に対
    する複数のメモリアドレスを発生するアドレス発生手段
    を含む請求項117記載の変換装置。
  119. 【請求項119】 前記メモリアドレスの各々をその1
    つまたはそれ以上の最上位ビットを再配置することによ
    って再マッピングする再マッピング手段を有する請求項
    118記載の変換装置。
  120. 【請求項120】 前記入力画素の各基本色成分のイン
    ターバル値および分割値を読み出す手段と、 前記入力画素の各基本色成分のインターバル値を連結す
    る手段と、 前記連結されたインターバル値を第1アドレスに変換す
    る手段と、 前記第1アドレスを前記複数の前記メモリアドレスに変
    換する手段とを有する請求項118または119記載の
    変換装置。
  121. 【請求項121】 前記キャッシュメモリに存在する出
    力色値の中で入力画素に最も近いものを決定するため
    に、前記画素列の各入力画素に対して前記メモリアドレ
    スのタグと以前記憶したタグとを比較する手段と、 キャッシュに保存した出力色値が入力画素に最も近い場
    合、前記メモリアドレスのタグを記憶するタグメモリと
    をさらに有する請求項118または119記載の変換装
    置。
  122. 【請求項122】 多ポートバーストダイナミックラン
    ダムアクセスメモリ(DRAM)システムであって、 メモリアレイと、 前記メモリアレイを制御するコントローラと、 前記メモリアレイにデータを書き込むための書き込みポ
    ートと、 前記メモリアレイからデータを読み出すための読み出し
    ポートと、 前記メモリアレイと前記読み出しポートの間に配置さ
    れ、前記メモリアレイから読み出されたデータを一時的
    に記憶する先入れ先出し(FIFO)出力バッファか、
    前記メモリアレイと前記書き込みポートの間に配置さ
    れ、前記メモリアレイに書き込まれる前にデータを一時
    的に記憶する先入れ先出し(FIFO)入力バッファを
    有する多ポートバーストDRAMシステム。
  123. 【請求項123】 前記メモリアレイからデータを読み
    出すための複数の読み出しポートと、前記メモリアレイ
    と前記複数の読み出しポートの間に配置され、前記メモ
    リアレイから読み出されたデータを一時的に記憶する複
    数のFIFO出力バッファを有する請求項122記載の
    多ポートバーストDRAMシステム。
  124. 【請求項124】 前記メモリアレイにデータを書き込
    むための複数の書き込みポートと、前記メモリアレイと
    前記複数の書き込みポートの間に配置され、前記メモリ
    アレイに書き込む前のデータを一時的に記憶する複数の
    FIFO入力バッファを有する請求項122または12
    3記載の多ポートバーストDRAMシステム。
  125. 【請求項125】 前記複数のFIFOバッファと前記
    メモリアレイを相互接続する第1の多重化器を有する請
    求項124記載の多ポートバーストDRAMシステム。
  126. 【請求項126】 前記第1の多重化器が前記コントロ
    ーラにより制御される請求項125記載の多ポートバー
    ストDRAMシステム。
  127. 【請求項127】 前記読み出し及び書き込みポートに
    よる前記メモリアレイへのアクセス調停を行う調停手段
    と、 前記メモリアレイにアドレス信号を供給するアドレス通
    信手段であって、前記アドレス信号が前記書き込みポー
    トまたは前記読み出しポートによってメモリアレイへ書
    き込みまたはメモリアレイから読み出しされるデータに
    対応した行アドレスと列アドレス信号を含む請求項12
    2記載の多ポートバーストDRAMシステム。
  128. 【請求項128】 前記アドレス通信手段が、前記読み
    出しまたは書き込みポートに対応した複数のアドレスか
    らあるアドレスを選択する第2の多重化器を含み、前記
    DRAMシステムが前記選択されたアドレスを読み出し
    または書き込みが開始される前記メモリアレイの位置の
    選択に使用する請求項127記載の多ポートバーストD
    RAMシステム。
  129. 【請求項129】 前記アドレス通信手段が、 前記第2の多重化器が選択したアドレスの下位アドレス
    ビットに関連した動的メモリ行アドレスを記憶し、選択
    的に出力する第1のカウンタ手段と、 前記第2の多重化器が選択したアドレスの上位アドレス
    ビットおよび前記第1のカウンタ手段が出力する列アド
    レスを選択することによって、自らの行アドレスと列ア
    ドレスの多重化出力生成を有効化する第3の多重化器と
    を有する請求項128記載の多ポートバーストDRAM
    システム。
  130. 【請求項130】 前記入力FIFOバッファに一時的
    に記憶されているデータワードに対応したデータバイト
    書き込み許可信号を一時的に記憶する第3の複数のFI
    FOバッファと、 前記第3の複数のFIFOバッファから前記データバイ
    ト書き込み許可信号の一つを選択する第4の多重化器を
    有する請求項128または129記載の多ポートバース
    トDRAMシステム。
  131. 【請求項131】 前記第2の多重化器が出力した上位
    アドレスビットに対応した動的メモリ行アドレスを記憶
    し追従する第2のカウンタ手段とを有する請求項128
    または129記載の多ポートバーストDRAMシステ
    ム。
  132. 【請求項132】 前記メモリアレイにリフレッシュ信
    号を供給する手段を有する請求項122記載の多ポート
    バーストDRAMシステム。
  133. 【請求項133】 前記FIFOバッファが2を超える
    深さを有する請求項122記載の多ポートバーストDR
    AMシステム。
  134. 【請求項134】 前記FIFOバッファが16を超え
    る深さを有する請求項133記載の多ポートバーストD
    RAMシステム。
  135. 【請求項135】 前記FIFOバッファが約32の深
    さを有する請求項134記載の多ポートバーストDRA
    Mシステム。
  136. 【請求項136】 前記FIFOバッファが32ビット
    の幅を有する請求項122記載の多ポートバーストDR
    AMシステム。
  137. 【請求項137】 メモリアレイとメモリコントローラ
    を組み合わせた構成を有する多ポートバーストダイナミ
    ックランダムアクセスメモリ(DRAM)装置のアクセ
    ス待ち時間を改良する方法であって、 前記メモリアレイにデータを書き込むための書き込みポ
    ートを供給するステップと、 前記メモリアレイからデータを読み出すための読み出し
    ポートを供給するステップと、 前記メモリアレイと前記読み出しポートの間に配置さ
    れ、前記メモリアレイから読み出されたデータを一時的
    に記憶する先入れ先出し(FIFO)出力バッファか、
    前記メモリアレイと前記書き込みポートの間に配置さ
    れ、前記メモリアレイに書き込まれる前にデータを一時
    的に記憶する先入れ先出し(FIFO)入力バッファの
    いずれかを供給するステップと、 前記FIFO出力バッファまたは前記FIFO入力バッ
    ファにデータを一時的に記憶するステップを含む、多ポ
    ートバーストダイナミックランダムアクセスメモリ(D
    RAM)装置のアクセス待ち時間改良方法。
  138. 【請求項138】 前記メモリアレイからデータを読み
    出すための複数の読み出しポートと、前記メモリアレイ
    と前記複数の読み出しポートの間に配置され、前記メモ
    リアレイから読み出されたデータを一時的に記憶する複
    数のFIFO出力バッファを有する請求項137記載の
    多ポートバーストダイナミックランダムアクセスメモリ
    (DRAM)装置のアクセス待ち時間改良方法。。
  139. 【請求項139】 前記メモリアレイにデータを書き込
    むための複数の書き込みポートと、前記メモリアレイと
    前記複数の書き込みポートの間に配置され、前記メモリ
    アレイに書き込む前のデータを一時的に記憶する複数の
    FIFO入力バッファを有する請求項138記載の多ポ
    ートバーストDRAM装置。
  140. 【請求項140】 前記複数のFIFOバッファと前記
    メモリアレイを相互接続する第1の多重化器を有する請
    求項137または138記載の多ポートバーストDRA
    Mシステム。
  141. 【請求項141】 前記第1の多重化器が前記コントロ
    ーラにより制御される請求項140記載の多ポートバー
    ストDRAMシステム。
  142. 【請求項142】 メモリアレイ、該メモリアレイを制
    御するコントローラ、前記メモリアレイにデータを書き
    込むための書き込みポーと及び前記メモリアレイからデ
    ータを読み出すための読み出しポートを有する多ポート
    バーストDRAMシステムの性能を向上する方法であっ
    て、 前記メモリアレイと前記読み出しポートの間に配置さ
    れ、前記メモリアレイから読み出されたデータを一時的
    に記憶する先入れ先出し(FIFO)出力バッファか、
    前記メモリアレイと前記書き込みポートの間に配置さ
    れ、前記メモリアレイに書き込まれる前にデータを一時
    的に記憶する先入れ先出し(FIFO)入力バッファの
    いずれかを供給するステップを含む方法。
  143. 【請求項143】データ記憶装置であって、 入力データオブジェクトを受信し、前記入力データオブ
    ジェクトを前記装置の多数の処理モードの一つに対応し
    た符号化方法を用いて符号化する符号化器手段と、 前記符号化入力データオブジェクトを前記処理モードに
    従って記憶する記憶手段と、 前記記憶手段の出力を前記処理モードに従って復号化す
    る復号化器手段と、前記処理モードに従って前記記憶手
    段を含むメモリモジュールに対して読み出し及び書き込
    みアドレスを発生するアドレス発生手段と、 前記記憶手段におけるデータオブジェクトの記憶を制御
    する制御信号を発生する制御手段とを有するデータ記憶
    装置。
  144. 【請求項144】 前記符号化器手段が、前記入力デー
    タオブジェクトを前記制御手段によって定められる入力
    データ形式に再編成するための多重化器の如き複数の論
    理回路を有する請求項143記載のデータ記憶装置。
  145. 【請求項145】 前記記憶手段が、 前記符号化データオブジェクトを記憶する複数のメモリ
    モジュールと、 入力される読み出しアドレスを前記記憶手段を構成する
    前記メモリモジュールに対する内部読み出しアドレスへ
    多重化する読み出しアドレス多重化器手段とを有する請
    求項143記載のデータ記憶装置。
  146. 【請求項146】 前記復号化器手段が、前記符号化出
    力データオブジェクトを必要とされる出力データ形式に
    再編成する複数の論理回路を有する請求項143記載の
    データ記憶装置。
  147. 【請求項147】 前記アドレス発生手段が前記記憶手
    段のメモリ書き込みアドレス及びメモリ読み出しアドレ
    スを計算する複数の論理回路を有する請求項143記載
    のデータ記憶装置。
  148. 【請求項148】 前記制御手段が前記記憶手段の制御
    信号を発生する複数の論理回路を有する請求項143記
    載のデータ記憶装置。
  149. 【請求項149】 JPEG圧縮処理過程での最小符号
    化単位分割における画素データの記憶および単一色要素
    の読み出しに使用される請求項143記載のデータ記憶
    装置。
  150. 【請求項150】 JPEG圧縮処理過程での最小符号
    化単位再生における単一色要素の記憶および画素データ
    の読み出しに使用される請求項143記載のデータ記憶
    装置。
  151. 【請求項151】 色空間変換処理における第2データ
    オブジェクトの記憶に使用される請求項143記載のデ
    ータ記憶装置。
  152. 【請求項152】 行列操作に関係する処理において、
    第2データオブジェクトとしての行列係数の記憶及び読
    み出しに使用される請求項143記載のデータ記憶装
    置。
  153. 【請求項153】 複数の第1データアイテムを含む第
    1のデータオブジェクトと、1つかそれ以上の第2デー
    タアイテムを含む第2のデータオブジェクトを記憶する
    データ記憶装置であって、 第1の再編成モードに従って前記第1データアイテムを
    前記第1のデータオブジェクトの中で再編成し、再編成
    第1データオブジェクトを出力する第1の再編成手段
    と、 複数の独立アドレス指定可能なメモリバンクから構成さ
    れる記憶手段であって、該記憶手段が複数のメモリーラ
    インとして構成され、各メモリーラインが各メモリーバ
    ンクからの記憶位置(memory locatio
    n)を含み、 前記第1のデータオブジェクトが前記メモリーラインに
    別個に記憶されている第1の書き込みモードに従って、
    前記再編成第1データオブジェクトを前記複数の記憶手
    段に書き込み、第2書き込みモードに従って前記第2の
    データオブジェクトを前記複数の記憶手段に書き込む書
    き込み手段と、 第1の読み出しモードに従って、前記複数のメモリーバ
    ンクから、前記第1データアイテムを各々が異なる前記
    第1のデータオブジェクトから同時かつ独立して読み出
    し、第2の読み出しモードに従って、前記複数の記憶手
    段から1つかそれ以上の前記第2のデータオブジェクト
    を読み出す読み出し手段と、 第2の再編成モードに従って、前記読み出された複数の
    第1データアイテムの順序を再編成する第2の再編成手
    段と、 前記再編成モード、前記書き込みモード及び前記読み出
    しモードを制御する制御信号を発生する制御手段とを有
    するデータ記憶装置。
  154. 【請求項154】 前記第1の再編成手段が前記第1デ
    ータアイテムの順番を前記第1のデータオブジェクト内
    で回転させる回転手段を有する請求項153記載のデー
    タ記憶装置。
  155. 【請求項155】 前記第2の再編成手段が、前記複数
    の読み出された第1データアイテムの順番を回転させる
    回転手段を有する請求項153記載のデータ記憶装置。
  156. 【請求項156】 前記第1の再編成手段が複数の論理
    回路を含む請求項153記載のデータ記憶装置。
  157. 【請求項157】 前記読み出し手段が入力される読み
    出しアドレスを前記メモリバンクの内部読み出しアドレ
    スへ多重化する読み出しアドレス多重化器手段を有する
    請求項153記載のデータ記憶装置。
  158. 【請求項158】 前記第2の再編成手段が複数の論理
    回路を有する請求項153記載のデータ記憶装置。
  159. 【請求項159】 前記読み出し手段が、前記記憶手段
    に対するメモリ読み出しアドレスを計算する複数の論理
    回路を有する請求項153記載のデータ記憶装置。
  160. 【請求項160】 前記書き込み手段が、前記記憶手段
    に対するメモリ書き込みアドレスを計算する複数の論理
    回路を有する請求項153記載のデータ記憶装置。
  161. 【請求項161】 前記制御手段が前記制御信号を発生
    する複数の論理回路を有する請求項153記載のデータ
    記憶装置。
  162. 【請求項162】 JPEG圧縮処理過程での最小符号
    化単位分割における画素データの記憶および単一色要素
    の読み出しに使用される請求項153記載のデータ記憶
    装置。
  163. 【請求項163】 JPEG圧縮処理過程での最小符号
    化単位再生における単一色要素の記憶および画素データ
    の読み出しに使用される請求項153記載のデータ記憶
    装置。
  164. 【請求項164】 色空間変換処理における第2データ
    オブジェクトの記憶に使用される請求項153記載のデ
    ータ記憶装置。
  165. 【請求項165】 行列操作に関係する処理において、
    第2データオブジェクトとしての行列係数の記憶及び読
    み出しに使用される請求項153記載のデータ記憶装
    置。
  166. 【請求項166】 複数の第1データアイテムを含む第
    1のデータオブジェクトと、1つまたはそれ以上の第2
    データアイテムを含む第2のデータオブジェクトを、複
    数のメモリラインとして構成される独立アドレス指定可
    能な複数のメモリバンクを含み、各メモリーラインが各
    メモリバンクからの記憶位置(memory loca
    tion)を有する記憶手段に記憶する方法であって、 第1の再編成モードに従い、前記第1データアイテムの
    順序を前記第1のデータオブジェクトの内部で再編成
    し、再編成第1データオブジェクトとを出力するステッ
    プと、 前記第1のデータオブジェクトが前記メモリーラインに
    別個に記憶されている第1の書き込みモードに従って、
    前記再編成第1データオブジェクトを前記複数の記憶手
    段に書き込み、第2書き込みモードに従って前記第2の
    データオブジェクトを前記複数の記憶手段に書き込むス
    テップと、 第1の読み出しモードに従って、前記複数のメモリーバ
    ンクから、前記第1データアイテムを各々が異なる前記
    第1のデータオブジェクトから同時かつ独立して読み出
    し、第2の読み出しモードに従って、前記複数の記憶手
    段から1つかそれ以上の前記第2のデータオブジェクト
    を読み出すステップと、 第2の再編成モードに従って、前記読み出された複数の
    第1データアイテムの順序を再編成するステップと、 前記再編成モード、前記書き込みモード及び前記読み出
    しモードを制御する制御信号を発生するステップとを有
    するデータ記憶方法。
  167. 【請求項167】 前記第1の再編成ステップが前記第
    1データアイテムの順番を前記第1のデータオブジェク
    ト内で回転させる回転ステップを有する請求項166記
    載のデータ記憶方法。
  168. 【請求項168】 前記第2の再編成ステップが、前記
    複数の読み出された第1データアイテムの順番を回転さ
    せる回転ステップを有する請求項166記載のデータ記
    憶方法。
  169. 【請求項169】 前記読み出しステップが入力される
    読み出しアドレスを前記メモリバンクの内部読み出しア
    ドレスへ多重化する読み出しアドレス多重化器ステップ
    を有する請求項166記載のデータ記憶方法。
  170. 【請求項170】 前記第1のデータオブジェクトの各
    々が画素データを含み、前記第1データアイテムの各々
    が単一色要素データを有し、複数の前記第1データアイ
    テムの前記読み出しステップが、 JPEG圧縮処理過程での最小符号化単位分割における
    単一色要素の読み出しステップを含む166記載のデー
    タ記憶方法。
  171. 【請求項171】 前記第1のデータオブジェクトの各
    々がデータの単一色要素ブロックを有し、複数の前記第
    1データアイテムの前記読み出しステップが、 JPEG圧縮処理過程での最小符号化単位再生における
    単一色要素の読み出しステップを含む請求項166記載
    のデータ記憶方法。
  172. 【請求項172】 色空間変換処理に用いられる請求項
    166記載のデータ記憶方法。
  173. 【請求項173】 前記第2のデータオブジェクトが行
    列操作に関係する処理に用いられる行列係数である請求
    項166記載のデータ記憶方法。
  174. 【請求項174】 請求項54乃至66、請求項96乃
    至101、請求項112乃至116、請求項137、1
    38、142および請求項166乃至173のいずれか
    に記載の方法に関するコンピュータが実行可能なプログ
    ラムコードが記憶された記憶媒体。
JP16941498A 1997-04-30 1998-04-30 画像処理装置及びその方法 Pending JPH11167627A (ja)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
AUPO6481A AUPO648197A0 (en) 1997-04-30 1997-04-30 Data normalisation circuit
AU6488 1997-04-30
AUPO6482A AUPO648297A0 (en) 1997-04-30 1997-04-30 Reconfigurable data buffer
AU6480 1997-04-30
AUPO6479A AUPO647997A0 (en) 1997-04-30 1997-04-30 Memory controller architecture
AUPO6488A AUPO648897A0 (en) 1997-04-30 1997-04-30 Data normalization technique
AU6490 1997-04-30
AU6479 1997-04-30
AUPO6480A AUPO648097A0 (en) 1997-04-30 1997-04-30 General image processor
AUPO6485A AUPO648597A0 (en) 1997-04-30 1997-04-30 Reconfigurable data cache controller
AU6482 1997-04-30
AUPO6490A AUPO649097A0 (en) 1997-04-30 1997-04-30 Cached colour conversion method and apparatus
AU6485 1997-04-30
AU6481 1997-04-30

Publications (1)

Publication Number Publication Date
JPH11167627A true JPH11167627A (ja) 1999-06-22

Family

ID=27560725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16941498A Pending JPH11167627A (ja) 1997-04-30 1998-04-30 画像処理装置及びその方法

Country Status (1)

Country Link
JP (1) JPH11167627A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115829897A (zh) * 2023-02-17 2023-03-21 湖北芯擎科技有限公司 一种图像融合处理方法、装置、电子设备及介质
CN117097881A (zh) * 2023-10-09 2023-11-21 芯动微电子科技(武汉)有限公司 一种图像处理模块的调试方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115829897A (zh) * 2023-02-17 2023-03-21 湖北芯擎科技有限公司 一种图像融合处理方法、装置、电子设备及介质
CN117097881A (zh) * 2023-10-09 2023-11-21 芯动微电子科技(武汉)有限公司 一种图像处理模块的调试方法和装置
CN117097881B (zh) * 2023-10-09 2024-01-02 芯动微电子科技(武汉)有限公司 一种图像处理模块的调试方法和装置

Similar Documents

Publication Publication Date Title
US6259456B1 (en) Data normalization techniques
US6349379B2 (en) System for executing instructions having flag for indicating direct or indirect specification of a length of operand data
US6336180B1 (en) Method, apparatus and system for managing virtual memory with virtual-physical mapping
US6414687B1 (en) Register setting-micro programming system
US6707463B1 (en) Data normalization technique
US6118724A (en) Memory controller architecture
US6289138B1 (en) General image processor
US6237079B1 (en) Coprocessor interface having pending instructions queue and clean-up queue and dynamically allocating memory
JP4101253B2 (ja) 圧縮装置及びその方法
US7230633B2 (en) Method and apparatus for image blending
US5860086A (en) Video processor with serialization FIFO
US7015921B1 (en) Method and apparatus for memory access
JP3729540B2 (ja) 画像処理装置
JP4227218B2 (ja) 動的メモリ管理装置及びその制御方法
US6822654B1 (en) Memory controller chipset
JP4298006B2 (ja) 画像プロセッサ及びその画像処理方法
AU739533B2 (en) Graphics processor architecture
JPH11167627A (ja) 画像処理装置及びその方法
AU728882B2 (en) Compression
AU760297B2 (en) Memory controller architecture
AU727990B2 (en) Graphics processing system
AU717336B2 (en) Graphics processor architecture
AU766467B2 (en) Graphics processing system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050428

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050428

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20050428

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050428

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080717

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091016

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110809