System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及处理器的,尤其涉及一种risc-v上下文切换优化方法、设备及介质。
技术介绍
1、risc-v指令集架构因其模块化、可扩展性和开源特性,能够通过灵活地添加不同的扩展指令集来实现cpu或者gpu的计算核心,在嵌入式risc-v上下文切换优化系统、个人电脑、服务器和gpu加速设备等许多计算领域展现出很大的应用潜力。cpu架构中,在软件中断、硬件中断、硬件故障或者任务调度等情景中,都会发生上下文切换,保存当前进程的状态,然后加载另一个进程的状态以继续执行。gpu架构中,在中断处理、任务调度、线程调度或者线程同步等情景中,也会发生上下文切换。无论是cpu还是gpu,在程序执行过程中上下文切换频繁发生。
2、现有技术的堆栈都是定义在内存当中,数据压栈操作是将通用寄存器中的数据保存到内存堆栈中去,数据出栈操作是将数据从内存堆栈加载到通用寄存器中。通用寄存器的读写速度基本接近计算核心的频率,然而内存的读写速度远低于计算核心的频率,受限于电信号在半导体材料中的传播速度,计算核心的频率越高,这种速度差距会越大。如果上下文切换的速度不够快,会对程序的响应速度、整体性能、整体能耗和用户体验产生很大影响。
3、因此,如何提高risc-v中上下文的切换速度成为一个亟待解决的技术问题。
技术实现思路
1、本申请实施例提供了一种risc-v上下文切换优化方法、设备及介质,用以解决如下技术问题:如何提高risc-v中上下文的切换速度。
2、第一方面,本申请实施例提供了
3、在本申请的一种实现方式中,在当触发上下文切换操作时,基于栈顶寄存器的数值确定寄存器堆栈的剩余空间前,方法还包括:基于控制单元监测中断信号、异常信号或任务调度指令,以确定是否触发执行上下文切换;基于预设的行为预测模块监测当前任务,以确定未来行为特征;基于预测结果和当前任务调整寄存器堆栈的剩余空间。
4、在本申请的一种实现方式中,基于预设的行为预测模块监测当前任务,以确定未来行为特征,具体包括:收集当前任务的执行数据;其中,执行数据包括指令执行频率、内存访问模式和i/o操作;基于行为预测模块处理执行数据,以识别当前任务的行为模式;基于行为模式确定当前任务的未来行为特征;其中,未来行为特征包括执行时长、替换任务和占用堆栈大小。
5、在本申请的一种实现方式中,基于未来行为特征和当前任务调整寄存器堆栈的剩余空间,具体包括:基于未来行为特征和当前任务,评估当前任务在后续执行过程中对寄存器堆栈的需求;对比需求与寄存器堆栈的剩余空间,以确定寄存差值,并基于寄存差值确定调整方式;其中,调整方式包括拓展调整和压缩调整;当调整方式为拓展调整时,基于寄存差值拓展寄存器堆栈的剩余空间;当调整方式为压缩调整时,基于寄存差值压缩寄存器堆栈的剩余空间。
6、在本申请的一种实现方式中,方法还包括:在调整方式执行完成后,更新栈顶寄存器的数值。
7、在本申请的一种实现方式中,在基于行为预测模块处理执行数据,以识别当前任务的行为模式前,方法还包括:获取上下文切换数据,并预处理上下文切换数据,以构建训练集、测试集和验证集;其中,预处理包括:数据清洗、特征提取和标准化处理;基于训练集训练预设的深度神经网络;基于验证集和测试集验证训练过的深度神经网络,并在准确率大于预设的行为阈值时输出为行为预测模块。
8、在本申请的一种实现方式中,当触发上下文切换操作时,基于栈顶寄存器的数值确定寄存器堆栈的剩余空间,具体包括:读取栈顶寄存器的当前数值,以确定寄存器堆栈的栈顶地址;获取寄存器堆栈的基地址;计算栈顶地址与基地址之间的差值,以确定寄存器堆栈的使用量;根据寄存器堆栈的总容量和使用量,计算寄存器堆栈的剩余空间。
9、在本申请的一种实现方式中,基于计算核心执行替换任务,并在替换任务完成时通过栈顶寄存器切回当前任务,具体包括:基于计算核心执行替换任务,并监测是否触发上下文操作;当替换任务完成且需要切换回当前任务时,保存替换任务的上下文信息;基于栈顶寄存器的数值定位当前任务的上下文信息存储位置,以将当前任务的上下文信息恢复至技术核心;基于技术核心执行当前任务,直到当前任务完成或触发上下文切换操作。
10、第二方面,本申请实施例还提供了一种risc-v上下文切换优化设备,其特征在于,设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:基于计算核心执行当前任务;当触发上下文切换操作时,基于栈顶寄存器的数值确定寄存器堆栈的剩余空间;基于剩余空间和当前任务判断寄存器堆栈是否能够保存当前任务;若否,基于内存存储当前任务;若是,基于寄存器堆栈存储当前任务;基于计算核心执行替换任务,并在替换任务完成时通过栈顶寄存器切回当前任务。
11、第三方面,本申请实施例还提供了一种risc-v上下文切换优化的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,计算机可执行指令设置为:基于计算核心执行当前任务;当触发上下文切换操作时,基于栈顶寄存器的数值确定寄存器堆栈的剩余空间;基于剩余空间和当前任务判断寄存器堆栈是否能够保存当前任务;若否,基于内存存储当前任务;若是,基于寄存器堆栈存储当前任务;基于计算核心执行替换任务,并在替换任务完成时通过栈顶寄存器切回当前任务。
12、本申请实施例提供的一种risc-v上下文切换优化方法、设备及介质,至少包括以下技术效果:
13、在触发上下文切换操作时,利用栈顶寄存器的数值来精确确定寄存器堆栈的剩余空间,能够实时掌握堆栈的使用情况,为后续的任务保存和切换提供准确的数据支持。
14、根据剩余空间和当前任务的需求,智能判断寄存器堆栈是否能够保存当前任务,如果空间不足,则转向内存进行存储,从而确保了任务状态的完整保存既充分利用了有限的寄存器堆栈资源,又保证了任务切换的顺利进行。
15、通过将当前任务的状态保存在寄存器堆栈或内存中,risc-v上下文切换优化系统能够迅速切换到替换任务进行执行,同时,在替换任务完成后,通过栈顶寄存器快速恢复当前任务的状态,实现了任务之间的无缝切换和连续执行,能够减少任务切换带来的性能开销,提高了risc-v上下文切换优化系统的整体运行效率。
本文档来自技高网...【技术保护点】
1.一种RISC-V上下文切换优化方法,其特征在于,应用于RISC-V上下文切换优化系统,所述RISC-V上下文切换优化系统包括计算核心和内存,所述计算核心包括控制单元、寄存器堆栈、栈顶寄存器、通用寄存器和算术逻辑单元,所述方法包括:
2.根据权利要求1所述的一种RISC-V上下文切换优化方法,其特征在于,在当触发上下文切换操作时,基于所述栈顶寄存器的数值确定所述寄存器堆栈的剩余空间前,所述方法还包括:
3.根据权利要求2所述的一种RISC-V上下文切换优化方法,其特征在于,基于预设的行为预测模块监测所述当前任务,以确定未来行为特征,具体包括:
4.根据权利要求3所述的一种RISC-V上下文切换优化方法,其特征在于,基于所述未来行为特征和所述当前任务调整所述寄存器堆栈的剩余空间,具体包括:
5.根据权利要求3所述的一种RISC-V上下文切换优化方法,其特征在于,所述方法还包括:
6.根据权利要求3所述的一种RISC-V上下文切换优化方法,其特征在于,在基于所述行为预测模块处理所述执行数据,以识别所述当前任务的行为模式前,
7.根据权利要求1所述的一种RISC-V上下文切换优化方法,其特征在于,当触发上下文切换操作时,基于所述栈顶寄存器的数值确定所述寄存器堆栈的剩余空间,具体包括:
8.根据权利要求1所述的一种RISC-V上下文切换优化方法,其特征在于,基于所述计算核心执行替换任务,并在替换任务完成时通过所述栈顶寄存器切回所述当前任务,具体包括:
9.一种RISC-V上下文切换优化设备,其特征在于,所述设备包括:
10.一种RISC-V上下文切换优化的非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
...【技术特征摘要】
1.一种risc-v上下文切换优化方法,其特征在于,应用于risc-v上下文切换优化系统,所述risc-v上下文切换优化系统包括计算核心和内存,所述计算核心包括控制单元、寄存器堆栈、栈顶寄存器、通用寄存器和算术逻辑单元,所述方法包括:
2.根据权利要求1所述的一种risc-v上下文切换优化方法,其特征在于,在当触发上下文切换操作时,基于所述栈顶寄存器的数值确定所述寄存器堆栈的剩余空间前,所述方法还包括:
3.根据权利要求2所述的一种risc-v上下文切换优化方法,其特征在于,基于预设的行为预测模块监测所述当前任务,以确定未来行为特征,具体包括:
4.根据权利要求3所述的一种risc-v上下文切换优化方法,其特征在于,基于所述未来行为特征和所述当前任务调整所述寄存器堆栈的剩余空间,具体包括:
5.根据权利要求3所述的一种risc-v上下...
【专利技术属性】
技术研发人员:赵国峰,赵鑫鑫,姜凯,薛海军,
申请(专利权)人:山东浪潮科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。