JP2006195563A - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP2006195563A
JP2006195563A JP2005004223A JP2005004223A JP2006195563A JP 2006195563 A JP2006195563 A JP 2006195563A JP 2005004223 A JP2005004223 A JP 2005004223A JP 2005004223 A JP2005004223 A JP 2005004223A JP 2006195563 A JP2006195563 A JP 2006195563A
Authority
JP
Japan
Prior art keywords
data
arithmetic
conversion
data format
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.)
Pending
Application number
JP2005004223A
Other languages
English (en)
Inventor
Masami Nakajima
雅美 中島
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005004223A priority Critical patent/JP2006195563A/ja
Publication of JP2006195563A publication Critical patent/JP2006195563A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

【課題】算術演算におけるキャリーの伝播遅延を抑制し高速な算術演算処理を実行することができる演算処理装置を得ること。
【解決手段】ALU1はプロセッサから入力された通常の2進数のデータを格納している複数のレジスタ31−1〜31−mのデータを用いて論理演算処理および算術演算処理を実行して演算結果をレジスタ31−1〜31−mに格納し、ALU2はレジスタ31−1〜31−mに対応付けられて符号変換部5によって符号変換が施された剰余数系のデータを格納している複数の変換レジスタ41−1〜41−mのデータを用いて論理演算処理および算術演算処理を実行して演算結果を変換レジスタ41−1〜41−mに格納し、変換レジスタ41−1〜41−mに格納されているデータをプロセッサに出力する際には、剰余数系のデータに逆符号変換を施して通常の2進数に変換した後に出力する。
【選択図】 図1

Description

本発明は、プロセッサに用いる演算処理装置に関するものであり、特に、演算処理装置が実行する算術演算処理に関するものである。
一般的に、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサに適用される演算処理装置は、ALU(Arithmetic Logic Unit)と複数のレジスタで構成されるレジスタファイルで構成され、ALUが数値Nを、「N=an-1・2n-1+an-2・2n-2+…+a0・20」で表現する通常の2進数のデータをレジスタから読み出し、読み出したデータに対して算術論理演算(算術演算や論理演算)を実行し、実行した算術論理演算の結果をレジスタに書き込むようにしている。
近年、プロセッサは様々な用途に用いられ、処理の高速化が求められている。プロセッサの処理速度は、演算処理装置の処理の速度、特に算術演算処理に依存する。そのため、従来から演算処理装置の算術演算処理を高速化するために種々の技術が考えられている。
たとえば、特許文献1に記載の従来技術では、データを主記憶内のデータ形式に相当する第1のデータ形式と、算術演算処理に適する第2のデータ形式とでレジスタファイルに保持するとともに、それぞれのデータ形式に対応して内容の使用可否が設定されるフラグと、第1のデータ形式と第2のデータ形式とのデータ変換を行なう手段を設けて、各命令シーケンス毎に適するデータ形式を選択して対応するフラグを調べ、セット/リセットを制御を行ない、必要に応じて形式変換を行なって演算に供する演算装置に関する技術が開示されている。
特開昭59−214947号公報
上記特許文献1に記載の演算装置では、主記憶とのデータのやり取りに用いる第1のデータ形式、または算術演算に用いる第2のデータ形式の一方のデータ形式でデータを保持しておき、算術演算を行なう際にデータが第1のデータ形式で保持されている場合には第2のデータ形式に変換して算術演算を行なって演算結果を第2のデータ形式で保持し、主記憶にデータを転送する際にデータが第2のデータ形式で保持されている場合には第2のデータ形式から第1のデータ形式に変換してデータ転送するようにしているので、不要なデータの変換時間をなくし、データが入力されてから算術演算を実行し、実行した演算結果を出力するまでの算術演算処理時間を短縮するようにしている。
しかしながら、上記特許文献1に記載の演算装置は、第1のデータ形式と第2のデータ形式との不要な変換時間を無くするものであり、加算や乗算などの算術演算を実行する回路の実行時間を短縮するものではない。
具体的には、上記特許文献1に記載の演算装置では、第2のデータ形式は、符号部、指数部、および仮数部を分離したものであり、指数部および仮数部は通常の2進数である。通常の2進数における加算や乗算などの算術演算は、下位ビットから上位ビットへの桁上げ(キャリー)が発生し、このキャリーの伝播遅延が処理速度を決定する。一般的に、キャリールッカーヘッド回路により複数ビット単位で加算と同時にキャリーの有無を検出することでキャリーの伝播遅延を短縮するようにしているが、キャリーの伝播遅延が算術演算の処理速度を決定することに変わりはない。すなわち、キャリーの伝播遅延が全ての桁に影響する通常の2進数のデータによる演算回路では、ビット数が多くなるほど算術演算に要する時間がかかるという問題があった。
本発明は、上記に鑑みてなされたものであって、算術演算におけるキャリーの伝播遅延を抑制し高速な算術演算処理を実行することができる演算処理装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、プロセッサから入力された命令に基づいて、前記プロセッサから入力されたデータに論理演算処理または算術演算処理を施して演算処理結果を出力する演算処理装置において、前記データおよび前記演算処理結果を前記プロセッサが認識する第1のデータ形式で格納するレジスタと、前記複数のレジスタに対応付けられて、前記データおよび前記演算処理結果を前記第1のデータ形式とは異なる符合の第2のデータ形式で格納する変換レジスタと、前記第1のデータ形式のデータに符号変換を施して前記第2のデータ形式のデータに変換して前記変換レジスタに格納するとともに、前記第2のデータ形式のデータに逆符号変換を施して前記第1のデータ形式に変換して前記レジスタに格納する符号変換部と、前記命令に基づいて前記レジスタに格納されている前記第1のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する算術論理演算処理部と、前記命令に基づいて前記変換レジスタに格納されている前記第2のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する変換算術論理演算処理部と、を備え、前記第2のデータ形式のデータを前記第1のデータ形式のデータに変換した後に、前記プロセッサに算術演算処理の演算結果を出力すること、を特徴とする。
この発明によれば、プロセッサが認識する第1のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する算術演算処理部と、第1のデータ形式のデータとは異なる符号の第2のデータ形式のデータを用いてキャリーの伝播遅延を抑制した算術演算処理を実行する変換算術演算処理部とを備え、第1のデータ形式のデータを格納する複数のレジスタに対応付けられて変換レジスタが第2のデータ形式のデータを格納し、プロセッサの命令によって算術演算処理部と変換算術演算処理部とを使い分けるようにしているので、算術演算処理を高速に実現することができる演算処理装置を得ることができるという効果を奏する。
以下に、本発明にかかる演算処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1〜図4を用いてこの発明の実施の形態1を説明する。この発明にかかる演算処理装置は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサに適用され、プロセッサが実行するプログラムの命令によって制御されて、算術論理演算処理を実行する。
図1は、この発明にかかる演算処理装置の実施の形態1の構成を示すブロック図である。図1に示した演算処理装置は、ALU1,2と、レジスタファイル3と、変換レジスタファイル4と、符号変換部5とを備えており、制御バス8を介してプロセッサからの命令によって制御されプロセッサが実行するプログラムによる算術演算処理を実現する。また、ALU1およびレジスタファイル3は、プロセッサの内部バス7(入力用内部バス7aおよび出力用内部バス7b)と接続され、入力用内部バス7aを介してプロセッサからのデータが入力されるとともに、出力用内部バス7bを介してプロセッサにデータを出力する。なお、ALU1が特許請求の範囲でいうところの算術論理演算処理部であり、ALU2が特許請求の範囲でいうところの変換算術論理演算処理部である。
レジスタファイル3は、通常の2進数のデータを格納するm(1<m,mは自然数)個のレジスタ31−1〜31−mと、レジスタ31−1〜31−mに対応付けられレジスタ31−1〜31−mに格納されているデータが有効であるか否かを示す値が設定されるフラグ32−1〜32−mとを備えている。通常の2進数とは、「数値N=an-1・2n-1+an-2・2n-2+…+a0・20」で表現するデータ形式であり、特許請求の範囲でいうところの第1のデータ形式である。
レジスタファイル4は、剰余数系(特許請求の範囲でいうところの第2のデータ形式)のデータを格納するm個のレジスタ41−1〜41−mと、レジスタ41−1〜41−mに対応付けられレジスタ41−1〜41−mに格納されているデータが有効であるか否かを示す値が設定されるフラグ42−1〜42−mとを備えている。ここでは、剰余数系は、数値Nを3の剰余(2ビット)、5の剰余(3ビット)、7の剰余(3ビット)、11の剰余(4ビット)、13の剰余(4ビット)、19の剰余(5ビット)、23の剰余(5ビット)、29の剰余(5ビット)、31の剰余(5ビット)の36ビットを用いて通常の2進数の32ビットを表すものとするが、これに限るものではない。
ALU1は、入力用内部バス7aから通常の2進数を用いて算術論理演算を行なうとともに、演算結果をレジスタファイル3に格納したり、レジスタファイル3に格納されているデータを出力用内部バス7bに出力する。なお、ALU1の算術演算回路は、通常の2進数を用いて加算や乗算を行なう回路構成となっている。
ALU2は、変換レジスタファイル4に格納されている剰余数系のデータを用いて算術演算を行なうとともに、演算結果を変換レジスタファイル4に格納する。なお、ALU2の算術演算回路は、剰余数系を用いて加算や乗算を行なう構成となっている。たとえば、剰余数系では「13」は、
「0101_1110_0010_0000_0110_1011_0101_1010_1101」
で表され、剰余数系では「8」は、
「1001_1001_1000_1000_0100_0010_0001_0000_1000」
で表され、「13」と「8」の積「104」は剰余数系では、
「1010_0110_0101_0000_0100_1011_0010_0010_1011」
で表され、剰余数系の特性から剰余同士で演算を行なえばよい。したがって、数値Nを3の剰余(2ビット)、5の剰余(3ビット)、7の剰余(3ビット)、11の剰余(4ビット)、13の剰余(4ビット)、19の剰余(5ビット)、23の剰余(5ビット)、29の剰余(5ビット)、31の剰余(5ビット)の36ビットを用いて通常の2進数の32ビットを表す場合、3の剰余の2ビット、5の剰余の3ビット、7の剰余の3ビット、11の剰余の4ビット、13の剰余の4ビット、19の剰余の5ビット、23の剰余の5ビット、29の剰余の5ビット、および31の剰余の5ビットの演算を行なう回路構成となる。すなわち、ALU1が通常の2進数の32ビットでの演算を行なうのに対して、ALU2は、剰余数系を用いることで最大5ビットの演算を行なえばよく、32ビットの全てのビットに影響をおよぼすキャリーの伝播遅延が、最大5ビットのキャリーの伝播遅延となり、演算時間を高速にすることができる回路構成となっている。
符号変換部5は、プロセッサからの命令によって、レジスタファイル3に格納されている通常の2進数のデータに符号変換を施して剰余数系のデータに変換し、変換したデータを変換レジスタファイル4に格納する。また、符号変換部5は、プロセッサからの命令によって、レジスタファイル4に格納されている剰余数系のデータに逆符号変換を施して通常の2進数のデータに変換し、変換したデータをレジスタファイル3に格納する。具体的には、レジスタファイル3のレジスタ31−1と変換レジスタファイル4の変換レジスタ41−1とが対応図けられ、レジスタ31−2と変換レジスタ41−2とが対応付けられ、レジスタ31−3と変換レジスタ41−3とが対応付けられ、…、レジスタ41−mと変換レジスタ41−mとが対応付けられており、符号変換部5は、レジスタ31−1に格納されている通常の2進数のデータに符号変換を施した剰余数系のデータを変換レジスタ41−1に格納し、変換レジスタ41−1に格納されている剰余数系のデータに逆符号変換を施した通常の2進数のデータをレジスタ31−1に格納する。なお、符号変換部5は、データを格納する際に、データを格納したレジスタ31−1〜31−m、変換レジスタ41−1〜41−mに対応するフラグ32−1〜32−m、41−1〜41−mに有効を示す値を設定する。
つぎに、図2および図3のフローチャートを参照して、この発明にかかる演算処理装置の実施の形態1の動作を説明する。まず、図2のフローチャートを参照して、算術論理演算処理の動作を説明する。
ALU1は、プロセッサから指定されたレジスタ31−1〜31−mに入力用内部バス7aを介して入力されるデータを格納し、データを格納したレジスタ31−1〜31−mに対応するフラグ32−1〜32−mに有効を示す値(たとえば、「1」)を設定する(ステップS100)。
符号変換部5は、プロセッサからの命令が算術演算であるか否かを判定する(ステップS101)。プロセッサからの命令が算術演算である場合、符号変換部5は、プロセッサによって指定されたレジスタ31−1〜31−mに対応する変換レジスタファイル4のフラグ42−1〜42−mが有効であるか否かを判定する(ステップS102)。
指定されたレジスタ31−1〜31−mに対応する変換レジスタファイル4のフラグ42−1〜42−mが無効(たとえば、「0」)の場合、符号変換部5は、指定されたレジスタ31−1〜31−mに格納されている通常の2進数のデータに符号変換を施して剰余数系のデータに変換し、変換したデータを指定されたレジスタ31−1〜31−mに対応する変換レジスタ41−1〜41−mに格納する。符号変換部5は、データを格納した変換レジスタ41−1〜41−mに対応するフラグ42−1〜42−mを有効にする(ステップS103)。
指定されたレジスタ31−1〜31−mに対応する変換レジスタファイル4のフラグ42−1〜42−mが有効になると、ALU2は、変換レジスタ41−1〜41−mに格納されているデータを用いて、命令によって指定された算術演算を実行する(ステップS104)。
ALU2は、算術演算の結果を命令によって指定されたレジスタ31−1〜31−mに対応する変換レジスタ41−1〜41−mに格納して、対応するフラグ42−1〜42−mを有効にする(ステップS105)。
符号変換部5は、ALU2によってデータが格納された変換レジスタ41−1〜41−mに対応するレジスタファイル3のフラグ31−1〜31−mを無効にする(ステップS106)。
一方、プロセッサからの命令が論理演算である場合、ALU1は、命令によって指定されたレジスタ31−1〜31−mに格納されているデータを用いて、命令によって指定された論理演算を実行する(ステップS107)。ALU1は、論理演算の結果を命令によって指定されたレジスタ31−1〜31−mに格納して、対応するフラグ32−1〜32−mを有効にする(ステップS108)。
符号変換部5は、ALU1によってデータが格納されたレジスタ31−1〜31−mに対応するレジスタファイル4のフラグ41−1〜41−mを無効にする(ステップS109)。
つぎに、図3のフローチャートを参照して、データ出力処理の動作を説明する。プロセッサからの命令がデータ出力の場合、符号変換部5は、命令によって指定されたレジスタ31−1〜31−mに対応するフラグ32−1〜32−mが有効であるか否かを判定する(ステップS200)。
指定されたレジスタ31−1〜31−mに対応するフラグ32−1〜32−mが無効の場合、符号変換部5は、指定されたレジスタ31−1〜31−mに対応する変換レジスタ41−1〜41−mに格納されている剰余数系のデータに逆符号変換を施して通常の2進数に変換し、変換したデータを指定されたレジスタ31−1〜31−mに格納する。符号変換部5は、データを格納したレジスタ31−1〜31−mに対応するフラグ31−1〜31−mを有効にする(ステップS201)。
指定されたレジスタ31−1〜31−mに対応するフラグ31−1〜31−mが有効になると、ALU1は、レジスタ31−1〜31−mからデータを読み出して出力用内部バス7bに出力する(ステップS202)。
図4は、従来の演算処理装置による算術演算処理時間と、本発明の演算処理装置による算術演算処理時間とを示す図である。図4では、算術演算を5回連続して行なう場合を示している。従来の算術演算処理時間は、プロセッサからのデータをレジスタ31−1〜31−mに格納する入力に時間T11を要し、1回目の演算処理に時間T12を要し、2回目の演算処理に時間T13を要し、3回目の演算処理に時間T14を要し、4回目の演算処理に時間T15を要し、5回目の演算処理に時間T16を要し、データの出力に時間T17を要している。
本発明の演算処理装置の算術処理時間は、プロセッサから入力された通常の2進数のデータに符号変換を施して剰余数系のデータに変換し、変換したデータを変換レジスタ41−1〜41−mに格納する入力と変換に時間T21を要し、1回目の演算処理に時間T22を要し、2回目の演算処理に時間T23を要し、3回目の演算処理に時間T24を要し、4回目の演算処理に時間T25を要し、5回目の演算処理に時間T26を要し、剰余数系のデータに逆符号変換を施して通常の2進数に変換し、変換したデータを出力する変換と出力に時間T27を要している。
1回目の演算処理を開始するまでの時間および演算結果を出力する時間は、データの変換(符号変換および逆符号変換)の分だけ従来の演算処理装置より本発明の演算処理装置の方が遅くなる。しかし、32ビットのキャリーの伝播遅延に依存する従来の演算処理装置より、5ビットのキャリーの伝播遅延に依存する本発明の演算処理装置の方が1回の算術演算が短くなる。そのため、データが入力されて算術演算処理を実行してデータを出力するプロセッサからみたトータルの演算処理時間は、従来の演算処理装置より本発明の演算処理装置のほうが早くなる。特に、変換レジスタ41−1〜41−mに格納されているデータを用いた算術演算が繰り返される場合の大きな差が現れる。
このようにこの実施の形態1では、プロセッサが認識する通常の2進数のデータを用いて論理演算処理および算術演算処理を実行するALU1と、剰余数系のデータを用いてキャリーの伝播遅延を抑制した算術演算処理を実行するALU2とを備え、第1のデータ形式のデータを格納する複数のレジスタに対応付けられて変換レジスタが第2のデータ形式のデータを格納し、プロセッサの命令によってALU1とALU2とを使い分けるようにしているので、算術演算処理を高速に実現することができる。
なお、この実施の形態1では、論理演算処理にALU1を用い、算術演算処理にALU2を用いるようにしたが、プロセッサの命令によってALU1を用いて算術演算処理を実行するか、ALU2を用いて算術演算処理を実行するかを決定するようにしてもよい。これにより、符号変換および逆符号変換の時間を必要とするALU2を用いて算術演算処理を実行する方が処理時間が遅くなる場合には、ALU1を用いて算術演算処理を実行することができる。
また、この実施の形態1では、プロセッサからの命令が算術演算を示し、かつプロセッサからの命令によって指定されたレジスタ31−1〜31−mに対応する変換レジスタ41−1〜41−mのフラグ42−1〜42−mが無効の場合、直ちに通常の2進数のデータを剰余数系のデータに変換するようにしたが、レジスタ31−1〜31−mまたは変換レジスタ41−1〜41−mにデータが格納された際に、直ちに符号変換、または逆符号変換を施して、レジスタ31−1〜31−mと、変換レジスタ41−1〜41−mとに常に正しいデータを格納するようにしてもよい。すなわち、必要なときにデータの符号変換または逆符号変換を実行する低消費電力モードと、常にレジスタ31−1〜31−mと、変換レジスタ41−1〜41−mとに常に正しいデータを格納しておき、高速処理を実行する高速モードとを備えるようにしてもよい。これにより、プロセッサの用途に合わせた処理速度を実現することができる。
実施の形態2.
図5を用いてこの発明の実施の形態2を説明する。図5は、この発明にかかる演算処理装置の実施の形態2の構成を示すブロック図である。図5に示した演算処理装置は、図1に示した実施の形態1の演算処理装置と構成部分は全て同じであるが、プロセッサとの接続が異なっている。図1に示した実施の形態1の演算処理装置は、ALU1およびレジスタファイル3がプロセッサの入力用内部バス7aに接続され、プロセッサからの入力データはALU1によってレジスタ31−1〜31−mに格納された。しかし、図5に示したこの実施の形態2の演算処理装置は、符号変換部5が入力用内部バス7aに接続されている。
したがって、この実施の形態2の演算処理装置は、符号変換部5が、入力用内部バス7aを介して入力されるプロセッサからの入力データをレジスタ31−1〜31−mに格納するとともに、入力データに符号変換を施して剰余数系のデータに変換して変換レジスタ41−1〜41−mにも格納する。すなわち、プロセッサから入力されたデータは、直ちにレジスタ31−1〜31−mと、変換レジスタ41−1〜41−mに格納される。また、データの出力時に変換レジスタ41−1〜41−mにのみデータが格納されている場合(指定されたレジスタ31−1〜31−mのフラグ32−1〜32−mが無効である場合)、指定されたレジスタ31−1〜31−mに対応する変換レジスタ41−1〜41−mに格納されているデータに逆符号変換を施して出力する。
このようにこの実施の形態2では、符号変換部5を介してプロセッサと接続するようにしているので、プロセッサから入力されたデータをレジスタ41−1〜41−mに格納するとともに、直ちにプロセッサから入力されたデータに符号変換を施してレジスタ41−1〜41−mに格納するようにしているので、プロセッサからの命令がALU2を用いた算術演算を行なうことを示す場合、符号変換を実行することなく算術演算を実行することができる。
また、データの出力時に指定されたレジスタ31−1〜31−mのフラグ32−1〜32−mが無効である場合、指定されたレジスタ31−1〜31−mに対応する変換レジスタ41−1〜41−mに格納されているデータに逆符号変換を施して出力するようにしているので、逆符号変換したデータをレジスタ31−1〜31−mに格納する処理時間の分だけ、高速にデータを出力することができる。
実施の形態3.
図6を用いてこの発明の実施の形態3を説明する。図6は、この発明にかかる実施の形態3の演算処理装置の構成を示すブロック図である。図6に示した実施の形態3の演算処理装置は、図1に示した実施の形態1の演算処理装置のALU1の代わりにLU10(特許請求の範囲でいうところの論理演算処理部)を備え、ALU2の代わりにAU20(特許請求の範囲でいうところの算術演算処理部)を備えている。図1に示した実施の形態1の演算処理装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
LU10は、通常の2進数のデータを用いた論理演算処理を行なう。すなわち、通常の2進数のデータを用いた方が剰余数系のデータを用いるよりも高速に実行することができる演算処理の機能のみを備えている。
AU20は、剰余数系のデータを用いた算術演算処理を行なう。すなわち、剰余数系のデータを用いた方が通常の2進数のデータを用いるよりも高速に実行することができる演算処理の機能のみを備えている。
すなわち、実施の形態1の演算処理装置は2つのALU1,2を備えているのに対して、この実施の形態3の演算処理装置は、通常の2進数のデータを用いた方が高速に処理できる論理演算を実行するLU10と、剰余数系のデータを用いた方が高速に処理できる算術演算を実行するAU20とを使い分けることで、論理演算処理または算術演算処理に必要な機能のみの回路構成とし、回路規模を小さくするとともに、高速な演算処理を実現するようにしている。
なお、この実施の形態3の演算処理装置の動作は、実施の形態1の演算処理装置のALU1の代わりにLU10を用いて論理演算処理を実行し、ALU2の代わりにAU20を用いて算術演算処理を実行するものであるので、実施の形態1とほぼ同じとなるのでここではその動作の説明は省略する。
また、図7に示すように、先の図5に示した実施の形態2の演算処理装置のALU1の代わりにLU10を備え、ALU2の代わりにAU20を備えるようにしてもよい。
実施の形態4.
図8を用いてこの発明にかかる実施の形態4を説明する。図8は、この発明にかかる実施の形態4の演算処理装置の構成を示すブロック図である。図8に示した演算処理装置は、先の図1に示した実施の形態1の演算処理装置の変換レジスタファイル4の代わりに、変換レジスタファイル4aを備えている。図1に示した実施の形態1の演算処理装置と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
変換レジスタファイル4aは、3個の変換レジスタ41a−1〜41a−3と、変換レジスタ41a−1〜41a−3に対応付けられ変換レジスタ41a−1〜41a−3に格納されているデータが有効であるか否かを示す値が設定されるフラグ42a−1〜42a−3とを備えている。すなわち、実施の形態1の演算処理装置が通常の2進数のデータを格納するレジスタ31−1〜31−mすべてに対応する数の変換レジスタ41−1〜41−mを備えているのに対し、この実施の形態4の演算処理装置は通常の2進数のデータを格納するレジスタ31−1〜31−mの一部のレジスタ31−1〜31−3に対応する変換レジスタ41a−1〜41a−3を備えている。
したがって、この実施の形態4の演算処理装置を用いる場合、プロセッサの命令によって、ALU2を用いた算術論理演算を実行する際に使用するレジスタ31−1〜31−mが制限される。しかしながら、一般的に、算術演算を実行する際に、プロセッサが演算処理装置が有するレジスタ31−1〜31−mを全て用いることはほとんどないので、全てのレジスタ31−1〜31−mに対応した変換レジスタ41−1〜41−mを備える場合と比較して、回路規模を小さくしつつ高速な演算処理を実現することができる。
なお、この実施の形態4の演算処理装置の動作は、ALU2を用いた算術論理演算を実行する際に使用するレジスタ31−1〜31−mが制限されるだけであり、実施の形態1の演算処理装置とほぼ同じであるのでここではその動作の説明は省略する。
また、実施の形態2または3のレジスタファイル4の代わりにレジスタファイル4aを備えるようにしてもよい。
なお、実施の形態1〜4では、算術演算に用いる第2のデータ形式として剰余係数のデータを用いる場合を例に挙げて説明したが、通常の2進数のデータによる算術演算よりも高速に算術演算を行なうことができる符号のデータ形式であればよい。たとえば、剰余係数のデータの代わりに、SD(Signed Digit)数系のデータ、冗長2進系のデータ、またはBoothのアルゴリズムに基づく数系のデータでもよい。この場合、ALU2またはAU20が符号変換されるデータに対応した算術演算回路を備え、符号変換部5は、第2のデータ形式に応じた符号変換および逆符号変換を行なうようにすればよい。具体的には、符号変換部5は、たとえば、通常の2進数では「0000_0000_0000_0000_0000_0000_0000_1101」で表される「13」を例に挙げると、第2のデータ形式がSD数系の場合、符号変換すると、
「0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0001_1001」
となり、第2のデータ形式が冗長2進数系の場合、
「0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0101_0001」
となる。
以上のように、本発明にかかる演算処理装置は、プロセッサに有用であり、特に、数値演算を多様に用いるDSPに適している。
この発明にかかる実施の形態1の演算処理装置の構成を示すブロック図である。 この発明にかかる実施の形態1の演算処理装置の算術論理演算処理の動作を説明するためのフローチャートである。 この発明にかかる実施の形態1の演算処理装置のデータ出力の動作を説明するためのフローチャートである。 従来の演算処理装置とこの発明にかかる実施の形態1の演算処理装置の算術演算処理の処理時間を比較した図である。 この発明にかかる実施の形態2の演算処理装置の構成を示すブロック図である。 この発明にかかる実施の形態3の演算処理装置の構成を示すブロック図である。 この発明にかかる実施の形態3の演算処理装置の構成の一例を示すブロック図である。 この発明にかかる実施の形態4の演算処理装置の構成を示すブロック図である。
符号の説明
1,2 ALU
3 レジスタファイル
4 変換レジスタファイル
5 符号変換部
7a 入力用内部バス
7b 出力用内部バス
8 制御バス
10 LU
20 AU
31−1,31−2,31−3,31−m レジスタ
32−1,32−2,32−3,32−m,42−1,42−2,42−3,42−m,42a−1,42a−2,42a−3 フラグ
41−1,41−2,41−3,41−m,41a−1,41a−2,41a−3 変換レジスタ

Claims (10)

  1. プロセッサから入力された命令に基づいて、前記プロセッサから入力されたデータに論理演算処理または算術演算処理を施して演算処理結果を出力する演算処理装置において、
    前記データおよび前記演算処理結果を前記プロセッサが認識する第1のデータ形式で格納するレジスタと、
    前記複数のレジスタに対応付けられて、前記データおよび前記演算処理結果を前記第1のデータ形式とは異なる符合の第2のデータ形式で格納する変換レジスタと、
    前記第1のデータ形式のデータに符号変換を施して前記第2のデータ形式のデータに変換して前記変換レジスタに格納するとともに、前記第2のデータ形式のデータに逆符号変換を施して前記第1のデータ形式に変換して前記レジスタに格納する符号変換部と、
    前記命令に基づいて前記レジスタに格納されている前記第1のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する算術論理演算処理部と、
    前記命令に基づいて前記変換レジスタに格納されている前記第2のデータ形式のデータを用いて論理演算処理および算術演算処理を実行する変換算術論理演算処理部と、
    を備え、
    前記第2のデータ形式のデータを前記第1のデータ形式のデータに変換した後に、前記プロセッサに算術演算処理の演算結果を出力すること、
    を特徴とする演算処理装置。
  2. 前記算術論理演算処理部は、
    前記プロセッサから入力された第1のデータ形式のデータを前記命令によって指定されたレジスタに格納し、
    前記符号変換部は、
    前記命令が算術演算処理を示す場合に前記レジスタに格納されている第1のデータ形式のデータに符号変換を施して第2のデータ形式のデータに変換し、変換したデータを前記レジスタに対応する変換レジスタに格納し、
    前記変換算術論理演算処理部は、
    前記変換レジスタに格納された第2のデータ形式のデータを用いて算術演算処理を実行し、実行した算術演算処理の演算結果を前記変換レジスタに格納すること、
    を特徴とする請求項1に記載の演算処理装置。
  3. 前記符号変換部は、
    前記プロセッサから入力された第1のデータ形式のデータを前記命令によって指定されたレジスタに格納するとともに、前記第1のデータ形式のデータに符号変換を施して前記第2のデータ形式のデータに変換し、変換したデータを前記命令によって指定されたレジスタに対応する前記変換レジスタに格納すること、
    を特徴とする請求項1に記載の演算処理装置。
  4. 前記複数のレジスタの一部に対応する数だけ前記変換レジスタを備えることを特徴とする請求項1〜3の何れか一つに記載の演算処理装置。
  5. 前記第1のデータ形式を通常の2進数とし、前記第2のデータ形式を剰余数系、SD数系、冗長2進系、またはBoothのアルゴリズムに基づく係数とすることを特徴とする請求項1〜4の何れか一つに記載の演算処理装置。
  6. プロセッサから入力された命令に基づいて、前記プロセッサから入力されたデータに論理演算処理または算術演算処理を施して演算処理結果を出力する演算処理装置において、
    前記データおよび前記演算処理結果を前記プロセッサが認識する第1のデータ形式で格納する複数のレジスタと、
    前記データおよび前記演算処理結果を前記第1のデータ形式とは異なる符合の第2のデータ形式で格納する前記複数のレジスタに対応する複数の変換レジスタと、
    前記第1のデータ形式のデータに符号変換を施して前記第2のデータ形式のデータに変換して前記変換レジスタに格納するとともに、前記第2のデータ形式のデータに逆符号変換を施して前記第1のデータ形式に変換して前記レジスタに格納する符号変換部と、
    前記命令に基づいて前記レジスタに格納されている前記第1のデータ形式のデータを用いて論理演算処理を実行する論理演算処理部と、
    前記命令に基づいて前記変換レジスタに格納されている前記第2のデータ形式のデータを用いて算術演算処理を実行する変換算術演算処理部と、
    を備え、
    前記第2のデータ形式のデータを前記第1のデータ形式のデータに変換した後に、前記プロセッサに算術演算処理の演算結果を出力すること、
    を特徴とする演算処理装置。
  7. 前記論理演算処理部は、
    前記プロセッサから入力された第1のデータ形式のデータを前記命令によって指定されたレジスタに格納し、
    前記符号変換部は、
    前記命令が算術演算処理を示す場合に前記レジスタに格納されている第1のデータ形式のデータに符号変換を施して第2のデータ形式のデータに変換し、変換したデータを前記レジスタに対応する変換レジスタに格納し、
    前記変換算術演算処理部は、
    前記変換レジスタに格納された第2のデータ形式のデータを用いて算術演算処理を実行し、実行した算術演算処理の演算結果を前記変換レジスタに格納すること、
    を特徴とする請求項6に記載の演算処理装置。
  8. 前記符号変換部は、
    前記プロセッサから入力された第1のデータ形式のデータを前記命令によって指定されたレジスタに格納するとともに、前記第1のデータ形式のデータに符号変換を施して前記第2のデータ形式のデータに変換し、変換したデータを前記命令によって指定されたレジスタに対応する前記変換レジスタに格納すること、
    を特徴とする請求項6に記載の演算処理装置。
  9. 前記複数のレジスタの一部に対応する数だけ前記変換レジスタを備えることを特徴とする請求項6〜8の何れか一つに記載の演算処理装置。
  10. 前記第1のデータ形式を通常の2進数とし、前記第2のデータ形式を剰余数系、SD数系、冗長2進系、またはBoothのアルゴリズムに基づく係数とすることを特徴とする請求項6〜9の何れか一つに記載の演算処理装置。
JP2005004223A 2005-01-11 2005-01-11 演算処理装置 Pending JP2006195563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005004223A JP2006195563A (ja) 2005-01-11 2005-01-11 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005004223A JP2006195563A (ja) 2005-01-11 2005-01-11 演算処理装置

Publications (1)

Publication Number Publication Date
JP2006195563A true JP2006195563A (ja) 2006-07-27

Family

ID=36801625

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005004223A Pending JP2006195563A (ja) 2005-01-11 2005-01-11 演算処理装置

Country Status (1)

Country Link
JP (1) JP2006195563A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6284334A (ja) * 1985-10-08 1987-04-17 Nec Corp 情報処理方式
JPH02282821A (ja) * 1989-04-25 1990-11-20 Seiko Epson Corp 数値演算装置
JP2001520775A (ja) * 1997-04-18 2001-10-30 サーティカム コーポレイション 算術プロセッサ
JP2004514960A (ja) * 2000-05-12 2004-05-20 ジ アテナ グループ インコーポレーティッド 剰余演算を用いて計算を行う方法および装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6284334A (ja) * 1985-10-08 1987-04-17 Nec Corp 情報処理方式
JPH02282821A (ja) * 1989-04-25 1990-11-20 Seiko Epson Corp 数値演算装置
JP2001520775A (ja) * 1997-04-18 2001-10-30 サーティカム コーポレイション 算術プロセッサ
JP2004514960A (ja) * 2000-05-12 2004-05-20 ジ アテナ グループ インコーポレーティッド 剰余演算を用いて計算を行う方法および装置

Similar Documents

Publication Publication Date Title
JP6371855B2 (ja) プロセッサ、方法、システム、プログラム、及び非一時的機械可読記憶媒体
US10209989B2 (en) Accelerated interlane vector reduction instructions
JP6456867B2 (ja) 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法
JP6162203B2 (ja) 命令に応じた丸め処理の実行
CN108647044B (zh) 浮点缩放处理器、方法、系统和指令
CN110879724A (zh) 用于深度学习和其它算法的fp16-s7e8混合精度
EP2435906B1 (en) Dsp engine with implicit mixed operands
TWI474258B (zh) 用於執行浮點捨入量決定指令之方法、裝置、系統及機器可讀取儲存媒體
TW201104569A (en) Microprocessors and methods for executing instruction
JPWO2006112045A1 (ja) 演算処理装置
TW201118725A (en) Microprocessor and method for enhanced precision sum-of-products calculation on a microprocessor
US10564932B2 (en) Methods for calculating floating-point operands and apparatuses using the same
JP2018506094A (ja) 多倍長整数(big integer)の算術演算を実行するための方法および装置
US20030037085A1 (en) Field processing unit
Boersma et al. The POWER7 binary floating-point unit
EP3671432B1 (en) Arithmetic processing device and method of controlling arithmetic processing device
US8117422B2 (en) Fast address translation for linear and circular modes
CN111752533A (zh) 用于矩阵运算的加速器系统和方法
US11656870B2 (en) Systems, apparatuses, and methods for dual complex multiply add of signed words
JP2006195563A (ja) 演算処理装置
TW201716990A (zh) 執行模式選擇的方法與裝置
CN112988230A (zh) 用于将大约为一的浮点值相乘的指令的装置、方法和系统
JP6497250B2 (ja) 演算処理装置および演算処理装置の制御方法
JP2001216136A (ja) 加算回路およびプロセッサ
US11669586B2 (en) Systems and methods for combining low-mantissa units to achieve and exceed FP64 emulation of matrix multiplication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100914