WO1982003481A1 - A bit slice microprogrammable processor for signal processing applications - Google Patents

A bit slice microprogrammable processor for signal processing applications Download PDF

Info

Publication number
WO1982003481A1
WO1982003481A1 PCT/US1982/000359 US8200359W WO8203481A1 WO 1982003481 A1 WO1982003481 A1 WO 1982003481A1 US 8200359 W US8200359 W US 8200359W WO 8203481 A1 WO8203481 A1 WO 8203481A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
register
storage registers
multiplexer
logic unit
Prior art date
Application number
PCT/US1982/000359
Other languages
French (fr)
Inventor
Micro Devices Inc Advanced
Bernard James New
Original Assignee
Micro Devices Inc Advanced
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 Micro Devices Inc Advanced filed Critical Micro Devices Inc Advanced
Priority to DE8282901332T priority Critical patent/DE3279776D1/en
Publication of WO1982003481A1 publication Critical patent/WO1982003481A1/en

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
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7896Modular architectures, e.g. assembled from a number of identical packages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3896Bit slicing

Definitions

  • This invention relates to digital signal processing and more particularly it relates to a device capable of performing specific arithmetic and logic functions required to perform various types of waveform signal processing tasks including transforms known collectively as fast Fourier transforms ( FFT) .
  • FFT fast Fourier transforms
  • Fast Fourier transforms are a class of processes which are capable of performing Fourier transformation of signals with considerably fewer multiplication operations than normally is required for Fourier transformation. For example, direct evaluation of a discrete Fourier transform
  • the fast Fourier transform is characterized by a large number of repetitive sequential operations of complex (real and imaginary) numbers in short loops. It is desirable to perform such computations as rapidly as possible to accommodate a broad spectrum of frequencies in real time applications where manipulation of the information in the transform domain is particularly convenient.
  • General purpose computers and bit slice machines have been adapted for waveform signal processing applications.
  • General purpose computers, 5 are generally expensive and have many unnecessary or limited functions when used in signal processing applications, specifically signal processing applications which approach real time speeds.
  • the number of multiplications, data transfers, and the like, which must be ° performed during each sample period is extremely large, and the processing time is generally limited by the critical path of the central processing unit.
  • a typical bit slice-type central processing unit is the Am2903 Arithmetic Processor manufactured by Advanced Micro Devices, inc. of Sunnyvale, California.
  • the central element, the Am2903 contains an arithmetic logic unit and a 16-word scratch-pad memory with special multiply functions.
  • the Am2903 has a critical path which only permits the efficient implementation of a microprogrammed multiplication in a multi-cycle operation. It is therefore necessarily slower than a device capable of parallel hardware multiplication. Still further, the architecture of the Am2903 has only one arithmetic logic unit and one data bus. Thus a critical path time restraint exists if it is necessary to manipulate complex numbers, since two cycles are required for each such operation. Still further, the Am2903 does not easily permit simultaneous memory access and arithmetic operation, thus establishing another critical path.
  • a programmable device for digital signal processing applications in which short loops of digital data are processed repetitively and in parallel.
  • the device is a structure, typically on a single silicon chip, comprising storage registers and an arithmetic logic unit with suitable multiplexers to permit a high degree of flexibility in direct interconnection of the registers, the arithmetic logic unit, and external devices such as a multiplier and external memory.
  • the device consists of five independently programmable subsystems where functions are able to operate simultaneously in conjunction with a multiplier device, a memory device, and a source of program instructions.
  • the five functions are: 1) to move data in and out of an external memory device between preselected registers; 2) to move data in and out of an external multiplier between the preselected registers and an arithmetic logic unit (ALU); 3) to move data from the output of an external multiplier to preselected registers and to the ALU; 4) to propagate data selectively through a chain of registers, the chain being of preselectable length; and 5) to perform selected arithmetic and logic operations.
  • ALU arithmetic logic unit
  • An instruction set is defined for the device according to the invention which is capable of completely specifying any of the five simultaneously allowable operations.
  • the apparatus is constructed in manner permitting modular expansion of data word length at the arithmetic logic unit by the use of control bits capable of explicitly forcing a carry or inhibiting a carry, thereby to permit independent parallel operation of the arithmetic logic unit or extended word length operation under program control.
  • Figure 1 is a block diagram of a digital computer system to which is coupled a signal processing system.
  • Figure 2 is a block diagram of an arithmetic processor and a multiplier in which modular devices according to the invention are employed.
  • Figure 3 is a schematic diagram of a device according to the invention.
  • Figure 4 is chart illustrating the control word of the device according to the invention.
  • Figure 5 is a set of six tables defining the instructions for six independent registers of the device according to the invention.
  • Figure 6 is a set of two tables defining the arithmetic logic unit operand select instructions for the apparatus according to the invention.
  • Figure 7 is a table defining the arithmetic logic unit operation instructions for the device according to the invention.
  • Figure 8 is a table defining the instructions for the Multiplier Output (MO) multiplexer for the device according to the invention.
  • Figure 9 is a table defining the data input/output (DIO) instructions for the device according to the invention.
  • Figure 10 is a table illustrating a single computation cycle of one type of fast Fourier transform butterfly operation for devices according to the invention in the form of structure shown in Figure 2.
  • the subject invention is intended for use as a bit slice arithmetic logic unit and register stack for fast Fourier transform generators which process digital signals representative of analog waveforms in digital form.
  • One representative environment is a computer system 10 (Fig. 1).
  • a main system bus 12 which interconnects various system elements, such as an input controller 14, with its associated input devices (not shown) coupled thereto by a suitable connection 15, an output controller with its associated output devices (not shown) coupled thereto by an associated connection 17, a central system controller 18, which incorporates a central processing unit, and a main memory 20, with its control interface.
  • the signal processor 22 may for example perform fast Fourier transforms in response to a specific instruction word signal applied to the system bus 12.
  • An interface 24 connects a signal processor 22 with the main system bus 12 and provides all necessary data, address and control information transfer functions for the signal processor 22.
  • the signal processor 22 is itself a small special purpose computing machine which is capable of rapidly generating digital signals representative of the results of its special purpose computation.
  • the signal processor 22 typically includes a microprogram sequencer 26, a read only memory (ROM) 28, a random access memory (RAM) 34, an address control device or address sequencer 36, and a special purpose complex number processor 33, as hereinafter explained, which comprises an arithmetic processor with a dedicated high-speed parallel multiply function device.
  • the microprogram sequencer 26 is coupled to the interface 24, the address control 36, the ROM 28 and the number processor 33.
  • the microprogram sequencer 26 provides the microcode instructions, initial parameters and clock to the address control 36 and to the other devices of the signal processor 22.
  • the ROM 28 contains data representing at least a portion of the constants used in the signal processor 22.
  • the RAM 34 is for storage of input and output data and for so-called "scratch pad" storage of data generated during computation by the number processor 33.
  • the RAM 34 is coupled to the address control 36, as well as to and from the interface 24 and to and from the number processor 33.
  • FIG. 2 there is shown a block diagram of a number processor 33 in which a plurality of devices according to the invention, hereinafter bit-slice processors 40, are employed.
  • the architecture of Figure 2 is but one example of the use of the bit-slice processors 40 according to the invention.
  • the number processor 33 (Fig. 2) comprises a real processor portion 42 and an imaginary processor portion 44, with data input/output terminals of the real processor 42 coupled to an interconnection for real data 46 and the data input/output terminals of the imaginary processor 44 coupled to a bus for imaginary data 48.
  • the number processor 33 further includes, for example, a 16-bit high-speed multiplier 32 having one operand input coupled to a programmable read only memory (PROM) 50 and the other operand input coupled to a multiplier input/output terminal of both the real processor 42 and the imaginary processor 44.
  • the multiplier 32 may for example be a type MPY-16HJ
  • 16 x 16 bit parallel multiplier manufactured by TRW, Inc. of Los Angeles, California. Other high-speed parallel array multipliers may also be used.
  • the product of the multiplier 32 is fed through a bus 52 to the multiplier inputs of the real processor 42 and the imaginary processor 44.
  • one 8-bit portion is coupled to one 8-bit input of
  • the bit-slice processors 40 are appended to each other in parallel by a carry flag line 54 (including other flags) between each bit-slice processor 40 forming a processor unit.
  • Each bit-slice processor is under independent or interdependent control of external microcode through control buses 41A, 41B, 41C and 41D.
  • bit-slice processor 40 is a basic building block of a number processor 33.
  • the architecture of Figure 2 is one example of a parallel processor which can be used with a complex number system. Other architectures are suggested by the modular structure and capabilities of the bit-slice processor 40.
  • each bit-slice processor 40 consists of a register/arithmetic logic unit module in integrated circuit form having an internal architecture with the specific intention of providing a high degree of parallelism and flexibility.
  • the bit-slice processor 40 comprises six registers 60, 62, 64, 66, 68 and 70, each of which has an associated three-channel register multiplexer 72, 74, 76, 78, 80 and 82.
  • Two of the registers 60, 66 serve as input registers.
  • the registers 60, 62, 64, 66, 68, 70 are arranged in a stack forming a loop which can be entered or exited at any register.
  • the input registers 60, 66 are spaced equidistant from one another, allowing the register stack to be programmmed as two independent parallel stacks, as one loop of registers or as a single stack of registers with one input and one output.
  • an arithmetic logic unit 84 with two operand input terminals 86 and 88 called, respectively, the S input and the R input.
  • the bit-slice processor 40 which is structured as an 8-bit slice, includes the following external connections: an 8-bit-wide data I/O terminal (DIO) 102, an 8-bit-wide multiplier I/O terminal (MIO) 104, an 8-bit-wide multiplier input terminal (MI) 106, which is intended for use in parallel with the MIO 104 as the most significant product of the 16-bit line, a sign extend input (SE_ N ) 108, a carry input (C IN ) 110, a sign extend output (SE OUT ) 112, and five bits of selected flags which are used for control of a parallel bit-slice device, namely.
  • DIO data I/O terminal
  • MIO multiplier I/O terminal
  • MI multiplier input terminal
  • the data output multiplexer 94 has four inputs, the multiplier output 96 has eight inputs, the S multiplexer 90 has eight inputs, and the R multiplexer 92 has eight inputs.
  • the control lines for the instructions of the multiplexers and to the ALU 84, as well as the clock lines for the registers, are not shown.
  • the device is subject to external instructional control as defined by a 29-bit instruction word which allows all registers and the ALU to be explicitly controlled by external means with each clock cycle.
  • Various specific implementations of logic circuits according to the invention will be apparent to those of ordinary skill in the design of logic circuits once the control state and interconnections have been defined as herein disclosed.
  • the internal interconnections of the bit-slice processor 40 are intended to provide maximum flexibility of interconnection between the registers and the ALU 84, as well as to the external access terminals. Specifically referring to Figure 3, all interconnections between elements are 8-bit-wide bus connections.
  • the DIO terminal 102 has a data input (DI) bus 120 which is coupled to the DI input of the MO multiplexer 96 and also to one input of the first
  • OMPI multiplexer 72 for the first register 60 (hereinafter the Al register) and to one input of the fourth multiplexer 78 of the fourth register 66 (hereinafter the Bl register) .
  • MIO terminal 104 has a multiplier input (LSP) bus 122 which is coupled to the least significant product (LSP) terminal of the S multiplexer 90, to one input of the A2 multiplexer
  • the MI terminal 106 has its bus MSP 124 coupled to the most significant product (MSP) terminal of the S multiplexer 90, to one input of the A3 multiplexer 76 of the
  • A3 register 64 to one input of the B3 multiplexer 82 of the
  • the output bus of the ALU 84 is coupled to the ALU input of the MO multiplexer 96, to one input of the A3 multiplexer 76 of the A3 register 64, to one input of the B3 multiplexer 82 of the B3 register 70, to one input of the A2 multiplexer 74 of the A2 register 62 and to one input of the B2 multiplexer
  • Al bus is coupled to one input of the A2 multiplexer 74 of the A2 register 62, to the Al input of the MO multiplexer 96 and to the Al inputs of both the S multiplexer 90 and the R multiplexer 92.
  • the output of the A2 register 62 designated the A2 bus, is coupled to one input of the A3 multiplexer 76 of the A3 register 64, and to the A2 inputs of the DO multiplexer 94, to the MO multiplexer 96, to the S multiplexer 90 and to the R multiplexer 92.
  • the output of the A3 register 64 designated the A3 bus is coupled to one input of the Bl multiplexer 78 of the Bl register 66, and to the A3 inputs of the DO multiplexer 94, the MO multiplexer 96, the S multiplexer 90, and the R multiplexer 92.
  • the output of the Bl register 66 is coupled to one input of the B2 multiplexer 80 of the B2 register 68, and to the Bl inputs of the MO multiplexer 96, the S multiplexer
  • the output of the B2 register 68 is coupled to one input of the B3 multiplexer 82 of the B3 register 70 and to the B2 inputs of the DO multiplexer 94, the MO multiplexer 96, the S multiplexer 90 and the R multiplexer 92.
  • the output of the B3 register 70 is coupled to one input of the Al multiplexer 72 of the Al register 60 and to the B3 inputs of the DO multiplexer 94, the MO multiplexer 96, the S multiplexer 90 and the R multiplexer 92.
  • the SE_ N input terminals 108 are coupled to input of the R multiplexer 90, as are Force Zero input lines 130.
  • the output of the S multiplexer is not only provided to the S input 86 of the ALU 84, but it is also provided as the MSB S operand output to the SE OUT terminals 112.
  • the output of the DO multiplexer 94 is coupled through the driver 98 to the DIO output terminals 102.
  • the output of the MO multiplexer 96 is coupled through driver 100 to the MIO output terminals 104.
  • the multiplexers and busses of the bit-slice processor 40 allow, in one device, typically on a chip of silicon, direct interconnection between any register and the ALU 84, a continuously recirculating register stack of six registers which can be entered and exited at virtually any point, and a structure which allows two pairs of three registers to be independently queued up. Each register may be independently controlled to load data from one of the three sources. Two of the registers, the Al register 60 and the Bl register 66 are specifically intended for use as input registers while the other four registers are intended as accumulator registers.
  • the ALU 84 is provided with eight definable arithmetic and logic functions as follows: R + S, R - S, S - R, Pass R, R OR S, R AND S, R XOR S, and R (R inverted). Two ports are provided to communicate with an external multiplier.
  • the MIO terminal 104 is designed to be used with the Y port of a multiplier to load operands and to recover the least significant product (LSP).
  • LSP least significant product
  • O PI terminal 106 is intended to recover the most significant product (MSP) output of the external multiplier.
  • MSP most significant product
  • the third port, the DIO terminal 102 is intended for communication with an external memory.
  • the bit-slice processor 40 is provided with an ability to execute instructions simultaneously and independently in five areas. These areas are as follows:
  • FIG. 4 there is shown the structure of a 29-bit binary instruction word, which when applied at twenty-nine external terminals executes the instructions explained hereinafter.
  • the instruction is composed of thirteen independent disjoint microcode fields which preset the multiplexers and define the ALU operation for each microcode cycle. Specifically, Field 1 consisting of bit 0 is defined as the Data Out Enable field. Field 2, defined by bit 1 is the Multiplier Out Enable field. Field 3 defined by bits 2 and 3 is the Data Out Select field. Field
  • Bits 4, 5 and 6 are the Multiplier Out Select field.
  • Field 5 defined by bits 7 and 8 is the Store Al field for storing data in register Al.
  • Fields 6, 7, 8, 9 and 10 defined by bits 9 and 10, 11 and 12, 13 and 14, 15 and 16, and 17 and 18, respectively are the Store A2, Store A3, Store Bl, Store B2, and Store B3 fields.
  • Bits 19, ⁇ o, 21 and 22 define all of the ALU operations and is called the ALU Operator field.
  • Bits 23, 24, and 25 define the ALU
  • Operand Select and bits 26, 27 and 28 define the ALU R Operand Select field.
  • Figure 5 defines the four states of bits I_ through I, g which specify which of three multiplexer inputs is activated associated with the registers Al, A2, A3, Bl, B2, B3.
  • a fourth state is a Hold state, a state which prevents the data from being propagated from the previous register or input into the register.
  • the Al register instruction set selects the most significant product (MSP), the DI bus or bus B3, as well as Hold, in response to the I_ and I g bit input applied • thereto.
  • the A2 register responding to instruction bits I_ and I-J ⁇ gates the LSP, the ALU and the Al bus as well as Hold.
  • the A3 register responds at bits I., and I.- to enable the multiplexers for either the MSP, the ALU or the A2 bus, as well as Hold.
  • the Bl register instructed as bits I,- and I 14 / is mirror image of the Al register instructions in that it also responds to the most significant product DI bus A3 and Hold as its instruction set.
  • register B2 responding at bits I,- and I,,, gates the LSP, the Bl bus and Hold
  • the B3 register responds at bits I,_ and I, g to gate the MSP, the ALU, the B2 bus and Hold.
  • Instruction bits I 2 6' I 27 and X 28 define the multiplexer gating of the R operand multiplexer and bits 1-23' I24 and I25 are the S operand multiplexer gating (Fig. 6).
  • the instructions for the eight different gates are, respectively, Al bus, A2 bus, A3 bus, Bl bus, B2 bus, B3 bus, SE_ N , and Force Zero.
  • the gating instructions are Al bus, A2 bus, A3 bus, Bl bus, B2 bus, B3 bus, MSP bus and LSP bus. Bits I .
  • r I ⁇ and I g define the gating instructions for the MO multiplexer 96 which are, respectively, Al bus, A2 bus, A3 bus, Bl bus, B2 bus, B3 bus, ALU, and DI (Fig. 8).
  • Bits I_ and I- define the mutliplexer instructions for the DO multiplexer 94, which are respectively A2, A3, B2 and B3.
  • bits I 2 i' I 22' I 19 an ⁇ 3 " ⁇ 20 def ⁇ - ne the operations for the ALU 84.
  • the states of bits I, g and I_ Q also define
  • OMPI whether bits are set to communicate relevant information to an adjacent or parallel bit-slice processor. If bits I- ⁇ g and 1- - are always zero, a Carry Out bit issues a Carry signal (depending on the product of the ALU). Similarly, a Propagate bit and Generate bit are also set according to the product of the ALU whenever bits I, g and I 2Q are set at zero. However, when bit I-. g is set, the Carry Out is always inhibited (set to zero) and the Propagate and Generate bits are locked in a complementary state to the Carry Out signal.
  • the Propagate and Generate bits are negated so that they are only enabled when set to a binary zero.
  • bit I_ 0 is set with bit I, g at zero
  • the Carry Out bit is invariably enabled while the Propagate and Generate bits are also set to the complementary state, in this case they are also locked in the enable state.
  • Bit I 21 and I 22 n connection with bits I-. g and I 20 define the operations of the ALU.
  • bits I lg and I 20 are zero
  • bits I 2 , and I 22 define the four arithmetic operations R + S, R - S, R (R pass), and S - R, according to the four possible states of bits I 2 , and I 2 2 * ⁇ ⁇ ⁇ e same arithmetic operations are defined when bit I, g and I 2 « are set at one and zero, respectively, and zero and one, respectively.
  • bits I-, g and I 20 are both set to one
  • bits I-,. and I 22 define the logical operation R XOR S, R AND S, R negate, and R OR S.
  • Figure 10 is a table illustrating the instructional microcode which may be applied to a basic signal processor architecture of the type shown in Figure 2
  • f o OMPIr for a single fast Fourier transform butterfly operation.
  • the structure of the microcode is such that ten cycles are required to complete an entire read and write cycle. However, by implementing a code with the programming structure as herein disclosed, a new operation can be initiated and completed each fourth cycle. This is possible because of interleaving of the encoding to take full advantage of the parallel structure of the bit-slice processor 40. Sixteen cycles are shown numbered from 0 through 15.
  • the multiplication microcycle shown begins with system cycle 3 with a read of the real and imaginary parts of the value B through the input bus DIO 102. An address has been presented to the external memory and the DO Enable field has been set to pass data into the bit-slice processor 40 to the Bl register of the real processor 42 (Fig. 2) and to the Bl register of the imaginary processor 44.
  • the computation process continues as indicated by the instructions shown in the table.
  • the spacing of the instructions is instructive. For example, the first ALU instruction, which occurs at system cycle 6, may recur again at system cycle 10 and system cycle 14.
  • Four instruction cycles interleave in such a manner that each parallel operation follows as closely as is possible the critical path for the butterfly multiplication.
  • a valuable feature of the invention particularly with the instruction set as herein defined wherein an express command is provided to each register in order to accept a command from a previous register, is the ability to push through data in a stack, to override data in the next subsequent register, and to pull out data from any register at any time.
  • a still further convenient and important feature is the explicit instruction for inhibiting carry.
  • OMPI between bit-slice modules. Accordingly, the system can be changed quickly under program control from one large extended precision computing device to a plurality of smaller independently operable computing devices.
  • a still further valuable feature of the invention is the elimination of any need for an instruction decoder.
  • the instructions are explicitly defined. In fact, more than 500,000,000 combinations of instructions (2 ) are possible in a device with instruction words and these explicit capabilities.
  • the instruction set is such that there are no undefined states'.
  • the embodiment of the invention herein described has defined a bit-slice computing device which is optimized for signal processing applications, and also for vector computation applications.
  • the device is capable of carrying on five functions in parallel, and has been shown to be able to perform characteristic butterfly functions (with the exception of the specific call to memory and the multiplication) with a minimum of wasted operations, and to provide a fully explicit instruction set without undefined states.
  • the device can be used as a module in expandable computing machines or by a simple instruction, it can be caused to operate as an independent device in parallel with other similar computing machines, depending upon the microcode input.
  • the bit-slice device herein described is intended to be embodied on a single chip of silicon semiconductor, thereby permitting its use as a component in a wide variety of applications in larger systems.
  • the device can be used in a hardware FFT transform processor. With a typical device cycle of 100 nanoseconds, the device is capable of completing a typical FFT butterfly operation once each 400 nanoseconds.

Abstract

A programmable device (Fig. 1, 22) for signal processing applications in which short loops of digital data are processed repetitively and in parallel. The device consists of five independently programmable sub-systems (Fig. 3) whose functions are able to operate simultaneously. The apparatus is intended for use in a connection with a digital multiplier device (Fig. 1, 32) and a digital memory device (Fig. 1, 34) for such signal processing applications as fast Fourier transforms and time domain filtering in real time or near real time. The five parallel functions are 1. to move data in and out of an external memory device (Fig. 1, 34) between selected registers (Fig. 3, 60, 62, 64, 66, 68 and 70); 2 to move data in and out of an external multiplier (Fig. 1, 32) between selected registers and an arithmetic logic unit (ALU) (Fig. 3, 84); 3. to move data from the output of a multiplier to selected registers and the ALU; 4. to propagate data selectively through a chain if register (Fig. 3, 60, 62, 64, 66, 68 and 70) the chain being of preselectable length; and 5. to perform selected arithmetic and logic operations. The device is provided with an instruction set (Fig. 4) capable of completely defining any of the five simultaneously allowable functions. The device structure is modular (Fig. 2) to permit expansion of data word length at the ALU. Internally generated bit signals are capable of explicitly forcing a carry or inhibiting a carry, thereby to permit independent parallel operation or extended word length operation under program control. The entire apparatus is intended to be embodied as an integrated circuit in a single chip of semiconductor material (Fig. 3).

Description

A BIT SLICE MICROPROGRAM ABLE PROCESSOR FOR SIGNAL PROCESSING APPLICATIONS
BACKGROUND OF THE INVENTION
1. Field of Invention This invention relates to digital signal processing and more particularly it relates to a device capable of performing specific arithmetic and logic functions required to perform various types of waveform signal processing tasks including transforms known collectively as fast Fourier transforms ( FFT) .
Fast Fourier transforms are a class of processes which are capable of performing Fourier transformation of signals with considerably fewer multiplication operations than normally is required for Fourier transformation. For example, direct evaluation of a discrete Fourier transform
2 on N number of points requires N complex multiplications and additions. A fast Fourier transform requires only
- Nsj- log_N number of computations . For an N = 1024 points , this represents a computational savings of ninety-nine . percent.
The fast Fourier transform is characterized by a large number of repetitive sequential operations of complex (real and imaginary) numbers in short loops. It is desirable to perform such computations as rapidly as possible to accommodate a broad spectrum of frequencies in real time applications where manipulation of the information in the transform domain is particularly convenient. 2. Description of the Prior Art
In the past, general purpose computers and bit slice machines have been adapted for waveform signal processing applications. General purpose computers, 5 however, are generally expensive and have many unnecessary or limited functions when used in signal processing applications, specifically signal processing applications which approach real time speeds. The number of multiplications, data transfers, and the like, which must be ° performed during each sample period is extremely large, and the processing time is generally limited by the critical path of the central processing unit. For example, a typical bit slice-type central processing unit is the Am2903 Arithmetic Processor manufactured by Advanced Micro Devices, inc. of Sunnyvale, California. The central element, the Am2903, contains an arithmetic logic unit and a 16-word scratch-pad memory with special multiply functions. However, the Am2903 has a critical path which only permits the efficient implementation of a microprogrammed multiplication in a multi-cycle operation. It is therefore necessarily slower than a device capable of parallel hardware multiplication. Still further, the architecture of the Am2903 has only one arithmetic logic unit and one data bus. Thus a critical path time restraint exists if it is necessary to manipulate complex numbers, since two cycles are required for each such operation. Still further, the Am2903 does not easily permit simultaneous memory access and arithmetic operation, thus establishing another critical path.
O What is needed is a device capable of a high degree of parallel processing. Indeed, it is only by performing many operations in parallel that really high processing throughput may be achieved. The input/output structure of existing devices, including the Am2903 simply do not provide for the necessary interconnection, or flexibility of interconnection, between computational elements, storage elements and external devices to minimize critical path.
SUMMARY OF THE INVENTION
According to the invention a programmable device is provided for digital signal processing applications in which short loops of digital data are processed repetitively and in parallel. The device is a structure, typically on a single silicon chip, comprising storage registers and an arithmetic logic unit with suitable multiplexers to permit a high degree of flexibility in direct interconnection of the registers, the arithmetic logic unit, and external devices such as a multiplier and external memory. The device consists of five independently programmable subsystems where functions are able to operate simultaneously in conjunction with a multiplier device, a memory device, and a source of program instructions. The five functions are: 1) to move data in and out of an external memory device between preselected registers; 2) to move data in and out of an external multiplier between the preselected registers and an arithmetic logic unit (ALU); 3) to move data from the output of an external multiplier to preselected registers and to the ALU; 4) to propagate data selectively through a chain of registers, the chain being of preselectable length; and 5) to perform selected arithmetic and logic operations.
An instruction set is defined for the device according to the invention which is capable of completely specifying any of the five simultaneously allowable operations. The apparatus is constructed in manner permitting modular expansion of data word length at the arithmetic logic unit by the use of control bits capable of explicitly forcing a carry or inhibiting a carry, thereby to permit independent parallel operation of the arithmetic logic unit or extended word length operation under program control.
The invention will be best understood by reference to the following detailed description taken in connection with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of a digital computer system to which is coupled a signal processing system. Figure 2 is a block diagram of an arithmetic processor and a multiplier in which modular devices according to the invention are employed.
Figure 3 is a schematic diagram of a device according to the invention.
Figure 4 is chart illustrating the control word of the device according to the invention. Figure 5 is a set of six tables defining the instructions for six independent registers of the device according to the invention.
Figure 6 is a set of two tables defining the arithmetic logic unit operand select instructions for the apparatus according to the invention.
Figure 7 is a table defining the arithmetic logic unit operation instructions for the device according to the invention.
Figure 8 is a table defining the instructions for the Multiplier Output (MO) multiplexer for the device according to the invention.
Figure 9 is a table defining the data input/output (DIO) instructions for the device according to the invention. Figure 10 is a table illustrating a single computation cycle of one type of fast Fourier transform butterfly operation for devices according to the invention in the form of structure shown in Figure 2. ✓•αiΪ 7 OMPI DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
The subject invention is intended for use as a bit slice arithmetic logic unit and register stack for fast Fourier transform generators which process digital signals representative of analog waveforms in digital form. One representative environment is a computer system 10 (Fig. 1). In the computer system 10, there are typically a main system bus 12 which interconnects various system elements, such as an input controller 14, with its associated input devices (not shown) coupled thereto by a suitable connection 15, an output controller with its associated output devices (not shown) coupled thereto by an associated connection 17, a central system controller 18, which incorporates a central processing unit, and a main memory 20, with its control interface.
According to the invention, there is at least one special function device, such as a signal processor 22, which is coupled to the main system bus 12. The signal processor 22 may for example perform fast Fourier transforms in response to a specific instruction word signal applied to the system bus 12.
An interface 24 connects a signal processor 22 with the main system bus 12 and provides all necessary data, address and control information transfer functions for the signal processor 22. The signal processor 22 is itself a small special purpose computing machine which is capable of rapidly generating digital signals representative of the results of its special purpose computation.
The signal processor 22 typically includes a microprogram sequencer 26, a read only memory (ROM) 28, a random access memory (RAM) 34, an address control device or address sequencer 36, and a special purpose complex number processor 33, as hereinafter explained, which comprises an arithmetic processor with a dedicated high-speed parallel multiply function device.
O ?I The microprogram sequencer 26 is coupled to the interface 24, the address control 36, the ROM 28 and the number processor 33. The microprogram sequencer 26 provides the microcode instructions, initial parameters and clock to the address control 36 and to the other devices of the signal processor 22. The ROM 28 contains data representing at least a portion of the constants used in the signal processor 22. The RAM 34 is for storage of input and output data and for so-called "scratch pad" storage of data generated during computation by the number processor 33.
The RAM 34 is coupled to the address control 36, as well as to and from the interface 24 and to and from the number processor 33.
Referring to Figure 2 there is shown a block diagram of a number processor 33 in which a plurality of devices according to the invention, hereinafter bit-slice processors 40, are employed. The architecture of Figure 2 is but one example of the use of the bit-slice processors 40 according to the invention. The number processor 33 (Fig. 2) comprises a real processor portion 42 and an imaginary processor portion 44, with data input/output terminals of the real processor 42 coupled to an interconnection for real data 46 and the data input/output terminals of the imaginary processor 44 coupled to a bus for imaginary data 48. The number processor 33 further includes, for example, a 16-bit high-speed multiplier 32 having one operand input coupled to a programmable read only memory (PROM) 50 and the other operand input coupled to a multiplier input/output terminal of both the real processor 42 and the imaginary processor 44. The multiplier 32 may for example be a type MPY-16HJ
16 x 16 bit parallel multiplier manufactured by TRW, Inc. of Los Angeles, California. Other high-speed parallel array multipliers may also be used. The product of the multiplier 32 is fed through a bus 52 to the multiplier inputs of the real processor 42 and the imaginary processor 44.
Specifically, for a 16-bit output of the most significant product, one 8-bit portion is coupled to one 8-bit input of
__O PI one bit-slice processor 40 of the imaginary processor and to the corresponding 8-bit input of a bit-slice processor 40 of the real processor, while the other 8-bit output is (the most significant eight bits) is coupled to one 8-bit input of the more significant bit-slice processor 40 of the imaginary processor 44 and also to the same bit inputs of the more significant bit-slice processor 40 of the real processor 42. The bit-slice processors 40 are appended to each other in parallel by a carry flag line 54 (including other flags) between each bit-slice processor 40 forming a processor unit. Each bit-slice processor is under independent or interdependent control of external microcode through control buses 41A, 41B, 41C and 41D. It is thus seen that the bit-slice processor 40 is a basic building block of a number processor 33. The architecture of Figure 2 is one example of a parallel processor which can be used with a complex number system. Other architectures are suggested by the modular structure and capabilities of the bit-slice processor 40. Turning to Figure 3, each bit-slice processor 40 consists of a register/arithmetic logic unit module in integrated circuit form having an internal architecture with the specific intention of providing a high degree of parallelism and flexibility. The bit-slice processor 40 comprises six registers 60, 62, 64, 66, 68 and 70, each of which has an associated three-channel register multiplexer 72, 74, 76, 78, 80 and 82. Two of the registers 60, 66 serve as input registers. The registers 60, 62, 64, 66, 68, 70 are arranged in a stack forming a loop which can be entered or exited at any register. The input registers 60, 66 are spaced equidistant from one another, allowing the register stack to be programmmed as two independent parallel stacks, as one loop of registers or as a single stack of registers with one input and one output. In addition, there is provided an arithmetic logic unit 84 with two operand input terminals 86 and 88 called, respectively, the S input and the R input. An S input
OMPI multiplexer 90, an R input multiplexer 92, a data output multiplexer 94, a multiplier output multiplexer 96 and output drivers 98 and 100 constitute the interconnections. In addition, the bit-slice processor 40, which is structured as an 8-bit slice, includes the following external connections: an 8-bit-wide data I/O terminal (DIO) 102, an 8-bit-wide multiplier I/O terminal (MIO) 104, an 8-bit-wide multiplier input terminal (MI) 106, which is intended for use in parallel with the MIO 104 as the most significant product of the 16-bit line, a sign extend input (SE_N) 108, a carry input (CIN) 110, a sign extend output (SEOUT) 112, and five bits of selected flags which are used for control of a parallel bit-slice device, namely. Carry, Propagate, Generate, Zero, and Overflow. The data output multiplexer 94 has four inputs, the multiplier output 96 has eight inputs, the S multiplexer 90 has eight inputs, and the R multiplexer 92 has eight inputs.
The control lines for the instructions of the multiplexers and to the ALU 84, as well as the clock lines for the registers, are not shown. The device is subject to external instructional control as defined by a 29-bit instruction word which allows all registers and the ALU to be explicitly controlled by external means with each clock cycle. Various specific implementations of logic circuits according to the invention will be apparent to those of ordinary skill in the design of logic circuits once the control state and interconnections have been defined as herein disclosed. The internal interconnections of the bit-slice processor 40 are intended to provide maximum flexibility of interconnection between the registers and the ALU 84, as well as to the external access terminals. Specifically referring to Figure 3, all interconnections between elements are 8-bit-wide bus connections. The DIO terminal 102 has a data input (DI) bus 120 which is coupled to the DI input of the MO multiplexer 96 and also to one input of the first
OMPI multiplexer 72 for the first register 60 (hereinafter the Al register) and to one input of the fourth multiplexer 78 of the fourth register 66 (hereinafter the Bl register) . The
MIO terminal 104 has a multiplier input (LSP) bus 122 which is coupled to the least significant product (LSP) terminal of the S multiplexer 90, to one input of the A2 multiplexer
74 of the A2 register 62 and to one input of the B2 multiplexer 80 of the B2 register 68.
The MI terminal 106 has its bus MSP 124 coupled to the most significant product (MSP) terminal of the S multiplexer 90, to one input of the A3 multiplexer 76 of the
A3 register 64, to one input of the B3 multiplexer 82 of the
B3 register 70, to one input of the Al multiplexer 72 of the
Al register 60, and to one input of the Bl multiplexer 78 of the Bl register 66. The output bus of the ALU 84, designated the ALU bus 126, is coupled to the ALU input of the MO multiplexer 96, to one input of the A3 multiplexer 76 of the A3 register 64, to one input of the B3 multiplexer 82 of the B3 register 70, to one input of the A2 multiplexer 74 of the A2 register 62 and to one input of the B2 multiplexer
80 of the B2 register 68.
The output of the Al register 60, designated the
Al bus, is coupled to one input of the A2 multiplexer 74 of the A2 register 62, to the Al input of the MO multiplexer 96 and to the Al inputs of both the S multiplexer 90 and the R multiplexer 92. The output of the A2 register 62, designated the A2 bus, is coupled to one input of the A3 multiplexer 76 of the A3 register 64, and to the A2 inputs of the DO multiplexer 94, to the MO multiplexer 96, to the S multiplexer 90 and to the R multiplexer 92. The output of the A3 register 64, designated the A3 bus is coupled to one input of the Bl multiplexer 78 of the Bl register 66, and to the A3 inputs of the DO multiplexer 94, the MO multiplexer 96, the S multiplexer 90, and the R multiplexer 92. The output of the Bl register 66 is coupled to one input of the B2 multiplexer 80 of the B2 register 68, and to the Bl inputs of the MO multiplexer 96, the S multiplexer
OMPI 90, and the R multiplexer 92. The output of the B2 register 68, designated the B2 bus, is coupled to one input of the B3 multiplexer 82 of the B3 register 70 and to the B2 inputs of the DO multiplexer 94, the MO multiplexer 96, the S multiplexer 90 and the R multiplexer 92. The output of the B3 register 70 is coupled to one input of the Al multiplexer 72 of the Al register 60 and to the B3 inputs of the DO multiplexer 94, the MO multiplexer 96, the S multiplexer 90 and the R multiplexer 92. The SE_N input terminals 108 are coupled to input of the R multiplexer 90, as are Force Zero input lines 130. The output of the S multiplexer is not only provided to the S input 86 of the ALU 84, but it is also provided as the MSB S operand output to the SEOUT terminals 112. The output of the DO multiplexer 94 is coupled through the driver 98 to the DIO output terminals 102. The output of the MO multiplexer 96 is coupled through driver 100 to the MIO output terminals 104. As will be readily apparent, the multiplexers and busses of the bit-slice processor 40 allow, in one device, typically on a chip of silicon, direct interconnection between any register and the ALU 84, a continuously recirculating register stack of six registers which can be entered and exited at virtually any point, and a structure which allows two pairs of three registers to be independently queued up. Each register may be independently controlled to load data from one of the three sources. Two of the registers, the Al register 60 and the Bl register 66 are specifically intended for use as input registers while the other four registers are intended as accumulator registers.
The ALU 84 is provided with eight definable arithmetic and logic functions as follows: R + S, R - S, S - R, Pass R, R OR S, R AND S, R XOR S, and R (R inverted). Two ports are provided to communicate with an external multiplier. The MIO terminal 104 is designed to be used with the Y port of a multiplier to load operands and to recover the least significant product (LSP). The MI
O PI terminal 106 is intended to recover the most significant product (MSP) output of the external multiplier. The third port, the DIO terminal 102 is intended for communication with an external memory. The bit-slice processor 40 is provided with an ability to execute instructions simultaneously and independently in five areas. These areas are as follows:
1. exchanging data between an external memory and specified internal registers as established by register multiplexer instruction signals;
2. loading of a multiplier operand from either an external multiplier or an internal register as defined by operand multiplexer instruction signals;
3. retrieving a multiplier product from an external multiplier;
4. performing an arithmetic or logic operation; and
5. moving data within a stack of registers. Turning to Figure 4, there is shown the structure of a 29-bit binary instruction word, which when applied at twenty-nine external terminals executes the instructions explained hereinafter. The instruction is composed of thirteen independent disjoint microcode fields which preset the multiplexers and define the ALU operation for each microcode cycle. Specifically, Field 1 consisting of bit 0 is defined as the Data Out Enable field. Field 2, defined by bit 1 is the Multiplier Out Enable field. Field 3 defined by bits 2 and 3 is the Data Out Select field. Field
4 defined by bits 4, 5 and 6 is the Multiplier Out Select field. Field 5 defined by bits 7 and 8 is the Store Al field for storing data in register Al. Similarly, Fields 6, 7, 8, 9 and 10 defined by bits 9 and 10, 11 and 12, 13 and 14, 15 and 16, and 17 and 18, respectively are the Store A2, Store A3, Store Bl, Store B2, and Store B3 fields. Bits 19, ιo, 21 and 22 define all of the ALU operations and is called the ALU Operator field. Bits 23, 24, and 25 define the ALU
5 Operand Select, and bits 26, 27 and 28 define the ALU R Operand Select field.
Figure imgf000013_0001
Figure 5 defines the four states of bits I_ through I,g which specify which of three multiplexer inputs is activated associated with the registers Al, A2, A3, Bl, B2, B3. A fourth state is a Hold state, a state which prevents the data from being propagated from the previous register or input into the register.
The Al register instruction set selects the most significant product (MSP), the DI bus or bus B3, as well as Hold, in response to the I_ and Ig bit input applied thereto. The A2 register, responding to instruction bits I_ and I-J Γ gates the LSP, the ALU and the Al bus as well as Hold. The A3 register responds at bits I., and I.- to enable the multiplexers for either the MSP, the ALU or the A2 bus, as well as Hold. The Bl register, instructed as bits I,- and I14/ is mirror image of the Al register instructions in that it also responds to the most significant product DI bus A3 and Hold as its instruction set. Likewise, register B2 responding at bits I,- and I,,, gates the LSP, the Bl bus and Hold, and the B3 register responds at bits I,_ and I,g to gate the MSP, the ALU, the B2 bus and Hold.
Instruction bits I26' I27 and X28 define the multiplexer gating of the R operand multiplexer and bits 1-23' I24 and I25 are the S operand multiplexer gating (Fig. 6). The instructions for the eight different gates are, respectively, Al bus, A2 bus, A3 bus, Bl bus, B2 bus, B3 bus, SE_N, and Force Zero. On the S operand side, the gating instructions are Al bus, A2 bus, A3 bus, Bl bus, B2 bus, B3 bus, MSP bus and LSP bus. Bits I . r Iς and Ig define the gating instructions for the MO multiplexer 96 which are, respectively, Al bus, A2 bus, A3 bus, Bl bus, B2 bus, B3 bus, ALU, and DI (Fig. 8). Bits I_ and I-, define the mutliplexer instructions for the DO multiplexer 94, which are respectively A2, A3, B2 and B3.
Bits I2i' I22' I19 an<3 "^20 def^-ne the operations for the ALU 84. The states of bits I,g and I_Q also define
OMPI whether bits are set to communicate relevant information to an adjacent or parallel bit-slice processor. If bits I-^g and 1- - are always zero, a Carry Out bit issues a Carry signal (depending on the product of the ALU). Similarly, a Propagate bit and Generate bit are also set according to the product of the ALU whenever bits I,g and I2Q are set at zero. However, when bit I-.g is set, the Carry Out is always inhibited (set to zero) and the Propagate and Generate bits are locked in a complementary state to the Carry Out signal. (in the particular design shown, the Propagate and Generate bits are negated so that they are only enabled when set to a binary zero.) When bit I_0 is set with bit I,g at zero, the Carry Out bit is invariably enabled while the Propagate and Generate bits are also set to the complementary state, in this case they are also locked in the enable state.
Bit I21 and I22 n connection with bits I-.g and I20 define the operations of the ALU. When bits Ilg and I20 are zero, bits I2, and I22 define the four arithmetic operations R + S, R - S, R (R pass), and S - R, according to the four possible states of bits I2, and I22* τ^ιe same arithmetic operations are defined when bit I,g and I2« are set at one and zero, respectively, and zero and one, respectively. However, when bits I-,g and I20 are both set to one, bits I-,. and I22 define the logical operation R XOR S, R AND S, R negate, and R OR S.
In this manner all of the states of the ALU, of the multiplexers and of the registers are fully defined by external instructions. The implementation of a structure capable of executing these logical instructions will be apparent to a designer of ordinary skill in this art, and many such structures fulfill these criteria. The order of the bits is of course irrelevant so long as the fields are independent of one another within the constraints hereinabove defined. Figure 10 is a table illustrating the instructional microcode which may be applied to a basic signal processor architecture of the type shown in Figure 2
f o OMPIr for a single fast Fourier transform butterfly operation. The specific operation implemented is the butterfly operation of the form A1 = A + B jj and B' = A - B ^, where A, A', B, B' and W? are complex numbers. The structure of the microcode is such that ten cycles are required to complete an entire read and write cycle. However, by implementing a code with the programming structure as herein disclosed, a new operation can be initiated and completed each fourth cycle. This is possible because of interleaving of the encoding to take full advantage of the parallel structure of the bit-slice processor 40. Sixteen cycles are shown numbered from 0 through 15. The multiplication microcycle shown begins with system cycle 3 with a read of the real and imaginary parts of the value B through the input bus DIO 102. An address has been presented to the external memory and the DO Enable field has been set to pass data into the bit-slice processor 40 to the Bl register of the real processor 42 (Fig. 2) and to the Bl register of the imaginary processor 44. The computation process continues as indicated by the instructions shown in the table. The spacing of the instructions is instructive. For example, the first ALU instruction, which occurs at system cycle 6, may recur again at system cycle 10 and system cycle 14. Four instruction cycles interleave in such a manner that each parallel operation follows as closely as is possible the critical path for the butterfly multiplication.
A valuable feature of the invention, particularly with the instruction set as herein defined wherein an express command is provided to each register in order to accept a command from a previous register, is the ability to push through data in a stack, to override data in the next subsequent register, and to pull out data from any register at any time. A still further convenient and important feature is the explicit instruction for inhibiting carry.
This instruction eliminates costly and unnecessary AND gates
OMPI between bit-slice modules. Accordingly, the system can be changed quickly under program control from one large extended precision computing device to a plurality of smaller independently operable computing devices. A still further valuable feature of the invention is the elimination of any need for an instruction decoder. The instructions are explicitly defined. In fact, more than 500,000,000 combinations of instructions (2 ) are possible in a device with instruction words and these explicit capabilities. The instruction set is such that there are no undefined states'. The embodiment of the invention herein described has defined a bit-slice computing device which is optimized for signal processing applications, and also for vector computation applications. It is capable of carrying on five functions in parallel, and has been shown to be able to perform characteristic butterfly functions (with the exception of the specific call to memory and the multiplication) with a minimum of wasted operations, and to provide a fully explicit instruction set without undefined states. The device can be used as a module in expandable computing machines or by a simple instruction, it can be caused to operate as an independent device in parallel with other similar computing machines, depending upon the microcode input. The bit-slice device herein described is intended to be embodied on a single chip of silicon semiconductor, thereby permitting its use as a component in a wide variety of applications in larger systems. For example, the device can be used in a hardware FFT transform processor. With a typical device cycle of 100 nanoseconds, the device is capable of completing a typical FFT butterfly operation once each 400 nanoseconds.
The invention has now been described with reference to a specific embodiment. Other embodiments will be apparent to those of ordinary skill in the art in light of this disclosure. Accordingly, it is not intended that this invention be limited except as indicated by the appended claims.
OMPI

Claims

WHAT IS CLAIMED IS:
1. An integrated circuit device for processing digital data in response to instruction signals in connection with a digital memory means and multiplier means, said device comprising: a plurality of storage registers for storing said data; . . . . an arithmetic logic unit for performing preselectable arithmetic and logic operations on said data; first means for moving data between said digital memory means and preselectable ones of said storage registers; second means for moving data between said multiplier means and preselectable ones of said storage registers and said arithmetic logic unit; third means for moving data from said multiplier means to preselectable ones of said storage register means and said arithmetic logic unit; and means for propagating data through preselectable ones of said storage registers, wherein said first, second and third moving means, said propagating means and said
Figure imgf000018_0001
arithmetic logic unit are preselectably interconnected with one another and are simultaneously operable in response to said instruction signals.
OMPI
2. The device according to Claim 1 wherein said propagating means is responsive to said instruction signals for selectively holding data currently therein against erasure.
3. The device according to Claim 2 wherein said arithmetic logic unit is responsive to said instruction signals to selectively issue or inhibit a carry signal indicating overflow of a most significant bit for selectively coupling or decoupling the most significant bit value of said data to a second one of said integrated circuit devices which is operative in parallel with said device.
4. The device according to Claim 3 wherein said arithmetic logic unit is further operative in response to an external instruction to produce a zero value data output.
OMPI
5. An integrated circuit device for processing digital data in response to instruction signals for use in connection with digital memory means for storing data in external multiplier means,* said device comprising: a plurality of storage registers for storing said data, each one of said storage registers having associated therewith a register multiplexer for controlling access thereto from at least one other of said storage registers and at least one other source of data, said plurality of storage registers being interconnected with one another through said associated register multiplexers in a manner capable of forming a sequence of storage registers, said sequence being of a length which is preselectable according to said instruction signal; an arithmetic logic unit which is operative to perform preselectable arithmetic and logic operations on data applied at a first operand input terminal and at a second operand input terminal, said arithmetic logic unit having coupled thereto a first operand multiplexer for controlling access to said first operand input terminal and a second operand multiplexer for controlling access to said operand input terminal, said first operand multiplexer and said second operand multiplexer being coupled to the output of each one of said storage registers, and at least one of said operand multiplexers being coupled to receive input from said multiplier means; first output multiplexer means for preselectably multiplexing output values from each one of said storage registers, from said arithmetic logic unit, and from said memory means to said multiplier means; and second output multiplexer means* for preselectably multiplexing output values from at least two of said storage registers to said memory means, wherein said plurality of storage registers with associated register multiplexers are simultaneously operable independent of one another, and wherein said storage registers with associated register multiplexers, said arithmetic logic unit with associated operand multiplexers, said first output multiplexing means and said second output multiplexing means are all simultaneously operable in response to said instruction signal.
6. The device according to Claim 5 wherein each one of said storage registers is responsive to said instruction signals for selectively holding data currently therein against erasure.
7. The device according to Claim 6 wherein said arithmetic logic unit is responsive to said instruction signals to selectively issue or inhibit a carry signal indicating overflow of a most significant bit of said arithmetic logic unit in order to selectively signal a second arithmetic logic unit of a second said device which is operative in parallel.
8. The device according to Claim 6 wherein said arithmetic logic unit further includes means operative to generate signals indicative of Propagate, Generate, Zero, and Overflow depending on the result of arithmetic and logic operations in said arithmetic logic unit.
9. The device according to Claim 5 wherein a first one of said register multiplexers is coupled to receive data from a first external source into a first one of said storage registers, wherein a second one of said register multiplexers is coupled to receive data from a second external source into a second one of said storage registers, wherein a third one of said register multiplexers is coupled to receive data from said first one of said storage registers, wherein a fourth one of said register multiplexers is coupled to receive data from said second one of said storage registers, and wherein means coupled to receive data from said third storage register is coupled to an input of said first register multiplexer, and wherein means coupled to receive data from said fourth storage register is coupled to an input of said second storage register thereby to provide a data loop for recirculating data having two external inputs.
- *0REΛ
OMP
10. An integrated circuit device for storing and propagating digital data in response to instruction sig-nals in connection with digital memory means, said device comprising: a plurality of storage registers for storing data, each storage register having associated therewith a register multiplexer having at least two preselectable input channels for controlling access to its associated storage register, said storage registers being interconnectable through said register multiplexers in at least the following manner: a) in a single sequence of serial registers having an input and an output; and b) in a serial loop of storage registers wherein the output of the last one of said storage registers is coupled to the associated multiplexer of the first one of said storage registers.
j OREA MPI
11. The device according to Claim 10 wherein said storage registers are each operative in response to said instruction signals for selectively holding data currently in said storage register against erasure.
PCT/US1982/000359 1981-03-26 1982-03-18 A bit slice microprogrammable processor for signal processing applications WO1982003481A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE8282901332T DE3279776D1 (en) 1981-03-26 1982-03-18 A bit slice microprogrammable processor for signal processing applications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US247675810326 1981-03-26
US06/247,675 US4393468A (en) 1981-03-26 1981-03-26 Bit slice microprogrammable processor for signal processing applications

Publications (1)

Publication Number Publication Date
WO1982003481A1 true WO1982003481A1 (en) 1982-10-14

Family

ID=22935867

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1982/000359 WO1982003481A1 (en) 1981-03-26 1982-03-18 A bit slice microprogrammable processor for signal processing applications

Country Status (5)

Country Link
US (1) US4393468A (en)
EP (1) EP0075593B1 (en)
JP (1) JPS58500424A (en)
DE (1) DE3279776D1 (en)
WO (1) WO1982003481A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779218A (en) * 1985-09-04 1988-10-18 Jauch Jeremy P Complex arithmetic unit
EP0381019A2 (en) * 1989-01-30 1990-08-08 Integrated Device Technology, Inc. Sixteen-bit arithmetic logic unit
EP0660225A1 (en) * 1993-12-27 1995-06-28 Kabushiki Kaisha Toshiba ALU capable of simultaneously executing a plurality of operations

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4577282A (en) 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
JPS5922165A (en) * 1982-07-28 1984-02-04 Nippon Telegr & Teleph Corp <Ntt> Address controlling circuit
US4627026A (en) * 1982-10-21 1986-12-02 I.R.C.A.M. (Institut De Recherche Et De Coordination Accoustique/Misique Digital real-time signal processor
US4528641A (en) * 1982-11-16 1985-07-09 The United States Of America As Represented By The Secretary Of The Air Force Variable radix processor
JPS6054070A (en) * 1983-09-02 1985-03-28 Nec Corp Arithmetic unit
US4644489A (en) * 1984-02-10 1987-02-17 Prime Computer, Inc. Multi-format binary coded decimal processor with selective output formatting
US4761755A (en) * 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
DE3587176T2 (en) * 1984-08-22 1993-07-01 Hitachi Ltd METHOD AND DEVICE FOR MIXING / SORTING DATA.
US4742520A (en) * 1984-09-26 1988-05-03 Texas Instruments Incorporated ALU operation: modulo two sum
ATE94999T1 (en) * 1984-11-21 1993-10-15 Harris Corp MICROPROCESSOR FOR FORTH-LIKE LANGUAGE.
US4972314A (en) * 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4748579A (en) * 1985-08-14 1988-05-31 Gte Laboratories Incorporated Method and circuit for performing discrete transforms
US5165039A (en) * 1986-03-28 1992-11-17 Texas Instruments Incorporated Register file for bit slice processor with simultaneous accessing of plural memory array cells
US4789957A (en) * 1986-03-28 1988-12-06 Texas Instruments Incorporated Status output for a bit slice ALU
US4797848A (en) * 1986-04-18 1989-01-10 Hughes Aircraft Company Pipelined bit-serial Galois Field multiplier
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US4760517A (en) * 1986-10-17 1988-07-26 Integrated Device Technology, Inc. Thirty-two bit, bit slice processor
US4811266A (en) * 1986-11-05 1989-03-07 Honeywell Bull Inc. Multifunction arithmetic indicator
US4891754A (en) * 1987-07-02 1990-01-02 General Datacomm Inc. Microinstruction sequencer for instructing arithmetic, logical and data move operations in a conditional manner
US4926355A (en) * 1987-07-02 1990-05-15 General Datacomm, Inc. Digital signal processor architecture with an ALU and a serial processing section operating in parallel
US5047975A (en) * 1987-11-16 1991-09-10 Intel Corporation Dual mode adder circuitry with overflow detection and substitution enabled for a particular mode
US4916651A (en) * 1988-01-29 1990-04-10 Texas Instruments Incorporated Floating point processor architecture
US5303172A (en) * 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
US5187799A (en) * 1988-05-17 1993-02-16 Calif. Institute Of Technology Arithmetic-stack processor which precalculates external stack address before needed by CPU for building high level language executing computers
US5029079A (en) * 1988-08-04 1991-07-02 Array Microsystems, Inc. Apparatus and method for flexible control of digital signal processing devices
US5155858A (en) * 1988-10-27 1992-10-13 At&T Bell Laboratories Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
JP2739487B2 (en) * 1988-12-20 1998-04-15 株式会社日立製作所 Drawing processing device and image display device using the drawing processing device
US5187795A (en) * 1989-01-27 1993-02-16 Hughes Aircraft Company Pipelined signal processor having a plurality of bidirectional configurable parallel ports that are configurable as individual ports or as coupled pair of ports
US5768613A (en) * 1990-07-06 1998-06-16 Advanced Micro Devices, Inc. Computing apparatus configured for partitioned processing
US6230255B1 (en) 1990-07-06 2001-05-08 Advanced Micro Devices, Inc. Communications processor for voice band telecommunications
JPH0594546A (en) * 1991-02-05 1993-04-16 American Teleph & Telegr Co <Att> Digital processor
US5541865A (en) * 1993-12-30 1996-07-30 Intel Corporation Method and apparatus for performing a population count operation
EP0661624A1 (en) * 1994-01-04 1995-07-05 Sun Microsystems, Inc. Pseudo-superscalar technique for video processing
US5642306A (en) * 1994-07-27 1997-06-24 Intel Corporation Method and apparatus for a single instruction multiple data early-out zero-skip multiplier
US6275834B1 (en) 1994-12-01 2001-08-14 Intel Corporation Apparatus for performing packed shift operations
US6738793B2 (en) 1994-12-01 2004-05-18 Intel Corporation Processor capable of executing packed shift operations
ZA9510127B (en) * 1994-12-01 1996-06-06 Intel Corp Novel processor having shift operations
WO1996017293A1 (en) * 1994-12-01 1996-06-06 Intel Corporation A microprocessor having a multiply operation
WO1996017291A1 (en) 1994-12-02 1996-06-06 Intel Corporation Microprocessor with packing operation of composite operands
US5819101A (en) * 1994-12-02 1998-10-06 Intel Corporation Method for packing a plurality of packed data elements in response to a pack instruction
US5752001A (en) * 1995-06-01 1998-05-12 Intel Corporation Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5721892A (en) * 1995-08-31 1998-02-24 Intel Corporation Method and apparatus for performing multiply-subtract operations on packed data
US7395298B2 (en) * 1995-08-31 2008-07-01 Intel Corporation Method and apparatus for performing multiply-add operations on packed data
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US5936872A (en) * 1995-09-05 1999-08-10 Intel Corporation Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations
US6470370B2 (en) 1995-09-05 2002-10-22 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US6237016B1 (en) 1995-09-05 2001-05-22 Intel Corporation Method and apparatus for multiplying and accumulating data samples and complex coefficients
US5983253A (en) * 1995-09-05 1999-11-09 Intel Corporation Computer system for performing complex digital filters
US6058408A (en) * 1995-09-05 2000-05-02 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US5822459A (en) * 1995-09-28 1998-10-13 Intel Corporation Method for processing wavelet bands
US5935240A (en) * 1995-12-15 1999-08-10 Intel Corporation Computer implemented method for transferring packed data between register files and memory
US5984515A (en) * 1995-12-15 1999-11-16 Intel Corporation Computer implemented method for providing a two dimensional rotation of packed data
US5757432A (en) * 1995-12-18 1998-05-26 Intel Corporation Manipulating video and audio signals using a processor which supports SIMD instructions
US5815421A (en) * 1995-12-18 1998-09-29 Intel Corporation Method for transposing a two-dimensional array
US5835748A (en) * 1995-12-19 1998-11-10 Intel Corporation Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file
US5857096A (en) * 1995-12-19 1999-01-05 Intel Corporation Microarchitecture for implementing an instruction to clear the tags of a stack reference register file
US5701508A (en) * 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
WO1997024681A1 (en) * 1995-12-19 1997-07-10 Intel Corporation A computer system performing a two-dimensional rotation of packed data representing multimedia information
US5852726A (en) * 1995-12-19 1998-12-22 Intel Corporation Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner
US5940859A (en) * 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US6792523B1 (en) 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5907842A (en) * 1995-12-20 1999-05-25 Intel Corporation Method of sorting numbers to obtain maxima/minima values with ordering
US5787026A (en) * 1995-12-20 1998-07-28 Intel Corporation Method and apparatus for providing memory access in a processor pipeline
US6036350A (en) * 1995-12-20 2000-03-14 Intel Corporation Method of sorting signed numbers and solving absolute differences using packed instructions
US5880979A (en) * 1995-12-21 1999-03-09 Intel Corporation System for providing the absolute difference of unsigned values
US5742529A (en) * 1995-12-21 1998-04-21 Intel Corporation Method and an apparatus for providing the absolute difference of unsigned values
US5793661A (en) * 1995-12-26 1998-08-11 Intel Corporation Method and apparatus for performing multiply and accumulate operations on packed data
US5983257A (en) * 1995-12-26 1999-11-09 Intel Corporation System for signal processing using multiply-add operations
US5740392A (en) * 1995-12-27 1998-04-14 Intel Corporation Method and apparatus for fast decoding of 00H and OFH mapped instructions
US6092184A (en) * 1995-12-28 2000-07-18 Intel Corporation Parallel processing of pipelined instructions having register dependencies
US5835392A (en) * 1995-12-28 1998-11-10 Intel Corporation Method for performing complex fast fourier transforms (FFT's)
US5764943A (en) * 1995-12-28 1998-06-09 Intel Corporation Data path circuitry for processor having multiple instruction pipelines
US5862067A (en) * 1995-12-29 1999-01-19 Intel Corporation Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations
US5621674A (en) * 1996-02-15 1997-04-15 Intel Corporation Computer implemented method for compressing 24 bit pixels to 16 bit pixels
US6009191A (en) * 1996-02-15 1999-12-28 Intel Corporation Computer implemented method for compressing 48-bit pixels to 16-bit pixels
US5959636A (en) * 1996-02-23 1999-09-28 Intel Corporation Method and apparatus for performing saturation instructions using saturation limit values
US5822232A (en) * 1996-03-01 1998-10-13 Intel Corporation Method for performing box filter
US6070237A (en) * 1996-03-04 2000-05-30 Intel Corporation Method for performing population counts on packed data types
US5831885A (en) * 1996-03-04 1998-11-03 Intel Corporation Computer implemented method for performing division emulation
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations
US6049864A (en) * 1996-08-20 2000-04-11 Intel Corporation Method for scheduling a flag generating instruction and a subsequent instruction by executing the flag generating instruction in a microprocessor
US6009451A (en) * 1996-11-22 1999-12-28 Lucent Technologies Inc. Method for generating barrel shifter result flags directly from input data
US5881279A (en) * 1996-11-25 1999-03-09 Intel Corporation Method and apparatus for handling invalid opcode faults via execution of an event-signaling micro-operation
US6014684A (en) 1997-03-24 2000-01-11 Intel Corporation Method and apparatus for performing N bit by 2*N-1 bit signed multiplication
JP3612186B2 (en) * 1997-09-19 2005-01-19 株式会社ルネサステクノロジ Data processing device
US6081824A (en) * 1998-03-05 2000-06-27 Intel Corporation Method and apparatus for fast unsigned integral division
US7395302B2 (en) 1998-03-31 2008-07-01 Intel Corporation Method and apparatus for performing horizontal addition and subtraction
US6418529B1 (en) 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US6041404A (en) 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US7392275B2 (en) * 1998-03-31 2008-06-24 Intel Corporation Method and apparatus for performing efficient transformations with horizontal addition and subtraction
US6032248A (en) * 1998-04-29 2000-02-29 Atmel Corporation Microcontroller including a single memory module having a data memory sector and a code memory sector and supporting simultaneous read/write access to both sectors
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
EP2241968B1 (en) 1998-08-24 2012-06-27 MicroUnity Systems Engineering, Inc. System with wide operand architecture, and method
US7155601B2 (en) * 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
US8843928B2 (en) 2010-01-21 2014-09-23 Qst Holdings, Llc Method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7489779B2 (en) 2001-03-22 2009-02-10 Qstholdings, Llc Hardware implementation of the secure hash standard
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7400668B2 (en) 2001-03-22 2008-07-15 Qst Holdings, Llc Method and system for implementing a system acquisition function for use with a communication device
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US6874079B2 (en) * 2001-07-25 2005-03-29 Quicksilver Technology Adaptive computing engine with dataflow graph based sequencing in reconfigurable mini-matrices of composite functional blocks
US7818356B2 (en) 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US7624138B2 (en) 2001-10-29 2009-11-24 Intel Corporation Method and apparatus for efficient integer transform
US7739319B2 (en) * 2001-10-29 2010-06-15 Intel Corporation Method and apparatus for parallel table lookup using SIMD instructions
US7631025B2 (en) * 2001-10-29 2009-12-08 Intel Corporation Method and apparatus for rearranging data between multiple registers
US7685212B2 (en) * 2001-10-29 2010-03-23 Intel Corporation Fast full search motion estimation with SIMD merge instruction
US7430578B2 (en) * 2001-10-29 2008-09-30 Intel Corporation Method and apparatus for performing multiply-add operations on packed byte data
US7725521B2 (en) * 2001-10-29 2010-05-25 Intel Corporation Method and apparatus for computing matrix transformations
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7602740B2 (en) 2001-12-10 2009-10-13 Qst Holdings, Inc. System for adapting device standards after manufacture
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7493375B2 (en) 2002-04-29 2009-02-17 Qst Holding, Llc Storage and delivery of device features
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7047383B2 (en) * 2002-07-11 2006-05-16 Intel Corporation Byte swap operation for a 64 bit operand
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US7478031B2 (en) 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7609297B2 (en) 2003-06-25 2009-10-27 Qst Holdings, Inc. Configurable hardware based digital imaging apparatus
US20050097306A1 (en) * 2003-09-29 2005-05-05 Gajski Daniel D. No-instruction-set-computer processor
DE102004013484B3 (en) * 2004-03-18 2005-08-11 Infineon Technologies Ag Arithmetic logic unit for a computer has a number of bit slices, with each bit-slice having a logic element and a number of registers cells linked by a communications bus to a control unit
US8078836B2 (en) 2007-12-30 2011-12-13 Intel Corporation Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
US9785565B2 (en) 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3812470A (en) * 1972-07-31 1974-05-21 Westinghouse Electric Corp Programmable digital signal processor
US3988717A (en) * 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4179734A (en) * 1976-07-02 1979-12-18 Floating Point Systems, Inc. Floating point data processor having fast access memory means
US4224676A (en) * 1978-06-30 1980-09-23 Texas Instruments Incorporated Arithmetic logic unit bit-slice with internal distributed iterative control
US4275452A (en) * 1979-11-08 1981-06-23 Rockwell International Corporation Simplified fast fourier transform butterfly arithmetic unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS516435A (en) * 1974-07-04 1976-01-20 Takeda Riken Ind Co Ltd
JPS595941B2 (en) * 1974-10-11 1984-02-08 タケダリケンコウギヨウ カブシキガイシヤ Data array engineering

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3812470A (en) * 1972-07-31 1974-05-21 Westinghouse Electric Corp Programmable digital signal processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US3988717A (en) * 1975-08-06 1976-10-26 Litton Systems, Inc. General purpose computer or logic chip and system
US4179734A (en) * 1976-07-02 1979-12-18 Floating Point Systems, Inc. Floating point data processor having fast access memory means
US4224676A (en) * 1978-06-30 1980-09-23 Texas Instruments Incorporated Arithmetic logic unit bit-slice with internal distributed iterative control
US4275452A (en) * 1979-11-08 1981-06-23 Rockwell International Corporation Simplified fast fourier transform butterfly arithmetic unit

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779218A (en) * 1985-09-04 1988-10-18 Jauch Jeremy P Complex arithmetic unit
EP0381019A2 (en) * 1989-01-30 1990-08-08 Integrated Device Technology, Inc. Sixteen-bit arithmetic logic unit
EP0381019A3 (en) * 1989-01-30 1991-04-10 Integrated Device Technology, Inc. Sixteen-bit arithmetic logic unit
EP0660225A1 (en) * 1993-12-27 1995-06-28 Kabushiki Kaisha Toshiba ALU capable of simultaneously executing a plurality of operations
US5659783A (en) * 1993-12-27 1997-08-19 Kabushiki Kaisha Toshiba Operation unit with plural operation circuits having plural data buses providing plural operation modes

Also Published As

Publication number Publication date
EP0075593A1 (en) 1983-04-06
EP0075593B1 (en) 1989-06-21
JPS58500424A (en) 1983-03-17
US4393468A (en) 1983-07-12
JPH0230538B2 (en) 1990-07-06
EP0075593A4 (en) 1986-02-13
DE3279776D1 (en) 1989-07-27

Similar Documents

Publication Publication Date Title
US4393468A (en) Bit slice microprogrammable processor for signal processing applications
US3787673A (en) Pipelined high speed arithmetic unit
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
EP0102242B1 (en) Data processing apparatus
US4748585A (en) Processor utilizing reconfigurable process segments to accomodate data word length
EP0127508B1 (en) Full floating point vector processor
US5081573A (en) Parallel processing system
US5303172A (en) Pipelined combination and vector signal processor
US4179734A (en) Floating point data processor having fast access memory means
US4075704A (en) Floating point data processor for high speech operation
US4760525A (en) Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
EP0100511B1 (en) Processor for fast multiplication
EP0124402A2 (en) Microprocessor
JPH03138759A (en) Signal processor
EP0473404A2 (en) Apparatus for maximising throughput of data in a data processing circuit
JPS6255724A (en) Processor
Aliphas et al. The versatility of digital signal processing chips: Uses for these architecturally modified microprocessors go all the way from simple digital filtering to echo canceling
US4853890A (en) Vector processor
US5473557A (en) Complex arithmetic processor and method
US5047973A (en) High speed numerical processor for performing a plurality of numeric functions
WO1990001743A1 (en) Apparatus and method for flexible control of digital signal processing devices
US5539684A (en) Method and apparatus for calculating floating point exponent values
JPS63147255A (en) Calculation processor having several series connection stages and computer and calculation applying the same
JP2859645B2 (en) Vector processing system

Legal Events

Date Code Title Description
AK Designated states

Designated state(s): JP

AL Designated countries for regional patents

Designated state(s): DE FR GB NL

WWP Wipo information: published in national office

Ref document number: 1982901332

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1982901332

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1982901332

Country of ref document: EP