| JPEG压缩和数据包流
在下一组试验中,我们检查了各式各样的微处理器结构,看是否有EEMBC的JPEG-压缩和联网数据包基准。JPEG-压缩基准将一个图像分成8×8个像素程序块,然后计算出每个像素程序块的离散余弦变换(DCT)。再用一个数字转换器根据量化矩阵来舍入DCT(离散余弦变换)系数。这种压缩技术把一个可变长度代码用于这些系数并且把压缩数据流写到存储器里。这种数据包流基准可处理2M字节的数据。它能接收和处理数据包。两种基准能处理大量的无重复的数据。这一特性将一个数据超高速缓存减至最低限度。
我们从STMicroelectonics公司在50MHz运行的ST20C2微控制器入手。这一低端的32位RISC处理器有2k字节指令和数据超高速缓存以及一个16位外存接口。就这种基准结构而言,存储器总线是50MHz,存取速率为4-3-3-3。我们用STMicro公司的ST20ANSIC编译器文本1.8版本来编译EEMBC基准规范。切断指令高速缓存会使性能依据基准的不同下降50~70%,而没有一个数据高速缓存只能使性能下降21%(图2)。(顺便说一下,我们已自主地将CJPEG和数据包流计算归一化。)
在用NEC公司的V832处理器来做这种分析时,会出现另外一个令人感兴趣的是示出在一个有较大的高速缓冲寄存器的快速处理器上性能明显下降。如独自把两个处理器的计算归一化,当我们切断高速缓存的时候,V832性能下降92%(图3)。这种V832是一个143MHz,具有4k字节指令和数据高速缓存的32位RISC处理器。(Takahashi和我们用Green
Hills Software公司的NEC 800文本1.8.9版本编译器编译这一EEMBC基准)如果高速缓存不能实现,这种143MHz处理器基本上就以外部总线速度运行。对于V832,我们还编译了码尺寸优化的CJPEG代码并且看到码尺寸从36118字节下降到24842字节,下降了将近12K个字节。,而且性能下降8%。这种V832板,Midas
RTE-V832-PC,允许我们便于在16和32位之间转换外部的总线宽度。我们用这两种结构操作CJPEG和数据包流基准(图4)。(我们每个基准的最快性能都标准化到1)。两个基准的性能综合下降12~14%;根据你的应用需要,牺牲性能来降低存储器的成本可能是值得的。
频率与存储器的关系
Kulk ami和我们用IDT公司的79RC64575处理器同这家公司的IDT79S465+IDT79S574母板/子板组合在一起做过一次类似的试验。79RC64575是一种基于MIPS的64位RISC处理器。我们所用的实现方法是一个50MHz存储器总线和含有32k字节指令与数据高速缓存在250MHz下运行。编译程序是IDT的自产GNU版本。数据包流基准的数据表明,当我们将64位外部总线宽度减半的时候,这一处理器的性能会下降20%。同样,当我们切断高速缓存的时候,性能下降94%。(顺便说一下,就我们在这一项目中用的三个MIPS处理器来说,我们不再切断这些高速缓存,我们修改连接文件以便ROM监控器把代码和数据装入非高速缓存区。)
IDT的处理器板带有供阅读用的存取速度分别为7-1-1-1和3-1-1-1的SDRAM和SRAM。通过修改连接文件,我们把基准代码和数据置于SDRAM或SRAM上。板上的一根跨接线也允许我们改变处理器频率,但存储器总线速度要保持恒定不变(图5)。要注意性能调节对于SDRAM和SRAM两者的实现来差不多都是呈线性的。但是性能的δ在250MHz时示出21%时,存储器速度在比较高的频率时就成为关键性的因素。将这一数值与在150MHz时的9%的性能δ加以对比。想起性能下降20%相当于用32位存储器总线运行时相关的下降,这一数值会使人们对设计的权衡办法选择有了更深入的了解。
|