JPH10512988A - プロセッサのカスタム動作のための方法及び装置 - Google Patents

プロセッサのカスタム動作のための方法及び装置

Info

Publication number
JPH10512988A
JPH10512988A JP9511281A JP51128197A JPH10512988A JP H10512988 A JPH10512988 A JP H10512988A JP 9511281 A JP9511281 A JP 9511281A JP 51128197 A JP51128197 A JP 51128197A JP H10512988 A JPH10512988 A JP H10512988A
Authority
JP
Japan
Prior art keywords
data
bit
bits
operand
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9511281A
Other languages
English (en)
Other versions
JP3739403B2 (ja
Inventor
ゲリット スラベンブルグ
デア ミューレン ピーター ファン
ヨン エッチ チョー
ヴィジェイ ケー メーラー
Original Assignee
フィリップス エレクトロニクス ノース アメリカ コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フィリップス エレクトロニクス ノース アメリカ コーポレイション filed Critical フィリップス エレクトロニクス ノース アメリカ コーポレイション
Publication of JPH10512988A publication Critical patent/JPH10512988A/ja
Application granted granted Critical
Publication of JP3739403B2 publication Critical patent/JP3739403B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 カスタム動作は、マルチメディア機能を有する機能を実施するための処理システムに使用できる。これらカスタム動作は、特別な目的のためにある、すなわち低いコスト及び少ないチップ数の利益と通常の目的であるプロセッサの再プログラム能力の利益とを維持しながら、PCシステムのようなシステムが実時間マルチメディア能力を供給できるようにする。これらのカスタム動作は、オペランドデータを持つ入力データを供給し、結果データを宛先レジスタへ供給するコンピュータシステムで機能する。実施される動作は、クリップ及びサチュレーション動作を含む音声及びビデオ処理を含む。本発明はまた、入力レジスタからの選択オペランドデータでパラレルの動作を実施し、前記宛先レジスタに結果を記憶する。

Description

【発明の詳細な説明】 プロセッサのカスタム動作のための方法及び装置 技術分野 本発明は、例えば、高品質ビデオ及び音声を制御する能力を持ち、特定の高機 能動作を実行するためのシステムのような、マルチメディア機能を含む機能を実 行するプロセッサシステムに用いられるカスタム動作に関する。 背景技術 システムは、マルチ機能PC強調ビークルとして役立つ付加のユニット及び一 般的な目的のためのCPUを有する。通常、PCは、マルチ標準ビデオ及び音声 ストリームを処理しなければならず、ユーザはできるなら圧縮及び伸張を望む。 PCに用いられるCPUチップが低解像度実時間ビデオ伸張ができるが、高品質 ビデオ伸張及び圧縮は、依然できなかった。さらに、ユーザは、ユーザのシステ ムがこのシステムの応答性を犠牲にすることなく生のビデオ及び音声を提供する ことを要求する。 通常の目的及び組み込まれたマイコンのアプリケーション両方のために、高レ ベル言語のプログラムが所望される。コンパイラ及び簡単なプログラムモデルを 最適化することを効果的に支援するために、線形アドレスポインタのマニピュレ ーションを直接支援する大きな、線形アドレス空間、一般目的のレジスタ及びレ ジスタ間の動作のような、あるマイコンアーキテクチャ特性が必要とされる。マ イコンアーキテクチャにおける最近の共通の選択は、64及び128ビットシス テムが現在開発中であるが、32ビット線形アドレス、32ビットレジスタ及び 32ビット整数動作である。 多くのアルゴリズムでのデータマニピュレーションのために、全数ビット(す なわち、32ビットシステムに対する32ビット)を使用するデータ動作は、高 価なシリコン源の浪費である。例えばMPEGビデオストリームの伸張のような 重要なマルチメディアアプリケーションは、8ビットデータアイテムを処理する 大きな実行時間を費やす。小さなデータアイテムを操作するために32、64、 128等のビット動作を用いることは、実行中32、64、128等のビット実 行ハードウェアの不充分な使用となる。従って、カスタム動作は、同時にデータ アイテムを動作し、実行コストのささいな増加だけで何倍も実行態様を改善する 。 例えばサイクル当たりのとても多くの従来のマイコン指令を実行するような、 他の手段による類似の実行態様の増加が達成できるけれでも、これら他の手段は 、一般に低コストを目標にしたアプリケーションにとって高価である。加えて、 n<mであるnの小さなデータアイテムを操作するために、例えば32ビット動作の ような、mビット動作の使用は、実行においてmビット実行ハードウェアの不充 分な使用である。 従来のdsp又はDSP(デジタル信号処理)動作の論理は、モジュロ値を計 算する。本発明のクリップした又はサチュレートした動作は、処理がレジスタの 物理的制限を越えて走るデータを生成するところのシングル処理アプリケーショ ンにおいて、特に有益である。従来、これが起こると、データは物理的に利用可 能な範囲の他方の端にマップされる。信号の処理において、この循環マッピング は、破壊できる。例えば、とても低い音声量は、最高使用の従来スキーム上でマ ップされていた。制御アプリケーション及びビデオ/音声アプリケーションにお いて、モジュロ値は、制御範囲又は密度範囲が飽和するとき、所望されない。 発明の開示 本発明の目的は、特別な目的の、組み込まれた解法、すなわち低コスト及び少 ないチップ数の利益と、通常目的のプロセッサ再プログラム能力を維持する一方 で、実時間マルチメディア能力を供給するためにPCシステムのようなシステム を補強することである。PCアプリケーションのために、本発明は、固定機能の マルチメディアチップ能力に優る。 従って、本発明の目的の一つは、低価格で非常に高いマルチメディア実施を達 成することである。 本発明の他の目的は、小さなカーネルのアプリケーションにおいて、処理速度 を増大することである。 本発明の更に他の目的は、不規則な数のバイト−マニピュレーション命令を必 要とすることなしに、キャッシュ/メモリバンド幅の全利益を達成することであ る。 本発明のもう一つの目的は、マルチメディアアプリケーションにおける実施を 改善するために、特定の高機能動作を供給することである。 本発明の他の目的は、動作の実行において特定ビットの実行ハードウェアを効 果的に使用するカスタム動作を供給することである。 本発明の更に他の目的は、マルチメディアアプリケーションのような特定のア プリケーションに例えば作り変えられたカスタム動作を供給することである。 本発明のもう一つの目的は、シングル命令制御の下、平行処理のためにマルチ オペランドを記憶するマルチオペランドレジスタを用いることである。これは、 サンプルが現在の8又は16ビットである音声及び/又はビデオアプリケーショ ンにおいて特に有利である。 本発明の目的は、丸められた(truncated)範囲の正しい側に、音声又はビデ オ信号のような入力信号を維持するために、クリップ動作を用いることである。 本発明は、ビデオ電話のような低コストの、シングル目的システムから、従来 のパーソナルコンピュータのための再プログラム可能な、マルチ目的プラグイン カードまで用いられることができる。加えて、本発明は、MPEG−1及びMP EG−2のようなポピュラーなマルチメディア標準を簡単に行うシステムに用い られる。さらに、パワフルな通常目的のCPUのまわりの本発明の方向は、公開 されているか所有されているかにかかわらず、各種のマルチメディアアルゴリズ ムを実行できるようにする。 ソースコードレベルで、ソフトウェアの互換性を規定することは、コストと実 施との最適なバランスをとるための自由度を与える利益を持つ。パワフルなコン パイラは、プログラムがポータブルでないアセンブラプログラムに再ソートする 必要が決してないことを保証する。本発明は、プログラマーが精通した機能コー ルシンタックスで呼ばれるdspのような動作でソースコードからパワフルな低 レベル動作を用いられるようにする。 コンピュータシステムは、入力データを入力するため入力レジスタを有し、各 入力データはMビットを有し、オペランドデータはNビットを有する。ここで、 NはM以下である。コンピュータシステムは、選択されたオペランドデータ上で 動作の組を実行するためのプロセッサを有する。動作の各組は、少なくとも一つ の動作を含み、Nビットの結果データを作る。コンピュータシステムは、動作の 各組からの前記結果データを記憶するための宛先レジスタを有する。動作の前記 各組は、クリップ又はサチュレーション動作を含んでもよい。加えて、動作の前 記組は、命令セットの命令に応答して及び平行して実行されてもよい。 本発明のさらに他の目的及び利益は、本発明の好ましい実施例だけが本発明を 実行するのに最も適した図を用いて示され説明されるこれ以降の詳細な説明から 当業者には容易に明らかであろう。理解されるように、本発明は、他の異なる実 施例も可能であるし、それら幾つかの詳細は、本発明から離れることなしに各種 の面から変更できる。従って、これらの図及び説明は、例示であり制限されるべ きではない。 図面の簡単な説明 本発明のこれら及び他の特徴が、図を参照して詳細に説明されるだろう。 第1図は、本発明に用いられるシステム例のブロック図であり、 第2図は、CPUレジスタアーキテキチャの例を示し、 第3(a)図は、メモリのマトリクスの構成例を示し、 第3(b)図は、この例で実行されるタスクを示し、 第4図は、カスタム動作を用いたバイト−マトリクスの置換用アプリケーショ ンを示し、 第5(a)図及び第5(b)図は、第4図に示される前記バイト−マトリクス 置換を実行するための動作のリストを示し、 第6図は、dspiadd動作を示し、 第7図は、dspuadd動作を示し、 第8図は、dspidualadd動作を示し、 第9図は、dspuquadaddui動作を示し、 第10図は、dspimul動作を示し、 第11図は、dspumul動作を示し、 第12図は、dspidualmul動作を示し、 第13図は、dspisub動作を示し、 第14図は、dspusub動作を示し、 第15図は、dspidualsub動作を示し、 第16図は、ifir16動作を示し、 第17図は、ifir8ii動作を示し、 第18図は、ifir8ui動作を示し、 第19図は、ufir16動作を示し、 第20図は、ufir8uu動作を示し、 第21図は、mergelsb動作を示し、 第22図は、mergemsb動作を示し、 第23図は、pack16lsb動作を示し、 第24図は、pack16msb動作を示し、 第25図は、packbytes動作を示し、 第26図は、quadavg動作を示し、 第27図は、quadumulmsb動作を示し、 第28図は、ume8ii動作を示し、 第29図は、ume8uu動作を示し、 第30図は、iclipi動作を示し、 第31図は、uclipi動作を示し、 第32図は、uclipu動作を示す。 発明を実施するための最良の形態 第1図は、本発明に用いられるシステム例のブロック図を示す。このシステム は、マイコン、同期式ダイナミックRAM(SDRAM)のブロック、及びマル チメディアデータストリームの入力及び/又は出力とのインタフェースに必要な 外部回路を有する。 この実施例においては、32ビットCPUは、VLIWプロセッサのコアを形 成する。このCPUは、32ビット線形アドレス空間及び128全通常目的32 ビットレジスタを実行する。このシステムにおいては、これらのレジスタは、バ ンクに分離されていない。そのかわり、どの動作もどのオペランド用レジスタを 使用できる。 このシステムにおいては、CPUは、発行されるべき5つの同時動作まで許容 するVLIW命令セットアーキテクチャを使用する。これらの動作は、この例で は、データパラレルdsp状ユニットと整数及びフローティングポイント計算ユ ニットを含む、前記CPU内の27個の機能ユニットの何れか5つをターゲット にできる。 本発明を利用するCPUの動作セットは、標準ビデオ圧縮及び伸張アルゴリズ ムを劇的に速めるマルチメディア特有の動作に加えて、従来のマイコン動作を含 む。シングル命令でこの例では5つの動作において発せられた動作の一つ、シン グル特別又は「カスタム」動作は、11個の従来のマイコン動作まで実行できる 。VLIW,RISC又は他のアーキテクチャと結合されるマルチメディア特別 動作は、マルチメディアアプリケーションに対して非常に大きな処理能力となる 。本発明は、これらの「マルチメディア」動作を実行するために、データに対す る32、64、128等のビットの1レジスタの使用を許容する。 第2図は、CPUレジスタのアーキテクチャの1例を示す。本実施例のCPU は、r0..r127でラベル付けされる全通常目的32ビットレジスタを有す る。この実施例においては、レジスタr0及びr1が特定の目的のために使用さ れ、r2からr127のレジスタは、本当に通常の目的のレジスタである。 このシステムにおいては、前記プロセッサはクロックサイクル毎に一つの長い 命令を発する。各命令は、数個の動作(本実施例では5つの動作)を含む。各動 作は、動作の実行が通常宛先レジスタの内容の条件付きであることを除いて、R ISCマシン命令と比較できる。 このレジスタ内のデータは、例えば整数表示又はフローティングポイント表示 でもよい。 本実施例においては、整数が考慮され、バイナリの2つの相補ビットパターン としてそれぞれ「符号なし整数」又は「符号あり整数」である。整数の計算は、 トラップを発生しないだろう。結果が表示されないならば、戻ってきたビットパ ターンは、個別の動作記述区分内に規定されているように、特別な動作である。 通常の場合、レギュラーの加減算タイプの動作ためのラップ、dsp状動作に対 する最小又は最大表示値をクランプ又は64ビット結果(例えば整数/符号なし 乗算)の最小32ビット値を返すことである。 本実施例が32ビットアーキテクチャなので、マルチメディア動作で用いられ るデータの値に対してのフローティングポイント表示を使用しない。しかしなが ら、明らかに64ビット、128ビット等のアーキテクチャに対してフローティ ングポイント表示は、マルチメディア動作で用いられるデータの値のために使用 することができる。例えば、シングル精度(32ビット)IEEE-754のフローティ ングポイント計算及び/又はダブル精度(64ビット)IEEE-754のフローティン グポイントは、データ値を表現するために使用できる。 本発明のアーキテクチャにおいては、全ての動作は、任意に「ガード」されて いる。ガード動作は、「ガード」レジスタ(rguard)内の値に依存して条 件付きで行われる。例えば、ガード整数付加(iadd)は、 IF r23 iadd r14 r10→r13 と記述される。 この例では、「if r23 then r13:=r14+r10」である。この「if r23」は、r2 3での値のLSBに依存して真又は偽を評価する。一方、r23のLSBに依存 してr13は、不変か又はr14とr10との整数和を含むように設定される。 例えば本発明の本実施例においては、前記LSBが1と評価されたならば、この 例ではr13、宛先レジスタ(rdest)に書き込まれる。ガード制御は、こ のシステムのプログラマーが見える状態、すなわちレジスタ値、メモリ内容及び デバイス状態に影響する。 本発明でのメモリは、バイトアドレス可能である。ロード及びストアは、「自 然に並んで」いる、すなわち16ビットのロード又はストアは、2のべき乗であ るアドレスをターゲットとする。32ビットのロード又はストアは、4のべき乗 であるアドレスをターゲットとする。当業者は、容易にこれを変形できる。 計算動作は、レジスタ−レジスタ動作である。特定の動作は、1又は2個のソ ースレジスタで行われ、結果は宛先レジスタ(rdest)に書き込まれる。 カスタム動作は、特定の計算動作であり、通常の計算動作に似ている。しかし ながら、これらのカスタム動作は、通常目的のCPUでは見つからない。このカ スタム動作は、例えばマルチメディアアプリケーションのための動作の実施に有 益である。本発明のカスタム動作は、他のアプリケーション同様重要なマルチメ ディアアプリケーションでの実施を劇的に改善するために設計された特別な、高 機能動作である。アプリケーションソースコードに適切に組み込まれるとき、カ スタム動作は、本発明の、フィリップス社によって製造されたTrimedia TM-1の ように高いパラレルのマイコン実行に有利であるアプリケーションを可能とする 。 通常目的及び組み込まれたマイコンを基にしたアプリケーションの両方のため に、高レベル言語のプログラムが望まれる。コンパイラの最適化及び簡単なプロ グラムのモデルを効果的に支援するために、大きな、線形アドレス空間、通常宛 先レジスタ及び線形アドレスポインタの操作を直接支援するレジスタ−レジスタ 間の動作のような、あるマイコンアーキテクチャが必要とされる。 本発明は、2個の16ビットデータのアイテム又は4個の8ビットデータのア イテムを同時に動作するために、例えば32ビットのリソースのようなシステム の全リソースの使用を許容する。この使用は、実行コストについての些細な増大 だけで、何倍も実施を改善する。加えて、この使用は、標準マイコンのリソース から高実行レートを達成する。 数個の高機能カスタム動作は条件枝を削除でき、これは、例えばTM-1命令を持 つフィリップス社のTM-1チップのような本システムの各命令における5つの動作 スロットを計画者が効果的に使用することを助ける。5つのスロット全てを満た すことは、集中計算するマルチメディアアプリケーションの内部ループに特に重 要である。カスタム動作は、本発明が最低のコストで非常に高いマルチメディア 実施を達成することを助ける。 表1は、本発明のカスタム動作のリストである。数個のカスタム動作は、各オ ペランド及び結果の処理が異なる数個のバージョンに存在する。これら異なるバ ージョンのためのニーモニックには、明らかに異なるニーモニック又は名前が割 り当てられ、適切な動作の選択のために各処理を明瞭にしようとしている。 本発明のカスタム動作の使用の例が示される。この例の、バイト−マトリクス 置換は、どのようにカスタム動作が小さなカーネルのアプリケーションでの処理 速度を非常に増大できるかの簡単な例示を供給する。カスタム動作の多くの使用 の場合のように、本場合におけるカスタム動作のパワーは、パラレルにマルチデ ータアイテムを動作する能力から来る。 例えば、メモリ内のバイトのパックされた、4x4のマトリクスを置換する作 業である。このマトリクスは、例えば8ビットのピクセル値を含む。第3(a) 図は、メモリ内のこのマトリクスの組織を示し、第3(b)図は、標準の数学的 表記で、実施すべき作業が示されている。 従来のマイコンの命令でこの動作を実施することは、直線的ではあるが時間の 浪費である。この操作を実施する一つの方法は、(16バイトのうち12バイト だけが再位置決めされる必要があるので)バイトをロードするための12個のロ ードのバイト命令と、これらの新しい位置におけるメモリ内にバイトを記憶させ るための12個のストア−バイト命令とを実施することである。他の方法は、4 個のロード−ワード命令を実施し、レジスタにロードされたワードのバイトを再 位置決めし、それから4個のストア−ワード命令を実施することであろう。残念 ながら、レジスタの前記バイトを再位置決めすることは、これらのバイトを適切 にシフトしマスクする非常に多くの命令を必要とする。24個のロード及びスト アを実施することは、ロード/ストアのユニット内のシフトマスク用ハードウェ アを必ず使用し、より短い命令シーケンスを生ずる。 24個のロード及びストアを実施する問題は、ロード及びストアが本来的に遅 い動作であるということである。これらは、メモリ階層のあり得る遅い層及び少 なくともキャッシュをアクセスしなければならない。他に、バイトのロード及び ストアを実施することは、32ビットのワード−ワイドのアクセスを速く走らせ るとき、キャッシュ/メモリのインタフェースのパワーの浪費である。キャッシ ュ/メモリのバンド幅の充分な利益を得る速いアルゴリズムが、不規則な数のバ イト操作命令を必要としない間は、望まれる。 本発明は、直接且つパラレルにpackバイト及び16ビットハーフワード(p ack16msb 及びpack16lsb)と結合する(mergemsb mergelsb)命令を有する。これら 命令の4個は、パックされたバイトをワードにする操作を速めるためにこの例で 適用できる。 第4図は、バイト−マトリクス置換へのこれらの命令のアプリケーションを示 す。第5(a)図は、マトリクス置換を実行するために必要な動作のリストを示 す。実行命令にアセンブルされるとき、これらのカスタム動作は、例えば命令に つき5個の動作までを許容してしっかりとパックされる。第5(a)図の低レベ ルコードは、例示としてのみここに示される。 第5(a)図の4個のロードワード動作(ld32)の最初のシーケンスは、入力マ トリクスのパックされたワードをレジスタr10,r11,r12及びr13へ 運ぶことである。4個の結合動作(mergemsb及びmergelsb)の次のシーケンスは、 レジスタr14,r15,r16及びr17に中間結果を作ることである。4個 のパック動作(pack16msb及びpack16lsb)の次のシーケンスは、オリジナルのオペ ランドを置き換えるか、又はオリジナルのマトリクスオペランドが他の計算に必 要ならば(TM-1最適化Cコンパイラが自動的にこのような分析を行うだろう)、 前記置換されたマトリクスを分離レジスタに置く。この例においては、前記置換 マトリクスは、分離レジスタ(St32d)、レジスタr18,r19,r20及びr 21に置かれる。4個の最終ストア−ワード動作は、前記置換マトリクスをメモ リに入れる。 このように、本発明のカスタム動作を使用して、バイト−マトリクス置換は、 4個のワード動作と4個のストア−ワード動作(最小可能性)と8個のレジスタ −レジスタデータ操作動作とを必要とする。結果としては、16個の動作、又は バイト当たり一つの動作というレートでのバイト−マトリクス置換である。第5 (b)図は、等価のC言語部分を示す。 24個のロード−バイト及びストア−バイト命令を使用するブルート−フォー スコードについてのカスタム動作を基にしたアルゴリズムの利点は本例において は8個の動作だけ(33%低減)のように見えるが、この利点は実際もっと大き い。第一に、カスタム動作を使用することで、メモリ参照の数が24から8に、 すなわち1/3に低減される。メモリ参照は(本例でカスタム動作を使用したよ うに)レジスタ−レジスタ動作より遅いので、メモリ参照についての低減は、重 要である。 他に、TM-1マイコンハードウェアの実行能力を促進する本システム(TM-1)の コンパイルシステムの能力は、前記カスタム動作を基にしたコードにより強調さ れる。特に、このコンパイルシステムは、メモリ参照の数がレジスタ−レジスタ 動作の数とバランスがとれているとき、このコードの最適スケジュール(アレン ジメント)を一層容易に作る。一般に、高機能マイコンは、シングルサイクルで 処理できるメモリ参照の数に限界がある。結果として、メモリ参照だけを含む長 いシーケンスのコードは、長いTM-1命令内に空の動作スロットを生じ、従ってこ のハードウェアの実行能力を無駄にする。 この例が示すように、本発明のカスタム動作の使用は、計算を実施する必要が ある動作の絶対数を減らし、コンパイルシステムが各CPUの実行能力を充分に 発揮するコードを作ることを助ける。例えば完全MPEGビデオデコーティング アルゴリズム及び動き検出カーネルのためのMPEG画像再構成のような他のア プリケーションは、これは徹底的ではないが、本発明のカスタム動作の使用によ り利益がある。 本発明は、表1にリストされたこれらのカスタム動作を含む。これらカスタム 動作の特性は、以下に述べられるだろう。下記の機能コードにおいては、標準シ ンボル、シンタックス等が用いられる。例えば、temp1及びtemp2は、一時的レジ スタを表す。他に、例として、関数temp1-sign_ext16to32(rsrc<15:0>)は、temp 1が16から32ビット(符号ビット拡張)まで拡張される符号ビット(この例 では第15番ビット)を持つrsrc1の15:0ビット(ビット0から15まで) でロードされる。同様に、temp2-sign_ext16to32(rsrc1<16:31>)は、rsrc1の第 16番ビットから第31番ビットまでが、取り出され(計算するために、第0番 から第15番ビットに「置かれる」)、この例では第31番ビットである符号ビ ットは、第16番ビットから第32番ビットまで拡張された符号である。この符 号拡張は、符号化値として、この例では符号化整数のために用いられる。符号化 されない値に対しては、ゼロで満たすことが用いられる。ゼロ充填の表記は、符 号拡張の表記ととても類似している。例えば、zero_ext8to32(rsrc1<15:0>)は、 第0番ビットから第15番ビットまでの値は動作されるべきであり、第8番ビッ トから第3 2番ビットまではゼロで満たされる。rsrc1,rsrc2及びrdestは、上述のように利 用可能なレジスタの何れでもよい。 下記にリストされる動作各々に対して、この動作は任意にはrguardに特定され るガード(guard)をとる。ガードがあるならば、この例ではそのLSBが 宛先レジスタの修正を制御する。この例では、rguardのLSBが1ならば、この 例ではrdestは書き込まれ、そうでなければrdestは変わらない。dspiabs: dspiabsは、h_dspiabs(ハードウェアdspiabs)に対するpseudo-op、ク リップされた符号のついた絶対値動作である。この動作は、以下の関数を持つ。 このdspiabs動作は、設計者によりdspiabs独立変数と等しい定常第一独立変数 0及び第2独立変数を持つh_dspiabsへ変換されるpseudo動作である。pseudo動 作は、一般にアセンブルソースファイルで用いられない。h_dspiabs動作は、同 じ関数を実施するが、この動作は第一独立変数としてゼロを要求する。 このdspiabs動作は、rsrc1の絶対値を計算し、この結果を{231-1...0}又は{0x 7fffffff...0}の範囲へクリップし、このクリップされた値をrdestへ(宛先レジ スタ)記憶する。全ての値は、符号のついた整数である。dspidualabs: dspidualabsは、h_dspidualabs(ハードウェアdspidualabs)に対す るpseudo-op、符号のついた16ビットハーフワード動作のデュアルにクリップ された絶対値である。この動作は、下記の関数を持つ。 このdspidualabs動作は、設計者によりこの例では第一独立変数として定常ゼ ロ及び第2独立変数としてdspidualabs独立変数を持つh_dspidualabsへ変換され るpseudo動作である。 このdspidualabs動作は、rsrc1の高位及び低位の16ビットハーフワードでの 分離した、2個の16ビットクリップされた符号のついた絶対値計算を実施する 。絶対値の両方は、[0x0...0x7fff]の範囲へクリップされ、rdestの対応ハーフ ワードへ書き込まれる。全ての値は、符号のついた16ビット整数である。h_ds pidualabsは、同じ関数を実施するが、この動作は第一独立変数としてゼロを要 求する。dspiadd:dspiaddは、クリップされた符号のついた加算動作である。こ の動作は、以下の関数を持つ。 第6図に示されるように、このdspiadd動作は、符号のついた和rsrc1+rsrc2を 計算し、この結果を32ビットの符号のついた範囲[231-1...-231]又は[0x7ffff fff...0x80000000]にクリップし、このクリップされた値をrdestへ記憶する。全 ての値は、符号のついた整数である。dspuadd: dspuaddは、クリップされた符号のない加算動作である。この動作は、 以下の関数を持つ。 第7図に示されているように、dspuadd動作は、符号ない和rsrc1+rsrc2を計算 し、この結果を符号のない範囲[232-1...0]又は[0xffffffff...0]にクリップし 、このクリップされた値をrdestへ記憶する。dspidualadd: dspidualaddは、符号のついた16ビットハーフワード動作のデュ アルのクリップされた和である。この動作は、下記の関数を持つ。 第8図に示されるように、このdspidualadd動作は、2個の各対のrsrc1及びrs rc2の高位及び低位16ビットハーフワードの分離した、2個の16ビットクリ ップされた符号のついた和である。これらの和は、範囲[215-1...215]又は[0x7f ff...0x8000]にクリップされ、rdestの対応するハーフワードへ書き込まれる。 全ての値は、符号のついた16ビットの整数である。dspuquadaddui: dspuquadadduiは、符号のない/符号のあるバイト動作のクワッ ドのクリップされた和である。この動作は、以下の関数を持つ。 第9図に示されるように、このdspuquadaddui動作は、4個の各対の対応する 8ビットバイトのrsrc1及びrsrc2の4個の別々の和を計算する。rsrc1のバイト は、符号のない値と考えられ、rsrc2のバイトは、符号のついた値と考えられる 。これら4個の和は、符号のない範囲[255...0]又は[0xff...0]にクリップさる 。従って、バイト和の結果は、符号がない。全ての計算は、精度の損失なしに実 施される。dspimul: dspimulは、クリップされた符号のついた乗算動作である。この動作は 、以下の関数を持つ。 第10図に示されるように、このdspimul動作は、rsrc1 x rsrc2の積を計算し 、 この結果を[231-1...-231]又は[0x7fffffff...0x80000000]にクリップし、この クリップされた値をrdestに記憶する。全ての値は、符号のついた整数である。dspumul: dspumulは、クリップされた符号のない乗算動作である。この動作は、 以下の関数を持つ。 第11図に示されるように、このdspumul動作は、符号のないrsrc1 x rsrc2の 積を計算し、この結果を符号のない範囲[232-1...0]又は[0xffffffff...0]にク リップし、このクリップされた値をrdestに記憶する。dspidualmul: dspidualmulは、符号のついた16ビットのハーフワード動作のデ ュアルのクリップされた乗算である。この動作は、以下の関数を持つ。 第12図に示されるように、dspidualmul動作は、2個の各対の高位及び低位 16ビットハーフワードのrsrc1及びrsrc2に別々に、2個の16ビットクリップ された符号のついた積を計算する。これらの積は、範囲[215-1...-215]又は[0x7 ff f...0x8000]にクリップされ、rdestの対応するハーフワードに書き込まれる。全 ての値は、符号のついた16ビットの整数である。dspisub: dspisubは、クリップされた符号のついた減算動作である。この動作は 、以下の関数を持つ。 第13図に示されるように、このdspisub動作は、rsrc1-rsrc2の差を計算し、 この結果を範囲(0x80000000..0x7fffffff]にクリップし、このクリップされた値 をrdestに記憶する。全ての値は、符号のついた整数である。dspusub: dspusubは、クリップされた符号のない減算動作である。この動作は、 以下の関数を持つ。 第14図に示されるように、このdspusub動作は、rsrc1-rsrc2の符号のない差 を計算し、この結果を符号のない範囲[0.0xffffffff]にクリップし、このクリッ プされた値をrdestに記憶する。dspidualsub: dspidualsubは、符号のついた16ビットのハーフワード動作のデ ュ アルのクリップされた減算である。この動作は、以下の関数を持つ。 第15図に示されるように、このdspidualsub動作は、2個の各対のrsrc1及び rsrc2の高位及び低位16ビットハーフワードで別々に2個の16ビットクリッ プされた符号のついた差を計算する。これらの差は、範囲[215-1,,,-215]又は[0 x7fff...0x8000]にクリップされ、rdestの対応するハーフワードに書き込まれる 。全ての値は、符号のついた16ビット整数である。ifir16: ifir16は、符号のついた16ビットハーフワード動作の積の和である。 この動作は、以下の関数を持つ。 第16図に示されるように、このifir16動作は、rsrc1及びrsrc2の対応する1 6ビットハーフワードの2個の各対の2個の別々の積を計算する。これら2個の 積は加算され、この結果はrdestに書き込まれる。全てのハーフワードは、符号 がついてると考えられる。従って、これらの積及び積の最終的和は、符号がある 。全ての計算は、精度の損失なしに実施される。ifir8ii: ifir8iiは、符号のついたバイト動作の積の符号のついた和である。こ の 動作は、以下の関数を持つ。 第17図に示されるように、このifir8ii動作は、rsrc1及びrsrc2の対応する 8ビットバイトの4個の各対の4個の別々の積を計算する。これら4個の積は加 算され、この結果はrdestに書き込まれる。全ての値は、符号がついてると考え られる。従って、これらの積及び積の最終的和は、符号がある。全ての計算は、 精度の損失なしに実施される。ifir8ui: ifir8uiは、符号のない/符号のついたバイト動作の積の符号のついた 和である。この動作は、以下の関数を持つ。 第18図に示されるように、このifir8ui動作は、rsrc1及びrsrc2の対応する 8ビットバイトの4個の各対の4個の別々の積を計算する。これら4個の積は加 算され、この結果はrdestに書き込まれる。rsrc1からのバイトは、符号がないと 考 えられるが、rsrc2からのバイトは符号があると考えられ、従ってこれらの積及 び積の最終的和は、符号化される。全ての計算は、精度の損失なしに実施される 。ufir16: ufir16は、符号のない16ビットハーフワード動作の積の和である。こ の動作は、以下の関数を持つ。 第19図に示されるように、このufir16動作は、 rsrc1及びrsrc2の対応する 16ビットハーフワードの2個の各対の2個の別々の積を計算し、これら2個の 積は加算され、この結果はrdestに書き込まれる。全てのハーフワードは符号が ないと考えられ、従ってこれらの積及び積の最終的和は、符号がない。全ての計 算は、精度の損失なしに実施される。積のこの最終的和は、rdestに書き込まれ る前に範囲[0xffffffff...0]にクリップされる。ufir8uu: ufir8uuは、符号のないバイト動作の積の符号のない和である。この動 作は、以下の関数を持つ。 第20図に示されるように、このufir8uu動作は、 rsrc1及びrsrc2の対応する 8ビットバイトの4個の各対の2個の別々の積を計算し、これら4個の積は加算 され、この結果はrdestに書き込まれる。全てのバイトは符号がないと考えられ る。 全ての計算は、精度の損失なしに実施される。mergelsb: mergelsbは、マージの最小バイト動作である。この動作は、以下の関 数を持つ。 第21図に示されるように、このmergelsb動作は、独立変数rsrc1及びrsrc2か らrdestへの最小バイトの2個の各対をインタリーブする。rsrc2からの最小バイ トは、rdestの最小バイトにパックされ、rsrc1からの最小バイトは、第2最小バ イト又はrdestにパックされ、rsrc2からの第2最小バイトは、rdestの第2最大 バイトにパックされ、rsrc1からの第2最小バイトは、rdestの最大バイトにパッ クされる。mergemsb: mergemsbは、マージの最大バイト動作である。この動作は、以下の関 数を持つ。 第22図に示されるように、このmergemsb動作は、独立変数rsrc1及びrsrc2か らrdestへの最大バイトの2個の各対をインタリーブする。rsrc2からの第2最大 バイトは、rdestの最小バイトにパックされ、rsrc1からの第2最大バイトは、第 2最小バイト又はrdestにパックされ、rsrc2からの最大バイトは、rdestの第2 最大バイトにパックされ、rsrc1からの第2最大バイトは、rdestの最大バイトに パックされる。pack16lsb: pack16lsbは、パック最小16ビットハーフワード動作である。この 動作は、以下の関数を持つ。 第23図に示されるように、このpack16lsb動作は、独立変数rsrc1及びrsrc2 からrdestへの2個の各最小ハーフワードをパックする。rsrc1からのこのハーフ ワードは、rdestの最大ハーフワードにパックされ、rsrc2からのこのハーフワー ドは、最小ハーフワード又はrdestにパックされる。pack16msb: pack16msbは、パック最大16ビット動作である。この動作は、以下 の関数を持つ。 第13図に示されるように、このpack16msb動作は、独立変数rsrc1及びrsrc2 からrdestへの2個の各最大ハーフワードをパックする。rsrc1からのこのハーフ ワードは、rdestの最大ハーフワードにパックされ、rsrc2からのこのハーフワー ドは、最小ハーフワード又はrdestにパックされる。packbytes: packbytesは、パック最小バイト動作である。この動作は、以下の関 数を持つ。 第25図に示されるように、このpackbytes動作は、独立変数rsrc1及びrsrc2 からrdestへの2個の各最小バイトをパックする。rsrc1からのこのバイトは、rd estの第2最小バイトにパックされ、rsrc2からのこのバイトは、最小バイト又は rdestにパックされる。rdestのこれら2個の最大バイトは、ゼロで満たされる。quadavg: quadavgは、符号のないバイト換算クワッド平均動作である。この動作 は、 以下の関数を持つ。 第26図に示されるように、このquadavg動作は、独立変数rsrc1及びrsrc2の 4個の各対の4個の別個の平均を計算する。全てのバイトは、符号がないと考え られる。各平均の最小8ビットは、rdestの対応するバイトに書き込まれる。オ ーバフローがないか又はアンダーフローがないかの検出が実施される。quadumulmsb: quadumulmsbは、符号のないクワッド8ビット乗算最大動作である 。この動作は、以下の関数を持つ。 第27図に示されるように、このquadumulmsb動作は、rsrc1及びrsrc2の対応 する8ビットバイトの4個の各対の4個の別個の積を計算する。全てのバイトは 、符号がないと考えられる。各16ビット積の最大8ビットは、rdestの対応す るバイトに書き込まれる。ume8ii: ume8iiは、符号のついた8ビット差動作の絶対値の符号のない和である 。この動作は、以下の関数を持つ。 第28図に示されるように、このume8ii動作は、rsrc1及びrsrc2の対応する符 号のついた8ビットバイトの4個の各対の4個の別々の差であり、これら4個の 差の絶対値が加算され、この和はrdestに書き込まれる。全ての計算は、精度の 損失なしに実施される。ume8uu: ume8uuは、符号のない8ビット差動作の絶対値の和である。この動作は 、以下の関数を持つ。 第29図に示されるように、このume8uu動作は、rsrc1及びrsrc2の対応する符 号のない8ビットバイトの4個の各対の4個の別々の差である。これら4個の差 の絶対値が加算され、この和はrdestに書き込まれる。全ての計算は、精度の損 失なしに実施される。iclipi: iclipiは、符号のついた動作への符号のついたクリップである。この動 作は以下の関数を持つ。 このiclipi動作は、クリップされたrsrc1の値を符号のない整数範囲(-rsrc2-1 )からrsrc2まで含めて戻す。独立変数rsrc1は、符号のついた整数と考えられる 。rsrc2は、符号のない整数と考えられ、0から0x7fffffffまで含んだ範囲内の値 を持つ。uclipi: uclipiは、符号のない動作への符号のついたクリップである。この動作 は以下の関数を持つ。 このuclipi動作は、クリップされたrsrc1の値を符号のない整数範囲0からrsrc 2まで含めて戻す。独立変数rsrc1は、符号のない整数と考えられる。rsrc2は、 符号のない整数と考えられる。uclipu: uclipuは、符号のない動作への符号のないクリップである。この動作は 以下の関数を持つ。 このuclipu動作は、クリップされたrsrc1の値を符号のない整数範囲0からrsrc 2まで含めて戻す。独立変数rsrc1及びrsrc2は、符号のない整数と考えられる。 上記カスタムマルチメディア動作の使用により、アプリケーションは、低コス トでマルチメディア機能の高度のパラレルなマイコン実施という利益が得られる 。 これまでに開示したように、本発明がVLIW,RISC,スーパースケーラ ー等の命令フォーマットに用いられる多くの高度のパラレルなマイコン実施に用 いられることは、容易に理解できる。加えて、当業者は、上記概念を基にして付 加の動作を容易に付加することができる。例えば、バイトのクワッドのクリップ された減算は特に述べないが、当業者であれば明瞭にこれまでの開示されたこと を基にしてその動作を容易に開発できる。 マルチメディア機能を実施する使用のためのカスタム動作用システム及び方法 が述べられた。 これまでの開示において、本発明の好ましい実施例だけが述べられたが、前述 のように本発明は、各種他の組み合わせ及び環境でも使用でき、ここに述べられ た本発明の概念の範囲内で変更又は修正ができることは、理解されるべきである 。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GE,H U,IL,IS,JP,KE,KG,KP,KR,KZ ,LC,LK,LR,LS,LT,LU,LV,MD, MG,MK,MN,MW,MX,NO,NZ,PL,P T,RO,RU,SD,SE,SG,SI,SK,TJ ,TM,TR,TT,UA,UG,US,UZ,VN (72)発明者 ファン デア ミューレン ピーター アメリカ合衆国 シーエー 94087 サニ ーヴェイル ウェスト ニッカーボッカー ドライブ 753 (72)発明者 チョー ヨン エッチ アメリカ合衆国 エヌジェイ 08540 プ リンストン オータム ヒル ロード 110 (72)発明者 メーラー ヴィジェイ ケー アメリカ合衆国 シーエー 94555 フレ モント シャムロック コモン 5388

Claims (1)

  1. 【特許請求の範囲】 1 Mビットを有し、このMビットのうちのMより小さいNビットを有するオペ ランドデータを持つ、入力データを入力する入力レジスタと、命令セットの命令 制御の下、前記入力データの前記オペランドデータで多数の動作Qをパラレルに 実施し、Nビットの結果データを作るためのプロセッサと、Mビットの一つの出 力として結果データのQグループを記憶するための宛先レジスタとを有すること を特徴とするコンピュータシステム。 2 少なくとも二つのMより小さいNビットを有するオペランドデータを各々有 するMビットの入力データを供給するための入力レジスタと、前記入力データの オペランドデータの選択されたセットに対してパラレルにNビットの結果データ を各々作るグループの動作を実施するための特別目的プロセッサであって、命令 セットの命令に応じて実施するプロセッサと、Mビットの一つの出力としてNビ ットの前記結果データを記憶するための、Mビットを有する宛先レジスタとを有 することを特徴とするコンピュータシステム。 3 Mビットの関連入力レジスタの入力データ各々がNビットの第1オペランド データとNビットの第2オペランドデータとを有し、前記プロセッサが、Nビッ トの第1結果を作るために第1入力データの第1オペランドデータを第2入力デ ータの第1オペランドデータに加え、Nビットの第2結果を作るために第1入力 データの第2オペランドデータを第2入力データの第2オペランドデータに加え るための手段と、各当該結果を特定の範囲にクリップして、Nビットにそれぞれ クリップされた結果を作るための手段とを有し、前記宛先レジスタが前記それぞ れクリップされた結果を一緒に記憶することを特徴とする請求項2に記載のコン ピュータシステム。 4 Mビットの前記入力データ各々がNビットの2つのオペランドデータを有し 、前記プロセッサが、各オペランドデータの絶対値を計算し、各計算が各Nビッ トの絶対値を作るための手段と、クリップされたNビットの結果をそれぞれ作る ために、各絶対値を特定の範囲にクリップするための手段とを有し、前記宛先レ ジスタが前記それぞれクリップされた結果を一緒に記憶することを特徴と する請求項2に記載のコンピュータシステム。 5 Mビットの前記入力データがNビットを有する第1オペランドデータとNビ ットを有する第2オペランドデータとを有し、前記プロセッサが、Nビットの第 1の積を作るために、第1入力データの第1オペランドデータを第2入力データ の第1オペランドと乗算し、Nビットの第2の積を作るために、第1入力データ の第2オペランドデータを第2入力データの第2オペランドデータと乗算する手 段と、Nビットのそれぞれクリップされた結果を作るために、各前記積を特定の 範囲にクリップするための手段とを有し、前記宛先レジスタが前記それぞれクリ ップされた結果を一緒に記憶することを特徴とする請求項2に記載のコンピュー タシステム。 6 Mビットの前記入力データがNビットを有する第1オペランドデータとNビ ットを有する第2オペランドデータとを有し、前記プロセッサが、Nビットの第 1の差を作るために、第1入力データの第1オペランドデータを第2入力データ の第1オペランドから減算し、Nビットの第2の差を作るために、第1入力デー タの第2オペランドデータを第2入力データの第2オペランドから減算する手段 と、Nビットのそれぞれクリップされた結果を作るために、第1の差及び第2の 差を特定の範囲にクリップするための手段とを有し、前記宛先レジスタが前記そ れぞれクリップされた結果を一緒に記憶することを特徴とする請求項2に記載の コンピュータシステム。 7 Mビットの前記入力データがそれぞれNビットの少なくともPが2であるP 個のオペランドデータを有し、前記プロセッサが、前記P個のオペランドデータ のオペランドデータそれぞれに対して、第1入力データの各オペランドデータを 第2入力データの各オペランドデータに加え、各加算がNビットの各和を作るた めの手段と、それぞれの和を特定の範囲にクリップして、NビットのP個の各ク リップされた結果を作るための手段とを有し、前記宛先レジスタが前記P個のそ れぞれクリップされた結果を記憶することを特徴とする請求項2に記載のコンピ ュータシステム。 8 Mビットの前記入力データがそれぞれNビットの少なくともPが2であるP 個のオペランドデータを有し、前記プロセッサが、前記P個のオペランドデー タのオペランドデータそれぞれに対して、第1入力データの各オペランドデータ を第2入力データの各オペランドデータから減算し、各減算がNビットの各差を 作るための手段と、それぞれの差を特定の範囲にクリップして、NビットのP個 の各クリップされた結果を作るための手段とを有し、前記宛先レジスタが前記P 個のそれぞれクリップされた結果を記憶することを特徴とする請求項2に記載の コンピュータシステム。 9 Mビットの前記入力データがそれぞれNビットの少なくともPが2であるP 個のオペランドデータを有し、前記プロセッサが、前記P個のオペランドデータ のオペランドデータそれぞれに対して、第1入力データの各オペランドデータと 第2入力データの各オペランドデータとを乗算し、各乗算がNビットの各積を作 るための手段と、それぞれの積を特定の範囲にクリップして、NビットのP個の 各クリップされた結果を作るための手段とを有し、前記宛先レジスタが前記P個 のそれぞれクリップされた結果を記憶することを特徴とする請求項2に記載のコ ンピュータシステム。 10 Mビットの前記入力データがそれぞれNビットの少なくともPが2である P個のオペランドデータを有し、前記プロセッサが、前記P個のオペランドデー タのオペランドデータそれぞれに対して、第1入力データの各オペランドデータ と第2入力データの各オペランドデータとの各平均を計算し、各計算がNビット の各平均を作るための手段を有し、前記宛先レジスタが前記P個のそれぞれの平 均を記憶することを特徴とする請求項2に記載のコンピュータシステム。 11 Mビットの前記入力データがそれぞれNビットの少なくともPが2である P個のオペランドデータを有し、前記プロセッサが、前記P個のオペランドデー タのオペランドデータそれぞれに対して、第1入力データの各オペランドデータ と第2入力データの各オペランドデータとを乗算し、各乗算が2*Nビットの各 積を作るための手段を有し、前記宛先レジスタが各中間データを形成するために 各積の合計Nビットである選択されたビットを検索し、Mビットである宛先レジ スタの前記P個の各中間データを記憶することを特徴とする請求項2に記載のコ ンピュータシステム。 12 Mビットの入力データを供給する入力レジスタと、P個の入力データのた めに前記入力データのMより小さいNビットデータを検索するためのプロセッサ と、前記P個の入力データの各検索されたNビットデータを記憶するための宛先 レジスタとを有することを特徴とするコンピュータシステム。 13 Mビットの入力データを供給する入力レジスタと、P個の入力データのた めに前記入力データのMより小さいNビットデータを検索するためのプロセッサ とを有し、前記プロセッサが宛先レジスタの前記P個の入力データの前記各検索 されたNビットデータをパックするための手段を有することを特徴とする請求項 12に記載のコンピュータシステム。 14 Pが2であり、NがMの半分であり、前記プロセッサが前記入力データの 最大ビット又は前記入力データの最小ビットの一つを検索することを特徴とする 請求項12に記載のコンピュータシステム。 15 第1及び第2入力データが供給され、前記プロセッサが、各入力データの 最大ビット(msb)を検索し、各最大ビットが前記最大ビットの最大ビット( mmsb)として及び前記最大ビットの最小ビット(lmsb)として供給され 、パックするための前記手段が、宛先レジスタの最大ビットとして第1入力デー タの前記最大ビット(mmsb)の最大ビットをパックし、パックするための前 記手段が、前記宛先レジスタの次の最大ビットとして第2入力データの前記最大 ビット(mmsb)の最大ビットをパックし、パックするための前記手段が、前 記宛先レジスタの最小ビットとして第2入力データの前記最大ビツト(lmsb )の最小ビットをパックし、パックするための前記手段が、前記宛先レジスタの 次の最小ビットとして第1入力データの前記最大ビット(lmsb)の最小ビッ トをパックすることを特徴とする請求項12に記載のコンピュータシステム。 16 第1及び第2入力データが供給され、前記プロセッサが、各入力データの 最小ビット(lsb)を検索し、各最小ビットが前記最小ビットの最大ビット( mlsb)として及び前記最小ビットの最小ビット(llsb)として供給され 、パックするための前記手段が、宛先レジスタの最大ビットとして第1入力デー タの前記最小ビット(mlsb)の最大ビットをパックし、パックする ための前記手段が、前記宛先レジスタの次の最大ビットとして第2入力データの 前記最小ビット(mlsb)の最大ビットをパックし、パックするための前記手 段が、前記宛先レジスタの最小ビットとして第2入力データの前記最小ビット( llsb)の最小ビットをパックし、パックするための前記手段が、前記宛先レ ジスタの次の最小ビットとして第1入力データの前記最小ビット(llsb)の 最小ビットをパックすることを特徴とする請求項12に記載のコンピュータシス テム。 17 第1及び第2入力データが供給され、前記プロセッサが、各入力データの 最小ビット(lsb)を検索し、パックするための前記手段が、宛先レジスタの 最小ビットとして第2入力データの前記最小ビット(lsb)をパックし、パッ クするための前記手段が、前記宛先レジスタの次の最小ビットとして第1入力デ ータの前記最小ビット(lsb)をパックし、パックするための前記手段が、あ らかじめ特定されたビット値を持つ前記宛先レジスタの最大ビットをパックする ことを特徴とする請求項12に記載のコンピュータシステム。 18 多数のM以下のNビットを有するオペランドデータQを有するMビットの 入力データを入力するための入力レジスタと、選択されたオペランドデータでパ ラレルにグループ動作を実施し実施された各グループ動作に対してNビットを有 する各結果データを作る前記入力データを処理するためのプロセッサと、Mビッ トを有する出力データとしてQ個の結果データを記憶するための宛先レジスタと を有することを特徴とするコンピュータシステム。 19 前記処理が音声処理及びビデオ処理の少なくとも一つであることを特徴と する請求項18に記載のコンピュータシステム。 20 前記コンピュータシステムが半導体基板上に集積されていることを特徴と する請求項18に記載のコンピュータシステム。 21 オペランドデータを有する入力データを供給するための入力レジスタと、 前記オペランドデータでクリップ機能を有する多くの動作を実施するための結果 データを作るプロセッサと、前記結果データの選択されたデータを記憶するため の宛先レジスタとを有することを特徴とするコンピュータシステム。 22 各入力データが少なくとも2個のオペランドデータを有し、前記プロセッ サが命令セットの命令に応答してパラレルにクリップ機能を含んで結果データを 作る選択された動作を実施することを特徴とする請求項21に記載のコンピュー タシステム。 23 連続するマルチのオペランドを記憶するための複数の入力レジスタと、前 記入力レジスタからの前記オペランドを入力し、命令に応じて前記オペランドの 特定のオペランドでパラレルに動作の組を実施するための処理手段であって、前 記動作がシングルオペランドで実施される第1動作を含み、実施される第2動作 がマルチのオペランドを使用し、各動作は結果データを作り、動作の各組は少な くとも一つの動作を有して各出力データを作る前記処理手段と、前記各出力デー タを一緒に記憶するための前記処理手段と結合される宛先レジスタとを有するこ とを特徴とするコンピュータシステム。 24 信号データを処理するための信号処理システムであって、前記信号データ を記憶し供給するための少なくとも一つの入力レジスタと、前記プロセッサに直 接結果データを作るために少なくとも一つの動作を実施させる命令制御の下、宛 先レジスタに結果を供給する前に前記信号データで実施される動作のこの結果を クリップするための少なくとも一つの命令を有するハードウェアで利用可能な複 数の命令を実施するためのプロセッサとを有することを特徴とする信号処理シス テム。 25 前記コンピュータシステムが半導体基板上に集積されていることを特徴と する請求項24に記載のコンピュータシステム。
JP51128197A 1995-09-01 1996-08-30 プロセッサのカスタム動作のための方法及び装置 Expired - Lifetime JP3739403B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US314095P 1995-09-01 1995-09-01
US464295P 1995-09-25 1995-09-25
US60/003,140 1995-09-25
US60/004,642 1995-09-25
PCT/US1996/013900 WO1997009671A1 (en) 1995-09-01 1996-08-30 Method and apparatus for custom operations of a processor

Publications (2)

Publication Number Publication Date
JPH10512988A true JPH10512988A (ja) 1998-12-08
JP3739403B2 JP3739403B2 (ja) 2006-01-25

Family

ID=26671377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51128197A Expired - Lifetime JP3739403B2 (ja) 1995-09-01 1996-08-30 プロセッサのカスタム動作のための方法及び装置

Country Status (8)

Country Link
US (2) US5963744A (ja)
EP (1) EP0789870B1 (ja)
JP (1) JP3739403B2 (ja)
KR (1) KR100445542B1 (ja)
CN (1) CN1153129C (ja)
AU (2) AU6905496A (ja)
DE (1) DE69625790T2 (ja)
WO (2) WO1997009679A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544587A (ja) * 1999-05-12 2002-12-24 アナログ デバイセス インコーポレーテッド デジタル信号プロセッサ計算コア
US7185176B2 (en) 2002-06-03 2007-02-27 Matsushita Electric Industrial Co., Ltd, Processor executing SIMD instructions
US7281117B2 (en) 2002-09-25 2007-10-09 Matsushita Electric Industrial Co., Ltd. Processor executing SIMD instructions
JP2009536774A (ja) * 2006-05-10 2009-10-15 クゥアルコム・インコーポレイテッド マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
JP2009545823A (ja) * 2006-08-02 2009-12-24 クゥアルコム・インコーポレイテッド マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
EP0918280B1 (en) * 1997-11-19 2004-03-24 IMEC vzw System and method for context switching on predetermined interruption points
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
DE69942339D1 (de) * 1998-08-24 2010-06-17 Microunity Systems Eng System mit breiter operandenarchitektur und verfahren
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
GB2343319B (en) * 1998-10-27 2003-02-26 Nokia Mobile Phones Ltd Video coding
US6247112B1 (en) * 1998-12-30 2001-06-12 Sony Corporation Bit manipulation instructions
US20020135611A1 (en) * 1999-03-04 2002-09-26 Trevor Deosaran Remote performance management to accelerate distributed processes
DE50014621D1 (de) * 1999-05-06 2007-10-18 Siemens Ag Kommunikationseinrichtung mit Mitteln zur Echtzeitverarbeitung von zu übertragenden Nutzdaten
US6542989B2 (en) * 1999-06-15 2003-04-01 Koninklijke Philips Electronics N.V. Single instruction having op code and stack control field
US6757023B2 (en) * 1999-10-14 2004-06-29 Mustek Systems Inc. Method and apparatus for displaying and adjusting subtitles of multiple languages between human-machine interfaces
US7890566B1 (en) * 2000-02-18 2011-02-15 Texas Instruments Incorporated Microprocessor with rounding dot product instruction
US7124160B2 (en) * 2000-03-08 2006-10-17 Sun Microsystems, Inc. Processing architecture having parallel arithmetic capability
TW525091B (en) * 2000-10-05 2003-03-21 Koninkl Philips Electronics Nv Retargetable compiling system and method
US6822654B1 (en) 2001-12-31 2004-11-23 Apple Computer, Inc. Memory controller chipset
US7015921B1 (en) 2001-12-31 2006-03-21 Apple Computer, Inc. Method and apparatus for memory access
US7558947B1 (en) 2001-12-31 2009-07-07 Apple Inc. Method and apparatus for computing vector absolute differences
US6573846B1 (en) 2001-12-31 2003-06-03 Apple Computer, Inc. Method and apparatus for variable length decoding and encoding of video streams
US7681013B1 (en) 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
US6693643B1 (en) 2001-12-31 2004-02-17 Apple Computer, Inc. Method and apparatus for color space conversion
US7467287B1 (en) 2001-12-31 2008-12-16 Apple Inc. Method and apparatus for vector table look-up
US6877020B1 (en) 2001-12-31 2005-04-05 Apple Computer, Inc. Method and apparatus for matrix transposition
US7114058B1 (en) 2001-12-31 2006-09-26 Apple Computer, Inc. Method and apparatus for forming and dispatching instruction groups based on priority comparisons
US7034849B1 (en) 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US7305540B1 (en) 2001-12-31 2007-12-04 Apple Inc. Method and apparatus for data processing
US6931511B1 (en) 2001-12-31 2005-08-16 Apple Computer, Inc. Parallel vector table look-up with replicated index element vector
US6697076B1 (en) 2001-12-31 2004-02-24 Apple Computer, Inc. Method and apparatus for address re-mapping
US7055018B1 (en) 2001-12-31 2006-05-30 Apple Computer, Inc. Apparatus for parallel vector table look-up
US7047383B2 (en) 2002-07-11 2006-05-16 Intel Corporation Byte swap operation for a 64 bit operand
US20040062308A1 (en) * 2002-09-27 2004-04-01 Kamosa Gregg Mark System and method for accelerating video data processing
US6781529B1 (en) * 2002-10-24 2004-08-24 Apple Computer, Inc. Methods and apparatuses for variable length encoding
US6707398B1 (en) 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatuses for packing bitstreams
US6781528B1 (en) 2002-10-24 2004-08-24 Apple Computer, Inc. Vector handling capable processor and run length encoding
US6707397B1 (en) 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation
US20040098568A1 (en) * 2002-11-18 2004-05-20 Nguyen Hung T. Processor having a unified register file with multipurpose registers for storing address and data register values, and associated register mapping method
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
GB2411974C (en) * 2003-12-09 2009-09-23 Advanced Risc Mach Ltd Data shift operations
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
GB2409062C (en) * 2003-12-09 2007-12-11 Advanced Risc Mach Ltd Aliasing data processing registers
GB2409063B (en) * 2003-12-09 2006-07-12 Advanced Risc Mach Ltd Vector by scalar operations
GB2409067B (en) * 2003-12-09 2006-12-13 Advanced Risc Mach Ltd Endianess compensation within a SIMD data processing system
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2409066B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411975B (en) * 2003-12-09 2006-10-04 Advanced Risc Mach Ltd Data processing apparatus and method for performing arithmetic operations in SIMD data processing
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411973B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd Constant generation in SMD processing
GB2409064B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
US9081681B1 (en) 2003-12-19 2015-07-14 Nvidia Corporation Method and system for implementing compressed normal maps
GB2410097B (en) * 2004-01-13 2006-11-01 Advanced Risc Mach Ltd A data processing apparatus and method for performing data processing operations on floating point data elements
GB2411978B (en) * 2004-03-10 2007-04-04 Advanced Risc Mach Ltd Inserting bits within a data word
US9557994B2 (en) 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US8078656B1 (en) 2004-11-16 2011-12-13 Nvidia Corporation Data decompression with extra precision
US7961195B1 (en) 2004-11-16 2011-06-14 Nvidia Corporation Two component texture map compression
US7928988B1 (en) 2004-11-19 2011-04-19 Nvidia Corporation Method and system for texture block swapping memory management
US7916149B1 (en) 2005-01-04 2011-03-29 Nvidia Corporation Block linear memory ordering of texture data
US20080170611A1 (en) * 2007-01-17 2008-07-17 Srikrishna Ramaswamy Configurable functional multi-processing architecture for video processing
US8078836B2 (en) 2007-12-30 2011-12-13 Intel Corporation Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
US8610732B2 (en) * 2008-12-11 2013-12-17 Nvidia Corporation System and method for video memory usage for general system application
EP3087454A4 (en) * 2013-12-23 2017-08-02 Intel Corporation Input output data alignment
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
US11074305B1 (en) * 2016-03-10 2021-07-27 Amazon Technologies, Inc. Extending data store operations using function objects
CN110704368B (zh) * 2019-09-25 2020-11-06 支付宝(杭州)信息技术有限公司 基于fpga的安全智能合约处理器的高效运算方法及装置
CN112199118A (zh) * 2020-10-13 2021-01-08 Oppo广东移动通信有限公司 指令合并方法、乱序执行设备、芯片及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4209852A (en) * 1974-11-11 1980-06-24 Hyatt Gilbert P Signal processing and memory arrangement
JPS6057090B2 (ja) * 1980-09-19 1985-12-13 株式会社日立製作所 データ記憶装置およびそれを用いた処理装置
US5189636A (en) * 1987-11-16 1993-02-23 Intel Corporation Dual mode combining circuitry
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US5692139A (en) * 1988-01-11 1997-11-25 North American Philips Corporation, Signetics Div. VLIW processing device including improved memory for avoiding collisions without an excessive number of ports
NL8800053A (nl) * 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
US4931950A (en) * 1988-07-25 1990-06-05 Electric Power Research Institute Multimedia interface and method for computer system
US5313551A (en) * 1988-12-28 1994-05-17 North American Philips Corporation Multiport memory bypass under software control
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
FR2693287B1 (fr) * 1992-07-03 1994-09-09 Sgs Thomson Microelectronics Sa Procédé pour effectuer des calculs numériques, et unité arithmétique pour la mise en Óoeuvre de ce procédé.
JPH0792654B2 (ja) * 1992-10-23 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション ビデオ・データ・フレーム伝送方法および装置
JP3206619B2 (ja) * 1993-04-23 2001-09-10 ヤマハ株式会社 カラオケ装置
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US5883824A (en) * 1993-11-29 1999-03-16 Hewlett-Packard Company Parallel adding and averaging circuit and method
US5390135A (en) * 1993-11-29 1995-02-14 Hewlett-Packard Parallel shift and add circuit and method
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US5497373A (en) * 1994-03-22 1996-03-05 Ericsson Messaging Systems Inc. Multi-media interface
US5579253A (en) * 1994-09-02 1996-11-26 Lee; Ruby B. Computer multiply instruction with a subresult selection option
US5798753A (en) * 1995-03-03 1998-08-25 Sun Microsystems, Inc. Color format conversion in a parallel processor
US5774600A (en) * 1995-04-18 1998-06-30 Advanced Micro Devices, Inc. Method of pixel averaging in a video processing apparatus
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544587A (ja) * 1999-05-12 2002-12-24 アナログ デバイセス インコーポレーテッド デジタル信号プロセッサ計算コア
US7185176B2 (en) 2002-06-03 2007-02-27 Matsushita Electric Industrial Co., Ltd, Processor executing SIMD instructions
US7281117B2 (en) 2002-09-25 2007-10-09 Matsushita Electric Industrial Co., Ltd. Processor executing SIMD instructions
US7594099B2 (en) 2002-09-25 2009-09-22 Panasonic Corporation Processor executing SIMD instructions
JP2009536774A (ja) * 2006-05-10 2009-10-15 クゥアルコム・インコーポレイテッド マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
JP2013242892A (ja) * 2006-05-10 2013-12-05 Qualcomm Inc マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
JP2016194929A (ja) * 2006-05-10 2016-11-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
JP2018156672A (ja) * 2006-05-10 2018-10-04 クゥアルコム・インコーポレイテッドQualcomm Incorporated マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
JP2009545823A (ja) * 2006-08-02 2009-12-24 クゥアルコム・インコーポレイテッド マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
US8417922B2 (en) 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
JP2013218709A (ja) * 2006-08-02 2013-10-24 Qualcomm Inc マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2017138993A (ja) * 2006-08-02 2017-08-10 クゥアルコム・インコーポレイテッドQualcomm Incorporated マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Also Published As

Publication number Publication date
DE69625790D1 (de) 2003-02-20
WO1997009671A1 (en) 1997-03-13
KR100445542B1 (ko) 2004-11-20
CN1153129C (zh) 2004-06-09
EP0789870A1 (en) 1997-08-20
AU6913496A (en) 1997-03-27
WO1997009679A1 (en) 1997-03-13
US5963744A (en) 1999-10-05
DE69625790T2 (de) 2003-11-20
EP0789870B1 (en) 2003-01-15
JP3739403B2 (ja) 2006-01-25
EP0789870A4 (en) 1999-06-09
CN1173931A (zh) 1998-02-18
US6141675A (en) 2000-10-31
AU6905496A (en) 1997-03-27

Similar Documents

Publication Publication Date Title
JP3739403B2 (ja) プロセッサのカスタム動作のための方法及び装置
WO1997009671A9 (en) Method and apparatus for custom operations of a processor
WO1997009679A9 (en) Method and apparatus for custom processor operations
US5600847A (en) Three input arithmetic logic unit with mask generator
US6032170A (en) Long instruction word controlling plural independent processor operations
US5634065A (en) Three input arithmetic logic unit with controllable shifter and mask generator
US5640578A (en) Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
US5680339A (en) Method for rounding using redundant coded multiply result
US6116768A (en) Three input arithmetic logic unit with barrel rotator
US5960193A (en) Apparatus and system for sum of plural absolute differences
US6098163A (en) Three input arithmetic logic unit with shifter
US5606677A (en) Packed word pair multiply operation forming output including most significant bits of product and other bits of one input
US5805913A (en) Arithmetic logic unit with conditional register source selection
US5465224A (en) Three input arithmetic logic unit forming the sum of a first Boolean combination of first, second and third inputs plus a second Boolean combination of first, second and third inputs
JP3958662B2 (ja) プロセッサ
US6058473A (en) Memory store from a register pair conditional upon a selected status bit
US5694348A (en) Method apparatus and system for correlation
US5420809A (en) Method of operating a data processing apparatus to compute correlation
US5493524A (en) Three input arithmetic logic unit employing carry propagate logic
US6067613A (en) Rotation register for orthogonal data transformation
US5644524A (en) Iterative division apparatus, system and method employing left most one&#39;s detection and left most one&#39;s detection with exclusive or
US5712999A (en) Address generator employing selective merge of two independent addresses
US5479166A (en) Huffman decoding method, circuit and system employing conditional subtraction for conversion of negative numbers
US5512896A (en) Huffman encoding method, circuit and system employing most significant bit change for size detection
US5974539A (en) Three input arithmetic logic unit with shifter and mask generator

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050519

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050819

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

S303 Written request for registration of pledge or change of pledge

Free format text: JAPANESE INTERMEDIATE CODE: R316304

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S303 Written request for registration of pledge or change of pledge

Free format text: JAPANESE INTERMEDIATE CODE: R316304

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term