XIP是什么?

1、XIP是什么?

XIP(executed in place)本地执行。操作系统采用这种系统,可以不用将内核或执行代码拷贝到内存,而直接在代码的存储空间直接运行。

XIP是一种能够直接在闪速存储器中执行代码而无须装载到RAM中执行的机制。

2、XIP机制实现的原理

XIP的原理很简单,即指操作系统或应用程序直接从非易失性存储器中执行。

3、XIP机制作用

减少了内核从闪速存储器拷贝到RAM的时间,并采用非压缩映像减少了内核自解压的时间。由于闪速存储器访问速度低于RAM,采用XIP技术的同时,根据硬件环境对闪速存储器和RAM使用量进行平衡。

4、解决的问题

平衡RAM成本与flash执行速度之间的矛盾。

5、带来的问题

问题原因:Flash的存储器访问周期要比RAM大得多

问题:使用XIP技术后可能会降低程序的运行速度

解决方案:CPU的指令预取机制以及Cache机制,实际使用起来并不会明显降低应用程序的运行速度。

6、环境要求

(1)硬件提供支持,只有N0R型的Flash才可以随机存取。Norflash之所以可以片内执行,就是因为他符合CPU去指令译码执行的要求。CPU送一个地址出来,Norflash就能给一个数据让CPU执行,中间不需要额外的处理操作。

(2) XIP还需要软件的支持

操作系统内核和应用程序在运行时,它在内存中的映像可以分为三个部分:代码段、数据段和堆栈段。代码段对应于执行程序中的Text Section,其中包括运行代码和只读数据,这个段在内存中一般被标记为只读。数据段对应于运行文件中的Data Section和BSS Section,其中存放的是各种数据(经过初始化的和未经初始化的)和静态变量,而堆栈段存放的则用于保存函数调用和局部变量。从以上分析可知,程序运行时在内存的映像分为两类:一类是只读的,如代码段;另一类是可写的,如数据段。而Flash虽然是可写的,但并不能像写普通RAM一样进行。因此,当程序在Flash中运行时,我们仍然需要把部分可写的数据段放在RAM 中。

程序执行过程可以参考如下:

https://www.cnblogs.com/dy2903/p/8453660.html

备注:

Nandflash不一样是因为nandflash有地址,数据,命令共用IO口的问题,cpu把地址发出来之后,并不能直接得到数据,还需要控制线的操作才能完成。就是说他没有专用的SRAM接口,另外还有nandflash与Norflash结构的差异导致nandflash不太适合实现XIP。
————————————————
版权声明:本文为CSDN博主「yangzcc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yangzcc/article/details/96423819

  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值