的哈佛架构是在其中的程序的数据和指令都位于存储器分开细胞,其可以独立地寻址的计算机的配置。
即,该术语用于包含两个单独区域的计算机系统:用于命令或指令以及用于数据。因此,该架构的主要功能是存储物理上分离的数据,从而为指令和数据提供不同的信号路径。
来源:摘自Nessa los-自己的作品,CC BY-SA 3.0,commons.wikimedia
在此体系结构中,系统的这两部分的格式和媒体都可能是不相等的,因为这两个部分是由两个单独的结构组成的。
哈佛架构的一些示例涉及早期的计算机系统,其中程序指令可以在一种介质上,例如在打孔卡上,而存储的数据可以在另一种介质上,例如在磁带上。
应用领域
这种体系结构在视频和音频处理产品中具有广泛的应用。使用每种处理视频和音频的工具,可以看到哈佛体系结构的轮廓。
ADI公司Blackfin处理器是主要用途的特定设备。在其他基于电子芯片的产品中,哈佛架构也得到了广泛使用。
但是,大多数计算机使用冯·诺依曼体系结构并使用CPU缓存来实现重叠。
起源
1940年代,在霍华德·艾肯(Howard Aiken)的领导下,在哈佛大学完成的工作创造了一种原始的基于中继的计算机,称为哈佛马克一世(Harvard Mark I),这是哈佛建筑概念的源头。
该计算机使用单独的存储单元来存储数据和指令。然后,此体系结构有了重大发展。
艾肯鼓励将单独的存储器用于数据和程序指令,每个存储器具有单独的总线。
原始的哈佛体系结构通常将指令存储在打孔的磁带上,并将数据存储在机电计数器上。
这些早期机器的数据存储完全在中央处理单元内。另一方面,他们没有允许将指令存储为数据。操作员必须加载程序。
哈佛架构可以同时处理数据和执行指令,因为它们每个都有自己的地址总线。
模型
该模型的特征在于,信息总线和存储器在物理上针对数据和程序代码是分开的。
由于总线自主运行,因此可以同时获取数据和程序指令,从而提高了单总线设计的速度。
因此,哈佛模型变得更加复杂。但是,使总线独立可避免冯·诺依曼体系结构产生的瓶颈。
对于具有一定复杂度的电路,计算机可能会更快,因为搜索指令和访问数据不必争夺一条内存总线。
要工作,有两个内存地址。因此,有一个用于机器指令的存储器寄存器和另一个用于数据的存储器寄存器。
与使用总线在内存中移动指令和数据的冯·诺依曼架构不同,哈佛架构使用一个存储区存储数据,将另一个存储区存储指令。
改良的哈佛建筑
在当今的计算机中,程序和数据使用的存储区域没有物理分解。因此,可以说它们在技术上具有冯·诺依曼架构。
但是,修改后的哈佛体系结构可以最好地代表当今的计算机。
尽管当前的处理单元共享内存,但是它们具有某些元素(例如唯一的指令),可以防止数据与指令纠缠在一起。这称为修改后的哈佛架构。
因此,修改后的哈佛架构具有两条单独的总线,一条总线用于代码,一条总线用于数据,但是内存本身是一个物理共享的元素。
内存控制器就是更改的地方,因为该设备是处理内存以及如何使用内存的设备。
改良的哈佛架构为现代计算机设计提供了支持。它们用于微控制器和数字信号处理。
哈佛建筑如何运作?
哈佛架构的程序和数据具有不同的内存地址区域。
这使得能够以一种方式设计电路,使得可以使用总线和控制电路来处理来自程序存储器的信息流,并使用单独的总线来处理到数据存储器的信息流。
使用单独的总线意味着可以检索和执行程序,而不会因偶尔将数据传输到数据存储器而中断。
例如,在该体系结构的简单版本中,程序恢复单元可能会忙于检索程序序列中的下一条指令,并并行执行可能是先前程序指令一部分的数据传输操作。 。
在此级别上,哈佛体系结构具有局限性,因为通常不可能将程序代码放入数据存储器中并从那里执行。
建筑增材
可以将许多更复杂的现有变体添加到哈佛架构的简单形式中。
常见的添加方法是将指令高速缓存添加到程序的数据总线,从而使指令执行单元可以更快地访问程序的下一步,而不必进入较慢的内存即可到达该步骤。每次需要该程序。
内存地址
哈佛体系结构计算机具有不同的指令和数据地址区域:指令地址一与数据地址一不同。
指令地址1可以包含一个24位的值,而数据地址1可以指示一个8位的字节,这不是该24位值的一部分。
记忆系统
由于有一个单独的指令和数据存储区,将信号与代码和数据的存储区分开,因此可以同时访问每个存储系统。
优点
-由于数据和指令是通过不同的总线传输的,因此传输中损坏的可能性较小。
-以相同的方式访问数据和指令。
-允许使用不同的存储介质来存储指令和数据。例如,您可以将指令放入便宜的ROM中,而将数据放入昂贵的RAM中。
-两个存储器可以使用不同的单元大小,从而有效利用资源。
-它具有更大的内存带宽,通过为指令和数据提供单独的内存,可以更容易预测。
防护等级
在没有内存管理单元的系统中,它提供了额外的保护级别,因为数据无法以代码形式启动,这会使系统面临许多问题,例如缓冲区溢出。
这就是为什么它在小型嵌入式系统(例如微波炉或时钟)中很受欢迎的原因。
更高的速度
哈佛架构既可以读取指令,也可以同时快速访问数据存储器。
它提供了更高的性能,因为它允许同时获取要存储在单独的存储器中并通过不同总线的数据和指令。
只要不必在代码和数据存储器之间共享资源,哈佛体系结构通常将帮助具有一定复杂度的计算机比冯·诺依曼体系结构运行得更快。
如果引脚限制或其他因素迫使使用单个总线来访问两个存储空间,则这些好处可能会大为废除。
缺点
更高的复杂性和成本
哈佛体系结构的问题在于其巨大的复杂性和成本,因为现在需要一根总线而不是一根数据总线。
生产两总线计算机的成本要高得多,并且制造时间更长。它需要用于两个总线的控制单元,这更加复杂,耗时且开发昂贵。
对于制造商来说,这意味着更复杂的实施。它需要CPU上更多的引脚,更复杂的主板,必须复制RAM芯片以及更复杂的缓存设计。
很少用
哈佛体系结构并未得到广泛使用,使其难以实施。这就是为什么很少在CPU外部使用它的原因。
但是,有时会在CPU中使用此体系结构来管理其缓存。
内存空间滥用
如果数据存储器中有可用空间,则不能将其用于存储指令,反之亦然。
因此,专用于每个存储器的特定存储器必须在制造过程中仔细平衡。
参考文献
- 列表差异(2019)。冯·诺依曼与哈佛建筑之间的区别?摘自:listdifferences.com。
- PC杂志(2019)。定义:哈佛建筑。摘自:pcmag.com。
- Techopedia(2019)。哈佛建筑。摘自:ceilingpedia.com。
- 斯科特·桑顿(Scott Thornton)(2018)。冯·诺依曼和哈佛建筑之间有什么区别?单片机技巧。摘自:microchiptips.com。
- 维基百科,免费百科全书(2019)。哈佛建筑。摘自:en.wikipedia.org。
- 疯狂的程序员(2019)。冯·诺依曼与哈佛建筑之间的区别。摘自:thecrazyprogrammer.com。