JPH10105402A - パイプライン方式のプロセッサ - Google Patents

パイプライン方式のプロセッサ

Info

Publication number
JPH10105402A
JPH10105402A JP9238917A JP23891797A JPH10105402A JP H10105402 A JPH10105402 A JP H10105402A JP 9238917 A JP9238917 A JP 9238917A JP 23891797 A JP23891797 A JP 23891797A JP H10105402 A JPH10105402 A JP H10105402A
Authority
JP
Japan
Prior art keywords
unit
programmable
instructions
register
arithmetic
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.)
Withdrawn
Application number
JP9238917A
Other languages
English (en)
Inventor
Christian Prof Dr Rer Siemers
ジーマース クリスチアン
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Publication of JPH10105402A publication Critical patent/JPH10105402A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

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

Abstract

(57)【要約】 【課題】 マイクロコンピュータの処理速度を高め得る
ように処理の際のより高い並列性を達成する。 【解決手段】 特にコンフィギュレーション可能な論理
ユニット、命令メモリ16、デコードユニット18およ
びインタフェース手段10、36を有するスーパースカ
ラー‐アーキテクチュアを有するパイプライン方式のプ
ロセッサにおいて、論理ユニットとして作用するプログ
ラマブル‐構造‐バッファ30と、整数/アドレス‐命
令‐バッファ32と、データ記憶するインタフェース手
段36と直接通信するための整数‐レジスタ‐ファイル
24と、整数‐レジスタ‐ファイル24の内容を“プロ
グラマブル‐構造を有する機能ユニット”34と論理演
算するために構成され、多重制御され、マルチプレクサ
により接続される多数のデータ接続を有するs‐パラダ
イム‐ユニット(s‐ユニット)30、34、32、2
4とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、特に請求項1の前
文によるスーパースカラー‐アーキテクチュアを有する
パイプライン方式のプロセッサに関する。
【0002】このようなマイクロアーキテクチュアはマ
イクロコンピュータにおける命令レベル上で最高度の並
列性を実現しなければならない。
【0003】
【従来の技術】マイクロコンピュータにおける中央計算
ユニットは主として、以下では独立のプロセッサとし
て、たとえばマイクロプロセッサシステムの構成部分で
はないかまたはこのような従属性が命令並列性の意味で
何等の役割を演じないマイクロプロセッサとして理解す
べきであるプロセッサから成っている。
【0004】これらのプロセッサは一般にフォン‐ノイ
マン‐モデルに従って構想されている。このモデルはハ
ーバード‐モデルにおけるコード‐およびデータメモリ
範囲の分離に対して止揚されるが(そこではこれらのメ
モリは分離され、また種々のアクセス経路により到達さ
れる)、フォン‐ノイマン‐モデルでもハーバード‐モ
デルでもそれらの多くの部分的修正および変形により命
令フローの厳密な処理および結果の逐次性が有効であ
る。コントロール‐フローによってではなくデータフロ
ーによって制御されて動作するデータフロー計算機はこ
のモデルの例外を形成する。
【0005】命令の流れの逐次処理の維持のもとに、最
初はプロセッサ設計の簡単化のための命令セットの減少
のみの内容をもったいわゆるRISCアーキテクチュア
の導入がプロセッサのシステムクロックあたり命令へ速
度を近づけることを可能にした。このことは固定配線さ
れたハードウェアによるプロセッサ内のマイクロプログ
ラムの置換により、また広範囲なパイプライン化措置に
より達成された。プロセッサ内部の見掛け上の並列性に
もかかわらずクロックあたり1つの命令を有する最大の
命令レートおよび処理および結果の逐次性が得られた。
【0006】さらに、従来技術では、ダイナミックにコ
ンフィギュレーション可能なゲートアレイを説明する米
国特許第 5361373号明細書と、刊行物「コンカレンシー
・プラクティス・アンド・エクスペリエンス(CONC
URRENCY:Practice and Expe
rience)」Vol.8(6)、429443(1
996年7月−8月)”中の論文「リコンフィギュレー
ション可能なアクセレレータを使用する高性能計算」と
が注目されている。後者には、その後にプログラムの特
別なループを迅速に処理するためプログラム開始時に完
全にロードされるリコンフィギュレーション可能な算術
演算‐論理ユニット(rALU)を含む純粋なコプロセ
ッサが記載されている。このことはコンパイラにおける
大きな費用を必要とする。その完全な記述可能性により
このような計算ユニットはより複雑な命令を受ける。従
って新しいコンパイリングを作ることが不可避である。
【0007】プロセッサ分野での近年のすべての最新の
開発は、平均的にクロックあたり1つよりも多い命令を
有する処理速度を達成している。RISCとしてもCI
SCアーキテクチュア(複合命令セット計算機)として
もとらえるべき“スーパースカラー”と呼ばれるこれら
のプロセッサは、それによって逐次的処理順序がもはや
許さない速度の尺度を与える。プロセッサの内部構成に
おけるさまざまな措置により、より多くの命令、従って
またそれらと結び付けられるアクションが互いに並列に
可能にされ、その際に結果ならびに逐次処理の意味での
中断可能性が保証される。
【0008】スーパースカラー‐プロセッサのこのよう
なマイクロアーキテクチュアの一例は、刊行物「プロシ
ーディングス・オブ・ディ・アイ・イー・イー・イー
(Proceedings of the IEE
E)」第83巻、第12号、第1609頁のジェイムズ
・イー・スミス(James E. Smith)の論
文「スーパースカラー‐プロセッサのマイクロアーキテ
クチュア」に記載されている。この刊行物にはスーパー
スカラー‐プロセッサの動作に関する展望が記載されて
いる。
【0009】それにすぐ続く同じ雑誌の同じ号の第16
25頁のウェン‐マイ・ダブリュ・ヒュー(Wen‐M
ai W.Hwu)ほかの論文「未来のマイクロプロセ
ッサのためのコンパイラー‐テクノロジー」には付属の
コンパイラー‐テクノロジーが記載されている。
【0010】しかし、すべての新開発に共通することと
して、結果の逐次性の遵守と同じ意味である結果の保護
が、処理並列性により命令レベルで生ずる実際的かつ仮
想的な擾乱、いわゆるハザードの認識および解消を内容
として持つ。唯一の実際的なハザードはその際“リード
・アフター・ライト(Read‐After‐Writ
e=(RAW)”に存在する。なぜならば、計算のため
の出発ベースとしての1つの値が先行の書込みの後に初
めて読出されるからである。このようなシーケンスは互
いに並列に処理され得ず、他方において仮想的なハザー
ドである“ライト・アフター・リード(Write‐A
fter‐Read)”および“ライト・アフター・ラ
イト(Write‐After‐Write)”はいわ
ゆる“レジスタ‐リネーミング(Register‐R
enaming)”により止揚可能である。
【0011】スーパースカラー‐プロセッサは、特別に
構想されたアセンブラプログラムとこのように最適化さ
れたプログラムを供給する相応のコンパイラー‐テクノ
ロジーとを用いて、それらの理論的性能を最良可能に利
用しつくして作動させることができる。
【0012】
【発明が解決しようとする課題】本発明の課題は、マイ
クロコンピュータの処理速度を高め得るように処理の際
のより高い並列性を達成することにある。
【0013】
【課題を解決するための手段】上記の課題は、請求項1
の特徴を有するマイクロプロセッサにより解決される。
有利な実施態様は従属項に記載されている。
【0014】特に以下では、スーパースカラー‐アーキ
テクチュアへの努力が継続され、また構造的プログラミ
ングとも呼ばれるプログラマブル構造の導入により、現
存のテクノロジーの利用の際に顕著に高い処理速度が達
成されるように改善されているマイクロプロセッサを説
明する。そのために先ずアーキテクチュアについて説明
し、続いてその結果としてのアセンブラおよびコンパイ
ラ措置を説明し、また命令の徹底的な並列性による速度
利得をいくつかの例について計算する。
【0015】第2の利点は、“リード・アフター・ライ
ト(Read‐After‐Write)”‐ハザード
が適当な仕方で解消し得ることにある。“リード・アフ
ター・ライト(Read‐After‐Write)”
は、その後の計算の流れを維持するため、計算後に結果
にアクセスしなければならないことを意味する。しかし
以下に説明するs‐パラダイム‐ユニットの場合には、
この結果は、それが記憶される前に存在しており、また
それは構造の内部で既に正しい値により継続利用され得
る。このことは、これまでの変形例で記憶のために一巡
しなければならなかった実行クロックの利得と同じ意味
である。
【0016】新規な構造的措置は、マイクロプロセッサ
を作動するs‐パラダイム‐計算機またはs‐パラダイ
ム‐モデルに対しても関係する。
【0017】
【実施例】以下にsパラダイム‐モデルを説明する。s
パラダイム‐モデルは基本的に任意のプロセッサの内部
の実行ユニットに応用され得る。なぜならば、このモデ
ルは専らこのユニット内でフォン‐ノイマン‐モデルと
区別され、またまさにフォン‐ノイマン‐モデルの典型
的な特徴である命令取り出しのコントロールフローに基
づく進行がそれに手をつけられずにとどまるからであ
る。しかし、モデルの性能を明らかにするため、以下で
は一般性の制限なしにsパラダイム‐モデルが従来通常
の構成形式のスーパースカラー‐プロセッサと関連し
て、またそれと比較して示される。
【0018】図1は浮動小数点ユニットを意識的に省略
したスーパースカラー‐プロセッサの構成を示す。計算
機の整数部分に対する実行ユニットの以下に示される特
性は浮動小数点ユニット1:1に伝えられる。
【0019】プロセッサの内部で整数‐レジスタ‐ファ
イル、機能的ユニットおよび“リ・オーダー・アンド・
コミット(Re‐order‐and Commi
t)”‐ユニットを新しいユニット、s‐ユニットによ
り置換する。このユニットは以下に一層詳細に説明す
る。追加的にいくつかの他のユニットでは、以下に同じ
く説明する変更が必要である。しかし先ず図1中の機能
について短い説明を行う。
【0020】メモリインタフェース10は外部のコード
‐およびデータメモリ範囲(主メモリL‐2‐キャッシ
ュ、図示せず)への接続を形成する。命令の側にこれら
は命令キャッシュ14にプリデコーディングにより格納
される。プリデコーディングは、追加的な情報を後続段
に対するより速い処理のために発生すべき場合に有利で
あり、さもなければ省略できる。命令は次いで命令キャ
ッシュ14にプリデコーディングにより格納される。プ
リデコーディングは、追加的な情報を後続段に対するよ
り速い処理のために発生すべき場合に有利であり、さも
なければ省略できる。命令は次いで命令キャッシュ14
にプリデコーディングにより格納される。命令は次いで
直接的なメモリとしての命令キャッシュ14に処理前
に、および/または命令バッファ16に記憶され、それ
によって後者の場合にはそれらは既に処理中である。す
なわち図1は従来技術に相応する。
【0021】それに続く“デコード・リネーム・アンド
・ディスパッチ(Decode,Rename & D
ispatch)”‐ユニット18はスーパースカラー
‐アーキテクチュアの内部で命令を機能ユニット22の
複数の実行部分ユニットに分配し、また整数レジスタフ
ァイル24から成るレジスタを割当てる。この割当は、
仮想的なハザードを避けるため、レジスタ・リネーミン
グ(Registr‐Renaming)に基づいて行
われなければならない。機能ユニット22は、必要なオ
ペランドをロードし得るように、場合によってはデータ
‐キャッシュと密接に共同動作する。多数の命令を並列
に実行した後に、レジスタ中に存在している結果が新た
に配列され、または特に有効なものとして特徴付けられ
なければならない(“リ・オーダー・アンド・コミット
(Re‐order‐and Commit)”‐ユニ
ット)。
【0022】最後に、モデルに関して、条件付きおよび
非条件付き分岐の処理がここに示されている部分の外側
で進行することにも言及されるべきであろう。そのため
にたとえば“ブランチ・プリディンクション(Bran
ch‐Prediction=分岐予報)”の処置を試
験的に実行するが、満たされないときには遅れを生ずる
ことになる。
【0023】図1中に一点鎖線で示した従来技術で使用
されているブロックは、図2中に示すように、本発明に
より相応に異なって構成される。
【0024】図2に示すように、プログラマブル‐構造
‐バッファ30と、整数/アドレス‐命令‐バッファ3
2と、プログラマブル‐構造を有する機能ユニット34
を有する装置とが整数‐レジスタ‐ファイル24となら
んで設けられている。
【0025】s‐パラダイム‐モデルはその際以下の4
つの分類の機械命令を識別する。コントロールフロー制
御のための分岐および飛越し命令、レジスタとメモリ範
囲との間のデータ転送のためのロード/ストア命令、計
算のための算術演算および論理命令、および最も広い意
味でコントロールフロー制御の役割もする“無動作(N
o Operation)”、“待ち(Wait) ”、
“停止(Stop)”などのようなその他の命令。
【0026】コントロールフロー制御のための命令分類
が従来のままにとどめられ、従ってまたスーパースカラ
ー計算機における標準に相応して実行されるのに対し、
“ロード/ストア(Load‐/Store)”命令お
よび算術演算/論理命令は新しい位置を占める。
【0027】ロード/ストア命令は1つまたはそれ以上
のロード・ストアパイプラインを用いて整数‐レジスタ
‐ファイル24とデータメモリ(キャッシュ36、主メ
モリ)との間のデータ転送に使用され、また次いで従来
のように処理され、もしくはそれらは算術演算/論理命
令に付加され、またs‐パラダイム‐モデルのいま説明
している中核部分に組み込まれる。これに関する決定は
CPUのシステム設計者の責任である。それに対して、
プロセッサのレジスタの間のデータ転送を行わせる“ム
ーブ(Move)”命令は基本的にこのモデルに属す
る。
【0028】算術演算/論理命令(およびこれに導かれ
たロード/ストア‐命令)はそのプログラムシーケンス
に従って連続するハードウェア演算結合の構造に変換さ
れる。この目的で本発明によるマイクロコンピュータの
機能ユニットはプログラマブル構造および固定配線され
た算術/論理演算(ならびに場合によってはロード/ス
トア・パイプラインのようなアクセス機能)を提供し、
これらは構造により互いに結合され、ストラクチュアリ
ングの順序で処理される。
【0029】相応のする機能性を図3中に説明する。図
3では機能ユニット22の部分ユニットおよびレジスタ
‐ファイル24(図3中で灰色に示されている)は多数
のデータ接続およびマルチプレクサ40に接続されてい
る。その際にデータ接続はそのつどの内部バス幅(たと
えば32ビット)を有するバスとして構成されており、
ビット線(点を打たれて示されている)として実行され
ている条件コードが1つの例外をなしている。機能ユニ
ットに以下の5つの形式の部分ユニットが存在してい
る。従来からの算術論理ユニット(ALU)と混同して
はならないような算術演算ユニット(AU、形式A)5
0、51。AU50、51は1つまたは少数のコンフィ
ギュレーション可能な演算、たとえば2つの整数を加算
する可能性を含んでいる。それは、入力端が相応に接続
されるとき、1つの結果をその出力端に与え、またこの
結果は回路網内でひき続いて使用される。AU50、5
1は2つの入力バスおよび1つの出力バスにより、場合
によってはコンフィギュレーション可能性(論理演算の
選択、極端な場合にはALUに相応)により、また条件
付きビットにより特徴付けられている。いくつかの場合
には、たとえば乗算の際には、出力バスの幅は、計算を
可能にするため、異ならせることができる。同じくマル
チプレクサの後に接続されている“コンペア(Comp
are)”ユニット(CoU、形式B)。論理演算の条
件付きの実行のためにここで条件コード‐ビットがコン
フィギュレーション可能な比較によりCoU52に発生
される。比較は3つのコンフィギュレーション‐ビット
の使用の際に>、>=、<、<=、!=、==、TRU
EまたはFALSEにセットされる。CoUの特徴は2
つの入力バスおよび1つの出力ビットならびにコンフィ
ギュレーション可能性である。マルチプレクサ(Mul
C、形式C)はAUおよびCoUの入力端を完全な処理
幅のそれぞれ2つの入力値により占有する。そのために
それらは複数個の入力端および2つの出力端から生ずる
複数個のコンフィギュレーションビットを必要とする。
MulCユニットの特徴は2つの出力バスである。さら
に、レジスタファイル24の前に設けられているマルチ
プレクサ(MulD、形式D)をあげなければならな
い。結果値によるレジスタの占有のために単に1つの出
力バス、従ってまたコンフィギュレーションビットの半
部のみが必要とされる。従って、MulDはMulCと
はその出力導線の数により相違している。最後に、比較
(CoU)の結果を相応のAUに伝達するデマルチプレ
クサ(Demul、形式E)もあげなければならない。
ソース選択を行うマルチプレクサ58とは異なり、ここ
では宛先選択が行われる。
【0030】部分ユニットの間の接続は全体のなかで利
用できるコンフィギュレーションビットの数に関係して
完全にまたは部分的に行うことができる。すぐ次の段落
のなかの例アーキテクチュアでは完全な接続可能性が示
され、また必要なビットの数がそれから計算される。
【0031】構造化可能な機能ユニットの意味は、本発
明によれば、構造をプログラムの1つの(基本またはス
ーパー)ブロック内の機械命令に相応して適応させるこ
とにある。このようなブロックは、それらが分岐なしで
(基本ブロック)または稀に利用される分岐のみで(ス
ーパーブロック)十分であること、すなわちコントロー
ルフローで決定論的に、または少なくとも高い確率をも
って決定可能であることにより特徴付けられている。こ
のブロックの問題点およびそれらのアセンブラ‐および
コンパイラ‐テクノロジーへの影響は後で説明する段落
“…結論”で一層詳細に説明する。
【0032】プログラミングはs‐パラダイムモデルに
おいで部分ユニットに対するコンフィギュレーションビ
ットのロードにより行われる。これらはプログラマブル
‐構造‐バッファに一時記憶され、またブロックの処理
の際に、それにより相応に構造化されており、またブロ
ックを処理し得るs‐ユニットにロードされる。処理は
その際にレジスタ内容間の、また場合によっては(相応
のロード/ストア‐パイプラインが利用できる場合に
は)メモリ内容との算術および論理演算のみに関し、他
方においてすべての他の命令、特にロード/ストアおよ
びコントロールフロー命令は通常のように進行する。
【0033】コンフィギュレーションビットの発生はア
センブラで行われ得るが(コンパイル時間に基づく発
生)、それをCPUでたとえば機能的に拡張されたプロ
グラマブル‐構造‐バッファにより実行時に発生させる
こと(実行時間に基づく発生)も原理的に可能である。
【0034】本発明によるマイクロコンピュータの実行
ユニットの実現形態を説明する。固定配線されたAU5
0、51ならびにCoU52およびこれらの部分ユニッ
トの間のコンフィギュレーション可能な経路を有するs
‐ユニットSの構造は先ず、マルチプレクサがこのコン
フィギュレーションのプログラミング可能な要素を示す
ことを決定する。特にAU50、51の固定配線は、ロ
ードすべきビットの数を可能なかぎりわずかに保つため
に選ばれた。フレキシブル化の別の段階では、AU5
0、51もプログラミング可能であってよい。すなわち
ナンドゲートまたは乗法標準形(DNF)を構成するよ
うに実現されていてよい。それによってほぼ任意の機能
性が既にAU50、51に組み込み可能であろう。
【0035】算術演算ユニット50、51はたとえば下
記の機能性を内容としている。加算、減算、乗算、除算
のような算術演算、AND、OR、XOR、(2の)補
数のような論理演算、右/左への算術的または論理的シ
フトのようなシフト機能、入力ビットに関係しての条件
付きデータ転送(ラン時間に対するMulCおよびMu
lDと相違して、2経路‐マルチプレクサ)。
【0036】構造、すなわち両マルチプレクサ形式のプ
ログラミングに対する基礎はRAMセルにある。これに
よって、EEPROMのような他のテクノロジーがより
長い時間を必要とし、またもっと以前にプログラミング
可能なAUの使用に対して考えられ得たのに対して、非
常に速いコンフィギュレーションが保証されている。n
ビットを用いてその場合には2n の経路が切換えられる
ので、MulDに対して32の入力端において2×5ビ
ット、MulDに対して5ビットがコンフィギュレーシ
ョンのために必要であった。このマルチプレクサの原理
的構成が図4に示されている。
【0037】可能な具体的なモデルアーキテクチュアで
は下記の部分ユニットおよびレジスタが具現化されてい
る。“コンディション(Condition)”コード
‐ビットにより加算が徐行され(TRUE)、または最
初のワードが変更されずに通過させられる(FALS
E)4つの加算器、2ビットによりコンフィギュレーシ
ョン可能な、AND、OR、XORおよび2の補数の形
成を有する論理ユニット(AU)、乗算器(AU)、除
算器(AU)、2つのビットを用いて左方/右方にかつ
算術的/論理的にコンフィギュレーションされるシフト
機能ユニット(AU)、制御入力のビットにより両入力
バスの1つを出力端に接続させる2つのダイナミックな
経路マルチプレクサ(AU)。これらのマルチプレクサ
はマルチプレクサ形式CまたはDと混同してはならない
であろう。なぜならば、ここに提案される部分ユニット
は選択をダイナミックに切換えるからである。3つのビ
ットを介して8つの比較形式(CoU)52にコンフィ
ギュレーション可能な各ビット出力端を有する6つの比
較ユニット、レジスタ・リネーミングあたりたとえば2
4の物理的レジスタの“プール(Pool)”内で識別
される12の論理的レジスタR0ないしR11、命令コ
ードでコード化される定数が1つのブロックの処理の間
に記憶される4つの定数レジスタ。
【0038】これは全体で32の接続すべき部分をs‐
ユニットSに生ずる。完全な接続可能性が要求されるな
らば、主として5または2×5ビットを有するマルチプ
レクサをコンフィギュレーションしなければならない。
すべてのユニットを接続するためには形式Cの10のマ
ルチプレクサ、形式Dの12のマルチプレクサおよび形
式Eの6つのデマルチプレクサが必要とされる。比較演
算によるコンディショニングがAUにしか関係しないこ
とが仮定されるので、デマルチプレクサはコンフィギュ
レーションのために3ビットしか必要としない。それに
よって200ビットの(マルチプレクサおよびコンフィ
ギュレーション可能なAUに対する)コンフィギュレー
ションビットの全数が生ずる。
【0039】モデルはさらにフラグの処理にも拡張でき
る。このことは評価特性を有する別個のAUにより可能
である。算術演算の際のオーバフローを回避または検出
するためには、十分な大きさを有するデータバスおよび
相応の評価ユニットが必要であるが、これらは、図面を
見易くするために省略されている。
【0040】次に機械命令に対するs‐パラダイム‐モ
デルの結論およびアセンブラプログラミングおよびコン
パイラ構成について説明する。本発明によるマイクロコ
ンピュータは、ALUの並列設置に基づくスーパースカ
ラー‐アーキテクチュアと非常に類似して動作する。こ
のアーキテクチュアの最適な利用のためにはアセンブラ
コード化の枠内の可能なかぎり大きいブロック形成が重
要である。
【0041】ここで基本ブロックとは、たとえば条件付
き分岐命令による分岐を内容としていない一連の命令を
いう。このような基本ブロックは従来通常のコンパイラ
テクノロジーでは比較的短いので、内部の並列性の利用
はわずかにとどまる。
【0042】現在、前記のスミス(Smith)の刊行
物に示されているように、改善された利用を約束する多
くのコンパイラストラテジーが開発されている。1つの
方法は、ループの通常例において一巡するまたこの動作
との関連で同じく適当なブロックとみなされるスーパー
ブロックの発生にある。本質的に重要なことは、決定ビ
ットに基づいて実行または飛越しをされる条件付き命令
の導入である。この決定ビットは比較により生じ、また
次いでコントロールフローを決定して、すなわち周縁条
件のもとでも分岐を補って有効である。
【0043】このような条件付き命令実行である“プリ
ディケイテッド・エクセキューション(predica
ted execution)”の一例は図5中に示さ
れているC中のシーケンスおよびアセンブラ(命令の意
味は付録Aを参照)により与えられる。
【0044】この例は、従来の仕方でレジスタの比較的
最適な利用の際に条件付き値割当を翻訳する擬似CPU
に対して示される。しかしその際に生ずる飛越し命令b
le(branch if less or equa
l)は場合によってはコントロールフロー中の1つの分
岐を意味し、このことは条件付き命令実行の実現および
利用の際に不可欠ではない。ここで、r0>0が成り立
つ場合には、1つのビットがレジスタp1にセットさ
れ、さもなければ消去され、また条件付きのmovp命
令はp1に関連し、また互いに排除するので、このこと
は良好に、1つの経路しか能動的であってはならない並
列ランするハードウェアに変換される。
【0045】短い例はその際に決して条件付き命令によ
る加速に対する証拠とみなされないが、上記のスミス
(Smith)のような広範囲な研究により、これらの
機械命令は特に望ましくスーパースカラー‐マイクロプ
ロセッサの実行ユニット内の流れに対して効果を現すこ
とが判明している。ハードウェア内の変換は、図6中に
アセンブラコードに対するデータフロー変換により示さ
れているように、比較器と結び付けてダイナミックなマ
ルチプレクサにより行われる。
【0046】変換は、“より大きい”に対して条件付け
されている比較器60と比較図を用いて両方の流入する
データストリームからの選択を行うダイナミックなマル
チプレクサ62とをこの実行ブロックに対応付けること
により行われる。ロード/ストア命令は直前の形態にと
どまり、また示されていない。追加的にレジスタC0は
(定数に対して)比較値、ここでは“0”をロードされ
なければならない。
【0047】本発明によるマイクロコンピュータの機械
命令文に対してその場合に追加的な下記の命令が仮定さ
れている。 PEQ<Dest>、<Source>、<目的ビット
>(同等) PNE<Dest>、<Source>、<目的ビット
>(不等) PGE<Dest>、<Source>、<目的ビット
>(より大きいまたは等しい) PGT<Dest>、<Source>、<目的ビット
>(より大きい) PLE<Dest>、<Source>、<目的ビット
>(より小さいまたは等しい) PLT<Dest>、<Source>、<目的ビット
>(より小さい)
【0048】条件ビットをセットするためのこの命令文
の拡張はもちろん考えられる。それとならんでこれらの
条件ビットは評価可能でなければならず、このことは条
件付きシフトおよび算術的/論理的命令の導入により行
われる。従って、以下では本発明によるマイクロコンピ
ュータのモデルアーキテクチュアに対して、すべてのシ
フト命令が1つの条件により割当て可能であること(m
ovp)、また算術的/論理的命令が、条件が満足され
ていない場合には第1の論理オペランドが通過させられ
るように、実行されることが仮定される。すなわちad
dp<目的>、<オペランド 1>、<オペランド
>、<予測ビット>演算の場合には、<予測 ビット>
が消去されている場合には<オペランド 1>が、さも
なければ<オペランド 1>および<オペランド 2>
の和が目的レジスタにロードされる。
【0049】本発明によるマイクロコンピュータにおけ
るスループットを高めるためのこれ以外の方法はスーパ
ースカラー‐マイクロプロセッサに対するそれに相当す
る。それにはアセンブラまたはC(標準言語に対する例
として)におけるプログラミングに関して、コントロー
ルフロー構造なしにより大きいブロックを作るための命
令の条件付き実行の利用、資源の最大までのループのア
ンローリング、依存性解析および(コンパイル‐タイム
‐)レジスタ・リネーミングによる依存性の除去が属す
る。
【0050】これがスーパースカラー‐アーキテクチュ
アに対して最適に導かれた後に、存在しているブロック
が新たに解析され、また構造的なプログラミングに変換
される。この変換はコンパイル時間に行われ、その際に
利点は目的システムにおけるシリコンの利用なしの強力
な解析にあるとみられる。構造的なプログラミングはそ
の際に、存在している依存性解析およびなかんずく除去
によりかなりサポートされるので、命令はデータフロー
に、従ってまた構造に変換可能である。この構造はその
場合に、非同期デザインの際にハードウェア構造化に対
して使用不可能であったサイクルまたは負帰還を有して
いない。
【0051】性能利得はスーパースカラー‐マイクロプ
ロセッサの“古典的な”アーキテクチュアにくらべての
2つの利点の利用から生ずる。これまでのアーキテクチ
ュアにおいて幾重にもされるALUはこれにより分割さ
れるので、個々の部分が互いに無関係に利用可能であ
る。プログラム可能な構造内部のラン時間が、結果が1
クロック内のデータフロー経路に無関係に存在している
ように小さくとどまるという仮定のもとに、このことは
平均的により良好な利用およびより小さい実行時間を生
ずる。
【0052】しかし、s‐ユニット内の実行時間の制御
または決定はハードウェア実行における中心点を占め
る。下記の方法がこのために供される。構造的にプログ
ラム可能なものが、s‐ユニット内のラン時間があらゆ
る場合に対して結果が1クロック後にレジスタに記憶可
能であるように設定されるように構成され、また最大許
容クロックと同調させられる。あらゆる場合に互いに非
同期に結び付けられている(同期化があらゆる場合にレ
ジスタにおいて初めて行われ、そのために依存性除去も
必要である)ハードウェアが一巡の際にレジスタへの受
け渡しを制御する“レディー(Ready)”信号を一
緒に供給する。この形態は場合によっては,より高いク
ロックレートを許容し、その際にたとえば通常の場合に
はクロックが、また例外的な場合には2つのクロックが
通過のために必要とされる。
【0053】ひき続いて以下に1つの例プログラムが解
析され、変換され、またスーパースカラー‐アーキテク
チュアに対して最適化されなければならない。この機械
プログラムの進行中の速度が次いで本発明によるマイク
ロコンピュータに比較して示される。この例は、結果を
相応に比較可能に形成し得るように、ジェイ・スミスの
上記の刊行物に由来している。
【0054】例プログラムコンパイラテクノロジーとハ
ードウェアの構造的プログラミングによる並列化の可能
性との共同作用は簡単なCループで説明することができ
る。その際にコード発生のために一方ではスーパースカ
ラー‐マイクロプロセッサが基礎とされ、他方では少な
くとも12のレジスタと、条件付き命令と、両方共すべ
ての能力を有するものとして構成されている2つの並列
ランするALUを有するS‐ユニットの上記のモデルが
利用される。この過程で下記のステップが通過される。 1.C‐ソースコードが、非スーパースカラー‐アーキ
テクチュアに対して最適化するコンパイラを用いて変換
される。 2.ブロックの大きさが条件付き命令による条件付き飛
越しの置換により高められる。 3.各2つのループがより大きいループにまとめられる
(ループ‐アンローリング)。 4.得られたループに対して(コンパイル‐タイム)レ
ジスタ・リネーミングが依存性解析を用いて実行され
る。
【0055】最適化のすべての段階に対して並列化の度
合または必要とされるクロックの数が示され、最高の段
階に対しては従来の構成形式のスーパースカラー‐アー
キテクチュアと本発明によるマイクロコンピュータとの
間を比較して示される。
【0056】図7にはC‐ソースコードが示されてい
る。プログラムはアレイa〔 〕に関係してのアレイb
〔 〕における割当ループにあり、その際にここでは特
に“リード・アフター・ライト(Read‐After
‐Write)”関係を解析することにする。
【0057】このコードにおいて注目すべきことは、そ
れぞれアクセスされるアドレスの順序である。なぜなら
ば、割当はループの一部分においてb〔i〕+b〔i+
1〕を表し、またこうして第1のアクセスの第2の要素
は第2のループの第1の要素に等しいからである。伝統
的なアーキテクチュアに対して定められている最適化コ
ンパイラによるC‐ソースコードの変換は図8に示され
ているアセンブラリスティングが生ずる。
【0058】コントロールフローグラフは、図9中に示
されているように、このコードが通過させられる経路を
示す。コンパイラ自体はアセンブラコードを、二三の基
本ブロックが生ずる(図8中で線により隔てられてい
る)ように最適化している。相い続く命令1および2は
たとえば、ここに“リード・アフター・ライト(Rea
d‐After‐Write)”ハザードが存在するこ
とを意味する。r1が先ず書かれ、また次いでその後に
初めて0との比較のために読まれる。この関係は、並列
な実行が可能でないという結果をもたらす。現在のサイ
クルに対する列は、原理的に並列な作用を実行し得るス
ーパースカラー‐アーキテクチュアに関連する。ループ
の計算は最大の場合で6サイクル継続する(主メモリへ
のデータ転送に対して2サイクルと仮定して)ので、t
hen部分に対して9の通過する命令の際に1.5命令
/サイクルが実行される。
【0059】else部分に対するブロックL4の1:
1コピー、命令の順序の変更およびメモリ命令の条件付
き実行による条件付き分岐の置換により基本ブロックの
拡大が達成され得る。図10のアセンブラリスティング
は4サイクルへのループの加速を示す(最後の分岐が正
しく予言されると仮定して)。
【0060】ループあたりのスループットはスーパース
カラー‐アーキテクチュアに対してこれらの措置により
2命令/クロックに増大する。いま、s‐パラダイム‐
ユニットSが任意の回路網をクロック内で処理し得ると
仮定すると、本発明によるマイクロコンピュータでの実
行はそれに対して条件付き値割当を含むすべての計算に
対して1クロックを必要とし、ループあたりの通過は3
クロックに短縮し、スループットは2.66命令/クロ
ックである。
【0061】図11はs‐ユニットSの構造を示す。外
部のメモリとの通信を司るロード/ストア命令は同じく
有効なアドレスに対する算術的計算を行わなければなら
ない。これらは、原理的にS‐ユニットから成る加算器
がアドレス加算のために利用可能ではあろうが、ここに
は示されていない。
【0062】ここに示されている最適化の最後の段階は
2つのループ通過を後続の関係解析および除去を有する
1つ(ループ‐アンローリング)にまとめることにより
性能の改良を行う。この最適化は、両部分ループの無関
係な並列処理が可能である場合に、スループットを高め
る。従って、この方法は関係性の除去のために“コンパ
イル‐タイム‐レジスタ‐リネーミング(Compil
e‐Time‐Register‐Renamin
g)”を使用する。
【0063】図12には最適化〔1〕後の結果が示され
ている。
【0064】2つのループの並列処理により処理時間は
(かっての)簡単なループあたり平均的に2クロックに
低下し、その際に並列化尺度はいまや3.75命令/ク
ロックである。このことはスーパースカラー‐アーキテ
クチュアに対して当てはまる。他方、本発明によるマイ
クロコンピュータでは前記の(本発明によるマイクロコ
ンピュータの実行ユニットの実現形態の表題のもとに説
明された)段落の具体的モデルにおいてさらに向上がも
たらされる。
【0065】アドレス計算を別として二重ループにおけ
る4つの加算ならびに2つの条件付き割当が必要とされ
る。これらの資源は特にループ実行のための加算容量を
有するモデルに存在している。それによって、同様に回
路網がこれを安定にクロックの間に通過させるという仮
定のもとに、加算および値割当のすべてのブロックが1
クロック内で実行され得る。簡単なループあたりの平均
的な処理時間はその場合に3クロックであり、このこと
は5命令/クロックのレートを生ずる。
【0066】全体としてそれによって初めて構造的プロ
グラミングがプロシジュア‐プログラムの中央処理要
素、すなわちCPUに導入されている。実行ユニットの
新構想への制限のもとに、制限されたソースを有する具
体的なモデルが設計された。その際にこのモデルはこれ
までのスーパースカラー‐アーキテクチュアに比較して
顕著に改善された性能を与えることが示された。処理時
間は上記の例では25〜33%だけ短縮された。
【0067】付録A:アセンブラコードに対しては同じ
ようにほとんどすべてのCPUに見い出される擬似コー
ドが利用された。命令はシンタックス(構文)の支配下
にある。 〈ニューモニック〉<目的>、<ソース> 2オペラン
ドに対して 〈ニューモニック〉<目的>、<ソース1>、<ソース
2> 3オペランドに対して(算術演算的) <ニューモニック><ソース1>、<ソース2>、〈飛
越し目的〉 3オペランドに対して(飛越し命令) <ニューモニック>はそれぞれ入れるべき命令に対する
短縮を示す。その際明細書中に下記の符号が使用され
た。 mov データ(内部のみ)の移動(より良い:コピ
ー)に対して mul <ソース1>および<ソース2>の乗算に対し
て、<目的>の結果 add 等価な方法での加算に対して ld ロードに対して、これによって外部のメモリ範
囲のメモリ個所の内容のコピーがCPUのレジスタに書
かれる。 st 外部メモリのCPUのレジスタ内容の記憶に対
して stp 条件付き記憶として;条件は値“真”または
“偽”のみを有し得るスイッチング変数であり、またそ
れは“真”でなければならない。 pne 両ソースが合致しない場合は、必要とされるス
イッチング変数(等しくないならばプレディケート)を
“真”にセットするため(同一のスイッチング変数がそ
の場合に反転された“偽”を生ずる。 bge 分岐命令として(より大きいまたは等しいなら
ば分岐)、その際<ソース1>が<ソース2>よりも大
きいまたはそれに等しいならば、飛越し目的への分岐が
実行される blt <ソース1>が<ソース2>よりも小さい場合
の相応の分岐(より小さいならば分岐) 内部コピー(mov)と外部ロード/記憶(ld、s
t)との間の区別は多くのアーキテクチュアでは行われ
ない(例Intel Pentium)。それはここで
は相違、従ってまたロード/ストア・パイプラインの利
用を明らかにするために導入された。
【図面の簡単な説明】
【図1】通常のスーパースカラー‐プロセッサの典型的
な編成を示すブロック図。
【図2】本発明によるマイクロアーキテクチュアを示す
ブロック図。
【図3】機能ユニットの原理的な構成を示すブロック
図。
【図4】マルチプレクサの構成を示すブロック図。
【図5】2つのコードの比較図。
【図6】アセンブラコードに対するデータフロー変換を
示す図。
【図7】C‐ソース‐コードを示す図。
【図8】第1の最適化におけるアセンブラコードを示す
図。
【図9】アセンブリングに対するコントロールフローダ
イアグラム。
【図10】第2の最適化におけるアセンブラコードを示
す図。
【図11】図10のアセンブラコードに対するデータフ
ロー変換を示す図。
【図12】第3の最適化におけるアセンブラコードを示
す図。
【符号の説明】
10 インタフェース手段 16 命令メモリ 18 復号ユニット 22 機能ユニット 24 整数‐レジスタ‐ファイル 30 プログラマブル‐構造‐バッファ 32 整数/アドレス‐命令‐バッファ 34 機能ユニット 36 インタフェース手段 40 マルチプレクサ 46 デマルチプレクサ 50 算術演算ユニット 52 比較ユニット 58 マルチプレクサ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 特にコンフィギュレーション可能な論理
    ユニット、命令メモリ(16)、デコードユニット(1
    8)およびインタフェース手段(10、36)を有する
    スーパースカラー‐アーキテクチュアを有するパイプラ
    イン方式のプロセッサにおいて、 論理ユニットとして作用するプログラマブル‐構造‐バ
    ッファ(30)と、 整数/アドレス‐命令‐バッファ(32)と、 データ記憶するインタフェース手段(36)と直接通信
    するための整数‐レジスタ‐ファイル(24)と、 整数‐レジスタ‐ファイル(24)の内容を“プログラ
    マブル‐構造を有する機能ユニット”(34)と論理演
    算するために構成されており、多重制御され、マルチプ
    レクサにより接続される多数のデータ接続を有するs‐
    パラダイム‐ユニット(s‐ユニット)(30、34、
    32、24)とを含んでおり、 その際にs‐ユニット(30、34、32、24)がプ
    ログラム可能なハードウェア構造によるプログラムの進
    行時間中にダイナミックな新規コンフィギュレーション
    /プログラミングを行うために設けられており、またそ
    の際に機能ユニット(34)に、 2つの入力バス上の2つのオペランドを、1つの出力バ
    ス上に結果を得るように、算術および/または論理演算
    を行うための複数個の算術演算ユニット(50)と、 2つの入力バスおよび1つの出力バスを有する複数個の
    比較ユニット(52)と、 算術演算ユニット(50)および比較ユニット(52)
    とレジスタ‐ファイル(24)との間に設けられている
    複数個の入力バスおよび1つまたは2つの出力バスを有
    する複数個のマルチプレクサ(40、58)と、 sユニット内の相応の算術演算ユニット(50)におけ
    る宛先選択に比較の結果(CoU)を供給するための、
    1つの入力ビットおよび複数個の出力ビットを有する複
    数個のデマルチプレクサ(46)とが設けられているこ
    とを特徴とするパイプライン方式のプロセッサ。
  2. 【請求項2】 整数‐レジスタ‐ファイル(24)とし
    て、またはそれに追加して、相応の論理演算を有する浮
    動小数点レジスタ‐ファイルを含んでいることを特徴と
    する請求項1記載のプロセッサ。
  3. 【請求項3】 算術演算ユニットおよび比較ユニットが
    プログラム実行中にダイナミックに命令のそれぞれのブ
    ロックに対してその機能性をコンフィギュレーション可
    能かつプログラミング可能であることを特徴とする請求
    項1または2記載のプロセッサ。
  4. 【請求項4】 請求項1ないし3の1つによるパイプラ
    イン方式のプロセッサにより高速度計算をするための方
    法において、 sユニット内で可能なかぎり大きいブロック形成の後に
    アセンブラコーディングおよび“決定”ビットをもとに
    して実行または飛越される条件付き命令の導入の範囲内
    で、 部分ユニットに対するコンフィギュレーションビットが
    “プログラマブル‐構造‐バッファ”に一時記憶され、
    またブロックの処理の際にsユニットにロードされ、 その際に決定ビットが、ダイナミックなマルチプレクサ
    (算術演算ユニットの下位形式)において比較器と結び
    付いて最適なデータフロー変換が発生されるように、比
    較により制御の流れを決定して決められることを特徴と
    するパイプライン方式のプロセッサによる高速度計算方
    法。
JP9238917A 1996-08-23 1997-08-20 パイプライン方式のプロセッサ Withdrawn JPH10105402A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19634031A DE19634031A1 (de) 1996-08-23 1996-08-23 Prozessor mit Pipelining-Aufbau
DE19634031.4 1996-08-23

Publications (1)

Publication Number Publication Date
JPH10105402A true JPH10105402A (ja) 1998-04-24

Family

ID=7803454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9238917A Withdrawn JPH10105402A (ja) 1996-08-23 1997-08-20 パイプライン方式のプロセッサ

Country Status (5)

Country Link
US (1) US6061367A (ja)
EP (1) EP0825540B1 (ja)
JP (1) JPH10105402A (ja)
KR (1) KR100316078B1 (ja)
DE (2) DE19634031A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100713740B1 (ko) * 1999-02-02 2007-05-02 선 마이크로시스템즈 인코포레이티드 자원-제약 장치를 위한 객체지향 명령어 세트
KR100731371B1 (ko) * 1999-02-15 2007-06-21 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 구성가능 기능 유닛을 포함하는 프로세서를 사용해서 컴퓨터 프로그램을 실행하는 방법, 프로세서 및 컴퓨터 판독가능 기록 매체

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0978792A1 (en) * 1998-08-05 2000-02-09 Italtel s.p.a. Programmable architecture computer
DE19843663A1 (de) * 1998-09-23 2000-03-30 Siemens Ag Konfigurierbarer Hardware-Block
DE19843640A1 (de) 1998-09-23 2000-03-30 Siemens Ag Verfahren zum Konfigurieren eines konfigurierbaren Hardware-Blocks
US6237085B1 (en) * 1998-12-08 2001-05-22 International Business Machines Corporation Processor and method for generating less than (LT), Greater than (GT), and equal to (EQ) condition code bits concurrent with a logical or complex operation
EP1069513A1 (de) * 1999-07-15 2001-01-17 Infineon Technologies AG Programmgesteuerte Einheit
US6754801B1 (en) 2000-08-22 2004-06-22 Micron Technology, Inc. Method and apparatus for a shift register based interconnection for a massively parallel processor array
US6359827B1 (en) 2000-08-22 2002-03-19 Micron Technology, Inc. Method of constructing a very wide, very fast distributed memory
US6754802B1 (en) 2000-08-25 2004-06-22 Micron Technology, Inc. Single instruction multiple data massively parallel processor systems on a chip and system using same
US6912626B1 (en) 2000-08-31 2005-06-28 Micron Technology, Inc. Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
TW567695B (en) * 2001-01-17 2003-12-21 Ibm Digital baseband system
EP1431872A1 (en) * 2002-12-19 2004-06-23 Alcatel A digital signal processor with reconfigurable data path
US7949856B2 (en) * 2004-03-31 2011-05-24 Icera Inc. Method and apparatus for separate control processing and data path processing in a dual path processor with a shared load/store unit
US9047094B2 (en) 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
US8484441B2 (en) * 2004-03-31 2013-07-09 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths
GB2414474A (en) * 2004-05-24 2005-11-30 Bw Technologies Ltd Device for purifying fluids, in particular water
US11150721B2 (en) * 2012-11-07 2021-10-19 Nvidia Corporation Providing hints to an execution unit to prepare for predicted subsequent arithmetic operations

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69032385T2 (de) * 1989-09-12 1999-01-28 Philips Electronics Nv Dynamisch rekonfigurierbarer Signalprozessor und Prozessoranordnung
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
TW305973B (ja) * 1995-02-15 1997-05-21 Siemens Ag
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100713740B1 (ko) * 1999-02-02 2007-05-02 선 마이크로시스템즈 인코포레이티드 자원-제약 장치를 위한 객체지향 명령어 세트
KR100731371B1 (ko) * 1999-02-15 2007-06-21 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 구성가능 기능 유닛을 포함하는 프로세서를 사용해서 컴퓨터 프로그램을 실행하는 방법, 프로세서 및 컴퓨터 판독가능 기록 매체

Also Published As

Publication number Publication date
KR100316078B1 (ko) 2002-01-12
KR19980018874A (ko) 1998-06-05
DE59710022D1 (de) 2003-06-12
US6061367A (en) 2000-05-09
DE19634031A1 (de) 1998-02-26
EP0825540B1 (de) 2003-05-07
EP0825540A1 (de) 1998-02-25

Similar Documents

Publication Publication Date Title
US10387319B2 (en) Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
CN101965554B (zh) 选择性地提交已执行指令的结果的系统和方法
US5958048A (en) Architectural support for software pipelining of nested loops
JP6043374B2 (ja) 動的アウトオブオーダプロセッサパイプラインを実装する方法および装置
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
JP2918631B2 (ja) デコーダ
JP3547139B2 (ja) プロセッサ
US5794029A (en) Architectural support for execution control of prologue and eplogue periods of loops in a VLIW processor
JPH10105402A (ja) パイプライン方式のプロセッサ
US20040073773A1 (en) Vector processor architecture and methods performed therein
US9329866B2 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
US5983336A (en) Method and apparatus for packing and unpacking wide instruction word using pointers and masks to shift word syllables to designated execution units groups
US8667476B1 (en) Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
US9182992B2 (en) Method for improving performance of a pipelined microprocessor by utilizing pipeline virtual registers
US20210216454A1 (en) Coupling wide memory interface to wide write back paths
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
US5778208A (en) Flexible pipeline for interlock removal
WO2016210023A1 (en) Decoding information about a group of instructions including a size of the group of instructions
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
CN101246435A (zh) 一种支持高级语言部分语句功能的处理器指令集
EP1751655A2 (en) Run-time selection of feed-back connections in a multiple-instruction word processor
US20060179285A1 (en) Type conversion unit in a multiprocessor system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20041102