1.3 计算机开发及运行流程
要使一台计算机正常运转,需要软件和硬件的协调工作。硬件构成计算机的物质基础,犹如产品加工厂的厂房、设备和道路,物质基础在很大程度上决定了系统的性能。软件则类似产品加工厂中的生产加工流程,加工流程有助于改善系统的性能。本节将讲述计算机硬件开发、软件开发,以及计算机运行流程。
1.3.1 计算机软硬件开发流程
1)硬件开发流程
硬件是计算机的物质基础,它决定了计算机的性能。计算机硬件开发步骤包括:设计指令系统、设计CPU、设计硬件系统,流程如图1.3所示。
图1.3 硬件开发流程图
① 设计指令系统。设计指令系统是硬件开发的首要步骤。在设计指令系统时,首先要对硬件进行准确的定位,明确硬件需要完成的功能和性能,根据功能和性能需求设计指令系统。如果指令太少,则不能完成需要的功能;如果指令太多,则会大大增加硬件的复杂度。因此在设计指令系统时,应该充分考虑相关情况。在满足硬件功能和性能的前提下,尽量优化指令系统。
② 设计CPU。CPU是为指令系统服务的。设计CPU时,必须认真分析指令运行过程,在此基础上,确定CPU的结构和组成模块。如果CPU的组成模块太少,则不能顺利地完成指令功能;如果CPU的组成模块太多,则会造成了无谓的资源浪费。
③ 设计硬件系统。CPU是计算机硬件的核心部件。如果将计算机硬件比喻成人的身体,则CPU就是人的大脑,仅仅有CPU,计算机也不能正常工作,所以在设计完成CPU后,须将CPU与外围设备连接,形成计算机系统。
在硬件开发流程中,指令系统设计和CPU设计是至关重要的。没有好的指令系统就不能有好的CPU,没有好的CPU就不能有好的计算机硬件系统。因此,在计算机硬件开发中必须着重注意指令系统设计和CPU设计两个步骤。
2)软件开发流程
在软件开发中,无论是设计大型软件,还是编写只有几行代码的小程序,软件开发步骤都是基本相同的。软件开发步骤包括:编写源程序、对源程序进行编译或汇编、生成机器码程序,流程如图1.4所示。
图1.4 软件开发流程图
① 编写源程序。利用高级语言或汇编语言编写具有一定功能的源程序,在编辑器中输入源程序,生成相应的源程序文件。
编写源程序时,应根据不同用途选用不同的语言。在科学计算中,一般采用高级语言进行编程,高级语言程序具有程序模块短小、易阅读等优点。在实时处理中,一般采用汇编语言进行编程,汇编语言程序具有代码效率高、控制灵活等特点。
② 编译或汇编。源程序利用文字符号来表示程序,这类程序的编写、阅读和修改都比较方便,但是,源程序无法被计算机执行。因此,需要利用编译器或汇编器将源程序转化为机器代码,机器代码是计算机唯一能够识别执行的代码。
③ 生成机器码程序。在软件开发流程中,编译器是至关重要的,它是设计的重点和难点。可以说,没有编译器,就没有计算机的普及和快速发展。除了编译器,调试工具也是不可缺少的,调试工具能够帮助程序员快速发现软件设计中存在的问题、缩短开发周期。
1.3.2 计算机运行流程
开发完成计算机软硬件后,利用软件调度硬件工作。软件调度硬件工作的主要步骤包括状态监测、取指令和执行指令,如图1.5所示。
图1.5 软件调度硬件工作流程图
1)状态监测
计算机定期地监测当前运行状态。如果运行中出现意外情况,则调用应急预案,处理意外情况。如果运行中没有出现意外情况,则进入取指令阶段。
2)取指令
计算机从程序存储器中取出指令,并将指令传送至CPU。
3)执行指令
CPU依据接收到的不同指令,调用不同硬件资源,完成相关操作。