32位DSP两级cache的结构设计
发布时间:2008/9/23 0:00:00 访问次数:746
随着半导体技术的发展,dsp性能不断提高,被广泛应用在控制,通信,家电等领域中。
dsp内部核心部件alu具有极高的处理速度,而外部存储器的速度相对较低,存储系统已成为制约dsp发展的一个瓶颈。本文参照计算机存储结构,利用虚拟存储技术,对存储系统的结构进行了改进。在dsp中引入二级cache存储器结构,在较小的硬件开销下提高了dsp的工作速度。结合高性能低功耗dsp cache设计这个项目,对两级cache的结构和算法做了探讨。
2 cache总体设计
传统的存储器主要由dram组成,它的工作速度较慢,cache存储器主要由sram组成。在dsp中,存储系统可分层设计,将之分为两部分:容量较小的cache存储器和容量较大的主存储器,cache中存放着和主存中一致的较常用的指令与数据。dsp执行操作时可先向速度较快
图1 cache的结构及互连简图
的cache取指令或数据,如果不命中则再从主存取指令或数据。通过提高cache的命中率可以大大加快dsp的整体运行速度,从而缓解由存储系统引起的瓶颈问题。
基于上述原理,我们设计了dsp的cache总体结构,如图1所示。图中设计采用了两级cache设计,第一级cache采用分立结构,将指令cache和数据cache分开设计,这样cpu可以对数据和指令进行平行操作,结合dsp取址,译码,读数,执行的四级流水线结构,充分提高系统效率。二级cache采用统一结构,数据和指令共用一个cache,此时可以根据程序执行的具体情况,二级cache自动平衡指令和数据间的负载,从而提高命中率。dsp若在一级cache中未找到需要的指令和数据,则可在二级cache中寻找。此结构下,一级cache找不到的数据和指令多数可在二级cache中找到,提高了整个cache系统的命中率。
增加一级cache的容量可提高命中率,但随着cache容量增大,电路结构将变得复杂,所用的芯片面积、功耗也会加大,而且cache的访问时间也会变长,从而影响到alu的速度。综合考虑速度,面积,功耗等因素,我们把一级指令cache和数据cache的容量均定为4kb。
二级cache处于一级cache和主存储器之间,访问时间是3到4个alu时钟周期,其容量一般是为一级cache的4到8倍。设计中我们将二级cache的容量为定位32kb。
3 cache的映射方式与地址结构
cache采用的映射方式通常有直接映射、关联映射、组关联映射三种,直接映射命中率低,容易发生抖动,关联映射虽然命中率较高,但电路复杂,权衡电路复杂性和命中率,我们主要采用组关联映射方法。在组关联映射中,可将主存空间分成块,cache空间分为组,一组包含多行,行的大小与块的大小相等。主存中的特定块只能映射到cache中的特定组,但可以映射到组内的不同行。若用j表示主存的块号,i表示cache中的组号,m表示cache的总行数,当cache分为v个组,每组k个行时,存在以下关系(见公式1、2),
此种映射方式通常称为k路组关联映射。利用公式(2),我们可以根据块的物理地址计算它能映射到的组号,块j 能被映射到相应组中k行的任何一行中。
设计中二级cache采用4路组相联的结构,分为共256组,每组4行,每行8个32位单元,总容量位32kb。cache的控制逻辑将存储器地址简单的分为三个域:标记域,组号和字。为了降低系统的功耗,采用了标记(tag)和数据体相分离的方案。为了加快访问速度,把cache中行号相同的块放在一个数据体中实现。这样cache就可分为4个标记存储器,4个数据存储器。每个标记存储器可放256个标记,每个数据存储体有256行数据。地址的划分如图2,tag的结构见图3。
图2 二级 cache的地址划分
图3 l2 cache tag 的组成
一级指令cache和数据cache采用组关联的结构,均分为32个组,每组4行,每行含有8个32位的单元,每个容量位4kb。一级cache的组和行与二级cache的组和行大小对应,在二级cache到指令cache和数据cache间,组之间我们采用直接映射的方式,组内用全关联方式。这样我们结合了组关联的灵活与全关联的命中率高的优点。
和二级cache相似,也把每组块号相同的数据放在同一个数据体中,共分为4个标记存储器,四个数据体存储器。每个标记存储器可放32个标记,每个数据存储体有32行数据。对主存地址的划分如图4。
图4 一级cache的地址划分
tag的结构见图5。
随着半导体技术的发展,dsp性能不断提高,被广泛应用在控制,通信,家电等领域中。
dsp内部核心部件alu具有极高的处理速度,而外部存储器的速度相对较低,存储系统已成为制约dsp发展的一个瓶颈。本文参照计算机存储结构,利用虚拟存储技术,对存储系统的结构进行了改进。在dsp中引入二级cache存储器结构,在较小的硬件开销下提高了dsp的工作速度。结合高性能低功耗dsp cache设计这个项目,对两级cache的结构和算法做了探讨。
2 cache总体设计
传统的存储器主要由dram组成,它的工作速度较慢,cache存储器主要由sram组成。在dsp中,存储系统可分层设计,将之分为两部分:容量较小的cache存储器和容量较大的主存储器,cache中存放着和主存中一致的较常用的指令与数据。dsp执行操作时可先向速度较快
图1 cache的结构及互连简图
的cache取指令或数据,如果不命中则再从主存取指令或数据。通过提高cache的命中率可以大大加快dsp的整体运行速度,从而缓解由存储系统引起的瓶颈问题。
基于上述原理,我们设计了dsp的cache总体结构,如图1所示。图中设计采用了两级cache设计,第一级cache采用分立结构,将指令cache和数据cache分开设计,这样cpu可以对数据和指令进行平行操作,结合dsp取址,译码,读数,执行的四级流水线结构,充分提高系统效率。二级cache采用统一结构,数据和指令共用一个cache,此时可以根据程序执行的具体情况,二级cache自动平衡指令和数据间的负载,从而提高命中率。dsp若在一级cache中未找到需要的指令和数据,则可在二级cache中寻找。此结构下,一级cache找不到的数据和指令多数可在二级cache中找到,提高了整个cache系统的命中率。
增加一级cache的容量可提高命中率,但随着cache容量增大,电路结构将变得复杂,所用的芯片面积、功耗也会加大,而且cache的访问时间也会变长,从而影响到alu的速度。综合考虑速度,面积,功耗等因素,我们把一级指令cache和数据cache的容量均定为4kb。
二级cache处于一级cache和主存储器之间,访问时间是3到4个alu时钟周期,其容量一般是为一级cache的4到8倍。设计中我们将二级cache的容量为定位32kb。
3 cache的映射方式与地址结构
cache采用的映射方式通常有直接映射、关联映射、组关联映射三种,直接映射命中率低,容易发生抖动,关联映射虽然命中率较高,但电路复杂,权衡电路复杂性和命中率,我们主要采用组关联映射方法。在组关联映射中,可将主存空间分成块,cache空间分为组,一组包含多行,行的大小与块的大小相等。主存中的特定块只能映射到cache中的特定组,但可以映射到组内的不同行。若用j表示主存的块号,i表示cache中的组号,m表示cache的总行数,当cache分为v个组,每组k个行时,存在以下关系(见公式1、2),
此种映射方式通常称为k路组关联映射。利用公式(2),我们可以根据块的物理地址计算它能映射到的组号,块j 能被映射到相应组中k行的任何一行中。
设计中二级cache采用4路组相联的结构,分为共256组,每组4行,每行8个32位单元,总容量位32kb。cache的控制逻辑将存储器地址简单的分为三个域:标记域,组号和字。为了降低系统的功耗,采用了标记(tag)和数据体相分离的方案。为了加快访问速度,把cache中行号相同的块放在一个数据体中实现。这样cache就可分为4个标记存储器,4个数据存储器。每个标记存储器可放256个标记,每个数据存储体有256行数据。地址的划分如图2,tag的结构见图3。
图2 二级 cache的地址划分
图3 l2 cache tag 的组成
一级指令cache和数据cache采用组关联的结构,均分为32个组,每组4行,每行含有8个32位的单元,每个容量位4kb。一级cache的组和行与二级cache的组和行大小对应,在二级cache到指令cache和数据cache间,组之间我们采用直接映射的方式,组内用全关联方式。这样我们结合了组关联的灵活与全关联的命中率高的优点。
和二级cache相似,也把每组块号相同的数据放在同一个数据体中,共分为4个标记存储器,四个数据体存储器。每个标记存储器可放32个标记,每个数据存储体有32行数据。对主存地址的划分如图4。
图4 一级cache的地址划分
tag的结构见图5。
上一篇:二维DCT编码的DSP实现与优化
上一篇:MCU需要改进