计算机系统组成

计算机系统组成

  一个完整的计算机系统是由硬件系统和软件系统两部分组成的。硬件系统是组成计算机系统的各种物理设备的总称,是计算机系统的物质基础。硬件是计算机的躯体,而软件是灵魂。没有安装软件的计算机称为“裸机”,这种“裸机”是没有什么用的。用户所面对的是经过若干层软件“包装”的计算机,计算机的功能不仅仅取决于硬件系统,更大程度上是由所安装的软件所决定。

1.2.1 计算机硬件系统

第一台计算机ENIAC的诞生仅仅表明了人类发明了计算机,从而进入了“计算”时代。对后来的计算机在体系结构和工作原理上具有重大影响的是在同一时期由美籍匈牙利数学家冯·诺依曼同他的同事们研制的EDVAC计算机。在EDVAC中采用了“存储程序”的概念。其主要特点可以归结为:

(1)计算机有五个基本组成部分:控制器、运算器、存储器、输入设备和输出设备。

(2)程序和数据以同等地位存放在存储器中,并按地址寻访。

(3)程序和数据以二进制形式表示。

冯·诺依曼计算机的结构框图如图1-1 所示。

图1-1 计算机的结构框图

1.控制器

控制器是计算机的指挥中枢,主要作用是使计算机能够自动地执行命令。它按照主频的节拍产生各种控制信号,以指挥整个计算机工作,即决定在什么时间、根据什么条件执行什么动作,使整个计算机能够有条不紊地自动执行程序。

控制器从内存中按一定的顺序取出各条指令,每取出一条指令,就分析这条指令,然后根据指令的功能向各个部件发出控制命令,控制它们执行这条指令中规定的任务。该指令执行完毕,再自动取出下一条指令,重复上面的工作过程。

2.运算器

运算器是执行算术运算和逻辑运算的部件,主要负责对信息进行加工处理。运算器由算术逻辑单元(简称ALU)、累加器、状态寄存器和通用寄存器组等组成。

运算器不断地从存储器中得到要加工的数据,对其进行加、减、乘、除以及各种逻辑运算,并将最后的结果送回存储器中。整个过程在控制器的指挥下有条不紊地进行。

在采用大规模集成电路的微型计算机中,通常把控制器和运算器制作在一块芯片上,这个芯片被称为中央处理器,简称为CPU。

在计算机中,作为一个整体被传送和运算的一串二进制数码称为字(word),字所包含的二进制位数称为字长。CPU的字长通常由算术逻辑单元、累加器和通用寄存器来决定。例如,在32位字长的CPU中,其算术逻辑单元、累加器和通用寄存器都是32位的。

CPU的主频是指CPU工作时的时钟频率。它是考查CPU运行速度的主要参数。计算机的主频速度一般是与机器的型号标在一起的。例如PentiumII 350机,表示CPU的工作频率或机器的速度是350MHz。目前CPU的主频有几种标准值,如866MHz、1G、1.7G、2G等。计算机在保证运行状态稳定的前提下,主频越高则工作节拍越快,运行速度也越高。

3.存储器

存储器是用来存储程序和数据的记忆装置,是计算机中各种信息的存储和交流中心。

要实现存储程序,计算机中必须有存储信息的部件棗存储器。存储器的主要功能是保存信息。它的作用类似一台录音机。使用时可以取出原记录内容而不破坏其信息,这种取数操作称为存储器的“读”;也可以把原来保存的内容抹去,重新记录新的内容,这种存数操作称为存储器的“写”。存储器分为两大类:内存储器和外存储器。

(1)内存储器

在计算机内部设有一个存储器,简称内存。内存由主存储器和高速缓冲存储器(Cache)组成。计算机运算之前,程序和数据通过输入设备送入内存,运算开始后,内存不仅要为其他部件提供必需的信息,也要保存运算的中间结果及最后结果,总之,它要和各个部件直接打交道,进行数据传送。因此为了提高计算机的运算速度,要求内存能进行快速的存数和取数操作。关于内存,以下几个概念是很重要的:

地址。内存由许多存储单元组成,每一个存储单元可以存放若干位数据代码,该代码可以是指令,也可以是数据。为区分不同的存储单元,所有存储单元均按一定的顺序编号,称为地址码,简称地址。当计算机要把一个信息代码存人某存储单元中或从某存储单元中取出数据时,首先要告诉该存储单元的地址,然后由存储器“查找”与该地址对应的存储单元,查到后才能进行数据的存取。这种情形和我们在大楼里找人,要按照他的住址(即房间号)寻找他的过程相仿。

存储容量。存储容量是描述计算机存储能力的指标。它通常以1024(即210)的倍数,即KB(千字节)作单位,其中K表示1024,B表示字节。一个字节为8位的二进制数。例如内存为64KB的微型计算机,其实际内存容量为64×1024=65536字节。比KB更大的容量单位是MB(兆字节)和GB(千兆字节),1MB=1024KB,1GB=1024MB。显然,存储容量越大,能够存储的信息越多。

ROM和RAM。在内存中,有一小部分用于永久存放特殊的专用数据,对它们只取不存,这部分称为只读存储器,简称ROM(Read Only Memory)。例如微机的BIOS程序就是存储在只读存储器ROM中。大部分内存可存可取,称为随机存储器,简称RAM(Random Access Memory),计算机工作时,RAM能准确地保存数据,但这种保存功能需要电源的支持,一旦切断电源,其中的所有数据立即消失。

(2)外存储器

由于价格和技术方面的原因,内存的存储容量受到限制。为了存储大量的信息,就需要采用价格便宜的辅助存储器。它们设置在主机外部,又称外存。常用的外存储器有磁带存储器、磁盘存储器、光盘存储器等。磁盘存储器又分为软磁盘存储器(简称软盘)和硬磁盘存储器(简称硬盘)。

外存用来存放“暂时不用”的程序或数据。外存容量要比内存大得多,但它存取信息的速度比内存慢。通常外存只和内存交换数据,不直接与计算机内其他装置交换数据,存取时不是按单个数据进行,而是以成批数据进行交换。

外存与内存有许多不同之处,一是外存不怕停电,磁盘上的信息可保持数年之久;二是外存的容量不像内存那样受多种限制,可以很大,如硬盘的容量目前已达到了30GB、40GB以上,光盘容量也很大;三是外存价格也较便宜。

4.输入设备

输入设备的任务是输入操作者提供的原始信息,并将它变为机器能识别的信息,然后存放在内存中。输入设备大致可分为以下几种:

(1)穿孔输入设备,如光电输入机、电容式输人机、卡片机等。这类输入设备通过光电变换或其他方法将穿孔信息转换为电信号,并送往计算机。

(2)键盘输入设备,如电传打字机、控制台打字机、键盘等。操作人员可以直接通过键盘输入程序或其他控制信息。

(3)模/数转换(A/D)装置。在自动检测与自动控制装置中,刚检测出来的原始电信号往往是模拟信号,需通过A/D装置转换成计算机所能识别与处理的数字信号。

(4)图形识别与输入装置,如光笔、图形板等。

(5)字符的识别与输入装置,如光电阅读机。

(6)语音的识别与输人装置,如麦克风。

5.输出设备

输出设备的任务,是将计算机的处理结果以能为人们或其他机器所接受的形式输出。

输出设备大致可分为以下几种:

(1)打印设备,如小型的简易打印机、传统的宽行打印机、电传打字机,以及便于打印图形与文字一类复杂字符的针式打印机、喷墨打印机和激光打印机等。

(2)绘图设备,如绘图仪。

(3)显示器,常见的是CRT显示器,现在液晶显示器也很流行。

(4)数/模转换装置(D/A)。在自动控制装置中,计算机输出的数字信号常需转换为模拟信号,才能控制相应的执行机构。

1.2.2 计算机软件系统

软件是指程序、程序运行所需要的数据以及开发、使用和维护这些程序所需要的文档资料的集合。计算机系统是在硬件“裸机”的基础上,通过一层层软件的改造后,向用户呈现出友好的使用界面和强大的功能。

计算机软件极为丰富,通常软件可分为系统软件和应用软件两大类。

1.系统软件

系统软件是计算机设计制造者提供的,用来控制计算机运行,管理计算机的各种资源,并为应用软件提供支持和服务的一类软件。通常包括操作系统、语言处理程序、数据库管理系统、网络系统和常用服务程序等。下面对主要的系统软件分别作介绍。

(1)操作系统(Operating System,简称OS)

为了使计算机系统的所有软、硬件资源协调一致,有条不紊地工作,就必须有一个软件来进行统一的管理和调度,这种软件就是操作系统。操作系统是直接运行在裸机上的最基本的系统软件,任何其他软件必须在操作系统的支持下才能运行。操作系统的作用是管理计算机系统的全部硬件资源、软件资源及数据资源,目标是提高各类资源的利用率,并能方便用户以及为其他软件的开发与使用提供必要的支持,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。

操作系统是一个庞大的管理控制程序,它大致包括以下五个管理功能:处理机管理、存储管理、设备管理、文件管理和作业管理。实际的操作系统是多种多样的,根据侧重面不同和设计思想不同,操作系统的结构和内容存在很大差别。

目前常用的操作系统有:Windows 9 x、UNIX、LINUX、OS/2等。

(2)程序设计语言

由前面的介绍可知,计算机的工作是用程序来控制的,离开了程序,计算机将无法工作。程序是用程序设计语言按问题的要求及解决问题的过程进行编写的。

机器语言

机器语言是以二进制代码表示的指令集合,是计算机能直接识别和执行的语言。机器语言的优点是占用内存少、执行速度快。缺点是面向机器的语言,随机而异,不易学习和修改,通用性差,而且指令代码是二进制形式,不易阅读和记忆,编程工作量大,难以维护。

汇编语言

语言汇编语言是用助记符来表示机器指令的符号语言。汇编语言比机器语言易学易记,同时保留了占用内存少、执行速度快的优点。缺点是通用性差,随机而异。由于计算机只能执行用机器语言编写的程序,因而,必须用汇编程序将汇编语言编写的源程序翻译成机器能执行的目标程序。这一翻译加工过程称为汇编。

高级语言

语言高级语言是20世纪50年代后开发的。它们比较接近于人们习惯用的自然语言和数学表达式,因此称为高级语言。高级语言的优点是通用性强,可以在不同的机器上运行,程序简短易读,便于维护;极大地提高了程序设计的效率和可靠性。

过程语言

用过程语言编写的程序包含一系列的描述,告诉计算机如何执行这些过程来完成特定的工作。带有过程性特征的语言称为过程性语言。例如B A S I C语言就具有过程性的特征,那些语句确切地告诉了计算机如何工作:显示信息请求用户输入,再根据输入进行计算,最后输出运算结果等等。过程性的编程语言适合于那些顺序执行的算法。用过程语言编写的程序有一个起点和一个终点。程序从起点到终点执行的流程是直线型的,即计算机从起点开始执行写好的指令序列,直到终点。

说明性语言

说明性语言只需程序员具体说明问题的规则并定义一些条件即可。语言自身内置了方法把这些规则解释为一些解决问题的步骤,这就把编程的重心转移到描述问题和其规则上,而不再是数学公式。因此说明性的语言更适合于思想概念清晰但数学概念复杂的编程工作。

不同于过程性的程序,用说明性语言编写程序只需你告诉计算机要做什么,而不需告诉它如何去做。

脚本语言

脚本语言实际上就是一种介于高级语言和原型语言之间的一种编程语言,脚本语言本身并不能直接执行,而是嵌入到某个应用程序中。很多的系统都允许使用脚本语言,像字处理软件和电子制表软件等。而嵌入在HTML语言中的脚本语言JavaScript或 VBScript可以使网页成为动态的。

脚本语言使用起来比一般的编程语言的语法要简单,提供的控制选项也很少。用脚本语言可以快速地开发以完成一些简单的任务。使应用程序中的任务自动化。如果想使你应用软件中的功能自动定制完成的话,脚本语言对不擅长编程的人是一个很好的选择。

面向对象语言

面向对象的程序设计语言是建立在用对象编程的方法基础之上的。对象就是程序中使用的实体或“事物”,例如按钮棗通常表现为屏幕上的一种带字符的长方形图标,就是一个对象。我们一般用鼠标单击一个按钮来完成某一操作。程序员可以使用面向对象的语言来定义按钮对象和编写它的动作程序,在程序运行时把它显示出来并可以在用鼠标单击它时完成相应的操作。

对象属于一个具有一定特性的类或组。例如“窗口”类就是比较常见的类,所有的窗口对象,包括应用程序窗口,都属于“窗口”类,它们具有许多相同的属性,如都有一个标题栏和一个关闭按钮。程序员创建一个窗口对象时,他就获得或者说继承了窗口类的属性和操作,但一个特定的窗口实例可以具有自己特定的属性,如窗口的标题、窗口大小及在屏幕上的位置均可各不相同。

同一对象可用在不同的程序中,这无疑大大地提高了程序员的编程效率。例如,许多应用软件都给用户文件提供了O p e n、S a v e、Save as、P r i n t等操作,如果你编写这样的应用程序,定义一个对象来完成这些操作会很方便,只要程序中用到这些操作,随时都可调用这些对象,而不必重复编程。

(3)语言处理程序

对于高级语言编写的程序,计算机是不能识别和执行的。要执行高级语言编写的程序,首先要将此程序通过语言处理程序翻译成计算机能识别和执行的二进制机器指令,然后供计算机执行。

通常将用高级语言或汇编语言编写的程序称为“源程序”,而把已翻译成机器语言的程序称为“目标程序”。不同的高级语言编写的源程序必须通过相应的语言处理程序进行翻译。

计算机将源程序翻译成机器指令时,通常分两种翻译方式:一种为“编译”方式,另一种为“解释”方式。

编译方式

通过相应语言的编译程序将源程序一次全部翻译成目标程序,再经过连接程序的连接,最终处理成可直接执行的可执行程序。如图1-2所示。

图1-2 高级语言开发程序过程示意图

解释方式

通过相应的解释程序将源程序逐句解释翻译成一组机器指令,翻译一句执行一句,边翻译边执行。解释程序不产生目标程序,而是借助于解释程序直接执行源程序本身。执行过程中有错时机器显示出错信息,修改后可继续执行。

解释方式对初学者较有利,便于查找错误,但效率低,因为解释语言编写的程序执行速度慢,尤其是循环语句多的程序效率更低,因为计算机必须解释每一条语句,循环语句就要重复解释多次。大部分高级语言只有编译方式,少数高级语言有两种翻译方式,例如BASIC语言就有两种翻译方式。

 

指令的寻址方式

所谓寻址,指的是寻找操作数的地址,其最终目的是寻找所需要的操作数。寻址方式就是根据指令中给出的地址码字段寻找操作数地址的方式。
  寻址方式是指令系统设计的重要内容,它对于丰富程序设计手段、方便程序编制、提高程序的质量、减少访问主存的次数以及压缩程序占用的内存空间等方面都起着重要作用。每台计算机的指令系统都有自己的一套寻址方式,下面介绍80X86系列微处理器的寻址方式。   
  80X86的寻址方式包括立即寻址、寄存器寻址、内存寻址等,在内存寻址中又分直接寻址、寄存器间接寻址、基址变址寻址、寄存器相对寻址和相对基址变址寻址以及80386以上微处理器所特有的比例变址方式寻址。 下面以数据传送类指令(助记符MOV)作为解释数据的寻址方式的基础。

     1. 立即寻址
      2.
直接寻址
    
3.寄存器间接寻址
    
4.寄存器相对寻址
    
5.基址变址寻址
    
6.相对基址变址寻址  

指令执行的基本过程
    通常,一条指令执行过程可以分为取指令、译码、取操作数和执行四个阶段。为了使大家进一步了解指令执行过程,我们以一条8086指令 ADD AL,[0300H]为例。这里我们设定指令执行前:

      (AL)=00001111B,[CS]=3000H,[IP]=0100H,[DS]=2000H,[20300H]=01010000B

为使计算机按预定要求工作,首先要编制程序。无论是高级语言还是汇编语言编制的程序,经过编译或汇编后都会成为一系列的指令和数据。
   下面以一个简单的程序为例,介绍计算机中程序的执行过程。这一程序完成的功能是计算a+b-c=?(a、b、c为三个原始的数据),完成这个任务至少需要五条指令。 编制好的程序和数据存放在内存中,为简化设计,在本例中指令和数据放在同一段中,假设五条指令依次存放在内存的0~4号单元中,参加运算的原始数据存放在内存的5~7号单元中,运算的结果将存放在内存的8号单元中。计算机的控制器将控制这五条指令逐条的执行,最终完成该计算任务,得到正确的结果。
  这段程序的执行分成五步:
     第一步,执行取数指令,从内存5号单元取出数a,送入累加器A中;
     第二步,执行加法指令,从内存6号单元取出数b与累加器中的a一起送到运算器中相加,结果a+b保留 在累加器中;
     第三步,执行减法指令,将累加器中的内容与从内存7号单元取出的数c一起送到运算器中相减,结果a+b-c保留在累加器中;
     第四步,执行存数指令,把累加器的内容存至内存8号单元;
         第五步,执行停机指令,计算机停止工作。 
        

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值