“片内执行”这个词很容易误解:难道NorFlash有CPU的神力可以直接执行程序?当然不是,请看:
Execute in place (XIP) is a method of executing programs directly from long term storage rather than copying it into RAM。
重要的是后半句,片上执行只是说明NorFlash有类SRAM接口,CPU可以把它当作RAM直接取指令,不需要在执行程序之前把程序复制到RAM中。
计算机系统中一般将bootloader单独放在具有XIP能力的Flash或ROM上,但是为何不能直接运行在大容量的磁盘或NAND存储器中?
这就和CPU取指令有关系了,CPU取指令是一条指令一条指令逐步取出的,一条指令多长,不同平台各不相同,但基本都在2字节到8字节之间。
而磁盘和NAND都是块存储设备,显然无法满足CPU取指令的要求。