程序代码不用读到RAM即可执行的技术--片内执行XIP

一起学嵌入式 2024-12-10 07:55

扫描关注一起学嵌入式,一起学习,一起成长

什么是 XIP

eXecute In Place,即芯片内执行,是指CPU直接从存储器中读取程序代码执行,而不用再读到内存中。

应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。

flash 内执行是指 nor flash 不需要初始化,可以直接在flash内执行代码。但往往只执行部分代码,比如初始化RAM。好处即是程序代码无需占用内存,减少内存的要求。

所谓片内执行不是说程序在存储器内执行,CPU的基本功能是取指、译码、运行。Nor Flash 能在芯片内执行,指的是CPU能够直接从Nor flash中取指令,供后面的译码器和执行器来使用。

为实现就地执行,必须满足几个条件:

  • 存储器必须提供与内存相似的接口给 CPU。

  • 该接口必须提供足够快的读取操作,并具有随机访问模式。

  • 如有文件系统,则需要提供合适的映射功能。

  • 程序链接时需要知道存储器的地址或地址与位置无关。

  • 程序不能修改已加载映像中的数据。

NOR Flash和 EEPROM 通常能满足上述要求。

XIP技术需要CPU和flash同时支持

(1) CPU控制器支持:

而按照通常的理解,要能够实现XIP,Flash 应该是并行总线接口挂在 AMBA 总线上,这个并行总线应有独立的地址线和数据线,且地址线宽度跟Flash大小相对应,类似于DDR或SRAM总线。

那么SPI NorFlash为什么能实现XIP,答案就是 FlexSPI 外设,也就是说需要CPU具备特殊的SPI控制,该控制器实现了串行flash总线到并行总线的转换。

为了提升性能控制器内部可以集成类似cache功能的buffer。下图所示为某款CPU的支持XIP的SPI控制器逻辑拓扑。

(2)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模式下的时序图。

一些应用

系统引导时的XIP

通常,第一阶段的引导程序是一个XIP程序,它链接时指定从flash芯片上电后的映射地址开始运行,设置系统RAM,把第二阶段的引导程序或操作系统内核加载进RAM。

在这初始化期间,可写存储器可能不可用,所有的计算都必须在处理器寄存器中执行。因此,第一阶段的引导程序通常以汇编语言编写,提供尽量少的功能,只为下一阶段程序的提供正常的执行环境。

有些处理器也能通过嵌入少量SRAM或允许将 Cache 用作RAM来允许用高级语言编写这些程序。

对于内核和引导程序,地址空间通常是内部分配的。为了使用XIP,需要指示链接程序将不可修改的数据和可修改数据放在不同的地址区间,并提供将可修改数据复制到可写内存的机制,使得任何程序正常访问这些数据。

如果地址空间是外部分配的,比如不提供虚拟内存的系统,编译器需要通过向数据区域的私有副本的指针添加偏移量来访问所有可修改的数据。在这种情况下,外部加载程序负责设置实例特定的内存区域。

主内存初始化之前,BIOS 和 UEFI 使用 XIP 技术。

文件系统的XIP

文件系统的XIP通常难以满足。在没有页表的系统中,整个文件必须连续存储,不能碎片化,而基于闪存的文件系统通常会将数据分配到擦除周期最小,磨损最少的扇区,以延长生命周期。

复杂性和速度的折中意味着XIP通常仅用于第一阶段引导程序或RAM极度短缺的情况。例如,第二代至第四代的视频游戏机如Atari 2600将ROM卡带的地址和数据总线连接到游戏机的地址和数据总线,从而能在只有128字节的RAM上。

AXFS(高级XIP文件系统,Advanced XIP File System)是Linux系统上一种较新的文件系统,旨在克服与XIP相关的,特别是在 XIP 用户空间应用程序方面的某些缺点。例如,可以将可执行的二进制文件拆分为“ XIP区域”,从而避免了上面提到的碎片限制。

NOR Flash和Nand Flash

这两种种 flash 是现在市场上两种主要的非易失闪存技术。

Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由 EPROM (Electrically Programmable Read-Only-Memory电可编程序只读存储器) 和 EEPROM (电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。

紧接着,1989年,东芝公司发表了 NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。

NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中

NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用 NAND 的困难在于Flash的管理和需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多。

这样我们就知道程序能直接在 Nor flash 中执行的原因就是 XIP。

Nand Flash 器件的 IO 口比较少,通过串行地进行读写数据,硬件接口少了,势必会带来复杂的软件成本,一般使用8个引脚来进行传输控制、地址和数据信息,由于时序非常复杂,所以一般 CPU 最好集成NAND控制器,另外由于Nand flash没有挂接在地址总线上,所以如果想用Nand flash作为系统的启动盘,就需要CPU具备特殊的功能,比如s3c2440在被选择为NandFlash启动方式时会在上电时自动读取NandFlash的4k数据到地址0的SRAM中。

如果CPU不具备这种特殊功能,用户不能直接运行 NandFlash 上的代码,因为使用 Nand Flash 必须要各种初始化,复杂逻辑。

Nor Flash能够在片内执行,Nand Flash不能,区别如下图:

这张图很直观,但是需要用心看,左边是普通的flash,可以理解成是Nand Flash,CPU想要从Nand Flash中读取数据,必须要先通过在RAM中计算地址,各种时序计算,然后通过MMU转换地址,然后给Nand flash发送命令,注意是命令,不是地址Nand Flash根据命令进行相应的操作,如果是读命令,则返回对应地址的数据到RAM中,如果是写命令,则进行写操作。

而右边的图,是针对Nor Flash的,这个很明显,CPU可以像读内存一样,直接跟Nor flash交互,即可以直接从Nor Flash中取指令,然后交给译码模块和执行模块进行执行,可以说,相比较Nand flash,Nor flash的操作对于CPU来说,简直就像是面对面一样。

为何Nor Flash可以实现XIP,Nand flash 不行

解释一:嵌入式系统中代码的执行方式主要有3种:

(1)完全映射:嵌入式系统程序运行时,将所有代码从非易失存储器(Flash、ROM等)复制到RAM中运行。

(2)按需分页:只复制部分代码到RAM中,这种方法对RAM中的页进行导入/导出管理,如果访问位于虚存中但不在物理RAM中会产生页错位,这时才将代码和数据映射到RAM中。

(3)XIP:在系统启动时,不将代码复制到RAM,而是直接在非易失性存储位置执行,RAM中只存放需要不断变化的数据部分,如下图所示:

如果非易失性存储器(Flash)的读取速度与RAM相近,则XIP可以节省复制和解压的时间,Nor flash和rom的读取速度比较看(约100ns),比较适合XIP,而Nand flash的读取操作是基于扇区的,速度相对很慢(us级),因此不适合实现XIP系统,不过Nand flash的写速度比Nor的快,更适合做存储和下载系统。

解释二:两种芯片的结构不同

NOR flash之所以可以片内执行,就是因为他符合CPU去指令译码执行的要求。CPU送一个地址出来,NORflash就能给一个数据让CPU执行,中间不需要额外的处理操作。

NAND flash不一样是因为nand flash有地址,数据,命令共用IO口的问题,cpu把地址发出来之后,并不能直接得到数据,还需要控制线的操作才能完成。就是他没有专用的SRAM接口。

解释三:芯片内执行主要是是看芯片可不可以线性存储代码(假如硬件支持芯片接口),只要能保证芯片的存储空间是线性的(也就是无坏块),都可以片上执行

在读取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。有人这么做了,而且也证明是成功的。

文章来源于网络,版权归原作者所有,如有侵权,请联系删除。



关注【一起学嵌入式】,回复加群进技术交流群




觉得文章不错,点击“分享”、“”、“在看” 呗

一起学嵌入式 公众号【一起学嵌入式】,RTOS、Linux编程、C/C++,以及经验分享、行业资讯、物联网等技术知
评论
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 221浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 191浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 173浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 198浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 204浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 233浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 169浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 85浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 560浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 81浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 115浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 128浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 90浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦