Patent Publication Number: US-9405612-B2

Title: Fault repair apparatus, fault repair method and storage medium storing fault repair program

Description:
This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2013-039192, filed on Feb. 28, 2013, the disclosure of which is incorporated herein in its entirety by reference. 
     TECHNICAL FIELD 
     The present invention relates to a fault repair apparatus, a fault repair method and a fault repair program which detect and repair faults of an integrated circuit of which logic operation is defined by configuration data. 
     BACKGROUND ART 
     Since it is possible to update logic functions also after product shipment, a programmable integrated circuit such as an FPGA (Field Programmable Gate Array) is used in various computer systems. The FPGA includes a configuration data storage memory which stores configuration data to define logic operation and a built-in circuit which executes the logic operation defined by the configuration data. 
     In case, a fault, for example, such as bit flip by a soft error occurs in the configuration data storage memory, since contents of the configuration data change, the FPGA malfunctions. In recent years, with the advance of capacity increase in the configuration data storage memory, occurrences of faults about the FPGA due to a soft error and so on are increasing. From such a background, a technology to avoid or repair a fault in the FPGA is growing in importance. 
     As a technology to cope with such the fault in the FPGA, an apparatus which divides the FPGA into a plurality of physical layout areas, and for each layout area, memorizes in advance the configuration data for realizing target logic function not using the layout area concerned is disclosed in Japanese Unexamined Patent Application Publication No. 1997-62528. When a fault in the FPGA is detected, this apparatus specifies a layout area where the fault occurred, makes the layout area where the fault occurred to an unused state by revising the original configuration data to the configuration data which does not use the layout area concerned, and continues operation of the system. 
     Also, in Japanese Unexamined Patent Application Publication No. 2008-15965, an apparatus which, in case a fault in the FPGA is detected, by comparing the configuration data about the FPGA with an expected value, determines whether the fault is caused by a soft error in the configuration data storage memory is disclosed. In case the fault in the FPGA is caused by the soft error in the configuration data storage memory, this apparatus repairs the fault in the FPGA by writing the expected value in the configuration data storage memory. 
     SUMMARY 
     There are various levels of faults in the FPGA. For example, in case it is a fault caused by a soft error in the configuration data storage memory as mentioned above, by correcting an error part where bit flip occurred to the original correct data, it is possible to repair the fault. 
     In order to detect and correct the error part in the configuration data where bit flip occurred, it is necessary to confirm whether or not the configuration data agrees with the expected value. As for the FPGAs of which capacity increase in the configuration data storage memory has advanced in recent years, it becomes a problem that processing to confirm whether or not the configuration data agrees with the expected value takes time. However, Japanese Unexamined Patent Application Publication No. 1997-62528 and Japanese Unexamined Patent Application Publication No. 2008-15965 mentioned above do not refer in particular to the technology for solving this problem. 
     One of the objects of the present invention is to provide a fault repair apparatus, a fault repair method and a fault repair program which solved the problem mentioned above. 
     A fault repair apparatus according to an exemplary aspect of the present invention includes, a detection unit that detects a fault in the integrated circuit being equipped with a memory capable of being updated and storing configuration data, and a circuit element whose logic operation is defined by the configuration data, and outputs fault information; a memory unit that memorizes a fault area specification table which correlates whether or not a description in the configuration data related to the fault information exists in any of a plurality of memory areas which the memory includes to identification information capable of identifying the memory area; a specification unit that specifies a fault occurring memory area which is the memory area in which the fault occurred from the fault information and the fault area specification table; and a correction unit that, about the configuration data stored in the fault occurring memory area, and on the basis of error detection and correction code data about the configuration data concerned, detects and corrects error data which does not agree with an expected value. 
     A fault repair method according to an exemplary aspect of the present invention includes, by an information processing apparatus, detecting a fault in the integrated circuit being equipped with a memory capable of being updated and storing configuration data, and a circuit element whose logic operation is defined by the configuration data, and outputting fault information; by the information processing apparatus, memorizing a fault area specification table which correlates whether or not a description in the configuration data related to the fault information exists in any of a plurality of memory areas which the memory includes to identification information capable of identifying the memory area; by the information processing apparatus, specifying a fault occurring memory area which is the memory area in which the fault occurred from the fault information and the fault area specification table; and by the information processing apparatus, about the configuration data stored in the fault occurring memory area, and on the basis of error detection and correction code data about the configuration data concerned, detecting and correcting error data which does not agree with an expected value. 
     A non-transitory computer-readable medium according to an exemplary aspect of the present invention stores a computer program causing a computer to realize a detection function that detects a fault in the integrated circuit being equipped with a memory capable of being updated and storing configuration data, and a circuit element whose logic operation is defined by the configuration data, and outputs fault information; a memory function that memorizes a fault area specification table which correlates whether or not a description in the configuration data related to the fault information exists in any of a plurality of memory areas which the memory includes to identification information capable of identifying the memory area; a specification function that specifies a fault occurring memory area which is the memory area in which the fault occurred from the fault information and the fault area specification table; and a correction function that, about the configuration data stored in the fault occurring memory area, and on the basis of error detection and correction code data about the configuration data concerned, detects and corrects error data which does not agree with an expected value. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Exemplary features and advantages of the present invention will become apparent from the following detailed description when taken with the accompanying drawings in which: 
         FIG. 1  is a block diagram showing a structure of a fault repair system of a first exemplary embodiment of the present invention; 
         FIG. 2  is a flow chart (½) showing operation of the first exemplary embodiment of the present invention; 
         FIG. 3  is a flow chart ( 2/2) showing operation of the first exemplary embodiment of the present invention; 
         FIG. 4  is an exemplary configuration of a fault area specification table in the first exemplary embodiment of the present invention; 
         FIG. 5  is a block diagram showing a structure of a fault repair apparatus of a second exemplary embodiment of the present invention; and 
         FIG. 6  is a block diagram showing a structure of an information processing apparatus which can execute the fault repair apparatus of the first and the second exemplary embodiment of the present invention. 
     
    
    
     EXEMPLARY EMBODIMENT 
     Hereinafter, exemplary embodiments of the present invention will be explained in detail with reference to drawings. 
     First Exemplary Embodiment 
       FIG. 1  is a block diagram showing conceptually a structure of a fault repair system  1  of the first exemplary embodiment. The fault repair system  1  of this exemplary embodiment includes a fault repair apparatus  10  and an integrated circuit  20 . 
     The integrated circuit  20  is a programmable integrated circuit such as an FPGA, is installed in an information processing apparatus (not shown) and so on, and includes a memory  21  and a circuit element group  22 . The circuit element group  22  is a circuit element built-in in the integrated circuit  20 , and logic operation is determined by configuration data  210  stored in the memory  21 . The memory  21  includes a plurality of memory areas, and identification information is given to each memory area. The circuit element group  22  includes a plurality of circuit elements, and identification information is given to each circuit element. 
     The memory  21  and the circuit element group  22  include a memory area which is unused at the time of normal operation and circuit elements corresponding to the memory area concerned respectively. This unused memory area is, in case a fault occurring number which occurred about an identical memory area reaches a certain threshold, one which is used as a fault evasion area to substitute a fault occurring memory area in order to avoid the fault. 
     The fault repair apparatus  10  includes a detection unit  11 , a memory unit  12 , a specification unit  13 , a correction unit  14 , a counting unit  16  and a synthesis unit  17 . There are cases when the detection unit  11 , the memory unit  12 , the specification unit  13 , the correction unit  14 , the counting unit  16  and the synthesis unit  17  are electronic circuits, and cases when they are realized by a computer program and a processor which operates according to the computer program. 
     The detection unit  11  detects a fault which occurred in the integrated circuit  20  and sends identification information which can identify a circuit element in the circuit element group  22  in which the fault occurred to the specification unit  13 . 
     The memory unit  12  memorizes a fault area specification table  120 . An exemplary configuration of the fault area specification table  120  is shown in  FIG. 4 . The fault area specification table  120  memorizes information about in which memory area in the memory  21  data in the configuration data  210  which defines logic operation about each circuit element in the circuit element group  22  exists. Specifically, the fault area specification table  120  memorizes identification information which can identify a circuit element  1200  and identification information which can identify a memory area  1201  by correlating them. For example, configuration data which defines logic operation about a register A which is a circuit element is stored in a memory area of an area  1  in the memory  21 . 
     In case identification information which can identify a fault occurring circuit element is received from the detection unit  11 , the specification unit  13  compares the identification information which can identify the fault occurring circuit element with the fault area specification table  120 . As a result, the specification unit  13  specifies in which memory area in the memory  21  the configuration data which defines logic operation about the fault occurring circuit element is stored. The specification unit  13  sends the identification information which can identify the fault occurring memory area which was specified by the processing mentioned above to the correction unit  14  and the counting unit  16 . 
     The counting unit  16  memorizes the fault occurring number for each fault occurring memory area. In case the identification information which can identify the fault occurring memory area is received from the specification unit  13 , the counting unit  16  adds 1 to a numerical value which shows the fault occurring number about the fault occurring memory area concerned. After updating the count value which shows the fault occurring number for each fault occurring memory area, the counting unit  16  sends the identification information which can identify the fault occurring memory area and the count value to the correction unit  14  and the synthesis unit  17 . When the count value reaches a certain numerical value, the counting unit  16  resets the count value. 
     The synthesis unit  17  memorizes configuration data  170  which is base data of the configuration data  210 . In case no fault occurs in the memory  21 , the configuration data  170  and the configuration data  210  in the memory  21  will be identical data. The synthesis unit  17  receives the count value which shows the fault occurring number for each fault occurring memory area from the counting unit  16 . In case the count value is equal to a threshold B  172 , the synthesis unit  17  starts processing which synthesizes re-synthesis configuration data  171  on the basis of the values which the configuration data  170  shows. There are cases when the synthesis unit  17  synthesizes the re-synthesis configuration data  171  on the basis of data such as RTL (Register Transfer Level) which was made the base data when the configuration data  170  was synthesized. 
     The re-synthesis configuration data  171  is configuration data about the integrated circuit  20  which is re-synthesized on the basis of the configuration data  170  so that an unused fault evasion area may be used as an area to substitute the fault occurring memory area of which the fault occurring number reached the threshold B  172 . The synthesis unit  17  is equipped with an internal memory including a plurality of entries for storing a plurality of re-synthesis configuration data  171  in connection to the fault occurring memory area. After synthesizing the re-synthesis configuration data  171  by spending a certain time, the synthesis unit  17  stores the re-synthesis configuration data  171  in the internal memory by correlating it to the identification information which can identify the fault occurring memory area. 
     In case the re-synthesis configuration data  171  is re-synthesized newly when all entries for storing the re-synthesis configuration data  171  are in use, after erasing the re-synthesis configuration data  171  which is already stored in any entry, the synthesis unit  17  stores the new re-synthesis configuration data  171  in the entry concerned. As a standard for the synthesis unit  17  to select the entry to delete the re-synthesis configuration data  171  which is already stored, there is a case when it is made the entry about the fault occurring memory of which the fault occurring number is least. Or, as the standard, there is a case when it is made the entry about the fault occurring memory area of which time after the fault occurred lastly is longest. 
     In case the identification information which can identify the fault occurring memory area and the count value are received from the counting unit  16 , the correction unit  14  confirms whether or not there is an error about data of a part stored in the fault occurring memory area in the configuration data  210  on the basis of error detection and correction code data  100  about the fault occurring memory area concerned. The error detection and correction code data  100  is data of an error detection and correction code which confirms whether or not there is an error part which does not agree with the expected value in the configuration data  210 , and in case there is an error part, corrects the error part concerned to the expected value. The error detection and correction code data  100  exists for each memory area in the memory  21 . 
     In case the count value is less than a threshold A  140 , and an error exists in the fault occurring memory area, the correction unit  14  judges that the fault is caused by an accidental soft error in the fault occurring memory area. In this case, in case the detected error is a correctable error such as a one bit error, the correction unit  14  corrects the error concerned by using the error detection and correction code data  100 . In case the detected error is not a correctable error, after obtaining the configuration data  170  from the synthesis unit  17 , the correction unit  14  replaces the configuration data  210  in the memory  21  by the configuration data  170 . Further, the threshold A  140  is a numerical value larger than the threshold B  172 . 
     In case the count value is less than the threshold A  140  and an error does not exist in the fault occurring memory area, the correction unit  14  judges that the fault is caused by occurrence of a defect in the processing to define the logic operation about the circuit element group  22  by the configuration data  210 . In this case, the correction unit  14  makes the integrated circuit  20  execute reinitialization. 
     In case the count value is equal to or more than the threshold A  140 , the correction unit  14  judges that the fault is caused by a fault which is becoming solid fault in the fault occurring memory area. In this case, the correction unit  14  obtains the re-synthesis configuration data  171  about the fault occurring memory area from the synthesis unit  17  and updates the configuration data  210  in the memory  21  to the re-synthesis configuration data  171 . 
     Next, by referring to the flow charts of  FIG. 2  and  FIG. 3 , operation (processing) of this exemplary embodiment is explained in detail. 
     The detection unit  11  detects a fault which occurred in the integrated circuit  20  and sends identification information which can identify a circuit element in the circuit element group  22  in which the fault occurred to the specification unit  13  (Step S 101 ). The specification unit  13  compares the received identification information which can identify the circuit element in which the fault occurred with the fault area specification table  120  in the memory unit  12 . The specification unit  13  specifies a memory area in the memory  21  in which description about the fault occurring circuit element in the configuration data  210  is stored. And the specification unit  13  sends the identification information which can identify the specified fault occurring memory area to the correction unit  14  and the counting unit  16  (Step S 102 ). 
     The counting unit  16  adds 1 to the fault occurrence number about the specified fault occurring memory area in the memory  21  and updates the count value. The counting unit  16  sends the identification information which can identify the fault occurring memory area and the count value to the correction unit  14  and the synthesis unit  17  (Step S 103 ). 
     In case the count value is less than the threshold B  172  (No in Step S 104 ), the correction unit  14  confirms whether or not there is an error in the configuration data  210  about the fault occurring memory area in the memory  21  on the basis of the error detection and correction code data  100  (Step S 108 ). 
     In case the count value is equal to the threshold B  172  (Yes in Steps S 104  and S 105 ), the synthesis unit  17  starts operation which synthesizes the re-synthesis configuration data  171  re-synthesized by using the fault evasion memory area instead of the fault occurring memory area in the memory  21  on the basis of the configuration data  170 . After synthesis completion, the synthesis unit  17  memorizes the re-synthesis configuration data  171  by correlating it to the fault occurring memory area in the memory  21  (Step S 106 ), and processing proceeds to Step S 108 . 
     In case the count value is larger than the threshold B  172  (Yes in Step S 104  and No in Step S 105 ), and the count value is less than the threshold A  140  (No in Step S 107 ), processing proceeds to Step S 108 . In case the count value is equal to or more than the threshold A (Yes in Step S 107 ), after obtaining the re-synthesis configuration data  171  about the fault occurring memory area in the memory  21  from the synthesis unit  17 , the correction unit  14  updates the configuration data  210  in the memory  21  to the re-synthesis configuration data  171  (Step S 115 ). The synthesis unit  17  updates the error detection and correction code data  100  to data corresponding to the re-synthesis configuration data  171  (Step S 116 ). The counting unit  16  resets the count value (Step S 117 ), and the entire processing will end. 
     In case there is an error in the configuration data  210  (Yes in Step S 109 ), and the error is correctable by the error detection and correction code data  100  (Yes in Step S 110 ), the correction unit  14  corrects the error of data of the configuration data  210  about the fault occurring memory area in the memory  21  by the error detection and correction code data  100  (Step S 111 ), and the entire processing will end. 
     In case there is an error in the configuration data  210  (Yes in Step S 109 ), and the error is not correctable by the error detection and correction code data  100  (No in Step S 110 ), the correction unit  14  replaces the configuration data  210  in the memory  21  by the configuration data  170  obtained from the synthesis unit  17  (Step S 112 ), and the entire processing will end. 
     In case there are no errors in the configuration data  210  (No in Step S 109 ), the correction unit  14  directs reinitialization to the integrated circuit  20  (Step S 113 ). The integrated circuit  20  executes reinitialization (Step S 114 ), and the entire processing will end. 
     By narrowing down to a fault occurring part and performing detection and repair of the fault in an integrated circuit such as an FPGA which defines logic operation by configuration data, there is an effect in this exemplary embodiment that time which fault repair processing needs is reduced. The reason is because the memory unit  12  and the correction unit  14  operate as follows. That is, the memory unit  12  memorizes the fault area specification table  120  which correlates a circuit element in the integrated circuit  20  and a memory area in the memory  21  which stored the configuration data which defines logic operation about the circuit element concerned. And the correction unit  14  corrects the configuration data in the fault occurring memory area in the memory  21  which the specification unit  13  specified on the basis of the fault information and the fault area specification table  120  by the error detection and correction code data  100 . 
     In the integrated circuit such as the FPGA, when bit flip occurs by a soft error in the memory which stores the configuration data, operation logic of the circuit element group changes. As a result, an output result from the integrated circuit will become incorrect and it becomes a fault in the integrated circuit. This fault is different from a permanent fault in hardware, and by repairing the configuration data in which data changed due to the bit flip to the base data, it is possible to recover the fault. 
     Whether or not the fault is caused by a soft error in the configuration data storage memory can be confirmed by using the error detection and correction code data and by confirming whether or not there is an error in the configuration data which does not agree with the expected value. Since FPGAs of which integration in recent years has advanced highly are equipped with a large-volume configuration data storage memory, when processing which confirms whether or not there is an error is performed about the entire configuration data by the error detection and correction code data, time necessary for fault recovery becomes long. 
     In this exemplary embodiment, by comparing the fault information which the detection unit  11  detected with the fault area specification table  120 , the specification unit  13  specifies the fault occurring memory area in the memory  21 . And the correction unit  14  confirms whether or not there is an error in the configuration data only about the fault occurring memory area. In case there is an error, and when the error concerned is a correctable error, the correction unit  14  corrects the error concerned. When the error concerned is not a correctable error, by replacing the configuration data by the base data before the fault occurred, the correction unit  14  recovers the fault. 
     That is, since the fault repair apparatus  10  of this exemplary embodiment narrows down to the configuration data in the fault occurring memory, not to the entire configuration data, and performs repair of the fault caused by a soft error in the configuration data storage memory, it can reduce time necessary for the fault repair processing. 
     Although the soft error in the configuration data storage memory usually occurs accidentally, when a problem occurs inside the memory, bit flip may occur frequently in a specific area in the memory and there is a possibility that it becomes a solid fault finally. Accordingly, it is important, before a solid fault in the configuration data storage memory occurs, to predict a memory area which has a possibility to become the solid fault and avoid the solid fault. 
     In this exemplary embodiment, the synthesis unit  17  re-synthesizes the re-synthesis configuration data  171  about the fault occurring memory area from the original configuration data so that an unused fault evasion area may be used as an area to substitute the fault occurring memory area concerned. The counting unit  16  counts the fault occurring number for each fault occurring memory area. And when the count value about any of the fault occurring memory areas reaches the threshold A  140 , after obtaining the re-synthesis configuration data  171  about the fault occurring memory area concerned from the synthesis unit  17 , the correction unit  14  updates the configuration data  210  in the memory  21  to the re-synthesis configuration data  171 . By operating as mentioned above, the fault repair apparatus  10  of this exemplary embodiment can predict the fault occurring memory area which has a possibility to become a solid fault and avoid the solid fault. 
     Also, in order for the synthesis unit  17  to complete synthesis of the re-synthesis configuration data  171 , a certain time is necessary. Accordingly, if the synthesis unit  17  starts processing to re-synthesize the re-synthesis configuration data  171  at the time when the numerical value which the counting unit  16  counts reaches the threshold A  140 , it takes time for the fault recovery processing. In this exemplary embodiment, when the count value about any of the fault occurring memory areas reaches the threshold B  172  of which the numerical value is less than the threshold A  140 , the synthesis unit  17  starts processing to synthesize the re-synthesis configuration data  171  about the fault occurring memory area concerned. By operating as mentioned above, the fault repair apparatus  10  of this exemplary embodiment is able to further reduce time for the fault recovery processing to avoid the solid fault. 
     Further, there is a case when the fault repair apparatus  10  of this exemplary embodiment is built in the integrated circuit  20 . 
     Second Exemplary Embodiment 
       FIG. 5  is a block diagram showing conceptually a structure of the fault repair apparatus  10  of the second exemplary embodiment of the present invention. 
     The fault repair apparatus  10  of this exemplary embodiment includes the detection unit  11 , the memory unit  12 , the specification unit  13  and the correction unit  14 . 
     The detection unit  11  is equipped with the memory  21  which can be updated and which stores the configuration data  210  and the circuit element group  22 . The detection unit  11  detects a fault in the integrated circuit  20  in which logic operation about the circuit element group  22  is defined by the configuration data  210  and outputs fault information. 
     The memory unit  12  memorizes the fault area specification table  120  which correlates whether or not a description in the configuration data  210  related to the fault information exists in any of a plurality of memory areas which the memory  21  includes to the identification information which can identify the memory area. 
     The specification unit  13  specifies the fault occurring memory area which is a memory area in which the fault occurred from the fault information and the fault area specification table  120 . 
     About the configuration data stored in the fault occurring memory area, the correction unit  14  detects and corrects error data which does not agree with the expected value on the basis of the error detection and correction code data  100  about the configuration data concerned. 
     Like the first exemplary embodiment, by narrowing down to a fault occurring part and performing detection and repair of the fault in an integrated circuit such as an FPGA which defines logic operation by configuration data, there is an effect in this exemplary embodiment that time which fault repair processing needs is reduced. The reason is because the memory unit  12  and the correction unit  14  operate as follows. That is, it is because the memory unit  12  memorizes the fault area specification table  120  which correlates whether description in the configuration data  210  related to the fault information exists in any of a plurality of memory areas which the memory  21  includes to the identification information which can identify the memory area, and the correction unit  14  detects and corrects the error, about the configuration data stored in the fault occurring memory area in the memory  21  which the specification unit  13  specified on the basis of the fault information and the fault area specification table  120 , on the basis of the error detection and correction code data  100 . 
     &lt;Example of Hardware Configuration&gt; 
     In the exemplary embodiments described above, each unit or section illustrated in  FIGS. 1 and 5  can be regarded as a functional (processing) unit (software module) of a software program. Here, segmentation of the units or sections in those drawings is made to illustrate a configuration for convenience of description, and various configurations can be assumed when implementing them. An example of hardware environment in this case will be described with reference to  FIG. 6 . 
       FIG. 6  is a diagram illustrating a configuration of an information processing apparatus  900  (computer), as an example, which can perform as the fault repair apparatus according to each of the exemplary embodiments of the present invention. That is,  FIG. 6  shows a configuration of a computer (information processing apparatus) such as a server which can realize the fault repair apparatuses shown in  FIGS. 1 and 5 , and represents hardware environment which can realize the functions in the exemplary embodiments described above. 
     The information processing apparatus  900  shown in  FIG. 6  is a general computer comprising a CPU (Central Processing Unit)  901 , a ROM (Read Only Memory)  902 , a RAM (Random Access Memory)  903 , a hard disk (storage device)  904 , a communication interface  905  connected with external devices, a reader/writer  908  capable of reading and writing data stored in a recording medium  907  such as a CD-ROM (Compact Disc Read Only Memory) and an input/output interface  909 , wherein these components are connected with each other via a bus (communication wire)  906 . 
     Then, the present invention described above taking the exemplary embodiments as examples is achieved by providing the information processing apparatus  900  shown in  FIG. 6  with a computer program capable of realizing the functions of the fault repair apparatus  10  in the block configuration diagrams ( FIGS. 1 and 5 ) or in the flow charts ( FIGS. 2 and 3 ), which were referred to in the descriptions of the exemplary embodiments, and by then reading out the computer program into the CPU  901  of the hardware and interpreting and executing the computer program there. The computer program provided to the apparatus may be stored in a readable/writable volatile storage memory (RAM  903 ) or a non-volatile storage device such as the hard disk  904 . 
     In the above-described case, it is possible to adopt a currently general procedure, as a method of providing a computer program into the hardware, such as a method of installing a program into the apparatus through various types of recording medium  907  and a method of downloading a program via a communication line such as the internet. In such cases, the present invention can be regarded as being constituted by the code constituting the computer program or by the non-transitory computer readable recording medium  907  storing the code. 
     The previous description of embodiments is provided to enable a person skilled in the art to make and use the present invention. Moreover, various modifications to these exemplary embodiments will be readily apparent to those skilled in the art, and the generic principles and specific examples defined herein may be applied to other embodiments without the use of inventive faculty. Therefore, the present invention is not intended to be limited to the exemplary embodiments described herein but is to be accorded the widest scope as defined by the limitations of the claims and equivalents. 
     Further, it is noted that the inventor&#39;s intent is to retain all equivalents of the claimed invention even if the claims are amended during prosecution.