2020/2/27第一章1第1章概论本章学习目标本章将介绍计算机存储程序控制的概念,详细讲解计算机的硬件和软件组成、计算机的工作过程以及计算机的系统结构。通过本章的学习,应该重点掌握和理解以下内容:掌握存储程序控制的概念掌握计算机的硬件、软件基本概念以及它们之间的关系了解计算机的工作过程、性能评价掌握计算机的组成和系统结构了解大中型计算机的典型结构2020/2/27第一章2第1章概论1.1电子计算机与存储程序控制1.2计算机系统1.3计算机的工作过程与性能1.4计算机系统结构退出2020/2/27第一章31.1电子计算机与存储程序控制1.1.1存储程序概念1.1.2计算机的硬件组成返回目录2020/2/27第一章41.1电子计算机与存储程序控制1964年2月,以ENIAC(ElectronicNumericalIntegratorAndComputer)命名的世界上第一台电子计算机诞生了。它是在美国陆军部的主持下,由美国宾西法尼亚大学设计研制出来的。电子计算机是一种不需要人工直接干预,能够自动、高速、准确地对各种信息进行处理和存储的电子设备。从今天的角度来看,ENIAC的性能并不好,但是它的历史意义远远超出其实用价值,它是科学发展史上一个重要的里程碑,它揭开了计算机时代的序幕。从第一台电子计算机诞生至今,随着计算机逻辑原件的不断发展,把电子计算机分为电子管、晶体管、集成电路以及大规模集成电路、超大规模集成电路四个发展阶段,称为四代。现在正在研制第五代计算机——人工智能计算机,第五代计算机将具有智能的知识信息处理系统,实现对自然语言、图形、图像与文字的综合处理,能积累知识,总结经验,具有再学习的能力。2020/2/27第一章51.1.1存储程序概念美籍匈牙利数学家约翰·冯·诺依曼(JohnVonNeumann)等人于1946年6月在一篇题为《关于电子计算机仪器逻辑设计的初步探讨》的报告中,首次提出了“存储程序控制”的概念,其内容可以概括为以下三点:第一,计算机有运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。第二,计算机内部采用二进制数来表示指令和数据。第三,采用存储程序方式,这是冯·诺依曼思想的核心内容。它意味将事先编好的程序(包含指令和数据)存入主存储器中,计算机在运行程序时就能自动地、连续地从存储器中依次取出指令且执行,这就是“存储程序控制”的基本含义。它是计算机能高速自动运行的基础。2020/2/27第一章61.1.2计算机的硬件组成根据“存储程序控制”的概念,由运算器、存储器、控制器、输入/输出设备五大基本部件组成的计算机称为冯·诺依曼计算机。其典型结构框图如图1-1所示,图1-1典型的冯·诺依曼计算机结构框图2020/2/27第一章7早期的冯·诺依曼计算机在结构上是以运算器为中心的,但演变到现在,已转向以存储器为中心了。图1-2为计算机最基本的组成框图。图1-2计算机最基本的组成框图2020/2/27第一章8通常将控制器和运算器合称为中央处理器(CentralProcessingUnit,简称CPU),中央处理器和主存储器一起组成主机部分,除去主机以外的硬件装置(如输入/输出设备、外部存储器等)称为外围设备或外部设备,简称外设。1.运算器运算器是对数据信息进行处理的部件,经常执行的运算是算术运算和逻辑运算,所以运算器又称为算术逻辑部件(ALU——ArithmeticandLogicalUnit)。算术运算包括加、减、乘、除及其复合运算,但最终都可归结为加法和移位两种基本操作,因此,通常把加法器看作运算器的核心。逻辑运算一般指逻辑加、逻辑乘、逻辑取反及异或操作等。运算器中还有若干个通用寄存器,用来暂存操作数,并存放运算结果。寄存器的存取速度比存储器的存储速度快得多。2020/2/27第一章9图1-3运算器结构示意图2020/2/27第一章102.存储器存储器是用来存储程序和各种数据信息的记忆部件,是计算机能够实现“存储程序控制”的基础。在计算机系统中,规模较大的存储器往往分为若干级,称为存储系统。图1-4所示的是常见的三级存储系统。主存储器(简称主存或内存)可和CPU直接交换信息,存取速度快但容量较小,一般用来存放当前正在执行的程序和数据。辅助存储器(简称辅存或外存)设置在主机外部,它的存储容量大,但存取速度较慢,一般用来存放暂时不参与运算的程序和数据,这些程序和数据在需要时可传送到主存,因此它是主存的补充和后援。当CPU速度很高时,为了使访问存储器的速度能与CPU的速度相匹配,可在主存和CPU之间增设一级Cache(高速缓冲存储器)。Cache的存取速度比主存更快,但容量更小,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据。2020/2/27第一章11图1-4三级存储系统主存的工作方式是按存储单元的地址存放或读取各类信息的。主存由若干存储单元组成,每个单元可存放一串若干位的二进制码表示的信息。该信息的总位数称为一个存储单元的字长。全部存储单元统一编号,称为存储单元的地址。注意,要把存储单元的地址和存储单元里存放的内容(指令和数据)区分开,存储单元地址只有一个,是固定不变的,而存储在其中的信息是可以更换的。2020/2/27第一章123.控制器控制器是计算机中发号施令的部件,是计算机的指挥中心,它控制计算机的各部件自动协调地工作。控制器的实质是解释程序,它每次从存储器中读取一条指令,经过分析译码产生一串操作命令发向各个部件,控制各部件动作,使整个计算机连续地、有条不紊地运行。控制信息是由控制器发出。控制器产生信息的依据来自三个方面,一是指令,它存放在指令寄存器中,是计算机操作的主要依据。二是各部件的状态触发器,其中存放反映机器运行状态的有关信息。机器在运行过程中,根据各部件的即时状态决定下一步操作是按顺序执行下一条指令,还是转移执行其他指令,或者转向其他操作。三是时序电路,它能产生各种时序信号,使控制器的操作命令被有序地发送出去,以保证整个机器协调地工作,不至于造成操作指令间的冲突或先后次序上的错误。2020/2/27第一章13图1-5是控制器的基本框图。程序的指令一般按顺序执行,控制器采用程序计数器(ProgramCounter)依次提供指令在存储器中的地址。程序计数器有自动加1的功能,总是指向下一条将要执行的指令地址。指令取出后,暂时存放到指令寄存器中,以便控制器识别操作的种类和决定操作数的地址,即指令寄存器中指令的操作码部分送指令译码器进行译码,确定操作码性质,地址码部分表明操作数的地址。图1-5控制器的基本框图2020/2/27第一章144.输入和输出设备输入设备与主机之间通过接口连接,主要有以下几个原因:一是输入设备大多数是机电设备,传送数据的速度远远低于主机,因而需要接口做数据缓冲;二是输入设备表示的信息格式与主机不同,需要用接口进行数据格式转换;三是接口还可以向主机报告设备运行的状态,传达主机的命令等。输出设备用来将计算机的处理结果以人或其他设备所能接受的形式送出计算机,如字符、文字、图形、图像、声音等。常见的输出设备有显示器、打印机和绘图仪等,输出设备也需要接口与主机连接。外存储器也是计算机中重要的外部设备,它既可以作输入设备,也可以作输出设备,此外,它还有存储信息的功能,因此,它常常作为辅助存储器使用,人们常将暂时未使用或等待使用的数据放在其中。常见的外存储器有磁盘和磁带机等,它们与输入设备一样,也要通过接口与主机相连。2020/2/27第一章151.2计算机系统1.2.1计算机软件的基本概念1.2.3计算机系统的多层次结构返回目录1.2.2硬件与软件的关系2020/2/27第一章161.2计算机系统所谓软件,它是看不见摸不着的,由人们事先编制成具有各种特殊功能的信息组成,人们将解决问题的方法、思想和过程用程序进行描述。1.2.1计算机软件的基本内容1.软件的组成软件是计算机系统的灵魂,没有配备任何软件的“裸机”无法投入使用,没有配备足够的软件,计算机的功能将不能很好地发挥,计算机的应用范围也将受到很大的影响。所有软件都是使用某种语言编写、可完成各种功能的程序。计算机语言有机器语言、汇编语言和高级语言之分。机器语言是计算机硬件可直接识别的最低级的语言;汇编语言是采用助记符编程的语言,用汇编语言编写的源程序必须由汇编程序将其翻译成机器语言程序才能被机器执行;高级语言是完全脱离机器硬件结构,根据应用领域的不同要求而设计出的通用程序设计语言,2020/2/27第一章17计算机软件可分为系统软件和应用软件两大类,如图1-6所示是计算机软件组成图。图1-6计算机软件组成图2020/2/27第一章182.软件的发展过程和计算机硬件一样,软件也是在不断发展的。在早期的计算机中,用户必须根据机器自身能识别的语言——机器语言,编写出机器可直接运行的程序。但直接用机器语言编写程序是非常繁琐的,不但程序很难读懂,而且容易出错;另一方面,由于机器不同,机器语言也不同,因此人们在不同的机器上编程,就必须熟悉不同机器的机器指令,使用极不方便。这些情况大大限制了计算机的应用。20世纪50年代后,为了方便编写程序和提高计算机的使用效率,逐渐形成了用符号表示不同指令的汇编语言,这种语言不用0/1代码编程,改善了程序的可读性,但计算机只认识机器语言而不能识别这些符号,为此,人们又创造了汇编程序,借助于汇编程序,计算机可以自动地把汇编源程序翻译成机器语言表示的目标程序。2020/2/27第一章19虽然使用汇编语言比使用机器语言编写程序是进了一步,但是汇编语言仍是面向机器的。不同的计算机,其指令系统也不同,人们必须先熟悉这台机器的指令系统,然后再用它的汇编语言来编写程序。为了摆脱对具体机器的依赖,在汇编语言之后又出现了面向问题的高级语言,使用高级语言编程可以不了解机器的结构,与具体的机器无关。高级语言的指令通常是一个英语词汇,直观通用,使程序具有很强的可读性。有影响的高级语言有Basic、Fortran、C、C++、Java等。为了使高级语言编写的源程序在机器上执行,同样需要有一个翻译系统,于是产生了编译程序和解释程序,他们能把高级语言翻译成机器语言。可见,随着各种高级语言的出现,汇编语言、编译程序、解释程序的产生,逐渐形成了软件系统。2020/2/27第一章201.2.2硬件与软件的关系一个完整的计算机系统包含硬件和软件两大部分。硬件是计算机系统的物质基础,在硬件高度发展的基础上,才有软件赖以生存的空间和活动场所,没有硬件对软件的支持,软件的功能就无从谈起;同样,软件是计算系统的灵魂,没有软件的硬件“裸机”不能提供给用户使用,就像一堆废铁。因此,硬件和软件是相辅相成的、不可分割的整体。在早期的计算机中,硬件和软件之间的界限十分清楚,然而,随着计算机技术的不断发展,硬件和软件正朝着相互渗透、相互融合的方向发展,硬件与软的界限变得越来越模糊。2020/2/27第一章21硬件和软件在逻辑上是相等的。原来一些由硬件实现的操作可以改由软件来实现,称为硬件软化,可以增强系统的功能和适应性;反之,原来由软件实现的操作也可以由硬件来完成,称为软件硬化,可以显著降低软件在时间上的开销。既然硬件和软件之间不存在一条固定的、一成不变的界限,那么今天的软件可能成为明天的硬件,反之亦然。人们需要根据价格、速度、存储容量、可靠性等因素综合考虑,来确定哪些功能由硬件实现,哪些功能由软件实现将更经济、更合理。2020/2/27第一章221.2.3计算机系统的多层次结构1.多层次结构现代计算机是一个功能复杂的软硬件系统。从计算机使用者的角度,从计算机操作员的角度,从程序设计员的角度和从硬件工程师的角度,所看到的计算机系统具有完全不同的属性。为了更好地表达和分析这些属性之间的联系,以便更恰当地确定软件和硬件之间的界面,使用者与设计者之间的界面,以及各层次计算机语言之间的界面,一般将计算机划分为若干层次,以一种层次结构的观点去看待和分析计算机。在学习使用计算机时,也可选择一个层次(一级语言)去理解和认识计算机