JP2019175225A - 出力値生成回路、プロセッサ、出力値生成方法、及びプログラム - Google Patents

出力値生成回路、プロセッサ、出力値生成方法、及びプログラム Download PDF

Info

Publication number
JP2019175225A
JP2019175225A JP2018063912A JP2018063912A JP2019175225A JP 2019175225 A JP2019175225 A JP 2019175225A JP 2018063912 A JP2018063912 A JP 2018063912A JP 2018063912 A JP2018063912 A JP 2018063912A JP 2019175225 A JP2019175225 A JP 2019175225A
Authority
JP
Japan
Prior art keywords
value
output
output value
exponent
generation 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
JP2018063912A
Other languages
English (en)
Inventor
紀文 村田
Norifumi Murata
紀文 村田
上田 恭子
Kyoko Ueda
恭子 上田
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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co 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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2018063912A priority Critical patent/JP2019175225A/ja
Priority to DE102019107303.0A priority patent/DE102019107303A1/de
Priority to US16/365,060 priority patent/US20190303102A1/en
Priority to CN201910246968.5A priority patent/CN110321163A/zh
Publication of JP2019175225A publication Critical patent/JP2019175225A/ja
Pending legal-status Critical Current

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
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling 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/544Methods 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 for evaluating functions by calculation
    • G06F7/548Trigonometric functions; Co-ordinate transformations
    • 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
    • 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/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator

Landscapes

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

Abstract

【課題】出力値の精度の低下を抑制可能な出力値生成回路、プロセッサ、出力値生成方法、及びプログラムを提供する。【解決手段】出力値生成回路10は、入力値D1を変換して得られる出力値を浮動小数点表現した場合の仮数部D11と指数部D12とを生成し、仮数部D11と指数部D12とをそれぞれ個別に出力する出力部(逆数出力部11)を有する。【選択図】図1

Description

本開示は、出力値生成回路、プロセッサ、出力値生成方法、及びプログラムに関する。より詳細には、本開示は、入力値を変換した出力値を生成する出力値生成回路、プロセッサ、出力値生成方法、及びプログラムに関する。
従来、整数が入力されると、整数の逆数をテーブルから読み出して出力するテーブル読み出し回路があった(例えば特許文献1参照)。
特開平1−263812号公報
特許文献1に開示されたテーブル読み出し回路では、出力が固定小数点の数であるため、入力の整数値が大きくなるにつれて出力値の精度が低下するという問題があった。
本開示の目的は、出力値の精度の低下を抑制可能な出力値生成回路、プロセッサ、出力値生成方法、及びプログラムを提供することにある。
本開示の一態様の出力値生成回路は出力部を有する。前記出力部は、入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、前記仮数部と前記指数部とをそれぞれ個別に出力する。
本開示の一態様のプロセッサは前記出力値生成回路を含む。前記プロセッサは、前記入力値が入力されると、前記出力値生成回路に前記仮数部と前記指数部とをそれぞれ個別に出力する処理を実行させる。
本開示の一態様の出力値生成方法は、入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、前記仮数部と前記指数部とをそれぞれ個別に出力する。
本開示の一態様のプログラムは、コンピュータシステムに出力処理を実行させるためのプログラムである。前記出力処理では、入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、前記仮数部と前記指数部とをそれぞれ個別に出力する。
本開示によれば、出力値の精度の低下を抑制可能な出力値生成回路、プロセッサ、出力値生成方法、及びプログラムを提供することができる。
図1は、本開示の出力値生成回路を含むプロセッサのブロック図である。 図2は、同上の出力値生成回路のブロック図である。 図3A〜図3Cは、同上の出力値生成回路によるアドレス生成処理の説明図である。 図4は、同上の出力値生成回路の動作を示すフローチャートである。
(実施形態)
(1)概要
本実施形態の出力値生成回路10は、図1に示すように、出力部(逆数出力部11)を有する。出力部(逆数出力部11)は、図2に示すように、入力値D1を変換して得られる出力値を浮動小数点表現した場合の仮数部D11と指数部D12とを生成し、仮数部D11と指数部D12とをそれぞれ個別に出力する。
本実施形態のプロセッサ1は出力値生成回路10を含む。プロセッサ1は、入力値D1が入力されると、出力値生成回路10に仮数部D11と指数部D12とをそれぞれ個別に出力する処理を実行させる。
ここにおいて、入力値D1を変換して出力値を得るとは、例えば入力値D1と出力値との対応関係を表す関数に基づいて入力値D1を出力値に変換することを言う。入力値D1と出力値との対応関係を表す関数は、例えば入力値の逆数を出力する関数、入力値の平方根を出力する関数、入力値の平方根の逆数を出力する関数、三角関数、逆三角関数等がある。また、出力値は、所定の関数を用いて入力値を変換した値と完全に同一である必要はなく、所定の関数を用いて入力値を変換した値を、許容される誤差(例えば、−0.1%以上かつ0.1%以下の誤差)の範囲で近似した近似値であってもよい。
本実施形態の出力値生成回路10及びプロセッサ1では、浮動小数点演算器を用いることなく、入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部D11と指数部D12とをそれぞれ個別に出力できる。出力値生成回路10は、出力値を浮動小数点表現した場合の仮数部D11と指数部D12とをそれぞれ個別に出力するので、仮数部D11の桁数に応じた精度の出力を得ることができ、出力値の精度の低下を抑制可能である、という利点がある。
(2)詳細
本実施形態の出力値生成回路10は、例えば、カメラが撮影したデジタル画像を画像処理する際の演算処理に用いられる。例えば、自動車に搭載されたカメラのデジタル画像から人や車線などの物体を検出する画像処理を行う場合、デジタル画像からエッジパターン・色調等の特徴量を検出するために、デジタル画像に微分フィルタ等のフィルタ処理を施す場合がある。フィルタ処理では、デジタル画像の各画素の画素値を所定の値で除算する演算を行う場合があり、このような除算演算に本実施形態の出力値生成回路10は用いられる。すなわち、ある数(被除数)を除数で割る除算演算を行う場合、出力値生成回路10は、被除数を除数で割る除算演算をそのまま行うのではなく、除数の逆数を求め、除数の逆数を被除数に乗算することで、被除数を除数で割った値を求めている。これにより、デジタル画像の各画素の画素値を同じ値(除数)で割る演算処理を行う場合、出力値生成回路10は、まず除数の逆数を求め、この逆数を各画素の画素値に乗算することで、各画素の画素値を除数で割った値を求めることができる。したがって、各画素の画素値を除数で割った値を求める場合に、除数の逆数を求める演算は1回だけ行えばよく、演算処理の処理コストを低減可能である。
以下、本実施形態の出力値生成回路10及び出力値生成回路10を含むプロセッサ1について説明する。
(2.1)構成
図1に示すように、プロセッサ1は、出力値生成回路10と、制御回路20と、インターフェイス(I/F)30とを備える。
インターフェイス(I/F)30は、出力値生成回路10及び制御回路20と、メモリ2等との間でバス3を介してデータを授受する。
メモリ2は、プロセッサ1が実行するプログラム(例えば画像処理のためのプログラム)を記憶する。メモリ2には、入力値D1から生成される中間演算値(例えば0から255までの整数)D10の逆数を浮動小数点演算した場合の仮数部D11と指数D121とが記憶されている(図2参照)。具体的には、メモリ2は、入力値D1から生成される中間演算値D10に基づいて決定されるアドレスに仮数部D11のデータを格納した仮数テーブルと、中間演算値D10に基づいて決定されるアドレスに指数D121のデータを格納した指数テーブルとを記憶する。
制御回路20は、インターフェイス30を介してメモリ2から演算命令を取得し、演算命令に従って出力値生成回路10の処理を制御する。
出力値生成回路10は、入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、仮数部と指数部とをそれぞれ個別に出力する。ここで、入力値D1と出力値との関数が所定の関数となる。本実施形態では、所定の関数が入力値D1の逆数を出力する関数であり、出力値は入力値D1の逆数となる。
出力値生成回路10は、逆数出力部11と、演算部12とを備える。
逆数出力部11は、入力値D1の逆数である出力値を浮動小数点表現した場合の仮数部D11と指数部D12とを生成し、仮数部D11と指数部D12とをそれぞれ個別に出力する。逆数出力部11は、図2に示すように、アドレス生成部110と、第1出力部111と、第2出力部112と、指数部演算部113とを備える。
アドレス生成部110は、入力値D1に基づいて指数テーブル及び仮数テーブルをそれぞれ参照するアドレスを決定する。アドレス生成部110は、入力値D1に基づいて生成される中間演算値D10の逆数の仮数部D11が記憶されている仮数テーブルのアドレスを生成する。また、アドレス生成部110は、入力値D1に基づいて生成される中間演算値D10の逆数の指数D121が記憶されている仮数テーブルのアドレスを生成する。
ここで、アドレス生成部110によるアドレス生成処理を図3A〜図3Cを参照して説明する。図3Aに示すように、逆数出力部11に例えば16ビットの入力値D1が入力される場合、アドレス生成部110は、入力値D1の最上位ビットから連続する「0」の個数N1をカウントする。図3Aの例では、入力値D1の最上位ビットから「0」が4つ連続している。アドレス生成部110は、最上位ビットから「0」が連続する個数N1(例えば4つ)をカウントする。アドレス生成部110は、入力値D1をN1ビットだけ左シフトして「0」を消去し(図3B参照)、上位8ビットのデータである中間演算値D10を求める(図3C参照)。換言すれば、アドレス生成部110は、入力値D1をN1ビットだけ左シフトして「0」を消去した後、8ビットの中間演算値D10を生成するためにN2ビットだけ右シフトしている。アドレス生成部110は、中間演算値D10を指数テーブル及び仮数テーブルをそれぞれ参照するアドレスとして決定し、アドレスのデータ(中間演算値D10の値)を第1出力部111及び第2出力部112にそれぞれ出力する。アドレス生成部110は16ビットの入力値D1から8ビットの中間演算値D10を生成し、この中間演算値D10を指数テーブル及び仮数テーブルをそれぞれ参照するアドレスとしている。よって、指数テーブル及び仮数テーブルに記憶する仮数部D11及び指数D121のデータ量を削減できる。なお、本実施形態では入力値D1が16ビットの正の整数であるが、入力値D1は8ビットでも32ビットでもよく、入力値D1及び中間演算値D10のビット数は演算処理の内容に応じて適宜変更可能である。また、本実施形態では中間演算値D10が8ビットの正の整数であるが、中間演算値D10は8ビットの整数に限定されず、入力値D1よりもビット数が少ない整数値であればよい。
第1出力部111は、アドレス生成部110が生成したアドレスを用いて、メモリ2の仮数テーブルにアクセスすることで、中間生成値D10の逆数の仮数部D11を取得(生成)し、生成した仮数部D11をスタックメモリに記憶させる。第1出力部111(逆数出力部11)は、入力値D1に基づいて決定されるアドレスに対応する値として仮数部D11を生成する。
第2出力部112は、アドレス生成部110が生成したアドレスを用いて、メモリ2の指数テーブルにアクセスすることで、中間生成値D10の逆数の指数D121を取得(生成)し、生成した指数D121を指数部演算部113に出力する。
指数部演算部113には、第2出力部112から指数D121が入力される。また、指数部演算部113には、アドレス生成部110から、入力値D1及び中間演算値D10のビット数のデータと、個数N1のデータとが入力される。指数部演算部113は、入力値D1及び中間演算値D10のビット数のデータと、個数N1のデータとに基づいて、中間演算値D10の右シフト数N2を計算する。指数部演算部113は、入力値D1のビット数から、個数N1と、中間演算値D10のビット数とを差し引くことによって、右シフト数N2を計算により求める。そして、指数部演算部113は、第2出力部112から入力された指数D121から、右シフト数N2を差し引くことによって、入力値D1の逆数(1/D1)を浮動小数点表現した場合の指数部D12を求め、指数部D12をスタックメモリに記憶させる。つまり、第2出力部112及び指数部演算部113(逆数出力部11)は、入力値D1に基づいて決定されるアドレスに対応する値として指数部D12を生成する。さらに言えば、本実施形態では、アドレス生成部110が入力値D1をシフト演算して求めた中間演算値D10に基づいてアドレスを決定している。そして、中間演算値D10の右シフト数N2と、中間演算値D10を浮動小数点表現した場合の指数D121とに基づいて指数部D12が決定されている。
ここで、入力値D1は、中間演算値D10と、中間演算値D10の右シフト数N2とを用いると下記の式[数1]のように表される。また、入力値D1の逆数は、仮数部D11、指数D121、及び指数部D12を用いると下記の式[数2]のように表される。
Figure 2019175225
Figure 2019175225
次に、演算部12について説明する。演算部12は、スタックメモリから読み込んだ仮数部D11及び指数部D12と、メモリ2からインターフェイス30を介して入力される被除数D2とを用いて、被除数D2を除数である入力値D1で割った値D4を求める演算処理を行う。つまり、出力値生成回路10は、仮数部D11と指数部D12との両方を用いた演算処理を行う演算部12を更に備える。
演算部12は乗算部13とシフト演算部14とを備える。
乗算部13は、スタックメモリから読み込んだ仮数部D11と被除数D2とを乗算して得た乗算結果D3をシフト演算部14に出力する。
シフト演算部14は、スタックメモリから読み込んだ指数部D12に応じた桁数だけ、乗算部13から出力される乗算結果D3をシフトすることで、被除数D2を除数である入力値D1で割った値D4を求める。そして、シフト演算部14は、演算結果の値D4を、インターフェイス30を介してメモリ2等に出力する。ここで、値D4は、被除数D2、仮数部D11、及び指数部D12を用いると下記の式[数3]で表される。
Figure 2019175225
(2.2)動作
プロセッサ1が、メモリ2に記憶されたプログラムに従って、被除数D2を除数である入力値D1で割る除算命令を実行する場合の処理を図4に基づいて説明する。ここでは、複数の被除数D2を同じ値(入力値D1)で割る除算命令を実行する場合の処理について説明する。
プロセッサ1の制御回路20が、プロセッサ1に実装された除算命令を実行すると、出力値生成回路10に以下に説明するステップS1〜S6までの処理を実行させる。
まず、逆数出力部11のアドレス生成部110が、入力値D1の最上位ビットから連続する「0」の個数N1をカウントする(S1)。
アドレス生成部110は、入力値D1をN1ビットだけ左シフトして0を消去した後、N2ビットだけ右シフトして、8ビットの中間演算値D10を生成する。そして、アドレス生成部110は、中間演算値D10に基づいて仮数テーブル及び指数テーブルにアクセスするためのアドレスを生成する(S2)。アドレス生成部110は、中間演算値D10の値そのものを仮数テーブルにアクセスするためのアドレスとして第1出力部111に出力し、中間演算値D10の値そのものを指数テーブルにアクセスするためのアドレスとして第2出力部112に出力する。なお、本実施形態では、仮数テーブルにアクセスするためのアドレスと、指数テーブルにアクセスするためのアドレスとが同じであるが、仮数テーブルにアクセスするためのアドレスと、指数テーブルにアクセスするためのアドレスとが異なっていてもよい。
第1出力部111は、アドレス生成部110からアドレスが入力されると、このアドレスを用いて仮数テーブルにアクセスし、中間演算値D10を浮動小数点表現した場合の仮数部D11を生成する。また、第2出力部112は、アドレス生成部110からアドレスが入力されると、このアドレスを用いて指数テーブルにアクセスし、中間演算値D10を浮動小数点表現した場合の指数D121を生成する(S3)。
第1出力部111は、生成した仮数部D11をスタックメモリに出力する。第2出力部112は、生成した指数D121を指数部演算部113に出力する。指数部演算部113は、アドレス生成部110が出力した個数N1に基づいて右シフト数N2を求め、第2出力部112が出力した指数D121から右シフト数N2を減算して指数部D12を求める。つまり、中間演算値D10を求めるために入力値D1をシフトさせた桁数である右シフト数N2と、中間演算値D10を浮動小数点表現した場合の指数D121とに基づいて、入力値D1の逆数を浮動小数点表現した場合の指数部D12が決定される。そして、指数部演算部113は、指数D121と右シフト数N2とに基づいて決定した指数部D12をスタックメモリに出力する。これにより、逆数出力部11が、仮数部D11と指数部D12とをそれぞれ個別に出力する(S4)。
そして、演算部12が、スタックメモリに記憶された仮数部D11と指数部D12とを用いて、複数の被除数D2を同じ値(入力値D1)で割った値を求めるステップS5,S6の処理を繰り返し実行する。
ステップS5では、乗算部13が、仮数部D11と被除数D2とを乗算する。そして、ステップS6では、シフト演算部14が、乗算部13の乗算結果D3を、指数部D12に基づいてシフト演算することで、被除数D2を除数である入力値D1で割った値D4を求める。
複数の被除数D2のそれぞれにステップS5,S6の処理を実行すると、プロセッサ1は、複数の被除数D2を入力値Dで割った値を求める除算処理を終了する。
このように、本実施形態のプロセッサ1では、被除数D2を除数である入力値D1で割る除算演算を行うために、除数である入力値D1の逆数を浮動小数点表現した場合の仮数部D11と指数部D12とを求めている。プロセッサ1の逆数出力部11は、入力値D1の逆数(出力値)を浮動小数点表現した場合の仮数部D11と指数部D12とを求めて、それぞれ個別に出力する。したがって、仮数部D11の桁数に応じた精度の出力を得ることができるので、出力値の精度の低下を抑制可能であり、また浮動小数点演算器を備えていなくても後段の演算処理(例えば除算処理)を行うことができる。そして、プロセッサ1は、この仮数部D11及び指数部D12を用いて被除数D2を入力値D1で割った値を求めている。したがって、入力値D1の逆数を浮動小数点表現した場合の仮数部D11及び指数部D12を求めてスタックメモリ等に記憶させておけば、この仮数部D11と指数部D12を用いて複数回の除算演算を行うことができる。よって、複数の被除数D2を同じ入力値D1で割る複数回の除算演算を行う場合に演算処理の処理コストを低減することができる。
(3)変形例
上記実施形態は、本開示の様々な実施形態の一つに過ぎない。上記実施形態は、本開示の目的を達成できれば、設計等に応じて種々の変更が可能である。また、出力値生成回路10と同様の機能は、出力値生成方法、コンピュータプログラム、又はプログラムを記録した非一時的な記録媒体等で具現化されてもよい。一態様に係る出力値生成方法は、入力値D1を変換して得られる出力値を浮動小数点表現した場合の仮数部D11と指数部D12とを生成し、仮数部D11と指数部D12とをそれぞれ個別に出力する。一態様に係る(コンピュータ)プログラムは、コンピュータシステムに、出力処理を、実行させるためのプログラムである。出力処理は、入力値D1を変換して得られる出力値を浮動小数点表現した場合の仮数部D11と指数部D12とを生成し、仮数部D11と指数部D12とをそれぞれ個別に出力する処理である。ここにおいて、プログラムとは、例えば、除算処理等の算術処理をプロセッサ1に実行させるためにプロセッサ1に実装された命令又は命令セットを含む。また、一態様に係るプロセッサは、上記のプログラムが実装されたプロセッサであって、上記の出力値生成回路10を含む。プロセッサは、入力値D1が入力されると、出力値生成回路10に仮数部D11と指数部D12とをそれぞれ個別に出力する処理を実行させる。
以下、上記の実施形態の変形例を列挙する。以下に説明する変形例は、適宜組み合わせて適用可能である。
本開示における出力値生成回路10又は出力値生成方法の実行主体は、コンピュータシステムを含んでいる。コンピュータシステムは、ハードウェアとしてのプロセッサ及びメモリを主構成とする。コンピュータシステムのメモリに記録されたプログラムをプロセッサが実行することによって、本開示における装置、システム又は方法の実行主体としての機能が実現される。プログラムは、コンピュータシステムのメモリに予め記録されていてもよいが、電気通信回線を通じて提供されてもよいし、コンピュータシステムで読み取り可能な非一時的な記録媒体に記録されて提供されてもよい。コンピュータシステムで読み取り可能な非一時的な記録媒体は、メモリカード、光学ディスク、ハードディスクドライブ等である。コンピュータシステムのプロセッサは、半導体集積回路(IC)又は大規模集積回路(LSI)を含む1乃至複数の電子回路で構成される。複数の電子回路は、1つのチップに集約されていてもよいし、複数のチップに分散して設けられていてもよい。複数のチップは、1つの装置に集約されていてもよいし、複数の装置に分散して設けられていてもよい。
上記の実施形態では、出力値生成回路10が、入力値D1の逆数である出力値を浮動小数点表現した場合の仮数部D11と指数部D12とをそれぞれ出力する出力部(逆数出力部11)を備えているが、出力部は入力値D1の逆数を出力するものに限定されない。入力値D1と出力値との関係が所定の関数となればよく、例えば、入力値D1の平方根を出力する関数、入力値D1の平方根の逆数を出力する関数、三角関数、逆三角関数等の関数でもよい。
上記の実施形態では、出力値生成回路10が、逆数出力部11から出力される仮数部D11及び指数部D12を用いて所定の演算処理を行う演算部12を備えているが、演算部12が逆数出力部11の外部にあってもよい。この場合、逆数出力部11から出力される仮数部D11及び指数部D12はスタックメモリ等に記憶され、演算部12は、スタックメモリ等から仮数部D11及び指数部D12を読み出して後段の演算処理を行う。
上記の実施形態では、メモリ2に仮数テーブル及び指数テーブルが記憶されているが、プロセッサ1の内部メモリに仮数テーブル及び指数テーブルが記憶されていてもよい。
また、出力値生成回路10は、入力値D1に基づいて決定されるアドレスを用いて仮数テーブルから仮数部を生成し、指数テーブルから指数部を生成しているが、仮数テーブル及び指数テーブルを備えることは必須ではない。つまり、入力値D1に基づいて決定されるアドレスと仮数部とが対応づけてメモリ2又は内部メモリに記憶されていればよく、指数テーブルは必須ではない。同様に、入力値D1に基づいて決定されるアドレスと指数部とが対応づけてメモリ2又は内部メモリに記憶されていればよく、指数テーブルは必須ではない。
また、第2出力部112は、中間演算値D10を浮動小数点表現した場合の指数部を指数テーブルから取得しているが、演算によって指数部を求めてもよい。
また、出力値生成回路10は、入力値D1をシフト演算して求めた中間演算値D10に基づいて決定されるアドレスに対応付けて仮数部及び指数部を記憶しており、入力値D1の個数に比べてメモリ2に記憶する仮数部及び指数部の個数を削減している。これによって、メモリ2のメモリ容量を削減することが可能であるが、中間演算値D10を生成することは必須ではない。つまり、メモリ2又は内部メモリに、入力値D1をアドレスとしてそのアドレスに、入力値D1を浮動小数点表現した場合の仮数部のデータを格納した仮数テーブルを記憶してもよい。同様に、メモリ2又は内部メモリに、入力値D1をアドレスとしてそのアドレスに、入力値D1を浮動小数点表現した場合の指数部のデータを格納した指数テーブルを記憶してもよい。この場合、アドレス生成部110は不要であり、第1出力部111は、入力値D1をアドレスとして仮数テーブルから仮数部を取得し、第2出力部112は、入力値D1をアドレスとして指数テーブルから指数部を取得すればよい。
(まとめ)
以上説明したように、第1の態様の出力値生成回路(10)は出力部(11)を有する。出力部(11)は、入力値(D1)を変換して得られる出力値を浮動小数点表現した場合の仮数部(D11)と指数部(D12)とを生成し、仮数部(D11)と指数部(D12)とをそれぞれ個別に出力する。
この態様によれば、仮数部(D11)と指数部(D12)とをそれぞれ個別に出力するので、出力値の精度の低下を抑制可能であり、浮動小数点演算器を持たない回路又はプロセッサでも後段の処理を行うことができる、という利点がある。
第2の態様の出力値生成回路(10)では、第1の態様において、入力値(D1)と出力値との関係が所定の関数となる。
この態様によれば、出力値の精度の低下を抑制可能である。
第3の態様の出力値生成回路(10)では、第1の態様において、出力値が入力値(D1)の逆数である。
この態様によれば、出力値の精度の低下を抑制可能である。
第4の態様の出力値生成回路(10)では、第1〜第3の態様において、出力部(11)は、入力値(D1)に基づいて決定されるアドレスに対応する値として仮数部(D11)を生成する。
この態様によれば、仮数部(D11)をその都度演算する必要がなく、演算処理のコストを低減可能である。
第5の態様の出力値生成回路(10)では、第1〜第3の態様において、出力部(11)は、入力値(D1)に基づいて決定されるアドレスに対応する値として指数部(D12)を生成する。
この態様によれば、指数部(D12)をその都度演算する必要がなく、演算処理のコストを低減可能である。
第6の態様の出力値生成回路(10)では、第5の態様において、入力値(D1)をシフト演算して求めた中間演算値(D10)に基づいてアドレスが決定される。出力値生成回路(10)では、中間演算値(D10)を求めるために入力値(D1)をシフトさせた桁数(N2)と、中間演算値(D10)を浮動小数点表現した場合の指数(D121)とに基づいて指数部(D12)が決定される。
この態様によれば、入力値(D1)そのものをアドレスとする場合に比べて、記憶しておく指数(D121)の数を減らすことができ、指数(D121)を記憶するために必要なメモリの記憶容量を低減できる。
第7の態様の出力値生成回路(10)は、第1〜第6の態様において、指数部(D12)と仮数部(D11)との両方を用いた演算処理を行う演算部(12)を更に備える。
この態様によれば、出力値の精度の低下を抑制可能である。
第8の態様のプロセッサ(1)は、第1〜第7のいずれかの態様の出力値生成回路(10)を含む。プロセッサ(1)は、入力値(D1)が入力されると、出力値生成回路(10)に仮数部(D11)と指数部(D12)とをそれぞれ個別に出力する処理を実行させる。
この態様によれば、出力値の精度の低下を抑制可能であり、浮動小数点演算器を持たない回路又はプロセッサでも後段の処理を行うことができる、という利点がある。
第9の態様の出力値生成方法では、入力値(D1)を変換して得られる出力値を浮動小数点表現した場合の仮数部(D11)と指数部(D12)とを生成し、仮数部(D11)と指数部(D12)とをそれぞれ個別に出力する。
この態様によれば、出力値の精度の低下を抑制可能であり、浮動小数点演算器を持たない回路又はプロセッサでも後段の処理を行うことができる、という利点がある。
第10の態様のプログラムは、コンピュータシステムに出力処理を実行させるためのプログラムである。出力処理では、入力値(D1)を変換して得られる出力値を浮動小数点表現した場合の仮数部(D11)と指数部(D12)とを生成し、仮数部(D11)と指数部(D12)とをそれぞれ個別に出力する。
この態様によれば、出力値の精度の低下を抑制可能であり、浮動小数点演算器を持たない回路又はプロセッサでも後段の処理を行うことができる、という利点がある。
上記態様に限らず、上記の実施形態に係る出力値生成回路(10)の種々の構成(変形例を含む)は、出力値生成方法、出力値生成回路(10)を含むプロセッサ、(コンピュータ)プログラム、又はプログラムを記録した非一時的な記録媒体等で具現化可能である。
第2〜第7の態様に係る構成については、出力値生成回路(10)に必須の構成ではなく、適宜省略可能である。
1 プロセッサ
10 出力値生成回路
11 逆数出力部(出力部)
12 演算部
D1 入力値
D10 中間演算値
D11 仮数部
D12 指数部

Claims (10)

  1. 入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、前記仮数部と前記指数部とをそれぞれ個別に出力する出力部を有する、
    出力値生成回路。
  2. 前記入力値と前記出力値との関係が所定の関数となる、
    請求項1に記載の出力値生成回路。
  3. 前記出力値が前記入力値の逆数である、
    請求項1に記載の出力値生成回路。
  4. 前記出力部は、前記入力値に基づいて決定されるアドレスに対応する値として前記仮数部を生成する、
    請求項1〜3のいずれか1項に記載の出力値生成回路。
  5. 前記出力部は、前記入力値に基づいて決定されるアドレスに対応する値として前記指数部を生成する、
    請求項1〜3のいずれか1項に記載の出力値生成回路。
  6. 前記入力値をシフト演算して求めた中間演算値に基づいて前記アドレスが決定され、
    前記中間演算値を求めるために前記入力値をシフトさせた桁数と、前記中間演算値を浮動小数点表現した場合の指数とに基づいて前記指数部が決定される、
    請求項5に記載の出力値生成回路。
  7. 前記指数部と前記仮数部との両方を用いた演算処理を行う演算部を更に備える、
    請求項1〜6のいずれかに記載の出力値生成回路。
  8. 請求項1〜7のいずれかに記載の出力値生成回路を含むプロセッサであって、
    前記入力値が入力されると、前記出力値生成回路に前記仮数部と前記指数部とをそれぞれ個別に出力する処理を実行させる、
    プロセッサ。
  9. 入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、前記仮数部と前記指数部とをそれぞれ個別に出力する、
    出力値生成方法。
  10. コンピュータシステムに、
    入力値を変換して得られる出力値を浮動小数点表現した場合の仮数部と指数部とを生成し、前記仮数部と前記指数部とをそれぞれ個別に出力する出力処理を、実行させるための、
    プログラム。
JP2018063912A 2018-03-29 2018-03-29 出力値生成回路、プロセッサ、出力値生成方法、及びプログラム Pending JP2019175225A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018063912A JP2019175225A (ja) 2018-03-29 2018-03-29 出力値生成回路、プロセッサ、出力値生成方法、及びプログラム
DE102019107303.0A DE102019107303A1 (de) 2018-03-29 2019-03-21 Ausgabewerterzeugerschaltung, Prozessor, Ausgabewerterzeugungsverfahren und Computerprogramm
US16/365,060 US20190303102A1 (en) 2018-03-29 2019-03-26 Output value generator circuit, processor, output value generation method and non-transitory computer readable medium
CN201910246968.5A CN110321163A (zh) 2018-03-29 2019-03-29 输出值生成电路及方法、处理器以及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018063912A JP2019175225A (ja) 2018-03-29 2018-03-29 出力値生成回路、プロセッサ、出力値生成方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2019175225A true JP2019175225A (ja) 2019-10-10

Family

ID=67910195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018063912A Pending JP2019175225A (ja) 2018-03-29 2018-03-29 出力値生成回路、プロセッサ、出力値生成方法、及びプログラム

Country Status (4)

Country Link
US (1) US20190303102A1 (ja)
JP (1) JP2019175225A (ja)
CN (1) CN110321163A (ja)
DE (1) DE102019107303A1 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01263812A (ja) 1988-04-15 1989-10-20 Nec Corp テーブル読み出し回路

Also Published As

Publication number Publication date
CN110321163A (zh) 2019-10-11
DE102019107303A1 (de) 2019-10-02
US20190303102A1 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
EP3674883A1 (en) Multiplication circuit, system on chip, and electronic device
CN113867685A (zh) 一种乘法器转换方法、装置、设备及可读存储介质
KR100847934B1 (ko) 스케일링된 정수를 사용하는 부동 소수점 연산
JP2010067251A (ja) 許容誤差内の整数除算回路
JP2019175225A (ja) 出力値生成回路、プロセッサ、出力値生成方法、及びプログラム
US11010135B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP2011028312A (ja) 演算処理装置、その制御方法および演算処理プログラム
US6898615B2 (en) Signal processing unit and signal processing method including using an exponent part and a mantissa part for power generation
KR102559930B1 (ko) 수학적 함수들을 연산하기 위한 시스템 및 방법들
KR102228995B1 (ko) 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치
TWI514857B (zh) 在資料處理裝置內實施的低複雜度雙邊濾波(bf)
CN115686436A (zh) 定点数除法的计算方法及装置
CN115293076A (zh) 生成电路的方法、电子设备及存储介质
WO2018150505A1 (ja) 規模算出装置及び規模算出プログラム
JP4696920B2 (ja) Dds信号発生装置
CN108182050B (zh) 利用四输入点积电路计算三角函数
JP6580288B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US20140149481A1 (en) Decimal Multi-Precision Overflow and Tininess Detection
JP2006323710A (ja) データプロセッサ、データ処理方法及び演算制御プログラム
CN113703717B (zh) 二进制浮点数乘法运算电路及其控制方法、计算装置
JP7192025B2 (ja) 推移予測装置、推移予測方法、および、推移予測プログラム
JP6048560B1 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP6749530B1 (ja) 構造変換装置、構造変換方法及び構造変換プログラム
US20230102267A1 (en) Secure computation apparatus, secure computation method, and program
CN109669667B (zh) 一种在定点dsp芯片上实现的数据处理方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200804