DE102022124386A1 - Verfahren und vorrichtungen, um den netzwerkverkehr auszurichten und den leistungsverbrauch zu verbessern - Google Patents

Verfahren und vorrichtungen, um den netzwerkverkehr auszurichten und den leistungsverbrauch zu verbessern Download PDF

Info

Publication number
DE102022124386A1
DE102022124386A1 DE102022124386.9A DE102022124386A DE102022124386A1 DE 102022124386 A1 DE102022124386 A1 DE 102022124386A1 DE 102022124386 A DE102022124386 A DE 102022124386A DE 102022124386 A1 DE102022124386 A1 DE 102022124386A1
Authority
DE
Germany
Prior art keywords
network
workload
circuitry
controller
die
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022124386.9A
Other languages
English (en)
Inventor
Venkateshan Udhayan
Sravan Akepati
Shahrnaz Azizi
Ajay Gupta
Binu John
Bharath Prabhu Perdoor
Leor Rom
Ashraf H Wadaa
Alexander W. Min
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 DE102022124386A1 publication Critical patent/DE102022124386A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0212Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
    • H04W52/0216Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave using a pre-established activity schedule, e.g. traffic indication frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0274Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof
    • H04W52/028Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level by switching on or off the equipment or parts thereof switching on or off only a part of the equipment circuit blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Power Sources (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Es werden Verfahren, Vorrichtungen, Systeme und Fertigungsartikel offenbart, um den Netzwerkverkehr auszurichten und den Leistungsverbrauch zu verbessern. Beispielhafte Anweisungen veranlassen einen oder mehrere Prozessoren, eine Arbeitslast auf der Grundlage von Netzwerkpaketen zu klassifizieren, die über eine drahtlose Kommunikation erhalten werden; Heuristiken von Plattformaktivitäten zu bestimmen, die der Arbeitslast entsprechen; und Netzwerk-Interrupte auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken zu planen.

Description

  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung bezieht sich allgemein auf Rechenplattformen und Netzwerkvorrichtungen und insbesondere auf Verfahren und Vorrichtungen (apparatus), um den Netzwerkverkehr auszurichten und den Leistungsverbrauch zu verbessern.
  • HINTERGRUND
  • Viele Standorte stellen Wi-Fi bereit, um Wi-Fi-fähige Vorrichtungen (devices) mit Netzwerken wie beispielsweise dem Internet zu verbinden. Wi-Fi-fähige Vorrichtungen umfassen Personal Computer, Videospielkonsolen, Mobiltelefone, Digitalkameras, Tablets, intelligente Fernsehgeräte, digitale Audiospieler usw. Wi-Fi erlaubt es den Wi-Fi-fähigen Vorrichtungen, über ein drahtloses lokales Netzwerk (WLAN; wireless local area network) drahtlos auf das Internet zuzugreifen. Um eine Wi-Fi-Anschlussfähigkeit an eine Vorrichtung bereitzustellen, tauscht ein Wi-Fi-Zugriffspunkt Radiofrequenz-Wi-Fi-Signale mit der Wi-Fi-fähigen Vorrichtung innerhalb des Zugriffspunkt- (z. B. ein Hotspot) Signalbereichs aus. Wi-Fi wird unter Verwendung eines Satzes von Media Access Control- (MAC-) und Physical Layer- (PHY-) Spezifikationen (z. B. des Institute of Electrical and Electronics Engineers (IEEE) 802.11-Protokolls) implementiert.
  • Figurenliste
    • 1 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtungsplattform, die in einem drahtlosen Netzwerksystem arbeitet.
    • 2 ist ein Blockdiagramm der beispielhaften Rechenvorrichtungsplattform von 1.
    • 3 ist ein Blockdiagramm eines beispielhaften Modems der beispielhaften Rechenvorrichtungsplattform von 2.
    • 4 ist ein Blockdiagramm einer beispielhaften Trainingssteuerung des beispielhaften Modems von 3.
    • 5 ist ein Blockdiagramm einer beispielhaften Leistungsmanagement-Steuerung von 2.
    • 6 und 7 sind Flussdiagramme, die repräsentativ sind für maschinenlesbare Anweisungen, die ausgeführt werden können, um die beispielhafte Trainingssteuerung von 4 zu implementieren, um ein Modell zu trainieren, um Netzwerkdatenpakete in Arbeitslastkategorien zu klassifizieren.
    • 8 ist ein Flussdiagramm, das repräsentativ ist für maschinenlesbare Anweisungen, die ausgeführt werden können, um das beispielhafte Modem der 2-3 zur Klassifizierung von Arbeitslasttypen in Echtzeit zu implementieren.
    • 9 und 10 sind Flussdiagramme, die repräsentativ sind für maschinenlesbare Anweisungen, die ausgeführt werden können, um die beispielhafte Leistungsmanagement-Steuerung von 5 zu implementieren, um Netzwerk-Interrupte mit Hardware-Schlafplänen abzustimmen.
    • 11 zeigt beispielhafte Zeitgebungsdiagramme, die die Leistungseinsparungen unter Verwendung der hierin offenbarten Beispiele veranschaulichen.
    • 12 ist ein Blockdiagramm einer beispielhaften Verarbeitungsplattform, die so strukturiert ist, dass sie die Anweisungen der 6-10 ausführt, um die beispielhafte Rechenvorrichtungsplattform von 1 zu implementieren.
    • 13 ist ein Blockdiagramm einer beispielhaften Implementierung der Prozessorschaltungsanordnung von 12.
    • 14 ist ein Blockdiagramm einer anderen beispielhaften Implementierung der Prozessorschaltungsanordnung von 12.
    • 15 ist ein Blockdiagramm einer beispielhaften Software-Vertriebsplattform (z. B. ein oder mehrere Server) für den Vertrieb von Software (z. B. Software, die den beispielhaften maschinenlesbaren Anweisungen der 6-10 entspricht) an Client-Vorrichtungen, zugeordnet zu End-Benutzern und/oder Verbrauchern (z. B. zur Lizenzierung, zum Verkauf und/oder zur Nutzung), Einzelhändlern (z. B. zum Verkauf, Wiederverkauf, zur Lizenzierung und/oder zur Unterlizenzierung) und/oder Originalausrüstungsherstellern (OEMs; original equipment manufacturers) (z. B. zur Aufnahme in Produkte, die z. B. an Einzelhändler und/oder an andere End-Benutzer wie beispielsweise Direktkaufkunden vertrieben werden sollen).
  • Die Figuren sind nicht maßstabsgetreu. Allgemein können die gleichen Bezugszeichen überall in der/den Zeichnung(en) und der beiliegenden Beschreibung verwendet werden, um auf dieselben oder gleichen Teile Bezug zu nehmen.
  • Die Bezeichnungen „erste/r/s“, „zweite/r/s“, „dritte/r/s“ etc. werden hierin verwendet, wenn mehrere Elemente oder Komponenten identifiziert werden, auf die getrennt Bezug genommen werden kann. Sofern nicht anders angegeben ist oder basierend auf ihrem Verwendungskontext verstanden wird, sollen solche Bezeichnungen keine Bedeutung von Priorität, physischer Reihenfolge oder Anordnung in einer Liste oder zeitlicher Ordnung unterstellen, sondern werden lediglich als Kennzeichnungen (labels) verwendet, um auf mehrere Elemente oder Komponenten separat zu verweisen, um die offenbarten Beispiele leichter verständlich zu machen. Bei einigen Beispielen kann die Bezeichnung „erste/r/s“ verwendet werden, um auf ein Element in der detaillierten Beschreibung zu verweisen, während auf dasselbe Element in einem Anspruch mit einer unterschiedlichen Bezeichnung wie „zweite/r/s“ oder „dritte/r/s“ verwiesen werden kann. In solchen Fällen versteht es sich, dass solche Bezeichnungen lediglich der Einfachheit halber verwendet werden, um auf mehrere Elemente oder Komponenten zu verweisen.
  • DETAILLIERTE BESCHREIBUNG
  • Drahtlose Netzwerke senden und empfangen Informationen unter Verwendung variierender Techniken. Beispielsweise sind zwei gängige und weithin angenommene Techniken, die für die drahtlose Kommunikation verwendet werden, jene, die die Institute for Electronic and Electrical Engineers (IEEE) 802.11-Standards wie beispielsweise den IEEE 802.11n-Standard und den IEEE 802.11 ac-Standard einhalten.
  • Die IEEE 802.11-Standards spezifizieren eine gemeinsame Medium Access Control (MAC) Layer, die eine Vielzahl von Funktionen zur Unterstützung des Betriebs von IEEE 802.11-basierten drahtlosen LANs (WLANs) bereitstellt. Die MAC Layer managt und unterhält die Kommunikationen zwischen IEEE 802.11-Stationen, z. B. zwischen einem Modem (z. B. Funk-Netzwerkschnittstellenkarten (NIC; network interface cards) in einem PC, (einer) anderen drahtlosen Vorrichtung(en) oder Stationen (STA; stations)) und Zugriffspunkten (APs; access points), indem sie den Zugriff auf einen gemeinschaftlich verwendeten Funkkanal koordiniert und Protokolle verwendet, die die Kommunikationen über ein drahtloses Medium verbessern.
  • Das Mobile-Plattform-Leistungsmanagement ist nützlich für batteriebetriebene Plattformen mit kleinem Formfaktor wie beispielsweise Smartphones, Tablets sowie tragbare und IoT-Vorrichtungen. Die meisten Mobile-Plattform-Arbeitslasten sind kommunikationsgesteuert und das Modem (z. B. die drahtlose Funk-NIC) ist häufig eine der Hauptquellen des Leistungsverbrauchs der Plattform. Angesichts der ständigen Nachfrage nach einer Verlängerung der Batterielebensdauer von Client-Plattformen (mobile Plattformen, nichtmobile Plattformen usw.) und der Definition neuer Leistungskennzahlen (KPIs; key performance indicators) für Latenzzeit und Ansprechempfindlichkeit über drahtlose Links (z. B. ein Drahtlose-Verteilung-Verfahren, das eine Verbindung zwischen dem Internet und der Client-Plattform über einen Zugriffspunkt (AP) bereitstellt) besteht ein steigender Bedarf an einer Verringerung des Gesamtplattformleistungsverbrauchs, ohne die Benutzererfahrung zu beeinträchtigen.
  • Ein Modem ist eine Hardwarevorrichtung, die Daten in ein für ein Übertragungsmedium geeignetes Format umwandelt, so dass die Daten von einem Rechensystem zu einem anderen übertragen werden können. In den letzten Jahren wurden Modems auf Plattformen von persönlichen Rechenvorrichtungen wie beispielsweise Laptops, Tablets, Mobiltelefonen usw. integriert, um die Datenübertragung und die Datenverbindung zwischen den persönlichen Rechenvorrichtungen und einem Netzwerk zu ermöglichen. Beispielsweise wandeln Modems Daten von einem Netzwerk (z. B. von einem AP) in eine Form um, die Prozessoren der persönlichen Rechenvorrichtung verstehen können, und senden die Daten dann an einen Speicher, auf den die Prozessoren zugreifen. Die Entwickler der integrierten Plattformen haben Hardware- und Softwaremerkmale entworfen und hergestellt, die es einer solchen integrierten Plattform ermöglichen, Daten effizient zu und von einem Netzwerk und der Hauptverarbeitungskomponente (z. B. zentrale Verarbeitungseinheit, Beschleuniger usw.) zu bewegen. Solche Merkmale können ein Kommunikations- und/oder Koordinierungssystem zwischen der Hauptverarbeitungskomponente und dem Modem ermöglichen, bei dem das Modem bestimmte Zeiten koordinieren kann, um Daten an den Speicher zu senden, auf den die Hauptverarbeitungseinheit zugreift.
  • Bei einigen Beispielen ermöglicht die Koordinierung zwischen der Hauptverarbeitungskomponente und einer Netzwerkschnittstellensteuerung (NIC; network interface controller) die Leistungseinsparung, indem die Hauptverarbeitungskomponente in die Lage versetzt wird, in Niedrigleistungszuständen zu arbeiten, wenn der Netzwerkverkehr im Leerlauf (idle) ist.
  • Beispielsweise ist es wünschenswert, die CPU und/oder andere Hardware für den Betrieb im Schlafmodus zu planen, wenn der Netzwerkverkehr im Leerlauf ist. Bei einigen Verarbeitungssystemen kennt/kennen die Hauptverarbeitungskomponenten und/oder die NIC jedoch nicht die Netzwerkprotokolle, die den von der NIC verarbeiteten Daten entsprechen. Dementsprechend weiß die CPU nicht, wann Netzwerk-Interrupte von der NIC empfangen werden, und kann den Schlafmodus nicht auf der Grundlage des Netzwerkverkehrs planen. Bei solchen Verarbeitungssystemen plant das Hauptverarbeitungselement den Schlafmodus für Hardwarekomponenten (z. B. Speicher, Anzeige usw.) daher zufällig im Hinblick auf die Netzwerkaktivität und der Schlafmodus wird unterbrochen, wenn ein Netzwerk-Interrupt an der NIC erhalten wird. Wenn das Netzwerk-Wecken nicht mit dem Rest der Systemaktivitäten (z. B. CPU, Anzeige, Speicher usw.) abgestimmt wird, sind die Schlafmodi des Rechensystems kürzer, was zu einem höheren Leistungsverbrauch und/oder weniger Batterielebensdauer führt. Bei den hierin offenbarten Beispielen werden Netzwerk-Weck-Interrupte mit dem Rest der Rechenvorrichtungsaktivität abgestimmt, um den Rechenvorrichtungsleerlauf zu erhöhen, die Leistungseinsparungen zu erhöhen und/oder die Batterielebensdauer zu erhöhen.
  • Um zu bestimmen, wann Netzwerk-Interrupte geplant sind, klassifizieren die hierin offenbarten Beispiele zuerst Netzwerk-Arbeitslasten (z. B. bestimmen Arbeitslasttypen) mit einem KIbasierten Modell (z. B. einem maschinellen Lernmodell, einem Deep-Learning-Modell, einem neuronalen Netzwerk). Die hierin offenbarten Beispiele trainieren ein Modell zur Klassifizierung von Netzwerkdatenpaketen in eine Arbeitslastkategorie (z. B. einen Arbeitslasttyp). Die hierin offenbarten Beispiele umfassen ein(e) Modem/NIC, das/die, wenn es/sie aktiv ist, den Typ der eingehenden Netzwerkdatenpakete herleitet und den Arbeitslasttyp auf der Grundlage des Typs der Netzwerkdatenpakete klassifiziert.
  • Nachdem der Arbeitslastyp bestimmt wurde (z. B. identifiziert, klassifiziert usw.), bestimmen die hierin offenbarten Beispiele das entsprechende Protokoll für den identifizierten Arbeitslasttyp, um zu bestimmen, wann Netzwerk-Interrupte und/oder Netzwerkaktivität an der NIC auftreten werden. Nachdem das Protokoll bestimmt wurde, stimmen die hierin offenbarten Beispiele die Netzwerk-Interrupte mit dem Hardware-Schlafplan und den Aufweck-Interrupten ab (z. B., um die Netzwerk-Interrupte mit Zeitdauern abzustimmen, wenn die Hardware wach ist). Unter Verwendung der hierin offenbarten Beispiele können Rechensysteme 5 % Leistungseinsparungen in Bezug auf das Streaming von Video, 12-20 % Leistungseinsparungen in Bezug auf Sprachanrufe und 8-10 % Leistungseinsparungen in Bezug auf Videokonferenzen realisieren.
  • Die hierin offenbarten Beispiele implementieren künstliche Intelligenz zur Klassifizierung von Arbeitslasttypen auf der Grundlage von erhaltenen Netzwerkdaten, die es einem Prozessor ermöglichen, den Netzwerkverkehr mit dem Schlafplan für Hardware abzustimmen. Künstliche Intelligenz (KI), umfassend maschinelles Lernen (ML; machine learning), Deep Learning (DL) und/oder andere künstliche maschinengesteuerte Logik, ermöglicht es Maschinen (z. B. Systemen, Computern, Logikschaltungen usw.), ein Modell zur Verarbeitung von Eingangsdaten zu verwenden, um eine Ausgabe auf der Grundlage von Mustern und/oder Assoziationen zu erzeugen, die zuvor durch das Modell über einen Trainingsprozess gelernt wurden. Zum Beispiel kann das Modell mit Daten trainiert werden, um Muster und/oder Assoziationen zu erkennen und solchen Mustern und/oder Assoziationen bei der Verarbeitung von Eingangsdaten zu folgen, derart, dass (eine) andere Eingabe(n) zu (einer) Ausgabe(n) führen, die mit den erkannten Mustern und/oder Assoziationen übereinstimmen.
  • Es gibt viele unterschiedliche Typen von maschinellen Lernmodellen und/oder maschinellen Lernarchitekturen. Bei den hierin offenbarten Beispielen wird ein Neuronales-Netzwerk-Modell verwendet. Die Verwendung eines Neuronales-Netzwerk-Modells ermöglicht die Klassifizierung von Netzwerkdatenpaketen auf der Grundlage ihrer Paketmerkmale, wie beispielsweise Länge (z. B. Anzahl der Pakete, die demselben Arbeitslastfluss entsprechen), Zwischenankunftszeit (inter-arrival time), Quelle, Ziel, usw. Im Allgemeinen handelt es sich bei den maschinellen Lernmodellen/-architekturen, die sich für die Verwendung bei den hierin offenbarten Beispielen eignen, um rekurrente neuronale Netzwerke (RNN; Recurrent Neural Networks). Es könnten jedoch andere Typen von maschinellen Lernmodellen zusätzlich oder alternativ verwendet werden, wie z. B. Long/Short Term Memory- (LSTM-) Modelle, Radiale-Basis-Modelle, selbstorganisierende Kohonen-Modelle usw.
  • Im Allgemeinen umfasst die Implementierung eines ML/KI-Systems mindestens zwei Phasen, eine Lern-/Trainingsphase und eine Inferenzphase. In der Lern-/Trainingsphase wird ein Trainingsalgorithmus verwendet, um ein Modell so zu trainieren, dass es in Übereinstimmung mit Mustern und/oder Assoziationen arbeitet, die beispielsweise auf Trainingsdaten basieren. Im Allgemeinen umfasst das Modell interne Parameter, die leiten, wie Eingangsdaten in Ausgangsdaten umgewandelt werden, z. B. durch eine Reihe von Knoten und Verbindungen innerhalb des Modells, um Eingangsdaten in Ausgangsdaten umzuwandeln. Zusätzlich werden Hyperparameter als Teil des Trainingsprozesses verwendet, um zu steuern, wie das Lernen durchgeführt wird (z. B. eine Lernrate, eine Anzahl von Schichten, die in dem maschinellen Lernmodell verwendet werden sollen, usw.). Hyperparametern werden als Trainingsparameter definiert, die vor der Initiierung des Trainingsprozesses bestimmt werden.
  • Auf der Grundlage der Typs des MLIKI-Modells und/oder der erwarteten Ausgabe können unterschiedliche Typen von Trainings durchgeführt werden. Beispielsweise werden beim überwachten Training Eingaben und entsprechende erwartete (z. B. gekennzeichnete) Ausgaben verwendet, um Parameter für das MLIKI-Modell auszuwählen (z. B. durch Iteration über Kombinationen ausgewählter Parameter), die den Modellfehler verringern. Der Begriff kennzeichnen (labelling) bezieht sich nach hiesigem Gebrauch auf eine erwartete Ausgabe des maschinellen Lernmodells (z. B. eine Klassifizierung, ein erwarteter Ausgabewert usw.). Alternativ dazu umfasst das unüberwachte Training (z. B. verwendet beim Deep Learning, einer Teilmenge des maschinellen Lernens usw.) die Herleitung von Mustern aus Eingaben, um Parameter für das MLIKI-Modell auszuwählen (z. B. ohne den Vorteil erwarteter (z. B. gekennzeichneter) Ausgaben).
  • Bei den hierin offenbarten Beispielen werden ML/KI-Modelle unter Verwendung von stochastischen Gradientenabstieg trainiert. Es kann jedoch irgendein anderer Trainingsalgorithmus zusätzlich oder alternativ verwendet werden. Bei den hierin offenbarten Beispielen wird das Training durchgeführt, bis eine akzeptable Fehlerquote (amount of error) bei der Vorhersage und Klassifizierung von Netzwerkdatenpaketen erreicht ist. Bei den hierin offenbarten Beispielen wird das Training an der Rechenvorrichtung (z. B. lokal) durchgeführt. Bei einigen Beispielen wird das Training aus der Ferne durchgeführt (z. B. in einer zentralen Einrichtung). Das Training wird unter Verwendung von Hyperparametern durchgeführt, die steuern, wie das Lernen durchgeführt wird (z. B. eine Lernrate, eine Anzahl von Schichten, die in dem maschinellen Lernmodell zu verwenden sind, usw.). Bei den hierin offenbarten Beispielen werden Hyperparameter verwendet, die eine Anzahl von Paketmerkmalen und Paketen pro Netzwerkfluss steuern. Solche Hyperparameter werden beispielsweise auf der Grundlage der Rechenfähigkeiten der Rechenvorrichtung und/oder der zentralen Einrichtung und der Echtzeitanforderungen ausgewählt. Bei einigen Beispielen kann ein erneutes Training durchgeführt werden. Ein solches erneutes Training kann als Reaktion auf unbekannte Paketmerkmale, neue Arbeitslastkategorien usw. durchgeführt werden.
  • Das Training wird unter Verwendung von Trainingsdaten durchgeführt. Bei den hierin offenbarten Beispielen stammen die Trainingsdaten aus lokal erzeugten Daten. Da überwachtes Training verwendet wird, sind die Trainingsdaten gekennzeichnet. Die Kennzeichnung wird durch eine Vorverarbeit- (pre-process) Steuerung auf die Trainingsdaten angewendet. Bei einigen Beispielen werden die Trainingsdaten unter Verwendung von z. B. bekannten Merkmalen, die einen Arbeitslasttyp von Netzwerkdatenpaketen anzeigen, vorverarbeitet.
  • Nach Abschluss des Trainings wird das Modell zur Verwendung als ein ausführbares Konstrukt eingesetzt, das eine Eingabe verarbeitet und eine Ausgabe bereitstellt, auf der Grundlage des in dem Modell definierten Netzwerks von Knoten und Verbindungen. Das Modell ist an dem Modem der persönlichen Rechenvorrichtung gespeichert. Das Modell kann dann durch die Vorhersagesteuerung des Modems ausgeführt werden. Bei anderen Beispielen speichert eine Netzwerkschnittstellenkarte (NIC) das Modell an der persönlichen Rechenvorrichtung, wo der Host-Netzwerkstapel ausgeführt wird. Zusätzlich und/oder alternativ wird das Modell extern gespeichert, wenn das Modem nicht die Ressourcen (z. B. Rechenfähigkeiten) zur Ausführung eines solchen Modells aufweist.
  • Nach dem Training kann das eingesetzte Modell in einer Inferenzphase zur Datenverarbeitung betrieben werden. In der Inferenzphase werden die zu analysierenden Daten (z. B. Live-Daten) in das Modell eingegeben und das Modell wird ausgeführt, um eine Ausgabe zu erzeugen. Diese Inferenzphase kann man sich so vorstellen, dass die KI „denkt“, um die Ausgabe auf der Grundlage dessen zu erzeugen, was sie beim Training gelernt hat (z. B. durch Ausführung des Modells, um die gelernten Muster der Live-Daten anzuwenden). Bei einigen Beispielen werden die Eingangsdaten einer Vorverarbeitung unterzogen, bevor sie als eine Eingabe für das maschinelle Lernmodell verwendet werden. Darüber hinaus können die Ausgangsdaten bei einigen Beispielen, nachdem sie durch das KI-Modell erzeugt wurden, einer Nachbearbeitung unterzogen werden, um die Ausgabe in ein nützliches Ergebnis umzuwandeln (z. B. eine Anzeige von Daten, eine Anweisung, die von einer Maschine ausgeführt werden soll, usw.). Beispielsweise kann eine Arbeitslast als Echtzeit- oder Nichtechtzeit- klassifiziert werden, wobei die Echtzeit-Arbeitslast weiter als ein Typ von Echtzeit- (z. B. Nur-Audio-, Audio-Video-, Spiele- usw.) Arbeitslast klassifiziert wird und die Nichtechtzeit-Arbeitslast weiter als ein Typ von Nichtechtzeit-Arbeitslast klassifiziert werden kann.
  • Bei einigen Beispielen kann die Ausgabe des eingesetzten Modells erfasst und als Rückmeldung bereitgestellt werden. Durch die Analyse der Rückmeldung kann eine Genauigkeit des eingesetzten Modells bestimmt werden. Wenn die Rückmeldung anzeigt, dass die Genauigkeit des eingesetzten Modells unter einem Schwellenwert oder einem anderen Kriterium liegt, kann das Training eines aktualisierten Modells unter Verwendung der Rückmeldung und eines aktualisierten Trainingsdatensatzes, von Hyperparametern usw. getriggert werden, um ein aktualisiertes, eingesetztes Modell zu erzeugen.
  • 1 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtungsplattform 100, die in einem drahtlosen Netzwerksystem arbeitet. Das beispielhafte drahtlose Netzwerksystem von 1 umfasst die beispielhafte Rechenvorrichtungsplattform 100, ein beispielhaftes Netzwerk 102 und eine beispielhafte drahtlose Netzwerkvorrichtung 104.
  • In 1 ist die beispielhafte Rechenvorrichtungsplattform 100 hardware- und/oder softwareimplementiert zur Ausführung von Arbeitslasten, wie z. B. Anwendungen, Programmen, Prozessen usw., an einer Rechenvorrichtung. Die beispielhafte Rechenvorrichtungsplattform 100 definiert einen Satz von Fähigkeiten der Rechenvorrichtung. Die Rechenvorrichtungsplattform 100 kann irgendeine Hardware-Rechenvorrichtung, z. B. ein Mobiltelefon, Laptop, Tablet, Desktop usw., irgendeine Betriebssystemplattform, irgendeine Client/Server-Plattform, z. B. ein Webserver, irgendeine mobile Plattform, z. B. eine mobile Anwendungsplattform, irgendeine Cloud-Plattform und/oder irgendeine andere geeignete Plattform für die Ausführung von Datenpaketen sein. Die beispielhafte Rechenvorrichtungsplattform 100 wird nachfolgend in Verbindung mit 2 detaillierter beschrieben.
  • In 1 ist das beispielhafte Netzwerk 102 das Internet. Das Netzwerk 102 kann jedoch unter Verwendung von irgendeinem/irgendwelchen geeigneten drahtgebundenen und/oder drahtlosen Netzwerk(en) implementiert werden, umfassend z. B. einen oder mehrere Datenbusse, ein oder mehrere lokale Netzwerke (LANs; Local Area Networks), ein oder mehrere drahtlose LANs (WLANs; wireless LANs), ein oder mehrere zellulare Netzwerke, ein oder mehrere private Netzwerke, ein oder mehrere öffentliche Netzwerke usw. Das beispielhafte Netzwerk 102 in Verbindung mit der beispielhaften drahtlosen Netzwerkvorrichtung 104 ermöglicht es der Rechenvorrichtungsplattform 100, Netzwerkinformationen zu senden und zu empfangen, die durch einen Benutzer der Rechenvorrichtungsplattform 100 angefordert werden.
  • In 1 umfasst das beispielhafte drahtlose Netzwerksystem die beispielhafte drahtlose Netzwerkvorrichtung 104, um der beispielhaften Rechenvorrichtungsplattform 100 die Verbindung mit dem beispielhaften Netzwerk 102 zu ermöglichen. In 1 ist die beispielhafte drahtlose Netzwerkvorrichtung 104 ein Zugriffspunkt (AP). Die beispielhafte drahtlose Netzwerkvorrichtung 104 kann jedoch irgendein anderer Typ von Hardware- und/oder Softwarevorrichtung sein, die die beispielhafte Rechenvorrichtungsplattform 100 mit dem beispielhaften Netzwerk 102 verbindet. Die beispielhafte drahtlose Netzwerkvorrichtung 104 kann mehrere Rechenvorrichtungsplattformen bedienen. Beispielsweise kann die drahtlose Netzwerkvorrichtung 104 irgendeine Anzahl von Client-Plattformen, wie beispielsweise Mobiltelefonen, Laptops, Tablets usw., mit dem Netzwerk 102 verbinden, um Internetdaten und/oder Netzwerkdaten zu empfangen. Bei einigen Beispielen kommuniziert und/oder leitet die drahtlose Netzwerkvorrichtung 104 Internet- und/oder Netzwerkdaten an die Rechenvorrichtungsplattform 100 weiter, wenn die Rechenvorrichtungsplattform 100 eine Wi-Fi (802.11)-Verbindung mit der drahtlosen Netzwerkvorrichtung 104 herstellt. Üblicherweise ist die Wi-Fi-Verbindung zwischen der drahtlosen Netzwerkvorrichtung 104 und der Rechenvorrichtungsplattform 100 allgemeiner Natur und folgt dem 802.11-Protokoll (z. B. kennt die drahtlose Netzwerkvorrichtung 104 die Arbeitslast und die Benutzeranforderungen der Rechenvorrichtungsplattform 100 nicht und arbeitet wie üblich unter dem 802.11-Protokoll). Bei den hierin offenbarten Beispielen stellt die beispielhafte Rechenvorrichtungsplattform 100 jedoch eine Wi-Fi-Verbindung mit der beispielhaften drahtlosen Netzwerkvorrichtung 104 her und koordiniert die Zeitgebung der Netzwerkdatenabrufung und -übertragung auf der Grundlage von Arbeitslastanforderungen und Benutzeranforderungen. Obwohl sich 1 auf WI-FI bezieht, können die hierin offenbarten Beispiele in Verbindung mit anderen drahtlosen Kommunikationstechnologien, wie z. B. zellular, 5G, 6G usw., verwendet werden.
  • 2 ist ein Blockdiagramm der beispielhaften Rechenvorrichtungsplattform 100 von 1 für ein Abstimmen von Netzwerk-Interrupten mit Schlaf-/Weck-Plänen auf der Grundlage des Netzwerkverkehrs, der kategorisierten Arbeitslasttypen entspricht, um sicherzustellen, dass Netzwerk-Interrupte auftreten, während Hardwarekomponenten wach sind. Nach hiesigem Gebrauch sind Netzwerkverkehr, Netzwerkdaten, Netzwerkpaketdaten, eingehende Netzwerkdaten und Paketdaten Begriffe, die als von einem beispielhaften Netzwerk 102 empfangene Daten definiert sind, die so ausgebildet sind, dass sie in einem Speicher der Rechenvorrichtung 100 gespeichert sind und auf ihnen gearbeitet wird durch einen Prozessor, der auf dem beispielhaften Rechen-Die 206 implementiert ist, um eine Operation durchzuführen. Nach hiesigem Gebrauch sind Interrupt-Trigger, Interrupte und ein Interrupt-Trigger Begriffe, die als Ereignisse definiert sind, die erzeugt werden, um den Rechen-Die 206 und/oder einen beispielhaften Netzwerkschnittstellen-Chip (NIC; network interface chip) 200 zu veranlassen, eine oder mehrere Aktionen durchzuführen. Die beispielhafte Rechenvorrichtungsplattform 100 umfasst den beispielhaften NIC 200, einen beispielhaften Basis-Die 202, einen beispielhaften PCLe-Root-Port 204, den beispielhaften Rechen-Die 206, ein beispielhaftes OS 208, eine beispielhafte Leistungsmanagement-Steuerung (PMC; power management controller) 210, eine beispielhafte Speicher-Steuerung 212 und einen beispielhaften Speicher 214. Der Speicher 214 kann irgendein geeigneter Speicher sein, z. B. ein flüchtiger Direktzugriffsspeicher (RAM; random access memory), Cache-Speicher usw. Bei einigen Beispielen können die Komponenten von 2 in der beispielhaften drahtlosen Netzwerkvorrichtung 104 von 1 implementiert sein.
  • In 2 umfasst die beispielhafte Rechenvorrichtungsplattform 100 den beispielhaften NIC 200, um die Datenkommunikation zwischen dem beispielhaften Netzwerk 102 und dem beispielhaften Rechen-Die 206 zu vermitteln sowie den Datenaustausch zwischen dem beispielhaften NIC 200 und der beispielhaften drahtlosen Netzwerkvorrichtung 104 von 1 zu koordinieren. Der beispielhafte NIC 200 kann ein Modem sein und/oder umfassen. Der beispielhafte NIC 200 kann Netzwerkdaten in Informationen umwandeln, die durch den beispielhaften Rechen-Die 206 lesbar und ausführbar sind. Der beispielhafte NIC 200 kann die Typen der Netzwerkdaten (z. B. Arbeitslast- und Verkehrstyp), die empfangen werden, bestimmen und die Typen kommunizieren, um eine Koordinierung der hardwarebasierten Schlaf-Pläne mit dem Netzwerkverkehr entsprechend dem Typ der Netzwerkdaten zu ermöglichen. Zusätzlich und/oder alternativ kann der beispielhafte Rechen-Die 206 (z. B. umfassend eine CPU, ein FGPA usw.) die Typen der Netzwerkdaten, die empfangen werden, bestimmen und die Typen an den NIC 200 bereitstellen, zur Erzeugung von Latenzzeitnachrichten. Der beispielhafte NIC 200 kann Netzwerkdaten puffern, um es dem beispielhaften Rechen-Die 206 zu erlauben, in unterschiedliche C-Zustände überzugehen. Der beispielhafte NIC 200 kann Interrupte erzeugen, um den Speicher 214 und den Rechen-Die 206 zum Abrufen der Netzwerkdaten aufzuwecken. Der NIC 200 kann irgendeine geeignete Hardware- und/oder Softwareschnittstelle sein, die die Datenkommunikation (z. B. koordiniert das Puffern und Unterbrechen (interrupting)) zwischen der beispielhaften drahtlosen Netzwerkvorrichtung 104, dem beispielhaften NIC 200 und dem beispielhaften Rechen-Die 206 vermittelt. Der beispielhafte NIC 200 kann sich in unterschiedlichen Zuständen befinden, abhängig von den unterschiedlichen Zuständen der beispielhaften Rechenvorrichtungsplattform 100 (z. B. ein- oder ausgeschaltet). Wenn die beispielhafte Rechenvorrichtungsplattform 100 eingeschaltet ist, kann sich der beispielhafte NIC 200 in einem Schlaf-Zustand, einem Leerlauf-Zustand oder einem aktiven Zustand befinden. Die Zustände des beispielhaften NIC 200 hängen auch vom Netzwerkverkehr von der beispielhaften drahtlosen Netzwerkvorrichtung 104 und/oder allgemeiner von dem beispielhaften Netzwerk 102 ab. Beispielsweise ist der NIC 200 aktiv, wenn der NIC 200 Daten vom Netzwerk 102 empfängt, wenn der NIC 200 Daten an den Speicher 214 sendet, wenn der NIC 200 Daten über das Netzwerk 102 an eine andere Rechenvorrichtung sendet usw. Der beispielhafte NIC 200 befindet sich im Leerlauf, wenn der NIC 200 Daten aus dem beispielhaften Netzwerk 102 puffert, wenn der NIC 200 keine Netzwerkdaten zum Senden über die drahtlose Netzwerkvorrichtung 104 an das Netzwerk 102 umfasst, wenn der NIC 200 keine Netzwerkdaten zum Empfangen über die drahtlose Netzwerkvorrichtung 104 vom Netzwerk 102 aufweist usw. Der beispielhafte NIC 200 befindet sich in einem Schlaf-Zustand, wenn der beispielhafte NIC 200 keine Daten vom beispielhaften Netzwerk 102 und/oder vom beispielhaften Speicher 214 empfängt, wenn die beispielhafte Rechenvorrichtungsplattform 100 ausgeschaltet ist usw. Bei einigen Beispielen ist der Zustand des NIC 200 den C-Zuständen des Rechen-Dies 206 zugeordnet.
  • Bei einigen Beispielen ist der NIC 200 an einer Edge-Vorrichtung implementiert. Beispielsweise können Verarbeitungsaufgaben (z. B. die Funktionalität, Operationen usw.) des NIC 200 an eine Edge-Vorrichtung ausgelagert sein. Bei anderen Beispielen ist der NIC 200 an einer Cloud-Plattform implementiert. Beispielsweise können Verarbeitungsaufgaben des NIC 200 an einer Cloud-Plattform ausgelagert und/oder virtualisiert werden. Bei solchen Beispielen reduziert der NIC 200 den Verarbeitungsleistungsverbrauch, der an der Rechenvorrichtungsplattform 100 verbraucht wird, und die an der Rechenvorrichtungsplattform 100 laufenden (z. B. ausgeführten) Verarbeitungsaufgaben. Der beispielhafte NIC 200 wird nachfolgend in Verbindung mit den 3 und 4 detaillierter beschrieben.
  • In 2 umfasst die beispielhafte Rechenvorrichtungsplattform 100 einen Computerbus, der den beispielhaften NIC 200 mit der beispielhaften Speicher-Steuerung 212 und dem beispielhaften Rechen-Die 206 verbindet. Der Computerbus ermöglicht die Kommunikation zwischen dem NIC 200 und den anderen Vorrichtungen der beispielhaften Rechenvorrichtungsplattform 100. Beispielsweise erhält der Computerbus Benachrichtigungen, Nachrichten, Informationen, Daten usw. von dem NIC 200 und leitet die Daten zu den entsprechenden Hardwarekomponenten der Rechenvorrichtungsplattform 100. Bei einigen Beispielen ist der Computerbus in dem NIC 200 umfasst. Zusätzlich und/oder alternativ umfasst die beispielhafte Rechenvorrichtungsplattform 100 irgendeine Anzahl von Computerbussen zur Verbindung unterschiedlicher Hardwarekomponenten der Rechenvorrichtungsplattform 100. Der Computerbus ist eine Peripheral Component Interconnect Express (PCI-e)-Vorrichtung. Zusätzlich und/oder alternativ kann der Computerbus ein Accelerated Graphics Port (AGP), eine Peripheral Component Interconnect Extended (PCI-X)-Vorrichtung und/oder irgendein anderer geeigneter Bus für den beispielhaften Rechen-Die 206 sein. Auf diese Weise kann der NIC 200 VDM-Nachrichten (z. B. Seitenbandnachrichten) an den beispielhaften Basis-Die 202 weitergeben.
  • In 2 umfasst die beispielhafte Rechenvorrichtungsplattform 100 den beispielhaften Basis-Die 202, um den beispielhaften Speicher 214 und den beispielhaften Rechen-Die 206 über den beispielhaften PCLe-Root-Port 204 mit dem Computerbus zu verbinden. Der beispielhafte Basis-Die 202 erzeugt Transaktionsanfragen im Namen des beispielhaften Rechen-Dies 206, der über einen lokalen Bus (z. B. die Fabric Device Management Interface (FDMI)) verbunden (interconnected) ist. Der beispielhafte Basis-Die 202 kann eine Root-Komplex-Funktionalität sein und/oder umfassen, die als eine diskrete Vorrichtung implementiert oder mit dem beispielhaften Rechen-Die 206 integriert ist. Bei einigen Beispielen kann der Basis-Die 202 eine Host-Brücke sein, die eine Schnittstelle zwischen dem Host (z. B. dem Rechen-Die 206) mit dem Computerbus bildet.
  • In 2 umfasst die beispielhafte Rechenvorrichtungsplattform 100 den beispielhaften Rechen-Die 206 zur Implementierung eines oder mehrerer Prozessoren zur Durchführung einer Arbeitslastausführung von Netzwerkdaten. Der beispielhafte Rechen-Die 206 kann eine CPU, ein(en) FPGA, eine GPU, eine neuronale Verarbeitungseinheit (NPU; neural processing unit), ein(en) Beschleuniger und/oder irgendein(en) anderer/anderen Typ von Hardware zum Ausführen von Arbeitslasten sein und/oder umfassen. Der beispielhafte Rechen-Die 206 umfasst mehrere Leistungsmodi, die zusammen als „C-Zustände“ oder „C-Modi“ bezeichnet werden Die C-Zustände ermöglichen es dem beispielhaften Rechen-Die 206, in bestimmte Leistungsparmodi überzugehen. Beispielsweise zeigt ein erster C-Zustand (C0) an, dass der Rechen-Die 206 unter Verwendung voller Leistung arbeitet. Ein zweiter C-Zustand (C1) zeigt an, dass nur ein Abschnitt des beispielhaften Rechen-Dies 206 mit voller Leistung arbeitet, ein anderer Abschnitt jedoch ausgeschaltet ist (z. B. keine Leistung bereitgestellt bekommt). Ein dritter C-Zustand (C2) zeigt an, dass mehr als die Hälfte der Hardware im beispielhaften Rechen-Die 206 ausgeschaltet ist, aber ein kleinerer Abschnitt der Prozessorhardware noch arbeitet. Ein vierter C-Zustand (C3) zeigt an, dass sich der beispielhafte Rechen-Die 206 in einem Schlaf-Zustand befindet (z. B. ist die Hardware ausgeschaltet und die dem Rechen-Die 206 bereitgestellte Leistung ist reduziert). Bei einigen Beispielen geht der Rechen-Die 206 in unterschiedliche C-Zustände über, die unterschiedlichen, vorangehend nicht beschriebenen Leistungssparstufen (power saving levels) entsprechen. Wenn der beispielhafte Rechen-Die 206 in einen C-Zustand übergeht, der größer ist als der erste C-Zustand, wird der Leistungsverbrauch der beispielhaften Rechenvorrichtungsplattform 100 reduziert, wodurch Batterielebensdauer gespart wird. Wie nachfolgend weiter beschrieben, wird der beispielhafte Rechen-Die 206 über die Stufe des C-Zustands, in die er übergehen soll, und die Planung für den Übergang in den C-Zustand auf der Grundlage des Typs der Arbeitslasten, die der NIC 200 ausführt, informiert. Beispielsweise kann der NIC 200 Arbeitslasttypen bestimmen, um einen Typ einer Kommunikation und/oder ein Protokoll zu identifizieren (z. B. Videokonferenzen, Audiostreaming, Videostreaming (Y-ouTube, Netflix, HBO Max usw.) usw.). Als Reaktion auf die Bestimmung eines Arbeitslasttyps kommuniziert der NIC 200 den Arbeitslasttyp an die PMC 210 des Rechen-Dies 206 über den Basis-Die 202 unter Verwendung von Seitenbandnachrichten. Auf diese Weise kann die PMC 210 einen Netzwerk-Interrupt-Plan auf der Grundlage des Schlafplans und/oder von Heuristiken erzeugen, um die Netzwerk-Interrupte mit dem Hardware-Schlafplan auf der Grundlage des Arbeitslasttyps abzustimmen.
  • In 2 ist das beispielhafte OS 208 von 1 ein Softwaresystem, das den Rechen-Die 206 managt, zum Managen der Hardware der Rechenvorrichtung 100, Softwareressourcen und/oder stellt Server für Computerprogramme und/oder Anwendungen bereit.
  • In 2 erzeugt die beispielhafte PMC 210 einen Netzwerk-Interrupt-Plan für den Rechen-Die 206, die Speicher-Steuerung 212, den Speicher 214, den Basis-Die 202 und/oder den NIC 200 auf der Grundlage von Heuristiken von Plattformaktivitäten (auch als Heuristiken bezeichnet) (z. B. Anzeige-Wecken, thermische Informationen, Interrupte aus unterschiedlichen Quellen (z. B. einem OS, einer Anwendung usw.), während die Arbeitslast läuft), die dem erhaltenen Arbeitslasttyp entsprechen, um Netzwerk-Interrupts, die dem Netzwerkverkehr entsprechen, mit Aufweck-Interrupten für Hardwarekomponenten abzustimmen, die dem Arbeitslasttyp entsprechen. Zusätzlich bestimmt die PMC 210, wann der Übergang in den Schlafmodus aufgrund der Frequenz der an dem NIC 200 erhaltenen Daten möglicherweise nicht möglich ist. Beispielsweise können bestimmte Arbeitstypen so häufig Daten senden, dass nicht genügend Zeit bleibt, um irgendeine Hardwarekomponente zu veranlassen, in einen Schlafmodus überzugehen. Wenn die beispielhafte PMC 210 einen klassifizierten Arbeitslasttyp erhält, verwendet die PMC 210 eine Nachschlagtabelle zum Identifizieren der Heuristiken, die der Arbeitslast entsprechen, und ob der Arbeitslasttyp einem Schlafplan entspricht oder nicht. Wenn die Arbeitslast einem Schlafplan nicht entspricht, erzeugt die PMC 210 keinen Schlafplan für die Hardware. Wenn die Arbeitslast einem Schlafplan entspricht, bestimmt die PMC 210 den Netzwerk-Interrupt-Plan der Arbeitslast auf der Grundlage eines Schlafplans auf der Grundlage des Arbeitslasttyps. Beispielsweise kann eine erste Arbeitslast, die einem bestimmten Sprachanrufprotokoll (z. B. einem Teams-Anruf, einem Zoom-Anruf usw.) entspricht, dem Audioverkehr und/oder Netzwerk-Wecken entsprechen (z. B. 5 Millisekunden (ms) Netzwerkverkehr gefolgt von 15 ms Leerlaufzeit). Bei einem solchen Beispiel kann die PMC 210 die Netzwerk-Interrupte planen, um die 5 ms Verkehr zu handhaben, während die Hardware wach ist. Die beispielhafte PMC 210 wird nachfolgend in Verbindung mit 5 weiter beschrieben.
  • In 2 umfasst die beispielhafte Rechenvorrichtungsplattform 100 die beispielhafte Speicher-Steuerung 212 zum Speichern und Abrufen von Daten aus dem beispielhaften Speicher 214 auf der Grundlage von Anweisungen von dem beispielhaften Rechen-Die 206 und/oder dem beispielhaften NIC 200. Beispielsweise umfasst die Speicher-Steuerung 212 Logik, die eine Eingabe (z. B. Anweisungen) liest und die/den Datenspeicherung und -ausschluss auf der Grundlage der Eingabe managt. Bei einigen Beispielen weist der NIC 200 die Speicher-Steuerung 212 an, Netzwerkdaten an den Rechen-Die 206 zu geben, Kommunikationen mit dem Rechen-Die 206 anzuhalten usw.
  • 3 ist ein Blockdiagramm des beispielhaften NIC 200 von 2. Der beispielhafte NIC 200 umfasst eine beispielhafte Netzwerkpaketsteuerung 302, eine beispielhafte Trainingssteuerung 304, eine beispielhafte Vorhersagesteuerung 306 und eine beispielhafte Aktivstatussteuerung 308. Die gestrichelten Flusslinien stellen die Trainingsphase dar, in der ein Modell zur Vorhersage der Arbeitslasttypen auf der Grundlage der Netzwerkdatenpakete trainiert wird. Beispielsweise treten die von der Netzwerkpaketsteuerung 302 und der Trainingssteuerung 304 durchgeführten Operationen in einer Lern- und/oder Trainingsphase der Rechenvorrichtungsplattform 100 auf. Die durchgezogenen Flusslinien stellen die Inferenzphase zur Vorhersage der Arbeitslasttypen auf der Grundlage des trainierten Modells dar. Beispielsweise treten die von der Netzwerkpaketsteuerung 302 und der Aktivstatussteuerung 308 durchgeführten Operationen in einer Herleitungs- und/oder Vorhersagephase auf. Es versteht sich, dass die im Folgenden in Verbindung mit dem beispielhaften NIC 200 beschriebenen Operationen auch in Verbindung mit dem beispielhaften Rechen-Die 206 von 2 durchgeführt werden können. Beispielsweise kann der Rechen-Die 206 die beispielhafte Netzwerkpaketsteuerung 302, die beispielhafte Trainingssteuerung 304, die beispielhafte Vorhersagesteuerung 306 und die beispielhafte Aktivstatussteuerung 308 umfassen. Bei einem solchen Beispiel umfasst ein Modem und/oder NIC, wie z. B. der NIC 200, möglicherweise nicht die Verarbeitungsfähigkeiten und/oder Hardware, um die nachfolgend beschriebenen Operationen auszuführen, und daher führt der Rechen-Die 206 (z. B. ein(e) CPU, FPGA, GPU, NPU und/oder irgendein anderer Typ von Beschleuniger) die Operationen des Trainings eines Modells, der Herleitung der Arbeitslast und der Verkehrstypen der Netzwerkdatenpakete und der Kommunikation der Pufferzeiten mit der drahtlosen Netzwerkvorrichtung 104 neben anderen Operationen durch.
  • In 3 umfasst der beispielhafte NIC 200 die beispielhafte Netzwerkpaketsteuerung 302, um die Netzwerkdatenpaketflüsse zu steuern, die von der beispielhaften drahtlosen Netzwerkvorrichtung 104 eingehen. Ein Netzwerkdatenpaket ist eine formatierte Einheit von Daten, getragen durch die drahtlose Netzwerkvorrichtung 104, die aus einer Nutzlast (z. B. Steuerinformationen und Benutzerdaten) und fünf Tupeln besteht: einer Quelladresse, einem Quellport, einer Zieladresse, einem Zielport und einem Protokoll. Beispielsweise umfasst das Netzwerkdatenpaket ein ähnliches Format wie der AP-Datenrahmen (data frame) 110 von 1, wobei die Nutzlast der Rahmenkörper ist und die fünf Tupel ein Media Access Controller- (MAC-) Header sind. Die beispielhafte Netzwerkpaketsteuerung 302 kann Netzwerkdatenpakete, die zu unterschiedlichen Tupeln gehören, identifizieren und/oder trennen. Beispielsweise sammelt die Netzwerkpaketsteuerung 302 Netzwerkdatenpakete, die unterschiedlichen Arbeitslasten entsprechen können (z. B. können auf der Rechenvorrichtungsplattform gleichzeitig eine E-Mail-Anwendung und ein Konferenzanruf laufen). Die beispielhafte Netzwerkpaketsteuerung 302 kann die unterschiedlichen Netzwerkdatenpakete auf der Grundlage der fünf Tupel (z. B. des MAC-Headers) identifizieren, wobei, wenn ein erstes Netzwerkdatenpaket und ein zweites Netzwerkdatenpaket übereinstimmende (matching) Tupel aufweisen, die Netzwerkdatenpakete derselben Arbeitslast entsprechen. Die beispielhafte Netzwerkpaketsteuerung 302 arbeitet in einem Trainingsmodus oder einem Inferenzmodus. Im Trainingsmodus beispielsweise gibt die Netzwerkpaketsteuerung 302 die Netzwerkdatenpakete an die Trainingssteuerung 304 weiter. Bei anderen Beispielen gibt die Netzwerkpaketsteuerung 302 im Inferenzmodus die Netzwerkdatenpakete an die Vorhersagesteuerung 306 weiter (z. B. über die Aktivstatussteuerung 308 oder andere Mittel der drahtlosen und/oder drahtgebundenen Kommunikation). Die beispielhafte Netzwerkpaketsteuerung 302 von 3 kann Mittel zur Steuerung implementieren. Das Steuermittel ist eine Hardware umfassend mindestens einen Prozessor.
  • In 3 umfasst der beispielhafte NIC 200 die beispielhafte Trainingssteuerung 304 zum Trainieren eines Modells zur Klassifizierung von Netzwerkdatenpaketen in eine Arbeitslasttypkategorie. Die beispielhafte Trainingssteuerung 304 erhält Netzwerkdatenpakete von der beispielhaften Netzwerkpaketsteuerung 302 und verarbeitet die Netzwerkdatenpakete in Abtastwerte mit zugewiesenen Kennzeichnungen vor, wobei sich die Abtastwerte auf einen einzelnen Netzwerkfluss (z. B. eine Arbeitslast) beziehen und mehrere Paketmerkmale umfassen. Die beispielhafte Trainingssteuerung 304 gibt die Abtastwerte in ein beispielhaftes neuronales Netzwerk ein, um es dem Modell zu ermöglichen, über die Merkmale der Abtastwerte und der zugewiesenen Kennzeichnungen zu lernen, welchem Typ von Arbeitslast das Netzwerkdatenpaket entspricht. Beispielsweise klassifiziert die Trainingssteuerung 304 Netzwerkdatenpakete in eine Videokategorie, eine Spielkategorie, eine Audiokategorie, eine Streaming-Kategorie, eine Stapel- (batch) Kategorie, eine Analysekategorie und/oder eine Transaktionskategorie. Zusätzlich kann die beispielhafte Trainingssteuerung 304 mehr Kategorien als die vorangehend aufgeführten umfassen. Nach dem Training erzeugt und veröffentlicht die beispielhafte Trainingssteuerung 304 das trainierte Modell und stellt das Modell an die beispielhafte Vorhersagesteuerung 306 bereit. Die beispielhafte Trainingssteuerung 304 wird nachfolgend in Verbindung mit 4 detaillierter beschrieben. Die beispielhafte Trainingssteuerung 304 von 3 kann Mittel zur Erzeugung implementieren. Das Erzeugungsmittel ist Hardware umfassend mindestens einen Prozessor.
  • In 3 umfasst der beispielhafte NIC 200 die beispielhafte Vorhersagesteuerung 306, um Netzwerkdatenpakete in Arbeitslasttypen zu kategorisieren und den Netzwerkdatenpaketen entsprechende Kennzeichnungen zuzuweisen. Die beispielhafte Vorhersagesteuerung 306 arbeitet in einem Inferenzmodus, derart, dass die beispielhafte Vorhersagesteuerung 306 Netzwerkdatenpakete von der beispielhaften Netzwerkpaketsteuerung 302 in Echtzeit erhält, was bedeutet, dass die Vorhersagesteuerung 306 aktuelle (z. B. Auf-dem-neuen-Stand-) Netzwerkdatenpakete erhält. Die beispielhafte Vorhersagesteuerung 306 weist den Netzwerkdatenpaketen auf der Grundlage der Klassifizierung Prioritätskennzeichnungen zusammen mit Arbeitslastkategorie-Kennzeichnungen zu. Beispielsweise analysiert die Vorhersagesteuerung 306 Informationen, die in den Netzwerkdatenpaketen umfasst sind (z. B. ein Fähigkeitsinformationsfeld und/oder ein optionales Feld eines Zugriffspunkt- (AP-) Datenrahmens), die Prioritätsanforderungen (z. B. Quality of Service (QoS; Dienstgüte)) der Arbeitslast entsprechen, um den Netzwerkdatenpaketen Prioritätsstufen zuzuweisen. Beispielsweise entspricht ein erstes Netzwerkdatenpaket, das in die Kategorie Spiele klassifiziert wird, einer Hohe-Stufe-Priorität relativ zu einem zweiten Netzwerkdatenpaket, das in eine Stapelkategorie klassifiziert wird. Die Stufen der Priorität entsprechen den Zeit- und Performanceanforderungen der Arbeitslast. Beispielsweise erfordert ein Sprachanruf (z. B. in einer Audiokategorie) eine minimale Latenzzeit und eine hohe Performance von dem Speicher 214 und dem Rechen-Die 206 relativ zu einer E-Mail (z. B. in der Stapelkategorie), die keine solche hohe Performance und/oder minimale Latenzzeit von dem Speicher 214 und dem Rechen-Die 206 erfordert. Bei einigen Beispielen weist die Vorhersagesteuerung 306 Arbeitslastkategorie-Kennzeichnungen (z. B. Arbeitslasttyp-Kennzeichnungen) zu und identifiziert Prioritätskennzeichnungen (z. B. QoS-Kennzeichnung), die im Rahmenkörper der Netzwerkdatenpakete getaggt sind. Einige Netzwerkdatenpakete umfassen solche Prioritätskennzeichnungen und einige Netzwerkdatenpakete tun dies nicht. Daher ist die beispielhafte Vorhersagesteuerung 306 ausgebildet, um auf der Grundlage der Arbeitslastkategorie Prioritätskennzeichnungen zu bestimmen, wenn die Netzwerkdatenpakete die Prioritätsinformationen nicht umfassen. Bei einigen Beispielen identifiziert die Vorhersagesteuerung 306 mehr als eine Arbeitslastkategorie für mehr als ein an der Netzwerkpaketsteuerung 302 empfangenes Netzwerkdatenpaket. Beispielsweise empfängt die Vorhersagesteuerung 306 Eingänge von Datenpaketen, die zu einem einzelnen Netzwerkfluss gehören, analysiert aber mehrere Netzwerkflüsse, die gleichzeitig an dem Rechen-Die 206 laufen können. Bei einem solchen Beispiel hilft die Vorhersagesteuerung 306 bei der Identifizierung, welche Netzwerkflüsse gepuffert werden sollen und welche nicht, basierend auf Arbeitslastkategorien und Prioritätskennzeichnungen. Bei einigen Beispielen gibt die Vorhersagesteuerung 306 Klassifizierungs- und gekennzeichnete Netzwerkdatenpakete über den beispielhaften Basis-Die 202 (z. B. unter Verwendung von Seitenbandnachrichten) an die beispielhafte PMC 210 aus. Bei einigen Beispielen wird die Vorhersagesteuerung 306 von der Aktivstatussteuerung 308 getriggert, Netzwerkdatenpaket-Vorhersagen zu treffen. Die beispielhafte Vorhersagesteuerung 306 von 3 kann Mittel zur Vorhersage implementieren. Das Vorhersagemittel ist Hardware umfassend mindestens einen Prozessor.
  • In 3 umfasst der beispielhafte NIC 200 die beispielhafte Aktivstatussteuerung 308, um den Zustand des NIC 200 zu bestimmen. Die beispielhafte Aktivstatussteuerung 308 kann bestimmen, ob der beispielhafte NIC 200 aktiv, im Leerlauf oder inaktiv ist. Zum Beispiel kann die Aktivstatussteuerung 308 Informationen von Hardware-Registern des NIC 200 erhalten, die den Zustand des NIC 200 anzeigen. Bei anderen Beispielen kann die Aktivstatussteuerung 308 beim Basis-Die 202 von 2 Informationen in Bezug auf den Zustand des Rechen-Dies 206 von 2 (z. B. ein- oder ausgeschaltet) abfragen, der dem Zustand des NIC 200 entspricht und/oder diesem zugeordnet ist. Bei einigen Beispielen aktualisiert die Aktivstatussteuerung 308 jedes Mal, wenn der Zustand des NIC 200 aktualisiert wird. Bei einigen Beispielen sendet die Aktivstatussteuerung 308 einen Trigger an die Vorhersagesteuerung 306, wenn der NIC 200 in einem aktiven Zustand ist. Die beispielhafte Aktivstatussteuerung 308 von 3 kann Mittel zur Bestimmung implementieren. Das Bestimmungsmittel ist Hardware umfassend mindestens einen Prozessor.
  • Nachfolgend wird ein beispielhafter Trainingsbetrieb des NIC 200 beschrieben. Während des Trainingsbetriebs erhält die beispielhafte Netzwerkpaketsteuerung 302 Datenpakete von der beispielhaften drahtlosen Netzwerkvorrichtung 104. Bei einigen Beispielen entsprechen die Datenpakete einer Arbeitslast und/oder unterschiedlichen Arbeitslasten. Bei einigen Beispielen ist die Netzwerkpaketsteuerung 302 so ausgebildet, dass sie während des Trainingsmodus als ein Paketerfasser (z. B. Paket-Sniffer) fungiert. Beispielsweise kann die Netzwerkpaketsteuerung 302 getriggert werden, ein oder mehrere bestimmte Arbeitslasten auf der Grundlage eines Filters (z. B. eines von einem Bediener, Entwickler usw. gesetzten Filters, der durch Netzwerkdatenpakete filtert und diejenigen erfasst, die zu einer bestimmten Arbeitslast gehören) zu erfassen, um den Typ der Arbeitslast für das Training vorab zu identifizieren. Beispielsweise ist die Netzwerkpaketsteuerung 302 so ausgebildet, dass sie Typen von Datenpaketen erfasst, die zu einer oder mehreren bestimmten Arbeitslasten gehören. Die beispielhafte Netzwerkpaketsteuerung 302 identifiziert Datenpakete, die einer Arbeitslast und/oder genauer gesagt einem einzelnen Netzwerkfluss entsprechen. Ein Netzwerkfluss ist definiert als alle Datenpakete (z. B. bidirektional), die zu denselben fünf Tupeln (z. B. Header) gehören. Daher identifiziert die beispielhafte Netzwerkpaketsteuerung 302 Datenpakete, die dieselben fünf Tupel (z. B. Quelladresse, Quellport, Zieladresse, Zielport und Protokoll) aufweisen, und sammelt sie, wodurch eine Gruppe von Datenpaketen, einer Arbeitslast entsprechend, erstellt wird. Die beispielhafte Netzwerkpaketsteuerung 302 sammelt Datenpakete, die demselben Netzwerkfluss entsprechen, da davon ausgegangen werden kann, dass die Datenpakete desselben Netzwerkflusses dieselben Prioritätsanforderungen (z. B. QoS-Anforderungen) aufweisen und somit Prioritätsanforderungen auf der Flussebene identifiziert werden können.
  • Die beispielhafte Netzwerkpaketsteuerung 302 stellt die Datenpakete an die beispielhafte Trainingssteuerung 304 für das Lernen und Klassifizieren der Datenpakete in eine Arbeitslasttypkategorie bereit. Beispielsweise erhält die Trainingssteuerung 304 die Datenpakete, die zusammen als ein einzelner Fluss gruppiert sind, und beginnt den Prozess der Vorverarbeitung (z. B. Identifizierung eines Arbeitslasttyps) der Datenpakete und des Trainings eines Modells zur Identifizierung des Arbeitslasttyps ohne Unterstützung durch zusätzliche Quellen (z. B. den Vorprozessor, eine Datenbank, Programmentwickler usw.).
  • Die beispielhafte Trainingssteuerung 304 erhält Datenpakete von der beispielhaften Netzwerkpaketsteuerung 302 und weist den Datenpaketen ein Prioritäts-Tag und einen Arbeitslasttyp zu. Zum Beispiel kann die Trainingssteuerung 304 das Prioritäts-Tag (z. B. die QoS) auf der Grundlage des Rahmenkörpers der Datenpakete bestimmen. Unterschiedliche Arbeitslasten erfordern definierte QoS-Tags, um ausführbar zu sein. Daher können die Entwickler einer Anwendung (z. B. einer Arbeitslast) in dem Anwendungs-Header und/oder Metadaten den Typ der Qualität definieren, die zur Ausführung der Funktionen der Anwendung erforderlich ist. Die Definition der Qualität kann im Rahmenkörper der Datenpakete bei der Übertragung über ein Netzwerk (z. B. das Netzwerk 102) implementiert werden und die beispielhafte Trainingssteuerung 304 kann den Rahmenkörper analysieren und die Dienstgüte identifizieren. Die QoS einer Arbeitslast kann durch die Definition von minimalen und/oder maximalen Werten definiert werden, die die Rechenvorrichtungsplattform 100 während der Ausführung der Arbeitslast erreichen muss. Solche Werte können Paketverlust, Bitrate, Durchsatz, Jitter, Übertragungsverzögerung, Latenzzeit, Verfügbarkeit usw. entsprechen. Beispielsweise kann es für Sprachanrufarbeitslasten erforderlich sein, dass die Rechenvorrichtungsplattform 100 die Arbeitslast mit minimalem/r Paketverlust und Übertragungsverzögerung sowie hohem/r Durchsatz und Bitrate ausführt. Bei einigen Beispielen ist das Prioritäts-Tag (z. B. QoS-Tag) ein numerischer Wert, der einer Rangfolge entspricht, wobei ein niedriger Wert anzeigt, dass die Arbeitslast kein hohes Dienstniveau erfordert, und ein höherer Wert anzeigt, dass die Arbeitslast ein hohes Dienstniveau erfordert. Bei einigen Beispielen definiert ein Anwendungs- und/oder Softwareentwickler möglicherweise keine Prioritätsanforderungen oder unterstützt die drahtlose Netzwerkvorrichtung 104 Prioritätsfeldfähigkeiten in den Datenpaketen möglicherweise nicht. Bei einem solchen Beispiel kann die Trainingssteuerung 304 das Prioritäts-Tag (z. B. Prioritätsanforderung) auf der Grundlage des Arbeitslasttyps identifizieren.
  • Die beispielhafte Trainingssteuerung 304 erhält Datenpakete von der beispielhaften Netzwerkpaketsteuerung 302 (z. B. umfassend und/oder ohne das QoS-Tag) und wählt n Paketabtastwerte aus den Datenpaketen aus, die demselben Netzwerkfluss (z. B. Arbeitslast) entsprechen, wobei n eine Anzahl von Datenpaketen ist. Beispielsweise bestimmt die Trainingssteuerung 304 die Anzahl n von Paketabtastwerten auf der Grundlage der Rechenfähigkeiten des NIC 200. Beispielsweise kann der NIC 200 irgendeine Größe haben und irgendeine Anzahl von Hardwarekomponenten umfassen, die Daten bis zu einer bestimmten Menge und einer bestimmten Geschwindigkeit verarbeiten können. Daher wird n auf der Grundlage von Hardware- und/oder Softwaremerkmalen des beispielhaften NIC 200 ausgewählt.
  • Bei einigen Beispielen wählt die Netzwerkpaketsteuerung 302 n Paketabtastwerte für die Bereitstellung an die Trainingssteuerung 304 aus. Bei einigen Beispielen weist die Netzwerkpaketsteuerung 302 den n Paketabtastwerten die Arbeitslastkennzeichnung vor der Bereitstellung der Abtastwerte an die Trainingssteuerung 304 auf der Grundlage von für diese Arbeitslast erfassten Paketverläufen (packet traces) zu. Beispielsweise können die Filter, die für die Netzwerkpaketsteuerung 302 während des Trainingsmodus gesetzt werden, die Speicherung und/oder das Speichern von Paketverläufen in bestimmten Dateien auf der Grundlage der Charakteristika der Pakete ermöglichen, wobei die Dateien auf der Grundlage des Arbeitslasttyps benannt werden. Beispielsweise kann die Datei packet_audio_streaming Paketabtastwerte, die einer Audio-Streaming-Arbeitslast entsprechen, umfassen und/oder anderweitig enthalten.
  • Die beispielhafte Trainingssteuerung 304 extrahiert f Paketmerkmale aus den n Abtastwerten, wobei ƒ die Anzahl der Merkmale eines der n Paketabtastwerte ist. Die beispielhafte Trainingssteuerung 304 weist den n Paketabtastwerten und den ƒ Merkmalen auf der Grundlage der für diese Arbeitslast erfassten Paketverläufe Arbeitslastkennzeichnungen zu.
  • Wenn die beispielhafte Trainingssteuerung 304 die n Paketabtastwerte taggt und/oder diesen Kennzeichnungen zuweist, trainiert die beispielhafte Trainingssteuerung 304 ein Modell mit den n Paketabtastwerten und ƒ Merkmalen. Zum Beispiel gibt die Trainingssteuerung 304 die gekennzeichneten n Paketabtastwerte mit den entsprechenden ƒ Merkmalen ein und ordnet die ƒ Merkmale den Arbeitslasttypen zu. Die beispielhafte Trainingssteuerung 304 gibt während des Trainings mehrere Sätze von n Paketabtastwerten ein, die unterschiedlichen Arbeitslasten entsprechen. Die beispielhafte Trainingssteuerung 304 kann das Training pausieren, um das Modell anhand eines zufälligen Datensatzes (z. B. zufällig ausgewählte Datenpakete) auszuwerten und/oder zu testen. Beispielsweise kann die Trainingssteuerung 304 die k-fache Kreuzvalidierung verwenden, indem sie den Datensatz in eine Anzahl K von Sektionen/Malen (folds) aufteilt, wobei jedes Mal zu einem Zeitpunkt als Testsatz verwendet wird. Wenn durch das Testen und Auswerten des Modells ausgewertet wird, dass eine bestimmte Fehlerquote erreicht wurde, veröffentlicht die beispielhafte Trainingssteuerung 304 das Modell und stellt das veröffentlichte Modell an die beispielhafte Vorhersagesteuerung 306 bereit.
  • Bezug nehmend auf 4 ist ein Blockdiagramm der beispielhaften Trainingssteuerung 304 zum Trainieren des Modells zum Klassifizieren von Datenpaketen in Arbeitslastkategorien dargestellt. Die Arbeitslastkategorien können Audio-Arbeitslasten, Video-Arbeitslasten, Streaming- und/oder irgendein anderer Typ von Arbeitslast sein. Die beispielhafte Trainingssteuerung 304 umfasst eine beispielhafte Vorverarbeitungsschaltungsanordnung 402, eine beispielhafte Merkmalsextraktionsschaltungsanordnung 404, eine beispielhafte Modelltrainingsschaltungsanordnung 406, eine beispielhafte Fehlerverluststeuerung 408 und eine beispielhafte Modellveröffentlichungsschaltungsanordnung 410.
  • In 4 umfasst die beispielhafte Trainingssteuerung 304 die beispielhafte Vorverarbeitungsschaltungsanordnung 402, um Datenpaketen Kennzeichnungen zuzuweisen. Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 erhält Datenpakete von der beispielhaften Netzwerkpaketsteuerung 302 und wählt n Datenpakete, die zu einem einzelnen Netzwerkfluss gehören, zur Verwendung als Eingangsabtastwerte aus. Bei einigen Beispielen erhält die Paketsteuerung 302 n Datenpakete von der Netzwerkpaketsteuerung 302. Die beispielhafte Paketsteuerung 302 weist den n Paketabtastwerten die Arbeitslast-Kennzeichnung zu, basierend auf den Paketverläufen und/oder Informationen, die den Paketverläufen entsprechen, die durch die beispielhafte Netzwerkpaketsteuerung 302 erfasst werden.
  • Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 extrahiert ƒ Merkmale aus den n Paketabtastwerten. Beispielsweise kann die Vorverarbeitungsschaltungsanordnung 402 Merkmale wie beispielsweise Paketlänge, Zwischenankunftszeit, Paketrichtung und QoS-Tags extrahieren. Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 kann irgendwelche anderen statistischen Merkmale und/oder Charakteristika aus den Paketabtastwerten extrahieren, die bei der Identifizierung des Typs der Arbeitslast nützlich sind. Bei einigen Beispielen kann die Vorverarbeitungsschaltungsanordnung 402 Merkmale extrahieren, die einem Header und/oder Rahmenkörper der Paketabtastwerte entsprechen. Der Header der Paketabtastwerte kann für die Modelltrainingsschaltungsanordnung 406 nützlich sein, um den Arbeitslasttyp zu bestimmen. Zum Beispiel kann ein E-Mail-Paket einen bestimmten Protokollidentifizierer (protocol identifier) umfassen (z. B. angezeigt im optionalen Feldelement 128 des AP-Datenrahmens 110), der spezifisch für E-Mail ist. Bei anderen Beispielen extrahiert die Vorverarbeitungsschaltungsanordnung 402 den Zwischenpaketankunftszeiten (inter-packet arrival times) der Paketabtastwerte entsprechende Merkmale, die für die Modelltrainingsschaltungsanordnung 406 bei der Bestimmung des Arbeitslasttyps nützlich sein können. Beispielsweise können die Zwischenpaketankunftszeiten verwendet werden, um herzuleiten, dass die Paketabtastwerte einer Audio-Arbeitslast-Kategorie entsprechen. Wenn beispielsweise Datenpakete im Durchschnitt alle 20 Millisekunden (ms) an den NIC 200 gesendet werden, kann die Zwischenpaketankunftszeit der n Paketabtastwerte gleich ungefähr 20 ms mit einer gewissen Standardabweichung sein. Bei einem solchen Beispiel können Paketabtastwerte, die eine Zwischenpaketankunftszeit gleich ungefähr 20 ms aufweisen, einer Audiokategorie entsprechen. Zusätzlich, wenn die Paketabtastwerte eine relativ geringe Länge (z. B. Bitlänge) haben und eine Zwischenpaketankunftszeit von 20 ms aufweisen, entsprechen die Paketabtastwerte der Audiokategorie.
  • In 4 weist die beispielhafte Vorverarbeitungsschaltungsanordnung 402 die identifizierte Arbeitslastkategorie-Kennzeichnung (z. B. identifiziert durch die erfassten Paketverläufe) den n Paketabtastwerten zu und stellt dann die gekennzeichneten Paketabtastwerte an die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 bereit. Bei einigen Beispielen hängt die Vorverarbeitungsschaltungsanordnung 402 Metadaten an die n Paketabtastwerte an oder stellt sie diesen voran, umfassend eine Folge von Zeichen oder einen anderen Typ eines Identifizierers. Zusätzlich kann die beispielhafte Vorverarbeitungsschaltungsanordnung 402 die n Paketabtastwerte mit einem Prioritäts-Tag (z. B. einem QoS-Tag) taggen, das den Prioritätsanforderungen des Netzwerkflusses entspricht. Bei einigen Beispielen erhält die Vorverarbeitungsschaltungsanordnung 402 zweite, dritte, vierte, fünfte usw. Sätze von Datenpaketen von der Netzwerkpaketsteuerung 302, die unterschiedlichen Netzwerkflüssen entsprechen, und wählt n Paketabtastwerte und f Merkmale aus, denen Arbeitslastkennzeichnungen zugewiesen werden.
  • In 4 umfasst die beispielhafte Trainingssteuerung 304 die beispielhafte Merkmalsextraktionsschaltungsanordnung 404, um einen Merkmalsvektor auf der Grundlage vorverarbeiteter Paketabtastwerte und Merkmale aus der beispielhafte Vorverarbeitungsschaltungsanordnung 402 zu erzeugen. Die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 erzeugt oder erstellt abgeleitete Werte von Merkmalsvektoren (z. B. repräsentativ für ƒ Merkmale in n Paketabtastwerten), die ausgebildet sind, um informativ und nicht redundant zu sein, um die Trainingsphase der Trainingssteuerung 304 zu ermöglichen. Nach hiesigem Gebrauch ist in Merkmalsvektor ein n-dimensionales Array (z. B. ein Vektor) von Merkmalen, die eine Arbeitslastkategorie darstellen. Beispielsweise könnte ein Merkmal eines der ƒ Merkmale sein, wie beispielsweise Zwischenpaketankunftszeit, Protokollidentifizierer, Paketrichtung, -quelle und - ziel, Paketlänge (z. B. Bitgröße), QoS, usw. Die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 reduziert die verarbeiteten Eingangsdaten (z. B. die n Paketabtastwerte von der Vorverarbeitungsschaltungsanordnung 402) in besser handhabbare Gruppen (z. B. Merkmale) für die Verarbeitung, während der ursprüngliche Netzwerkfluss (z. B. Datenpakete) mit ausreichender Vollständigkeit und Genauigkeit beschrieben wird. Bei dem in 4 dargestellten Beispiel identifiziert die Merkmalsextraktionsschaltungsanordnung 404 Merkmale in Datenpaketen, die ihrer beabsichtigten Operation (z. B. Arbeitslast) entsprechen. Die durch die Vorverarbeitungsschaltungsanordnung 402 bereitgestellten Merkmalsdaten ermöglichen der Modelltrainingsschaltungsanordnung 406 das Training eines Modells zur Klassifizierung eines Datenpakets in eine Arbeitslastkategorie. Zum Beispiel erfasst die Netzwerkpaketsteuerung 302 von 3 eine Mehrzahl von Netzwerkdatenpaketen von der drahtlosen Netzwerkvorrichtung 104, die einem Videoanruf entsprechen. Bei einem solchen Beispiel extrahiert die Merkmalsextraktionsschaltungsanordnung 404 Datenpaketmerkmale und erzeugt Vektoren für die Datenpakete und stellt die Vektoren an die Modelltrainingsschaltungsanordnung 406 bereit. Bei einigen Beispielen kann die Merkmalsextraktionsschaltungsanordnung 404 eine Mehrzahl von Merkmalen extrahieren, die großen Sätzen von Eingangsdaten entsprechen, sie kann weniger Merkmale extrahieren, die einem kleineren Satz von Eingangsdaten entsprechen, usw. Die Anzahl der ƒ Merkmale entspricht den Rechenfähigkeiten der beispielhaften Rechenvorrichtungsplattform 100. Nachdem die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 Merkmale der Paketabtastwerte extrahiert hat, gibt die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 einen Merkmalsvektor aus.
  • In 4 umfasst die beispielhafte Trainingssteuerung 304 die beispielhafte Modelltrainingsschaltungsanordnung 406, um ein Modell auf der Grundlage des/der Ausgangsmerkmalsvektors/-vektoren der Merkmalsextraktionsschaltungsanordnung 404 zu trainieren. Die beispielhafte Modelltrainingsschaltungsanordnung 406 arbeitet in einem Trainingsmodus, in dem sie eine Mehrzahl von vorverarbeiteten Paketabtastwerten (z. B. Merkmalsvektor(en)) empfängt, eine Vorhersage erzeugt und ein Modell auf der Grundlage dieser Vorhersage ausgibt. Damit die beispielhafte Modelltrainingsschaltungsanordnung 406 ein Modell erzeugt, empfängt die Modelltrainingsschaltungsanordnung 406 Merkmalsvektoren, die vorverarbeiteten und bekannten Paketabtastwerten entsprechen. Beispielsweise werden während eines Trainingsmodus Bestätigungen gemacht, dass die Paketabtastwerte einer spezifischen Arbeitslast entsprechen (z. B. werden n Paketabtastwerte mit einem Arbeitslasttyp-Tag gekennzeichnet), so dass die Datenpakete für das Lernen geeignet sind. Zum Beispiel empfängt die Modelltrainingsschaltungsanordnung 406 einen Merkmalsvektor, der die Merkmale der Paketabtastwerte anzeigt, und identifiziert ein Muster in den Merkmalen der Paketabtastwerte, das die Merkmale der Paketabtastwerte auf die Arbeitslastkategorie abbildet, und gibt ein Modell aus, das diese Muster erfasst. Die beispielhafte Modelltrainingsschaltungsanordnung 406 stellt das Ausgangsmodell an die beispielhafte Fehlerverluststeuerung 408 bereit, um das Modell auszuwerten.
  • Bei einigen Beispielen implementiert die Modelltrainingsschaltungsanordnung 406 eine Aktivierungsfunktion, wie z. B. eine Rectified Linear Unit (ReLU), um dem Modell dabei zu helfen, Interaktionseffekte und nichtlineare Effekte zu berücksichtigen. Ein Interaktionseffekt ist, wenn eine Variable A eine Vorhersage (z. B. eine Arbeitslasttyp-Vorhersage) in Abhängigkeit vom Wert von B unterschiedlich beeinflusst. Nichtlineare Effekte entsprechen einer Erhöhung des Werts einer Eingabe, bei der sich die Ausgabe nicht mit der gleichen Rate erhöht, oder einem Absinken des Werts einer Eingabe, das kein Absinken der Ausgabe mit der gleichen Rate verursacht. Die Aktivierungsfunktion kann eine Mehrzahl von Aktivierungsschichten umfassen, die einen Vorhersagevektor an eine Softmax-Aktivierungsfunktion ausgeben. Eine solche Ausgabe kann ein vollständig verbundener Vektor sein, umfassend Werte, die Wahrscheinlichkeiten anzeigen, dass die n Paketabtastwerte einer Video-Arbeitslast, einer Audio-Arbeitslast oder einer Streaming-Arbeitslast entsprechen. Zusätzlich können die Werte Wahrscheinlichkeiten anzeigen, dass die n Paketabtastwerte einer zusätzlichen Arbeitslast entsprechen, wie z. B. Web-Browsing, Herunterladen von Dateien usw. Die Softmax-Aktivierungsfunktion ist eine Funktion, die einen aus K reellen Zahlen bestehenden Eingangsvektor (z. B. den Vorhersagevektor, einen vollständig verbundenen Vektor usw.) nimmt und den Eingangsvektor in eine Wahrscheinlichkeitsverteilung normalisiert, die aus K Wahrscheinlichkeiten besteht, die proportional zu den Exponentialen der K reellen Zahlen sind. Einfacher ausgedrückt, die Ausgabe der Softmax-Aktivierungsfunktion ermöglicht es, die Ausgangsvektoren der Aktivierungsfunktion als Wahrscheinlichkeiten zu interpretieren, indem die reellen Zahlen auf Werte zwischen 0 und 1 normalisiert werden. Die beispielhafte Modelltrainingsschaltungsanordnung 406 kann irgendein anderes Verfahren zum Lernen, wie Datenpakete in eine Arbeitslastkategorie klassifiziert werden, implementieren. Bei den hierin beschriebenen Beispielen identifiziert die Modelltrainingsschaltungsanordnung 406 drei Kategorien: Video, Audio und Streaming. Die beispielhafte Modelltrainingsschaltungsanordnung 406 und/oder allgemeiner die beispielhafte Trainingssteuerung 304 ist jedoch nicht auf die drei vorangehend genannten Kategorien beschränkt und kann irgendeine Anzahl von Arbeitslasttypen identifizieren.
  • In 4 umfasst die beispielhafte Trainingssteuerung 304 die beispielhafte Fehlerverluststeuerung 408, um die Performance des Klassifikationsmodells auszuwerten. Bei einigen Beispielen implementiert die Fehlerverluststeuerung 408 einen Kreuzentropie-Verlust. Beim Kreuzentropie-Verlust bestimmt die beispielhafte Fehlerverluststeuerung 408, dass sich der Verlustwert erhöht, wenn die vorhergesagte Wahrscheinlichkeit der Arbeitslastkategorie von der tatsächlichen Kennzeichnung abweicht, die durch die beispielhafte Vorverarbeitungsschaltungsanordnung 402 zugewiesen wurde. Bei einem Kreuzentropie-Verlust würde ein perfektes Modell einen Verlust von Null aufweisen. Da es jedoch Hunderte von unterschiedlichen Typen von Arbeitslasten gibt, ist das Erreichen eines Nullverlusts möglicherweise nicht praktikabel. Wenn daher die beispielhafte Fehlerverluststeuerung 408 bestimmt, dass das Modell eine akzeptable Fehler- und/oder Verlustquote umfasst, kann das Modell zur Veröffentlichung bereit sein. Bei anderen Beispielen, wenn die beispielhafte Fehlerverluststeuerung 408 bestimmt, dass das Modell Wahrscheinlichkeiten nicht innerhalb einer akzeptablen Fehler- und/oder Verlustquote erreicht und/oder ausgibt, kann die beispielhafte Fehlerverluststeuerung 408 bestimmen, dass ein erneutes Training durch die beispielhafte Modelltrainingsschaltungsanordnung 406 durchgeführt werden soll. Ein solches erneutes Training kann das Modell veranlassen, auf die n Datenpakete und ƒ Merkmale während der Aktivierung angewendete Gewichte anzupassen, wobei die angepassten Gewichte einen besser erwarteten Ausgangsvektor erzeugen können.
  • Bei einigen Beispielen ist die Fehlerverluststeuerung 408 in Kommunikation mit der Modelltrainingsschaltungsanordnung 406 und der Modellveröffentlichungsschaltungsanordnung 410.
  • In 4 umfasst die beispielhafte Trainingssteuerung 304 die beispielhafte Modellveröffentlichungsschaltungsanordnung 410, um das von der beispielhaften Modelltrainingsschaltungsanordnung 406 erzeugte Modell zu veröffentlichen und es an die beispielhafte Vorhersagesteuerung 306 von 3 bereitzustellen. Beispielsweise empfängt die Modellveröffentlichungsschaltungsanordnung 410 ein Modell von der Modelltrainingsschaltungsanordnung 406 und wandelt es in ein konsumierbares (consumable) Format für die Veröffentlichung um. Nach hiesigem Gebrauch ist ein konsumierbares Format als ein Modell definiert, das dazu vorgesehen ist, verwendet und dann ersetzt zu werden (z. B. durch ein aktualisiertes Modell). Die Modellveröffentlichungsschaltungsanordnung 410 wandelt das Modell in ein konsumierbares Format um, um die Vorhersagesteuerung 306 während der Trainings- und Detektionsphase ständig zu aktualisieren. Bei einigen Beispielen bestimmt die Modellveröffentlichungsschaltungsanordnung 410, ob das empfangene Modell für die Veröffentlichung akzeptierbar ist. Beispielsweise kann die Modellveröffentlichungsschaltungsanordnung 410 ein neues Modell empfangen, das den Video-, Audio- und Streaming-Arbeitslastklassen entspricht, aber der Modellveröffentlichungsschaltungsanordnung 410 kann zuvor ein Modell bereitgestellt worden sein, das den Video-, Audio- und Streaming-Arbeitslastklassen entspricht, für die dieses vorherige Modell nicht konsumiert (z. B. verwendet) wurde, durch die Vorhersagesteuerung 306. Bei diesem Beispiel kann die Modellveröffentlichungsschaltungsanordnung 410 bestimmen, dass das neue empfangene Modell nicht veröffentlicht werden kann (z. B., bis das vorherige Modell konsumiert ist). Andere Beispiele, bei denen ein Modell für die Veröffentlichung nicht akzeptierbar ist, treten auf, wenn die Modellveröffentlichungsschaltungsanordnung 410 nicht in der Lage ist, das Modell in ein konsumierbares Format umzuwandeln, und daher das Modell nicht an die Vorhersagesteuerung 306 bereitstellen kann.
  • Bezug nehmen wieder auf den beispielhaften NIC 200 von 3, geht der NIC 200 in einen Inferenzbetrieb über, wenn die beispielhafte Trainingssteuerung 304 ein veröffentlichtes Modell an die beispielhafte Vorhersagesteuerung 306 ausgibt. Während der Inferenz prüft die beispielhafte Aktivstatussteuerung 308 den Status des NIC 200. Beispielsweise bestimmt die Aktivstatussteuerung 308, ob der NIC 200 in einem Schlafzustand, einem Leerlaufzustand oder einem aktiven Zustand ist. Die Aktivstatussteuerung 308 prüft den Status des NIC 200, um zu bestimmen, ob Arbeitslast-Klassifizierungen erzeugt werden sollen. Wenn die beispielhafte Aktivstatussteuerung 308 bestimmt, dass der NIC 200 im aktiven Zustand ist (z. B. Empfang von bidirektionalen Netzwerkdatenpaketen, die aktuellen Arbeitslasten entsprechen), benachrichtigt die beispielhafte Aktivstatussteuerung 308 die Vorhersagesteuerung 306, um Arbeitslasttypen herzuleiten.
  • Die beispielhafte Vorhersagesteuerung 306 kann Netzwerkdatenpakete von der beispielhaften Netzwerkpaketsteuerung 302 und/oder von der beispielhaften Aktivstatussteuerung 308 erhalten. Bei einigen Beispielen, wenn die Vorhersagesteuerung 306 die Netzwerkdatenpakete von der Netzwerkpaketsteuerung 302 erhält, die Datenpakete, identifiziert die Netzwerkpaketsteuerung 302 einem einzelnen Netzwerkfluss entsprechende Datenpakete und stellt sie an die Vorhersagesteuerung 306 bereit. Die beispielhafte Vorhersagesteuerung 306 gibt die Netzwerkdatenpakete, die einem einzelnen Netzwerkfluss entsprechen, in das trainierte und veröffentlichte Modell ein. Bei einigen Beispielen extrahiert die Vorhersagesteuerung 306 Merkmale aus den Netzwerkdatenpaketen. Die Merkmale helfen dem Modell bei der Bestimmung einer/eines Arbeitslast-Klasse/-Typs des Netzwerkflusses von Datenpaketen. Die beispielhafte Vorhersagesteuerung 306 erzeugt eine Ausgabewahrscheinlichkeit, die die Wahrscheinlichkeit der/des Arbeitslast-Klasse/-Typs anzeigt. Beispielsweise erzeugt die Vorhersagesteuerung 306 einen Wahrscheinlichkeitswert, dass der Netzwerkfluss eine Audio-Arbeitslast ist, einen Wahrscheinlichkeitswert, dass der Netzwerkfluss eine Video-Arbeitslast ist, einen Wahrscheinlichkeitswert, dass der Netzwerkfluss eine Streaming-Arbeitslast ist, usw. Bei einigen Beispielen wird die Arbeitslastkategorie mit dem höchsten Wahrscheinlichkeitswert den Netzwerkdatenpaketen des Netzwerkflusses zugewiesen. Beispielsweise erzeugt die Vorhersagesteuerung 306 ein Flag, eine Nachricht, eine Benachrichtigung usw., dass die aktuellen Netzwerkdatenpakete „Streaming“-Datenpakete sind, wenn die Netzwerkdatenpakete einer Streaming-Arbeitslast entsprechen.
  • 5 ist ein Blockdiagramm einer beispielhaften Implementierung der PMC 210 von 2. Die beispielhafte PMC 210 umfasst eine beispielhafte Schnittstelle 502, eine beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504, eine beispielhafte Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 (z. B. eine Datenstruktur) und eine beispielhafte Richtlinienaktualisierungsschaltungsanordnung 508. Obwohl die Komponenten von 5 in der beispielhaften PMC 210 von 2 implementiert sind. Die Komponenten von 5 können durch irgendeine andere Komponente und/oder Schaltungsanordnung innerhalb der beispielhaften Rechenvorrichtungsplattform 100 und/oder der beispielhaften drahtlosen Netzwerkvorrichtung 104 implementiert sein.
  • In 5 erhält die beispielhafte Schnittstelle 502 die durch den beispielhaften NIC 200 identifizierten Arbeitslasttypen. Die beispielhafte Schnittstelle 502 kann die Arbeitslasttypen von dem NIC 200 über Seitenbandnachrichtenübermittlung (z. B. über VDM-Nachrichten) erhalten, um es der PMC 210 zu erlauben, einen Netzwerk-Interrupt-Plan zum Abstimmen mit Hardware-Schlafplänen gemäß den Arbeitslasttypen zu erzeugen. Zusätzlich kann die beispielhafte Schnittstelle 502 Anweisungen an eine oder mehrere Komponenten der beispielhaften Rechenvorrichtungsplattform 100 zum Übergehen in den Schlafmodus und/oder Aufwecken aus dem Schlafmodus basierend auf einem Schlafplan übertragen. Zusätzlich kann die Schnittstelle 502
  • Die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 von 5 erzeugt einen Netzwerk-Interrupt-Plan für Komponenten der Rechenvorrichtungsplattform 100 auf der Grundlage des Hardware-Schlafplans (unter Verwendung der Heuristiken, die der klassifizierten Arbeitslast entsprechen). Wenn beispielsweise die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 einen Arbeitslast-Typ von dem NIC 200 über die beispielhafte Schnittstelle 502 erhält, verwendet die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 die Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506, um ein Arbeitslast-Protokoll und/oder Heuristiken (z. B. Anzeige-Wecken, thermische Informationen, Interrupte aus unterschiedlichen Quellen (z. B. einem OS, einer Anwendung usw.), während die Arbeitslast läuft) zu identifizieren, die dem Arbeitslast-Typ entsprechen. Das Arbeitslastprotokoll kann dem entsprechen, wann Datenpakete von der drahtlosen Netzwerkvorrichtung 104 gesendet werden und/oder an dieses übertragen werden müssen, basierend auf dem Arbeitslasttyp. Die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 kann bestimmen, dass bestimmte Arbeitslasttypen und/oder entsprechende Protokolle latenzzeitkritischen Anforderungen entsprechen (z. B., wenn es nicht mehr als einen Schwellenwert für die Zeit gibt, wo die Komponenten innerhalb einer Arbeitslastperiode in den Schlafmodus übergehen können). Wenn die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 bestimmt, dass der Arbeitslasttyp und/oder das entsprechende Protokoll latenzzeitkritischen Anforderungen entspricht, erzeugt die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 möglicherweise keinen Schlafmodus, da es nicht genügend Zeit für eine oder mehrere der Komponenten gibt, um in den Schlafmodus überzugehen.
  • Wenn die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 von 5 bestimmt, dass der Arbeitslasttyp und/oder das entsprechende Protokoll latenzzeitkritischen Anforderungen nicht entspricht, erzeugt die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 einen Netzwerk-Interrupt-Plan, der mit den Heuristiken (z. B. dem Hardware-Schlafplan) auf der Grundlage des Protokolls, das dem Arbeitslasttyp entspricht, abstimmt. Die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 plant die Netzwerk-Interrupte um den Hardware-Schlafplan unter Verwendung der Heuristiken, um sicherzustellen, dass die Netzwerk-Interrupte auftreten, wenn die Hardware wach ist. Wenn beispielsweise ein Schlafplan dem Schlafmodus für 15 ms entspricht, gefolgt von einer Wachmodusaktivität für 5 ms, erzeugt die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 einen Netzwerk-Interrupt-Plan, der die Netzwerk-Interrupte so abstimmt, dass sie während der 5 ms des Aufweckens auftreten. Bei einigen Beispielen kann die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 auswählen, ob Netzwerk-Interrupte erzeugt werden sollen, auf der Grundlage des Schlafzustands (z. B. C1, C2 oder C3). Nachdem die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 den Netzwerk-Interrupt-Plan zum Abstimmen mit dem Hardware-Schlafplan erzeugt hat, überträgt die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 Anweisungen an eine oder mehrere Komponenten der beispielhaften Rechenvorrichtungsplattform 100, um die eine oder die mehreren Komponenten zu veranlassen, Netzwerk-Interrupte auf der Grundlage des erzeugten Netzwerk-Interrupt-Plans zu erzeugen.
  • In 5 ist die beispielhafte Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 eine Datenstruktur, die Arbeitslasten in Verbindung mit entsprechenden Protokollen (z. B. wann der Datenaustausch während einer Arbeitslast auftreten wird) und/oder Heuristiken speichert. Auf diese Weise kann, wenn ein Arbeitslasttyp erhalten wird, die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 das/die entsprechende(n) Protokoll und/oder Heuristiken verwenden, um Netzwerk-Interrupte mit Hardware-Schlaf- und Weckzeit abzustimmen. Die Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 kann durch einen Speicher, ein oder mehrere Register und/oder irgendeine andere Vorrichtung, die zur Datenspeicherung in der Lage ist, implementiert sein.
  • Die beispielhafte Richtlinienaktualisierungsschaltungsanordnung 508 von 5 kann die Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 in eine Metrik übersetzen, die für die Planung und zeitliche Abstimmung verwendet werden kann. Beispielsweise kann die Richtlinienaktualisierungsschaltungsanordnung 508 die Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 in Echtzeit für neue Verwendungsszenarien und Anwendungen aktualisieren und anpassen. Bei einigen Beispielen kann anstelle einer Arbeitslast eine Verkehrsklasse verwendet werden, wobei die Daten direkt an das Wi-Fi-Modul für das Leistungsmanagement (PM) gesendet werden, um eine Abstimmung mit hardwarebasiertem Aufwecken (wake ups) zu erreichen. Bei einigen Beispielen erhält die Richtlinienaktualisierungsschaltungsanordnung 508 eine Echtzeitanpassung der für die Leistungsmanagementrichtlinie verwendeten Metrik und/oder passt diese an.
  • Wenn beispielsweise die Leistungsmanagementrichtlinie andere Eingaben berücksichtigt (z. B. thermische Bedingungen, die dem entsprechen, wie der Rechen-Die 206 ist), um Schlafzyklen anzupassen, kann die Richtlinienaktualisierungsschaltungsanordnung 508 an den identifizierten Arbeitslasttyp für ein Unterscheiden von Videowiedergabe aus Echtzeit-Videokonferenz anzeigen (z. B. was eine andere Zeit ist, es kann in Ordnung sein, beide als einen Typ zu behandeln).
  • Während eine beispielhafte Art und Weise der Implementierung des NIC 200 von 2 in den 3-4 dargestellt ist und eine beispielhafte Art und Weise der Implementierung der beispielhaften PMC 210 in 5 dargestellt ist, können ein oder mehrere der in den 3, 4 und/oder 5 dargestellten Elemente, Prozesse und/oder Vorrichtungen kombiniert, geteilt, neu angeordnet, weggelassen, eliminiert und/oder auf irgendeine andere Weise implementiert werden. Ferner können die beispielhafte Netzwerkpaketsteuerung 302, die beispielhafte Trainingssteuerung 304, die beispielhafte Vorhersagesteuerung 306, die beispielhafte Aktivstatussteuerung 308, die beispielhafte Vorverarbeitungsschaltungsanordnung 402, die beispielhafte Merkmalsextraktionsschaltungsanordnung 404, die beispielhafte Modelltrainingsschaltungsanordnung 406, die beispielhafte Fehlerverluststeuerung 408, die beispielhafte Modellveröffentlichungsschaltungsanordnung 410, die beispielhafte Schnittstelle 502, die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504, die beispielhafte Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506, die beispielhafte Richtlinienaktualisierungsschaltungsanordnung 508 und/oder, allgemeiner, der beispielhafte NIC 200 und die beispielhafte PMC 210 der 2-5 durch Hardware, Software, Firmware und/oder irgendeine Kombination von Hardware, Software und/oder Firmware implementiert werden. Somit könnte zum Beispiel irgendeines aus der beispielhaften Netzwerkpaketsteuerung 302, der beispielhaften Trainingssteuerung 304, der beispielhaften Vorhersagesteuerung 306, der beispielhaften Aktivstatussteuerung 308, der beispielhaften Vorverarbeitungsschaltungsanordnung 402, der beispielhaften Merkmalsextraktionsschaltungsanordnung 404, der beispielhaften Modelltrainingsschaltungsanordnung 406, der beispielhaften Fehlerverluststeuerung 408, der beispielhaften Modellveröffentlichungsschaltungsanordnung 410, der beispielhaften Schnittstelle 502, der beispielhaften Netzwerk-Interrupt-Plan-Schaltungsanordnung 504, der beispielhaften Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506, der beispielhaften Richtlinienaktualisierungsschaltungsanordnung 508 und/oder, allgemeiner, des beispielhaften NIC 200 und der beispielhaften PMC 210 der 2-5 durch ein(e)(en) oder mehrere analoge oder digitale Schaltung(en), Logikschaltungen, programmierbare(n) Prozessor(en), programmierbare(n) Mikrocontroller, Grafikverarbeitungseinheit(en) (GPU(s); graphics processing unit), digitale(n) Signalprozessor(en) (DSP(s)), anwendungsspezifische integrierte Schaltung(en) (ASIC(s)), NPU(s), programmierbare Logikvorrichtung(en) (PLD(s); programmable logic device(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s); field programmable logic device(s)) implementiert werden. Beim Lesen von irgendeinem der Vorrichtungs- oder Systemansprüche dieses Patents, um eine reine Software- und/oder Firmware-Implementierung abzudecken, wird hiermit zumindest eines von der beispielhaften Netzwerkpaketsteuerung 302, der beispielhaften Trainingssteuerung 304, der beispielhaften Vorhersagesteuerung 306, der beispielhaften Aktivstatussteuerung 308, der beispielhaften Vorverarbeitungsschaltungsanordnung 402, der beispielhaften Merkmalsextraktionsschaltungsanordnung 404, der beispielhaften Modelltrainingsschaltungsanordnung 406, der beispielhaften Fehlerverluststeuerung 408, der beispielhaften Modellveröffentlichungsschaltungsanordnung 410, der beispielhaften Schnittstelle 502, der beispielhaften Netzwerk-Interrupt-Plan-Schaltungsanordnung 504, der beispielhaften Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506, der beispielhaften Richtlinienaktualisierungsschaltungsanordnung 508 und/oder, allgemeiner, des beispielhaften NIC 200 und der beispielhaften PMC 210 der 2-5 ausdrücklich so definiert, dass sie eine nichtflüchtige computerlesbare Speicherungsvorrichtung oder Speicherungsplatte wie beispielsweise einen Speicher, eine DVD (Digital Versatile Disk), eine CD (Compact Disk), eine Blu-ray-Disk usw., umfassend Software und/oder Firmware, umfassen. Weiterhin kann der beispielhafte NIC 200 von 2 ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu, oder anstatt von, denjenigen umfassen, die in 3-4 dargestellt sind, und/oder kann mehr als eines von irgendwelchen oder allen der dargestellten Elemente, Prozesse und Vorrichtungen umfassen. Nach hiesigem Gebrauch umfasst der Ausdruck „in Kommunikation“, umfassend Variationen davon, direkte Kommunikation und/oder indirekte Kommunikation über eine oder mehrere Zwischenkomponenten und erfordert keine direkte physische (z. B. drahtgebundene) Kommunikation und/oder ständige Kommunikation, sondern umfasst zusätzlich selektive Kommunikation in periodischen Intervallen, geplanten Intervallen, aperiodischen Intervallen und/oder einmaligen Ereignissen.
  • Flussdiagramme, die repräsentativ sind für beispielhafte Hardwarelogik, maschinenlesbare Anweisungen, hardwareimplementierte Zustandsmaschinen und/oder irgendeine Kombination davon zur Implementierung des NIC 200 und/oder der PMC 210 der 2-5, sind in den 6-10 dargestellt. Die maschinenlesbaren Anweisungen können ein oder mehrere ausführbare Programme oder Abschnitt(e) eines ausführbaren Programms zur Ausführung durch einen Computerprozessor und/oder eine Prozessorschaltungsanordnung wie beispielsweise den Prozessor 1212 sein, der in der unten in Verbindung mit 12 erörterten Prozessorplattform 1200 gezeigt ist. Das Programm kann in einer Software verkörpert sein, die auf einem nichtflüchtigen computerlesbaren Speicherungsmedium gespeichert ist, wie beispielsweise einer CD-ROM, einer Diskette, einer Festplatte, einer DVD, einer Blu-ray oder einem dem Prozessor 1212 zugeordneten Speicher, aber das gesamte Programm und/oder Teile desselben könnten alternativ durch eine andere Vorrichtung als den Prozessor 1212 ausgeführt werden und/oder in einer Firmware oder dedizierter Hardware verkörpert sein. Ferner, obwohl das beispielhafte Programm unter Bezugnahme auf die in den 6-10 dargestellten Flussdiagramme beschrieben wird, können alternativ viele andere Verfahren zur Implementierung des beispielhafte NIC 200 und/oder der PMC 210 verwendet werden. Beispielsweise kann die Reihenfolge der Ausführung der Blöcke geändert werden, und/oder einige der beschriebenen Blöcke können geändert, eliminiert oder kombiniert werden. Zusätzlich oder alternativ können irgendwelche oder alle der Blöcke durch eine oder mehrere Hardware-Schaltungen (z. B. diskrete und/oder integrierte analoge und/oder digitale Schaltungsanordnung, ein FPGA, eine ASIC, einen Komparator, einen Operationsverstärker (op-amp; operational-amplifier), eine Logikschaltung etc.) implementiert werden, die strukturiert sind, um die entsprechende Operation ohne Ausführen von Software oder Firmware auszuführen. Die Prozessorschaltungsanordnung kann auf verschiedene Netzwerkstandorte und/oder lokal auf eine oder mehrere Vorrichtungen verteilt sein (z. B. ein Multi-Kern-Prozessor in einer einzelnen Maschine, mehrere Prozessoren verteilt über ein Server-Rack usw.).
  • Die hierin beschriebenen maschinenlesbaren Anweisungen können in einem oder mehreren aus einem komprimierten Format, einem verschlüsselten Format, einem fragmentierten Format, einem kompilierten Format, einem ausführbaren Format, einem gepackagten Format etc. gespeichert werden. Die hierin beschriebenen maschinenlesbaren Anweisungen können als Daten oder eine Datenstruktur (z. B. Abschnitte von Anweisungen, Code, Code-Darstellungen etc.) gespeichert werden, die zur Erzeugung, Herstellung und/oder Produktion maschinenausführbarer Anweisungen verwendet werden können. Beispielsweise können die maschinenlesbaren Anweisungen fragmentiert und auf einer oder mehreren Speicherungsvorrichtungen und/oder Rechenvorrichtungen (z. B. Servern) gespeichert sein, die an den gleichen oder verschiedenen Standorten eines Netzwerks oder einer Sammlung von Netzwerken (z. B. in der Cloud, in Edge-Vorrichtungen usw.) positioniert sind. Die maschinenlesbaren Anweisungen können eines oder mehrere aus Installation, Modifikation, Anpassung, Aktualisierung, Kombination, Ergänzung, Ausbildung, Entschlüsselung, Dekomprimierung, Entpackung, Verteilung, Neuzuweisung, Kompilierung etc. erfordern, um sie direkt lesbar, interpretierbar und/oder ausführbar durch eine Rechenvorrichtung und/oder eine andere Maschine zu machen. Zum Beispiel können die maschinenlesbaren Anweisungen in mehreren Teilen gespeichert werden, die individuell komprimiert, verschlüsselt und auf getrennten Rechenvorrichtungen gespeichert werden, wobei die Teile, wenn sie entschlüsselt, dekomprimiert und kombiniert werden, einen Satz von ausführbaren Anweisungen bilden, die eine oder mehrere Funktionen implementieren, die zusammen ein Programm wie beispielsweise das hierin beschriebene bilden können.
  • Bei einem anderen Beispiel können die maschinenlesbaren Anweisungen in einem Zustand gespeichert sein, in dem sie durch eine Prozessorschaltungsanordnung gelesen werden können, aber die Hinzufügung einer Bibliothek (z. B. einer Dynamic Link Library (DLL)), eines Software Development Kit (SDK), einer Anwendungs-Programmierungs-Schnittstelle (API; application programming interface) etc. erfordern, um die Anweisungen auf einer bestimmten Rechenvorrichtung oder einer anderen Vorrichtung auszuführen. Bei einem anderen Beispiel müssen die maschinenlesbaren Anweisungen möglicherweise konfiguriert werden (z. B. gespeicherte Einstellungen, Dateneingabe, aufgezeichnete Netzwerkadressen etc.), bevor die maschinenlesbaren Anweisungen und/oder das/die entsprechende(n) Programm(e) ganz oder teilweise ausgeführt werden können. Somit können die maschinenlesbaren Medien, wie hierin verwendet, maschinenlesbare Anweisungen und/oder Programm(e) umfassen, ungeachtet des bestimmten Formats oder Zustands der maschinenlesbaren Anweisungen und/oder Programm(e), wenn sie gespeichert oder anderweitig in Ruhe oder im Transit sind.
  • Die hierin beschriebenen maschinenlesbaren Anweisungen können durch irgendeine vergangene, gegenwärtige oder zukünftige Anweisungssprache, Skriptsprache, Programmiersprache etc. dargestellt werden. Beispielsweise können die maschinenlesbaren Anweisungen unter Verwendung von irgendeiner der folgenden Sprachen dargestellt werden: C, C++, Java, C#, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift etc.
  • Wie vorangehend erwähnt wurde, können die beispielhaften Prozesse der 6-10 implementiert sein unter Verwendung von ausführbaren Anweisungen (z. B. computer- und/oder maschinenlesbaren Anweisungen), die auf einem nichtflüchtigen Computer und/oder einem maschinenlesbaren Medium wie beispielsweise einem Festplattenlaufwerk, einem Flash-Speicher, einem Nurlesespeicher, einer CD, einer DVD, einem Cache, einem Direktzugriffsspeicher und/oder irgendeiner anderen Speicherungsvorrichtung oder Speicherungsplatte, auf der Information für irgendeine Dauer (z. B. für längere Zeitperioden, permanent, für kurze Zeit, zum temporären Puffern und/oder zum Zwischenspeichern (Cachen) der Informationen) gespeichert ist, gespeichert sind. Gemäß hiesiger Verwendung ist der Begriff nichtflüchtiges computerlesbares Medium ausdrücklich so definiert, dass es irgendeinen Typ von computerlesbarer Speicherungsvorrichtung und/oder Speicherungsplatte umfasst und sich ausbreitende Signale ausschließt und Übertragungsmedien ausschließt.
  • „Aufweisend“ und „umfassend“ (und alle Formen und Zeitformen derselben) werden hierin so verwendet, dass sie offene Begriffe sind. Wann immer ein Anspruch irgendeine Form von „aufweisen“ oder „umfassen“ (z. B. „umfasst“, „weist auf‟, „umfassend“, „aufweisend“ etc.) als einen Oberbegriff oder innerhalb einer Anspruchsrezitation irgendeiner Art verwendet, versteht es sich, dass zusätzliche Elemente, Begriffe etc. vorhanden sein können, ohne außerhalb des Schutzbereichs des entsprechenden Anspruchs oder der Rezitation zu fallen. Gemäß hiesiger Verwendung ist, wenn der Ausdruck „zumindest“ zum Beispiel in einem Oberbegriff eines Anspruchs als Übergangsbegriff verwendet wird, er auf die gleiche Weise offen ist, wie die Begriffe „umfassend“ und „aufweisend“ offen sind. Der Ausdruck „und/oder“, wenn er z. B. in einer Form wie beispielsweise A, B und/oder C verwendet wird, bezieht sich auf irgendeine Kombination oder Teilmenge von A, B, C wie beispielsweise (1) A allein, (2) B allein, (3) C allein, (4) A mit B, (5) A mit C, (6) B mit C und (7) A mit B und mit C. Nach hiesigem Gebrauch in dem Kontext von der Beschreibung von Strukturen, Komponenten, Gegenständen, Objekten und/oder Dingen soll sich der Ausdruck „zumindest eines von A und B“ auf Implementierungen beziehen, die irgendeines von (1) zumindest einem A, (2) zumindest einem B und (3) zumindest einem A und zumindest einem B umfassen. In ähnlicher Weise soll sich der Ausdruck „zumindest eines von A oder B“, nach hiesigem Gebrauch in dem Kontext der Beschreibung von Strukturen, Komponenten, Gegenständen, Objekten und/oder Dingen, auf Implementierungen beziehen, die irgendeines von (1) zumindest einem A, (2) zumindest einem B und (3) zumindest einem A und zumindest einem B umfassen. Nach hiesigem Gebrauch in dem Kontext der Beschreibung der Performance oder Ausführung von Prozessen, Anweisungen, Handlungen, Aktivitäten und/oder Schritten, soll sich der Ausdruck „zumindest eines von A und B“ auf Implementierungen beziehen, die irgendeines von (1) zumindest einem A, (2) zumindest einem B und (3) zumindest einem A und zumindest einem B umfassen. In ähnlicher Weise, nach hiesigem Gebrauch in dem Kontext der Beschreibung der Performance oder Ausführung von Prozessen, Anweisungen, Handlungen, Aktivitäten und/oder Schritten, soll sich der Ausdruck „zumindest eines von A oder B“ auf Implementierungen beziehen, die irgendeines von (1) zumindest einem A, (2) zumindest einem B und (3) zumindest einem A und zumindest einem B umfassen.
  • Nach hiesigem Gebrauch schließen Singularverweise (z. B. „ein/e/s“, „erste/s/r“, „zweite/s/r“ etc.) eine Pluralität nicht aus. Der Begriff „eine“ Entität bezieht sich nach hiesigem Gebrauch auf eine oder mehrere dieser Entität. Die Begriffe „ein/e/s“ (a, an), „eine/r/s oder mehrere“ und „zumindest eine/r/s“ können hierin synonym verwendet werden. Ferner können, obwohl individuell aufgeführt, eine Mehrzahl von Mitteln, Elementen oder Verfahrensschritten z. B. durch eine einzelne Einheit oder Prozessor implementiert werden. Zusätzlich können, obwohl individuelle Merkmale in unterschiedlichen Beispielen oder Ansprüchen umfasst sein können, diese möglicherweise kombiniert werden, und das Umfasstsein in unterschiedlichen Beispielen oder Ansprüchen impliziert nicht, dass eine Kombination von Merkmalen nicht durchführbar und/oder vorteilhaft ist.
  • 6 ist ein Flussdiagramm, das repräsentativ ist für beispielhafte maschinenlesbare Anweisungen und/oder beispielhafte Operationen 600 während einer Vorverarbeitungsoperation D00, ausführbar und/oder instantiierbar von einer Prozessorschaltungsanordnung und/oder dem beispielhaften NIC 200 der 2-4, um Datenpaketen eines einzelnen Netzwerkflusses Arbeitslastkennzeichnungen zuzuweisen. Die maschinenlesbaren Anweisungen und/oder Operationen 600 von 6 beginnen bei Block 602, wenn die beispielhafte Netzwerkpaketsteuerung 302 (3) Datenpakete von der beispielhaften drahtlosen Netzwerkvorrichtung 104 (2) sammelt. Beispielsweise verwendet die Netzwerkpaketsteuerung 302 ein Capture Packet Trace-Merkmal, um Datenpakete zwischen dem Rechen-Die 206 (2) und anderen drahtlosen Clients abzufangen. Bei einigen Beispielen ist die Netzwerkpaketsteuerung 302 eine Schnittstelle (z. B. NIC), die Netzwerkverkehr für die beispielhafte Rechenvorrichtungsplattform 100 sammelt.
  • Die beispielhafte Netzwerkpaketsteuerung 302 identifiziert Datenpakete, die einem Netzwerkfluss entsprechen (Block 604). Beispielsweise analysiert die Netzwerkpaketsteuerung 302 den Header der Datenpakete, um übereinstimmende Tupel zwischen den Datenpaketen zu bestimmen. Bei einem solchen Beispiel gehören die Datenpakete mit übereinstimmenden Tupeln (z. B. eine Liste einer Quelladressenzahl, einer Quellportzahl, einer Zieladressenzahl, einer Zielportzahl und einer Protokollzahl) zu demselben Netzwerkfluss. Bei einigen Beispielen speichert das Capture Packet Trace-Merkmal abgefangene Datenpakete, die zu demselben Netzwerkfluss gehören, in jeweiligen Datei orten, die einer Arbeitslastkategorie entsprechen.
  • Die beispielhafte Netzwerkpaketsteuerung 302 stellt die Datenpakete, die einem einzelnen Netzwerkfluss entsprechen, an die beispielhafte Trainingssteuerung 304 und/oder genauer gesagt an die beispielhafte Vorverarbeitungsschaltungsanordnung 402 (4) bereit. Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 wählt n Paketabtastwerte aus den Datenpaketen aus, die dem Netzwerkfluss entsprechen, um sie als Eingangsabtastwerte zu verwenden (Block 606). Beispielsweise bestimmt die Vorverarbeitungsschaltungsanordnung 402 eine Anzahl von Datenpaketen, die analysiert und zum Trainieren eines Modells verwendet werden können, auf der Grundlage der Rechenfähigkeiten des NIC 200. Bei einigen Beispielen wird der Vorverarbeitungsschaltungsanordnung 402 eine Abtastgrenze während der Implementierung (z. B. Entwurf und Herstellung) bereitgestellt. Bei anderen Beispielen fragt die Vorverarbeitungsschaltungsanordnung 402 Hardwareregister, Modemspeicherung usw. nach Informationen in Bezug auf die Rechenfähigkeiten des beispielhaften NIC 200 ab.
  • Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 bestimmt einen Arbeitslasttyp der n Paketabtastwerte (Block 608). Beispielsweise analysiert die Vorverarbeitungsschaltungsanordnung 402 die Dateibenennung, Informationen und/oder andere Charakteristika der Paketverläufe, die durch die Netzwerkpaketsteuerung 302 erfasst werden. Bei einigen Beispielen bestimmt die Vorverarbeitungsschaltungsanordnung 402 auf der Grundlage der den Paketverläufen entsprechenden Informationen, ob die Paketabtastwerte Echtzeit-Arbeitslasten, Nichtechtzeit-Arbeitslasten usw. entsprechen. Bei anderen Beispielen bestimmt die Vorverarbeitungsschaltungsanordnung 402, ob die n Paketabtastwerte einem spezifischeren Arbeitslasttyp entsprechen, wie z. B. Videoanruf, Dateidownload, Spiele usw.
  • Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 erhält f Paketmerkmale aus den n Paketabtastwerten (Block 610). Beispielsweise analysiert die Vorverarbeitungsschaltungsanordnung 402 die Header und die Rahmenkörper der n Abtastwerte von Paketen auf statistische Informationen, wie z. B. Zwischenpaketankunftszeit, Paketrichtung, Protokollidentifizierer, Paketlänge, QoS-Klasse usw. Bei einigen Beispielen wird die Anzahl der Merkmale ƒ auf der Grundlage der Rechenfähigkeiten des NIC 200 ausgewählt.
  • Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 weist den n Paketabtastwerten und f Paketmerkmalen eine Kennzeichnung zu (Block 612). Beispielsweise hängt die Vorverarbeitungsschaltungsanordnung 402 einen Identifizierer (z. B. einen Arbeitslasttyp-Identifizierer), wie z. B. eine Zeichenfolge von Metadaten, an die n Paketabtastwerte an, die zu demselben Netzwerkfluss gehören. Bei einigen Beispielen ist die Kennzeichnung durch die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 (4) und die Modelltrainingsschaltungsanordnung 406 (4) für ein Trainieren eines Modells für die Kennzeichnung auf der Grundlage von Merkmalen der Pakete identifizierbar.
  • Die beispielhafte Vorverarbeitungsschaltungsanordnung 402 bestimmt, ob es einen anderen Arbeitsablauf gibt (Block 614). Beispielsweise kann die Vorverarbeitungsschaltungsanordnung 402 Datenpakete empfangen haben, die zu mehr als einem Netzwerkfluss gehören, getrennt und/oder zusammen gruppiert durch die Netzwerkpaketsteuerung 302. Wenn die beispielhafte Vorverarbeitungsschaltungsanordnung 402 bestimmt, dass es einen anderen Netzwerkfluss gibt, der zu kennzeichnen ist (z. B. gibt Block 614 einen Wert JA zurück), kehrt die Steuerung zu Block 604 zurück. Beispielsweise identifiziert die Vorverarbeitungsschaltungsanordnung 402 den nächsten Satz von Datenpaketen, die zu einem einzelnen Netzwerkfluss gehören. Wenn die beispielhafte Vorverarbeitungsschaltungsanordnung 402 bestimmt, dass es keinen anderen Netzwerkfluss gibt, der zu kennzeichnen ist (z. B. gibt Block 614 einen Wert NEIN zurück), initiiert die beispielhafte Vorverarbeitungsschaltungsanordnung 402 den Trainingsprozess (Block 616). Beispielsweise triggert die Vorverarbeitungsschaltungsanordnung 402 die Merkmalsextraktionsschaltungsanordnung 404, indem sie gekennzeichnete Abtastwerte von Datenpaketen sendet.
  • Die beispielhafte Vorverarbeitungsoperation 600 endet, wenn die beispielhafte Vorverarbeitungsschaltungsanordnung 402 das Training eines Modells triggert. Die beispielhafte Vorverarbeitungsoperation 600 wird jedoch wiederholt, wenn die beispielhafte Netzwerkpaketsteuerung 302 Datenpakete erhält, die einem nicht identifizierten Netzwerkfluss entsprechen.
  • 7 ist ein Flussdiagramm, das repräsentativ ist für beispielhafte maschinenlesbare Anweisungen und/oder beispielhafte Operationen 700 während eines Trainings, ausführbar und/oder instantiierbar von einer Prozessorschaltungsanordnung und/oder dem beispielhaften NIC 200 der 2-4, um ein oder mehrere Modell(e) zu trainieren, um Datenpakete in ihre jeweiligen Arbeitslastkategorien zu klassifizieren (z. B. auf der Grundlage von vorverarbeiteten Kennzeichnungen und Merkmalen). Die maschinenlesbaren Anweisungen und/oder Operationen 700 von 7 beginnen bei Block 702, wenn die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 (4) eine Eingabe von n Paketabtastwerten erhält, die einem Netzwerkfluss entsprechen. Zum Beispiel erhält die Merkmalsextraktionsschaltungsanordnung 404 n Paketabtastwerte von der Vorverarbeitungsschaltungsanordnung 402 (4), die mit einem Arbeitslasttyp gekennzeichnet wurden.
  • Die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 extrahiert ƒ Merkmale der n Paketabtastwerte und die entsprechende Kennzeichnung (Block 704). Zum Beispiel extrahiert die Merkmalsextraktionsschaltungsanordnung 404 die ƒ Merkmale, die durch die Vorverarbeitungsschaltungsanordnung 402 erhalten wurden, wobei ƒ eine Anzahl von beschreibenden Merkmalen ist, die die statistischen Charakteristika der n Paketabtastwerte beschreiben. Solche beschreibenden Merkmale charakterisieren die beabsichtigte Arbeitslast der Paketabtastwerte. Die beispielhafte Merkmalsextraktionsschaltungsanordnung 404 erzeugt einen Merkmalsvektor (Block 706). Beispielsweise erzeugt oder erstellt die Merkmalsextraktionsschaltungsanordnung 404 abgeleitete Werte von Merkmalsvektoren (z. B. repräsentativ für ƒ Merkmale in n Paketabtastwerten), die ausgebildet sind, um informativ und nicht redundant zu sein, um die Trainingsphase der Trainingssteuerung 304 zu ermöglichen.
  • Die beispielhafte Modelltrainingsschaltungsanordnung 406 (4) trainiert ein Modell für ein Identifizieren des Arbeitslasttyps der n Paketabtastwerte auf der Grundlage des Merkmalsvektors (Block 708). Beispielsweise empfängt die Modelltrainingsschaltungsanordnung 406 Merkmalsvektoren, die vorverarbeiteten und bekannten Paketabtastwerten entsprechen, und identifiziert ein Muster in den Merkmalen der Paketabtastwerte, das die Merkmale der Paketabtastwerte auf die Arbeitslastkategorie abbildet, und gibt ein Modell aus, das diese Muster erfasst. Bei einigen Beispielen wird das Ausgabemodell mit unterschiedlichen Eingangsabtastwerten erneut trainiert, bis eine akzeptable Fehlerquote erreicht ist.
  • Die beispielhafte Modelltrainingsschaltungsanordnung 406 bestimmt, ob eine andere Eingabe von n Paketabtastwerten verfügbar ist (Block 710). Die beispielhafte Modelltrainingsschaltungsanordnung 406 bestimmt beispielsweise, ob Datenpakete verfügbar sind, die unterschiedlichen Arbeitslasten entsprechen. Wenn die beispielhafte Modelltrainingsschaltungsanordnung 406 bestimmt, dass eine andere Eingabe von n Paketabtastwerten verfügbar ist (z. B. gibt Block 710 einen Wert JA zurück), kehrt die Steuerung zu Block 702 zurück. Wenn die beispielhafte Modelltrainingsschaltungsanordnung 406 bestimmt, dass eine andere Eingabe von n Paketabtastwerten nicht verfügbar ist (z. B. gibt Block 710 einen Wert NEIN zurück), dann erzeugt die beispielhafte Modelltrainingsschaltungsanordnung 406 ein Arbeitslasttyp-Vorhersagemodell (Block 712). Zum Beispiel gibt die Modelltrainingsschaltungsanordnung 406 das trainierte Modell an die Modellveröffentlichungsschaltungsanordnung 410 (4) aus.
  • Die beispielhafte Modellveröffentlichungsschaltungsanordnung 410 veröffentlicht das Arbeitslasttyp-Vorhersagemodell (Block 714). Beispielsweise empfängt die Modellveröffentlichungsschaltungsanordnung 410 ein Modell von der Modelltrainingsschaltungsanordnung 406 und wandelt es in ein konsumierbares Format für die Veröffentlichung um. Die beispielhafte Modellveröffentlichungsschaltungsanordnung 410 stellt das veröffentlichte Modell an die beispielhafte Vorhersagesteuerung 306 (3) bereit und die Anweisungen und/oder Trainingsoperation 700 endet. Bei einigen Beispielen werden die Anweisungen und/oder die Trainingsoperation 700 wiederholt, wenn die Merkmalsextraktionsschaltungsanordnung 404 neue Paketabtastwerte von der Vorverarbeitungsschaltungsanordnung 402 erhält.
  • 8 ist ein Flussdiagramm, das repräsentativ ist für beispielhafte maschinenlesbare Anweisungen und/oder beispielhafte Operationen 800, die von einer Prozessorschaltung und/oder dem beispielhaften NIC 200 der 2-4 ausgeführt und/oder instantiiert werden können, um Datenpakete in eine Arbeitslastkategorie zu klassifizieren. Die maschinenlesbaren Anweisungen und/oder Operationen 800 von 8 beginnen bei Block 802, wenn die beispielhafte Aktivstatussteuerung 308 (3) einen Zustand des beispielhafte NIC 200 (2) bestimmt. Beispielsweise bestimmt die Aktivstatussteuerung 308, ob der NIC 200 in einem Schlafzustand, einem Leerlaufzustand oder einem aktiven Zustand ist, indem sie beim Basis-Die 202 (2) Informationen in Bezug auf den Zustand des Rechen-Dies 206 (2) (z. B. ein- oder ausgeschaltet) abfragt, der dem Zustand des NIC 200 entspricht und/oder diesem zugeordnet ist. Die beispielhafte Aktivstatussteuerung 308 bestimmt, ob der NIC 200 in einem aktiven Zustand ist (Block 804). Beispielsweise bestimmt die Aktivstatussteuerung 308, ob der NIC 200 Daten ausführt, verarbeitet, empfängt und/oder sendet. Wenn die beispielhafte Aktivstatussteuerung 308 bestimmt, dass der NIC 200 nicht in einem aktiven Zustand ist (z. B. gibt Block 804 einen Wert NEIN zurück), endet die beispielhafte Inferenzoperation 800. Wenn der NIC 200 beispielsweise in einem Schlafzustand oder einem Leerlaufzustand ist, kann der Rechen-Die 206 in einen tiefen Leistungssparzustand übergehen.
  • Wenn die beispielhafte Aktivstatussteuerung 308 bestimmt, dass der NIC 200 in einem aktiven Zustand ist (Block 804: JA), erhält die beispielhafte Vorhersagesteuerung 306 aktive Pakete, die einem oder mehreren Netzwerkflüssen entsprechen (Block 806). Beispielsweise stellt die Netzwerkpaketsteuerung 302 Netzwerkdatenpakete, erfasst, an die Vorhersagesteuerung 306 zur Analyse und Klassifizierung bereit. Bei einigen Beispielen triggert die Aktivstatussteuerung 308 die Netzwerkpaketsteuerung 302, die aktiven Datenpakete an die Vorhersagesteuerung 306 zu senden. Bei anderen Beispielen initiiert die Aktivstatussteuerung 308 die Vorhersagesteuerung 306, die aktiven Datenpakete bei der Netzwerkpaketsteuerung 302 abzufragen.
  • Die beispielhafte Vorhersagesteuerung 306 extrahiert Merkmale aus den aktiven Paketen (Block 808). Beispielsweise identifiziert die Vorhersagesteuerung 306 statistische Informationen in dem/den Header(n) des/der Datenpakets/Datenpakete und extrahiert sie in einen Merkmalsvektor. Die beispielhafte Vorhersagesteuerung 306 bestimmt einen Arbeitslasttyp des Netzwerkflusses auf der Grundlage einer Eingabe der Merkmale in ein trainiertes Arbeitslasttyp-Vorhersagemodell (Block 810). Beispielsweise implementiert die Vorhersagesteuerung 306 das von der Trainingssteuerung 304 (3) veröffentlichte Modell ein, um eine Vorhersage über die Klassifizierung der aktiven Datenpakete auszugeben. Bei einigen Beispielen zeigt die Vorhersage an, ob die aktiven Datenpakete am wahrscheinlichsten zu einer Echtzeit-Arbeitslast, einer Nichtechtzeit-Arbeitslast, einer VideoanrufArbeitslast, einer Spiele-Arbeitslast, einer Datei-Download-Arbeitslast usw. gehören.
  • Die beispielhafte Vorhersagesteuerung 306 kommuniziert den Arbeitslasttyp an den Rechen-Die 206 (Block 812). Beispielsweise erzeugt die Vorhersagesteuerung 306 VDM-Nachrichten, die den Rechen-Die 206 über den Arbeitslasttyp informieren, so dass die PMC 210 einen Netzwerk-Interrupt-Plan zum Abstimmen mit dem Schlafplan auf der Grundlage des Arbeitslasttyps entwickeln kann, um den Leistungsverbrauch zu reduzieren.
  • 9 ist ein Flussdiagramm, das repräsentativ ist für maschinenlesbare Anweisungen und/oder beispielhafte Operationen 900, die durch die Prozessorschaltungsanordnung und/oder die beispielhafte PMC 210 von FIG. für ein Abstimmen mit Netzwerk-Interrupten mit einem Hardware-Schlafplan ausgeführt und/oder instantiiert werden können. Die maschinenlesbaren Anweisungen und/oder Operationen 900 von 9 beginnen bei Block 902, wenn die beispielhafte Schnittstelle 502 eine klassifizierte Arbeitslast von dem NIC 200 erhält (z. B. auf der Grundlage von Seitenbandnachrichten über den Basis-Die 202). Die klassifizierte Arbeitslast entspricht dem Typ der Arbeitslast, in Verbindung mit dem der NIC 200 aktuell arbeitet. Bei der klassifizierten Arbeitslast kann es sich beispielsweise um ein oder mehrere Typen von einem Streamingvideo, Streamingaudio, Videotelefonkonferenz, Audiotelefonkonferenz usw. handeln.
  • Bei Block 904 greift die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 auf das Arbeitslastprotokoll und/oder Heuristiken von Plattformaktivitäten aus der Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 auf der Grundlage der klassifizierten Arbeitslast zu. Beispielsweise verwendet die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 die Arbeitslast, um in der Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 Informationen zu finden, die der Arbeitslast entsprechen (z. B. Latenzzeitanforderungen, Übertragungsprotokoll, Interrupt-Protokoll, Anzeige-Wecken, thermische Informationen, Interrupte aus unterschiedlichen Quellen (z. B. einem OS, einer Anwendung usw.), während die Arbeitslast läuft) usw.). Bei Block 906 bestimmt die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504, ob die Arbeitslasttypen (einer) kritischen Anforderung(en) entsprechen. Wie vorangehend beschrieben, können einige Arbeitslasten einer oder mehreren kritischen Anforderungen entsprechen, bei denen mehr als eine Schwellendauer eines Zeitraums verwendet wird, um eingehenden und/oder ausgehenden Netzverkehr zu erhalten und/oder zu verarbeiten. Solche Arbeitslasten lassen Hardwarekomponenten genügend Zeit, um in einen Schlafmodus überzugehen. Die Anzeige der kritischen Anforderung(en) kann Teil der Informationen sein, die in der Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 in Verbindung mit dem Arbeitslasttyp gespeichert werden. Dementsprechend kann die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 auf der Grundlage der entsprechenden Informationen aus der Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 bestimmen, ob der Arbeitslasttyp (einer) kritischen Anforderung(en) entspricht.
  • Wenn die Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 bestimmt, dass der Arbeitslasttyp (einer) kritischen Anforderung(en) entspricht (Block 906: JA), steuert die PMC 210 die Leistung der Hardware, ohne Leistungseinsparungen zu verwenden (z. B., ohne mit einem Schlafmodus zu arbeiten, um die kritische(n) Anforderung(en) zu erfüllen) (Block 908). Wenn die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 bestimmt, dass der Arbeitslasttyp nicht der/den kritischen Anforderung(en) entspricht (Block 906: NEIN), erzeugt die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 eine Netzwerk-Interrupt-Plan-Abstimmung zum Abstimmen mit dem Hardware-Schlafplan (Block 910), wie weiter unten in Verbindung mit 10 beschrieben. Bei Block 912 steuert die beispielhafte PMC 210 Leistung, indem sie Netzwerk-Interrupte mit dem hardwarebasierten Aufweckplan abstimmt. Beispielsweise kann die PMC 210 einen oder mehrere Teile des Rechen-Dies 206, des Speichers 214, des Basis-Dies 202 und/oder des NIC 200 anweisen, in das Abstimmen von Netzwerk-Interrupten auf der Grundlage des Hardware-Schlafplans überzugehen, um sicherzustellen, dass Netzwerk-Interrupte auftreten, während die Hardware wach ist. Da die Netzwerk-Interrupte mit dem Schlafplan abgestimmt werden, können die Hardwarekomponenten mehr Zeit in einem Betrieb im Schlafmodus verbringen als traditionelle Techniken, was zu Leistungseinsparungen führt. Während der Weckzeit kann der Rechen-Die 206 die Netzwerk-Arbeitspakete (z. B. Funktionen, Operation, Anweisungen usw.) abschließen, während er andere Aktivitäten Rechenvorrichtungsplattformaktivitäten durchführt.
  • 10 ist ein Flussdiagramm, das repräsentativ ist für maschinenlesbare Anweisungen und/oder beispielhafte Operationen, die durch eine Prozessorschaltungsanordnung und/oder die beispielhafte PMC 210 von 5 ausgeführt und/oder instantiiert werden können, um einen Netzwerk-Interrupt-Plan zu erzeugen, der NIC-Aktivität entspricht, auf der Grundlage des Hardware-Schlafplans unter Verwendung eines Arbeitslastprotokolls, wie vorangehend in Verbindung mit Block 910 von 9 beschrieben. Die maschinenlesbaren Anweisungen und/oder Operationen von 10 beginnen bei Block 1002, wenn die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 (eine) erste Zeit(en) identifiziert, zu der/denen die Hardware wach ist, auf der Grundlage der Heuristiken und/oder des Schlafplans, der durch die PMC 210 erzeugt wird.
  • Bei Block 1004 identifiziert die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 (eine) zweite Zeit(en), zu der/denen die Hardware schläft, basierend auf dem Schlafplan und/oder den Heuristiken. Bei Block 1006 plant die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 die Netzwerk-Interrupte mit der/den ersten Zeit(en), wodurch sie die Netzwerk-Interrupte mit dem Hardware-Schlafplan abstimmt. Nach Block 1006 kehrt die Steuerung zu Block 912 von 9 zurück.
  • 11 zeigt ein Beispiel für die Leistungseinsparungen, die den hierin offenbarten Beispielen entsprechen. 11 umfasst ein erstes beispielhaftes Zeitgebungsdiagramm 1100, das der traditionellen Netzwerk-Interrupt-Planung für eine Videokonferenz-Arbeitslast entspricht, und ein zweites beispielhaftes Zeitgebungsdiagramm 1102, das der Netzwerk-Interrupt-Planung für eine Videokonferenz-Arbeitslast unter Verwendung der hierin offenbarten Beispiele entspricht.
  • Bei dem ersten beispielhaften Zeitgebungsdiagramm 1100 von 11 sind die Interrupte zum Rechen-Die 206 zufälliger Natur und werden nicht mit irgendwelchen anderen CPU-Weckereignissen koordiniert. Wenn alle für einen Audioanruf spezifischen Aufgaben (z. B. Audiocodierung, Audiodecodierung, Netzwerkoperationen usw.) über einen bestimmten Zeitraum verteilt sind, kommt es zu einer erhöhten Anzahl von CPU-Wecken auf der Grundlage der unterschiedlichen Zeit. Das zweite beispielhafte Zeitgebungsdiagramm 1102 zeigt eine bessere Koordination zwischen allen IPs mit P-UNIT-Heuristiken wie Time to Next Timer Events (TNTE) and Network-Abstimmung mit Audio-Wecken und umgekehrt. Somit kann die gesamte CPU-Operation innerhalb eines kurzen Intervalls (z. B. 5 ms in einem 20-ms-Verkehrsmuster) durchgeführt werden, was zu 15 ms CPU-Leerlauf (z. B. Schlafmodus) führt. Dementsprechend wird die P-Unit/PMC-basierte Zeitsynch. auf den Netzwerk-Weck-Informationen auf dem NIC 200 besser zeitlich abstimmen, unter Verwendung von Pufferfähigkeiten, um beim Zusammenführen innerhalb des NIC 200 oder der drahtlosen Netzwerkvorrichtung 104 über den gezielten Weckzeit-Mechanismus zu helfen, was Leistungseinsparungsgewinne bereitstellt.
  • 12 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 1200, die so strukturiert ist, dass sie die Anweisungen der 6-10 ausführt, um den NIC 200 und/oder die PMC 210 der 2, 3, 4 und/oder 5 zu implementieren. Die Prozessorplattform 1200 kann z. B. ein Server, ein Personal Computer, ein Arbeitsplatz, eine selbstlernende Maschine (z. B. ein neuronales Netzwerk), eine mobile Vorrichtung (z. B. ein Mobiltelefon, ein Smartphone, ein Tablet wie z. B. ein iPad™), ein persönlicher digitaler Assistent (PDA; personal digital assistant), eine Internetanwendung, ein DVD-Spieler, ein CD-Spieler, ein digitaler Videorekorder, ein Blu-ray-Spieler, eine Spielkonsole, ein persönlicher Videorekorder, eine Set-Top-Box, ein Headset oder eine andere tragbare Vorrichtung oder irgendein anderer Typ von Rechenvorrichtung sein.
  • Die Prozessorplattform 1200 des dargestellten Beispiels umfasst einen Prozessor 1212. Der Prozessor 1212 des dargestellten Beispiels ist Hardware. Beispielsweise kann der Prozessor 1212 durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren, NPUs, GPUs, DSPs oder Steuerungen von irgendeiner erwünschten Familie oder Hersteller implementiert werden. Der Hardwareprozessor kann ein halbleiterbasiertes (z. B. siliziumbasiertes) Bauelement (device) sein. Bei diesem Beispiel implementiert der Prozessor den beispielhaften NIC 200, die PMC 210, die beispielhafte Netzwerkpaketsteuerung 302, die beispielhafte Trainingssteuerung 304, die beispielhafte Vorhersagesteuerung 306, die beispielhafte Aktivstatussteuerung 308, die beispielhafte Vorverarbeitungsschaltungsanordnung 402, die beispielhafte Merkmalsextraktionsschaltungsanordnung 404, die beispielhafte Modelltrainingsschaltungsanordnung 406, die beispielhafte Fehlerverluststeuerung 408, die beispielhafte Modellveröffentlichungsschaltungsanordnung 410, die beispielhafte Schnittstelle 502, die beispielhafte Netzwerk-Interrupt-Plan-Schaltungsanordnung 504 und die beispielhafte Richtlinienaktualisierungsschaltungsanordnung 508 der 2-5.
  • Der Prozessor 1212 des dargestellten Beispiels umfasst einen lokalen Speicher 1213 (z. B. einen Cache). Bei einigen Beispielen implementiert der lokale Speicher 1213 die beispielhafte Arbeitslast-Typ/Protokoll-Nachschlagtabelle 506 von 5. Der Prozessor 1212 des dargestellten Beispiels ist in Kommunikation mit einem Hauptspeicher, umfassend einen flüchtigen Speicher 1214 und einen nichtflüchtigen Speicher 1216, über einen Bus 1218. Der flüchtige Speicher 1214 kann durch einen synchronen dynamischen Direktzugriffsspeicher (SDRAM; Synchronous Dynamic Random Access Memory), einen dynamischen Direktzugriffsspeicher (DRAM; Dynamic Random Access Memory), einen dynamischen RAMBUS®-Direktzugriffsspeicher (RDRAM®; RAMBUS Dynamic Random Access Memory) und/oder irgendeinen anderen Typ von Direktzugriff-Speichervorrichtung implementiert werden. Der nichtflüchtige Speicher 1216 kann durch einen Flash-Speicher und/oder durch irgendeinen anderen gewünschten Typ von Speichervorrichtung implementiert sein. Zugriff auf den Hauptspeicher 1214, 1216 wird durch eine Speichersteuerung gesteuert.
  • Die Prozessorplattform 1200 des dargestellten Beispiels umfasst auch eine Schnittstellenschaltung 1220. Die Schnittstellenschaltung 1220 kann durch irgendeinen Typ von Schnittstellenstandard, wie beispielsweise eine Ethernet-Schnittstelle, einen universellen seriellen Bus (USB; universal serial bus), eine Bluetooth®-Schnittstelle, Nahfeldkommunikations- (NFC; near field communication) Schnittstelle und/oder eine PCI-Express-Schnittstelle, implementiert werden.
  • Bei dem dargestellten Beispiel sind eine oder mehrere Eingabevorrichtungen 1222 mit der Schnittstellenschaltung 1220 verbunden. Die Eingabevorrichtung(en) 1222 erlaubt/erlauben es einem Benutzer, Daten und/oder Befehle in den Prozessor 1212 einzugeben. Die Eingabevorrichtung(en) können durch z. B. einen Audio-Sensor, ein Mikrophon, eine Kamera (Standbild oder Video), eine Tastatur, eine Schaltfläche, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, einen Isopoint und/oder ein Spracherkennungssystem implementiert werden.
  • Eine oder mehrere Ausgabevorrichtungen 1224 sind ebenfalls mit der Schnittstellenschaltung 1220 des dargestellten Beispiels verbunden. Die Ausgabevorrichtungen 1224 können zum Beispiel durch Anzeigevorrichtungen (z. B. eine Leuchtdiode (LED; light emitting diode), eine organische Leuchtdiode (OLED; organic light emitting diode), eine Flüssigkristallanzeige (LDC; liquid crystal display), eine Kathodenstrahlröhren-Anzeige (CRT; cathode ray tube), eine In-Place-Switching- (IPS) Anzeige, einen Touchscreen), eine Tastausgabevorrichtung, einen Drucker und/oder Lautsprecher implementiert werden. Die Schnittstellenschaltung 1220 des dargestellten Beispiels umfasst somit typischerweise eine Graphiktreiberkarte, einen Graphiktreiberchip und/oder einen Graphiktreiberprozessor.
  • Die Schnittstellenschaltung 1220 des abgebildeten Beispiels umfasst auch eine Kommunikationsvorrichtung wie beispielsweise einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem, ein privates Gateway, einen drahtlosen Zugriffspunkt und/oder eine Netzwerkschnittstelle, um den Datenaustausch mit externen Maschinen (z. B. Rechenvorrichtungen irgendeiner Art) über ein Netzwerk 1226 zu ermöglichen. Die Kommunikation kann z. B. über eine Ethernet-Verbindung, eine digitale Teilnehmeranschluss (DSL; digital subscriber line)-Verbindung, eine Telefonleitungsverbindung, ein Koaxialkabelsystem, ein Satellitensystem, ein drahtloses Line-of-Site-System (Line-of-site; Sichtverbindung), ein Mobiltelefonsystem etc. erfolgen.
  • Die Prozessorplattform 1200 des dargestellten Beispiels umfasst auch eine oder mehrere Massenspeicherungsvorrichtungen 1228 zum Speichern von Software und/oder Daten. Beispiele solcher Massenspeicherungsvorrichtungen 1228 umfassen Diskettenlaufwerke, Festplattenlaufwerke, CD-Laufwerke, Blue-ray-Laufwerke, RAID- (redundant array of independent disks; redundante Anordnung unabhängiger Festplatten) Systeme und DVD-Laufwerke.
  • Die maschinenausführbaren Anweisungen 1232 der 6-10 können in der Massenspeicherungsvorrichtung 1228, in dem flüchtigen Speicher 1214, in dem nichtflüchtigen Speicher 1216 und/oder auf einem entfernbaren nichtflüchtigen computerlesbaren Speicherungsmedium, wie beispielsweise einer CD oder DVD, gespeichert sein.
  • 13 ist ein Blockdiagramm einer beispielhaften Implementierung der Prozessorschaltungsanordnung 1212 von 12. Bei diesem Beispiel wird die Prozessorschaltungsanordnung 1212 von 12 durch einen Mikroprozessor 1300 implementiert. Beispielsweise kann der Mikroprozessor_00 eine Multi-Kern-Hardware-Schaltungsanordnung wie beispielsweise eine CPU, einen DSP, eine GPU, eine NPU, eine XPU usw. implementieren. Obwohl er irgendeine Anzahl von beispielhaften Kernen 1302 (z. B. 1 Kern) umfassen kann, ist der Mikroprozessor 1300 dieses Beispiels ein Multi-Kern-Halbleiterbauelement umfassend N Kerne. Die Kerne 1302 des Mikroprozessors 1300 können unabhängig arbeiten oder können kooperieren, um maschinenlesbare Anweisungen auszuführen. Beispielsweise kann Maschinencode, der einem Firmware-Programm, einem eingebetteten Softwareprogramm oder einem Softwareprogramm entspricht, durch einen der Kerne 1302 ausgeführt werden oder kann durch mehrere der Kerne 1302 zur gleichen oder zu unterschiedlichen Zeiten ausgeführt werden. Bei einigen Beispielen wird der Maschinencode, der dem Firmware-Programm, dem eingebetteten Softwareprogramm oder dem Softwareprogramm entspricht, in Threads aufgeteilt und parallel durch zwei oder mehr der Kerne 1302 ausgeführt. Das Softwareprogramm kann einem Abschnitt oder der Gesamtheit der maschinenlesbaren Anweisungen und/oder Operationen entsprechen, die durch die Flussdiagramme der 6-10 repräsentiert werden.
  • Die Kerne 1302 können durch einen beispielhaften Bus 1304 kommunizieren. Bei einigen Beispielen kann der Bus 1304 einen Kommunikationsbus implementieren, um die einem/einigen der Kerne 1302 zugeordnete Kommunikation zu bewirken. Beispielsweise kann der Bus 1304 mindestens einen von einem Inter-Integrated Circuit- (I2C-) Bus, einem Serial Peripheral Interface- (SPI-) Bus, einem PCI-Bus oder einem PCIe-Bus implementieren. Zusätzlich oder alternativ kann der Bus 1304 irgendeinen anderen Typ von Rechen- oder elektrischem Bus implementieren. Die Kerne 1302 können Daten, Anweisungen und/oder Signale von einer oder mehreren externen Vorrichtungen durch eine beispielhafte Schnittstellenschaltungsanordnung 1306 erhalten. Die Kerne 1302 können Daten, Anweisungen und/oder Signale durch die Schnittstellenschaltungsanordnung 1306 an die eine oder mehrere externe Vorrichtungen ausgeben. Obwohl die Kerne 1302 dieses Beispiels einen beispielhaften lokalen Speicher 1320 umfassen (z. B. Ebene-1- (Level 1-; L1-) Cache, der in einen L1-Daten-Cache und einen L1-Anweisungs-Cache aufgeteilt werden kann), umfasst der Mikroprozessor 1300 auch einen beispielhaften gemeinschaftlich verwendeten Speicher 1310, der von den Kernen gemeinschaftlich verwendet werden kann (z. B. Level 2 (L2- Cache)) für den Hochgeschwindigkeitszugriff auf Daten und/oder Anweisungen. Daten und/oder Anweisungen können durch Schreiben in den und/oder Lesen aus dem gemeinschaftlich verwendeten Speicher 1310 übertragen (z. B. gemeinschaftlich verwendet) werden. Der lokale Speicher 1320 jedes der Kerne 1302 und der gemeinschaftlich verwendete Speicher 1310 können Teil einer Hierarchie von Speicherungsvorrichtungen sein, die mehrere Ebenen von Cache-Speicher und den Hauptspeicher (z. B. den Hauptspeicher 1214, 1216 von 12) umfassen. Typischerweise weisen höhere Speicherebenen in der Hierarchie eine geringere Zugriffszeit auf und weisen eine kleinere Speicherungskapazität als niedrigere Speicherebenen auf. Änderungen in den verschiedenen Ebenen der Cache-Hierarchie werden durch eine Cache-Kohärenzrichtlinie gemanagt (z. B. koordiniert).
  • Jeder Kern 1302 kann als ein(e) CPU, DSP, GPU, NPU usw. oder irgendein anderer Typ von Hardwareschaltungsanordnung bezeichnet werden. Jeder Kern 1302 umfasst eine Steuer-Einheit-Schaltungsanordnung 1314, arithmetische und logische (AL; arithmetic and logic) Schaltungsanordnung (manchmal als eine ALU bezeichnet) 1316, eine Mehrzahl von Registern 1318, den L1-Cache 1320 und einen beispielhaften Bus 1322. Andere Strukturen können vorhanden sein. Beispielsweise kann jeder Kern 1302 eine Vektor-Einheit-Schaltungsanordnung, eine SIMD- (Single Instruction Multiple Data-) Einheit-Schaltungsanordnung, eine Laden/Speichern-Einheit- (LSU-; load/store unit) Schaltungsanordnung, eine Verzweigung/Sprung-(branch/jump) Einheit-Schaltungsanordnung, eine Gleitkommaeinheit- (FPU-; floating-point unit) Schaltungsanordnung usw. umfassen. Die Steuer-Einheit-Schaltungsanordnung 1314 umfasst halbleiterbasierte Schaltungen, die so strukturiert sind, dass sie eine Datenbewegung innerhalb des entsprechenden Kerns 1302 steuern (z. B. koordinieren). Die AL-Schaltungsanordnung 1316 umfasst halbleiterbasierte Schaltungen, die so strukturiert sind, dass sie eine oder mehrere mathematische und/oder logische Operationen an den Daten innerhalb des entsprechenden Kerns 1302 durchführen. Die AL-Schaltungsanordnung 1316 einiger Beispiele führt ganzzahlbasierte Operationen durch. Bei anderen Beispielen führt die AL-Schaltungsanordnung 1316 auch Gleitkommaoperationen durch. Bei wiederum anderen Beispielen kann die AL-Schaltungsanordnung 1316 eine erste AL-Schaltungsanordnung, die ganzzahlbasierte Operationen durchführt, und eine zweite AL-Schaltungsanordnung, die Gleitkommaoperationen durchführt, umfassen. Bei einigen Beispielen kann die AL-Schaltungsanordnung 1316 als eine arithmetisch-logische Einheit (ALU; Arithmetic Logic Unit) bezeichnet werden. Die Register 1318 sind halbleiterbasierte Strukturen zur Speicherung von Daten und/oder Anweisungen wie beispielsweise Ergebnissen von einer oder mehreren der von der AL-Schaltungsanordnung 1316 des entsprechenden Kerns 1302 durchgeführten Operationen. Beispielsweise können die Register 1318 (ein) Vektorregister, (ein) SIMD-Register, (ein) Allzweckregister, (ein) Flagregister, (ein) Segmentregister, (ein) maschinenspezifische(s) Register, (ein) Befehlszeigerregister (instruction pointer register), (ein) Steuerregister, (ein) Debug- (Fehlerbeseitigungs-) Register, (ein) Speichermanagementregister, (ein) Maschinenprüfungs- (machine check) Register usw. umfassen. Die Register 1318 können in einer Bank angeordnet sein, wie in 13 dargestellt. Alternativ können die Register 1318 in irgendeiner anderen Anordnung, Format oder Struktur organisiert werden, umfassend verteilt über den gesamten Kern 1302, um die Zugriffszeit zu verkürzen. Der Bus 1304 kann mindestens einen aus einem I2C-Bus, einem SPI-Bus, einem PCI-Bus oder einem PCIe-Bus implementieren.
  • Jeder Kern 1302 und/oder, allgemeiner, der Mikroprozessor 1300 kann zusätzliche und/oder alternative Strukturen als die vorangehend gezeigten und beschriebenen umfassen. Beispielsweise können eine oder mehrere Taktschaltungen (clock circuits), eine oder mehrere Leistungsversorgungen, ein oder mehrere Leistungs-Gates, ein oder mehrere Cache-Home-Agents (CHAs), ein oder mehrere konvergierte/gemeinsame Mesh-Stops (CMSs; converged/common mesh stops), ein oder mehrere Verschieber (z. B. (ein) Barrel-Shifter) und/oder eine andere Schaltungsanordnung vorhanden sein. Der Mikroprozessor 1300 ist ein Halbleiterbauelement, das so hergestellt wird, dass es viele Transistoren umfasst, die miteinander verbunden sind, um die vorangehend beschriebenen Strukturen in einer oder mehreren integrierten Schaltungen (ICs), enthalten in einem oder mehreren Packages, zu implementieren. Die Prozessorschaltungsanordnung kann einen oder mehrere Beschleuniger umfassen und/oder mit diesen kooperieren. Bei einigen Beispielen werden Beschleuniger durch eine Logikschaltungsanordnung implementiert, um bestimmte Aufgaben schneller und/oder effizienter durchzuführen, als dies mit einem Allzweckprozessor möglich ist. Beispiele für Beschleuniger umfassen ASICs und FPGAs, wie beispielsweise jene, die hierin erörtert werden. Auch eine GPU oder eine andere programmierbare Vorrichtung kann ein Beschleuniger sein. Die Beschleuniger können in die Prozessorschaltungsanordnung eingebaut (on-board), in demselben Chip-Package wie die Prozessorschaltungsanordnung und/oder in einem oder mehreren separaten Packages von der Prozessorschaltungsanordnung sein.
  • 14 ist ein Blockdiagramm einer anderen beispielhaften Implementierung der Prozessorschaltungsanordnung 1212 von 12. Bei diesem Beispiel wird die Prozessorschaltungsanordnung 1212 durch eine FPGA-Schaltungsanordnung 1400 implementiert. Die FPGA-Schaltungsanordnung 1400 kann beispielsweise zur Durchführung von Operationen verwendet werden, die andernfalls durch den beispielhaften Mikroprozessor 1300 von 13 durchgeführt werden könnten, der entsprechende maschinenlesbare Anweisungen ausführt. Einmal ausgebildet, instantiiert die FPGA-Schaltungsanordnung 1400 jedoch die maschinenlesbaren Anweisungen in Hardware und kann daher die Operationen oft schneller ausführen als sie durch einen Allzweck-Mikroprozessor, der die entsprechende Software ausführt, durchgeführt werden könnten.
  • Genauer gesagt, im Gegensatz zu dem vorangehend beschriebenen Mikroprozessor 1300 von 13 (der eine Allzweck-Vorrichtung ist, die so programmiert werden kann, dass sie einige oder alle der maschinenlesbaren Anweisungen ausführt, die durch die Flussdiagramme der 6-10 repräsentiert werden, deren Verbindungen und Logikschaltungsanordnung jedoch fest sind, sobald die Herstellung einmal erfolgt ist), umfasst die FPGA-Schaltungsanordnung 1400 des Beispiels von 14 Verbindungen und Logikschaltungsanordnung, die nach der Herstellung auf unterschiedliche Weise ausgebildet und/oder verbunden werden können, um beispielsweise einige oder alle der maschinenlesbaren Anweisungen, die durch die Flussdiagramme der 6-10 repräsentiert sind, zu instantiieren. Insbesondere kann man sich das FPGA 1400 als ein Array von Logikgattern, Verbindungen und Schaltern vorstellen. Die Schalter können so programmiert werden, dass sie ändern, wie die Logikgatter durch die Verbindungen verbunden werden, wodurch effektiv eine oder mehrere dedizierte Logikschaltungen gebildet werden (außer wenn und bis die FPGA-Schaltungsanordnung 1400 umprogrammiert wird). Die ausgebildeten Logikschaltungen ermöglichen es den Logikgattern, auf unterschiedliche Weise zu kooperieren, um unterschiedliche Operationen an durch die Eingabeschaltungsanordnung empfangenen Daten durchzuführen. Diese Operationen können einem Teil der oder der gesamten Software entsprechen, die durch die Flussdiagramme der 6-10 repräsentiert wird. Somit kann die FPGA-Schaltungsanordnung 1400 so strukturiert sein, dass sie einige oder alle der maschinenlesbaren Anweisungen der Flussdiagramme der 6-10 als dedizierte Logikschaltungen effektiv instantiiert, um die diesen Softwareanweisungen entsprechenden Operationen in einer dedizierten Weise analog zu einer ASIC durchzuführen. Daher kann die FPGA-Schaltungsanordnung 1400 die Operationen, die einigen oder allen der maschinenlesbaren Anweisungen von 14 entsprechen, schneller durchführen als der Allzweck-Mikroprozessor dieselben ausführen kann.
  • Bei dem Beispiel von 14 ist die FPGA-Schaltungsanordnung 1400 strukturiert, um durch einen Endbenutzer durch eine Hardwarebeschreibungssprache (HDL; hardware description language) wie beispielsweise Verilog programmiert (und/oder ein oder mehrere Male umprogrammiert) zu werden. Die FPGA-Schaltungsanordnung 1400 von 14 umfasst eine beispielhafte Eingabe/Ausgabe- (I/O-, input/output) Schaltungsanordnung 1402, um Daten an/von eine(r) beispielhafte(n) Konfigurationsschaltungsanordnung 1404 und/oder externe(r) Hardware (z. B. eine(r) externe(n) Hardware-Schaltungsanordnung) 1406 zu erhalten und/oder auszugeben. Beispielsweise kann die Konfigurationsschaltungsanordnung 1404 eine Schnittstellenschaltungsanordnung implementieren, die maschinenlesbare Anweisungen erhalten kann, um die FPGA-Schaltungsanordnung 1400 oder (einen) Abschnitt(e) davon auszubilden. Bei einigen solchen Beispielen kann die Konfigurationsschaltungsanordnung 1404 die maschinenlesbaren Anweisungen von einem Benutzer, einer Maschine (z. B. einer Hardware-Schaltungsanordnung (z. B. programmierte oder dedizierte Schaltungsanordnung), die ein Künstliche-Intelligenz/Maschinelles-Lernen- (AI/ML-) Modell zur Erzeugung der Anweisungen implementieren kann) usw. erhalten. Bei einigen Beispielen kann die externe Hardware 1406 den Mikroprozessor 1300 von 13 implementieren. Die FPGA-Schaltungsanordnung 1400 umfasst auch ein Array einer beispielhaften Logikgatter-Schaltungsanordnung 1408, eine Mehrzahl von beispielhaften konfigurierbaren Verbindungen 1410 und eine beispielhafte Speicherungsschaltungsanordnung 1412. Die Logikgatter-Schaltungsanordnung 1408 und die Verbindungen 1410 sind konfigurierbar, um eine oder mehrere Operationen zu instantiieren, die zumindest einigen von den maschinenlesbaren Anweisungen der 6-10 und/oder anderen erwünschten Operationen entsprechen können. Die in 14 dargestellte Logikgatter-Schaltungsanordnung 1408 wird in Gruppen oder Blöcken hergestellt. Jeder Block umfasst halbleiterbasierte elektrische Strukturen, die zu Logikschaltungen ausgebildet werden können. Bei einigen Beispielen umfassen die elektrischen Strukturen Logikgatter (z. B. Und-Gatter, Oder-Gatter, NOR-Gatter usw.), die grundlegende Bausteine für Logikschaltungen bereitstellen. Elektrisch steuerbare Schalter (z. B. Transistoren) sind innerhalb jeder der Logikgatter-Schaltungsanordnung 1408 vorhanden, um die Konfiguration der elektrischen Strukturen und/oder der Logikgatter zur Bildung von Schaltungen zur Durchführung erwünschter Operationen zu ermöglichen. Die Logikgatter-Schaltungsanordnung 1408 kann andere elektrische Strukturen wie beispielsweise Nachschlagtabellen (LUTs; look-up tables), Register (z. B. Flip-Flops oder Latches), Multiplexer usw. umfassen.
  • Die Verbindungen 1410 des gezeigten Beispiels sind leitfähige Pfade, Leiterbahnen, Vias oder Ähnliches, die elektrisch steuerbare Schalter (z. B. Transistoren) umfassen können, deren Zustand durch Programmierung (z. B. unter Verwendung einer HDL-Anweisungssprache) geändert werden kann, um eine oder mehrere Verbindungen zwischen einer oder mehreren von der Logikgatter-Schaltungsanordnung 1408 zu aktivieren oder zu deaktivieren, um erwünschte Logikschaltungen zu programmieren.
  • Die Speicherungsschaltungsanordnung 1412 des gezeigten Beispiels ist so strukturiert, dass sie (ein) Ergebnis(se) der einen oder mehreren von den durch die entsprechenden Logikgatter durchgeführten Operationen speichert. Die Speicherungsschaltungsanordnung 1412 kann durch Register oder Ähnliches implementiert werden. Bei dem gezeigten Beispiel ist die Speicherungsschaltungsanordnung 1412 unter der Logikgatter-Schaltungsanordnung 1408 verteilt, um den Zugriff zu ermöglichen und die Ausführungsgeschwindigkeit zu erhöhen.
  • Die beispielhafte FPGA-Schaltungsanordnung 1400 von 14 umfasst auch eine beispielhafte Dedicated Operations Circuitry (Dedizierte-Operationen-Schaltungsanordnung) 1414. Bei diesem Beispiel umfasst die Dedicated Operations Circuitry 1414 eine Spezialzweck-Schaltungsanordnung 1416, die zur Implementierung häufig verwendeter Funktionen aufgerufen werden kann, um die Notwendigkeit zu umgehen, diese Funktionen im Feld zu programmieren. Beispiele für eine solche Spezialzweck-Schaltungsanordnung 1416 umfassen eine Speicher- (z. B. DRAM-) Steuerschaltungsanordnung, PCIe-Steuerschaltungsanordnung, Taktschaltungsanordnung, Sendeempfänger-Schaltungsanordnung, Speicher und Multiplizierer-Akkumulator-Schaltungsanordnung (multiplier-accumulator circuitry). Andere Typen einer Spezialzweck-Schaltungsanordnung können vorhanden sein. Bei einigen Beispielen kann die FPGA-Schaltungsanordnung 1400 auch eine beispielhafte programmierbare Allzweck-Schaltungsanordnung 1418 wie beispielsweise eine beispielhafte CPU 1420 und/oder einen beispielhaften DSP 1422 umfassen. Zusätzlich oder alternativ kann eine andere programmierbare Allzweck-Schaltungsanordnung 1418 vorhanden sein, wie beispielsweise eine GPU, eine NPU, eine XPU usw., die so programmiert werden kann, dass sie andere Operationen durchführt.
  • Obwohl die 13 und 14 zwei beispielhafte Implementierungen der Prozessorschaltungsanordnung 1212 von 12 zeigen, sind viele andere Ansätze denkbar. Beispielsweise kann, wie vorangehend erwähnt, eine moderne FPGA-Schaltungsanordnung eine eingebaute CPU umfassen, wie beispielsweise eine oder mehrere von der beispielhaften CPU 1420 von 14. Daher kann die Prozessorschaltungsanordnung 1212 von 12 zusätzlich durch Kombination des beispielhaften Mikroprozessors 1300 von 13 und der beispielhaften FPGA-Schaltungsanordnung 1400 von 14 implementiert werden. Bei einigen solchen hybriden Beispielen kann ein erster Abschnitt der maschinenlesbaren Anweisungen, die durch die Flussdiagramme der 6-10 repräsentiert werden, von einem oder mehreren der Kerne 1302 von 13 ausgeführt werden, und ein zweiter Abschnitt der maschinenlesbaren Anweisungen, die durch die Flussdiagramme der 6-10 repräsentiert werden, kann von der FPGA-Schaltungsanordnung 1400 von 14 ausgeführt werden.
  • Bei einigen Beispielen kann die Prozessorschaltungsanordnung 1212 von 12 in einem oder mehreren Packages sein. Zum Beispiel kann die Prozessorschaltungsanordnung 1212 von 12 und/oder die FPGA-Schaltungsanordnung 1400 von 14 in einem oder mehreren Packages sein. Bei einigen Beispielen kann eine XPU durch die Prozessorschaltungsanordnung 1212 von 12 implementiert werden, die sich in einem oder mehreren Packages befinden kann. Beispielsweise kann die XPU eine CPU in einem Package, einen DSP in einem anderen Package, eine GPU in einem wiederum anderen Package und ein FPGA in einem noch anderen Package umfassen.
  • Ein Blockdiagramm, das eine beispielhafte Software-Vertriebsplattform 1505 zum Vertrieb von Software wie beispielsweise der beispielhaften maschinenlesbaren Anweisungen 1332 von 13 an Hardware-Vorrichtungen, die sich im Besitz von Dritten befinden und/oder von diesen betrieben werden, darstellt, ist in 13 dargestellt. Die beispielhafte Software-Vertriebsplattform 1505 kann durch irgendeine(n) Computerserver, Dateneinrichtung, Cloud-Service usw. implementiert werden, der/die in der Lage ist, Software zu speichern und an andere Rechenvorrichtungen zu übertragen. Die Dritten können Kunden des Unternehmens (entity) sein, das die Software-Vertriebsplattform 1505 besitzt und/oder betreibt. Zum Beispiel kann das Unternehmen, das die Software-Vertriebsplattform 1505 besitzt und/oder betreibt, ein Entwickler, ein Verkäufer und/oder ein Lizenzgeber von Software, wie beispielsweise der beispielhaften maschinenlesbaren Anweisungen 1232 von 12, sein. Die Dritten können Verbraucher, Benutzer, Einzelhändler, OEMs usw. sein, die die Software zur Nutzung und/oder zum Weiterverkauf und/oder zur Unterlizenzierung erwerben und/oder lizenzieren. Bei dem dargestellten Beispiel umfasst die Software-Vertriebsplattform 1505 einen oder mehrere Server und eine oder mehrere Speicherungsvorrichtungen. Die Speicherungsvorrichtungen speichern die maschinenlesbaren Anweisungen 1232, die den vorangehend beschriebenen beispielhaften maschinenlesbaren Anweisungen 600, 700, 800, 900, 910 der 6-10 entsprechen können. Der eine oder die mehreren Server der beispielhaften Software-Vertriebsplattform 1505 sind in Kommunikation mit einem Netzwerk 1510, das irgendeinem oder mehreren von dem Internet und/oder irgendeinem von dem vorangehend beschriebenen beispielhaften Netzwerk 102 entsprechen kann. Bei einigen Beispielen reagieren der eine oder die mehreren Server auf Anfragen, die Software an eine anfragende Partei als Teil einer kommerziellen Transaktion zu übertragen. Die Zahlung für die Lieferung, den Verkauf und/oder die Lizenz der Software kann durch den einen oder die mehreren Server der Software-Vertriebsplattform und/oder über eine Dritt-Zahlungsentität gehandhabt werden. Die Server ermöglichen es Käufern und/oder Lizenzgebern, die maschinenlesbaren Anweisungen 1232 von der Software-Vertriebsplattform 1505 herunterzuladen. Beispielsweise kann die Software, die den beispielhaften maschinenlesbaren Anweisungen 1232 von 12 entsprechen kann, auf die beispielhafte Prozessorplattform 400 heruntergeladen werden, die ausgebildet ist, um die maschinenlesbaren Anweisungen 1232 auszuführen, um die Rechenvorrichtungsplattform 100 zu implementieren. Bei einigen Beispielen bieten ein oder mehrere Server der Software-Vertriebsplattform 1505 periodisch Aktualisierungen für die Software (z. B. die beispielhaften maschinenlesbaren Anweisungen 1232 von 12 an, übertragen und/oder erzwingen dieselben, um sicherzustellen, dass Verbesserungen, Patches, Aktualisierungen usw. verteilt und auf die Software auf den Endbenutzervorrichtungen angewendet werden.
  • Aus dem Vorangegangenen wird ersichtlich, dass beispielhafte Verfahren, Vorrichtungen und Fertigungsartikel offenbart wurden, um den Netzwerkverkehr auszurichten und den Leistungsverbrauch zu verbessern. Die hierin offenbarten Beispiele verwenden ein KI-basiertes Modell, um Arbeitslasttypen zu identifizieren und die Netzwerk-Interrupte mit einem Hardware-Schlafplan abzustimmen, der von einer Leistungsmanagement-Steuerung auf der Grundlage der identifizierten Arbeitslasten entwickelt wurde. Die offenbarten Verfahren, Vorrichtungen und Fertigungsartikel verbessern die Effizienz der Nutzung einer Rechenvorrichtung, indem sie das Leistungssparen ermöglichen und/oder die Batterielebensdauer erhöhen. Die offenbarten Verfahren, Vorrichtungen und Fertigungsartikel sind dementsprechend auf eine oder mehrere Verbesserung(en) in der Funktionsfähigkeit eines Computers gerichtet.
  • Hierin werden beispielhafte Verfahren, Vorrichtungen, Systeme und Fertigungsartikel offenbart, um den Netzwerkverkehr auszurichten und den Leistungsverbrauch zu verbessern. Weitere Beispiele und Kombinationen daraus umfassen Folgendes:
    • Beispiel 1 umfasst eine Vorrichtung zum Planen eines Interrupts, die Vorrichtung umfassend ein maschinelles Lernmodell, um eine Arbeitslast auf der Grundlage von über eine drahtlose Kommunikation erhaltenen Netzwerkpaketen zu klassifizieren, eine Leistungsmanagement-Steuerung zum Bestimmen von Heuristiken für Plattformaktivitäten, die der Arbeitslast entsprechen, und Planen von Netzwerk-Interrupten auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken.
    • Beispiel 2 umfasst die Vorrichtung von Beispiel 1, wobei das maschinelle Lernmodell die Arbeitslast klassifiziert, indem es eine Wahrscheinlichkeit bestimmt, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
    • Beispiel 3 umfasst die Vorrichtung von Beispiel 2, wobei das maschinelle Lernmodell ausgebildet ist, eine Anzahl von Merkmalen aus der Anzahl von Paketen zu extrahieren, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei die Vorhersage auf dem Merkmalsvektor basiert.
    • Beispiel 4 umfasst die Vorrichtung von Beispiel 1, wobei die Leistungsmanagement-Steuerung ausgebildet ist, um die Heuristiken unter Verwendung einer Datenstruktur zu bestimmen, die Arbeitslasten entspricht, die mit entsprechenden Heuristiken verbunden sind.
    • Beispiel 5 umfasst die Vorrichtung von Beispiel 4, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
    • Beispiel 6 umfasst die Vorrichtung von Beispiel 1, wobei die Leistungsmanagement-Steuerung ausgebildet ist für die Planung der Netzwerk-Interrupte, um sie mit den hardwarebasierten Weck-Interrupten abzustimmen.
    • Beispiel 7 umfasst die Vorrichtung von Beispiel 1, wobei die Leistungsmanagement-Steuerung ausgebildet ist für die Identifizierung des Auftretens der hardwarebasierten Weck-Interrupte auf der Grundlage der Heuristiken.
    • Beispiel 8 umfasst die Vorrichtung von Beispiel 1, wobei die Leistungsmanagement-Steuerung ausgebildet ist zum, als Reaktion auf die Bestimmung, dass die Arbeitslast mehr als einer Schwellendauer eines Zeitraums entspricht, der für die Verarbeitung von Netzwerkverkehr verwendet wird, Verzichten auf den Betrieb im Schlafmodus.
    • Beispiel 9 umfasst ein nichtflüchtiges computerlesbares Speicherungsmedium umfassend Anweisungen, die, wenn sie ausgeführt werden, einen oder mehrere Prozessoren veranlassen, eine Arbeitslast auf der Grundlage von über eine drahtlose Kommunikation erhaltenen Netzwerkpaketen zu klassifizieren, Heuristiken für Plattformaktivitäten, die der Arbeitslast entsprechen, zu bestimmen und Netzwerk-Interrupte auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken zu planen.
    • Beispiel 10 umfasst das computerlesbare Speicherungsmedium von Beispiel 9, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen, die Arbeitslast zu klassifizieren, durch ein Bestimmen der Wahrscheinlichkeit, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
    • Beispiel 11 umfasst das computerlesbare Speicherungsmedium von Beispiel 10, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen, eine Anzahl von Merkmalen aus der Anzahl von Paketen zu extrahieren, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei die Vorhersage auf dem Merkmalsvektor basiert.
    • Beispiel 12 umfasst das computerlesbare Speicherungsmedium von Beispiel 9, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen, die Heuristiken unter Verwendung einer Datenstruktur, die den mit den entsprechenden Heuristiken verbundenen Arbeitslasten entspricht, zu identifizieren.
    • Beispiel 13 umfasst das computerlesbare Speicherungsmedium von Beispiel 12, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
    • Beispiel 14 umfasst das computerlesbare Speicherungsmedium von Beispiel 9, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen zur Planung der Netzwerk-Interrupte, um sie mit den hardwarebasierten Weck-Interrupten abzustimmen.
    • Beispiel 15 umfasst das computerlesbare Speicherungsmedium von Beispiel 9, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen, das Auftreten der hardwarebasierten Weck-Interrupte auf der Grundlage der Heuristiken zu bestimmen.
    • Beispiel 16 umfasst das computerlesbare Speicherungsmedium von Beispiel 9, wobei die Anweisungen den einen oder die mehreren Prozessoren veranlassen zum, als Reaktion auf die Bestimmung, dass die Arbeitslast mehr als einer Schwellendauer eines Zeitraums entspricht, der für die Verarbeitung von Netzwerkverkehr verwendet wird, Verzichten auf den Betrieb im Schlafmodus.
    • Beispiel 17 umfasst ein Verfahren zum Planen von Interrupten, das Verfahren umfassend Klassifizieren einer Arbeitslast durch Ausführen einer Anweisung mit einem maschinellen Lernmodell auf der Grundlage von Netzwerkpaketen, die über eine drahtlose Kommunikation erhalten werden, Bestimmen von Heuristiken von Plattformaktivitäten, die der Arbeitslast entsprechen, durch Ausführen einer Anweisung mit einem Prozessor und Planen von Netzwerk-Interrupten auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken durch Ausführen einer Anweisung mit dem Prozessor.
    • Beispiel 18 umfasst das Verfahren von Beispiel 17, wobei das Klassifizieren der Arbeitslast das Bestimmen einer Wahrscheinlichkeit umfasst, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
    • Beispiel 19 umfasst das Verfahren von Beispiel 18, ferner umfassend das Extrahieren einer Anzahl von Merkmalen aus der Anzahl von Paketen, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei die Vorhersage auf dem Merkmalsvektor basiert.
    • Beispiel 20 umfasst das Verfahren von Beispiel 17, ferner umfassend die Bestimmung der Heuristiken unter Verwendung einer Datenstruktur, die den mit den entsprechenden Heuristiken verbundenen Arbeitslasten entspricht.
    • Beispiel 21 umfasst das Verfahren von Beispiel 20, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
    • Beispiel 22 umfasst das Verfahren von Beispiel 17, wobei die Planung die Planung der Netzwerk-Interrupte umfasst, um sie mit den hardwarebasierten Weck-Interrupten abzustimmen.
    • Beispiel 23 umfasst das Verfahren von Beispiel 17, ferner umfassend die Identifizierung des Auftretens der hardwarebasierten Weck-Interrupte auf der Grundlage der Heuristiken.
    • Beispiel 24 umfasst das Verfahren von Beispiel 17, ferner umfassend, als Reaktion auf die Bestimmung, dass die Arbeitslast mehr als einer Schwellendauer eines Zeitraums entspricht, der für die Verarbeitung von Netzwerkverkehr verwendet wird, Verzichten auf den Betrieb im Schlafmodus.
    • Beispiel 25 umfasst eine Vorrichtung zum Planen eines Interrupts, die Vorrichtung umfassend Mittel, um eine Arbeitslast auf der Grundlage von über eine drahtlose Kommunikation erhaltenen Netzwerkpaketen zu klassifizieren, Mittel zur Planung, wobei die Mittel zur Planung ausgebildet sind zum Bestimmen von Heuristiken für Plattformaktivitäten, die der Arbeitslast entsprechen, und Planen von Netzwerk-Interrupten auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken.
    • Beispiel 26 umfasst die Vorrichtung von Beispiel 25, wobei das Mittel zum Klassifizieren ausgebildet ist, um die Arbeitslast zu klassifizieren, durch ein Bestimmen einer Wahrscheinlichkeit, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
    • Beispiel 27 umfasst die Vorrichtung von Beispiel 26, wobei das Mittel zum Klassifizieren ausgebildet ist, um eine Anzahl von Merkmalen aus der Anzahl von Paketen zu extrahieren, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei die Vorhersage auf dem Merkmalsvektor basiert.
    • Beispiel 28 umfasst die Vorrichtung von Beispiel 25, wobei das Mittel zur Planung ausgebildet ist, um die Heuristiken unter Verwendung einer Datenstruktur, die den mit den entsprechenden Heuristiken verbundenen Arbeitslasten entspricht, zu identifizieren.
    • Beispiel 29 umfasst die Vorrichtung von Beispiel 28, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
    • Beispiel 30 umfasst die Vorrichtung von Beispiel 25, wobei das Mittel zur Planung ausgebildet ist für die Planung der Netzwerk-Interrupte, um sie mit den hardwarebasierten Weck-Interrupten abzustimmen.
    • Beispiel 31 umfasst die Vorrichtung von Beispiel 25, wobei das Mittel zur Planung ausgebildet ist, um das Auftreten der hardwarebasierten Weck-Interrupte auf der Grundlage der Heuristiken zu bestimmen.
    • Beispiel 32 umfasst die Vorrichtung von Beispiel 25, wobei das Mittel zur Planung ausgebildet ist zum, als Reaktion auf die Bestimmung, dass die Arbeitslast mehr als einer Schwellendauer eines Zeitraums entspricht, der für die Verarbeitung von Netzwerkverkehr verwendet wird, Verzichten auf den Betrieb im Schlafmodus.
    • Beispiel 33 umfasst eine Vorrichtung zum Planen eines Interrupts, die Vorrichtung umfassend mindestens einen Speicher und eine Prozessorschaltungsanordnung, umfassend eines oder mehrere aus mindestens einem von einer zentralen Verarbeitungseinheit, einer Grafikverarbeitungseinheit, einer neuronalen Verarbeitungseinheit oder einem digitalen Signalprozessor, wobei das mindestens eine von der zentralen Verarbeitungseinheit, der Grafikverarbeitungseinheit, der neuronalen Verarbeitungseinheit oder dem digitalen Signalprozessor eine Steuerschaltungsanordnung zur Steuerung der Datenbewegung innerhalb der Prozessorschaltungsanordnung, eine arithmetische und logische Schaltungsanordnung zur Durchführung einer oder mehrerer erster Operationen entsprechend den Anweisungen und ein oder mehrere Register zur Speicherung eines Ergebnisses der einen oder mehreren ersten Operationen, der Anweisungen in der Vorrichtung aufweist, einem Feld-programmierbaren Gate-Array (FPGA), wobei das FPGA eine Logikgatterschaltungsanordnung, eine Mehrzahl konfigurierbarer Verbindungen und eine Speicherungsschaltungsanordnung umfasst, wobei die Logikgatterschaltungsanordnung und die Verbindungen ausgebildet sind zum Durchführen einer oder mehrerer zweiter Operationen, wobei die Speicherungsschaltungsanordnung ausgebildet ist zum Speichern eines Ergebnisses der einen oder mehreren zweiten Operationen, oder einer Anwendungsspezifischen integrierten Schaltungsanordnung (ASIC) umfassend eine Logikgatterschaltungsanordnung ausgebildet zur Durchführung einer oder mehrerer dritter Operationen, wobei die Prozessorschaltungsanordnung ausgebildet ist, um mindestens eine der ersten Operationen, der zweiten Operationen oder der dritten Operationen durchzuführen zum Klassifizieren einer Arbeitslast auf der Grundlage von über eine drahtlose Kommunikation erhaltenen Netzwerkpaketen, Bestimmen von Heuristiken für Plattformaktivitäten, die der Arbeitslast entsprechen und Planen von Netzwerk-Interrupten auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken.
    • Beispiel 34 umfasst die Vorrichtung von Beispiel 33, wobei die Prozessorschaltungsanordnung ausgebildet ist, um die Arbeitslast zu klassifizieren, indem sie eine Wahrscheinlichkeit bestimmt, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
    • Beispiel 35 umfasst die Vorrichtung von Beispiel 34, wobei die Prozessorschaltungsanordnung ausgebildet ist, eine Anzahl von Merkmalen aus der Anzahl von Paketen zu extrahieren, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei die Vorhersage auf dem Merkmalsvektor basiert.
    • Beispiel 36 umfasst die Vorrichtung von Beispiel 33, wobei die Prozessorschaltungsanordnung ausgebildet ist, um die Heuristiken unter Verwendung einer Datenstruktur zu bestimmen, die Arbeitslasten entspricht, die mit entsprechenden Heuristiken verbunden sind.
    • Beispiel 37 umfasst die Vorrichtung von Beispiel 36, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
    • Beispiel 38 umfasst die Vorrichtung von Beispiel 33, wobei die Prozessorschaltungsanordnung ausgebildet ist für die Planung der Netzwerk-Interrupte, um sie mit den hardwarebasierten Weck-Interrupten abzustimmen.
    • Beispiel 39 umfasst die Vorrichtung von Beispiel 33, wobei die Prozessorschaltungsanordnung ausgebildet ist für die Identifizierung des Auftretens der hardwarebasierten Weck-Interrupte auf der Grundlage der Heuristiken.
    • Beispiel 40 umfasst die Vorrichtung von Beispiel 33, wobei die Prozessorschaltungsanordnung ausgebildet ist zum, als Reaktion auf die Bestimmung, dass die Arbeitslast mehr als einer Schwellendauer eines Zeitraums entspricht, der für die Verarbeitung von Netzwerkverkehr verwendet wird, Verzichten auf den Betrieb im Schlafmodus.
    • Beispiel 41 umfasst die Vorrichtung von Beispiel 33, wobei die Planung der hardwarebasierten Weck-Interrupte auf der Grundlage der Netzwerk-Interrupte die Leistungseinsparungen erhöht.
  • Obgleich bestimmte beispielhafte Verfahren, Vorrichtungen und Fertigungsartikel hierin offenbart wurden, ist der Schutzbereich der Abdeckung dieses Patents nicht darauf beschränkt. Vielmehr deckt dieses Patent alle Verfahren, Vorrichtungen und Fertigungsartikel ab, die einigermaßen in den Schutzbereich der Ansprüche dieses Patents fallen.
  • Die folgenden Ansprüche sind hiermit in diese detaillierte Beschreibung aufgenommen, wobei jeder Anspruch als getrenntes Ausführungsbeispiel der vorliegenden Offenbarung für sich steht.

Claims (15)

  1. Ein Verfahren zum Planen von Interrupten, das Verfahren umfassend: Klassifizieren einer Arbeitslast durch Ausführen einer Anweisung mit einem Prozessor, der ein maschinelles Lernmodell implementiert, auf der Grundlage von Netzwerkpaketen, die über eine drahtlose Kommunikation erhalten werden; Bestimmen von Heuristiken von Plattformaktivitäten, die der Arbeitslast entsprechen, durch Ausführen einer Anweisung mit dem Prozessor; und Planen von Netzwerk-Interrupten auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken durch Ausführen einer Anweisung mit dem Prozessor.
  2. Das Verfahren gemäß Anspruch 1, wobei das Klassifizieren der Arbeitslast das Bestimmen einer Wahrscheinlichkeit umfasst, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
  3. Das Verfahren gemäß Anspruch 2, ferner umfassend ein Extrahieren einer Anzahl von Merkmalen aus der Anzahl von Paketen, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei der Merkmalsvektor zum Trainieren des maschinellen Lernmodells verwendet wird.
  4. Das Verfahren gemäß einem der vorhergehenden Ansprüche, ferner umfassend die Bestimmung der Heuristiken unter Verwendung einer Datenstruktur, die den mit den entsprechenden Heuristiken verbundenen Arbeitslasten entspricht.
  5. Das Verfahren gemäß Anspruch 4, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
  6. Das Verfahren gemäß einem der Ansprüche 1 bis 5, wobei die Planung die Planung der Netzwerk-Interrupte umfasst, um sie mit den hardwarebasierten Weck-Interrupten abzustimmen.
  7. Das Verfahren gemäß einem der Ansprüche 1 bis 6, ferner umfassend die Identifizierung des Auftretens der hardwarebasierten Weck-Interrupte auf der Grundlage der Heuristiken.
  8. Das Verfahren gemäß einem der Ansprüche 1 bis 7, ferner umfassend, als Reaktion auf die Bestimmung, dass die Arbeitslast mehr als einer Schwellendauer eines Zeitraums entspricht, der für die Verarbeitung von Netzwerkverkehr verwendet wird, Verzichten auf den Betrieb im Schlafmodus.
  9. Eine Vorrichtung zum Planen eines Interrupts, die Vorrichtung umfassend: ein maschinelles Lernmodell, das von einem Hardware-Prozessor ausgeführt wird, um eine Arbeitslast auf der Grundlage von über eine drahtlose Kommunikation erhaltenen Netzwerkpaketen zu klassifizieren, und eine Leistungsmanagement-Steuerung zum: Bestimmen von Heuristiken für Plattformaktivitäten, die der Arbeitslast entsprechen; und Planen von Netzwerk-Interrupten auf der Grundlage von hardwarebasierten Weck-Interrupten aus einem Schlafmodus unter Verwendung der Heuristiken.
  10. Die Vorrichtung gemäß Anspruch 9, wobei das maschinelle Lernmodell die Arbeitslast klassifiziert, indem es eine Wahrscheinlichkeit bestimmt, dass eine Anzahl von Paketen der Arbeitslast entspricht, basierend auf einem trainierten Modell.
  11. Die Vorrichtung gemäß Anspruch 10, wobei das maschinelle Lernmodell ausgebildet ist, eine Anzahl von Merkmalen aus der Anzahl von Paketen zu extrahieren, die statistischen Charakteristika von Paketen entsprechen, um einen Merkmalsvektor zu erzeugen, wobei der Merkmalsvektor zum Trainieren des maschinellen Lernmodells verwendet wird.
  12. Die Vorrichtung gemäß Anspruch 9, 10 oder 11, wobei die Leistungsmanagement-Steuerung ausgebildet ist, um die Heuristiken unter Verwendung einer Datenstruktur zu bestimmen, die Arbeitslasten entspricht, die mit entsprechenden Heuristiken verbunden sind.
  13. Die Vorrichtung gemäß Anspruch 12, wobei die Anweisung den einen oder die mehreren Prozessoren veranlasst, Einträge in der Datenstruktur entsprechend einer Richtlinie anzupassen.
  14. Ein computerlesbares Medium umfassend Anweisungen, die, wenn sie ausgeführt werden, einen oder mehrere Prozessoren veranlassen, das Verfahren gemäß Anspruch 1-8 zu implementieren.
  15. Eine Vorrichtung umfassend Mittel zur Durchführung eines Verfahrens gemäß den Ansprüchen 1-8.
DE102022124386.9A 2021-09-24 2022-09-22 Verfahren und vorrichtungen, um den netzwerkverkehr auszurichten und den leistungsverbrauch zu verbessern Pending DE102022124386A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/484,861 US20220011852A1 (en) 2021-09-24 2021-09-24 Methods and apparatus to align network traffic to improve power consumption
US17/484,861 2021-09-24

Publications (1)

Publication Number Publication Date
DE102022124386A1 true DE102022124386A1 (de) 2023-03-30

Family

ID=79173628

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022124386.9A Pending DE102022124386A1 (de) 2021-09-24 2022-09-22 Verfahren und vorrichtungen, um den netzwerkverkehr auszurichten und den leistungsverbrauch zu verbessern

Country Status (3)

Country Link
US (1) US20220011852A1 (de)
CN (1) CN115866726A (de)
DE (1) DE102022124386A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230141290A (ko) * 2022-03-31 2023-10-10 리벨리온 주식회사 뉴럴 프로세싱 장치

Also Published As

Publication number Publication date
US20220011852A1 (en) 2022-01-13
CN115866726A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
DE102020208110A1 (de) Verfahren und vorrichtungen zum aggregieren von telemetriedaten in einer edge-umgebung
DE112019000392T5 (de) Verfahren und vorrichtung zum betreiben einer mobilen kamera mit geringem stromverbrauch
DE112012005419B4 (de) System und Verfahren für eine effiziente dienstinstanzenorientierte Energieverwaltung im Internet der Dinge
US20220036123A1 (en) Machine learning model scaling system with energy efficient network data transfer for power aware hardware
Jayaraman et al. Scalable energy-efficient distributed data analytics for crowdsensing applications in mobile environments
WO2021143155A1 (zh) 模型训练方法及装置
DE102020108374A1 (de) Verfahren und vorrichtung zur laufzeitmehrfachplanung von software, die in einem heterogenen system ausgeführt wird
DE102018001535A1 (de) Laufzeit-prozessoroptimierung
Wang et al. Mobility-aware partial computation offloading in vehicular networks: A deep reinforcement learning based scheme
DE102020102783A1 (de) Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung
DE102020133128A1 (de) Verfahren und vorrichtungen zur koordinierung von netzverkehr zwischen funknetzgeräten und computerplattformen
US9990403B2 (en) System and a method for reasoning and running continuous queries over data streams
DE102022203266A1 (de) Verfahren und einrichtungen zum automatischen aktualisieren von künstliche-intelligenz-modellen für autonome fabriken
WO2019062405A1 (zh) 应用程序的处理方法、装置、存储介质及电子设备
Lim et al. Adaptive data acquisition strategies for energy-efficient, smartphone-based, continuous processing of sensor streams
US20200358685A1 (en) Methods and apparatus to generate dynamic latency messages in a computing system
DE102022208684A1 (de) Verfahren und einrichtung für resilienz mithilfe digitaler zwillinge
WO2022002068A1 (zh) 数据处理方法、系统、设备及存储介质
DE102022124386A1 (de) Verfahren und vorrichtungen, um den netzwerkverkehr auszurichten und den leistungsverbrauch zu verbessern
US20220326757A1 (en) Multi-timescale power control technologies
Jha et al. Multiobjective deployment of data analysis operations in heterogeneous IoT infrastructure
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
Akki et al. Energy efficient resource scheduling using optimization based neural network in mobile cloud computing
Song et al. Adaptive and collaborative edge inference in task stream with latency constraint
Marin et al. Reaching for the clouds: contextually enhancing smartphones for energy efficiency