JP2021047778A - 演算回路 - Google Patents

演算回路 Download PDF

Info

Publication number
JP2021047778A
JP2021047778A JP2019171260A JP2019171260A JP2021047778A JP 2021047778 A JP2021047778 A JP 2021047778A JP 2019171260 A JP2019171260 A JP 2019171260A JP 2019171260 A JP2019171260 A JP 2019171260A JP 2021047778 A JP2021047778 A JP 2021047778A
Authority
JP
Japan
Prior art keywords
input
circuit
input terminal
output
multiplexer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019171260A
Other languages
English (en)
Other versions
JP7191797B2 (ja
Inventor
政則 西沢
Masanori Nishizawa
政則 西沢
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.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage 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 Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2019171260A priority Critical patent/JP7191797B2/ja
Priority to CN202010126709.1A priority patent/CN112541582A/zh
Priority to US16/807,841 priority patent/US11733970B2/en
Publication of JP2021047778A publication Critical patent/JP2021047778A/ja
Application granted granted Critical
Publication of JP7191797B2 publication Critical patent/JP7191797B2/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/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/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Mathematical Optimization (AREA)
  • Complex Calculations (AREA)
  • Power Sources (AREA)

Abstract

【課題】回路規模の縮小、演算時間の短縮、あるいは低消費電力化が可能なシグモイド関数を演算する演算回路を提供する。【解決手段】実施形態の演算回路は、シグモイド関数の演算を行う演算回路において、シグモイド関数における自然対数の底eを基数とする指数演算で指数が負の数である場合に、前記指数を正の数として計算を行い、第1計算結果を出力するべき乗及び開平演算器12と、1からべき乗及び開平演算器12による第1計算結果を減算し、減算値を出力する減算器17とを備える。【選択図】図4

Description

実施形態は、シグモイド関数を演算する演算回路に関する。
近年、AI開発がブームとなり、例えば、ニューラルネットワークに関する活性化関数のハードウェアへの実装方法の研究が盛んに行われている。
ニューラルネットワークでは、活性化関数としてシグモイド関数がよく利用される。しかし、シグモイド関数は、計算式が複雑であるため、ハードウェアで実装するのは難しい。
特開平6−203058号公報
実施形態は、回路規模の縮小、演算時間の短縮、あるいは低消費電力化が実現でき、ハードウェアへ容易に実装可能なシグモイド関数を演算する演算回路を提供する。
実施形態の演算回路は、シグモイド関数の演算を行う演算回路において、前記シグモイド関数における自然対数の底eを基数とする指数演算で指数が負の数である場合に、前記指数を正の数として計算を行い、第1計算結果を出力する第1回路と、1から前記第1回路による前記第1計算結果を減算し、減算値を出力する第2回路とを備える。
図1は、ニューラルネットワークの概念図である。 図2は、シグモイド関数f(x)を表す図である。 図3は、比較例の演算回路の一例を示す図である。 図4は、第1実施形態の演算回路の構成を示すブロック図である。 図5は、比較例のべき乗及び開平演算器を含む演算回路の構成を示すブロック図である。 図6は、第2実施形態の演算回路の構成を示すブロック図である。 図7は、第3実施形態の演算回路の構成を示すブロック図である。 図8は、シグモイド関数における2のべき乗計算において、各ビットに対応するべき乗の値を示す図である。 図9は、シグモイド関数における2のべき乗計算において、各ビットに対応するべき乗の値を示す図である。 図10は、第5実施形態のべき乗及び開平演算器を含む演算回路の構成を示すブロック図である。 図11は、シグモイド関数における2のべき乗計算において、累乗根の固定値テーブルを示す図である。 図12は、第6実施形態の演算回路の構成を示すブロック図である。
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。さらに、各実施形態は、組み合わせが可能であれば、2つあるいは多数の実施形態を組み合わせて、1つの実施形態として実行されてもよい。
各機能ブロック(または、回路ブロック)は、ハードウェア、ソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
1.第1実施形態
前述したように、ニューラルネットワークでは、活性化関数としてシグモイド関数がよく利用される。図1に、ニューラルネットワークの概念図を示す。
シグモイド関数f(x)は、以下の式(1)で示され、図2で表すことができる。
Figure 2021047778
上記式(1)で示されたシグモイド関数f(x)を演算するための演算回路の一例を図3に示す。図3に示す演算回路100は、本実施形態に対する比較例であり、乗算器11、べき乗及び開平演算器12、除算器13、マルチプレクサ14、加算器15、及び除算器16を備える。
このような回路においてシグモイド関数f(x)の演算が行われるが、シグモイド関数の演算の中では、べき乗計算が最も演算量が多い。
以下に、シグモイド関数の演算中で、なぜ、べき乗計算の演算量が多いかを単精度浮動小数点数の例で説明する。
12.40625=e1010.01101b
上記式を展開すると、以下の式(2)のようになる。
Figure 2021047778
ここで、以下の式(3)に示すように、各ビットに対応するeのべき乗(累乗根)の値は、指数の整数部は2乗、指数の小数部は平方根を繰り返し実施して求める必要がある。単精度浮動小数点数では、指数が−126〜127で表現されるため、その分の2乗・平方根の実施が必要である。また、最終的にそれらを乗算する必要があり、仮数の分(23ビット)だけ乗算が必要となる。
Figure 2021047778
以下に、第1実施形態の演算回路について説明する。第1実施形態では、シグモイド関数において、最後の逆数演算(または、除算)を減算へ置き換える手法について説明する。
1.1 演算回路の構成
図4を用いて、第1実施形態の演算回路の構成について説明する。図4は、第1実施形態の演算回路の構成を示すブロック図である。
演算回路10は、乗算器11、べき乗及び開平演算器12、加算器15、除算器16、減算器17、及びマルチプレクサ18を備える。乗算器11、べき乗及び開平演算器12、加算器15、除算器16、及び減算器17の各々は、第1入力端子、第2入力端子、及び出力端子を有する。マルチプレクサ18は、第1入力端子、第2入力端子、制御端子、及び出力端子を有する。図4に示す演算回路10は、図3に示した演算回路100に対して、回路A1が削除され、回路A2が追加されたものである。
1.2 演算回路の動作
入力信号(または、入力変数)xが乗算器11の第1入力端子に入力され、−aが乗算器11の第2入力端子に入力される。aは、図2におけるf(x)の傾きを決める値である。乗算器11の出力端子からの出力信号が、べき乗及び開平演算器12の第1入力端子に入力され、eがべき乗及び開平演算器12の第2入力端子に入力される。eはネイピア数であり、自然対数の底である。
べき乗及び開平演算器12の出力端子からの出力信号が、加算器15の第1入力端子に入力され、1が加算器15の第2入力端子に入力される。加算器15の出力端子からの出力信号が、除算器16の第1入力端子に入力され、1が除算器16の第2入力端子に入力される。
除算器16の出力端子からの出力信号が、減算器17の第1入力端子とマルチプレクサ18の第1入力端子に入力され、1が減算器17の第2入力端子に入力される。減算器17の出力端子からの出力信号が、マルチプレクサ18の第2入力端子に入力される。マルチプレクサ18は、制御端子に入力された選択信号に応じて、第1入力端子あるいは第2入力端子のいずれかに入力された信号を、出力端子から出力信号f(x)として出力する。
以下に、シグモイド関数f(x)における逆数演算を減算に置き換える手法を示す。シグモイド関数f(x)においては、x ≧ 0 の場合に、自然対数の底eのべき乗演算後に、逆数演算が必要となる。
式(1)で示されるシグモイド関数f(x)は、図2に示すように、座標(0, 0.5)で点対称であることを利用すると、以下の式が成り立つ。
f(x)=1−f(−x)
よって、x の符号別に処理を分けることで、以下の式(4)に示すように、逆数演算を減算に置き換えることが可能となる。
Figure 2021047778
以下に、図4を用いて、第1実施形態の演算回路の動作について説明する。
乗算器11は、第1入力端子と第2入力端子に入力された2つの信号に対して乗算を行い、これら2つの信号の積に比例した信号を出力する。具体的には、入力信号xと−aとの乗算を行い、これらの積、すなわち、“−ax”を出力する。
べき乗及び開平演算器12は、第1入力端子と第2入力端子に入力された2つの信号に対してべき乗演算あるいは開平演算を行い、これら2つの信号のべき乗あるいは開平に比例した信号を出力する。具体的には、基数“e”と指数“−ax”とでべき乗演算を行い、これらのべき乗演算結果、すなわち、“e−ax”を出力する。
加算器15は、第1入力端子と第2入力端子に入力された2つの信号に対して加算を行い、これら2つの信号の加算結果に比例した信号を出力する。具体的には、1とe−axとを加算し、加算結果、すなわち、“1+e−ax”を出力する。
除算器16は、第2入力端子に入力された信号に対して、第1入力端子に入力された信号にて除算を行い、除算結果に比例した信号を出力する。具体的には、“1/(1+e−ax)”を行い、“1/(1+e−ax)”に比例した信号を出力する。
減算器17は、第2入力端子に入力された信号に対して、第1入力端子に入力された信号にて減算を行い、減算結果に比例した信号を出力する。具体的には、減算器17は、“1−{1/(1+e−ax)}”を行い、“1−{1/(1+e−ax)}”に比例した信号を出力する。
マルチプレクサ18は、第1入力端子と第2入力端子に入力された2つの信号を受け、制御端子に入力された選択信号に応じて、2つの信号のうちのいずれか1つの信号を出力する。具体的には、マルチプレクサ18は、“1−{1/(1+e−ax)}”と“1/(1+e−ax)”とを受け取り、選択信号に応じて、いずれか1つの信号を出力信号f(x)として出力する。詳述すると、マルチプレクサ18は、“1−{1/(1+e−ax)}”と“1/(1+e−ax)”とを受け取り、x ≧ 0 の場合に、“1−{1/(1+e−ax)}”を出力し、x < 0 の場合に、“1/(1+e−ax)”を出力信号f(x)として出力する。
1.3 第1実施形態の効果
第1実施形態によれば、シグモイド関数を演算するための演算回路の回路規模の縮小、演算時間の短縮、及び低消費電力化を実現することができる。これにより、前記演算回路をハードウェアへ容易に実装可能である。
第1実施形態では、シグモイド関数における処理をx の正負符号別に分けることにより、べき乗演算後に行われる逆数演算を、減算に置き換えることができる。図3に示した除算器13を削除し、図4に示したように、除算器16の後段に減算器17を追加する。これにより、シグモイド関数を演算する演算回路の回路規模を縮小することができ、この演算回路のハードウェアへの実装が容易になる。さらに、この演算回路における演算時間の短縮、及び低消費電力化を図ることができる。
なお、本実施形態は、前述したように、乗算器、べき乗及び開平演算器、加算器、除算器、及び減算器等の演算器(または、演算回路)を用いたハードウェアにより実施してもよいし、CPU(central processing unit)あるいはDSP(digital signal processor)等のプロセッサを用いてソフトウェアにて実施することも可能である。
2.第2実施形態
次に、第2実施形態の演算回路について説明する。第2実施形態では、シグモイド関数において、自然対数の底eの指数関数から2の指数関数への式変換を行うことにより、べき乗演算を簡略化する手法について説明する。
先に、本実施形態に対する比較例の演算回路について説明する。図5は、比較例のべき乗及び開平演算器12を含む演算回路200の構成を示すブロック図である。演算回路200は、繰り返し制御回路21及びべき乗及び開平演算器12を含む。演算回路200は、演算回路100(または、10)におけるべき乗及び開平演算器12を詳細に示すものであり、その他の回路は省略している。べき乗及び開平演算器12は、マルチプレクサ22、乗算器23、ラッチ回路24、マルチプレクサ25、乗算器26、ラッチ回路27、マルチプレクサ28、開平演算器29、ラッチ回路31、マルチプレクサ32、乗算器33、ラッチ回路34、及び乗算器35を備える。
シグモイド関数f(x)におけるeの指数関数に関する計算、すなわち自然対数の底eを用いた計算では、図5に示すように多数の乗算器が必要となり、計算が複雑となる。このため、べき乗演算を簡略化するために、シグモイド関数f(x)におけるeの指数関数を2の指数関数に変換する。
まず、以下のように定義すると、
=2
y=log=x・log
よって、以下の式(5)に示すように、シグモイド関数f(x)を置き換えることができる。
Figure 2021047778
このとき、logeは定数である。
loge=1.442695041…
2.1 演算回路の構成
図6を用いて、第2実施形態の演算回路の構成について説明する。図6は、第2実施形態のべき乗及び開平演算器12Aを含む演算回路20の構成を示すブロック図である。
前述の式(5)に示したように、底eの指数関数を2の指数関数に置き換えることができれば、演算回路200のべき乗及び開平演算器12内の整数部における複数の乗算器、及び乗算器による複数の乗算の繰り返しを、A3に示すように、バレルシフタ36に置き換えることができる。これにより、第2実施形態の演算回路20の回路規模を縮小することが可能である。以下に、縮小化した演算回路20について説明する。
図6に示すように、演算回路20は、繰り返し制御回路21及びべき乗及び開平演算器12Aを含む。演算回路20は、演算回路10(または、100)におけるべき乗及び開平演算器12をべき乗及び開平演算器12Aに置き換えたものであり、その他の回路は省略している。
繰り返し制御回路21は、開平演算器29と乗算器33とによる演算の繰り返しを制御する。指数が小数である場合の2のべき乗計算は、2の開平演算を行い、平方根の値Xを求め、その値を掛け合わす必要がある。さらに、指数における小数の次の下の桁を計算するために、平方根の値Xの平方根をさらに求め、それらの値を掛け合わせる。このように、指数の0より小さい小数点数の計算には、指数の小数の桁ごとに平方根の開平演算と乗算が必要であり、それらを桁の数だけ繰り返す必要がある。繰り返し制御回路21は、小数の桁の分だけ、平方根の開平演算と乗算とを繰り返す処理を行う。以降の実施形態における繰り返し制御回路21においても同様である。
べき乗及び開平演算器12Aは、バレルシフタ36、マルチプレクサ28、開平演算器29、ラッチ回路31、マルチプレクサ32、乗算器33、ラッチ回路34、及び乗算器35を備える。バレルシフタ36、乗算器33、及び乗算器35の各々は、第1入力端子、第2入力端子、及び出力端子を有する。マルチプレクサ28及び32の各々は、第1入力端子、第2入力端子、制御端子、及び出力端子を有する。ラッチ回路31及び34の各々は、入力端子及び出力端子を有する。
2.2 演算回路の動作
以下に図6を用いて、第2実施形態の演算回路20の動作について説明する。
入力信号xが繰り返し制御回路21に入力される。演算回路20におけるべき乗及び開平演算器12Aの整数部を処理する回路では、入力信号xがバレルシフタ36の第1入力端子に入力され、1がバレルシフタ36の第2入力端子に入力される。バレルシフタ36の出力端子からの出力信号が乗算器35の第1入力端子に入力される。
べき乗及び開平演算器12Aの小数部を処理する回路では、2がマルチプレクサ28の第1入力端子に入力され、マルチプレクサ28の出力端子からの出力信号が開平演算器29の入力端子に入力され、開平演算器29の出力端子からの出力信号がラッチ回路31の入力端子に入力される。ラッチ回路31の出力端子からの出力信号が、マルチプレクサ28の第2入力端子、及び乗算器33の第1入力端子に入力される、すなわちマルチプレクサ28の第2入力端子にフィードバックされると共に、乗算器33の第1入力端子に入力される。
乗算器33の出力端子からの出力信号がラッチ回路34の入力端子に入力される。1がマルチプレクサ32の第1入力端子に入力され、マルチプレクサ32の出力端子からの出力信号が、乗算器33の第2入力端子に入力される。ラッチ回路34の出力端子からの出力信号が、マルチプレクサ32の第2入力端子、及び乗算器35の第2入力端子に入力される、すなわちマルチプレクサ32の第2入力端子にフィードバックされると共に、乗算器35の第2入力端子に入力される。さらに、乗算器35の出力端子からの出力信号が後段の回路に出力される。このようなべき乗及び開平演算器12Aを含む演算回路20を用いて、式(5)に示したシグモイド関数f(x)が演算される。
2.3 第2実施形態の効果
第2実施形態によれば、シグモイド関数を演算するための演算回路の回路規模の縮小、演算時間の短縮、及び低消費電力化を実現することができる。これにより、前記演算回路をハードウェアへ容易に実装することが可能である。
第2実施形態では、シグモイド関数において、自然対数の底eの指数関数を2の指数関数に置き換えることにより、演算に必要な乗算器を減らすことができる。図5に示した乗算器23及び26を、図6に示したように、バレルシフタ36に置き換える。これにより、シグモイド関数を演算する演算回路の回路規模を縮小することができ、この演算回路のハードウェアへの実装が容易になる。さらに、この演算回路における演算時間の短縮、及び低消費電力化を図ることができる。
なお、本実施形態は、前述したように、各種の演算器(または、演算回路)を用いたハードウェアにより実施してもよいし、CPUあるいはDSP等のプロセッサを用いてソフトウェアにて実施することも可能である。
3.第3実施形態
次に、第3実施形態の演算回路について説明する。第3実施形態では、シグモイド関数の演算において、計算値に情報落ちが発生することを利用して無駄な計算を削減する手法について説明する。
まず、シグモイド関数f(x)における2b|x| と1との加算に着目する。
Figure 2021047778
上記の式(6)に示すように、シグモイド関数f(x)には、2b|x| と1との加算がある。単精度浮動小数点数の仮数は、23ビット、ガードビット、及びラウンドビットを足して25ビットである。このため、b|x|≧26の場合には、2b|x| に加算される1は無視できる。2b|x| に1を加算したとき、その計算値に情報落ちが発生するからである。
このとき、式(6)を以下の式(7)に変形でき、b|x|≧26の場合、2b|x| は無限大∞となり、式(7)に示すように、シグモイド関数f(x)の値が一意に決まる。すなわち、x ≧26 の場合、シグモイド関数g(x)は1であり、x ≦ −26 の場合、シグモイド関数f(x)は0である。
Figure 2021047778
3.1 演算回路の構成
図7を用いて、第3実施形態の演算回路の構成について説明する。図7は、第3実施形態の演算回路の構成を示すブロック図である。
演算回路30は、乗算器11、べき乗及び開平演算器12、除算器13、マルチプレクサ14、加算器15、除算器16、比較器37、比較器38、及びマルチプレクサ39,41を備える。乗算器11、べき乗及び開平演算器12、除算器13、加算器15、除算器16、及び比較器37,38の各々は、第1入力端子、第2入力端子、及び出力端子を有する。マルチプレクサ14,39,41の各々は、第1入力端子、第2入力端子、制御端子、及び出力端子を有する。
3.2 演算回路の動作
以下に図7を用いて、第3実施形態の演算回路30の動作について説明する。
入力信号xが乗算器11の第1入力端子に入力され、−aがその乗算器11の第2入力端子に入力される。aは、図2におけるf(x)の傾きを決める値である。乗算器11の出力端子からの出力信号が、べき乗及び開平演算器12の第1入力端子に入力され、底eがべき乗及び開平演算器12の第2入力端子に入力される。
べき乗及び開平演算器12の出力端子からの出力信号が、除算器13の第1入力端子、及びマルチプレクサ14の第1入力端子に入力され、1が除算器13の第2入力端子に入力される。除算器13の出力端子からの出力信号が、マルチプレクサ14の第2入力端子に入力される。
マルチプレクサ14の出力端子からの出力信号が、加算器15の第1入力端子に入力され、1が加算器15の第2入力端子に入力される。加算器15の出力端子からの出力信号が、除算器16の第1入力端子に入力され、1が除算器16の第2入力端子に入力される。
除算器16の出力端子からの出力信号が、マルチプレクサ39の第1入力端子に入力され、1がマルチプレクサ39の第2入力端子に入力される。マルチプレクサ39の出力端子からの出力信号が、マルチプレクサ41の第1入力端子に入力され、0がマルチプレクサ41の第2入力端子に入力される。
また、入力信号xが比較器37の第1入力端子、及び比較器38の第1入力端子に入力され、26が比較器37の第2入力端子に入力され、−26が比較器38の第2入力端子に入力される。
比較器37の出力端子からの出力信号が、マルチプレクサ39の制御端子に入力される。マルチプレクサ39は、制御端子に入力された出力信号(選択信号)に応じて、第1及び第2入力端子のいずれかに入力された信号を出力する。比較器38の出力端子からの出力信号が、マルチプレクサ41の制御端子に入力される。マルチプレクサ41は、制御端子に入力された出力信号(選択信号)に応じて、第1及び第2入力端子のいずれかに入力された信号を出力信号f(x)として出力する。
言い換えると、演算回路30では、入力信号xが比較器37,38の第1入力端子にそれぞれ入力される。26が比較器37の第2入力端子に入力され、−26が比較器38の第2入力端子に入力される。入力信号xと26との比較結果が、比較器37の出力端子から選択信号として出力される。入力信号xと−26との比較結果が、比較器38の出力端子から選択信号として出力される。マルチプレクサ39は、比較器37から出力された選択信号に応じて、除算器16からの出力信号あるいは1のいずれかの信号を出力する。さらに、マルチプレクサ41は、比較器38から出力された選択信号に応じて、マルチプレクサ39からの出力信号あるいは0のいずれかの信号を出力する。
すなわち、入力信号xが26以上である場合、マルチプレクサ39は1を出力信号として出力し、さらにマルチプレクサ41は、マルチプレクサ39から受け取った1を出力信号f(x)として出力する。一方、入力信号xが−26以下である場合、マルチプレクサ41は、0を出力信号f(x)として出力する。このような演算回路30を用いて、式(7)に示したシグモイド関数f(x)が演算される。
3.3 第3実施形態の効果
第3実施形態では、シグモイド関数の演算において、計算値に情報落ちが発生することを利用して計算値の整数部の計算量を削減することにより、演算回路における演算時間の短縮、及び低消費電力化を図ることができる。これにより、演算回路のハードウェアへの実装が容易になる。
なお、第3実施形態の演算回路30は、図3に示した演算回路100に回路A4を追加したものであるが、図4に示した演算回路10のマルチプレクサ18の後段に回路A4を追加した構成としてもよい。
また、本実施形態は、前述したように、各種の演算器(または、演算回路)を用いたハードウェアにより実施してもよいし、CPUあるいはDSP等のプロセッサを用いてソフトウェアにて実施することも可能である。
4.第4実施形態
次に、第4実施形態の演算回路について説明する。前述の第3実施形態では、シグモイド関数における計算値の情報落ちを利用して、計算値の整数部の計算量を削減したが、この第4実施形態では、計算値の情報落ちを利用して計算値の小数部の計算量を削減する。
計算値の小数部、すなわち小数点以下に関しても、2b|x| と1との加算を考慮すると、下位23ビットまでの計算で十分である。下位24ビット以下は、2b|x| と1との加算時に情報落ちするからである。第4実施形態における演算回路の構成、及び動作については、前述した第3実施形態と同様であるため、記載を省略する。
5.第5実施形態
次に、第5実施形態の演算回路について説明する。第5実施形態では、シグモイド関数における2のべき乗計算において、指数の小数点以下下位12ビットの乗算計算を簡略化する手法について説明する。
以下に、2のべき乗計算において、指数が小数である数値はどのように計算するかを示す。例えば、以下の数値を例に説明する。
14.40625=21110.01101b (指数部の2進数表現)
指数は、整数部と小数部に分離できる。小数部は分数表現が可能である。
Figure 2021047778
式(8)中の指数の加算は、以下の式(9)に示すように置き換えることができる。
Figure 2021047778
整数部の214 は、1のシフト演算(14ビット左シフト)で求めることが可能である。これにより、底eを2に変換したこと(第2実施形態参照)で、整数部の大量の乗算を1回のシフト演算に削減することができる。
Figure 2021047778
また、2のべき乗計算において、指数の小数の計算に着目すると、以下のようになる。
b|x| と1との加算による情報落ちを考慮して、小数点以下23ビットの計算を実施する。
Figure 2021047778
図8中のB1に示すように、x=212 以降の累乗根の値を見ると、ある決まった値の数値列が1ビットずれて現れることが分かる。これを利用して、各ビットの乗算の組み合わせ(最大12回)を乗算1つで置き換える。
以下に、図9を用いて、各ビットの乗算の組み合わせについて詳述する。図9は、図8に示したx=212 以降の累乗根の値を示す図である。
全ビットの半分以上が0の場合、図9に示すように、小数点以下の初めの1以降の値に同じ数値列が現れる。このパターンをCと定義する。
=(0.1b) ×1011000101110b
同じ数値列が繰り返される理由は、以下のようになるためである。
1+Cx−1=(1+C)=1+2C+C
ここで、C は精度以下となり切り捨てられる。
この法則を利用すると、上記の値のうち、2つを選んで乗算する計算が簡略化できる。乗算結果は、それぞれの値の加算で求めることができる。
(1+a)・(1+b)=1+a+b+a・b
ここで、a・bは精度以下となり切り捨てられる。
よって、下位ビットのそれぞれの乗算は、以下の乗算1つで置き換え可能である。
y=1+(1/224)・(index[−12:−23])×1011000101110b
上記式について、以下の数値を例に説明する。
0.00000000000110000000001
まず、指数部の下位12桁を以下の通り定義する。
index[−12:−23]=110000000001b
数値は、分数を使って以下のように表現できる。
Figure 2021047778
ここで、C は以下のように定義されているので、
=(0.1b) ×1011000101110b
=(1/2)×1011000101110b
となり、以下の関係が成り立つ。
Figure 2021047778
よって、数値は以下のように表現することができ、
Figure 2021047778
上記の式(14)中の乗算部(C13・C14+C14・C24+C24・C13+C13・C14・C24)は、精度以下のために切り捨てられて、以下のように簡潔な式となる。
Figure 2021047778
ここで、先に定義した以下の式を当てはめる。
index[−12:−23]=110000000001b
これにより、以下の式yを導くことができる。
y=1+(1/224)・(index[−12:−23])×1011000101110b
これは、変換前の式では、指数部の各桁の1の数分だけ、乗算と乗算する値を開平演算で求める必要があるが、第5実施形態における前記式yでは、加算1つ、乗算1つ、及びシフト演算1つで実現できることを示している。
5.1 演算回路の構成
図10を用いて、第5実施形態の演算回路の構成について説明する。図10は、第5実施形態のべき乗及び開平演算器12Bを含む演算回路50の構成を示すブロック図である。図10に示す回路は、図5に示した演算回路200に対して、回路A5を追加したものである。
演算回路50は、繰り返し制御回路21及びべき乗及び開平演算器12Bを含む。べき乗及び開平演算器12Bは、乗算器23,26,33,35,51、マルチプレクサ22,25,28,32,52、開平演算器29、ラッチ回路24,27,31,34を備える。乗算器23,26,33,35,51の各々は、第1入力端子、第2入力端子、及び出力端子を有する。開平演算器29及びラッチ回路24,27,31,34の各々は、入力端子及び出力端子を有する。マルチプレクサ22,25,28,32,52の各々は、第1入力端子、第2入力端子、制御端子、及び出力端子を有する。
5.2 演算回路の動作
以下に図10を用いて、第5実施形態の演算回路50の動作について説明する。
演算回路50におけるべき乗及び開平演算器12Bの整数部を処理する回路では、1がマルチプレクサ22の第1入力端子に入力され、マルチプレクサ22の出力端子からの出力信号が、乗算器23の第1入力端子に入力される。乗算器23の出力端子からの出力信号は、ラッチ回路24の入力端子に入力され、底eが乗算器23の第2入力端子に入力される。
ラッチ回路24の出力端子からの出力信号は、マルチプレクサ22の第2入力端子、及び乗算器26の第1入力端子に入力される、すなわちマルチプレクサ22の第2入力端子にフィードバックされると共に、乗算器26の第1入力端子に入力される。
1がマルチプレクサ25の第1入力端子に入力され、マルチプレクサ25の出力端子からの出力信号が、乗算器26の第2入力端子に入力される。乗算器26の出力端子からの出力信号は、ラッチ回路27の入力端子に入力され、ラッチ回路27の出力端子からの出力信号は、マルチプレクサ25の第2入力端子、及び乗算器35の第1入力端子に入力される、すなわちマルチプレクサ25の第2入力端子にフィードバックされる共に、乗算器35の第1入力端子に入力される。
入力信号xが繰り返し制御回路21に入力される。べき乗及び開平演算器12Bの小数部を処理する回路では、入力信号xの仮数の下位ビットが乗算器51の第1入力端子に入力される。定数が乗算器51の第2入力端子に入力される。乗算器51の出力端子からの出力信号は、マルチプレクサ52の第1入力端子に入力される。
底eがマルチプレクサ28の第1入力端子に入力され、マルチプレクサ28の出力端子からの出力信号が、開平演算器29の入力端子に入力される。開平演算器29の出力端子からの出力信号がラッチ回路31の入力端子に入力される。ラッチ回路31の出力端子からの出力信号が、マルチプレクサ28の第2入力端子、及びマルチプレクサ52の第2入力端子に入力される、すなわちマルチプレクサ28の第2入力端子にフィードバックされる共に、マルチプレクサ52の第2入力端子に入力される。
マルチプレクサ52の出力端子からの出力信号は、乗算器33の第1入力端子に入力される。1がマルチプレクサ32の第1入力端子に入力され、マルチプレクサ32の出力端子からの出力信号が乗算器33の第2入力端子に入力される。乗算器33の出力端子からの出力信号は、ラッチ回路34の入力端子に入力され、ラッチ回路34の出力端子からの出力信号は、マルチプレクサ32の第2入力端子、及び乗算器35の第2入力端子に入力される、すなわちマルチプレクサ32の第2入力端子にフィードバックされる共に、乗算器35の第2入力端子に入力される。このようなべき乗及び開平演算器12Bを含む演算回路50を用いて、前述した2のべき乗計算における簡略化された乗算が行われ、シグモイド関数f(x)が演算される。
5.3 第5実施形態の効果
第5実施形態によれば、シグモイド関数を演算するための演算回路における演算時間の短縮、及び低消費電力化を実現することができる。これにより、前記演算回路をハードウェアへ容易に実装することが可能である。
第5実施形態では、シグモイド関数における2のべき乗計算において、指数の小数点以下下位12ビットの乗算計算を簡略化することにより、演算回路における演算時間の短縮、及び低消費電力化を図ることができる。これにより、演算回路のハードウェアへの実装が容易になる。
なお、本実施形態は、前述したように、各種の演算器(または、演算回路)を用いたハードウェアにより実施してもよいし、CPUあるいはDSP等のプロセッサを用いてソフトウェアにて実施することも可能である。
6.第6実施形態
次に、第6実施形態の演算回路について説明する。第6実施形態では、シグモイド関数における2のべき乗計算において、指数の小数点以下上位11ビットの乗算計算を簡略化する手法について説明する。
シグモイド関数f(x)における2のべき乗計算において、x=2〜211 の累乗根の値には法則性がないため、図11中にB2にて示すように、累乗根の固定値をテーブルで持ち、前述の212〜223 の乗算結果を含め、それぞれを単純に乗算する必要がある(最大11回)。
ただし、各ビットの乗算回数(各ビットの1の数)が半数(6回)以上の場合、以下の式(16)に示すように、式を変形することで、乗算回数を1/2に減らすことができる。この場合、各累乗根の逆数の固定値テーブルを用意しておくとよい。
Figure 2021047778
6.1 演算回路の構成
図12を用いて、第6実施形態の演算回路の構成について説明する。図12は、第6実施形態のべき乗及び開平演算器12Cを含む演算回路60の構成を示すブロック図である。図12に示す回路は、図5に示した演算回路200に対して、回路A6及びA7を追加したものである。
演算回路60は、繰り返し制御回路21、べき乗及び開平演算器12C、ビット1カウント回路61、マルチプレクサ62、及びインバータ63を含む。べき乗及び開平演算器12Cは、乗算器23,26,33,35,64、マルチプレクサ22,25,28,32,66、開平演算器29、ラッチ回路24,27,31,34、及びシフタ65を備える。乗算器23,26,33,35,64、及びシフタ65の各々は、第1入力端子、第2入力端子、及び出力端子を有する。開平演算器29及びラッチ回路24,27,31,34の各々は、入力端子及び出力端子を有する。マルチプレクサ22,25,28,32,66の各々は、第1入力端子、第2入力端子、制御端子、及び出力端子を有する。
6.2 演算回路の動作
以下に図12を用いて、第6実施形態の演算回路60の動作について説明する。
演算回路60におけるべき乗及び開平演算器12Cの整数部を処理する回路では、1がマルチプレクサ22の第1入力端子に入力され、マルチプレクサ22の出力端子からの出力信号が、乗算器23の第1入力端子に入力される。乗算器23の出力端子からの出力信号は、ラッチ回路24の入力端子に入力され、底eが乗算器23の第2入力端子に入力される。
ラッチ回路24の出力端子からの出力信号は、マルチプレクサ22の第2入力端子、及び乗算器26の第1入力端子に入力される、すなわちマルチプレクサ22の第2入力端子にフィードバックされると共に、乗算器26の第1入力端子に入力される。
1がマルチプレクサ25の第1入力端子に入力され、マルチプレクサ25の出力端子からの出力信号が、乗算器26の第2入力端子に入力される。乗算器26の出力端子からの出力信号は、ラッチ回路27の入力端子に入力され、ラッチ回路27の出力端子からの出力信号は、マルチプレクサ25の第2入力端子、及び乗算器35の第1入力端子に入力される、すなわちマルチプレクサ25の第2入力端子にフィードバックされると共に、乗算器35の第1入力端子に入力される。
入力信号xがマルチプレクサ62の第1入力端子に入力され、また入力信号xがインバータを介してマルチプレクサ62の第2入力端子に入力される。マルチプレクサ62の出力端子からの出力信号が繰り返し制御回路21に入力される。入力信号xがビット1カウント回路61の入力端子に入力され、ビット1カウント回路61の出力端子からの出力信号がマルチプレクサ62及び66の制御端子に入力される。
べき乗及び開平演算器12Cの小数部を処理する回路では、底eがマルチプレクサ28の第1入力端子に入力され、マルチプレクサ28の出力端子からの出力信号が、開平演算器29の入力端子に入力される。開平演算器29の出力端子からの出力信号がラッチ回路31の入力端子に入力される。ラッチ回路31の出力端子からの出力信号が、マルチプレクサ28の第2入力端子、及び乗算器33の第1入力端子に入力される、すなわちマルチプレクサ28の第2入力端子にフィードバックされる共に、乗算器33の第1入力端子に入力される。
1がマルチプレクサ32の第1入力端子に入力され、マルチプレクサ32の出力端子からの出力信号が乗算器33の第2入力端子に入力される。乗算器33の出力端子からの出力信号は、ラッチ回路34の入力端子に入力され、ラッチ回路34の出力端子からの出力信号は、マルチプレクサ32の第2入力端子、マルチプレクサ66の第1入力端子、及び乗算器64の第1入力端子に入力される、すなわちマルチプレクサ32の第2入力端子にフィードバックされる共に、マルチプレクサ66の第1入力端子に入力され、さらに乗算器64の第1入力端子に入力される。
1が乗算器64の第2入力端子に入力され、乗算器64の出力端子からの出力信号がシフタ65の第1入力端子に入力される。1がシフタ65の第2入力端子に入力され、シフタ65の出力端子からの出力信号がマルチプレクサ66の第2入力端子に入力される。さらに、マルチプレクサ66の出力端子からの出力信号が、乗算器35の第2入力端子に入力される。このようなべき乗及び開平演算器12Cを含む演算回路60を用いて、前述した2のべき乗計算における簡略化された乗算が行われ、シグモイド関数f(x)が演算される。
6.3 第6実施形態の効果
第6実施形態によれば、シグモイド関数を演算するための演算回路における演算時間の短縮、及び低消費電力化を実現することができる。これにより、前記演算回路をハードウェアへ容易に実装することが可能である。
第6実施形態では、シグモイド関数における2のべき乗計算において、指数の小数点以下上位11ビットの乗算計算を簡略化することにより、演算回路における演算時間の短縮、及び低消費電力化を図ることができる。これにより、演算回路のハードウェアへの実装が容易になる。また、ルックアップテーブルで全ての組み合わせについて実装する場合よりも、本実施形態の方が回路規模を小さくすることができる。
なお、本実施形態は、前述したように、各種の演算器(または、演算回路)を用いたハードウェアにより実施してもよいし、CPUあるいはDSP等のプロセッサを用いてソフトウェアにて実施することも可能である。
7.その他変形例等
前述した第1〜第6実施形態は、以下のような態様を取ることが可能である。
(1)第1実施形態では、シグモイド関数の演算を行う演算回路において、
入力信号が入力される第1入力端子と、第1信号(−a信号)が入力される第2入力端子とを有する第1乗算器と、
前記第1乗算器の出力が入力される第1入力端子と、自然対数の底eが入力される第2入力端子とを有するべき乗及び開平演算器と、
前記べき乗及び開平演算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有する加算器と、
前記加算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有する除算器と、
前記除算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有する減算器と、
前記除算器の出力が入力される第1入力端子と、前記減算器の出力が入力される第2入力端子とを有する第1マルチプレクサと、
を具備する演算回路。
(2)第2実施形態では、前記(1)に記載の演算回路において、
前記べき乗及び開平演算器は、
入力信号が入力される第1入力端子と、1が入力される第2入力端子とを有するバレルシフタと、
2が入力される第1入力端子と、第2入力端子を有する第2マルチプレクサと、
前記第2マルチプレクサの出力が入力される開平演算器と、
1が入力される第1入力端子と、第2入力端子を有する第3マルチプレクサと、
前記開平演算器の出力が入力される第1入力端子と、前記第3マルチプレクサの出力が入力される第2入力端子を有する第2乗算器と、
前記バレルシフタの出力が入力される第1入力端子と、前記第2乗算器の出力が入力される第2入力端子とを有する第3乗算器と、を具備し、
前記開平演算器の出力は前記第2マルチプレクサの前記第2入力端子に入力され、第2乗算器の出力は前記第3マルチプレクサの前記第2入力端子に入力される演算回路。
(3)第3及び第4実施形態では、シグモイド関数の演算を行う演算回路において、
入力信号が入力される第1入力端子と、第1信号(−a信号)が入力される第2入力端子とを有する第1乗算器と、
前記第1乗算器の出力が入力される第1入力端子と、自然対数の底eが入力される第2入力端子とを有するべき乗及び開平演算器と、
前記べき乗及び開平演算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有する第1除算器と、
前記べき乗及び開平演算器の出力が入力される第1入力端子と、前記第1除算器の出力が入力される第2入力端子とを有する第1マルチプレクサと、
前記第1マルチプレクサの出力が入力される第1入力端子と、1が入力される第2入力端子とを有する加算器と、
前記加算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有する第2除算器と、
前記入力信号が入力される第1入力端子と、26が入力される第2入力端子とを有する第1比較器と、
前記入力信号が入力される第1入力端子と、-26が入力される第2入力端子とを有する第2比較器と、
前記第2除算器の出力が入力される第1入力端子と、1が入力される第2入力端子と、前記第1比較器の出力が入力される制御端子を有する第2マルチプレクサと、
前記第2マルチプレクサの出力が入力される第1入力端子と、0が入力される第2入力端子と、前記第2比較器の出力が入力される制御端子を有する第3マルチプレクサと、
を具備する演算回路。
(4)第5実施形態では、前記(1)に記載の演算回路において、
前記べき乗及び開平演算器は、
入力信号の仮数の下位ビットが入力される第1入力端子と、第2信号(定数)が入力される第2入力端子とを有する第2乗算器と、
1が入力される第1入力端子と、第2入力端子とを有する第2マルチプレクサと、
前記第2マルチプレクサの出力が入力される第1入力端子と、自然対数の底eが入力される第2入力端子とを有する第3乗算器と、
1が入力される第1入力端子と、第2入力端子とを有する第3マルチプレクサと、
前記第3乗算器の出力が入力される第1入力端子と、前記第3マルチプレクサの出力が入力される第2入力端子とを有する第4乗算器と、
自然対数の底eが入力される第1入力端子と、第2入力端子とを有する第4マルチプレクサと、
前記第4マルチプレクサの出力が入力される開平演算器と、
前記第1乗算器の出力が入力される第1入力端子と、前記開平演算器の出力が入力される第2入力端子とを有する第5マルチプレクサと、
1が入力される第1入力端子と、第2入力端子とを有する第6マルチプレクサと、
前記第5マルチプレクサの出力が入力される第1入力端子と、前記第6マルチプレクサの出力が入力される第2入力端子とを有する第5乗算器と、
前記第4乗算器の出力が入力される第1入力端子と、前記第5乗算器の出力が入力される第2入力端子とを有する第6乗算器と、を具備し、
前記第3乗算器の出力は前記第2マルチプレクサの前記第2入力端子に入力され、前記第4乗算器の出力は前記第3マルチプレクサの前記第2入力端子に入力され、前記開平演算器の出力は前記第4マルチプレクサの前記第2入力端子に入力され、前記第5乗算器の出力は前記第6マルチプレクサの前記第2入力端子に入力される演算回路。
(5)第6実施形態では、前記(1)に記載の演算回路において、
前記べき乗及び開平演算器は、
前記入力信号が入力されるビット1カウント回路と、
1が入力される第1入力端子と、第2入力端子とを有する第2マルチプレクサと、
前記第2マルチプレクサの出力が入力される第1入力端子と、自然対数の底eが入力される第2入力端子とを有する第2乗算器と、
1が入力される第1入力端子と、第2入力端子とを有する第3マルチプレクサと、
前記第2乗算器の出力が入力される第1入力端子と、前記第3マルチプレクサの出力が入力される第2入力端子とを有する第3乗算器と、
自然対数の底eが入力される第1入力端子と、第2入力端子とを有する第4マルチプレクサと、
前記第4マルチプレクサの出力が入力される開平演算器と、
1が入力される第1入力端子と、第2入力端子とを有する第5マルチプレクサと、
前記開平演算器の出力が入力される第1入力端子と、前記第5マルチプレクサの出力が入力される第2入力端子とを有する第4乗算器と、
前記第4乗算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有する第5乗算器と、
前記第5乗算器の出力が入力される第1入力端子と、1が入力される第2入力端子とを有するシフタと、
前記第4乗算器の出力が入力される第1入力端子と、前記シフタの出力が入力される第2入力端子とを有する第6マルチプレクサと、
前記第3乗算器の出力が入力される第1入力端子と、前記第6マルチプレクサの出力が入力される第2入力端子とを有する第6乗算器と、を具備し、
前記第2乗算器の出力は前記第2マルチプレクサの前記第2入力端子に入力され、前記第3乗算器の出力は前記第3マルチプレクサの前記第2入力端子に入力され、前記開平演算器の出力は前記第4マルチプレクサの前記第2入力端子に入力され、前記第4乗算器の出力は前記第5マルチプレクサの前記第2入力端子に入力され、前記ビット1カウント回路の出力は前記第6マルチプレクサの制御端子に入力される演算回路。
本明細書では、実施形態の演算回路がニューラルネットワークにおいて用いられると説明したが、ニューラルネットワークに限るわけではなく、実施形態の演算回路はシグモイド関数を用いた様々な回路、装置、及びアプリケーション等に用いることが可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10…演算回路、11…乗算器、12…べき乗及び開平演算器、13…除算器、14…マルチプレクサ、15…加算器、16…除算器、17…減算器、18…マルチプレクサ、20…演算回路、21…繰り返し制御回路、22…マルチプレクサ、23…乗算器、24…ラッチ回路、25…マルチプレクサ、26…乗算器、27…ラッチ回路、28…マルチプレクサ、29…開平演算器、30…演算回路、31…ラッチ回路、32…マルチプレクサ、33…乗算器、34…ラッチ回路、35…乗算器、36…バレルシフタ、37…比較器、38…比較器、39…マルチプレクサ、40…演算回路、41…マルチプレクサ、50…演算回路、51…乗算器、52…マルチプレクサ、60…演算回路、61…ビット1カウント回路、62…マルチプレクサ、63…インバータ、64…乗算器、65…シフタ、66…マルチプレクサ。

Claims (9)

  1. シグモイド関数の演算を行う演算回路において、
    前記シグモイド関数における自然対数の底eを基数とする指数演算で指数が負の数である場合に、前記指数を正の数として計算を行い、第1計算結果を出力する第1回路と、
    1から前記第1回路による前記第1計算結果を減算し、減算値を出力する第2回路と、
    を具備する演算回路。
  2. 前記第1回路は、前記指数演算で前記指数が正の数である場合に、前記指数にて計算を行い、第2計算結果を出力し、
    前記演算回路は第3回路をさらに具備し、
    前記第3回路は、前記第2回路からの前記減算値と、前記第2計算結果とを受け取り、選択信号に基づいて、前記減算値と前記第2計算結果のいずれかを出力する請求項1に記載の演算回路。
  3. 前記指数が負の数であることを前記選択信号が示すとき、前記第3回路は前記減算値を出力し、前記指数が正の数であることを前記選択信号が示すとき、前記第3回路は前記第2計算結果を出力する請求項2に記載の演算回路。
  4. シグモイド関数の演算を行う演算回路において、前記シグモイド関数は2のべき乗演算を含み、
    入力信号に基づいて、2のべき乗演算の整数部における数値列の1をシフトする第1回路と、2のべき乗演算の小数部における数値列を算出する第2回路と、
    を具備する演算回路。
  5. 前記第1回路は、第1入力端子に1が入力され、第2入力端子に前記入力信号が入力されたシフタを含み、前記第2回路は、2の平方根を開平する演算器と、前記演算器の出力を乗算する乗算器とを含む請求項4に記載の演算回路。
  6. 前記演算回路は、前記シグモイド関数への入力信号が第1値以上である場合に、前記シグモイド関数の出力結果として1を出力する第4回路をさらに具備する請求項1乃至5のいずれかに記載の演算回路。
  7. 前記演算回路は、前記シグモイド関数への入力信号が第2値以下である場合に、前記シグモイド関数の出力結果として0を出力する第5回路をさらに具備する請求項1乃至6のいずれかに記載の演算回路。
  8. 前記第1回路はべき乗演算を実行するべき乗演算器を含み、前記べき乗演算の小数部の計算において、
    仮数の下位ビットの開平演算結果が第1数値列であることを用い、前記第1数値列と前記仮数の下位ビットとの乗算により、前記べき乗演算の一部を計算する第6回路を備える請求項1乃至3のいずれかに記載の演算回路。
  9. 前記第1回路はべき乗演算を実行するべき乗演算器を含み、前記べき乗演算の小数部の計算において、
    仮数のビットを反転して、前記べき乗演算の一部を計算する第7回路を備える請求項1乃至3、8のいずれかに記載の演算回路。
JP2019171260A 2019-09-20 2019-09-20 演算回路 Active JP7191797B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019171260A JP7191797B2 (ja) 2019-09-20 2019-09-20 演算回路
CN202010126709.1A CN112541582A (zh) 2019-09-20 2020-02-28 运算电路
US16/807,841 US11733970B2 (en) 2019-09-20 2020-03-03 Arithmetic operation circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019171260A JP7191797B2 (ja) 2019-09-20 2019-09-20 演算回路

Publications (2)

Publication Number Publication Date
JP2021047778A true JP2021047778A (ja) 2021-03-25
JP7191797B2 JP7191797B2 (ja) 2022-12-19

Family

ID=74876452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019171260A Active JP7191797B2 (ja) 2019-09-20 2019-09-20 演算回路

Country Status (3)

Country Link
US (1) US11733970B2 (ja)
JP (1) JP7191797B2 (ja)
CN (1) CN112541582A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03210630A (ja) * 1990-01-12 1991-09-13 Fujitsu Ltd 演算装置
JPH0443473A (ja) * 1990-06-08 1992-02-13 Nec Corp 神経細胞回路
US20190042924A1 (en) * 2017-07-14 2019-02-07 Intel Corporation Hyperbolic functions for machine learning acceleration
JP2019075003A (ja) * 2017-10-18 2019-05-16 国立大学法人横浜国立大学 近似計算装置、近似計算方法及びプログラム
JP2019101896A (ja) * 2017-12-06 2019-06-24 富士通株式会社 演算処理装置および演算処理装置の制御方法
US20190205734A1 (en) * 2016-09-07 2019-07-04 Robert Bosch Gmbh Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517596A (en) * 1991-05-17 1996-05-14 International Business Machines Corporation Learning machine synapse processor system apparatus
JPH05150786A (ja) 1991-10-31 1993-06-18 Yamaha Corp 非線形関数合成器および該非線形関数合成器を用いた楽音合成装置
JPH06203058A (ja) 1992-12-28 1994-07-22 Fujitsu Ltd シグモイド関数演算装置及びその演算方法
JPH06259585A (ja) 1993-03-10 1994-09-16 Toyota Central Res & Dev Lab Inc ニューラルネットワーク装置
JP3764269B2 (ja) 1998-03-20 2006-04-05 株式会社東芝 ディスク記憶装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03210630A (ja) * 1990-01-12 1991-09-13 Fujitsu Ltd 演算装置
JPH0443473A (ja) * 1990-06-08 1992-02-13 Nec Corp 神経細胞回路
US20190205734A1 (en) * 2016-09-07 2019-07-04 Robert Bosch Gmbh Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function
US20190042924A1 (en) * 2017-07-14 2019-02-07 Intel Corporation Hyperbolic functions for machine learning acceleration
JP2019075003A (ja) * 2017-10-18 2019-05-16 国立大学法人横浜国立大学 近似計算装置、近似計算方法及びプログラム
JP2019101896A (ja) * 2017-12-06 2019-06-24 富士通株式会社 演算処理装置および演算処理装置の制御方法

Also Published As

Publication number Publication date
US11733970B2 (en) 2023-08-22
CN112541582A (zh) 2021-03-23
JP7191797B2 (ja) 2022-12-19
US20210089274A1 (en) 2021-03-25

Similar Documents

Publication Publication Date Title
CN105468331B (zh) 独立的浮点转换单元
CA2530015C (en) Division and square root arithmetic unit
JP4274633B2 (ja) 累乗演算装置
JPH04283831A (ja) 除算器
CN108334304B (zh) 数字递归除法
KR920003494B1 (ko) 디지탈 신호처리 시스템에서의 실시간 2's 콤플리멘트코드 숫자의 승산방법 및 회로
JP3598096B2 (ja) ニュートンラフソン法を用いた演算方式
JP2722858B2 (ja) 開平演算装置
JP7191797B2 (ja) 演算回路
JP6919539B2 (ja) 演算処理装置および演算処理装置の制御方法
CN115658008A (zh) 一种资源复用型超越函数运算实现方法
CN111630509B (zh) 执行积和运算的运算电路
WO2021035230A2 (en) Methods and apparatus for quotient digit recoding in a high-performance arithmetic unit
JP2645422B2 (ja) 浮動小数点演算処理装置
Sharoun Residue number system (RNS)
JP2002344316A (ja) 非線形量子化装置および非線形量子化方法、並びに非線形量子化プログラム
KR100974190B1 (ko) 부동 소수점을 이용한 복소수 곱셈방법
JP7247418B2 (ja) 乗算のための計算ユニット、方法及びコンピュータプログラム
Doran Special cases of division
JP4643951B2 (ja) 剰余系の被変換数を2進数に変換する変換装置及び変換方法
JP2777265B2 (ja) 高基数開平演算装置
KR20240049041A (ko) 시프트 어레이 회로 및 이를 포함하는 연산 회로
JP2518532B2 (ja) 減算シフト型除算器
JP2023161967A (ja) 演算装置、演算方法及びプログラム
JP2006023974A (ja) 剰余演算処理装置及び剰余演算処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221207

R150 Certificate of patent or registration of utility model

Ref document number: 7191797

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150