JP2013196654A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2013196654A
JP2013196654A JP2012066430A JP2012066430A JP2013196654A JP 2013196654 A JP2013196654 A JP 2013196654A JP 2012066430 A JP2012066430 A JP 2012066430A JP 2012066430 A JP2012066430 A JP 2012066430A JP 2013196654 A JP2013196654 A JP 2013196654A
Authority
JP
Japan
Prior art keywords
input
operand
data
arithmetic processing
unit
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
JP2012066430A
Other languages
English (en)
Other versions
JP5862397B2 (ja
Inventor
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 JP2012066430A priority Critical patent/JP5862397B2/ja
Priority to US13/670,867 priority patent/US20130254516A1/en
Publication of JP2013196654A publication Critical patent/JP2013196654A/ja
Application granted granted Critical
Publication of JP5862397B2 publication Critical patent/JP5862397B2/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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • 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
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

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

Abstract

【課題】ストリーム型処理を行う演算処理装置において、ストリーム長が一致しない場合の繰り返し処理を一命令で実行すること。
【解決手段】ストリーム型処理を行う演算処理装置であって、入力オペランドのストリーム長が出力オペランドのストリーム長に比して短い場合に入力される命令であって、前記入力オペランドを読み出す際の繰り返し規則を規定するデータを含む命令が入力されると、該命令に含まれる繰り返し規則に従ってメモリから前記入力オペランドを読み出して演算部に供給すると共に、該演算部による演算結果を前記出力オペランドとして前記メモリに書き込むデータ入出力部と、前記データ入出力部が読み出した入力オペランドに対して演算を行って、演算結果を前記データ入出力部に出力する前記演算部と、を備える演算処理装置。
【選択図】図7

Description

本発明は、ストリーム型処理を行う演算処理装置に関する。
無線通信ベースバンド処理などで、大量の行列演算処理が必要となる場合がある。このような同一の行列処理を大量のデータに施す際には、メモリから一連のデータを連続して読み出して演算を行い、一連の演算結果をメモリにおける連続したアドレスに書き込むストリーム型処理を行う演算処理装置が、好適に用いられる。
ストリーム型処理を行う演算処理装置では、入力される命令に、演算種別、入力オペランド(ソース)の格納アドレス、出力オペランドの格納先(デスティネーション)の他、処理する単位データの数(ストリーム長又はベクトル長)が含まれる。そして、ストリーム型処理を行う演算処理装置は、ストリーム長が規定する長さに相応する処理を連続して行う。従来、この種の演算処理を行うベクトルユニットが知られている。
しかしながら、従来のストリーム型処理を行う演算処理装置においては、入力オペランドと出力オペランドのストリーム長が同一であることが前提とされていた。このため、従来の演算処理装置は、例えば入力オペランドの一方を繰り返し用いて演算を行いたい場合、一命令で実行することができず、複数命令に分割しないと処理できなかった。しかしながら、例えば行列演算を行う場合等、演算処理装置内部のデータパスの規模が大きい場合、命令の切り替わる際のデータパスの切替に時間がかかり、演算性能が大幅に低下してしまうという問題があった。
一つの側面では、本発明は、ストリーム型処理を行う演算処理装置において、ストリーム長が一致しない場合の繰り返し処理を一命令で実行することを目的とする。
本発明の一態様は、ストリーム型処理を行う演算処理装置であって、入力オペランドのストリーム長が出力オペランドのストリーム長に比して短い場合に入力される命令であって、前記入力オペランドを読み出す際の繰り返し規則を規定するデータを含む命令が入力されると、該命令に含まれる繰り返し規則に従ってメモリから前記入力オペランドを読み出して演算部に供給すると共に、該演算部による演算結果を前記出力オペランドとして前記メモリに書き込むデータ入出力部と、前記データ入出力部が読み出した入力オペランドに対して演算を行って、演算結果を前記データ入出力部に出力する前記演算部と、を備える演算処理装置である。
一実施態様によれば、ストリーム型処理を行う演算処理装置において、ストリーム長が一致しない場合の繰り返し処理を一命令で実行することができる。
本発明の第1実施例に係る演算処理装置1が、携帯電話のベースバンド処理LSI100に適用された適用例である。 本発明の一実施例に係る演算処理装置1のハードウェア構成例である。 演算データパス20が行列演算を行う場合の演算データパス20のハードウェア構成例である。 DMA10の内部構成を示す図である。 本実施例の演算処理装置1により実行される基本的なストリーム型処理を説明するための図である。 ラップアラウンド時に、本実施例の演算処理装置1により実行される処理を説明するための図である。 wm_src0=1(剰余モード)である場合に、本実施例の演算処理装置1により実行される処理を説明するための図である。 wm_src0=2(商モード)である場合に、本実施例の演算処理装置1により実行される処理を説明するための図である。 wm_src0=2(商モード)且つwm_src1=1(剰余モード)である場合に、本実施例の演算処理装置1により実行される処理を説明するための図である。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
以下、図面を参照し、本発明の一実施例に係る演算処理装置1について説明する。
[適用例]
図1は、本発明の第1実施例に係る演算処理装置1が、携帯電話のベースバンド処理LSI(Large Scale Integrated circuit)100に適用された適用例である。ベースバンド処理LSI100は、RF部110と、専用ハードウェア120と、DSP(Digital Signal Processor)130#1〜130#3とを備える。
RF部110は、アンテナ150を介して受信された無線信号の周波数をダウンコンバートし、デジタル信号に変換してバス140に出力する。また、RF部10は、バス150に出力されたデジタル信号をアナログ信号に変換し、無線周波数にアップコンバートして、アンテナ150に出力する。
専用ハードウェア120は、例えば誤り訂正符号を扱うturbo、ビタビアルゴリズムを実行するviterbi、複数のアンテナでデータの送受信を行なうためのMIMO(Multi Input Multi Output)等を含む。
以下、いずれのDSPであるかを区別せず、DSP130と称する。DSP130は、プロセッサ131と、プログラムメモリ132と、周辺回路133と、データメモリ134とを備える。プロセッサ131は、CPU135と、本実施例の行列演算装置1とを有する。各DSP130にはSearcher(同期)、Demodulator(復調)、Decoder(復号)、Codec(符号化)、Modulator(変調)等、無線通信信号処理の各要素処理が割り当てられる。
[演算処理装置]
図2は、本発明の一実施例に係る演算処理装置1のハードウェア構成例である。演算処理装置1は、DMA(Direct Memory Access)10と、演算データパス20と、演算回数ループ制御回路30と、を備える。
DMA10は、データメモリ134からソース(入力オペランド)を読み出すと共に、演算データパス20がソースに対して行った演算結果を出力オペランドとしてメモリ100の格納先(デスティネーション)に書き込む。
DMA10に与えられる命令は、例えばCPU135により発行される。CPU135が発行する命令は、例えば、命令種別を示すopecode、ソースの一方であるソース(0)を指定するためのsrc0、ソースの他方であるソース(1)を指定するためのsrc1、デスティネーションを指定するためのdst、及びwrap around modeを含む。wrap around modeは、後述するラップアラウンド動作を行うか否か、及びラップアラウンド動作のモードを指定するものであり、例えばソース(0)、ソース(1)、デスティネーション毎に設定される。wrap around modeは、例えば、ソース(0)に関しては、wm_src0=0(ラップアラウンド無し)、wm_src0=1(剰余モード)、又はwm_src0=2(商モード)の三種類で指定される。wrap around modeは、ソース(1)、デスティネーションに関しても同様に、三種類で指定される。なお、「ラップアラウンド無し」である場合、ソース(0)、ソース(1)、デスティネーションのストリーム長は一致するため、剰余モードとして扱っても結果は同じである。従って、wrap around modeは、wm_src0=1(剰余モード)、又はwm_src0=2(商モード)の二種類で指定されても構わない。
CPU135が発行する命令のうち、命令種別を示すopecodeは、演算データパス20に入力される。演算データパス20は、図示しない制御回路によって内部の結線を切り替えることにより、種々の演算を行うことができる。図3は、演算データパス20が行列演算を行う場合の演算データパス20のハードウェア構成例である。演算データパス20は、例えば、8個2×2行列乗算モジュール20Aと、8個の2×2行列加算モジュール20Bとを有し、モジュール4個に対して1個のマルチプレクサ20Cが取り付けられている。演算データパス20は、モジュール間の結線を切り替えることで、4×4行列乗算、2×2行列乗算の4並列(SIMD)、2×2逆行列演算の4並列(SIMD)等を行うことができる。
CPU135が発行する命令のうち、ソース(0)を指定するためのsrc0、ソース(1)を指定するためのsrc1、デスティネーションを指定するためのdstは、アドレスレジスタファイル50に入力される。ソース(0)とソース(1)は、例えば演算対象となる二つのソースデータであり、三つ目以上のソースが指定されても構わない。
アドレスレジスタファイル50には、src0、src1、dstによって選択されるデータ列が複数格納されている。各データ列には、データメモリ134におけるソースが格納されたアドレスとストリーム長のセット、或いはデスティネーションアドレスとストリーム長のセットが格納されている。アドレスレジスタファイル50は、src0又はsrc1が入力されると、データメモリ134におけるソースが格納されたアドレスと、当該アドレスに格納されたソースのストリーム長をDMA10に出力する。また、アドレスレジスタファイル50は、dstが入力されると、データメモリ134におけるデスティネーションアドレスと、当該アドレスに格納されるべきデータのストリーム長をDMA10に出力する。更に、アドレスレジスタファイル50は、dstが入力されると、データメモリ134におけるデスティネーションアドレスに格納されるべきデータのストリーム長を演算回数ループ制御回路30に出力する。
図4は、DMA10の内部構成をしめす図である。図中、addr_src0はソース(0)が格納されたアドレスを示し、addr_src1はソース(1)が格納されたアドレスを示し、addr_dstはデスティネーションアドレスを示す。また、length_src0はソース(0)のストリーム長を示し、length_src1はソース(1)のストリーム長を示し、length_dstはデスティネーションのストリーム長を示す。また、wm_src0はソース(0)に関するwrap around modeを示し、wm_src1はソース(0)に関するwrap around modeを示し、wm_dstはデスティネーションに関するwrap around modeを示す。
DMA10は、例えば、ソース(0)を読み出すロード部12と、ソース(1)を読み出すロード部14と、デスティネーションにデータを書き込むストア部16と、サイクルカウンタ18とを備える。サイクルカウンタ18は、例えば1回のストリーム型処理が行われる間、1サイクル毎に、0〜N(N=“length_dst”−1)まで1ずつインクリメントされる値iをロード部12、14、ストア部16に出力する。
ロード部12は、アドレス生成回路12Aと、データバッファ12Bとを備える。アドレス生成回路12Aには、addr_src0、length_src0、wm_src0が入力される。アドレス生成回路12Aは、wm_src0=0(ラップアラウンド無し)である場合には、データメモリ134のaddr_src0が指定するアドレスから、1サイクル毎に単位データを1つずつ読み出してデータバッファ12Bに格納する。単位データとは、演算データパス20が演算対象とする形式のデータであり、例えば行列、単なる数値等が指定される。wm_src0=1(剰余モード)、又はwm_src0=2(商モード)である場合については後述する。データバッファ12Bに格納されたデータは、必要に応じて演算データパス20に出力され、演算対象とされる。
同様に、ロード部14は、アドレス生成回路14Aと、データバッファ14Bとを備える。アドレス生成回路14Aには、addr_src1、length_src1、wm_src1が入力される。アドレス生成回路14Aは、wm_src1=0(ラップアラウンド無し)である場合には、データメモリ134のaddr_src1が指定するアドレスから、1サイクル毎に単位データを1つずつ読み出してデータバッファ14Bに格納する。wm_src1=1(剰余モード)、又はwm_src1=2(商モード)である場合については後述する。データバッファ14Bに格納されたデータは、必要に応じて演算データパス20に出力され、演算対象とされる。
ストア部16は、アドレス生成回路16Aと、データバッファ16Bとを備える。アドレス生成回路16Aには、addr_dst、length_dst、wm_dstが入力される。アドレス生成回路16Aは、wm_dst=0(ラップアラウンド無し)である場合には、データメモリ134のaddr_dstが指定するアドレスに、1サイクル毎に、データバッファ16Bに格納された単位データを1つずつ書き込むwm_dst=1(剰余モード)、又はwm_dst=2(商モード)である場合については後述する。データバッファ16Bには、演算データパス20が行った演算の結果が格納される。
ここで、本実施例の演算処理装置1により実行されるストリーム型処理について説明する。演算処理装置1に与えられる命令は、opecode=mul(乗算)、addr_src0=a、length_src0=100、wm_src0=0、addr_src1=b、length_src1=100、wm_src1=0、addr_dst=c、length_dst=100、wm_dst=0であるものとする。この場合、wm_src0=wm_src1=wm_dst=0であるため、演算処理装置1は、ソース(0)、ソース(1)、デスティネーションのいずれに対してもラップアラウンド動作は行わない。
[ストリーム型処理(基本)]
図5は、本実施例の演算処理装置1により実行される基本的なストリーム型処理を説明するための図である。
ロード部12は、addr_src0が指定するデータメモリ134のアドレスaから、1サイクル毎に1つの単位データを100個(図中、a0〜a99)を読み出してデータバッファ12Bに格納する。また、ロード部14は、addr_src0が指定するデータメモリ134のアドレスbから、1サイクル毎に1つの単位データを100個(図中、b0〜b99)を読み出してデータバッファ14Bに格納する。
これに対し、演算データパス20は、1サイクル毎に、データバッファ12Bに格納された単位データと、データバッファ14Bに格納された単位データから1つずつデータを取り出し、乗算を行って、演算結果をデータバッファ16Bに格納する。演算データパス20が演算を行う回数は、演算回数ループ制御回路30によって制御される。演算回数ループ制御回路30は、例えばサイクルカウンタやシーケンサを含む。図中、c0〜c99は、1サイクル毎にデータバッファ16Bに格納される単位データである。
このように、本実施例の演算処理装置1は、一命令でストリーム長分の演算を行い、データメモリ134に格納することができる。係る処理を、ストリーム型処理と称する。
[ラップアラウンド動作]
以下、本実施例の演算処理装置1により実行されるラップアラウンド時の処理について説明する。図6は、ラップアラウンド時に、本実施例の演算処理装置1により実行される処理を説明するための図である。本図では、演算処理装置1に与えられる命令が、opecode=mul、addr_src0=a、length_src0=1000、addr_src1=b、length_src1=20、addr_dst=c、length_dst=1000であるものとする(wmは省略)。この場合、演算処理装置1は、length_src1=20、すなわちソース(1)のストリーム長が20であり、デスティネーションのストリーム長1000よりも短いため、ソース(1)に関してはwm_src1が規定する繰り返し規則に従って繰り返し読み出しを行う。
[剰余モード]
図7は、wm_src0=1(剰余モード)である場合に、本実施例の演算処理装置1により実行される処理を説明するための図である。本図では、演算処理装置1に与えられる命令が、opecode=mul、addr_src0=a、length_src0=5、wm_src0=1、addr_src1=b、length_src1=100、wm_src1=0、addr_dst=c、length_dst=100、wm_dst=0であるものとする。
剰余モードでは、wm_src0=1が指定されたロード部12Aは、ストリーム長分のa0〜a4までデータメモリ134からの読み出しが終了すると、再度a0から単位データを読み出すことを、繰り返し実行する。具体的には、ロード部12Aは、addr_src0が示すアドレスaに格納された単位データのうち、サイクルカウンタ18から入力される値iをlength_src0=5で除算した剰余数番目の単位データを読み出してデータバッファ12Bに格納する。この場合、演算処理装置1により実行される演算は、次式(1)で表現される。式中、「%」は剰余を示している。
c[i]=a[i%length_src0]×b[i] …(1)
[商モード]
図8は、wm_src0=2(商モード)である場合に、本実施例の演算処理装置1により実行される処理を説明するための図である。本図では、演算処理装置1に与えられる命令が、opecode=mul、addr_src0=a、length_src0=5、wm_src0=2、addr_src1=b、length_src1=100、wm_src1=0、addr_dst=c、length_dst=100、wm_dst=0であるものとする。なお、商モードにおいて、ラップアラウンド動作を行うソース又はデスティネーションに関するストリーム長(length_**)は、文言上のストリーム長ではなく、除算の分母を意味する。
商モードでは、wm_src0=2が指定されたロード部12Aは、まず、先頭の単位データa0をストリーム長と等しい回数読み出し、次に単位データa1をストリーム長と等しい回数読み出す等、ストリーム長と等しい回数読み出す毎に次の単位データに移行する。具体的には、ロード部12Aは、addr_src0が示すアドレスaに格納された単位データのうち、サイクルカウンタ18から入力される値iをlength_src0=5で除算した商(剰余は切り捨て)番目の単位データを読み出してデータバッファ12Bに格納する。この場合、演算処理装置1により実行される演算は、次式(2)で表現される。式中、「/」は整数除算を示している。
c[i]=a[i/length_src0]×b[i] …(2)
[組み合わせ例]
剰余モードと商モードは、組み合わせて設定することもできる。図9は、wm_src0=2(商モード)且つwm_src1=1(剰余モード)である場合に、本実施例の演算処理装置1により実行される処理を説明するための図である。図示するように、ソース0に関しては、a0がストリーム長に等しい4回読み出されると、a1に移行し、4回の読み出し毎にロード部12Aの読み出す単位データが切り替わる。一方、ソース1に関しては、ロード部14Aは、ストリーム長分のb0〜b4までデータメモリ134からの読み出しが終了すると、再度b0から単位データを読み出すことを、繰り返し実行する。
なお、ラップアラウンド動作は、デスティネーションに対しても行うことができる。この場合、例えばlength_src0=100、length_src1=100、length_dst=50、wm_dst=0であるとすると、100回の演算結果のうち前半の50個がデスティネーションに格納されると、後半の50個はデスティネーションに上書きされる。
[まとめ]
本実施例の演算処理装置1は、wm=1又は2を含む命令が入力されると、これが規定する繰り返し規則に従ってデータメモリ134からソースを読み出して演算するため、ストリーム長が一致しない場合の繰り返し処理を一命令で実行することができる。
この結果、演算処理装置1は、繰り返し処理を複数命令で実行するものと比較して、処理オーバヘッドを削減することができ、処理を高速化することができる。
また、メモリ上の配列(ストリーム)データを処理する場合、通常のスカラプロセッサでは、ソフトウエアプログラムで先頭アドレスからそのストリーム長のデータをアクセスするため、バッファオーバランが生じる場合がある。バッファオーバランは、発見するのが困難なソフトウェアバグとなる可能性があるが、演算処理装置1は、DMA10等のハードウェアが、先頭アドレスとストリーム長をセットにして扱うため、バグが発生することを抑制することができる。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、演算処理装置1に与えられる命令の一部は、アドレスレジスタファイル50を介して与えられるものとしたが、CPU135が直接、データメモリ134のアドレスやストリーム長を指定してもよい。
以上の説明に関し、さらに以下の項を開示する。
(付記1)
ストリーム型処理を行う演算処理装置であって、
入力オペランドのストリーム長が出力オペランドのストリーム長に比して短い場合に入力される命令であって、前記入力オペランドを読み出す際の繰り返し規則を規定するデータを含む命令が入力されると、該命令に含まれる繰り返し規則に従ってメモリから前記入力オペランドを読み出して演算部に供給すると共に、該演算部による演算結果を前記出力オペランドとして前記メモリに書き込むデータ入出力部と、
前記データ入出力部が読み出した入力オペランドに対して演算を行って、演算結果を前記データ入出力部に出力する前記演算部と、
を備える演算処理装置。
(付記2)
前記繰り返し規則は、前記入力オペランドの読み出しを、前記入力オペランドの先頭から前記ストリーム長に等しい回数行うと、前記入力オペランドの先頭に戻り読み出しを行うことを繰り返す規則を含む、
付記1記載の演算処理装置。
(付記3)
前記繰り返し規則は、前記入力オペランドの一データを前記ストリーム長に等しい回数繰り返し読み出すと、次の入力オペランドの一データに移行する規則を含む、
付記1又は2記載の演算処理装置。
(付記4)
ストリーム型処理を行う演算処理装置であって、
出力オペランドのストリーム長が入力オペランドのストリーム長に比して短い場合に入力される命令であって、前記出力オペランドをメモリに書き込む際の繰り返し規則を規定するデータを含む命令が入力されると、前記メモリから前記入力オペランドを読み出して演算部に供給すると共に、前記命令に含まれる繰り返し規則に従って、前記演算部による演算結果を前記出力オペランドとして前記メモリに書き込むデータ入出力部と、
前記データ入出力部が読み出した入力オペランドに対して演算を行って、演算結果を前記データ入出力部に出力する前記演算部と、
を備える演算処理装置。
1 演算処理装置
10 DMA
12、14 ロード部
12A、14A、16A アドレス生成回路
12B、14B、16B データバッファ
16 ストア部
18 サイクルカウンタ
20 演算データパス
30 演算回数ループ制御回路
134 データメモリ
135 CPU

Claims (4)

  1. ストリーム型処理を行う演算処理装置であって、
    入力オペランドのストリーム長が出力オペランドのストリーム長に比して短い場合に入力される命令であって、前記入力オペランドを読み出す際の繰り返し規則を規定するデータを含む命令が入力されると、該命令に含まれる繰り返し規則に従ってメモリから前記入力オペランドを読み出して演算部に供給すると共に、該演算部による演算結果を前記出力オペランドとして前記メモリに書き込むデータ入出力部と、
    前記データ入出力部が読み出した入力オペランドに対して演算を行って、演算結果を前記データ入出力部に出力する前記演算部と、
    を備える演算処理装置。
  2. 前記繰り返し規則は、前記入力オペランドの読み出しを、前記入力オペランドの先頭から前記ストリーム長に等しい回数行うと、前記入力オペランドの先頭に戻り読み出しを行うことを繰り返す規則を含む、
    請求項1記載の演算処理装置。
  3. 前記繰り返し規則は、前記入力オペランドの一データを前記ストリーム長に等しい回数繰り返し読み出すと、次の入力オペランドの一データに移行する規則を含む、
    請求項1又は2記載の演算処理装置。
  4. ストリーム型処理を行う演算処理装置であって、
    出力オペランドのストリーム長が入力オペランドのストリーム長に比して短い場合に入力される命令であって、前記出力オペランドをメモリに書き込む際の繰り返し規則を規定するデータを含む命令が入力されると、前記メモリから前記入力オペランドを読み出して演算部に供給すると共に、前記命令に含まれる繰り返し規則に従って、前記演算部による演算結果を前記出力オペランドとして前記メモリに書き込むデータ入出力部と、
    前記データ入出力部が読み出した入力オペランドに対して演算を行って、演算結果を前記データ入出力部に出力する前記演算部と、
    を備える演算処理装置。
JP2012066430A 2012-03-22 2012-03-22 演算処理装置 Active JP5862397B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012066430A JP5862397B2 (ja) 2012-03-22 2012-03-22 演算処理装置
US13/670,867 US20130254516A1 (en) 2012-03-22 2012-11-07 Arithmetic processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012066430A JP5862397B2 (ja) 2012-03-22 2012-03-22 演算処理装置

Publications (2)

Publication Number Publication Date
JP2013196654A true JP2013196654A (ja) 2013-09-30
JP5862397B2 JP5862397B2 (ja) 2016-02-16

Family

ID=49213455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012066430A Active JP5862397B2 (ja) 2012-03-22 2012-03-22 演算処理装置

Country Status (2)

Country Link
US (1) US20130254516A1 (ja)
JP (1) JP5862397B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018005369A (ja) * 2016-06-29 2018-01-11 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715475B2 (en) * 2015-07-21 2017-07-25 BigStream Solutions, Inc. Systems and methods for in-line stream processing of distributed dataflow based computations
US10089259B2 (en) 2015-07-21 2018-10-02 BigStream Solutions, Inc. Precise, efficient, and transparent transfer of execution between an auto-generated in-line accelerator and processor(s)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134539A (ja) * 1999-11-01 2001-05-18 Sony Computer Entertainment Inc 面計算機及び面計算機における演算処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0283728A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd 浮動小数点乗算装置
JPH10171350A (ja) * 1996-12-10 1998-06-26 Hitachi Ltd ハッシュ値生成方法および装置
US20060106910A1 (en) * 2004-11-16 2006-05-18 Analog Devices, Inc. Galois field polynomial multiplication
US20080263115A1 (en) * 2007-04-17 2008-10-23 Horizon Semiconductors Ltd. Very long arithmetic logic unit for security processor
JP2009134391A (ja) * 2007-11-29 2009-06-18 Renesas Technology Corp ストリーム処理装置、ストリーム処理方法及びデータ処理システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134539A (ja) * 1999-11-01 2001-05-18 Sony Computer Entertainment Inc 面計算機及び面計算機における演算処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018005369A (ja) * 2016-06-29 2018-01-11 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
US20130254516A1 (en) 2013-09-26
JP5862397B2 (ja) 2016-02-16

Similar Documents

Publication Publication Date Title
US20210026634A1 (en) Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register
US10241791B2 (en) Low energy accelerator processor architecture
JP5865405B2 (ja) 命令の制御フローの追跡
US8051226B2 (en) Circular buffer support in a single instruction multiple data (SIMD) data processor
JP4986431B2 (ja) プロセッサ
US11341085B2 (en) Low energy accelerator processor architecture with short parallel instruction word
WO2017185396A1 (zh) 一种用于执行矩阵加/减运算的装置和方法
EP1102163A2 (en) Microprocessor with improved instruction set architecture
JPWO2006112045A1 (ja) 演算処理装置
KR20150038408A (ko) 가속된 레인 간 벡터 감축 명령어들
WO2017185384A1 (zh) 一种用于执行向量循环移位运算的装置和方法
WO2017185392A1 (zh) 一种用于执行向量四则运算的装置和方法
WO2021249054A1 (zh) 一种数据处理方法及装置、存储介质
US20180181347A1 (en) Data processing apparatus and method for controlling vector memory accesses
JP5862397B2 (ja) 演算処理装置
JP4078243B2 (ja) 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
TW201729080A (zh) 用於排列序列之指令及邏輯
US10656914B2 (en) Methods and instructions for a 32-bit arithmetic support using 16-bit multiply and 32-bit addition
US20130238880A1 (en) Operation processing device, mobile terminal and operation processing method
TW201805802A (zh) 一種運算裝置及其操作方法
JP2012128790A (ja) 演算処理装置
JP2009134745A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151110

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151214

R150 Certificate of patent or registration of utility model

Ref document number: 5862397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150