Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability
Reexamination Certificate
1999-01-15
2002-06-25
Baderman, Scott T. (Department: 2184)
Error detection/correction and fault detection/recovery
Data processing system error or fault handling
Reliability and availability
C714S035000, C714S038110, C712S244000, C710S266000
Reexamination Certificate
active
06412081
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a system and method for providing a software trap and patch function, and more specifically, a software trap and patch function to low power and space constrained applications.
2. Related Art
The microprocessor is an integral part of many modern consumer electronic devices. The microprocessor, in combination with one or more software programs, provides many of the features and functions of the consumer electronic device. Such software programs are typically stored on the microprocessor device or as a standalone device in read only memory (“ROM”) and installed during the manufacturing process.
Programs that are stored in ROM cannot generally be altered. Thus, a problem occurs when it is discovered that a bug or program error exists within the pre-programmed code stored in the ROM of fabricated devices. It is prohibitively expensive to scrap devices whenever a programming error is discovered, and it would unduly delay the shipment of the product if it were necessary to ship devices fabricated with the correct ROM code.
Several solutions to this problem have been proposed. According to one such approach, detailed in U.S. Pat. Nos. 5,799,144 and 5,701,506, the microprocessor is configured with a writeable memory, such as a random access memory (“RAM”) or a similar storage device, and a new section of code, referred to herein as the “patch” code, in which the programming error has been corrected, is downloaded into the writeable memory. Circuitry is provided to detect an access to the error-containing code, and responsive thereto, signal a trap condition. Responsive to the trap condition, additional circuitry imposes on the data bus a JUMP instruction, with the operand thereof being the start address of the patch code. Upon execution by the microprocessor of this JUMP instruction, program control is passed to the patch code, which is then executed in lieu of the error-containing code.
The problem with this approach is that, because of the complexity and size of the circuitry required to perform the trap and patch function, it is not particularly well-suited for low power, cost conscious and space constrained applications, such as wireless or cordless handsets. For example, in U.S. Pat. No. 5,799,144, the JUMP instruction (and its operand, the start address of the patch code) is provided to the data bus in multiple bus cycles, and control unit
8
is required to set the proper sequencing and timing with which this information is provided to the data bus. This control unit comprises a particular form of sequential circuitry known as a state machine in which the outputs thereof depend on the present state of the inputs thereof, in addition to the present “state” of the machine. For purposes of this disclosure, the definition of “sequential circuit” is taken from The IEEE Standard Dictionary of Electrical and Electronics Terms, Sixth Edition, p. 970. The power consumed, cost, and space occupied by circuitry such as this will, in many cases, render this approach unsuitable for use in low power, cost conscious and space constrained applications, such as cordless or wireless handsets.
Therefore, what is needed is a system and method for implementing a software trap and patch function that is appropriate for these low power, cost conscious, and space constrained applications.
SUMMARY OF THE INVENTION
Accordingly, the present invention provides a system and method for implementing a software trap and patch function for program code that requires only the addition of combinational circuitry to the microprocessor for purposes of placing a predetermined instruction on the data bus responsive to a trap condition and does not require the addition of any sequential circuitry such as a state machine to perform this function. As is known to those of skill in the art, a combinational circuit is one in which the outputs thereof depend only on the present state of the inputs thereof. For purposes of this disclosure, the definition of “combinational circuit” is taken from the IEEE Standard Dictionary of Electrical and Electronics Terms, Sixth Edition, p. 177.
In particular, when a programming error is discovered in program code stored in a first memory, patch code is provided in a second memory accessible by the microprocessor. In addition to the patch code, a trap address and a patch address, are also provided. The trap address is the address of the beginning of the code segment in the first memory that contains the error. The patch address is the address of the area in the second or other memory at which the patch code will reside during execution thereof. Typically, the first memory is ROM, but it should be appreciated that other forms of memory are possible. In addition, the second memory is typically non-volatile RAM (“NVRAM”), electronically-erasable programmable ROM (“EEPROM”), or external ROM, but again, it should be appreciated that other forms of memory are possible. In one implementation, since the cost/bit of the second memory is typically greater than that of the first memory, it is not generally economically feasible to replicate the entire program code, with the bug or error corrected, in the second memory. Also, in this implementation, other distinctions between the first and second memories are that the first memory tends to be larger than the second memory, and the second memory is modified in the field. In one embodiment, the microprocessor transfers the patch code from the second memory to a third memory which is also accessible by the microprocessor. The patch code is then executed while resident in the third memory. In this embodiment, the third memory is typically RAM, but it should be appreciated that other forms of memory are possible.
The patch code is designed to replace the code segment containing the error. In one embodiment, the patch code is added by a distributor, value added reseller (“VAR”), or original equipment manufacturer (“OEM”) to a second memory already being installed by the distributor, VAR or OEM to add additional features and functionality to the device. In this embodiment, the patch code is stored in the second memory as part of an integrated data structure containing the patch code, the trap address, and optionally, the start address of the patch code. In another embodiment, the second memory is already present in the device, and this data structure is downloaded to this second memory from a remote location through a wireless or other communications link, such as telephone lines or the Internet.
According to the subject invention, a power-on-reset (“POR”) process is provided to detect the presence of the patch code in the second memory upon power-up of the microprocessor or upon occurrence of a reset condition. If patch code is present, pursuant to the process, the trap address is downloaded into a holding circuit, the patch address is downloaded into a predetermined patch address vector, the patch code is optionally copied into the third memory, and an enable circuit is activated to enable the trap and patch function.
A compare circuit compares addresses sent out over the address bus by the microprocessor with the contents of the holding circuit. If a match is detected, indicating an attempted access to the error-containing code in the first memory, a trap condition signal is asserted. Responsive to the occurrence of the trap condition, a disable first memory switch disconnects the first memory from the data bus. In addition, in one embodiment, a predetermined bit in the processor status register (“PSR”), which, if placed in a first state, is placed in a second state, and a predetermined instruction circuit places on the data bus the operation code of a predetermined software instruction. Preferably, the predetermined instruction circuit comprises solely combinational circuitry. In one embodiment, this circuit places the predetermined instruction on the data bus in a single bus cycle. In an implementation example of this embodiment, the predetermined instruction is a s
Berger Douglas M.
Koscal Michael E.
Baderman Scott T.
Conexant Systems Inc.
Howrey Simon Arnold & White , LLP
LandOfFree
System and method for providing a trap and patch function to... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for providing a trap and patch function to..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for providing a trap and patch function to... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2903315