1.5 微计算机系统的组成
微计算机系统由硬件系统和软件系统两部分组成,其组成构件的列表如图1-4所示。
图1-4 微计算机系统的组成
1.5.1 硬件系统
硬件系统是微计算机系统硬设备的总称,是微机工作的物质基础,是实体部分。构成微计算机主机的包括大规模集成电路的各个部件:CPU,ROM,RAM和I/O接口电路等将在本书后面各章讲述,并从计算机组成原理出发,根据其外部引脚特性和连接的原则、方法将它们围绕CPU核心构成实用系统。
1.5.2 软件系统
软件系统是微计算机为了方便用户使用和充分发挥微计算机硬件效能所必备的各种程序的总称。这些程序或存在于内存储器中,或存放在外存储器中。
一台微计算机或微处理器系统组装好后,没有安装任何软件之前则称为“裸机”。“裸机”再好,也不能发挥机器效能。因此,硬件和软件是组成微机系统必不可少的组成部分。微计算机系统根据其使用场合和利用形态的不同,设计者或用户给它配上的软件规模也不相同。
1.程序设计语言
程序设计语言是指用来编写程序的语言,是人和计算机之间交换信息所用的一种工具,又称编程环境。程序设计语言通常可分为机器语言、汇编语言和高级语言3类。
(1)机器语言
机器语言就是能够直接被计算机识别和执行的语言。计算机中传送的信息是一种用“0”和“1”表示的二进制代码,因此,机器语言程序就是用二进制代码编写的代码序列。由于每种微计算机使用的CPU不同(每种CPU都有自己的指令系统),所以使用的机器语言也就不相同。用机器语言编写程序,优点是计算机认得,缺点是直观性差、烦琐、容易出错,对不同CPU的机器也没有通用性能等。因而难于交流,在实际应用中很不方便,则很少直接采用。
(2)汇编语言
基于机器语言的缺点,人们想出一种办法————用一种能够帮助记忆的符号,即用英文字或缩写符来表示机器的指令,并称这种用助记符(Mnemonic)表示的机器语言为汇编语言。由于汇编语言程序是用这种帮助记忆的符号指令汇集而成的,因此,程序比较直观,从而易记忆、易检查、便于交流。但是,用助记符指令编写的汇编语言程序(又称源程序)计算机是不认得的,汇编语言源程序必须要翻译成与之对应的机器语言程序(又称目标程序)后,计算机才能执行。担任翻译加工的系统软件称为汇编程序(Assembler)。
由于汇编语言的符号指令与机器代码是一一对应的,从执行的时间和占用的存储空间来看,它和机器语言一样是高效率的,同时也是随所用的CPU不同而异的。机器语言和汇编语言都是面向机器的,故又称为初级语言。使用它便于利用计算机的所有硬件特性,是一种能直接控制硬件、实时能力强的语言。
(3)高级语言
高级语言又被称为算法语言。为了从根本上克服初级语言的弱点,一方面为了使程序设计语言适合于描述各种算法,使程序设计中所使用语句与实际问题更接近;另一方面为了使程序设计可以脱离具体的计算机结构,不必了解其指令系统,这就出现了各种高级语言。用高级语言编写的程序通用性更强,如BAS1C,FORTRAN,DELPHE,C/C++,Java。用高级语言编写的源程序仍需翻译成机器语言表示的目标程序后,计算机才能执行,这就需要相应的解释程序或编译程序。高级语言已在有关课程中学习,本书不再赘述。
汇编语言离不开CPU的指令系统,通过它可了解微计算机工作原理。本书将以汇编语言为主,阐明编程原理和方法。
(4)面向对象的语言
为了提高编程的实际开发效率,还可以采用混合语言编程的方法,即采用高级语言和汇编语言混合编程,彼此互相调用,进行参数传递,共享数据结构及数据信息。这样,可以充分发挥各种语言的优势和特点,充分利用现有的多种实用程序、库函数等资源,使得软件的开发周期大大缩短。
2.系统软件
系统软件是应用软件的运行环境,是人和硬件系统之间的桥梁,人就是通过它们来使用机器的。系统软件是由机器的设计者或销售商提供给用户的,是硬件系统首先应安装的软件。
(1)监控程序
监控程序又称为管理程序。在单板微计算机上的监控程序(Monitor)一般只有1~2KB,通常固化在内存ROM中,又被称为驻留(Resident)软件。在PC微机中,起此作用的叫做BIOS(基本输入/输出系统),其容量要大得多,从几十字节到几兆字节。其主要功能是对主机和外部设备的操作进行合理的安排,接受、分析各种命令,实现人机联系。通常在BIOS中还包括一些可供用户调用的有用子程序。
图1-5 微计算机操作系统的层次结构
(2)操作系统
操作系统是在管理程序基础上,进一步扩充许多控制程序所组成的大型程序系统。其主要功能有:合理地组织整个计算机的工作流程,管理和调度各种软、硬件资源————包括CPU、存储器、I/O设备和软件,检查程序和机器的故障。用户通过操作系统便可方便地使用计算机。操作系统是计算机系统的指挥调度中心,操作系统常驻留在磁盘(Disk)中,又称DOS(Disk operating system)。
操作系统具有层次结构,我们可以把操作系统管理的资源表示为图1-5所示的层次。
有了操作系统的微计算机系统的所有资源都将由操作系统统一管理,用户不必过问各部分资源的分配使用情况,而只是通过使用它的一些命令就行了。例如,通过使用它的实用程序命令就可调用各种语言。因此,可以说操作系统是用户和裸机间的接口。
微计算机系统常用的操作系统有以下几种:
① MS-DOS(Microsoft-Disk Operating System):这是美国Microsoft公司开发的通用16位单用户磁盘操作系统,主要包括文件管理和外设管理。该系统吸收了其他操作系统的长处,结构优良,软件上的互换性强,是PC机的主要操作系统之一。
② Windows:Window3.0是Microsoft公司于1990年5月推出的一种图形用户界面(GUI)和具有先进动态内存管理方式的操作系统,用其图形窗口操作环境替代了DOS环境下的命令操作方式,使PC机操作更为直观,易学、好用。1995年7月又推出了Windows 95,是80486和Pentium PC机的基本操作系统。之后又陆续推出了Windows 98/2000/XP为了不抛弃老用户,Windows 95/98/2000/XP提供了支持MS-DOS应用程序的运行和绝对的兼容性。为此,Windows包括了MS-DOS的最新版本,并为每个运行MS-DOS应用程序创建了一个MS-DOS虚拟机环境。
3.语言处理程序
① 汇编程序:其功能是把用汇编语言编写的源程序翻译成机器语言表示的目标程序。汇编程序可存放在内存的ROM中,被称为驻留的汇编程序。汇编程序也可存放在磁盘上,使用时应在操作系统的支持下,先将汇编程序调入内存,然后才能进行翻译加工,得到机器语言的目标程序,再经过服务程序的加工,最后得到可执行的程序文件。
② 解释程序:其功能是把用某种程序设计语言编写的源程序(如BASIC程序)翻译成机器语言的目标程序,并且本着翻译一句就执行一句的准则,做到边解释边执行。
③ 编译程序:能把用高级语言(如FORTRAN等)编写的源程序翻译成为机器语言的目标程序。编译程序也需经服务程序的加工才能得到可执行的程序文件。
4.服务程序
用汇编程序和编译程序的程序设计语言编好程序后,还需要对程序进行编辑、调试并将程序装配到计算机中去执行,在此过程中,还需要一些其他的辅助程序,这类辅助程序称为服务程序。微计算机系统常用的服务程序有:文本编辑程序、连接程序、定位程序、调试程序和诊断排错程序。
文本编辑程序(Editor)是软件编制开发的一种工具。在它的管理控制下,程序员可通过键盘/屏幕终端输入源程序,然后存入磁盘,生成文本文件,并由它对生成的文本文件进行编辑,如增补、删除、修改等。
微计算机常采用模块结构方式进行程序设计。模块结构允许将一个大的程序分为若干个独立的模块进行编程。各模块经汇编后,得到各自独立的目标程序。这些目标程序都是具有浮动地址格式的机器语言程序,还不能被机器执行。连接程序的功能就是把各个独立的具有浮动地址的机器语言程序模块组合起来,形成一个完整的输出程序,再由定位程序把存储器单元分配给目标模块,这时的输出程序才能由计算机执行。
一个程序编好以后,必须进行调试。一般语法上的错误在汇编、编译和连接过程中可以被排除,而大部分错误还必须用调试手段来进行排除。调试程序(Debug)的任务就是用来对程序错误进行纠错的。
诊断程序是用来检查程序的错误或计算机的故障的,并指出出错的地方。
5.应用软件
应用软件是用户利用计算机及其所提供的各种系统软件、程序设计语言为解决各种实际问题而开发的程序。本书将在讲述微处理器指令系统基础上,用汇编语言程序进行程序设计。
6.中间件
企业级应用软件系统开发迫切需要建立一个基础平台。这个基础平台软件被称为中间件,它能够为企业应用系统开发提供丰富的、可靠的中间服务和支持,使得开发者专注于应用系统的业务逻辑,从而大大简化一个具有高可用性、安全性、可靠性、可伸缩性的多层分布式企业应用系统的开发。流行平台标准有:JavaEE(Java Enterprise Edition)、CORBA(Common Object Broker Architecture)及.NET。
中间件要解决的问题包括代理方法请求、消息传递、管理组件生命周期、并发访问控制、负载均衡、安全控制、分布式数据库访问及事务管理等。
1.5.3 微计算机系统结构的特殊性
微计算机源于电子计算机,但又有别于电子计算机,有其特殊之处。正因其特殊,才给各专业应用的自行设计和扩展提供了可能与方便。
1.软件的固化
在微计算机中,硬件和软件更加密切而不可分。在大规模集成电路技术支持下,出现了各种半导体固定存储器,如ROM,PROM,EPROM,E2PROM,Flash Memory,将软件固化于这样的硬件中,称这类器件为固件(Firmware)。发展带有软件固化的微计算机系统已成为一个重要发展方向。现代微计算机都具有固化的一些程序,如监控程序,BASIC解释程序以及操作系统的引导程序和I/O驱动程序的BIOS等。
2.总线结构
前面已经了解到,任何一种微计算机、微处理器系统的核心都是CPU。CPU通过总线(BUS)和其他组成部件进行连接来实现其核心作用。总线就好似整个微计算机系统的“中枢神经”,所有的地址信号、数据信号和控制信号都经由总线进行传输。微计算机系统内的总线可归为4级,如图1-6所示。
图1-6 微型计算机的总线结构
① 片内总线:又叫芯片内部总线,位于CPU芯片内部,用来实现CPU内部各功能单元电路之间的相互连接和信号的相互传递。
② 片总线:又叫元件级总线,是微计算机主板上或单板微计算机上以CPU芯片为核心,芯片与芯片间连接的总线。
③ 内总线:又叫微计算机总线或板级总线,通常称为微机系统总线,用来实现计算机系统中插件板与插件板间的连接。各种微计算机系统中都有自己的系统总线,如IBM PC/XT微机的ISA总线、80386/80486微机的EISA总线以及Pentium微机的PCI、AGP总线等。
④ 外总线:又叫通信总线,用于系统之间的连接,完成系统与系统间的通信。例如,微机系统与微机系统之间、微机系统与测量仪器之间、微机系统与其他电子设备系统之间、微机系统与多媒体设备之间的通信。这种总线不是微机系统所特有的,往往是借用电子工业其他领域已有的总线标准,如RS-232C,IEEE-488,CAMAC和USB等。