System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种申威SIMD指令对I/O空间的访问方法、装置、设备及介质制造方法及图纸_技高网

一种申威SIMD指令对I/O空间的访问方法、装置、设备及介质制造方法及图纸

技术编号:40220653 阅读:7 留言:0更新日期:2024-02-02 22:26
本发明专利技术公开了一种申威SIMD指令对I/O空间的访问方法、装置、设备及介质,方法包括:将SIMD指令的关键状态寄存器数据保存至暂存区中;若所述SIMD指令为读指令,则将SIMD指令相应的源I/O空间数据转移到中转内存空间;主动触发读指令TLB脱靶后从暂存区中找回关键状态寄存器数据;使用SIMD读指令将转移到中转内存空间的源I/O空间数据读入至目标向量寄存器中;若所述SIMD指令为写指令,则主动触发写指令TLB脱靶后从暂存区中找回关键状态寄存器数据;使用SIMD写指令将其对应的源向量寄存器数据转移到中转内存空间中;将转移到中转内存空间的源向量寄存器数据写入至目标I/O空间中。本发明专利技术能够实现将SIMD指令成功部署于申威系列处理器,以提升SIMD指令对内存空间的访存效率。

【技术实现步骤摘要】

本专利技术涉及计算机,具体涉及一种申威simd指令对i/o空间的访问方法、装置、设备及介质。


技术介绍

1、随着时代的进步,高性能处理器已广泛并深入部署于军事、企业、民用等众多领域,已成为工业信息化时代下的技术焦点。申威系列处理器基于自主研发的sw64架构设计,拥有完全自主的知识产权,推进其处理器、操作系统及软件生态的开发对我国芯片自主进程具有重大意义。

2、simd(single instruction multiple data,单指令多数据流)指令是现代计算机指令集的重要组成部分。相比于单指令单数据流,simd指令支持数据级并行操作,实现单条指令操作多组数据,大幅提升如c语言、java语言等程序的执行速度,在数据密集型应用场景下可大幅减少指令数的同时提升程序运行效率。simd指令最初被应用于超级计算机中,后在服务器、个人计算机中也得到广泛应用,例如x86架构中mmx(multi media extension,多媒体扩展指令集)、sse(streaming simd extension,数据流单指令序列扩展指令集)、avx(advanced vector extensions,高级向量扩展指令集)等指令集均基于simd设计,大幅提高了多媒体应用的执行速度;arm架构的neon基于cortex-a系列处理器的simd设计,广泛应用于移动计算设备的多媒体场景。

3、申威架构中,将物理存储空间划分为内存空间和i/o(input/ouput,输入/输出)空间并独立编址。其中,内存空间用于保存运行中的程序指令和数据;i/o空间用于控制外设寄存器和读写外设数据。在数据密集的应用场景下,一条simd指令可实现多条普通指令的功能,从而获得运行效率的提升;但是,由于目前申威系列处理器中的simd指令仅支持对内存空间的读写,不支持对i/o空间的读写;而为了避免使用simd指令对i/o空间读写导致系统运行出错,申威系列处理器当前无法将simd指令实际部署并向用户开放,进而无法获得simd指令对内存空间读写带来的性能提升,限制了申威系列处理器的运算速率。


技术实现思路

1、本专利技术的目的在于克服现有技术中的不足,提供一种申威simd指令对i/o空间的访问方法、装置、设备及介质,解决现有技术中申威系列处理器的simd指令仅支持对内存空间的访问但不支持对i/o空间的访问,导致simd指令无法实际部署的技术问题。

2、为达到上述目的,本专利技术是采用下述技术方案实现的:

3、第一方面,本专利技术提供了一种申威simd指令对i/o空间的访问方法,所述方法包括:

4、响应于访问i/o空间异常的simd指令被触发,将其所属的关键状态寄存器数据保存至暂存区中;

5、若所述simd指令为读指令,则将simd指令相应的源i/o空间数据转移到中转内存空间;

6、主动触发读指令tlb脱靶后从暂存区中找回关键状态寄存器数据;

7、使用simd读指令将转移到中转内存空间的源i/o空间数据读入至目标向量寄存器中;

8、若所述simd指令为写指令,则主动触发写指令tlb脱靶后从暂存区中找回关键状态寄存器数据;

9、使用simd写指令将其对应的源向量寄存器数据转移到中转内存空间中;

10、将转移到中转内存空间的源向量寄存器数据写入至目标i/o空间中。

11、结合第一方面,可选的,所述将simd指令相应的源i/o空间数据转移到中转内存空间的步骤包括:

12、通过读指令将所述simd指令相应的源i/o空间数据读入影子寄存器中;

13、通过特权写指令将所述影子寄存器中的数据写入中转内存空间对应的物理地址中;

14、其中,所述中转内存空间为从内存中划分的一片固定空间。

15、结合第一方面,可选的,所述主动触发读指令tlb脱靶,包括以下步骤:

16、主动对中转内存空间对应的虚拟地址进行一次读指令访问;

17、若所述中转内存空间的虚拟地址所在页不存在于tlb中,则触发一次tlb脱靶异常,将中转内存空间的虚拟地址所在页与物理页的映射关系保存至tlb中,使得后续对该虚拟地址进行访问时能够直接在tlb中找到其映射关系。

18、结合第一方面,可选的,所述主动触发写指令tlb脱靶,包括以下步骤:

19、主动对中转内存空间对应的虚拟地址进行一次写指令访问;

20、若所述中转内存空间的虚拟地址所在页不存在于tlb中,则触发一次tlb脱靶异常,将中转内存空间的虚拟地址所在页与物理页的映射关系保存至tlb中,使得后续对该虚拟地址进行访问时能够直接在tlb中找到其映射关系。

21、结合第一方面,可选的,所述将转移到中转内存空间的源向量寄存器数据写入至目标i/o空间中,包括以下步骤:

22、通过特权读指令将中转内存空间的源向量寄存器数据读入影子寄存器中;

23、通过写指令将所述影子寄存器中的数据写入目标i/o空间对应的虚拟地址中。

24、结合第一方面,可选的,所述关键状态寄存器数据包括pc寄存器和异常数据地址寄存器的数据。

25、结合第一方面,可选的,将关键状态寄存器数据保存至暂存区中的步骤包括:

26、从内存中划分一片固定的空间作为暂存区;

27、使用特权写指令将关键状态寄存器数据保存至所述暂存区中,以防止触发tlb脱靶。

28、第二方面,本专利技术提供了一种申威simd指令对i/o空间的访问装置,所述装置包括:

29、关键状态寄存器数据暂存模块,用于响应于访问i/o空间异常的simd指令被触发,将其所属的关键状态寄存器数据保存至暂存区中;

30、源i/o空间数据转移模块,用于若所述simd指令为读指令,则将simd指令相应的源i/o空间数据转移到中转内存空间;

31、触发读指令tlb脱靶模块,用于主动触发读指令tlb脱靶后从暂存区中找回关键状态寄存器数据;

32、i/o空间数据读入模块,用于simd读指令执行模块,用于使用simd读指令将转移到中转内存空间的源i/o空间数据读入至目标向量寄存器中;

33、触发写指令tlb脱靶模块,用于若所述simd指令为写指令,则主动触发写指令tlb脱靶后从暂存区中找回关键状态寄存器数据;

34、源向量寄存器数据转移模块,用于使用simd写指令将其对应的源向量寄存器数据转移到中转内存空间中;

35、源向量寄存器数据写入模块,用于将转移到中转内存空间的源向量寄存器数据写入至目标i/o空间中。

36、第三方面,本专利技术提供了一种电子设备,包括处理器及存储介质;

37、所述存储介质用于存储指令;

38、所述处理器用于根据所述指令进行操作以执行如第一方面任一所述的申威simd指令对i/o空间的访问方法的步骤。

本文档来自技高网...

【技术保护点】

1.一种申威SIMD指令对I/O空间的访问方法,其特征在于,包括:

2.根据权利要求1所述的申威SIMD指令对I/O空间的访问方法,其特征在于,所述将SIMD指令相应的源I/O空间数据转移到中转内存空间的步骤包括:

3.根据权利要求1或2所述的申威SIMD指令对I/O空间的访问方法,其特征在于,所述主动触发读指令TLB脱靶,包括以下步骤:

4.根据权利要求1所述的申威SIMD指令对I/O空间的访问方法,其特征在于,所述主动触发写指令TLB脱靶,包括以下步骤:

5.根据权利要求1或4所述的申威SIMD指令对I/O空间的访问方法,其特征在于,所述将转移到中转内存空间的源向量寄存器数据写入至目标I/O空间中,包括以下步骤:

6.根据权利要求1所述的申威SIMD指令对I/O空间的访问方法,其特征在于,所述关键状态寄存器数据包括PC寄存器和异常数据地址寄存器的数据。

7.根据权利要求1所述的申威SIMD指令对I/O空间的访问方法,其特征在于,将关键状态寄存器数据保存至暂存区中的步骤包括:

8.一种申威SIMD指令对I/O空间的访问装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括处理器及存储介质;

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至7任一项所述的申威SIMD指令对I/O空间的访问方法的步骤。

...

【技术特征摘要】

1.一种申威simd指令对i/o空间的访问方法,其特征在于,包括:

2.根据权利要求1所述的申威simd指令对i/o空间的访问方法,其特征在于,所述将simd指令相应的源i/o空间数据转移到中转内存空间的步骤包括:

3.根据权利要求1或2所述的申威simd指令对i/o空间的访问方法,其特征在于,所述主动触发读指令tlb脱靶,包括以下步骤:

4.根据权利要求1所述的申威simd指令对i/o空间的访问方法,其特征在于,所述主动触发写指令tlb脱靶,包括以下步骤:

5.根据权利要求1或4所述的申威simd指令对i/o空间的访问方法,其特征在于,所述将转移到中转内存空间的源向量寄存器数据写入至目标i/o...

【专利技术属性】
技术研发人员:郜晨许国春何升杭骁骞
申请(专利权)人:无锡先进技术研究院
类型:发明
国别省市:

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

1