); ">DSP56800内核是一种可编程的CMOS 16位定点DSP,专为实时
earch=1" target="_blank">数字信号处理和通用计算而设计。该内核由4个并行工作的功能单元组成,可提高系统的处理能力。这些功能模块包括程序控制器和硬件循环单元、地址生成单元(AGU)、数据算术逻辑单元(data ALU)和位操作单元,分别带有独立的寄存器集和控制逻辑。每个功能模块可独立工作或与其它3个模块并行工作,并通过内核的内部地址和数据总线,与其它单元、存储器和存储器映射的外围电路进行接口。因此,在同一时刻,程序控制器可取出第一条指令,地址生成单元可为第二条指令生成多达两个地址,数据ALU则在第三条指令执行乘法运算。
除了功能模块以外,该内核架构还包含3条内部地址总线、4条内部数据总线、一个调试端口以及时钟生成电路。
高性能DSP控制器设计通常需要具有以下4种特性:
高宽带并行存储器传输性能;
支持并行存储器传输并提供DSP寻址模式的AGU;
可进行快速算法计算、具有足够寄存器集的计算单元;
执行循环时,不降低性能的硬件循环机制。
摩托罗拉的架构可满足这些要求,它有如下一些特点:
并行转移(move)指令:灵活的并行转移指令集允许存储器存取与计算单元的运行同时进行。实现高带宽存取计算单元数据,可保持计算单元始终处于繁忙状态,消除了数据进出计算单元时的传输瓶颈效应。在目前的情况下,允许两种类型的并行转移:单向并行转移和双向并行读。这两种转移都在一个指令周期中执行,并占据程序存储器的1个字长位置。
地址生成单元:地址生成单元(AGU)是进行所有地址计算的模块。在DSP56800内核中,AGU包含两个算术单元和自己的寄存器集,可为数据存储器提供高达两个地址,也可在一个指令周期中更新两个地址。它适应两种类型的算法,包括用于通用地址计算的线性算法以及用于创建存储器内数据结构的求模算法,通过更新地址寄存器对数据进行操作,而无需移动大块的数据。
数据ALU单元的快速计算:处理器计算单元的性能取决于它如何存取操作数及其计算能力。
许多传统的DSP设计基于累加器,即无论操作数来自哪里,运算的结果总是存储在累加器中。除了乘法运算不允许累加器作为一个乘数输入以外,运算执行后一个操作数要留在累加器中。
新架构的大量寄存器和正交结构提高了计算的效率,其中算术运算的结果可写入数据ALU的5个寄存器中的任一个。数据ALU输入也允许是立即数,在任何寄存器进行增量运算的同时,进行其它寄存器的运算,从而大大增强了寄存器集的性能。累加器也能够用作乘法器的输入或用来累加。这一技术还减少了存储器的存取次数,因为中间结果无需暂时存储在存储器中。该内核的设计不是管线操作,故在一个指令周期之后乘法或乘法-累加的结果就可获得,而无需两个指令周期。
循环机制:DSP和其它数字计算程序经常使许多处理器的执行时间浪费在一些与数字相关的小型计算循环中,因为这种循环需要进行大量存储器存取。因此,提供一套具有强大寄存器集的灵活并行转移指令十分必要,循环本身的执行时间的最小化也很重要。DSP56800内核使用一种灵活的硬件循环机制
,可不附加任何计算时