用以加速高速缓冲存储器存取的高速缓冲存储器填充的关键词优先排序以及相关基于处...的制作方法_2

文档序号:9308577阅读:来源:国知局
,提供一种高速缓冲存储器。高速缓冲存储器包括数据阵列,所述数据阵列包括高速缓存线,所述高速缓存线包括经配置以存储多个数据项的多个数据项块。高速缓冲存储器还包括高速缓存线排序逻辑。高速缓存线排序逻辑经配置以在高速缓存填充期间将多个数据项关键词优先排序到高速缓存线中。高速缓存线排序逻辑还经配置以存储与高速缓存线相关联的高速缓存线排序索引,所述高速缓存线排序索引指示高速缓存线中的多个数据项的关键词优先排序。高速缓冲存储器进一步包括经配置以基于用于高速缓存线的高速缓存线排序索引存取高速缓存线中的多个数据项中的每一者的高速缓存存取逻辑。
[0021]就此而目,图1说明包含提供尚速缓冲存储器填充的关键词优先排序以加速尚速缓冲存储器存取的高速缓冲存储器的示范性中央处理单元(CPU) 10。在图1中,示范性CPU10包含以通信方式耦合到高速缓冲存储器以及主存储器20的处理器12,所述高速缓冲存储器包含LI高速缓存14、L2高速缓存16及L3高速缓存18,如分别由双向箭头22、24、26及28所指示。LI高速缓存14、L2高速缓存16、L3高速缓存18及主存储器20共同地表示存储器的分级结构,其中LI高速缓存14在分级结构的顶部,且主存储器20在分级结构的底部。分级结构的较高级别(例如,LI高速缓存14)提供对存储数据的较快存取,但大小较小。相反,分级结构的较低级别(例如,主存储器20)具有较大存储容量,但存取时延相对较大。
[0022]图1的LI高速缓存14包含高速缓存控制器30,所述高速缓存控制器提供控制LI高速缓存14与处理器12之间的数据流的通信接口。LI高速缓存14还提供用于存储从较低级别高速缓存及/或从主存储器20接收的数据的高速缓存线32。L2高速缓存16同样包含高速缓存控制器34及高速缓存线36。L3高速缓存18包含高速缓存控制器38及高速缓存线40。应理解为清楚起见,LI高速缓存14、L2高速缓存16及L3高速缓存18中的每一者在图1中经描绘成具有一个高速缓存线32、36、40。图1中说明的配置是仅出于说明性目的,且在一些实施例中CPU 10可包括高速缓冲存储器的额外级别或比本文中所说明的LI高速缓存14、L2高速缓存16及L3高速缓存18少的级别。另外,在一些实施例中,LI高速缓存14、L2高速缓存16及L3高速缓存18可包括比本文中所说明的高速缓存线更多的高速缓存线32、36及/或40。
[0023]继续参看图1,LI高速缓存14的高速缓存控制器30包含高速缓存线排序逻辑42及高速缓存存取逻辑44。如下文更详细地论述,高速缓存线排序逻辑42经配置以在高速缓存填充期间将多个数据项(未图示)关键词优先排序到高速缓存线32中。高速缓存线排序逻辑42还经配置以存储与高速缓存线32相关联且指示高速缓存线32中的多个数据项的关键词优先排序的高速缓存线排序索引46。高速缓存存取逻辑44经配置以基于用于高速缓存线32的高速缓存线排序索引46存取高速缓存线32中的多个数据项。
[0024]为说明包含将多个数据项关键词优先排序到LI高速缓存14的高速缓存线32中的高速缓存填充,提供图2A及2B。图2A展示在由处理器12请求来自LI高速缓存14的关键词(因此触发高速缓存填充)时的图1的LI高速缓存14及L2高速缓存16的内容。图2B说明在完成高速缓存填充之后关键词优先排序LI高速缓存14的高速缓存线32中的多个数据项的结果。
[0025]在图2A中,L2高速缓存16的高速缓存线36含有总共四个数据项:非关键词48、非关键词50、关键词52及非关键词54。假设在先前高速缓存填充操作(未图示)期间将高速缓存线36中的数据项存储于L2高速缓存16中。在此实例中,LI高速缓存14的高速缓存线32可为空的,或可含有先前高速缓存的数据项(未图示)。此时,处理器12请求来自LI高速缓存14的关键词52以进行处理。如本文所使用,“关键词”为存储于特定存储器位置处且由例如处理器或较高级别高速缓存等请求实体请求的特定数据项。因为关键词52当前不存储于LI高速缓存14中,所以导致高速缓存未命中。响应于高速缓存未命中,查询L2高速缓存16,且确定关键词52位于L2高速缓存16的高速缓存线36中。接着开始被称作“高速缓存填充”的操作,在此期间检索L2高速缓存16的高速缓存线36的内容以用于存储于LI高速缓存14的高速缓存线32中。
[0026]现参看图2B,LI高速缓存14的高速缓存线32可划分成快速分区56及缓慢分区58。归因于下文更详细论述的LI高速缓存14的物理特性,存储于快速分区56中的数据项可使用比存储于缓慢分区58中的数据项少的处理器时钟循环检索。作为非限制性实例,快速分区56中的数据项的存储可比缓慢分区58中的数据项物理上更接近高速缓存控制器30,及/或快速分区56中的数据项可存储于具有比存储缓慢分区58中的数据项的存储器短的读取/写入存取时延的存储器中。因此,如果L2高速缓存16的高速缓存线36的内容在高速缓存填充期间按相同排序存储于LI高速缓存14的高速缓存线32中,那么关键词52将存储于缓慢分区58中。如果且在随后从LI高速缓存14检索关键词52时,那么将招致额外的互连时延。此情形可通过强制处理器12在检索关键词52时在多个处理器时钟循环内保持闲置而导致处理器性能的降低。
[0027]因此,图2B的LI高速缓存14的高速缓存控制器30提供高速缓存线排序逻辑42以在高速缓存填充期间关键词优先重新排序将存储于高速缓存线32中的数据项。如图2B中所见,高速缓存线排序逻辑42已使高速缓存线32中的数据项的位置旋转两个位置,导致关键词52存储于高速缓存线32的快速分区56。非关键词54的位置也已旋转到快速分区56中,而非关键词48及50的位置“环绕”高速缓存线32到缓慢分区58中。高速缓存线排序逻辑42将二进制值OblO ( S卩,十进制值2)存储为高速缓存线排序索引46。在此实例中,高速缓存线排序索引46指示存储于高速缓存线32中的数据项已在高速缓存线32中旋转多少位置。高速缓存控制器30的高速缓存存取逻辑44可使用高速缓存线排序索引46的值随后存取存储于高速缓存线32中的数据项,而不必旋转或以其它方式修改高速缓存线32中的数据项的位置。通过将关键词52放入高速缓存线32的快速分区56中,可达成降低的互连时延及改进的处理器性能。
[0028]提供图3以说明示范性高速缓冲存储器60的结构。在半导体裸片62中可提供高速缓冲存储器60。在一些实施例中,高速缓冲存储器60可为存储器的分级结构中的图1的LI高速缓存14、L2高速缓存16或L3高速缓存18以及其它高速缓存。在此实例中,高速缓冲存储器60为经组织成两个组64 (O)及64⑴的存储器阵列。组64 (O)及64⑴中的每一者包括两个子组,其中组64 (O)包含子组66 (O)及66(1),且组64 (I)包含子组66 (2)及66 (3) ο子组66 (O)到66 (3)分别对应于高速缓存线68 (O)到68 (3)。子组66 (O)到66 (3)中的每一者含有四个数据项块70 (O)到70 (3)。在此实例中,数据项块70 (O)到70 (3)各自存储四个数据项(未图示)的16字节群组。因此,高速缓存线68(0)到68(3)中的每一者存储从主存储器或较低级别高速缓存(未图示)接收的64字节数据。高速缓存线68 (O)到68 (3)中的每一者还包含标签72及旗标位74。标签72可含有提取存储于对应高速缓存线68中的高速缓存的数据的存储器地址(未图示)的部分或全部,而旗标位74可包含例如有效性旗标及/或已更改旗标(未图示)等旗标。
[0029]应理解本文中所描述的实施例不限于元件的任何特定布置,且所揭示技术可容易扩展到高速缓冲存储器60的各种结构及布局。图3中说明的配置是仅出于说明性目的,且在一些实施例中,高速缓冲存储器60可包括比本文中所说明的情形少或多的组64、子组66、数据项块70及/或高速缓存线68。高速缓冲存储器60的一些实施例可利用大小比本文中所描述的示范性4字节数据项大或小的数据项,及/或大小比本文中所描述的示范性64字节高速缓存线68大或小的高速缓存线68。
[0030]继续
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1