一种基于Buffer的Cache控制器及工作方法技术

技术编号:36689601 阅读:11 留言:0更新日期:2023-02-27 19:55
本发明专利技术涉及一种基于Buffer的Cache控制器及工作方法,其中的一级Cache控制器设于处理器以及存储器中间,包括有Sram、Buffer,Cache控制器在存储器和Sram中间增加了一级Buffer用于缓存当前正在载入的数据;Cache控制器在从存储器载入数据的同时可以继续匹配内核的读操作地址,其中命中Sram或者命中Buffer或者命中正在传输的总线则可以立即反馈数据。本发明专利技术Cache控制器的工作方法:在内核访问出现未命中时,Cache控制器在总线上发起读传输,并且把标志和数据存储到Buffer。在此过程中,内核可以继续访问命中地址的数据,除非出现下一个未命中地址。未命中地址。未命中地址。

【技术实现步骤摘要】
一种基于Buffer的Cache控制器及工作方法


[0001]本专利技术涉及存储器领域,尤其是指一种基于Buffer的Cache控制器及工作方法。

技术介绍

[0002]在微控制器中,处理器的时钟频率相对于存储器来说比较快,一般有数倍到数十倍的差距。为了减少处理器读取数据的等待,提高系统执行效率,可在处理器和存储器之间增加一级Cache。Cache是基于Sram实现的存储器,容量相对于系统存储器小但是速度高很多,可以与处理器的频率相同。
[0003]当处理器读取数据时,如果在Cache中可以找到需要的数据,我们称之为命中(Hit)。反之没有找到数据,我们称之为缺失(Miss),这时候就需要控制器从外部存储器加载一小块数据(包含但不限于本次传输需要的数据),并且存放在Sram中,以便于处理器将来可以及时访问到。
[0004]对于现有的Cache控制器,处理器得到当前访问地址的数据以后,Cache控制器可能处于数据加载阶段,此时Sram的端口被写入操作占用,处理器需要等到所有的数据全部加载完成以后才能继续下一个地址的访问。

技术实现思路

[0005]为解决上述技术问题,本专利技术的一种基于Buffer的Cache控制器,其中的一级Cache控制器设于处理器以及存储器中间,包括有Sram、Buffer,Cache控制器在存储器和Sram中间增加了一级Buffer用于缓存当前正在载入的数据;Cache控制器在从存储器载入数据的同时可以继续匹配内核的读操作地址,其中命中Sram或者命中Buffer或者命中正在传输的总线则可以立即反馈数据;Cache控制器中的Sram和Buffer的宽度是总线宽度的2
n
倍数,每次未命中的时候可以从存储器载入2
n
个数据;Cache控制器可匹配Sram中的值,也可匹配Buffer中的值,以及匹配正在传输的总线上的值。
[0006]在本专利技术的一个实施例中,所述Sram包括TagSram和DataSram,其中的TagSram用于存储标志位,V=1表示该条缓存是有效的,V=0则表示该条缓存是无效的,T的值取自地址的高位,用来匹配以后的读地址;DataSram用于存储数据。
[0007]在本专利技术的一个实施例中,所述Buffer包括TagBuffer、DataBuffer,TagBuffer用于存储当前正在从存储器读取数据的标志位,其中V有2
n
位,用于表示对应Bus宽度的数据的有效情况,T的值取自地址的高位,用来匹配以后的读地址;DataBuffer用于存储当前正在从存储区读取的数据。
[0008]另外,本专利技术还提供一个实施例,Cache控制器的工作方法,基于所述的Cache控制器设计,包括如下步骤:
[0009]步骤S1:处理器在总线上发起一次读传输,Cache控制器接收该请求,跳转到S7;
[0010]步骤S2:处理器可直接获取Sram里的数据并且跳转到S1执行下一次读传输;
[0011]步骤S3:处理器可直接获取Buffer里的数据并且跳转到S1执行下一次读传输;
[0012]步骤S4:处理器可直接获取Bus上的数据并且跳转到S1执行下一次读传输;
[0013]步骤S5:等待加载工作完成;
[0014]步骤S6:Cache控制器开始本次数据加载,并且把总线上获取的第一个数据反馈给处理器,并且跳转到S1执行下一次都传输
[0015]步骤S7:Cache控制器通过地址位高位来搜索TagSram,如果Sram中已经存在该地址对应的数据,则数据命中并跳转到S2;如果未命中则跳转到S8;
[0016]步骤S8:Cache控制器通过地址位高位来搜索TagBuffer,如果Buffer中已经存在该地址对应的数据,则数据命中并跳转到S3;如果未命中则跳转到S9;
[0017]步骤S9:Cache控制器匹配当前处理器的读地址以及当前正在加载的都地址,如果两者地址相同、则数据命中并跳转到S4;如果未命中则跳转到S10;
[0018]步骤S10:处理器当前的读数据不存在Cache控制器中,控制器需要从存储器加载数据;若当前已经有加载的操作正在执行中,则跳转到S5,如果没有则跳转到S6;
[0019]步骤S11:等待加载工作完成并且跳转到S6。
[0020]本专利技术的上述技术方案相比现有技术具有以下优点:本专利技术所述的Cache控制器及工作方法,通过在Sram和外部存储之间再加入一级Buffer用于保存加载过程中数据,并且在这一小块数据全部加载完成以后一次性写入Sram来更新数据。这样一来,更新操作只需要占用一个时钟周期,其余的时间都可以被处理器访问。
附图说明
[0021]为了使本专利技术的内容更容易被清楚的理解,下面根据本专利技术的具体实施例并结合附图,对本专利技术作进一步详细的说明。
[0022]图1是本专利技术Cache控制器在系统中的拓扑示意图;
[0023]图2是本专利技术所述Cache控制器中Sram和Buffer的存储示意图;
[0024]图3是本专利技术所述Cache控制器的工作流程图;
[0025]图4是本专利技术所述Cache控制器的一种时序图;
[0026]图5是本专利技术所述Cache控制器的另一时序图。
具体实施方式
[0027]如图1所示,本实施例提供一种基于Buffer的Cache控制器,在处理器以及存储器中间增加一级Cache控制器,Cache控制器有Sram、Buffer,用于加速处理器的读取速度。
[0028]如图2所示,为Cache控制器中Sram和Buffer的存储示意图。TagSram用于存储标志位,V=1表示该条缓存是有效的,V=0则表示该条缓存是无效的。T的值取自地址的高位,用来匹配以后的读地址。DataSram用于存储数据,其Cache宽度可以是Bus宽度的2
n
倍,图中所示为Bus宽度的4倍。TagBuffer用于存储当前正在从存储器读取数据的标志位,V有4位,用于表示对应Bus宽度的数据的有效情况。T的值取自地址的高位,用来匹配以后的读地址。DataBuffer用于存储当前正在从存储区读取的数据,其Cache宽度可以是Bus宽度的倍数。
[0029]其中的TagBuffer中使用2
n
位来存储对应的DadaBuffer中的数据是否是有效的。
[0030]如图3所示,为Cache控制器的工作流程图。
[0031]Cache控制器的工作方法,基于所述的Cache控制器设计,包括如下步骤:
[0032]步骤S1:处理器在总线上发起一次读传输,Cache控制器接收该请求,跳转到S7;
[0033]步骤S2:处理器可直接获取Sram里的数据并且跳转到S1执行下一次读传输;
[0034]步骤S3:处理器可直接获取Buffer里的数据并且跳转到S1执行下一次读传输;
[0035]步骤本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Buffer的Cache控制器,其中的一级Cache控制器设于处理器以及存储器中间,其特征在于,包括有Sram、Buffer,Cache控制器在存储器和Sram中间增加了一级Buffer用于缓存当前正在载入的数据;Cache控制器在从存储器载入数据的同时可以继续匹配内核的读操作地址,其中命中Sram或者命中Buffer或者命中正在传输的总线则可以立即反馈数据;Cache控制器中的Sram和Buffer的宽度是总线宽度的2
n
倍数,每次未命中的时候可以从存储器载入2
n
个数据;Cache控制器可匹配Sram中的值,也可匹配Buffer中的值,以及匹配正在传输的总线上的值。2.根据权利要求1所述的Cache控制器,其特征在于:所述Sram包括TagSram和DataSram,其中的TagSram用于存储标志位,V=1表示该条缓存是有效的,V=0则表示该条缓存是无效的,T的值取自地址的高位,用来匹配以后的读地址;DataSram用于存储数据。3.根据权利要求2所述的Cache控制器,其特征在于:所述Buffer包括TagBuffer、DataBuffer,TagBuffer用于存储当前正在从存储器读取数据的标志位,其中V有2
n
位,用于表示对应Bus宽度的数据的有效情况,T的值取自地址的高位,用来匹配以后的读地址;DataBuffer用于存储当前正在从存...

【专利技术属性】
技术研发人员:杨晓刚兰亚峰刘梦影刘云晶
申请(专利权)人:中科芯集成电路有限公司
类型:发明
国别省市:

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

1