由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。
(1)采用存贮程序方式,指令和数据不加区别混合存储在同一个存贮器中,(数据和程序在内存中是没有区别的,它们都是内存中的数据,当EIP指针指向哪 CPU就加载那段内存中的数据,如果是不正确的指令格式,CPU就会发生错误中断. 在现在CPU的保护模式中,每个内存段都其描述符,这个描述符记录着这个内存段的访问权限(可读,可写,可执行).这最就变相的指定了哪个些内存中存储的是指令哪些是数据)
指令和数据都可以送到运算器进行运算,即由指令组成的程序是可以修改的。
(2)存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。
(3)指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。
(4)通过执行指令直接发出控制指令控制计算机的操作。指令在存贮器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。
(5)以运算器为中心,I/O设备与存贮器间的数据传输都要经过运算器。
(6)数据以二进制表示。
从本质上讲,冯.诺依曼体系结构的本征属性就是二个一维性,即一维的计算模型和一维的存储模型,简单地说"存贮类型"是不确切的。而正是这二个一维性,成就了现代计算机的辉煌,也限制了计算机的进一步的发展。
冯·诺依曼计算机的软件和硬件完全分离,适用于作数值计算。这种计算机的机器语言同高级语言在语义上存在很大的间隔,称之为冯.依曼语义间隔。造成这个差距的其中一个重要原因就是存贮器组织方式不同,冯·诺依曼机存储器是一维的线性排列的单元,按顺序排列的地址访问。而高级语言表示的存贮器则是一组有名字的变量,按名字调用变量,不考虑访问方法,而且数据结构经常是多维的(如数组,表格)。另外,在大多数高级语言中,数据和指令截然不同,并无指令可以像数据一样进行运算操作的概念。同时,高级语言中的每种操作对于任何数据类型都是通用的,数据类型属于数据本身,而冯.诺依曼机的数据本身没有属性标志,同一种操作要用不同的操作码来对数据加以区分。这些因素导致了语义的差距。如何消除如此大的语义间隔,这成了计算机面临的一大难题和发展障碍。
冯.诺依曼体系结构的局限严重束缚了现代计算机的进一步发展,而非数值处理应用领域对计算机性能的要求越来越高,这就亟待需要突破传统计算机体系结构的框架,寻求新的体系结构来解决实际应用问题。目前在体系结构方面已经有了重大的变化和改进,如并行计算机、数据流计算机以及量子计算机、 光子计算机,DNA计算机等非冯计算机,它们部分或完全不同于传统的冯.诺依曼型计算机,很大程度上提高了计算机的计算性能。
----今天的分享就到这里吧,大家请持续关注我的动态偶!----
确认过眼神,是会说skr的人!
886!