EP0511971A1 - Unbiased bit disposal apparatus and method - Google Patents

Unbiased bit disposal apparatus and method

Info

Publication number
EP0511971A1
EP0511971A1 EP91901523A EP91901523A EP0511971A1 EP 0511971 A1 EP0511971 A1 EP 0511971A1 EP 91901523 A EP91901523 A EP 91901523A EP 91901523 A EP91901523 A EP 91901523A EP 0511971 A1 EP0511971 A1 EP 0511971A1
Authority
EP
European Patent Office
Prior art keywords
register
bits
segment
bit
register segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP91901523A
Other languages
German (de)
French (fr)
Other versions
EP0511971A4 (en
Inventor
Daniel W. Hammerstrom
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adaptive Solutions Inc
Original Assignee
Adaptive Solutions 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 Adaptive Solutions Inc filed Critical Adaptive Solutions Inc
Publication of EP0511971A1 publication Critical patent/EP0511971A1/en
Publication of EP0511971A4 publication Critical patent/EP0511971A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49963Rounding to nearest

Definitions

  • the instant invention relates to a computer processor architecture and a method for handling data, and specifically to an architecture and method which provides unbiased, error free bit disposal during data truncation.
  • Bit disposal is the process of eliminating undesired bits in a binary number in a way that has some desirable numerical property.
  • Truncation is the most common way of disposing of bits, which are typically located to the right of a binary point in a binary number. Pure truncation, the simple removal of bits beyond a certain point in a binary number, always results in an error, in that part of the number is lost. In addition to the error, pure truncation is biased, in that the resulting number is always smaller or equal to the original number, resulting in a negative bias.
  • Numbers are truncated to remove unwanted bits, such as are present after multiplication or division operation.
  • rounding Another technique for truncating a number is called rounding.
  • the value of the number portion being retained is examined and either retained or increased to the next incremental retained value, depending on whether or not the portion being discarded is equal to or greater than, typically, one-half the incremental value.
  • the results of rounding are less error prone than in pure truncation, however, over a long series of operations, rounding becomes biased because the break point between selecting the next higher or retaining the lower value is always rounded in favor of either higher or lower.
  • the bias becomes positive over time.
  • the bias in rounding may be eliminated by the symmetric pairing of positive and negative biases for any collection of numbers.
  • hardware is required to analyze the incremental steps in a number series.
  • round to even or R* Such a variation of rounding is called round to even or R*.
  • R* rounding the one-half values are, as much as possible, symmetrically evenly rounded up and down. Assuming that each rounding, up or down, is equally likely, and that positive and negative errors offset one another, bias • is virtually eliminated, assuming all cases are equally likely, and a small error variance results.
  • the provision of the required hardware which at a minimum is a separate adder, is expensive in terms of overall architecture design.
  • jamming Another form of truncation is called jamming, or Von Neumann rounding.
  • LSB least significant bit
  • This technique requires very little hardware, but induces the same total bias as does rounding, although it requires no more time than pure truncation.
  • the error variance induced by jamming is larger than that with truncation because a "one" is always placed in the least significant bit, regardless of the value of the truncated bit. Examples of "jammed” numbers are given in Table 3: TABLE 3
  • An object of the invention is to provide a bit disposal apparatus and method which minimizes both error variance and provides a zero, or neutral, bias.
  • Another object of the invention is to provide a bit disposal method which requires very little additional computer architecture.
  • a further object of the invention is to provide a bit jamming architecture and method which is relatively bias and error free.
  • the bit jamming apparatus of the invention includes a register which is divided at a truncation point into a left register segment and a right register segment, wherein bits to be disposed of are contained in the right register segment.
  • a decision mechanism initially examines the bits in the right register segment and transmits a "1" signal if and only if any of the bits in the right register segment is a "1". If any of the bits in the right register segment is a "1", a 1 is "jammed" into the least significant bit of a result register.
  • the method of the invention includes the steps of setting a truncation point in a register, thereby defining left and right register segments, loading a binary number into the left register, shifting the bits to be truncated to the right register segment, examining the bits in the right register segment and transmitting a right register signal which has a "1" value if any of the bits in the right register segment is a "1", and transmitting a right register which has a "0” value iff none of the bits in the right register is a "1", and replacing the least significant bit in a result register segment with a "1” if the right register signal has a "1" value.
  • Fig. 1 is an expanded, schematic diagram of the bit disposal apparatus of the invention.
  • Fig. 2 is a schematic representation of an OR unit of the invention.
  • Fig. 3 is a block diagram depicting steps in the bit disposal method of the invention.
  • neural networks are error tolerant, but are sensitive to bias.
  • Neural networks are a form of architecture which enables a computer to closely approximate biological information processing.
  • the processing of primary cognitive information by computers, such as computer speech recognition, computer vision and robotic control represent a number of practical problems which cannot be efficiently solved using existing, conventional algorithms executed by traditional, conventional computers.
  • Such problems are often incompletely specified and are characterized by many weak constraints requiring large search spaces.
  • Traditional computer models tend to bog down to the point of failure under the computational load if tasked to solve these types of problems.
  • Such problems are, however, solved by animal brains which are much slower than transistors and which are able to problem solve given incomplete information.
  • One of the advantages of neural networks is their ability to utilize low precision data by examining gross values to reach a decision, which is similar to animal brains which are capable of ignoring minutia while examining gross values to reach a decision.
  • the digital computer equivalent is a process known as data truncation, or bit disposal, wherein part of a value, such as that which is a by-product of digital computation, is discarded and the remaining part of the value is analyzed.
  • data truncation or bit disposal
  • Apparatus 10 includes a source register 12, which may, for example, contain sixteen bit locations, each containing one bit of data.
  • a truncation point, indicated by arrow 14 is set between two selected bit locations. Truncation point 14 may- also be a binary point in the number.
  • a second, or truncation, register 16 receives signals from source register 12 which are indicative of l's and 0's. Truncation point 14 divides register 16 into a left register segment, or shifter, 18 and a decision unit 20.
  • source register 12 contains 16 bits of information. Shifter 18 may accommodate all of these bits, or be instructed by a command from a command module 22, which enters over command bus 24, to truncate a number of bits. This instruction causes left register segment 16 to shift the defined number of bits over connection 19 into decision unit 20. All of the bits remaining in left register segment 18 after the shift command has been executed are transferred to a result register 26, which includes a least significant bit (LSB) location 26a.
  • LSB least significant bit
  • the least significant bit in the result register may be changed.
  • a binary number such as:
  • Truncation point 14 is determined by the shift register count in command module 22, which is set by the programmer, or by the program itself, either of which may constitute means for setting the truncation point in register 16, thereby determining what bits are transferred to decision unit 20.
  • Decision unit 20 is connected to left register segment 18 and to LSB location 26a.
  • decision unit 20 includes a right register segment 28, having bit locations 28a-28h, and an array 30 of OR gates, also referred to herein as decision means or an OR unit, which includes a first tier of OR gates having OR gates 30a-30d, a second tier of OR gates, including OR gates 30e, 30f, and a third tier having OR gate 30g. If and only if (iff) any of the bits in the right register segment is a 1, decision means 30 will transmit a "1" signal on a connection 32 to LSB location 26a in result register 26. As depicted in Fig. 2, eight bits of the number have been shifted into right register segment 28.
  • OR gates Although the structure depicted in Fig. 2 contains seven OR gates, it should be appreciated that other numbers of OR gates may be required. Specifically, if n bits are to be disposed of, n-1 OR gates are required for the structure of the invention. Although the structure may have unused OR gates, an OR gate is a small, relatively inexpensive structure, and the provision of usually idle OR gates will not otherwise degrade the performance of the circuit Assuming that a nominal 16 bit architecture incorporates the structure of the invention, it is unlikely that more than 8 bits would be disposed of, therefore, in the preferred embodiment, seven OR gates are provided in the structure of the invention.
  • OR gates depicted are of the two-input type, Alternately, the first tier might use two four-input OR gates and the second tier would include a single double-input OR gate. So long as sufficient OR structures, n-1, are provided, the requisite number of bits may be truncated and "jammed” into the LSB location of the result register. If there are more OR structures provided than are required, the additional structures will remain idle, while receiving and transmitting "0" signals. In operation, array 30, and initially OR gate 30b, receives two inputs, which are a "1" and a "0" signal, respectively, from bit locations 28c and 28d.
  • OR gate 30b transmits a "1" signal to OR gate 30e_ in the second tier, which also receives a "0" signal from OR gate 30a. Ultimately, a "1" signal is transmitted over connector 32 to bit location 26a, which accounts for a “1” being jammed into the LSB location, regardless of whether a "1" value is already present of not.
  • the first step requires that a register be defined, block 52.
  • the register may be defined to any convenient, or allowable number of bits in length, depending on the configuration of the hardware of the architecture.
  • the truncation point set mechanism is activated, block 54 which provides means for setting the truncation point 14, to define the left and right register segments, and to set the number of bits which will be disposed of.
  • the binary number is then loaded into the register, block 56.
  • the OR gate array 30 next examines the bits in the right register and determines whether any bit has a non-zero value.
  • the bias works out to have a mean "zero" value as there should be, for any given set of numbers, equal positive and negative bias.
  • the apparatus and the method therefore provide un-biased truncation of data.
  • the examples used herein are all positive number, it should be appreciated that the apparatus and method work equally well for negative numbers.
  • the apparatus and method of the invention are particularly suited for truncating numbers in data handling systems such as neural network computers, because it requires minimal additional hardware, programming, and because it has zero bias.
  • the apparatus and method will work equally well if used in conventional computers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Appareil servant à éliminer des bits et comprenant un registre (16) qui est divisé à un point de troncature (14) en un segment de registre gauche (18) et un segment de registre droit (28). Un mécanisme de décision (20) examine tout d'abord les bits dans le segment de registre droit (28) et n'envoie un signal "1" que si un des bits du segment de registre droit (28) est un "1", dans l'emplacement du bit le moins significatif (26a) d'un registre de résultats (26).An apparatus for removing bits and comprising a register (16) which is divided at a truncation point (14) into a left register segment (18) and a right register segment (28). A decision mechanism (20) first examines the bits in the right register segment (28) and sends a signal "1" only if one of the bits in the right register segment (28) is a "1" , in the location of the least significant bit (26a) of a result register (26).

Description

UNBIASED BIT DISPOSAL APPARATUS AND METHOD
Technical Field The instant invention relates to a computer processor architecture and a method for handling data, and specifically to an architecture and method which provides unbiased, error free bit disposal during data truncation.
Background Art Bit disposal is the process of eliminating undesired bits in a binary number in a way that has some desirable numerical property. Truncation is the most common way of disposing of bits, which are typically located to the right of a binary point in a binary number. Pure truncation, the simple removal of bits beyond a certain point in a binary number, always results in an error, in that part of the number is lost. In addition to the error, pure truncation is biased, in that the resulting number is always smaller or equal to the original number, resulting in a negative bias.
Numbers are truncated to remove unwanted bits, such as are present after multiplication or division operation.
For instance, and now using decimal numbers as an example to facilitate the discussion, if a number such as 6.75 is truncated to an integer value, the value is 6. After several such numbers have been truncated and arithmetically combined, the resulting number may be significantly smaller " than the number which would have been derived had truncation not occurred. With pure truncation, it does not matter whether the original number is 6.005 or 6.995, the truncated value is 6. The following table depicts the results of bit disposal using pure truncation, wherein it is assumed that truncation takes place at the binary point: TABLE 1 Original Number
111
110 101
100
Oil
010
001 000
_ binary point
In the context of computer manipulation, pure truncation is a very efficient technique in that it requires no additional hardware. The resulting error, however, is quite large, and the bias is that the truncated number is always equal to or smaller than the actual number. Additionally, the bias is always negative. As used herein, +ve indicates a positive bias, while -ve indicates a negative bias.
Another technique for truncating a number is called rounding. In the case of rounding, the value of the number portion being retained is examined and either retained or increased to the next incremental retained value, depending on whether or not the portion being discarded is equal to or greater than, typically, one-half the incremental value. The results of rounding are less error prone than in pure truncation, however, over a long series of operations, rounding becomes biased because the break point between selecting the next higher or retaining the lower value is always rounded in favor of either higher or lower. In the usual case of rounding up those values which are precisely one-half of the value between the increments, the bias becomes positive over time. The following table illustrates the error and bias associated with traditional rounding techniques: TABLE 2
Original Number Rounded Number 3.758 3.76
4.234 2.23 5.355 5.36
1.333 1.33
7.897 7.90
8.335 8.34
Of the six numbers shown, two are rounded up less than .05, two are rounded down less than .05, and two are rounded up by exactly .05, resulting in four of the six roundings having a positive bias.
The bias in rounding may be eliminated by the symmetric pairing of positive and negative biases for any collection of numbers. However, hardware is required to analyze the incremental steps in a number series. Such a variation of rounding is called round to even or R*. In R* rounding, the one-half values are, as much as possible, symmetrically evenly rounded up and down. Assuming that each rounding, up or down, is equally likely, and that positive and negative errors offset one another, bias • is virtually eliminated, assuming all cases are equally likely, and a small error variance results. However, the provision of the required hardware, which at a minimum is a separate adder, is expensive in terms of overall architecture design.
Another form of truncation is called jamming, or Von Neumann rounding. In the case of binary numbers, whenever a bit is discarded, a "one" is "jammed" into the least significant bit (LSB) of the remaining number. This technique requires very little hardware, but induces the same total bias as does rounding, although it requires no more time than pure truncation. The error variance induced by jamming is larger than that with truncation because a "one" is always placed in the least significant bit, regardless of the value of the truncated bit. Examples of "jammed" numbers are given in Table 3: TABLE 3
Original Number Truncated Number Error
111 11 -.1
110 11 0 101 11 +.1
100 11 +.1
Oil 01 0
010 01 0
001 01 +.1 000 01 +.1
_ binary point
Digital computers are equally sensitive to bias as they are to absolute error variance values. Neural network computers, however, are much more sensitive to bias than they are to absolute error values. It is desirable, therefore, to provide a bit disposal apparatus and technique which is as bias free as possible. Because neural network computers are small in terms of total circuitry, such a disposal technique must also be small, i.e., require little hardware. Disclosure of the Invention
An object of the invention is to provide a bit disposal apparatus and method which minimizes both error variance and provides a zero, or neutral, bias.
Another object of the invention is to provide a bit disposal method which requires very little additional computer architecture.
A further object of the invention is to provide a bit jamming architecture and method which is relatively bias and error free.
The bit jamming apparatus of the invention includes a register which is divided at a truncation point into a left register segment and a right register segment, wherein bits to be disposed of are contained in the right register segment. A decision mechanism initially examines the bits in the right register segment and transmits a "1" signal if and only if any of the bits in the right register segment is a "1". If any of the bits in the right register segment is a "1", a 1 is "jammed" into the least significant bit of a result register.
The method of the invention includes the steps of setting a truncation point in a register, thereby defining left and right register segments, loading a binary number into the left register, shifting the bits to be truncated to the right register segment, examining the bits in the right register segment and transmitting a right register signal which has a "1" value if any of the bits in the right register segment is a "1", and transmitting a right register which has a "0" value iff none of the bits in the right register is a "1", and replacing the least significant bit in a result register segment with a "1" if the right register signal has a "1" value.
These and other objects and advantages of the invention will become more fully apparent as the description which follows is read in conjunction with the drawings. Brief Description of the Drawings
Fig. 1 is an expanded, schematic diagram of the bit disposal apparatus of the invention.
Fig. 2 is a schematic representation of an OR unit of the invention. Fig. 3 is a block diagram depicting steps in the bit disposal method of the invention.
Best Mode for Carrying out the Invention As previously noted, neural networks are error tolerant, but are sensitive to bias. Neural networks are a form of architecture which enables a computer to closely approximate biological information processing. The processing of primary cognitive information by computers, such as computer speech recognition, computer vision and robotic control represent a number of practical problems which cannot be efficiently solved using existing, conventional algorithms executed by traditional, conventional computers. Such problems are often incompletely specified and are characterized by many weak constraints requiring large search spaces. Traditional computer models tend to bog down to the point of failure under the computational load if tasked to solve these types of problems. Such problems are, however, solved by animal brains which are much slower than transistors and which are able to problem solve given incomplete information.
One of the advantages of neural networks is their ability to utilize low precision data by examining gross values to reach a decision, which is similar to animal brains which are capable of ignoring minutia while examining gross values to reach a decision. The digital computer equivalent is a process known as data truncation, or bit disposal, wherein part of a value, such as that which is a by-product of digital computation, is discarded and the remaining part of the value is analyzed. As previously discussed, there are a number of ways of truncating values, all of which induce either a bias, an error, or both, or require an impractical amount of hardware and/or time to accomplish the disposal of unneeded information. Referring now to Fig. 1, a schematic representation of the bit jamming apparatus of the invention is depicted generally at 10. Apparatus 10 includes a source register 12, which may, for example, contain sixteen bit locations, each containing one bit of data. A truncation point, indicated by arrow 14 is set between two selected bit locations. Truncation point 14 may- also be a binary point in the number. A second, or truncation, register 16 receives signals from source register 12 which are indicative of l's and 0's. Truncation point 14 divides register 16 into a left register segment, or shifter, 18 and a decision unit 20. As a result of bit disposal using the bit jamming apparatus and method of the invention, bits in locations to the right of binary point 14 will be disposed of. In the preferred embodiment, source register 12 contains 16 bits of information. Shifter 18 may accommodate all of these bits, or be instructed by a command from a command module 22, which enters over command bus 24, to truncate a number of bits. This instruction causes left register segment 16 to shift the defined number of bits over connection 19 into decision unit 20. All of the bits remaining in left register segment 18 after the shift command has been executed are transferred to a result register 26, which includes a least significant bit (LSB) location 26a.
In the process of disposing of the bits in the right register segment, the least significant bit in the result register may be changed. In the case of a binary number, such as:
10011000100000
the presence of a 1 anywhere in the right register segment, those bits which are to be truncated, will result in a 1 being placed at the location of the least significant bit of the bit-jammed number in result register 26. If a 1 is already present in LSB location 26a, it will remain there.
Truncation point 14 is determined by the shift register count in command module 22, which is set by the programmer, or by the program itself, either of which may constitute means for setting the truncation point in register 16, thereby determining what bits are transferred to decision unit 20.
Decision unit 20 is connected to left register segment 18 and to LSB location 26a. Referring now to Fig. 2, decision unit 20 includes a right register segment 28, having bit locations 28a-28h, and an array 30 of OR gates, also referred to herein as decision means or an OR unit, which includes a first tier of OR gates having OR gates 30a-30d, a second tier of OR gates, including OR gates 30e, 30f, and a third tier having OR gate 30g. If and only if (iff) any of the bits in the right register segment is a 1, decision means 30 will transmit a "1" signal on a connection 32 to LSB location 26a in result register 26. As depicted in Fig. 2, eight bits of the number have been shifted into right register segment 28. All of the bits are 0, except for the bit located at bit location 28c. This will result in a "1" being output from OR gate 30g when the value in register segment 28 is evaluated. Put another way, a 1 is "jammed" into bit location 26a of register 26, regardless of the original value of the LSB of left register 18, which in this case, is a 0. If none of the bits in any bit location in right register segment 28 are a "1", a "0" signal is transmitted on connection 32 by OR gate 30g.
Although the structure depicted in Fig. 2 contains seven OR gates, it should be appreciated that other numbers of OR gates may be required. Specifically, if n bits are to be disposed of, n-1 OR gates are required for the structure of the invention. Although the structure may have unused OR gates, an OR gate is a small, relatively inexpensive structure, and the provision of usually idle OR gates will not otherwise degrade the performance of the circuit Assuming that a nominal 16 bit architecture incorporates the structure of the invention, it is unlikely that more than 8 bits would be disposed of, therefore, in the preferred embodiment, seven OR gates are provided in the structure of the invention. All of the OR gates depicted are of the two-input type, Alternately, the first tier might use two four-input OR gates and the second tier would include a single double-input OR gate. So long as sufficient OR structures, n-1, are provided, the requisite number of bits may be truncated and "jammed" into the LSB location of the result register. If there are more OR structures provided than are required, the additional structures will remain idle, while receiving and transmitting "0" signals. In operation, array 30, and initially OR gate 30b, receives two inputs, which are a "1" and a "0" signal, respectively, from bit locations 28c and 28d. OR gate 30b transmits a "1" signal to OR gate 30e_ in the second tier, which also receives a "0" signal from OR gate 30a. Ultimately, a "1" signal is transmitted over connector 32 to bit location 26a, which accounts for a "1" being jammed into the LSB location, regardless of whether a "1" value is already present of not.
To further define the method of the invention, and now referring to Fig. 3, the sequence of events in the bit jamming method are depicted generally at 50. The first step requires that a register be defined, block 52. The register may be defined to any convenient, or allowable number of bits in length, depending on the configuration of the hardware of the architecture.
Next, the truncation point set mechanism is activated, block 54 which provides means for setting the truncation point 14, to define the left and right register segments, and to set the number of bits which will be disposed of. The binary number is then loaded into the register, block 56.
The OR gate array 30 next examines the bits in the right register and determines whether any bit has a non-zero value. The transmitted values concatenated to the last OR gate, as described above, and as represented by block 58. If any of the bits have a non-zero value, a right register segment "1" signal is transmitted to the LSB location of result register 26, block 60. If none of the bits in right register segment 28 have a non-zero value, a "0" signal is transmitted the LSB location of result register 26, block 62. If a "1" signal reaches the LSB location, block 64, a 1 is "jammed" into the LSB location, block 66, and the sequence ends, block 68. If a "1" signal is not transmitted to the LSB location, the value originally in the LSB location remains and the sequence ends, block 70. The results of a short sequence of numbers which have been truncated using the bit jamming structure and method of the invention are set forth as follows:
TABLE 4
Original Number 111
110
101
100
011 010
001
000
1. binary point As is depicted in Table 4, the error variance values are minimized, or "even out" over the course of truncating a series of numbers.
Likewise, the bias works out to have a mean "zero" value as there should be, for any given set of numbers, equal positive and negative bias. The apparatus and the method therefore provide un-biased truncation of data. Although the examples used herein are all positive number, it should be appreciated that the apparatus and method work equally well for negative numbers.
Thus, a method and an apparatus for practicing a minimal error variance, bias free bit disposal routine has been disclosed. The structure and method are particularly useful for use in neural nets, although may be used with any computer architecture. The structure and method results in bit disposal which is not biased and which, given a reasonable sample of truncated numbers, has minimized error variance.
Although* a preferred embodiment of the structure and method of the invention have been disclosed herein, it should be appreciated that variations and modifications may be made thereto without departing from the scope of the invention as defined in the appended claims. Industrial Applicability
The apparatus and method of the invention are particularly suited for truncating numbers in data handling systems such as neural network computers, because it requires minimal additional hardware, programming, and because it has zero bias. The apparatus and method will work equally well if used in conventional computers.

Claims

-11-WHAT I CLAIM IS:
1. An unbiased bit jamming structure for use in a computer architecture for truncating, bias free, a binary number, comprising: a source register (12) containing a binary number to be operated upon; a second register (16) for retaining a predetermined number of bits to be retained; means for setting (54) a truncation point (14) in said second register (16), thereby defining a left register segment (18), containing a number of bits of said binary number to be retained, and a right register segment (28), containing the remaining number of bits of said binary number to be truncated; a result register (26) for receiving the bits to be retained from said second register (16), wherein said result register (26) includes a least significant bit (LSB) position (26a); decision means (30), connected to said right register segment (28) for reading the bits in said right register segment (28) and for generating a "1" signal (60) iff any of the bits in said right register segment (28) is a "1", and for loading a "1" into said LSB position (26a) regardless of the value originally contained in said LSB position.
2. The bit jamming structure of claim 1 where said decision means (30) includes n - 1 OR gates, where n is the number of bits to be truncated.
3. An unbiased bit jamming structure for use in a computer architecture for truncating, bias free, a binary number, comprising: a register (16) for containing a binary number consisting of a predetermined number of binary bits therein, and having a truncation point (14) therein, said register having a left register segment (18) located to the left of said truncation point (14), containing a number of bits of said binary number to be retained, and a right register segment (28) located to the right of said truncation point (14), containing the remaining number of bits of said binary number to be truncated; a result register (26) having a least significant bit (LSB) location (26a) for receiving the data from said left register segment (18); and an OR gate array (30) connected to said right register segment (28) for reading the bits in said right register segment (28) and for transmitting a "1" signal (60) iff any of the bits in said right register segment is a "1", for loading a "1" into said LSB location (26a) regardless of the value originally contained in said LSB position.
4. The bit jamming structure of claim 3 where said decision means (30) includes n - 1 OR gates, where n is the number of bits to be truncated.
5. A method of truncating, bias free, a number in a computer architecture comprising: setting (54) a truncation point (14) in a register (16); defining left (16) and right (28) register segment with the truncation point (14); loading a binary number (56) into the register (16); shifting the binary number in the register (16) such that the portion of the number to be retained remains in the left register segment (16) and the portion to be truncated is placed in the right register segment (28); moving the retained bits to a result register (26); examining (58) the bits in the right register segment (28); transmitting a right register signal which has a "1" value (60) iff any of the bits in the right register segment (28) is a "1"; replacing (66) the least significant bit in the result register (26) with a "1" iff the right register signal (60) has a "1" value.
EP19910901523 1990-11-09 1990-11-09 Unbiased bit disposal apparatus and method Withdrawn EP0511971A4 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1990/006594 WO1992009032A1 (en) 1990-11-09 1990-11-09 Unbiased bit disposal apparatus and method

Publications (2)

Publication Number Publication Date
EP0511971A1 true EP0511971A1 (en) 1992-11-11
EP0511971A4 EP0511971A4 (en) 1993-08-11

Family

ID=22221157

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19910901523 Withdrawn EP0511971A4 (en) 1990-11-09 1990-11-09 Unbiased bit disposal apparatus and method

Country Status (3)

Country Link
EP (1) EP0511971A4 (en)
JP (1) JPH05503178A (en)
WO (1) WO1992009032A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390135A (en) * 1993-11-29 1995-02-14 Hewlett-Packard Parallel shift and add circuit and method
US5424967A (en) * 1993-11-29 1995-06-13 Hewlett-Packard Company Shift and rounding circuit and method
US6148317A (en) * 1998-08-14 2000-11-14 Qualcomm Incorporated Method and apparatus for compressing signals in a fixed point format without introducing a bias

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU771667A1 (en) * 1978-11-09 1980-10-15 Военный Инженерный Краснознаменный Институт Им. А.Ф.Можайского Device for approximating number
SU1339550A1 (en) * 1986-05-27 1987-09-23 Институт Прикладной Математики Им.М.В.Келдыша Device for rounding off sum and difference of binary-coded numbers with floating point
SU1361543A1 (en) * 1986-05-27 1987-12-23 Институт Прикладной Математики Им.М.В.Келдыша Device for rounding off sum and difference of binary-coded numbers with floating point

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3891837A (en) * 1972-07-03 1975-06-24 Drew E Sunstein Digital linearity and bias error compensating by adding an extra bit
US4340940A (en) * 1980-08-26 1982-07-20 Rca Corporation Hardware reduction by truncation of selected number of most significant bits for digital video system using subsampling and adaptive reconstruction
US4589084A (en) * 1983-05-16 1986-05-13 Rca Corporation Apparatus for symmetrically truncating two's complement binary signals as for use with interleaved quadrature signals
US4727506A (en) * 1985-03-25 1988-02-23 Rca Corporation Digital scaling circuitry with truncation offset compensation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU771667A1 (en) * 1978-11-09 1980-10-15 Военный Инженерный Краснознаменный Институт Им. А.Ф.Можайского Device for approximating number
SU1339550A1 (en) * 1986-05-27 1987-09-23 Институт Прикладной Математики Им.М.В.Келдыша Device for rounding off sum and difference of binary-coded numbers with floating point
SU1361543A1 (en) * 1986-05-27 1987-12-23 Институт Прикладной Математики Им.М.В.Келдыша Device for rounding off sum and difference of binary-coded numbers with floating point

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Section EI, Week 1688, 21 April 1988 Derwent Publications Ltd., London, GB; Class T01, AN 88-111147 & SU-A-1 339 550 (APPL MATHS INST) 27 May 1986 *
Section EI, Week 2888, 16 July 1988 Derwent Publications Ltd., London, GB; Class T01, AN 88-197205 & SU-A-1 361 543 (APPL. MATHS INST) 27 May 1986 *
Section EI, Week 3281, 16 September 1981 Derwent Publications Ltd., London, GB; Class T01, AN 81-H3693D & SU-A-771 667 (GALABURDA) 9 November 1978 *
See also references of WO9209032A1 *

Also Published As

Publication number Publication date
JPH05503178A (en) 1993-05-27
WO1992009032A1 (en) 1992-05-29
EP0511971A4 (en) 1993-08-11

Similar Documents

Publication Publication Date Title
US5379420A (en) High-speed data searching apparatus and method capable of operation in retrospective and dissemination modes
US6058473A (en) Memory store from a register pair conditional upon a selected status bit
US5995747A (en) Three input arithmetic logic unit capable of performing all possible three operand boolean operations with shifter and/or mask generator
US5680339A (en) Method for rounding using redundant coded multiply result
US5485411A (en) Three input arithmetic logic unit forming the sum of a first input anded with a first boolean combination of a second input and a third input plus a second boolean combination of the second and third inputs
US5465224A (en) Three input arithmetic logic unit forming the sum of a first Boolean combination of first, second and third inputs plus a second Boolean combination of first, second and third inputs
US5600847A (en) Three input arithmetic logic unit with mask generator
US4417321A (en) Qualifying and sorting file record data
US5493524A (en) Three input arithmetic logic unit employing carry propagate logic
US4675809A (en) Data processing system for floating point data having a variable length exponent part
US4896133A (en) Parallel string processor and method for a minicomputer
EP0657802B1 (en) Rotation register for orthogonal data transformation
JPH10207693A (en) Floating point arithmetic unit
US5210839A (en) Method and apparatus for providing a memory address from a computer instruction using a mask register
US5479166A (en) Huffman decoding method, circuit and system employing conditional subtraction for conversion of negative numbers
WO2002091166A2 (en) Apparatus and method for uniformly performing comparison operations on long word operands
US4811272A (en) Apparatus and method for an extended arithmetic logic unit for expediting selected floating point operations
US5974539A (en) Three input arithmetic logic unit with shifter and mask generator
Cull et al. Towers of Hanoi and analysis of algorithms
EP0511971A1 (en) Unbiased bit disposal apparatus and method
US5430864A (en) Extending computer architecture from 32-bits to 64-bits by using the most significant bit of the stack pointer register to indicate word size
US5214598A (en) Unbiased bit disposal apparatus and method
CN1365049A (en) Partial matching partial output high speed buffer storage for computer arithmetic operation
US7093102B1 (en) Code sequence for vector gather and scatter
GB2274181A (en) Summation unit.

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LI LU NL SE

17P Request for examination filed

Effective date: 19921021

A4 Supplementary search report drawn up and despatched

Effective date: 19930625

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): AT BE CH DE DK ES FR GB GR IT LI LU NL SE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19960601