代码改变世界

本地执行(XIP)

2009-11-28 09:55  Andy Ge  阅读(912)  评论(0编辑  收藏  举报

本地执行(eXecute In Place,XIP)是关于ROM/FLASH代码启动的一个新技术。传统中,存在一个规则,即代码必须从RAM空间启动执行,原因是多方面的:CPU取指令的过程是基于线性地址的,而磁盘等非RAM类的存储介质的访问时非线性寻址的(如通过设备/柱面/扇区等参数),以块为访问单位的(CPU寻址是字节单位的),且ROM类介质还面临不可写的问题。而XIP则允许程序代码不进入RAM,直接在ROM中执行。

操作系统和应用程序必须从RAM启动执行的规则,对嵌入式系统的最大影响是需要较大的RAM空间开销。如果XIP执行方式可行,则将有效地节省RAM的开销,并加快系统的启动时间(即拷贝到RAM的时间开销)。

优点:本地执行时,代码段不必先加载到物理内存中,WINCE只分配虚拟地址空间给代码段,并把它映射到Flash ROM上。这就大大节省了物理内存。

缺点:XIP只支持允许现行访问的Flash ROM(常见的NOR Flash是线性访问的,而NAND Flash是块访问的)。XIP加载方式的缺点就是执行速度相对较慢,CPU访问ROM的速度远慢于访问RAM的速度。因此XIP不太适合实时性要求较高的场合。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/joyzml/archive/2009/11/14/4810260.aspx