CN113094119B - 一种嵌入式设备程序动态加载方法 - Google Patents
一种嵌入式设备程序动态加载方法 Download PDFInfo
- Publication number
- CN113094119B CN113094119B CN202110469494.8A CN202110469494A CN113094119B CN 113094119 B CN113094119 B CN 113094119B CN 202110469494 A CN202110469494 A CN 202110469494A CN 113094119 B CN113094119 B CN 113094119B
- Authority
- CN
- China
- Prior art keywords
- program
- memory
- address
- soc
- block
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 24
- 230000015654 memory Effects 0.000 claims abstract description 119
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims abstract description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44557—Code layout in executable memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种嵌入式设备程序动态加载方法。大部分嵌入式设备很难加载复杂程序。本发明方法中嵌入式设备的SoC中具有内存保护单元MPU和地址映射单元MMU。MPU将内存划分为可访问区域内存MY和不可访问区域内存MN,并将MN划分成多个内存块;将需要加载的程序R划分成前段程序RF和后段程序RB;将RF加载到MY;如果需要运行RB时,动态地将部分RB加载到MN中,并将MN中的部分空间进行置换。本发明方法实现了运行时重复运行内存,在项目中使用价格更低的SoC,降低项目成本。本发明方法解决了在有限内存的嵌入式内存不够用的问题,使得开发者在内存受限的嵌入式设备中开发出功能更丰富的应用。
Description
技术领域
本发明涉及嵌入式设备技术领域,涉及一种嵌入式设备程序动态加载方法。
背景技术
近年来,随着科学技术的迅速发展,嵌入式技术逐渐普及,在通讯、医疗、工控等领域发挥着越来越重要的作用。不像通用计算机,绝大部分嵌入式设备只有有限的运行内存,很难在嵌入式设备中加载复杂程序。
在嵌入式中,应用程序存储在非易失存储器中。***启动后,应用程序通过一段存储在ROM(Read Only Memory)中的引导程序加载到运行内存中,然后被CPU执行。常见的非易失存储器有NorFlash和NandFlash,它们的特点是容量大、价格低、访问速度慢、断电后数据能保存。常见的运行内存有静态随机访问存储器(SRAM)和同步动态随机存取器(DRAM),它们的特点是容量小、价格昂贵、访问速度快、断电后数据会丢失。所以在嵌入式设备中,运行内存的容量要远远小于非易失存储器容量。
有以下几种技术来解决运行内存过小的问题:XIP片内执行技术、PSRAM外置SRAM技术、MMU虚拟地址映射技术。
XIP(Execute In Place),即芯片内执行。使用XIP的通用方式时把程序的数据段加载到运行内存中,把程序的代码段放在NorFlash中。CPU通过XIP,直接在NorFlash中取指令、译码、执行,不必再把程序的代码段读取到运行内存中执行。但是这种技术存要求存储程序的介质必须是NorFlah,而NorFlash相对与NandFlash的容量比较小,价格高。
PSRAM,全称Pseudo static random access memory,是是为静态随机存储器。内部的内存颗粒和SDRAM相似,但外部接口和SDRAM不同。SDRAM那样复杂的控制器和刷新机制,PSRAM的接口跟SRAM的接口是一样的。PSRAM内部自带刷新机制。一般通过SPI接口作为外设和SoC互联。应为PSRAM是SPI接口的,如果SoC中没有PSRAM控制器,就不能像访问SRAM一样按内存地址访问PSRAM。
MMU虚拟地址映射技术是嵌入式设备及个人计算机、服务器通用的程序动态加载方法。MMU虚拟地址映射技术需要芯片有一个内存管理硬件单元,它是是介于处理器和片外存储器之间的中间层,提供对虚拟地址(VA)向物理地址(PA)的转换。这中技术很通用,但只适用于有内存管理单元的SoC。而很多嵌入式设备使用的SoC根本没有内存管理单元。
发明内容
本发明的目的是针对现有技术的不足,提供一种嵌入式设备程序动态加载方法,能够复用嵌入式设备的运行内存,解决在有限内存的嵌入式内存不够用的问题,使得开发者在内存受限的嵌入式设备中开发出功能更丰富的应用。
为实现上述目的,本发明方法中嵌入式设备的SoC(System on Chip,片上***)中具有以下硬件资源:
a.内存保护单元MPU:MPU将内存M划分为可访问区域内存和不可访问区域内存;当SoC访问到不可访问区域内存时,MPU发出中断信息,触发SoC中断;
b.地址映射单元MMU:MMU将内存映射到多个地址空间;
程序动态加载方法具体如下:
步骤(1)MPU将内存M划分为可访问区域内存MY和不可访问区域内存MN;需要加载的程序逻辑上将不可访问区域内存MN划分成多个固定大小的内存块P1,P2,…,Pm;
步骤(2)将需要加载的程序R划分成两段,前段程序RF的大小R1小于等于可访问区域内存MY的空间大小M1,后段程序RB的大小R2大于不可访问区域内存MN的空间大小M2;
步骤(3)将后段程序RB划分成多个固定大小的程序块K1,K2,…,Kn,每个程序块与划分的内存块大小相同,程序块的数量n大于内存块的数量m;
步骤(4)将前段程序RF链接至一个虚拟地址空间S1,将后段程序RB链接至另一个虚拟地址空间S2;即前段程序RF运行时地址编译为属于S1地址空间的地址,后段程序RB运行时地址编译为属于S2地址空间的地址;
步骤(5)SoC初始化时,配置地址映射单元MMU,MMU将内存M映射的到地址空间S1;
步骤(6)SoC初始化后,配置内存保护单元MPU,将地址空间S1配置为可访问区域,地址空间S2配置为不可访问区域;
步骤(7)启动加载,将前段程序RF加载到可访问区域内存MY,开始执行前段程序RF;
步骤(8)当需要执行后段程序RB时,按照以下操作:
(8-1)如果需要执行后段程序RB中的一个程序块Kx,x∈[1,n],SoC访问虚拟地址空间S2,MPU检测到S2被访问,触发SoC中断;
(8-2)SoC执行中断服务函数,在P1,P2,…,Pm中,如果找到一个没有被使用过的内存块Py,y∈[1,m],则将程序块Kx的内容加载到内存块Py中;
如果全部为已使用,选择其中一个Py,取消其原有映射到S2的映射关系,并标记为未被使用,将程序块Kx的内容加载到内存块Py中;选择Py的策略采用以下之一:
a.按照使用的时间顺序,将最早使用过的映射到S2的内存块作为Py;
b.按照访问次数的顺序,将访问次数最少的映射到S2的内存块作为Py;
(8-4)配置内存保护单元MPU,将程序块Kx对应的地址区域修改为可访问区域;
(8-4)将内存块Py标记为已使用;
(8-5)SoC退出中断服务函数,继续执行;
步骤(9)对后段程序RB中所有的程序块K1,K2,…,Kn按照步骤(8)执行,直至执行完程序R。
采用本发明方法,在程序运行时重复利用嵌入式设备的运行内存,让开发者在内存受限的嵌入式设备中开发出功能更丰富的应用。相比MMU虚拟地址转换技术,本发明方法只需要SoC有一个简单的内存保护单元和简单的地址转换模块,就能实现运行时重复运行内存,在项目中使用价格更低的SoC,降低项目成本。相比XIP技术,本发明方法程序存储介质也可用是NandFlash,降低了存储介质的使用成本。
附图说明
图1为本发明方法中SoC初始化时内存M、程序R的地址空间分配示意图;
图2为动态加载后内存M、程序R的地址空间分配示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步的阐述和说明。
一种嵌入式设备程序动态加载方法,嵌入式设备的SoC中具有内存保护单元MPU和地址映射单元MMU。
内存保护单元MPU:MPU将内存M划分为可访问区域内存和不可访问区域内存;当SoC访问到不可访问区域内存时,MPU发出中断信息,触发SoC中断;
地址映射单元MMU:MMU将内存映射到多个地址空间。
如图1所示:
步骤(1)MPU将内存M划分为可访问区域内存MY和不可访问区域内存MN;需要加载的程序逻辑上将不可访问区域内存MN划分成多个固定大小的内存块P1,P2,…,Pm;
步骤(2)将需要加载的程序R划分成两段,前段程序RF的大小R1小于等于可访问区域内存MY的空间大小M1,后段程序RB的大小R2大于不可访问区域内存MN的空间大小M2;
步骤(3)将后段程序RB划分成多个固定大小的程序块K1,K2,…,Kn,每个程序块与划分的内存块大小相同,程序块的数量n大于内存块的数量m;
步骤(4)将前段程序RF链接至一个虚拟地址空间S1,将后段程序RB链接至另一个虚拟地址空间S2;即前段程序RF运行时地址编译为属于S1地址空间的地址,后段程序RB运行时地址编译为属于S2地址空间的地址;
步骤(5)SoC初始化时,配置地址映射单元MMU,MMU将内存M映射的到地址空间S1;
步骤(6)SoC初始化后,配置内存保护单元MPU,将地址空间S1配置为可访问区域,地址空间S2配置为不可访问区域;
步骤(7)启动加载,将前段程序RF加载到可访问区域内存MY,开始执行前段程序RF。
如图2所示:
步骤(8)当需要执行后段程序RB时,按照以下操作:
(8-1)如果需要执行后段程序RB中的一个程序块Kx,x∈[1,n],SoC访问虚拟地址空间S2,MPU检测到S2被访问,触发SoC中断;
(8-2)SoC执行中断服务函数,在P1,P2,…,Pm中,如果找到一个没有被使用过的内存块Py,y∈[1,m],则将程序块Kx的内容加载到内存块Py中;
(8-3)配置地址映射单元MMU,将内存块Py的地址区域映射到程序块Kx对应的地址区域;
(8-4)配置内存保护单元MPU,将程序块Kx对应的地址区域修改为可访问区域;
(8-4)将内存块Py标记为已使用;
(8-5)SoC退出中断服务函数,继续执行;
(8-6)SoC执行中断服务函数时,如果P1,P2,…,Pm全部为已使用,对其中一个Py取消原有映射到S2的映射关系,并标记为未被使用,继续执行(8-2)~(8-5)。
选择Py的策略为以下之一:
a.按照使用的时间顺序,将最早使用过的映射到S2的内存块作为Py;
b.按照访问次数的顺序,将访问次数最少的映射到S2的内存块作为Py。
步骤(9)对后段程序RB中所有的程序块K1,K2,…,Kn按照步骤(8)执行,直至执行完程序R。
以内置128K内存、64K NorFlash的嵌入式设备SoC为例,在实际方案发现开发过程中,需要运行的程序大小为512K,大于64K NorFlash大小。通过该方法能让芯片内运行该程序。
方案相关模块介绍:
SoC内置SRAM:静态随机存取存储器,程序加载到SRAM才能运行。
SoC内置NorFlash:用于存储可执行程序常用部分。
SoC内置MMU单元:用于内存地址翻译(映射)。
SoC内置MPU单元:用于配置某一块地址空间是否可访问。当访问到一块不可访问的地址空间时,会报异常中断。
外置NorFlash:用于存储动态加载的部分程序。
具体方案:
(1)内置SRAM地址初始化被映射到0x1000_000-0x1001_FFFF.其中0x1000_00000_0x100_FFFF被配置为可访问区域;0x1001_000-0x1001_FFFF配置为不可访问区域,并以4K固定大小分块。
(2)MMU映射一块虚拟的地址空间0x1200_0000-0x1207_FFFF,配置为不可访问区域。
(3)可执行程序R大小为512K,其中的64K运行时地址编译为0x1000_0000-0x100_FFFF,被烧录在内置NorFlash中,其余部分运行时地址编译为0x1200_0000-0x1207_FFFF,烧录在外置NorFlash中。
(4)***启动,把内置NorFlash中的程序加载到SRAM的0x1000_00000_0x100_FFFF开始执行。
(5)程序需要从0x1200_0000-0x1207_FFFF范围内取指,如0x1206_2224,触发MPU中断。
(6)执行中断服务程序中,触发中断的地址进行4K对齐为0x1206_2000,获取到该该地址的内容在外置NorFlash中的位置0x0006_2000。
(7)执行中断服务程序中,在0x1001_000-0x1001_FFFF地址中找一个未被使用过的4K内存块,如0x1001_0000-0x1001_0FFF,从外置NorFlash加载0x0006_2000-0x0006_2FFF范围内的数据到内存0x1001_0000-0x1001_0FFF。
(8)执行中断服务程序中,通过MMU把内存0x1001_0000-0x1001_0FFF地址重新映射到0x1206_2000-0x1206_2FFF,并把该内存标记为已使用。通过MPU把0x1206_2000-0x1206_2FFF配置为可访问区域
(9)执行中断服务程序中,如果发现0x1001_000-0x1001_FFFF全部被重映射使用,通过先入先出算法找到一个最早被映射的内存块,如0x1001_0000-0x1001_0FFF,取消该内存块的原有映射,标记为未使用,重复步骤(6)到(8)。退出中断服务程序,继续执行0x1206_2224地址的代码。
程序在运行过程重会重复执行步骤(5)到(9),实现烧录在外置NorFlash中的程序动态的加载到SRAM中执行。上述实施例仅为本发明较佳的实施方式,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种嵌入式设备程序动态加载方法,其特征在于:所述的嵌入式设备的SoC中具有内存保护单元MPU和地址映射单元MMU;具体加载方法如下:
步骤(1)MPU将内存M划分为可访问区域内存MY和不可访问区域内存MN;需要加载的程序逻辑上将不可访问区域内存MN划分成多个固定大小的内存块P1,P2,…,Pm;
步骤(2)将需要加载的程序R划分成两段,前段程序RF的大小R1小于等于可访问区域内存MY的空间大小M1,后段程序RB的大小R2大于不可访问区域内存MN的空间大小M2;
步骤(3)将后段程序RB划分成多个固定大小的程序块K1,K2,…,Kn,每个程序块与划分的内存块大小相同,程序块的数量n大于内存块的数量m;
步骤(4)将前段程序RF链接至一个虚拟地址空间S1,将后段程序RB链接至另一个虚拟地址空间S2;即前段程序RF运行时地址编译为属于S1地址空间的地址,后段程序RB运行时地址编译为属于S2地址空间的地址;
步骤(5)SoC初始化时,配置地址映射单元MMU,MMU将内存M映射的到地址空间S1;
步骤(6)SoC初始化后,配置内存保护单元MPU,将地址空间S1配置为可访问区域,地址空间S2配置为不可访问区域;
步骤(7)启动加载,将前段程序RF加载到可访问区域内存MY,开始执行前段程序RF;
步骤(8)当需要执行后段程序RB时,按照以下操作:
(8-1)如果需要执行后段程序RB中的一个程序块Kx,x∈[1,n],SoC访问虚拟地址空间S2,MPU检测到S2被访问,触发SoC中断;
(8-2)SoC执行中断服务函数;在P1,P2,…,Pm中,如果找到一个没有被使用过的内存块Py,y∈[1,m],则将程序块Kx的内容加载到内存块Py中;
如果全部为已使用,选择其中一个Py,取消其原有映射到S2的映射关系,并标记为未被使用,将程序块Kx的内容加载到内存块Py中;
(8-3)配置地址映射单元MMU,将内存块Py的地址区域映射到程序块Kx对应的地址区域;
(8-4)配置内存保护单元MPU,将程序块Kx对应的地址区域修改为可访问区域;
(8-4)将内存块Py标记为已使用;
(8-5)SoC退出中断服务函数,继续执行;
步骤(9)对后段程序RB中所有的程序块按照步骤(8)执行,直至执行完程序R。
2.如权利要求1所述的一种嵌入式设备程序动态加载方法,其特征在于,(8-2)中选择Py的策略是按照使用的时间顺序,将最早使用过的映射到S2的内存块作为Py。
3.如权利要求1所述的一种嵌入式设备程序动态加载方法,其特征在于,(8-2)中选择Py的策略是按照访问次数的顺序,将访问次数最少的映射到S2的内存块作为Py。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110469494.8A CN113094119B (zh) | 2021-04-28 | 2021-04-28 | 一种嵌入式设备程序动态加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110469494.8A CN113094119B (zh) | 2021-04-28 | 2021-04-28 | 一种嵌入式设备程序动态加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094119A CN113094119A (zh) | 2021-07-09 |
CN113094119B true CN113094119B (zh) | 2022-07-12 |
Family
ID=76680889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110469494.8A Active CN113094119B (zh) | 2021-04-28 | 2021-04-28 | 一种嵌入式设备程序动态加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094119B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253588A (zh) * | 2022-03-01 | 2022-03-29 | 紫光同芯微电子有限公司 | 芯片软件打补丁的方法、装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677413A (zh) * | 2016-01-06 | 2016-06-15 | 中国航空无线电电子研究所 | 一种综合模块化航空电子***多分区应用后加载方法 |
WO2017015856A1 (zh) * | 2015-07-28 | 2017-02-02 | 华为技术有限公司 | 一种调用操作***库的方法、装置及*** |
CN111190658A (zh) * | 2020-01-08 | 2020-05-22 | 乐鑫信息科技(上海)股份有限公司 | 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的*** |
CN111813710A (zh) * | 2020-09-11 | 2020-10-23 | 鹏城实验室 | 避免Linux内核内存碎片方法、设备及计算机存储介质 |
WO2021034393A1 (en) * | 2019-08-20 | 2021-02-25 | Microsoft Technology Licensing, Llc | Protection domains for processes in shared address space |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697131B (zh) * | 2009-11-04 | 2013-07-03 | 中兴通讯股份有限公司 | 一种可重定位文件动态加载的方法及装置 |
CN110928737B (zh) * | 2018-09-19 | 2021-05-18 | 华为技术有限公司 | 监控样本进程的内存访问行为的方法和装置 |
US11061819B2 (en) * | 2019-05-28 | 2021-07-13 | Micron Technology, Inc. | Distributed computing based on memory as a service |
US11269780B2 (en) * | 2019-09-17 | 2022-03-08 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
-
2021
- 2021-04-28 CN CN202110469494.8A patent/CN113094119B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017015856A1 (zh) * | 2015-07-28 | 2017-02-02 | 华为技术有限公司 | 一种调用操作***库的方法、装置及*** |
CN105677413A (zh) * | 2016-01-06 | 2016-06-15 | 中国航空无线电电子研究所 | 一种综合模块化航空电子***多分区应用后加载方法 |
WO2021034393A1 (en) * | 2019-08-20 | 2021-02-25 | Microsoft Technology Licensing, Llc | Protection domains for processes in shared address space |
CN111190658A (zh) * | 2020-01-08 | 2020-05-22 | 乐鑫信息科技(上海)股份有限公司 | 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的*** |
CN111813710A (zh) * | 2020-09-11 | 2020-10-23 | 鹏城实验室 | 避免Linux内核内存碎片方法、设备及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
嵌入式Linux操作***的研究;刘文峰等;《浙江大学学报(工学版)》;20040430(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113094119A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8453015B2 (en) | Memory allocation for crash dump | |
US10445245B2 (en) | Method, system, and apparatus for page sizing extension | |
CN107636625B (zh) | 用于共享***高速缓存的虚拟化控制的方法和装置 | |
US5530941A (en) | System and method for prefetching data from a main computer memory into a cache memory | |
KR101761044B1 (ko) | 메모리 채널 셧다운에 의한 전력 절약 | |
US8694737B2 (en) | Persistent memory for processor main memory | |
US20050091468A1 (en) | Processor for virtual machines and method therefor | |
JPH11161547A (ja) | データ処理装置用記憶装置、および記憶場所にアクセスする方法 | |
CN108701024B (zh) | 用于在堆栈机器中分配虚拟寄存器堆栈的方法 | |
GB2388447A (en) | Performing a data access from low-level code | |
US11868306B2 (en) | Processing-in-memory concurrent processing system and method | |
CN103927130A (zh) | 基于内存管理单元mmu的统一内外存架构 | |
CN114201222A (zh) | 针对提早显示器初始化和可视化改善引导过程 | |
CN113094119B (zh) | 一种嵌入式设备程序动态加载方法 | |
CN108763760B (zh) | 一种基于两级boot结构的***级芯片 | |
US20070266199A1 (en) | Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache | |
CN100377116C (zh) | 处理器高速数据缓存重配置方法 | |
CN103377141A (zh) | 高速存储区的访问方法以及访问装置 | |
EP1103898A2 (en) | Microprocessor and memory | |
EP3671460A1 (en) | Device, system and method to detect an uninitialized memory read | |
US5835945A (en) | Memory system with write buffer, prefetch and internal caches | |
US5434990A (en) | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch | |
US6766435B1 (en) | Processor with a general register set that includes address translation registers | |
US9910767B2 (en) | Leveraging instruction RAM as a data RAM extension during use of a modified Harvard architecture processor | |
Petrov et al. | Dynamic tag reduction for low-power caches in embedded systems with virtual memory |
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 | ||
CP03 | Change of name, title or address |
Address after: 310012 5-6 / F, block a, East Software Park Innovation Building, 90 Wensan Road, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Guoxin Microelectronics Co.,Ltd. Country or region after: China Address before: 310012 5-6 / F, block a, East Software Park Innovation Building, 90 Wensan Road, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU NATIONALCHIP SCIENCE & TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |