The present invention relates generally to microprocessor techniques for real-time signal processing and updating, and more specifically to programmable microprocessor core operation and structures particularly, though not exclusively, suitable for real-time signal processing by switch controlled programmable processor configuring and flexible pipeline and parallel processing as described in co-pending U.S. patent application Ser. No. 11/973,184 which has been published as U.S. patent publication No. US-2008-0301413-A1, “Method Of And Apparatus And Architecture For Real Time Signal Processing By Switch-Controlled Programmable Processor Configuring and Flexible Pipeline and Parallel Processing”; the present invention being largely concerned with specific improvements in the computational execution units (EU) which the invention programs in a novel hierarchal structure to perform different arithmetic, computational and logic operations at different (multi-bit) precisions.
As explained in said co-pending application, systems for converging multiple program applications into single devices (such as handset cell phones and the like), requiring a plurality of different real-time signal processing techniques and control processing capabilities to be handled in such single devices, lend themselves to the novel programmable microprocessor cores and flexible pipeline signal processing architectures of said co-pending application. These may generally be described as involving a flexible data pipeline architecture that can accommodate substantially all types of software algorithms sets of varying applications having a programmable processor with reconfigurable pipeline stages, the order and sizes of which may vary in response to the varying application instruction sequence establishing the corresponding configurations of the processor, through switching connections amongst its functional components, specifically suiting the respective and diverse applications; and wherein the functional components communicate through the switching matrix in a dynamic parallel and flexible fashion.
The present invention addresses preferred multi-level hierarchal architectures of execution units and pipeline stages containing the same.
An object of the present invention, therefore, is to provide a new and improved configurable microprocessor technology and structure that is not subject to the hereinafter described limitations of pipeline operations in current and prior generation microprocessors, and that is particularly suited though not exclusive to the operation of the flexible programmable data pipeline architecture of said co-pending patent application.
A further object is to provide a new and improved flexible data pipeline architecture and programmable processor with pipeline stages reconfigurable in response to varying application instruction sequences that have established corresponding configurations of the processor, and with switching connections amongst its functional components specifically to suit different types of generic operations in varying applications, and wherein the functional components communicate preferably through a switch in a novel dynamic parallel and flexible fashion, with the switch configured to each set of instructions during operation, in real-time.
Other and further objects will be explained hereinafter and are more particularly addressed in the appended claims.
The invention will now be described in connection with the accompanying drawings,
From its broad novel core microprocessor point of view, the invention is a flexible data pipeline structure for accommodating software computational instructions for varying program applications and having a programmable embedded processor with reconfigurable pipeline stages the order and length of which varies in response to varying program application instructions, the processor including a data switch matrix selectively and flexibly interconnecting pluralities of mathematical execution units and memory units in response to said instructions and wherein the execution units are programmable to perform operations at different precisions of multi-bit arithmetic and logic circuit operations and in a multi-level hierarchical architecture structure.
From the viewpoint of the overall programmable processor and flexible pipeline system overall architecture, the invention embraces a processor structure wherein the mathematical execution units are configured each clock cycle to perform 8-bit, 16-bit, and/or 32-bit arithmetic and logic circuit operations, and depending on the operation being performed, the logic circuits inside the execution units are programmed either to be broken into independent units to perform parallel operations, or to be arranged as connected units to perform serial operations, or to be combined into larger unit(s) to perform larger operation in the hierarchical structure.
Preferred designs and best mode embodiments of the invention are hereinafter detailed.
An example of the earlier described typical prior art and currently used existing processor architecture is shown in
Referring to previously mentioned
The processor core architecture described in said co-pending application and used in the present invention for these purposes, has a highly configurable internal structure that may be optimized for the different types of computational needs involved. They comprise a configurable number of pipeline stages and interconnects between the different pipeline stages, configurable computational execution units (EU) that can be set up to perform different types of computation, both sequentially and parallelly, configurable interconnections between memory units (MU) and the execution units (EU) through the switch matrix unit, where the configurable memory units are set up to provide different methods of accessing data in the memory banks. The processor core taught in said co-pending application and herein, basically consists of three components; namely, the above-mentioned execution units (EU, 2 in
The present invention is primarily concerned with such architectures of execution units EU, which is made highly configurable, unlike present-day current microprocessors. It can be configured to perform 8-bit, 16-bit, or 32-bit arithmetic and logic operations, and depending on the operation being performed, the logic circuits inside the execution unit can either be broken into independent units to perform parallel operations, or to be arranged as connected units to perform serial operations, or to be combined into larger units to perform larger computational operations. In accordance with the present invention, these logic circuits of the execution units are constructed in a hierarchal structure, subject to hardware availability and input/output constraints. The execution units of the invention can be programmed to perform different arithmetic, computational and logic operation at different precisions (i.e. 8-bit, 16-bit and 32-bit). This is quite different from prior art and present-day microprocessor operation where the processor has a fixed width of computation precision. It is either for example, a 32-bit processor, a 16-bit processor, or an 8-bit processor. The hardware inside a high precision processor is not fully utilized when it is programmed to perform low precision calculation. For example, the hardware for higher bits calculation in a 32-bit processor is not used when 8-bit calculation is being performed. The architecture of the execution units of the present invention additionally enables the user to trade off between high precision calculation by a given execution unit, or many different low precision calculations by the same hardware. For example, 32×32 multiplication can actually have sixteen 8×8 bit operations with similar hardware usage from the same piece of hardware, and the device can be reused for both calculations. This may be done by dividing a 32-bit input into 8-bit chunks and splitting the workout into small portions, and then combining the intermediate result in one or more steps to get the end result.
When a number of these computations are being performed, the throughput of many lower precision calculation (e.g. sixteen 8×8) and that of single higher precision calculation (e.g. one 32×32) are the same, assuming there are enough computations in the application program to load the pipeline from the beginning to the end. This is believed to be a significant advantage over prior art microprocessor operation, where the present-day microprocessor is designed only for calculation of a particular precision.
The pipeline in present-day processors, indeed, employs a fixed number of execution stages in the pipeline. In the processor of the present invention, on the other hand, there are a variable number of stages inside the execution units, depending upon what the user chooses for that unit. The present invention sets up the pipeline stages inside the execution unit with the width of the data path inside the pipeline made variable; such as 8-bit, 16-bit or 32-bit etc. The shape of the pipeline is also made variable. It can go from one corner to somewhere in the middle, into an opposite corner, traversing inside the execution units in quite a different manner, depending upon how many stages are used inside the execution unit, as contrasted with present-day microprocessor structures. In this way the data, in the operation of the present invention, feeds from outside the execution unit into an execution unit to the limit of the hardware capacity, performing many computational functions in parallel or serial inside the execution units, exiting the execution units as output, and allowing total user flexibility of whatever is desired in terms of mathematical computation. This is in contrast to present-day and prior art microprocessor execution units which are optimized by doing single or multiple fixed-precision calculations in a fixed number of execution stages.
In order for such present-day microprocessors to try to achieve computation results comparable to what the data pipeline in the present invention enables, indeed, it has been necessary to traverse the pipeline many times for parallel or serial operation on a block of input data. Present-day microprocessors thus require considerable data in and out of the execution unit through traversing a pipeline many times in response to a corresponding plurality of instructions into the execution unit, since each time the unit is traversed it requires an instruction.
That problem does not, however, exist with the present invention since once there is set up of the execution units of a particular shape, data width and number of stages for either parallel or serial operation on input data, no more new instructions need to be sent until computation on the whole block of input data is all done. Then the structure can be changed—the data width, shape and number of stages—to do a new operation. What previously had to be done with many different instructions going through the pipeline stages many different times can now be done with the present invention through just one particular pipeline structure and one small instruction sequence that corresponds to the mathematical operation or equation to be performed on all input data. This is much more efficient in terms of both data that goes in and goes through all the computation, and data that goes out at the end, so that multiple traverses are not required.
More specifically, present-day microprocessors require that the execution unit be provided with a new instruction each clock cycle, whereas with the present invention, the instructions stay within the execution unit for many different clock cycles and just the data goes in and keeps repeating. The present invention thus creates an architecture that is extremely flexible, providing a highly configurable execution unit in the processor core susceptible of being able to perform different-precision arithmetic and logic operations with the logic circuits inside the execution unit, either broken into independent units to perform parallel operations, or to be arranged as connected units to perform serial operations, or to be combined into large units to perform large operations, with this novel hierarchical structure.
This processor, as explained in said copending application, may have functional components that can perform the same computational operations as those used in current RISC processors or the like, shown as mathematical execution units EX1-EXN in
Instead of lining similar function units up into a pipeline, (
A compiler for any specific given program based on a specific instruction sequence and hardware availability, produces machine instructions at the appropriate time sequence to configure the hardware units EXs and MUs and provides for DMA (direct memory access) to them and the connections between them, as explained in said co-pending application.
Referring now to the overall architecture of the execution units in the preferred form of the present invention, the execution unit is illustrated as having the before-mentioned hierarchal architecture—the control unit controls execution units through accessing control logic in a hierarchal format and the program RAM. Frequently used control settings can be loaded in the program RAM (
The basic illustrative building blocks of the execution units EU in
The execution unit of
In contrast to the computation stages in today's typical processors shown in above-discussed FIGS. 1 and 2A-2C,
It should be observed, moreover, that the output of N×2N execution unit can be connected either to the outputs of the 2 N×N execution units or to the output of the N×2N additional Computation Logic; that the output of the 2N×2N execution unit can also be connected to either the outputs of the 2N×2N Execution Units or the output of the 2N×2N Additional Computation Logic, and that the dotted oval marked 1′ illustrates the data pipeline stages when the unit is configured to perform 2N×2N multiplication.
Forming N×2N and 2N×2N Execution Units
The following Tables 1, 2, 3 and 4 are presented to illustrate suitable Input Switch Network and Output Switch Network modes of operation of the structures
The 8×8 ALU Structure
Present-Day Barrel Type Bit Shifting
The flow diagrams of
The Novel Bit Shifting of the Invention
Unlike prior processing, the invention further provides combining of 8-bit shift/rotate structures to form 16-bit ones, and novel combining 16-bit shift/rotate structures to form 32-bit ones, etc., to create higher-bit shift/rotate structures. These structure can also be configured to perform either low-bit shift/rotate or high-bit shift/rotate based on the desired application program.
There are three steps involved in creating such novel structures.
An illustrative and preferred data pipeline structure of the invention involves executing units comprising a total of 2n 8×8 ALUs and/or 8×8 multipliers, with each 8×8 ALU or 8×8 multiplier having a corresponding control register that controls its functionality; and each 8×16 unit is formed by interconnecting two 8×8 ALUs or two 8×8 multipliers together with circuit blocks dedicated for computing 8×16 multiplication results based on 8×8 multiplication results. 16×16 units are formed by interconnecting two 8×16 units together with circuit blocks dedicated for computing 16×16 multiplication results based on 8×16 multiplication results, such that the entire execution unit is built up one level on top of another with a total of (n+1) levels to form (8*2n/2)×(8*2n/2) unit when n is even or (8*2(n−1)/2)×(8*2(n+1)/2) unit when n is odd.
The 8×8 ALU structure comprises eight layers of circuitry that are programmed to perform one of the following two functions in a single clock cycle—
In this data pipeline structure, each execution unit employs a hierarchical structure for performing shift or rotate; (
Further modifications will occur to those skilled in the art, and such are considered to fall within the spirit and scope of the invention as defined in the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5212777 | Gove et al. | May 1993 | A |
5226125 | Balmer et al. | Jul 1993 | A |
5239654 | Ing-Simmons et al. | Aug 1993 | A |
5471592 | Gove et al. | Nov 1995 | A |
5471626 | Carnevale | Nov 1995 | A |
5706459 | Atsushi | Jan 1998 | A |
5784636 | Rupp | Jul 1998 | A |
5887160 | Lauritzen | Mar 1999 | A |
5937203 | Lee | Aug 1999 | A |
6023753 | Pechanek et al. | Feb 2000 | A |
6052773 | DeHon | Apr 2000 | A |
6070003 | Gove et al. | May 2000 | A |
6151668 | Pechanek et al. | Nov 2000 | A |
6173389 | Pechanek et al. | Jan 2001 | B1 |
6216223 | Revilla et al. | Apr 2001 | B1 |
6219785 | Smith | Apr 2001 | B1 |
6321322 | Pechanek et al. | Nov 2001 | B1 |
6446191 | Pechanek et al. | Sep 2002 | B1 |
6539438 | Ledzius et al. | Mar 2003 | B1 |
6574764 | Krech, Jr. | Jun 2003 | B2 |
6851041 | Pechanek et al. | Feb 2005 | B2 |
6859873 | Norden | Feb 2005 | B2 |
6883088 | Barry et al. | Apr 2005 | B1 |
6954281 | Fukuda et al. | Oct 2005 | B2 |
7036036 | Vorbach et al. | Apr 2006 | B2 |
7200287 | Fukuda et al. | Apr 2007 | B2 |
7205864 | Schultz et al. | Apr 2007 | B2 |
7260707 | Norden | Aug 2007 | B2 |
7395411 | Kasahara | Jul 2008 | B2 |
7406588 | Lin | Jul 2008 | B2 |
7454598 | Hastie | Nov 2008 | B2 |
RE41703 | Pechanek et al. | Sep 2010 | E |
20010012127 | Fukuda et al. | Aug 2001 | A1 |
20010021278 | Fukuda et al. | Sep 2001 | A1 |
20020162046 | Krech, Jr. | Oct 2002 | A1 |
20020199085 | Norden | Dec 2002 | A1 |
20030061473 | Revilla et al. | Mar 2003 | A1 |
20030079109 | Pechanek et al. | Apr 2003 | A1 |
20030088757 | Lindner | May 2003 | A1 |
20030200420 | Pechanek et al. | Oct 2003 | A1 |
20040019765 | Klein, Jr. | Jan 2004 | A1 |
20040078548 | Claydon | Apr 2004 | A1 |
20050021578 | Chen | Jan 2005 | A1 |
20050076187 | Claydon | Apr 2005 | A1 |
20050149699 | Norden | Jul 2005 | A1 |
20060028683 | Fukuda et al. | Feb 2006 | A1 |
20060253689 | Knowles | Nov 2006 | A1 |
20060259741 | Hastie | Nov 2006 | A1 |
20060259742 | Norden | Nov 2006 | A1 |
20060259748 | Lin | Nov 2006 | A1 |
20070143577 | Smith | Jun 2007 | A1 |
20080301413 | Wang | Dec 2008 | A1 |
Number | Date | Country |
---|---|---|
0284364 | Sep 1988 | EP |
0569312 | Nov 1993 | EP |
1199629 | Apr 2002 | EP |
1780644 | May 2007 | EP |
9744728 | Nov 1997 | WO |
03088071 | Oct 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20090300336 A1 | Dec 2009 | US |