The present disclosure relates to an operation circuit, a digital filter, a transmitter, a repeater, an artificial satellite, and an operation method, which are configured or designed to perform a product-sum operation by stochastic arithmetic, and also relates to a storage medium therefor.
With an increasing demand for data communication volume, communication infrastructure facilities such as cellular systems and satellite communication systems are required to be able to transmit data at high speed. In addition, since a conventional repeater mounted on an artificial satellite performs frequency-conversion of a signal received by the artificial satellite and transmission of the result to the ground with use of an analog circuit, there has been a problem in that the repeater cannot cope with changes in a communication demand in each region after the artificial satellite is launched. To this end, digital payload type artificial satellites are attracting attention, in which a device such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA) is mounted on a repeater and a frequency of a signal to be relayed and a destination of the signal to be relayed are selected in a digital signal processing thereby to improve flexibility.
In devices which are included in repeaters and perform digital signal processing, some soft error such as inversion of a bit value in an internal circuit occurs due to radiation in outer space. For this reason, the devices which are included in repeaters and perform digital signal processing are often devices dedicated to cosmic space with enhanced radiation resistance. On the other hand, devices such as consumer FPGAs which are widely used on the ground have lower radiation resistance than the dedicated devices for cosmic space, but have higher performance and lower cost than the same. Therefore, improved performance and reduction in cost of an artificial satellite can be expected by using consumer FPGAs for devices included in repeaters to perform digital signal processing.
There is stochastic arithmetic as a technique to enhance soft error resistance when the consumer FPGAs are used in cosmic space. In the stochastic arithmetic, a numerical value is represented by a pseudo-random number sequence including 0 and 1. The stochastic computing has a characteristic that even if bits are inverted by radiation in a part of the pseudo-random number sequence, there occur only a slight error level in arithmetic. Furthermore, the stochastic arithmetic has a characteristic that a circuit configuration for addition, multiplication, or the like can be simplified. Non Patent Literature 1 (H. Ichihara, T. Sugino, S. Ishii, T. Iwagaki, and T. Inoue, “Compact and Accurate Digital Filters Based on Stochastic Computing”, in IEEE Transactions on Emerging Topics in Computing. DOI: 10.1109/TETC.2016.2608825) discloses an operation circuit using stochastic computing.
However, in the stochastic computing described in Non Patent Literature 1, a result of computing is stochastic as compared with that of binary arithmetic operation employed in a conventional operation, and therefore, an error level in operation tends to be large. Specifically, there are caused: a conversion error when a numerical value is converted into a pseudo-random number sequence; and an operation error in an operation between pseudo-random number sequences. In particular, in an operation circuit in which weighted addition units are arranged in two or more stages such as that described in Non Patent Literature 1, there has been a problem that operation errors in a plurality of operation processes are accumulated.
In order to solve the above-mentioned problems and achieve the object, the present disclosure provides an operation circuit comprising: a data converter to convert data into first data sequences that are pseudo-random number sequences; a coefficient storage to store a weighting coefficient that is a value weighted for each of the first data sequences; a coefficient converter to convert the weighting coefficient into a weighting coefficient sequence that is a pseudo-random number sequence; a plurality of first weighted adders to generate a second data sequence obtained by weighting and adding up the first data sequences with use of the first data sequences and the weighting coefficient sequences; at least one second weighted adder to generate a third data sequence obtained by weighting and adding up the second data sequences with use of the second data sequences and the weighting coefficient sequence; and a controller to select the first data sequences to be inputted to the first weighted adders such that operation error levels in the first weighted adders and the second weighted adder become smaller than a predetermined value.
Hereinafter, the operation circuit, the digital filter, the transmitter, the repeater, the artificial satellite, and the operation method according to each embodiment of the present disclosure will be described in detail with reference to the drawings.
The data conversion unit 101 converts data into a data sequence to be used in stochastic computing. The data has been quantized. Furthermore, the data conversion unit 101 outputs the data sequence to the shift register 102. The data sequence is a pseudo-random number sequence. The data sequence obtained by the conversion of the data conversion unit 101 is also referred to as a first data sequence. Regarding a method of conversion into a data sequence performed by the data conversion unit 101, for example, there is a method in which when a range of values the data can have is between 0 and 1, the data is converted into a data sequence in which probability of occurrence of 1 is the same value as that of the data. Specifically, if the value of the data is 0.5 and the length of the data sequence is 512 bits, the data is converted into a data sequence in which 256 bits out of the 512 bits, that is, 50% of the data sequence is 1, and the remaining 50% is 0. As for a method for generating the pseudo-random number sequence, a pseudo-noise (PN) code may be employed, or a pseudo-random number sequence may be generated with use of a hyper-uniform distribution sequence such as a Sobol sequence. The length of the data sequence is not particularly limited, and the longer the data sequence is set, the more reduced level of errors occurs when data is converted. However, since the longer the data sequence is set, a circuit scale for parallel processing increases, it is satisfactory as long as an appropriate length of the data sequence is selected depending on desired communication performance and circuit scale.
The shift register 102 stores a plurality of data sequences outputted by the data conversion unit 101. The total length of the data sequences stored by the shift register 102 is related to the number of taps of the digital filter 100. For example, in a case where the digital filter 100 is a digital filter with N=11 taps, it is enough for the data sequences to contain 11 pieces of data before conversion. That is, when the length of the data sequence per piece of data is denoted by S, the shift register 102 stores data sequences of which length is S×11. The shift register 102 can store as many data sequences as the taps.
The coefficient storage unit 104 stores weighting coefficients to be used by the product-sum operation unit 103 to weight and add up a plurality of data sequences. In other words, the weighting coefficients are values with which the data sequences are weighted, respectively. In the digital filter 100, the weighting coefficients can be calculated using tap coefficients. A specific example of calculating the weighting coefficients will be described later. The coefficient conversion unit 105 converts the weighting coefficients stored by the coefficient storage unit 104 into weighting coefficient sequences which are pseudo-random number sequences to be used in the stochastic computing. A method of conversion into a weighting coefficient sequence is the same as the processing in which the data conversion unit 101 converts data into a data sequence. The control unit 106 calculates the weighting coefficients. Furthermore, the control unit 106 selects a data sequence to be inputted to the product-sum operation unit 103. A detailed operation of the control unit 106 will be described later.
The product-sum operation unit 103 performs a product-sum operation using a data sequence and a weighting coefficient sequence.
Data outputted by the weighted addition unit 200-1 to the weighted addition unit 200-3 is called a data sequence b0. Data outputted by the weighted addition unit 200-2 to the weighted addition unit 200-3 is called a data sequence b1. The data sequences outputted by the weighted addition units 200-1 and 200-2 to the weighted addition unit 200-3 are also called a second data sequence. A data sequence outputted to a functional unit not illustrated in the weighted addition unit 200-3 is also called a third data sequence. The weighted addition units 200-1 to 200-3 are connected in a form of a tree structure. The shift register 102 of
Two data sequences are inputted to the weighted addition unit 200-1 from the shift register 102. Three data sequences are inputted to the weighted addition unit 200-2 from the shift register 102. One data sequence is inputted to the weighted addition unit 200-3 from each of the weighted addition unit 200-1 and the weighted addition unit 200-2. A data sequence inputted to the weighted addition unit 200-1 from the tap D2 is called a data sequence a0. A data sequence inputted to the weighted addition unit 200-1 from the tap D0 is called a data sequence a1. A data sequence inputted to the weighted addition unit 200-2 from the tap D1 is called a data sequence a2. A data sequence inputted to the weighted addition unit 200-2 from the tap D3 is called a data sequence a3. A data sequence inputted to the weighted addition unit 200-2 from the tap D4 is called a data sequence a4.
The tap coefficients of the taps D0 to D4 are called tap coefficients h0 to h4, respectively. Furthermore, in
In the present embodiment, the product-sum operation unit 103 includes three weighted addition units 200, but the number of weighted addition units included therein is not limited to three, and may be four or more. The number of weighted addition units 200 can be changed depending on the number of taps included in the shift register 102, and the number of stages in the tree can also be changed depending on the number of weighted addition units 200. In addition to the tree structure illustrated in
In the present embodiment, the number of data sequences inputted to each of the weighted addition units 200-1 and 200-3 is two, and the number of data sequences inputted to the weighted addition unit 200-2 is three. However, the number of data sequences inputted to each of the weighted addition units 200 from the shift register 102 is not limited to two or three. In other words, the numbers of data sequences inputted to the respective weighted addition units 200-1, 200-2, and 200-3 may be different from one another. Furthermore, in
A hardware configuration of the digital filter 100 will be described. The data conversion unit 101, the product-sum operation unit 103, the coefficient storage unit 104, and the coefficient conversion unit 105 are realized by a processing circuit that is an electronic circuitry configured to perform each processing step.
The processing circuitry may be dedicated hardware, or may be a control circuit which includes a memory and a CPU (central processing unit, central arithmetic device) that executes a program stored in the memory. Here, the memory corresponds to a nonvolatile or volatile semiconductor memory such as a random access memory (RAM), a read only memory (ROM), or a flash memory, a magnetic disk, an optical disk, or the like.
As illustrated in
Since a weighting coefficient of a0 is 0.8 and a weighting coefficient of a1 is 0.2, the weighting coefficient sequence s0 is a data sequence in which 8 bits out of 10 bits are set to 1. The data sequence b0 is calculated with use of the data sequence a0, the data sequence a1, and the weighting coefficient sequence s0. When an n-th bit of the weighting coefficient sequence s0 is 1, an n-th bit of the data sequence b0 has the same value as an n-th bit of the data sequence a0. On the other hand, when the n-th bit of the weighting coefficient sequence s0 is 0, the n-th bit of the data sequence b0 has the same value as the n-th bit of the data sequence a1. When the data sequences illustrated in
The number of data sequences inputted to the weighted addition unit 200-1 is two, whereas the number of data sequences inputted to the weighted addition unit 200-2 is three. Therefore, the weighting coefficient sequence s1 is represented by three different values, i.e., 0, 1, and 2. That is, the weighting coefficient sequence s1 is represented by a value corresponding to the number of data sequences inputted to the weighted addition unit 200-2. The weighting coefficient of the data sequence a2 is represented by a content ratio of 0 included in the weighting coefficient sequence s1, and 2 bits out of 10 bits of the weighting coefficient sequence s1 are 0. The weighting coefficient of the data sequence a3 is represented by a content ratio of 1 included in the weighting coefficient sequence s1, and 6 bits out of 10 bits of the weighting coefficient sequence s1 are 1. The weighting coefficient of the data sequence a4 is represented by a content ratio of 2 included in the weighting coefficient sequence s1, and 2 bits out of 10 bits of the weighting coefficient sequence s1 are 2.
The data sequence b1 is calculated using the data sequence a2, the data sequence a3, the data sequence a4, and the weighting coefficient sequence s1. When an n-th bit of the weighting coefficient sequence s1 is 0, an n-th bit of the data sequence b1 has the same value as an n-th bit of the data sequence a2. On the other hand, when the n-th bit of the weighting coefficient sequence s1 is 1, the n-th bit of the data sequence b1 has the same value as an n-th bit of the data sequence a3. Then, when the n-th bit of the weighting coefficient sequence s1 is 2, the n-th bit of the data sequence b1 has the same value as an n-th bit of the data sequence a4. When the data sequences illustrated in
For example, description is given using the product-sum operation unit 103 illustrated in
The control unit 106 calculates a weighting coefficient to be used by the weighted addition unit 200 (step S2). Regarding a calculation method of weighting coefficients, in a case of the digital filter 100, the weighting coefficients can be calculated using the tap coefficients h0 to h4 corresponding to respective taps of the shift register 102. For example, regarding the weighting coefficient for the weighted addition unit 200-1, the weighting coefficient for the data sequence a1 can be calculated as h0/(h0+h2) when the weighting coefficient calculation method described in Non Patent Literature 1 is used.
The control unit 106 evaluates an operation error in the product-sum operation unit 103 (step S3). Regarding an evaluation method of an operation error, for example, the weighting coefficients calculated in step S2 can be used. Since the stochastic computing is a binomial distribution, when a probability that 1 occurs in a data sequence is denoted by p, the variance of p is p(1−p). Therefore, the variance is maximized in a case of p=0.5. In this example, if the weighting coefficient inputted to the weighted addition unit 200 is a constant, for example, a value of 0 or more and 1 or less, the operation error level is maximized in a case where the weighting coefficient is 0.5. Therefore, when the weighting coefficient is denoted by H, the control unit 106 selects a data sequence to be inputted to the weighted addition unit 200 so that H(1−H) is minimized. In a case where the product-sum operation unit 103 is configured based on a plurality of weighted addition units 200, an operation error level in the product-sum operation as a whole can be minimized by selecting a candidate for the data sequence for which a maximum value of H(1−H) is minimized. Furthermore, the control unit 106 may determine a data sequence to be inputted to the weighted addition unit 200 such that a difference between the weighting coefficient and 0 or the weighting coefficient and 1 is minimized.
The control unit 106 repeatedly executes steps S1 to S3, and determines data sequences to be inputted to the weighted addition units 200 such that an operation error level is minimized (step S4). That is, the control unit 106 selects the first data sequences to be inputted to the plurality of first weighted addition units such that operation error levels in the plurality of first weighted addition units and the second weighted addition unit become smaller than a predetermined value. In this example, the number of times of repeated executions may be the number of times until a full search of combinations of the data sequences is completed, or may be the number of times until a sub-optimal solution can be derived with use of any optimization algorithm.
As described above, the digital filter 100 according to the present embodiment selects data sequences to be inputted to the weighted addition units 200 in the process of performing the product-sum operation in the stochastic computing, and determines the data sequences to be inputted to the weighted addition units 200 such that an operation error level in the product-sum operation is minimized. By minimizing the operation error level in the operation performed by the digital filter 100 to improve operation accuracy, it is possible to prevent transmission of erroneous data to a terminal communicating with an artificial satellite on which the digital filter 100 is mounted, and the terminal can prevent a request for retransmitting data, so that the communication performance of the artificial satellite can be improved. In addition, it is possible to use consumer FPGAs with low radiation resistance for space applications, and to improve the communication performance of a transmitter including the consumer FPGA, a repeater including the consumer FPGA, and an artificial satellite on which these components are mounted. In the present embodiment, the operation circuit has been described by using the digital filter as an example, but the operation circuit described in the present embodiment can be used for general integration operations and convolution operations. For example, by applying the operation circuit described in the present embodiment to sound processing, image processing, machine learning, and the like which perform these operations, effects such as reduction in power consumption of a device as a result of simplification of a circuit and improvement of soft error resistance can be achieved.
In the first embodiment, the method has been revealed in which when the digital filter is constituted with the stochastic computing, inputs to the weighted addition units constituting the product-sum operation are selected such that the operation error level is minimized thereby to improve the operation accuracy of the digital filter. However, the digital filter described in the first embodiment uniquely determines the inputs to the weighted addition units in a design stage thereof. In the present embodiment, a method is provided by which a function equivalent to that in the first embodiment is realized not only in the design stage but also after an operation circuit is mounted on a device such as an FPGA.
Regarding the operation error evaluation performed by the control unit 106a, the first embodiment is directed for the control unit 106 to evaluate the operation error using the value of the weighting coefficient, but the present embodiment is limited to this example, and the control unit 106a may generate test data to be inputted to the product-sum operation unit 103a and an expected value in a case of a binary arithmetic that is a product-sum operation without using the stochastic computing, and use, as an operation error, a difference between output “out” when the test data is inputted to the product-sum operation unit 103a and the expected value. The test data is included in data to be inputted to the data conversion unit 101. Furthermore, the control unit 106a may control the switches so that the operation error level is minimized, with use of the difference between the output “out” and the expected value. In other words, the switching of the switches may be controlled depending on a result of the outputs of the weighted addition units 200.
As described above, in the present embodiment, the digital filter 100a is configured to have the first switch 400 and the second switch 401 added to inputs of the weighted addition units constituting the product-sum operation, and to determine input data sequences such that the operation error level is minimized even after the circuit is mounted. Consequently, for example, even when a tap coefficient of the digital filter 100a is changed during operation, the operation error level can be re-evaluated and minimized.
The operation circuit according to the present disclosure achieves an advantageous effect that it is possible to reduce an operation error level in operation the stochastic computing.
The configurations described in the embodiment above are merely examples of the content of the present disclosure, and can each be combined with other publicly known techniques and partially omitted and/or modified without departing from the scope of the present disclosure.
This application is a continuation application of International Application PCT/JP2019/008194, filed on Mar. 1, 2019, and designating the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2019/008194 | Mar 2019 | US |
Child | 17379629 | US |