经由共享存储器结构的仲裁存储器访问.pdf

上传人:li****8 文档编号:4561346 上传时间:2018-10-20 格式:PDF 页数:44 大小:1.95MB
返回 下载 相关 举报
摘要
申请专利号:

CN201480000991.1

申请日:

2014.01.06

公开号:

CN104321758A

公开日:

2015.01.28

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/14申请日:20140106|||公开

IPC分类号:

G06F13/14; G06F12/00

主分类号:

G06F13/14

申请人:

英特尔公司

发明人:

D·F·卡特; B·范宁; R·纳加拉简; J·S·尼尔; D·伯恩斯泰因; D·利马耶; I·T·肖瓦纳斯; R·艾尔

地址:

美国加利福尼亚州

优先权:

2013.01.17 US 13/743795

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

周学斌;姜甜

PDF下载: PDF下载
内容摘要

在一个实施例中,共享存储器结构被配置为从多个代理接收存储器请求,其中至少某些请求具有相关联的期限值,以指示在完成存储器请求之前的最大延迟。响应于该请求,该结构用于至少部分地基于该期限值来在请求之间进行仲裁。其他实施例被描述并要求保护。

权利要求书

权利要求书
1.  一种装置,包括:
结构装置,其耦合在半导体设备的多个知识产权(IP)块和存储器控制器之间,所述结构装置用于从所述多个IP块接收存储器请求,至少某些存储器请求具有与其相关联的期限值,以指示在完成所述存储器请求之前的最大延迟,其中所述结构装置用于至少部分地基于所述至少某些存储器请求的期限值来在所述多个存储器请求之间进行仲裁。

2.  根据权利要求1的装置,其中所述结构装置包括:
准许仲裁器装置,其用于接收所述存储器请求并选择所述存储器请求之一来提供至存储器调度器仲裁器装置;以及
所述存储器调度器仲裁器装置耦合于所述准许仲裁器装置,用于从多个存储器请求选择第一存储器请求来提供至所述存储器控制器。

3.  根据权利要求2的装置,其中所述准许仲裁器装置包括:第一仲裁器,用以从所述多个IP块的第一子集接收存储器请求并且从所述多个IP块的第二子集接收所述存储器请求的第一部分,以及第二仲裁器,用以从所述多个IP块的第二子集接收所述存储器请求的第二部分。

4.  根据权利要求3的装置,其中所述多个IP块的第二子集包括延迟敏感设备。

5.  根据权利要求4的装置,其中所述第二仲裁器进一步用于接收期限值,其中从所述多个IP块的第二子集接收所述存储器请求的第二部分中的每个。

6.  根据权利要求2的装置,其中所述准许仲裁器装置可控制为操作于第一模式和第二模式中,在所述第一模式中,在来自第一仲裁器的存储器请求内选择来自第二仲裁器的存储器请求,以及在所述第二模式中,在选择来自第二仲裁器的N个存储器请求之后选择来自第一仲裁器的M个存储器请求,其中从配置寄存器获得M和N。

7.  根据权利要求3的装置,其中所述准许仲裁器装置进一步包括第三仲裁器,其耦合于第一仲裁器和第二仲裁器的输出并在该第一和第二仲裁器的输出之间进行仲裁。

8.  根据权利要求2的装置,其中所述存储器调度器仲裁器装置用于至少部 分地基于所述存储器请求的地址信息来重排序无序的存储器请求。

9.  根据权利要求8的装置,其中所述存储器调度器仲裁器装置用于至少部分地基于与存储于结构的计分板的条目中的存储器请求相关联的页面命中状态信息来重排序无序的存储器请求。

10.  根据权利要求1的装置,进一步包括耦合于第一IP块的接口装置,所述接口装置包括期限装置,用于基于针对所述第一IP块的第一存储器请求的延迟需求和从结构提供至所述第一IP块的全局定时器值来生成所述期限值。

11.  根据权利要求8的装置,进一步包括期限检查器,用以从所述第一IP块接收所述期限值并且基于所述期限值和全局定时器的值来将所述第一存储器请求路由至第一仲裁器或第二仲裁器。

12.  根据权利要求1的装置,进一步包括资源分配装置,用于针对所述多个IP块中的每一个,在所述结构装置的多个共享资源中保留虚拟条目。

13.  根据权利要求12的装置,其中所述资源分配装置进一步用于将所述多个IP块中的每一个限制为预定数量的多个共享资源。

14.  根据权利要求12的装置,其中所述多个共享资源包括清除池,所述清除池具有多个条目,每一个条目用于存储写请求,其中所述资源分配装置用于将所述多个条目限制于清除限制,并且其中所述准许仲裁器装置用于当所述清除池的大小等于所述清除限制时阻止进入的写请求。

15.  一种方法,包括:
从与片上系统(SoC)的共享存储器结构耦合的多个设备中的设备接收存储器请求,所述存储器请求与期限值相关联;
响应于所述期限值小于延迟阈值,将所述存储器请求转发至所述共享存储器结构的第一仲裁器;
至少部分地基于所述多个设备的年龄值来在所述第一仲裁器中执行包括所述存储器请求的第一多个存储器请求之间的仲裁,并且将所述第一多个存储器请求中的胜者存储器请求转发至所述共享存储器结构的最终仲裁器;并且
在所述最终仲裁器中执行最终仲裁,以选择最终存储器请求以便存储在所述共享存储器结构的计分板中。

16.  根据权利要求15的方法,进一步包括响应于所述期限值大于所述延迟阈值来将所述存储器请求转发至第二仲裁器,至少部分地基于所述多个设备的 年龄值来在所述第二仲裁器中执行包括所述存储器请求的第二多个存储器请求之间的仲裁,并且将所述第二多个存储器请求中的胜者存储器请求转发至所述最终仲裁器。

17.  根据权利要求15的方法,进一步包括确定与所述最终存储器请求相关联的设备的权重值是否等于预定值,并且如果是这样,则将所述权重值更新为配置值并且更新用于所述多个设备中的其他设备的年龄值。

18.  根据权利要求17的方法,进一步包括当与所述最终存储器请求相关联的设备的权重值不等于所述预定值时,递减与所述最终存储器请求相关联的设备的权重值。

19.  根据权利要求15的方法,进一步包括:
经由所述共享存储器结构的存储器调度器从所述计分板选择存储器请求,以用于递送至存储器控制器;并且
如果与所选择的存储器请求相关联的设备的权重值等于预定值,则从所述存储器调度器内的进一步仲裁屏蔽所述设备。

20.  根据权利要求19的方法,进一步包括确定所述多个设备中的每一个的权重值是否等于所述预定义值,并且如果是这样,则将所述多个设备中的每一个的权重值更新为配置值。

21.  一种片上系统,包括:
多个核,均用于独立地执行指令;
多个图形引擎,均用于独立地执行图形操作;
对应于第一延迟敏感设备的第一内容渲染设备;
对应于第二延迟敏感设备的第二内容渲染设备;以及
结构装置,其耦合于所述多个核、所述多个图形引擎、所述第一和第二内容渲染设备和存储器控制器装置,所述结构装置从所述多个核、所述多个图形引擎和所述第一和第二内容渲染设备接收存储器请求,其中来自所述第一和第二内容渲染设备的存储器请求具有与其相关联的期限值,以指示在完成所述存储器请求之前的最大延迟,所述结构装置用于至少部分地基于来自所述第一和第二内容渲染设备的存储器请求的所述期限值来在所述存储器请求之间进行仲裁。

22.  根据权利要求21的系统,其中所述结构装置进一步包括:
准许仲裁器装置,其用于接收所述存储器请求并选择所述存储器请求之一来提供至存储器调度器仲裁器装置;以及
所述存储器调度器仲裁器装置耦合于所述准许仲裁器装置,用于从多个存储器请求选择第一存储器请求来提供至所述存储器控制器。

23.  根据权利要求22的系统,其中所述准许仲裁器装置包括:第一仲裁器,用以从所述多个核和所述多个图形引擎接收所述存储器请求并且从所述第一和第二内容渲染设备有条件地接收至少某些存储器请求,以及第二仲裁器,用以从所述第一和第二内容渲染设备接收所述存储器请求。

24.  根据权利要求22的系统,其中所述存储器调度器仲裁器装置用于至少部分地基于所述存储器请求的地址信息和与存储于结构的计分板的条目中的存储器请求相关联的页面命中状态信息来重排序至少某些无序的存储器请求。

25.  根据权利要求23的系统,进一步包括期限检查器,用以从所述第一内容渲染设备接收与第一存储器请求相关联的期限值,并且基于所述期限值和全局定时器的值来将所述第一存储器请求路由至所述第一仲裁器或所述第二仲裁器。

26.  一种通信设备,其被布置为执行权利要求15至20中的任一项的方法。

27.  至少一个机器可读介质,其包括多个指令,所述多个指令响应于在计算设备上被执行,使所述计算设备执行根据权利要求15至20中的任一项的方法。

28.  一种用于处理指令的装置,其被配置为执行权利要求15至20中的任一项的方法。

29.  一种装置,包括用于执行权利要求15至20中的任一项的方法的装置。

说明书

说明书经由共享存储器结构的仲裁存储器访问
背景技术
在具有多个设备的多个计算机系统中,仲裁被执行以提供对诸如共享存储器的共享资源的访问。不同类型的仲裁机制被提供以使能不同的代理或请求者之间的仲裁。某些系统使用固定优先级仲裁系统,其中不同的代理被分配特定的优先级。然而,这可导致使用中的不公平性以及一个或多个代理的获得对共享资源访问的能力的匮乏。其他仲裁系统提供基于循环法(round robin)的途径,以分配对共享资源的访问。
在任一种事件中,被执行的仲裁未考虑关于共享资源的因素,诸如其功率状态。由此,许可访问共享资源的请求使该资源退出低功率状态,尽管设备不需要对共享资源的如此立即的访问。因此,当前仲裁系统受各种缺点的影响。
附图说明
图1为根据本发明的实施例的共享存储器结构的一部分的框图。
图2为根据本发明的实施例的准许仲裁器的进一步细节的框图。
图3为根据本发明的一个实施例的用于在确定仲裁胜者时为代理更新年龄值的方法的流程图。
图4为根据本发明的实施例的准许仲裁器状态机的框图。
图5为根据本发明的实施例的用于在准许仲裁器中执行第一级仲裁的方法的流程图。
图6为根据本发明的实施例的资源分配逻辑的一部分的框图。
图7为根据本发明的实施例的计分板索引生成逻辑的框图。
图8为根据本发明的实施例的用于调度器仲裁器的状态机的框图。
图9为根据本发明的实施例的用于执行存储器调度的方法的流程图。
图10为根据本发明的实施例的SoC的框图。
图11为根据本发明的实施例的呈现于计算机系统中的组件的框图。
具体实施方式
在各种实施例中,共享存储器结构将多个独立设备(本文也称为代理)耦合至共享存储器(例如,经由介入的存储器控制器)。在许多实施例,共享存储器结构为单管芯半导体设备的互连构造,其包括不同类型的知识产权(IP)逻辑块。共享存储器结构被配置为能够实现与用于时间先决等时(time critical isochronous)设备的服务质量(QoS)需求的兼容,同时还提供用于非等时(non-isochronous)设备(本文也称为尽力而为(best effort)设备)的存储器带宽比例划分。
以这种方式,存储器带宽的可靠且可预测的分配和调度出现以支持连接于共享存储器结构的多个设备和设备类型。通过在公共共享存储器结构(而不是存储器控制器或其他非结构电路)中包括QoS功能,由于设计独立于存储器技术,设计可跨越多个半导体设备(诸如片上系统(SoC))被更简单地重复使用。
由此,实施例在共享存储器结构中执行资源分配、带宽分派和时间感知QoS属性,以提供可预测且可靠的存储器带宽和延迟,从而满足连接于该结构的设备的需求。
服务类种类被分配至耦合于共享存储器结构的每个设备。在一个实施例中,该分配可利用结构的配置寄存器来标识。多个服务类可由该结构支持。尽管本发明的范围不限于这点,但在一个实施例中,两个服务类的设备可被呈现,包括等时服务类种类,其用于延迟敏感设备,以及尽力而为服务类种类,其用于可容许更长延迟来服务其对存储器的请求的设备。尽管本发明的范围不限于这点,但在某些实施例中,延迟敏感设备包括内容渲染设备,诸如音频或视频播放器、照相机设备等,而更低优先级设备包括处理器核、图形处理单元等。
以请求期限的形式,将时间从等时设备传送至该结构,以指示该结构对于完成对存储器的请求的所需要的延迟。为使能同步,结构将全局定时器广播至所有等时请求代理。该全局定时器在来自结构的输出上被连续驱动,使得其可用于由等时设备进行采样。响应于该时间值,代理确定用于完成请求的延迟需求,并将该延迟值增加至全局定时器值,以形成用于请求的期限。作为示例,用于读取的延迟可通过代理由代理的数据缓冲器的数据量和缓冲器的流失率来确定。如果代理每250纳秒(ns)消耗1个数据缓存线并且在缓冲器中具有8个数据缓存线,则在缓冲器为空之前,针对新的请求的所需要的期限将为 8×250ns或2微秒(us)。基于该传送的延迟值或期限值,该结构可基于存储器当前功率状态和针对结构中未决的其他未调度存储器请求的所需延迟的知识做出更好的调度决定。该期限通信可改进存储器带宽并且还节省了系统功率。
请求期限的使用为该结构提供了用于来自等时设备的每个请求的延迟信息。在该结构内编程的配置寄存器为该结构提供了关于存储器配置的信息,诸如存储器退出低功率(例如,自刷新)状态需要的延迟。结构还通过(例如,以状态通道的形式)发送指示至存储器控制器来控制存储器控制器何时使所附着的存储器进入和退出自刷新状态。该结构通过评估针对所有未决的存储器请求的延迟需求来确定存储器何时应当进入和退出自刷新。因为该结构具有用于所有未决的存储器请求所需要的延迟和退出自刷新所需要的延迟的知识,相对于现有技术,对存储器的功率状态转变的更好的管理可能产生附加的节能。
实施例还可在存储器带宽中通过允许存储器请求被无序调度来提供效率;然而这可能产生对于某些请求的较长的调度延迟。为解决此类顾虑,该结构将优先级级别分配至每个等时存储器请求,例如,高或低优先级。当调度高优先级等时请求时,允许的无序调度的量小于当调度尽力而为或低优先级等时请求时可接受的量。限制针对高优先级请求的无序调度的量被完成,以便保证请求延迟需求被满足。因为请求优先级是根据请求的期限来确定的,所以该结构可紧接在请求被调度之后确定其他未决的请求的什么优先级级别是用于等时设备的。利用期限方法,所有未决的请求的优先级级别仅当全局定时器递增时改变。
实施例还可改进复杂QoS存储器调度算法跨多个SoC实现方式的便携性和重复使用,因为智能存储器调度逻辑被结合于该结构中,同时技术特定的存储器控制器逻辑可在存储器控制器内被实现。
实施例还可将反匮乏(anti-starvation)算法结合到该结构的多个仲裁点中。在一个实施例中,该反匮乏算法包括由准许仲裁器使用的加权的基于年龄的仲裁方法和存储器调度器和请求跟踪器中所使用的最老可用调度队列。此外,请求权重可被用于在结构中的仲裁点处的不同的优先级级别之间切换并用于从调度读请求切换至写请求,这与固定优先级仲裁相反,其中来自高优先级等时设备的请求始终获胜。
在一个实施例中,共享存储器结构包括两个仲裁点,其被用于调度正被发送至存储器控制器的请求。第一仲裁点被用于准许从设备到共享存储器结构中 的请求,并被称为准许仲裁器。第二仲裁点被用于调度从共享存储器结构发送至存储器控制器的请求并且称为调度器仲裁器。
连接于共享存储器结构的每个设备具有请求接口,其连接在设备和结构之间。请求接口提供关于可被用于QoS存储器调度的请求的信息。在一个实施例中,该信息包括存储器地址,顺序ID字段和操作码字段。对于等时设备,提供称为请求期限字段的附加字段以指示完成请求所需要的所需延迟。注意的是,在SoC的某些实现方式中,存储器结构接口可连接于允许多个设备共享公共请求接口的其他结构或开关。
现参见图1,示出了根据本发明的实施例的共享存储器结构的一部分的框图。如图1中所示,共享存储器结构100被耦合在多个代理1150-1153(统称为代理115)和存储器控制器170之间。注意,在某些实施例中,一个以上的存储器控制器被呈现。当然,尽管为易于说明而未示出,要理解的是,存储器控制器耦合于系统存储器,诸如动态随机存取存储器(DRAM)或其他系统存储器。
在图1所示的实施例中,不同的类型的代理耦合于共享存储器结构100。特别地,不同的代理包括第一服务类(COS)代理类型,即,所谓的等时代理,以及第二服务类代理类型,即所谓的尽力而为COS代理。如所见的,每个代理115可将请求信息传送至准许仲裁器120。进而,准许仲裁器120可将对应的控制类型信息返回至该代理。此外,等时代理(即,图1的实施例中的代理1151和1153)进一步包括附加的链路,以传送请求期限信息至准许仲裁器120。为此,这些代理进一步被配置为从全局定时器150接收全局定时信息,还耦合于准许仲裁器120和调度器仲裁器130两者。
在图1的实施例中,准许仲裁器120可被配置为从代理115接收进入请求(以及来自等时代理的请求期限信息),并选择合适的请求,以准许调度器仲裁器130。为辅助其仲裁过程,准许仲裁器120接收来自一组配置寄存器160的配置信息,进一步耦合于调度器仲裁器130。此外,请求和一致性跟踪器140可耦合于仲裁器120和130。总体上,跟踪器140可包括多个计分板142、数据缓冲器144和对应的地址标签存储装置145、控制队列146和其他资源,诸如各种缓冲器、逻辑,诸如资源分配逻辑148,等等。在某些实现方式中,标签阵列和数据缓冲器可位于跟踪器以外的任何地方。尽管在图1的实施例中以这种高级别来示出,但理解的是,本发明的范围不限于这点。
共享存储器结构可包括某些有限资源,其在来自请求代理的请求可由准许仲裁器许可之前被首先分配。这些资源包括内部数据缓冲器中的可用条目以及地址标签存储装置。其他有限资源包括存储器调度器中的可用条目和请求跟踪器计分板。资源中存在一对一的对应关系,用于该结构的内部数据缓冲器、标签阵列和存储器调度器计分板。在一个实施例中,这些资源被分配至存储器的预定区域(例如,缓存线宽度,诸如64字节)。每个活动请求在请求和一致性跟踪器中还被分配其自身的条目,但对存储器中的同一区域的多个请求共享数据缓冲器、标签阵列和存储器调度器计分板中的相同条目。尽管有可能使多于1个请求分配至同一数据缓冲器、标签阵列和调度器计分板条目,但仅1个读请求被调度至存储器控制器,用于在请求和一致性跟踪器中的所有未完成的读请求。
用于所有设备的请求接口连接至该结构的准许仲裁器。等时设备使用请求总线的期限字段,以对该结构指示完成请求所需要的延迟。该结构发送全局定时器值至附着于该结构的所有等时设备。对于要发送至该该结构的每个请求,等时设备例如在期限逻辑中确定完成请求所需要的所需延迟并将该值增加至全局定时器的当前值,以便创建请求期限。不同的方法可由不同的等时设备使用,以确定对于请求所需要的延迟,但所有等时设备利用请求接口的期限字段对该结构指示请求延迟。
在一个实施例中,准许仲裁器具有两个优先级级别。仲裁器中存在高优先级路径,其被用于紧急的等时请求。如果请求代理被配置为等时代理并且请求的期限字段小于存储于指定了阈值(被称为紧急阈值)的配置寄存器的值,则请求被考虑为紧急。准许仲裁器还具有低优先级路径,其被用于尽力而为请求并用于未被考虑为紧急的等时请求。仲裁的最终级别是利用优先级选择器来完成的,该优先级选择器在高优先级仲裁的胜者和低优先级仲裁的胜者之间进行选择。
在一个实施例中,准许仲裁器最终选择器具有两个模式,其可利用配置寄存器来选择。第一模式为固定优先级模式,其中,假设至少一个高优先级请求被呈现于准许仲裁器的输入处,选择器在选择低优先级仲裁路径的胜者之前选择高优先级仲裁路径的胜者。最终选择器的第二模式为加权循环法模式,其中最终选择器在N个数量的高优先级请求被许可之后,在许可高优先级路径与许 可低优先级路径之间进行切换。然后选择器在切换回到许可来自高优先级路径的请求之前,许可来自低优先级路径的胜者的M个数量的低优先级请求。在一个实施例中,N和M的值是利用配置寄存器所指定的。
现参见图2,示出了根据本发明的实施例的准许仲裁器的进一步细节的框图。如图2中所示,仲裁器120从请求代理接收进入的请求。在该图示中,请求代理1150和1151为非等时或尽力而为代理,而代理1152和1153为等时代理。注意,等时代理可包括或被耦合于期限确定逻辑118,其被用于计算用于请求的所需要的延迟。在至少某些代理为第三方IP块的实施例中,该逻辑可被实现于将代理耦合至共享存储器结构的包装器逻辑或接口逻辑。
在示出的实施例中,准许仲裁器120包括第一基于年龄的仲裁器122和第二基于年龄的仲裁器124,其分别对应于低和高优先级的基于年龄的仲裁器。由此如所见的,来自所有代理115的请求被提供至第一仲裁器122,而只有来自等时代理1152和1153的请求被提供至第二仲裁器124。为确定来自等时代理之一的特定请求是否具有紧急的状态,一对期限检查器逻辑1210和121n均被耦合,以接收来自这些等时代理中对应的一个等时代理的请求,以及来自全局定时器150的全局定时信息。基于由代理和全局定时信息提供的期限信息的比较,可以将用于对应请求的紧急状态的指示提供至第二仲裁器124。
在操作中,仲裁器122和124操作为从进入请求的集合中选择仲裁胜者。在示出的实施例中,此确定至少部分地基于来自年龄存储装置126的信息,该年龄存储装置126存储用于每个代理的年龄值。来自每个仲裁器的对应胜者可被耦合于优先级仲裁器选择器125,其基于操作模式选择对应请求,以提供至调度器仲裁器130(为易于在图2中图示而未示出)。为此,选择器125可至少部分地基于优先级存储装置129中的信息来选择用于对调度器仲裁器的许可的请求。尽管在图2的实施例中以此高级别来示出,但理解的是,本发明的范围不限于这点。
加权的基于年龄的仲裁细节
由准许仲裁器实现的基于年龄的算法是这样的,使得自从上次被仲裁器许可以来已经等待最长久的请求代理将被给予最高优先级级别。一旦代理已经接收到最高优先级级别,用于该代理的优先级级别就将不改变,除非该代理已经被仲裁器所许可。以这种方式,利用循环法仲裁所通常发现的匮乏问题可通过 保证用于请求代理的优先级级别可仅在优先级级别中增加,直到该请求代理已被仲裁器所许可来避免。
准许仲裁器还虑及要分配至所有请求代理的代理权重。权重被用于分配用于每个请求代理的请求带宽的百分比。在一个实施例中,经由存储于代理权重配置寄存器的值为每个代理指定权重。在一个实施例中,分配至代理的请求带宽的百分比等于由用于所有代理的权重的总和除以代理权重值。
加权的基于年龄的算法
准许仲裁器加权的基于年龄的算法是基于当请求代理最后一次由仲裁器许可时的相对年龄。对于连接至准许仲裁器的每个请求代理,存在一个实例化的年龄计数器和一个实例化的权重计数器。准许仲裁器中的高优先级和低优先级仲裁路径为连接于准许仲裁器的代理共享公共年龄和权重计数器。在选择最终仲裁胜者之后,请求代理的年龄和权重寄存器的更新由最终选择器(即,优先级仲裁器选择器125)来确定。
用于所有请求代理的年龄寄存器(例如,年龄存储装置126)响应于接收对准许仲裁器的复位输入而首先被初始化。当复位断言时,年龄寄存器被初始化至独特值,其处于从0开始并且结束于值N-1的范围内,其中N的值等于连接于准许仲裁器的请求接口的数量。
在任何请求被请求代理断言之前,代理权重计数器(例如,权重存储装置128)根据该结构的代理权重配置寄存器的编程值来被初始化。一但权重计数器被初始化,用于代理的计数器对于为该代理所许可的每个请求递减1。一旦代理的权重计数器达到0时并且如果代理被准许仲裁器再次许可,则计数器利用在配置寄存器中针对该代理的权重所编程的值来重新加载。
在一个实施例中,执行于第一和第二仲裁器122和124中的基于年龄的仲裁方法使用请求位向量(每个仲裁器具有其自身的向量),以确定仲裁的胜者。当针对该代理断言请求时,仲裁器将用于请求代理的年龄值用作请求的优先级级别。用于仲裁器的优先级级别以及因此位向量宽度的范围是从0到N-1。基于年龄的算法保证用于所有请求代理的年龄值始终是独特的,并且因此每次仲裁始终仅有一个胜者。
当用于请求仲裁的胜者的权重计数器已达到0时,仲裁器更新用于所有代理的年龄寄存器。在一个实施例中,用于所有代理的年龄寄存器根据如下规则 来更新,这些规则保证了用于该代理的年龄值始终为独特值。
规则1:当代理的年龄等于仲裁的胜者的年龄时,用于该代理的年龄寄存器被设置为0,以指示最年轻的请求年龄或最低优先级。
规则2:当代理的年龄小于仲裁的胜者时,代理的年龄寄存器递增1。
规则3:当代理的年龄大于仲裁的胜者时,代理的年龄寄存器不改变。
现参见图3,示出了用于在确定仲裁胜者时更新用于代理的年龄值的方法的流程图,其可被执行以当胜者的权重等于0时更新年龄值。如所见的,方法200可由优先级仲裁器选择器所执行,其开始于确定代理的年龄值是否等于胜者值(菱形210)。如果是这样,则控制传递至框215,其中用于该获胜代理的年龄值可被更新为最低优先级级别,其在一个实施例中可等于0。从框215和菱形210两者,控制传递至菱形220,其中可确定年龄值是否小于胜者值(即,对应于代理的年龄)。如果是这样,则控制传递至框225,其中代理的年龄值可被更新,例如,递增。如果这些条件都没有发生,则代理的年龄大于仲裁的胜者,并且因此用于此特定代理的年龄值不改变。注意,可在胜者被选择时在每个仲裁回合的结尾处对每个代理执行方法200。尽管在图3的实施例中以此高级别来示出,但理解的是,本发明的范围不限于这点。
现参见图4,示出了根据本发明的实施例的准许仲裁器状态机的框图。如图4中所示的,状态机250可呈现于图1的准许仲裁器120内,其首先从复位断言进入初始化(INIT)状态255。从该状态,控制传递至活动状态260,其中只要没有接收到请求,该状态保持。当请求被接收到并且被许可的代理具有权重0时,控制传递至更新年龄状态270,其中年龄存储装置被更新并且用于仲裁胜者的权重计数器被重新加载为(例如,从配置寄存器所获得的)预定值。然后控制传递至活动状态260、递减代理权重状态280之一或保持在更新年龄状态270,这取决于附加的请求是否存在以及被许可代理的权重的值。类似地,在递减代理权重状态280,胜者仲裁权重计数器被递减。但这里不执行权重计数器重新加载。尽管图4中以此高级别来示出,但理解的是,本发明的范围不限于这点。
表1提供了根据本发明的一个实施例的准许体系结构的每个状态的描述。
表1

现参见图5,示出了根据本发明的实施例用于在准许仲裁器中执行第一级仲裁的方法的流程图。如图5中所示,方法300可被执行于准许仲裁器内,既用于在进入的存储器请求间执行仲裁,还用于基于仲裁来更新各种年龄和权重值。如图5所见,方法300可开始于从耦合于该结构的设备接收存储器请求(框310)。更特别地,为说明来自延迟敏感设备的与基于期限的请求有关的操作,假设该存储器请求包括期限值或与期限值相关联并且因此从等时或延迟敏感设备来提供。如一个这样的示例,该延迟敏感设备为媒体播放器。如所见的,控制传递至菱形315,其中可确定期限值是否大于延迟阈值。在一个实施例中,该延迟阈值为从请求被接收的时间直到其被完成的最小延迟(例如,通过将所请求数据的提供返回为针对写请求的写完成的请求设备提供)。注意,期限值在一个实施例中是请求设备可容许处理存储器请求的最大延迟。
仍参考图5,如果确定期限值大于延迟阈值,则控制传递至框320b,其中存储器请求被馈送至低优先级仲裁器。否则控制传递至框320a,其中存储器请求被馈送至高优先级仲裁器。
仍参考图5,注意,并行路径的出现使得在框325(块325a和325b)处,仲裁被执行于对应的仲裁器中,该仲裁器基于与用于提供请求至该对应仲裁器的设备的年龄值相关联的位向量。接下来,在框330(块330a和330b)处,获胜存储器请求被馈送至最终仲裁器。然后在框335处,最终仲裁被执行以选择胜者存储器请求。根据针对该最终仲裁器的配置模式,胜者请求可仅选择自高优先级仲裁器或在高优先级和低优先级路径之间的加权可发生。因此,此时获胜存储器请求被馈送至存储器调度器计分板,在那里其可被存储于条目中以因此使能存储器调度器仲裁器中的仲裁,从而考虑该存储器请求。
仍参考图5,各种更新操作可进一步响应于由最终仲裁器选择胜者而执行。具体地,在菱形340处可确定胜者代理的权重值是否等于0。如果是这样,则控制传递至框345,其中该权重值可被更新为其配置值,例如,存储于共享存储器结构的配置寄存器中的配置值。控制接下来传递至框350,其中用于所有代理的年龄值可被更新(框350)。为此,所有非获胜代理可使其年龄值递增,而获胜代理可使其年龄值被设置为最低优先级值,例如0。如果相反在菱形340确定胜者代理的权重不是0,则控制传递至框355,其中胜者代理的权重值被递减。尽管图5的实施例中以该高级别来示出,但理解的是,本发明的范围不限于这点。
共享资源分配的共享存储器结构
存储器结构包括在结构内虑及共享资源的公平分配的逻辑,例如,图1的资源分配逻辑148。在一个实施例中,这些共享资源为结构的内部数据缓冲器、地址标签存储装置和请求跟踪器计分板。由于没有用于任何请求代理的专用资源,机构可限制在结构中对于每个代理未决的未完成的请求的数量,同时还允许例如通过在这些共享资源中保留虚拟条目来为代理保留条目。结构虑及代理限制的规范,以防止任一个请求代理用尽结构的所有可用共享资源。
一部分存储器调度算法应对最小化针对存储器技术的由读至写的周转时间的性能影响。为了最小化存储器调度器在调度读请求到调度写请求之间进行切换的次数,清除池(flush pool)被用于将请求排队。清除池允许将存储器定为目标的写请求在存储器结构中积累被直到足够的写请求已被接收,以允许该结构的存储器调度器将写请求作为一连串背对背请求发送至存储器控制器。为了防止结构中所有可用资源被清除池用尽,可指定清除限制。当被指定时,清除限制使结构在准许仲裁器处阻止来自所有代理的新的写请求,直到清除池中条 目的数量小于针对该清除池所编程的值。
用于写请求的存储器结构清除池
当从请求代理接收写请求时,该结构将写数据从请求代理传输至内部数据缓冲器。一旦新的数据被写入结构的内部数据缓冲器中并且从代理的角度回收请求,缓冲器条目被认为是处于“清除池”中。对于一致性存储器通信量而言,该结构可从请求代理接收嗅探请求。嗅探请求可以是对存储器的读或写请求。当该结构从请求代理接收嗅探读或写请求时,其发送嗅探请求至耦合于该结构的所有缓存代理。缓存代理将响应于在其缓存中命中的嗅探请求并将针对已由缓存代理所修改的缓存线返回写回(WB)数据。WB数据然后被写入该结构的内部数据缓冲器中并然后被认为是被包括于将存储器定为目标的写请求的清除池中。当清除池中条目的数量达到为清除限制所编程的值时,新的写请求,例如,如通过编码清求操作码字段所确定的写请求,在准许仲裁器处被阻止。
存储器结构保留和限制
存储器结构允许利用代理保留配置寄存器来针对任何代理指定保留。利用这些配置寄存器,用户可指定存储器结构中条目的数量以针对每个代理进行保留。用于代理的保留条目是分配至代理的第一条目和将针对代理所回收的最后条目。为了确定代理的保留条目是正被分配还是回收,每个代理具有请求计数器,其与配置寄存器中指定的值相比较。如果请求计数器中的值小于或等于配置寄存器中的值,则代理的保留条目正在被使用。
在针对请求代理分配或释放保留条目时,用于为代理提供保留条目的机构改变满阈值限制。最初,通过从计分板中的条目总数减去用于所有代理的保留条目总数(例如,如由配置寄存器所指定的)来计算用于所有代理的满阈值。在保留条目被分配至代理时,累加器被用于基于已被使用的保留条目的总数来调整满阈值。当存储器结构中未决的请求的总数达到该调整的满阈值时,已使用其保留条目或不具有指定的保留条目的代理被阻止。尚未使用其保留条目的代理不被准许仲裁器阻止,直到其已使用了所有其保留条目并且未决的请求的总数达到调整后的满阈值限制。
代理限制还可在存储器结构的配置寄存器中被指定。在一个实施例中,这些代理限制可通过将用于代理的请求限制设置为0来禁用。当代理限制被禁用时,任何代理可被分配请求跟踪器的所有现有的条目。为了防止单个代理使用 所有请求跟踪器条目,请求限制可被指定用于该代理。当代理的请求计数器达到为该代理所指定的请求限制时,输入到用于该代理的准许仲裁器的请求被禁用。当请求跟踪器回收用于该代理的请求并且代理的请求计数器小于代理的请求限制时,输入至用于该代理的准许仲裁器的请求被使能。
现参见图6,示出了根据本发明的实施例的资源分配逻辑的一部分的框图。如图6中所示,逻辑360可被用于控制在所有代理之间共享的各种资源的分配。如所见的,加法器368基于从配置存储装置365接收的代理保留值来确定保留条目的总数。根据该总的保留条目值,标签条目数在减法器370处被减去。得到的值通过触发器372提供至加法器375,该加法器375将该值与所使用的保留条目数相组合,该所使用的保留条目数是从触发器374接收的,该触发器374基于递增和递减保留计数值来被交替地递增和递减,以下进一步描述。
由此,由加法器375生成的总和对应于调整的满阈值,该调整的满阈值被提供至比较器382的一个输入,该比较器382进一步从触发器376接收多个分配的标签条目。如果确定调整的满阈值小于或等于分配的标签条目的此数量,则满标志被生成,并且被用于屏蔽没有保留条目或已使用其保留条目的代理的请求。
如进一步所见,另一比较器380被配置为(从触发器378)接收给定请求者的保留配置值和用于该请求者的请求计数器值。比较器因此生成该请求器是否具有任何释放的保留条目的指示,其被提供为对于一对与(AND)门384和385的输入,该对与(AND)门384和385进一步接收用于该通道的通道许可和条目的回收的指示。由此,这些与门分别生成用于对应请求者的递增和递减值。对另一请求者执行相似的逻辑和操作,其中所有递增和递减保留值被提供至对应的或(OR)门386和387,该或(OR)门386和387分别生成递增保留计数值和递减保留计数值。
最终,用于请求者的请求计数器连同用于请求者的配置限制值被提供至另一比较器390,以由此确定该请求者是否已达到其限制。如果是这样,则该限制的指示被用于屏蔽来自该代理的用于进一步仲裁的请求。尽管图6的实施例中以该高级别来示出,但理解的是,本发明的范围不限于这点。
共享存储器结构调度器仲裁细节
实施例可结合多个调度算法来增强跨越支持不同存储器技术的多个SoC的 重复使用。结构的存储器调度器逻辑包含高级QoS调度算法,并被优化以最小化通常在大多数存储器技术中出现的性能瓶颈。利用(例如DRAM)存储器发生的典型性能瓶颈包括低功率存储器状态的进入和退出、由读至写的周转时间、对同一DRAM库但不同存储器行的连续存储器访问、以及对不同DRAM存储器等级的连续存储器访问。通过在共享存储器结构的调度逻辑中包括复杂无序调度算法,结构可通过将简化的技术特定约束解算器附着于该结构而适用于许多不同的SoC,以支持用于存储器技术或配置的独特要求。
除改进存储器调度逻辑的便携性之外,实施例还提供存储器请求延迟的可预测性,因为高级无序调度算法与QoS调度逻辑的组合导致了最大请求延迟的改进的可预测性,因为存储器控制器具有对于重排序存储器请求的少得多的灵活性。
一旦请求被准许仲裁器许可,其被排队到调度器计分板中。调度器计分板存储关于请求的信息,调度器计分板使用该信息来将请求转发至存储器控制器,以便执行对存储器的读或写。在一个实施例中,该信息包括请求地址、请求长度、命令类型(读或写)、服务类种类、存储器通道、存储器库、存储器等级和页面命中/未命中状态。
存储器调度器最老可用队列(oldest of available queue)
实施例提供了基于发送至存储器控制器的请求的历史的无序页面感知调度,尽管结构不具有存储器库的真实状态的直接知识。更具体地,结构的存储器调度器使用调度器计分板作为已发送至存储器的请求的历史缓冲器。因为调度器计分板被用于反映请求的历史,其设法在计分板中尽可能长久地保留用于请求的状态信息。存储器调度器使用称为最老可用队列的构造来确定最老计分板条目,其可用于被重新分配。
最老可用队列还由存储器调度器用来避免可能由于对存储器的请求的无序调度而产生的匮乏问题。结构的存储器调度器使用最老可用队列来确定有多少相同服务类种类和类型的请求(读或写)已经绕过对存储器的最老的未决请求。一旦已绕过最老请求的请求的数量达到(例如,由软件设置的)预先编程的限制,结构的存储器调度器就禁用请求的无序调度并且许可最老的未决请求。
如上所述,调度器利用最老可用队列来保持跟踪所有请求在其计分板中的相对年龄。当将新存储器地址定为目标的请求被准许仲裁器许可时,到调度器 计分板中的索引指针被排队到最老可用队列的队尾条目中,其然后被认为是最新的请求。当所有未决请求已完成向/从请求代理以及向/从存储器控制器传输数据时,计分板条目可用于被重新分配,并且可针对由准许仲裁器许可的新请求而被重新分配。由于无序调度,最老可用队列中的最老条目可能不始终可用于重新分配。
为选择要重新分配至新的请求的计分板条目,调度器检测对计分板条目的所有未完成的请求是否已完成。在一个实施例中,调度器使用请求位向量,其具有等于计分板条目的数量的长度,以指示哪些条目可用于重新分配。请求位向量中设置为1的位指示与该位的位置相对应的条目可用于重新分配。请求位向量然后被发送至最老可用队列。最老可用队列使用存储于队列中的索引来选择与针对该队列的条目的请求相对应的请求向量中的位。队列的每个条目关联于请求向量的独特位,并且将“找首位(find first)”函数从队列中的最老条目开始执行,以确定要重新分配的最老可用请求。在确定要重新分配的最老可用条目之后,将用于该条目的计分板索引从最老可用队列输出。
现参见图7,示出了根据本发明的实施例的计分板索引生成逻辑的框图。如图7中所示,逻辑400包括多个触发器4100-410n,其以串行配置耦合,以存储对应的计分板索引。如所见的,触发器410配置为将对应于索引指针的计分板索引接收至调度器的计分板中,该计分板索引也是对标签阵列和数据缓冲器的索引。触发器410可按从最新(即,触发器4100)到最老(即,触发器410n)的顺序来配置。在一个实施例中,每个触发器可以是D类型触发器,尽管本发明的范围不限于这点,并且进一步理解的是,也可使用其他存储元件。
如所见的,每个触发器410的输出耦合于对应的多个复用器4200-420n之一,多个复用器4200-420n中的每个进一步配置为接收计分板请求向量的位。由此,该位向量例如经由设置位提供指示,以指示对应计分板条目可用于重新分配。利用来自复用器4200-420n的输出,许可信号可直接从比较器输出(如来自比较器420n)生成或经由逻辑门4300430n(其在示出的实施例中被配置为与(AND)门,其具有从对应复用器420接收的第一输入以及与对应或(OR)门4250-425n-2的反相输出相对应的第二输入)中对应的一个来生成。以这种方式,仅许可信号中的单个信号可在一时是活动的。
如图7中进一步所见,许可输出信号可耦合于多个与门4350-435n中对应的 一个,该多个与门4350-435n也配置为接收进入的索引信号。进而,来自与门435n的输出可耦合于或门440,以由此输出与最老可用条目相对应的计分板索引,使得单热(1-hot)复用器功能被执行,其因而提供许可请求的计分板索引的一个热复用。
共享存储器结构存储器调度细节
结构存储器调度器包含三个状态机,其一起工作以调度发送至存储器控制器的请求。
现参见图8,示出了根据本发明的实施例的用于调度器仲裁器的状态机的框图。如图8中所示,可实现于硬件、软件和/或固件的状态机500,诸如图1的调度器仲裁器130,可开始于在系统复位时进入初始化状态INIT中。控制接下来传递至自刷新状态机510,其包括进入自刷新状态512、请求自刷新状态513和退出自刷新状态516。
如图8中所见,从退出自刷新状态516,控制传递到读/写许可状态机520,其进而包括许可读请求状态522和许可写请求状态524。从这些状态控制进而传递至读状态机530,其包括多个状态,即绕过许可状态532、高优先级读请求许可状态534、尽力而为许可读请求状态536和低优先级等时许可读请求状态538。尽管利用引起退出和进入到(如下文在表2和4中进一步描述的)各种状态中的特定条件以该高级别示出,但理解的是,本发明的范围不限于这点,并且各种修改和替代方式是可能的。
自刷新状态机
实施例可控制存储器何时被允许进入和退出低功率存储器状态,也称为自刷新状态。自刷新状态机负责控制何时将指示发送至存储器控制器,以进入或退出自刷新。对于尽力而为读请求,自刷新状态机立即转变至退出自刷新状态。对于等时读请求,存储器调度器检查请求期限,以确定其是否用于退出自刷新,以便满足对于请求所需的读延迟。为确定退出自刷新是否是对于满足等时读需求所需的,存储器调度器从全局定时器的当前值减去请求的期限。针对该结构中的配置寄存器来检查减法的结果,该配置寄存器被编程为反映对于存储器控制器退出自刷新和该结构将数据返回至请求代理所需要的最坏情况的延迟。
对于写请求,该结构计算清除池中脏条目(dierty entry)的数量并且针对被称为清除高水位标志的可编程阈值来检查结果。如果脏条目的数量超过清除高 水位标志值,则自刷新状态机将控制传递至退出自刷新状态。此外,该结构检查对同一标签地址的读/写冲突,其中请求被准许仲裁器阻止。当结构确定请求被地址冲突、代理限制阻止时或如果请求跟踪器或存储器调度器计分板为满,则控制从自刷新状态机传递至退出自刷新状态。该结构还包含配置寄存器,其在一个实施例中可被编程为禁用进入自刷新。
当存储器调度器发送指示至存储器控制器以退出自刷新时,请求可开始被发送至存储器控制器。存储器调度器继续发送指示至存储器控制器,以保持在自刷新之外,同时主动发送存储器请求至存储器控制器。当存储器调度器完成发送所有读请求至存储器控制器并且清除池中写请求的数量低于临时高水位标志限制时,存储器调度器转变至请求自刷新状态。
在请求自刷新状态中,如果没有新的请求被准许仲裁器所许可,则在称为进入自刷新延时的可编程延迟值被满足之后,状态机转变至进入自刷新状态。在一个实施例中,该延时被编程于该结构中的配置寄存器中。如果新的请求被准许仲裁器所许可,则自刷新状态机可在一定条件下转变至退出自刷新状态。如果新的尽力而为读请求被接收或如果写请求被接收,其导致清除池中条目的数量超过清除高水位标志配置寄存器中所编程的数量,则自刷新状态机从请求自刷新状态转变回到退出自刷新状态。如果当状态机处于请求自刷新状态中时等时读请求被接收,则针对称为进入自刷新阈值的编程值来检查请求的期限值。如果期限延迟大于进入自刷新阈值,则状态机继续处于请求自刷新状态中。如果该用于请求的期限延迟低于进入自刷新阈值,则状态机将转变至退出自刷新状态。
自刷新状态机将状态驱动至存储器控制器,以保持在自刷新之外直到状态机转变至进入自刷新状态。一旦进入自刷新状态,状态机就发送指示至存储器控制器,以进入自刷新。
下面的表2是根据本发明的实施例的自刷新状态机的描述。
表2


读/写许可状态机
在一个实施例中,存储器调度器使用可配置阈值来指定何时开始和停止将一连串写请求传输至存储器控制器。存储器调度器可执行写数据到存储器的不同类型的传输,例如,高优先级传输和低优先级传输,其分别在本文也称为对存储器的高优先级写请求清除和临时写请求清除。当清除池中条目的数量达到或超过阈值(清除高水位标志)时,存储器调度器开始调度高优先级写清除至存储器并且开始发送写请求至存储器控制器。存储器调度器利用高优先级清除机制继续调度写请求,直到清除池中条目的数量达到或小于阈值(清除低水位标志)。
临时清除还可由结构存储器调度器所执行。当存储器调度器已完成将所有读请求发送到存储器控制器并且清除池中条目的数量超过阈值(临时清除限制)时,临时清除被触发。在一个实施例中,由于性能原因,临时清除限制可典型地设置为低于高水位标志,但大于或等于低水位标志。在某些情况下,该临时清除限制可设置为0,以清除对存储器的所有写数据。一旦最后的读请求被发送至存储器控制器,如果清除池中条目的数量在临时清除限制以上,则称为临时清除定时器的计数器开始在每时钟周期递增。如果没有对存储器的新的读请求被该结构接收并且临时清除定时器达到由临时清除延时所指定的值(其为存储于配置寄存器的阈值),则存储器调度器开始发送写请求至存储器控制器。该临时清除继续直到清除池中条目的数量小于临时清除限制或直到新的读请求被该结构所接收。
读/写许可状态机负责从许可读请求到许可写请求切换。在一个实施例中,存储器调度器可配置为当在读请求和写请求之间切换(以便防止当系统被写请求饱和时的读取匮乏)时,允许写请求具有相比读请求更高的优先级或使用权重。当权重被启用时,存储器结构使用配置寄存器独立地指定读和写权重。
下面的表3是根据本发明的实施例的读/写许可状态机的描述。
表3

读状态机
读状态机负责在高优先级等时读请求、尽力而为读请求和低优先级等时读清求之间进行切换。读状态机可配置为操作于多个模式之一中。在一个实施例中,提供了两个此类模式。第一模式为固定优先级模式,其中读状态机将最高优先级赋予高优先级等时读请求,将中间优先级赋予尽力而为读请求,并且低优先级等时读请求接收最低优先级。第二模式用于使能权重的使用,以在高优先级等时读请求和尽力而为读请求之间进行切换。在该模式中,低优先级等时请求仅当不再存在任何高优先级等时读请求或尽力而为读请求时被许可。
表4是根据本发明的实施例的读状态机的描述。
表4




调度器代理权重
存储器调度器使用代理权重,以用于在相同服务类种类内的代理之间对存储器带宽进行比例划分。在一个实施例中,配置寄存器为每个请求代理指定权重,并且权重计数器被提供用于每个代理。代理权重配置寄存器在准许仲裁器和存储器调度器之间共用。
当对于连接于该结构的任何代理而言在存储器调度器中不存在未决的请求时,利用代理权重配置寄存器中所指定的值来加载代理权重计数器。当请求被准许仲裁器所许可并且被排队到存储器调度器计分板中时,代理ID字段与请求信息一起被存储于存储器调度器计分板中。当存储器调度器许可其计分板中的请求时,代理ID字段被用于确定请求源并且用于该代理的权重计数器递减1。一旦代理的权重计数器已达到0,针对该代理的剩余请求被屏蔽并不再参与调度器仲裁。当代理由于其权重计数器达到0而从仲裁屏蔽时,存储器调度器从剩余代理继续调度请求。一旦用于所有代理的权重计数器已达到0或如果代理的权重计数器非0但没有针对该代理的剩余请求,则利用来自代理权重配置寄存器的值重新加载所有代理权重计数器。
现参见图9,示出了根据本发明的实施例的用于执行存储器调度的方法的流程图。如图9中所示,方法600可由共享存储器结构的调度器仲裁器来执行。如所见的,方法600可以是通过从存储器调度器计分板选择存储器请求,以用于递送至存储器控制器(框610)。在确定合适的条目时可考虑到各种考虑,包括存储器的状态、各种请求的状态、未决请求的地址位置之间的关系,等等。接下来,在框620处,更新用于所选择代理的权重值。在一个实施例中,执行对权重值的递减。注意,尽管用于该代理的权重值的初始值与从也由准许仲裁器所使用的配置寄存器所获得的值相同,但理解的是,不同的权重计数器被提供用于每个仲裁器,以能够实现对这些权重值的独立控制。
仍参考图9,接下来,在菱形630处可确定所选择的代理的权重值是否等于0。注意,该确定可处于其中0为最低优先级值的实施例中。当然,本发明的范围不限于这点,并且该确定可在其他实施例中基于与另一预定值的比较。如果确定权重值为0,则控制传递至框640,其中将该所选择的代理从存储器调度器内的进一步仲裁屏蔽。
从菱形630和框640两者,控制传递至菱形650,其中可确定所有代理的权重值是否等于0。如果是这样,则控制传递至框660,其中用于所有代理的权重值可被更新为其配置值,例如,从该结构的配置寄存器所获得的配置值。否则,控制从菱形650传递至菱形670,以确定在存储器调度器中是否存在针对具有非0权重值的代理的任何剩余请求。如果是这样,则可处理那些请求,例如,经由方法600的另一次迭代。否则,如果没有附加请求剩余,则控制传递至框660,其中权重值可被更新,如所描述的。尽管在图9的实施例中以该特定实现方式示出,但理解的是,本发明的范围不限于这点。
下面的表5提供了针对多个时钟周期的存储器调度的示例操作,其基于用于如下三个代理的最初权重值:
代理0权重=4
代理1权重=2
代理2权重=1
表5



无序页面感知调度
存储器调度器重排序发送至存储器控制器的请求并寻求优化请求流以便获得可能的最大存储器带宽。存储器调度器包含配置寄存器,其被编程为将关于其附着到的存储器控制器的信息提供给调度器。在一个实施例中,这些配置寄存器包括关于什么地址位被用于存储器通道、库、等级和行地址的信息。利用编程于配置寄存器中的存储器配置信息,存储器调度器确定调度器计分板中每 个请求的库、等级、行和通道。存储器调度器计分板还包含用于每个请求的页面命中状态位,其被用于优化发送至存储器控制器的请求,使得对存储器中相同页面的请求在将请求发送至不同的页面之前被发送至存储器控制器。
在初始化之后并在任何请求被发送至存储器控制器之前,存储器调度器清理其计分板中的所有页面命中状态位。在请求被发送至存储器控制器时,存储器调度器更新计分板中的页面命中状态位,以指示其他请求是针对存储器中的相同页面还是针对不同的页面。尽管调度器不知道给定存储器库中实际的页面状态,但这些页面命中状态位可被用作关于哪些请求是要发送至存储器控制器以用于获得最佳存储器带宽的最佳候选的提示。
当请求被发送至存储器控制器时,存储器调度器比较用于计分板中未决的所有其他请求的通道、等级和库信息。如果计分板条目的通道、等级和库信息与发送至存储器控制器的请求匹配,则将该条目的行地址针对发送至存储器控制器的请求的行地址进行比较。如果计分板条目的行地址匹配该请求,则将页面命中状态位设置为1;如果行地址不匹配请求,则将页面命中状态位设置为0,其指示页面未命中。对于通道、等级或库位不同于发送至存储器控制器的请求的计分板条目,不发生页面命中状态的更新。
在新的请求被准许仲裁器所许可并且被排队到调度器计分板中时,将行地址信息针对计分板中当前所有条目进行比较。如果新的请求的行地址匹配调度器计分板中的一个或多个条目并且任何匹配的条目的页面命中状态位被设置,则针对新请求的页面命中状态也被设置。如果行地址不匹配计分板中的任何条目或其匹配的所有条目具有设置为0的页面命中状态,则针对新请求的页面命中状态也设置为0。
利用存储于调度器计分板中的页面命中和等级状态信息,存储器调度器基于优先级编码的调度机制来重排序发送至存储器控制器的请求,该优先级编码的调度机制已被确定以为大多数基于DRAM的存储器技术提供最佳带宽。存储器调度器在以更低优先级级别许可请求之前许可更高优先级请求。
下面的表6示出了由根据本发明的一个实施例的存储器调度器所使用的不同优先级级别。
表6
存储器调度器页面感知调度优先级
页面命中状态等级状态优先级级别页面命中相同等级优先级级别3(最高)页面命中不同等级优先级级别2页面未命中相同等级优先级级别1页面未命中不同的等级优先级级别0(最低)
基于年龄的存储器调度和匮乏防止
为了防止由于无序页面感知调度算法而引起的请求匮乏,年龄的概念被使用,以至少部分地调度请求。对于每个服务类(COS)种类,存储器调度器包含配置寄存器,以指定无序(OOO)调度限制。为提供用于等时COS种类的更短的最大读延迟,OOO调度限制被典型地设置为比尽力而为COS种类的OOO调度限制更小的值。存储器调度器为其计分板中针对尽力而为和等时COS种类的所有未决请求创建请求位向量。这些请求位向量被发送至最老可用队列,其确定仍未决的最老请求。该最老可用队列输出一个热编码位向量,其中该位被设置为1,以指示最老请求。在存储器调度器基于其页面感知调度算法来许可请求OOO时,存储器调度器为每个COS种类计算有多少个不是未决最老请求的请求被许可。一旦计数器达到针对COS种类的OOO调度限制(其可通过为针对该COS种类的最坏情况可接受延迟的性能分析来确定),页面感知调度逻辑被禁用并且针对COS种类的最老请求被存储器调度器许可。针对COS种类的最老请求被许可的任何时间,用于该COS种类的计数器被复位为0。为提供用于该COS种类的最低可能延迟,OOO调度限制可被编程为0,实质上禁用了用于该COS种类的页面感知调度逻辑。当针对COS种类将OOO调度限制设置为0时,对存储器的请求可利用请求年龄来调度,该请求年龄是通过最老可用队列来确定的。
尽力而为最大延迟匮乏防止
对于尽力而为读请求,结构利用调度器计分板中的期限存储信息来存储被用于指定用于调度尽力而为请求的最大延迟值的值。计分板为条目的池,并且 存储于计分板的请求可以是尽力而为请求或等时请求,其由请求的服务类种类所确定,也存储于用于每个请求的计分板中。在计分板中的请求为尽力而为读请求的情况下,最大可允许延迟,例如,存储于配置寄存器中的预先编程的值,被用于调度该请求。当该请求在计分板中排队并且为尽力而为读请求时,最大延迟值被增加至全局定时器的当前值。一旦全局定时器达到为尽力而为请求所的最大延迟所存储的值,页面感知调度针对该请求而被忽略并且导致该请求在其是未决的最老请求(例如,由最老可用队列所确定)时被调度。
请求跟踪器写优先级和权重
请求跟踪器负责从请求代理传输数据至该结构的内部存储器缓冲器。由共享存储器结构所使用的写协议使所有写数据以请求的顺序从请求代理传输至该结构中的内部存储器缓冲器。在一个实施例中,请求跟踪器使用每个代理独立的链接列表,以保留写请求的顺序。请求跟踪器可在从请求代理传输数据至内部数据缓冲器之前,对写请求执行一致性检查。
对于写请求,请求跟踪器可配置为支持一个或多个优先级级别。当请求被准许仲裁器许可时,用于请求的期限信息被存储于具有与请求跟踪器中条目的数量相对应的长度的阵列。该结构使用阈值(例如存储于配置寄存器中)来指定请求期限值何时被考虑为高优先级。将用于该请求的每个期限值针对编程于配置寄存器中的阈值进行比较。当期限延迟小于配置寄存器中的值时,针对该请求来在跟踪器的计分板条目中设置位,从而指示该请求为高优先级请求。
当针对两个优先级级别的操作而启用时,如果针对代理的写请求达到链接列表的头部并且针对该请求来设置高优先级位,则写请求被考虑为高优先级。如果在任何代理链接列表的头部处的任何写请求指示写请求为高优先级请求,则在用于其他代理的其他链接列表的头部处的所有低优先级写请求在被输入至写请求仲裁器之前被屏蔽。如果相同优先级级别的多个请求出现在代理链接列表的头部处,则执行仲裁,以选择哪个代理将选择来传输写数据。
请求跟踪器写请求仲裁器
写请求仲裁器使用基于加权优先级的公平仲裁器,以选择哪个代理来传输写数据。用于写请求仲裁器的权重被编程于请求跟踪器中的配置寄存器中。写仲裁器在复位时为每个代理分配独特优先级。在每个周期上,仲裁器仅考虑具有准备好传输的数据的请求候选,并且为该请求器许可最高优先级。当许可时, 请求候选的权重递减1。如果许可的候选已具有权重0,则仲裁器还更新请求候选优先级如下:许可的候选的优先级被设置为最低优先级(例如,0);具有低于许可候选的优先级的所有候选递增其优先级,并且具有高于许可候选的优先级的所有候选保持其优先级不变。
请求跟踪器读数据返回
请求代理支持按序数据返回或无序数据返回。为支持无序数据返回,顺序ID字段被使用。利用每个请求,从代理发送顺序ID并将该顺序ID存储于请求跟踪器计分板中。将来自具有相同顺序ID的相同代理的请求按请求顺序返回。针对来自具有不同顺序ID的相同代理的请求的数据不需要按请求顺序被返回。在一个实施例中,请求跟踪器使用链接列表,以用于保证读数据在其被返回到请求代理时被正确地排序。
数据要被写入的内部数据缓冲器的条目在请求被准许仲裁器所许可之前被选择。当请求被准许仲裁器许可时,包括到内部数据缓冲器中的索引的请求信息被转发至请求跟踪器。在将数据从存储器控制器返回时,存储器调度器转发读完成指示至请求跟踪器,其包括到数据正被写入的内部数据缓冲器中的索引字段,和存储器地址的哪些块已完成存储器的读取的指示。当请求跟踪器接收读完成时,其将该索引字段与用于请求跟踪器计分板中所存储的所有请求的索引字段进行比较。如果计分板条目的索引字段匹配针对请求的读完成并且针对该读完成来设置用于请求的所有块位,则在请求跟踪器计分板中设置位,从而指示读请求已完成。
如果读请求已达到链接列表的头部并且请求跟踪器中的读完成状态位被设置并且针对该请求的所有一致性检查已完成,则请求可用于返回读数据至该代理。类似于写请求,请求跟踪器使用用于计分板条目的请求期限信息,以指示请求优先级。在一个实施例中,请求跟踪器创建用于该计分板条目的两个请求位向量,其具有准备好返回至请求代理的数据。一个位向量针对低优先级读请求并且另一位向量针对高优先级读请求。请求位向量被输入到请求跟踪器最老可用队列。最老可用队列确定哪个请求是对于两个请求位向量而言最老的。请求跟踪器具有配置模式,其当被启用时将在针对任何低优先级请求返回数据之前引起数据从由最老可用队列所选择的最老高优先级请求的返回。当高优先级数据返回的支持未被启用时,请求跟踪器将准备好返回读数据的所有计分板条 目看作具有相同优先级级别。在该模式,仅低优先级位向量被用作对最老可用队列的输入,其进而确定计分板中的最老读请求。确定为最老的用于计分板条目的读数据然后被返回至请求代理。
实施例可被用于许多不同的SoC或其他半导体设备中,其向单个管芯上集成各种IP以经由存储器结构将这些IP连接至存储器。更进一步地,根据本发明的实施例的存储器结构可被用于提供QoS级别,以用于满足这些IP中的至少某些的等时需求。
现参见图10,示出了根据本发明的实施例的SoC的框图。如图10中所示,SoC 700为单管芯半导体设备,其包括多个IP块以及共享存储器仲裁器,如上所述。在图10的实施例中,提供了多个核7100-710n,其中的每一个可独立地执行指令。在一个实施例中,所有这些核具有单一设计,诸如,例如英特尔体系结构TM(Interl ArchitectureTM)的按序核设计,诸如基于AtomTM的核。在其他实施例,该核可以是无序处理器,诸如英特尔体系结构TM(Interl ArchitectureTM,IA)32核,诸如基于英特尔酷睿TM(Intel CoreTM)的设计。在其他实施例中,可提供同质核的混合。此外,多个图形引擎,即,独立图形单元7200-720n可被提供,其每一个都独立地执行图形操作。如所见的,将多个核耦合于共享缓存存储器715,诸如2级(L2)缓存,并且类似地,将图形引擎耦合于另一共享缓存存储器725。
将系统代理730经由对应管芯内互连728和729耦合于这些核和图形引擎。如所见的,系统代理730包括共享存储器结构735,其可如本文所描述的来配置。当然,各种其他逻辑、控制器和其他单元(诸如功率管理单元)可出现于系统代理730内。如所见的,共享存储器结构735与存储器控制器740通信,该存储器控制器740进而耦合于片外存储器,诸如配置为DRAM的系统存储器。此外,将系统代理730经由一组互连744耦合至一个或多个内部代理750,诸如各种外围设备。在一个实施例中,互连744可包括优先级通道互连、边带通道互连和存储器通道互连。类似配置的互连746提供了系统代理730和一个或多个片外代理(其为了易于在图10中的图示而未被示出)之间的通信。尽管图10中以该高级别来示出,但理解的是,本发明的范围不限于这点。
现参见图11,示出了根据本发明的实施例的计算机系统中所出现的组件的框图。如图11中所示,系统800可包括许多不同的组件。这些组件可被实现为 IC、其部分、分立电子设备、或适于电路板的其他模块,电路板诸如是计算机系统的母板或插入卡,或实现为以其他方式结合于计算机系统的机箱内的组件。还注意到的是,图11的框图旨在示出计算机系统的许多组件的高级别视图。然而,要理解的是,附加的组件可出现于一定的实现方式中,并且此外,所示出的组件的不同布置可发生在其他实现方式中。
如图11中所间,可以是低功率多核处理器插槽(诸如超低电压处理器)的处理器810,可充当主处理单元和中央中枢,以用于与系统的各种组件通信。这种处理器可被实现为如本文描述的SoC。在一个实施例中,处理器810可以是基于英特尔体系结构酷睿TM的处理器,诸如i3、i5、i7或从英特尔公司(Santa Clara,CA)可得的另一此类处理器,诸如将一个或多个基于酷睿TM的核与一个或多个基于英特尔ATOMTM的核进行组合以由此在单SoC中实现高功率和低功率核的处理器。然而,理解的是,其他低功率处理器,诸如从先进微设备有限公司(AMD)(Sunnyvale,CA)可得的处理器、来自ARM控股有限公司的基于ARM的设计、或来自MIPS技术有限公司(Sunnyvale,CA)的基于MIPS的设计、或者这些的许可方或采纳方,可替代地出现于诸如苹果(Apple)A5或A6处理器的其他实施例中。
处理器810可与系统存储器815相通信,该系统存储器815在一个实施例中可经由多个存储器设备来实现,以提供给定量的系统存储器。为提供信息(诸如数据、应用,一个或多个操作系统等)的永久存储,大容量存储装置820还可耦合于处理器810。图11中还示出,闪存设备822可耦合于处理器810,例如经由串行外围接口(SPI)。该闪存设备可提供对系统软件的非易失性存储,该系统软件包括基本输入/输出软件(BIOS)以及系统的其他重件。
各种输入/输出(IO)设备可出现在系统800内。具体地,图11的实施例中示出了显示器824,其可以是配置于机箱的盖部分内的高清晰度LCD或LED面板。该显示器面板还可提供触摸屏幕825,其例如通过显示器面板外部适配,使得经由用户与该触摸屏幕的交互,用户输入可被提供至系统,以启用所期望的操作,例如,关于信息的显示、信息的访问,等等。在一个实施例中,显示器824可经由显示器互连耦合于处理器810,该显示器互连可被实现为高性能图形互连。触摸屏幕825可经由另一互连耦合于处理器810,该另一互连在一个实施例中可以是I2C互连。如图11中进一步所示,除触摸屏幕825以外,以触摸 方式的用户输入还可经由触摸板830发生,该触摸板830可配置在机箱内并且还可耦合于与触摸屏幕825相同的I2C互连。
为了感知计算和其他目的,各种传感器可出现于系统内并且可以按不同的方式耦合于处理器810。某些惯性和环境传感器可通过传感器中枢840耦合至处理器810,例如,经由12C互连。在图11中所示的实施例中,这些传感器可包括加速度计841、环境光传感器(ALS)842、罗盘843和陀螺仪844。其他环境传感器可包括一个或多个热传感器846,其在一个实施例中可经由系统管理总线(SMBus)耦合至处理器810。
在图11中还所见的,各种外围设备可经由低引脚计数(LPC)互连耦合至处理器810。在所示出的实施例中,各种组件可通过嵌入控制器835来耦合。此类组件可包括键盘836(例如,经由PS2接口耦合)、风扇837和热传感器839。在某些实施例中,触摸板830还可经由PS2接口耦合于EC 835。此外,安全处理器,诸如根据日期为2003年10月2日的可信计算组(TCG)TPM规范版本1.2的可信平台模块(TPM)838,也可经由该LPC互连耦合于处理器810。
系统800可按各种方式(包括无线地)与外部设备相通信。在图11中所示的实施例中,出现了各种无线模块,其中的每个可对应于配置用于特定无线通信协议的无线电。用于短距离(诸如近场)内的无线通信的一种方式,可以是经由近场通信(NFC)单元845,该近场通信(NFC)单元845可在一个实施例中经由SMBus与处理器810通信。注意,经由该NFC单元845,相互紧接的设备可进行通信。例如,用户可使系统800能够经由将两个设备以紧密关系适配在一起并使能信息(诸如标识信息、支付信息)、数据(诸如图像数据)等等的传输来与另一(例如)便携式设备(诸如用户的智能电话)相通信。无线功率传输还可利用NFC系统来执行。
如图11中进一步所见,附加的无线单元可包括其他短距离无线引擎,其包括WLAN单元850和蓝牙单元852。利用WLAN单元850,根据给定电器和电子工程师学会(IEEE)802.11标准的Wi-FiTM通信可被实现,而经由蓝牙单元852,经由蓝牙协议的短距离通信可发生。这些单元可经由例如USB链路或通用异步接收器发送器(UART)链路与处理器810相通信。或者这些单元可经由根据(2007年1月17日发布的)PCIExpressTM规范基础规范版本3.0的高速外围组件互连TM(PCIeTM)协议或另一此类协议(诸如串行数据输入/输出(SDIO) 标准)经由互连耦合于处理器810。当然,可被配置于一个或多个插入卡上的这些外围设备之间的实际物理连接,可以是以适于母板的下一代形状因子(NGFF)连接器的形式。
此外,无线广域通信(例如,根据蜂窝或其他无线广域协议)可经由WWAN单元856发生,该WWAN单元856进而可耦合于订户身份模块(SIM)857。此外,为使能对位置信息的接收和使用,GPS模块855还可被呈现。注意,在图11中所示的实施例中,WWAN单元856和集成的捕获设备(诸如照相机模块854)可经由给定的USB协议(诸如USB2.0或3.0链路)或者UART或12C协议进行通信。再者,这些单元的实际物理连接可经由母板上配置的NGFF插入卡与NGFF连接器的适配。
为提供音频输入和输出,音频处理器可经由数字信号处理器(DSP)860来实现,该数字信号处理器(DSP)860可经由高清晰度音频(HDA)链路耦合于处理器810。类似地,DSP 860可与集成编码器/解码器(编解码器(CODEC))和放大器862相通信,该其成编码器/解码器(编解码器(CODEC))和放大器862可进而耦合于输出扬声器863,该输出扬声器863可实现于机箱内。类似地,放大器和编解码器862可被耦合以接收来自麦克风865的音频输入,该麦克风865在一个实施例中可经由双阵列麦克风来实现,以提供高质量音频输入,从而能够实现系统内的各种操作的语音激活的控制。还注意的是,可将音频输出从放大器/编解码器862提供至耳机插孔864。尽管在图11的实施例中利用这些特定组件来示出,但理解的是,本发明的范围不限于这点。
以下示例属于进一步实施例。在一个实施例中,一种装置包括耦合在半导体设备的IP块和存储器控制器之间的结构,其中该结构用于从IP块接收存储器请求,至少某些存储器请求具有与其相关联的期限值,以指示在完成存储器请求之前的最大延迟。该结构用于至少部分地基于至少某些存储器请求的期限值来在存储器请求之间进行仲裁。
该结构可包括准许仲裁器,用以接收存储器请求并且选择存储器请求之一来提供至存储器调度器仲裁器,并且存储器调度器仲裁器可耦合于准许仲裁器以从多个存储器请求选择第一存储器请求来提供至存储器控制器。
准许仲裁器包括第一仲裁器,用以从多个IP块的第一子集接收存储器请求并从多个IP块的第二子集接收存储器请求的第一部分,并包括第二仲裁器,用 以从多个IP块的第二子集接收存储器请求的第二部分。多个IP块的第二子集包括延迟敏感设备。该第二仲裁器进一步用于接收期限值,其中从多个IP块的第二子集接收存储器请求的第二部分中的每个。
在一个实施例中,准许仲裁器可控制为操作于第一模式和第二模式中,在所述第一模式中,在来自第一仲裁器的存储器请求内选择来自第二仲裁器的存储器请求,以及在所述第二模式中,在选择来自第二仲裁器的N个存储器请求之后选择来自第一仲裁器的M个存储器请求,其中从配置寄存器获得M和N。
在一个实施例中,准许仲裁器进一步包括第三仲裁器,其耦合于第一仲裁器和第二仲裁器的输出并且用以在第一和第二仲裁器的输出之间进行仲裁。
存储器调度器仲裁器可至少部分地基于存储器请求的地址信息并至少部分地基于与存储于该结构的计分板的条目中的存储器请求相关联的页面命中状态信息来重排序无序的存储器请求。
在一个实施例中,接口逻辑耦合于第一IP块,该接口逻辑包括期限逻辑,用以基于针对第一IP块的第一存储器请求的延迟需求和从该结构提供至第一IP块的全局定时器值来生成期限值。期限检查器可被耦合以从第一IP块接收期限值并且基于期限值和全局定时器的值将第一存储器请求路由至第一仲裁器或第二仲裁器。
在一个实施例中,针对多个IP块中的每一个,资源分配逻辑在该结构的多个共享资源中保留虚拟条目。该资源分配逻辑进一步用于将多个IP块中的每一个限制到预定数量的多个共享资源,并且该多个共享资源包括清除池,该清除池具有多个条目,每个条目用于存储写请求,并且资源分配逻辑用于将多个条目限制到清除限制,其中该准许仲裁器用于当清除池的大小等于清除限制时阻止进入的写请求。
在一个实施例中,一种方法包括:从与SoC的共享存储器结构耦合的多个设备中的设备接收存储器请求,其中存储器请求与期限值相关联;响应于期限值小于延迟阈值来将存储器请求转发至共享存储器结构的第一仲裁器;至少部分地基于多个设备的年龄值来在第一仲裁器中执行包括存储器请求的第一多个存储器请求之间的仲裁,并且将第一多个存储器请求的胜者存储器请求转发至共享存储器结构的最终仲裁器;以及在最终仲裁器中执行最终仲裁,以选择最终存储器请求以便存储在共享存储器结构的计分板中。
在一个实施例中,该方法进一步包括,响应于期限值大于延迟阈值来将存储器请求转发至第二仲裁器,至少部分地基于多个设备的年龄值来在第二仲裁器中执行包括存储器请求的第二多个存储器请求之间的仲裁,并且将第二多个存储器请求的胜者存储器请求转发至最终仲裁器。
在一个实施例中,该方法进一步包括,确定与最终存储器请求相关联的设备的权重值是否等于预定值,并且如果是这样,则将权重值更新为配置值并且更新用于多个设备中的其他设备的年龄值。并且,当与最终存储器请求相关联的设备的权重值不等于预定值时,与最终存储器请求相关联的设备的权重值被递减。
在一个实施例中,该方法进一步包括:经由共享存储器结构的存储器调度器从计分板选择存储器请求,以用于递送至存储器控制器;并且如果与所选择的存储器请求相关联的设备的权重值等于预定值,则从存储器调度器内的进一步仲裁屏蔽该设备。
在一个实施例中,该方法进一步包括确定多个设备中的每一个的权重值是否等于预定值,并且如果是这样,则将用于多个设备中的每一个的权重值更新为配置值。
在一个实施例中,一种片上系统包括:多个核,均用于独立地执行指令;多个图形引擎,均用于独立地执行图形操作;对应于第一延迟敏感设备的第一内容渲染设备;对应于第二延迟敏感设备的第二内容渲染设备;以及结构,其耦合于该多个核、多个图形引擎、第一和第二内容渲染设备和存储器控制器,该结构从多个核、多个图形引擎和第一和第二内容渲染设备接收存储器请求。来自第一和第二内容渲染设备的存储器请求具有与其相关联的期限值,以指示在完成存储器请求之前的最大延迟,并且该结构用于至少部分地基于来自第一和第二内容渲染设备的存储器请求的期限值来在存储器请求之间进行仲裁。
在一个实施例中,该结构进一步包括:准许仲裁器,用以接收存储器请求并且选择存储器请求之一来提供至存储器调度器仲裁器;以及存储器调度器仲裁器,耦合于准许仲裁器以从多个存储器请求选择第一存储器请求来提供至存储器控制器。该准许仲裁器可包括第一仲裁器,用以从多个核和多个图形引擎接收存储器请求并且从第一和第二内容渲染设备有条件地接收至少某些存储器请求,以及第二仲裁器,用以从第一和第二内容渲染设备接收存储器请求。该 存储器调度器仲裁器可至少部分地基于存储器请求的地址信息和与存储于该结构的计分板的条目中的存储器请求相关联的页面命中状态信息来重排序至少某些无序的存储器请求。
期限检查器可从第一内容渲染设备接收与第一存储器请求相关联的期限值并且基于期限值和全局定时器的值来将第一存储器请求路由至第一仲裁器或第二仲裁器。
实施例可按代码来实现并可存储于具有存储于其上的指令的非瞬时存储介质上,该非瞬时存储介质可被用于对系统进行编程以执行该指令。存储介质可包括但不限于,任何类型的磁盘,包括软盘、光盘、固态驱动器(SSD)、致密盘只读存储器(CD-ROM)、可重写致密盘(CD-RW)和磁光盘;半导体设备,诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM);磁卡或光卡;或适合于存储电子指令的任何其他类型的介质。
尽管已相对于有限数量的实施例来描述本发明,但本领域技术人员将认识到根据这些实施例的许多修改和变型。所意在的是,所附权利要求将所有这种修改和变型覆盖为落入本发明的真实精神和范围内。

经由共享存储器结构的仲裁存储器访问.pdf_第1页
第1页 / 共44页
经由共享存储器结构的仲裁存储器访问.pdf_第2页
第2页 / 共44页
经由共享存储器结构的仲裁存储器访问.pdf_第3页
第3页 / 共44页
点击查看更多>>
资源描述

《经由共享存储器结构的仲裁存储器访问.pdf》由会员分享,可在线阅读,更多相关《经由共享存储器结构的仲裁存储器访问.pdf(44页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104321758 A (43)申请公布日 2015.01.28 CN 104321758 A (21)申请号 201480000991.1 (22)申请日 2014.01.06 13/743795 2013.01.17 US G06F 13/14(2006.01) G06F 12/00(2006.01) (71)申请人 英特尔公司 地址 美国加利福尼亚州 (72)发明人 DF卡特 B范宁 R纳加拉简 JS尼尔 D伯恩斯泰因 D利马耶 IT肖瓦纳斯 R艾尔 (74)专利代理机构 中国专利代理(香港)有限公 司 72001 代理人 周学斌 姜甜 (54) 发明名称 经由。

2、共享存储器结构的仲裁存储器访问 (57) 摘要 在一个实施例中, 共享存储器结构被配置为 从多个代理接收存储器请求, 其中至少某些请求 具有相关联的期限值, 以指示在完成存储器请求 之前的最大延迟。 响应于该请求, 该结构用于至少 部分地基于该期限值来在请求之间进行仲裁。其 他实施例被描述并要求保护。 (30)优先权数据 (85)PCT国际申请进入国家阶段日 2014.09.30 (86)PCT国际申请的申请数据 PCT/US2014/010275 2014.01.06 (87)PCT国际申请的公布数据 WO2014/113225 EN 2014.07.24 (51)Int.Cl. 权利要求书。

3、 3 页 说明书 29 页 附图 11 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书29页 附图11页 (10)申请公布号 CN 104321758 A CN 104321758 A 1/3 页 2 1. 一种装置, 包括 : 结构装置, 其耦合在半导体设备的多个知识产权 (IP) 块和存储器控制器之间, 所述结 构装置用于从所述多个 IP 块接收存储器请求, 至少某些存储器请求具有与其相关联的期 限值, 以指示在完成所述存储器请求之前的最大延迟, 其中所述结构装置用于至少部分地 基于所述至少某些存储器请求的期限值来在所述多个存储器请求之间进行仲裁。 。

4、2. 根据权利要求 1 的装置, 其中所述结构装置包括 : 准许仲裁器装置, 其用于接收所述存储器请求并选择所述存储器请求之一来提供至存 储器调度器仲裁器装置 ; 以及 所述存储器调度器仲裁器装置耦合于所述准许仲裁器装置, 用于从多个存储器请求选 择第一存储器请求来提供至所述存储器控制器。 3. 根据权利要求 2 的装置, 其中所述准许仲裁器装置包括 : 第一仲裁器, 用以从所述多 个IP块的第一子集接收存储器请求并且从所述多个IP块的第二子集接收所述存储器请求 的第一部分, 以及第二仲裁器, 用以从所述多个 IP 块的第二子集接收所述存储器请求的第 二部分。 4. 根据权利要求 3 的装置,。

5、 其中所述多个 IP 块的第二子集包括延迟敏感设备。 5. 根据权利要求 4 的装置, 其中所述第二仲裁器进一步用于接收期限值, 其中从所述 多个 IP 块的第二子集接收所述存储器请求的第二部分中的每个。 6. 根据权利要求 2 的装置, 其中所述准许仲裁器装置可控制为操作于第一模式和第二 模式中, 在所述第一模式中, 在来自第一仲裁器的存储器请求内选择来自第二仲裁器的存 储器请求, 以及在所述第二模式中, 在选择来自第二仲裁器的 N 个存储器请求之后选择来 自第一仲裁器的 M 个存储器请求, 其中从配置寄存器获得 M 和 N。 7. 根据权利要求 3 的装置, 其中所述准许仲裁器装置进一步包。

6、括第三仲裁器, 其耦合 于第一仲裁器和第二仲裁器的输出并在该第一和第二仲裁器的输出之间进行仲裁。 8. 根据权利要求 2 的装置, 其中所述存储器调度器仲裁器装置用于至少部分地基于所 述存储器请求的地址信息来重排序无序的存储器请求。 9. 根据权利要求 8 的装置, 其中所述存储器调度器仲裁器装置用于至少部分地基于与 存储于结构的计分板的条目中的存储器请求相关联的页面命中状态信息来重排序无序的 存储器请求。 10.根据权利要求1的装置, 进一步包括耦合于第一IP块的接口装置, 所述接口装置包 括期限装置, 用于基于针对所述第一 IP 块的第一存储器请求的延迟需求和从结构提供至 所述第一 IP 。

7、块的全局定时器值来生成所述期限值。 11.根据权利要求8的装置, 进一步包括期限检查器, 用以从所述第一IP块接收所述期 限值并且基于所述期限值和全局定时器的值来将所述第一存储器请求路由至第一仲裁器 或第二仲裁器。 12.根据权利要求1的装置, 进一步包括资源分配装置, 用于针对所述多个IP块中的每 一个, 在所述结构装置的多个共享资源中保留虚拟条目。 13.根据权利要求12的装置, 其中所述资源分配装置进一步用于将所述多个IP块中的 每一个限制为预定数量的多个共享资源。 14. 根据权利要求 12 的装置, 其中所述多个共享资源包括清除池, 所述清除池具有多 权 利 要 求 书 CN 104。

8、321758 A 2 2/3 页 3 个条目, 每一个条目用于存储写请求, 其中所述资源分配装置用于将所述多个条目限制于 清除限制, 并且其中所述准许仲裁器装置用于当所述清除池的大小等于所述清除限制时阻 止进入的写请求。 15. 一种方法, 包括 : 从与片上系统 (SoC) 的共享存储器结构耦合的多个设备中的设备接收存储器请求, 所 述存储器请求与期限值相关联 ; 响应于所述期限值小于延迟阈值, 将所述存储器请求转发至所述共享存储器结构的第 一仲裁器 ; 至少部分地基于所述多个设备的年龄值来在所述第一仲裁器中执行包括所述存储器 请求的第一多个存储器请求之间的仲裁, 并且将所述第一多个存储器请。

9、求中的胜者存储器 请求转发至所述共享存储器结构的最终仲裁器 ; 并且 在所述最终仲裁器中执行最终仲裁, 以选择最终存储器请求以便存储在所述共享存储 器结构的计分板中。 16. 根据权利要求 15 的方法, 进一步包括响应于所述期限值大于所述延迟阈值来将所 述存储器请求转发至第二仲裁器, 至少部分地基于所述多个设备的年龄值来在所述第二仲 裁器中执行包括所述存储器请求的第二多个存储器请求之间的仲裁, 并且将所述第二多个 存储器请求中的胜者存储器请求转发至所述最终仲裁器。 17. 根据权利要求 15 的方法, 进一步包括确定与所述最终存储器请求相关联的设备的 权重值是否等于预定值, 并且如果是这样,。

10、 则将所述权重值更新为配置值并且更新用于所 述多个设备中的其他设备的年龄值。 18. 根据权利要求 17 的方法, 进一步包括当与所述最终存储器请求相关联的设备的权 重值不等于所述预定值时, 递减与所述最终存储器请求相关联的设备的权重值。 19. 根据权利要求 15 的方法, 进一步包括 : 经由所述共享存储器结构的存储器调度器从所述计分板选择存储器请求, 以用于递送 至存储器控制器 ; 并且 如果与所选择的存储器请求相关联的设备的权重值等于预定值, 则从所述存储器调度 器内的进一步仲裁屏蔽所述设备。 20. 根据权利要求 19 的方法, 进一步包括确定所述多个设备中的每一个的权重值是否 等于。

11、所述预定义值, 并且如果是这样, 则将所述多个设备中的每一个的权重值更新为配置 值。 21. 一种片上系统, 包括 : 多个核, 均用于独立地执行指令 ; 多个图形引擎, 均用于独立地执行图形操作 ; 对应于第一延迟敏感设备的第一内容渲染设备 ; 对应于第二延迟敏感设备的第二内容渲染设备 ; 以及 结构装置, 其耦合于所述多个核、 所述多个图形引擎、 所述第一和第二内容渲染设备和 存储器控制器装置, 所述结构装置从所述多个核、 所述多个图形引擎和所述第一和第二内 容渲染设备接收存储器请求, 其中来自所述第一和第二内容渲染设备的存储器请求具有与 其相关联的期限值, 以指示在完成所述存储器请求之前。

12、的最大延迟, 所述结构装置用于至 权 利 要 求 书 CN 104321758 A 3 3/3 页 4 少部分地基于来自所述第一和第二内容渲染设备的存储器请求的所述期限值来在所述存 储器请求之间进行仲裁。 22. 根据权利要求 21 的系统, 其中所述结构装置进一步包括 : 准许仲裁器装置, 其用于接收所述存储器请求并选择所述存储器请求之一来提供至存 储器调度器仲裁器装置 ; 以及 所述存储器调度器仲裁器装置耦合于所述准许仲裁器装置, 用于从多个存储器请求选 择第一存储器请求来提供至所述存储器控制器。 23. 根据权利要求 22 的系统, 其中所述准许仲裁器装置包括 : 第一仲裁器, 用以从所。

13、述 多个核和所述多个图形引擎接收所述存储器请求并且从所述第一和第二内容渲染设备有 条件地接收至少某些存储器请求, 以及第二仲裁器, 用以从所述第一和第二内容渲染设备 接收所述存储器请求。 24. 根据权利要求 22 的系统, 其中所述存储器调度器仲裁器装置用于至少部分地基于 所述存储器请求的地址信息和与存储于结构的计分板的条目中的存储器请求相关联的页 面命中状态信息来重排序至少某些无序的存储器请求。 25. 根据权利要求 23 的系统, 进一步包括期限检查器, 用以从所述第一内容渲染设备 接收与第一存储器请求相关联的期限值, 并且基于所述期限值和全局定时器的值来将所述 第一存储器请求路由至所述。

14、第一仲裁器或所述第二仲裁器。 26. 一种通信设备, 其被布置为执行权利要求 15 至 20 中的任一项的方法。 27. 至少一个机器可读介质, 其包括多个指令, 所述多个指令响应于在计算设备上被执 行, 使所述计算设备执行根据权利要求 15 至 20 中的任一项的方法。 28. 一种用于处理指令的装置, 其被配置为执行权利要求 15 至 20 中的任一项的方法。 29. 一种装置, 包括用于执行权利要求 15 至 20 中的任一项的方法的装置。 权 利 要 求 书 CN 104321758 A 4 1/29 页 5 经由共享存储器结构的仲裁存储器访问 背景技术 0001 在具有多个设备的多个。

15、计算机系统中, 仲裁被执行以提供对诸如共享存储器的共 享资源的访问。不同类型的仲裁机制被提供以使能不同的代理或请求者之间的仲裁。某些 系统使用固定优先级仲裁系统, 其中不同的代理被分配特定的优先级。 然而, 这可导致使用 中的不公平性以及一个或多个代理的获得对共享资源访问的能力的匮乏。 其他仲裁系统提 供基于循环法 (round robin) 的途径, 以分配对共享资源的访问。 0002 在任一种事件中, 被执行的仲裁未考虑关于共享资源的因素, 诸如其功率状态。 由 此, 许可访问共享资源的请求使该资源退出低功率状态, 尽管设备不需要对共享资源的如 此立即的访问。因此, 当前仲裁系统受各种缺点。

16、的影响。 附图说明 0003 图 1 为根据本发明的实施例的共享存储器结构的一部分的框图。 0004 图 2 为根据本发明的实施例的准许仲裁器的进一步细节的框图。 0005 图 3 为根据本发明的一个实施例的用于在确定仲裁胜者时为代理更新年龄值的 方法的流程图。 0006 图 4 为根据本发明的实施例的准许仲裁器状态机的框图。 0007 图 5 为根据本发明的实施例的用于在准许仲裁器中执行第一级仲裁的方法的流 程图。 0008 图 6 为根据本发明的实施例的资源分配逻辑的一部分的框图。 0009 图 7 为根据本发明的实施例的计分板索引生成逻辑的框图。 0010 图 8 为根据本发明的实施例的。

17、用于调度器仲裁器的状态机的框图。 0011 图 9 为根据本发明的实施例的用于执行存储器调度的方法的流程图。 0012 图 10 为根据本发明的实施例的 SoC 的框图。 0013 图 11 为根据本发明的实施例的呈现于计算机系统中的组件的框图。 具体实施方式 0014 在各种实施例中, 共享存储器结构将多个独立设备 ( 本文也称为代理 ) 耦合至共 享存储器 ( 例如, 经由介入的存储器控制器 )。在许多实施例, 共享存储器结构为单管芯半 导体设备的互连构造, 其包括不同类型的知识产权 (IP) 逻辑块。共享存储器结构被配置为 能够实现与用于时间先决等时 (time critical iso。

18、chronous) 设备的服务质量 (QoS) 需 求的兼容, 同时还提供用于非等时 (non-isochronous) 设备 ( 本文也称为尽力而为 (best effort) 设备 ) 的存储器带宽比例划分。 0015 以这种方式, 存储器带宽的可靠且可预测的分配和调度出现以支持连接于共享存 储器结构的多个设备和设备类型。通过在公共共享存储器结构 ( 而不是存储器控制器或其 他非结构电路)中包括QoS功能, 由于设计独立于存储器技术, 设计可跨越多个半导体设备 ( 诸如片上系统 (SoC) 被更简单地重复使用。 说 明 书 CN 104321758 A 5 2/29 页 6 0016 由此。

19、, 实施例在共享存储器结构中执行资源分配、 带宽分派和时间感知 QoS 属性, 以提供可预测且可靠的存储器带宽和延迟, 从而满足连接于该结构的设备的需求。 0017 服务类种类被分配至耦合于共享存储器结构的每个设备。在一个实施例中, 该分 配可利用结构的配置寄存器来标识。多个服务类可由该结构支持。尽管本发明的范围不限 于这点, 但在一个实施例中, 两个服务类的设备可被呈现, 包括等时服务类种类, 其用于延 迟敏感设备, 以及尽力而为服务类种类, 其用于可容许更长延迟来服务其对存储器的请求 的设备。 尽管本发明的范围不限于这点, 但在某些实施例中, 延迟敏感设备包括内容渲染设 备, 诸如音频或视。

20、频播放器、 照相机设备等, 而更低优先级设备包括处理器核、 图形处理单 元等。 0018 以请求期限的形式, 将时间从等时设备传送至该结构, 以指示该结构对于完成对 存储器的请求的所需要的延迟。 为使能同步, 结构将全局定时器广播至所有等时请求代理。 该全局定时器在来自结构的输出上被连续驱动, 使得其可用于由等时设备进行采样。响应 于该时间值, 代理确定用于完成请求的延迟需求, 并将该延迟值增加至全局定时器值, 以形 成用于请求的期限。作为示例, 用于读取的延迟可通过代理由代理的数据缓冲器的数据量 和缓冲器的流失率来确定。 如果代理每250纳秒(ns)消耗1个数据缓存线并且在缓冲器中 具有 8。

21、 个数据缓存线, 则在缓冲器为空之前, 针对新的请求的所需要的期限将为 8250ns 或 2 微秒 (us)。基于该传送的延迟值或期限值, 该结构可基于存储器当前功率状态和针对 结构中未决的其他未调度存储器请求的所需延迟的知识做出更好的调度决定。 该期限通信 可改进存储器带宽并且还节省了系统功率。 0019 请求期限的使用为该结构提供了用于来自等时设备的每个请求的延迟信息。 在该 结构内编程的配置寄存器为该结构提供了关于存储器配置的信息, 诸如存储器退出低功率 ( 例如, 自刷新 ) 状态需要的延迟。结构还通过 ( 例如, 以状态通道的形式 ) 发送指示至存 储器控制器来控制存储器控制器何时使。

22、所附着的存储器进入和退出自刷新状态。 该结构通 过评估针对所有未决的存储器请求的延迟需求来确定存储器何时应当进入和退出自刷新。 因为该结构具有用于所有未决的存储器请求所需要的延迟和退出自刷新所需要的延迟的 知识, 相对于现有技术, 对存储器的功率状态转变的更好的管理可能产生附加的节能。 0020 实施例还可在存储器带宽中通过允许存储器请求被无序调度来提供效率 ; 然而这 可能产生对于某些请求的较长的调度延迟。为解决此类顾虑, 该结构将优先级级别分配至 每个等时存储器请求, 例如, 高或低优先级。当调度高优先级等时请求时, 允许的无序调度 的量小于当调度尽力而为或低优先级等时请求时可接受的量。 。

23、限制针对高优先级请求的无 序调度的量被完成, 以便保证请求延迟需求被满足。因为请求优先级是根据请求的期限来 确定的, 所以该结构可紧接在请求被调度之后确定其他未决的请求的什么优先级级别是用 于等时设备的。 利用期限方法, 所有未决的请求的优先级级别仅当全局定时器递增时改变。 0021 实施例还可改进复杂QoS存储器调度算法跨多个SoC实现方式的便携性和重复使 用, 因为智能存储器调度逻辑被结合于该结构中, 同时技术特定的存储器控制器逻辑可在 存储器控制器内被实现。 0022 实施例还可将反匮乏 (anti-starvation) 算法结合到该结构的多个仲裁点中。在 一个实施例中, 该反匮乏算法。

24、包括由准许仲裁器使用的加权的基于年龄的仲裁方法和存储 器调度器和请求跟踪器中所使用的最老可用调度队列。此外, 请求权重可被用于在结构中 说 明 书 CN 104321758 A 6 3/29 页 7 的仲裁点处的不同的优先级级别之间切换并用于从调度读请求切换至写请求, 这与固定优 先级仲裁相反, 其中来自高优先级等时设备的请求始终获胜。 0023 在一个实施例中, 共享存储器结构包括两个仲裁点, 其被用于调度正被发送至存 储器控制器的请求。第一仲裁点被用于准许从设备到共享存储器结构中的请求, 并被称为 准许仲裁器。 第二仲裁点被用于调度从共享存储器结构发送至存储器控制器的请求并且称 为调度器仲。

25、裁器。 0024 连接于共享存储器结构的每个设备具有请求接口, 其连接在设备和结构之间。请 求接口提供关于可被用于 QoS 存储器调度的请求的信息。在一个实施例中, 该信息包括存 储器地址, 顺序 ID 字段和操作码字段。对于等时设备, 提供称为请求期限字段的附加字段 以指示完成请求所需要的所需延迟。注意的是, 在 SoC 的某些实现方式中, 存储器结构接口 可连接于允许多个设备共享公共请求接口的其他结构或开关。 0025 现参见图1, 示出了根据本发明的实施例的共享存储器结构的一部分的框图。 如图 1 中所示, 共享存储器结构 100 被耦合在多个代理 1150-1153( 统称为代理 11。

26、5) 和存储器控 制器 170 之间。注意, 在某些实施例中, 一个以上的存储器控制器被呈现。当然, 尽管为易 于说明而未示出, 要理解的是, 存储器控制器耦合于系统存储器, 诸如动态随机存取存储器 (DRAM) 或其他系统存储器。 0026 在图 1 所示的实施例中, 不同的类型的代理耦合于共享存储器结构 100。特别地, 不同的代理包括第一服务类 (COS) 代理类型, 即, 所谓的等时代理, 以及第二服务类代理类 型, 即所谓的尽力而为 COS 代理。如所见的, 每个代理 115 可将请求信息传送至准许仲裁器 120。进而, 准许仲裁器 120 可将对应的控制类型信息返回至该代理。此外,。

27、 等时代理 ( 即, 图 1 的实施例中的代理 1151和 1153) 进一步包括附加的链路, 以传送请求期限信息至准许 仲裁器 120。为此, 这些代理进一步被配置为从全局定时器 150 接收全局定时信息, 还耦合 于准许仲裁器 120 和调度器仲裁器 130 两者。 0027 在图 1 的实施例中, 准许仲裁器 120 可被配置为从代理 115 接收进入请求 ( 以及 来自等时代理的请求期限信息 ), 并选择合适的请求, 以准许调度器仲裁器 130。为辅助其 仲裁过程, 准许仲裁器120接收来自一组配置寄存器160的配置信息, 进一步耦合于调度器 仲裁器 130。此外, 请求和一致性跟踪器。

28、 140 可耦合于仲裁器 120 和 130。总体上, 跟踪器 140 可包括多个计分板 142、 数据缓冲器 144 和对应的地址标签存储装置 145、 控制队列 146 和其他资源, 诸如各种缓冲器、 逻辑, 诸如资源分配逻辑148, 等等。 在某些实现方式中, 标签 阵列和数据缓冲器可位于跟踪器以外的任何地方。尽管在图 1 的实施例中以这种高级别来 示出, 但理解的是, 本发明的范围不限于这点。 0028 共享存储器结构可包括某些有限资源, 其在来自请求代理的请求可由准许仲裁器 许可之前被首先分配。这些资源包括内部数据缓冲器中的可用条目以及地址标签存储装 置。其他有限资源包括存储器调度器。

29、中的可用条目和请求跟踪器计分板。资源中存在一对 一的对应关系, 用于该结构的内部数据缓冲器、 标签阵列和存储器调度器计分板。 在一个实 施例中, 这些资源被分配至存储器的预定区域 ( 例如, 缓存线宽度, 诸如 64 字节 )。每个活 动请求在请求和一致性跟踪器中还被分配其自身的条目, 但对存储器中的同一区域的多个 请求共享数据缓冲器、 标签阵列和存储器调度器计分板中的相同条目。尽管有可能使多于 1 个请求分配至同一数据缓冲器、 标签阵列和调度器计分板条目, 但仅 1 个读请求被调度至 说 明 书 CN 104321758 A 7 4/29 页 8 存储器控制器, 用于在请求和一致性跟踪器中的。

30、所有未完成的读请求。 0029 用于所有设备的请求接口连接至该结构的准许仲裁器。 等时设备使用请求总线的 期限字段, 以对该结构指示完成请求所需要的延迟。该结构发送全局定时器值至附着于该 结构的所有等时设备。对于要发送至该该结构的每个请求, 等时设备例如在期限逻辑中确 定完成请求所需要的所需延迟并将该值增加至全局定时器的当前值, 以便创建请求期限。 不同的方法可由不同的等时设备使用, 以确定对于请求所需要的延迟, 但所有等时设备利 用请求接口的期限字段对该结构指示请求延迟。 0030 在一个实施例中, 准许仲裁器具有两个优先级级别。 仲裁器中存在高优先级路径, 其被用于紧急的等时请求。 如果请。

31、求代理被配置为等时代理并且请求的期限字段小于存储 于指定了阈值 ( 被称为紧急阈值 ) 的配置寄存器的值, 则请求被考虑为紧急。准许仲裁器 还具有低优先级路径, 其被用于尽力而为请求并用于未被考虑为紧急的等时请求。仲裁的 最终级别是利用优先级选择器来完成的, 该优先级选择器在高优先级仲裁的胜者和低优先 级仲裁的胜者之间进行选择。 0031 在一个实施例中, 准许仲裁器最终选择器具有两个模式, 其可利用配置寄存器来 选择。 第一模式为固定优先级模式, 其中, 假设至少一个高优先级请求被呈现于准许仲裁器 的输入处, 选择器在选择低优先级仲裁路径的胜者之前选择高优先级仲裁路径的胜者。最 终选择器的第。

32、二模式为加权循环法模式, 其中最终选择器在 N 个数量的高优先级请求被许 可之后, 在许可高优先级路径与许可低优先级路径之间进行切换。然后选择器在切换回到 许可来自高优先级路径的请求之前, 许可来自低优先级路径的胜者的 M 个数量的低优先级 请求。在一个实施例中, N 和 M 的值是利用配置寄存器所指定的。 0032 现参见图2, 示出了根据本发明的实施例的准许仲裁器的进一步细节的框图。 如图 2 中所示, 仲裁器 120 从请求代理接收进入的请求。在该图示中, 请求代理 1150和 1151为 非等时或尽力而为代理, 而代理 1152和 1153为等时代理。注意, 等时代理可包括或被耦合 于。

33、期限确定逻辑 118, 其被用于计算用于请求的所需要的延迟。在至少某些代理为第三方 IP 块的实施例中, 该逻辑可被实现于将代理耦合至共享存储器结构的包装器逻辑或接口逻 辑。 0033 在示出的实施例中, 准许仲裁器 120 包括第一基于年龄的仲裁器 122 和第二基于 年龄的仲裁器 124, 其分别对应于低和高优先级的基于年龄的仲裁器。由此如所见的, 来自 所有代理 115 的请求被提供至第一仲裁器 122, 而只有来自等时代理 1152和 1153的请求被 提供至第二仲裁器124。 为确定来自等时代理之一的特定请求是否具有紧急的状态, 一对期 限检查器逻辑1210和121n均被耦合, 以接。

34、收来自这些等时代理中对应的一个等时代理的请 求, 以及来自全局定时器 150 的全局定时信息。基于由代理和全局定时信息提供的期限信 息的比较, 可以将用于对应请求的紧急状态的指示提供至第二仲裁器 124。 0034 在操作中, 仲裁器 122 和 124 操作为从进入请求的集合中选择仲裁胜者。在示出 的实施例中, 此确定至少部分地基于来自年龄存储装置126的信息, 该年龄存储装置126存 储用于每个代理的年龄值。来自每个仲裁器的对应胜者可被耦合于优先级仲裁器选择器 125, 其基于操作模式选择对应请求, 以提供至调度器仲裁器130(为易于在图2中图示而未 示出)。 为此, 选择器125可至少部。

35、分地基于优先级存储装置129中的信息来选择用于对调 度器仲裁器的许可的请求。尽管在图 2 的实施例中以此高级别来示出, 但理解的是, 本发明 说 明 书 CN 104321758 A 8 5/29 页 9 的范围不限于这点。 0035 加权的基于年龄的仲裁细节 0036 由准许仲裁器实现的基于年龄的算法是这样的, 使得自从上次被仲裁器许可以来 已经等待最长久的请求代理将被给予最高优先级级别。 一旦代理已经接收到最高优先级级 别, 用于该代理的优先级级别就将不改变, 除非该代理已经被仲裁器所许可。以这种方式, 利用循环法仲裁所通常发现的匮乏问题可通过保证用于请求代理的优先级级别可仅在优 先级级别。

36、中增加, 直到该请求代理已被仲裁器所许可来避免。 0037 准许仲裁器还虑及要分配至所有请求代理的代理权重。 权重被用于分配用于每个 请求代理的请求带宽的百分比。在一个实施例中, 经由存储于代理权重配置寄存器的值为 每个代理指定权重。在一个实施例中, 分配至代理的请求带宽的百分比等于由用于所有代 理的权重的总和除以代理权重值。 0038 加权的基于年龄的算法 0039 准许仲裁器加权的基于年龄的算法是基于当请求代理最后一次由仲裁器许可时 的相对年龄。对于连接至准许仲裁器的每个请求代理, 存在一个实例化的年龄计数器和一 个实例化的权重计数器。 准许仲裁器中的高优先级和低优先级仲裁路径为连接于准许。

37、仲裁 器的代理共享公共年龄和权重计数器。在选择最终仲裁胜者之后, 请求代理的年龄和权重 寄存器的更新由最终选择器 ( 即, 优先级仲裁器选择器 125) 来确定。 0040 用于所有请求代理的年龄寄存器(例如, 年龄存储装置126)响应于接收对准许仲 裁器的复位输入而首先被初始化。 当复位断言时, 年龄寄存器被初始化至独特值, 其处于从 0 开始并且结束于值 N-1 的范围内, 其中 N 的值等于连接于准许仲裁器的请求接口的数量。 0041 在任何请求被请求代理断言之前, 代理权重计数器 ( 例如, 权重存储装置 128) 根 据该结构的代理权重配置寄存器的编程值来被初始化。一但权重计数器被初。

38、始化, 用于代 理的计数器对于为该代理所许可的每个请求递减 1。一旦代理的权重计数器达到 0 时并且 如果代理被准许仲裁器再次许可, 则计数器利用在配置寄存器中针对该代理的权重所编程 的值来重新加载。 0042 在一个实施例中, 执行于第一和第二仲裁器 122 和 124 中的基于年龄的仲裁方法 使用请求位向量(每个仲裁器具有其自身的向量), 以确定仲裁的胜者。 当针对该代理断言 请求时, 仲裁器将用于请求代理的年龄值用作请求的优先级级别。用于仲裁器的优先级级 别以及因此位向量宽度的范围是从 0 到 N-1。基于年龄的算法保证用于所有请求代理的年 龄值始终是独特的, 并且因此每次仲裁始终仅有一。

39、个胜者。 0043 当用于请求仲裁的胜者的权重计数器已达到 0 时, 仲裁器更新用于所有代理的年 龄寄存器。 在一个实施例中, 用于所有代理的年龄寄存器根据如下规则来更新, 这些规则保 证了用于该代理的年龄值始终为独特值。 0044 规则 1 : 当代理的年龄等于仲裁的胜者的年龄时, 用于该代理的年龄寄存器被设 置为 0, 以指示最年轻的请求年龄或最低优先级。 0045 规则 2 : 当代理的年龄小于仲裁的胜者时, 代理的年龄寄存器递增 1。 0046 规则 3 : 当代理的年龄大于仲裁的胜者时, 代理的年龄寄存器不改变。 0047 现参见图 3, 示出了用于在确定仲裁胜者时更新用于代理的年龄。

40、值的方法的流程 图, 其可被执行以当胜者的权重等于 0 时更新年龄值。如所见的, 方法 200 可由优先级仲裁 说 明 书 CN 104321758 A 9 6/29 页 10 器选择器所执行, 其开始于确定代理的年龄值是否等于胜者值(菱形210)。 如果是这样, 则 控制传递至框 215, 其中用于该获胜代理的年龄值可被更新为最低优先级级别, 其在一个实 施例中可等于 0。从框 215 和菱形 210 两者, 控制传递至菱形 220, 其中可确定年龄值是否 小于胜者值 ( 即, 对应于代理的年龄 )。如果是这样, 则控制传递至框 225, 其中代理的年龄 值可被更新, 例如, 递增。 如果这。

41、些条件都没有发生, 则代理的年龄大于仲裁的胜者, 并且因 此用于此特定代理的年龄值不改变。注意, 可在胜者被选择时在每个仲裁回合的结尾处对 每个代理执行方法 200。尽管在图 3 的实施例中以此高级别来示出, 但理解的是, 本发明的 范围不限于这点。 0048 现参见图4, 示出了根据本发明的实施例的准许仲裁器状态机的框图。 如图4中所 示的, 状态机250可呈现于图1的准许仲裁器120内, 其首先从复位断言进入初始化(INIT) 状态 255。从该状态, 控制传递至活动状态 260, 其中只要没有接收到请求, 该状态保持。当 请求被接收到并且被许可的代理具有权重 0 时, 控制传递至更新年龄。

42、状态 270, 其中年龄存 储装置被更新并且用于仲裁胜者的权重计数器被重新加载为 ( 例如, 从配置寄存器所获得 的)预定值。 然后控制传递至活动状态260、 递减代理权重状态280之一或保持在更新年龄 状态 270, 这取决于附加的请求是否存在以及被许可代理的权重的值。类似地, 在递减代理 权重状态 280, 胜者仲裁权重计数器被递减。但这里不执行权重计数器重新加载。尽管图 4 中以此高级别来示出, 但理解的是, 本发明的范围不限于这点。 0049 表 1 提供了根据本发明的一个实施例的准许体系结构的每个状态的描述。 0050 表 1 0051 0052 现参见图 5, 示出了根据本发明的实。

43、施例用于在准许仲裁器中执行第一级仲裁的 说 明 书 CN 104321758 A 10 7/29 页 11 方法的流程图。如图 5 中所示, 方法 300 可被执行于准许仲裁器内, 既用于在进入的存储器 请求间执行仲裁, 还用于基于仲裁来更新各种年龄和权重值。如图 5 所见, 方法 300 可开始 于从耦合于该结构的设备接收存储器请求 ( 框 310)。更特别地, 为说明来自延迟敏感设备 的与基于期限的请求有关的操作, 假设该存储器请求包括期限值或与期限值相关联并且因 此从等时或延迟敏感设备来提供。如一个这样的示例, 该延迟敏感设备为媒体播放器。如 所见的, 控制传递至菱形315, 其中可确定。

44、期限值是否大于延迟阈值。 在一个实施例中, 该延 迟阈值为从请求被接收的时间直到其被完成的最小延迟 ( 例如, 通过将所请求数据的提供 返回为针对写请求的写完成的请求设备提供)。 注意, 期限值在一个实施例中是请求设备可 容许处理存储器请求的最大延迟。 0053 仍参考图 5, 如果确定期限值大于延迟阈值, 则控制传递至框 320b, 其中存储器请 求被馈送至低优先级仲裁器。否则控制传递至框 320a, 其中存储器请求被馈送至高优先级 仲裁器。 0054 仍参考图 5, 注意, 并行路径的出现使得在框 325( 块 325a和 325b) 处, 仲裁被执行 于对应的仲裁器中, 该仲裁器基于与用。

45、于提供请求至该对应仲裁器的设备的年龄值相关联 的位向量。接下来, 在框 330( 块 330a和 330b) 处, 获胜存储器请求被馈送至最终仲裁器。 然后在框 335 处, 最终仲裁被执行以选择胜者存储器请求。根据针对该最终仲裁器的配置 模式, 胜者请求可仅选择自高优先级仲裁器或在高优先级和低优先级路径之间的加权可发 生。 因此, 此时获胜存储器请求被馈送至存储器调度器计分板, 在那里其可被存储于条目中 以因此使能存储器调度器仲裁器中的仲裁, 从而考虑该存储器请求。 0055 仍参考图 5, 各种更新操作可进一步响应于由最终仲裁器选择胜者而执行。具体 地, 在菱形 340 处可确定胜者代理的。

46、权重值是否等于 0。如果是这样, 则控制传递至框 345, 其中该权重值可被更新为其配置值, 例如, 存储于共享存储器结构的配置寄存器中的配置 值。控制接下来传递至框 350, 其中用于所有代理的年龄值可被更新 ( 框 350)。为此, 所有 非获胜代理可使其年龄值递增, 而获胜代理可使其年龄值被设置为最低优先级值, 例如 0。 如果相反在菱形 340 确定胜者代理的权重不是 0, 则控制传递至框 355, 其中胜者代理的权 重值被递减。尽管图 5 的实施例中以该高级别来示出, 但理解的是, 本发明的范围不限于这 点。 0056 共享资源分配的共享存储器结构 0057 存储器结构包括在结构内虑。

47、及共享资源的公平分配的逻辑, 例如, 图 1 的资源分 配逻辑 148。在一个实施例中, 这些共享资源为结构的内部数据缓冲器、 地址标签存储装置 和请求跟踪器计分板。由于没有用于任何请求代理的专用资源, 机构可限制在结构中对于 每个代理未决的未完成的请求的数量, 同时还允许例如通过在这些共享资源中保留虚拟条 目来为代理保留条目。结构虑及代理限制的规范, 以防止任一个请求代理用尽结构的所有 可用共享资源。 0058 一部分存储器调度算法应对最小化针对存储器技术的由读至写的周转时间的性 能影响。为了最小化存储器调度器在调度读请求到调度写请求之间进行切换的次数, 清除 池 (flush pool) 。

48、被用于将请求排队。清除池允许将存储器定为目标的写请求在存储器结 构中积累被直到足够的写请求已被接收, 以允许该结构的存储器调度器将写请求作为一连 串背对背请求发送至存储器控制器。为了防止结构中所有可用资源被清除池用尽, 可指定 说 明 书 CN 104321758 A 11 8/29 页 12 清除限制。 当被指定时, 清除限制使结构在准许仲裁器处阻止来自所有代理的新的写请求, 直到清除池中条目的数量小于针对该清除池所编程的值。 0059 用于写请求的存储器结构清除池 0060 当从请求代理接收写请求时, 该结构将写数据从请求代理传输至内部数据缓冲 器。一旦新的数据被写入结构的内部数据缓冲器中。

49、并且从代理的角度回收请求, 缓冲器条 目被认为是处于 “清除池” 中。对于一致性存储器通信量而言, 该结构可从请求代理接收嗅 探请求。嗅探请求可以是对存储器的读或写请求。当该结构从请求代理接收嗅探读或写请 求时, 其发送嗅探请求至耦合于该结构的所有缓存代理。缓存代理将响应于在其缓存中命 中的嗅探请求并将针对已由缓存代理所修改的缓存线返回写回 (WB) 数据。WB 数据然后被 写入该结构的内部数据缓冲器中并然后被认为是被包括于将存储器定为目标的写请求的 清除池中。当清除池中条目的数量达到为清除限制所编程的值时, 新的写请求, 例如, 如通 过编码清求操作码字段所确定的写请求, 在准许仲裁器处被阻止。 0061 存储器结构保留和限制 0062 存储器结构允许利用代理保留配置寄存器来针对任何代理指定保留。 利用这些配 置寄存器, 用户可指定存储器结构中条目的数量以针对每个代理进行保留。用于代理的保 留条目是分配至代理的第一条目和将针对代理所回收的最后条目。 为了确定代理的保留条 目是正被分配还是回收, 每个代理具有请求。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1