Fail-safe method of updating a multiple FPGA configuration data storage system
First Claim
1. A reconfigurable system comprising:
- a computer readable memory divided into sectors and including a directory, wherein the directory includes a plurality of pointers that reference the sectors, respectively;
a programmable logic device (PLD);
a structure for identifying a default pointer in the directory; and
a circuit for programming the PLD with data from a part of the memory identified by the default pointer;
wherein the circuit is configured to program the PLD with the data from the part of the memory identified by the default pointer if an error occurs when storing an alternative configuration in the memory.
1 Assignment
0 Petitions
Accused Products
Abstract
Structure and method for updating a system that includes a memory and a programmable logic device (PLD) retains a default PLD configuration in the memory while a new configuration is being stored in the memory, and thus protect the system from failure in case an interruption occurs while the new configuration is being stored. If a power failure interrupts the storing process, the default PLD configuration is still in the memory and can be re-loaded into the PLD and used when the system is re-started to make a further attempt at storing the new configuration. Methods are also disclosed for storing in the memory a configuration for a new PLD before the original PLD is replaced so that system hardware can be updated with minimum effort and disruption, and for dividing a directory structure into protected and unprotected regions.
33 Citations
24 Claims
-
1. A reconfigurable system comprising:
-
a computer readable memory divided into sectors and including a directory, wherein the directory includes a plurality of pointers that reference the sectors, respectively; a programmable logic device (PLD); a structure for identifying a default pointer in the directory; and a circuit for programming the PLD with data from a part of the memory identified by the default pointer; wherein the circuit is configured to program the PLD with the data from the part of the memory identified by the default pointer if an error occurs when storing an alternative configuration in the memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for programming a programmable logic device (PLD) comprising:
-
storing a directory in a memory, the directory including a plurality of pointers that reference a plurality of sectors of the memory, respectively; storing default data in a first sector, the first sector being any of the plurality of sectors of the memory; setting a first one of the pointers in the directory to reference the default data in the first sector; programming the PLD with the default data referenced by the first one of the pointers; storing alternative data in a second sector, the second sector being any of the sectors other than the first sector of the memory; if storing the alternative data was successful, setting a second one of the pointers in the directory to point to the alternative data in the second sector; and programming the PLD with the alternative data referenced by the second one of the pointers; if storing the alternative data was not successful, programming the PLD with the default data referenced by the first one of the pointers. - View Dependent Claims (14)
-
-
15. A computer memory structure comprising:
-
at least one region of memory for storing a default PLD configuration; at least one alternative region of memory for storing an alternative PLD configuration; a region of memory storing a directory; at least one region of memory storing a plurality of information blocks; wherein the directory comprises a plurality of pointers to a corresponding plurality of information blocks and each of the information blocks points to one of the regions of memory for storing a PLD configuration; wherein the at least one region of memory storing a plurality of information blocks comprises at least two regions of memory, one of which stores a default information block and one of which stores alternative information blocks; and wherein the region of memory storing a directory, the region of memory for storing a default PLD configuration, and the region of memory which stores a default information block are protected from being overwritten. - View Dependent Claims (16, 17)
-
-
18. A method of updating an electronic system having an original programmable logic device (PLD) and a memory, the method comprising:
-
storing an alternative PLD configuration for an alternative PLD in the memory; confirming that the alternative PLD configuration was stored correctly; replacing the original PLD with an alternative PLD; and configuring the alternative PLD with the alternative PLD configuration; wherein replacing the original PLD with an alternative PLD comprises; removing the original PLD from the system; and placing an alternative PLD in a position occupied by the original PLD in the system; and wherein confirming that the alternative PLD configuration was stored correctly comprises; if the alternative PLD configuration was stored correctly, indicating that the alternative PLD configuration was stored correctly; if the alternative PLD configuration was not stored correctly, assuring that the default configuration is loaded into the old PLD, and again storing the alternative PLD configuration in the memory; and repeating the steps of indicating assuring and again storing until the alternative PLD configuration is stored correctly. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification