nxpRAM与Flash

来源:百度文库 编辑:神马文学网 时间:2024/04/26 06:53:34
Flash的速度较慢,比如-50的Flash,读取只能达20M的速度,而ARM核可以工作在50-60M,甚至更高。那么ARM芯片的CPU执行完一条指令就要等下一条指令读取出来,而不能马上执行下一条。这样因Flash慢而CPU快就造成资源的浪费和系统速度下降。为了解决该矛盾,有厂家采用Flash 中只存储程序(相当于电脑的硬盘),将程序读取到RAM中去执行(类似电脑的内存),那么CPU的速度就能发挥出来。

  而Philips的少管脚ARM芯片(LPC2100系列)没有外部总线,不能接外部程序存储器。所以只能使用片内的Flash存储程序。也不能接外部RAM来运行程序。于是Philips采用了一个比较特殊的方法来解决这个速度矛盾。就是在内部Flash和内部总线之间加了存储加速模块,有128位数据宽度,一次可以从Flash中读取4条指令(注意是4条而不是1条),另外再加上预测分支等功能,使得CPU全速运行时,从Flash 中读取的程序能源源不断地输送进CPU,无需等待。只是在有分支(如调用,跳转)时需要清空流水线造成临时性速度稍微下降。我们知道,程序中绝大部分是顺序执行的指令。

所以PhilipsLPC2100的系列不需要调到RAM中运行。

        下载程序到RAM中运行是为了方便,更快,此情况适合在学习编写小程序时使用,而且不会因下载到Flash而等待。如果程序超出了RAM的范围,那就必须要下载到Flash中运行。每次改一点点程序都要重新下载,会耽误些时间的,特别是很大的程序。Flash的读写速度是比较慢的,肯定比RAM要慢得多。