A general-purpose computer can do anything, which is exactly why it is rarely the fastest way to do any one thing. When the National Security Agency needed to attack codes on an industrial scale, IBM did not hand it a faster general computer. It built a machine specialized for the work, and that machine, Harvest, is one of the earliest examples of a habit that now dominates computing: bolting purpose-built hardware onto a general processor to speed up a specific job.

The idea

Special-purpose hardware acceleration: when a workload matters enough, build hardware shaped like the workload rather than making a general computer grind through it instruction by instruction.

Stretch, plus Harvest

Harvest, formally the IBM 7950, was a one-of-a-kind attachment to IBM’s Stretch computer, the 7030, installed at the NSA. Harvest could not run on its own. It added a small set of instructions to Stretch and, more importantly, a separate unit, the IBM 7951 stream coprocessor, that did the heavy lifting.

Streaming for cryptanalysis

The stream coprocessor was built for exactly one shape of work: pouring enormous volumes of data through pattern-matching and statistical operations, which is the core of cryptanalysis. Rather than make the general processor grind through that work instruction by instruction, Harvest streamed the data through hardware designed for it. This is special-purpose hardware acceleration, and on its intended workload it was far faster than a general machine of the era.

In service, and the pattern it set

Harvest was delivered in 1962 and ran at the NSA until 1976, fourteen years of service on a machine built for a single agency and a single kind of problem. The idea outlived the hardware completely. A modern graphics processor accelerating matrix math, or a dedicated chip accelerating neural networks, is the same move Harvest made: when a workload matters enough, build hardware shaped like the workload.

Sources

  • “IBM 7950 Harvest,” Wikipedia. https://en.wikipedia.org/wiki/IBM_7950_Harvest . Supports Harvest as a one-of-a-kind adjunct to the Stretch (7030) computer at the NSA, its inability to operate independently, the IBM 7951 stream coprocessor, its design for cryptanalysis, and its service from 1962 to 1976.