US20050066152A1 - Method and apparatus for processing data in a reconfigurable manner - Google Patents
Method and apparatus for processing data in a reconfigurable manner Download PDFInfo
- Publication number
- US20050066152A1 US20050066152A1 US10/892,537 US89253704A US2005066152A1 US 20050066152 A1 US20050066152 A1 US 20050066152A1 US 89253704 A US89253704 A US 89253704A US 2005066152 A1 US2005066152 A1 US 2005066152A1
- Authority
- US
- United States
- Prior art keywords
- configuration
- logic
- data
- input data
- circuitry
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention comprises a method for processing data in a reconfigurable manner.
- data is processed by receiving input data, selecting a logic configuration according to the input data to processing the input data using the selected logic configuration.
- input data that is received is subject to a “type” determination.
- a logic selection indicator is then generated according to be determined type.
- the logic selection indicator can then be used to select a configuration map. Accordingly, the configuration map may then be used to configure a reconfigurable logic circuit.
- a configuration map comprises a configuration for at least one of an addressing unit, and instruction decoder, an instruction sequencer and an arithmetic unit. Accordingly, various functional aspects of processing data may be modified according to the type of data being processed a particular instant in time.
- a first configuration map is used to create a logic function during a first data period.
- a second logic function is created using a second configuration map during a second data period. Accordingly, with each subsequent data a different configuration map may be selected according to the input data.
- selection of a logic configuration comprises generation of a parallel configuration word.
- the parallel configuration word which is based in whole or in part on the input data, is used to configure a plurality logic element substantially in one data period.
- a first logic element is configured according to a first input data.
- the first input data is then processed using the first logic element.
- a second logic element is configured according to the first input data substantially while the first logic element is reconfigured according to a subsequent input data.
- the once-processed first input data is then processed using the second logic element substantially while the subsequent input data is processed by the reconfigured first logic element.
- the amount of power required to process input data using the selected logic configuration is determined. If the amount of power required exceeds a pre-established threshold, a new logic configuration is selected.
- the present invention further comprises a data processing unit.
- a data processing unit comprises an input unit that receives data.
- a reconfigurable logic circuit is also included in the data processing unit.
- the reconfigurable logic circuit processes the input data.
- the reconfigurable logic circuit is configured by a configuration circuit that is also included in the data processing unit.
- the configuration circuit reconfigures a logic circuit according to a portion of the input data.
- the configuration circuit comprises a data monitor.
- the data monitor is capable of determining a type for the input data.
- the configuration circuit of this alternative example embodiment further comprises a configuration memory that is capable of storing a plurality of configuration maps.
- the configuration circuit selects a particular configuration map according to the determined type of the input data.
- the data monitor is capable of generating a configuration selection signal according to a portion of the input data.
- the configuration map is selected from the configuration memory using the configuration selection signal.
- the configuration memory includes a configuration map for at least one of an addressing unit, an instruction decoder, an instruction sequencer and an arithmetic unit.
- the configuration memory generates a parallel configuration word. The parallel configuration word may be used to configure a plurality of logic elements substantially in one data period.
- the configuration circuit comprises an active configuration unit and a loading configuration unit.
- the active configuration unit configures the reconfigurable logic circuit during a first data period.
- the loading configuration unit typically receives a new configuration map while the active configuration unit is configuring the reconfigurable logic circuit. The loading configuration unit is then used to configure the reconfigurable logic circuit during a second data period.
- the reconfigurable logic circuit comprises a first logic element and a second logic element.
- the first logic element processes a first input data according to a first configuration.
- the second logic element processes the output of the first logic element (i.e. a once-processed first data) while the first logic element processes a subsequent data according to a subsequent configuration.
- a data processing unit further comprises a power monitor.
- the power monitor determines the power consumed by the reconfigurable logic circuit.
- the configuration circuit selects a different configuration map when the determined power exceeds a pre-established threshold.
- FIG. 1 is a system diagram illustrating a signal processor built in accordance with the invention having a processing circuitry that contains a re-configurable circuitry;
- FIG. 2 is a system diagram illustrating a signal processor built in accordance with the invention having a re-configurable logic circuitry governed by a configuration control circuitry;
- FIG. 3 is a system diagram illustrating a signal processor built in accordance with the invention having a plurality of reconfigurable components
- FIG. 4 is a system diagram illustrating a signal processor built in accordance with the invention that selects at least one configuration option to program a programmable logic array circuitry;
- FIG. 5 is a system diagram illustrating a signal processor built in accordance with the invention that selects at least one area configuration to program at least one area of a programmable logic array circuitry;
- FIG. 6 is a system diagram illustrating a signal processor built in accordance with the invention that performs recursive updating of a programmable logic configuration circuitry and a programmable logic array circuitry;
- FIG. 7 is a functional block diagram illustrating a method performed in accordance with the invention that reconfigures a logic array circuitry.
- the present invention presents a solution that provides operation within a signal processor with a significantly reduced number of gate toggles for a given operation.
- a relatively complex data path is generated for a plurality of input data to reduce the number of gate toggles required to perform operation on the plurality of data.
- the complex data path is a 64 bit deeply pipelined parallel serial data path with rich interconnects between the pipeline levels and the adjacent data paths within the signal processor.
- the data path provides interconnects capable of allowing multiple 8 bit, 16 bit, or 32 bit parallel operations to occur in parallel.
- Serial operations including up to ‘n’X 16 bit serial multiples with adjacent signal summing is also provided within various embodiments of the invention. Control of the depth of the deeply pipelined parallel serial data path and a clock signal's gating is also provided within the invention.
- Similar programmability is also provided within a data addressing unit in other embodiments of the invention. This programmability facilitates content addressable data and coordinates re-mapping address support within the signal processor.
- a program sequencer employs re-configuration to allow flexible control over the data path and the addressing unit. Wide word access is provided to allow rapid re-configuration of a programmable logic circuitry.
- a hardwired, or default, logic configuration is provided for multiple components within the signal processor.
- re-configuration is provided for the multiple components within the signal processor using direct memory access (DMA) logic having wide word read only memory (ROM) and random access memory (RAM).
- DMA direct memory access
- ROM read only memory
- RAM random access memory
- FIG. 1 is a system diagram illustrating a signal processor 100 built in accordance with the invention having a processing circuitry 140 that contains a re-configurable circuitry 105 .
- the processing circuitry 140 of the signal processor 100 contains the re-configurable circuitry 105 to perform at least a portion of its total signal processing.
- the re-configurable circuitry 105 contains, among other things, a programmable logic circuitry 110 , a processing power consumption analysis circuitry 120 , and a programmable logic configuration circuitry 130 .
- the programmable logic configuration circuitry 130 itself contains, among other things, a default configuration circuitry 132 , an adaptive configuration circuitry 134 , an active configuration circuitry 136 , and a loading configuration circuitry (buffer) 138 .
- the programmable logic configuration circuitry 130 selects a predetermined logic configuration from among a predetermined plurality of default logic configurations contained within the default configuration circuitry 132 .
- the programmable logic configuration circuitry 130 programs the programmable logic circuitry 110 to perform at least one predetermined function within the signal processor 100 .
- the programmable logic configuration circuitry 130 selects an alternative logic configuration using the adaptive configuration circuitry 134 .
- the adaptive configuration circuitry 134 selects the alternative logic configuration in response to a number of factors including, among other things, a plurality of input data that is given to the signal processor 100 .
- the adaptive configuration circuitry 134 selects the alternative logic configuration in response to the amount of power being consumed by the signal processor 100 . This determination of the amount of power being consumed is made using the processing power consumption analysis circuitry 120 . Regardless of what specific parameters are used to identify and select an appropriate logic configuration, the programmable logic configuration circuitry 130 programs the programmable logic circuitry 110 to perform the predetermined functionality of the signal processor 100 .
- the active configuration circuitry 136 of the programmable logic configuration circuitry 130 is the actual configuration that is presently being employed by the signal processor 100 . That is to say, the active configuration circuitry 136 performs the actual logic configuration of the signal processor 100 during real time operation.
- the loading configuration circuitry (buffer) 138 is simultaneously loading another logic configuration into the programmable logic configuration circuitry 130 while the active configuration circuitry 136 is busy configuring the programmable logic configuration circuitry 130 using either the default configuration circuitry 132 or the adaptive configuration circuitry 134 , depending on the specific application.
- the implementation of both the active configuration circuitry 136 and the loading configuration circuitry (buffer) 138 is performed in a “ping-pong”style operation known to those having skill in the art of logic configuring, data management, and data processing, among other things.
- the programmable logic configuration circuitry 130 employs the active configuration circuitry 136 to perform the actual logic configuration of the signal processor 100 while the loading configuration circuitry (buffer) 138 is loading a logic configuration to be used next. Then, after the present logic configuration of the programmable logic configuration circuitry 130 has been loaded by the active configuration circuitry 136 to process a first plurality of input data, the next logic configuration that was just previously contained within the loading configuration circuitry (buffer) 138 is then passed to the active configuration circuitry 136 to perform processing on a next plurality of input data.
- various logic configurations are used to perform processing on the same plurality of input data, and in such a case, the present and the next logic configurations are used to configure the programmable logic configuration circuitry 130 at various phases within the processing of the same plurality of input data.
- the simultaneous operation of the programming of one logic configuration to the programmable logic configuration circuitry 130 using the active configuration circuitry 136 while another logic configuration is being loaded into the loading configuration circuitry (buffer) 138 provides for faster, overall operation of the signal processor 100 , given that a next logic configuration is immediately ready for the programmable logic configuration circuitry 130 after the processing of the plurality of input data.
- FIG. 2 is a system diagram illustrating a signal processor 200 built in accordance with the invention having a re-configurable logic circuitry 250 governed by a configuration control circuitry 210 .
- the signal processor 200 operates to convert a plurality of input data 220 into a plurality of output data 240 .
- the configuration control circuitry 210 operates cooperatively with a programmable logic configuration circuitry 230 to program the re-configurable logic circuitry 250 .
- the programmable logic configuration circuitry 230 itself contains, among other things, a read only memory (ROM) 232 and a random access memory (RAM) 234 .
- ROM read only memory
- RAM random access memory
- the re-configurable logic circuitry 250 itself contains, among other things, an input programmable logic circuitry 252 , a main programmable logic circuitry 254 , and an output programmable logic circuitry 256 .
- the read only memory (ROM) 232 and the random access memory (RAM) 234 store a predetermined number of logic configurations that are used to program the re-configurable logic circuitry 250 . If desired, the read only memory (ROM) 232 store a predetermined number of fixed logic configurations for the re-configurable logic circuitry 250 .
- the fixed logic configurations includes at least one default logic configuration for the re-configurable logic circuitry 250 that is loaded during startup of the signal processor 200 or, alternatively, during any power cycle or reset operations that the signal processor 200 undergoes.
- the random access memory (RAM) 234 operates within the signal processor 200 to determine a more appropriate logic configuration for the re-configurable logic circuitry 250 through adaptive techniques employed by the programmable logic configuration circuitry 230 .
- the programmable logic configuration circuitry 230 analyzes various parameters to determine an appropriate logic configuration for the signal processor 200 .
- the programmable logic configuration circuitry 230 provides the proper logic configuration to the re-configurable logic circuitry 250 . Irrespective of whether the programmable logic configuration circuitry 230 loads a predetermined logic configuration from the read only memory (ROM) 232 or an adaptively selected logic configuration from the random access memory (RAM) 234 , the programmable logic configuration circuitry 230 performs the programming of the re-configurable logic circuitry 250 so that the re-configurable logic circuitry 250 operates properly on the plurality of input data 220 .
- the programming of the programmable logic configuration circuitry 230 operates to program the logic configuration for at least one of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry.
- all of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 are provided with a logic configuration. In other embodiments of the invention, only one of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 is provided with a modified logic configuration to perform processing on the plurality of input data 220 .
- the signal processor 200 performs updating of new logic configurations during each passing of a clock signal's cycle of the signal processor 200 , the logic configurations of each of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 is analyzed to determine if the present logic configuration is appropriate for the particular segment of the plurality of input data 220 on which the signal processor 200 is operating. If it is determined that existing logic configuration for at least one of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 is appropriate for the plurality of input data 220 within the given clock signal's cycle, then that particular logic configuration is maintained.
- the logic configurations of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 that need to be modified are indeed modified, as required and governed by the plurality of input data 220 .
- the signal processor 200 then utilizes the logic configurations to generate the plurality of output data 240 .
- the various portions of the re-configurable logic circuitry 250 are re-configurable to accommodate various types of the plurality of input data 220 . If desired, the signal processor 200 operates into a low power consumption mode wherein default logic configurations are loaded into each of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 .
- Various intelligence is employed in the programmable logic configuration circuitry 230 to determine, in various low power consumption modes, whether it is more power efficient to switch to a new logic configuration for at least one of the input programmable logic circuitry 252 , the main programmable logic circuitry 254 , and the output programmable logic circuitry 256 within the re-configurable logic circuitry 250 or to remain with a default logic configuration.
- those having skill in the art of data processing will recognize that various permutations of the modification of the logic configuration of the reconfigurable logic circuitry 250 is performed depending on various operational considerations of the signal processor 200 .
- FIG. 3 is a system diagram illustrating a signal processor 300 built in accordance with the invention having a plurality of reconfigurable components.
- a programmable logic configuration circuitry 330 is operable to provide configuration to each of a data memory 310 , a data addressing unit 320 , a program memory 340 , an arithmetic logic unit 350 , and an instruction decode & sequencing unit 360 ; the programmable logic configuration circuitry 330 is operable to provide updated configuration for each of the above mentioned reconfigurable components.
- the programmable logic configuration circuitry 330 itself contains, among other things, a read only memory (ROM) 332 and a random access memory (RAM) 334 .
- ROM read only memory
- RAM random access memory
- the signal processor 300 is operable using the programmable logic configuration circuitry 330 to perform both default and adaptive configuration of the various reconfigurable components contained within the signal processor 300 .
- the data memory 310 itself contains, among other things, a word width 312 , an addressing logic circuitry 314 , and a random access memory (RAM) 316 .
- the data addressing unit 320 itself contains, among other things, a plurality of addressing modes 322 wherein the plurality of addressing modes 322 include, among other addressing modes, an indirect addressing mode 323 , an indexed addressing mode 324 , a based offset addressing mode 325 , a first in/first out (FIFO) addressing mode 326 , and a stack addressing mode 327 .
- the program memory 340 itself contains, among other things, a read only memory (ROM) 346 .
- the program memory 340 provides a plurality of immediate data 370 that is stored in the program memory 340 to the arithmetic logic unit 350 , and the instruction decode & sequencing unit 360 .
- the arithmetic logic unit 350 itself contains, among other things, a word width 352 and an addressing logic circuitry 354 .
- the various data addressing mode functionality of the data addressing unit 320 are known to those having skill in the art of data processing. Any appropriate data addressing mode is used within the invention without departing from the scope and spirit thereof.
- the word width 312 of the data memory 310 and the word width 352 of the arithmetic logic unit 350 correspond to a word width in which each of the data memory 310 and the arithmetic logic unit 350 is configured within one given updating logic configuration step.
- the programmable logic configuration circuitry 330 operates to modify the logic configuration of each of the data memory 310 , the data addressing unit 320 , the program memory 340 , the arithmetic logic unit 350 , and the instruction decode & sequencing unit 360 , a wide word width that is loaded in parallel is used so that all of the configuration of the above mentioned reconfigurable components are re-configured simultaneously, if desired.
- only a subset of the data memory 310 , the data addressing unit 320 , the program memory 340 , the arithmetic logic unit 350 , and the instruction decode & sequencing unit 360 is updated with a new logic configuration in any given logic configuration updating performed by the programmable logic configuration circuitry 330 of the signal processor 300 .
- the addressing logic circuitry 314 of the data memory 310 and the addressing logic circuitry 354 of the arithmetic logic unit 350 operate to perform the addressing' of modified and updated logic configurations within the signal processor 300 as required by various parameters including characteristics of a plurality of input data, similar to the embodiment shown above and described within the signal processor 200 of FIG. 2 .
- FIG. 4 is a system diagram illustrating a signal processor 400 built in accordance with the invention that selects at least one configuration option to program a programmable logic array circuitry 440 .
- the signal processor 400 contains, among other things, a memory 410 , an ‘n’ bit word width bus that performs parallel configuration loading 420 , a logic configuration selection circuitry 430 , and the programmable logic array circuitry 440 .
- the memory 410 contains, among other things, a configuration option # 1 412 , a configuration option # 2 414 , and a configuration option #‘n’ 416 .
- the logic configuration selection circuitry 430 that itself contains, among other things, a data monitoring circuitry 432 , provides information to the memory 410 to determine which logic configuration is appropriate for a given portion of data.
- the given portion of data is a plurality of input data, as described above in the various embodiments of the invention shown in FIGS. 2 and 3 .
- the data monitoring circuitry 432 is operable to identify characteristics of the plurality of input data and to provide information to the logic configuration selection circuitry 430 so that it operates to perform selection of a logic configuration that is most appropriate.
- the logic configuration selection circuitry 430 cooperates with the memory 410 , selecting from among the configuration option # 1 412 , the configuration option # 2 414 , and the configuration option #‘n’ 416 to identify an appropriate logic configuration for the plurality of input data.
- the selection of the appropriate logic configuration is made using various indicia in accordance with the invention. Examples of such indicia and parameters include power consumption within the signal processor 400 , the characteristics of the plurality of input data provided to the signal processor 400 , and other parameters.
- the selected logic configuration is transported to the programmable logic array circuitry 440 via the ‘n’ bit word width bus that performs parallel configuration loading 420 .
- the ‘n’ bit word width of the ‘n’ bit word width bus that performs parallel configuration loading 420 provides very fast loading and configuration of the programmable logic array circuitry 440 .
- the entirety of the programmable logic array circuitry 440 is programmable with a modified logic configuration within a given, clock signal's cycle, i.e., all of the logic elements of the programmable logic array circuitry 440 are re-programmable in one given step.
- the programmable logic array circuitry 440 itself contains, among other things, a plurality of logic elements including a logic element # 1 , 1 441 , a logic element # 1 , 2 442 , a logic element # 1 , ‘n’ 443 , a logic element # 2 , 1 444 , a logic element # 2 , 2 445 , a logic element # 2 , ‘n’ 446 , a logic element #‘n’, 1 447 , a logic element #‘n’, 2 448 , and a logic element #‘n’, ‘n’ 449 .
- the width of the programmable logic array circuitry 440 is ‘n’ bits that is different than the ‘n’ bit word width of the ‘n’ bit word width bus that performs parallel configuration loading 420 and only a predetermined portion of the individual logic elements of the programmable logic array circuitry 440 is programmed with a modified logic configuration in the given clock signal's cycle. Additional clock signal cycles are required to modify the logic configuration of the remainder of the programmable logic array circuitry 440 .
- FIG. 5 is a system diagram illustrating a signal processor 500 built in accordance with the invention that selects at least one area configuration to program at least one area of a programmable logic array circuitry.
- the signal processor 500 contains, among other things, a memory 510 , an ‘n’ bit word width bus that performs parallel configuration loading 520 , a logic configuration selection circuitry 530 , and a programmable logic array circuitry 540 .
- the memory 510 contains, among other things, a configuration option # 1 512 , a configuration option # 2 514 , and a configuration option #‘n’ 516 .
- the logic configuration selection circuitry 530 that itself contains, among other things, a data monitoring circuitry 532 , provides information to the memory 510 to determine which logic configuration is appropriate for a given portion of data. Similar to the embodiment of the invention described above in the signal processor 400 of FIG. 4 , the given portion of data is a plurality of input data, as described above in the various embodiments of the invention shown in FIGS. 2 and 3 .
- the data monitoring circuitry 532 is operable to identify characteristics of the plurality of input data and to provide information to the logic configuration selection circuitry 530 so that it operates to perform selection of a logic configuration that is most appropriate.
- the logic configuration selection circuitry 530 cooperates with the memory 510 , selecting from among the configuration option # 1 512 , the configuration option # 2 514 , and the configuration option #‘n’ 516 to identify an appropriate logic configuration for the plurality of input data.
- the selection of the appropriate logic configuration is made using various indicia in accordance with the invention. Examples of such indicia and parameters include power consumption within the signal processor 500 , the characteristics of the plurality of input data provided to the signal processor 500 , and other parameters.
- the selected logic configuration is transported to the programmable logic array circuitry 540 via the ‘n’ bit word width bus that performs parallel configuration loading 520 .
- the ‘n’ bit word width of the ‘n’ bit word width bus that performs parallel configuration loading 520 provides very fast loading and configuration of the programmable logic array circuitry 540 .
- the entirety of the programmable logic array circuitry 540 is programmable with a modified logic configuration within a given clock signal's cycle, i.e., all of the logic elements of the programmable logic array circuitry 540 are re-programmable in one given step.
- the programmable logic array circuitry 540 itself contains, among other things, a plurality of logic elements including a logic element # 1 , 1 541 , a logic element # 1 , 2 542 , a logic element #l,’n’ 543 , a logic element # 2 , 1 544 , a logic element # 2 , 2 545 , a logic element # 2 ,’n’ 546 , a logic element #‘n’, 1 547 , a logic element #‘n’, 2 548 , and a logic element #‘n’, ’n’ 549 .
- the programmable logic array circuitry 540 is not only partitioned into the logic element # 1 , 1 541 , the logic element # 1 , 2 542 , the logic element # 1 , ‘n’ 543 , the logic element # 2 , 1 544 , the logic element # 2 , 2 545 , the logic element # 2 , ‘n’ 546 , the logic element #‘n’, 1 547 , the logic element #‘n’, 2 548 , and the logic element #‘n’, ‘n’ 549 , but the programmable logic array circuitry 540 is further organized into an area # 1 552 , an area # 2 554 , and an area #‘n’ 556 .
- the area # 1 552 contains the logic element # 1 , 1 541 , the logic element # 1 , 2 542 , the logic element # 2 , 1 544 , and the logic element # 2 , 2 545 ;
- the area # 2 554 contains the logic element #‘n’, 1 547 and the logic element #‘n’, 2 548 ;
- the area #‘n’ 556 contains the logic element #‘n’, ‘n’ 549 .
- the signal processor 500 is operable to provide various logic configurations to each of the area # 1 552 , the area # 2 554 , and the area #‘n’ 556 as required by the specific application.
- the logic element # 1 , 1 541 , the logic element # 1 , 2 542 , the logic element # 1 , ‘n’ 543 , the logic element # 2 , 1 544 , the logic element # 2 , 2 545 , the logic element # 2 , ‘n’ 546 , the logic element #‘n’, 1 547 , the logic element #‘n’, 2 548 , and the logic element #‘n’, ‘n’ 549 is operable to be organized into any number of individual areas such that predetermined logic configurations are loaded into the various areas of the programmable logic array circuitry 540 for processing within the signal processor 500 .
- FIG. 6 is a system diagram illustrating a signal processor 600 built in accordance with the invention that performs recursive updating of a programmable logic configuration circuitry 630 and a programmable logic array circuitry 640 .
- the signal processor 600 contains, among other things, a logic configuration selection circuitry 650 that is coupled to a programmable logic configuration circuitry 630 , and a programmable logic array circuitry 640 .
- the programmable logic configuration circuitry 630 and the programmable logic array circuitry 640 are additionally coupled to one another via an ‘n’ bit word width bus that performs parallel configuration loading 620 .
- the logic configuration selection circuitry 650 selects from the programmable logic configuration circuitry 630 a logic configuration that is appropriate for the signal processor 600 .
- the signal processor 600 utilizes information of the existing logic configuration programmed in the programmable logic array circuitry 640 .
- the selection of an appropriate logic configuration selected from the programmable logic configuration circuitry 630 , and the updating of the selected logic configuration into the programmable logic array circuitry 640 are each performed using a recursive updating circuitry 690 and a recursive updating circuitry 692 , respectively. That is to say, adaptive logic configuration is supportable within the programmable logic configuration circuitry 630 using the recursive updating circuitry 690 as required by the specific application of the signal processor 600 .
- a “new” logic configuration is achieved within the programmable logic configuration circuitry 630 , even if it is not originally loaded into the programmable logic configuration circuitry 630 at the inception of the operation of the signal processor 600 . That is to say, the “new” logic configuration is generated in real time, operation of the signal processor 600 to accommodate an immediate logic configuration within the programmable logic array circuitry 640 .
- the “new” logic configuration is adaptively generated specifically for the plurality of input data that is fed into the signal processor 600 . As required by a number of parameters including a plurality of input data, the power consumption of the signal processor 600 , or other parameters, the “new” logic configuration of the signal processor 600 is appropriately chosen for the present application.
- the recursive updating circuitry 690 and the recursive updating circuitry 692 operate cooperatively to perform recursive updating of the programmable logic configuration circuitry 630 and the programmable logic array circuitry 640 .
- the recursive updating circuitry 690 and the recursive updating circuitry 692 operate independently to perform recursive updating of the programmable logic configuration circuitry 630 and the programmable logic array circuitry 640 based upon various parameters including, among other things, the type of incoming data on which the signal processor 600 will operate and a most efficient logic array configuration that is identified by the logic configuration selection circuitry 650 .
- FIG. 7 is a functional block diagram illustrating a method 700 performed in accordance with the invention that reconfigures a logic array circuitry.
- a default logic configuration is selected from among a plurality of predetermined logic configurations.
- a logic array circuitry is programmed using the default logic configuration that is selected in the block 710 .
- a plurality of input data in analyzed to determine if the default logic configuration that is selected in the block 710 is appropriate.
- a power consumption of a signal processor is analyzed to perform the determination whether the default logic configuration that is selected in the block 710 is appropriate.
- an alternative logic configuration is selected in a block 740 .
- the already selected default logic configuration selected in the block 710 is appropriate.
- the alternative logic configuration need not be selected in the block 740 .
- an alternative logic configuration is selected in the block 740 that is more appropriately geared for the plurality of input data that is analyzed in the block 730 or more appropriately geared for the power consumption that is analyzed in the block 735 .
- the logic array circuitry is re-programmed using the alternative logic configuration that is selected in the block 740 .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
Processor architecture adapts to input data. With each incoming data, the processor adapts in real-time. The structure of the processors is adapted by configuring a reconfigurable logic element. Reconfiguration occurs based on a portion of the input data to select a configuration map. The configuration map parallel loads the reconfigurable logic element, thus avoiding latency associated with reconfiguration.
Description
- This present application claims priority to currently pending application Ser. No. 10/686,940 filed on Oct. 15, 2003 entitled “Signal Processor with Fast Field Reconfigurable Data Path, Data Address Unit and Program Sequencer”, by Kenneth Garey which in turn claims priority to application Ser. No. 09/408,825 filed on Sep. 29, 1999 entitled “Signal Processor with Fast Field Reconfigurable Data Path, Data Address Unit and Program Sequencer” by Kenneth Garey which was pending at the time application Ser. No. 10/686,940 was filed.
- Conventional systems that perform data processing do not possess the ability to adapt to various data types on which a data processor must operate. Specific application specific integrated circuitry or other processing circuitry geared and designed to execute specific and limited applications do provide for extremely fast processing, but at a cost of significantly limited functionality. In addition, present signal processors do not provide hardware oriented solutions. For each computational operations within modern signal processors, the signal processor performs multiple functions including a program random access memory (RAM) or a program read only memory (ROM). The conventional signal processor ‘must also employ a data random access memory (RAM) or a plurality of data registers, several address buses and data buses, a data address unit, and a predetermined data path.
- Conventional signal processors that employ hardware directed solutions typically provide a limited functionality to a plurality of input data and drive that plurality of input data to a next function. In other words, conventional hardware solutions are geared primarily to perform a very limited number of functions. Limitations of general purpose signal processors employing conventional techniques are numerous; however, a main limitation is an inability to perform a substantially wide variety of operations to accommodate various pluralities of input data. To perform a wide variety of functions, conventional signal processors typically need to perform a large number of gate toggles with each operation.
- The present invention comprises a method for processing data in a reconfigurable manner. According to one example method, data is processed by receiving input data, selecting a logic configuration according to the input data to processing the input data using the selected logic configuration. According to one alternative illustrative method, input data that is received is subject to a “type” determination. A logic selection indicator is then generated according to be determined type. The logic selection indicator can then be used to select a configuration map. Accordingly, the configuration map may then be used to configure a reconfigurable logic circuit.
- According to one alternative method, a configuration map comprises a configuration for at least one of an addressing unit, and instruction decoder, an instruction sequencer and an arithmetic unit. Accordingly, various functional aspects of processing data may be modified according to the type of data being processed a particular instant in time. Generally, a first configuration map is used to create a logic function during a first data period. A second logic function is created using a second configuration map during a second data period. Accordingly, with each subsequent data a different configuration map may be selected according to the input data.
- According to yet another alternative illustrative method, selection of a logic configuration comprises generation of a parallel configuration word. The parallel configuration word, which is based in whole or in part on the input data, is used to configure a plurality logic element substantially in one data period.
- According to one illustrative aspect of the present method, a first logic element is configured according to a first input data. The first input data is then processed using the first logic element. A second logic element is configured according to the first input data substantially while the first logic element is reconfigured according to a subsequent input data. The once-processed first input data is then processed using the second logic element substantially while the subsequent input data is processed by the reconfigured first logic element. This method provides for “pipelining” of data with selective reconfiguration of logic elements as data moves from one logic element to the next.
- According to yet another alternative method, the amount of power required to process input data using the selected logic configuration is determined. If the amount of power required exceeds a pre-established threshold, a new logic configuration is selected.
- The present invention further comprises a data processing unit. According to one embodiment that illustrates the present invention, a data processing unit comprises an input unit that receives data. A reconfigurable logic circuit is also included in the data processing unit. The reconfigurable logic circuit processes the input data. The reconfigurable logic circuit is configured by a configuration circuit that is also included in the data processing unit. The configuration circuit reconfigures a logic circuit according to a portion of the input data.
- According to one alternative example embodiment, the configuration circuit comprises a data monitor. The data monitor is capable of determining a type for the input data. The configuration circuit of this alternative example embodiment further comprises a configuration memory that is capable of storing a plurality of configuration maps. The configuration circuit selects a particular configuration map according to the determined type of the input data. According to yet another alternative example embodiment, the data monitor is capable of generating a configuration selection signal according to a portion of the input data. The configuration map is selected from the configuration memory using the configuration selection signal. According to yet another alternative example embodiment, the configuration memory includes a configuration map for at least one of an addressing unit, an instruction decoder, an instruction sequencer and an arithmetic unit. According to yet another alternative embodiment, the configuration memory generates a parallel configuration word. The parallel configuration word may be used to configure a plurality of logic elements substantially in one data period.
- According to one alternative illustrative embodiment, the configuration circuit comprises an active configuration unit and a loading configuration unit. According to this illustrative embodiment, the active configuration unit configures the reconfigurable logic circuit during a first data period. The loading configuration unit typically receives a new configuration map while the active configuration unit is configuring the reconfigurable logic circuit. The loading configuration unit is then used to configure the reconfigurable logic circuit during a second data period.
- According to yet another alternative example embodiment, the reconfigurable logic circuit comprises a first logic element and a second logic element. According to this alternative embodiment, the first logic element processes a first input data according to a first configuration. The second logic element processes the output of the first logic element (i.e. a once-processed first data) while the first logic element processes a subsequent data according to a subsequent configuration.
- According to one alternative embodiment, a data processing unit further comprises a power monitor. According to this alternative embodiment, the power monitor determines the power consumed by the reconfigurable logic circuit. The configuration circuit selects a different configuration map when the determined power exceeds a pre-established threshold.
- The present invention will hereinafter be described in conjunction with the appended drawings and figures, wherein like numerals denote like elements, and in which:
-
FIG. 1 is a system diagram illustrating a signal processor built in accordance with the invention having a processing circuitry that contains a re-configurable circuitry; -
FIG. 2 is a system diagram illustrating a signal processor built in accordance with the invention having a re-configurable logic circuitry governed by a configuration control circuitry; -
FIG. 3 is a system diagram illustrating a signal processor built in accordance with the invention having a plurality of reconfigurable components; -
FIG. 4 is a system diagram illustrating a signal processor built in accordance with the invention that selects at least one configuration option to program a programmable logic array circuitry; -
FIG. 5 is a system diagram illustrating a signal processor built in accordance with the invention that selects at least one area configuration to program at least one area of a programmable logic array circuitry; -
FIG. 6 is a system diagram illustrating a signal processor built in accordance with the invention that performs recursive updating of a programmable logic configuration circuitry and a programmable logic array circuitry; and -
FIG. 7 is a functional block diagram illustrating a method performed in accordance with the invention that reconfigures a logic array circuitry. - The present invention presents a solution that provides operation within a signal processor with a significantly reduced number of gate toggles for a given operation. A relatively complex data path is generated for a plurality of input data to reduce the number of gate toggles required to perform operation on the plurality of data. In certain embodiments of the invention, the complex data path is a 64 bit deeply pipelined parallel serial data path with rich interconnects between the pipeline levels and the adjacent data paths within the signal processor. In other embodiments of the invention, the data path provides interconnects capable of allowing multiple 8 bit, 16 bit, or 32 bit parallel operations to occur in parallel. Serial operations including up to ‘n’X 16 bit serial multiples with adjacent signal summing is also provided within various embodiments of the invention. Control of the depth of the deeply pipelined parallel serial data path and a clock signal's gating is also provided within the invention.
- Similar programmability is also provided within a data addressing unit in other embodiments of the invention. This programmability facilitates content addressable data and coordinates re-mapping address support within the signal processor. A program sequencer employs re-configuration to allow flexible control over the data path and the addressing unit. Wide word access is provided to allow rapid re-configuration of a programmable logic circuitry. A hardwired, or default, logic configuration is provided for multiple components within the signal processor. In addition, re-configuration is provided for the multiple components within the signal processor using direct memory access (DMA) logic having wide word read only memory (ROM) and random access memory (RAM).
-
FIG. 1 is a system diagram illustrating a signal processor 100 built in accordance with the invention having aprocessing circuitry 140 that contains are-configurable circuitry 105. Theprocessing circuitry 140 of the signal processor 100 contains there-configurable circuitry 105 to perform at least a portion of its total signal processing. There-configurable circuitry 105 contains, among other things, aprogrammable logic circuitry 110, a processing powerconsumption analysis circuitry 120, and a programmablelogic configuration circuitry 130. The programmablelogic configuration circuitry 130 itself contains, among other things, adefault configuration circuitry 132, anadaptive configuration circuitry 134, anactive configuration circuitry 136, and a loading configuration circuitry (buffer) 138. The programmablelogic configuration circuitry 130 selects a predetermined logic configuration from among a predetermined plurality of default logic configurations contained within thedefault configuration circuitry 132. The programmablelogic configuration circuitry 130 programs theprogrammable logic circuitry 110 to perform at least one predetermined function within the signal processor 100. - In certain embodiments of the invention, the programmable
logic configuration circuitry 130 selects an alternative logic configuration using theadaptive configuration circuitry 134. Theadaptive configuration circuitry 134 selects the alternative logic configuration in response to a number of factors including, among other things, a plurality of input data that is given to the signal processor 100. In other embodiments of the invention, theadaptive configuration circuitry 134 selects the alternative logic configuration in response to the amount of power being consumed by the signal processor 100. This determination of the amount of power being consumed is made using the processing powerconsumption analysis circuitry 120. Regardless of what specific parameters are used to identify and select an appropriate logic configuration, the programmablelogic configuration circuitry 130 programs theprogrammable logic circuitry 110 to perform the predetermined functionality of the signal processor 100. - The
active configuration circuitry 136 of the programmablelogic configuration circuitry 130 is the actual configuration that is presently being employed by the signal processor 100. That is to say, theactive configuration circuitry 136 performs the actual logic configuration of the signal processor 100 during real time operation. If desired in certain embodiments of the invention, the loading configuration circuitry (buffer) 138 is simultaneously loading another logic configuration into the programmablelogic configuration circuitry 130 while theactive configuration circuitry 136 is busy configuring the programmablelogic configuration circuitry 130 using either thedefault configuration circuitry 132 or theadaptive configuration circuitry 134, depending on the specific application. The implementation of both theactive configuration circuitry 136 and the loading configuration circuitry (buffer) 138 is performed in a “ping-pong”style operation known to those having skill in the art of logic configuring, data management, and data processing, among other things. - In this embodiment, the programmable
logic configuration circuitry 130 employs theactive configuration circuitry 136 to perform the actual logic configuration of the signal processor 100 while the loading configuration circuitry (buffer) 138 is loading a logic configuration to be used next. Then, after the present logic configuration of the programmablelogic configuration circuitry 130 has been loaded by theactive configuration circuitry 136 to process a first plurality of input data, the next logic configuration that was just previously contained within the loading configuration circuitry (buffer) 138 is then passed to theactive configuration circuitry 136 to perform processing on a next plurality of input data. If desired, various logic configurations are used to perform processing on the same plurality of input data, and in such a case, the present and the next logic configurations are used to configure the programmablelogic configuration circuitry 130 at various phases within the processing of the same plurality of input data. The simultaneous operation of the programming of one logic configuration to the programmablelogic configuration circuitry 130 using theactive configuration circuitry 136 while another logic configuration is being loaded into the loading configuration circuitry (buffer) 138 provides for faster, overall operation of the signal processor 100, given that a next logic configuration is immediately ready for the programmablelogic configuration circuitry 130 after the processing of the plurality of input data. -
FIG. 2 is a system diagram illustrating asignal processor 200 built in accordance with the invention having are-configurable logic circuitry 250 governed by aconfiguration control circuitry 210. Thesignal processor 200 operates to convert a plurality ofinput data 220 into a plurality ofoutput data 240. Theconfiguration control circuitry 210 operates cooperatively with a programmablelogic configuration circuitry 230 to program there-configurable logic circuitry 250. The programmablelogic configuration circuitry 230 itself contains, among other things, a read only memory (ROM) 232 and a random access memory (RAM) 234. There-configurable logic circuitry 250 itself contains, among other things, an inputprogrammable logic circuitry 252, a mainprogrammable logic circuitry 254, and an outputprogrammable logic circuitry 256. The read only memory (ROM) 232 and the random access memory (RAM) 234 store a predetermined number of logic configurations that are used to program there-configurable logic circuitry 250. If desired, the read only memory (ROM) 232 store a predetermined number of fixed logic configurations for there-configurable logic circuitry 250. The fixed logic configurations includes at least one default logic configuration for there-configurable logic circuitry 250 that is loaded during startup of thesignal processor 200 or, alternatively, during any power cycle or reset operations that thesignal processor 200 undergoes. In addition, the random access memory (RAM) 234 operates within thesignal processor 200 to determine a more appropriate logic configuration for there-configurable logic circuitry 250 through adaptive techniques employed by the programmablelogic configuration circuitry 230. The programmablelogic configuration circuitry 230 analyzes various parameters to determine an appropriate logic configuration for thesignal processor 200. - The programmable
logic configuration circuitry 230 provides the proper logic configuration to there-configurable logic circuitry 250. Irrespective of whether the programmablelogic configuration circuitry 230 loads a predetermined logic configuration from the read only memory (ROM) 232 or an adaptively selected logic configuration from the random access memory (RAM) 234, the programmablelogic configuration circuitry 230 performs the programming of there-configurable logic circuitry 250 so that there-configurable logic circuitry 250 operates properly on the plurality ofinput data 220. The programming of the programmablelogic configuration circuitry 230 operates to program the logic configuration for at least one of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the output programmable logic circuitry. 256. In certain embodiments of the invention, all of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256 are provided with a logic configuration. In other embodiments of the invention, only one of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256 is provided with a modified logic configuration to perform processing on the plurality ofinput data 220. For example, when thesignal processor 200 performs updating of new logic configurations during each passing of a clock signal's cycle of thesignal processor 200, the logic configurations of each of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256 is analyzed to determine if the present logic configuration is appropriate for the particular segment of the plurality ofinput data 220 on which thesignal processor 200 is operating. If it is determined that existing logic configuration for at least one of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256 is appropriate for the plurality ofinput data 220 within the given clock signal's cycle, then that particular logic configuration is maintained. Alternatively, the logic configurations of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256 that need to be modified are indeed modified, as required and governed by the plurality ofinput data 220. Thesignal processor 200 then utilizes the logic configurations to generate the plurality ofoutput data 240. - Those having skill in the art of data processing will recognize that the various portions of the
re-configurable logic circuitry 250 are re-configurable to accommodate various types of the plurality ofinput data 220. If desired, thesignal processor 200 operates into a low power consumption mode wherein default logic configurations are loaded into each of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256. Various intelligence is employed in the programmablelogic configuration circuitry 230 to determine, in various low power consumption modes, whether it is more power efficient to switch to a new logic configuration for at least one of the inputprogrammable logic circuitry 252, the mainprogrammable logic circuitry 254, and the outputprogrammable logic circuitry 256 within there-configurable logic circuitry 250 or to remain with a default logic configuration. In addition, those having skill in the art of data processing will recognize that various permutations of the modification of the logic configuration of thereconfigurable logic circuitry 250 is performed depending on various operational considerations of thesignal processor 200. -
FIG. 3 is a system diagram illustrating asignal processor 300 built in accordance with the invention having a plurality of reconfigurable components. A programmablelogic configuration circuitry 330 is operable to provide configuration to each of adata memory 310, adata addressing unit 320, aprogram memory 340, anarithmetic logic unit 350, and an instruction decode &sequencing unit 360; the programmablelogic configuration circuitry 330 is operable to provide updated configuration for each of the above mentioned reconfigurable components. The programmablelogic configuration circuitry 330 itself contains, among other things, a read only memory (ROM) 332 and a random access memory (RAM) 334. As described above and similar to the various embodiments of the invention including the signal processor 100 and thesignal processor 200, thesignal processor 300 is operable using the programmablelogic configuration circuitry 330 to perform both default and adaptive configuration of the various reconfigurable components contained within thesignal processor 300. - The
data memory 310 itself contains, among other things, aword width 312, an addressinglogic circuitry 314, and a random access memory (RAM) 316. Thedata addressing unit 320 itself contains, among other things, a plurality of addressingmodes 322 wherein the plurality of addressingmodes 322 include, among other addressing modes, an indirect addressingmode 323, an indexed addressingmode 324, a based offset addressingmode 325, a first in/first out (FIFO) addressingmode 326, and astack addressing mode 327. Theprogram memory 340 itself contains, among other things, a read only memory (ROM) 346. Theprogram memory 340 provides a plurality ofimmediate data 370 that is stored in theprogram memory 340 to thearithmetic logic unit 350, and the instruction decode &sequencing unit 360. Thearithmetic logic unit 350 itself contains, among other things, aword width 352 and an addressinglogic circuitry 354. The various data addressing mode functionality of thedata addressing unit 320 are known to those having skill in the art of data processing. Any appropriate data addressing mode is used within the invention without departing from the scope and spirit thereof. Theword width 312 of thedata memory 310 and theword width 352 of thearithmetic logic unit 350 correspond to a word width in which each of thedata memory 310 and thearithmetic logic unit 350 is configured within one given updating logic configuration step. When the programmablelogic configuration circuitry 330 operates to modify the logic configuration of each of thedata memory 310, thedata addressing unit 320, theprogram memory 340, thearithmetic logic unit 350, and the instruction decode &sequencing unit 360, a wide word width that is loaded in parallel is used so that all of the configuration of the above mentioned reconfigurable components are re-configured simultaneously, if desired. In certain embodiments of the invention, only a subset of thedata memory 310, thedata addressing unit 320, theprogram memory 340, thearithmetic logic unit 350, and the instruction decode &sequencing unit 360 is updated with a new logic configuration in any given logic configuration updating performed by the programmablelogic configuration circuitry 330 of thesignal processor 300. The variations of the invention, as described above in the embodiments of the signal processor 100 ofFIG. 1 and thesignal processor 200 ofFIG. 2 , wherein only various elements of thesignal processor 300 receive a modified logic configuration in a clock signal's cycle. - The addressing
logic circuitry 314 of thedata memory 310 and the addressinglogic circuitry 354 of thearithmetic logic unit 350 operate to perform the addressing' of modified and updated logic configurations within thesignal processor 300 as required by various parameters including characteristics of a plurality of input data, similar to the embodiment shown above and described within thesignal processor 200 ofFIG. 2 . -
FIG. 4 is a system diagram illustrating asignal processor 400 built in accordance with the invention that selects at least one configuration option to program a programmablelogic array circuitry 440. Thesignal processor 400 contains, among other things, amemory 410, an ‘n’ bit word width bus that performsparallel configuration loading 420, a logicconfiguration selection circuitry 430, and the programmablelogic array circuitry 440. Thememory 410 contains, among other things, aconfiguration option # 1 412, aconfiguration option # 2 414, and a configuration option #‘n’ 416. The logicconfiguration selection circuitry 430, that itself contains, among other things, adata monitoring circuitry 432, provides information to thememory 410 to determine which logic configuration is appropriate for a given portion of data. The given portion of data is a plurality of input data, as described above in the various embodiments of the invention shown inFIGS. 2 and 3 . Thedata monitoring circuitry 432 is operable to identify characteristics of the plurality of input data and to provide information to the logicconfiguration selection circuitry 430 so that it operates to perform selection of a logic configuration that is most appropriate. The logicconfiguration selection circuitry 430 cooperates with thememory 410, selecting from among theconfiguration option # 1 412, theconfiguration option # 2 414, and the configuration option #‘n’ 416 to identify an appropriate logic configuration for the plurality of input data. As described above in various embodiments of the invention, the selection of the appropriate logic configuration is made using various indicia in accordance with the invention. Examples of such indicia and parameters include power consumption within thesignal processor 400, the characteristics of the plurality of input data provided to thesignal processor 400, and other parameters. - The selected logic configuration, selected from among the
configuration option # 1 412, theconfiguration option # 2 414, and the configuration option #‘n’ 416 contained within thememory 410, is transported to the programmablelogic array circuitry 440 via the ‘n’ bit word width bus that performsparallel configuration loading 420. The ‘n’ bit word width of the ‘n’ bit word width bus that performsparallel configuration loading 420 provides very fast loading and configuration of the programmablelogic array circuitry 440. For example, for embodiments of the invention where the width of the programmablelogic array circuitry 440 is also ‘n’ bits, the entirety of the programmablelogic array circuitry 440 is programmable with a modified logic configuration within a given, clock signal's cycle, i.e., all of the logic elements of the programmablelogic array circuitry 440 are re-programmable in one given step. The programmablelogic array circuitry 440 itself contains, among other things, a plurality of logic elements including alogic element # logic element # logic element # 1, ‘n’ 443, alogic element # logic element # logic element # 2, ‘n’ 446, a logic element #‘n’, 1 447, a logic element #‘n’, 2 448, and a logic element #‘n’, ‘n’ 449. - In other embodiments of the invention, the width of the programmable
logic array circuitry 440 is ‘n’ bits that is different than the ‘n’ bit word width of the ‘n’ bit word width bus that performsparallel configuration loading 420 and only a predetermined portion of the individual logic elements of the programmablelogic array circuitry 440 is programmed with a modified logic configuration in the given clock signal's cycle. Additional clock signal cycles are required to modify the logic configuration of the remainder of the programmablelogic array circuitry 440. -
FIG. 5 is a system diagram illustrating asignal processor 500 built in accordance with the invention that selects at least one area configuration to program at least one area of a programmable logic array circuitry. Thesignal processor 500 contains, among other things, a memory 510, an ‘n’ bit word width bus that performsparallel configuration loading 520, a logicconfiguration selection circuitry 530, and a programmablelogic array circuitry 540. The memory 510 contains, among other things, aconfiguration option # 1 512, aconfiguration option # 2 514, and a configuration option #‘n’ 516. The logicconfiguration selection circuitry 530, that itself contains, among other things, adata monitoring circuitry 532, provides information to the memory 510 to determine which logic configuration is appropriate for a given portion of data. Similar to the embodiment of the invention described above in thesignal processor 400 ofFIG. 4 , the given portion of data is a plurality of input data, as described above in the various embodiments of the invention shown inFIGS. 2 and 3 . Thedata monitoring circuitry 532 is operable to identify characteristics of the plurality of input data and to provide information to the logicconfiguration selection circuitry 530 so that it operates to perform selection of a logic configuration that is most appropriate. The logicconfiguration selection circuitry 530 cooperates with the memory 510, selecting from among theconfiguration option # 1 512, theconfiguration option # 2 514, and the configuration option #‘n’ 516 to identify an appropriate logic configuration for the plurality of input data. As described above in various embodiments of the invention, the selection of the appropriate logic configuration is made using various indicia in accordance with the invention. Examples of such indicia and parameters include power consumption within thesignal processor 500, the characteristics of the plurality of input data provided to thesignal processor 500, and other parameters. - The selected logic configuration, selected from among the
configuration option # 1 512, theconfiguration option # 2 514, and the configuration option #‘n’ 516 contained within the memory 510, is transported to the programmablelogic array circuitry 540 via the ‘n’ bit word width bus that performsparallel configuration loading 520. The ‘n’ bit word width of the ‘n’ bit word width bus that performsparallel configuration loading 520 provides very fast loading and configuration of the programmablelogic array circuitry 540. For example, for embodiments of the invention where the width of the programmablelogic array circuitry 540 is also ‘n’ bits, the entirety of the programmablelogic array circuitry 540 is programmable with a modified logic configuration within a given clock signal's cycle, i.e., all of the logic elements of the programmablelogic array circuitry 540 are re-programmable in one given step. The programmablelogic array circuitry 540 itself contains, among other things, a plurality of logic elements including alogic element # logic element # logic element # logic element # logic element # 2,’n’ 546, a logic element #‘n’, 1 547, a logic element #‘n’, 2 548, and a logic element #‘n’, ’n’ 549. - In the specific embodiment of the
signal processor 500, the programmablelogic array circuitry 540 is not only partitioned into thelogic element # logic element # logic element # 1, ‘n’ 543, thelogic element # logic element # logic element # 2, ‘n’ 546, the logic element #‘n’, 1 547, the logic element #‘n’, 2 548, and the logic element #‘n’, ‘n’ 549, but the programmablelogic array circuitry 540 is further organized into anarea # 1 552, anarea # 2 554, and an area #‘n’ 556. Thearea # 1 552 contains thelogic element # logic element # logic element # logic element # area # 2 554 contains the logic element #‘n’, 1 547 and the logic element #‘n’, 2 548; the area #‘n’ 556 contains the logic element #‘n’, ‘n’ 549. Thesignal processor 500 is operable to provide various logic configurations to each of thearea # 1 552, thearea # 2 554, and the area #‘n’ 556 as required by the specific application. For example, in a given instance, for a given plurality of input data, only thearea # 1 552 and thearea # 2 554 need to be provided a modified logic configuration whereas the logic configuration of the area #‘n’ 556 is appropriate for the given application. Those having skill in the art of data processing will recognize that thelogic element # 1, ‘n’ and thelogic element # 2, ‘n’ may be organized into another area in certain embodiments of the invention. Thelogic element # logic element # logic element # 1, ‘n’ 543, thelogic element # logic element # logic element # 2, ‘n’ 546, the logic element #‘n’, 1 547, the logic element #‘n’, 2 548, and the logic element #‘n’, ‘n’ 549 is operable to be organized into any number of individual areas such that predetermined logic configurations are loaded into the various areas of the programmablelogic array circuitry 540 for processing within thesignal processor 500. -
FIG. 6 is a system diagram illustrating asignal processor 600 built in accordance with the invention that performs recursive updating of a programmablelogic configuration circuitry 630 and a programmablelogic array circuitry 640. Thesignal processor 600 contains, among other things, a logicconfiguration selection circuitry 650 that is coupled to a programmablelogic configuration circuitry 630, and a programmablelogic array circuitry 640. The programmablelogic configuration circuitry 630 and the programmablelogic array circuitry 640 are additionally coupled to one another via an ‘n’ bit word width bus that performsparallel configuration loading 620. The logicconfiguration selection circuitry 650 selects from the programmable logic configuration circuitry 630 a logic configuration that is appropriate for thesignal processor 600. In performing this selection, thesignal processor 600 utilizes information of the existing logic configuration programmed in the programmablelogic array circuitry 640. In addition, in the selection of an appropriate logic configuration, selected from the programmablelogic configuration circuitry 630, and the updating of the selected logic configuration into the programmablelogic array circuitry 640 are each performed using arecursive updating circuitry 690 and arecursive updating circuitry 692, respectively. That is to say, adaptive logic configuration is supportable within the programmablelogic configuration circuitry 630 using therecursive updating circuitry 690 as required by the specific application of thesignal processor 600. For example, a “new” logic configuration is achieved within the programmablelogic configuration circuitry 630, even if it is not originally loaded into the programmablelogic configuration circuitry 630 at the inception of the operation of thesignal processor 600. That is to say, the “new” logic configuration is generated in real time, operation of thesignal processor 600 to accommodate an immediate logic configuration within the programmablelogic array circuitry 640. The “new” logic configuration is adaptively generated specifically for the plurality of input data that is fed into thesignal processor 600. As required by a number of parameters including a plurality of input data, the power consumption of thesignal processor 600, or other parameters, the “new” logic configuration of thesignal processor 600 is appropriately chosen for the present application. - In certain embodiments of the invention, the
recursive updating circuitry 690 and therecursive updating circuitry 692 operate cooperatively to perform recursive updating of the programmablelogic configuration circuitry 630 and the programmablelogic array circuitry 640. Alternatively, therecursive updating circuitry 690 and therecursive updating circuitry 692 operate independently to perform recursive updating of the programmablelogic configuration circuitry 630 and the programmablelogic array circuitry 640 based upon various parameters including, among other things, the type of incoming data on which thesignal processor 600 will operate and a most efficient logic array configuration that is identified by the logicconfiguration selection circuitry 650. -
FIG. 7 is a functional block diagram illustrating amethod 700 performed in accordance with the invention that reconfigures a logic array circuitry. In ablock 710, a default logic configuration is selected from among a plurality of predetermined logic configurations. In ablock 720, a logic array circuitry is programmed using the default logic configuration that is selected in theblock 710. In ablock 730, a plurality of input data in analyzed to determine if the default logic configuration that is selected in theblock 710 is appropriate. In analternative process block 735, a power consumption of a signal processor is analyzed to perform the determination whether the default logic configuration that is selected in theblock 710 is appropriate. Subsequently and irrespective of which of theblock 730 and thealternative process block 735 is performed, an alternative logic configuration is selected in ablock 740. In certain applications of the invention, the already selected default logic configuration selected in theblock 710 is appropriate. In such an instance, the alternative logic configuration need not be selected in theblock 740. - However, if the already selected default logic configuration selected in the
block 710 is inappropriate or if the processing of a signal processor is improved as determined by the analysis of the plurality of input data in theblock 730 or the analysis of the power consumption in thealternative process block 735, an alternative logic configuration is selected in theblock 740 that is more appropriately geared for the plurality of input data that is analyzed in theblock 730 or more appropriately geared for the power consumption that is analyzed in theblock 735. Finally, in ablock 750, the logic array circuitry is re-programmed using the alternative logic configuration that is selected in theblock 740. As described above, if it is determined that an alternative logic configuration is not needed in theblock 740, then no re-programming is performed in theblock 750. However, in those instances where re-programming is required as determined by the selection of an alternative logic configuration in theblock 740, the reprogramming of the logic array circuitry is performed in theblock 750. - While this invention has been described in terms of several alternative methods and exemplary embodiments, it is contemplated that alternatives, modifications, permutations, and equivalents thereof will become apparent to those skilled in the art upon a reading of the specification and study of the drawings. It is therefore intended that the true spirit and scope of the present invention include all such alternatives, modifications, permutations, and equivalents.
Claims (26)
1. A method for processing data in a reconfigurable manner comprising:
receiving input data;
selecting a logic configuration according to the input data; and
processing the input data using the selected logic configuration.
2. The method of claim 1 wherein receiving input data comprises:
receiving a plurality of data;
determining a type of the plurality of data; and
generating a logic selection indicator according to the determined type of the plurality of input data.
3. The method of claim 1 wherein selecting a logic configuration comprises:
selecting a configuration map according to a portion of the input data; and
creating a logic function in accordance with the selected configuration map.
4. The method of claim 3 wherein selecting a configuration map comprises selecting a configuration map for at least one of an addressing unit, an instruction decoder, an instruction sequencer and an arithmetic unit.
5. The method of claim 1 wherein selecting a logic configuration comprises:
creating a logic function in accordance with a first configuration map during a first data period; and
creating a second logic function in accordance with a second configuration map during a second data period.
6. The method of claim 1 wherein selecting a logic configuration comprises:
generating a parallel configuration word according to the input data;
configuring a plurality of logic elements substantially in one data period using the parallel configuration word.
7. The method of claim 1 wherein processing the input data comprises:
configuring a first logic element according to a first input data;
processing the first input data using the first logic element;
configuring a second logic element according to the first input data substantially while reconfiguring the first logic element according to a subsequent input data; and
processing the once-processed first input data using the second logic element substantially while processing the subsequent input data using the reconfigured first logic element.
8. The method of claim 1 further comprising:
determining the amount of power required to process the input data using the selected logic configuration; and
selecting a new logic configuration when the amount of power required exceeds a pre-established threshold.
9. A data processing unit comprising:
input unit capable of receiving input data;
reconfigurable logic circuit capable of processing the input data; and
configuration circuit capable of configuring the reconfigurable logic circuit according to a portion of the input data.
10. The data processing unit of claim 9 wherein the configuration circuit comprises:
data monitor capable of determining a type for the input data; and
configuration memory capable of storing a plurality of configuration maps, wherein a configuration map is selected according to a portion the determined type.
11. The data processing unit of claim 9 wherein the configuration circuit comprises:
data monitor capable of generating a configuration selection signal according to a portion of the input data; and
configuration memory capable of storing a plurality of configuration maps, wherein a configuration map is selected according to the configuration selection signal.
12. The data processing unit of claim 9 wherein the configuration circuit includes a configuration map for at least one of an addressing unit, an instruction decoder, an instruction sequencer and an arithmetic unit.
13. The data processing unit of claim 9 wherein the configuration circuit comprises:
active configuration unit capable of configuring reconfigurable logic circuit during a first data period; and
loading configuration unit capable of receiving a new configuration map while the active configuration unit is configuring the reconfigurable logic circuit and is further capable of configuring reconfigurable logic circuit during a second data period.
14. The data processing unit of claim 9 wherein the configuration circuit comprises a configuration memory that generates a parallel configuration word.
15. The data processing unit of claim 9 wherein the reconfigurable logic circuit comprises:
first logic element capable of processing a first input data according to a first configuration; and
second logic element capable of processing a once-processed first data received from the first logic element according to a first configuration while the first logic element processes a subsequent data according to a subsequent configuration.
16. The data processing unit of claim 9 further comprising power monitor capable of determining the power consumed by the reconfigurable logic circuit wherein the configuration circuit is capable of selecting a different configuration map when the determined power exceeds a pre-established threshold.
17. A data processing unit comprising:
input unit capable of receiving input data;
data storage unit capable of storing at least one of the input data and an intermediate result;
reconfigurable logic circuit capable of processing the input data and an intermediate result; and
configuration circuit capable of configuring the reconfigurable logic circuit according to at least one of a portion of the input data and a portion of an intermediate result.
18. The data processing unit of claim 17 wherein the configuration circuit comprises:
data monitor capable of determining a type for the input data; and
configuration memory capable of storing a plurality of configuration maps, wherein a configuration map is selected according to a portion the determined type.
19. The data processing unit of claim 17 wherein the configuration circuit comprises:
data monitor capable of generating a configuration selection signal according to a portion of the input data; and
configuration memory capable of storing a plurality of configuration maps, wherein a configuration map is selected according to the configuration selection signal.
20. The data processing unit of claim 17 wherein the configuration circuit includes a reconfigurable logic circuit comprising multiple function specific sub-circuits wherein each sub-circuit comprises at least one of a general purpose specific logic element and a function specific logic element that is optimized to configure the sub-circuit.
21. The data processing unit of claim 20 wherein the reconfigurable logic circuit is capable of selecting from one or more fixed configurations as an active circuit configuration while one or more programmable configurations is being loaded.
22. The data processing unit of claim 17 wherein the configuration circuit comprises:
active configuration unit capable of configuring reconfigurable logic circuit during a first data period; and
loading configuration unit capable of receiving a new configuration map while the active configuration unit is configuring the reconfigurable logic circuit and is further capable of configuring reconfigurable logic circuit during a second data period.
23. The data processing unit of claim 17 wherein the configuration circuit comprises a configuration memory that generates a parallel configuration word.
24. The data processing unit of claim 17 wherein the configuration circuit comprises:
process sequencing mechanism capable of choosing a sequence of states;
configuration circuit capable of configuring the reconfigurable logic circuit according to a chosen state.
25. The data processing unit of claim 17 wherein the reconfigurable logic circuit comprises:
first logic element capable of processing a first input data according to a first configuration; and
second logic element capable of processing a once-processed first data received from the first logic element according to a first configuration while the first logic element processes a subsequent data according to a subsequent configuration.
26. The data processing unit of claim 17 further comprising power monitor capable of determining the power consumed by the reconfigurable logic circuit wherein the configuration circuit is capable of selecting a different configuration map when the determined power exceeds a pre-established threshold.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/892,537 US20050066152A1 (en) | 1999-09-29 | 2004-07-14 | Method and apparatus for processing data in a reconfigurable manner |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/408,825 US6662302B1 (en) | 1999-09-29 | 1999-09-29 | Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device |
US10/686,940 US20040139311A1 (en) | 1999-09-29 | 2003-10-15 | Signal processor with fast field reconfigurable datapath, data address unit, and program sequencer |
US10/892,537 US20050066152A1 (en) | 1999-09-29 | 2004-07-14 | Method and apparatus for processing data in a reconfigurable manner |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/408,825 Continuation US6662302B1 (en) | 1999-09-29 | 1999-09-29 | Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device |
US10/686,940 Continuation US20040139311A1 (en) | 1999-09-29 | 2003-10-15 | Signal processor with fast field reconfigurable datapath, data address unit, and program sequencer |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050066152A1 true US20050066152A1 (en) | 2005-03-24 |
Family
ID=23617925
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/408,825 Expired - Lifetime US6662302B1 (en) | 1999-09-29 | 1999-09-29 | Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device |
US10/686,940 Abandoned US20040139311A1 (en) | 1999-09-29 | 2003-10-15 | Signal processor with fast field reconfigurable datapath, data address unit, and program sequencer |
US10/892,537 Abandoned US20050066152A1 (en) | 1999-09-29 | 2004-07-14 | Method and apparatus for processing data in a reconfigurable manner |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/408,825 Expired - Lifetime US6662302B1 (en) | 1999-09-29 | 1999-09-29 | Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device |
US10/686,940 Abandoned US20040139311A1 (en) | 1999-09-29 | 2003-10-15 | Signal processor with fast field reconfigurable datapath, data address unit, and program sequencer |
Country Status (3)
Country | Link |
---|---|
US (3) | US6662302B1 (en) |
AU (1) | AU7713700A (en) |
WO (1) | WO2001024030A2 (en) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263334A1 (en) * | 2007-04-17 | 2008-10-23 | Cypress Semiconductor Corp. | Dynamically configurable and re-configurable data path |
US20080288755A1 (en) * | 2007-04-17 | 2008-11-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US20080297388A1 (en) * | 2007-04-17 | 2008-12-04 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US20080301619A1 (en) * | 2001-11-19 | 2008-12-04 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US20080312857A1 (en) * | 2006-03-27 | 2008-12-18 | Seguine Dennis R | Input/output multiplexer bus |
US20090066427A1 (en) * | 2005-02-04 | 2009-03-12 | Aaron Brennan | Poly-phase frequency synthesis oscillator |
US20100169607A1 (en) * | 2008-12-25 | 2010-07-01 | Fujitsu Microelectronics Limited | Reconfigurable circuit, its design method, and design apparatus |
US7825688B1 (en) | 2000-10-26 | 2010-11-02 | Cypress Semiconductor Corporation | Programmable microcontroller architecture(mixed analog/digital) |
US7893724B2 (en) | 2004-03-25 | 2011-02-22 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US8069428B1 (en) | 2001-10-24 | 2011-11-29 | Cypress Semiconductor Corporation | Techniques for generating microcontroller configuration information |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US8120408B1 (en) | 2005-05-05 | 2012-02-21 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8527949B1 (en) | 2001-11-19 | 2013-09-03 | Cypress Semiconductor Corporation | Graphical user interface for dynamically reconfiguring a programmable device |
US9018979B2 (en) | 2007-04-17 | 2015-04-28 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US10698662B2 (en) | 2001-11-15 | 2020-06-30 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839889B2 (en) | 2000-03-01 | 2005-01-04 | Realtek Semiconductor Corp. | Mixed hardware/software architecture and method for processing xDSL communications |
US20020108009A1 (en) * | 2000-12-29 | 2002-08-08 | Michele Borgatti | Electronic system having modular expansion function facilities |
US20030033374A1 (en) * | 2001-07-24 | 2003-02-13 | Condor Engineering, Inc. | Method and system for implementing a communications core on a single programmable device |
US20030056091A1 (en) * | 2001-09-14 | 2003-03-20 | Greenberg Craig B. | Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations |
US6988192B2 (en) * | 2002-02-11 | 2006-01-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for compiling source code to configure hardware |
FR2838208B1 (en) * | 2002-04-03 | 2005-03-11 | Centre Nat Rech Scient | LOGICAL CALCULATION ARCHITECTURE COMPRISING MULTIPLE CONFIGURATION MODES |
US6957163B2 (en) * | 2002-04-24 | 2005-10-18 | Yoshiyuki Ando | Integrated circuits having post-silicon adjustment control |
US7188266B1 (en) * | 2004-03-08 | 2007-03-06 | Altera Corporation | Systems and methods for reducing static and total power consumption in a programmable logic device |
JP4095576B2 (en) * | 2004-05-17 | 2008-06-04 | 株式会社東芝 | General-purpose logic circuit device using programmable logic circuit |
US7844767B2 (en) * | 2004-05-21 | 2010-11-30 | Intel Corporation | Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link |
US7320064B2 (en) * | 2004-07-23 | 2008-01-15 | Honeywell International Inc. | Reconfigurable computing architecture for space applications |
US20070046781A1 (en) * | 2005-08-29 | 2007-03-01 | Honeywell International Inc. | Systems and methods for processing digital video data |
US7374134B2 (en) * | 2005-08-29 | 2008-05-20 | Honeywell International Inc. | Systems and methods for semi-permanent, non-precision inspace assembly of space structures, modules and spacecraft |
US7282949B2 (en) * | 2005-09-30 | 2007-10-16 | International Business Machines Corporation | FPGA powerup to known functional state |
US7304493B2 (en) * | 2005-09-30 | 2007-12-04 | International Business Machines Corporation | FPGA powerup to known functional state |
JP4909588B2 (en) * | 2005-12-28 | 2012-04-04 | 日本電気株式会社 | Information processing apparatus and method of using reconfigurable device |
KR100662873B1 (en) * | 2006-01-03 | 2007-01-02 | 삼성전자주식회사 | Loop Accelerators and Data Processing Systems Including the Same |
US7353474B1 (en) * | 2006-04-18 | 2008-04-01 | Xilinx, Inc. | System and method for accessing signals of a user design in a programmable logic device |
US20080022081A1 (en) * | 2006-07-18 | 2008-01-24 | Honeywell International Inc. | Local controller for reconfigurable processing elements |
US20090024839A1 (en) * | 2007-07-21 | 2009-01-22 | Arssov Paul Plamen | Variable instruction set microprocessor |
US7752592B2 (en) * | 2007-10-10 | 2010-07-06 | International Business Machines Corporation | Scheduler design to optimize system performance using configurable acceleration engines |
US8612789B2 (en) * | 2011-01-13 | 2013-12-17 | Xilinx, Inc. | Power management within an integrated circuit |
US8667192B2 (en) | 2011-02-28 | 2014-03-04 | Xilinx, Inc. | Integrated circuit with programmable circuitry and an embedded processor system |
US8896344B1 (en) | 2013-01-04 | 2014-11-25 | Altera Corporation | Heterogeneous programmable device and configuration software adapted therefor |
GB201414286D0 (en) * | 2014-08-12 | 2014-09-24 | Imp Innovations Ltd | Reconfigurable integrated circuit with on-chip configuration generation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5426378A (en) * | 1994-04-20 | 1995-06-20 | Xilinx, Inc. | Programmable logic device which stores more than one configuration and means for switching configurations |
US5600845A (en) * | 1994-07-27 | 1997-02-04 | Metalithic Systems Incorporated | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US5751164A (en) * | 1996-06-24 | 1998-05-12 | Advanced Micro Devices, Inc. | Programmable logic device with multi-level power control |
US6028445A (en) * | 1997-12-30 | 2000-02-22 | Xilinx, Inc. | Decoder structure and method for FPGA configuration |
US6058469A (en) * | 1995-04-17 | 2000-05-02 | Ricoh Corporation | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US6145020A (en) * | 1998-05-14 | 2000-11-07 | Advanced Technology Materials, Inc. | Microcontroller incorporating an enhanced peripheral controller for automatic updating the configuration date of multiple peripherals by using a ferroelectric memory array |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5301344A (en) * | 1991-01-29 | 1994-04-05 | Analogic Corporation | Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets |
JPH04282475A (en) * | 1991-03-11 | 1992-10-07 | Kawasaki Steel Corp | programmable logic device |
US5497498A (en) | 1992-11-05 | 1996-03-05 | Giga Operations Corporation | Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation |
US5535406A (en) * | 1993-12-29 | 1996-07-09 | Kolchinsky; Alexander | Virtual processor module including a reconfigurable programmable matrix |
US5537295A (en) | 1994-03-04 | 1996-07-16 | Altera Corporation | Universal reconfigurable printed circuit board |
US5737631A (en) * | 1995-04-05 | 1998-04-07 | Xilinx Inc | Reprogrammable instruction set accelerator |
US5933642A (en) * | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
US5996083A (en) * | 1995-08-11 | 1999-11-30 | Hewlett-Packard Company | Microprocessor having software controllable power consumption |
US5956518A (en) * | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
JP2000513523A (en) * | 1996-06-21 | 2000-10-10 | オーガニック システムズ インコーポレイテッド | Dynamically reconfigurable hardware system for immediate process control |
US5933023A (en) * | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US6134707A (en) * | 1996-11-14 | 2000-10-17 | Altera Corporation | Apparatus and method for in-system programming of integrated circuits containing programmable elements |
CA2193782C (en) * | 1996-12-23 | 2001-06-12 | Kai Di Feng | Adaptive infrared communication apparatus |
US5841810A (en) * | 1997-01-30 | 1998-11-24 | National Semiconductor Corporation | Multiple stage adaptive equalizer |
US5931959A (en) * | 1997-05-21 | 1999-08-03 | The United States Of America As Represented By The Secretary Of The Air Force | Dynamically reconfigurable FPGA apparatus and method for multiprocessing and fault tolerance |
US5970254A (en) * | 1997-06-27 | 1999-10-19 | Cooke; Laurence H. | Integrated processor and programmable data path chip for reconfigurable computing |
US5915123A (en) * | 1997-10-31 | 1999-06-22 | Silicon Spice | Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements |
US6421728B1 (en) * | 1997-12-31 | 2002-07-16 | Intel Corporation | Architecture for communicating with and controlling separate upstream and downstream devices |
US6094726A (en) * | 1998-02-05 | 2000-07-25 | George S. Sheng | Digital signal processor using a reconfigurable array of macrocells |
US6198304B1 (en) * | 1998-02-23 | 2001-03-06 | Xilinx, Inc. | Programmable logic device |
US6314551B1 (en) * | 1998-06-22 | 2001-11-06 | Morgan Stanley & Co. Incorporated | System processing unit extended with programmable logic for plurality of functions |
US6172518B1 (en) * | 1999-07-23 | 2001-01-09 | Xilinx, Inc. | Method of minimizing power use in programmable logic devices |
-
1999
- 1999-09-29 US US09/408,825 patent/US6662302B1/en not_active Expired - Lifetime
-
2000
- 2000-09-25 AU AU77137/00A patent/AU7713700A/en not_active Abandoned
- 2000-09-25 WO PCT/US2000/026308 patent/WO2001024030A2/en active Application Filing
-
2003
- 2003-10-15 US US10/686,940 patent/US20040139311A1/en not_active Abandoned
-
2004
- 2004-07-14 US US10/892,537 patent/US20050066152A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5426378A (en) * | 1994-04-20 | 1995-06-20 | Xilinx, Inc. | Programmable logic device which stores more than one configuration and means for switching configurations |
US5600845A (en) * | 1994-07-27 | 1997-02-04 | Metalithic Systems Incorporated | Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor |
US6058469A (en) * | 1995-04-17 | 2000-05-02 | Ricoh Corporation | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US5751164A (en) * | 1996-06-24 | 1998-05-12 | Advanced Micro Devices, Inc. | Programmable logic device with multi-level power control |
US6028445A (en) * | 1997-12-30 | 2000-02-22 | Xilinx, Inc. | Decoder structure and method for FPGA configuration |
US6145020A (en) * | 1998-05-14 | 2000-11-07 | Advanced Technology Materials, Inc. | Microcontroller incorporating an enhanced peripheral controller for automatic updating the configuration date of multiple peripherals by using a ferroelectric memory array |
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US10725954B2 (en) | 2000-10-26 | 2020-07-28 | Monterey Research, Llc | Microcontroller programmable system on a chip |
US8555032B2 (en) | 2000-10-26 | 2013-10-08 | Cypress Semiconductor Corporation | Microcontroller programmable system on a chip with programmable interconnect |
US8736303B2 (en) | 2000-10-26 | 2014-05-27 | Cypress Semiconductor Corporation | PSOC architecture |
US8358150B1 (en) | 2000-10-26 | 2013-01-22 | Cypress Semiconductor Corporation | Programmable microcontroller architecture(mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US10261932B2 (en) | 2000-10-26 | 2019-04-16 | Cypress Semiconductor Corporation | Microcontroller programmable system on a chip |
US7825688B1 (en) | 2000-10-26 | 2010-11-02 | Cypress Semiconductor Corporation | Programmable microcontroller architecture(mixed analog/digital) |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US10248604B2 (en) | 2000-10-26 | 2019-04-02 | Cypress Semiconductor Corporation | Microcontroller programmable system on a chip |
US10020810B2 (en) | 2000-10-26 | 2018-07-10 | Cypress Semiconductor Corporation | PSoC architecture |
US9843327B1 (en) | 2000-10-26 | 2017-12-12 | Cypress Semiconductor Corporation | PSOC architecture |
US9766650B2 (en) | 2000-10-26 | 2017-09-19 | Cypress Semiconductor Corporation | Microcontroller programmable system on a chip with programmable interconnect |
US8069428B1 (en) | 2001-10-24 | 2011-11-29 | Cypress Semiconductor Corporation | Techniques for generating microcontroller configuration information |
US8793635B1 (en) | 2001-10-24 | 2014-07-29 | Cypress Semiconductor Corporation | Techniques for generating microcontroller configuration information |
US10466980B2 (en) | 2001-10-24 | 2019-11-05 | Cypress Semiconductor Corporation | Techniques for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US10698662B2 (en) | 2001-11-15 | 2020-06-30 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US8533677B1 (en) | 2001-11-19 | 2013-09-10 | Cypress Semiconductor Corporation | Graphical user interface for dynamically reconfiguring a programmable device |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US8370791B2 (en) | 2001-11-19 | 2013-02-05 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US20080301619A1 (en) * | 2001-11-19 | 2008-12-04 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US8527949B1 (en) | 2001-11-19 | 2013-09-03 | Cypress Semiconductor Corporation | Graphical user interface for dynamically reconfiguring a programmable device |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US7893724B2 (en) | 2004-03-25 | 2011-02-22 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US20090066427A1 (en) * | 2005-02-04 | 2009-03-12 | Aaron Brennan | Poly-phase frequency synthesis oscillator |
US8085100B2 (en) | 2005-02-04 | 2011-12-27 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US8120408B1 (en) | 2005-05-05 | 2012-02-21 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US8717042B1 (en) | 2006-03-27 | 2014-05-06 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US20080312857A1 (en) * | 2006-03-27 | 2008-12-18 | Seguine Dennis R | Input/output multiplexer bus |
US20080263334A1 (en) * | 2007-04-17 | 2008-10-23 | Cypress Semiconductor Corp. | Dynamically configurable and re-configurable data path |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US9018979B2 (en) | 2007-04-17 | 2015-04-28 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US9325320B1 (en) | 2007-04-17 | 2016-04-26 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US9553588B2 (en) | 2007-04-17 | 2017-01-24 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US9564902B2 (en) * | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US10516397B2 (en) | 2007-04-17 | 2019-12-24 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US10826499B2 (en) | 2007-04-17 | 2020-11-03 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8476928B1 (en) | 2007-04-17 | 2013-07-02 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US20080297388A1 (en) * | 2007-04-17 | 2008-12-04 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US10097185B2 (en) | 2007-04-17 | 2018-10-09 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US20080288755A1 (en) * | 2007-04-17 | 2008-11-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US20100169607A1 (en) * | 2008-12-25 | 2010-07-01 | Fujitsu Microelectronics Limited | Reconfigurable circuit, its design method, and design apparatus |
US8539415B2 (en) * | 2008-12-25 | 2013-09-17 | Fujitsu Semiconductor Limited | Reconfigurable circuit, its design method, and design apparatus |
Also Published As
Publication number | Publication date |
---|---|
WO2001024030A2 (en) | 2001-04-05 |
US6662302B1 (en) | 2003-12-09 |
WO2001024030A3 (en) | 2002-03-28 |
US20040139311A1 (en) | 2004-07-15 |
AU7713700A (en) | 2001-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050066152A1 (en) | Method and apparatus for processing data in a reconfigurable manner | |
US6961841B2 (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US6023564A (en) | Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions | |
US6803787B1 (en) | State machine in a programmable logic device | |
US6457116B1 (en) | Method and apparatus for controlling contexts of multiple context processing elements in a network of multiple context processing elements | |
JP3636986B2 (en) | Semiconductor integrated circuit | |
US6278289B1 (en) | Content-addressable memory implemented using programmable logic | |
US5574930A (en) | Computer system and method using functional memory | |
US20020133688A1 (en) | SIMD/MIMD processing on a reconfigurable array | |
US5412785A (en) | Microprogrammed data processor which includes a microsequencer in which a next microaddress output of a microROM is connected to the or-plane of an entry PLA | |
JP3640350B2 (en) | Programmable memory built-in self-test combining microcode and finite state machine self-test | |
US20070271440A1 (en) | Computer processor architecture selectively using finite-state-machine for control code execution | |
US4115852A (en) | Microprogrammed controller | |
US4791551A (en) | Microprogrammable devices using transparent latch | |
US6658561B1 (en) | Hardware device for executing programmable instructions based upon micro-instructions | |
US20040236929A1 (en) | Logic circuit and program for executing thereon | |
US7290157B2 (en) | Configurable processor with main controller to increase activity of at least one of a plurality of processing units having local program counters | |
US6099585A (en) | System and method for streamlined execution of instructions | |
JPH02162422A (en) | Preference branch circuit | |
JPH1091430A (en) | Command decoding device | |
CN119536101B (en) | Multi-line Cheng Weima control circuit for chip | |
US20020133687A1 (en) | Facilitating automatic incrementing and/or decrementing of data pointers in a microcontroller | |
US6038659A (en) | Method for using read-only memory to generate controls for microprocessor | |
CA2515283C (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US6263417B1 (en) | Method of implementing vector operation using a processor chip which is provided with a vector unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MINDSPEED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GAREY, KENNETH E.;REEL/FRAME:015579/0613 Effective date: 20040714 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |