人们在科学实验、社会实践中有大量问题需要求解,如科学计算、数据处理及各种管理问题等。要解决这些问题,首先需要分析所研究的对象,提出对问题的形式化定义并给出求解方法的形式描述。对问题的形式化定义称为数学模型,而对问题求解方法的形式描述称为算法。其次是必须具备实现算法的工具或设施。通常将一个算法的实现叫作一次计算。显然,一次计算既与算法有关,也与实现该算法的工具有关。算法和实现算法的工具是密切相关的,二者互相影响、互相促进。
人们在生产活动和商业交易中最早需要解决的问题是算术四则运算问题。最初人们用大脑和手来进行计算,随后使用算盘,继而使用计算器,这些计算工具可以进行加、减、乘、除运算。人们要解决某一问题,只有将问题的求解方法归结为四则运算问题后,才能使用算盘之类的工具进行计算。由此可见,算法和计算工具是相互影响的。因为算法是四则运算,所以计算工具必须具备加、减、乘、除功能。当遇到一个复杂的算法时,如求解一个微分方程,若计算工具仍然只能进行四则运算,则必须把微分方程的解法转化为数值解法。
上面论及的计算是一种手工计算方式,而算盘或计算器是手工计算的一种工具。在这种计算方式中,人们按照预先确定的一种计算方案,首先输入原始数据,然后按操作步骤做第一步计算,记录中间结果;再做第二步计算,直到算出最终结果,并把结果记录在纸上。这里,一切都是依靠人的操作,即无论是输入原始数据,执行运算操作,还是中间结果的存储和最终结果的抄录都是依靠人的操作,所以,这一计算过程是手工操作过程。包括著名数学家冯·诺依曼(John Von Neumann)在内的一群科学家总结了手工操作的规律以及前人研究计算机的经验教训后,于20世纪40年代提出了“存储程序式计算机”方案,即冯·诺依曼计算机体系结构,使计算实现了自动化。要使计算机能够自动地计算,必须使机器可以“看到”计算方案即计算机程序,能够“理解”程序语言的含义并按照顺序执行指定的操作,可以及时取得初始数据和中间数据,能够自动地输出结果。于是,机器必须有一个存储器,用来存储程序和数据;有一个运算器,用以执行指定的操作;有一个控制部件以便实现自动操作;还要有输入/输出(或简称I/O)设备,以便输入原始数据和输出计算结果。
从20世纪40年代至今,计算机体系结构不断地发展变化,但冯·诺依曼计算机体系结构定义的一个存储程序式计算机的家族,几乎是当代所有计算机系统的构成基础(除专门设计用于处理特殊任务的计算机外)。存储程序式计算机由中央处理器(CPU))、存储器和I/O设备组成。所有的单元都通过总线连接,总线分为地址总线和数据总线,分别连接不同的部件。
CPU是计算机的“大脑”,能控制、指挥各个部件的工作。它是一种能够解释指令、执行指令并控制操作顺序的硬设备。CPU由算术逻辑运算单元(ALU)和控制单元构成。ALU包含一个能完成算术和逻辑操作的功能单元,以及各种寄存器(如:通用寄存器和用于保存CPU状态信息的状态寄存器),在当代的CPU中,可有32~64个通用寄存器,每个寄存器能够保存一个32位(bit)的数值。通用寄存器可以为功能单元提供操作数,并能接收、保存操作的结果。控制单元负责从主存储器提取指令、分析其类型,并产生信号通知计算机其他部分执行指令所指定的操作。控制单元包含一个程序计数器(Program Counter,PC)和一个指令寄存器(Instruction Register,IR)。程序计数器指示下一步应该执行的指令,而指令寄存器包含当前指令的拷贝。(www.xing528.com)
存储器是计算机存储程序和数据的部件。如果没有一个使中央处理机能直接读、写信息的存储器,就不存在人们所熟悉的可存储程序的数字计算机了。主存接口由三个寄存器组成:存储地址寄存器(Memory Address Register,MAR)、存储数据寄存器(Memory Data Register,MDR)以及命令寄存器(Command Register,CR)。主存的单元数目和每个单元的位数,取决于当时的电子制造技术以及硬件设计的考虑。大部分计算机还配有一个与主存相比,其存取速度较慢、价格较便宜、容量大得多的辅助存储器,用于保存大量的数据信息。
I/O设备则是完成信息传输任务的,可以将数据放置到主存,或将主存中的内容存储到一个永久性的介质中。I/O设备分为存储设备(如磁盘或磁带)、字符设备(如终端显示器、鼠标)、通信设备(如连接调制解调器的串行端口或网络接口)。每个设备都通过设备控制器与计算机的地址和数据总线相连。控制器提供一组物理部件,可以通过CPU指令操纵它们以完成I/O操作。
冯·诺依曼计算机是人类历史上第一次实现自动计算的计算机,可以真正称得上是一台自动机。该机是人类历史上第一次出现的作为人脑延伸的智能工具,具有逻辑判断能力和自动连续运算能力,它的影响是十分深远的。它的计算模型是顺序过程计算模型,其主要特点是集中顺序过程控制,即控制部件根据程序对整个计算机的活动实行集中过程控制,并根据程序规定的顺序依次执行每一个操作。计算是过程性的,故这种计算机是模拟人们的手工计算的产物。即首先取原始数据,执行一个操作,将中间结果保存起来;再取一个数据,和中间结果一起又执行一个操作,如此计算下去,直到计算完毕。在遇到有多个可能同时执行的分支时,也是先执行完第一个分支,然后再执行第二个分支,直到计算完毕。由于冯·诺依曼型计算机的计算模型是顺序过程计算模型,所以它的特点是集中顺序过程控制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。