[发明专利]一种缓存数字电路处理请求冲突的方法有效
申请号: | 202110337496.1 | 申请日: | 2021-03-30 |
公开(公告)号: | CN112965668B | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 王俊 | 申请(专利权)人: | 上海芷锐电子科技有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F13/40 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 金子娟 |
地址: | 201114 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 数字电路 处理 请求 冲突 方法 | ||
本发明方法公开了一种缓存数字电路处理请求冲突的方法,其特征在于,包括:建立操作队列机制,在新的请求完成对缓存查找表信息的读取后,使该请求进入操作队列,并为其分配一个操作队列条目,当该请求的目标访问地址与在先请求发生冲突时,在该请求进入到操作队列中之后,直接将所述缓存查找表的信息更新为该请求完成的状态。本发明方法,相比现有设计,可显著提高请求的吞吐率,减少了平均访问完成时间,提高了请求访问的效率,且更适合频率较低的、有大容量需求的缓存电路中。
技术领域
本发明涉及计算机科学领域,具体为一种缓存数字电路处理请求冲突的方法。
背景技术
缓存控制器数字电路的一般流程包括以下几个步骤:
首先,新的缓存请求通过读取缓存查找表(TLB)来判断当前请求的地址是否命中缓存,以及该请求地址的缓存状态(无效INVALID,干净CLEAN,脏DIRTY)等,并且判断是否与先前还未完成的缓存请求存在请求冲突,冲突若发生则需要做冲突处理。
主要的冲突可以分为几类,包括数据冲突、硬件资源冲突、结构冲突等等,其中:
数据冲突指的是当前请求想要访问的地址数据正在被先前的请求操作,比如先前的请求正在对该地址数据做一个因为未命中而引发的下一级存储器读操作还未完成,或者对该地址数据做一个踢出到下一级存储器的写操作等;
硬件资源冲突指的是当前请求想要占用的缓存地址空间(记为{set*,way*})也正在被先前的请求操作,比如先前的请求正在对同一个缓存地址空间{set*,way*}进行无效操作等;
缓存的结构冲突指的是硬件设计造成的冲突,比如背靠背的请求要访问同一查找表的同一行内容,数字设计导致了读取查找表到完成更新查找表需要多个时钟周期才能完成,而背靠背的下一个时钟周期的请求无法立刻得到同一行最终的更新内容,即与前面的访问请求发生了结构冲突。
当各类冲突发生后,常用的处理方法包括请求阻塞,创建重试请求队列等。然后,当请求没有冲突时,则可以继续进行后续操作,比如没有命中的读缓存请求需要从下级存储器中读取对应地址的数据,写到缓存中,并将该数据返回给上游。对于命中的读写缓存请求则直接对缓存进行读写操作,在操作完成后,发送对应的响应给到上游等。
最后缓存查找表要根据最新的情况进行状态更新,比如一个未命中的读请求从下级存储器中读取数据并已经缓存在了某缓存地址中,则需要在查找表对应行更新该地址的标签,并把查找表该标签的状态更新成CLEAN;比如一个命中标签,且状态是CLEAN的写请求,已经覆盖了缓存原来的数据,则需要把查找表该标签的状态更新成DIRTY等。
现有的缓存数字电路处理请求冲突的方式在冲突处理效率方面还有待提高。
发明内容
本发明的技术目的是对现有技术做出改进,提供了一种新型的缓存数字电路处理请求冲突的方法,以满足缓存高效访问的需求。
本发明实现上述技术目的的方案为:
一种缓存数字电路处理请求冲突的方法,其特征在于,包括:
建立操作队列机制,在新的请求完成对缓存查找表信息的读取后,使该请求进入操作队列,并为其分配一个操作队列条目,无论该请求的目标访问地址是否与在先请求发生冲突,在该请求进入到操作队列中之后,直接将所述缓存查找表的信息更新为该请求完成的状态。
在上述方案的基础上,进一步改进或优选的方式还包括:
进一步的,在所述新的请求读取缓存查找表信息的同时,和之前已经分配的,处于有效状态的所有操作队列条目的信息进行比较,以确认当前请求是否和在先请求发生访问冲突,并在给当前请求分配操作队列条目时,将当前请求的所有冲突状态记录在该条目的冲突信息中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海芷锐电子科技有限公司,未经上海芷锐电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110337496.1/2.html,转载请声明来源钻瓜专利网。