计算机高速缓存分窗制造技术

技术编号:2887045 阅读:178 留言:0更新日期:2012-04-11 18:40
带有高速缓存分窗设计的计算机一级高速缓存将一个大的一级高速缓存划分为许多小块,称为窗口,使高速缓存能更快地向CPU提供更多的数据。通过与具有多关联高速缓存集的大容量一级高速缓存相比更少、更短的路径和更少的电路,高速缓存分窗可提供小容量一级高速缓存的快速存取时间。高速缓存分窗使得在高速缓存窗口标识上稍做改动就能实现关联切换,消除对高速缓存重载的等待。对真实高速缓存实现的模拟显示了使用高速缓存分窗技术的CPU吞吐量大约平均提高30%,并且随着CPU速度的提高而提高。本系统:1)随着CPU速度的提高,能够保持或提高CPU的利用率,2)提供大容量一级高速缓存,并同时保持高速缓存的存取时间为一个CPU时钟周期,3)为那些存储器引用局部性不强的处理系统(比如,网络应用程序)提供高的CPU利用率。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及计算机内部高速缓存,其包括中央处理单元(CPU)的片内高速缓存即一级高速缓存,在CPU高速缓存和主随机存取存储器(RAM)之间的下一级存储器即二级高速缓存,以及在二级高速缓存和主存储器之间的任何附加存储器,比如三级高速缓存。本专利技术特别涉及通过使用“高速缓存分窗”提高高速缓存性能以加速计算机上网络和非网络应用程序的执行。近十年来,计算机的处理能力有了飞速的发展。在个人电脑和工作站级计算机中使用的CPU通常工作在300兆赫(MHz)或更高的频率下,并且能够每秒执行100兆条指令(MIPS)。然而,计算机内部的存储器子系统却制约着处理器潜能的充分发挥。存储器子系统包括CPU片内的高速缓存即一级高速缓存和CPU片外高速缓存即二级和三级高速缓存。随机存取存储器(RAM)和主要存储介质(硬盘)是对计算机存储器子系统的扩展。存储器向CPU提供数据和指令的速度远远赶不上CPU处理数据和指令的速度。CPU很少在超过33%的时间里工作,它大部分的时间都在空闲地等待存储器提供数据和指令。RAM的存取时间约为60纳秒(ns)。而现代的以250MHz频率运行的精简指令集计算机(RISC)CPU能在4ns内执行四条涉及许多字节数据的指令,是RAM所能提供数据和指令的速度的15倍。如果没有其它部件,CPU一般每60ns将空闲56ns,或者说空闲93.3%的时间。现在已有一些弥合RAM和CPU之间速度不匹配的技术,使得向CPU提供数据和指令的速度比仅仅依靠RAM时的速度要快。高速缓存就是用以解决速度不匹配问题的主要技术。高速缓存依赖于引用局部性原则来预测CPU很快将用到的数据和指令。CPU在执行应用程序时所需的数据和指令趋向于出现在相邻的存储器单元。当CPU执行指令,处理和产生数据时,对指令和数据的读或写趋向于发生在相邻的存储器单元。下一个存储器存取操作趋向于出现在被存取的上一存储器单元的附近。这就是引用局部性原则。这样,高速缓存不仅用以读取和保存立刻需要的数据和指令,而且还用以在给定时间读取和保存CPU所存取的存储单元附近的一定数量的数据和指令。在CPU忙于执行当前指令处理当前数据的同时,高速缓存则从RAM存储器上下载CPU正在使用的单元附近的指令和数据,因为预计它们将是CPU很快会用到的数据和指令。从RAM读取数据和指令在时间上和CPU执行当前的指令和数据是重叠的,这样CPU就可以持续工作而不必等待对RAM的慢速存取的完成。由于高速缓存还能仅以RAM的约60ns的速度存取RAM,所以为了使存储器流水线上的数据和指令接近满负荷,使用了多级高速缓存。二级高速缓存相对较大并能够从RAM装载较多数量的指令。一级高速缓存相对较小,它从二级高速缓存装载较少的数据和指令。在存储器流水线中自RAM向下,各级高速缓存的容量逐级递减而存取时间逐渐变快。二级高速缓存的容量约为1兆字节(MB),存取时间比RAM约快两到三倍,通常在20ns范围内。一级高速缓存由于必须集成在CPU片内因而较小,容量约为64KB,存取时间通常和CPU时钟频率相当,在4ns范围内。如果有三级高速缓存的话,它一般在二级高速缓存和RAM之间,有8MB或更大,存取速度几乎和RAM相当,约为60ns。这种精心设计的存储器子系统大约使CPU的利用率从没有高速缓存时的6%提高到33%。现有的高速缓存子系统不能解决与高速缓存有关的三个主要问题1.当CPU速度提高时,保持或提高CPU的利用率;2.提供更大的高速缓存而同时保持高速缓存的存取时间为一个CPU时钟周期;3.为存储器引用局部性差的处理应用程序提供高的CPU利用率。近十年来,CPU速度在不断地提高,而存储器速度则相对变化不大,由于CPU用于等待高速缓存装载所需的数据和指令的时间越来越多,所以CPU利用率持续下降。如果随着CPU时钟频率的增加CPU利用率反而下降,那么CPU性能的改善就被抵消了。随CPU速度的提高,为了确保向CPU提供处理所需的数据和指令,计算机的高速缓存子系统必须以更快的速度提供数据和指令。只有两种方法可以提高高速缓存的传输速度加快高速缓存的存取时间或增加高速缓存容量。这两种选择是相互矛盾的。即使从减少芯片特征尺寸来说是可行的,增加高速缓存容量将以平方于容量大小的比例延迟存取时间。对一些引用局部性较差的情况,比如执行网络数据处理的应用程序,CPU的利用率严重下降,低于10%。在CPU速度越来越快的情况下,简单地对现有的高速缓存构架进行扩展并不是一个提高或保持现有性能水平的可行的方法。增加二级或更高级高速缓存(或者甚至是RAM)的容量无助于性能的提高。在线或后部(backside)二级高速缓存在有很好的引用局部性的情况下,能大大的提高性能。这种方法使用了一条单独的存储器总线,它连接于二级高速缓存和能以CPU时钟速度操作二级高速缓存的CPU之间。用这种方法,一级高速缓存的性能成了制约因素,由于一级高速缓存的限制而阻碍了更进一步的性能提高。将一级高速缓存的容量增加到1MB或更多只能在存在引用局部性的情况下获得很大的性能提高。增加一级高速缓存的容量受到两个因素的限制a)由于散热和物理限制,在一定区域上所能集成的部件数目限制了CPU芯片的大小,并且b)随存储器容量增加,存取时间则成指数级增加。在所有已有的系统中,都没有考虑在CPU速度增加或引用局部性较差的情况下采取措施以提高性能。目前所需要的是一种高速缓存构架和设计,它能够1)在CPU速度提高的情况下,至少提供现有存储器子系统的性能水平,2)提供更大的一级高速缓存,并同时将对高速缓存的存取时间保持在一个CPU时钟周期内,3)在执行引用局部性较差的单个应用程序或混合应用程序时,大大的提高性能。本专利技术通过“高速缓存分窗”的概念和设计以一种简单而又直接的方式满足了这三种需求。本专利技术的目的之一是提供一种计算机内部高速缓存的构架和设计,它的性能比当前常规微芯片构架更高。本专利技术的进一步目的是提供一种使用“高速缓存分窗”的高速缓存系统。本专利技术的进一步目的是提供一种能适用于各种半导体制造技术和CPU性能的高速缓存系统。本专利技术的进一步目的是提供一种高速缓存系统,它在所有CPU主频上以促进CPU高利用率的速度向CPU提供数据和指令,尤其当主频超过300MHz时。本专利技术的进一步目的是提供一种更大容量的,存取时间为一个CPU时钟周期的一级高速缓存系统。本专利技术的进一步目的是提供一种高速缓存系统,它在处理引用局部性较差的应用程序时能提供很高的CPU利用率。本专利技术的另一目的是加速对执行计算机网络操作的应用程序的运行,以及在同一机器上执行非网络应用程序的同时加速对网络应用程序的运行。本专利技术(高速缓存分窗技术)是一种将小的高速缓存窗口组织成一个大的高速缓存(特别是一级高速缓存)的方法,它既能提供小容量高速缓存的速度优势又能提供大容量高速缓存的性能优点。高速缓存分窗技术也能用于更高级别的高速缓存,比如二级和三级高速缓存。附图说明图1显示了高速缓存窗口是如何用一些小的段(高速缓存窗口)提供一个大容量高速缓存,从而保持小容量高速缓存的快速存取时间,同时提供大容量高速缓存和专用高速缓存的优势。图2显示了高速缓存窗口是如何用新的高速缓存/CPU设计来实现的。图3显示了高速缓存窗口是如本文档来自技高网...

【技术保护点】
一种提供计算机高速缓存分窗的方法,包括: 使用高速缓存管理和控制逻辑创建与CPU芯片相关联的多个高速缓存窗口; 指定不同的可执行实体给每个高速缓存窗口; 指定一个可执行实体给多于一个的高速缓存窗口; 将窗口号作为每个高速缓存窗口的可执行实体状态信息的一部分加以保存; 根据窗口号选择高速缓存窗口; 使所选的高速缓存窗口成为活动窗口。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:克劳斯H舒格
申请(专利权)人:MCMZ技术革新股份有限公司
类型:发明
国别省市:US[美国]

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

1