一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多端口I/O混合系统中的系统功率管理的制作方法

2022-02-24 20:13:40 来源:中国专利 TAG:

多端口i/o混合系统中的系统功率管理
技术领域
1.本公开总体上涉及计算机系统的领域,并且更具体地涉及多端口输入/输出(i/o)混合系统中的系统功率管理。


背景技术:

2.通用串行总线(usb)规范已经演进了十多年,为外围设备提供了无处不在的接口以将外围设备连接到计算机系统。近年来,usb总线速度已经从usb v1.1规范的1.5mbps演进到usb v3.1规范的10gbps。随着usb type-c端口和usb功率递送规范的引入,usb-c端口已经将usb端口功能扩展到供电和显示能力。随着usb v3.2规范的引入,usb-c端口还已经实现了将usb总线的带宽扩展到20gbps,该usb v3.2规范使用usb-c端口使其可用附加信号线。
3.基于usb的协议(例如,usb v4)的进一步演变可以允许面向连接的隧道化架构,以将多个协议(例如,基于usb的协议、基于快速外围组件互连(pcie)的协议、基于displayport(dp)的协议和/或主机到主机协议)组合到单个物理接口上,使得usb结构(fabric)的总速度和性能不仅可以在usb设备之间动态地共享,还可以在pcie或dp端点之间动态地共享。可以通过type-c连接器将总带宽扩展到40gbps(例如,usb v3带宽的两倍)。
附图说明
4.图1是根据本公开的实施例的示例通用串行总线(usb)系统的示意图。
5.图2a是根据本公开的实施例的示例usb协议栈的示意图。
6.图2b是示出根据本公开的实施例的示例通用串行总线功能层通信路径的示意图。
7.图3示出了示例多端口生态系统。
8.图4示出了用于图3的示例生态系统的设备的示例通信栈图。
9.图5示出了另一示例多端口生态系统。
10.图6示出了根据本公开的实施例的示例通信栈图。
11.图7是根据本公开的实施例的在多端口生态系统中检测和传送功率转换信息的示例过程的流程图。
12.图8是根据本公开的实施例的在多端口生态系统中检测和传送功率转换信息的另一示例过程的流程图。
13.图9是根据实施例的处理器的示例说明。
14.图10示出了根据实施例的以点对点(ptp)配置布置的计算系统。
15.各个图中相同的附图标记和名称指示相同的元素。
具体实施方式
16.在以下描述中,将使用本领域技术人员通常采用的术语来描述说明性实现方式的各种方面,以将他们的工作的实质传达给本领域的其他技术人员。然而,对于本领域技术人
员将显而易见的是,本公开的实施例可以仅通过所描述的方面中的一些来实践。出于解释的目的,阐述了具体数字、材料和配置以提供对说明性实现方式的透彻理解。然而,对于本领域技术人员将显而易见的是,可以在没有具体细节的情况下实践本公开的实施例。在其他实例中,省略或简化了公知的特征,以免混淆说明性实现方式。
17.在下面的详细描述中,参考形成其一部分的附图,其中相同的附图标记始终表示相同的部分,并且在附图中通过说明的方式示出了其中可以实践本公开的主题的实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑改变。因此,以下详细描述不应被视为具有限制意义的,并且实施例的范围由所附权利要求书及其等同物限定。
18.出于本公开的目的,短语“a或b”意味着(a)、(b)或(a和b)。出于本公开的目的,短语“a,b或c”意味着(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a,b和c)。
19.描述可以使用短语“在实施例中”或“在多个实施例中”,它们可以各自指代相同或不同的实施例中的一个或多个。此外,关于本公开的实施例使用的术语“包括”、“包含”、“具有”等是同义词。
20.术语“与
……
耦合”及其派生词可以在本文中使用。“耦合”可以意味着以下各项中的一个或多个。“耦合”可以意味着两个或更多个元件直接物理或电接触。然而,“耦合”也可以意味着两个或更多个元件间接相互接触,但仍然彼此协作或交互,并且“耦合”可以意味着一个或多个其他元件耦合或连接在被称为彼此耦合的元件之间。术语“直接耦合”可以意味着两个或更多个元件直接接触。
21.如本文所使用的,术语“模块”可以指代以下各项、是以下各项的一部分或者包括以下各项:执行一个或多个软件或固件程序的专用集成电路(asic)、电子电路、处理器(共享、专用或组)和/或存储器(共享、专用或组)、组合逻辑电路和/或提供所描述的功能的其他合适的组件。
22.通用串行总线(usb)规范已经演进了十多年,为外围设备提供了无处不在的接口以将外围设备连接到计算机系统。近年来,usb总线速度已经从usb v1.1规范的1.5mbps演进到usb v3.1规范的10gbps。随着usb type-c端口和usb功率递送(pd)规范的引入,usb-c端口已经将usb端口功能扩展到供电和显示能力。随着usb v3.2规范的引入,usb-c端口还已经实现了将usb总线的带宽扩展到20gbps,该usb v3.2规范使用usb-c端口使其可用附加信号线。定义该usb总线之上的功能的usb类规范也已经演进,以利用该usb带宽的增加来提供更好的用户体验并进一步利用usb总线的能力。
23.基于usb的协议(例如,usb v4)的进一步演变可以允许面向连接的隧道化架构,以将多个协议(例如,基于usb的协议、基于快速外围组件互连(pcie)的协议、基于displayport(dp)的协议和/或主机到主机协议)组合到单个物理接口上,使得usb结构的总速度和性能不仅可以在usb设备之间动态地共享,还可以在pcie或dp端点之间动态地共享。可以通过type-c连接器将总带宽扩展到40gbps(例如,usb gen3带宽的两倍)。另外地,基于usb的协议的进一步演变可以允许支持thunderbolt接口,并可以实现设备的菊花链。
24.在一些实施例中,功率要求可以根据usb-c/usb pd规范。例如,可以如usb type-c规范和usb pd规范中定义的那样建立和管理usb操作的功率。此外,在一些实施例中,可以基于usb设备的能力来定义挂起功率(suspend power)。例如,不能够远程唤醒(或禁用了远
程唤醒)的usb兼容的设备可能需要大约25mw的功率,而支持远程唤醒(或启用了远程唤醒)的usb兼容的设备可能需要大约50mw的功率。
25.usb功率递送(pd)协议允许功率宿(sink)设备(即,通过usb物理连接接收功率的usb连接的设备)让功率源(source)设备(即,通过usb物理连接提供功率的usb连接的设备)知道宿设备是否具有usb数据线。例如,如果“usb通信能力(usb communications capable)”标志已经由宿设置为零,则源可以意识到宿无法遵守usb挂起规则。而且,“无usb挂起(no usb suspend)”位可以由功率宿设备设置,以指示在usb挂起事件期间应继续其现有的功率消耗,而不应切换到较低的功率简档(例如,“psnksusp”)。
26.位描述b31保留-应被设置为零b30
……
28对象位置(000b被保留,并且不应被使用)b27giveback标志=0b26能力不匹配b25usb通信能力b24无usb挂起b23支持未分块的扩展消息b22
……
20保留-应被设置为零b19
……
10操作电流,以10ma为单位b9
……
0最大操作电流,以10ma为单位
27.表1:功率数据对象(pdo)位
28.在一些情况下,如displayport之类的附加协议可以在相同的线路上被隧道化。这可能具有附加的低功率模式(lpm)要求,如下表所指示的:
[0029][0030]
图1是根据本公开的实施例的示例通用串行总线(usb)系统100的示意图。图1示出了示例usb系统100的双总线架构,例如,由usb v4(本文也称为“usb4”)或更高协议实现的那些双总线架构。按照架构,基于互连的组件上支持的最高公共总线级别,以从usb v2.0开
始、逐步上升到usb v3.2、并且最后到usb4的最小互操作性支持向后兼容性。
[0031]
usb系统100可以包括通过usb链路连接到usb4集线器(hub)104的usb4主机102。usb4集线器104可以通过usb链路连接到usb4设备106。usb4集线器104还可以连接到其他类型的设备,例如,显示器或外围设备或其他类型的设备。usb4主机102可以是(或可以耦合到)主机设备,例如,主机设备、计算机、服务器、主板、处理器或处理器组(processor bank)或其他类型的主机设备。usb4集线器104可以是(或可以包括)加密狗(dongle)、扩展坞站(docking station)或其他中间设备。usb4设备106可以是连接到usb4主机102和/或usb4集线器104的端点设备、外围设备、存储器或其他类型的设备。
[0032]
系统100可以包括usb4主机102。usb4主机可以包括主机路由器110、内部主机控制器和displayport源112,例如,displayport2.0源。displayport2.0(或dp2.0)源可以是图形处理器,并且可以包括支持dp2.0及更高版本的displayport发送器(dptx)。dptx可以符合视频电子标准协会(vesa)displayport 2.0协议标准或未来的displayport协议标准版本。
[0033]
usb4主机支持20g usb4操作(gen2x2)和可选的40g usb4操作(gen3x2)。usb4主机还可以在其所有面向下游的端口(dfp)上支持displayport alt mode。关于在dfp上支持的displayport alt mode的要求和细节的完整定义,请参阅usb type-c规范。
[0034]
usb4主机还可以可选地包含pcie控制器114。pcie控制器114可以包括(或连接到)pcie根联合体或pcie开关联合体,以控制到一个或多个外围设备的基于pcie的路由。pcie控制器114可以通过一个或多个pcie适配器(例如,面向下游的pcie适配器128、130)连接到usb4主机路由器110。usb4集线器104可以包括(或连接到)经由面向上游的pcie适配器154和面向下游的pcie适配器156和158的pcie开关144。usb4设备106可以包括pcie功能180,该pcie功能180是pcie下游连接的组件或端点设备,其跨usb4结构100与pcie控制器114通信。usb4设备路由器178可以包括面向上游的pcie适配器190,以将pcie功能180与上游连接的组件(例如,usb4集线器104、pcie开关144和pcie控制器114)耦合。
[0035]
usb4主机102可以包括usb主机路由器110。usb4集线器104可以包括usb集线器路由器142。usb4设备106可以包括usb设备路由器178。路由器是usb4架构的基本构建块。路由器将隧道化协议业务映射到usb4分组,并通过usb4结构100路由分组。路由器还经由其时间管理单元(tmu)(例如,tmu 140、170和196)在整个usb4结构中分配和同步时间。路由器由位于usb4主机内的连接管理器(例如,主机接口适配器)124发现并配置。路由器包括在适配器之间创建内部路径所必要的平面点对点、可配置的开关。一个路由器典型地存在于usb4主机102、usb4集线器104或usb4设备106的每个实例内。有两种类型的路由器:主机路由器和设备路由器。
[0036]
usb4主机或usb4外围设备可以可选地支持与thunderbolt 3(tbt3)产品的互操作性。要求usb4集线器以在其所有dfp上支持与thunderbolt3产品的互操作性。要求基于usb4的扩展坞,以在除了所有dfp之外的其面向上游的端口(ufp)上支持与thunderbolt 3产品的互操作性。
[0037]
当与tbt3产品互操作时,在产品之间的链路上建立thunderbolt alt mode。usb type-c规范描述了usb4产品如何协商并进入thunderbolt alt mode。
[0038]
usb4主机102可以包括(或可以连接到)显示端口(dp)源112,例如,图形处理单元
(gpu)或其他图形源、视频源、图像源等。usb4主机路由器110可以包括dp_in适配器126,该dp_in适配器126可以促进到dp源112的接口。在实施例中,dp源可以是usb4外围设备或者可以经由基于displayport的互连(例如,经由displayport 2.0协议互连)连接到usb4主机路由器110。
[0039]
usb4集线器104可以包括dp_out适配器152,以将dp信令输出到dp宿,例如,显示器或监视器。usb4集线器104还可以经由usb4隧道将dp信号发送到usb4设备106。usb4设备106可以包括dp_out适配器192,以将dp信号输出到dp宿182,该dp宿182可以是显示器或监视器。
[0040]
内部增强型超高速主机116暴露一个或多个下游usb3端口,这些下游usb3端口可以连接到usb端点或下游usb3协议适配器。内部增强型超高速集线器的上游端口与上游usb3协议适配器接合,该上游usb3协议适配器将分组转发到usb4集线器的面向上游的端口。
[0041]
每个路由器包含多达64个适配器。适配器提供路由器与外部实体之间的接口。有三种类型的适配器:协议适配器、通道适配器和控制适配器。协议适配器用于在支持的本地协议与usb4隧道之间进行转换。有四种类型的协议适配器:usb3适配器136、138、164、166、168和194;displayport(dp)适配器126、152和182;pcie适配器128、130、154、156、158和190;以及主机接口适配器124。
[0042]
路由器可以支持内部控制适配器,该内部控制适配器仅用于向传输层发送控制分组和从传输层接收控制分组。与非控制适配器不同,控制适配器不直接连接到链路,并且因此没有与其相关联的物理层。
[0043]
usb4端口是提供驻留在usb4链路的每一端上的usb4功能接口的实体。该usb4端口由usb4数据总线的发送通道和接收通道以及双线式边带(sb)信道(sbtx/sbrx)组成。usb4端口要么作为单通道链路要么作为双通道链路操作。当作为单通道链路操作时,usb4端口的通道1被禁用。当作为双通道链路操作时,通道0和通道1在逻辑上结合在一起以提供单个数据信道。示例usb4端口被示为元件132、134、160、162和188。usb4端口可以容纳usb type-c连接器或thunderbolt(例如,tbt3)型连接器等。
[0044]
usb4结构的主要通信信道通过usb4链路,该usb4链路互连两个usb4端口。usb4链路针对路由器之间的隧道化协议业务和总线管理业务两者传输分组。usb4端口的边带信道用于初始化和管理usb4端口之间的usb4链路。对于支持usb4的usb type-c端口,完整的接口包括usb4端口、usb 2.0数据总线、usb type-c配置信道(cc)以及电源/接地(vbus、vconn和gnd)。
[0045]
在高级别处,usb4集线器104在功能上类似于usb 3.2集线器——它由一个面向上游的端口和一个或多个面向下游的端口组成。usb4集线器104在功能上作为树状结构操作,以典型地出于端口扩展的目的,使一个面向上游的端口能够服务于一个或多个面向下游的端口。
[0046]
除了特定于usb4的集线器功能之外,还支持usb 3.2和usb 2.0集线器功能,使得usb4集线器的面向下游的端口可以支持与usb 3.2和usb 2.0设备的向后兼容性。usb 2.0功能可以经由连接到usb 2.0集线器146和usb 2.0功能184的usb 2.0主机118来提供。
[0047]
usb4集线器包含设备路由器、增强型超高速usb集线器、pcie开关和usb 2.0集线
器。usb4集线器支持20g usb4操作(gen2x2)和40g usb4操作(gen3x2)。要求usb4集线器以在其所有dfp上支持displayport alt mode。关于在dfp上支持的displayport alt mode的要求和细节的完整定义,请参阅usb type-c规范。
[0048]
usb4主机102、集线器104和设备106可以包括一个或多个usb type-c连接器端口120、122、172、174、176和198。usb type-c连接器端口可以接收usb type-c连接器,该usb type-c连接器用于连接的usb兼容的组件并且用于在组件之间传送信息和功率。
[0049]
图2a是根据本公开的实施例的示例usb协议栈200的示意图。usb4协议栈200可以包括电层202和逻辑层204。电层202和逻辑层204可以被认为是物理层206的子块。电层202定义了usb4链路的电信号特性,包括加扰、编码、抖动和电压。逻辑层206在两个路由器之间建立usb4链路,并且提供服务以在两个路由器之间发送和接收字节流。逻辑层204驻留在电层202的上方并且在传输层208的下方。逻辑层204将去往和来自传输层208的业务视为字节流。
[0050]
由逻辑层204提供的服务是建立和维护与链路伙伴的usb4链路、经由不同速度和宽度的性能可扩展性、错误检测和恢复机制、利用不同介质(例如,无源电缆、有源电缆和重定时器)的操作、支持诸如时钟补偿、数据加扰和前向纠错码之类的机制以及功率管理。
[0051]
usb4链路由伴随的边带信道辅助和管理,该边带信道配置usb4链路的参数、与重定时器(如果存在)交互并执行usb4链路txffe握手,确保了usb4链路收发器和重定时器的正确的断电/唤醒序列。
[0052]
传输层208通过总线转发隧道化分组和控制分组。传输层208定义分组格式、路由、服务质量(qos)支持、流控制和时间同步。传输层208是执行协议复用(muxing)的地方。
[0053]
配置层212执行路由器配置任务并处理传入的控制分组。配置层212为域内的控制分组提供寻址方案、处理控制分组、并且为控制分组递送可靠的传输机制。控制分组为连接管理器提供了对路由器的配置空间的访问权。
[0054]
协议适配器层210执行隧道化协议业务与usb4传输层分组之间的映射。协议适配器层210由其发送和接收的隧道化协议业务的类型定义。
[0055]
usb4主机支持usb3隧道化、displayport隧道化和主机到主机隧道化。usb4主机还可以可选地支持pcie隧道化。usb4集线器支持usb3隧道化、displayport隧道化、pcie隧道化和主机到主机隧道化。有多种usb4集线器支持displayport隧道化的方式。例如,usb4集线器用作用于displayport隧道化的“直通”(即,usb4集线器直接在其usb4端口中的两个端口之间路由隧道化业务)。usb4集线器包含dp out适配器,该dp out适配器从usb4端口接收隧道化displayport业务并将其发送到displayport宿。
[0056]
图2b是示出根据本公开的实施例的示例通用串行总线功能层通信路径的示意图220。通信构造可以包括传送分组和有序集的usb4链路222。
[0057]
控制分组226由连接管理器224使用以配置和管理总线上的路由器。控制分组226还由路由器使用以与连接管理器224通信。基于标识路由器在跨越树中的位置的路由字符串来在总线上路由控制分组226。当控制分组226源自连接管理器224时,路由字符串标识分组所针对的路由器。当控制分组226源自路由器时,路由器字符串标识发送分组的路由器。非目标路由器中的控制适配器将分组转发到usb4端口。目标路由器的控制适配器消费控制分组226。
[0058]
协议业务228在usb4结构上在隧道化分组230中被封装和隧道化。隧道化分组230沿着一个或多个路径遍历usb4结构。
[0059]
链路管理分组232被限制在单个usb4链路222中。链路管理分组232起源于链路的一端处的路由器的传输层208中,并终止于链路的另一端处的路由器的传输层中。定义了以下链路管理分组:时间同步分组——其用于同步总线上的路由器的时钟;流控制分组——其用于防止缓冲器溢出;空闲分组——其确保当没有其他传输层分组正在发送时,将稳定的字节流馈送到逻辑层。
[0060]
逻辑层204将有序集234用于诸如符号同步、链路训练和通道之间的去偏斜之类的任务。有序集238是66位符号(以gen 2速度)或132位符号(以gen 3速度)。
[0061]
边带信道240处理以下事件:通道初始化;在usb4端口上的连接或断开连接;通道禁用或启用;以及进入或退出睡眠状态。
[0062]
当退出功率管理链路状态时,低频周期性信令(lfps)236用于两个链路伙伴之间的带内通信。
[0063]
传输层分组要么是来自协议适配器层的隧道化分组、来自配置层的控制分组,要么是在传输层内生成的(即,在传输层内生成的链路管理分组)。
[0064]
隧道化分组由源适配器的协议适配器层生成并被转移(hand off)到传输层。隧道化分组应具有针对传输层分组定义的报头。源适配器的协议适配器层应将大于256字节的协议业务分段为多个隧道化分组。来自隧道化分组的协议业务的重组应由目的地适配器的协议适配器层执行。
[0065]
传输层分组的大小总是4个字节的倍数。源适配器的协议适配器层应向隧道化分组的有效载荷添加0到3个字节的填充,以确保隧道化分组的大小是4个字节的倍数。目的地适配器的协议适配器层应移除填充的任何字节。
[0066]
填充字节的内容是特定于实现方式的并且不能假定具有任何特定值。然而,建议使用零字节填充。
[0067]
图3示出了示例多端口生态系统300。在所示示例中,多端口生态系统300包括膝上型计算机302、外部驱动器304、移动设备306和显示器308,这些组件各自经由usb扩展坞彼此可通信地耦合310。usb扩展坞可以符合usb规范的一个或多个版本(例如,usb4),并且设备(例如,膝上型计算机302)与usb扩展坞310之间的每个链路可以利用基于usb的协议。在所示示例中,膝上型计算机302连接到电源320,并且可以是如上面针对示出的其他设备中的一个或多个设备所描述的源设备(即,可以向设备中的一个或多个提供功率)。
[0068]
在示例生态系统300中,设备数据可以在具有usb扩展坞的usb链路上被隧道化。例如,设备302、304、306可以利用基于usb的端口,这些端口由usb-c/功率递送策略(例如,usb功率递送(pd)规范3.0和/或与usb type-c(usb-c)电缆和连接器规范1.3结合)支配或与其相关联,而显示器308可以由displayport(dp)策略支配或与其相关联。对dp低功率模式的管理可以相应地在基于usb的生态系统(例如,usb v4/usb-c/pd)的外部,使得当dp系统将显示器308置于低功率模式时,信息不会被传播到usb设备策略管理器(dpm)。usb dpm可以基于设备的本地策略,管理通过usb链路的功率递送和跨一个或多个端口的对应的资源。
[0069]
图4示出了用于图3的示例生态系统300的设备的示例通信栈图400。特别地,所示的图示出了显示器低功率策略模块412与基于usb的dpm 410(和usb低功率策略411)之间断
开连接。在所示示例中,基于usb的端口409中的每一个包括经由示例通信栈耦合到dpm 410的配置信道(cc)逻辑408。基于usb的端口409中的每一个包括其自己的相应的策略引擎402,以针对对应的基于usb的端口409实现功率策略(例如,低功率策略)。相应的策略引擎402与相应的协议层404通信,以使得能够经由相应的物理层406交换消息,以处理针对相应的基于usb的链路的位的发送和接收。
[0070]
在所示示例中,dpm 410确定针对经由相应的基于usb的端口409耦合到dpm 410的多个设备的功率分配策略。然而,如所示的,基于usb的端口409a和409b由基于usb(例如,usb-c/pd)的低功率策略411支配,而基于usb的端口409c由显示器低功率策略412(例如,其可以被包括在usb type-c alternate mode displayport 1.4规范或其他交替模式策略中)支配。虽然图4仅示出了由基于usb的低功率策略支配的两个基于usb的端口以及由替代的低功率策略支配的一个基于usb的端口,但是实施例可以包括可以经由基于usb的端口耦合到任一低功率策略的任何合适数量的设备(例如,用于数据和功率的主机和外围设备)。
[0071]
因为设备可以由如图4中示出的多端口生态系统中的不同的低功率策略支配,所以在某些场景中(例如,当生态系统中的功率宿设备也向生态系统中的其他设备提供数据时)可能出现冲突。图5示出了另一示例多端口生态系统500,其中显示器506(通过可以与usb v4协议兼容的基于usb的链路504)耦合到电源510以及膝上型计算机502。如所示的,膝上型计算机502用作到显示器506的功率宿设备,并且还向显示器506提供显示数据。生态系统500还包括经由基于usb的链路连接到膝上型计算机502的设备508。设备508可以是相对于膝上型计算机502和显示器506两者的功率宿设备。
[0072]
在图5中示出的场景中,显示器506(其在dfp上用作针对膝上型计算机502的功率源设备)将在usb挂起位被清除的情况下协商功率递送(pd)合约(contract)。这也可能意味着经由基于usb的链路在显示器506上连接的其他设备可能不遵守挂起规则。然而,当膝上型计算机的图形/显示模块(例如,通过写入dpcd地址0x0600)将显示器506置于低功率模式时,对于膝上型计算机策略管理器意识到低功率模式并启用完整的生态系统500以进入低功率模式可能是重要的。另一方面,当dpm正在为膝上型计算机502充电或需要高功率操作(需要这些功能与功率策略管理器之间的连接)时,膝上型计算机502的显示模块可能不会写入地址0x600。因此,在诸如生态系统500之类的生态系统中,dpm缺乏在基于usb的端口上可用的各种功能的低功率模式的信息。dpm对信息的这种缺乏可以导致低效的功率分配和功率保存,以及其他潜在问题。
[0073]
因此,在本公开的实施例中,关于利用隧道化协议的设备的低功率状态的附加信息可以被提供给主机接口连接管理器(cm),这进而可以影响usb pd操作系统功率策略管理器(osppm)。例如,可以通过监听隧道化协议中的功率命令(例如,指示或命令功率状态改变(例如,改变为低功率状态)的命令)来监视隧道化控制平面。usb主机接口(例如,与基于usb v4规范的协议兼容的一个usb主机接口)中的状态寄存器可以被更新,并且可以生成中断以指示检测到的功率状态的改变。该信息可以由连接管理器使用osppm传递到dpm,该dpm处理功率状态改变并且以可用功率设置策略。在一些实施例中,向usb连接管理器(cm)和usb-c/pd dpm提供附加信息以获得与隧道化协议低功率状态相关的完整信息集。为了获得低功率状态信息,可以监视隧道化功能的控制平面。
[0074]
在当前的实现方式中,与电源的低功率模式相关的信息可能对其他设备不可用,
并且因此可用功率中的一些量(例如,高达1.5a)可能不会被重新分配到连接到多端口生态系统的其他设备(或被保存)。然而,本公开的实施例可以允许功率宿设备具有关于功率源设备(例如,不由基于usb的低功率策略支配的那些功率源设备(例如,上面所描述的显示设备))中的功率状态转换的知识。通过意识到这些功率状态转换,可以重新分配或保存功率。
[0075]
图6示出了根据本公开的实施例的示例通信栈图600。如图4中示出的示例那样,基于usb的端口609中的每一个包括经由示例通信栈耦合到dpm 610的配置信道(cc)逻辑608。基于usb的端口609中的每一个包括其自己的相应的策略引擎602,以针对对应的基于usb的端口609实现功率策略(例如,低功率策略)。相应的策略引擎602与相应的协议层604通信,以使得能够经由相应的物理层606交换消息,以处理针对相应的基于usb的链路的位的发送和接收。
[0076]
然而,在所示示例中,usb连接管理器(cm)622监视与功率状态转换相关的通信,如上面所描述的。usb cm 622可以被实现为固件、软件或其组合,并且可以在主机usb控制器620上运行。cm 622可以负责建立和管理在生态系统中在usb链路上被隧道化的协议(例如,usb 3.x、dp或基于pcie的协议)。cm 622可以通过针对功率命令监听生态系统的usb链路上的隧道化协议(例如,usb 3.x、dp或基于pcie的协议)并更新usb控制器620中的状态寄存器624来检测功率状态转换信息。cm 622可以经由主机接口向dpm 610指示功率状态转换命令。利用来自控制平面的细节以及进入和退出低功率状态的细节,dpm 610然后可以保存或重新分配否则将由生态系统中的设备消耗的功率。
[0077]
图7是根据本公开的实施例的在多端口生态系统中检测和传送功率转换信息的示例过程700的流程图。示例过程中的操作可以由实现usb连接管理器或usb控制器的一个或多个其他方面的设备的组件来执行。在一些实施例中,一个或多个计算机可读介质可以以实现示例过程中的操作中的一个或多个操作的指令(例如,软件、固件或其组合)编码。示例过程可以包括附加的或不同的操作,并且可以以所示的次序或以另一次序执行这些操作。在一些情况下,图7中示出的操作中的一个或多个被实现为包括多个操作、子过程或其他类型的例程的过程。在一些情况下,操作可以被组合、以另一次序执行、并行执行、迭代或以其他方式重复或以另一方式执行。
[0078]
在702处,监视基于usb的互连的控制平面消息。在某些实施例中,基于usb的互连可以实现usb4协议。基于usb的互连可以包括在基于usb的互连上利用基于usb的协议(例如,usb 3.x)的一组设备(例如,图6的设备304、306),以及在基于usb的互连上利用被隧道化的非基于usb的协议(例如,dp、pcie等)的另一组设备(例如,图6的显示器308)。对控制平面消息的监视可以由usb主机控制器(例如,图6的620)实现的usb连接管理器(例如,图6的usb cm 622)执行,例如,如上面所描述的。cm可以针对由耦合到互连的设备发出的功率状态改变命令监听控制平面消息。
[0079]
在704处,在usb互连上检测到针对在互连上利用隧道化协议(例如,dp、pcie等)的设备的功率状态改变命令。功率状态改变命令可以是向设备发出以用于使设备转换为低功率模式的低功率命令(例如,图3中从膝上型计算机302到显示器308的命令,或图5中从膝上型计算机502到显示器506的命令)。
[0080]
在706处,基于检测到的功率状态改变命令,针对互连上的一个或多个设备修改功率分配。这可以包括例如修改针对设备的功率分配策略(例如,图6的策略611、612)。在针对
其发出功率状态改变命令的设备是功率宿设备(即,通过互连接收功率)的情况下,功率可以被重新分配到耦合到互连的其他设备,或者可以被保存(例如,不使用)。在针对其发出功率状态改变命令的设备是功率源设备(即,通过互连向一个或多个其他设备提供功率)的情况下,可以重新协商一个或多个设备功率策略,例如,如上面所描述的。
[0081]
在一些实施例中,可以基于在704处检测到功率状态改变命令来生成中断。可以例如通过设置usb主机控制器的状态寄存器(例如,图6的状态寄存器624)的一个或多个位来生成中断。
[0082]
图8是根据本公开的实施例的在多端口生态系统中检测和传送功率转换信息的示例过程800的流程图。示例过程中的操作可以由实现usb连接管理器或usb控制器的一个或多个其他方面的设备的组件来执行。在一些实施例中,一个或多个计算机可读介质可以以实现示例过程中的操作中的一个或多个操作的指令(例如,软件、固件或其组合)编码。示例过程可以包括附加的或不同的操作,并且可以以所示的次序或以另一次序执行这些操作。在一些情况下,图8中示出的操作中的一个或多个被实现为包括多个操作、子过程或其他类型的例程的过程。在一些情况下,操作可以被组合、以另一次序执行、并行执行、迭代或以其他方式重复或以另一方式执行。
[0083]
在802处,usb连接管理器(cm)(例如,图6的usb cm 622)检测混合生态系统。混合生态系统可以指代设备生态系统(例如,图3的生态系统300或图5的生态系统500),其中生态系统的设备使用基于usb的端口和链路互连,但其中生态系统设备中的至少一些利用生态系统内的不同通信协议(例如,基于usb的协议、基于pcie的协议或在基于usb的链路上被隧道化的其他类型的协议的混合)。混合生态系统可以包括由基于usb的低功率策略(例如,图6的策略611)支配的一个或多个设备以及由另一低功率策略(例如,图6的显示器低功率策略612)支配的一个或多个其他设备。usb cm可以响应于或以其他方式基于在基于usb的链路上建立用于多个协议(例如,usb 3.x、pcie或其他类型的协议)的隧道来检测混合生态系统。
[0084]
在804处,usb cm启用控制平面低功率管理监听。这可以包括针对生态系统的一个或多个设备的功率状态改变命令监视生态系统内的控制平面消息。例如,usb cm可以针对隧道化协议(例如,dp或pcie)中的低功率命令或模式监听控制平面信息。可以通过usb主机接口的一个或多个寄存器在控制平面上启用监听功能。
[0085]
在806处,usb cm检测针对不由基于usb的低功率策略支配的设备的低功率命令。作为一些示例,设备可以由基于displayport(dp)的低功率策略或基于pcie的低功率策略支配。
[0086]
在808处,usb cm通过生成或以其他方式指示中断来指示功率转换/状态改变。例如,usb cm可以在usb控制器的状态寄存器(例如,图4的usb控制器420的状态寄存器424)中设置一个或多个位。
[0087]
在810处,usb cm可以使用osppm来更新设备策略管理器(dpm,例如,图4的dpm 410)。
[0088]
在812处,确定向其发出功率状态改变命令的设备是否是用于生态系统中的一个或多个其他设备的电源。如果该设备确实向生态系统的其他设备提供功率,则在814处,dpm将功率重新分配到生态系统的其他设备。例如,参考图3中示出的示例,如果usb cm检测到
功率状态改变是针对显示器308的低功率命令(导致其转换为低功率模式),则dpm可以修改设备功率策略以将否则将去往显示器308的功率重新分配到生态系统的其他设备(例如,304、306)。
[0089]
如果向其发出功率状态改变命令的设备不向生态系统的其他设备提供功率(例如,该设备是功率宿设备),则在816处,dpm重新协商针对生态系统的一个或多个设备功率策略(例如,与usb挂起位重新协商合约,如上面所描述的),并且在818处,生态系统的设备进入低功率模式。例如,参考图5中示出的示例,如果usb cm检测到显示器506(示例中的电源)已经接收到功率状态改变命令以转换为低功率模式,则dpm可以针对生态系统的设备(例如,生态系统500的502、508)重新协商功率策略并还将设备置于低功率模式。
[0090]
图9-10是可以根据本文公开的实施例使用的示例计算机架构的框图。也可以使用本领域中已知的用于处理器和计算系统的其他计算机架构设计。通常,用于本文公开的实施例的合适的计算机架构可以包括但不限于图9-10中示出的配置。
[0091]
图9是根据实施例的处理器的示例说明。处理器900是可以结合上述实现方式使用的一种类型的硬件设备的示例。处理器900可以是任何类型的处理器,例如,微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、多核心处理器、单核心处理器或用于执行代码的其他设备。尽管在图9中仅示出了一个处理器900,但是处理元件可以可替代地包括多于一个图9中示出的处理器900。处理器900可以是单线程核心,或者,对于至少一个实施例,处理器900可以是多线程的,因为它可以包括每个核心多于一个的硬件线程上下文(或“逻辑处理器”)。
[0092]
图9还示出了根据实施例的耦合到处理器900的存储器902。存储器902可以是本领域技术人员已知的或以其他方式对本领域技术人员可用的多种存储器中的任一个(包括存储器层级的各个层)。这种存储器元件可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、现场可编程门阵列(fpga)的逻辑块、可擦除可编程只读存储器(eprom)和电可擦除可编程只读存储器(eeprom)。
[0093]
处理器900可以执行与本文详细描述的算法、过程或操作相关联的任何类型的指令。通常,处理器900可以将元素或物品(例如,数据)从一种状态或事物转换为另一种状态或事物。
[0094]
代码904可以是要由处理器900执行的一个或多个指令,其可以存储在存储器902中,或者可以存储在软件、硬件、固件或其任何合适的组合中,或者在适当的情况下并基于特定需求存储在任何其他内部或外部组件、设备、元素或对象中。在一个示例中,处理器900可以遵循由代码904指示的指令的程序序列。每条指令进入前端逻辑906并且由一个或多个解码器908处理。解码器可以生成微操作(例如,以预定义格式的固定宽度的微操作)作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑906还包括寄存器重命名逻辑910和调度逻辑912,其通常分配资源并将对应于指令的操作排队以供执行。
[0095]
处理器900还可以包括具有一组执行单元916a、916b、916n等的执行逻辑914。一些实施例可以包括专用于特定功能或功能组的多个执行单元。其他实施例可以仅包括一个执行单元或可以执行特定功能的一个执行单元。执行逻辑914执行由代码指令指定的操作。
[0096]
在完成由代码指令指定的操作的执行之后,后端逻辑918可以引退代码904的指
令。在一个实施例中,处理器900允许乱序执行但要求有序引退指令。引退逻辑920可以采用多种已知形式(例如,重新排序缓冲器等)。以这种方式,处理器900在代码904的执行期间至少在由解码器生成的输出、由寄存器重命名逻辑910利用的硬件寄存器和表以及由执行逻辑914修改的任何寄存器(未示出)方面被转换。
[0097]
虽然图9未示出,但是处理元件可以包括具有处理器900的芯片上的其他元件。例如,处理元件可以包括与处理器900一起的存储器控制逻辑。处理元件可以包括i/o控制逻辑和/或可以包括与存储器控制逻辑集成的i/o控制逻辑。处理元件还可以包括一个或多个高速缓存。在一些实施例中,非易失性存储器(例如,闪速存储器或熔丝(fuse))也可以被包括在具有处理器900的芯片上。
[0098]
图10示出了根据实施例的以点对点(ptp)配置布置的计算系统1000。特别地,图10示出了其中处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。通常,本文描述的计算系统中的一个或多个可以以与计算系统900相同或相似的方式进行配置。
[0099]
处理器1070和1080还可以各自包括集成存储器控制器逻辑(mc)1072和1082,以与存储器元件1032和1034通信。在替代实施例中,存储器控制器逻辑1072和1082可以是与处理器1070和1080分离的分立逻辑。存储器元件1032和/或1034可以存储由处理器1070和1080在实现本文概述的操作和功能时要使用的各种数据。
[0100]
处理器1070和1080可以是任何类型的处理器,例如,结合其他附图讨论的那些处理器。处理器1070和1080可以分别使用点对点接口电路1078和1088经由点对点(ptp)接口1050交换数据。处理器1070和1080可以各自使用点对点接口电路1076、1086、1094和1098经由单独的点对点接口1052和1054与芯片组1090交换数据。芯片组1090还可以经由接口1039与协处理器1038(例如,高性能图形电路、机器学习加速器或其他协处理器1038)交换数据,该接口1039可以是ptp接口电路。在替代实施例中,图10中示出的ptp链路中的任一个或全部可以被实现为多点总线而不是ptp链路。
[0101]
芯片组1090可以经由接口电路1096与总线1020通信。总线1020可以具有通过其进行通信的一个或多个设备,例如,总线桥1018和i/o设备1016。经由总线1010,总线桥1018可以与其他设备(例如,用户接口1012(例如,键盘、鼠标、触摸屏或其他输入设备)、通信设备1026(例如,调制解调器、网络接口设备或可以通过计算机网络1060通信的其他类型的通信设备)、音频i/o设备1014和/或数据存储设备1028)通信。数据存储设备1028可以存储可以由处理器1070和/或1080执行的代码1030。在替代实施例中,总线架构的任何部分都可以利用一个或多个ptp链路来实现。
[0102]
图10中描绘的计算机系统是可以被利用以实现本文讨论的各种实施例的计算系统的实施例的示意说明。将认识到的是,图10中描绘的系统的各种组件可以在片上系统(soc)架构中组合或在能够实现本文提供的示例和实现方式的功能和特征的任何其他合适的配置中组合。
[0103]
虽然本文描述和示出的系统和解决方案中的一些已经被描述为包含多个元素或与多个元素相关联,但并不是被明确示出或描述的所有元素都可以在本公开的每个替代实现方式中利用。另外地,本文所描述的一个或多个元件可以位于系统外部,而在其他实例中,某些元件可以被包括在其他所描述的元件中的一个或多个内或作为其一部分,以及可以被包括在示出的实现方式中未描述的其他元件内或作为其一部分。此外,某些元件可以
与其他组件组合,以及用于除了本文描述的那些目的之外的替代目的或附加目的。
[0104]
此外,应当认识到的是,以上呈现的示例是仅出于说明某些原理和特征的目的被提供的非限制性示例,并且不一定限制或约束本文描述的概念的潜在实施例。例如,可以利用本文描述的特征和组件的各种组合(包括通过本文描述的组件的各种实现方式实现的组合)来实现各种不同的实施例。应从本说明书的内容中认识到其他实现方式、特征和细节。
[0105]
虽然已经关于某些实现方式和通常相关联的方法描述了本公开,但是这些实现方式和方法的改变和排列对于本领域技术人员来说将是显而易见的。例如,可以以与所描述的次序不同的次序执行本文描述的动作并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序来实现期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。另外地,可以支持其他用户接口布局和功能。其他变型在所附权利要求书的范围内。
[0106]
通常,本说明书中描述的主题的一个方面可以体现在方法和执行的指令中,方法和执行的指令包括或引起以下动作:标识包括软件代码的样本;针对被包括在样本中的多个函数中的每一个函数生成控制流图;以及在函数中的每一个中标识与一组控制流片段类型的实例相对应的特征。标识出的特征可以用于根据标识出的特征生成样本的特征集。
[0107]
这些和其他实施例可以各自可选地包括以下特征中的一个或多个。针对函数中的每一个标识出的特征可以被组合以生成样本的合并字符串,并且可以根据合并字符串生成特征集。可以针对函数中的每一个生成字符串,每个字符串描述针对该函数标识出的相应的特征。组合特征可以包括标识多个函数中的特定一个函数中的对多个函数中的另一个函数的调用,并且用其他函数的字符串的内容替换引用该其他函数的特定函数的字符串的一部分。标识特征可以包括对函数的字符串中的每一个进行抽象,使得在字符串中仅描述一组控制流片段类型的特征。该组控制流片段类型可以包括由函数进行的存储器访问和由函数进行的函数调用。标识特征可以包括标识由函数中的每一个进行的存储器访问的实例和标识由函数中的每一个进行的函数调用的实例。特征集可以标识针对函数中的每一个标识出的特征中的每一个。特征集可以是n-graph。
[0108]
此外,这些和其他实施例可以各自可选地包括以下特征中的一个或多个。可以提供特征集以用于对样本进行分类。例如,对样本进行分类可以包括基于样本的对应特征将样本与其他样本聚类。对样本进行分类还可以包括确定与样本的聚类相关的一组特征。对样本进行分类还可以包括确定是否将样本分类为恶意软件和/或确定样本是否可能是一个或多个恶意软件系列中的一个。标识特征可以包括抽象控制流图中的每一个,使得在控制流图中仅描述一组控制流片段类型的特征。可以接收包括该样本的多个样本。在一些情况下,可以从多个源接收多个样本。特征集可以标识在样本的函数的控制流图中标识出的特征子集。特征子集可以对应于样本代码中的存储器访问和函数调用。
[0109]
虽然本说明书包含许多具体的实现方式细节,但这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而应该被解释为特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例的组合中实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中去除要求保护的组合中的一个或多个特
征,并且要求保护的组合可以针对子组合或子组合的变型。
[0110]
类似地,虽然在附图中以特定次序描绘了操作,但这不应被理解为要求以所示的特定次序或顺序次序执行这种操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上面描述的实施例中的各自系统组件的分离不应被理解为在所有实施例中都要求这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包到多种软件产品中。
[0111]
以下示例涉及根据本说明书的实施例。将理解的是,在某些实施例中,某些示例可以与某些其他示例结合。
[0112]
示例1包括一种装置,包括:主机控制器,其用于实现基于通用串行总线(usb)的协议的一个或多个层,以便为多个设备提供互连,其中,主机控制器用于:监视互连上的控制平面消息;在控制平面消息中检测针对耦合到互连的设备的功率状态改变命令,其中,设备在互连上利用隧道化协议;以及基于检测到功率状态改变命令来修改针对互连的一个或多个其他设备的功率分配。
[0113]
示例2包括示例1和/或其他(多个)示例的主题,并且可选地,其中,主机控制器用于实现连接管理器(cm)以监视控制平面消息,并且cm用于基于检测到功率状态改变命令来生成中断。
[0114]
示例3包括示例2和/或其他(多个)示例的主题,并且可选地,其中,cm用于通过设置主机控制器中的状态寄存器的一个或多个位来生成中断。
[0115]
示例4包括示例2和/或其他(多个)示例的主题,并且可选地,其中,主机控制器还用于实现设备策略管理器(dpm)以管理针对耦合到互连的设备的功率递送策略,并且cm用于使用操作系统功率策略管理器(osppm)向dpm提供功率状态改变命令的指示。
[0116]
示例5包括示例1和/或其他(多个)示例的主题,并且可选地,其中,功率状态改变命令是针对功率宿设备的低功率命令,并且主机控制器用于基于检测到低功率命令来将功率重新分配到耦合到互连的一个或多个其他设备。
[0117]
示例6包括示例1和/或其他(多个)示例的主题,并且可选地,其中,功率状态改变命令是针对功率源设备的低功率命令,并且主机控制器用于基于检测到低功率命令来使耦合到互连的一个或多个其他设备转换为低功率模式。
[0118]
示例7包括示例6和/或其他(多个)示例的主题,并且可选地,其中,主机控制器用于通过重新协商针对设备的设备功率策略来使耦合到互连的一个或多个其他设备转换为低功率模式。
[0119]
示例8包括示例1和/或其他(多个)示例的主题,并且可选地,其中,隧道化协议是以下各项中的一个:基于displayport的协议和基于快速外围组件互连(pcie)的协议。
[0120]
示例9包括示例1和/或其他(多个)示例的主题,并且可选地,其中,基于usb的协议是usb4协议。
[0121]
示例10包括一种方法,包括:监视基于通用串行总线(usb)的互连上的控制平面消息;在控制平面消息中检测针对耦合到基于usb的互连的设备的功率状态改变命令,其中,设备在基于usb的互连上利用隧道化协议;以及基于检测到功率状态改变命令来修改对基于usb的互连的一个或多个其他设备的功率分配。
[0122]
示例11包括示例10和/或其他(多个)示例的主题,并且可选地,还包括:基于检测
到功率状态改变命令来生成中断。
[0123]
示例12包括示例11和/或其他(多个)示例的主题,并且可选地,其中,生成中断包括:设置usb控制器中的状态寄存器的一个或多个位。
[0124]
示例13包括示例10和/或其他(多个)示例的主题,并且可选地,还包括:确定设备是功率宿,其中,修改功率分配包括将功率重新分配到耦合到基于usb的互连的一个或多个设备。
[0125]
示例14包括示例10和/或其他(多个)示例的主题,并且可选地,还包括:确定设备是功率源,其中,修改功率分配包括重新协商针对耦合到基于usb的互连的一个或多个其他设备的设备功率策略。
[0126]
示例15包括示例10和/或其他(多个)示例的主题,并且可选地,其中,基于usb的互连实现usb4协议,并且隧道化协议是以下各项中的一个:基于displayport的协议和基于快速外围组件互连(pcie)的协议。
[0127]
示例16包括一种系统,包括:第一设备;第二设备,其经由基于通用串行总线(usb)的互连耦合到第一设备;第三设备,其经由基于usb的互连耦合到第一设备和第二设备,其中,第三设备使用隧道化协议在基于usb的互连上与第一设备和第二设备通信;其中,第一设备包括主机控制器以实现连接管理器(cm)和设备策略管理器(dpm),cm用于:检测针对第二设备的低功率命令,该低功率命令用于使第二设备转换为低功率模式;以及向dpm提供低功率命令的指示;其中,dpm用于基于指示来管理针对设备的功率分配策略。
[0128]
示例17包括示例16和/或其他(多个)示例的主题,并且可选地,其中,cm用于使用操作系统功率策略管理器(osppm)向dpm提供低功率命令的指示。
[0129]
示例18包括示例16和/或其他(多个)示例的主题,并且可选地,其中,dpm用于基于指示来将功率重新分配到第二设备。
[0130]
示例19包括示例16和/或其他(多个)示例的主题,并且可选地,其中,dpm用于基于指示来修改针对第二设备的设备功率策略。
[0131]
示例20包括示例16和/或其他(多个)示例的主题,并且可选地,其中,基于usb的互连实现usb4协议,并且隧道化协议是以下各项中的一个:基于displayport的协议和基于快速外围组件互连(pcie)的协议。
[0132]
因此,已经描述了本主题的特定实施例。其他实施例在以下权利要求书的范围内。在某些情况下,权利要求书中引述的动作可以以不同的次序执行,并且仍然实现期望的结果。另外地,附图中描绘的过程不一定要求所示的特定次序或顺序次序来实现期望的结果。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献