JP7437593B2 - Computing device and computing method - Google Patents

Computing device and computing method Download PDF

Info

Publication number
JP7437593B2
JP7437593B2 JP2019211774A JP2019211774A JP7437593B2 JP 7437593 B2 JP7437593 B2 JP 7437593B2 JP 2019211774 A JP2019211774 A JP 2019211774A JP 2019211774 A JP2019211774 A JP 2019211774A JP 7437593 B2 JP7437593 B2 JP 7437593B2
Authority
JP
Japan
Prior art keywords
calculation
significant bit
digits
input values
bits
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
JP2019211774A
Other languages
Japanese (ja)
Other versions
JP2021082221A (en
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.)
Kumamoto University NUC
Original Assignee
Kumamoto University NUC
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 Kumamoto University NUC filed Critical Kumamoto University NUC
Priority to JP2019211774A priority Critical patent/JP7437593B2/en
Publication of JP2021082221A publication Critical patent/JP2021082221A/en
Application granted granted Critical
Publication of JP7437593B2 publication Critical patent/JP7437593B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明の実施形態は、演算装置、及び演算方法に関する。 Embodiments of the present invention relate to an arithmetic device and an arithmetic method.

今後10年で,データセンタで管理されるデータ量は50倍に増加する一方で、プロセッサの数はわずか10倍にしか増加しないと予想されている。また、最近の計算用途は、ビッグデータ解析、科学計算、メディア処理、信号処理、機械学習、データベース処理等、多種多様の処理を効率よく行うことが求められている。
しかし、パフォーマンス要求の高まりが計算機資源の増加を上回っており、このままでは十分なサービスを維持することが困難な状況である。これを解決する手段として、概略計算(AC; Approximate Computing)が注目されている。ACは、計算誤差を許容できるアプリケーションに対し、精度と速度やエネルギーのトレードオフを取ることが可能な計算方式である。すなわち、計算精度を落とすことで高速化や、低消費電力化する手法である。
Over the next 10 years, the amount of data managed in data centers is expected to increase by a factor of 50, while the number of processors is expected to increase by only a factor of 10. Furthermore, in recent computing applications, it is required to efficiently perform a wide variety of processing such as big data analysis, scientific calculation, media processing, signal processing, machine learning, and database processing.
However, the increase in performance demands is outpacing the increase in computer resources, making it difficult to maintain adequate services. Approximate computing (AC) is attracting attention as a means to solve this problem. AC is a calculation method that allows trade-offs between accuracy, speed, and energy for applications that can tolerate calculation errors. In other words, this is a method of increasing speed and reducing power consumption by reducing calculation accuracy.

一般的に画像認識のように多少のビットエラーを含んでいても正しい答えを導くことができるアプリケーションは多く存在する。現在の計算機システムはそのような場合でも1ビットも間違えずに計算することが可能だが、多少の計算誤差が含まれていても結果に差異がない場合には、精度と落としても早く計算を完了する方が価値は高い場合がある。実際にニューラルネットワークの計算において、ACを使用して5%程度の誤差を許容すれば、GPUに対して26倍高速化したという報告もある(例えば、非特許文献1参照)。
ACは大別してソフトウェア(アルゴリズム)・アプローチと、ハードウェア・アプローチとの2種類がある。ソフトウェアで行う方法は、従来から近似計算、近似アルゴリズムとして確立していたが。近年、さらに発展している。一方、ハードウェア・アプローチは、演算器の高速化、特に低レイテンシ化を目指した研究が盛んである。
In general, there are many applications such as image recognition that can derive the correct answer even if there are some bit errors. Current computer systems can perform calculations without making even a single bit error in such cases, but if there is no difference in the result even if some calculation errors are included, calculations may be performed quickly even if the accuracy is compromised. It may be more valuable to complete. In fact, there is a report that in neural network calculations, if an AC is used and an error of about 5% is allowed, the speed is 26 times faster than that of a GPU (for example, see Non-Patent Document 1).
AC can be roughly divided into two types: a software (algorithm) approach and a hardware approach. Software-based methods have long been established as approximate calculations and approximate algorithms. It has further developed in recent years. On the other hand, there is a lot of research into hardware approaches aimed at increasing the speed of arithmetic units, especially reducing latency.

BEAYNA GRIGORIAN and GLENN REINMAN, “Accelerating Divergent Applications on SIMD Architectures Using Neural Networks”, ACM Transactions on Architecture and Code Optimization, Vol.12, No.1, Article 2, Publication date: March 2015.BEAYNA GRIGORIAN and GLENN REINMAN, “Accelerating Divergent Applications on SIMD Architectures Using Neural Networks”, ACM T Transactions on Architecture and Code Optimization, Vol. 12, No. 1, Article 2, Publication date: March 2015.

本発明は、前述した問題を解決すべくなされたもので、概略計算結果を出力できる演算装置、及び演算方法を提供することを目的とする。 The present invention was made to solve the above-mentioned problems, and an object of the present invention is to provide an arithmetic device and an arithmetic method capable of outputting rough calculation results.

本発明の一実施形態は、複数の入力値および演算結果に要求される誤差情報を受け付ける受付部と、前記受付部が受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定する設定部と、前記設定部が設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定部が設定した前記桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行う演算部と、前記演算部による加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部とを備える演算装置である。
本発明の一実施形態は、前述の演算装置において、前記設定部は、演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けて記憶する記憶部から、前記受付部が受け付けた前記誤差情報に基づいて、複数の前記入力値の各々の最上位ビットからの桁数を取得する。
本発明の一実施形態は、前述の演算装置において、前記演算部は、前記最上位ビットの加算結果が、閾値以上である場合に、加算を中止する。
One embodiment of the present invention includes a reception unit that receives error information required for a plurality of input values and calculation results, and a reception unit that receives error information required for a plurality of input values and calculation results , and a reception unit that receives error information required for a plurality of input values and calculation results, and a reception unit that receives a plurality of input values to be used for addition based on the error information received by the reception unit. a setting section that sets the number of digits from the most significant bit of each; and a setting section that sets the number of digits from the most significant bit of each of the plurality of input values based on the number of digits from the most significant bit set by the setting section. Up to the set number of digits, the reception unit outputs each of the plurality of input values every K bits (K is an integer where K>0) from the most significant bit. This is an arithmetic device including an arithmetic unit that performs the addition at each time, and an output unit that outputs the addition result by the arithmetic unit every K bits starting from the most significant bit after L clocks (L is an integer where L>0).
In one embodiment of the present invention, in the arithmetic device described above, the setting unit stores error information required for the arithmetic result and the number of digits from the most significant bit of each of the plurality of input values in association with each other. The number of digits from the most significant bit of each of the plurality of input values is obtained from the error information received by the reception unit.
In one embodiment of the present invention, in the arithmetic device described above, the arithmetic unit stops the addition when the addition result of the most significant bit is equal to or greater than a threshold value.

本発明の一実施形態は、複数の入力値および演算結果に要求される誤差情報を受け付けるステップと、前記受け付けるステップで受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定するステップと、前記設定するステップで設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定するステップで設定した前記桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行うステップと、前記加算を行うステップによる加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力するステップとを有する演算装置が実行する演算方法である。 One embodiment of the present invention includes the step of receiving error information required for a plurality of input values and calculation results , and the step of receiving error information required for a plurality of input values and calculation results, and determining each of the plurality of input values used for addition based on the error information received in the receiving step. and setting the number of digits from the most significant bit of each of the plurality of input values based on the number of digits from the most significant bit set in the setting step . Up to the set number of digits, the reception unit outputs each of the plurality of input values every K bits (K is an integer where K>0) from the most significant bit. and a step of outputting the addition result from the addition step every K bits starting from the most significant bit after L (L is an integer where L>0) clocks later. This is a calculation method.

本発明の実施形態によれば、概略計算結果を出力できる演算装置、及び演算方法を提供できる。 According to the embodiments of the present invention, it is possible to provide a calculation device and a calculation method that can output rough calculation results.

実施形態に係る演算装置を含む演算システムの構成図である。1 is a configuration diagram of a calculation system including a calculation device according to an embodiment. 実施形態に係る演算装置が実行する演算方法を説明するための図である。FIG. 3 is a diagram for explaining a calculation method executed by the calculation device according to the embodiment. 実施形態に係る演算システムの動作の一例を示すシーケンスチャートである。It is a sequence chart which shows an example of operation of the calculation system concerning an embodiment. 従来の演算方法の一例を示す図である。FIG. 2 is a diagram illustrating an example of a conventional calculation method. 実施形態に係る演算装置の演算方法と、従来の演算方法とを比較結果の例1を示す図である。FIG. 2 is a diagram showing an example 1 of comparison results between the calculation method of the calculation device according to the embodiment and the conventional calculation method. 実施形態に係る演算装置の演算方法と、従来の演算方法との比較結果の例2を示す図である。It is a figure showing example 2 of the comparison result of the calculation method of the calculation device concerning an embodiment, and the conventional calculation method. 本実施形態に係る演算装置による演算結果の絶対誤差の一例を示す図である。FIG. 3 is a diagram illustrating an example of an absolute error of a calculation result by the calculation device according to the present embodiment. 実施形態に係る演算装置の演算部の一例を示す図である。FIG. 3 is a diagram illustrating an example of a calculation unit of the calculation device according to the embodiment. 実施形態の変形例に係る演算装置を含む演算システムの構成図である。FIG. 2 is a configuration diagram of a calculation system including a calculation device according to a modification of the embodiment. 実施形態の変形例に係る演算システムの動作の一例を示すシーケンスチャートである。It is a sequence chart which shows an example of operation of a calculation system concerning a modification of an embodiment.

次に、本発明の実施形態に係る演算装置、及び演算方法を、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
Next, a calculation device and a calculation method according to an embodiment of the present invention will be described with reference to the drawings. The embodiments described below are merely examples, and the embodiments to which the present invention is applied are not limited to the following embodiments.
In addition, in all the figures for explaining the embodiment, parts having the same functions are denoted by the same reference numerals, and repeated explanations will be omitted.
Furthermore, "based on XX" as used in the present application means "based on at least XX", and includes cases where it is based on another element in addition to XX. Furthermore, "based on XX" is not limited to the case where XX is used directly, but also includes the case where it is based on calculations and processing performed on XX. "XX" is an arbitrary element (for example, arbitrary information).

(実施形態)
[全体構成]
図1は、実施形態に係る演算装置を含む演算システムの構成図である。実施形態の演算システム1は、演算装置100と、一以上利用者Uにより使用される端末装置200とを備える。
演算装置100と、端末装置200とは、ネットワークNWを介して互いに通信可能である。ネットワークNWは、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、公衆回線、プロバイダ装置、専用回線、無線基地局などを含む。
(Embodiment)
[overall structure]
FIG. 1 is a configuration diagram of a calculation system including a calculation device according to an embodiment. The computing system 1 of the embodiment includes a computing device 100 and a terminal device 200 used by one or more users U.
The computing device 100 and the terminal device 200 can communicate with each other via the network NW. The network NW includes the Internet, a WAN (Wide Area Network), a LAN (Local Area Network), a public line, a provider device, a private line, a wireless base station, and the like.

ユーザーUが、端末装置200に対して、演算装置100と接続する操作を行うことによって、端末装置200は、ネットワークNWを介して、演算装置100に接続する。端末装置200は、演算装置100が提供する演算サービスウェブサイトへアクセスする。
ユーザーUは、演算サービスウェブサイトの表示にしたがって、端末装置200に対して、複数の入力値を入力する操作を行う。
端末装置200は、ユーザーUが入力した複数の入力値を取得し、取得した複数の入力値を含み、演算装置100を宛先とする演算要求を作成する。端末装置200は、作成した演算要求を、演算装置100へ送信する。
When the user U performs an operation on the terminal device 200 to connect to the computing device 100, the terminal device 200 connects to the computing device 100 via the network NW. The terminal device 200 accesses a calculation service website provided by the calculation device 100.
User U performs an operation to input a plurality of input values into terminal device 200 according to the display on the calculation service website.
The terminal device 200 acquires a plurality of input values input by the user U, and creates a calculation request that includes the acquired plurality of input values and is directed to the calculation device 100. The terminal device 200 transmits the created calculation request to the calculation device 100.

演算装置100は、端末装置200が送信した演算要求を受信する。演算装置100は、受信した演算要求に含まれる複数の入力値の各々を受け付ける。演算装置100は、受け付けた複数の入力値の各々の最上位ビット(MSB:Most significant Bit)から、一又は複数の桁数に該当する値を取得する。ここで、最上位ビットからの一又は複数の桁数は、演算結果に許容される誤差に基づいて、予め設定されている。
演算装置100は、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を、シリアル転送のビット数Kに基づいて、最上位ビットからKビット(Kは、K>0の整数)毎に行う。つまり、最上位ビットから、一又は複数の桁数より下位のビットは零として扱われる。演算装置100は、演算結果を、加算時の遅延クロック数Lに基づいて、L(Lは、L>0の整数)クロック後から、Kビット毎に出力する。例えば、演算装置100は、演算結果を、最上位ビットから、Kビット毎に出力する。演算装置100は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、端末装置200へ送信する。
端末装置200は、演算装置100が送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
以下、演算システム1に含まれる演算装置100と、端末装置200とについて順次説明する。
The computing device 100 receives the computing request transmitted by the terminal device 200. The arithmetic device 100 receives each of the plurality of input values included in the received arithmetic request. The arithmetic device 100 acquires a value corresponding to one or more digits from the most significant bit (MSB) of each of the plurality of received input values. Here, the number of digits starting from the most significant bit is set in advance based on an allowable error in the calculation result.
The arithmetic device 100 adds each of the plurality of input values from the most significant bit to the value corresponding to one or more digits among the acquired values corresponding to one or more digits, using serial transfer. Based on the number of bits K, the processing is performed every K bits (K is an integer where K>0) starting from the most significant bit. In other words, bits lower than one or more digits from the most significant bit are treated as zero. The arithmetic device 100 outputs the arithmetic result every K bits, based on the number L of delay clocks during addition, starting after L clocks (L is an integer where L>0). For example, the arithmetic device 100 outputs the arithmetic result every K bits starting from the most significant bit. The calculation device 100 creates a calculation response that includes the calculation result and is addressed to the terminal device 200, and transmits the created calculation response to the terminal device 200.
The terminal device 200 receives the calculation response transmitted by the calculation device 100, and acquires the calculation result included in the received calculation response. The terminal device 200 outputs the obtained calculation result.
Hereinafter, the arithmetic device 100 and the terminal device 200 included in the arithmetic system 1 will be sequentially explained.

[演算装置100]
演算システム1に含まれる演算装置100は、パーソナルコンピュータ、サーバー、又は産業用コンピュータ等の装置によって実現される。演算装置100は、例えば、通信部110と、受付部120と、演算部130と、出力部140と、記憶部150とを備える。
通信部110は、通信モジュールによって実現される。具体的には、通信部110は、有線通信を行うデバイスによって構成される。また、通信部110は、LTE、無線LAN等の無線通信技術で無線通信を行う無線デバイスによって構成されてもよい。通信部110は、ネットワークNWを介して、端末装置200との間で通信する。
具体的には、通信部110は、端末装置200が送信した演算要求を受信する。通信部110は、出力部140が出力した演算応答を取得し、取得した演算応答を、端末装置200へ送信する。
[Arithmetic device 100]
The arithmetic device 100 included in the arithmetic system 1 is realized by a device such as a personal computer, a server, or an industrial computer. The calculation device 100 includes, for example, a communication section 110, a reception section 120, a calculation section 130, an output section 140, and a storage section 150.
The communication unit 110 is realized by a communication module. Specifically, the communication unit 110 is configured by a device that performs wired communication. Further, the communication unit 110 may be configured by a wireless device that performs wireless communication using a wireless communication technology such as LTE or wireless LAN. The communication unit 110 communicates with the terminal device 200 via the network NW.
Specifically, the communication unit 110 receives the calculation request transmitted by the terminal device 200. The communication unit 110 acquires the calculation response output by the output unit 140 and transmits the acquired calculation response to the terminal device 200.

記憶部150は、HDD(Hard Disk Drive)やフラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)などにより実現される。記憶部150は、演算桁数情報152が記憶される。演算桁数情報152は、演算装置100が、演算に使用する桁数を示す情報であり、入力値の最上位ビットからの桁数に該当する値が記憶される。演算桁数情報152は、演算結果に許容される誤差に基づいて、予め設定される。演算結果に許容される誤差が小さくなるほど、演算結果に要求される精度が高くなるため、演算桁数情報152の値は大きくなり、演算結果に許容される誤差が大きくなるほど、演算結果に要求される精度が小さくなるため、演算桁数情報152の値は小さくなる。 The storage unit 150 is realized by a HDD (Hard Disk Drive), a flash memory, a RAM (Random Access Memory), a ROM (Read Only Memory), or the like. The storage unit 150 stores calculation digit number information 152. The calculation digit number information 152 is information indicating the number of digits used by the calculation device 100 in calculation, and stores a value corresponding to the number of digits from the most significant bit of the input value. The calculation digit number information 152 is set in advance based on the error allowed in the calculation result. The smaller the allowable error in the calculation result, the higher the precision required for the calculation result, so the value of the calculation digit number information 152 increases. Since the accuracy of calculation becomes smaller, the value of the calculation digit number information 152 becomes smaller.

受付部120、演算部130、および出力部140は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサが記憶部150に格納されたプログラム(ソフトウェア)を実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
The reception unit 120, the calculation unit 130, and the output unit 140 are realized, for example, by a hardware processor such as a CPU (Central Processing Unit) executing a program (software) stored in the storage unit 150. In addition, some or all of these functional units may be implemented using hardware (circuits) such as LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), and GPU (Graphics Processing Unit). (including circuitry), or may be realized by collaboration between software and hardware.
The program may be stored in advance in a storage device (a storage device with a non-transitory storage medium) such as an HDD (Hard Disk Drive) or flash memory, or may be stored in a removable storage device such as a DVD or CD-ROM. It is stored in a medium (non-transitory storage medium), and may be installed by loading the storage medium into a drive device.

受付部120は、通信部110が受信した演算要求に含まれる複数の入力値を受け付ける。受付部120が受け付けた複数の入力値は、演算部130へ出力される。ここで、受付部120は、受け付けた複数の入力値の各々の桁数が異なる場合には、桁合わせを行う。受付部120は、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130へ出力する。ここで、シリアル転送のビットKは、予め設定されている。
演算部130は、受付部120が受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130は、記憶部150に記憶されている演算桁数情報152を取得し、取得した演算桁数情報152に基づいて、取得した複数の入力値の各々の最上位ビットから、演算桁数情報152によって示される一又は複数の桁数に該当する値まで、最上位ビットからKビット毎に取得する。
演算部130は、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。演算部130は、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。演算部130は、最上位ビットから、一又は複数の桁数に該当する値より下位ビットは0として処理してもよい。
The reception unit 120 receives a plurality of input values included in the calculation request received by the communication unit 110. The plurality of input values received by the reception unit 120 are output to the calculation unit 130. Here, if the received input values have different numbers of digits, the reception unit 120 performs digit alignment. The reception unit 120 outputs each of the plurality of input values to the calculation unit 130 in units of K bits starting from the most significant bit based on bit K of the serial transfer. Here, bit K for serial transfer is set in advance.
The calculation unit 130 acquires each of the plurality of input values received by the reception unit 120 in units of K bits starting from the most significant bit. The calculation unit 130 acquires the calculation digit number information 152 stored in the storage unit 150, and calculates the calculation digit number from the most significant bit of each of the plurality of input values based on the acquired calculation digit number information 152. The value corresponding to one or more digits indicated by the information 152 is obtained every K bits from the most significant bit.
The calculation unit 130 adds each of the plurality of input values from the most significant bit of the acquired value corresponding to one or more digits to the value corresponding to one or more digits. The calculation unit 130 outputs the result of adding each of the plurality of input values from the most significant bit to the value corresponding to one or more digits to the output unit 140 every K bits from the most significant bit. . The calculation unit 130 may process the lower bits of the value corresponding to one or more digits starting from the most significant bit as 0.

出力部140は、演算部130による演算結果を、加算時の遅延クロック数Lに基づいて、L(Lは、L>0の整数)クロック後から、Kビット毎に出力する。ここで、加算時の遅延クロック数Lは、予め設定されている。また、出力部140は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、通信部110へ出力する。 The output unit 140 outputs the calculation result by the calculation unit 130 every K bits starting after L clocks (L is an integer where L>0) based on the number L of delay clocks at the time of addition. Here, the number of delay clocks L at the time of addition is set in advance. Further, the output unit 140 creates a calculation response that includes the calculation result and is addressed to the terminal device 200, and outputs the created calculation response to the communication unit 110.

図2は、実施形態に係る演算装置が実行する演算方法を説明するための図である。ここでは、一例として、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明する。
図2において、(a)は従来の演算方法を示し、(b)は本実施形態に係る演算装置100による演算方法を示す。また、図2においては、一例として、入力Aが「a7a6a5a4a3a2a1a0」であり、入力Bが「b7b6b5b4b3b2b1b0」である場合に、入力Aと入力Bとを加算する場合について説明する。ここで、「a7」、「a6」、「a5」、「a4」、「a3」、「a2」、「a1」、「a0」と、「b7」、「b6」、「b5」、「b4」、「b3」、「b2」、「b1」、「b0」との各々は、入力値を示しており、「a7」と「b7」とが最上位ビットであり、「a0」と「b0」とが最下位ビット(LSB:Least significant Bit)である。
FIG. 2 is a diagram for explaining a calculation method executed by the calculation device according to the embodiment. Here, as an example, a case will be described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1.
In FIG. 2, (a) shows a conventional calculation method, and (b) shows a calculation method by the calculation device 100 according to the present embodiment. Further, in FIG. 2, as an example, a case will be described in which input A and input B are added when input A is "a7a6a5a4a3a2a1a0" and input B is "b7b6b5b4b3b2b1b0". Here, "a7", "a6", "a5", "a4", "a3", "a2", "a1", "a0", "b7", "b6", "b5", "b4" ”, “b3”, “b2”, “b1”, and “b0” each indicate an input value, “a7” and “b7” are the most significant bits, and “a0” and “b0” are the most significant bits. ” is the least significant bit (LSB).

図2の(a)に示される従来の演算方法によれば、入力Aと入力Bとが最下位ビットである「a0」、「b0」から最上位ビットである「a7」、「b7」まで、順次加算される。入力Aの最下位ビットである「a0」と入力Bの最下位ビットである「b0」とが入力されてから1クロック後に、入力Aの最下位ビットである「a0」と入力Bの最下位ビットである「a0」との加算結果「c0」が出力される。演算結果は、入力Aの最上位ビットである「a7」と入力Bの最上位ビットである「b7」とが入力されてから2クロック後に出力される。つまり、従来の演算方法では、最上位ビットまで演算しないと、演算結果を確定できない。 According to the conventional calculation method shown in FIG. , are added sequentially. One clock after "a0", the least significant bit of input A, and "b0", the least significant bit of input B, are input, "a0", the least significant bit of input A, and "b0", the least significant bit of input B, are input. The addition result "c0" with the bit "a0" is output. The calculation result is output two clocks after "a7" which is the most significant bit of input A and "b7" which is the most significant bit of input B are input. In other words, in the conventional calculation method, the calculation result cannot be determined unless the most significant bit is calculated.

図2の(b)に示される本実施形態に係る演算装置100による演算方法によれば、入力Aと入力Bとが最上位ビットである「a7」と「b7」とから、順次加算される。入力Aの最上位ビットである「a7」と入力Bの最上位ビットである「b7」とが入力されてから1クロック後に、入力Aの最上位ビットである「a7」と入力Bの最上位ビットである「b7」との加算結果「c8」が出力される。つまり、演算結果の出力が開始されるタイミングは、従来の演算方法と同じである。
演算結果は、入力Aの最下位ビットである「a0」と入力Bの最下位ビットである「b0」とが入力されてから2クロック後に出力される。下位ビットが出力されることによって、下位ビットが出力される前と比較して、演算精度が上がっていく。つまり、本実施形態に係る演算装置100による演算方法では、最上位ビットから演算結果が出力されるため、最下位ビットまで演算することなく、演算結果の概略を得ることができる。
According to the calculation method performed by the calculation device 100 according to the present embodiment shown in FIG. . One clock after "a7" which is the most significant bit of input A and "b7" which is the most significant bit of input B are input, "a7" which is the most significant bit of input A and "b7" which is the most significant bit of input B are input. The addition result "c8" with the bit "b7" is output. In other words, the timing at which the output of the calculation results starts is the same as in the conventional calculation method.
The operation result is output two clocks after "a0" which is the least significant bit of input A and "b0" which is the least significant bit of input B are input. By outputting the lower bits, the calculation accuracy increases compared to before the lower bits are output. That is, in the calculation method by the calculation device 100 according to the present embodiment, the calculation result is output from the most significant bit, so it is possible to obtain an outline of the calculation result without calculating up to the least significant bit.

演算処理の一例として、10進数で表した146と、150とを加算する場合について説明する。
10進数で表した146、及び150は、それそれ、2進数で表した場合に、(10010010)、及び(10010110)である。10進数で表した146と、150とを加算する場合には、10進数で表した296(2進数で表した場合には(100101000))が正確な演算結果である。
従来の演算方法によれば、シリアル加算器を使用した場合には、最下位ビットから、演算処理が行われるので、(□□□□0010)と(□□□□0110)(□は、演算に使用されていないビット)との加算が行われ、演算結果として、(□□□□1000)が得られる。これは、10進数で表した場合には8であり、正確な演算結果から、かけ離れた値になる。
さらに、4ビットの演算が行われた場合には、(10010010)のうち、最上位ビットから4ビットと(10010110)のうち、最上位ビットから4ビットとの加算が行われ、演算結果として、(100101000)が得られる。これは、10進数で表した場合には296であり、正確な演算結果となる。つまり、従来の演算方法では、最上位ビットまで計算することで、正確な演算結果を得ることができる。
As an example of arithmetic processing, a case will be described in which 146 and 150 expressed in decimal numbers are added.
146 and 150 expressed as decimal numbers are (10010010) 2 and (10010110) 2 when expressed as binary numbers, respectively. When adding 146 expressed as a decimal number and 150, the correct calculation result is 296 expressed as a decimal number ((100101000) 2 when expressed as a binary number).
According to the conventional arithmetic method, when a serial adder is used, arithmetic processing is performed starting from the least significant bit, so (□□□□0010) 2 and (□□□□0110) 2 (□ is , bits not used in the operation), and (□□□□1000) 2 is obtained as the result of the operation. This is 8 when expressed in decimal notation, which is a value far from an accurate calculation result.
Furthermore, when a 4-bit operation is performed, the 4 most significant bits of (10010010) 2 are added to the 4 most significant bits of (10010110) 2 , and the operation result is , (100101000) 2 is obtained. This is 296 when expressed in decimal notation, which is an accurate calculation result. In other words, in the conventional calculation method, accurate calculation results can be obtained by calculating up to the most significant bit.

実施形態に係る演算装置の演算方法について、一例として、演算桁数情報152に4が設定されることによって、最上位ビットから、4ビットに該当する値が取得される場合について説明する。ここでは、一例として、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明する。この場合、最上位ビットから、1ビット毎に演算処理が行われるので、(1001□□□□)と(1001□□□□)との加算が行われ、演算結果として、(10010□□□□)が得られる。これは、10進数で表した場合には288であり、従来の演算方法よりも、正確な演算結果に近い値となる。
さらに、4ビットの演算が行われた場合には、(10010010)のうち、最下位ビットから4ビットと(10010110)のうち、最下位ビットから4ビットとの加算が行われ、演算結果として、(100101100)が得られる。これは、10進数で表した場合には300であり、正確な演算結果に対して誤差を含んだ結果となる。
Regarding the calculation method of the calculation device according to the embodiment, a case where 4 is set in the calculation digit number information 152 and a value corresponding to 4 bits is acquired from the most significant bit will be described as an example. Here, as an example, a case will be described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1. In this case, since the calculation process is performed bit by bit starting from the most significant bit, (1001□□□□) 2 and (1001□□□□) 2 are added, and the calculation result is (10010□ □□□) 2 is obtained. This is 288 when expressed in decimal notation, which is a value closer to an accurate calculation result than the conventional calculation method.
Furthermore, when a 4-bit operation is performed, the 4 bits from the least significant bit of (10010010) 2 are added to the 4 bits from the least significant bit of (10010110) 2 , and the operation result is , (100101100) 2 is obtained. This is 300 when expressed as a decimal number, and the result contains an error compared to an accurate calculation result.

以上から、従来の演算方法として、シリアル加算器を使用した場合には、下位ビットから演算を行うので、演算の途中では、正確な演算結果に対して小さな値が得られる。本実施形態に係る演算装置の演算方法を使用した場合には、上位ビットから演算を行うので、演算の途中でも、正確な演算結果に対して、従来の演算方法と比較して、近い値を得ることができる。図1に戻り、説明を続ける。 From the above, when a serial adder is used as a conventional calculation method, since the calculation is performed from the lower bits, a small value can be obtained in the middle of the calculation compared to an accurate calculation result. When using the arithmetic method of the arithmetic device according to this embodiment, since the arithmetic operation is performed from the upper bits, even in the middle of the arithmetic operation, the accurate arithmetic result can be calculated with a value that is closer to that of the conventional arithmetic method. Obtainable. Returning to FIG. 1, the explanation will be continued.

[端末装置]
端末装置200は、例えば、スマートフォンやタブレット端末、パーソナルコンピュータなどである。端末装置200では、演算システムを利用するためのアプリケーションプログラム、或いはブラウザなどが起動し、前述したサービスをサポートする。端末装置200の一例はスマートフォンであり、アプリケーションプログラム(演算処理アプリ)が起動していることを前提とする。
演算処理アプリは、利用者Uの操作に応じて演算装置100と通信し、演算装置100が提供する演算サービスウェブサイトへアクセスする。端末装置200は、演算装置100へ演算要求を送信し、演算装置100から受信した演算応答に基づく処理を行う。
[Terminal device]
The terminal device 200 is, for example, a smartphone, a tablet terminal, a personal computer, or the like. On the terminal device 200, an application program, a browser, or the like for using the computing system is started, and supports the above-mentioned services. An example of the terminal device 200 is a smartphone, and it is assumed that an application program (arithmetic processing application) is running.
The arithmetic processing application communicates with the arithmetic device 100 according to the operation of the user U, and accesses the arithmetic service website provided by the arithmetic device 100. The terminal device 200 transmits a calculation request to the calculation device 100 and performs processing based on the calculation response received from the calculation device 100.

(演算システムの動作)
図3は、実施形態に係る演算システムの動作の一例を示すシーケンスチャートである。
図3に示される例では、ユーザーUが、端末装置200を操作することによって、端末装置200は、演算装置100と接続し、演算装置100が提供している演算サービスウェブサイトにアクセスしていることを前提とする。
(ステップS1)
ユーザーUが、端末装置200に対して、複数の入力値を入力する操作を行うことによって、端末装置200は、入力された複数の入力値を含み、演算装置100を宛先とする演算要求を作成する。
(ステップS2)
端末装置200は、作成した演算要求を、演算装置100へ送信する。
(ステップS3)
演算装置100において、通信部110は、端末装置200が送信した演算要求を受信する。
(ステップS4)
演算装置100において、受付部120は、通信部110が受信した演算要求を取得し、取得した演算要求に含まれる複数の入力値を受け付ける。受付部120は、必要に応じて、複数の入力値の各々の桁合わせを行う。受付部120は、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130へ出力する。
(Operation of calculation system)
FIG. 3 is a sequence chart showing an example of the operation of the calculation system according to the embodiment.
In the example shown in FIG. 3, when the user U operates the terminal device 200, the terminal device 200 connects to the computing device 100 and accesses the computing service website provided by the computing device 100. The premise is that.
(Step S1)
When the user U performs an operation to input a plurality of input values to the terminal device 200, the terminal device 200 creates a calculation request that includes the input plurality of input values and is directed to the calculation device 100. do.
(Step S2)
The terminal device 200 transmits the created calculation request to the calculation device 100.
(Step S3)
In the computing device 100, the communication unit 110 receives the computing request transmitted by the terminal device 200.
(Step S4)
In the calculation device 100, the reception unit 120 acquires the calculation request received by the communication unit 110, and receives a plurality of input values included in the acquired calculation request. The reception unit 120 adjusts the digits of each of the plurality of input values as necessary. The reception unit 120 outputs each of the plurality of input values to the calculation unit 130 in units of K bits starting from the most significant bit based on the bit K of the serial transfer.

(ステップS5)
演算装置100において、演算部130は、受付部120が受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130は、記憶部150の演算桁数情報152を取得する。演算部130は、取得した演算桁数情報152に基づいて、取得した複数の入力値の各々の最上位ビットから、一又は複数の桁数に該当する値まで、最上位ビットからKビット毎に取得する。
(ステップS6)
演算装置100において、演算部130は、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。演算部130は、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。出力部140は、演算部130による演算結果を、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。
(ステップS7)
演算装置100において、出力部140は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、通信部110へ出力する。
(ステップS8)
演算装置100において、通信部110は、出力部140が出力した演算応答を取得し、取得した演算結果を、端末装置200へ送信する。
その後、端末装置200は、演算装置100が送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
(Step S5)
In the arithmetic device 100, the arithmetic unit 130 acquires each of the plurality of input values received by the reception unit 120, every K bits, starting from the most significant bit. The calculation unit 130 acquires the calculation digit number information 152 from the storage unit 150. Based on the obtained calculation digit number information 152, the calculation unit 130 calculates the data every K bits from the most significant bit of each of the plurality of obtained input values to a value corresponding to one or more digits. get.
(Step S6)
In the arithmetic device 100, the arithmetic unit 130 adds each of the plurality of input values from the most significant bit of the obtained value corresponding to the one or more digits to the value corresponding to the one or more digits. I do. The calculation unit 130 outputs the result of adding each of the plurality of input values from the most significant bit to the value corresponding to one or more digits to the output unit 140 every K bits from the most significant bit. . The output unit 140 outputs the calculation result by the calculation unit 130 from the most significant bit every K bits starting after L clocks based on the number L of delay clocks during addition.
(Step S7)
In the calculation device 100 , the output unit 140 creates a calculation response that includes the calculation result and is addressed to the terminal device 200 , and outputs the created calculation response to the communication unit 110 .
(Step S8)
In the calculation device 100 , the communication unit 110 acquires the calculation response output by the output unit 140 and transmits the acquired calculation result to the terminal device 200 .
Thereafter, the terminal device 200 receives the calculation response transmitted by the calculation device 100, and acquires the calculation result included in the received calculation response. The terminal device 200 outputs the obtained calculation result.

実施形態に係る演算装置の演算方法と、従来の演算方法との比較を行った結果について説明する。
図4は、従来の演算方法の一例を示す図である。図4(a)と図4(b)とはパラレルの概略加算器の一例を示し、図4(c)はシリアル加算器の一例を示す。
図4(a)は、ESA(Equal Segmentation Adder)を示す。
図4(a)に示される例では、ESAは、bn-1からbn-kとan-1からan-kとが入力されることによってSn-1からSn-kを出力するk-bit Adderと、bn-k-1からbn-2kとan-kからan-2kとが入力されることによってSn-k-1からSn-2kを出力するk-bit Adderと、・・・、bk-1からbとak-1からaとが入力されることによってSk-1からSを出力するk-bit Adderとを備える。ESAは、クリティカルパスになるキャリーの伝搬を切って、セグメント化することで正確性を犠牲にしても高速化を実現する加算器である。
The results of a comparison between the calculation method of the calculation device according to the embodiment and the conventional calculation method will be described.
FIG. 4 is a diagram showing an example of a conventional calculation method. 4(a) and 4(b) show an example of a parallel general adder, and FIG. 4(c) shows an example of a serial adder.
FIG. 4(a) shows an ESA (Equal Segmentation Adder).
In the example shown in FIG. 4(a), the ESA changes S n-1 to S n-k by inputting b n-1 to b n-k and a n -1 to a n -k. S n-2k is output from S n - k-1 by inputting the k-bit Adder to be output, b n-2k from b n-k-1 and a n-2k from a n- k. It includes a k-bit Adder, and a k-bit Adder that outputs S 0 from S k-1 by inputting b 0 from b k-1 and a 0 from a k-1 . ESA is an adder that achieves high speed even at the expense of accuracy by cutting off the propagation of carries that become critical paths and segmenting them.

図4(b)は、LOA(Lower-part-OR Adder)を示す。
図4(b)に示される例では、LOAは、bn-1からbとan-1からaとが入力されることによってSn-1からSを出力する(n-k)-bit Adderと、bk-1からbとak-1からaとが入力されることによってSk-1からSを出力するk-bit ORとを備える。LOAは、加算結果の下位ビットの方は全体の誤差に対して影響度が低いことを利用して、下位ビットの方を加算の代わりにORゲートにする。
このようにすることで、ESAと同じ効果を得る。ESAとLOAとは、どちらも精度と演算速度とのトレードオフを諮る方式である。ESAと、LOAとの両方に対して、実施形態に係る演算装置の演算方法は、シリアル演算で、概略計算を行う点で異なる。
FIG. 4(b) shows LOA (Lower-part-OR Adder).
In the example shown in FIG. 4(b), the LOA outputs S k from S n-1 by inputting b k from b n-1 and a k from a n -1 (n- k )-bit Adder, and a k-bit OR that outputs S 0 from S k -1 by inputting b 0 from b k -1 and a 0 from a k-1. LOA utilizes the fact that the lower bits of the addition result have a lower influence on the overall error, and uses an OR gate instead of addition for the lower bits.
By doing so, the same effect as ESA can be obtained. Both ESA and LOA are methods that consider the trade-off between accuracy and calculation speed. The calculation method of the calculation device according to the embodiment differs from both ESA and LOA in that it performs rough calculations using serial calculations.

図4(c)に示すシリアル加算器は、前述したように、下位ビットから入力し、下位ビットから出力する。
図4(c)に示される例では、シリアル加算器は、a(i=0...n)が入力されるフリップフロップ(FF:flip-flop)と、bが入力されるフリップフロップと、aが入力されるフリップフロップの出力と、bが入力されるフリップフロップの出力とが入力されるFull Adderとを備える。さらに、シリアル加算器は、Full Adderの出力が入力される2個のフリップフロップを備える。2個のフリップフロップの各々の出力うち、一方の出力は、Siとされ、もう一方の出力は、Full Adderへ入力される。
図4(c)に示されるシリアル加算器による演算過程では、上位ビットがわからない。このため、図4(c)に示されるシリアル加算器では、全てのビットが出力されるまで、最終的な加算結果がわからない。これに対して、実施形態に係る演算装置は、上位ビットから演算を行い、最初のビットを出力することによって、演算結果の概略値を出力できる。さらに、誤差を含むが、出力されるビット数が増加するにしたがって、演算結果が、正確な演算結果に近づいていく。
As described above, the serial adder shown in FIG. 4C receives input from the lower bits and outputs from the lower bits.
In the example shown in FIG. 4(c), the serial adder includes a flip-flop (FF: flip-flop) to which a i (i=0...n) is input, and a flip-flop to which b i is input. and a Full Adder to which the output of the flip-flop to which a i is input and the output of the flip-flop to which b i is input are input. Further, the serial adder includes two flip-flops to which the output of the Full Adder is input. Among the outputs of each of the two flip-flops, one output is Si, and the other output is input to the Full Adder.
In the calculation process by the serial adder shown in FIG. 4(c), the upper bits are not known. Therefore, in the serial adder shown in FIG. 4(c), the final addition result cannot be known until all bits are output. In contrast, the arithmetic device according to the embodiment can output an approximate value of the arithmetic result by performing the arithmetic operation from the upper bits and outputting the first bit. Furthermore, as the number of output bits increases, the calculation result approaches the correct calculation result, although it includes an error.

前述したパラレルの概略加算器、シリアル加算器、及び実施形態の演算方法について、演算時間の比較を行った。一例として、式(1)を求めるために、aからa(Nは、N>0の整数)までの総和を導出するアプリケーションを使用して、演算時間の比較を行った。 Comparisons were made regarding the computation time of the parallel general adder, serial adder, and the computation method of the embodiment described above. As an example, in order to obtain Equation (1), calculation times were compared using an application that derives the sum from a 1 to a N (N is an integer where N>0).

Figure 0007437593000001
Figure 0007437593000001

図5は、実施形態に係る演算装置の演算方法と、従来の演算方法とを比較結果の例1を示す図である。図5は、演算時間の比較に使用した加算器の構成の一例を示す。図5には、一例として、aからa15の総和を導出する場合について示される。図5に示すように、入力aから入力a15の16個の総和が、ツリー状の構成した16個の加算器を使用して、導出される。
図6は、実施形態に係る演算装置の演算方法と、従来の演算方法との比較結果の例2を示す図である。
図6では、一般化して、入力値のビット数をMとし、入力値の数をNとして、総和を導出したときの演算時間を算出した。図6では、一例として、Mを、8、16、32、64とし、Nを、16、32、64、128とした場合について示す。また、演算時間は、クロック数で表した。
図6によれは、シリアル加算器を使用した場合には、M+2logNクロックで演算が完了する。パラレル加算器を使用した場合には、仮に、格段の計算は1クロックで計算できるとした場合に、M+logNクロックで演算が完了する。これらに対して、実施形態に係る演算装置の演算方法によれば、演算結果の最初のビットが出力されるまで、最短で、logNクロックである。また、実施形態に係る演算装置の演算方法によれば、M+2logNクロックで演算が完了する。
以上から、本実施形態に係る演算装置の演算方法では、前述した従来の演算方法と比較して、少ないクロック数で概算計算を実行できる。
FIG. 5 is a diagram showing an example 1 of comparison results between the calculation method of the calculation device according to the embodiment and the conventional calculation method. FIG. 5 shows an example of the configuration of an adder used for comparison of calculation times. FIG. 5 shows, as an example, the case where the sum of a 15 is derived from a 0 . As shown in FIG. 5, 16 sums of inputs a 0 to a 15 are derived using 16 adders arranged in a tree shape.
FIG. 6 is a diagram showing example 2 of comparison results between the calculation method of the calculation device according to the embodiment and the conventional calculation method.
In FIG. 6, in general, the number of bits of the input value is set to M, the number of input values is set to N, and the calculation time when deriving the sum is calculated. In FIG. 6, as an example, M is set to 8, 16, 32, and 64, and N is set to 16, 32, 64, and 128. Furthermore, the calculation time was expressed in terms of the number of clocks.
According to FIG. 6, when a serial adder is used, the calculation is completed in M+2log 2 N clocks. When a parallel adder is used, assuming that a significant calculation can be performed in one clock, the calculation is completed in M+log 2 N clocks. On the other hand, according to the calculation method of the calculation device according to the embodiment, it takes at least log 2 N clocks until the first bit of the calculation result is output. Further, according to the calculation method of the calculation device according to the embodiment, the calculation is completed in M+2log 2 N clocks.
As described above, the calculation method of the calculation device according to the present embodiment allows approximate calculation to be performed with a smaller number of clocks than the conventional calculation method described above.

次に、本実施形態に係る演算装置が出力する演算結果の絶対誤差について検討を行った。
図7は、本実施形態に係る演算装置による演算結果の絶対誤差の一例を示す図である。図7において、横軸は絶対誤差値であり、縦軸は度数である。図7に示される例では、入力値の数を2個とし、2個の入力値の各々を、8ビットとした。2進数で表される8ビットの入力値は、0から255までの数を表現できるため、2個の入力値の加算結果は、0から510の範囲に含まれる。図7は、絶対誤差値が0から510の各々について、いくつ出現したかを示す数である度数をグラフ化した。
図7によれば、絶対誤差値が0の場合は度数が1800個程度であり、絶対誤差値が大きくなるにしたがって、度数が小さくなる。絶対誤差値が128より大きくなった場合は、度数が0となる。本実施形態に係る演算装置による演算方法によれば、絶対誤差値は、128以下に分布していることが分かる。このため、入力値の数を2個とし、2個の入力値の各々を、8ビットとし、絶対誤差値が128以下であることを許容できる場合には、本実施形態に係る演算装置による演算方法を使用しても問題ないことが分かる。
Next, we examined the absolute error of the calculation results output by the calculation device according to this embodiment.
FIG. 7 is a diagram showing an example of the absolute error of the calculation result by the calculation device according to the present embodiment. In FIG. 7, the horizontal axis is the absolute error value, and the vertical axis is the frequency. In the example shown in FIG. 7, the number of input values is two, and each of the two input values is 8 bits. Since an 8-bit input value expressed as a binary number can represent a number from 0 to 255, the result of addition of two input values is included in the range from 0 to 510. FIG. 7 is a graph of the frequency, which is a number indicating how many absolute error values appear for each of the absolute error values from 0 to 510.
According to FIG. 7, when the absolute error value is 0, the frequency is about 1800, and as the absolute error value increases, the frequency decreases. If the absolute error value becomes greater than 128, the frequency becomes 0. According to the calculation method by the calculation device according to the present embodiment, it can be seen that the absolute error values are distributed within 128. Therefore, when the number of input values is two, each of the two input values is 8 bits, and the absolute error value is allowed to be 128 or less, the calculation by the arithmetic device according to the present embodiment is It turns out that there is no problem using this method.

前述した実施形態では、ハードウェアプロセッサが記憶部150に格納されたプログラム(ソフトウェア)を実行することにより、演算部130が、演算結果を導出する場合について説明したが、この例に限られない。例えば、演算部130をハードウェアで構成してもよい。
図8は、実施形態に係る演算装置の演算部の一例を示す図である。図8は、前述した演算部130を、ハードウェアによって構成した場合の一例を示す。
演算部130は、フリップフロップ11と、フリップフロップ12と、ORゲート13と、XORゲート14と、ANDゲート15と、マルチプレクサ16と、フリップフロップ17と、NOTゲート18と、フリップフロップ19とを含んで構成される。
In the embodiment described above, a case has been described in which the calculation unit 130 derives the calculation result by the hardware processor executing the program (software) stored in the storage unit 150, but the present invention is not limited to this example. For example, the calculation unit 130 may be configured with hardware.
FIG. 8 is a diagram illustrating an example of a calculation unit of the calculation device according to the embodiment. FIG. 8 shows an example of the above-described calculation unit 130 configured by hardware.
The calculation unit 130 includes a flip-flop 11, a flip-flop 12, an OR gate 13, an XOR gate 14, an AND gate 15, a multiplexer 16, a flip-flop 17, a NOT gate 18, and a flip-flop 19. Consists of.

入力a(i=n・・・0)は、最上位ビットから、Kビット毎に、フリップフロップ11へ入力される。入力bは、最上位ビットから、Kビット毎に、フリップフロップ12へ入力される。
フリップフロップ11の出力は分岐され、一方はORゲート13へ入力され、他方はXORゲート14へ出力される。
フリップフロップ12の出力は分岐され、一方はORゲート13へ入力され、他方はXORゲート14へ出力される。
ORゲート13は、フリップフロップ11の出力と、フリップフロップ12の出力との論理和を導出し、論理和の導出結果を、ANDゲート15へ出力する。
XORゲート14は、フリップフロップ11の出力と、フリップフロップ12の出力との排他的論理和を導出し、排他的論理和の導出結果を、マルチプレクサ16へ出力する。
The input a i (i=n...0) is input to the flip-flop 11 every K bits starting from the most significant bit. The input b i is input to the flip-flop 12 every K bits starting from the most significant bit.
The output of the flip-flop 11 is branched, one being input to the OR gate 13 and the other being output to the XOR gate 14.
The output of the flip-flop 12 is branched, one being input to an OR gate 13 and the other being output to an XOR gate 14.
The OR gate 13 derives the logical sum of the output of the flip-flop 11 and the output of the flip-flop 12, and outputs the logical sum result to the AND gate 15.
The XOR gate 14 derives the exclusive OR of the output of the flip-flop 11 and the output of the flip-flop 12, and outputs the result of the exclusive OR to the multiplexer 16.

マルチプレクサ16は、選択制御入力に基づいて、XORゲート14が出力した排他的論理和の導出結果と、「1」とのうちのいずれかを、フリップフロップ17へ出力する。フリップフロップ17の出力は分岐され、一方はマルチプレクサ16へ、選択制御入力として入力され、他方は、NOTゲート18へ出力される。
NOTゲート18は、フリップフロップ12の出力の論理否定を導出し、論理否定の導出結果を、ANDゲート15へ出力する。
ANDゲート15は、ORゲート13の出力と、NOTゲート18の出力との論理積を導出し、論理積の導出結果を、フリップフロップ19へ出力する。
フリップフロップ19は、演算結果Siを、Lクロック後から、Kビット毎に出力する。
The multiplexer 16 outputs either the exclusive OR derivation result outputted by the XOR gate 14 or "1" to the flip-flop 17 based on the selection control input. The output of flip-flop 17 is branched, one input to multiplexer 16 as a selection control input, and the other output to NOT gate 18.
The NOT gate 18 derives the logical negation of the output of the flip-flop 12 and outputs the logical negation result to the AND gate 15.
The AND gate 15 derives the logical product of the output of the OR gate 13 and the output of the NOT gate 18 , and outputs the result of the logical product to the flip-flop 19 .
The flip-flop 19 outputs the calculation result Si every K bits starting after L clocks.

前述した実施形態では、端末装置200に演算要求を送信させることによって、演算装置100に演算を実行させる場合について説明したが、この例に限られない。例えば、複数の入力値を、演算装置100に直接入力してもよい。この場合、演算装置100は、入力された複数の入力値の各々を受け付け、受け付けた複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、一又は複数の桁数に該当する値まで取得する。演算装置100は、取得した複数の入力値の各々の一又は複数の桁数に該当する値のうち、最上位ビットからKビット毎に、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。演算装置100は、例えば、演算結果を、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。演算装置100は、演算結果を、表示装置(図示なし)に表示してもよい。 In the embodiment described above, a case has been described in which the arithmetic device 100 is caused to execute a computation by transmitting a computation request to the terminal device 200, but the present invention is not limited to this example. For example, a plurality of input values may be directly input to the arithmetic device 100. In this case, the arithmetic device 100 receives each of the plurality of input values, and transfers each of the plurality of input values from the most significant bit to one or every K bits based on the bit K of the serial transfer. Get values that correspond to multiple digits. The arithmetic device 100 calculates a plurality of values from the most significant bit to a value corresponding to one or more digits for every K bits among the values corresponding to one or more digits of each of the plurality of acquired input values. Add each input value. For example, the arithmetic device 100 outputs the arithmetic result every K bits starting from the most significant bit starting after L clocks based on the number L of delay clocks during addition. The calculation device 100 may display the calculation results on a display device (not shown).

前述した実施形態では、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明したが、この例に限られない。演算部130は、シリアル転送のビットKに基づいて、最上位ビットからKビット(Kは、演算桁数情報152の値≧K>0の整数)毎に加算を行うようにしてもよい。この場合、出力部は、加算時の遅延クロック数Lに基づいて、L(Lは、L>複数の入力値の数)クロック後から、Kビット毎に最上位ビットから加算された結果を出力する。
このように構成することによって、桁上げなどを反映できるため、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合よりも、正確な演算結果に近い値を得ることができる。
前述した実施形態では、シリアル転送のビットKと、加算時の遅延クロック数Lとが、演算装置100に設定されている場合について説明したが、この例に限られない。例えば、ユーザーUが、端末装置200に対して、シリアル転送のビットKと、加算時の遅延クロック数Lとを入力する操作を行うことによって、端末装置200は、入力されたシリアル転送のビットKを示す情報と、加算時の遅延クロック数Lを示す情報とを含み、演算装置100を宛先とする演算要求を作成するようにしてもよい。
前述した実施形態では、演算装置100において、演算部130が、シリアル転送のビットKに基づいて、取得した複数の入力値の各々を、一又は複数の桁数に該当する値のうち、最上位ビットから、Kビット毎に、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。そして、出力部140が、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に出力する場合について説明したが、この例に限られない。例えば、演算部130は、最上位ビットから、Kビット毎の加算結果が、閾値以上である場合に、演算を中止してもよい。仮に、演算結果が、閾値以上であるか否かを判定する場合に、演算結果が閾値以上であることが判明した後に、演算を継続しても、その演算は不要であるためである。このように構成することによって、不要な演算を削減できる。
In the embodiment described above, a case has been described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1, but the present invention is not limited to this example. The calculation unit 130 may perform addition every K bits (K is an integer satisfying the value of the calculation digit number information 152≧K>0) from the most significant bit based on the bit K of the serial transfer. In this case, the output unit outputs the result of addition for every K bits starting from the most significant bit after L clocks (L is L>number of multiple input values) based on the number of delay clocks L during addition. do.
With this configuration, carry etc. can be reflected, so it is possible to obtain a value closer to the accurate calculation result than when the serial transfer bit K is 1 and the number of delay clocks L during addition is 1. can.
In the embodiment described above, a case has been described in which the serial transfer bit K and the number of delay clocks L during addition are set in the arithmetic device 100, but the present invention is not limited to this example. For example, when user U performs an operation to input serial transfer bit K and delay clock number L during addition to terminal device 200, terminal device 200 inputs serial transfer bit K , and information indicating the number of delay clocks L at the time of addition, and a computation request destined for the computation device 100 may be created.
In the embodiment described above, in the arithmetic device 100, the arithmetic unit 130 converts each of the plurality of acquired input values into the most significant value among the values corresponding to one or more digits based on the bit K of the serial transfer. Each of the plurality of input values is added up to a value corresponding to one or more digits for every K bits. Although a case has been described in which the output unit 140 outputs every K bits starting after L clocks based on the number L of delay clocks during addition, the present invention is not limited to this example. For example, the calculation unit 130 may stop the calculation when the addition result for every K bits starting from the most significant bit is equal to or greater than a threshold value. This is because, when determining whether or not the calculation result is equal to or greater than the threshold value, even if the calculation is continued after the calculation result is found to be equal to or greater than the threshold value, the calculation is unnecessary. With this configuration, unnecessary calculations can be reduced.

実施形態に係る演算装置によれば、演算装置100は、複数の入力値を受け付ける受付部120と、演算結果に許容される誤差に基づいて設定されている最上位ビットからの桁数に基づいて、複数の入力値の各々の最上位ビットから桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の入力値の各々の加算を、前記最上位ビットからKビット毎に行う演算部130と、演算部130による加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部140とを備える。
このように構成することによって、演算装置100は、複数のビットシリアルデータなどの入力値を、上位ビットからKビット毎に受け取り、入力値の全ビットを受け取る前に、Kビット毎に加算し、加算によって得られる演算結果を、Lクロック後から、Kビット毎に出力できるため、概略計算結果を出力できる。このとき,演算結果には誤差が含まれるが、本実施形態では,その誤差の範囲が確定できるため、許容誤差範囲であれば、短いレイテンシで結果を得ることができる。
また、桁上げなどを反映できるため、最上位ビットから1ビット毎に加算を行う場合よりも、正確な演算結果に近い値を得ることができる。
さらに、演算部130は、最上位ビットの加算結果が、閾値以上である場合に、加算を中止する。このように構成することによって、不要な演算を削減できる。
According to the arithmetic device according to the embodiment, the arithmetic device 100 includes the reception unit 120 that receives a plurality of input values, and the number of digits from the most significant bit that is set based on the allowable error in the calculation result. , from the most significant bit of each of the plurality of input values to the number of digits, add each of the plurality of input values output by the reception unit every K bits (K is an integer where K>0) from the most significant bit. , an arithmetic unit 130 that performs the operation every K bits from the most significant bit, and an output that outputs the addition result by the arithmetic unit 130 every K bits from the most significant bit after L (L is an integer where L>0) clocks later. 140.
With this configuration, the arithmetic device 100 receives an input value such as a plurality of bit serial data every K bits from the most significant bits, adds up every K bits before receiving all bits of the input value, Since the calculation result obtained by addition can be output every K bits after L clocks, a rough calculation result can be output. At this time, the calculation result includes an error, but in this embodiment, the range of the error can be determined, so that if the error is within the allowable error range, the result can be obtained with short latency.
Furthermore, since carry and the like can be reflected, a value closer to an accurate calculation result can be obtained than when addition is performed bit by bit starting from the most significant bit.
Further, the calculation unit 130 stops the addition when the addition result of the most significant bit is equal to or greater than the threshold value. With this configuration, unnecessary calculations can be reduced.

実施形態に係る演算装置は、組合せ最適化問題を近似解法で解くハードウェア・アクセラレータ、人工知能、ニューラルネット・アクセラレータなどの大量のデータを処理するが計算精度はある程度誤差を含んでいても構わない分野へ応用できる。
特に、組合せ最適化問題の近似解法の一つであるシミュレーティッド・アニーリング(SA)、遺伝的アルゴリズム(GA)、粒子最適化法(PSO)などは大量の計算を実行するが、個々の計算の正確性はさほど結果に影響しない。したがって、この様な汎用的な解法に適用することによって、応用範囲をさらに拡大できる。同様に、ディープニューラルネットワークの処理を、特にスパイキング・ニューラルネットワークのような構造に応用することによって小型化・低消費電力化を図ることができる。
The arithmetic device according to the embodiment processes a large amount of data, such as a hardware accelerator, artificial intelligence, or neural network accelerator that solves a combinatorial optimization problem using an approximate solution method, but the calculation accuracy may include some error. Can be applied to various fields.
In particular, simulated annealing (SA), genetic algorithm (GA), particle optimization method (PSO), etc., which are approximate solutions for combinatorial optimization problems, perform a large amount of calculations, but each Accuracy does not significantly affect the results. Therefore, by applying such a general solution method, the range of application can be further expanded. Similarly, by applying deep neural network processing, especially to structures such as spiking neural networks, it is possible to achieve miniaturization and lower power consumption.

(実施形態の変形例)
[全体構成]
図9は、実施形態の変形例に係る演算装置を含む演算システムの構成図である。実施形態の変形例の演算システム1aは、演算装置100aと、一以上利用者Uにより使用される端末装置200とを備える。
演算装置100aと、端末装置200とは、ネットワークNWを介して互いに通信可能である。
(Modified example of embodiment)
[overall structure]
FIG. 9 is a configuration diagram of a calculation system including a calculation device according to a modification of the embodiment. A computing system 1a according to a modification of the embodiment includes a computing device 100a and a terminal device 200 used by one or more users U.
The computing device 100a and the terminal device 200 can communicate with each other via the network NW.

ユーザーUが、端末装置200に対して、演算装置100aと接続する操作を行うことによって、端末装置200は、ネットワークNWを介して、演算装置100aに接続する。端末装置200は、演算装置100aが提供する演算サービスウェブサイトへアクセスする。
ユーザーUは、演算サービスウェブサイトの表示にしたがって、端末装置200に対して、複数の入力値に加え、誤差情報を入力する操作を行う。
端末装置200は、ユーザーUが入力した複数の入力値と誤差情報とを取得し、取得した複数の入力値と誤差情報とを含み、演算装置100aを宛先とする演算要求を作成する。端末装置200は、作成した演算要求を、演算装置100aへ送信する。
When the user U performs an operation on the terminal device 200 to connect to the computing device 100a, the terminal device 200 connects to the computing device 100a via the network NW. The terminal device 200 accesses the calculation service website provided by the calculation device 100a.
The user U performs an operation on the terminal device 200 to input error information in addition to a plurality of input values, in accordance with the display on the calculation service website.
The terminal device 200 acquires a plurality of input values and error information input by the user U, and creates a calculation request that includes the plurality of acquired input values and error information and is addressed to the calculation device 100a. The terminal device 200 transmits the created calculation request to the calculation device 100a.

演算装置100aは、端末装置200が送信した演算要求を受信する。演算装置100は、受信した演算要求に含まれる複数の入力値の各々と、誤差情報とを受け付ける。演算装置100aは、受け付けた誤差情報に関連付けて記憶されている桁数を示す情報を取得し、取得した桁数を示す情報を設定する。演算装置100aは、設定した桁数を示す情報に基づいて、複数の入力値の各々の最上位ビットから、桁数に該当する値を取得する。演算装置100aは、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、桁数に該当する値まで、複数の入力値の各々の加算を、シリアル転送のビット数Kに基づいて、最上位ビットからKビット(Kは、K>0の整数)毎に行う。つまり、最上位ビットから、桁数より下位のビットは零として扱われる。演算装置100aは、演算結果を、加算時の遅延クロック数Lに基づいて、L(Lは、L>0の整数)クロック後から、Kビット毎に出力する。例えば、演算装置100aは、演算結果を、最上位ビットから、Kビット毎に出力する。演算装置100aは、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、端末装置200へ送信する。
端末装置200は、演算装置100aが送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
以下、演算システム1aに含まれる演算装置100aと、端末装置200とのうち、実施形態とは異なる演算装置100aについて説明する。
The calculation device 100a receives the calculation request sent by the terminal device 200. The arithmetic device 100 receives each of the plurality of input values included in the received arithmetic request and error information. The arithmetic device 100a acquires information indicating the number of digits stored in association with the received error information, and sets information indicating the acquired number of digits. Based on the information indicating the set number of digits, the arithmetic device 100a obtains a value corresponding to the number of digits from the most significant bit of each of the plurality of input values. The arithmetic device 100a adds each of the plurality of input values, from the most significant bit to the value corresponding to the number of digits, from the obtained value corresponding to the number of digits or one or more digits, to the number of bits K for serial transfer. Based on this, the processing is performed every K bits (K is an integer where K>0) starting from the most significant bit. In other words, from the most significant bit, bits lower than the number of digits are treated as zero. The arithmetic device 100a outputs the arithmetic result every K bits, based on the number L of delay clocks during addition, starting after L clocks (L is an integer where L>0). For example, the arithmetic device 100a outputs the arithmetic result every K bits starting from the most significant bit. The calculation device 100a creates a calculation response that includes the calculation result and is addressed to the terminal device 200, and transmits the created calculation response to the terminal device 200.
The terminal device 200 receives the calculation response transmitted by the calculation device 100a, and acquires the calculation result included in the received calculation response. The terminal device 200 outputs the obtained calculation result.
Hereinafter, among the arithmetic device 100a included in the arithmetic system 1a and the terminal device 200, the arithmetic device 100a that is different from the embodiment will be described.

[演算装置100a]
演算システム1aに含まれる演算装置100aは、パーソナルコンピュータ、サーバー、又は産業用コンピュータ等の装置によって実現される。演算装置100aは、例えば、通信部110と、受付部120aと、演算部130aと、出力部140と、記憶部150と、設定部160とを備える。
記憶部150aは、HDDやフラッシュメモリ、RAM、ROMなどにより実現される。記憶部150aは、誤差情報桁数関連テーブル154が記憶される。
誤差情報桁数関連テーブル154は、誤差情報と、演算に使用する最上位ビットからの桁数を示す情報とを関連付けたテーブル形式の情報である。誤差情報桁数関連テーブル154には、誤差情報の値が小さくなるほど、演算に使用する最上位ビットからの桁数の値は大きくなり、誤差情報の値が小さくなるほど、演算桁数情報152の値は小さくなるように、誤差情報と、桁数を示す情報とが記憶される。誤差情報の値が小さくなるほど、演算結果に要求される精度が高くなり、誤差情報の値が大きくなるほど、演算結果に要求される精度が低くなるためである。
[Arithmetic device 100a]
The arithmetic device 100a included in the arithmetic system 1a is realized by a device such as a personal computer, a server, or an industrial computer. The calculation device 100a includes, for example, a communication section 110, a reception section 120a, a calculation section 130a, an output section 140, a storage section 150, and a setting section 160.
The storage unit 150a is realized by an HDD, flash memory, RAM, ROM, or the like. The storage unit 150a stores an error information digit number related table 154.
The error information digit number related table 154 is information in a table format that associates error information with information indicating the number of digits from the most significant bit used in calculations. In the error information digit number related table 154, the smaller the error information value, the larger the value of the number of digits from the most significant bit used for calculation, and the smaller the error information value, the larger the value of the calculation digit number information 152. The error information and the information indicating the number of digits are stored so that the number of digits becomes small. This is because the smaller the value of the error information, the higher the accuracy required for the calculation result, and the larger the value of the error information, the lower the accuracy required for the calculation result.

受付部120a、演算部130a、出力部140、及び設定部160は、例えば、CPUなどのハードウェアプロセッサが記憶部150aに格納されたプログラム(ソフトウェア)を実行することにより実現される。また、これらの機能部のうち一部または全部は、LSIやASIC、FPGA、GPUなどのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
プログラムは、予めHDDやフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
The reception unit 120a, the calculation unit 130a, the output unit 140, and the setting unit 160 are realized, for example, by a hardware processor such as a CPU executing a program (software) stored in the storage unit 150a. Further, some or all of these functional units may be realized by hardware (including circuitry) such as LSI, ASIC, FPGA, or GPU, or may be realized by collaboration between software and hardware. may be done.
The program may be stored in advance in a storage device such as an HDD or flash memory (storage device equipped with a non-transitory storage medium), or may be stored in a removable storage medium (non-transitory storage medium) such as a DVD or CD-ROM. The software may be installed by attaching the storage medium to a drive device.

受付部120aは、通信部110が受信した演算要求に含まれる複数の入力値と、誤差情報とを受け付ける。受付部120aが受け付けた複数の入力値は演算部130へ出力され、誤差情報は設定部160へ出力される。ここで、受付部120aは、受け付けた複数の入力値の各々の桁数が異なる場合には、桁合わせを行う。受付部120aは、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130aへ出力する。ここで、シリアル転送のビットKは、予め設定されている。
設定部160は、受付部120aが受け付けた誤差情報を取得する。設定部160は、記憶部150aに記憶されている誤差情報桁数関連テーブル154から、取得した誤差情報に関連付けて記憶されている桁数を示す情報を取得し、取得した桁数を示す情報を設定する。
演算部130aは、受付部120aが受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130aは、設定部160が設定した桁数を示す情報を取得する。演算部130aは、取得した桁数を示す情報に基づいて、取得した複数の入力値の各々の最上位ビットから、桁数を示す情報に該当する値まで、最上位ビットからKビット毎に取得する。
演算部130aは、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、桁数を示す情報に該当する値まで、複数の入力値の各々の加算を行う。演算部130aは、最上位ビットから、桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。演算部130aは、最上位ビットから、桁数を示す情報に該当する値より下位ビットは0として処理する。
The reception unit 120a receives a plurality of input values and error information included in the calculation request received by the communication unit 110. The plurality of input values received by the reception unit 120a are output to the calculation unit 130, and error information is output to the setting unit 160. Here, if the received input values have different numbers of digits, the reception unit 120a performs digit alignment. The reception unit 120a outputs each of the plurality of input values to the calculation unit 130a in units of K bits starting from the most significant bit based on bit K of the serial transfer. Here, bit K for serial transfer is set in advance.
The setting unit 160 acquires the error information received by the receiving unit 120a. The setting unit 160 acquires information indicating the number of digits stored in association with the acquired error information from the error information digit number related table 154 stored in the storage unit 150a, and stores the information indicating the acquired number of digits. Set.
The calculation unit 130a acquires each of the plurality of input values received by the reception unit 120a, every K bits starting from the most significant bit. The calculation unit 130a acquires information indicating the number of digits set by the setting unit 160. Based on the acquired information indicating the number of digits, the calculation unit 130a acquires every K bits from the most significant bit of each of the plurality of acquired input values up to the value corresponding to the information indicating the number of digits. do.
The calculation unit 130a adds each of the plurality of input values from the most significant bit of the obtained value corresponding to the number of digits to the value corresponding to the information indicating the number of digits. The calculation unit 130a outputs the result of adding each of the plurality of input values from the most significant bit to the value corresponding to the number of digits to the output unit 140 every K bits from the most significant bit. The calculation unit 130a processes the lower bits starting from the most significant bit and treating the lower bits of the value corresponding to the information indicating the number of digits as 0.

(演算システムの動作)
図10は、実施形態の変形例に係る演算システムの動作の一例を示すシーケンスチャートである。
図10に示される例では、ユーザーUが、端末装置200を操作することによって、端末装置200は、演算装置100aと接続し、演算装置100aが提供している演算サービスウェブサイトにアクセスしていることを前提とする。
(ステップS11)
ユーザーUが、端末装置200に対して、複数の入力値と、誤差情報とを入力する操作を行うことによって、端末装置200は、入力された複数の入力値と、誤差情報とを含み、演算装置100aを宛先とする演算要求を作成する。
(ステップS12)
端末装置200は、作成した演算要求を、演算装置100aへ送信する。
(ステップS13)
演算装置100aにおいて、通信部110は、端末装置200が送信した演算要求を受信する。
(ステップS14)
演算装置100aにおいて、受付部120aは、通信部110が受信した演算要求を取得し、取得した演算要求に含まれる複数の入力値と、誤差情報とを受け付ける。受付部120aは、必要に応じて、複数の入力値の各々の桁合わせを行う。受付部120aは、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130aへ出力する。
(Operation of calculation system)
FIG. 10 is a sequence chart illustrating an example of the operation of the arithmetic system according to a modification of the embodiment.
In the example shown in FIG. 10, when the user U operates the terminal device 200, the terminal device 200 connects to the computing device 100a and accesses the computing service website provided by the computing device 100a. The premise is that.
(Step S11)
When the user U performs an operation to input a plurality of input values and error information to the terminal device 200, the terminal device 200 includes the input plurality of input values and error information, and performs a calculation. A computation request is created with the device 100a as the destination.
(Step S12)
The terminal device 200 transmits the created calculation request to the calculation device 100a.
(Step S13)
In the computing device 100a, the communication unit 110 receives the computing request transmitted by the terminal device 200.
(Step S14)
In the calculation device 100a, the reception unit 120a acquires the calculation request received by the communication unit 110, and receives a plurality of input values and error information included in the acquired calculation request. The reception unit 120a adjusts the digits of each of the plurality of input values as necessary. The reception unit 120a outputs each of the plurality of input values to the calculation unit 130a in units of K bits starting from the most significant bit based on bit K of the serial transfer.

(ステップS15)
演算装置100aにおいて、設定部160は、受付部120aが受け付けた誤差情報を取得し、取得した誤差情報に関連付けて記憶されている桁数を示す情報を、記憶部150aの誤差情報桁数関連テーブル154から取得する。設定部160は、取得した桁数を示す情報を設定する。
(ステップS16)
演算装置100aにおいて、演算部130aは、受付部120が受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130aは、設定部160が設定した桁数を示す情報を取得する。演算部130aは、取得した桁数を示す情報に基づいて、取得した複数の入力値の各々の最上位ビットから、桁数を示す情報に該当する値まで、最上位ビットからKビット毎に取得する。
(ステップS17)
演算装置100aにおいて、演算部130aは、取得した桁数を示す情報に該当する値のうち、最上位ビットから、桁数を示す情報に該当する値まで、複数の入力値の各々の加算を行う。演算部130aは、最上位ビットから、桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。出力部140は、演算部130aによる演算結果を、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。
(ステップS18)
演算装置100aにおいて、出力部140は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、通信部110へ出力する。
(ステップS19)
演算装置100aにおいて、通信部110は、出力部140が出力した演算応答を取得し、取得した演算結果を、端末装置200へ送信する。
その後、端末装置200は、演算装置100aが送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
(Step S15)
In the arithmetic device 100a, the setting unit 160 acquires the error information received by the receiving unit 120a, and stores information indicating the number of digits stored in association with the acquired error information in the error information digit number related table in the storage unit 150a. 154. The setting unit 160 sets information indicating the obtained number of digits.
(Step S16)
In the arithmetic device 100a, the arithmetic unit 130a acquires each of the plurality of input values accepted by the reception unit 120, every K bits, starting from the most significant bit. The calculation unit 130a acquires information indicating the number of digits set by the setting unit 160. Based on the acquired information indicating the number of digits, the calculation unit 130a acquires every K bits from the most significant bit of each of the plurality of acquired input values up to the value corresponding to the information indicating the number of digits. do.
(Step S17)
In the arithmetic device 100a, the arithmetic unit 130a adds each of the plurality of input values from the most significant bit of the value corresponding to the information indicating the number of digits obtained to the value corresponding to the information indicating the number of digits. . The calculation unit 130a outputs the result of adding each of the plurality of input values from the most significant bit to the value corresponding to the number of digits to the output unit 140 every K bits from the most significant bit. The output unit 140 outputs the calculation result by the calculation unit 130a every K bits starting from the most significant bit starting after L clocks based on the number L of delay clocks at the time of addition.
(Step S18)
In the calculation device 100a, the output unit 140 creates a calculation response that includes the calculation result and is addressed to the terminal device 200, and outputs the created calculation response to the communication unit 110.
(Step S19)
In the calculation device 100a, the communication unit 110 acquires the calculation response output by the output unit 140, and transmits the acquired calculation result to the terminal device 200.
Thereafter, the terminal device 200 receives the calculation response transmitted by the calculation device 100a, and acquires the calculation result included in the received calculation response. The terminal device 200 outputs the obtained calculation result.

前述した実施形態の変形例では、端末装置200に演算要求を送信させることによって、演算装置100aに演算を実行させる場合について説明したが、この例に限られない。例えば、複数の入力値と、誤差情報とを、演算装置100aに直接入力してもよい。この場合、演算装置100aは、入力された複数の入力値の各々と、誤差情報とを受け付け、受け付けた誤差情報に関連付けて記憶されている桁を示す情報を、記憶部150aの誤差情報桁数関連テーブル154から取得する。演算装置100aは、取得した桁を示す情報を設定する。演算装置100aは、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、設定された桁数を示す情報に該当する値まで取得する。演算装置100aは、取得した複数の入力値の各々の桁数を示す情報に該当する値のうち、最上位ビットからKビット毎に、桁数を示す情報に該当する値まで、複数の入力値の各々の加算を行う。演算装置100aは、例えば、演算結果を、演算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。演算装置100aは、演算結果を、表示装置(図示なし)に表示してもよい。
前述した実施形態の変形例では、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明したが、この例に限られない。演算部130aは、シリアル転送のビットKに基づいて、最上位ビットからKビット(Kは、桁数を示す情報の値≧K>0の整数)毎に加算を行うようにしてもよい。この場合、出力部は、加算時の遅延クロック数Lに基づいて、L(Lは、L>複数の入力値の数)クロック後から、Kビット毎に最上位ビットから加算された結果を出力する。
このように構成することによって、桁上げなどを反映できるため、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合よりも、正確な演算結果に近い値を得ることができる。
前述した実施形態の変形例では、シリアル転送のビットKと、加算時の遅延クロック数Lとが、演算装置100aに設定されている場合について説明したが、この例に限られない。例えば、ユーザーUが、端末装置200に対して、シリアル転送のビットKと、加算時の遅延クロック数Lとを入力する操作を行うことによって、端末装置200は、入力されたシリアル転送のビットKを示す情報と、加算時の遅延クロック数Lを示す情報とを含み、演算装置100aを宛先とする演算要求を作成するようにしてもよい。
In the modification of the embodiment described above, a case has been described in which the calculation device 100a is caused to execute a calculation by transmitting a calculation request to the terminal device 200, but the present invention is not limited to this example. For example, a plurality of input values and error information may be directly input to the arithmetic device 100a. In this case, the arithmetic device 100a receives each of the plurality of input values and the error information, and stores information indicating the digit stored in association with the received error information in the error information digit number of the storage unit 150a. Obtained from the related table 154. The arithmetic device 100a sets information indicating the obtained digit. The arithmetic device 100a acquires each of the plurality of input values from the most significant bit to the value corresponding to the information indicating the set number of digits for each K bit based on the bit K of the serial transfer. The arithmetic device 100a calculates the plurality of input values from the most significant bit to the value corresponding to the information indicating the number of digits for every K bits among the values corresponding to the information indicating the number of digits of each of the plurality of acquired input values. Perform the addition of each. For example, the arithmetic device 100a outputs the arithmetic result every K bits starting from the most significant bit after L clocks based on the number L of delay clocks during the arithmetic operation. The calculation device 100a may display the calculation results on a display device (not shown).
In the modification of the embodiment described above, a case has been described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1, but the present invention is not limited to this example. The calculation unit 130a may perform addition every K bits (K is an integer of information indicating the number of digits≧K>0) from the most significant bit based on the bit K of the serial transfer. In this case, the output unit outputs the result of addition for every K bits starting from the most significant bit after L clocks (L is L>number of multiple input values) based on the number of delay clocks L during addition. do.
With this configuration, carry etc. can be reflected, so it is possible to obtain a value closer to the accurate calculation result than when the serial transfer bit K is 1 and the number of delay clocks L during addition is 1. can.
In the modification of the embodiment described above, a case has been described in which the serial transfer bit K and the number of delay clocks L during addition are set in the arithmetic device 100a, but the present invention is not limited to this example. For example, when user U performs an operation to input serial transfer bit K and delay clock number L during addition to terminal device 200, terminal device 200 inputs serial transfer bit K An arithmetic request may be created that includes information indicating , and information indicating the number of delay clocks L during addition, and is directed to the arithmetic device 100a.

前述した実施形態の変形例では、演算装置100aにおいて、演算部130aが、シリアル転送のビットKに基づいて、取得した複数の入力値の各々を、桁数に該当する値のうち、最上位ビットから、Kビット毎に、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。そして、出力部140が、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に出力する場合について説明したが、この例に限られない。例えば、演算部130aは、最上位ビットから、Kビット毎の加算結果が、閾値以上である場合に、演算を中止してもよい。仮に、演算結果が、閾値以上であるか否かを判定する場合に、演算結果が閾値以上であることが判明した後に、演算を継続しても、その演算は不要であるためである。このように構成することによって、不要な演算を削減できる。
前述した実施形態の変形例では、演算装置100aは、誤差情報を受け付け、受け付けた誤差情報に関連付けて記憶されている桁を示す情報を、記憶部150aの誤差情報桁数関連テーブル154から取得する場合について説明したが、この例に限られない。例えば、記憶部150aに、誤差情報から、桁数を導出する演算式を記憶してもよい。この場合、演算部130aは、演算式に基づいて桁数を導出して設定してもよい。
In the modification of the embodiment described above, in the arithmetic device 100a, the arithmetic unit 130a converts each of the plurality of acquired input values into the most significant bit of the value corresponding to the number of digits based on the bit K of the serial transfer. Then, each of the plurality of input values is added up to a value corresponding to one or more digits for each K bit. Although a case has been described in which the output unit 140 outputs every K bits starting after L clocks based on the number L of delay clocks during addition, the present invention is not limited to this example. For example, the calculation unit 130a may stop the calculation when the addition result for every K bits starting from the most significant bit is equal to or greater than a threshold value. This is because, when determining whether or not the calculation result is equal to or greater than the threshold value, even if the calculation is continued after the calculation result is found to be equal to or greater than the threshold value, the calculation is unnecessary. With this configuration, unnecessary calculations can be reduced.
In the modification of the embodiment described above, the arithmetic device 100a receives error information and acquires information indicating digits stored in association with the received error information from the error information digit number related table 154 in the storage unit 150a. Although the case has been described, the present invention is not limited to this example. For example, an arithmetic expression for deriving the number of digits from the error information may be stored in the storage unit 150a. In this case, the calculation unit 130a may derive and set the number of digits based on the calculation formula.

実施形態の変形例に係る演算装置によれば、演算装置100aは、複数の入力値を受け付ける受付部120aと、演算結果に許容される誤差に基づいて設定されている最上位ビットからの桁数に基づいて、複数の入力値の各々の最上位ビットから桁数まで、受付部120aが最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の入力値の各々の加算を、最上位ビットからKビット毎に行う演算部130aと、演算部130aによる加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部140とを備える。
このように構成することによって、演算装置100aは、複数のビットシリアルデータなどの入力値を、上位ビットからKビット毎に受け取り、入力値の全ビットを受け取る前に、Kビット毎に加算し、加算によって得られる演算結果を、Lクロック後から、Kビット毎に出力できるため、概略計算結果を出力できる。このとき,演算結果には誤差が含まれるが、本実施形態では,その誤差の範囲が確定できるため、許容誤差範囲であれば、短いレイテンシで結果を得ることができる。
According to the arithmetic device according to the modification of the embodiment, the arithmetic device 100a includes a reception unit 120a that receives a plurality of input values, and a number of digits from the most significant bit that is set based on an allowable error in the calculation result. From the most significant bit of each of the plurality of input values to the number of digits, the reception unit 120a outputs each of the plurality of input values every K bits (K is an integer where K>0) based on the most significant bit of each of the plurality of input values. An arithmetic unit 130a performs addition every K bits starting from the most significant bit, and outputs the addition result by the arithmetic unit 130a every K bits starting from the most significant bit after L (L is an integer where L>0) clocks later. and an output section 140.
With this configuration, the arithmetic device 100a receives input values such as a plurality of bit serial data every K bits from the most significant bits, adds them every K bits before receiving all bits of the input value, Since the calculation result obtained by addition can be output every K bits after L clocks, a rough calculation result can be output. At this time, the calculation result includes an error, but in this embodiment, the range of the error can be determined, so that if the error is within the allowable error range, the result can be obtained with short latency.

さらに、受付部120aは、演算結果に要求される誤差情報を受け付け、演算装置100aは、受付部120aが受け付けた誤差情報に基づいて、加算に使用する複数の入力値の各々の最上位ビットからの桁数を設定する設定部160を備え、演算部130aは、設定部が設定した桁数に基づいて、受付部120aが、複数の入力値の各々の最上位ビットから設定部160が設定した桁数まで、最上位ビットからKビット毎に出力した複数の入力値の各々の加算を、最上位ビットからKビット毎に行う。
このように構成することによって、演算結果に要求される誤差情報に基づいて、加算に使用する複数の入力値の各々の最上位ビットからの桁数を設定できるため、演算の柔軟性を向上できる。
さらに、設定部160は、演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けて記憶する記憶部150aから、受付部120aが受け付けた誤差情報に基づいて、複数の入力値の各々の最上位ビットからの桁数を取得する。
このように構成することによって、記憶部150aに記憶されている演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けた情報から、受け付けた誤差情報に基づいて、複数の入力値の各々の最上位ビットからの桁数を取得できるため、演算によって、複数の入力値の各々の最上位ビットからの桁数を導出するよりも、処理を簡略化できる。
Furthermore, the reception unit 120a receives error information required for the calculation result, and the calculation device 100a selects the most significant bit of each of the plurality of input values used for addition based on the error information received by the reception unit 120a. The calculation unit 130a includes a setting unit 160 that sets the number of digits, and the calculation unit 130a allows the receiving unit 120a to calculate the number of digits set by the setting unit 160 from the most significant bit of each of the plurality of input values, based on the number of digits set by the setting unit. Addition of each of the plurality of input values outputted every K bits from the most significant bit is performed every K bits from the most significant bit up to the number of digits.
With this configuration, the number of digits from the most significant bit of each of the multiple input values used for addition can be set based on the error information required for the calculation result, which improves the flexibility of calculation. .
Further, the setting unit 160 stores the error information received by the reception unit 120a from the storage unit 150a that stores error information required for the calculation result in association with the number of digits from the most significant bit of each of the plurality of input values. The number of digits from the most significant bit of each of the plurality of input values is obtained based on .
With this configuration, the received error is determined based on the information that associates the error information required for the calculation result stored in the storage unit 150a with the number of digits from the most significant bit of each of the plurality of input values. Based on the information, the number of digits from the most significant bit of each of multiple input values can be obtained, which is simpler than calculating the number of digits from the most significant bit of each of multiple input values. can be converted into

以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合わせを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述の演算装置100、端末装置200、演算装置100aは内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリなどをいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
Although the embodiments of the present invention have been described above, these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, substitutions, changes, and combinations can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, as well as within the scope of the invention described in the claims and its equivalents.
Note that the arithmetic device 100, terminal device 200, and arithmetic device 100a described above each have a computer inside. The processes of each of the above-mentioned devices are stored in a computer-readable recording medium in the form of a program, and the above-mentioned processes are performed by reading and executing this program by the computer. Here, the computer-readable recording medium refers to a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, and the like. Alternatively, this computer program may be distributed to a computer via a communication line, and the computer receiving the distribution may execute the program.
Moreover, the above-mentioned program may be for realizing a part of the above-mentioned functions.
Furthermore, it may be a so-called difference file (difference program) that can realize the above-described functions in combination with a program already recorded in the computer system.

1、1a…演算システム、 11、12、17、19…フリップフロップ、13…ORゲート、14…XORゲート、15…ANDゲート、16…マルチプレクサ、18…NOTゲート、100、100a…演算装置、 110…通信部、 120、120a…受付部、 130,130a…演算部、 140…出力部、 150…記憶部、 160…設定部、 152…演算桁数情報、 154…誤差情報桁数関連テーブル、200…端末装置 1, 1a... Arithmetic system, 11, 12, 17, 19... Flip-flop, 13... OR gate, 14... XOR gate, 15... AND gate, 16... Multiplexer, 18... NOT gate, 100, 100a... Arithmetic device, 110 ...Communication section, 120, 120a...Reception section, 130, 130a...Calculation section, 140...Output section, 150...Storage section, 160...Setting section, 152...Calculation digit number information, 154...Error information digit number related table, 200 …terminal device

Claims (4)

複数の入力値および演算結果に要求される誤差情報を受け付ける受付部と、
前記受付部が受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定する設定部と、
前記設定部が設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定部が設定した前記桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行う演算部と、
前記演算部による加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部と
を備える演算装置。
a reception unit that accepts error information required for multiple input values and calculation results ;
a setting unit that sets the number of digits from the most significant bit of each of the plurality of input values used for addition, based on the error information received by the reception unit;
Based on the number of digits from the most significant bit set by the setting unit , the reception unit calculates the number of digits from the most significant bit from the most significant bit of each of the plurality of input values to the number of digits set by the setting unit. an arithmetic unit that adds each of the plurality of input values outputted every K bits (K is an integer where K>0) every K bits from the most significant bit;
An arithmetic device comprising: an output section that outputs the addition result by the arithmetic section from the most significant bit every K bits after L (L is an integer where L>0) clocks.
前記設定部は、演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けて記憶する記憶部から、前記受付部が受け付けた前記誤差情報に基づいて、複数の前記入力値の各々の最上位ビットからの桁数を取得する、請求項に記載の演算装置。 The setting section is configured to perform processing based on the error information received by the reception section from a storage section that stores error information required for the calculation result in association with the number of digits from the most significant bit of each of the plurality of input values. The arithmetic device according to claim 1 , wherein the number of digits from the most significant bit of each of the plurality of input values is acquired. 前記演算部は、前記最上位ビットの加算結果が、閾値以上である場合に、加算を中止する、請求項1又は請求項に記載の演算装置。 The arithmetic device according to claim 1 or 2 , wherein the arithmetic unit stops the addition when the addition result of the most significant bit is equal to or greater than a threshold value. 複数の入力値および演算結果に要求される誤差情報を受け付けるステップと、
前記受け付けるステップで受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定するステップと、
前記設定するステップで設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定するステップで設定した前記桁数まで、前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行うステップと、
前記加算を行うステップによる加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力するステップと
を有する演算装置が実行する演算方法。
accepting error information required for multiple input values and calculation results ;
setting the number of digits from the most significant bit of each of the plurality of input values used for addition, based on the error information received in the accepting step;
Based on the number of digits from the most significant bit set in the setting step , K bits are added from the most significant bit from the most significant bit of each of the plurality of input values to the number of digits set in the setting step. (K is an integer where K>0), adding each of the plurality of input values output every K bits from the most significant bit;
An arithmetic method executed by an arithmetic device, comprising: outputting the addition result from the step of performing the addition from the most significant bit every K bits after L clocks (L is an integer where L>0).
JP2019211774A 2019-11-22 2019-11-22 Computing device and computing method Active JP7437593B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019211774A JP7437593B2 (en) 2019-11-22 2019-11-22 Computing device and computing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019211774A JP7437593B2 (en) 2019-11-22 2019-11-22 Computing device and computing method

Publications (2)

Publication Number Publication Date
JP2021082221A JP2021082221A (en) 2021-05-27
JP7437593B2 true JP7437593B2 (en) 2024-02-26

Family

ID=75965389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019211774A Active JP7437593B2 (en) 2019-11-22 2019-11-22 Computing device and computing method

Country Status (1)

Country Link
JP (1) JP7437593B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059105A1 (en) 2012-08-27 2014-02-27 The Regents Of The University Of California Accuracy configurable adders and methods

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5884343A (en) * 1981-11-16 1983-05-20 Toshiba Corp Serial adder circuit
JPH1031573A (en) * 1996-07-16 1998-02-03 Hitachi Ltd Information processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059105A1 (en) 2012-08-27 2014-02-27 The Regents Of The University Of California Accuracy configurable adders and methods

Also Published As

Publication number Publication date
JP2021082221A (en) 2021-05-27

Similar Documents

Publication Publication Date Title
US10075289B2 (en) Homomorphic encryption with optimized parameter selection
US20170134157A1 (en) Homomorphic Encryption with Optimized Encoding
WO2021244354A1 (en) Training method for neural network model, and related product
US11334320B2 (en) Generating randomness in neural networks
WO2020207174A1 (en) Method and apparatus for generating quantized neural network
CN112270200B (en) Text information translation method and device, electronic equipment and storage medium
US11615301B2 (en) Lossless exponent and lossy mantissa weight compression for training deep neural networks
Immareddy et al. A survey paper on design and implementation of multipliers for digital system applications
US11620105B2 (en) Hybrid floating point representation for deep learning acceleration
US20230076260A1 (en) Systems and methods for converting data from int-64 to boolean for computations
US8977663B2 (en) Converting binary values into binary-coded-centimal values
CN110009101B (en) Method and apparatus for generating a quantized neural network
CN110826706A (en) Data processing method and device for neural network
CN110335165B (en) Link prediction method and device
CN111126557B (en) Neural network quantization, application method, device and computing equipment
JP7437593B2 (en) Computing device and computing method
CN116127925B (en) Text data enhancement method and device based on destruction processing of text
WO2023185896A1 (en) Text generation method and apparatus, and computer device and storage medium
US11551087B2 (en) Information processor, information processing method, and storage medium
CN116108810A (en) Text data enhancement method and device
US20200133995A1 (en) Solving lattice problems using annealing
Poltoratski Bernstein’s problem on weighted polynomial approximation
EP3232319B1 (en) Random number generation apparatus, random number generation method and program
US11175957B1 (en) Hardware accelerator for executing a computation task
US11507371B2 (en) Column data driven arithmetic expression evaluation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230704

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231031

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240117

R150 Certificate of patent or registration of utility model

Ref document number: 7437593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150