重排序缓冲器、系统、装置、设备及传输方法制造方法及图纸

技术编号:37873303 阅读:12 留言:0更新日期:2023-06-15 21:02
本公开提供一种重排序缓冲器、系统、装置、设备及传输方法。该重排序缓冲器包括排序模块和第一缓存模块;排序模块接收主模块的事务请求,读取该事务请求的第一标识并将其替换为对应的第二标识;将具有第二标识的事务请求通过总线转发至从模块,并将该事务请求的第一标识与第二标识的映射关系记录于第一缓存模块;其中,该事务请求的第二标识不同于第一缓存模块中记录的其它映射关系中的第二标识;接收从模块通过总线反馈的事务响应,根据第一缓存模块中记录的映射关系,将该事务响应的第二标识替换为对应的第一标识,并将具有第一标识的事务响应返回主模块。一定程度上避免了死锁情况的发生,且不损耗系统的超前传输性能。且不损耗系统的超前传输性能。且不损耗系统的超前传输性能。

【技术实现步骤摘要】
重排序缓冲器、系统、装置、设备及传输方法


[0001]本公开涉及总线
,尤其涉及一种重排序缓冲器、系统、装置、设备及传输方法。

技术介绍

[0002]片上系统(System on chip,SOC)内部总线的互联协议有高级可扩展接口(Advanced eXtensible Interface,AXI)协议等。主模块发出的事务请求由互联总线(Interconnect)通过地址控制信号来判断目的从模块,从模块返回的响应(response)根据标志符来识别发出对应的事务请求的主模块,这种机制导致AXI总线在使用过程中会出现由于标志符相同的事务请求(或标志符相同的事务响应)彼此之间需要保序,导致的死锁问题。目前,防止总线死锁的常用方法为,在互联总线与各主模块相连的端口添加检查模块,主模块发出的每笔事务都需要经过检查模块,检查模块会检查主模块之前是否发出相同标志符但访问不同从模块的事务,如果有则暂时堵塞该笔事务,并由互联总线发起一个提高优先级的请求,让从模块加快处理已经接收的该标志符对应的事务。但是这种方案中仍旧会存在一定程度的堵塞,还会导致系统超前传输(outstanding)性能的损失。

技术实现思路

[0003]本公开的目的是提供一种重排序缓冲器、系统、装置、设备及传输方法,解决了现有技术中防止总线死锁的方案会损失系统超前传输(outstanding)性能的技术问题。
[0004]根据本公开的一个方面,提供一种重排序缓冲器,应用于总线系统,包括:排序模块和第一缓存模块;排序模块,被配置为接收主模块的事务请求,读取该事务请求的第一标识并将其替换为对应的第二标识;将具有第二标识的事务请求通过总线转发至从模块,并将该事务请求的第一标识与第二标识的映射关系记录于第一缓存模块;其中,该事务请求的第二标识不同于第一缓存模块中记录的其它映射关系中的第二标识;接收从模块通过总线反馈的事务响应,并读取该事务响应的第二标识;其中,事务响应与其针对的事务请求具有相同的第二标识;根据第一缓存模块中记录的映射关系,将该事务响应的第二标识替换为对应的第一标识,并将具有第一标识的事务响应返回主模块。
[0005]在一些实施例中,上述重排序缓冲器中,还包括第二缓存模块;排序模块,具体被配置为:将具有第二标识的事务请求通过总线转发至从模块,并确认第一缓存模块中当前记录的映射关系中与该事务请求对应同一第一标识的映射关系的数量,将该数量加上一预设阈值,作为该事务请求的第三标识;将该事务请求的第一标识、第二标识和第三标识的映射关系记录于第一缓存模
块;接收从模块通过总线反馈的事务响应,并读取该事务响应的第二标识,根据第一缓存模块中记录的映射关系,确认该事务响应的第二标识对应的第一标识和第三标识;将该事务响应的第二标识替换为对应的第一标识,并以该事务响应对应的第二标识为写指针,将具有第一标识的该事务响应写入第二缓存模块的对应位置处;根据第一缓存模块中记录的对应相同第一标识的各个映射关系中的第三标识和第二标识,从值为预设阈值的第三标识开始按照第三标识从小到大的顺序,依次以对应的第二标识为读指针,从第二缓存模块中读出对应位置处缓存的事务响应返回主模块。
[0006]在一些实施例中,上述重排序缓冲器中,排序模块,还被配置为:每当将一事务响应返回主模块后,将第一缓存模块中记录的与该事务响应对应同一第二标识的映射关系清除。
[0007]在一些实施例中,上述重排序缓冲器中,排序模块,被配置为根据第一缓存模块中记录的对应相同第一标识的各个映射关系中的第三标识和第二标识,从值为预设阈值的第三标识开始按照第三标识从小到大的顺序,依次以对应的第二标识为读指针,从第二缓存模块中读出对应位置处缓存的事务响应返回主模块,包括:排序模块,被配置为每当将一事务响应返回主模块后,将第一缓存模块中记录的与该事务响应对应同一第一标识的映射关系中的第三标识的值减1;监测第一缓存模块中记录的各个映射关系中的第三标识的值,在第一缓存模块中记录的一映射关系中的第三标识的值为预设阈值时,以该映射关系中的第二标识为读指针,从第二缓存模块中读出对应位置处缓存的事务响应返回主模块。
[0008]在一些实施例中,上述重排序缓冲器中,排序模块,还被配置为:每当将一事务响应返回主模块后,在将第一缓存模块中记录的与该事务响应对应同一第一标识的映射关系中的第三标识的值减1之前,将第一缓存模块中记录的与该事务响应对应同一第一标识且第三标识的值为预设阈值的映射关系清除;或,每当将一事务响应返回主模块后,在将第一缓存模块中记录的与该事务响应对应同一第一标识的映射关系中的第三标识的值减1之后,将第一缓存模块中记录的与该事务响应对应同一第一标识且第三标识的值小于预设阈值的映射关系清除。
[0009]在一些实施例中,上述重排序缓冲器中,排序模块,被配置为将该事务响应的第二标识替换为对应的第一标识,并以该事务响应对应的第二标识为写指针,将具有第一标识的该事务响应写入第二缓存模块的对应位置处,包括:排序模块,被配置为判断该事务响应的第二标识对应的第三标识的值是否大于预设阈值,若是,则将该事务响应的第二标识替换为对应的第一标识,并以该事务响应对应的第二标识为写指针,将具有第一标识的该事务响应写入第二缓存模块的对应位置处,否则,将该事务响应的第二标识替换为对应的第一标识,并将具有第一标识的该事务响应直接返回主模块。
[0010]在一些实施例中,上述重排序缓冲器中,还包括:多路选择模块,被配置为接收排序模块输出的事务响应和第二缓存模块输出的事务响应,并从中选择其一返回主模块。
[0011]在一些实施例中,上述重排序缓冲器中,排序模块,被配置为将该事务请求的第一
标识、第二标识和第三标识的映射关系记录于第一缓存模块,包括:排序模块,被配置为以该事务请求的第二标识为写指针,将该事务请求的第一标识、第二标识和第三标识的映射关系写入第一缓存模块的对应位置处;排序模块,被配置为接收从模块通过总线反馈的事务响应,并读取该事务响应的第二标识,根据第一缓存模块中记录的映射关系,确认该事务响应的第二标识对应的第一标识和第三标识,包括:排序模块,被配置为接收从模块通过总线反馈的事务响应,并读取该事务响应的第二标识;以该事务响应的第二标识为读指针,从第一缓存模块中读取对应位置处缓存的第一标识、第二标识和第三标识的映射关系,以得到该事务响应的第二标识对应的第一标识和第三标识。
[0012]在一些实施例中,上述重排序缓冲器中,排序模块,被配置为将该事务请求的第一标识、第二标识和第三标识的映射关系记录于第一缓存模块,包括:排序模块,被配置为以该事务请求的第二标识为写指针,将该事务请求的第一标识与第三标识写入第一缓存模块的对应位置处;排序模块,被配置为接收从模块通过总线反馈的事务响应,并读取该事务响应的第二标识,根据第一缓存模块中记录的映射关系,确认该事务响应的第二标识对应的第一标识和第三标识,包括:排序模块,被配置为接收从模块通过总线反馈的事务响应,并读取该事务响应的第二标识;以该事务响应的第二本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种重排序缓冲器,应用于总线系统,包括:排序模块和第一缓存模块;所述排序模块,被配置为接收主模块的事务请求,读取该事务请求的第一标识并将其替换为对应的第二标识;将具有第二标识的事务请求通过总线转发至从模块,并将该事务请求的第一标识与第二标识的映射关系记录于所述第一缓存模块;其中,该事务请求的第二标识不同于所述第一缓存模块中记录的其它映射关系中的第二标识;接收所述从模块通过所述总线反馈的事务响应,并读取该事务响应的第二标识;其中,所述事务响应与其针对的所述事务请求具有相同的第二标识;根据所述第一缓存模块中记录的映射关系,将该事务响应的第二标识替换为对应的第一标识,并将具有第一标识的事务响应返回所述主模块。2.根据权利要求1所述的重排序缓冲器,还包括第二缓存模块;所述排序模块,具体被配置为:将具有第二标识的事务请求通过总线转发至从模块,并确认所述第一缓存模块中当前记录的映射关系中与该事务请求对应同一第一标识的映射关系的数量,将该数量加上一预设阈值,作为该事务请求的第三标识;将该事务请求的第一标识、第二标识和第三标识的映射关系记录于所述第一缓存模块;接收所述从模块通过所述总线反馈的事务响应,并读取该事务响应的第二标识,根据所述第一缓存模块中记录的映射关系,确认该事务响应的第二标识对应的第一标识和第三标识;将该事务响应的第二标识替换为对应的第一标识,并以该事务响应对应的第二标识为写指针,将具有第一标识的该事务响应写入所述第二缓存模块的对应位置处;根据所述第一缓存模块中记录的对应相同第一标识的各个映射关系中的第三标识和第二标识,从值为所述预设阈值的第三标识开始按照第三标识从小到大的顺序,依次以对应的第二标识为读指针,从所述第二缓存模块中读出对应位置处缓存的事务响应返回所述主模块。3.根据权利要求2所述的重排序缓冲器,所述排序模块,还被配置为:每当将一事务响应返回所述主模块后,将所述第一缓存模块中记录的与该事务响应对应同一第二标识的映射关系清除。4.根据权利要求2所述的重排序缓冲器,所述排序模块,被配置为根据所述第一缓存模块中记录的对应相同第一标识的各个映射关系中的第三标识和第二标识,从值为所述预设阈值的第三标识开始按照第三标识从小到大的顺序,依次以对应的第二标识为读指针,从所述第二缓存模块中读出对应位置处缓存的事务响应返回所述主模块,包括:所述排序模块,被配置为每当将一事务响应返回所述主模块后,将所述第一缓存模块中记录的与该事务响应对应同一第一标识的映射关系中的第三标识的值减1;监测所述第一缓存模块中记录的各个映射关系中的第三标识的值,在所述第一缓存模块中记录的一映射关系中的第三标识的值为所述预设阈值时,以该映射关系中的第二标识为读指针,从所述第二缓存模块中读出对应位置处缓存的事务响应返回所述主模块。5.根据权利要求4所述的重排序缓冲器,所述排序模块,还被配置为:
每当将一事务响应返回所述主模块后,在将所述第一缓存模块中记录的与该事务响应对应同一第一标识的映射关系中的第三标识的值减1之前,将所述第一缓存模块中记录的与该事务响应对应同一第一标识且第三标识的值为所述预设阈值的映射关系清除;或,每当将一事务响应返回所述主模块后,在将所述第一缓存模块中记录的与该事务响应对应同一第一标识的映射关系中的第三标识的值减1之后,将所述第一缓存模块中记录的与该事务响应对应同一第一标识且第三标识的值小于所述预设阈值的映射关系清除。6.根据权利要求2所述的重排序缓冲器,所述排序模块,被配置为将该事务响应的第二标识替换为对应的第一标识,并以该事务响应对应的第二标识为写指针,将具有第一标识的该事务响应写入所述第二缓存模块的对应位置处,包括:所述排序模块,被配置为判断该事务响应的第二标识对应的第三标识的值是否大于所述预设阈值,若是,则将该事务响应的第二标识替换为对应的第一标识,并以该事务响应对应的第二标识为写指针,将具有第一标识的该事务响应写入所述第二缓存模块的对应位置处,否则,将该事务响应的第二标识替换为对应的第一标识,并将具有第一标识的该事务响应直接返回所述主模块。7.根据权利要求6所述的重排序缓冲器,还包括:多路选择模块,被配置为接收所述排序模块输出的事务响应和所述第二缓存模块输出的事务响应,并从中选择其一返回所述主模块。8.根据权利要求2所述的重排序缓冲器,所述排序模块,被配置为将该事务请求的第一标识、第二标识和第三标识的映射关系记录于所述第一缓存模块,包括:所述排序模块,被配置为以该事务请求的第二标识为写指针,将该事务请求的第一标识、第二标识和第三标识的映射关系写入所述第一缓存模块的对应位置处;所述排序模块,被配置为接收所述从模块通过所述总线反馈的事务响应,并读取该事务响应的第二标识,根据所述第一缓存模块中记录的映射关系,确认该事务响应的第二标识对应的第一标识和第三标识,包括:所述排序模块,被配置为接收所述从模块通过所述总线反馈的事务响应,并读取该事务响应的第二标识;以该事务响应的第二标识为读指针,从所述第一缓存模块中读取对应位置处缓存的第一标识、第二标识和第三标识的映射关系,以得到该事务响应的第二标识对应的第一标识和第三标识。9.根据权利要求2所述的重排序缓冲器,所述排序模块,被配置为将该事务请求的第一标识、第二标识和第三标识的映射关系记录于所述第一缓存模块,包括:所述排序模块,被配置为以该事务请求的第二标识为写指针,将该事务请求的第一标识与第三标识写入所述第一缓存模块的对应位置处;所述排序模块,被配置为接收所述从模块通过所述总线反馈的事务响应,并读取该事务响应的第二标识,根据所述第一缓存模块中记录的映射关系,确认该事务响应的第二标识对应的第一标识和第三标识,包括:所述排序模块,被配置为接收所述从模块通过所述总线反馈的事务响应,并读取该事务响应的第二标识;以该事...

【专利技术属性】
技术研发人员:冯小成刘义
申请(专利权)人:北京象帝先计算技术有限公司
类型:发明
国别省市:

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

1