A method and system for the rapid and precise configuration of a bank of logic in a configurable system on a chip. The configuration memory array is partitioned into a plurality banks. configuration circuitry is implemented for each bank. This allows for the configuration of one or more banks while the other banks remain operable.
|
1. A method, implemented on a configurable-system-on-chip integrated circuit, the method comprising:
partitioning an array of system addressable configuration memory cells into a plurality of banks, the partitioning determined based on the position of logic functions; implementing configuration circuitry for each bank; and configuring at least one bank such that remaining banks are operable.
6. An apparatus, implemented on a configurable system on a chip, comprising:
means for partitioning an array of system addressable configuration memory cells of a configurable system on a chip into a plurality of banks, the partitioning determined based on the position of logic functions; means for implementing configuration circuitry for each bank; and means for configuring at least one bank such that remaining banks are operable.
16. A method, implemented on a configurable-system-on-chip integrated circuit, the method comprising:
partitioning an array of system addressable configuration memory cells into a plurality of banks; implementing configuration circuitry for each bank; and configuring at least one bank such that remaining banks are operable, the at least one bank determined by the intersection of a global row select signal and a global column select signal.
11. A machine-readable medium that provides executable instructions, which when executed by a digital processing system, cause the set of processors to perform a method comprising:
configuring at least one bank of a plurality of banks comprising a partitioned array of system addressable configuration memory, the partitioned array partitioned based on the position of logic functions; implementing configuration circuitry for each bank, such that remaining banks are operable.
17. An apparatus, implemented on a configurable system on a chip, comprising:
means for partitioning an array of system addressable configuration memory cells of a configurable system on a chip into a plurality of banks; means for implementing configuration circuitry for each bank; and means for configuring at least one bank such that remaining banks are operable, the at least one bank is determined by the intersection of a global row select command and a global column select command.
18. A machine-readable medium that provides executable instructions, which when executed by a digital processing system, cause the set of processors to perform a method comprising:
configuring at least one bank of a plurality of banks, the at least one bank determined by an address decoder associated therewith, the plurality of banks comprising a partitioned-array of system addressable configuration memory, the partitioned array partitioned based on the position of logic functions; and implementing configuration circuitry for each bank, such that remaining banks are operable.
2. The method of
3. The method of
4. The method of
5. The method of
7. The apparatus of
8. The apparatus of
9. The apparatus of
10. The apparatus of
12. The machine-readable medium of
13. The machine-readable medium of
14. The machine-readable medium of
15. The machine-readable medium of
|
The present invention relates generally to the configuration of programmable logic in a configurable system on a chip, and more specifically to a system and method for the configuration, reconfiguration, and readback of a portion of the programmable logic array.
A recent development in microelectronics is the configurable system on a chip (CSoC).
A user may wish to reconfigure a portion of the user logic to provide a different functionality. For example, a user may wish to reconfigure a UART as something else or simply change the baud rate or the parity bit of the UART. To do this the entire CSL is deactivated, the reconfiguration is completed, and the CSL is reactivated. During the time the CSL is deactivated, none of the functionality implemented through the user logic is available.
A method and system are described for configuring the programmable logic of a configurable system on a chip. The array of system addressable configuration memory cells is partitioned into a plurality of banks. Configuration circuitry is implemented for each bank. While one or more of the banks is configured the other banks remain operable.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
An embodiment of the present invention will provide a more efficient method of reading from or writing to configuration memory in a CSoC. In one embodiment of the present invention the configuration memory is segmented into banks. Each bank is independently accessible and programmable. The independent accessibility allows for dynamic run-time partial reconfiguration without disrupting the operation of the remainder of the system.
An intended advantage of one embodiment of the present invention is to allow the reconfiguration of some programmable functions of a CSoC while those functions not being reconfigured remain operable. Another intended advantage of one embodiment of the present invention is to improve the reliability of control signals by reducing the length of select lines and data lines to the configuration memory of a CSoC. Another intended advantage of one embodiment of the present invention is to increase the access speed of the configuration circuitry of a CSoC by limiting the critical circuitry to within a bank boundary.
The critical circuits and timing requirements of the configuration circuitry are typically internal. Therefore, internally, the configuration circuitry 322, 324, 326, and 328 is contained within each bank 321, 323, 325, and 327 respectively. However, externally, the configuration circuitry 322, 324, 326, and 328 is connected together to allow control from a common configuration control circuitry over CSI bus 110. Alternatively, there could be a local configuration control circuitry for each bank. The local controller could interpret commands from a master controller and issue local control signals within each bus.
Because each bank of programmable logic has independent access to the processor, it is no longer necessary to deactivate the entire CSL when reconfiguring within one bank. For example, to partially configure one bank in a multi-bank array, global address decoders are used to generate a global row select and a global column select. The intersection of the generated row and column selects define the bank to be configured. Only the memory cells within the defined bank are altered. In an alternative embodiment a bank is selected for configuration through the use of address decoders within each bank that determine if the address range (addresses to be configured) are within the bank. There are many ways to ensure that the control signals from the CSI bus 110 only affect the behavior of a particular bank or group of banks and are masked at all other banks.
At operation 410 an CSoC designer determines which of the required configuration circuitry can be shared between banks, and which banks can share which configuration circuitry. As discussed below in reference to
At operation 415 the configuration circuitry that cannot be shared is implemented locally for each bank. For example, when a bank is to be configured it is first deactivated. If the deactivation control signal is shared between banks, all banks sharing the signal will be deactivated (i.e., the functionality of the banks would be inoperable). This would negate the benefit of being able to configure one bank while having remaining banks operable.
There are many ways of implementing a deactivation circuit.
Each bank is capable of generating its own match signal. The match signal 410A together with the activate2 signal 415A is used to selectively deactivate banks during partial reconfiguration. When activate1 is logic high and activate2 is logic low, the state of each bank is determined by the state of each bank's match signal. If a bank's match signal is logic high then the bank is deactivated. If the bank's match signal is logic low then the bank stays activated. Since each bank has its own match signal 410A, any of the banks may be deactivated while the others remain activated.
When activate 1 is logic high and activate2 is logic high, all banks are active regardless of the state of the match signal. This is the state used when partial reconfiguration is not being performed.
This partitioning of the configuration memory array into separate banks that can be independently deactivated, allows one or more banks to be configured while all others remain operable. As discussed above, the configuration memory of a CSoC is system addressable memory so no dedicated hardware is necessary to configure the configurable memory of CSL 120. The CPU 105 simply writes the configuration data to the appropriate configuration memory location. In an alternative embodiment, the bank is configured through use of a state machine, implemented at each bank, that runs configuration instructions from the CSI bus 110.
In accordance with the present invention when one bank is deactivated for configuration the remaining banks may be operable. For example, two UARTs may be implemented in the CSoC in two different banks. It is possible to keep one UART running while the other is reconfigured as something else.
The programmable memory array may be partitioned in as many banks as a CSoC designer desires. Each bank contains its own configuration circuitry that contains row and column select circuitry, read/write circuitry, as well as activation/deactivation circuitry among others. The expense of implementing this circuitry for many banks presents a tradeoff to the system designer as to how much of the configuration circuitry should be localized for each bank.
In an alternative embodiment some of the control circuitry is shared between banks.
The process of the present invention may be implemented through use of a machine-readable medium that includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical, or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.) etc.
It should be understood that the method and apparatus of the invention can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting on the invention.
Lee, Fung Fung, Yee, Wilson, Cheung, Edmond
Patent | Priority | Assignee | Title |
6889266, | Sep 05 2001 | Xilinx, Inc | Method for delivering packet boundary or other metadata to and from a device using direct memory controller |
7103682, | Dec 23 2002 | Round Rock Research, LLC | Apparatus and methods for transmitting data to a device having distributed configuration storage |
7152123, | Dec 23 2002 | Round Rock Research, LLC | Distributed configuration storage |
7277965, | Dec 23 2002 | Round Rock Research, LLC | Apparatus and methods for the automated creation of distributed configuration storage |
7370122, | Dec 23 2002 | Round Rock Research, LLC | Distributed configuration storage |
7420874, | Apr 06 2005 | Rambus Inc | Integrated circuit memory device, system and method having interleaved row and column control |
7595655, | Jun 27 2007 | Altera Corporation | Retrieving data from a configurable IC |
7652498, | Jun 27 2007 | Altera Corporation | Integrated circuit with delay selecting input selection circuitry |
7696780, | Jul 15 2005 | TAHOE RESEARCH, LTD | Runtime loading of configuration data in a configurable IC |
7788478, | Jul 15 2005 | TAHOE RESEARCH, LTD | Accessing multiple user states concurrently in a configurable IC |
7839162, | Jun 27 2007 | Altera Corporation | Configurable IC with deskewing circuits |
7940598, | Apr 06 2005 | Rambus Inc. | Integrated circuit memory device, system and method having interleaved row and column control |
7973558, | Jun 27 2007 | Altera Corporation | Integrated circuit with delay selecting input selection circuitry |
8067960, | Jul 15 2005 | TAHOE RESEARCH, LTD | Runtime loading of configuration data in a configurable IC |
8069425, | Jun 27 2007 | Altera Corporation | Translating a user design in a configurable IC for debugging the user design |
8072234, | Sep 21 2009 | Altera Corporation | Micro-granular delay testing of configurable ICs |
8115510, | Jul 15 2005 | TAHOE RESEARCH, LTD | Configuration network for an IC |
8143915, | Jun 27 2007 | Altera Corporation | IC with deskewing circuits |
8295428, | Aug 04 2008 | TAHOE RESEARCH, LTD | Trigger circuits and event counters for an IC |
8412990, | Jun 27 2007 | Altera Corporation | Dynamically tracking data values in a configurable IC |
8429579, | Jun 27 2007 | Altera Corporation | Translating a user design in a configurable IC for debugging the user design |
8433891, | Jul 15 2005 | TAHOE RESEARCH, LTD | Accessing multiple user states concurrently in a configurable IC |
8479069, | Sep 19 2007 | Altera Corporation | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
8525548, | Aug 04 2008 | TAHOE RESEARCH, LTD | Trigger circuits and event counters for an IC |
8598909, | Jun 27 2007 | Altera Corporation | IC with deskewing circuits |
8698518, | Nov 08 2004 | Altera Corporation | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
8755484, | Aug 04 2008 | TAHOE RESEARCH, LTD | Trigger circuits and event counters for an IC |
8760193, | Jul 01 2011 | Altera Corporation | Configurable storage elements |
8760194, | Jul 15 2005 | TAHOE RESEARCH, LTD | Runtime loading of configuration data in a configurable IC |
8806404, | Apr 02 2010 | Altera Corporation | System and method for reducing reconfiguration power usage |
8847622, | Sep 21 2009 | Altera Corporation | Micro-granular delay testing of configurable ICs |
8901956, | Sep 06 2007 | Altera Corporation | Configuration context switcher |
8912820, | Apr 02 2010 | Altera Corporation | System and method for reducing reconfiguration power |
8990651, | Sep 19 2007 | Altera Corporation | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
9048833, | Nov 08 2004 | Altera Corporation | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
9143128, | Apr 02 2010 | Altera Corporation | System and method for reducing reconfiguration power usage |
9154134, | Jul 01 2011 | Altera Corporation | Configurable storage elements |
9583190, | Nov 11 2011 | TAHOE RESEARCH, LTD | Content addressable memory in integrated circuit |
Patent | Priority | Assignee | Title |
5175836, | May 14 1987 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Automatic sizing memory system with multiplexed configuration signals at memory modules |
5307314, | Jul 15 1991 | Round Rock Research, LLC | Split read/write dynamic random access memory |
6078542, | Jun 19 1998 | DRAM MEMORY TECHNOLOGIES LLC | Semiconductor memory device implementing multi-bank configuration with reduced number of signal lines |
6266751, | Nov 14 1997 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Continuously sliding window method and apparatus for sharing single-ported memory banks between two agents |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 21 2000 | Triscend Corporation | (assignment on the face of the patent) | / | |||
Feb 23 2001 | YEE, WILSON | TRISCEND CORPORATION A DELAWARE CORPORATION | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011606 | /0981 | |
Feb 23 2001 | LEE, FUNG FUNG | TRISCEND CORPORATION A DELAWARE CORPORATION | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011606 | /0981 | |
Feb 23 2001 | CHEUNG, EDMOND | TRISCEND CORPORATION A DELAWARE CORPORATION | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011606 | /0981 | |
Mar 05 2004 | Triscend Corporation | Xilinx, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014634 | /0065 |
Date | Maintenance Fee Events |
Mar 30 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
May 08 2006 | ASPN: Payor Number Assigned. |
Apr 01 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Apr 01 2014 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 01 2005 | 4 years fee payment window open |
Apr 01 2006 | 6 months grace period start (w surcharge) |
Oct 01 2006 | patent expiry (for year 4) |
Oct 01 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 01 2009 | 8 years fee payment window open |
Apr 01 2010 | 6 months grace period start (w surcharge) |
Oct 01 2010 | patent expiry (for year 8) |
Oct 01 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 01 2013 | 12 years fee payment window open |
Apr 01 2014 | 6 months grace period start (w surcharge) |
Oct 01 2014 | patent expiry (for year 12) |
Oct 01 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |