首页> 中国专利> 用于通用流处理器的可变访存模式的片上缓存结构

用于通用流处理器的可变访存模式的片上缓存结构

摘要

本发明公开了一种用于通用流处理器的可变访存模式的片上缓存结构,包括存储阵列单元、cache控制器、scratchpadmemory控制器以及存储阵列边界分割逻辑单元,所述存储阵列单元由通过存储阵列边界分割逻辑单元分割成的cache部分和scratchpadmemory部分组成,所述cache控制器用来访问存储阵列单元中的cache部分,所述scratchpadmemory控制器用来访问存储阵列单元中的scratchpadmemory部分。本发明具有结构简单紧凑、成本低廉、可靠性好、适用范围广、可以任意的更改cache和scratchpadmemory大小比例、最大限度的满足处理器的性能等优点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-03-12

    未缴年费专利权终止 IPC(主分类):G06F12/02 授权公告日:20120822 终止日期:20130106 申请日:20110106

    专利权的终止

  • 2012-08-22

    授权

    授权

  • 2011-06-15

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20110106

    实质审查的生效

  • 2011-05-04

    公开

    公开

说明书

技术领域

本发明主要涉及到流处理器的缓存结构领域,特指一种适用于通用流处理器的可变访存模式的片上缓存结构。

背景技术

在最新的高性能微处理器结构研究中,流体系结构正在成为研究热点,出现了多种具有流处理特征的处理器,如Stanford设计的Imagine流处理器以及STI(Sony、Toshiba、IBM)联盟推出的Cell处理器等。流体系结构能够有效缓解存储墙瓶颈、开发多种级别的程序并行性,已经证明能够极大地提升媒体处理和数据密集型科学计算等应用的处理性能。当前主流处理器和显卡生产厂商都在研究和推出具有流处理特征的处理器,如NVIDIA的专业图形显卡在GPGPU(General Purpose GPU)领域中的医学成像方向取得了极好的应用效果;在超级计算领域,GPU的Linpack性能是目前同等价格多核处理器的十几倍。AMD已经推出了Firestream处理器,其峰值性能达到500GFLOPS。Intel也即将推出具有流处理特征的Larrabee图形处理器,其峰值性能将达到1TFLOPS。研究表明,流处理适合于很多应用领域,目前很多的研究试图把流处理器应用于科学计算的应用,CUDA就是这一应用的典型代表。科学计算首先需要计算处理系统具有强大的浮点运算能力,如高分子运动分析、石油勘测分析、大气科学、固体力学、分子力学、流体力学、有限元分析等的主体计算。有些科学计算应用还强调计算节点的多媒体计算功能,如大气科学和流体力学应用中需要的许多模拟仿真计算。

流处理器使用scratchpad memory(SPM,即高速暂时存储器或中间结果存储器)作为缓存,scratchpad memory是一种小容量轻便式存储器,采用独立的地址空间由处理器的访存指令直接访问。对scratchpad memory的管理由编译器在编译期完成,因此各访存指令的延迟是确定的,任务的执行时间在编译完成后也是确定的。scratchpad memory特别适合流式数据的处理。通用处理器采用cache(高速缓存器)作为片上缓存,科学计算需要大量的数据存储,cache采用组相连和替换策略可以提供更多的存储空间。通用流处理器面向多种应用,既要处理流式应用,又要面临科学计算对存储的需求,因此需要两种片上缓存。由于处理器芯片面积的限制,不可能在通用流处理器上集成无限大的cache和scratchpad memory作为片上缓存,为了更好的利用现有的资源,可以采用cache和scratchpad memory混合结构的片上缓存。在NVIDIA的最新的流处理器fermi中,采用可配置的方式进行共享cache和scratchpad memory混合结构片上缓存。但是Fermi这种可配置的结构灵活性差,不能随意的更改cache和scratchpad memory比例,导致在处理某些特殊应用时性能降低。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种结构简单紧凑、成本低廉、可靠性好、适用范围广、可以任意的更改cache和scratchpad memory大小比例、最大限度的满足处理器的性能的用于通用流处理器的可变访存模式的片上缓存结构。

为解决上述技术问题,本发明采用以下技术方案:

一种用于通用流处理器的可变访存模式的片上缓存结构,其特征在于:包括存储阵列单元、cache控制器、scratchpad memory控制器以及存储阵列边界分割逻辑单元,所述存储阵列单元由通过存储阵列边界分割逻辑单元分割成的cache部分和scratchpad memory部分组成,所述cache控制器用来访问存储阵列单元中的cache部分,所述scratchpad memory控制器用来访问存储阵列单元中的scratchpad memory部分。

作为本发明的进一步改进:

所述cache控制器包括译码器、逻辑电路以及边界记录器,所述边界记录器用于在编译期根据处理器的指令登记存储阵列的边界,并通过逻辑电路对每个cache line产生一个判断位。

所述scratchpad memory控制器包括仲裁逻辑单元、缓冲队列单元、边界输入单元以及地址映射逻辑单元,所述仲裁逻辑单元用于仲裁多个数据竞争时进行的优先级判断,需要等待的数据请求先放到缓冲队列单元中,优先处理级别高的请求;所述边界输入单元用来指示地址映射逻辑单元存储阵列中组成部分。

所述存储阵列单元中的存储阵列采用SRAM,所述存储阵列单元包括2个读端口和2个写端口。

与现有技术相比,本发明的优点在于:

1、本发明通过支持两种访问模式,灵活多变的配置大小比例,可以满足通用流处理器面向多种应用的性能需求,使得通用流处理器具有了更强的通用性;

2、本发明提出的两种访问模式共享存储阵列的方式,节约了芯片面积,采用两套控制结构也避免了逻辑电路设计的复杂度,具有实现简单、成本较低的特点;

3、本发明在特殊情况下可以把片上存储看做单一的cache或者scratchpad memory,可以极大的满足流处理器的性能需求。

附图说明

图1是本发明的结构示意图;

图2是本发明中cache控制器的结构原理示意图;

图3是本发明中scratchpad memory控制器的结构示意图。

具体实施方式

以下将结合说明书附图和具体实施例对本发明做进一步详细说明。

如图1所示,本发明用于通用流处理器的可变访存模式的片上缓存结构,包括存储阵列单元、cache控制器、scratchpad memory控制器以及存储阵列边界分割逻辑单元,存储阵列单元由通过存储阵列边界分割逻辑单元分割成的cache部分和scratchpad memory部分组成,cache控制器用来访问存储阵列单元中的cache部分,scratchpad memory控制器用来访问存储阵列单元中的scratchpad memory部分。由此可见,本发明的片上缓存能够支持两种访问模式,每种访问模式都有各自对应的控制结构,两种访问模式共享一个存储阵列。本实施例中,存储阵列单元中的存储阵列采用SRAM,其有2个读端口和2个写端口。

当流处理器处理应用程序时,在编译期就可以得知该应用所需要的scratchpad memory大小,存储阵列边界分割逻辑单元把存储阵列分成cache和scratchpad memory两部分。

访存指令会告诉cache控制器存储阵列中cache部分的大小,在流处理器访问cache部分时,由于cache部分对处理器是透明的,cache部分的大小处理器是无法区分的,应首先查看tag是否是cache部分所在的位置,如果是在cache部分的范围就可以访问数据;如果不在该位置,表明程序访问出错。当流处理器访问scratchpad memory时,由于scratchpad memory大小是由编译时程序大小决定的,所以译码逻辑把地址指向存储阵列中scratchpad memory部分的位置,就不会产生溢出问题。

如图2所示,本实施例中,cache控制器主要包括译码器、逻辑电路以及边界记录器。首先在tag阵列中加入了一位,用于判断当前的cache line是属于cache部分的还是属于scratchpad memory部分的。这个判断位的产生来自于编译期,处理器发送一个指令给cache控制器,cache控制器内的边界记录器将会登记存储阵列的边界。通过一定的逻辑电路对每个cache line产生一个判断位。当cache访问时,先判断该cache line是否属于cache部分,如果在cache部分的范围内,那么继续查找tag阵列,进行下一步的数据访问,否则停止对该tag的查找。

Cache控制器中其它部件(比如译码器等)与通用处理器的cache控制器类似,输入进入译码器后,产生地址进行查找tag阵列。当完成tag阵列查找后,确定了访问数据的位线,然后在存储阵列中就可以找到相应的数据。

在具体应用实例中,边界记录器的大小可以根据边界划分的粒度而改变。如果进行细粒度的划分,可以把存储阵列以cache line的大小分为两部分,边界记录器记录每个cache line的状态,确定相应的判断位的值。如果采用粗粒度的划分,就可以减少边界记录器的开销。

如图3所示,本实施例中,scratchpad memory控制器主要包括仲裁逻辑单元、缓冲队列单元、边界输入单元以及地址映射逻辑单元。由于在编译期就确定了scratchpad memory部分的大小,因此对scratchpad memory的访问都是不会超过这个界限的。仲裁逻辑单元主要是用于仲裁多个数据竞争时进行的优先级判断,需要等待的数据请求先放到缓冲队列单元中,优先处理级别高的请求。边界输入单元用来告诉地址映射逻辑单元那些是cache,那些是scratchpad memory,不会导致数据访问溢出的情况。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号