[go: up one dir, main page]

WO1999031573A1 - Procede et circuit semi-conducteur pour effectuer des operations arithmetiques - Google Patents

Procede et circuit semi-conducteur pour effectuer des operations arithmetiques Download PDF

Info

Publication number
WO1999031573A1
WO1999031573A1 PCT/JP1998/005720 JP9805720W WO9931573A1 WO 1999031573 A1 WO1999031573 A1 WO 1999031573A1 JP 9805720 W JP9805720 W JP 9805720W WO 9931573 A1 WO9931573 A1 WO 9931573A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
digit
circuit
signal
carry
Prior art date
Application number
PCT/JP1998/005720
Other languages
English (en)
French (fr)
Inventor
Tadahiro Ohmi
Makoto Imai
Toshiyuki Nozawa
Masanori Fujibayashi
Koji Kotani
Tadashi Shibata
Takahisa Nitta
Original Assignee
Kabushiki Kaisha Ultraclean Technology Research Institute
I&F Inc.
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 Kabushiki Kaisha Ultraclean Technology Research Institute, I&F Inc. filed Critical Kabushiki Kaisha Ultraclean Technology Research Institute
Priority to US09/581,729 priority Critical patent/US6728745B1/en
Priority to JP2000539404A priority patent/JP3811354B2/ja
Priority to EP98961396A priority patent/EP1039372A4/en
Publication of WO1999031573A1 publication Critical patent/WO1999031573A1/ja
Priority to US10/641,788 priority patent/US7296048B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4824Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices using signed-digit representation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages

Definitions

  • the second invention relates to an arithmetic processing semiconductor circuit and an arithmetic processing method, and in particular, to an arithmetic processing semiconductor circuit and an arithmetic processing method used for controlling an information processing device.
  • semiconductor circuits are responsible for processing numerical and logical operations. Therefore, semiconductor circuits are a very important part in fields such as information processing, and various circuits are actually designed.
  • the digitized information is digitized, and depending on the range of the numerical value, bits such as 8 bits, 16 bits, 32 bits, and currently 64 bits 6128 bits are used. Width data is used.
  • the circuit format for processing such multi-bit information can be roughly classified into bit parallel circuits and bit serial circuits.
  • bit parallel processing an arithmetic circuit for all bits is prepared and all bits are processed. At the same time, it is a form in which human input and arithmetic processing are performed. It is not an exaggeration to say that almost all current processors, including microprocessors, employ this format.
  • Bit serial processing is performed by using lower bits for each operation time unit (usually a clock). This is a method of inputting data in bit units and performing arithmetic processing.
  • This form has the advantage of having a small area, since it is only necessary to design an arithmetic circuit of one bit. Only However, this format has the drawback that it takes a very long time and time to acquire the data of the most significant digit because the processing is performed from the least significant digit.
  • the carry signal generated from the least significant digit has the possibility to propagate to the most significant digit, and it is necessary to determine the solution and the carry signal from the least significant digit. Unless this carry-over problem is solved, it is impossible to perform arithmetic processing from the higher-order digits according to the present invention.
  • the problem of carry signal alignment in addition and other operations is the first problem
  • the second problem is to solve the problem of carry-in
  • the problem of the operation speed of the bit serial format is solved.
  • the fourth task is to increase the number of other complex operations and processes including multiplication from the upper digits.
  • the operation targeted by the second invention is, from the upper digits, a time step (operation time unit (operation for data input in a bit serial manner for every i), and the generated digit I ⁇ ; They use techniques, solve them, and try to achieve a variety of uses.
  • a semiconductor circuit for arithmetic processing according to the present invention, one or more data of a number composed of a plurality of digits are input, and an arithmetic operation is sequentially input from the upper digit side of the number data in units of one operation time.
  • a processing semiconductor circuit comprising: a calculation unit for calculating the input data, wherein the calculation unit calculates the data of the input digit in a time calculation unit, and a result obtained by the calculation.
  • a calculation circuit that outputs carry data indicating the carry, and a calculation result from the calculation circuit is delayed by one calculation time unit.
  • An arithmetic unit having delay means is provided. This delay eliminates the need to specially treat the carry signal as a carry ⁇ symbol, and solves the first problem.
  • the problem of carry signal propagation by the operation skipping semiconductor circuit according to the present invention is as follows: (1) a method characterized in that output data belongs to a redundant number system; (2) output to an upper digit by operation of a certain digit First determining means for determining whether or not the carry data to be changed by the carry data generated by the operation of the lower digit than this digit, and a determination result of the first determining means from the lower digit Output means for indicating to the upper side that there is no change in the carry data when indicating that it does not depend on the output carry data, and carry in which the judgment result of the first judgment means is output from the lower digit.
  • Input means for waiting for lower-order carry data when indicating dependence on data; and changing means for changing the calculation result in accordance with lower-order carry data from the lower side.
  • Upper digit A calculating means for performing a calculation in order for each calculation time unit, and calculating a maximum value and a minimum value of a calculation result which can be obtained in a lower digit than an input digit; and a maximum value and a minimum value calculated by the calculation means.
  • the second problem is solved by removing at least one of the three methods, that is, a method characterized in that a ratio with another digit's data is provided. Is done.
  • the semiconductor circuit for arithmetic processing according to the second invention is provided with a judging means for comparing and judging the arithmetic result output in order from the upper digit to the arithmetic time unit for each arithmetic time unit.
  • a judging means for comparing and judging the arithmetic result output in order from the upper digit to the arithmetic time unit for each arithmetic time unit.
  • the arithmetic processing semiconductor circuit may be configured such that one of the two data is multiplicand The other is a multiplier, and the multiplier is input in order from the upper digit for each operation time unit, multiplies two data, and outputs the result in order from the upper digit for each operation time unit.
  • Storage means for storing the multiplier while shifting it for each operation time unit, and calculating partial products of the multiplier from the storage means and the multiplicand, respectively, from the most significant digit for each operation time unit.
  • the first arithmetic means for generating and outputting all partial products of the same digit in the multiplication and the partial products indicating the same digit from the first arithmetic means are all added, and one multiplication result is obtained.
  • a second calculating means for outputting from the upper digit.
  • the arithmetic processing method is an arithmetic processing method in which one or more numerical data composed of a plurality of digits are input, and the power is input in order from the upper digit side of the numerical data.
  • FIG. 1 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 1 of the present invention.
  • i3 ⁇ 4J is a U explanatory diagram for explaining the timing of overnight input to the adder 2 of the first embodiment.
  • FIG. 3 is an explanatory diagram illustrating a state of addition according to the first embodiment.
  • FIG. 4 is a circuit diagram showing a first-stage adder used in Embodiment 3 of the present invention.
  • 135 is a circuit diagram showing a next-stage adder used in the third embodiment.
  • FIG. 6 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 4 of the present invention.
  • FIG. 7 is a block diagram showing a semiconductor circuit for arithmetic processing according to Embodiment 5 of the present invention.
  • S ′ 8 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 6 of the present invention. ⁇
  • FIG. 1 A first figure.
  • FIG. 9 is a block diagram showing a semiconductor circuit for arithmetic processing according to Embodiment 7 of the present invention.
  • FIG. 10 is an explanatory diagram for explaining how a range is detected according to the seventh embodiment.
  • FIG. 11 is a block diagram showing a semiconductor circuit for arithmetic processing according to the eighth embodiment of the present invention.
  • FIG. 12 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 9 of the present invention.
  • FIG. 13 is an explanatory diagram illustrating the operation of the AZD converter according to the ninth embodiment.
  • FIG. 14 is an explanatory diagram for describing Embodiment 10 of the present invention.
  • FIG. 15 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 11 of the present invention.
  • FIG. 16 is an explanatory diagram for explaining multiplication according to the eleventh embodiment.
  • FIG. 17 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 12 of the present invention.
  • Reference numeral 18 denotes a processor showing an arithmetic processing semiconductor circuit according to Embodiment 13 of the present invention.
  • FIG. 19 is an explanatory diagram for explaining multiplication according to the thirteenth embodiment.
  • FIG. 20 is an explanatory diagram for explaining the principle of Embodiment 14 of the present invention.
  • FIG. 21 is a block diagram showing an arithmetic processing semiconductor circuit according to Embodiment 14.
  • FIG. 22 is a block diagram showing an example of the carry control circuit of the fourteenth embodiment.
  • FIG. 23 is a block diagram showing a semiconductor circuit for arithmetic processing according to Embodiment 15 of the present invention.
  • 67 1 to 67 n carry processing circuit a 1 to a 9, all, a 1 2, a 21, a 22, a 26, a 27, a 3 1 to a 33.b 3 1, a 5 11 1 to a 5 1 1 6 .a 6 1, a 36 Analog signal a 5 ⁇ Multiplicand
  • digit means the following.
  • "digit” is a concept that is a unit when performing arithmetic processing on this data, and is a “place” in a decimal number.
  • “Operation” includes not only numerical operations but also logical operations.
  • “upper digit” represents a digit one digit larger than the currently processed digit
  • “lower digit” represents a digit smaller than the currently processed digit.
  • the “high-order analysis side” indicates the upper digit of a plurality of digits read continuously from the digit being processed
  • the “lower digit side” indicates the lower digit of a plurality of digits connected to the digit being processed. Represents a digit.
  • redundant number system is a concept indicating a number system that allows ⁇ + 1 or more numbers in each digit of a base number.
  • the present invention is applied to an arithmetic processing semiconductor circuit for adding data.
  • a binary SD (Signed Digit) number system is used as a redundant ⁇ -number system.
  • the binary SD number system is one of the redundant number systems. For a binary number composed of a combination of “0” and “1”, a number with an inherently redundant value of “ ⁇ 1” is used. To give permission. Table I below shows an example of the calculation rules for the second 'binary SD number system. In the following description, for example, when the data “0 1 0” is represented by a binary SD number system, the data is represented by “0 1 0” SD , and the data “0 1 0” is represented by a binary number system. This data is represented by “01 o” B when indicated by. Also, “data 2 shown in decimal system” is represented by “2” D.
  • Table 1 shows the calculation rules for the addition of the value A and the value B.
  • the result of adding the two values is represented by the value of “Sum” and the value of “Carry”.
  • “Sum” indicates the sum of the value A and the value B
  • “Carry” indicates the carry data.
  • Carry is described as a carry signal
  • “Suni” is described as an addition signal.
  • FIG. 1 shows a semiconductor circuit for arithmetic processing using a binary SD number system.
  • the processing circuit shown in Fig. 1 semiconductor
  • the circuit includes adders 1 to 3 and memories 4 and 5.
  • the adder 1 is the first stage, that is, the input-side arithmetic circuit in the arithmetic processing semiconductor circuit.
  • the adder 1 receives data a1 and data a2.
  • the data a 1 represents one digit in the number and the data a 2 represents one digit in another number. Since the numbers are shown in the binary SD number system, the data a 1 and a 2 are both “1 1”, “0”, and —.
  • the digits indicated by the data a 1 and a 2 are input to the digital device 1 in order from the highest digit in the number.
  • Reactor 1 outputs data a 1 and a 2 at the rising edge of the pulse included in the control signal. Read and add data al and data a 2 until the next control signal rises. When adding data a 1 and data a 2, adder 1 follows the addition rules shown in Table 2 below.
  • the addition result inside the adder 1 is in the range of “ ⁇ 2” to “2”.
  • the adder 1 sets the value of the carry signal c 1 of the binary SD system to “1 1” and the addition ⁇ ⁇ sets the value of the symbol s 1 to “0”.
  • Adder 1 outputs carry signal c 1 of value “1 1” to adder 2, and outputs add signal s 1 of value “0” to memory 4.
  • the adder 1 When the addition result inside the adder 1 is “2”, the adder 1 outputs the carry signal c 1 Is set to “1” and the value of the addition signal s 1 is set to “0”. When the addition result inside the adder 1 is “0”, the adder 1 calculates the value of the carry signal c 1 and the value of the addition signal s 1.
  • the adder 1 sets the value of the carry ft signal c 1 to “1 1” and sets the value of the addition signal s 1 to “1”.
  • the adder 1 sets the value of the carry signal c 1 to “0” and sets the value of the addition signal s 1 to “1”. That is, when the result of the internal addition becomes “1 1” or “1”, the adder 1 outputs “1” as the value of the addition signal s 1.
  • the memory 4 stores the addition signal s1 from the adder 1 at the rise of the control signal d1.
  • the period from the rise of this control signal d1 to the rise of the next control signal d1 is a calculation time unit (step). That is, the memory 4 delays the value of the addition signal s 1 by one operation time unit of the control signal d 1 (between the pulse of the control signal and the next pulse) and outputs the result to the adder 2.
  • a D flip-flop that reads data at the rising edge of a pulse is used as the memory 4.
  • the adder 2 is a middle stage arithmetic circuit in the arithmetic processing semiconductor circuit.
  • the adder 2 receives the carry ⁇ symbol c 1 and the addition signal s 1.
  • the adder 2 receives the carry ⁇ symbol c 1 and the addition signal s 1 of the combination as shown in FIG.
  • the adder 2 the rising timing T 1 of the control signal, and outputs a carry signal c 1 .tau.1 and the addition signal s 1 T 1, Thailand Mi ring T 2, carry signal c 1 T eta and Outputs the addition signal s 1 ⁇ 2 .
  • Thailand Mi ring T 3 and it outputs a carry signal c 1 T o and the addition signal s 1 .tau.3.
  • Runode delayed addition signal sl T 1 ⁇ s 1 T3 is the memory 4, the adder 2, the combination of the carry signal c 1 .tau.2 and sum signal s 1 T 1 is a timing T 2 in is inputted, is inputted by the carry signal c 1 .tau.3 and sum signal s 1 T set Awa SEGA timing T 3 in o.
  • the adder 2 outputs the carry signal c 1 and the addition signal at the rise of the control signal pulse.
  • the signal s1 is read, and the carry signal c1 is added to the addition signal s1 until the next rise of the control signal.
  • the adder 2 follows the addition rule shown in Table 3 below.
  • the result of addition inside adder 2 is in the range of "-1" to "-2".
  • the adder 2 sets the value of the carry signal c 2 of the binary SD number system to “1” and sets the value of the addition signal s 2 to _ ().
  • the adder 2 outputs the value “1” carry signal c 2 to the adder 3, and outputs the value] ”addition ⁇ word s 2 to the memory 5.
  • the adder 2 sets the values of the carry signal c 2 and the addition signal s 2 to “0”:
  • the adder 2 sets the value of the carry signal c 2 to “0” and sets the value of the addition signal s 2 to “1-1”.
  • the adder 2 sets the value of the carry signal c 2 to “1”.
  • the adder 2 outputs “1 1” as the value of the addition signal s2. .
  • Memory 5 is the same as memory 4. That is, the memory 5.
  • the memory 5 delays the value of the addition signal s2 by one operation time unit of the control signal, and outputs the delayed addition signal s2 to the adder 3.
  • the adder 3 is a post-stage, that is, an output-side operation circuit in the operation processing semiconductor circuit.
  • the adder 3 receives the carry signal c2 and the addition signal s2. At this time, since the addition signal s2 has been delayed by the memory 5, the addition signal s2 output from the adder 2 is input to the adder 3 independently of the previous operation time.
  • the adder 3 reads the carry signal c 2 and the addition signal s 2 at the rise of the control signal pulse, and sums up the carry signal c 2 and the addition signal s 2 by the rise of the next pulse. U.
  • the adder: 3 When adding the carry signal c 2 and the addition signal s 2, the adder: 3, and the addition rules shown in Table 4 below are followed.
  • the values that can be used for symbol c 2 are “0” and “1”, and the addition signal Since the values that can be used for s2 are “ ⁇ 1” and “0”, the addition result inside the adder 3 is in the range of “ ⁇ 1” to “1”.
  • the adder 3 outputs the internal addition result as it is as data a3. That is, the addition result of the adder 3 does not include the carry signal indicating the carry of the binary SD number system.
  • the arithmetic unit 2 adds the value “0” of the carry signal c 1 received from the adder 1 and the value “0” of the addition signal s 1 received from four memories. As a result, the internal calculation result becomes “0”, and the adder 2 performs both the carry signal c 2 and the addition signal s 2 according to the truth table shown in Table 3. Set the value of "0".
  • the memory 5 outputs the value “0” received at the previous timing.
  • the adder 3 adds the value “0” of the carry signal c 2 received from the adder 2 to the value “0” of the addition signal s 2 received from the memory 4. As a result, since the internal addition ⁇ yoshika becomes “0”, the adder 3 follows the addition rule shown in Table 4 according to the addition rule. Set the value of data a 3 to “0”.
  • the data a 3 of value “0” is output to the subsequent circuit as the arithmetic result of the most significant digit.
  • the data [1 0 0] in SD, the third digit "0", the data [0 0 1] in SD, the third digit - is a "1" Input to adder 1 from previous circuit.
  • the adders 1 to 3 and the memory 4.5 add the third digit.
  • the data a3 having the value "1-1" is output to the subsequent circuit.
  • the circuit at the preceding stage inputs the value “0” to the adder 1 as data a 1 .a 2 to end the operation.
  • data a3 having a value of "0" is output to the subsequent circuit.
  • the circuit at the preceding stage inputs the value “0” to the adder 1 as the data a 1 and a 2 for the termination of the operation.
  • the data a3 having the value "-1" is output to the subsequent circuit.
  • the value of the data output from the adder 3 to the subsequent circuit becomes 0 1-10-1] SD .
  • This data is in decimal notation (so it is correct, and the result is output.
  • a carry signal is not generated when two data are added, so that addition from the highest digit is possible.
  • the memory 4. ⁇ is provided as a delay means, and the required number of arithmetic circuits 1 to 3 is very simple. Addition can be processed. That is, the addition can be realized by a small-scale circuit.
  • power using a binary SD number system ⁇ ordinary binary binary may be used as the values of the data a1 and a2.
  • a clock pulse may be used as each control signal.
  • the memories 4 and 5 remember the value at the edge of the clock.
  • addition can be performed in the same circuit format as in the first embodiment. Need not be negative redundant number, the positive form of the problem is not 3 carried stretched in the direction 1 and also forms the adder in three stages, whereupon the adder or four or more stages, significant digit Can be added.
  • the carry signal generated in the binary SD number system is transmitted to the upper two digits, but the carry system has a higher degree of redundancy according to the number system with greater redundancy than the binary SD number system. It fits.
  • two adders can be used.
  • the adders 1 and 2 of the first embodiment are embodied as follows.
  • a two-digit combination composed of “0” and “1” is used.
  • According to the two-digit binary number there are four combinations of "0” and "1".
  • “0” in the binary SD number system is represented by two types of binary numbers. Therefore, "1," "0,” and “one 1" in the binary S-number system by binary numbers are expressed as follows.
  • the adder 1 is as follows. For example, if the data a 1 is “0” and the data a 2 is _ _ 1, then adder 1 receives the data a 1 whose value is [00] B and the value is [1 1] Data a 2 which is B is input. In the adder 1, the addition result is “ ⁇ 1” according to the binary SD number system expression. In this case, according to Table 2, the value of the carry signal is “ ⁇ 1” and the value of the addition signal is “1”. Therefore, adder 1 outputs [11] B as a carry signal, and outputs [01] ⁇ as an addition symbol.
  • the adder 1 when the input is at [00] beta and [1 1] beta and is output is [1 1] beta and [0 1] beta and. Further, the adder 1 can be configured using AND gates, OR gates, and NOT gates based on other combinations of inputs and outputs.
  • the values "1", “0”, and “1" that make up the binary SD number system have various correspondences with binary numbers. Then, according to this correspondence, t and combinations that are not limited to AND, 0R, and NOT of the AND gate, the ⁇ R gate, and the X0T gate are possible. In addition to the circuit configuration using the combination of the AXD gate, OR gate, and NOT gate, it is possible to design with a combination of other logic functions.
  • the adders 1 and 2 of the first embodiment have the following structure. That is, the adder shown in FIG. 4 is used as the adder 1.
  • the adder 101 shown in Fig. 4 is composed of a neuron MOS Inverter 101A ⁇ 101C and an Inverter 101D ⁇ 10, which are formed using neuron MOS (Metal Oxide Semiconductor) transistors. 1 F.
  • neuron MOS Metal Oxide Semiconductor
  • the neuron MOS transistors 101 A to 101 C are connected sequentially.
  • the output of the neuron MOS driver 101 A is connected to the neuron IO driver 110); the output of the neuron MOS driver 101 B is connected to 1C and the inverter 101F. Is read in the neuron MOS inverter 101 C and inverter 101 E. In addition, the output of the neuron MO Simba 101C is connected to the comparator 101D.
  • the redundant digits of the number system are represented by data a 4.
  • Data a4, a5 are represented by electrical signals transmitted through one signal line Can not be. Therefore, to represent the data a4 and a5, two ⁇ code lines are required.
  • a threshold value is provided for the neuron-VIOS inverters 101A and 101B.
  • the threshold is set so that the output is inverted when the addition result is “-0.5” or “1.5”.
  • the carry signal c 3 is output.
  • the redundant number of the carry signal c3 and the code of the electric signal are the same as the data a4.a5.
  • the output of the neuron MS inverter 101B is input to the neuron MOS inverter 101C.
  • the inverter 101D inverts the output of the neuron MOS inverter 101C, so that s3 corresponding to the addition signal is output.
  • s 3 corresponds to si in FIG.
  • FIG. 5 corresponds to the adder 2 of the first embodiment.
  • the adder of FIG. 5 includes a 221 M ⁇ S inverter 201A, 201B.
  • the neuron MOS sinterers 201A and 201B are connected in sequence.
  • the output of neuron M ⁇ S inverter 201 A is connected to neuron MOS inverter 201 B and inverter 201 C, and the output of neuron MOS inverter 201 B is connected to inverter 201 D. .
  • the intermediate sum component s 3 from the previous adder and the carry signal c 3 are strongly added.
  • the output of the neuron MOS inverter 201 A is ..
  • the output of the inverter 201 C is inverted, and the carry signal c 4 is output.
  • the output of the neuron MOS inverter 201A is input to the neuron MOS inverter 201B, so that the addition result component s4 is output.
  • Addition The s4 represents “one 1” when the level is low, and “0” when the level is high.
  • c 4 and s 4 correspond to c 2 and s 2 in FIG. 1, respectively.
  • An adder corresponding to the adder 3 of the first embodiment uses a neuron MOS transistor [in which case, the adder becomes unnecessary.
  • the intermediate sum component s4 from the adder 201 is delayed by one delay for one operation time.
  • the carry signal c 4 and the delayed addition result component s 4 are output as a bear.
  • the delay element is the memory 4 of the first embodiment.
  • the output of this hair corresponds to a3 in Fig. 1, and the correspondence between the redundant number and the two signal lines is the same as that of a4 and a5.
  • the circuit can be realized extremely easily by using the neuron MOS transistor.
  • the delay element is not limited to binary SD numbers, but can be a delay adder with an increased number of radixes or a redundant adder with an increased number of inputs such as four inputs.
  • one redundant adder (propagation of the carry signal to the upper digit) can be realized with an easy circuit.
  • an inverter circuit is used as a basic gate for the operation of the neuron MOS transistor.
  • any threshold value can be set, and the output is binary “0”. If the format is “1”, it is not limited to the inverse.
  • the present invention is applied to an arithmetic processing semiconductor circuit that calculates and outputs the smaller of the difference between the first and second numbers and the difference between the third and fourth numbers.
  • Figure 6 shows this arithmetic semiconductor circuit.
  • the arithmetic processing semiconductor circuit shown in FIG. 6 includes a differential absolute value circuit 6.7, memories 8, 9 and a minimum value circuit 10.
  • data a6 representing one digit of the first number and data a7 representing one digit of the second number are input.
  • the data a 6 and a 7 are input to the difference circuit 6 in order from the highest digit.
  • the difference circuit 6 calculates a difference between the input data a6 and the input data a7, and outputs a difference signal b6 representing the calculated difference to the memory 8.
  • data a8 representing one digit of the third number and data a9 representing one digit of the fourth number are input.
  • Data a 8 .a 9 is the highest order Are input to the difference circuit 7 in order from the digit.
  • the difference circuit 7 calculates a difference between the input data a8 and the input data a9, and outputs a difference signal b7 representing the calculated difference to the memory 9.
  • the memory 8.9 operates with the control clock c6. If, for example, a D flip-flop is used as the memories 8 and 9, the memories 8 and 9 update the stored contents by the edge trigger of the control clock c 6. That is, the memories 8 and 9 output the difference signals b 6 and b 7 one operation time unit earlier to the minimum value circuit 10.
  • the minimum value circuit 10 outputs a (sign according to the magnitude relation between the difference signals b 6 and b 7 from the memories 8 and 9. That is, when the difference signal b 6 is smaller than the difference signal b 7 If the difference signal b 7 is smaller than the difference signal b 6, the minimum value circuit 10 outputs the difference signal b 7. This state is the second state. When the difference signal b 6 is equal to the difference signal b 7, the minimum value circuit 10 determines which of the difference signal b 6 and the difference signal b 7 A signal may be output ( 3, this state is the third state.
  • the difference circuit 6 calculates a difference between the data a6 and the data a7
  • the absolute value circuit 7 calculates a difference between the data a8 and the data a9.
  • the calculation result is output as 0 as the difference signals b 6 and b 7.
  • the difference symbol b 6. B 7 is input to the memories 8 and 9. At this time, the stored contents are updated by the control clock c6.
  • the outputs of the memories 8 and 9 are the results of the previous operation and are the result of the difference one digit higher.
  • the memories 8 and 9 store the results of the calculations. That is, the memory 8.9 delays the difference signals b 6 and b 7 and operates as ⁇ -upward division of the digit information.
  • the memory 8.9 outputs the stored difference signals b 6, b 7 to the minimum value circuit 10, and the value circuit 10 outputs the smaller one of the difference signals b 6, b 7. Select a value. Then, the minimum value circuit 10 outputs the selected difference signal.
  • the next pulse of the control clock c6 causes the digits of data a6 to a9 to
  • the arithmetic operation shifts to the lower digit by one digit, and the operation proceeds from the upper digit to the lower digit.
  • Can output usually, when determining the minimum value, it is necessary to examine the data in order from the most significant digit. As a result, the fourth embodiment is suitable for the operation from the upper digit.
  • the memory capacity for separating and storing digit information does not necessarily need to be provided at each stage, and may not be provided at the output of the final a.
  • the present invention is applied to an arithmetic processing semiconductor circuit that calculates an absolute value of a difference.
  • This arithmetic processing semiconductor circuit is shown in FIG.
  • the semiconductor circuit for calculation! ⁇ shown in FIG. 7 includes a difference circuit 11, a positive / inverting circuit 12, a state storage circuit 13, and a memory i4.
  • Data a 1 1 representing one digit of a first number and data a 12 representing one digit of a second number are input to the difference circuit 11.
  • the data a 11 .a 12 are input to the difference circuit 11 in the order of the operation time units from the most significant digit of the data.
  • the difference circuit 11 subtracts the data a 12 from the input data a 11. ⁇ 1 1 outputs the carry signal b 1 1 generated in the calculation of the difference, and subtracts the difference signal b 1 2 indicating the amount of difference b 1 2 from the normal inverting circuit 1 2 and the state storage circuit 1
  • the state storage circuit 13 outputs the state of the differential signal b12.
  • the difference operation has three states.
  • the state storage circuit 13 stores these three states. When the data al 2 is determined to be large, the state storage circuit 13 outputs an inversion instruction to the forward / inverting circuit 12.
  • the positive / inverting circuit 12 takes the absolute value of the value of the difference signal b12. To this end, the positive / inverting circuit 12 uses the state of the difference signal b 12 stored in the state storage circuit 13! That is, when the data a 12 is large and the difference signal b 12 is negative, the positive / inverting circuit 12 inverts the sign indicating the sign of each digit of the difference signal b 12. The positive inverting circuit 12 outputs the absolute value signal c 11 indicating the absolute value of the difference signal b 12 calculated in this manner in order from the upper digit.
  • the memory 14 operates on the control clock d 11 and stores the absolute value signal c 11 from the positive / inverting circuit 12.
  • the absolute value signal c 11 stored in the memory 14 is output at the next clock of the control clock d 11. That is, it is delayed by one operation time unit.
  • the carry signal b 11 generated by the difference circuit 11 and the absolute value signal c 11 output by the memory 14 indicate the same digit at the same time, and the external circuit takes Handling L can be facilitated.
  • a comparison / judgment is performed from the upper digit following an arbitrary operation performed from the upper digit, and the arithmetic processing including the comparison / judgment of the remaining lower digits when authenticity is determined is omitted.
  • the present invention is applied to an arithmetic processing semiconductor circuit.
  • Fig. 8 shows this processing semiconductor circuit.
  • This arithmetic processing semiconductor circuit is a circuit that finds the largest value of two binary numbers from a plurality of sets, and includes an adder 2, a delay circuit 22, a comparator 23, and a storage circuit 24. It has.
  • Data a 21 representing one digit of the first number and data a 22 representing one ⁇ ′ ⁇ of the second number are input to the adder 21.
  • the data a 21 and a 22 are input to the adder 21 in order from the most significant digit.
  • the adder 21 adds the input data a 21 and data a 22 and outputs an addition signal b 21 indicating the addition result to the delay circuit 22.
  • This adder is the circuit described in the first embodiment, has delay means internally, and does not generate a carry signal to the outside.
  • the delay circuit 22 delays the addition signal b 21 by one operation time unit by the control clock c 21.
  • a delay of one operation time unit is equivalent to shifting the digit by one, that is, dividing one by two in a binary number. Since the first data and the second data are binary ⁇ , the delay of one digit is the same as dividing by 2, and as a result, the average value is calculated.
  • Delay circuit 22 outputs average signal d 21 indicating the average value to comparator 23.
  • the storage circuit 24 stores the maximum average value signal d 22 output from the comparator 23.
  • the stored current average value signal that is, the average value signal indicating the maximum value of the past average value, is stored in order from the most significant digit.
  • the storage circuit 24 stops the output, and prepares to output the maximum average value again from the highest digit in the next order. .
  • the comparator 23 receives the average value signal d 21 from the delay circuit 22 and the past maximum average value signal from the storage circuit 24 in order from the upper digit.
  • the comparator 23 compares the value indicated by the average value signal d 21 from the delay circuit 22 with the past maximum average value from the storage circuit 24 and the value indicated by the symbol to determine which is larger. I do. Then, the comparator 23 outputs the larger average value signal to the storage circuit 24 in order from the upper digit.
  • the comparator 23 when comparing the two average value signals, if the maximum value of the average value from the past, that is, the value indicated by the average value signal from the storage circuit 24, is larger, the comparator 23 There is a platform that can cut ij. For example, in the case of a binary SD number system, while the average value from the delay circuit 22 (the symbol is [0—1...] SD) , the average value from the storage circuit 24 is Is [0 10...] SD . In this case, the comparator 23 can determine the comparison judgment at the point of the several digits from the most significant bit. The device 23 turns on the control signal e22.
  • the comparator 23 stops comparing the lower-order digits after that, and at the same time, the storage circuit 24 stops outputting the average value signal. The operation is stopped. Then, the data transfer of all arithmetic circuits is returned from the most significant digit to, and the data is input to the next digit data a 21 and a 22. In this way, the data is sequentially compared from the upper digit, and the larger one of the comparison results is output. If the maximum value cannot be updated, the operation processing that determines the comparison after the digit with the comparison judgment is omitted. Can be. As a result, useless t and operation can be realized.
  • the type of operation is not limited to the average value, and the type of comparison and judgment operation is not limited to the maximum. Any circuit that can compare and judge the result of some operation is sufficient. For example, a circuit that outputs a difference value between two numbers that is equal to or less than a certain value may be used.
  • a data buffer may be required before data a21 and data a22.
  • the present invention is applied to an arithmetic processing semiconductor circuit that calculates a range of values indicated by data and determines whether a result of the calculation belongs to a predetermined range.
  • This arithmetic processing semiconductor circuit is shown in FIG.
  • the arithmetic processing semiconductor circuit shown in FIG. 9 includes an adder 26 A for outputting a large value, an adder 26 B for outputting a minimum value, a comparator 27.28 and an AND gate 29.
  • the maximum value output power adder 26 A calculates the maximum value among the values that can be taken by the lower digit as the result of adding the data a 26 and the input a 27 that are input in order from the upper digit to the ⁇ . ⁇ Then, the adder 26A outputs a maximum value signal b26 indicating the calculated maximum value.
  • the minimum value output adder 26 B calculates the minimum value among the possible values of the lower digit ⁇ as the addition result of the data a 26 and the data a 27. Then, the adder 26 B outputs a minimum value signal b 27 indicating the calculated minimum value.
  • the comparator '27 compares the preset upper limit value with the maximum value signal b26 from the adder 26A. As a result of the comparison, when the value indicated by the maximum value signal b 26 is longer than the upper limit value: ', the comparator 27 outputs a true value to c 26. Otherwise c 2 6 outputs (
  • the comparator 28 compares a preset lower limit value with the minimum value signal b 27 from the adder 26B. As a result of the comparison, when the value becomes larger than the force lower limit indicated by the minimum value signal b 27, the i comparator 28 outputs true to c 27. Otherwise, output false to c 27. Set to 1 when both c26 and c27 are true, and set to 0 when false.
  • the AXD gate 29 performs an AND operation on the output c 26 from the comparator 27 and the output c 27 from the comparator 28. When each comparator 27, 28 outputs true, AXD gate 29 outputs true. Conversely, if either c 26 or c 27 is false, the output will be negative.
  • the seventh embodiment for example, as shown in FIG. 10, it can be determined whether or not the addition result falls within a predetermined range.
  • Figure 10 assumes a binary binary system. That is, in the initial state, the range between the maximum value calculated by the adder 26 26 and the minimum value calculated by the adder 26B may be the entire range B1. When the operation result of the most significant digit ⁇ is “0”, the range that can be taken by the subsequent digits is from [0 1 1... 1 1] to [0000... 0] B. Therefore, the range B2 is a possible part of the addition result. In this case, both comparators 27 and 28 output false.
  • the maximum (directly decreases to “0 1 0 1 1.... 1”.
  • the range B 4 is a possible part of the addition result, and the maximum value of the range B 4 is smaller than the upper limit value, that is, the comparator 27 outputs true.
  • the comparator 28 outputs i, so that the entire output remains false.
  • any operation may be used as long as the circuit configuration can detect the maximum value and the minimum value.
  • the comparison operation may be a comparison with only the upper limit or a comparison with only the lower limit.
  • the operation is not limited to addition.
  • the present invention is applied to an arithmetic processing semiconductor circuit capable of switching arithmetic functions.
  • This semiconductor circuit for arithmetic processing is shown in FIG.
  • the arithmetic processing semiconductor circuit shown in FIG. 11 includes a general-purpose circuit 31.32 and a memory 33 that can perform processing from the upper digit.
  • the general-purpose circuit 31 is a circuit having an arithmetic function capable of sequentially processing a plurality of high-order bits, such as an addition function from a high-order digit and a comparison function from a high-order digit.
  • the general-purpose circuit 31 selects one of a plurality of functions according to the instruction indicated by the control signal c31.
  • the general circuit 31 processes the input data a 3 1, a 32 with the selected arithmetic function. After that, the general circuit 31 outputs data b31 indicating the operation result to the memory 33. Further, the general circuit 31 outputs a control symbol b 32 of the upper digit as necessary.
  • the circuit 32 is a circuit having an arithmetic function such as an addition function and a comparison function that is sequentially processed from a plurality of r.. Iii.
  • the general-purpose circuit 32 selects one of a plurality of functions according to a control signal and an instruction indicated by the command '32'.
  • the general-purpose circuit 3 2 processes the input data a 3 3 and the data b 3 2 from the memory 3 3 with the selected operation it function.
  • the memory 33 delays the data b31 from the general-purpose circuit 31 by the control clock d31 by a time unit. And the memory 33 stores the delayed data b 32 is output to the general-purpose circuit 32.
  • the arithmetic function can be controlled by the control signal c 31 .c 32, and a response corresponding to the instruction indicated by the control signals c 31 and c 32 is output. can do.
  • any setting of the arithmetic function can be made.
  • Embodiment 8 includes two general-purpose circuits and one memory, the number and combination of general-purpose circuits and memories are not particularly limited to this.
  • a general-purpose circuit can be realized by preparing a circuit that performs each function; (), and can also be realized by flexware using a neuron MOS transistor, and the general-purpose circuit is particularly limited.
  • control signals c 31 and c 32 may be the same or different.
  • a concatenated operation in which the control signal c 31 indicates an addition instruction and the control signal c 32 indicates a comparison instruction ⁇ comparison instruction may be performed. It may be an instruction to calculate the read digit.
  • the present invention is applied to an arithmetic processing semiconductor circuit for performing data processing after analog-to-digital (AZD) conversion processing of an analog signal in order from an upper digit generally called a successive approximation format. ing.
  • This arithmetic processing semiconductor circuit is shown in FIG.
  • the semiconductor circuit for arithmetic processing shown in FIG. 12 is composed of an AZD converter 36 and an arithmetic circuit.
  • the input / output converter 36 is means for converting an analog signal into a digital signal.
  • the A-D converter 36 converts the digital signals into digital signals in order from the most significant digit by a conversion method generally called a successive approximation format. For example, in the case of a binary number, the whole is divided into two regions5 and it is determined which region the input analog voltage belongs to. If the judgment result is high voltage side, "0" is output. If it is low voltage side, "0" is output. Then, the analog voltage belongs to XI, and one area is further divided into two areas. Below: Similarly, “1" if it belongs to the high voltage side area, "0" if it belongs to the low voltage side
  • the state of conversion of the A / D converter 36 will be described in detail with reference to FIG. Assume that the voltage level of the analog signal a36 input to the AZD converter 36 (hereinafter, referred to as input voltage) ⁇ is the level shown by the broken line. First, the AZD converter 36 determines whether the input voltage is larger or smaller than half the maximum amplitude. In this case, the entire range of maximum amplitude S! A36 is divided into two small ranges, and it is determined whether the input voltage falls within the minimum 12 range or 1/2 maximum ⁇ range. In this case, since the input voltage falls within the 1Z2 range on the maximum side, the A / D converter 36 outputs the digital signal 0b36 having the first bit power "1".
  • the maximum 1 2 range A 37 is further divided into two 1 4 ranges, and the input voltage is in the minimum 1 Z 4 range or in the maximum 1 Z 4 range.
  • the AZD converter 36 outputs a digital signal b36 in which the second bit is "0".
  • the AZD converter 36 outputs the result of the third bit “1” in the 14 range A 38 for each operation time unit, and outputs the 1st result in the 1st 8 range Outputs "1" as a 4-bit result.
  • the 0 converter 36 converts the analog signal a 36 ′ into a digital signal (the symbol b 36) by digging out the voltage range.
  • the conversion result is output in order from the (j upper bits.
  • Such an A / D method is a known power, and in the present license, it is combined with the arithmetic circuit 37 from the upper digit. The feature is that they are synchronized.
  • the AZD converter 36 stops analog (A / D conversion from the upper digit of the symbol a36).
  • the arithmetic circuit 37 When the arithmetic circuit 37 receives the digital signal b36 output from the A / D converter 36, the arithmetic circuit 37 performs a preset operation on the digital symbol b36. When the arithmetic circuit 37 determines that it is not necessary to convert the analog signal a 36 to the digital signal b 36 based on the calculation result, the control circuit 37 changes the control signal b 37 indicating that the conversion is stopped. • D converter-Outputs to unit 36. The decision that it is not necessary is, for example, It can be considered when the conversion accuracy required of the D converter is obtained, or when the authenticity of some judgment means is determined.
  • control signal b 37 is returned to the A / D converter 36, so that the analog-to-digital conversion is stopped halfway and the next analog signal is input. Is possible. As a result, advantages such as suppressing unnecessary conversion, improving the average conversion speed, and reducing power consumption are produced.
  • the voltage range is cut out by 1Z2.
  • the voltage range should be set to 1 / Nth power and the range should be determined.
  • memories 41 A and 41 B are bit sequential memories. That is, the memories 41A and 41B store a plurality of data and output the data to the data buses 42A and 42B for each digit of the operation unit. At this time, the memories 41A and 41B output digit-by-digit data in order from the upper digit to the lower digit. In other words, in the case of binary numbers, the memories 41A and 41B have a mechanism to output the stored data in order from the upper bit to the lower bit, one bit at a time. As the memories 41 A and 4 IB, for example, there is a memory composed of shift registers.
  • the arithmetic processing semiconductor circuit 43 connected to the memories 41 A and 41 B via the data buses 42 A and 42 B is an arithmetic circuit or unit for processing data in order from the upper digit. I can do it.
  • the child bus 4 2 ⁇ . 4 2B only needs to have a 1-bit data bus for each data.
  • the conventional bus width is the data bit width or a multiple thereof, but according to the tenth embodiment, the entire bus width is simultaneously stored in the memories 41A and 41B. What is necessary is just to make the number of data readable.
  • the present invention is not limited to this, and the present invention is not limited to this.
  • a single circuit is used as 3, it is not particularly required to be a single circuit, but may be an arithmetic processing semiconductor circuit that performs processing in order from the highest digit.
  • the present invention is applied to an arithmetic processing semiconductor circuit that performs multiplication from an upper digit by addition from an upper digit.
  • Figure 15 shows this arithmetic processing semiconductor circuit.
  • the semiconductor circuit for arithmetic processing shown in Fig. 15 consists of shift registers 45A to 45H, partial product generation circuits 46A to 46H, and redundant adders 47A to 47D, 48A. B, 49.
  • the shift registers 45A to 45H are eight shift registers, assuming a total of 8 bits of multiplication, and the data input from the upper digit is sequentially shifted to 45H by the edge of the clock.
  • the contents of 5G are shifted, the contents of 45F are shifted to 45G, the contents of! 5545E are shifted to 45F, and so on.
  • Shift registers 45A to 45H output the stored multiplier data to partial product generation circuits 46A to 46H.
  • the most significant digit of the multiplier data is stored in the shift register 45A, and the data is output to the partial product generation circuit 46A. 0 is stored in the remaining 4 ⁇ ⁇ to 46 ::
  • the most significant digit is stored in 45 5
  • the data of the second t row from the highest is stored in 45 ⁇ And output to the partial product generation circuits 46A to 46B.
  • the partial product generation circuit 46 A to 46 H is an eight-time partial product generation circuit for multiplication of 8 bits, and the multiplier output from the shift registers 45 A to 45 H and all bits are output. Calculate the partial product with the multiplicand in which the birds are simultaneously input.
  • the multiplicand is such that 46 A contains the most significant i row and 46 H contains the least significant digit.
  • the partial product generation circuit 4 6 A 446H outputs the partial product of the same digit in the multiplication to the adder circuit in order from the most significant digit.
  • the redundant adders 47 A to 47 D, 48 A, 48 B, and 49 are connected in a tree shape. With this tree-type connection, the redundant adders 47A to 47D, 48A, ⁇ 48 8.49 add the partial products generated by the partial product generation circuits 46 6 to 46 6, The last stage redundant adder 49 outputs one multiplication result in order from the most significant digit.
  • the numbers in the eight boxes are output at the same clock.
  • the range A 45 moves to the lower digit (the right side in Fig. 16), and the partial product of the lower digit appears in the range A 45.
  • the range is shifted to the lower digit, and partial energy is generated in order from the upper digit to the lower digit.
  • 48 A, 48 B, and 49 generate partial product generation circuits 46 A to 46 H, add partial products from the upper digits, Thus, the multiplication result from the upper digit can be obtained.
  • the addition from the upper digit enables the multiplication from the upper digit to be performed.
  • Embodiment 11 for simplicity, eight partial products are generated for 8-bit multiplication, but they are generated at the same time using a commonly used Booth decoder. The number of partial products to be performed may be reduced.
  • the redundant adders 47 A to 47 D, 48 A, 48 B, and 49 use two-input, one-output types, but any adder that can perform addition from the upper digit. For example, a 4-input / 1-output redundant adder may be used.
  • an 8-bit multiplier is taken as an example, but the present invention is not limited to 8-bit multipliers and may be anything such as 16-bit. In the case of 16 bits, 16 partial products are generated in principle.
  • Embodiment 12 is a modification of Embodiment 11 of the present invention. That is, in the twelfth embodiment, the present invention is applied to a semiconductor circuit for arithmetic processing that performs information-intensive processing including retrieval in addition to multiplication. This operation processing semiconductor circuit is shown in FIG.
  • the arithmetic processing semiconductor circuit of FIG. 17 includes general-purpose arithmetic units 51 A to 51 H. 52 A to ⁇ 2 D. 53 A, 53 B, and 54.
  • general-purpose computing units 51A to 51H, 52A to 52D, 53A, and 53B.54 are connected in a tree shape.
  • the general purpose computing units 51 A to 51 H are controlled by the control instruction b 51, and controlled by the general purpose computing units 52 A to 52 D force control instruction c 52.
  • the general-purpose computing units 53A and 53B are controlled by the control instruction d53.
  • a general-purpose computing unit 5 1 A ⁇ 5 1 H is an operation management specified by the control command b [delta] 1, performed on the data a 5 lia S 1 16.
  • the general-purpose arithmetic unit 5 has a function of adding up from the upper digits to 51H, 52A to 52D, 53A. 53B, 54, the function equivalent to that of the embodiment 11 is achieved.
  • the general-purpose arithmetic unit 5 to 5 1H, 52A to 52D, 53A.53B, 54 is a circuit that outputs the maximum value from the upper digit, the maximum value is output from the general-purpose arithmetic unit 54. become.
  • the embodiment 12 it is possible to narrow down the information or to reduce the size of the information, thereby making it possible to perform a process of unifying the information. : In other words, other information-intensive processing including retrieval can be performed in addition to multiplication.
  • Embodiment 12 a circuit with 16 inputs is described, but it is not necessary to stick to 16 inputs. For example, 8 inputs or 32 inputs may be used.
  • the present invention is applied to an arithmetic processing semiconductor circuit that realizes multiplication from an upper digit by repeating addition.
  • This operation processing semiconductor circuit is shown in FIG.
  • the arithmetic processing semiconductor circuit in Fig. 18 is a partial product generation circuit 5 ⁇ A to 55 D, a single delay memory 56 A, ⁇ 6 556 D and a redundant adder 57.
  • a 4-bit multiplier is used.
  • the multiplicand a 55 is input to the partial joy generation circuit 55 5 to 55 D.
  • the most significant digit data of the 3 ⁇ 4 multiplier a 55 is input to the partial product generation circuit 55 D, and the data of the highest digit, one digit lower digit, is input to the partial product generation circuit 55 C, and The data of the second digit is input to the partial product generation circuit 55B, and the data of the least significant digit is input to the partial product generation circuit 55A.
  • a multiplier a56 is input to the partial product generation circuits 55A to 55D.
  • the multiplier a56 is simultaneously input to the partial product generation circuits 55A to 55D sequentially one digit at a time in the operation time unit from the upper digit.
  • the partial product generation circuits 55A to 55D generate partial products from the multiplicand 3 ⁇ 4a55 and the multiplier a56.
  • the partial products from the partial product generation circuits 55 A to 55 D are added together by the memory 56 A and the adders 56 B to 56 D incorporating the memory.
  • the adder 56B adds the partial product from the partial product generation circuit 55B delayed by the memory ⁇ 6 ⁇ and the partial product from the partial product generation circuit 55B, and performs control.
  • carry (sign b ⁇ 5 and addition ⁇ sign b56 are output. That is, the calculation result is stored internally and delayed by one step (calculation unit time)
  • the memory built-in adder 56 C adds the value “0”, the partial product from the partial product generation circuit 55 C and the addition signal b ⁇ 6 of the memory built-in adder 56 B.
  • the carry signal 55 and the addition signal c 56 are output.
  • the adder 5 6D is a carry signal b 55 from the adder 56 B that adds the two lower digits, and a partial product from the partial product generating circuit 55 D and an adder with built-in memory 5 6 Addition from C (adds the symbol c ⁇ 6 and outputs the carry signal d ⁇ 5 and the addition ⁇ symbol d 56 at the next rise of the control signal 5 ⁇ e.
  • the memory 5 6 E The carry signal c 55 from the adder 56 C that adds the two lower-order digits and the addition signal d 56 from the adder 56 D with a built-in memory are delayed to the redundant adder 57. Output.
  • the memory, 56 A. 56 E and the adder with built-in memory 56 B to 56 D are shifted left by one digit toward the redundant adder 57 by the control clock e 55. It will be. Further, a memory 56E is required to convert the carry signal d55 generated by the adder 56D with a built-in memory and other results into the same digit.
  • the redundant adder 57 includes an adder signal cl.56 from the adder 56D delayed from the memory 56E, a carry signal c55 from the adder 56C with built-in memory, and an adder 5 Using the carry signal d 55 from 6 D, the addition from the upper digit is performed.
  • adder 1 has only one additional binary number input in addition to the two SD number inputs.
  • the condition for outputting Carry + 1 and Sum1 when the internal addition value in Table 2 is +3 may be added.
  • the multiplication results are output in order from the upper digit.
  • the loaf adder 56 simply shows the mechanism of addition in this multiplication method.
  • ⁇ ⁇ In the adder 56, the symbol “10” surrounded by a circle represents an adder that can perform addition from the upper digit, and the symbol “D” surrounded by a square represents a memory.
  • the memory stores input data for each operation time unit.
  • the symbol “10” and the symbol “D” are replaced with a bar ⁇ Equivalent to 56 B to 56 D in Figure 18.
  • the memory D is reset to 0 in advance.
  • the data indicating the bottom row A55 of the handwriting is input to the adder 56, and this data is stored.
  • the input data is shifted left (X 2 ⁇ ⁇ ) by the memory “D”.
  • the data indicating the second row A 56 from the bottom is input to the row adder 56, and the input data and the data stored in the loaf adder 56 are added.
  • the data stored in the adder 56 is obtained by shifting the previous row A55.
  • the addition result obtained at the second timing is left-shifted and stored. After this, the final result is output by repeating addition of the above line.
  • a base for realizing multiplication by repeating addition, and the result of the multiplication can be output from the last stage, from the power, one, and the upper digits.
  • Embodiment 13 assumes a 4-bit ⁇ 4-bit multiplier, the present invention is not particularly limited to ⁇ 1 bit. In case of 4 bits or more, adder with memory-partial product data from partial product generation circuit, carry data from adder two digits lower, adder one digit lower like adder 56 D To input three of the sum data from If you increase the adder with t ,.
  • a known decoding method such as a booth decoder may be combined.
  • the number system handled by multiplication from the upper digit is not particularly limited to a binary number system or a binary SD number system.
  • Embodiment 14 an addition operation is performed from the upper digits using a general number system that does not use a redundant number system. For this purpose, in Embodiment 14, a flag indicating “determined” or “undefined” is added to the number to be operated. This is shown in FIG. In Figure 20,
  • the addition of a decimal number is used.
  • the carry generated in the lower digit from the first place to the hundreds place is propagated.
  • the thousands power is added to give the value [2] D.
  • This value [2] may also change depending on the carry signal from the lower digit.
  • the value [2] D is flagged.
  • the “?” Mark is used as a flag.
  • the addition ⁇ symbol value [8] D does not become a ⁇ ⁇ symbol, even if the signal is lower than the tens digit. For this reason, the “?” Mark attached to the thousands digit is removed, and the value [3] D is determined.
  • the tens digit is added, yielding the value [09] D.
  • the carry signal is the value [0] D.
  • the value of the carry signal [0] D and the value of the add signal [9] D may change. Therefore, the value of the carry signal that is the result of addition [0] D And the value [9] D of the addition signal are marked with “?”.
  • the carry signal propagates to the hundreds and tens places. Since the carry signal from the first place is determined by “1” D , the values of the tens place add signal, and all the values of the tens place carry signal and the hundreds place add signal are determined. By repeating this operation, the determined values are output in order, and the value [390 1] D that is the correct addition result is obtained. In FIG. 20, the output digits are underlined.
  • FIG. 21 shows an arithmetic processing semiconductor circuit that performs addition such as the two.
  • a signal corresponding to a flag (? Mark in FIG. 20) is added only to a carry signal as a signal.
  • the arithmetic processing semiconductor circuit shown in FIG. 21 includes an adder 61, carry control circuits 62 and 63, and delay elements 61m, 62m and 63m, respectively.
  • the adder 61 adds one digit data a61 input from the upper digit of the first number and one digit data a62 input from the upper digit of the second number.
  • the adder 61 outputs a carry signal b61 and an addition signal b62 as a result. Further, the adder 61 outputs a state signal b63.
  • the status signal b 63 indicates whether the carry signal b 61 may or may not occur. If this status signal b63 is true, it indicates that a carry (sign b61 may occur. Addition ⁇
  • the sign b62 is a delay element 6 1 m with one step (operation time unit 9) Remember the minutes, that is, one digit delay.
  • the raising control circuit 62 includes a state control circuit 601, an output circuit 60 3 is provided.
  • the carry control circuit determines whether or not a carry is necessary according to the carry signal b61, the state signal b63, and the delayed addition result b62, and changes the result as necessary. Go.
  • the carry control circuit 62 internally stores the input / output relationship as shown in Table 5 below.
  • the state control circuit 61 shows a value of "0".
  • a carry signal c61 and a state signal c63 indicating a "fixed” state are output.
  • the output circuit 6 03 outputs a result component c 6 2 having the same value as the input addition result signal b 6 2, and the input carry signal b 6
  • 1 is the value “1”
  • a result component c 62 indicating a value obtained by adding 1 to the input addition result signal b 62 is output.
  • the state control circuit 600 inputs the carry data c 61 indicating the same value as the input carry data b 61, and A status signal c 63 showing the same value as the status signal b 63 is output.
  • the input carry signal b 6 1 is the value “1”
  • the result component c 6 2 indicating the value “0”
  • the value “0” is output.
  • the result component c 62 indicating the value “9” is output.
  • the carry control circuit 62 outputs the state signal c 63 generated as described above to the carry control circuit 63. Also, the carry control circuit 62 generates a carry signal c 61 from the result of addition of the carry signal b 61 and the addition signal b 62. Then, the carry control circuit 62 outputs the generated carry signal c 61 to the carry control circuit 63.
  • the output circuit 603 generates an addition signal c62 based on the addition signal b62 from the memory 61m and the carry signal b61. That is, as shown in Table 3, the output circuit 603 adds the value of the carry signal b 6 1 to the stored signal b 6 2, that is, the stored value from the memory 60 2, and outputs the added signal c 6 Generate 2.
  • the output circuit 63 outputs the generated addition signal c 62 to the carry control circuit 63.
  • the carry control circuit 62 generates the carry signal c 61, the addition signal c 62, and the state signal based on the carry signal b 61, the addition signal b 62, and the inferior state signal b 63. Then, these signals are output to the carry control circuit 63.
  • the carry control circuit 63 generates a carry signal d 61, an addition signal d 62 and a state signal based on the carry signal c 61, the addition signal c 62 and the state signal c 63.
  • d 63 is generated, and these signals are output to the next-stage circuit.
  • the output of the carry control circuit 62 is the input of the carry control circuit 63 waiting for the same function.
  • the multistage connection absorbs a change caused by a carry when the carry propagates over a plurality of digits, for example, [999 + 001] D.
  • Embodiment 14 in order to process the carry signal, if the calculated value is uncertain and may change later, the flag corresponding to the "?" 'To (size. This can eliminate the effect of carry. Also, according to the embodiment I-1, since the binary output is performed, the affinity with the current circuit is improved. be able to.
  • a decimal number is used as a calculation example, but the present invention is not limited to a decimal number, and may be a binary number or the like.
  • Fig. 23 shows this arithmetic processing semiconductor circuit.
  • Arithmetic processing semiconductor circuit of Figure 2 3 is provided with a redundant converter 6 6 and carry processing circuit 6 7 i ⁇ 6 7 11 and the memory 6 S i S 8 n.
  • the carry may occur from the least significant bit to the most significant bit in the worst input pattern.
  • a circuit for several digits is required in combination with the raising processing circuit 6 TiS 7 n .
  • the data a 66 representing one digit of the number belonging to the redundant number system is input to the redundancy conversion circuit 66.
  • Data a 66 is input sequentially from the upper digit for each calculation time unit.
  • the redundancy conversion circuit 66 converts the data a66 into non-redundant ⁇ data and outputs data b67.
  • the redundancy conversion circuit 66 generates a carry signal b66 if necessary.
  • the redundant conversion circuit 66 internally holds the input relationships shown in Table 6 below.
  • the carry conversion signal 66 (Carry) b 66 of the redundant conversion circuit 66, —R ”and the conversion result (Resul t ) b 6 7 is generated.
  • the redundant conversion circuit 66 When “1 1” is input as data a 66, the redundant conversion circuit 66 generates a carry signal b 66 of “ ⁇ 1” and a conversion result b 67 of “1”. That is, in order to ensure that the conversion result is a non-redundant number system, the redundant conversion circuit 66 generates a carry signal b 66 of “ ⁇ 1” in the case of a binary SD number.
  • the redundancy conversion circuit 66 attaches a signal corresponding to the “?” Mark when there is a possibility that the value of the carry signal b66 may change due to the carry signal from the lower digit. That is, when “0” is input as the data a 66, the redundant conversion circuit 66 A carry signal b66 of "0 '?" And a conversion result b67 of "0" are generated.
  • the redundancy conversion circuit 66 outputs the generated carry signal b66 to the carry processing circuit 67, and outputs the conversion result b67 to the memory 68.
  • the conversion result b 67 from the memory 68 and the redundancy conversion circuit 66 is delayed by one step (operation time unit) by the control clock d 66.
  • Memory 6 8. 1-6 8 is the same as the memory 6 8 1, has a function of delaying the input data by one operation time unit.
  • the processing circuit 67 i receives and converts the carry signal b 66 coming from the lower digit and the conversion result b 68 output by delaying the conversion result b 67 of the memory 6. For this conversion, the carry processing circuit 67 internally has the input / output relationships shown in Table 7 below:
  • Carry processing circuit 6 7 2 ⁇ 6 7 n is the same kind of treatment and carry processing circuit 6 7 ⁇ .
  • redundant numerical data can be converted into ordinary non-redundant numerical data.
  • Embodiment 15 has been described as an example of an arithmetic processing, a case where a redundant number system of a binary SD number is converted to a binary binary number, the present invention is not particularly limited to this number system.
  • a multivalued redundant number system such as octal, quaternary, and octal numbers may be used, and the number to be expanded may be made positive.
  • “digit” need not be a decimal number, but may be a binary “bit” unit, or a combination of two or more quaternary numbers.
  • each digit including subtraction instruction and comparison instructions; if ' ⁇ can ones, may be any operation instruction.
  • a plurality of combination arithmetic processing semiconductor circuits can be realized from the most significant digit.
  • a semiconductor circuit for arithmetic processing capable of absorbing a low-order signal from the lower digit such as an addition operation by handling a redundant number system and enabling a numerical operation from the upper digit. Is obtained.
  • Claim 8 (According to the related invention, a semiconductor circuit for arithmetic processing from a high-order digit for a general-purpose processor or a semiconductor circuit for arithmetic processing capable of changing functions in real time using a single piece of hardware Can be realized.
  • a semiconductor circuit circuit for arithmetic processing capable of performing binary conversion of a redundant number system from an upper digit can be realized.
  • a semiconductor multiplier that outputs a result from a higher-order digit can be realized.
  • a semiconductor multiplying circuit from the upper digit can be realized by a method different from that of claim 13.
  • the circuit is increased in size to j, the arithmetic function is increased, and the arithmetic processing from the upper digit, which introduces the concept of intelligent arithmetic, can be performed. Will be possible.
  • a high-speed processing method capable of omitting the remaining operations when the operation from the upper digit is determined is enabled.

Landscapes

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

Description

明細書 演算処理用半導体回路および演算処理方法 技 ¾分野
二の発明は、 演算処理用半導体回路および演算処理方法に係り、 特に、 情報処 理ゃ褛器の制御に使用される演算処理用半導体回路および演算処理方法に関す る。 背景技術
ί青報処理などの分野では、 半導体回路が数値演算や論理演算の処理を担う。 し たがって、 半導体回路は、 情報処理などの分野で非常に重要な部分であり、 さま ざまな回路が実際に設計されている。
半導体回路では、 まず、 アナログ情報とデジタル情報に分けられる力 高い信 頼性を持った演算を斤うためには情報をデジタル情報に変換した後に演算処理を ί亍ぅ必要がある。 ½つて、 本発明においては、 アナログ情報は多値情報もしくは デジタル ί言号に変換して演算処理するということを原則とする。
ジタル化された情報は数値化されたことになり、 その数値の取り得る範囲に よって、 8ビッ ト、 1 6ビッ 卜、 3 2ビッ ト、 現在は 6 4ビットゃ 1 2 8ビット といったビッ ト幅のデータが用いられている。 このような多ビット情報を処理す る回 ¾形式を大別すると、 ビットパラレル回路とビットシリアル回路に分けられ ビッ ト ラレル処理は、 全ビッ ト分の演算回路を用意しておき、 全ビッ ト同時 に人力し、 演算処理を行う形式である。 マイクロプロセッサを始め、.現在のプロ セッザのほぼ全数近くがこの形式を採用していると言っても過言ではないだろ ビッ卜シリアル処理は、 演算時間単位 (通常はクロック) 毎に、 下位ビッ 卜か ら頓番にビッ 卜単位でデータを入力し、 演算処理する手法である。 この形式は 1ビ ··,' i、の演算回路を設計すればよく、 面積が小さいという利点を持つ。 しか し、 この形式は下位桁から処理を行っているために、 最上位桁のデータを取得す るまでに非常に長 t、時間がかかるという欠点を持つ。
下位桁と上位桁でどちらが重要な情報であるかと L、えば、 上位桁であることは 当たり前である。 それゆえ、 最上位桁を英語で Most Significant Digit (最も重 要な桁) と呼ぶ。 しかしながら、 従来のビッ トシリアル処理が下位桁から処理を 行っていたのは、 加算演算等における 「桁上げ信号」 の問題があるからである。 加算演算で発生する、 桁上げ信号と加算結果には、 まず、 そもそもの数字とし ての桁 ( 1 0進数の位) が違い、 同列に取り扱うことができない。
また、 最下位桁から発生する桁上げ信号が最悪の場合最上位桁まで伝播する可 能性を秘めており、 最下位桁から解と桁上げ信号を決定していく必要がある。 こ の桁上げ ί云播の問題を解決しないことには、 本発明にあたる、 上位桁からの演算 処理は不可能である。
当然、 桁上げ信号に相当するものがない演算、 たとえば単なる大小判断回路な どでは上位桁からの比較判断を含む演算処理半導体回路というものが存在してい る: しかしながら、 桁上げ信号を含むような演算処理を含む上位桁からの演算処 理という発明は皆無である。
二の発明は、 より重要な情報を含む上位桁を優先し、 上位桁から順番にビッ ト リアル形式で演算処理が行える演算処理用半導体回路および演算処理方法を提 することを目的とする。
そのため、 加算等演算における桁上げ信号の桁あわせの問題を第 1の課題と し、 桁上げ ί云播の問題を解決することを第 2の課題とし、 ビットシリアル形式の 演算速度の問題を解決することを第 3の課題とし、 乗算を含めその他の複雑な演 算 · ¾理を上位桁から斤えるようにすることを第 4の課題とする。
^明の開示
二の発明が対象にしている演算は、 上位桁から、 時間ステップ (演算時間単 (立 i 毎にビッ トシリアルで入力されたデータに対する演算であり、 発生する桁上 I τ ;1号を様々な手法を用し、て解決し、 結果として様々な用途を実現しょうとする のである。 この発明による演算処理用半導体回路は、 複数の桁で構成される数のデータが 1つ以上入力され、 かつ、 前記数のデータの上位桁側から演算時間単位につき 1 毎に順に入力される演算処理用半導体回路であつて、 前記入力されたデータの 演算をする演算ュニッ 卜を備え、 前記演算ュニッ卜は、 入力された桁のデータを 寅算時間単位内で演算し、 演算で得た結果を示す演算結果を出力し、 演算によつ て桁上げが発生すると、 この桁上げを示す桁上げデータを出力する演算回路と、 前記演算回路からの演算結果を 1演算時間単位分だけ遅延する遅延手段とを具備 した演算ュニッ 卜を具備するものである。 この遅延により、 桁上げ信号を桁上げ ί言号として特殊扱いする必要はなくなり、 第 1の課題の解決がなされる。
この発明による演算省略用半導体回路による桁上げ信号伝播の問題は、 ( 1 ) 出力されるデータが冗長な数系に属することを特徴とする手法、 (2 ) ある桁の 演算により上位桁へ出力する前記桁上げデータが、 この桁よりも下位の桁の演算 で発生する桁上げデータで変化する力、否かを判断する第 1判断手段と、 前記第 1 判断手段の判断結果が下位桁から出力される桁上げデータに依存しないことを示 すとき、 桁上げデータの変更がないことを上位側へ示す出力手段と、 前記第 1判 断手段の判断結果が下位桁から出力される桁上げデ一タに依存することを示すと き、 下位側の桁上げデータを待つ入力手段と、 下位側からの下位桁の桁上げデー タに応じて、 前記演算結果を変える変更手段とを備えたことを特徵とする手法、 ',3)上位桁から演算時間単位毎に順に演算を行い、 入力されている桁よりも下位 桁で取り得る演算結果の最大値と最小値とを演算する算出手段と、 前記算出手段 が 算した最大値および最小値の少なくとも一方に対して、 別の桁'のデータとの 比 を卜?ぅ比蛟手段とを備えたことを特徴とする手法、 の 3つの手法のいずれか 一 去により、 第 2の課題の解決される。
二の発明による演算処理用半導体回路は、 上位桁から前記演算時間単位毎に順 に出力される演算結果に対して、 上位桁から前記演算時間単位毎に比較および判 新をする判断手段を備え、 前記判断手段の判断結果の真偽が確定した場合に、 残 りの下位桁につ〔、て比較および判断を含む演算処理を省略することを特徴とする ものである。 これにて、 第 3の課題の解決される。
また、 この発明による演算処理用半導体回路は、 2つのデータの一方を被乗数 とし、 他方を乗数とし、 前記乗数が上位桁から演算時間単位毎に順に入力され、 2つのデータの乗算を行いその結果を上位桁から演算時間単位毎に順に出力する 演算処理用半導体回路であって、 前記乗数を 1演算時間単位毎にシフトしながら 記憶する記憶手段と、 前記記憶手段からの乗数と、 前記被乗数との部分積をそれ ぞれ算出し、 演算時間単位毎に最上位桁から順番に、 乗算における同一桁の部分 積を全て生成して出力する第 1演算手段と、 前記第 1演算手段からの同一桁を示 す前記部分積をすベて加算して、 1つの乗算結果を上位桁から出力する第 2演算 手段とを備えるものである。 こうして第 4の課題の解決される。
この発明による演算処理方法は、 複数の桁で構成される数のデータが 1つ以上 し) 入力され、 力、つ、 前記数のデータの上位桁側から順に入力される演算処理方法で あって、 入力された桁のデータを演算時間単位で演算し、 演算で得た結果を示す 演算锆果を出力する第 1処理と、 前記第 1処理の演算によって桁上げが発生する と、 この桁上げを示す桁上げデータを出力する第 2処理と、 前記演算結果を 1演 算時間単位分だけ遅延する第 3処理とを含む。
5
図面の簡単な説明
1は、 この発明の実施の形態 1による演算処理用半導体回路を示すプロック
^である。
i¾J は、 実 の形態 1の加算器 2に対するデ一夕入力のタイミングを説明するU 説明図である。
図 3は、 実施の形態 1による加算の様子を説明する説明図である。
図 4は、 この発明の実施の形態 3に用いられる初段の加算器を示す回路図であ
13 5は、 実施の形態 3に用いられる次段の加算器を示す回路図である。
o 図 6は、 この発明の実施の形態 4による演算処理用半導体回路を示すプロック 図である。
図 7は、 この発明の実施の形態 5による演算処理用半導体回路を示すプロック 図である。
S' 8は、 この発明の実施の形態 6による演算処理用半導体回路を示すプロック δ
図である。
図 9は、 この発明の実施の形態 7による演算処理用半導体回路を示すプロック 図である。
1 0は、 実施の形態 7によって範囲を検出する様子を説明する説明図であ 図 1 1は、 この発明の実施の形態 8による演算処理用半導体回路を示すブロッ ク図である。
図 1 2は、 この発明の実施の形態 9による演算処理用半導体回路を示すブロッ ク図である。
図 I 3は、 実施の形態 9の AZD変換器の動作を説明する説明図である。 図 1 4は、 この発明の実施の形態 1 0を説明するための説明図である。
図 1 5は、 この発明の実施の形態 1 1による演算処理用半導体回路を示すプロ ック図である。
図 1 6は、 実施の形態 1 1による乗算を説明するための説明図である。
図 1 7は、 この発明の実施の形態 12による演算処理用半導体回路を示すプロ ク図である。
1 8は、 この発明の実施の形態 1 3による演算処理用半導体回路を示すプロ
'■/ク図である。
図 1 9は、 実施の形態 1 3による乗算を説明するための説明図である。
図 20は、 この発明の実施の形態 14の原理を説明するための説明図である。 図 2 1は、 実施の形態 1 4による演算処理用半導体回路を示すブロック図であ つつ
図 22は、 実施の形態 1 4の桁上げ制御回路の一例を示すプロック図である。 図 23は、 この発明の実施の形態 15による演算処理用半導体回路を示すプロ ック図である。
号の説明)
ト 3. 2 1. 26 A, 26 B, 56 A, 56 E, 56 B〜56D, 6 1 加
^器
1. 5. 8. 9, 1 4, 33, 4 1 A. 4 1 B, 602, 68 ^68 メ 丄 π モリ
1 0 に入〜 1 0 1 C, 20 1 A, 20 1 B ニューロン MO S トランジスタ i i) l D〜1 0 1 F. 20 1 C, 20 I D インバータ
6. 7 絶対値回路
1 0 最小値回路
1 1 差分回路
1 2 正反転回路
1 3 状態記憶回路
22 遅延回路
23. 27. 28 比較器
24 記憶回路
29 ANDゲート
3 1. 32 汎用回路
36 AZD変換器
37 演算回路
42 A. 42 B データバス
43 演算処理用半導体回路
45 A〜 45H シフ トレジスタ
46 A〜 46 H, 5 δ Α~δ 5 D 部分積発生回路
47 Α〜 47 D, 48 A, 48 B, 49 冗長加算器
5 1 A〜5 1 H, 52A〜52D, 53 A, 53 B, 54 汎用演算器 6 1 m〜 63 m 遅延素子
56 加算部
57 冗長加算器
62. 63 桁上げ制御回路
H 0 1 状態制御回路
603 出力回路
66 冗長変換回路
67 1〜 67 n 桁上げ処理回路 a 1 ~a 9, a l l , a 1 2, a 2 1 , a 22, a 26, a 2 7, a 3 1 ~ a 33. b 3 1 , a 5 1 1〜a 5 1 1 6. a 6 1 , a 36 アナログ信号 a 5 δ 被乗数
a δ 6 乗数
a 62. a 66 データ
b 6. b 7. b 1 2 差分信号
b 2 1. b 56, c δ 6, b 62, c 62. d 62, s l, s 2 加算信号 b 26 最大値信号
b 27 最小値信号
b 36 デジタル信号
b 1. c δ 2. d δ 3 制御命令
b 63. c 63, d 63 状態信号
b 67. b 68, c 67 変換結果
c 1 ~c 4, b l l, c 26、 c 27、 b 55, c 55, b 6 1 , c 6 1, d 6 1. b 66,
じ 6. c 2 1 , d 1 1 , d 3 1, e 5 δ, d 66 制御クロック
c 1 1 絶対値 ί言号
c 66 桁上げ信号
d 1. d 2, b 32, c 3 1, c 32, b 37, e 22, a 60 1 制御信号 d 2 1. d 22 平均値信号.
s 3. s 4 中間和成分
Λ 3 7 1 /2範囲
Λ 38 1 /4範囲
A 39 1 /8範囲
Λ 45 範囲
A 5 o . A δ D 汀
B 1. A36 全範囲
β 2〜 B 5 範囲
T 1〜T5. Τ 7 1〜Τ 74 タイミ ング 発明を実施するための最良の形態
次に、 この発明の実施の形態について、 図面を参照して説明する。
なお、 以下の説明の中で、 「桁」 が次のことを意味する。 つまり、 データ力数 ί直で表現されているとき、 「桁」 は、 このデータの演算処理をする際の単位とな る概念であり、 1 0進数で言う 「位」 である。 「演算」 は > 数値演算に限らず、 論理演算を含む。 特に、 「上位桁」 が現在処理している桁よりも一桁分大きい桁 を表し、 「下位桁」 カ 桁分小さい桁を表す。 「上位析側」 とは、 処理している 桁から連読した複数桁の上位の桁を表し、 「下位桁側」 とは、 処理している桁よ りも連铳した複数桁の下位の桁を表す。
さらに、 「冗長な数系」 とは、 Ν進数の各桁に、 Ν + 1個以上の数を許す数系 を示す概念である。
[発明の実施の形態 1 ]
実施の形態 1は、 データを加算する演算処理用半導体回路に対して、 この発明 を適用したものである。 実施の形態 1では、 冗長 η進数系として 2進 S D ( Signed Digi t) 数系が用いられている。
2進 S D数系は、 冗長数系の 1つであり、 「0」 と 「1」 との組み合わせで構 成される 2進数に対して、 「― 1」 という本来ない冗長な値の数字を許可する。 二の '2進 S D数系を用 L、た計算規則の例を、 次の表 Iに示す。 以下の説明では、 とえば、 データ 「0 1 0」 が 2進 S D数系で示されているときには、 このデー クを 「0 1 0」 SDで表し、 データ 「0 1 0」 が 2進数系で示されているときに は、 このデータを 「0 1 o」 Bで表す。 また、 1 0進数系で示されているデータ 2」 を 「2」 Dで表す。
(表 1 >
Figure imgf000010_0001
Figure imgf000011_0001
なお、 表 1の中では、 印 「 ·」 の前にある 2文字が「Carry (キャリー) 」 を 表し、 後にある 1文字が「Sum (サム) 」 を表す。 表 1は、 値 Aと値 Bとの加算 を示す計算規則である。 2つの値の加算結果が「Sum」 の値と 「Carry」 の値とで 表される。 このとき、 「Sum」 が値 Aと値 Bの加算値を示し、 「Carry」 が桁上げ データを示す。 以下では、 「Carry」 を桁上げ信号と記し、 「Suni」 を加算信号と 記す〕 「CanT」 として 「1」 〜 「一 1」 まで発生する可能性があり、 また、 複 ¾の表現手法がある組み合わせも存在する。
二の 2 il S D数系によれば、 たとえば、 加算の場合に最下位桁から計算が行わ たとき、 加算で発生する桁上げ信号が上位の 2桁までしか伝えずに加算する手 がある。 つまり、 桁上げ信号は、 この信号が発生した桁から上位の 2桁の加算 詰果までしか影響を与えない。 2進 S D数系には、 このような特徴がある。 二の 2進 S D数系を用いた演算処理用半導体回路を図 1に示す。 図 1の演算処 理¾半導 ί本回路は、 加算器 1〜3とメモリ 4, 5とを備えている。
加算器 1は、 演算処理用半導体回路の中で、 初段つまり入力側の演算回路であ るつ 加算器 1には、 データ a 1とデータ a 2とが入力される。 データ a 1は、 数 の中で 1つの桁を表し、 データ a 2は、 別の数の中で 1つの桁を表す。 数は 2進 S D数系で示されているためデータ a 1 , a 2はともに 「一 1」 , 「0」 , —に の 、ずれかである。 データ a 1 , a 2が示す桁は、 数の中の最上位から順 に Π葛-器 1に入力される。
り Π -器 1は、 制御信号に含まれるパルスの立ち上がりで、 データ a 1, a 2を 読み込み、 次の制御信号の立ち上がりまでの間に、 データ a lとデータ a 2との 加算を斤う。 データ a 1とデータ a 2との加算に際して、 加算器 1は、 次の表 2 に示す加算規則に従う。
(表 2 )
Figure imgf000012_0001
データ a 1 , a 2が示す各桁の値が、 「一 1」〜「 1」 の範囲であるので、 加 算器 1内部での加算結果が「- 2」 〜「2」 の範囲になる。 加算結果が「- 2」 であるとき、 加算器 1は、 2進 S D数系の桁上げ信号 c 1の値を 「一 1」 にし、 加算 ί言号 s 1の値を 「0」 にする。 加算器 1は、 値「一 1」 の桁上げ信号 c 1を 加算器 2に出力し、 値「0」 の加算信号 s 1をメモリ 4に出力する。
加算器 1内部での加算結果が「2」 であるとき、 加算器 1は、 桁上げ信号 c 1 の値を 「1」 にし、 加算信号 s 1の値を 「0」 にする。 加算器 1内部での加算結 果が 「0」 であるとき、 加算器 1は、 桁上げ信号 c 1と加算信号 s 1との値を
0 j に 9 ·る 0
加算器 1内部での加算結果が 「- 1」 であるとき、 加算器 1は、 桁上げ ft号 c 1の値を 「一 1」 にし、 加算信号 s 1の値を 「1」 にする。 加算器 1内部での 加算結果が「1」 であるとき、 加算器 1は、 桁上げ信号 c 1の値を 「0」 にし、 加算信号 s 1の値を 「1」 にする。 つまり、 内部での加算結果が「一 1」 または 「 1」 の値になったときに、 加算器 1は、 加算信号 s 1の値として 「1」 を出力 する。
メモリ 4は、 制御信号 d 1の立ち上がりで、 加算器 1からの加算信号 s 1を記 憶する。 この制御信号 d 1の立ち上がりから次の制御信号 d 1の立ち上がりまで が演算時間単位 (ステップ) になる。 つまり、 メモリ 4は、 制御信号 d 1の 1演 算時間単位分 (制御信号のパルスと次のパルスとの間) だけ、 加算信号 s 1の値 を遅延して、 加算器 2に出力する。 実施の形態 1では、 メモリ 4として、 パルス の立ち上がりでデータを読み込む Dフリップフロップが用いられている。 また、 Dフ リ ップフ口ップの代わりとして、 R Sフリップフロップや J Kフリップフロ ップがある。
加算器 2は、 演算処理用半導体回路の中で、 中段の演算回路である。 加算器 2 には、 桁上げ ί言号 c 1と加算信号 s 1とが入力される。 このとき、 加算信号 s 1 がメモリ 4で遅延されるので、 加算器 2には、 図 2に示すような組み合わせの桁 上げ ί言号 c 1と加算信号 s 1とが入力される。 加算器 2は、 制御信号の立ち上が りのタイミング Τ 1で、 桁上げ信号 c 1 Τ1および加算信号 s 1 Τ 1を出力し、 タイ ミ ング Τ 2で、 桁上げ信号 c 1 Τηおよび加算信号 s 1 τ2を出力する。 また、 タイ ミ ング Τ 3で、 桁上げ信号 c 1 Τοおよび加算信号 s 1 Τ3を出力する。
このような状態のとき、 加算信号 s l T 1〜s 1 T3がメモリ 4によって遅延され るので、 加算器 2には、 桁上げ信号 c 1 Τ2および加算信号 s 1 Τ 1の組み合わせが タイミング Τ 2で入力され、 桁上げ信号 c 1 Τ3および加算信号 s 1 Τοの組み合わ せがタイミング Τ 3で入力される。
加算器 2は、 制御信号のパルスの立ち上がりで、 桁上げ信号 c 1および加算信 号 s 1を読み込み、 次の制御信号の立ち上がりまでの間に、 桁上げ信号 c 1と加 算 ί言号 s 1との加算を行う。 桁上げ信号 c 1と加算信号 s 1との加算に際して、 加算器 2は、 次の表 3に示す加算規則に従う。
(表 3 )
Figure imgf000014_0001
桁上げ ί言号 c 1の各桁が「一 1」 〜「 1」 の範囲の値であり、 加算信号 s 1の
&桁が「0」 . 「1」 の値であるので、 加算器 2内部での加算結果が「― 1」 〜 —2」 の範囲になる。 加算器 2内部での加算結果が「2」 であるとき、 加算器 2 は、 2進 S D数系の桁上げ信号 c 2の値を 「 1」 にし、 加算信号 s 2の値を _ ( )」 にする。 加算器 2は、 値 「1」 桁上げ信号 c 2を加算器 3に出力し、 値 〕」加算 ί言号 s 2をメモリ 5に出力する。 加算器 2内部での加算結果が「0」 であるとき、 加算器 2は、 桁上げ信号 c 2と加算信号 s 2との値を 「0」 にす る:
加算器 2内部での加算結果が 「- 1」 であるとき、 加算器 2は、 桁上げ信号 c 2の値を 「0」 にし、 加算信号 s 2の値を「一 1」 にする。 また、 加算器 2内 部での加算結果が「1」 であるとき、 加算器 2は、 桁上げ信号 c 2の値を 「1」 にし、 加算信号 s 2の値を 「― 1」 にする。 このように、 内部での加算結果が 「― 1」 または 「1」 になったときに、 加算器 1と異なり、 加算器 2は、 加算信 号 s 2の値として 「一 1」 を出力する。 これは、 2進 S D数系が冗長数系である ので、 1つの数を 2通りに示すことができる点が、 加算器 2で利用されている。 メモリ 5は、 メモリ 4と同じである。 つまり、 メモリ 5.は、 制御信号 d 2の立 ち上がりで加算器 2からの加算信号 s 2を読み込む。 これによつて、 メモリ 5 は、 制御信号の 1演算時間単位分だけ、 加算信号 s 2の値を遅延し、 遅延した加 算信号 s 2を加算器 3に出力する。
加算器 3は、 演算処理用半導体回路の中で、 後段つまり出力側の演算回路であ る。 加算器 3には、 桁上げ信号 c 2と加算信号 s 2とカ认力される。 このとき、 加算信号 s 2がメモリ 5で遅延されているので、 加算器 3には、 1つ前の演算時 間単 ί立で加算器 2が出力した加算信号 s 2が入力される。
加算器 3は、 制御信号のパルスの立ち上がりで、 桁上げ信号 c 2および加算信 号 s 2を読み込み、 次のパルスの立ち上がりまでに、 桁上げ信号 c 2と加算信号 s 2 との加算を斤う。 桁上げ信号 c 2と加算信号 s 2との加算に際して、 加算器 :3 、 次の表 4に示す加算規則に従う。
(表 4 )
Figure imgf000015_0001
上げ ί言号 c 2が用いることができる値が、 「0」, 「1」であり、 加算信号 s 2が用いることができる値が、 「― 1」, 「0」 であるので、 加算器 3内部で の加算結果が「- 1」〜「1」 の範囲になる。 加算器 3は、 内部での加算結果を そのままデータ a 3として出力する。 つまり、 加算器 3の加算結果には、 2進 S D数系の桁上げを示す桁上げ信号が含まれていない。
次に、 実施の形態 1の動作について説明する。
ここでは、 冽として、 データ [1 00] cDとデータ [00— 1] SDとの加算、 つまり、
[l o o] SD+ [00- 1] SD
を説明する。 2つのデータが、
Figure imgf000016_0001
[00- 1] SD= [- 1] D
であるので、 加算結果が 1 0進数系で値 [3 ]Dになる。 この加算の演算が次のよ うにして斤われる。
図 3に示すように、 制御信号のタイミング T 1で、 [100] CDの最上位の桁 を表す「 1」 と、 [00— 1] SDの最上位の桁を表す「0」 と力、 前段の回路か ら加算器 1にデータ a 1, a 2として入力される。 これによつて、 内部での加算 詰果が「1」 になるので、 加算器 1は、 表 2に示される加算規則に従って、 桁上 げ ί言号 c 1の値を 「0」 にし、 加算信号 s 1の値を 「1」 にする。 メモリ 4は、 加算器 1から Γ1」 を受け取ると、 次のタイミング Τ 2でこの値を出力する。 こ の ¾果、 値 「1」 の加算信号 s 1を受け取った時点では、 値 「0」 の加算信号 s 1を出力する。
算器 2は、 加算器 1から受け取った桁上げ信号 c 1の値「0」 と、 メモリ 4 つ、ら受け取った加算信号 s 1の値「0」 とを加算する。 これによつて、 内部での ¾算¾果が「0」 になるので、 加算器 2は、 表 3に示される真理値表に従って、 桁上げ ί言号 c 2と加算信号 s 2との両方の値を 「0」 にする。 メモリ 5は、 前の タイミ ング'のときに受け取った値「0」 を出力する。
加算器 3は、 加算器 2から受け取った桁上げ信号 c 2の値「0」 と、 メモリ 4 力、ら受け取った加算信号 s 2の値「0」 とを加算する。 これによつて、 内部での 加算 ΐ吉果が「 0」 になるので、 加算器 3は、 表 4に示される加算規則に従って、 データ a 3の値を 「0」 にする。
こうして、 制御信号のタイミング T 1では、 最上位の桁の演算結果として、 値 一 0」 のデータ a 3カ^ 後段の回路に出力される。
制御 ί言号のタイミング T 2で、 データ [ 1 0 0 ] CJ)の中の、 最上位の桁から 2 目の Ϊ 「0」 と、 データ [ 0 0 - 1 ] SDの中の、 最上位の桁から 2番目の桁 —0」 とが前段の回路から加算器 1に入力される。 タイミング T 1の場合と同じ ように、 加算器 1〜3が 2〜4の加算規則を用い、 また、 メモリ 4 . 5が値を遅 延して、 2番目の桁が加算される。 この結果、 制御信号のタイミング T 2では、 暄 「1」 のデータ a 3が後段の回路に出力される。
制御信号のタイミング T 3で、 データ [ 1 0 0 ] SDの中の、 3番目の桁「0」 と、 データ [ 0 0— 1 ] SDの中の、 3番目の桁「― 1」 とが前段の回路から加算 器 1に入力される。 タイミング T 1の場合と同じように、 加算器 1 ~ 3とメモリ 4 . 5とが 3番目の桁を加算する。 この結果、 制御信号のタイミング T 3では、 値 「一 1」 のデータ a 3が後段の回路に出力される。
制御 ί言号のタイミング Τ 4では、 演算の終了のために、 前段の回路がデータ a 1 . a 2として、 値 「0」 を加算器 1にそれぞれ入力する。 この結果、 タイミ ング T 4では、 値「0」 のデータ a 3が後段の回路に出力される。 制御信号の夕 ィミング Τ δでは、 同じく演算の終了のために、 前段の回路がデ一夕 a 1 , a 2 として、 値 「0」 を加算器 1にそれぞれ入力する。 この結果、 タイミング T 4で は、 値「― 1」 のデータ a 3が後段の回路に出力される。
タイミング T 1〜T 5によって、 加算器 3が後段の回路に出力するデータの値 力 0 1 - 1 0 - 1 ] SDとなる。 このデータが 1 0進数で (そ になるので、 正し ί、結果が出力されている。
二のように、 実施の形態 1によれば、 2つのデータの加算に際して、 桁上げ信 号が発生しないので、 最上位の桁からの加算が可能になる。 つまり、 遅延手段と してメモリ 4 . δを備え、 かつ、 必要な桁分の演算回路 1〜 3だけの、 非常に簡 な構成によって、 上位桁からの一桁または複数桁単位で、 すべての加算を処理 することができる。 つまり、 小規模な回路で加算を実現できる。
また、 上位桁からの加算に限らず、 減算を含め、 桁上げ信号が必要な演算は全 て実現できることになる。 一般に情報は下位桁よりも上位桁のほうが重要な要素 てあるため、 上位桁から処理することで、 有効な情報をより先に取得することが てきることになる。 また、 回路として 1桁分の演算回路であるため、 小型化でき る持徴も持ち合わせる。
なお、 実施の形態 1では、 データ a 1, a 2の値として 2進 SD数系を用いた 力 \ 通常の 2進バイナリを用いてもよい。 各制御信号としてクロックパルスを用 いてもよい。 このときには、 メモリ 4, 5がクロックのエッジで値を言己憶するよ うにする。
また、 1 0進 1 1値といった冗長数系でも、 実施の形態 1と同様の回路形式で 加算が可能である。 冗長数が負である必要はなく、 正の方向に伸ばしても問題は ない 3 実施の形態 1では、 加算器を 3段で構成しているが、 加算器を 4段以上に すると、 上位桁からの多入力の加算を実現することができる。
さらに、 2進 S D数系で発生する桁上げ信号が上位の 2桁まで伝わるが、 2進 S D数系に比べてさらに、 冗長度の大きな数系によれば、 桁上げ信号の伝搬が上 位のけ で収まる。 このために、 加算器を 2段にすることができる。
[発明の実施の形態 2]
実施の形態 2では、 実施の形態 1の加算器 1 , 2を次のようにして具体化して いるつ つまり、 このために、 「0」 と 「1」 の組み合わせで構成される、 2桁の 2進 ¾を用いる。 2桁の 2進数によれば、 4通りの 「0」 と 「1」 の組み合わせ がある。 実施の形態 2では、 2進 S D数系の 「0」 が 2通りの 2進数で表され る。 したがって、 2進数による 2進 S D数系の 「1」、 「0」 、 「一 1」 は、 次 のように表現される。
. 2進 S D数系の 「一 1」 … [1 1] B
2進 S D数系の 「0」 … [00] B, [ 1 0] B
2進 S D数系の 「1」 … [0 1] B
このように表された 2進 S D数系の 「1」、 「0」 、 「— 1」 によると、 加算 器 1は次のようになる。 たとえば、 データ a 1力 「0」 であり、 データ a 2力く :__ 1」 である場合、 加算器 1には、 値が [00] Bであるデータ a 1が入力さ れ、 値が [ 1 1] Bであるデータ a 2が入力される。 加算器 1内では、 2進 S D数系の表現によると、 加算結果が「― 1」 である。 この場合、 表 2によれば、 桁上げ信号の値が 「― 1」 であり、 加算信号の値が 「 1」 である。 したがって、 加算器 1は、 桁上げ信号として [ 1 1 ] Bを出力 し、 加算 ί言号として [0 1 ] ηを出力する。
このように、 加算器 1の場合、 入力が [00] Βと [1 1] Βとである場合、 出 力が [ 1 1] Βと [0 1 ] Βとである。 さらに、 この他の入力と出力との組み合わ せに基づいて、 ANDゲート、 ORゲートおよび NOTゲートを用いて加算器 1 を構成することができる。
なお、 2進 S D数系を構成する値「一 1」、 「0」 、 「1」 には、 2進数の各 種の対応がある。 そして、 この対応に応じて、 ANDゲート、 〇Rゲートおよび X 0 Tゲートの A N D、 0 R、 NOTに限定されな t、組み合わせが可能である。 また、 AXDゲート、 ORゲートおよび NOTゲートの組み合わせによる回路 構成以外に、 他の論理関数の組み合わせでも設計が可能である。
[発明の実施の形態 3]
実施の形態 3では、 実施の形態 1の加算器 1 , 2が次のような構造である。 つまり、 加算器 1として、 図 4に示す加算器が用いられている。 図 4の加算器 1 0 1は、 ニューロン MO S (Metal Oxide Semiconductor)トランジスタを用 いて作られたニューロン MO Sイ ンバー夕 1 0 1 A〜 1 0 1 Cとインバー夕 1 0 1 D〜 1 0 1 Fとを備えている。
ニューロン MO S トランジスタ 1 0 1 A〜 1 0 1 Cは、 順次に接続されてい るつ
ニューロン MO Sィンバ一夕 1 0 1 Aの出力がニューロン IO Sィンバ一夕 い;) 1 Cとイ ンバ一タ 1 0 1 Fとに接続され、 ニューロン MO Sィンバ一夕 1 0 1 Bの出力がニューロン MO Sィンバータ 1 0 1 Cとィンバータ 1 0 1 Eと に接読されている。 また、 ニューロン MO Sィンバ一夕 1 0 1 Cの出力がィン パータ 1 0 1 Dに接続されている。
2ビッ 卜で構成されるデータ a 4およびデータ a 5は、 図 1のデータ a 1およ びデータ a 2に相当している。 冗長な数系の数の桁が、 データ a 4. a 5で表さ れている。 1本の信号線を伝わる電気信号によって、 データ a 4, a 5を表現す ることができない。 したがって、 データ a 4, a 5を表現するためには、 2本の ί言号線が必要である。
実施の形態 3では、 「― 1」 SDを 「00」 Βとして表現し、 「0」 S Dを
" 1 ()」 Bまたは 「o 1」 。として表現し、 「 1」 SDを 「 1 1」 Bとして表現す る。 この表現によれば、 ニューロン MOSにとつて、 処理が最も簡単になる。 す なわち、 2本の信号線のうち、 " 1" の数が 0個のときに 「― 1」 SDを示し、
- 1 " の数が 1個のときに 「0」 を示し、 "1" の数が 2個のときに 「+ 1」 SD を示す この "1" の数の情報と元の SD数の関係には線形性があり、 かつ、 " 1 " の数をニューロン M OSでは、 等しい容量の 2つの入力端子にそれぞれの ί言号镍を入力すれば簡単に計算が行えるからである。
ニューロン- VIOSインバー夕 10 1 A, 1 0 1 Bには、 しきい値が設けられて いる。 加算結果が「― 0. 5」 および「1. 5」である場合に、 出力が反転する ように、 しきい値が設定されている。 そして、 それぞれの出力を反転すること で、 桁上げ信号 c 3が出力される。 桁上げ信号 c 3の冗長数と電気信号のコード とは、 データ a 4. a 5と同じである。 同時に、 ニューロン M〇 Sインバータ 1 0 1 Bの出力がニューロン MOSィンバ一夕 10 1 Cに入力される。 さらに、 ィン ー夕 10 1 Dがニューロン MO Sインバータ 10 1 Cの出力を反転するこ とで、 加算信号に相当する s 3が出力される。 s 3は図 1の siに相当している。 図 5は、 実施の形態 1の加算器 2に相当するものである。 図 5の加算器は、 二 二一ロン M〇 Sインバ一タ 201 A, 201 Bを備えている。 ニューロン MO S ィンパータ 20 1 A, 20 1 Bは、 順次に接続されている。 ニューロン M〇Sィ ンバ一タ 20 1 Aの出力がニューロン MOSインバータ 20 1 Bとインバータ 20 1 Cとに接続され、 ニューロン MOSインバー夕 20 1 Bの出力がインバー タ 20 1 Dに接続されている。
前段の加算器からの中間和成分 s 3と桁上げ信号 c 3と力く加算される。 内部の 算結果が「― 0. 5」 のときにニューロン MOSインバー夕 20 1 Aの出力が . ¾し、 その出力をインバー夕 20 1 Cが反転して、 桁上げ信号 c 4が出力され るつ 同時に、 ニューロン MO Sィンバータ 201 Aの出力がニューロン MO Sィ ンバータ 20 1 Bに入力されることで、 加算結果成分 s 4が出力される。 加算結 果戎分 s 4は、 ロウレベルのときに 「一 1」 を、 ハイレベルのときに 「0」 を表 現している。 c 4と s 4はそれぞれ図 1の c 2と s 2に相当している。
実施の形態 1の加算器 3に相当する加算器は、 ニューロン MO S トランジスタ を用〔、た場合には不要になる。 加算器 2 0 1からの中間和成分 s 4を 1演算時間 単 ί立分た'け遅延素子にて遅らせる。 桁上げ信号 c 4と、 遅延した加算結果成分 s 4とをベアにして出力する。 遅延素子は実施の形態 1のメモリ 4である。 この ヘアの出力は、 図 1の a 3に相当し, 冗長数と 2本の信号線の対応は、 a 4 , a 5のものと同じである。
このように、 ニューロン M O Sトランジスタを用いると、 極めて容易に回路を 実現することができる。 また、 2進 S D数に限定されることなく、 基数を増加さ せた冗長加算器や、 4入力といった入力数を増加させた冗長加算器、 基数の増加 と冗長数の増加とにより、 遅延素子が 1つ (上位一桁への桁上げ信号の伝搬) の 冗長加算器が容易な回路で実現することができる。
なお、 実施の形態 3では、 ニューロン M O S トランジスタの演算用の基本ゲー 卜として、 インバータ回路を用いているが、 任意のしきい値の設定が可能であ り、 かつ、 出力がバイナリ 「0」 、 「1」 である形式のものであれば、 インバー ク に限定されることがない。 たとえば、 センスアンプ形式の論理回路を用い
、つ = い 0
二発明の実施の形態 4 ]
実施の形態 4は、 第 1と第 2の数の差、 第 3と第 4の数の差の小さい方を演算し、 出力する演算処理用半導体回路に対して、 この発明を適用したものである。 この 演算半導体回路を図 6に示す。 図 6の演算処理用半導体回路は、 差分絶対値回路 6 . 7、 メモリ 8 , 9および最小値回路 1 0を備えている。
差分回路 6には、 第 1の数の 1つの桁を表すデータ a 6と、 第 2の数の 1つの 桁を表すデータ a 7とが入力される。 データ a 6, a 7は、 最上位の桁から順に 差分回路 6に入力される。 差分回路 6は、 入力されたデータ a 6とデータ a 7と の差分を算出し、 算出した差分を表す差分信号 b 6をメモリ 8に出力する。 同じように、 差分回路 7には、 第 3の数の 1つの桁を表すデータ a 8と、 第 4 ^ ¾の 1つの桁を表すデータ a 9とが入力される。 データ a 8 . a 9は、 最上位 の桁から順に差分回路 7に入力される。 差分回路 7は、 入力されたデータ a 8と データ a 9との差分を算出し、 算出した差分を表す差分信号 b 7をメモリ 9に出
] 9 D
メモリ 8 . 9は、 制御クロック c 6で動作する。 メモリ 8 , 9として、 たとえ 5 ば、 Dフリップフロップを用いれば、 メモリ 8 , 9は、 制御クロック c 6のエツ ジ卜リガによって、 記憶している内容を更新する。 つまり、 メモリ 8 , 9は、 1 演算時間単位前の差分信号 b 6 , b 7を最小値回路 1 0に出力する。
最小値回路 1 0は、 メモリ 8 , 9からの差分信号 b 6 , b 7の大小関係に応じ て、 (言号を出力する。 つまり、 差分信号 b 6が差分信号 b 7に比べて小さい場 10 合、 差分 ί言号 b 6を出力する。 この状態が第 1状態である。 差分信号 b 7が差分 ί言号 b 6に比べて小さい場合、 最小値回路 1 0は、 差分信号 b 7を出力する。 こ の状態が第 2状態である。 また、 差分信号 b 6と差分信号 b 7が等しい場合、 最 小値回路 1 0は、 差分信号 b 6と差分信号 b 7とのどちらの信号を出力してもよ (、3 この状態が第 3状態である。
! 5 そして、 リセット ί言号が最小値回路 1 0に加えられるまで、 最小値回路 1 0力 m 1状態や第 2状態から抜け出ることがな L、。
次に、 実施の形態 4の動作につ t、て説明する。
差分回路 6がデータ a 6とデータ a 7との差分を算出し、 絶対値回路 7がデー タ a 8とデータ a 9との差分を算出する。 算出結果は、 差分信号 b 6 , b 7とし 0 て出力されるつ
差分 ί言号 b 6 . b 7は、 メモリ 8 , 9に入力される。 このとき、 制御クロック c 6により記憶内容が更新される。 メモリ 8 , 9の出力は、 前回の演算結果であ り、 一桁上位の差分結果である。 このように、 メモリ 8, 9は、 演算した結果を 記憶する。 つまり、 メモリ 8 . 9は、 差分信号 b 6 , b 7を遅延して、 桁情報のδ ί-上切りとして動作する。
メモリ 8 . 9は、 記憶している差分信号 b 6 , b 7を最小値回路 1 0に出力す る 展' 1、値回路 1 0は、 差分信号 b 6 , b 7の中の小さい方の値を選択する。 そ して、 最小値回路 1 0は、 選択した差分信号を出力する。
この後、 制御クロック c 6の次のパルスによって、 データ a 6〜a 9の桁が次 に^ると、 演算が一桁下位に移り、 上位桁から下位桁に向かって演算が進んで行 二のように、 実施の形態 4によれば、 差分の小さい方の値を上位桁から順に出 力することができる。 通常、 最小値の判断に際して、 データを構成する桁の中の 上位桁から順に調べる必要がある。 この結果、 実施の形態 4は、 上位桁からの演 算に適して L、る。
また、 異なった演算器を多段に配置することで、 複雑な演算の組み合わせを実 現することができる。
これは、 上 桁からの処理の特徴である。 なお、 実施の形態 4では、 演算が 2 Sになっているが、 2段以上であれば何段でもよい。
また、 桁情報の区切りおよび記憶をするメモリ力必ずしも各段にある必要がな く、 最終 aの出力に設けられていなくてもよい。
二発明の実施の形態 5 ]
実施の形態 5では、 差分の絶対値を算出する演算処理用半導体回路に対して、 この発明が適用されている。 この演算処理用半導体回路を図 7に示す。 図 7の演 算 !β理用半導体回路は、 差分回路 1 1、 正反転回路 1 2、 状態記憶回路 1 3およ メモリ i 4を備えている。
差分回路 1 1には、 第 1の数の 1つの桁を表すデータ a 1 1と、 第 2の数の 1 つの桁を表すデータ a 1 2とが入力される。 データ a 1 1 . a 1 2は、 データを 構成する桁の最上位桁から演算時間単位毎順に差分回路 1 1に入力される。 差分回路 1 1は、 入力されたデータ a 1 1からデータ a 1 2を減算する。 差分 回! ½ 1 1は、 差分の算出で発生した桁上げ信号 b 1 1を出力すると共に、 減算し Γこ iき分を示す差分信号 b 1 2を正反転回路 1 2と状態記憶回路 1 3とに出力す 状態記 I意回路 1 3は、 差分信号 b 1 2の状態を記憶する。 差分演算には 3つの 状態がある。 データ a 1 1とデータ a 1 2とのどちらが大きいか下位桁に判断を だねる伏態、 データ a 1 1が大きいと判断がついた状態、 すなわち差分信号 b 1 2が正のとき、 データ a 1 2が大きいと判断ついた状態、 すなわち差分信号 b 1 2が負のときである。 一度どちらかが大きいと判断がつくと、 処理が終わる までその状態を抜け出すことはない。 状態記憶回路 1 3は、 これら 3つの状態を 記憶するつ そして、 データ a l 2が大きいと判断ついた状態のとき、 状態記憶回 ¾ 1 3は、 正反転回路 1 2に反転命令を出力する。
正反転回路 1 2は、 差分信号 b 1 2の値の絶対値をとる。 このために、 正反転 回路 1 2は、 状態記憶回路 1 3が記憶している差分信号 b 1 2の状態を用! ^ゝる。 すなわち、 データ a 1 2が大きい状態の場台、 差分信号 b 1 2は負であるため、 正反転回路 1 2は、 差分信号 b 1 2の各桁の正負を示す符号を反転する。 正反転 回路 1 2は、 こうして算出した差分信号 b 1 2の絶対値を示す絶対値信号 c 1 1 を上位桁から順に出力する。
メモリ 1 4は、 制御クロック d 1 1で動作し、 正反転回路 1 2からの絶対値信 号 c 1 1を記憶する。
このような実施の形態 5によって、 メモリ 1 4に記憶されている絶対値信号 c 1 1は、 制御クロック d 1 1の次のクロックで出力される。 すなわち一演算時 間単位分遅延させる。 これによつて、 差分回路 1 1が生成した桁上げ信号 b 1 1 と、 メモリ 1 4が出力する絶対値信号 c 1 1とが同一時間で同じ桁を示すことに なり、 外部回路での取り扱 L、を容易にすることができる。
[発明の実施の形態 6 ]
実施の形態 6では、 上位桁から行われる任意の演算に連続して、 上位桁から比 ·判断をし、 真偽が確定した場合に残りの下位桁の比較 ·判断を含む演算処理 を省略する演算処理用半導体回路に対して、 この発明が適用されている。 この演 ¾理用半導体回路を図 8に示す。 この演算処理用半導体回路は、 2つの 2進数 の平 ¾値について複数組の中から最大なものを探し出す回路であり、 加算器 2 し 運延回路 2 2、 比較器 2 3および記憶回路 2 4を備えている。
加^器 2 1には、 第 1の数の 1つの桁を表すデータ a 2 1と、 第 2の数の 1つ の ίί'ϊを表すデータ a 2 2とが入力される。 データ a 2 1, a 2 2は、 最上位の桁 から順に加算器 2 1に入力される。 加算器 2 1は、 入力されたデータ a 2 1と データ a 2 2とを加算し、 加算結果を示す加算信号 b 2 1を遅延回路 2 2に出力 する。 この加算器は、 実施の形態 1で述べた回路であり、 内部に遅延手段を持 ち、 外部へは桁上げ信号を発生しない。 遅延回路 2 2は、 加算器 2 1から加算信号 b 2 1を受け取ると、 制御クロック c 2 1によって、 加算信号 b 2 1を 1演算時間単位だけ遅らせる。 上位桁からの 処理の場合、 1演算時間単位の遅延は、 桁を 1つずらすこと、 すなわち、 1 2進 数では 2で割ったことに相当する。 第 1のデータおよび第 2のデータは、 2進数 δ であるため、 一桁分の遅れは、 2で割ったことと同じになり、 この結果、 平均値 が計算される。 遅延回路 2 2は、 平均値を示す平均値信号 d 2 1を比較器 2 3に 出力する。
一方、 記憶回路 2 4は、 比較器 2 3が出力する最大の平均値信号 d 2 2を記憶 している。 そして、 比較器 2 3からの制御信号 e 2 2がオフであるとき、 記憶し0 ている現在の平均値信号、 つまり、 過去の平均値の最大値を示す平均値信号を最 上位桁から順に比較器 2 3に出力する。 また、 比較器 2 3からの制御信号 e 2 2 がオンになると、 記憶回路 2 4は、 出力を中止し、 次からは再び最上位桁から順 に最大平均値を出力するように準備をする。
比蛟器 2 3は、 遅延回路 2 2からの平均値信号 d 2 1および記憶回路 2 4から の過去の最大平均値信号を上位桁から順番に受け取る。 比較器 2 3は、 遅延回路 2 2からの平均値信号 d 2 1が示す値と、 記憶回路 2 4からの過去の最大平均値 ί言号が示す値とを比較し、 どちらが大きいかを判断する。 そして、 比較器 2 3 、 大きい方の平均値信号を記憶回路 2 4に上位桁から順番に出力する。
また、 2つの平均値信号の比較の際に、 過去からの平均値の最大値、 つまり、 記 I意回路 2 4からの平均値信号が示す値の方が大きいと、 比較器 2 3カ碎 ij断する 二とができる場台がある。 たとえば、 2進 S D数系であれば、 遅延回路 2 2から の平均値 (言号が [ 0 0— 1 . . . ] SDであるのに対して、 記憶回路 2 4からの平 均暄信号が [ 0 1 0 . . . ] SDである場合が相当する。 この場合、 比較器 2 3 は、 上位から数桁目の時点で、 比較判定を確定することができる。 この場合に は、 比較器 2 3は、 制御信号 e 2 2をオンにする。
制御信号をオンにした時点で、 比較器 2 3がそれ以降の下位桁の比較判断を止 め、 同時に、 記憶回路 2 4が平均値信号の出力を中止するので、 平均値の計算や 比狡演算が中止される。 そして、 すべての演算回路のデータ転送を最上位桁から に戻し、 次の桁のデータ a 2 1 , a 2 2に投入する。 こうして、 データが上位桁から逐次比較され、 比較された結果の中で大きな方 を出力すると共に、 最大値を更新できないと、 比較判断がついた桁以降の比較を きむ演算 ¾理を省略することができる。 この結果、 無駄のな t、演算を実現するこ とができる。
また、 この無駄な演算の抑止によって、 処理を高速化することができるばかり でなく、 ί氐消費電力回路の実現が可能になる。 特に、 大量のデータを処理する際 に有効である。
演算の種類は平均値に限定されるものでもなく、 比較,判断演算の種類も最大 のものに限定されるものでもなく、 何らかの演算した結果に対して比較 ·判断を する回路があればよく、 たとえば、 2つの数の差分値がある値以下のものを出力 する回路などでもよい。
また、 演算の停止命令後、 速やかに次のデータを投入するためには、 データ a 2 1やデータ a 2 2以前に、 データのバッファが必要になることもある。
[発明の実施の形態 7 ]
実施の形態 7では、 データが示す値の範囲を演算し、 演算した結果が所定範囲 に属するかどうかを判断する演算処理用半導体回路に対して、 この発明が適用さ : ている。 この演算処理用半導体回路を図 9に示す。 図 9の演算処理用半導体回 、 大値出力用の加算器 2 6 A、 最小値出力用の加算器 2 6 B、 比較器 2 7 . 2 8および A N Dゲー卜 2 9を備えている。
最大値出用の力加算器 2 6 Aは、 上位桁から順に入力されるデータ a 2 6と ーク a 2 7との加算結果として、 下位桁側によって取り得る値の中の最大値を ^岀する。 そして、 加算器 2 6 Aは、 算出した最大値を示す最大値信号 b 2 6を 出 する。
最小値出力用の加算器 2 6 Bは、 データ a 2 6とデータ a 2 7との加算結果と して、 下位桁则によって取り得る値の中の最小値を算出する。 そして、 加算器 2 6 Bは、 算出した最小値を示す最小値信号 b 2 7を出力する。
比較器' 2 7は、 あらかじめ設定された上限値と加算器 2 6 Aからの最大値信号 b 2 6とを比較する。 比較の結果、 最大値信号 b 2 6が示す値が上限値に比べて :'さ なつたときに、 比較器 2 7は、 真を c 2 6に出力する。 それ以外のときは c 2 6は (為を出力する。
比較器 2 8は、 あらかじめ設定された下限値と加算器 26 Bからの最小値信号 b 2 7とを比較する。 比較の結果、 最小値信号 b 27が示す値力下限値に比べて 大きくなつたときに、 i 較器 28は、 真を c 27に出力する。 それ以外のときは c 27に偽を出力する。 c 26, c 27のいずれも真のときに 「1」, 偽のとき に 「0」 となるようにする。
AXDゲート 29は、 比較器 2 7からの出力 c 2 6と比較器 28からの出力 c 2 7との論理積の演算をする。 それぞれの比較器 27, 28が真を出力したと き、 AXDゲート 29が真を出力する。 逆に c 26, c 27のどちらかが偽なら ば出力も ί為となる。
この実施の形態 7によれば、 たとえば、 図 1 0に示すように、 加算結果が所定 範囲に入ったどうかの判断を下せる。 図 1 0ではバイナリ 2進数系を仮定してい る。 つまり、 初期状態では、 加算器 26 Αが算出する最大値と、 加算器 26 Bが 算出する最小値との範囲が、 全範囲 B 1になる可能性がある。 最上位桁の演算結 ^が「0」 である場台、 それ以降の桁によって取り得る範囲は、 [0 1 1. . . 1 1 ] から [0000. . . 0] Bまでである。 したがって、 範囲 B 2が加算結 果の中で取り得る部分である。 この場合、 比較器 27, 28のどちらも偽を出力 している。
次の下 ί立のデータ a 26, a 27を用いた演算結果が、 「1」 である場合、 最 'W直が「0 1 0. . . 0」 に変化する。 この場合、 範囲 B 3が加算結果の中で取 り ί尊る部分である。
次の下位のデータ a 2 6, a 2 7を用いた演算結果が、 「0」 である場合、 最 大 (直が「0 1 0 1 1. . . 1」 に減少する。 この場合、 範囲 B 4が加算結果の中 で取り得る部分である。 このとき、 範囲 B 4の最大値が上限値よりも小さくなつ ている。 すなわち比較器 2 7が真を出力するようになる。 し力、し、 比較器 2 8が i, を出力しているので全体の出力は偽のままである。
^の下 ( のデータ a 2 6, a 2 7を用いた演算結果が、 「 1」 になると、 範囲 B 5のように、 とりうる最小値が上限値よりも大きくなる。 これによつて、 次の 下位桁を演算することなく、 上限値と下限値とで決められる所定範囲に、 範囲 B 5が入っていることが分かる。 この場合、 比較器 2 7 . 2 8の両方が真を出力 するため、 A N Dゲート 2 9の出力も真となる。
こうして、 実施の形態 7によって、 データ a 2 6とデータ a 2 7との加算結果 が所定範囲内に入るかどうかを検出することが可能である。
実施の形態 7では、 加算器 2 6 A, 2 6 Bを用いているが、 最大値と最小値が 検出できる回路構成であれば、 どのような演算でもよい。
また、 比較演算としては、 上限値だけとの比較でも良く、 下限値だけとの比較 でもよい。 演算も加算に限定されるものではない。
さらに、 図示を省略しているが、 上限値と最小値との比铰、 あるいは下限値と 最大値との比較を行うことで、 所定範囲外のデータであるかどうかを検出するこ とも可能である。
:発明の実施の形態 8 ]
実施の形態 8では、 演算機能の切り替えが可能な演算処理用半導体回路に対し て、 この発明が適用されている。 この演算処理用半導体回路を図 1 1に示す。 図 1 1の演算処理用半導体回路は、 上位桁から処理することが可能な汎用回路 3 1 . 3 2とメモリ 3 3とを備えている。
;凡用回路 3 1は、 上位桁からの加算機能や上位桁から比較機能等の複数の上位 Ϊから順に処理できる演算機能を持つ回路である。 汎用回路 3 1は、 制御信号 c 3 1が示す命令によって、 複数機能の中の 1つを選択する。 ;凡用回路 3 1は、 人力されたデータ a 3 1 , a 3 2を、 選択した演算機能で処理する。 この後、 汎 ¾回路 3 1は、 演算結果を示すデータ b 3 1をメモリ 3 3に出力する。 また、 汎 回路 3 1は、 必要に応じて、 上位桁の制御 ί言号 b 3 2を出力する。
回路 3 2は、 汎用回路 3 1と同じように、 加算機能や比較機能等の複数の r. .iiiから順に処理される演算機能を持つ回路である。 汎用回路 3 2は、 制御信 号し' 3 2が示す命令によって、 複数機能の中の 1つを選択する。 汎用回路 3 2 は、 入力されたデータ a 3 3やメモリ 3 3からのデータ b 3 2を、 選択した演算 it能で !β理する。
メモリ 3 3は、 汎用回路 3 1からのデータ b 3 1を制御クロック d 3 1によつ て、 し;寅算時間単位だけ遅らせる。 そして、 メモリ 3 3は、 遅延させたデータ b 3 2を汎用回路 3 2に出力する。
このような実施の形態 8によれば、 制御信号 c 3 1. c 32によつて演算機能 をコントロールすることができ、 制御信号 c 3 1, c 3 2が示す命令に応じた答 えを出力することができる。 つまり、 制御信号 c 3 1, c 32を与えることによ 5 つて、 演算機能の任意の設定を可能にする。
なお、 実施の形態 8が 2つの汎用回路と 1つのメモリから成り立っているが、 汎用回路とメモリの個数および組み合わせについては、 特にこれに限定されるも のではない。
また、 汎用回路としては、 各機能を行う回路を用意することで実現可能であ ;() ,、 ニューロン MO S トランジスタを用いたフレックスウェアでも実現すること 可能あり、 汎用回路が特に限定されるものではな! <、。
さらに、 この制御信号 c 3 1 , c 3 2が同じでもあっても、 異なっていてもよ い。 たとえば、 制御信号 c 3 1が加算命令を示し、 制御 ί言号 c 3 2カ<比較命令を 示すという連铳演算でもよく、 また、 c 3 1と c 32とを共に加算命令にして連 15 読した桁を演算する命令でもよい。
[発明の実施の形態 9]
実施の形態 9では、 アナログ信号を一般に逐次比較形式と呼ばれる上位桁から 順にアナログ-デジタル (AZD) 変換処理後のデータ処理を行う演算処理用半 導 ί本回路に対して、 この発明が適用されている。 この演算処理用半導体回路を図0 1 2に示す。 図 1 2の演算処理用半導体回路は、 AZD変換器 3 6と演算回路 :;丁ご 'ご てい 。
.入, じ变換器3 6は、 アナログ信号をデジタル信号に変換する手段である。 A - D変換器 3 6は、 一般に逐次比較形式と呼ばれる変換方式により、 デジタル信 号に上位桁から順に変換する。 たとえば 2進数の場合、 全体を 2つの領域に分割5 して、 どちらの領域に入力アナログ電圧が属するか判断する。 判断結果が高電圧 側ならば " 、 低電圧側ならば "0" を出力する。 次いでアナログ電圧の属し XI、た片方の領域を更に 2つの領域に分割し、 どちらの領域に属するか判断を下 す: 同じように高電圧側の領域に属していれば " 1 " を、 低電圧側ならば "0"
¾出力させる。 このような分割を判断をくりかえし、 入力するアナログ電圧の属 する領域の範囲を順に狭めていくことで、 上位桁から逐次変換する。 分割と判断 は 1演算時間単位毎に行う。
A/ D変換器 3 6の変換の様子を図 1 3を用いて詳しく説明する。 AZ D変換 器 3 6に入力されたアナログ信号 a 3 6の電圧レベル (以下、 入力電圧と記す) δ が破線で示したレベルであったとする。 最初に、 入力電圧が最大振幅の半分より 大きいか小さいかを、 A Z D変換器 3 6力伴 ij断する。 この場合、 最大振幅の全範 S! A 3 6を 2つの小範囲に分け、 入力電圧が最小側の 1 2範囲に入るか、 最大 则の 1 / 2範囲に入るかを判断する。 この場合、 入力電圧が最大側の 1 Z 2範囲 に入るので、 A / D変換器 3 6は、 第 1 ビッ 卜力 「 1」 であるデジタル信号0 b 3 6を出力する。
次の演算時間単位後に、 最大側の 1 2範囲 A 3 7をさらに 2つの 1 4範囲 に分け、 入力電圧力最小側の 1 Z 4範囲に入るか、 最大側の 1 Z 4範囲に入るか を判断する。 この場合、 入力電圧が最小側の 1ノ 4範囲に入るので、 AZD変換 器 3 6は、 第 2ビッ 卜が「0」 であるデジタル信号 b 3 6を出力する。 以下、 同5 じょうにして、 AZ D変換器 3 6は、 演算時間単位毎に 1 4範囲 A 3 8では第 3ビッ 卜の結果「 1」 を出力し、 1ノ8範囲八3 9では第 4ビッ卜の結果「 1」 を出力する。
二のように、 0変換器3 6は、 電圧の範囲を抉めて、 アナログ信号 a 3 6 'を ジタル (言号 b 3 6に変換する。 このとき、 八/ 0変換器3 6は、 変換結果を(j 上位ビッ 卜から順に出力する。 このような A/ D方式は既知のものである力、 本 持許では上位桁からの演算回路 3 7と組み合わせ. かつ変換をこの演算回路と同 期させることに特徴がある。
また、 AZ D変換器 3 6は、 演算回路 3 7から制御信号 b 3 7を受け取ると、 アナログ (言号 a 3 6の上位桁からの A/ D変換を中止する。
5 演算回路 3 7は、 A/ D変換器 3 6力出力するデジタル信号 b 3 6を受け取る と、 デジタル ί言号 b 3 6に対して、 あらかじめ設定された演算をする。 そして、 ¾算回路3 7は、 演算結果に基づいて、 アナログ信号 a 3 6をデジタル信号 b 3 6に变換する必要がないと判断すると、 変換中止を示す制御 ί言号 b 3 7を A • D变換 -器 3 6に出力する。 必要がないという判断は、 たとえば、 その時に AZ D変換器に求める変換精度が得られた時や、 何らかの判断手段の真偽が確定した 場台などが考えられる。
二のような実施の形態 9によれば、 制御信号 b 3 7を A/ D変換器 3 6に戻す 二とで、 アナログ 'デジタル変換を途中で中止し、 次のアナログ信号を入力する 二とが可能である。 この結果、 無駄な変換を抑止し、 平均的な変換速度の向上、 消費電力の低減などの利点が生まれる。
なお、 実施の形態 9では、 デジタル信号 b 3 6として 1ビット (2進数) 毎の 出力を得るために、 電圧の範囲を 1 Z 2ずつ抉めていったが、 複数ビット単位な どの場合には、 Xビッ 卜毎の出力を得るためには、 電圧の範囲を 2の N乗分の 1 にし、 どの範囲に入るか判断を下していけばよい。
[発明の実施の形態 1 0 ]
実施の形態 1 0では、 フレキシブルなビッ ト幅のデータを転送できるバスを用 いる演算処理用半導体回路に対して、 この発明が適用されている。 この演算処理 用半導体回路について図 1 4を用いて説明する。 図 1 4では、 メモリ 4 1 A. 4 1 Bがビッ トシーケンシャルメモリである。 つまり、 メモリ 4 1 A, 4 1 B は、 複数のデータを記憶し、 データを演算単位の桁毎にデータバス 4 2 A , 4 2 Bに出力する。 このとき、 メモリ 4 1 A, 4 1 Bは、 上位桁から下位桁に向 つ、い順番に桁毎のデータを出力する。 つまり、 2進数においてはメモリ 4 1 A, 4 1 Bは、 記憶しているデータの上位ビッ 卜から下位ビッ 卜に向かい、 1ビッ ト ずつ順番に出力する仕組みを持.つている。 メモリ 4 1 A, 4 I Bとしては、 たと えは'、 シフ トレジスタで構成されたものがある。
データバス 4 2 A, 4 2 Bを経由してメモリ 4 1 A, 4 1 Bに接続されている 演算処理用半導体回路 4 3は、 データを上位桁から順に処理する演算回路もしく は 具ュニッ 卜でめる。
子一タバス 4 2 Λ. 4 2 Bは、 一つのデータにつき 1ビッ卜幅のデータバスが あればよい。 つまり、 データバス 4 2 A, 4 2 Bのバス幅が、 メモリ 4 1 A , 1 Bから同時に読み出せるデータ数 (=並列度) に相当している。
このように、 従来のバス幅がデータのビッ 卜幅、 または、 その倍数であつたの に対し、 実施の形態 1 0によれば、 全バス幅をメモリ 4 1 A. 4 1 Bから同時に 読み出せるデータ数にすればよい。
なお、 実施の形態 1 0では、 演算単位として 1ビッ ト単位を採用して説明をし たが、 2ビッ ト以上でもよく、 本発明はそれに限定されないことは言うまでもな また、 演算処理用半導体回路 4 3として単一の回路を用いているが、 特に一つ の回路である必要はなく、 上位桁から順に処理する演算処理用半導体回路であれ ばよい。
[発明の実施の形態 1 1 ]
実施の形態 1 1では、 上位桁からの加算により上位桁から乗算を行う演算処理 用半導体回路に対して、 この発明が適用されている。 この演算処理用半導体回路 を図 1 5に示す。 図 1 5の演算処理用半導体回路は、 シフ トレジスタ 4 5 A〜 4 5 H、 部分積発生回路 4 6 A〜4 6 Hおよび冗長加算器 4 7 A〜4 7 D , 4 8 A. 4 8 B , 4 9を備えている。
シフトレジスタ 4 5 A〜4 5 Hは、 全部で 8ビットの乗算を想定し、 8個のシ フトレジスタであり、 上位桁から入力されたデータをクロックのエッジにより順 に 4 5 Hには 4 5 Gの内容がシフトされ、 4 5 Gには 4 5 Fの内容が、 4 5 Fに !5 4 5 Eの内容がシフ卜され、 以下同様に内容がシフ卜され、 4 5 Aには新しい 桁の乗数情報が入る。 このデータは、 乗数を示すデータの最上位桁から順に、 シ フ 卜レジスタの 4 5 Aに入力される。 シフ卜レジスタ 4 5 A〜4 5 Hは、 記憶さ れた乗数データを部分積発生回路 4 6 A〜4 6 Hに出力する。 たとえば、 最初の ステップでは、 シフ トレジスタ 4 5 Aに乗数データの最上位桁が入り、 部分積発 生回路 4 6 Aにデータを出力する。 残りの 4 δ Β〜4 6 Ηには 0が記憶されてい る: 次のステツブでは、 4 5 Βに最上位桁が記憶され、 4 5 Αには最上位から 2 t行目のデータが記憶され、 部分積発生回路 4 6 A〜4 6 Bにそれぞれ出力され る。
部分積発生回路 4 6 A〜 4 6 Hは、 8ビッ トの乗算のため、 8回の部分積発生 回路であり、 シフ卜レジスタ 4 5 A〜4 5 Hから出力される乗数と、 全ビッ 卜が 同時に人力されている被乗数との部分積を算出する。 被乗数は、 4 6 Aに最上位 i行、 4 6 Hに最下位桁が入るようになつている。 そして、 部分積発生回路 4 6 A 〜4 6 Hは、 最上位桁から順番に、 乗算における同一桁の部分積を加算回路へ出 力する。
冗長加算器 4 7 A〜4 7 D , 4 8 A, 4 8 B , 4 9は、 ツリー状の接続をして いる。 このツリー型接続によって、 冗長加算器 4 7 A〜4 7 D , 4 8 A , δ 4 8 Β . 4 9は、 部分積発生回路 4 6 Α〜 4 6 Ηで発生した部分積を加算し、 最 終段の冗長加算器 4 9で 1つの乗算結果を上位桁から順に出力する。
このような構成によって、 図 1 6に示すように、 乗算が筆算の形式に展開さ れ、 加算する部分積を縦割りした状態の、 部分積列が生成,加算されることで乗 算が実現される。 図 1 6では、 縦割りにされた部分積の範囲が範囲 A 4 5で示さ0 れている。 そして、 部分積発生回路 4 6 A〜 4 6 Hからは、 範囲 A 4 5の内部の
8つの枠に入る数字が同一クロックで出力されることになる。 1ステップ (演算 時間単位) 毎に範囲 A 4 5が下位桁 (図 1 6上では、 右側) に移動し、 一つ下位 桁の部分積が範囲 A 4 5に現れることになる。 こうして範囲を下位桁に移動する 二とで部分積力 <上位桁から下位桁に向かい順に生成されることになる。 冗長加算5 器 4 7 A〜4 7 D . 4 8 A, 4 8 B, 4 9によって、 部分積発生回路 4 6 A〜 4 6 H力性成して上位桁からの部分積を加算し、 こうして上位桁からの乗算結果 を得ることができる。
このように、 実施の形態 1 1によれば、 上位桁からの加算によって、 上位桁か らの乗算を斤うことが可能になる。
d なお、 実施の形態 1 1では、 単純化のため、 8ビット単位の乗算に対して、 8 つの部分積を発生しているが、 一般に用いられているブースデコーダを用いて、 同一時間に生成する部分積の数を減らしてもよい。
また、 冗長加算器 4 7 A〜4 7 D , 4 8 A, 4 8 B, 4 9として、 2入力 1出 力タイブのものを用いているが、 上位桁からの加算が行える加算器なら何でもよ5 く、 たとえば、 4入力 1出力の冗長加算器等でもよい。
さらに、 実施の形態 1 1では、 8ビッ 卜の乗算器を例にしているが、 8ビッ ト に限定されるものではなく、 1 6ビットなど何でもよい。 1 6ビッ トの場合に は、 生成される部分積が原則として 1 6個になる。
[発明の実施の形態 1 2 ] 実施の形態 1 2は、 実施の形態 1 1の変形例である。 つまり、 実施の形態 12 では、 乗算以外にも検索などを含む情報集約型の処理をする演算処理用半導体回 路に対して、 この発明が適用されている。 この演算処理用半導体回路を図 17に 示す。 図 17の演算処理用半導体回路は、 汎用演算器 5 1 A〜5 1 H. 52 A〜 δ 2 D. 53 A, 53B, 54を備えている。
実施の形態 1 2では、 汎用演算器 5 1 A〜5 1 H, 52 A~52D, 53 A, 53 B. 54がツリー状に接続されている。 汎用演算器 5 1 A~5 1 Hが制御命 令 b 5 1によって制御され、 汎用演算器 52 A〜52D力制御命令 c 52によつ て制御される。 そして、 汎用演算器 53 A, 53 Bが制御命令 d 53によって制 御される。
たとえば、 汎用演算器 5 1 A~5 1 Hは、 制御命令 b δ 1によって指定される 演算 理を、 データ a 5 l i a S 116に対して行う。 つまり、 汎用演算器 5 に 〜 5 1 H, 52A〜52D, 53 A. 53 B, 54力上位桁からの加算を 斤う機能を持てば、 実施の形態 1 1と同等の機能を果たす。 また、 汎用演算器 5 し 〜 5 1 H, 52A〜52D, 53 A. 53 B, 54が上位桁からの最大値 を出力する回路であれば、 汎用演算器 54から最大値が出力されることになる。 二のように、 この実施の形態 1 2によれば、 情報の絞り込み、 または、 情報の ¾を斤ぃ、 これによつて、 情報を一つにするという処理をすること力 <可能にな る: つまり、 乗算以外にも検索を含む他の情報集約型の処理が可能になる。 ま た、 上位桁からの演算原理により汎用演算器 5 1 A~5 1 H. 52 A〜52 D. 53 Α. δ 3 B, 54が一桁の処理だけを行えばよいため、 回路の小型化が可能 になり、 さらに、 回路全体として並列度を向上することができる。
なお、 実施の形態 1 2では、 1 6入力の回路について記述しているが、 16入 力にこだわる'必要はなく、 たとえば、 8入力や 32入力などでもよい。
[発明の実施の形態 1 3〕
実施の形態 1 3では、 加算を繰り返すことで上位桁からの乗算を実現する演算 処理用半導体回路に対して、 この発明が適用されている。 この演算処理用半導体 回路を図 1 8に示す。 図 18の演算処理用半導体回路は、 部分積発生回路 5 δ A 〜 55 D、 単体の遅延メモリ 56 A, δ 6 Ε遅延メモリ内蔵加算プロック 56 Β 〜5 6 Dおよび冗長加算器 5 7を備えている。 ここでは、 4ビット乗算器として ί、る。
部分嬉発生回路 5 5 Α〜 5 5 Dには、 被乗数 a 5 5が入力される。 このとき、 ¾乗数 a 5 5の最上位桁データが部分積発生回路 5 5 Dに入力され、 最上位桁の 一桁下位桁のデータが部分積発成回路 5 5 Cに入力され、 最下位から 2番目の桁 のデータを部分積生成回路 5 5 Bに、 最下位桁のデータを部分積発成回路 5 5 A に入力している。 また、 部分積発生回路 5 5 A〜5 5 Dには、 乗数 a 5 6が入力 される。 乗数 a 5 6は、 上位桁から演算時間単位に一桁ずつ順番に部分積発生回 ί½ 5 5 A〜5 5 Dに同時に入力される。 部分積発生回路 5 5 A〜5 5 Dは、 被乗 ¾ a 5 5と乗数 a 5 6とから部分積を生成する。
部分積発生回路 5 5 A〜5 5 Dからの部分積をメモリ 5 6 A、 メモリを内蔵し た加算器 5 6 B〜 5 6 Dで加算処理する。 このために、 加算器 5 6 Bは、 メモリ δ 6 Αによって遅延された部分積発生回路 5 5 Αからの部分積と、 部分積発生回 路 5 5 Bからの部分積とを加算し、 制御信号 5 5 eの次の立ち上がりで、 桁上げ (言号 b δ 5と加算 ί言号 b 5 6とを出力する。 すなわち、 内部に演算結果を記憶 し、 1 ステップ (演算単位時間) だけ遅らせる機能を持つ。 メモリ内蔵型加算器 5 6 Cは、 値 「0」 と、 部分積発生回路 5 5 Cからの部分積とメモリ内蔵型加算 器 5 6 Bの加算信号 b δ 6とを加算し、 制御信号 5 5 eの次の立ち上がりで、 桁 上げ信号に 5 5と加算信号 c 5 6とを出力する。
加算器 5 6 Dは、 2つ下位の桁の加算をする加算器 5 6 Bからの桁上げ信号 b 5 5と、 部分積発生回路 5 5 Dからの部分積とメモリ内蔵型加算器 5 6 Cから の加算 (言号 c δ 6とを加算し、 制御信号 5 δ eの次の立ち上がりで、 桁上げ信号 d δ 5と加算 ί言号 d 5 6とを出力する。 メモリ 5 6 Eは、 2つ下位の桁の加算を する加算器 5 6 Cからの桁上げ信号 c 5 5とメモリ内蔵型加算器 5 6 Dの加算信 号 d 5 6とを遅延して冗長加算器 5 7に出力する。
メモリ , 5 6 A. 5 6 Eとメモリ内蔵型加算器 5 6 B〜5 6 Dとは、 制御クロッ ク e 5 5によって、 冗長加算器 5 7側に向けてデータを 1桁ずつ左シフ卜するこ とになる。 また、 メモリ内蔵型加算器 5 6 Dが発生した桁上げ信号 d 5 5と、 そ の他の結果を同じ桁に変換するために、 メモリ 5 6 Eが必要である。 冗長加算器 5 7は、 メモリ 5 6 Eが遅延した加算器 5 6 Dからの加算信号 cl .5 6と、 メモリ内蔵型加算器 5 6 Cからの桁上げ信号 c 5 5と、 加算器 5 6 D からの桁上げ信号 d 5 5とを用いて、 上位桁からの加算を行う。 この加算器は 2 進 S D数系の場合実施の形態 1に記載の上位桁先行加算器の設計とほぼ同一であ る。 ただ、 加算器 1に S D数系の 2つの入力以外にバイナリ数系の入力が一つ増 加しただけである。 表 2の内部加算値が + 3のときに Carry+ 1、 Sum 1を出力す る条件を加えればよい。 こうして上位桁から順に乗算結果を出力する。
実施の形態 1 3によれば、 図 1 9に示すように、 4ビット X 4ビッ 卜の乗算を する場合、 筆算形式で部分積を発生させ、 それを加算する。
斤加算部 5 6は、 この乗算方式における加算の仕組みを簡略化して示したもの である。 ί亍加算部 5 6では、 円で囲まれた記号「十」記号が、 上位桁からの加算 が斤える加算器を表し、 四角で囲まれた記号 「D」 、 メモリを表す。 メモリ は、 1演算時間単位毎に入力データを記憶していく。 「十」記号と 「D」記号を ベアにしたものカ^ 図 1 8の 5 6 B〜5 6 Dに相当する。 この部分積を加算する ために、 予めメモリ Dを 0にリセッ卜しておく。 始めのステップで、 筆算の一番 下の行 A 5 5を示すデータを加算部 5 6に入力し、 このデータを記憶する。
2番目のタイミングでは、 メモリ 「D」 により入力データを左シフト (X 2 ί咅) する。 同時に、 下から 2番目の行 A 5 6を示すデータを行加算部 5 6に入力 し、 入力データと、 斤加算部 5 6に蓄えられているデータとを加算する。 加算部 5 6に蓄えられているデータは、 前回の行 A 5 5をシフトして得たものである。
3番目のタイミングでは、 2番目のタイミングで得た加算結果を左シフトし記 憶する。 この後、 上の行をさらに加算していくことを繰り返すことで、 最終的な ¾果を出力する。
このように、 実施の形態 1 3によれば、 加算を繰り返すことで乗算を実現する 場台、 乗算结果を最終段から、 力、つ、 上位桁から出力することができる。
なお、 実施の形態 1 3では、 4ビット X 4ビッ 卜の乗算器を仮定しているが特 に- 1 ビッ 卜に限定されるものではない。 4ビット以上の場合は、 メモリ付き加算 -器 5 6 Dのように、 部分積発成回路からの部分積データと、 2桁下の加算器から の桁上げデータと、 1桁下の加算器からの加算和データの 3つを入力するメモリ 付き加算器を増加させればよ t、。
また、 ブースデコ一ダなどの既知のデコ一ド手法を組み合わせてもよい。
図 1 8では加算器 56 Β~δ 6 Dの桁上げ信号を遅延させたため 2桁上位の加 算器に桁上げデータを入力する形式としたが、 この遅延メモリを取り除き、 一桁 上位の加算器に直に桁上げデータを入力してもよい。
また、 上位桁からの乗算で取り扱う数系がノ <ィナリ数系や 2進 S D数系に特に 限定されるものではない。
[発明の実施の形態 1 4]
実施の形態 1 4では、 冗長数系を用いない一般的な数系を用いて、 上位桁から 加算演算をする。 このために、 実施の形態 1 4では、 演算対象の数字に確定 '不 確定を表すフラグを付ける。 この様子を図 20に示す。 図 20では、
[2999]D+[902] D=[390 1 ] Β
の 1 0進数加算を例としている。 この加算例では、 一の位から百の位まで、 下位 の桁で発生した桁上げが伝搬する。
タイミング Τ 7 1では、 千の位の数字力加算され、 値 [2] Dが得られる。 こ の値 [2] ま、 下位の桁からの桁上げ信号によって変化する可能性がある。 こ のときには、 値 [2] Dに対してフラグが付けられる。 実施の形態 1 4では、 フ ラグとして 「?」 マークが用いられている。
タイ ミング Τ 72では、 百の位の数字が加算され、 値 [1 8] Dが得られる。 この値 [18] Dでは、 桁上げ信号として値 [1] Dが発生し、 また、 加算信号が !l [8] Dである。 桁上げ信号 [1] ま、 千の位の数字で値 [2] Dを値 [3] D に变更する。
ここで、 加算 ί言号値 [8] Dは、 下位の十の位以下の信号に係わらず、 千の位 への桁上げ ί言号にならない。 このために、 千の位の数字に付けられていた 「?」 マークが外れて、 値 [3] Dが確定する。
タイミング Τ 73では、 十の位の数字が加算され、 値 [09] Dが得られる。 二の値 [09] Dでは、 桁上げ信号は値 [0] Dである。 加算信号である値 [9] ま、 一の位の計算結果によって、 桁上げ信号の値 [0] Dや加算信号の値 [9] Dが変更される可能性ある。 このために、 加算結果である桁上げ信号の値 [0] D と、 加算信号の値 [9] Dとの両方に 「?」 マークが付けられる。
したがって、 十の位からの桁上げ信号が確定されていないので、 百の位の加算 ί言号である値 [8] Dに付けられた 「?」 マークは、 外れないで伝播していく。 タイミング T74では、 一の位の数字が加算され、 値 [1 1] Dが得られる。 この値 [1 1] Dでは、 桁上げ信号として値 [1] Dが発生し、 また、 加算信号が 値 [ 1 ] Dである。
一の位の桁上げ信号である値 [1] ま、 十の位の加算信号である値 [9] Dに 加算される。 この結果、 十の位では、 値 [1 0] Dが得られ、 桁上げ信号である 値 [1] Dが発生する。 この桁上げ信号は、 百の位の加算信号である値 [8] Dに 加算される。
こうして、 百の位と十の位とに桁上げ信号が伝搬する。 一の位から桁上げ信号 が「1」 Dで確定したため、 十の位の加算信号の値、 十の位からの桁上げ信号と 百の位の加算信号の全ての値が確定される。 この操作を繰り返して、 確定された 値が順に出力され、 正しい加算結果である値 [390 1 ] Dが得られる。 なお、 図 20では、 出力される桁に下線が描かれている。
二のような加算をする演算処理用半導体回路を図 2 1に示す。 この演算処理用 半導体回路では、 桁上げ信号にのみフラグ (図 20の?マーク) に相当する信号 カ 犬態信号として付加されている。 図 2 1の演算処理用半導体回路は、 加算器 6 1と桁上げ制御回路 62, 63とそれぞれに遅延素子 6 1 m、 62 m、 63m とを備えている。
加算器 6 1は、 第 1の数の上位桁から入力される 1つの桁データ a 61と、 第 2の数の上位桁から入力される 1つの桁データ a 62との加算をする。 加算器 6 1は、 結果として、 桁上げ信号 b 61と加算信号 b 62とを出力する。 また、 加算器 6 1は、 状態信号 b 63を出力する。 状態信号 b 63は、 桁上げ信号 b 6 1が発生する可能性があるかないかを示す。 この状態信号 b 63力真であれ ば、 桁上げ (言号 b 6 1が発生する可能性があることを示す。 加算 ί言号 b 62は、 遅延素子 6 1 mで 1ステップ (演算時間単位) 分、 すなわち 1桁分の遅延をし記 憶 9る。
ΗΪ上げ制御回路 62は、 図 22に示すように、 状態制御回路 60 1、 出力回路 6 0 3を備えている。 桁上げ制御回路は、 桁上げ信号 b 6 1および状態信号 b 6 3、 遅延された加算結果 b 6 2に従って、 桁上げの必要があるかないかを判 断し、 必要に応じて結果を変えていく。 判断のために、 桁上げ制御回路 6 2は、 次の表 5に示すような入出力関係を内部に記憶している。
(表 5 )
Figure imgf000039_0001
表 5によれば、 入力加算結果 b 1 2により処理が異なる。
入力加算結果 b 1 2力、 値 「0」 〜「8」 である時は、 上位桁への桁上げ信号 伝播の可能性がないため、 状態制御回路 6 0 1は、 値「0」 を示す桁上げ信号 c 6 1と、 「固定」状態を示す状態信号 c 6 3を出力する。 出力回路 6 0 3は、 入力桁上げ信号 b 6 1が値 「0」 の時には、 入力加算結果信号 b 6 2と同一の値 を示す結果成分 c 6 2を出力し、 入力桁上げ信号 b 6 1が値「 1」 の時には、 入 力加算結果信号 b 6 2に 1を足した値を示す結果成分 c 6 2を出力する。
入力加算結果 b 1 2力 値「9」 である時は、 状態制御回路 6 0 1は、 入力さ れた桁上げデータ b 6 1と同一の値を示す桁上げデータ c 6 1と、 入力された状 態信号 b 6 3と同一の値を示す状態信号 c 6 3を出力する。 入力桁上げ信号 b 6 1が値 「1」 の時には、 値「0」を示す結果成分 c 6 2を出力し、 値「0」 の時には、 値「9」 を示す結果成分 c 6 2を出力する。
二のようにして生成した状態信号 c 6 3を、 桁上げ制御回路 6 2は桁上げ制御 回路 6 3に出力する。 また、 桁上げ制御回路 6 2は、 桁上げ信号 b 6 1と加算信 号 b 6 2との加算結果から、 桁上げ信号 c 6 1を生成する。 そして、 桁上げ制御 回路 6 2は、 生成した桁上げ信号 c 6 1を桁上げ制御回路 6 3に出力する。 出力回路 6 0 3は、 メモリ 6 1 mからの加算信号 b 6 2と、 桁上げ信号 b 6 1 とに基づいて、 加算信号 c 6 2を生成する。 つまり、 出力回路 6 0 3は、 表 3に 示すように、 メモリ 6 0 2からの加算信号 b 6 2すなち記憶値に桁上げ信号 b 6 1の値を加算して、 加算信号 c 6 2を生成する。 出力回路 6 0 3は、 生成し た加算信号 c 6 2を桁上げ制御回路 6 3に出力する。
こうして、 桁上げ制御回路 6 2は、 桁上げ信号 b 6 1、 加算信号 b 6 2および 伏態 ί言号 b 6 3に基づいて、 桁上げ信号 c 6 1、 加算信号 c 6 2および状態信号 じ 6 3を生成し、 これらの信号を桁上げ制御回路 6 3に出力する。 同じようにし て、 桁上げ制御回路 6 3は、 桁上げ信号 c 6 1、 加算信号 c 6 2および状態信号 c 6 3に基づいて、 桁上げ信号 d 6 1、 加算信号 d 6 2および状態信号 d 6 3を 生成して、 これらの信号を次段の回路に出力する。
このような実施の形態 1 4によれば、 桁上げ制御回路 6 2の出力が同じ機能を 待つ桁上げ制御回路 6 3の入力になっている。 このように複数段の接続により、 たとえば、 [ 9 9 9 + 0 0 1 ] Dというように、 桁上げが複数桁にわたって伝搬 するとき、 桁上げによって発生する変化が吸収される。
このように、 実施の形態 1 4によれば、 桁上げ信号を処理するために、 計算し た値が不確定であり、 後で変化する可能性がある場合に、 「?」 マークにあたる フラク」'を (寸ける。 これによつて、 桁上げの影響を除くことができる。 また、 実施 I -1によれば、 バイナリ出力がされるために、 現在の回路との親和性を高 めることができる。
なお、 実施の形態 1 4では、 演算例として 1 0進数を用いたが、 1 0進数に限 定されるものではなく、 2進数などでも構わない。
[発明の実施の形態 1 5 ]
実施の形態 1 5では、 冗長な数系のデータを非冗長な数系のデータに変換する 演算処理用半導体回路に対して、 この発明が適用されている。 この演算処理用半 導体回路を図 2 3に示す。 図 2 3の演算処理用半導体回路は、 冗長変換回路 6 6 と桁上げ処理回路 6 7 i〜6 7 11とメモリ 6 S i S 8 nを備えている。 図 2 3の演 算 ¾理用半導体回路では、 最悪な入力パターンのときには、 最下位のビッ卜から 最上位のビッ 卜まで、 桁上げが生じる可能性があるため、 冗長変換回路 6 6と桁 上げ処理回路 6 T i S 7 nとを合わせて数桁分の回路が必要である。
冗長変換回路 6 6には、 冗長数系に属する数の 1つの桁を表すデータ a 6 6力 入力される。 上位桁から演算時間単位毎に順にデータ a 6 6は入力される。 データ a 6 6が入力されると、 冗長変換回路 6 6は、 データ a 6 6を非冗長な ΐϋ のデータに変換し、 データ b 6 7を出力する。 その結果、 冗長変換回路 6 6 は、 必要ならば、 桁上げ信号 b 6 6を発生させる。 このような変換をするため に、 冗長変換回路 6 6は、 次の表 6に示す入力関係を内部に保持している。
(表 6 ) 5
ϋ
Figure imgf000041_0001
表 ΰによれば、 データ a 6 6として 「1」 が入力されると、 冗長変換回路 6 6 、 —リ」 の桁上げ信号 (Carry) b 6 6と、 「1」 の変換結果 (Resul t) b 6 7とを生成する。 データ a 6 6として 「一 1」 が入力されると、 冗長変換回 路 6 6は、 「― 1」 の桁上げ信号 b 6 6と、 「1」 の変換結果 b 6 7とを生成す るつ つまり、 変換結果が必ず非冗長な数系になるようにするため、 冗長変換回路 6 6は、 2進 S D数の場合に 「ー 1」 という桁上げ信号 b 6 6を生成する。
また、 冗長変換回路 6 6は、 下位桁からの桁上げ信号によって、 桁上げ信号 b 6 6の値が変化する可能性がある場合、 「?」 マークにあたる信号を付ける。 つまり、 データ a 6 6として 「0」 が入力されると、 冗長変換回路 6 6は、 " 0 '?」 の桁上げ信号 b 6 6と、 「0」 の変換結果 b 6 7とを生成する。
冗長変換回路 6 6は、 生成した桁上げ信号 b 6 6を桁上げ処理回路 6 7,に出 力し、 変換結果 b 6 7をメモリ 6 8ェへ出力する。
メモリ 6 8 ま、 冗長変換回路 6 6からの変換結果 b 6 7を、 制御クロック d 6 6によって 1ステップ (演算時間単位) だけ遅延する。 メモリ 6 8。〜 6 8— は、 メモリ 6 8 1と同じで、 1演算時間単位だけ入力データを遅延させる機能を 持つ。
¾理回路 6 7 iは、 下位桁から来る桁上げ信号 b 6 6とメモリ 6 変換結果 b 6 7を遅延して出力した変換結果 b 6 8とを入力し変換する。 この変換のため に、 桁上げ処理回路 6 7ェは、 次の表 7に示す入出力関係を内部に保持してい る:
(表 7 )
Figure imgf000042_0001
表 7によれば、 桁上げ信号 b 6 6に 「?」 マークが付いていない場合、 桁上げ ί言号の成分が確定していることになる。 この結果、上位桁側の回路では再演算の 必要がな L、ため、 演算結果を確定することができる。
桁上げ ί言号 b 6 6に 「?」 マークが付いている場合、 桁上げ信号 b 6 6が 「0 」 であり、 変換結果 b 6 8力 「0」 であるとき、 桁上げ処理回路 6 7 ^ 、 「0?」 の桁上げ信号 c 6 6と、 「0」 の変換結果 c 6 7とを生成す るつ また、 桁上げ信号 b 6 6力 「0?」 であり、 変換結果 b 6 8力 「 1」 である とき、 桁上げ処理回路 6 7 1は、 「 0」 の桁上げ信号 c 6 6と、 「 1」 の変換結 果 c 6 7とを生成する。
桁上げ処理回路 6 7 { こうして生成した桁上げ信号 c 6 6を次段の桁上げ 理回路 6 7 9に出力し、 変換結果 c 6 7を遅延メモリ 6 8 2を介して次段の桁上 げ ½理回路 6 7 2に出力する。 桁上げ処理回路 6 7 2〜 6 7 nは、 桁上げ処理回路 6 7 ^と同じような処理をする。
二のような実施の形態 1 5によれば、 冗長な数系のデータを通常の非冗長な数 系のデータに変換することができる。
なお、 実施の形態 1 5では、 演算の処理例として 2進 S D数の冗長数系をバイ ナリ 2進数に変換する場合を例として説明したが、 特に、 この数系に限定される ものではなく、 4進数や 8進数といった多値の冗長数系でもよく、 拡張する数を 正にして よい。
以上、 実施の形態 1〜1 5について説明したが、 この発明は、 これらの実施の 形態に限定されることはない。 たとえば、 「桁」 は、 1 0進数などである必要は なく、 2進数の 「ビッ ト」 という単位でもよく、 また、 それを複数組み合わせた 4進数などでもよい。
また、 演算命令として加算命令を取り上げたが、 減算命令や比較命令など桁毎 に ; '亩算できるものなら、 どのような演算命令でもよい。
また、 「冗長な数系」 としては、 2進 S D数系と呼ばれる、 2進数「0 , 1」 に 「一 1」 を許可したものに限定される必要はなく、 1 0進数 1 1値 ( 「0〜 9」 以外に 「A = 1 0」 を許可したもの) や 2進 3値 (「0 , 1」 に 「2」 を許 可したもの) などでもよい。
さらに、 従来のトランジスタで実現される、 すべての回路のなかで、 このトラ ンジスタをニューロン M O S トランジスタで置き換えることが可能である。 萤業上の利用可能性
請求項 1に ί系る発明によれば、 より重要な情報を示す上位桁の情報からデータ の ¾理をする回路が実現可能である。
請求項 2に ί系る発明によれば、 上位桁から複数の組み合わせ演算処理用半導体 回路が実現可能となる。 請求項 3に係る発明によれば、 冗長な数系を取り扱うことで加算演算などの下 位桁からの ί云搬信号を吸収でき、 上位桁からの数値演算を可能にする演算処理用 半導体回路が得られる。
請求項 4に ί系る発明によれば、 回路外部から見ると、 全く桁上げ信号がない完 全な上位桁からの演算処理用半導体回路が実現できる。
請求項 5に係る発明によれば、 冗長な数系を用いることなく下位桁からの桁上 げ ί言号を処理できる上位桁からの演算処理用半導体回路も可能にする。
請求項 6に係る発明によれば、 結果判別のついた桁から下位桁側の演算を省略 できる演算処理用半導体回路が実現できる。
請求項 7に (系る発明によれば、 最小値、 最大値を元に下位桁からの信号に依存 しな〔、、 上位桁からの演算比較判断が可能な演算処理用半導体回路が得られる。 請求項 8に (系る発明によれば、 汎用プロセッサ向けの上位桁からの演算処理用 半導体回路や、 単一のハードウェアでありながら、 実時間で機能を可変にできる 演算処理用半導体回路が実現できる。
請求項 9に ί系る発明によれば、 冗長な数系を上位桁からバイナリ変換できる演 算処理用半導体回路回路が実現できる。
請求項 1 0に ί系る発明によれば、 コンパク卜なアナログ信号に対して逐次上位 桁から : 理が行える演算処理用半導体回路が実現できる。
請求項 1 1に係る発明によれば、 上位桁から結果が出力される半導体乗算器が 実現可能である。
請求項 1 2に ί系る発明によれば、 請求項 1 3とは別の手法により上位桁からの 半導体乗算回路が実現できる。
請求項 1 3に係る発明によれば、 ニューロン MO S トランジスタを用いること で、 回路を' j、規模にし、 演算機能を増大し、 知的演算の概念を導入した上位桁か らの演算処理が可能になる。
請求項 1 4 . 1 5に ί系る発明によれば、 冗長な数系を用いることで上位桁から の数値演算を可能とした方法を用いることが可能になる。
請求項 1 6に ί系る発明によれば、 上位桁からの演算が確定した時点で残りの演 算が省略できる高速な処理手法が可能になる。

Claims

請求の範囲
1 - 複数の桁で構成される数のデータが 1つ以上入力され、 かつ、 前記数の データの上位桁側から演算時間単位につき 1桁毎に順に入力される演算処理用半 5 導体回路であって、
前記入力されたデータの演算をする演算ュニッ卜を備え、
前記演算ュニッ卜は、
入力された桁のデータを演算時間単位内で演算し、 演算で得た結果を示す演算 詰果を出力し、 演算によって桁上げ力発生すると、 この桁上げを示す桁上げデー 10 タを出力する演算回路と、
前記演算回路からの演算結果を 1演算時間単位分だけ遅延する遅延手段とを具 磺した演算ュニッ卜を具備することを特徴とする演算処理用半導体回路。
2 . 複数の前記演算ュニッ 卜を直列に接続し、 入力された桁のデータに基づ き、 前記各演算ュニッ 卜が前記演算時間単位毎に順に処理していくことを特徴と
15 する請求項 1に記載の演算処理用半導体回路。
3 . 前記数のデータ、 前記演算結果または前記桁上げデータが冗長な数系に属 することを特徴とする請求項 1または 2に記載の演算処理用半導体回路。
4 . 前記冗長な数系に属するデータを演算する演算ブロックであって、 前記演 算ブロックは、 1個以上の前記演算ュニッ卜と、 前記演算プロックの出力を処理
20 する演算回路とを具備し、 前記演算ブロックからは上位桁への桁上げデータを発 生しないことを持徴とする請求項 3に記載の演算処理用半導体回路。
5 . 前記演算ュニッ 卜は、
ある桁の演算により上位桁へ出力する前記桁上げデータ力 この桁よりも下位 の桁の演算で発生する桁上げデータで変化するか否かを判断する第 1判断手段 ムっ
前記第 1判断手段の判断結果が下位桁から出力される桁上げデータに依存しな い二とを示すとき、 桁上げデー夕の変更がないことを上位側へ示す出力手段と、 前記第 1判断手段の判断結果が下位桁から出力される桁上げデータに依存する ことを示すとき、 下位側の桁上げデータを待つ入力手段と、 下位側からの下位桁の桁上げデータに応じて、 前記演算結果を変える変更手段 とを備えたことを特徴とする請求項 1又は 2に記載の演算処理用半導体回路。 6 . 上位桁から前記演算時間単位毎に順に出力される演算結果に対して、 上位 桁から前記演算時間単位毎に比較および判断をする第 2判断手段を備え、 前記第 2判断手段の判断結果の真偽が確定した場合に、 残りの下位桁について 比 βおよび判断を含む演算処理を省略することを特徴とする請求項 1乃至 5のい ずれか 1項に記載の演算処理用半導体回路。
丁. 上位桁から前記演算時間単位毎に順に演算を行い、 入力されている桁より も下位桁で取り得る演算結果の最大値と最小値とを演算する算出手段と、 前記算出手段が演算した最大値および最小値の少なくとも一方に対して、 別の 桁のデータとの比較を行う比較手段とを備えたことを特徴とする請求項 1、 2又 は 6に記載の演算処理用半導体回路。
8 . 前記演算ュニッ トに制御命令を与えることによって、 入力された桁のデ一 タに対する演算機能を切り替える切替え手段を備えたことを特徴とする請求項 1 又は 2に記載の演算処理用半導体回路。
9 . 上位桁から前記演算時間単位毎に順に入力されるデータ力 <、 前記冗長な数 ¾に属するデータの場合に非冗長数系に変換する演算ブロックであって、 前記演算ブロックは、 複数の直列に接続された演算ュニッ卜からなり、 前記各演算ュニッ トは、
入力された桁のデータが冗長表現に属し変換する必要があるか判断する判断手 段と、
非冗長表現と桁上げ信号または桁借り信号とに変換する変換手段と、 桁上げ信号または桁借り信号を上位桁の演算ュニッ卜へ出力する出力手段とを 具 (萌し、
全体として冗長数系を非冗長数系に変換する機能を備えたことを特徴とする請 求項 5に記載の演算処理用半導体回路。
1 0 . アナログデータをデジタルデータに変換するために、 前記アナログデー タの比較の範囲を狭めて斤くことで、 前記アナログデータをデジタルデータの上 位桁側から演算時間単位毎に逐次変換する変換手段と、 前記変換手段の出力を上位桁から演算時間単位毎に演算する前記演算ュニッ卜 または前記演算回路とを備えたことを特徴とする請求項 1乃至 8の 、ずれか 1項 に記載の演算処理用半導体回路。
1 ! . 前記乗数を 1演算時間単位毎にシフ卜しながら記憶する記憶手段と、 前記記憶手段からの乗数と、 前記被乗数との部分積をそれぞれ算出し、 演算時 間単 (立毎に最上位桁から順番に、 乗算における同一桁の部分積を全て生成して出 力する第 1演算手段と、
前記第 1演算手段からの同一桁を示す前記部分積をすベて加算して、 1つの乗 算結果を上位桁から出力する第 2演算手段とを備えたことを特徴とする演算処理 用半導体回路。
1 2 . 2つのデータの一方を被乗数とし、 他方を乗数とし、 前記乗数力让位桁 から演算時間単位毎に順に入力され、 2つのデータの乗算を ί亍 t、その結果を上位 桁から演算時間単位毎に順に出力する演算処理用半導体回路であって、
入力された前記乗数と被乗数とで連続した桁の部分積を 1演算時間単位毎に算 出する算出手段と、
算出された部分積と 1演算時間単位前の加算結果との連続した桁の加算が行え る !]算手段と、
加算結果を一時的に記憶する手段とを備えたことを特徴とする演算処理用半導
(本回路。
1 3 . 前記演算ユニッ トは、 ニューロン M O S トランジスタを用いて、 構成さ れて〔、ることを特徵とする請求項 1乃至 1 4のいずれか 1項に記載のデータ処理 演算半導体回路。
1 4 . 複数の桁で構成される数のデータが 1つ以上入力され、 力、つ、 前記数の データの上位桁側から演算時間単位につき 1桁毎に順に入力される演算処理方法 であつ一、、
入力された桁のデータを演算時間単位で演算し、 演算で得た結果を示す演算結 を出力する第 1処理と、
前記第 1 ¾理の演算によって桁上げが発生すると、 この桁上げを示す桁上げ データを出力する第 2処理と、 前記演算結果を 1演算時間単位分だけ遅延する第 3処理とを含むことを特徴と する演算 ¾理方法。
1 5 . 前記第 1処理から第 3処理を順に繰り返して行うことを持徴とする請求 項 1 4に記載の演算処理方法。
1 6 . 前記第 1処理の演算結果を上位桁から順に判断する第 4処理と、 前記第 4処理で判断結果が確定した時点で下位桁の演算を中止する第 5処理と を含むことを特徴とする請求項 1 5に記載の処理演算方法。
PCT/JP1998/005720 1997-12-17 1998-12-17 Procede et circuit semi-conducteur pour effectuer des operations arithmetiques WO1999031573A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US09/581,729 US6728745B1 (en) 1997-12-17 1998-12-17 Semiconductor circuit for arithmetic operation and method of arithmetic operation
JP2000539404A JP3811354B2 (ja) 1997-12-17 1998-12-17 演算処理用半導体回路および演算処理方法
EP98961396A EP1039372A4 (en) 1997-12-17 1998-12-17 METHOD AND SEMICONDUCTOR CIRCUIT FOR PERFORMING ARITHMETIC OPERATIONS
US10/641,788 US7296048B2 (en) 1997-12-17 2003-08-15 Semiconductor circuit for arithmetic processing and arithmetic processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9/348313 1997-12-17
JP34831397 1997-12-17

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US09581729 A-371-Of-International 1998-12-07
US10/641,788 Division US7296048B2 (en) 1997-12-17 2003-08-15 Semiconductor circuit for arithmetic processing and arithmetic processing method

Publications (1)

Publication Number Publication Date
WO1999031573A1 true WO1999031573A1 (fr) 1999-06-24

Family

ID=18396197

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/005720 WO1999031573A1 (fr) 1997-12-17 1998-12-17 Procede et circuit semi-conducteur pour effectuer des operations arithmetiques

Country Status (4)

Country Link
US (2) US6728745B1 (ja)
EP (1) EP1039372A4 (ja)
JP (1) JP3811354B2 (ja)
WO (1) WO1999031573A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003243988A (ja) * 2002-02-20 2003-08-29 Tadahiro Omi データ処理装置
JP2009211481A (ja) * 2008-03-05 2009-09-17 Nec Electronics Corp フィルタ演算器及び動き補償装置
JP2015505032A (ja) * 2011-12-08 2015-02-16 ファウンデーション オブ スンシル ユニヴァーシティー−インダストリー コーポレーション 多重センサー配列のための電流検出装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912075B1 (en) * 2006-05-26 2011-03-22 Avaya Inc. Mechanisms and algorithms for arbitrating between and synchronizing state of duplicated media processing components
US8990282B2 (en) * 2009-09-21 2015-03-24 Arm Limited Apparatus and method for performing fused multiply add floating point operation
US8463838B1 (en) * 2009-10-28 2013-06-11 Lockheed Martin Corporation Optical processor including windowed optical calculations architecture
US8463834B2 (en) * 2009-11-03 2013-06-11 Arm Limited Floating point multiplier with first and second partial product shifting circuitry for result alignment
US8965945B2 (en) 2011-02-17 2015-02-24 Arm Limited Apparatus and method for performing floating point addition
RU2454703C1 (ru) * 2011-06-07 2012-06-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ") Одноразрядный двоичный кмоп сумматор
US9081653B2 (en) 2011-11-16 2015-07-14 Flextronics Ap, Llc Duplicated processing in vehicles
US10296292B2 (en) 2016-10-20 2019-05-21 Advanced Micro Devices, Inc. Dynamic variable precision computation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS583028A (ja) * 1981-06-30 1983-01-08 Fujitsu Ltd 2進数シリアル演算方式
JPH0498319A (ja) * 1990-08-10 1992-03-31 Nec Ic Microcomput Syst Ltd ディジタル回路

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4100532A (en) * 1976-11-19 1978-07-11 Hewlett-Packard Company Digital pattern triggering circuit
US4633410A (en) * 1982-06-28 1986-12-30 Hewlett-Packard Company Method and apparatus for determining if a digital value lies within a range
US4839847A (en) * 1987-04-14 1989-06-13 Harris Corp. N-clock, n-bit-serial multiplier
US5034908A (en) * 1988-05-04 1991-07-23 General Electric Company Digit-serial transversal filters
JPH02113749A (ja) * 1988-10-24 1990-04-25 Oki Electric Ind Co Ltd シリアルコンパレータおよびそれを有するエレメントスイッチ
US5150321A (en) * 1990-12-24 1992-09-22 Allied-Signal Inc. Apparatus for performing serial binary multiplication
TW203665B (ja) * 1991-03-21 1993-04-11 Shibata Naoru
KR930010942B1 (ko) * 1991-08-16 1993-11-17 삼성전자 주식회사 직렬비교기
DE69329260T2 (de) * 1992-06-25 2001-02-22 Canon K.K., Tokio/Tokyo Gerät zum Multiplizieren von Ganzzahlen mit vielen Ziffern

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS583028A (ja) * 1981-06-30 1983-01-08 Fujitsu Ltd 2進数シリアル演算方式
JPH0498319A (ja) * 1990-08-10 1992-03-31 Nec Ic Microcomput Syst Ltd ディジタル回路

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1039372A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003243988A (ja) * 2002-02-20 2003-08-29 Tadahiro Omi データ処理装置
JP2009211481A (ja) * 2008-03-05 2009-09-17 Nec Electronics Corp フィルタ演算器及び動き補償装置
JP2015505032A (ja) * 2011-12-08 2015-02-16 ファウンデーション オブ スンシル ユニヴァーシティー−インダストリー コーポレーション 多重センサー配列のための電流検出装置

Also Published As

Publication number Publication date
EP1039372A4 (en) 2005-02-02
US20050080835A1 (en) 2005-04-14
JP3811354B2 (ja) 2006-08-16
US7296048B2 (en) 2007-11-13
EP1039372A1 (en) 2000-09-27
US6728745B1 (en) 2004-04-27

Similar Documents

Publication Publication Date Title
Mohan Residue number systems: algorithms and architectures
KR100500855B1 (ko) 연산장치의연산방법,기억매체및연산장치
JPH07248841A (ja) 非線形関数発生装置およびフォーマット変換装置
CN110377267B (zh) 一种基于概率计算集中序列的有符号数的加/减法器
WO1999031573A1 (fr) Procede et circuit semi-conducteur pour effectuer des operations arithmetiques
WO2018204898A1 (en) Fast binary counters based on symmetric stacking and methods for same
Premkumar et al. Improved memoryless RNS forward converter based on the periodicity of residues
JPH0573269A (ja) 加算器
US6745219B1 (en) Arithmetic unit using stochastic data processing
US11475288B2 (en) Sorting networks using unary processing
CN113031913A (zh) 乘法器、数据处理方法、装置及芯片
US10230388B2 (en) System and method for energy efficient time domain signal processing
Chen et al. An image recognition processor with time-domain accelerators using efficient time encoding and non-linear logic operation
JP3663186B2 (ja) 部分積生成回路および乗算器
Govindarajan et al. Borrow select subtractor for low power and area efficiency
Yang et al. Digital Computation-in-Memory Design with Adaptive Floating Point for Deep Neural Networks
JP2838326B2 (ja) ディジタル乗算器
SU1015378A1 (ru) Устройство дл извлечени квадратного корн
Banitaba et al. Comparison-Free Bit-Stream Generation for Cost-Efficient Unary Computing
JPS62221071A (ja) バタフライ演算回路及びそれを用いた高速フ−リエ変換装置
Srikanthan et al. VLSI efficient binary-to-residue converter for DSP applications
CN117331532A (zh) 累加并行计数器以及集成电路装置
JPH10326183A (ja) 乗算器
Jiang et al. Residue-Weighted Number Conversion with Moduli Set {2^ p-1, 2^ p+ 1, 2^{2p}+ 1, 2^ p} Using Signed-Digit Number Arithmetic
CN116522967A (zh) 乘法器与芯片

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1998961396

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09581729

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1998961396

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1998961396

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1998961396

Country of ref document: EP