冯诺依曼结构和哈佛结构

冯诺依曼结构提出了存储程序的方式,即指令和数据不加区分共同存储在内存中,按顺序执行。EIP指针指向哪cpu就加载哪块内存中的程序。CPU在保护模式中,每段内存都有其描述符,记录着内存的访问权限可读可写可执行。这就变相指明了哪些是指令哪些是数据。
存储器是按线性编址的一维结构,内核单元的大小固定。
指令由操作码和地址码组成,操作码指明了指令的操作类型,地址码指明了操作数和地址。
通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按顺序存放。由指令计数器指明要执行的指令的单元地址。指令计数器只有一个,一般按顺序递增。但执行顺序可以可以按当时的结果或外界条件改变。
以运算器为中心,io设备和存储器的数据都要经过运算器。
数据以二进制表示。


哈佛结构是一种将指令和数据分开存储的结构。处理器先从指令存储器中读到指令内容,然后解码得到数据地址,再到相应的数据存储器中读取数据。并执行下一步操作。程序和指令分开可以使得指令和数据的宽度不同。如pic16的指令宽度为14位,数据宽度为8位。avr系列和arm9以上,51系列都是哈佛结构。
哈佛结构由于数据和程序分开,即使程序跑飞也不会破坏数据区域。数据区的代码是变化的,而代码区时相对固定的。

总结:冯诺依曼的程序和数据共用数据总线和数据总线共用。
哈佛则分别总有程序的数据总线和地址总线。和数据的地址总线和数据总线。4条,而冯诺依曼为2条总线。由于哈佛是分开的存储结构,所以可以并行执行指令和处理数据,cpu的吞吐率提高一倍。

你可能感兴趣的:(操作系统)