US6154834A - Detachable processor module containing external microcode expansion memory - Google Patents

Detachable processor module containing external microcode expansion memory Download PDF

Info

Publication number
US6154834A
US6154834A US08/864,555 US86455597A US6154834A US 6154834 A US6154834 A US 6154834A US 86455597 A US86455597 A US 86455597A US 6154834 A US6154834 A US 6154834A
Authority
US
United States
Prior art keywords
microcode
circuit board
electronic system
substrate
embedded controller
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.)
Expired - Lifetime
Application number
US08/864,555
Inventor
James Neal
David Mullane
Bernardo Ortiz
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Priority to US08/864,555 priority Critical patent/US6154834A/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MULLANE, DAVID, NEAL, JAMES, ORTIZ, BERNARDO
Application granted granted Critical
Publication of US6154834A publication Critical patent/US6154834A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K1/00Printed circuits
    • H05K1/02Details
    • H05K1/14Structural association of two or more printed circuits
    • H05K1/141One or more single auxiliary printed circuits mounted on a main printed circuit, e.g. modules, adapters

Definitions

  • This invention relates to the field of electronics. More particularly, the invention relates to an electronic system and method for increasing flexibility and availability of microcode space and of Basic Input/Output System (BIOS) memory space.
  • BIOS Basic Input/Output System
  • microprocessor is an embedded controller that includes a processor core featuring processing logic and core memory.
  • processor core featuring processing logic and core memory.
  • INTEL® microprocessor architectures such as PENTIUM® and PENTIUM PROTM--trademarks owned by Intel Corporation of Santa Clara, Calif.
  • a portion of the core memory is reserved to contain microcode. This portion is commonly referred to as microcode space.
  • microcode space 100 usually is minimally sized to achieve cost savings and separated into two areas; namely, a first area 110 and a second area 120.
  • the first area 110 is configured to store a set of n microcode instructions 130 1 -130 n (" ⁇ c instructions"), where "n" being a positive whole number.
  • These microcode instructions 130 1 -130 n are executed after power-up to perform one or more tasks (e.g., initialization of state machines, diagnostics, etc.).
  • the second area 120 is microcode space configured to store m microcode patch instructions (MPI) 140 1 -140 m ("m" being a positive whole number).
  • MPI microcode patch instructions
  • microcode patch instructions 140 1 -140 m form one or more microcode patches, which are used to correct errors found in one or more microcode instruction(s) after being preloaded in silicon or in process functionality. These microcode patches allow minor fixes in microcode without requiring chip refabrication.
  • microprocessor 200 is usually attached directly to a motherboard 210 through a multi-pin socket 220.
  • microprocessor 200 includes core memory 230 capable of containing microcode.
  • a fixed portion of this core memory 230 is writable during execution of Basic Input/Output System (BIOS) code contained in on-substrate, non-volatile memory 240.
  • BIOS Basic Input/Output System
  • the storage space of this non-volatile memory 240 (referred to as a BIOS memory space) is also fixed in size.
  • BIOS memory space has been configured to provide a microcode patch, if necessary, corresponding to each microcode executed by processor 200.
  • microprocessor e.g., desktop, server, laptop, etc.
  • BIOS memory space places a restriction on the number of microcode instructions and/or patches that can be supported by conventional PC platforms.
  • each type of microprocessor may require different sizes of microcode space. Since microprocessors and memory devices containing BIOS are typically manufactured and distributed by different original equipment manufacturers (OEMs), available BIOS memory space may not match the needs of a given microprocessor when it is otherwise manufacturable. One solution would be to implement more memory dedicated to BIOS. The addition of memory would substantially increase the cost of the end product, which adversely effects the consuming public.
  • microcode patches currently are distributed by diskette or through an electronic bulletin board on the Internet. These microcode patches are subsequently loaded into memory 230 of FIG. 2.
  • this is an expensive distribution technique. Distribution through an electronic bulletin board over a Wide Area Network (WAN) may be less costly than using diskettes, but it is not a universal solution because certain products containing the microprocessor may not have access to the electronic bulletin board.
  • WAN Wide Area Network
  • the current microcode patch scheme is subject to reliability concerns when upgrading a microprocessor. For example, if the user upgrades his or her computer to include a more advanced microprocessor, two reliability problems may result. The first reliability problem may occur if non-volatile memory 240 is too small to support a microcode patch recommended for the more advanced microprocessor. This would require upgrading the motherboard 200 and/or replacement of non-volatile memory 240 which is more difficult and expensive to the user.
  • the second reliability problem involves the condition where the microcode space of the more advanced microprocessor is too small to support an intended microcode patch. This would require re-coding of the microcode or refabrication of core memory of the microprocessor to increase its sizing.
  • the later solution is contrary to the present trend of minimizing the amount of dedicated memory in order to optimize the use of real estate on the processor core. Either reliability problem would be costly to both the OEM as well as the final consumer.
  • each processor is specifically manufactured and loaded with microcode to support a particular operation mode (e.g., support operations of a desktop computer, OVERDRIVE® processor, server, etc.). This lack of standardization is due in part to a limited microcode space.
  • each processor is loaded with one instruction set of microcode because, until now, it was infeasible for processor 200 to have access to multiple instruction sets.
  • these instruction sets could be directed to controlling different processor platforms such as a complex instruction set computer (CISC) platform or a reduced instruction set computer (RISC) platform.
  • CISC complex instruction set computer
  • RISC reduced instruction set computer
  • the present invention relates to a processing unit featuring a substrate with an embedded controller and a memory unit attached to the substrate.
  • the memory unit is loaded with microcode.
  • the embedded controller is interconnected to the memory unit via a communication line. This communication line enables microcode to be transferred from the memory unit to the embedded controller.
  • FIG. 1 illustrates conventional microcode space of a processor.
  • FIG. 2 is a conventional motherboard implementation.
  • FIG. 3 is an illustrative embodiment of the electronic system including a processing unit implemented with the present invention.
  • FIG. 4 is a perspective view of an embodiment of the processing unit including a package covering a substrate.
  • FIGS. 5A and 5B are each an illustrative embodiment of the processing unit including at least an embedded controller and at least one on-substrate memory unit.
  • FIG. 6 is a first illustrative embodiment of the communication scheme between the processor and the on-substrate memory unit.
  • FIG. 7 is a second illustrative embodiment of the communication scheme between the processor, on-substrate memory containing BIOS and the on-substrate memory unit.
  • FIG. 8 is an illustrative flowchart of the operations of the present invention.
  • the present invention relates to an electronic system and corresponding method for increasing flexibility and availability of microcode space and of Basic Input/Output System (BIOS) memory space.
  • BIOS Basic Input/Output System
  • an electronic system includes any type of computer or hardware product utilizing the present invention to enhance operability of its processor.
  • a processor is any embedded controller, including processing logic and dedicated memory, which controls the operations of the electronic system. Examples of embedded controllers include microprocessors, microcontrollers, complex state machines and the like.
  • a microcode patch is one or more microcode instructions provided to the processor for execution.
  • a communication line is broadly defined as one or more information-carrying mediums (electrical wire, bus trace, fiber optics, etc.) or wireless communications through established techniques such as infrared (IR) and radio frequency (RF) signaling.
  • the electronic system 300 (e.g., a computer) includes a system substrate 310 which controls the overall functionality of the electronic system 300.
  • the system substrate 310 Normally formed with any type of material or materials upon which integrated circuit components can be attached, the system substrate 310 includes a memory element 320 and a connector 330.
  • the memory element 320 includes non-volatile memory such as Read Only Memory (ROM), erasable programmable ROM (EPROM), flash memory and the like, although volatile memory could be used.
  • ROM Read Only Memory
  • EPROM erasable programmable ROM
  • flash memory and the like, although volatile memory could be used.
  • the memory element 320 is attached to system substrate 310 and is connected to communication line 340.
  • Communication line 340 is routed to connector 330 in order to establish communications between memory element 320 and a processing unit 350 coupled to the connector 330.
  • connector 330 is shown as a standard female edge connector, any other style of connector may be used (e.g., a pin field connector).
  • processing unit 350 includes a processor substrate 400 formed from any type of material upon which integrated circuit components (not shown) can be attached through well-known techniques (e.g., solder connection, etc.).
  • the processor substrate 400 is substantially covered by a package 410 in order to protect the integrated circuit components (not shown) from damage or harmful contaminants.
  • the processor substrate 400 includes a connector 420, preferably adapted to establish a mechanical and electrical connection with connector 330.
  • connector 420 includes any type of connector which mates with connector 330.
  • connector 420 includes a standard male edge connector.
  • processor substrate 400 illustrative embodiments of a top side and bottom side of processor substrate 400 are shown.
  • the integrated circuit components of processor substrate 400 include, but are not limited or restricted to, at least one processor 500 and on-substrate memory.
  • discrete components e.g., capacitors, oscillators, resistors, inductors, etc.
  • processor substrate 400 would be attached to processor substrate 400 in a selected manner to, among other things, maximize routability and decrease length of communication lines between these integrated circuit components.
  • processor 500 is a single microprocessor but may include one or more microprocessors or any other embedded controller.
  • the on-substrate memory includes at least one memory unit 510 and possibly a cache subsystem 520.
  • Cache subsystem 520 includes a plurality of memory components 521 1 -521 4 such as static random access memory (SRAM) components in communication with processor 500.
  • Cache subsystem 520 further includes a tag RAM 522 used for supporting any cache coherency protocol (e.g., Modified, Exclusive, Shared, Invalid MESI cache protocol) collectively used by memory components 521 1 -521 4 .
  • cache coherency protocol e.g., Modified, Exclusive, Shared, Invalid MESI cache protocol
  • the on-substrate memory unit 510 would include, but not limited or restricted to, non-volatile memory such as ROM, EPROM, flash memory and the like.
  • Memory unit 510 is situated on processor substrate 400 and is configured to potentially communicate with processor 500 and/or memory element 320 during a boot procedure.
  • the location of on-substrate memory unit 510 is a design choice so long as the communication path meets requisite latency goals.
  • on-substrate memory unit 510 may be attached to processor substrate 400 or possibly mounted onto processor 500 through a stacking technology.
  • on-substrate memory unit 510 One function of on-substrate memory unit 510 is to provide additional storage space for microcode executed by processor 500.
  • This microcode may include one or more microcode patches that are pre-loaded to support a variety of operation modes. For example, if processor 500 possesses an INTEL® microprocessor architecture, processor 500 may be configured to operate in several operation modes without architectural modifications. Examples of these operation modes include operations as a desktop processor, an OVERDRIVE® processor, mobile processor, or a server processor.
  • Memory unit 510 may be loaded with microcode patches for each of the operation modes, although only one will be requested.
  • on-substrate memory unit 510 Another function of on-substrate memory unit 510 is to provide additional storage space for supporting various types of microcode instruction sets. These instruction sets could be directed to complex instruction set computer (CISC) platforms, reduced instruction set computer (RISC) platforms and the like.
  • CISC complex instruction set computer
  • RISC reduced instruction set computer
  • on-substrate memory unit 510 is implemented as a standard serial ROM, requiring serial communications to processor 500. If serial data transmissions are supported, processor 500 would need to be aware of the depth of the memory unit 510 because the addressing of particular microcode instructions is not available.
  • serial transmission is a chosen embodiment for its cost-effectiveness and its minimal impact on processor size.
  • processor 500 may communicate with on-substrate memory unit 510 through a dedicated parallel bus.
  • This type of embodiment would likely be used in supporting multiple instruction sets such as CISC and RISC based microcode.
  • processor lead count e.g., pin count
  • the communication scheme includes a pair of shift elements (e.g., shift registers) 610 and 620, and a synchronization logic circuit 630.
  • a first shift element 610 is adapted to control data transmissions into and/or from a data lead of the on-substrate memory unit 510.
  • a second shift element 620 is adapted to control data transmission into and/or from a data lead of processor 500.
  • These shift elements 610 and 620 are synchronously clocked by synchronization logic circuit 630 through clock lines 631 and 632.
  • the clock lines 631 and 632 provides clocking to control the transmissions of information, namely microcode instructions from first shift element 610. It is contemplated that (i) first shift element 610 may be implemented within on-substrate memory unit 510, and/or (ii) second shift element 620 may be implemented within processor 500, although these specific implementations are not required.
  • the shift elements 610 and 620 are further coupled together through an interconnect including a serial data line 640.
  • Serial data line 640 provides the routing for such data to the second register 620.
  • the interconnect may further be used as a debug mechanism by loading a potential microcode patch into the on-substrate memory unit 510, and monitoring the serial data line 640 during boot procedure of processor 500 in order to observe what microcode instructions are being transferred through serial data line 640 and whether resultant operations are as intended.
  • FIG. 7 an illustrative embodiment of an alternative communication scheme is shown in which microcode patches are accessed during BIOS access of the boot procedure.
  • This scheme involves communications between (i) processor 500 and on-substrate memory unit 510 situated on processor substrate 400 and (ii) memory element (e.g., system firmware) 320 placed on system substrate 300.
  • system firmware 320 is connected to processor 500 through a communication line 700.
  • the communication line 700 includes at least address and data communication lines, which may be configured to support any bit width including 32-bit and 64-bit, respectively.
  • the communication line 700 is further coupled to on-substrate memory unit 510.
  • processor 500 may execute a microcode branch instruction such as a JUMP microcode instruction to a selected address ("A"). This would cause processor 500 to successively access one or more microcode instructions starting at the selected address location which falls within an address range associated with system firmware 320.
  • system firmware 320 includes a microcode instruction directing processor 500 to access one or more subsequent microcode instructions from on-substrate memory unit 510. This allows system firmware 320 to support multiple microcode patches and firmware extensions, while freeing up its available space reserved for BIOS. Referring to FIG. 8, a flowchart of the boot procedure performed by the electronic system of FIG. 3 is shown.
  • Step 800 the processor core is powered-up (Step 800). Thereafter, a Power-On Reset (RESET) signal is activated, which triggers a preliminary initialization stage in which certain state machines implemented in the processor core are initialized (Block 810).
  • This preliminary initialization stage is performed through execution of a number of microcode instructions loaded in microcode space.
  • a determination is made whether the microcode instruction requires an access of contents stored in the on-substrate memory unit for the next microcode instruction (Block 820). This may be accomplished by checking for a certain address range, for a microcode branch instruction (e.g., a JUMP instruction) and the like.
  • a microcode branch instruction e.g., a JUMP instruction
  • BIOS within the memory element situated on the system substrate is executed (Block 870).
  • BIOS reserved for microcode patches is accessed.
  • the memory space may include an instruction requesting access the next instruction from the on-substrate memory unit in order to free up BIOS memory space (Block 875).
  • instructions are accessed from on-substrate memory unit until returned to the memory element (Blocks 880 and 885).
  • accesses are continued in BIOS memory space until the operating system (OS) is booted and the first instruction is fetched (Block 890).

Abstract

An electronic system and a processing unit supporting a flexible microcode space and Basic Input/Output System (BIOS) space. The electronic system features a first circuit board having a connector interconnected to a processing unit. The processing unit includes a second circuit board having an embedded controller and an on-substrate memory. The non-substrate memory is coupled to the embedded controller via a communication line routed through or placed on the second circuit board. In one embodiment, during a boot procedure and upon executing an instruction requesting data to be obtained from the on-substrate memory, the embedded controller obtains at least one microcode instruction from the on-substrate memory via the communication line.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to the field of electronics. More particularly, the invention relates to an electronic system and method for increasing flexibility and availability of microcode space and of Basic Input/Output System (BIOS) memory space.
2. Description of Related Art
One of the most critical elements of a computer is its microprocessor. In general, a microprocessor is an embedded controller that includes a processor core featuring processing logic and core memory. In many architectures (e.g., INTEL® microprocessor architectures such as PENTIUM® and PENTIUM PRO™--trademarks owned by Intel Corporation of Santa Clara, Calif.), a portion of the core memory is reserved to contain microcode. This portion is commonly referred to as microcode space.
Referring to FIG. 1, microcode space 100 usually is minimally sized to achieve cost savings and separated into two areas; namely, a first area 110 and a second area 120. The first area 110 is configured to store a set of n microcode instructions 1301 -130n ("μc instructions"), where "n" being a positive whole number. These microcode instructions 1301 -130n are executed after power-up to perform one or more tasks (e.g., initialization of state machines, diagnostics, etc.). Smaller in size than the first area 110, the second area 120 is microcode space configured to store m microcode patch instructions (MPI) 1401 -140m ("m" being a positive whole number). These microcode patch instructions 1401 -140m form one or more microcode patches, which are used to correct errors found in one or more microcode instruction(s) after being preloaded in silicon or in process functionality. These microcode patches allow minor fixes in microcode without requiring chip refabrication.
As shown in FIG. 2, for computers, the microprocessor 200 is usually attached directly to a motherboard 210 through a multi-pin socket 220. In this embodiment, microprocessor 200 includes core memory 230 capable of containing microcode. A fixed portion of this core memory 230 is writable during execution of Basic Input/Output System (BIOS) code contained in on-substrate, non-volatile memory 240. The storage space of this non-volatile memory 240 (referred to as a BIOS memory space) is also fixed in size.
Over the last few years, some disadvantages concerning the loading of microcode patches have been uncovered. For example, in order to avoid refabrication of the processor core due to faulty microcode, BIOS memory space has been configured to provide a microcode patch, if necessary, corresponding to each microcode executed by processor 200. This requires BIOS memory space to be structured so that it is capable of supporting a microcode patch for each version of microprocessor (e.g., desktop, server, laptop, etc.). However, unless the size and associated cost of non-volatile memory 240 is greatly increased, the limited size of BIOS memory space places a restriction on the number of microcode instructions and/or patches that can be supported by conventional PC platforms.
Additionally, each type of microprocessor may require different sizes of microcode space. Since microprocessors and memory devices containing BIOS are typically manufactured and distributed by different original equipment manufacturers (OEMs), available BIOS memory space may not match the needs of a given microprocessor when it is otherwise manufacturable. One solution would be to implement more memory dedicated to BIOS. The addition of memory would substantially increase the cost of the end product, which adversely effects the consuming public.
Another disadvantage is that microcode patches currently are distributed by diskette or through an electronic bulletin board on the Internet. These microcode patches are subsequently loaded into memory 230 of FIG. 2. However, this is an expensive distribution technique. Distribution through an electronic bulletin board over a Wide Area Network (WAN) may be less costly than using diskettes, but it is not a universal solution because certain products containing the microprocessor may not have access to the electronic bulletin board.
Yet another disadvantage is that the current microcode patch scheme is subject to reliability concerns when upgrading a microprocessor. For example, if the user upgrades his or her computer to include a more advanced microprocessor, two reliability problems may result. The first reliability problem may occur if non-volatile memory 240 is too small to support a microcode patch recommended for the more advanced microprocessor. This would require upgrading the motherboard 200 and/or replacement of non-volatile memory 240 which is more difficult and expensive to the user.
Similarly, the second reliability problem involves the condition where the microcode space of the more advanced microprocessor is too small to support an intended microcode patch. This would require re-coding of the microcode or refabrication of core memory of the microprocessor to increase its sizing. The later solution is contrary to the present trend of minimizing the amount of dedicated memory in order to optimize the use of real estate on the processor core. Either reliability problem would be costly to both the OEM as well as the final consumer.
Furthermore, the current architecture does not encourage development of a standard processor architecture to support multiple modes of functionality. Instead, each processor is specifically manufactured and loaded with microcode to support a particular operation mode (e.g., support operations of a desktop computer, OVERDRIVE® processor, server, etc.). This lack of standardization is due in part to a limited microcode space.
Likewise, each processor is loaded with one instruction set of microcode because, until now, it was infeasible for processor 200 to have access to multiple instruction sets. For example, these instruction sets could be directed to controlling different processor platforms such as a complex instruction set computer (CISC) platform or a reduced instruction set computer (RISC) platform.
Therefore, it would be desirous to develop an electronic system and method of operation which overcomes the above-described disadvantages.
SUMMARY OF THE INVENTION
In one embodiment, the present invention relates to a processing unit featuring a substrate with an embedded controller and a memory unit attached to the substrate. The memory unit is loaded with microcode. The embedded controller is interconnected to the memory unit via a communication line. This communication line enables microcode to be transferred from the memory unit to the embedded controller.
BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
FIG. 1 illustrates conventional microcode space of a processor.
FIG. 2 is a conventional motherboard implementation.
FIG. 3 is an illustrative embodiment of the electronic system including a processing unit implemented with the present invention.
FIG. 4 is a perspective view of an embodiment of the processing unit including a package covering a substrate.
FIGS. 5A and 5B are each an illustrative embodiment of the processing unit including at least an embedded controller and at least one on-substrate memory unit.
FIG. 6 is a first illustrative embodiment of the communication scheme between the processor and the on-substrate memory unit.
FIG. 7 is a second illustrative embodiment of the communication scheme between the processor, on-substrate memory containing BIOS and the on-substrate memory unit.
FIG. 8 is an illustrative flowchart of the operations of the present invention.
DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention relates to an electronic system and corresponding method for increasing flexibility and availability of microcode space and of Basic Input/Output System (BIOS) memory space. Herein, while certain details are set forth in order to provide a thorough understanding of the present invention, it is apparent to a person of ordinary skill in the art that the present invention may be practiced through many embodiments other than those illustrated. To avoid unnecessarily obscuring the present invention, certain well-known hardware and techniques are not set forth in detail.
In the following description, terminology is used to discuss certain features of the present invention. For example, an electronic system includes any type of computer or hardware product utilizing the present invention to enhance operability of its processor. A processor is any embedded controller, including processing logic and dedicated memory, which controls the operations of the electronic system. Examples of embedded controllers include microprocessors, microcontrollers, complex state machines and the like. A microcode patch is one or more microcode instructions provided to the processor for execution. A communication line is broadly defined as one or more information-carrying mediums (electrical wire, bus trace, fiber optics, etc.) or wireless communications through established techniques such as infrared (IR) and radio frequency (RF) signaling.
Referring to FIG. 3, an illustrative embodiment of an electronic system 300 implemented with the present invention is shown. The electronic system 300 (e.g., a computer) includes a system substrate 310 which controls the overall functionality of the electronic system 300. Normally formed with any type of material or materials upon which integrated circuit components can be attached, the system substrate 310 includes a memory element 320 and a connector 330. The memory element 320 includes non-volatile memory such as Read Only Memory (ROM), erasable programmable ROM (EPROM), flash memory and the like, although volatile memory could be used. The memory element 320 is attached to system substrate 310 and is connected to communication line 340. Communication line 340 is routed to connector 330 in order to establish communications between memory element 320 and a processing unit 350 coupled to the connector 330. Although connector 330 is shown as a standard female edge connector, any other style of connector may be used (e.g., a pin field connector).
Referring now to FIG. 4, processing unit 350 includes a processor substrate 400 formed from any type of material upon which integrated circuit components (not shown) can be attached through well-known techniques (e.g., solder connection, etc.). The processor substrate 400 is substantially covered by a package 410 in order to protect the integrated circuit components (not shown) from damage or harmful contaminants. The processor substrate 400 includes a connector 420, preferably adapted to establish a mechanical and electrical connection with connector 330. As shown, connector 420 includes any type of connector which mates with connector 330. In this embodiment, connector 420 includes a standard male edge connector.
Referring to FIGS. 5A-5B, illustrative embodiments of a top side and bottom side of processor substrate 400 are shown. The integrated circuit components of processor substrate 400 include, but are not limited or restricted to, at least one processor 500 and on-substrate memory. Of course, although not shown, discrete components (e.g., capacitors, oscillators, resistors, inductors, etc.) would be attached to processor substrate 400 in a selected manner to, among other things, maximize routability and decrease length of communication lines between these integrated circuit components.
As shown, processor 500 is a single microprocessor but may include one or more microprocessors or any other embedded controller. The on-substrate memory includes at least one memory unit 510 and possibly a cache subsystem 520. Cache subsystem 520 includes a plurality of memory components 5211 -5214 such as static random access memory (SRAM) components in communication with processor 500. Cache subsystem 520 further includes a tag RAM 522 used for supporting any cache coherency protocol (e.g., Modified, Exclusive, Shared, Invalid MESI cache protocol) collectively used by memory components 5211 -5214.
The on-substrate memory unit 510 would include, but not limited or restricted to, non-volatile memory such as ROM, EPROM, flash memory and the like. Memory unit 510 is situated on processor substrate 400 and is configured to potentially communicate with processor 500 and/or memory element 320 during a boot procedure. The location of on-substrate memory unit 510 is a design choice so long as the communication path meets requisite latency goals. For example, on-substrate memory unit 510 may be attached to processor substrate 400 or possibly mounted onto processor 500 through a stacking technology.
One function of on-substrate memory unit 510 is to provide additional storage space for microcode executed by processor 500. This microcode may include one or more microcode patches that are pre-loaded to support a variety of operation modes. For example, if processor 500 possesses an INTEL® microprocessor architecture, processor 500 may be configured to operate in several operation modes without architectural modifications. Examples of these operation modes include operations as a desktop processor, an OVERDRIVE® processor, mobile processor, or a server processor. Memory unit 510 may be loaded with microcode patches for each of the operation modes, although only one will be requested.
Another function of on-substrate memory unit 510 is to provide additional storage space for supporting various types of microcode instruction sets. These instruction sets could be directed to complex instruction set computer (CISC) platforms, reduced instruction set computer (RISC) platforms and the like.
Referring to FIG. 6, an illustrative embodiment of one communication scheme used to route data from the on-substrate memory unit 510 into the processor 500 of FIG. 5 is shown. In this embodiment, on-substrate memory unit 510 is implemented as a standard serial ROM, requiring serial communications to processor 500. If serial data transmissions are supported, processor 500 would need to be aware of the depth of the memory unit 510 because the addressing of particular microcode instructions is not available. Herein, serial transmission is a chosen embodiment for its cost-effectiveness and its minimal impact on processor size.
It is contemplated, however, that a number of other embodiments may be implemented. For example, in lieu of a serial ROM, another type of non-volatile memory supporting serial communications may be used. Alternatively, processor 500 may communicate with on-substrate memory unit 510 through a dedicated parallel bus. This type of embodiment would likely be used in supporting multiple instruction sets such as CISC and RISC based microcode. However, it would have substantial impact on processor lead count (e.g., pin count) because multiple data and/or address leads would be needed besides reset and other control pins.
Referring still to FIG. 6, the communication scheme includes a pair of shift elements (e.g., shift registers) 610 and 620, and a synchronization logic circuit 630. A first shift element 610 is adapted to control data transmissions into and/or from a data lead of the on-substrate memory unit 510. Likewise, a second shift element 620 is adapted to control data transmission into and/or from a data lead of processor 500. These shift elements 610 and 620 are synchronously clocked by synchronization logic circuit 630 through clock lines 631 and 632. The clock lines 631 and 632 provides clocking to control the transmissions of information, namely microcode instructions from first shift element 610. It is contemplated that (i) first shift element 610 may be implemented within on-substrate memory unit 510, and/or (ii) second shift element 620 may be implemented within processor 500, although these specific implementations are not required.
The shift elements 610 and 620 are further coupled together through an interconnect including a serial data line 640. Serial data line 640 provides the routing for such data to the second register 620. The interconnect may further be used as a debug mechanism by loading a potential microcode patch into the on-substrate memory unit 510, and monitoring the serial data line 640 during boot procedure of processor 500 in order to observe what microcode instructions are being transferred through serial data line 640 and whether resultant operations are as intended.
Referring now to FIG. 7, an illustrative embodiment of an alternative communication scheme is shown in which microcode patches are accessed during BIOS access of the boot procedure. This scheme involves communications between (i) processor 500 and on-substrate memory unit 510 situated on processor substrate 400 and (ii) memory element (e.g., system firmware) 320 placed on system substrate 300. In this embodiment, system firmware 320 is connected to processor 500 through a communication line 700. The communication line 700 includes at least address and data communication lines, which may be configured to support any bit width including 32-bit and 64-bit, respectively. The communication line 700 is further coupled to on-substrate memory unit 510.
During execution of the microcode instructions loaded in its microcode space, processor 500 may execute a microcode branch instruction such as a JUMP microcode instruction to a selected address ("A"). This would cause processor 500 to successively access one or more microcode instructions starting at the selected address location which falls within an address range associated with system firmware 320. However, instead of implementing the entire microcode patch to be accessed by processor 500, system firmware 320 includes a microcode instruction directing processor 500 to access one or more subsequent microcode instructions from on-substrate memory unit 510. This allows system firmware 320 to support multiple microcode patches and firmware extensions, while freeing up its available space reserved for BIOS. Referring to FIG. 8, a flowchart of the boot procedure performed by the electronic system of FIG. 3 is shown. First, the processor core is powered-up (Step 800). Thereafter, a Power-On Reset (RESET) signal is activated, which triggers a preliminary initialization stage in which certain state machines implemented in the processor core are initialized (Block 810). This preliminary initialization stage is performed through execution of a number of microcode instructions loaded in microcode space. During execution of each of these microcode instructions, a determination is made whether the microcode instruction requires an access of contents stored in the on-substrate memory unit for the next microcode instruction (Block 820). This may be accomplished by checking for a certain address range, for a microcode branch instruction (e.g., a JUMP instruction) and the like.
If the instruction requires access of the contents of the on-substrate memory unit, further instructions are accessed from on-substrate memory unit until an instruction indicates a return to the microcode space of the processor (Blocks 830 and 840). This may be accomplished through a RETURN instruction or addressing a specific address reserved for the microcode space. In this event or the case where the microcode instruction does not require accessing the contents of the on-substrate memory unit, a check is made as to whether the preliminary initialization stage has been completed (Block 850). If further microcode instructions need to be executed to complete the preliminary initialization stage, the process continues from Block 820 for the next microcode instruction. The preliminary initialization stage occurs between activation and inactivation of the RESET signal.
After the RESET signal goes inactive, initialization of other state machines (e.g., Advanced Programmable Interrupt Controllers) and setting the operation mode of the processor is completed (Block 860). Thereafter, BIOS within the memory element situated on the system substrate is executed (Block 870). During execution, memory space in BIOS reserved for microcode patches is accessed. The memory space may include an instruction requesting access the next instruction from the on-substrate memory unit in order to free up BIOS memory space (Block 875). In this event, instructions are accessed from on-substrate memory unit until returned to the memory element (Blocks 880 and 885). Thereafter, accesses are continued in BIOS memory space until the operating system (OS) is booted and the first instruction is fetched (Block 890).
While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications of the illustrative embodiments, as well as other embodiments of the invention, which are apparent to persons skilled in the art to which the invention pertains are deemed to lie within the spirit and scope of the invention.

Claims (18)

What is claimed is:
1. An electronic system comprising:
a first circuit board including a first connector; and
a processing unit coupled to the first circuit board, the processing unit including
a package,
a second circuit board substantially covered by the package, the second circuit board including a second connector protruding from the package for attachment to the first connector,
an embedded controller mounted onto the second circuit board at a first location and covered by the package, the embedded controller including an internal core memory to contain microcode, and
an on-substrate memory unit mounted on the second circuit board at a second location different than the first location and in communication with the embedded controller, the on-substrate memory unit containing additional microcode executable by the embedded controller.
2. The electronic system of claim 1, wherein the processing unit further includes a communication line coupling the embedded controller and the on-substrate memory unit, the communication line enables the microcode to be transferred to the embedded controller.
3. The electronic system of claim 2, wherein the communication line of the processing unit includes at least one bus trace routed through the second substrate.
4. The electronic system of claim 2, wherein the communication line of the processing unit includes a serial bus.
5. The electronic system of claim 4, wherein embedded controller of the processing unit includes a first shift element coupled to the serial bus and the on-substrate memory unit includes a second shift element coupled to the serial bus.
6. The electronic system of claim 5, wherein the processing unit further includes a synchronization circuit providing a synchronous clock signal to the first shift element and the second shift element.
7. The electronic system of claim 1, wherein the microcode loaded in the on-substrate memory unit includes a plurality of microcode patches, each microcode patch associated with a select operation mode of the processing unit.
8. The electronic system of claim 1, wherein the microcode loaded in the on-substrate memory includes an instruction set for at least one of a complex instruction set computer (CISC) platform and a reduced instruction set computer (RISC) platform.
9. The electronic system of claim 7, wherein the select operation mode is an operation mode for a desktop processor.
10. The electronic system of claim 7, wherein the selected operation mode is an operation mode for an OVERDRIVE® processor.
11. The electronic system of claim 7, wherein the select operation mode is an operation mode for a server processor.
12. The electronic system of claim 7, wherein the second location of the second circuit board is a backside of the second circuit board.
13. An electronic system comprising:
a system circuit board including a first connector;
a processing unit coupled to the system circuit board, the processing unit including
a package,
a processor circuit board substantially covered by the package, the processor circuit board including a second connector protruding from the package for attachment to the first connector,
an embedded controller coupled to the processor circuit board at a first location and covered by the package, the embedded controller including an internal core memory having a microcode space to contain microcode, and
an on-substrate memory unit coupled to the processor circuit board at a second location different than the first location and covered by the package, the on-substrate memory unit containing microcode executable by the embedded controller; and
a system firmware attached to the system circuit board and in communication with the embedded controller and the on-substrate memory unit, the system firmware is accessed to initiate a boot procedure and includes at least one microcode instruction, which when executed by the embedded controller, allows the microcode located in the on-substrate memory unit to be read and executed by the embedded controller during a boot procedure.
14. The electronic system of claim 13, wherein the system substrate includes a first connector and the processor substrate of the processing unit includes a second connector capable of mating with the first connector.
15. The electronic system of claim 13 further comprising a plurality of communication lines coupled to the embedded controller, the on-substrate memory unit and the system firmware, the plurality of communication lines enable data and address to be transferred at least from the embedded controller to both the on-substrate memory unit and the system firmware.
16. The electronic system of claim 13, wherein the system firmware includes a non-volatile memory.
17. The electronic system of claim 13, wherein the on-substrate memory unit includes a non-volatile memory.
18. The electronic system of claim 13, wherein the second location of the processor circuit board is a backside of the processor circuit board.
US08/864,555 1997-05-27 1997-05-27 Detachable processor module containing external microcode expansion memory Expired - Lifetime US6154834A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/864,555 US6154834A (en) 1997-05-27 1997-05-27 Detachable processor module containing external microcode expansion memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/864,555 US6154834A (en) 1997-05-27 1997-05-27 Detachable processor module containing external microcode expansion memory

Publications (1)

Publication Number Publication Date
US6154834A true US6154834A (en) 2000-11-28

Family

ID=25343524

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/864,555 Expired - Lifetime US6154834A (en) 1997-05-27 1997-05-27 Detachable processor module containing external microcode expansion memory

Country Status (1)

Country Link
US (1) US6154834A (en)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020116603A1 (en) * 2001-02-21 2002-08-22 Ownership Configurable instruction sequence generation
US20020116432A1 (en) * 2001-02-21 2002-08-22 Morten Strjbaek Extended precision accumulator
US20020140950A1 (en) * 2001-03-28 2002-10-03 Yasutoshi Ohta Image outputting apparatus, an image outputting method and a computer program thereof, and a computer-readable storage medium storing the program
US20030051119A1 (en) * 2001-09-10 2003-03-13 Li Hsiao Yi Scheme for implementing breakpoints for on-chip ROM code patching
US6542981B1 (en) * 1999-12-28 2003-04-01 Intel Corporation Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode
US6772328B1 (en) * 1999-06-18 2004-08-03 Samsung Electronics Co., Ltd. Dynamic initialization of processor module via motherboard interface
US20050038945A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for interfacing a portale processing unit with computer system
US20050038932A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for portable running operating system
US20050038960A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US20050038933A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for hibernating application state data on removable module
US20050038988A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for portable on-demand central processing unit
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US20050050339A1 (en) * 2003-08-14 2005-03-03 International Business Machines Corporation System and method for securing a portable processing module
US6973522B1 (en) * 1999-08-10 2005-12-06 Pentax Corporation Microcomputer with program-revision ability
US20060020778A1 (en) * 2004-07-22 2006-01-26 International Business Machines Corporation Programmable memory initialization system and method
US20060053323A1 (en) * 2000-09-20 2006-03-09 Mips Technologies Inc. Method and apparatus for disassociating power consumed within a processing system with instructions it is executing
US20060190518A1 (en) * 2001-02-21 2006-08-24 Ekner Hartvig W Binary polynomial multiplier
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US20070079288A1 (en) * 2005-09-30 2007-04-05 Chad Willwerth System and method for capturing filtered execution history of executable program code
US7237097B2 (en) 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
US20080162912A1 (en) * 2006-12-29 2008-07-03 Hon Hai Precision Industry Co., Ltd. Expansion device for bios chip
US7546443B2 (en) 1997-10-09 2009-06-09 Mips Technologies, Inc. Providing extended precision in SIMD vector arithmetic operations
US20100049962A1 (en) * 2008-08-25 2010-02-25 Asustek Computer Inc. Method for loading and updating central processing unit microcode into basic input/output system
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US20110019368A1 (en) * 2009-07-22 2011-01-27 International Business Machines Corporation Silicon Carrier Structure and Method of Forming Same
US8856423B1 (en) * 2007-04-10 2014-10-07 Marvell International Ltd. Dual-purpose nonvolatile memory for code and data storage
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
CN111935940A (en) * 2020-07-10 2020-11-13 北京比特大陆科技有限公司 Computing board assembly and server with same

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor
US5274829A (en) * 1986-11-05 1993-12-28 Hitachi, Ltd. Information processing apparatus having micro instructions stored both in on-chip ROM and off-chip memory
US5313699A (en) * 1989-09-22 1994-05-24 Unisys Corporation Methods for packaging circuit boards
US5355489A (en) * 1989-08-25 1994-10-11 International Business Machines Corp. Bios load for a personal computer system having a removable processor card
US5371869A (en) * 1991-04-03 1994-12-06 Samsung Electronics Co., Ltd. Micro-controller unit for selectively accessing an internal memory or an external extended memory using a read/write terminal
US5410707A (en) * 1991-04-29 1995-04-25 Intel Corporation Bootstrap loading from external memory including disabling a reset from a keyboard controller while an operating system load signal is active
US5481713A (en) * 1993-05-06 1996-01-02 Apple Computer, Inc. Method and apparatus for patching code residing on a read only memory device
US5495611A (en) * 1992-06-22 1996-02-27 International Business Machines Corporation Method and apparatus for dynamic load of an ABIOS device support layer in a computer system
US5495518A (en) * 1991-12-16 1996-02-27 Matsushita Electric Industrial Co., Ltd. Car telephone apparatus having operational control program replacing function
US5623665A (en) * 1992-01-13 1997-04-22 Sony Corporation Electronic apparatus for patching a read-only memory
US5737567A (en) * 1995-10-23 1998-04-07 Unisys Corporation Fast write initialization system for microcode RAM via data path array using pre-loaded flash memory an programmable control logic array
US5757690A (en) * 1997-04-23 1998-05-26 Exponential Technology, Inc. Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory
US5796972A (en) * 1997-01-14 1998-08-18 Unisys Corporation Method and apparatus for performing microcode paging during instruction execution in an instruction processor
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5829012A (en) * 1996-04-19 1998-10-27 Unisys Corporation System for programmably providing modified read signals within a ROM-based memory
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5983337A (en) * 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor
US5274829A (en) * 1986-11-05 1993-12-28 Hitachi, Ltd. Information processing apparatus having micro instructions stored both in on-chip ROM and off-chip memory
US5355489A (en) * 1989-08-25 1994-10-11 International Business Machines Corp. Bios load for a personal computer system having a removable processor card
US5313699A (en) * 1989-09-22 1994-05-24 Unisys Corporation Methods for packaging circuit boards
US5371869A (en) * 1991-04-03 1994-12-06 Samsung Electronics Co., Ltd. Micro-controller unit for selectively accessing an internal memory or an external extended memory using a read/write terminal
US5410707A (en) * 1991-04-29 1995-04-25 Intel Corporation Bootstrap loading from external memory including disabling a reset from a keyboard controller while an operating system load signal is active
US5495518A (en) * 1991-12-16 1996-02-27 Matsushita Electric Industrial Co., Ltd. Car telephone apparatus having operational control program replacing function
US5623665A (en) * 1992-01-13 1997-04-22 Sony Corporation Electronic apparatus for patching a read-only memory
US5495611A (en) * 1992-06-22 1996-02-27 International Business Machines Corporation Method and apparatus for dynamic load of an ABIOS device support layer in a computer system
US5481713A (en) * 1993-05-06 1996-01-02 Apple Computer, Inc. Method and apparatus for patching code residing on a read only memory device
US5737567A (en) * 1995-10-23 1998-04-07 Unisys Corporation Fast write initialization system for microcode RAM via data path array using pre-loaded flash memory an programmable control logic array
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5950012A (en) * 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5829012A (en) * 1996-04-19 1998-10-27 Unisys Corporation System for programmably providing modified read signals within a ROM-based memory
US5796972A (en) * 1997-01-14 1998-08-18 Unisys Corporation Method and apparatus for performing microcode paging during instruction execution in an instruction processor
US5757690A (en) * 1997-04-23 1998-05-26 Exponential Technology, Inc. Embedded ROM with RAM valid bits for fetching ROM-code updates from external memory
US5983337A (en) * 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070250683A1 (en) * 1997-10-09 2007-10-25 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US7197625B1 (en) 1997-10-09 2007-03-27 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US7546443B2 (en) 1997-10-09 2009-06-09 Mips Technologies, Inc. Providing extended precision in SIMD vector arithmetic operations
US20090249039A1 (en) * 1997-10-09 2009-10-01 Mips Technologies, Inc. Providing Extended Precision in SIMD Vector Arithmetic Operations
US8074058B2 (en) 1997-10-09 2011-12-06 Mips Technologies, Inc. Providing extended precision in SIMD vector arithmetic operations
US20110055497A1 (en) * 1997-10-09 2011-03-03 Mips Technologies, Inc. Alignment and Ordering of Vector Elements for Single Instruction Multiple Data Processing
US7793077B2 (en) 1997-10-09 2010-09-07 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6772328B1 (en) * 1999-06-18 2004-08-03 Samsung Electronics Co., Ltd. Dynamic initialization of processor module via motherboard interface
US6973522B1 (en) * 1999-08-10 2005-12-06 Pentax Corporation Microcomputer with program-revision ability
US6542981B1 (en) * 1999-12-28 2003-04-01 Intel Corporation Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode
US20060053323A1 (en) * 2000-09-20 2006-03-09 Mips Technologies Inc. Method and apparatus for disassociating power consumed within a processing system with instructions it is executing
US7620832B2 (en) 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US20060190518A1 (en) * 2001-02-21 2006-08-24 Ekner Hartvig W Binary polynomial multiplier
US7237097B2 (en) 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US20020116603A1 (en) * 2001-02-21 2002-08-22 Ownership Configurable instruction sequence generation
US7860911B2 (en) 2001-02-21 2010-12-28 Mips Technologies, Inc. Extended precision accumulator
US8447958B2 (en) 2001-02-21 2013-05-21 Bridge Crossing, Llc Substituting portion of template instruction parameter with selected virtual instruction parameter
US20070106889A1 (en) * 2001-02-21 2007-05-10 Mips Technologies, Inc. Configurable instruction sequence generation
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US20020178203A1 (en) * 2001-02-21 2002-11-28 Mips Technologies, Inc., A Delaware Corporation Extended precision accumulator
US7225212B2 (en) 2001-02-21 2007-05-29 Mips Technologies, Inc. Extended precision accumulator
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US20020116432A1 (en) * 2001-02-21 2002-08-22 Morten Strjbaek Extended precision accumulator
US20020140950A1 (en) * 2001-03-28 2002-10-03 Yasutoshi Ohta Image outputting apparatus, an image outputting method and a computer program thereof, and a computer-readable storage medium storing the program
US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
US20030051119A1 (en) * 2001-09-10 2003-03-13 Li Hsiao Yi Scheme for implementing breakpoints for on-chip ROM code patching
US6925521B2 (en) 2001-09-10 2005-08-02 Texas Instruments Incorporated Scheme for implementing breakpoints for on-chip ROM code patching
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US20050038960A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US7225448B2 (en) 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US20050038945A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for interfacing a portale processing unit with computer system
US7308584B2 (en) 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US20050038932A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for portable running operating system
US7225440B2 (en) 2003-08-14 2007-05-29 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US7120789B2 (en) 2003-08-14 2006-10-10 International Business Machines Corporation System and method for portable on-demand central processing unit
US7032053B2 (en) 2003-08-14 2006-04-18 International Business Machines Corporation System and method for loading, executing, and adapting a portable running operation system from a removable module to multiple computer systems
US20050038933A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for hibernating application state data on removable module
US20050038988A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for portable on-demand central processing unit
US20050050339A1 (en) * 2003-08-14 2005-03-03 International Business Machines Corporation System and method for securing a portable processing module
US20060020778A1 (en) * 2004-07-22 2006-01-26 International Business Machines Corporation Programmable memory initialization system and method
US7210030B2 (en) * 2004-07-22 2007-04-24 International Business Machines Corporation Programmable memory initialization system and method
US20070079288A1 (en) * 2005-09-30 2007-04-05 Chad Willwerth System and method for capturing filtered execution history of executable program code
US7805599B2 (en) * 2006-12-29 2010-09-28 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. Expansion device for BIOS chip
US20080162912A1 (en) * 2006-12-29 2008-07-03 Hon Hai Precision Industry Co., Ltd. Expansion device for bios chip
US8856423B1 (en) * 2007-04-10 2014-10-07 Marvell International Ltd. Dual-purpose nonvolatile memory for code and data storage
US20100049962A1 (en) * 2008-08-25 2010-02-25 Asustek Computer Inc. Method for loading and updating central processing unit microcode into basic input/output system
US20110019368A1 (en) * 2009-07-22 2011-01-27 International Business Machines Corporation Silicon Carrier Structure and Method of Forming Same
US8295056B2 (en) * 2009-07-22 2012-10-23 International Business Machines Corporation Silicon carrier structure and method of forming same
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
CN111935940A (en) * 2020-07-10 2020-11-13 北京比特大陆科技有限公司 Computing board assembly and server with same

Similar Documents

Publication Publication Date Title
US6154834A (en) Detachable processor module containing external microcode expansion memory
US5911084A (en) System and method for accessing peripheral devices on a non-functional controller
US7293165B1 (en) BMC-hosted boot ROM interface
US8145894B1 (en) Reconfiguration of an accelerator module having a programmable logic device
US5987536A (en) Computer system having flash memory bios which can be accessed while protected mode operating system is running
US20100049900A1 (en) Memory card and non-volatile memory controller thereof
KR20080109708A (en) Multiprocessor system and boot-up method of slave system
KR100579210B1 (en) Method and apparatus for providing a radio module for a computer system
US7000102B2 (en) Platform and method for supporting hibernate operations
KR19990041698A (en) Computer system capable of updating data of fixed flash ROM and its control method
US20070208926A1 (en) Implementing a microprocessor boot configuration prom within an FPGA
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
US7434103B2 (en) Program processing device
US6401201B2 (en) Arrangements offering firmware support for different input/output (I/O) types
JPH07200457A (en) Computer system
US7752429B2 (en) Computer system and boot code accessing method thereof
US20050044345A1 (en) Program processing device
US7228406B2 (en) Interacting with optional read-only memory
US7206930B2 (en) Method and apparatus for reducing strapping devices
US7111160B1 (en) Method and apparatus for using a development port for boot up
US7266680B1 (en) Method and apparatus for loading configuration data
US20130173901A1 (en) Multi-processor computer systems and methods
US6934537B2 (en) Radio communication device, method of and program for rewriting boot program therefor
US6742056B2 (en) Semiconductor device and method for initializing interface card using serial EEPROM
WO2000025208A1 (en) Processor system with fail safe bios configuration

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NEAL, JAMES;MULLANE, DAVID;ORTIZ, BERNARDO;REEL/FRAME:008584/0655

Effective date: 19970521

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

FPAY Fee payment

Year of fee payment: 12