Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74069
  • 博文数量: 15
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 265
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-21 18:15
文章分类

全部博文(15)

文章存档

2009年(8)

2008年(7)

我的朋友

分类: LINUX

2009-03-30 20:06:21

哈佛结构

arm9采用的是哈佛结构,下面是对与哈佛结构的介绍,程序经过gcc编译后会分为代码段和数据段,当程序执行的时候代码段的内被读到代码cache中,数据段内容呗独到数据cache中,这样指令和数据就可以分开处理了

    数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构,如下图所示

图   哈佛结构

与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:

  • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;

  • 使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

     后来,又提出了改进的哈佛结构,如下图所示

图    改进型哈佛结构

其结构特点为:

  • 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;

  • 具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;

  • 两条总线由程序存储器和数据存储器分时共用。

    在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯.诺曼结构与哈佛结构处理方式的差别。举一个最简单的对存储器进行读写操作的指令,如下图所示,指令1至指令3均为存、取数指令,对冯.诺曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。

图  .诺曼结构处理器指令流的定时关系示意图

     如果采用哈佛结构处理以上同样的3条存取数指令,如下图所示,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度。

    哈佛结构强调了总的系统速度以及通讯和处理器配置方面的灵活性。

图   哈佛结构处理器指令流的定时关系示意图

========================================================================

冯.诺曼结构

    1945年,冯.诺曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“.诺曼型结构”计算机。冯.诺曼结构的处理器使用同一个存储器,经由同一个总线传输,如下图所示:

图   冯.诺曼结构

    .诺曼结构处理器具有以下几个特点:

  • 必须有一个存储器;

  • 必须有一个控制器;

  • 必须有一个运算器,用于完成算术运算和逻辑运算;

  • 必须有输入和输出设备,用于进行人机通信。

    .诺曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。   

     在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯.诺曼结构与哈佛结构处理方式的差别。举一个最简单的对存储器进行读写操作的指令,如下图所示,指令1至指令3均为存、取数指令,对冯.诺曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。

图  .诺曼结构处理器指令流的定时关系示意图

阅读(2599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~