JP6069690B2 - 演算回路及び演算回路の制御方法 - Google Patents

演算回路及び演算回路の制御方法 Download PDF

Info

Publication number
JP6069690B2
JP6069690B2 JP2012179400A JP2012179400A JP6069690B2 JP 6069690 B2 JP6069690 B2 JP 6069690B2 JP 2012179400 A JP2012179400 A JP 2012179400A JP 2012179400 A JP2012179400 A JP 2012179400A JP 6069690 B2 JP6069690 B2 JP 6069690B2
Authority
JP
Japan
Prior art keywords
circuit
data
error detection
detection code
decimal
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.)
Active
Application number
JP2012179400A
Other languages
English (en)
Other versions
JP2014038413A (ja
Inventor
志郎 鴨志田
志郎 鴨志田
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 JP2012179400A priority Critical patent/JP6069690B2/ja
Priority to US13/907,979 priority patent/US20140046994A1/en
Publication of JP2014038413A publication Critical patent/JP2014038413A/ja
Application granted granted Critical
Publication of JP6069690B2 publication Critical patent/JP6069690B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/491Indexing scheme relating to groups G06F7/491 - G06F7/4917
    • G06F2207/4911Decimal floating-point representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、演算回路及び演算回路の制御方法に関する。
機能回路であるテスト対象回路のロジックBIST(Built-In Self Test)回路が知られている(例えば、特許文献1)。ロジックBIST回路は、テスト対象回路に供給する入力データから応答結果の期待値モジュロ値を生成し、テスト対象回路から出力される応答結果のモジュロ値を求め、応答結果のモジュロ値と期待値モジュロ値とを比較する。
特開2008−157860号公報
1つの側面では、本発明の目的は、ビット数が少ない及び/又はエラー検出率が高いエラー検出符号を生成することができる演算回路及び演算回路の制御方法を提供することである。
演算回路は、符号フィールド、コンビネーションフィールド及び後続仮数部フィールドを有するDPD(densely-packed decimal)フォーマットの10進浮動小数点数を保持する第1のレジスタと、前記10進浮動小数点数のエラーを検出するエラー検出符号の期待値を保持する第2のレジスタと、前記コンビネーションフィールドの値に対して排他的論理和演算及びモジュロ演算を含む演算を行う第1の論理演算回路と、前記後続仮数部フィールドの値に対して排他的論理和演算及びモジュロ演算を含む演算を行う第2の論理演算回路と、前記符号フィールドの値、前記第1の論理演算回路の演算結果及び前記第2の論理演算回路の演算結果に対して、論理演算を行うとともにエラー検出符号を生成する第3の論理演算回路と、前記第3の論理演算回路が生成した前記エラー検出符号を受信し、前記第3の論理演算回路が生成した前記エラー検出符号と前記10進浮動小数点数のエラー検出符号の期待値との比較結果に基づき、前記10進浮動小数点数のエラーを検出する比較回路と、を有する。
ビット数が少ない及び/又はエラー検出率が高いエラー検出符号を生成することができる。
図1は、実施形態による演算回路の構成例を示す図である。 図2(A)〜(C)は、DPDフォーマットの10進浮動小数点数を説明するための図である。 図3は、コンビネーションフィールドの上位5ビットを説明するための図である。 図4は、10ビットの組decletから3桁の10進数への変換方法を示す図である。 図5は、3桁の10進数から10ビットの組decletへの変換方法を示す図である。 図6は、図1のレジスタ及びRAS生成回路の構成例を示す図である。 図7(A)は単精度のDPDフォーマットの10進浮動小数点数のフォーマットを示す図であり、図7(B)は倍精度のDPDフォーマットの10進浮動小数点数のフォーマットを示す図である。 図8は、図6のpgu及びpgl生成回路の構成例を示す図である。 図9は、図8のpgu生成回路の構成例を示す図である。 図10は、図6のpt生成回路の構成例を示す図である。 図11は、図10のpd0生成回路の構成例を示す図である。 図12は、2ビットデータをワンホットの値に変換する回路の構成例を示す図である。 図13は、正値及び負値を表現する2ビットデータをワンホットの値に変換する回路の構成例を示す図である。 図14は、図12及び図13の変換回路を用いない場合のモジュロ演算回路の構成例を示す図である。 図15は、図12又は図13の変換回路を用いた場合のモジュロ演算回路の構成例を示す図である。 図16は、他の実施形態による図1の受信回路の構成例を示す図である。
図1は、実施形態による演算回路の構成例を示す図である。演算回路は、送信回路101及び受信回路102を有する。送信回路101は、レジスタ111及びRAS(信頼性、可用性及び保守性:reliability, availability and serviceability)生成回路112を有する。レジスタ111は、DPD(densely-packed decimal)フォーマットの10進浮動小数点数を記憶する。DPDフォーマットの10進浮動小数点数は、IEEE Standard for Floating-Point Arithmetic (IEEE Std 754-2008)により定義されている。RAS生成回路112は、第5の論理演算回路を有し、レジスタ111に記憶されているDPDフォーマットの10進浮動小数点数に対して排他的論理和(XOR)演算及びモジュロ演算を含む論理演算を行うことにより、エラー検出符号の期待値を生成する。送信回路101は、受信回路102に対して、レジスタ111に記憶されているDPDフォーマットの10進浮動小数点数、及びRAS生成回路112により生成されたエラー検出符号の期待値を送信する。
受信回路102は、レジスタ121,122、RAS生成回路123及び比較回路124を有し、送信回路101から上記のDPDフォーマットの10進浮動小数点数及びエラー検出符号の期待値を受信する。このDPDフォーマットの10進浮動小数点数の通信により、受信したDPDフォーマットの10進浮動小数点数にエラーが発生する可能性がある。受信回路102は、そのエラーを検出するためにRAS生成回路123及び比較回路124を有する。レジスタ121は、送信回路101から受信したDPDフォーマットの10進浮動小数点数を記憶する。レジスタ122は、送信回路101から受信したエラー検出符号の期待値を記憶する。RAS生成回路123は、上記のRAS生成回路112と同じ構成を有し、レジスタ121に記憶されているDPDフォーマットの10進浮動小数点数に対して排他的論理和演算及びモジュロ演算を含む論理演算を行うことにより、エラー検出符号を生成する。比較回路124は、RAS生成回路123により生成されたエラー検出符号とレジスタ122に記憶されているエラー検出符号の期待値とを比較する。そして、比較回路124は、両者が同一であれば、レジスタ121に記憶されているDPDフォーマットの10進浮動小数点数にエラーが存在しないことを示す情報を出力し、両者が異なっていれば、レジスタ121に記憶されているDPDフォーマットの10進浮動小数点数にエラーが存在することを示す情報を出力する。
図2(A)〜(C)は、DPDフォーマットの10進浮動小数点数を説明するための図である。図2(A)はDPDフォーマットの10進浮動小数点数のビット長を示す図であり、図2(B)は単精度のDPDフォーマットの10進浮動小数点数のフォーマットを示す図であり、図2(C)は倍精度のDPDフォーマットの10進浮動小数点数のフォーマットを示す図である。
図2(B)に示すように、単精度の10進浮動小数点数は、1ビットの符号フィールドS、11ビットのコンビネーションフィールドG及び20ビットの後続仮数部フィールドTを有し、全データ長が32ビットである。11ビットのコンビネーションフィールドGは、w(=6)ビットの下位ビットGL[w−1:0]及び5ビットの上位ビットGU[4:0]を有する。
図2(C)に示すように、倍精度の10進浮動小数点数は、1ビットの符号フィールドS、13ビットのコンビネーションフィールドG及び50ビットの後続仮数部フィールドTを有し、全データ長が64ビットである。13ビットのコンビネーションフィールドGは、w(=8)ビットの下位ビットGL[w−1:0]及び5ビットの上位ビットGU[4:0]を有する。
DPDフォーマットの10進浮動小数点数は、正負符号SG、仮数SF及び指数EXPを用いて、次式で表される。正負符号SGは、0が正値を示し、1が負値を示す。
(−1)SG×SF×10EXP
正負符号SGは、符号フィールドSに格納される。指数EXPは、コンビネーションフィールドGの一部に格納される。仮数SFは、コンビネーションフィールドGと後続仮数部フィールドTとに分割して格納される。
次に、コンビネーションフィールドGについて説明する。コンビネーションフィールドGは、5ビットの上位ビットGU[4:0]とwビットの下位ビットGL[w−1:0]とに分けられる。図3に示すように、5ビットの上位ビットGU[4:0]には、指数EXPの上位2ビットと、仮数SFの最上位桁(leftmost digit:LMD)の情報が格納される。図3の非数QNaNは、例えば、±0÷±0、±∞÷±∞、 √(−1) 等の演算が行われたときに出力される演算結果の非数である。非数SNaNは、例えば、ユーザーやソフトウェアが、バグ検出のトリガとして敢えて仕込む場合に使用される非数であり、通常演算(例えば、四則演算)に非数SNaNの入力があった場合、無効例外が報告される。これに対し、非数QNaNの入力があった場合、演算結果は各演算仕様に従った非数QNaNを出力し、非数SNaNの場合と異なり、無効例外を引き起こすことはない。ペイロード(payload)は、非数QNaN又はSNaNの情報を示す。
図3のように、仮数SFがゼロになるのは、上位ビットGU[4:0]が00000(2進数)、01000(2進数)、10000(2進数)のいずれかのときである。したがって、10進数の「+0」は、S=0、 T=0であり、かつ上位ビットGU[4:0]が00000(2進数)、01000(2進数)、10000(2進数)のいずれかとなる。すなわち、2ビットGU[4:3]の3パターンと下位ビットGL[w−1:0]のビット幅wの分だけゼロのバリエーション (コホート) がある。
次に、後続仮数部フィールドTについて説明する。後続仮数部フィールドTは、10ビットの組decletが複数個連なる。図2(A)に示すように、単精度では後続仮数部フィールドTは2個の10ビットの組decletを有し、倍精度では後続仮数部フィールドTは5個の10ビットの組decletを有する。各10ビットの組decletは、0から999までの3桁の10進数を表現する。図2(A)に示すように、単精度では後続仮数部フィールドTは3桁×2=6桁の10進数を表現可能であり、倍精度では後続仮数部フィールドTは3桁×5=15桁の10進数を表現可能である。
図4は、10ビットの組decletから3桁の10進数への変換方法を示す図である。ここで、10ビットの組decletは10ビットb[9:0]で表され、3桁の10進数は「100×h+10×t+o」で表される。hは、百の位を表す4ビットh0〜h3のデータである。tは、十の位を表す4ビットt0〜t3のデータである。oは、一の位を表す4ビットo0〜o3のデータである。
図5は、3桁の10進数から10ビットの組decletへの変換方法を示す図である。ここで、3桁の10進数は「100×h+10×t+o」で表され、10ビットの組decletは10ビットb[9:0]で表される。hは、百の位を表す4ビットh0〜h3のデータである。tは、十の位を表す4ビットt0〜t3のデータである。oは、一の位を表す4ビットo0〜o3のデータである。
10ビットb[9:0]で表現できる数は1024種類であり、3桁の10進数で表現できる数は1000種類であり、両者は異なるため、24個の10ビットの組decletについては、複数の10ビットb[9:0]の表現が1つの10進数に対応している。
図6は、図1のレジスタ111及びRAS生成回路112の構成例を示す図である。RAS生成回路112の構成を例に説明するが、図1のRAS生成回路123の構成も、RAS生成回路112の構成と同じである。レジスタ111には、上記のように、符号フィールドS、コンビネーションフィールドG及び後続仮数部フィールドTを有するDPDフォーマットの10進浮動小数点数が記憶されている。符号フィールドSは、1ビットの符号データpsを記憶する。コンビネーションフィールドGは、上記のように、5ビットの上位ビットGU[4:0]及びwビットの下位ビットGL[w−1:0]を有する。後続仮数部フィールドTは、倍精度の場合、4個の10ビットの組decletのデータD0〜D4を記憶する。
図7(A)は、図2(B)に対応し、単精度のDPDフォーマットの10進浮動小数点数のフォーマットを示す図である。後続仮数部フィールドTは、2個の10ビットの組decletのデータD0及びD1を記憶する。データD0及びD1は、それぞれ10ビットのデータである。
図7(B)は、図2(C)に対応し、倍精度のDPDフォーマットの10進浮動小数点数のフォーマットを示す図である。後続仮数部フィールドTは、5個の10ビットの組decletのデータD0〜D4を記憶する。データD0〜D4は、それぞれ10ビットのデータである。
以下、図6では、倍精度の場合を例に示すが、単精度の場合も同様である。RAS生成回路112は、pgu及びpgl生成回路601、pt生成回路602、モジュロ演算回路603及び排他的論理和回路604を有する論理演算回路を有する。
pgu及びpgl生成回路601は、コンビネーションフィールドGの値に対して排他的論理和演算及びモジュロ演算を含む演算を行う第の論理演算回路であり、上位ビットGU[4:0]及び下位ビットGL[w−1:0]に対して論理演算を行い、1ビットのデータpgX及び2ビットのデータpguY[1:0]を出力する。
pt生成回路602は、後続仮数部フィールドTの値に対して排他的論理和演算及びモジュロ演算を含む演算を行う第の論理演算回路であり、データD0〜D4に対して論理演算を行い、1ビットのデータptX及び2ビットのデータptY[1:0]を出力する。
モジュロ演算回路603及び排他的論理和回路604は、符号フィールドSのデータps、pgu及びpgl生成回路601の演算結果データpgX,pguY[1:0]、及びpt生成回路602の演算結果データptX,ptY[1:0]に対して、論理演算を行う第の論理演算回路である。
モジュロ演算回路603は、(pguY[1:0]+ptY[1:0])%3のモジュロ演算を行い、2ビットのデータp[1:0]を出力する。ここで、記号「%」は、モジュロ演算を示す。例えば、x%3は、xを3で割った余りを示す。また、2ビットデータpguY[1:0]の四則演算上の扱いは、pguY[1:0]=2×pguY[1]+pguY[0]である。以下、同様である。排他的論理和回路604は、符号データps、データpgX及びデータptXの排他的論理和演算を行い、1ビットデータp[2]を出力する。RAS生成回路112は、1ビットデータp[2]及び2ビットデータp[1:0]を合わせて、3ビットデータp[2:0]をエラー検出符号として出力する。
図8は、図6のpgu及びpgl生成回路601の構成例を示す図である。pgu及びpgl生成回路601は、pgu生成回路801、排他的論理和回路802及び803を有する。pgu生成回路801は、上位ビットGU[4:0]に対して論理演算を行い、2ビットデータpguY[1:0]及び1ビットデータpguXを出力する。排他的論理和回路802は、wビットの下位ビットGL[w−1:0]の各ビットの排他的論理和演算を行い、1ビットデータpglを出力する。ここで、図8の記号「^」は、排他的論理和演算を示す。排他的論理和回路803は、データpguX及びデータpglの排他的論理和演算を行い、1ビットデータpgxを出力する。pgu及びpgl生成回路601は、2ビットデータpguY[1:0]及び1ビットデータpgXを出力する。
図9は、図8のpgu生成回路801の構成例を示す図である。論理回路901は、4ビットデータGU[4:1]が「1110」(2進数)又は3ビットデータGU[4:2]が「110」(2進数)であるときには「1」を出力し、それ以外のときには「0」を出力する。論理回路902は、2ビットデータGU[4:3]が「10」(2進数)又は1ビットデータGU[4]が「0」(2進数)であるときには「1」を出力し、それ以外のときには「0」を出力する。
モジュロ演算回路903は、(2+GU[0])%3のモジュロ演算を行い、2ビットの演算結果データ(2+GU[0])%3を出力する。モジュロ演算回路904は、(2×GU[1]+GU[2]+GU[0])%3のモジュロ演算を行い、2ビットの演算結果データ(2×GU[1]+GU[2]+GU[0])%3を出力する。
論理積(AND)回路905は、論理回路901が「1」を出力するときには、モジュロ演算回路903の出力データ(2+GU[0])%3を出力し、論理回路901が「0」を出力するときには、「0」を出力する。論理積回路906は、論理回路902が「1」を出力するときには、モジュロ演算回路904の出力データ(2×GU[1]+GU[2]+GU[0])%3を出力し、論理回路902が「0」を出力するときには、「0」を出力する。論理和(OR)回路907は、論理積回路905及び906の出力データの論理和を演算し、2ビットデータpguY[1:0]を出力する。
論理回路908は、4ビットデータGU[4:1]が「1111」(2進数)であるときには「1」を出力し、それ以外のときには「0」を出力する。論理積回路909は、論理回路908が「1」を出力するときには、1ビットデータGU[0]を出力し、論理回路908が「0」を出力するときには、「0」を出力する。排他的論理和回路910は、4ビットデータGU[1]、GU[2]、GU[3]、GU[4]の各ビットデータと論理積回路909の出力データの排他的論理和演算を行い、1ビットデータpguXを出力する。
以上のように、GU[4:1]=「1111」(2進数)のとき、
pguX=GU[4]^GU[3]^GU[2]^GU[1]^GU[0]
pguY[1:0]=0
になる。ここで、記号「^」は、排他的論理和演算を示す。
また、GU[4:1]=「1110」(2進数)又は「110x」(2進数)のとき、
pguX=GU[4]^GU[3]^GU[2]^GU[1]
pguY[1:0]=(2+GU[0])%3
になる。ここで、「x」は、任意の値を示す。
また、GU[4:1]=「10xx」(2進数)又は「0xxx」(2進数)のとき、
pguX=GU[4]^GU[3]^GU[2]^GU[1]
pguY[1:0]=(2×GU[1]+GU[2]+GU[0])%3
になる。
図10は、図6のpt生成回路602の構成例を示す図である。後続仮数部フィールドTは、上記のように、5個の10ビットデータD0[9:0]、D1[9:0]、D2[9:0]、D3[9:0]、D4[9:0]を有する。pd0生成回路1001は、10ビットデータD0[9:0]に対して論理演算を行い、1ビットデータpd0X及び2ビットデータpd0Y[1:0]を出力する。pd1生成回路1002は、10ビットデータD1[9:0]に対して論理演算を行い、1ビットデータpd1X及び2ビットデータpd1Y[1:0]を出力する。pd2生成回路1003は、10ビットデータD2[9:0]に対して論理演算を行い、1ビットデータpd2X及び2ビットデータpd2Y[1:0]を出力する。pd3生成回路1004は、10ビットデータD3[9:0]に対して論理演算を行い、1ビットデータpd3X及び2ビットデータpd3Y[1:0]を出力する。pd4生成回路1005は、10ビットデータD4[9:0]に対して論理演算を行い、1ビットデータpd4X及び2ビットデータpd4Y[1:0]を出力する。
モジュロ演算回路1006は、次式のように、(pd4Y[1:0]+pd3Y[1:0]+pd2Y[1:0]+pd1Y[1:0]+pd0Y[1:0])%3のモジュロ演算を行い、2ビットデータptY[1:0]を出力する。
ptY[1:0]=(pd4Y[1:0]+pd3Y[1:0]+pd2Y[1:0]+pd1Y[1:0]+pd0Y[1:0])%3
排他的論理和回路1007は、次式のように、(pd0X^pd1X^pd2X^pd3X^pd4X)の排他的論理和演算を行い、1ビットデータptXを出力する。
ptX=pd4X^pd3X^pd2X^pd1X^pd0X
図11は、図10のpd0生成回路1001の構成例を示す図である。以下、pd0生成回路1001の構成を例に説明するが、図10のpd1生成回路1002、pd2生成回路1003、pd3生成回路1004、pd4生成回路1005も、pd0生成回路1001と同じ構成を有する。
論理回路1101は、3ビットデータD0[3:1]が「110」(2進数)又は5ビットデータD0[6,5,3:1]が「00111」(2進数)であるときには「1」を出力し、それ以外のときには「0」を出力する。
論理回路1102は、3ビットデータD0[3:1]が「100」(2進数)又は5ビットデータD0[6,5,3:1]が「01111」(2進数)であるときには「1」を出力し、それ以外のときには「0」を出力する。
論理回路1103は、5ビットデータD0[6,5,3:1]が「11111」(2進数)であるときには「1」を出力し、それ以外のときには「0」を出力する。
論理積回路1106は、論理回路1101が「1」を出力するときには「1」を出力し、論理回路1101が「0」を出力するときには「0」を出力する。論理積回路1107は、論理回路1102が「1」を出力するときには「2」を出力し、論理回路1102が「0」を出力するときには「0」を出力する。
モジュロ演算回路1104は、(2×D0[9]+D0[8])%3のモジュロ演算を行い、(2×D0[9]+D0[8])%3の演算結果を出力する。論理積回路1108は、論理回路1103が「1」を出力するときには、モジュロ演算回路1104の出力データ(2×D0[9]+D0[8])%3を出力し、論理回路1103が「0」を出力するときには、「0」を出力する。
論理和回路1109は、論理積回路1106〜1108の出力データの論理和を演算し、その演算結果データA1を出力する。
モジュロ演算回路1105は、{2×(D0[8]+D0[5]+D0[1])+D0[9]+D0[7]+D0[6]+D0[4]+D0[2]+D0[0]}%3のモジュロ演算を行い、その演算結果データA2を出力する。
モジュロ演算回路1110は、(A1+A2)%3のモジュロ演算を行い、2ビットデータpd0Y[1:0]を出力する。
排他的論理和回路1111は、次式のように、D0[6]^D0[5]^D0[3]^D0[2]^D0[1]の排他的論理和演算を行い、1ビットデータpd0Xを出力する。
pd0X=D0[6]^D0[5]^D0[3]^D0[2]^D0[1]
以上のように、5ビットデータD0[6,5,3:1]が「xx0xx」(2進数)、「xx101」(2進数)又は「10111」のとき、
pd0Y[1:0]={2×(D0[8]+D0[5]+D0[1])+D0[9]+D0[7]+D0[6]+D0[4]+D0[2]+D0[0]}%3
になる。
また、5ビットデータD0[6,5,3:1]が「xx100」(2進数)又は「01111」(2進数)のとき、
pd0Y[1:0]={2×(D0[8]+D0[5]+D0[1])+D0[9]+D0[7]+D0[6]+D0[4]+D0[2]+D0[0]+2}%3
になる。
また、5ビットデータD0[6,5,3:1]が「xx110」(2進数)又は「 00111」(2進数)のとき、
pd0Y[1:0]={2×(D0[8]+D0[5]+D0[1])+D0[9]+D0[7]+D0[6]+D0[4]+D0[2]+D0[0]+1}%3
になる。
また、5ビットデータD0[6,5,3:1]が「11111」(2進数)のとき、
pd0Y[1:0]={2×(D0[5]+D0[1])+D0[7]+D0[6]+D0[4]+D0[2]+D0[0]}%3
になる。
なお、D0[6,5,3:1]が「11111」(2進数)のとき、D0[9:8]はドントケアなデータになる。よって、上記の方法ではD0[6,5,3:1]が「11111」(2進数)のときに、D0[9:8]のデータ化けが発生しても、エラーを検出しないようになっている。もし、これもエラーとして検出したい場合は、D0[6,5,3:1]が「11111」(2進数)のときだけ、次式により、データpd0Xを演算すればよい。
pd0X=D0[9]^D0[8]^D0[6]^D0[5]^D0[3]^D0[2]^D0[1]
図12は、図11の2ビットデータpd0Y[1:0]をワンホットの値r[2:0]に変換する回路の構成例を示す図である。2ビットデータpd0Y[1:0]は、図11のモジュロ演算回路1110において、3で割った余りなので、「00」(2進数)、「01」(2進数)又は「10」(2進数)である。図12の変換回路は、2ビットデータpd0Y[1:0]を、3ビットのうちのいずれかのビットが1であるワンホットの値r[2:0]に変換する。インバータ1201は、データpd0Y[1]の論理反転データを出力する。インバータ1202は、データpd0Y[0]の論理反転データを出力する。論理積回路1203は、データpd0Y[1]及びインバータ1202の出力データの論理積データを1ビットデータr[2]として出力する。論理積回路1204は、インバータ1201の出力データ及びデータpd0Y[0]の論理積データを1ビットデータr[1]として出力する。排他的論理和回路1205は、データpd0Y[1]及びpd0Y[0]の排他的論理和データを1ビットデータr[0]として出力する。
2ビットデータpd0Y[1:0]は、「00」(2進数)が「0」(10進数)を示し、「01」(2進数)が「1」(10進数)を示し、「10」(2進数)が「2」(10進数)を示す。
2ビット入力データpd0Y[1:0]と3ビット出力データr[2:0]の関係は、下記のようになる。
pd0Y[1:0]=00 → r[2:0]=001
pd0Y[1:0]=01 → r[2:0]=010
pd0Y[1:0]=10 → r[2:0]=100
上記のように、3ビットデータr[2:0]は、3ビットのうちのいずれかのビットが1であるワンホットの値である。データpd1Y[2:0]〜pd4Y[2:0]も、データpd0Y[2:0]と同様に、ワンホットの値に変換される。なお、図12の回路は、2ビットデータpd0Y[1:0]が正値のみを表現する場合の変換回路である。2ビットデータpd0Y[1:0]が正値及び負値を表現する場合の変換回路を図13に示す。
図13は、正値及び負値を表現する2ビットデータpd0Y[1:0]をワンホットの値r[2:0]に変換する回路の構成例を示す図である。インバータ1301は、データpd0Y[1]の論理反転データを出力する。インバータ1302は、データpd0Y[0]の論理反転データを出力する。論理積回路1303は、データpd0Y[1]及びpd0Y[0]の論理積データを1ビットデータr[2]として出力する。否定排他的論理和(XNOR)回路1304は、データpd0Y[1]及びpd0Y[0]の否定排他的論理和データを1ビットデータr[1]として出力する。すなわち、否定排他的論理和(XNOR)回路1304は、データpd0Y[1]及びpd0Y[0]の排他的論理和データを演算し、その論理反転データを1ビットデータr[1]として出力する。論理積回路1305は、インバータ1301及び1302の論理積データを1ビットデータr[0]として出力する。
2ビットデータpd0Y[1:0]は、「01」(2進数)が「+1」(10進数)を示し、「00」(2進数)が「0」(10進数)を示し、「11」(2進数)が「−1」(10進数)を示し、「10」(2進数)が「−2」(10進数)を示す。
2ビット入力データpd0Y[1:0]と3ビット出力データr[2:0]の関係は、下記のようになる。
pd0Y[1:0]=00 → r[2:0]=001
pd0Y[1:0]=01 → r[2:0]=010
pd0Y[1:0]=10 → r[2:0]=010
pd0Y[1:0]=11 → r[2:0]=100
以上のように、図12又は図13の変換回路を用いることにより、図10のモジュロ演算回路1006の処理速度を速くすることができる。
図14は、図12及び図13の変換回路を用いない場合のモジュロ演算回路1006の構成例を示す図である。図10のモジュロ演算回路1006は5個のデータpd0Y[1:0]〜dp4Y[1:0]を入力するが、図14のモジュロ演算回路1006では、説明の簡単のため、2個のデータpd0Y[1:0]及びpd1Y[1:0]を入力する場合を例に説明する。
インバータ1401は、データpd1Y[1]の論理反転データを出力する。インバータ1402は、データpd1Y[0]の論理反転データを出力する。インバータ1403は、データpd0Y[1]の論理反転データを出力する。インバータ1404は、データpd0Y[0]の論理反転データを出力する。論理積回路1405は、インバータ1401の出力データ、インバータ1402の出力データ及びデータpd0Y[1]の論理積データを出力する。論理積回路1406は、インバータ1403の出力データ、インバータ1404の出力データ及びデータpd1Y[1]の論理積データを出力する。論理積回路1407は、データpd0Y[0]及びpd1Y[0]の論理積データを出力する。論理積回路1408は、インバータ1401の出力データ、インバータ1402の出力データ及びデータpd0Y[0]の論理積データを出力する。論理積回路1409は、インバータ1403の出力データ、インバータ1404の出力データ及びデータpd1Y[0]の論理積データを出力する。論理積回路1410は、データpd1Y[1]及びpd0Y[1]の論理積データを出力する。論理和回路1411は、論理積回路1405〜1407の出力データの論理和データを1ビットデータptY[1]として出力する。論理和回路1412は、論理積回路1408〜1410の出力データの論理和データを1ビットデータptY[0]として出力する。
以上のように、図14のモジュロ演算回路1006は、データpd0Y[1:0]及びpd1Y[1:0]が入力されてからデータptY[1:0]が出力されるまでにゲート3段分の処理時間を要する。
図15は、図12又は図13の変換回路を用いた場合のモジュロ演算回路1006の構成例を示す図である。上記と同様に、図15のモジュロ演算回路1006では、説明の簡単のため、2個の3ビットデータr0[2:0]及びr1[2:0]を入力する場合を例に説明する。3ビットデータr0[2:0]は、2ビットデータpdY0[1:0]が図12又は図13の変換回路により変換された3ビットデータr[2:0]に対応する。3ビットデータr1[2:0]は、2ビットデータpdY1[1:0]が図12又は図13の変換回路により変換された3ビットデータr[2:0]に対応する。
論理積回路1501は、データr0[2]及びr1[0]の論理積データを出力する。論理積回路1502は、データr0[1]及びr1[1]の論理積データを出力する。論理積回路1503は、データr0[0]及びr1[2]の論理積データを出力する。論理積回路1504は、データr0[2]及びr1[2]の論理積データを出力する。論理積回路1505は、データr0[1]及びr1[0]の論理積データを出力する。論理積回路1506は、データr0[0]及びr1[1]の論理積データを出力する。論理積回路1507は、データr0[2]及びr1[1]の論理積データを出力する。論理積回路1508は、データr0[1]及びr1[2]の論理積データを出力する。論理積回路1509は、データr0[0]及びr1[0]の論理積データを出力する。論理和回路1510は、論理積回路1501〜1503の出力データの論理和データを1ビットデータptY[2]として出力する。論理和回路1511は、論理積回路1504〜1506の出力データの論理和データを1ビットデータptY[1]として出力する。論理和回路1512は、論理積回路1507〜1509の出力データの論理和データを1ビットデータptY[0]として出力する。その結果、モジュロ演算回路1006は、3ビットデータptY[2:0]を出力する。
実際には、モジュロ演算回路1006は、次式により、3ビットデータptY[2:0]を演算する。ここで、データr4[2:0]、r3[2:0]、r2[2:0]は、それぞれ、データpd4Y[1:0]、pd3Y[1:0]、pd2Y[1:0]に対応するデータr[2:0]である。
ptY[2:0]=(r4[2:0]+r3[2:0]+r2[2:0]+r1[2:0]+r0[2:0])%3
また、図9のモジュロ演算も同様に行うと、2ビットデータpguY[1:0]は、3ビットデータpguY[2:0]になる。
その場合、図6の4ビットのエラー検出符号p[3:0]は、次式により生成される。
p[3]=ps^pguX^pgl^ptX
p[2:0]=(pguY[2:0]+ptY[2:0])%3
なお、図13の回路の場合、3ビットデータr0[2:0]及びr1[2:0]は、上記のように、10進数で「+1」、「0」、「−1」、「−2」の値をとり得る。その場合、x%3のモジュロ演算は、x=+1の場合には「+1」%3=1になり、x=0の場合には「0」%3=0になり、x=−1の場合には「−1」%3=3−1=2になり、x=−2の場合には「−2」%3=3−2=1になる。
以上のように、図15のモジュロ演算回路1006は、データr0[2:0]及びr1[2:0]が入力されてからデータptY[2:0]が出力されるまでにゲート2段分の処理時間を要し、図14のモジュロ演算回路1006の場合より処理時間を短くすることができる。他のモジュロ演算回路も同様である。以上のように、図15のモジュロ演算回路1006等は、複数ビットのうちのいずれかのビットが1であるワンホットの値に対してモジュロ演算を行うことにより、RAS生成回路112の処理を高速化することができる。特に、ディレイ要件が厳しい場合には、メリットが大きい。
なお、上記では、図6のRAS生成回路112が3ビットのエラー検出符号p[2:0]を生成する例を説明した。3ビットのエラー検出符号p[2:0]は、最もビット数が少ないエラー検出符号であり、DPDフォーマットの10進浮動小数点数の1ビットエラーを100%検出することができる。しかし、2ビット以上のエラー検出率は、比較的低い。以下、エラー検出符号のビット数を増やすことにより、2ビット以上のエラー検出率を高くする例を説明する。
他の例として、図10の排他的論理和回路1007を削除し、5ビットデータpd0X〜Pd4Xをそのままエラー検出符号として出力してもよい。
また、図10のモジュロ演算回路1006を削除し、5個の2ビットデータpd0Y[1:0]〜pd4Y[1:0]をそのままエラー検出符号として出力してもよい。
また、図10の排他的論理和回路1007及びモジュロ演算回路1006を削除し、5ビットデータpd0X〜pd4X及び5個の2ビットデータpd0Y[1:0]〜pd4Y[1:0]をそのままエラー検出符号として出力してもよい。
また、図10のpd0生成回路1001、pd1生成回路1002及びpd2生成回路1003のグループの出力データに対して論理演算を行い、pd3生成回路1004及びpd4生成回路1005のグループの出力データに対して論理演算を行い、エラー検出符号を生成してもよい。
また、エラー検出符号の演算をし易くするため、下記の演算により、指数用の1ビットエラー検出符号p[3]及び仮数用の3ビットエラー検出符号p[2:0]に分けて生成してもよい。
p[3]=pguX^pgl
p[2]=ps^ptX
p[1:0]=(pguY[1:0]+ptY[1:0])%3
図16は、他の実施形態による図1の受信回路102の構成例を示す図である。レジスタ121は、図1のレジスタ121と同様に、送信回路101から受信したDPDフォーマットの10進浮動小数点数を記憶する。レジスタ122も、図1のレジスタ122と同様に、送信回路101から受信した3ビットのエラー検出符号p[2:0]を記憶する。フォーマット変換回路1601は、レジスタ121に記憶されているDPDフォーマットの10進浮動小数点数をBCD(binary-coded decimal)フォーマットの10進数に変換する。
BCDフォーマットの10進数は、10進数の1桁を2進数の4桁で表現する。例えば、「127」の10進数は、「0001 0010 0111」の12ビットの2進数で表現される。
レジスタ1602は、フォーマット変換回路1601により変換されたBCDフォーマットの10進数を記憶する。
RAS生成回路1604は、BCDエラー検出符号生成回路であり、下記のように、レジスタ1602に記憶されているBCDフォーマットの10進数のエラー検出符号を生成する。
任意の10進数Nを下記のように定義する。
N=di×10i+d(i-1)×10(i-1)+・・・+d1×101+d0
(di=0〜9、i=0,1,・・・)
ここで、(9×d)%3=0であるので、次式が成立する。
(d×10)%3=d×(9+1)%3=d%3
これより、次式が成立する。
(d×10j)%3=d%3 (j=0,1,2,・・・)
よって、次式が成立する。
N%3={di+d(i-1)+・・・+d1+d0}%3
(di=0〜9、i=0,1,・・・)
iが4ビットの2進数で表されているとすると、
i=a(i,3)×23+a(i,2)×22+a(i,1)×21+a(i,0)
ここで、a(i,j)=は0又は1、i=0,1,2,・・・、j=0,1,2,3、各a(i,j) はdiが0〜9の範囲となる組み合わせを取る。
よって、次式が成立する。
i%3={a(i,3)×23+a(i,2)×22+a(i,1)×21+a(i,0)}%3
={2×(a(i,3)+a(i,1))+(a(i,2)+a(i,0))}%3
これを元の式に当てはめると、次式が成立する。
N%3={2×(a(i,3)+a(i,1)+・・・+a(0,3)+a(0,1)
+(a(i,2)+a(i,0)+・・・+a(0,2)+a(0,0))}%3
この式にはNの全ビットが含まれている。すなわち、ドントケアなビットは存在しない。また、Nの任意の1ビットa(i,j) にビット化けが発生したとすると、その値は必ず(N+1)%3又は(N+2)%3のどちらかになることも、この式からわかる。
次式が成立するから、Nの任意の1ビットが反転したとき、N%3は、必ず正常な値とは異なる値を示す。
N%3≠(N+1)%3
N%3≠(N+2)%3
RAS生成回路1604は、上記のN%3のモジュロ演算により、2ビットのエラー検出符号を生成し、Nの1ビット化けを100%検出可能である。
レジスタ1603は、レジスタ122に記憶されている3ビットのエラー検出符号p[2:0]のうちの下位の2ビットのエラー検出符号[1:0]を記憶する。
比較回路1605は、RAS生成回路1604により生成された2ビットのエラー検出符号と、レジスタ1603に記憶されている2ビットのエラー検出符号p[1:0]とを比較することにより、レジスタ1602に記憶されているBCDフォーマットの10進数のエラーを検出する。具体的には、比較回路1605は、両者が同一であれば、レジスタ1602に記憶されているBCDフォーマットの10進数にエラーが存在しないことを示す情報を出力し、両者が異なっていれば、レジスタ1602に記憶されているBCDフォーマットの10進数にエラーが存在することを示す情報を出力する。
以上のように、DPDフォーマットの10進浮動小数点数は、フォーマット変換回路1601により、一旦、BCDフォーマットの10進数に変換される。RAS生成回路1604は、10進数を3で割った余りを2ビットのエラー検出符号として生成する。
レジスタ1603には、DPDフォーマットの10進浮動小数点数の2ビットのエラー検出符号p[1:0]が記憶されている。エラー検出符号p[1:0]は、レジスタ122に記憶されている3ビットのエラー検出符号p[2:0]の一部のビットであり、BCDフォーマットの10進数のエラー検出符号としても、そのまま流用することができる。モジュロ演算結果は、四則演算と相性が良く、BCDフォーマットでの四則演算結果に対して、そのモジュロ演算結果も容易に予測が可能である。
以上のように、図6のRAS生成回路112は、DPDフォーマットの10進浮動小数点数のエラー検出符号p[2:0]を生成する。そのエラー検出符号p[2:0]は、図1の受信回路102に示すように、DPDフォーマットの10進浮動小数点数のエラー検出に使用可能であるのみならず、図16の受信回路102に示すように、DPDフォーマットの10進浮動小数点数から変換されたBCDフォーマットの10進数のエラー検出にも使用可能である点で、有用である。
上記実施形態によれば、DPDフォーマット及びBCDフォーマットに対して別々のエラー検出符号を生成する場合と比較して同等以上のエラー検出率を持ち、かつDPDフォーマット用の3ビットのエラー検出符号p[2:0]からBCDフォーマット用の2ビットのエラー検出符号p[1:0]への変換を、小さな回路規模で実現することができる。
エラー検出率について説明する。1ビットエラーは、100%検出可能である。2ビット以上のエラー検出率は、エラー検出符号のビット数に応じて、0%より大きく100%未満になる。なお、エラー検出符号として、パリティを用いた場合には、2ビット以上のエラーを検出できないので、本実施形態のエラー検出率は高いと言える。
また、本実施形態は、上記のように、使い方に応じて、エラー検出符号のビット数を変えることができ、3ビットまで少なくすることができる。また、本実施形態は、エラー発生箇所を、細かく特定できる。例えば、10ビットの組declet単位での特定が可能である。
また、DPDフォーマットの3ビットのエラー検出符号p[2:0]のうちの2ビットのエラー検出符号p[1:0]は、そのままBCDフォーマットのエラー検出符号として流用できる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 送信回路
102 受信回路
111,121,122 レジスタ
112,123 RAS生成回路
124 比較回路
601 pgu及びpgl生成回路
602 pt生成回路
603 モジュロ演算回路
604 排他的論理和回路

Claims (5)

  1. 符号フィールド、コンビネーションフィールド及び後続仮数部フィールドを有するDPD(densely-packed decimal)フォーマットの10進浮動小数点数を保持する第1のレジスタと、
    前記10進浮動小数点数のエラーを検出するエラー検出符号の期待値を保持する第2のレジスタと、
    前記コンビネーションフィールドの値に対して排他的論理和演算及びモジュロ演算を含む演算を行う第1の論理演算回路と、
    前記後続仮数部フィールドの値に対して排他的論理和演算及びモジュロ演算を含む演算を行う第2の論理演算回路と、
    前記符号フィールドの値、前記第1の論理演算回路の演算結果及び前記第2の論理演算回路の演算結果に対して、論理演算を行うとともにエラー検出符号を生成する第3の論理演算回路と
    前記第3の論理演算回路が生成した前記エラー検出符号を受信し、前記第3の論理演算回路が生成した前記エラー検出符号と前記10進浮動小数点数のエラー検出符号の期待値との比較結果に基づき、前記10進浮動小数点数のエラーを検出する比較回路と、
    を有することを特徴とする演算回路。
  2. 前記演算回路はさらに、
    前記10進浮動小数点数を前記第1のレジスタに送信するとともに、前記10進浮動小数点数のエラー検出符号の期待値を前記第2のレジスタに送信する送信回路を有し、
    前記送信回路は、
    前記10進浮動小数点数に対して排他的論理和演算及びモジュロ演算を含む論理演算を行うことにより、前記エラー検出符号の期待値を生成する第5の論理演算回路を有することを特徴とする請求項記載の演算回路。
  3. 前記演算回路はさらに、
    前記DPDフォーマットの10進浮動小数点数をBCD(binary-coded decimal)フォーマットの10進数に変換するフォーマット変換回路と、
    前記BCDフォーマットの10進数のエラー検出符号を生成するBCDエラー検出符号生成回路と、
    前記BCDフォーマットの10進数のエラー検出符号と前記第5の論理演算回路が生成したエラー検出符号の期待値の一部との比較結果に基づき、前記BCDフォーマットの10進数のエラーを検出する比較回路と
    を有することを特徴とする請求項記載の演算回路。
  4. 前記第の論理演算回路は、
    複数ビットのうちのいずれかのビットが1であるワンホットの値に対してモジュロ演算を行うことを特徴とする請求項1〜のいずれか1項に記載の演算回路。
  5. 符号フィールド、コンビネーションフィールド及び後続仮数部フィールドを有するDPD(densely-packed decimal)フォーマットの10進浮動小数点数を保持する第1のレジスタと、前記10進浮動小数点数のエラーを検出するエラー検出符号の期待値を保持する第2のレジスタとを有する演算回路の制御方法において、
    前記演算回路が有する第1の論理演算回路が、前記コンビネーションフィールドの値に対して排他的論理和演算及びモジュロ演算を含む演算を行い、
    前記演算回路が有する第2の論理演算回路が、前記後続仮数部フィールドの値に対して排他的論理和演算及びモジュロ演算を含む演算を行い、
    前記演算回路が有する第3の論理演算回路が、前記符号フィールドの値、前記第1の論理演算回路の演算結果及び前記第2の論理演算回路の演算結果に対して、論理演算を行うとともにエラー検出符号を生成し、
    前記演算回路が有する比較回路が、前記第3の論理演算回路が生成した前記エラー検出符号を受信し、前記第3の論理演算回路が生成した前記エラー検出符号と前記10進浮動小数点数のエラー検出符号の期待値との比較結果に基づき、前記10進浮動小数点数のエラーを検出する
    ことを特徴とする演算回路の制御方法。
JP2012179400A 2012-08-13 2012-08-13 演算回路及び演算回路の制御方法 Active JP6069690B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012179400A JP6069690B2 (ja) 2012-08-13 2012-08-13 演算回路及び演算回路の制御方法
US13/907,979 US20140046994A1 (en) 2012-08-13 2013-06-03 Operation circuit and control method of operation circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012179400A JP6069690B2 (ja) 2012-08-13 2012-08-13 演算回路及び演算回路の制御方法

Publications (2)

Publication Number Publication Date
JP2014038413A JP2014038413A (ja) 2014-02-27
JP6069690B2 true JP6069690B2 (ja) 2017-02-01

Family

ID=50066997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012179400A Active JP6069690B2 (ja) 2012-08-13 2012-08-13 演算回路及び演算回路の制御方法

Country Status (2)

Country Link
US (1) US20140046994A1 (ja)
JP (1) JP6069690B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6344135B2 (ja) * 2014-08-18 2018-06-20 富士通株式会社 エラー検出コード生成回路,エラー検出コード生成方法及びフォーマット変換装置
US10915385B2 (en) 2017-03-21 2021-02-09 International Business Machines Corporation Residue prediction of packed data
US11221826B2 (en) 2019-07-30 2022-01-11 International Business Machines Corporation Parallel rounding for conversion from binary floating point to binary coded decimal
US11210064B2 (en) * 2019-07-30 2021-12-28 International Business Machines Corporation Parallelized rounding for decimal floating point to binary coded decimal conversion
US11275584B2 (en) * 2019-08-14 2022-03-15 Jerry D. Harthcock Universal floating-point instruction set architecture for computing directly with decimal character sequences and binary formats in any combination

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6284336A (ja) * 1985-10-08 1987-04-17 Nec Corp モジユロ3剰余発生器
US5144574A (en) * 1989-01-30 1992-09-01 Nippon Telegraph And Telephone Corporation Modular multiplication method and the system for processing data
JPH10215187A (ja) * 1997-01-29 1998-08-11 Nec Corp 誤り検出符号化復号装置および方法
US8364734B2 (en) * 2005-09-15 2013-01-29 International Business Machines Corporation Converting from decimal floating point into scaled binary coded decimal
US8286061B2 (en) * 2009-05-27 2012-10-09 International Business Machines Corporation Error detection using parity compensation in binary coded decimal and densely packed decimal conversions
US8489663B2 (en) * 2009-06-05 2013-07-16 Advanced Micro Devices Decimal floating-point adder with leading zero anticipation

Also Published As

Publication number Publication date
JP2014038413A (ja) 2014-02-27
US20140046994A1 (en) 2014-02-13

Similar Documents

Publication Publication Date Title
JP6069690B2 (ja) 演算回路及び演算回路の制御方法
TWI405126B (zh) 微處理器及其執行指令之方法
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
Gladshtein Quantum-dot cellular automata serial decimal adder
GB2532309A (en) Standalone floating-point conversion unit
JP6407001B2 (ja) 浮動小数点数を整数に変換するための電子装置及びシステム及びその動作方法
JP4413198B2 (ja) 浮動小数点データの総和演算処理方法及びコンピュータシステム
US8286061B2 (en) Error detection using parity compensation in binary coded decimal and densely packed decimal conversions
US20160092165A1 (en) Machine instructions for converting from decimal floating point format to packed decimal format
US7941474B2 (en) Arithmetic circuit, arithmetic method, and information processing device
US20160092164A1 (en) Machine instructions for converting to decimal floating point format from packed decimal format
US20100095099A1 (en) System and method for storing numbers in first and second formats in a register file
JP2011008649A (ja) 演算回路および演算処理装置ならびに演算処理方法
WO1999066423A1 (fr) Dispositif pour calcul de donnees
JP6428488B2 (ja) 加減算器及び加減算器の制御方法
KR102459011B1 (ko) 선두 제로 예측
US7024439B2 (en) Leading Zero Anticipatory (LZA) algorithm and logic for high speed arithmetic units
JPH09244874A (ja) 最上位有効ビット位置予測方法
US11221826B2 (en) Parallel rounding for conversion from binary floating point to binary coded decimal
JP6344135B2 (ja) エラー検出コード生成回路,エラー検出コード生成方法及びフォーマット変換装置
US20070294330A1 (en) Systems, methods and computer program products for providing a combined moduli-9 and 3 residue generator
WO2010061864A1 (en) Signal processing circuit
US20140253214A1 (en) Multiplier circuit
US20080307032A1 (en) Divider Circuit
JP5316096B2 (ja) エラー検出機能付き演算回路、および演算回路のエラー検出方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6069690

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150