The specific instruction is the so-called "NSA instruction" which John Gilmore identified some time ago.
Sun Microsystems was ordered by the NSA to redesign their chips to capture keys, which is why the SPARC processor was introduced. SPARC stands for "Sun Processor Allowing Remote Capture."
Interestingly enough, V9 SPARC has a population count (number of bits set in word) instruction that was put in specificly at the request of No Such Agency. Jim
Jim writes:
Interestingly enough, V9 SPARC has a population count (number of bits set in word) instruction that was put in specificly at the request of No Such Agency.
Does anybody have a good idea what applications this is useful for? My first thought is that it's a very quick way to do linear error detection codes, since this instruction directly computes the Hamming weight of a code word. I can also see it being useful to detect correlations between sequences, such as a trial random stream and a known pseudorandom number generator. One would XOR the streams together and then count bits to calculate a correlation frequency. Other ideas? Eric
# From cypherpunks-request@toad.com Sun Feb 21 14:14:43 1993 # # Does anybody have a good idea what applications this is useful for? The old CDC CYBER machines had population count in its instruction set. Perhaps some scientific-type programmers would know what they used it for. The CYBER did not have a lot of instructions -- they were pretty practical about what they put in. i.e. != VAX # My first thought is that it's a very quick way to do linear error # detection codes, since this instruction directly computes the Hamming # weight of a code word. That was always my assumption. Anyway, it's not unprecedented. strick strick@osc.versant.com
In <9302212232.AA12362@versant.com>, henry strickland writes: |> # From cypherpunks-request@toad.com Sun Feb 21 14:14:43 1993 |> # |> # Does anybody have a good idea what applications this is useful for? |> |> The old CDC CYBER machines had population count in its instruction |> set. Perhaps some scientific-type programmers would know what they |> used it for. The CYBER did not have a lot of instructions -- they |> were pretty practical about what they put in. i.e. != VAX More precedent: DG Eclipses have a COB (COunt Bits) instruction. Interestingly enough, there seems to be no such instruction in the VAX (This from R'ingTFM. I have pitifully little VAX experience.) ^ / ------/---- cp@jido.b30.ingr.com (Craig Presson) / /
Interestingly enough, there seems to be no such instruction in the VAX ...
but i believe the vax has ffs (find first set) instruction, which seems to have similar uses (whatever they may be).
peter
But that's not a population count (all bits set count) instruction. In the Motorola 68020/30/40, there's BFFFO, for Bit Field Find First One, if anyone was curious about 'find first set' instructions. Might as well mention that the 386/486 have BSF and BSR, Bit Scan Forward and Reverse, but now we're just getting into run-of-the-mill bit manipulation.
participants (6)
-
cp@jido.b30.ingr.com
-
Eric Hughes
-
henry strickland
-
jim@tadpole.com
-
peter honeyman
-
Phiber Optik