This invention relates generally to application specific integrated circuit (ASIC) devices, and more particularly to partial reconfiguration of ASIC devices such as field programmable gate array (FPGA) devices.
FPGA devices are becoming denser everyday. However, processing device technology is not keeping pace with the need for compiling Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) files into a bit file for loading onto today's increasingly dense FPGAs. Partial reconfiguration is a technique that enables the reconfiguration of FPGA hardware without requiring a reset. By providing a FPGA with reconfigurable blocks or modules, it enables the FPGA to continue processing during reconfiguration without interruptions, i.e., part of the FPGA may be reprogrammed with a new function while the remainder of the device continues to run. This allows hardware designs to have dynamically changing components, allowing FPGA resources to be efficiently allocated as processing needs change. However, prior attempts to support partial reconfiguration are awkward to implement and require a dedicated mapping of the individual module to the FPGA device, severely limiting modularity and replacement options. Special tools are required to accomplish these prior designs and I/O mapping limitations limit the distribution of clocks and other critical shared signals, thus requiring each newly reconfigured module to have the same I/O map and I/O functionality as the previous configuration.
Disclosed are systems and methods for partial reconfiguration of programmable and reconfigurable application specific integrated circuit (ASIC) devices including, but are not limited to, Field Programmable Gate Arrays (“FPGAs”) or other field programmable devices (“FPDs”) or programmable logic devices (“PLDs”). Using the disclosed systems and methods, an interconnection template may be provided that advantageously allows different types of interchangeable partial reconfiguration (IPR) blocks with standardized interfaces to be selectively and dynamically interconnected, disconnected, or interchanged in standardized fashion from communication with a packet router within the same ASIC device, which itself is employed to selectively and dynamically manage communication linkage between each IPR block and other internal circuitry (e.g., including other IPR blocks and/or non-reconfigurable modules) of the ASIC device using packet-ordered communications. The interconnection template may be made temporarily non-reconfigurable relative to the IPR blocks (e.g., such that the position of the template does not change during configuration and reconfiguration of the ASIC device with IPR blocks) or may be permanently non-reconfigurable (e.g., hardwired).
For example, when an IPR block is newly configured and introduced to the ASIC device circuitry, it may be dynamically interconnected to one or more packet routers and other existing circuitry of the same ASIC device using a standardized or “cloned” interface (IF) module of an interconnection template and packetized data transfer protocol that is implemented at a physical software layer, e.g., a physical layer equivalent or analogous to Open System Interconnection (OSI) network layer 1. Advantageously each standardized IF module may also be used to establish interconnection to other types of IPR blocks (e.g., in “lego” or adaptive interlocking fashion) such that the newly configured IPR block of a first type (e.g., FFT block) may replace a previous and different type IPR block (e.g., FIR filter block) at the same template location, and/or such that the newly configured IPR block may be later replaced at the same template location by a subsequent and different type IPR block, unlike different types of conventional PR blocks 102 of
In one exemplary embodiment, a relatively large hardware design may be mapped onto an array of multiple reconfigurable ASIC devices (e.g., FPGAs) and then dynamically and partially reconfigured “on-the-fly” in a “Lego-block” or adaptive-interlocking fashion while other portions of the same ASIC device circuitry continues to operate. As an example, the multiplier resources of a first IPR block used to handle a particular task (e.g., such as Fast Fourier Transform—FFT), may be dynamically substituted at the same template location with multiple resources of a second IPR block capable of performing the particular task in a faster or more efficient manner, e.g., to allow faster operation or to accommodate larger size transforms. As another example, a first IPR block configured to perform a first task (e.g., FFT operation) may be dynamically replaced at the same template location in a given reconfigurable ASIC device with a second and different IPR block configured to perform a second and different task (e.g., low pass filter operation) in real time while other processing modules or circuitry of the same given reconfigurable ASIC continue processing without interruption or need for recompilation. Advantageously, the interconnection template and packet router of the disclosed systems and methods may be implemented in a manner that reduces the amount of code and consequently required coding time relative to conventional partial reconfiguration schemes.
In a further exemplary embodiment, each IPR block may be pre-compiled and stored in memory to form a library of multiple available functions. This library may be accessed to allow a user to dynamically customize the ASIC application, e.g., without needing any knowledge of Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL). Any suitable methodology or configuration may be provide to allow a user to access the library and configure or reconfigure an ASIC device with IPR blocks, e.g., a Graphical User Interface (GUI) may be provided to program or re-program IPR block functions.
In one respect, disclosed herein is a method for partially reconfiguring a reconfigurable application specific integrated circuit (ASIC), including: providing a reconfigurable ASIC device; configuring the ASIC device with an interconnection template that includes at least one packet router coupled to one or more interface (IF) modules of physically-fixed location; providing the ASIC device with existing circuitry coupled to the packet router that is configured to execute one or more functions; and then dynamically reconfiguring the ASIC device by connecting a pre-compiled interchangeable partial reconfiguration (IPR) block to the physically-fixed location of at least one of the IF modules at the same time that other existing circuitry of an other portion of the ASIC device is executing and without re-compiling the other portion of the ASIC device.
In another respect, disclosed herein is a reconfigurable application specific integrated circuit (ASIC) device, including: an interconnection template that includes at least one packet router coupled to one or more interface (IF) modules of physically-fixed location; and existing circuitry coupled to the packet router that is configured to execute one or more functions; wherein the ASIC device is dynamically and partially reconfigurable by connection of a pre-compiled interchangeable partial reconfiguration (IPR) block to the physically-fixed location of at least one of the IF modules at the same time that other existing circuitry of an other portion of the ASIC device is executing and without re-compiling the other portion of the ASIC device.
In another respect, disclosed herein is a system for partially reconfiguring an application specific integrated circuit (ASIC) device, including: a computer processing system including non-volatile memory, the computer processing system being coupled to an ASIC device across a programming configuration interface; a library of stored multiple available precompiled interchangeable partial reconfiguration (IPR) blocks stored in the non-volatile memory; wherein the ASIC device includes an interconnection template that includes at least one packet router coupled to one or more interface (IF) modules of physically-fixed location, existing circuitry of the ASIC device being coupled to the packet router that is configured to execute one or more functions; and wherein the computer processing system is configured to dynamically reconfigure the ASIC device across the programming interface to connect a pre-compiled IPR block selected from the library connected at a physically-fixed location of at least one of the IF modules at the same time that other existing circuitry of an other portion of the ASIC device is executing and without re-compiling the other portion of the ASIC device.
As also shown in
In the exemplary embodiment of
Still referring to
To initially configure reconfigurable ASIC device 200 of
After loading the IPR blocks 202, data packets (e.g., PRISM data packets) transferred between a packet router 220 and each IPR block 202 only need to change their headers once from any previous IPR block destination code to the destination code of the newly configured IPR block 202. After interconnection template 300 is located onto reconfigurable ASIC device 200, one or more reconfigurable IPR blocks 202 may be loaded (e.g., via a suitable configuration interface) onto ASIC device 200 and connected to a corresponding IF module 210 as shown in
Returning to
In the configuration of
It will be understood that the configuration of
Also shown present in
Still referring to
The disclosed systems and methods may be advantageously implemented for a variety of partial reconfiguration computational tasks. Further information on an example of such tasks may be found in concurrently filed U.S. patent application Ser. No. 12/655,182 entitled “Multi-Phased Computation Reconfiguration” by Kusmanoff, et al., which is filed on the same day as the present patent application and which is incorporated herein by reference in its entirety.
While the invention may be adaptable to various modifications and alternative forms, specific embodiments have been shown by way of example and described herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims. Moreover, the different aspects of the disclosed systems and methods may be utilized in various combinations and/or independently. Thus the invention is not limited to only those combinations shown herein, but rather may include other combinations.
Number | Name | Date | Kind |
---|---|---|---|
4528658 | Israel | Jul 1985 | A |
5361373 | Gilson | Nov 1994 | A |
5737235 | Kean et al. | Apr 1998 | A |
5802290 | Casselman | Sep 1998 | A |
5838167 | Erickson et al. | Nov 1998 | A |
5931959 | Kwiat | Aug 1999 | A |
5941988 | Bhagwat et al. | Aug 1999 | A |
5946219 | Mason et al. | Aug 1999 | A |
5953372 | Virzi | Sep 1999 | A |
6020755 | Andrews et al. | Feb 2000 | A |
6075380 | Lane | Jun 2000 | A |
6172927 | Taylor | Jan 2001 | B1 |
6201829 | Schneider | Mar 2001 | B1 |
6233704 | Scott et al. | May 2001 | B1 |
6259693 | Ganmukhi et al. | Jul 2001 | B1 |
6292923 | Genrich et al. | Sep 2001 | B1 |
6333641 | Wasson | Dec 2001 | B1 |
6339819 | Huppenthal et al. | Jan 2002 | B1 |
6381238 | Hluchyj | Apr 2002 | B1 |
6385236 | Chen | May 2002 | B1 |
6389379 | Lin et al. | May 2002 | B1 |
6421251 | Lin | Jul 2002 | B1 |
6496291 | Raj et al. | Dec 2002 | B1 |
6496505 | La Porta et al. | Dec 2002 | B2 |
6614267 | Taguchi | Sep 2003 | B2 |
6617877 | Cory et al. | Sep 2003 | B1 |
6651225 | Lin et al. | Nov 2003 | B1 |
6668361 | Bailis et al. | Dec 2003 | B2 |
6721313 | Van Duyne | Apr 2004 | B1 |
6754881 | Kuhlmann et al. | Jun 2004 | B2 |
6873180 | Bentz | Mar 2005 | B2 |
6888376 | Venkata et al. | May 2005 | B1 |
6901072 | Wong | May 2005 | B1 |
6934763 | Kubota et al. | Aug 2005 | B2 |
6965571 | Webber | Nov 2005 | B2 |
6993032 | Dammann et al. | Jan 2006 | B1 |
7003585 | Phong et al. | Feb 2006 | B2 |
7020147 | Amadon et al. | Mar 2006 | B1 |
7035228 | Baumer | Apr 2006 | B2 |
7111110 | Pedersen | Sep 2006 | B1 |
7137048 | Zerbe et al. | Nov 2006 | B2 |
7188283 | Shafer et al. | Mar 2007 | B1 |
7224184 | Levi et al. | May 2007 | B1 |
7260650 | Lueckenhoff | Aug 2007 | B1 |
7389487 | Chan et al. | Jun 2008 | B1 |
7404170 | Schott et al. | Jul 2008 | B2 |
7415331 | Dapp et al. | Aug 2008 | B2 |
7426599 | Yancey et al. | Sep 2008 | B2 |
7439763 | Kavipurapu et al. | Oct 2008 | B1 |
7444454 | Yancey et al. | Oct 2008 | B2 |
7453899 | Vaida et al. | Nov 2008 | B1 |
7506297 | Mukherjee et al. | Mar 2009 | B2 |
7518396 | Kondapalli et al. | Apr 2009 | B1 |
7577726 | Conard et al. | Aug 2009 | B1 |
20020021680 | Chen | Feb 2002 | A1 |
20020057657 | La Porta et al. | May 2002 | A1 |
20020059274 | Hartsell et al. | May 2002 | A1 |
20020095400 | Johnson et al. | Jul 2002 | A1 |
20030009585 | Antoine et al. | Jan 2003 | A1 |
20030026260 | Ogasawara et al. | Feb 2003 | A1 |
20030167340 | Jonsson | Sep 2003 | A1 |
20040085902 | Miller et al. | May 2004 | A1 |
20040131072 | Khan et al. | Jul 2004 | A1 |
20040156368 | Barri et al. | Aug 2004 | A1 |
20040158784 | Abuhamdeh et al. | Aug 2004 | A1 |
20040240468 | Chin et al. | Dec 2004 | A1 |
20040249964 | Mougel | Dec 2004 | A1 |
20050044439 | Shatas et al. | Feb 2005 | A1 |
20050169311 | Millet et al. | Aug 2005 | A1 |
20050175018 | Wong | Aug 2005 | A1 |
20050183042 | Vogel et al. | Aug 2005 | A1 |
20050242834 | Vadi et al. | Nov 2005 | A1 |
20050248364 | Vadi et al. | Nov 2005 | A1 |
20060002386 | Yik et al. | Jan 2006 | A1 |
20070101242 | Yancey et al. | May 2007 | A1 |
20070109105 | Ohno et al. | May 2007 | A1 |
20070194807 | Reblewski et al. | Aug 2007 | A1 |
20070276959 | Yancey et al. | Nov 2007 | A1 |
20080117908 | Kuo et al. | May 2008 | A1 |
20090072858 | D'Souza et al. | Mar 2009 | A1 |
20110025376 | Grittke et al. | Feb 2011 | A1 |
20110154012 | Kusmanoff et al. | Jun 2011 | A1 |
Number | Date | Country |
---|---|---|
2377138 | Dec 2002 | GB |
Entry |
---|
Laxdal, “ELEC 563 Project Reconfigurable Computers”, http://www.ece.uvic.ca/˜elaxdal/Elec563/reconfigurable—computers.html; printed from the Internet Dec. 19, 2003, Dec. 2, 1999, 10 pgs. |
“PCI/DSP-4 Complete Channels of Digital Acoustic Emission Data Acquisition on a Single Board”, http://www.pacndt.com/products/Multichannel/pcidsp.html, printed from the Internet Dec. 19, 2003, 3 pgs. |
Zaiq Technologies, “Innovation: Methodology Briefs”, http://www.zaiqtech.com/innovation/m—fpga.html, printed from the Internet Jan. 15, 2004, 12 pgs. |
Hardt et al, “Flysig: Dataflow Oriented Delay-Insensitive Processor for Rapid Prototyping of Signal Processing”, (obtained from Internet Dec. 2003), 6 pgs. |
Chang et al., “Evaluation of Large Matrix Operations on a Reconfigurable Computing Platform for High Performance Scientific Computations,” (obtained from Internet Dec. 2003), 10 pgs. |
Altke, “FPGA Configuration Guidelines,” XAPP, 090 Nov. 24, 1997, Version 1.1, pp. 31-38. |
“XC18V00 Series Of In-System Programmable Configuration PROMs”, Xilinx Product Specification, DS026 (v.3.0), Nov. 12, 2001, 19 pages. |
Thacker, “System ACE Technology: Configuration Manager Breakthrough”, New Technology, FPGA Configuration, Xcell Journal, Summer 2001, pp. 52-55. |
“System ACE MPM Solution”, Xilinx Product Specification, DS087 (v1.0) Sep. 25, 2001, 29 pgs. |
“RapidIO™: An Embedded System Component Network Architecture”, Architecture and Systems Platforms, Feb. 22, 2000, 25 pgs. |
“Raceway Internlink Functional Specification”, Mercury Computer Systems, Inc., Nov. 8, 2000, 118 pgs. |
“[XMC-3310] High Speed Transceiver ePMC Module”, Spectrum Signal Processing, http://www.spectrumsignal.com/Products/—Datasheets/XMC-3310—datasheet.asp, (©2002-2004), 5 pgs. |
“XMC-3310 High Speed Transceiver ePMC Module”, Spectrum Signal Processing, Rev. May, 2004, 4 pgs. |
RocketIO™Transceiver User Guide, Xilinx, UG024 (v2.3) Feb. 24, 2004, 152 pgs. |
“The FPGA Systems Connectivity Tool”, Product Brief, Nallatech, DIMEtalk 2.1, Feb. 2004, pp. 1-8. |
B. Hall, “BTeV Front End Readout & Links”, BTEV Co., Aug. 17, 2000, 11 pgs. |
Irwin, “Usage Models for Multi-Gigabit Serial Transceivers”, Xilinx, xilinix.com, White Paper, WP157 (v1.0), Mar. 15, 2002, 10 pgs. |
Campenhout, “Computing Structures and Optical Interconnect: Friends or Foes?”, Department of Electronics and Information Systems, Ghent University, Obtained from Internet Oct. 8, 2006, 11 pgs. |
E. Hazen, “HCAL HO Trigger Link”, Optical SLB-HTR Interface Specification, May 24, 2006, 4 pgs. |
G. Russell, “Analysis and Modelling of Optically Interconnected Computing Systems”, School of Engineering and Physical Sciences, Heriot-Watt University, May 2004, 170 pgs. |
Morris et al., “Pipelined Datapath for an IEEE-754 64-Bit Floating-Point Jacobi Solver”, Sep. 2005, 2 pgs. |
Zhuo et al., “Sparse Matrix-Vector Multiplication on FPGAs”, FPGA, Feb. 20-22, 2005, 12 pgs. |
Fithian et al., “Iterative Matrix Equation Solver for a Reconfigurable FPGA-Based Hypercomputer”, Sep. 2002, 14 pgs. |
Kusmanoff et al., “Multi-Phased Computational Reconfiguration”, U.S. Appl. No. 12/655,182, filed Dec. 23, 2009; 28 pgs. |
Number | Date | Country | |
---|---|---|---|
20110153981 A1 | Jun 2011 | US |