打印
[DSP编程]

冯诺依曼和哈弗结构的却别

[复制链接]
4424|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
simale|  楼主 | 2013-8-31 22:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哈弗结构的程序区和数据区是分别存储的,冯诺依曼结构的8086可以采用流水线指令,哈佛结构的dsp也可以采用流水线指令,那么哈佛结构和冯诺依曼相比,优势在哪里?

相关帖子

沙发
zhangmangui| | 2013-8-31 22:53 | 只看该作者
在DSP算法中,最大量的工作之一是与存储器交换信息,这其中包括作为输入信号的采样数据、滤波器系数和程序指令。例如,如果将保存在存储器中的2个数相乘,就需要从存储器中取3个二进制数,即2个要乘的数和1个描述如何去做的程序指令。目前DSP内部一般采用的是哈佛结构,它在片内至少有4套总线:程序的数据总线,程序的地址总线,数据的数据总线和数据的地址总线。这种分离的程序总线和数据总线,可允许同时获取指令字(来自程序存储器)和操作数(来自数据存储器),而互不干扰。这意味着在一个机器周期内可以同时准备好指令和操作数。有的DSP芯片内部还包含有其他总线,如DMA总线等,可实现单周期内完成更多的工作。这种多总线结构就好像在DSP内部架起了四通八达的高速公路,保障运算单元及时地取到需要的数据,提高运算速度。因此,对DSP来说,内部总线是个资源,总线越多,可以完成的功能就越复杂。超级哈佛结构(superHarvard architecture,缩写为SHARC),它在哈佛结构上增加了指令cache(缓存)和专用的I/O控制器。
哈佛结构处理器有两个明显的特点:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。  
  改进的哈佛结构,其结构特点为:使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输。

使用特权

评论回复
板凳
simale|  楼主 | 2013-9-1 10:06 | 只看该作者
zhangmangui 发表于 2013-8-31 22:53
在DSP算法中,最大量的工作之一是与存储器交换信息,这其中包括作为输入信号的采样数据、滤波器系数和程序 ...

那为什么冯诺依曼结构的8086还有流水线功能?哈佛结构的dsp编程特点是什么呢?

使用特权

评论回复
地板
charrijon| | 2013-9-1 22:10 | 只看该作者
X86即使有了流水,还是慢啊,主要是采用了复杂指令集,而DSP采用精简的指令集,这个速度差很多,另外X86的浮点处理速度很慢,我测试过同样的一段程序,X86速度300MHZ,而DSP150MHZ,但是X86花了500多us,而DSP只花了40-50,速度差太远了,当然X86采用double型,而DSP用float型。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

86

帖子

0

粉丝