CN101051276A - 嵌入式微处理器的存储子系统内存自动布局方法 - Google Patents

嵌入式微处理器的存储子系统内存自动布局方法 Download PDF

Info

Publication number
CN101051276A
CN101051276A CN 200710022370 CN200710022370A CN101051276A CN 101051276 A CN101051276 A CN 101051276A CN 200710022370 CN200710022370 CN 200710022370 CN 200710022370 A CN200710022370 A CN 200710022370A CN 101051276 A CN101051276 A CN 101051276A
Authority
CN
China
Prior art keywords
node
sheet
object program
binary object
instruction
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
CN 200710022370
Other languages
English (en)
Other versions
CN100428161C (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.)
Southeast University
Original Assignee
Southeast University
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 Southeast University filed Critical Southeast University
Priority to CNB2007100223705A priority Critical patent/CN100428161C/zh
Publication of CN101051276A publication Critical patent/CN101051276A/zh
Application granted granted Critical
Publication of CN100428161C publication Critical patent/CN100428161C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

嵌入式微处理器的存储子系统内存自动布局方法是一种应用于系统芯片设计中的嵌入式微处理器的存储子系统内存自动布局方法,其步骤如下:将外部ARMCC工具链生成的二进制目标程序放入片外同步动态随机存储器中运行,得到运行过程中嵌入式微处理器的访问记录;根据链接信息和前一步骤生成的访问记录,把所述的二进制目标程序划分成一系列数据节点和指令节点,并生成表示节点间优先级关系的关系矩阵;按照优先级高低选择放入片上静态随机存储器上运行的节点,得到选中节点列表;根据所述的选中节点列表,得到新的二进制目标程序;将新的二进制目标程序中和所述选中节点列表中的节点对应的部分放入片上静态随机存储器中运行。

Description

嵌入式微处理器的存储子系统内存自动布局方法
技术领域
本发明是一种应用于系统芯片设计中的嵌入式微处理器的存储子系统内存自动布局方法,属于嵌入式微处理器设计领域。
背景技术
现代系统芯片的存储子系统一般由嵌入式微处理器、片上存储器、片外存储器三个主要部分构成,根据它们的物理位置和组织特性,各个部分对芯片性能的影响不一,片上存储器一般是访问速度非常快的片上静态随机存储器,它和片外存储器的地址空间互相分开,但共用地址和数据总线;片外存储器通常为片外同步动态随机存储器芯片,相对于片上静态随机存储器而言,它的访问速度很慢而且不稳定,访问功耗较大。随着系统芯片设计水平的不断提高,片外存储器的低读取速度与处理器芯片的高主频速度不相匹配的问题,直接限制了处理器芯片整体性能的提升,造成了处理器芯片性能的损失。此外,访问片外存储器的高功耗也造成处理器芯片功耗的增加。
发明内容
技术问题:本发明的目的在于解决上述现有技术中存在的问题,提供一种嵌入式微处理器的存储子系统内存自动布局方法,实现存储子系统的内存布局优化,提高存储子系统的性能并降低其功耗。
技术方案:为解决现有技术中存在的技术问题,本发明所设计嵌入式微处理器的存储子系统内存自动布局方法,针对包括ARM公司的ARM7TDMI嵌入式微处理器、片上静态随机存储器、片外同步动态随机存储器的存储子系统。步骤如下:a)将外部ARMCC工具链生成的原二进制目标程序,全部放入片外同步动态随机存储器中运行,得到运行过程中ARM7TDMI嵌入式微处理器对片外同步动态随机存储器的访问记录;b)根据ARMCC工具链生成的链接信息和前一步骤生成的访问记录,把所述的原二进制目标程序划分成一系列数据节点和指令节点,并生成表示节点间优先级关系的关系矩阵;c)选择放入片上静态随机存储器上运行的节点:将所述的全部节点按照优先级高低排列,选择优先级最高的节点;考虑到所述的关系矩阵的影响,对其余各个节点反复进行所述的排列和选择,直到片上静态随机存储器无法再放入任何节点,得到选中节点列表;d)根据所述的选中节点列表,修改原二进制目标程序,得到新二进制目标程序;e)将新二进制目标程序中和所述选中节点列表中的节点对应的部分放入片上静态随机存储器中运行。
将所述的原二进制目标程序划分成数据节点和指令节点的步骤如下:a)符号表重建:将ARMCC工具链(指ARM公司提供的用于编译ARM指令集的工具链)生成的包含符号表的文本文件,转换成划分过程所能识别的新的符号表;b)DCD(DCD是ARM汇编语言中定义的一条伪指令,用于初始化32位数据存储单元,另外在编译过程中还用来保存常量和数据,称之为DCD数据)数据分析:确定原二进制目标程序中哪些是DCD数据节点,哪些是DCD指令节点;c)函数划分:根据函数各部分执行次数的多少和跳转指令将其划分成各个指令节点,即以每个函数中的跳转指令为界,把函数划分成若干指令节点,最终将原二进制目标程序中所有函数划分成一系列指令节点;d)函数调用分析:分析所有指令节点中的每一条函数调用指令,初步构建出整个原二进制目标程序的扩展控制流图;e)全局堆栈分析:封装原二进制目标程序的全局堆栈,得到的新的全局数据节点,该全局数据节点的大小是程序运行过程中统计得到的堆栈大小的1.5倍;f)数据访问分析:确定各个指令节点和全局数据节点之间的关系,完成原二进制目标程序的扩展控制流图。其中,数据节点包括两种:一种是所述的二进制目标程序的原全局数据节点,另一种是封装所述的二进制目标程序的全局堆栈而得到的新的全局数据节点;指令节点,是把所述的二进制目标程序中,符合片上静态随机存储器的容量大小限制的函数,按照其内部的跳转指令切割而成的多个函数基本块。在生成一系列数据节点和指令节点的同时,生成关系矩阵来表示由于节点间的相互关系使得一个或多个节点搬入片上静态随机存储器后其他节点优先级的变化。
选中节点列表采用背包算法得到:首先,将所述的全部节点按照优先级高低排列,选择优先级最高的节点放入所述的选中节点列表;其次,考虑到关系矩阵的影响,再对其余各个节点反复进行前一步的排列和选择,直到片上静态随机存储器无法再放入任何节点,即得到所述的选中节点列表。作为对各个节点进行排列并选择的优先级的标准,既可以为各个节点放入片上静态随机存储器后所能减少的程序执行时间多少与节点大小的比值,也可以为各个节点放入片上静态随机存储器后所能节约的功耗的大小与节点大小的比值,比值愈大优先级愈高。
有益效果:本发明的嵌入式微处理器的存储子系统内存自动布局方法,采用考虑节点间关系的片上静态随机存储器分配算法来进行片上静态随机存储器分配,精确地分析了程序的性能优化效果,更改程序的内存布局,将计算密集型应用的程序、数据合适地分配到片外同步动态随机存储器和片上静态随机存储器中,确保调用最多、计算时间最长的程序位于片上静态随机存储器内,充分地利用片上静态随机存储器空间,提高了存储子系统的性能,并降低了外存读取带来的巨大功耗,实现嵌入式微处理器的存储子系统的内存布局的最优化。
本发明的嵌入式微处理器的存储子系统内存自动布局方法,可以使MP3解码程序等应用程序的性能提高37%-52%。下表所示,是相关应用程序的测试比较:
应用程序名称   程序大小(Bytes) 只采用片外存储器的周期数 采用本发明后的周期数 性能提升值 说明
  MP3Decoder   633K   142M   74.5M   52%   解75帧MP3数据
GUNZIP 155K 8.32M 4.16M 50%   解压缩11K字节大小的文件
JPEG2BMP 238K 25.1M 12.2M 48%   将160×120大小的JPEG图片转换成BMP格式文件
DIJKSTRA 50K 27.2M 10.4M 38%   使用Dijkstra算法寻找最短路径
CRC32 12K 5.01M 1.84M 37%   32位ANSI X3.66CRC文件校验和求解
附图说明
图1为ARM7TDMI嵌入式微处理器的存储子系统结构框图。
图2为本发明的工作流程图。
图3为应用程序的扩展控制流图。
图中有:ARM7TDMI嵌入式微处理器1、片上静态随机存储器2、片外同步动态随机存储器3、存储子系统性能仿真模块4、程序划分器5、SPM分配器(片上静态随机存储器分配器)6、链接器7。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述。
图1为ARM7TDMI嵌入式微处理器的存储子系统结构框图。该存储子系统包括ARM7TDMI嵌入式微处理器1、片上静态随机存储器2、片外同步动态随机存储器3,其中,ARM7TDMI嵌入式微处理器1与片上静态随机存储器2之间通过AMBA总线连接;片外同步动态随机存储器3与ARM7TDMI嵌入式微处理器1之间通过外部存储器控制接口间接连接,ARM7TDMI嵌入式微处理器1与外步存储器控制接口之间通过AMBA总线连接,片外同步动态随机存储器3的数据接口和控制接口,分别通过数据总线和控制总线,与外部存储器的数据接口和控制接口对应连接。
本发明的工作流程如下,参见图2:
第一步,将外部ARMCC工具链生成的二进制目标程序全部放入片外同步动态随机存储器3中运行,得到运行过程中ARM7TDMI嵌入式微处理器1对片外同步动态随机存储器3的访问记录。
第二步,程序划分器5根据ARMCC工具链生成的链接信息和所述的访问记录,把所述的二进制目标程序划分成一系列数据节点和指令节点,并完成各个节点访问信息的统计,生成来描述各个节点之间关系的关系矩阵。
第三步,SPM分配器(片上静态随机存储器分配器)6根据各个节点的访问信息和关系矩阵,采用背包算法选择部分将要放入片上静态随机存储器2的节点,得到选中节点列表:将所述的全部节点按照优先级高低排列,选择优先级最高的节点;考虑到所述的关系矩阵的影响,对其余各个节点反复进行所述的排列和选择,直到片上静态随机存储器无法再放入任何节点,得到选中节点列表。
第四步,链接器7根据所述的选中节点列表,修改原二进制目标程序,得到新二进制目标程序;
第五步,把链接器7生成的新二进制目标程序中,对应于所述选中节点列表中的节点的部分,在新二进制目标程序运行的初始化阶段放到片上静态随机存储器2中运行,完成存储子系统内存自动布局优化过程。
本发明所述的将外部ARMCC工具链生成的原二进制目标程序,划分成数据节点和指令节点的步骤如下:a)符号表重建:将ARMCC工具链生成的包含符号表的文本文件,转换成划分过程所能识别的新的符号表;b)DCD数据分析:确定原二进制目标程序中哪些是DCD数据节点,哪些是DCD指令节点;c)函数划分:根据函数各部分执行次数的多少和跳转指令将其划分成各个指令节点,即以每个函数中的跳转指令为界,把函数划分成若干指令节点,最终将原二进制目标程序中所有函数划分成一系列指令节点:跳转指令使程序中的各条指令的执行次数不完全一致,把程序中执行次数最多的各条指令放入片上存储器,会减少更多执行时间,此处,跳转指令包括跳转目的地址在函数内部本条指令之前的回跳指令,比如图3中的v3节点跳转到v2节点,和跳转到目的地址在函数内部本条指令之后若干条指令的的前跳指令,比如图3中的v2节点跳转到v5节点,但不包括目的地址不在函数内部的跳转指令,跳转指令包括条件跳转指令和无条件跳转指令;d)函数调用分析:分析所有指令节点中的每一条函数调用指令,初步构建出整个原二进制目标程序的扩展控制流图;e)全局堆栈分析:封装原二进制目标程序的全局堆栈,得到的新的全局数据节点,该全局数据节点的大小是程序运行过程中统计得到的堆栈大小的1.5倍;f)数据访问分析:确定各个指令节点和全局数据节点之间的关系,完成原二进制目标程序的扩展控制流图。其中,所述的数据节点包括两种,一种是原二进制目标程序的原全局数据节点,另一种是封装原二进制目标程序的全局堆栈而得到的新的全局数据节点;所述的指令节点,是把原二进制目标程序中,符合片上静态随机存储器2的容量限制的函数,按照其内部的跳转指令切割而成的多个函数基本块。
作为本发明的一个实施例,对各个节点进行排列并选择的优先级的标准,为各个节点放入片上静态随机存储器2运行后,所能减少的程序执行时间多少与节点大小的比值,比值愈大优先级愈高。
作为本发明的另一个实施例,对各个节点进行排列并选择的优先级的标准,为各个节点放入片上静态随机存储器2运行后,所能节约的功耗大小与节点大小的比值,比值愈大优先级愈高。
下面分别介绍本发明的嵌入式微处理器的存储子系统内存自动布局方法涉及的四个关键模块。
一、存储子系统性能仿真模块4:
利用ARM公司的ARMCC工具链提供的仿真功能设计编写嵌入式微处理器的存储子系统性能仿真模块,使得应用程序在本模块上运行时可以得到应用程序对存储子系统的访问记录,用于后续步骤。
二、程序划分器5:
为充分利用ARM公司的ARMCC工具链的编译优化能力,本发明的片上静态随机存储器优化技术直接分析ARMCC链接后输出的二进制目标程序文件,而不是程序的C语言源代码。通过重建程序的符号表,全面分析程序的所有内容,包括函数、全局数据变量和全局堆栈。其中,程序中所有符合片上静态随机存储器的容量大小限制的函数,均按照其内部的跳转指令被切割成多个基本块;程序的全局堆栈被封装成一个全局数据变量。由于程序在处理不同的输入时,它的堆栈大小会发生变化,为防止堆栈溢出,该数据变量的大小是程序运行过程中实际使用堆栈大小的1.5倍,原二进制目标程序的全局数据变量保持不变。最后,被送入SPM分配器(片上静态随机存储器分配器)6进行选择的程序内容包括全局数据变量和函数基本块。
程序划分器5对ARMCC工具链输出的原二进制目标程序的划分过程依次分为六个步骤:符号表重建、DCD数据分析、函数划分、函数调用分析、全局堆栈分析和数据访问分析。经过上述六个步骤,原二进制目标程序被划分成一系列指令节点和数据节点,其中,数据节点包括两种,一种是原二进制目标程序的原全局数据节点,另一种是封装原二进制目标程序的全局堆栈而得到的新的全局数据节点;指令节点是指把原二进制目标程序中,符合片上静态随机存储器2的容量大小限制的函数,按照其内部的跳转指令切割而成的多个函数基本块。为方便后续SPM分配器(片上静态随机存储器分配器)6的算法设计和实现,本发明建立了一种扩展的控制流图来描述这些程序内容和它们之间的关系,图3中V6是数据节点,其他节点都是指令节点,除了无条件转移关系外,其他的节点间的关系在图中都有图示:条件转移关系、数据访问关系、顺序执行关系、调用关系。一些ARM指令对于地址空间有很严格的限制,比如跳转指令和数据装载指令。通常情况下由于地址跳转范围过大,一条跳转指令是不能在片外存储器和片上存储器之间跳转的。片外存储器中的跳转指令搬到片上存储器中后要由两条指令代替,导致了搬到片上存储器中的节点大小的增加,从而影响程序性能和功耗。所以要分别分析节点间的五种关系的关系发起者节点和关系接收者节点分别搬入片上静态随机存储器1后节点大小和对程序性能和功耗的影响。本发明用关系矩阵表示节点之间关系对节点大小、程序性能和功耗的影响,包括性能矩阵TRMij、功耗矩阵ERMij和大小矩阵SRMij。分别表示当且仅当节点Vi被搬入SPM时,节点Vj与Vi之间所有关系对程序执行时间的影响、对节约功耗的影响和对节点大小的影响,用下面的公式表示:
TRM ij = Σ type = 1 5 ( ΔT start ( R type ( i , j ) ) + ΔT end ( R type ( j , i ) ) )
ERM ij = Σ type = 1 5 ( ΔE start ( R type ( i , j ) ) + ΔE end ( R type ( j , i ) ) )
SR M ij = Σ type = 1 5 ΔS ( R type ( i , j ) )
式中,Rtype(i,j)表示节点间的五种关系,ΔTstart表示关系发起者节点搬入片上静态随机存储器(1)后程序执行时间的变化,ΔTend表示关系接收者节点搬入片上静态随机存储器(1)后程序执行时间的变化,ΔEstart表示关系发起者节点搬入片上静态随机存储器(1)后所节约的功耗的变化,ΔEend表示关系接收者节点搬入片上静态随机存储器(1)后所节约的功耗的变化,ΔS表示节点搬入片上静态随机存储器(1)后节点大小的变化。
三、SPM分配器(片上静态随机存储器分配器)6:
该分配器采用考虑了节点间关系的改进的背包算法,对全部节点进行排列、选择,得到将要放入片上静态随机存储器2的节点的列表,步骤如下:a、将所述的全部节点按照优先级高低排列,选择优先级最高的节点放入所述的选中节点列表;b、考虑到关系矩阵的影响,对其余各个节点反复进行前一步的排列和选择,直到片上静态随机存储器2无法再放入任何节点,得到所述的选中节点列表。选择放入片上静态随机存储器2的节点的标准,可以是各个节点放入片上静态随机存储器2后所能获得的性能收益的大小,或者是各个节点放入片上静态随机存储器2后所能节约的功耗的大小,性能收益愈大者优先级愈高,或者节约功耗愈多者优先级愈高。
四、链接器7:
得到在当前片上静态随机存储器2的容量下被选中搬入片上静态随机存储器的节点列表之后,通过用C语言编写的链接器7重新链接程序中所有节点,并自动生成新的二进制文件,该文件包括三个部分:初始化部分、片外同步动态随机存储器部分和片上静态随机存储器部分,其中,片外同步动态随机存储器部分是把原二进制目标程序根据节点搬移情况修改了跳转指令,初始化部分和片上静态随机存储器部分是链接器新增的,片上静态随机存储器部分也根据节点搬移情况修改了跳转指令,初始化部分将片上静态随机存储器部分复制到真实的片上静态随机存储器2的存储空间内,然后跳转到原程序的主函数首地址处,如果主函数首节点被选中搬入片上静态随机存储器2,则初始化部分将直接跳到片上静态随机存储器2的对应位置。新二进制目标程序从初始化部分开始执行。

Claims (4)

1、一种嵌入式微处理器的存储子系统内存自动布局方法,该存储子系统包括ARM7TDMI嵌入式微处理器(1)、片上静态随机存储器(2)、片外同步动态随机存储器(3),其特征在于该内存自动布局方法包含以下步骤:
1a)将ARMCC工具链生成的原二进制目标程序,全部放入片外同步动态随机存储器(3)中运行,得到运行过程中ARM7TDMI嵌入式微处理器(1)对片外同步动态随机存储器(3)的访问记录;
1b)根据ARMCC工具链生成的链接信息和步骤1a)所述的访问记录,把原二进制目标程序划分成一系列数据节点和指令节点,并生成表示节点间优先级关系的关系矩阵;
1c)选择放入片上静态随机存储器(2)上运行的节点:
1c1)将所述的全部节点按照优先级高低排列,选择优先级最高的节点;
1c2)针对步骤1b)所述的关系矩阵的影响,对其余各个节点反复进行步骤1c1)所述的排列和选择,直到片上静态随机存储器(2)无法再放入任何节点,得到选中节点列表;
1d)根据所述的选中节点列表,修改原二进制目标程序,得到新二进制目标程序;
1e)将新二进制目标程序中和所述选中节点列表中的节点对应的部分放入片上静态随机存储器(2)。
2、根据权利要求1所述的嵌入式微处理器的存储子系统内存自动布局方法,其特征在于,将所述的原二进制目标程序划分成数据节点和指令节点的步骤如下:
2a)符号表重建:将ARMCC工具链生成的包含符号表的文本文件,转换成划分过程所能识别的新的符号表;
2b)DCD数据分析:确定原二进制目标程序中哪些是DCD数据节点,哪些是DCD指令节点;
2c)函数划分:根据函数各部分执行次数的多少和跳转指令将其划分成各个指令节点,即以每个函数中的跳转指令为界,把函数划分成若干指令节点,最终将原二进制目标程序中所有函数划分成一系列指令节点;
2d)函数调用分析:分析所有指令节点中的每一条函数调用指令,初步构建出整个原二进制目标程序的扩展控制流图;
2e)全局堆栈分析:封装原二进制目标程序的全局堆栈,得到的新的全局数据节点,该全局数据节点的大小是程序运行过程中统计得到的堆栈大小的1.5倍;
2f)数据访问分析:确定各个指令节点和全局数据节点之间的关系,完成原二进制目标程序的扩展控制流图。
3、根据权利要求1所述的嵌入式微处理器的存储子系统内存自动布局方法,其特征在于,所述的优先级为各个节点放入片上静态随机存储器(2)后所能减少的程序执行时间多少与节点大小的比值,比值愈大优先级愈高。
4、根据权利要求1所述的嵌入式微处理器的存储子系统内存自动布局方法,其特征在于,所述的优先级为各个节点放入片上静态随机存储器(2)后所能节约的功耗大小与节点大小的比值,比值愈大优先级愈高。
CNB2007100223705A 2007-05-15 2007-05-15 嵌入式微处理器的存储子系统内存自动布局方法 Active CN100428161C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100223705A CN100428161C (zh) 2007-05-15 2007-05-15 嵌入式微处理器的存储子系统内存自动布局方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100223705A CN100428161C (zh) 2007-05-15 2007-05-15 嵌入式微处理器的存储子系统内存自动布局方法

Publications (2)

Publication Number Publication Date
CN101051276A true CN101051276A (zh) 2007-10-10
CN100428161C CN100428161C (zh) 2008-10-22

Family

ID=38782701

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100223705A Active CN100428161C (zh) 2007-05-15 2007-05-15 嵌入式微处理器的存储子系统内存自动布局方法

Country Status (1)

Country Link
CN (1) CN100428161C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291480A (zh) * 2017-08-15 2017-10-24 中国农业银行股份有限公司 一种函数调用方法及装置
CN111177026A (zh) * 2019-09-11 2020-05-19 腾讯科技(深圳)有限公司 一种修改变量内存布局的方法、装置及计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952821B2 (en) * 2002-08-19 2005-10-04 Hewlett-Packard Development Company, L.P. Method and system for memory management optimization
US7367024B2 (en) * 2004-09-21 2008-04-29 University Of Maryland Compiler-driven dynamic memory allocation methodology for scratch-pad based embedded systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291480A (zh) * 2017-08-15 2017-10-24 中国农业银行股份有限公司 一种函数调用方法及装置
CN107291480B (zh) * 2017-08-15 2020-12-15 中国农业银行股份有限公司 一种函数调用方法及装置
CN111177026A (zh) * 2019-09-11 2020-05-19 腾讯科技(深圳)有限公司 一种修改变量内存布局的方法、装置及计算机设备

Also Published As

Publication number Publication date
CN100428161C (zh) 2008-10-22

Similar Documents

Publication Publication Date Title
Mailhot et al. Algorithms for technology mapping based on binary decision diagrams and on Boolean operations
Panda et al. Low-power memory mapping through reducing address bus activity
Ebendt et al. Advanced BDD optimization
US8627018B2 (en) Automatic optimization for programming of many-core architectures
US20240152677A1 (en) Circuit structure optimization method and system based on fpga carry chain
Klein et al. Advances in probabilistic model checking with PRISM: variable reordering, quantiles and weak deterministic Büchi automata
US6817000B2 (en) Delay correlation analysis and representation for vital complaint VHDL models
US20100008155A1 (en) Structurally field-configurable semiconductor array for in-memory processing of stateful, transaction-oriented systems
US7412369B1 (en) System and method for designing and optimizing the memory of an embedded processing system
US11055463B1 (en) Systems and methods for gate array with partial common inputs
CN113569508B (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
US11467811B1 (en) Method and apparatus for generating metadata by a compiler
WO2023193547A1 (zh) 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质
US20230004365A1 (en) Multistage compiler architecture
US10318696B1 (en) Efficient techniques for process variation reduction for static timing analysis
CN105447285A (zh) 一种提高OpenCL硬件执行效率的方法
US7284210B2 (en) Method for reconfiguration of random biases in a synthesized design without recompilation
CN100428161C (zh) 嵌入式微处理器的存储子系统内存自动布局方法
US20080162856A1 (en) Method for dynamic memory allocation on reconfigurable logic
US20090281781A1 (en) Method and apparatus for generating adaptive noise and timing models for vlsi signal integrity analysis
CN111191106B (zh) Dsl的构建方法、系统、电子设备和介质
JP2002269162A (ja) 動作合成方法
Das Principles of data structures using C and C++
US20030233219A1 (en) Method and apparatus emulating read only memories with combinatorial logic networks, and methods and apparatus generating read only memory emulator combinatorial logic networks
CN113495679B (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