存储回放政策的制作方法_4

文档序号:8435820阅读:来源:国知局
更。
[0044] 根据一个或多个实施方案,SQ 410可以被配置来维持失准可高速缓冲存储(即, 跨越高速缓存线边界的可高速缓冲存储)。在这种情况下,SQ 410可以包括复制入口 413a2-n2(未示出),其与每个入口 413a-n分组在一起以有效地使每个入口 413的存储容 量加倍(例如,对于失准可高速缓冲存储的每一半,分别是入口 413a和入口 413a2。失准可 高速缓冲存储的执行可以依如本文参照对准(正常)可高速缓冲存储所描述的相称方式形 成。应注意,失准可高速缓冲存储的每一半可以一起、独立地、实质上平行地或依重叠方式 执行和/或回放。相似地,每一半的提交可以同期地、同时地或依非重叠间隔或循环进行。
[0045] 选择单元430可以是或包括具有一个或多个可选择输入的多路复用器,或可以是 被配置来基于选择信号从SQ 410选择输入的电路。在一些实施方案中,选择信号可以通 过仲裁单元475提供到选择单元430。仲裁单元475可以基于一个或多个仲裁算法提供选 择信号,包括但不限于公平算法(例如,循环仲裁)、基于年限的仲裁或实施方式专属算法。 在一些实施方案中,一个或多个仲裁算法可以供系统软件选择,可以硬接线到仲裁单元475 中,或可以依其它方式实施,如获益于本公开的本领域的一般技术人员应了解。根据各个实 施方案,一个或多个仲裁算法可以根据设计和/或操作考虑、在系统启动时、动态地或在其 它适当时间变更。
[0046] 回放逻辑单元440可以配置有用于进行和/或促进可高速缓冲存储的执行和/或 回放的逻辑。在各个实施方案中,这可以根据本文所描述的一个或多个回放政策进行。回 放逻辑单元440可以从选择单元430接收输入(例如,将执行和/或回放的可高速缓冲存 储)。回放逻辑单元440还可以被配置来与高速缓存130、MAB 499和/或R0B 495 (如下 文将更详细论述)以及处理器(例如,CPU 140/GPU 125/内核)或系统(例如,计算机系 统100)中的其它适当元件通信。
[0047] 现转向图6,示出如一个或多个实施方案中的可高速缓冲存储的执行的简化时间 线。可高速缓冲存储的执行可以包括一个或多个阶段。阶段可以是所述执行的部分,其可 以由所述执行期间的不同事件来界定。虽然不限于此,但现根据一个实施方案描述按阶段 的示例性执行。在可高速缓冲存储首先调度到加载-存储单元(例如,LS/AGU 498)时,可 高速缓冲存储的执行可以开始于阶段一 510。在阶段一 510期间,可高速缓冲存储可以等待 例如将由地址生成单元(AGU)(未示出)生成的其线性地址。阶段二520可以在可高速缓 冲存储具有地址之后开始且可以持续到可高速缓冲存储将完成信号发到R0B 495为止。在 阶段二520期间,可高速缓冲存储可具有其"初始拾取",此时可高速缓冲存储确定是否存 在其相关联高速缓存线。阶段三530可以在TLB 485查找完成之后开始且可以持续到R0B 495指示可高速缓冲存储已撤销为止。在阶段三530期间,可高速缓冲存储仍可以被视为是 推测的。阶段四540可以在可高速缓冲存储撤销时与可高速缓冲存储变成系统中的绝对最 旧可高速缓冲存储时之间发生。如上文所描述,SQ 410可以被配置来保存或维持诸多可高 速缓冲存储处于这个撤销后状态(例如,在阶段四540开始之后),且出于架构原因,可能需 要按序提交可高速缓冲存储。为此,在阶段四540期间,可高速缓冲存储可以继续等待直到 其成为系统中的最旧可高速缓冲存储为止。预想如果系统中不存在更旧可高速缓冲存储, 那么可高速缓冲存储可以直接从阶段三530跳转到阶段五550。阶段五550可以在可高速 缓冲存储成为最旧可高速缓冲存储之后开始,且可以持续到可高速缓冲存储提交(将数据 写入到高速缓存)为止,此时可以将可高速缓冲存储从SQ 410删除。
[0048] 应注意,图6中所描绘的时间线不一定按比例绘制且执行或回放的不同阶段可以 短于或长于所示阶段。然而,在一些实施方案中,所述阶段的相对持续时间可以近似等于图 6中所示的持续时间。此外,根据处理器的架构规则和要求,可以跳过或重复不同执行阶段。
[0049] 现转向图7,示出示例性流程图600,其描绘一些实施方案中的可高速缓冲存储的 执行和回放。如图7中所示,可高速缓冲存储的执行和回放可以根据本文所描述的实施方 案和回放政策进行。此外,如上文所述,获益于本公开的本领域的一般技术人员应认识到, 本文所描述的流程和实施方案还可以经修改以容纳失准可高速缓冲存储。
[0050] 在602处,可以在处理装置中接收可高速缓冲存储以供执行。可以在图5中所描述 的SQ 410处和/或在进行可高速缓冲存储的执行所必需的处理装置的其它元件处接收所 述可高速缓冲存储。在一些实施方案中,在可高速缓冲存储的执行期间,SQ 410可以通过处 理装置或处理装置执行管线保存或维持所述可高速缓冲存储。在605处,可以开始可高速 缓冲存储的执行,且所述流程可以进入610,其中所述可高速缓冲存储可以调度到加载-存 储单元(例如,LS/AGU单元498),其中在615处可以由地址生成单元(例如,LS/AGU单元 498)生成可高速缓冲存储的线性地址。所述流程可以进入620,其中由例如SQ 410接收线 性地址。在625处,TLB可以确定TLB入口是否存在可高速缓冲存储的线性地址。在630处 完成TLB查找之后,所述执行流程可以进入635,其中R0B (例如,R0B 495)可以指示可高速 缓冲存储已撤销。或者,所述流程可以从630进入675a,其中一个或多个回放可以根据本文 所描述的各种回放政策进行。在一些实施方案中,在675a处的回放可以响应于其初始拾取 (在阶段2中)是不良回放而重复,直到其已进行可配置数量的良好回放为止。例如,在这 个阶段中,所述存储可以回放直到其已进行一个良好回放为止。在进行一个良好回放之后, 所述存储可能不被允许再次回放直到其被撤销为止。
[0051] 所述流程可以从675a进入635以撤销可高速缓冲存储。
[0052] 所述流程可以从635进入640,其中可高速缓冲存储继续等待直到其成为系统中 的最旧可高速缓冲存储为止。或者,所述流程可以从635进入675b,其中可以进行一个或多 个回放。在一些实施方案中,在675b处的回放可以重复直到其已进行可配置数量的良好回 放为止,而不管在所述存储撤销之前尝试的回放的任何回放结果是什么。例如,在这个阶段 中,所述存储可以回放直到其已进行一个良好回放为止。在进行一个良好回放之后,所述存 储可能不被允许再次回放直到所述存储成为存储队列中的最旧存储为止。
[0053] 所述流程可以从675b进入640,其中可高速缓冲存储继续等待直到其成为系统中 的最旧可高速缓冲存储为止。
[0054] 在可高速缓冲存储成为最旧可高速缓冲存储时,所述流程可以从640进入645,其 中将与所述可高速缓冲存储相关联的数据提交或写入到高速缓存(例如,高速缓存130)。 或者,所述流程可以从640进入675c,其中可以进行一个或多个回放。在一些实施方案中, 根据需要经常重复在675c处的回放,例如,直到高速缓存线处于可写入状态为止。所述流 程可以从675c进入645,其中将与所述可高速缓冲存储相关联的数据提交或写入到高速缓 存。应注意,如果不存在其它可高速缓冲存储,那么所述流程可以从635进入645,而(在 640处)所述可高速缓冲存储无需等待变成最旧可高速缓冲存储。还预想,如上文所描述, 在跳过640时,所述流程可以在继续645之前进入675d。在675d处,一个或多个回放可以 根据本文所描述的各种回放政策或其它回放政策进行。在675c处的回放可以根据回放政 策所要求重复。在数据已提交到高速缓存之后,所述流程可以从645进入650,其中将可高 速缓冲存储从SQ(例如,SQ 410)删除。
[0055] 在一些实施方案中,可以使用存储的信息(诸如存储队列中的位或寄存器)来配 置回放政策的方面。例如,在回放675a_d期间允许的可配置数量的回放可以存储在一或多 个位或寄存器中。对于回放675a_d中的每个,可配置数量的回放可以相同,或对于一个或 多个回放675a-d,可配置数量的回放可以不同。所述位或寄存器可以使对软件可见使得其 可被所述软件读取或修改。获益于本公开的本领域的一般技术人员还应明白,本文所描述 的回放675a-d意在作为实例。替
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1