CPU|电脑沿用冯·诺伊曼结构而不使用哈佛结构。

CPU|电脑沿用冯·诺伊曼结构而不使用哈佛结构。

文章图片

CPU|电脑沿用冯·诺伊曼结构而不使用哈佛结构。

文章图片


哈佛结构是在冯洛伊曼结构上演变而来 , 部分并行处理 , 性能有所提升!但硬件需要增加投入 。 在嵌入式设备里 , 哈佛结构的特性非常吻合 , 所以使用率比较高 。 而在计算机里 , 哈佛结构已经和冯洛伊曼融合在一起 。 综合提高计算机性能 。
1、冯诺依曼结构和哈佛结构的区别①、冯诺依曼结构
冯诺依曼架构是一种将程序指令存储器和数据存储器合并在一起的存储器结构 。 这种方式的特点是:指令和数据存在一起 , 共用一条存储访问总线 , 结构比较简单但效率相对较低 。 比如:我们编写了了一个程序计算y=(1+3)X5的结果 。 那我们程序生成的指令就会有:①、1+3 =》y;②、y=y X 5两条指令;同时需要读取3个数据;对于冯诺依曼结构来说 , CPU要执行的顺序是:

  • 步骤1:存储器把指令和数据1 , 2都送入CPU , 因为冯诺依曼的指令和数据是可以放在一起的 。 计算机指令长度足够的情况下 , 命令和数据可以同时从存储器读进来 。 这里执行了1次存储总线的读访问 。
  • 【CPU|电脑沿用冯·诺伊曼结构而不使用哈佛结构。】步骤2:CPU执行加法运算 , 得出结果3;
  • 步骤2:结果3被写回存储器 , 这里需要执行一次存储总线的写访问;
  • 步骤3:存储器将刚才的3和程序数据5送入CPU , 这需要执行一次存储总线读访问 。
  • 步骤4:CPU执行乘法运算 , 得出最终结果20;
  • 步骤5:20被写入存储器 , 这里需要执行一次存储写反问;
从上面步骤看 , CPU执行5个步骤完成了这次计算 。 是按照顺序来执行的 。

②、哈佛结构
哈佛结构是在冯洛伊曼结构的基础上不停迭代出来的一种结构 。 是一种将程序指令存储和数据存储分开的存储器结构 。 它的特点是 , 将程序指令和数据分开存储 , 有两套存储独立访问的总线 , 互不干扰 。 可以并行访问 , 提高了效率(需要增加硬件投入) 。 我们还是以CPU执行(1+3)X 5为例 , CPU执行顺序是:
  • 步骤1:指令存储器中将加法指令和数据存储的访问地址送入CPU;
  • 步骤2:数据存储根据访问地址 , 把1和2送入CPU;
  • 步骤3:CPU进行加法运算 , 得出中间结果3;
  • 步骤4:3被写入数据存储;
  • 步骤5:指令存储器将第二个乘法指令和数据访问地址送入CPU;
  • 步骤6:数据存储根据访问地址去读取 , 中间结果4和程序数据5;
  • 步骤7:CPU执行乘法运算 , 得出最终结果20;
  • 步骤8:20被写入数据存储;
这里粗粗一看 , 似乎步骤还多了 , 效率好像变慢了 。 其实不然 , 我这里举的例子因为计算比较简单 。 如果数据的长度非常大的时候 , 情况就不同了 。 冯洛伊曼结构每一条指令加载进去都需要等前面一条指令的数据完全加载完才行 , 这样就会浪费CPU的性能 。 而哈佛结构就可以并行处理 , 可以更充分利用CPU性能 。 再有 , 当程序出现bug时 , 冯洛伊曼结构需要对整个程序的指令部分和数据部分进行修改 。 而哈佛结构一般只需要修改数据存储的数据就可以了 。

2、嵌入式设备和DSP芯片就非常适合哈佛结构哈佛结构因为指令和数据分开存储 。 所以 , 如果我的程序相对固定 , 那就可以把程序固化在ROM里面 , 保障程序的稳定性和安全性 。 数据放在另外一个存储器里 。 这对执行相对单一功能的嵌入式设备来说 , 特点非常吻合 。 所以 , 很多嵌入式大都采用哈佛结构 。 而DSP芯片也具有类似的特点 , 也大都采用和佛结构 。

3、计算机方面 , 哈佛已经和冯洛伊曼结构融合在一起而计算机方面 , 以前一直采用冯洛伊曼式结构 。 随着技术的发展 , 现在的计算机里面冯洛伊曼和哈佛结构是相互融合在一起 。 比如:
  • 硬盘方面:一般的程序也没有将数据和程序分开 , 所以 , 还是采用冯洛伊曼的方式 。 但一些集成大型数据库的软件 , 就是程序和数据是分开存储的 。 这也就从软件层面达到了类似哈佛的结构 。
  • 内存方面:如果要实现哈佛架构提升一点性能 , 我们需要改变主板的总线 , 成本蛮高 。 所以 , 还是采用冯洛伊曼式存储临时数据 。 但为了解决内存带宽低问题 , 我们通过引入双通道技术 , 就可以让内存满足CPU的高效使用 。 也就不需要增加成本去搞哈佛结构了 。
  • L1高速缓存:L1高速缓存直接和CPU打交道 。 这里如果要充分利用CPU性能 , 改进成哈佛结构是很好的 。 现实中 , intel CPU就已经有将高速缓存分为指令缓存和数据缓存的CPU了 。 这就是典型的哈佛架构了

总结总之 , 哈佛结构是在冯洛伊曼结构的基础上迭代演变而来 。 效率有所提升 , 对嵌入式设备方面非常适合 。 在计算机方面 , 则已经相互融合 , 既有冯洛伊曼结构也有哈佛结构 。

    推荐阅读