地址空间的动态解压缩方法、地址解压器、设备及介质与流程

文档序号:36709295发布日期:2024-01-16 11:45阅读:23来源:国知局
地址空间的动态解压缩方法、地址解压器、设备及介质与流程

本发明涉及计算机,尤其涉及一种地址空间的动态解压缩方法、地址解压器、设备及介质。


背景技术:

1、针对现有的基于32位处理器的gpu设计方案,由于其寻址范围受限,只能访问4g以内的地址空间,整个4g空间中只有一小部分空间作为整个系统的配置空间,如256mb大小的配置空间,这使得很多外设配置受限,如gpu内部的pcie controller、ddr controller、ddrphy等,这些模块中的配置空间基本都是按地址分区访问内部寄存器,用到的地址范围基本都很大,但是实际的寄存器占用的空间很小,如4kb。

2、另一方面,gpu的核心为32位risc处理器,地址位宽为32位,对应访问空间为0到4gb,在这部分空间中分配一部分空间作为配置空间使用,在理想的情况下,所有外设的配置空间应该是紧密排列的,如pcie占用了1mb配置空间,那就分配地址0~0xfffff,ddr占用1mb配置空间,接着分配地址0x100000~0x1fffff,这样的地址利用率是最高的,可实际的情况并不是这样,目前功能相对复杂一点的外设,其配置空间都会分成好几块,不同的配置空间控制不同的功能,一般通过不同的基址去访问不同的配置空间,通过地址区分外设内部配置空间的方式一般都会存在地址空洞,造成空间浪费。

3、为了解决32位gpu地址空间不足的问题,通常的做法是修改处理器里面总线的宽度,但这种方法还需要扩展或者改造处理器汇编指令,设计能够访问大于32位地址空间的指令,改动范围从核内访存到总线部分,涉及修改的地方非常多,并且修改完成后,不仅要验证修改后的功能是否正常,还得验证其他功能是否受影响,一整套测试流程下来,花费周期较长,并不能满足用户的预期。


技术实现思路

1、基于此,有必要针对上述问题,提出了一种地址空间的动态解压缩方法、地址解压器、设备及介质。

2、为实现上述目的,本技术第一方面提供一种地址空间的动态解压缩方法,所述方法包括:

3、预先设置若干组地址区间、以及每组地址区间对应的地址掩码、地址模板;

4、获取对外围设备访问的压缩地址;

5、根据所述对外围设备访问的压缩地址在地址区间中查找,确定所述对外围设备访问的压缩地址匹配的地址区间;

6、根据所述地址区间确定该对外围设备访问的压缩地址对应的地址掩码、地址模板;

7、根据所述地址掩码、地址模板对外围设备访问的压缩地址进行解压缩,获得实际地址。

8、在一些实施方式中,所述方法还包括:预先设置外围设备的地址空间分布;所述地址空间分布包括若干个配置空间、以及每个配置空间中功能区域对应的地址位;

9、获得实际地址之后,确定所述实际地址匹配的地址位;

10、根据所述实际地址匹配的地址位访问该配置空间中的功能区域。

11、在一些实施方式中,所述预先设置若干组地址区间、以及每组地址区间对应的地址掩码、地址模板,具体包括:预先设置每组地址区间的起始地址addr_start和终止地址addr_end、以及每组地址区间对应的地址掩码addr_mask、地址模板template。

12、在一些实施方式中,所述根据所述地址区间确定该对外围设备访问的压缩地址对应的地址掩码、地址模板中,之后,所述方法还包括:根据所述对应的地址掩码、地址模板的取值确定是否对外围设备访问的压缩地址进行解压缩。

13、在一些实施方式中,所述根据所述对应的地址掩码、地址模板的取值确定是否对外围设备访问的压缩地址进行解压缩,具体包括:如果所述对应的地址掩码、地址模板的取值为0,确定不对外围设备访问的压缩地址进行解压缩;如果所述对应的地址掩码、地址模板的取值为非0,确定对外围设备访问的压缩地址进行解压缩。

14、在一些实施方式中,所述根据所述地址掩码、地址模板对外围设备访问的压缩地址进行解压缩,获得实际地址,具体包括:根据地址掩码addr_mask规定的格式,将所述对外围设备访问的压缩地址分解后填到地址模板template中,获得实际地址。

15、在一些实施方式中,所述根据地址掩码addr_mask规定的格式,将所述对外围设备访问的压缩地址分解后填到地址模板template中,获得实际地址,具体包括:按位从低到高遍历地址掩码addr_mask的取值,遇到取值为1的位时,将所述对外围设备访问的压缩地址中的位按顺序放到地址模板template中,并且与地址掩码addr_mask为1的位相对应的位置,跳过地址掩码addr_mask中为0的位,生成最终的实际地址result。

16、为实现上述目的,本技术第二方面提供一种地址解压器,所述地址解压器包括:

17、寄存器,用于预先设置若干组地址区间、以及每组地址区间对应的地址掩码、地址模板;

18、地址比较器,用于根据所述对外围设备访问的压缩地址在地址区间中查找,确定所述对外围设备访问的压缩地址匹配的地址区间;

19、多路选择器,用于根据所述地址区间确定该对外围设备访问的压缩地址对应的地址掩码、地址模板;

20、地址解压模块,用于根据所述地址掩码、地址模板对外围设备访问的压缩地址进行解压缩,获得实际地址。

21、为实现上述目的,本技术第三方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

22、预先设置若干组地址区间、以及每组地址区间对应的地址掩码、地址模板;

23、获取对外围设备访问的压缩地址;

24、根据所述对外围设备访问的压缩地址在地址区间中查找,确定所述对外围设备访问的压缩地址匹配的地址区间;

25、根据所述地址区间确定该对外围设备访问的压缩地址对应的地址掩码、地址模板;

26、根据所述地址掩码、地址模板对外围设备访问的压缩地址进行解压缩,获得实际地址。

27、为实现上述目的,本技术第四方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

28、预先设置若干组地址区间、以及每组地址区间对应的地址掩码、地址模板;

29、获取对外围设备访问的压缩地址;

30、根据所述对外围设备访问的压缩地址在地址区间中查找,确定所述对外围设备访问的压缩地址匹配的地址区间;

31、根据所述地址区间确定该对外围设备访问的压缩地址对应的地址掩码、地址模板;

32、根据所述地址掩码、地址模板对外围设备访问的压缩地址进行解压缩,获得实际地址。

33、采用本发明实施例,具有如下有益效果:

34、本发明根据所述对外围设备访问的压缩地址在地址区间中查找,确定所述对外围设备访问的压缩地址匹配的地址区间;根据所述地址区间确定该对外围设备访问的压缩地址对应的地址掩码、地址模板,也就是确定了解压缩对应的算法,提高了灵活性,之后,再根据所述地址掩码、地址模板对外围设备访问的压缩地址进行解压缩,从而解决32位gpu空间紧缺的问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1