CN117389912B - 地址空间的扩展方法、地址转换器、设备及介质 - Google Patents
地址空间的扩展方法、地址转换器、设备及介质 Download PDFInfo
- Publication number
- CN117389912B CN117389912B CN202311641028.9A CN202311641028A CN117389912B CN 117389912 B CN117389912 B CN 117389912B CN 202311641028 A CN202311641028 A CN 202311641028A CN 117389912 B CN117389912 B CN 117389912B
- Authority
- CN
- China
- Prior art keywords
- address
- virtual
- accessed
- interval
- base
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000002093 peripheral effect Effects 0.000 claims description 22
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种地址空间的扩展方法、地址转换器、设备及介质,该方法包括:预设虚拟地址的范围总区间以及对应的物理地址基址;获取待访问的地址;根据待访问的地址在虚拟地址的范围总区间中查找,确定待访问的地址是否处于虚拟地址的范围总区间内;如果处于虚拟地址的范围总区间内,对待访问的地址进行转换确定最终访问地址;根据对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种地址空间的扩展方法、地址转换器、设备及介质。
背景技术
32位处理器的地址范围为0到4GB,对于一个复杂的***来说,不仅拥有众多的外设,还拥有多条总线,如此一来,4GB的空间就显得不太够用了,而空间不足会导致无法接入更多的外设去完成复杂的***设计,为了解决空间不足这一问题,最简单直接的做法就是直接更换64位处理器,但如果只能使用32位处理器,也可以通过设计自研指令实现大于4GB空间访问,如riscv指令集支持用户自研指令,但这种方法同时还要修改核内相关的总线宽度,使修改难度会大幅度提升,并且与核相关联的模块都可能需要修改,修改完也还需花费大量时间去调测。
在32位处理器的0到4GB地址空间范围内,整个SOC***中还包括了很多外设,这些外设有相应的配置空间,在统一编址的情况下,这部分外设配置空间属于4GB空间的一部分,配置空间的增多就代表着数据空间减少,在外设的配置空间较大以及外设接入数量较多的情况下,***的数据空间就会大大减小,既想要接入更多的外设,也想最大化的保留数据空间,以此来完成复杂的SOC设计,比如在***4G地址空间中,分配128MB作为配置空间使用,但是实际需要用到的配置空间远远比128MB大,那么如何实现在现有128MB配置空间中访问更大的配置空间,如4GB、8GB、16GB等是急需攻克的难题。
发明内容
基于此,有必要针对上述问题,提出了一种地址空间的扩展方法、地址转换器、设备及介质。
为实现上述目的,本申请第一方面提供一种地址空间的扩展方法,所述方法包括:
预设虚拟地址的范围总区间以及对应的物理地址基址;
获取待访问的地址;
根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
在一些实施方式中,所述预设虚拟地址的范围总区间以及对应的物理地址基址,具体包括:确定若干个虚拟地址vAddr,设置每个虚拟地址vAddr的限定转换地址区间size,获得每个虚拟地址的范围区间、以及虚拟地址的范围总区间[vAddr,vAddr+size];还根据所述每个虚拟地址的范围区间设置对应的物理地址基址pAddr_base。
在一些实施方式中,所述根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内,具体包括:如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之中,确定所述待访问的地址处于虚拟地址的范围总区间内;如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之外,确定所述待访问的地址处于虚拟地址的范围总区间外。
在一些实施方式中,所述如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址,具体包括:对所述待访问的地址进行偏移并且结合对应的物理地址基址确定最终访问地址。
在一些实施方式中,所述对所述待访问的地址进行偏移并且结合对应的物理地址基址确定最终访问地址,具体包括:根据所述待访问的地址和匹配的每个虚拟地址确定偏移地址,所述偏移地址和该虚拟地址对应的物理地址基址结合最终访问地址。
在一些实施方式中,所述根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线,具体包括:如果所述对应的物理地址基址的最低位为0,将所述最终访问地址输出到***总线system bus;如果所述对应的物理地址基址的最低位为1,将所述最终访问地址输出到***设备总线peripherals bus。
在一些实施方式中,所述预设虚拟地址的范围总区间以及对应的物理地址基址,具体包括:配置寄存器表,所述寄存器表内包括若干个虚拟地址vAddr、每个虚拟地址vAddr的限定转换地址区间size、以及每个虚拟地址的范围区间对应的物理地址基址pAddr_base。
为实现上述目的,本申请第二方面提供一种地址转换器,所述地址转换器包括:
寄存器,用于预设虚拟地址的范围总区间以及对应的物理地址基址;
地址比较器,用于根据待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
地址转换器,用于如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
地址选择器,用于根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
为实现上述目的,本申请第三方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
预设虚拟地址的范围总区间以及对应的物理地址基址;
获取待访问的地址;
根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
为实现上述目的,本申请第四方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
预设虚拟地址的范围总区间以及对应的物理地址基址;
获取待访问的地址;
根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
采用本发明实施例,具有如下有益效果:
本申请通过预设虚拟地址的范围总区间以及对应的物理地址基址,也就是配置寄存器表,进而根据所述待访问的地址在虚拟地址的范围总区间中查找,确定最终访问地址,完成地址转换,实现只需增加配置地址转换关系,就可以拥有能访问最大64位地址范围以及总线切换访问的能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中地址空间的扩展方法的流程示意图;
图2为一个实施例中地址转换器的结构图;
图3为一个实施例中地址转换器的地址拓展实现框图;
图4为一个实施例中计算机设备的结构示意图;
图5为一个实施例中计算机可读存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请实施例中,提供一种地址空间的扩展方法,请参阅图1,图1为一个实施例中地址空间的扩展方法的流程示意图,地址空间的扩展方法包括步骤S1至步骤S5。
步骤S1:预设虚拟地址的范围总区间以及对应的物理地址基址;
具体地,确定若干个虚拟地址vAddr,设置每个虚拟地址vAddr的限定转换地址区间size,获得每个虚拟地址的范围区间、以及虚拟地址的范围总区间[vAddr,vAddr+size];还根据所述每个虚拟地址的范围区间设置对应的物理地址基址pAddr_base。
所述每个虚拟地址vAddr的限定转换地址区间size的大小可以通过预先设置动态调整,例如,需要访问peripherals bus中的spi外设,该spi外设占用4KB大小,那么所述size可以设置为4KB,实际的设置依据硬件设备的地址分布以及软件需求确定。
在一些实施例中,通过配置寄存器表实现虚拟地址的范围总区间以及对应的物理地址基址的预设,所述寄存器表内包括若干个虚拟地址vAddr、每个虚拟地址vAddr的限定转换地址区间size、以及每个虚拟地址的范围区间对应的物理地址基址pAddr_base。
示例性地,例如设置如表1所示的寄存器表,包括0、1、2、3共4组数据,其中每组数据中的vAddr为虚拟地址,size为该组数据中虚拟地址vAddr的限定转换地址区间,pAddr_base为该组数据中虚拟地址的范围区间对应的物理地址基址pAddr_base,例如,在第0组数据中,0x80000为虚拟地址,0x10000为0x80000的限定转换地址区间,0x1_0000_0000为0x80000的范围区间对应的物理地址基址。
表1
步骤S2,获取待访问的地址;
步骤S3,根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
具体地,如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之中,确定所述待访问的地址处于虚拟地址的范围总区间内;如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之外,确定所述待访问的地址处于虚拟地址的范围总区间外。
如果确定所述待访问的地址处于虚拟地址的范围总区间外,将所述待访问的地址输出到***总线system bus,流程结束。
示例性地,如访问0x80020这个地址,通过配置的寄存器表识别0x80020是否处于虚拟地址的范围总区间内,即查找0x80020是否在表1中,识别出这个地址处于表项0的地址范围内,而访问0x90100这个地址时,识别出这个地址处于表项1的地址范围内。
步骤S4,如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
具体地,对所述待访问的地址进行偏移并且结合对应的物理地址基址确定最终访问地址。
更具体地,根据所述待访问的地址和匹配的每个虚拟地址确定偏移地址,所述偏移地址和该虚拟地址对应的物理地址基址结合最终访问地址。
示例性地,根据地址0x80020-0x80000得到偏移地址0x20,再加上0x1_0000_0000,组成最终访问地址0x1_0000_0020;根据地址0x90100-0x90000得到偏移地址0x100,再加上0x1_8000_0001,组成最终访问地址0x1_8000_0100。
需要说明的是,因为地址按4字节对齐,所以最终生成的地址最低两位为0,并不会把地址0x1_8000_0001最低位的1加到最终地址上。
步骤S5,根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
具体地,如果所述对应的物理地址基址的最低位为0,将所述最终访问地址输出到***总线system bus;如果所述对应的物理地址基址的最低位为1,将所述最终访问地址输出到***设备总线peripherals bus。
示例性地,在前文中访问0x80020过程中,由于处于表项0的地址范围内,表项0中的pAddr_base即0x1_0000_0000的第0位为0,也就是最低位为0,代表将组成最终访问地址0x1_0000_00200x1_0000_0020路由到system bus。
而在访问0x90100过程中,由于处于表项1的地址范围内,表项1中的pAddr_base即0x1_8000_0001的最低位为1,则将地址0x1_8000_0100路由到peripherals bus。
采用本实施例的技术方案,通过实现地址转换,就能实现32位***访问64位地址范围,使得基于32位***也能够拥有足够的地址空空间容纳更多的外设,解决了地址空间不足的问题,并且地址转换中的寄存器表只需要配置一次,就能实现多段地址空间转换,避免访问不同空间需要频繁配置,访问效率也基本和不做地址转换前一样;同时还支持总线切换,这就相当于同样的地址访问路由到不同的总线就能访问不同的外设,达到地址复用的效果。表中多个寄存器表项,能够避免频繁配置导致访问效率降低。
在每个表项的size范围内可以实现连续访问而不需要中途重新配置,软件可以把某一项的size大小修改为某外设整个空间大小,这样就能够访问完该外设的所有空间而不需要中途重新配置。
在本申请实施例中,提供一种地址转换器,请参阅图2,图2为一个实施例中地址转换器的结构图,该地址转换器包括寄存器201、地址比较器202、地址转换器203和地址选择器204。
如图2所示,一种地址转换器,所述地址转换器包括:
寄存器201,被配置为用于预设虚拟地址的范围总区间以及对应的物理地址基址;
地址比较器202,被配置为用于根据待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
地址转换器203,被配置为用于如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
地址选择器204,被配置为用于根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
在一些实施方式中,所述寄存器201还被配置为用于确定若干个虚拟地址vAddr,设置每个虚拟地址vAddr的限定转换地址区间size,获得每个虚拟地址的范围区间、以及虚拟地址的范围总区间[vAddr,vAddr+size];还根据所述每个虚拟地址的范围区间设置对应的物理地址基址pAddr_base。
在一些实施方式中,所述寄存器201还被配置为用于配置寄存器表,所述寄存器表内包括若干个虚拟地址vAddr、每个虚拟地址vAddr的限定转换地址区间size、以及每个虚拟地址的范围区间对应的物理地址基址pAddr_base。
在一些实施方式中,所述地址比较器202还被配置为用于如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之中,确定所述待访问的地址处于虚拟地址的范围总区间内;如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之外,确定所述待访问的地址处于虚拟地址的范围总区间外。
在一些实施方式中,所述地址转换器203还被配置为用于对所述待访问的地址进行偏移并且结合对应的物理地址基址确定最终访问地址。
在一些实施方式中,所述地址转换器203还被配置为用于根据所述待访问的地址和匹配的每个虚拟地址确定偏移地址,所述偏移地址和该虚拟地址对应的物理地址基址结合最终访问地址。
在一些实施方式中,所述地址选择器204还被配置为用于所述根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线,具体包括:如果所述对应的物理地址基址的最低位为0,将所述最终访问地址输出到***总线system bus;如果所述对应的物理地址基址的最低位为1,将所述最终访问地址输出到***设备总线peripherals bus。
在具体地实施例中,可参考如图3所示的一个实施例中地址转换器的地址拓展实现框图,从图中可以看到,有两个可配置的寄存器表,可通过配置总线对其进行配置,寄存器表的大小可按实际需求修改。表中主要包含三类寄存器,vAddr表示虚拟地址,pAddr表示物理地址,size则是限定转换地址区间,如果输入地址满足[vAddr,vAddr+size]之间,则进行地址转换。pAddr_base为物理地址基址,和vAddr组成实际的物理地址,因为32位地址线按4字节对齐,所以pAddr_base[1:0]这两位用不到,所以可以借助这两位实现其他功能,如实现4路总线切换功能,从而达到节约寄存器空间的目的,本申请中只展示两路总线切换,所以只需用到最后一位pAddr_base[0]就能实现两路总线切换。
基于原有的硬件架构上,增加本申请提供的地址转换器,能够在不影响硬件的其他模块实现的同时达到地址拓展以及具备总线切换的能力,在芯片上的占用面积,基本可以忽略不计,也不影响原有硬件框架,利用pAddr_base[1:0]这两个位就能实现4路总线切换的能力,该地址转换器的加入不影响硬件整体设计方案,地址映射关系基本交给软件控制,具有高度灵活性的同时,又能解决空间不足的问题,同时还拥有总线切换的能力,这就相当于地址能够复用,同样的地址路由到不同的总线就能访问不同的设备。
关于地址转换器中各模块实现上述技术方案的其他细节,可参见上述提供的地址空间的扩展方法中的描述,此处不再赘述。
在本申请实施例中,提供一种计算机设备,请参阅图4,图4为一个实施例中计算机设备的结构示意图,该设备包括包括存储器301和处理器302,所述存储器301存储有计算机程序,所述计算机程序被所述处理器302执行时,使得所述处理器302执行如下步骤:
预设虚拟地址的范围总区间以及对应的物理地址基址;
获取待访问的地址;
根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
其中,处理器302还可以称为CPU(Central Processing Unit,中央处理单元),处理器302可能是一种集成电路芯片,具有信号的处理能力;处理器302还可以是通用处理器、DSP(Digital Signal Process,数字信号处理器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field Programmable Gata Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,其中通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等。
在本申请实施例中,提供一种计算机可读存储介质,请参阅图5,图5为一个实施例中计算机可读存储介质的结构示意图,该存储介质上存储有可读的计算机程序401;其中,该计算机程序401可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务机器,或者网络设备等)或处理器(processor)执行以下步骤:
预设虚拟地址的范围总区间以及对应的物理地址基址;
获取待访问的地址;
根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
如果所述待访问的地址处于虚拟地址的范围总区间内,对所述待访问的地址进行转换确定最终访问地址;
根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
而前述的存储介质包括:U盘、移动硬盘、磁碟或者光盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)等各种可以存储程序代码的介质,或者是计算机、服务机器、手机、平板等终端设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种地址空间的扩展方法,其特征在于,所述方法包括:
预设虚拟地址的范围总区间以及对应的物理地址基址;
获取待访问的地址;
根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
如果所述待访问的地址处于虚拟地址的范围总区间内,根据所述待访问的地址和匹配的每个虚拟地址确定偏移地址,所述偏移地址和该虚拟地址对应的物理地址基址结合确定最终访问地址;
根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
2.根据权利要求1所述的地址空间的扩展方法,其特征在于,所述预设虚拟地址的范围总区间以及对应的物理地址基址,具体包括:确定若干个虚拟地址vAddr,设置每个虚拟地址vAddr的限定转换地址区间size,获得每个虚拟地址的范围区间、以及虚拟地址的范围总区间[vAddr,vAddr+size];还根据所述每个虚拟地址的范围区间设置对应的物理地址基址pAddr_base。
3.根据权利要求2所述的地址空间的扩展方法,其特征在于,所述根据所述待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内,具体包括:如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之中,确定所述待访问的地址处于虚拟地址的范围总区间内;如果所述待访问的地址处于虚拟地址的范围总区间[vAddr,vAddr+size]之外,确定所述待访问的地址处于虚拟地址的范围总区间外。
4.根据权利要求1-3任意一项所述的地址空间的扩展方法,其特征在于,所述根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线,具体包括:如果所述对应的物理地址基址的最低位为0,将所述最终访问地址输出到***总线system bus;如果所述对应的物理地址基址的最低位为1,将所述最终访问地址输出到***设备总线peripherals bus。
5.根据权利要求1所述的地址空间的扩展方法,其特征在于,所述预设虚拟地址的范围总区间以及对应的物理地址基址,具体包括:配置寄存器表,所述寄存器表内包括若干个虚拟地址vAddr、每个虚拟地址vAddr的限定转换地址区间size、以及每个虚拟地址的范围区间对应的物理地址基址pAddr_base。
6.一种地址转换器,其特征在于,所述地址转换器包括:
寄存器,用于预设虚拟地址的范围总区间以及对应的物理地址基址;
地址比较器,用于根据待访问的地址在虚拟地址的范围总区间中查找,确定所述待访问的地址是否处于虚拟地址的范围总区间内;
地址转换器,用于如果所述待访问的地址处于虚拟地址的范围总区间内,根据所述待访问的地址和匹配的每个虚拟地址确定偏移地址,所述偏移地址和该虚拟地址对应的物理地址基址结合确定最终访问地址;
地址选择器,用于根据所述对应的物理地址基址的最低位将最终访问地址输出到对应的总线。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641028.9A CN117389912B (zh) | 2023-12-04 | 2023-12-04 | 地址空间的扩展方法、地址转换器、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641028.9A CN117389912B (zh) | 2023-12-04 | 2023-12-04 | 地址空间的扩展方法、地址转换器、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117389912A CN117389912A (zh) | 2024-01-12 |
CN117389912B true CN117389912B (zh) | 2024-03-22 |
Family
ID=89470480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311641028.9A Active CN117389912B (zh) | 2023-12-04 | 2023-12-04 | 地址空间的扩展方法、地址转换器、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389912B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233667B1 (en) * | 1999-03-05 | 2001-05-15 | Sun Microsystems, Inc. | Method and apparatus for a high-performance embedded memory management unit |
CN110046106A (zh) * | 2019-03-29 | 2019-07-23 | 海光信息技术有限公司 | 一种地址转换方法、地址转换模块及*** |
CN113485716A (zh) * | 2021-09-03 | 2021-10-08 | 支付宝(杭州)信息技术有限公司 | 防内存越界的程序编译方法及装置 |
CN115421789A (zh) * | 2022-08-30 | 2022-12-02 | 贵州电网有限责任公司贵阳供电局 | 一种基于伏羲处理器的地址转换方法、装置、设备及介质 |
-
2023
- 2023-12-04 CN CN202311641028.9A patent/CN117389912B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233667B1 (en) * | 1999-03-05 | 2001-05-15 | Sun Microsystems, Inc. | Method and apparatus for a high-performance embedded memory management unit |
CN110046106A (zh) * | 2019-03-29 | 2019-07-23 | 海光信息技术有限公司 | 一种地址转换方法、地址转换模块及*** |
CN113485716A (zh) * | 2021-09-03 | 2021-10-08 | 支付宝(杭州)信息技术有限公司 | 防内存越界的程序编译方法及装置 |
CN115421789A (zh) * | 2022-08-30 | 2022-12-02 | 贵州电网有限责任公司贵阳供电局 | 一种基于伏羲处理器的地址转换方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117389912A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1091525A (ja) | 変換索引バッファ及びメモリ管理システム | |
CN104102586B (zh) | 一种地址映射处理的方法、装置 | |
US8751751B2 (en) | Method and apparatus for minimizing cache conflict misses | |
CN117389912B (zh) | 地址空间的扩展方法、地址转换器、设备及介质 | |
US9026774B2 (en) | IC with boot transaction translation and related methods | |
EP4246328A1 (en) | Storage apparatus, storage control apparatus, and system on chip | |
US11256630B2 (en) | Cache address mapping method and related device | |
JP6294732B2 (ja) | データ転送制御装置及びメモリ内蔵装置 | |
CN107888521B (zh) | 多协议共享表项资源池的方法和装置 | |
CN113806251B (zh) | 一种共享内存管理单元的***及搭建方法、内存访问方法 | |
JP5958195B2 (ja) | 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム | |
JPS5827253A (ja) | デ−タ処理装置 | |
US8762683B2 (en) | Device and method for memory addressing | |
US11609861B1 (en) | Method and apparatus for efficient address decoding and address usage reduction | |
CN117851289B (zh) | 页表获取方法、***、电子组件及电子设备 | |
CN117375625B (zh) | 地址空间的动态解压缩方法、地址解压器、设备及介质 | |
EP3462322B1 (en) | Semiconductor device and memory access method | |
CN115658559B (zh) | 内存地址映射方法及装置、芯片 | |
CN117909253A (zh) | 地址映射的方法和相关设备 | |
JP3429880B2 (ja) | メモリ装置およびメモリアクセス方法 | |
JP2006260395A (ja) | プログラムローディング方法及びその装置 | |
JP4345245B2 (ja) | アドレス変換回路及びそれに用いるアドレス変換方法 | |
JPH07334420A (ja) | 拡張メモリ制御回路 | |
TW200416538A (en) | Method for managing external memory of a processor | |
US20190004966A1 (en) | Semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |