Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device
First Claim
1. A method of updating configuration information in a programmable hardware logic device during operation of said logic device, said logic device having means for receiving first data and means for sending second data under control of a local or remote control means, said method comprising the steps of:
- using an external non-volatile memory, said memory organized into a plurality of parts, each of said parts comprising one or more sections, each of said sections comprising a plurality of bits, and wherein modification of any of said bits in a selected section requires flushing all of said plurality of bits in said selected section to a same binary value;
storing a plurality of configuration data files in said memory, wherein one of said configuration data files is characterized as a safe configuration data file;
using an external device for controlling said memory and for transferring data between said memory and said logic device;
storing a flag in one of said parts of said memory, wherein said flag is comprised of one or more of said plurality of bits and identifies one of said plurality of configuration data files;
initializing said memory to store said safe configuration data file;
initializing said flag to identify said safe configuration data file;
receiving from said control means a demand for loading, and in response to said demand, using said flag to locate one of said plurality of configuration data files and sending said located configuration data file to said logic device;
receiving said located configuration data file in said logic device under control of said control means;
updating said configuration information after receiving said located configuration data file;
selectively modifying said flag to identify said new configuration data file as said safe configuration data file after said new configuration data file has been safely loaded;
sending a new configuration data file from said logic device to said external device under control of said control means; and
receiving said new file from said logic device, and storing said new file as one of said plurality of configuration data files in one of said parts, wherein said one part is different from the part in which said safe configuration data file is stored.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention discloses a method and an apparatus for in-line and on-site updating of Field Programmable Gate Arrays with remote loaded configuration data files. Flash EEPROMs which are used because of their non-volatile memories and their high density, are storing more than one configuration data file. The memories are divided in more than one part, each part of the memory for storing one configuration data file. One part of the memory also contains a flag identifying the currently loaded configuration data file. The Flash EPROM'"'"'s bits being set to one same binary value before any writing operation, including the update of the configuration data file containing the flag. The setting of the bits to said binary value always identifies a valid other configuration data file in order to insure a correct re-loading of the FPGAs in case of reception of an unexpected event leading to an initialization.
118 Citations
13 Claims
-
1. A method of updating configuration information in a programmable hardware logic device during operation of said logic device, said logic device having means for receiving first data and means for sending second data under control of a local or remote control means, said method comprising the steps of:
-
using an external non-volatile memory, said memory organized into a plurality of parts, each of said parts comprising one or more sections, each of said sections comprising a plurality of bits, and wherein modification of any of said bits in a selected section requires flushing all of said plurality of bits in said selected section to a same binary value; storing a plurality of configuration data files in said memory, wherein one of said configuration data files is characterized as a safe configuration data file; using an external device for controlling said memory and for transferring data between said memory and said logic device; storing a flag in one of said parts of said memory, wherein said flag is comprised of one or more of said plurality of bits and identifies one of said plurality of configuration data files; initializing said memory to store said safe configuration data file; initializing said flag to identify said safe configuration data file; receiving from said control means a demand for loading, and in response to said demand, using said flag to locate one of said plurality of configuration data files and sending said located configuration data file to said logic device; receiving said located configuration data file in said logic device under control of said control means; updating said configuration information after receiving said located configuration data file; selectively modifying said flag to identify said new configuration data file as said safe configuration data file after said new configuration data file has been safely loaded; sending a new configuration data file from said logic device to said external device under control of said control means; and receiving said new file from said logic device, and storing said new file as one of said plurality of configuration data files in one of said parts, wherein said one part is different from the part in which said safe configuration data file is stored. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for updating configuration information in a programmable hardware logic device during operation of said logic device, comprising:
-
an external non-volatile memory, said memory organized into a plurality of parts, each of said parts comprising one or more sections, each of said sections comprising a plurality of bits, and wherein modification of any of said bits in a selected section requires flushing all of said plurality of bits in said selected section to a same binary value; a plurality of configuration data files stored in said memory, wherein one of said configuration data files is characterized as a safe configuration data file; an external device for controlling said memory and for transferring data between said memory and said logic device; a flag stored in one of said parts of said memory, wherein said flag is comprised of one or more of said plurality of bits and identifies one of said plurality of configuration data files; means in said external device for receiving a demand for loading from a local or remote control means, and in response to said demand, using said flag to locate one of said plurality of configuration data files and sending said located configuration data file to said logic device; means in said logic device for receiving said located configuration data file under control of said control means; means in said logic device for updating said configuration information after receiving said located configuration data file; means in said logic device for sending a new configuration data file to said external device under control of said control means; means in said external device for receiving said new file from said logic device, and storing said new file as one of said plurality of configuration data files in one of said parts, wherein said one part is different from the part in which said safe configuration data file is stored; means for initializing said memory to store said safe configuration data file; means for initializing said flag to identify said safe configuration data file; and means for selectively modifying said flag to identify said new configuration data file as said safe configuration data file. - View Dependent Claims (11, 12, 13)
-
Specification