一种处理器核外缓存模型及模拟方法技术

技术编号:38582126 阅读:17 留言:0更新日期:2023-08-26 23:26
本申请属于处理器技术领域,公开了一种处理器核外缓存模型及模拟方法,该模型包括:请求接口模块,用于将读取请求和写入请求分别转换为读取事件和写入事件以及根据模式配置信息修改请求接口时序;数据缓存模块,用于将读取数据发送给读取处理模块以及根据模式配置信息修改数据缓存模块的容量;读取处理模块,用于基于模式配置信息和命中检测模块的读取命中结果获取读取数据;写入处理模块,用于基于模式配置信息和写入命中结果,根据写入事件或写入数据更新数据缓存模块;总线请求处理模块,用于获取读取数据和写入数据和根据模式配置信息修改总线接口时序。本申请可通用于多种缓存的应用场景,减少对多个缓存模型的维护和移植难度。移植难度。移植难度。

【技术实现步骤摘要】
一种处理器核外缓存模型及模拟方法


[0001]本申请涉及处理器
,尤其涉及一种处理器核外缓存模型及模拟方法。

技术介绍

[0002]在处理器系统设计过程中,往往会对某一级或某几级缓存进行建模,以减少模块设计过程之间的耦合,提高各子系统的设计并行度。但不同级的缓存往往需要单独进行开发,如在验证多级缓存时,需要一对一地开发多个模型,不仅需要设计人员花费大量时间和精力,还容易导致缓存模型不一致的问题,多个对应不同级的缓存模型也增加了对缓存模型的移植和维护难度。

技术实现思路

[0003]本申请提供了一种处理器核外缓存模型及模拟方法,其中,该缓存模型可通用于多种缓存的应用场景,减少了对多个缓存模型的维护和移植难度。
[0004]第一方面,本申请实施例提供了一种处理器核外缓存模型,该模型包括:请求接口模块、读取处理模块、写入处理模块、命中检测模块、数据缓存模块和总线请求处理模块;
[0005]请求接口模块用于根据请求接口时序接收读取请求和写入请求,将读取请求转换为读取事件发给读取处理模块,将写入请求转换为写入事件发给写入处理模块;
[0006]请求接口模块还用于根据模式配置信息修改请求接口时序;
[0007]数据缓存模块用于将读取事件对应的读取数据发送给读取处理模块;
[0008]数据缓存模块还用于根据模式配置信息修改数据缓存模块的容量;
[0009]读取处理模块用于通过命中检测模块获取读取事件的读取命中结果,并基于模式配置信息和读取命中结果获取读取数据;<br/>[0010]写入处理模块用于通过命中检测模块获取写入事件的写入命中结果,并基于模式配置信息和写入命中结果,根据写入事件或写入数据更新数据缓存模块;
[0011]总线请求处理模块用于基于总线接口时序获取读取数据并发送至读取处理模块,基于总线接口时序获取写入数据并发送至写入处理模块;
[0012]总线请求处理模块还用于根据模式配置信息修改总线接口时序。
[0013]进一步的,该模型还包括读取队列模块和写入队列模块;读取队列模块用于接收读取事件,写入队列模块用于接收写入事件;
[0014]读取队列模块还用于对各读取事件与写入队列模块中的各写入事件做冲突检测,将无冲突的读取事件发送至读取处理模块;写入队列模块还用于对各写入事件与读取队列模块中的各读取事件做冲突检测,将无冲突的写入事件发送至写入处理模块;
[0015]读取处理模块还用于在获取读取数据后,将其发送给读取队列模块。
[0016]上述实施例保证了发送给读取/写入处理模块的各个请求事件是无冲突、无依赖的,避免了读取/写入处理模块因地址冲突等原因需要排队处理接收到的各请求事件的情况,从而避免了因请求事件冲突、排队处理造成的延时。
[0017]进一步的,命中检测模块和总线请求处理模块还用于在模式配置信息为无缓存信息时进入屏蔽状态;读取处理模块用于在模式配置信息为无缓存信息时,获取数据缓存模块中的读取数据;写入处理模块用于在模式配置信息为无缓存信息时,根据写入事件更新数据缓存模块。
[0018]上述实施例令本申请的缓存模型实现了无缓存模式下对读取请求和写入请求的处理。
[0019]进一步的,读取处理模块还用于在模式配置信息为二级缓存信息或三级缓存信息时,若读取事件为命中,则获取数据缓存模块中的读取数据;若读取事件为未命中,则通过总线请求处理模块获取读取数据;写入处理模块还用于在模式配置信息为二级缓存信息或三级缓存信息时,若写入事件为命中,则根据写入事件更新数据缓存模块;若写入事件为未命中,则通过总线请求处理模块获取写入数据,并根据写入数据更新数据缓存模块。
[0020]上述实施例令本申请的缓存模型实现了L2和L3模式下对读取请求和写入请求的处理。
[0021]进一步的,该模型还包括访存记录模块;
[0022]读取处理模块还用于在模式配置信息为二级缓存信息或三级缓存信息时,在获取读取数据后根据读取数据更新访存记录模块;
[0023]写入处理模块还用于在模式配置信息为二级缓存信息或三级缓存信息时,在根据写入事件或写入数据更新数据缓存模块后,根据写入事件或写入数据更新访存记录模块。
[0024]上述实施例通过设置访存记录模块,通过其中记录的访存记录数据可以读取处理模块和写入处理模块快速准确地选择出最优的替换数据。
[0025]进一步的,该模型还包括替换处理模块;
[0026]读取处理模块或写入处理模块还用于在读取事件或写入事件未命中时,通过访存记录模块得到替换数据并发送给替换处理模块;替换处理模块用于将替换数据写出该模型。
[0027]上述实施例替换处理模块的设置实现了在请求未命中、获取新数据时的数据替换操作,避免了未被分配的缓存行被用完时,未命中后的缓存处理流程出错,同时通过访存记录模块确定替换数据保证了替换数据选择的最优。
[0028]进一步的,替换处理模块还用于根据替换数据生成替换写请求并发送给总线请求处理模块,并在接收到总线应答时写出替换数据;总线请求处理模块还用于将替换写请求转换为总线写请求并发送给总线;以及将接收到的总线应答发送给替换处理模块。
[0029]上述实施例在产生替换数据后,通过总线发出总线写请求,在确定该替换数据可以被写出后产生总线应答,避免了访存记录模块产生的替换数据不合适的情况。
[0030]进一步的,写入处理模块还用于在根据写入数据更新数据缓存模块后,根据写入数据更新命中检测模块;读取处理模块还用于在通过总线请求处理模块获取读取数据后,根据读取数据更新数据缓存模块和命中检测模块。
[0031]上述实施例通过在从总线获取数据后,对命中检测模块的更新,保证了命中检测模块和数据缓存模块的实时对应,确保了后续相同请求的命中。
[0032]进一步的,该模型还包括窥探处理模块和窥探队列模块;
[0033]当模式配置信息为二级缓存信息或三级缓存信息时:总线请求处理模块还用于接
收窥探请求,并将窥探请求转换为窥探事件发送给窥探队列模块;
[0034]窥探队列模块用于将各窥探事件与各读取事件、各写入事件进行冲突检测,得到无冲突的窥探事件并将其发送给窥探处理模块;窥探处理模块用于通过命中检测模块获取窥探事件的命中结果,根据命中结果生成窥探应答并发送至总线请求处理模块。
[0035]上述实施例考虑到了多核处理器中,可能接收到的来自其他缓存的窥探请求,实现了在二级缓存和三级缓存的模式下对窥探请求的处理,令本申请能够应用于多核、多缓存的应用场景。
[0036]进一步的,窥探处理模块还用于在窥探事件为数据窥探事件且窥探事件命中时,获取数据缓存模块中窥探事件对应的窥探数据;窥探处理模块生成的窥探应答中包括窥探数据。
[0037]上述实施例在窥探请求是需要数据的请求时,若其命中,则将其请求的数据一同发送给窥探请求方,实现了对数据请求类型的窥探请求的处理。
[0038本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器核外缓存模型,其特征在于,所述模型包括请求接口模块、读取处理模块、写入处理模块、命中检测模块、数据缓存模块和总线请求处理模块;所述请求接口模块用于根据请求接口时序接收读取请求和写入请求,将所述读取请求转换为读取事件发给所述读取处理模块,将所述写入请求转换为写入事件发给所述写入处理模块;所述请求接口模块还用于根据模式配置信息修改请求接口时序;所述数据缓存模块用于将所述读取事件对应的读取数据发送给所述读取处理模块;所述数据缓存模块还用于根据所述模式配置信息修改所述数据缓存模块的容量;所述读取处理模块用于通过所述命中检测模块获取所述读取事件的读取命中结果,并基于所述模式配置信息和所述读取命中结果获取所述读取数据;所述写入处理模块用于通过所述命中检测模块获取所述写入事件的写入命中结果,并基于所述模式配置信息和所述写入命中结果,根据所述写入事件或写入数据更新所述数据缓存模块;所述总线请求处理模块用于基于总线接口时序获取所述读取数据并发送至所述读取处理模块,基于所述总线接口时序获取所述写入数据并发送至所述写入处理模块;所述总线请求处理模块还用于根据所述模式配置信息修改所述总线接口时序。2.根据权利要求1所述的模型,其特征在于,所述模型还包括读取队列模块和写入队列模块;所述读取队列模块用于接收所述读取事件,所述写入队列模块用于接收所述写入事件;所述读取队列模块还用于对各所述读取事件与所述写入队列模块中的各所述写入事件做冲突检测,将无冲突的所述读取事件发送至所述读取处理模块;所述写入队列模块还用于对各所述写入事件与所述读取队列模块中的各所述读取事件做冲突检测,将无冲突的所述写入事件发送至所述写入处理模块;所述读取处理模块还用于在获取所述读取数据后,将其发送给所述读取队列模块。3.根据权利要求2所述的模型,其特征在于,所述命中检测模块和所述总线请求处理模块还用于在所述模式配置信息为无缓存信息时进入屏蔽状态;所述读取处理模块用于在所述模式配置信息为所述无缓存信息时,获取所述数据缓存模块中的所述读取数据;所述写入处理模块用于在所述模式配置信息为所述无缓存信息时,根据所述写入事件更新所述数据缓存模块。4.根据权利要求3所述的模型,其特征在于,所述读取处理模块还用于在所述模式配置信息为二级缓存信息或三级缓存信息时,若所述读取事件命中,则获取所述数据缓存模块中的所述读取数据;若所述读取事件未命中,则通过所述总线请求处理模块获取所述读取数据;所述写入处理模块还用于在所述模式配置信息为所述二级缓存信息或所述三级缓存信息时,若所述写入事件命中,则根据所述写入事件更新所述数据缓存模块;若所述写入事件未命中,则通过所述总线请求处理模块获取所述写入数据,并更新所述数据缓存模块。5.根据权利要求4所述的模型,其特征在于,所述模型还包括访存记录模块;所述读取处理模块还用于在所述模式配置信息为所述二级缓存信息或所述三级缓存信息时,在获取所述读取数据后根据所述读取数据更新所述访存记录模块;
所述写入处理模块还用于在所述模式配置信息为所述二级缓存信息或所述三级缓存信息时,在根据所述写入事件或所述写入数据更新所述数据缓存模块后,根据所述写入事件或所述写入数据更新所述访存记录模块。6.根据权利要求5所述的模型,其特征在于,所述模型还包括替换处理模块;所述读取处理模块或所述写入处理模块还用于在所述读取事件或所述写入事件未命中时,通过所述访存记录模块得到替换数据并发送给所述替换处理模块;所述替换处理模块用于将所述替换数据写出所述模型。7.根据权利要求6所述的模型,其特征在于,所述替换处理模块还用于根据所述替换数据生成替换写请求并发送给所述总线请求处理模块,并在接收到总线应答时写出所述替换数据;所述总线请求处理模块还用于将所述替换写请求转换为总线写请求并发送给总线;以及将接收到的所述总线应答发送给所述替换处理模块。8.根据权利要求4所述的模型,其特征在于,所述写入处理模块还用于在根据所述写入数据更新所述数据缓存模块后,根据所述写入数据更新所述命中检测模块;所述读取处理模块还用于在通过所述总线请求处理模块获取所述读取数据后,根据所述读取数据更新所述数据缓存模块和所述命中检测模块。9.根据权利要求7所述的模型,其特征在于,所述模型还包括窥探处理模块和窥探队列模块;当所述模式配置信息为二级缓存信息或三级缓存信息时:所述总线请求处理模块还用于接收窥探请求,并转换为窥探事件发送给所述窥探队列模块;所述窥探队列模块用于将各所述窥探事件与...

【专利技术属性】
技术研发人员:施葹苟鹏飞刘扬帆王贺徐越陆泳
申请(专利权)人:合芯科技苏州有限公司
类型:发明
国别省市:

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

1