CN115866726A - 用于使网络通信量对齐以改善功耗的方法和装置 - Google Patents
用于使网络通信量对齐以改善功耗的方法和装置 Download PDFInfo
- Publication number
- CN115866726A CN115866726A CN202211124580.6A CN202211124580A CN115866726A CN 115866726 A CN115866726 A CN 115866726A CN 202211124580 A CN202211124580 A CN 202211124580A CN 115866726 A CN115866726 A CN 115866726A
- Authority
- CN
- China
- Prior art keywords
- network
- workload
- circuitry
- interrupt
- hardware
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3209—Monitoring remote activity, e.g. over telephone lines or network connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0212—Power saving arrangements in terminal devices managed by the network, e.g. network or access point is master and terminal is slave
- H04W52/0216—Power 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
- H04W52/0274—Power 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/028—Power 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing 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)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Power Sources (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了用于使网络通信量对齐以改善功耗的方法、装置、***和制品。示例指令使一个或多个处理器用于:基于经由无线通信获得的网络分组来对工作负荷进行分类;确定与工作负荷相对应的平台活动的启发法;以及使用该启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
Description
技术领域
该公开总体上涉及计算平台和网络设备,并且更具体地涉及用于使网络通信量对齐以改善功耗的方法和装置。
背景技术
许多地点提供Wi-Fi,用于将启用Wi-Fi的设备连接到诸如互联网之类的网络。启用Wi-Fi的设备包括个人电脑、视频游戏机、手机、数码相机、平板电脑、智能电视、数字音频播放器等。Wi-Fi允许启用Wi-Fi的设备经由无线局域网(wireless local area network,WLAN)无线地访问互联网。为了向设备提供Wi-Fi连接性,Wi-Fi接入点在接入点(例如,热点)信号范围内与启用Wi-Fi的设备交换射频Wi-Fi信号。Wi-Fi使用介质访问控制(mediaaccess control,MAC)和物理层(physical layer,PHY)规范(例如,诸如电气和电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.11协议)的集合来实现。
附图说明
图1是在无线网络***中操作的示例计算设备平台的框图。
图2是图1的示例计算设备平台的框图。
图3是图2的示例计算设备平台的示例调制解调器的框图。
图4是图3的示例调制解调器的示例训练控制器的框图。
图5是图2的示例功率管理控制器的框图。
图6和图7是表示可被执行以实现图4的示例训练控制器从而将模型训练成用于将网络数据分组分类到工作负荷类别中的机器可读指令的流程图。
图8是表示可被执行以实现图2-图3的示例调制解调器从而实时对工作负荷类型进行分类的机器可读指令的流程图。
图9和图10是表示可被执行以实现图5的示例功率管理控制器从而使网络中断与硬件睡眠调度对齐的机器可读指令的流程图。
图11图示出图示使用本文公开的示例的功率节省的示例时序图。
图12是被构造用于执行图6-图10的指令以实现图1的示例计算设备的示例处理平台的框图。
图13是图12的处理器电路***的示例实现方式的框图。
图14是图12的处理器电路***的另一示例实现方式的框图。
图15是示例软件分发平台(例如,一个或多个服务器)的框图,该示例软件分发平台用于将软件(例如,与图6-图10的示例机器可读指令相对应的软件)分发给与终端用户和/或消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、转售、许可和/或分许可)、和/或原始装备制造商(original equipment manufacturer,OEM)(例如,用于包括在要分发给例如零售商和/或分发给诸如直接购买客户之类的其他终端用户的产品中)相关联的客户端设备。
附图并未按比例绘制。一般来说,贯穿(一个或多个)附图和所附书面说明书,相同的附图标记将用于指代相同或类似的部分。
当标识可被分开地引用的多个要素或组件时,本文使用描述符“第一”、“第二”、“第三”等。除非另有规定或基于它们的使用上下文理解,否则此类描述符并非旨在赋予优先级、物理顺序、或列表中的布置、或时间排序的任何含义,而仅仅是用作为了便于理解所公开的示例而分开地指代多个要素或组件的标签。在一些示例中,描述符“第一”可以用于指代具体实施方式中的要素,而在权利要求中可以使用诸如“第二”或“第三”之类的不同描述符来指代相同的该要素。在此类情况下,应当理解,此类描述符仅用于易于引用多个要素或组件。
具体实施方式
无线网络利用不同的技术传送和接收信息。例如,用于无线通信的两种常见和广泛采用的技术是那些遵守电子和电气工程师学会(IEEE)802.11标准(诸如IEEE 802.11n标准和IEEE 802.11ac标准)的技术。
IEEE 802.11标准指定通用的介质访问控制(MAC)层,该MAC层提供各种功能来支持基于IEEE 802.11的无线LAN(WLAN)的操作。MAC层通过协调对共享无线电信道的访问并利用增强无线介质上通信的协议,管理和维护IEEE 802.11站之间(诸如调制解调器(例如,PC中的无线电网络接口卡(network interface card,NIC)、(一个或多个)其他无线设备或站(station,STA))与接入点(access point,AP)之间)的通信。
移动平台功率管理对于电池供电的小形状因子平台(诸如智能手机、平板电脑、可穿戴和IoT设备)有用。大多数移动平台工作负荷是通信驱动的,并且调制解调器(例如,无线无线电NIC)通常是平台的功耗源之一。随着对延长客户端平台(移动平台、非移动平台等)的电池寿命,以及定义无线链路(例如,一种通过接入点(AP)在互联网与客户端平台之间提供连接的无线分发方法)上等待时间和响应性的新的关键性能指标(key performanceindicator,KPI)的持续需求,迫切需要在不影响用户体验的情况下降低整体平台功耗。
调制解调器是一种将数据转换为适合传送介质的格式的硬件设备,以便数据可以从一个计算***传送到另一个计算***。近年来,调制解调器已集成到个人计算设备(诸如膝上型电脑、平板电脑、手机等)的平台上,以促进个人计算设备与网络之间的数据传送和数据连接。例如,调制解调器将来自网络(例如,来自AP)的数据转换为个人计算设备的处理器可以理解的形式,然后将数据发送到由处理器访问的存储器。集成平台的开发人员已设计和制造使此类集成平台能够高效地将数据移动到网络和主处理组件(例如,中央处理单元、加速器等)并且从网络和主处理组件(例如,中央处理单元、加速器等)移动数据的硬件和软件特征。此类特征可促进主处理组件与调制解调器之间的通信和/或协调***,其中调制解调器可以协调将数据发送到由主处理单元访问的存储器的特定时间。
在一些示例中,主处理组件与网络接口控制器(network interface controller,NIC)之间的协调通过使主处理组件能够在网络通信量空闲时以低功率状态操作来促进功率节省。例如,当网络通信量空闲时,期望调度CPU和/或其他硬件在睡眠模式下操作。然而,在一些处理***中,主处理组件和/或NIC不知道与由NIC正在处理的数据相对应的联网协议。因此,CPU不知道来自NIC的网络中断何时被接收,并且无法基于网络通信量来调度睡眠模式。因此,在此类处理***中,主处理元件根据网络活动为硬件组件(例如,存储器、显示器等)随机调度睡眠模式,并且当网络中断在NIC处被获得时,睡眠模式被中断。通过不使网络唤醒与其余***活动(例如,CPU、显示器、存储器等)对齐,计算***的睡眠模式更短,导致功耗更高和/或电池寿命更短。本文公开的示例使网络唤醒中断与其余计算设备活动对齐,以增加计算设备空闲,增加功率节省和/或延长电池寿命。
为了确定网络中断何时被调度,本文公开的示例首先使用基于AI的模型(例如,机器学习模型、深度学习模型、神经网络)对网络工作负荷进行分类(例如,确定工作负荷类型)。本文公开的示例训练模型用于将网络数据分组分类到工作负荷类别(例如,工作负荷类型)中。本文公开的示例包括调制解调器/NIC,当活跃时,推断传入的网络数据分组的类型,并基于网络数据分组的类型来对工作负荷类型进行分类。
在工作负荷类型已被确定(例如,被标识、被分类等)后,本文公开的示例确定标识的工作负荷类型的相对应协议,以确定NIC处何时发生网络中断和/或网络活动。在协议被确定后,本文公开的示例使网络中断与硬件睡眠调度和唤醒中断对齐(例如,使网络中断与硬件唤醒时的持续时间对齐)。使用本文公开的示例,计算***可以实现在流送视频方面5%的功率节省,在视频呼叫方面12-20%的功率节省,以及在视频会议方面8-10%的功率节省。
本文公开的示例实现人工智能,以基于获得的网络数据对工作负荷类型进行分类,这使处理器能够使网络通信量与用于硬件的睡眠调度对齐。包括机器学习(machinelearning,ML)、深度学习(deep learning,DL)和/或其他人工机器驱动逻辑的人工智能(Artificial intelligence,AI)使机器(例如,***、计算机、逻辑电路等)能够使用模型来处理输入数据,以便基于模型先前经由训练过程所学习的模式和/或关联来生成输出。例如,可以利用数据来训练模型以识别模式和/或关联,并且在处理输入数据时遵循这样的模式和/或关联,使得(一个或多个)其他输入得到与所识别的模式和/或关联一致的(一个或多个)输出。
存在许多不同类型的机器学习模型和/或机器学习体系结构。在本文公开的示例中,使用了神经网络模型。使用神经网络模型使得能够基于网络数据分组的分组特征对网络数据分组进行分类,这些分组特征诸如长度(例如,与同一工作负荷流相对应的分组数量)、到达间隔时间、源、目的地等。一般而言,适于在本文所公开的示例方法中使用的机器学习模型/架构将是循环神经网络(Recurrent Neural Network,RNN)。然而,可以附加地或替代地使用其他类型的机器学习模型,诸如长短期记忆(Long/Short Term Memory,LSTM)模型、径向基模型、Kohonen自组织模型等。
一般而言,实现ML/AI***涉及至少两个阶段:学习/训练阶段和推断阶段。在学习/训练阶段,使用训练算法基于例如训练数据将模型训练成根据模式和/或关联来操作。一般而言,模型包括引导输入数据如何被变换成输出数据的内部参数,诸如通过模型内的一系列节点和连接来将输入数据变换成输出数据。另外,将超参数用作训练过程的一部分,以控制学习如何被执行(例如,学习率、机器学习模型中要使用的层数等)。超参数被定义为是在发起训练过程之前被确定的训练参数。
可以基于ML/AI模型的类型和/或期望输出来执行不同类型的训练。例如,有监督训练使用输入和相对应的期望(例如,标注的)输出来选择用于ML/AI模型的减少模型误差的参数(例如,通过在所选择参数的组合上进行迭代)。如本文所使用的,标注是指机器学习模型的预期输出(例如,分类、预期输出值等)。替代地,无监督训练(例如,用于深度学习、机器学习的子集等)涉及从输入推断模式来选择用于ML/AI模型的参数(例如,没有预期(例如,标注的)输出的益处)。
在本文所公开的示例中,使用随机梯度下降来训练ML/AI模型。然而,可附加地或替代地使用任何其他训练算法。在本文所公开的示例中,训练被执行,直到在预测和分类网络数据分组时达到可接受的误差量。在本文公开的示例中,训练在计算设备处(例如,本地地)被执行。在一些示例中,训练远程地(例如,在中央设施处)被执行。使用控制学习如何被执行的超参数(例如,学习率、要在机器学习模型中使用的层数等)来执行训练。在本文公开的示例中,使用控制每个网络流的分组特征和分组的数量的超参数。例如,基于计算设备和/或中央设施的计算能力、以及实时要求来选择此类超参数。在一些示例中,可以执行重新训练。此类重新训练可以响应于未知的分组特征、新的工作负荷类别等执行。
使用训练数据来执行训练。在本文所公开的示例中,训练数据源自本地生成的数据。由于有监督训练被使用,因此训练数据被标注。由预处理控制器将标注应用于训练数据。在一些示例中,例如,使用指示网络数据分组的工作负荷类型的已知特征对训练数据进行预处理。
一旦训练完成,就将该模型部署为用作可执行构造,该可执行构造基于模型中定义的节点和连接的网络来处理输入并提供输出。该模型存储在个人计算设备的调制解调器处。模型然后可以由调制解调器的预测控制器执行。在其他示例中,网络接口卡(NIC)将模型存储在个人计算设备处,主机网络堆栈在个人计算设备处被执行。附加地和/或替代地,如果调制解调器没有执行此类模型的资源(例如,计算能力),则模型将在外部存储。
一旦被训练,所部署的模型就可以在推断阶段中***作以处理数据。在推断阶段,将要分析的数据(例如,实时数据)输入到模型,并且该模型执行以创建输出。该推断阶段可以被认为是AI“思考”以便基于其从训练中学习到的来生成输出(例如,通过执行模型以应用实时数据的所学习的模式)。在一些示例中,输入数据在被用作至机器学习模型的输入之前经历预处理。此外,在一些示例中,输出数据在由AI模型生成之后可以经历后处理,以将该输出变换成有用的结果(例如,数据的显示、要由机器执行的指令,等等)。例如,工作负荷可被分类为实时或非实时工作负荷,其中实时工作负荷进一步分类为实时工作负荷的类型(例如,仅音频、音频视频、游戏等),并且非实时工作负荷可被进一步分类为非实时工作负荷的类型。
在一些示例中,可以捕捉所部署模型的输出并将其作为反馈来提供。通过分析该反馈,能够确定所部署模型的准确性。如果反馈指示所部署的模型的准确性低于阈值或其他标准,则可以使用反馈和更新的训练数据集、超参数等来触发更新的模型的训练,以生成更新的所部署模型。
图1是在无线网络***中操作的示例计算设备平台100的框图。图1的示例无线网络***包括示例计算设备平台100、示例网络102和示例无线网络设备104。
在图1中,示例计算设备平台100是在计算设备处实现的、用于执行工作负荷(诸如应用、程序、过程等)的硬件和/或软件。示例计算设备平台100定义计算设备的功能集合。计算设备平台100可以是任何硬件计算设备(诸如手机、膝上型电脑、平板电脑、桌面型电脑等)、任何操作***平台、任何客户端/服务器平台(诸如Web服务器)、任何移动平台(诸如移动应用平台)、任何云平台和/或用于执行数据分组的任何其他适合的平台。下面结合图2进一步详细描述示例计算设备平台100。
在图1中,示例网络102是互联网。然而,网络102可以使用任何合适的(一个或多个)有线和/或无线网络来实现,该(一个或多个)有线和/或无线网络包括例如一个或多个数据总线、一个或多个局域网(Local Area Network,LAN)、一个或多个无线LAN(wirelessLAN,WLAN)、一个或多个蜂窝网络、一个或多个私有网络、一个或多个公共网络等。示例网络102与示例无线网络设备104结合,使计算设备平台100能够发送和接收由计算设备平台100的用户请求的网络信息。
在图1中,示例无线网络***包括示例无线网络设备104,以使示例计算设备平台100能够连接到示例网络102。在图1中,示例无线网络设备104是接入点(AP)。然而,示例无线网络设备104可以是将示例计算设备平台100连接到示例网络102的任何其他类型的硬件和/或软件设备。示例无线网络设备104可以为多个计算设备平台提供服务。例如,无线网络设备104可以将任意数量的客户端平台(诸如手机、膝上型电脑、平板电脑等)连接到网络102,以接收互联网数据和/或网络数据。在一些示例中,当计算设备平台100与无线网络设备104建立Wi-Fi(802.11)连接时,无线网络设备104将互联网和/或网络数据传达和/或路由到计算设备平台100。通常,无线网络设备104与计算设备平台100之间的Wi-Fi连接是通用的,并遵循802.11协议(例如,无线网络设备104不知道计算设备平台100的工作负荷和用户要求,并根据802.11协议正常操作)。然而,在本文公开的示例中,示例计算设备平台100建立与示例无线网络设备104的Wi-Fi连接,并基于工作负荷要求和用户要求来协调网络数据取回和传送的定时。虽然图1对应于WI-FI,但本文公开的示例可以结合其他无线通信技术(诸如蜂窝、5G、6G等)使用。
图2是图1的示例计算设备平台100的框图,该示例计算设备平台100用于基于与所归类的工作负荷类型相对应的网络通信量使网络中断与睡眠/唤醒调度对齐,以确保在硬件组件处于唤醒时发生网络中断。如本文所使用,网络通信量、网络数据、网络分组数据、传入网络数据和分组数据是定义为从示例网络102接收、将存储在计算设备100的存储器中、并由在示例计算管芯206上实现的处理器对其操作以执行操作的数据的术语。如本文所使用,多个中断触发器、中断和中断触发器是定义为被生成以引起计算管芯206和/或示例网络接口芯片(network interface chip,NIC)200执行一个或多个动作的事件的术语。示例计算设备平台100包括示例NIC 200、示例基础管芯202、示例PCLe根端口204、示例计算管芯206、示例OS 208、示例功率管理控制器(power management controller,PMC)210、示例存储器控制器212和示例存储器214。存储器214可以是任何合适的存储器,诸如易失性随机存取存储器(random access memory,RAM)、缓存存储器等。在一些示例中,图2的组件可以在图1的示例无线网络设备104中实现。
在图2中,示例计算设备平台100包括示例NIC 200,用于调解示例网络102与示例计算管芯206之间的数据通信,以及协调示例NIC 200与图1的示例无线网络设备104之间的数据交换。示例NIC 200可以是和/或包括调制解调器。示例NIC 200可以将网络数据变换为由示例计算管芯206可读且可执行的信息。示例NIC 200可以确定接收的网络数据的类型(例如,工作负荷和通信量类型),并传达这些类型,以促进基于硬件的睡眠调度与同网络数据的类型相对应的网络通信量的协调。附加地和/或替代地,示例计算管芯206(例如,包括CPU、FGPA等)可以确定接收的网络数据的类型,并将这些类型提供至NIC 200以用于等待时间消息的生成。示例NIC 200可以缓冲网络数据,以允许示例计算管芯206进入不同的C状态。示例NIC 200可生成中断来唤醒存储器214和计算管芯206用于取回网络数据。NIC 200可以是调解示例无线网络设备104、示例NIC 200和示例计算管芯206之间的数据通信(例如,坐标缓冲和中断)的任何合适的硬件和/或软件接口。示例NIC 200可以处于不同的状态,这取决于示例计算设备平台100的不同状态(例如,打开或关闭)。当示例计算设备平台100打开时,示例NIC 200可以处于睡眠状态、空闲状态或活跃状态。示例NIC 200的状态还取决于来自示例无线网络设备104和/或更一般地,来自示例网络102的网络通信量。例如,当NIC 200从网络102接收数据时,当NIC 200将数据发送到存储器214,当NIC 200经由网络102将数据发送到不同计算设备时等等,NIC 200是活跃的。当NIC 200从示例网络102缓冲数据时,当NIC 200不包括要经由无线网络设备104发送到网络102的网络数据时,当NIC200不具有要经由无线网络设备104从网络102接收的网络数据等时,示例NIC 200是空闲的。当示例NIC 200并非正在从示例网络102和/或从示例存储器214接收数据时,当示例计算设备平台100关闭时等等,示例NIC 200处于睡眠状态。在一些示例中,NIC 200的状态与计算管芯206的C状态相关联。
在一些示例中,NIC 200在边缘设备处实现。例如,NIC 200的处理任务(例如,功能、操作等)可被迁移到边缘设备。在其他示例中,NIC 200在云平台处实现。例如,NIC 200的处理任务可以在云平台处迁移和/或虚拟化。在此类示例中,NIC 200减少在计算设备平台100处消耗的处理功耗和计算设备平台100处操作(例如,执行)的处理任务。下面结合图3和图4进一步详细描述示例NIC 200。
在图2中,示例计算设备平台100包括计算机总线,用于将示例NIC 200连接到示例存储器控制器212和示例计算管芯206。计算机总线促进NIC 200与示例计算设备平台100的其他设备之间的通信。例如,计算机总线从NIC 200获得通知、消息、信息、数据等,并将数据定向到计算设备平台100的适当硬件组件。在一些示例中,计算机总线包括在NIC 200中。附加地和/或替代地,示例计算设备平台100包括任何数量的计算机总线,用于连接计算设备平台100的不同硬件组件。计算机总线是***组件互连快速(peripheral componentinterconnect express,PCI-e)设备。附加地和/或替代地,计算机总线可以是加速图形端口(accelerated graphics port,AGP)、***组件互连扩展(peripheral componentinterconnect extended,PCI-X)设备和/或用于示例计算管芯206的任何其他适合的总线。通过这种方式,NIC 200可以将VDM消息(例如,边带消息)传递到示例基础管芯202。
在图2中,示例计算设备平台100包括示例基础管芯202,用于经由示例PCLe根端口204将示例存储器214和示例计算管芯206连接到计算机总线。示例基础管芯202代表示例计算管芯206生成事务请求,该示例计算管芯206通过本地总线(例如,结构设备管理接口(fabric device management interface,FDMI))互连。示例基础管芯202可以是和/或包括作为分立的设备实现或与示例计算管芯206集成的根复合体功能。在一些示例中,基础管芯202可能是将主机(例如,计算管芯206)与计算机总线接口连接的主机桥。
在图2中,示例计算设备平台100包括示例计算管芯206,用于实现一个或多个处理器来执行网络数据的工作负荷执行。示例计算管芯206可以是和/或包括CPU、FPGA、GPU、神经处理单元(neural processing unit,NPU)、加速器和/或执行工作负荷的任何其他类型的硬件。示例计算管芯206包括多种功率模式,统称为“C状态”或“C模式”。C状态使示例计算管芯206能够进入特定的功率节省模式。例如,第一C状态(C0)表明计算管芯206正在使用全功率进行操作。第二C状态(C1)表明示例计算管芯206中只有一部分在全功率下操作,但另一个部分被关闭(例如,没有提供的功率)。第三C状态(C2)表明示例计算管芯206中一半以上的硬件被关闭,但处理器硬件的较小部分仍在操作。第四C状态(C3)表明示例计算管芯206处于睡眠状态(例如,硬件被关闭并且被提供给计算管芯206的功率被减少)。在一些示例中,计算管芯206进入与上面未描述的不同功率节省水平相对应的不同的C状态。当示例计算管芯206进入大于第一C状态的C状态时,示例计算设备平台100的功耗被降低,从而节省电池寿命。如下文进一步所描述,基于NIC 200正在执行的工作负荷的类型,向示例计算管芯206告知要进入的C状态级别和用于进入C状态的调度。例如,NIC 200可以确定工作负荷类型,以标识通信的类型和/或协议(例如,视频会议、音频流送、视频流送(YouTube、Netflix、HBO Max等)等)。响应于确定工作负荷类型,NIC 200使用边带消息经由基础管芯202将工作负荷类型传达给计算管芯206的PMC 210。通过这种方式,PMC210可以基于睡眠调度和/或启发法来生成网络中断调度,以基于工作负荷类型使网络中断与硬件睡眠调度对齐。
在图2中,图1的示例OS 208是管理计算管芯206以管理计算设备100的硬件、管理软件资源的软件***,和/或为计算机程序和/或应用提供服务器。
在图2中,示例PMC 210基于与所获得的工作负荷类型相对应的平台活动(例如,在工作负荷运行的同时,显示器唤醒、热信息、来自不同源(例如,OS、应用等)的中断)的启发法(也称为启发法)为计算管芯206、存储器控制器212、存储器214、基础管芯202和/或NIC200生成网络中断调度,该网络中断调度与获得的工作负荷类型相对应,以使与网络通信量相对应的网络中断和与工作负荷类型相对应的硬件组件的唤醒中断对齐。此外,PMC 210确定何时由于NIC 200处获得数据的频率而可能无法进入睡眠模式。例如,特定工作类型可能如此频繁地发送数据,以至于没有足够的时间引起任何硬件组件进入睡眠模式。当示例PMC210获得分类的工作负荷类型时,PMC 210使用查找表来标识与工作负荷相对应的启发法,以及工作负荷类型是否与睡眠调度相对应。如果工作负荷与睡眠调度不相对应,则PMC 210不为硬件生成睡眠调度。如果工作负荷对应于睡眠调度,则PMC 210基于根据工作负荷类型的睡眠调度确定工作负荷的网络中断调度。例如,与特定语音呼叫协议(例如,Teams call(团队呼叫)、Zoom call(变焦呼叫)等)相对应的第一工作负荷可对应于音频通信量和/或网络唤醒(例如,5毫秒(ms)的网络通信量,然后是15毫秒的空闲时间)。在此类示例中,PMC210可以调度网络中断,以在硬件处于唤醒的同时处置5毫秒的通信量。下文结合图5进一步描述示例PMC 210。
在图2中,示例计算设备平台100包括示例存储器控制器212,用于基于来自示例计算管芯206和/或示例NIC 200的指令从示例存储器214中存储和取回数据。例如,存储器控制器212包括读取输入(例如,指令)并基于输入来管理数据存储和驱逐的逻辑。在一些示例中,NIC 200指示存储器控制器212将网络数据给予计算管芯206,停止与计算管芯206的通信等。
图3是图2的示例NIC 200的框图。示例NIC 200包括示例网络分组控制器302、示例训练控制器304、示例预测控制器306和示例活跃状态控制器308。虚线表示训练模型的训练阶段,该模型用于基于网络数据分组预测工作负荷类型。例如,由网络分组控制器302和训练控制器304执行的操作发生在计算设备平台100的学习和/或训练阶段。实线表示基于经训练模型预测工作负荷类型的推断阶段。例如,由网络分组控制器302和活跃状态控制器308执行的操作发生在推断和/或预测阶段。应该理解的是,下面结合示例NIC 200描述的操作可以结合图2的示例计算管芯206执行。例如,计算管芯206可包括示例网络分组控制器302、示例训练控制器304、示例预测控制器306和示例活跃状态控制器308。在此类示例中,调制解调器和/或NIC(诸如NIC 200)可不包括用于执行以下描述的操作的处理能力和/或硬件,因此,计算管芯206(例如,CPU、FPGA、GPU、NPU和/或任何其他类型的加速器)执行以下各项操作:训练模型、推断网络数据分组的工作负荷和通信量类型以及与无线网络设备104通信缓冲时间等。
在图3中,示例NIC 200包括示例网络分组控制器302,用于控制进入、来自示例无线网络设备104的网络数据分组流。网络数据分组是由无线网络设备104携载的格式化数据单元,由有效载荷(例如,控制信息和用户数据)和五个元组组成:源地址、源端口、目的地地址、目的地端口和协议。例如,网络数据分组包括与图1的AP数据帧110类似的格式,其中有效载荷是帧主体并且五个元组是介质访问控制器(MAC)头部。示例网络分组控制器302可以标识和/或分离属于不同元组的网络数据分组。例如,网络分组控制器302收集可能与不同工作负荷相对应的网络数据分组(例如,计算设备平台可同时运行电子邮件应用和会议呼叫)。示例网络分组控制器302可以基于五个元组(例如,MAC头部)标识不同的网络数据分组,其中如果第一网络数据分组和第二网络数据分组具有匹配的元组,则网络数据分组对应于相同的工作负荷。示例网络分组控制器302在训练模式或推断模式下操作。例如,在训练模式下,网络分组控制器302将网络数据分组传递到训练控制器304。在其他示例中,在推断模式下,网络分组控制器302将网络数据分组传递到预测控制器306(例如,经由活跃状态控制器308或其他无线和/或有线通信装置)。图3的示例网络分组控制器302可以实现用于控制的装置。控制装置是包括至少一个处理器的硬件。
在图3中,示例NIC 200包括示例训练控制器304,将模型成用于将网络数据分组分类到工作负荷类型类别中。示例训练控制器304从示例网络分组控制器302获得网络数据分组,并将网络数据分组预处理为带有指派标签的样本,该样本与单个网络流(例如,工作负荷)相关并包括多个分组特征。示例训练控制器304将样本输入到示例神经网络,使模型能够通过样本的特征和指派标签学习网络数据分组对应的工作负荷的类型。例如,训练控制器304将网络数据分组分类到视频类别、游戏类别、音频类别、流送类别、批类别、分析类别和/或事务类别中。此外,示例训练控制器304可包括比上面列出的类别更多类别。一旦训练,示例训练控制器304生成并发布经训练的模型,并将模型提供到示例预测控制器306。下面结合图4进一步详细描述示例训练控制器304。图3的示例训练控制器304可以实现用于生成的装置。生成装置是包括至少一个处理器的硬件。
在图3中,示例NIC 200包括示例预测控制器306,用于将网络数据分组分类到工作负荷类型中,并为网络数据分组指派相对应的标签。示例预测控制器306以推断模式操作,使得示例预测控制器306从示例网络数据分组控制器302实时获得网络数据分组,这意味着预测控制器306获得当前(例如,最新)网络数据分组。示例预测控制器306基于分类来为网络数据分组指派优先级标签以及工作负荷类别标签。例如,预测控制器306分析网络数据分组中包括的信息(例如,能力信息字段和/或接入点(AP)数据帧的可选字段),该网络数据分组与工作负荷的优先级要求(例如,服务质量(Quality of Service,QoS))相对应,以为网络数据分组指派优先级级别。例如,相对于被分类到批类别的第二网络数据分组,被分类到游戏类别的第一网络数据分组对应于高级优先级。优先级的级别与工作负荷的时间和性能要求相对应。例如,语音呼叫(例如,在音频类别中)需要存储器214和计算管芯206的最小等待时间和高性能,这相对于不需要存储器214和计算管芯206具有如此高性能和/或最小等待时间的电子邮件(例如,在批类别中)。在一些示例中,预测控制器306指派工作负荷类别标签(例如,工作负荷类型标签),并标识在网络数据分组的帧主体中标记的优先级标签(例如,QoS标签)。一些网络数据分组包括此类优先级标签,而一些网络数据分组不包括此类优先级标签。因此,当网络数据分组不包括优先级信息时,示例预测控制器306基于工作负荷类别来确定优先级标签。在一些示例中,预测控制器306为网络数据分组控制器302处接收到的多于一个的网络数据分组标识多于一个的工作负荷类别。例如,预测控制器306接收属于单个网络流的数据分组的输入,但分析可同时在计算管芯206处运行的多个网络流。在此类示例中,预测控制器306基于工作负荷类别和优先级标签来帮助标识哪些网络流要进行缓冲,以及哪些不缓冲。在一些示例中,预测控制器306经由示例基础管芯202(例如,使用边带消息)将分类和标注的网络数据分组输出到示例PMC 210。在一些示例中,预测控制器306由活跃状态控制器308触发,以进行网络数据分组预测。图3的示例预测控制器306可以实现用于预测的装置。预测装置是包括至少一个处理器的硬件。
在图3中,示例NIC 200包括用于确定NIC 200的状态的示例活跃状态控制器308。示例活跃状态控制器308可以确定示例NIC 200是活跃、空闲还是非活跃。例如,活跃状态控制器308可以从NIC 200的硬件寄存器中获得指示NIC 200的状态的信息。在其他示例中,活跃状态控制器308可以查询图2的基础管芯202,以获得有关图2的计算管芯206的状态的信息(例如,打开或关闭),该状态与NIC 200的状态相对应和/或相关联。在一些示例中,每当NIC 200的状态更新时,活跃状态控制器308更新。在一些示例中,当NIC 200处于活跃状态时,活跃状态控制器308向预测控制器306发送触发。图3的示例活跃状态控制器308可以实现用于确定的装置。确定装置是包括至少一个处理器的硬件。
NIC 200的示例训练操作如下所描述。在训练操作期间,示例网络数据分组控制器302从示例无线网络设备104获得数据分组。在一些示例中,数据分组对应于一个工作负荷和/或不同的工作负荷。在一些示例中,网络分组控制器302被配置成用于在训练模式期间充当分组捕捉器(例如,分组嗅探器)。例如,网络分组控制器302可被触发,以基于过滤器(例如,由操作员、开发人员等设置的过滤器,该过滤器通过网络数据分组进行过滤并捕捉属于特定工作负荷的工作负荷)捕捉一个或多个特定工作负荷,以便预先标识用于训练的工作负荷类型。例如,网络分组控制器302被配置成用于捕捉属于一个或多个特定工作负荷的数据分组的类型。示例网络分组控制器302标识与一个工作负荷和/或更具体地,与单个网络流相对应的数据分组。网络流被定义为属于相同五个元组(例如,头部)的所有数据分组(例如,双向)。因此,示例网络分组控制器302标识具有相同五个元组(例如,源地址、源端口、目的地地址、目的地端口和协议)的数据分组并收集它们,创建与工作负荷相对应的数据分组的群组。示例网络分组控制器302收集与同一网络流相对应的数据分组,因为可以假设同一网络流的数据分组具有相同的优先级要求(例如,QoS要求),因此可以以流级别标识优先级要求。
示例网络分组控制器302向示例训练控制器304提供数据分组,以供学习数据分组并将其分类到工作负荷类型类别中。例如,训练控制器304获得被编组在一起作为单个流的数据分组,并开始以下过程:预处理(例如,标识工作负荷类型)数据分组,并将模型训练成用于在不具有来自附加源(例如,预处理器、数据库、程序开发人员等)的帮助的情况下标识工作负荷类型。
示例训练控制器304从示例网络分组控制器302获得数据分组,并为数据分组指派优先级标记和工作负荷类型。例如,训练控制器304可以基于数据分组的帧主体来确定优先级标记(例如,QoS)。不同的工作负荷需要定义的QoS标记才能执行。因此,应用(例如,工作负荷)的开发人员可以在应用头部和/或元数据中定义执行应用的功能所需的质量类型。通过网络(例如,网络102)传送时,质量定义可以在数据分组的帧主体中实现,并且示例训练控制器304可以分析帧主体并标识服务质量。工作负荷的QoS可以通过定义计算设备平台100在工作负荷的执行期间必须满足的最小值和/或最大值来定义。此类值可对应于分组丢失、比特率、吞吐量、抖动、传送延迟、等待时间、可用性等。例如,语音呼叫工作负荷可能需要计算设备平台100以最小的分组丢失和传送延迟以及高吞吐量和比特率来执行工作负荷。在一些示例中,优先级标记(例如,QoS标记)是与排名相对应的数字值,其中较低的值表明工作负荷不需要高服务水平,而较高的值表明工作负荷需要高服务水平。在一些示例中,应用和/或软件开发人员可能无法定义优先级要求,或者无线网络设备104可能不支持数据分组中的优先级字段能力。在此类示例中,训练控制器304可以基于工作负荷类型来标识优先级标记(例如,优先级要求)。
示例训练控制器304从示例网络分组控制器302获得数据分组(例如,包括和/或排除QoS标记),并从与同一网络流(例如,工作负荷)相对应的数据分组中选择n个分组样本,其中n是数据分组的数量。例如,训练控制器304基于NIC 200的计算能力来确定分组样本的数量n。例如,NIC 200可以是任何大小的,并包括任意数量的硬件组件,这些组件可以处理最多特定数量和一定速度的数据。因此,n是基于示例NIC 200的硬件和/或软件特征选择的。
在一些示例中,网络分组控制器302选择用于提供给训练控制器304的n个分组样本。在一些示例中,网络分组控制器302在向训练控制器304提供样本之前基于针对该工作负荷捕捉的分组跟踪,为这n个分组样本指派工作负荷标签。例如,在训练模式期间为网络分组控制器302设置的过滤器可促进基于数据分组将分组跟踪存储和/或保存在特定文件中,其中该文件基于工作负荷类型来命名。例如,文件packet_audio_streaming(分组_音频_流送)可包括和/或以其他方式包含与音频流送工作负荷相对应的分组样本。
示例训练控制器304从n个样本中提取f个分组特征,其中f是n个分组样本中的一个分组样本的特征数量。示例训练控制器304基于针对该工作负荷捕捉的分组跟踪来为n个分组样本和f个特征指派工作负荷标签。
当示例训练控制器304为n个分组样本标记和/或指派标签时,示例训练控制器304利用这n个分组样本和f个特征来训练模型。例如,训练控制器304输入具有相对应的f个特征的经标注的n个分组样本,并将这f个特征与工作负荷类型相关联。示例训练控制器304在训练期间输入与不同工作负荷相对应的多组n个分组样本。示例训练控制器304可暂停训练,以相对于随机数据集(例如,随机选择的数据分组)评估和/或测试模型。例如,训练控制器304可以通过将数据集拆分为K个部分/折叠来利用K倍交叉验证(K-Fold Crossvalidation),其中每个折叠在某个点处用作测试集。当模型的测试和评估评价是否已达到某个误差量时,示例训练控制器304发布模型,并向示例预测控制器306提供所发布的模型。
转到图4,图示示例训练控制器304的框图,该示例训练控制器304用于将模型训练成用于将数据分组分类到工作负荷类别中。工作负荷类别可以是音频工作负荷、视频工作负荷、流送和/或任何其他类型的工作负荷。示例训练控制器304包括示例预处理电路***402、示例特征提取电路***404、示例模型训练电路***406、示例误差损失控制器408和示例模型发布电路***410。
在图4中,示例训练控制器304包括用于为数据分组指派标签的示例预处理电路***402。示例预处理电路***402从示例网络分组控制器302获得数据分组,并选择属于单个网络流的n个数据分组来用作输入样本。在一些示例中,分组控制器302从网络分组控制器302获得n个数据分组。示例分组控制器302基于分组跟踪和/或与由示例网络分组控制器302捕捉的分组跟踪相对应的信息来为n个分组样本指派工作负荷标签。
示例预处理电路***402从n个分组样本中提取f个特征。例如,预处理电路***402可以提取诸如分组长度、到达间隔时间、分组方向和QoS标记之类的特征。示例预处理电路***402可以从分组样本中提取有助于标识工作负荷的类型的任何其他统计特征和/或特性。在一些示例中,预处理电路***402可以提取与分组样本的头部和/或帧主体相对应的特征。分组样本的头部可以有助于模型训练电路***406确定工作负荷类型。例如,电子邮件分组可包括特定于电子邮件的特定协议标识符(例如,在AP数据帧110的可选字段元素128中指示)。在其他示例中,预处理电路***402提取与分组样本的分组间隔到达时间相对应的特征,这些特征可以有助于模型训练电路***406确定工作负荷类型。例如,分组间隔到达时间可用于推断分组样本对应于音频工作负荷类别。例如,如果数据分组平均每20毫秒(ms)被发送到NIC 200,则n个分组样本的分组间隔到达时间可等于大约20毫秒,并具有某个标准差。在此类示例中,分组间隔到达时间等于约20ms的分组样本可对应于音频类别。此外,如果分组样本的长度相对较小(例如,比特长度)并且分组间隔到达时间为20ms,则分组样本对应于音频类别。
在图4中,示例预处理电路***402为n个分组样本指派所标识的工作负荷类别标签(例如,通过捕捉的分组跟踪来标识),然后将经标注的分组样本提供给示例特征提取电路***404。在一些示例中,预处理电路***402将元数据附加和/或预置到n个分组样本中,该元数据包括字符串或某一其他类型的标识符。此外,示例预处理电路***402可用与网络流的优先级要求相对应的优先级标记(例如,QoS标记)来标记n个分组样本。在一些示例中,预处理电路***402从网络分组控制器302获得与不同网络流相对应的第二组、第三组、第四组、第五组等数据分组,并选择要为其指派工作负荷标签的n个分组样本和f个特征。
在图4中,示例训练控制器304包括示例特征提取电路***404,用于基于来自示例预处理电路***402的经预处理的分组样本和特征来生成特征向量。示例特征提取电路***404生成或构建特征向量的派生值(例如,代表n个分组样本中的f个特征),这些值具有信息性和非冗余性,以促进训练控制器304的训练阶段。如本文所使用的,特征向量是代表某一工作负荷类别的特征的n维数组(例如,向量)。例如,特征可以是f个特征中的一个,诸如分组间隔到达时间、协议标识符、分组方向、源和目的地、分组长度(例如,比特大小)、QoS等。示例特征提取电路***404将处理的输入数据(例如,来自预处理电路***402的n个分组样本)简化为更易于管理的组(例如,特征)以供进行处理,同时以足够的完整性和准确性描述原始网络流(例如,数据分组)。在图4的图示示例中,特征提取电路***404标识数据分组的、与其预期操作(例如,工作负荷)相对应的特征。由预处理电路***402提供的特征数据促进模型训练电路***406将模型训练成用于将数据分组分类到工作负荷类别中。例如,图3的网络分组控制器302从无线网络设备104捕捉与视频呼叫相对应的多个网络数据分组。在此类示例中,特征提取电路***404提取数据分组特征,并且生成针对数据分组的向量,并将该向量提供至模型训练电路***406。在一些示例中,特征提取电路***404可提取与大输入数据集相对应的多个特征,它可提取与较小的输入数据集相对应的更少的特征等。f个特征的数量对应于示例计算设备平台100的计算能力。在示例特征提取电路***404提取分组样本的特征后,示例特征提取电路***404输出特征向量。
在图4中,示例训练控制器304包括示例模型训练电路***406,用于基于特征提取电路***404的(一个或多个)输出特征向量来训练模型。示例模型训练电路***406在训练模式下操作,在该训练模式下,它接收多个经预处理的分组样本(例如,(一个或多个)特征向量),生成预测,并基于该预测输出模型。针对示例模型训练电路***406生成模型,该模型训练电路***406接收与经预处理且已知的分组样本相对应的特征向量。例如,在训练模式期间,确认分组样本对应于特定工作负荷(例如,n个分组样本利用工作负荷类型标记进行标注),以使数据分组适合于学习。例如,模型训练电路***406接收指示分组样本的特征的特征向量,并标识分组样本的特征中、将分组样本的特征映射到工作负荷类别的模式,并输出捕捉这些模式的模型。示例模型训练电路***406向示例误差损失控制器408提供输出模型,以评估该模型。
在一些示例中,模型训练电路***406实现激活函数(诸如修正线性单元(rectified linear unit,ReLU)),用于帮助模型计及交互效应和非线性效应。交互效应是指一个变量A根据B的值而对预测(例如,工作负荷类型预测)的影响不同。非线性效应对应于:增加输入值而输出没有以相同的速度增加,或减少输入的值不引起输出以相同的速度减少。激活函数可包括多个激活层,这些激活层将预测向量输出到softmax激活函数。此类输出可是全连接向量,包括指示n个分组样本对应于视频工作负荷、音频工作负荷或流送工作负荷的可能性的值。此外,这些值可指示n个分组样本对应于额外的工作负荷(诸如网页浏览、文件下载等)的可能性。Softmax激活函数是这样的一种函数:它取得由K个实数组成的输入向量(例如,预测向量、全连接向量等),并将输入向量归一化为由与这K个实数的指数成正比的K个概率组成的概率分布。更简单地,softmax激活函数的输出通过将实数归一化为0至1之间的值,使激活函数的输出向量能够被解释为概率。示例模型训练电路***406可以实现任何其他方法来学习如何将数据分组分类到工作负荷类别中。在本文描述的示例中,模型训练电路***406标识三个类别:视频、音频和流送。然而,示例模型训练电路***406和/或更一般地,示例训练控制器304不限于上述三个类别,并且可以标识任意数量的工作负荷类型。
在图4中,示例训练控制器304包括示例误差损失控制器408,用于评估分类模型的性能。在一些示例中,误差损失控制器408实现交叉熵损失。在交叉熵损失中,示例误差损失控制器408确定,随着工作负荷类别的预测概率与由示例预处理电路***402指派的实际标签不同,损失值增加。在交叉熵损失中,完美的模型的损失为零。然而,鉴于存在数百种不同类型的工作负荷,实现零损失可能不切实际。因此,如果示例误差损失控制器408确定模型包括可接受的误差和/或损失量,则该模型已经准备好发布。在其他示例中,如果示例误差损失控制器408确定模型不满足可接受的误差和/或损失量和/或输出在可接受的误差和/或损失量范围内的概率,则示例误差损失控制器408可确定要由示例模型训练电路***406执行重新训练。此类重新训练可使模型调整在激活期间应用于n个数据分组和f个特征的权重,其中调节后的权重可生成更符合预期的输出向量。在一些示例中,误差损失控制器408与模型训练电路***406和模型发布电路***410通信。
在图4中,示例训练控制器304包括示例模型发布电路***410,用于发布由示例模型训练电路***406生成的模型,并将其提供给图3的示例预测控制器306。例如,模型发布电路***410从模型训练电路***406接收模型,并将其变换为可消耗格式以供发布。如本文所使用,可消耗格式被定义为打算旨在被使用摒弃随后被替换(例如,由更新的模型来替换)的模型。模型发布电路***410将模型变换为可消耗格式,以在训练和检测阶段不断更新预测控制器306。在一些示例中,模型发布电路***410确定接收到的模型是否可接受用于发布。例如,模型发布电路***410可接收与视频、音频和流送工作负荷类相对应的新模型,但模型发布电路***410之前可能已被提供有与先前模型未通过预测控制器306消耗(例如,使用)的视频、音频和流送工作负荷类相对应的模型。在该示例中,模型发布电路***410可确定新接收的模型无法发布(例如,直到先前模型被消耗)。当模型发布电路***410无法将模型变换为可消耗格式并且因此无法向预测控制器306提供模型时,发生其中模型不可接受用于发布的其他示例。
回到图3的示例NIC 200,当示例训练控制器304向示例预测控制器306输出所发布的模型时,NIC 200进入推断操作。在推断期间,示例活跃状态控制器308检查NIC 200的状态。例如,活跃状态控制器308确定NIC 200处于睡眠状态、空闲状态还是活跃状态。活跃状态控制器308检查NIC 200的状态,以确定工作负荷分类是否要被生成。当示例活跃状态控制器308确定NIC 200处于活跃状态(例如,正在接收与当前工作负荷相对应的双向网络数据分组)时,示例活跃状态控制器308通知预测控制器306推断工作负荷类型。
示例预测控制器306可以从示例网络分组控制器302和/或从示例活跃状态控制器308获得网络数据分组。在一些示例中,当预测控制器306从网络分组控制器302获得网络数据分组时,网络分组控制器302标识与单个网络流相对应的数据分组,并将其提供给预测控制器306。示例预测控制器306将与单个网络流相对应的网络数据分组输入到经训练且已发布的模型。在一些示例中,预测控制器306从网络数据分组中提取特征。特征有助于模型确定数据分组的网络流的工作负荷类/类型。示例预测控制器306生成指示工作负荷类/类型的可能性的输出概率。例如,预测控制器306生成网络流是音频工作负荷的概率值、网络流是视频工作负荷的概率值、网络流是流送工作负荷的概率值等。在一些示例中,具有最高概率值的工作负荷类别被指派给网络流的网络数据分组。例如,如果网络数据分组对应于流送工作负荷,则预测控制器306生成当前网络数据分组是“流送”数据分组的标志、消息、通知等。
图5是图2的PMC 210的示例实现方式的框图。示例PMC 210包括示例接口502、示例网络中断调度电路***504、示例工作负荷类型/协议查找表506(例如,数据结构)和示例策略更新电路***508。但是图5的组件在图2的示例PMC 210中实现。图5的组件可以由示例计算设备平台100和/或示例无线网络设备104内的任何其他组件和/或电路***实现。
在图5中,示例接口502获得由示例NIC 200标识的工作负荷类型。示例接口502可以经由边带消息(例如,经由VDM消息)从NIC 200获得工作负荷类型,以允许PMC 210根据工作负荷类型生成网络中断调度从而与硬件睡眠调度对齐。此外,示例接口502可将指令传送到示例计算设备平台100的一个或多个组件,以基于睡眠调度而进入睡眠模式和/或从睡眠模式唤醒。
图5的示例网络中断调度电路***504基于硬件睡眠调度(使用与经分类的工作负荷相对应的启发法)来为计算设备平台100的组件生成网络中断调度。例如,当网络中断调度电路***504经由示例接口502从NIC 200获得工作负荷类型时,网络中断调度电路***504使用工作负荷类型-协议查找表506来标识与工作负荷类型相对应的工作负荷协议和/或启发法(例如,在工作负荷运行的同时,来自不同源(例如,OS、应用等)的显示器唤醒、热信息、中断)。基于工作负荷类型,工作负荷协议可以对应于何时从示例无线网络设备104发送数据分组和/或何时需要向示例无线网络设备104传送数据分组。示例网络中断调度电路***504可以确定特定工作负荷类型和/或相对应的协议对应于等待时间关键要求(例如,其中,在工作负荷时段内组件可以进入睡眠模式的时间不超过阈值量)。当网络中断调度电路***504确定工作负荷类型和/或相对应的协议对应于等待时间关键要求时,网络中断调度电路***504可能不生成睡眠模式,这是因为没有足够的时间让组件中的一个或多个进入到睡眠模式中。
如果图5的网络中断调度电路***504确定工作负荷类型和/或相对应的协议不对应于等待时间关键要求,则示例网络中断调度电路***504基于与工作负荷类型相对应的协议来生成与启发法(例如,硬件睡眠调度)对齐的网络中断调度。网络中断调度电路***504使用启发法围绕硬件睡眠调度来调度网络中断,以确保硬件处于唤醒时发生网络中断。例如,如果睡眠调度对应于达15ms的睡眠模式、然后是达5ms的唤醒模式活动,则网络中断调度电路***504将生成使网络中断对齐为在5ms的唤醒期间发生的网络中断调度。在一些示例中,网络中断调度电路***504可以基于睡眠状态(例如,C1、C2或C3)选择是否生成网络中断。在网络中断调度电路***504生成用于与硬件睡眠调度对齐的网络中断调度后,网络中断调度电路***504将指令传送到示例计算设备平台100的一个或多个组件,以引起该一个或多个组件基于生成的网络中断调度来生成网络中断。
在图5中,示例工作负荷类型/协议查找表506是一种这样的数据结构:它将工作负荷与相对应的协议(例如,当数据交换将在工作负荷期间发生时)和/或启发法相结合地存储。通过这种方式,当工作负荷类型被获得时,示例网络中断调度电路***504可以使用相对应的协议和/或启发法将网络中断与硬件睡眠和唤醒时间对齐。工作负荷类型/协议查找表506可以由存储器、一个或多个寄存器和/或任何其他能够存储数据的设备实现。
图5的示例策略更新电路***508可以将工作负荷类型/协议查找表506变换为可用于调度和时间对齐的某一指标。例如,策略更新电路***508可以针对新的使用场景和应用实时更新和调节工作负荷类型/协议查找表506。在一些示例中,通信量类可以代替工作负荷使用,其中数据被直接发送到Wi-Fi模块以供进行功率管理(power management,PM),从而实现与基于硬件的唤醒对齐。在一些示例中,策略更新电路***508获得和/或调节用于功率管理策略的指标的实时适配。例如,如果功率管理策略考虑其他输入(例如,与计算管芯206如何相对应的热条件)来调节睡眠周期,则策略更新电路***508可以指示被标识用于将视频回放与实时视频会议(例如,在其他时间,这两者可以作为一个类型来处置)进行区分的工作负荷类型。
虽然图3-图4图示出实现图2的NIC 200的示例方式并且图5图示出实现示例PMC210的示例方式,但是在图3、4和/或5中图示的元件、过程和/或设备中的一个或多个可以以任何其他方式来组合、划分、重新排列、省略、消除和/或实现。进一步地,图2-图5的示例网络分组控制器302、示例训练控制器304、示例预测控制器306、示例活跃状态控制器308、示例预处理电路***402、示例特征提取电路***404,示例模型训练电路***406、示例误差损失控制器408、示例模型发布电路***410、示例接口502、示例网络中断调度电路***504、示例工作负荷类型/协议查找表506、示例策略更新电路***508和/或更一般地,示例NIC 200和示例PMC 210可以由硬件、软件、固件、和/或硬件、软件和/或固件的任意组合实现。因此,例如,图2-图5的示例网络分组控制器302、示例训练控制器304、示例预测控制器306、示例活跃状态控制器308、示例预处理电路***402、示例特征提取电路***404,示例模型训练电路***406、示例误差损失控制器408、示例模型发布电路***410、示例接口502、示例网络中断调度电路***504、示例工作负荷类型/协议查找表506、示例策略更新电路***508和/或更一般地,示例NIC 200和示例PMC 210中的任一项可由一个或多个模拟电路或一个或多个数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)图形处理单元(graphics processing unit,GPU)、(一个或多个)数字信号处理器(digital signal processor,DSP)、(一个或多个)专用集成电路(applicationspecific integrated circuit,ASIC)、(一个或多个)NPU、(一个或多个)可编程逻辑器件(programmable logic device,PLD)、和/或(一个或多个)现场可编程逻辑器件(fieldprogrammable logic device,FPLD)来实现。当阅读到本专利的涵盖纯软件和/或固件实现方式的装置或***权利要求中的任一项时,图2-图5的示例网络分组控制器302、示例训练控制器304、示例预测控制器306、示例活跃状态控制器308、示例预处理电路***402、示例特征提取电路***404,示例模型训练电路***406、示例误差损失控制器408、示例模型发布电路***410、示例接口502、示例网络中断调度电路***504、示例工作负荷类型/协议查找表506、示例策略更新电路***508和/或更一般地,示例NIC200和示例PMC 210中的至少一者由此被明确地定义为包括包含该软件和/或固件的非瞬态计算机可读存储设备或存储盘(诸如存储器、数字多功能盘(digital versatile disk,DVD)、致密盘(compact disk,CD)、蓝光盘等等)。此外,图2的示例NIC 200可包括除图3-图4中所图示的那些之外或作为图3-图4中所图示的那些的替代的一个或多个元件、过程和/或设备,并且/或可包括多于一个的任何或所有图示出的元件、过程和装置。如本文所使用,短语“在通信中”(包括其变体)包含直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接的物理(例如,有线)通信和/或持续通信,而是附加地包括以周期性间隔、预定间隔、非周期性间隔、和/或一次性事件来进行的选择性通信。
在图6-图10中示出了表示用于实现图2-图5的NIC 200和/或PMC210的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是用于由计算机处理器和/或处理器电路***执行的一个或多个可执行程序或可执行程序的(一个或多个)部分,计算机处理器和/或处理器电路***诸如下文结合图12所讨论的示例处理器平台1200中示出的处理器1212。程序可被具体化在存储于与处理器1212相关联的诸如CD-ROM、软盘、硬驱动器、DVD、蓝光盘或存储器之类的非瞬态计算机可读存储介质上的软件中,但是整个程序和/或其部分可以替代地由除处理器1212之外的设备执行和/或被具体化在固件或专用硬件中。进一步地,虽然参考图6-图10所图示的流程图描述了示例程序,但是可替代地使用实现示例NIC 200和/或PMC210的许多其他方法。例如,可以改变框的执行次序,和/或可改变、消除或组合所描述的框中的一些框。附加地或替代地,框中的任何框或所有框可以由被构造成用于在不执行软件或固件的情况下执行相应的操作的一个或多个硬件电路(例如,分立的和/或集成的模拟和/或数字电路***、FPGA、ASIC、比较器、运算放大器(operational-amplifier,op-amp)、逻辑电路等)来实现。处理器电路***可以分布在不同的网络位置和/或位于一个或多个设备的本地(例如,单个机器中的多核心处理器、跨服务器机架分布的多个处理器等)。
本文中描述的机器可读指令能以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种来存储。本文描述的机器可读指令可以作为可用于创建、制造和/或产生机器可执行指令的数据或数据结构(例如,指令的部分、代码、代码表示等)来存储。例如,机器可读指令可以被分段并被存储在位于网络或网络集合(例如,在云中、在边缘设备中等)中的相同或不同位置处的一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要安装、修改、适配、更新、组合、补充、配置、解密、解压缩、拆包、分发、重新分配、编译等中的一项或多项,以使得它们由计算设备和/或其他机器直接可读取、可解释、和/或可执行。例如,机器可读指令可以存储在多个部分中,这些部分被单独压缩、加密并存储在分开的计算设备上,其中,这些部分在被解密、解压缩和组合时形成实现诸如本文所述的、可以一起形成程序的一个或多个功能的一组可执行指令。
在另一示例中,机器可读指令可以以它们可被处理器电路***读取的状态存储,但是需要添加库(例如,动态链接库(dynamic link library,DLL))、软件开发工具包(software development kit,SDK)、应用编程接口(application programminginterface,API)等,以便在特定的计算设备或其他设备上执行指令。在另一示例中,在可整体或部分地执行机器可读指令和/或对应的(一个或多个)程序之前,可能需要配置这些机器可读指令(例如,存储的设置、输入的数据、记录的网络地址等)。因此,如本文中所使用,机器可读介质可包括机器可读指令和/或(一个或多个)程序,而不管该机器可读指令和/或(一个或多个)程序在被存储时或以其他方式处于静态或在途中时的特定格式或状态如何。
本文中所描述的机器可读指令可以由任何过去、现在或未来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可以用以下语言中的任何语言来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HyperText Markup Language,HTML)、结构化查询语言(Structured Query Language,SQL)、Swift等。
如上文所提及,可使用存储于非瞬态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图6-图10的示例过程,非瞬态计算机和/或机器可读介质诸如,硬盘驱动器、闪存、只读存储器、致密盘、数字多功能盘、缓存、随机存取存储器和/或在其中存储信息达任何时长(例如,达扩展的时间段内、永久地、达简短的实例、用于临时缓冲和/或用于对信息进行缓存)的任何其他存储设备或存储盘。如本文中所使用,术语非瞬态计算机可读介质被明确地定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号且排除传输介质。
“包含”和“包括”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求将任何形式的“包含”或“包括”(例如,包括、包含、包括有、包含有、具有等)用作前序部分或用于任何种类的权利要求记载内容之内时,要理解的是,在不落在对应权利要求或记载的范围之外的情况下,可以存在附加的要素、项等。如本文中所使用,当短语“至少”被用作例如权利要求的前序部分中的过渡术语时,它按与术语“包含”和“包括”一样的方式是开放式的。当例如以诸如A、B和/或C之类的形式被使用时,术语“和/或”指的是A、B、C的任何组合或子集,诸如(1)单独的A、(2)单独的B、(3)单独的C、(4)A与B、(5)A与C、(6)B与C、以及(7)A与B及与C。如本文中在描述结构、组件、项、对象和/或事物的上下文中所使用,短语“A和B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。类似地,如本文中在描述结构、组件、项、对象和/或事物的上下文中所使用,短语“A或B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。如本文中在描述过程、指令、动作、活动和/或步骤的处理或执行的上下文中所使用,短语“A和B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。类似地,如本文中在描述过程、指令、动作、活动和/或步骤的处理或执行的上下文中所使用,短语“A或B中的至少一个”旨在指代包括以下各项中的任一项的实现方式:(1)至少一个A、(2)至少一个B、和(3)至少一个A和至少一个B。
如本文所使用,单数引用(例如,“一(a、an)”、“第一”、“第二”等)不排除复数。如本文所使用,术语“一(a或an)”实体是指一个或多个该实体。术语“一(a)”(或“一(an)”)、“一个或多个”和“至少一个”可以在本文中可互换使用。此外,尽管单独列出,但多个装置、元件或方法动作可由例如单个单元或处理器来实现。另外,虽然各个特征可以被包括在不同的示例或权利要求中,但是这些特征可能被组合,并且在不同的示例或权利要求中的包含并不暗示特征的组合不可行和/或不是有利的。
图6是表示在预处理操作D00期间进行的示例机器可读指令和/或示例操作600的流程图,该示例机器可读指令和/或示例操作600可由处理器电路***和/或图2-图4的示例NIC 200执行和/或实例化以向单个网络流的数据分组指派工作负荷标签。图6的机器可读指令和/或操作600开始于框602,在框602处示例网络分组控制器302(图3)从示例无线网络设备104(图1)收集数据分组。例如,网络分组控制器302利用捕捉数据分组跟踪特征来拦截计算管芯206(图2)与其他无线客户端之间的数据分组。在一些示例中,网络分组控制器302是收集针对示例计算设备平台100的网络通信量的接口(例如,NIC)。
示例网络分组控制器302标识与网络流相对应的数据分组(框604)。例如,网络分组控制器302分析数据分组的头部,以在数据分组之间确定匹配元组。在此类示例中,具有匹配元组(例如,源地址号、源端口号、目的地地址号、目的地端口号和协议号的列表)的数据分组属于同一网络流。在一些示例中,捕捉分组跟踪特征将属于同一网络流的所拦截的数据分组存储在与工作负荷类别相对应的相应文件位置。
示例网络分组控制器302向示例训练控制器304和/或更具体地,示例预处理电路***402(图4)提供与单个网络流相对应的数据分组。示例预处理电路***402从与网络流相对应的数据分组中选择n个分组样本以用作输入样本(框606)。例如,预处理电路***402确定基于NIC 200的计算能力来确定可以被分析并被用于对模型进行训练的数个数据分组。在一些示例中,预处理电路***402在实现(例如,设计和制造)期间被提供有样本限制。在其他示例中,预处理电路***402查询硬件寄存器、调制解调器存储装置等,以获取有关示例NIC 200的计算能力的信息。
示例预处理电路***402确定n个分组样本的工作负荷类型(框608)。例如,预处理电路***402分析由网络分组控制器302捕捉的分组跟踪的文件命名、信息和/或其他特性。在一些示例中,预处理电路***402基于与分组跟踪相对应的信息来确定分组样本是否对应于实时工作负荷、非实时工作负荷等。在其他示例中,预处理电路***402确定n个分组样本是否对应于更具体的工作负荷类型(诸如视频呼叫、文件下载、游戏等)。
示例预处理电路***402从n个分组样本中获得f个分组特征(框610)。例如,预处理电路***402分析分组的n个样本的头部和帧主体以获取统计信息,诸如分组间隔到达时间、分组方向、协议标识符、分组长度、QoS类等。在一些示例中,特征的数量f基于NIC 200的计算能力来选择。
示例预处理电路***402向n个分组样本和f个分组特征指派标签(框612)。例如,预处理电路***402将标识符(例如,工作负荷类型标识符)附加到属于同一网络流的n个分组样本,该标识符诸如元数据的字符串。在一些示例中,标签是通过示例特征提取电路***404(图4)和模型训练电路***406(图4)可标识的,以用于对模型进行训练,从而基于分组的特征来学习标签。
示例预处理电路***402确定是否存在另一个工作流(框614)。例如,预处理电路***402可能已接收属于多于一个的网络流、由网络分组控制器302分离和/或编组在一起的数据分组。如果示例预处理电路***402确定存在另一个网络流要标注(例如,框614返回值是),则控制返回至框604。例如,预处理电路***402标识属于单个网络流的下一个数据分组集。如果示例预处理电路***402确定不存在另一个网络流要标注(例如,框614返回值否),则示例预处理电路***402启动训练过程(框616)。例如,预处理电路***402通过发送数据分组的经标注的样本来触发特征提取电路***404。
示例预处理操作600结束于示例预处理电路***402触发模型的训练时。然而,当示例网络分组控制器302获得与未标识的网络流相对应的数据分组时,示例预处理操作600被重复。
图7是表示在训练期间进行的示例机器可读指令和/或示例操作700的流程图,该示例机器可读指令和/或示例操作700可由处理器电路***和/或图2-图4的示例NIC 200执行和/或实例化以(例如,基于经预处理的标签和特征)将一个或多个模型训练成用于数据分组分类到它们各自的工作负荷类别中。图7的机器可读指令和/或操作700开始于框702,在框702处示例特征提取电路***404(图4)获得与网络流相对应的n个分组样本的输入。例如,特征提取电路***404从预处理电路***402(图4)获得已利用工作负荷类型标注的n个分组样本。
示例特征提取电路***404提取n个分组样本的f个特征、以及相对应标签(框704)。例如,特征提取电路***404提取由预处理电路***402获得的f个特征,其中f是描述n个分组样本的统计特性的描述性特征的数量。此类描述性特征表征分组样本的预期工作负荷。示例特征提取电路***404生成特征向量(框706)。例如,特征提取电路***404生成或构建特征向量的派生值(例如,代表n个分组样本中的f个特征),这些值具有信息性和非冗余性,以促进训练控制器304的训练阶段。
示例模型训练电路***406(图4)将模型训练成用于基于特征向量来标识n个分组样本的工作负荷类型(框708)。例如,模型训练电路***406接收与经预处理且已知的分组样本相对应的特征向量,并标识分组样本的特征中、将分组样本的特征映射到工作负荷类别的模式,并且输出捕捉这些模式的模型。在一些示例中,输出的模型使用不同的输入样本来重新训练,直到达到可接受的误差量。
示例模型训练电路***406确定是否有另一n个分组样本的输入可用(框710)。例如,模型训练电路***406确定与不同工作负荷相对应的数据分组是否可用。如果示例模型训练电路***406确定另一n个分组样本的输入可用(例如,框710返回值是),则控制返回框702。如果示例模型训练电路***406确定另一n个分组样本的输入不可用(例如,框710返回值否),则示例模型训练电路***406生成工作负荷类型预测模型(框712)。例如,模型训练电路***406将经训练的模型输出到模型发布电路***410(图4)。
示例模型发布电路***410发布工作负荷类型预测模型(框714)。例如,模型发布电路***410从模型训练电路***406接收模型,并将其变换为可消耗格式以供发布。示例模型发布电路***410将所发布的模型提供至示例预测控制器306(图3),并且指令和/或训练操作700结束。在一些示例中,当特征提取电路***404从预处理电路***402获得新的分组样本时,指令和/或训练操作700被重复。
图8是表示可由处理器电路***和/或图2-图4的示例NIC 200执行和/或实例化以将数据分组分类到工作负荷类别中的示例机器可读指令和/或示例操作800的流程图。图8的机器可读指令和/或操作800开始于框802,在框802处示例活跃状态控制器308(图3)确定示例NIC 200(图2)的状态。例如,活跃状态控制器308通过查询基础管芯202(图2)以获取有关计算管芯206(图2)的状态(例如,打开或关闭)的信息,来确定NIC 200处于睡眠状态、空闲状态还是活跃状态,计算管芯206的状态与NIC 200的状态相对应和/或相关联。示例活跃状态控制器308确定NIC 200是否处于活跃状态(框804)。例如,活跃状态控制器308确定NIC200是否正在执行、处理、接收和/或发送数据。如果示例活跃状态控制器308确定NIC 200不处于活跃状态(例如,框804返回值否),则示例推断操作800结束。例如,如果NIC 200处于睡眠状态或空闲状态,则计算管芯206可以进入深度功率节省状态。
如果示例活跃状态控制器308确定NIC 200处于活跃状态(框804:是),则示例预测控制器306获得与一个或多个网络流相对应的活跃分组(框806)。例如,网络分组控制器302向预测控制器306提供捕捉的网络数据分组,以供进行分析和分类。在一些示例中,活跃状态控制器308触发网络分组控制器302将活跃数据分组发送到预测控制器306。在其他示例中,活跃状态控制器308启动预测控制器306查询网络分组控制器302以获取活跃数据分组。
示例预测控制器306从活跃分组提取特征(框808)。例如,预测控制器306标识(一个或多个)数据分组的(一个或多个)的头部中的统计信息,并将其向外提取到特征向量中。示例预测控制器306基于至经训练的工作负荷类型预测模型的特征的输入来确定网络流的工作负荷类型(框810)。例如,预测控制器306实现由训练控制器304(图3)发布的模型,以输出有关活跃数据分组的分类的预测。在一些示例中,预测指示活跃数据分组是否最有可能属于实时工作负荷、非实时工作负荷、视频呼叫工作负荷、游戏工作负荷、文件下载工作负荷等。
示例预测控制器306将工作负荷类型传达到计算管芯206(框812)。例如,预测控制器306生成VDM消息,从而向计算管芯206通知工作负荷类型,以便PMC 210可以基于工作负荷类型制定与睡眠调度对齐的网络中断调度,从而降低功耗。
图9是表示可由处理器电路***和/或图5的示例PMC 210执行和/或实例化以将网络中断与硬件睡眠调度对齐的示例机器可读指令和/或示例操作900的流程图。图9的机器可读指令和/或操作900开始于框902,在框902处示例接口502从NIC 200获得经分类的工作负荷(例如,基于经由基础管芯202的边带消息)。经分类的工作负荷与NIC 200目前一起操作的工作负荷的类型相对应。例如,经分类的工作负荷可能是一种或多种类型的流送视频、流送音频、视频电话会议、音频电话会议等。
在框904处,示例网络中断调度电路***504基于经分类的工作负荷来从工作负荷类型/协议查找表506访问工作负荷协议和/或平台活动的启发法。例如,网络中断调度电路***504使用工作负荷在工作负荷类型/协议查找表506中查找与工作负荷相对应的信息(例如,在工作负荷运行的同时,等待时间要求、传输协议、中断协议、显示器唤醒、热信息、来自不同源(例如,OS、应用等)的中断等)。在框906处,示例网络中断调度电路***504确定工作负荷类型是否对应于(一个或多个)关键要求。如上所述,一些工作负荷可对应于其中超过阈值持续时间的时间段要被使用来获得和/或处理传入和/或传出的网络通信量的一个或多个关键要求。此类工作负荷确实允许硬件组件有足够的时间进入睡眠模式。(一个或多个)关键要求的指示可以结合工作负荷类型作为存储在工作负荷类型/协议查找表506中的信息的部分。因此,网络中断调度电路***504可以基于来自工作负荷类型/协议查找表506的相对应信息来确定工作负荷类型是否对应于(一个或多个)关键要求。
如果示例网络中断调度电路***504确定工作负荷类型对应于(一个或多个)关键要求(框906:是),则PMC 210在不使用功率节省(例如,不使用睡眠模式操作以符合(一个或多个)关键要求)的情况下控制硬件的功率(框908)。如果示例网络中断调度电路***504确定工作负荷类型不对应于(一个或多个)关键要求(框906:否),则示例网络中断调度电路***504生成进行对齐以与硬件睡眠调度对齐的网络中断调度(框910),如下结合图10进一步描述。在框912处,示例PMC 210通过将网络中断与基于硬件的唤醒调度对齐来控制功率。例如,PMC 210可以基于硬件睡眠调度指示计算管芯206、存储器214、基础管芯202和/或NIC200的一个或多个部件进入对齐网络中断,以确保在硬件处于唤醒时发生网络中断。由于网络中断与睡眠调度对齐,相比于传统技术,硬件组件在睡眠模式下操作花费的时间更多,从而节省功率。在唤醒时间期间,计算管芯206可以在处置其他计算设备平台活动的同时完成网络工作项(例如,功能、操作、指令等)。
如上所述,图10是可由处理器电路***和/或图5的示例PMC210执行和/或实例化以使用工作负荷协议基于硬件睡眠调度来生成与NIC活动相对应的网络中断调度的示例机器可读指令和/或示例操作的流程图,如以上结合图9的框910所描述。图10的机器可读指令和/或操作开始于框1002,在框1002处示例网络中断调度电路***504基于启发法和/或由PMC 210生成的睡眠调度标识硬件处于唤醒所在的(一个或多个)第一时间。
在框1004处,示例网络中断调度电路***504基于睡眠调度和/或启发法来标识硬件处于睡眠所在的(一个或多个)第二时间。在框1006处,示例网络中断调度电路***504以(一个或多个)第一时间来调度网络中断,从而将网络中断与硬件睡眠调度对齐。在框1006后,控制返回到图9的框912。
图11图示出与本文公开的示例相对应的功率节省的示例。图11包括与针对视频会议工作负荷的传统网络中断调度相对应的第一示例时序图1100,以及与使用本文公开的示例的、针对视频会议工作负荷的网络中断调度相对应的第二示例时序图1102。
在图11的第一示例时序图1100中,对计算管芯206的中断本质上是随机的,并且不与任何其他CPU唤醒事件进行协调。如果特定于音频呼叫的所有任务(例如,音频编码、音频解码、网络操作等)分布在一段时间内,则基于不同的时间,CPU唤醒的数量将增加。第二示例时序图1102图示出在具有P-单元启发法(如时间到下一个计时器事件(time to nexttimer event,TNTE))以及网络与音频唤醒对齐(并且反之亦然)的情况下所有IP之间的更好的协调。因此,完整的CPU操作可以在短间隔(例如,在20ms通信量模式中为5ms)内执行,从而引起15ms的CPU空闲(例如,睡眠模式)。因此,在NIC 200上与网络唤醒信息的基于P-单元/PMC的时间同步将使用缓冲功能更好地对齐时间,以帮助经由有针对性的唤醒时间机制在NIC 200或无线网络设备104内合并,从而提供功率节省增益。
图12是被构造用于执行图6-图10的指令以实现图2、图3、图4和/或图5的NIC 200和/或PMC 210的示例处理器平台1200的框图。处理器平台1200可以是例如,服务器、个人计算机、工作站、自学***板)、个人数字助理(personal digital assistant,PDA)、互联网设备、DVD播放器、CD播放器、数字视频记录仪、蓝光播放器、游戏控制台、个人视频记录仪、机顶盒、耳机或其他可穿戴设备、或任何其他类型的计算设备。
所图示示例的处理器平台1200包括处理器1212。所图示示例的处理器1212是硬件。例如,处理器1212可以由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、NPU、GPU、DSP或控制器实现。硬件处理器可以是基于半导体的(例如,基于硅的)器件。在该示例中,处理器实现图2-图5的示例NIC 200、PMC 210、示例网络分组控制器302、示例训练控制器304、示例预测控制器306、示例活跃状态控制器308、示例预处理电路***402、示例特征提取电路***404,示例模型训练电路***406、示例误差损失控制器408、示例模型发布电路***410、示例接口502、示例网络中断调度电路***504和示例策略更新电路***508。
所图示示例的处理器1212包括本地存储器1213(例如,缓存)。在一些示例中,本地存储器1213实现图5的示例工作部分负荷类型/协议查找表506。所图示示例的处理器1212经由总线1218而与包括易失性存储器1214和非易失性存储器1216的主存储器进行通信。易失性存储器1214可由同步动态随机存取存储器(Synchronous Dynamic Random AccessMemory,SDRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、动态随机存取存储器(/>Dynamic Random Access Memory,)和/或任何其他类型的随机存取存储器设备实现。非易失性存储器1216可以由闪存和/或任何其他所期望类型的存储器设备实现。由存储器控制器控制对主存储器1214、1216的访问。
所图示示例的处理器平台1200还包括接口电路1220。接口电路1220可由任何类型的接口标准实现,诸如以太网接口、通用串行总线(universal serial bus,USB)、接口、近场通信(near field communication,NFC)接口和/或PCI快速(PCI express)接口。
在所图示的示例中,一个或多个输入设备1222被连接至接口电路1220。(一个或多个)输入设备1222准许用户将数据和/或命令输入到处理器1212中。(一个或多个)输入设备可以由例如音频传感器、话筒、相机(静止的或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点鼠标和/或语音识别***实现。
一个或多个输出设备1224也被连接至所图示示例的接口电路1220。输出设备1224可例如由显示设备(例如,发光二极管(light emitting diode,LED)、有机发光二极管(organic light emitting diode,OLED)、液晶显示器(liquid crystal display,LCD)、阴极射线管显示器(cathode ray tube display,CRT)、面内切换(in-place switching,IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。因此,所图示示例的接口电路1220典型地包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
所图示示例的接口电路1220还包括诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进经由网络1226与外部机器(例如,任何种类的计算设备)交换数据。通信可以经由例如,以太网连接、数字订户线路(digital subscriber line,DSL)连接、电话线连接、同轴电缆***、卫星***、直线对传式无线***、蜂窝电话***等。
所图示示例的处理器平台1200还包括用于存储软件和/或数据的一个或多个大容量存储设备1228。此类大容量存储设备1228的示例包括软盘驱动器、硬驱动器盘、紧凑盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(redundant array of independent disks,RAID)***、以及数字多功能盘(DVD)驱动器。
图6-图10的机器可执行指令1232可以被存储在大容量存储设备1228中,存储在易失性存储器1214中,存储在非易失性存储器1216中,和/或存储在诸如CD或DVD的可移除非瞬态计算机可读存储介质上。
图13是图12的处理器电路***1212的示例实现方式的框图。在该示例中,图12的处理器电路***1212由微处理器1300来实现。例如,微处理器1300可以实现多核心硬件电路***,诸如CPU、DSP、GPU、NPU、XPU等。尽管微处理器可以包括任意数量的示例核心1302(例如,1个核心),但本示例的微处理器1300是包括N个核心的多核心半导体器件。微处理器1300的核心1302可以独立操作,或者可以协作,以执行机器可读指令。例如,与固件程序、嵌入式软件程序或软件程序相对应的机器代码可以由核心1302中的一个核心来执行,或者可以由核心1302中的多个核心在相同或不同的时间执行。在一些示例中,与固件程序、嵌入式软件程序或软件程序相对应的机器代码被拆分成线程,并由核心1302中的两个或更多个并行地执行。软件程序可以与由图6-图10的流程图表示的机器可读指令和/或操作的部分或全部相对应。
核心1302可通过示例总线1304进行通信。在一些示例中,总线1304可实现通信总线,以用于实行与核心1302中的(一个或多个)核心相关联的通信。例如,总线1304可以实现内部集成电路(Inter-Integrated Circuit,I2C)总线、串行***接口(Serial PeripheralInterface,SPI)总线、PCI总线或PCIe总线中的至少一个。附加地或替代地,总线1304可以实现任何其他类型的计算或电气总线。核心1302可以通过示例接口电路***1306从一个或多个外部设备获得数据、指令和/或信号。核心1302可以通过接口电路***1306向一个或多个外部设备输出数据、指令和/或信号。尽管该示例的核心1302包括示例本地存储器1320(例如,可被拆分为第一级(Level 1,L1)数据缓存和L1指令缓存的L1缓存),但微处理器1300还包括可由核心共享的示例共享存储器1310(例如,第二级(L2_缓存)),以用于对数据和/或指令的高速访问。数据和/或指令可以通过向共享存储器1310写入和/或从共享存储器1310读取来传输(例如,共享)。核心1302中的每个核心1302的本地存储器1320、以及共享存储器1310可以是包括多级缓存存储器并且包括主存储器(例如,图12的主存储器1214、1216)的存储设备的层次体系的部分。典型地,相比于较低级别的存储器,层次体系中的较高级别的存储器表现出更低的访问时间并具有更小的存储容量。缓存层次体系的各级别的改变由缓存一致性策略管理(例如,协调)。
每个核心1302可以被称为CPU、DSP、GPU、NPU等,或任何其他类型的硬件电路***。每个核心1302包括控制单元电路***1314、算术和逻辑(arithmetic and logic,AL)电路***(有时称为ALU)1316、多个寄存器1318、L1缓存1320和示例总线1322。可以存在其他结构。例如,每个核心1302可以包括向量单元电路***、单指令多数据(single instructionmultiple data,SIMD)单元电路***、加载/存储单元(load/store unit,LSU)电路***、分支/跳转单元电路***、浮点单元(floating-point unit,FPU)电路***等。控制单元电路***1314包括基于半导体的电路,其被构造成用于控制(例如,协调)相对应核心1302内的数据移动。AL电路***1316包括被构造成用于在相对应核心1302内对数据执行一个或多个数学和/或逻辑操作的基于半导体的电路。一些示例的AL电路***1316执行基于整数的操作。在其他示例中,AL电路***1316还执行浮点操作。在另外的其他示例中,AL电路***1316可包括执行基于整数的操作的第一AL电路***和执行浮点操作的第二AL电路***。在一些示例中,AL电路***1316可以被称为算术逻辑单元(Arithmetic Logic Unit,ALU)。寄存器1318是用于存储数据和/或指令(诸如,由相对应核心1302的AL电路***1316执行的操作中的一个或多个操作的结果)的基于半导体的结构。例如,寄存器1318可以包括(一个或多个)向量寄存器、(一个或多个)SIMD寄存器、(一个或多个)通用寄存器、(一个或多个)标志寄存器、(一个或多个)段寄存器、(一个或多个)机器特定寄存器、(一个或多个)指令指针寄存器、(一个或多个)控制寄存器、(一个或多个)调试寄存器、(一个或多个)存储器管理寄存器、(一个或多个)机器检查寄存器等。寄存器1318可按如图13中所示的区块来布置。替代地,寄存器1318可以按任何其他布置、格式或结构来组织,包括贯穿核心1302分布以缩短访问时间。总线1304可以实现I2C总线、SPI总线、PCI总线或PCIe总线中的至少一者。
每个核心1302(和/或更一般地,微处理器1300)可以包括上文示出和描述的那些结构的附加和/或替代结构。例如,可以存在一个或多个时钟电路、一个或多个功率供应、一个或多个功率门、一个或多个缓存归属地代理(cache home agents,CHA)、一个或多个聚合/公共网格站点(converged/common mesh stop,CMS)、一个或多个移位器(例如,(一个或多个)桶形移位器)和/或其他电路***。微处理器1300是被制造成包括许多晶体管的半导体器件,这些晶体管被互连以在被包含在一个或多个封装中的一个或多个集成电路(integrated circuit,IC)中实现上文所描述的结构。处理器电路***可包括一个或多个加速器,和/或与一个或多个加速器协作。在一些示例中,加速器由逻辑电路***来实现,从而可以相比于由通用处理器能够完成的更快和/或更高效地执行某些任务。加速器的示例包括ASIC和FPGA,诸如,本文中所讨论的那些。GPU或其他可编程器件也可以是加速器。加速器可以板载于处理器电路***上,与处理器电路***在同一芯片封装中,和/或在与处理器电路***分开的一个或多个封装中。
图14是图12的处理器电路***1212的另一示例实现方式的框图。在该示例中,处理器电路***1212由FPGA电路***1400实现。例如,FPGA电路***1400可用于执行可以以其他方式通过图13的示例微处理器1300执行相对应的机器可读指令来执行的操作。然而,一旦被配置,FPGA电路***1400就在硬件中实例化机器可读指令,并且由此通常可以比操作可能通过通用微处理器执行对应软件来执行更快地执行这些操作。
更具体而言,与上面描述的图13的微处理器1300(微处理器1300是这样的通用设备:该通用设备可编程为用于执行图6-图10的流程图表示的机器可读指令的部分或全部,但该通用设备一旦被制造则其互连和逻辑电路***就是固定的)不同,图14的示例的FPGA电路***1400包括这样的互连和逻辑电路***:这些互连和逻辑电路***可以在制造之后以不同的方式配置和/或互连,以实例化例如由图6-图10的流程图表示的机器可读指令的部分或全部。具体而言,FPGA 1400可以被认为是逻辑门、互连和开关的阵列。开关可以被编程为用于改变逻辑门如何通过互连进行互连,从而有效地形成一个或多个专用逻辑电路(除非和直到FPGA电路***1400被重新编程)。经配置的逻辑电路使逻辑门能够以不同的方式协作,从而对由输入电路***接收的数据执行不同的操作。这些操作可与由图6-图10的流程图表示的软件的部分或全部相对应。因此,FPGA电路***1400可以被构造成用于作为专用逻辑电路有效地实例化图6-图10的流程图的机器可读指令的部分或全部,以便以类似于ASIC的专用方式执行与这些软件指令相对应的操作。因此,FPGA电路***1400可以执行与图14的机器可读指令中的一些或全部相对应的操作的速度快于通用微处理器执行相同的操作的速度。
在图14的示例中,FPGA电路***1400被构造成用于由终端用户通过诸如Verilog之类的硬件描述语言(hardware description language,HDL)编程(和/或重新编程一次或多次)。图14的FPGA电路***1400包括示例输入/输出(input/output,I/O)电路***1402,该示例输入/输出(I/O)电路***1402用于从示例配置电路***1404和/或外部硬件(例如,外部硬件电路***)1406获得数据和/或向示例配置电路***1404和/或外部硬件(例如,外部硬件电路***)1406输出数据。例如,配置电路***1404可以实现接口电路***,该接口电路***可获得用于配置FPGA***电路1400或其(一个或多个)部分的机器可读指令。在一些此类示例中,配置电路***1404可以从用户、机器(例如,可以实现人工智能/机器学习(Artificial Intelligence/Machine Learning,AI/ML)模型以生成指令的硬件电路***(例如,经编程的或专用电路***))等获得机器可读指令。在一些示例中,外部硬件1406可以实现图13的微处理器1300。FPGA电路***1400还包括示例逻辑门电路***1408、多个示例可配置互连1410和示例存储电路***1412的阵列。逻辑门电路***1408和互连1410可配置成用于实例化一个或多个操作,这些操作可与图6-图10的机器可读指令中的至少一些和/或其他期望操作相对应。图14中示出的逻辑门电路***1408是按组或块制造的。每个块包括可以配置为逻辑电路的基于半导体的电气结构。在一些示例中,电气结构包括为逻辑电路提供基本构建块的逻辑门(例如,与(And)门、或(Or)门、非(Nor)门等)。电可控开关(例如,晶体管)存在于逻辑门电路***1408中的每个逻辑门电路***1408内,以使得电气结构和/或逻辑门能够配置成形成用于执行期望的操作的电路。逻辑门电路***1408可包括其他电气结构,诸如查找表(look-up table,LUT)、寄存器(例如,触发器或锁存器)、多路复用器等。
所图示示例的互连1410是导电路径、迹线、通孔等,其可以包括其状态可以通过编程(例如,使用HDL指令语言)来改变以对逻辑门电路***1408中的一个或多个逻辑门电路***1408之间的一个或多个连接进行激活或解除激活从而对期望的逻辑电路编程的电可控开关(例如,晶体管)。
所图示示例的存储电路***1412被构造成用于存储由对应的逻辑门执行的操作中的一个或多个操作的(一个或多个)结果。存储电路***1412可以由寄存器等来实现。在所图示的示例中,存储电路***1412分布在逻辑门电路***1408之间,以促进访问并提高执行速度。
图14的示例FPGA电路***1400还包括示例专用操作电路***1414。在该示例中,专用操作电路***1414包括专用电路***1416,该专用电路***1416可以被调用以实现常用功能,从而避免需要在现场对那些功能编程。此类专用电路***1416的示例包括存储器(例如,DRAM)控制器电路***、PCIe控制器电路***、时钟电路***、收发器电路***、存储器和乘法器-累加器电路***。可以存在其他类型的专用电路***。在一些示例中,FPGA电路***1400还可以包括示例通用可编程电路***1418,诸如,示例CPU 1420和/或示例DSP1422。可以附加地或替代地存在可以被编程为用于执行其他操作的其他通用可编程电路***1418,诸如,GPU、NPU、XPU等。
尽管图13和14图示出图12的处理器电路***1212的两种示例实现方式,但构想了许多其他方式。例如,如上文所提及,现代FPGA电路***可以包括板载CPU,诸如,图14的示例CPU 1420中的一个或多个。因此,图12的处理器电路***1212可附加地通过组合图13的示例微处理器1300和图14的示例FPGA电路***1400来实现。在一些此类混合示例中,由图6-图10的流程图表示的机器可读指令的第一部分可由图13的核心1302中的一个或多个执行并且由图6-图10的流程图表示的机器可读指令的第二部分可由图14的FPGA电路***1400执行。
在一些示例中,图12的处理器电路***1212可以在一个或多个封装中。例如,图12的处理器电路***1212和/或图14的FPGA电路***1400可以在一个或多个封装中。在一些示例中,XPU可由图12的处理器电路***1212来实现,该处理器电路***1212可以在一个或多个封装中。例如,XPU可包括一个封装中的CPU、另一封装中的DSP、又一封装中的GPU、以及再另一封装中的FPGA。
框图图示示例软件分发平台1505,其用于将诸如图12的示例机器可读指令1232之类的软件分发至图13中图示的由第三方拥有和/或操作的硬件设备。示例软件分发平台1505可以由能够存储软件并将软件传送到其他计算设备的任何计算机服务器、数据设施、云服务等来实现。第三方可以是拥有和/或操作软件分发平台1505的实体的客户。例如,拥有和/或操作软件分发平台1505的实体可以是软件(诸如图12的示例机器可读指令1232)的开发方、销售方、和/或许可方。第三方可以是购买和/或许可软件以用于使用和/或转售和/或分许可的消费者、用户、零售商、OEM等。在所图示的示例中,软件分发平台1505包括一个或多个服务器和一个或多个存储设备。存储设备存储机器可读指令1232,该机器可读指令1232可以与图6-图10的示例计算机可读指令600、700、800、900、910相对应,如上文所描述。示例软件分发平台1505的一个或多个服务器与网络1510通信,该网络1510可以与互联网和/或上文所述示例网络102中的任一个的任何一个或多个相对应。在一些示例中,作为商业事务的部分,一个或多个服务器对将软件传送到请求方的请求的进行响应。可以由软件分发平台的一个或多个服务器和/或由第三方支付实体来处置针对软件的交付、销售、和/或许可的支付。服务器使购买方和/或许可方能够从软件分发平台1505下载机器可读指令1232。例如,软件(其可与图12的示例机器可读指令1232相对应)可被下载到示例处理器平台400,该示例处理器平台用于执行机器可读指令1232以实现计算设备平台100。在一些示例中,软件分发平台1505的一个或多个服务器周期性地提供、传送和/或强制进行软件(例如,图12的示例机器可读指令1232)更新以确保改善、补丁、更新等被分发并应用于终端用户设备处的软件。
从上文可以理解,本文已经公开了用于使网络通信量对齐以改善功耗的示例方法、装置和制品。本文公开的示例使用基于AI的模型来标识工作负荷类型,并基于所标识的工作负荷使网络中断与由功率管理控制器开发的硬件睡眠调度对齐。公开的方法、装置和制品通过促进功率节省和/或延长电池寿命来提高使用计算设备的效率。所公开的方法、装置和制品相应地涉及计算机的功能的一个或多个改善。
本文公开了用于使网络通信量对齐以改善功耗的示例方法、装置、***和制品。进一步的示例及其组合包括以下内容:
示例1包括一种用于调度中断的装置,该装置包括:机器学***台活动的启发法,以及使用启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
示例2包括示例1的装置,其中机器学习模型用于基于经训练的模型、通过确定多个分组与工作负荷相对应的可能性来对工作负荷进行分类。
示例3包括示例2的装置,其中机器学习模型用于从多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中预测基于特征向量。
示例4包括示例1的装置,其中功率管理控制器使用与被链接至相对应的启发法的工作负荷相对应的数据结构来确定启发法。
示例5包括示例4的装置,其中指令使一个或多个处理器调整与策略相对应的数据结构中的条目。
示例6包括示例1的装置,其中功率管理控制器用于调度网络中断以与基于硬件的唤醒中断对齐。
示例7包括示例1的装置,其中功率管理控制器基于启发法来标识基于硬件的唤醒中断的发生。
示例8包括示例1的装置,其中功率管理控制器用于响应于确定了工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量的时间段而避免在睡眠模式下操作。
示例9包括一种非瞬态计算机可读存储介质,包括指令,该指令在被执行时使一个或多个处理器用于:基于经由无线通信获得的网络分组来对工作负荷进行分类,确定与工作负荷相对应的平台活动的启发法,以及使用启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
示例10包括示例9的计算机可读存储介质,其中指令使一个或多个处理器用于基于经训练的模型、通过确定多个分组与工作负荷相对应的可能性来对工作负荷进行分类。
示例11包括示例10的计算机可读存储介质,其中指令使一个或多个处理器用于从多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中预测基于特征向量。
示例12包括示例9的计算机可读存储介质,其中指令使一个或多个处理器用于使用与被链接至相对应的启发法的工作负荷相对应的数据结构来标识启发法。
示例13包括示例12的计算机可读存储介质,其中指令使一个或多个处理器用于调整与策略相对应的数据结构中的条目。
示例14包括示例9的计算机可读存储介质,其中指令使一个或多个处理器用于调度网络中断以与基于硬件的唤醒中断对齐。
示例15包括示例9的计算机可读存储介质,其中指令使一个或多个处理器用于基于启发法来确定基于硬件的唤醒中断的发生。
示例16包括示例9的计算机可读存储介质,其中指令使一个或多个处理器用于响应于确定了工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量而避免在睡眠模式下操作。
示例17包括一种用于调度中断的方法,该方法包括:通过利用机器学***台活动的启发法;以及通过利用处理器执行指令,使用启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
示例18包括示例17的方法,其中对工作负荷进行分类包括基于经训练的模型来确定多个分组与工作负荷相对应的可能性。
示例19包括示例18的方法,进一步包括从多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中预测基于特征向量。
示例20包括示例17的方法,进一步包括使用与被链接至相对应的启发法的工作负荷相对应的数据结构来确定启发法。
示例21包括示例20的方法,其中指令使一个或多个处理器调整与策略相对应的数据结构中的条目。
示例22包括示例17的方法,其中调度包括调度网络中断以与基于硬件的唤醒中断对齐。
示例23包括示例17的方法,进一步包括基于启发法来标识基于硬件的唤醒中断的发生。
示例24包括示例17的方法,进一步包括响应于确定了工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量而避免在睡眠模式下操作。
示例25包括一种用于调度中断的设备,该设备包括:用于基于经由无线通信获得的网络分组对工作负荷进行分类的装置;用于调度的装置,该用于调度的装置用于:确定与工作负荷相对应的平台活动的启发法,以及使用启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
示例26包括示例25的设备,其中用于分类的装置用于基于经训练的模型、通过确定多个分组与工作负荷相对应的可能性来对工作负荷进行分类。
示例27包括示例26的设备,其中用于分类的装置用于从多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中预测基于特征向量。
示例28包括示例25的设备,其中用于分类的装置用于使用与被链接至相对应的启发法的工作负荷相对应的数据结构来标识启发法。
示例29包括示例28的设备,其中指令使一个或多个处理器调整与策略相对应的数据结构中的条目。
示例30包括示例25的设备,其中用于调度的装置调度网络中断以与基于硬件的唤醒中断对齐。
示例31包括示例25的设备,其中用于调度的装置基于启发法来确定基于硬件的唤醒中断的发生。
示例32包括示例25的设备,其中用于调度的装置响应于确定了工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量而避免在睡眠模式下操作。
示例33包括一种用于调度中断的装置,该装置包括:至少一个存储器;以及处理器电路***,该处理器电路***包括一个或多个的中央处理单元、图形处理单元、神经处理单元或数字信号处理器中的至少一者,该中央处理单元、图形处理单元、神经处理单元或数字信号处理器中的至少一者具有用于控制处理器电路***内的数据移动的控制电路***、用于执行与指令相对应的一个或多个第一操作的算术和逻辑电路***、以及用于存储一个或多个第一操作的结果一个或多个寄存器;装置中的指令;现场可编程门阵列(FieldProgrammable Gate Array,FPGA),该FPGA包括逻辑门电路***、多个可配置的互连和存储电路***,逻辑门电路***和互连用于执行一个或多个第二操作,存储电路***用于存储一个或多个第二操作的结果;或专用集成电路***,该专用集成电路***包括用于执行一个或多个第三操作的逻辑门电路***;处理器电路***用于执行第一操作、第二操作或第三操作中的至少一个以进行以下各项:基于经由无线通信获得的网络分组对工作负荷进行分类;确定与工作负荷相对应的平台活动的启发法,以及使用启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
示例34包括示例33的装置,其中处理器电路***用于基于经训练的模型、通过确定多个分组与工作负荷相对应的可能性来对工作负荷进行分类。
示例35包括示例34的装置,其中处理器电路***用于从多个分组中提取与分组的统计特性相对应的多个特征,以生成特征向量,其中预测基于特征向量。
示例36包括示例33的装置,其中处理器电路***用于使用与被链接至相对应的启发法的工作负荷相对应的数据结构来确定启发法。
示例37包括示例36的装置,其中指令使一个或多个处理器调整与策略相对应的数据结构中的条目。
示例38包括示例33的装置,其中处理器电路***用于调度网络中断以与基于硬件的唤醒中断对齐。
示例39包括示例33的装置,其中处理器电路***用于基于启发法来标识基于硬件的唤醒中断的发生。
示例40包括示例33的装置,其中处理器电路***用于响应于确定了工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量而避免在睡眠模式下操作。
示例41包括示例33的装置,其中基于网络中断来调度基于硬件的唤醒中断提高了功率节省。
尽管本文中已公开了某些示例方法、装置和制品,但本专利涵盖的范围并不限于此。相反,本专利涵盖公平落入本专利的权利要求的范围内的全部方法、装置和制品。
所附的权利要求由此通过本参考被并入到本具体实施方式中,其中每一项权利要求其本身作为本公开的单独的实施例。
Claims (25)
1.一种用于调度中断的装置,所述装置包括:
机器学习模型,所述机器学习模型由硬件处理器执行以基于经由无线通信获得的网络分组对工作负荷进行分类;以及
功率管理控制器,用于:
确定与所述工作负荷相对应的平台活动的启发法;以及
使用所述启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
2.如权利要求1所述的装置,其中所述机器学习模型用于基于经训练的模型、通过确定多个分组与所述工作负荷相对应的可能性来对所述工作负荷进行分类。
3.如权利要求2所述的装置,其中所述机器学习模型用于从所述多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中所述特征向量用于训练所述机器学习模型。
4.如权利要求1所述的装置,其中所述功率管理控制器用于使用与被链接至相对应的启发法的工作负荷相对应的数据结构来确定所述启发法。
5.如权利要求4所述的装置,其中所述指令使所述一个或多个处理器调整与策略相对应的所述数据结构中的条目。
6.如权利要求1-5中任一项所述的装置,其中所述功率管理控制器用于调度所述网络中断以与所述基于硬件的唤醒中断对齐。
7.如权利要求1-5中任一项所述的装置,其中所述功率管理控制器用于基于所述启发法来标识所述基于硬件的唤醒中断的发生。
8.如权利要求1-5中任一项所述的装置,其中所述功率管理控制器用于响应于确定了所述工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量而避免在所述睡眠模式下操作。
9.一种计算机可读存储介质,包括指令,所述指令在被执行时使一个或多个处理器用于:
基于经由无线通信获得的网络分组对工作负荷进行分类;
确定与所述工作负荷相对应的平台活动的启发法;以及
使用所述启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
10.如权利要求9所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于基于经训练的模型、通过确定多个分组与所述工作负荷相对应的可能性来对所述工作负荷进行分类。
11.如权利要求10所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于从所述多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中所述特征向量用于训练所述机器学习模型。
12.如权利要求9所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于使用与被链接至相对应的启发法的工作负荷相对应的数据结构来标识所述启发法。
13.如权利要求12所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于调整与策略相对应的所述数据结构中的条目。
14.如权利要求9-13中任一项所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于调度所述网络中断以与所述基于硬件的唤醒中断对齐。
15.如权利要求9-13中任一项所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于基于所述启发法来确定所述基于硬件的唤醒中断的发生。
16.如权利要求9-13中任一项所述的计算机可读存储介质,其中所述指令使所述一个或多个处理器用于响应于确定了所述工作负荷对应于超过阈值持续时间的时间段被用来处理网络通信量而避免在所述睡眠模式下操作。
17.一种用于调度中断的方法,所述方法包括:
通过利用实现机器学习模型的处理器执行指令,基于经由无线通信获得的网络分组对工作负荷进行分类;
通过利用处理器执行指令,确定与所述工作负荷相对应的平台活动的启发法;以及
通过利用所述处理器执行指令,使用所述启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
18.如权利要求17所述的方法,其中对所述工作负荷进行分类包括基于经训练的模型来确定多个分组与所述工作负荷相对应的可能性。
19.如权利要求18所述的方法,进一步包括从所述多个分组提取与分组的统计特性相对应的多个特征,以生成特征向量,其中所述特征向量用于训练所述机器学习模型。
20.如权利要求17所述的方法,进一步包括使用与被链接至相对应的启发法的工作负荷相对应的数据结构来确定所述启发法。
21.如权利要求20所述的方法,其中所述指令使所述一个或多个处理器调整与策略相对应的所述数据结构中的条目。
22.如权利要求17-21中任一项所述的方法,其中调度包括调度所述网络中断以与所述基于硬件的唤醒中断对齐。
23.如权利要求17-21中任一项所述的方法,进一步包括基于所述启发法来标识所述基于硬件的唤醒中断的发生。
24.如权利要求17-21中任一项所述的方法,进一步包括响应于确定了所述工作负荷对应于超过阈值持续时间的时间段被使用来处理网络通信量而避免在所述睡眠模式下操作。
25.一种用于调度中断的设备,所述设备包括:
存储器;
指令;以及
处理器电路***,所述处理器电路***用于执行所述指令以:
基于经由无线通信获得的网络分组对工作负荷进行分类;
确定与所述工作负荷相对应的平台活动的启发法;以及
使用所述启发法基于从睡眠模式基于硬件的唤醒中断来调度网络中断。
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 |
---|---|
CN115866726A true CN115866726A (zh) | 2023-03-28 |
Family
ID=79173628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211124580.6A Pending CN115866726A (zh) | 2021-09-24 | 2022-09-15 | 用于使网络通信量对齐以改善功耗的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220011852A1 (zh) |
CN (1) | CN115866726A (zh) |
DE (1) | DE102022124386A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230141290A (ko) * | 2022-03-31 | 2023-10-10 | 리벨리온 주식회사 | 뉴럴 프로세싱 장치 |
-
2021
- 2021-09-24 US US17/484,861 patent/US20220011852A1/en active Pending
-
2022
- 2022-09-15 CN CN202211124580.6A patent/CN115866726A/zh active Pending
- 2022-09-22 DE DE102022124386.9A patent/DE102022124386A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220011852A1 (en) | 2022-01-13 |
DE102022124386A1 (de) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10067805B2 (en) | Technologies for offloading and on-loading data for processor/coprocessor arrangements | |
Kim et al. | Autoscale: Energy efficiency optimization for stochastic edge inference using reinforcement learning | |
US10146286B2 (en) | Dynamically updating a power management policy of a processor | |
US20220036123A1 (en) | Machine learning model scaling system with energy efficient network data transfer for power aware hardware | |
WO2021143155A1 (zh) | 模型训练方法及装置 | |
Junior et al. | A context-sensitive offloading system using machine-learning classification algorithms for mobile cloud environment | |
ur Rehman et al. | Towards next-generation heterogeneous mobile data stream mining applications: Opportunities, challenges, and future research directions | |
US20230016946A1 (en) | Systems, apparatus, articles of manufacture, and methods for proactive data routing | |
US20210328934A1 (en) | Systems, apparatus, and methods for edge data prioritization | |
US20220109742A1 (en) | Apparatus, articles of manufacture, and methods to partition neural networks for execution at distributed edge nodes | |
US20230318932A1 (en) | Methods and apparatus to direct transmission of data between network-connected devices | |
US20220326757A1 (en) | Multi-timescale power control technologies | |
CN115866726A (zh) | 用于使网络通信量对齐以改善功耗的方法和装置 | |
EP3779778A1 (en) | Methods and apparatus to enable dynamic processing of a predefined workload | |
Jha et al. | A hybrid accuracy-and energy-aware human activity recognition model in IoT environment | |
Marin et al. | Reaching for the clouds: contextually enhancing smartphones for energy efficiency | |
Xu et al. | Edge Video Analytics: A Survey on Applications, Systems and Enabling Techniques | |
Lin et al. | A workload-aware dvfs robust to concurrent tasks for mobile devices | |
US20220414027A1 (en) | Platform framework standby operation | |
US11650648B2 (en) | Methods and apparatus to improve computing device power management | |
US20130074096A1 (en) | Hierarchical Contexts to Drive Live Sensor Applications | |
US12021720B2 (en) | Methods and apparatus to generate dynamic latency messages in a computing system | |
US20200358685A1 (en) | Methods and apparatus to generate dynamic latency messages in a computing system | |
Swain et al. | Efficient straggler task management in cloud environment using stochastic gradient descent with momentum learning-driven neural networks | |
US20240023028A1 (en) | Wireless network energy saving with graph neural networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |