DE112017008112T5 - Erstes hochfahren mit einem speicherkanal - Google Patents

Erstes hochfahren mit einem speicherkanal Download PDF

Info

Publication number
DE112017008112T5
DE112017008112T5 DE112017008112.2T DE112017008112T DE112017008112T5 DE 112017008112 T5 DE112017008112 T5 DE 112017008112T5 DE 112017008112 T DE112017008112 T DE 112017008112T DE 112017008112 T5 DE112017008112 T5 DE 112017008112T5
Authority
DE
Germany
Prior art keywords
memory
channel
occupied
channels
logic
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.)
Pending
Application number
DE112017008112.2T
Other languages
English (en)
Inventor
Kevin Yufu Li
Donggui Yin
Zijian You
Shihui Li
Dujian WU
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
Publication of DE112017008112T5 publication Critical patent/DE112017008112T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • 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
    • 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
    • G06F9/4406Loading of operating system
    • 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

Eine Ausführungsform einer Halbleiterpaketvorrichtung kann Technik umfassen, um einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abzuschließen. Andere Ausführungsformen werden offenbart und beansprucht.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen betreffen im Allgemeinen Speichersysteme. Insbesondere betreffen Ausführungsformen ein erstes Hochfahren mit einem Speicherkanal.
  • HINTERGRUND
  • Bei manchen Speichersystemen wird kurz nach Einschalten des Systems ein Training durchgeführt. Ein Training kann Einstellen und Kalibrierung umfassen, um die verschiedenen Eingabe-/Ausgabe-(EA)-Schnittstellen bereit zu machen, Befehle zu akzeptieren. Beispielsweise können höhere doppelte Datenraten-(DDR, Double Data Rate)-Geschwindigkeiten erfordern, dass dynamische Schreib-/Lesespeicher-(DRAM, Dynamic Random Access Memory)-Kanäle für eine verbesserte oder optimale Signalqualität und DDR-Buszeitverhalten abgestimmt werden. Dieses Abstimmen wird durch das grundlegende Eingabe-Ausgabesystem (BIOS, Basic Input/Output System) während des Hochfahrens durchgeführt und kann als DDR-Training bezeichnet werden.
  • Figurenliste
  • Die verschiedenen Vorteile der Ausführungsformen werden Durchschnittsfachleuten durch Lesen der nachfolgenden Beschreibung und angefügten Ansprüche und durch Bezugnahme auf die nachfolgenden Zeichnungen offenkundig, wobei:
    • 1 ein Blockdiagramm eines Beispiels eines elektronischen Verarbeitungssystems gemäß einer Ausführungsform ist;
    • 2 ein Blockdiagramm eines Beispiels einer Halbleiterpaketvorrichtung gemäß einer Ausführungsform ist,
    • 3A bis 3B Ablaufdiagramme eines Beispiels eines Verfahrens zum Hochfahren eines Betriebssystems gemäß einer Ausführungsform sind;
    • 4 bis 6 beispielhafte Blockdiagramme eines Beispiels eines Mehrfachkanal-Speichersystems gemäß einer Ausführungsform sind;
    • 7 ein Ablaufdiagramm eines anderen Beispiels eines Verfahrens zum Hochfahren eines Betriebssystems gemäß einer Ausführungsform ist.
    • 8A und 8B Blockdiagramme von Beispielen von Speichertrainingsvorrichtungen gemäß Ausführungsformen sind;
    • 9 ein Blockdiagramm eines Beispiels eines Prozessors gemäß einer Ausführungsform ist, und
    • 10 ein Blockdiagramm eines Beispiels eines Systems gemäß einer Ausführungsform ist.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Jetzt unter Bezugnahme auf 1 kann eine Ausführungsform eines elektronischen Bearbeitungssystems 10 einen Prozessor 11, ein Mehrfachkanal-Speichersystem 12, welches kommunikativ mit dem Prozessor 11 gekoppelt ist, und Logik 13 umfassen, welche kommunikativ mit dem Prozessor 11 gekoppelt ist, um einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle des Mehrfachkanal-Speichersystems 12 zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems 12 abzuschließen. Beispielsweise kann das Mehrfachkanal-Speichersystem N Speicherkanäle Ci bis CN umfassen, wobei N größer ist als 1. Ein oder mehrere der Speicherkanäle Ci bis CN können mit einer oder mehreren Speichervorrichtungen oder Komponenten besetzt sein. Bei manchen Ausführungsformen kann die Logik 13 eingerichtet sein, um einen Speicherkanal für den Teilsatz besetzter Speicherkanäle zu identifizieren (z. B. einen einzelnen Speicherkanal, welcher mit einer oder mehreren Speichervorrichtungen besetzt ist). Beispielsweise kann die Logik 13 eingerichtet sein, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems 12 als den einen Speicherkanal zu identifizieren. Bei einem anderen Beispiel kann die Logik 13 eingerichtet sein, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems 12 mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal zu identifizieren. Bei einem anderen Beispiel kann die Logik 13 eingerichtet sein, um einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren. Bei manchen Ausführungsformen kann die Logik 13 weiterhin eingerichtet sein, um die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit zu machen, nachdem das erste Hochfahren abgeschlossen ist.
  • Ausführungsformen jedes des obenstehenden Prozessors 11, des Mehrfachkanal-Speichersystems 12, der Logik 13 und anderer Systemkomponenten können in Hardware, Software oder jeder geeigneten Kombination davon implementiert sein. Beispielsweise können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise programmierbare Logik-Arrays (PLAs), Feld-programmierbare Gate-Arrays (FPGAs), komplexe programmierbare Logikvorrichtungen (CPLDs) oder Logik-Hardware mit fester Funktionalität unter Verwendung von Schaltungstechnik, wie beispielsweise eines anwendungsspezifischen integrierten Schaltkreises (ASIC), komplementärer Metalloxidhalbleiter- (CMOS) oder Transistor-Transistor-Logik-(TTL)-Technik oder jeder Kombination davon.
  • Ersatzweise oder zusätzlich können alle oder Teile dieser Komponenten in einem oder in mehreren Modulen als ein Satz Logikbefehle implementiert sein, welche in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), programmierbarer ROM (PROM), Firmware, Flash-Speicher usw., um durch einen Prozessor oder eine Datenverarbeitungsvorrichtung ausgeführt zu werden. Beispielsweise kann Computerprogrammcode, um die Operationen der Komponenten auszuführen, in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben sein, welche für das Betriebssystem (OS) anwendbar/geeignet sind und die eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen, und herkömmliche prozedurale Programmiersprachen umfassen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Beispielsweise kann das Mehrfachkanal-Speichersystem 12, können ständige Speichermedien oder kann anderer Systemspeicher einen Satz Befehle speichern, welche, wenn sie durch den Prozessor 11 ausgeführt werden, bewirken, dass das System 10 eine oder mehrere Komponenten, Merkmale oder Gesichtspunkte des Systems 10 implementiert (z. B. die Logik 13, welche einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle des Mehrfachkanal-Speichersystems 12 identifiziert, ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrkanal-Speichersystems 12 abschließt usw.).
  • Jetzt unter Bezugnahme auf 2 kann eine Ausführungsform einer Halbleiterpaketvorrichtung 20 ein Substrat 21 und Logik 22 umfassen, welche mit dem Substrat 21 gekoppelt ist, wobei die Logik 22 mindestens teilweise in konfigurierbarer Logik und/oder Hardware-Logik mit fester Funktionalität implementiert ist. Die Logik 22, welche mit dem Substrat 21 gekoppelt ist, kann eingerichtet sein, um einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abzuschließen. Bei manchen Ausführungsformen kann die Logik 22 eingerichtet sein, um einen Speicherkanal für den Teilsatz besetzter Speicherkanäle zu identifizieren (z. B. einen einzelnen Speicherkanal, welcher mit einer oder mehreren Speichervorrichtungen besetzt ist). Beispielsweise kann die Logik 22 eingerichtet sein, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren. Bei einem anderen Beispiel kann die Logik 22 eingerichtet sein, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal zu identifizieren. Bei einem anderen Beispiel kann die Logik 22 eingerichtet sein, um einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren. Bei manchen Ausführungsformen kann die Logik 22 weiterhin eingerichtet sein, um die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit zu machen, nachdem das erste Hochfahren abgeschlossen ist.
  • Ausführungsformen der Logik 22 und anderer Komponenten der Vorrichtung 20 können in Hardware, Software oder jeder Kombination davon implementiert sein, was mindestens eine teilweise Implementierung in Hardware umfasst. Beispielsweise können Hardware-Implementierungen konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität unter Verwendung von Schaltungstechnik, wie beispielsweise, ASIC, CMOS- oder TTL-Technik oder jeder Kombination davon. Zusätzlich können Teile dieser Komponenten in einem oder in mehreren Modulen als ein Satz Logikbefehle implementiert sein, welche in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise RAM, ROM, PROM, Firmware, Flash-Speicher usw., um durch einen Prozessor oder eine Datenverarbeitungsvorrichtung ausgeführt zu werden. Beispielsweise kann Computerprogrammcode, um die Operationen der Komponenten auszuführen, in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben sein, welche für das OS anwendbar/geeignet sind und die eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen, und herkömmliche prozedurale Programmiersprachen umfassen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Jetzt unter Bezugnahme auf 3A bis 3B kann eine Ausführungsform eines Verfahrens 30 zum Hochfahrens eines Betriebssystems Identifizieren eines Teilsatzes besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems bei Block 31 und Abschließen eines ersten Hochfahrens eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems in Block 32. Manche Ausführungsformen des Verfahrens 30 können Identifizieren eines Speicherkanals für den Teilsatz besetzter Speicherkanäle bei Block 33 umfassen. Beispielsweise kann das Verfahren 30 Identifizieren eines ersten besetzten Speicherkanals des Mehrkanal-Speichersystems als den einen Speicherkanal bei Block 34 umfassen. Bei einem anderen Beispiel kann das Verfahren 30 Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal bei Block 35 umfassen. Bei einem anderen Beispiel kann das Verfahren 30 Identifizieren eines am wenigsten besetzten Speicherkanals des Mehrkanal-Speichersystems als den einen Speicherkanal bei Block 36 umfassen. Manche Ausführungsformen des Verfahrens 30 können weiterhin Betriebsbereitmachen der anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle umfassen, nachdem das erste Hochfahren bei Block 37 abgeschlossen ist.
  • Ausführungsformen des Verfahrens 30 können in einem System, einer Vorrichtung, einem Computer, einem Gerät usw. implementiert sein, wie beispielsweise den hier beschriebenen. Insbesondere können Hardware-Implementierungen des Verfahrens 30 konfigurierbare Logik umfassen, wie beispielsweise PLAs, FPGAs, CPLDs oder Logik-Hardware mit fester Funktionalität unter Verwendung von Schaltungstechnik, wie beispielsweise, ASIC, CMOS- oder TTL-Technik oder jeder Kombination davon. Ersatzweise oder zusätzlich kann das Verfahren 30 in einem oder in mehreren Modulen als ein Satz Logikbefehle implementiert sein, welche in einem maschinen- oder computerlesbaren Speichermedium gespeichert sind, wie beispielsweise RAM, ROM, PROM, Firmware, Flash-Speicher usw., um durch einen Prozessor oder eine Datenverarbeitungsvorrichtung ausgeführt zu werden. Beispielsweise kann Computerprogrammcode, um die Operationen der Komponenten auszuführen, in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben sein, welche für das OS anwendbar/geeignet sind und die eine objektorientierte Programmiersprache, wie beispielsweise PYTHON, PERL, JAVA, SMALLTALK, C++, C# oder dergleichen, und herkömmliche prozedurale Programmiersprachen umfassen, wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen.
  • Beispielsweise kann das Verfahren 30 auf einem computerlesbaren Medium implementiert sein, wie im Zusammenhang mit den Beispielen 19 bis 24 nachfolgend beschrieben. Ausführungsformen oder Teile des Verfahrens 30 können in Firmware, Anwendungen (z. B. durch eine Anwendungsprogrammierschnittstelle (API)) oder in Treiber-Software implementiert sein, welche auf einem Betriebssystem (OS) laufen.
  • Manche Ausführungsformen können vorteilhafterweise Technik bereitstellen, um ein erstes Hochfahren eines grundlegenden Eingabe-/Ausgabesystems (BIOS) schneller zu machen und/oder eine Hochfahrdauer konsistent zu machen. Manche Ausführungsformen können ein Last-reduziertes Hochfahren und/oder ein Hochfahren mit konsistenter Last bereitstellen. Ein technisches Problem mit vielen elektronischen Systemen ist die Zeitdauer zwischen Einschalten des Systems und wenn das System dem Benutzer ansprechbar erscheint. Bei manchem elektronischen System kann diese Zeitdauer als eine Hochfahrzeitdauer bezeichnet sein. Nach Einschalten kann das BIOS den Hochfahrprozess steuern, wobei schließlich eine Steuerung an das OS übergeben wird, wenn das Hochfahren abgeschlossen ist (z. B. zu dem Zeitpunkt, an welchem das System dem Benutzer ansprechbar erscheinen kann). Während eines ersten Hochfahrens (z. B. Einschalten aus einem Stromloszustand oder aus vollständig abgeschaltetem Zustand) kann das BIOS ein DIMM-Speichermodul-(Dual Inline Memory Modul)-Takttraining durchführen, um eine stabile Speicherzugriffsumgebung für das OS zu liefern. Bei manchen anderen Systemen ist diese Trainingsdauer sehr abhängig von der Anzahl DIMMs, welche auf der Plattform besetzt sind, und kann eine lange Zeit dauern (z. B. kann ein Speichertakttraining auf manchen 24-DIMM-Plattformen mit einer Freigabe-BIOS-Version ungefähr 1,5 Minuten und mit einer Debug-BIOS-Version noch länger dauern). Vorteilhafterweise können manche Ausführungsformen eine Technik bereitstellen, um die Hochfahrzeitdauer zu reduzieren und/oder jede Abhängigkeit von der Anzahl DIMMs zu reduzieren oder zu beseitigen, welche auf einer Plattform besetzt sind.
  • Jetzt unter Bezugnahme auf 4 kann eine Ausführungsform eines Mehrfachkanal-Speichersystems 40 einen oder mehrere Sockel (z. B. Sockel 0, Sockel 1 usw.) umfassen. Jeder Sockel kann mehrere Speicherkanäle umfassen. Beispielsweise kann Sockel 0 Speicherkanal 0 bis Speicherkanal 5 umfassen, kann Sockel 1 Speicherkanal 0 bis Speicherkanal 5 umfassen usw. Jeder Sockel kann auch mehrere Speichersteuervorrichtungen umfassen, welche mit jeweiligen Speicherkanälen gekoppelt sind. Beispielsweise kann Sockel 0 integrierte Speichersteuervorrichtungen (iMC) 0 und 1 umfassen, wobei iMC 0 eingerichtet ist, um Speicherkanäle 0 bis 2 zu steuern, und iMC 1 eingerichtet ist, um Speicherkanäle 3 bis 5 zu steuern. Genauso kann Sockel 1 eine jeweilige iMC 0 und 1 umfassen, wobei iMC 0 eingerichtet ist, um Speicherkanäle 0 bis 2 zu steuern, und iMC 1 eingerichtet ist, um Speicherkanäle 3 bis 5 zu steuern, usw. Jeder Speicherkanal kann mehrere Schächte umfassen, um Speichervorrichtungen oder Komponenten, wie beispielsweise DIMMs, zu installieren. Beispielsweise kann jeder der Speicherkanäle 0 bis 5 jedes Sockels zwei Schächte (z. B. in 4 als „1“ und „2“ markiert) umfassen. Dementsprechend kann eine Ausführungsform einer Plattform, welche das Mehrfachkanal-Speichersystem 40 einsetzt, zwei Sockel, zwei iMCs pro Sockel, drei Kanäle pro iMC und zwei Speicherschächte pro Kanal unterstützen. Andere Ausführungsformen können mehr oder weniger Sockel, IMCs, Speicherkanäle, Speicherschächte usw. unterstützen. Für Darstellungszwecke repräsentiert ein Straffurmuster für die Speicherschächte eine DIMM-Vorrichtung, welche in dem Speicherschacht installiert ist, während ein weißes Kästchen einen leeren Speicherschacht repräsentieren kann (z. B. keine DIMM-Vorrichtung installiert).
  • Bei manchen anderen Systemen kann das erste Hochfahren durch das BIOS den Speichertakt pro Sockel parallel trainieren. Bei einem Zwei-Sockel-System kann beispielsweise eine gesamte Trainingsdauer ungefähr halb solange sein wie im Vergleich zu einem sequenziellen Training jedes Sockels. Jedoch können andere Systeme während des ersten Hochfahrens alle Speicherkanäle innerhalb eines Sockels seriell trainieren. Andere Systeme können auch eine BIOS-Funktion zum Betriebsbereitmachen von Speicher vollständig in einem Systemmanagementmodus (SMM) implementieren. Für diese anderen Systeme können sowohl das erste Hochfahren durch das BIOS als auch das Betriebsbereitmachen des Speichers eine lange Zeit dauern und zu einer ungünstigen Benutzererfahrung führen, weil dem Benutzer das System während dieser Perioden nicht ansprechbar erscheint. Wenn beispielsweise neue DIMMs zu der Plattform hinzugefügt werden (z. B. ähnlich einem Speichereinbau im laufenden Betrieb) können andere Systeme nach dem Hochfahren des OS im SMM-Modus laufen, was dem Benutzer so erscheinen kann, dass das OS hängt und nicht glatt läuft, bis das Betriebsbereitmachen des Speichers abgeschlossen ist. Vorteilhafterweise können manche Ausführungsformen Technik bereitstellen, um das OS mit einer reduzierten Anzahl trainierter DIMMs hochzufahren, und die verbleibenden DIMMs in einem BIOS-Normalbetrieb zu trainieren, was es dem OS ermöglicht, ansprechbar zu bleiben, bis die DIMMs bereit sind, betriebsbereit gemacht zu werden.
  • Bei manchen Ausführungsformen kann das BIOS nach einem Speicherkanal mit einer Mindestanzahl besetzter DIMMs suchen, nur die DIMMs auf dem identifizierten Kanal trainieren und die restlichen DIMMs untrainiert lassen. bis das Hochfahren durch das BIOS ausgeführt ist und nachdem in das OS eingetreten wurde. Dann kann ein OS-Treiber einen BIOS-spezifischen Laufzeitdienst in einem Multi-Thread-Modus anrufen, um die restlichen DIMMs parallel zu trainieren. Nachdem alle DIMMs trainiert sind, kann das System in einen SMM-Modus eintreten, um eine neue Speicherabbildung zu erzeugen und die DIMMs während des Hochfahrens durch das OS oder nachdem das Hochfahren durch das OS abgeschlossen ist, betriebsbereit zu machen. Vorteilhafterweise können manche Ausführungsformen eine BIOS-Hochfahrzeitdauer deutlich reduzieren. Für die beispielhafte Plattform der 4 mit einer vollen Speicherkonfiguration (z. B. jeder Speicherschacht mit einer DIMM-Vorrichtung besetzt) beträgt die BIOS-Hochfahrzeitdauer ungefähr ein Sechstel (1/6) der Zeitdauer, wie im Vergleich zu manchen anderen Systemen. Bei manchen Ausführungsformen kann die BIOS-Hochfahrzeitdauer kürzer sein als ungefähr ein Zwölftel (1/12) der Zeitdauer, wenn es nur ein DIMM auf einem Kanal gibt, während die restlichen Kanäle vollständig mit DIMMs besetzt sind. Ein anderer Vorteil ist, dass eine BIOS-Hochfahrzeitdauer konsistenter sein kann, weil nur ein Speicherkanal in der BIOS-Phase trainiert werden muss, unabhängig davon, wie viele Sockel die Plattform unterstützt. Bei manchen Ausführungsformen können Werbung und/oder Nachrichten auf dem BIOS-Bildschirm vorteilhafterweise mit einer festen Anzeigedauer bereitgestellt werden, um eine konsistente Benutzererfahrung bereitzustellen.
  • Jetzt unter Bezugnahme auf 5 kann ein illustrierendes Beispiel eines Speichertrainings während einer BIOS-Phase für das Mehrfachkanal-Speichersystem 40 identifizieren, dass Speicherkanal 1 des Sockels 0 die Mindestanzahl DIMMs umfasst, welche in den Speicherkanälen mit zwei Schächten der Plattform besetzt sein kann. Beispielsweise können minimale und/oder maximale Schwellenwerte eingestellt werden, um das BIOS beim Identifizieren eines geeigneten Speicherkanals zum Auswählen zum Training während der BIOS-Phase zu unterstützen. Bei einem System mit zwei Schächten kann jeder Kanal, welcher mit nur einem DIMM besetzt ist, als der kleinsten möglichen Anzahl DIMMs in jedem Kanal entsprechend ausgewählt werden (z. B. und dementsprechend die kürzeste Trainingsdauer erfordernd). Weil der Speicherkanal 1 des Sockels 0 der erste Speicherkanal ist, welcher mit nur einem DIMM besetzt ermittelt wurde, kann dieser Speicherkanal in der BIOS-Phase trainiert werden. Beispielsweise kann die Zentralprozessoreinheit (CPU) und/oder kann eine Speichersteuerung der Plattform mit den DIMM-Vorrichtungen über einen Systemmanagement-(SM)-Bus kommunizieren. Das DIMM kann einen seriellen Präsenzdetektions-(SPD)-Chip umfassen, welchen die CPU über den SM-Bus lesen kann. Das BIOS kann Firmware oder Befehle umfassen, welche die CPU anweisen, jeden Speicherkanal abzutasten, aus welchem das BIOS den ersten Kanal identifizieren kann, welcher angibt, dass der Kanal mit der Mindestanzahl DIMM-Vorrichtungen besetzt ist (z. B. ein DIMM in dem Beispiel der 4). Manche Ausführungsformen können weitere Informationen über die DIMM-Vorrichtungen identifizieren und die Speicherkanäle zum ersten Hochfahren auf der Grundlage der Speicherkapazität des(der) besetzten DIMM(s) und/oder anderer Eigenschaften des(der) besetzten DIMM(s) auswählen.
  • Jetzt unter Bezugnahme auf 6 kann ein illustrierendes Beispiel des Speichertrainings während einer OS-Phase für das Mehrfachkanal-Speichersystem 40 die verbleibenden DIMMs umfassen. Bei manchen anderen Systemen kann die Speichertrainingsdauer der maximalen Zeitdauer für jeden Sockel entsprechen, welcher parallel trainiert wird (z. B. einer Trainingsdauer für neun (9) DIMMs, welche in Sockel 0 besetzt sind, für das Beispielsystem der 4). Bei manchen Ausführungsformen kann das BIOS vorteilhafterweise nach einem Speicherkanal mit der Mindestanzahl besetzter DIMMs suchen. Für das Beispielsystem der 4 wird nur Sockel 0 Kanal 1 (z. B. ein (1) DIMM) in der BIOS-Phase trainiert. Das BIOS kann nur die trainierte BIOS-Größe an das OS berichten, und die restlichen DIMMs können in der OS-Phase trainiert werden.
  • Jetzt unter Bezugnahme auf 7 kann eine Ausführungsform eines Verfahrens 70 des Hochfahrens eines Betriebssystems Einleiten eines ersten Hochfahrens durch das BIOS bei Block 71 und Auswählen eines DIMM-Trainingspfads bei Block 72 umfassen. Beispielsweise kann das Verfahren 70 bestimmen, ob ein Lastreduktionsmodus aus den BIOS-Einstellungen aktiviert ist oder nicht. Wenn aktiviert, kann das Verfahren 70 die Kanäle abtasten und die Kanalnummer zurückgeben, welche eine Mindestanzahl besetzter DIMMs aufweist. Ersatzweise kann das Verfahren 70 die Anzahl besetzter DIMMs mit einem Schwellenwert vergleichen und die erste Kanalnummer zurückgeben, welche den Vergleich erfüllt (z. B. Anzahl besetzter DIMMs = 1; Anzahl besetzter DIMMs > 0 und < 4; usw.). Ersatzweise kann das Verfahren 70 einfach die Kanalnummer für den ersten Kanal zurückgeben, welcher mit beliebigen DIMMs besetzt ist. In Abhängigkeit von der Plattformkonfiguration kann eine beliebige Anzahl geeigneter Kriterien verwendet werden, um einen geeigneten Speicherkanal oder einen Teilsatz Speicherkanäle zum Training während der BIOS-Phase zu identifizieren. Bei manchen Ausführungsformen können die Anzahl Speicherkanäle und/oder die Auswahl-/Identifikationskriterien konfigurierbar sein. Wenn der Lastreduktionsmodus nicht aktiviert ist, kann das Verfahren 70 abbrechen, und das erste Hochfahren kann alle DIMMs trainieren.
  • Wenn ein spezifischer Kanal (z. B. oder Satz Kanäle) zum Training während der BIOS-Phase (z. B. ein Kanal, welcher die Mindestanzahl DIMMs enthält) identifiziert ist, kann das Verfahren 70 fortfahren, um bei Block 73 ein DIMM-Training auf dem(den) spezifischen Kanal(Kanälen) durchzuführen. Das Verfahren 70 kann dann eine Speicherabbildung erzeugen und das OS bei Block 74 hochfahren. Die hierbei erzeugte Speicherabbildung kann nur auf dem(den) DIMM(s) auf diesem spezifischen Kanal basiert sein. Das Verfahren 70 kann dann mit der OS-Phase fortfahren, und ein OS-Treiber kann bei Block 75 einen BIOS-Speichertrainingsdienst aufrufen. Beispielsweise kann das BIOS einen Eintrag für das OS bereitstellen, um einen spezifischen Speichertrainings-BIOS-Code auszuführen. Beispielsweise kann das BIOS einen Laufzeitdienst bereitstellen, oder es kann einen Raum für einen privaten Dienst reservieren und ihn in eine virtuelle Adresse zum Aufrufen durch das OS umwandeln. Bei manchen Ausführungsformen kann ein Chipsatz-Treiber den BIOS-Speichertrainingsdienst auslösen. Bei manchen Ausführungsformen kann der Aufruf des BIOS-Speichertrainingsdiensts später hinzugefügtem Speicher zum Einbau im laufenden Betrieb ähnlich sein und kann durch ein simuliertes Einbauereignis im laufenden Betrieb eingeleitet werden. Mit einem OS-Treiberaufruf ermöglicht der BIOS-Speichertrainingseintrag eine Ausführung in einem OS-Multi-Thread-Modus. Vorteilhafterweise kann das Speichertraining auf verschiedenen CPU-Kernen ausgeführt werden, um verschiedene Kanäle parallel zu trainieren. Bei manchen Ausführungsformen kann die Speichertrainingsfunktion in einem Chipsatz-Treiber integriert sein.
  • Das Verfahren 70 kann dann bei Block 76 den Speichertrainingsdienst durchführen. Dies kann in einem BIOS-Normalbetrieb (z. B. nicht SMM) ausgeführt werden. Der Trainingsdienst kann erforderliche Betriebsmittel freigeben, umfassend insbesondere eine Speichertrainings-Hardware-Maschine, CSRs usw., und ein Speichertraining auf den verbleibenden Kanälen oder DIMMs durchführen. Weil das OS keine untrainierten Kanäle oder DIMMs kennt, können manche Ausführungsformen vorteilhafterweise gewährleisten, dass es keinen Konflikt beim Hardware-Zugang gibt, wenn das OS und das BIOS parallel laufen. Der Speicherdienst kann, nachdem das Speichertraining durchgeführt ist, Betriebsmittel sperren, und eine Systemmanagementunterbrechung (SMI) auslösen, um eine neue Speicherabbildung zu erzeugen. Weil das verbleibende Speichertraining im BIOS-Normalbetrieb statt im SMM-Modus ausgeführt wird, kann das Training vorteilhafterweise in einem Multi-Thread-Modus mit reduzierter oder minimaler Zeitlatenz und Auswirkung auf eine Benutzererfahrung durchgeführt werden. Manche Ausführungsformen können dieses Verfahren einsetzen, um eine BIOS-Funktion zum Betriebsbereitmachen von Speicher außerhalb des Prozesses des ersten Hochfahrens bereitzustellen, um vorteilhafterweise Betriebsbereitmachen von Speicher zu glätten, wenn neue DIMMs zu der Plattform hinzugefügt werden (z. B. angefangen mit einem OS-Treiberaufruf bei Block 75).
  • Die SMI-Unterbrechung kann bewirken, dass das Verfahren bei Block 77 eine neue Speicherabbildung im SMM-Modus erzeugt. Laufen im SMM-Modus kann einen Zugangskonflikt zu Hardware-Betriebsmitteln während der Neubildung einer Speicherabbildung vermeiden. Das Verfahren 70 kann auch eine ADVANCED CONFIGURATION AND POWER INTERFACE-(ACPI)-Tabellenaktualisierung für eine neue Speicherabbildung durchführen, welche an das OS berichtet wurde. Vorteilhafterweise kann die Zeitspanne, welche im SMM-Modus vergeht, wesentlichen kürzer sein, weil das Speichertraining bereits abgeschlossen wurde, und kann geringe oder keine Auswirkung auf die Benutzererfahrung aufweisen. Das Verfahren 70 kann dann den SMM-Modus verlassen und Betriebsbereitmachen allen Speichers kann bei Block 78 abgeschlossen werden.
  • 8A zeigt eine Speichertrainingsvorrichtung 132 (132a bis 132b), welche einen oder mehrere Gesichtspunkte des Verfahrens 30 (3A bis 3B) und/oder des Verfahrens 70 (7) implementieren kann. Die Speichertrainingsvorrichtung 132, welche Logikbefehle, konfigurierbare Logik, Hardware-Logik mit fester Funktionalität umfassen kann, kann unmittelbar für das System 10 (1) substituiert werden, wie schon diskutiert. Ein Speicherkanalauswähler 132a kann einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems identifizieren, und ein BIOS kann ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abschließen. Bei manchen Ausführungsformen kann der Speicherkanalauswähler 132a einen Speicherkanal für den Teilsatz besetzter Speicherkanäle identifizieren (z. B. einen einzelnen Speicherkanal, welcher mit einer oder mehreren Speichervorrichtungen besetzt ist). Beispielsweise kann der Speicherkanalauswähler 132a einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifizieren. Bei einem anderen Beispiel kann der Speicherkanalauswähler 132a einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal identifizieren. Bei einem anderen Beispiel kann der Speicherkanalauswähler 132a einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifizieren. Bei manchen Ausführungsformen kann ein Speicherkanaltrainer 132b die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle trainieren und Betriebsbereitmachen, nachdem das erste Hochfahren abgeschlossen ist.
  • Jetzt unter Bezugnahme auf 8B wird eine Speichertrainingsvorrichtung 134 (134a, 134b) gezeigt, bei welcher Logik 134b (z. B. ein Transistor-Array und andere integrierte Schaltungs-/IS-Komponenten) mit einem Substrat 134a gekoppelt ist (z. B. Silizium, Saphir, Galliumarsenid). Die Logik 134b kann im Allgemeinen einen oder mehrere Gesichtspunkte des Verfahrens 30 (3A bis 3B) und/oder des Verfahrens 70 (7) implementieren. Folglich kann die Logik 134b einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abschließen. Bei manchen Ausführungsformen kann die Logik 134b einen Speicherkanal für den Teilsatz besetzter Speicherkanäle identifizieren (z. B. einen einzelnen Speicherkanal, welcher mit einer oder mehreren Speichervorrichtungen besetzt ist). Beispielsweise kann die Logik 134b einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifizieren. Bei einem anderen Beispiel kann die Logik 134b einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal identifizieren. Bei einem anderen Beispiel kann die Logik 134b einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifizieren. Bei manchen Ausführungsformen kann die Logik 134b auch die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle Betriebsbereitmachen, nachdem das erste Hochfahren abgeschlossen ist. Bei einem Beispiel ist die Vorrichtung 134 ein Halbleitermikroplättchen, ein Halbleiter-Chip und/oder ein Halbleiterpaket.
  • 9 illustriert einen Prozessorkern 200 gemäß einer Ausführungsform. Der Prozessorkern 200 kann der Kern für einen beliebigen Prozessortyp sein, wie beispielsweise einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor oder eine andere Vorrichtung zum Ausführen von Code. Obwohl in 9 nur ein Prozessorkern 200 illustriert ist, kann ein Verarbeitungselement ersatzweise mehr als den einen in 9 illustrierten Prozessorkern 200 umfassen. Der Prozessorkern 200 kann ein Einzel-Thread-Kern sein, oder der Prozessorkern 200 kann für mindestens eine Ausführungsform dadurch ein Multi-Thread-Kern sein, dass er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern umfassen kann.
  • 9 illustriert auch einen Speicher 270, welcher mit dem Prozessorkern 200 verbunden ist. Der Speicher 270 kann ein beliebiger einer breiten Vielfalt von Speichern sein (verschiedene Schichten von Speicherhierarchie umfassend), wie sie Durchschnittsfachleuten bekannt sind oder auf andere Weise verfügbar sind. Der Speicher 270 kann einen oder mehrere Codebefehl(e) 213 umfassen, welche durch den Prozessorkern 200 ausgeführt werden sollen, wobei der Code 213 einen oder mehrere Gesichtspunkte des Verfahrens 30 (3A bis 3B) und/oder des Verfahrens 70 (7) implementieren kann, welche bereits diskutiert wurden. Der Prozessorkern 200 folgt einer Programmsequenz von Befehlen, welche durch den Code 213 angegeben werden. Jeder Befehl kann in einen Vorstufenabschnitt 210 eintreten und durch einen oder mehrere Decodierer 220 verarbeitet werden. Der Decodierer 220 kann als seinen Ausgang eine Mikrooperation erzeugen, wie beispielsweise eine Mikrooperation fester Breite in einem vordefinierten Format, oder er kann andere Befehle, Mikrobefehle oder Steuerungssignale erzeugen, welche den ursprünglichen Codebefehl wiedergeben. Der illustrierte Vorstufenabschnitt 210 umfasst auch Registerumbenennungslogik 225 und Einplanungslogik 230, welche im Allgemeinen Betriebsmittel zuteilen und die Operation entsprechend des umgewandelten Befehls zur Ausführung in eine Warteschlange einreihen.
  • Der Prozessorkern 200 wird mit Ausführungslogik 250 gezeigt, welche einen Satz Ausführungseinheiten 255-1 bis 255-N aufweist. Manche Ausführungsformen können eine Anzahl Ausführungseinheiten umfassen, welche für spezifische Funktionen oder Funktionssätze festgeschaltet sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit umfassen, welche eine bestimmte Funktion durchführen kann. Die illustrierte Ausführungslogik 250 führt die Operationen durch, welche durch Codebefehle spezifiziert sind.
  • Nach Beenden der Ausführung der Operationen, welche durch die Codebefehle spezifiziert sind, zieht eine Nachstufenlogik 260 die Befehle des Codes 213 zurück. Bei einer Ausführungsform ermöglicht der Prozessorkern 200 eine Ausführung außerhalb der Reihenfolge, erfordert jedoch ein Zurückziehen von Befehlen in der Reihenfolge. Eine Zurückziehlogik 265 kann verschiedene Formen annehmen, wie Durchschnittsfachleuten bekannt ist (z. B. Umordnungspuffer oder dergleichen). Auf diese Weise wird der Prozessorkern 200 während Ausführung des Codes 213 mindestens in Bezug auf den Ausgang, welcher durch den Decodierer erzeugt wird, die Hardware-Register und Tabellen, welche durch die Registerumbenennungslogik 225 eingesetzt werden, und alle Register (nicht gezeigt) transformiert, welche durch die Ausführungslogik 250 modifiziert werden.
  • Obwohl nicht in 9 illustriert, kann ein Verarbeitungselement andere Elemente umfassen, welche mit dem Prozessorkern 200 chipintegriert sind. Beispielsweise kann ein Verarbeitungselement Speichersteuerungslogik zusammen mit dem Prozessorkern 200 umfassen. Das Verarbeitungselement kann E/A-Steuerungslogik umfassen und/oder es kann E/A-Steuerungslogik umfassen, welche mit Speichersteuerungslogik integriert ist. Das Verarbeitungselement kann auch ein oder mehrere Caches umfassen.
  • Jetzt unter Bezugnahme auf 10 wird ein Blockdiagramm einer Ausführungsform eines Systems 1000 gemäß einer Ausführungsform gezeigt. In 10 wird ein Multiprozessorsystem 1000 gezeigt, welches ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 umfasst. Während zwei Verarbeitungselemente 1070 und 1080 gezeigt sind, versteht es sich, dass eine Ausführungsform des Systems 1000 auch nur ein derartiges Verarbeitungselement umfassen kann.
  • Das System 1000 ist als ein Punkt-zu-Punkt-Zwischenverbindungssystem illustriert, wobei das erste Verarbeitungselement 1070 und das zweites Verarbeitungselement 1080 über eine Punkt-zu-Punkt-Zwischenverbindung 1050 verbunden sind. Es versteht sich, dass eine oder alle der in 10 illustrierten Zwischenverbindungen als ein Mehrpunktbus statt als Punkt-zu-Punkt-Zwischenverbindung implementiert werden können.
  • Wie in 10 gezeigt, kann jedes der Verarbeitungselemente 1070 und 1080 mehrkernige Prozessoren sein, welche erste und zweite Prozessorkerne umfassen (d. h. Prozessorkerne 1074a und 1074b und Prozessorkerne 1084a und 1084b). Derartige Kerne 1074a, 1074b, 1084a, 1084b können konfiguriert sein, Befehlscode in einer ähnlichen Weise auszuführen, wie die im Zusammenhang mit 9 obenstehend diskutierte.
  • Jedes Verarbeitungselement 1070, 1080 kann mindestens einen gemeinsam genutzten Cache 1896a, 1896b umfassen (z. B. statischen Direktzugriffsspeicher/SRAM). Der gemeinsam genutzte Cache 1896a, 1896b kann Daten (z. B. Objekte, Befehle) speichern, welche von einer oder mehreren Komponenten des Prozessors eingesetzt werden, wie beispielsweise der Kerne 1074a, 1074b bzw. 1084a, 1084b. Beispielsweise kann der gemeinsam genutzte Cache 1896a, 1896b Daten, welche in einem Speicher 1032, 1034 gespeichert sind, für einen schnelleren Zugang durch Komponenten des Prozessors lokal Cache-speichern. Bei einer oder mehreren Ausführungsformen kann das gemeinsam genutzte Cache 1896a, 1896b ein oder mehrere Caches mit mittlerem Level umfassen, wie beispielsweise Level 2 (L2), Level 3 (L3), Level 4 (L4) oder Caches anderer Level, ein Letzter-Level-Cache (LLC) und/oder Kombinationen davon.
  • Während sie mit nur zwei Verarbeitungselementen 1070, 1080 gezeigt sind, versteht es sich, dass der Schutzumfang der Ausführungsformen nicht so beschränkt ist. Bei anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorhanden sein. Ersatzweise können ein oder mehrere Verarbeitungselemente 1070, 1080 ein anderes Element als ein Prozessor sein, wie beispielsweise ein Beschleuniger oder ein feldprogrammierbares Gate-Array. Beispielsweise kann ein zusätzliches Verarbeitungselement (können zusätzliche Verarbeitungselemente) einen zusätzlichen Prozessor (zusätzliche Prozessoren), welche die gleichen sind wie der Prozessor 1070, einen zusätzlichen Prozessor (zusätzliche Prozessoren), welche heterogen oder asymmetrisch zu dem Prozessor 1070 sind, Beschleuniger (wie beispielsweise Grafikbeschleuniger oder digitale Signalverarbeitungseinheiten (DSP)), feldprogrammierbare Gate-Arrays oder alle anderen Verarbeitungselemente umfassen. Es können verschiedene Unterschiede zwischen dem(den) Verarbeitungselement(en) 1070, 1080 in Bezug auf ein Spektrum von Gütemetriken vorhanden sein, welche Struktur-, Mikrostruktur-, thermische, Stromverbrauchseigenschaften und dergleichen umfassen. Diese Unterschiede können sich effektiv als Asymmetrie und Heterogenität unter den Verarbeitungselementen 1070, 1080 zeigen. Bei mindestens einer Ausführungsform können sich die verschiedenen Verarbeitungselemente 1070, 1080 in dem gleichen Chip-Paket befinden.
  • Das erste Verarbeitungselement 1070 kann weiterhin Speichersteuerungslogik (MC) 1072 und Punkt-zu-Punkt-(P-P)-Schnittstellen 1076 und 1078 umfassen. Genauso kann das zweite Verarbeitungselement 1080 eine MC 1082 und P-P-Schnittstellen 1086 und 1088 umfassen. Wie in 10 gezeigt, verbinden die MCs 1072 und 1082 die Prozessoren mit jeweiligen Speichern, namentlich einem Speicher 1032 und einem Speicher 1034, welche Abschnitte des Hauptspeichers sein können, welcher lokal an die jeweiligen Prozessoren angeschlossen ist. Während die MC 1072 und 1082 als in die Verarbeitungselemente 1070, 1080 integriert illustriert sind, kann die MC-Logik für alternative Ausführungsformen eine diskrete Logik außerhalb der Verarbeitungselemente 1070, 1080 sein, statt darin integriert zu sein.
  • Das erste Verarbeitungselement 1070 und das zweites Verarbeitungselement 1080 können über P-P-Zwischenverbindungen 1076 bzw. 1086 mit einem E/A-Subsystem 1090 verbunden sein. Wie in 10 gezeigt, umfasst das E/A-Subsystem 1090 einen TEE 1097 (z. B. eine Sicherheitssteuerung) und P-P-Schnittstellen 1094 und 1098. Weiterhin umfasst das E/A-Subsystem 1090 eine Schnittstelle 1092, um das E/A-Subsystem 1090 mit einer Hochleistungs-Grafikmaschine 1038 zu verbinden. Bei einer Ausführungsform kann ein Bus 1049 verwendet werden, um die Grafikmaschine 1038 mit dem E/A-Subsystem 1090 zu verbinden. Ersatzweise kann eine Punkt-zu-Punkt-Zwischenverbindung diese Komponenten verbinden.
  • Das E/A-Subsystem 1090 kann wiederum über eine Schnittstelle 1096 mit einem ersten Bus 1016 verbunden sein. Bei einer Ausführungsform kann der erste Bus 1016 ein Peripheral-Component-Interconnect-(PCI)-Bus oder ein Bus sein, wie beispielsweise ein PCI-Express-Bus oder ein anderer E/A-Zwischenverbindungsbus der dritten Generation, obwohl der Schutzumfang der Ausführungsformen nicht so beschränkt ist.
  • Wie in 10 gezeigt, können verschiedene E/A-Vorrichtungen 1014 (z. B. Kameras, Sensoren) mit dem ersten Bus 1016 zusammen mit einer Busbrücke 1018 verbunden sein, welche den ersten Bus 1016 mit einem zweiten Bus 1020 verbinden kann. Bei einer Ausführungsform kann der zweite Bus 1020 ein Bus mit geringer Anschlusszahl (LPC-Bus) sein. Verschiedene Vorrichtungen können bei einer Ausführungsform mit dem zweiten Bus 1020 verbunden sein, einschließlich beispielsweise eine Tastatur/Maus 1012, Netzwerksteuerungen/Kommunikationsvorrichtung(en) 1026 (welche wiederum mit einem Computernetzwerk in Verbindung stehen können) und eine Datenspeichereinheit 1019, wie beispielsweise ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, welche Code 1030 umfassen kann. Der Code 1030 kann Befehle zum Durchführen von Ausführungsformen eines oder mehrerer der obenstehend beschriebenen Verfahren umfassen. Folglich kann der illustrierte Code 1030 einen oder mehrere Gesichtspunkte des Verfahrens 30 (3A bis 3B) und/oder des Verfahrens 70 (7), welche bereits diskutiert wurden, implementieren und kann dem bereits diskutierten Code 213 (9) ähnlich sein. Weiterhin kann eine Audio-E/A 1024 mit dem zweiten Bus 1020 verbunden sein.
  • Es ist zu beachten, dass andere Ausführungsformen in Betracht gezogen werden. Beispielsweise kann ein System an Stelle der Punkt-zu-Punkt-Architektur der 10 einen Mehrpunkt-Bus oder eine andere derartige Kommunikationstopologie implementieren.
  • Zusätzliche Anmerkungen und Beispiele:
  • Beispiel 1 kann ein elektronisches Bearbeitungssystem umfassen, welches einen Prozessor, ein Mehrfachkanal-Speichersystem, welches kommunikativ mit dem Prozessor gekoppelt ist, und Logik, welche kommunikativ mit dem Prozessor gekoppelt ist, um einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle des Mehrfachkanal-Speichersystems zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abzuschließen.
  • Beispiel 2 kann das System des Beispiels 1 umfassen, wobei die Logik weiterhin dazu dient, um einen Speicherkanal für den Teilsatz besetzter Speicherkanäle zu identifizieren.
  • Beispiel 3 kann das System des Beispiels 2 umfassen, wobei die Logik weiterhin dazu dient, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  • Beispiel 4 kann das System des Beispiels 2 umfassen, wobei die Logik weiterhin dazu dient, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal zu identifizieren.
  • Beispiel 5 kann das System des Beispiels 2 umfassen, wobei die Logik weiterhin dazu dient, um einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  • Beispiel 6 kann das System eines der Beispiele 1 bis 5 umfassen, wobei die Logik weiterhin dazu dient, um die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit zu machen, nachdem das erste Hochfahren abgeschlossen ist.
  • Beispiel 7 kann eine Halbleiterpaketvorrichtung umfassen, welche ein Substrat und Logik, welche mit dem Substrat gekoppelt ist, umfasst, wobei die Logik mindestens teilweise in konfigurierbarer Logik und/oder Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik, welche mit dem Substrat gekoppelt ist, dazu dient, um einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abzuschließen.
  • Beispiel 8 kann die Vorrichtung des Beispiels 7 umfassen, wobei die Logik weiterhin dazu dient, um einen Speicherkanal für den Teilsatz besetzter Speicherkanäle zu identifizieren.
  • Beispiel 9 kann die Vorrichtung des Beispiels 8 umfassen, wobei die Logik weiterhin dazu dient, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  • Beispiel 10 kann die Vorrichtung des Beispiels 8 umfassen, wobei die Logik weiterhin dazu dient, um einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal zu identifizieren. Beispiel 11 kann die Vorrichtung des Beispiels 8 umfassen, wobei die Logik weiterhin dazu dient, um einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  • Beispiel 12 kann die Vorrichtung eines der Beispiele 7 bis 11 umfassen, wobei die Logik weiterhin dazu dient, um die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit zu machen, nachdem das erste Hochfahren abgeschlossen ist.
  • Beispiel 13 kann ein Verfahren zum Hochfahren eines Betriebssystems umfassen, welches Identifizieren eines Teilsatzes besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems und Abschließen eines ersten Hochfahrens eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems umfasst.
  • Beispiel 14 kann das Verfahren des Beispiels 13 umfassen, welches weiterhin Identifizieren eines Speicherkanals für den Teilsatz besetzter Speicherkanäle umfasst.
  • Beispiel 15 kann das Verfahren des Beispiels 14 umfassen, welches weiterhin Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems als den einen Speicherkanal umfasst.
  • Beispiel 16 kann das Verfahren des Beispiels 14 umfassen, welches weiterhin Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal umfasst.
  • Beispiel 17 kann das Verfahren des Beispiels 14 umfassen, welches weiterhin Identifizieren eines am wenigsten besetzten Speicherkanals des Mehrfachkanal-Speichersystems als den einen Speicherkanal umfasst.
  • Beispiel 18 kann das Verfahren eines der Beispiele 13 bis 17 umfassen, welches weiterhin Betriebsbereitmachen der anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle umfasst, nachdem das erste Hochfahren abgeschlossen ist.
  • Beispiel 19 kann mindestens ein computerlesbares Medium umfassen, welches einen Satz Befehle umfasst, welche, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems identifiziert und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abschließt.
  • Beispiel 20 kann das mindestens eine computerlesbare Medium des Beispiels 19 umfassen, welches einen weiteren Satz Befehle umfasst, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung einen Speicherkanal für den Teilsatz besetzter Speicherkanäle identifiziert.
  • Beispiel 21 kann das mindestens eine computerlesbare Medium des Beispiels 20 umfassen, welches einen weiteren Satz Befehle umfasst, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifiziert.
  • Beispiel 22 kann das mindestens eine computerlesbare Medium des Beispiels 20 umfassen, welches einen weiteren Satz Befehle umfasst, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal identifiziert.
  • Beispiel 23 kann das mindestens eine computerlesbare Medium des Beispiels 20 umfassen, welches einen weiteren Satz Befehle umfasst, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifiziert.
  • Beispiel 24 kann das mindestens eine computerlesbare Medium eines der Beispiele 19 bis 23 umfassen, welches einen weiteren Satz Befehle umfasst, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit macht, nachdem das erste Hochfahren abgeschlossen ist.
  • Beispiel 25 kann eine Vorrichtung zum Hochfahren umfassen, welche ein Mittel zum Identifizieren eines Teilsatzes besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems und zum Abschließen eines ersten Hochfahrens eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems umfasst.
  • Beispiel 26 kann die Vorrichtung des Beispiels 25 umfassen, welche weiterhin ein Mittel zum Identifizieren eines Speicherkanals für den Teilsatz besetzter Speicherkanäle umfasst.
  • Beispiel 27 kann die Vorrichtung des Beispiels 26 umfassen, welche weiterhin ein Mittel zum Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems als den einen Speicherkanal umfasst.
  • Beispiel 28 kann die Vorrichtung des Beispiels 26 umfassen, welche weiterhin ein Mittel zum Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal umfasst.
  • Beispiel 29 kann die Vorrichtung des Beispiels 26 umfassen, welche weiterhin ein Mittel zum Identifizieren eines am wenigsten besetzten Speicherkanals des Mehrfachkanal-Speichersystems als den einen Speicherkanal umfasst.
  • Beispiel 30 kann die Vorrichtung eines der Beispiele 25 bis 29 umfassen, welche weiterhin ein Mittel zum Betriebsbereitmachen der anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle umfasst, nachdem das erste Hochfahren abgeschlossen ist.
  • Ausführungsformen sind zur Verwendung mit allen Chiptypen integrierter Halbleiterschaltkreise („IS“) anwendbar. Beispiele dieser IS-Chips umfassen insbesondere Prozessoren, Steuervorrichtungen, Chipsatz-Komponenten, programmierbare Logik-Arrays (PLAs), Speicherchips, Netzwerkchips, chipintegrierte Systeme (SoCs), SSD/NAND-Steuerungs-ASICs und dergleichen. Zusätzlich sind bei manchen Zeichnungen Signalleiterbahnen durch Linien dargestellt. Manche können verschieden sein, um stärker konstituierende Signalwege anzugeben, eine Nummerierung aufweisen, um eine Nummer der konstituierenden Signalwege anzugeben, und/oder Pfeile an einem oder mehreren Enden aufweisen, um eine primäre Informationsflussrichtung anzugeben. Dies darf jedoch nicht in einem einschränkenden Sinn verstanden werden. Stattdessen kann eine derartige hinzugefügte Einzelheit im Zusammenhang mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um ein leichteres Verständnis einer Schaltung zu vereinfachen. Alle dargestellten Signalleitungen, ob sie zusätzliche Informationen aufweisen oder nicht, können tatsächlich ein oder mehrere Signale umfassen, welche sich in mehreren Richtungen bewegen können und mit jedem geeigneten Typ eines Signalschemas implementiert werden können, z. B. durch digitale oder analoge Leitungen, welche mit differenziellen Paaren implementiert sind, Leitungen optischer Fasern und/oder unsymmetrische Leitungen.
  • Beispielgrößen/-modelle/-werte/-bereiche können angegeben sein, obwohl Ausführungsformen nicht darauf beschränkt sind. Mit der Reifung von Herstellungstechniken (z. B. Fotolithografie) über die Zeit wird erwartet, dass Geräte von kleinerer Größe hergestellt werden können. Außerdem können wohlbekannte Strom-/Masseverbindungen zu IS-Chips und anderen Komponenten in den Figuren aus Gründen der Einfachheit der Darstellung und der Beschreibung und, um bestimmte Gesichtspunkte der Ausführungsformen zu verschleiern, gezeigt werden oder nicht. Weiterhin können Anordnungen in Form eines Blockdiagramms gezeigt werden, um ein Verschleiern von Ausführungsformen zu vermeiden, und auch im Hinblick auf die Tatsache, dass Besonderheiten hinsichtlich einer Implementierung derartiger Blockdiagrammanordnungen sehr abhängig von der Plattform sind, innerhalb welcher die Ausführungsform implementiert werden soll, d. h. derartige Besonderheiten liegen sehr wohl innerhalb des von Durchschnittsfachleuten anerkannten Schutzbereichs. Wo spezifische Details (z. B. Schaltungen) ausgeführt werden, um beispielhafte Ausführungsformen zu beschreiben, ist es Durchschnittsfachleuten offenkundig, dass Ausführungsformen ohne oder mit Variation dieser spezifischen Details in die Praxis umgesetzt werden können. Die Beschreibung muss folglich als beispielhaft und nicht als einschränkend angesehen werden.
  • Der Begriff „verbunden“ kann hier verwendet werden, jeden Typ einer Beziehung, direkt oder indirekt, zwischen den fraglichen Komponenten zu bezeichnen, und kann sich auf elektrische, mechanische, flüssige, optische elektromagnetische, elektromechanische oder andere Verbindungen beziehen. Zusätzlich können die Begriffe „erste“, „zweite“ usw. hier verwendet werden, um nur die Diskussion zu vereinfachen, und sie tragen keine bestimmte zeitliche oder chronologische Signifikanz, außer es ist anders angegeben.
  • Wie sie in dieser Anmeldung und in den Ansprüchen verwendet wird, kann eine Liste von Elementen, welche durch den Begriff „ein oder mehrere“ verbunden sind, jede Kombination der aufgeführten Begriffe bedeuten. Beispielsweise können die Phrase „eins oder mehrere von A, B und C“ und die Phrase „eins oder mehrere von A, B oder C“ beide A; B; C; A und B; A und C; B und C; oder A, B und C bedeuten.
  • Durchschnittsfachleute erkennen aus der vorangehenden Beschreibung, dass die breiten Techniken der Ausführungsformen in verschiedenen Formen implementiert werden können. Während die Ausführungsformen im Zusammenhang mit bestimmten Beispielen davon beschrieben wurden, ist deshalb der wahre Schutzumfang der Ausführungsformen nicht so beschränkt, da Durchschnittsfachleuten bei einem Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche andere Modifikationen offenkundig werden.

Claims (24)

  1. Elektronisches Verarbeitungssystem, Folgendes umfassend: einen Prozessor; ein Mehrfachkanal-Speichersystem, welches kommunikativ mit dem Prozessor gekoppelt ist, und Logik, die kommunikativ mit dem Prozessor gekoppelt ist, um: einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle des Mehrfachkanal-Speichersystems zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abzuschließen.
  2. System nach Anspruch 1, wobei die Logik weiterhin dazu dient, um: einen Speicherkanal für den Teilsatz besetzter Speicherkanäle zu identifizieren.
  3. System nach Anspruch 2, wobei die Logik weiterhin dazu dient, um: einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  4. System nach Anspruch 2, wobei die Logik weiterhin dazu dient, um: einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal zu identifizieren.
  5. System nach Anspruch 2, wobei die Logik weiterhin dazu dient, um: einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  6. System nach einem der Ansprüche 1 bis 5, wobei die Logik weiterhin dazu dient, um: die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit zu machen, nachdem das erste Hochfahren abgeschlossen ist.
  7. Halbleiterpaketvorrichtung, Folgendes umfassend: ein Substrat; und Logik, welche mit dem Substrat gekoppelt ist, wobei die Logik mindestens teilweise in konfigurierbarer Logik und/oder Hardware-Logik mit fester Funktionalität implementiert ist, wobei die Logik mit dem Substrat gekoppelt ist, um: einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems zu identifizieren und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abzuschließen.
  8. Vorrichtung nach Anspruch 7, wobei die Logik weiterhin dazu dient, um: einen Speicherkanal für den Teilsatz besetzter Speicherkanäle zu identifizieren.
  9. Vorrichtung nach Anspruch 8, wobei die Logik weiterhin dazu dient, um: einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  10. Vorrichtung nach Anspruch 8, wobei die Logik weiterhin dazu dient, um: einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal zu identifizieren.
  11. Vorrichtung nach Anspruch 8, wobei die Logik weiterhin dazu dient, um: einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal zu identifizieren.
  12. Vorrichtung nach einem der Ansprüche 7 bis 11, wobei die Logik weiterhin dazu dient, um: die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit zu machen, nachdem das erste Hochfahren abgeschlossen ist.
  13. Verfahren zum Hochfahren eines Betriebssystems, Folgendes umfassend: Identifizieren eines Teilsatzes besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems; und Abschließen eines ersten Hochfahrens eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems.
  14. Verfahren nach Anspruch 13, weiterhin Folgendes umfassend: Identifizieren eines Speicherkanals für den Teilsatz besetzter Speicherkanäle.
  15. Verfahren nach Anspruch 14, weiterhin Folgendes umfassend: Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems als den einen Speicherkanal.
  16. Verfahren nach Anspruch 14, weiterhin Folgendes umfassend: Identifizieren eines ersten besetzten Speicherkanals des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal.
  17. Verfahren nach Anspruch 14, weiterhin Folgendes umfassend: Identifizieren eines am wenigsten besetzten Speicherkanals des Mehrfachkanal-Speichersystems als den einen Speicherkanal.
  18. Verfahren nach einem der Ansprüche 13 bis 17, weiterhin Folgendes umfassend: Betriebsbereitmachen der anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle, nachdem das erste Hochfahren abgeschlossen ist.
  19. Nichtflüchtiges computerlesbares Medium oder mehrere nichtflüchtige computerlesbare Medien, umfassend einen Satz von Befehlen, welche, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung: einen Teilsatz besetzter Speicherkanäle aus einem vollen Satz besetzter Speicherkanäle eines Mehrfachkanal-Speichersystems identifiziert; und ein erstes Hochfahren eines Betriebssystems mit nur dem identifizierten Teilsatz Speicherkanäle des Mehrfachkanal-Speichersystems abschließt.
  20. Nichtflüchtiges computerlesbares Medium oder mehrere nichtflüchtige computerlesbare Medien nach Anspruch 19, umfassend einen weiteren Satz von Befehlen, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung: einen Speicherkanal für den Teilsatz besetzter Speicherkanäle identifiziert.
  21. Nichtflüchtiges computerlesbares Medium oder mehrere nichtflüchtige computerlesbare Medien nach Anspruch 20, umfassend einen weiteren Satz von Befehlen, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung: einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifiziert.
  22. Nichtflüchtiges computerlesbares Medium oder mehrere nichtflüchtige computerlesbare Medien nach Anspruch 20, umfassend einen weiteren Satz von Befehlen, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung: einen ersten besetzten Speicherkanal des Mehrfachkanal-Speichersystems mit weniger Speicherkomponenten als ein Schwellenwert als den einen Speicherkanal identifiziert.
  23. Nichtflüchtiges computerlesbares Medium oder mehrere nichtflüchtige computerlesbare Medien nach Anspruch 20, umfassend einen weiteren Satz von Befehlen, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung: einen am wenigsten besetzten Speicherkanal des Mehrfachkanal-Speichersystems als den einen Speicherkanal identifiziert.
  24. Nichtflüchtiges computerlesbares Medium oder mehrere nichtflüchtige computerlesbare Medien nach einem der Ansprüche 19 bis 23, umfassend einen weiteren Satz von Befehlen, welche, wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungsvorrichtung: die anderen besetzten Speicherkanäle des vollen Satzes besetzter Speicherkanäle betriebsbereit macht, nachdem das erste Hochfahren abgeschlossen ist.
DE112017008112.2T 2017-09-29 2017-09-29 Erstes hochfahren mit einem speicherkanal Pending DE112017008112T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/104214 WO2019061227A1 (en) 2017-09-29 2017-09-29 FIRST PRIMING WITH A MEMORY CHANNEL

Publications (1)

Publication Number Publication Date
DE112017008112T5 true DE112017008112T5 (de) 2020-07-02

Family

ID=65902280

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017008112.2T Pending DE112017008112T5 (de) 2017-09-29 2017-09-29 Erstes hochfahren mit einem speicherkanal

Country Status (4)

Country Link
US (1) US11455261B2 (de)
CN (1) CN111095228A (de)
DE (1) DE112017008112T5 (de)
WO (1) WO2019061227A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210136480A (ko) 2020-05-07 2021-11-17 삼성전자주식회사 프로세싱 장치가 실장된 메모리 모듈을 포함하는 컴퓨팅 시스템의 부팅 방법
WO2022032508A1 (en) * 2020-08-12 2022-02-17 Intel Corporation Offloading processor memory training to on-die controller module

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100198382B1 (ko) * 1996-05-07 1999-06-15 윤종용 멀티-부팅 기능을 갖는 컴퓨터 장치
US6732264B1 (en) * 1999-12-14 2004-05-04 Intel Corporation Multi-tasking boot firmware
KR100929143B1 (ko) * 2002-12-13 2009-12-01 삼성전자주식회사 컴퓨터 및 그 제어방법
US20070157015A1 (en) * 2005-12-29 2007-07-05 Swanson Robert C Methods and apparatus to optimize boot speed
US8042190B2 (en) * 2007-12-31 2011-10-18 Intel Corporation Pre-boot protected memory channel
US20100070728A1 (en) * 2008-09-12 2010-03-18 Fujitsu Limited Method and apparatus for authenticating user access to disk drive
US20100325372A1 (en) * 2009-06-17 2010-12-23 Housty Oswin E Parallel training of dynamic random access memory channel controllers
US8843732B2 (en) * 2009-12-21 2014-09-23 Intel Corporation Mechanism for detecting a no-processor swap condition and modification of high speed bus calibration during boot
KR20120085968A (ko) * 2011-01-25 2012-08-02 삼성전자주식회사 컴퓨팅 시스템의 부팅 방법 및 이를 수행하는 컴퓨팅 시스템
US9652006B2 (en) * 2011-12-21 2017-05-16 Intel Corporation Power management in a discrete memory portion
US10558468B2 (en) * 2015-10-22 2020-02-11 American Megatrends International, Llc Memory channel storage device initialization
US10216550B2 (en) * 2016-10-01 2019-02-26 Intel Corporation Technologies for fast boot with adaptive memory pre-training

Also Published As

Publication number Publication date
US11455261B2 (en) 2022-09-27
US20200364162A1 (en) 2020-11-19
CN111095228A (zh) 2020-05-01
WO2019061227A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
DE102018130631A1 (de) Hierarchische Spracherkennungsauflösung
DE112005002305B4 (de) Thread-Livelock-Einheit
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE112010003762B4 (de) Flash-Speicher-Steuereinheit
DE112013005368T5 (de) Prozessoren, verfahren und systeme für echtzeit-befehlsverfolgung
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern
DE102016006402A1 (de) Persistente commit-prozessoren, verfahren, systeme und befehle
DE112015001502T5 (de) Ausstieg aus mehreren Threads in einem Computer
DE102020133809A1 (de) Schnittstelle und warm-rücksetzpfad für speichervorrichtungsfirmware-upgrades
DE102013113262A1 (de) Auslöser-Leitwegeinheit
DE112018008197T5 (de) Laufzeit-Nach-Paket-Reparatur für Speicher
DE102020129195A1 (de) Vereinheitlichtes programmiermodul für eine funktion-als-ein-dienst-berechnung
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102019117226A1 (de) Schaltkreis mit adaptiven speicherassistenzfähigkeiten
DE102018214008A1 (de) Dynamische Plattformmerkmaleinstellung basierend auf Laufzeiterfordernissen virtueller Maschinen
DE112017008112T5 (de) Erstes hochfahren mit einem speicherkanal
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE112016004301T5 (de) Vornehmen einer flüchtigen Fehleratomarität von Isolierungstransaktionen in einem nichtflüchtigen Speicher
DE102012112363A1 (de) Verfahren zum Verbreiten einer Mehrzahl von Interrupts, Interrupt-Anforderungssignal-Verbreitungsschaltungen und Ein-Chip-Systeme, welche dieselben aufweisen
DE4429764C2 (de) Zeitgebereinrichtung für einen Mikrocomputer
DE102008016180A1 (de) Darlegen von Systemtopologie für die Ausführungsumgebung
DE102020108612A1 (de) Ausserband-verwaltungsschnittstelle von nichtflüchtigem speicher für alle hostprozessor-power-zustände
DE102018130166A1 (de) Latenzmessungstechnologie
DE102012202174A1 (de) Mikrocomputer