一种重传方法、内存控制器、处理器系统及电子设备技术方案

技术编号:31484471 阅读:13 留言:0更新日期:2021-12-18 12:19
本申请实施例提供一种重传方法、内存控制器、处理器系统及电子设备,其中方法包括:获取目标读命令;将所述目标读命令发送给内存,并且将所述目标读命令存放在重传队列中,所述重传队列存放有已发送给内存的读命令;从内存获取所述目标读命令相应的目标读数据;校验所述目标读数据;若基于校验结果确定目标读数据校验失败,从所述重传队列中确定包含目标读命令的至少一个读命令;将所述至少一个读命令重新传输给内存。本申请实施例能够在读数据传输出错时,通过重传机制进行修复,增强了处理器系统对于读数据传输出错的容错能力,提高了处理器系统的可靠性,保障了处理器系统的稳定运行。行。行。

【技术实现步骤摘要】
一种重传方法、内存控制器、处理器系统及电子设备


[0001]本申请实施例涉及处理器
,具体涉及一种重传方法、内存控制器、处理器系统及电子设备。

技术介绍

[0002]内存作为处理器系统中重要的存储器件,CPU(Central Processing Unit,中央处理器)会与内存之间进行大量的命令和数据传输。然而,CPU与内存之间的命令和数据传输可能存在传输出错的情况,为确保处理器系统的可靠性,处理器系统对此需要具备足够强大的容错机制。
[0003]CPU从内存读数据是CPU与内存之间常见的数据传输场景,针对读数据传输出错的情况,如何提供容错机制,成为了本领域技术人员需要解决的技术问题。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种重传方法、内存控制器、处理器系统及电子设备,以通过本申请实施例提供的重传方案,在读数据传输出错的情况下提供容错机制。
[0005]为实现上述目的,本申请实施例提供如下技术方案。
[0006]第一方面,本申请实施例提供一种重传方法,包括:
[0007]获取目标读命令;
[0008]将所述目标读命令发送给内存,并且将所述目标读命令存放在重传队列中,所述重传队列存放有已发送给内存的读命令;
[0009]从内存获取所述目标读命令相应的目标读数据;
[0010]校验所述目标读数据;
[0011]若基于校验结果确定目标读数据校验失败,从所述重传队列中确定包含目标读命令的至少一个读命令;
[0012]将所述至少一个读命令重新传输给内存。
[0013]第二方面,本申请实施例提供一种内存控制器,包括:
[0014]目标读命令获取模块,用于获取目标读命令;
[0015]重传队列,用于存放已发送给内存的读命令;其中,所述目标读命令在发送给内存的同时,存放在所述重传队列中;
[0016]校验模块,用于校验从内存获取的所述目标读命令相应的目标读数据;
[0017]重传决定模块,用于若基于校验结果确定目标读数据校验失败,从所述重传队列中确定包含目标读命令的至少一个读命令;
[0018]其中,所述重传队列中存放的所述至少一个读命令重新传输给内存。
[0019]第三方面,本申请实施例提供一种处理器系统,包括内存控制器,所述内存控制器被配置为执行如上述第一方面所述的重传方法。
[0020]第四方面,本申请实施例提供一种电子设备,包括如上述第三方面所述的处理器
系统。
[0021]本申请实施例提供的重传方法可设置重传队列来存放已发送给内存的读命令,当目标读命令发送给内存时,本申请实施例可将目标读命令存放在重传队列中。进而在从内存获取到目标读命令相应的目标读数据之后,本申请实施例可对目标读数据进行校验。在基于校验结果确定目标读数据校验失败时,本申请实施例可从重传队列中确定包含目标读命令的至少一个读命令,并将所述至少一个读命令重新传输给内存,以使得内存能够至少重新传输目标读命令对应的目标读数据。可见,本申请实施例提供的重传方法能够在读数据传输出错的情况下,至少将读数据相应的读命令重新传输给内存,以使得内存能够至少对传输出错的读数据进行重新传输,从而使得处理器系统在读数据传输出错时,能够通过重传机制进行修复,增强了处理器系统对于读数据传输出错的容错能力,提高了处理器系统的可靠性,保障了处理器系统的稳定运行。
附图说明
[0022]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0023]图1A为处理器系统的结构示意图。
[0024]图1B为CPU向内存写数据的示意图。
[0025]图1C为CPU从内存读数据的示意图。
[0026]图2A为本申请实施例提供的重传方法的流程图。
[0027]图2B为本申请实施例提供的处理器系统的结构示意图。
[0028]图3为本申请实施例提供的基于校验结果确定目标读数据是否校验失败的方法流程图。
[0029]图4为本申请实施例提供的重传队列乱序存放读命令的示意图。
[0030]图5为本申请实施例提供的处理器系统的再一结构示意图。
具体实施方式
[0031]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0032]图1A示例性的示出了处理器系统100的结构示意图。如图1A所示,该处理器系统100可以包括:CPU 110、内存控制器120和内存130。其中,CPU 110是处理器系统100的运算和控制核心,作为信息处理、程序运行的最终执行单元。内存控制器120是控制内存130,并且使CPU 110与内存130进行数据传输的硬件。内存130为处理器系统100中的存储器件,用于暂时存放CPU 110中的运算数据,并与硬盘等外部存储器交换数据。在一个示例中,内存130例如DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
[0033]需要说明的是,尽管上述处理器系统100的结构仅示出了CPU 110、内存控制器120
和内存130,但是在具体实施过程中,处理器系统100还可以包括实现正常运行所必需的其他组件。例如,CPU 110与内存控制器120之间还可布置多级缓存(cache)等。本申请实施例所指的处理器系统可以是芯片系统,例如SOC(System on Chip,系统级芯片)等集成电路芯片系统。
[0034]在处理器系统100中,CPU 110会通过内存控制器120与内存130进行大量的命令和数据传输,具体包括:CPU 110通过内存控制器120向内存130写数据时的写命令和写数据发送,以及CPU 110通过内存控制器120从内存130读数据时的读命令发送和读数据接收。
[0035]随着处理器系统100的设计越来越复杂、命令和数据的传输速度越来越快、传输数据的吞吐量越来越大,CPU 110与内存130之间传输命令和数据的出错概率也随之增加。另外,处理器系统100的印刷电路板的开路和短路问题、命令和数据高速并行传输中的信号干扰问题也会增加命令和数据传输的出错概率。为应对命令和数据传输出错的情况,处理器系统100需要提供重传机制,以在命令和数据传输出错时,保障命令和数据能够重新传输,从而提高处理器系统100的可靠性。
[0036]处理器系统100的重传机制需要覆盖写命令和写数据的传输,以及读命令和读数据的传输。
[0037]图1B示例性的示出了CPU 11本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种重传方法,其特征在于,包括:获取目标读命令;将所述目标读命令发送给内存,并且将所述目标读命令存放在重传队列中,所述重传队列存放有已发送给内存的读命令;从内存获取所述目标读命令相应的目标读数据;校验所述目标读数据;若基于校验结果确定目标读数据校验失败,从所述重传队列中确定包含目标读命令的至少一个读命令;将所述至少一个读命令重新传输给内存。2.根据权利要求1所述的重传方法,其特征在于,所述重传队列表达有读命令发送给内存的发送顺序;所述从重传队列中确定包含目标读命令的至少一个读命令包括:从重传队列中确定目标读命令,以及发送顺序在目标读命令之后的读命令,以形成所述至少一个读命令。3.根据权利要求2所述的重传方法,其特征在于,所述重传队列表达有读命令发送给内存的发送顺序包括:所述重传队列按照读命令的发送顺序,按序存放读命令,其中,读命令在重传队列中的存放位置的顺序,与读命令的发送顺序相一致;所述将所述目标读命令存放在重传队列中包括:根据所述目标读命令的发送顺序,在所述重传队列中按序存放所述目标读命令;所述从重传队列中确定发送顺序在目标读命令之后的读命令包括:从所述重传队列中确定在目标读命令的存放位置之后存放的读命令。4.根据权利要求1所述的重传方法,其特征在于,在校验所述目标读数据失败时,生成校验失败结果;所述基于校验结果确定目标读数据校验失败包括:在所述目标读命令发送给内存之后,判断在预设的等待时间内是否检测到校验失败结果;若在所述等待时间内检测到校验失败结果,则确定目标读数据校验失败;其中,所述等待时间与向内存发送读命令至得到相应读数据的校验结果的用时时间相一致。5.根据权利要求1所述的重传方法,其特征在于,所述重传队列存放的读命令存在数量限值;在执行所述将所述目标读命令发送给内存,并且将所述目标读命令存放在重传队列中的步骤之前,所述方法还包括:检测重传队列存放的读命令的数量是否达到所述数量限值;若否,则进入执行所述将所述目标读命令发送给内存,并且将所述目标读命令存放在重传队列中的步骤;若是,则取消执行所述将所述目标读命令发送给内存,并且将所述目标读命令存放在重传队列中的步骤,直至所述重传队列存放的读命令的数量低于所述数量限值。6.根据权利要求1所述的重传方法,其特征在于,还包括:若基于校验结果确定目标读数据校验成功,将所述目标读数据发送给CPU,并删除重传队列中存放的目标读命令。7.根据权利要求6所述的重传方法,其特征在于,所述删除重传队列中存放的目标读命令包括:按照所述目标读命令发送给内存的发送顺序,在所述重传队列中按序删除目标读命
令;其中,若所述重传队列中存在发送顺序在所述目标读命令之前的读命令,则按照所述目标读命令的发送顺序,所述目标读命令在该读命令删除之后进行删除。8.根据权利要求1

7任一项所述的重传方法,其特征在于,在从内存获取所述目标读命令相应的目标读数据时,所述方法还包括:从内存获取所述目标读数据对应的目标校验码;所述校验所述目标读数据包括:重新计算所述目标读数据的校验码;将重新计算的校验码与所述目标校验码进行比对;若比对结果一致,则校验所述目标读数据成功;若比对结果不一致,则校验所述目标读数据失败。9.根据权利要求1所述的重传方法,其特征在于,所述获取目标读命令包括:获取CPU发送的读命令并保存;在保存的读命令的数量达到预设数量时,根据读命令的访问优先级和/或地址访问效率,从保存的预设数量的读命令中获取一个目标读命令。10.根据权利要求1所述的重传方法,其特征在于,还包括:记录所述重传队列中的读命令整体的重传次数;若所...

【专利技术属性】
技术研发人员:洪佳华
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1