按用途分类:
通用型:将可开发的资源(ROM、RAM、I/O、 EPROM)等全部提供给用户。
型:其硬件及指令是按照某种特定用途而设计,例如录音机机芯控制器、打印机控制器、电机控制器等。
2. 存储器结构
传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘发生4次存储器访问,用掉至少四个指令周期。
大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存储器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。
典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。
GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以*(也可能根本不知道)。与此相反,DSP使用多个片内 存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必 须保证处理器能够有效地使用其双总线。
此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。
因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。 GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏精确到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。 [2]
DSP处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的,只有用软件来实现。