JP3762841B2 - 処理デバイスに命令ストリームを供給する方法及び装置 - Google Patents

処理デバイスに命令ストリームを供給する方法及び装置 Download PDF

Info

Publication number
JP3762841B2
JP3762841B2 JP35768698A JP35768698A JP3762841B2 JP 3762841 B2 JP3762841 B2 JP 3762841B2 JP 35768698 A JP35768698 A JP 35768698A JP 35768698 A JP35768698 A JP 35768698A JP 3762841 B2 JP3762841 B2 JP 3762841B2
Authority
JP
Japan
Prior art keywords
instruction
circuit
input
values
processing device
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.)
Expired - Fee Related
Application number
JP35768698A
Other languages
English (en)
Other versions
JPH11249894A (ja
Inventor
アンソニー・スタンスフィールド
アラン・デイヴィッド・マーシャル
ジャン・ビュレミ
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.)
Elixent Ltd
Original Assignee
Elixent Ltd
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 Elixent Ltd filed Critical Elixent Ltd
Publication of JPH11249894A publication Critical patent/JPH11249894A/ja
Application granted granted Critical
Publication of JP3762841B2 publication Critical patent/JP3762841B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/527Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
    • 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/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、処理デバイス(または処理装置)に対する命令ストリームの供給に関する。好ましい実施形態では、本発明は、処理デバイスに利用することができる命令ストリームを拡張し、それによって命令サイズを縮小することを可能にする方法に関する。
【0002】
【従来の技術】
一般に、プログラマブル(プログラム可能な)デバイスは、命令のストリームによって制御される演算を行う。このようなストリームは、一般に、命令ストリームと呼ばれる。こういったプログラマブルデバイスは、複数のマイクロプロセッサを含むが、それに限定されるものではない。ストリーム内の各命令は、典型的には、予め決められた長さのビットのパターンであり、これは命令語と呼ばれる。ビットの各パターンは、符号化されたものであり、それは、プログラマブルデバイスに対する特定の命令を表している。大抵のプログラマブルデバイスでは、1サイクル規準で動作を制御する。通常はそうであるが、ある種のフィールドプログラマブルゲートアレイ(FPGA)のように、1サイクル規準で制御されることには意味が無いプログラマブルデバイスがある。後述する例では1サイクル単位の制御を示すが、本発明のいくつかの実施形態では、フィールドプログラマブルデバイスが特別に関係がある。
【0003】
命令の符号化は、いくつかの要素を均等に満たしたものである。第1に、デバイスのプログラマが豊富な機能を利用することができるように、多くの異なる演算を符号化する必要がある。第2に、命令の復号化が容易である必要がある。すなわち、比較的小さい回路が、外部命令を必要な内部制御信号に変換する必要がある。これら2つの要因により、各命令語のビット数が多くなる。しかしながら、第3の要因は、一般に、各命令語のビットの数を小さくする必要があるということである。そうでなければ、必要とされる広いデータチャネルに適応するために、多くの時間と回路空間を消費することになる。
【0004】
満足に命令を処理するにあたりこれらの引張り合いが特に明らかである領域は、RISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)プロセッサの設計にある。1980年代半ばまで普及していたCISC(Complex Instruction Set Computer:複雑命令セットコンピュータ)の命令セットとは異なり、RISCは、簡略化した命令セットを処理する限定された複数の命令セットを使用する。一般に、CISCデザインでは、各々の有効な結果に対して命令を指定する必要があると考えられている。速度を上昇させ(個々の処理ユニットは、限定された命令を処理しているために簡単にすることができるため)、コストを削減する(RISCデザインは、一般に、同等のCISCデザインより必要なトランジスタの数が少ないため)ために、一般のマイクロプロセッサの設計は、RISCの設計に移行してきている。しかしながら、RISCにはCISCにある命令選択の豊富さが欠けているため、RISCプロセッサのために書かれたコードは、CISCプロセッサのために書かれたコードよりかなり長くなる傾向がある。この点に関して、RISCプロセッサはCISCプロセッサに対して欠点を有している。
【0005】
このような欠点は、命令サイズが小さい豊富な命令セットを与えることで、事前に十分に除去することができる。命令サイズを縮小することは、それによって命令経路のためのメモリからプロセッサへの全体の帯域幅が縮小され、プログラムを格納するためのメモリ量も縮小することができる(特に、組み込みアプリケーションにおいて重要である)ため、有利である。命令サイズを縮小する方法の一つとして、例えば、World Wide Webサイトhttp://www.devcom.com/riscm/Pro+Peripherals/ArchExt/Thumb/Flyer/、及び米国特許第5568646号に示されているような拡張RISCマシンリミテッド(Advanced RISC Machines Limited:ARM)の「Thumb」アーキテクチャがある。ARMプロセッサは、32ビットのプロセッサであり、32ビットの命令セットを備えている。Thumb命令セットは、この32ビット命令セットにおいて最も使用される命令の一揃いからなり、それは16ビット形式に圧縮されている。これら16ビット命令は、プロセッサにおいて32ビットコードに復元される。このソリューション(解決策)によって、32ビットのプロセッサに対して16ビットの命令経路を使用することが可能になるが、命令パイプラインが余計に複雑になる。さらに、このソリューションは、命令セットの選択された命令グループへの縮小に依存する。
【0006】
【発明が解決しようとする課題】
従って、処理デバイスに対する命令の供給を最適化する他の方法を見つける必要があり、それによって、命令サイズを縮小すると同時に、豊富な機能性と復号化の容易性を達成することができる。
【0007】
【課題を解決するための手段】
このため、本発明は、処理デバイスに命令ストリームを供給する回路を提供するものであって、第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、第2の命令値のセットを含むように構成されたメモリと、処理デバイスに出力命令ストリームを供給するための複数の出力部と、制御入力部と、上記制御入力部により、複数の出力部間に第1の命令値のセットと第2の命令値のセットを振り分けるように構成された選択手段とを具備する。
【0008】
ここで、「処理デバイス」という用語は、命令を受け入れて情報処理機能を実行することができる任意の処理要素に対して基本的に使用され、明らかに、CPUのような要素を含むが、フィールドプログラマブルアレイ内の処理要素をも含む。そのような構造についての本発明の適用例を、以下に示す。
【0009】
第2の命令のセットを使用することによって、外部命令ストリームにおいて与えられたワード長で利用可能な命令セットの機能を向上させることが可能となる。有利なことには、命令語の「伸長(拡張)」が可能となり、そのため、出力命令ストリームが全体として外部命令ストリームより多くのビットを含むようになる。代替的には、ビットを命令ストリームから転用して、処理デバイスの周辺回路を駆動することができ、それによって、それ自身で、命令セットを効果的に伸長することができる。この周辺回路は、複数の機能の範囲で使用することができ、その一例として、処理デバイスへのデータ入力を許可又は禁止する機能がある。
【0010】
好ましい構成では、選択手段は、第1の命令値のセットと第2の命令値のセットとの間でビット単位の値を選択し、値の各選択について、第1の命令値のセット及び第2の命令値のセットからの1ビットを、複数の出力の1つに割り当て、他方の第1の命令値のセットと第2の命令値のセットからの対応するビットを、複数の出力の他の1つに割り当てる。この構成において、第2の命令値のセットは、変数で与えることができるが、有利な実施形態では、一つ又は複数の定数(例えば、外部命令ストリームの開始前の、おそらくは、構成可能な又は再構成可能なデバイスの場合におけるデバイス構成時に定義された値)として与えられる。
【0011】
より大きい回路内での利用率を向上させ得る更に有益な特徴は、外部命令ストリームからの命令又は第2の命令値のセットからの命令の供給のいずれかを禁止する手段を使用することである。これらの特徴により、デバイスの機能のいずれかを「無視」することにより、プログラミングの困難性を低減することができる。
【0012】
このアプローチは、命令とデータの両方に対して同じデータ経路幅を有するプロセッサデバイスであって、レジスタの使用を命令機能から独立して指定する(RISCプロセッサの場合、一般的であるが)ようなプロセッサデバイスを使用する場合に効果的であるが、また、同様な問題が存在する他の形態のプロセッサ設計においても明らかな利点がある。本発明の適用例として、RISC設計に関してのみでなく、複数のプロセッサ要素を備えたフィールドプログラマブルデバイスの設計に関しても述べる。
【0013】
本発明の適用例に対するフィールドプログラマブルデバイスの特に適した形態は、複数の処理デバイスが構成可能な配線ネットワークによって互いに接続されており、処理デバイスが、複数のALU、特に比較的小さいALU(たとえば4ビットALU)である(又はそれらを含むものである)ことにある。
【0014】
本発明の特有の実施形態について、以下に、例を用いて添付図面を参照して説明する。
【0015】
【発明の実施の形態】
まず、本発明を用いるプログラマブルシステムの主な要素を、従来技術のプログラマブルシステムと対比させる。そのような従来技術のプログラマブルシステムの要素を、図1に示す。命令は、命令ストリーム1により、制御中のデバイスに対して外部のメモリ(図示せず)から供給され、命令ストリーム内の別々の命令の要素(例えば、命令語のビット)で表される命令値のセットは、命令復号器2によって復号され、制御中のデバイス3に意味のある復号済み命令6として出力される。制御中のデバイス3は、例えば、RISCプロセッサとしてもよい。従って、復号済み命令6は、制御中のデバイス3へ供給され、また、デバイス3は、受信データ4を受信して、それが使用する復号済み命令6及び受信データ4からデータ出力5を供給する。
【0016】
図2は、本発明の一実施形態を用いるプログラマブルシステムの構成要素を示す。このシステムの大部分の外観は図1に示すものと同じである(それらの図において同じ参照番号を用いている)が、命令復号器2への命令の供給が異なっている。命令は、従来と同様に命令ストリーム1で供給されるが、選択手段11を介して供給される命令の出所が追加されている。ここで、選択手段11は、命令サイズを効果的に伸長するように構成することができるため、命令伸長要素と呼ぶ。命令伸長要素11への制御入力は、後述するように、命令マスク12によって供給される。命令伸長要素11は、J及びKという2つの出力を有しており、これらは命令復号器2に対して2つの命令ストリーム13,14を供給する。命令伸長要素11が3つ以上の出力、つまりは3つ以上の命令ストリームを利用する他の実施形態は、本発明の他の実施形態の適用例として容易に提供することができる。
【0017】
命令マスク12は、第1及び第2の命令値のセットをJ出力とK出力との間でどのように振り分けるかを決定する。この機能を実行する基本的な回路(第2の命令値のセットの可能な出所をも示す)を、図3に示す。図3に示す回路は、命令入力1の1ビットを操作するために必要な回路である。基本的な回路に必須なのは1組のマルチプレクサ43,44である。各マルチプレクサ43,44に対する制御入力は、命令入力1の関連したビットに適した命令マスク12の値によって与えられる。外部入力は、第1のマルチプレクサ43の「1」入力と、第2のマルチプレクサ44の「0」入力とに供給される。第1のマルチプレクサ43の出力は、命令伸長要素11のK出力であり、第2のマルチプレクサ44の出力は、命令伸長要素11のJ出力である。従って、この実施形態では、外部命令入力の各ビットの経路は、命令伸長要素11のJ又はK出力のいずれかに定められている。
【0018】
各マルチプレクサへの他の入力によって、J出力とK出力のうち、外部命令ストリーム1からの関連したビットによって出力値が与えられないのがどちらであるかの情報が与えられる。すなわち、命令マスク値が1である場合、第2のマルチプレクサ44への「1」入力によって、J出力に出力値が与えられ、命令マスク値が0である場合、第1のマルチプレクサ43への「0」入力によって、K出力に出力値が与えられる。ここでは、これら追加のマルチプレクサ入力41,42は、双方とも定数値で供給される(しかし、より複雑な実施形態では、これらは変数とするか、もしくはデータ依存とすることができる)。第1のマルチプレクサへの「0」入力41は、第1の定数C1によって供給され、第2のマルチプレクサへの「1」入力42は、第2の定数C2によって供給される。
【0019】
図3に示す構成では、nビットの外部入力1とnビットの命令マスク12とが供給されているが、その結果は2nビットの命令値となり、そのうちのnビットがK出力によって供給され、nビットがJ出力によって供給される。命令マスク12は、効果的に、外部命令ストリーム内のビットをビット単位でJ又はKのいずれかに送るように機能する。
【0020】
明らかに、利用可能なビット数を自由に増加させることはできない。所定のマスク値について、J及びK出力においてあり得る値のサブセットだけを、外部の値を変化させることによって簡単に供給することができる。しかしながら、実際的な多くの場合において、命令の符号化をしかるべく配置することが容易にできることが分かっている。具体的な例を以下に示す。
【0021】
この基本的なメカニズムを拡張したものを、図4及び図5に示す。図4及び図5の回路の要素は、概して図3の要素と同じであるが、各場合において、イネーブル入力51及び追加の論理ゲート52,53が設けられている。図4及び図5に示す回路によって、単一ビットのイネーブル信号51により外部命令入力1と命令マスク12をそれぞれ禁止するオプションを加えることができる。回路を主入力のいずれか一方により完全に制御することができるメカニズムを供給する動作を、かなり簡略化することができるため、このような拡張は望ましいものである。
【0022】
図2に示す基本的なメカニズムには、2つの主な代替バージョンがある。これらは、命令マスク12の設定方法によって異なる。これは図6に示すように構成することができ、ここでは、マスク値は、外部命令ストリーム1に命令が与えられるほど頻繁ではないが、外部的に設定される。この状態の一例は、再構成可能な回路内にあり、ここでは命令マスク設定命令21を、デバイスの動作中に与えられる構成又は再構成情報の一部として、供給することができる。例2は、図2のメカニズムのこのバージョンを示しており、以下でさらに説明する。他の代替バージョンは、図7に示すものであり、ここでは、マスク設定信号22が制御中のデバイス3自体によって供給される。この制御形式は、通常のプロセッサ環境におけるより複雑なプロセッサ、すなわち、RISC CPUのような、例1に更に説明する構成に適している。
【0023】
ここで、本発明の2つの詳細な適用例をそれぞれのコンテキストに対して以下に示す。
【0024】
例1:RISCアーキテクチャ
RISCプロセッサ設計の重要な特徴は、比較的単純な命令の符号化を使用することである。典型的には、すべての命令は同じサイズであり、とのビットを特定の目的(例えば、レジスタ指定子、即値定数、演算指定子等)に使用することができるかに関する非常に限定されたフォーマットに従う。この方式の利点は、命令を復号するのに必要なロジックを簡単にすることができ、それによって小さくかつ高速なプロセッサを構成し得ることである。一方、対応する不利な点は、多くの命令が厳密に必要な大きさよりも大きくなることであり、例えば、関連した2オペランド命令を命令セットに適合させることができないため、2オペランド命令を、3オペランド命令として1つの入力を複製して符号化する必要がある。また、典型的なサイズではなく、必要とされる可能な限り大きなサイズに応じて、即値定数又は分岐オフセット値のためのスペースを割り当てる必要がある。
【0025】
個々の命令が必要以上に大きい場合、プログラム全体が必要以上に大きくなる。上述したように、この結果、メモリからプロセッサへのより高い帯域幅が必要となり、メモリサイズが全体のシステムコストに影響を与える場合ある。
【0026】
本発明の実施形態による命令マスキングは、命令のサイズを縮小するのに用いることができ、それによって、命令セットを豊富に持つという利点を保持しながら、これらの不利な点が発生しなくなる。このアプローチの適用例を示すために、これをDLXアーキテクチャのコンテキストにおいて述べる。DLXは、「ComputerArchitecture, A Quantitative Approach」、J.L. Hennessy & D.A.Patterson,p160〜166及びAppendix E 1990, Morgan Kaufmann Publishers, Inc. San Mateo, CA, USA ISBN 1-55860-069-8に述べられている簡略化した汎用RISCプロセッサである。DLXプロセッサの命令フォーマットを以下に示す。
【0027】
【表1】
【0028】
Rs1及びRs2は送信元のレジスタ指定子であり、Rdは宛先のレジスタ指定子である。Iタイプ命令は、オペランドとしてのレジスタを1つ持っており、他のオペランドは一般に即値定数である。Rタイプ命令は2つのレジスタオペランドを持っている。命令の基本タイプは3つともすべて、32ビット長であり、6ビットの重要な演算コードは最上位ビットにある。レジスタ指定子は、一般に命令内の同じ位置にあり、常に5ビット長である。
【0029】
ここで、このプロセッサに対する本発明の一実施形態の適用例を示す。本発明の一実施形態を適用した結果、この場合には、命令毎のビットの数が21に減るが、マスキングメカニズムを使用してこれを42に伸長する。使用する回路は、図5に示すものであり、C2=0、C1=0である。制御信号の出所については後述する。伸長された42ビット内の命令ビットの可能なレイアウトを、以下の表2の3つの命令フォーマットのそれぞれについて示す。
【0030】
【表2】
【0031】
表2の具体的な特徴及び図5に示す回路の適用例について、さらに下記する。内部のマスク値12は、R0プロセッサレジスタから取り出される。このレジスタは、DLXにおいて、この特別な制御目的に適した選択を可能にするため、(他の多くのRISCプロセッサにおける同等のレジスタと同様に)ある「魔法のような(magic)」特性を有している。このレジスタは特別な特性を有しているので、本目的に適した特性をそれに与えるためにわずかな変更を加えることは、簡単なことである。これらの適した特性は以下の通りである。
【0032】
Iタイプ命令におけるR0からの読出しは、すべて0に戻る。これによって、式Rx=R0+定数の演算がRx=0+定数となるため、定数のロードが可能になる。Rタイプ命令におけるR0への書込みは、まったく起こらない。全ての状態フラグの設定を含む残りの命令は、普通に発生し、レジスタファイルへの最後の再書込み(write back)のみが阻止される。これによって、比較演算を安価に実施することができる(A>Bは、R0=B−Aとして、「負の」フラグをチェックすることによって実施することができる)。この結果、R0はIタイプ命令によってのみ書込むことができ、Rタイプ命令によってのみ読み出すことができる。
【0033】
Iタイプ命令において、Rs1aとRs1bとは、互いにORをとることにより、Rs1レジスタ指定子を形成する。これにより、より柔軟に、命令定数とレジスタ指定子との間にビットを割り当てることができる。例えば、5ビットまでの長さの定数は、Rs1aをレジスタ指定子として使用し、K4...K0を定数として使用することができ、一方、より大きい定数は、Rs1bをレジスタ指定子として使用し、K9...K5を定数として使用することができる。
【0034】
ここで、演算コード拡張(opcode extension)フィールドは、11ビットではなく21ビットからなる。これによって、伸長済みのセットにおいてビット位置をより柔軟に割り当てることができ、そのため、レジスタ指定子と演算コード拡張の間でビットを交換する必要が特に制限されない。
【0035】
分岐オフセットフィールドは、4つの領域に分割され、K20...K16,K9...K0,J20...J16,J9...J0という30ビット量に再構成される。短い分岐は、Jビットのみで表すことができる。より長い分岐は、Kビットが必要であるが、非常に長い分岐のすべてを単純に表すことができるとは限らない。
【0036】
命令が21ビット長であるため、3つの命令を1ビット残して64ビットのグループに適合させることができる。この余分のビットを制御信号51として使用することにより、マスクをオンとすべきかオフとすべきかを決定することは、適切である。このため、3つの命令群は、同じ制御値を共用しなければならないが、実際にはこれは重要な制限ではなく、命令の順序を再度付け直すことによって、プログラムの正確性を保ちつつ、このような種類の制約を満たすようにする方法が知られている。3つの命令を64ビットに適合させることにより、分岐先のアラインメントを制限することにもなる。命令をフェッチするのに使用するワードアドレスは、64ビットメモリアクセスにおいてどちらの32ビット命令を使用すべきかを指定することができるが、提案された方式において3つの命令のいずれを使用すべきかを指定するための追加のメモリアドレスビットは無い。簡単な解決法は、3つの命令のうちの最初の命令にのみ分岐することであるが、アドレスビットを操作するためのより複雑な他の方法もまた可能である。
【0037】
レジスタの初期化について、演算コード000000(2進数)を有する命令は、入力の一方を、他方が0である時に伝えるIタイプの命令(例えばAdd、XOR、OR等)である。これは、R0の値を、以下の表3に示す命令シーケンスを使用して容易に設定することができるということを意味する。
【0038】
【表3】
【0039】
命令モードは、2つのキャラクタで表す。1つめは、命令がI、R又はJタイプのいずれであるかを示し、2つめは、制御信号の状態を示す(M:マスクがアクティブである、N:マスクがアクティブでない、X:関係無し)。これらの命令の重要なものは、一般にタイプINであるが、実際には、マスクは多くの場合不都合無くアクティブにすることができる。
【0040】
上記技術の変形例を使用して、いずれかのレジスタに16ビット値をロードすることができる。R0が0000FFFF(16進数)である場合、命令の21ビットは(5ビットのレジスタ番号)(16ビットの定数値)のように解釈される。この方式で、31の汎用レジスタすべてを、レジスタ毎に1命令と4つの追加の命令(開始時に1回と終了時に1回、R0を初期化する2つの命令が2組)によって設定することができる。35×2/3の32ビットワード、すなわち231/3ワードの総計は、圧縮されていない場合に必要な31ワードと比較して有利であり、25%の節約となる。
【0041】
プログラム例:単一ループ以下のプログラム(以下の全てのプログラム例と同様、Cで書かれている)は、単一ループを表している。
【0042】
int total = 0;
for ( int i = 0; i < max; i++) {
A〔i〕= B〔i〕+ C〔i〕;
total + = A〔i〕;

このループについての命令シーケンスを、以下の表4に示す。
【0043】
【表4】
【0044】
この命令方式についてのレジスタ配置を、以下の表5に示す。
【0045】
【表5】
【0046】
命令は、表4において、64ビット境界に適合する3つの命令群の中に示されている。ループ本体は、11の命令が必要であり、それらは、従来の形式の11ワードに比較して、8×32ビットワードに収まる。従って、分岐先の正確なアラインメントを保証するための余分なNOP命令が必要であるにも関わらず、全体としてサイズを27%節約することができる。
【0047】
例2:CHESSアーキテクチャ
CHESSは、データ経路集中型(datapath-intensive)アプリケーションのためのフィールドプログラマブルアレイ構造である。CHESSアーキテクチャは、以下の出願に記載されており、それらはすべて本出願に参照によって組み込まれている。この出願は、米国を指定した1998年1月28日に提出された国際特許出願第GB98/00248号と、1997年12月17日に提出された欧州特許出願第97310220.5号及びその対応米国出願である。アーキテクチャ全体のレイアウトは、本例では重要ではないが、本発明の目的のために、CHESSは、各ALUを各入出力を介して他のALUに接続することができるように経路スイッチを有する4ビットのALUのアレイからなっていると考えることができる。
【0048】
図8は、CHESSの4ビットALUの入力及び出力を示す。各ALUは、A,B及びI入力への3つの4ビット入力経路32,33,34と、ALUの出力Fを運ぶ1つの4ビット出力経路37とを有している。これら入出力経路は、経路スイッチに接続されている。また、桁上げ(carry)信号のための1ビットの入力経路35と1ビットの出力経路36が設けられており、それ自体経路スイッチのネットワークを有している。これらは、それぞれALUの入力Cinと出力Coutとに接続されている。
【0049】
A及びBはデータ入力であり、FはA及びB入力から導出されるデータ出力である。ALUは、表6において下記するようにA及びBの算術及び論理機能を生成することができる。また、桁上げ入出力の効果も示されている。一般に、これらを、桁上げ連鎖(carry chain)を生成するために使用して、ALUをより広いワードの並列計算に使用することができるが、これらは、比較機能にも使用することができる。
【0050】
【表6】
【0051】
I入力は、命令入力である。その機能は、ALUの可能な機能のうちいずれを実際に実行するかを選択することである。CHESSにおいて、I入力は、A,B入力及びF出力と同じ幅のものが選択される。すなわち、4ビットである。このことは、以下の理由から大きな利点である。すなわち、これによって、ひとつのALUのI入力を他のALUのF出力で駆動することができ(上述した欧州特許出願第97310220.5号に記載されているように、命令を動的に与えることができ)、経路ネットワークのみが、A、B又はI入力に対する経路であるかどうかに関係なく、1つのタイプのデータを桁上げすればよいからである。これは、命令の数に厳しい制約を与える。すなわち、4ビットのI入力は、最大でも16の命令であることを意味している。しかしながら、表6は21より多くの入力を示している。4ビットの命令入力で十分な命令セットを供給するという問題は、本発明の一実施形態による命令マスク方式を用いることによって、解決することができる。
【0052】
外部I入力は、図4に示す回路を使用することにより、8ビット(4×Jビット及び4×Kビット)に伸長することができる。マスク値12及び制御信号51は、両方とも、フィールドプログラマブルアレイの初期構成の一部として内部レジスタに格納される。ここで、定数は、 1 =0及び 2 =1のように選択される。このように選択した結果、制御信号51が外部命令入力Iを禁止すると、Jは格納されたマスク値に従うということになる。これにより、I入力に定数値を必要とすることなく、従ってIに定数値を供給する経路ネットワークの必要を無くして、ALUの機能を定数演算に対して設定することができる。
【0053】
構成例1:入力イネーブルとして使用するKビット
この例では、4ビットALUに対する主命令を決定するためにJビットを使用するが、周辺回路を制御するため、特にAおよびB入力を許可するためにKビットを使用する。これによって、構成例1に含まれる適用例に示すように、命令セットを効果的に伸長することができる。
【0054】
必要な構成を得るために、J及びKビットに以下の機能を割り当てる。
【0055】
4つのJビットを、表7(以下を参照)に示す16の機能のうち1つを選択するために使用する。K0及びK2を、A入力に対する入力イネーブルを与えるために使用する。ここで、K0及びK2が両方ともローである場合、入力はオンとなり、そうでない場合はオフとなる(表7においてA=0000に相当する)。K1及びK3をB入力に対する入力イネーブルを与えるために使用する。ここで、K1及びK3が両方ともローである場合、入力はオンとなり、そうでない場合はオフとなる。
【0056】
【表7】
【0057】
この命令セットの選択は、命令セットを有効に追加した結果、命令マスク値の特定の値が選択されるように慎重になされている。例えば、マスク値が0011である場合、J1及びJ0は両方とも1でなければならないが、AおよびB入力は両方ともオフにすることができる。有効な命令セット(外部命令ストリームから認識される命令セット)を表8に示す。
【0058】
【表8】
【0059】
「入力が両方とも禁止」である列に示す値は、すべて算術演算において有効な定数である。ある場合に結果として生じる定数値1111は、2の補数計算において−1を示すが、これはしばしば必要な値である。
【0060】
代わりに、マスク値が1100である場合、A及びB入力の両方とも再びオフとすることができるが、この場合、J3及びJ2は両方とも1であり、命令セットは表9に示すものとなる。
【0061】
【表9】
【0062】
0101のマスク値を使用する場合、更に有効な命令セットを得ることができる。このマスク値を用いると、Aをオフにする2つの方法がある。その有効な命令セットを表10に示す。
【0063】
【表10】
【0064】
従って、Kビットを使用してA,B入力を許可することにより有効な命令セットを変更するための命令マスクを使用するので、ALU31によって(I入力で受信されるものに関して)認識されるのと同じ命令セットについて、さまざまな種類の異なる命令セットを、外部命令ストリーム1で認識することができるということがわかる。基本的な命令セットを慎重に選択することにより(Jビットの組合わせのうちのどれをどの命令に割り当てるかに関して)、これらの異なる有効な命令セットを工夫して、特定の機能として使用するために特に有効なものとすることができる。このため、フィールドプログラマブルアレイの構成において、所定のプロセッサ要素についてのマスク値を、そのプロセッサ要素に対して利用可能な命令が、実行する必要のある(1つ又は複数の)演算に特に適したセットとなるように選択することができる。
【0065】
このことは、その全てが構成例1、及び表7から表10に示す命令セットに関連する一連の適用例によって最も良く示される。なお、表7における命令の選択は、例示的なものであることを強調しておく。すなわち、当業者は、この明細書の開示内容から、貴重で有効な命令セットを生成する他の選択を考案する方法を十分に認識するであろう。
【0066】
適用例としての回路を、図9に示す。この回路は、2つのALUを有している。1つはALU104であり、これは0000のマスク値を有し、従って、表7に示す有効な命令セットを有している。もう1つはALU103であり、これは0011のマスク値を有し、従って表8に示す有効な命令セットを有している。この回路は、4つの入力によって制御される。これらは、ALU103及びALU104それぞれへの外部命令入力108,109と、回路と共に使用するメモリ102(CHESSアーキテクチャにおいて、このメモリは、欧州特許出願第97310220.5号に記載されているようにユーザプレーンメモリ(user plane memory)に変換されるスイッチメモリによって構成することができる)へのアドレス入力110及び読出し/書込み入力111である。また、3つのレジスタ、すなわちレジスタ1(105)、レジスタ2(106)、及びCoutレジスタ107が設けられており、これらもまた、CHESSアーキテクチャの構成要素から容易に供給することができる。以下の例において、明確には示していないが、メモリ102に対する書込みはすべてレジスタ1(105)に書込まれるようになっている。
【0067】
応用例1:ビット計数
以下のビット計数プログラム(これも後のすべてのプログラムと同様にCで書かれている)
while ( z & = ( z-1 )){
count++;

は、以下の表11に示す入力シーケンスに従って実現することができる。表11は、命令値、及び結果として生じるレジスタ値を示している。
【0068】
【表11】
【0069】
変数Qは、第1のALUが実行する比較演算の結果を表す。この値は、当然0又は1である。従って、計数値がインクリメントされるかインクリメントされないかは、比較の結果による。
【0070】
応用例2:パターン照合
以下のコードは、いくつかのパターンに対して入力値を比較し、合致した数を記録する演算を示す。
【0071】
for ( i = 0; i < max, i++){
if ( z & pattern〔i〕) = = target〔i〕{
count++;


このコードは、図9に示す回路により、以下の表12に示す入力シーケンスによって達成することができる。
【0072】
【表12】
【0073】
以前と同様に、変数Qは比較演算の結果を表すために使用される。また、計数の変数値は、各比較の後でQだけ再度インクリメントされ、合致した数を表す。
【0074】
構成例2:Kビットが即値定数を与える
本構成例は、KビットのいくつかがA及びB入力についての入力許可機能を与えるという点で、構成例1と類似している。しかしながら、この場合は、すべてのKビットをその目的に使用するのではなく、代わりに他のビットを、即値定数を供給するために使用する。利用可能な命令タイプの範囲は、第1の構成例より制限されているが、即値定数を供給するメカニズムはいくつかの適用例についてのプログラミングを直接的にかなり簡略化する。
【0075】
この場合、J及びKビットに以下のように機能を割り当てる。
【0076】
4つのJビットは、表7に設定されているように16の命令の1つを選択する。K0はA入力について入力許可を与えるために使用される。K0がローである場合、入力はオンとなり、他の場合には、A入力は定数値K3K200となる。K1は、B入力について入力許可を与えるために使用する。K1がローである場合、入力はオンとなり、他の場合はB入力はオフとなる(値0000に設定されるのと同じである)。
【0077】
命令マスクが1111に設定された場合、Jビットはすべて1に設定され、ALUは常に命令A+B+Cinを実行しなければならない。追加すべき値の選択は、以下の表13に示すように、Kビットによって決定される。
【0078】
【表13】
【0079】
言い換えると、利用可能な命令セットは、以下の通りである。
【0080】
A+B、
A、
B+定数0,4,8,12のいずれか、
定数0,4,8,12のいずれか(もしくは、Cinによって与えられる可能性を含み、0,1,4,5,8,9,12,13からのいずれかの定数)。
【0081】
応用例3:ヒストグラム化
以下のコードにより、入力をその上位の2ビットの可能な値と突き合わせてチェックし、チェックの結果に応じてカウンタをインクリメントすることによって、ヒストグラムを生成することができる。
【0082】
if ((z & 12) == 12) count 3 ++;
if ((z & 12) == 8) count 2 ++;
if ((z & 12) == 4) count 1 ++;
if ((z & 12) == 0) count 0 ++;
図9に示す回路は、Kビットが構成例2で示した機能を有するように構成されており、上記コードを実行するために使用することができる。図9に示す場合ともう1つ違いがある。すなわち、ALU103は、0011でなく1111のマスク値を有するように構成されている。従って、このALUは、表13に示す命令セットを有している。このコードを実行するのに必要な入力シーケンスを、以下の表14に示す。
【0083】
【表14】
【0084】
このように、各ビット単位の比較の後、Coutは内部変数Qに設定される。この内部変数Qは、テスト中の入力の最初の2ビットが比較値と等しい場合は値0を有し、等しくない場合は値1を有する。Coutのこれらの値は、次の演算で反転する。その結果、テスト中の入力の最初の2ビットと一致する比較値に対する適切なカウンタがインクリメントされる。
【0085】
構成例3:最下位ビットでの加算/減算操作
本発明による命令マスク回路の異なる表現を図10に示す。このゲートの組合わせは、図4に示すものと論理的には同様である。この場合、外部命令ストリームからのビットは入力301で受信され、構成RAM303の単一ビットが外部命令入力を許可するために使用される。命令マスク値は、4ビット制御レジスタ313によって与えられ、マスク回路自体はORゲート311及びANDゲート312から構成される。ORゲート311の出力306は、ALUのI入力に対する関連した命令ビット(この明細書を通して一貫してJiとして示す)であり、ANDゲート312の出力307は、以前と同様にALUの他の部分に供給するために利用可能なKiビットとして供給される。入力イネーブルビット303がローである場合、出力Kiはすべてローであり、ビットスライスのための命令ビットJiは4ビット制御レジスタ313に従う。入力イネーブルビット303がハイであり、制御レジスタ313のビットがローである場合、外部入力Iiは命令ビットJiに対して関連する出力に経路が定められ、関連したKiはローに設定される。入力イネーブルビット303がハイであり制御レジスタ313のビットがハイである場合、外部入力Iiは関連したKiに経路が定められ、命令ビットJiに対して関連した出力はハイに設定される。
【0086】
命令マスクにより、他の回路をALUに同期して制御することができる。実際の場合は、ALUの加算と減算のスワッピングである。これが実行されると、桁上げ連鎖の最下位ビットに与えられる定数を、減算では1、加算では0に設定する必要がしばしばある。マスク回路を提供することにより、図11に示すように、周辺回路を制御するために入力を追加する必要がなく、これを実現することができる。
【0087】
この例では、ALUに関して、表7に示す命令セットと異なる命令セットについて考える。命令セットの完全な詳細はこの例では重要ではない。ADDに必要なJビットが0011であり、SUBに必要なJビットが1111であるということを示すことで十分である。制御レジスタ313が保持する命令マスク値が0011に設定された場合、このことは、外部命令ストリームビット(Iiと称する)のうち、I3及びI2はJ3及びJ2にそれぞれ結合するが、I1及びI0はK1及びK0に結合するという効果を有する。J1及びJ0は、両方とも1の値に固定される。これによって、最下位ビットを操作するように適合されたADD_LSB及びSUB_LSBコードを含むADD及びSUBの命令コードの伸長したセットが得られる。この機能コードのセットを実現するための外部命令Iについて結果として得られるコードは、以下の通りである。
【0088】
I入力ADD命令コード 0000
I入力ADD_LSB命令コード 0001
I入力SUB命令コード 1100
I入力SUB_LSB命令コード 1111
ALU命令コードJは、ADDとADD_LSBの両方について同じ(0011)であるが、ADDではCinはビットスライスのためのCinとなるように単純に伝搬される一方、ADD_LSBではビットスライスのためのCinの値は常に0である。SUB命令の場合も同様であり、SUB_LSBについて、ビットスライスのためのCinの値は常に1である。
【0089】
従って、周辺回路が動的な命令入力によって制御されるため、同時に使用することができるALU命令の組合せは、制限される。しかしながら、制限された数の場合のみをカバーすればよいため、これによって実際的な困難は生じない。例えば、上述した場合では、ADD命令とSUB命令の間に2つの共通したビットが必要である。この場合は、ビットJ1とJ0は両方とも1の値を有している。
【0090】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
【0091】
1.処理デバイスに命令ストリームを供給するための回路であって、第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、第2の命令値のセットを含むように構成されたメモリと、前記処理デバイスに出力命令ストリームを供給するための複数の出力部と、制御入力部と、前記制御入力部により、前記複数の出力部間に前記第1の命令値のセットと前記第2の命令値のセットと分配するように構成された選択手段とからなる回路。
【0092】
2.前記出力命令ストリームは、全体として前記外部命令ストリームより多くのビットを含むことからなる上項1の回路。
【0093】
3.前記選択手段は、前記第1の命令値のセットと前記第2の命令値のセットとの間でビット毎に値を選択するものであって、ここで、値の各選択について、前記第1の命令値のセット及び前記第2の命令値のセットのいずれかからの1ビットは、前記複数の出力部の1つに送られ、他方の前記第1の命令値のセット及び前記第2の命令値のセットからの対応する1ビットは、前記複数の出力部の他方に送られることからなる上項1又は2の回路。
【0094】
4.前記制御入力部は、前記外部命令ストリームと同数のビットを有する値を供給し、前記ビット毎の値の選択を、前記外部命令ストリームの等しく重要なビットに対応する前記制御入力値のビットに関連して行うことからなる上項3の回路。
【0095】
5.前記複数の出力部の1つは、前記処理デバイスに命令入力を供給し、一方、前記複数の出力部の他方は、前記処理デバイスの周辺回路に入力を供給することからなる上項3又は4の回路。
【0096】
6.前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力を許可又は禁止するための回路を備えることからなる上項5の回路。
【0097】
7.前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力に対して、演算定数を供給するための回路を備えることからなる上項5又は6の回路。
【0098】
8.前記回路は、命令とデータの両方について同じデータ経路幅を有し、レジスタの使用が命令機能から独立して指定される処理デバイス、と共に使用されるように構成されていることからなる上項1乃至7のいずれの回路。
【0099】
9.前記選択手段への前記第1の命令値のセットの供給を禁止する手段が供給され、それによって前記処理デバイスが前記第2の命令値のセットに従って制御されることからなる上項1乃至8のいずれかの回路。
【0100】
10.前記選択手段への前記第2の命令値のセットの供給を禁止する手段が供給され、それによって前記処理デバイスが前記第1の命令値のセットに従って制御されることからなる上項1乃至9のいずれかの回路。
【0101】
11.前記処理デバイスは、単一の集積回路における複数の処理ユニットの1つであることからなる上項1乃至10のいずれかの回路。
【0102】
12.複数の処理デバイスと、前記複数の処理デバイスのうちの1つ又は複数のための、上項1乃至11のいずれかの回路とからなる集積回路。
【0103】
13.前記複数の処理デバイスは、構成可能な配線ネットワークにより互いに接続されていることからなる上項12の集積回路。
【0104】
14.前記処理デバイスは、フィールドプログラマブルアレイ内の処理要素であることからなる上項12又は13の集積回路。
【0105】
15.前記処理デバイスは、複数のALUであることからなる上項14の集積回路。
【0106】
16.前記処理デバイスは、複数の4ビットALUであり、命令及びデータに4ビット幅が必要であることからなる上項15の集積回路。
【0107】
【発明の効果】
上述した複数の実施例から分かるように、本発明の実施形態による命令マスク方式を使用して、意図した目的に関する命令セットを十分豊富に持つことと、復号化を容易に行うことの両方を維持しつつ、命令語内の少数のビットの利点を組み合わせることができる。これらの利点は、命令マスクを使用して有効な命令セットを調整し、命令語長を効果的に伸長することにより、あるいはビットを周辺回路に転用することによって、意図した1つ又は一群の目的に特に適合するようにすることができる。これらのオプションのそれぞれによって、残りの命令セットに制約を与えることとなるが、この制約は基本的な命令セットを好適に選択することによって比較的容易に遵守することができるということが一般的に理解される。
【図面の簡単な説明】
【図1】従来のプログラマブルシステムの命令及びデータの流れを示す図である。
【図2】本発明の一実施形態を用いたプログラマブルシステムの命令及びデータの流れを示す図である。
【図3】本発明の実施形態に使用する選択回路を示す図である。
【図4】入力を禁止することができるように変更した図3R>3に示す選択回路を示す図である。
【図5】入力を禁止することができるように変更した図3R>3の選択回路を示す図である。
【図6】命令マスクの出所を示すために変更した図2の命令の流れを示す図である。
【図7】命令マスクの出所を示すために変更した図2の命令の流れを示す図である。
【図8】本発明の実施形態が使用することのできるフィールドプログラマブル演算アレイの基本的な処理デバイスを示す図である。
【図9】図8に示す基本的な処理デバイスを備えたフィールドプログラマブル演算アレイにおける本発明の一実施形態の適用例を示す図である。
【図10】図8に示す基本的な処理デバイスを備えたフィールドプログラマブル演算アレイに使用するよう構成された本発明の別の実施形態による命令マスク回路を示す図である。
【図11】図10に示す命令マスク回路によって実現されるビットの転用を利用した桁上げ入出力経路を示す図である。
【符号の説明】
1 命令ストリーム
2 命令復号器
3 デバイス
4 受信データ
5 出力データ
6 復号済み命令
11 選択手段
12 命令マスク
13、14 命令ストリーム

Claims (79)

  1. 処理デバイスに命令ストリームを供給するための回路であって、
    第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、
    第2の命令値のセットを含むように構成されたメモリと、
    前記処理デバイスに出力命令ストリームを供給するための複数の出力部と、
    制御入力部と、
    前記制御入力部により前記複数の出力部間に、前記第1の命令値のセットと前記第2の命令値のセットを分配するように構成された選択手段とからなる回路。
  2. 処理デバイスに命令ストリームを供給するための回路であって、
    第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、
    第2の命令値のセットを含んでいるメモリと、
    前記処理デバイスに出力命令ストリームを供給する複数の出力部と、
    制御入力部と、
    前記制御入力部に基づいて、前記複数の出力部の間に、前記第1の命令値のセットと前記第2の命令値のセットを分配する選択手段と、を備えており、
    前記選択手段は、前記第1の命令値のセットと前記第2の命令値のセットの間で、ビット毎に選択された値を供給しており、
    選択された各値において、前記第1の命令値のセット及び前記第2の命令値のセットからのいずれかの1ビットは前記複数の出力部の1つに送られており、前記第1の命令値のセット及び前記第2の命令値のセットからの他の対応するビットは前記複数の他の出力部に送られており、
    前記制御入力部は前記外部命令ストリームと同数のビットを有する値を供給しており、前記ビット毎に選択された値は、前記外部命令ストリームに等しく重要なビットに対応する制御入力値のビットに関連して行われることを特徴とする回路。
  3. 前記出力命令ストリームは、全体として前記外部命令ストリームよりも多くのビットを含んでいることを特徴とする請求項2の回路。
  4. 前記複数の出力部の1つは前記処理デバイスに命令入力を供給しており、
    前記複数の他の出力部は、前記処理デバイスの周辺回路に入力を供給することを特徴とする請求項2の回路。
  5. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力を許可又は禁止にする回路を備えていることを特徴とする請求項4の回路。
  6. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力に演算定数を供給する回路を備えていることを特徴とする請求項4の回路。
  7. 前記命令及びデータと同じデータパスの幅を有する処理デバイスを利用することを特徴とする請求項2の回路。
  8. 前記選択手段に前記第1の命令値のセットを供給することを禁止する手段を備えており、それによって前記処理デバイスが前記第2の命令値のセットに基づいて制御されることを特徴とする請求項2の回路。
  9. 前記選択手段に前記第2の命令値のセットを供給することを禁止する手段を備えており 、それによって前記処理デバイスが前記第1の命令値のセットに基づいて制御されることを特徴とする請求項2の回路。
  10. 前記処理デバイスは、単一の集積回路における複数の処理ユニットの1つであることを特徴とする請求項2の回路。
  11. 前記第2の命令値のセットは、前記第1の命令値のセットが命令ストリームに供給されるよりも少ない頻度でアップデートされることを特徴とする請求項2の回路。
  12. 前記メモリは、読出し専用メモリを備えていることを特徴とする請求項2の回路。
  13. 読出し専用メモリは、論理値源に対するハードワイヤード接続を備えていることを特徴とする請求項12の回路。
  14. 制御入力部は、第2のメモリによって供給されることを特徴とする請求項2の回路。
  15. 回路は、レジスタの使用が命令機能から独立して指定されるように、処理デバイスとともに使用されていることを特徴とする請求項2の回路。
  16. 前記選択手段に制御入力を供給することを禁止する手段を備えており、それによって処理デバイスが第1の命令値のセットに基づいて制御されることを特徴とする請求項2の回路。
  17. 第2の命令値のセットの命令値のそれぞれは、定常命令値、変化可能値、データ依存命令値及び構成可能命令値のいずれか一つを備えていることを特徴とする請求項2の回路。
  18. 集積回路であって、
    複数の処理デバイスと、
    命令ストリームを1つ又は複数の処理デバイスに供給する回路と、を備えており、
    前記回路は、第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、第2の命令値のセットを含んでいるメモリと、前記処理デバイスに出力命令ストリームを供給する複数の出力部と、制御入力部と、前記制御入力部に基づいて前記複数の出力部の間に、前記第1の命令値のセットと前記第2の命令値のセットを分配する選択手段を有しており、
    前記選択手段は、前記第1の命令値のセットと前記第2の命令値のセットの間でビット毎に選択された値を供給しており、選択された各値において、前記第1の命令値のセット及び前記第2の命令値のセットからのいずれかの1ビットは前記複数の出力部の1つに送られており、前記第1の命令値のセット及び前記第2の命令値のセットからの他の対応する1ビットは前記複数の他の出力部に送られており、
    前記制御入力部は、前記外部命令ストリームと同数のビットを有する値を供給しており、前記ビット毎に選択された値は、前記外部命令ストリームに等しく重要なビットに対応する前記制御入力値のビットに関連して行われていることを特徴とする集積回路。
  19. 複数の処理デバイスは、構成可能ワイヤリングネットワークによって他の処理デバイスに接続されていることを特徴とする請求項18の集積回路。
  20. 処理デバイスは、フィールドプログラマブルアレイの処理要素であることを特徴とする請求項18の集積回路。
  21. 処理デバイスは、 ALUs であることを特徴とする請求項20の集積回路。
  22. 処理デバイスは、4ビット ALUs であり、4ビット幅は命令とデータに要求されていることを特徴とする請求項21の集積回路。
  23. 前記第2の命令値のセットの命令値のそれぞれは、定常命令値、変化可能値、データ依存命令値及び構成可能命令値のいずれか一つを備えていることを特徴とする請求項18の回路。
  24. 命令ストリームを処理デバイスに供給する回路であって、
    部分入力命令ストリームを受信しており、その部分入力命令ストリームは複数の第1部分入力命令を有しており、部分第1入力命令のそれぞれは第1の複数の入力命令値を有している入力部と、
    第2部分入力命令を受信しており、その第2部分入力命令は第2の複数の入力命令値を有している命令値入力部と、
    入力命令ストリームを受信するとともに、出力命令ストリームを生成する選択装置と、
    処理デバイスに出力命令ストリームを供給する複数の出力部と、
    命令マスクを選択装置に供給する制御入力部と、を備えており、
    前記入力命令ストリームは、第2部分入力命令と複数の第1部分入力命令の一つを備えている複数の入力命令を備えており、
    前記出力命令ストリームは、第1部分出力命令と第2部分出力命令を備えている複数の出力命令を備えており、
    第1部分出力命令は、第1の複数の出力命令値と第2の複数の出力命令値を有する第2部分出力命令を備えており、
    前記第2部分入力命令は、第1入力命令セット内のそれぞれの入力命令に共通する部分入力命令を備えており、
    複数の第1部分入力命令のそれぞれは、第1入力命令セット内の第1及び第2入力命令の間で変化可能な部分入力命令を備えており、
    選択装置は、複数の出力部の間で、入力マスクに基づいて、第1の複数の入力命令値と第2の複数の入力命令値を分配することによって、出力命令ストリームを生成していることを特徴とする回路。
  25. 命令マスクは、処理デバイスによって再構成されることを特徴とする請求項24の回路。
  26. 命令マスクは、複数の第1部分入力命令が入力部によって受信されるよりも少ない頻度で受信される外部信号によって、再構成されることを特徴とする請求項24の回路。
  27. 命令マスクは再構成段階において再構成されており、入力部は処理段階において部分入力命令ストリームを受信することを特徴とする請求項24の回路。
  28. 命令マスクを第2命令マスクに取り替えることによって、処理デバイスに第2出力命令ストリームを供給するように再構成されることを特徴とする請求項24の回路。
  29. 複数の出力命令のそれぞれは、複数の出力命令の一つを生成するために利用されている複数の第1部分入力命令よりも大きいことを特徴とする請求項24の回路。
  30. 第1の複数の出力命令値と第2の複数の出力命令値は共に、第1及び第2の複数の出力命令値を生成するために利用されている第1の複数の入力命令値よりも大きい命令値を含むことを特徴とする請求項24の回路。
  31. 選択装置は、第1の複数の入力命令値と第2の複数の入力命令値の間でビット毎に選択された出力命令値によって、第1の複数の入力命令値と第2の複数の入力値を複数の出力部の間に分配しており、
    選択された出力命令値において、第1の複数の入力命令値又は第2の複数の入力命令値のいずれかからの1ビットは複数の出力部の一つに送られており、他の第1の複数の入力命令値、又は他の第2の複数の入力命令値からの対応するビットは複数の他の出力部に送られていることを特徴とする請求項24の回路。
  32. 前記命令マスクは、前記第1の複数の入力命令値と同数のビットを有する値を備えており、前記ビット毎の選択は、前記第1の複数の入力値に等しく重要なビットに対応する前記命令マスクのビットを参照することによって行われていることを特徴とする請求項31の回路。
  33. 複数の出力部の一つは、処理デバイスに命令入力を供給しており、
    他の複数の出力部の一つは、処理デバイスの周辺回路に入力を供給することを特徴とする請求項31の回路。
  34. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力を許可又は禁止する回路を備えていることを特徴とする請求項33の回路。
  35. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力に演算定数を供給する回路を備えていることを特徴とする請求項33の回路。
  36. 命令及びデータと同じデータパスの幅を有する処理デバイスを利用することを特徴とする請求項24の回路。
  37. 処理デバイスが第2の複数の命令値に基づいて制御されるように、選択装置に第1の複数の命令値を供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項24の回路。
  38. 処理デバイスが第1の複数の命令値に基づいて制御されるように、選択装置に命令マスクの供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項24の回路。
  39. 処理デバイスが命令マスクに基づいて制御されるように、選択装置に第1の複数の命令値を供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項24の回路。
  40. 選択装置は複数のマルチプレクサを備えていることを特徴とする請求項24の回路。
  41. 選択装置は、複数の AND ゲート及び OR ゲートの組合せを備えており、
    AND ゲート及び OR ゲートの組合せのそれぞれは、第1の複数の入力命令値からのビットと命令マスクからの対応するビットを受信していることを特徴とする請求項24の回路。
  42. 第1部分出力命令は複数の出力部の一つに供給されており、
    第2部分出力命令は他の複数の出力部に供給されていることを特徴とする請求項24の回路。
  43. 命令値はビットを備えていることを特徴とする請求項24の回路。
  44. 命令マスクは第2部分入力命令を備えていることを特徴とする請求項24の回路。
  45. 命令マスクはメモリに保存されていることを特徴とする請求項24の回路。
  46. 回路は、レジスタの利用が命令機能から独立して指定されるために、処理デバイスとともに利用されていることを特徴とする請求項24の回路。
  47. 第2の複数の入力命令値のそれぞれは、定常命令値、変化可能命令値、データ依存命令値及び構成可能命令値のいずれかを備えていることを特徴とする請求項24の回路。
  48. フィールドプログラマブルアレイであって、
    複数の処理デバイスと、
    構成可能ワイヤリングネットワークと、
    一つ又は複数の処理デバイスに命令ストリームを供給する一つ又は複数の回路を備えており、
    前記回路は、
    部分入力命令ストリームを受信する入力部と、
    第2部分入力命令を受信する命令値入力と、
    入力命令ストリームを受信するとともに、出力命令ストリームを生成する選択装置と、
    処理デバイスに出力命令ストリームを供給する複数の出力部と、
    命令マスクを選択装置に供給する制御入力を備えており、
    前記部分入力命令ストリームは複数の第1部分入力命令を備えており、それぞれの第1部分入力命令は第1の複数の入力命令値を備えており、
    前記第2部分入力命令は第2の複数の入力命令値を備えており、
    前記入力命令ストリームはそれぞれが第2部分入力命令と複数の第1部分入力命令の一つを備えている複数の入力命令を備えており、出力命令ストリームはそれぞれが第1部分出力命令と第2部分出力命令を備えている複数の出力命令を備えており、
    第1部分出力命令は第1の複数の出力命令値と第2の複数の出力命令値を有する第2部分出力命令を備えており、
    前記第2部分入力命令は、第1入力命令セット内のそれぞれの入力命令に共通する部分入力命令を備えており、
    複数の第1部分入力命令のそれぞれは、第1入力命令セット内の第1及び第2入力命令の間で変化可能な部分入力命令を備えており、
    選択装置は、複数の出力部の間で、入力マスクに基づいて、第1の複数の入力命令値と第2の複数の入力命令値を分配することによって、出力命令ストリームを生成していることを特徴とするフィールドプログラマブルアレイ。
  49. 処理デバイスは ALUs を備えていることを特徴とする請求項48のフィールドプログラマブルアレイ。
  50. ALUs は、4ビット ALUs を備えており、
    その ALUs は4ビット幅の命令及びデータ入力を備えていること特徴とする請求項49のフィールドプログラマブルアレイ。
  51. 命令値はビットを備えていることを特徴とする請求項48のフィールドプログラマブルアレイ。
  52. 処理デバイスに命令ストリームを供給するための回路であって、
    第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、
    第2の命令値のセットを供給する命令値入力と、
    命令マスクを含むように構成されたメモリと
    処理デバイスに出力命令ストリームを供給する複数の出力部と、
    メモリからの命令マスクを受信する制御信号パスと、
    制御信号パスから命令マスクを受信するとともに、その命令マスクに基づいて複数の出力の間で第1の命令値のセットと第2の命令値のセットを分配する選択装置と、を備えており、
    前記選択装置は、前記第1の命令値のセットと前記第2の命令値のセットの間で、ビット毎に値を選択するものであり、
    選択された各値について、前記第1の命令値のセット及び前記第2の命令値のセットのいずれかからの1ビットは前記複数の出力部の1つに送られており、他の前記第1の命令値のセット、及び他の前記第2の命令値のセットからの対応する1ビットは前記複数の他の出力部に送られており、
    前記命令セットは前記第1の命令値のセットと同数のビットを有する値を備えており、前記ビット毎の値の選択は、前記第1の命令値のセットの等しく重要なビットに対応する前記命令マスクのビットに関連して行われることを特徴とする回路。
  53. 出力命令ストリームは、全体として外部命令ストリームよりも大きなビットを備えていることを特徴とする請求項52の回路。
  54. 複数の出力部の一つは、処理デバイスに命令入力を供給しており、他の複数の出力部は処理デバイスの周辺回路に供給していることを特徴とする請求項52の回路。
  55. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力を許可又は禁止する回路を備えていることを特徴とする請求項54の回路。
  56. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力に演算定数を供給するための回路を備えていることを特徴とする請求項54の回路。
  57. 前記命令及びデータに同じデータパスの幅を有する処理デバイスを利用することを特徴とする請求項52の回路。
  58. 回路は、レジスタの利用が命令機能から独立して指定されるように、処理デバイスとともに用いられることを特徴とする請求項52の回路。
  59. 処理デバイスが第2の命令値のセットに基づいて制御されるように、選択装置に第1の命令値のセットを供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項52の回路。
  60. 処理デバイスが第1の命令値のセットに基づいて制御されるように、選択装置に命令マスクの供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項52の回路。
  61. 処理デバイスは、単一集積回路内の複数の処理デバイスの一つであることを特徴とする請求項52の回路。
  62. 命令マスクは、第1の命令値のセットが命令ストリームに供給されるよりも少ない頻度でアップデートされることを特徴とする請求項52の回路。
  63. 命令マスクは、処理デバイスによってアップデートされることを特徴とする請求項52の回路。
  64. 第2の命令値のセットの要素のそれぞれは、定常命令値、変化可能命令値、データ依存命令値及び構成可能命令値のいずれかを備えていることを特徴とする請求項52の回路。
  65. 命令マスクは第2の命令値のセットを備えていることを特徴とする請求項52の回路。
  66. 処理デバイスに命令ストリームを供給する回路であって、
    第1の命令値のセットを供給するために外部命令ストリームを受信する入力部と、
    複数のマスク値を有する命令マスクを備えているメモリと、
    処理デバイスに出力命令ストリームを供給する複数の出力部と、
    メモリからの命令マスクを受信する制御信号パスと、
    制御信号パスからの命令マスクを受信しており、命令マスクに基づいて複数の出力部の間で第1の命令値のセットと複数のマスク値を受信する選択装置と、を備えており、
    前記選択装置は、前記第1の命令値のセットと複数のマスク値との間で選択されたビット毎の値を供給しており、ここで、選択された各値について、前記第1の命令値のセット及び前記複数のマスク値のいずれかからの1ビットは前記複数の出力部の1つに送られており、他の前記第1の命令値のセット、及び他の前記複数のマスク値からの対応する1ビットは前記複数の出力部の他に送られており、
    前記命令マスクは、前記第1の命令値のセットと同数のビットを有する値を備えており、前記ビット毎の値の選択は、前記第1の命令値のセットの等しく重要なビットに対応する前記命令マスクのビットに関連して行われることを特徴とする回路。
  67. 出力命令ストリームは、全体として外部命令ストリームよりも大きなビットを備えていることを特徴とする請求項66の回路。
  68. 複数の出力部の一つは、処理デバイスに命令入力を供給しており、他の出力部は処理デバイスの周辺回路に入力を供給することを特徴とする請求項66の回路。
  69. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力を許可又は禁止する回路を備えていることを特徴とする請求項68の回路。
  70. 前記周辺回路は、前記処理デバイスへの1つ又は複数のデータ入力に演算定数を供給するための回路を備えていることを特徴とする請求項68の回路。
  71. 前記命令及びデータと同じデータパスの幅を有する処理デバイスを利用することを特徴とする請求項66の回路。
  72. 回路は、レジスタの利用が命令機能から独立して指定されるように、処理デバイスとともに用いられることを特徴とする請求項66の回路。
  73. 処理デバイスが複数のマスク値に基づいて制御されるように、選択装置に第1の命令値のセットを供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項66の回路。
  74. 処理デバイスが第1の命令値のセットに基づいて制御されるように、選択装置に命令マスクの供給することを禁止する禁止装置をさらに備えていることを特徴とする請求項66の回路。
  75. 処理デバイスは、単一集積回路内の複数の処理デバイスの一つであることを特徴とする請求項66の回路。
  76. 命令マスクは、第1の命令値のセットが命令ストリームに供給されるよりも少ない頻度でアップデートされることを特徴とする請求項66の回路。
  77. 命令マスクは、処理デバイスによってアップデートされることを特徴とする請求項66の回路。
  78. 複数のマスク値のそれぞれは、定常命令値、変化可能命令値、データ依存命令値及び構成可能命令値のいずれかを備えていることを特徴とする請求項66の回路。
  79. 選択装置は、複数の AND ゲート及び OR ゲートの組合せを備えており、
    AND ゲート及び OR ゲートの組合せのそれぞれは、第1の複数の入力命令値からのビット及び命令マスクからのビットに対応するビットを受信することを特徴とする請求項66の回路。
JP35768698A 1997-12-17 1998-12-16 処理デバイスに命令ストリームを供給する方法及び装置 Expired - Fee Related JP3762841B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP97310220 1997-12-17
EP98304528 1998-06-09
GB97310220.5 1998-06-09
GB98304528.7 1998-06-09

Publications (2)

Publication Number Publication Date
JPH11249894A JPH11249894A (ja) 1999-09-17
JP3762841B2 true JP3762841B2 (ja) 2006-04-05

Family

ID=26147746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35768698A Expired - Fee Related JP3762841B2 (ja) 1997-12-17 1998-12-16 処理デバイスに命令ストリームを供給する方法及び装置

Country Status (3)

Country Link
US (2) US6523107B1 (ja)
JP (1) JP3762841B2 (ja)
DE (1) DE69841256D1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
EP1329816B1 (de) * 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
ATE437476T1 (de) * 2000-10-06 2009-08-15 Pact Xpp Technologies Ag Zellenanordnung mit segmentierter zwischenzellstruktur
US7844796B2 (en) * 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
WO2002103532A2 (de) * 2001-06-20 2002-12-27 Pact Xpp Technologies Ag Verfahren zur bearbeitung von daten
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
DE10392560D2 (de) * 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
WO2003071432A2 (de) * 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
WO2006082091A2 (en) * 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7725691B2 (en) * 2005-01-28 2010-05-25 Analog Devices, Inc. Method and apparatus for accelerating processing of a non-sequential instruction stream on a processor with multiple compute units
US20070038984A1 (en) * 2005-08-12 2007-02-15 Gschwind Michael K Methods for generating code for an architecture encoding an extended register specification
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US9513907B2 (en) * 2013-08-06 2016-12-06 Intel Corporation Methods, apparatus, instructions and logic to provide vector population count functionality
US9495155B2 (en) * 2013-08-06 2016-11-15 Intel Corporation Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4236204A (en) 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4698751A (en) 1984-07-13 1987-10-06 Ford Aerospace & Communications Corporation Systolic array for solving cyclic loop dependent algorithms
US4847759A (en) * 1985-03-18 1989-07-11 International Business Machines Corp. Register selection mechanism and organization of an instruction prefetch buffer
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4775952A (en) 1986-05-29 1988-10-04 General Electric Company Parallel processing system apparatus
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US5983328A (en) * 1987-03-13 1999-11-09 Texas Instruments Incorporated Data processing device with time-multiplexed memory bus
US5617574A (en) * 1989-05-04 1997-04-01 Texas Instruments Incorporated Devices, systems and methods for conditional instructions
US5233539A (en) 1989-08-15 1993-08-03 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
US5204556A (en) 1991-05-06 1993-04-20 Lattice Semiconductor Corporation Programmable interconnect structure for logic blocks
US5291431A (en) 1991-06-03 1994-03-01 General Electric Company Array multiplier adapted for tiled layout by silicon compiler
WO1993008523A2 (en) 1991-10-21 1993-04-29 Thomson Consumer Electronics S.A. 1-bit adder and multiplier containing a 1-bit adder
US5208491A (en) 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
US5498975A (en) 1992-11-19 1996-03-12 Altera Corporation Implementation of redundancy on a programmable logic device
US5457644A (en) 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
US5537627A (en) * 1993-09-08 1996-07-16 Hilevel Technology, Inc. Microprogrammable processor capable of accessing unused portions of control store as fast data memory
JPH07146781A (ja) 1993-11-19 1995-06-06 Sony Corp プロセツサ
JP3547446B2 (ja) 1994-02-15 2004-07-28 ジリンクス,インコーポレーテッド フィールドプログラマブルゲートアレーのタイル型構造
US5586277A (en) * 1994-03-01 1996-12-17 Intel Corporation Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders
GB2289354B (en) 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
US5426379A (en) 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
JPH08185320A (ja) * 1994-12-28 1996-07-16 Mitsubishi Electric Corp 半導体集積回路
US5680597A (en) * 1995-01-26 1997-10-21 International Business Machines Corporation System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5754459A (en) 1996-02-08 1998-05-19 Xilinx, Inc. Multiplier circuit design for a programmable logic device
GB9611994D0 (en) 1996-06-07 1996-08-07 Systolix Ltd A field programmable processor
KR100212142B1 (ko) * 1996-09-12 1999-08-02 윤종용 매크로 명령기능을 가진 동기식 반도체 메모리장치와 매크로 명령의 저장 및 실행방법
US5805477A (en) 1996-09-26 1998-09-08 Hewlett-Packard Company Arithmetic cell for field programmable devices
US5974437A (en) 1996-12-02 1999-10-26 Synopsys, Inc. Fast array multiplier
US5835746A (en) * 1997-04-21 1998-11-10 Motorola, Inc. Method and apparatus for fetching and issuing dual-word or multiple instructions in a data processing system
JP3123977B2 (ja) 1998-06-04 2001-01-15 日本電気株式会社 プログラマブル機能ブロック

Also Published As

Publication number Publication date
US6523107B1 (en) 2003-02-18
DE69841256D1 (de) 2009-12-10
US20030188138A1 (en) 2003-10-02
US6820188B2 (en) 2004-11-16
JPH11249894A (ja) 1999-09-17

Similar Documents

Publication Publication Date Title
JP3762841B2 (ja) 処理デバイスに命令ストリームを供給する方法及び装置
US9672033B2 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
US6816961B2 (en) Processing architecture having field swapping capability
US6467036B1 (en) Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US7941648B2 (en) Methods and apparatus for dynamic instruction controlled reconfigurable register file
US5991531A (en) Scalable width vector processor architecture for efficient emulation
US8266410B2 (en) Meta-architecture defined programmable instruction fetch functions supporting assembled variable length instruction processors
US20030037221A1 (en) Processor implementation having unified scalar and SIMD datapath
KR19980070019A (ko) 명령어 요소들의 재조합에 의한 서로 다른 명령어 코드들 사이의 동적 변환
CA2560469A1 (en) Apparatus and method for asymmetric dual path processing
US7313671B2 (en) Processing apparatus, processing method and compiler
WO2005096140A2 (en) Apparatus and method for control processing in dual path processor
US20020198606A1 (en) Data processing system and control method
US11397583B2 (en) Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
US20020032710A1 (en) Processing architecture having a matrix-transpose capability
US20090228686A1 (en) Energy efficient processing device
US20200249955A1 (en) Pair merge execution units for microinstructions
US7340591B1 (en) Providing parallel operand functions using register file and extra path storage
US6408320B1 (en) Instruction set architecture with versatile adder carry control
US6975250B2 (en) Methods and systems for data manipulation
US11385897B2 (en) Merge execution unit for microinstructions
EP0924602B1 (en) Instruction masking in providing instruction streams to a processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050531

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050809

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051031

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: 20051220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060116

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

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: 20090120

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

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: 20090120

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20090120

Year of fee payment: 3

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: 20090120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100120

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110120

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees