A processor architecture and instruction set is provided that is particularly
well
suited for cryptographic processing. A variety of techniques are employed to minimize
the complexity of the design and to minimize the complexity of the interconnections
within the device, thereby reducing the surface area required, and associated costs.
A variety of techniques are also employed to ease the task of programming the processor
for cryptographic processes, and to optimize the efficiency of instructions that
are expected to be commonly used in the programming of such processes. In a preferred
low-cost embodiment, a single-port random-access memory (RAM) is used for operand
storage, few data busses and registers are used in the data-path, and the instruction
set is optimized for parallel operations within instructions. Because cryptographic
processes are characterized by operations on wide data items, particular emphasis
is placed on the efficient processing of multi-word operations, including the use
of constants having the same width as an instruction word. A simplified arithmetic
unit is provided that efficiently supports the functions typically required for
cryptographic operations with minimal overhead. A microcode-mapped instruction
set is utilized in a preferred embodiment to facilitate multiple parallel operations
in each instruction cycle and to provide direct processing control with minimal overhead.