冯诺依曼与哈佛结构计算机的区别(精品)冯诺依曼型计算机与哈佛结构计算机的区别
说到计算机的发展,就不能不提到德国科学家冯诺依曼。
从20世纪初,物理学和电子学科学家们就在争论制造可以进行数值计算的机器应该采用什么样的结构。
人们被十进制这个人类习惯的计数方法所困扰。
所以,那时以研制模拟计算机的呼声更为响亮和有力。
20世纪30年代中期,德国科学家冯诺依曼大胆的提出,抛弃十进制,采用二进制作为数字计算机的数制基础。
同时,他还说预先编制计算程序,然后由计算机来按照人们事前制定的计算顺序来执行数值计算工作。
(一)冯?诺依曼结构
1945年,冯?诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺曼型结构”计算机。
冯.诺曼结构的处理器使用同一个存储器,经由同一个总线传输。
传统计算机采用冯?诺依曼(Von Neumann)结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器并在一起的存储器结构。
冯?诺依曼结构的计算机其程序和数据公用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。
处理器执行指令时,先从储存器中取出指令解码,再取操作数执行运算,即使单条指令也要耗费几个甚至几十个周期,在高速运算时,在传输通道上会出现瓶颈效应。
如图 1-3 所示,冯?诺依曼结构的计算机由 CPU 和存储器构成,程序计算器(PC)是CPU 内部指示指令和数据的存储位置的寄存器。
CPU 通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指令进行译码,最后执行指令规定的操作。
在这种体系结构中,程序计数器只负责提供程序执行所需要的指令和数据,而不决定程序流程。
要控制程序流程,则必须修改指令。
目前使用冯?诺依曼结构的 CPU 和微控制器有很多。
其中包括英特尔公司的8086及其他CPU ,ARM公司的ARM7、MIPS公司的MIPS处理器也采用了冯?诺依曼结构。
冯.诺曼结构处理器具有以下几个特点:
必须有一个存储器;
必须有一个控制器;
必须有一个运算器,用于完成算术运算和逻辑运算;
必须有输入和输出设备,用于进行人机通信。
冯?诺依曼的主要贡献就是提出并实现了“存储程序”的概念。
由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。
但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。
在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。
从指令流的定时关系也可看出冯?诺依曼结构与哈佛结构处理方式的差别。
举一个最简单的对存储器进行读写操作的指令,指令1至指令3均为存、取数指令,
对冯.诺曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。
(二)哈佛结构
哈佛(Harvard)结构是一种将程序指令存储和数据存储分开的存储器结构。
哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。
与两个存储器相对应的是系统中的4套总线:程序的数据总线与地址总线,数据的数据总线与地址总线。
这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,是数据的吞吐率提高了1倍。
又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠。
如图1-4 所示,哈佛结构的计算机由 CPU、程序存储器和数据存储器组成,程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。
哈佛结构的CPU 通常具有较高的执行效率。
目前使用哈佛结构的 CPU 和微处理器有很多,除了所有的DSP 处理器,还有摩托罗拉公司的MC68系列、Zilog 公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。
例如最常见的卷积运算中, 一条指令同时取两个操作数, 在流水线处理时, 同时还有一个取指操作, 如果程序和数据通过一条总线访问, 取指和取数必会产生冲突, 而这对大运算量的循环的执行效率是很不利的.
数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字
信号处理器中大多采用哈佛结构。
(三)两者的比较
区别是地址空间和数据空间分开与否。
冯诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。
一般DSP都是采用改进型哈佛结构,就是分开的数据空间和地址空间都不只是一条,而是有多条,这根据不同的生产厂商的DSP芯片有所不同。
在对外寻址方面从逻辑上来说也是一样,因为外部引脚的原因,一般来说都是通过相应的空间选取来实现的。
与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:
, 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和
数据并存;
, 使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条
总线之间毫无关联。
芯片文档上的冯诺依曼和哈佛结构指的是与CPU直接相连的存储器之间的结构关系,这包括ARM9,ARM9的哈佛结构表现在与ARM9TDMI内核直接相连的ICACHE 和DCACHE之间的结构关系。
而区别它们更多的在于它们是不是具有独立的地址空间,如果有的话,就是哈佛结构,如果没有就是冯诺依曼结构。
而具有独立的地址
空间也就意味着在地址总线和控制总线上至少要有一种总线必须是独立的,这样才能保证地址空间的独立性。
——潘颖
班级:电嵌Q0941班
学号:091602016 1、软件方面
这应该是最大的区别了。
引入了操作系统。
为什么引入操作系统,有什么好处嘛,
1)方便。
主要体现在后期的开发,即在操作系统上直接开发应用程序。
不像单片机一样一切都要重新写。
前期的操作系统移植工作,还是要专业人士来做。
2)安全。
这是LINUX的一个特点。
LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。
这在单片机的软件开发中没见到过。
3)高效。
引入进程的管理调度系统,使系统运行更加高效。
在传
统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。
2、硬件方面
现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。
但是与32ARM相比还是有些差距吧。
ARM芯片大多把SDRAM,LCD等控制器集成到片子当中。
在8位机,大多要进行外扩。
总的来说,单片机是个微控制器,ARM显然已经是个微处理器了。
引入嵌入式操作系统之后,可以实现许多单片机系统不能完成的功能。
比如:嵌入式web服务器,java虚拟机等。
也就是说,有很多免费的资源可以利用,上述两种服务就是例子。
如果在单片机上开发这些功能可以想象其中的难度。