Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration – Loading initialization program
Reexamination Certificate
2000-06-28
2003-08-05
Heckler, Thomas M. (Department: 2185)
Electrical computers and digital processing systems: support
Digital data processing system initialization or configuration
Loading initialization program
Reexamination Certificate
active
06604195
ABSTRACT:
The present invention is directed to apparatus and methods which facilitate the use of a read/write memory for storing and reading-out bootstrap code, as well as for writing or storing configuration or other information, and in particular to a method and apparatus which can avoid a hangup state of a computer following a system reset.
BACKGROUND INFORMATION
Computers typically execute code known as bootstrap code or boot code, when initially configuring themselves. The boot code typically is executed in response to a power-on operation (sometimes referred to as a “hard boot” or in response to a reset signal (which does not involve cycling power). The reset is sometimes referred to, or analogous to, a “soft reboot” or “warm boot”.
A number of systems and devices have been used or proposed for storing the bootstrap code. In general, the bootstrap code must be stored in a non-volatile memory (since the code must be available after the power has been turned off, and then turned on again). In many previous systems, some or all of the bootstrap code was stored on a read-only memory (ROM) device. Because, in normal operation, a read-only device is never written to a read only memory is always in a read state or configuration so that the boot code is substantially always available for reading out from the ROM. There are, however, other types of non-volatile memory, in addition to a read-only memory. These include, for example, flash memory, and electronically erasable, programmable read only memory (EEPROM). Those of skill in the art will be familiar with other types of non-volatile memory.
At least some types of non-volatile memory are read/write memories, i.e., having a capability during normal operation both to output information (i.e., providing memory which can be “read”) and to receive and store information (i.e., to “write” information to the memory). Examples of such read/write memory include flash memory and EEPROM.
Because a read/write memory can be in either a read state or write state, at any given time, there is a potential for at least certain read/write memories to cause a computer system to “hang up” (i.e., to be in a state where useful operations or calculations cannot be performed, often requiring performance of a power cycle or hard boot to reconfigure the computer to an operable configuration. In particular, a hang up state becomes a risk when (at least some) read/write non-volatile memories are used for both storing bootstrap code and for writing (i.e., for storing information into the memory). In particular, a hangup operation or state can occur if such a read/write memory is placed into a write state and, while the memory is in a write state, a system reset is performed (e.g., in response to a reset signal sent from an external circuit). The system reset requires that the bootstrap code be accessed and executed before any other software operations can be performed. However, because the non-volatile read/write memory is in a write state, it is impossible to read the bootstrap code out from the read/write memory. It is further impossible to execute any software which might reconfigure the non-volatile write memory into a read state, since such software cannot be executed until after the bootstrap code has been accessed and executed. Accordingly, the system is hung up and typically can only be used by performing a power cycle (which uses hardware, rather than software, to place the non-volatile read/write memory into a read configuration or state).
There are a number of potential advantages associated with using a single memory for both reading-out bootstrap code and for writing configuration (or other) information. In general, use of a single device, rather than providing two or more different devices, lowers the cost of designing and/or fabricating a computer system. Nevertheless, because of the risk of creating a hangup state, many previous systems have either continued to use ROM for storing bootstrap code (and using some other memory device for storing configuration or similar information), or have used two separate read/write non-volatile memory devices, one for reading-out boot code when needed (and which is always maintained in a read state) and another device for storing or writing information during normal operation.
Accordingly, it would be useful to provide a system, method and apparatus which could facilitate the use of a single non-volatile read/write memory for both reading-out stored boot code and for writing information during normal operation. It would further be useful to provide a system, method and apparatus which can reduce or eliminate the occurrence of hangups in response to a reset which occurs after a write operation (to the non-volatile read/write memory).
SUMMARY OF THE INVENTION
The present invention includes a recognition of the existence, source and/or nature of problems in previous approaches, including as described herein.
According to one aspect, circuitry is provided which generates a memory reset signal (or other signal which places the non-volatile read/write memory in a read state) at least in response to a reset (soft boot) signal or operation.
By providing circuitry which does not require execution of the software, in order to place the non-volatile read/write memory in a read state, it is possible to place the non-volatile read/write memory in a read state prior to loading and/or executing bootstrap code, and to thus avoid a hangup state. In one embodiment, external (to the memory) reset circuitry receives or responds to a system reset signal and provides a memory reset signal to, e.g., a reset pin of a non-volatile read/write memory. In this configuration, the support circuitry can function substantially as a relay. In this way, a computer system can be provided with a non-volatile read/write memory which stores bootstrap code and which may be used during normal operation for both read and write operations. However, in response to a system reset (such as might be generated by an external circuit) the support circuit will automatically place the non-volatile read/write circuit or memory into a read mode, and thus bootstrap code stored therein can be read-out for execution as part of the reset operation.
In one aspect, a reset pin of a non-volatile read/write memory, which stores boot code, is provided with a reset signal in response to a system reset output by a watchdog timer or other external circuitry. The reset signal causes the non-volatile read/write memory to be placed into read mode. Accordingly, even when a system reset occurs while the non-volatile read/write memory is in write mode, a hang state can be avoided since the memory will be reset to read mode before attempting to read boot code for a reboot operation.
REFERENCES:
patent: 5410706 (1995-04-01), Farrand et al.
patent: 5596713 (1997-01-01), DeRoo et al.
patent: 5748940 (1998-05-01), Angelo et al.
patent: 5872967 (1999-02-01), DeRoo et al.
patent: 5892943 (1999-04-01), Rockford et al.
patent: 5918048 (1999-06-01), Mealey et al.
patent: 6473856 (2002-10-01), Goodwin et al.
Chiu Lucy
Harrow Joseph C.
Huang Wen
Khan Sami
Kumar Jainendra
Cisco Technology Inc.
Heckler Thomas M.
Hickman Palermo & Truong & Becker LLP
LandOfFree
Method and apparatus to use non-volatile read/write memory... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus to use non-volatile read/write memory..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus to use non-volatile read/write memory... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3103161