US20040044925A1 - Automode select - Google Patents

Automode select Download PDF

Info

Publication number
US20040044925A1
US20040044925A1 US10/228,559 US22855902A US2004044925A1 US 20040044925 A1 US20040044925 A1 US 20040044925A1 US 22855902 A US22855902 A US 22855902A US 2004044925 A1 US2004044925 A1 US 2004044925A1
Authority
US
United States
Prior art keywords
microprocessor
signal
mode
microcontroller
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/228,559
Other versions
US7058854B2 (en
Inventor
Stephen Piper
Matthew Trembley
Dennis Craton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Priority to US10/228,559 priority Critical patent/US7058854B2/en
Assigned to LSI LOGIC CORPORATION reassignment LSI LOGIC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CRATON, DENNIS, PIPER, STEPHEN, TREMBLEY, MATTHEW
Publication of US20040044925A1 publication Critical patent/US20040044925A1/en
Application granted granted Critical
Publication of US7058854B2 publication Critical patent/US7058854B2/en
Assigned to DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT reassignment DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AGERE SYSTEMS LLC, LSI CORPORATION
Assigned to LSI CORPORATION reassignment LSI CORPORATION CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: LSI LOGIC CORPORATION
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LSI CORPORATION
Assigned to LSI CORPORATION, AGERE SYSTEMS LLC reassignment LSI CORPORATION TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Assignors: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT PATENT SECURITY AGREEMENT Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. reassignment AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD. TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED MERGER (SEE DOCUMENT FOR DETAILS). Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Assigned to AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED reassignment AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0097. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Assignors: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Definitions

  • the present invention generally relates to the field of microprocessor operations, and particularly to automatic data corruption verification for a microprocessor based system.
  • the present invention is directed to a method and system for automatically identifying invalid data in a microprocessor.
  • a method for verifying data validity in a microprocessor includes the steps of determining data validity in a microprocessor, and if microprocessor data is determined to be invalid, then changing an operational mode of the microprocessor.
  • a method for automatically verifying the validity of data from a microprocessor comprises the steps of waiting for a local reset signal to become inactive; when the local reset signal becomes inactive, determining if a memory valid signal is active; and if the memory valid signal is not active at the time of determination, then resetting the microprocessor to a different operational mode.
  • a system for automatically detecting data corruption in a microprocessor comprises a microprocessor that normally operates in a first mode; a non-volatile memory coupled to the microprocessor; and a microcontroller coupled to the microprocessor, the microcontroller putting the microprocessor in a second mode upon the occurrence of a microprocessor invalid data condition sensed by the microcontroller.
  • automatic reset and mode settings occur based on the automatic detection of data invalidity in the firmware. If the microprocessor has corrupted data, self correction may be attempted as well as identification of the underlying problem to a user. Furthermore, the user does not have to manipulate jumper wires and resistors to reload a microprocessor from a memory. Identification of data corruption may be accomplished in a user friendly manner, such as by using light emitting diodes, sound, e mail, or the like as indicators.
  • FIG. 1 illustrates an exemplary system that uses the method of the present invention
  • FIG. 2 illustrates an exemplary implementation of a microcontroller used in an exemplary system of the present invention
  • FIG. 3 illustrates a method for determining microprocessor data corruption in an embodiment of the present invention.
  • the present invention relates to automatically verifying the validity of data and code in a microprocessor in a state machine or the like.
  • the microprocessor is loaded from a non-volatile memory (i.e., firmware such as non-volatile random access memory or flash). Any fault state recovery is managed by a microcontroller coupled to the microprocessor. If the current state machine detects invalid data, the microprocessor is reset to another mode. After being reset to another mode, the firmware of the microprocessor may be automatically loaded from a backup read only memory (ROM) or from an off board device.
  • ROM read only memory
  • FIG. 1 illustrates an exemplary microprocessor based circuit configuration having a detection mechanism 5 for corrupt data of the present invention.
  • a microprocessor 20 is coupled to a microcontroller 10 and a non-volatile memory 30 , such as a flash memory or a non-volatile random access memory.
  • the microprocessor 20 may have an interface to a peripheral component interconnect (PCI) or other bus.
  • PCI peripheral component interconnect
  • the function of the microcontroller in an embodiment of the present invention 5 is to respond to microprocessor conditions and select the operational mode of the microprocessor.
  • the microcontroller 10 has a clock, MCCLK, which is independent of the clock, MPCLK, of the microprocessor 20 .
  • Microcontroller clock, MCCLK may be an arbitrary clock, while microprocessor clock, MPCLK, may be a clock from the PCI bus.
  • the microcontroller clock, MCCLK may be a 4 MHz to 40 MHz clock signal that originates from a resonator or crystal oscillator.
  • a general purpose input/output (GPIO) pin of the microprocessor is used to signal valid data in the microprocessor.
  • the GPIO pin may default to a low logic level through a pull down resistor. For example, if the microprocessor firmware is running, the microprocessor firmware validates itself and asserts the GPIO signal (i.e., raises the voltage level on the pin to a logic high value).
  • the microprocessor 20 is controlled by two signals generated by microcontroller 10 : (1) an on board reset signal (PCIRST) and (2) a mode signal (MODE).
  • PCI bus reset and the on board reset signal (PCIRST) are gated together to provide microprocessor reset signal (MPRST).
  • MPRST microprocessor reset signal
  • PCIRST is the signal from the microcontroller to reset the microprocessor if a corrupt flash (i.e., invalid data) has been detected.
  • the PCI bus reset may be a reset signal that originates from a bus, such as a PCI bus. It may be controlled by a motherboard chipset that controls the reset of all the PCI cards.
  • the PCI reset signal (PCIRST) is initially a high voltage value.
  • Microprocessor mode setting is accomplished by the use of a mode signal (MODE) as well as microprocessor reset signal (MPRST).
  • MODE 3 normal operation
  • MODE 0 dedicated to placing the microprocessor in a reload state
  • the microprocessor 20 is reset via signal (MPRST).
  • PCI BUS RESET PCI BUS RESET
  • the microprocessor 20 is no longer in reset mode.
  • the microcontroller 10 then boots up the microprocessor 20 in normal mode (MODE 3). While in MODE 3, the microprocessor 20 attempts to fetch code from the non-volatile memory.
  • the microcontroller 10 changes the mode of the microprocessor (i.e., MODE 0).
  • a reason that the GPIO pin is not asserted is that the microprocessor 20 holds invalid data.
  • the mode is not changed before (MPRST) becomes inactive, the PCI card may hang up the computer.
  • FIG. 2 illustrates an exemplary hardware implementation for the microcontroller 10 .
  • the microcontroller 10 includes a timer 110 , a pulse generator 120 , a latch 130 , and associated glue logic.
  • a timer 110 is represented as a counter having an enable pin and a reset pin.
  • the timer's count threshold may be a single count bit or may be a combination of count bits which are gated, through Boolean logic, to provide a signal corresponding to a given timer count value or threshold.
  • the enable of the timer 110 is controlled by the GPIO pin signal (PORTOUT) from the microprocessor and the timer's count threshold.
  • the timer is enabled.
  • MCCLK clock signal
  • the timer increments.
  • an input to gate U 2 goes high, causing the timer enable to be deactivated.
  • the firmware of the microprocessor may run a CRC (cyclic redundancy code) check on itself. If the CRC is verified, the microprocessor drives the GPIO pin to a logic high value; i.e., PORTOUT becomes a logic value one. If the microprocessor firmware CRC were bad or unable to execute, the signal PORTOUT would never get asserted to a high logic level.
  • CRC cyclic redundancy code
  • the timer threshold value triggers the pulse generator 120 (e.g., a monostable multivibrator), 120 to provide signal PCIRST.
  • the pulse generator is controlled by a local reset signal, LRST, propagated by the microprocessor 20 in response to a microprocessor reset signal (MPRST).
  • MPRST microprocessor reset signal
  • a logic high value for the local reset signal, LRST enables the monostable multivibrator 120 to be triggered to provide an output pulse at Q BAR, PCIRST.
  • the duration of the output pulse may be determined by the RC time product of an external resistor R 1 and a capacitor C 1 . This RC time product may be set for a value such as two milliseconds or other suitable time period to ensure the microprocessor 20 resets.
  • the TIMEOUT signal may be latched by latch 130 to provide the mode signal MODE 0.
  • the non-volatile memory may be loaded (e.g., flashed).
  • the timer may be reset by the local reset (LRST).
  • Other variations of the microcontroller are contemplated by the present invention, including hardware, software, and combinations of hardware and software, as well as implementations with negative logic.
  • FIG. 3 illustrates an exemplary embodiment of the automode select method 200 of the present invention.
  • Variables such as MODE and PCIRST, are initialized, per step 220 , on power up, step 210 .
  • MODE may be set equal to 3 and PCIRST may be set equal to 1.
  • a determination is made as to whether the local reset, LRST, remains active (e.g., as here, at a low voltage value), as per step 230 . While LRST remains active, processing enters a wait mode ( 240 ).
  • LRST When LRST becomes inactive (e.g., attains a high voltage value), a determination is made as to whether the microprocessor has asserted a general purpose input/output (GPIO) pin ( 250 ).
  • the GPIO pin corresponds to signal PORTOUT that is provided to the microcontroller. If the GPIO pin is not asserted, then a determination is made as to whether a predetermined period of time for assertion has expired ( 260 ). If the predetermined period of time has not expired, then the timer is adjusted up or down to reflect a count up or count down ( 270 ). Step 270 has been provided to show that a wait period may be incorporated in the loop, as well as represent adjusting the time value of a timer through a count sequence.
  • GPIO general purpose input/output
  • Adjusting the timer is an optional step for the method of the present invention.
  • a time out occurs.
  • a determination is also made as to whether a power reset has occurred, per step 280 . If no power reset has occurred, then processing continues ( 230 ). Otherwise, processing proceeds ( 220 ). If the predetermined period of time has expired ( 260 ), then MODE is set to 0 and the PCI reset signal, PCIRST, is pulsed to zero. For example, PCIRST may be pulsed low for a set time such as 2 milliseconds to ensure the microprocessor resets. Processing proceeds ( 300 ). Also, if the GPIO pin is asserted in step 250 , processing proceeds to step 300 .
  • the local reset signal (LRST) is compared to determine if the local reset is active (e.g., a low voltage signal). If LRST is active, processing proceeds to step 220 . Optional steps 302 and 304 permit firmware to be reloaded. If LRST is not active, the GPIO pin voltage is compared, per step 310 . If the GPIO pin is asserted, then MODE is set to 3 and processing proceeds to step 300 . If the GPIO pin is not asserted, processing proceeds immediately to step 300 .
  • the firmware in the non-volatile memory e.g., flash or non-volatile random access memory
  • the firmware reloading may be automatic (through a driver) or manual (through a user).
  • the GPIO pin may be asserted manually by setting registers in microprocessor 20 .
  • Variations of the present invention are contemplated. Variations include implementation for a PCIX bus, or the like.
  • the microcontroller may be implemented through a programmable logic device, such as a field programmable gate array, or through extremely high speed logic gates.
  • the present invention may be practiced with an Intel or other microprocessor.

Abstract

A microprocessor based system automatically detects the occurrence of certain conditions in the microprocessor. The conditions may include a determination of data corruption in the microprocessor. If a determination is made that data is corrupted, the microprocessor may be reloaded from a non-volatile memory. During a reload, a microcontroller controls the microprocessor. The non-volatile memory may be a flash memory or non-volatile random access memory.

Description

    FIELD OF THE INVENTION
  • The present invention generally relates to the field of microprocessor operations, and particularly to automatic data corruption verification for a microprocessor based system. [0001]
  • BACKGROUND OF THE INVENTION
  • Current microprocessor based systems conventionally are coupled with a non-volatile memory that provides the operating code for the microprocessor. Data in the non-volatile memory may become corrupted. Current corrective methods require manual changes to the circuit board, such as the changing of resistors or jumpers, to reconfigure the system to correct the data corruption. After the hardware changes are made, the system must be rebooted so that the microprocessor may be reloaded with the correct code and data. Also, in current corrective methods, data corruption in the firmware of the non-volatile memory may not be immediately noticed by a user. This lack of noticeability may waste much time and effort from lost performance and troubleshooting to find the problem. [0002]
  • Therefore, it would be desirable to provide a microprocessor based system that automatically detects data corruption in a microprocessor. [0003]
  • SUMMARY OF THE INVENTION
  • Accordingly, the present invention is directed to a method and system for automatically identifying invalid data in a microprocessor. [0004]
  • In the present invention, a method for verifying data validity in a microprocessor includes the steps of determining data validity in a microprocessor, and if microprocessor data is determined to be invalid, then changing an operational mode of the microprocessor. [0005]
  • In an embodiment of the present invention, a method for automatically verifying the validity of data from a microprocessor comprises the steps of waiting for a local reset signal to become inactive; when the local reset signal becomes inactive, determining if a memory valid signal is active; and if the memory valid signal is not active at the time of determination, then resetting the microprocessor to a different operational mode. [0006]
  • In an embodiment of the present invention, a system for automatically detecting data corruption in a microprocessor comprises a microprocessor that normally operates in a first mode; a non-volatile memory coupled to the microprocessor; and a microcontroller coupled to the microprocessor, the microcontroller putting the microprocessor in a second mode upon the occurrence of a microprocessor invalid data condition sensed by the microcontroller. [0007]
  • In an embodiment of the present invention, automatic reset and mode settings occur based on the automatic detection of data invalidity in the firmware. If the microprocessor has corrupted data, self correction may be attempted as well as identification of the underlying problem to a user. Furthermore, the user does not have to manipulate jumper wires and resistors to reload a microprocessor from a memory. Identification of data corruption may be accomplished in a user friendly manner, such as by using light emitting diodes, sound, e mail, or the like as indicators. [0008]
  • It is to be understood that both the forgoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and together with the general description, serve to explain the principles of the invention. [0009]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The numerous advantages of the present invention may be better understood by those skilled in the art by reference to the accompanying figures in which: [0010]
  • FIG. 1 illustrates an exemplary system that uses the method of the present invention; [0011]
  • FIG. 2 illustrates an exemplary implementation of a microcontroller used in an exemplary system of the present invention; and [0012]
  • FIG. 3 illustrates a method for determining microprocessor data corruption in an embodiment of the present invention.[0013]
  • DETAILED DESCRIPTION OF THE INVENTION
  • Reference will now be made in detail to the presently preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. [0014]
  • The present invention relates to automatically verifying the validity of data and code in a microprocessor in a state machine or the like. The microprocessor is loaded from a non-volatile memory (i.e., firmware such as non-volatile random access memory or flash). Any fault state recovery is managed by a microcontroller coupled to the microprocessor. If the current state machine detects invalid data, the microprocessor is reset to another mode. After being reset to another mode, the firmware of the microprocessor may be automatically loaded from a backup read only memory (ROM) or from an off board device. [0015]
  • FIG. 1 illustrates an exemplary microprocessor based circuit configuration having a [0016] detection mechanism 5 for corrupt data of the present invention. A microprocessor 20 is coupled to a microcontroller 10 and a non-volatile memory 30, such as a flash memory or a non-volatile random access memory. The microprocessor 20 may have an interface to a peripheral component interconnect (PCI) or other bus. The function of the microcontroller in an embodiment of the present invention 5 is to respond to microprocessor conditions and select the operational mode of the microprocessor. Preferably, the microcontroller 10 has a clock, MCCLK, which is independent of the clock, MPCLK, of the microprocessor 20. Microcontroller clock, MCCLK, may be an arbitrary clock, while microprocessor clock, MPCLK, may be a clock from the PCI bus. For example, the microcontroller clock, MCCLK, may be a 4 MHz to 40 MHz clock signal that originates from a resonator or crystal oscillator. A general purpose input/output (GPIO) pin of the microprocessor is used to signal valid data in the microprocessor. The GPIO pin may default to a low logic level through a pull down resistor. For example, if the microprocessor firmware is running, the microprocessor firmware validates itself and asserts the GPIO signal (i.e., raises the voltage level on the pin to a logic high value).
  • The [0017] microprocessor 20 is controlled by two signals generated by microcontroller 10: (1) an on board reset signal (PCIRST) and (2) a mode signal (MODE). The PCI bus reset and the on board reset signal (PCIRST) are gated together to provide microprocessor reset signal (MPRST). PCIRST is the signal from the microcontroller to reset the microprocessor if a corrupt flash (i.e., invalid data) has been detected. The PCI bus reset may be a reset signal that originates from a bus, such as a PCI bus. It may be controlled by a motherboard chipset that controls the reset of all the PCI cards. The PCI reset signal (PCIRST) is initially a high voltage value.
  • Microprocessor mode setting is accomplished by the use of a mode signal (MODE) as well as microprocessor reset signal (MPRST). There are two states of the mode signal: (1) MODE 3 (normal operation) and (2) MODE 0 (dedicated to placing the microprocessor in a reload state). On power up, the [0018] microprocessor 20 is reset via signal (MPRST). When the reset from the PCI bus (PCI BUS RESET) is released, the microprocessor 20 is no longer in reset mode. The microcontroller 10 then boots up the microprocessor 20 in normal mode (MODE 3). While in MODE 3, the microprocessor 20 attempts to fetch code from the non-volatile memory. If the microprocessor 20 does not assert the GPIO pin within a specified time, then the microcontroller 10 changes the mode of the microprocessor (i.e., MODE 0). A reason that the GPIO pin is not asserted is that the microprocessor 20 holds invalid data. If the mode is not changed before (MPRST) becomes inactive, the PCI card may hang up the computer. When the mode is changed to a logic high value to indicate an invalid data state (MODE=0), an indicator light emitting diode LEDI driven by this signal becomes lit to notify the user of the invalid data state. Release from the MODE 0 state may be achieved through the GPIO pin of microprocessor 20.
  • An exemplary operational description of the microprocessor is provided immediately below. [0019]
    /  MICROPROCESSOR PROCESSING  /
    MP MODE process:
    Begin
    PORTOUT = low;
    Loop
    If MPRST = low,
    Then PORTOUT = low
    LRST = low
    If MP data is invalid and MPRST = high,
    Then PORTOUT = low
    LRST = high
    If MP data is valid and MPRST = high,
    Then PORTOUT = high
    LRST = low
    If MPRST = rising edge and MODE = 3,
    Then disable interrupts
    Load from non-volatile memory
    Enable interrupts
    If MODE = 0 and MPRST = high,
  • Then MP does not execute or fetch code [0020]
  • End Loop [0021]
  • END MP MODE Process [0022]
  • FIG. 2 illustrates an exemplary hardware implementation for the [0023] microcontroller 10. The microcontroller 10 includes a timer 110, a pulse generator 120, a latch 130, and associated glue logic. In the exemplary embodiment, a timer 110 is represented as a counter having an enable pin and a reset pin. The timer's count threshold may be a single count bit or may be a combination of count bits which are gated, through Boolean logic, to provide a signal corresponding to a given timer count value or threshold.
  • The enable of the [0024] timer 110 is controlled by the GPIO pin signal (PORTOUT) from the microprocessor and the timer's count threshold. When the microprocessor GPIO pin is a low value and the timer has been powered up or reset, the timer is enabled. Upon each rising or falling edge of the clock signal MCCLK, the timer increments. When the timer reaches a predetermined threshold value, an input to gate U2 goes high, causing the timer enable to be deactivated.
  • In operation, the firmware of the microprocessor may run a CRC (cyclic redundancy code) check on itself. If the CRC is verified, the microprocessor drives the GPIO pin to a logic high value; i.e., PORTOUT becomes a logic value one. If the microprocessor firmware CRC were bad or unable to execute, the signal PORTOUT would never get asserted to a high logic level. [0025]
  • The timer threshold value triggers the pulse generator [0026] 120 (e.g., a monostable multivibrator), 120 to provide signal PCIRST. The pulse generator is controlled by a local reset signal, LRST, propagated by the microprocessor 20 in response to a microprocessor reset signal (MPRST). A logic high value for the local reset signal, LRST, enables the monostable multivibrator 120 to be triggered to provide an output pulse at Q BAR, PCIRST. The duration of the output pulse may be determined by the RC time product of an external resistor R1 and a capacitor C1. This RC time product may be set for a value such as two milliseconds or other suitable time period to ensure the microprocessor 20 resets. The TIMEOUT signal may be latched by latch 130 to provide the mode signal MODE 0. During MODE 0, the non-volatile memory may be loaded (e.g., flashed). The latching occurs during the rising edge of the clock pulse from PCIRST, a delayed response of the signal TIMEOUT. If GPIO is asserted (PORTOUT=logic high), then latch 130 and timer 110 (through gate U3) are both cleared, causing MODE to indicate normal operation (MODE 3). The timer may be reset by the local reset (LRST). Other variations of the microcontroller are contemplated by the present invention, including hardware, software, and combinations of hardware and software, as well as implementations with negative logic.
  • Microcontroller processing may be operationally described as follows: [0027]
    /  MICROCONTROLLER PROCESSING  /
    MC PROCESS:
    Begin
    PCIRST = high;
    MODE = 3;
    Initialize TIMECOUNT;
    Loop
    If TIMECOUNT ≧ Threshold,
    Then MODE = 0
    Pulse PCIRST low for a predetermined period of time;
    If LRST = high, PORTOUT = low, and TIMEOUT < Threshold,
    Then increment or decrement TIMECOUNT
    If LRST = low or PORTOUT = high,
    Then reset TIMECOUNT
    If LRST = high and PORTOUT = high
    Then MODE = 3
    End Loop
    END MC PROCESS
  • END MC PROCESS [0028]
  • FIG. 3 illustrates an exemplary embodiment of the automode [0029] select method 200 of the present invention. Variables, such as MODE and PCIRST, are initialized, per step 220, on power up, step 210. During initialization, MODE may be set equal to 3 and PCIRST may be set equal to 1. A determination is made as to whether the local reset, LRST, remains active (e.g., as here, at a low voltage value), as per step 230. While LRST remains active, processing enters a wait mode (240). When LRST becomes inactive (e.g., attains a high voltage value), a determination is made as to whether the microprocessor has asserted a general purpose input/output (GPIO) pin (250). The GPIO pin corresponds to signal PORTOUT that is provided to the microcontroller. If the GPIO pin is not asserted, then a determination is made as to whether a predetermined period of time for assertion has expired (260). If the predetermined period of time has not expired, then the timer is adjusted up or down to reflect a count up or count down (270). Step 270 has been provided to show that a wait period may be incorporated in the loop, as well as represent adjusting the time value of a timer through a count sequence. Adjusting the timer (270) is an optional step for the method of the present invention. When the time value reaches a preset threshold, a time out occurs. A determination is also made as to whether a power reset has occurred, per step 280. If no power reset has occurred, then processing continues (230). Otherwise, processing proceeds (220). If the predetermined period of time has expired (260), then MODE is set to 0 and the PCI reset signal, PCIRST, is pulsed to zero. For example, PCIRST may be pulsed low for a set time such as 2 milliseconds to ensure the microprocessor resets. Processing proceeds (300). Also, if the GPIO pin is asserted in step 250, processing proceeds to step 300. The local reset signal (LRST) is compared to determine if the local reset is active (e.g., a low voltage signal). If LRST is active, processing proceeds to step 220. Optional steps 302 and 304 permit firmware to be reloaded. If LRST is not active, the GPIO pin voltage is compared, per step 310. If the GPIO pin is asserted, then MODE is set to 3 and processing proceeds to step 300. If the GPIO pin is not asserted, processing proceeds immediately to step 300. The firmware in the non-volatile memory (e.g., flash or non-volatile random access memory) may be reloaded anytime during the loop (e.g., between steps 300 and 310). The firmware reloading may be automatic (through a driver) or manual (through a user). The GPIO pin may be asserted manually by setting registers in microprocessor 20.
  • Variations of the present invention are contemplated. Variations include implementation for a PCIX bus, or the like. The microcontroller may be implemented through a programmable logic device, such as a field programmable gate array, or through extremely high speed logic gates. The present invention may be practiced with an Intel or other microprocessor. [0030]
  • It is believed that the present invention and many of its attendant advantages will be understood by the forgoing description. It is also believed that it will be apparent that various changes may be made in the form, construction and arrangement of the components thereof without departing from the scope and spirit of the invention or without sacrificing all of its material advantages. The form herein before described being merely an explanatory embodiment thereof. It is the intention of the following claims to encompass and include such changes. [0031]

Claims (32)

What is claimed is:
1. A method for verifying data validity in a microprocessor, comprising the steps of:
determining data validity in a microprocessor through the state of a first signal by the microprocessor; and
if the microprocessor data is determined invalid because of the state of the first signal, then changing an operational mode of the microprocessor.
2. The method of claim 1, further comprising, if microprocessor data is determined to be invalid, then resetting the microprocessor after the step of changing the operational mode of the microprocessor.
3. The method of claim 1, further comprising, if microprocessor data is determined to be invalid, then resetting the microprocessor before the step of changing the operational mode of the microprocessor.
4. The method of claim 2, wherein the step of changing the operational mode of the microprocessor is performed by a microcontroller.
5. The method of claim 1, further comprising flashing a flash memory after changing an operational mode of the microprocessor.
6. A method for automatically detecting data corruption in a microprocessor, comprising the steps of:
waiting for a local reset signal to become inactive; and
when the local reset signal becomes inactive, determining if a memory valid signal is active; and
if the memory valid signal is not active at the time of determination, then resetting the microprocessor to a different operational mode.
7. The method of claim 6, wherein the step of resetting the microprocessor further comprises the step of determining if a predetermined period of time has expired before resetting the microprocessor.
8. The method of claim 7, wherein, if the predetermined period of time has expired, then providing a bus reset pulse.
9. The method of claim 7, wherein, if the predetermined period of time has expired, then loading the microprocessor from a non-volatile memory.
10. The method of claim 8, wherein the bus reset pulse is a peripheral component interconnect (PCI) bus reset pulse.
11. The method of claim 6, wherein the local reset signal deactivates a microcontroller timer.
12. The method of claim 11, wherein a non-volatile memory is coupled to the microprocessor.
13. The method of claim 12, wherein the non-volatile memory is a flash memory.
14. A system for automatically detecting data corruption in a microprocessor, comprising:
a microprocessor that normally operates in a first mode; and
a microcontroller coupled to the microprocessor, the microcontroller putting the microprocessor in a second mode upon the occurrence of a microprocessor fault condition sensed by the microcontroller.
15. The system of claim 14, wherein the microprocessor provides an indicator signal to the microcontroller.
16. The system of claim 15, wherein the indicator signal is used by the microcontroller to activate a timer.
17. The system of claim 14, further comprising a non-volatile memory coupled to the microprocessor, wherein the non-volatile memory is a flash memory.
18. The system of claim 15, wherein the indicator signal is transmitted from a general purpose input/output pin.
19. The system of claim 14, wherein the microprocessor propagates a system reset signal by transmitting a local reset signal to the microcontroller.
20. The system of claim 15, further comprising a non-volatile memory coupled to the microprocessor, wherein the indicator signal indicates data corruption in the non-volatile memory.
21. The system of claim 14, wherein the system is disposed upon a circuit board.
22. The system of claim 21, wherein operating conditions in the system are indicated by light emitting diodes.
23. The system of claim 14, wherein the microcontroller causes the microprocessor to enter normal mode after boot up.
24. A system for automatically detecting data corruption in a microprocessor, comprising:
a non-volatile memory;
a microprocessor coupled to the non-volatile memory, the microprocessor generating a first signal to indicate a microprocessor data corruption fault state, the microprocessor being in a first mode;
a microcontroller coupled to the microprocessor, the microcontroller receiving the first signal and sending a second signal in response to the first signal, the second signal causing the microprocessor to enter a second mode.
25. The system of claim 24, further comprising at least one light emitting diode to indicate a system fault state.
26. The system of claim 24, wherein the first signal is generated from a dedicated general purpose input/output pin of the microprocessor.
27. The system of claim 24, wherein the second signal represents a microprocessor mode.
28. A system for automatically detecting data corruption in a microprocessor, comprising:
means for generating a fault indicator signal;
means for waiting for the fault indicator signal to indicate a non-fault condition for data and instructions non-volatilely stored in the means for generating a fault indicator signal;
means for resetting the means for generating a fault indicator signal after a predetermined period of time has elapsed; and
means for generating a mode signal for the means for generating a fault indicator signal.
29. The system of claim 28, further comprising means for displaying a fault condition.
30. The system of claim 29, wherein the means for displaying a fault condition is coupled to the means for generating a mode signal.
31. The system of claim 28, wherein the system interfaces with a peripheral component interconnect (PCI) bus.
32. The system of claim 28, wherein the system interfaces with a peripheral component interconnect extended (PCIX) bus.
US10/228,559 2002-08-27 2002-08-27 Automode select Active 2024-04-25 US7058854B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/228,559 US7058854B2 (en) 2002-08-27 2002-08-27 Automode select

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/228,559 US7058854B2 (en) 2002-08-27 2002-08-27 Automode select

Publications (2)

Publication Number Publication Date
US20040044925A1 true US20040044925A1 (en) 2004-03-04
US7058854B2 US7058854B2 (en) 2006-06-06

Family

ID=31976054

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/228,559 Active 2024-04-25 US7058854B2 (en) 2002-08-27 2002-08-27 Automode select

Country Status (1)

Country Link
US (1) US7058854B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050096240A1 (en) * 2003-08-28 2005-05-05 Gregory Szewczyk Liquid dish cleaning compositions
US20090089615A1 (en) * 2007-07-24 2009-04-02 The Regents Of The University Of Michigan Field repairable logic
CN106569965A (en) * 2015-10-10 2017-04-19 中国长城计算机深圳股份有限公司 Linux general purpose input output drive method and device
US20180329774A1 (en) * 2017-05-09 2018-11-15 Stmicroelectronics S.R.I. Processing System, Related Integrated Circuit, Device and Method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287199B2 (en) * 2004-03-31 2007-10-23 Giga-Byte Technology Co., Ltd. Device capable of detecting BIOS status for clock setting and method thereof

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809280A (en) * 1984-06-12 1989-02-28 Omron Tateisi Electronics Co. Microcomputer system with watchdog timer
US5379378A (en) * 1986-12-18 1995-01-03 Bull Hn Information Systems Inc. Data processing system having a bus command generated by one subsystem on behalf of another subsystem
US5432927A (en) * 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US5652836A (en) * 1995-05-31 1997-07-29 Samsung Electronics Co., Ltd. CPU reset circuit
US6065053A (en) * 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6341239B1 (en) * 1998-03-25 2002-01-22 Denso Corporation Electronic control unit and method having program rewriting function
US6418539B1 (en) * 1995-05-25 2002-07-09 Compaq Computer Corporation Continuously available computer memory systems
US6449732B1 (en) * 1998-12-18 2002-09-10 Triconex Corporation Method and apparatus for processing control using a multiple redundant processor control system
US6792527B1 (en) * 2000-12-22 2004-09-14 Xilinx, Inc. Method to provide hierarchical reset capabilities for a configurable system on a chip
US6839788B2 (en) * 2001-09-28 2005-01-04 Dot Hill Systems Corp. Bus zoning in a channel independent storage controller architecture

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809280A (en) * 1984-06-12 1989-02-28 Omron Tateisi Electronics Co. Microcomputer system with watchdog timer
US5379378A (en) * 1986-12-18 1995-01-03 Bull Hn Information Systems Inc. Data processing system having a bus command generated by one subsystem on behalf of another subsystem
US5432927A (en) * 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US6418539B1 (en) * 1995-05-25 2002-07-09 Compaq Computer Corporation Continuously available computer memory systems
US5652836A (en) * 1995-05-31 1997-07-29 Samsung Electronics Co., Ltd. CPU reset circuit
US6065053A (en) * 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6341239B1 (en) * 1998-03-25 2002-01-22 Denso Corporation Electronic control unit and method having program rewriting function
US6449732B1 (en) * 1998-12-18 2002-09-10 Triconex Corporation Method and apparatus for processing control using a multiple redundant processor control system
US6792527B1 (en) * 2000-12-22 2004-09-14 Xilinx, Inc. Method to provide hierarchical reset capabilities for a configurable system on a chip
US6839788B2 (en) * 2001-09-28 2005-01-04 Dot Hill Systems Corp. Bus zoning in a channel independent storage controller architecture

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050096240A1 (en) * 2003-08-28 2005-05-05 Gregory Szewczyk Liquid dish cleaning compositions
US20090089615A1 (en) * 2007-07-24 2009-04-02 The Regents Of The University Of Michigan Field repairable logic
US9645882B2 (en) * 2007-07-24 2017-05-09 The Regents Of The University Of Michigan Field repairable logic
CN106569965A (en) * 2015-10-10 2017-04-19 中国长城计算机深圳股份有限公司 Linux general purpose input output drive method and device
US20180329774A1 (en) * 2017-05-09 2018-11-15 Stmicroelectronics S.R.I. Processing System, Related Integrated Circuit, Device and Method
US10754723B2 (en) * 2017-05-09 2020-08-25 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method
US11210161B2 (en) 2017-05-09 2021-12-28 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method

Also Published As

Publication number Publication date
US7058854B2 (en) 2006-06-06

Similar Documents

Publication Publication Date Title
US6253319B1 (en) Method and apparatus for restoring a computer to a clear CMOS configuration
US6101617A (en) Computer failure recovery and alert system
US6721885B1 (en) Reducing start-up time and avoiding customer-induced system failures for personal computers
US7010724B1 (en) Operating system hang detection and methods for handling hang conditions
TWI400607B (en) Method for tuning parameter in memory and computer ststem using the method
US7069472B2 (en) Method for restoring CMOS in a jumperless system
US7783877B2 (en) Boot-switching apparatus and method for multiprocessor and multi-memory system
US9207948B2 (en) Multi-BIOS circuit and switching method between multiple BIOS chips
US6393586B1 (en) Method and apparatus for diagnosing and conveying an identification code in post on a non-booting personal computer
US10387260B2 (en) Reboot system and reboot method
US7058854B2 (en) Automode select
US7120788B2 (en) Method and system for shutting down and restarting a computer system
US6526525B1 (en) PCI debugging device, method and system
US5949997A (en) Method and apparatus for programming a microprocessor using an address decode circuit
US8495353B2 (en) Method and circuit for resetting register
JP2001198329A (en) Game machine
JP4191351B2 (en) Game machine
US20020104040A1 (en) System and method for initiating a manufacturing mode
US7200746B2 (en) Device and method for automatically detecting and announcing error on booting a motherboard
KR20090037223A (en) Method and system for power-on self testing after system off, and booting method the same
JP4744591B2 (en) Game machine
JP2001198272A (en) Playing machine
JP2009061345A (en) Game machine
JP2009061348A (en) Game machine
JP2009061344A (en) Game machine

Legal Events

Date Code Title Description
AS Assignment

Owner name: LSI LOGIC CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PIPER, STEPHEN;CRATON, DENNIS;TREMBLEY, MATTHEW;REEL/FRAME:013235/0940

Effective date: 20020826

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031

Effective date: 20140506

AS Assignment

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:LSI LOGIC CORPORATION;REEL/FRAME:033102/0270

Effective date: 20070406

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388

Effective date: 20140814

AS Assignment

Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

Owner name: LSI CORPORATION, CALIFORNIA

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039

Effective date: 20160201

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001

Effective date: 20160201

AS Assignment

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD

Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001

Effective date: 20170119

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553)

Year of fee payment: 12

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047196/0097

Effective date: 20180509

AS Assignment

Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0097. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:048555/0510

Effective date: 20180905