CN111177025A - 数据存储方法、装置及终端设备 - Google Patents
数据存储方法、装置及终端设备 Download PDFInfo
- Publication number
- CN111177025A CN111177025A CN201911423231.2A CN201911423231A CN111177025A CN 111177025 A CN111177025 A CN 111177025A CN 201911423231 A CN201911423231 A CN 201911423231A CN 111177025 A CN111177025 A CN 111177025A
- Authority
- CN
- China
- Prior art keywords
- storage
- storage space
- data
- request
- data storage
- 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
Links
Images
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于数据处理技术领域,提供了数据存储方法、装置及终端设备,该数据存储方法包括:接收数据存储请求,数据存储请求包括所需存储空间和所需存储速度;在所需存储速度大于阈值,且内部存储空间中存在与所需存储空间对应的连续空间的情况下,在内部存储空间中为数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录第一存储空间已被占用。本申请通过为所需存储速度较高的数据存储请求在内部存储空间中分配对应的存储空间,能够充分利用内部存储空间以提升访问存储空间的速度,从而提高系统的数据存储能力,使得系统不会受限于“内存墙”问题。
Description
技术领域
本申请属于数据处理技术领域,尤其涉及数据存储方法、装置及终端设备。
背景技术
在人工智能芯片实现中,基于冯·诺伊曼体系结构,运算能力的提高相对数据存储能力的提高是比较容易实现的。其中,数据存储是基于片内存储器和片外存储器实现的,数据存储能力是指片内存储器和片外存储器存储数据的能力(如,存储速度、存储容量等)。然而,当数据存储能力无法匹配运算能力时,则会形成所谓的冯·诺伊曼“瓶颈”,或“内存墙”问题。
发明内容
为克服相关技术中的“内存墙”问题,本申请实施例提供了数据存储方法、装置及终端设备。
本申请是通过如下技术方案实现的:
第一方面,本申请实施例提供了一种数据存储方法,包括:
接收数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
在所述所需存储速度大于阈值,且内部存储空间中存在与所述所需存储空间对应的连续空间的情况下,在所述内部存储空间中为所述数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录所述第一存储空间已被占用。
可选的,所述所需存储速度包括存储周期数和/或每周期存储空间。
可选的,所述第一存储空间包括第一存储空间标识、第一存储起始位置和第一存储结束位置,基于该第一存储空间标识、第一存储起始位置和第一存储结束位置确定上述第一存储空间。
可选的,所述第一存储空间包括第一存储空间标识、第一存储起始位置和第一存储结束位置,可以根据该第一存储空间标识确定数据释放请求所需释放的存储空间为内部存储空间,根据第一存储起始位置和第一存储结束位置确定该内部存储空间中的存储区域,将确定出的存储区域进行释放。
第二方面,本申请实施例提供了一种数据存储方法,包括:
生成数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
将所述数据存储请求发送给控制端,所述数据存储请求用于请求所述控制端根据所述所需存储空间和所需存储速度分配目标存储空间;
生成数据释放请求,所述数据释放请求包括所述目标存储空间;
将所述数据释放请求发送给所述控制端,所述数据释放请求用于请求所述控制端释放所述目标存储空间。
第三方面,本申请实施例提供了一种数据存储装置,包括:
存储接收模块,用于接收数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
第一分配模块,用于在所述所需存储速度大于阈值,且内部存储空间中存在与所述所需存储空间对应的连续空间的情况下,在所述内部存储空间中为所述数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录所述第一存储空间已被占用。
第四方面,本申请实施例提供了一种数据存储装置,包括:
第一生成模块,用于生成数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
第一发送模块,用于将所述数据存储请求发送给控制端,所述数据存储请求用于请求所述控制端根据所述所需存储空间和所需存储速度分配目标存储空间;
第二生成模块,用于生成数据释放请求,所述数据释放请求包括所述目标存储空间;
第二发送模块,用于将所述数据释放请求发送给所述控制端,所述数据释放请求用于请求所述控制端释放所述目标存储空间。
第五方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的数据存储方法,或实现如第二方面所述的数据存储方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的数据存储方法,或实现如第二方面所述的数据存储方法。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的数据存储方法,或实现如第二方面所述的数据存储方法。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例,在所需存储速度大于阈值且内部存储空间中存在与所需存储空间对应的连续空间的情况下,在内部存储空间中为数据存储请求分配对应的第一存储空间,即,通过为所需存储速度较高的数据存储请求在内部存储空间中分配对应的存储空间,以让存储速度较高的数据能速快地进行存储,从而提高了数据存储能力,以使数据存储能力能与运算能力匹配,进而使得系统不会受限于“内存墙”问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的数据存储方法的应用场景示意图;
图2是本申请一实施例提供的数据存储方法的流程示意图;
图3是本申请一实施例提供的数据存储方法的流程示意图;
图4是本申请一实施例提供的数据存储方法的流程示意图;
图5是本申请一实施例提供的数据存储方法应用的系统的框架示意图
图6是本申请一实施例提供的数据存储方法的流程示意图;
图7是本申请一实施例提供的数据存储方法的流程示意图;
图8是本申请一实施例提供的数据存储方法的工作场景示意图;
图9是本申请一实施例提供的存储空间分配流程示意图;
图10是本申请一实施例提供的数据存储方法的流程示意图;
图11是本申请一实施例提供的请求端和控制端之间的数据交互流程图;
图12是本申请一实施例提供的数据存储装置的结构示意图;
图13是本申请一实施例提供的数据存储装置的结构示意图;
图14是本申请一实施例提供的终端设备的结构示意图;
图15是本申请一实施例提供的数据存储方法所适用于的计算机的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在人工智能芯片实现中,基于冯·诺伊曼体系结构,运算能力的提高相对数据存储能力的提高是比较容易实现的,而如果数据存储能力无法匹配运算能力时,则会形成所谓的冯·诺伊曼“瓶颈”,或“内存墙”问题。
其中,数据存储是基于片内存储器和片外存储器实现的,在上述片内存储器和片外存储器中进行数据存储时,通常是在整个片外存储器和片内存储器中的一固定存储空间进行数据存储。由于在片内存储器中存储数据的速度快于在片外存储器中存储数据的速度,而片内存储器中只有一部分存储空间是用于数据存储的,片内存储器的利用率较低导致数据存储的整体速度较慢,进而形成上述“内存墙”问题。
基于上述“内存墙”问题,本申请实施例提供一种数据存储方法、装置及终端设备,根据接收到的数据存储请求中的所需存储空间和所需存储速度,为对应的数据存储请求分配存储空间。具体地,在所需存储速度大于阈值且内部存储空间中存在与所需存储空间对应的连续空间的情况下,在内部存储空间中为数据存储请求分配对应的存储空间,否则,在外部存储空间中为数据存储请求分配对应的存储空间。本申请实施例通过为所需存储速度较高的数据存储请求在内部存储空间中分配对应的存储空间,能够充分利用内部存储空间为数据存储请求提供所需的存储空间,而访问内部存储空间的速度快于访问外部存储空间的速度,因此充分利用内部存储空间能够提升访问存储空间的速度,从而提高系统的数据存储能力,使得系统不会受限于“内存墙”问题导致计算能力无法充分利用,并且能够降低对外部存储空间的需求。
举例说明,本申请实施例可以应用到如图1所示的示例性场景中。在该场景中,请求端10可以将数据存储请求和数据释放请求发送给控制端20。控制端20根据数据存储请求中的所需存储空间和所需存储速度为各个数据存储请求分匹配对应的存储空间。其中,请求端10为至少一个,可以为一个也可以为多个,对应的,该请求端10可以生成至少一个数据存储请求并发送给控制端20,或者可以多个请求端10生成各自的数据存储请求后均发送给控制端20。
在上述场景中,请求端10可以为终端设备中需要申请存储空间的模块,例如CPU(Central Processing Unit,中央处理单元)、DSP(Digital Signal Processing,数字信号处理单元)等;控制端20可以为终端设备中的控制模块。上述终端设备可以为计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)、智能手机等终端设备,本申请实施例对终端设备的具体类型不作任何限制。
为了使本技术领域的人员更好地理解本发明方案,下面将结合图1,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2是本申请一实施例提供的数据存储方法的示意性流程图,该数据存储方法可以应用于控制端。参照图2,对该数据存储方法的详述如下:
在步骤101中,接收数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度。
其中,上述数据存储请求可以为需要申请存储空间的模块生成的请求,例如为终端设备中的CPU、DSP等。例如,上述模块在需要申请存储空间时,可以首先生成包括所需存储空间和所需存储速度的数据存储请求,发送给终端设备中的控制端。
本步骤中,上述所需存储空间用于表征该数据存储请求所需的存储空间的大小,上述所需存储速度用于表征对该数据存储请求对应的数据进行存储所需的存储速度,其中所需存储速度越大,该数据存储请求所需的存储需求越高,所需存储速度越小,该数据存储请求所需的存储需求越低。
示例性的,由于存储器是以循环周期的形式对数据进行存储的,因此所需存储速度可以包括存储周期数,根据所需存储空间和该存储周期数可以确定数据存储请求的KBPC(Kilobyte per cycle,每个存储周期所需的存储空间),KBPC为对该数据存储请求对应的数据进行存储时,每个存储周期所需提供的存储空间的大小,其中KBPC越大说明对该数据存储请求对应的数据进行存储所需的存储速度越高,KBPC越小说明对该数据存储请求对应的数据进行存储所需的存储速度越低。
其中,内部存储空间的存储速度相对于外部存储空间的存储速度较快,即内部存储空间在每个存储周期能够提供的存储空间,要大于外部存储空间在每个存储周期能够提供的存储空间。可以理解的,通常外部存储空间相对于内部存储空间较大,但是对于存储一定大小的数据得情况下,外部存储空间需要的存储周期数要多于内部存储空间需要的存储周期数。
另外,所需存储速度也可以包括每个存储周期所需的存储空间KBPC,或所需存储速度也可以包括存储周期数和每个存储周期所需的存储空间KBPC,本申请实施例对此不予限定。
在步骤103中,在上述所需存储速度大于阈值,且内部存储空间中存在与上述所需存储空间对应的连续空间的情况下,在上述内部存储空间中为所述数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录上述第一存储空间已被占用。
其中,上述所需存储速度大于阈值说明对应的数据存储请求所需的存储需求较高,而内部存储空间相对于外部存储空间,由于不依赖于带宽,所以会有更快的存储速度,因此可以在内存储空间中为该数据存储请求分配存储空间。此时,如果内部存储空间中也存在与上述所需存储空间对应的连续空间,就可以在内部存储空间中为该数据存储请求分配对应的存储空间。本申请实施例,通过对所需存储速度较大的数据存储请求在内部存储空间中分配一存储空间进行数据存储,能够充分利用内部存储空间对所需存储速度较大的数据进行存储,而不仅仅是利用内部存储空间中的一固定存储空间存储数据,而且所需存储速度较大的数据在内部存储空间中的存储速度快于在外部存储空间中的存储速度,因此能够极大的提高数据存储能力,使得系统不会受限于“内存墙”的问题,并且能够降低对外部存储空间的需求。本步骤中,第一分配表格信息可以用于记录内部存储空间中已被占用存储空间和可用存储空间的情况,在为数据存储请求分配了第一存储空间之后,可以将该第一存储空间记录在第一分配表格信息中,以备之后为其他数据存储请求分配存储空间之前,通过该第一分配表格信息确认内部存储空间中的可用存储空间。
示例性的,所述第一存储空间可以包括第一存储空间标识、第一存储起始位置和第一存储结束位置,基于该第一存储空间标识、第一存储起始位置和第一存储结束位置确定上述第一存储空间。其中,上述第一存储空间标识表征内部存储空间,例如可以表征静态随机存取存储器(static RAM,SRAM)对应的存储空间。
需要说明的是,上述阈值可以根据实际需要进行设定,对于不同的系统该阈值可以不同,对于同一系统在不同的时间段该阈值可以不同,本申请实施例对此不予限定。
参见图3,基于图2所示的实施例,上述数据存储方法还可以包括:
在步骤105中,在上述所需存储速度小于等于阈值,或上述内部存储空间中不存在与上述所需存储空间对应的连续空间的情况下,在外部存储空间中为上述数据存储请求分配对应的第二存储空间,并在第二分配表格信息中记录上述第二存储空间已被占用。
其中,上述所需存储速度小于阈值说明对应的数据存储请求所需的存储需求不高,而内部存储空间相对外部存储空间较小,存储空间有限,因此可在外部存储空间为该数据存储请求分配一存储空间,将内部存储空间留给所需存储速度较大的数据存储请求,从而能够在提高提高内部存储空间的利用率的同时,尽可能用内部存储空间存储所需存储速度较大的数据存储请求对应的数据,进而能够尽可能地提高系统的计算能力。本步骤中,第二分配表格信息可以用于记录外部存储空间中已被占用存储空间和可用存储空间的情况,在为数据存储请求分配了第二存储空间之后,可以将该第二存储空间记录在第二分配表格信息中,以备之后为其他数据存储请求分配存储空间之前,通过该第二分配表格信息确认外部存储空间中的可用存储空间。
示例性的,所述第二存储空间可以包括第二存储空间标识、第二存储起始位置和第二存储结束位置,基于该第二存储空间标识、第二存储起始位置和第二存储结束位置确定上述第二存储空间。其中,上述第二存储空间标识表征外部存储空间,例如可以表征双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)对应的存储空间。
参见图4,基于图2所示的实施例,在步骤101之后,上述数据存储方法还可以包括:
在步骤102中,将接收到的各个数据存储请求预存到存储空间申请队列中。
其中,执行步骤103之前,从上述存储空间申请队列中读取上述数据存储请求。
本实施例中,设置一存储空间申请队列,用于存储请求端发送来的各个数据存储请求,而控制端可以在执行步骤103之前,从该存储空间申请队列中读取数据存储请求,而不需要控制端对接收到的数据存储请求实时分配存储空间,降低控制端的处理压力。
示例性的,上述存储空间申请队列可以为先进先出队列,上述从上述存储空间申请队列中读取上述数据存储请求,具体可以为:控制端可以按照先进先出的规则从该存储空间申请队列中依次读取数据存储请求,然后执行步骤103。
示例性的,每个数据存储请求可以对应有优先级,各个数据存储请求的优先级不尽相同;上述从上述存储空间申请队列中读取上述数据存储请求,具体可以为:按照上述存储空间申请队列中各个数据存储请求的优先级的顺序,依次读取各个数据存储请求,执行步骤103。
具体地,控制端可以首先检测该存储空间申请队列是否为非空队列,在该存储空间申请队列为非空队列的情况下,按照先进先出的规则或优先级的顺序从该存储空间申请队列中依次读取数据存储请求,然后执行步骤103,在该存储空间申请队列为空队列的情况下,则不需执行后续步骤。
参见图5,在请求端向控制模块(controller unit,CU)发送数据存储请求后,控制模块CU将该数据存储请求预存至存储空间申请队列中;控制模块CU从存储空间申请队列中依次读取数据存储请求,根据该数据存储请求的所需存储空间和所需存储速度为其分配存储空间,为该请求端发送内存授权。具体地,在为该数据存储请求分配到内部存储空间中的一存储空间后,在第一分配表格信息中记录该存储空间,在为该数据存储请求分配到外部存储空间中的一存储空间后,在第二分配表格中记录该存储空间。
示例性的,内部存储空间可以为片内存储空间,例如可以为SRAM的存储空间;第一分配表格信息可以为与片内存储空间对应的分配表格信息,例如可以为与SRAM对应的分配表格信息。
另外,图5中的PM(program memory)为控制模块CU的指令存储器,CM(controllerunit data memory)为控制模块CU的数据存储器。
参见图6,基于图2所示的实施例,上述数据存储方法还可以包括:
在步骤107中,接收数据释放请求,所述数据释放请求包含对应的存储空间。
其中,上述对应的存储空间可以为第一存储空间,或第二存储空间。
具体地,在根据步骤103为请求端的数据存储请求分配第一存储空间之后,请求端可以将与该数据存储请求对应的任务产生的数据存放在上述第一存储空间之中;在完成上述任务之后,请求端可以向控制端发送请求控制端释放该第一存储空间的数据释放请求,以便于及时为其他数据存储请求让出内部存储空间。
也可以根据步骤105为请求端的数据存储请求分配第二存储空间之后,请求端可以将与该数据存储请求对应的任务产生的数据存放在上述第一存储空间之中,或第二存储空间之中;在完成上述任务之后,请求端可以向控制端发送请求控制端释放该第一存储空间的数据释放请求,以便于及时为其他数据存储请求让出内部存储空间,或请求端可以向控制端发送请求控制端释放该第二存储空间的数据释放请求,以便于及时为其他数据存储请求让出外部存储空间,。
需要说明的是,在步骤103中可以为多个满足步骤103中要求的数据存储请求分配对应的第一存储空间,而在本步骤中,每个数据释放请求可以对应一个第一存储空间。同样的,在步骤105中可以为多个满足步骤105中要求的数据存储请求分配对应的第二存储空间,而在本步骤中,每个数据释放请求可以对应一个第二存储空间。
在步骤109中,根据所述数据释放请求,将对应的存储空间释放,并在对应的分配表格信息中记录所述存储空间未被占用。
其中,上述对应的分配表格信息可以为第一分配表格信息或第二分配表格信息。在步骤107中的存储空间为第一存储空间时,这里的分配表格即为第一分配表格信息;在步骤107中的存储空间为第二存储空间时,这里的分配表格即为第二分配表格信息。
一种可能的实施方式中,可以提取数据释放请求中所包含的第一存储空间,然后将内部存储空间中与该第一存储空间对应的数据释放。
具体地,所述第一存储空间可以包括第一存储空间标识、第一存储起始位置和第一存储结束位置,因此可以根据该第一存储空间标识确定数据释放请求所需释放的存储空间为内部存储空间,再根据第一存储起始位置和第一存储结束位置确定内部存储空间中的存储区域,最后将确定出的存储区域进行释放。
本步骤中,在将内部存储空间中与该第一存储空间对应的数据释放之后,可以将第一存储空间已被释放记录在第一分配表格信息中,表示该第一存储空间未被占用,能够再次被划分为其他数据存储请求对应的存储空间,以备之后为其他数据存储请求分配存储空间之前,通过该第一分配表格信息确认内部存储空间中的可用存储空间。
一种可能的实施方式中,也可以提取数据释放请求中所包含的第二存储空间,然后将外部存储空间中与该第二存储空间对应的数据释放。
具体地,所述第二存储空间可以包括第二存储空间标识、第二存储起始位置和第二存储结束位置,因此可以根据该第二存储空间标识确定为外部存储空间,再根据第二存储起始位置和第二存储结束位置确定外部存储空间中的存储区域,最后将确定出的存储区域进行释放。
本步骤中,在将外部存储空间中与该第二存储空间对应的数据释放之后,可以将第二存储空间已被释放记录在第二分配表格信息中,表示该第二存储空间未被占用,能够再次被划分为其他数据存储请求对应的存储空间,以备之后为其他数据存储请求分配存储空间之前,通过该第二分配表格信息确认外部存储空间中的可用存储空间。
一些实施例中,基于图6所示的实施例,上述数据存储方法还可以包括:
将接收到的各个所述数据释放请求预存到存储空间释放队列中;
从所述存储空间申请队列中读取所述数据释放请求,并执行步骤109。
本实施例中,设置一存储空间释放队列,用于存储请求端发送来的各个数据释放请求,而控制端可以在执行步骤109之前,从该存储空间释放队列中读取数据释放请求,而不需要控制端对接收到的数据释放请求实时释放对应的存储空间,降低控制端的处理压力。
示例性的,上述存储空间释放队列可以为先进先出队列,上述从所述存储空间释放队列中读取所述数据释放请求,具体可以为:控制端可以按照先进先出的规则从该存储空间释放队列中依次读取数据释放请求,然后执行步骤109。
示例性的,每个数据释放请求也可以对应有优先级,各个数据释放请求的优先级不尽相同;上述从所述存储空间释放队列中读取所述数据释放请求,具体可以为:按照上述存储空间释放队列中各个数据释放请求的优先级的顺序,依次读取各个数据释放请求,执行步骤109。
具体地,控制端可以首先检测该存储空间释放队列是否为非空队列,在该存储空间释放队列为非空队列的情况下,按照先进先出的规则或优先级的顺序从该存储空间释放队列中依次读取数据释放请求,然后执行步骤109;而在该存储空间释放队列为空队列的情况下,则不需执行后续步骤。
参见图5,在请求端向控制模块CU发送数据释放请求后,控制模块CU将该数据释放请求预存至存储空间释放队列中;控制模块CU从存储空间释放队列中依次读取数据释放请求,为该请求端发送内存授权,并对读取的数据释放请求所包含的存储空间进行释放。具体地,可以在对该数据释放请求对应的第一存储空间释放后,在第一分配表格信息中记录该第一存储空间未被占用,可以在对该数据释放请求对应的第二存储空间释放后,在第二分配表格中记录该第二存储空间未被占用。
一些实施例中,所述所需存储空间可以包括工作存储空间和结果存储空间,所述数据存储请求可以包括至少一在先数据存储请求和一在后数据存储请求;其中,所述在先数据存储请求的结果存储空间中存储的数据,为所述在后数据存储请求对应的数据存储工作所需的数据。
参见图7,上述数据存储方法还可以包括:
在步骤201中,接收请求端在上述在先数据请求对应的数据存储工作完成后发送的第一数据释放请求。
在步骤202中,根据所述第一数据释放请求,将所述在先数据存储请求对应的工作存储空间释放。
在步骤203中,在所述在后数据请求对应的数据存储工作完成后,接收第二数据释放请求。
在步骤204中,根据所述第二数据释放请求,将所述在先数据存储请求对应的结果存储空间和所述在后数据存储请求对应的工作存储空间。
其中,第二数据释放请求可以为请求端发出的,也可以为控制端发出的,还可以为其他装置发出的,本申请实施例对此不予限定。
示例性的,以CPU、DSP和NN0为例对图7所示的实施例进行说明。图8为以CPU、DSP和NN0为例的工作场景示意图,本实施例中,工作任务链条为CPU先工作,然后再把第一输出结果给DSP,DSP基于该第一输出结果继续工作,DSP完成之后再将第二输出结果给NN0,由NN0来完成后续的工作。
首先,在T1时刻,CPU需要为自己负责的任务申请一块CPU工作存储空间,并为第一输出结果申请一块CPU结果存储空间,那么CPU则生成两份数据存储请求发送给控制端。控制端根据两份数据存储请求为CPU分配一CPU工作存储空间和一CPU结果存储空间。CPU工作完成之后产生的第一输出结果存储在CPU结果存储空间中,然后可以给控制端发送CPU工作存储空间释放请求,并通知DSP开始工作。控制端根据CPU工作存储空间释放请求释放CPU工作存储空间。
DSP为自己负责的任务申请一块DSP工作存储空间,并为第二输出结果申请一块DSP结果存储空间,那么DSP则生成两份数据存储请求发送给控制端。控制端根据两份数据存储请求为DSP分配一DSP工作存储空间和一DSP结果存储空间。DSP基于CPU结果存储空间存放的第一输出结果完成工作之后,生成第二输出结果存储在DSP结果存储空间中,然后可以给控制端发送DSP工作存储空间释放请求和CPU结果存储空间释放请求,并通知NN0开始工作。控制端根据DSP工作存储空间释放请求释放DSP工作存储空间和CPU结果存储空间。
NN0为自己负责的任务申请一块NN0工作存储空间,并为第三输出结果申请一块NN0结果存储空间,那么NN0则生成两份数据存储请求发送给控制端。控制端根据两份数据存储请求为NN0分配一NN0工作存储空间和一NN0结果存储空间。NN0基于DSP结果存储空间存放的第二输出结果完成工作之后,生成第三输出结果存储在NN0结果存储空间中。其中,在NN0完成工作之后整个工作任务链条完成,然后可以给控制端发送DSP结果存储空间释放请求和NN0工作存储空间释放请求,并通知CPU数据存储工作已完成。控制端根据DSP工作存储空间释放请求和NN0工作存储空间释放请求释放DSP工作存储空间和NN0工作存储空间。
另外,CPU在获知数据存储工作已完成后,可以给控制端发送NN0结果存储空间释放请求;控制端根据NN0结果存储空间释放请求释放NN0结果存储空间。
图9为本申请实施例提供的存储空间分配流程示意图,参见图9,填充部分表示已授权分配的存储空间,也即被占用的存储空间,未填充部分表示暂未使用的存储空间,也即能够分配的存储空间。
上述在内部存储空间中为所述数据存储请求分配对应的第一存储空间,可以包括:
步骤A1,按照内部存储空间的存储地址的顺序,获取内部存储空间中的可用连续存储区域,检测获取到的可用连续存储区域的大小是否能够满足该数据存储请求中所需存储空间的大小;
步骤B1,在可用连续存储区域的大小能够满足该数据存储请求中所需存储空间的大小的情况下,在该可用连续存储区域中为该数据存储请求分配第一存储空间;
步骤C1,在可用连续存储区域的大小不能够满足该数据存储请求中所需存储空间的大小的情况下,获取内部存储空间中的下一可用连续存储区域,并执行步骤A1中的检测获取到的可用连续存储区域的大小是否能够满足该数据存储请求中所需存储空间的大小的步骤;
其中,在所述内部存储空间不存在可用连续存储区域能够为该数据存储请求分配第一存储空间的情况下,等待数据释放请求,并在执行一数据释放请求之后,继续执行A1至步骤C1。
上述在外部存储空间中为所述数据存储请求分配对应的第二存储空间,可以包括:
步骤A2,按照外部存储空间的存储地址的顺序,获取外部存储空间中的可用连续存储区域,检测获取到的可用连续存储区域的大小是否能够满足该数据存储请求中所需存储空间的大小;
步骤B2,在可用连续存储区域的大小能够满足该数据存储请求中所需存储空间的大小的情况下,在该可用连续存储区域中为该数据存储请求分配第二存储空间;
步骤C2,在可用连续存储区域的大小不能够满足该数据存储请求中所需存储空间的大小的情况下,获取外部存储空间中的下一可用连续存储区域,并执行步骤A2中的检测获取到的可用连续存储区域的大小是否能够满足该数据存储请求中所需存储空间的大小的步骤;
其中,在所述外部存储空间不存在可用连续存储区域能够为该数据存储请求分配第二存储空间的情况下,等待数据释放请求,并在执行一数据释放请求之后,继续执行A2至步骤C2。
具体地,初始化的时候,整个存储空间{0,1024}共1024KB均为待分配状态;其中,该存储空间可以为内部存储空间,也可以为外部存储空间,本申请实施例对此不予限定;
在T0时刻,模块1申请100KB的存储空间,控制端为模块1的申请分配100KB的存储空间,例如为{0,100},在T1时刻对应的存储空间的示意图中,该100KB的存储空间为填充态;
在T1时刻,模块2申请250KB的存储空间,由于该存储空间的剩余可存储空间足够,则为模块2的申请分配250KB的存储空间,模块2的存储空间可以与模块1的100KB的存储空间相邻,例如为{101,350};在T2时刻对应的存储空间的示意图中,该250KB的存储空间为填充态;
在T2时刻,模块3申请195KB的存储空间,由于该存储空间的剩余可存储空间足够,则为模块3的申请分配195KB的存储空间,模块3的存储空间可以与模块2的250KB的存储空间相邻,例如为{351,545};在T3时刻对应的存储空间的示意图中,该195KB的存储空间为填充态;
在T3时刻,模块2申请的250KB的存储空间被模块2申请释放,该250KB的存储空间被记录为释放状态(未填充态,参见T4时刻存储空间的示意图);
在T4时刻,模块4申请261KB的存储空间,由于T3时刻释放的250KB的存储空间不满足模块4申请的261KB的存储空间,则从为模块3分配的195KB的存储空间之后给模块4分配261KB的存储空间,例如为{546,806};在T2时刻对应的存储空间的示意图中,该261KB的存储空间为填充态;
在T5时刻,模块3申请的195KB的存储空间被模块3申请释放,该195KB的存储空间被记录为释放状态;在T6时刻对应的存储空间的示意图中,该95KB的存储空间为未填充态;
T6时刻对应的存储空间的示意图中,445KB和218KB对应的存储区域能够为其他数据存储请求分配存储空间。
本实施例中,为一个数据存储请求分配一个连续的存储空间便于进行数据存储和读取,而且实现简单;根据数据释放请求释放不用的存储空间,能够及时为其他数据存储请求提供存储空间,提高存储空间的利用率。
图10是本申请一实施例提供的数据存储方法的示意性流程图,该数据存储方法可以应用于请求端。参照图10,对该数据存储方法的详述如下:
在步骤301中,生成数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度。
其中,上述数据存储请求可以为需要申请存储空间的模块生成的请求,例如可以为终端设备中的CPU、DSP等。例如,上述模块在需要申请存储空间时,可以首先生成包括所需存储空间和所需存储速度的数据存储请求,发送给终端设备中的控制端。
本步骤中,上述所需存储空间用于表征该数据存储请求所需的存储空间的大小,上述所需存储速度用于表征对该数据存储请求对应的数据进行存储所需的存储速度,其中所需存储速度越大,该数据存储请求所需的存储需求越高,所需存储速度越小,该数据存储请求所需的存储需求越低。
示例性的,由于存储器是以循环周期的形式对数据进行存储的,因此所需存储速度可以包括存储周期数,根据所需存储空间和该存储周期数可以确定数据存储需求的KBPC,KBPC为对该数据存储请求对应的数据进行存储时,每个存储周期所需提供的存储空间的大小,其中KBPC越大说明对该数据存储请求对应的数据进行存储所需的存储需求越高,KBPC越小说明对该数据存储请求对应的数据进行存储所需的存储需求越低。
其中,内部存储空间的存储速度相对于外部存储空间的存储速度较快,即内部存储空间在每个存储周期能够提供的存储空间,要大于外部存储空间在每个存储周期能够提供的存储空间。可以理解的,通常外部存储空间相对于内部存储空间较大,但是对于存储一定大小的数据得情况下,外部存储空间需要的存储周期数要多于内部存储空间需要的存储周期数。
另外,所需存储速度也可以包括每周期存储空间,或所需存储速度也可以包括存储周期数和每周期存储空间,本申请实施例对此不予限定。
在步骤302中,将所述数据存储请求发送给控制端,所述数据存储请求用于请求所述控制端根据所述所需存储空间和所需存储速度分配目标存储空间。
其中,控制端根据上述所需存储空间和所需存储速度分配目标存储空间的过程,本步骤中不作详细说明,具体过程可以参考前述应用于控制端的数据存储方法的实施例中的相关内容。
需要说明的是,本步骤中的目标存储空间可以包括前述的第一存储空间,也可以包括前述的第二存储空间,也可以包括前述的第一存储空间和第二存储空间,本申请实施例对此不予限定。
在步骤303中,生成数据释放请求,所述数据释放请求包括所述目标存储空间。
其中,在控制端为请求端的数据存储请求分配目标存储空间之后,请求端可以将与该数据存储请求对应的任务产生的数据存放在上述目标存储空间之中;在完成上述任务之后,请求端可以向控制端发送请求控制端释放该目标存储空间的数据释放请求,以便于及时为其他数据存储请求让出存储空间。
在步骤304中,将所述数据释放请求发送给所述控制端,所述数据释放请求用于请求所述控制端释放所述目标存储空间。
其中,控制端根据上述目标存储空间释放对应的存储空间的过程,本步骤中不作详细说明,具体过程可以参考前述应用于控制端的数据存储方法的实施例中的相关内容。
上述数据存储方法,在所需存储速度大于阈值且内部存储空间中存在与所需存储空间对应的连续空间的情况下,在内部存储空间中为数据存储请求分配对应的存储空间,否则,在外部存储空间中为数据存储请求分配对应的存储空间,通过对所需存储速度较大的数据存储请求在内部存储空间中分配一存储空间进行数据存储,能够充分利用内部存储空间对所需存储速度较大的数据进行存储,而不仅仅是利用内部存储空间中的一固定存储空间存储数据,而且所需存储速度较大的数据在内部存储空间中的存储速度快于在外部存储空间中的存储速度,因此能够极大的提高数据存储能力,使得系统不会受限于“内存墙”的问题,并且能够降低对外部存储空间的需求。
图11是本申请一实施例提供的控制端和请求端之间的数据交互流程图,参照图11,对该数据交互过程详述如下:
在步骤401中,请求端生成数据存储请求,该数据存储请求包括所需存储空间和所需存储速度;
在步骤402中,请求端将该数据存储请求发送给控制端;其中,该请求端可以生成至少一个数据存储请求并发送给控制端,或者可以多个请求端生成各自的数据存储请求后均发送给控制端;
在步骤403中,控制端将接收到的各个数据存储请求预存到存储空间申请队列中;
在步骤404中,控制端从存储空间申请队列中读取数据存储请求;
在步骤405中,控制端在所需存储速度大于阈值,且内部存储空间中存在与所需存储空间对应的连续空间的情况下,在内部存储空间为数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录第一存储空间已被占用;
在步骤406中,控制端在所需存储速度小于等于阈值,或内部存储空间不存在与所需存储空间对应的连续空间的情况下,在外部存储空间为数据存储请求分配对应的第二存储空间,并在第二分配表格信息中记录第二存储空间已被占用;
在步骤407中,请求端生成数据释放请求,所述数据释放请求包括所述目标存储空间;
在步骤408中,请求端发送数据释放请求给控制端;其中,该请求端可以生成至少一个数据释放请求并发送给控制端,或者可以多个请求端生成各自的数据释放请求后均发送给控制端;
在步骤409中,控制端将接收到的各个所述数据释放请求预存到存储空间释放队列中;
在步骤410中,控制端从存储空间释放队列中读取数据释放请求;
在步骤411中,控制端根据数据释放请求,将对应的第一存储空间释放,并在第一分配表格信息中记录第一存储空间未被占用,或将对应的第二存储空间释放,并在第二分配表格信息中记录第二存储空间违背占用。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的应用于控制端的数据存储方法,图12示出了本申请实施例提供的数据存储装置的结构框图,该数据存储装置可以用于控制端,为了便于说明,仅示出了与本申请实施例相关的部分。
参见图12,本申请实施例中的数据存储装置可以包括接收模块501和第一分配模块502。
其中,接收模块501,用于接收数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
第一分配模块502,用于在所述所需存储速度大于阈值,且内部存储空间中存在与所述所需存储空间对应的连续空间的情况下,在所述内部存储空间为所述数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录所述第一存储空间已被占用。
一些实施例中,基于图8所示的数据存储装置,上述装置还可以包括:
第一分配模块503,用于在所述所需存储速度小于等于阈值,或所述内部存储空间不存在与所述所需存储空间对应的连续空间的情况下,在外部存储空间为所述数据存储请求分配对应的第二存储空间,并在第二分配表格信息中记录所述第二存储空间已被占用。
一些实施例中,基于图12所示的数据存储装置,上述装置还可以包括:
申请队列存储模块,用于将接收到的各个所述数据存储请求预存到存储空间申请队列中,在对所述数据存储请求分配存储空间之前,从所述存储空间申请队列中读取所述数据存储请求。
一些实施例中,基于图12所示的数据存储装置,上述装置还可以包括:
第一释放接收模块,用于接收数据释放请求,所述数据释放请求包括对应的第一存储空间;
第一释放模块,用于根据所述数据释放请求,将对应的第一存储空间释放,并在所述第一分配表格信息中记录所述第一存储空间未被占用。
一些实施例中,基于图12所示的数据存储装置,上述装置还可以包括:
第二释放接收模块,用于接收数据释放请求,所述数据释放请求包括对应的第二存储空间;
第二释放模块,用于根据所述数据释放请求,将对应的第二存储空间释放,并在所述第二分配表格信息中记录所述第二存储空间未被占用。
一些实施例中,基于图12所示的数据存储装置,上述装置还可以包括:
释放队列存储模块,用于将接收到的各个所述数据释放请求预存到存储空间释放队列中;
释放读取模块,用于从所述存储空间申请队列中读取所述数据存储请求;
在所述释放读取模块读取所述诗句释放请求之后,所述第一释放模块执行所述根据所述数据释放请求,将对应的第一存储空间释放,并在所述第一分配表格信息中记录所述第一存储空间未被占用。
一些实施例中,所述所需存储空间包括工作存储空间和结果存储空间,所述数据存储请求包括至少一在先数据存储请求和一在后数据存储请求;其中,所述在先数据存储请求的结果存储空间中存储的数据,为所述在后数据存储请求对应的数据存储工作所需的数据。基于图12所示的数据存储装置,上述装置还可以包括:
第三释放接收模块,用于接收请求端在所述在先数据请求对应的数据存储工作完成后发送的第一数据释放请求;
第三释放模块,用于根据所述第一数据释放请求,将所述在先数据存储请求对应的工作存储空间释放;
第四释放接收模块,用于接收所述请求端在所述在后数据请求对应的数据存储工作完成后发送的第二数据释放请求;
第四释放模块,用于根据所述第二数据释放请求,将所述在先数据存储请求对应的结果存储空间和所述在后数据存储请求对应的工作存储空间释放。
对应于上文实施例所述的应用于请求端的数据存储方法,图13示出了本申请实施例提供的数据存储装置的结构框图,该数据存储装置可以用于请求端,为了便于说明,仅示出了与本申请实施例相关的部分。
参见图13,本申请实施例中的数据存储装置可以包括第一生成模块601、第一发送模块602、第二生成模块603和第二发送模块604。
其中,第一生成模块601,用于生成数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
第一发送模块602,用于将所述数据存储请求发送给控制端,所述数据存储请求用于请求所述控制端根据所述所需存储空间和所需存储速度分配目标存储空间;
第二生成模块603,用于生成数据释放请求,所述数据释放请求包括所述目标存储空间;
第二发送模块604,用于将所述数据释放请求发送给所述控制端,所述数据释放请求用于请求所述控制端释放所述目标存储空间。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种终端设备,参见图14,该终端设备700可以包括:至少一个处理器710、存储器720以及存储在所述存储器720中并可在所述至少一个处理器710上运行的计算机程序,所述处理器710执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图2所示实施例中的步骤101至步骤103,例如图10所示实施例中的步骤301至步骤304。或者,处理器710执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图12所示模块501至502的功能,例如图13所示模块601至604的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器720中,并由处理器710执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备700中的执行过程。
本领域技术人员可以理解,图14仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
处理器710可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器720可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器720用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器720还可以用于暂时地存储已经输出或者将要输出的数据。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请实施例提供的数据存储方法可以应用于智能手机、计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
以所述终端设备为计算机为例。图15示出的是与本申请实施例提供的计算机的部分结构的框图。参考图15,计算机包括:通信电路810、存储器820、输入单元830、显示单元840、音频电路850、无线保真(wireless fidelity,WiFi)模块860、处理器870以及电源880等部件。本领域技术人员可以理解,图15中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图15对计算机的各个构成部件进行具体的介绍:
通信电路810可用于收发信息或通话过程中,信号的接收和发送,给处理器870处理;另外,将图像采集指令发送给图像采集设备。通常,通信电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,通信电路810还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器820可用于存储软件程序以及模块,处理器870通过运行存储在存储器820的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元830可用于接收输入的数字或字符信息,以及产生与计算机的用户设置以及功能控制有关的键信号输入。具体地,输入单元830可包括触控面板831以及其他输入设备832。触控面板831,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板831上或在触控面板831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器870,并能接收处理器870发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板831。除了触控面板831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及计算机的各种菜单。显示单元840可包括显示面板841,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板841。进一步的,触控面板831可覆盖显示面板841,当触控面板831检测到在其上或附近的触摸操作后,传送给处理器870以确定触摸事件的类型,随后处理器870根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图15中,触控面板831与显示面板841是作为两个独立的部件来实现计算机的输入和输入功能,但是在某些实施例中,可以将触控面板831与显示面板841集成而实现计算机的输入和输出功能。
音频电路850可提供用户与计算机之间的音频接口。音频电路850可将接收到的音频数据转换后的电信号,传输到扬声器由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路850接收后转换为音频数据,再将音频数据输出处理器870处理后,经通信电路810以发送给比如另一计算机,或者将音频数据输出至存储器820以便进一步处理。
WiFi属于短距离无线传输技术,计算机通过WiFi模块860可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图15示出了WiFi模块860,但是可以理解的是,其并不属于计算机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器870是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理器870可包括一个或多个处理单元;优选的,处理器870可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器870中。
计算机还包括给各个部件供电的电源880(比如电池),优选的,电源880可以通过电源管理系统与处理器870逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述数据存储方法各个实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述数据存储方法各个实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,所揭露的装置/和方法仅仅是示意性的,可以通过其它的方式实现。例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中部分或者全部单元来实现本实施例方案。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
接收数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
在所述所需存储速度大于阈值,且内部存储空间中存在与所述所需存储空间对应的连续空间的情况下,在所述内部存储空间中为所述数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录所述第一存储空间已被占用。
2.如权利要求1所述的数据存储方法,其特征在于,所述方法还包括:
在所述所需存储速度小于等于阈值,或所述内部存储空间中不存在与所述所需存储空间对应的连续空间的情况下,在外部存储空间中为所述数据存储请求分配对应的第二存储空间,并在第二分配表格信息中记录所述第二存储空间已被占用。
3.如权利要求1或2所述的数据存储方法,其特征在于,在所述接收数据存储请求之后,所述方法还包括:
将接收到的各个所述数据存储请求预存到存储空间申请队列中,在对所述数据存储请求分配存储空间之前,从所述存储空间申请队列中读取所述数据存储请求。
4.如权利要求1或2所述的数据存储方法,其特征在于,所述方法还包括:
接收数据释放请求,所述数据释放请求包含对应的存储空间;
根据所述数据释放请求,将对应的存储空间释放,并在对应的分配表格信息中记录所述存储空间未被占用。
5.如权利要求4所述的数据存储方法,其特征在于,在所述接收数据释放请求之后,所述方法还包括:
将接收到的各个所述数据释放请求预存到存储空间释放队列中;
从所述存储空间申请队列中读取所述数据释放请求,并执行所述根据所述数据释放请求,将对应的存储空间释放,并在对应的分配表格信息中记录所述存储空间未被占用的步骤。
6.如权利要求1所述的数据存储方法,其特征在于,所述所需存储空间包括工作存储空间和结果存储空间,所述数据存储请求包括至少一在先数据存储请求和一在后数据存储请求;其中,所述在先数据存储请求的结果存储空间中存储的数据,为所述在后数据存储请求对应的数据存储工作所需的数据;
所述方法还包括:
接收请求端在所述在先数据请求对应的数据存储工作完成后发送的第一数据释放请求;
根据所述第一数据释放请求,将所述在先数据存储请求对应的工作存储空间释放;
在所述在后数据请求对应的数据存储工作完成后,接收第二数据释放请求;
根据所述第二数据释放请求,将所述在先数据存储请求对应的结果存储空间和所述在后数据存储请求对应的工作存储空间。
7.一种数据存储方法,其特征在于,包括:
生成数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
将所述数据存储请求发送给控制端,所述数据存储请求用于请求所述控制端根据所述所需存储空间和所需存储速度分配目标存储空间;
生成数据释放请求,所述数据释放请求包括所述目标存储空间;
将所述数据释放请求发送给所述控制端,所述数据释放请求用于请求所述控制端释放所述目标存储空间。
8.一种数据存储装置,其特征在于,包括:
存储接收模块,用于接收数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
第一分配模块,用于在所述所需存储速度大于阈值,且内部存储空间中存在与所述所需存储空间对应的连续空间的情况下,在所述内部存储空间中为所述数据存储请求分配对应的第一存储空间,并在第一分配表格信息中记录所述第一存储空间已被占用。
9.一种数据存储装置,其特征在于,包括:
第一生成模块,用于生成数据存储请求,所述数据存储请求包括所需存储空间和所需存储速度;
第一发送模块,用于将所述数据存储请求发送给控制端,所述数据存储请求用于请求所述控制端根据所述所需存储空间和所需存储速度分配目标存储空间;
第二生成模块,用于生成数据释放请求,所述数据释放请求包括所述目标存储空间;
第二发送模块,用于将所述数据释放请求发送给所述控制端,所述数据释放请求用于请求所述控制端释放所述目标存储空间。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911423231.2A CN111177025B (zh) | 2019-12-30 | 2019-12-30 | 数据存储方法、装置及终端设备 |
PCT/CN2020/124093 WO2021135574A1 (zh) | 2019-12-30 | 2020-10-27 | 数据存储方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911423231.2A CN111177025B (zh) | 2019-12-30 | 2019-12-30 | 数据存储方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111177025A true CN111177025A (zh) | 2020-05-19 |
CN111177025B CN111177025B (zh) | 2022-05-17 |
Family
ID=70650720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911423231.2A Active CN111177025B (zh) | 2019-12-30 | 2019-12-30 | 数据存储方法、装置及终端设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111177025B (zh) |
WO (1) | WO2021135574A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782561A (zh) * | 2020-09-07 | 2020-10-16 | 新华三半导体技术有限公司 | 一种sram的存储空间分配方法、装置及芯片 |
CN111913657A (zh) * | 2020-07-10 | 2020-11-10 | 长沙景嘉微电子股份有限公司 | 块数据读写方法、装置、系统及存储介质 |
CN112527205A (zh) * | 2020-12-16 | 2021-03-19 | 江苏国科微电子有限公司 | 一种数据安全防护方法、装置、设备及介质 |
CN112817543A (zh) * | 2021-02-24 | 2021-05-18 | 浙江大华技术股份有限公司 | 一种数据存储方法、系统、装置、设备及介质 |
WO2021135574A1 (zh) * | 2019-12-30 | 2021-07-08 | 深圳云天励飞技术股份有限公司 | 数据存储方法、装置及终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1289121A (zh) * | 1999-09-16 | 2001-03-28 | 三星电子株式会社 | 记录和再现多通道数据的方法和装置 |
CN101131871A (zh) * | 2006-08-24 | 2008-02-27 | 意法半导体股份有限公司 | 非易失性的电可编程存储器 |
CN103092534A (zh) * | 2013-02-04 | 2013-05-08 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN104239225A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN104951248A (zh) * | 2014-03-24 | 2015-09-30 | 三星电子株式会社 | 操作数据存储装置的方法和操作数据处理系统的方法 |
CN105161135A (zh) * | 2015-07-23 | 2015-12-16 | 柳州易旺科技有限公司 | 一种电子产品测试信息的存储方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547625B (zh) * | 2016-11-04 | 2021-01-12 | 深圳市证通电子股份有限公司 | 金融终端的内存分配方法及装置 |
US10852968B2 (en) * | 2018-05-07 | 2020-12-01 | Apple Inc. | Techniques for managing memory allocation within a storage device to improve operation of a camera application |
CN110083307A (zh) * | 2019-03-29 | 2019-08-02 | 华为技术有限公司 | 数据存储方法、存储器和服务器 |
CN111177025B (zh) * | 2019-12-30 | 2022-05-17 | 深圳云天励飞技术股份有限公司 | 数据存储方法、装置及终端设备 |
-
2019
- 2019-12-30 CN CN201911423231.2A patent/CN111177025B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/124093 patent/WO2021135574A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1289121A (zh) * | 1999-09-16 | 2001-03-28 | 三星电子株式会社 | 记录和再现多通道数据的方法和装置 |
CN101131871A (zh) * | 2006-08-24 | 2008-02-27 | 意法半导体股份有限公司 | 非易失性的电可编程存储器 |
CN103092534A (zh) * | 2013-02-04 | 2013-05-08 | 中国科学院微电子研究所 | 一种内存结构的调度方法和装置 |
CN104951248A (zh) * | 2014-03-24 | 2015-09-30 | 三星电子株式会社 | 操作数据存储装置的方法和操作数据处理系统的方法 |
CN104239225A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种管理异构混合内存的方法及装置 |
CN105161135A (zh) * | 2015-07-23 | 2015-12-16 | 柳州易旺科技有限公司 | 一种电子产品测试信息的存储方法 |
Non-Patent Citations (2)
Title |
---|
刘军等: "《精通STM32F4 寄存器版第2版》", 31 March 2019 * |
生拥宏: "基于混合存储结构的卷级连续数据保护系统", 《清华大学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135574A1 (zh) * | 2019-12-30 | 2021-07-08 | 深圳云天励飞技术股份有限公司 | 数据存储方法、装置及终端设备 |
CN111913657A (zh) * | 2020-07-10 | 2020-11-10 | 长沙景嘉微电子股份有限公司 | 块数据读写方法、装置、系统及存储介质 |
CN111782561A (zh) * | 2020-09-07 | 2020-10-16 | 新华三半导体技术有限公司 | 一种sram的存储空间分配方法、装置及芯片 |
CN111782561B (zh) * | 2020-09-07 | 2020-12-04 | 新华三半导体技术有限公司 | 一种sram的存储空间分配方法、装置及芯片 |
CN112527205A (zh) * | 2020-12-16 | 2021-03-19 | 江苏国科微电子有限公司 | 一种数据安全防护方法、装置、设备及介质 |
CN112817543A (zh) * | 2021-02-24 | 2021-05-18 | 浙江大华技术股份有限公司 | 一种数据存储方法、系统、装置、设备及介质 |
CN112817543B (zh) * | 2021-02-24 | 2023-06-02 | 浙江大华技术股份有限公司 | 一种数据存储方法、系统、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111177025B (zh) | 2022-05-17 |
WO2021135574A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177025B (zh) | 数据存储方法、装置及终端设备 | |
CN110198275B (zh) | 一种流量控制方法、系统、服务器及存储介质 | |
EP3404538B1 (en) | Data processing method, and data processing apparatus | |
CN109542614B (zh) | 资源配置方法、装置、终端及存储介质 | |
CN109213596B (zh) | 一种分配终端内存的方法和设备 | |
CN110704202B (zh) | 多媒体录制数据共享方法及终端设备 | |
CN110609748B (zh) | 一种内存分配方法、电子设备及存储介质 | |
CN106776036A (zh) | 一种资源分配方法及装置 | |
CN112445725A (zh) | 预读取文件页的方法、装置和终端设备 | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
WO2019072020A1 (en) | METHOD FOR MANAGING NETWORK BANDWIDTH, TERMINAL AND COMPUTER RECORDING MEDIUM | |
CN106708554A (zh) | 程序运行方法及装置 | |
WO2018188278A1 (zh) | 一种内存资源的分配方法及终端设备 | |
WO2014183417A1 (zh) | 管理内存的方法、装置和系统 | |
WO2018161543A1 (zh) | 指纹处理资源的控制方法及设备 | |
CN109992399B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN110705497A (zh) | 图像帧处理方法、装置、终端设备及计算机可读存储介质 | |
CN111278051A (zh) | 文件传输方法、装置、存储介质及电子设备 | |
CN109274534B (zh) | 一种网络切片的监管方法及设备、通信系统 | |
WO2019137173A1 (zh) | 资源管理方法、移动终端及计算机可读存储介质 | |
CN111338745A (zh) | 一种虚拟机的部署方法、装置及智能设备 | |
CN103793267A (zh) | 队列的访问方法及装置 | |
WO2019072179A1 (zh) | 应用程序运行控制方法及装置 | |
CN112068965A (zh) | 数据处理方法、装置、电子设备和可读存储介质 | |
WO2023030178A1 (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 | ||
CB02 | Change of applicant information |
Address after: 518000 1/F, 17 Building, Shenzhen Dayun Software Town, 8288 Longgang Avenue, Henggang Street, Longgang District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Yuntian lifeI Technology Co., Ltd Address before: 518000 1/F, 17 Building, Shenzhen Dayun Software Town, 8288 Longgang Avenue, Henggang Street, Longgang District, Shenzhen City, Guangdong Province Applicant before: SHENZHEN INTELLIFUSION TECHNOLOGIES Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |