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

文档序号:9308577阅读:来源:国知局
参看图3,高速缓存控制器76以连接方式耦合到每一子组66 (O)到66 (3)的每一数据项块70(0)到70(3)。在图3中的实例中,数据项块70(2)及70(3)物理上位于距高速缓存控制器76相比数据项块70 (O)及70(1)更远处。结果,可在比存储于数据项块70(2)或70(3)中的数据项少的处理器时钟循环中读取或写入存储于数据项块70(0)或70(1)中的数据项。举例来说,在下文关于图4论述的一些实施例中,可仅需要三个时钟循环来存取存储于数据项块70 (O)或70(1)中的数据项,而可需要五个时钟循环来存取存储于数据项块70(2)或70(3)中的数据项。出于此原因,数据项块70(0)及70(1)被视为驻存在高速缓冲存储器60的快速分区78中,且数据项块70(2)及70(3)驻存在高速缓冲存储器60的缓慢分区80中。
[0031]应理解,除数据项块70相对于高速缓存控制器76的物理位置之外的物理特性可导致被视为驻存在快速分区78或缓慢分区80中的给定数据项块70。作为非限制性实例,快速分区78中的数据项块70 (O)及70(1)可包括静态随机存取存储器(SRAM)。相对比地,缓慢分区80中的数据项块70 (2)及70 (3)可包括与SRAM相比较具有较高读取/写入存取时延的磁阻随机存取存储器(MRAM)。
[0032]如上文所论述,请求实体(例如,图1的处理器12或较高级别高速缓存)可请求例如图2A及2B的关键词52等关键词以用于处理。如果高速缓冲存储器60中并未找到关键词,那么导致高速缓存未命中。作为响应,高速缓存填充导致存储器的一部分等于高速缓存线68的大小且含有将检索及存储于高速缓存线68 (O)至68(3)中的一者中的关键词。在完成高速缓存填充操作之后,关键词可存储于快速分区78(即,高速缓存线68(0)到68(3)中的一者的数据项块70 (O)或70 (I)中的一者)中或缓慢分区80中(高速缓存线68 (O)到8 (3)中的一者的数据项块70 (2)或70 (3)中的一者)。如果关键词存储于缓慢分区80中,那么高速缓冲存储器60将招致额外的互连时延(如果且在随后从高速缓冲存储器60检索关键词时)。此情形可通过强制例如图1到2B的处理器12等处理器在检索关键词时在多个处理器时钟循环内保持闲置而导致处理器性能的降低。
[0033]因此,高速缓冲存储器60的高速缓存控制器76提供经配置以在高速缓存填充期间关键词优先排序多个数据项的高速缓存线排序逻辑82。高速缓存线排序逻辑82经进一步配置以存储与高速缓存线68相关联且指示高速缓存线68中的多个数据项的关键词优先排序的高速缓存线排序索引(未图示)。在一些实施例中,高速缓存线排序索引存储于与尚速缓存线68相关联的标签72中及/或与尚速缓存线68相关联的旗标位74中。以此方式,可确保将关键词放入高速缓冲存储器60的快速分区78中的高速缓存线68中,从而导致互连时延的降低及处理器性能的改进。
[0034]高速缓冲存储器60的高速缓存控制器76还提供高速缓存存取逻辑84,所述高速缓存存取逻辑经配置以基于与高速缓存线68相关联的高速缓存线排序索引存取高速缓存线68中的多个数据项。举例来说,一些实施例可提供高速缓存存取逻辑84经配置以基于用于高速缓存线68的高速缓存线排序索引将所请求数据项映射到高速缓存线68的多个数据项中的一者。因此,高速缓存存取逻辑84可存取多个数据项而不需要重新排序高速缓存线68。
[0035]提供图4以更明确地说明在高速缓存填充操作期间存储关键词的分区(即,快速分区78或缓慢分区80)可如何影响图3的高速缓冲存储器60的互连时延及因此总高速缓存存取时延。图4说明时钟循环图表86,其展示用于存取图3的高速缓存线68(0)到68(3)中的一者的数据项块70 (O)到70(3)中的每一者的示范性操作。如上所指出,数据项块70 (O)及70 (I)位于高速缓冲存储器60的快速分区78中,而数据项块70 (2)及70 (3)位于高速缓冲存储器60的缓慢分区80中。在图4中,时钟循环图表86中的列(标记为1、2、……、8)中的每一者表示单个处理器时钟循环。时钟循环图表86中的行(标记为“数据项块70 (O) ”、“数据项块70⑴”、“数据项块70⑵”及“数据项块70 (3) ”)指示在每一处理器时钟循环期间关于每一数据项块70 (O)到70 (3)发生的操作。以此方式,展示在若干时钟循环的过程中的高速缓冲存储器存取操作的序列。为清楚起见,在描述图4中所示的示范性操作时参考图3的元件。
[0036]如图4中所说明,处理开始于处理器时钟循环I处,其中快速分区78中的数据项块70 (O)及70 (I)各自从高速缓存控制器76接收启用信号。启用信号还经调度到缓慢分区80中的数据项块70(2)及70(3)中的每一者。在此实例中,由于数据项块70(2)及70(3)与高速缓存控制器76之间的距离,因此启用信号在一个处理器时钟循环中并未到达缓慢分区80。因此,在处理器时钟循环I期间需要启用重新驱动操作以将启用信号发送到数据项块 70 (2)及 70 (3) ο
[0037]在处理器时钟循环2期间,用于存取数据项块70的内容的阵列存取操作针对数据项块70(0)及70(1)中的每一者开始。同时,先前调度的启用信号到达缓慢分区80,且由数据项块70 (2)及70 (3)中的每一者接收。此时,缓慢分区80中的数据项块70 (2)、70 (3)的互连时延比快速分区78中的数据项块70(0)、70 (I)的互连时延长一个处理器时钟循环。
[0038]在图4的处理器时钟循环3中,继续用于数据项块70(0)及70(1)中的每一者的阵列存取操作,而同时开始用于数据项块70(2)及70(3)中的每一者的阵列存取操作。在处理器时钟循环4期间,将数据项块70(0)及70(1)两者的内容发送到高速缓存控制器76,从而导致数据输出就绪的状态。同时,继续用于数据项块70 (2)及70 (3)中的每一者的阵列存取操作。
[0039]在处理器时钟循环5期间,可传回来自数据项块70(0)或数据项块70(1)的数据(例如,到例如图1到2B的处理器12等请求处理器,或到较高级别高速缓存)。在此实例中,在处理器时钟循环5中传回来自数据项块70(0)的数据,且在处理器时钟循环6中传回来自数据项块70(1)的数据。然而,因为数据项块70 (O)及70(1)两者皆在相同处理器时钟循环4期间达到数据输出就绪的状态,所以可颠倒存储器存取的排序。因此,在一些实施方案中,可在处理器时钟循环5中传回来自数据项块70(1)的数据,且可在处理器时钟循环6中传回来自数据项块70(0)的数据。
[0040]同样在图4的处理器时钟循环5期间,数据项块70(2)及70(3)两者的内容被发送到高速缓存控制器76,且达到数据输出就绪的状态。在此实例中,由于数据项块70(2)及70 (3)与高速缓存控制器76之间的距离,数据并未在一个处理器时钟循环中从缓慢分区80到达高速缓存控制器76。因此,在处理器时钟循环6期间需要数据输出重新驱动操作以将数据发送到高速缓存控制器76。
[0041]在处理器时钟循环7处,可传回来自数据项块70(2)或数据项块70(3)的数据(例如,到请求处理器或较高级别高速缓存)。在图4中,在处理器时钟循环7中传回来自数据项块70(2)的数据,且在处理器时钟循环8中传回来自数据项块70(3)的数据。然而,因为数据项块70(2)及70(3)两者皆在相同处理器时钟循环5期间达到数据输出就绪的状态,所以可在一些实施例中颠倒存储器存取的排序。因此,一些实施例可提供在处理器时钟循环7中传回来自数据项块70 (3)的数据,且在处理器时钟循环8中传回来自数据项块70 (2)的数据。
[0042]如图4中所见,数据项块70(2)及70(3)所需要的额外启用重新驱动及数据输出重新驱动操作导致缓慢分区80中的数据项块70的互连时延增加。在此实例中,从接收启用信号直到达到数据输出就绪状态为止的数据项块70(0)及70(1)的互连时延由三个处理器时钟循环组成。相对比地,从启用重新驱动操作直到数据输出重新驱动操作为止的数据项
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1