首页 / 专利库 / 显示技术 / 图形加速器 / 用于对链路上的功率和延迟进行优化的方法和装置

用于对链路上的功率和延迟进行优化的方法和装置

阅读:551发布:2020-05-12

专利汇可以提供用于对链路上的功率和延迟进行优化的方法和装置专利检索,专利查询,专利分析的服务。并且公开了用于对工作在基于处理器的系统内部的链路的延迟和功率进行优化的装置和方法。所述装置和方法包括内置于队列内的延迟计,所述队列不依赖于队列深度 阈值 。所述装置和方法还包括反馈逻辑,所述反馈逻辑对关于增加的延迟目标的功率减小进行优化,以对由链路的物理性质造成的 迟滞 的重新供应行为做出反应。,下面是用于对链路上的功率和延迟进行优化的方法和装置专利的具体信息内容。

1.一种用于对基于处理器的系统中的链路的功率进行优化的装置,所述装置包括:
延迟计,用于计算占用了连接到所述链路的队列的数据的延迟值,所述数据在所述基于处理器的系统的第一单元和第二单元之间的所述链路上被发送;以及
反馈逻辑,用于从所述延迟计接收所述延迟值,其中,所述反馈逻辑基于所述延迟值,或对所述链路提高供应、对所述链路降低供应、或维持对所述链路的供应平。
2.根据权利要求1所述的装置,所述延迟计还包括:
第一定时器,用于计算所述链路的常驻值,所述第一定时器按照如下进行工作:
响应于数据在所述队列中,所述定时器运行;以及
响应于没有数据在所述队列中,所述定时器停止;
其中,由所述延迟计使用所计算出的常驻值来获得所述延迟值。
3.根据权利要求2所述的装置,所述延迟计还包括:
第二定时器,用于计算所述链路的出口值,所述第二定时器按照如下进行工作:
响应于数据离开所述队列,所述定时器递增;
其中,由所述延迟计使用所计算出的出口值来获得所述延迟值。
4.根据权利要求3所述的装置,其中,所述延迟计使用如下公式来计算所述延迟值:
延迟值=(常驻值)/(出口值)。
5.根据权利要求1所述的装置,所述反馈逻辑还包括:
第一单元,用于基于来自所述延迟计的所述延迟值来计算目标值;
其中,所述第一单元响应于所述链路未被完全供应,而不修改所述目标值。
6.根据权利要求5所述的装置,其中,所述第一单元采用以下算法
响应于所述链路被完全供应,并且响应于所述目标值小于所述延迟值,将所述目标值设置为等于所述延迟值。
7.根据权利要求5所述的装置,所述反馈逻辑还包括:
第二单元,用于基于所述延迟值和所述目标值来计算误差值,其中,所述第二单元接收极限参数limit作为输入;
其中,limit为所述误差值施加基底。
8.根据权利要求7所述的装置,其中,所述第二单元采用以下算法:
误差值=误差值+(延迟值-目标值);以及
误差值=floor(误差值,limit)。
9.根据权利要求7所述的装置,所述反馈逻辑还包括:
第三单元,用于从所述第二单元接收所述误差值,其中,所述第三单元接收两个滞后参数:正滞后和负滞后;
其中,所述第三单元基于所述误差值,或对所述链路提高供应、对所述链路降低供应、或保持所述链路不变。
10.根据权利要求9所述的装置,其中,所述第三单元采用以下算法:
响应于所述误差值大于正滞后,增加供应;
否则,响应于所述误差值小于或等于负滞后,减少供应。
11.根据权利要求9所述的装置,其中,所述第三单元通过增大所述链路的宽度来对所述链路提高供应,且所述第三单元通过减小所述链路的宽度来对所述链路降低供应。
12.根据权利要求9所述的装置,其中,所述第三单元通过增大用于处理在所述链路上发送的数据的时钟速度来对所述链路提高供应,且所述第三单元通过减小所述链路的所述时钟速度来对所述链路降低供应。
13.根据权利要求9所述的装置,其中,所述第三单元通过增大所述链路的功率管理状态来对所述链路提高供应,且所述第三单元通过减小所述链路的功率管理状态来对所述链路降低供应。
14.根据权利要求1所述的装置,其中,所述基于处理器的系统是具有能够无线和触摸输入的移动设备,并且所述链路是根据移动行业处理器接口协议的。
15.一种用于对基于处理器的系统中的链路的功率进行优化的方法,所述方法包括:
通过监测进入和离开队列的数据来确定链路的延迟,所述队列被设置在所述链路的一端,并且包含在所述链路上发送的数据,其中,所述延迟与所述队列中的数据常驻除以来自所述队列的数据出口成比例;以及
允许所述链路被完全供应;
将高负载应用到所述链路;
在所述链路被完全供应的同时,计算所述链路的目标延迟;以及
响应于延迟落到所述目标延迟以下,对所述链路降低供应。
16.根据权利要求15所述的方法,允许所述链路被完全供应还包括:增大所述链路的宽度。
17.根据权利要求15所述的方法,允许所述链路被完全供应还包括:增大所述链路的工作速度。
18.根据权利要求15所述的方法,允许所述链路被完全供应还包括:
减小所述链路的功率管理状态,其中,满功率状态比第一低功率状态受到更少的功率管理,而所述第一低功率状态比第二低功率状态受到更少的功率管理。
19.根据权利要求15所述的方法,确定所述链路的所述延迟还包括:
使用控定时器来计算所述队列的所述数据常驻,其中,所述门控定时器按照如下进行工作:
响应于数据在所述队列中,所述门控定时器运行;以及
响应于没有数据在所述队列中,所述门控定时器停止。
20.根据权利要求19所述的方法,确定所述链路的所述延迟还包括:
使用第二门控定时器来计算来自所述队列的所述数据出口,其中,所述第二门控定时器按照如下进行工作:
响应于数据离开所述队列,所述第二门控定时器递增。
21.根据权利要求15所述的方法,还包括:
基于所述延迟和所述目标值来计算误差;
响应于所述误差超过正滞后值,对所述链路提高供应;以及
响应于所述误差小于负滞后值,对所述链路降低供应。
22.一种用于优化互连结构中的功率的装置,包括:
延迟逻辑,用于基于在第一间隔内队列的常驻度量和工作度量,确定与用于所述互连结构中的链路的队列相关联的目标值,并且确定与在第二间隔内的所述队列相关联的延迟值;以及
耦合到所述延迟逻辑的控制逻辑,所述控制逻辑用于:
响应于所述延迟值比所述目标值大第一量,向所述链路请求增加功率;
响应于所述延迟值比所述目标值小第二量,向所述链路请求减小功率;
响应于所述延迟值在比所述目标值小所述第二量和比所述目标值大所述第一量之间,不向所述链路请求功率中的改变。
23.根据权利要求22所述的装置,所述延迟逻辑还包括:
第一定时器,其用于计算所述链路的常驻值,所述第一定时器按照如下进行工作:
响应于数据在所述队列中,所述定时器运行;以及
响应于没有数据在所述队列中,所述定时器停止;
其中,由所述延迟逻辑使用所计算出的常驻值来获得所述延迟值。
24.根据权利要求22所述的装置,所述延迟逻辑还包括:
第二定时器,用于计算所述链路的出口值,所述第二定时器按照如下进行工作:
响应于数据离开所述队列,所述定时器递增;
其中,由所述延迟逻辑使用所计算出的出口值来获得所述延迟值。
25.根据权利要求22所述的装置,其中,所述链路是在多处理器系统中的两个处理器之间的快速路径互连。
26.根据权利要求22所述的装置,其中,所述链路是在基于处理器的系统的处理器和外围控制器集线器之间的直接介质接口互连。
27.根据权利要求22所述的装置,其中,所述链路是在基于处理器的系统的图形加速器和控制器集线器之间的串行链路。
28.根据权利要求22所述的装置,其中,所述链路是在基于处理器的系统的处理器和控制器集线器之间的前端总线。
29.根据权利要求22所述的装置,其中,所述链路是在基于处理器的系统的存储器和控制器集线器之间的存储器接口。
30.根据权利要求22所述的装置,其中,所述链路是在基于处理器的系统的控制器集线器和开关/桥之间的串行链路。
31.根据权利要求22所述的装置,其中,所述链路是包括差分信号对的串行点到点链路。
32.根据权利要求22所述的装置,其中,所述链路是高级微控制器总线架构。

说明书全文

用于对链路上的功率和延迟进行优化的方法和装置

技术领域

[0001] 本申请涉及基于处理器的系统,以及在基于处理器的系统的链路内的有效的处理机器级的代码。

背景技术

[0002] 当打开基于处理器的系统时,运行系统内的指令用于对系统的各个部分(例如,视频显示器、键盘、以及硬盘)进行加电。最后,加载通常包括美观的图形用户界面操作系统。所加载的操作系统使得用户能够通常通过向系统上加载软件,利用系统来进行各种各样不同的动作。
[0003] 除了这些操作之外,在系统用户的视线之外,发生了很多其他动作。例如,系统内的便携式机器代码(pcode),使系统内的不同实体能够彼此通信。所述实体包括但不限于:中央处理单元(CPU)、存储器、图形控制器、总线、以及连接到各种外围设备并且控制外围设备的外围设备集线器,所述外围设备连接到基于处理器的系统。
[0004] 如同更高层级的操作系统、驱动程序、以及加载到系统中的其他软件那样,系统内部运行的便携式机器代码可能会发生延迟,这降低了系统的效率。延迟是对时延的度量,并且可能影响几乎任何设备之间的任何通信。
[0005] 当前很多系统构建于快速PCI标准(PCIe)下,其中链路功率、设备之间的通道数量是可调节的。在PCIe下,一个、两个、四个、八个、十六个和三十二个通道是可能的。由此,“乘八”(x8)系统表示存在八条通道正在使用,每条通道具有两个差分信令对,一对用于发送,而另一对用于接收。在给定时刻正在使用的通道数影响系统的吞吐量,从而影响进行操作的速度。
[0006] 仍然在PCIe下,当前很多基于处理器的系统设计有低功率状态。尤其是对于膝上计算机、蜂窝电话、和其他功率敏感的设备,在未使用系统时发生低功率状态,从而有望延长电池寿命,从而延长设备的可携带性。尽管可以通过关闭系统的部分来实现低功率状态,但是减小链路功率也是用于减小由系统的消耗功率的机制。
[0007] 减小链路功率来节能可能增大系统的延迟。存在解决方案可以减轻延迟问题。所述解决方案依赖于1)“敏捷的”硬件,2)深度缓冲区,3)未饱和的队列,或4),1)、2)和3)的组合。
[0008] 如果系统中的硬件足够敏捷,例如,硬件可以快速地对链路重新供应。例如,存在连接在CPU之间的专用的总线,其被称为快速路径互连(QPI)总线。QPI总线被设计成加快两个CPU之间的通信,并且具有链路宽度指示符L0p。在从一个链路宽度上调到另一个链路宽度期间,QPI的L0p“熄灭”时间仅为几十纳秒,这样允许对于CPU之间繁重的业务服务突发而言有几十微秒量级的短响应延迟。
[0009] 深度缓冲区由端点提供。例如,网络接口卡(NIC)可以在其LAN到PCIe管道中提供64千字节的缓冲存储装置。这样为NIC提供了大量的数据,用于在处理流期间通过管道馈送。大型缓冲区通过存储进入的请求来隐藏延迟,同时例如在退出功率控制状态时,耗电设备返回到满负荷操作。在当前上下文中,消耗设备是暂时(例如,几微秒)离线的缓冲区内容消耗PCIe链路。
[0010] 发送队列可以有助于延迟问题,但预计以特定的方式进行表现。例如,QPI总线具有与高速缓存缺失的相对随机的行为相组合的小分组有效载荷,使得将其相对小的(几十行)队列在大部分时间中处在“不饱和”状态。在满负载时,队列很少是空的,而很少是满的。因此,对于QPI总线而言,队列深度阈值作为延迟的代理可以很好地工作。
[0011] 现在考虑主要任务是用于传送网页的前端服务器的典型PCie行为。硬件不是“敏捷的”:PCie重新提供周期招致链路几微秒量级的熄灭,其使得用于重新提供决策的“检查点”间隔进入毫秒范围。根复合缓冲区仅仅为四千字节深:要发送的网页是大更多倍的。因此,在网页开始通过PCIe发射机管道“倾泻”时,使队列饱和,并且在其停止时,队列变空。队列在一些中间状态中“反复弹跳”的可能非常小。因此,在根复合中使用队列深度阈值充当了延迟的不良代理。
[0012] 由此,存在对克服现有技术的缺点的解决方案的持续的需要。附图说明
[0013] 本文的以上方面和很多伴随的优点将变得更容易意识到并且同时变得更好理解了,这是因为通过参考以下的具体实施方式,在结合附图考虑来参考以下具体实施方式时,在各个附图中,类似的附图标记指代类似的部分,除非另有指定
[0014] 图1是根据一些实施例的系统的简化的框图,所述系统包括用于连接计算机系统中的I/O设备的串行点到点互连;
[0015] 图2是根据一些实施例的分层协议栈的简化的框图;
[0016] 图3是根据一些实施例的事务描述符的简化的框图;
[0017] 图4是根据一些实施例的串行点到点链路的简化的框图;
[0018] 图5是根据一些实施例的用于对链路上的功率和延迟进行优化的系统的简化的框图;
[0019] 图6是示出了根据一些实施例的显示了由图5的系统执行的操作的简化流程图
[0020] 图7是根据一些实施例的利用图5的系统来对多处理器系统内的一个或多个链路上的功率和延迟进行优化的的多处理器系统的简化的框图;
[0021] 图8是由一个实施例利用的协议架构的图;以及
[0022] 图9是用于根据所要求保护的主题利用的物理互连的装置的框图。

具体实施方式

[0023] 根据本文描述的实施例,公开了用于对在基于处理器的系统内部工作的链路的延迟和功率进行优化的系统和方法。所述系统和方法包括被构建成不依赖于队列深度阈值的队列的延迟计。所述系统和方法还包括反馈日志,其对关于增大的延迟目标的功率减小进行优化,以对由链路的物理特性施加的迟滞的重供应行为做出反应。
[0024] 在以下的具体实施方式中,参考了附图,附图作为示例示出了可以实践本文所描述的主题的具体实施例。然而,要理解,本领域的普通技术人员在阅读本公开之后,其他实施例将变得显而易见。因此,以下的具体实施方式不应以限制性地意义被解释,因为所要求保护的主题的范围是由权利要求书所限定的。
[0025] 下文描述了用于对在基于处理器系统的内部工作的链路的延迟和功率进行优化的系统和方法。正如本文所使用的,链路是基于处理器的系统的两个单元之间的任何连接。例如,链路可以是在基于处理器的系统的两个CPU之间的QPI总线上的连接。或者链路可以是在CPU中的一个和外围控制器集线器(PCH)或其他支持电路之间的连接。本文描述的操作可以应用于基于处理器的系统内的若干不同链路中的任何链路。
[0026] 串行点到点分层协议链路/互连
[0027] 图1是根据一些实施例的系统的简化的框图,所述系统包括经由串行链路耦合到控制器集线器的设备。系统500包括处理器502和耦合到控制器集线器504的系统存储器508。处理器502包括任何处理元件,例如,微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器502通过前端总线(FSB)526耦合到控制器集线器504。在一些实施例中,如下所述,FSB 526是串行点到点互连。
[0028] 系统存储器508包括任何存储设备,例如,随机存取存储器(RAM)、非易失性(NV)存储器、或由系统500中的设备能够访问的其他存储器。系统存储器508通过存储器接口530耦合到控制器集线器504。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口、以及动态RAM(DRAM)存储器接口。
[0029] 在一些实施例中,控制器集线器504是快速外围部件(PCIe)互连分级结构中的根集线器或根控制器。控制器集线器504的示例包括芯片组、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥、以及根控制器/集线器。术语“芯片组”通常是指两个物理上独立的控制器集线器,即耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。
[0030] 在这里,控制器集线器504通过串行链路532耦合到开关/桥512。输入/输出模516和520也可以被称为接口/端口516和520,其包括/实现用于提供控制器集线器504和开关512之间的通信的分层协议栈。模块(例如,模块516、514、520、522、524、以及518)可以在硬件、软件、固件或其任意组合中实现。此外,在不同实施例中,模块边界通常会变化,而功能可以被共同实现,或独立地实现。在一些实施例中,多个设备能够耦合到开关512。
[0031] 开关512将分组/消息从设备510向上(即在分级结构中向上朝向根控制器)路由到控制器集线器504,而将分组/消息从处理器502或系统存储器508向下(即在分级结构中向下离开根控制器)路由到设备510。设备510包括要耦合到电子系统的任何内部或外部设备或部件,例如,I/O设备、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVD ROM、监视器、打印机鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪、以及其他输入/输出设备。
[0032] 图形加速器506还通过串行链路528耦合到控制器集线器504。在一些实施例中,图形加速器506耦合到MCH,MCH耦合到ICH。因此,开关512和I/O设备510然后耦合到ICH。I/O模块518和514也用于实现分层协议栈,以在图形加速器506和控制器集线器504之间进行通信。
[0033] 图2是根据一些实施例的分层协议栈的简化图。分层协议栈600包括任何分层通信栈,例如,公共标准接口(CSI)栈、PCie栈或其他协议栈。在一些实施例中,协议栈600是PCIe协议栈,其包括事务层540、链路层542、以及物理层544。可以将接口(例如,图1中的接口516、514、520、522、524、以及518)表示为通信协议栈500。作为通信协议栈的表示也被称为实现/包括协议栈的模块或接口。
[0034] 事务层
[0035] 在一些实施例中,事务层540提供设备的处理内核和互连架构(例如,数据链路层542和物理层544)之间的接口。就此而言,事务层540的主要责任是对分组(即,事务层分组或TLP)进行组装和拆卸。PCIe实现拆分事务,即具有由时间分离的请求和响应的事务,这允许链路携带其他业务,同时目标设备收集用于该响应的数据。
[0036] 此外,PCIe利用基于信用的流控制。在这个方案中,设备通告用于事务层540中的接收缓冲区中的每一个的信用的初始量。在链路的对端处的外部设备(例如,图1中的控制器集线器504)对由每一个TLP消耗的信用数进行计数。如果事务未超过信用极限,则可以发送事务。在接收到响应时,恢复信用量。信用方案的一个优点是,假设未遇到信用极限,则信用返回的延迟不影响性能。
[0037] 在一些实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间、以及消息地址空间。存储器空间事务包括一个或多个读请求和写请求,以向/从存储器映射的位置传送数据。在一些实施例中,存储器空间事务能够使用两种不同的地址格式,例如,短地址格式(例如,32比特地址),或长地址格式(例如,64比特地址)。配置空间事务用于访问PCIe设备的配置空间。用于配置空间的事务包括读请求和写请求。定义消息空间事务(或简称为消息)以支持PCIe代理之间的带内通信。
[0038] 因此,在一些实施例中,事务层540组装分组报头/有效载荷550。可以在PCIe规范,即PCIe基础规范1.1中找到分组报头/有效载荷的格式,该规范可以在http:∥www.pcisig.com/specifications/pciexpress/获得。
[0039] 图3示出了根据一些实施例的PCIe事务描述符650。在一些实施例中,事务描述符650是用于携带事务信息的机制。就此而言,事务描述符600支持对系统中事务的识别。其他潜在的使用包括跟踪对默认事务排序的修改和事务与通道的关联。
[0040] 事务描述符650包括全局标识符字段560、属性字段562、以及信道标识符字段576。在示出的示例中,全局标识符字段560包括本地事务标识符字段564和源标识符字段566。在一些实施例中,全局事务标识符560对于所有未完成的请求都是唯一的。
[0041] 根据一种实现,本地事务标识符字段564是由请求代理产生的字段,并且对于需要针对该请求代理完成的所有未完成的请求而言都是唯一的。此外,在本示例中,源标识符566唯一地标识PCIe分级结构内的请求者代理。因此,本地事务标识符字段564与源ID 566一起提供了分级结构域内的事务的全局标识。
[0042] 属性字段562指定事务的特性和关系。就此而言,属性字段562潜在地用于提供允许对事务的默认处理进行修改的附加的信息。在一些实施例中,属性字段562包括优先级字段568、保留字段570、排序字段572、以及无窃听字段574。在这里,可以由发起者修改优先级子字段568以向事务分配优先级。保留属性字段570被保留以用于将来或厂商定义的用途。可以使用保留属性字段570来实现使用优先级或安全属性的可能的用途模型。
[0043] 在本示例中,排序属性字段572用于供应可选的信息,所述可选的信息传达可以修改默认排序规则的排序类型。根据一种示例实现,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示松弛排序,其中写能够在相同方向上通过写,而读完成能够在相同方向上通过写。无窃听属性字段574用于判断事务是否被窃听。如图所示,信道ID字段576标识事务与其相关联的信道。
[0044] 链路层
[0045] 返回到图2,链路层542也被称为数据链路层542,充当事务层540和物理层544之间的中间阶段。在一些实施例中,数据链路层542的职责是提供可靠的机制,以用于在链路的两个部件之间交换事务层分组(TLP)。数据链路层542的一侧接受由事务层540组装的TLP;应用分组序列标识符552,即标识号或分组号;计算并且应用检错码,即CRC 554;并且向物理层544提交修改的TLP,以用于在物理通路上向外部设备传输。
[0046] 物理层
[0047] 在一些实施例中,物理层544包括逻辑子块546和电子子块548,以用于物理地向外部设备发送分组。在这里,逻辑子块546负责物理层544的“数字”功能。就此而言,逻辑子块546包括发送部分和接收部分,所述发送部分准备用于由电子子块548传输的流出信息,而接收部分用于在向链路层542传递所接收的信息之前,识别并且准备接收的信息。
[0048] 物理层544的电子子块548包括发射机和接收机。发射机由逻辑子块546供应符号,发射机将所述符号串行化并且发送到外部设备。向接收机供应了来自外部设备的串行化符号,并且接收机将所接收的符号转换为比特流。比特流被解串行化,并且供应到逻辑子块546。在一些实施例中,采用8b/10b的传输码,其中发送/接收十比特的符号。在这里,使用特殊符号利用556来对分组进行分帧。此外,在一个示例中,接收机还提供从进入的串行流中恢复的符号时钟。
[0049] 如上所述,尽管参考PCIe协议栈的特定实施例论述了事务层540、链路层542、以及物理层544,但分层协议栈不限于此。实际上,可以包括/实现任何分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)组装分组的第一层,即事务层;对分组进行排序的第二层,即链路层;以及发送分组的第三层,即物理层。作为具体示例,利用了通用标准接口(CSI)分层协议。
[0050] 图4是根据一些实施例的,PCIe串行点到点链路的简化图。尽管示出了PCIe串行点到点链路,但串行点到点链路不限于此,这是因为串行点到点链路包括用于发送串行数据的任何传输路径。在示出的实施例中,在一个电平下,两个单向差分对形成通道。因此,设备710包括传输逻辑702,以用于向设备720发送数据,以及接收逻辑704,以用于从设备720接收数据。换言之,PCIe通道中包括两个发送路径,即路径706和708,以及两个接收路径,即路径716和718。
[0051] 传输路径是指用于发送数据的任何路径,例如,传输线、线、光学线路、无线通信信道、红外通信链路、或其他通信路径。两个设备(例如,设备710和720)之间的连接被称为链路,例如,链路730。图4示出了链路730中的单个通道;然而,链路中可以存在任意数量的通道,例如,2、4、8、12、16、32、64或更多。
[0052] 差分对是指两个传输路径,例如,线路706和708,用于发送差分信号。作为示例,当线路706从低压电平切换到高压电平(即,上升沿)时,线路708从高逻辑电平驱动到低逻辑电平,即,下降沿。差分信号潜在地证明了更好的电气特性,例如,更好的信号完整性,即交叉耦合、电压过冲/下冲、振铃等。这样允许能够实现更快的传输频率的更好的定时窗口。
[0053] 移动行业处理器接口
[0054] 连同PCIe,移动行业处理器接口(MIPI)是关注功耗的另一种串行互连协议。由此,MIPI协议适于关心功耗的便携式电子装置。连同MIPI协议,对新的移动物理层(MPHY)规范被进行了定义。
[0055] AMBA/AXI
[0056] 高级微控制器总线体系结构(AMBA)是芯片上系统设计中使用的片上总线的规范。AMBA协议包括高级可扩展接口(AXI)、高级高性能总线(AHB)、以及高级外围总线(APB)。
[0057] 优化链路上的功率和延迟
[0058] 图5是用于对基于处理器的系统中的链路的功率和延迟进行优化的装置100的简化的框图,而图6是根据一些实施例的由装置100执行的方法的流程图。图5中的装置100包括耦合到链路(未示出)的队列20、延迟计30、以及反馈逻辑40。输出是全都以大写字母类型给出的,而可变的输入是以斜体字类型给出的。
[0059] 队列20在链路上发送数据之前接收数据。队列20可以是设置于链路一端处的发送单元的一部分,例如CPU。由延迟计30测量进入和离开队列20的数据。延迟计30包括常驻累积器60,其跟踪进入和离开队列20的数据;以及数据出口累积器70,其仅跟踪离开队列的数据。延迟计30产生由反馈逻辑40使用的延迟值LATENCY。当计算常驻62和出口72时,变量max residency和max egress分别由常驻累积器60和数据出口累积器接收。数据出口累积器70还接收data payload变量作为输入。
[0060] 反馈逻辑40包括三个不同部分,第一部分被表示为绿色单元42,第二部分被表示为粉红单元44,以及第三部分被表示为紫色单元46。绿色单元42从延迟计30接收延迟输出,LATENCY,并且产生目标值TARGET。粉红单元44使用TARGET来产生误差值ERROR。紫色单元46使用ERROR对连接到队列20的链路增加供应或减小供应。
[0061] 延迟计由两个计数器,即常驻累积器60、以及数据出口累积器70构成。在一些实施例中,第一计数器,即常驻累积器60充当定时器:如果队列20中存在任何内容,然后定时器运行。否则,定时器停止。计数器输出是队列20的常驻62。定时器60仅在加电时重置。定时器溢出回零,并且继续计数。跨越少于最低溢出间隔的间隔的两个读数(检查点)之间的差异将提供占用队列20的周期数。
[0062] 第二计数器,即数据出口累积器70,累计事务层分组(TLP)出口,或更一般地来自队列20的数据出口。计数器70的输出为出口72。TLP由报头和数据构成。在一些实施例中,数据出口累积器70对包括报头的整个TLP进行计数。在其他实施例中,数据出口累积器70仅对TLP的数据进行计数。在其他实施例中,使用变量data payload,可以将数据出口累积器70编程为:整个TLP或者TLP的一部分是由计数器70进行计数的。
[0063] 无论具体的实现是什么,数据出口累积器70都对表示在基于处理器的系统的链路上所做工作的业务进行累积。数据出口累积器70溢出,并且以与第一计数器、常驻累积器60相同的方式来设定检查点。
[0064] 常驻62与出口72的比率是对通过队列20的平均延迟的直接度量。换言之,系统的延迟与常驻和出口的比率是成比例的。用数学方式表达,公式为:
[0065] 延迟~常驻/出口
[0066] 在一些实施例中,比例为一比一:
[0067] LATENCY=常驻/出口   (1)
[0068] 此外,在一些实施例中,所述“直接”延迟是100%统计准确的:未丢失任何事件。
[0069] 反馈逻辑40由被称为绿色单元42的第一部分、被称为粉红单元44的第二部分和被称为紫色单元46的第三部分构成。对图6的操作进行颜色编码以与反馈逻辑的各部分相对应,延迟计30部分被示为蓝色。
[0070] 在一些实施例中,反馈逻辑40的绿色单元42(图5)跟踪链路被完整供应并且产生目标值TARGET时的最大延迟。在一些实施例中,接收链路是否被完整供应来作为输入。该算法为:
[0071]
[0072] 由此,目标值TARGET是基于链路业务进行调节的移动值。在一些实施例中,目标值TARGET在加电时被清空,并且可以在任何时候随意清空。在一些实施例中,当链路运行于满负载,并且仍然满足其服务质量要求时,TARGET=LATENCY。
[0073] 在一些实施例中,当链路未被完全供应时,反馈逻辑40的第二部分,即粉红单元44跟踪目标值TARGET和延迟值LATENCY之间的差异,获得误差值ERROR。该算法为:
[0074] ERROR+=LATENCY-TARGET
[0075] ERROR=floor(ERROR,limit)(3)
[0076] 在算法(3)的第一部分中,正误差意味着平均延迟过高,因此将延迟值LATENCY和目标值TARGET之间的差异添加到误差值ERROR。算法(3)的第二部分通过基于输入参数limit来对误差施加基值,从而防止误差成为过大的负值。
[0077] 在一些实施例中,如果误差为正,则反馈逻辑40的第三部分,即紫色单元46增加供应,而如果误差为负,则减少供应。该算法为:
[0078]
[0079] 通过“增加供应”,图5中示为“提高供应”,紫色单元46减小延迟,并且在链路上消耗更多功率。通过“减少供应”,图5中示为“降低供应”,紫色单元46减小发往链路的功率。参数positive hysteresis和negativehysteresis用于减少从一个检查点到下一个检查点的误差中小变化的震颤,在一些实施例中,紫色单元46是噪声滤波器,其保持链路不进行不必要的提高供应、然后降低供应、然后提高供应等等。
[0080] 图6是示出了图5的装置100的操作的简化的框图,所述用于对基于处理器的系统的链路上的功率和延迟进行优化。操作被分成五个部分。检查点时间(黄色)是用于执行优化操作的可调节时间段。首先发生的是延迟计30获得常驻62、出口72、以及最终对常驻和出口(蓝色)计算,以用于确定LATENCY 50的操作。然后,反馈逻辑40被分成绿色单元42、粉红单元44、以及紫色单元46。
[0081] 在一些实施例中,在可调节的调节点时间开始该过程。当到达检查点时间时(方框100),控制前进到延迟计30(蓝色),其包括两个计数器:常驻累积器60和数据出口累积器
70。通过获得新的常驻值(通过检查队列20)并且从新测量的常驻减去旧的常驻值,即先前计算的常驻62,来更新常驻参数62(方框102)。如果减法使得常驻参数62为负(方框104的“是”分支),那么向常驻参数62分配比预定义的最大常驻值(max residency)大一的值(方框106)。当常驻参数62不为负时(方框104的“否”分支)时,那么保持常驻参数62不变,而控制前进到延迟计30的数据出口累积器72。
[0082] 非常类似于常驻累积器60,数据出口累积器70通过获得新的出口值(通过检查队列20),并且从新获得的值减去先前计算的出口值72,来更新出口参数72(方框108)。如果减法使得出口参数72为负(方框110的“是”分支),那么向出口参数72分配了比预定义的最大出口值(max egress)大一的值(方框112)。当出口参数72不是负(方框110的“否”分支)时,那么保持出口参数72不变。由此,装置100具有两个参数:常驻62和出口72,其用于计算延迟50。延迟是使用上面的公式(1)来进行计算的(方框114)。
[0083] 在一些实施例中,示例可以用于示出延迟计30是如何跟踪常驻62和出口72的。延迟计30的两个部分都参与了存储常驻62和出口72的存储位置的翻转,其中,max_residency和max_egress可以是存储在存储位置中的最大数量。由此,假定常驻62存储在16比特的存储位置中。可以存储在该位置的最大数字是65535(1111111111111111b),由此max_residency为65535。假定来自先前检查点的旧常驻(old_residency)为60000,则来自当前检查点的新常驻(new_residency)为1000。显然,常驻计数器“翻转”通过了计数器的65535限制。
[0084] 由此,为了获得对常驻62的准确统计,在一些实施例中,延迟计30计算“顶部差异”和“底部差异”,然后将两个差异相加。顶部的差异是65535-60000,即5535。底部差异为1000–0+1,或1001,增加的多余的1用于补偿数字0,成为状态中的一种。差异之和为5535+
1001=6536。
[0085] 再次参考图6,从new residency 1000减去old residency 60000,为常驻62赋予了值-59000(方框102)。由于常驻为负数(方框104的“是”分支),所以执行方框104:residency+=max residency+1,即-59000+65535=6535,然后加1以得到正确的最终结果
6536。进行类似的计算以由延迟计30准确地计算egress。
[0086] 控制接下来前进到方法100的绿色单元42。如果链路被完全供应(方框116的“是”分支),则将延迟参数LATENCY与目标参数TARGET进行比较(方框118)。如果LATENCY超过TARGET(方框118的“是”分支),那么将目标参数TARGET设置成当前的延迟值(方框120)。否则(方框118的“否”分支),目标TARGET保持不变。然而,如果链路未被完全提供(方框116的“否”分支),则绿色单元42不采取任何动作,而目标变量TARGET保持不变。由此,绿色单元42的操作模仿了以上算法(2)中给出的伪代码。
[0087] 控制接下来前进到方法100的粉红单元44。其中,通过向ERROR增加LATENCY和TARGET之间的差异,来更新误差值ERROR(方框122)。在将TARGET设置成等于LATENCY(方框120)时,这会使误差值ERROR保持不变。接下来,将误差与极限参数limit进行比较,可以接收limit作为粉红单元44的输入(方框124)。如果误差小于limit(方框124的“是”分支),则将ERROR设置成极限值,limit(方框126)。否则(方框124的“否”分支),ERROR保持不变。由此,粉红单元44的操作对以上算法(3)中给出的伪代码进行了仿真。
[0088] 接下来,紫色单元46从粉红单元44接收误差值ERROR。紫色单元46还接收两个参数positive hysteresis和negative hysteresis作为输入。如果ERROR超过positive hysteresis(方框128的“是”分支),则该链路被提高供应(方框134),或者增大其值。否则(方框128的“否”分支),如果ERROR低于negative hysteresis(方框130的“是”分支),则链路被降低供应(方框132),或减小其值。否则(方框130的“否”分支),不对链路做任何改变。由此,紫色单元46的操作对以上算法(4)中给出的伪代码进行了仿真。
[0089] 在一些实施例中,装置100的延迟计30部分实现于硬件中,两个队列计数器60,70被实现为“门”,而反馈逻辑40实现于软件或固件中。对状态和控制进行“完全供应”(方框116)、“提高供应”(方框134)和“降低供应”(方框132)是PCie规范、根复合和端点的部分。
[0090] 图7是根据一些实施例的,利用方法和装置100的多处理器系统200的简化的框图。多处理器系统200包括N个中央处理单元(CPU)150A、150B、……、150N(统称为“CPU 150”),它们耦合到被称为快速路径互连(QPI)总线160A、160B、……、160N-1(统称为“QPI总线
160”)的N-1条专用总线。QPI总线160专为CPU设计,加快了CPU 150之间的通信。CPU还可以耦合到一个或多个易失性存储器、专用图形处理器、以及其他电路(未示出)。
[0091] 同样在多处理器系统200中的特征是经由多达N个专用总线耦合到CPU 150的多达N个外围控制器集线器(PCH)180A、……、180N(被统称为“PCH 180”),所述专用总线被称为直接介质接口(DMI)总线170A、170B、……、170N。PCH 180在CPU 150和多处理器系统200的一个或多个外围装置之间进行连接。PCH 180可以包括显示器、输入/输出(I/O)控制器、实时时钟、以及其他功能,并且可以连接到集成显示器和其他外围装置,例如,键盘、鼠标、非易失性存储设备等(未示出)。
[0092] 装置100可以用于对系统200的各种链路进行优化。在一些实施例中,装置100在CPU 150的每一个中以及PCH  180的每一个中都是可用的。图7示出了装置100A1、100B1、……、100N1作为相应的CPU 150A、150B、……、150N的一部分,装置100A2、
100B2、……、100N2作为相应的PCH 180A、180B、……、180N的一部分。装置100A1和100B1例如可以针对穿越CPU150A和CPU 150B之间的QPI总线160A的数据来优化功率和延迟,而装置
100A1和100A2针对穿越CPU 150A和PCH 180A之间的DMI总线170A的数据来优化功率和延迟。
多处理器或单处理器系统内的装置100的其他布置对于本领域的普通系统设计员而言将变得显而易见。
[0093] 在一些实施例中,对方法100的“完全供应”、“提高供应”、以及“降低供应”部分是指链路宽度。由此,在满负载下作为x 4链路工作的链路在被提高供应到x 8链路时会被视为完整供应,并且其可以降低供应到x 2链路或x 1链路,正如优化功率和延迟所需要的。
[0094] 在其他实施例中,方法100的“完全供应”、“提高供应”和“降低供应”部分是指基于处理器的系统的CPU时钟中的一个或系统时钟。由此,作为一个示例,可以将工作在5GT/s的PCIe系统(被称为2代)提高供应到8GT/s系统(3代),或降低供应到2.5GT/s系统(1代)。
[0095] 在其他实施例中,方法100“完全供应”、“提高供应”和“降低供应”的部分是指系统加电状态,无论其工作于满功率(完全供应)或低功率状态(通常被称为STANDBY和SLEEP)中的一个中。在PCIe下,作为一个示例,低功率状态L0、L0s、L1、以及L2是可用的。在QPI之下,低功率状态L0、L1、以及L3是可用的。在提高供应期间,功率状态从第一功率管理状态改变为第二功率管理状态,其中第二功率管理状态受到的功率管理低于第一功率管理状态。
[0096] 当装置100运行时,发生以下情况。当基于处理器的系统被加电时,有问题的链路以完全供应运行,这是因为最大延迟可能在其随负载增大时跟踪实际的系统延迟。然后,将高负载应用到链路,这增大了延迟。目标值TARGET在完全供应下“上升”到最大LATENCY。当链路的负载减小时,装置100对链路进行降低供应,以节省功率。在所有的负载平下,链路通过运行最低供应以在完全供应满负载目标下维持平均延迟,来节省所有可能的功率。本上下文中满负载是指自从系统被引导或自从功率控制器的状态被重置之后,系统经历的最满负载。满负载未必是指系统的最满负载容量。
[0097] 除了可编程的参数(斜体字)之外,装置100还可以考虑以下规定:
[0098] 1.具有各种退出时间的低功率“关闭”状态(例如,L0s、L1等)
[0099] 2.部分链路宽度状态(例如,L0p、DLW等)。L0p是用于QPI的术语,而DLW是用于PCIe的链路宽度指示符。
[0100] 3.CPU时钟频率改变
[0101] 尽管在以上实施例中将PCie用作基本问题域,但可以将方法和装置100应用于拥有多个供应能的任何链路。
[0102] 图8是根据一些实施例的协议架构的简化的框图。该架构描绘了耦合到网络体系810的多个高速缓存处理器830A、830B、……、830M(统称为“高速缓存代理830”)和存储器控制器820A、820B、……、820N(统称为“归属代理820”)。例如,网络体系遵守分层协议方案,并且可以包括如下任一种或全部:链路层、物理层、协议层、路由层、以及传输层。该体系有助于针对点到点网络从一种协议(归属或高速缓存代理)向另一种协议传送消息。在一个方面中,图8示出了下层网络的高速缓存相关性协议的概要视图。
[0103] 在一些实施例中,该协议可以是遵循MESIF(修改的唯一共享无效转发)方案与高速缓存相一致的。在另一实施例中,该协议可以遵循MESI(修改的唯一共享无效)方案。在又一实施例中,该协议可以允许一些IP块和内核遵循高速缓存一致模式,而其他IP块和内核不支持高速缓存一致性。
[0104] 在另一实施例中,网络体系810可以用于任何片上系统应用,其利用了定制或标准接口,例如,用于AMBA(高级微控制器总线体系结构)、OCP(开放内核协议)、MIPI(移动行业处理器接口)、PCI或PCIe的遵循ARM的接口。
[0105] 图9是用于根据所要求保护的主题利用的物理互连的装置的框图。在一个方面中,所述装置描绘了用于高速缓存一致性的物理层,用于处理器、芯片组、和/或I/O桥部件的基于链路的互连方案。例如,可以由集成设备的每一个物理层来执行物理互连。具体而言,物理层在包括两个单向链路的物理互连上的两个端口之间提供通信。具体而言,一个单向链路940从第一集成设备922的第一发送端口(TX)开始,到达第二集成设备920的第一接收机端口(RX)。同样地,第二单向链路930从第二集成设备920的第一发送端口(TX)开始,到达第一集成设备922的第一接收机端口(RX)。然而,所要求保护的主题不限于两个单向链路。本领域的技术人员应当认识到,所要求保护的主题支持任何已知的信令技术,例如,双向链路等。
[0106] 尽管已经结合有限数量的实施例描述了本申请,但本领域的技术人员将认识到其众多修改和变型。所附的权利要求是要覆盖落入本发明的真正精神和范围内的所有这样的修改和变型。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈