1.1.3 计算机的工作原理
美籍匈牙利数学家冯·诺依曼(John von Neumann)于1946年提出了计算机设计的三个基本思想:
①计算机由运算器、控制器、存储器、输入设备和输出设备五个基本部分组成。
②采用二进制形式表示计算机的指令和数据。
③将程序(由一系列指令组成)和数据存放在存储器中,并让计算机自动地执行程序。
其工作原理是将需要执行的任务用程序设计语言写成程序,与需要处理的原始数据一起通过输入设备输入并存储在计算机的存储器中,即“程序存储”;在需要执行时,由控制器取出程序并按照程序规定的步骤或用户提出的要求,向计算机的有关部件发布命令并控制它们执行相应的操作,执行的过程不需要人工干预而自动连续地一条指令一条指令地运行,即“程序控制”。冯·诺依曼计算机工作原理的核心是“程序存储”和“程序控制”。按照这一原理设计的计算机称为冯·诺依曼计算机,其体系结构称为冯·诺依曼结构。目前,计算机虽然已发展到了第四代,但基本上仍然遵循冯·诺依曼原理和结构。但是,为了提高计算机的运行速度,实现高度并行化,当今的计算机系统已对冯·诺依曼结构进行了许多变革,如指令流水线技术、多核处理技术、平行计算技术等。
1.计算机的指令系统
指令是能被计算机识别并执行的命令。每一条指令都规定了计算机要完成的一种基本操作,所有指令的集合就称为计算机的指令系统。计算机的运行就是识别并执行其指令系统中的每条指令。
指令以二进制代码形式来表示,由操作码和操作数(或地址码)两部分组成,如图1-3所示。操作码指出应该进行什么样的操作,操作数表示指令所需要的数值本身或数值在内存中所存放的单元地址(地址码)。
图1-3 指令的组成
2.计算机执行指令的过程
计算机的工作过程实际上就是快速地执行指令的过程,认识指令的执行过程就能了解计算机的工作原理。计算机在执行指令的过程中有两种信息在流动:数据流和控制流。数据流是指原始数据、中间结果、结果数据、源程序等。控制流是由控制器对指令进行分析、解释后向各部件发出的控制命令,指挥各部件协调工作。
计算机执行指令一般分为以下四个步骤:
①取指令:控制器根据程序计数器的内容(存放指令的内存单元地址)从内存中取出指令送到CPU的指令寄存器。
②分析指令:控制器对指令寄存器中的指令进行分析和译码。
③执行指令:根据分析和译码的结果,判断该指令要完成的操作,然后按照一定的时间顺序向各部件发出完成操作的控制信号,完成该指令的功能。
④一条指令执行后,程序计数器加1或将转移地址码送入程序计数器,然后回到步骤①,进入下一条指令的取指令阶段。
3.计算机执行程序的过程
程序是为解决某一问题而编写的指令序列。计算机能直接执行的是机器指令,用高级语言或汇编语言编写的程序必须先翻译成机器语言,然后CPU从内存中取出一条指令到CPU中执行,指令执行完,再从内存取出下一条指令到CPU中执行,直到完成全部指令为止。CPU不断地取指令、分析指令、执行指令,这就是程序的执行过程。