Patent US5794054A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5794054A Expired / Lapsed US ⏱️ 0.0 years remaining

Flash ROM sharing between a processor and a controller

Assignee: Hewlett Packard Development Co LP
•
Filing: 1996-07-19
•
Granted: 1998-08-11
•
Expires: 2016-07-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In accordance with the invention, a computer system is provided with a processor, a flash ROM, a microcontroller and an arbiter for selectively assigning the ownership of the flash ROM to either the microprocessor or the microcontroller. The arbiter assigns the flash ROM initially to the microcontroller when it boots up. After checking the integrity of the flash ROM and updating the content of the flash ROM with valid software if necessary, the microcontroller releases the flash ROM to the microprocessor to enable the computer system to proceed with the normal boot-up process. In this process, various system self tests are performed. Next, the microprocessor shadows one or more portions of the flash ROM BIOS into a main memory array. After the processor successfully boots up, the processor releases the flash ROM back to the microcontroller by writing a command to a mailbox register in the arbiter which places the microcontroller in an idle mode and by restarting the clock generator of the microcontroller. The restarting of the clock signal to the microcontroller to switch the ownership of the flash ROM back to the microcontroller. In the event that the microprocessor needs to regain access to the flash ROM contents, the microprocessor writes to the mailbox register of the arbiter to request access to the flash ROM. The microprocessor waits for a confirmation from the arbiter that the microcontroller is entering an idled mode. Next, the microprocessor halts the clock of the microcontroller. These events cause the microcontroller to float or tristate the signal lines going from the microcontroller to the flash ROM such that the microprocessor can drive the signal lines without any conflict potentials. In this manner, the microprocessor can still access the shared flash ROM after it has booted up. Thus, the system cost is reduced, the system reliability is enhanced, while the system accessibility to the flash ROM after the boot-up period is still preserved.

Inventors

  • 👤 Hung Q. Le
  • 👤 David J. DeLisle

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 15:05
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1433; G06F13/00; G06F13/14; G06F13/16; G06F13/1605

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 135 words
A computer system, comprising: a processor; a system memory coupled to said processor; a peripheral device coupled to said processor for storing boot data; a resource coupled to said processor; a microcontroller coupled to said resource and said processor, said microcontroller allowing said processor to boot from said stored boot data after said microcontroller boots, said microcontroller having an active mode for engaging said resource and an idle mode for disengaging said resource; an arbiter coupled to said processor, said microcontroller and said resource, said arbiter adapted to receive a request from said processor to access said resource, said arbiter placing said microcontroller in the idle mode before granting said processor access to said resource, said arbiter further placing said microcontroller into the active mode to engage said resource after said processor releases said resource.
Claim 2
Dependent Claim 135 words
A computer system, comprising: a processor; a system memory coupled to said processor; a peripheral device coupled to said processor for storing boot data; a resource coupled to said processor; a microcontroller coupled to said resource and said processor, said microcontroller allowing said processor to boot from said stored boot data after said microcontroller boots, said microcontroller having an active mode for engaging said resource and an idle mode for disengaging said resource; an arbiter coupled to said processor, said microcontroller and said resource, said arbiter adapted to receive a request from said processor to access said resource, said arbiter placing said microcontroller in the idle mode before granting said processor access to said resource, said arbiter further placing said microcontroller into the active mode to engage said resource after said processor releases said resource.
Claim 3
Dependent Claim 58 words
The computer system of claim 1, wherein said microcontroller is clocked by a clock input and wherein said arbiter further comprises: a mailbox register adapted to receive said access request from said processor; a variable clock generator coupled to said microcontroller clock input, said variable clock generator deasserting said clock input upon the expiration of a predetermined period.
Claim 4
Dependent Claim 29 words
The computer system of claim 2, wherein said variable clock generator modulates said clock input to place said microcontroller into the active mode after said processor releases said resource.
Claim 5
Dependent Claim 13 words
The computer system of claim 1, wherein said resource is a non-volatile memory.
Claim 6
Dependent Claim 15 words
The computer system of claim 4, wherein said non-volatile memory is a flash read-only-memory (ROM).
Claim 7
Dependent Claim 15 words
The computer system of claim 4, wherein said non-volatile memory is a non-volatile random-access-memory (NV-RAM).
Claim 8
Dependent Claim 19 words
The computer system of claim 4, wherein said non-volatile memory stores a primary code for execution by said processor.
Claim 9
Dependent Claim 28 words
The computer system of claim 7, wherein said primary code is a code for booting said processor such that it can further boot from said stored boot data.
Claim 10
Dependent Claim 24 words
The computer system of claim 7, wherein said primary code comprises a power on self test code and a basic input output system code.
Claim 11
Dependent Claim 34 words
The computer system of claim 7, wherein said system memory has a shadow region and wherein said processor copies a portion of said primary code into said shadow region after said processor boots up.
Claim 12
Dependent Claim 21 words
The computer system of claim 10, wherein said processor releases said non-volatile memory to said microcontroller after shadowing said primary code.
Claim 13
Dependent Claim 19 words
The computer system of claim 4, wherein said non-volatile memory stores a secondary code for execution by said microcontroller.
Claim 14
Dependent Claim 92 words
The computer system of claim 1, further comprising a code update system having updated data and a code update data port, said computer system comprising: a data port coupled to said microcontroller and said code update data port, said data port receiving said updated data; and an integrity checker coupled to said microcontroller for checking the integrity of said code in said resource; and a programmer coupled to said microcontroller for receiving said updated data from said data port and updating said resource if the integrity of said resource has been compromised.
Claim 15
Independent Claim 118 words
A method for sharing a non-volatile memory in a computer system, said computer system having a processor, a system memory coupled to said processor, a display coupled to said processor for communicating with the user, a disk drive coupled to said processor for storing data, a resource coupled to said processor, and a microcontroller coupled to said resource and said processor, said method comprising the steps of detecting a resource access request from said processor; idling said microcontroller in response to said resource access request; granting said processor access to said resource after said microcontroller has been idled; releasing said resource from said processor; and activating said microcontroller to engage said resource after said processor releases said resource.
Claim 16
Independent Claim 118 words
A method for sharing a non-volatile memory in a computer system, said computer system having a processor, a system memory coupled to said processor, a display coupled to said processor for communicating with the user, a disk drive coupled to said processor for storing data, a resource coupled to said processor, and a microcontroller coupled to said resource and said processor, said method comprising the steps of detecting a resource access request from said processor; idling said microcontroller in response to said resource access request; granting said processor access to said resource after said microcontroller has been idled; releasing said resource from said processor; and activating said microcontroller to engage said resource after said processor releases said resource.
Claim 17
Dependent Claim 53 words
The method of claim 14, wherein said microcontroller is clocked by a clock input and wherein said idling step further comprises the steps of: writing to a mailbox register to request said resource; delaying a predetermined period from said writing step; and deasserting said clock input upon the expiration of said predetermined period.
Claim 18
Dependent Claim 22 words
The method of claim 15, further comprising the step of releasing said resource to said microcontroller after completing access to said resource.
Claim 19
Dependent Claim 22 words
The method of claim 16, further comprising the step of modulating said clock input to restart said microcontroller after said releasing step.
Claim 20
Dependent Claim 40 words
The method of claim 14, wherein said system memory has a shadow region and wherein said resource has a code, further comprising the step of shadowing a portion of said code into said shadow region after booting up said processor.
Claim 21
Dependent Claim 20 words
The method of claim 18, further comprising the step of releasing said resource to said microcontroller after said shadowing step.
Claim 22
Dependent Claim 17 words
The method of claim 14, further comprising the step of updating said resource with a new code.
Claim 23
Dependent Claim 28 words
The method of claim 20, wherein said updated data is an updated microcontroller code, further comprising the step of rebooting said microcontroller after said microcontroller code updating step.
Claim 24
Independent Claim 135 words
An apparatus for arbitrating accesses in a computer, said computer having a processor and a system memory coupled to said processor, said apparatus comprising: a resource coupled to said processor; a microcontroller coupled to said resource and said processor, said microcontroller allowing said processor to boot from said stored boot data after said microcontroller boots, said microcontroller having an active mode for engaging said resource and an idle mode for disengaging said resource; an arbiter coupled to said processor, said microcontroller and said resource, said arbiter adapted to receive a request from said processor to access said resource, said arbiter placing said microcontroller in the idle mode before granting said processor access to said resource, said arbiter further placing said microcontroller into the active mode to engage said resource after said processor releases said resource.
Claim 25
Independent Claim 135 words
An apparatus for arbitrating accesses in a computer, said computer having a processor and a system memory coupled to said processor, said apparatus comprising: a resource coupled to said processor; a microcontroller coupled to said resource and said processor, said microcontroller allowing said processor to boot from said stored boot data after said microcontroller boots, said microcontroller having an active mode for engaging said resource and an idle mode for disengaging said resource; an arbiter coupled to said processor, said microcontroller and said resource, said arbiter adapted to receive a request from said processor to access said resource, said arbiter placing said microcontroller in the idle mode before granting said processor access to said resource, said arbiter further placing said microcontroller into the active mode to engage said resource after said processor releases said resource.
Claim 26
Dependent Claim 55 words
The apparatus of claim 22, wherein said microcontroller is clocked by a clock input, said apparatus further comprises: a mailbox register adapted to receive said access request from said processor; a variable clock generator coupled to said microcontroller clock input, said variable clock generator deasserting said clock input upon the expiration of a predetermined period.
Claim 27
Dependent Claim 28 words
The apparatus of claim 23, wherein said variable clock generator modulates said clock input to place said microcontroller into the active mode after said processor releases said resource.
Claim 28
Dependent Claim 12 words
The apparatus of claim 22, wherein said resource is a non-volatile memory.
Claim 29
Dependent Claim 14 words
The apparatus of claim 25, wherein said non-volatile memory is a flash read-only-memory (ROM).
Claim 30
Dependent Claim 14 words
The apparatus of claim 25, wherein said non-volatile memory is a non-volatile random-access-memory (NV-RAM).
Claim 31
Dependent Claim 18 words
The apparatus of claim 25, wherein said non-volatile memory stores a primary code for execution by said processor.
Claim 32
Dependent Claim 27 words
The apparatus of claim 28, wherein said primary code is a code for booting said processor such that it can further boot from said stored boot data.
Claim 33
Dependent Claim 23 words
The apparatus of claim 28, wherein said primary code comprises a power on self test code and a basic input output system code.
Claim 34
Dependent Claim 33 words
The apparatus of claim 28, wherein said system memory has a shadow region and wherein said processor copies a portion of said primary code into said shadow region after said processor boots up.
Claim 35
Dependent Claim 20 words
The apparatus of claim 31, wherein said processor releases said non-volatile memory to said microcontroller after shadowing said primary code.
Claim 36
Dependent Claim 18 words
The apparatus of claim 26, wherein said non-volatile memory stores a secondary code for execution by said microcontroller.
Claim 37
Dependent Claim 91 words
The apparatus of claim 22, further comprising a code update system having updated data and a code update data port, said apparatus further comprising: a data port coupled to said microcontroller and said code update data port, said data port receiving said updated data; and an integrity checker coupled to said microcontroller for checking the integrity of said code in said resource; and a programmer coupled to said microcontroller for receiving said updated data from said data port and updating said resource if the integrity of said resource has been compromised.

References Cited (Backward Citations)

US5327531A Cited
US5603055A Cited
US5619726A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-08-10 2002-02-09 2002-08-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-08-10 2006-02-09 2006-08-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-08-10 2010-02-09 2010-08-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag