JP2014215624A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2014215624A
JP2014215624A JP2013089479A JP2013089479A JP2014215624A JP 2014215624 A JP2014215624 A JP 2014215624A JP 2013089479 A JP2013089479 A JP 2013089479A JP 2013089479 A JP2013089479 A JP 2013089479A JP 2014215624 A JP2014215624 A JP 2014215624A
Authority
JP
Japan
Prior art keywords
instruction
unit
stream
arithmetic processing
register
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
Application number
JP2013089479A
Other languages
English (en)
Other versions
JP6094356B2 (ja
Inventor
和浩 吉村
Kazuhiro Yoshimura
和浩 吉村
毅 葛
Ge Yi
毅 葛
一生 堀尾
Kazuo Horio
一生 堀尾
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013089479A priority Critical patent/JP6094356B2/ja
Priority to US14/186,095 priority patent/US9501282B2/en
Priority to CN201410100282.2A priority patent/CN104111817B/zh
Publication of JP2014215624A publication Critical patent/JP2014215624A/ja
Application granted granted Critical
Publication of JP6094356B2 publication Critical patent/JP6094356B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/3824Operand accessing
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

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

Abstract

【課題】サイクルオーバヘッドを低減して処理を高速化することができる演算処理装置の提供を図る。【解決手段】演算を実行する演算器15、および、ストリーム処理を実行するストリームエンジン2を含み、前記演算器15のデータパスと前記ストリームエンジン2のデータパスを密結合する。【選択図】図2

Description

本明細書で言及する実施例は、演算処理装置に関する。
近年、スマートフォンやタブレットコンピュータといった携帯端末の通信量の増大に伴って、より高速な無線通信方式が注目されている。このような高速無線通信方式として、例えば、LTE(Long Term Evolution)が普及されてきており、さらに高性能な次世代移動通信システムのLTEアドバンスト(LTE-Advanced)も標準化が完了し、実用化に向けて様々な提案がなされている。
ところで、例えば、LTEアドバンストを適用する場合、無線通信ベースバンド処理として、膨大な行列演算処理を行うことになる。これは、LTEアドバンストに限ったことではなく、WiMAX2(Worldwide Interoperability for Microwave Access 2)や現在使用されている方式を含めて様々な無線通信方式(規格)でも同様である。
一般的に、無線通信ベースバンド処理において、通信速度の向上に比例して膨大な行列演算を行うことになるが、例えば、上述したLTEアドバンストでは、行列演算が全体の演算量の多くを占めている。
行列演算処理(ストリーム処理のひとつ)を高速に実行するためには、行列データが格納されたメモリと演算器を直列に接続し、メモリから読み出したデータに対して、行列演算を行ない、演算結果をメモリに書き出すストリームエンジンが適している。
そこで、例えば、LTEアドバンストの無線通信ベースバンド処理を行う演算処理装置(演算処理システム)として、汎用プロセッサであるベースプロセッサと、ストリームエンジンを持つコプロセッサを組み合わせたものが提案されている。
ところで、従来、ベースプロセッサと、ストリームエンジンを持つコプロセッサを組み合わせた演算処理システムとしては、様々なものが提案されている。
特開2011−197774号公報 特開平08−069377号公報
前述したように、無線通信ベースバンド処理を行う演算処理システムとして、ベースプロセッサと、ストリームエンジンを持つコプロセッサを組み合わせたものが提案されている。
このような演算処理システムでは、例えば、コプロセッサ命令であるストリーム命令を実行するとき、ベースプロセッサは、ハンドシェイクにより、コプロセッサの状態監視、データ転送および実行制御等を行うため,オーバーヘッドが生じる。このオーバーヘッドは、例えば、通信サイクルオーバヘッドと呼ばれている。
さらに、例えば、コプロセッサのストリームエンジンがストリーム処理を実行中に割り込みが発生した場合、割り込み処理は、ストリーム処理の実行が完了するまで待機して行うことになる。
すなわち、割り込み発生時にコプロセッサがビジー状態の場合、ベースプロプロセッサはコプロセッサがアイドル状態になるまで待機することになり、通信サイクルオーバヘッドはさらに増加してしまう。
一実施形態によれば、演算を実行する演算器、および、ストリーム処理を実行するストリームエンジンを含み、前記演算器のデータパスと前記ストリームエンジンのデータパスを密結合した演算処理装置が提供される。
開示の演算処理装置は、サイクルオーバヘッドを低減して処理を高速化することができるという効果を奏する。
図1は、演算処理装置の一例を示すブロック図である。 図2は、本実例に係る演算処理装置の一例を示すブロック図である。 図3は、本実例の演算処理装置における動作を説明するための図である。 図4は、本実施例の演算処理装置におけるストリームエンジンの停止動作を説明するための図である。 図5は、図4を参照して説明したストリームエンジンの停止動作による効果の一例を説明するための図である。 図6は、本実施例の演算処理装置における読出回路の動作の一例を説明するための図である。 図7は、本実施例の演算処理装置における読出回路の動作の他の例を説明するための図である。 図8は、本実施例の演算処理装置における実行回路の動作の一例を説明するための図である。 図9は、本実施例の演算処理装置における実行回路の動作の他の例を説明するための図である。 図10は、本実施例の演算処理装置における書込回路の動作の一例を説明するための図である。 図11は、本実施例の演算処理装置における書込回路の動作の他の例を説明するための図である。 図12は、本実施例の演算処理装置におけるパラメータ情報の一例を説明するための図である。 図13は、本実施例の演算処理装置におけるステップ命令を説明するための図(その1)である。 図14は、本実施例の演算処理装置におけるステップ命令を説明するための図(その2)である。 図15は、本実施例の演算処理装置におけるステップ命令の変形を説明するための図である。 図16は、本実施例の演算処理装置におけるマイクロ命令を説明するための図(その1)である。 図17は、本実施例の演算処理装置におけるマイクロ命令を説明するための図(その2)である。 図18は、本実施例の演算処理装置におけるマイクロ命令によるアクセス制御を説明するための図である。 図19は、本実施例の演算処理装置におけるマイクロ命令をVLIW命令に埋め込む様子を示す図である。 図20は、図19に示すVLIW命令のプロローグ処理を説明するための図である。 図21は、図19に示すVLIW命令のエピローグ処理を説明するための図である。
まず、演算処理装置の実施例を詳述する前に、図1を参照して、演算処理装置の一例およびその問題点を説明する。
図1は、演算処理装置の一例を示すブロック図であり、汎用プロセッサであるベースプロセッサと、ストリームエンジンを持つコプロセッサを組み合わせた演算処理装置(演算処理システム)を示すものである。
図1において、参照符号IFは命令読出(Instruction Fetch)ステージ、IDは命令解釈(Instruction Decode)ステージ、そして、RR/IIはレジスタ読出(Register Read)および命令発行(Instruction Issue)ステージを示す。
また、参照符号EXは実行(EXecution)ステージ、MAはメモリアクセス(Memory Access)ステージ、そして、RWはレジスタ書込(Register Write)ステージを示す。図1に示す演算処理システムは、例えば、汎用プロセッサであるベースプロセッサ100と、ストリームエンジン200を含むコプロセッサ300を有する。
ベースプロセッサ100において、IFステージでは、命令読出部101が命令メモリ108から命令をフェッチ(読み出)し、また、IDステージでは、命令解釈部102が命令読出部101で読み出されたた命令を受け取ってデコード(解釈)する。
RR/IIステージでは、レジスタ読出部103がレジスタ110のリード(読み出し)を行うと共に、命令発行部104が命令解釈部102で解釈された命令を演算器105へ発行する。
EXステージでは、演算器105が命令発行部104から発行された命令に従った演算を実行し、また、MAステージでは、メモリアクセス部106がメモリ(データメモリ)109に対するロード(読み出し)またはストア(書き込み)のアクセスを行う。
RWステージでは、レジスタ書込部107が演算器105による演算結果、または、データメモリ109からロードされたデータをレジスタ110に書き込む。
ここで、図1の参照符号P100で示されるように、ベースプロセッサ100では、レジスタ−メモリ間またはレジスタ−演算器間の処理を1命令としてパイプライン実行するようになっている。
コプロセッサ300において、IFステージでは、命令読出部301が命令メモリ108から命令を読み出し、また、IDステージでは、命令解釈部302が命令読出部301で読み出された命令を受け取って解釈する。
RR/IIステージでは、レジスタ読出部303がレジスタ310のリードを行うと共に、命令発行部304が命令解釈部302で解釈された命令をストリームエンジン200へ発行する。ここで、ストリームエンジン200は、演算器205、および、データメモリ400に対するロードまたはストアのアクセスを行うメモリアクセス部206を含む。
図1の参照符号P200で示されるように、命令発行部304からストリームエンジン200への命令はストリーム命令であり、1ストリーム命令が発行されると、メモリ−演算器間の1ストリーム処理が完了するまでパイプライン実行するようになっている。
すなわち、EXおよびMAステージでは、ストリームエンジン200における演算器205およびメモリアクセス部206が命令発行部304から発行されたストリーム命令に従ってストリーム処理が完了するまで処理を行う。なお、RWステージでは、レジスタ書込部307がストリームエンジン200によりストリーム処理されたデータ(演算結果)をレジスタ310に書き込む。
ここで、図1において、参照符号P150は、ベースプロセッサ100によるコプロセッサ300の処理を示し、例えば、コプロセッサ300のストリーム命令発行によりコプロセッサ300とハンドシェイクする処理を示す。すなわち、ベースプロセッサ100は、例えば、コプロセッサ300の状態を監視し、コプロセッサ300の実行制御を行い、そして、コプロセッサ300へのデータ転送を制御する。
図1を参照して説明したベースプロセッサ100と、ストリームエンジン200を持つコプロセッサ300を組み合わせた演算処理システムは、ストリームエンジン200によりストリーム処理を実行するとき、サイクルオーバヘッドの問題がある。
すなわち、コプロセッサ命令であるストリーム命令を実行するとき、ベースプロセッサ100は、ハンドシェイクにより、コプロセッサ300の状態を監視し、コプロセッサ300との間のデータ転送を行ない、そして、コプロセッサ300の実行を制御する。
そのため、ベースプロセッサ100とコプロセッサ300の間には、オーバーヘッド(通信サイクルオーバヘッド)が生じる。また、例えば、コプロセッサ300のストリームエンジン200がストリーム処理を実行中に割り込みが発生した場合、そのストリーム処理の実行が完了するまで待機することになり、通信サイクルオーバヘッドはさらに増加する。
以下、本実施例の演算処理装置を、添付図面を参照して詳述する。図2は、本実例に係る演算処理装置の一例を示すブロック図である。図2と上述した図1の比較から明らかなように、図2に示す演算処理装置(プロセッサ)1は、図1におけるベースプロセッサ100に対応する構成を含み、さらに、ストリームエンジン2を内蔵している。
すなわち、図2に示されるように、プロセッサ1は、レジスタ10,命令読出部11,命令解釈部12,レジスタ読出部13,命令発行部14,演算器15,メモリアクセス部16,レジスタ書込部17,命令メモリ18およびデータメモリ19を含む。ここで、命令発行部14は、演算器15に命令を発行するだけでなく、ストリームエンジン2に対しても命令(例えば、ステップ命令)を発行するようになっている。
ストリームエンジン2は、データメモリ4からデータを読み出してレジスタ221,222に書き込むPOP部21、レジスタ221,222に書き込まれたデータに対してストリーム処理を実行してレジスタ24に書き込むEXEC部23を含む。さらに、ストリームエンジン2は、レジスタ24に書き込まれたデータをデータメモリ4に書き込むPUSH部25も含む。
図2において、参照符号IF,ID,RR/II,EX,MAおよびRWは、それぞれ図1を参照して説明したのと同様のステージを示す。
すなわち、IFステージでは、命令読出部11が命令メモリ18から命令をフェッチ(読み出)し、また、IDステージでは、命令解釈部102が命令読出部101でフェッチされた命令を受け取ってデコード(解釈)する。
RR/IIステージでは、レジスタ読出部13がレジスタ10のリード(読み出し)を行うと共に、命令発行部14が命令解釈部12で解釈された命令を演算器15およびストリームエンジン2へ発行する。
EXステージでは、演算器15が命令発行部14から発行された命令に従った演算を実行すると共に、ストリームエンジン2が命令発行部14から発行された命令に従ったストリーム処理を実行する。ここで、命令発行部14からストリームエンジン2への命令は、上述したように、ステップ命令とされている。
MAステージでは、メモリアクセス部16がメモリ(データメモリ)19に対するロードまたはストアのアクセスを行う。さらに、MAステージでは、ストリームエンジン2(POP部21またはPUSH部25)がメモリ(データメモリ)4に対するロード(読み出し)またはストア(書き込み)のアクセスを行う。
RWステージでは、レジスタ書込部17が演算器15による演算結果またはデータメモリ19からロードされたデータをレジスタ10に書き込むと共に、レジスタ書込部17がストリームエンジン2によりストリーム処理されたデータをレジスタ10に書き込む。
図3は、本実例の演算処理装置における動作を説明するための図である。図3の参照符号P1と、前述した図1の参照符号P100の比較から明らかなように、図1におけるベースプロセッサ100の対応個所では、レジスタ−メモリ間またはレジスタ−演算器間の処理を1命令としてパイプライン実行するようになっている。
また、図3の参照符号P21〜P23に示されるように、プロセッサ1に内蔵されたストリームエンジン2では、命令発行部14から発行されたステップ命令に従って、ステップ毎の処理を実行する。
ここで、処理P21は、ストリームエンジン2のPOP部21がデータメモリ4からデータを読み出してレジスタ221,222に書き込む処理である。また、処理P22は、EXEC部23がレジスタ221,222に書き込まれたデータに対してストリーム処理を実行してレジスタ24に書き込む処理である。
さらに、処理P23は、PUSH部25がレジスタ24に書き込まれたデータをデータメモリ4に書き込む処理である。これらの処理P21〜P23は、命令発行部14から発行されたステップ命令に従ってパイプライン実行される。
なお、本明細書では、ストリームエンジン2は、3つの処理P21〜P23を3つのステップ命令で処理(3ステップ命令で1回転)する場合を例として示している。しかしながら、これは単なる例であり、4つ以上の処理で1回転の処理とし、この1回転の処理を多数回繰り返すことでストリーム処理を実行してもよいのはいうまでもない。
図4は、本実施例の演算処理装置におけるストリームエンジンの停止動作を説明するための図である。例えば、プロセッサ1に内蔵されたストリームエンジン2がストリーム処理を実行中に割り込みが発生した場合、命令発行部14がストリームエンジン2に対するステップ命令の発行を停止する。
このように、命令発行部14がストリームエンジン2に対するステップ命令の発行を停止すると、ストリームエンジン2における全ての処理P21〜P23が停止する。すなわち、POP部21は、データメモリ4からデータを読み出してレジスタ221,222に書き込む処理P21を停止する。
また、EXEC部23は、レジスタ221,222に書き込まれたデータに対してストリーム処理を実行してレジスタ24に書き込む処理P22を停止する。そして、PUSH部25は、レジスタ24に書き込まれたデータをデータメモリ19に書き込む処理P23を停止する。
このように、本実施例の演算処理装置は、ストリームエンジン2の動作をステップ命令により細粒度で制御しているため、ストリーム処理中に割り込みが発生した場合には、ストリーム処理を直ちに停止して割り込み処理を行うことができる。
すなわち、本実施例の演算処理装置によれば、例えば、割り込み発生時にステップ命令の発行を止めることにより、ストリームエンジン2を直ちに停止することができる。換言すると、本実施例の演算処理装置によれば、命令発行を止めた後、ストリームエンジン2の各パイプラインステージ(処理P21〜P23)は自律的に停止することができ、サイクルオーバヘッドを低減して処理を高速化することが可能になる。
図5は、図4を参照して説明したストリームエンジンの停止動作による効果の一例を説明するための図であり、図5(a)は、前述した図1に示す演算処理システムによる動作を示し、図5(b)は、図4を参照して説明した演算処理装置による動作を示す。
ここで、前提として、1ストリーム処理のサイクル数(クロックサイクル数)を200サイクル、演算データパスのレイテンシを10サイクル、そして、1ストリーム処理に使用するパラメータ情報のビット幅を320ビットとする。
また、外部−メモリ間のデータ転送はストリーム処理とオーバラップ動作し、データ転送サイクルは隠蔽されているものとする。さらに、図5(a)において、ベースプロセッサ100−コプロセッサ300間のデータパスを32ビットとし、パラメータ情報は、ベースプロセッサ100からコプロセッサ300へ10サイクルで転送されるものとする。
従って、図5(a)では、通信サイクルオーバヘッドは、例えば、10[サイクル](データ転送)+10[サイクル](演算データパス)=20[サイクル]となる。
また、図5(b)において、データパスは密結合されているため、パラメータ情報は1サイクルで転送されるとする。なお、本明細書において、密結合とは、バスレベルで結合された複数のプロセッサが共通のメモリにアクセスするというのではなく、共通の命令発行部14が演算器15およびストリームエンジン2に対して命令を発行して制御することを意味する。
従って、図5(b)では、通信サイクルオーバヘッドは、例えば、1[サイクル](データ転送)+10[サイクル](演算データパス)=11[サイクル]となる。
まず、図5(a)に示されるように、図1に示す演算処理システムにおいて、例えば、3回目のストリーム処理(A2)における50サイクル目で割り込みが発生した場合、その3回目のストリーム処理を全て完了した後に、別のストリーム処理(B0)を実行する。
そのため、演算処理システムでは、別のストリーム処理(B0)を完了するまでに、200+20+200+20+50+150+20+200=860[サイクル]だけ要することになる。
一方、図4を参照して説明した本実施例の演算処理装置(プロセッサ)1において、例えば、3回目のストリーム処理(A2)における50サイクル目で割り込みが発生した場合、直ちにその3回目のストリーム処理を止めて別のストリーム処理(B0)を実行する。
そのため、本実施例のプロセッサ1では、別のストリーム処理(B0)を完了するまでに、200+11+200+11+50+11+200=683[サイクル]だけ要することになる。
すなわち、本実施例のプロセッサ1によれば、同じ処理を行うのに、860[サイクル]から683[サイクル]へ177[サイクル]だけ処理を高速化することが可能なことが分かる。
なお、図5は、単なるストリーム処理の一例を説明するためのもので、例えば、1ストリーム命令による処理サイクル数が多いほど、或いは、ストリーム処理を実行中の割り込み発生頻度が高いほど、より一層高速化の効果が大きくなるのはいうまでもない。
図6は、本実施例の演算処理装置における読出回路の動作の一例を説明するための図であり、図7は、本実施例の演算処理装置における読出回路の動作の他の例を説明するための図である。
図6および図7に示されるように、読出回路210は、POP部21およびレジスタ221,222を含み、データメモリ4は、メモリ部41,42を含む。なお、メモリ部41および42は、例えば、データメモリ4における異なる番地(先頭アドレス)のバンク化されたメモリ領域を示すもので、2つのメモリを持たなくてもよいのはもちろんである。
図6に示されるように、読出回路210において、POP部21は、データメモリ4のメモリ部(第1バンク)41から先頭アドレスおよびストリーム長を指定して第1データを読み出し、レジスタ221に格納する。
さらに、読出回路210において、POP部21は、データメモリ4のメモリ部(第2バンク)42から先頭アドレスおよびストリーム長を指定して第2データを読み出し、レジスタ222に格納する。この読出回路210の処理は、例えば、前述した図3の演算処理装置における処理P21に対応する。
すなわち、POP部21は、データメモリ4からストリームデータを読み出し、ストリーム処理の読出ステージ(POP部21)と実行ステージ(EXEC部23)の間のレジスタ(パイプラインレジスタ)221,222に投入(格納)してパイプライン処理を実行する。
このように、例えば、第1バンク41および第2バンク42にバンク化されたデータメモリ4から、先頭アドレスおよびストリーム長を指定してストリームデータを読み出すことにより、メモリのポート数およびサイクルオーバヘッドを解消することができる。
また、図7に示されるように、例えば、DMA(Direct Memory Access)5により、メモリ部(第1および第2バンク)41,42から読み出されたデータをFIFO(First In First Out)バッファ61,62を介して読出回路210に供給することもできる。すなわち、データメモリ4からのデータ転送をDMA5に任せ、FIFOバッファ61,62から読み出しデータを取り出すこともできる。
図8は、本実施例の演算処理装置における実行回路の動作の一例を説明するための図である。図8に示されるように、実行回路230は、EXEC部23およびレジスタ24を含む。
実行回路230において、EXEC部23は、レジスタ221および222に書き込まれたデータに対してストリーム処理を実行し、その演算結果をレジスタ24に書き込む。この実行回路230の処理は、例えば、前述した図3の演算処理装置における処理P22に対応する。
すなわち、EXEC部23は、レジスタ221および222に投入されたデータに対してストリーム処理を実行し、その演算結果をEXEC部23とPUSH部25の間のレジスタ(パイプラインレジスタ)24に投入してパイプライン処理を実行する。
図9は、本実施例の演算処理装置における実行回路の動作の他の例を説明するための図であり、実行回路230を多段のEXEC部231〜233およびレジスタ241〜243としたものである。
このとき、読出回路210のレジスタは、初段の2つのEXEC部231および232に対応させて、4つのレジスタ221a,221bおよび222a,222bとされている。
また、実行回路230のレジスタも、3つのEXEC部231〜233による演算結果を格納するために3つのレジスタ241〜243とされている。なお、図9に示す実行回路は単なる例であり、様々な構成を適用することができるのはもちろんである。
このように、実行回路230(演算器データパス)は多段構成でもよく、演算結果を毎サイクルEXEC部233とPUSH部25の間のレジスタ(パイプラインレジスタ)243に投入してパイプライン処理を実行することができる。
図10は、本実施例の演算処理装置における書込回路の動作の一例を説明するための図であり、図11は、本実施例の演算処理装置における書込回路の動作の他の例を説明するための図である。
図10に示されるように、書込回路250は、PUSH部25を含み、レジスタ24に格納された演算結果をデータメモリ4のメモリ部43に書き込む。すなわち、EXEC部23とPUSH部25間のパイプラインレジスタ24から出力データを取り出し、例えば、先頭アドレスとストリーム長で示されたメモリ領域へ書き込む。
この書込回路250の処理は、例えば、前述した図3の演算処理装置における処理P23に対応する。ここで、メモリ部43は、例えば、データメモリ4において、メモリ部41,42とは異なるメモリ領域とすることができる。
図10に示す書込回路250は、レジスタ24に格納された演算結果を直接データメモリ部43に書き込む。これに対して、図11に示す書込回路250は、レジスタ24に格納された演算結果をFIFOバッファ7に書き込み、そのFIFOバッファ7に書き込まれたデータをDMA8がメモリ部43に転送する。
すなわち、図11に示す書込回路250は、レジスタ24に格納された演算結果を順にFIFOバッファ7に書き込み、FIFOバッファ7からメモリ部43(データメモリ4)へのデータ転送は、DMA8に任せるようになっている。
図12は、本実施例の演算処理装置におけるパラメータ情報の一例を説明するための図である。ストリーム処理に使用するパラメータ情報は、例えば、各ストリーム(i)の先頭アドレス(ai)、ストリーム長(li)、演算オペコード(o)および演算モード(m)は単一かつ長ビット長の命令(セット命令:set)で表現することができる。
このセット命令(パラメータ情報)は、参照符号P10で示されるように、命令メモリ18から読み出されて、パラメータレジスタ140へ一括して代入(セット)される。そして、各パイプラインステージ(POP部21,EXEC部23およびPUSH部25)は、参照符号P11で示されるように、パラメータレジスタ140からパラメータ情報を参照してパイプライン実行する。
図13および図14は、本実施例の演算処理装置におけるステップ命令を説明するための図である。図13および図14に示されるように、本実施例の演算処理装置(ストリームエンジン2)は、セット命令により制御することができる。
すなわち、参照符号P20で示されるように、命令メモリ18からステップ命令を読み出し、そのステップ命令の実行により、ストリームエンジン2の各パイプラインステージの処理P21〜P23を制御することができる。なお、ステップ命令は、例えば、予めプログラマーにより作成されたものが使用される。
ここで、ステップ命令 step 1〜step N は、命令メモリ18から順番に読み出されて命令発行部14からストリームエンジン2へ発行され、各パイプライン処理P21〜P23が実行される。
図13に示されるように、ステップ命令は、命令発行部14からストリームエンジン2へ発行され、1つのステップ命令により、POP部21,EXEC部23およびPUSH部25が1つの処理(P21,P22,P23)を実行する。
すなわち、図14(a)に示されるように、処理P21は、POP部21がデータメモリ4からデータを読み出してレジスタ221,222に書き込む処理である。また、図14(b)に示されるように、処理P22は、EXEC部23がレジスタ221,222に書き込まれたデータに対してストリーム処理を実行してレジスタ24に書き込む処理である。
さらに、図14(c)に示されるように、処理P23は、PUSH部25がレジスタ24に書き込まれたデータをデータメモリ19に書き込む処理である。これらの処理P21〜P23は、命令発行部14から発行されたステップ命令に従ってパイプライン実行される。
図15は、本実施例の演算処理装置におけるステップ命令の変形を説明するための図である。前述した図13では、N個のステップ命令 step 1〜step N は、そのまま命令メモリ18から読み出されて命令発行部14からストリームエンジン2へ発行されている。
これに対して、図15に示す変形例では、セット命令を、連続する繰り返し処理(ループ処理)を効率よく実行するためのループ処理専用の命令(ゼロオーバヘッドループ命令)と組み合わせるようになっている。
すなわち、N個のステップ命令 step 1〜step N は、ゼロオーバヘッドループ命令(loop N step)とすることで、命令列を増加させないようにすることができる。なお、ゼロオーバヘッドループ命令においても、例えば、割り込み発生時、ストリームは、直ちに実行中のステップで処理を停止するようになっている。
図16および図17は、本実施例の演算処理装置におけるマイクロ命令を説明するための図である。図16に示されるように、命令発行部14からストリームエンジン2へ発行される命令は、マイクロ命令とされている。
すなわち、図16の参照符号P30で示されるように、命令メモリ18からマイクロ命令を読み出し、そのマイクロ命令の実行により、ストリームエンジン2の各パイプラインステージの処理P21〜P23を制御するようになっている。
例えば、図17(a)に示す処理P21に対してpop命令を割り当て、図17(b)に示す処理P22に対してexec命令を割り当て、そして、図17(c)に示す処理P23に対してpush命令を割り当て、各マイクロ命令により実行する。これにより、各パイプラインステージの処理P21〜P23をマイクロ命令により個別に制御することができる。
図18は、本実施例の演算処理装置におけるマイクロ命令によるアクセス制御を説明するための図である。
ここで、図18(a)は、pop,execおよびpush命令を全て発行した場合を示し、図18(b)は、pop命令を停止した場合を示し、そして、図18(c)は、push命令を停止した場合を示す。なお、演算処理装置には、前述した図7および図11のように、DMA5,8およびFIFOバッファ61,62,7が設けられている。
まず、図18(a)に示されるように、pop命令,exec命令およびpush命令の全てが発行されると、各パイプラインステージの処理P21〜P23が毎サイクル実行される。
次に、図18(b)に示されるように、pop命令を停止すると、すなわち、exec命令およびpush命令のみ実行すると、POP部21は、FIFOバッファ61,62からのデータ読み出しを停止する。
これにより、FIFOバッファ61,62は、DMA(入力DMA)5によるデータ転送で満状態となり、DMA5がFIFOバッファ61,62の満状態を検出して自動停止する。すなわち、マイクロ命令であるpop命令を停止することにより、ストリームエンジン2のパイプライン処理を停止することができる。
さらに、図18(c)に示されるように、push命令を停止すると、すなわち、pop命令およびexec命令のみ実行すると、PUSH部25は、レジスタ24からデータを読み出してFIFOバッファ7に格納する動作を停止する。
これにより、FIFOバッファ7は空状態となり、DMA(出力DMA)8がFIFOバッファ7の空状態を検出して自動停止する。すなわち、マイクロ命令であるpush命令を停止することにより、ストリームエンジン2のパイプライン処理を停止することができる。
このように、pop命令,exec命令およびpush命令のマイクロ命令を使用することで、例えば、割り込み発生時でも、DMA5,8がメモリアクセスを自律的に制御することができる。すなわち、メモリ−演算器間のデータ転送の制御を簡略化することができ、メモリアクセス制御のハードウェア量を削減することが可能になる。
図19は、本実施例の演算処理装置におけるマイクロ命令をVLIW命令に埋め込む(パックする)様子を示す図である。図16〜図18を参照して説明したように、マイクロ命令を使用する場合、例えば、VLIW(Very Long Instruction Word:超長命令語)命令に埋め込むことで各処理を同時に実行することができ、実行サイクル数を削減することが可能となる。
すなわち、複数のマイクロ命令をVLIW命令に埋め込むことで、ループ処理の命令数を削減することができ、さらに、ループの実行サイクル数を削減することもできる。また、ベースプロセッサ(VLIWプロセッサを想定:演算処理装置1)の命令セットアーキテクチャを有効に活用することも可能になる。
図19は、M個のマイクロ命令をN個のVLIW命令にパックする様子を示しているが、ここで、VLIW 1命令〜VLIW 3命令によるプロローグ処理、および、VLIW N-2命令〜VLIW N命令によるエピローグ処理を、図20および図21を参照して説明する。
図20は、図19に示すVLIW命令のプロローグ処理を説明するための図であり、図20(a)はVLIW 1命令の処理を示し、図20(b)はVLIW 2命令の処理を示し、そして、図20(c)はVLIW 3命令の処理を示す。
ここで、図19に示されるように、プロローグ処理は、停止しているストリームエンジン2起動させる処理で、VLIW 1[pop ]、VLIW 2[pop, exec ]およびVLIW 3[pop, exec, push]の3つの命令を実行することで達成される。
まず、図20(a)に示されるように、VLIW 1命令によるpop命令のみ実行する。すなわち、pop命令により、POP部21がデータメモリ4からデータを読み出してレジスタ221,222に書き込む処理P21を実行する。これにより、レジスタ221,222には、EXEC部23が演算処理を行うデータが投入されたことになる。
次に、図20(b)に示されるように、VLIW 2命令によるpop命令およびexec命令を実行する。すなわち、pop命令により上述した処理P21を実行すると共に、exec命令により、EXEC部23がレジスタ221,222に書き込まれたデータに対してストリーム処理を実行してレジスタ24に書き込む処理P22を実行する。
これにより、レジスタ221,222には、EXEC部23が演算処理を行うデータが投入され、また、レジスタ24には、PUSH部25がデータメモリ4に書き込む演算結果のデータが投入されたことになる。
そして、図20(c)に示されるように、VLIW 3命令によるpop命令,exec命令およびPUSH命令を実行する。すなわち、pop命令により処理P21を実行すると共に、exec命令により処理P22を実行し、さらに、PUSH命令により、PUSH部25がレジスタ24に書き込まれた演算結果データをデータメモリ4に書き込む処理P23を実行する。
なお、このエピローグ処理以降、図21を参照して説明するエピローグ処理まで、VLIW 3命令と同じ命令(VLIW 4命令,VLIW 5命令,…)により処理P21〜P23によるパイプライン処理が継続して実行される。
図21は、図19に示すVLIW命令のエピローグ処理を説明するための図であり、図21(a)はVLIW N-2命令の処理を示し、図21(b)はVLIW N-1命令の処理を示し、そして、図21(c)はVLIW N命令の処理を示す。
ここで、図19に示されるように、エピローグ処理は、図20を参照して説明したプロローグ処理と逆に動作中のストリームエンジン2を停止させる処理である。このエピローグ処理は、VLIW N-2[pop, exec, push]、VLIW N-1[ exec, push]およびVLIW N[ push]、の3つの命令を実行することで達成される。
まず、図21(a)に示されるように、VLIW N-2命令によるpop命令,exec命令およびpush命令を行う。このVLIW N-2命令は、図20(c)を参照して説明したVLIW 3命令、すなわち、処理P21〜P23により継続して実行されるパイプライン処理と同じものである。
次に、図21(b)に示されるように、VLIW N-1命令によるexec命令およびpush命令を実行する。すなわち、pop命令を除くことにより、POP部21がデータメモリ4からデータを読み出してレジスタ221,222に書き込む処理P21を停止する。これにより、レジスタ221,222は空状態となる。
そして、図21(c)に示されるように、VLIW N命令によるPUSH命令のみ実行する。すなわち、pop命令およびexec命令を除くことで、レジスタ221,222だけでなく、レジスタ24も、空状態となる。
なお、pop命令,exec命令およびpush命令の3つのマイクロ命令によりストリームエンジン2を制御するのは、単なる例であり、さらなるマイクロ命令を追加し、或いは、異なるマイクロ命令を適用するといった様々な変更が可能なのはいうまでもない。
なお、上述した実施例では、LTEアドバンスト等における行列演算処理を行う演算処理装置を例として説明したが、本実施例は、このような無線通信デバイスに適用する演算処理装置に限定されず、様々な演算処理装置に幅広く適用することが可能である。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
演算を実行する演算器、および、ストリーム処理を実行するストリームエンジンを含み、前記演算器のデータパスと前記ストリームエンジンのデータパスを密結合した、
ことを特徴とする演算処理装置。
(付記2)
さらに、
命令を発行する命令発行部を有し、
前記命令発行部は、前記演算器に対する命令を発行すると共に、前記ストリームエンジンに対する命令も発行する、
ことを特徴とする付記1に記載の演算処理装置。
(付記3)
前記ストリームエンジンは、
メモリからデータを読み出す読出回路と、
前記読み出したデータに対してストリーム処理を実行する実行回路と、
前記ストリーム処理された演算結果を前記メモリに書き込む書込回路と、を含む、
ことを特徴とする付記2に記載の演算処理装置。
(付記4)
前記読出回路は、POP部および第1レジスタを含み、
前記POP部は、前記メモリにおける、先頭アドレスおよびストリーム長で示された第1メモリ部からデータを読み出して前記第1レジスタに格納する、
ことを特徴とする付記3に記載の演算処理装置。
(付記5)
前記実行回路は、EXEC部および第2レジスタを含み、
前記EXEC部は、前記第1レジスタに格納されたデータに対してストリーム処理を実行し、前記ストリーム処理された演算結果を前記第2レジスタに格納する、
ことを特徴とする付記4に記載の演算処理装置。
(付記6)
前記実行回路は、階層化された複数のEXEC部および各階層の前記EXEC部間に設けられた複数の第3レジスタを含む、
ことを特徴とする付記5に記載の演算処理装置。
(付記7)
前記書込回路は、PUSH部を含み、
前記PUSH部は、前記第2レジスタに格納された演算結果を、前記メモリにおける、先頭アドレスおよびストリーム長で示された第2メモリ部に書き込む、
ことを特徴とする付記5または付記6に記載の演算処理装置。
(付記8)
前記命令発行部が前記ストリームエンジンに発行する命令は、ステップ命令であり、
前記ストリームエンジンの各パイプラインステージは、1つの前記ステップ命令に従ってそれぞれ1つの処理を実行する、
ことを特徴とする付記2乃至付記7のいずれか1項に記載の演算処理装置。
(付記9)
前記ストリーム処理に使用するパラメータ情報は、単一かつ長ビット長のセット命令で表現される、
ことを特徴とする付記8に記載の演算処理装置。
(付記10)
前記ストリーム処理に使用するパラメータ情報は、各ストリームの先頭アドレス,ストリーム長および演算モードを含む、
ことを特徴とする付記9に記載の演算処理装置。
(付記11)
さらに、
前記ストリーム処理に使用するパラメータ情報を一括してセットするパラメータレジスタを含み、
前記ストリームエンジンの各パイプラインステージは、前記パラメータレジスタからパラメータ情報を参照してパイプライン実行する、
ことを特徴とする付記8に記載の演算処理装置。
(付記12)
前記命令発行部が前記ストリームエンジンに発行する命令は、ステップ命令を分解して、前記ストリームエンジンの各パイプラインステージの操作を制御する短ビット長のマイクロ命令であり、
前記各パイプラインステージは、それぞれ対応する前記マイクロ命令に従って独立して処理を実行する、
ことを特徴とする付記2乃至付記7のいずれか1項に記載の演算処理装置。
(付記13)
さらに、
前記メモリと前記読出回路の間に設けられた第1FIFOバッファを有し、
前記メモリはDMA制御され、前記メモリからデータを読み出す読出回路の処理を制御する第1マイクロ命令を停止することで、前記第1FIFOバッファを満状態として、前記ストリームエンジンのパイプライン処理を停止する、
ことを特徴とする付記12に記載の演算処理装置。
(付記14)
さらに、
前記書込回路と前記メモリの間に設けられた第2FIFOバッファを有し、
前記メモリはDMA制御され、前記メモリへデータを書き込む書込回路の処理を制御する第2マイクロ命令を停止することで、前記第2FIFOバッファを空状態として、前記ストリームエンジンのパイプライン処理を停止する、
ことを特徴とする付記12に記載の演算処理装置。
(付記15)
前記演算器がVLIW命令により制御されるとき、
前記ストリームエンジンの各パイプラインステージの操作を制御するマイクロ命令をVLIW命令に埋め込む、
ことを特徴とする付記12乃至付記14のいずれか1項に記載の演算処理装置。
1 プロセッサ
2,200 ストリームエンジン
4,400 データメモリ
5,8 DMA
7,61,62 FIFOバッファ
10,110,310 レジスタ
11,101,301 命令読出部
12,102,302 命令解釈部
13,103,303 レジスタ読出部
14,104,304 命令発行部
15,105 演算器
16,106 メモリアクセス部
17,107 レジスタ書込部
18,108 命令メモリ
19,109 データメモリ
21 POP部
23 EXEC部
24,221,222,221a,221b,222a,222b,241〜243 レジスタ
25 PUSH部
41〜43 メモリ部
100 ベースプロセッサ
140 パラメータレジスタ
210 読出回路
230 実行回路
250 書込回路
300 コプロセッサ

Claims (10)

  1. 演算を実行する演算器、および、ストリーム処理を実行するストリームエンジンを含み、前記演算器のデータパスと前記ストリームエンジンのデータパスを密結合した、
    ことを特徴とする演算処理装置。
  2. さらに、
    命令を発行する命令発行部を有し、
    前記命令発行部は、前記演算器に対する命令を発行すると共に、前記ストリームエンジンに対する命令も発行する、
    ことを特徴とする請求項1に記載の演算処理装置。
  3. 前記ストリームエンジンは、
    メモリからデータを読み出す読出回路と、
    前記読み出したデータに対してストリーム処理を実行する実行回路と、
    前記ストリーム処理された演算結果を前記メモリに書き込む書込回路と、を含む、
    ことを特徴とする請求項2に記載の演算処理装置。
  4. 前記読出回路は、POP部および第1レジスタを含み、
    前記POP部は、前記メモリにおける、先頭アドレスおよびストリーム長で示された第1メモリ部からデータを読み出して前記第1レジスタに格納する、
    ことを特徴とする請求項3に記載の演算処理装置。
  5. 前記実行回路は、EXEC部および第2レジスタを含み、
    前記EXEC部は、前記第1レジスタに格納されたデータに対してストリーム処理を実行し、前記ストリーム処理された演算結果を前記第2レジスタに格納する、
    ことを特徴とする請求項4に記載の演算処理装置。
  6. 前記書込回路は、PUSH部を含み、
    前記PUSH部は、前記第2レジスタに格納された演算結果を、前記メモリにおける、先頭アドレスおよびストリーム長で示された第2メモリ部に書き込む、
    ことを特徴とする請求項5に記載の演算処理装置。
  7. 前記命令発行部が前記ストリームエンジンに発行する命令は、ステップ命令であり、
    前記ストリームエンジンの各パイプラインステージは、1つのステップ命令に従ってそれぞれ1つの処理を実行する、
    ことを特徴とする請求項2乃至請求項6のいずれか1項に記載の演算処理装置。
  8. さらに、
    前記ストリーム処理に使用するパラメータ情報を一括してセットするパラメータレジスタを含み、
    前記ストリームエンジンの各パイプラインステージは、前記パラメータレジスタからパラメータ情報を参照してパイプライン実行する、
    ことを特徴とする請求項7に記載の演算処理装置。
  9. 前記命令発行部が前記ストリームエンジンに発行する命令は、ステップ命令を分解して、前記ストリームエンジンの各パイプラインステージの操作を制御する短ビット長のマイクロ命令であり、
    前記各パイプラインステージは、それぞれ対応する前記マイクロ命令に従って独立して処理を実行する、
    ことを特徴とする請求項2乃至請求項6のいずれか1項に記載の演算処理装置。
  10. 前記演算器がVLIW命令により制御されるとき、
    前記ストリームエンジンの各パイプラインステージの操作を制御するマイクロ命令をVLIW命令に埋め込む、
    ことを特徴とする請求項9に記載の演算処理装置。
JP2013089479A 2013-04-22 2013-04-22 演算処理装置 Active JP6094356B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013089479A JP6094356B2 (ja) 2013-04-22 2013-04-22 演算処理装置
US14/186,095 US9501282B2 (en) 2013-04-22 2014-02-21 Arithmetic processing device
CN201410100282.2A CN104111817B (zh) 2013-04-22 2014-03-18 算术处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013089479A JP6094356B2 (ja) 2013-04-22 2013-04-22 演算処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017000742A Division JP6292324B2 (ja) 2017-01-05 2017-01-05 演算処理装置

Publications (2)

Publication Number Publication Date
JP2014215624A true JP2014215624A (ja) 2014-11-17
JP6094356B2 JP6094356B2 (ja) 2017-03-15

Family

ID=51708618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013089479A Active JP6094356B2 (ja) 2013-04-22 2013-04-22 演算処理装置

Country Status (3)

Country Link
US (1) US9501282B2 (ja)
JP (1) JP6094356B2 (ja)
CN (1) CN104111817B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6094356B2 (ja) * 2013-04-22 2017-03-15 富士通株式会社 演算処理装置
CN106484362B (zh) * 2015-10-08 2020-06-12 上海兆芯集成电路有限公司 利用使用者指定二维定点算术运算的装置
CN107315715B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行矩阵加/减运算的装置和方法
CN112306558A (zh) * 2019-08-01 2021-02-02 杭州中天微系统有限公司 处理单元、处理器、处理系统、电子设备和处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11510291A (ja) * 1995-10-06 1999-09-07 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US20100325188A1 (en) * 2009-06-19 2010-12-23 Olson Christopher H Processor and method for implementing instruction support for multiplication of large operands
JP2011034189A (ja) * 2009-07-30 2011-02-17 Renesas Electronics Corp ストリームプロセッサ及びそのタスク管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2719926B1 (fr) 1994-05-10 1996-06-07 Sgs Thomson Microelectronics Circuit électronique et procédé d'utilisation d'un coprocesseur.
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
JP2008503827A (ja) * 2004-06-25 2008-02-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 命令処理回路
US7685409B2 (en) * 2007-02-21 2010-03-23 Qualcomm Incorporated On-demand multi-thread multimedia processor
JP5555514B2 (ja) 2010-03-17 2014-07-23 ルネサスエレクトロニクス株式会社 プロセッサシステム
US9317482B2 (en) * 2012-10-14 2016-04-19 Microsoft Technology Licensing, Llc Universal FPGA/ASIC matrix-vector multiplication architecture
JP6094356B2 (ja) * 2013-04-22 2017-03-15 富士通株式会社 演算処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11510291A (ja) * 1995-10-06 1999-09-07 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US20100325188A1 (en) * 2009-06-19 2010-12-23 Olson Christopher H Processor and method for implementing instruction support for multiplication of large operands
JP2011034189A (ja) * 2009-07-30 2011-02-17 Renesas Electronics Corp ストリームプロセッサ及びそのタスク管理方法

Also Published As

Publication number Publication date
CN104111817B (zh) 2017-05-10
US20140317164A1 (en) 2014-10-23
CN104111817A (zh) 2014-10-22
JP6094356B2 (ja) 2017-03-15
US9501282B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
US10140251B2 (en) Processor and method for executing matrix multiplication operation on processor
JP6124463B2 (ja) 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール
EP3274816B1 (en) User-level fork and join processors, methods, systems, and instructions
WO2017185396A1 (zh) 一种用于执行矩阵加/减运算的装置和方法
US10778815B2 (en) Methods and systems for parsing and executing instructions to retrieve data using autonomous memory
CN107766079B (zh) 处理器以及用于在处理器上执行指令的方法
KR20140113580A (ko) 연산 마스크들의 마스킹되지 않는 요소들을 통합하기 위한 프로세서들, 방법들, 시스템들, 및 명령어들
CN110427337B (zh) 基于现场可编程门阵列的处理器内核及其运行方法
JP5985526B2 (ja) システムコールのためのロバスト且つ高性能な命令
TWI515653B (zh) 指令順序執行之指令對、處理器、方法及系統
JP6094356B2 (ja) 演算処理装置
CN103714026A (zh) 一种支持原址数据交换的存储器访问方法及装置
KR102152735B1 (ko) 그래픽 처리 장치 및 이의 동작 방법
JP7507304B2 (ja) レジスタデータの消去
JP6292324B2 (ja) 演算処理装置
JP5630798B1 (ja) プロセッサーおよび方法
CN101539849B (zh) 一种处理器以及一种寄存器选通方法
US20240192994A1 (en) Accelerated draw indirect fetching
JPH01255036A (ja) マイクロプロセッサ
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JP5993687B2 (ja) ワンチッププロセッサ
JP2022546785A (ja) 迅速かつ広範な結果生成のための隣接simdユニットの再利用
CN114115092A (zh) 一种异构双核plc协同执行方法与装置
CN102053821B (zh) 一种多线程流分支控制方法及其控制装置
JP2014063510A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160823

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170130

R150 Certificate of patent or registration of utility model

Ref document number: 6094356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150