CN111104062A - 存储管理方法、装置和存储介质 - Google Patents

存储管理方法、装置和存储介质 Download PDF

Info

Publication number
CN111104062A
CN111104062A CN201911159599.2A CN201911159599A CN111104062A CN 111104062 A CN111104062 A CN 111104062A CN 201911159599 A CN201911159599 A CN 201911159599A CN 111104062 A CN111104062 A CN 111104062A
Authority
CN
China
Prior art keywords
storage
stack
level
block
target
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.)
Granted
Application number
CN201911159599.2A
Other languages
English (en)
Other versions
CN111104062B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201911159599.2A priority Critical patent/CN111104062B/zh
Publication of CN111104062A publication Critical patent/CN111104062A/zh
Application granted granted Critical
Publication of CN111104062B publication Critical patent/CN111104062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本公开涉及存储管理方法、装置和存储介质,用户能够自适应的调整栈的存储位置,方便易用,对用户非常友好。同时,可以避免栈空间不足导致程序无法运行的问题,还可以进一步提高程序的运行效率。

Description

存储管理方法、装置和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种存储管理方法、装置和存储介质。
背景技术
一般的计算机系统可以整体抽象为存储模块、控制模块和计算模块三大部分。随着人工智能和大数据的发展对处理器的处理能力提出了较高的要求,多核处理器系统是提高处理器的处理能力的优选,不同的处理器核可以具有各自的本地存储,从而带来了多级的存储层次。而如何在多级存储层次的情况下实现存储管理成为值得探讨的问题。
发明内容
有鉴于此,本公开提出了一种存储管理方法、装置和存储介质,使得用户能够调整栈的目标存储位置,能够灵活地调整栈的存储位置,保证程序运行的效率。
一种存储管理方法,所述方法包括:
根据获取的栈位置命令确定栈的目标存储位置;
根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。
在其中一个实施例中,所述方法应用于包含存储系统的装置中,所述存储系统包括第一级存储块、第二级存储块和第三级存储块;所述第一级存储块、所述第二级存储块及所述第三级存储块的存储空间依次增大,所述第一级存储块、所述第二级存储块和所述第三级存储块的优先级依次减小;
所述栈的目标存储位置为所述第一级存储块、第二级存储块或所述第三级存储块。
在其中一个实施例中,所述根据获取的栈位置命令确定栈的目标存储位置:
若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间时,则根据所述获取的栈位置命令,将所述第一级存储块作为所述目标存储位置。
在其中一个实施例中,所述根据获取的栈位置命令确定栈的目标存储位置:
若所述目标数据所需的存储空间大于所述第一级存储块的存储空间时,则根据所述获取的栈位置命令,将所述第二级存储块或第三级存储块作为所述目标存储位置。
在其中一个实施例中,所述目标存储位置的存储空间大于或等于所述栈的当前存储位置的存储空间。
在其中一个实施例中,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,则报错,以提示用户修改所述栈位置命令。
在其中一个实施例中,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,以根据所述提示信息获取栈位置命令。
在其中一个实施例中,当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,包括:
根据存储系统中各个存储块的优先级以及各个存储块的存储空间,确定推荐存储块;
根据所述推荐存储块的相关信息生成提示信息,其中,所述提示信息包括所述推荐存储块的标识。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如上述任一项所述的方法。
一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现如上述任一项所述的方法。
本申请的存储管理方法、装置和存储介质,编译器能够根据获取的栈位置命令确定栈的目标存储位置,并根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。本申请的存储管理方法,使得用户能够通过栈位置命令自适应的调整栈的存储位置,方便易用,对用户非常友好。同时,本申请的存储管理方法,通过自适应的调整栈的目标存储位置,可以避免栈空间不足导致程序无法运行的问题,还可以进一步提高程序的运行效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1为本申请的存储管理装置一实施例的示意图;
图2为本申请一实施例的存储系统的结构示意图;
图3为本申请另一实施例的存储系统的结构示意图;
图4为本申请的存储管理方法一实施例的流程图;
图5为本申请的存储管理方法另一实施例的流程图;
图6为本申请的存储管理方法又一实施例的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
一般的计算机系统可以整体抽象为存储模块、控制模块和计算模块三大部分。随着人工智能和大数据的发展对处理器的处理能力提出了较高的要求,多核处理器系统是提高处理器的处理能力的优选,不同的处理器核可以具有各自的本地存储,从而带来了多级的存储层次。而传统的计算机架构往往不会向用户暴露出多级存储层次,或者,有些架构虽然向用户暴露出了多级存储层次,但用户并不能清楚地获知系统分配给程序的栈的位置(stack的位置),从而用户无法根据程序的目标数据的实际需求调整栈的位置。其中,程序的目标数据可以是运行程序过程中所涉及的静态数据,该目标数据可以存储于栈空间中。例如,若栈的当前位置对应的存储空间小于目标数据的实际存储需求时,即当系统为程序分配的栈空间小于程序的静态数据量时,就容易导致程序无法运行,造成程序运行出错,运行效率较低。
基于此,本申请的目的在于提出一种存储管理方法、装置及存储介质,使得用户能够自适应的调整栈的位置,可以避免因存储空间不足而导致的程序运行错误问题,从而提高程序的运行效率。同时,用户能够根据实际情况灵活地自定义栈的位置,方便易用,对程序编写人员非常友好。可选地,编译器可以实现上述的存储管理方法,在软件层面对编译器的优化以提高程序的运行效率。
如图1所示,存储管理装置100可以包括处理器110和存储系统120。其中,该处理器110可以是通用处理器或人工智能等专用处理器,例如,该处理器110可以是CPU或DSP等等,此处不做具体限定。存储系统120可以用于存储处理器运行的计算机程序以及参与运算的相关数据等等。可选地,当该存储管理装置中的处理器110执行其中存储的计算机程序时,可以实现本申请实施例的存储管理方法,具体实现方式可参见下文中的描述。
如图2所示,其中,存储系统220可以是多级存储系统。可选地,该存储系统220可以是三级存储系统,其包含第一级存储块221、第二级存储块222和第三级存储块223。进一步可选地,所述第一级存储块221、所述第二级存储块222及所述第三级存储块223的存储空间依次增大。在存储分配过程中,为保证程序的运行速度,所述第一级存储块221、所述第二级存储块222和所述第三级存储块223的优先级依次减小。
在本申请实施例中,该第一级存储块221可以是片上存储块。可选地,如图3所示,该第一级存储块221可以包括神经元存储空间(NRAM,Neuron RAM)和权值存储空间(WRAM,Weight RAM),进一步可选地,该第一级存储块221还可以包括共享存储(SRAM,SharedMemory)。更进一步地,该三种片上存储空间的运行速度也不一样,基于不同的运行速度,该三种片上存储也可以具有一定的优先级顺序。
该第二级存储块222和第三级存储块223可以是片外存储。其中,该第二级存储块222可以是本地存储块(LDRAM,Local DRAM),如图3中的DDR0为第二级存储块222。该第三级存储块223可以是远程存储,属于全局存储(GDRAM,Global DRAM),如图中的DDR1为第三级存储块223。
在其他实施例中,该存储系统还可以是两级存储系统,其中,第一级存储块可以是指片上存储,第二级存储块可以是指片外存储。当然,在其他实施例中,该存储系统还可以是四级以上的存储系统,此处不做具体限定。
基于上述存储系统的多级存储结构,本申请实施例可以在编译器层面对数据访存指令进行优化和控制,以实现多级存储系统的存储分配管理。如图4所示,本申请实施例提供了一种存储管理方法,所述方法包括:
S410、编译器根据获取的栈位置命令确定栈的目标存储位置。
具体地,该栈位置命令可以是用户自定义设置。该栈位置命令可以是用户在高级语言程序层面(如C语言等高级编程语言)设置的,也可以是用户在低级语言层面(如汇编语言等低级语言)设置的,此处不做具体限定。本申请实施例中,用户可以通过设置栈位置命令,灵活地调整栈的位置,以保证栈空间能够满足程序的运行需求,避免栈空间不足而导致的栈溢出问题。
进一步可选地,栈的目标存储位置是指系统为程序的目标数据分配的存储位置。该栈的目标存储位置可以是第一级存储块、第二级存储块或第三级存储块,用户可以综合目标数据的存储需求以及目标数据的运行效率需求等因素指定栈的目标存储位置。
可选地,用户可以对高级语言源程序中的命令进行修改,使用编译选项实现栈的目标存储位置的自定义设置。本申请实施例中,用户可以在bangC(一种类似C语言的高级编程语言)程序端使用编译选项控制程序的栈的目标存储位置。例如,—bang-stack-on-ldram指定栈的目标存储位置在第二级存储块上,—bang-stack-on-nram指定栈的目标存储位置在第一级存储块上。
可选地,用户可以对汇编语言等低级语言源程序中的命令进行修改,使用汇编选项实现栈的目标存储位置的自定义设置。例如,可以在编译时使用汇编选项-stack-ldram指定栈的目标存储位置在第二级存储块上,或者,以在编译时使用汇编选项-stack-on-nram指定栈的目标存储位置在第一级存储块上。可选地,用户也可以在汇编源程序的开头写上.stack ldram或.stack nram等来指定栈的目标存储位置,从而通过调整低级语言源程序中的文本来实现栈的位置的调整。
可选地,由于第一级存储块作为片上存储,相较于其他片外存储具有较高的程序执行速度,因此本申请实施例中,栈的目标存储位置可以默认为第一级存储块。
应当清楚地是,栈是C语言编译器中的一个通用概念。栈是一种线性序列结构,栈对于存储在其中的数据的访问做了限制,只能从序列的某一端进行读写操作,栈中的数据遵循后进先出(LIFO,Last-in-First-out)的规则。程序的调用和返回通常由栈进行管理,栈可以记录每个正在执行的活动(如函数或程序)的活动记录(也称为帧)。每个栈帧对应着一个未完成的函数,其是编译器用来实现过程/函数调用的一种数据结构。在程序的运行过程中,系统可以根据程序涉及的数据量,为程序分配相应的栈空间,该栈空间可以用于存储程序涉及的数据。从而,程序可以从相应的栈空间中获取其运行过程中所需的数据,进一步地,程序还可以将其运行过程中的状态信息及运算结果等数据存入相应的栈空间中。
S420、根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。
具体地,当编译器确定该栈的目标存储位置之后,可以根据该栈的目标存储位置生成数据访存指令(IO指令),从而使得装置能够根据该数据访存指令访问目标存储位置中的目标数据,以保证程序的正常运行。
例如,当用户通过—bang-stack-on-nram指令指定栈的目标存储位置为第一级存储块时,编译器可以生成相应的数据访存指令load R,nram(其中,R可以是寄存器),该数据访存指令可以用于将nram上的目标数据加载至寄存器中,处理器可以运行程序,并从寄存器中获得程序运行涉及的目标数据。即在程序运行过程中,程序可以访问第一级存储块NRAM中的目标数据,以完成程序的运行。
再如,在编译时,用户通过使用汇编选项-stack-on-ldram指定栈的目标存储位置在第二级存储块上,编译器可以生成相应的数据访存指令load R,ldram(其中,R可以是寄存器),该数据访存指令可以用于将ldram中目标数据加载至寄存器中,处理器可以运行程序,并从寄存器中获得程序运行涉及的目标数据。即在程序运行过程中,程序可以访问第二级存储块LDRAM中的目标数据,以完成程序的运行。
可选地,当处理器完成程序的运行之后,可以释放的该程序的目标数据占用的存储空间,即在程序运行结束之后,系统可以释放该程序的栈空间。进一步可选地,当程序运行结束之后,编译器可以将上述栈的存储位置更新为默认存储位置,例如,编译器可以将上述栈的存储位置更新为第一级存储块。
可选地,可以根据程序的目标数据所需的存储空间确定栈的目标存储位置。如图5所示,上述方法可以包括:
S510、编译器确定程序的目标数据所需的存储空间是否大于栈的当前存储位置的存储空间。
其中,栈的当前存储位置的存储空间可以是特定存储块的可用存储空间(剩余存储空间)。可选地,编译器可以追踪并存储栈的当前存储位置,以确定栈的当前存储位置,从而便于操作S510中存储空间的确定。
若程序的目标数据所需的存储空间大于栈的当前存储位置的存储空间,则执行操作S520,编译器可以通过栈位置指令调整栈的目标存储位置。所述目标存储位置的存储空间可以是大于或等于所述栈的当前存储位置的存储空间,从而可以避免因存储空间不足而导致的程序无法运行的问题。可选地,目标存储位置的存储空间可以大于或等于栈的默认存储位置的存储空间。例如,栈的默认存储位置可以是第一级存储块,该目标存储位置可以是第二级存储块或第三级存储块。
进一步地,当目标存储位置的存储空间等于栈的当前存储位置的存储空间时,也可以不对栈的存储位置进行调整。即若程序的目标数据所需的存储空间是小于或等于栈的当前存储位置的存储空间,则编译器可以执行操作S530,将栈的当前存储位置作为目标存储位置。例如,栈的当前存储空间为第一级存储块,该第一级存储块能够满足程序的栈空间需求,此时程序可以正常运行,无需调整栈的存储位置。当然,当目标存储位置的存储空间等于栈的当前存储位置的存储空间时,用户也可以根据其需求对栈的存储位置进行调整,此处不做具体限定。
可选地,编译器可以根据程序的目标数据所需的存储空间确定栈的目标存储位置。如图6所示,上述方法可以包括:
S610、编译器确定程序的目标数据所需的存储空间是否大于第一级存储块的存储空间。其中,第一级存储块的存储空间可以是第一级存储块上的可用存储空间。
若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间时,则执行操作S620,根据所述获取的栈位置命令,将所述第一级存储块作为所述目标存储位置。具体地,若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间,则用户可以通过修改栈位置命令指定相应的目标存储位置,编译器可以该栈位置命令将栈的目标存储位置设置为第一级存储块。
例如,若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间,可以将通过—bang-stack-on-nram指令将栈的目标存储位置设置为第一级存储块Nram,由于第一级存储块的运行效率高于第二级存储块或第三级存储块,从而可以在保证目标数据的存储需求的情况下,提高目标数据的运行效率。
若所述目标数据所需的存储空间大于所述第一级存储块的存储空间时,则执行操作S630,根据所述获取的栈位置命令,将所述第二级存储块或第三级存储块作为所述目标存储位置。具体地,若所述目标数据所需的存储空间大于所述第一级存储块的存储空间,则用户可以通过修改栈位置命令指定相应的目标存储位置,编译器可以根据栈位置命令将栈的目标存储位置设置为第二级存储块或第三级存储块。
进一步地,在满足目标数据的存储需求的前提下,可以根据各个存储块的优先级顺序,优先选择优先级高的存储块作为栈的目标存储位置。例如,若所述目标数据所需的存储空间大于所述第一级存储块的存储空间,用户可以根据目标数据的存储需求,通过—bang-stack-on-ldram指令将栈的目标存储位置设置为第二级存储块Ldram,从而可以在保证目标数据的存储需求的情况下,提高目标数据的运行效率。当然,若所述目标数据所需的存储空间大于所述第一级存储块的存储空间,用户也可以根据目标数据的存储需求,通过—bang-stack-on-gdram指令将栈的目标存储位置设置为Gdram。
进一步地,若所述目标数据所需的存储空间大于所述第二级存储块的存储空间,用户可以目标数据的存储需求,通过—bang-stack-on-gdram指令将栈的目标存储位置设置为第三级存储块Gdram。
可选地,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,则报错,以提示用户修改所述栈位置命令。具体地,当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,程序会因为存储空间不足而无法运行,此时,编译器可以报错。用户可以根据编译器的报错信息修改栈位置命令,以调整栈的目标存储位置。具体的修改方式可参见上文的描述,此处不再赘述。
进一步可选地,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,以根据所述提示信息获取栈位置命令。可选地,上述提示信息可以是用于提供给用户的栈位置命令的修改建议,例如,上述提示信息可以包括目标存储位置的标识,以提示用户可以通过修改栈位置命令将栈的目标存储位置修改为可选的存储块。
可选地,编译器可以根据存储系统中各个存储块的优先级以及各个存储块的存储空间,确定推荐存储块;并根据所述推荐存储块的相关信息生成提示信息,其中,所述提示信息包括所述推荐存储块的标识。可选地,该推荐存储块的标识可以是各个存储块的名称,例如,该提示信息可以是Ldram或Gdram。可选地,存储系统中的各个存储块可以按照预设的顺序进行标号,该存储块对应的编号可以作为相应的推荐存储块的标识。进一步可选地,该提示信息还可以包括推荐存储块的存储空间信息(如,该存储块的总存储空间以及剩余存储空间)等等,此处不做具体限定。本申请实施例中,在编译器报错时,编译器可以返回相应的提示信息给用户,以指导用户设置栈的目标存储位置,方便使用。
需要说明的是,尽管以上述实施例作为示例介绍了存储管理方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤,只要符合本公开的技术方案即可。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
如图1所示,本申请实施例还提供了一种存储管理装置,包括存储系统和处理器,所述存储系统中存储有计算机程序,所述处理器执行所述计算机程序时,实现上述任一实施例所述的方法。具体地,处理器执行所述计算机程序时,实现如下步骤:
根据获取的栈位置命令确定栈的目标存储位置;
根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。
可选地,所述存储系统包括第一级存储块、第二级存储块和第三级存储块;所述第一级存储块、所述第二级存储块及所述第三级存储块的存储空间依次增大,所述第一级存储块、所述第二级存储块和所述第三级存储块的优先级依次减小;
所述栈的目标存储位置为所述第一级存储块、第二级存储块或所述第三级存储块。
可选地,处理器还用于执行:
若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间,则根据所述获取的栈位置命令,将所述第一级存储块作为所述目标存储位置。
可选地,处理器还用于执行:
若所述目标数据所需的存储空间大于所述第一级存储块的存储空间,则根据所述获取的栈位置命令,将所述第二级存储块或第三级存储块作为所述目标存储位置。
可选地,所述目标存储位置的存储空间大于或等于所述栈的当前存储位置的存储空间。
可选地,处理器还用于执行:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,则报错,以提示用户修改所述栈位置命令。
可选地,处理器还用于执行:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,以根据所述提示信息获取栈位置命令。
可选地,处理器还用于执行:
根据存储系统中各个存储块的优先级以及各个存储块的存储空间,确定推荐存储块;
根据所述推荐存储块的相关信息生成提示信息,其中,所述提示信息包括所述推荐存储块的标识。
上述实施例中装置的工作原理与上述方法中的步骤的实现过程基本一致。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本申请实施例中仅以示例的方式公开了该存储管理装置的部分组成部件,该存储管理装置还可以包括除存储系统和处理器之外的其他部件,如输入输出装置等,此处不做具体限定。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一实施例所述的方法。具体地,处理器执行所述计算机程序时,实现如下步骤:
根据获取的栈位置命令确定栈的目标存储位置;
根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。
上述实施例中各个步骤的具体实现与上述方法中的步骤的实现过程基本一致。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
根据以下条款可以更好地理解前述内容:
条款1:一种存储管理方法,所述方法包括:
根据获取的栈位置命令确定栈的目标存储位置;
根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。
条款2:根据条款1所述的方法,所述方法应用于包含存储系统的装置中,所述存储系统包括第一级存储块、第二级存储块和第三级存储块;所述第一级存储块、所述第二级存储块及所述第三级存储块的存储空间依次增大,所述第一级存储块、所述第二级存储块和所述第三级存储块的优先级依次减小;
所述栈的目标存储位置为所述第一级存储块、第二级存储块或所述第三级存储块。
条款3:根据条款2所述的方法,所述根据获取的栈位置命令确定栈的目标存储位置:
若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间时,则根据所述获取的栈位置命令,将所述第一级存储块作为所述目标存储位置。
条款4:根据条款2或3所述的方法,所述根据获取的栈位置命令确定栈的目标存储位置:
若所述目标数据所需的存储空间大于所述第一级存储块的存储空间时,则根据所述获取的栈位置命令,将所述第二级存储块或第三级存储块作为所述目标存储位置。
条款5:根据条款1-4任一项所述的方法,所述目标存储位置的存储空间大于或等于所述栈的当前存储位置的存储空间。
条款6:根据条款1-5任一项所述的方法,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,则报错,以提示用户修改所述栈位置命令。
条款7:根据条款1-6任一项所述的方法,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,以根据所述提示信息获取栈位置命令。
条款8:根据条款7所述的方法,当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,包括:
根据存储系统中各个存储块的优先级以及各个存储块的存储空间,确定推荐存储块;
根据所述推荐存储块的相关信息生成提示信息,其中,所述提示信息包括所述推荐存储块的标识。
条款9:一种存储管理装置,其特征在于,包括存储系统和处理器,所述存储系统中存储有计算机程序,所述处理器执行所述计算机程序时,实现如条款1-8任一项所述的方法。
条款10:一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现如条款1-8任一项所述的方法。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种存储管理方法,其特征在于,所述方法包括:
根据获取的栈位置命令确定栈的目标存储位置;
根据所述栈的目标存储位置生成数据访存指令,以根据所述数据访存指令访问所述目标存储位置中的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述方法应用于包含存储系统的装置中,所述存储系统包括第一级存储块、第二级存储块和第三级存储块;所述第一级存储块、所述第二级存储块及所述第三级存储块的存储空间依次增大,所述第一级存储块、所述第二级存储块和所述第三级存储块的优先级依次减小;
所述栈的目标存储位置为所述第一级存储块、第二级存储块或所述第三级存储块。
3.根据权利要求2所述的方法,其特征在于,所述根据获取的栈位置命令确定栈的目标存储位置:
若所述目标数据所需的存储空间小于或等于所述第一级存储块的存储空间,则根据所述获取的栈位置命令,将所述第一级存储块作为所述目标存储位置。
4.根据权利要求2所述的方法,其特征在于,所述根据获取的栈位置命令确定栈的目标存储位置:
若所述目标数据所需的存储空间大于所述第一级存储块的存储空间,则根据所述获取的栈位置命令,将所述第二级存储块或第三级存储块作为所述目标存储位置。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述目标存储位置的存储空间大于或等于所述栈的当前存储位置的存储空间。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,则报错,以提示用户修改所述栈位置命令。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,以根据所述提示信息获取栈位置命令。
8.根据权利要求7所述的方法,其特征在于,当所述目标数据所需的存储空间大于所述栈的当前存储位置的存储空间时,生成提示信息,包括:
根据存储系统中各个存储块的优先级以及各个存储块的存储空间,确定推荐存储块;
根据所述推荐存储块的相关信息生成提示信息,其中,所述提示信息包括所述推荐存储块的标识。
9.一种存储管理装置,其特征在于,包括存储系统和处理器,所述存储系统中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-8任一项所述的方法。
CN201911159599.2A 2019-11-22 2019-11-22 存储管理方法、装置和存储介质 Active CN111104062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911159599.2A CN111104062B (zh) 2019-11-22 2019-11-22 存储管理方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911159599.2A CN111104062B (zh) 2019-11-22 2019-11-22 存储管理方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN111104062A true CN111104062A (zh) 2020-05-05
CN111104062B CN111104062B (zh) 2023-05-02

Family

ID=70421084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911159599.2A Active CN111104062B (zh) 2019-11-22 2019-11-22 存储管理方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN111104062B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
CN101395578A (zh) * 2006-02-03 2009-03-25 拉塞尔·H·菲什三世 线程优化的多处理器架构
CN103353851A (zh) * 2013-07-01 2013-10-16 华为技术有限公司 一种管理任务的方法和设备
CN103793332A (zh) * 2014-02-28 2014-05-14 中国科学院微电子研究所 基于内存的数据存储方法、装置、处理器和电子设备
CN104011690A (zh) * 2011-12-29 2014-08-27 英特尔公司 具有直接存取的多级存储器
US20140281451A1 (en) * 2013-03-14 2014-09-18 International Business Machines Corporation Recovering from a defective boot image
US20150277977A1 (en) * 2014-04-01 2015-10-01 Samsung Electronics Co., Ltd. Method and system for providing stack memory management in real-time operating systems
CN105453066A (zh) * 2013-07-30 2016-03-30 三星电子株式会社 处理器和存储器控制方法
KR20170085286A (ko) * 2016-01-14 2017-07-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN107643943A (zh) * 2016-07-20 2018-01-30 大唐移动通信设备有限公司 一种任务栈的管理方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
CN101395578A (zh) * 2006-02-03 2009-03-25 拉塞尔·H·菲什三世 线程优化的多处理器架构
CN104011690A (zh) * 2011-12-29 2014-08-27 英特尔公司 具有直接存取的多级存储器
US20140281451A1 (en) * 2013-03-14 2014-09-18 International Business Machines Corporation Recovering from a defective boot image
CN103353851A (zh) * 2013-07-01 2013-10-16 华为技术有限公司 一种管理任务的方法和设备
CN105453066A (zh) * 2013-07-30 2016-03-30 三星电子株式会社 处理器和存储器控制方法
CN103793332A (zh) * 2014-02-28 2014-05-14 中国科学院微电子研究所 基于内存的数据存储方法、装置、处理器和电子设备
US20150277977A1 (en) * 2014-04-01 2015-10-01 Samsung Electronics Co., Ltd. Method and system for providing stack memory management in real-time operating systems
KR20170085286A (ko) * 2016-01-14 2017-07-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN107643943A (zh) * 2016-07-20 2018-01-30 大唐移动通信设备有限公司 一种任务栈的管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王亚、徐传飞、陈艳格: "基于内外存调度的长过程复杂事件检测" *

Also Published As

Publication number Publication date
CN111104062B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
Hildebrand et al. Autotm: Automatic tensor movement in heterogeneous memory systems using integer linear programming
US9940229B2 (en) Technologies for persistent memory programming
Tanase et al. The STAPL parallel container framework
US9098298B2 (en) Optimization method for compiler, optimizer for a compiler and storage medium storing optimizing code
Gent et al. Minion: A fast scalable constraint solver
US20150113512A1 (en) Speculative object representation
US20090106730A1 (en) Predictive cost based scheduling in a distributed software build
US20140047419A1 (en) Handling Pointers in Program Code in a System that Supports Multiple Address Spaces
CN102696012A (zh) 从代码使用中创建所推断的符号
US20110314459A1 (en) Compiler with user-defined type inference rules
WO2021057807A1 (zh) 深度学习模型生成方法、装置、设备及存储介质
CA2503184A1 (en) Transitional resolution in a just in time environment
US20100058305A1 (en) Automatic Generation of Language Bindings for Libraries Using Data from Compiler Generated Debug Information
JP2008003882A (ja) コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体
CN111104062B (zh) 存储管理方法、装置和存储介质
CN115586972B (zh) 命令生成方法、装置、ai芯片、电子设备及存储介质
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
US6907601B1 (en) Method and apparatus for inserting more than one allocation instruction within a routine
CN105393216B (zh) 运行时内存调节
CN109800086B (zh) 一种优化编译器ram空间的方法
JP2022140995A (ja) 情報処理装置、コンパイルプログラムおよびコンパイル方法
US20110179038A1 (en) Per-thread, per-instance data storage
US8271963B2 (en) Mimicking of functionality exposed through an abstraction
Oden et al. Implementation and Evaluation of CUDA-Unified Memory in Numba
CN115061738B (zh) 针对安卓组件化的业务模块初始化方法、设备及介质

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