《经由共享存储器结构的仲裁存储器访问.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 存储器结构允许利用代理保留配置寄存器来针对任何代理指定保留。 利用这些配 置寄存器, 用户可指定存储器结构中条目的数量以针对每个代理进行保留。用于代理的保 留条目是分配至代理的第一条目和将针对代理所回收的最后条目。 为了确定代理的保留条 目是正被分配还是回收, 每个代理具有请求。