发布时间:2008-11-17阅读:501
为了更彻底地理解DSP专家们在寻求完美处理器的道路上选择的不同方向,首先应该了解他们潜在的设计理念和策略。Taylor和Mellott"在一般语境下讨论了这个议题,下面几节的讨论也是出于这个目的。首先陈述通用处理器(f/PS)和DSP处理器应具备的功能和期望具备的属性。
多数通用处理器具备的特性包括(并非完全):
①处理器硬件支持多种数据类型。
②多级高速缓存。
③硬件管理分页虚拟内存。
④支持硬件上下文管理,包括超级用户和普通用户模式。
⑤不可预测的指令执行时间。
⑥通用大寄存器文件。
⑦正交指令集。
⑧简单或复杂的内存寻址方式,取决于处理器是RISC还是cISC。
通用处理器采用的数据类型中最重要的是字符型,其次是整数型。从市场份额的角度看,通用处理器主要用于涉及文本和数据库处理的商业用途。对于通用计算机中运行的大多数应用而言,浮点算法一般并不关键,尽管也存在一些情况相反的特殊应用(例如,技术专家和科学家的工作站)。
高速缓存已被证实对许多通用处理器而言是一种有力的增强工具。通用计算机中有时会包含容量相当大的高速缓存,这是基于一个假设,即应用程序中指令和数据呈现区域性,这个假设有时被称作“Cache假设”。Cache假设经常被用于证明多处理器的通用计算机中设计共享内存的有效性,其中主内存通过一条共享总线与各处理器相连。如果cache假设被违反,那么单处理器和多处理器通用计算机的性能一般会下降。
许多通用结构中都包含大寄存器文件,尽管也有一些例外(如INTEL x86)。大多数通用机器的操作对象为标量数据,这时如果Cache假设成立的话,那么大寄存器文件一般会带来便利。通用寄存器和正交指令集有助于编译器产生有效的目标代码和汇编代码。由于外部存
储器只能通过加载和存储指令来访问,而实际中一般期望有更多操作数保留在现场以增强性能,因而许多RISC处理器利用大寄存器文件来增强其中的加载-存储结构。
在通用计算机中一般期望具各对虚拟内存和多进程上下文管理的硬件支持。大多数通用处理器支持分时执行多个进程,即便是单用户的桌面计算机在后台一般也有多个进程在运行。当对主内存的需求超过可用资源时,虚拟内存允许程序以较低的性能运行。虚拟内存的缺点在于增加了数据访问的等待时间,这是由地址转换以及更长的页面失效等待造成的。当后者发生时处理器一般会奶换到另一个进程,这样在机器处理页面失效时处理器不致空闲。因而,通用计算机的多进程上下文支持对于执行多任务时优化利用处理器资源是很关键的。
通用处理器中指令执行时间一般是不可预测的,这是由各类用于增强处理器性能的设计造成的结果。高速缓存和虚拟内存给指令执行时间引人大量不确定性。对指定位置的内存进行读写所需的时问依赖于高速缓存是否命中、哪一级缓存命中以及虚拟地址是否存在于查找表缓存器(TLB)中。当高速缓存未命中而需要被刷新时,主内存的等待时间将增长。同时,当其他处理器,比如直接存取访问(DMA),造成访问竞争时,等待时间也要发生变化。不同的结构性增强,比如超标量执行、预测执行、乱序执行以及分支目标缓存等,使得预测指令执行时间变得更加困难。
经常遇到的另一类通用处理器是微控制器。大多数微控制器是从已成功的微处理器设计中派生出来的,不过也有一些是独创的设计。微控制器主要是针对嵌入式应用的,一般无宿优良的算法性能。微控制器一般取消诸如大容量高速缓存和虚拟内存这样的特征,而会加、集成的外设接口以支持预期的嵌人式应用。