当前位置: 首页 > 专利查询>ARM有限公司专利>正文

确定链接数据储存器中存储和重写的项目的数据存储协议制造技术

技术编号:4032954 阅读:203 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及确定链接数据储存器中存储和重写的项目的数据存储协议。公开了存储多个项目的存储装置和方法。存储装置配置为在相同时钟周期内接收访问相应项目的第一和第二访问请求。存储装置包括:均存储多个项目的子集的两个储存器,第一访问请求路由到第一储存器且第二访问请求路由到第二储存器;遗漏检测电路,检测请求的项目未存储在被访问储存器中的遗漏;项目检索电路,从另外储存器中检索其访问产生遗漏的项目;更新电路,根据两个储存器的相应一个的访问历史选择在相应储存器中重写的项目,更新电路响应于遗漏检测电路在对第一储存器的访问中检测到遗漏和至少一个另外条件,而通过重写所选项目用从另外储存器中检索的项目来更新两个储存器。

【技术实现步骤摘要】

本专利技术的领域涉及数据存储装置,并且具体而言,涉及每时钟周期接收多个访问 请求的数据存储装置。
技术介绍
数据处理器处理要求相当大的存储容量的越来越大的数据量。访问诸如存储器的 大型数据储存器耗费时间。因此,技术已演进至将处理器可能需要的数据的子集存储在比 如低级高速缓存之类的易于访问的较小数据储存器中,如果需要不在该子集内的数据,则 对诸如较高级高速缓存或存储器的一个或多个较大储存器进行访问。使得较小数据储存器易于访问以改善处理器速度,然而,要实现它们在功率和面 积方面成本高昂,并且因此,重要的是其存储处理器很可能将需要的项目(item)。如果其未 存储所需数据,则其仅仅增加面积并消耗功率,而不增加益处。实际上,这些数据储存器的 命中率对于处理器功率消耗和性能而言非常重要。此类数据储存器的一个示例是转换旁视缓冲器(translation lookaside buffer)或TLB。具有虚拟存储器的大多数现代微处理器具有被虚拟寻址、物理映射的数据 高速缓存。因此,所有存储器读和写需要在能够访问寻址的存储位置之前使其虚拟地址转 换成物理地址。此转换通常由称为TLB的小转换高速缓存进行。如果TLB不包含所请求 的转换,则必须从后备的2级TLB或从访问存储器中的页表的存储器管理逻辑中检索转换 信息。这些TLB中的命中率对于处理器性能而言非常重要。即便用后备L2TLB,TLB遗漏 (miss)造成的损失仍对总体性能具有显著影响。许多现代微处理器可以每周期发出两个存储器访问,一个加载且一个存储,并且 因此,这些需要两个TLB或双端口 TLB进行转换。双端口 TLB具有与双TLB解决方案几乎 相同的面积,并且实际上可以实现为两个TLB。双端口 TLB具有实际上每个条目被存储两次 的缺点。在每个能够存储不同条目的两个独立TLB正在访问存储器的不同区域的情况下, 使用这两个TLB具有能够比双端口 TLB存储更多的条目并因此能够提供更好性能的优点。然而,存在加载和存储将是针对相同数据项目的若干情况,并且如果这些最近未 被访问,则在该双TLB实施方式中,加载TLB和存储TLB中都将存在遗漏。因此,这两次访 问都会遭受时间损失。在双端口 TLB中,很明显,加载TLB将已经存储数据,使其可用于存 储 TLB。因此,这两种实施方式都具有缺点。期望的是能够提供一种具有双端口和独立存储机制两者的至少某些优点的系统。
技术实现思路
本专利技术的第一方面提供一种用于存储多个项目的存储装置,所述存储装置被配置 为在相同时钟周期内接收用于访问相应项目的第一访问请求和第二访问请求,所述存储装 置包括两个储存器,每个储存器用于存储所述多个项目的子集,所述第一访问请求被路由到第一储存器且所述第二访问请求被路由到第二储存器;遗漏检测电路,其用于检测其中 所请求的项目未被存储在所述被访问储存器中的遗漏;项目检索电路,其用于从另外的储 存器中检索其访问产生遗漏的项目;更新电路,其用于根据所述两个储存器中的相应一个 的访问历史选择要在所述相应储存器中重写的项目,所述更新电路响应于所述遗漏检测电 路在对所述第一储存器的访问中检测到所述遗漏并响应于至少一个另外的条件而通过重 写所述所选项目用从所述另外的储存器中检索的所述项目来更新所述两个储存器二者。 本专利技术认识到,当在相同时钟周期中发生两个访问请求时,它们可能是相关的,并 且如此,在也允许每个数据储存器独立存储数据的同时提供它们正在访问的这两个数据储 存器之间的某种关联可能是有利的。因此,本专利技术提供对遗漏和至少一个另外的条件进行 响应而通过重写所选项目来用所检索的项目更新这两个储存器的更新电路。基于实际数据 储存器的访问历史来选择这些项目,并且因此,可以在每个储存器中独立地重写最近未被 访问的项目。因此,如果第一访问请求之一访问第二访问请求将不需要的项目,则此项目将 被存储在第二数据储存器中但不会被使用,并且如此,更新电路不久将选择它以进行重写。 然而,如果这两个访问请求正在访问共同的项目,则至少某些第二访问请求将需要被第一 访问请求访问的项目,并且该项目在第二数据储存器中的存储将已提供某些益处。 在某些实施例中,所述更新电路被配置为识别产生所述遗漏的所述项目是否被存 储在所述第二储存器中,所述至少一个另外的条件是检测到所述项目未被存储在所述第二 储存器中。更新电路可以识别在第一储存器中产生遗漏的项目是否被存储在第二储存器中。 如果其未被存储在第二储存器中,则这是所述至少一个另外的条件,并且意味着所述更新 电路将通过重写所选项目用所检索的项目来更新第一和第二储存器两者,所述项目是响应 于其访问历史而选择的。在其它实施例中,所述更新电路响应于检测到产生所述遗漏的所述项目存在于所 述第二储存器中而从所述第二储存器检索所述项目并通过重写由所述更新电路选择的所 述项目来将所述项目复制到所述第一储存器。如果产生遗漏的项目存在于第二储存器中,则在某些实施例中,从第二储存器检 索此项目并将其复制到第一储存器中的由更新电路所选的位置中。这在从另外的储存器取 回该项目将需要许多时钟周期的情况下可能是有利的。这可以在所述另外的储存器是诸如 片外存储器的难以访问的储存器的情况下发生。在其它实施例中,所述更新电路响应于检测到产生所述遗漏的所述项目存在于所 述第二储存器中而选择所述项目以用于重写并根据所述第一储存器的项目访问历史选择 所述储存器中用于重写的项目,所述更新电路被配置为用从所述另外的储存器检索的所述 项目重写所述所选项目。如果该另外的储存器不是远程且难以访问的,则如在其它情况下执行的那样仅仅 从所述另外的储存器取回数据项目并在第二储存器中用取回的值来重写此项目且将其写 入第一储存器中的由更新电路基于访问历史所选的位置中可能更简单。虽然所取回的值应 与存储在第二储存器中的值相同,但重写该值可能是有利的,因为这将保证这两个数据储 存器永不包含用于相同项目的不同转换或属性。虽然软件应永远阻止这种情况发生,但在 这种情况下可以通过始终重写该条目来减少确认工作。在其它实施例中,在第二储存器中不重写此条目,仅仅使其保持原样且没有项目 被写入第二储存器,并且所检索的项目被写入第一数据储存器中的由更新电路所选的地点 处。在某些实施例中,从所述另外的储存器检索的所述项目具有表示与之相关的所述 数据的属性的属性数据,所述至少一个另外的条件包括所述属性数据,所述更新电路响应 于所述属性数据不具有预定值而用所述检索的项目更新所述第二储存器和所述第一储存 器以及响应于所述属性数据具有所述预定值而不用所述检索的项目更新所述第二储存器 且用所述检索的项目更新所述第一储存器。在某些情况下,所存储的项目可以具有与之相关的属性信息。在判定是否要更新 项目时使用此信息可能是有利的。例如,如果所述第一访问请求是加载(存储器读)请求且所述第二访问请求是存 储(存储器写)请求,并且所述预定值是指示与所述值相关的所述数据是只读数据的值,则 在这种情况下,很明显,绝不会在存储(存储器写)流水线中使用所检索的项目,并且如此, 不应将其写入在此流水线中的第二储存器。因此,使用此进一步的信息可以通过不使用已 知永不需要的项目重写第二储存器中可能需要的项目来提高本文档来自技高网
...

【技术保护点】
一种用于存储多个项目的存储装置,所述存储装置被配置为在相同时钟周期内接收用于访问相应项目的第一访问请求和第二访问请求,所述存储装置包括:两个储存器,每个储存器用于存储所述多个项目的子集,所述第一访问请求被路由到第一储存器且所述第二访问请求被路由到第二储存器;遗漏检测电路,其用于检测其中所请求的项目未被存储在所述被访问储存器中的遗漏;项目检索电路,其用于从另外的储存器中检索其访问产生遗漏的项目;更新电路,其用于根据所述两个储存器中的相应一个的访问历史选择要在所述相应储存器中重写的项目,所述更新电路响应于所述遗漏检测电路在对所述第一储存器的访问中检测到所述遗漏并响应于至少一个另外的条件而通过重写所述所选项目用从所述另外的储存器中检索的所述项目来更新所述两个储存器二者。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:PG迈尔DJ威廉森SJ克拉斯克
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1