掌桥专利:专业的专利平台
掌桥专利
首页

用于对齐媒体工作负载的方法和装置

文献发布时间:2024-04-18 19:58:21


用于对齐媒体工作负载的方法和装置

技术领域

本公开总体上涉及媒体工作负载,并且更具体地涉及用于对齐媒体工作负载的方法和装置。

背景技术

在电子用户设备(例如,膝上型电脑、平板电脑等)的操作期间,设备的硬件组件(诸如处理器、图形卡等)在它们不活跃(例如,不在处理工作负载)时进入低功率状态。电子用户设备的封装驻留衡量片上系统(system on a chip,SOC)等上的一个或多个核心/组件活跃和消耗功率的时间量。

附图说明

图1是可在其中实现本公开的教导的包括示例用户设备的示例环境的框图。

图2是被包括在图1的用户设备中的对齐控制电路系统的示例实现方式的框图。

图3图示示例对齐体系结构。

图4图示图形处理单元(graphics processing unit,GPU)的未对齐过程的示例时序图。

图5A-图5B图示基于处理事件的视频应用的示例时序图。

图6图示示例时序图。

图7图示未对齐视频会议应用的示例时序图。

图8图示对齐视频会议应用的示例时序图。

图9图示视频会议应用的示例工作负载的示例第一和第二时序图。

图10是表示可由示例处理器电路系统执行以实现图2的示例对齐控制电路系统的示例机器可读指令的流程图。

图11是表示可由示例处理器电路系统执行以实现图2的示例阈值确定电路系统的示例机器可读指令的流程图。

图12是包括被构造成用于执行图10-图11的示例机器可读指令以实现图2的示例对齐控制电路系统的处理器电路系统的示例处理平台的框图。

图13是图12的处理器电路系统的示例实现方式的框图。

图14是图12的处理器电路系统的另一示例实现方式的框图。

图15是示例软件分发平台(例如,一个或多个服务器)的框图,该示例软件分发平台用于将软件(例如,与图10-图11的示例机器可读指令相对应的软件)分发给与终端用户和/或消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、转售、许可和/或分许可)、和/或原始装备制造商(original equipment manufacturer,OEM)(例如,用于包括在要分发给例如零售商和/或分发给诸如直接购买客户之类的其他终端用户的产品中)相关联的客户端设备。

附图并未按比例绘制。一般来说,贯穿(一个或多个)附图和所附书面描述,相同的附图标记将用于指代相同或类似的部分。

除非另有特别说明,否则诸如“第一”、“第二”、“第三”等的描述符在本文中使用而不以任何方式强加或以其他方式指示优先级、物理顺序、列表中的布置和/或按任何方式的排序的任何含义,但仅用作标签和/或任意名称来区分要素,以易于理解所公开的示例。在一些示例中,描述符“第一”可以被用于指代具体实施方式中的要素,而在权利要求中可以使用诸如“第二”或“第三”之类的不同描述符来指代同一要素。在此类实例中,应当理解的是,此类描述符仅用于清楚地标识那些可能例如以其他方式共享相同名称的要素。如本文中所使用,“近似”和“大约”是指由于制造公差和/或其他现实世界缺陷而可能并不精确的尺寸。如本文中所使用,“基本上实时的”是指认识到针对计算时间、传输等可能存在现实世界延迟而以接近瞬时的方式发生。由此,除非另外指定,否则“基本上实时的”是指实时+/-1秒。如本文中所使用,短语“进行通信”(包括其变体)包含直接通信和/或通过一个或多个中间组件的间接通信,并且不要求直接的物理(例如,有线)通信和/或持续不断的通信,而是附加地包括以周期性间隔、预定间隔、非周期性间隔、和/或一次性事件来进行的选择性通信。如本文中所使用,“处理器电路系统”定义为包括(i)一个或多个专用电路,该一个或多个专用电路被构造成用于执行(一个或多个)特定操作并且包括一个或多个基于半导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件),和/或(ii)一个或多个基于半导体的通用电路,该一个或多个基于半导体的通用电路用指令编程以执行特定操作并且包括一个或多个基于半导体的逻辑器件(例如,由一个或多个晶体管实现的电硬件)。处理器电路系统的示例包括经编程微处理器、可实例化指令的现场可编程门阵列(Field ProgrammableGate Array,FPGA)、中央处理器单元(Central Processor Unit,CPU)、图形处理器单元(Graphics Processor Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、XPU或微控制器以及诸如专用集成电路(Application Specific Integrated Circuit,ASIC)之类的集成电路。例如,XPU可以由异构计算系统实现,该异构计算系统包括多种类型的处理器电路系统(例如,一个或多个FPGA、一个或多个CPU、一个或多个GPU、一个或多个DSP等,和/或其组合)和(一个或多个)应用编程接口(application programminginterface,API),该应用编程接口可以将(一个或多个)计算任务分配给多种类型的处理电路系统中最适于执行(一个或多个)计算任务的无论哪个(或哪几个)处理电路系统。

具体实施方式

诸如视频协作应用之类的媒体工作负载可消耗大量功率。功率消耗是重要的设计考虑因素,对于由电池供电的便携式设备而言尤其如此。例如,高功率消耗可降低终端用户体验和电池寿命,并且可提高实现视频协作应用的组件的温度。这种温度升高可能具有不受欢迎的副作用,即对此类组件的性能产生不利影响。

在至少一些先前的计算设备中,由媒体工作负载管线中的不同组件(本文中有时称为“IP设备”)执行的处理不是同步的并且以不同的间隔发生。也就是说,IP设备以不同的间隔消耗功率,因此,计算设备不能进入较低功率状态或者只能进入较低功率状态达少量时间。例如,诸如图像信号处理器(image signal processor,ISP)(本文中有时被称为“图像处理单元(image processing unit,IPU)”)之类的一些IP设备包括功率门控特征。如本文所使用的,“功率门控”是指IP设备进入低功率状态的时间段。例如,ISP的功率门控可以在视频会议期间节省100mW。然而,由于用户设备的其他IP设备(诸如中央处理单元(central processing unit,CPU)、图形处理单元(graphics processing unit,GPU)、音频设备、网络设备和/或显示设备)不是同时被功率门控,因此计算设备具有高封装驻留。如本文所使用的,“封装驻留”指的是计算设备的一个或多个核心和/或组件活跃和消耗功率的总时间。附加地或替代地,视频会议应用的较长阶段管线会增加等待时间(例如,增加一帧等)。因此,可能会违反端到端等待时间要求(例如,光子到预览、嘴到耳等)。

在一些示例中,视频会议应用请求数据帧。例如,数据帧可以包括音频数据和/或视频数据。用户设备的相机开始捕获视频帧以用于响应于该请求进行处理。在一些示例中,用户设备包括ISP。ISP可以处理由相机捕获的帧。例如,ISP将输出数据生成为三个缓冲流:示例神经网络处理单元(network processing unit,NPU)、示例媒体块和示例图形执行单元。在一些示例中,NPU由视觉处理单元(vision processing unit,VPU)实现。例如,NPU处理单元对帧数据进行AI处理,媒体块对帧数据进行编码,并且图形执行单元使用帧数据进行显示组成。

本文公开了用于媒体工作负载对齐的方法、装置和系统。例如,如本文所公开的,计算设备的IP设备上的处理可以被对齐以减少等待时间并增加功率节省。本文公开的示例技术包括接收与计算设备的IP设备对应的输入信号。所公开的技术还包括生成与输入信号对应的计数以及确定与输入信号相关联的阈值。例如,输入信号的阈值指示延迟将输入信号输出到IP设备的持续时间。所公开的技术进一步包括基于计数与阈值的比较来延迟与输入信号对应的输出信号的传输。

图1是可在其中实现本公开的教导的包括示例用户设备的示例环境100的框图。示例环境100包括示例第一用户设备102、示例第二用户设备104和示例第三用户设备106。在一些示例中,用户设备102、104、106执行视频会议应用。然而,在本文公开的示例中,用户设备102、104、106可以执行任何媒体工作负载(例如,呈现媒体等)。例如,用户设备102是膝上型电脑,用户设备104是桌面型电脑,并且用户设备106是智能电话,因此能够进行视频会议。虽然图1所示的示例包括三个用户设备,但是本文公开的示例不限于此。例如,可存在膝上型电脑、桌面型电脑和智能手机的任何组合和任何数量的膝上型电脑、桌面型电脑和智能手机。在本文公开的示例中,用户设备还可以包括平板电脑等。

在本文公开的示例中,用户设备102、104、106包括IP设备。例如,用户设备102、104、106包括相机、ISP、人工智能(artificial intelligence,AI)引擎、GPU、媒体引擎、音频设备、显示设备等。在视频会议应用的一些示例中,相机捕获帧并将帧传输到ISP以供处理(例如,人脸检测、时域降噪(temporal noise reduction,TNR)、自动对焦、自动曝光、自动白平衡(3A)等)。ISP可以生成红-绿-蓝平面(red-green-blue planar,RGBP)格式的缩小的输出帧。在一些示例中,AI引擎获得RGBP格式帧来执行背景分割并输出前景/背景掩码。GPU可以获得由AI引擎生成的分割掩码和由ISP生成的原始全分辨率帧来执行背景模糊和/或替换。在一些示例中,媒体引擎获得GPU的输出,并且对压缩比特流进行编码并发送压缩比特流以用于与音频混合和实时传输(real-time transport,RTP)分组化。RTP分组化流被发送到网络栈以进行传输(例如,发送到视频会议应用的其他用户设备)。

在本文公开的示例中,用户设备102、104、106对齐相应IP设备的媒体工作负载的处理。在一些示例中,媒体工作负载的处理被称为处理事件。例如,用户设备102的IP设备(例如,ISP、CPU、GPU等)上的媒体工作负载的执行是对齐的。因此,本文公开的示例降低了媒体工作负载期间的封装C驻留和帧等待时间,并且因此降低了SOC功率消耗。在一些示例中,一帧的处理事件对应于33ms。在一些示例中,IP组件将处理时间划分为11ms(或任何其他期望的持续时间)。在本文公开的一些示例中,IP组件的输入信号以下述方式与帧的开始对齐。本文公开的示例减少了封装驻留和功率消耗。例如,在多媒体会议期间,用户设备102、104、106的封装驻留被减少。

在图1的图示示例中,环境100包括示例网络108。示例网络108是用于在用户设备102、104、106之间传输数据的网络。例如,网络向用户设备102、104、106和/或从用户设备102、104、106传输视频数据和/或音频数据。在一些示例中,网络108可以是因特网或任何其他合适的外部网络。附加地或替代地,可以使用在用户设备102、104、106之间传输数据的任何其他合适的手段。

图2是被包括在图1的用户设备102、104、106中的对齐控制电路系统200的示例实施方式的框图。示例对齐控制电路系统200包括示例输入信号选择电路系统202、示例时钟信号生成电路系统204、示例阈值确定电路系统206、示例阈值寄存器208、示例计数器210、示例比较器214、示例过程长度比较器216、示例信号推迟电路218、示例信号供应电路系统220和示例功率控制电路系统230。

示例对齐控制电路系统200包括示例输入端口222。例如,输入端口222对应于由计算设备102、104、106的IP设备生成的信号。例如,输入端口222接收示例输入信号224。在图2所示的示例中,输入信号224包括ISP帧开始(start of frame,SOF)信号、显示SOF信号、ISP缓冲器就绪信号、VPU缓冲器就绪信号、媒体缓冲器就绪信号、3D缓冲器就绪信号和音频缓冲器就绪信号。在一些示例中,IP设备在视频会议应用的执行期间生成输入信号224。

示例输入信号选择电路系统202从经由输入端口222接收的输入信号224中选择信号。例如,输入信号选择电路系统202选择参考信号。如本文所使用的,“参考信号”是指用于确定延迟的信号。例如,对齐控制电路系统200基于参考信号来对齐输入信号。在一些示例中,对齐控制电路系统200经由输入端口222接收ISP SOF信号和显示SOF信号。示例输入信号选择电路系统202选择ISP SOF信号或显示SOF信号作为参考信号。例如,如果输入信号选择电路系统202选择ISP SOF信号作为参考信号,则对齐控制电路系统200将显示SOF信号处理与ISP SOF信号处理对齐。以这种方式,输入设备的操作节拍是相同的。例如,与ISP SOF信号和显示SOF信号对应的节拍是相同的(例如,33ms等)。

示例时钟信号生成电路系统204生成时钟信号。在一些示例中,时钟信号生成电路系统204基于使用相同晶体并且在用户设备的IP设备之间被共享的时钟信号来操作。因此,IP设备以相同的节拍操作。附加地或替代地,供应至对齐控制电路系统200的输入信号224各自使用不同的参考时钟。在一些这样的示例中,用户设备的IP设备的时钟不以相同节拍操作并且不同步。在这样的示例中,时钟信号生成电路系统204选择输入信号来生成时钟信号。在一些示例中,时钟信号生成电路系统204基于由输入信号选择电路系统202选择的参考信号来选择输入信号。例如,时钟信号生成电路系统204确定所选择的开始时间。

示例阈值确定电路系统206确定与输入信号224相关联的阈值。在本文公开的示例中,阈值确定输入信号224中的对应输入信号的传输将被对齐控制电路系统200延迟的时间量。在一些示例中,阈值确定电路系统206基于输入信号的到达时间(time of arrival,TOA)与(例如,由输入信号选择电路系统202选择的)参考信号的TOA之间的差来确定输入信号的阈值。如本文所使用的,输入信号的“到达时间”是相对于间隔的开始由对齐控制电路系统200接收信号的时间。例如,间隔的开始对应于帧的开始、所选择的开始时间等。在一些示例中,输入信号224与不同的阈值相关联。例如,与输入信号224相关联的阈值基于相应信号与参考信号之间的TOA差。

在一些示例中,阈值是预先确定的。例如,阈值寄存器208存储和/或以其他方式保存与在媒体工作负载的先前执行期间(例如,在用户设备102、104、106的配置期间)确定的输入信号224相关联的阈值。也就是说,在一些示例中,输入信号224与基于媒体工作负载的先前执行期间收集的数据的预期TOA相关联。在一些这样的示例中,示例阈值确定电路系统206基于输入信号与参考信号的预期TOA之间的差来确定输入信号的阈值。当计数器达到该阈值时,该阈值用于指示,输入信号中的对应一者要作为对齐控制电路系统200的输出信号中的对应一者被释放。

在一些示例中,阈值不是预先确定的。例如,阈值寄存器208不存储基于先前媒体工作负载过程确定的阈值。在这样的示例中,当对齐控制电路系统200接收输入信号224时,阈值确定电路系统206确定输入信号224的TOA。例如,对齐控制电路系统200在第一时间接收第一输入信号。对齐控制电路系统200在第二时间接收第二输入信号。因此,阈值确定电路系统206确定第一输入信号与第二输入信号的到达时间的差。在一些示例中,阈值确定电路系统206将输入信号224的阈值存储在阈值寄存器208中。

例如,输入信号224的VPU缓冲器就绪信号和媒体缓冲器就绪信号可以具有33ms的相同节拍。然而,输入信号选择电路系统202在接收到VPU缓冲器就绪信号之后5ms接收媒体缓冲器就绪信号。因此,阈值确定电路系统206确定VPU缓冲器就绪信号与媒体缓冲器就绪信号之间的预期TOA差是5ms。示例阈值寄存器208存储与5ms的媒体缓冲器就绪信号相关联的阈值。

在一些这样的示例中,VPU缓冲器就绪信号可以与间隔的开始同步。在一些这样的示例中,阈值表示VPU缓冲器就绪信号与媒体缓冲器就绪信号的到达之间的时间量,如上面所公开的,其可以是5ms(或取决于对齐控制电路系统200的输入处的输入信号224的到达时间的任何其他值)。在一些这样的示例中,为了对齐与VPU IP设备相关联的第一处理事件的开始和与媒体IP设备相关联的第二处理事件的开始,VPU IP的操作被延迟以推迟VPU缓冲器的开始信号被提供作为输出信号,直到计数器210中的值匹配或超过阈值(例如,5ms)。当计数器210中的值与阈值相等或近似相等时,由VPU缓冲器提供的输入信号被提供作为对齐控制电路系统200的输出信号,并且同时由媒体缓冲器供应的输入信号被提供/释放作为对齐控制电路系统200的输出信号。因此,与VPU缓冲器和媒体缓冲器对应的输入信号同时被供应,分别作为与VPU IP设备的输入信号和媒体IP设备的输入对应的输出信号。以这种方式,VPU IP设备和媒体设备同时操作以分别开始执行第一处理事件和第二处理事件。

示例阈值寄存器208存储阈值。例如,阈值对应于输入信号224中的各个输入信号要被延迟的时间量。如上文所公开,阈值可以在IP设备对工作负载的先前操作期间被确定,或者可以在媒体帧的第一切片的处理期间被确定。如本文所使用的,仅出于示例的目的,媒体帧可以具有33ms的持续时间,并且每个切片可以具有帧持续时间的1/3或11ms的持续时间。图2所图示的示例的示例阈值寄存器208由用于存储数据的任何存储器、存储设备和/或存储盘(诸如例如闪存、磁介质、光学介质、固态存储器、(一个或多个)硬盘驱动器、(一个或多个)拇指驱动器等)实现。此外,存储在示例阈值寄存器208中的数据可以采用任何数据格式,诸如例如,二进制数据、逗号分隔的数据、制表符分隔的数据、结构化查询语言(structured query language,SQL)结构等。虽然在所图示的示例中,阈值寄存器208被图示为单个设备,但本文中描述的示例阈值寄存器208和/或任何其他数据存储设备可以由任何数量和/或(一个或多个)类型的存储器实现。

在一些示例中,示例计数器210生成与输入信号224相关联的计数。例如,计数器210基于由示例时钟信号生成电路系统204生成的所选开始时间来开始对输入信号224的计数。在一些示例中,该计数对应于输入信号已被对齐控制电路系统200延迟的持续时间。在一些示例中,在处理媒体帧的第一切片之后,可以将阈值增加等于以下的时间量:在处理媒体帧的第二切片期间被用作阈值的时间量。

在一些示例中,示例看门狗定时器212确定输入信号224中的任一者的TOA是否超过输入信号224的相应期满时间。例如,看门狗定时器212存储与输入信号224对应的期满时间。在一些示例中,期满时间对应于视频会议应用的等待时间要求。例如,如果输入信号的TOA超过期满时间,则视频会议应用可能丢失帧、违反等待时间要求、丢失音频等。在一些示例中,输入信号224与不同的期满时间相关联。如果看门狗定时器212确定输入信号的TOA(例如,对应于输入信号的计数)超过期满时间,则看门狗定时器212标记输入信号以供传输。也就是说,对齐控制电路系统200确定不对齐输入信号的处理,从而避免违反等待时间要求。

如上文所公开,当输入信号的阈值和对应计数相等(或近似相等)时,由对齐控制电路系统200的对应示例输出提供对应输入信号中的一个或多个/对应输入信号中的一个或多个被释放到对齐控制电路系统200的对应示例输出。为了确定计数值何时等于(或近似等于)对应阈值,示例比较器214对阈值与输入信号224的计数进行比较。也就是说,比较器214对由示例计数器210确定的输入信号的计数与存储在阈值寄存器208中的对应阈值进行比较。在一些示例中,比较器214确定计数小于阈值。如果比较器214确定计数小于阈值,则计数器210继续递增输入信号的计数值。附加地或替代地,比较器214确定输入信号的计数大于或等于阈值。在一些示例中,比较器214将确定输出到信号推迟电路系统218,该信号推迟电路系统218通过以下方式响应于比较器输出:进一步推迟输入信号中的对应一者的释放,或者指示输入信号中的对应一者要被释放作为耦合至对应IP设备的输入的输出信号。

在一些示例中,对齐控制电路系统200操作以使得由IP设备中的对应IP设备执行的处理事件在预定的持续时间内被执行。在一些示例中,预定时间长度对应于与最长持续时间相关联的处理事件。在一些这样的示例中,示例过程长度比较器216对与IP设备中的对应IP设备相关联的处理事件时间进行比较。例如,过程长度比较器216确定由IP设备中的对应IP设备执行的处理事件的持续时间。在一些示例中,处理事件中在将输入信号中的对应一者释放到输出端口228中的对应一者时开始的处理事件的持续时间是预定的。在一些这样的示例中,在较早时间执行的工作负载处理期间标识处理事件的持续时间。在一些示例中,过程长度比较器216标识与具有相对最长持续时间的处理事件对应的输入信号。在一些示例中,过程长度比较器216将确定输出到信号推迟电路系统218。

该示例使用信号推迟电路系统218的输出来基于处理事件的持续时间来控制输入信号的释放。例如,信号推迟电路系统218接收比较器214的输出。如果比较器214确定输入信号的计数小于输入信号的阈值,则信号推迟电路系统218标记要被延迟的输入信号。例如,信号推迟电路系统218推迟输入信号的提供,并且计数器210递增输入信号的计数。附加地或替代地,信号推迟电路系统218确定输入信号的计数大于或等于阈值。当比较器214确定输入信号的计数大于或等于阈值时,信号推迟电路系统218标记输入信号以供传输到IP设备中的对应一者。

在一些示例中,信号推迟电路系统218用驻留延迟来标记输入信号。例如,如果比较器214确定输入信号的计数大于或等于输入信号的阈值并且过程长度比较器216确定输入信号不是对应于最长处理时间的输入信号,则信号推迟电路系统218用驻留延迟来标记输入信号。也就是说,在一些示例中,信号推迟电路系统218确定延迟与IP设备对应的输入信号,使得IP设备在具有最长持续时间的处理事件完成的同时(或之前)完成处理事件。例如,IP设备的处理事件的完成时间是相同的。例如,信号推迟电路系统218基于对应的处理事件和具有最长持续时间的处理事件之间的差异的持续时间来确定增加与输入信号相关联的阈值。在一些示例中,(一个或多个)阈值被设置为使得所有对应的输入信号被延迟并且与IP设备中的每一者相关联的处理事件的完成同时发生。在一些示例中,信号推迟电路系统218不用驻留延迟来标记输入信号。例如,信号推迟电路系统218可以确定第一IP设备的输出要被作为输入供应至第二IP设备。在一些示例中,第一IP设备生成输出信号所需的处理时间影响第二IP设备的开始时间。在一些这样的示例中,用户设备(例如,用户设备102、104、106)要在所得输出信号可以被供应到第二输入设备以供第二输入设备在执行第二处理时间时使用之前完成由第一IP设备执行的第一处理事件。在一些这样的示例中,第二IP设备的开始时间被调度为被延迟,直到第一IP设备的所得输出信号准备好作为输入信号被供应至对齐控制电路系统200为止。在一些示例中,第二IP设备可以在第一IP设备的输出数据被生成时开始处理该输出数据,而无需等到第一IP设备已完成第一处理事件。在一些这样的示例中,第二IP设备可以被延迟生成第一IP设备的至少一些输出数据所花费的时间量,如下文进一步描述的。

在一些示例中,信号供应电路系统220响应于由示例看门狗定时器212和/或示例信号推迟电路系统218供应的信号。示例信号供应电路系统220生成输出信号。例如,信号供应电路系统220生成对应于输入信号224的示例输出信号226。在图2的图示示例中,输出信号226包括ISP同步信号、显示同步信号、媒体开始信号、VPU开始信号、3D开始信号和音频开始信号。在一些示例中,信号供应电路系统220响应于确定信号推迟电路系统218和/或看门狗定时器212标记了输入信号224以供传输到对应的IP设备而生成输出信号226。示例信号供应电路系统220使得输出信号226经由示例输出端口228被传输到IP设备。在一些示例中,每个输出信号对应于输出端口。

图3图示示例对齐体系结构300。例如,用户设备102、104、106(图1)实现对齐体系结构300。示例对齐体系结构300包括示例应用层302、示例操作系统(operating system,OS)层304、示例用户模式层306、示例内核模式层308和示例硬件层310。在一些示例中,对齐体系结构300在视频会议期间对齐用户设备的IP设备的处理。例如,应用层302的媒体应用是视频会议应用。示例用户模式层306包括示例硬件抽象层(hardware abstractionlayer,HAL)。例如,用户模式层306包括示例相机HAL和示例媒体HAL。示例内核模式层308包括示例相机固件312、示例媒体固件314和示例音频固件316。在图3的图示示例中,媒体固件314包括示例过程对齐块318。在一些示例中,处理对齐块318接收输出信号226(图2)。附加地或替代地,示例相机固件312和/或示例音频固件316包括示例处理对齐块318。

在操作中,应用层302的视频会议应用请求视频帧,并且用户设备的相机开始捕获帧以用于基于输出信号226进行处理。示例硬件层310包括示例ISP 320。例如,ISP 320处理由相机捕获的帧。在图3的图示示例中,ISP将输出数据生成为三个缓冲流:示例神经网络322、示例编码器324和示例图形电路系统326。在一些示例中,神经网络322对帧数据执行AI处理,编码器324对帧数据进行编码,并且图形电路系统326使用帧数据执行显示组成。在本文公开的示例中,由神经网络322、编码器324和图形电路系统326执行的处理基于由对齐控制电路系统200(图2)生成的输出信号226来对齐。

在一些示例中,神经网络322、编码器324和图形电路系统326从示例流式缓冲器存储器328读取数据和/或向示例流式缓冲器存储器328写入数据。在一些示例中,流式缓冲器存储器328是近存储器、缓存等。例如,神经网络322处理帧的第一切片,并将输出存储在流式缓冲器存储器328中。编码器324访问存储在流式缓冲器存储器328中的神经网络322的输出,并在神经网络322完成处理整个帧之前开始进行处理。因此,对齐体系结构300支持低等待时间和共享驻留。附加地或替代地,神经网络322、编码器324和图形电路系统326从示例系统存储器330读取数据和/或向示例系统存储器330写入数据。在一些示例中,系统存储器330是双倍数据速率(Double Data Rate,DDR)存储器。

在本文公开的示例中,对齐体系结构300的出流处理在帧时间的前1/3内完成。在一些示例中,帧时间是指处理帧的总时间量。用于视频解码的比特流被复制到连续的系统存储器(例如,流式缓冲器存储器328和/或系统存储器330)。示例对齐体系结构300对齐解码操作(例如,第一解码操作基于对齐控制电路系统200的输出信号226被排队)。例如,如果解码操作在输出信号226被传输之前进行排队,则解码操作在帧时间的前1/3内完成。如果解码操作在输出信号226被传输之后进行排队,则解码操作被延迟以在后续帧时间(例如,帧时间的第二个1/3)中处理。

示例对齐体系结构300包括示例解码器332和示例音频麦克风334。在本文公开的一些示例中,解码器332和音频麦克风334与ISP 320、神经网络322、解码器324和/或图形电路系统326的操作对齐。例如,音频分组由对齐控制电路系统200缓冲,以对齐由音频麦克风334对每帧的三个音频分组的处理。在一些这样的示例中,用户设备的麦克风以10ms中断捕获音频以实现回声消除。在一些示例中,音频渲染分组被转移到数字信号处理器(DSP)(未示出)以进行编码/解码处理。因此,用户设备的CPU(未示出)保持空闲,从而降低封装驻留。

图4图示GPU的未对齐过程的示例时序图400。例如,时序图400包括不同步的处理事件。处理事件包括示例编码过程402、示例组成过程404、示例解码过程406和示例处理408。示例过程402、404、406、408在不同时间发生。也就是说,过程402、404、406、408没有对齐。因此,GPU不进入低功率状态,并且用户设备的封装驻留相对较高。

图5A图示基于处理事件的视频应用的示例时序图500。在图5A的图示示例中,ISP的处理事件是对齐的,而CPU和/或GPU的处理事件是不对齐的。例如,ISP发起视频应用的帧捕获,而CPU、GPU、音频电路系统、神经网络加速器和/或网络处理电路系统在硬件或软件中未对齐。例如,ISP在帧刷新边界处开始处理事件,并通过管线化来对齐处理(例如,管线中的每个阶段都在处理前一帧中生成的数据)。因此,ISP是功率门控的。然而,CPU和GPU没有被功率门控,因此不降低功率消耗。例如,CPU在ISP被功率门控时执行编码处理事件在图5A的图示示例中,处理事件包括编码、用户界面(user interface,UI)更新处理、解码、面部检测处理、3A处理和音频处理。

图5B图示基于处理事件的视频应用的示例时序图502。在一些示例中,IP组件的处理事件是对齐的。例如,ISP、CPU、GPU、音频电路系统、神经网络加速器和/或网络处理电路系统的处理事件是对齐的。例如,与图5B相比,GPU在图5A中在相对较晚的时间执行编码处理事件。也就是说,CPU和GPU在ISP被功率门控的时间期间不执行处理事件。在一些示例中,当ISP被功率门控时,CPU和/或GPU处于空闲状态。例如,在空闲状态期间,CPU和/或GPU减少对系统存储器的访问,因此降低功率消耗。

图6图示示例第一时序图600、示例第二时序图602、示例第三时序图604和示例第四时序图606。示例时序图600、602、604、606包括示例第一帧时间608、示例第二帧时间610和示例第三帧时间612。示例时序图600、602、604、606包括示例过程1、示例过程2和示例过程3。例如,过程1、2、3对应于视频会议应用的处理事件。

示例第一时序图600对应于IP设备的处理事件未对齐。也就是说,IP设备顺序地处理处理事件。例如,第一帧时间608对应于处理帧N,第二帧时间610对应于处理帧N+1,并且第三帧时间612对应于处理帧N+2。第一时序图600具有示例第一等待时间614。等待时间614对应于帧时间608、610、612的持续时间。也就是说,IP设备在一个帧时间内完成处理一个帧。第一时序图600具有示例活跃时段616。例如,对应于第一时序图600的IP设备对于帧时间608、610、612的持续时间是活跃的。也就是说,IP设备没有被功率门控并具有高封装驻留。

示例第二时序图602对应于IP设备的处理事件是对齐的。例如,IP设备在帧时间608、610、612的开始处执行处理事件。例如,帧N的过程1在第一帧时间608的开始处发生。例如,帧N+1的过程1和帧N的过程2在第二帧时间610的开始处发生。例如,帧N+2的过程1、帧N+1的过程2和帧N的过程3在第三帧时间612的开始处发生。因此,第二时序图602具有示例第二等待时间618。在图6的图示示例中,第二等待时间618大于第一等待时间614。在一些示例中,第二等待时间618违反视频会议应用的等待时间要求(例如,等待时间618超过等待时间要求)。

第二时序图602具有示例第二活跃时段620。示例第二活跃时段620对应于过程1的处理时间。也就是说,第二活跃时段620比第一时序图600的第一活跃时段616相对更短。因此,第二时序图602具有示例第一功率门控时段622。在本文公开的示例中,活跃时段和功率门控时段(例如,活跃时段620和功率门控时段622)的持续时间之和等于帧时间(例如,第一帧时间608)。

示例第三时序图604对应于实现流式缓冲器(例如,图3的近存储器328)的IP设备的处理事件。例如,与第一时序图600类似,IP设备在第一帧时间608中执行帧N的过程1、过程2和过程3。IP设备在第二帧时间610中执行帧N+1的过程1、过程2和过程3。IP设备在第三帧时间612中执行帧N+2的过程1、过程2和过程3。然而,第三时序图604的过程1、过程2和过程3的处理时间重叠。也就是说,IP设备在帧N的第一切片上执行过程1,并将输出存储在流式缓冲器中。当过程1正在帧N的后续切片上执行时,IP设备访问存储在流式缓冲器中的输出并执行过程2。因此,第三时序图604具有示例第三等待时间624。在图6的图示示例中,第三等待时间624小于第一等待时间614和第二等待时间618。

第三时序图604具有示例第三活跃时段626和示例第二功率门控时段628。示例第三活跃时段626小于第一活跃时段616并且大于第二活跃时段620。然而,如上所述,第三等待时间624小于第二等待时间618并且不违反等待时间要求。

示例第四时序图606对应于IP设备的对齐处理事件实现流式缓冲器。也就是说,第四时序图606对应于本文公开的示例技术。例如,IP设备在第一帧时间608中执行帧N的过程1和过程2。在图6的图示示例中,第四时序图606的过程1和过程2重叠。IP设备在第二帧时间610中执行帧N+1的过程1、过程2和帧N的过程3。在第四时序图606的第二帧时间610中,帧N+1的过程1和帧N的过程3对齐。IP设备在第三帧时间612中执行帧N+2的过程1、过程2和帧N+1的过程3。因此,第四时序图606具有示例第四等待时间630。在图6的图示示例中,第四等待时间630大于第一等待时间614和第三等待时间624但小于第二等待时间618。

示例第四时序图606具有示例第四活跃时段632和示例第三功率门控时段634。示例第四活跃时段632小于第一活跃时段616和第三活跃时段626,但大于第二活跃时段620。然而,第四等待时间630不违反等待时间要求,并且第四活跃时段632小于第三活跃时段626。

图7图示视频会议应用的示例时序图700。例如,时序图700对应于30帧每秒(frames per second,fps)的视频会议工作负载。时序图700包括与示例ISP 702、示例GPU704、示例第一CPU 706和示例第二CPU 708对应的处理事件。例如,时序图700包括针对一帧的处理事件。在图7的图示示例中,ISP 702、GPU 704和CPU 706、708的处理事件未对齐。例如,ISP 702执行两个对齐的处理事件。也就是说,ISP 702在帧时间开始时执行两个处理事件并进入功率门控时段。然而,GPU 704和CPU 706、708的处理事件未对齐,并且在帧时间的持续时间期间发生。在图7的图示示例中,对应于GPU 704和CPU 706、708的时序图不包括功率门控时段。因此,包括ISP 702、GPU 704和CPU 706、708的用户设备具有高封装驻留。

图8图示视频会议应用的示例时序图800。时序图800包括与示例ISP 802、示例GPU804、示例CPU 806和示例音频DSP 808对应的处理事件。例如,时序图800包括针对一帧的处理事件。在图8的图示示例中,ISP 802、GPU 804、CPU 806和音频DSP 808的处理事件是对齐的。例如,ISP 802、GPU 804、CPU 806和音频DSP 808在帧时间开始时执行处理事件。因此,ISP 802、GPU 804和CPU 806的时序图包括功率门控时段。例如,图8的图示示例包括示例阈值810。在一些示例中,阈值810对应于功率门控时段的开始。在一些示例中,IP设备在帧时间的1/3内完成处理事件的执行(例如,阈值810在帧时间的1/3处发生),从而导致活跃时段减少40%并且用户设备的核心活跃时段减少30%。

图9图示视频会议应用的示例工作负载的示例第一时序图900和示例第二时序图902。示例时序图900包括CPU工作负载、IPU工作负载和GPU工作负载。第一时序图900的工作负载未对齐。例如,CPU、IPU和GPU的工作负载遍及帧时间被执行。示例第二时序图902的工作负载是对齐的。例如,CPU在帧开始时处理工作负载。此外,GPU在与CPU相同的帧开始处处理工作负载。因此,CPU、IPU和GPU可以进入功率门控时段,并减少用户设备的封装驻留。也就是说,对齐和流式缓冲器减少了针对无音频和有音频视频会议的封装和核心驻留。因此,本文描述的示例用户设备减少了视频会议应用的功率消耗。

示例功率控制电路系统230响应于完成对应于输出信号226的处理事件而使IP组件断电。例如,功率控制电路系统230向IP组件传输信号以使IP组件生成功率门控时段和/或空闲时段。也就是说,当IP组件完成各自的处理事件后,IP组件断电。附加地或替代地,示例对齐控制电路系统200不包括功率控制电路系统230。在一些这样的示例中,IP组件响应于完成处理事件而断电,直到存在唤醒事件(例如,后续处理事件)为止。

在一些示例中,对齐控制电路系统200包括用于选择输入信号的装置。例如,用于选择输入信号的装置可以由示例输入信号选择电路系统202来实现。在一些示例中,输入信号选择电路系统202可以由机器可执行指令(诸如至少由图10的框1002、1004实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(Field Programmable Gate Array,FPGA)电路系统1400实现。在其他示例中,输入信号选择电路系统202由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,输入信号选择电路系统202可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、比较器、运算放大器(operational-amplifier,op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于生成时钟信号的装置。例如,用于生成时钟信号的装置可以由示例时钟信号生成电路系统204来实现。在一些示例中,时钟信号生成电路系统204可以由机器可执行指令(诸如至少由图10的框1006实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,时钟信号生成电路系统204由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,时钟信号生成电路系统204可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于确定阈值的装置。例如,用于确定阈值的装置可以由示例阈值确定电路系统206来实现。在一些示例中,阈值确定电路系统206可以由机器可执行指令(诸如至少由图10的框1008、图11的框1102、1104、1106、1108、1110、1112实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,阈值确定电路系统206由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,阈值确定电路系统206可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于计数的装置。例如,用于计数的装置可由示例计数器210实现。在一些示例中,计数器210可以由机器可执行指令(诸如至少由图10的框1010实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,计数器210由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,计数器210可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于确定期满时间的装置。例如,用于确定期满时间的装置可以由示例看门狗定时器212实现。在一些示例中,看门狗定时器212可以由机器可执行指令(诸如至少由图10的框1012实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,看门狗定时器212由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,看门狗定时器212可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于比较的装置。例如,用于比较的装置可由示例比较器214实现。在一些示例中,比较器214可以由机器可执行指令(诸如至少由图10的框1014实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,比较器214由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,比较器214可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于推迟信号的装置。例如,用于推迟信号的装置可以由示例信号推迟电路系统218实现。在一些示例中,信号推迟电路系统218可以由机器可执行指令(诸如至少由图10的框1016、1018、1022、1026实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,信号推迟电路系统218由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,信号推迟电路系统218可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于传输信号的装置。例如,用于传输信号的装置可以由示例信号供应电路系统220实现。在一些示例中,信号供应电路系统220可以由机器可执行指令(诸如至少由图10的框1024实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,信号供应电路系统220由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,信号供应电路系统220可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

在一些示例中,对齐控制电路系统200包括用于控制功率的装置。例如,用于控制功率的装置可以由示例功率控制电路系统230实现。在一些示例中,功率控制电路系统230可以由机器可执行指令(诸如至少由图10的框1024实现的机器可执行指令)来实现,该机器可执行指令由处理器电路系统执行,该处理器电路系统可由图12的示例处理器电路系统1212、图13的示例处理器电路系统1300和/或图14的示例现场可编程门阵列(FPGA)电路系统1400实现。在其他示例中,功率控制电路系统230由其他硬件逻辑电路系统、硬件实现的状态机和/或硬件、软件和/或固件的任何其他组合来实现。例如,功率控制电路系统210可以由被构造成用于在不执行软件或固件的情况下执行相对应的操作的至少一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、专用集成电路(ASIC)、比较器、运算放大器(op-amp)、逻辑电路等)来实现,但其他结构也同样适用。

尽管在图2中图示出实现图2的对齐控制电路系统200的示例方式,但是图2中所图示的元件、过程和/或设备中的一者或多者可以被组合、拆分、重新布置、省略、消除和/或以任何其他方式实现。此外,示例输入信号选择电路系统202、示例时钟信号生成电路系统204、示例阈值确定电路系统206、示例阈值寄存器208、示例计数器210、示例看门狗定时器212、示例比较器214、示例过程长度比较器216、示例信号推迟电路系统218、示例信号供应电路系统220、示例功率控制电路系统230和/或更一般地,图2的示例对齐控制电路系统200可以由硬件、软件、固件、和/或硬件、软件、和/或固件的任何组合来实现。因此,例如,示例输入信号选择电路系统202、示例时钟信号生成电路系统204、示例阈值确定电路系统206、示例阈值寄存器208、示例计数器210、示例看门狗定时器212、示例比较器214、示例过程长度比较器216、示例信号推迟电路系统218、示例信号供应电路系统220、示例功率控制电路系统230和/或更一般地,示例对齐控制电路系统200中的任一项可由处理器电路系统、(一个或多个)模拟电路、(一个或多个)数字电路、(一个或多个)逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程微控制器、(一个或多个)图形处理单元(GPU)、(一个或多个)数字信号处理器(DSP)、(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑器件(PLD)和/或(一个或多个)现场可编程逻辑器件(field programmable logic device,FPLD)(诸如现场可编程门阵列(FPGA))来实现。当阅读到本专利的涵盖纯软件和/或固件实现方式的装置或系统权利要求中的任一项时,示例输入信号选择电路系统202、示例时钟信号生成电路系统204、示例阈值确定电路系统206、示例阈值寄存器208、示例计数器210、示例看门狗定时器212、示例比较器214、示例过程长度比较器216、示例信号推迟电路系统218、示例信号供应电路系统220、示例功率控制电路系统230和/或示例对齐控制电路系统200中的至少一者由此被明确地定义为包括包含该软件和/或固件的非暂态计算机可读存储设备或存储盘(诸如存储器、数字多功能盘(digital versatiledisk,DVD)、致密盘(compact disk,CD)、蓝光盘等)。更进一步地,图2的示例对齐控制电路系统200可以包括附加于或替代图2中所图示的那些元件、过程和/或设备的一个或多个元件、过程和/或设备,和/或可以包括所图示的元件、过程和设备中的任何或所有元件、过程和设备中的多于一个的元件、过程和设备。

在图10-图11中示出了表示用于实现图2的对齐控制电路系统200的示例硬件逻辑电路系统、机器可读指令、硬件实现的状态机和/或其任何组合的流程图。机器可读指令可以是用于由处理器电路系统执行的一个或多个可执行程序或可执行程序的(一个或多个)部分,该处理器电路系统诸如下文结合图12所讨论的示例处理器平台1200中示出的处理器电路系统1212和/或下文结合图13和/或图14所讨论的示例处理器电路系统。程序可以被具体化在存储在与位于一个或多个硬件设备中的处理器电路系统相关联的一个或多个非暂态计算机可读存储介质(诸如CD、软盘、硬盘驱动器(hard disk drive,HDD)、DVD、蓝光盘、易失性存储器(例如,任何类型的随机存取存储器(Random Access Memory,RAM)等)或非易失性存储器(例如,闪存、HDD等))上的软件中,但完整的程序和/或其部分可以替代地由除处理器电路系统外的一个或多个硬件设备执行,和/或被具体化在固件或专用硬件中。机器可读指令可跨多个硬件设备被分发和/或由两个或更多个硬件设备(例如,服务器和客户端硬件设备)执行。例如,客户端硬件设备可以由端点客户端硬件设备(例如,与用户相关联的硬件设备)或中间客户端硬件设备(例如,可促进服务器与端点客户端硬件设备之间通信的无线电接入网络(radio access network,RAN)网关)来实现。类似地,非暂态计算机可读存储介质可包括位于一个或多个硬件设备中的一个或多个介质。进一步地,虽然参考图12所图示的流程图描述示例程序,但是可替代地使用实现示例对齐控制电路系统200的许多其他方法。例如,框的执行次序可以被改变,和/或所描述的框中的一些框可以被改变、被消除或被组合。附加地或替代地,框中的任何框或所有框可以由被构造成用于在不执行软件或固件的情况下执行对应的操作的一个或多个硬件电路(例如,处理器电路系统、分立的和/或集成的模拟和/或数字电路系统、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现。处理器电路系统可以分布在不同的网络位置和/或在一个或多个硬件设备(例如,单核心处理器(例如,单核心中央处理器单元(CPU))、单个机器中的多核心处理器(例如,多核心CPU等)、跨服务器机架的多个服务器分布的多个处理器、跨一个或多个服务器机架分布的多个处理器、位于同一封装中(例如,位于同一集成电路(integrated circuit,IC)封装中或位于两个或更多个分开的壳体中等)的CPU和/或FPGA)本地。

本文中描述的机器可读指令可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种格式来存储。如本文中描述的机器可读指令可以作为可用于创建、制造和/或产生机器可执行指令的数据或数据结构(例如,作为指令的部分、代码、代码表示等)来存储。例如,机器可读指令可以被分段,并被存储在位于网络或网络集合中的相同或不同位置处(例如,在云中、在边缘设备中等)的一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能要求安装、修改、适配、更新、组合、补充、配置、解密、解压缩、拆包、分发、重新分配、编译等中的一项或多项,以使得它们由计算设备和/或其他机器直接可读取、可解释、和/或可执行。例如,机器可读指令可以被存储在多个部分中,这些部分被单独地压缩、加密和/或被存储在单独的计算设备上,其中,这些部分在被解密、解压缩和/或组合时形成机器可执行指令的集合,该机器可执行指令的集合实现可以一起形成诸如本文中描述的程序之类的程序的一个或多个操作。

在另一示例中,机器可读指令可以在它们可被处理器电路系统读取所处于的状态下被存储,但是要求添加库(例如,动态链接库(dynamic link library,DLL))、软件开发工具包(software development kit,SDK)、应用编程接口(application programminginterface,API)等,以便在特定的计算设备或其他设备上执行机器可读指令。在另一示例中,在可整体或部分地执行机器可读指令和/或相对应的(一个或多个)程序之前,机器可读指令可能需要被配置(例如,所存储的设置、所输入的数据、所记录的网络地址等)。由此,如本文中所使用,机器可读介质可包括机器可读指令和/或(一个或多个)程序,而不管机器可读指令和/或(一个或多个)程序在被存储时或以其他方式处于静态或在途中时的特定格式或状态如何。

本文中所描述的机器可读指令可以由任何过去、现在或未来的指令语言、脚本语言、编程语言等表示。例如,机器可读指令可以用以下语言中的任何语言来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HyperText Markup Language,HTML)、结构化查询语言(SQL)、Swift等。

如上文所提及,可使用存储在一个或多个非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)实现图10-图11的示例操作,该非暂态计算机和/或机器可读介质诸如光学存储设备、磁存储设备、HDD、闪存存储器、只读存储器(read-only memory,ROM)、CD、DVD、缓存、任何类型的RAM、寄存器和/或在任何时长内(例如,在扩展时间段内、永久地、在简短的实例期间、在临时缓冲和/或信息缓存期间)将信息存储于其内的任何其他存储设备或存储盘。如本文中所使用,术语非暂态计算机可读介质和非暂态计算机可读存储介质被明确地定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号并排除传输介质。

“包含”和“包括”(及其所有形式和时态)在本文中被用作开放式术语。由此,每当权利要求将任何形式的“包含”或“包括”(例如,包括、包含、包括有、包含有、具有等)用作前序部分或用于任何种类的权利要求记载内容之中时,应当理解的是,附加的元素、项等可以存在,而不落在相对应的权利要求或记载的范围之外。如本文中所使用,当短语“至少”被用作例如权利要求的前序部分中的过渡术语时,它以与术语“包括有”和“包含有”是开放式的相同的方式是开放式的。术语“和/或”当例如以诸如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”))、“一个或多个”和“至少一个”在本文中可互换地使用。此外,虽然单独列出,但多个装置、元件或方法动作可由例如相同实体或对象来实现。附加地,虽然单独的特征可以被包括在不同的示例或权利要求中,但是这些特征可以可能被组合,并且在不同的示例或权利要求中的包含并不暗示特征的组合不可行和/或不是有利的。

图10是表示可由处理器电路系统执行和/或实例化以对齐工作负载的示例机器可读指令和/或示例操作1000的流程图。图10的机器可读指令和/或操作1000开始于框1002,在框1002处,示例输入信号选择电路系统202(图2)接收(一个或多个)输入信号。例如,输入信号选择电路系统202经由输入端口222(图2)接收输入信号224(图2)。

在框1004处,示例输入信号选择电路系统202选择参考信号。例如,输入信号选择电路系统202选择输入信号224中的一者作为参考信号。例如,输入信号选择电路系统202接收ISP SOF信号和显示SOF信号。输入信号选择电路系统202选择ISP SOF信号或显示SOF信号中的一者作为参考信号。

在框1006处,示例时钟信号生成电路系统204(图2)生成时钟信号。例如,时钟信号生成电路系统204确定(一个或多个)输入信号是否与同一晶体相关联。在一些示例中,时钟信号指示所选择的开始时间。

在框1008处,阈值确定电路系统206(图2)确定与(一个或多个)输入信号相对应的(一个或多个)阈值。例如,阈值确定电路系统206确定(一个或多个)阈值是否是预定值。如果阈值确定电路系统206确定(一个或多个)阈值不是预定的,则阈值确定电路系统206基于(一个或多个)输入信号的TOA之间的差来确定(一个或多个)阈值。下面结合图11更详细地描述可用于实现框1008以确定(一个或多个)阈值的示例操作。

在框1010处,示例计数器210(图2)生成与(一个或多个)输入信号相关联的(一个或多个)计数。例如,计数器210递增与(一个或多个)输入信号中的一者相关联的计数。在一些示例中,计数器210在框1006处确定的所选择的开始时间处开始计数。在一些示例中,计数器210生成针对(一个或多个)输入信号中的每一者的计数。

在框1012处,示例看门狗定时器212(图2)确定(一个或多个)计数是否超过(一个或多个)期满时间。例如,看门狗定时器212将(一个或多个)计数与同(一个或多个)输入信号相关联的(一个或多个)对应期满时间进行比较。在一些示例中,(一个或多个)期满时间基于视频会议应用的等待时间要求。如果示例看门狗定时器212确定(一个或多个)计数超过(一个或多个)期满时间,则操作1000继续至框1024。如果示例看门狗定时器212确定(一个或多个)计数未超过(一个或多个)期满时间,则在框1014处,示例比较器214(图2)确定(一个或多个)计数是否大于或等于(一个或多个)阈值。例如,比较器214将(一个或多个)计数与存储在阈值寄存器208(图2)中的(一个或多个)对应阈值进行比较。

如果比较器214确定(一个或多个)计数大于或等于(一个或多个)对应阈值,则在框1016处,示例信号推迟电路系统218(图2)标记用于作为输出信号传输到IP设备中的对应一者的(一个或多个)对应输入信号。操作1000继续至框1020。如果比较器214确定(一个或多个)计数不大于或等于(一个或多个)对应阈值,则在框1018处,信号推迟电路系统218标记用于延迟的(一个或多个)输入信号。也就是说,信号推迟电路系统218确定继续延迟(一个或多个)输入信号作为输出信号的传输,直到达到由操作1000中的一个或多个操作的后续迭代所确定的阈值为止。操作1000返回到框1010,在框1010处,示例计数器210递增(一个或多个)输入信号的计数。

在框1020处,示例过程长度比较器216(图2)确定(一个或多个)输入信号的(一个或多个)处理时间。例如,过程长度比较器216确定与最长处理时间相关联的输入信号。在一些示例中,IP设备中的对应IP设备处理作为输出信号被供应的(一个或多个)输入信号中的对应输入信号所需的处理时间是预定的。

在框1022处,示例信号推迟电路系统218确定是否生成驻留延迟。例如,驻留延迟基于对应IP设备完成对应处理事件所需的时间长度来对齐将(一个或多个)输入信号信号中的一者或多者作为输出信号供应至对应IP设备的时间。在一些示例中,信号推迟电路系统218基于第一过程的输出是否被用作第二过程的输入来确定是否生成驻留延迟。如果示例信号推迟电路系统218确定不生成驻留延迟,则在框1024处,示例信号供应电路系统220(图2)生成(一个或多个)输出信号。例如,信号供应电路系统220生成对应于(一个或多个)输入信号的(一个或多个)输出信号。在一些示例中,信号供应电路系统将(一个或多个)输出信号传输到(一个或多个)输入信号的对应IP设备。附加地或替代地,示例功率控制电路系统230(图2)响应于完成相应的处理事件而生成输出信号以使IP组件断电。

返回到框1022,如果示例信号推迟电路系统218被编程为生成驻留延迟,则在框1026处,示例信号推迟电路系统218确定驻留延迟。例如,信号推迟电路系统218基于与处理(一个或多个)输入信号以标识与最长处理时间相关联的过程(例如,在框1020处确定)相关联的时间之间的差来确定驻留延迟。在一些示例中,信号推迟电路系统218基于实现应用的最低总驻留时间所需的(一个或多个)延迟(例如,基于最长处理时间)来调整将影响(一个或多个)输入信号中的一者或多者何时作为输出信号被供应的(一个或多个)阈值。操作1000返回到框1010,在框1010处,示例计数器210递增与(一个或多个)输入信号相关联的计数。

图11是表示可由处理器电路系统执行和/或实例化以确定(一个或多个)阈值的示例机器可读指令和/或示例操作1008的流程图。图11的机器可读指令和/或操作1008开始于框1102,在框1102处,示例阈值确定电路系统206(图2)确定(一个或多个)阈值是否是预定的。在一些示例中,(一个或多个)阈值是基于视频会议应用期间媒体工作负载的先前处理而预定的。例如,阈值确定电路系统206确定阈值寄存器208(图2)是否包含与(一个或多个)对应输入信号相关联的(一个或多个)对应阈值。如果是,则将阈值(或其副本)传递至阈值寄存器208中的对应的阈值寄存器。

如果示例阈值确定电路系统206确定(一个或多个)阈值是预定的,则操作1008继续至框1110。如果示例阈值确定电路系统206确定(一个或多个)阈值不是预定的,则在框1104处,示例阈值确定电路系统206确定参考信号的TOA。例如,阈值确定电路系统206确定参考信号的TOA(参见图10的框1004)。

在框1106处,示例阈值确定电路系统206确定第二输入信号的TOA。例如,阈值确定电路系统206选择(一个或多个)输入信号中的一者并确定该输入信号的TOA。在一些示例中,参考信号和/或(一个或多个)输入信号的TOA基于在图10的框1006处确定的所选择的开始时间。

在框1108处,示例阈值确定电路系统206确定参考信号的TOA与第二输入信号的TOA之间的差。例如,该差对应于何时由示例对齐控制电路系统200(图2)接收参考信号和第二信号的时间差。在一些示例中,阈值确定电路系统206将与第二输入信号相关联的差存储在阈值寄存器208中。

在框1110处,示例阈值确定电路系统206确定是否分析附加输入信号。例如,阈值确定电路系统206确定输入信号224(图2)中的任一者是否未被分析和/或选择。如果示例阈值确定电路系统206确定分析附加输入信号,则操作1008返回框1106,在框1106处,阈值确定电路系统206选择另一输入信号。当示例阈值确定电路系统206将不分析任何其他输入信号时,控制返回到图10的框1010。

在框1112处,阈值确定电路系统206从阈值寄存器208获得阈值(预定义的或以其他方式的)(一个或多个)阈值。控制然后返回图10的框1010。

图12是被构造以执行和/或实例化图10-图11的机器可读指令和/或操作以实现图2的示例对齐控制电路系统200的示例处理器平台1200的框图。处理器平台1200可以是例如,服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如iPadTM之类的平板)、个人数字助理(personal digital assistant,PDA)、互联网设备、DVD播放器、CD播放器、数字视频记录仪、蓝光播放器、游戏控制台、个人视频记录仪、机顶盒、头戴式设备(例如,增强现实(augmented reality,AR)头戴式设备、虚拟现实(virtual reality,VR)头戴式设备等)或其他可穿戴设备、或任何其他类型的计算设备。

所图示示例的处理器平台1200包括处理器电路系统1212。所图示示例的处理器电路系统1212是硬件。例如,处理器电路系统1212可由来自任何所期望的系列或制造商的一个或多个集成电路、逻辑电路、FPGA、微处理器、CPU、GPU、DSP和/或微控制器来实现。处理器电路系统1212可由一个或多个基于半导体的(例如,基于硅的)设备来实现。在该示例中,处理器电路系统1212实现示例输入信号选择电路系统202、示例时钟信号生成电路系统、示例阈值确定电路系统206、示例计数器210、示例看门狗定时器212、示例比较器214、示例过程长度比较器216、示例信号推迟电路系统218、示例信号供应电路系统220、以及示例功率控制电路系统230。

所图示示例的处理器电路系统1212包括本地存储器1213(例如,缓存、寄存器等)。所图示示例的处理器电路系统1212通过总线1218与包括易失性存储器1214和非易失性存储器1216的主存储器进行通信。易失性存储器1214可以由同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存取存储器(DynamicRandom Access Memory,DRAM)、

所图示示例的处理器平台1200还包括接口电路系统1220。接口电路系统1220可以由硬件根据任何类型的接口标准来实现,接口标准诸如以太网接口、通用串行总线(universal serial bus,USB)接口、

在所图示的示例中,一个或多个输入设备1222被连接至接口电路系统1220。(一个或多个)输入设备1222准许用户将数据和/或命令输入到处理器电路系统1212中。(一个或多个)输入设备1222可以由例如音频传感器、麦克风、相机(静止的或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等点鼠标设备和/或语音识别系统实现。

一个或多个输出设备1224也被连接至所图示示例的接口电路系统1220。输出设备1224可以例如由显示设备(例如,发光二极管(light emitting diode,LED)、有机发光二极管(organic light emitting diode,OLED)、液晶显示器(liquid crystal display,LCD)、阴极射线管(cathode ray tube,CRT)显示器、面内切换(in-place switching,IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器实现。由此,所图示示例的接口电路系统1220典型地包括图形驱动器卡、图形驱动器芯片和/或诸如GPU之类的图形处理器电路系统。

所图示示例的接口电路系统1220还包括诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进通过网络1226与外部机器(例如,任何种类的计算设备)的数据交换。通信可以通过例如以太网连接、数字订户线路(digital subscriber line,DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统、光学连接等。

所图示示例的处理器平台1200还包括用于存储软件和/或数据的一个或多个大容量存储设备1228。此类大容量存储设备1228的示例包括磁存储设备、光存储设备、软盘驱动器、HDD、CD、蓝光盘驱动器、独立磁盘冗余阵列(redundant array of independent disks,RAID)系统、固态存储设备(诸如闪存设备)和DVD驱动器。

可以由图10-图11的机器可读指令实现的机器可执行指令1232可以被存储在大容量存储设备1228中,被存储在易失性存储器1214中,被存储在非易失性存储器1216中,和/或被存储在诸如CD或DVD之类的可移除非暂态计算机可读存储介质上。

图13是图12的处理器电路系统1212的示例实现方式的框图。在该示例中,图12的处理器电路系统1212由微处理器1300来实现。例如,微处理器1300可以实现多核心硬件电路系统,诸如CPU、DSP、GPU、XPU等。尽管它可以包括任何数量的示例核心1302(例如,1个核心),但本示例的微处理器1300是包括N个核心的多核心半导体器件。微处理器1300的核心1302可以独立地操作,或者可以协作以执行机器可读指令。例如,与固件程序、嵌入式软件程序或软件程序相对应的机器代码可以由核心1302中的一个核心执行,或者可以由核心1302中的多个核心在相同或不同的时间执行。在一些示例中,与固件程序、嵌入式软件程序或软件程序对应的机器代码被分割成线程,并由核心1302中两个或更多个核心并行地执行。软件程序可以与由图10-图11的流程图表示的机器可读指令和/或操作的部分或全部相对应。

核心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(例如,第二级(Level 2,L2_缓存)),以用于对数据和/或指令的高速访问。数据和/或指令可以通过向共享存储器1310写入和/或从共享存储器1310读取来传输(例如,共享)。核心1302中的每个核心的本地存储器1320、以及共享存储器1310可以是包括多个级别的缓存存储器和主存储器(例如,图12的主存储器1214、1216)的存储设备的层次体系的部分。典型地,相比于较低级别的存储器,层次体系中的较高级别的存储器表现出更低的访问时间并具有更小的存储容量。缓存层次体系的各级别的改变由缓存一致性策略来管理(例如,协调)。

每个核心1302可以被称为CPU、DSP、GPU等、或任何其他类型的硬件电路系统。每个核心1302包括控制单元电路系统1314、算术和逻辑(arithmetic and logic,AL)电路系统(有时称为ALU)1316、多个寄存器1318、L1缓存1320和示例总线1322。可以存在其他结构。例如,每个核心1302可以包括向量单元电路系统、单指令多数据(single instructionmultipledata,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被分布)以缩短访问时间。总线1322可以实现I2C总线、SPI总线、PCI总线或PCIe总线中的至少一者。

每个核心1302(和/或(更一般地)微处理器1300)可以包括上文示出和描述的那些结构的附加和/或替代结构。例如,可以存在一个或多个时钟电路、一个或多个电源、一个或多个功率门、一个或多个缓存归属地代理(cache home agents,CHA)、一个或多个聚合/公共网格站点(converged/common mesh stop,CMS)、一个或多个移位器(例如,(一个或多个)桶形移位器)和/或其他电路系统。微处理器1300是半导体器件,该半导体器件被制造成包括经互连接的许多晶体管以在被包含在一个或多个封装中的一个或多个集成电路(IC)中实现上文所描述的结构。处理器电路系统可包括一个或多个加速器,和/或与一个或多个加速器协作。在一些示例中,加速器由逻辑电路系统来实现,从而相比于可由通用处理器完成的情况可以更快和/或更高效地执行某些任务。加速器的示例包括ASIC和FPGA,诸如本文中所讨论的那些。GPU或其他可编程器件也可以是加速器。加速器可以板载于处理器电路系统上,与处理器电路系统处于同一芯片封装中,和/或处于与处理器电路系统分离的一个或多个单独的封装中。

图14是图12的处理器电路系统1212的另一示例实现方式的框图。在该示例中,处理器电路系统1212由FPGA电路系统1400实现。例如,FPGA电路系统1400可用于执行可以以其他方式通过图13的示例微处理器1300执行对应的机器可读指令来执行的操作。然而,一旦被配置,FPGA电路系统1400就在硬件中实例化机器可读指令,并且由此经常能够以相比这些操作能够通过通用微处理器执行对应的软件而被执行的情况更快地执行这些操作。

更具体而言,与上面描述的图13的微处理器1300(微处理器1300是这样的通用设备:该通用设备可编程为用于执行图10-图11的流程图表示的机器可读指令的部分或全部,但该通用设备一旦被制造则其互连和逻辑电路系统就是固定的)形成对照,图14的示例的FPGA电路系统1400包括这样的互连和逻辑电路系统:这些互连和逻辑电路系统可以在制造之后以不同的方式配置和/或互连,以实例化例如由图10-图11的流程图表示的机器可读指令的部分或全部。具体而言,FPGA 1400可以被认为是逻辑门、互连和开关的阵列。可以对开关进行编程,以改变逻辑门如何通过互连被互连,从而有效地形成一个或多个专用逻辑电路(除非并且直到FPGA电路系统1400被重新编程)。经配置的逻辑电路使逻辑门能够以不同的方式协作,从而对由输入电路系统接收到的数据执行不同的操作。这些操作可与由图10-图11的流程图表示的软件的部分或全部相对应。因此,FPGA电路系统1400可以被构造成用于将图10-图11的流程图的机器可读指令的部分或全部有效地实例化为专用逻辑电路,以便以类似于ASIC的专用方式执行与那些软件指令相对应的操作。因此,FPGA电路系统1400可执行与图10-图11的机器可读指令的部分或全部相对应的操作的速度快于通用微处理器执行相同的操作的速度。

在图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可配置用于实例化一个或多个操作,这些操作可与图10-图11的机器可读指令中的至少一些和/或其他期望操作相对应。图14所示的逻辑门电路系统1408是按组或按块制造的。每个块包括可以被配置为逻辑电路的基于半导体的电气结构。在一些示例中,电气结构包括提供用于逻辑电路的基本构建块的逻辑门(例如,与(“And”)门、或(“Or”)门、或非(“Nor”)门等)。电可控开关(例如,晶体管)存在于逻辑门电路系统1408中的每个逻辑门电路系统1408中,以使得能够将电气结构和/或逻辑门配置形成电路来执行期望的操作。逻辑门电路系统1408可包括其他电气结构,诸如,查找表(look-up table,LUT)、寄存器(例如,触发器或锁存器)、复用器等。

所图示示例的互连1410是导电路径、迹线、通孔等,该导电路径、迹线、通孔等可以包括其状态可以通过编程(例如,使用HDL指令语言)来改变以激活或解除激活逻辑门电路系统1408中的一个或多个逻辑门电路系统之间的一个或多个连接从而对期望的逻辑电路编程的电可控开关(例如,晶体管)。

所图示示例的存储电路系统1412被构造成用于存储由相对应的逻辑门执行的操作中的一个或多个操作的(一个或多个)结果。存储电路系统1412可以由寄存器等来实现。在所图示的示例中,存储电路系统1412分布在逻辑门电路系统1408之间,以促进访问并提高执行速度。

图14的示例FPGA电路系统1400还包括示例专用操作电路系统1414。在该示例中,专用操作电路系统1414包括专用电路系统1416,该专用电路系统1416可以被调用以实现常用功能,从而避免在现场对那些功能编程的需求。此类专用电路系统1416的示例包括存储器(例如,DRAM)控制器电路系统、PCIe控制器电路系统、时钟电路系统、收发器电路系统、存储器、以及乘法器-累加器电路系统。可以存在其他类型的专用电路系统。在一些示例中,FPGA电路系统1400还可以包括示例通用可编程电路系统1418,诸如,示例CPU 1420和/或示例DSP 1422。可以附加地或替代地存在可以被编程为用于执行其他操作的其他通用可编程电路系统1418,诸如,GPU、XPU等。

尽管图13和图14图示出图12的处理器电路系统1212的两种示例实现方式,但构想了许多其他方式。例如,如上文所提及的,现代FPGA电路系统可以包括板载CPU,诸如图14的示例CPU 1420中的一个或多个。因此,图12的处理器电路系统1212可附加地通过组合图13的示例微处理器1300和图14的示例FPGA电路系统1400来实现。在一些此类混合示例中,由图10-图11的流程图表示的机器可读指令的第一部分可由图13的核心1302中的一个或多个执行,并且由图10-图11的流程图表示的机器可读指令的第二部分可由图14的FPGA电路系统1400执行。

在一些示例中,图12的处理器电路系统1212可以在一个或多个封装中。例如,图13的处理器电路系统1300和/或图14的FPGA电路系统1400可以在一个或多个封装中。在一些示例中,XPU可由图12的处理器电路系统1212实现,该处理器电路系统1212可以在一个或多个封装中。例如,XPU可包括一个封装中的CPU、另一封装中的DSP、又一封装中的GPU和再另一封装中的FPGA。

在图15中图示了图示示例软件分发平台1505的框图,该示例软件分发平台1505用于将诸如图12的示例机器可读指令1232之类的软件分发至由第三方拥有和/或操作的硬件设备。示例软件分发平台1505可以由能够存储软件并将软件传送到其他计算设备的任何计算机服务器、数据设施、云服务等来实现。第三方可以是拥有和/或操作软件分发平台1505的实体的客户。例如,拥有和/或操作软件分发平台1505的实体可以是软件(诸如,图12的示例机器可读指令1232)的开发方、销售方和/或许可方。第三方可以是购买和/或许可软件以用于使用和/或转售和/或分许可的消费者、用户、零售商、OEM等。在所图示的示例中,软件分发平台1505包括一个或多个服务器和一个或多个存储设备。存储设备存储机器可读指令1232,该机器可读指令1232可以与如上文所描述的图10-图11的示例机器可读指令相对应。示例软件分发平台1505的一个或多个服务器与网络1510通信,该网络1510可以与互联网和/或上文所描述的示例网络1226中的任一个中的任何一个或多个相对应。在一些示例中,作为商业事务的一部分,一个或多个服务器响应于请求而将软件传送到请求方。可以由软件分发平台的一个或多个服务器和/或由第三方支付实体来处置针对软件的交付、销售、和/或许可的支付。服务器使购买方和/或许可方能够从软件分发平台1505下载机器可读指令1232。例如,软件(其可与图10-图11的示例机器可读指令相对应)可被下载到示例处理器平台1200,该示例处理器平台1200用于执行机器可读指令1232以实现示例对齐控制电路系统200。在一些示例中,软件分发平台1505的一个或多个服务器周期性地提供、传送和/或强制进行对软件(例如,图12的示例机器可读指令1232)的更新以确保改善、补丁、更新等被分发并应用于终端用户设备处的软件。

从前述内容将要领会的是,已经公开了对齐媒体工作负载的示例系统、方法、装置和制品。所公开的系统、方法、装置和制品通过对齐媒体工作负载以减少计算设备的封装驻留来提高使用计算设备的效率。例如,所公开的系统、方法、装置和制品对齐由用户设备的IP设备执行的处理以生成功率门控时段。在本文公开的示例中,IP设备在功率门控时段期间进入低功率状态。因此,所公开的系统、方法、装置和制品减少了计算设备在视频会议应用期间的功率消耗。附加地或替代地,所公开的系统、方法、装置和制品实现流式缓冲器以减少视频会议应用期间的等待时间。所公开的系统、方法、装置和制品相应地针对诸如计算机或其他电子和/或机械设备之类的机器的操作的一个或多个改进。

本文公开了用于对齐媒体工作负载的示例方法、装置、系统和制品。进一步示例及其组合包括以下内容:

示例1包括一种用于对齐处理事件的装置,该装置包括:比较器,用于将计数器的值与阈值进行比较,该阈值与推迟分别将第一输入信号或第二输入信号中的至少一个输入信号提供给第一IP设备或第二IP设备中对应的一个IP设备的时间量相关联;信号推迟电路系统,用于基于比较器的输出推迟将第一输入信号或第二输入信号中的至少一个输入信号提供给第一IP设备或第二IP设备中的对应的一个IP设备,第一输入信号或第二输入信号中的至少一个输入信号的推迟用于引起分别由第一IP设备和第二IP设备执行的第一处理事件和第二处理事件的对齐;以及功率控制电路系统,用于使第一IP设备和第二IP设备基于第一处理事件和第二处理事件的完成而断电。

示例2包括示例1的装置,其中,阈值等于所选择的开始时间和第二输入信号要被供应到第二IP设备的时间。

示例3包括示例1的装置,其中,在第一输入信号被供应至第一输出端口的同时,第二输入信号作为第二输出信号被提供给第二输出端口,其中第一输出端口和第二输出端口分别耦合至第一IP设备和第二IP设备,并且第二输出信号要被第二IP设备用于执行第二处理事件。

示例4包括示例1的装置,其中,阈值在所选择的开始时间之前被确定并被加载到阈值寄存器中。

示例5包括示例4的装置,其中,所选择的开始时间对应于第一输入信号预期在第一输入端口处被接收的时间。

示例6包括示例1的装置,进一步包括:看门狗定时器,用于确定第一输入信号的预期到达时间何时超过看门狗定时器的期满时间;以及信号供应电路系统,用于基于看门狗定时器的期满时间被超过而使第二输入信号被传输至第二输出端口。

示例7包括示例1的装置,其中,第一IP设备和第二IP设备被实现为视频会议应用的一部分。

示例8包括示例1的装置,其中,从所选择的开始时间延伸到第一处理事件和第二处理事件均已完成的完成时间的第一时间量加上第一IP设备和第二IP设备断电期间的第二时间量等于处理数据帧的一部分的第三时间量,该数据帧包括以下各项中的至少一者:1)音频数据,2)视频数据,或3)音频数据和视频数据。

示例9包括示例8的装置,其中,阈值增加对应于处理数据帧的总时间量的一部分的时间长度,增加的阈值用于控制在第一IP设备和第二IP设备已经退出断电状态之后接收的另一第一输入信号的推迟,该断电状态对应于其中第一IP设备和第二IP设备断电的状态。

示例10包括示例8的装置,其中,第三时间量等于处理数据帧的总时间量的三分之一。

示例11包括示例1的装置,进一步包括对应于第三IP设备的第三输入信号,并且装置进一步包括:过程长度比较器,用于比较分别对应于第一处理事件、第二处理事件和第三处理事件的第一持续时间、第二持续时间和第三持续时间,过程长度比较器的输出用于标识第一持续时间、第二持续时间或第三持续时间中的最长持续时间;以及阈值确定电路系统,用于确定第一阈值和第二阈值,第一阈值和第二阈值用于使第一处理事件、第二处理事件和第三处理事件全部在第一持续时间、第二持续时间或第三持续时间中的最长持续时间内开始和完成。

示例12包括示例1的装置,其中,分别由第一IP设备和第二IP设备执行的第一处理事件和第二处理事件要被对齐以同时开始或完成。

示例13包括一种用于对齐处理事件的装置,该装置包括至少一个存储器、指令和至少一个处理器,该至少一个处理器用于执行指令以:将计数器的值与阈值进行比较,该阈值与推迟分别将第一输入信号或第二输入信号中的至少一个输入信号提供给第一IP设备或第二IP设备中的对应的一个IP设备的时间量相关联;使第一输入信号或第二输入信号中的至少一个输入信号提供给第一IP设备或第二IP设备中的对应的一个IP设备基于该比较被推迟,第一输入信号或第二输入信号中的至少一个输入信号的推迟用于引起分别由第一IP设备和第二IP设备执行的第一处理事件和第二处理事件的对齐;以及使第一IP设备和第二IP设备基于第一处理事件和第二处理事件的完成而断电。

示例14包括示例13的装置,其中,阈值等于所选择的开始时间和第二输入信号要被供应到第二IP设备的时间。

示例15包括示例13的装置,其中,在第一输入信号被供应至第一输出端口的同时,第二输入信号作为第二输出信号被提供给第二输出端口,其中第一输出端口和第二输出端口分别耦合至第一IP设备和第二IP设备,并且第二输出信号要被第二IP设备用于执行第二处理事件。

示例16包括示例13的装置,其中,阈值在所选择的开始时间之前被确定并被加载到阈值寄存器中。

示例17包括示例16的装置,其中,所选择的开始时间对应于第一输入信号预期在第一输入端口处被接收的时间。

示例18包括示例13的装置,其中,至少一个处理器用于执行指令,以确定第一输入信号的预期到达时间何时超过期满时间,以及基于期满时间被超过而使第二输入信号被传输至第二输出端口。

示例19包括示例13的装置,其中,第一IP设备和第二IP设备被实现为视频会议应用的一部分。

示例20包括示例13的装置,其中,从所选择的开始时间延伸到第一处理事件和第二处理事件均已完成的完成时间的第一时间量加上第一IP设备和第二IP设备断电期间的第二时间量等于处理数据帧的一部分的第三时间量,该数据帧包括以下各项中的至少一者:1)音频数据,2)视频数据,或3)音频数据和视频数据。

示例21包括示例20的装置,其中,阈值增加对应于处理数据帧的总时间量的一部分的时间长度,增加的阈值用于控制在第一IP设备和第二IP设备已经退出断电状态之后接收的另一第一输入信号的推迟,该断电状态对应于其中第一IP设备和第二IP设备断电的状态。

示例22包括示例20的装置,其中,第三时间量等于处理数据帧的总时间量的三分之一。

示例23包括示例13的装置,其中,至少一个处理器用于执行指令,以:比较分别对应于第一处理事件、第二处理事件和第三处理事件的第一持续时间、第二持续时间和第三持续时间,该比较用于标识第一持续时间、第二持续时间或第三持续时间中的最长持续时间,以及确定第一阈值和第二阈值,第一阈值和第二阈值用于使第一处理事件、第二处理事件和第三处理事件全部在第一持续时间、第二持续时间或第三持续时间中的最长持续时间内开始和完成。

示例24包括示例13的装置,其中,分别由第一IP设备和第二IP设备执行的第一处理事件和第二处理事件要被对齐以同时开始或完成。

示例25包括至少一种非暂态计算机可读介质,该非暂态计算机可读介质包括指令,该指令当被执行时使至少一个处理器至少用于:将计数器的值与阈值进行比较,该阈值与推迟分别将第一输入信号或第二输入信号中的至少一个输入信号提供给第一IP设备或第二IP设备中的对应的一个IP设备的时间量相关联;使第一输入信号或第二输入信号中的至少一个输入信号提供给第一IP设备或第二IP设备中的对应的一个IP设备基于该比较被推迟,第一输入信号或第二输入信号中的至少一个输入信号的推迟用于引起分别由相应的第一IP设备和第二IP设备执行的第一处理事件和第二处理事件的对齐;以及使第一IP设备和第二IP设备基于第一处理事件和第二处理事件的完成而断电。

示例26包括示例25的至少一种非暂态计算机可读介质,其中,阈值等于所选择的开始时间和第二输入信号要被供应到第二IP设备的时间。

示例27包括示例25的至少一种非暂态计算机可读介质,其中,在第一输入信号被供应至第一输出端口的同时,第二输入信号作为第二输出信号被提供给第二输出端口,其中第一输出端口和第二输出端口分别耦合至第一IP设备和第二IP设备,并且第二输出信号要被第二IP设备用于执行第二处理事件。

示例28包括示例25的至少一种非暂态计算机可读介质,其中,阈值在所选择的开始时间之前被确定并被加载到阈值寄存器中。

示例29包括示例28的至少一种非暂态计算机可读介质,其中,所选择的开始时间对应于第一输入信号预期在第一输入端口处被接收的时间。

示例30包括示例25的至少一种非暂态计算机可读介质,其中,指令当被执行时使至少一个处理器用于:确定第一输入信号的预期到达时间何时超过期满时间;以及基于期满时间被超过而使第二输入信号被传输至第二输出端口。

示例31包括示例25的至少一种非暂态计算机可读介质,其中,第一IP设备和第二IP设备操作以处理由视频会议应用的输入收集的音频数据或视频数据。

示例32包括示例25的至少一种非暂态计算机可读介质,其中,从所选择的开始时间延伸到第一处理事件和第二处理事件均已完成的完成时间的第一时间量加上第一IP设备和第二IP设备断电期间的第二时间量等于处理数据帧的至少一部分的第三时间量,该数据帧包括以下各项中的至少一者:1)音频数据,2)视频数据,或3)音频数据和视频数据。

示例33包括示例32的至少一种非暂态计算机可读介质,其中,阈值增加对应于处理数据帧的总时间量的一部分的时间长度,增加的阈值用于控制在第一IP设备和第二IP设备已经退出断电状态之后接收的另一第一输入信号的推迟,该断电状态对应于其中第一IP设备和第二IP设备断电的状态。

示例34包括示例32的至少一种非暂态计算机可读介质,其中,处理数据帧的一部分的第三时间量等于处理数据帧的总时间量的三分之一。

示例35包括示例25的至少一种非暂态计算机可读介质,其中,阈值是第一阈值,并且指令当被执行时使至少一个处理器用于:比较分别对应于第一处理事件、第二处理事件和第三处理事件的第一持续时间、第二持续时间和第三持续时间,该比较用于标识第一持续时间、第二持续时间和第三持续时间中的最长持续时间;以及至少确定第一阈值和第二阈值,第一阈值和第二阈值用于使第一处理事件、第二处理事件和第三处理事件全部在第一持续时间、第二持续时间和第三持续时间中的最长持续时间内开始和完成。

示例36包括示例25的至少一种非暂态计算机可读介质,其中,分别由第一IP设备和第二IP设备执行的第一处理事件和第二处理事件要被对齐以同时开始或完成。

虽然本文中已公开了某些示例系统、方法、装置和制品,但本专利涵盖的范围并不限于此。相反,本专利涵盖完全落入本专利的权利要求的范围内的全部系统、方法、装置和制品。

所附的权利要求由此通过本参考被并入到本具体实施方式中,其中每一项权利要求其本身作为本公开的单独的实施例。

相关技术
  • 墙纸拼缝对齐装置以及利用其进行墙纸接缝对齐的方法
  • 一种应用于电动汽车双负载的无线充电装置及无线充电方法
  • 用于计算部件的内部负载的系统、装置和方法
  • 一种用于硅钢片自动叠片的对齐装置
  • 用于对便携式计算设备中的沉浸式多媒体工作负载的智能调整的系统和方法
  • 用于对便携式计算设备中的沉浸式多媒体工作负载的智能调整的系统和方法
技术分类

06120116483897