JP2006155102A - Arithmetic processing unit - Google Patents
Arithmetic processing unit Download PDFInfo
- Publication number
- JP2006155102A JP2006155102A JP2004343087A JP2004343087A JP2006155102A JP 2006155102 A JP2006155102 A JP 2006155102A JP 2004343087 A JP2004343087 A JP 2004343087A JP 2004343087 A JP2004343087 A JP 2004343087A JP 2006155102 A JP2006155102 A JP 2006155102A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- shift
- arithmetic processing
- point
- arithmetic
- 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.)
- Withdrawn
Links
Images
Abstract
Description
本発明はデジタル信号処理を行なう演算処理装置に関し、特に、デジタル信号処理を行うデジタルシグナルプロセッサ(DSP)や、デジタルオーディオ信号処理、デジタルビデオ信号処理に関する。 The present invention relates to an arithmetic processing unit that performs digital signal processing, and more particularly to a digital signal processor (DSP) that performs digital signal processing, digital audio signal processing, and digital video signal processing.
デジタル信号処理を行う演算処理装置は、その演算方式において固定小数点演算方式と浮動小数点演算方式の二つに大別することができる。一般に、固定小数点演算方式は、回路構成は簡単だが演算精度が浮動小数点演算方式に比べて劣っており、一方、浮動小数点演算方式は、回路構成は複雑だが、演算精度は固定小数点演算方式よりも優れていることは良く知られている。 Arithmetic processing devices that perform digital signal processing can be broadly classified into two types: a fixed-point arithmetic method and a floating-point arithmetic method. In general, the fixed-point arithmetic method has a simple circuit configuration, but the calculation accuracy is inferior to the floating-point arithmetic method. On the other hand, the floating-point arithmetic method has a complicated circuit configuration, but the arithmetic accuracy is higher than the fixed-point arithmetic method. It is well known that it is excellent.
通常、デジタルオーディオに使用する演算処理装置は、コスト面、限られた演算処理ステップ数から固定小数点方式を採用することが多いが、固定小数点演算方式の場合、演算処理空間がデータ語長に依存してしまうため、浮動小数点演算方式に比べて、広い演算空間を取ることが出来ない。そのため、固定小数点方式でも、浮動小数点なみの演算精度をもたせるさまざまな手法が開発されている(例えば、特許文献1参照)。 Usually, arithmetic processing units used for digital audio often use a fixed-point method because of the limited number of processing steps in terms of cost. In the case of fixed-point arithmetic methods, the processing space depends on the data word length. Therefore, it is not possible to take a wide calculation space as compared with the floating point calculation method. For this reason, various methods have been developed to provide calculation accuracy as in floating point even in the fixed-point method (see, for example, Patent Document 1).
たとえば、時分割処理による乗算回路の倍精度演算、4倍精度演算手法がある。乗算回路の一方の入力を上位ビット、下位ビットに分けて後で足し合わせることにより倍精度演算を可能にし、両方の入力とも分けることで4倍精度演算をすることが可能である、しかし、分割した回数分の演算処理ステップ数が増加するため、通常の乗算と比較して、倍精度演算では2倍以上、4倍精度では4倍以上の演算処理数がかかり、使用できる用途や使用回数は限られてしまう欠点がある。
また、その他の方法として、データを正規化しつつ演算を行う方法も考えられている。
For example, there are a double precision calculation and a quadruple precision calculation method of a multiplication circuit by time division processing. It is possible to perform double precision operation by dividing one input of the multiplication circuit into upper bits and lower bits and adding them later, and by dividing both inputs, it is possible to perform quadruple precision operation. Since the number of operation processing steps increases by the number of times, the number of operations and the number of operations that can be used are more than twice as long as double-precision arithmetic, and more than four times as much as quadruple precision compared to normal multiplication. There is a drawback that is limited.
As another method, a method of performing calculation while normalizing data is also considered.
これらの手法を実現する、固定小数点演算装置の構成例を図1〜5に示す。図1の固定小数点演算方式は、固定小数点用乗算回路、シフト回路、加算回路、加算結果を記録するレジスタまたはメモリで構成される。
シフト回路は、乗算回路のフルスケール入力に対しても対応しており、2の補数演算に使用される場合は、下位ビットシフトの際には符号拡張を行う構成になっている。
An example of the configuration of a fixed-point arithmetic unit that implements these methods is shown in FIGS. The fixed-point arithmetic method in FIG. 1 includes a fixed-point multiplier circuit, a shift circuit, an adder circuit, and a register or memory that records the addition result.
The shift circuit also supports the full-scale input of the multiplication circuit, and when used for two's complement arithmetic, the shift circuit is configured to perform sign extension at the time of lower bit shift.
加算回路は、加算結果を累積演算していく構成のため、上位ビットにオーバーフロー用のマージン回路が、下位ビットにアンダーフロー対策用のマージン回路がどちらか一方、あるいは、両方ついているのが普通である。単純な積和演算を行う場合は、加算回路でよいが、より複雑な演算を行うような場合は、加算回路をALU(算術論理演算ユニット)に置き換えればよい。当然ALUは、加算回路を含んでいる。
加算回路による加算結果、あるいはALUの演算結果を一時的に記憶するためのレジスタの数あるいはメモリ容量は用途に応じて決められる。
Since the addition circuit is configured to cumulatively calculate the addition result, it is normal for the upper bit to have an overflow margin circuit and the lower bit to have one or both of them to prevent underflow. is there. When performing a simple product-sum operation, an adder circuit may be used. However, when a more complicated operation is performed, the adder circuit may be replaced with an ALU (arithmetic logic unit). Of course, the ALU includes an adder circuit.
The number of registers or the memory capacity for temporarily storing the addition result by the addition circuit or the calculation result of the ALU is determined according to the application.
これら回路は、デジタルオーディオやデジタルビデオの信号処理に使用される場合は、できるだけ短い演算処理ステップ数で実行することが求められている。したがって、1演算処理ステップ数で乗算、シフト、加算ができれば望ましいが、高性能化も求められているため演算語長も長くなり、1演算処理ステップ数ですべての演算をすることは不可能なことが多い。そのため、演算回路の途中にパイプラインレジスタを挿入する手法を用いることがある。たとえば図1においては、乗算回路前段、乗算回路後段、シフト回路後段などにパイプラインレジスタを挿入する。本発明の図においては、具体的な実施例以外は、パイプラインレジスタは書いていないが、パイプラインレジスタを用いても同様の効果は得られる。 When these circuits are used for signal processing of digital audio and digital video, they are required to be executed with as few arithmetic processing steps as possible. Therefore, it is desirable that multiplication, shift, and addition can be performed with one arithmetic processing step number. However, since high performance is also demanded, the arithmetic word length becomes long, and it is impossible to perform all arithmetic operations with one arithmetic processing step number. There are many cases. Therefore, a technique of inserting a pipeline register in the middle of the arithmetic circuit may be used. For example, in FIG. 1, a pipeline register is inserted in the preceding stage of the multiplication circuit, the subsequent stage of the multiplication circuit, the subsequent stage of the shift circuit, and the like. In the figure of the present invention, the pipeline register is not written except for the specific embodiment, but the same effect can be obtained even if the pipeline register is used.
図1に示す演算処理装置の場合は、乗算回路の後にシフト回路があるため、乗算回路の入力レベル、またはシフト演算命令によりシフト回路の出力を上位ビット側、下位ビット側にシフトさせることにより乗算結果の正規化を行うことが可能であり、固定小数点演算回路でも、精度の向上をはかることができる。
図2は、図1をさらに発展させて、シフトの入力側にセレクタを設け乗算結果以外のデータの入力を可能としている。
In the case of the arithmetic processing unit shown in FIG. 1, since there is a shift circuit after the multiplication circuit, multiplication is performed by shifting the output of the shift circuit to the upper bit side and the lower bit side according to the input level of the multiplication circuit or a shift operation instruction. The result can be normalized, and the accuracy can be improved even with a fixed-point arithmetic circuit.
FIG. 2 is a further development of FIG. 1 in which a selector is provided on the input side of the shift to allow data other than the multiplication result to be input.
図3は、図1の演算処理装置を使って、積和演算結果を再度乗算する回路の一例である。積和演算された結果は、演算処理回路1を介して、セレクタAのY1に接続されている。演算処理回路1は、無くてもかまわないが、オーバーフローしたデータを、正もしくは負のフルスケールに張り付かせる処理や、出力先の選択もしくは、次の回路への調整等を行わせる回路である。
図4は、図2の演算処理装置を使って、積和演算結果に再度乗算を行う回路の一例である。
図4の演算処理をさらに拡張したものを図5に表す。図5は、データバスを介して、ROM、RAM、各種演算回路、入出力インタフェースが接続されている。一般的にDSP(デジタルシグナルプロセッサ)と呼ばれる装置の構成例である。
FIG. 3 is an example of a circuit that multiplies the product-sum operation result again by using the arithmetic processing unit of FIG. The result of the product-sum operation is connected to Y1 of the selector A through the
FIG. 4 is an example of a circuit that multiplies again the product-sum operation result using the arithmetic processing unit of FIG.
FIG. 5 shows a further extension of the arithmetic processing of FIG. In FIG. 5, a ROM, a RAM, various arithmetic circuits, and an input / output interface are connected via a data bus. This is a configuration example of a device generally called a DSP (digital signal processor).
従来の演算処理装置は上記のように構成されるが、固定小数点演算方式の場合、基本的には小数点の位置を固定して演算を行うため、演算空間を広く取ることはできない。ただし、図1、図2に例示した演算処理装置の場合で、あらかじめ入力データの信号レベルがわかっているような場合は、シフト回路を用いて上位ビット側、あるいは下位ビット側にビットシフトを行うことによって、ある程度の演算精度を上げることは可能である。しかし、入力データの信号レベルが前もってわからないような場合は、入力レベルを検知し、それにもとづいて、シフト量を計算する必要があり、さらには移動した小数点位置をもとに戻す必要があった。DSP演算の場合であれば、条件判定を必要とし、演算処理ステップ数が増えてしまう問題がある。 The conventional arithmetic processing unit is configured as described above. However, in the case of the fixed-point arithmetic method, since the arithmetic is basically performed with the position of the decimal point being fixed, a wide arithmetic space cannot be taken. However, in the case of the arithmetic processing unit illustrated in FIGS. 1 and 2, when the signal level of the input data is known in advance, a bit shift is performed on the upper bit side or the lower bit side using a shift circuit. Thus, it is possible to increase the calculation accuracy to some extent. However, when the signal level of the input data is not known in advance, it is necessary to detect the input level, calculate the shift amount based on the detected input level, and return the moved decimal point position to the original position. In the case of DSP computation, there is a problem that condition determination is required and the number of computation processing steps increases.
さらに、積和演算後の出力は、固定小数点の演算語長に戻さなければならないため、図4、図5のような演算処理装置において、微小データの積和演算が繰り返された場合、演算結果が、演算語長の範囲よりも小さくなり、演算精度がとれなくなってしまう問題がある。
また、図5の固定小数点型DSPにおいてデータバスに接続されたRAMやレジスタは、固定小数点の演算語長でしかやりとりができないため、たとえ、加算回路の演算処理空間を大きくとっても十分な効果は得られない。
Furthermore, since the output after the product-sum operation must be returned to the fixed-point arithmetic word length, when the sum-of-products operation of minute data is repeated in the arithmetic processing unit as shown in FIGS. However, there is a problem that it becomes smaller than the range of the operation word length and the calculation accuracy cannot be obtained.
In addition, since the RAM and the register connected to the data bus in the fixed-point type DSP of FIG. 5 can exchange only with the fixed-point arithmetic word length, a sufficient effect can be obtained even if the arithmetic processing space of the adder circuit is large. I can't.
本発明は、上記課題に鑑みなされたもので、上記課題を解決し、固定小数点型演算処理装置において、演算処理回数および回路規模をほとんど増加させずに、従来の固定小数点方式と高い互換性を保ちながら浮動小数点型演算処理装置に近い精度で処理を行うことができる演算処理装置を提供するものである。 The present invention has been made in view of the above-described problems. In the fixed-point arithmetic processing apparatus, the fixed-point arithmetic processing device achieves high compatibility with the conventional fixed-point method without substantially increasing the number of arithmetic processes and the circuit scale. It is an object of the present invention to provide an arithmetic processing device that can perform processing with accuracy close to that of a floating-point arithmetic processing device while maintaining the same.
上記課題を解決するため、請求項1に記載の発明は、浮動小数点数の仮数部のみが入力されると、乗算処理を行う乗算回路と、前記乗算回路の演算結果が入力されると、外部から与えられるシフト命令によるシフト量と前記乗算回路の入力の一方または両方の指数部の値とに基づき求められるシフト量のシフト演算処理を行うシフト回路と、前記シフト回路の演算結果と、レジスタおよび/またはメモリに記憶された情報とが入力されると、加算処理を行うことにより、仮数部と指数部とからなる浮動小数点データを固定小数点データに変換した演算空間で固定小数点演算を行う加算回路とを備え、前記加算回路は、前記加算処理の結果を前記レジスタおよび/またはメモリに記憶することを特徴とする。
本発明では、仮数部と指数部とからなる浮動小数点データを、固定小数点データに変換した演算空間で固定小数点演算を行うために、加算回路が浮動小数点演算の演算精度を決めている。
In order to solve the above problem, the invention according to
In the present invention, in order to perform a fixed-point operation in an operation space in which floating-point data composed of a mantissa part and an exponent part is converted into fixed-point data, the adder circuit determines the calculation accuracy of the floating-point operation.
また、請求項2に記載の本発明は、請求項1の演算処理装置において、請求項1に記載の演算処理装置において、前記レジスタおよび/またはメモリに記憶される少なくとも1語分のデータ語長は、前記加算回路の演算語長以下であることを特徴とする。 According to a second aspect of the present invention, there is provided the arithmetic processing unit according to the first aspect, wherein the data word length of at least one word stored in the register and / or memory is the arithmetic processing unit according to the first aspect. Is less than or equal to the operation word length of the adder circuit.
また、請求項3に記載の本発明は、請求項1または2に記載の演算処理装置において、前記加算回路は算術論理演算ユニットに組み込まれていることを特徴とする。 According to a third aspect of the present invention, in the arithmetic processing device according to the first or second aspect, the adder circuit is incorporated in an arithmetic logic unit.
また、請求項4に記載の本発明は、請求項1から3のいずれかに記載の演算処理装置において、前記シフト回路は、データバスの仮数部を入力することができ、外部から与えられるシフト命令によるシフト量と、データバスの指数部の値とに基づきシフト量を計算し、前記データバスの仮数部のシフト演算処理を行うことを特徴とする。 According to a fourth aspect of the present invention, in the arithmetic processing device according to any one of the first to third aspects, the shift circuit is capable of inputting a mantissa part of a data bus, and a shift given from the outside. The shift amount is calculated based on the shift amount by the instruction and the value of the exponent part of the data bus, and the shift arithmetic processing of the mantissa part of the data bus is performed.
また、請求項5に記載の本発明は、請求項1から4のいずれかに記載の演算処理装置において、前記加算回路の演算結果を出力する際に、前記第2のシフト回路によって演算結果を浮動小数点形式に変換し、固定小数点データを仮数部と指数部とに振り分ける第2のシフト回路を備えたことを特徴とする。 According to a fifth aspect of the present invention, in the arithmetic processing device according to any one of the first to fourth aspects, when the operation result of the adder circuit is output, the operation result is output by the second shift circuit. A second shift circuit is provided that converts the data into a floating-point format and distributes the fixed-point data into a mantissa part and an exponent part.
また、請求項6に記載の本発明は、請求項5に記載の演算処理装置において、前記第2のシフト回路は、最終段に設けられることを特徴とする。
本発明では、最終段にて第2のシフト回路による浮動小数点化を行うため、得られるデータは演算精度について最適化されている。
According to a sixth aspect of the present invention, in the arithmetic processing unit according to the fifth aspect, the second shift circuit is provided in a final stage.
In the present invention, since the floating point is converted by the second shift circuit in the final stage, the obtained data is optimized for the calculation accuracy.
また、請求項7に記載の本発明は、請求項1から4のいずれかに記載の演算処理装置において、演算結果を出力する際に、固定小数点方式での出力も可能であり、その際には、前記乗算回路の入力の一方または両方の指数部にシフト無しの場合の値が設定されることを特徴とする。 Further, according to the seventh aspect of the present invention, in the arithmetic processing device according to any one of the first to fourth aspects, when outputting the operation result, it is possible to output in a fixed-point method. Is characterized in that a value in the case where there is no shift is set in one or both exponents of the input of the multiplication circuit.
また、請求項8に記載の本発明は、請求項1から7のいずれかに記載の演算処理装置において、演算結果を再び、前記乗算回路またはシフト回路にフィードバックするパスを設けたことを特徴とする。 According to an eighth aspect of the present invention, in the arithmetic processing device according to any one of the first to seventh aspects, a path for feeding back the operation result to the multiplication circuit or the shift circuit again is provided. To do.
また、請求項9に記載の本発明は、請求項1から7のいずれかに記載の演算処理装置において、仮数部と指数部とに分けられたデータバスに接続し、該データバスを介して浮動小数点演算を行い、指数部がある決められた値のときは、固定小数点演算を行うことを特徴とする。 According to a ninth aspect of the present invention, there is provided the arithmetic processing device according to any one of the first to seventh aspects, wherein the arithmetic processing unit is connected to a data bus divided into a mantissa part and an exponent part, via the data bus. Floating point arithmetic is performed, and when the exponent part has a predetermined value, fixed point arithmetic is performed.
また、請求項10に記載の本発明は、請求項9に記載の演算処理装置において、前記データバスを介して、仮数部および指数部が接続されるメモリおよび/またはレジスタは、指数部の値を記憶する部分が拡張するだけで、前記加算回路と同じ浮動小数点演算空間を持つことを特徴とする。 According to a tenth aspect of the present invention, in the arithmetic processing unit according to the ninth aspect, the memory and / or the register to which the mantissa part and the exponent part are connected via the data bus is the value of the exponent part. It is characterized by having the same floating-point arithmetic space as that of the adder circuit only by expanding the part for storing.
また、請求項11に記載の本発明は、請求項9に記載の演算処理装置において、前記データバスの仮数部には、固定小数点方式の装置がそのまま接続可能であることを特徴とする。
The invention according to
また、請求項12に記載の本発明は、請求項5または6に記載の演算処理装置において、浮動小数点方式から固定小数点方式への変換、固定小数点方式から浮動小数点方式への変換は、外部命令によらず自動的に行うことを特徴とする。 According to a twelfth aspect of the present invention, in the arithmetic processing unit according to the fifth or sixth aspect, the conversion from the floating-point method to the fixed-point method and the conversion from the fixed-point method to the floating-point method are performed by an external instruction. It is characterized in that it is automatically performed regardless of the above.
本発明では、浮動小数点方式から固定小数点方式への変換、固定小数点方式から浮動小数点方式への変換は、自動的に行われるため、本発明をデジタルシグナルプロセッサとして実施した場合、ユーザはこれらの変換のための命令を与える必要がなく、演算処理ステップ数を増加させない。 In the present invention, the conversion from the floating point system to the fixed point system and the conversion from the fixed point system to the floating point system are automatically performed. Therefore, when the present invention is implemented as a digital signal processor, the user performs these conversions. It is not necessary to give an instruction for, and the number of operation processing steps is not increased.
本発明によれば、固定小数点型演算処理装置をもとに、演算処理ステップ数および回路規模をほとんど増加させずに、従来の固定小数点方式と高い互換性を保ちながら浮動小数点型演算処理装置に近い処理を行わせることが可能となる。 According to the present invention, based on a fixed-point type arithmetic processing unit, a floating-point type arithmetic processing unit is maintained while maintaining a high compatibility with the conventional fixed-point method without substantially increasing the number of arithmetic processing steps and the circuit scale. Close processing can be performed.
以下、本発明の実施の形態について図面を参照して説明する。
[実施形態1]
図6は、本発明の実施形態1における演算処理装置で、固定小数点用乗算回路、シフト回路、加算回路、加算結果を一時記憶するレジスタまたはメモリで構成される。
Embodiments of the present invention will be described below with reference to the drawings.
[Embodiment 1]
FIG. 6 shows an arithmetic processing unit according to the first embodiment of the present invention, which includes a fixed-point multiplier circuit, a shift circuit, an adder circuit, and a register or memory that temporarily stores the addition result.
図6では、X×Yの乗算回路において、X、Yともに仮数部データが入力される。ここでの仮数部とは、2の補数の場合は符号ビットも含めて仮数部と呼んでいる。入力X,Yに特に違いはなく、どちらがXでもYでもかまわない。また、仮数部の小数点の位置は、どの位置にあってもかまわない。固定小数点方式として使用する場合は、固定小数点データが仮数部に対応する。一方、指数部は仮数部をシフトする範囲を示している。 In FIG. 6, mantissa data is input to both X and Y in an X × Y multiplier circuit. The mantissa part here is called a mantissa part including a sign bit in the case of 2's complement. There is no particular difference between the inputs X and Y, and either X or Y may be used. Further, the position of the decimal point in the mantissa may be in any position. When used as a fixed-point method, fixed-point data corresponds to the mantissa part. On the other hand, the exponent part indicates the range in which the mantissa part is shifted.
指数部に与えられているビット数をnとすると、2n通りのシフト量のうち、シフト無しを1つとすると、シフトできる範囲は2n−1で表すことができる。たとえば、n=4のとき、シフト量は、24−1=15となる。指数部のシフト量のつけ方に関しては、特に規定はなく、たとえば、n=4のとき0000を最大値、1111を最小値と表すことも、逆に1111を最大値、0000を最小値と表すこともできる。また2の補数表現のように0111が最大値、1000を最小値としてもかまわない。いずれにしても、nビットで表される2n通りのシフト量が表されればよい。シフト方向も、上位ビット方向、下位ビット方向とも特に規定はなく、上位方向あるいは、下位方向のみシフトでもかまわないし、上下両方向シフトでもかまわない。 Assuming that the number of bits given to the exponent part is n, out of 2 n shift amounts, assuming no shift is one, the shiftable range can be expressed as 2 n −1. For example, when n = 4, the shift amount is 2 4 −1 = 15. There is no particular restriction on how to set the shift amount of the exponent part. For example, when n = 4, 0000 is represented as the maximum value, 1111 is represented as the minimum value, and conversely, 1111 is represented as the maximum value and 0000 is represented as the minimum value. You can also Further, as in the two's complement expression, 0111 may be the maximum value and 1000 may be the minimum value. In any case, it is only necessary to represent 2 n shift amounts represented by n bits. The shift direction is not particularly specified for the upper bit direction and the lower bit direction, and only the upper direction or the lower direction may be shifted, or both the upper and lower directions may be shifted.
乗算回路においては、仮数部のみの乗算であるために通常の固定小数点演算方式と同じ回路が使用することができる。2の補数表現における負のフルスケール同士の乗算および、倍精度演算を使用することを考えた場合はXがxビット,Yがyビットのとき出力Zは、x+yビットであることが望ましい。たとえば、Xが16ビット、Yが24ビットのときZは40ビットとなる。 In the multiplication circuit, since only multiplication of the mantissa part is performed, the same circuit as a normal fixed point arithmetic method can be used. Considering the use of negative full-scale multiplication and double-precision arithmetic in 2's complement representation, when X is x bits and Y is y bits, the output Z is preferably x + y bits. For example, when X is 16 bits and Y is 24 bits, Z is 40 bits.
シフト回路は、乗算回路のフルスケール同士の乗算に対してもオーバーフローすることなく対応しており、2の補数演算に使用される場合は、下位ビットシフトの際には符号拡張を行う構成になっている。
また、シフト回路は、シフト演算命令によって与えられたシフト量と、Xに入力されるデータの指数部の値より計算された値をシフト量とする。たとえば、指数部の値から、gビット上位シフトする必要があり、シフト演算命令から、hビット下位シフトする必要があったとし、上位ビットシフトを+、下位ビットシフトを−と考えた場合、シフト量sは、s=g−hとなり、上位ビットシフトを−、下位ビットシフトを+と考えた場合、シフト量sは、s=−g+hとなる。
The shift circuit supports multiplication of the full scales of the multiplication circuit without overflow, and when used for two's complement arithmetic, the shift circuit is configured to perform sign extension when performing lower bit shift. ing.
The shift circuit uses the shift amount given by the shift operation instruction and the value calculated from the value of the exponent part of the data input to X as the shift amount. For example, if it is necessary to shift upper by g bits from the value of the exponent part, and need to shift lower by h bits from the shift operation instruction, and assuming that the upper bit shift is + and the lower bit shift is-, the shift is performed. The amount s is s = g−h, and when the upper bit shift is considered as − and the lower bit shift is considered as +, the shift amount s is s = −g + h.
このように、最終的なシフト量は簡単な加減算回路のみで構成することができる。さらに、2の補数表現を使用し、たとえば、上位ビット方向のシフトを+、下位ビット方向のシフトを−、シフトしないときを0とすると、加算回路のみでシフト量を求めることが可能となり、演算規模を小さく、演算処理時間も短縮することができる。 As described above, the final shift amount can be constituted by only a simple addition / subtraction circuit. Further, using the 2's complement expression, for example, if the shift in the upper bit direction is +, the shift in the lower bit direction is-, and the time when no shift is 0, the shift amount can be obtained only by the adder circuit. The scale can be reduced and the processing time can be shortened.
図6においては、パイプラインレジスタは省略しているが、パイプラインレジスタをk段通ることにより、乗算回路の入力Yからシフト回路に到達するまでに、kサイクル遅れるような場合は、指数部のデータをレジスタ等でシフト量の計算をkサイクル遅らせればよい。 In FIG. 6, the pipeline register is omitted. However, in the case where k cycles are delayed from the input Y of the multiplication circuit to the shift circuit by passing through k stages of the pipeline register, What is necessary is just to delay the calculation of the shift amount by k cycles with a register or the like.
また、図6では、乗算回路Xに入力されるデータは、主に固定小数点データである場合を想定している。それは、乗算回路の一方の入力はフィルタ係数などの決められた係数であることが多く、固定小数点演算でも十分な精度が得られるためである。そのため、浮動小数点データのためのシフト演算と、シフト量を変えることによるレベル変化を、1つのシフト回路で同時に処理できる。さらに、浮動小数点データのための演算処理は、自動的に行われるため、DSPとして使用した場合も、ユーザは、そのための命令を書く必要がなく、演算処理ステップは増加しないことを特徴としている。 In FIG. 6, it is assumed that data input to the multiplication circuit X is mainly fixed-point data. This is because one input of the multiplication circuit is often a determined coefficient such as a filter coefficient, and sufficient precision can be obtained even in fixed-point arithmetic. Therefore, a shift operation for floating point data and a level change caused by changing the shift amount can be simultaneously processed by one shift circuit. Further, since arithmetic processing for floating point data is automatically performed, even when used as a DSP, the user does not need to write an instruction for that purpose, and the arithmetic processing step does not increase.
図6の回路を、DSPとして使用する場合は、入力Xにも、浮動小数点化された演算データが入力されることが考えられる。その場合も、そのデータの指数部の値をレジスタで保持させておき、通常のシフト演算処理命令を使用すれば良い。
さらに、従来型の固定小数点演算を行いたい場合は、指数部にシフト無しの場合の値を設定しておけば良い。このように、本実施形態のシフト回路においては、もともと固定小数点方式で使用していたシフト回路に、追加分のシフト部分と多少の演算装置(加減算回路/加算回路)を加える。
When the circuit of FIG. 6 is used as a DSP, it is conceivable that arithmetic data converted to a floating point is also input to the input X. Even in this case, the value of the exponent part of the data may be held in a register and a normal shift operation processing instruction may be used.
Furthermore, if it is desired to perform a conventional fixed-point operation, a value in the case where there is no shift may be set in the exponent part. As described above, in the shift circuit of this embodiment, an additional shift portion and some arithmetic units (addition / subtraction circuit / addition circuit) are added to the shift circuit originally used in the fixed-point method.
加算回路は、加算結果を累積演算していく構成のため、上位ビットにオーバーフロー対策用のマージン回路が、下位ビットにアンダーフロー対策用のマージン回路がこれらのどちらか一方、あるいは、両方付いているのが普通である。 The adder circuit is configured to cumulatively calculate the addition result, so the upper bit has a margin circuit for countermeasure against overflow, and the lower bit has one or both of them for countermeasure against underflow. Is normal.
加算回路の入力データの語長をpビット、マージンの語長をqビットとすると、演算空間はp+qビットで表される。本発明の場合は、指数部をnビットとし、仮数部をmビット、マージンの語長をrビットとすると、演算空間はm+(2n−1)+rで表される。なお、r=0でもかまわない。また、必ずしも演算語長をm+(2n−1)+rだけ確保する必要はないが、浮動小数点の演算精度は、この固定小数点方式の加算回路の演算精度で決まり、
p+q < m+(2n−1)+r
で本発明の効果が表れる。
If the word length of the input data of the adder circuit is p bits and the word length of the margin is q bits, the operation space is represented by p + q bits. In the case of the present invention, when the exponent part is n bits, the mantissa part is m bits, and the margin word length is r bits, the operation space is represented by m + (2 n −1) + r. Note that r = 0 may be used. Further, it is not always necessary to secure the operation word length by m + (2 n −1) + r, but the floating-point calculation accuracy is determined by the calculation accuracy of the fixed-point type addition circuit,
p + q <m + (2 n -1) + r
Thus, the effect of the present invention appears.
たとえば、仮数部m=24ビット、指数部n=4ビット、マージン語長r=5ビットとすると、演算空間は、
m+(2n−1)+r = 24+(24−1)+5 = 44ビット
となる。入力語長p=24ビットとすると、
(m+(2n−1)+r)−p = 44−24 = 20ビット
となる。通常、演算語長24ビットで20ビットものマージン語長をとることはない。
For example, if the mantissa part m = 24 bits, the exponent part n = 4 bits, and the margin word length r = 5 bits, the operation space is
m + (2 n −1) + r = 24 + (2 4 −1) + 5 = 44 bits. If the input word length p = 24 bits,
(M + (2 n −1) + r) −p = 44−24 = 20 bits. Normally, a margin word length of 20 bits is not taken with an operation word length of 24 bits.
図6において、単純な積和演算を行う場合は、同図に示す加算回路でよいが、より複雑な演算を行うような場合は、加算回路をALU(算術論理演算ユニット)に置き換えればよい。ALUには、加算回路が含まれている。ALUの演算時間の時間的制約は加算回路であり、その他の算術回路、論理演算回路は大きな時間的制約にならない。そこで、ALUの設計を行う際は、加算回路のパスを優先させるようにすればよい。また、論理演算回路の性格上、論理演算の場合は、仮数部程度の語長で十分な場合が多い。以上のことから、これまで述べてきた加算回路をALUに置き換えることは容易である。 In FIG. 6, when a simple sum-of-products operation is performed, the addition circuit shown in FIG. 6 may be used. However, when a more complicated operation is performed, the addition circuit may be replaced with an ALU (arithmetic logic operation unit). The ALU includes an adder circuit. The time constraint on the operation time of the ALU is an adder circuit, and other arithmetic circuits and logic operation circuits do not have a large time constraint. Therefore, when designing the ALU, the path of the adder circuit may be given priority. In addition, due to the nature of the logical operation circuit, in the case of logical operation, a word length of about the mantissa is often sufficient. From the above, it is easy to replace the adder circuit described so far with ALU.
加算結果、あるいはALUの演算結果を一時的に記憶するためのレジスタの数あるいはメモリ容量は用途に応じて決められるが、最低1つは、加算回路、もしくはALUと同等のデータ語長が必要である。このようにすることで、積和演算結果を累算するときは、常に浮動小数点と同等の演算精度が保たれるため、加算のたびにシフト演算処理を行う等の余分な演算処理は、一切必要としない。
従来の固定小数点演算方式と比較して加算回路あるいはALU、レジスタもしくはメモリは、増えた語長分の増加で済む。
The number of registers or the memory capacity for temporarily storing the addition result or the operation result of the ALU is determined according to the application, but at least one data word length equivalent to that of the addition circuit or ALU is required. is there. In this way, when accumulating the product-sum operation result, the operation accuracy equivalent to that of the floating point is always maintained, so there is no extra operation processing such as performing shift operation processing at every addition. do not need.
Compared with the conventional fixed-point arithmetic method, the adder circuit, ALU, register or memory can be increased by the increased word length.
[実施形態2]
図7は、本発明の実施形態2における演算処理装置で、浮動小数点データ同士の乗算を多く行う場合の実施例である。シフト回路のシフト量を制御する加減算回路または加算回路に、乗算回路Xに入力される指数部を追加したところのみが異なっている。
[Embodiment 2]
FIG. 7 shows an example in which the arithmetic processing apparatus according to the second embodiment of the present invention performs many multiplications of floating point data. The only difference is that an exponent part input to the multiplication circuit X is added to the addition / subtraction circuit or the addition circuit for controlling the shift amount of the shift circuit.
[実施形態3]
図8は、本発明の実施形態3における演算処理装置で、図6に示す実施形態1の演算処理装置をさらに発展させて、シフト回路の入力側にセレクタを設け乗算結果以外のデータ(浮動小数点データ)の入力を可能としている。
セレクタが、SH(乗算回路の出力Z)を選択した場合は、指数部データ1が選ばれ、BHを選択した場合は、指数部データ2が選ばれる。この選ばれた指数データとシフト回路に要求されたシフト量と加減算あるいは加算を行ってシフト量を決定する。
[Embodiment 3]
FIG. 8 shows an arithmetic processing apparatus according to the third embodiment of the present invention. The arithmetic processing apparatus according to the first embodiment shown in FIG. 6 is further developed. A selector is provided on the input side of the shift circuit to provide data other than the multiplication result (floating point). Data) can be entered.
When the selector selects SH (multiplier circuit output Z),
[実施形態4]
図9は、本発明の実施形態4における演算処理装置で、図7に示す実施形態2の演算処理装置をさらに発展させて、同図に示すようにシフト回路の入力側にセレクタを設け乗算結果以外のデータ(浮動小数点データ)の入力を可能としている。
[Embodiment 4]
FIG. 9 shows an arithmetic processing unit according to the fourth embodiment of the present invention, which is a further development of the arithmetic processing unit according to the second embodiment shown in FIG. 7, and a selector is provided on the input side of the shift circuit as shown in FIG. Other data (floating point data) can be input.
[実施形態5]
図10は、本発明の実施形態5を示している。これは、本発明の実施形態1から4の演算処理装置(図6〜図9)において、浮動小数点データ形式から固定小数点データ形式に変換した後、再び、浮動小数点データ形式に戻す、演算処理装置を表している。
[Embodiment 5]
FIG. 10 shows
レジスタまたはメモリからの出力データは、演算回路1に入力される。演算回路1は、複数のレジスタもしくは、メモリから1つのデータを選択するセレクタや、オーバーフローしたデータをフルスケールにクリップさせる回路、もしくは、その他の処理を行う回路である。レジスタが1つの場合は、演算回路1はなくてもかまわない。
演算回路1を通った回路は、シフト回路2を通して、固定小数点データ形式から浮動小数点データ形式に変換される。浮動小数点データ形式への変換は、第2のシフト回路に入力される最終データの入力レベルに応じて常に、決まったシフト処理を行い、その際のシフト量を基に指数部データを生成する。
Output data from the register or memory is input to the
The circuit that has passed through the
積和演算を終え、オーバーフロー処理等の最終演算結果を基に、すなわち最終データの入力レベルに応じて、シフト処理が行われるため、シフト量を記憶しておいて、それをもとに浮動小数点化する方式に比べて、演算精度について最適化がはかられる。また、上記のように単純に演算データのレベルを見てシフト量を決定するため回路構成も複雑にはならない。また、第2のシフト回路(シフト回路2)は、出力結果をもとに浮動小数点に変換する上記シフト機能を備えていればよいので、指数部の語長をnビットとした場合、2n−1ビットシフトができれば良く、仮数部の固定小数点の位置によっては、ビットシフトの方向は一方向だけで済み、回路構成も簡単になる。これら一連の処理は、自動的に行わせることができるため、DSPとして使用した場合も、ユーザは、そのための命令を書く必要がなく、演算処理ステップは増加しないことを特徴としている。 After the multiply-and-accumulate operation is completed, shift processing is performed based on the final operation result such as overflow processing, that is, according to the input level of the final data. Compared to the method of making it more efficient, the calculation accuracy can be optimized. Further, since the shift amount is determined simply by looking at the level of the operation data as described above, the circuit configuration is not complicated. Further, the second shift circuit (shift circuit 2) only needs to have the shift function for converting to a floating point based on the output result. Therefore, when the word length of the exponent part is n bits, 2 n It is only necessary to be able to perform −1 bit shift, and depending on the position of the fixed point of the mantissa, only one direction of bit shift is required, and the circuit configuration is simplified. Since a series of these processes can be automatically performed, even when used as a DSP, the user does not need to write an instruction for that purpose, and the operation processing steps are not increased.
[実施形態6]
図11は、本発明の実施形態6を示している。同一の回路を用いて積和演算を繰り返し行う場合は、演算結果を再び乗算回路の入力側にフィードバックする必要がある。そのため、シフト回路2によって浮動小数点化された演算結果の仮数部(仮数部データ2)はセレクタAのY1に接続される。一方、指数部2は、シフト量演算回路に接続され、セレクタAでY1が選択された場合は、指数部データ2が選択され、セレクタAでY0が選択された場合は指数部データ1が選択されるようにする。または、選択されない場合の指数部の値は、シフトしない値になるようにして、シフト回路の通常のシフト量と指数部データ1、指数部データ2を一度に加減算あるいは加算のみを行うようにしてもよい。いずれにしても、図6に示す実施形態1で行われる処理とほとんど変わらない。
[Embodiment 6]
FIG. 11 shows Embodiment 6 of the present invention. When the product-sum operation is repeatedly performed using the same circuit, it is necessary to feed back the operation result to the input side of the multiplication circuit again. Therefore, the mantissa part (mantissa part data 2) of the calculation result converted to a floating point by the
本実施形態においては、フィードバッグ中のデータもすべて、浮動小数点データとして取り扱うことができるため、微小レベルのデータを繰り返し乗算しても加算回路部分の演算精度を保つことができ、図3に示す従来の固定小数点演算方式と比較して、高い演算精度を保つことができる。さらに、従来の固定小数点方式と同等の演算を行いたい場合は、シフト回路2においてシフトさせないように制御するか、もしくは演算回路1より固定小数点のデータを出力させ、セレクタにより、固定小数点データか浮動小数点データの仮数部かを選択できるようにしておけばよい。いずれの場合も、指数部は、シフトしない時の値に設定しておけばよい。
In the present embodiment, all the data in the feedback can be handled as floating point data, so that the calculation accuracy of the adder circuit portion can be maintained even if data of a minute level is repeatedly multiplied, as shown in FIG. Compared with the conventional fixed point arithmetic method, high arithmetic accuracy can be maintained. Further, when it is desired to perform an operation equivalent to the conventional fixed-point method, the
前にも述べたように、指数部データの決め方に特には決まりがないが、たとえば、以下の様にするとシフト量演算回路のシフト量演算は簡単になる。指数部を4ビットとしたときに、0000を20すなわちシフト無し、0001を2−1、…、1111を2−15とすると、シフト回路のシフト処理は、レベルに応じて、シフトしない場合は0000、1ビット左(上位ビット)シフトは0001、…、15ビット左シフトは1111が対応する。一方、シフト回路のほうで、左シフトを−、右シフトを+としておくことにより、シフト量演算回路でシフト量を決定する場合、ただの加算回路で構成できる。 As described above, there is no particular rule on how to determine the exponent data, but, for example, the shift amount calculation of the shift amount calculation circuit is simplified as follows. When the exponent and 4 bits, 2 0 i.e. without shifting the 0000, 0001 and 2 -1, ..., when 1111 2 -15, shift processing of the shift circuit according to the level, if not shifted 0000 corresponds to 1 bit left (upper bit) shift, and 1111 corresponds to 15 bit left shift. On the other hand, when the shift amount is determined by the shift amount calculation circuit by setting the left shift to-and the right shift to + in the shift circuit, the shift circuit can be configured with a simple addition circuit.
仮数部のデータ語長を、固定小数点データ形式と同等にとったとしても、増加分は指数部のデータ語長分だけであり、ほとんど回路規模に影響を与えない。たとえば、仮数部を24ビット、指数部を4ビットとし、ビット数の増加が回路規模にそのまま反映するとすると、増加分は(24+4)/24=28/24=1.17倍程度である。仮数部と指数部を足して24ビットあるいは、それよりも少なくすることも可能である。そのようにすれば、浮動小数点化による回路規模の増加を抑えることができる。仮数部を20ビット、指数部を4ビットとした場合、瞬時データとしては、演算精度がおちるが、演算空間は35bitとれるため、演算処理内容によっては、24ビット固定小数点演算よりも高い演算精度が得られる。 Even if the data word length of the mantissa is the same as that of the fixed-point data format, the increase is only the data word length of the exponent, and the circuit scale is hardly affected. For example, if the mantissa part is 24 bits and the exponent part is 4 bits, and the increase in the number of bits is directly reflected in the circuit scale, the increase is about (24 + 4) /24=28/24=1.17 times. It is also possible to add the mantissa part and the exponent part to 24 bits or less. By doing so, it is possible to suppress an increase in circuit scale due to floating-point conversion. When the mantissa part is 20 bits and the exponent part is 4 bits, the calculation accuracy of the instantaneous data is reduced, but the calculation space is 35 bits. Therefore, depending on the content of the calculation process, the calculation accuracy may be higher than that of the 24-bit fixed-point calculation. can get.
図11は、点線部に図6に示す実施形態と同様の回路構成を使用しているが、これを図7、図8、図9に示す構成に置き換えてもかまわない。なお、演算処理方法に違いはないため、説明は省略する。
また、図11では、次回路に固定小数点データ2、浮動小数点データ2(仮数部2,指数部2)が接続されているが、仕様により両方でも、どちらか一方でもかまわない。
11 uses the same circuit configuration as that of the embodiment shown in FIG. 6 in the dotted line portion, but this may be replaced with the configuration shown in FIGS. Since there is no difference in the arithmetic processing method, the description is omitted.
In FIG. 11,
[実施形態7]
図12は、本発明の実施形態7を示している。上記実施形態6では積和演算結果を乗算回路またはシフト回路にフィードバックさせている。図12では、演算処理装置の入力および出力がデータバスにつながっている場合を示している。図12は、上記の図11のフィードバック部分がデータバスに置き換わっただけで、演算処理部の動作自体に違いはない。図12において演算回路11、演算回路12は、複数のレジスタもしくは、メモリから1つのデータを選択するセレクタや、オーバーフローしたデータをフルスケールにクリップさせる回路、固定小数点または浮動小数点選択回路、もしくは、その他の処理を行う回路である。
[Embodiment 7]
FIG. 12 shows
データバスを介して、ROM、RAM、各種演算回路、入出力インタフェースが接続されている。これは、一般的にDSP(デジタルシグナルプロセッサ)と呼ばれている構成である。なお、DSPを構成するために、図11で示されている、セレクタA、セレクタB、その他データバスに接続されている装置がすべて必要というわけではない。また、すべての装置にデータバスがつながる必要もない。 A ROM, a RAM, various arithmetic circuits, and an input / output interface are connected via a data bus. This is a configuration generally called a DSP (digital signal processor). Note that not all the devices connected to the selector A, selector B, and other data buses shown in FIG. 11 are required to configure the DSP. Further, it is not necessary to connect a data bus to all devices.
前述の実施形態6でも説明したように、本実施形態では、指数部をシフトしない場合の値にすれば、固定小数点方式として扱うことができる。したがって、データバスに接続する装置は、用途に応じて簡単に接続が可能で、特に意識をする必要がない。図12は、図5に示す従来の演算処理装置と同等の機能を有することになる。 As described in the sixth embodiment, in this embodiment, if the exponent is not shifted, it can be handled as a fixed point system. Therefore, the device connected to the data bus can be easily connected according to the application and does not need to be particularly conscious. FIG. 12 has the same function as the conventional arithmetic processing unit shown in FIG.
たとえば、メモリ1を固定小数点ROMとして使用した場合は、仮数部のみを接続すればよく、指数部にはシフト無しの情報を与える。メモリ2を浮動小数点RAMとして使用する場合は、仮数部と指数部をそのまま接続すればよい、データバスを介しても仮数部と指数部を接続すれば、外部回路も浮動小数点と同等の演算精度を得ることができる。この点が、従来の固定小数点演算方式と大きく違う点である。特に、RAM,ROM,レジスタなどの記憶装置は、指数部の語長を確保するだけで、特に新たな制御回路を必要としない。
なお、図12の演算処理装置は図8をもとにしているが、この部分が図6、7、9に示す形態をもとに構成してもよい。
For example, when the
12 is based on FIG. 8, this part may be configured based on the form shown in FIGS.
以上、本発明の各実施形態について説明したが、本発明によれば、固定小数点型演算処理装置をもとにしながら、演算処理ステップ数および回路規模をほとんど増加させずに、従来の固定小数点方式と高い互換性を保ちながら浮動小数点型演算処理装置に近い処理を行わせることが可能となる。 Although the embodiments of the present invention have been described above, according to the present invention, the conventional fixed-point method is based on the fixed-point type arithmetic processing apparatus, while hardly increasing the number of arithmetic processing steps and the circuit scale. It is possible to perform processing close to that of a floating-point type arithmetic processing unit while maintaining high compatibility.
[実施例]
ここで、本発明の具体的な実施例について、詳細に説明する。図13は、図12に示す構成を具体的に表したもので、実施例としては、図8、図10に示す形態をもとにしている。また、パイプラインレジスタであるPレジスタ1,Pレジスタ2,Pレジスタ3,Pレジスタ4,Pレジスタ5,Pレジスタ6,Pレジスタ7を挿入した構成例となっている。パイプラインレジスタは、必要に応じてどこにいれても、また、いれなくてもかまわない。
図13では、24ビット(bit)の仮数部と4ビット(bit)の指数部を例に挙げているが、仮数部および指数部のビット数に規定はない。
[Example]
Here, specific examples of the present invention will be described in detail. FIG. 13 specifically shows the configuration shown in FIG. 12, and the embodiment is based on the configuration shown in FIGS. Also, the configuration example is such that
In FIG. 13, a 24-bit (bit) mantissa part and a 4-bit (bit) exponent part are taken as examples, but there are no restrictions on the number of bits of the mantissa part and the exponent part.
図14は、図13で使用する仮数部と指数部のビットフィールドを示す。図14では、仮数部の左側を上位ビット、右側を下位ビットとしている。また、最上位ビット(MSB)の次に小数点を置いている。また例では、2の補数表現を用いているために、MSBが符号フラグとなる(0:+,1:−)。
したがって、2進数で表すと、0は、0000 0000 0000 0000 0000 0000(16進数で000000h、hは16進数表記を示す)、最小値は1000 0000 0000 0000 0000 0000(16進数で800000h)最大値は0111 1111 1111 1111 1111 1111(16進数で7FFFFFh)となる。(10進数で表すと−1.0〜0〜約0.999999を表す。)
固定小数点の位置、上位ビットの向きに規定はないが、図14が最も一般的に使用されている。また、2の補数表現を用いなくても特にかまわない。
FIG. 14 shows the mantissa part and exponent part bit fields used in FIG. In FIG. 14, the left side of the mantissa is the upper bit and the right side is the lower bit. A decimal point is placed after the most significant bit (MSB). In the example, since 2's complement expression is used, MSB is a sign flag (0: +, 1 :-).
Therefore, when expressed in binary, 0 is 0000 0000 0000 0000 0000 0000 (000000h in hexadecimal, h indicates hexadecimal notation), minimum value is 1000 0000 0000 0000 0000 0000 (hexadecimal number 800,000h), and maximum value is 0111 1111 1111 1111 1111 1111 (7FFFFFh in hexadecimal). (Decimal number represents -1.0 to 0 to about 0.99999.)
Although there are no restrictions on the position of the fixed point and the direction of the upper bits, FIG. 14 is most commonly used. Further, it is not particularly necessary to use the two's complement expression.
図15は、4ビットの指数部の値に対して、とりうる指数値の例を例1〜例6に示している。例1〜例6に示しているように、最低1つは例えば例1の場合の20=0000すなわちシフトなしであることが望ましい。図13では例1の割り当てを使用している。この場合、指数部では、0000の時が一番大きく、その時はシフト無しということになる。これを実際に固定小数点形式に展開したものが図16で、データバスの指数部によって表すことができる演算空間を示している。なお、同図においてFは、符号フラグSと同じ値をとり、−はデータが存在しないことを表している。同図からも、24.4(仮数部語長.指数部語長)方式では、24+(24−1)=39ビット相当の演算空間を持っていることがわかる。 FIG. 15 shows examples of exponent values that can be taken for the value of the 4-bit exponent part in Examples 1 to 6. As shown in Examples 1 to 6, it is desirable that at least one is, for example, 2 0 = 0000 in Example 1 or no shift. In FIG. 13, the assignment of Example 1 is used. In this case, in the exponent part, when 0000 is the largest, there is no shift at that time. FIG. 16 shows an operation space that can be represented by the exponent part of the data bus. In the figure, F takes the same value as the sign flag S, and-indicates that no data exists. It can also be seen from the figure that the 24.4 (mantissa part word length.exponent part word length) system has an operation space equivalent to 24+ (2 4 −1) = 39 bits.
図17は、乗算回路の入出力フィールドを表しており、X側を16ビット、Y側を24ビットにした場合の例を表している。出力結果は、負のフルスケール(10進数で−1)と負のフルスケール(10進数で−1)を掛けた場合、桁上がりが生じるため(Z=1)、MSB側を1ビット拡張する必要がある(SS***……)。この拡張したビットもシフト回路に入力することで、正しい演算が行われる。固定小数点演算方式では、出力Zを24ビットに丸めてしまう場合があるが、本実施例では、演算精度を最大限にいかすために、すべて出力させることが望ましい。 FIG. 17 shows the input / output fields of the multiplication circuit, and shows an example in which the X side is 16 bits and the Y side is 24 bits. When the output result is multiplied by negative full scale (decimal -1) and negative full scale (decimal -1), a carry occurs (Z = 1), so the MSB side is expanded by 1 bit. There is a need (SS *** ). The expanded bit is also input to the shift circuit, so that a correct operation is performed. In the fixed-point arithmetic method, the output Z may be rounded to 24 bits, but in this embodiment, it is desirable to output all in order to maximize the arithmetic accuracy.
図13のシフト回路は、演算命令による左右15ビットシフト可能なシフト回路に、指数部によるシフト回路が追加されたもので、この形態におけるシフトデータによるシフト量を図18に示す。なお、右シフトの場合を2の補数表現で+、左シフトを−で表している。符号のつけ方は逆でもかまわない。図18からわかるように、本実施例のシフト回路は、右30ビット、左15ビットシフト可能なシフト回路である。 The shift circuit of FIG. 13 is obtained by adding a shift circuit by an exponent part to a shift circuit capable of shifting left and right by 15 bits by an arithmetic instruction. FIG. 18 shows the shift amount by shift data in this embodiment. The right shift is represented by + in 2's complement expression, and the left shift is represented by-. The sign can be reversed. As can be seen from FIG. 18, the shift circuit of this embodiment is a shift circuit capable of shifting 30 bits to the right and 15 bits to the left.
図19は、図13におけるALU内部の加算回路部分のビットフィールドを示している。負のフルスケール同士の乗算のための拡張ビット1ビットを含む40ビットに、上位空間側に3ビット(Eと表示)、下位空間側に1ビット(Eと表示)のマージンをもたせて44ビットとしている。マージンビットの取り方は、要求される仕様によってどのようにとってもかまわない。 FIG. 19 shows a bit field of the adder circuit portion in the ALU in FIG. 44 bits with a margin of 3 bits (indicated as E) on the upper space side and 1 bit (indicated as E) on the lower space side to 40 bits including 1 extension bit for multiplication between negative full scales It is said. The margin bit can be taken in any manner depending on the required specifications.
図13のALUの先には、同じビットフィールドのAレジスタが4つ接続され、セレクタ4、セレクタ5により一つが選択される。演算回路1は、セレクタ5を通過したデータのフルスケール判定等の処理を行った後、浮動小数点化するシフト量を決める回路である。演算結果が正のフルスケールをオーバーしていた場合は、16進数表記で7FFFFFh、負のフルスケールをオーバーしていた場合は、16進数表記で800000hになる。このように常にオーバーフロー処理するかしないかは、命令コードによって選択できる様にしてもかまわない。
Four A registers having the same bit field are connected to the tip of the ALU in FIG. 13, and one is selected by the
図20は、ALU加算回路、Aレジスタのビットフィールドが、固定小数点演算出力の場合のビットフィールド、浮動小数点演算出力の場合のビットフィールドと、どのように対応しているかを示した図である。固定小数点演算出力する場合は、最上位ビットがビットフィールドの20の位置にあり、指数部はシフト無しの0000である。一方、浮動小数点演算出力は、信号レベルに応じて、左シフトが行われる。符合フラグの最下位ビットの位置が20にある場合は、ビットシフト無しのため指数部は0000となり、最下位ビットの位置が1ビット右にずれるたびに、指数部は1つずつ大きくなり、最下位ビットの位置が2−15以下になると常に指数部は1111となる。つまり、シフト回路2は、シフト無しから15ビット左シフトまでを行う。図20から24.4浮動小数点方式で表される浮動小数点データに対して39ビットの演算空間(固定小数点)が網羅されていることが明らかである。
FIG. 20 is a diagram showing how the bit field of the ALU addition circuit and the A register correspond to the bit field in the case of fixed-point arithmetic output and the bit field in the case of floating-point arithmetic output. When fixing point arithmetic output is in 2 zero position of the most significant bit is bit field, exponent is 0000 without shifting. On the other hand, the floating-point arithmetic output is left-shifted according to the signal level. If the position of the least significant bit of the sign flag is in the 2 0,
図13の回路には、乗算回路の前段、後段、セレクタ6およびバス出力回路の全段にパイプラインレジスタ(Pレジスタ1,2,3,6,7)が挿入されている。パイプラインレジスタ、およびAレジスタ1,Aレジスタ2,Aレジスタ3,Aレジスタ4は、1MCLKサイクルで動作する。
In the circuit of FIG. 13, pipeline registers (P registers 1, 2, 3, 6, and 7) are inserted in all stages of the preceding stage and the subsequent stage of the multiplication circuit, the selector 6, and the bus output circuit. The pipeline registers, A
データバス上のデータは(仮数部24ビット、指数部4ビット)、セレクタ3制御用信号S3が1のとき、セレクタ3を通って、シフト回路に行くまでに、Pレジスタ2、Pレジスタ3の2つのパイプラインレジスタを通るため2MCLKサイクル遅れることになる。S3が0のときも、DataRAMのデータは2MCLKサイクル遅れる。
そこで、指数部のデータもPレジスタ4、Pレジスタ5を使って2MCLKサイクル遅らせる。このときセレクタ11、セレクタ12の制御信号S1は、0なので、セレクタ11はSH、セレクタ12はSEが選択される。
セレクタ11経由で、データバスの値をシフト回路に入れる場合は、制御信号S1は1となり、セレクタ11はBH、セレクタ12はBEが選択される。このときはBHに入力される仮数部データにパイプラインレジスタがないため、指数部側も、パイプラインレジスタを使う必要がない。
The data on the data bus (the
Therefore, the exponent data is also delayed by 2 MCLK cycles using the
When the value of the data bus is input to the shift circuit via the
ここで、本発明による、浮動小数点演算の自動処理を具体的に説明する。
セレクタ5を通った時点のデータが、
SSSS S▲SSS S*** **** **** **** **** **** **** **** **** (44ビット)
だとすると、シフト回路2では、4ビット左シフトが行われ、仮数部は、
S*** **** **** **** **** **** (24ビット)
となり、指数部は、0100 (4ビット) となる。
このデータがバスに出力され、セレクタ3を通って乗算を行い、シフト回路の演算命令が、111111の左1ビットシフトであった場合(図18)、シフト回路のシフト動作は、111111+0100=000011から3ビット右シフトが行われる。このようにシフト量演算は、加算回路のみで行われることになる。
Here, the automatic processing of the floating point calculation according to the present invention will be specifically described.
The data at the time of passing through the
SSSS S ▲ SSS S *** **** **** **** **** **** **** **** **** (44 bits)
If so, the
S *** **** **** **** **** **** ( 24 -bit)
The exponent part is 0100 (4 bits).
When this data is output to the bus, is multiplied through the
図13では、セレクタ2のX0が選択された場合は、固定小数点データのCRAMがつながっているので、シフト操作は必要としない。セレクタ2のX1が選択された場合は、データバスの指数部を記憶するレジスタにデータを蓄え、シフト回路に演算結果が到達したときに、シフト演算命令を使ってシフト量をいれればよい。(図13のシフト量に対応。)セレクタ2のデータバス側(X1)を頻繁に使用するようであれば、乗算入力のY側と同様な回路を設けてもよい。図13には、RAM、レジスタが仮数部、指数部につながっているが、こうすることにより、RAM、レジスタの演算空間は、39ビットになる。また、入出力インタフェース、固定小数点方式演算回路は、仮数部のみにつながっているが、データのやり取りをする際に、指数部を0000にしておけば、そのまま固定小数点演算が可能となる。
In FIG. 13, when X0 of the
Claims (12)
前記乗算回路の演算結果が入力されると、外部から与えられるシフト命令によるシフト量と前記乗算回路の入力の一方または両方の指数部の値とに基づき求められるシフト量のシフト演算処理を行うシフト回路と、
前記シフト回路の演算結果と、レジスタおよび/またはメモリに記憶された情報とが入力されると、加算処理を行うことにより、仮数部と指数部とからなる浮動小数点データを固定小数点データに変換した演算空間で固定小数点演算を行う加算回路とを備え、
前記加算回路は、前記加算処理の結果を前記レジスタおよび/またはメモリに記憶することを特徴とする演算処理装置。 When only the mantissa part of a floating-point number is input, a multiplication circuit that performs multiplication processing,
When a calculation result of the multiplication circuit is input, a shift for performing a shift calculation process of a shift amount obtained based on a shift amount by a shift instruction given from the outside and a value of one or both exponents of the input of the multiplication circuit Circuit,
When the calculation result of the shift circuit and the information stored in the register and / or memory are input, the floating point data composed of the mantissa part and the exponent part is converted into fixed point data by performing addition processing. An adder circuit that performs fixed-point arithmetic in an arithmetic space,
The arithmetic processing apparatus, wherein the addition circuit stores the result of the addition processing in the register and / or memory.
7. The arithmetic processing unit according to claim 5, wherein the conversion from the floating point system to the fixed point system and the conversion from the fixed point system to the floating point system are automatically performed regardless of an external instruction. Arithmetic processing device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004343087A JP2006155102A (en) | 2004-11-26 | 2004-11-26 | Arithmetic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004343087A JP2006155102A (en) | 2004-11-26 | 2004-11-26 | Arithmetic processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006155102A true JP2006155102A (en) | 2006-06-15 |
Family
ID=36633348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004343087A Withdrawn JP2006155102A (en) | 2004-11-26 | 2004-11-26 | Arithmetic processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006155102A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100960797B1 (en) | 2008-05-09 | 2010-06-01 | 연세대학교 산학협력단 | Reconfigurable arithmetic unit for performing fixed point operation or floating point operation based on input data type |
WO2018131059A1 (en) * | 2017-01-10 | 2018-07-19 | 株式会社日立製作所 | Neural network circuit |
WO2018139266A1 (en) * | 2017-01-30 | 2018-08-02 | 富士通株式会社 | Arithmetic processing device, information processing device, method and program |
-
2004
- 2004-11-26 JP JP2004343087A patent/JP2006155102A/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100960797B1 (en) | 2008-05-09 | 2010-06-01 | 연세대학교 산학협력단 | Reconfigurable arithmetic unit for performing fixed point operation or floating point operation based on input data type |
WO2018131059A1 (en) * | 2017-01-10 | 2018-07-19 | 株式会社日立製作所 | Neural network circuit |
JPWO2018131059A1 (en) * | 2017-01-10 | 2019-11-07 | 株式会社日立製作所 | Neural network circuit |
US11531896B2 (en) | 2017-01-10 | 2022-12-20 | Hitachi, Ltd. | Neural network circuit providing for operations with bit shifting and rounded values of weight information |
WO2018139266A1 (en) * | 2017-01-30 | 2018-08-02 | 富士通株式会社 | Arithmetic processing device, information processing device, method and program |
US11137981B2 (en) | 2017-01-30 | 2021-10-05 | Fujitsu Limited | Operation processing device, information processing device, and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639326B2 (en) | Floating-point adder circuitry | |
CN102356378B (en) | There is the digital processing engine of implicit expression mixing sign operand | |
TW318229B (en) | ||
US6115729A (en) | Floating point multiply-accumulate unit | |
US7188133B2 (en) | Floating point number storage method and floating point arithmetic device | |
JP5640081B2 (en) | Integer and multiply-add operations with saturation | |
US9904512B1 (en) | Methods and apparatus for performing floating point operations | |
WO1999066423A1 (en) | Data calculating device | |
CN116594589B (en) | Method, device and arithmetic logic unit for floating point number multiplication calculation | |
JP2006155102A (en) | Arithmetic processing unit | |
JPH07234778A (en) | Arithmetic circuit | |
US6101521A (en) | Data processing method and apparatus operable on an irrational mathematical value | |
US9959092B2 (en) | Accumulation of floating-point values | |
US9575725B1 (en) | Specialized processing block with embedded pipelined accumulator circuitry | |
JPH10503311A (en) | Galois field polynomial multiply / divide circuit and digital signal processor incorporating the same | |
JP4159565B2 (en) | Vector product-sum operation circuit | |
Hass | Synthesizing optimal fixed-point arithmetic for embedded signal processing | |
JP6497250B2 (en) | Arithmetic processing device and control method of arithmetic processing device | |
JP2002318792A (en) | Apparatus and program for data arithmetic processing | |
JPS61262925A (en) | Arithmetic circuit | |
JP3523104B2 (en) | Fixed-point multiplier / adder | |
KR100900790B1 (en) | Method and Apparatus for arithmetic of configurable processor | |
JP4177962B2 (en) | Numerical operations in data processing systems. | |
CN116756465A (en) | Computing unit, computing core, data computing method, chip and electronic device | |
JP4428778B2 (en) | Arithmetic device, arithmetic method, and computing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20070402 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080205 |