DE112017005005T5 - Systeme, vorrichtungen, und verfahren zur plattformsicherheit - Google Patents

Systeme, vorrichtungen, und verfahren zur plattformsicherheit Download PDF

Info

Publication number
DE112017005005T5
DE112017005005T5 DE112017005005.7T DE112017005005T DE112017005005T5 DE 112017005005 T5 DE112017005005 T5 DE 112017005005T5 DE 112017005005 T DE112017005005 T DE 112017005005T DE 112017005005 T5 DE112017005005 T5 DE 112017005005T5
Authority
DE
Germany
Prior art keywords
message
encrypted
command
sideband
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112017005005.7T
Other languages
English (en)
Inventor
Neeraj S. Upasani
Sagar V. Dalvi
Wojciech Powiertowski
Sergiu D. Ghetie
Won Lee
Jeanne Giullory
Chukwunenye S. Nnebe
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 DE112017005005T5 publication Critical patent/DE112017005005T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/142Denial of service attacks against network infrastructure

Abstract

Ausführungsformen, die hier ausführlich besprochen werden, beschreiben ein System, das einen Verwaltbarkeitsserver, um eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu erzeugen; und einen Server, der eine Radiofrequenzidentifikations(RFID)-Vorrichtung aufweist, umfasst, wobei die RFID-Vorrichtung einen Speicher aufweist, um wenigstens eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu speichern, und eine Sicherheitsschaltung, die mit der RFID-Vorrichtung gekoppelt ist, aufweist, wobei die Sicherheitsschaltung wenigstens eine verschlüsselte Seitenbandnachricht von dem Speicher der RFID-Vorrichtung abruft, die eine verschlüsselte Seitenbandnachricht entschlüsselt, unter Verwendung einer Information von der entschlüsselten Seitenbandnachricht die Gültigkeit der entschlüsselten Seitenbandnachricht bestimmt, und als Reaktion auf den wenigstens einen Befehl eine Handlung durchführt.

Description

  • GEBIET DER ERFINDUNG
  • Das Gebiet der Erfindung betrifft im Allgemeinen die Computerprozessorarchitektur, und genauer die Plattformsicherheit.
  • ALLGEMEINER STAND DER TECHNIK
  • Hardware- und Firmwareangriffe auf niedriger Ebene werden in Computersystemen immer häufiger und könnten zu einer dauerhaften Verweigerung des Dienstes (permanent denial of service, PDOS) führen. Die PDOS stellt ein großes Problem für Datenzentrumssysteme dar, das zu schweren finanziellen Verlusten und in Fällen, in denen Systeme in kritischen Infrastrukturen eingerichtet sind, möglicherweise sogar zu einem Verlust von Menschenleben führen könnten.
  • Figurenliste
  • Die vorliegende Erfindung ist in den Figuren der beiliegenden Zeichnungen, in denen gleiche Bezugszeichen gleichartige Elemente angeben, beispielhaft und nicht beschränkend dargestellt, wobei
    • 1 eine Ausführungsform einer Plattform veranschaulicht;
    • 2 eine Ausführungsform der Flash-Vorrichtungen in 1 veranschaulicht;
    • 3 eine Ausführungsform einer Partition der Flash-Vorrichtungen in 2 veranschaulicht;
    • 4 eine Ausführungsform eines Verfahrens der Verwendung einer Sicherheitsschaltung in einer Plattform veranschaulicht;
    • 5 eine Ausführungsform eines Verfahrens der Verwendung einer Sicherheitsschaltung in einer Plattform veranschaulicht;
    • 6 eine Ausführungsform eines Systems zur Verwendung bei Seitenbandkommunikationen veranschaulicht;
    • 7 eine Ausführungsform eines Servers eines Seitenbandsystems veranschaulicht;
    • 8 eine Ausführungsform einer Nachricht veranschaulicht;
    • 9 eine Ausführungsform eines Verfahrens veranschaulicht, das durch an einem Server ausgeführte Software durchgeführt wird, um eine Antwortnachricht zu erzeugen;
    • 10 eine Ausführungsform eines Verfahrens veranschaulicht, das durch einen Server mit einem RFID-Tag zum Empfangen oder Senden von Nachrichten durchgeführt wird;
    • 11 ein Blockdiagramm einer Registerarchitektur nach einer Ausführungsform der Erfindung ist;
    • 12A ein Blockdiagramm ist, das sowohl eine beispielhafte In-Order-Pipeline als auch eine beispielhafte registerumbenennende Out-of-Order-Pipeline nach Ausführungsformen der Erfindung veranschaulicht;
    • 12B ein Blockdiagramm ist, das sowohl eine beispielhafte Ausführungsform eines In-Order-Architektur-Kerns als auch einen beispielhaften registerumbenennenden Out-of-Order-Architektur-Kern zur Aufnahme in einen Prozessor nach Ausführungsformen der Erfindung veranschaulicht;
    • 13A bis B ein Blockdiagramm einer genaueren beispielhaften In-Order-Kernarchitektur veranschaulichen, wobei der Kern einer von mehreren Logikblöcken (einschließlich anderer Kerne von der gleichen Art oder von unterschiedlichen Arten) sein würde;
    • 14 ein Blockdiagramm eines Prozessors 1400, der mehr als einen Kern aufweisen kann, eine integrierte Speichersteuerung aufweisen kann, und integrierte Grafik aufweisen kann, nach Ausführungsformen der Erfindung ist;
    • 15 bis 18 Blockdiagramme von beispielhaften Computerarchitekturen sind; und
    • 19 ein Blockdiagramm ist, das die Verwendung eines Softwarebefehlskonverters zum Umwandeln von binärem Befehl in einem Quellbefehlssatz in binäre Befehle in einem Zielbefehlssatz nach Ausführungsformen der Erfindung vergleicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche bestimmte Einzelheiten dargelegt. Es versteht sich jedoch, dass Ausführungsformen der Erfindung ohne diese bestimmten Einzelheiten ausgeführt werden können. In anderen Fällen wurden wohlbekannte Schaltungen, Aufbauten und Techniken nicht ausführlich gezeigt, um das Verständnis dieser Beschreibung nicht unklar zu machen.
  • Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, einen bestimmten Aufbau, oder eine bestimmte Eigenschaft aufweisen kann, aber nicht notwendigerweise jede Ausführungsform das bestimmte Merkmal, den bestimmten Aufbau oder die bestimmte Eigenschaft aufzuweisen braucht. Überdies beziehen sich derartige Phrasen nicht notwendigerweise auf die gleiche Ausführungsform. Ferner wird geltend gemacht, dass es dann, wenn ein bestimmtes Merkmal, ein bestimmter Aufbau oder eine bestimmte Eigenschaft in Verbindung mit einer Ausführungsform beschrieben ist, innerhalb der Fachkenntnisse eines Fachmanns liegt, dieses Merkmal, diesen Aufbau oder diese Eigenschaft in Verbindung mit anderen Ausführungsformen auszuführen, unabhängig davon, ob dies nun ausdrücklich beschrieben ist oder nicht.
  • Wie erwähnt kann ein Computer gefährdet werden, was PDOS-Szenarien zur Folge haben kann. Wenn ein solches Szenario eintritt, bieten Ausführungsformen, die hier ausführlich besprochen werden, Ansätze, um zu erkennen, dass eine Beschädigung aufgetreten ist, und eine Wiederherstellung zu einem bekannten guten Zustand vorzunehmen. Typischerweise erfolgt die Wiederherstellung automatisch, lokal und rasch (z.B. innerhalb von Sekunden oder Minuten) ohne menschliches Eingreifen. Der Wiederherstellungsmechanismus kann durch Benutzen von entfernten authentifizierten Schreibvorgängen in spezielle geschützte Partitionen auch auf das Betriebssystem (OS) und Anwendungsschichten erweitert werden. Geschützte Partitionen nehmen Wiederherstellungsabbilder auf. Im Fall eines Angriffs wird ein aktives beschädigtes Abbild gelöscht und durch ein bekanntes gutes Wiederherstellungsabbild von der geschützten Partition wiederhergestellt. Während der Laufzeit bieten hier ausführlich beschriebene Ausführungsformen aktive Filterungsfunktionen an Bussen wie der seriellen peripheren Schnittstelle (serial peripheral interface, SPI), die einen Zugriff auf einen nichtflüchtigem Speicher bereitstellen, um vor bekannten Angriffen, die zu einer Beschädigung in dem nichtflüchtigen (z.B. FLASH-) Speicher kritischer Komponenten wie dem SPI-Flash-Speicher, dem Stromversorgungsfirmwarespeicher, dem DIMM-SPD-Speicher, dem Hot-Swap-Back-Plane(HSBP)-Speicher usw. führen könnten, zu schützen
  • 1 veranschaulicht eine Ausführungsform einer Plattform. In dieser Darstellung sind zwei Hardwareprozessoren (als CPU 0 101 und CPU 1 103 bezeichnet) vorhanden. Wenigstens eine der CPUs (CPU 0 101 oder CPU 1 103) ist in der Lage, ein authentifiziertes Codemodul (ACM) in einer Pre-Boot-Umgebung zu laden und zu verifizieren. Beispielhafte Hardwareprozessoren umfassen Prozessorkerne, CPUs, GPUS, APUs, usw. Ein ACM ist ein plattformspezifischer Code, der in einer isolierten Umgebung in dem Prozessor authentifiziert und ausgeführt wird. Während des normalen Bootens wird das ACM ausgeführt, um das aktive BIOS-Abbild zu verifizieren. Typischerweise wird dies durch beide CPUs vorgenommen. Das ACM wird verwendet, um abgesicherte Aufgaben durchzuführen. Typischerweise ist das ACM in einem Flash wie etwa dem E/A-Hub-Flash 123, auf den die CPU ohne Beteiligung des E/A-Hubs 125 zugreifen kann, gespeichert (Beispiele für einen E/A umfassen South-Bridges und periphere Steuer-Hubs). Das ACM in dem FLASH wird durch die Sicherheitsschaltung geschützt. Zum Beispiel kann durch die gekoppelte Sicherheitsschaltung 105 über eine direktere Verbindung als dargestellt auf den E/A-Flash 123 zugegriffen werden. Der Hardwareprozessor, der das ACM ausführen soll, verfügt über den Zugriff auf einen öffentlichen Schlüssel, der einem privaten Schlüssel, mit dem die Plattformfirmwareabbilder signiert sind, entspricht. Der private Schlüssel ist in CPU-Sicherungen oder einen nichtflüchtigen On-Package-Speicher eingebettet. Der öffentliche Schlüssel kann mit der Firmware oder an einer anderen nichtflüchtigen Speicherstelle gespeichert sein. Bei einigen Ausführungsformen ist das ACM für den hochrangigen Algorithmus zur Durchführung der abgesicherten Startdigitalsignalverifikation, zur Auslösung und zur Durchführung der Wiederherstellung in Verbindung mit der Sicherheitsschaltung 105 verantwortlich.
  • Die Hardwareprozessoren (CPU 0 101 und CPU 1 103) kommunizieren unter Verwendung eines oder mehrerer Busse mit der Sicherheitsschaltung 105. Ein beispielhafter Bus ist ein Systemmanagementbus (SMBUS). Die Sicherheitsschaltung 105 ist für die Rücksetz/Start-Abfolge, das Bereitstellen einiger Überwachungs- und Sicherheitsfunktionen, und den Zugriff auf den E/A-Hub-Flash 123 und den Basisbandmanagementsteuerungs(baseband management controller, BMC)-Flash verantwortlich. Es ist zu beachten, dass sich eine oder mehrere der Komponenten, die als Teil der Sicherheitsschaltung 105 dargestellt sind, außerhalb des Schaltungsfootprints befinden können.
  • Eine BMC 119 überwacht den physischen Zustand der Plattform und kommuniziert mit externen Vorrichtungen. Die BMC 119 kann auch andere Bezeichnungen aufweisen, einschließlich, aber ohne Beschränkung darauf, Management-Modul, Advanced-Management-Modul, Advanced-Systems-Management-Prozessor, und integriertes Management-Modul. Die Sicherheitsschaltung 105 bietet der CPU auch eine Unterstützung für die Hardwarebeschleunigung für kryptographische Funktionen 109 einschließlich Hash-Funktionen (z.B. SHA, MD5, usw.) und der Verschlüsselung (z.B. AES, usw.).
  • Die BMC 119 greift über SMBUS auf mehrere andere Komponenten wie einen digitalen Spannungsregler 117, eine Hot-Swap-Backplane (HSPB) 115, eine Stromversorgungseinheit 113, usw. zu. Diese Busse sind durch die Sicherheitsschaltung 105 geführt, was dieser gestattet, die SMBUS-Transaktionen zu diesen Vorrichtungen während des normalen Bootens und der normalen Laufzeit zu überwachen und zu filtern. Beispielsweise wird diese Funktionalität durch eine Überwachungsschaltung 131 bereitgestellt. Es gibt mehrere Wege, um Transaktionen zu überwachen und zu filtern, einschließlich der Erstellung einer weißen Liste von Befehlen, deren Sendung von/zu der BMC 119 zulässig ist, oder der Erstellung einer schwarzen Liste jener, bei denen dies nicht der Fall ist.
  • Eine Kern-Complex-Programmable-Logic-Device (CPLD) 107 steuert die Rückstell- und Timingabfolgen für die Plattform. Bei einigen Ausführungsformen weist die Kern-CPLD 107 für Pre-Boot- und Boot-Abfolgen unterschiedliche Rücksetz- und Timingabfolgen auf. Bei einigen Ausführungsformen erfordert die Kern-CPLD 107 Aktualisierungen in den Feldern. Die Sicherheitsschaltung 105 bietet einen abgesicherten Mechanismus, um das neueste Aktualisierungsabbild über eine Serielle-Periphere-Schnittstellen(SPI)-Bootfähigkeit von dem FLASH (123 oder 121) abzurufen.
  • Ein Selektor (z.B. eine MUX-Schaltung) 111 wird verwendet, um zu wählen, mit welchem Flash 121 oder 123 über die SPI gesprochen werden soll. Ein E/A-Hub-Selektor 127 und ein BMC-Selektor 129 werden verwendet, um zwischen der Sicherheitsschaltung 105 und dem E/A-Hub 125 bzw. der BMC 119 zu wählen. Somit verfügt die Sicherheitsschaltung 105 über einen Selektor 111 über den Zugriff auf den E/A-Hub-Flash 123 und den BMC-Flash 123.
  • Die Sicherheitsschaltung 105 erlangt während eines Pre-Boot-Modus Zugriff auf den Flash, und der E/A-Hub 125 und die BMC 119 verfügen während des normalen Bootens über Zugriff auf ihre jeweiligen Flash-Vorrichtungen. Der SPI-Bus am Eingang der Flash-Vorrichtungen ist zu der Sicherheitsschaltung 105 geführt, was das Überwachen und Filtern von SPI-Flash-Transaktionen während des normalen Bootens, wenn der E/A-Hub 125 und die BMC 119 in Betrieb stehen und Transaktionen ausgeben, gestattet. Zum Beispiel kann die Sicherheitsschaltung 105 eine adressenbasierte Filterung verwenden oder eine Liste von Transaktionen (Befehlen), die in Ordnung sind, (eine weiße Liste) unterhalten. Wenn eine bösartige Transaktion erfasst wird, wird die entsprechende Chipauswahl durch die Sicherheitsschaltung 105 deaktiviert, um die Durchführung der Transaktion zu verhindern. Typischerweise führt die Überwachungsschaltung 131 diese Funktionen aus.
  • Die Sicherheitsschaltung 105 umfasst einen Speicher 135, der einen oder mehr Schlüssel und/oder Integritätsprüfmuster speichert, oder verfügt über einen Zugriff auf diesen.
  • Zusammengefasst überwacht die Sicherheitsschaltung 105 Komponenten, die einen nichtflüchtigen Speicher zur Aufnahme von Firmwarestücken, welche für das ordnungsgemäße Funktionieren dieser Vorrichtungen erforderlich sind, aufweisen, und übernimmt die Kontrolle über diese. Eine Beschädigung in einer dieser Komponenten könnte zu einer dauerhaften Verweigerung des Dienstes führen. Die Sicherheitsschaltung 105 steuert auch die Durchsetzung einiger kritischer Signale und Hardwarestraps, deren Antrieb erforderlich ist, um ein Booten in einer Pre-Boot-Umgebung zu ermöglichen, während die anderen Vorrichtungen inaktiv behalten werden.
  • 2 veranschaulicht eine Ausführungsform der Flash-Vorrichtung von 1. Insbesondere ist der Flash 201 in drei Sektionen unterteilt, eine aktive Partition 203, eine Wiederherstellungspartition 205 und eine temporäre Partition 207. Die aktive Partition 203 wird während des normalen Bootens verwendet. Die Wiederherstellungspartition 205 speichert ein „goldenes“ Abbild (eines, das als „in Ordnung“ bekannt ist). Diese Partition wird während des normalen Systembootens gelesen und wird durch die Sicherheitsschaltung 105 geschützt. Wenn die aktive Partition beschädigt ist, wird das goldene Abbild verwendet, um die aktive Partition 203 wiederherzustellen, während diese gesäubert wird. Die temporäre Partition 207 hält eine Kandidatenkopie für eine Aktualisierung des goldenen Bilds. Diese Partition wird während des normalen Bootens geschrieben, aber während des Pre-Bootens durch Überschreiben der goldenen Wiederherstellungspartition nach einer erfolgreichen Verifikation des Kandidaten unterstützt.
  • 3 veranschaulicht eine Ausführungsform einer Partition der Flash-Vorrichtungen von 2, zum Beispiel einer aktiven Partition 203 des E/A-Hub-Flash 123. Es ist gezeigt, dass in einer Partition mehrere Komponenten wie etwa ein Basis-Ein/Ausgabe-System (basic input/output system, BIOS) 303, Verwaltungsmaschinen-Firmware 305, Gigabit-Ethernet-Firmware 307, und ein Flash-Deskriptor 309 (der angibt, wo die Grenzen dieser Komponente liegen) enthalten sind. Natürlich können in einer Partition mehr oder weniger Komponenten enthalten sein. Eine oder mehrere der Komponenten weisen eine öffentliche Signatur oder einen Schlüssel auf (oder der Flash-Deskriptor speichert diese(n)).
  • 4 veranschaulicht eine Ausführungsform eines Verfahrens der Verwendung einer Sicherheitsschaltung in einer Plattform. Bei 401 erhält die Plattform eine Wechselstrom(WS)leistung. Zum Beispiel wird sie angesteckt.
  • Bei 403 wird ein Sicherheits-Pre-Booten durchgeführt. Das Pre-Booten ist ein vertrauenswürdiger Betriebsmodus, in dem Firmware-Verifikations-, Aktualisierungs- und Wiederherstellungsoperationen stattfinden. Beim Pre-Booten wird nur eine CPU bestromt und werden andere externe Vorrichtungen (z.B. die BMC 119 und/oder der E/A-Hub 125) im völligen Ruhezustand behalten. Typischerweise treibt die Kern-CPLD 107 mit der Sicherheitsschaltung 105 einige der kritischen Signale, die andernfalls durch den E/A-Hub angetrieben wurden, an, um die Plattformbestromungsabfolge auszulösen.
  • Bei einigen Ausführungsformen wird eine ausdrückliche Boot-Fortschritts-Überwachung durchgeführt. Zum Beispiel werden Watchdog-Zeitgeber, die in der Sicherheitsschaltung ausgeführt sind, verwendet, um den Boot-Fortschritt zu überwachen. Verschiedene Abschnitte der Boot-Firmware begegnen der Sicherheitsschaltung 105 in verschiedenen Boot-Stadien, um das Booten bis zu dem jeweiligen Stadium erfolgreich aufzuzeichnen, bevor der Watchdog-Zeitgeber abläuft. Dies wird hier als Kontrollpunkt bezeichnet. Bei einigen Ausführungsformen wird bei 404 ein Kontrollpunkt eingerichtet. Wenn der Kontrollpunkt scheitert, werden bei 403 abgesicherte Pre-Boot-Operationen durchgeführt. Wenn der Kontrollpunkt erfolgreich ist, ist das Pre-Booten abgeschlossen.
  • Nach dem Abschluss des Pre-Bootens (z.B. wenn das abgesicherte Booten oder die Wiederherstellung erfolgreich ist), hebt die Sicherheitsschaltung bei 405 die Gleichstrom(GS)leistung an die CPU auf. Somit sind die CPU, die BMC 119, und der E/A-Hub 125 alle ohne Kontext. Bei einigen Ausführungsformen ist die Sicherheitsschaltung 105 während dieses Übergangs hochgefahren.
  • Nach dem Ausschalten des Gleichstroms stellt die Sicherheitsschaltung bei 407 die Gleichstromleistung wieder her und werden die CPU(s), der E/A-Hub 125 und die BMC 119 wie normal aktiviert und gebootet. Bei einigen Ausführungsformen wird bei 408 ein Kontrollpunkt eingerichtet. Wenn der Kontrollpunkt scheitert, werden bei 403 abgesicherte Pre-Boot-Operationen durchgeführt. Wenn der Kontrollpunkt erfolgreich ist, ist das normale Booten abgeschlossen.
  • Bei einigen Ausführungsformen wird bei 409 ein Firmware-Angriff, eine Firmware-Aktualisierungsanforderung oder eine Wiederherstellungsabbildaktualisierungsanforderung erfasst. Zum Beispiel wird die aktive Partition des E/A-Hub-Flash 123 beschädigt. Dies verursacht, dass ein Panikzustand erweckt wird, und ein Rebooten in das Pre-Boot-Stadium. Wenn eine Wiederherstellung vorgenommen werden muss, wird die Sicherheitsschaltung 105 in Anspruch genommen, um entweder das goldene Abbild in die aktive Partition zu bewegen (wenn diese Vorgangsweise auf Basis einer Sicherheitsüberprüfung angemessen ist), aus der Ferne ein Rücksetzen aktiviert, oder eine ausfallssichere Radiofrequenzidentifikations(RFID)-Vorrichtung benutzt, um einen Befehl zu erhalten.
  • 5 veranschaulicht eine Ausführungsform eines Verfahrens der Verwendung einer Sicherheitsschaltung in einer Plattform. Insbesondere handelt es sich bei diesem Verfahren um den durch die Sicherheitsschaltung ausgeführten Pre-Boot-Modus. Bei 501 wird eine der CPUs der Plattform durch die Sicherheitsschaltung 105 bestromt. Andere Plattformkomponenten, die auf Firmware zugreifen, werden bei 503 beim Zurücksetzen behalten (z.B. die BMC 119 und der E/A-Hub 125). Wie vorher erwähnt erfolgt dies typischerweise über die Sicherheitsschaltung 105 mit der Kern-CPLD 107. Bei einigen Ausführungsformen sind die Funktionen der Kern-CPLD 107 in die Sicherheitsschaltung 105 eingefügt.
  • Bei 505 werden die Signaturen der Firmware in der aktiven Partition 203 und der Wiederherstellungspartition 205 des Flash 123 und 125 berechnet. Das ACM und die Sicherheitsschaltung 105 arbeiten bei den meisten Ausführungsformen gemeinsam, um einen Hash für die Schlüsselverifikation zu berechnen. Für die Berechnungen werden der öffentliche und der private Schlüssel, die oben besprochen wurden, verwendet.
  • Bei 507 wird eine Bestimmung vorgenommen, ob die Flash-Wiederherstellungspartition 205 gültig ist. Wenn dies der Fall ist, wird die Wiederherstellungspartition 205 verwendet, um die aktive Partition 203 wiederherzustellen. Wenn nicht, wird der Boot-Prozess bei 509 angehalten.
  • Bei 511 wird eine Bestimmung vorgenommen, ob die aktive Partition 203 gültig ist, zum Beispiel, ob die Schlüssel das richtige Ergebnis für die Berechnungen des öffentlichen/privaten Hash erzeugt haben. Zum Beispiel kann die Sicherheitsschaltung 105 eine Überprüfung vornehmen, um festzustellen, ob jegliche ausstehende Aktualisierungen für jegliche der anderen Firmwarekomponenten (BMC 119, E/O-Hub 125, PSU 113, HSBP 115, digitale VR 117, usw.) vorhanden sind. Bei einigen Ausführungsformen werden die Aktualisierungskandidaten (in der temporären Partition 207) verifiziert. Bei einigen Ausführungsformen muss auch das goldene Abbild verifiziert werden, bevor eine Aktualisierung stattfinden kann.
  • Wenn die aktive Partition gültig ist, wird bei 513 eine Wiederherstellung von einer Wiederherstellungspartition vorgenommen. Bei einigen Ausführungsformen wird eine Wiederherstellungsrichtlinie (wie etwa eine Anzahl von Malen, für die eine Wiederherstellung versucht werden sollte, bevor erklärt wird, dass das System infolge eines möglicherweise störenden Grunds nicht wiederherstellbar ist) verwendet. Ferner wird das Boot-Versagen (d.h., ein gescheiterter Wiederherstellungsversuch) entweder implizit, über eine Verifikation der digitalen Signatur, oder explizit, über eine Überwachung des Fortschritts des Bootens, erfasst.
  • Unglücklicherweise ist manchmal ein Eingriff von außen nötig. Bei einigen Ausführungsformen sorgt ein Seitenbandmechanismus für eine Kommunikation zwischen einer Plattform (z.B. Serversystemen, die in einem Datenzentrum eingerichtet sind), und einer externen Vorrichtung (z.B. einem Remote-Verwaltbarkeitsserver/einer -konsole) durch den/die die Serverknoten in dem Datenzentrum abgefragt oder gesteuert werden können).
  • 6 veranschaulicht eine Ausführungsform eines Systems zur Verwendung bei Seitenbandkommunikationen. Bei dieser beispielhaften Ausführungsform nehmen ein oder mehr Serverracks 601, 611 mehrere Server 603, 605, 613 und 615 auf. Wenigstens einer dieser Server 603, 605, 613 und 615 weist Hardware auf, die zu einer Seitenbandkommunikation in der Lage ist (z.B. einen RFID-Tag).
  • Ein Verwaltbarkeitsserver 621 kommuniziert mit einem RFID-Leser 623, um mit dem RFID-Tag eines Servers zu kommunizieren. Bei einigen Ausführungsformen ist in einem Datenzentrum ein Netzwerk von RFID-Scannern und Repeatern eingerichtet. Die RFID-Lesebereiche sind typischerweise so gestaltet, dass sie ein paar Zentimeter betragen und durch die Wände des Datenzentrums begrenzt sind. Der Verwaltbarkeitsserver 621 führt Anwendungen aus, die die Intelligenz besitzen, die Server 603, 605, 613 und 615 zu steuern und abzufragen. Es ist zu beachten, dass typische Komponenten eines Servers wie etwa ein Prozessor und ein Speicher zur Erleichterung des Verständnisses nicht gezeigt sind.
  • Typischerweise ist dieser Ansatz im Hinblick auf die von dem Server her gesehenen Softwarestapelanforderungen zur Herstellung dieser Kommunikation sehr leicht. Dies sollte sich aufgrund des Umstands, dass weniger Komponenten mit der Vertrauens-Begrenzung der Lösung befasst sind, und der verringerten Komplexität in eine höhere Sicherheit und Verlässlichkeit der Kommunikation umsetzen lassen.
  • Als Ergebnis kann der RFID-Seitenband-Ansatz verwendet werden, um kritische Befehle an einen Server 603, 605, 613 und 615 auszugeben, falls es nicht gelingt, ohne Eingriff von außen Fortschritte zu erzielen. Ebenso kann der RFID-Seitenband-Versuch auch benutzt werden, um Fehlerprotokolle und andere kritische Informationen von dem Server 603, 605, 613 und 615 abzurufen, um den Status des Servers 603, 605, 613 und 615 zu bestimmen. Somit stellt er die Attribute bereit, die nötig sind, um ein Wiederherstellungsereignis eines Servers 603, 605, 613 und 615 auszulösen/zu erzwingen, wenn die Ausführung einer oben beschriebenen automatischen Wiederherstellung scheitert. Anders als bestehende BMCbasierte Seitenbandverfahren verwendet dieses typischerweise nur eine Anlegung von Hilfsstrom (es wird keine Kern-Ausführung benötigt).
  • 7 veranschaulicht eine Ausführungsform eines Servers eines Seitenbandsystems. Wie gezeigt kommuniziert eine Sicherheitsschaltung 701 (wie etwa die Sicherheitsschaltung 105) über den Server 711 mit einem RFID-Tag 703 (typischerweise über eine I2C-Schnittstelle). Dieser Tag weist eine Antenne 707, um mit externen Vorrichtungen zu kommunizieren, und einen Massenspeicher/Speicher 705, um Befehle zu speichern, auf. Typischerweise ist der RFID-Tag 703 eine passive Vorrichtung, die als Postfach für die Sicherheitsschaltung 701 wirkt.
  • Dies ermöglicht einen Seitenband-Remote-Verwaltbarkeits-Kanal über RF. Der RFID-Tag 703 erhält über einen RF-Eingang (z.B. das Band von 860 bis 960 MHz) verschlüsselte Befehle mit Anti-Replay-Schutz. Der Speicher 705 ist typischerweise über zwei Schnittstellen - eine drahtgebundene Schnittstelle und eine drahtlose RF-Schnittstelle - zugänglich, was gestattet, dass der RFID-Tag als Postfach zur Herstellung einer Kommunikation zwischen einem Server und dem Verwaltbarkeitsserver verwendet wird.
  • Die Sicherheitsschaltung 701 fragt die verschlüsselten Befehle aus dem Speicher 705 ab und entschlüsselt sie und ergreift entsprechend Maßnahmen. Beispielhafte Befehle sind: Eintreten in das Pre-Booten, Überprüfen des Abbilds (der Abbilder), Auslösen der Wiederherstellung, Rebooten, Abschalten, Bereitstellen eines Fehlerprotokolls, usw. Die erhaltenen Befehle können in einem einfachen Format sein, wobei „0“ für Pre-Booten steht, „1“ für Überprüfen der Abbilder steht, usw. Der Speicher 705 (wie etwa ein nichtflüchtiger Direktzugriffsspeicher (NVRAM)) kann auch verwendet werden, um ein Protokoll von Fehlern zu speichern, so dass dieser Pfad auch dem Datenzentrumsadministrator ermöglicht, sicher Nachrichten von der Plattform zu erhalten, um die Gesundheit/den Status und den Fortschritt der Plattform zu überwachen.
  • Die Sicherheitsschaltung 701 kann die vorher ausführlich besprochene Schaltung sein, oder kann eine andere Schaltung in einem Server sein. Zusätzlich wird bei einigen Ausführungsformen Software anstelle einer zweckbestimmten Schaltung verwendet. Die Sicherheitsschaltung 701 enthält, oder verfügt über den Zugriff auf, einen Speicher 709, der einen oder mehr Schlüssel und/oder Integritätsprüfmuster speichert. Die Sicherheitsschaltung 701 verfügt über die Verschlüsselungs/Entschlüsselungsfähigkeiten zum Verschlüsseln und Entschlüsseln der ausgetauschten Steuer/Statusnachrichten. Bei einigen Ausführungsformen wird die Advanced-Encryption-Standard(AES)-Verschlüsslung verwendet. Bei einigen Ausführungsformen wird die AES-Cipher-Algorithm-in-Cipher-Block-Chaining (CBC) (z.B. AES-CBC 128-Bit)-Verschlüsselung verwendet, um eine verschlüsselte Kommunikationsverbindung herzustellen, die vor Anti-Replay-Angriffen geschützt ist.
  • Bei einigen Ausführungsformen werden Pakete des Kommunikationsnachrichtenaustauschs zwischen dem Server und einer Verwaltbarkeitskonsole mit Anti-Replay-Schutz verschlüsselt. Bei einigen Ausführungsformen wird die AES-CBC-128-Verschlüsselung verwendet. In der Sicherheitsschaltung 701 in dem Serversystem (z.B. in dem nichtflüchtigen Speicher 609 gespeichert) wie auch in der Verwaltbarkeitskonsole ist vorab ein symmetrischer AES-Schlüssel bereitgestellt.
  • 8 veranschaulicht eine Ausführungsform einer Nachricht. Die Nachricht 811 umfasst mehrere Pakete, die eine Zufallszahl 1001 (z.B. eine 64-Bit-Zufallszahl), ein Integritätsprüfmuster 807 (z.B. ein 64-Bit-Integritätsprüfmuster) und wenigstens einen Befehl 803 bis 805 (z.B. einen 64-Bit-Befehl) enthalten. Typischerweise befinden sich die Pakete in einer 128-Bit-Ausrichtung, bei der es sich um die AES-Datengrößen-Granularität handelt.
  • Bei einigen Ausführungsformen enthält der Kopf der Nachricht 811 die Zufallszahl 801 und einen Befehl; und enthält der Fuß der Nachricht 811 das Integritätsprüfmuster 807 und 64 Bits von Befehlen. Wenn mehr als 128 Bits von Befehlspaketen verwendet werden sollen, werden diese zusätzlichen Befehlspakete zwischen dem Kopf und dem Fuß aufgenommen.
  • Wie angemerkt wird bei einigen Ausführungsformen die AES-CBC-Verschlüsselung verwendet. Als Ergebnis beeinflussen die ersten 128 Bits der AES-Verschlüsselung das Muster der nächsten 128 Bits. Das Vorhandensein der Zufallszahl 811 erzeugt in jeder Nachricht eine zufällige Folge von Paketen. Bei der Entschlüsselung wird ein festes Integritätsprüfmuster (in dem Empfänger gespeichert oder für diesen zugänglich) verwendet, um die Gültigkeit der Nachricht zu prüfen. Somit weist eine gültige Nachricht bei der Entschlüsselung ein Integritätsprüfmuster auf, das dem integrierenden Prüfmuster, welches intern in der Sicherheitsschaltung 701 in dem Serversystem wie auch in dem Verwaltbarkeitsserver 621 gespeichert ist, entspricht.
  • Mit einzelnen Bits oder Codierungen von mehreren Bits in den Befehlspaketen einer Nachricht sind unterschiedliche Bedeutungen verbunden, um einfache Befehle zu erzeugen. Beispielhafte Befehle beinhalten, doch ohne Beschränkung darauf, Rebooten, Abschalten, Wiederherstellen der Plattformfirmware, Eintreten in Pre-Boot-Modus, Bereitstellen eines Fehlerprotokolls, usw.
  • Eine verschlüsselte Abfolge ist an eine definierte Stelle in dem RFID-Tag 703 (z.B. den Speicher 705) geschrieben und daher für die Sicherheitsschaltung 701 des Zielservers zugänglich. Bei einigen Ausführungsformen weist jeder RFID-Tag 703 eine einzigartige, oder pseudoeinzigartige, Kennung auf, die über die Einzigartigkeit seiner Kennung eine unabhängige Kommunikation mit jedem Server gestattet.
  • Befehle werden typischerweise durch den Verwaltbarkeitsserver 621, einen Endnutzer des Verwaltbarkeitsservers 621, einen Server, der mit dem Verwaltbarkeitsserver 621 kommunizieren möchte, und/oder einen Endnutzer des Servers, der mit dem Verwaltbarkeitsserver 621 kommunizieren möchte, aufgebaut und aufgerufen. 9 veranschaulicht eine Ausführungsform eines Verfahrens, das durch Software, die an einem Server ausgeführt wird, durchgeführt wird, um eine Antwortnachricht zu erzeugen. Bei 901 wird eine Zufallszahl erzeugt.
  • Die Zufallszahl wird bei 903 vor jeglichen Befehlspaketen der Nachricht angeordnet. Mit anderen Roten ist die Zufallszahl das erste Objekt in der Nachricht, worauf wenigstens ein Befehl folgt.
  • Bei 905 werden der Nachricht zusätzliche Befehle (andere als der anfängliche Befehl, der auf die erzeugte Zufallszahl folgt), hinzugefügt.
  • Das Paket wird bei 907 mit einem Integritätsprüfmuster, das mit dem des Empfängerservers identisch ist, abgeschlossen. Die vollständig zusammengesetzte Nachricht wird dann bei 909 verschlüsselt. Zum Beispiel wird eine Nachricht mit einer Zufallszahl gefolgt von vier Befehlen gefolgt von einem Integritätsprüfmuster unter Verwendung der AES-CBC-128-Verschlüsselung verschlüsselt.
  • 10 veranschaulicht eine Ausführungsform eines Verfahrens, das durch einen Server mit einem RFID-Tag zum Empfangen oder Senden von Nachrichten durchgeführt wird. Bei 1001 unterhält eine Sicherheitsschaltung 701 in dem Server Abfragen nach Nachrichten in dessen RFID-Tag-Postfach.
  • Bei 1003 wird eine Nachricht aus dem Postfach abgerufen und bei 1005 unter Verwendung eines gespeicherten Schlüssels entschlüsselt. Bei 1007 wird eine Bestimmung vorgenommen, ob die Nachricht gültig ist. Zum Beispiel wird das Integritätsprüfmuster von der entschlüsselten Nachricht mit dem intern gespeicherten Integritätsprüfmuster verglichen. Wenn die Nachricht nicht gültig ist, wird die Nachricht ignoriert oder warnt der Server entweder einen Endnutzer oder den Verwaltbarkeitsserver vor der ungültigen Nachricht.
  • Wenn die Nachricht gültig ist, decodiert die Sicherheitsschaltung 701 die in die Pakete eingebetteten Befehle und nimmt bei 1009 eine passende Handlung vor. Die passende Handlung kann eine durch die Sicherheitsschaltung 701 durchgeführte Handlung sein, oder die Sicherheitsschaltung 701 weist eine andere Komponenten (z.B. die CPU) an, eine Handlung durchzuführen.
  • Bei einigen Ausführungsformen benötigen Befehle bei 1011 eine Bestätigung. Der Server erzeugt eine Bestätigung typischerweise unter Verwendung eines oder mehrerer Gesichtspunkte des Verfahrens von 9. Zum Beispiel erfordern Befehle wie „Bereitstellen eines Fehlerprotokolls“ ein Bestätigungsmuster. Der Befehl der Bestätigungsnachricht wird durch das Fehlerprotokoll ersetzt. Typischerweise sind die Länge und die Bedeutung von Bits in dem Fehlerprotokoll definiert und beiden Enden des Kommunikationskanals bekannt.
  • Bei einigen Ausführungsformen bettet die Sicherheitsschaltung 701 dann, wenn sie zur Erzeugung einer Zufallszahl in der Lage ist, eine neue Zufallszahl in das Bestätigungspaket ein. Bei einigen Ausführungsformen führt die Sicherheitsschaltung 701 dann, wenn sie keine Zufallszahl erzeugen kann, eine feste arithmetische Operation an der Zufallszahl von der erhaltenen Nachricht durch und bettet die sich ergebende Zahl in das Bestätigungspaket ein. Das Ende der Nachricht wird mit dem Integritätsprüfmuster des Servers markiert. Die Nachricht wird dann eine verschlüsselte Nachricht und für einen späteren Abruf (z.B. durch RFID oder andere Mittel) in das Postfach zurück geschrieben.
  • Der Empfangsserver kann wie erforderlich eine oder mehrere der obigen Aspekte durchführen, um die Nachricht zu verarbeiten, wie etwa Abrufen, Entschlüsseln, Bestimmen der Gültigkeit usw.
  • Zusätzliche Ausführungsformen beinhalten, aber ohne Beschränkung darauf, eine Vorrichtung mit einer Radiofrequenzidentifikations(RFID)-Vorrichtung, wobei die RFID-Vorrichtung einen Speicher aufweist, um wenigstens eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu speichern, sowie einer mit der RFID-Vorrichtung gekoppelten Sicherheitsschaltung, wobei die Sicherheitsschaltung wenigstens eine verschlüsselte Seitenbandnachricht von dem Speicher der RFID-Vorrichtung abruft, die eine verschlüsselte Seitenbandnachricht entschlüsselt, unter Verwendung einer Information von der entschlüsselten Seitenbandnachricht die Gültigkeit der entschlüsselten Seitenbandnachricht bestimmt, und als Reaktion auf den wenigstens einen Befehl eine Handlung durchführt. Zudem gilt für eine Ausführungsform eines oder mehr des Folgenden: die wenigstens eine verschlüsselte Seitenbandnachricht wird unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung verschlüsselt, die wenigstens eine verschlüsselte Seitenbandnachricht wird unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung mit Cipher-Block-Chaining verschlüsselt, die Information, die von der entschlüsselten Seitenbandnachricht verwendet wird, um die Gültigkeit zu bestimmen, ist ein Integritätsprüfmuster, die Sicherheitsschaltung vergleicht das Integritätsprüfmuster der entschlüsselten Seitenbandnachricht mit einem in dem Speicher der Sicherheitsschaltung gespeicherten Integritätsprüfmuster, das Integritätsprüfmuster befindet sich in einem Fußabschnitt der wenigstens einen verschlüsselten Seitenbandnachricht, und/oder der wenigstens eine Befehl ist eines aus Eintreten in das Pre-Booten, Überprüfen des Abbilds, Auslösen der Wiederherstellung, Rebooten, Abschalten, und Bereitstellen eines Fehlerprotokolls.
  • Zusätzliche Ausführungsformen beinhalten, aber ohne Beschränkung darauf, ein System mit einem Verwaltbarkeitsserver, um eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu erzeugen, und einem Server, der eine Radiofrequenzidentifikations-(RFID)-Vorrichtung aufweist, wobei die RFID-Vorrichtung einen Speicher aufweist, um wenigstens eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu speichern, sowie eine mit der RFID-Vorrichtung gekoppelte Sicherheitsschaltung aufweist, wobei die Sicherheitsschaltung wenigstens eine verschlüsselte Seitenbandnachricht von dem Speicher der RFID-Vorrichtung abruft, die eine verschlüsselte Seitenbandnachricht entschlüsselt, unter Verwendung einer Information von der entschlüsselten Seitenbandnachricht die Gültigkeit der entschlüsselten Seitenbandnachricht bestimmt, und als Reaktion auf den wenigstens einen Befehl eine Handlung durchführt. Zudem gilt für eine Ausführungsform eines oder mehr des Folgenden: die wenigstens eine verschlüsselte Seitenbandnachricht wird unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung verschlüsselt, die wenigstens eine verschlüsselte Seitenbandnachricht wird unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung mit Cipher-Block-Chaining verschlüsselt, die Information, die von der entschlüsselten Seitenbandnachricht verwendet wird, um die Gültigkeit zu bestimmen, ist ein Integritätsprüfmuster, die Sicherheitsschaltung vergleicht das Integritätsprüfmuster der entschlüsselten Seitenbandnachricht mit einem in dem Speicher der Sicherheitsschaltung gespeicherten Integritätsprüfmuster, das Integritätsprüfmuster befindet sich in einem Fußabschnitt der wenigstens einen verschlüsselten Seitenbandnachricht, und/oder der wenigstens eine Befehl ist eines aus Eintreten in das Pre-Booten, Überprüfen des Abbilds, Auslösen der Wiederherstellung, Rebooten, Abschalten, und Bereitstellen eines Fehlerprotokolls.
  • Zusätzliche Ausführungsformen beinhalten, aber ohne Beschränkung darauf, ein Verfahren, das das Erzeugen einer Zufallszahl, das Anordnen der erzeugten Zufallszahl als erstes Paket einer Nachricht, das Einsetzen wenigstens eines Befehls nach der erzeugten Zufallszahl in die Nachricht, das Abschließen der Nachricht mit einem Integritätsmuster, und das Verschlüsseln der Nachricht für eine Seitenbandübertragung über eine Radiofrequenzidentifikations(RFID)-Vorrichtung umfasst. Zudem gilt für eine Ausführungsform eines oder mehr des Folgenden: Die Zufallszahl, wenigstens ein Befehl, und das Integritätsprüfmuster sind jeweils 64-Bit, das Integritätsprüfmuster entspricht einem in einer Empfangsvorrichtung gespeicherten Integritätsprüfmuster, der wenigstens eine Befehl ist eines aus Eintreten in das Pre-Booten, Überprüfen des Abbilds, Auslösen der Wiederherstellung, Rebooten, Abschalten, und Bereitstellen eines Fehlerprotokolls, die Seitenbandnachricht wird unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung verschlüsselt und/oder die Seitenbandnachricht wird unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung mit Cipher-Block-Chaining verschlüsselt.
  • Die nachstehend ausführlich besprochenen Figuren stellen beispielhafte Architekturen und Systeme zur Ausführung von Ausführungsformen des Obigen bereit. Bei einigen Ausführungsformen sind eine oder mehr Hardwarekomponenten oder Befehle, die oben beschrieben wurden, wie nachstehend ausführlich beschrieben emuliert, oder als Softwaremodule ausgeführt.
  • Beispielhafte Registerarchitektur
  • 11 ist ein Blockdiagramm einer Registerarchitektur 1100 nach einer Ausführungsform der Erfindung. Bei der veranschaulichten Ausführungsform sind 32 Vektorregister 1110, die 512 Bits breit sind, vorhanden; diese Register werden als zmm0 bis zmm31 bezeichnet. Die 256 Bits niedriger Ordnung der unteren 16 zmm-Register überlagern Register ymm0 bis 16. Die 125 Bits niedriger Ordnung der unteren 16 zmm-Register (die 128 Bits niedriger Ordnung der ymm-Register überlagern Register xmm0 bis 15.
  • Schreibmaskenregister 1115 - bei der veranschaulichten Ausführungsform sind 8 Schreibmaskenregister (k0 bis k7) vorhanden, die jeweils 16 Bits groß sind. Bei einer anderen Ausführungsform sind die Schreibmaskenregister 1115 16 Bits groß. Wie vorher beschrieben kann bei einer Ausführungsform der Erfindung das Vektormaskenregister k0 nicht als Schreibmaske verwendet werden; wenn die Codierung, die normalerweise k0 angeben würde, für eine Schreibmaske verwendet wird, wählt sie eine festverdrahtete Schreibmaske von 0xFFFF, wodurch das Schreibmaskieren für diesen Befehl effektiv deaktiviert wird.
  • Allzweck-Register 1125 - bei der veranschaulichten Ausführungsform sind sechzehn 64-Bit-Allzweck-Register vorhanden, die zusammen mit den bestehenden x86-Adressiermoden verwendet werden, um Speicheroperanden anzusprechen. Diese Register sind durch die Bezeichnungen RAX, RBX, RCS, RDX, RBP, RSI, RDI, RSP und R8 bis R15 bezeichnet.
  • Die skalare Gleitkommastapelregisterdatei (x87-Stapel) 1145, worauf die MMX-gepackte Ganzzahl-Flachregisterdatei 1150 gelegt ist - bei der veranschaulichten Ausführungsform ist der x87-Stapel ein Acht-Elemente-Stapel, der verwendet wird, um unter Verwendung der x-87-Befehlssatzerweiterung skalare Gleitkommaoperationen an 32/64/80-Bit-Gleitkommadaten durchzuführen; während die MMX-Register verwendet werden, um Operationen an 64-Bit-gepackten Ganzzahldaten durchzuführen, wie auch, um Operanden für einige Operationen, die zwischen dem MMX- und dem XMM-Register durchgeführt werden, zu halten.
  • Alternative Ausführungsformen der Erfindung können breitere oder engere Register verwenden. Zudem können alternative Ausführungsformen der Erfindung mehr, weniger, oder unterschiedliche Registerdateien und Register verwenden.
  • Beispielhafte Kernarchitekturen, Prozessoren, und Computerarchitekturen
  • Prozessorkerne können auf verschiedene Weisen, für verschiedene Zwecke und in verschiedenen Prozessoren ausgeführt werden. Zum Beispiel können Ausführungsformen solcher Kerne 1) einen Allzweck-In-Order-Kern, der für Allzweck-Berechnungen bestimmt ist; 2) einen Hochleistungs-Allzweck-Out-of-Order-Kern, der für Allzweck-Berechnungen bestimmt ist; 3) einen Kern mit besonderer Zweckbestimmung, der hauptsächlich für Grafik- und/oder Wissenschafts(Durchsatz)berechnungen bestimmt ist, umfassen. Ausführungsformen verschiedener Prozessoren können 1) eine CPU, die einen oder mehr Allzweck-In-Order-Kerne, die für Allzweck-Berechnungen bestimmt sind, und/oder einen oder mehr Allzweck-Out-of-Order-Kerne, die für Allzweck-Berechnungen bestimmt sind, aufweist; und 2) einen Coprozessor, der einen oder mehr Kerne mit besonderer Zweckbestimmung, die hauptsächlich für Grafik- und/oder Wissenschafts(Durchsatz)berechnungen bestimmt sind, aufweist, umfassen. Derartige unterschiedliche Prozessoren führen zu unterschiedlichen Computersystemarchitekturen, die 1) den Coprozessor auf einem von der CPU gesonderten Chip; 2) den Coprozessor auf einem gesonderten Chip in dem gleichen Paket wie eine CPU; 3) den Coprozessor auf dem gleichen Chip wie eine CPU (in welchem Fall ein solcher Coprozessor manchmal als Logik mit besonderer Zweckbestimmung, wie etwa integrierte Grafik- und/oder Wissenschafts(Durchsatz)logik, oder als Kern mit besonderer Zweckbestimmung bezeichnet wird); und 4) ein System auf einem Chip, das die beschriebene CPU (manchmal als der (die) Anwendungskern(e) oder Anwendungsprozessor(en) bezeichnet), den oben beschriebenen Coprozessor, und zusätzliche Funktionalität auf dem gleichen Die aufweisen kann, umfassen können. Als nächstes werden beispielhafte Kernarchitekturen beschrieben, worauf Beschreibungen von beispielhaften Prozessoren und Computerarchitekturen folgen.
  • Beispielhafte Kernarchitekturen
  • Blockdiagramm eines In-Order- und eines Out-of-Order-Kerns
  • 12A ist ein Blockdiagramm, das sowohl eine beispielhafte In-Order-Pipeline als auch eine beispielhafte registerumbenennende Out-of-Order-Pipeline nach Ausführungsformen der Erfindung veranschaulicht. 12B ist ein Blockdiagramm, das sowohl eine beispielhafte Ausführungsform eines In-Order-Architektur-Kerns als auch einen beispielhaften registerumbenennenden Out-of-Order-Ausgabe/Ausführungs-Architektur-Kern zur Aufnahme in einen Prozessor nach Ausführungsformen der Erfindung veranschaulicht. Die Kästchen mit durchgehenden Linien in 12A bis B veranschaulichen die In-Order-Pipeline und den In-Order-Kern, während die optionale Hinzufügung der gestrichelten Kästchen die registerumbenennende Out-of-Order-Pipeline und den -Kern veranschaulicht. Sofern der In-Order-Gesichtspunkt ein Subsatz des Out-of-Order-Gesichtspunkts ist, wird der Out-of-Order-Gesichtspunkt beschrieben werden.
  • In 12A weist eine Prozessorpipeline 1200 eine Abrufstufe 1202, eine Längendecodierstufe 1204, eine Decodierstufe 1206, eine Zuteilungsstufe 1208, eine Umbenennungsstufe 1210, eine Zeitplanungsstufe (auch als Absende- oder Ausgabestufe bekannt) 1212, eine Registerlese/Speicherlesestufe 1214, eine Ausführungsstufe 1216, eine Zurückschreib/Speicherschreibstufe 1218, eine Ausnahmenbehandlungsstufe 1222, und eine Gültigmachungsstufe 1224 auf.
  • 12B zeigt einen Prozessorkern 1290, der eine Front-End-Einheit 1230 aufweist, die mit einer Ausführungsmaschineneinheit 1250 gekoppelt ist, wobei beide mit einer Speichereinheit 1270 gekoppelt sind. Der Kern 1290 kann ein Reduced-Instruction-Set-Computing(RISC)-Kern, ein Complex-Instruction-Set-Computing(CISC)-Kern, ein Very-Long-Instruction-Wort(VLIW)-Kern, oder ein Hybrid oder eine alternative Kernart sein. Als noch eine andere Option kann der Kern 1290 ein Kern mit besonderer Zweckbestimmung wie etwa ein Netzwerk- oder Kommunikationskern, eine Komprimierungsmaschine, ein Coprozessorkern, ein General-Purpose-Computing-Graphics-Processing-Unit(GPGPU)-Kern, ein Grafikkern, oder dergleichen sein.
  • Die Front-End-Einheit 1230 weist eine Verzweigungsvorhersageeinheit 1232 auf, die mit einer Befehlscacheeinheit 1234 gekoppelt ist, welche mit einem Befehlsübersetzungspuffer (Translation Lookaside Buffer, TLB) 1236 gekoppelt ist, der mit einer Befehlsabrufeinheit 1238 gekoppelt ist, welche mit einer Decodiereinheit 1240 gekoppelt ist. Die Decodiereinheit 1240 (oder der Decoder) kann Befehle decodieren und als Ausgang eine(n) oder mehr Mikrooperationen, Mikrocodezugangspunkte, Mikrobefehle, andere Befehle, oder andere Steuersignale erzeugen, die aus den ursprünglichen Befehlen decodiert wurden oder sie anderweitig widerspiegeln oder davon abgeleitet wurden. Die Decodiereinheit 1240 kann unter Verwendung verschiedener unterschiedlicher Mechanismen ausgeführt werden. Beispiele für geeignete Mechanismen beinhalten, aber ohne Beschränkung darauf, Nachschlagetabellen, Hardwareausführungen, programmierbare Logikanordnungen (PLAs) Mikrocode-Nurlesespeicher (ROMs), usw. Bei einer Ausführungsform weist der Kern 1290 einen Mikrocode-ROM oder ein anderes Medium, das Mikrocode für bestimmte Makrobefehle speichert (z.B. in der Decodiereinheit 1240 oder andernfalls in der Front-End-Einheit 1230), auf. Die Decodiereinheit 1240 ist mit einer Umbenennungs/Zuweisungseinheit 1252 in der Ausführungsmaschineneinheit 1250 gekoppelt.
  • Die Ausführungsmaschineneinheit 1250 weist die Umbenennungs/Zuweisungseinheit 1252 auf, die mit einer Rückzugseinheit 1254 und einem Satz von einer oder mehreren Zeitplanereinheit(en) 1256 gekoppelt ist. Die Zeitplanereinheit(en) 1256 stellt (stellen) jede beliebige Anzahl von unterschiedlichen Zeitplanern dar, einschließlich von Reservierungsstationen, eines zentralen Befehlfensters, usw. Die Zeitplanereinheit(en) 1256 ist (sind) mit der (den) physischen Registerdatei(en)einheit(en) 1258 gekoppelt. Jede der physischen Registerdatei(en)einheit(en) 1258 stellt eine oder mehr physische Registerdateien, wovon unterschiedliche eine oder mehr unterschiedliche Datenarten wie etwa skalar Ganzzahl, skalar Gleitkomma, gepackt Ganzzahl, gepackt Gleitkomma, Vektorganzzahl, Vektorgleitkomma, Zustand (z.B. ein Befehlszeiger, der die Adresse des nächsten auszuführenden Befehls ist), usw. speichern, dar. Bei einer Ausführungsform umfasst die physische Registerdatei(en)einheit 1258 eine Vektorregistereinheit, eine Schreibmaskenregistereinheit, und eine Skalarregistereinheit. Diese Registereinheiten können architektonische Vektorregister, Vektormaskenregister, und Allzweckregister bereitstellen. Die physische(n) Registerdatei(en)einheit(en) 1258 wird (werden) von der Rückzugseinheit 1254 überlappt, um verschiedene Weisen zu veranschaulichen, auf die eine Registerumbenennung und eine Out-of-Order-Ausführung ausgeführt werden können (z.B. Verwenden eines (von) Neuordnungspuffers (-puffern) und einer (von) Rückzugsregisterdatei(en); Verwenden einer (von) Zukunfts-Datei(en), eines (von) Verlaufspuffers (-puffern), und einer (von) Rückzugsregisterdatei(en); Verwenden eines Registerplans und eines Pools von Registern; usw.). Die Rückzugseinheit 1254 und die physische(n) Registerdatei(en)einheit(en) 1258 sind mit dem (den) Ausführungscluster(n) 1260 gekoppelt. Der (die) Ausführungscluster weist (weisen) einen Satz von einer oder mehr Ausführungseinheiten 1262 und einen Satz von einer oder mehr Speicherzugriffseinheiten 1264 auf. Die Ausführungseinheiten 1262 können verschiedene Operationen (z.B. Verschiebungen, Addition, Subtraktion, Multiplikation) und an verschiedenen Arten von Daten (skalar Gleitkomma, gepackt Ganzzahl, gepackt Gleitkomma, Vektorganzzahl, Vektorgleitkomma) durchführen. Während einige Ausführungsformen eine Anzahl von Ausführungseinheiten aufweisen können, die für bestimmte Funktionen oder Sätze von Funktionen zweckbestimmt sind, können andere Ausführungsformen nur eine Ausführungseinheit oder mehrere Ausführungseinheiten aufweisen, die alle alle Funktionen durchführen. Die Zeitplanereinheit(en) 1256, die physische(n) Registerdatei(en)einheit(en) 1258 und der (die) Ausführungscluster 1260 sind als möglicherweise in einer Mehrzahl vorhanden gezeigt, da bestimmte Ausführungsformen für bestimmte Arten von Daten/Operationen gesonderte Pipelines erzeugen (z.B. eine skalare Ganzzahlpipeline, eine skalare Gleitkomma/gepackte Ganzzahl/gepackte Gleitkomma/Vektorganzzahl(Vektorgleitkommapipeline, und/oder eine Speicherzugriffspipeline, die jeweils ihre eigene Zeitplanereinheit, physische Registerdatei(en)einheit, und/oder ihren eigenen Ausführungscluster aufweisen - und im Fall einer gesonderten Speicherzugriffspipeline werden bestimmte Ausführungsformen ausgeführt, bei denen nur der Ausführungscluster dieser Pipeline den (die) Speicherzugriffseinheit(en) 1264 aufweist). Es sollte sich auch verstehen, dass dort, wo gesonderte Pipelines verwendet werden, eine oder mehrere dieser Pipelines von der Art der Out-of-Order-Ausgabe/Ausführung und der Rest In-Order sein kann.
  • Der Satz von Speicherzugriffseinheiten 1264 ist mit der Speichereinheit 1270 gekoppelt, die eine Datenübersetzungspuffereinheit 1272 aufweist, die mit einer Datencacheeinheit 1274 gekoppelt ist, welche mit einer Level-2(L2)-Cacheeinheit 1276 gekoppelt ist. Bei einer beispielhaften Ausführungsform können die Speicherzugriffseinheiten 1264 eine Ladeeinheit, eine Speicher-Adressen-Einheit, und eine Speicher-Daten-Einheit aufweisen, wovon jede mit der Datenübersetzungspuffereinheit 1272 in der Speichereinheit 1270 gekoppelt ist. Die Befehlscacheeinheit 1234 ist ferner mit der Level-2(L2)-Cacheeinheit 1276 in der Speichereinheit 1270 gekoppelt. Die L2-Cacheeinheit 1276 ist mit einer oder mehreren anderen Cacheebenen und letztendlich mit einem Hauptspeicher gekoppelt.
  • Beispielsweise kann die beispielhafte registerumbenennende Out-of-Order-Ausgabe/Ausführungskernarchitektur die Pipeline wie folgt ausführen: 1) Die Befehlsabrufeinheit 1238 führt die Abruf- und die Längendecodierungsstufe 1202 und 1204 aus; 2) die Decodiereinheit 1240 führt die Decodierungsstufe 1206 aus; 3) die Umbenennungs/Zuweisungseinheit 1252 führt die Zuweisungsstufe 1208 und die Umbenennungsstufe 1210 aus; 4) die Zeitplanereinheit(en) 1256 führt (führen) die Zeitplanungsstufe 1212 aus;: 5) die physische(n) Registerdatei(en)einheit(en) 1258 und die Speichereinheit 1270 führen die Registerlese/Speicherlesestufe 1214 aus; der Ausführungscluster 1260 führt die Ausführungsstufe 1216 aus; 6) die Speichereinheit 1270 und die physische (n) Registerdatei(en)einheit(en) 1258 führen die Zurückschreib/Speicherschreibstufe 1218 aus; 7) verschiedene Einheiten können an der Ausnahmenbehandlungsstufe 1222 beteiligt sein; und 8) die Rückzugsstufe 1254 und die physische(n) Registerdatei(en)einheit(en) 1258 führen die Gültigmachungsstufe 1224 aus.
  • Der Kern 1290 kann einen oder mehr Befehlssätze (z.B. den x86-Befehlssatz (mit einigen Erweiterungen, die mit neueren Versionen hinzugefügt wurden); den MIPS-Befehlssatz von MIPS Technologies, Sunnyvale, CA; den ARM-Befehlssatz (mit optionalen zusätzlichen Erweiterungen wie etwa NEON) von ARM Holdings, Sunnyvale, CA) einschließlich des hier beschriebenen Befehls (der hier beschriebenen Befehle) unterstützen. Bei einer Ausführungsform aufweist der Kern 1290 Logik, um eine Erweiterung für gepackte Datenbefehlssätze (z.B. AVX1, AVX2) zu unterstützen, wodurch gestattet wird, dass die von vielen Multimedienanwendungen verwendeten Operationen unter Verwendung gepackter Daten durchgeführt werden.
  • Es sollte sich verstehen, dass der Kern Multithreading (das Ausführen von zwei oder mehr parallelen Sätzen von Operationen oder Threads) unterstützen kann und dies auf verschiedene Weisen einschließlich Zeitscheiben-Multithreading, gleichzeitigem Multithreading (wobei ein einzelner physischer Kern für jeden der Threads, die der physische Kern gleichzeitig multithreadverarbeitet, einen logischen Kern bereitstellt), oder einer Kombination davon (z.B. Zeitscheiben-Abrufen und - Decodieren, und danach gleichzeitiges Multithreadverarbeiten, wie bei der Intel® Hyperthreading-Technologie) durchführen kann.
  • Obwohl die Registerumbenennung in dem Kontext der Out-of-Order-Ausführung beschrieben ist, sollte sich verstehen, dass die Registerumbenennung in einer In-Order-Architektur verwendet werden kann. Während die veranschaulichte Ausführungsform des Prozessors auch gesonderte Befehls- und Datencacheeinheiten 1234/1274 und eine gemeinsame L2-Cacheeinheit aufweist, können alternative Ausführungsformen einen einzelnen internen Cache sowohl für Befehle als auch Daten aufweisen, wie etwa zum Beispiel einen internen Level-1(L-1)-Cache oder mehrere Ebenen von internem Cache. Bei einigen Ausführungsformen kann das System eine Kombination aus einem internen Cache und einem externen Cache, der sich außerhalb des Kerns und/oder des Prozessors befindet, umfassen. Alternativ kann sich der gesamte Cache außerhalb des Kerns und/oder des Prozessors befinden.
  • Eine spezifische beispielhafte In-Order-Kernarchitektur
  • 13A bis B veranschaulichen ein Blockdiagramm einer spezifischeren beispielhaften In-Order-Kernarchitektur, wobei der Kern einer von mehreren Logikblöcken (einschließlich anderer Kerne von der gleichen Art und/oder anderen Arten) in einem Chip sein würde. Die Logikblöcke kommunizieren abhängig von der Anwendung durch ein Verbindungsnetzwerk (z.B. ein Ringnetzwerk) mit hoher Bandbreite mit irgendeiner Logik mit fester Funktion, Speicher-E/A-Schnittstellen, und anderer notwendiger E/A-Logik.
  • 13A ist ein Blockdiagramm eines einzelnen Prozessorkerns zusammen mit seiner Verbindung mit dem On-Chip-Verbindungsnetzwerk 1302 und mit seinem lokalen Subsatz des Level-2(L2)-Caches 1304 nach Ausführungsformen der Erfindung. Bei einer Ausführungsform unterstützt ein Befehlsdecodierer 1300 den x86-Befehlssatz mit einer Befehlssatzerweiterung für gepackte Daten. Ein Ll-Cache 1306 gestattet Zugriffe mit niedriger Latenz auf den Cachespeicher in die skalaren und Vektoreinheiten. Während bei einer Ausführungsform (zur Vereinfachung der Gestaltung) eine skalare Einheit 1308 und eine Vektoreinheit 1310 gesonderte Registersätze (skalare Register 1312 bzw. Vektorregister 1314) verwenden und dazwischen übertragene Daten in den Speicher geschrieben werden und dann von einem Level-1(L1)-Cache 1306 wieder eingelesen werden, können alternative Ausführungsformen der Erfindung einen unterschiedlichen Ansatz verwenden (z.B. einen einzelnen Registersatz verwenden oder einen Kommunikationspfad aufweisen, der gestattet, dass Daten zwischen den beiden Registerdateien übertragen werden, ohne geschrieben und wieder eingelesen zu werden).
  • Der lokale Subsatz des L2-Caches 1304 ist Teil eines globalen L2-Caches, der in gesonderte lokale Subsätze, für jeden Prozessorkern einen, geteilt ist. Jeder Prozessorkern verfügt über einen direkten Zugriffspfad zu seinem eigenen lokalen Subsatz des L2-Caches 1304. Daten, die von einem Prozessorkern gelesen werden, werden in seinem L2-Cache-Subsatz 1304 gespeichert und können, parallel zu anderen Prozessorkernen, die auf ihre eigenen lokalen L2-Cache-Subsätze zugreifen, rasch abgerufen werden. Daten, die von einem Prozessorkern geschrieben werden, werden in seinem eigenen L2-Cache-Subsatz gespeichert und, falls nötig, aus anderen Subsätzen gespült. Das Ringnetzwerk stellt die Kohärenz für gemeinsame Daten sicher. Das Ringnetzwerk ist bidirektional, um Agenten wie etwa Prozessorkernen, L2-Caches und anderen Logikblöcken zu gestatten, in dem Chip miteinander zu kommunizieren. Jeder Ringdatenpfad ist pro Richtung 1012 Bits breit.
  • 13B ist eine erweiterte Ansicht eines Teils des Prozessorkerns in 13A nach Ausführungsformen der Erfindung. 13B enthält einen L1-Datencacheteil 1306A des L1-Caches 1304 wie auch weitere Einzelheiten hinsichtlich der Vektoreinheit 1310 und der Vektorregister 1314. Insbesondere ist die Vektoreinheit 1310 eine 16-breite Vektorverarbeitungseinheit (Vector Processing Unit, VPU) (siehe die 16-breite ALU 1328), die eines oder mehr aus Ganzzahl-, Gleitkomma-mit-einfacher-Genauigkeit-, und Gleitkomma-mit-doppelter-Genauigkeit-Befehlen ausführt. Die VPU unterstützt ein Umstellen der Registereingänge mit einer Umstelleinheit 1320, eine numerische Umwandlung mit numerischen Umwandlungseinheiten 1322A bis B, und eine Replikation mit einer Replikationseinheit 1324 an dem Speichereingang. Schreibmaskenregister 1326 gestatten das Vorhersagen sich ergebener Vektorschreibungen.
  • 14 ist ein Blockdiagramm eines Prozessors 1400, der mehr als einen Kern aufweisen kann, eine integrierte Speichersteuerung aufweisen kann, und integrierte Grafik aufweisen kann, nach Ausführungsformen der Erfindung. Die Kästchen mit durchgehenden Linien in 14 veranschaulichen einen Prozessor 1400 mit einem einzelnen Kern 1402A, einem Systemagenten 1410, und einem Satz von einer oder mehr Bussteuerungseinheiten 1416, während die optionale Hinzufügung der gestrichelten Kästchen einen alternativen Prozessor 1400 mit mehreren Kernen 1402 A bis N, einem Satz von einer oder mehr integrierten Speichersteuerungseinheit(en) 1414 in der Systemagenteneinheit 1410, und einer Logik 1408 mit besonderer Zweckbestimmung veranschaulicht.
  • Somit können verschiedene Ausführungen des Prozessors 400 1) eine CPU, wobei die Logik 1409 mit besonderer Zweckbestimmung eine integrierte Grafik- und/oder Wissenschafts(Durchsatz)logik (die einen oder mehr Kerne aufweisen kann) ist, und die Kerne 1402 bis N ein oder mehr Allzweck-Kerne (z.B. Allzweck-In-Order-Kerne, Allzweck-Out-of-order-Kerne, eine Kombination der beiden) sind; 2) einen Coprozessor, wobei die Kerne 1402A bis N eine große Anzahl von Kernen mit besonderer Zweckbestimmung sind, die vor allem für Grafik und/oder Wissenschaft (Durchsatz) bestimmt sind; und 3) einen Coprozessor, wobei die Kerne 1402A bis N eine große Anzahl von Allzweck-In-Order-Kernen sind, umfassen. Somit kann der Prozessor 1400 ein Allzweck-Prozessor, ein Coprozessor, oder ein Prozessor mit besonderer Zweckbestimmung wie etwa ein Netzwerk- oder Kommunikationsprozessor, eine Komprimierungsmaschine, ein Grafikprozessor, eine GPGPU (eine Allzweck-Grafikverarbeitungseinheit), ein Many-Integrated-Core(MIC)-Coprozessor mit hohem Durchsatz (der 30 oder mehr Kerne aufweist), ein eingebetteter Prozessor, oder dergleichen sein. Der Prozessor kann auf einem oder mehreren Chips ausgeführt werden. Der Prozessor 1400 kann ein Teil eines Substrats sein und/oder kann unter Verwendung einer beliebigen aus einer Anzahl von Prozesstechnologien wie etwa, zum Beispiel, BiCMOS, CMOS, oder NMOS auf einem oder mehr Substraten ausgeführt werden.
  • Die Speicherhierarchie weist ein oder mehr CacheEbenen 1404A bis N in den Kernen, einen Satz von einem oder mehr gemeinsamen Cacheeinheiten 1406, und einen externen Speicher (nicht gezeigt), der mit dem Satz von integrierten Speichersteuerungseinheiten 1414 gekoppelt ist, auf. Der Satz von gemeinsamen Cacheeinheiten 1406 kann einen oder mehr Caches mittlerer Ebenen wie etwa Level-2 (L2), Level-3 (L3), Level-4 (L4) oder andere Levels von Cache, einen Last-Level-Cache (LLC), und/oder Kombinationen davon aufweisen. Während bei einer Ausführungsform eine ringbasierte Verbindungseinheit 1412 die integrierte Grafiklogik 1408, den Satz von gemeinsamen Cacheeinheiten 1406 und die Systemagenteneinheit 1410/die integrierte(n) Speichersteuerungseinheit(en) 1414 verbindet, können alternative Ausführungsformen jede beliebige Anzahl wohlbekannter Techniken zum Verbinden dieser Einheiten verwenden. Bei einer Ausführungsform wird zwischen einer oder mehr Cacheeinheiten 1406 und Kernen 1402A bis N die Kohärenz bewahrt.
  • Bei einigen Ausführungsformen sind ein oder mehr der Kerne 1402A bis N zur Multithreadverarbeitung fähig. Der Systemagent 1410 kann zum Beispiel eine Leistungssteuereinheit (power control unit, PCU) und eine Anzeigeeinheit umfassen. Die PCU kann Logik und Komponenten, die zur Regelung des Leistungszustands der Kerne 1402A bis N und der integrierten Grafiklogik 1408 nötig ist, sein oder enthalten. Die Anzeigeeinheit dient zum Antreiben einer oder mehr extern angeschlossener Anzeigen.
  • Die Kerne 1402A bis N können im Hinblick auf den Architekturbefehlssatz homogen oder heterogen sein; das heißt, zwei oder mehr der Kerne 1402A bis N können zur Ausführung des gleichen Befehlssatzes fähig sein, während andere zur Ausführung nur eines Subsatzes dieses Befehlssatzes oder eines anderen Befehlssatzes fähig sein können.
  • Beispielhafte Computerarchitekturen
  • 15 bis 18 sind Blockdiagramme von beispielhaften Computerarchitekturen. Andere Systemgestaltungen und Konfigurationen, die in der Technik für Laptops, Desktops, Handheld-PCs, Personal Digital Assistants, Engineering-Workstations, Server, Netzwerkvorrichtungen, Netzwerkhubs, Vermittlungen, eingebettete Prozessoren, digitale Signalprozessoren (DSPs), Grafikvorrichtungen, Videospielvorrichtungen, Set-Top-Boxen, Mikrosteuerungen, Mobiltelefone, tragbare Medienabspielgeräte, Handgeräte, und verschiedene andere elektronische Vorrichtungen bekannt sind, sind ebenfalls geeignet. Im Allgemeinen ist generell eine große Vielfalt an Systemen oder elektronischen Vorrichtungen, die in der Lage sind, einen Prozessor und/oder eine andere wie hier offenbarte Ausführungslogik aufzunehmen, geeignet.
  • Unter nun erfolgender Bezugnahme auf 15 ist ein Blockdiagramm eines Systems 1500 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Das System 1500 kann einen oder mehr Prozessoren 1510, 1515 aufweisen, die mit einem Steuerungs-Hub 1520 gekoppelt sind. Bei einer Ausführungsform weist der Steuerungs-Hub 1520 einen Grafikspeichersteuerungs-Hub (Graphic Memory Controller Hub, GMCH) 1590 und einen Ein/Ausgangs-Hub (Input/Output Hub, IOH) 1550 (die sich auf gesonderten Chips befinden können) auf; weist der GMCH 1590 Speicher- und Grafiksteuerungen auf, mit denen ein Speicher 1540 und ein Coprozessor 1545 gekoppelt sind; und koppelt der IOH 1550 Ein/Ausgabe (E/A)-Vorrichtungen 1560 mit dem GMCH 1590. Alternativ sind eines oder beide aus der Speicher- und der Grafiksteuerung in den Prozessor aufgenommen (wie hier beschrieben), sind der Speicher 1540 und der Coprozessor 1545 direkt mit dem Prozessor 1510, und ist der Steuerungs-Hub 1520 in einem einzelnen Chip mit dem IOH 1550 gekoppelt.
  • Die optionale Natur zusätzlicher Prozessoren 1515 ist in 15 gestrichelt angegeben. Jeder Prozessor 1510, 1515 kann einen oder mehr der hier beschriebenen Verarbeitungskerne aufweisen und kann irgendeine Version des Prozessors 1400 sein.
  • Der Speicher 1540 kann zum Beispiel ein dynamischer Direktzugriffsspeicher (DRAM), ein Phasenwechselspeicher (Phase Change Memory, PCM), oder eine Kombination der beiden sein. Bei wenigstens einer Ausführungsform kommuniziert der Steuerungs-Hub 1520 über einen Mehrstationenbus wie etwa einen Frontside-Bus (FSB), eine Punkt-zu-Punkt-Schnittstelle wie etwa QuickPath Interconnect (QPI), oder eine ähnliche Verbindung 1595 mit dem (den) Prozessor(en) 1510, 1515.
  • Bei einer Ausführungsform ist der Prozessor 1545 ein Prozessor mit besonderer Zweckbestimmung wie etwa, zum Beispiel, ein MIC-Prozessor mit hohem Durchsatz, ein Netzwerk- oder Kommunikationsprozessor, eine Komprimierungsmaschine, ein Grafikprozessor, eine GPGPU, ein eingebetteter Prozessor, oder dergleichen. Bei einer Ausführungsform kann der Steuerungs-Hub 1520 einen integrierten Grafikbeschleuniger aufweisen.
  • Zwischen den physischen Ressourcen 1510, 1515 können im Hinblick auf ein Spektrum von Leistungskenngrößen einschließlich architektonischen, mikroarchitektonischen, thermischen Eigenschaften, Stromverbrauchseigenschaften, und dergleichen zahlreiche Unterschiede bestehen.
  • Bei einer Ausführungsform führt der Prozessor 1510 Befehle aus, die Datenverarbeitungsoperationen einer allgemeinen Art steuern. In die Befehle können Coprozessorbefehle eingebettet sein. Der Prozessor 1510 erkennt diese Coprozessorbefehle als von einer Art, die durch den angeschlossenen Coprozessor 1545 ausgeführt werden sollte. Entsprechend gibt der Prozessor 1510 diese Coprozessorbefehle (oder Steuersignale, die Coprozessorbefehle darstellen) auf einem Coprozessorbus oder einer anderen Verbindung an den Coprozessor 1545 aus. Der (die) Coprozessor(en) 1545 akzeptiert (akzeptieren) die erhaltenen Coprozessorbefehle und führt (führen) diese aus.
  • Unter nun erfolgender Bezugnahme auf 16 ist ein Blockdiagramm eines ersten spezifischeren beispielhaften Systems 1600 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 16 gezeigt ist das Multiprozessorsystem 1600 ein Punkt-zu-Punkt-Verbindungssystem und umfasst es einen ersten Prozessor 1670 und einen zweiten Prozessor 1680, die über eine Punkt-zu-Punkt-Verbindung 1650 gekoppelt sind. Jeder der Prozessoren 1670 und 1680 kann irgendeine Version des Prozessors 1400 sein. Bei einer Ausführungsform der Erfindung sind die Prozessoren 1670 und 1680 jeweils Prozessoren 1510 und 1515, während der Coprozessor 1638 der Coprozessor 1545 ist. Bei einer anderen Ausführungsform sind die Prozessoren 1670 und 1680 jeweils der Prozessor 1510 und der Coprozessor 1545.
  • Es ist gezeigt, dass die Prozessoren 1670 und 1682 jeweils integrierte Speichersteuerungs(Integrated Memory Controller, IMC)-Einheiten 1672 und 1682 aufweisen. Der Prozessor 1670 weist als Teil seiner Bussteuerungseinheiten auch Punkt-zu-Punkt(P-P)-Schnittstellen 1676 und 1678 auf; ebenso weist der Prozessor 1680 P-P-Schnittstellen 1686 und 1688 auf. Die Prozessoren 1670, 1680 können Informationen unter Verwendung von P-P-Schnittstellenschaltungen 1678, 1688 über eine Punkt-zu-Punkt(P-P)-Schnittstelle 1650 austauschen. Wie in 16 gezeigt koppeln die IMCs 1672 und 1682 die Prozessoren mit jeweiligen Speichern, nämlich einem Speicher 1632 und einem Speicher 1634, die Teile eines Hauptspeichers sein können, der lokal an die entsprechenden Prozessoren angeschlossen ist.
  • Die Prozessoren 1670, 1680 können jeweils Informationen unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 1676, 1694, 1686, 1698 über einzelne P-P-Schnittstellen 1652, 1654 mit einem Chipsatz 1690 austauschen. Der Chipsatz 1690 kann optional Informationen über eine Hochleistungsschnittstelle 1692 mit dem Coprozessor 1638 austauschen. Bei einer Ausführungsform ist der Coprozessor 1638 ein Prozessor mit besonderer Zweckbestimmung, wie etwa, zum Beispiel, ein MIC-Prozessor mit hohem Durchsatz, ein Netzwerk- oder Kommunikationsprozessor, eine Komprimierungsmaschine, ein Grafikprozessor, eine GPGPU, ein eingebetteter Prozessor, oder dergleichen.
  • Ein gemeinsamer Cache (nicht gezeigt) kann in jedem der Prozessoren oder außerhalb der beiden Prozessoren enthalten sein, aber über eine P-P-Verbindung mit den Prozessoren verbunden sein, so dass lokale Cacheinformationen jedes Prozessors oder beider Prozessoren in dem gemeinsamen Cache gespeichert werden können, wenn ein Prozessor in einen Energiesparmodus gebracht wird.
  • Der Chipsatz 1690 kann über eine Schnittstelle 1696 mit einem ersten Bus 161 gekoppelt sein. Bei einer Ausführungsform kann der erste Bus 1616 ein Peripheral-Component-Interconnect(PCI)-Bus oder ein Bus wie etwa ein PCI-Express oder ein anderer E/A-Verbindungsbus der dritten Generation sein, obwohl der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • Wie in 16 gezeigt können verschiedene E/A-Vorrichtungen 1614 mit einem ersten Bus 1616 gekoppelt sein, wie auch einer Busbrücke 1618, die den ersten Bus 1616 mit einem zweiten Bus 1620 koppelt. Bei einer Ausführungsform sind ein oder mehr zusätzliche(r) Prozessor(en) 1615 wie etwa Coprozessoren, MIC-Prozessoren mit hohem Durchsatz, GPGPUs, Beschleuniger (wie etwa, z.B., Grafikbeschleuniger oder digitale Signalverarbeitungs (DSP)-Einheiten), feldprogrammierbare Gateanordnungen, oder ein beliebiger anderer Prozessor, mit dem ersten Bus 1616 gekoppelt. Bei einer Ausführungsform kann der zweite Bus ein Bus mit niedriger Pinanzahl (Low Pin Count, LPC) sein. Bei einer Ausführungsform können verschiedene Vorrichtungen, die zum Beispiel, eine Tastatur und/oder eine Maus 1622, Kommunikationsvorrichtungen 1627 und eine Speichereinheit 1628 wie etwa ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, die Befehle/Code und Daten 1630 enthalten kann, beinhalten können, mit einem zweiten Bus 1620 gekoppelt sein. Ferner kann eine Audio-E/A 1624 mit dem zweiten Bus 1620 gekoppelt sein. Es ist zu beachten, dass andere Architekturen möglich sind. Zum Beispiel kann ein System anstelle der Punkt-zu-Punkt-Architektur von 16 einen Mehrstationenbus oder eine andere solche Architektur ausführen.
  • Unter nun erfolgender Bezugnahme auf 17 ist ein Blockdiagramm eines zweiten spezifischeren beispielhaften Systems 1700 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Gleiche Elemente in 16 und 17 tragen gleiche Bezugszeichen, und bestimmte Gesichtspunkte von 16 wurden in 17 weggelassen, um andere Gesichtspunkte von 17 nicht unklar zu machen.
  • 17 veranschaulicht, dass die Prozessoren 1670, 1680 jeweils integrierte Speicher- und E/A-Steuerlogik (control logic, „CL“) 1672, 1682 aufweisen können. Somit weisen die CLs 1672, 1682 integrierte Speichersteuerungseinheiten auf, und weisen sie E/A-Steuerlogik auf. 17 veranschaulicht, dass nicht nur die Speicher 1632, 1634 mit der CL 1672, 1682 gekoppelt sind, sondern dass auch E/A-Vorrichtungen 1714 mit der Steuerlogik 1672, 1682 gekoppelt sind. Legacy-E/A-Vorrichtungen 1715 sind mit dem Chipsatz 1690 gekoppelt.
  • Unter nun erfolgender Bezugnahme auf 18 ist ein Blockdiagramm eines Systems auf einem Chip SoC 1800 nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Gleiche Elemente in 14 tragen gleiche Bezugszeichen. Außerdem sind gestrichelte Kästchen optionale Merkmale auf fortgeschritteneren SoCs. In 18 ist eine (sind) Verbindungseinheit (en) 1802 mit einem Anwendungsprozessor 1810, der einen Satz aus einem oder mehreren Kernen 1402A bis N, einen Cache 1404A bis N, und (eine) gemeinsame Cacheeinheit(en) 1406 aufweist; einer Systemagenteneinheit 1410; (einer) Bussteuerungseinheit(en) 1416; (einer) integrierten Speichersteuerungseinheit(en) 1414; einem Satz oder einem oder mehreren Coprozessoren 1820, die integrierte Grafiklogik, einen Bildprozessor, einen Audioprozessor, und einen Videoprozessor aufweisen können; einer statischen Direktzugriffsspeicher(RAM)-Einheit 1830; einer Direktspeicherzugriffs(direct memory access, DMA)-Einheit 1832, und einer Anzeigeeinheit 1840 zur Kopplung mit einer oder mehr externen Anzeigen gekoppelt. Bei einer Ausführungsform weist der (weisen die) Coprozesor(en) 1820 einen Prozessor mit besonderer Zweckbestimmung wie etwa, zum Beispiel einen Netzwerk- oder Kommunikationsprozessor, eine Komprimierungsmaschine, eine GPGPU, einen MIC-Prozessor mit hohen Durchsatz, einen eingebetteten Prozessor, oder dergleichen auf.
  • Ausführungsformen der hier offenbarten Mechanismen können in Hardware, Software, Firmware oder Kombinationen derartiger Ausführungsansätze ausgeführt werden. Ausführungsformen der Erfindung können als Computerprogramme oder Computercode, die (der) an programmierbaren Systemen, die wenigstens einen Prozessor, ein Speichersystem (das flüchtige und nichtflüchtige Speicher- und/oder Massenspeicherelemente aufweist), wenigstens eine Eingabevorrichtung, und wenigstens eine Ausgabevorrichtung umfasst, ausgeführt werden (wird), umgesetzt werden.
  • Programmcode wie der in 16 veranschaulichte Code kann auf Eingabebefehle angewendet werden, um die hier beschriebenen Funktionen durchzuführen und Ausgabeinformationen zu erzeugen. Die Ausgabeinformationen können auf eine bekannte Weise an eine oder mehr Ausgabevorrichtungen angelegt werden. Zum Zwecke dieser Anmeldung umfasst ein Verarbeitungssystem jedes beliebige System, das einen Prozessor wie etwa, zum Beispiel, einen digitalen Signalprozessor (DSP), eine Mikrosteuerung, eine anwendungsspezifische integrierte Schaltung (ASIC) oder einen Mikroprozessor aufweist.
  • Der Programmcode kann in einer höheren prozess- oder objektorientierten Programmiersprache zur Kommunikation mit einem Verarbeitungssystem ausgeführt werden. Falls gewünscht, kann der Programmcode auch in einer Assemblersprache oder Maschinensprache ausgeführt werden. Tatsächlich sind die hier beschriebenen Mechanismen hinsichtlich ihres Umfangs nicht auf irgendeine bestimmte Programmiersprache beschränkt. Auf jeden Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein.
  • Ein oder mehr Gesichtspunkte wenigstens einer Ausführungsform können durch repräsentative Befehle ausgeführt werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik in dem Prozessor darstellt, die beim Lesen durch eine Maschine die Maschine dazu bringen, Logik zur Durchführung der hier beschriebenen Techniken zu erzeugen. Derartige Darstellungen, die als „IP-Kerne“ bekannt sind, können auf einem greifbaren maschinenlesbaren Medium gespeichert werden und verschiedenen Kunden oder Herstellungseinrichtungen geliefert werden, um in Maschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich bilden.
  • Derartige maschinenlesbare Speichermedien können ohne Beschränkung darauf, nichtflüchtige, greifbare Anordnungen von Gegenständen, die durch eine Maschine oder Vorrichtung hergestellt oder gebildet werden, beinhalten, einschließlich Speichermedien wie etwa Festplatten, jeder beliebigen anderen Art von Platte einschließlich Floppy-Disks, optischen Platten, Compact-Disk-Nurlesespeichern (CD-ROMs), wiederbeschreibbaren Compact-Disks (CD-RWs), und magnetooptischen Disks, Halbleitervorrichtungen wie Nurlesespeichern (ROMs), Direktzugriffsspeichern (RAMs) wie etwa dynamischen Direktzugriffsspeichern (DRAMs), statischen Direktzugriffsspeichern (SRAMs), löschbaren programmierbaren Nurlesespeichern (EPROMs), Flash-Speichern, elektrisch löschbaren programmierbaren Nurlesespeichern (EEPROMs), Phasenwechselspeichern (PCMs), magnetischen oder optischen Karten, oder jeder beliebigen anderen Art von Medien, die zum Speichern elektronischer Befehle geeignet ist.
  • Entsprechend beinhalten Ausführungsformen der Erfindung auch nichtflüchtige greifbare maschinenlesbare Medien, die Befehle aufweisen oder Designdaten wie etwa Hardware Description Language (HDL), die hier beschriebene Aufbauten, Schaltungen, Vorrichtungen, Prozessoren und/oder Systemmerkmale definiert, aufweisen. Derartige Ausführungsformen können auch als Programmprodukte bezeichnet werden.
  • Emulation (einschließlich binäre Übersetzung, Codemorphing, usw.)
  • In einigen Fällen kann ein Befehlskonverter verwendet werden, um einen Befehl von einem Quellbefehlssatz in einen Zielbefehlssatz umzuwandeln. Zum Beispiel kann der Befehlskonverter einen Befehl in einen oder mehr andere Befehle zur Ausführung durch den Kern übersetzen (z.B. unter Verwendung einer statischen binären Übersetzung, einer dynamischen binären Übersetzung einschließlich einer dynamischen Kompilierung), morphen, emulieren oder anderweitig umwandeln. Der Befehlskonverter kann in Software, Hardware, Firmware, oder einer Kombination daraus ausgeführt werden. Der Befehlskonverter kann sich auf dem Prozessor, von dem Prozessor entfernt, oder zum Teil auf dem Prozessor und zum Teil davon entfernt befinden.
  • 19 ist ein Blockdiagramm, das die Verwendung eines Softwarebefehlskonverters zum Umwandeln von binären Befehlen in einem Quellbefehlssatz in binäre Befehle in einem Zielbefehlssatz nach Ausführungsformen der Erfindung vergleicht. Bei der veranschaulichten Ausführungsform ist der Befehlskonverter ein Softwarebefehlskonverter, obwohl der Befehlskonverter alternativ in Software, Firmware, Hardware, oder verschiedenen Kombinationen davon ausgeführt werden kann. 19 zeigt, dass ein Programm 1902 in einer höheren Sprache unter Verwendung eines x86-Kompilierers 1904 kompiliert werden kann, um x86-Binärcode zu erzeugen, der nativ durch einen Prozessor mit wenigstens einem x86-Befehlssatzkern 1916 ausgeführt werden kann. Der Prozessor mit wenigstens einem x86-Befehlssatzkern 1916 stellt jeden beliebigen Prozessor dar, der im Wesentlichen die gleichen Funktionen wie ein Intel-Prozessor mit wenigstens einem x86-Befehlssatzkern durchführen kann, indem er (1) einen wesentlichen Teil des Befehlssatzes des Intel-x86-Befehlssatzkerns oder (2) Objektcodeversionen von Anwendungen oder anderer Software, die für die Ausführung an einem Intel-Prozessor mit wenigstens einem x86-Befehlssatzkern konzipiert sind, kompatibel ausführt oder anderweitig verarbeitet, um im Wesentlichen das gleiche Ergebnis wie ein Intel-Prozessor mit wenigstens einem x86-Befehlssatzkern zu erzielen. Der x86-Kompilierer 1904 stellt einen Kompilierer dar, der dazu betriebsfähig ist, x86-Binärcode 1906 (z.B. Objektcode) zu erzeugen, der, mit oder ohne zusätzliche Verknüpfungsverarbeitung, an dem Prozessor mit wenigstens einem x86-Befehlssatzkern 1916 ausgeführt werden kann. Ebenso zeigt 19, dass das Programm in der höheren Sprache 1902 unter Verwendung eines alternativen Befehlssatzkompilierers 1908 kompiliert werden kann, um einen alternativen Befehlssatzbinärcode 1910 zu erzeugen, der nativ durch einen Prozessor ohne wenigstens einen x86-Befehlssatzkern 1914 (z.B. einen Prozessor mit Kernen, die den MIPS-Befehlssatz der MIPS Technologies, Sunnyvale, CA, ausführen und/oder den ARM-Befehlssatz der ARM Holdings, Sunnyvale, CA, ausführen) ausgeführt werden kann. Der Befehlskonverter 1912 wird verwendet, um den x86-Binärcode 1906 in Code umzuwandeln, der nativ durch den Prozessor ohne einen x86-Befehlssatzkern 1914 ausgeführt werden kann. Dieser umgewandelte Code ist wahrscheinlich nicht der gleiche wie der alternative Befehlssatzbinärcode 1910, da ein Befehlskonverter, der dazu in der Lage ist, schwer herzustellen ist; doch wird der umgewandelte Code die allgemeine Operation bewerkstelligen und aus Befehlen von dem alternativen Befehlssatz bestehen. Somit stellt der Befehlskonverter 1912 Software, Firmware, Hardware, oder eine Kombination davon dar, die einem Prozessor oder einer anderen elektronischen Vorrichtung, die keinen x86-Befehlssatzprozessor oder - kern aufweist, durch Emulation, Simulation, oder einen beliebigen anderen Prozess gestattet, den x86-Binärcode 1906 auszuführen.

Claims (20)

  1. Vorrichtung, umfassend: eine Radiofrequenzidentifikations(RFID)-Vorrichtung, wobei die RFID-Vorrichtung einen Speicher aufweist, um wenigstens eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu speichern; ein Sicherheitsschaltungsmittel, das mit der RFID-Vorrichtung gekoppelt ist, wobei die Sicherheitsschaltung wenigstens eine verschlüsselte Seitenbandnachricht von dem Speicher der RFID-Vorrichtung abruft, die eine verschlüsselte Seitenbandnachricht entschlüsselt, unter Verwendung einer Information von der entschlüsselten Seitenbandnachricht die Gültigkeit der entschlüsselten Seitenbandnachricht bestimmt, und als Reaktion auf den wenigstens einen Befehl eine Handlung durchführt.
  2. Vorrichtung nach Anspruch 1, wobei die wenigstens eine verschlüsselte Seitenbandnachricht unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung verschlüsselt ist.
  3. Vorrichtung nach Anspruch 2, wobei die wenigstens eine verschlüsselte Seitenbandnachricht unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung mit Cipher-Block-Chaining verschlüsselt ist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die Information, die von der entschlüsselten Seitenbandnachricht verwendet wird, um die Gültigkeit zu bestimmen, ein Integritätsprüfmuster ist.
  5. Vorrichtung nach Anspruch 4, wobei die Sicherheitsschaltung das Integritätsprüfmuster der entschlüsselten Seitenbandnachricht mit einem in dem Speicher der Sicherheitsschaltung gespeicherten Integritätsprüfmuster vergleicht.
  6. Vorrichtung nach Anspruch 4, wobei sich das Integritätsprüfmuster in einem Fußabschnitt der wenigstens einen verschlüsselten Seitenbandnachricht befindet.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, wobei der wenigstens eine Befehl einer aus Eintreten in das Pre-Booten, Überprüfen des Abbilds, Auslösen der Wiederherstellung, Rebooten, Abschalten, und Bereitstellen eines Fehlerprotokolls ist.
  8. System, umfassend: einen Verwaltbarkeitsserver, um eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu erzeugen; einen Server, der eine Radiofrequenzidentifikations(RFID)-Vorrichtung aufweist, wobei die RFID-Vorrichtung einen Speicher aufweist, um wenigstens eine verschlüsselte Seitenbandnachricht mit wenigstens einem Befehl zu speichern, und eine Sicherheitsschaltung, die mit der RFID-Vorrichtung gekoppelt ist, aufweist, wobei die Sicherheitsschaltung wenigstens eine verschlüsselte Seitenbandnachricht von dem Speicher der RFID-Vorrichtung abruft, die eine verschlüsselte Seitenbandnachricht entschlüsselt, unter Verwendung einer Information von der entschlüsselten Seitenbandnachricht die Gültigkeit der entschlüsselten Seitenbandnachricht bestimmt, und als Reaktion auf den wenigstens einen Befehl eine Handlung durchführt.
  9. System nach Anspruch 8, wobei die wenigstens eine verschlüsselte Seitenbandnachricht unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung verschlüsselt ist.
  10. System nach Anspruch 9, wobei die wenigstens eine verschlüsselte Seitenbandnachricht unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung mit Cipher-Block-Chaining verschlüsselt ist.
  11. System nach einem der Ansprüche 8 bis 10, wobei die Information, die von der entschlüsselten Seitenbandnachricht verwendet wird, um die Gültigkeit zu bestimmen, ein Integritätsprüfmuster ist.
  12. System nach Anspruch 11, wobei die Sicherheitsschaltung das Integritätsprüfmuster der entschlüsselten Seitenbandnachricht mit einem in dem Speicher der Sicherheitsschaltung gespeicherten Integritätsprüfmuster vergleicht.
  13. System nach Anspruch 11, wobei sich das Integritätsprüfmuster in einem Fußabschnitt der wenigstens einen verschlüsselten Seitenbandnachricht befindet.
  14. System nach einem der Ansprüche 8 bis 13, wobei der wenigstens eine Befehl einer aus Eintreten in das Pre-Booten, Überprüfen des Abbilds, Auslösen der Wiederherstellung, Rebooten, Abschalten, und Bereitstellen eines Fehlerprotokolls ist.
  15. Verfahren, umfassend: Erzeugen einer Zufallszahl; Anordnen der erzeugten Zufallszahl als erstes Paket einer Nachricht; Einfügen wenigstens eines Befehls nach der erzeugten Zufallszahl in die Nachricht; Abschließen der Nachricht mit einem Integritätsprüfmuster; und Verschlüsseln der Nachricht für eine Seitenbandübertragung über eine Radiofrequenzidentifikations(RFID)-Vorrichtung.
  16. Verfahren nach Anspruch 15, wobei die Zufallszahl, der wenigstens eine Befehl, und das Integritätsprüfmuster jeweils 64-Bit sind.
  17. Verfahren nach einem der Ansprüche 15 bis 16, wobei das Integritätsprüfmuster einem in einer Empfängervorrichtung gespeicherten Integritätsprüfmuster entspricht.
  18. Verfahren nach einem der Ansprüche 15 bis 17, wobei der wenigstens eine Befehl einer aus Eintreten in das Pre-Booten, Überprüfen des Abbilds, Auslösen der Wiederherstellung, Rebooten, Abschalten, und Bereitstellen eines Fehlerprotokolls ist.
  19. Verfahren nach einem der Ansprüche 15 bis 18, wobei die Seitenbandnachricht unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung verschlüsselt ist.
  20. Verfahren nach Anspruch 19, wobei die Seitenbandnachricht unter Verwendung einer Advanced-Encryption-Standard-Verschlüsselung mit Cipher-Block-Chaining verschlüsselt ist.
DE112017005005.7T 2016-10-01 2017-09-29 Systeme, vorrichtungen, und verfahren zur plattformsicherheit Withdrawn DE112017005005T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/283,388 2016-10-01
US15/283,388 US20180097839A1 (en) 2016-10-01 2016-10-01 Systems, apparatuses, and methods for platform security
PCT/US2017/054606 WO2018064628A2 (en) 2016-10-01 2017-09-29 Systems, apparatuses, and methods for platform security

Publications (1)

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

Family

ID=61759086

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005005.7T Withdrawn DE112017005005T5 (de) 2016-10-01 2017-09-29 Systeme, vorrichtungen, und verfahren zur plattformsicherheit

Country Status (4)

Country Link
US (1) US20180097839A1 (de)
CN (1) CN109565439A (de)
DE (1) DE112017005005T5 (de)
WO (1) WO2018064628A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MA40886B1 (fr) 2015-02-09 2020-03-31 Hetero Research Foundation Nouveau triterpénone en c-3 avec des dérivés d'amide inverse en c-28 en tant qu'inhibiteurs du vih
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
US11023258B2 (en) * 2016-12-30 2021-06-01 Intel Corporation Self-morphing server platforms
US10997296B2 (en) * 2017-03-22 2021-05-04 Oracle International Corporation System and method for restoration of a trusted system firmware state
US11314867B2 (en) * 2020-03-26 2022-04-26 Hewlett Packard Enterprise Development Lp Determinations of compromise of controller code images
US11829248B2 (en) * 2021-09-23 2023-11-28 Dell Products L.P. Firmware recovery by image transfusion

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818572B2 (en) * 2003-12-09 2010-10-19 Dominic Kotab Security system and method
US9418263B2 (en) * 2005-12-09 2016-08-16 Tego, Inc. Operating systems for an RFID tag
KR100785810B1 (ko) * 2006-12-05 2007-12-13 한국전자통신연구원 Rfid 데이터 보호 장치 및 방법
KR100931507B1 (ko) * 2007-12-11 2009-12-11 한국전자통신연구원 Rfid 시스템에서 대칭키 암호화 기반 통신 데이터 보호방법과 이를 수행하기 위한 리더 및 태그
US8503679B2 (en) * 2008-01-23 2013-08-06 The Boeing Company Short message encryption
US20110291803A1 (en) * 2010-05-27 2011-12-01 Zeljko Bajic Rfid security and mobility architecture
US9331855B2 (en) * 2011-07-01 2016-05-03 Intel Corporation Apparatus, system, and method for providing attribute identity control associated with a processor
US8826092B2 (en) * 2011-10-25 2014-09-02 International Business Machines Corporation Characterization and validation of processor links
US9407636B2 (en) * 2014-05-19 2016-08-02 Intel Corporation Method and apparatus for securely saving and restoring the state of a computing platform
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
KR20170016205A (ko) * 2015-08-03 2017-02-13 삼성전자주식회사 노화 수준에 기초하여 환경 파라미터의 값을 변경하는 스토리지 장치, 및 그것을 관리하기 위한 방법
US11831654B2 (en) * 2015-12-22 2023-11-28 Mcafee, Llc Secure over-the-air updates
US10419421B2 (en) * 2016-08-11 2019-09-17 Big Switch Networks, Inc. Systems and methods to securely construct a network fabric

Also Published As

Publication number Publication date
CN109565439A (zh) 2019-04-02
WO2018064628A3 (en) 2018-07-26
WO2018064628A2 (en) 2018-04-05
US20180097839A1 (en) 2018-04-05

Similar Documents

Publication Publication Date Title
DE112017005005T5 (de) Systeme, vorrichtungen, und verfahren zur plattformsicherheit
DE202019005671U1 (de) Koexistenz von Vertrauensdomänenarchitektur mitMehrschlüssel-Gesamtspeicherverschlüsselungstechnologieauf Servern
US11392703B2 (en) Systems, apparatuses, and methods for platform security
DE102019109088A1 (de) Schutz von schlüsseln und sensitiven daten gegen angriffe in einer mikroprozessorarchitektur
DE102018005180A1 (de) Flexible Bescheinigung von Containern
DE112017001766T5 (de) Power-side-channel-angriffsresistenter advanced-encryption-standard-beschleunigungsprozessor
DE202019005672U1 (de) System zum Verhindern eines unautorisierten Zugriffs auf verschlüsselten Speicher
DE102018126731A1 (de) Freigabeanweisung, um Seitenblock während des Auslagerns umzukehren
TWI436229B (zh) 用以提供安全開機架構之系統與方法
DE112017000677T5 (de) Prozessorerweiterungen zum Schutz von Stapeln während Ringübergängen
DE112010004885T5 (de) Bereitstellen von Integritätsüberprüfung und -bestätigung in einer verborgenen Ausführungsumgebung
DE102018125747A1 (de) Unterstützung für eine höhere anzahl von gleichzeitigenschlüsseln in einer kryptografie-engine mit mehrerenschlüsseln
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE112013005431T5 (de) Sichere Schlüsselableitungs- und Kryptografielogik für integrierte Schaltungen
DE102018005101A1 (de) Feld-Systemtest-Sicherheit
DE102018004786A1 (de) Verfahren und Vorrichtung zum sicheren Binden eines ersten Prozessors an einen zweiten Prozessor
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE102019126125A1 (de) System, vorrichtung und verfahren zum integritätsschutz von kunden-arbeitslasten in einer mehrkunden-datenverarbeitungsumgebung
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE102019128261A1 (de) Datenfreigabesteuerung auf der Basis von Authentifizierung und Verbindungsstreckenschutz
DE202017007430U1 (de) Erkennen von Bussperrbedingungen und Vermeiden von Bussperren
DE102014003705A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE102019109845A1 (de) Vereinheitlichte Beschleunigung eines Blockgeheimcodes eines symmetrischen Schlüssels für AES-SMS4-Camellia
DE102020126293A1 (de) Vorrichtungen, verfahren und systeme für anweisungen für kryptografisch an daten gebundene nutzungsbeschränkungen
DE102018004290A1 (de) Kryptographischer Speicherschutz mit Mehrfachschlüssel

Legal Events

Date Code Title Description
R083 Amendment of/additions to inventor(s)
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee