DE112017004891T5 - Multidimensionale Optimierung von elektrischen Parametern zum Trainieren eines Speichers - Google Patents

Multidimensionale Optimierung von elektrischen Parametern zum Trainieren eines Speichers Download PDF

Info

Publication number
DE112017004891T5
DE112017004891T5 DE112017004891.5T DE112017004891T DE112017004891T5 DE 112017004891 T5 DE112017004891 T5 DE 112017004891T5 DE 112017004891 T DE112017004891 T DE 112017004891T DE 112017004891 T5 DE112017004891 T5 DE 112017004891T5
Authority
DE
Germany
Prior art keywords
values
electrical parameters
combination
electrical
combinations
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
DE112017004891.5T
Other languages
English (en)
Inventor
Oseghale Uduebho
Adam Norman
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 DE112017004891T5 publication Critical patent/DE112017004891T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters

Abstract

Aspekte der Ausführungsformen richten sich an Systeme, Verfahren und Vorrichtungen zum Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iteratives Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht den Vorrang der am 29. September 2016 eingereichten, nicht-vorläufigen U.S. Patentanmeldung Nr. 15/280.320 mit dem Titel „MULTI-DIMENSIONAL OPTIMIZATION OF ELECTRICAL, PARAMETERS FOR MEMORY TRAINING“, die hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen ist.
  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich auf die multidimensionale Optimierung elektrischer Parameter zum Trainieren eines Speichers.
  • ALLGEMEINER STAND DER TECHNIK
  • Die Skalierbarkeit der Optimierungsroutinen für den DDR-Speicherbus kann unter anderem durch die Komplexität der Parameterinteraktionen, die Margin-Saturation, einen Ausführungszeitpunkt und vieles mehr beeinflusst werden.
  • Speicher-Referenzcode (MRC, Memory Reference Code) führt eindimensionale Abtasungen oder zweidimensionale (feines/grobes Raster) Trainingsschritte durch, um elektrische Parameter zu optimieren. Die zunehmende Anzahl elektrischer Parameter, für die optimiert werden muss, macht dies aufgrund des erheblichen Mehraufwands bei der Durchlaufzählung rechnerisch ineffizient. Darüber hinaus wird die Reihenfolge der Trainingsschritte empirisch durch Kundenreferenz-Boards (CRB, Customer Reference Board) und Referenz-Validierungsplattformen (RVP, Reference Validation Platform) bestimmt. Dies setzt voraus, dass Kundenplattformen innerhalb des Produktdesign-Leitfadens (PDG, Product Design Guide) liegen. Infolgedessen werden mögliche Wechselwirkungen zwischen unabhängigen Trainingsschritten nicht spontan bestimmt. Einige Interaktionen werden empirisch über Plattformen vorgegeben, die nicht ganz repräsentativ für das gesamte Ökosystem sind.
  • Die Komplexität der Margin-Saturation kann sich auch auf die Skalierbarkeit auswirken. Ein eindimensionaler Trainingsschritt ist aufgrund der Margin-Saturation fehleranfällig. Die Mittelung der Margen kann die Auswirkungen des Rauschens mindern, aber die Mittelung kann die Margin-Saturation nicht berücksichtigen.
  • Bereichsabtastungen des Ausführungszeitpunktes können empirische Daten aus elektrischen Validierungsverfahren zum Bestimmen von Teilbereichen erfordern. Die abgetasteten Bereiche können eine Teilmenge von Design für Testfähigkeiten sein, was zu einer eingeschränkten Optimierung führen kann.
  • Figurenliste
    • 1 veranschaulicht eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkernprozessor.
    • 2 ist ein Prozessablaufdiagramm zum Bestimmen einer Vorhersagefunktion basierend auf einem Punkttest unter Verwendung eines oder mehrerer elektrischer Parameter gemäß den Ausführungsformen der vorliegenden Offenbarung.
    • 3 veranschaulicht eine Ausführungsform eines Rechensystems mit einer Verbindungsarchitektur gemäß den Ausführungsformen der vorliegenden Offenbarung.
    • 4 veranschaulicht eine Ausführungsform einer Verbindungsarchitektur mit einem geschichteten Stapel gemäß den Ausführungsformen der vorliegenden Offenbarung.
    • 5 veranschaulicht eine Ausführungsform einer Anforderung oder eines Pakets, die oder das innerhalb einer Verbindungsarchitektur gemäß den Ausführungsformen der vorliegenden Offenbarung erzeugt oder empfangen werden soll.
    • 6 veranschaulicht eine Ausführungsform eines Sender- und Empfängerpaares für eine Verbindungsarchitektur gemäß den Ausführungsformen der vorliegenden Offenbarung.
    • 7 veranschaulicht eine weitere Ausführungsform eines Blockdiagramms für ein Rechensystem gemäß den Ausführungsformen der vorliegenden Offenbarung.
  • Es versteht sich, dass die Zeichnungen nicht maßstabsgetreu gezeichnet sind und nur zur Veranschaulichung dienen. Zusätzlich bezeichnen in den Zeichnungen gleiche Bezugszeichen entsprechende Teile in den verschiedenen Ansichten.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, wie etwa Beispiele für spezifische Typen von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische architektonische und mikroarchitektonische Details, spezifische Registerkonfigurationen, spezifische Anweisungstypen, spezifische Systemkomponenten, spezifische Messungen/Höhen, spezifische Prozessor-Pipelinestufen und -betriebe usw., um ein umfassendes Verständnis der vorliegenden Offenbarung zu vermitteln. Für Fachleute ist es jedoch ersichtlich, dass diese spezifischen Details nicht zur Ausübung der vorliegenden Offenbarung herangezogen werden müssen. In anderen Fällen wurden bekannte Komponenten oder Verfahren, wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Code für beschriebene Algorithmen, spezifischer Firmware-Code, spezifischer Verbindungsbetrieb, spezifische Logikkonfigurationen, spezifische Fertigungstechniken und -materialien, spezifische Compiler-Implementierungen, spezifischer Ausdruck von Algorithmen im Code, spezifische Ausschalte- und Abschnitttechniken/Logik und andere spezifische betriebliche Details des Rechensystems nicht im Detail beschrieben, um unnötige Verzögerungen bei der vorliegenden Offenbarung zu vermeiden.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf die Energieeinsparung und Energieeffizienz in bestimmten integrierten Schaltungen, wie etwa in Computerplattformen oder Mikroprozessoren, beschrieben werden können, gelten andere Ausführungsformen auch für andere Arten von integrierten Schaltungen und Logikvorrichtungen. Ähnliche Techniken und Lehren der hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleitervorrichtungen angewendet werden, die auch von einer besseren Energieeffizienz und Energieeinsparung profitieren können. So sind beispielsweise die offenbarten Ausführungsformen nicht auf Desktop-Rechensysteme oder Ultrabooks™ beschränkt. Und sie können auch in anderen Geräten verwendet werden, wie etwa tragbaren Geräten, Tablets, anderen dünnen Notebooks, Systemen auf einem Chip (SOC) und integrierten Anwendungen. Einige Beispiele für tragbare Geräte beinhalten Mobiltelefone, Internet-Protokollgeräte, Digitalkameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Integrierte Anwendungen beinhalten typischerweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), ein System auf einem Chip, Netzwerkcomputer (XetPC), Set-Top-Boxen, Netzwerk-Hubs, Wide-Area-Network-(WAN- )Switches oder jedes andere System, das die unten beschriebenen Funktionen und Operationen ausführen kann. Ferner sind die hierin beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physikalische Rechenvorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen zur Energieeinsparung und - effizienz beziehen. Wie aus der nachfolgenden Beschreibung ersichtlich wird, sind die Ausführungsformen der hierin beschriebenen Verfahren, Geräte und Systeme (sei es in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) für eine Zukunft der „grünen Technologie“, die mit Leistungsüberlegungen in Einklang steht, von entscheidender Bedeutung.
  • Mit fortschreitender Entwicklung der Rechensysteme werden die Komponenten darin immer komplexer. Infolgedessen wird auch die Verbindungsarchitektur zum Koppeln und Kommunizieren zwischen den Komponenten immer komplexer, um sicherzustellen, dass die Bandbreitenanforderungen für einen optimalen Komponentenbetrieb erfüllt werden. Außerdem erfordern verschiedene Marktsegmente unterschiedliche Aspekte der Verbindungsarchitekturen, um den Bedürfnissen des Marktes gerecht zu werden. Beispielsweise erfordern Server eine höhere Leistung, während das mobile Ökosystem manchmal in der Lage ist, die Gesamtleistung für Energieeinsparungen zu vernachlässigen. Dennoch ist es ein wesentlicher Zweck der meisten Modelle, eine höchstmögliche Leistung bei maximaler Energieeinsparung zu bieten. Im Folgenden werden eine Reihe von Schaltungen erörtert, die potenziell von Aspekten der hierin beschriebenen Offenbarung profitieren würden.
  • Unter Bezugnahme auf 1 wird eine Ausführungsform eines Blockdiagramms für ein Rechensystem mit einem Mehrkernprozessor dargestellt. Der Prozessor 100 beinhaltet jeden Prozessor oder jede Verarbeitungsvorrichtung, wie etwa einen Mikroprozessor, einen integrierten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Co-Prozessor, ein System auf einem Chip (SOC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 100 beinhaltet in einer Ausführungsform mindestens zwei Kerne - die Kerne 101 und 102 -, die asymmetrische Kerne oder symmetrische Kerne beinhalten können (die dargestellte Ausführungsform). Der Prozessor 100 kann jedoch eine beliebige Anzahl von Verarbeitungselementen beinhalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik, um einen Software-Thread zu unterstützen. Beispiele für Hardware-Verarbeitungselemente beinhalten: eine Thread-Einheit, ein Thread-Slot, ein Thread, eine Prozesseinheit, ein Kontext, eine Kontext-Einheit, ein logischer Prozessor, ein Hardware-Thread, ein Kern und/oder jedes andere Element, das in der Lage ist, einen Zustand für einen Prozessor zu halten, wie etwa einen Ausführungszustand oder einen Architekturzustand. Mit anderen Worten bezieht sich ein Verarbeitungselement in einer Ausführungsform auf jede Hardware, die unabhängig mit Code verbunden werden kann, wie etwa einen Software-Thread, ein Betriebssystem, eine Anwendung oder einen anderen Code. Ein physikalischer Prozessor (oder Prozessorsockel) bezieht sich typischerweise auf eine integrierte Schaltung, die möglicherweise eine beliebige Anzahl anderer Verarbeitungselemente, wie etwa Kerne oder Hardware-Threads, beinhaltet.
  • Ein Kern bezieht sich oft auf eine Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand mit mindestens einigen dedizierten Ausführungsressourcen verbunden ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread typischerweise auf jede Logik, die sich auf einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, worin die unabhängig aufrechterhaltenen Architekturzustände den Zugriff auf Ausführungsressourcen teilen. Wie ersichtlich ist, überschneidet sich die Linie zwischen der Nomenklatur eines Hardware-Threads und dem Kern, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere einem architektonischen Zustand gewidmet sind. Doch oft werden ein Kern und ein Hardware-Thread von einem Betriebssystem als einzelne logische Prozessoren betrachtet, wobei das Betriebssystem in der Lage ist, Operationen auf jedem logischen Prozessor individuell zu planen.
  • Der physikalische Prozessor 100, wie in 1 dargestellt, beinhaltet zwei Kerne-den Kern 101 und 102. Hier werden die Kerne 101 und 102 als symmetrische Kerne betrachtet, d. h. Kerne mit den gleichen Konfigurationen, Funktionseinheiten und/oder Logik. In einer weiteren Ausführungsform beinhaltet Kern 101 einen Out-of-Order-Prozessorkern, während Kern 102 einen In-Order-Prozessorkern beinhaltet. Die Kerne 101 und 102 können individuell aus jeder Art von Kern ausgewählt werden, wie etwa einem nativen Kern, einem softwaregesteuerten Kern, einem Kern, der zur Ausführung einer nativen Befehlssatzarchitektur (ISA) angepasst ist, einem Kern, der zur Ausführung einer übersetzten Befehlssatzarchitektur (ISA) angepasst ist, einem mitentwickelten Kern oder einem anderen bekannten Kern. In einer heterogenen Kernumgebung (d. h. asymmetrischen Kernen) kann eine Form der Übersetzung, eine solche binäre Übersetzung, verwendet werden, um Code auf einem oder beiden Kernen zu planen oder auszuführen. Um die Diskussion fortzusetzen, werden die in Kern 101 dargestellten Funktionseinheiten im Folgenden näher beschrieben, da die Einheiten in Kern 102 in der dargestellten Ausführungsform ähnlich funktionieren.
  • Wie dargestellt, beinhaltet der Kern 101 zwei Hardware-Threads 101a und 101b, die auch als Hardware-Thread-Slots 101a und 101b bezeichnet werden können. Daher sehen Softwareeinheiten, wie etwa ein Betriebssystem, in einer Ausführungsform den Prozessor 100 potenziell als vier separate Prozessoren an, d. h. vier logische Prozessoren oder Verarbeitungselemente, die vier Software-Threads gleichzeitig ausführen können. Wie oben erwähnt, ist ein erster Thread den Architekturzustandsregistern 101a zugeordnet, ein zweiter Thread den Architekturzustandsregistern 101b, ein dritter Thread kann den Architekturzustandsregistern 102a zugeordnet sein, und ein vierter Thread kann den Architekturzustandsregistern 102b zugeordnet sein. Hier kann jedes der Architekturzustandsregister (101a, 101b, 102a und 102b), wie oben beschrieben, als Verarbeitungselement, Thread-Slot oder Thread-Einheit bezeichnet werden. Wie dargestellt, werden die Architekturzustandsregister 101a in die Architekturzustandsregister 101b repliziert, so dass einzelne Architekturzustände/ -kontexte für den logischen Prozessor 101a und den logischen Prozessor 101b gespeichert werden können. Im Kern 101 können auch andere kleinere Ressourcen, wie etwa Instruktionszeiger und Umbenennungslogik im Allokator- und Umbenennerblock 130, für die Threads 101a und 101b repliziert werden. Einige Ressourcen, wie etwa Nachbestellungspuffer in der Nachbestell-/ Abgangseinheit 135, ILTB 120, Lade-/ Speicherpuffer und Pufferinhalte, können durch Partitionierung gemeinsam genutzt werden. Andere Ressourcen, wie etwa allgemeine interne Register, Seitentabellen-Basisregister, Low-Level-Daten-Cache und Data-TLB 115, Ausführungseinheit(en) 140 und Teile der Out-of-Order-Einheit 135, werden möglicherweise vollständig gemeinsam genutzt.
  • Der Prozessor 100 beinhaltet oft andere Ressourcen, die vollständig freigegeben, durch Partitionierung gemeinsam genutzt oder von/für Verarbeitungselemente bestimmt sein können. In 1 ist eine Ausführungsform eines rein exemplarischen Prozessors mit illustrativen logischen Einheiten/ Ressourcen eines Prozessors dargestellt. Es ist zu beachten, dass ein Prozessor alle diese Funktionseinheiten sowie alle anderen bekannten Funktionseinheiten, Logik oder Firmware, die nicht dargestellt sind, beinhalten oder weglassen kann. Wie dargestellt, beinhaltet Kern 101 einen vereinfachten, repräsentativen Out-of-Order-(OOO-)Prozessorkern. Ein In-Order-Prozessor kann jedoch in verschiedenen Ausführungsformen eingesetzt werden. Der OOO-Kern beinhaltet einen Sprungzielpuffer 120 zum Vorhersagen von auszuführenden/zu übernehmenden Branches und einen Befehlsübersetzungspuffer (I-TLB) 120 zum Speichern von Adressübersetzungseinträgen für Anweisungen.
  • Der Kern 101 beinhaltet weiterhin das Dekodiermodul 125, das mit der Fetch-Einheit 120 gekoppelt ist, um abgerufene Elemente zu dekodieren. Die Fetch-Logik beinhaltet in einer Ausführungsform einzelne Sequenzer, die den Thread-Slots 101a, 101b zugeordnet sind. Normalerweise ist der Kern 101 mit einem ersten ISA verbunden, der Anweisungen definiert/spezifiziert, die auf dem Prozessor 100 ausführbar sind. Häufig beinhalten Maschinencode-Befehle, die Teil des ersten ISA sind, einen Teil der Anweisung (als Opcode bezeichnet), der eine auszuführende Anweisung oder Operation referenziert/spezifiziert. Die Decodierlogik 125 beinhaltet eine Schaltung, die diese Anweisungen von ihren Opcodes erkennt und die decodierten Anweisungen in der Leitung zur Verarbeitung gemäß der Definition der ersten ISA weiterleitet. Wie im Folgenden näher erläutert, beinhalten die Decoder 125 in einer Ausführungsform beispielsweise eine Logik, die so konzipiert oder angepasst ist, dass sie spezifische Anweisungen, wie etwa Transaktionsanweisungen, erkennt. Infolge der Erkennung durch die Decoder 125 führt die Architektur oder der Kern 101 spezifische, vordefinierte Aktionen durch, um Aufgaben auszuführen, die mit dem entsprechenden Befehl verbunden sind. Es ist wichtig zu beachten, dass jede der hierin beschriebenen Aufgaben, Blöcke, Operationen und Verfahren als Reaktion auf eine einzelne oder mehrere Anweisungen ausgeführt werden kann; einige davon können neue oder alte Anweisungen sein. Die Note-Decoder 126 erkennen in einer Ausführungsform dasselbe ISA (oder eine Teilmenge davon). Alternativ erkennen die Decoder 126 in einer heterogenen Kernumgebung ein zweites ISA (entweder eine Teilmenge des ersten ISA oder ein separates ISA).
  • In einem Beispiel beinhaltet der Allokator- und Umbenennerblock 130 einen Allokator zur Reservierung von Ressourcen, wie etwa Registerdateien zum Speichern von Ergebnissen der Befehlsverarbeitung. Die Threads 101a und 101b sind jedoch potenziell in der Lage, eine außerplanmäßige Ausführung durchzuführen, wobei der Allokator- und Umbenennerblock 130 auch andere Ressourcen reserviert, wie etwa Nachbestellungspuffer zum Verfolgen der Befehlsergebnisse. Einheit 130 kann auch einen Registerumbenenner beinhalten, um Programm-/ Anweisungsreferenzregister in andere Register umzubenennen, die intern im Prozessor 100 gespeichert sind. Die Nachbestell-/ Abgangseinheit 135 beinhaltet Komponenten, wie etwa die oben genannten Nachbestellungspuffer, Ladungspuffer und Lastpuffer, um die außer Betrieb genommene Ausführung und die spätere Außerbetriebnahme von außer Betrieb genommenen Anweisungen zu unterstützen.
  • Planer- und Ausführungseinheit(en)-Block 140 beinhaltet in einer Ausführungsform eine Planereinheit zum Planen von Anweisungen/ Operationen auf Ausführungseinheiten. So wird beispielsweise eine Gleitkommaanweisung auf einer Schnittstelle einer Ausführungseinheit geplant, die über eine verfügbare Gleitkomma-Ausführungseinheit verfügt. Registerdateien, die den Ausführungseinheiten zugeordnet sind, werden ebenfalls mitgeliefert, um Ergebnisse der Informationsanweisungsverarbeitung zu speichern. Exemplarische Ausführungseinheiten sind eine Gleitkomma-Ausführungseinheit, eine ganzzahlige Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Last-Ausführungseinheit, eine Filial-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Untergeordneter Daten-Cache und Datenübersetzungspuffer (D-TLB) 150 sind mit der Ausführungseinheit(en) 140 gekoppelt. Der Daten-Cache soll zuletzt verwendete/betreute Elemente, wie etwa Datenoperanden, speichern, die möglicherweise in Speicherkohärenzzuständen gehalten werden. Das D-TLB soll aktuelle virtuelle/lineare in physische Adressübersetzungen speichern. Als spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur beinhalten, um den physikalischen Speicher in mehrere virtuelle Seiten aufzuteilen.
  • Hier teilen sich die Kerne 101 und 102 den Zugriff auf den übergeordneten oder weitergehenden Cache, wie etwa einen Cache der zweiten Ebene, der der On-Chip-Schnittstelle 110 zugeordnet ist. Es ist zu beachten, dass sich übergeordnet oder weitergehend auf Cache-Level bezieht, die sich erhöhen oder weiter von der/den Ausführungseinheit(en) entfernt sind. In einer Ausführungsform ist der übergeordnete Cache ein Daten-Cache der letzten Stufe in der Speicherhierarchie auf dem Prozessor 100, wie etwa ein Daten-Cache der zweiten oder dritten Stufe. Der übergeordnete Cache ist jedoch nicht so begrenzt, da er mit einem Befehlscache verbunden sein oder diesen beinhalten kann. Ein Trace-Cache-eine Art von Befehlscache-kann nach dem Decoder 125 gekoppelt werden, um kürzlich dekodierte Spuren zu speichern. Hier bezieht sich eine Anweisung möglicherweise auf eine Makroanweisung (d. h. eine von den Decodern erkannte allgemeine Anweisung), die in eine Reihe von Mikroanweisungen (Mikrooperationen) dekodieren kann.
  • In der dargestellten Konfiguration beinhaltet der Prozessor 100 auch das On-Chip-Schnittstellenmodul 110. In der Vergangenheit wurde eine Speichersteuerung, die im Folgenden näher beschrieben wird, in ein Rechensystem außerhalb des Prozessors 100 integriert. In diesem Szenario ist die On-Chip-Schnittstelle 11 die Kommunikation mit Vorrichtungen außerhalb des Prozessors 100, wie etwa dem Systemspeicher 175, einem Chipsatz (der oft einen Memory-Controller-Hub zum Verbinden mit dem Speicher 175 und einen I/O-Controller-Hub zum Verbinden von Peripheriegeräten beinhaltet), einem Memory-Controller-Hub, einer Northbridge oder einer anderen integrierten Schaltung. Und in diesem Szenario kann der Bus 105 jede bekannte Verbindung beinhalten, wie etwa Multi-Drop-Bus, eine Punkt-zu-Punkt-Verbindung, eine serielle Verbindung, einen Parallelbus, einen kohärenten (z. B. Cache-kohärenten) Bus, eine geschichtete Protokollarchitektur, einen Differenzbus und einen GTL-Bus.
  • Der Speicher 175 kann dem Prozessor 100 zugeordnet oder mit anderen Geräten in einem System geteilt werden. Häufige Beispiele für Speichertypen 175 sind DRAM, SRAM, nicht-flüchtiger Speicher (NV-Speicher) und andere bekannte Speichervorrichtungen. Es ist zu beachten, dass die Vorrichtung 180 einen Grafikbeschleuniger, Prozessor oder eine Karte beinhalten kann, die mit einem Memory-Controller-Hub, einem Datenspeicher, der mit einem I/O-Controller-Hub, einem drahtlosen Sender-Empfänger, einer Flash-Vorrichtung, einer Audiosteuerung, einer Netzwerksteuerung oder einer anderen bekannten Vorrichtung gekoppelt ist.
  • In letzter Zeit kann jedoch, da mehr Logik und Vorrichtungen auf einem einzelnen Chip, wie etwa SOC, integriert werden, jede dieser Vorrichtungen in den Prozessor 100 eingebaut werden. Zum Beispiel befindet sich in einer Ausführungsform ein Memory-Controller-Hub auf dem gleichen Gehäuse und/oder Chip mit dem Prozessor 100. Hier beinhaltet ein Abschnitt des Kerns (ein On-Core-Bereich) 110 eine oder mehrere Steuerung(en) zur Schnittstellenbildung mit anderen Vorrichtungen, wie etwa dem Speicher 175 oder einer Grafikvorrichtung 180. Die Konfiguration, die eine Verbindung und Steuerungen für die Verbindung mit solchen Vorrichtungen beinhaltet, wird oft als On-Core-Konfiguration (oder Un-Core-Konfiguration) bezeichnet. Als Beispiel beinhaltet die On-Chip-Schnittstelle 110 eine Ringschaltung für die On-Chip-Kommunikation und eine serielle Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung 105 für die Off-Chip-Kommunikation. In der SOC-Umgebung können jedoch noch mehr Vorrichtungen, wie etwa die Netzwerkschnittstelle, Co-Prozessoren, Speicher 175, Grafikprozessor 180 und alle anderen bekannten Rechenvorrichtungen/Schnittstellen auf einem einzelnen Chip oder einer integrierten Schaltung, integriert werden, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Stromverbrauch zu bieten.
  • In einer Ausführungsform ist der Prozessor 100 in der Lage, einen Compiler-, Optimierungs- und/oder Übersetzungscode 177 auszuführen, um Anwendungscode 176 zu kompilieren, zu übersetzen und/oder zu optimieren, um die hierin beschriebenen Vorrichtungen und Verfahren zu unterstützen oder mit ihnen zu verbinden. Ein Compiler beinhaltet oft ein Programm oder einen Satz von Programmen, um Quelltext/Code in Zieltext/Code zu übersetzen. Normalerweise wird die Kompilierung von Programm-/Anwendungscode mit einem Compiler in mehreren Phasen durchgeführt und durchläuft die Umwandlung von High-Level-Programmiersprachencode in Low-Level-Maschinen- oder Assemblersprachencode. Dennoch können Single-Pass-Compiler für die einfache Kompilierung verwendet werden. Ein Compiler kann alle bekannten Compilertechniken verwenden und alle bekannten Compileroperationen durchführen, wie etwa lexikalische Analyse, Vorverarbeitung, Parsen, semantische Analyse, Codegenerierung, Codetransformation und Code-Optimierung.
  • Größere Compiler beinhalten mehrere Phasen, aber meistens sind diese Phasen in zwei allgemeinen Phasen enthalten: (1) ein Frontend, d. h. im Allgemeinen, wo syntaktische Verarbeitung, semantische Verarbeitung und einige Transformation/Optimierung stattfinden können, und (2) ein Backend, d. h. im Allgemeinen, wo Analyse, Transformationen, Optimierungen und Codegenerierung stattfinden. Einige Compiler beziehen sich auf eine Mitte, die die Unschärfe der Abgrenzung zwischen einem Frontend und einem Backend eines Compilers veranschaulicht. Infolgedessen kann die Referenz auf das Einfügen, Zuordnen, Erzeugen oder andere Operationen eines Compilers in einer der oben genannten Phasen oder Durchgänge sowie in allen anderen bekannten Phasen oder Durchgänge eines Compilers erfolgen. Als veranschaulichendes Beispiel fügt ein Compiler potenziell Operationen, Aufrufe, Funktionen usw. in eine oder mehrere Phasen der Kompilierung ein, wie etwa das Einfügen von Aufrufen/Operationen in eine Frontend-Phase der Kompilierung und dann die Transformation der Aufrufe/Operationen in untergeordneten Code, während einer Transformationsphase. Es ist zu beachten, dass während der dynamischen Kompilierung Compilercode oder dynamischer Optimierungscode solche Operationen/Aufrufe einfügen und den Code für die Ausführung während der Laufzeit optimieren kann. Als anschauliches Beispiel kann Binärcode (bereits kompilierter Code) während der Laufzeit dynamisch optimiert werden. Hier kann der Programmcode den dynamischen Optimierungscode, den Binärcode oder eine Kombination davon beinhalten.
  • Ähnlich wie ein Compiler übersetzt ein Übersetzer, wie etwa ein binärer Übersetzer, Code entweder statisch oder dynamisch, um Code zu optimieren und/oder zu übersetzen. Daher kann sich der Verweis auf die Ausführung von Code, Anwendungscode, Programmcode oder einer anderen Softwareumgebung auf Folgendes beziehen: (1) Ausführen eines Compilerprogramms (von Compilerprogrammen), Optimierungscodeoptimierers oder Übersetzers, entweder dynamisch oder statisch, um Programmcode zu kompilieren, Softwarestrukturen zu pflegen, andere Operationen durchzuführen, Code zu optimieren oder Code zu übersetzen; (2) Ausführen von Hauptprogrammcode einschließlich Operationen/Aufrufen, wie etwa optimierter/kompilierter Anwendungscode; (3) Ausführen von anderem Programmcode, wie etwa Bibliotheken, der dem Hauptprogrammcode zugeordnet ist, um Softwarestrukturen zu pflegen, andere softwarebezogene Operationen durchzuführen oder Code zu optimieren; oder (4) eine Kombination davon.
  • Diese Offenbarung beschreibt das iterative Training eines oder mehrerer elektrischer Parameter zur Optimierung eines Speicherlaufzustands. Ein Antwortoberflächenmethoden-(RSM, Response Surface Method-)Ansatz wird verwendet, um die zur Abschätzung des optimalen Betriebszustandes erforderlichen Laufzahlen zu minimieren. RSM ist ein Kurvenanpassungsverfahren, um eine Vorhersagefunktion zu bestimmen, die den Fehler von Messungen minimiert; die Vorhersagefunktion kann verwendet werden, um die Ausgabe für einen bestimmten Eingang zu schätzen.
  • Eine wiederverwendbare Design-of-Experiment-(DOE-)Matrix und ihre Umkehrung sind zur BIOS-Kompilierungszeit verfügbar. Die wiederverwendbare DOE-Matrix kann Interaktionen mit einem erweiterten Suchbereich besser erfassen. Die hierin beschriebenen Systeme und Verfahren können die Margin-Antwort, wie etwa eine System-Eye-Area, als Antwortparameter verwenden. Die Verwendung der System-Eye-Area kann Margin-Saturation-Probleme bei eindimensionalen Abtasungen beseitigen (d. h. im Gegensatz zur alleinigen Abhängigkeit von der Augenhöhe oder Augenbreite). Außerdem mildert die Eye-Area die Auswirkungen von Rauschen, da die Anzahl der (Spannungs-, Zeit-)Koordinaten, die die Augengrenze beschreiben, nicht im gleichen Zeitabschnitt erhalten wird.
  • Die hierin beschriebenen Systeme und Verfahren können zu weniger Durchläufen führen, die erforderlich wären, um einen optimierten Systembetriebspunkt zu schätzen. Wenn N die Anzahl der diskreten Einstellungen für jeden Faktor und k die Anzahl der Faktoren darstellt, dann ist die Laufzeitkomplexität für das traditionelle Training (1D/2D-Hybrid) in der Reihenfolge N2. Die Komplexität der RSM-Laufzeit liegt in der Größenordnung 3k. Die Reihenfolge von N und k für aktuelle und zukünftige Designs kann den RSM-Taster und die rechnerische Effizienz von 1-dimensionalen Abtastungen erhöhen.
  • Die Systeme und Verfahren können eine Margin-Vorhersageformel ableiten. Analysen, die auf RSM-Daten in HVM-Umgebungen (High Volume Manufacturing) basieren, können den Silizium/DFT-Designern Feedback geben, um zukünftige Arbeiten zu ermöglichen.
  • Die Systeme und Verfahren sorgen für weniger zu wartenden Code. Die Vorhersagefunktion, oder in einigen Fällen auch mehr, elektrische Parameter, die durch eine Vorhersagefunktion identifiziert werden, können auf zukünftigen Plattformen unabhängig von der Speichertechnologie oder der Busfrequenz wiederverwendet werden.
  • Die Systeme und Verfahren sorgen für Zeitersparnis durch den Einsatz von RSM, was möglicherweise zu einem erhöhten Loop-Count führt und genaueren Transaction-Error-Rate-(TER-)Messungen Platz macht, die dem Ende der Zufalls-Jitterverteilung entsprechen.
  • Die statistische Versuchsplanungs-(DOE, Design of Experiment-)Matrix, x, ist zur BIOS-Kompilierungszeit vorgegeben. Die Trainingsschritte, die der Matrix x entsprechen, erzeugen die lineare Gleichung Ax=B, wobei A eine Koeffizientenmatrix und B ein Reaktionsvektor der System-Eye-Area ist. Die „Umkehrung“ von x ist bei der BIOS-Kompilierung vorgegeben und macht es zu einer wiederverwendbaren Matrix mit der geringsten quadratischen Anpassung, wodurch der Rechenaufwand entfällt. A wird zur Laufzeit bestimmt, die als Vorhersagefunktion für die Augenpartie des System-Margins dient. Ein lokales Maximum wird bestimmt, indem der Lösungsraum der Eingabe auf die Vorhersageformel angewendet wird. Um eine zusätzliche Iteration durchzuführen, wird der Lösungsraum systematisch so „geschrumpft“, dass das zuvor bestimmte lokale Maximum den „Seed“ bildet, um den eine nachfolgende mehrdimensionale Suche durchgeführt wird.
  • Die Konvergenz des RSM-Lösungsraums pro Iteration stellt sicher, dass die Iterationen begrenzt sind. Wenn M die maximal möglichen Iterationen bezeichnet, dann gilt das System nach N Iterationen als optimiert, wobei N größer als 0 ist und N kleiner oder gleich M ist, vorausgesetzt, dass eine der folgenden Bedingungen erfüllt ist:
    • das Bestimmtheitsmaß (R2) für die Nth-Iteration kleiner als ein vorgegebener Schwellenwert ist; und
    • die Gesamtsumme der fehlerhaften Quadrate (SST) zwischen (n-1)th und der Nth-Iteration steigt.
  • Margin-Vorhersageformel, die in der (N-1)th-Iteration bestimmt wird und zur Bestimmung des stabilen Arbeitspunktes für das System verwendet wird.
  • Das DOE kann einen Satz konfigurierter elektrischer Parameter darstellen. So kann beispielsweise das DOE 16 verschiedene Kombinationen für elektrische Parameter darstellen. Aus dem Cache-Speicher kann der Prozessor für jede der 16 verschiedenen Kombinationen von elektrischen Parametern einen Punkttest durchführen. Der Prozessor kann für jeden Punkttest die Margin-Antwort (z. B. Augenpartie) bestimmen.
  • 2 ist ein Prozessablaufdiagramm 200 zum Bestimmen einer Vorhersagefunktion basierend auf einem Punkttest unter Verwendung eines oder mehrerer elektrischer Parameter gemäß den Ausführungsformen der vorliegenden Offenbarung. Das Prozessablaufdiagramm 200 kann vor der Initialisierung eines Rechensystems auftreten, das einen Prozessor und Speicher beinhaltet. Zu Beginn wurden die zu durchsuchenden Parameterbereiche fest im Prozessor-BIOS kodiert. Bei einem verfügbaren Bereich für jeden elektrischen Parameterwert kann die DOE-Matrix alle verfügbaren Parameterbereiche (202) beinhalten. Die anfängliche Iteration kann einen uneingeschränkten Satz (oder Abtastbereich) von Kombinationen von Werten elektrischer Parameter verwenden, wobei für jeden elektrischen Parameter ein breites Spektrum möglicher Werte verwendet wird. Der Prozessor kann einen Punkttest mit jeder Kombination von elektrischen Parametern aus der DOE-Matrix (202) durchführen. Der Punkttest kann einen Testkontext beinhalten, über den die Transaktionsfehlerrate (für Speicheranwendungen) oder eine Bit-Fehlerrate für PCIe-Anwendungen ermittelt werden kann. Der Prozessor kann aus der DOE-Matrix (204) für jede der Kombinationen von elektrischen Parametern eine Margin-Antwort erzeugen.
  • Der Prozessor kann bestimmen, ob eine der Kombination von Parametern zu einer Null-Margin-Antwort (206) führt. Wenn es eine Null-Margin-Antwort gibt, dann kann der Prozessor aus der Kombination der elektrischen Parameter, die zur Null-Margin-Antwort (208) geführt haben, einen am stärksten beeinflussenden elektrischen Parameterwert bestimmen. Der Parameterbereich kann auf Werte beschränkt werden, die den am stärksten beeinflussenden elektrischen Parameterwert ausschließen, der zur Null-Margin-Antwort führte, oder den Parameterbereich in Ausführungsformen auf Werte beschränken, die zu einer maximalen Margin-Antwort für die Kombination von elektrischen Parametern führen. Eine neue Margin-Antwort kann basierend auf den eingeschränkten Parametern (204) erzeugt werden.
  • Wenn es keine Null-Margin-Antwort aus einer der Kombinationen von elektrischen Parametern gibt, kann eine Vorhersageformel erzeugt werden, indem die Margin-Antwort mit der entsprechenden Kombination von elektrischen Parametern (210) korreliert wird. Wenn beispielsweise die DOE-Matrix durch x dargestellt wird und die Margin-Antwortwerte (z. B. Augenbereichswert) für jede Kombination von elektrischen Parametern durch B dargestellt werden, dann kann die Vorhersagefunktion A durch Ax=B definiert werden. Der Prozessor kann die Vorhersagefunktion anwenden oder testen, um zu bestimmen, wie gut die Vorhersagefunktion Margin-Antworten vorhersagen kann.
  • Der Prozessor kann bestimmen, ob eine Varianz der Antworten pro durchgeführter Iteration konvergiert und ob RSq < Schwellenwert (212), wobei der Schwellenwert ein Wert von 0,75 oder mehr sein kann. Die Qualität des Vorhersagewertes kann mit Hilfe eines oder mehrerer statistischer Merkmale quantifiziert werden, wie etwa:
    • SStotal = Gesamtsumme der Werte der Quadrate;
    • SSe= Gesamtsumme der Fehler in den Quadraten;
    • SStotal = SSM + SSe, wobei SS die Notation für die Summe der Quadrate ist und T, M und E die Notation für Summe, Modell und Fehler sind; und
    • RSq = Korrelationskoeffizient.
  • Die Qualität der Vorhersagefunktion kann durch einen RSq-Korrelationskoeffizienten über 0,85 dargestellt werden, dann kann die Vorhersagefunktion als ausreichend hochwertig angesehen werden; in Ausführungsformen kann ein niedriger Wert für die SStotal auch als Quantisierer für eine zuverlässige Vorhersagefunktion verwendet werden.
  • Wenn die Varianz nicht pro durchgeführter Iteration konvergiert (oder, anders ausgedrückt, wenn sich die Varianz zwischen den Iterationen nicht ändert) und RSq > -Schwellenwert, dann kann der Trainingsprozess gestoppt werden, und die Vorhersagefunktion der letzten Iteration kann zur Optimierung der elektrischen Parameterwerte (214) verwendet werden.
  • Wenn die Varianz der Antworten konvergierend ist und/oder der RSq < Schwellenwert, dann kann der Prozessor bestimmen, ob der Lösungsraum verfeinert werden kann (216). Kann der Lösungsraum (z. B. die verfügbare Kombination von elektrischen Parameterwerten) nicht weiter verfeinert werden, kann der Trainingsprozess gestoppt und die Vorhersagefunktion aus der letzten Iteration zur Optimierung der elektrischen Parameterwerte (214) genutzt werden. Wenn der Lösungsraum verfeinert werden kann, kann der Prozessor die Vorhersageformel aus der aktuellen Iteration verwenden, um die Parameter zu optimieren, und der Prozessor kann den Lösungsraum auf Werte verfeinern, die denen ähneln, die zu einem lokalen Maximum führen (218). Die DOE-Matrix kann so überarbeitet werden, dass sie einen kleineren Lösungsraum (z. B. eine geringere Anzahl von Kombinationen elektrischer Parameter und/oder einen kleineren Bereich von elektrischen Parameterwerten) basierend auf den lokalen Maxima der vorherigen DOE-Lauf-Iteration beinhaltet. Der Punkttest kann mit der neuen DOE-Matrix (204) durchgeführt werden.
  • Die Ergebnisse werden im Flash-Speicher gespeichert, und die Bedingungen werden bei einem Warmstart abgerufen.
  • In Ausführungsformen können die elektrischen Parameter zwei oder mehr einer DQ-Bus-Antriebsstärke (Sendeseite), einer Sendeentzerrung, einer Empfangsentzerrung, einer Anstiegsrate (Sendeseite), einer On-Die-Terminierung auf der CPU-Seite (während eines DQ-Leseereignisses) oder einer DIMM Ron, d. h. Impedanz an DIMM-Ausgangstreibern (während eines DQ-Leseereignisses), oder andere elektrische Parameter beinhalten.
  • Eine Interconnect-Fabric-Architektur beinhaltet die „Peripheral Component Interconnect (PCI) Express (PCIe) “-Architektur. Ein Hauptziel der PCIe ist es, Komponenten und Vorrichtungen verschiedener Hersteller in eine offene Architektur zu integrieren, die mehrere Marktsegmente abdeckt: Kunden (Desktops und Mobile), Server (Standard und Enterprise) sowie integrierte und Kommunikationsvorrichtungen. PCI-Express ist eine leistungsstarke, universell einsetzbare I/O-Verbindung, die für mehrere zukünftigen Computer- und Kommunikationsplattformen definiert ist. Einige PCI-Attribute, wie etwa Nutzungsmodell, Load-Store-Architektur und Softwareschnittstellen, wurden durch die Überarbeitung beibehalten, während frühere parallele Bus-Implementierungen durch eine hochskalierbare, vollständig serielle Schnittstelle ersetzt wurden. Die neueren Versionen von PCI-Express nutzen die Vorteile der Fortschritte bei Punkt-zu-Punkt-Verbindungen, Switchbasierter Technologie und paketiertem Protokoll, um neue Leistungsstufen und Funktionen zu bieten. Energiemanagement, Quality Of Service (QoS), Hot-Plug/Hot-Swap-Unterstützung, Datenintegrität und Fehlerbehandlung gehören zu den erweiterten Funktionen von PCI-Express.
  • Unter Bezugnahme auf 3 wird eine Ausführungsform eines Modells aus Punkt-zu-Punkt-Verbindungen dargestellt, die einen Satz von Komponenten miteinander verbinden. Das System 300 beinhaltet den Prozessor 305 und den Systemspeicher 310, der mit dem Controller-Hub 315 gekoppelt ist. Der Prozessor 305 beinhaltet jedes Verarbeitungselement, wie etwa einen Mikroprozessor, einen Host-Prozessor, einen integrierten Prozessor, einen Co-Prozessor oder einen anderen Prozessor. Der Prozessor 305 ist über den Frontside-Bus (FSB) 306 mit dem Controller-Hub 315 gekoppelt. In einer Ausführungsform ist FSB 306 eine serielle Punkt-zu-Punkt-Verbindung, wie nachfolgend beschrieben. In einer weiteren Ausführungsform beinhaltet Verbindung 306 eine serielle, differentielle Verbindungsarchitektur, die mit verschiedenen Verbindungsstandards kompatibel ist.
  • Der Systemspeicher 310 beinhaltet jede Speichervorrichtung, wie etwa Direktzugriffsspeicher (RAM), nicht-flüchtige (NV) Speicher oder andere Speicher, auf die die Vorrichtungen im System 300 zugreifen können. Der Systemspeicher 310 ist über die Speicherschnittstelle 316 mit dem Controller-Hub 315 gekoppelt. Beispiele für eine Speicherschnittstelle sind eine DDR-Speicherschnittstelle (Double Data Rate), eine Zweikanal-DDR-Speicherschnittstelle und eine dynamische RAM-(DRAM-)Speicherschnittstelle.
  • In einer Ausführungsform ist der Controller-Hub 315 ein Root-Hub, Root-Komplex oder Root-Controller in einer „Peripheral Component Interconnect Express“-(PCIe oder PCI E-)Verbindungshierarchie. Beispiele für den Controller-Hub 315 sind ein Chipsatz, ein Memory-Controller-Hub (MCH), eine Northbridge, ein Interconnect Controller Hub (ICH), eine Southbridge und ein Root Controller/Hub. Häufig bezieht sich der Begriff Chipsatz auf zwei physikalisch getrennte Controller-Hubs, d. h. einen Memory-Controller-Hub (MCI I), der mit einem Interconnect-Controller-Hub (ICH) gekoppelt ist. Es ist zu beachten, dass aktuelle Systeme oft den MCH beinhalten, der mit dem Prozessor 305 integriert ist, während die Steuerung 315 mit I/O-Vorrichtungen in ähnlicher Weise wie unten beschrieben kommunizieren soll. In einigen Ausführungsformen wird das Peer-to-Peer-Routing optional durch den Wurzelkomplex 315 unterstützt.
  • Hier ist der Controller-Hub 315 über die serielle Schnittstelle 319 mit dem Schalter/ der Brücke 320 gekoppelt. Die Eingangs-/ Ausgangsmodule 317 und 321, die auch als Schnittstellen/Anschlüsse 317 und 321 bezeichnet werden können, beinhalten/implementieren einen geschichteten Protokollstapel, um die Kommunikation zwischen dem Controller-Hub 315 und dem Schalter 320 zu gewährleisten. In einer Ausführungsform können mehrere Vorrichtungen mit dem Schalter 320 gekoppelt werden.
  • Schalter/Brücke 320 schaltet Pakete/Nachrichten von der Vorrichtung 325 vor, d. h. eine Hierarchie nach oben zu einem Root-Komplex, zum Controller-Hub 315 und nach, d. h. eine Hierarchie nach unten, die von einer Root-Steuerung, vom Prozessor 305 oder Systemspeicher 310 zu der Vorrichtung 325 entfernt ist. Der Schalter 320 wird in einer Ausführungsform als logische Anordnung mehrerer virtueller PCI-zu-PCI-Brückenvorrichtungen bezeichnet. Die Vorrichtung 325 beinhaltet jede interne oder externe Vorrichtung oder Komponente, die mit einem elektronischen System gekoppelt werden soll, wie etwa eine E/A-Vorrichtung, eine Netzwerkschnittstellen-Steuerung (N IC), eine Add-in-Karte, einen Audioprozessor, einen Netzwerkprozessor, eine Festplatte, eine Speichervorrichtung, eine CD/DYD-ROM, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, eine tragbare Speichervorrichtung, eine Firewire-Vorrichtung, eine „Universal Serial Bus“-(USB-)Vorrichtung, einen Scanner und andere Ein-/Ausgabevorrichtungen. Häufig wird im PCIe Sprachgebrauch, wie etwa Vorrichtung, diese als Endpunkt bezeichnet. Obwohl nicht speziell dargestellt, kann Vorrichtung 325 eine PCIe- zu PCI/PCI-X-Brücke beinhalten, um ältere oder andere PCI-Vorrichtungen der Version zu unterstützen. Endgeräte in PCIe werden häufig als Legacy, PCIe oder Wurzelkomplex integrierte Endpunkte klassifiziert.
  • Der Grafikbeschleuniger 330 ist ebenfalls über die serielle Schnittstelle 332 mit dem Controller-Hub 315 gekoppelt. In einer Ausführungsform ist der Grafikbeschleuniger 330 mit einem MCH gekoppelt, der mit einem ICH gekoppelt ist. Der Schalter 320 und damit die I/O-Vorrichtung 325 werden dann mit dem ICH gekoppelt. Die I/O-Module 331 und 318 sollen auch einen geschichteten Protokollstapel zur Kommunikation zwischen Grafikbeschleuniger 330 und Controller-Hub 315 implementieren. Ähnlich wie bei der obigen MCH-Diskussion kann eine Grafiksteuerung oder der Grafikbeschleuniger 330 selbst in den Prozessor 305 integriert werden.
  • Mit Bezugnahme nun auf 4 ist eine Ausführungsform eines geschichteten Protokollstapels dargestellt. Der geschichtete Protokollstapel 400 beinhaltet jede Form eines geschichteten Kommunikationsstapels, wie etwa „Quick Path Interconnect“-(QPI-)Stapel, einen PCie-Stapel, einen Hochleistungs-Computing-Verbindungsstapel der nächsten Generation oder einen anderen geschichteten Stapel. Obwohl sich die unmittelbar folgende Diskussion in Bezug auf die 3-6 auf einen PCIe-Stapel bezieht, können die gleichen Konzepte auf andere Interconnect-Stacks angewendet werden. In einer Ausführungsform ist der Protokollstapel 400 ein PCie-Protokollstapel mit der Transaktionsschicht 405, der Verbindungsschicht 410 und der physikalischen Schicht 420. Eine Schnittstelle, wie die Schnittstellen 317, 318, 321, 322, 326 und 331 in 3, kann als Kommunikationsprotokollstapel 400 dargestellt werden. Die Darstellung als Kommunikationsprotokollstapel kann auch als Modul oder Schnittstelle bezeichnet werden, die einen Protokollstapel implementiert bzw. inkludiert.
  • PCI-Express verwendet Pakete, um Informationen zwischen den Komponenten zu übertragen. Pakete werden in der Transaktionsschicht 405 und der Datenverbindungsschicht 410 gebildet, um die Informationen von der Sendekomponente zur Empfangskomponente zu übertragen. Da die übertragenen Pakete durch die anderen Schichten fließen, werden sie um zusätzliche Informationen erweitert, die für die Verarbeitung von Paketen in diesen Schichten erforderlich sind. Auf der Empfängerseite findet der umgekehrte Prozess statt und die Pakete werden von ihrer Darstellung als physikalische Schicht 420 in die Darstellung als Datenverbindungsschicht 410 und schließlich (für Transaktionsschichtpakete) in die Form umgewandelt, die von der Transaktionsschicht 405 der Empfangsvorrichtung verarbeitet werden kann.
  • Transaktionsschicht
  • In einer Ausführungsform soll die Transaktionsschicht 405 eine Schnittstelle zwischen dem Verarbeitungskern einer Vorrichtung und der Verbindungsarchitektur, wie etwa der Datenverbindungsschicht 410 und der physikalischen Schicht 420, bereitstellen. In diesem Zusammenhang ist eine Hauptverantwortung der Transaktionsschicht 405 die Installation und Deinstallation von Paketen (d. h. Transaktionsschichtpaketen oder TLPs). Die Übersetzungsschicht 405 verwaltet typischerweise die Kreditflusssteuerung für TLPs. PCie implementiert getrennte Transaktionen, d. h. Transaktionen mit Anforderung und Antwort getrennt nach Zeit, so dass eine Verbindung anderen Traffic übertragen kann, während die Zielvorrichtung Daten für die Antwort sammelt.
  • Darüber hinaus nutzt PCie die Kreditflusssteuerung. In diesem Schema wirbt eine Vorrichtung für einen Anfangsbetrag an Guthaben für jeden der Empfangspuffer in der Transaktionsschicht 405. Eine externe Vorrichtung am anderen Ende der Verbindung, wie etwa der Controller-Hub 115 in 1, zählt die Anzahl der Credits, die von jedem 4'LP verbraucht werden. Eine Transaktion kann übermittelt werden, wenn die Transaktion ein Kreditlimit nicht überschreitet. Nach Erhalt einer Antwort wird ein Betrag von Guthaben wiederhergestellt. Ein Vorteil eines Kreditsystems besteht darin, dass die Latenzzeit der Kreditrückgabe keinen Einfluss auf die Performance hat, vorausgesetzt, dass das Kreditlimit nicht eingehalten wird.
  • In einer Ausführungsform beinhalten vier Transaktionsadressräume einen Konfigurationsadressraum, einen Speicheradressraum, einen Ein-/Ausgabeadressraum und einen Nachrichtenadressraum. Speicherplatztransaktionen beinhalten eine oder mehrere Leseanforderungen und Schreibanforderungen zum Übertragen von Daten zu/von einem Speicherabbildungsort. In einer Ausführungsform sind Speicherplatztransaktionen in der Lage, zwei verschiedene Adressformate zu verwenden, z. B. ein kurzes Adressformat, wie eine 32-Bit-Adresse, oder ein langes Adressformat, wie eine 64-Bit-Adresse. Konfigurationsraumtransaktionen werden verwendet, um auf den Konfigurationsraum der PCIe-Vorrichtungen zuzugreifen. Zu den Transaktionen im Konfigurationsraum gehören Leseanforderungen und Schreibanforderungen. Nachrichtenraumtransaktionen (oder einfach Nachrichten) werden definiert, um die In-Band-Kommunikation zwischen PCIe-Agenten zu unterstützen.
  • Daher assembliert die Transaktionsschicht 405 in einer Ausführungsform Paket-Header/Nutzlast 406. Das Format für aktuelle Paket-Header/Nutzlast kann in der PCIe-Spezifikation auf der Website der PCIe-Spezifikation ausfindig gemacht werden.
  • Unter Bezugnahme auf 5 wird eine Ausführungsform eines PCIe-Transaktionsdeskriptors veranschaulicht. In einer Ausführungsform ist der Transaktionsdeskriptor 500 ein Mechanismus zum Führen von Transaktionsinformationen. In diesem Zusammenhang unterstützt der Transaktionsdeskriptor 500 die Identifizierung von Transaktionen in einem System. Weitere mögliche Anwendungen sind die Verfolgung von Änderungen der Standardtransaktionsordnung und die Zuordnung von Transaktionen zu Kanälen.
  • Der Transaktionsdeskriptor 500 beinhaltet das globale Identifikatorfeld 502, das Attributfeld 504 und das Kanalidentifikatorfeld 506. In dem veranschaulichten Beispiel wird das globale Identifikatorfeld 502 dargestellt, das das lokale Transaktionskennungsfeld 508 und das Quellkennungsfeld 510 umfasst. In einer Ausführungsform ist die globale Transaktionskennung 502 für alle ausstehenden Anforderungen eindeutig.
  • Gemäß einer Implementierung ist das lokale Transaktionskennzeichenfeld 508 ein Feld, das von einem anfordernden Bearbeiter erzeugt wird, und es ist eindeutig für alle ausstehenden Anfragen, die eine Erledigung für diesen anfordernden Bearbeiter erfordern. Darüber hinaus identifiziert die Quellkennung 510 in diesem Beispiel den Anfordereragenten innerhalb einer PCIe-Hierarchie eindeutig. Dementsprechend bietet die lokale Feldtransaktionskennung 508 zusammen mit der Quellkennung 510 eine globale Identifizierung einer Transaktion innerhalb einer Hierarchiedomäne.
  • Das Attributfeld 504 gibt Merkmale und Beziehungen der Transaktion an. In diesem Zusammenhang wird das Attributfeld 504 möglicherweise verwendet, um zusätzliche Informationen bereitzustellen, die eine Änderung der Standardbehandlung von Transaktionen ermöglichen. In einer Ausführungsform beinhaltet das Attributfeld 504 das Prioritätsfeld 512, das reservierte Feld 514, das Ordnungsfeld 516 und das No-Snoop-Feld 518. Hier kann das Prioritäts-Teilfeld 512 durch einen Initiator geändert werden, um der Transaktion eine Priorität zuzuweisen. Das reservierte Attributfeld 514 bleibt für zukünftige oder vom Hersteller definierte Anwendungen reserviert. Mögliche Nutzungsmodelle mit Prioritäts- oder Sicherheitsattributen können über das reservierte Attributfeld implementiert werden.
  • In diesem Beispiel wird das Ordnungsattributfeld 516 verwendet, um optionale Informationen zu liefern, die die Art der Bestellung übermitteln, die die Standard-Bestellregeln ändern kann. Gemäß einer exemplarischen Implementierung bezeichnet ein Ordnungsattribut von „0“ die Anwendung von Standard-Bestellregeln, wobei ein Ordnungsattribut von „1“ eine entspannte Ordnung bezeichnet, wobei Writes Writes in die gleiche Richtung und Lesevervollständigungen Writes in die gleiche Richtung weitergeben können. Das Snoop-Attributfeld 518 wird verwendet, um zu bestimmen, ob Transaktionen gesnooped werden. Wie dargestellt, identifiziert das Kanal-ID-Feld 506 einen Kanal, dem eine Transaktion zugeordnet ist.
  • Verbindungsschicht
  • Die Verbindungsschicht 410, auch Datenverbindungsschicht 410 genannt, dient als Zwischenstufe zwischen der Transaktionsschicht 405 und der physikalischen Schicht 420. In einer Ausführungsform stellt eine Verantwortung der Datenverbindungsschicht 410 einen zuverlässigen Mechanismus für den Austausch von Transaktionsschichtpaketen (T1 ,Ps) zwischen zwei Komponenten eine Verbindung dar. Eine Seite der Datenverbindungsschicht 410 akzeptiert TLPs, die von der Transaktionsschicht 405 zusammengestellt wurden, wendet die Paket-Sequenzkennung 411 an, d. h. eine Identifikationsnummer oder Paketnummer, berechnet und wendet einen Fehlererkennungscode, d. h. CRC 412, an und sendet die geänderten TLPs an die physikalische Schicht 420 zur Übertragung über eine physikalische Verbindung an eine externe Vorrichtung.
  • Physikalische Schicht
  • In einer Ausführungsform beinhaltet die physikalische Schicht 420 den logischen Unterblock 421 und den elektrischen Unterblock 422, um ein Paket physikalisch an eine externe Vorrichtung zu übertragen. Hier ist der logische Unterblock 421 für die „digitalen“ Funktionen der physikalischen Schicht 421 verantwortlich. In diesem Zusammenhang beinhaltet der logische Unterblock einen Sendeabschnitt, um ausgehende Informationen für die Übertragung durch den physikalischen Unterblock 422 vorzubereiten, und einen Empfängerabschnitt, um empfangene Informationen zu identifizieren und vorzubereiten, bevor sie an die Verbindungsschicht 410 weitergeleitet werden.
  • Der physikalische Block 422 beinhaltet einen Sender und einen Empfänger. Der Sender wird durch den logischen Unterblock 421 mit Symbolen versorgt, die der Sender serialisiert und an eine externe Vorrichtung weiterleitet. Der Empfänger wird von einer externen Vorrichtung mit serialisierten Symbolen versorgt und wandelt die empfangenen Signale in einen Bitstrom um. Der Bitstrom wird de-serialisiert und dem logischen Unterblock 421 zugeführt. In einer Ausführungsform wird ein 8b-/ 10b-Übertragungscode verwendet, wobei zehn Bit-Symbole gesendet/empfangen werden. Hier werden spezielle Symbole verwendet, um ein Paket mit Frames 423 zu umrahmen. Darüber hinaus stellt der Empfänger in einem Beispiel auch eine Symboluhr zur Verfügung, die aus dem eingehenden seriellen Strom wiederhergestellt wird.
  • Wie bereits erwähnt, ist ein geschichteter Protokollstapel nicht so begrenzt, obwohl Transaktionsschicht 405, Verbindungsschicht 410 und physikalische Schicht 420 in Bezug auf eine bestimmte Ausführungsform eines PCIe-Protokollstapels erörtert werden. In diesem Sinne kann jedes mehrschichtige Protokoll eingebunden/implementiert werden. Als Beispiel beinhaltet ein Anschluss/ eine Schnittstelle, der/die als geschichtetes Protokoll dargestellt wird: (1) eine erste Schicht zum Zusammenstellen von Paketen, d. h. eine Transaktionsschicht; eine zweite Schicht zum Sequenzieren von Paketen, d. h. eine Verbindungsschicht; und eine dritte Schicht zum Übertragen der Pakete, d. h. eine physikalische Schicht. Als konkretes Beispiel wird ein geschichtetes „Common Standard Interface“-(CSI-)Protokoll verwendet.
  • Unter Bezugnahme auf 6 ist eine Ausführungsform eines seriellen PCIe-Punkt-zu-Punkt-Modells dargestellt. Obwohl eine Ausführungsform einer seriellen PCIe-Punkt-zu-Punkt-Verbindung veranschaulicht wird, ist eine serielle Punkt-zu-Punkt-Verbindung nicht so begrenzt, da sie einen Übertragungsweg zur Übertragung serieller Daten beinhaltet. In der dargestellten Ausführungsform beinhaltet eine grundlegende PCIe-Verbindung zwei niederspannungsfähige, differentiell angesteuerte Signalpaare: ein Sendepaar 606/611 und ein Empfangspaar 612/607. Dementsprechend beinhaltet die Vorrichtung 605 eine Sendelogik 606 zum Übertragen von Daten an die Vorrichtung 610 und eine Empfangslogik 607 zum Empfangen von Daten von der Vorrichtung 610. Mit anderen Worten sind in einer PCIe-Verbindung zwei Sendepfade, d. h. die Pfade 616 und 617, und zwei Empfangspfade, d. h. die Pfade 618 und 619, beinhaltet.
  • Ein Übertragungsweg bezieht sich auf jeden Weg zur Datenübertragung, wie etwa eine Sendeleitung, eine Kupferleitung, eine optische Leitung, einen drahtlosen Kommunikationskanal, eine Infrarot-Kommunikationsverbindung oder einen anderen Kommunikationsweg. Eine Verbindung zwischen zwei Vorrichtungen, wie etwa der Vorrichtung 605 und der Vorrichtung 610, wird als Verbindung bezeichnet, wie etwa die Verbindung 415. Eine Verbindung kann eine Spur unterstützen - jede Spur repräsentiert eine Reihe von differentiellen Signalpaaren (ein Paar zum Senden, ein Paar zum Empfangen). Um die Bandbreite zu skalieren, kann eine Verbindung mehrere durch xN bezeichnete Pfade summieren, wobei N eine beliebige unterstützte Linkbreite ist, wie etwa 1, 2, 4, 8, 12, 16, 32, 64 oder breiter.
  • Ein Differentialpaar bezieht sich auf zwei Übertragungswege, wie etwa die Leitungen 616 und 617, um differentielle Signale zu übertragen. Wenn beispielsweise die Leitung 616 von einem Niederspannungspegel zu einem Hochspannungspegel, d. h. einer steigenden Flanke, umschaltet, fährt die Leitung 617 von einem hohen Logikpegel zu einem niedrigen Logikpegel, d. h. einer fallenden Flanke. Differenzsignale weisen potenziell bessere elektrische Eigenschaften auf, wie etwa eine bessere Signalintegrität, d. h. Kreuzkopplung, Spannungsüber-/- unterschreitung, Klingeln, etc. Dies ermöglicht ein besseres Zeitfenster, das schnellere Übertragungsfrequenzen ermöglicht.
  • Es ist zu beachten, dass die oben beschriebenen Vorrichtungen, Verfahren und Systeme in allen oben genannten elektronischen Vorrichtungen oder Systemen implementiert werden können. Zur Veranschaulichung stellen die folgenden Figuren exemplarische Systeme für die Nutzung der hierin beschriebenen Offenbarung dar. Da die folgenden Systeme näher beschrieben werden, werden eine Reihe von verschiedenen Verbindungen offenbart, beschrieben und aus der obigen Erörterung herausgegriffen. Und wie leicht zu erkennen ist, können die oben beschriebenen Fortschritte auf jede dieser Verbindungen, Modelle oder Architekturen angewendet werden.
  • Unter Bezugnahme nun auf 7 wird ein Blockdiagramm der in einem Rechensystem vorhandenen Komponenten gemäß einer Ausführungsform der vorliegenden Offenbarung dargestellt. Wie in 7 dargestellt, beinhaltet System 7 eine beliebige Kombination von Komponenten. Diese Komponenten können als ICs, Teile davon, diskrete elektronische Vorrichtungen oder andere Module, Logik, Hardware, Software, Firmware oder eine Kombination davon implementiert werden, die in einem Rechensystem angepasst sind, oder als Komponenten, die anderweitig in ein Gehäuse des Rechensystems integriert sind. Es ist zu beachten, dass das Blockdiagramm von 7 eine übersichtliche Darstellung vieler Komponenten des Rechensystems darstellen soll. Es versteht sich jedoch, dass einige der dargestellten Komponenten weggelassen werden können, zusätzliche Komponenten vorhanden sein können und in anderen Implementierungen eine unterschiedliche Anordnung der dargestellten Komponenten auftreten kann. Infolgedessen kann die vorstehend beschriebene Offenbarung in jedem Teil einer oder mehrerer der nachfolgend dargestellten oder beschriebenen Schaltungen umgesetzt werden.
  • Wie in 7 zu sehen ist, beinhaltet ein Prozessor 710 in einer Ausführungsform einen Mikroprozessor, einen Mehrkernprozessor, einen Multithread-Prozessor, einen Ultra-Niederspannungsprozessor, einen integrierten Prozessor oder ein anderes bekanntes Verarbeitungselement. In der veranschaulichten Implementierung fungiert der Prozessor 710 als Hauptverarbeitungseinheit und zentrale Anlaufstelle für die Kommunikation mit vielen der verschiedenen Komponenten des Systems 700. Als Beispiel ist der Prozessor 700 als System-on-a-Chip (SoC) implementiert. Als konkretes anschauliches Beispiel beinhaltet der Prozessor 710 einen Intel®-Architektur-Core™-basierten Prozessor, wie etwa einen i3, i5, i7 oder einen anderen Prozessor, der über die Intel Corporation, Santa Clara, CA, erhältlich ist. Es versteht sich jedoch, dass andere stromsparende Prozessoren, wie sie etwa bei Advanced Micro Devices, Inc. (AMD) in Sunnyvale, CA, einem MIPS-basierten Design von MIPS Technologies, Inc. in Sunnyvale, CA, einem ARM-basierten Design, das von ARM Holdings, Ltd. oder deren Kunden lizenziert ist, oder deren Lizenznehmer oder Partner stattdessen in anderen Ausführungsformen, wie etwa einem Apple A5/A6-Prozessor, einem Qualcomm Snapdragon-Prozessor oder TT OMAP-Prozessor, vorhanden sein können. Es ist zu beachten, dass viele der Kundenversionen solcher Prozessoren modifiziert und variiert sind; sie können jedoch einen spezifischen Befehlssatz unterstützen oder erkennen, der definierte Algorithmen ausführt, wie vom Prozessorlizenzgeber festgelegt. Hier kann die mikroarchitektonische Implementierung variieren, aber die architektonische Funktion des Prozessors ist in der Regel konsistent. Bestimmte Details zur Architektur und zum Betrieb des Prozessors 710 in einer Implementierung werden im Folgenden näher erläutert, um ein anschauliches Beispiel zu geben.
  • Der Prozessor 710 kommuniziert in einer Ausführungsform mit einem Systemspeicher 715. Dies ist ein anschauliches Beispiel, das in einer Ausführungsform über mehrere Speichervorrichtungen implementiert werden kann, um eine bestimmte Menge an Systemspeicher bereitzustellen. Als Beispiele kann der Speicher in Übereinstimmung mit einem „Joint Electron Devices Engineering Council“-(JEDEC-)“Low Power Double Data Rate“-(LPDDR-)basierten Design sein, wie dem aktuellen LPDDR2-Standard gemäß JEDEC J PSD 209-2E (veröffentlicht im April 2009), oder einem LPDDR-Standard der nächsten Generation, der als LPDDR3 oder LPDDR4 bezeichnet wird und Erweiterungen für LPDDR2 zur Erhöhung der Bandbreite bietet. In verschiedenen Implementierungen können die einzelnen Speichervorrichtungen unterschiedliche Gehäusetypen aufweisen, wie etwa „Single Die Package“ (SDP), „Dual Die Package“ (DDP) oder „Quad Die Package“ (9P). Diese Vorrichtungen werden in einigen Ausführungsformen direkt auf eine Hauptplatine gelötet, um eine Lösung mit niedrigerem Profil zu ermöglichen, während in anderen Ausführungsformen die Vorrichtungen als ein oder mehrere Speichermodule konfiguriert sind, die wiederum über einen bestimmten Stecker mit der Hauptplatine verbunden sind. Und natürlich sind auch andere Speicherimplementierungen möglich, wie etwa andere Arten von Speichermodulen, z. B. Dual-Inline-Speichermodule (DIMMs) verschiedener Varianten, einschließlich, aber nicht beschränkt auf microDIMMs, MiniDIMMs. In einer bestimmten veranschaulichten Ausführungsform ist der Speicher zwischen 2 GB und 16 GB groß und kann als DDR3LM-Paket oder als LPDDR2- oder LPDDR3-Speicher konfiguriert werden, der über eine Kugelgitteranordnung (BGA, Ball Grid Array) auf ein Motherboard gelötet wird.
  • Um eine dauerhafte Speicherung von Informationen, wie etwa Daten, Anwendungen, einem oder mehreren Betriebssystemen usw., zu gewährleisten, kann ein Massenspeicher 720 auch mit dem Prozessor 710 gekoppelt werden. In verschiedenen Ausführungsformen kann dieser Massenspeicher über eine SSD implementiert werden, um ein dünneres und leichteres Systemdesign zu ermöglichen und die Systemreaktion zu verbessern. In weiteren Ausführungsformen kann der Massenspeicher jedoch in erster Linie unter Verwendung eines Festplattenlaufwerks (HDD) mit einer kleineren Menge an SSD-Speicher als SSD-Cache implementiert werden, um eine nicht-flüchtige Speicherung des Kontextzustands und anderer solcher Informationen während des Abschaltens zu ermöglichen, so dass ein schnelles Einschalten bei der Wiederinbetriebnahme von Systemaktivitäten erfolgen kann. Wie ebenfalls in 7 dargestellt, kann eine Flash-Vorrichtung 722 mit dem Prozessor 710 gekoppelt werden, z. B. über eine serielle Peripherieschnittstelle (SPI). Diese Flash-Vorrichtung kann die nicht-flüchtige Speicherung von Systemsoftware, einschließlich einer grundlegenden Ein-/Ausgabesoftware (BIOS) sowie einer anderen Firmware des Systems, ermöglichen.
  • Bei der Initialisierung kann das System ein Antwortoberflächenmethode zur Optimierung der Betriebsparameter für den Speicherbus durchführen. Das BIOS kann eine Identifizierung eines oder mehrerer elektrischer Parameter beinhalten, wie etwa DQ-Bus-Antriebsstärke, Sendeausgleichswert, Empfangsausgleichswert, Anstiegsrate, On-Die-Terminierung, DIMM-Impedanzwert oder andere elektrische Parameter für den Betrieb von Speicherelementen, wie etwa nicht-flüchtige Speicherelemente oder flüchtige Speicherelemente. Die DOE-Logik 723 kann einen unbeschränkten Satz von Kombinationen von Werten elektrischer Parameter verwenden, um eine statistische Versuchsplanungs-(DOE-)Matrix zum Testen von elektrischen Parameterkombinationen zu erstellen. Bei der Initialisierung kann der Prozessor 710 eine statistische Versuchsplanungs-(DOE-)Matrix erstellen, die einen uneingeschränkten Satz von Kombinationen von Werten elektrischer Parameter enthält. Der Prozessor 710 kann einen Punkttest am Speicher durchführen, um einen optimalen Betriebszustand für den Speicherbus unter Verwendung der DOE-Matrix zu bestimmen. Die DOE-Matrix kann für Kombinationen von elektrischen Parameterwerten verfeinert werden, die zu einer Nullspanne führen. Eine Vorhersageformel kann bestimmt werden, indem eine Kombination von elektrischen Parameterwerten mit einer resultierenden Margin-Antwort (z. B. System-Augenbereich) korreliert wird. Die DOE-Matrix kann iterativ verfeinert werden, bis ein optimierter Satz von elektrischen Parameterkombinationen bestimmt ist. Der optimierte Satz von elektrischen Parameterwerten kann im BIOS für den Einsatz im System gespeichert werden.
  • In verschiedenen Ausführungsformen wird der Massenspeicher des Systems durch eine SSD allein oder als Diskette, optisches oder anderes Laufwerk mit einem SSD-Cache implementiert. In einigen Ausführungsformen ist der Massenspeicher als SSD oder als IIDD zusammen mit einem Restore (RS'l) Cache-Modul implementiert. In verschiedenen Implementierungen sieht die Festplatte die Speicherung von 320GB-4 Terabyte (TB) und mehr vor, während der RST-Cache mit einer SSD mit einer Kapazität von 24GB-256GB implementiert ist. Es ist zu beachten, dass ein solcher SSD-Cache als „Single Level Cache“-(SLC-) oder „Multi Level Cache“-(MLC-)Option konfiguriert werden kann, um eine angemessene Reaktionsfähigkeit zu gewährleisten. Bei einer reinen SSD-Option kann das Modul an verschiedenen Stellen untergebracht werden, wie etwa in einem mSATA- oder NGFF-Steckplatz. Als Beispiel weist eine SSD eine Kapazität von 120GB - 1TB auf.
  • Im System 700 können verschiedene Ein-/Ausgabevorrichtungen (EA) vorhanden sein. Konkret dargestellt in der Ausführungsform von 7 ist eine Anzeige 724, die ein hochauflösendes LCD- oder LED-Panel sein kann, das innerhalb eines Lidabschnitts des Gehäuses konfiguriert ist. Dieses Anzeigefeld kann auch einen Touchscreen 725 vorsehen, z. B. extern über das Anzeigefeld angepasst, so dass über die Interaktion eines Benutzers mit diesem Touchscreen Benutzereingaben für das System bereitgestellt werden können, um gewünschte Operationen zu ermöglichen, z. B. in Bezug auf die Anzeige von Informationen, den Zugriff auf Informationen und so weiter. In einer Ausführungsform kann die Anzeige 724 über eine Displayverbindung mit dem Prozessor 710 gekoppelt werden, die als Hochleistungs-Grafikverbindung ausgeführt werden kann. Der Touchscreen 725 kann mit dem Prozessor 710 über eine weitere Verbindung gekoppelt werden, die in einer Ausführungsform eine I2C-Verbindung sein kann. Wie in 7 weiter dargestellt, kann neben dem Touchscreen 725 auch die Benutzereingabe über ein Touchpad 730 erfolgen, das innerhalb des Gehäuses konfiguriert werden kann und auch an dieselbe I2C-Verbindung wie der Touchscreen 725 gekoppelt sein kann.
  • Das Anzeigefeld kann in mehreren Modi betrieben werden. In einem ersten Modus kann das Anzeigefeld in einem transparenten Zustand angeordnet werden, in dem das Anzeigefeld für sichtbares Licht transparent ist. In verschiedenen Ausführungsformen kann die Mehrheit des Anzeigefeldes eine Anzeige sein, mit Ausnahme einer Einfassung am Umfang. Wenn das System in einem Notebook-Modus betrieben wird und das Anzeigefeld in einem transparenten Zustand betrieben wird, kann ein Benutzer Informationen anzeigen, die auf dem Anzeigefeld angezeigt werden, während er gleichzeitig Objekte hinter der Anzeige sehen kann. Darüber hinaus können die auf dem Display angezeigten Informationen von einem Benutzer, der sich hinter dem Display befindet, angesehen werden. Oder der Betriebszustand des Anzeigefeldes kann ein undurchsichtiger Zustand sein, in dem sichtbares Licht nicht durch das Anzeigefeld hindurchtritt.
  • In einem Tablet-Modus wird das System so zusammengeklappt, dass die hintere Anzeigefläche des Anzeigefeldes in einer Position zum Stillstand kommt, die nach außen zu einem Benutzer zeigt, wenn die Unterseite der Basisplatte auf einer Fläche aufliegt oder vom Benutzer gehalten wird. Im Tablet-Betriebsmodus übernimmt die hintere Anzeigefläche die Rolle einer Anzeige und Benutzeroberfläche, da diese Oberfläche über eine Touchscreen-Funktionalität verfügen kann und andere bekannte Funktionen einer herkömmlichen Touchscreen-Vorrichtung, wie etwa einer Tablet-Vorrichtung, ausführen kann. Zu diesem Zweck kann das Anzeigefeld eine transparente Anpassungsschicht beinhalten, die zwischen einer Touchscreen-Schicht und einer Frontanzeigefläche angeordnet ist. In einigen Ausführungsformen kann die transparenzregulierende Schicht eine elektrochrome Schicht (EC), eine LCD-Schicht oder eine Kombination aus EC- und LCD-Schichten sein.
  • In verschiedenen Ausführungsformen kann die Anzeige von unterschiedlicher Größe sein, z. B. ein 11,6 Zoll- oder 13,3 Zoll-Bildschirm, und kann ein Seitenverhältnis von 16:9 und eine Helligkeit von mindestens 300 nits aufweisen. Außerdem kann die Anzeige eine „Full High Definition“-(HD-)Auflösung (mindestens 1920 x 1080p) sein, mit einem integrierten Display-Anschluss (eDP) kompatibel sein und ein „Low Power Panel“ mit „Panel-Selbstaktualisierung“ sein.
  • Was die Touchscreen-Funktionen betrifft, so kann das System ein Multi-Touch-Panel für die Anzeige vorsehen, das kapazitiv ist und mindestens 5 Finger fähig ist. Und in einigen Ausführungsformen kann die Anzeige 10 Finger fähig sein. In einer Ausführungsform ist der Touchscreen in einem beschädigungsfähigen und kratzfesten Glas untergebracht und mit einer Beschichtung (z. B. Gorilla-Glass-TM oder Gorilla-Glass-2TM) für geringe Reibung versehen, um „Fingerabdrücke“ zu reduzieren und „Fingersprünge“ zu vermeiden. Um ein verbessertes Berührungserlebnis und eine verbesserte Reaktionsfähigkeit zu gewährleisten, verfügt das Touchpanel in einigen Implementierungen über eine Multi-Touch-Funktionalität, wie etwa weniger als 2 Bilder (30 Hz) pro statischer Ansicht während des Pinch-Zooms und eine Single-Touch-Funktionalität von weniger als 1 cm pro Bild (30 Hz) mit 200 ms (Verzögerung vom Finger zum Zeiger). Die Anzeige unterstützt in einigen Implementierungen Edge-to-Edge-Glas mit einer minimalen Bildschirmhaube, die ebenfalls bündig mit der Paneloberfläche abschließt, und begrenzter EA-Interferenz bei Verwendung von Multi-Touch.
  • Für Wahrnehmungsberechnungen und andere Zwecke können verschiedene Sensoren innerhalb des Systems vorhanden sein und auf unterschiedliche Weise mit dem Prozessor 710 gekoppelt werden. Bestimmte Trägheits- und Umgebungssensoren können über einen Sensor-Hub 740 mit dem Prozessor 710 gekoppelt werden, z. B. über eine I2C-Verbindung. In der in 7 dargestellten Ausführungsform können diese Sensoren einen Beschleunigungssensor 741, einen Umgebungslichtsensor (ALS) 742, einen Kompass 743 und ein Gyroskop 744 beinhalten. Andere Umgebungssensoren können einen oder mehrere Temperatursensoren 746 beinhalten, die in einigen Ausführungsformen über einen Systemmanagement-Bus (SMBus) mit dem Prozessor 710 gekoppelt sind.
  • Mit den verschiedenen Trägheits- und Umgebungssensoren einer Plattform können viele verschiedene Anwendungsfälle realisiert werden. Diese Anwendungsgebiete ermöglichen fortgeschrittene Rechenoperationen einschließlich Wahrnehmungsrechnen und ermöglichen auch Verbesserungen in Bezug auf Energiemanagement/Batterielaufzeit, Sicherheit und Systemreaktionsfähigkeit.
  • So werden beispielsweise bei Fragen des Energiemanagements/Batterielebensdauer, zumindest teilweise basierend auf Informationen eines Umgebungslichtsensors, die Umgebungslichtbedingungen an einem Standort der Plattform bestimmt und die Intensität der Anzeige entsprechend gesteuert. Dadurch wird der Stromverbrauch für den Betrieb der Anzeige unter bestimmten Lichtverhältnissen reduziert.
  • Was die Sicherheitsoperationen betrifft, so kann auf der Grundlage von Kontextinformationen, die von den Sensoren erhalten werden, wie etwa Standortinformationen, bestimmt werden, ob ein Benutzer auf bestimmte sichere Dokumente zugreifen darf. So kann beispielsweise einem Benutzer der Zugriff auf solche Dokumente an einem Arbeitsplatz oder einem Heimarbeitsplatz gestattet werden. Der Nutzer wird jedoch daran gehindert, auf solche Dokumente zuzugreifen, wenn sich die Plattform an einem öffentlichen Ort befindet. Diese Bestimmung in einer Ausführungsform basiert auf Standortinformationen, z. B. über einen GPS-Sensor oder die Kameraerkennung von Landmarken. Andere Sicherheitsmaßnahmen können das Koppeln von Vorrichtungen in unmittelbarer Nähe zueinander vorsehen, z. B. eine tragbare Plattform, wie hierin beschrieben, und der Desktop-Computer, das Mobiltelefon oder dergleichen eines Benutzers. In einigen Implementierungen wird bestimmtes Teilen durch Nahfeldkommunikation realisiert, wenn diese Vorrichtungen so gepaart sind. Wenn die Vorrichtungen jedoch einen bestimmten Bereich überschreiten, kann diese Freigabe deaktiviert werden. Darüber hinaus kann beim Koppeln einer Plattform, wie hierin beschrieben, und eines Smartphones ein Alarm ausgelöst werden, wenn sich die Vorrichtungen mehr als einen vorbestimmten Abstand voneinander bewegen, wenn sie sich an einem öffentlichen Ort befinden. Im Gegensatz dazu, wenn sich diese gekoppelten Vorrichtungen an einem sicheren Ort befinden, z. B. am Arbeitsplatz oder zu Hause, können die Vorrichtungen diesen vorgegebenen Grenzwert überschreiten, ohne einen solchen Alarm auszulösen.
  • Die Reaktionsfähigkeit kann auch durch die Sensorinformationen verbessert werden. Selbst wenn sich eine Plattform in einem Zustand mit niedriger Leistung befindet, können die Sensoren beispielsweise immer noch in der Lage sein, mit einer relativ niedrigen Frequenz zu arbeiten. Dementsprechend werden alle Änderungen an einer Position der Plattform, z. B. durch Trägheitssensoren, GPS-Sensoren usw., bestimmt. Wenn keine derartigen Änderungen registriert wurden, kommt es zu einer schnelleren Verbindung zu einem früheren drahtlosen Hub, wie etwa einem Wi-Fi™-Access-Point oder einem ähnlichen drahtlosen Enabler, da in diesem Fall nicht nach verfügbaren drahtlosen Netzwerkressourcen gesucht werden muss. Dadurch wird ein höheres Maß an Reaktionsfähigkeit beim Aktivieren aus einem Niedrigleistungszustand erreicht.
  • Es versteht sich, dass viele andere Anwendungsfälle durch die Verwendung von Sensorinformationen, die über die integrierten Sensoren innerhalb einer Plattform wie hierin beschrieben erhalten werden, ermöglicht werden können, und die obigen Beispiele nur zur Veranschaulichung dienen. Bei Verwendung eines Systems, wie hierin beschrieben, kann ein Wahrnehmungsrechensystem das Hinzufügen alternativer Eingabemodalitäten, einschließlich Gestenerkennung, ermöglichen und es dem System ermöglichen, Benutzeroperationen und -absichten zu erfassen.
  • In einigen Ausführungsformen können ein oder mehrere Infrarot- oder andere Wärmeerfassungselemente oder jedes andere Element zum Erfassen der Anwesenheit oder Bewegung eines Benutzers vorhanden sein. Solche Sensorelemente können mehrere verschiedene Elemente beinhalten, die zusammenwirken, in Folge arbeiten oder beides. Die Sensorelemente beinhalten beispielsweise Elemente, die eine anfängliche Abtastung ermöglichen, wie Licht- oder Klangprojektion, gefolgt von einer Abtastung zur Gestenerkennung durch beispielsweise eine Ultraschall-Laufzeitkamera oder eine Musterlichtkamera.
  • In einigen Ausführungsformen beinhaltet das System auch einen Lichtgenerator zur Erzeugung einer beleuchteten Linie. In einigen Ausführungsformen sieht diese Linie einen visuellen Hinweis auf eine virtuelle Grenze vor, nämlich einen imaginären oder virtuellen Ort im Raum, an dem die Aktion des Benutzers, die virtuelle Grenze oder Ebene zu passieren oder zu durchbrechen, als eine Absicht interpretiert wird, sich mit dem Rechensystem zu befassen. In einigen Ausführungsformen kann die beleuchtete Linie ihre Farbe ändern, wenn das Rechensystem in verschiedene Zustände in Bezug auf den Benutzer übergeht. Die beleuchtete Linie kann verwendet werden, um dem Benutzer einen visuellen Hinweis auf eine virtuelle Grenze im Raum zu geben, und kann vom System verwendet werden, um Übergänge im Zustand des Computers in Bezug auf den Benutzer zu bestimmen, einschließlich der Bestimmung, wann der Benutzer mit dem Computer arbeiten möchte.
  • In einigen Ausführungsformen erfasst der Computer die Benutzerposition und interpretiert die Bewegung einer Hand des Benutzers durch die virtuelle Grenze als Geste, die auf die Absicht des Benutzers hinweist, mit dem Computer zu arbeiten zu wollen. In einigen Ausführungsformen kann sich beim Durchlaufen der virtuellen Linie oder Ebene durch den Benutzer das vom Lichtgenerator erzeugte Licht ändern, wodurch dem Benutzer eine visuelle Rückmeldung gegeben wird, dass der Benutzer einen Bereich betreten hat, in dem er Gesten zur Verfügung stellt, um dem Computer Input zu liefern.
  • Bildschirme können visuelle Hinweise auf Zustandsübergänge des Rechensystems in Bezug auf einen Benutzer geben. In einigen Ausführungsformen ist ein erster Bildschirm in einem ersten Zustand vorgesehen, in dem die Anwesenheit eines Benutzers vom System erfasst wird, beispielsweise durch die Verwendung eines oder mehrerer der Matrizen-Sensorelemente.
  • In einigen Implementierungen verhält sich das System so, dass es die Benutzeridentität erkennt, z.B. durch Gesichtserkennung. Der Übergang zu einem zweiten Bildschirm kann in einem zweiten Zustand erfolgen, in dem das Rechensystem die Benutzeridentität erkannt hat, wobei in diesem zweiten Fall der Bildschirm dem Benutzer eine visuelle Rückmeldung gibt, dass der Benutzer in einen neuen Zustand übergegangen ist. Der Übergang zu einem dritten Bildschirm kann in einem dritten Zustand erfolgen, in dem der Benutzer die Erkennung des Benutzers bestätigt hat.
  • In einigen Ausführungsformen kann das Rechensystem einen Übergangsmechanismus verwenden, um eine Position einer virtuellen Grenze für einen Benutzer zu bestimmen, wobei die Position der virtuellen Grenze je nach Benutzer und Kontext variieren kann. Das Rechensystem kann ein Licht, wie etwa eine beleuchtete Linie, erzeugen, um die virtuelle Grenze für den Kontakt mit dem System anzuzeigen. In einigen Ausführungsformen kann sich das Rechensystem in einem Wartezustand befinden, und das Licht kann in einer ersten Farbe erzeugt werden. Das Rechensystem kann erkennen, ob der Benutzer die virtuelle Grenze überschritten hat, beispielsweise durch Erfassen der Anwesenheit und Bewegung des Benutzers unter Verwendung von Sensorelementen.
  • In einigen Ausführungsformen kann das Rechensystem in einen Zustand übergehen, in dem Gesteneingaben vom Benutzer empfangen werden können, wenn festgestellt wurde, dass der Benutzer die virtuelle Grenze überschritten hat (wie etwa die Hände des Benutzers, die näher am Rechensystem sind als die virtuelle Begrenzungslinie), wobei ein Mechanismus zum Anzeigen des Übergangs das Licht beinhalten kann, das die virtuelle Grenze anzeigt, die sich in eine zweite Farbe ändert.
  • In einigen Ausführungsformen kann das Rechensystem dann bestimmen, ob eine Gestenbewegung erfasst wird. Wenn eine Gestenbewegung erfasst wird, kann das Rechensystem mit einem Gestenerkennungsprozess fortfahren, der die Verwendung von Daten aus einer Gestendatenbibliothek beinhalten kann, die sich im Speicher der Computervorrichtung befinden oder anderweitig von der Computervorrichtung abgerufen werden können.
  • Wenn eine Geste des Benutzers erkannt wird, kann das Rechensystem eine Funktion als Reaktion auf die Eingabe ausführen und zurückkehren, um zusätzliche Gesten zu empfangen, wenn sich der Benutzer innerhalb der virtuellen Grenze befindet. In einigen Ausführungsformen kann das Rechensystem, wenn die Geste nicht erkannt wird, in einen Fehlerzustand übergehen, in dem ein Mechanismus zum Anzeigen des Fehlerzustands das Licht beinhalten kann, das die virtuelle Grenze anzeigt, die sich in eine dritte Farbe ändert, wobei das System zurückkehrt, um zusätzliche Gesten zu empfangen, wenn sich der Benutzer innerhalb der virtuellen Grenze für den Kontakt mit dem Rechensystem befindet.
  • Wie bereits erwähnt, kann das System in weiteren Ausführungsformen als konvertierbares Tablet-System konfiguriert werden, das in mindestens zwei verschiedenen Modi verwendet werden kann, einem Tablet-Modus und einem Notebook-Modus. Das konvertierbare System kann zwei Paneele aufweisen, nämlich ein Anzeigefeld und eine Basisplatte, so dass die beiden Paneele im Tablet-Modus in einem Stapel übereinander angeordnet sind. Im Tablet-Modus zeigt die Anzeige nach außen und bietet möglicherweise Touchscreen-Funktionen wie bei herkömmlichen Tablets. Im Notebook-Modus können die beiden Paneele in einer offenen Clamshell-Konfiguration angeordnet werden.
  • In verschiedenen Ausführungsformen kann der Accelerometer ein 3-achsiger Accelerometer mit Datenraten von mindestens 50 Hz sein. Es kann ebenfalls ein Gyroskop integriert werden, das ein 3-Achsen-Gyroskop sein kann. Zusätzlich kann ein E-Kompass/Magnetometer vorhanden sein. Außerdem können ein oder mehrere Näherungssensoren vorgesehen werden (z. B. für ein Lid, das geöffnet werden kann, um zu erkennen, wenn sich eine Person in der Nähe des Systems befindet (oder nicht) und die Leistung zur Verlängerung der Batterielebensdauer anpasst). Für einige Betriebssysteme kann die Sensorfusionsfunktion, einschließlich Accelerometer, Gyroskop und Kompass, erweiterte Funktionen bieten. Darüber hinaus kann über einen Sensor-Hub mit einer Echtzeituhr (RTC) ein Nachlauf von einem Sensormechanismus realisiert werden, um Sensoreingaben zu empfangen, wenn sich ein Rest des Systems in einem Zustand niedriger Leistung befindet.
  • In einigen Ausführungsformen ist ein interner Öffnungsschalter oder Sensor für Lid/Anzeige vorgesehen, der anzeigt, wann das Lid geschlossen/geöffnet ist, und mit dem das System in den Zustand verbundener Standby versetzt oder automatisch aus dem Zustand verbundener Standby aktiviert werden kann. Andere Systemsensoren können ACPI-Sensoren zur internen Prozessor-, Speicher-und Hauttemperaturüberwachung beinhalten, um Änderungen an Prozessor- und Systembetriebszuständen basierend auf erfassten Parametern zu ermöglichen.
  • In einer Ausführungsform kann das Betriebssystem ein Microsoft® Windows®-8-Betriebssystem sein, das verbundenen Standby (hierin auch als Win8-CS bezeichnet) implementiert. Windows-8-verbundener-Standby oder ein anderes Betriebssystem mit ähnlichem Zustand kann über eine Plattform, wie hierin beschrieben, sehr wenig Leerlaufleistung bereitstellen, so dass Anwendungen bei sehr geringem Stromverbrauch z. B. mit einem Cloud-basierten Standort verbunden bleiben können. Die Plattform kann 3 Leistungszustände unterstützen, nämlich Bildschirm ein (normal), verbundenes Standby (als Standard „Aus“-Zustand) und Abschaltung (Null-Watt-Leistungsaufnahme) . Somit ist die Plattform im Zustand verbundenes Standby logisch eingeschaltet (bei minimalen Leistungsstufen), obwohl der Bildschirm ausgeschaltet ist. In einer solchen Plattform kann das Energiemanagement so gestaltet werden, dass es für Anwendungen transparent ist und eine konstante Konnektivität aufrechterhält, was zum Teil auf die Entladungstechnologie zurückzuführen ist, die es der stromärmsten Komponente ermöglicht, einen Vorgang durchzuführen.
  • Wie ebenfalls in 7 zu sehen, können verschiedene Peripheriegeräte über eine LPC-Verbindung (Low Pin Count) mit dem Prozessor 710 gekoppelt werden. In der dargestellten Ausführungsform können verschiedene Komponenten über eine integrierte Steuerung 735 gekoppelt werden. Solche Komponenten können eine Tastatur 736 (z. B. gekoppelt über eine PS2-Schnittstelle), eine Tan 737 und einen Temperatursensor 739 beinhalten. In einigen Ausführungsformen kann das Touchpad 730 auch über eine PS2-Verbindung mit dem EC 735 gekoppelt werden. Darüber hinaus kann ein Sicherheitsprozessor, wie etwa ein „Trusted Platform Module“ (TPM) 738 gemäß der „Trusted Computing Group“ (TCG) TPM-Spezifikation Version 1.2 vom 2. Oktober 2003, auch über diese LPC-Verbindung mit dem Prozessor 710 gekoppelt werden. Es ist jedoch zu verstehen, dass der Umfang der vorliegenden Offenbarung in dieser Hinsicht nicht eingeschränkt ist und die sichere Verarbeitung und Speicherung sicherer Informationen an einem anderen geschützten Ort erfolgen kann, wie etwa einem statischen Direktzugriffsspeicher (SRAM) in einem Sicherheitskoprozessor oder als verschlüsselte Daten-Blobs, die nur entschlüsselt werden, wenn sie durch einen sicheren Enklave-(SE-)Prozessormodus geschützt sind.
  • In einer bestimmten Implementierung können periphere Anschlüsse einen „High Definition Media Interface“-(HDMI-)Anschluss (der aus verschiedenen Formfaktoren, wie etwa Full Size, Mini oder Micro bestehen kann); einen oder mehrere ESB-Anschlüsse, wie etwa externe Anschlüsse in voller Größe gemäß der „Universal Serial Bus Revision 3.0 Spezifikation“ (November 2008), mit mindestens einer Stromversorgung zum Laden von USB-Geräten (z. B. Smartphones) beinhalten, wenn sich das System im Zustand verbundener Standby befindet und an eine Wechselstromversorgung angeschlossen ist. Darüber hinaus können ein oder mehrere ThunderboltTM-Ports bereitgestellt werden. Andere Anschlüsse können einen extern zugänglichen Kartenleser, wie etwa einen SD-XC-Kartenleser in voller Größe und/oder einen SIM-Kartenleser für WAY AX, beinhalten (z. B. einen 8-poligen Kartenleser) . Für Audio kann eine 3,5-mm-Klinke mit Stereoton und Mikrofonfähigkeit (z. B. Kombinationsfunktionalität) vorhanden sein, mit Unterstützung für die Buchsenerkennung (z. B. Kopfhörerunterstützung nur über Mikrofon im Lid oder Kopfhörer mit Mikrofon im Kabel). In einigen Ausführungsformen kann diese Buchse zwischen Stereokopfhörer und Stereomikrofoneingang umgeschaltet werden Außerdem kann eine Steckdose für die Kopplung an einen Wechselstromstein vorgesehen werden.
  • Das System 700 kann mit externen Geräten auf verschiedene Weise kommunizieren, auch drahtlos. In der in 7 dargestellten Ausführungsform sind verschiedene Funkmodule vorhanden, die jeweils einem für ein bestimmtes drahtloses Kommunikationsprotokoll konfigurierten Funk entsprechen können. Eine Möglichkeit für die drahtlose Kommunikation in kurzer Entfernung, wie etwa ein „Near Held“, kann über eine Nahfeldkommunikations-(NFC-)Einheit 745 erfolgen, die in einer Ausführungsform mit dem Prozessor 710 über einen SMBus kommunizieren kann. Es ist zu beachten, dass über diese N-FC-Einheit 745 Vorrichtungen in unmittelbarer Nähe zueinander kommunizieren können. So kann beispielsweise ein Benutzer das System 700 in die Lage versetzen, mit einer anderen (z. B.) tragbaren Vorrichtung, wie etwa einem Smartphone des Benutzers, zu kommunizieren, indem er die beiden Vorrichtungen in enger Beziehung zueinander anpasst und die Übertragung von Informationen, wie etwa Zahlungsinformationen zu Identifikationsinformationen, Daten wie Bilddaten oder so weiter ermöglicht. Die drahtlose Energieübertragung kann auch mit einem NFC-System durchgeführt werden.
  • Mit der hierin beschriebenen NFC-Einheit können Benutzer Vorrichtungen nebeneinander stellen und Vorrichtungen für Nahfeldkopplungsfunktionen (wie etwa Nahfeldkommunikation und drahtlose Energieübertragung (WPT)) nebeneinander platzieren, indem sie die Kopplung zwischen den Spulen einer oder mehrerer dieser Vorrichtungen nutzen. Genauer gesagt, stellen Ausführungsformen Vorrichtungen mit strategisch geformten und platzierten Ferritmaterialien bereit, um eine bessere Kopplung der Spulen zu gewährleisten. Jeder Spule ist eine Induktivität zugeordnet, die in Verbindung mit den resistiven, kapazitiven und anderen Eigenschaften des Systems gewählt werden kann, um eine gemeinsame Resonanzfrequenz für das System zu ermöglichen.
  • Wie weiter in 7 zu sehen ist, können zusätzliche drahtlose Einheiten andere drahtlose Kurzstrecken-Engines beinhalten, einschließlich einer WLAN-Einheit 750 und einer Bluetooth-Einheit 752. Über die WLAN-Einheit 750 kann Wi-Fi™ die Kommunikation nach dem Standard des „Institute of Electrical and Electronics Engineers“ (IEEE) 802.11 realisiert werden, während über die Bluetooth-Einheit 752 eine Kurzstreckenkommunikation über ein Bluetooth-Protokoll erfolgen kann. Diese Einheiten können mit dem Prozessor 710 z. B. über einen USB-Anschluss oder einen universellen asynchronen Empfänger-Sender (U ART) kommunizieren. Oder diese Einheiten können über eine Verbindung gemäß dem Protokoll „Peripheral Component Interconnect Express™“ (PCIe™) mit dem Prozessor 710 koppeln, z. B. gemäß der „PCI ExpressTM Specification Base Specification“-Version 3.0 (veröffentlicht am 17. Januar 2007) oder einem anderen Protokoll, wie etwa einem SDIO-Standard (Serial Data Input/Output). Natürlich kann die eigentliche physikalische Verbindung zwischen diesen Peripheriegeräten, die auf einer oder mehreren Erweiterungskarten konfiguriert werden können, über die NGFF-Verbindungen an ein Motherboard angepasst werden.
  • Darüber hinaus kann die drahtlose Weitbereichskommunikation, z. B. nach einem zellularen oder anderen drahtlosen Weitbereichsprotokoll, über eine WWAN-Einheit 756 erfolgen, die wiederum an ein Teilnehmeridentifikationsmodul (SIM) 757 gekoppelt werden kann. Um den Empfang und die Verwendung von Standortinformationen zu ermöglichen, kann zusätzlich ein GPS-Modul 755 vorhanden sein. Es ist zu beachten, dass in der in 3 gezeigten Ausführung 7 die WWAN-Einheit 756 und eine integrierte Erfassungsvorrichtung, wie etwa ein Kameramodul 754, über ein bestimmtes USB-Protokoll, wie etwa eine USB 2.0- oder 3.0-Verbindung oder ein UART- oder I2C-Protokoll, kommunizieren können. Auch hier kann die eigentliche physikalische Verbindung dieser Einheiten durch Anpassung einer NGFF-Add-in-Karte an eine auf dem Motherboard konfigurierte NGFF-Verbindung erfolgen.
  • In einer bestimmten Ausführungsform kann die drahtlose Funktionalität modular bereitgestellt werden, z. B. mit einer Wi-Fi™ 802.11ac-Lösung (z. B. Add-in-Karte, die rückwärtskompatibel zu IEEE 802.11abgn ist) mit Unterstützung für Windows 8 CS. Diese Karte kann in einem internen Steckplatz (z. B. über einen NGFF-Adapter) konfiguriert werden. Ein zusätzliches Modul kann Bluetooth-Fähigkeit (z. B. Bluetooth 4.0 mit Abwärtskompatibilität) sowie eine Intel®-Wireless-Display-Funktionalität bereitstellen. Darüber hinaus kann die NFC-Unterstützung über eine separate Vorrichtung oder Multifunktionsvorrichtung bereitgestellt werden und kann beispielsweise in einem vorderen rechten Abschnitt des Chassis für einen einfachen Zugriff positioniert werden. Ein noch zusätzliches Modul kann ein WWAN-Gerät sein, das 3G/4G/LTE und GPS unterstützen kann. Dieses Modul kann in einem internen (z. B. NGFF) Steckplatz implementiert werden. Für WiFi™, Bluetooth, WWAN, NFC und GPS kann eine integrierte Antennenunterstützung bereitgestellt werden, die einen nahtlosen Übergang von WiFi™ zu WWAN-Funkgeräten, drahtloses Gigabit (WiGig) gemäß der „Wireless Gigabit Specification“ (Juli 2010) und umgekehrt ermöglicht.
  • Wie oben beschrieben, kann eine integrierte Kamera in das Lid integriert werden. Als Beispiel kann diese Kamera eine hochauflösende Kamera sein, z. B. mit einer Auflösung von mindestens 2,0 Megapixel (MP) und einer Auflösung von 6,0 MP und mehr.
  • Um Audioein- und -ausgänge bereitzustellen, kann ein Audioprozessor über einen digitalen Signalprozessor (DSP) 760 implementiert werden, der über eine „High Definition Audio“- (HDA-) Verbindung mit dem Prozessor 710 gekoppelt werden kann. Ebenso kann der DSP 760 mit einem integrierten Codierer/Decoder (CODEC) und Verstärker 762 kommunizieren, der wiederum an die Ausgangslautsprecher 763 gekoppelt werden kann, die innerhalb des Chassis implementiert werden können. Ebenso können Verstärker und CODEC 762 gekoppelt werden, um Audioeingänge von einem Mikrofon 765 zu empfangen, das in einer Ausführungsform über Dual-Array-Mikrofone (z. B. ein digitales Mikrofonarray) implementiert werden kann, um hochwertige Audioeingänge bereitzustellen, die eine sprachaktivierte Steuerung verschiedener Vorgänge innerhalb des Systems ermöglichen. Es ist auch zu beachten, dass Audioausgänge vom Verstärker/CODEC 762 an eine Kopfhörerbuchse 764 angeschlossen werden können. Obwohl mit diesen speziellen Komponenten in der Ausführungsform von 7 dargestellt, ist der Umfang der vorliegenden Offenbarung in dieser Hinsicht nicht eingeschränkt.
  • In einer bestimmten Ausführungsform sind der digitale Audiocodec und der Verstärker in der Lage, den Stereokopfhöreranschluss, den Stereomikrofonanschluss, ein internes Mikrofonarray und Stereolautsprecher anzusteuern. In verschiedenen Implementierungen kann der Codec in einen Audio-DSP integriert oder über einen HD-Audiopfad mit einem peripheren Controller-Hub (PCH) gekoppelt werden. In einigen Implementierungen können neben integrierten Stereolautsprechern auch ein oder mehrere Basslautsprecher bereitgestellt werden, und die Lautsprecherlösung kann DTS-Audio unterstützen.
  • In einigen Ausführungsformen kann der Prozessor 710 von einem externen Spannungsregler (VR) und mehreren internen Spannungsreglern versorgt werden, die in die Prozessormatrize integriert sind, die als voll integrierte Spannungsregler (FIVRs, Fully Integrated Voltage Regulators) bezeichnet werden. Die Verwendung mehrerer FIVRs im Prozessor ermöglicht die Gruppierung von Komponenten in getrennten Power-Planes, so dass die Stromversorgung durch den FIVR geregelt und nur an die Komponenten in der Gruppe geliefert wird. Während des Power-Managements kann eine bestimmte Versorgungsebene eines FIVR ein- oder ausgeschaltet werden, wenn der Prozessor in einen bestimmten Niedrigleistungszustand versetzt wird, während eine andere Power-Plane eines anderen FIVR aktiv oder vollständig versorgt bleibt.
  • In einer Ausführungsform kann eine Sustain-Power-Plane während einiger Tiefschlafzustände verwendet werden, um die E/A-Pins für mehrere E/A-Signale einzuschalten, wie etwa die Schnittstelle zwischen dem Prozessor und einem PCH, die Schnittstelle mit dem externen VR und die Schnittstelle mit EC 735. Dieses Sustain-Power-Plane versorgt auch einen On-Die- Spannungsregler, der den On-Board-SRAM oder einen anderen Cache-Speicher unterstützt, in dem der Prozessorkontext während des Ruhezustands gespeichert wird. Die Sustain-Power-Plane wird auch verwendet, um die Wakeup-Logik des Prozessors einzuschalten, die die verschiedenen Wakeup-Quellsignale überwacht und verarbeitet.
  • Während des Power-Managements, während andere Power-Planes beim Aktivieren des Prozessors bestimmter Tiefschlafzustände herunter- oder heruntergefahren werden, bleibt die Sustain-Power-Plane eingeschaltet, um die oben genannten Komponenten zu unterstützen. Dies kann jedoch zu unnötigem Stromverbrauch oder Verlustleistung führen, wenn diese Komponenten nicht benötigt werden. Zu diesem Zweck können Ausführungsformen einen verbundenen Standby-Schlafzustand bereitstellen, um den Prozessor-Kontext über eine dedizierte Versorgungsebene aufrechtzuerhalten. In einer Ausführungsform erleichtert der angeschlossene Standby-Schlafzustand das Aufwecken des Prozessors unter Verwendung von Ressourcen eines PCH, die wiederum in einem Paket mit dem Prozessor vorhanden sein können. In einer Ausführungsform ermöglicht der angeschlossene Standby-Schlafzustand die Aufrechterhaltung der Prozessorarchitekturfunktionen im PCH bis zum Aufwachen des Prozessors, wodurch alle unnötigen Prozessorkomponenten, die zuvor während des Tiefschlafzustands eingeschaltet waren, ausgeschaltet werden können, einschließlich des Ausschaltens aller Uhren. In einer Ausführungsform enthält der PCH einen Zeitstempelzähler (TSC) und eine angeschlossene Standby-Logik zum Steuern des Systems während des angeschlossenen Standby-Zustandes. Der integrierte Spannungsregler für die Sustain-Power-Plane kann sich auch auf dem PCH befinden.
  • In einer Ausführungsform kann ein integrierter Spannungsregler während des angeschlossenen Standby-Zustandes als eine dedizierte Power-Plane fungieren, die eingeschaltet bleibt, um den dedizierten Cache-Speicher zu unterstützen, in dem der Prozessor-Kontext gespeichert ist, wie etwa kritische Zustandsvariablen, wenn der Prozessor in den Tiefschlafzustand und den verbundenen Standby-Zustand übergeht. Dieser kritische Zustand kann Zustandsvariablen beinhalten, die mit der Architektur, der Mikroarchitektur, dem Debug-Zustand und/oder ähnlichen Zustandsvariablen, die dem Prozessor zugeordnet sind, verbunden sind.
  • Die Wakeup-Quellensignale vom EC 735 können während des angeschlossenen Standby-Zustandes an den PCH anstelle des Prozessors gesendet werden, so dass der PCH die Wakeup-Verarbeitung anstelle des Prozessors verwalten kann. Darüber hinaus wird das TSC im PCH gepflegt, um die Aufrechterhaltung der Prozessorarchitekturfunktionen zu erleichtern. Obwohl mit diesen speziellen Komponenten in der Ausführungsform von 7 dargestellt, ist der Umfang der vorliegenden Offenbarung in dieser Hinsicht nicht eingeschränkt.
  • Die Leistungsregelung im Prozessor kann zu einer verbesserten Energieeinsparung führen. So kann beispielsweise die Leistung dynamisch zwischen den Kernen verteilt werden, einzelne Kerne können die Frequenz/Spannung ändern und mehrere tiefe Niederleistungszustände können bereitgestellt werden, um eine sehr geringe Leistungsaufnahme zu ermöglichen. Darüber hinaus kann die dynamische Steuerung der Kerne oder unabhängiger Kernabschnitte für eine reduzierte Leistungsaufnahme sorgen, indem Komponenten abgeschaltet werden, wenn sie nicht verwendet werden.
  • Einige Implementierungen können einen spezifischen Power-Management-IC (PMIC) zur Steuerung der Plattformleistung bereitstellen. Bei Verwendung dieser Lösung kann es vorkommen, dass ein System über eine längere Zeit (z. B. 16 Stunden) im Standby-Modus, z. B. in einem Win8-verbundenen Standby-Modus, eine sehr geringe (z. B. weniger als 5 %) Akkubelastung aufweist. Im Win8-Ruhezustand kann eine Akkulaufzeit von mehr als z. B. 9 Stunden realisiert werden (z. B. bei 150 nits). Bei der Videowiedergabe kann eine lange Akkulaufzeit realisiert werden, z. B. kann die vollständige HD-Videowiedergabe für mindestens 6 Stunden erfolgen. Eine Plattform in einer Implementierung kann eine Energiekapazität von z. B. 35 Wattstunden (Whr) für eine Win8-CS mit SSD und (z. B.) 40-44 Whr für Win8-CS mit einer Festplatte mit RST-Cache-Konfiguration aufweisen.
  • Eine bestimmte Implementierung kann die Unterstützung von 15W nominaler CPU „Thermal Design Power“ (TDP) mit einer konfigurierbaren CPU-TDP von bis zu etwa 25W-TDP-Design-Point bieten. Die Plattform kann aufgrund der oben beschriebenen thermischen Eigenschaften minimale Lüftungsöffnungen aufweisen. Darüber hinaus ist die Plattform kissenfreundlich (da keine heiße Luft an den Benutzer abgegeben wird). Je nach Chassis-Material können unterschiedliche Maximaltemperaturpunkte realisiert werden. Bei einer Implementierung eines Kunststoff-Chassis (mindestens Deckel oder Bodenteil aus Kunststoff) kann die maximale Betriebstemperatur 52 Grad Celsius (C) betragen. Und für die Implementierung eines Metallgehäuses kann die maximale Betriebstemperatur 46 °C betragen.
  • In verschiedenen Implementierungen kann ein Sicherheitsmodul, wie etwa ein TPM, in einen Prozessor integriert oder eine diskrete Vorrichtung, wie etwa ein TPM 2.0 Gerät, sein. Mit einem integrierten Sicherheitsmodul, auch als Platform „Trust Technology“ (PT1) bezeichnet, kann das BIOS/Firmware-System in die Lage versetzt werden, bestimmte Hardwarefunktionen für bestimmte Sicherheitsmerkmale freizulegen, darunter sichere Anweisungen, sicherer Boot, Intel®-Anti-Theft-Technologie, Intel®-Identitätsschutztechnologie, Intel®-Trusted Execution Technology (TXT) und Intel®-Manageability Engine Technology sowie sichere Benutzeroberflächen, wie etwa eine sichere Tastatur und Anzeige.
  • Während die vorliegende Offenbarung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifikationen und Variationen davon schätzen. Somit wird beabsichtigt, dass die vorliegende Offenbarung solche Modifizierungen und Varianten als innerhalb des Umfangs der hinzugefügten Ansprüche und ihrer Äquivalente fallend abdeckt.
  • Ein Entwurf kann verschiedene Phasen durchlaufen, von der Erstellung über die Simulation bis hin zur Fertigung. Daten, die ein Design darstellen, können das Design auf verschiedene Weise darstellen. Erstens kann die Hardware, wie es in Simulationen nützlich ist, durch eine Hardwarebeschreibungssprache oder eine andere Funktionsbeschreibungssprache dargestellt werden. Darüber hinaus kann in einigen Phasen des Entwurfsprozesses ein Schaltungsebenenmodell mit Logik- und/oder Transistorgates erstellt werden. Darüber hinaus erreichen die meisten Designs irgendwann eine Datenebene, die die physische Platzierung verschiedener Vorrichtungen im Hardwaremodell darstellt. Für den Fall, dass konventionelle Halbleiterherstellungstechniken verwendet werden, können die Daten, die das Hardwaremodell darstellen, die Daten sein, die das Vorhandensein oder Fehlen verschiedener Merkmale auf verschiedenen Maskenschichten für Masken, die zur Herstellung der integrierten Schaltung verwendet werden, angeben. In jeder Darstellung des Designs können die Daten in jeder Form auf einem maschinenlesbaren Datenträger gespeichert werden. Ein Speicher oder ein magnetischer oder optischer Speicher, wie etwa eine Platte, kann das maschinenlesbare Medium sein, um Informationen zu speichern, die über optische oder elektrische Wellen moduliert oder anderweitig erzeugt werden, um diese Informationen zu übertragen. Wenn eine elektrische Trägerwelle übertragen wird, die den Code oder das Design anzeigt oder trägt, wird in dem Maße, in dem das Kopieren, Puffern oder erneute Übertragen des elektrischen Signals durchgeführt wird, eine neue Kopie erstellt. Somit kann ein Kommunikationsanbieter oder ein Netzbetreiber zumindest vorübergehend einen Artikel, wie etwa in einer Trägerwelle kodierte Informationen, auf einem greifbaren, maschinenlesbaren Medium speichern und Techniken zur Ausführungsform der vorliegenden Offenbarung verkörpern.
  • Ein Modul, wie es hierin verwendet wird, bezieht sich auf jede Kombination von Hardware, Software und/oder Firmware. Als Beispiel beinhaltet ein Modul Hardware, wie etwa einen Mikrocontroller, der einem nicht-flüchtigen Medium zugeordnet ist, um Code zu speichern, der für die Ausführung durch den Mikrocontroller geeignet ist. Daher bezieht sich die Bezugnahme auf ein Modul in einer Ausführungsform auf die Hardware, die speziell konfiguriert ist, um den Code zu erkennen und/oder auszuführen, der auf einem nicht-flüchtigen Medium gehalten werden soll. Darüber hinaus bezieht sich die Verwendung eines Moduls in einer weiteren Ausführungsform auf das nicht-flüchtige Medium einschließlich des Codes, der speziell angepasst ist, um vom Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen durchzuführen. Und man kann schlussfolgern, dass sich der Begriff Modul (in diesem Beispiel) in noch einer weiteren Ausführungsform auf die Kombination von Mikrocontroller und nicht-flüchtigem Medium bezieht. Häufig variieren die als getrennt dargestellten Modulgrenzen häufig und überlappen sich möglicherweise. So können beispielsweise ein erstes und ein zweites Modul Hardware, Software, Firmware oder eine Kombination derselben gemeinsam nutzen, während möglicherweise eine unabhängige Hardware, Software oder Firmware erhalten bleibt. In einer Ausführungsform beinhaltet die Verwendung des Begriffs Logik Hardware, wie etwa Transistoren, Register oder andere Hardware, wie etwa programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks „um“ oder „konfiguriert, um“ einer Ausführungsform bezieht sich auf das Anordnen, Zusammenstellen, Herstellen, Anbieten zum Verkaufen, Importieren und/oder Entwerfen einer Vorrichtung, Hardware, Logik oder eines Elements zur Ausführung einer festgelegten oder bestimmten Aufgabe. In diesem Beispiel ist eine Vorrichtung oder ein Element davon, die/das nicht in Betrieb ist, immer noch „konfiguriert“, um eine bestimmte Aufgabe zu erfüllen, wenn sie entworfen, gekoppelt und/oder miteinander verbunden ist, um die genannte Aufgabe auszuführen. Als rein veranschaulichendes Beispiel kann ein Logikgatter während des Betriebs eine 0 oder eine 1 bereitstellen. Aber ein Logikgatter, das konfiguriert ist, um einem Taktgeber ein Freigabesignal bereitzustellen, beinhaltet nicht jedes potenzielle Logikgatter, das eine 1 oder 0 liefern kann. Stattdessen ist das Logikgatter in einer Weise gekoppelt, so dass während des Betriebs der 1- oder 0-Ausgang den Takt aktivieren soll. Es ist weiterhin zu beachten, dass die Verwendung des Begriffs „konfiguriert, um“ keine Bedienung erfordert, sondern sich auf den latenten Zustand einer Vorrichtung, Hardware und/oder eines Elements konzentriert, wobei im latenten Zustand die Vorrichtung, Hardware und/oder das Element für die Ausführung einer bestimmten Aufgabe ausgelegt ist, wenn die Vorrichtung, Hardware und/oder das Element in Betrieb ist.
  • Darüber hinaus bezieht sich die Verwendung der Ausdrücke „fähig zu/um“ und/oder „funktionsfähig, um“ in einer Ausführungsform auf eine Vorrichtung, Logik, Hardware und/oder ein Element, die so konzipiert sind, dass sie die Verwendung der Vorrichtung, Logik, Hardware und/oder des Elements in einer bestimmten Weise ermöglichen. Es ist wie vorstehend zu beachten, dass sich die Verwendung von „fähig, um“ und/oder „funktionsfähig, um“ in einer Ausführungsform auf den latenten Zustand einer Vorrichtung, Logik, Hardware und/oder eines Elements bezieht, wobei die Vorrichtung, Logik, Hardware und/oder das Element nicht in Betrieb ist, sondern so konzipiert ist, dass sie die Verwendung einer Vorrichtung in einer bestimmten Weise ermöglicht.
  • Ein Wert, wie hierin verwendet, beinhaltet jede bekannte Darstellung einer Zahl, eines Zustands, eines logischen Zustands oder eines binären logischen Zustands. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1 und 0 bezeichnet, die lediglich binäre Logikzustände darstellen. So bezieht sich beispielsweise eine 1 auf einen hohen Logikpegel und eine 0 auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle, wie etwa ein Transistor oder eine Flash-Zelle, in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu speichern. Es wurden jedoch auch andere Darstellungen von Werten in Rechensystemen verwendet. So kann beispielsweise die Dezimalzahl zehn auch als Binärwert von 1010 und einem hexadezimalen Buchstaben A dargestellt werden. Daher beinhaltet ein Wert jede Darstellung von Informationen, die in einem Rechensystem gespeichert werden können.
  • Darüber hinaus können Zustände durch Werte oder Teile von Werten dargestellt werden. So kann beispielsweise ein erster Wert, wie etwa ein logischer Wert, einen Standard- oder Anfangszustand darstellen, während ein zweiter Wert, wie etwa eine logische Null, einen Nicht-Default-Status darstellen kann. Darüber hinaus beziehen sich die Begriffe Zurücksetzen und Setzen in einer Ausführungsform auf einen Standardwert bzw. einen aktualisierten Wert oder Zustand. So beinhaltet beispielsweise ein Standardwert potenziell einen hohen logischen Wert, d. h. Rücksetzen, während ein aktualisierter Wert potenziell einen niedrigen logischen Wert, d. h. Einstellen, enthält. Es ist zu beachten, dass jede beliebige Kombination von Werten verwendet werden kann, um eine beliebige Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen der vorstehend genannten Verfahren, Hard- und Software, Firmware oder des Codes können durch Anweisungen oder Codes implementiert werden, die auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert sind, das durch ein Verarbeitungselement ausführbar ist. Ein nicht-flüchtiges maschinenzugängliches/lesbares Medium beinhaltet jeden Mechanismus, der Informationen in einer von einer Maschine lesbaren Form bereitstellt (d. h. speichert und/oder überträgt), wie etwa einen Computer oder ein elektronisches System. So beinhaltet beispielsweise ein nicht-flüchtiges maschinenzugängliches Medium einen Direktzugriffsspeicher (RAM), wie etwa ein statisches RAM (SRAM) oder dynamisches RAM (DRAM); ROM; magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; andere Formen von Speichervorrichtungen zum Speichern von Informationen, die von vorübergehenden (propagierten) Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale) empfangen wurden; usw., die von den nicht-flüchtigen Medien zu unterscheiden sind, die Informationen von dort empfangen können.
  • Anweisungen zur Programmierung der Logik zur Ausführung von Ausführungsformen der Offenbarung können in einem Speicher im System gespeichert werden, wie etwa DRAM, Cache, Flash-Speicher oder einem anderen Speicher. Darüber hinaus können die Anweisungen über ein Netzwerk oder über andere computerlesbare Medien verbreitet werden. So kann ein maschinenlesbares Medium jeden Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form beinhalten, ist aber nicht beschränkt auf Disketten, optische Laufwerke. Kompaktdiskette, Nur-Lese-Speicher (CD-ROMs) und magnetische optische Disketten, Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAM), löschbarer programmierbarer Nur-Lese-Speicher(EPROM), elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), magnetische oder optische Karten, Flash-Speicher oder ein konkreter, maschinenlesbarer Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von propagierten Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale, etc.) verwendet wird. Dementsprechend umfasst das computerlesbare Medium jede Art von konkretem maschinenlesbarem Medium, das geeignet ist, elektronische Anweisungen oder Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form zu speichern oder zu übertragen.
  • Die Bezugnahme in dieser Spezifikation auf „eine Ausführungsform“ bedeutet, dass ein bestimmtes Merkmal, Struktur, oder Eigenschaft, beschrieben in Verbindung mit der Ausführungsform, in mindestens einer Ausführungsform der vorliegenden Offenbarung beinhaltet ist. Somit bezieht sich die Verwendung der Phrase „in einer Ausführungsform“ an verschiedenen Stellen in dieser Spezifikation nicht unbedingt auf die gleiche Ausführungsform. Darüber hinaus können die besonderen Merkmale, Strukturen oder Eigenschaften in geeigneter Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorstehenden Patentschrift wurde eine detaillierte Beschreibung mit Bezug auf bestimmte exemplarische Ausführungsformen dargelegt. Es wird jedoch offensichtlich sein, dass verschiedene Änderungen und Ergänzungen vorgenommen werden können, ohne vom breiteren Geist und Umfang der Offenbarung, wie in den beigefügten Ansprüchen dargelegt, abzuweichen. Die Patentschrift und Zeichnungen sind dementsprechend als veranschaulichend und nicht als einschränkend anzusehen. Darüber hinaus bezieht sich die vorstehende Verwendung der Ausführungsform und anderer exemplarischer Sprache nicht unbedingt auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann sich auf verschiedene und unterschiedliche Ausführungsformen sowie möglicherweise auf dieselbe Ausführungsform beziehen.
  • Beispiel 1 ist ein Verfahren, das das Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix beinhaltet, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iteratives Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  • Beispiel 2 kann den Gegenstand von Beispiel 1 beinhalten, und auch das Bestimmen der Margin-Antwort für jede Kombination von Werten; das Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; das Bestimmen eines höchstwertigen elektrischen beitragenden Parameterwertes für einen beitragenden elektrischen Parameter, der zu der Nullspanne führt; das Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen elektrischen beitragenden elektrischen Parameter auszuschließen; und das Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen elektrischen beitragenden elektrischen Parameterwert ausschließt, der zur Nullspanne beiträgt.
  • Beispiel 3 kann den Gegenstand eines der Beispiele 1-2 beinhalten sowie das Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; iteratives Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  • Beispiel 4 kann den Gegenstand von Beispiel 1 beinhalten, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, Empfangsausgleichswert, Anstiegsrate, On-Die-Terminierung oder DIMM-Impedanzwert umfassen.
  • Beispiel 5 kann den Gegenstand eines der Beispiele 1-4 beinhalten und auch das Berechnen eines Optimierungswerts für einen Satz von Kombinationen aus den mehreren elektrischen Parametern beinhalten.
  • Beispiel 6 kann den Gegenstand eines der Beispiele 1-5 beinhalten und kann auch das Verfeinern des Satzes möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum beinhalten.
  • Beispiel 7 ist mindestens ein maschinenzugängliches Speichermedium mit darauf gespeichertem Code, wobei der Code, wenn er auf einer Maschine ausgeführt wird, bewirkt, dass die Maschine einen statistischen Versuchsplanungs-(DOE-)Matrix erzeugt, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iteratives Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  • Beispiel 8 kann den Gegenstand von Beispiel 7 beinhalten, wobei der Code die Maschine ferner veranlasst zum Bestimmen der Margin-Antwort für jede Kombination von Werten; Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; Bestimmen eines höchstwertigen elektrischen beitragenden Parameterwertes für einen beitragenden elektrischen Parameter, der zu der Nullspanne führt; Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen elektrischen beitragenden elektrischen Parameter auszuschließen; und Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen elektrischen beitragenden elektrischen Parameterwert ausschließt, der zur Nullspanne beiträgt.
  • Beispiel 9 kann den Gegenstand eines der Beispiele 7-8 beinhalten, wobei der Code die Maschine ferner veranlasst zum Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; iteratives Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  • Beispiel 10 kann den Gegenstand eines der Beispiele 7-9 beinhalten, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, Empfangsausgleichswert, Anstiegsrate, On-Die-Terminierung oder DIMM-Impedanzwert umfassen.
  • Beispiel 11 kann den Gegenstand eines der Beispiele 7-10 beinhalten, wobei der Code ferner bewirkt, dass die Maschine einen Optimierungswert für einen Satz von Kombinationen aus den mehreren elektrischen Parametern berechnet.
  • Beispiel 12 kann den Gegenstand eines der Beispiele 7-11 beinhalten, wobei der Code die Maschine ferner veranlasst zum Verfeinern des Satzes möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum beinhalten.
  • Beispiel 13 ist eine Vorrichtung in Verbindung mit einem Cache-Speicher über eine Verbindung, wobei die Vorrichtung Mittel zum Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix beinhaltet, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; Mittel zum iterativen Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Mittel zum Bestimmen einer Margin-Antwort für jede Kombination von Werten; Mittel zum Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Mittel zum Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  • Beispiel 14 kann den Gegenstand von Beispiel 1 beinhalten, und auch Mittel zum Bestimmen der Margin-Antwort für jede Kombination von Werten; Mittel zum Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; Mittel zum Bestimmen eines höchstwertigen elektrischen beitragenden Parameterwertes für einen beitragenden elektrischen Parameter, der zu der Nullspanne führt; Mittel zum Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen elektrischen beitragenden elektrischen Parameter auszuschließen; und Mittel zum Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen elektrischen beitragenden elektrischen Parameterwert ausschließt, der zur Nullspanne beiträgt.
  • Beispiel 15 kann den Gegenstand eines der Beispiele 13-14 beinhalten und auch Mittel zum Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Mittel zum Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Mittel zum Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Mittel zum Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; Mittel zum iterativen Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Mittel zum Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  • Beispiel 16 kann den Gegenstand eines der Beispiels 13-15 beinhalten, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, Empfangsausgleichswert, Anstiegsrate, On-Die-Terminierung oder DIMM-Impedanzwert umfassen.
  • Beispiel 17 kann den Gegenstand eines der Beispiele 13-16 beinhalten und auch Mittel zum Berechnen eines Optimierungswerts für einen Satz von Kombinationen aus den mehreren elektrischen Parametern.
  • Beispiel 18 kann den Gegenstand eines der Beispiele 13-17 beinhalten und auch Mittel zum Verfeinern des Satzes möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum.
  • Beispiel 19 ist ein System, das eine Datenverbindung mit mehreren Pfaden, einen Cache-Speicher, der elektrische Parameterinformationen und Algorithmen zum Bestimmen und Anwenden einer Vorhersagefunktion speichert, und einen Hardwareprozessor zum Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix beinhaltet, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iteratives Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  • Beispiel 20 kann den Gegenstand von Beispiel 19 beinhalten, wobei der Hardware-Prozessor verwendet wird zum Bestimmen der Margin-Antwort für jede Kombination von Werten; Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; Bestimmen eines höchstwertigen elektrischen beitragenden Parameterwertes für einen beitragenden elektrischen Parameter, der zu der Nullspanne führt; Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen elektrischen beitragenden elektrischen Parameter auszuschließen; und Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen elektrischen beitragenden elektrischen Parameterwert ausschließt, der zur Nullspanne beiträgt.
  • Beispiel 21 kann den Gegenstand eines der Beispiele 19-20 beinhalten, wobei der Hardware-Prozessor verwendet wird zum Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; iteratives Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  • Beispiel 22 kann den Gegenstand von jedem Beispiel 19-21 beinhalten, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, Empfangsausgleichswert, Anstiegsrate, On-Die-Terminierung oder DIMM-Impedanzwert umfassen.
  • Beispiel 23 kann den Gegenstand eines beliebigen der Beispiele 19-22 beinhalten, wobei der Hardware-Prozessor verwendet wird zum Berechnen eines Optimierungswerts für einen Satz von Kombinationen aus den mehreren elektrischen Parametern.
  • Beispiel 24 kann den Gegenstand eines der Beispiele 19-23 beinhalten, wobei der Hardware-Prozessor verwendet wird zum Verfeinern des Satzes möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum.
  • Beispiel 25 kann den Gegenstand von Beispiel 19 beinhalten und auch eine Versuchslogik, um einen Entwurf der Experimentmatrix basierend auf einem uneingeschränkten Satz von elektrischen Parameterwertkombinationen zu erzeugen.
  • Beispiel 26 kann den Gegenstand von Beispiel 25 beinhalten, wobei die Versuchslogik konfiguriert ist, um den Satz von Kombinationen von Werten elektrischer Parameter basierend auf einer Nullmargenpunkt-Testreaktionsantwort zu verfeinern.
  • Beispiel 27 kann den Gegenstand von Beispiel 25 beinhalten, wobei die Versuchslogik konfiguriert ist, um den Satz von Kombination von Werten elektrischer Parameter basierend auf einem lokalen Maximum von Margin-Antwortmessungen zu verfeinern.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15280320 [0001]

Claims (24)

  1. Verfahren, umfassend: Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iteratives Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  2. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen der Margin-Antwort für jede Kombination von Werten; Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; Bestimmen eines höchstwertigen beitragenden elektrischen Parameterwertes für einen beitragenden elektrischen Parameter, der die Nullspanne ergibt; Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen beitragenden elektrischen Parameterwert auszuschließen; und Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen beitragenden elektrischen Parameterwert, der zur Nullspanne beiträgt, ausschließt.
  3. Verfahren nach einem der Ansprüche 1-2, ferner umfassend: Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; iteratives Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  4. Verfahren nach einem der Ansprüche 1-3, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, eines Empfangsausgleichswerts, einer Anstiegsrate, einer On-Die-Terminierung oder eines DIMM-Impedanzwerts umfasst.
  5. Verfahren nach einem der Ansprüche 1-4, wobei der Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum verfeinert wird.
  6. Verfahren nach einem der Ansprüche 1-5, ferner umfassend: das Berechnen eines Optimierungswerts für einen Satz von Kombinationen aus den mehreren elektrischen Parametern.
  7. Mindestens ein maschinenzugängliches Speichermedium mit darauf gespeichertem Code, wobei der Code bei Ausführung auf einer Maschine die Maschine veranlasst zum: Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iterativen Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  8. Mindestens ein maschinenzugängliches Speichermedium nach Anspruch 7, wobei der Code ferner die Maschine veranlasst zum: Bestimmen der Margin-Antwort für jede Kombination von Werten; Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; Bestimmen eines höchstwertigen beitragenden elektrischen Parameterwertes für einen beitragenden elektrischen Parameter, der die Nullspanne ergibt; Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen beitragenden elektrischen Parameterwert auszuschließen; und Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen beitragenden elektrischen Parameterwert, der zur Nullspanne beiträgt, ausschließt.
  9. Mindestens ein maschinenzugängliches Speichermedium nach einem der Ansprüche 7-8, wobei der Code ferner die Maschine veranlasst zum: Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; iteratives Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  10. Mindestens ein maschinenzugängliches Speichermedium nach einem der Ansprüche 7-9, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Antriebsstärke bei Sendeausgleichswert, eines Empfangsausgleichswerts, einer Anstiegsrate, einer On-Die-Terminierung oder eines DIMM-Impedanzwerts umfasst.
  11. Mindestens ein maschinenzugängliches Speichermedium nach einem der Ansprüche 7-10, wobei der Code die Maschine ferner veranlasst, die Menge der möglichen Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge der möglichen Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum zu verfeinern.
  12. Mindestens ein maschinenzugängliches Speichermedium nach einem der Ansprüche 7-11, wobei der Code ferner bewirkt, dass die Maschine einen Optimierungswert für einen Satz von Kombinationen aus den mehreren elektrischen Parametern berechnet.
  13. Vorrichtung in Kommunikation mit einem Cache-Speicher über eine Verbindung, die Vorrichtung umfassend: Mittel zum Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; Mittel zum iterativen Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Mittel zum Bestimmen einer Margin-Antwort für jede Kombination von Werten; Mittel zum Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Mittel zum Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  14. Vorrichtung nach Anspruch 13, ferner umfassend: Mittel zum Bestimmen der Margin-Antwort für jede Kombination von Werten; Mittel zum Bestimmen, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; Mittel zum Bestimmen eines höchstwertigen beitragenden elektrischen Parameterwertes für einen beitragenden elektrischen Parameter, der die Nullspanne ergibt; Mittel zum Einschränken von Werten für den beitragenden elektrischen Parameter, um den höchstwertigen beitragenden elektrischen Parameterwert auszuschließen; und Mittel zum Anwenden einer Kombination von Werten für die mehreren elektrischen Parameter, die den höchstwertigen beitragenden elektrischen Parameterwert, der zur Nullspanne beiträgt, ausschließt.
  15. Vorrichtung nach einem der Ansprüche 13-14, ferner umfassend: Mittel zum Bestimmen, dass eine Varianz der Margin-Antworten konvergiert; Mittel zum Bestimmen, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; Mittel zum Anwenden der Vorhersageformel zur Optimierung der elektrischen Parameter; Mittel zum Identifizieren einer Teilmenge von Kombinationen elektrischer Parameter; Mittel zum iterativen Anwenden der Teilmenge von Kombinationen elektrischer Parameter; und Mittel zum Bestimmen einer Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter.
  16. Vorrichtung nach einem der Ansprüche 13-15, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, eines Empfangsausgleichswerts, einer Anstiegsrate, einer On-Die-Terminierung oder eines DIMM-Impedanzwerts umfasst.
  17. Vorrichtung nach einem der Ansprüche 13-16, ferner umfassend Mittel zum Verfeinern des Satzes möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum.
  18. Vorrichtung nach einem der Ansprüche 13-17, ferner umfassend Mittel zum Berechnen eines Optimierungswerts für einen Satz von Kombinationen aus den mehreren elektrischen Parametern.
  19. System, umfassend: eine Datenverbindung, die eine Vielzahl von Pfaden umfasst; einen Cache-Speicher, der elektrische Parameterinformationen und Algorithmen zum Bestimmen und Anwenden einer Vorhersagefunktion speichert; und einen Hardwareprozessor zum: Erzeugen einer statistischen Versuchsplanungs-(DOE-)Matrix, wobei die DOE-Matrix einen Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter umfasst; iterativen Anwenden jeder Kombination von Werten für die mehreren elektrischen Parameter auf einen oder mehrere Speicher-Pins; Bestimmen einer Margin-Antwort für jede Kombination von Werten; Erzeugen einer Vorhersagefunktion basierend auf einer Korrelation der Margin-Antwort und jeder Kombination von Werten; und Optimieren der mehreren elektrischen Parameter basierend auf der Vorhersagefunktion.
  20. System nach Anspruch 19, wobei der Hardware-Prozessor: die Margin-Antwort für jede Kombination von Werten bestimmt; bestimmt, dass mindestens eine Kombination von Werten zu einer Margin-Antwort führt, die eine Nullspanne aufweist; einen höchstwertigen beitragenden elektrischen Parameterwert für einen beitragenden elektrischen Parameter bestimmt, der zu einer Nullspanne führt; Werte für den beitragenden elektrischen Parameter einschränkt, um den höchstwertigen beitragenden elektrischen Parameterwert auszuschließen; und eine Kombination von Werten für die mehreren elektrischen Parameter anwendet, die den höchstwertigen beitragenden elektrischen Parameterwert, der zur Nullspanne beiträgt, ausschließt.
  21. System nach einem der Ansprüche 19-20, wobei der Hardware-Prozessor: bestimmt, dass eine Varianz der Margin-Antworten konvergiert; bestimmt, dass der Satz möglicher Kombinationen von Werten reduziert werden kann; die Vorhersageformel zur Optimierung der elektrischen Parameter anwendet; eine Teilmenge von Kombinationen elektrischer Parameter identifiziert; die Teilmenge von Kombinationen elektrischer Parameter iterativ anwendet; und eine Margin-Antwort für jede der Teilmengen von Kombinationen elektrischer Parameter bestimmt.
  22. System nach einem der Ansprüche 19-21, wobei die mehreren elektrischen Parameter zwei oder mehr einer DQ-Bus-Treiberstärke bei Sendeausgleichswert, eines Empfangsausgleichswerts, einer Anstiegsrate, einer On-Die-Terminierung oder eines DIMM-Impedanzwerts umfasst.
  23. System nach einem der Ansprüche 19, wobei der Hardwareprozessor den Satz möglicher Kombinationen von Werten für mehrere elektrische Parameter zu einer Teilmenge möglicher Kombinationen von Werten für die mehreren elektrischen Parameter basierend auf einem lokalen Maximum verfeinert.
  24. System nach einem der Ansprüche 19, wobei der Hardwareprozessor einen Optimierungswert für einen Satz von Kombinationen aus den mehreren elektrischen Parametern berechnet.
DE112017004891.5T 2016-09-29 2017-08-31 Multidimensionale Optimierung von elektrischen Parametern zum Trainieren eines Speichers Pending DE112017004891T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/280,320 US10262751B2 (en) 2016-09-29 2016-09-29 Multi-dimensional optimization of electrical parameters for memory training
US15/280,320 2016-09-29
PCT/US2017/049553 WO2018063730A1 (en) 2016-09-29 2017-08-31 Multi-dimensional optimization of electrical parameters for memory training

Publications (1)

Publication Number Publication Date
DE112017004891T5 true DE112017004891T5 (de) 2019-06-19

Family

ID=61686146

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017004891.5T Pending DE112017004891T5 (de) 2016-09-29 2017-08-31 Multidimensionale Optimierung von elektrischen Parametern zum Trainieren eines Speichers

Country Status (4)

Country Link
US (1) US10262751B2 (de)
CN (1) CN109643577B (de)
DE (1) DE112017004891T5 (de)
WO (1) WO2018063730A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552173B2 (en) * 2017-03-31 2020-02-04 Intel Corporation Methods and apparatus to configure parameters of a high-speed input-output interface
CN111273769B (zh) * 2020-01-15 2022-06-17 Oppo广东移动通信有限公司 一种设备控制方法、装置、电子设备及存储介质
CN117332932B (zh) * 2023-12-01 2024-03-22 国网能源研究院有限公司 电氢协同系统充裕度评估方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006955B2 (en) 2001-10-15 2006-02-28 General Electric Company System and method for statistical design of ultrasound probe and imaging system
US7333871B2 (en) 2003-01-21 2008-02-19 Applied Materials, Inc. Automated design and execution of experiments with integrated model creation for semiconductor manufacturing tools
US7739208B2 (en) * 2005-06-06 2010-06-15 Numenta, Inc. Trainable hierarchical memory system and method
ITMI20051075A1 (it) * 2005-06-10 2006-12-11 Atmel Corp "sistema e metodo per eguagliare la resistenza in una memoria non volatile"
WO2008149411A1 (ja) * 2007-06-04 2008-12-11 Fujitsu Limited 記憶装置、記憶装置のプロセッサ及びプログラム
US8305793B2 (en) * 2008-05-16 2012-11-06 Qimonda Ag Integrated circuit with an array of resistance changing memory cells
US20100161527A1 (en) * 2008-12-23 2010-06-24 Yahoo! Inc. Efficiently building compact models for large taxonomy text classification
EP2259214B1 (de) * 2009-06-04 2013-02-27 Honda Research Institute Europe GmbH Implementierung eines neuronalassoziativen Speichers auf Grundlage des nichtlinearen Lernens von diskreten Synapsen
US20110178789A1 (en) 2010-01-15 2011-07-21 Imec Response characterization of an electronic system under variability effects
US8312258B2 (en) * 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
EP2622544A4 (de) * 2010-09-29 2016-03-09 Ericsson Telefon Ab L M Verfahren und vorrichtung zur datenverarbeitung
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8850155B2 (en) * 2011-12-19 2014-09-30 Advanced Micro Devices, Inc. DDR 2D Vref training
US9117042B2 (en) 2012-02-06 2015-08-25 Livermore Software Technology Corp. Systems and methods of using multiple surrogate-based parameter selection of anisotropic kernels in engineering design optimization
US20140032826A1 (en) * 2012-07-25 2014-01-30 Samsung Electronics Co., Ltd. Method of training memory core and memory system
US9368225B1 (en) * 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US20140181429A1 (en) * 2012-12-26 2014-06-26 Nvidia Corporation Multi-dimensional hardware data training between memory controller and memory
US9536626B2 (en) * 2013-02-08 2017-01-03 Intel Corporation Memory subsystem I/O performance based on in-system empirical testing
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
US20140317334A1 (en) 2013-04-22 2014-10-23 Lsi Corporation Storage of gate training parameters for devices utilizing random access memory
US9021154B2 (en) * 2013-09-27 2015-04-28 Intel Corporation Read training a memory controller
US9411695B2 (en) * 2013-12-04 2016-08-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Provisioning memory in a memory system for mirroring
US9639495B2 (en) * 2014-06-27 2017-05-02 Advanced Micro Devices, Inc. Integrated controller for training memory physical layer interface
US20160188414A1 (en) 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
US10013652B2 (en) * 2015-04-29 2018-07-03 Nuance Communications, Inc. Fast deep neural network feature transformation via optimized memory bandwidth utilization
US9665289B1 (en) * 2015-12-04 2017-05-30 Inphi Corporation Eye scan for memory channel
US10089178B2 (en) * 2016-02-29 2018-10-02 International Business Machines Corporation Developing an accurate dispersed storage network memory performance model through training
US10114952B2 (en) * 2016-03-30 2018-10-30 Mcafee, Llc System, apparatus and method for performing secure memory training and management in a trusted environment
US9715907B1 (en) * 2016-05-09 2017-07-25 Invecas, Inc. Optimal data eye for improved Vref margin
KR20180007374A (ko) * 2016-07-12 2018-01-23 삼성전자주식회사 메모리 채널의 소프트웨어 트레이닝을 수행하는 전자 장치 및 그것의 메모리 채널 트레이닝 방법

Also Published As

Publication number Publication date
US10262751B2 (en) 2019-04-16
CN109643577B (zh) 2023-07-21
US20180088849A1 (en) 2018-03-29
WO2018063730A1 (en) 2018-04-05
CN109643577A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
DE102019009207B3 (de) Vorrichtungen, verfahren und nichttransitorisches computerlesbares speichermedien für dvsec für eine effiziente peripheriegeräteverwaltung
DE112016004332T5 (de) Verfahren, vorrichtungen und systeme zum taktversatzausgleich von datenverbindungaufteilungen
US9953001B2 (en) Method, apparatus, and system for plugin mechanism of computer extension bus
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE112016004300T5 (de) Verfahren, gerät und system zum zuweisen von cache unter verwendung einer verkehrsklasse
DE112014006183T5 (de) Vorrichtung, Verfahren und System für einen Schnellkonfigurationsmechanismus
DE102020116195A1 (de) Leistungsmanagement für neu-treiber-vorrichtungen
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
US11163717B2 (en) Reduced pin count interface
DE102019132213A1 (de) Adressenübersetzung für skalierbare verlinkte Vorrichtungen
DE112013001305T5 (de) Ein Verfahren, eine Vorrichtung und ein System zur verteilten Vorverarbeitung von Berührungsdaten und Anzeigebereichsteuerung
DE102019109858A1 (de) Breiten- und Frequenzumsetzung mit PHY-Schicht-Vorrichtungen
DE102019101810A1 (de) Reduzierung von Skew zwischen einem positiven und einem negativen Leiter, die ein differentielles Signalpaar tragen
DE112017004897T5 (de) Schreib-Semantik für persistenten Speicher auf PCIe mit vorhandener TLP-Definition
DE102018125241A1 (de) Mechanismus einer asymmetrischen Vollduplex-USB-SS-Verbindungsstrecke
DE112017004891T5 (de) Multidimensionale Optimierung von elektrischen Parametern zum Trainieren eines Speichers
US11016550B2 (en) Controller to transmit data for components of a physical layer device
DE102019120357A1 (de) Dynamische asymmetrische kommunikationspfadzuteilung
DE102022129397A1 (de) Beschleuniger-fabric für diskrete grafik
DE102020102841A1 (de) Vorabrufen von schreibberechtigungen in einen adressübersetzungs-cache
DE102020134763A1 (de) Closed chassis debugging through tunneling