XIP技术总结

1.XIP eXecute In Place

XIP即芯片内执行,指应用程序可以在flash闪存内运行,不必再把代码读到系统RAM中。需要注意的是,片内执行不是说程序直接在flash内执行,CPU的基本功能就是取指、译码和执行。norflash能在芯片内执行,就是指CPU的取指模块能够直接从norflash中把指令取出来,供后面的译码和执行模块使用。其中关键的步骤就是取指,norflash必须要满足CPU一个地址一个指令或数据的要求。
2. XIP技术需要CPU和flash同时支持
a) CPU控制器支持:
而按照通常的理解,要能够实现XIP,Flash应该是并行总线接口挂在AMBA上,这个并行总线应有独立的地址线和数据线,且地址线宽度跟Flash大小相对应,类似于DDR或SRAM总线。那么SPI NorFlash为什么能实现XIP,答案就是FlexSPI外设,也就是说需要CPU具备特殊的SPI控制,该控制器实现了串行flash总线到并行总线的转换。为了提升性能控制器内部可以集成类似cache功能的buffer。下图所示为某款CPU的支持XIP的SPI控制器逻辑拓扑。
在这里插入图片描述
b)SPI Nor Flash支持
以下文字摘自某款芯片手册:
< XIP mode requires only an address (no instruction) to output data, improving random access time and eliminating the need to shadow code onto RAM for fast execution。
大体的意思是:
XIP模式只需要一个地址(无指令)就可以输出数据,从而提高了随机存取时间。
**无指令,**这是和普通模式的最大区别,XIP模式下flash能卖满足一个输入地址一个输出数据要求。以下是XIP模式下的时序图。

在这里插入图片描述
3.nandflash可以实现XIP吗?

芯片内执行主要是是看芯片可不可以线性存储代码(假如硬件支持芯片接口),只要能保证芯片的存储空间是线性的(也就是无坏块),都可以片上执行在读取Flash时候,容易出现“位翻转(bitconvert) 在Flash的位翻转(一个bit位发生翻转)现象上,NAND的出现几率要比NorFlash大得多。这个问题在Flash存储关键文件时是致命的,所以在使用NandFlash时建议同时使用EDC/ECC等校验算法。 ”但是,如果能保证不出错,也还是可以进行XIP,可以在其上执行代码的:“所谓XIP,就是CODE是在FLASH上直接运行. NANDFLASH只是不适合做XIP,但并不是不能做XIP“要一段CODE能够正确的运行,要保证它的CODE是连续的,正确的.由于一些电气特性的原因,NOR FLASH能够做到这一点,不存在坏道或坏块,所以能够做XIP.
而对于NAND FLASH, 它只保证它的BLOCK 0是好的,其他的块并不保证,虽然出错的几率比较低,但还是有出错的可能,所以CODE可能无法连续正确地执行.
但只要你有额外的保障措施,比如说在执行CODE之前去做一次ECC校验,来确保CODE是连续正确的.那你也可以做XIP. 有人这么做了,而且也证明是成功的.

  • 9
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值