当前位置:首页 >> 解密信息 >> 技术文档

编解码芯片的选择

时间:2011-07-11 13:28:07

     当年Intel和AMD争夺PC芯片市场时,Intel的主频高于AMD,后来AMD打出了主频*指令数/周期的牌,引入了新的概念。Trimedia每周期可以执行5条指令,因为Trimedia使用了VLIW,每条指令32位。其中两条可以做乘加运算,另外三条可以用于简单的算术逻辑运算或存取数据。于是,2*133+3*133=266+400。而Blackfin,每个周期最多可以执行3条指令,其中只有一条是做乘加运算,另两条都是存取操作。算作1*600+2*600=600+1200。Blackfin中的乘加指令的执行时间与Trimedia中的大致相同,都是3个时钟周期后得到结果。单从每秒的DSP运算指令数来看,Blackfin是Trimedia的两倍多。每秒的算术逻辑运算和控制指令数,Blackfin是Trimedia的三倍。从简单算术逻辑运算和控制指令来看,Blackfin是比Trimedia稍强些。
        下面以视频处理中最典型的IDCT运算为例,来比较这两款芯片的处理能力。在Trimedia中,使用IFIR16, DUALUCLIPI, PACK16MSB,MERGEDUAL16LSB这四个DSP指令,一个8点的IDCT需要大概12个周期。在Blackfin中,使用双乘双加指令,可以在21个周期中完成一个8点的IDCT。因为Blackfin的主频是Trimedia的4倍多,单从指令方面看,执行一个8点IDCT,Blackfin是Trimedia的两倍。
        在实际的MPEG-4解码中,需要执行的不是一个8点IDCT,而是一个8*8点的二维IDCT。在上面的对执行指令周期的计算时,一个隐含的前提假设是所有的数据都是在寄存器中。做一个8*8的二维IDCT至少需要32个32位寄存器。因为Trimedia中有128个寄存器,而Blackfin中只有8个数据寄存器,因此,在Blackfin中就不可避免要在2维IDCT执行中作从内存到寄存器的数据传递工作。虽然,在Trimedia和Blackfin中都使用了cache来减少这种数据传递对运算的影响,但这仍然很难完全避免。当cache miss发生时,CPU不得不停下来,等待数据的传入。如果把相同的工作频率为133Mhz的SDRAM与Trimedia和Blackfin连接,则一个Trimedia中的cache miss要耗掉3个时钟周期,而一个Blackfin中的cache miss则要用掉5个时钟周期。所以,虽然Blackfin的芯片主频很高,但因为它的寄存器很少,片内内存不可能存下所有的数据,cache miss就不可避免要发生,此时,他的计算能力就要大打折扣。
        Cache miss对运算速度的影响非常大,尤其是在做motion compensation时,数据在内存和寄存器之间频繁的导入导出。当CPU工作频率和内存频率相差越大,cache miss的影响就越大。当使用adi提供的编译环境visual DSP调试程序并计算cycles时,cache miss是不计算在内的。因此,当把软件仿真的MPEG-4 decoder调试好,放在板子上测试时,就会发现解码时间明显变长,很是失望。
解密技术
解密问题
芯片解密