DE102010034555A1 - Provide state memory in a system management mode processor - Google Patents
Provide state memory in a system management mode processor Download PDFInfo
- Publication number
- DE102010034555A1 DE102010034555A1 DE102010034555A DE102010034555A DE102010034555A1 DE 102010034555 A1 DE102010034555 A1 DE 102010034555A1 DE 102010034555 A DE102010034555 A DE 102010034555A DE 102010034555 A DE102010034555 A DE 102010034555A DE 102010034555 A1 DE102010034555 A1 DE 102010034555A1
- Authority
- DE
- Germany
- Prior art keywords
- smm
- processor
- state
- memory
- smi
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 130
- 241000721047 Danaus plexippus Species 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 12
- 238000011084 recovery Methods 0.000 claims description 2
- 241001536374 Indicator indicator Species 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 4
- 230000003068 static effect Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 13
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 229910003460 diamond Inorganic materials 0.000 description 3
- 239000010432 diamond Substances 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- QNRATNLHPGXHMA-XZHTYLCXSA-N (r)-(6-ethoxyquinolin-4-yl)-[(2s,4s,5r)-5-ethyl-1-azabicyclo[2.2.2]octan-2-yl]methanol;hydrochloride Chemical compound Cl.C([C@H]([C@H](C1)CC)C2)CN1[C@@H]2[C@H](O)C1=CC=NC2=CC=C(OCC)C=C21 QNRATNLHPGXHMA-XZHTYLCXSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Advance Control (AREA)
Abstract
Bei einer Ausführungsform beinhaltet die vorliegende Erfindung einen Prozessor, der einen On-Die-Speicher aufweist, wie z. B. ein statischer Direktzugriffspeicher, um einen Architektur-Zustand eines oder mehr Threads zu speichern, die bei Eintritt in einen Systemmanagement-Modus (system management mode, SMM) aus dem Architektur-Zustandsspeicher ausgelagert werden. Auf diese Weise kann Kommunikation dieser Zustands-Information an einen Systemmanagement-Speicher vermieden werden, wodurch Latenz verringert wird, die mit Eintritt in SMM verbunden ist. Ausführungsformen können ebenfalls den Prozessor in die Lage versetzen, einen Zustand von ausführenden Agenten zu aktualisieren, die entweder in einem langen Befehlsablauf sind oder in einem Systemmanagement-Unterbrechungs-(system management interrupt, SMI)-Blockiert-Zustand, um eine Anzeige an die Agenten innerhalb des SMM bereitzustellen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.In one embodiment, the present invention includes a processor having an on-die memory, such as an on-die memory. A static random access memory to store an architectural state of one or more threads that are swapped out of the architectural state memory upon entering a system management mode (SMM). In this way, communication of this state information to a system management memory can be avoided, thereby reducing latency associated with entry into SMM. Embodiments may also enable the processor to update a state of executing agents that are either in a long instruction flow or in a system management interrupt (SMI) -locked state to display to the agents within the SMM. Further embodiments are described and claimed.
Description
Hintergrundbackground
Die meisten Prozessoren eines Computersystems unterstützen einen speziellen Betriebsmodus, genannt Systemmanagement-Modus (system management mode, SMM). SMM stellt eine eigene Betriebsumgebung bereit, die der Betriebssystem-(operating system, OS)-Software gegenüber transparent ist. Dieser Modus wird oft von Originalgeräteherstellern (original equipment manufacturers, OEMs) genutzt, um spezielle Tasks, u. a. Systemmanagement, Geräte-, Energie- und Wärmemanagement durchzuführen. Serverbezogene Zuverlässigkeits-, Verfügbarkeits- und Wartungsfreundlichkeits-(reliability, availability and serviceability, RAS)-Funktionen werden normalerweise mittels SMM implementiert. In SMM wird typischerweise eingetreten, indem an den Prozessor eine Systemmanagement-Unterbrechungs-(system management interrupt, SMI)-Nachricht gesendet wird. Bei Bestätigung der SMI sichert der Prozessor den derzeitigen Prozessorkontext, auch Prozessor-Speicherzustand genannt, in einem Teil des Systemspeichers, der dem SMM spezifisch zugeteilt ist, genannt Systemmanagement-Direktzugriffspeicher (system management random access memory, SMRAM), und führt den SMI-Verarbeitungscode aus, der in SMRAM enthalten ist. Wenn der SMI-Verarbeiter seine Operationen ausgeführt hat, führt er einen speziellen (nur in SMM gültig) Wiederaufnahme-Befehl aus, der den Prozessor veranlasst, den gesicherten Prozessorkontext aus dem SMRAM erneut zu laden und das Ausführen der unterbrochenen Task wieder aufzunehmen.Most processors of a computer system support a special operating mode, called system management mode (SMM). SMM provides its own operating environment that is transparent to the operating system (OS) software. This mode is often used by original equipment manufacturers (OEMs) to perform special tasks, including: a. System management, device, energy and heat management. Server-related reliability, availability and serviceability (RAS) functions are typically implemented using SMM. SMM is typically entered by sending a system management interrupt (SMI) message to the processor. Upon assertion of the SMI, the processor saves the current processor context, also called the processor memory state, in a portion of the system memory specifically assigned to the SMM, called System Management Random Access Memory (SMRAM), and maintains the SMI processing code which is included in SMRAM. When the SMI processor has performed its operations, it executes a special (SMM only) resume command that causes the processor to reload the backed-up processor context from the SMRAM and resume execution of the interrupted task.
In einem Mehrprozessor-System wird im Allgemeinen eine SMI-Nachricht an alle Prozessoren gesendet. Der SMI-Verarbeiter wählt einen Prozessor, genannt SMM-Monarch, aus, um das Ereignis zu verarbeiten. Dieser Prozessor wartet, bis sich alle anderen Prozessoren innerhalb SMM zusammengefunden haben, bevor er das SMI-Ereignis verarbeitet. Nicht-Monarch-Prozessoren verweilen in SMM, bis der Monarch die Ereignisverarbeitung ausgeführt hat. Wenn das SMM-Ereignis verarbeitet wurde, signalisiert der Monarch den anderen Prozessoren, aus SMM auszutreten. Dieses synchronisierte Eintritts- und Austrittsverhalten wird implementiert, um jegliche Ressourcen-Konflikte zwischen den beiden Parallelumgebungen (OS und SMM) zu vermeiden. Das heißt, wenn einige Prozessoren in der OS-Umgebung aktiv sind und der Rest gleichzeitig in der SMM-Umgebung aktiv ist, ist es möglich, dass sie eine gemeinsam benutzte Ressource modifizieren und dadurch die Operationen des anderen stören, wodurch das System abstürzt. Zusätzlich können bestimmte SMM-Ereignisse nur von einem spezifischen Logik-Prozessor oder einem Satz an Logik-Prozessoren verarbeitet werden. Eine Übertragung stellt sicher, dass diese Bedingung immer erfüllt ist, da alle Logik-Prozessoren in SMI eintreten.In a multiprocessor system, an SMI message is generally sent to all processors. The SMI fabricator selects a processor, called SMM Monarch, to process the event. This processor waits for all other processors within SMM to assemble before processing the SMI event. Non-Monarch processors linger in SMM until the monarch has performed event processing. When the SMM event has been processed, the monarch signals the other processors to exit SMM. This synchronized entry and exit behavior is implemented to avoid any resource conflicts between the two parallel environments (OS and SMM). That is, when some processors are active in the OS environment and the remainder are active in the SMM environment at the same time, they are likely to modify one shared resource and thereby interfere with the other's operations, causing the system to crash. In addition, certain SMM events can only be processed by a specific logic processor or a set of logic processors. A transmission ensures that this condition is always met, since all logic processors enter SMI.
Daher ist SMI-Verarbeitung in einem Mehrprozessor-System komplex und kann alle Systemressourcen verbrauchen, wodurch das Verarbeiten anderer nützlicher Arbeiten verhindert wird, da ein Prozessor, solange er in SMM ist, dem Betriebssystem nicht zur Verfügung steht.Therefore, SMI processing in a multi-processor system is complex and can consume all system resources, thereby preventing the processing of other useful work, since a processor, while in SMM, is not available to the operating system.
Kurze Beschreibung der ZeichnungenBrief description of the drawings
Ausführliche BeschreibungDetailed description
Bei verschiedenen Ausführungsformen kann On-Die-Speicher als Alternative zum Gebrauch von externem physikalischem Speicher verwendet werden, um den Speicherzustand von einzelnen Threads bei SMM-Eintritt/Austritt zu speichern. Im Gegensatz dazu hängen derzeitige Systeme von externem physikalischem Speicher ab, um in SMM ein- und auszutreten. Diese SMM-Abhängigkeit von System-RAM führt zu Skalierung, leistungs- und zuverlässigkeitsbezogenen Einschränkungen bei missionskritischen Anwendungen, und kann vermieden werden, indem eine erfindungsgemäße Ausführungsform verwendet wird. Es ist anzumerken, dass der Begriff „Thread”, wie hierin verwendet, ebenfalls auf einen Hardware-Thread verweisen kann, der Speicher in einem Prozessor für den Architektur-Zustand beinhaltet, der mit einem Prozess verbunden ist (z. B. eine Registerdatei und verbundene Konfigurations- und Zustandsregister). Wie hierin verwendet, wird der Begriff „Hardware-Thread” synonym mit dem Begriff „Logik-Prozessor” verwendet. Jeder Prozessorkern kann mehrere Logik-Prozessoren beinhalten, von denen jeder einen zugehörigen Architektur-Zustandsspeicher aufweist, der aber andere Kernressourcen, wie z. B. Front-End-Einheiten, Ausführungseinheiten und so weiter, gemeinsam benutzt.In various embodiments, on-die memory may be used as an alternative to using external physical memory to store the memory state of individual threads at SMM entry / exit. In contrast, current systems rely on external physical memory to enter and exit SMM. This SMM dependency on system RAM results in scaling, performance and reliability related limitations in mission critical applications, and can be avoided by using an embodiment of the invention. It should be noted that the term "thread" as used herein may also refer to a hardware thread that includes memory in an architectural state processor that is connected to a process (eg, a register file and connected configuration and status registers). As used herein, the term "hardware thread" is used synonymously with the term "logic processor". Each processor core may include a plurality of logic processors, each of which has an associated architectural state memory, but which may have other core resources, such as core resources. As front-end units, execution units and so on, shared.
Bei unterschiedlichen Implementierungen kann der On-Die-Speicher, der bereitgestellt ist, um den Speicherzustand von jeglichen aktiven Threads während eines SMM zu speichern, ein On-Die statischer RAM (static RAM, SRAM) oder eine Registerdatei in dem Prozessor selbst sein, um als kleiner zugehöriger Speicher zum Speichern des Speicherzustands zu dienen. Einige Prozessoren können einen On-Die-SRAM für spezifische Tasks wie Power Management beinhalten, z. B. einen OS-verwalteten Energiesparzustand, wie z. B. gemäß einem Advanced Configuration and Power Interface(ACPI)-Zustand (z. B. C6-Zustand oder andere Power Management-Operationen). Bei solchen Prozessoren kann ein Teil dieses SRAM, der auf einer Per-Thread-Basis aufgeteilt ist, für den SRAM-Speicherzustand eines jeden Threads reserviert werden. Als Beispiel kann jeder Logik-Prozessor 1 Kilobyte (KB) von SRAM-Speicher für SMM-Speicherzustand verwenden. Wenn ein gegebener Prozessor diese Menge an SRAM nicht für SMM-Speicherzustand abgeben kann, kann eine Ausführungsform implementiert werden, sodass er SRAM einsetzen kann, der für C6-Abläufe reserviert ist. In diesem Fall können C6/C7-Transaktionen innerhalb SMM in einen niedrigeren Energiesparzustand (z. B. C3) zurückversetzt werden, um eine gegenseitig exklusive Verwendung des gemeinsam benutzten SRAM-Raums für SMM-Speicherzustand sicherzustellen. Einige Prozessoren implementieren keinen zugehörigen SRAM für das Sichern von C6-Zuständen und setzen stattdessen einen Teil eines Last Level Cache (LLC) ein, um Prozessorzustand während einer Sicherung von C6-Zustand zu speichern. Bei diesen Prozessoren kann der SMM-Speicherzustand in dem LLC gespeichert werden.In various implementations, the on-die memory provided may be the memory state of any active threads during an SMM, an on-the-static RAM (SRAM) or a register file may be in the processor itself to serve as a smaller associated memory for storing the memory state. Some processors may include on-die SRAM for specific tasks such as power management, e.g. B. an OS-managed energy-saving state, such. For example, according to an Advanced Configuration and Power Interface (ACPI) state (eg, C6 state or other power management operations). In such processors, a portion of this SRAM, which is split on a per-thread basis, may be reserved for the SRAM memory state of each thread. As an example, each logic processor may use 1 kilobyte (KB) of SRAM memory for SMM memory state. If a given processor can not emit this amount of SRAM for SMM memory state, an embodiment may be implemented such that it can employ SRAM reserved for C6 operations. In this case, C6 / C7 transactions within SMM may be returned to a lower power-saving state (eg, C3) to ensure mutually exclusive use of the shared SMM memory state SRAM space. Some processors do not implement an associated SRAM for backing up C6 states and instead use part of a Last Level Cache (LLC) to store processor state during a C6 state save. In these processors, the SMM memory state may be stored in the LLC.
Sobald er gespeichert ist, kann auf diesen internen SMM-Speicherzustand auf verschiedene Art und Weise zugegriffen werden. Beispielsweise kann auf den internen Zustand mittels modellspezifischer Register-(model-specific register, MSR)-Adressierung auf einer Per-Thread-Basis oder eines rückwärtskompatiblen Mechanismus zugegriffen werden. Herkömmlicherweise kann ein Prozessor bei bestimmten Systemspeicheradressen auf einen SMM-Speicherzustand zugreifen. Der rückwärtskompatible Mechanismus beinhaltet Logik in dem Prozessor, die den Zugriff eines Logik-Prozessors auf diese Legacy-Speicheradressen festhält und diese an den entsprechenden SRAM-Ort umleitet. Solch eine Umleitung kann implementiert werden, wenn absolute Rückwärtskompatibilität bei bestehender Basis-Eingabe-/Ausgabe-System-(basic input/output system, BIOS)-Software erforderlich ist. Diese MSRs können nur in SMM-Modus gelesen oder beschrieben werden und folgen Beschränkungen, die mit dem SMM-Speicherzustand verbunden sind. Wenn ein Logik-Prozessor Zugriff auf einen Speicherzustand eines anderen Prozessors benötigt, kann dies über ein Software-Protokoll erreicht werden.Once stored, this internal SMM memory state can be accessed in a variety of ways. For example, the internal state may be accessed using model-specific register (MSR) addressing on a per-thread basis or a backward compatible mechanism. Conventionally, a processor may access an SMM memory state at certain system memory addresses. The backward compatible mechanism includes logic in the processor that captures a logic processor's access to these legacy memory addresses and redirects them to the appropriate SRAM location. Such a redirect can be implemented if absolute backwards compatibility is required with existing basic input / output system (BIOS) software. These MSRs can only be read or written in SMM mode and follow restrictions associated with the SMM memory state. If a logic processor needs access to a memory state of another processor, this can be accomplished via a software protocol.
Bei einigen Ausführungsformen kann ein zugehöriges Prozessor-Identifikator-Leaf (z. B. ein CPUID-Leaf) oder ein Bereich davon oder ein featureermöglichendes MSR-(modellspezifisches Register)-Bit verwendet werden, um die Verwendung des internen SRAM zu ermöglichen. Es wird Bezug genommen auf
Wie in
Zwischen der Front-End-Einheit
Bei dem Beispiel, das in
Wie weiter gezeigt, kann Registerdatei
Unter weiterer Bezugnahme auf
Wie in
Durch Speichern des SMM-Speicherzustands intern in dem Prozessor, kann die Zuverlässigkeit und Robustheit des Systems verbessert werden. Das heißt, der physikalische Speicher, der typischerweise ein Satz an externen dynamische Direktzugriffspeicher-(dynamic random access memory, DRAM)-Geräten ist, auf denen der SMRAM verbleibt, ist anfällig für Speicherfehler. Ohne eine erfindungsgemäße Ausführungsform laufen SMM-Operationen aus diesem externen Speicher und sind deshalb unter Fehlerbedingungen nicht zuverlässig. Wenn stattdessen eine erfindungsgemäße Ausführungsform verwendet wird, kann die Zuverlässigkeit von SMRAM-Speicher verbessert werden, indem ein SMI-Verarbeiter von nicht-flüchtigem Raum ausgeführt wird, wenn Fehler verarbeitet werden. Beispielsweise kann der SMM-Verarbeiter von einem robusteren Speicher, wie BIOS-Flash oder externem SRAM laufen, während er Speicherfehler verarbeitet. Ebenfalls, wenn SMM-Speicherzustand sich intern zu dem Prozessor befindet, kann der Architektur-Zustand dieses Speichers nur durch MSRs der äußeren Software offengelegt werden. Der mikroarchitektonische Zustand des Prozessors, der benötigt wird, um Maschinenausführungszustand wiederherzustellen, nachdem SMM-Code einen „Wiederaufnahme-(Resume, RSM)”-Befehl ausgeführt hat, muss nicht der äußeren Software offengelegt werden, da diese keine legitime Verwendung für diesen internen Maschinenzustand hat. Dies bedeutet ebenfalls, dass bösartiger Software-Code keinen Zugriff auf den empfindlichen mikroarchitektonischen Zustand hat (wie es sonst der Fall wäre, wenn der Speicher der gesicherten Daten in SMRAM ist), wodurch die Maschine sicherer und robuster gemacht wird.By storing the SMM memory state internally in the processor, the reliability and robustness of the system can be improved. That is, the physical memory, which is typically a set of external dynamic random access memory (DRAM) devices on which the SMRAM remains, is susceptible to memory errors. Without an embodiment of the invention, SMM operations run from this external memory and are therefore not reliable under fault conditions. If an embodiment of the invention is used instead, the reliability of SMRAM memory can be improved by running a nonvolatile space SMI processor when processing errors. For example, the SMM processor may run from a more robust memory, such as BIOS flash or external SRAM, while processing memory errors. Also, if SMM memory state is internal to the processor, the architectural state of this memory can only be exposed by external software MSRs. The microarchitectural state of the processor needed to restore machine execution state after SMM code has executed a "resume (RSM)" command need not be disclosed to the outside software, as this is not a legitimate use for has this internal machine state. This also means that malicious software code does not have access to the sensitive microarchitecture state (as it would otherwise if the memory of the backed up data is in SMRAM), making the machine more secure and robust.
Ausführungsformen können ebenfalls Leistung und Latenz verbessern. Viele Serveranwendungen/Betriebssysteme sind NUMA-(nichteinheitliche Speicherarchitektur)-optimiert, und BIOS konfiguriert Speicher typischerweise so, dass der gesamte SMRAM, der ein durchgängiger Speicherbereich ist, einem einzelnen Sockel zugeordnet wird. Daher erscheinen alle SMM-Speicherzustands-/Zustands-Wiederherstellungs-Operationen als entfernte Schreibzugriffe/entfernte Lesezugriffe für alle Logik-CPUs, mit Ausnahme derjenigen, die in einem Sockel enthalten sind, bei denen der SMRAM lokal befindlich ist. Leistungsanalyse für eine Serverkonfiguration mit vier Sockeln, von denen jeder 12 Kerne umfasst, zeigt an, dass SMM-Speicherzustands-Schreiboperationen durch die Kopplungsstruktur und Speicherbandbreite beschränkt sein und bis zu 5 Mikrosekunden dauern können. Da Anwendungen immer stärker NUMA-optimiert werden, können Prozessoren weniger Puffer für entfernten Datenverkehr zuordnen. Wenn dies geschieht, benötigen SMRAM-Speicherzustands-Schreib- und -Leseoperationen sogar noch mehr Zeit. Betriebssysteme haben typischerweise einen Grenzwert, wie lange eine CPU in SMM verweilen kann, um eine akzeptable Echtzeit-Leistung aufrechtzuerhalten und um Zeitüberschreitungen bei Hochgeschwindigkeits-Netzwerkverbindungen zu vermeiden.Embodiments may also improve performance and latency. Many server applications / operating systems are NUMA (nonuniform memory architecture) optimized, and BIOS typically configures memory so that all SMRAM, which is a contiguous memory area, is mapped to a single socket. Therefore, all SMM memory state / state recovery operations appear as remote write / read accesses for all logic CPUs, except those contained in a socket where the SMRAM is local. Performance analysis for a four socket server configuration, each comprising 12 cores, indicates that SMM memory state writes may be limited by the coupling structure and memory bandwidth and may take up to 5 microseconds. As applications become more NUMA-optimized, processors can allocate fewer buffers for remote traffic. When this happens, SMRAM memory state write and read operations take even more time. Operating systems typically have a limit to how long a CPU can stay in SMM to maintain acceptable real-time performance and to avoid timeouts on high-speed network connections.
Überschreiten dieses Grenzwerts beeinträchtigt die Reaktionsfähigkeit des OS, Anwendungslatenzen, und kann ebenfalls zu Fehlfunktionen des Betriebssystems führen. Dementsprechend verringert das Verwenden eines On-Die-SMM-Speicherzustands gemäß einer erfindungsgemäßen Ausführungsform die Latenz und ermöglicht daher weitere Zeit, die einem SMM-Verarbeiter zugeteilt wird, um das SMM-Ereignis (die nützliche Arbeit des SMM) zu bedienen.Exceeding this limit will affect the OS's responsiveness, application latencies, and may also cause the operating system to malfunction. Accordingly, using an on-die SMM memory state in accordance with one embodiment of the invention reduces latency and therefore allows additional time allocated to an SMM processor to service the SMM event (the useful work of the SMM).
Zusätzlich können Ausführungsformen Skalierbarkeit verbessern. In einem Mehrprozessor-System, wenn eine SMI auftritt, muss jeder Thread in dem System seinen Speicherzustand in seinem eigenen zugehörigen Speicherzustandsbereich in externem Systemspeicher speichern, wie während des Systemstarts durch das System-BIOS definiert und reserviert. Die Gesamtmenge an physikalischem Speicher, der als der SMRAM-Raum reserviert werden soll, der erforderlich ist, um alle Speicherzustände aller Threads in dem System zu erfassen, steigt linear mit der Anzahl an Threads in dem System. Bei einem Mehrkern-, Mehrsockel-System mit symmetrischer Multi-Threading-Unterstützung kann die Menge an Raum ziemlich groß sein (und kann sich bei einer Ausführungsform in der Größenordnung von circa 256 KB befinden). Durch Bereitstellen von On-Die-Speicher für SMM-Speicherzustand kann der Bedarf an einem ständig wachsenden SMRAM-Bereich, um alle Kerne und zugehörigen Threads davon unterzubringen, vermieden werden, wodurch das Skalieren vereinfacht wird. Er beseitigt ebenfalls die Notwendigkeit, dass BIOS einen einzigartigen, nicht-überlappenden Bereich in SMRAM für jeden Thread findet und zuordnet. Noch weiter erspart dies ebenfalls den Speicherschutzbereichen in Silizium implementiert zu werden. Bei Hot-Plug-Szenarien liegt der architektonisch definierte SMM-Speicherzustandsbereich in SMRAM unter 1 MB. Ohne eine erfindungsgemäße Ausführungsform legt BIOS einen Speicherschutzbereich fest und lagert Daten aus, um OS-Angriffe und/oder -Störung zu vermeiden, wenn neue Prozessoren hinzugefügt werden. Ausführungsformen beseitigen den Bedarf dies zu tun, da der Speicherzustand nicht länger in dem sichtbaren OS-Speicher gespeichert ist.Additionally, embodiments may improve scalability. In a multi-processor system, when an SMI occurs, each thread in the system must store its memory state in its own associated memory state area in external system memory as defined and reserved by the system BIOS during system boot. The total amount of physical memory that is to be reserved as the SMRAM space required to capture all storage states of all threads in the system increases linearly with the number of threads in the system. In a multi-core, multi-socket system with symmetric multi-threading support, the amount of space can be quite large (and may be on the order of about 256 KB in one embodiment). By providing on-die storage for SMM memory state, the need for an ever-growing SMRAM area to accommodate all cores and associated threads thereof can be avoided, thereby simplifying scaling. It also eliminates the need for BIOS to find and map a unique, non-overlapping area in SMRAM for each thread. Still further, this also saves the memory protection areas from being implemented in silicon. For hot plug scenarios, the architecturally defined SMM storage state area in SMRAM is less than 1 MB. Without an embodiment of the invention, BIOS sets a memory protection area and stores data to avoid OS attacks and / or interference as new processors are added. Embodiments eliminate the need to do so because the memory state is no longer stored in the visible OS memory.
Es wird Bezug genommen auf
Dementsprechend kann bei verschiedenen Ausführungsformen jeder Prozessor
Es wird Bezug genommen auf
Unter der weiteren Bezugnahme auf
Es kann sodann bestimmt werden, ob SMM-Operationen ausgeführt worden sind (Raute
Wie vorstehend beschrieben, kann Siliziumspeicherung eines aktiven Zustands SMM-Latenz verringern. Ausführungsformen können weiter Latenz verringern, indem ein schnellerer Eintritt in SMM in bestimmten Situationen ermöglicht wird, wie nun erörtert wird.As described above, silicon storage of an active state can reduce SMM latency. Embodiments may further reduce latency by enabling faster entry into SMM in certain situations, as will now be discussed.
SMM-Latenz wird definiert als die Dauer, für die ein Prozessor per einzelner SMI in der SMM-Umgebung ist. Es gibt zwei hauptsächliche Kontributoren für vollständige SMM-Latenz, Prozessor-Overhead und OEM-BIOS-Code. Diese Latenz muss unter Kontrolle gehalten werden, um Nebeneffekte auf die OS-Umgebung, wie z. B. Zeitüberschreitungen und Taktverschiebungen, zu vermeiden. Weitere Anforderungen erfordern, dass diese Latenz verringert wird, was schwierig umzusetzen sein wird. Derzeit ist vorgeschrieben, dass die SMI-Latenz unter circa 190 Mikrosekunden sein soll. Neue Gebrauchsmodelle, wie Internet-Portal-Daten-Center und Utility Computing, erwarten vorhersehbarere Latenzen von Anwendungen. Folglich drängen OS-Anbieter auf weitere Verringerungen der SMM-Latenz. Auf der anderen Seite haben andere Technologien das Potenzial, SMI-Latenz über die Zeit zu erhöhen. Beispielsweise bedeutet das Drängen der Industrie auf Mehrkern-Prozessoren, dass ein SMI-Verarbeiter eine stetig wachsende Anzahl an Prozessorkernen zusammenfinden muss. Neue SMM-basierte Fähigkeiten üben ebenfalls weiteren Druck auf SMM-Latenz aus. Beispielsweise sind Hochleistungs-RAS-Fähigkeiten von SMM abhängig. Zusätzlich setzen einige OEMs SMM ein, um einzigartige Power Management-Fähigkeiten zu liefern, um ihre Produkte abzugrenzen. Viele OEMs sind bekannt dafür, SMIs zu erzeugen, die bis zu 8-mal pro Sekunde hoch sind.SMM latency is defined as the length of time that a single-SMI processor is in the SMM environment. There are two major contributors for complete SMM latency, processor overhead, and OEM BIOS code. This latency must be kept under control to avoid side effects on the OS environment, such as: B. timeouts and clock shifts to avoid. Other requirements require that this latency be reduced, which will be difficult to implement. It is currently mandated that the SMI latency should be below about 190 microseconds. New utility models, such as Internet portal data center and utility computing, expect more predictable application latencies. As a result, OS providers are pushing for further reductions in SMM latency. On the other hand, other technologies have the potential to increase SMI latency over time. For example, the industry's push for multi-core processors means that an SMI fabricator has to assemble a growing number of processor cores. New SMM-based capabilities also put further pressure on SMM latency. For example, high performance RAS capabilities are dependent on SMM. In addition, some OEMs are putting SMM to deliver unique power management capabilities to differentiate their products. Many OEMs are known to produce SMIs that are up to 8 times per second high.
Bestimmte Befehlssatz-Architekturen (instruction set architectures, ISAs) beinhalten Befehle, wie z. B. ein Zurückschreib- und Invalidierungsbefehl (z. B. wbinvd), der alle Cache-Leitungen invalidiert und diese zurück in den Speicher schreibt. Diese Operationen können eine sehr lange Zeit für die Ausführung benötigen, z. B. im Größenbereich von 103 bis 107 Prozessor-Zyklen, insbesondere bei Prozessoren, die große Cache-Größen unterstützen. Zusätzlich gibt es bestimmte Prozessorzustände, wo eine SMI-Antwort verzögert sein kann (z. B. C3 und C6 niedrige Prozessorzustände). Insgesamt können diese Befehls- und Prozessorzustände als „lange Ablauf”-Zustände bezeichnet werden, was in der Definition einen Befehl oder Prozess bedeutet, der eine ungewöhnlich lange Anzahl an Zyklen für die Ausführung benötigen kann (z. B. in der Größenordnung von 103 Takte), und der einen Eintritt in SMM verzögern kann. Bei einer Ausführungsform kann jeder Ablauf, der SMM-Eintritt um mehr als 5 Mikrosekunden verzögert, als langer Ablauf bezeichnet werden. Hinsichtlich SMM, wenn einer oder mehr Logik-Prozessoren sich in einem langen Ablauf befindet, verzögert er SMM-Eintritt.Certain instruction set architectures (ISAs) include instructions such as: For example, a restore and invalidate command (eg, wbinvd) invalidates all cache lines and writes them back to memory. These operations may take a very long time to execute, e.g. In the size range of 10 3 to 10 7 processor cycles, especially for processors that support large cache sizes. In addition, there are certain processor states where an SMI response may be delayed (eg, C 3 and C 6 low processor states). Overall, these command and processor states may be termed "long drain" states, which in the definition means a command or process that may take an unusually long number of cycles to execute (eg, on the order of 10 3) Bars), and which can delay entry into SMM. In one embodiment, any procedure that delays SMM entry by more than 5 microseconds may be termed a long expiration. With regard to SMM, when one or more logic processors are in a long run, it delays SMM entry.
Wie vorstehend erklärt, wartet der SMM-Monarch, bis alle erwarteten Logik-Prozessoren in SMM eingetreten sind. Bei Eintritt in SMM setzt jeder Prozessor sein eigenes Bit in SMRAM, wodurch angezeigt wird, dass er in SMM eingetreten ist. Der Monarch wartet, bis alle erwarteten Prozessoren ihre Bits gesetzt haben. Wenn einer oder mehr Logik-Prozessoren sich in einem langen Ablauf befindet und spät in SMM eintritt, hält er den SMM-Monarch auf, wodurch die SMM-Latenz erhöht wird. Zusätzlich gibt es bestimmte Architektur-Zustände, wie z. B. Wait For Startup Interprocessor Interrupt (WFS)- und TXT-Sleep-Zustand, wo ein SMI-Ereignis inhibiert wird. Wenn das OS/BIOS einen oder mehr Logik-Prozessoren in einen SMI-inhibierten Zustand versetzt, tritt er nicht in SMM ein, bis das OS/BIOS ihn ausdrücklich aus diesem Zustand herausbringt. Da ein SMI-Ereignis alle anderen Prozessoren in SMM versetzt, ist das OS nicht in der Lage, die SMI zu demaskieren. In diesem Szenario muss der SMM-Monarch sich auf eine lange Zeitüberschreitung verlassen, um die Gegenwart eines SMI-inhibierten Prozessors zu bestimmen. Diese Zeitüberschreitungen verzögern SMM-Rendezvous und entweder erhöhen sie die Gesamt-SMM-Latenz oder verringern die Menge an Zeit, die für die Verarbeitung von SMM-Ereignis zur Verfügung steht.As explained above, the SMM monarch waits until all expected logic processors have entered SMM. Upon entering SMM, each processor sets its own bit in SMRAM, indicating that it has entered SMM. The monarch waits until all expected processors have set their bits. If one or more logic processors are in a long run and enter SMM late, they will stall the SMM monarch, increasing SMM latency. In addition, there are certain architectural states, such. B. Wait For Startup Interprocessor Interrupt (WFS) and TXT Sleep states, where an SMI event is inhibited. When the OS / BIOS places one or more logic processors in an SMI-inhibited state, it does not enter SMM until the OS / BIOS explicitly releases it from that state. Because an SMI event puts all other processors in SMM, the OS is unable to unmask the SMI. In this scenario, the SMM monarch must rely on a long timeout to determine the presence of an SMI-inhibited processor. These timeouts delay SMM rendezvous and either increase overall SMM latency or decrease the amount of time available for SMM event processing.
Bei verschiedenen Ausführungsformen kann der Bedarf an Zeitüberschreitungen innerhalb SMM vermieden werden, sogar dort, wo einige Logik-Prozessoren sich in einem langen Ablauf befinden. Das Beseitigen solcher Zeitüberschreitungen kann die durchschnittliche SMM-Latenz um 10–20% verbessern und ungünstigste SMM-Latenz um zumindest ein paar Millisekunden.In various embodiments, the need for timeouts within SMM can be avoided, even where some logic processors are in a long run. Removing such timeouts can improve the average SMM latency by 10-20% and worst-case SMM latency by at least a few milliseconds.
Ausführungsformen verlassen sich auf die Tatsache, dass ein Prozessor, der sich in einem langen Ablauf oder in einem SMI-inhibierten Zustand befindet, wahrscheinlich nicht auf eine gemeinsam benutzte Ressource zugreift. Außerdem hat solch ein Prozessor wahrscheinlich die SMI nicht verursacht, und daher ist seine Teilnahme für SMI-Verarbeitung nicht notwendig. Daher kann der SMM-Monarch mit SMM-Verarbeitung fortfahren, bevor solch ein Prozessor in einen SMM eingetreten ist.Embodiments rely on the fact that a processor that is in a long-running or SMI-inhibited state is unlikely to access a shared resource. In addition, such a processor has probably not caused the SMI, and therefore its participation is not necessary for SMI processing. Therefore, the SMM monarch can continue SMM processing before such a processor has entered an SMM.
Vor dem Fortfahren muss der SMM-Monarch jedoch in der Lage sein, zuverlässig zu ermitteln, welche Prozessoren sich in einem langen Ablauf und/oder SMI-inhibierten Zustand befinden. Um Prozessoren zu ermitteln, die sich geschäftig in einem langen Ablauf oder in einem SMI-inhibierten Zustand befinden, können Ausführungsformen Indikatoren für diese Zustände bereitstellen, wie z. B. mittels Bitmaps. Bei einer Ausführungsform können solche Indikatoren über global sichtbare Konfigurations-Register bereitgestellt werden, genannt LONG_FLOW_INDICATION und SMI_INHIBITED_INDICATION. Bei dieser Ausführungsform kann ein Bit zu jedem Logik-Prozessor in einem Sockel zugeteilt werden. Als ein Beispiel können die Register von Register
Bei einer Implementierung sichert der Monarch-Prozessor seinen Zustand und lässt den SMM-Vorspann-Code laufen, bevor er eine Überprüfung der Indikator-Register ausführt. Diese Schritte können leicht mehr als 0,5 Mikrosekunden beanspruchen. Diese Dauer ist viel höher als die Laufzeit für jegliche In-Flight-Unterbrechung, wodurch sichergestellt wird, dass es keine Wettlaufsituation zwischen SMI-Lieferung an einen Kern und ein Lesen seiner Indikator-Register gibt. Wenn die Verzögerung bei bestimmten Konfigurationen geringer ist, kann der Monarch-Prozessor eine kleine Verzögerungsschleife einsetzen, um dies zu kompensieren.In one implementation, the monarch processor saves its state and runs the SMM header code before performing a check on the indicator registers. These steps can easily be more than 0.5 microseconds claim. This duration is much longer than the runtime for any in-flight disruption, ensuring that there is no race between SMI delivery to a core and reading its indicator registers. If the delay is lower in certain configurations, the Monarch processor can use a small delay loop to compensate for this.
Es wird Bezug genommen auf
Als Nächstes kann ein Indikator in einer SMM-Indikator-Speicherabbildung für jeden Thread eingestellt werden, der in einen SMM-Rendezvous-Zustand eintritt (Block
Unter weiterer Bezugnahme auf
Dementsprechend geht die Steuerung für den Monarch-Thread weiter zu Block
Ausführungsformen ermöglichen somit eine Ausführung von SMM-Verarbeiter ohne Speicherabhängigkeit, wodurch die Zuverlässigkeit verbessert wird. Dieser Mechanismus adressiert ebenfalls Leistungs- und Skalierbarkeits-Themen, die mit SMM verbunden sind, sodass SMI-Verarbeitung vermeiden kann, ein Engpass in Mehrkern-/Mehrsockel-Systemen zu werden. Ausführungsformen vermeiden daher die Ausführung von SMM-Code mit DRAM-Abhängigkeit, wodurch Gebrauchsmodelle mit hoher Verfügbarkeit ermöglicht werden, bei denen SMM-Code Speicherfehler diagnostiziert und korrigiert.Embodiments thus enable execution of SMM processors without memory dependency, thereby improving reliability. This mechanism also addresses performance and scalability issues associated with SMM, so SMI processing can avoid becoming a bottleneck in multi-core / multi-socket systems. Embodiments therefore avoid execution of SMM code with DRAM dependency, thereby enabling high availability utility models in which SMM code diagnoses and corrects memory errors.
Ausführungsformen ermöglichen weiter Eintritt in SMM mit verringerter Latenz in der Gegenwart eines Logik-Prozessors, der sich in einem langen Ablauf- oder SMI-inhibierten Zustand befindet. Im Gegensatz dazu gibt es derzeit keinen zuverlässigen Mechanismus, durch den SMM-Code bestimmen kann, ob einer oder mehr Prozessoren spät in SMM eintreten oder sich in einem SMM-inhibierten Zustand befinden, und daher wird eine Zeitüberschreitung festgesetzt, die höher ist, als der längste Ablauf-Zustand. Diese Lösung erhöht SMM-Latenz und verringert OS-Antwort in Echtzeit, zusätzlich zu der Tatsache, dass sie unzuverlässig und schwer implementierbar ist, und kann unter Verwendung einer erfindungsgemäßen Ausführungsform bewältigt werden.Embodiments further allow entry into SMM with reduced latency in the presence of a logic processor that is in a long drain or SMI inhibited state. In contrast, there is currently no reliable mechanism by which SMM code can determine whether one or more processors enter SMM late or are in an SMM inhibited state, and therefore set a timeout that is higher than that longest expiration state. This solution increases SMM latency and reduces OS response in real time, in addition to the fact that it is unreliable and difficult to implement, and can be handled using one embodiment of the invention.
Ausführungsformen können als Code implementiert und auf einem Speichermedium gespeichert werden, das Anweisungen enthält, die zum Programmieren eines Systems für die Ausführung der Anweisungen verwendet werden können. Das Speichermedium kann beinhalten, ist aber nicht beschränkt auf, jede Art Disks, u. a. Floppy Disks, Optische Disks, Solid State-Laufwerke (SSDs), Compact Disk Read-Only Memories (CD-ROMS), Compact Disk Rewritables (CD-RWs) und magnetooptische Disks (MO), Halbleiter-Geräte, wie Read-Only Memories (ROMS), Random Access Memories (RAMs), wie dynamische Random Access Memories (DRAMs), statische Random Access Memories (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flash Memories, Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetische oder optische Karten oder jede andere Art Speichermedium, die sich für das Speichern von elektronischen Befehlen eignet.Embodiments may be implemented as code and stored on a storage medium containing instructions that may be used to program a system for executing the instructions. The storage medium may include, but is not limited to, any type of disc, u. a. Floppy Disks, Optical Disks, Solid State Drives (SSDs), Compact Disk Read Only Memories (CD-ROMS), Compact Disk Rewritables (CD-RWs) and Magneto-Optical Disks (MO), Semiconductor Devices, such as Read-Only Memories (ROMS), Random Access Memories (RAMs), such as Dynamic Random Access Memories (DRAMs), Static Random Access Memories (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flash Memories, Electrically Erasable Programmable Read-Only Memories (EEPROMs ), magnetic or optical cards or any other type of storage medium suitable for storing electronic commands.
Obwohl die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind sich Fachleute bewusst, dass viele weitere Modifikationen und Varianten davon möglich sind. Die beigefügten Ansprüche sollen alle solchen Modifikationen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.Although the present invention has been described in terms of a limited number of embodiments, those skilled in the art will appreciate that many other modifications and variations thereof are possible. The appended claims are intended to cover all such modifications and variations that are within the spirit and scope of the present invention.
Claims (24)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/550,737 US8578138B2 (en) | 2009-08-31 | 2009-08-31 | Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode |
US12/550,737 | 2009-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102010034555A1 true DE102010034555A1 (en) | 2011-03-03 |
Family
ID=43525352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102010034555A Withdrawn DE102010034555A1 (en) | 2009-08-31 | 2010-08-17 | Provide state memory in a system management mode processor |
Country Status (8)
Country | Link |
---|---|
US (4) | US8578138B2 (en) |
JP (2) | JP5430756B2 (en) |
KR (3) | KR101392109B1 (en) |
CN (1) | CN102004668B (en) |
BR (1) | BRPI1010234A2 (en) |
DE (1) | DE102010034555A1 (en) |
GB (1) | GB2510792A (en) |
WO (1) | WO2011025626A2 (en) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255594B2 (en) * | 2009-10-15 | 2012-08-28 | Intel Corporation | Handling legacy BIOS services for mass storage devices using systems management interrupts with or without waiting for data transferred to mass storage devices |
US8954790B2 (en) | 2010-07-05 | 2015-02-10 | Intel Corporation | Fault tolerance of multi-processor system with distributed cache |
US8819225B2 (en) * | 2010-11-15 | 2014-08-26 | George Mason Research Foundation, Inc. | Hardware-assisted integrity monitor |
US8892924B2 (en) * | 2011-05-31 | 2014-11-18 | Intel Corporation | Reducing power consumption of uncore circuitry of a processor |
KR101572403B1 (en) | 2011-12-22 | 2015-11-26 | 인텔 코포레이션 | Power conservation by way of memory channel shutdown |
US9507937B2 (en) * | 2012-03-30 | 2016-11-29 | Intel Corporation | Reporting malicious activity to an operating system |
JP2013214210A (en) * | 2012-04-02 | 2013-10-17 | Nec Corp | Fault tolerant system, method of changing operation frequency of cpu, and program |
US8984313B2 (en) * | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US9383812B2 (en) | 2012-09-28 | 2016-07-05 | Intel Corporation | Method and apparatus for efficient store/restore of state information during a power state |
KR20150112075A (en) * | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | Storage device and operating method of storage device |
US9396032B2 (en) * | 2014-03-27 | 2016-07-19 | Intel Corporation | Priority based context preemption |
US20160170767A1 (en) * | 2014-12-12 | 2016-06-16 | Intel Corporation | Temporary transfer of a multithreaded ip core to single or reduced thread configuration during thread offload to co-processor |
US9977682B2 (en) * | 2015-12-09 | 2018-05-22 | Intel Corporation | System management mode disabling and verification techniques |
US9898351B2 (en) * | 2015-12-24 | 2018-02-20 | Intel Corporation | Method and apparatus for user-level thread synchronization with a monitor and MWAIT architecture |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US11182315B2 (en) * | 2017-02-10 | 2021-11-23 | Intel Corporation | Apparatuses, methods, and systems for hardware control of processor performance levels |
US10678909B2 (en) * | 2017-04-21 | 2020-06-09 | Vmware, Inc. | Securely supporting a global view of system memory in a multi-processor system |
US10990159B2 (en) * | 2017-04-25 | 2021-04-27 | Apple Inc. | Architected state retention for a frequent operating state switching processor |
US10528398B2 (en) * | 2017-09-29 | 2020-01-07 | Intel Corporation | Operating system visibility into system states that cause delays and technology to achieve deterministic latency |
US10552280B2 (en) | 2017-12-14 | 2020-02-04 | Microsoft Technology Licensing, Llc | In-band monitor in system management mode context for improved cloud platform availability |
CN111133414A (en) * | 2017-12-25 | 2020-05-08 | 英特尔公司 | Multithreading parallel computing platform before memory initialization |
US11593154B2 (en) * | 2018-12-20 | 2023-02-28 | Intel Corporation | Operating system assisted prioritized thread execution |
KR20200114017A (en) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | Controller and operating method thereof |
US11481206B2 (en) * | 2019-05-16 | 2022-10-25 | Microsoft Technology Licensing, Llc | Code update in system management mode |
US11119770B2 (en) * | 2019-07-26 | 2021-09-14 | Microsoft Technology Licensing, Llc | Performing atomic store-and-invalidate operations in processor-based devices |
US11385903B2 (en) | 2020-02-04 | 2022-07-12 | Microsoft Technology Licensing, Llc | Firmware update patch |
US11520653B2 (en) | 2020-10-15 | 2022-12-06 | Nxp Usa, Inc. | System and method for controlling faults in system-on-chip |
CN117331676B (en) * | 2023-11-30 | 2024-03-19 | 上海兆芯集成电路股份有限公司 | System management mode entry method, processor and computer system |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369771A (en) * | 1991-12-23 | 1994-11-29 | Dell U.S.A., L.P. | Computer with transparent power-saving manipulation of CPU clock |
US5357628A (en) * | 1992-03-25 | 1994-10-18 | Intel Corporation | Computer system having integrated source level debugging functions that provide hardware information using transparent system interrupt |
US5764999A (en) * | 1995-10-10 | 1998-06-09 | Cyrix Corporation | Enhanced system management mode with nesting |
US5819020A (en) | 1995-10-16 | 1998-10-06 | Network Specialists, Inc. | Real time backup system |
US5689698A (en) | 1995-10-20 | 1997-11-18 | Ncr Corporation | Method and apparatus for managing shared data using a data surrogate and obtaining cost parameters from a data dictionary by evaluating a parse tree object |
US6240414B1 (en) | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6571206B1 (en) * | 1998-01-15 | 2003-05-27 | Phoenix Technologies Ltd. | Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment |
US6766326B1 (en) | 2000-07-24 | 2004-07-20 | Resty M Cena | Universal storage for dynamic databases |
US6848046B2 (en) | 2001-05-11 | 2005-01-25 | Intel Corporation | SMM loader and execution mechanism for component software for multiple architectures |
US8032592B2 (en) | 2002-04-18 | 2011-10-04 | Intuit Inc. | System and method for data collection and update utilizing surrogate e-mail addresses using a server |
ATE448516T1 (en) | 2002-09-09 | 2009-11-15 | Dell Marketing Usa L P | SYSTEM AND METHOD FOR APPLICATION MONITORING AND AUTOMATIC DISASTER RESOLUTION FOR HIGH AVAILABILITY |
US7152169B2 (en) * | 2002-11-29 | 2006-12-19 | Intel Corporation | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state |
US7219241B2 (en) | 2002-11-30 | 2007-05-15 | Intel Corporation | Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode |
US7117319B2 (en) | 2002-12-05 | 2006-10-03 | International Business Machines Corporation | Managing processor architected state upon an interrupt |
JP2004220070A (en) * | 2003-01-09 | 2004-08-05 | Japan Science & Technology Agency | Context switching method and device, central processing unit, context switching program and computer-readable storage medium storing it |
US7380106B1 (en) | 2003-02-28 | 2008-05-27 | Xilinx, Inc. | Method and system for transferring data between a register in a processor and a point-to-point communication link |
US7251745B2 (en) | 2003-06-11 | 2007-07-31 | Availigent, Inc. | Transparent TCP connection failover |
US7363411B2 (en) | 2003-10-06 | 2008-04-22 | Intel Corporation | Efficient system management synchronization and memory allocation |
US7617488B2 (en) | 2003-12-30 | 2009-11-10 | Intel Corporation | Method and apparatus and determining processor utilization |
US7653727B2 (en) | 2004-03-24 | 2010-01-26 | Intel Corporation | Cooperative embedded agents |
US8996455B2 (en) | 2004-04-30 | 2015-03-31 | Netapp, Inc. | System and method for configuring a storage network utilizing a multi-protocol storage appliance |
US7487222B2 (en) | 2005-03-29 | 2009-02-03 | International Business Machines Corporation | System management architecture for multi-node computer system |
US7818388B2 (en) | 2005-10-07 | 2010-10-19 | International Business Machines Corporation | Data processing system, method and interconnect fabric supporting multiple planes of processing nodes |
US7433985B2 (en) * | 2005-12-28 | 2008-10-07 | Intel Corporation | Conditional and vectored system management interrupts |
US20070156960A1 (en) | 2005-12-30 | 2007-07-05 | Anil Vasudevan | Ordered combination of uncacheable writes |
US8973094B2 (en) | 2006-05-26 | 2015-03-03 | Intel Corporation | Execution of a secured environment initialization instruction on a point-to-point interconnect system |
US20080040524A1 (en) | 2006-08-14 | 2008-02-14 | Zimmer Vincent J | System management mode using transactional memory |
US7555671B2 (en) | 2006-08-31 | 2009-06-30 | Intel Corporation | Systems and methods for implementing reliability, availability and serviceability in a computer system |
JP4802123B2 (en) | 2007-03-07 | 2011-10-26 | 富士通株式会社 | Information transmitting apparatus, information transmitting method, information transmitting program, and recording medium recording the program |
US20090037932A1 (en) | 2007-08-01 | 2009-02-05 | Clark Michael T | Mechanism for broadcasting system management interrupts to other processors in a computer system |
US7831858B2 (en) | 2007-08-31 | 2010-11-09 | Intel Corporation | Extended fault resilience for a platform |
US7962314B2 (en) | 2007-12-18 | 2011-06-14 | Global Foundries Inc. | Mechanism for profiling program software running on a processor |
US7996663B2 (en) | 2007-12-27 | 2011-08-09 | Intel Corporation | Saving and restoring architectural state for processor cores |
US7913018B2 (en) * | 2007-12-28 | 2011-03-22 | Intel Corporation | Methods and apparatus for halting cores in response to system management interrupts |
US7802042B2 (en) * | 2007-12-28 | 2010-09-21 | Intel Corporation | Method and system for handling a management interrupt event in a multi-processor computing device |
US7991933B2 (en) * | 2008-06-25 | 2011-08-02 | Dell Products L.P. | Synchronizing processors when entering system management mode |
-
2009
- 2009-08-31 US US12/550,737 patent/US8578138B2/en active Active
-
2010
- 2010-08-02 WO PCT/US2010/044089 patent/WO2011025626A2/en active Application Filing
- 2010-08-02 KR KR1020127008044A patent/KR101392109B1/en active IP Right Grant
- 2010-08-02 BR BRPI1010234A patent/BRPI1010234A2/en not_active IP Right Cessation
- 2010-08-02 JP JP2012517932A patent/JP5430756B2/en not_active Expired - Fee Related
- 2010-08-02 KR KR1020137013562A patent/KR101635778B1/en active IP Right Grant
- 2010-08-02 KR KR1020137013566A patent/KR101572079B1/en active IP Right Grant
- 2010-08-02 GB GB1122094.4A patent/GB2510792A/en not_active Withdrawn
- 2010-08-17 DE DE102010034555A patent/DE102010034555A1/en not_active Withdrawn
- 2010-08-31 CN CN201010277405.1A patent/CN102004668B/en active Active
-
2013
- 2013-10-08 US US14/048,451 patent/US9465647B2/en active Active
- 2013-12-03 JP JP2013250360A patent/JP5801372B2/en active Active
-
2016
- 2016-09-20 US US15/270,151 patent/US10169268B2/en active Active
-
2018
- 2018-01-17 US US15/873,089 patent/US20180143923A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2011025626A2 (en) | 2011-03-03 |
BRPI1010234A2 (en) | 2016-03-22 |
WO2011025626A9 (en) | 2011-05-26 |
US20140040543A1 (en) | 2014-02-06 |
GB201122094D0 (en) | 2012-02-01 |
CN102004668A (en) | 2011-04-06 |
GB2510792A (en) | 2014-08-20 |
US10169268B2 (en) | 2019-01-01 |
JP2012531680A (en) | 2012-12-10 |
JP5430756B2 (en) | 2014-03-05 |
US20170010991A1 (en) | 2017-01-12 |
KR20130081302A (en) | 2013-07-16 |
US8578138B2 (en) | 2013-11-05 |
KR101572079B1 (en) | 2015-11-27 |
KR20120061938A (en) | 2012-06-13 |
KR101392109B1 (en) | 2014-05-07 |
US20110055469A1 (en) | 2011-03-03 |
JP5801372B2 (en) | 2015-10-28 |
CN102004668B (en) | 2014-08-20 |
JP2014075147A (en) | 2014-04-24 |
KR20130081301A (en) | 2013-07-16 |
US9465647B2 (en) | 2016-10-11 |
US20180143923A1 (en) | 2018-05-24 |
WO2011025626A3 (en) | 2011-07-14 |
KR101635778B1 (en) | 2016-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102010034555A1 (en) | Provide state memory in a system management mode processor | |
DE112011105298B4 (en) | Reduce energy consumption from uncore circuits of a processor | |
DE69633166T2 (en) | INTEGRATED CIRCUIT WITH MULTIPLE FUNCTIONS AND THE COMMON USE OF SEVERAL INTERNAL SIGNAL BUSS TO DISTRIBUTE THE CONTROL OF BUS ACCESS AND ARBITRATION | |
DE102014003798B4 (en) | Method of booting a heterogeneous system and presenting a symmetric core view | |
DE102020120019A1 (en) | PROACTIVE DI / DT VOLTAGE ROOF DESCENT ATTENUATION | |
DE112017000721T5 (en) | PROCESS, DEVICE AND COMMANDS FOR THREAD SUSPENSION AT USER LEVEL | |
DE112012005210B4 (en) | Provide a common caching agent for a core and integrated I / O (IO) module | |
DE102010052680A1 (en) | A command to allow a processor wait state | |
DE112004001887B4 (en) | Optimization of SMI treatment and initialization | |
DE112016007566T5 (en) | Systems, methods and apparatus for heterogeneous calculation | |
DE112010004965T5 (en) | Control of time stamp counter (TSC) offsets for multiple cores and threads | |
DE102010035603A1 (en) | Providing hardware support for shared virtual memory between physical local and remote storage | |
DE112013003731T5 (en) | New command-and-high-efficiency microarchitecture to enable instantaneous user-level threading context switching | |
DE112010004971T5 (en) | A system, method, and apparatus for a cache flush of a page area and TLB invalidation of a range of entries | |
DE112012007115T5 (en) | Optional logic processor count and type selection for a given workload based on platform heat and power budget constraints | |
DE112004001133T5 (en) | Queue locks with monitor memory wait | |
DE112013004751T5 (en) | Multi-core processor, shared core extension logic, and shared core extension usage commands | |
DE112010002425B4 (en) | Delegate a request operation to another facility | |
DE112016004303T5 (en) | Low administration hardware prediction element to reduce power inversion for core-to-core data transfer optimization commands | |
DE102010045743A1 (en) | Method and device for improving turbo performance for event handling | |
DE112010003330T5 (en) | Set up checkpoints on cache for speculative versioning | |
DE10393727T5 (en) | Processor cache memory as RAM for executing boot code | |
DE112011100715T5 (en) | HARDWARE ASSIST-THREAD | |
DE112006001698T5 (en) | Basic features to improve thread-level speculation | |
DE102014003399A1 (en) | Systems and methods for implementing transactional memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20150303 |