首页 / 专利库 / 机车车辆 / 缓冲器 / 多客户端系统中实时流的动态仲裁方法

多客户端系统中实时流的动态仲裁方法

阅读:570发布:2023-03-07

专利汇可以提供多客户端系统中实时流的动态仲裁方法专利检索,专利查询,专利分析的服务。并且一种 数据处理 系统,包括功率管理器,所述功率管理器用于响应于功率事件 请求 信号 而提供功率事件深度信号。多个实时客户端耦合到所述功率管理器。每个实时客户端包括客户端 缓冲器 ,所述客户端缓冲器具有用于存储数据的多个条目。所述实时客户端还包括寄存器,所述寄存器用于存储所述客户端缓冲器的 水 印 阈值 ;以及逻辑,所述逻辑用于当所述客户端缓冲器中的有效条目的数量超过所述水印阈值时提供允许信号。功率管理状态机耦合到所述多个实时客户端中的每一个实时客户端。所述功率管理状态机响应于所有所述多个实时客户端提供相应允许信号而提供功率事件起始信号。,下面是多客户端系统中实时流的动态仲裁方法专利的具体信息内容。

1.一种数据处理系统(100),所述数据处理系统(100)包括:
功率管理器(116/212),所述功率管理器(116/212)用于响应于功率事件请求信号而提供功率事件深度信号,其中所述功率事件深度信号对应于功率事件将持续的时间量;
多个实时客户端(126/130/132/210/230),所述多个实时客户端(126/130/132/210/
230)耦合到所述功率管理器,每个实时客户端包括:
客户端缓冲器(406),所述客户端缓冲器(406)具有多个用于存储数据的条目;
寄存器(416),所述寄存器(416)用于存储所述客户端缓冲器的阈值(330/356);以及
逻辑(410),所述逻辑(410)用于当所述客户端缓冲器中的有效条目的数量超过所述水印阈值时提供允许信号,以及
功率管理状态机(155/214/500),所述功率管理状态机(155/214/500)耦合到所述多个实时客户端中的每一个实时客户端,以响应于所有所述多个实时客户端提供相应允许信号而提供功率事件起始信号。
2.如权利要求1所述的数据处理系统(100),其中所述寄存器根据所述功率事件深度信号来动态地为所述多个实时客户端中的每一个实时客户端配置带宽容量。
3.如权利要求1所述的数据处理系统(100),其中所述功率管理状态机接收允许信号,并且响应于接收到所述允许信号,所述功率管理状态机输出处于活动状态的功率事件信号。
4.如权利要求1所述的数据处理系统(100),其中每个实时客户端扣留允许信号,并且响应于不存在所述允许信号,所述功率管理状态机扣留处于活动状态的功率事件信号。
5.如权利要求1所述的数据处理系统(100),其中每个实时客户端掩蔽所述允许信号,并且响应于被掩蔽的允许信号,所述功率管理状态机绕过来自所述实时客户端的对所述功率事件请求信号的响应。
6.如权利要求1所述的数据处理系统(100),其中所述功率管理器接收权重因子,并且响应于接收到所述权重因子,针对所述功率事件请求信号选择性地对每个实时客户端的功耗分配进行优先级排序。
7.如权利要求1所述的数据处理系统(100),其中客户端控制器(402)响应于所述功率事件深度信号而为所有所述多个实时客户端选择所述水印阈值。
8.如权利要求1所述的数据处理系统(100),其中所述功率事件深度信号部分地通过计算出的与所述功率事件请求信号相关联的客户端缓冲器(406)的带宽容量的消耗来确定。
9.如权利要求1所述的数据处理系统(100),其中所述功率管理器基于相应的带宽需求来为所述多个实时客户端中的每一个实时客户端设置所述水印阈值。
10.如权利要求1所述的数据处理系统(100),其中所述功率管理器响应于可用系统带宽而为所述多个实时客户端中的每一个实时客户端设置所述水印阈值。
11.如权利要求1所述的数据处理系统(100),其中总系统带宽部分地由最大系统带宽、实时和非实时客户端的总数和互连拓扑动态地确定。
12.如权利要求1所述的数据处理系统(100),其中:
所述功率管理器基于对应于所述功率事件深度信号的下溢时间来设置读取客户端缓冲器(320)的所述水印阈值(330);并且
响应于所述读取客户端缓冲器排出到低于所述水印阈值,读取客户端提供处于非活动状态的允许信号。
13.如权利要求1所述的数据处理系统(100),其中:
所述功率管理器基于与所述功率事件深度信号对应的上溢时间来设置写入客户端缓冲器(350)的水印阈值(356);并且
响应于所述写入客户端缓冲器填充到低于所述水印阈值,写入客户端提供处于非活动状态的所述允许信号。
14.如权利要求1所述的数据处理系统(100),其中响应于所述多个实时客户端中的一个实时客户端检测到低水印阈值容量,所述功率管理状态机禁用所述允许信号,并触发共享资源(160/170/180)从低功率状态到高功率状态的转换。
15.如权利要求1所述的数据处理系统(100),其中所述寄存器限定用于承受再训练事件和所述功率事件请求信号中的一者的缓冲器带宽容量。
16.如权利要求1所述的数据处理系统(100),其中允许信号是有线信号和虚拟有线信号中的至少一者。
17.一种数据处理系统(100),所述数据处理系统(100)包括:
功率管理状态机(155/214/500);
功率管理器(116/212),所述功率管理器耦合到所述功率管理状态机,以用于接收功率事件请求;
多个实时客户端(126/130/132/210/230),所述多个实时客户端(126/130/132/210/
230)耦合到所述功率管理状态机和所述功率管理器,以用于接收功率事件的深度,并经调适用于:
根据所述功率事件的所述深度来动态地配置水印寄存器(416)的带宽;
将与所述水印寄存器相关联的客户端缓冲器(406)中的条目的数量与所述水印寄存器的值进行比较;
确定所述功率事件请求是否是可允许的请求;以及
响应于确定所述功率事件请求是可允许的请求,断言允许信号以启动所述功率事件的开始。
18.如权利要求17所述的数据处理系统(100),其中所述功率管理器向所述功率管理状态机提供所述多个实时客户端中的每一个实时客户端的掩码值。
19.如权利要求18所述的数据处理系统(100),其中所述功率管理器向所述功率管理状态机提供所述多个实时客户端中的每一个实时客户端的掩码值(510/520/530)。
20.如权利要求18所述的数据处理系统(100),其中所述功率管理状态机响应于从所述多个实时客户端中的每一个实时客户端接收到所述允许信号和所述掩码值,而启动所述功率事件的开始。
21.如权利要求18所述的数据处理系统(100),其中所述功率管理状态机响应于从所述多个实时客户端中的每一个实时客户端接收到所述允许信号和所述掩码值,而启动所述功率事件的开始。
22.如权利要求17所述的数据处理系统(100),其中所述功率管理状态机从每个实时客户端接收缓冲器状态(320/350/406)。
23.如权利要求17所述的数据处理系统(100),其中每个实时客户端与相应的水印寄存器相关联。
24.如权利要求17所述的数据处理系统(100),其中每个实时客户端耦合到至少一个共享资源(160/170/180)。
25.一种用于实时功率事件期间为共享资源(160/170/180)动态管理客户端的方法(600),所述方法包括:
接收功率事件请求(602);
确定与所述功率事件请求相关联的每个客户端的水印阈值(604);
对于每个客户端,将客户端缓冲器中的条目的数量与相应的水印阈值进行比较(606);
响应于对每个客户端的所述比较,检测允许信号和不允许信号中的至少一者;
响应于检测到来自与所述功率事件请求相关联的每个客户端的允许信号,启动功率事件的开始(612);以及
响应于检测到来自与所述功率事件请求相关联的至少一个客户端的至少一个不允许信号(612),禁用所述功率事件的开始(616)。
26.如权利要求25所述的方法(600),所述方法(600)还包括:
响应于所述功率事件请求的功率事件深度而动态地确定所述水印阈值,其中所述功率事件深度与所述共享资源从低功率状态到高功率状态的退出等待时间相关联;以及针对与客户端缓冲器相关联的后续功率事件请求更新所述水印阈值(406)。
27.如权利要求25所述的方法(600),其中功率管理器(116/212)确定允许、不允许和掩码何时与每个功率事件的客户端相关联。
28.如权利要求27所述的方法(600),其中当指定客户端不与对应功率事件的共享资源相关联时,返回所述掩码。
29.如权利要求25所述的方法(600),所述方法(600)还包括:
动态地确定读取客户端缓冲器(320)的水印阈值(330),其中所述读取客户端缓冲器的所述水印阈值是与功率事件深度对应的下溢时间;以及
响应于所述读取客户端缓冲器排出到低于所述水印阈值,断言处于非活动状态的允许信号。
30.如权利要求25所述的方法(600),所述方法(600)还包括:
动态地确定写入客户端缓冲器(350)的水印阈值(356),其中所述写入客户端缓冲器的所述水印阈值是与功率事件深度对应的上溢时间;以及
响应于检测到所述写入客户端缓冲器填充到低于所述水印阈值,断言处于非活动状态的允许信号。
31.如权利要求25所述的方法(600),所述方法(600)还包括,响应于从与未掩蔽客户端相关联的多个水印寄存器中的每个水印寄存器接收到允许信号而启动所述功率事件。

说明书全文

多客户端系统中实时流的动态仲裁方法

背景技术

[0001] 计算机系统利用外围部件来增加计算体验期间的功能性。片上系统(system on a chip,SoC)提供多个外围装置的控制。例如,显示器、相机和多个媒体引擎(仅举例而言)是实时客户端,所述实时客户端作为外围部件连接到SoC并且使得能够输入信息到计算机系统和从计算机系统输出信息。实时客户端是大多数计算机系统的关键部件,为用户的日常计算体验增添价值。然而,许多实时客户端对过度等待时间敏感,从而在不满足带宽和等待时间需求时产生用户可见的影响。
[0002] 出于功率节省的目的,SoC互连可以执行多种性能和低功耗状态,以及将外部存储器部件置于低功耗状态下。此外,一些SoC使得能够对存储器进行定期再训练。这些功率管理和存储器再训练事件增加时间延迟,从而导致存储器接口无法使用10s微秒。对于一些实时客户端,在峰值等待时间期间,这些中断可能导致丢失,所述帧丢失对最终用户来说是显而易见的。
[0003] SoC继续增加所连接的实时客户端的数量。实时客户端在功率管理和再训练事件期间竞争共享资源的带宽。在功率管理和存储器再训练事件期间没有能成功管理系统带宽和等待时间和/或在成功管理系统带宽和等待时间方面的约束损害了计算系统的服务质量附图说明
[0004] 图1以框图形式示出了适用于根据一些实施方案的数据处理系统的加速处理单元(APU);
[0005] 图2以框图形式示出了根据一些实施方案的用于分配功率事件请求的功率管理系统;
[0006] 图3以框图形式示出了根据一些实施方案的与实时客户端缓冲器相关联的阈值
[0007] 图4以框图形式示出了根据一些实施方案适用于图1的APU的实时客户端和相关联的存系统;
[0008] 图5以部分框图和部分电路形式示出了根据一些实施方案适用于图1的APU的功率管理状态机;并且
[0009] 图6示出了根据一些实施方案可以由图5的功率管理状态机使用的流程图
[0010] 在以下描述中,在不同附图中使用相同的附图标记表示相似或相同的项目。除非另有说明,否则词语“耦合”及其相关的动词形式包括通过本领域已知的方式进行直接连接和间接电连接,并且除非另有说明,否则对直接连接的任何描述都还暗示使用适当形式的间接电连接的替代实施方案。

具体实施方式

[0011] 如下面将以一种形式描述的,一种数据处理系统包括功率管理器,所述功率管理器用于响应于功率事件请求信号而提供功率事件深度信号。多个实时客户端耦合到所述功率管理器。每个实时客户端包括客户端缓冲器,所述客户端缓冲器具有用于存储数据的多个条目。所述实时客户端还包括寄存器,所述寄存器用于存储所述客户端缓冲器的水印阈值;以及逻辑,所述逻辑用于当所述客户端缓冲器中的有效条目的数量超过所述水印阈值时提供允许信号。功率管理状态机耦合到所述多个实时客户端中的每一个实时客户端。所述功率管理状态机响应于所有所述多个实时客户端提供相应允许信号而提供功率事件起始信号。
[0012] 在另一种形式中,一种数据处理系统包括功率管理状态机;功率管理器,所述功率管理器耦合到所述功率管理状态机以接收功率事件请求;以及多个实时客户端,所述多个实时客户端耦合到所述功率管理状态机和所述功率管理器以接收功率事件的深度。所述多个实时客户端经调适用于根据功率事件的深度来动态地配置水印寄存器的带宽。所述多个实时客户端将与水印寄存器相关联的客户端缓冲器中的条目的数量与所述水印寄存器的值进行比较,并确定功率事件请求是否是可允许的请求。响应于确定所述功率事件请求是可允许的请求,所述多个实时客户端断言允许信号以启动功率事件的开始。
[0013] 在又一种形式中,描述了一种用于在共享资源的实时功率事件期间动态管理客户端的方法。接收功率事件请求,并且响应于接收到所述功率事件请求而确定与所述功率事件请求相关联的每个客户端的水印阈值。对于每个客户端,将客户端缓冲器中的条目的数量与相应的水印阈值进行比较。检测允许信号和不允许信号中的至少一者。响应于检测到来自与所述功率事件请求相关联的每个客户端的允许信号,启动功率事件的开始。响应于检测到来自与所述功率事件请求相关联的至少一个客户端的至少一个不允许信号,禁用功率事件的开始。
[0014] 图1以框图形式示出了加速处理单元(APU)100。APU 100适用于数据处理系统。APU 100通常包括中央处理单元(CPU)核心复合体120,一组水印寄存器126,实时客户端130,存储器管理集线器134(或在一些实施方案中为多媒体集线器),互连150,客户端控制器136,客户端总线控制器138,输入/输出集线器140,系统管理单元(SMU)108,系统管理网络总线
110,一组存储器控制器152和156,以及多个共享资源160、170和180,所述多个共享资源
160、170和180通常与共享存储器通道或输入/输出接口/链路相关联。
[0015] CPU核心复合体120包括CPU核心122和CPU核心124。在该示例中,CPU核心复合体120包括两个CPU核心,但是在其他实施方案中,CPU核心复合体120可以包括任意数量的CPU核心。CPU核心122和124中的每一个双向连接到系统管理网络(SMN),这形成了控制结构,并且CPU核心122和124中的每一个双向连接到互连150,并且能够向互连150提供存储器访问请求。CPU核心122和124中的每一个可以是单一核心,或者还可以是具有共享某些资源(诸如高速缓存)的两个或更多个单一核心的核心复合体。
[0016] 一组实时客户端130包括具有缓冲器的实时客户端132。具有缓冲器的实时客户端132包括读取客户端缓冲器和/或写入客户端缓冲器。读取客户端缓冲器可用于例如多媒体控制器和显示引擎。读取客户端缓冲器存储来自存储器的读取。写入客户端缓冲器可用于RT客户端,诸如显示无线引擎、多媒体引擎、相机控制器和图形处理单元。写入客户端缓冲器通常发送将存储在存储器中的数据。具有缓冲器的实时客户端132双向连接到公共存储器管理集线器134,以均匀地转换成存储器系统中的适当地址,并且存储器管理集线器134双向连接到互连150,以产生存储器访问并接收从所述存储器系统返回的读取数据。具有缓冲器的实时客户端132还双向连接到SMN 110和互连150。另外,具有缓冲器的实时客户端
132的缓冲器能够通过存储器管理集线器134向互连150提供或从互连150接收用于存储器访问请求的数据。就此而言,APU 100可以支持统一存储器架构,在所述统一存储器架构中CPU核心复合体120和具有缓冲器的实时客户端132共享对存储器、相同存储器空间或存储器空间的一部分的相同访问。
[0017] 水印寄存器126是按照实时客户端缓冲器添加的可动态可配置的水印寄存器。水印寄存器126中的每一个连接到实时客户端130的相应客户端缓冲器,并提供与实时功率管理事件对应的实时水印级别。
[0018] 互连150包括功率管理状态机155。功率管理状态机155接收每个功率事件请求的实时客户端水印级别状态,并选择性地生成对系统100中的共享资源(诸如共享存储器)的功率事件请求。另外,互连150包括纵横开关,以在任何存储器访问代理与存储器控制器152和156之间路由存储器访问请求和存储器响应。互连150还包括由BIOS定义的系统存储器映射,以基于系统配置来确定存储器访问的目的地以及用于每个虚拟连接的缓冲器。在替代实施方案中,功率管理状态机155和互连150是分开的。
[0019] 客户端控制器136包括例如USB控制器、串行高级技术附件(SATA)接口控制器和固态驱动器(SSD)控制器,所述控制器中的每一者双向连接到系统集线器140和SMN总线110。这两个控制器仅是可以在APU 100中使用的外围控制器的示例。
[0020] 客户端总线控制器138是外围控制器,所述外围控制器可以包括系统控制器和PCIe控制器。客户端总线控制器138双向连接到输入/输出(I/O)集线器140和SMN总线110。I/O集线器140也双向连接到互连150。因此,例如,CPU核心122可以通过互连150路由通过I/O集线器140的访问来编程与客户端控制器136相关联的每个客户端控制器中的寄存器。
[0021] SMU 108是本地控制器,所述SMU 108控制APU 100上的资源的操作并使所述资源之间的通信同步。SMU 108包括功率管理器116和功率管理固件112。SMU 108管理APU 100上的各种处理器的加电排序,并经由复位信号、启动信号和其他信号来控制多个片外装置。SMU 108包括图1中未示出的一个或多个时钟源,诸如锁相环路(PLL),以为APU 100的部件中的每个部件提供时钟信号。功率管理器116管理各种处理器、实时客户端和其他功能的功率,并且可以从CPU核心122和124及核心复合体120接收测量的功耗值以确定适当的功率状态。功率管理固件112双向连接到实时水印寄存器126。功率管理固件112将与APU 100的当前功率需求对应的水印级别设置动态地分配给实时水印寄存器126。
[0022] APU 100还实现各种系统监测和功率管理事件。具体地,一种系统监测功能是热监测。例如,如果APU 100变热,则SMU 108可以降低CPU核心122和124和/或实时客户端130的频率电压。如果APU 100变得过热,则APU 100可以完全关机。还可以由SMU 108经由SMN总线从外部传感器接收热事件,并且SMU 108可以响应地降低时钟频率和/或电源电压
[0023] 图2以框图形式示出了用于分配功率事件请求的功率管理系统;功率管理系统200包括功率管理器212、实时客户端A 210、实时客户端N 230、功率管理状态机214和共享资源216。
[0024] 功率管理器212具有连接到多个实时客户端的每个实时客户端的输出,并且具有用于接收与所述实时客户端相关联的功率事件请求的输入。
[0025] 实时客户端A 210和实时客户端N 230代表多个实时客户端。实时客户端A 210和实时客户端N 230可以是例如显示控制器、图像信号处理器/控制器、USB控制器、相机控制器或多媒体控制器。每个实时客户端具有相关联的读取和/或写入客户端缓冲器;寄存器,所述寄存器用于存储客户端缓冲器的水印阈值;以及逻辑,所述逻辑用于当所述客户端缓冲器中的有效条目的数量超过所述水印阈值时提供允许信号。
[0026] 功率管理状态机214具有连接到多个实时客户端(实时客户端A210和实时客户端N 230)的输入和连接到共享资源216的输出。共享资源216可以是例如存储器接口(双倍数据速率物理接口)。
[0027] 在操作中,功率管理器212接收功率事件请求。所述功率事件请求导致由APU 100消耗的功率的中断。例如,功率事件请求可以是使一个或多个共享资源进入低功率状态或将外部存储器部件置于低功率状态下的请求。功率管理器212向多个实时客户端(210和230)提供功率事件请求的深度。功率事件的深度对应于功率事件将持续的时间量。与功率事件请求相关联的每个实时客户端动态地配置与功率事件的深度对应的水印寄存器值。所述实时客户端将与水印寄存器相关联的客户端缓冲器中的条目的数量与所述水印寄存器的值进行比较,以确定功率事件请求是否是可允许的请求。响应于多个实时客户端中的每个实时客户端(210和230)确定功率事件请求是可允许的请求,将允许信号断言到功率管理状态机214。在该示例中,连接到共享资源216的功率管理状态机214启动功率事件的开始。
然而,如果功率管理状态机214没有从与功率事件请求相关联的每个实时客户端接收到允许信号,则功率管理状态机214不允许对应的功率事件开始。
[0028] 每个实时客户端(210和230)响应于所述实时客户端的带宽需求和总体可用系统带宽,而选择性地设置与功率事件请求的深度对应的水印阈值。在一个实施方案中,总系统带宽部分地由最大系统带宽、实时和非实时客户端的总数和互连拓扑动态地确定。实时客户端中的每一个基于所述实时客户端的缓冲器相对于建立的水印阈值的当前状态而向功率管理状态机214提供允许信号或不允许信号。如果缓冲器能够在功率事件的整个持续时间内继续处理信息,则实时客户端A210和实时客户端N 230断言允许信号。如果在对应的功率事件完成之前所选择的水印阈值对应于缓冲器清空(读取)或填充(写入),则相应的实时客户端将不提供允许信号给功率状态机214。因此,当被提供来自与功率事件请求相关联的每个实时客户端的允许信号时,功率状态机214启动功率事件的开始。
[0029] 在另一实施方案中,与SMU 108和功率管理固件112相关联(图1)的功率管理器212启动对与连接到APU 100的每个活动实时客户端相关联的水印阈值的选择和设置。功率管理器212和功率管理固件112可以共同或单独使用,以动态地选择实时客户端中的每一个的水印阈值。或者,可以使用单独的硬件装置接口来设置每个功率事件的水印设置。集成在实时客户端210到230的控制器与功率管理器212之间的硬件装置根据接收到的功率事件请求来动态地设置水印阈值。
[0030] 按照实时客户端和按照功率管理事件处理水印阈值允许功率管理状态机214唯一地处理每个功率管理事件,而不会不必要地牺牲资源带宽和/或引起不期望的等待时间。
[0031] 图3以框图形式示出了根据一些实施方案的与实时客户端缓冲器相关联的水印阈值;图3包括实时写入客户端缓冲器320和实时读取客户端缓冲器350。
[0032] 读取客户端缓冲器320包括读取填充时间322、读取带宽斜坡时间324、读取事件等待时间326和读取水印阈值330。读取填充时间322与在读取客户端缓冲器中占用预定保用带宽所需的时间段相关联。读取带宽斜坡时间324是与达到保用读取带宽相关联的时间量。读取事件等待时间326是与功率管理事件的持续时间相关联的时间。读取水印阈值330限定了功率事件将开始的时间。读取水印阈值330是根据填充时间322、读取带宽斜坡时间324和读取事件等待时间326的总和导出的,限定了在功率管理事件将导致读取客户端缓冲器320下溢之前读取客户端缓冲器320可操作的最大时间量;从而造成由实时客户端提供的服务质量中断。
[0033] 写入客户端缓冲器350包括写入事件等待时间352、写入斜坡时间354和写入水印阈值356。写入事件等待时间352是写入客户端缓冲器在功率管理事件期间达到所需的保用写入带宽所需的时间量。写入斜坡时间354是与达到保用写入带宽相关联的时间量。写入水印阈值356是根据写入事件等待时间352和写入斜坡时间354的总和导出的,限定了在功率管理事件的开始将导致写入客户端缓冲器350上溢之前写入客户端缓冲器350可关于可用带宽操作的最大时间,从而需要使用与所述功率管理事件相关联的共享资源。
[0034] 在操作中,多个客户端耦合到功率管理器。每个实时客户端包括至少一个客户端缓冲器,所述至少一个客户端缓冲器具有用于存储数据的多个条目;以及与每个客户端缓冲器相关联的寄存器,所述与每个客户端缓冲器相关联的寄存器用于存储所述实时客户端的水印阈值。读取客户端缓冲器320和写入客户端缓冲器350的水印寄存器由相应的实时客户端动态配置,以根据功率事件的深度而与多个实时客户端中的每一个的可用带宽容量相关联。针对每个功率管理事件向客户端缓冲器(320和350)提供水印寄存器。读取水印阈值330被动态地配置为确保在读取实时客户端的经评定的功率管理事件期间,读取客户端缓冲器320不会使用可用条目下溢以对存储器进行读取。写入水印寄存器356被动态地配置为确保在写入实时客户端的经评定的功率管理事件期间,写入客户端缓冲器350不会使用条目上溢以对存储器进行写入。与相应客户端缓冲器相关联的逻辑基于客户端缓冲器中的条目的状态来提供信号给功率管理状态机。
[0035] 例如,如果读取客户端缓冲器320中的条目满足和/或超过所提供的水印阈值(将不会导致缓冲器下溢),则与读取客户端缓冲器320相关联的逻辑提供允许信号给功率管理状态机。因此,响应于读取客户端缓冲器320具有足够的数据来避免在功率事件的持续时间内将读取客户端缓冲器320排出到低于水印阈值,实时读取客户端将提供不活动状态的允许信号给功率管理状态机。
[0036] 在另一示例中,如果写入客户端缓冲器350中的条目将不会超过所提供的水印阈值(将不会导致缓冲器上溢),则与写入客户端缓冲器350相关联的逻辑提供允许信号给功率管理状态机。因此,实时客户端基于与功率事件深度信号对应的上溢时间来设置写入客户端缓冲器350的写入水印阈值356。响应于写入客户端缓冲器350在功率事件的持续时间内填充到低于水印阈值,实时写入客户端提供不活动状态的允许信号。
[0037] 在一个示例中,对于每个实时客户端,按照情况并按照SoC的功率管理事件来添加水印寄存器。SoC包括四个显示器、两个相机和四个USB端口。针对每个实时客户端来添加水印寄存器。针对显示控制器添加四个读取水印寄存器。针对相机控制器添加两个写入水印寄存器。针对USB添加四个写入水印寄存器。在一个实施方式中,按照功率管理事件(或存储器再训练事件)来添加单独的水印寄存器。每个客户端检测它们相应的水印阈值的状态,并根据每个缓冲器通过功率管理事件操作的能力来提供允许信号或不允许信号给功率管理状态机。在投入功率管理或存储器再训练事件之前,功率管理状态机必须确认来自每个实时客户端的水印允许状态。
[0038] 读取水印阈值330和写入水印阈值356限定为实时客户端推荐的缓冲级别,以在功率管理事件期间维持优质服务。通过向每个实时客户端的缓冲器提供水印寄存器并在功率管理事件之前动态设置水印阈值,功率管理器能够确保提高SoC的服务质量。按照缓冲器、按照功率管理事件的水印阈值提供了用于确保在功率管理事件和/或存储器再训练事件期间写入客户端缓冲器不会上溢并且读取客户端缓冲器不会下溢的过程。
[0039] 图4以框图形式示出了根据一些实施方案适用于图1的APU的实时客户端和相关联的锁存系统;图图4通常包括客户端控制器402、客户端缓冲器406和锁存器410。
[0040] 客户端控制器402具有用于接收功率管理事件深度的输入。客户端控制器402连接到客户端缓冲器406,从而相应于功率管理事件深度来提供高和低信号给客户端缓冲器406。客户端控制器可以是例如显示控制器、相机控制器、USB控制器、多媒体控制器等。
[0041] 客户端缓冲器406包括水印寄存器416。水印寄存器416从客户端控制器402接收高阈值和低阈值。水印寄存器416限定用于承受功率事件或再训练事件的缓冲器带宽容量。客户端缓冲器406提供第一输出给功率管理状态机155,并提供第二输出。
[0042] 锁存器410从客户端缓冲器406接收第一输入和第二输入。锁存器410提供ALLOW信号给功率管理状态机155。锁存器410是置位-复位锁存器,并且提供当置位时处于高逻辑的活动状态下且当复位时处于低逻辑的不活动状态下的ALLOW信号。
[0043] 在操作中,客户端控制器402接收功率事件深度信号。所述功率事件深度信号部分地通过计算出的与所述功率事件请求相关联的客户端缓冲器406的带宽容量的消耗来确定。功率事件深度信号允许客户端控制器402确定检测到的功率管理事件的持续时间,从而确定在功率管理事件期间维持操作而不停顿所需的缓冲器条目的数量。水印寄存器416针对每个功率事件请求提供高和低水印阈值。锁存器410将ALLOW信号返回给功率状态机155,直到水印寄存器416检测到对应客户端缓冲器的低于低信号和高于高信号中的一者。以这种方式,锁存器410连续地将客户端缓冲器406的状态提供给功率管理状态机155。
[0044] 例如,客户端控制器402确定需要多少缓冲器条目(在读取客户端缓冲器的情况下)或需要多少空闲条目可用(在写入客户端缓冲器的情况下)以使相关联的实时客户端在功率事件期间不会经历由APU提供的服务的中断。功率管理事件越深,则退出等待时间越长,由此客户端缓冲器需要越多条目(接收缓冲器)或需要越多条目可用(写入客户端缓冲器)以维持功率管理事件的深度。每个客户端控制器响应于功率事件深度信号动态地为其自身选择水印阈值。当客户端缓冲器406接收到功率管理事件时,实时客户端控制器402将相应的水印寄存器与客户端缓冲器的当前状态进行比较。如果缓冲器是ABOVE HIGH相应水印阈值和BELOW LOW相应水印阈值中的一者,则取消允许信号,从而触发至少一个共享资源从低功率状态到高功率状态的转换。否则,锁存器410继续提供ALLOW信号给功率管理状态机155。
[0045] 在图4的示例性实施方案,ALLOW信号由锁存器410提供给功率管理状态机155。高和低水印对应于客户端缓冲器接近满和空中的一者。当实时客户端检测到低水印阈值容量时,锁存器410启动功率管理状态机以禁用允许信号,从而触发共享资源从低功率状态到高功率状态的转换。结合锁存器410的高水印和低水印在客户端缓冲器406与锁存器410之间提供滞后,以便在缓冲器正在被动态地排出和填充时可靠地提供ALLOW信号。
[0046] 图5以部分框图和部分电路形式示出了根据一些实施方案适用于图1的APU的功率管理状态机。功率管理状态机500包括实时客户端信号515、实时客户端信号525、实时客户端信号535、掩码信号510、掩码信号520、掩码信号530、一组OR540,以及AND逻辑门550。
[0047] 互连150包括功率管理状态机500。多个实时客户端中的每个实时客户端连接到AND逻辑门550。
[0048] 功率管理器212为相应实时客户端提供活动状态的掩码信号510、520和530。掩码信号510、520和530对应于当实时客户端未链接到与用于当前用例的对应功率管理事件(或存储器再训练事件)相关联的共享资源时的实时客户端的值。
[0049] 在操作中,掩码信号510、520和530对应于在功率事件请求的持续时间内与实时客户端相关联的共享资源的分配的值。例如,掩码信号对应于在功率事件请求的持续时间内与实时客户端相关联的共享资源的分配的值。因此,如果掩码信号是高的,则相应的ALLOW信号是高的(因为实时客户端对相应的功率事件是“不关心”的。如果掩码信号510、520和/或530低于相应的OR门540,则输出取决于通过将实时缓冲器的状态与水印阈值进行比较而发送的ALLOW信号的状态。为了提供POWER EVENT START信号,所有未掩码的实时客户端必须向AND门550报告ALLOW条件。ALLOW信号被提供为有线信号和虚拟有线信号中的至少一者。
[0050] 在一个实施方案中,掩码信号510、520和530被实现为权重因子或值。权重因子针对所述功率事件请求信号而选择性对每个实时客户端的功耗分配进行优先级排序。实现权重因子使得功率管理器状态机能够堆实时客户端的允许信号或不允许信号(或不存在允许信号)的显著性进行优先级排序。
[0051] 在另一实施方案中,当实时客户端缓冲器不与功率事件请求信号相关联时,功率管理器对实时客户端缓冲器进行掩蔽。功率管理器使掩码信号510、520和530能够掩蔽一个或多个实时客户端的允许信号,并且响应于经断言的被掩蔽的允许信号,功率管理状态机绕过来自所述实时客户端的对相应功率事件请求的响应。因此,功率管理状态机响应于从提供实时客户端信号515、525和535的所有启动的实时客户端接收到允许信号,而启动功率事件的开始。
[0052] 图6示出了可以由图5的功率管理状态机使用的方法600的流程图。在框602处,功率管理器接收功率事件请求。在框604处,功率管理器确定与功率事件请求相关联的每个客户端的水印阈值。在框606处,对于每个客户端,将客户端缓冲器中的条目的数量与相应的水印阈值(与水印寄存器相关联)进行比较,以确定是否可以继续允许功率事件。在框608处,确定功率管理状态机是否检测到允许信号。如果功率管理状态机检测到允许信号,则过程继续到框612。如果功率管理状态机未检测到允许信号,则过程继续到框610。在框610处,确定功率管理状态机是否检测到不允许信号。如果功率管理状态机未检测到不允许信号,则过程结束。如果功率管理状态机确实检测到不允许信号,则过程继续到框614。在框612处,功率管理状态机断言高信号并启动功率管理状态机的开始。响应于检测到不允许信号,在框614处,功率管理状态机触发至少一个共享资源从低功率状态到高功率状态的转换。功率管理器在框616处禁用功率事件请求的开始。该过程在结束框处结束。
[0053] APU 100或其任何部件可以用硬件和软件的各种组合来实现。图6所示的这些部件或方法中的一些或全部可以由存储在计算机可读存储介质中并且由至少一个处理器执行的指令来管理。图6所示的操作中的每个操作可以对应于存储在非暂时性计算机存储器或计算机可读存储介质中的指令。在各种实施方式中,非暂时性计算机可读存储介质包括磁盘或光盘存储装置、诸如闪存等固态存储装置,或一个或多个其他非易失性存储器装置。存储在非暂时性计算机可读存储介质上的计算机可读指令可以是源代码、汇编语言代码、目标代码,或由一个或多个处理器解译和/或可执行的其他指令格式。
[0054] 此外,图1的APU 100或其任何部分可以由数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,所述数据库或其他数据结构可以由程序读取并直接或间接地用于制造集成电路。例如,该数据结构可以是以诸如Verilog或VHDL等高级设计语言(HDL)对硬件功能性的行为级描述或寄存器传送级(RTL)描述。该描述可以由合成工具读取,所述合成工具可以合成所述描述以产生网表,所述网表包括来自合成库的门的列表。网表包括一组门,所述一组门也表示包括集成电路的硬件的功能性。然后网表可以经放置和布线以产生数据集,所述数据集描述要应用于掩模的几何形状。然后可以在各种半导体制造步骤中使用所述掩模来生产集成电路。或者,计算机可访问存储介质上的数据库可以根据需要是网表(具有或不具有合成库)或数据集,或图形数据系统(GDS)II数据。
[0055] 虽然已经描述了特定实施方案,但是对这些实施方案的各种修改对于本领域技术人员来说将是显而易见的。存储器控制器500可以与DDRx存储器之外的其他类型的存储器接口连接,所述其他类型的存储器为诸如高带宽存储器(HBM)、RAMbus DRAM(RDRAM)等。
[0056] 因此,所附权利要求旨在覆盖落入所公开实施方案的范围内的对所公开实施方案的所有修改。
相关专利内容
标题 发布/更新时间 阅读量
缓冲器 2020-05-11 693
缓冲器 2020-05-11 527
缓冲器 2020-05-11 682
缓冲器 2020-05-12 138
缓冲器 2020-05-12 369
缓冲器 2020-05-11 157
缓冲器 2020-05-11 833
缓冲器 2020-05-13 82
缓冲器 2020-05-12 156
一种缓冲器 2020-05-11 643
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈