JPH11249894A - 処理デバイスに命令ストリームを供給する方法及び装置 - Google Patents
処理デバイスに命令ストリームを供給する方法及び装置Info
- Publication number
- JPH11249894A JPH11249894A JP10357686A JP35768698A JPH11249894A JP H11249894 A JPH11249894 A JP H11249894A JP 10357686 A JP10357686 A JP 10357686A JP 35768698 A JP35768698 A JP 35768698A JP H11249894 A JPH11249894 A JP H11249894A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- input
- bit
- circuit
- bits
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/527—Multiplying only in serial-parallel fashion, i.e. one operand being entered serially and the other in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction 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/5336—Reduction 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/5338—Reduction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
Abstract
を提供する。 【解決手段】回路の実施形態は、RISC CPUに使用するの
に適しているが、一方、他の実施形態は、フィールト゛フ゜ロク゛ラ
マフ゛ルアレイにおいて使用される小さな処理テ゛ハ゛イスのよう
な、他の処理テ゛ハ゛イスに使用することもできる。この回路
は、第1の命令値のセットを供給する外部の命令ストリームを受
信すると共に、第2の命令値のセットを含むメモリを備えてい
る。複数の出力部が、処理テ゛ハ゛イス3に命令ストリーム13、14を
供給する。この回路は、選択手段11に、第1及び第2の命
令値のセットからのヒ゛ットを、処理テ゛ハ゛イスへのそれぞれの命
令ストリームに割り当てるようにさせる制御入力12をマスクの形
式で備えている。
Description
たは処理装置)に対する命令ストリームの供給に関す
る。好ましい実施形態では、本発明は、処理デバイスに
利用することができる命令ストリームを拡張し、それに
よって命令サイズを縮小することを可能にする方法に関
する。
能な)デバイスは、命令のストリームによって制御され
る演算を行う。このようなストリームは、一般に、命令
ストリームと呼ばれる。こういったプログラマブルデバ
イスは、複数のマイクロプロセッサを含むが、それに限
定されるものではない。ストリーム内の各命令は、典型
的には、予め決められた長さのビットのパターンであ
り、これは命令語と呼ばれる。ビットの各パターンは、
符号化されたものであり、それは、プログラマブルデバ
イスに対する特定の命令を表している。大抵のプログラ
マブルデバイスでは、1サイクル規準で動作を制御す
る。通常はそうであるが、ある種のフィールドプログラ
マブルゲートアレイ(FPGA)のように、1サイクル
規準で制御されることには意味が無いプログラマブルデ
バイスがある。後述する例では1サイクル単位の制御を
示すが、本発明のいくつかの実施形態では、フィールド
プログラマブルデバイスが特別に関係がある。
満たしたものである。第1に、デバイスのプログラマが
豊富な機能を利用することができるように、多くの異な
る演算を符号化する必要がある。第2に、命令の復号化
が容易である必要がある。すなわち、比較的小さい回路
が、外部命令を必要な内部制御信号に変換する必要があ
る。これら2つの要因により、各命令語のビット数が多
くなる。しかしながら、第3の要因は、一般に、各命令
語のビットの数を小さくする必要があるということであ
る。そうでなければ、必要とされる広いデータチャネル
に適応するために、多くの時間と回路空間を消費するこ
とになる。
張り合いが特に明らかである領域は、RISC(Reduced In
struction Set Computer:縮小命令セットコンピュー
タ)プロセッサの設計にある。1980年代半ばまで普及し
ていたCISC(Complex Instruction Set Computer:複雑
命令セットコンピュータ)の命令セットとは異なり、RI
SCは、簡略化した命令セットを処理する限定された複数
の命令セットを使用する。一般に、CISCデザインでは、
各々の有効な結果に対して命令を指定する必要があると
考えられている。速度を上昇させ(個々の処理ユニット
は、限定された命令を処理しているために簡単にするこ
とができるため)、コストを削減する(RISCデザイン
は、一般に、同等のCISCデザインより必要なトランジス
タの数が少ないため)ために、一般のマイクロプロセッ
サの設計は、RISCの設計に移行してきている。しかしな
がら、RISCにはCISCにある命令選択の豊富さが欠けてい
るため、RISCプロセッサのために書かれたコードは、CI
SCプロセッサのために書かれたコードよりかなり長くな
る傾向がある。この点に関して、RISCプロセッサはCISC
プロセッサに対して欠点を有している。
富な命令セットを与えることで、事前に十分に除去する
ことができる。命令サイズを縮小することは、それによ
って命令経路のためのメモリからプロセッサへの全体の
帯域幅が縮小され、プログラムを格納するためのメモリ
量も縮小することができる(特に、組み込みアプリケー
ションにおいて重要である)ため、有利である。命令サ
イズを縮小する方法の一つとして、例えば、World Wide
Webサイトhttp://www.devcom.com/riscm/Pro+Peripher
als/ArchExt/Thumb/Flyer/、及び米国特許第5568646号
に示されているような拡張RISCマシンリミテッド(Adva
nced RISC Machines Limited:ARM)の「Thumb」アーキ
テクチャがある。ARMプロセッサは、32ビットのプロ
セッサであり、32ビットの命令セットを備えている。Th
umb命令セットは、この32ビット命令セットにおいて
最も使用される命令の一揃いからなり、それは16ビット
形式に圧縮されている。これら16ビット命令は、プロセ
ッサにおいて32ビットコードに復元される。このソリュ
ーション(解決策)によって、32ビットのプロセッサに
対して16ビットの命令経路を使用することが可能になる
が、命令パイプラインが余計に複雑になる。さらに、こ
のソリューションは、命令セットの選択された命令グル
ープへの縮小に依存する。
に対する命令の供給を最適化する他の方法を見つける必
要があり、それによって、命令サイズを縮小すると同時
に、豊富な機能性と復号化の容易性を達成することがで
きる。
理デバイスに命令ストリームを供給する回路を提供する
ものであって、第1の命令値のセットを供給するために
外部命令ストリームを受信する入力部と、第2の命令値
のセットを含むように構成されたメモリと、処理デバイ
スに出力命令ストリームを供給するための複数の出力部
と、制御入力部と、上記制御入力部により、複数の出力
部間に第1の命令値のセットと第2の命令値のセットを振
り分けるように構成された選択手段とを具備する。
命令を受け入れて情報処理機能を実行することができる
任意の処理要素に対して基本的に使用され、明らかに、
CPUのような要素を含むが、フィールドプログラマブル
アレイ内の処理要素をも含む。そのような構造について
の本発明の適用例を、以下に示す。
て、外部命令ストリームにおいて与えられたワード長で
利用可能な命令セットの機能を向上させることが可能と
なる。有利なことには、命令語の「伸長(拡張)」が可
能となり、そのため、出力命令ストリームが全体として
外部命令ストリームより多くのビットを含むようにな
る。代替的には、ビットを命令ストリームから転用し
て、処理デバイスの周辺回路を駆動することができ、そ
れによって、それ自身で、命令セットを効果的に伸長す
ることができる。この周辺回路は、複数の機能の範囲で
使用することができ、その一例として、処理デバイスへ
のデータ入力を許可又は禁止する機能がある。
令値のセットと第2の命令値のセットとの間でビット単
位の値を選択し、値の各選択について、第1の命令値の
セット及び第2の命令値のセットからの1ビットを、複数
の出力の1つに割り当て、他方の第1の命令値のセット
と第2の命令値のセットからの対応するビットを、複数
の出力の他の1つに割り当てる。この構成において、第
2の命令値のセットは、変数で与えることができるが、
有利な実施形態では、一つ又は複数の定数(例えば、外
部命令ストリームの開始前の、おそらくは、構成可能な
又は再構成可能なデバイスの場合におけるデバイス構成
時に定義された値)として与えられる。
る更に有益な特徴は、外部命令ストリームからの命令又
は第2の命令値のセットからの命令の供給のいずれかを
禁止する手段を使用することである。これらの特徴によ
り、デバイスの機能のいずれかを「無視」することによ
り、プログラミングの困難性を低減することができる。
対して同じデータ経路幅を有するプロセッサデバイスで
あって、レジスタの使用を命令機能から独立して指定す
る(RISCプロセッサの場合、一般的であるが)ようなプ
ロセッサデバイスを使用する場合に効果的であるが、ま
た、同様な問題が存在する他の形態のプロセッサ設計に
おいても明らかな利点がある。本発明の適用例として、
RISC設計に関してのみでなく、複数のプロセッサ要素を
備えたフィールドプログラマブルデバイスの設計に関し
ても述べる。
ラマブルデバイスの特に適した形態は、複数の処理デバ
イスが構成可能な配線ネットワークによって互いに接続
されており、処理デバイスが、複数のALU、特に比較
的小さいALU(たとえば4ビットALU)である(又
はそれらを含むものである)ことにある。
に、例を用いて添付図面を参照して説明する。
ブルシステムの主な要素を、従来技術のプログラマブル
システムと対比させる。そのような従来技術のプログラ
マブルシステムの要素を、図1に示す。命令は、命令ス
トリーム1により、制御中のデバイスに対して外部のメ
モリ(図示せず)から供給され、命令ストリーム内の別
々の命令の要素(例えば、命令語のビット)で表される
命令値のセットは、命令復号器2によって復号され、制
御中のデバイス3に意味のある復号済み命令6として出
力される。制御中のデバイス3は、例えば、RISCプロセ
ッサとしてもよい。従って、復号済み命令6は、制御中
のデバイス3へ供給され、また、デバイス3は、受信デ
ータ4を受信して、それが使用する復号済み命令6及び
受信データ4からデータ出力5を供給する。
グラマブルシステムの構成要素を示す。このシステムの
大部分の外観は図1に示すものと同じである(それらの
図において同じ参照番号を用いている)が、命令復号器
2への命令の供給が異なっている。命令は、従来と同様
に命令ストリーム1で供給されるが、選択手段11を介
して供給される命令の出所が追加されている。ここで、
選択手段11は、命令サイズを効果的に伸長するように
構成することができるため、命令伸長要素と呼ぶ。命令
伸長要素11への制御入力は、後述するように、命令マ
スク12によって供給される。命令伸長要素11は、J
及びKという2つの出力を有しており、これらは命令復
号器2に対して2つの命令ストリーム13,14を供給
する。命令伸長要素11が3つ以上の出力、つまりは3
つ以上の命令ストリームを利用する他の実施形態は、本
発明の他の実施形態の適用例として容易に提供すること
ができる。
セットを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出力のいずれかに定められ
ている。
J出力とK出力のうち、外部命令ストリーム1からの関
連したビットによって出力値が与えられないのがどちら
であるかの情報が与えられる。すなわち、命令マスク値
が1である場合、第2のマルチプレクサ44への「1」
入力によって、J出力に出力値が与えられ、命令マスク
値が0である場合、第1のマルチプレクサ43への
「0」入力によって、K出力に出力値が与えられる。こ
こでは、これら追加のマルチプレクサ入力41,42
は、双方とも定数値で供給される(しかし、より複雑な
実施形態では、これらは変数とするか、もしくはデータ
依存とすることができる)。第1のマルチプレクサへの
「0」入力41は、第1の定数C1によって供給され、第
2のマルチプレクサへの「1」入力42は、第2の定数C
2によって供給される。
1とnビットの命令マスク12とが供給されているが、
その結果は2nビットの命令値となり、そのうちのnビ
ットがK出力によって供給され、nビットがJ出力によ
って供給される。命令マスク12は、効果的に、外部命
令ストリーム内のビットをビット単位でJ又はKのいず
れかに送るように機能する。
加させることはできない。所定のマスク値について、J
及びK出力においてあり得る値のサブセットだけを、外
部の値を変化させることによって簡単に供給することが
できる。しかしながら、実際的な多くの場合において、
命令の符号化をしかるべく配置することが容易にできる
ことが分かっている。具体的な例を以下に示す。
を、図4及び図5に示す。図4及び図5の回路の要素
は、概して図3の要素と同じであるが、各場合におい
て、イネーブル入力51及び追加の論理ゲート52,5
3が設けられている。図4及び図5に示す回路によっ
て、単一ビットのイネーブル信号51により外部命令入
力1と命令マスク12をそれぞれ禁止するオプションを
加えることができる。回路を主入力のいずれか一方によ
り完全に制御することができるメカニズムを供給する動
作を、かなり簡略化することができるため、このような
拡張は望ましいものである。
の主な代替バージョンがある。これらは、命令マスク1
2の設定方法によって異なる。これは図6に示すように
構成することができ、ここでは、マスク値は、外部命令
ストリーム1に命令が与えられるほど頻繁ではないが、
外部的に設定される。この状態の一例は、再構成可能な
回路内にあり、ここでは命令マスク設定命令21を、デ
バイスの動作中に与えられる構成又は再構成情報の一部
として、供給することができる。例2は、図2のメカニ
ズムのこのバージョンを示しており、以下でさらに説明
する。他の代替バージョンは、図7に示すものであり、
ここでは、マスク設定信号22が制御中のデバイス3自
体によって供給される。この制御形式は、通常のプロセ
ッサ環境におけるより複雑なプロセッサ、すなわち、RI
SC CPUのような、例1に更に説明する構成に適してい
る。
れぞれのコンテキストに対して以下に示す。
の符号化を使用することである。典型的には、すべての
命令は同じサイズであり、とのビットを特定の目的(例
えば、レジスタ指定子、即値定数、演算指定子等)に使
用することができるかに関する非常に限定されたフォー
マットに従う。この方式の利点は、命令を復号するのに
必要なロジックを簡単にすることができ、それによって
小さくかつ高速なプロセッサを構成し得ることである。
一方、対応する不利な点は、多くの命令が厳密に必要な
大きさよりも大きくなることであり、例えば、関連した
2オペランド命令を命令セットに適合させることができ
ないため、2オペランド命令を、3オペランド命令として
1つの入力を複製して符号化する必要がある。また、典
型的なサイズではなく、必要とされる可能な限り大きな
サイズに応じて、即値定数又は分岐オフセット値のため
のスペースを割り当てる必要がある。
グラム全体が必要以上に大きくなる。上述したように、
この結果、メモリからプロセッサへのより高い帯域幅が
必要となり、メモリサイズが全体のシステムコストに影
響を与える場合ある。
は、命令のサイズを縮小するのに用いることができ、そ
れによって、命令セットを豊富に持つという利点を保持
しながら、これらの不利な点が発生しなくなる。このア
プローチの適用例を示すために、これをDLXアーキテク
チャのコンテキストにおいて述べる。DLXは、「Compute
rArchitecture, A Quantitative Approach」、J.L. Hen
nessy & D.A.Patterson,p160〜166及びAppendix E 199
0, Morgan Kaufmann Publishers, Inc. San Mateo, CA,
USA ISBN 1-55860-069-8に述べられている簡略化した
汎用RISCプロセッサである。DLXプロセッサの命令フォ
ーマットを以下に示す。
スタを1つ持っており、他のレジスタは一般に即値定数
である。Rタイプ命令は2つのレジスタオペランドを持
っている。Rs1及びRs2は送信元のレジスタ指定子
であり、Rdは宛先のレジスタ指定子である。命令の基
本タイプは3つともすべて、32ビット長であり、6ビ
ットの重要な演算コードは最上位ビットにある。レジス
タ指定子は、一般に命令内の同じ位置にあり、常に5ビ
ット長である。
一実施形態の適用例を示す。本発明の一実施形態を適用
した結果、この場合には、命令毎のビットの数が21に
減るが、マスキングメカニズムを使用してこれを42に
伸長する。使用する回路は、図5に示すものであり、C
2=0、C1=0である。制御信号の出所については後述
する。伸長された42ビット内の命令ビットの可能なレ
イアウトを、以下の表2の3つの命令フォーマットのそ
れぞれについて示す。
適用例について、さらに下記する。内部のマスク値12
は、R0プロセッサレジスタから取り出される。このレ
ジスタは、DLXにおいて、この特別な制御目的に適した
選択を可能にするため、(他の多くのRISCプロセッサに
おける同等のレジスタと同様に)ある「魔法のような
(magic)」特性を有している。このレジスタは特別な
特性を有しているので、本目的に適した特性をそれに与
えるためにわずかな変更を加えることは、簡単なことで
ある。これらの適した特性は以下の通りである。
は、すべて0に戻る。これによって、式Rx=R0+定
数の演算がRx=0+定数となるため、定数のロードが
可能になる。Rタイプ命令におけるR0への書込みは、
まったく起こらない。全ての状態フラグの設定を含む残
りの命令は、普通に発生し、レジスタファイルへの最後
の再書込み(write back)のみが阻止される。これによ
って、比較演算を安価に実施することができる(A>B
は、R0=B−Aとして、「負の」フラグをチェックす
ることによって実施することができる)。この結果、R
0はIタイプ命令によってのみ書込むことができ、Rタ
イプ命令によってのみ読み出すことができる。
bとは、互いにORをとることにより、Rs1レジスタ
指定子を形成する。これにより、より柔軟に、命令定数
とレジスタ指定子との間にビットを割り当てることがで
きる。例えば、5ビットまでの長さの定数は、Rs1a
をレジスタ指定子として使用し、K4...K0を定数とし
て使用することができ、一方、より大きい定数は、Rs
1bをレジスタ指定子として使用し、K9...K5を定数
として使用することができる。
on)フィールドは、11ビットではなく21ビットから
なる。これによって、伸長済みのセットにおいてビット
位置をより柔軟に割り当てることができ、そのため、レ
ジスタ指定子と演算コード拡張の間でビットを交換する
必要が特に制限されない。
に分割され、K20...K16,K9...K0,J20...J16,
J9...J0という30ビット量に再構成される。短い分
岐は、Jビットのみで表すことができる。より長い分岐
は、Kビットが必要であるが、非常に長い分岐のすべて
を単純に表すことができるとは限らない。
令を1ビット残して64ビットのグループに適合させる
ことができる。この余分のビットを制御信号51として
使用することにより、マスクをオンとすべきかオフとす
べきかを決定することは、適切である。このため、3つ
の命令群は、同じ制御値を共用しなければならないが、
実際にはこれは重要な制限ではなく、命令の順序を再度
付け直すことによって、プログラムの正確性を保ちつ
つ、このような種類の制約を満たすようにする方法が知
られている。3つの命令を64ビットに適合させること
により、分岐先のアラインメントを制限することにもな
る。命令をフェッチするのに使用するワードアドレス
は、64ビットメモリアクセスにおいてどちらの32ビ
ット命令を使用すべきかを指定することができるが、提
案された方式において3つの命令のいずれを使用すべき
かを指定するための追加のメモリアドレスビットは無
い。簡単な解決法は、3つの命令のうちの最初の命令に
のみ分岐することであるが、アドレスビットを操作する
ためのより複雑な他の方法もまた可能である。
00000(2進数)を有する命令は、入力の一方を、
他方が0である時に伝えるIタイプの命令(例えばAd
d、XOR、OR等)である。これは、R0の値を、以
下の表3に示す命令シーケンスを使用して容易に設定す
ることができるということを意味する。
1つめは、命令がI、R又はJタイプのいずれであるか
を示し、2つめは、制御信号の状態を示す(M:マスク
がアクティブである、N:マスクがアクティブでない、
X:関係無し)。これらの命令の重要なものは、一般に
タイプINであるが、実際には、マスクは多くの場合不
都合無くアクティブにすることができる。
レジスタに16ビット値をロードすることができる。R
0が0000FFFF(16進数)である場合、命令の
21ビットは(5ビットのレジスタ番号)(16ビット
の定数値)のように解釈される。この方式で、31の汎
用レジスタすべてを、レジスタ毎に1命令と4つの追加
の命令(開始時に1回と終了時に1回、R0を初期化す
る2つの命令が2組)によって設定することができる。
35×2/3の32ビットワード、すなわち23 1/
3ワードの総計は、圧縮されていない場合に必要な31
ワードと比較して有利であり、25%の節約となる。
Cで書かれている)は、単一ループを表している。
示す。
以下の表5に示す。
適合する3つの命令群の中に示されている。ループ本体
は、11の命令が必要であり、それらは、従来の形式の
11ワードに比較して、8×32ビットワードに収ま
る。従って、分岐先の正確なアラインメントを保証する
ための余分なNOP命令が必要であるにも関わらず、全
体としてサイズを27%節約することができる。
e)アプリケーションのためのフィールドプログラマブ
ルアレイ構造である。CHESSアーキテクチャは、以
下の出願に記載されており、それらはすべて本出願に参
照によって組み込まれている。この出願は、米国を指定
した1998年1月28日に提出された国際特許出願第
GB98/00248号と、1997年12月17日に
提出された欧州特許出願第97310220.5号及び
その対応米国出願である。アーキテクチャ全体のレイア
ウトは、本例では重要ではないが、本発明の目的のため
に、CHESSは、各ALUを各入出力を介して他のA
LUに接続することができるように経路スイッチを有す
る4ビットのALUのアレイからなっていると考えるこ
とができる。
力及び出力を示す。各ALUは、A,B及びI入力への
3つの4ビット入力経路32,33,34と、ALUの
出力Fを運ぶ1つの4ビット出力経路37とを有してい
る。これら入出力経路は、経路スイッチに接続されてい
る。また、桁上げ(carry)信号のための1ビットの入
力経路35と1ビットの出力経路36が設けられてお
り、それ自体経路スイッチのネットワークを有してい
る。これらは、それぞれALUの入力Cinと出力Cout
とに接続されている。
B入力から導出されるデータ出力である。ALUは、表
6において下記するようにA及びBの算術及び論理機能
を生成することができる。また、桁上げ入出力の効果も
示されている。一般に、これらを、桁上げ連鎖(carry
chain)を生成するために使用して、ALUをより広い
ワードの並列計算に使用することができるが、これら
は、比較機能にも使用することができる。
ALUの可能な機能のうちいずれを実際に実行するかを
選択することである。CHESSにおいて、I入力は、
A,B入力及びF出力と同じ幅のものが選択される。す
なわち、4ビットである。このことは、以下の理由から
大きな利点である。すなわち、これによって、ひとつの
ALUのI入力を他のALUのF出力で駆動することが
でき(上述した欧州特許出願第97310220.5号
に記載されているように、命令を動的に与えることがで
き)、経路ネットワークのみが、A、B又はI入力に対
する経路であるかどうかに関係なく、1つのタイプのデ
ータを桁上げすればよいからである。これは、命令の数
に厳しい制約を与える。すなわち、4ビットのI入力
は、最大でも16の命令であることを意味している。し
かしながら、表6は21より多くの入力を示している。
4ビットの命令入力で十分な命令セットを供給するとい
う問題は、本発明の一実施形態による命令マスク方式を
用いることによって、解決することができる。
ことにより、8ビット(4×Jビット及び4×Kビッ
ト)に伸長することができる。マスク値12及び制御信
号51は、両方とも、フィールドプログラマブルアレイ
の初期構成の一部として内部レジスタに格納される。こ
こで、定数は、C1=1及びC2=0のように選択され
る。このように選択した結果、制御信号51が外部命令
入力Iを禁止すると、Jは格納されたマスク値に従うと
いうことになる。これにより、I入力に定数値を必要と
することなく、従ってIに定数値を供給する経路ネット
ワークの必要を無くして、ALUの機能を定数演算に対
して設定することができる。
Kビット この例では、4ビットALUに対する主命令を決定する
ためにJビットを使用するが、周辺回路を制御するた
め、特にAおよびB入力を許可するためにKビットを使
用する。これによって、構成例1に含まれる適用例に示
すように、命令セットを効果的に伸長することができ
る。
に以下の機能を割り当てる。
示す16の機能のうち1つを選択するために使用する。
K0及びK2を、A入力に対する入力イネーブルを与える
ために使用する。ここで、K0及びK2が両方ともローで
ある場合、入力はオンとなり、そうでない場合はオフと
なる(表7においてA=0000に相当する)。K1及
びK3をB入力に対する入力イネーブルを与えるために
使用する。ここで、K1及びK3が両方ともローである場
合、入力はオンとなり、そうでない場合はオフとなる。
効に追加した結果、命令マスク値の特定の値が選択され
るように慎重になされている。例えば、マスク値が00
11である場合、J1及びJ0は両方とも1でなければな
らないが、AおよびB入力は両方ともオフにすることが
できる。有効な命令セット(外部命令ストリームから認
識される命令セット)を表8に示す。
は、すべて算術演算において有効な定数である。ある場
合に結果として生じる定数値1111は、2の補数計算
において−1を示すが、これはしばしば必要な値であ
る。
合、A及びB入力の両方とも再びオフとすることができ
るが、この場合、J3及びJ2は両方とも1であり、命
令セットは表9に示すものとなる。
有効な命令セットを得ることができる。このマスク値を
用いると、Aをオフにする2つの方法がある。その有効
な命令セットを表10に示す。
許可することにより有効な命令セットを変更するための
命令マスクを使用するので、ALU31によって(I入
力で受信されるものに関して)認識されるのと同じ命令
セットについて、さまざまな種類の異なる命令セット
を、外部命令ストリーム1で認識することができるとい
うことがわかる。基本的な命令セットを慎重に選択する
ことにより(Jビットの組合わせのうちのどれをどの命
令に割り当てるかに関して)、これらの異なる有効な命
令セットを工夫して、特定の機能として使用するために
特に有効なものとすることができる。このため、フィー
ルドプログラマブルアレイの構成において、所定のプロ
セッサ要素についてのマスク値を、そのプロセッサ要素
に対して利用可能な命令が、実行する必要のある(1つ
又は複数の)演算に特に適したセットとなるように選択
することができる。
7から表10に示す命令セットに関連する一連の適用例
によって最も良く示される。なお、表7における命令の
選択は、例示的なものであることを強調しておく。すな
わち、当業者は、この明細書の開示内容から、貴重で有
効な命令セットを生成する他の選択を考案する方法を十
分に認識するであろう。
回路は、2つのALUを有している。1つはALU10
4であり、これは0000のマスク値を有し、従って、
表7に示す有効な命令セットを有している。もう1つは
ALU103であり、これは0011のマスク値を有
し、従って表8に示す有効な命令セットを有している。
この回路は、4つの入力によって制御される。これら
は、ALU103及びALU104それぞれへの外部命
令入力108,109と、回路と共に使用するメモリ1
02(CHESSアーキテクチャにおいて、このメモリ
は、欧州特許出願第97310220.5号に記載され
ているようにユーザプレーンメモリ(user plane memor
y)に変換されるスイッチメモリによって構成すること
ができる)へのアドレス入力110及び読出し/書込み
入力111である。また、3つのレジスタ、すなわちレ
ジスタ1(105)、レジスタ2(106)、及びC
outレジスタ107が設けられており、これらもまた、
CHESSアーキテクチャの構成要素から容易に供給す
ることができる。以下の例において、明確には示してい
ないが、メモリ102に対する書込みはすべてレジスタ
1(105)に書込まれるようになっている。
グラムと同様にCで書かれている) は、以下の表11に示す入力シーケンスに従って実現す
ることができる。表11は、命令値、及び結果として生
じるレジスタ値を示している。
算の結果を表す。この値は、当然0又は1である。従っ
て、計数値がインクリメントされるかインクリメントさ
れないかは、比較の結果による。
比較し、合致した数を記録する演算を示す。
示す入力シーケンスによって達成することができる。
表すために使用される。また、計数の変数値は、各比較
の後でQだけ再度インクリメントされ、合致した数を表
す。
ての入力許可機能を与えるという点で、構成例1と類似
している。しかしながら、この場合は、すべてのKビッ
トをその目的に使用するのではなく、代わりに他のビッ
トを、即値定数を供給するために使用する。利用可能な
命令タイプの範囲は、第1の構成例より制限されている
が、即値定数を供給するメカニズムはいくつかの適用例
についてのプログラミングを直接的にかなり簡略化す
る。
機能を割り当てる。
ように16の命令の1つを選択する。K0はA入力につ
いて入力許可を与えるために使用される。K0がローで
ある場合、入力はオンとなり、他の場合には、A入力は
定数値K3K200となる。K1は、B入力について入力許
可を与えるために使用する。K1がローである場合、入
力はオンとなり、他の場合はB入力はオフとなる(値0
000に設定されるのと同じである)。
Jビットはすべて1に設定され、ALUは常に命令A+
B+Cinを実行しなければならない。追加すべき値の選
択は、以下の表13に示すように、Kビットによって決
定される。
以下の通りである。
か、定数0,4,8,12のいずれか(もしくは、Cin
によって与えられる可能性を含み、0,1,4,5,
8,9,12,13からのいずれかの定数)。
な値と突き合わせてチェックし、チェックの結果に応じ
てカウンタをインクリメントすることによって、ヒスト
グラムを生成することができる。
有するように構成されており、上記コードを実行するた
めに使用することができる。図9に示す場合ともう1つ
違いがある。すなわち、ALU103は、0011でな
く1111のマスク値を有するように構成されている。
従って、このALUは、表13に示す命令セットを有し
ている。このコードを実行するのに必要な入力シーケン
スを、以下の表14に示す。
outは内部変数Qに設定される。この内部変数Qは、テ
スト中の入力の最初の2ビットが比較値と等しい場合は
値0を有し、等しくない場合は値1を有する。Coutの
これらの値は、次の演算で反転する。その結果、テスト
中の入力の最初の2ビットと一致する比較値に対する適
切なカウンタがインクリメントされる。
作 本発明による命令マスク回路の異なる表現を図10に示
す。このゲートの組合わせは、図4に示すものと論理的
には同様である。この場合、外部命令ストリームからの
ビットは入力301で受信され、構成RAM303の単
一ビットが外部命令入力を許可するために使用される。
命令マスク値は、4ビット制御レジスタ313によって
与えられ、マスク回路自体はORゲート311及びAN
Dゲート312から構成される。ORゲート311の出
力は、ALUのI入力に対する関連した命令ビット(こ
の明細書を通して一貫してJiとして示す)であり、A
NDゲート312の出力は、以前と同様にALUの他の
部分に供給するために利用可能なKiビットとして供給
される。入力イネーブルビット303がローである場
合、出力Kiはすべてローであり、ビットスライスのた
めの命令ビットJiは4ビット制御レジスタ313に従
う。入力イネーブルビット303がハイであり、制御レ
ジスタ313のビットがローである場合、外部入力Ii
は命令ビットJiに対して関連する出力に経路が定めら
れ、関連したKiはローに設定される。入力イネーブル
ビット303がハイであり制御レジスタ313のビット
がハイである場合、外部入力Iiは関連したKiに経路が
定められ、命令ビットJiに対して関連した出力はハイ
に設定される。
期して制御することができる。実際の場合は、ALUの
加算と減算のスワッピングである。これが実行される
と、桁上げ連鎖の最下位ビットに与えられる定数を、減
算では1、加算では0に設定する必要がしばしばある。
マスク回路を提供することにより、図11に示すよう
に、周辺回路を制御するために入力を追加する必要がな
く、これを実現することができる。
命令セットと異なる命令セットについて考える。命令セ
ットの完全な詳細はこの例では重要ではない。ADDに
必要なJビットが0011であり、SUBに必要なJビ
ットが1111であるということを示すことで十分であ
る。制御レジスタ313が保持する命令マスク値が00
11に設定された場合、このことは、外部命令ストリー
ムビット(Iiと称する)のうち、I3及びI2はJ3及び
J2にそれぞれ結合するが、I1及びI0はK1及びK0に
結合するという効果を有する。J1及びJ0は、両方とも
1の値に固定される。これによって、最下位ビットを操
作するように適合されたADD_LSB及びSUB_L
SBコードを含むADD及びSUBの命令コードの伸長
したセットが得られる。この機能コードのセットを実現
するための外部命令Iについて結果として得られるコー
ドは、以下の通りである。
について同じ(0011)であるが、ADDではCinは
ビットスライスのためのCinとなるように単純に伝搬さ
れる一方、ADD_LSBではビットスライスのための
Cinの値は常に0である。SUB命令の場合も同様であ
り、SUB_LSBについて、ビットスライスのための
Cinの値は常に1である。
て制御されるため、同時に使用することができるALU
命令の組合せは、制限される。しかしながら、制限され
た数の場合のみをカバーすればよいため、これによって
実際的な困難は生じない。例えば、上述した場合では、
ADD命令とSUB命令の間に2つの共通したビットが
必要である。この場合は、ビットJ1とJ0は両方とも1
の値を有している。
の組み合わせからなる例示的な実施態様を示す。
するための回路であって、第1の命令値のセットを供給
するために外部命令ストリームを受信する入力部と、第
2の命令値のセットを含むように構成されたメモリと、
前記処理デバイスに出力命令ストリームを供給するため
の複数の出力部と、制御入力部と、前記制御入力部によ
り、前記複数の出力部間に前記第1の命令値のセットと
前記第2の命令値のセットと分配するように構成された
選択手段とからなる回路。
て前記外部命令ストリームより多くのビットを含むこと
からなる上項1の回路。
セットと前記第2の命令値のセットとの間でビット毎に
値を選択するものであって、ここで、値の各選択につい
て、前記第1の命令値のセット及び前記第2の命令値の
セットのいずれかからの1ビットは、前記複数の出力部
の1つに送られ、他方の前記第1の命令値のセット及び
前記第2の命令値のセットからの対応する1ビットは、
前記複数の出力部の他方に送られることからなる上項1
又は2の回路。
リームと同数のビットを有する値を供給し、前記ビット
毎の値の選択を、前記外部命令ストリームの等しく重要
なビットに対応する前記制御入力値のビットに関連して
行うことからなる上項3の回路。
デバイスに命令入力を供給し、一方、前記複数の出力部
の他方は、前記処理デバイスの周辺回路に入力を供給す
ることからなる上項3又は4の回路。
の1つ又は複数のデータ入力を許可又は禁止するための
回路を備えることからなる上項5の回路。
の1つ又は複数のデータ入力に対して、演算定数を供給
するための回路を備えることからなる上項5又は6の回
路。
いて同じデータ経路幅を有し、レジスタの使用が命令機
能から独立して指定される処理デバイス、と共に使用さ
れるように構成されていることからなる上項1乃至7の
いずれの回路。
セットの供給を禁止する手段が供給され、それによって
前記処理デバイスが前記第2の命令値のセットに従って
制御されることからなる上項1乃至8のいずれかの回
路。
のセットの供給を禁止する手段が供給され、それによっ
て前記処理デバイスが前記第1の命令値のセットに従っ
て制御されることからなる上項1乃至9のいずれかの回
路。
路における複数の処理ユニットの1つであることからな
る上項1乃至10のいずれかの回路。
処理デバイスのうちの1つ又は複数のための、上項1乃
至11のいずれかの回路とからなる集積回路。
能な配線ネットワークにより互いに接続されていること
からなる上項12の集積回路。
ログラマブルアレイ内の処理要素であることからなる上
項12又は13の集積回路。
であることからなる上項14の集積回路。
トALUであり、命令及びデータに4ビット幅が必要で
あることからなる上項15の集積回路。
に、本発明の実施形態による命令マスク方式を使用し
て、意図した目的に関する命令セットを十分豊富に持つ
ことと、復号化を容易に行うことの両方を維持しつつ、
命令語内の少数のビットの利点を組み合わせることがで
きる。これらの利点は、命令マスクを使用して有効な命
令セットを調整し、命令語長を効果的に伸長することに
より、あるいはビットを周辺回路に転用することによっ
て、意図した1つ又は一群の目的に特に適合するように
することができる。これらのオプションのそれぞれによ
って、残りの命令セットに制約を与えることとなるが、
この制約は基本的な命令セットを好適に選択することに
よって比較的容易に遵守することができるということが
一般的に理解される。
タの流れを示す図である。
ステムの命令及びデータの流れを示す図である。
である。
3に示す選択回路を示す図である。
3の選択回路を示す図である。
図2の命令の流れを示す図である。
図2の命令の流れを示す図である。
ールドプログラマブル演算アレイの基本的な処理デバイ
スを示す図である。
ールドプログラマブル演算アレイにおける本発明の一実
施形態の適用例を示す図である。
ィールドプログラマブル演算アレイに使用するよう構成
された本発明の別の実施形態による命令マスク回路を示
す図である。
れるビットの転用を利用した桁上げ入出力経路を示す図
である。
Claims (1)
- 【請求項1】処理デバイスに命令ストリームを供給する
ための回路であって、 第1の命令値のセットを供給するために外部命令ストリ
ームを受信する入力部と、 第2の命令値のセットを含むように構成されたメモリ
と、 前記処理デバイスに出力命令ストリームを供給するため
の複数の出力部と、 制御入力部と、 前記制御入力部により前記複数の出力部間に、前記第1
の命令値のセットと前記第2の命令値のセットを分配す
るように構成された選択手段とからなる回路。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97310220 | 1997-12-17 | ||
GB97310220.5 | 1998-06-02 | ||
GB98304528.7 | 1998-06-09 | ||
EP98304528 | 1998-06-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11249894A true JPH11249894A (ja) | 1999-09-17 |
JP3762841B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016527650A (ja) * | 2013-08-06 | 2016-09-08 | インテル・コーポレーション | ベクトルポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
JP2016529617A (ja) * | 2013-08-06 | 2016-09-23 | インテル・コーポレーション | ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002029600A2 (de) * | 2000-10-06 | 2002-04-11 | Pact Informationstechnologie Gmbh | Zellenarordnung mit segmentierterwischenzellstruktur |
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 |
WO2002013000A2 (de) * | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
AU5805300A (en) | 1999-06-10 | 2001-01-02 | Pact Informationstechnologie Gmbh | Sequence partitioning in cell structures |
US8058899B2 (en) * | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7581076B2 (en) * | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
US20070299993A1 (en) * | 2001-03-05 | 2007-12-27 | Pact Xpp Technologies Ag | Method and Device for Treating and 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 |
US20090210653A1 (en) * | 2001-03-05 | 2009-08-20 | Pact Xpp Technologies Ag | Method and device for treating and processing data |
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 |
US7444531B2 (en) * | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
EP2224330B1 (de) * | 2001-06-20 | 2012-05-09 | Krass, Maren | Verfahren und gerät zum partitionieren von grossen rechnerprogrammen |
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 |
WO2003060747A2 (de) * | 2002-01-19 | 2003-07-24 | Pact Xpp Technologies Ag | Reconfigurierbarer prozessor |
US8127061B2 (en) * | 2002-02-18 | 2012-02-28 | Martin Vorbach | Bus systems and reconfiguration methods |
US8914590B2 (en) * | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US20060075211A1 (en) * | 2002-03-21 | 2006-04-06 | Martin Vorbach | Method and device for data processing |
US20110238948A1 (en) * | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7657861B2 (en) * | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
WO2004038599A1 (de) | 2002-09-06 | 2004-05-06 | Pact Xpp Technologies Ag | Rekonfigurierbare sequenzerstruktur |
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 |
EP1849095B1 (en) * | 2005-02-07 | 2013-01-02 | Richter, Thomas | Low latency massive parallel data processing device |
US20070038984A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Methods for generating code for an architecture encoding an extended register specification |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
Family Cites Families (33)
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 | 日本電気株式会社 | プログラマブル機能ブロック |
-
1998
- 1998-11-24 DE DE69841256T patent/DE69841256D1/de not_active Expired - Lifetime
- 1998-12-11 US US09/209,532 patent/US6523107B1/en not_active Expired - Fee Related
- 1998-12-16 JP JP35768698A patent/JP3762841B2/ja not_active Expired - Fee Related
-
2003
- 2003-01-06 US US10/337,596 patent/US6820188B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016527650A (ja) * | 2013-08-06 | 2016-09-08 | インテル・コーポレーション | ベクトルポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
JP2016529617A (ja) * | 2013-08-06 | 2016-09-23 | インテル・コーポレーション | ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
US10223120B2 (en) | 2013-08-06 | 2019-03-05 | Intel Corporation | Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment |
JP2019050039A (ja) * | 2013-08-06 | 2019-03-28 | インテル・コーポレーション | ゲノム配列決定および配列比較のためのポピュレーションカウント機能性を提供する方法、装置、命令、およびロジック |
US10678546B2 (en) | 2013-08-06 | 2020-06-09 | Intel Corporation | Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment |
Also Published As
Publication number | Publication date |
---|---|
US6820188B2 (en) | 2004-11-16 |
JP3762841B2 (ja) | 2006-04-05 |
DE69841256D1 (de) | 2009-12-10 |
US20030188138A1 (en) | 2003-10-02 |
US6523107B1 (en) | 2003-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3762841B2 (ja) | 処理デバイスに命令ストリームを供給する方法及び装置 | |
US6816961B2 (en) | Processing architecture having field swapping capability | |
US9672033B2 (en) | Methods and apparatus for transforming, loading, and executing super-set instructions | |
US5922066A (en) | Multifunction data aligner in wide data width processor | |
US7028170B2 (en) | Processing architecture having a compare capability | |
US5991531A (en) | Scalable width vector processor architecture for efficient emulation | |
US7558942B1 (en) | Memory mapped register file and method for accessing the same | |
CN106055308B (zh) | 用于低能加速器处理器架构的设备 | |
KR100462951B1 (ko) | Risc 구조를 갖는 8 비트 마이크로콘트롤러 | |
US20020198606A1 (en) | Data processing system and control method | |
KR100465388B1 (ko) | Risc 구조의 8비트 마이크로 제어기 | |
CN108139911B (zh) | 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格 | |
EP0982655A2 (en) | Data processing unit and method for executing instructions of variable lengths | |
US20020032710A1 (en) | Processing architecture having a matrix-transpose capability | |
US20200249955A1 (en) | Pair merge execution units for microinstructions | |
EP1680735A2 (en) | Apparatus and method that accomodate multiple instruction sets and multiple decode modes | |
US6542989B2 (en) | Single instruction having op code and stack control field | |
US6408320B1 (en) | Instruction set architecture with versatile adder carry control | |
US7340591B1 (en) | Providing parallel operand functions using register file and extra path storage | |
JP2538053B2 (ja) | 制御装置 | |
US7024540B2 (en) | Methods and apparatus for establishing port priority functions in a VLIW processor | |
US20040024992A1 (en) | Decoding method for a multi-length-mode instruction set | |
JP3451921B2 (ja) | プロセッサ | |
US20210096871A1 (en) | Merge execution unit for microinstructions | |
US6564312B1 (en) | Data processor comprising an arithmetic logic unit |
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 |