JP2007519052A - 命令制御式データ処理装置 - Google Patents
命令制御式データ処理装置 Download PDFInfo
- Publication number
- JP2007519052A JP2007519052A JP2006516736A JP2006516736A JP2007519052A JP 2007519052 A JP2007519052 A JP 2007519052A JP 2006516736 A JP2006516736 A JP 2006516736A JP 2006516736 A JP2006516736 A JP 2006516736A JP 2007519052 A JP2007519052 A JP 2007519052A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- functional unit
- instructions
- functional units
- functional
- 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
Links
- 230000004044 response Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 7
- 230000000875 corresponding effect Effects 0.000 claims 3
- 230000001419 dependent effect Effects 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
Images
Classifications
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Power Sources (AREA)
Abstract
データ処理装置は、複数の機能ユニットを有し、連続した命令サイクルで命令を発行する。第1タイプの命令は、それぞれ一時に1つの機能ユニットに向けたものである。第2タイプの命令により、機能ユニットの組合せが同じ命令実行サイクルで応答するようになり、1つの機能ユニットからの結果が、同じ命令の実行の一環として別の機能ユニットによって使用される。好ましくは、この装置は、実行されるプログラム・セグメントが第2タイプの命令を含むかどうかに応じた、いくつかの異なる命令サイクル速度での選択的演算をサポートする。最も速い命令サイクル速度では、異なる機能ユニットによる演算が命令実行サイクル内に収まらないので、第2タイプの命令の実行は許容されない。可能であれば、この装置は、遅いクロック速度に切り換わることによって電力消費を節減し、その場合、第2タイプの命令が実行されて、発行されるべき命令の数を低減することにより電力消費をさらに節減する。
Description
本発明は、命令制御式データ処理装置に関する。
PCT特許出願公開第WO00/60457号は、VLIW処理装置を開示している。VLIW処理装置は、それぞれ他の機能ユニットと並列に命令を実行可能な複数の機能ユニットを含んでいる。VLIW処理装置は、一般にそれぞれの機能ユニットによって並列に実行するための複数の命令を含む、VLIW命令語を処理する。VLIWプロセッサは、プログラムされた処理タスクの高速な実行を可能にする利点があるが、この利点を得るには、メモリ使用量が多く電力消費が大きいという犠牲を伴う。WO00/60457は、VLIW処理装置のためのプログラムに必要な命令メモリ・サイズを低減することを目的としている。この目的のために、処理装置は、メモリ内の命令に応答してVLIW命令を作る。したがって、メモリからの元の命令は、VLIW命令語中の複数の命令に変換されて、異なる機能ユニットで並列に実行される。
電力消費が大きいのは、とりわけ、多数の命令を並列に発行する必要があり、また命令が発行されるごとにレジスタ・ファイルにアクセスする必要があることに起因する。これらの問題は、WO00/60457によって対処されていない。
本発明の一目的は、とりわけ、命令制御式処理装置における電力消費を低減することである。
本発明の一目的は、とりわけ、特にVLIW処理装置における電力消費を低減することである。
本発明による装置が請求項1に記載されている。この装置は、発行スロットおよびレジスタ・ファイルのポートに並列に接続され、発行スロットから発行された命令を少なくとも1つのポートからのオペランドを用いて実行し、結果を少なくとも1つのポートに書き込むことを交互に行うための、1つの機能ユニット・グループを含む。この装置は、それら交互の命令に加えて組合せ命令を提供し、その場合、組合せ命令に応答してそのグループの2つ以上の機能ユニットが応答し、組合せ命令に応答して機能ユニットの第1ユニットからの結果が機能ユニットの第2ユニットのオペランド入力に送られる。機能ユニットの第2ユニットの結果が使用されて、組合せ命令の結果が生成される。組合せ命令を使用することにより、所与のタスク用のプログラムを実行中に機能ユニット・グループに発行する必要のある命令数を、低減することができ、これにより消費電力が低減できる。W000/60457とは対照的に、組合せ命令は、個々に発行される必要のある複数の命令に分割されず、1つの発行スロット中に発行される。したがって、この装置は、もちろん同じVLIW命令語中で組合せ命令と並列に他の命令を発行することができるけれども、異なる機能ユニットに対して並列に命令を発行する必要性を部分的に回避することにより、VLIW処理の理念に部分的に反する。
一実施形態では、処理装置は、命令サイクルに合わせて選択可能なクロック速度を有する。速いクロック速度を必要としない処理タスクの実行中に使用されるクロック速度を下げることにより、電力消費が低減される。処理タスクを高速で実行する必要があるときは、個々の機能ユニットがすべて1命令サイクル内で命令をちょうど実行できる最大速度まで、クロック速度が上げられる。本発明の一態様によれば、この装置は、2つ以上の機能ユニットが同じ命令サイクル内で組合せ命令に応答し、連続して働き、またクロック速度を、組合せ命令の連続実行が1命令サイクル内に収まらなくなる程、速い速度に上げることができるように構築される。クロック速度がそのようなレベルまで上がると、たとえば、組合せ命令を含まないプログラムのみを実行するか、またはそれぞれ同じタスクを完了するための組合せ命令を使用するプログラムのバージョンとそれを使用しないプログラムのバージョンとを二者択一的に切り換えることにより、あるいは組合せ命令を異なる機能ユニットによって連続したサイクル内で実行される命令に変換することにより、組合せ命令の使用が回避される。
このようにして、電力消費をより節減することができる。というのは、装置が低クロック速度で実行される場合、命令を組み合わせて、発行スロットが1命令サイクル内のみアクティブであればよい組合せ命令にすることにより、処理タスクを実行するために発行する必要のある命令の合計数を減らすことができるからである。組合せ命令が通常の命令よりも多くの命令サイクルを使い果たさない場合、組合せ命令の使用により、プログラムの実行に必要とされる時間が低減され、指定された期間内に実行される必要のある処理タスクについて、クロック速度をさらに一層下げることが可能になる。
もう1つの実施形態では、処理装置が、並列実行のために、命令語からの命令を並列に発行できる複数の機能ユニットを含むVLIWプロセッサである。この実施形態では、組合せ命令を受け取る機能ユニット・グループと並列に命令を受け取るさらなる機能ユニットの結果出力から、組合せ命令に応答しまた機能ユニットの第1ユニットの結果を受け取る機能ユニットの第2ユニットのオペランド入力への、バイパス結合が提供される。好ましくは、バイパス接続は、複数命令サイクルにわたって機能ユニットにより実行される実行ステージをパイプライン処理するためのラッチを含まない。したがって、1つのグループ用の組合せ命令を、その組合せ命令の実行中に使用されるオペランドを引き渡すある機能ユニット用の別の命令と一緒に含む、VLIW命令語を使用することができる。その結果、十分に遅いクロック速度では、十分な速度をなお維持しながら、発行する必要のある命令数が少なくて済む。
さらに他の一実施形態では、組合せ命令の実行が、1命令サイクルを超えて延長してもよい。したがって、組合せ命令を、連続実行が1命令サイクル内に収まらないクロック速度で実行することもできる。一実施形態では、機能ユニットがどちらも組合せ命令に応答するとき、1つの機能ユニットから別の機能ユニットに送られる結果をラッチするために、中間レジスタが提供される。しかし、これには、レジスタによる追加の電力消費が必要とされ、実行が分割される。もう1つの実施形態では、機能ユニット間でレジスタが使用されず、ウェーブ・パイプラインを使用して、1命令サイクルより長い期間の一部分中で1つの機能ユニットから別の機能ユニットに結果が渡される。
本発明の上記その他の目的および有利な諸態様は、添付の図面を用いて説明される。
図1に、命令メモリ17、発行スロット11を有する命令発行ユニット10、機能ユニット・グループ12、レジスタ・ファイル14、クロック回路16、クロック速度選択回路18、およびプログラム・カウンタ19を含む処理装置を示す。プログラム・カウンタ19は、命令メモリ17のアドレス入力に結合された出力を有する。命令メモリ17は、命令発行ユニット10に結合された出力を有する。命令発行ユニット10の発行スロット11は、機能ユニット・グループ12に結合されたオペレーションコードと、レジスタ・ファイル14に結合された第1オペランド・レジスタ・アドレスおよび第2オペランド・レジスタ・アドレスおよび結果レジスタ・アドレスとのための出力を含む。機能ユニット・グループ12は、レジスタ・ファイル14の出力に結合されたオペランド入力と、レジスタ・ファイル14の入力に結合された結果出力とを有する。
機能ユニット・グループ12のみが示されているが、複数のグループが並列に存在してもよいことを理解されたい。この場合、命令発行ユニットは、機能ユニット・グループごとに、該当するグループのオペレーションコード入力に結合された出力と、レジスタ・ファイル14に結合されたレジスタ・アドレス出力を有する発行スロットとを含む。また、この場合、レジスタ・ファイル14は、機能ユニット・グループごとに、個別の結果入力ならびに個別のオペランド出力を有する。
クロック速度選択回路18は、クロック回路16およびプログラム・カウンタ19の制御入力に結合された出力を有する。クロック回路16は、命令発行ユニット10およびレジスタ・ファイル14に結合されたクロック出力を有する。命令発行ユニット10は、プログラム・カウンタ19に結合されている。動作においては、クロック回路16からのクロック信号が、連続した命令サイクルを規定する。通常、それぞれの命令が、各命令サイクルで実行される。各命令サイクルでは、命令発行ユニット10が、命令の一部であるコマンドのオペレーションコードを機能ユニット・グループ12に発行する。同様に、命令発行ユニット10は、各命令サイクル内で命令用のオペランド・レジスタ・アドレスをレジスタ・ファイル14に発行し、各命令サイクル内で命令用の結果レジスタ・アドレスをレジスタ・ファイル14に発行する。パイプライン処理のため、同じ命令サイクル内で発行されるオペレーションコード、オペランド・レジスタ・アドレス、および結果レジスタ・アドレスは、異なる命令に属することができる。
1命令サイクル内では、機能ユニット・グループ12が、レジスタ・ファイル14から受け取った1つまたは複数のオペランドを使用して、命令発行ユニット10からのオペレーションコードによって識別されるコマンドを実行する。
図2に、機能ユニット・グループ12をより詳細に示す。グループ12は、複数の機能ユニット20a、b(わかりやすいように2つだけ示されているが、もっと多く存在してもよい)を含む。グループ12のオペランド入力22a、bが、機能ユニット20a、bのオペランド入力に結合されている。機能ユニット20a、bの結果出力が、出力マルチプレクサ26を介してグループ12の結果出力に結合されている。オペレーションコード入力24が、機能ユニット20a、bのオペレーションコード入力および出力マルチプレクサ26に結合されている(好ましくは、オペレーションコード24が、機能ユニット20a、bおよび出力マルチプレクサ26にプリデコーダを介して結合されるが、これはわかりやすくするために示されていない)。
グループ12は、制御ユニット28および入力マルチプレクサ29も含んでいる。入力マルチプレクサ29は、そのグループのオペランド入力22aに結合されている第1の入力と、第2機能ユニット20bのオペランド入力に結合されている出力とを有する。入力マルチプレクサ29の第2の入力が、第1機能ユニット20aの結果出力に結合されている。制御ユニット28が、オペレーションコード入力24に結合されており、入力マルチプレクサ29の選択入力に結合されている出力を有する。
動作においては、受け取られた第1タイプのオペレーションコードがそれぞれ、オペレーションコードを実行する機能ユニット20a、bのどちらか1つを識別する。この第1タイプのオペレーションコードの場合、制御ユニット28が、入力マルチプレクサ29にオペランド入力22bからのオペランドを渡させる。識別された機能ユニット20a、bが、そのオペランド入力に適用されるオペランドを用いて、オペレーションコードによって識別される処理演算(たとえばADD、または乗算)を実行する。識別された機能ユニット20a、bが、結果を出力する。出力マルチプレクサ26は、識別された機能ユニット20a、bからの結果を、機能ユニット・グループ12の結果出力に渡す。
図3aに、機能ユニット20a、bによる演算実行のタイミングの諸側面を示す。最上部において、トレース30は、連続した命令サイクルを示す。各命令サイクルは、持続時間T1だけ続く。最上行の下には、機能ユニット20a、bが実行中に結果を生成するのに必要とされる最小期間32、34が示されている。期間32、34は、オペレーションコードによって選択される演算の種類と、演算を実行する機能ユニット20a、bと、演算において使用されるオペランド・データとに依存し得る。ただし、結果は常に、命令サイクルの終了の前に利用可能になる、すなわちこれらの期間の持続時間はT1よりも短くなる。図3aは、1つの機能ユニットでの実行に必要な期間だけを示していることに留意されたい。実際には、演算はパイプライン処理されてもよく、したがって、各命令の処理は、命令フェッチ段階、オペランド・フェッチ段階、実行段階、および結果書込段階を伴っており、中間結果をラッチした後に、必要であれば、連続した命令サイクルで前記種々の段階が実行される。期間32、34は、実行段階にのみ関係している。
オペレーションコードは、機能ユニット20a、bのカスケード演算をもたらす第2タイプのオペレーションコードも含んでいる。第2タイプのオペレーションコードがオペランド入力24に適用されたとき、制御ユニットは、入力マルチプレクサ29に機能ユニットの第1ユニット20aからの結果を機能ユニットの第2ユニット20bのオペランド入力に渡させる。出力マルチプレクサ26は、機能ユニットの第2ユニット20bからの結果を機能ユニット・グループ12の結果出力に渡す。
第2タイプのオペレーションコードの例として、2乗とオペランドの和の計算用のオペレーションコードがある。
結果=A*A+B
この例では、グループ12の第1機能ユニット20aは乗算器であり、グループ12の第2機能ユニット20bは加算器である。この演算は、AおよびBをオペランドとして含むレジスタのレジスタ・アドレスを有する。このオペレーションコードに応答して、グループ12の第1機能ユニット20aは、積A*Aを生成する。同じオペレーションコードに応答して、制御ユニット28は、マルチプレクサ29に、積A*Aをオペランドとして、グループ12の第2機能ユニット20bに渡させる。さらに同じオペレーションコードに応答して、グループ12の第2機能ユニット20bは、受け取った積A*AとオペランドBの合計であるA*A+Bを生成する。このオペレーションコードは単なる例に過ぎないことを理解されたい。他の演算(たとえば、A*A−B、A/(A+B)など、A*B+A)用のオペレーションコードが提供されてもよく、このようなオペレーションコードが1つでも複数でもサポートされ得る。
結果=A*A+B
この例では、グループ12の第1機能ユニット20aは乗算器であり、グループ12の第2機能ユニット20bは加算器である。この演算は、AおよびBをオペランドとして含むレジスタのレジスタ・アドレスを有する。このオペレーションコードに応答して、グループ12の第1機能ユニット20aは、積A*Aを生成する。同じオペレーションコードに応答して、制御ユニット28は、マルチプレクサ29に、積A*Aをオペランドとして、グループ12の第2機能ユニット20bに渡させる。さらに同じオペレーションコードに応答して、グループ12の第2機能ユニット20bは、受け取った積A*AとオペランドBの合計であるA*A+Bを生成する。このオペレーションコードは単なる例に過ぎないことを理解されたい。他の演算(たとえば、A*A−B、A/(A+B)など、A*B+A)用のオペレーションコードが提供されてもよく、このようなオペレーションコードが1つでも複数でもサポートされ得る。
コマンド内に3つ以上のオペランド・レジスタ・アドレスを含めることにより、または同じレジスタ内に2つ以上のオペランドを含めることにより、より多くのオペランドが利用可能な場合、より複雑な演算を実行することができる。たとえば、オペランドがそれぞれ複素数の実部および虚部を表す、数の対(ReA、ImA)および(ReB、ImB)を含む場合、組合せ演算は、乗算器機能ユニットに、それぞれ実部(ReA*ReB)の積および虚部(ImA*ImB)の積を生成するよう指令し、加算器にその積を合計するよう指令する。この場合、グループ12は好ましくは、少なくとも2つの乗算器および1つの加算器を機能ユニットとして含み、また、加算器がオペランドを、オペランド入力22a、bから受け取るか、それとも乗算器から受け取るかを選択する制御ユニット28の制御下にあるマルチプレクサも含む。
図3bは、第2タイプのオペレーションコードによって選択される演算の実行の実行段階におけるタイミングの諸側面を示している。この場合、命令サイクルの持続時間がT2である。この演算の結果が利用可能になるまでに必要な期間36の持続時間は、機能ユニットの第1ユニット20aによって必要とされる第1の期間36aの持続時間と、機能ユニットの第1ユニット20aの結果を機能ユニットの第2ユニット20bのオペランド入力に渡す必要のある第2の期間36bの持続時間と、機能ユニットの第2ユニット20bによって必要とされる第3の期間36cの持続時間との和である(より正確には、第2の期間36bの持続時間の代わりに、機能ユニットの第1ユニット20aの出力からの結果を機能ユニットの第2ユニット20bのオペランド入力に渡すのに必要とされる期間の持続時間から、外部のオペランドをこのオペランド入力に渡すのに必要とされる期間の持続時間を引いた差を考慮すべきである。この差は負になることもある)。
第2タイプの演算の結果が利用可能になるまでの期間36の全持続時間は、その演算の構成要素である諸演算のために機能ユニット20a、bによって必要とされる期間36a、36cの持続時間よりも長い。それでもやはり、この総持続時間は、1命令サイクルの持続時間T2内に収まるべきである。
クロック速度選択回路18は、クロック速度、すなわち命令サイクルの持続時間T1またはT2を選択するための信号を、クロック回路16に供給する。好ましくは、クロック速度は、必要な期間内に必要なタスクを実行する能力を損なわずに、できるだけ低く(命令サイクル持続時間ができるだけ長く)設定される。クロック速度を下げることにより、この装置の電力消費が低減される。
選択可能なクロック速度には、第2タイプの命令の持続実行が命令サイクル(持続時間T2)内に収まる遅いクロック速度と、第2タイプの命令の持続実行が命令サイクル(持続時間T1)内に収まらない速いクロック速度が含まれる。クロック速度が遅いクロック速度に設定された場合、タスクは、第2タイプのオペレーションコードをもつ命令を使用して実行される。クロック速度が速いクロック速度に設定された場合、タスクは、たとえば第2タイプのオペレーションコードをもつ各命令を第1タイプのオペレーションコードをもつ2つ以上の命令で置き換えることによって、第2タイプのオペレーションコードをもつ命令を使用せずに実行される。遅いクロック速度で第2タイプのオペレーションコードをもつ命令を使用することにより、タスクを実行するのに必要とされる命令サイクル数が低減される。それによって、実行速度が速くなる。
タスクを実行する際に用いられる命令を適用するためのどんな方法も使用することができる。一実施形態では、命令メモリ17が、同じタスクを実行するための少なくとも2つのプログラムの命令を記憶し、その際に、あるものは第1タイプのオペレーションコードをもつ命令を使用するが、別のものはそのような命令を使用しない。この実施形態では、クロック速度選択回路18は、クロック速度に加えて、たとえばタスクの実行開始時にプログラム・カウンタ19の初期値を設定することにより、該当するプログラムも選択する。
ただし、タスクの実行中、第2タイプのオペレーションコードの使用を回避するために、他の多くの方法を使用することができる。たとえば、設定されているクロック速度に応じて、第2タイプのオペレーションコードをもつプログラム、またはそのタイプのオペレーションコードをもたないプログラムのどちらかにジャンプする命令を実行することができる。同様に、適切な命令を選択するために、選択されたクロック速度に応じて、命令アドレスの物理メモリ・アドレスへの変換を行うことができる。これらの場合には、タスクを実行するプログラム全体の二者択一のバージョン(第2タイプのオペレーションコードがあるものおよびないもの)を提供する必要はない。代わりに、そのような命令を含むプログラムのセクションについてのみ、二者択一のバージョンを提供することができる(この場合、第2タイプのオペレーションコードをもつ命令は、頻繁に実行されるセクションにのみ含まれることが好ましい)。速いクロック速度が選択されている場合、二者択一の命令として、発行ユニットを、第2タイプのオペレーションコードをもつ命令をそのタイプのオペレーションコードをもたない複数の命令に、その場で変換するように構成することもできる。
第2タイプのオペレーションコードは、頻繁に実行される命令をサポートすることが好ましい。
本発明は、クロック速度選択回路18をもつ一実施形態によって説明されているが、クロック速度を、他の方法で、たとえばプログラム・カウンタ値の一部の制御下で、命令がそこから実行されているプログラムのセグメントに応じてクロック速度が設定されるように、選択することもできることが理解されよう。あるいは、クロック速度を、プログラムからの命令の制御下で、選択することもできることが理解されよう。
図2は、いくつかの機能ユニット20a、bが、第2タイプの同じオペレーションコードに応答する一実施形態を示す。さらに、制御ユニット28がこのオペレーションコードに応答し、出力マルチプレクサ26が、応答する機能ユニット20a、bのどれか1つのみからの結果を出力する。ただし、オペレーションコードに対応してどの機能ユニットをアクティブにすべきかを検出し、それらの機能ユニット20a、bをアクティブにする(プリ)デコーダ(図示せず)を使用できることが理解されよう。この場合、(プリ)デコーダは、オペレーションコードが第1タイプである場合、機能ユニット20a、bを命令サイクルあたり1つアクティブにし、オペレーションコードが第2タイプである場合、機能ユニットの組合せをアクティブにする。図に示すように、第2タイプのオペレーションコードに応答してアクティブにされた各機能ユニット20a、bは、第1タイプのオペレーションコードに対して個別に応答することもできる。したがって、命令ユニット20a、bは、効率的に再利用される。ただし、一代替実施形態では、カスケード接続された、第2タイプのオペレーションコードを実行するために使用される機能ユニット20a、bの一部分が、第1タイプのどんなオペレーションコードにも個別に応答しないタイプであってよい。したがって、機能ユニット・グループ12に、あるオーバヘッドを導入する必要がある。
入力マルチプレクサ29は1つだけが例として示され、機能ユニット20a、bは2つだけ示されているが、実際には、機能ユニット20a、bの出力間、またはグループ12における追加の機能ユニット(図示せず)間に、より複雑な接続網を備えることができることが理解されよう。
図4は、本発明のさらなる一態様を実装した、図1に示す処理装置で使用される機能ユニットの2つのグループ12、40を示す。各グループ12、40は、命令発行ユニット(図示せず)からの発行スロットにそれぞれ結合され、かつレジスタ・ファイル(図示せず)の読取りおよび書込みポートに結合された演算選択入力24、48を有する。したがって、この装置は、異なるグループ12、40について実質的に独立に選択可能な複数のコマンドを含む、VLIWプロセッサ(超長命令語プロセッサ)である。グループ12の第1グループが図2に示すとおりに配置されている。ただし、さらなるマルチプレクサ44が追加されており、その第1の入力に、グループ12の第2のオペランド入力22bが結合されている。さらなるマルチプレクサ44の出力が、第2機能ユニット20bのオペランド入力に結合されている。さらなるマルチプレクサ44は、制御ユニット28に結合された制御入力を有する。
機能ユニット40の第2グループは、いくつかの機能ユニット40a、40bを含んでいる。第2グループ40の機能ユニット40bの1つの出力が、バイパス接続42を介して、さらなるマルチプレクサ44の第2の入力に結合されている。
動作においては、制御装置28は、組合せ命令のオペレーションコードが機能ユニット・グループ12に発行されるとき、そのことを認識する。その場合、制御ユニット28は、マルチプレクサ29、44に、グループ12の第1機能ユニット20aからおよびさらなるグループ40の機能ユニット40bからのオペランドを、グループ12の第2機能ユニット20bのオペランド入力に渡させる。グループ12の第1および第2の機能ユニット20a、bはどちらも組合せ命令に応答し、第1機能ユニット20aはグループ12のオペランド入力22a、bからオペランドを受け取り、マルチプレクサ26は、第2機能ユニット20bからの結果をグループ12用に提供されているレジスタ・ファイルの書込みポートに渡す。
命令メモリ17に記憶されているプログラムは、グループ12用のコマンドとグループ40用のコマンドを含む命令を含んでいる。この命令は、第1グループ12用の組合せ命令を含んでおり、第2グループ40用のコマンドは、第2グループの第2機能ユニット40bをアクティブにするオペレーションコードを含んでいる。したがって、この命令に応答して、第1グループ12の第1機能ユニット20aと第2グループ40の第2機能ユニット40bはどちらも結果を生成し、その結果がグループ12の第2機能ユニット20bでオペランドとして使用される。第2グループ40の第2機能ユニット40bからの結果は、グループ12と40の間でバイパス接続42を介して渡される。マルチプレクサ29、44は、その結果をオペランドとして第1グループ12の第2機能ユニット20bに渡す。
一例として、2対のオペランドの積が加算される乗算−加算演算に、このタイプの命令を使用することができる。
結果=A*B+C*D
この例では、第1グループ12の第1機能ユニット20aが乗算器であり、第2グループ40の第2機能ユニット40bが乗算器であり、また第1グループ12の第2機能ユニット20bが加算器である。この命令は、第1グループ12に発行される乗算−加算コマンド(組合せコマンド)、および第2グループ40に発行される乗算コマンドを含んでいる。乗算−加算コマンドは、AおよびBをオペランドとして含むレジスタのレジスタ・アドレスを有し、乗算コマンドは、CおよびDをオペランドとして含むレジスタのアドレスを有する。この命令に応答して、第1グループ12の第1機能ユニット20aおよび第2グループ40の第2機能ユニット40bが、それぞれ積A*BおよびC*Dを生成する。同じ乗算−加算命令に応答して、制御ユニット28は、マルチプレクサ29、44に、これらの積をオペランドとして第1グループ12の第2機能ユニット20bに渡させる。さらに同じ乗算−加算命令に応答して、第1グループ12の第2機能ユニット20bが、受け取った積A*BおよびC*Dの和A*B+C*Dを生成する。
結果=A*B+C*D
この例では、第1グループ12の第1機能ユニット20aが乗算器であり、第2グループ40の第2機能ユニット40bが乗算器であり、また第1グループ12の第2機能ユニット20bが加算器である。この命令は、第1グループ12に発行される乗算−加算コマンド(組合せコマンド)、および第2グループ40に発行される乗算コマンドを含んでいる。乗算−加算コマンドは、AおよびBをオペランドとして含むレジスタのレジスタ・アドレスを有し、乗算コマンドは、CおよびDをオペランドとして含むレジスタのアドレスを有する。この命令に応答して、第1グループ12の第1機能ユニット20aおよび第2グループ40の第2機能ユニット40bが、それぞれ積A*BおよびC*Dを生成する。同じ乗算−加算命令に応答して、制御ユニット28は、マルチプレクサ29、44に、これらの積をオペランドとして第1グループ12の第2機能ユニット20bに渡させる。さらに同じ乗算−加算命令に応答して、第1グループ12の第2機能ユニット20bが、受け取った積A*BおよびC*Dの和A*B+C*Dを生成する。
このタイプの乗算と加算の組合せは、たとえば複素数の乗算で頻繁に発生する命令組合せであり、したがって、この命令により、このタイプの演算のために発行する必要のある命令数の大幅な節減が実現される。ただし、本発明はこの命令に限定されないことを理解されたい。たとえば、類似の技法を乗算と減算に適用してA*B−C*Dを計算することも、あるいはあるプログラムで発生する演算の他のどんな組合せに適用することもできる。この装置は、ただ1つの組合せ命令用のオペレーションコードをサポートすることも、あるいは複数の組合せ命令用のオペレーションコードをサポートすることもできる。
プログラムを図4の実施形態の機能ユニットを用いて実行する場合、命令サイクル速度が速すぎて、連続した第2グループ40の第2機能ユニット40bおよび第1グループ12の第2機能ユニット20bの遅延に対応できないときは、そのプログラムを、図2のコンテキストで論じたように、組合せ命令を排除するように適合させることができることに留意されたい。この組合せ命令により、第1グループ12の第2機能ユニット20b用のオペランドとして使用するために、(第2グループ40の第2機能ユニット40bの代わりに)異なる機能ユニットからの結果を選択することができる。これらの異なる機能ユニットは、1つのグループ40の一部でも、異なる複数のグループの一部でもよい。第2グループ40は、本発明から逸脱せずに、ただ1つの機能ユニット(第2機能ユニット40b)を含むことができる。
図5は、この装置で使用される代替機能ユニット・グループ12を示す。これまでに示した実施形態においては、組合せ演算が1つの命令サイクル内で実行される。図5の実施形態では、複数の命令サイクルが使用される。機能ユニット・グループ12は、制御ユニット28に結合された入力と、マルチプレクサ29、44および第2機能ユニット20bの制御入力に結合された出力とをもつ制御レジスタ50を含んでいる。マルチプレクサ29、44の第1のデータ入力がオペランド入力22a、bに接続されている。結果レジスタ52、54は、マルチプレクサ29、44の第2のデータ入力に結合された出力を備えている。結果レジスタ52、54の入力は、グループ12の1つまたは複数の機能ユニット(たとえば20a)の結果出力に、かつ/または他のグループ(図示せず)の1つまたは複数の機能ユニットの結果出力に結合されている。見やすいように、これらの入力の接続は示されていない。
動作においては、制御ユニット28は、制御レジスタ50に、マルチプレクサ29、44および第1グループ12の第2機能ユニット20bを制御するための情報をロードさせることによって、第1の命令サイクル内で実行すべく発行された組合せ命令に応答する。この情報により、第1の命令サイクルに続く第2の命令サイクルで、マルチプレクサ29、44および第1グループ12の第2機能ユニット20bが制御される。第2の命令サイクルでは、結果レジスタ52、54にラッチされた結果が、オペランドとしてグループ12の第2機能ユニット20bに渡され、この第2機能ユニット20bは、第2の命令サイクルにおける組合せ命令に示されているコマンドのその部分を実行するための制御信号を受け取る。それに応答して、第2の機能ユニット20bは、第2の命令サイクルの終わりに結果を生成する。
このようにして、第2の命令サイクルで、第2機能ユニット20bによる組合せ命令の一部を実行するのと並列して、グループ12で次の命令を実行することができる。たとえば、第1の命令サイクルでA*B−C*Dを計算する第1の命令の実行を開始し、次の命令サイクルでA*D+B*Cを計算する第2の命令を開始することもできる。したがって、2つの数A+iCおよびB+iDの実部と虚部が、2つの命令を用いて計算される。
もちろん、組合せ命令の結果と次の命令の結果の間で矛盾が発生するのを回避すべきである。これは、様々な方法で実現することができる。一実施形態では、次の命令が、第2の命令サイクルにおいて結果を生成しない、命令のサブセットから選択される(たとえば、別の組合せ命令、あるいはNOP命令)。この実施形態では、制御レジスタ50はまた、第2機能ユニット20bからの結果を渡すようにマルチプレクサ26を制御する。もう1つの実施形態では、次の命令に応答する機能ユニットからの結果と並列に、バイパス・レジスタ(図示せず)を使用して第2機能ユニット20bの結果を渡すことができる。
図5の実施形態では、命令サイクル速度が速すぎて、1つの命令サイクルにおける第1および第2の機能ユニット20a、bの遅延に対応できないときは、プログラムを適合させる必要はないことに留意されたい。
図5は、マルチプレクサ29、44の前に挿入された結果レジスタ52、54を示しているが、ウェーブ・パイプラインが使用される場合、これらのレジスタ52、54を省略することもできる。この場合は、機能ユニット20a、b内の伝播遅延を利用して、第2機能ユニット20bおよび次の命令を実行する機能ユニットの出力に、組合せ命令および次の命令からの結果が同時に存在できるようにする。他の一実施形態では、第1グループ12の第2機能ユニット20bによって使用される結果を生成する特定の機能ユニットの前に、レジスタを設けることができる。これらのレジスタは、これらの機能ユニットのオペランドをラッチすることによって組合せ命令に応答し、これらのオペランドが、第1の命令サイクル内に入力22a、bから直接適用された後、後続の命令サイクル内でもその特定の機能ユニットに供給されるように構成される。
本発明は、同じコマンドに応答する連続した2つの機能ユニットの連続実行を伴う組合せ命令を用いて説明されてきたが、連続した非常に多くの数の機能ユニットを伴う組合せ命令を提供することもできることが理解されよう。
Claims (11)
- 命令セットから命令を発行するための発行スロットを有し、前記命令のそれぞれを連続した命令サイクルで発行する命令発行ユニットと、
読取りポートおよび書込みポートをもつレジスタ・ファイルと、
それぞれ前記発行スロットに結合された制御入力、前記読取りポートに結合されたオペランド入力、および前記書込みポートに結合された結果出力を有し、それぞれが他の機能ユニットが応答しない前記命令セットの該当のサブセットからの命令に応答する、機能ユニットのグループであって、前記命令セットがさらに、前記機能ユニットのうちの第1および第2機能ユニットが応答する組合せ命令を含む機能ユニットのグループと、
前記発行スロットに結合され、前記命令セットからの前記組合せ命令に応答して、前記機能ユニットのうちの前記第1機能ユニットの結果出力を、前記機能ユニットのうちの前記第2機能ユニットの前記オペランド入力に送る制御ユニットとを含む、命令制御式データ処理装置。 - VLIWプロセッサとして構成され、前記発行スロットが、前記組合せ命令をその命令の1つとして含むVLIW命令語を発行するための前記命令発行ユニットの複数の発行スロットの1つであり、前記レジスタ・ファイルが、複数組の読取りおよび書込みポートを有する命令制御式データ処理装置であって、それぞれ前記発行スロットの1つおよび前記複数組の読取りおよび書込みポートに結合された、前記VLIW命令語からの該当の命令を実行するための、機能ユニットまたは機能ユニット・グループを含み、前記機能ユニットのうちの前記第1および第2機能ユニットが、前記組合せ命令と同じ命令語中で発行された命令の実行と並列に、前記発行スロット内に発行された前記組合せ命令に応答する、請求項1に記載の命令制御式データ処理装置。
- 前記機能ユニットのうちの前記第1および第2機能ユニットが、同じ命令実行サイクル内で前記組合せ命令に応答する、請求項1に記載の命令制御式データ処理装置。
- 前記命令サイクルをクロック制御するためのクロック回路を含み、前記クロック回路が、命令実行サイクル内で前記組合せ命令を実行する際でも前記機能ユニットのうちの前記第1機能ユニットに適用されるオペランドに応答して前記命令実行サイクル内で前記機能ユニットのうちの前記第2機能ユニットからの結果を生成するのに伴う待ち時間に対応できるのに十分なほど遅い第1のクロック速度と、前記命令サイクル内で前記待ち時間に対応できるには速すぎるが前記サブセットからの命令の待ち時間には対応できる第2のクロック速度とを含む複数の選択可能なクロック速度を有する、請求項3に記載の命令制御式データ処理装置。
- 前記命令発行ユニットがさらなる発行スロットを有し、前記レジスタ・ファイルがさらなる読取りポートを有する命令制御式データ処理装置であって、前記さらなる発行スロットに結合された制御入力を有するさらなる機能ユニットと、前記さらなる読取りポートに結合されたオペランド入力とを含み、前記制御ユニットが、前記さらなる機能ユニットの結果出力を、前記組合せ命令の制御下で前記レジスタ・ファイルをバイパスし、前記組合せ命令の制御下で前記機能ユニットのうちの前記第2機能ユニットのさらなるオペランド入力に送るように構成される、請求項1に記載の命令制御式データ処理装置。
- 同じ命令サイクル内で発行される、前記さらなる機能ユニット用のコマンドと、前記機能ユニット・グループ用の前記組合せ命令とを含むVLIW命令を含むプログラムが組み込まれる、請求項5に記載の命令制御式データ処理装置。
- 前記制御ユニットが、前記機能ユニットのうちの前記第1機能ユニットが前記組合せ命令に応答する命令実行サイクルに続く命令実行サイクルで、前記機能ユニットのうちの前記第2機能ユニットに、前記組合せ命令に応答させるように構成される、請求項1に記載の命令制御式データ処理装置。
- 前記機能ユニットのうちの前記第1機能ユニットの結果が、中間でラッチされずに、前記機能ユニットのうちの前記第1機能ユニットから、前記機能ユニットのうちの前記第2機能ユニットの前記オペランド入力に送られる、請求項7に記載の命令制御式データ処理装置。
- 機能ユニット・グループを用意すること、
連続した命令を前記グループに発行すること、
前記命令のうちの第1タイプの命令を、それぞれ個々の前記機能ユニットで実行すること、
第2タイプの命令を、連続した前記機能ユニットの第1および第2機能ユニットで実行すること、および
前記第2タイプの前記命令に応答して、前記機能ユニットのうちの第1機能ユニットの結果を、前記機能ユニットのうちの第2機能ユニットのオペランドに送ることを含む、処理タスクを実行する方法。 - 前記機能ユニットのうちの前記第1および前記第2機能ユニットが、同じ命令実行サイクル内で前記第2タイプの前記命令に応答する方法であって、
第1の速度が、前記機能ユニットのうちの少なくとも2つのカスケードによる組合せ命令の実行が前記第1の速度における命令サイクル内に収まるほど遅く、第2の速度が、前記機能ユニットのうちの1つの機能ユニットによる命令の実行しか前記第2の速度における前記命令実行サイクル内に収まらないほど速く、前記組合せ命令の実行が、前記第2の速度における1命令実行サイクル内に収まらないように、少なくとも前記第1および前記第2の速度から命令サイクル速度を選択すること、および
前記処理タスクを実行するために使用される前記命令を、前記タスクが前記第1の速度で実行されるときは、前記組合せ命令が使用され、前記タスクが前記第2の速度で実行されるときは、前記組合せ命令が、対応する効果を有する前記第1タイプの命令によって置き換えられるように、前記選択された命令サイクル速度に適合させることを含む、請求項9に記載の方法。 - それぞれのさらなる機能ユニット用の複数の命令を含む、VLIW命令語の一部である、前記連続した命令を発行すること、
前記第2タイプの前記命令を含む前記命令語中に、前記さらなる機能ユニットのうちのある特定の機能ユニット用のさらなる命令を含むこと、および
前記第2タイプの前記命令に応答して、前記さらなる機能ユニットのうちの前記特定の機能ユニットからの前記さらなる命令のさらなる結果を、前記機能ユニットのうちの前記第2機能ユニットのさらなるオペランド入力に送ることを含む、請求項9に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03101877 | 2003-06-25 | ||
PCT/IB2004/050964 WO2004114128A2 (en) | 2003-06-25 | 2004-06-22 | Instruction controlled data processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007519052A true JP2007519052A (ja) | 2007-07-12 |
Family
ID=33522407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006516736A Withdrawn JP2007519052A (ja) | 2003-06-25 | 2004-06-22 | 命令制御式データ処理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7861062B2 (ja) |
EP (1) | EP1658559B1 (ja) |
JP (1) | JP2007519052A (ja) |
CN (1) | CN1809810B (ja) |
AT (1) | ATE554443T1 (ja) |
WO (1) | WO2004114128A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164659A (ja) * | 2013-02-27 | 2014-09-08 | Renesas Electronics Corp | プロセッサ |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
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 |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US20060155843A1 (en) * | 2004-12-30 | 2006-07-13 | Glass Richard J | Information transportation scheme from high functionality probe to logic analyzer |
US7903560B2 (en) * | 2004-12-30 | 2011-03-08 | Intel Corporation | Correlation technique for determining relative times of arrival/departure of core input/output packets within a multiple link-based computing system |
EP1849095B1 (en) | 2005-02-07 | 2013-01-02 | Richter, Thomas | Low latency massive parallel data processing device |
US7668193B2 (en) | 2005-09-02 | 2010-02-23 | Stmicroelectronics S.R.L. | Data processor unit for high-throughput wireless communications |
CN103646009B (zh) | 2006-04-12 | 2016-08-17 | 索夫特机械公司 | 对载明并行和依赖运算的指令矩阵进行处理的装置和方法 |
CN101627365B (zh) | 2006-11-14 | 2017-03-29 | 索夫特机械公司 | 多线程架构 |
US7818550B2 (en) * | 2007-07-23 | 2010-10-19 | International Business Machines Corporation | Method and apparatus for dynamically fusing instructions at execution time in a processor of an information handling system |
JP2009048264A (ja) * | 2007-08-14 | 2009-03-05 | Oki Electric Ind Co Ltd | 半導体集積回路装置 |
EP2366144B1 (en) | 2008-10-15 | 2015-09-30 | Hyperion Core, Inc. | Sequential processor comprising an alu array |
CN103250131B (zh) | 2010-09-17 | 2015-12-16 | 索夫特机械公司 | 包括用于早期远分支预测的影子缓存的单周期多分支预测 |
WO2012135050A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN103547993B (zh) | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
TWI518504B (zh) | 2011-03-25 | 2016-01-21 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的暫存器檔案節段 |
CN103649931B (zh) | 2011-05-20 | 2016-10-12 | 索夫特机械公司 | 用于支持由多个引擎执行指令序列的互连结构 |
TWI603198B (zh) | 2011-05-20 | 2017-10-21 | 英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
EP2783281B1 (en) | 2011-11-22 | 2020-05-13 | Intel Corporation | A microprocessor accelerated code optimizer |
WO2013077875A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | An accelerated code optimizer for a multiengine microprocessor |
EP2775395B1 (en) | 2013-03-07 | 2020-11-25 | Nxp B.V. | Integrated circuit, electronic device and instruction scheduling method |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
KR101708591B1 (ko) | 2013-03-15 | 2017-02-20 | 소프트 머신즈, 인크. | 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법 |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US20150234449A1 (en) * | 2014-02-14 | 2015-08-20 | Qualcomm Incorporated | Fast power gating of vector processors |
CN104735824B (zh) * | 2015-02-28 | 2018-03-13 | 华为技术有限公司 | 数据处理系统 |
CN105701041B (zh) * | 2016-01-11 | 2018-09-28 | 福州瑞芯微电子股份有限公司 | 芯片自适应调节读数时序路径的方法和装置 |
CN105677593B (zh) * | 2016-01-11 | 2018-09-28 | 福州瑞芯微电子股份有限公司 | 芯片存储器写操作时序路径自适应调节方法及装置 |
CN105752077B (zh) * | 2016-02-25 | 2018-03-06 | 上海科梁信息工程股份有限公司 | 混合动力车辆的扭矩分配方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5829031A (en) * | 1996-02-23 | 1998-10-27 | Advanced Micro Devices, Inc. | Microprocessor configured to detect a group of instructions and to perform a specific function upon detection |
WO1998006030A1 (en) * | 1996-08-07 | 1998-02-12 | Sun Microsystems | Multifunctional execution unit |
US6256745B1 (en) * | 1998-06-05 | 2001-07-03 | Intel Corporation | Processor having execution core sections operating at different clock rates |
US6367003B1 (en) * | 1998-03-04 | 2002-04-02 | Micron Technology, Inc. | Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method |
US6418527B1 (en) * | 1998-10-13 | 2002-07-09 | Motorola, Inc. | Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods |
US6442701B1 (en) * | 1998-11-25 | 2002-08-27 | Texas Instruments Incorporated | Power saving by disabling memory block access for aligned NOP slots during fetch of multiple instruction words |
US6289465B1 (en) * | 1999-01-11 | 2001-09-11 | International Business Machines Corporation | System and method for power optimization in parallel units |
CN1146785C (zh) | 1999-03-31 | 2004-04-21 | 皇家菲利浦电子有限公司 | 并行数据处理 |
US6606700B1 (en) * | 2000-02-26 | 2003-08-12 | Qualcomm, Incorporated | DSP with dual-mac processor and dual-mac coprocessor |
US20040225868A1 (en) * | 2003-05-07 | 2004-11-11 | International Business Machines Corporation | An integrated circuit having parallel execution units with differing execution latencies |
-
2004
- 2004-06-22 CN CN2004800176588A patent/CN1809810B/zh not_active Expired - Lifetime
- 2004-06-22 US US10/561,454 patent/US7861062B2/en active Active
- 2004-06-22 JP JP2006516736A patent/JP2007519052A/ja not_active Withdrawn
- 2004-06-22 EP EP04744376A patent/EP1658559B1/en not_active Expired - Lifetime
- 2004-06-22 AT AT04744376T patent/ATE554443T1/de active
- 2004-06-22 WO PCT/IB2004/050964 patent/WO2004114128A2/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164659A (ja) * | 2013-02-27 | 2014-09-08 | Renesas Electronics Corp | プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
WO2004114128A2 (en) | 2004-12-29 |
US7861062B2 (en) | 2010-12-28 |
CN1809810B (zh) | 2010-06-09 |
WO2004114128A3 (en) | 2006-03-09 |
EP1658559A2 (en) | 2006-05-24 |
ATE554443T1 (de) | 2012-05-15 |
CN1809810A (zh) | 2006-07-26 |
US20080133880A1 (en) | 2008-06-05 |
EP1658559B1 (en) | 2012-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007519052A (ja) | 命令制御式データ処理装置 | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
CN102197369B (zh) | 用于执行simd乘法-累积运算的装置及方法 | |
JP3656587B2 (ja) | 並列演算プロセッサ、その演算制御方法及びプログラム | |
CN109144469B (zh) | 流水线结构神经网络矩阵运算架构及方法 | |
JP2003005958A (ja) | データ処理装置およびその制御方法 | |
KR20010078508A (ko) | 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치 | |
US6167529A (en) | Instruction dependent clock scheme | |
JPH07253888A (ja) | データ処理装置 | |
JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
US6981130B2 (en) | Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel | |
US7240082B2 (en) | Method for processing efficiency in a pipeline architecture | |
US6594815B2 (en) | Asynchronous controller generation method | |
JP3241043B2 (ja) | 積和演算装置 | |
JP2584156B2 (ja) | プログラム制御型プロセッサ | |
KR100639146B1 (ko) | 카테시안 제어기를 갖는 데이터 처리 시스템 | |
JP2006293741A (ja) | プロセッサ | |
JP2006502489A (ja) | 並行処理する機能ユニットを有するデータ処理装置 | |
WO2000008555A1 (en) | Data processing device | |
JP2503966B2 (ja) | 情報処理装置 | |
JPH09101889A (ja) | パイプライン演算装置 | |
JP2861234B2 (ja) | 命令処理装置 | |
JP3743155B2 (ja) | パイプライン制御型計算機 | |
KR20210096051A (ko) | 연속적인 데이터 병렬처리가 가능한 병렬 처리장치 | |
JPH04116726A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070511 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070619 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20080109 |