CN102902629A - 存储空间映射方法及装置 - Google Patents
存储空间映射方法及装置 Download PDFInfo
- Publication number
- CN102902629A CN102902629A CN2012102046763A CN201210204676A CN102902629A CN 102902629 A CN102902629 A CN 102902629A CN 2012102046763 A CN2012102046763 A CN 2012102046763A CN 201210204676 A CN201210204676 A CN 201210204676A CN 102902629 A CN102902629 A CN 102902629A
- Authority
- CN
- China
- Prior art keywords
- variable
- storage area
- file
- function
- mapping relations
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种存储空间映射方法及装置。该方法包括:对源码进行解析,获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。根据本发明实施例提供的存储空间映射方法及装置,能够大幅缩减存储空间映射的开发工作量和维护成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储空间映射方法及装置。
背景技术
在一个计算机系统中,对存储器的容量、速度和价格这三个基本性能指标都有一定的要求。然而,这三个性能指标通常是互相矛盾的,仅仅采用一种技术组成单一的存储器无法同时满足这三个性能指标。因此,在现有技术中,通过采用由多级存储器组成的存储体系,把几种存储技术结合起来,来较好地解决存储器大容量、高速度和低成本这三者之间的矛盾。例如,在目前数字信号处理(Digital Signal Processing,DSP)嵌入式芯片开发中,通常都采用多级存储的方式将开发代码布署到不同级别的内存上,从而充分发挥各级内存在速度、容量、成本方面的优势,达到最优性价比。
目前的多级存储方式是通过在源码中增加节区属性的方式实现。具体地,预先定义一些节区,在用户编写的源码中,分别在各变量和函数前增加节区属性,即为各变量和函数配置一个节区,建立各变量和函数与节区的映射关系,并通过修改链接脚本建立节区与指定内存的映射关系,从而确定了源码中所涉及的各变量和函数在内存中的存储位置。
由于目前的多级存储方式实现过程中,需分别对每一个符号(变量或函数)进行设置,复杂度较高,而且在现有的嵌入式产品中,通常一套源码中的符号数以万计,因此导致开发工作量和维护成本极为庞大。
发明内容
本发明实施例提供一种存储空间映射方法及装置,用以克服现有技术中需为源码中的每一个变量或函数分别配置存储空间映射关系的缺陷,降低多级存储方式实现的复杂度,缩减开发工作量和维护成本。
一方面,本发明实施例提供一种存储空间映射方法,包括:
对源码进行解析,以获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;
获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;
根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。
一方面,本发明实施例提供一种存储空间映射装置,包括:
源码解析模块,用于对源码进行解析,以获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;
第一映射模块,用于获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;
第二映射模块,用于根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。
根据本发明实施例的存储空间映射方法及装置,通过对源码进行解析,获取源码中各函数和/或变量与文件或文件夹的归属关系,并根据为文件或文件夹配置的存储区域标识,建立归属于相应文件或文件夹内的函数和变量与存储区域标识的映射关系。因此,无需分别针对源码中的大量函数和变量进行单独配置,仅需以文件或文件夹进行配置,即可自动将所有函数和变量映射至指定的存储区域标识,从而映射至指定的存储空间,降低了多级存储方式实现的复杂度,缩减了开发工作量,并且易于修改,降低了维护成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的存储空间映射方法的流程示意图;
图2为一种多级存储系统的存储结构示意图;
图3为一个工程结构的示例;
图4为本发明一个实施例的存储空间映射装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明一个实施例的存储空间映射方法的流程示意图。具体地,如图1所示,该存储空间映射方法包括以下步骤:
步骤101,对源码进行解析,以获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;
步骤102,获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;
步骤103,根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。
具体地,以应用本实施例的存储空间映射方法,将工程文件映射存储至多级存储系统的存储空间这一应用场景为例,对本实施例的存储空间映射方法进行详细说明。该应用场景仅用作本发明技术方案的一个示例,而非对本发明的限制,本领域的技术人员能够理解,本发明的技术方案适用于任意需针对文件或文件夹中的函数和变量进行批量配置的应用场景,例如内联函数(inline)的调用等。
图2为一种多级存储系统的存储结构示意图。如图2所示,该多级存储系统例如包括L1层存储空间、L2层存储空间和双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,简称为DDR)。图3为一个工程结构的示例,如图3所示,该工程包括目录(即文件夹)hello 1和目录hello 2,目录hello 1中保存着文件hello 1.c,目录hello 2中保存着文件hello 2.c。下面结合图2和图3进行说明。
首先定义一些存储区域标识,这些存储区域标识并不指定存储区域中的实际存储空间。例如采取如下方式定义存储区域标识:
“#define L1_DATA_attribute_(section(“.l1.data”))”;
“#define L1_TEXT_attribute_(section(“.l2.text”))”;
“#define L2_DATA_attribute_(section(“.l1.data”))”;
“#define L2_TEXT_attribute_(section(“.l2.text”))”;
通过上述语句,定义了四个存储区域标识“L1_DATA”、“L1_TEXT”、“L2_DATA”、“L2T_EXT”,其中,“L1_DATA”用于表示L1层中用于存储变量的存储空间,“L1_TEXT”用于表示L1层中用于存储函数的存储空间,“L2_DATA”用于表示L2层中用于存储变量的存储空间,“L2_TEXT”用于表示L2层中用于存储函数的存储空间。
接下来,在文件(或文件夹)层面配置存储区域标识,即为各文件(或文件夹)分配一个存储区域标识,建立起文件(或文件夹)与存储区域标识的映射关系。例如,为文件hello 1.c配置“L1_DATA”和“L1_TEXT”,为hello 2.c配置“L2_DATA”和“L2_TEXT”。
读取用户编写的工程源码,通过词法和语法分析,获取到源码中的各函数和变量,以及各函数或变量的归属文件路径(即各函数或变量归属于哪个文件或哪个文件夹)。例如,读取工程源码后,获取工程源码中的两个源码文件hello 1.c和hello 2.c。其中,hello 1.c的源码文件例如为:
hello 2.c的源码文件例如为:
之后,根据各函数或变量所归属的文件(文件夹)对应的存储区域标识,建立各函数或变量与存储区域标识的映射关系。结合上述hello1.c和hello 2.c的示例,由于变量a、变量b、函数funa()、函数funb()和函数func()归属于文件hello1.c,因此,为变量a和变量b配置存储区域标识“L1_DATA”,为函数funa()、函数funb()和函数func()配置存储区域标识“L1_TEXT”;由于变量x、变量y、函数funx()、函数funy()和函数funz()归属于文件hello2.c,因此,为变量x和变量y配置存储区域标识“L2_DATA”,为函数funx()、函数funy()和函数funz()配置存储区域标识“L2_TEXT”。
完成上述函数或变量与存储区域标识的映射后,标识有函数或变量与存储区域标识的映射关系的hello 1.c的代码如下所示:
标识有函数或变量与存储区域标识的映射关系的hello 2.c的代码如下所示:
将上述标识有函数或变量与存储区域标识的映射关系的代码编译成可重定向文件,并通过修改链接脚本,建立存储区域标识与指定存储空间的映射关系。其中,编译为可重定向文件及修改链接脚本的方法与现有技术相同,故此处不再赘述。例如将链接脚本修改如下:
其中,L1TEXT_seg、L1DATA_seg、L2TEXT_seg和L2DATA_seg分别为指定的存储空间。
通过将可重定向文件与链接脚本一起链接,生成镜像文件,此时,确定了工程代码中各变量和函数部署在多级存储系统中的存储空间。各函数和变量到所述存储空间的映射既可以为函数和变量映射到单级存储空间中的具体存储地址的映射,也可以为函数和变量到多级存储空间中某一级存储空间的映射。其中,生成镜像文件的方法与现有技术相同,故此处不再赘述。例如,通过上述示例实现以下部署:将变量a和变量b部署在指定的存储空间L1DATA_seg中;将函数funa()、函数funb()和函数func()部署在指定的存储空间L1TEXT_seg中;将变量x和变量y部署在指定的存储空间L2DATA_seg中;将函数funx()、函数funy()和函数funz()部署在指定的存储空间L2TEXT_seg中。
根据上述实施例的存储空间映射方法,通过对源码进行解析,获取源码中各函数和/或变量与文件或文件夹的归属关系,并根据为文件或文件夹配置的存储区域标识,建立归属于相应文件或文件夹内的函数和变量与存储区域标识的映射关系。因此,无需分别针对源码中的大量函数和变量进行单独配置,仅需以文件或文件夹进行配置,即可自动将所有函数和变量映射至指定的存储区域标识,从而映射至指定的存储空间。降低了多级存储方式实现的复杂度,缩减了开发工作量,并且易于修改,降低了维护成本。
实施例二
在上述实施例一的基础上,所述获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系具体包括:
解析配置文件,根据预先建立的配置文件以及所述各函数和/或变量的归属文件和/或归属文件夹,建立所述各函数和/或变量与存储区域标识的映射关系,其中所述配置文件包括所述归属文件和/或归属文件夹与所述存储区域标识映射关系。
具体地,建立一个配置文件,在配置文件中建立并存储文件(或文件夹)与存储区域标识的映射关系。由于存储区域标识的配置粒度在文件级以上,每个文件(或文件夹)中同时包含函数和变量,因此在配置文件中分别针对文件中的变量和函数进行配置。
例如,建立如下配置文件:
其中,<file>代表文件级别的配置。上述配置文件为文件hello 1.c中的变量配置了存储区域标识L1_DATA;为文件hello 1.c中的函数配置了存储区域标识L1_TEXT;为文件hello 2.c中的变量配置了存储区域标识L2_DATA;为文件hello 2.c中的函数配置了存储区域标识L2_TEXT。建立上述配置文件后,当需进行存储空间映射时,通过解析配置文件来获取文件(或文件夹)与存储区域标识的映射关系,并结合通过解析源码获取的函数和/或变量与文件(或文件夹)的归属关系,即可建立各函数和/或变量与存储区域标识的映射关系。
进一步地,所述配置文件还包括:所述归属和/或所述归属文件夹中的指定函数和/或变量与存储区域标识的映射关系,其中所述指定函数和/或变量对应的存储区域标识,与所述指定函数和/或变量的归属文件和/或归属文件夹对应的存储区域标识不同;
相应地,所述根据预先建立的配置文件以及所述各函数和/或变量的归属文件和/或归属文件夹,建立所述各函数和/或变量与存储区域标识的映射关系,具体包括:
根据所述配置文件中,所述指定函数和/或变量对应的存储区域标识,建立所述指定函数和/或变量与存储区域标识的映射关系;
根据所述配置文件中,所述归属文件和/或所述归属文件夹对应的存储区域标识,建立其它各函数和/或变量与存储区域标识的映射关系,其中所述其它各函数和/或变量为所述归属文件和/或所述归属文件夹中,除所述指定函数和/或变量的函数和/或变量。
其中,指定函数和/或变量,可以为归属文件和/或归属文件夹中的任意函数和/或变量。更为具体地,配置文件中可进行不同粒度的配置,例如可同时对目录(即文件夹)、文件、函数和变量中的任意两个或两个以上级别进行配置。当存在两个或两个以上级别的配置时,粒度越小的优先级越高。
例如,建立如下配置文件:
其中,<folder>代表目录(方件夹)级别的配置,<file>代表文件级别的配置,<var>代表变量级别的配置,<func>代表函数级别的配置。上述配置文件为目录hello 1中的变量配置了存储区域标识L1_DATA;为目录hello 1中的函数配置了存储区域标识L1_TEXT;为文件hello 2.c中的变量配置了存储区域标识L2D_ATA;为文件hello 2.c中的函数配置了存储区域标识L2TEXT;为变量b配置了存储区域标识L2_DATA;为函数funy配置了存储区域标识L1_TEXT。
在根据上述配置文件建立函数和变量与存储区域标识的映射关系时,例如根据优先级由高至低的顺序进行映射。由于粒度越小的优先级越高,因此首先根据配置文件中指定的变量b和函数funy进行配置,即建立文件hello 1.c中的变量b与存储区域标识L2_DATA的映射关系,建立文件hello 2.c中的函数funy与存储区域标识L1_TEXT的映射关系。接下来,根据配置文件中的文件级配置建立相应函数和变量与存储区域标识的映射关系,但此时不对已建立映射关系的变量和函数的映射关系进行修改。结合上述示例,虽然为hello2.c中的函数配置了存储区域标识L2_TEXT,但由于配置文件中还为函数funy配置了存储区域标识L1_TEXT,虽然函数funy归属于文件hello 2.c,仍将函数funy映射至存储区域标识L1_TEXT,而将文件hello 2.c中的除函数funy之外的其它函数均映射至存储区域标识L2_TEXT。
由于目录hello 1中保存着文件hello 1.c,因此为目录hello 1的如上配置相当于为文件hello 1.c的配置,即将文件hello 1.c中的变量映射至存储区域标识L1D_ATA;将文件hello 1.c中的函数映射至存储区域标识L1_TEXT。此外,若目录hello 1中还保存着文件hello 3.c,且未在配置文件中对文件hello3.c进行单独配置,则对目录hello 1同样适用于文件hello 3.c;若对文件hello3.c进行单独配置,则根据对文件hello 3.c的单独配置建立文件hello 3.c中的函数和变量与存储区域标识的映射关系。
根据上述实施例的存储空间映射方法,通过在配置文件中进行不同粒度的存储区域标识配置,使得函数和变量与存储空间的映射更为灵活和多样。
进一步地,建立所述配置文件还包括:
在所述配置文件中,设置缺省存储区域标识;
相应地,若在所述配置文件中为部分所述归属文件和/或所述归属文件夹分配所述存储区域标识,则所述根据所述配置文件以及所述函数和/或变量的归属文件和/或归属文件夹,建立所述函数和/或变量与存储区域标识的映射关系还包括:
为所述源码中,归属于未分配有存储区域标识的文件和/或文件夹的函数和/或变量,建立与所述缺省存储区域标识的映射关系。
例如,在配置文件中例如采取如下方式设置缺省存储区域标识:
<default>
<item CodeSection=“DDR_TEXT”TextSection=“DDR_DATA”/>
</default>
通过上述配置,将存储区域标识DDR_TEXT设置为函数的缺省存储区域标识,将存储区域标识DDR_DATA设置为变量的缺省存储区域标识。若图3所示的目录hello 2中还包括文件hello 4.c,由于配置文件中仅配置了文件hello2.c对应的存储区域标识,而未针对目录hello 2进行配置,也未配置文件hello4.c对应的存储区域标识,则当解析配置文件,并根据配置文件建立源码中各变量和函数与存储区域标识的映射关系时,建立文件hello 4.c中的函数与存储区域标识DDR_TEXT的映射关系,并建立文件hello 4.c中的变量与存储区域标识DDR_DATA的映射关系。
根据上述实施例的存储空间映射方法,通过在配置文件中提供缺省存储区域标识,一方面,当存在大量无需特别指定存储区域标识的文件或文件夹时,能够有效缩减分别为各文件或文件夹分配存储区域标识所需工作量;另一方面,还能够在配置文件中遗漏部分文件或文件夹的存储区域标识映射时,确保函数和变量的成功映射。
实施例三
在上述实施例一的基础上,所述获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系,具体包括:
检测所述源码中是否携带有用于指示所述归属文件和/或归属文件夹与存储区域标识的映射关系的第一规则;
若是,则根据所述第一规则中所述归属文件和/或归属文件夹与存储区域标识的映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系。
具体地,对于文件级别的存储,可以无需建立配置文件,而是直接在源码中添加一个用于指示所述归属文件和/或归属文件夹与存储区域标识的映射关系的第一规则。更为具体地,例如借助#pragma关键字来表示第一规则,第一规则的格式例如为“#pragma section<存储区域标识>”。
例如,按照上述方式,将文件hello1.c映射至L1_DATA和L1_TEXT,则添加有第一规则的文件hello1.c的代码例如为:
此外,在上述代码中的第一规则中,也可仅携带存储区域标识L1_DATA和L1_TEXT中的任意一个。例如,第一规则为“#pragma section<L1_TEXT>”,则通过预先配置在建立所述函数和/或变量与所述存储区域标识的映射关系时执行容错功能,则将文件hello1.c中函数映射至存储区域标识L1_TEXT,并将文件hello1.c中变量映射至存储区域标识L1_DATA。
根据本实施例的存储空间映射方法,无需建立配置文件,仅通过在文件源码中增加一条指令即可为文件配置存储区域标识,进一步提高了存储空间映射的便捷性及效率。
进一步地,所述获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述归属文件和/或归属文件夹与存储区域标识的映射关系,建立所述函数和/或变量与所述存储区域标识的映射关系还包括:
在检测到所述第一规则后,检测所述源码中是否携带有用于指示指定函数和/或变量与存储区域标识的映射关系的第二规则,所述第二规则中所述指定函数和/或变量对应的存储区域标识,与所述第一规则中所述指定函数和/或变量的归属文件对应的存储区域标识不同;
若是,则根据所述第二规则,建立所述指定函数和/或变量与存储区域标识的映射关系;并根据所述第一规则,建立所述归属文件中,除所述指定函数和/或变量的其它各函数和/或变量与存储区域标识的映射关系。
具体地,除通过在源码中设置上述第一规则来指定文件与存储区域标识的映射关系之外,还可在源码中为某个函数或变量分配存储区域标识,该第二规则的实现方式例如与现有技术中直接针对函数或变量配置的方式相同,例如在指定的函数或变量前直接添加相应的存储区域标识,此处不再赘述。相应地,在建立函数和/或变量与存储区域标识的映射关系的过程中,若存在为指定函数或变量分配存储区域标识的第二规则,则根据第二规则建立指定函数或变量与存储区域标识的映射关系,对于文件中除指定函数或变量之外的函数或变量,则根据第一规则建立与存储区域标识的映射关系。
根据上述实施例的存储空间映射方法,使得函数和变量与存储空间的映射更为灵活、多样。
实施例四
本实施例提供一种用于执行上述实施例的存储空间映射方法的装置。
图4为本发明一个实施例的存储空间映射装置的结构示意图。如图4所示,该存储空间映射装置包括:
源码解析模块41,用于对源码进行解析,以获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;
第一映射模块42,用于获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;
第二映射模块43,用于根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。
本实施例的存储空间映射装置执行存储空间映射的流程与上述任一实施例的存储空间映射方法相同,故此处不再赘述。
根据本实施例的存储空间映射装置,通过对源码进行解析,获取源码中各函数和/或变量与文件或文件夹的归属关系,并根据为文件或文件夹配置的存储区域标识,建立归属于相应文件或文件夹内的函数和变量与存储区域标识的映射关系。因此,无需分别针对源码中的大量函数和变量进行单独配置,仅需以文件或文件夹进行配置,即可自动将所有函数和变量映射至指定的存储区域标识,从而映射至指定的存储空间。降低了多级存储方式实现的复杂度,,缩减了开发工作量,并且易于修改,降低了维护成本。
进一步地,所述第一映射模块包括:
第一映射单元,用于根据预先建立的配置文件以及所述各函数和/或变量的归属文件和/或归属文件夹,建立所述各函数和/或变量与存储区域标识的映射关系,其中所述配置文件包括所述归属文件和/或归属文件夹与所述存储区域标识映射关系。
进一步地,所述第一映射模块还包括:
配置文件建立单元,用于建立所述配置文件,并在所述配置文件中为所述归属文件和/或所述归属文件夹分配所述存储区域标识。
进一步地,所述配置文件还包括:所述归属和/或所述归属文件夹中的指定函数和/或变量与存储区域标识的映射关系,其中所述指定函数和/或变量对应的存储区域标识,与所述指定函数和/或变量的归属文件和/或归属文件夹对应的存储区域标识不同;
相应地,所述第一映射单元具体还用于:根据所述配置文件中,所述指定函数和/或变量对应的存储区域标识,建立所述指定函数和/或变量与存储区域标识的映射关系;根据所述配置文件中,所述归属文件和/或所述归属文件夹对应的存储区域标识,建立其它各函数和/或变量与存储区域标识的映射关系,其中所述其它各函数和/或变量为所述归属文件和/或所述归属文件夹中,除所述指定函数和/或变量的函数和/或变量。
根据上述实施例的存储空间映射装置,通过在配置文件建立单元建立的配置文件中进行不同粒度的存储区域标识配置,使得函数和变量到存储空间的映射更为灵活、多样。
进一步地,所述配置文件建立单元在所述配置文件中为部分所述归属文件和/或所述归属文件夹分配所述存储区域标识,并在所述配置文件中,设置缺省存储区域标识;
相应地,所述第一映射单元还用于:为所述源码中,归属于未分配有存储区域标识的归属文件和/或归属文件夹的函数和/或变量,建立与所述缺省存储区域标识的映射关系。
根据上述实施例的存储空间映射装置,通过在配置文件中提供缺省存储区域标识,一方面,当存在大量无需特别指定存储区域标识的文件或文件夹时,能够有效缩减分别为各文件或文件夹分配存储区域标识所需工作量;另一方面,还能够在配置文件中遗漏部分文件或文件夹的存储区域标识映射时,确保函数和变量的成功映射。
进一步地,所述第一映射模块包括:
第二映射单元,用于检测所述源码中是否携带有用于指示所述归属文件与存储区域标识的映射关系的第一规则;若是,则根据所述第一规则中所述归属文件与存储区域标识的映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系。
根据上述实施例的存储空间映射装置,无需建立配置文件,仅通过在文件源码中增加一条指令即可为文件配置存储区域标识,进一步提高了存储空间映射的便捷性及效率。
进一步地,所述第二映射单元还用于在检测到所述第一规则后,检测所述源码中是否携带有用于指示指定函数和/或变量与存储区域标识的映射关系的第二规则,所述第二规则中所述指定函数和/或变量对应的存储区域标识,与所述第一规则中所述指定函数和/或变量的归属文件对应的存储区域标识不同;若是,则根据所述第二规则,建立所述指定函数和/或变量与存储区域标识的映射关系;并根据所述第一规则,建立所述归属文件中,除所述指定函数和/或变量的其它各函数和/或变量与存储区域标识的映射关系。
根据上述实施例的存储空间映射装置,使得函数和变量与存储空间的映射更为灵活、多样。
进一步地,所述第二映射模块具体用于将所述各函数和/或变量映射到单级存储空间中的存储地址;或者将所述各函数和/或变量映射到多级存储空间中对应的一级存储空间。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种存储空间映射方法,其特征在于,包括:
对源码进行解析,以获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;
获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;
根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。
2.根据权利要求1所述的存储空间映射方法,其特征在于,所述获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系,具体包括:
根据预先建立的配置文件以及所述各函数和/或变量的归属文件和/或归属文件夹,建立所述各函数和/或变量与存储区域标识的映射关系,其中所述配置文件包括所述归属文件和/或归属文件夹与所述存储区域标识的映射关系。
3.根据权利要求2所述的存储空间映射方法,其特征在于,所述配置文件还包括:
所述归属和/或所述归属文件夹中的指定函数和/或变量与存储区域标识的映射关系,其中所述指定函数和/或变量对应的存储区域标识,与所述指定函数和/或变量的归属文件和/或归属文件夹对应的存储区域标识不同;
相应地,所述根据预先建立的配置文件以及所述各函数和/或变量的归属文件和/或归属文件夹,建立所述各函数和/或变量与存储区域标识的映射关系,具体包括:
根据所述配置文件中,所述指定函数和/或变量对应的存储区域标识,建立所述指定函数和/或变量与存储区域标识的映射关系;
根据所述配置文件中,所述归属文件和/或所述归属文件夹对应的存储区域标识,建立其它各函数和/或变量与存储区域标识的映射关系,其中所述其它各函数和/或变量为所述归属文件和/或所述归属文件夹中,除所述指定函数和/或变量的函数和/或变量。
4.根据权利要求1所述的存储空间映射方法,其特征在于,所述获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系,具体包括:
检测所述源码中是否携带有用于指示所述归属文件与存储区域标识的映射关系的第一规则;
若是,则根据所述第一规则中所述归属文件与存储区域标识的映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系。
5.根据权利要求4所述的存储空间映射方法,其特征在于,还包括:
在检测到所述第一规则后,检测所述源码中是否携带有用于指示指定函数和/或变量与存储区域标识的映射关系的第二规则,所述第二规则中所述指定函数和/或变量对应的存储区域标识,与所述第一规则中所述指定函数和/或变量的归属文件对应的存储区域标识不同;
若是,则根据所述第二规则,建立所述指定函数和/或变量与存储区域标识的映射关系;并根据所述第一规则,建立所述归属文件中,除所述指定函数和/或变量的其它各函数和/或变量与存储区域标识的映射关系。
6.根据权利要求1-5任一所述的存储空间映射方法,其特征在于,所述根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间,具体包括:
将所述各函数和/或变量映射到单级存储空间中的存储地址;或者
将所述各函数和/或变量映射到多级存储空间中对应的一级存储空间。
7.一种存储空间映射装置,其特征在于,包括:
源码解析模块,用于对源码进行解析,以获取所述源码中各函数和/或变量的归属文件和/或归属文件夹;
第一映射模块,用于获取所述归属文件和/或归属文件夹与存储区域标识的映射关系,并根据所述映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系;
第二映射模块,用于根据所述存储区域标识与存储空间的映射关系,将所述各函数和/或变量映射到所述存储空间。
8.根据权利要求7所述的存储空间映射装置,其特征在于,所述第一映射模块包括:
第一映射单元,用于根据预先建立的配置文件以及所述各函数和/或变量的归属文件和/或归属文件夹,建立所述各函数和/或变量与存储区域标识的映射关系,其中所述配置文件包括所述归属文件和/或归属文件夹与所述存储区域标识的映射关系。
9.根据权利要求8所述的存储空间映射装置,其特征在于,所述配置文件还包括:所述归属和/或所述归属文件夹中的指定函数和/或变量与存储区域标识的映射关系,其中所述指定函数和/或变量对应的存储区域标识,与所述指定函数和/或变量的归属文件和/或归属文件夹对应的存储区域标识不同;
相应地,所述第一映射单元具体还用于:根据所述配置文件中,所述指定函数和/或变量对应的存储区域标识,建立所述指定函数和/或变量与存储区域标识的映射关系;根据所述配置文件中,所述归属文件和/或所述归属文件夹对应的存储区域标识,建立其它各函数和/或变量与存储区域标识的映射关系,其中所述其它各函数和/或变量为所述归属文件和/或所述归属文件夹中,除所述指定函数和/或变量的函数和/或变量。
10.根据权利要求7所述的存储空间映射装置,其特征在于,所述第一映射模块包括:
第二映射单元,用于检测所述源码中是否携带有用于指示所述归属文件与存储区域标识的映射关系的第一规则;若是,则根据所述第一规则中所述归属文件与存储区域标识的映射关系,建立所述各函数和/或变量与所述存储区域标识的映射关系。
11.根据权利要求10所述的存储空间映射装置,其特征在于,所述第二映射单元还用于在检测到所述第一规则后,检测所述源码中是否携带有用于指示指定函数和/或变量与存储区域标识的映射关系的第二规则,所述第二规则中所述指定函数和/或变量对应的存储区域标识,与所述第一规则中所述指定函数和/或变量的归属文件对应的存储区域标识不同;若是,则根据所述第二规则,建立所述指定函数和/或变量与存储区域标识的映射关系;并根据所述第一规则,建立所述归属文件中,除所述指定函数和/或变量的其它各函数和/或变量与存储区域标识的映射关系。
12.根据权利要求7-11任一所述的存储空间映射装置,其特征在于,所述第二映射模块具体用于将所述各函数和/或变量映射到单级存储空间中的存储地址;或者将所述各函数和/或变量映射到多级存储空间中对应的一级存储空间。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210204676.3A CN102902629B (zh) | 2012-06-20 | 2012-06-20 | 存储空间映射方法及装置 |
PCT/CN2013/070055 WO2013189177A1 (zh) | 2012-06-20 | 2013-01-05 | 存储空间映射方法及装置 |
EP13806247.6A EP2854036B1 (en) | 2012-06-20 | 2013-01-05 | Storage space mapping method and device |
US14/573,977 US20150106583A1 (en) | 2012-06-20 | 2014-12-17 | Storage space mapping method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210204676.3A CN102902629B (zh) | 2012-06-20 | 2012-06-20 | 存储空间映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102902629A true CN102902629A (zh) | 2013-01-30 |
CN102902629B CN102902629B (zh) | 2016-06-22 |
Family
ID=47574874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210204676.3A Active CN102902629B (zh) | 2012-06-20 | 2012-06-20 | 存储空间映射方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150106583A1 (zh) |
EP (1) | EP2854036B1 (zh) |
CN (1) | CN102902629B (zh) |
WO (1) | WO2013189177A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678968A (zh) * | 2017-10-18 | 2018-02-09 | 北京奇虎科技有限公司 | 源码函数的样本提取方法、装置、计算设备及存储介质 |
CN110597763A (zh) * | 2018-05-25 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种函数索引表的生成方法及装置 |
CN114237746A (zh) * | 2021-12-16 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 基于c语言的配置信息管理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650690A (zh) * | 2009-09-21 | 2010-02-17 | 中兴通讯股份有限公司 | 大容量存储卡的应用方法及移动终端 |
CN101944067A (zh) * | 2009-04-30 | 2011-01-12 | 国际商业机器公司 | 存储数据的方法和存储器系统 |
CN102084330A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 用于有效地映射虚拟地址和物理地址的装置、系统和方法 |
WO2011074569A1 (ja) * | 2009-12-16 | 2011-06-23 | 学校法人 早稲田大学 | プロセッサによって実行可能なコードの生成方法、記憶領域の管理方法及びコード生成プログラムを格納した記憶媒体 |
CN102230374A (zh) * | 2011-06-13 | 2011-11-02 | 电子科技大学 | 一种基于485总线的井下程序远程更新装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313668B2 (en) * | 2004-01-29 | 2007-12-25 | Hewlett-Packard Development Company, L.P. | Immediate virtual memory |
US8677322B2 (en) * | 2011-06-29 | 2014-03-18 | Microsoft Corporation | Debugging in a multiple address space environment |
US11347443B2 (en) * | 2012-04-13 | 2022-05-31 | Veritas Technologies Llc | Multi-tier storage using multiple file sets |
-
2012
- 2012-06-20 CN CN201210204676.3A patent/CN102902629B/zh active Active
-
2013
- 2013-01-05 EP EP13806247.6A patent/EP2854036B1/en active Active
- 2013-01-05 WO PCT/CN2013/070055 patent/WO2013189177A1/zh active Application Filing
-
2014
- 2014-12-17 US US14/573,977 patent/US20150106583A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102084330A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 用于有效地映射虚拟地址和物理地址的装置、系统和方法 |
CN101944067A (zh) * | 2009-04-30 | 2011-01-12 | 国际商业机器公司 | 存储数据的方法和存储器系统 |
CN101650690A (zh) * | 2009-09-21 | 2010-02-17 | 中兴通讯股份有限公司 | 大容量存储卡的应用方法及移动终端 |
WO2011074569A1 (ja) * | 2009-12-16 | 2011-06-23 | 学校法人 早稲田大学 | プロセッサによって実行可能なコードの生成方法、記憶領域の管理方法及びコード生成プログラムを格納した記憶媒体 |
CN102230374A (zh) * | 2011-06-13 | 2011-11-02 | 电子科技大学 | 一种基于485总线的井下程序远程更新装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678968A (zh) * | 2017-10-18 | 2018-02-09 | 北京奇虎科技有限公司 | 源码函数的样本提取方法、装置、计算设备及存储介质 |
CN110597763A (zh) * | 2018-05-25 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种函数索引表的生成方法及装置 |
CN110597763B (zh) * | 2018-05-25 | 2022-06-03 | 杭州海康威视数字技术股份有限公司 | 一种函数索引表的生成方法及装置 |
CN114237746A (zh) * | 2021-12-16 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 基于c语言的配置信息管理方法、装置、设备及存储介质 |
CN114237746B (zh) * | 2021-12-16 | 2023-11-14 | 北京天融信网络安全技术有限公司 | 基于c语言的配置信息管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20150106583A1 (en) | 2015-04-16 |
EP2854036B1 (en) | 2020-02-19 |
WO2013189177A1 (zh) | 2013-12-27 |
CN102902629B (zh) | 2016-06-22 |
EP2854036A1 (en) | 2015-04-01 |
EP2854036A4 (en) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102103567B (zh) | 在异构处理器之间共享基于虚拟存储器的多版本数据 | |
CN102945212B (zh) | 汇集分区布局和表示 | |
CN102096557B (zh) | 一种独立磁盘冗余阵列的扩容方法、装置及系统 | |
US9141626B2 (en) | Volume having tiers of different storage traits | |
JP2005032259A (ja) | 共有ライブラリーシステム及び前記システム構築方法 | |
CN105760184A (zh) | 一种加载组件的方法和装置 | |
CN105224370A (zh) | 一种加载elf文件的方法和装置 | |
CN104079613A (zh) | 用于多租户间共享应用程序对象的方法和系统 | |
CN102982130A (zh) | 一种nosql与rdbms的数据库同步方法和系统 | |
CN104424030A (zh) | 多进程操作共享内存的方法和装置 | |
CN111857572B (zh) | Tlc固态硬盘的数据写入方法、装置、设备及存储介质 | |
CN103412822A (zh) | 操作非易失性内存和数据操作的方法和相关装置 | |
CN102968373A (zh) | 一种测试系统的维护方法及装置 | |
CN103218428A (zh) | 一种动态链接方法及系统 | |
CN113569508A (zh) | 基于id进行数据索引与访问的数据库模型构建方法及设备 | |
US20180239791A1 (en) | Bitmap-based storage space management system and methods thereof | |
CN102902629A (zh) | 存储空间映射方法及装置 | |
CN104573112A (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
CN105786525A (zh) | 一种进程模型向线程模型移植代码的方法及装置 | |
CN104063234A (zh) | 一种兼容方法及装置 | |
CN105260266A (zh) | 一种快照卷写方法及依赖快照系统 | |
CN102880461A (zh) | 一种编译链接方法及装置 | |
CN106775586B (zh) | 数据排序方法和装置 | |
CN105630702A (zh) | 一种逻辑卷创建方法与系统 | |
CN105446601A (zh) | 一种播放列表管理方法及移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |