JP5834997B2 - ベクトルプロセッサ、ベクトルプロセッサの処理方法 - Google Patents
ベクトルプロセッサ、ベクトルプロセッサの処理方法 Download PDFInfo
- Publication number
- JP5834997B2 JP5834997B2 JP2012037825A JP2012037825A JP5834997B2 JP 5834997 B2 JP5834997 B2 JP 5834997B2 JP 2012037825 A JP2012037825 A JP 2012037825A JP 2012037825 A JP2012037825 A JP 2012037825A JP 5834997 B2 JP5834997 B2 JP 5834997B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- element data
- processing
- divided
- issued
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000005192 partition Methods 0.000 claims description 3
- 238000004148 unit process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 45
- 238000000034 method Methods 0.000 description 27
- 238000003491 array Methods 0.000 description 11
- 230000003111 delayed effect Effects 0.000 description 9
- 230000001934 delay Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000008707 rearrangement Effects 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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
-
- 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, 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3873—Variable length pipelines, e.g. elastic pipeline
-
- 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Description
図1は、本実施形態が適用されるベクトルプロセッサ1の構成を説明する例図である。ベクトルプロセッサは1、1つの命令に基づいて所定の配列をなす要素データの演算処理を行う。同図のベクトルプロセッサ1は、命令メモリ2、命令フェッチ部3、デコード発行部4、複数の演算ユニットU0〜U3、ベクトルレジスタ5、スカラレジスタ6を有する。ベクトルプロセッサ1は、たとえば、信号処理用LSI(Large Scale Integrated circuit)である。
図2は、ベクトルプロセッサ1で処理される命令の一例を説明する図である。ベクトルプロセッサ1で処理される命令は、例えば、要素データ列同士の演算を、同じ列単位に行う命令である。同図に例示する命令C1「vadd vr1, vr2, vr0」は、配列数VL32の要素データ列vr1と要素データ列vr2とを同列同士で加算した結果を、要素データ列vr0の各要素データとして出力し、ベクトルレジスタ5に格納する命令である。
続いて、図1のベクトルプロセッサのように、複数の演算ユニットU0〜U3を有するベクトルプロセッサにおける各演算パイプラインP0〜P3の命令の処理シーケンスについて説明する。
命令の要素データのビット幅は、例えば、命令によって、8ビット(Byte型)、16ビット(Halfword型)、32ビット(Word型)、64ビット(Doubleword型)等のように設定される。以下、要素データが8ビットの命令をByte命令、16ビットの命令をHalfword命令、32ビットの命令をWord命令、64ビットの命令をDoubleword命令と称する。このように、命令によって要素データαのビット幅が異なる場合、命令の各要素データαの処理に用いられる演算器U0−1〜U0−8の数が異なることにより、演算パイプラインのEXステージに要する処理サイクル数も異なる。以下、Halfword命令とWord命令の例に基づいて説明する。
図5は、1つの演算パイプラインのEXステージにおけるHalfword命令のサイクル毎の要素データを説明する例図である。この例におけるHalfword命令は、例えば、図2の命令C1「vadd vr1, vr2, vr0」であり、要素データ列vr1、vr2の加算結果を要素データ列vr0に出力する命令である。また、要素データ列vr0〜vr2の各要素データαのビット幅は16ビットである。また、この例において、命令の演算処理は、図4に示した演算ユニットU0で行われることを前提とする。
図6は、1つの演算パイプラインのEXステージにおけるWord命令の処理サイクル毎の要素データを説明する例図である。この例におけるWord命令は、例えば、命令「vadd vr2, vr4, vr0」であり、要素データ列vr2、vr4の加算結果を要素データ列vr0に出力する命令である。また、要素データ列vr0、vr2、vr4の各要素データαのビット幅は32ビットである。また、この例においても、命令の演算処理は、図4に示した演算ユニットU0で行われることを前提とする。
図7は、ベクトルレジスタ8に格納されたHalfword命令とWord命令の各要素データ列について説明する図である。図5−1´は、図5−1を拡大した図である。図7において、VRxxが記される各マスはレジスタを、VRxxのxxはベクトルレジスタ8におけるアドレスを示す。なお、この例において、演算器U0−1〜U0−8の処理ビット数が16ビットであることから、各レジスタのビット幅は16ビットである。また、vrxxが記されるレジスタの領域は、命令の要素データ列が格納される単位ベクトルレジスタを示す。
データハザードとは、パイプラインハザードの一種である。パイプラインハザードとは、パイプライン処理を行う場合において、複数の命令同士が持つ依存関係から後続の命令の発行を遅延せざるを得ない状況を示す。データハザードとは、パイプラインハザードのうち、処理するデータの依存関係に起因して発生するハザードを示す。
図8は、Word命令の後にHalfword命令を連続して処理する場合であって、データハザードが発生する場合における各演算パイプラインP0〜P3の処理シーケンスを表す例図である。同図上の処理シーケンス図Z2−1はRAWハザード、同図下の処理シーケンス図Z2−2はWARハザードが発生する場合のEXステージにおける処理シーケンス図である。
図9は、図8のWord命令の分割による後続のHalfWord命令の処理シーケンスについて説明する例図である。同図の処理シーケンス図Z3−1は図8の処理シーケンス図Z2−1に、処理シーケンス図Z3−2は図8の処理シーケンス図Z2−2に対応する。
図1で前述したように、本実施の形態例におけるベクトルプロセッサ1は複数の演算ユニットU0〜U3を有するが、一部の演算ユニット(以下、特定演算ユニット)U3は、通常の演算に加えて、除算演算等の特定の演算処理を行う。このため、除算命令は特定演算ユニットU3に対応する演算パイプライン(特定演算パイプライン)P3によって、処理される必要がある。しかしながら、Word命令が分割された複数の分割Word命令がそれぞれ演算パイプラインで処理されることにより、特定演算パイプラインP3が使用されることがある。このとき、Word命令の後続に除算命令がある場合、特定演算パイプラインP3が空き状態になるまで除算命令の発行が遅延され、処理のスループットが低下する。具体例に基づいて説明する。
そこで、本実施の形態例におけるベクトルプロセッサ1は、発行対象の命令の要素データが分割された複数の分割命令が特定の演算パイプラインを占有するとき、発行対象の命令に後続する命令に除算演算等の特定の演算パイプラインでのみ処理される特定命令がある場合は発行対象の命令を分割せずに発行する。一方、発行対象の命令に後続する特定命令がない場合、ベクトルプロセッサ1は、発行対象の命令を分割した複数の分割命令を発行する。
図10の処理シーケンス図Z4−2は、命令3を分割しない場合の処理シーケンス図の一例である。本実施の形態例におけるベクトルプロセッサ1は、分割対象の命令3の後続に特定パイプラインP3でのみ処理可能な命令4があり、命令3の分割命令が特定演算パイプラインP3を占有する場合、命令3の分割を行わない。これにより、命令3が1つの演算パイプラインP2で処理され、命令4は特定演算パイプラインP3で4サイクル目から処理可能となる。また、命令5は、命令3の配列後半の要素データとの依存関係に基づいて、8サイクル目から処理が開始される。
図11は、命令の要素データ列の処理順の変更による処理シーケンスを説明する例図である。図Z5−1は、命令3の要素データ列の処理順を変更しない場合、図Z5−2は、命令3の要素データ列の処理順を変更する場合における処理シーケンス図である。図11のベクトルレジスタ5−5は、命令3の配列番号1〜32の演算結果が格納される単位ベクトルレジスタ(VR0〜VR63)を示す。レジスタVR0〜VR63のうち、レジスタVR32〜VR62(vrA)には、命令5で処理対象となる要素データが格納される。
図12は、本実施の形態例のベクトルプロセッサ1におけるデコード発行部4の命令発行制御部10の構成を示す例図である。命令発行制御部10は、例えば、命令データサイズ判定部11、後続命令特定PL使用判定部12、命令分割部13、後続命令データ依存判定部14、ベクトル命令順序並び替え部15、ベクトル命令順序記憶部16、分割命令接続部17、命令発行可否判定部18、命令バッファ19を有する。
図13は、デコード発行部4の命令発行制御部10の処理の詳細を説明するフローチャート図である。命令発行制御部10の命令データサイズ判定部11は、まず、命令フェッチ部3から取得した命令の要素データのビット幅を判定する。具体的に、命令データサイズ判定部11は、要素データのビット幅が演算器の処理ビット数と同一であるか否かを判定する(S11)。同一である場合(S11のYES)、命令の変更は行われない。これは、例えば、図4のように、演算器が16ビット演算器の例において、Halfword命令の場合を示す。
演算器の処理ビット数が8ビットであるベクトルプロセッサは、例えば、要素データのビット幅が16ビットのHalfword命令、32ビットのWord命令、64ビットDoubleWord命令に加えて、8ビットのByte命令を処理対象とする。また、この例において、6つの演算パイプラインP0〜P5で処理が行われるものとする。また、演算パイプラインP5は、特定の演算命令を処理する特定演算パイプラインP5である。また、前述したとおり、配列数VLは64に設定される。この場合における命令の分割の判定、及び、要素データ列の処理順の変更について、具体例に基づいて説明する。
図15は、第2の実施の形態例における命令の分割の有無による処理シーケンスを説明する例図である。処理シーケンス図Z6−1は命令分割を行う場合、処理シーケンス図Z6−2は命令分割を行わない場合における処理シーケンス図の一例である。同図において、マス目内の数字11〜16は命令11〜命令16を示し、各命令は、命令11から命令16にかけて順に処理される。また、命令13はWord命令、その他の命令11〜12、14〜16はByte命令である。また、命令14は除算命令であり、演算パイプラインP5でのみ処理可能である。
図16は、第2の実施の形態例における命令の要素データ列の処理順の変更による処理シーケンス図を説明する例図である。図Z7−1は、命令13の要素データ列の処理順を変更しない場合、図Z7−2は、命令13の要素データ列の処理順を変更する場合における処理シーケンス図である。処理シーケンス図Z7−1において、命令13は、配列番号(1〜64)の小さい要素データ列から順に処理される。このため、命令15の処理は、12サイクル目から開始可能となる。
要素データ列の演算を行う命令をメモリから取得する命令フェッチ手段と、
前記取得された命令を復号し当該復号された命令をサイクル単位に発行するデコード発行手段と、
前記発行された命令をそれぞれ処理する演算ユニットを複数有する演算手段と、
前記要素データ列が連続するアドレスに格納されるレジスタとを有し、
前記複数の演算ユニットは、第1種命令を処理する第1の演算ユニットと、第1種命令に加えて第2種命令を処理する第2の演算ユニットとを有し、
前記デコード発行手段は、発行対象の命令の要素データが分割された複数の分割命令が前記第2の演算ユニットで処理されるとき、発行対象の命令に後続する命令に前記第2種命令がない場合に前記分割命令を発行し、前記第2種命令がある場合は前記発行対象の命令を分割せずに発行するベクトルプロセッサ。
付記1において、
前記演算ユニットは1つまたは複数の演算器をそれぞれ有し、
前記第1、2種命令は、さらに、要素データ列を構成する各要素データが第1ビット幅であってそれぞれM(M≧1)個の演算器によって処理される第1ビット幅命令と、前記各要素データが第1ビット幅のN(N≧2)倍であってそれぞれM×N個の演算器によって処理される第2ビット幅命令とを有し、
前記発行対象の前記第2ビット幅命令に後続する命令に、当該第2ビット幅命令の要素データ列がN個に区分された第1区分要素データ列とその後に処理される第2区分要素データ列のうち、前記第2区分要素データ列と依存関係がある前記第1ビット幅命令がある場合に、前記複数の分割命令は、前記第1、2区分要素データ列を処理対象とする前記N個の命令として分割されるベクトルプロセッサ。
付記2において、
前記デコード発行手段は、前記発行対象の命令を分割しないとき、前記発行対象の第2ビット幅命令の前記第2区分要素データ列が優先して処理されるように前記要素データ列の処理順を変更して第2ビット幅命令を発行するベクトルプロセッサ。
付記1乃至3のいずれかにおいて、
前記発行対象の命令に後続する命令には、多くとも前記複数の分割命令の処理が終了する前に発行される命令が含まれるベクトルプロセッサ。
付記2乃至4のいずれかにおいて、
前記発行対象の第2ビット幅命令に後続する命令には、多くとも前記発行対象の第2ビット幅命令の処理が終了する前に発行される命令が含まれるベクトルプロセッサ。
要素データ列の演算を行う命令をメモリから取得する命令フェッチ工程と、
前記取得された命令を復号し当該復号された命令をサイクル単位に発行するデコード発行工程と、を有し、
前記発行された命令は演算ユニットによってそれぞれ処理され、複数の前記演算ユニットのうち第1の演算ユニットは第1種命令を処理し、第2の演算ユニットは第1種命令に加えて第2種命令を処理し、前記要素データ列はレジスタの連続するアドレスに格納され、
前記デコード発行工程は、発行対象の命令の要素データが分割された複数の分割命令が前記第2の演算ユニットで処理されるとき、発行対象の命令に後続する命令に前記第2種命令がない場合に前記分割命令を発行し、前記第2種命令がある場合は前記発行対象の命令を分割せずに発行するベクトルプロセッサの処理方法。
Claims (6)
- 要素データ列の演算を行う命令をメモリから取得する命令フェッチ手段と、
前記取得された命令を復号し当該復号された命令をサイクル単位に発行するデコード発行手段と、
前記発行された命令をそれぞれ処理する複数の演算ユニットを有する演算手段と、
前記要素データ列が連続するアドレスに格納されるレジスタとを有し、
前記複数の演算ユニットは、第1種命令を処理する第1の演算ユニットと、前記第1種命令に加えて第2種命令を処理する第2の演算ユニットとを有し、
前記デコード発行手段は、発行対象の命令の要素データが分割された複数の分割命令が前記第2の演算ユニットで処理されるとき、前記発行対象の命令に後続する命令に前記第2種命令がない場合に前記分割命令を発行し、前記第2種命令がある場合は前記発行対象の命令を分割せずに発行するベクトルプロセッサ。 - 請求項1において、
前記演算ユニットは1つまたは複数の演算器をそれぞれ有し、
前記第1、2種命令は、さらに、前記要素データ列を構成する各要素データが第1ビット幅であってそれぞれM(M≧1)個の演算器によって処理される第1ビット幅命令と、前記各要素データが前記第1ビット幅のN(N≧2)倍であってそれぞれM×N個の演算器によって処理される第2ビット幅命令とを有し、
前記発行対象の前記第2ビット幅命令に後続する命令に、当該第2ビット幅命令の要素データ列がN個に区分された第1区分要素データ列とその後に処理される第2区分要素データ列のうち、前記第2区分要素データ列を処理対象とする前記第1ビット幅命令がある場合に、前記複数の分割命令は、前記第1、2区分要素データ列を処理対象とする前記N個の命令として分割されるベクトルプロセッサ。 - 請求項2において、
前記デコード発行手段は、前記発行対象の命令を分割しないとき、前記発行対象の第2ビット幅命令の前記第2区分要素データ列が優先して処理されるように前記要素データ列の処理順を変更して前記第2ビット幅命令を発行するベクトルプロセッサ。 - 請求項1乃至3のいずれかにおいて、
前記発行対象の命令に後続する命令は、前記複数の分割命令の処理が終了する前に発行される命令であるベクトルプロセッサ。 - 請求項2乃至4のいずれかにおいて、
前記発行対象の第2ビット幅命令に後続する命令は、前記発行対象の第2ビット幅命令の処理が終了する前に発行される命令であるベクトルプロセッサ。 - 要素データ列の演算を行う命令をメモリから取得する命令フェッチ工程と、
前記取得された命令を復号し当該復号された命令をサイクル単位に発行するデコード発行工程と、を有し、
前記発行された命令は複数の演算ユニットによってそれぞれ処理され、前記複数の演算ユニットのうち第1の演算ユニットは第1種命令を処理し、第2の演算ユニットは前記第1種命令に加えて第2種命令を処理し、前記要素データ列はレジスタの連続するアドレスに格納され、
前記デコード発行工程は、発行対象の命令の要素データが分割された複数の分割命令が前記第2の演算ユニットで処理されるとき、前記発行対象の命令に後続する命令に前記第2種命令がない場合に前記分割命令を発行し、前記第2種命令がある場合は前記発行対象の命令を分割せずに発行するベクトルプロセッサの処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012037825A JP5834997B2 (ja) | 2012-02-23 | 2012-02-23 | ベクトルプロセッサ、ベクトルプロセッサの処理方法 |
US13/733,524 US9262165B2 (en) | 2012-02-23 | 2013-01-03 | Vector processor and vector processor processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012037825A JP5834997B2 (ja) | 2012-02-23 | 2012-02-23 | ベクトルプロセッサ、ベクトルプロセッサの処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013174961A JP2013174961A (ja) | 2013-09-05 |
JP5834997B2 true JP5834997B2 (ja) | 2015-12-24 |
Family
ID=49158805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012037825A Expired - Fee Related JP5834997B2 (ja) | 2012-02-23 | 2012-02-23 | ベクトルプロセッサ、ベクトルプロセッサの処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9262165B2 (ja) |
JP (1) | JP5834997B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150002319A (ko) * | 2013-06-28 | 2015-01-07 | 삼성전자주식회사 | 비대칭형 클러스터 구조의 프로세서 |
US10192162B2 (en) * | 2015-05-21 | 2019-01-29 | Google Llc | Vector computation unit in a neural network processor |
EP3349670B1 (en) | 2015-09-18 | 2020-09-09 | Microvention, Inc. | Releasable delivery system |
CN107315564B (zh) * | 2016-04-26 | 2020-07-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量超越函数运算的装置和方法 |
US10489479B1 (en) | 2016-09-12 | 2019-11-26 | Habana Labs Ltd. | Matrix multiplication engine |
KR102343652B1 (ko) * | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
US10713214B1 (en) | 2017-09-27 | 2020-07-14 | Habana Labs Ltd. | Hardware accelerator for outer-product matrix multiplication |
US10853070B1 (en) | 2017-10-23 | 2020-12-01 | Habana Labs Ltd. | Processor suspension buffer and instruction queue |
US11321092B1 (en) | 2017-11-08 | 2022-05-03 | Habana Labs Ltd. | Tensor-based memory access |
US10915297B1 (en) | 2017-11-15 | 2021-02-09 | Habana Labs Ltd. | Hardware accelerator for systolic matrix multiplication |
KR102080161B1 (ko) * | 2018-02-01 | 2020-02-21 | 사회복지법인 삼성생명공익재단 | 개인 맞춤형 의료를 위한 유전자 패널, 그를 구성하는 방법, 및 그를 이용한 개인 맞춤형 치료 방법 |
CN108388446A (zh) * | 2018-02-05 | 2018-08-10 | 上海寒武纪信息科技有限公司 | 运算模块以及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2544770B2 (ja) | 1988-03-04 | 1996-10-16 | 日本電気株式会社 | ベクトル演算命令発行制御方式 |
US5396634A (en) * | 1992-09-30 | 1995-03-07 | Intel Corporation | Method and apparatus for increasing the decoding speed of a microprocessor |
US6272257B1 (en) * | 1997-04-30 | 2001-08-07 | Canon Kabushiki Kaisha | Decoder of variable length codes |
US6542982B2 (en) * | 2000-02-24 | 2003-04-01 | Hitachi, Ltd. | Data processer and data processing system |
US20080313438A1 (en) * | 2007-06-14 | 2008-12-18 | David Arnold Luick | Unified Cascaded Delayed Execution Pipeline for Fixed and Floating Point Instructions |
JP4985452B2 (ja) | 2008-02-14 | 2012-07-25 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置 |
-
2012
- 2012-02-23 JP JP2012037825A patent/JP5834997B2/ja not_active Expired - Fee Related
-
2013
- 2013-01-03 US US13/733,524 patent/US9262165B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013174961A (ja) | 2013-09-05 |
US20130246745A1 (en) | 2013-09-19 |
US9262165B2 (en) | 2016-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5834997B2 (ja) | ベクトルプロセッサ、ベクトルプロセッサの処理方法 | |
US10776127B2 (en) | Reducing data hazards in pipelined processors to provide high processor utilization | |
US7376812B1 (en) | Vector co-processor for configurable and extensible processor architecture | |
JP5699554B2 (ja) | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム | |
JP2002333978A (ja) | Vliw型プロセッサ | |
JP5209933B2 (ja) | データ処理装置 | |
WO2010087144A1 (ja) | 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法 | |
CN109416633B (zh) | 用于执行重新排列操作的设备及方法 | |
JP2011090592A (ja) | 情報処理装置とその命令デコーダ | |
GB2540940A (en) | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank | |
JPH06242953A (ja) | データ・プロセッサ | |
US20240004663A1 (en) | Processing device with vector transformation execution | |
CN112074810B (zh) | 并行处理设备 | |
KR101715456B1 (ko) | 스레드 오프셋 카운터 | |
CN110914801A (zh) | 在数据处理设备中的向量交叉 | |
US9934036B2 (en) | Compiler method, parallel processing method, and compiler apparatus | |
JP5659772B2 (ja) | 演算処理装置 | |
CN109416634B (zh) | 数据处理设备和用于制造该设备的方法 | |
JP5786719B2 (ja) | ベクトルプロセッサ | |
US20030191928A1 (en) | Multi-way select instructions using accumulated condition codes | |
JPS63293638A (ja) | データ処理装置 | |
JP4151497B2 (ja) | パイプライン処理装置 | |
JPH0769805B2 (ja) | データ処理装置 | |
JP2007079711A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141030 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150508 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150519 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20150610 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150716 |
|
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: 20151006 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5834997 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |