在微控制器尺寸和成本的限制下,M4K内核内部不支持指令高速缓存(I-cache)或数据高速缓存(D-cache)的标准功能。本文重点讨论的一个内容--SRAM接口,这是MIPS32 M4K内核的一个标准功能。
M4K内核SRAM接口基本描述
M4K内核SRAM接口是M4K内核的通用高速存储器接口。它可为指令存储器和数据存储器路径提供低延迟接口,支持单周期和多周期存储器存取。 必须指出,SRAM接口不能直接与外部存储器件连接,若要实现外部存储连接,需使用一个外部存储控制器。必须使用固定映射表(FMT)和SRAM接口,以提供完整的存储器控制逻辑。一种是置于CPU与主存间的高速缓存,它有两种规格:一种是固定在主板上的高速缓存(Cache Memory );另一种是插在卡槽上的COAST(Cache On A Stick)扩充用的高速缓存,另外在CMOS芯片1468l8的电路里,它的内部也有较小容量的128字节SRAM,存储我们所设置的配置数据。还有为了加速CPU内部数据的传送,自80486CPU起,在CPU的内部也设计有高速缓存,故在Pentium CPU就有所谓的L1 Cache(一级高速缓存)和L2Cache(二级高速缓存)的名词,一般L1 Cache是内建在CPU的内部,L2 Cache是设计在CPU的外部,但是Pentium Pro把L1和L2 Cache同时设计在CPU的内部,故Pentium Pro的体积较大。Pentium II又把L2 Cache移至CPU内核之外的黑盒子里。SRAM显然速度快,不需要刷新的操作,但是也有另外的缺点,就是价格高,体积大,所以在主板上还不能作为用量较大的主存。
双模操作
SRAM接口的初始配置称为双模。在这种模式下,指令和数据通道彼此隔离。数据有独立的读写总线(D-SRAM),还有D-SRAM接口控制信号和一个独立的指令侧(I-SRAM)接口,以及其互补I-SRAM控制信号。
双模有助于I-SRAM和D-SRAM接口的同步处理,消除任何可能出现在公用总线接口上的延迟,防止其减缓程序的执行。在这个模式下,内核可达到1.5 DMIPS/MHz的标称性能。双模结构如图1所示。
标准模式
标准模式是标准接口的一个配置选项,在这种模式下,为了节省必须从内核发送的信号总数,I-SRAM和D-SRAM信号合并在一起。除了数据写总线外,D-SRAM接口是完全禁用的,所有数据读周期都自动改变方向,以使用I-SRAM读总线。
在该模式中,内核的平均性能大概是1.2 DMIPS/MHz。然而,由SRAM接口内核暴露的活跃信号总数是122个,比双模节省87个信号。减少接口使用的活跃信号数量,对于成本非常有限、总裸片面积比绝对性能更重要的设计来说,是一种更经济有效的方式。
SRAM接口标准模式如图2所示。
处理中断
SRAM接口提供了中止指令处理的能力,这种能力可中止M4K内核5段流水线中任何指令处理。这有助于外部系统控制器立即响应外部事件,如中断请求或通过EJTAG调试接口请求。在处理典型微控制器应用中高度确定性性质时,快速响应外部中断事件至关重要。
对接口信号连接有限的器件提供支持
这个功能通常用于接口外设的总线锁存和总线停止的组合,如ADC。该类型的混合信号器件通常不提供32位位宽的接口。
总线锁存和总线停止
SRAM接口提供输入控制信号,在外部存储控制器禁用这个信号之前锁住数据总线,以防止CPU进一步写处理。由此,可不用担心多线程存储周期的损害。SRAM接口还提供控制信号,利于总线停止,使设计师将速度更慢的存储器和外设连接到系统成为可能。这些器件可包括速度更慢的非易失性RAM和混合信号器件,在将请求的数据传送到总线之前,它们需要更多的等待时间。
缓存关联信号
虽然M4K内核不包含任何高速缓存,但仍能指明出现在地址总线上的当前存储器地址是否可以进行缓存。外部存储控制器能够利用这些状态信号实现L2高速缓存结构。
M4K SRAM接口在微控制器领域的应用
利用上述这些功能,设计师们能够对于微控制器系统环境中使用M4K SRAM接口的多种优势有所认识。
首先,紧密耦合的接口意味着大多数处理任务是在单时钟周期内完成的。除非当设计师执行总线停止时,需要考虑速度较慢的存储器件的完成周期。而且,连接到该接口的控制逻辑必须只能处理指令和数据,以使整个逻辑设计不那么复杂。另外,可能还要锁住总线,使原子处理的完成能够不受排队周期的影响。SRAM指令执行速度要比DRAM快得多。Cold-Fire5329处理器内部集成了32 KB的SRAM,本设计方案将充分利用处理器片内SRAM来对解码程序进行优化。首先对源代码中的主要解码函数进行分析,如表1所列。可以看到驱动写函数(write)、子带综合(MPEGSUB_synthesis)、反向修正离散余弦变换(imdct_I)和快速离散余弦变换(fast_dct)对处理器资源消耗较大,几乎占用80%的解码时间。根据分析结果,分别把音频驱动程序和上述解码函数放进SRAM中执行,以提高流媒体解码器的执行速度,降低其对处理器资源的消耗。
固定映射表(FMT)可减少外部存储控制器所需的逻辑和解码量。除了存储器映像外设,以及对微控制器可用的存储器件绝对尺寸外,有源区都在定义的边界之内。
在双模操作下,指令提取路径和数据读/写路径是独立的。这些独立的数据通道有助于存储控制器逻辑优化存储器件的类型和尺寸。
中止流水线中,任何处理的能力都有助于在调试环境中实现快速响应和精确的断点控制。
基本上,L2缓存可以使用M4K内核的本地信号执行,从而简化L2缓存控制器。