地址空间分配方法及装置、计算机可读存储介质制造方法及图纸

技术编号:21891547 阅读:21 留言:0更新日期:2019-08-17 14:22
一种地址空间分配方法及装置、计算机可读存储介质,所述方法包括:当检测到调用目标函数的目标指令时,分配与所述目标函数对应的活动记录所需的地址空间,包括:获取实在参数基址寄存器的当前值;将活动记录基址寄存器的值更新为所述实在参数基址寄存器的当前值;将所述实在参数基址寄存器的当前值更新为:更新后的活动记录基址寄存器的值与所述目标函数对应的活动记录所需的地址空间的差值;在检测到所述目标函数执行完成后,释放所述目标函数对应的活动记录所需的地址空间。上述方案能够有效提高地址空间的利用效率。

Address Space Allocation Method, Device and Computer Readable Storage Media

【技术实现步骤摘要】
地址空间分配方法及装置、计算机可读存储介质
本专利技术涉及计算机处理
,尤其涉及一种地址空间分配方法及装置、计算机可读存储介质。
技术介绍
在计算机处理器中,对存储单元的操作是基于存储单元地址进行的。在执行访问存储器的访问指令时,处理器根据访问指令及当前机器状态得到被访问存储单元的地址,上述获取访问存储单元地址的方式称之为寻址方式。理论上,寻址方式越丰富,指令集功能越强大。在通用计算机领域,处理器的寻址方式包括直接寻址、立即数寻址、间接寻址、寄存器间接寻址、相对寻址、基址寻址等。但是,寻址方式越丰富,处理器的设计及制造成本越高。在嵌入式计算机领域,由于成本等因素的限制,寻址方式比较简单,8位单片机一般只支持直接寻址和间接寻址。直接寻址指令和间接寻址指令必须有明确的地址,所有变量地址都是静态分配的。在进行函数调用时,每次函数调用都会产生一个新的活动记录。当被调用函数存在多条调用路径时,需要为各个层级分配所需的地址空间,导致地址空间的利用率较低。
技术实现思路
本专利技术实施例解决的是地址空间的利用率较低的技术问题。为解决上述技术问题,本专利技术实施例提供一种地址空间分配方法,包括:当检测到调用目标函数的目标指令时,分配与所述目标函数对应的活动记录所需的地址空间,包括:获取实在参数基址寄存器的当前值;将活动记录基址寄存器的值更新为所述实在参数基址寄存器的当前值,将所述实在参数基址寄存器的当前值更新为:更新后的活动记录基址寄存器的值与所述目标函数对应的活动记录所需的地址空间的差值;在检测到所述目标函数执行完成后,释放所述目标函数对应的活动记录所需的地址空间。可选的,所述释放所述目标函数对应的活动记录所需的地址空间,包括:获取活动记录基址寄存器的当前值;将实在参数基址寄存器的值更新为所述活动记录基址寄存器的当前值;将活动记录基址寄存器的当前值更新为:更新后的实在参数基址寄存器的值与调用所述目标函数的函数对应的活动记录所需的地址空间的和值。可选的,在分配与所述目标函数对应的活动记录所需的地址空间之前,还包括:访问实在参数。可选的,所述访问实在参数,包括:将所述实在参数基址寄存器的当前值与实在参数偏移量寄存器的值相减,得到的差值作为访问所述实在参数的访问地址;根据所述访问地址访问所述实在参数。可选的,所述地址空间分配方法还包括:从间接寻址索引寄存器中获取所述目标函数对应的目标地址,所述目标地址为所述活动记录基址寄存器的当前值与写入所述间接访问偏移量寄存器的值的差值。可选的,所述地址空间分配方法还包括:在活动记录中为局部符号分配地址空间,并将与所述活动记录基址寄存器的值之间的偏移量作为所述局部符号的静态坐标。可选的,所述地址空间分配方法还包括:当接收到访问所述活动记录的访问指令时,将所述活动记录基址寄存器的值与所述访问指令中携带的地址相减,得到的差值作为所述访问指令对应的访问地址。可选的,所述活动记录基址寄存器的值用于标记栈底,所述实在参数基址寄存器的值用于标记栈顶。本专利技术实施例还提供了一种地址空间分配装置,包括:分配单元,用于当检测到调用目标函数的目标指令时,获取实在参数基址寄存器的当前值;将活动记录基址寄存器的值更新为所述实在参数基址寄存器的当前值,将所述实在参数基址寄存器的当前值更新为:更新后的活动记录基址寄存器的值与所述目标函数对应的活动记录所需的地址空间的差值;释放单元,用于在检测到所述目标函数执行完成后,释放所述目标函数对应的活动记录所需的地址空间。可选的,所述释放单元,用于获取活动记录基址寄存器的当前值;将实在参数基址寄存器的值更新为所述活动记录基址寄存器的当前值;将活动记录基址寄存器的当前值更新为:更新后的实在参数基址寄存器的值与调用所述目标函数的函数对应的活动记录所需的地址空间的和值。可选的,所述地址空间分配装置还包括:实在参数访问单元,用于在所述分配单元分配与所述目标函数对应的活动记录所需的地址空间之前,访问实在参数。可选的,所述实在参数访问单元,用于将所述实在参数基址寄存器的当前值与实在参数偏移量寄存器的值相减,得到的差值作为访问所述实在参数的访问地址;根据所述访问地址访问所述实在参数。可选的,所述地址空间分配装置还包括:目标地址获取单元,用于从间接寻址索引寄存器中获取所述目标函数对应的目标地址,所述目标地址为所述活动记录基址寄存器的当前值与写入所述间接访问偏移量寄存器的值的差值。可选的,所述地址空间分配装置还包括:局部符号地址空间分配单元,用于在活动记录中为局部符号分配地址空间,并将所述局部符号与所述活动记录基址寄存器的值之间的偏移量作为所述局部符号的静态坐标。可选的,所述地址空间分配装置还包括:活动记录访问单元,用于当接收到访问所述活动记录的访问指令时,将所述活动记录基址寄存器的值与所述访问指令中携带的地址相减,得到的差值作为所述访问指令对应的访问地址。可选的,所述活动记录基址寄存器的值用于标记栈底,所述实在参数基址寄存器的值用于标记栈顶。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一种所述的地址空间分配方法的步骤。本专利技术实施例还提供了一种地址空间分配装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一种所述的地址空间分配方法的步骤。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:在检测到目标函数执行完成后,释放目标函数对应的活动记录所需的地址空间。因此,当函数存在多条调用路径时,后一条调用路径对应的活动记录所需的地址空间可以复用前一条调用路径对应的活动记录所需的地址空间,因此无需为每一个层级均分配静态的活动记录所需的地址空间,故能够有效提高地址空间的利用效率。进一步,通过直接寻址访问实在参数间接访问寄存器时,根据实在参数基址寄存器的值与实在参数偏移量寄存器的值确定访问地址,从而访问实在参数,实现参数访问的快速高效。附图说明图1是本专利技术实施例中的一种地址空间分配方法的流程图;图2是本专利技术实施例中的一种地址空间分配装置的结构示意图。具体实施方式现有技术中,在进行函数调用时,每次函数调用都会产生一个新的活动记录。当函数存在多条调用路径时,需要为各个层级分配所需的地址空间,导致大量的地址空间被占用,造成地址空间的利用率较低。对于中断函数,当中断函数存在多条调用路径时,也需要为中断函数的各个层级分配所需的地址空间。任何中断函数与任意非中断函数的地址不重叠。本专利技术实施例中,当函数存在多条调用路径时,后一条调用路径对应的活动记录所需的地址空间可以复用前一条调用路径对应的活动记录所需的地址空间,因此无需为每一个层级均分配静态的活动记录所需的地址空间,故能够有效提高地址空间的利用效率。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。本专利技术实施例提供了一种地址空间分配方法,参照图1,以下通过具体步骤进行详细说明。步骤S101,当检测到调用目标函数的目标指令时,分配与所述目标函数对应的活动记录所需的地址空间。在具体实施中,在调用目标函数时,可以生成用于调用目标函数的目标指本文档来自技高网...

【技术保护点】
1.一种地址空间分配方法,其特征在于,包括:当检测到调用目标函数的目标指令时,分配与所述目标函数对应的活动记录所需的地址空间,包括:获取实在参数基址寄存器的当前值;将活动记录基址寄存器的值更新为所述实在参数基址寄存器的当前值;将所述实在参数基址寄存器的当前值更新为:更新后的活动记录基址寄存器的值与所述目标函数对应的活动记录所需的地址空间的差值;在检测到所述目标函数执行完成后,释放所述目标函数对应的活动记录所需的地址空间。

【技术特征摘要】
1.一种地址空间分配方法,其特征在于,包括:当检测到调用目标函数的目标指令时,分配与所述目标函数对应的活动记录所需的地址空间,包括:获取实在参数基址寄存器的当前值;将活动记录基址寄存器的值更新为所述实在参数基址寄存器的当前值;将所述实在参数基址寄存器的当前值更新为:更新后的活动记录基址寄存器的值与所述目标函数对应的活动记录所需的地址空间的差值;在检测到所述目标函数执行完成后,释放所述目标函数对应的活动记录所需的地址空间。2.如权利要求1所述的地址空间分配方法,其特征在于,所述释放所述目标函数对应的活动记录所需的地址空间,包括:获取活动记录基址寄存器的当前值;将实在参数基址寄存器的值更新为所述活动记录基址寄存器的当前值;将活动记录基址寄存器的当前值更新为:更新后的实在参数基址寄存器的值与调用所述目标函数的函数对应的活动记录所需的地址空间的和值。3.如权利要求1或2所述的地址空间分配方法,其特征在于,在分配与所述目标函数对应的活动记录所需的地址空间之前,还包括:访问实在参数。4.如权利要求3所述的地址空间分配方法,其特征在于,所述访问实在参数,包括:将所述实在参数基址寄存器的当前值与实在参数偏移量寄存器的值相减,得到的差值作为访问所述实在参数的访问地址;根据所述访问地址访问所述实在参数。5.如权利要求1所述的地址空间分配方法,其特征在于,还包括:从间接寻址索引寄存器中获取所述目标函数对应的目标地址,所述目标地址为所述活动记录基址寄存器的当前值与写入所述间接访问偏移量寄存器的值的差值。6.如权利要求1所述的地址空间分配方法,其特征在于,还包括:在活动记录中为局部符号分配地址空间,并将所述局部符号与所述活动记录基址寄存器的值之间的偏移量作为所述局部符号的静态坐标。7.如权利要求6所述的地址空间分配方法,其特征在于,还包括:当接收到访问所述活动记录的访问指令时,将所述活动记录基址寄存器的值与所述访问指令中携带的地址相减,得到的差值作为所述访问指令对应的访问地址。8.如权利要求1所述的地址空间分配方法,其特征在于,所述活动记录基址寄存器的值用于标记栈底,所述实在参数基址寄存器的值用于标记栈顶。9.一种地址空间分配装置,其特征在于,包括:分配单元,用于当检测到调用目标函数的目标指令时,获取实在参数基址寄存器的当前值;将活动记录基址寄存器的值更新为所述实在参数基址寄存器的当前值;将所述实在参数基址寄存器的当前值更新为:更...

【专利技术属性】
技术研发人员:穆海东卢昊陈光胜
申请(专利权)人:上海东软载波微电子有限公司
类型:发明
国别省市:上海,31

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

1