JP2006154979A - 浮動小数点数演算回路 - Google Patents

浮動小数点数演算回路 Download PDF

Info

Publication number
JP2006154979A
JP2006154979A JP2004341323A JP2004341323A JP2006154979A JP 2006154979 A JP2006154979 A JP 2006154979A JP 2004341323 A JP2004341323 A JP 2004341323A JP 2004341323 A JP2004341323 A JP 2004341323A JP 2006154979 A JP2006154979 A JP 2006154979A
Authority
JP
Japan
Prior art keywords
floating
point number
bit
instruction
conversion circuit
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
JP2004341323A
Other languages
English (en)
Inventor
Masaaki Ishii
雅明 石井
Koichi Hasegawa
浩一 長谷川
Hiroaki Sakaguchi
浩章 坂口
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2004341323A priority Critical patent/JP2006154979A/ja
Priority to US11/280,244 priority patent/US7949696B2/en
Publication of JP2006154979A publication Critical patent/JP2006154979A/ja
Pending legal-status Critical Current

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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • 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
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length
    • 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/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3824Accepting both fixed-point and floating-point numbers

Landscapes

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

Abstract

【課題】 浮動小数点数演算回路において効率的に演算対象データを供給する。
【解決手段】 Wビット幅の命令はメモリ200からロードストアユニット110を介して命令デコーダ120に供給される。命令中に即値として埋め込まれたNビット幅のデータは変換回路130によりFビット幅の浮動小数点数に変換され、浮動小数点数の演算器140による演算対象となる。変換回路130において変換されたデータまたは演算器による演算結果はセレクタ150を介してレジスタファイル170に格納される。変換回路130はNビット幅の整数をFビット幅の浮動小数点数に変換する整数変換器300とNビット幅の浮動小数点数をFビット幅の浮動小数点数に変換する浮動小数点数変換器400とを備えて、Nビット幅のデータをFビット幅の浮動小数点数に変換する。
【選択図】 図1

Description

本発明は、浮動小数点数演算回路に関し、特に即値を扱う浮動小数点数演算回路ならびに即値付浮動小数点数命令を実行するプロセッサに関する。
演算対象となるデータがメモリに保持されている場合、その演算対象データを演算回路に供給するためには、そのメモリから演算対象データを読み出す必要がある。一部のプロセッサでは、演算命令のオペランドとして演算対象データが格納されているメモリのアドレスを指定するフィールド(メモリオペランド)を設けることにより、メモリ上のデータをその演算対象とするものがある。
しかし、演算命令にメモリオペランドを設けた場合には、演算命令を解釈した上で指定されたメモリアドレスにアクセスする必要があり、データが揃うまでに要する時間が長くなるという問題がある。
そこで、近年のRISC(Reduced Instruction Set Computer)に代表されるロードストアアーキテクチャでは、メモリからレジスタにデータを読み出すロード命令と演算を実行する演算命令とを分離することにより1命令におけるデータ待ち時間をなくし、コンパイラによる高速化のための命令スケジューリングを容易に行うことができるようになっている。また、プロセッサに付加される演算プロセッサの命令セットについても同様のアーキテクチャが採用されるようになっている(例えば、非特許文献1参照。)。
「IA-32 Intel(R) Architecture Software Developer's Manual Volume 1: Basic Architecture」、Intel Corporation、2004年
このように、近年ではロード命令と演算命令とを分離したアーキテクチャが主流になっている。しかしながら、この場合、演算命令に加えてロード命令を実行する必要があり、メモリアクセスに時間を要するとともに、プログラムのコードサイズが大きくなるという問題がある。
これに対し、整数演算の場合には、演算命令の一部のフィールドに即値フィールドを設け、演算対象となるデータを演算命令の中に直接埋め込む形式が採用されることがある。しかし、浮動小数点数演算回路に浮動小数点数データを供給するには単精度の浮動小数点数でも32ビットを要するため、命令長として一般的な32ビット命令の中に即値としてそのまま埋め込むことは困難である。
そこで、本発明は、浮動小数点数演算回路において効率的に演算対象データを供給することを目的とする。
本発明は、上記課題を解決するためになされたものであり、その第1の側面は、所定の精度の浮動小数点数について所定の浮動小数点数演算を行う浮動小数点数演算器と、所定のデータを上記精度の浮動小数点数に変換して上記浮動小数点数演算器の少なくとも何れかの入力に供給する変換回路とを具備することを特徴とする浮動小数点数演算回路である。これにより、供給された所定のデータに基づいて所定の精度の浮動小数点数の演算を実行させるという作用をもたらす。
また、本発明の第2の側面は、即値フィールドを有する命令の解読を行う命令デコーダと、上記命令デコーダによって解読された上記即値フィールドに含まれるデータを所定の精度の浮動小数点数に変換する変換回路と、上記変換回路によって変換された上記精度の浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、上記浮動小数点数演算器による演算結果が格納されるレジスタとを具備することを特徴とするプロセッサである。これにより、命令の即値フィールドによるデータに基づいて所定の精度の浮動小数点数の演算を実行させるという作用をもたらす。
また、この第1または第2の側面において、上記変換回路は、整数を上記データとして上記精度の浮動小数点数に変換する整数変換器を備えてもよい。これにより、供給された整数に基づいて所定の精度の浮動小数点数の演算を実行させるという作用をもたらす。
また、この第1または第2の側面において、上記変換回路は、上記精度とは異なる精度の浮動小数点数を上記データとして上記精度の浮動小数点数に変換する浮動小数点数変換器を備えてもよい。これにより、演算器の精度とは異なる浮動小数点数に基づいて浮動小数点数の演算を実行させるという作用をもたらす。
また、この第1または第2の側面において、上記変換回路は、整数を上記データとして上記精度の浮動小数点数に変換する整数変換器と、上記精度とは異なる精度の浮動小数点数を上記データとして上記精度の浮動小数点数に変換する浮動小数点数変換器と、上記整数変換器または上記浮動小数点数変換器の何れかの出力を選択して上記浮動小数点数演算器の少なくとも何れかの入力に供給する変換セレクタとを備えることができる。これにより、供給された整数または演算器の精度とは異なる浮動小数点数に基づいて浮動小数点数の演算を実行させるという作用をもたらす。
また、この第1または第2の側面において、上記浮動小数点数演算器の出力または上記変換回路の出力の何れか一方を選択して出力する演算セレクタをさらに具備してもよい。これにより、必要に応じて浮動小数点数演算器を介した値とそれを介さない値とを適宜出力させるという作用をもたらす。
また、本発明の第3の側面は、Nビット(Nは1以上の整数)の即値フィールドを有するWビット(Wは1以上の整数)の命令の解読を行う命令デコーダと、上記命令デコーダによって解読された上記即値フィールドに含まれるNビットのデータをFビット(Fは1以上の整数)の浮動小数点数に変換する変換回路と、上記変換回路によって変換された上記Fビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、上記浮動小数点数演算器による演算結果が格納されるレジスタとを具備することを特徴とするプロセッサである。これにより、命令の即値フィールドによるNビットデータに基づいてFビットの浮動小数点数の演算を実行させるという作用をもたらす。
この第3の側面において、典型例として、Nビットの即値フィールドは16ビットの即値フィールドとし、Wビットの命令は32ビットの命令とし、Fビットの浮動小数点数は32ビットの浮動小数点数とすることができる。このとき、16ビットの即値フィールドには、16ビットの整数または浮動小数点数を指定することができる。
また、本発明の第4の側面は、Nビット(Nは1以上の整数)の即値フィールドを有する浮動小数点数演算命令を命令セットとして備えるプロセッサであって、上記即値フィールドに含まれるNビットのデータを抽出する命令デコーダと、上記抽出されたNビットのデータをFビット(Fは1以上の整数)の浮動小数点数に変換する変換回路と、上記変換回路によって変換された上記Fビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器とを具備することを特徴とするプロセッサである。これにより、浮動小数点数演算命令に即値フィールドを設けることが可能となり、プログラムコードやメモリ等の利用効率を向上させるという作用をもたらす。
この第4の側面において、典型例として、Nビットの即値フィールドは16ビットの即値フィールドとし、Fビットの浮動小数点数は32ビットの浮動小数点数とすることができる。
本発明によれば、浮動小数点数演算回路において効率的に演算対象データを供給するという優れた効果を奏し得る。
次に本発明の実施の形態について図面を参照して詳細に説明する。
図1は、本発明の実施の形態におけるプロセッサ100の一構成例を示す図である。このプロセッサ100は、バス210を介してメモリ200と接続されており、ロードストアユニット110と、命令デコーダ120と、浮動小数点数演算回路160と、レジスタファイル170と、制御ユニット190とを備える。
ロードストアユニット110は、メモリ200からWビット(Wは1以上の整数)の命令またはFビット(Fは1以上の整数)の浮動小数点数データを読み出し、または、メモリ200に対してFビットの浮動小数点数データを書き込むものである。
命令デコーダ120は、Wビットの命令をロードストアユニット110から受け取り、命令フォーマットに従ってデコードを行うものである。この命令デコーダ120におけるデコード結果は制御信号としてプロセッサ100の各部に伝えられる。
浮動小数点数演算回路160は、命令デコーダ120からのNビット(Nは1以上の整数)のデータとレジスタファイル170からのFビットの浮動小数点数データとが供給され、所定の演算を行ってFビットのデータを出力する。
レジスタファイル170は、Fビットの浮動小数点数データをM個(Mは1以上の整数)保持するレジスタである。このレジスタファイル170は、ロードストアユニット110または浮動小数点数演算回路160との間で書込みまたは読出しを行う。レジスタファイル170における何れのデータにどのようなアクセスをするかは、命令デコーダ120によるデコード結果に基づいて制御される。
また、制御ユニット190は、プロセッサ100内の各ハードウェアモジュールを制御するために用いられる。
ここで、浮動小数点数演算回路160は、さらに変換回路130と、演算器140と、セレクタ150とを備えている。変換回路130は、命令デコーダ120からのNビットデータを整数としてFビット浮動小数点数データに変換する整数変換器300と、命令デコーダ120からのNビットデータをNビット浮動小数点数としてFビット浮動小数点数データに変換する浮動小数点数変換器400と、整数変換器300または浮動小数点数変換器400の何れかの出力を選択するセレクタ135を備えている。また、演算器140は、Fビット浮動小数点数データ同士を演算する演算器である。セレクタ150は、演算器140の出力または変換回路130の出力の何れかを選択してレジスタファイル170に出力するものである。
なお、この図1ではそれぞれ、命令長をWビット、浮動小数点数データ幅をFビット、命令デコーダ120から供給されるデータ幅をNビットとしたが、以下では典型的な例として命令長および浮動小数点数データ幅をそれぞれ32ビットと想定する。また、命令デコーダ120から供給されるデータ幅を16ビットと想定する。但し、本発明はこれに限定されるものではなく、Wビットの命令長におけるNビットのデータを適宜Fビット浮動小数点数データに変換するよう構成することができる。
図2は、本発明の実施の形態における即値命令の命令フォーマットを示す図である。図2(a)を参照すると、この即値命令は32ビット命令であり、6ビットの機能コード801、5ビットの第1オペランド802、5ビットの第2オペランド803、16ビットの即値804の各フィールドを備えている。
機能コード801は、その命令のオペコードを表すフィールドである。第1および第2オペランド802および803は、その命令のオペランドであり、命令によって第2オペランド803は存在しない場合がある。即値804は、16ビット整数または16ビット浮動小数点数を即値として供給するものである。
図2(b)から(f)を参照すると、即値命令フォーマットによる命令の一例として、即値格納命令(浮動小数)、即値格納命令(整数)、即値加算命令、即値乗算命令、および、即値除算命令が示されている。
図2(b)の即値格納命令(浮動小数)では、機能コード801として「fldfi」が指定され、オペランドとしては第1オペランド802にレジスタ「rd」が指定される。そして、即値804には16ビットの浮動小数点数(fimm16)が指定される。この即値格納命令(浮動小数)を実行することにより、16ビット浮動小数点数が浮動小数点数変換器400によって32ビット浮動小数点数に変換され、セレクタ135および150を経てレジスタrdに格納される。
図2(c)の即値格納命令(整数)では、機能コード801として「fldii」が指定され、オペランドとしては第1オペランド802にレジスタ「rd」が指定される。そして、即値804には16ビットの整数(iimm16)が指定される。この即値格納命令(整数)を実行することにより、16ビット整数が整数変換器300によって32ビット浮動小数点数に変換され、セレクタ135および150を経てレジスタrdに格納される。
図2(d)の即値加算命令では、機能コード801として「faddfi」が指定され、オペランドとしては第1オペランド802にレジスタ「rd」が、第2オペランド803にレジスタ「rs」がそれぞれ指定される。そして、即値804には16ビットの浮動小数点数(fimm16)が指定される。この即値加算命令を実行することにより、16ビット浮動小数点数が浮動小数点数変換器400によって32ビット浮動小数点数に変換され、セレクタ135を介して演算器140の一方の入力に供給される。そして、演算器140においてレジスタrsとの加算が行われて、その加算結果がセレクタ150を経てレジスタrdに格納される。
図2(e)の即値乗算命令では、機能コード801として「fmulfi」が指定され、オペランドとしては第1オペランド802にレジスタ「rd」が、第2オペランド803にレジスタ「rs」がそれぞれ指定される。そして、即値804には16ビットの浮動小数点数(fimm16)が指定される。この即値乗算命令を実行することにより、16ビット浮動小数点数が浮動小数点数変換器400によって32ビット浮動小数点数に変換され、セレクタ135を介して演算器140の一方の入力に供給される。そして、演算器140においてレジスタrsとの乗算が行われて、その乗算結果がセレクタ150を経てレジスタrdに格納される。
図2(f)の即値除算命令では、機能コード801として「fdivfi」が指定され、オペランドとしては第1オペランド802にレジスタ「rd」が、第2オペランド803にレジスタ「rs」がそれぞれ指定される。そして、即値804には16ビットの浮動小数点数(fimm16)が指定される。この即値除算命令を実行することにより、16ビット浮動小数点数が浮動小数点数変換器400によって32ビット浮動小数点数に変換され、セレクタ135を介して演算器140の一方の入力に供給される。そして、演算器140において、その変換結果によってレジスタrsが割られ、その除算結果がセレクタ150を経てレジスタrdに格納される。
図3は、本発明の実施の形態における16ビット浮動小数点数の形式例を示す図である。図3(a)を参照すると、この形式例では、1ビットの符号部721と、5ビットの指数部722と、10ビットの仮数部723とが示されている。
符号部721は数値の符号を表すものであり、正を表す「1」または負を表す「0」の何れかが格納される。
指数部722は、「10」を基数とする指数を表し、「15」が加算されたバイアス表現となっている。すなわち、図4に示すように、バイアスされる前の値において、指数を表す「−14」から「+15」までの整数か、正の無限大(+∞)、負の無限大(−∞)、または非数(NaN)を表す「+16」か、正のゼロ(+0)、負のゼロ(−0)、または、非正規化数を表す「−15」かのいずれかの値が格納される。
仮数部723は、「2」を基数として正規化された仮数を表し、正規化後に最上位ビットが省略された値が格納される。但し、16ビット浮動小数点数では、正の非正規化数は正のゼロ(+0)として、負の非正規化数は負のゼロ(−0)としてそれぞれ扱われる。図3(b)または(c)のように、16ビット浮動小数点数において符号部721を「0」または「1」とし、指数部722および仮数部723を全て「0」とすると、正のゼロ(+0)または負のゼロ(−0)を表す。
また、図3(d)または(e)のように、16ビット浮動小数点数において符号部721を「0」または「1」とし、指数部722を「11111」とし、仮数部723を全て「0」とすると、正の無限大(+∞)または負の無限大(−∞)を表す。さらに図3(f)のように、16ビット浮動小数点数において符号部721を「0」または「1」とし、指数部722を「11111」とし、仮数部723を「0」以外の値とすると、非数(NaN)を表すことになる。
なお、ここでは、指数部722として5ビット、仮数部723として10ビットを想定して説明したが、本発明はこれに限られず、これ以外のビット数の組合せによってもよい。
図5は、本発明の実施の形態における整数変換器300の構成例を示す図である。この整数変換器300は、即値命令800において即値804として埋め込まれた16ビット整数710をIEEE754の単精度(32ビット)浮動小数点数790に変換するものである。この整数変換器300は、符号判定回路310と、絶対値化回路320と、正規化回路330と、指数算出回路340と、丸めビット付加回路350と、丸め回路360と、桁上がり補正回路370と、ビット切捨て回路380とを備えている。なお、この整数変換器300における丸めモードは、IEEE754のRN(Round to Nearest)に従うものとする。
符号判定回路310は、信号線129により供給された16ビット整数710における符号付き整数711の符号を判定するものであり、その判定結果は信号線319を介して32ビット浮動小数点数790における符号791として供給される。また、この判定結果は絶対値化回路320における符号反転にも用いられる。
絶対値化回路320は、信号線129により供給された16ビット整数710における符号付き整数711の絶対値を32ビットの絶対値として出力するものである。図6を参照すると、この絶対値化回路320は、符号反転器321と、セレクタ322と、ビット拡張器323とを備える。符号反転器321は、信号線129により供給された16ビット整数710における符号付き整数711の符号を反転させるものである。セレクタ322は、符号反転器321の入力または出力を符号判定回路310の判定結果に基づいて選択し、符号付き整数711の絶対値を出力する。ビット拡張器323は、セレクタ322から出力された16ビットの絶対値を32ビットの絶対値に拡張する。
正規化回路330は、絶対値化回路320から出力された32ビットの絶対値を正規化した正規化数を出力するものである。図6を参照すると、この正規化回路330は、計数器331と、シフタ332とを備える。計数器331は、絶対値化回路320から出力された32ビットの絶対値について、最上位ビットから最下位ビットに向かって連続している「0」の個数を計数するものである。シフタ332は、計数器331による計数結果をシフト量として、絶対値化回路320から出力された32ビットの絶対値を左シフトして32ビットの正規化数として出力する。このようにして得られた正規化数は信号線339により丸めビット付加回路350に供給され、計数器331による計数結果は信号線338により指数算出回路340に供給される。
指数算出回路340は、正規化回路330により生成された正規化数の指数を算出するものである。図7を参照すると、この指数算出回路340は、符号反転器341と、加算器342と、加算器343とを備えている。符号反転器341は、計数器331より信号線338を介して供給されたシフト数の計数結果の符号を反転させるものである。これにより、加算器342の出力は、「31」からシフト数の計数結果を減算したものになる。また、加算器343は、その減算結果に「127」を加算するものである。これにより、正規化数の指数が算出される。このように算出された指数は、桁上がり補正回路370における加算器371およびセレクタ372に供給される。
丸めビット付加回路350は、正規化回路330により生成された正規化数の丸めビット付正規化数を生成するものである。図8を参照すると、正規化回路330により生成された正規化数750は、次のようにして丸めビット付正規化数760とされる。すなわち、正規化数750のビット31乃至8は丸め用ビット付き正規化数760のビット26乃至3となる。また、正規化数750のビット7は丸め用ビット付き正規化数760のGuardビット2となる。また、正規化数750のビット6は丸め用ビット付き正規化数760のRoundビット1となる。正規化数750のビット5乃至0の論理和をとったものが丸め用ビット付き正規化数760のStickyビット0となる。さらに、丸め用ビット付き正規化数760の最上位ビット27には、丸め回路360において桁上がりを検知できるよう、「0」が設定される。
再び図7を参照すると、丸め回路360は、丸め処理を行うものであり、加算器361および362を備える。加算器361は、丸めビット付加回路350による丸め用ビット付き正規化数760に、そのビット3の値を加算するものである。また、加算器362は、加算器361による加算結果にさらに「3」を加算するものである。この加算結果は桁上がり補正回路370におけるシフタ373およびセレクタ374にデータとして供給され、また、この加算における桁上がり発生の有無が桁上がり情報として桁上がり補正回路370のセレクタ372および374の選択信号として供給される。
桁上がり補正回路370は、指数算出回路340により算出された指数および丸め回路360により丸め処理の施された正規化数の補正を行うものである。この桁上がり補正回路370は、加算器371と、セレクタ372と、シフタ373と、セレクタ374とを備えている。加算器371は、指数算出回路340により算出された指数に「1」を加算するものである。セレクタ372は、加算器362において桁上げが生じていれば加算器371の出力を選択し、桁上げが生じていなければ指数算出回路340からの指数を選択する。このセレクタ372の出力は信号線378を介して32ビット浮動小数点数790における指数792として供給される。
シフタ373は、丸め回路360からの正規化数を1ビット右シフトするものである。セレクタ374は、加算器362において桁上げが生じていればシフタ373の出力を選択し、桁上げが生じていなければ丸め回路360からの正規化数を選択する。このセレクタ374の出力は信号線379を介してビット切捨て回路380に供給する。
再び図5を参照すると、ビット切捨て回路380は、桁上がり補正回路370から供給された丸め処理済み正規化数からビット27、26および2乃至0を切り捨てて23ビットの仮数を生成するものである。このビット切捨て回路380の出力は32ビット浮動小数点数790における仮数793として供給される。
図9は、本発明の実施の形態における浮動小数点数変換器400の構成例を示す図である。この浮動小数点数変換器400は、16ビット浮動小数点数720を32ビット浮動小数点数790に変換するものであり、指数変換回路410および仮数変換回路420を備えている。
指数変換回路410は、16ビット浮動小数点数720における指数722を32ビット浮動小数点数790の指数792に変換するものであり、加算器411および412と、セレクタ413とを備える。加算器411は、16ビット浮動小数点数720のバイアス値である「15」を減算するものである。加算器412は、加算器411による加算結果に32ビット浮動小数点数790のバイアス値である127を加算するものである。
セレクタ413は、16ビット浮動小数点数720の内容に応じて、加算器412による加算結果、数「255」、数「0」の何れかを選択するものである。すなわち、16ビット浮動小数点数720が、正の無限大(+∞)、負の無限大(−∞)または非数(NaN)の何れかであれば、32ビット浮動小数点数790の指数792として、無限大または非数を表す「255」を選択する。また、16ビット浮動小数点数720が、正のゼロ(+0)、負のゼロ(−0)または非正規化数であれば、32ビット浮動小数点数790の指数792として、ゼロを表す「0」を選択する。また、これら以外の浮動小数点数であれば、32ビット浮動小数点数790の指数792として、加算器412による加算結果を選択する。
仮数変換回路420は、16ビット浮動小数点数720における仮数723を32ビット浮動小数点数790の仮数793に変換するものであり、セレクタ423を備える。このセレクタ423は、16ビット浮動小数点数720の内容に応じて、10ビットの仮数723の下位に13ビットの「0」を補った数、10ビットの仮数723の上位に13ビットの「0」を補った数、または、23ビットの「0」の何れかを選択する。すなわち、16ビット浮動小数点数720が、正の無限大(+∞)、負の無限大(−∞)または非数(NaN)の何れかであれば、32ビット浮動小数点数790の仮数793として、10ビットの仮数723の上位に13ビットの「0」を補った数を選択する。また、16ビット浮動小数点数720が、正のゼロ(+0)、負のゼロ(−0)または非正規化数であれば、32ビット浮動小数点数790の仮数793として、23ビットの「0」を選択する。また、これら以外の浮動小数点数であれば、32ビット浮動小数点数790の仮数793として、10ビットの仮数723の下位に13ビットの「0」を補った数を選択する。
なお、この浮動小数点数変換器400においては、16ビット浮動小数点数720の符号721は、そのまま32ビット浮動小数点数790の符号791として使用される。
図10は、本発明の実施の形態におけるプログラムコード列の一例を示す図である。ここでは、円錐の体積を求めるプログラムを一例として挙げる。これは、次式によって、半径rおよび高さhに基づいて円錐の体積vを求めるものである。
v ← (π×r×h)/3
まず、変数rのメモリ領域の内容がレジスタ$f0にロードされる(ステップS911)。また、変数hのメモリ領域の内容がレジスタ$f1にロードされる(ステップS912)。そして、レジスタ$f0とレジスタ$f0との乗算が実行され、その乗算結果がレジスタ$f0に格納される(ステップS913)。これは、半径rの二乗を計算するものである。
続いて、レジスタ$f0とレジスタ$f1との乗算が実行され、その乗算結果がレジスタ$f0に格納される(ステップS914)。これは、半径rの二乗に高さhを掛けるものである。
そして、レジスタ$f0と即値3.14との乗算が実行され、その乗算結果がレジスタ$f0に格納される(ステップS916)。ここでは、図2(e)において説明した即値乗算命令(fmulfi)を用いることができる。すなわち、第1および第2のオペランド802および803をともにレジスタ$f0として、即値804を16ビットの「3.14」とすることにより、1命令で所望の演算を実現することができる。
続いて、レジスタ$f0を即値3.0で割る除算が実行され、その除算結果がレジスタ$f0に格納される(ステップS918)。ここでは、図2(f)において説明した即値除算命令(fdivfi)を用いることができる。すなわち、第1および第2のオペランド802および803をともにレジスタ$f0として、即値804を16ビットの「3.0」とすることにより、1命令で所望の演算を実現することができる。
最後に、レジスタ$f0の内容が変数vのメモリ領域にストアされる(ステップS919)。これにより、変数vのメモリ領域に、円錐の体積の計算結果が格納されることになる。
図11は、従来技術におけるプログラムコード列の一例を示す図である。ここでは、命令セットの一例として、非特許文献1におけるSSE命令群(Streaming SIMD Extensions instructions)を用いる。プログラムの内容は図10の場合と同様に円錐の体積を求めるものである。
まず、変数rのメモリ領域の内容がレジスタXMM0にロードされる(ステップS921)。また、変数hのメモリ領域の内容がレジスタXMM1にロードされる(ステップS922)。そして、レジスタXMM0とレジスタXMM0との乗算が実行され、その乗算結果がレジスタXMM0に格納される(ステップS923)。これは、半径rの二乗を計算するものである。
続いて、レジスタXMM0とレジスタXMM1との乗算が実行され、その乗算結果がレジスタXMM0に格納される(ステップS924)。これは、半径rの二乗に高さhを掛けるものである。
そして、定数pi(3.14)が保持されるメモリ領域の内容がレジスタXMM1にロードされる(ステップS925)。その後、レジスタXMM0とレジスタXMM1との乗算が実行され、その乗算結果がレジスタXMM0に格納される(ステップS926)。
続いて、定数dv(3.0)が保持されるメモリ領域の内容がレジスタXMM1にロードされる(ステップS927)。その後、レジスタXMM0をレジスタXMM1で割る除算が実行され、その除算結果がレジスタXMM0に格納される(ステップS928)。
最後に、レジスタXMM0の内容が変数vのメモリ領域にストアされる(ステップS929)。これにより、変数vのメモリ領域に、円錐の体積の計算結果が格納されることになる。
ここで、図10と図11とを比較すると、図11の従来技術ではステップS925およびステップS927において定数をメモリからロードするための命令が余分に必要となっていることがわかる。図10の本発明の実施の形態では、定数を即値として乗算命令(ステップS916)および除算命令(ステップS918)に埋め込んでいるため、ロード命令が不要となるとともに、プログラムコードが短くなっている。
このように、本発明の実施の形態によれば、浮動小数点数演算回路160において、16ビット整数710を32ビット浮動小数点数790に変換する整数変換器300と、16ビット浮動小数点数720を32ビット浮動小数点数790に変換する浮動小数点数変換器400とを設けることにより、即値命令800における16ビットの即値804を32ビット浮動小数点数790に変換して所望の処理を行うことができる。
より具体的には、第1に、数値データをメモリからロードするロード命令を削減することにより、プログラムのコードサイズを削減することができる。第2に、ロード命令が削除されることにより、メモリからのデータを待つ必要がなくなり、浮動小数点数演算回路の利用効率を向上させることができる。第3に、ロード命令が削除されることにより、メモリアクセス回数が削減され、演算回路とメモリとの間のバスの利用効率も向上させることができる。第4に、本来32ビットを要する浮動小数点数が16ビットの即値として命令中に埋め込まれることにより、メモリ利用効率も向上させることができる。第5に、即値を利用することにより、定数を記憶しておくためのレジスタが不要になることから、レジスタの利用効率も向上させることができる。
なお、本発明の実施の形態では、演算器140として2入力演算器を想定して説明したが、本発明はこれに限られず、例えば3入力演算器であってもよい。また、本発明の実施の形態では、演算器140の一つの入力に変換回路130を設けているが、これは複数の入力に設けるようにしてもよい。
また、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
すなわち、請求項1において、浮動小数点数演算器は例えば演算器140に対応する。また、変換回路は例えば変換回路130に対応する。
また、請求項2または7において、整数変換器は例えば整数変換器300に対応する。
また、請求項3または8において、浮動小数点数変換器は例えば浮動小数点数変換器400に対応する。
また、請求項4または9において、整数変換器は例えば整数変換器300に対応する。また、浮動小数点数変換器は例えば浮動小数点数変換器400に対応する。また、変換セレクタは例えばセレクタ135に対応する。
また、請求項5または10において、演算セレクタは例えばセレクタ150に対応する。
また、請求項6、11、12、13または14において、命令デコーダは例えば命令デコーダ120に対応する。また、変換回路は例えば変換回路130に対応する。また、浮動小数点数演算器は例えば演算器140に対応する。また、レジスタは例えばレジスタファイル170に対応する。
また、請求項15または16において、命令デコーダは例えば命令デコーダ120に対応する。また、変換回路は例えば変換回路130に対応する。また、浮動小数点数演算器は例えば演算器140に対応する。
本発明の活用例として、例えば浮動小数点数演算回路または浮動小数点数演算命令を備えるプロセッサにおいて本発明を適用することができる。
本発明の実施の形態におけるプロセッサ100の一構成例を示す図である。 本発明の実施の形態における即値命令の命令フォーマットを示す図である。 本発明の実施の形態における16ビット浮動小数点数の形式例を示す図である。 本発明の実施の形態における16ビット浮動小数点数の指数の意味を示す図である。 本発明の実施の形態における整数変換器300の構成例を示す図である。 本発明の実施の形態における整数変換器300の構成例の細部を示す図である。 本発明の実施の形態における整数変換器300の構成例の他の細部を示す図である。 本発明の実施の形態における丸めビット付加回路350による丸めビット付加の一例を示す図である。 本発明の実施の形態における浮動小数点数変換器400の構成例を示す図である。 本発明の実施の形態におけるプログラムコード列の一例を示す図である。 従来技術におけるプログラムコード列の一例を示す図である。
符号の説明
100 プロセッサ
110 ロードストアユニット
120 命令デコーダ
130 変換回路
135 セレクタ
140 演算器
150 セレクタ
160 浮動小数点数演算回路
170 レジスタファイル
190 制御ユニット
200 メモリ
210 バス
300 整数変換器
310 符号判定回路
320 絶対値化回路
321 符号反転器
322 セレクタ
323 ビット拡張器
330 正規化回路
331 計数器
332 シフタ
340 指数算出回路
341 符号反転器
342、343 加算器
350 丸めビット付加回路
360 丸め回路
361、362 加算器
370 桁上がり補正回路
371 加算器
372、374 セレクタ
373 シフタ
380 ビット切捨て回路
400 浮動小数点数変換器
410 指数変換回路
411、412 加算器
413 セレクタ
420 仮数変換回路
423 セレクタ

Claims (16)

  1. 所定の精度の浮動小数点数について所定の浮動小数点数演算を行う浮動小数点数演算器と、
    所定のデータを前記精度の浮動小数点数に変換して前記浮動小数点数演算器の少なくとも何れかの入力に供給する変換回路と
    を具備することを特徴とする浮動小数点数演算回路。
  2. 前記変換回路は、整数を前記データとして前記精度の浮動小数点数に変換する整数変換器を備えることを特徴とする請求項1記載の浮動小数点数演算回路。
  3. 前記変換回路は、前記精度とは異なる精度の浮動小数点数を前記データとして前記精度の浮動小数点数に変換する浮動小数点数変換器を備えることを特徴とする請求項1記載の浮動小数点数演算回路。
  4. 前記変換回路は、
    整数を前記データとして前記精度の浮動小数点数に変換する整数変換器と、
    前記精度とは異なる精度の浮動小数点数を前記データとして前記精度の浮動小数点数に変換する浮動小数点数変換器と、
    前記整数変換器または前記浮動小数点数変換器の何れかの出力を選択して前記浮動小数点数演算器の少なくとも何れかの入力に供給する変換セレクタと
    を備えることを特徴とする請求項1記載の浮動小数点数演算回路。
  5. 前記浮動小数点数演算器の出力または前記変換回路の出力の何れか一方を選択して出力する演算セレクタをさらに具備することを特徴とする請求項1記載の浮動小数点数演算回路。
  6. 即値フィールドを有する命令の解読を行う命令デコーダと、
    前記命令デコーダによって解読された前記即値フィールドに含まれるデータを所定の精度の浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記精度の浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、
    前記浮動小数点数演算器による演算結果が格納されるレジスタと
    を具備することを特徴とするプロセッサ。
  7. 前記変換回路は、前記即値フィールドに含まれる整数を前記精度の浮動小数点数に変換する整数変換器を備えることを特徴とする請求項6記載のプロセッサ。
  8. 前記変換回路は、前記即値フィールドに含まれる前記精度とは異なる精度の浮動小数点数を前記精度の浮動小数点数に変換する浮動小数点数変換器を備えることを特徴とする請求項6記載のプロセッサ。
  9. 前記変換回路は、
    前記即値フィールドに含まれる整数を前記精度の浮動小数点数に変換する整数変換器と、
    前記即値フィールドに含まれる前記精度とは異なる精度の浮動小数点数を前記精度の浮動小数点数に変換する浮動小数点数変換器と、
    前記整数変換器または前記浮動小数点数変換器の何れかの出力を選択して前記浮動小数点数演算器の少なくとも何れかの入力に供給する変換セレクタと
    を備えることを特徴とする請求項6記載のプロセッサ。
  10. 前記浮動小数点数演算器の出力または前記変換回路の出力の何れか一方を選択して前記レジスタに出力する演算セレクタをさらに具備することを特徴とする請求項6記載のプロセッサ。
  11. Nビット(Nは1以上の整数)の即値フィールドを有するWビット(Wは1以上の整数)の命令の解読を行う命令デコーダと、
    前記命令デコーダによって解読された前記即値フィールドに含まれるNビットのデータをFビット(Fは1以上の整数)の浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記Fビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、
    前記浮動小数点数演算器による演算結果が格納されるレジスタと
    を具備することを特徴とするプロセッサ。
  12. 16ビットの即値フィールドを有する32ビットの命令の解読を行う命令デコーダと、
    前記命令デコーダによって解読された前記即値フィールドに含まれる16ビットの整数または浮動小数点数を32ビットの浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記32ビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、
    前記浮動小数点数演算器による演算結果が格納されるレジスタと
    を具備することを特徴とするプロセッサ。
  13. 16ビットの即値フィールドを有する32ビットの命令の解読を行う命令デコーダと、
    前記命令デコーダによって解読された前記即値フィールドに含まれる16ビットの整数を32ビットの浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記32ビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、
    前記浮動小数点数演算器による演算結果が格納されるレジスタと
    を具備することを特徴とするプロセッサ。
  14. 16ビットの即値フィールドを有する32ビットの命令の解読を行う命令デコーダと、
    前記命令デコーダによって解読された前記即値フィールドに含まれる16ビットの浮動小数点数を32ビットの浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記32ビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と、
    前記浮動小数点数演算器による演算結果が格納されるレジスタと
    を具備することを特徴とするプロセッサ。
  15. Nビット(Nは1以上の整数)の即値フィールドを有する浮動小数点数演算命令を命令セットとして備えるプロセッサであって、
    前記即値フィールドに含まれるNビットのデータを抽出する命令デコーダと、
    前記抽出されたNビットのデータをFビット(Fは1以上の整数)の浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記Fビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と
    を具備することを特徴とするプロセッサ。
  16. 16ビットの即値フィールドを有する浮動小数点数演算命令を命令セットとして備えるプロセッサであって、
    前記即値フィールドに含まれる16ビットのデータを抽出する命令デコーダと、
    前記抽出された16ビットのデータを32ビットの浮動小数点数に変換する変換回路と、
    前記変換回路によって変換された前記32ビットの浮動小数点数を少なくとも何れかの入力として所定の浮動小数点数演算を行う浮動小数点数演算器と
    を具備することを特徴とするプロセッサ。
JP2004341323A 2004-11-25 2004-11-25 浮動小数点数演算回路 Pending JP2006154979A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004341323A JP2006154979A (ja) 2004-11-25 2004-11-25 浮動小数点数演算回路
US11/280,244 US7949696B2 (en) 2004-11-25 2005-11-17 Floating-point number arithmetic circuit for handling immediate values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004341323A JP2006154979A (ja) 2004-11-25 2004-11-25 浮動小数点数演算回路

Publications (1)

Publication Number Publication Date
JP2006154979A true JP2006154979A (ja) 2006-06-15

Family

ID=36462174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004341323A Pending JP2006154979A (ja) 2004-11-25 2004-11-25 浮動小数点数演算回路

Country Status (2)

Country Link
US (1) US7949696B2 (ja)
JP (1) JP2006154979A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015512092A (ja) * 2012-02-09 2015-04-23 クアルコム,インコーポレイテッド 浮動小数点定数生成命令
US9223543B2 (en) 2009-01-09 2015-12-29 Sony Corporation Arithmetic unit, processor, compiler and compiling method
US11029956B2 (en) 2017-08-24 2021-06-08 Sony Semiconductor Solutions Corporation Processor and information processing system for instructions that designate a circular buffer as an operand
CN117130722A (zh) * 2023-08-04 2023-11-28 北京中电华大电子设计有限责任公司 WebAssembly指令集的优化方法及装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8706790B1 (en) * 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8745111B2 (en) 2010-11-16 2014-06-03 Apple Inc. Methods and apparatuses for converting floating point representations
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US10089073B2 (en) * 2015-01-30 2018-10-02 Huawei Technologies Co., Ltd. Method and apparatus for converting from integer to floating point representation
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
EP3646164A4 (en) * 2017-06-30 2021-01-20 INTEL Corporation HETEROGENIC MULTIPLIER
US10684854B2 (en) * 2017-11-28 2020-06-16 Intel Corporation Apparatus and method for converting a floating-point value from half precision to single precision

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6097435A (ja) * 1983-11-02 1985-05-31 Hitachi Ltd 演算処理装置
JPS61103241A (ja) * 1984-10-27 1986-05-21 Nec Corp 情報処理装置
JPS63266526A (ja) * 1987-04-23 1988-11-02 Fujitsu Ltd 精度変換装置
JPS63266527A (ja) * 1987-04-23 1988-11-02 Fujitsu Ltd 精度変換装置
JPH03250324A (ja) * 1990-02-28 1991-11-08 Hitachi Ltd データ処理システム、整数/浮動小数点データ変換装置、浮動小数点/整数データ変換装置
JPH05100822A (ja) * 1991-10-04 1993-04-23 Nec Corp デイジタルシグナルプロセツサ
JPH06337782A (ja) * 1993-05-31 1994-12-06 Matsushita Electric Ind Co Ltd データ処理装置およびデータ処理方法
JPH1031618A (ja) * 1996-07-16 1998-02-03 Hitachi Ltd データ変換方式
JP2004213622A (ja) * 2002-12-27 2004-07-29 Arm Ltd 固定小数点表示と浮動小数点表示との間で数を変換するデータ処理装置および方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH061438B2 (ja) * 1984-04-26 1994-01-05 日本電気株式会社 倍精度乗算器
JPS61103251A (ja) 1984-10-26 1986-05-21 Nec Corp マイクロプロセサシステムデバツグ装置
US5161117A (en) * 1989-06-05 1992-11-03 Fairchild Weston Systems, Inc. Floating point conversion device and method
US5268855A (en) * 1992-09-14 1993-12-07 Hewlett-Packard Company Common format for encoding both single and double precision floating point numbers
US6128726A (en) * 1996-06-04 2000-10-03 Sigma Designs, Inc. Accurate high speed digital signal processor
US6108772A (en) * 1996-06-28 2000-08-22 Intel Corporation Method and apparatus for supporting multiple floating point processing models
US6671796B1 (en) * 2000-02-25 2003-12-30 Sun Microsystems, Inc. Converting an arbitrary fixed point value to a floating point value
US7899855B2 (en) * 2003-09-08 2011-03-01 Intel Corporation Method, apparatus and instructions for parallel data conversions

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6097435A (ja) * 1983-11-02 1985-05-31 Hitachi Ltd 演算処理装置
JPS61103241A (ja) * 1984-10-27 1986-05-21 Nec Corp 情報処理装置
JPS63266526A (ja) * 1987-04-23 1988-11-02 Fujitsu Ltd 精度変換装置
JPS63266527A (ja) * 1987-04-23 1988-11-02 Fujitsu Ltd 精度変換装置
JPH03250324A (ja) * 1990-02-28 1991-11-08 Hitachi Ltd データ処理システム、整数/浮動小数点データ変換装置、浮動小数点/整数データ変換装置
JPH05100822A (ja) * 1991-10-04 1993-04-23 Nec Corp デイジタルシグナルプロセツサ
JPH06337782A (ja) * 1993-05-31 1994-12-06 Matsushita Electric Ind Co Ltd データ処理装置およびデータ処理方法
JPH1031618A (ja) * 1996-07-16 1998-02-03 Hitachi Ltd データ変換方式
JP2004213622A (ja) * 2002-12-27 2004-07-29 Arm Ltd 固定小数点表示と浮動小数点表示との間で数を変換するデータ処理装置および方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223543B2 (en) 2009-01-09 2015-12-29 Sony Corporation Arithmetic unit, processor, compiler and compiling method
JP2015512092A (ja) * 2012-02-09 2015-04-23 クアルコム,インコーポレイテッド 浮動小数点定数生成命令
US10289412B2 (en) 2012-02-09 2019-05-14 Qualcomm Incorporated Floating point constant generation instruction
US11029956B2 (en) 2017-08-24 2021-06-08 Sony Semiconductor Solutions Corporation Processor and information processing system for instructions that designate a circular buffer as an operand
CN117130722A (zh) * 2023-08-04 2023-11-28 北京中电华大电子设计有限责任公司 WebAssembly指令集的优化方法及装置

Also Published As

Publication number Publication date
US7949696B2 (en) 2011-05-24
US20060112160A1 (en) 2006-05-25

Similar Documents

Publication Publication Date Title
US7949696B2 (en) Floating-point number arithmetic circuit for handling immediate values
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
JP6487097B2 (ja) 命令に応じた丸め処理の実行
KR102447636B1 (ko) 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법
US7945607B2 (en) Data processing apparatus and method for converting a number between fixed-point and floating-point representations
KR100994862B1 (ko) 선택가능한 하위 정밀도에 대하여 감소된 전력 요구조건들을 가지는 부동 소수점 프로세서
US9146901B2 (en) Vector floating point argument reduction
KR20080055985A (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
CN111767516A (zh) 用于利用所选择的舍入来执行浮点加法的系统和方法
US10095475B2 (en) Decimal and binary floating point rounding
US10416962B2 (en) Decimal and binary floating point arithmetic calculations
KR20180027537A (ko) 와이드 데이터 타입들의 비교
CN106997284B (zh) 实现浮点运算操作的方法和装置
CN110688153B (zh) 一种指令分支执行控制方法及相关设备、指令结构
KR20210122828A (ko) 앵커 데이터 요소에서의 특수 값 인코딩
Sasidharan et al. VHDL Implementation of IEEE 754 floating point unit
CN112394904A (zh) 一种浮点数据处理方法、运算器及电子设备
KR20210124347A (ko) 앵커 데이터 요소 변환
TWI624802B (zh) 全精度及部分精度數值的計算方法及裝置
US11704092B2 (en) High-precision anchored-implicit processing
CN113377334B (zh) 一种浮点数据处理方法、装置及存储介质
JP2010049611A (ja) Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ
JP2017027126A (ja) 演算処理装置および演算処理装置の制御方法
Padgett et al. Fixed Point Numbers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100406