可配置缓存系统的制作方法

文档序号:12597125阅读:356来源:国知局
可配置缓存系统的制作方法与工艺

本发明涉及到处理器和其他应用芯片的缓存的硬件设计和软件优化。



背景技术:

缓存在计算机系统和其他应用处理系统中扮演者及其重要的角色,它的设计的好坏直接影响处理器的处理能力。多路组相联高速缓存(N-way set associative cache)是如今应用广泛的缓存结构,是对全相联映射和直接映射的一种折衷的处理方案。此种结构下,地址空间一般被分为三个部分(见图1)。分别为TAG,SET和OFFSET。N为路数值(way的值), 它的值直接影响到特定程序的执行效率和三部分地址空间长度分配。

与处理器相关的缓存通常是固定配置的硬件,也就是说缓存的存取方式一经生产就无法改变,所以对于不同的应用程序缓存的命中率并不是最优的,这样一来,不同的程序在这一硬件系统里并不是以最高的效率在运行,甚至造成一些实时性高的程序无法运行。



技术实现要素:

本发明因此在实际中需要一种硬件缓存,这种缓存可以根据具体的应用程序来配置成不同路数的组相关(set-associative)已达到最优的缓存命中率,从而提高整个系统的性能。

为此,本发明提出可配置的缓存的硬件设计方法,在设计硬件缓存系统时,组相联的缓存的路数(way)可以被改变。每次改变路数(way)配置,缓存外部存储器到缓存系统的映射关系会发生改变。缓存系统拥有可根据不同路数设置对缓存内部存储器寻址范围进行改变的控制单元。缓存系统拥有可被缓存外部读取的命中率统计单元。从而应用软件可以直接读取由硬件自行寻找到的最高命中率配置,或读取并对比不同配置下的缓存命中率来找到最优的配置来达到最高的运行效率。

附图说明:

图1为一种可配置缓存系统实现方法;

图2为组相联结构缓存系统的地址空间一般划分方法;

图3为多路组相联结构硬件缓存的原理描述图;

图4为多路组相联结构硬件缓存的简化框图 ;

图5为可配置多路组相联结构硬件缓存的简化框图 。

具体实施方式:

以下将结合附图及实施例来详细说明本发明的实施方式。需要说明,如不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。本发明是一种可配置的硬件缓存结构的设计,它可应用于计算机系统缓存设计,包括个人电脑,服务器和平板电脑;同时也适用于手机,数码相机,游戏机和学习机;同时也适用于数字信号处理器。

硬件缓存映射主要有三种方式:直接匹配,N路组相联和全相联结构。直接匹配缓存尽管在电路逻辑上十分简单,但是存在显著的冲突问题。由于多个不同的内存块仅共享一个缓存块,一旦发生缓存失效就必须将缓存块的当前内容清除出去。这种做法不但因为频繁的更换缓存内容造成了大量延迟,而且未能有效利用程序运行期所具有的时间局部性。

组相联(Set Associativity)是解决这一问题的主要办法。全相联是组相联的极端形式。使用组相联的缓存把存储空间组织成多个组,每个组有若干数据块。通过建立内存数据和组索引的对应关系,一个内存块可以被载入到对应组内的任一路上(Way)。

实践证明,不同的应用程序在同一路数的组相联缓存系统上并不都能获得最好的执行效率。因此,本发明的核心思想是,在计算机系统中通过改变硬件缓存中一级,二级,三级缓存的路数(way),从而改变同一应用程序在该硬件缓存中执行的命中率。为程序获得在该硬件缓存系统上的黄金路数配置值。

本发明提出的一种方法,按照图1流程图所描绘方式为特定应用程序在其运行前获得黄金参数。

S1- 载入应用程序同时,对缓存系统路数(Way)进行编程。

S2- 运行应用程序,并收集命中率。

S3- 保存命中率待用。

S4- 判断是否已经遍历所有可配置的缓存路数参数。如以遍历结束进入S5,若未结束返回S1。

S5- 比较所储存的不同路数配置下的命中率。

S6- 获得最高命中率配置参数,并储存该参数。

图2为组相联结构缓存地址空间的一般划分方式。需要说明,采用不同的命名方式不影响本发明的权利要求。按照多路组相联缓存系统 (N-Way set-associative cache) 的原理地址被分为三个部分。TAG,SET,和ByteOffset。TAG的宽度,SET的宽度以及字节偏移的宽度可以由以下公式计算得到:

图3为多路组相联结构硬件缓存的原理描述图。对缓存系统的访问地址,按照图2划分方式分为三个部分。利用SET地址部分选中TAG存储器和数据存储器各一个SET的内容。TAG存储器被选中SET的数据被读出,并与访问地址的TAG部分的值进行比较。若相同,则表示命中,被选中的数据存储器的内容被作为命中的数据块读出。这个过程将对N路(WAY)数据同时进行操作,因为所需数据可能被存放于N路中任意一个路中。ByteOffset地址对数据块中的数据进行选择,最后输出所需数据。

图4为多路组相联结构硬件缓存的简化框图。图4将图3所示原理图进行了框图化处理。将各路(WAY)中的TAG存储器合并称为TAG存储器组模块,将各路中的数据储存器合并称为数据存储器组模块。将各路的比较器合并称为命中判断单元。将各路的数据块选则功能合并称为数据块选择模块。字节读出模块保留。

图5为可配置多路组相联结构硬件缓存的简化框图。在图4基础上,图5增加了三个功能模块。以支持对路数的控制及切换,对配置信息的读取和写入,对命中率的统计。

对比图4和图5,本发明在硬件结构上具有:

1) 路数配置信息单元

a. 它是缓存配置信息存储空间或与应用软件交互的接口。

b. 路数配置信息将改变整个可配置多路组相联缓存系统的路数,并改变缓存内存储器的寻址方式及地址映射方式。

2) 命中率统计单元

a. 它可以对程序命中率进行统计。

b. 统计结果,可被外部读取,可存储于本单元中。

c. 被存储的统计结果可在单元内部与已存储的其他路数命中率进行比较。

d. 比较后的最高命中率配置路数可被使用为切换路数的数据依据。

3) SET选择控制器

在不同路数配置情况下,由于地址划分的变化,SET寻址将发生变化。

a. 通过该单元将SET地址信号正确应用在TAG存储器组及数据存储器组上。

b. 具体变化可以通过对片选信号的不同切换方式实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1