处理器中的cache 是存放于处理器附近的高速存储器 ,它可以用来保存运算处理时的一些共有的指令,从而加速运算的速度。 在本文中,将比较 cache 存储器和系统中的普通的存储器,随后将介绍 cache 的一些基本理论和基本术语,以及在高速处理器结构中cache 的重要性。以TI 的TMS320C64x DSP 结构为基础,将着重向开发者介绍 cache 是如何工作,如何配置,以及如何正确使用cahce,本文将以cache的一致性贯穿全文。 存储器结构 在图一中,左边的模块介绍了普通的存储器系统结构,CPU 和内部存储器均工作在 300MHZ。当 CPU 访问外部存储器时,将不会发生存储器访问禁止的情况。并且当访问内部存储器时也不会发生访问延迟的情况。 当 CPU 的时钟增加到 600MHZ 时,只有当存储器的速度也增加到 600MHZ 时才不会发生访问等待的状态。很不幸,对于大多数情况下同样频率工作在 600MHZ 的内部存储器价格将十分昂贵。而300MHZ的也不是好的选择,因为将大幅降低 CPU 的频率。设想一个算法需要在每个周期访问存储器,每一次对存储器的访问需等待一个周期,加倍了访问周期从而抵消了 CPU 的双倍工作频率。 图一:普通存储器和多层存储器结构 解决的办法就是采用一个多层次的存储器。最靠近CPU 的存储器由一块速度快但体积小组成,访问时不存在任何延迟。稍远离一些CPU 的采用体积大但速度稍慢的存储器。对于低级别的存储器来说,最靠近CPU 的这块存储器便是典型的cache 存储器 位置法则 当然,这个解决办法必须工作在CPU 能够最快访问最近的存储器的情况时。由于位置法则,对于大多数CPU 来说这一情况都是适用的。这意为着在一个特定的窗口时间内,程序仅仅访问全部地址空间的一块相关的小区域。这包括一下两个基本的位置种类: 1、空间位置法则:一块刚刚被访问过的资源附近的资源更有可能被访问 2、时间位置法则:在过去的一个时间点刚刚被访问的资源更有可能马上在将来被访问 空间位置法则是由计算机程序的编程风格所决定的,一般情况下,相关的数据将被连续的存储在存储器中。例如一个共同的类型在计算时,总是将第一个元素放在第一列,然后是第二个元素,以此类推。同理,时间位置法则形成的原因是程序包含的结构比如循环结构调用的是相同的指令(甚至是同样的数据),以此反复。 图二阐述了空间位置法则,它描述了一个6 阶 FIR 滤波器 。为了计算 y[0]输出,将从输入数据缓存x[](值由预算法则对内存 ...