多核SOC中非阻塞L1Cache的制作方法

文档序号:28808006发布日期:2022-02-09 03:05阅读:来源:国知局

技术特征:
1.多核soc中非阻塞l1 cache,所述l1 cache包括icache与dcache两个电路模块,其特征在于,icache电路模块设计为8路组相联双bank sram为cpu取指阶段提供数据访问,dcache电路模块设计为8路组相联单bank sram为cpu lsu取指阶段提供数据访问,另外包括:soc处理器核心cpu所需要的数据在cache中缺失时,cpu不会发生阻塞,等待数据准备好,而是将未准备好数据的指令放入缺失处理队列,继续执行下一条指令,当数据从低层存储器取回l1 cache之后,再重新执行该条指令;soc处理器核心cpu对数据进行修改并写回l1 cache中时,对l1 cache中的数据标记为脏数据,同时当soc中其他cpu对该数据申请访问时,由于数据只在写数据的cpu的本地l1 cache进行更新,其他cpu的本地l1 cache并没有该数据的最新副本,需要利用一致性算法将同步该数据。2.根据权利要求1所述的多核soc中非阻塞l1 cache,其特征在于,将缺失的操作记录到缓存缺失缓存队列,并在数据取回l1 cache之后通知cpu重新执行对应的指令,包括:将缺失指令的地址记录到缺失缓存队列中,并通知cpu继续执行后续的指令;同时将缺失数据的地址发送到总线,通知下层存储单元传输对应的数据;将所需的数据通过总线取回到l1 cache的sram中,并将之前存储的缺失指令地址从缺失缓存队列中取出,通知cpu再次执行该指令。3.根据权利2所述的多核soc中非阻塞l1 cache,其特征在于,多核之间的数据一致性的维护,数据在不同核之间会有不同的数据权限,该一致性协议定义了4种不同的权限,分别为没有本地数据,本地存在数据但只有读取权限,本地有数据且有读写权限,本地有数据且有读写权限,同时为脏数据,具体包括:当本地没有所需要的数据且当前请求为读取数据时,需要向总线发送请求从远端读取数据;当请求远端的数据没有标记为脏数据时,向请求端返回请求的数据,此时本地与远端都有最新的副本;当请求远端的数据标记为脏数据时,需要先将脏数据写回到下层存储器,同时将数据返回到本地缓存,此时远端与本地都有最新的数据副本;当本地没有所需要的数据且当前请求为写入数据时,需要向总线发送数据请求从远端读取数据;当请求远端的数据没有标记为脏数据时,将数据副本返回到请求端,当本地进行写之后本地的数据副本为脏数据同时将远端的数据副本无效;当请求远端的数据标记为脏数据,需要先将数据副本写回同时将数据返回到请求端,此时远端数据副本变为branch或者trunk,当请求端进行写数据后,本地数据标记为脏数据,同时将远端得数据无效;当本地存在数据副本时,说明所有核的本地缓存没有数据为脏数据,当需要对数据进行读取时,直接通过本地缓存进行读取;当数据需要进行写入时,先判断本地数据对应的权限是否足够,若权限足够直接对数据进行写入,否者需要对数据权限进行升级之后再对数据进行写入,同时将其他核心数据无效化,修改本地数据权限为dirty。4.根据权利2所述的多核soc中非阻塞l1 cache,其特征在于,需要对dirty数据进行写回处理,写回有两种方式,一种是根据权利3所述一致性维护时对数据进行写回处理,另一种是cpu主动将dirty的数据写回,包括:当一致性维护涉及脏数据时,需要再一致性维护的同时将数据写回到下一级存储器;当脏数据在本地积累太多时,cpu会主动将所有的脏数据一次性进行流水化处理。
5.根据上述权利4的要求,其特征在于,需要设计独立的缓存icache为cpu取指阶段提供指令,包括:cpu流水线中取指if阶段需要程序计数器pc对应的指令时,将会从icache中取出相应地址对应的指令返回给cpu;icache仅需要对取指阶段为cpu提供数据访问,cpu没有返回给icache的数据,icache的数据全来自下层存储器通过总线对icache的写入,数据不存在数据被cpu写入后变为脏数据,因此不需要对icache提供一致性维护以及数据写回的支持。6.根据上述权利4的要求,其特征在于,需要设计独立的缓存dcache为cpu的slu阶段提供数据的访问与缓存,包括:当指令load指令时需要将请求地址对应的数据提供给cpu,当执行save指令时需要将对应的数据缓存到对应的地址,同时将该数据在dcache中的权限设置为dirty;由于lsu模块不仅需要对dcache进行访问,还需要写入数据,从而导致dcache中的数据变为脏数据,因此对dcache需要加入一致性维护与写回模块,同时为了提高cpu的性能,当lsu需要访问的数据不在dcache中时,cpu不会因为该数据缺失而进入等待状态,而是转去取执行其他与该条指令不相关的指令,因此需要加入缺失缓存处理机制。

技术总结
本发明涉及一种多核SOC中非阻塞L1 Cache,所述L1 Cache包括ICache与DCache两个电路模块,ICache电路模块设计为8路组相联双bank SRAM为CPU取指阶段提供数据访问,DCache电路模块设计为8路组相联单bank SRAM为CPU LSU取指阶段提供数据访问;ICache中控制电路以及流水线的设计;DCache中的控制电路、流水线、替换算法、缺失缓存队列(MSHR)以及一致性协议。本发明申请的多核SOC中非阻塞L1 Cache解决了现有多核SOC中Cache访问效率低下,设计困难等问题。困难等问题。困难等问题。


技术研发人员:魏敬和 刘德 莫海
受保护的技术使用者:中科芯集成电路有限公司
技术研发日:2021.11.05
技术公布日:2022/2/8
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1