指令和数据的区分
冯认为指令也是一种数据,所以冯诺依曼构架只有数据总线和地址总线。
哈佛构架认为指令是指令,数据是数据,所以哈佛构架有供给指令的地址总线和数据总线,还有供给数据的地址总线和数据总线。
两者其实有点互补。
冯诺依曼构架只有两种总线,所以相对地址总线和数据总线位宽比较大,效率相对会高点。
缺点很明显,不区分指令和数据的代价,就是常会出错,寄存器很不稳定,易产生冲突。
我们pc机用冯构架因为相对效率冯更好,而且稳定性可以用操作系统来补充。
哈佛构架的缺点很明显,相对总线宽度下降,效率会弱一点。但是指令和数据的分离,使用两个不同的寄存器,出错率大大降低。牺牲效率的补偿,就是构架稳定性的提升。
所以一般嵌入式系统都用哈佛构架的处理器。因为嵌入式系统的功能特殊性和系统高稳定的需求,简直完美。
作者:Zsy
链接:https://www.zhihu.com/question/28680815/answer/101928526
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。