简述计算机的工作原理
的有关信息介绍如下:计算机基本工作原理
计算机系统概述
计算机系统包括硬件系统和软件系统两大部分。计算机通过执行程序而运行,计算机工作时软硬件协同工作,二者缺一不可。
硬件(Hardware)是构成计算机的物理装置,是看得见、摸得着的一些实实在在的有形实体。一个计算机硬件系统,从功能级角度而言来自包五大功能部件:运算器、控制器、存储器360问答、输入设备和输出设求粮游无乙假厂两急备。
硬件是计算机能够运行的物某它城市笔场员否科势械质基础,计算机的性能,如运算速度、存储容量玉具迫集价西木、计算精度、可靠性等,很大程度上取决于硬件的配置。只有硬件而根没有任何软件支持的计算机称为裸机。在裸机上只能运行机器语言程序,使用很不方便,大此句星效率也低。
软件(Software)是指使计算机运行需要的程序、数据和西培矛较零耐之单打似燃有关的技术文档资料。软件是计算机的灵魂,是货范天发挥计算机功能的关键。有了软件,人们可以不必过多地去了解机器本身的结构与原理,可以方便灵活地使用计算机。软件屏蔽了下层的具体计算机硬件,形成一台抽象的逻辑计算机(也称虚拟机),它在用户和计算机(硬件)之间架起了桥梁。
软件通常分为系统软件和应用软件季曾两大类。系统软件是计算县够机制造者提供的使用和管理计算机的软件,它包括操作系统、志语言处理系统、常用来省土娘长船等孔镇伤似服务程序等。应用软件是计算机用户用计算机及其提供的各种系统软件开发的解决各种实际问题的软件。
一、要求掌握的知识要点
(1)掌握十进制数、二进制数、十六进制数、八进制数以及它们之间的相互转换方法。
(2)掌握二进制数的算术运算及逻辑运算的法则,数据在计算机中的表示方法。
(3)掌握将练语真沉犯较BCD码、ASCII码及汉字编码的概念。
(4)熟悉中央处理单元CPU的组成及内部主要部件的功能。
二、知识点概述
(一)计算机中数据的表示
计算机最主要的功能是处理信息,如处理数值、文字、声音、图形和图像等。在计算机内部,各种注晶随机业煤特信息都必须经过数字古介金陈审化编码后才能被传送、存储和处理,因此,掌配时选识握信息编码的概念与掉走目兵半身承玉点验是处理技术是至关重要的。所谓编码,就是采用少量的基本符号,选用一定的组合原则,以表示大量复杂、多样的信息。基本符号的种类和这些符号的组合规则是一切信息编码的两似纪直烟拉部见大要素。例如,用10个阿拉伯数码表示数字,用2州刘圆政正米6个英文字母表示英文词汇等,都是编码的典型例子。
1.进位计数制
在采用进位计数的数字系统中,如果只用r个基本符号(例如,O,1,2,…,r一1)表示数值,则称其为基r数制(Radix-rNumberSystem),r称为该数制的基(Radix)。对于不同的数制,它们的共同特点是:
·每一种数制都有固定的符号集。例如,对于十进制数制,其符号有10个:0,1,2,…,9;对于二进制数制,其符号有两个:O和1。
·都使用位置表示法。即处于不同位置的数符所代表的值不同,且与它所在位置的权值有关。例如,十进制数1234.55可表示为
1234.55=1×103+2×102+3×101+4×100+5×10-1+5×10-2
可以看出,各种进位计数制中的权的值恰好是基数的某次幂。因此,对任何一种进位计数制表示的数都可以写成按权展开的多项式之和,即任意一个r进制数N可表示为
式中:Di是该数制采用的基本数符;ri是权;r是基数,不同的基数表示不同的进制数。表1-1所示的是计算机中常用的几种进制数。
表1-1计算机中常用的几种进制数的表示
进位制二进制八进制十进制十六进制
规则逢二进一逢八进一逢十进一逢十六进一
基数r=2r=8r=10r=16
数符O,1O,1,2,…,7O,1,2,…,9O,l,2,…,9,A,B,…,F
权2i8i10i16i
形式表示BODH
2.算术逻辑运算
(1)二进制加法。二进制加法与十进制加法相类似,所不同的是,二进制加法的规则是“逢二进一”,即
O+0=01+0=10+1=11+1=0(有进位)
(2)二进制减法。在二进制减法中,当不够减时需要借位,高位的1等于下一位的2,即“借一当二”,其运算法则如下:
0-0=01-0=11-1=00-1=1(有借位)
(3)二进制乘法。二进制乘法与十进制乘法是一样的,但因为二进制数只由0和1构成,因此,二进制乘法更简单,其运算法则如下:
O×O=O1×O=0O×1=01×1=1
(4)二进制除法。二进制除法是二进制乘法的逆运算,其运算方法与十进制除法是一样的。
(5)二进制与运算又称逻辑乘,其运算法则如下:
O∧0=OO∧1=01∧O=01∧1=1
(6)二进制或又称逻辑加,其运算法则如下:
0∨O=00∨1=11∨0=11∨1=1
(7)二进制异或的运算法则如下:
OO=001=110=111=0
3.机器数和码制
各种数据在计算机中表示的形式称为机器数,其特点是数的符号用O、1表示,如“0”表示正号,“1”表示负号,小数点则隐含表示而不占位置。机器数对应的实际数值称为该数的真值。
机器数有无符号数和带符号数两种。无符号数表示正数,在机器数中没有符号位。对于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数。对于带符号数,机器数的最高位是表示正、负的符号位,其余二进制位表示数值。若约定小数点的位置在机器数的最低数值位之后,则是纯整数;若约定小数点的位置在机器数的最高数值位之前(符号位之后),则是纯小数。
为了便于运算,带符号的机器数可采用原码、反码和补码等不同的编码方法,机器数的这些编码方法称为码制。
4.汉字编码
汉字处理包括汉字的编码输入、汉字的存储和汉字的输出等环节。也就是说计算机处理汉字,首先必须先将汉字代码化,即对汉字进行编码。
1)输入码
(1)数字编码。数字编码就是用数字串代表一个汉字的输入,常用的是国标区位码。国际区位码将国家标准局公布的6763个两级汉字分成94个区,每个区94位,实际上是把汉字表示成二维数组,区位和位码各两位十进制数字,因此,输入一个汉字需要按键四次。例如,“中”字位于第54区48位,区位码为5448:
(2)拼音码。拼音码是以汉语读音为基础的输入方法。由于汉字同音字太多,输入重码率很高,因此,按拼音输入后还必须进行同音字选择,影响了输入速度。
(3)字形编码。字形编码是以汉字的形状确定的编码。汉字总数虽多,但都是由一笔一划组成,全部汉字的部件和笔划是有限的,因此,把汉字的笔划部件用字母或数字进行编码,按笔划书写的顺序依次输入,就能表示一个汉字。五笔字形、表形码等便是这种编码法。五笔字形编码是最有影响的编码方法。
2)内部码
汉字内部码(简称汉字内码)是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息处理系统内部存储、处理、传输汉字用的代码。在西文计算机中,没有交换码和内码之分。汉字数量多。用一个字节无法区分,采用国家标准局GB2312-80中规定的汉字国标码,两个字节存放一个汉字的内码,每个字节的最高位置“1”,作为汉字机内码。由于两个字节各用7位,因此可表示16384个可区别的机内码。以汉字“大”为例,国标码为3473H,两个字节的高位置“1”,得到的机内码为B4F3H。
为了统一地表示世界各国的文字,1993年国际标准化组织公布了“通用多八位编码字符集”的国际标准ISO/IEC10646,简称UCS(UniversalCodeSet)。UCS包含了中、日、韩等国的文字,这一标准为包括汉字在内的各种正在使用的文字规定了统一的编码方案。
3)字形码
汉字字形码是表示汉字字形的字模数据,通常用点阵、矢量函数等方式表示。用点阵表示字形时,汉字字形码指的就是这个汉字字形点阵的代码。字形码也称字模码,是用点阵表示的汉字字形码,它是汉字的输出方式。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16×16点阵,高精度型汉字为24×24点阵、32×32点阵、48×48点阵等等。
(二)中央处理机(CPU)
1.CPU的组成
前面已经提到,CPU主要由运算器、控制器组成。构成CPU的框图如图1-2所示。
1)运算器
运算器是对数据进行加工处理的部件,它主要完成算术运算和逻辑运算,完成对数据的加工与处理。不同的计算机,运算器的结构也不同,但最基本的结构都是由算术/逻辑运算单元(ALU)、累加器(ACC)、寄存器组、多路转换器和数据总线等逻辑部件组成的。
2)控制器
计算机能执行的基本操作叫做指令,一台计算机的所有指令组成指令系统。指令由操作码和地址码两部分组成,操作码指明操作的类型,地址码则指明操作数及运算结果存放的地址。
图1-2CPU主要组成部件框图
控制器的主要功能是从内存中取出指令,并指出下一条指令在内存中的位置,将取出指令经指令寄存器送往指令译码器,经过对指令的分析发出相应的控制和定时信息,控制和协调计算机的各个部件有条不紊的工作,以完成指令所规定的操作。
控制器是由程序计数器(简称PC)、指令寄存器、指令译码器、状态条件寄存器、时序产生器、微操作信号发生器组成,如图1-3所示。
图1-3控制器组成框图
(1)程序计数器。当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的程序地址。
(2)指令寄存器(IR)。用于存放当前要执行的指令。
(3)指令译码器(ID)。用于对现行指令进行分析,确定指令类型、指令所要完成的操作以及寻址方式。
(4)时序产生器。用于产生时序脉冲和节拍电位去控制计算机有序的工作。
(5)状态/条件寄存器。用于保存指令执行完成后产生的条件码。例如,运算是否有溢出,结果为正还是为负,是否有进位等。此外,状态/条件寄存器还保存中断和系统工作状态等信息。
(6)微操作信号发生器。把指令提供的操作信号、时序产生器提供的时序信号以及由控制功能部件反馈的状态信号等综合成特定的操作序列,从而完成取指令的执行控制。
控制器一般由指令寄存器(IR)、程序计数器(PC)、时序部件、微操作形成部件和程序状态字寄存器(PSW)构成。控制器的作用是控制整个计算机的各个部件有条不紊地工作,它的基本功能就是从内存取指令和执行指令。
执行指令有取指令、指令译码、按指令操作码执行、形成下一条指令地址四个步骤。
2.CPU的功能
CPU的基本功能如下。
(1)程序控制。CPU通过执行指令来控制程序的执行顺序,这是CPU的重要职能。
(2)操作控制。一条指令功能的实现需要若干操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。
(3)时间控制。CPU对各种操作进行时间上的控制,这就是时间控制。CPU对每条指令整个的执行时间要进行严格控制。同时。指令执行过程中的操作信号的出现时间、持续时间及出现的时间顺序都需进行严格控制。
(4)数据处理。CPU对数据以算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果为人们所利用。所以,对数据的加工处理是CPU最根本的任务。
必须指出,在计算机系统中,硬件和软件之间并没有一条明确的分界线。一般来说,任何一个由软件完成的操作也可以直接由硬件来实现,而任何一个由硬件所执行的指令也能够用软件来完成。软件和硬件之间的界线是经常变化的。今天的软件可能就是明天的硬件,反之亦然。
计算机硬件系统组成
从功能上来看,计算机的硬件系统由运算器、控制器、存储器、输入设备和输出设备组成,五大部分由总线连接。控制器和运算器合在一起被称为中央处理器CPU(CentralProcessingUnit)。
计算机基本工作原理
冯·诺依曼原理
世界上第一台计算机基于冯·诺依曼原理,其基本思想是:存储程序与程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据,通过一定方式输入并存储在计算机的存储器中。程序控制是指计算机运行时能自动地逐一取出程序中一条条指令,加以分析并执行规定的操作。到目前为止,尽管计算机发展了4代,但其基本工作原理仍然没有改变。根据存储程序和程序控制的概念,在计算机运行过程中,实际上有两种信息在流动。一种是数据流,这包括原始数据和指令,它们在程序运行前已经预先送至主存中,而且都是以二进制形式编码的。在运行程序时数据被送往运算器参与运算,指令被送往控制器。另一种是控制信号,它是由控制器根据指令的内容发出的,指挥计算机各部件执行指令规定的各种操作或运算,并对执行流程进行控制。这里的指令必须为该计算机能直接理解和执行。
计算机指令与指令系统
指令是指计算机完成某个基本操作的命令。指令能被计算机硬件理解并执行。一条指令就是计算机机器语言的一个语句,是程序设计的最小语言单位。
一台计算机所能执行的全部指令的集合,称为这台计算机的指令系统。指令系统比较充分地说明了计算机对数据进行处理的能力。不同种类的计算机,其指令系统的指令数目与格式也不同。指令系统越丰富完备,编制程序就越方便灵活。指令系统是根据计算机使用要求设计的。
一条计算机指令是用一串二进制代码表示的,它通常应包括两方面的信息:操作码和地址码。操作码用来表征该指令的操作特性和功能,即指出进行什么操作;地址码指出参与操作的数据在存储器中的地址。一般情况下,参与操作的源数据或操作后的结果数据都在存储器中,通过地址可访问该地址中的内容,即得到操作数。
CPU访问存储器需要一定的时间,为了提高运算速度,有时也将参与运算的数据或中间结果存放在CPU寄存器中或者直接存放在指令中。
计算机的全名应该叫“通用电子数字计算机”(General-PurposeElectronicDigitalComputer)。这个名称说明了计算机的许多性质。
“通用”说明计算机不是一种专用设备,我们可以把它与电话做一个比较。电话只能作为一种通讯工具,别无他用。而计算机不仅可以作为计算根据,只要有合适的软件,它也可以作为通讯工具使用,还能有无穷无尽的其他用途。
“电子”是计算机硬件实现的物理基础,计算机是非常复杂的电子设备,计算机的运行最终都是通过电子电路中的电流、电位等实现的。
“数字”化是计算机一切处理工作的信息表示基础。在计算机里,一切信息都是采用数字化的形式表示的,无论它原本是什么。无论是数值、文字,还是图形、声音等等,在计算机里都统一到二进制的数字化表示上。数字化是计算机的一种基本特征,也是计算机通用性的一个重要基础。
“计算机”意味着这是一种能够做计算的机器。计算机能够完成的基本动作不过就是数的加减乘除一类非常简单的计算动作。但是,当它在程序的指挥下,以电子的速度,在一瞬间完成了数以万亿计的基本动作时,就可能完成了某种很重大的事情。我们在计算机的外部看到的是这些动作的综合效果。从这个意义上看,计算机本身并没有多少了不起的东西,唯一了不起的就是它能按照指挥行事,做得快。实际上,更了不起的东西是程序、是软件,每个程序或软件都是特殊的,针对面临的问题专门设计实现的东西。
目前对计算机的另一种流行称呼是“电脑”,这是从香港台湾转播开来的一个译名,目前使用很广泛。实际上这个名称并不合适,很容易把人的理解引到错误的方向(或许这正是一些人有意或无意的目标)。我们从来不把原始人用于打树上果子的木棍称为“木手”,也不把火车称为“铁脚”。因为无论是木棍还是火车,虽然各有其专门用途方面的力量,各有其“长处”,但它们都只能在人手脚功能中很窄的一个方面有用,与手脚功能的普适性是根本无法相提并论的。同样,计算机能帮助人完成的也仅仅是那些能够转化为计算问题的事项,与人脑的作用范围和能力相比,计算机的应用范围也是小巫见大巫了。
计算机的核心处理部件是CPU(CentralProcessingUnit,中央处理器)。目前各类计算机的CPU都是采用半导体集成电路技术制造的,它虽然不大,但其内部结构却极端复杂。CPU的基础材料是一块不到指甲盖大小的硅片,通过复杂的工艺,人们在这样的硅片上制造了数以百万、千万计的微小半导体元件。从功能看,CPU能够执行一组操作,例如取得一个数据,由一个或几个数据计算出另一个结果(如做加减乘除等),送出一个数据等。与每个动作相对应的是一条指令,CPU接收到一条指令就去做对应的动作。一系列的指令就形成了一个程序,可能使CPU完成一系列动作,从而完成一件复杂的工作。
在计算机诞生之时,指挥CPU完成工作的程序还放在计算机之外,通常表现为一叠打了孔的卡片。计算机在工作中自动地一张张读卡片,读一张就去完成一个动作。实际读卡片的事由一台读卡机完成(有趣的是,IBM就是制造读卡机起家的)。采用这种方式,计算机的工作速度必然要受到机械式读卡机的限制,不可能很快。
美国数学家冯·诺依曼最早看到问题的症结,据此提出了著名的“存储程序控制原理”,从而导致现代意义下的计算机诞生了。
计算机的中心部件,除了CPU之外,最主要是一个内部存储器。在计算机诞生之时,这个存储器只是为了保存正在被处理的数据,CPU在执行指令时到存储器里把有关的数据提取出来,再把计算得到的结果存回到存储器去。冯·诺依曼提出的新方案是:应该把程序也存储在存储器里,让CPU自己负责从存储器里提取指令,执行指令,循环式地执行这两个动作。这样,计算机在执行程序的过程中,就可以完全摆脱外界的拖累,以自己可能的速度(电子的速度)自动地运行。这种基本思想就是“存储程序控制原理”,按照这种原理构造出来的计算机就是“存储程序控制计算机”,也被称做“冯·诺依曼计算机”。
到目前为止,所有主流计算机都是这种计算机,这里讨论的都是这种计算机。(随着对计算过程和计算机研究的深化,人们也认识到冯·诺依曼计算机的一些缺点,开展了许多目的在于探索其他计算机模式的研究工作。但是到目前为止,这些工作的成果还远未达到制造出在性能、价格、通用性、自然易用等方面能够与冯·诺依曼计算机匹敌的信息处理设备的程度。这里我们就不打算进一步介绍这些方面的情况了。)
从CPU抽象动作的层次看,计算机的执行过程非常简单,是一个两步动作的简单循环(图1.5),称为CPU基本执行循环。CPU每次从存储器取出要求它执行的下一条指令,然后就按照这条指令,完成对应动作,循环往复,直到程序执行完毕(遇到一条要求CPU停止工作的指令),或者永无休止地工作下去。
CPU是一个绝对听话、服从指挥的服务生,它每时每刻都绝对按照命令行事,程序叫它做什么,它就做什么。CPU能完成的基本动作并不多,通常一个CPU能够执行的指令大约有几十种到一二百种。另一方面,实际社会各个领域里,社会生活的各个方面需要应用计算机情况则是千差万别、错综复杂。这样简单的计算机如何能应付如此缤纷繁杂的社会需求呢?答案实际上很简单:程序。通过不同指令的各种适当排列,人可以写出的程序数目是没有穷尽的。这就像英文字母只有26个,而用英文写的书信、文章、诗歌、剧作、小说却可以无穷地多一样。计算机从原理上看并不复杂,正是五彩缤纷的程序使计算机能够满足社会的无穷无尽的需求。
计算机的这种工作原理带来两方面的效果。一方面,计算机具有通用性,一种(或者不多的几种)计算机就能够满足整个社会的需求,这使得人们可以采用大工业生产的方式进行生产,提高生产效率,增强计算机性能,降低成本。这使得计算机变得越来越便宜,与此同时性能却越来越强。另一方面,通过运行不同的程序,不同的计算机,或者同一台计算机在不同的时刻可以表现为不同的专用信息处理机器,例如计算器、文字处理器、记事本、资料信息浏览检索机器、帐本处理机器、设计图版、游戏机等等。甚至同一台计算机在一个时刻同时表现为多种不同的信息处理机器(只要在这台计算机中同时运行着多个不同的程序)。正是这种通用性和专用性的完美统一,使得计算机成为人类走向信息时代过程中最锐利的一件武器。
我们说CPU并不复杂,这是从原理上讲的。而今天最先进的CPU又是极端复杂的东西,甚至可能是人类有史以来制造出的最复杂产品。产生这种情况的原因很多,这里列举其中最重要的两个:
第一,人们对CPU性能的要求越来越高,因为需要由计算机完成的工作越来越复杂(现实社会总是不断提出新问题,要求用计算机解决。一个复杂问题解决了,人们就看到了另一个更复杂的问题解决的希望,因而会去努力),完成一项工作需要执行的指令数越来越多。一个永远也不能克服的困难是,计算机执行指令需要时间(请读者记住计算机的这个本质性的缺点,这对于理解计算机是极端重要的)。虽然目前计算机执行指令的速度已经快得惊人(每秒钟可以执行数以亿计的指令),对于人希望用计算机解决的最复杂任务而言,CPU的速度将永远是太慢了。为提高CPU在实际计算中的速度,人们开发了许多巧妙技术,而实现这些技术就大大地增加CPU本身的复杂性。
第二,需要用计算机处理的数据的情况越来越多。早期的计算机主要是处理数值性数据,例如整数、实数(在计算机里用一种称为“浮点数”的方式表示),CPU也就只需要围绕与这些数据类型有关的计算过程,提供一批指令。随着计算机的发展,新的应用需求层出不穷。例如,当计算机被广泛用于图形图像声音信号的处理时,虽然从理论上说CPU可以不改变(原有指令足以完成工作,只要写出相应的程序),但人们也发现,增加一些新的特殊指令,对这些特殊数据形式的处理就能更有效。新指令的增加能大大提高CPU处理特殊数据形式的效率(有时是必须的,例如为了实时地处理高清晰度的三维动画),由此带来的一个副作用是使CPU变得更加复杂了。
过去人们常说计算机的发展经历了电子管、晶体管、集成电路和大规模集成电路四个阶段,也把以这些方式构造起来的计算机分别称为第一、二、三、四代计算机。今天回头再看,这种说法已经没有太大的意义了。制造计算机的器件变化并不是根本性的(虽然其意义不可低估,例如在降低成本、减小体积方面),这个变化过程不过是人们寻求合适方式制造计算机的一个短暂的摸索阶段,在大约二十年的时间里就已经完成了。从那以后,计算机的基本制造工艺再没有大的变化。而在另一方面,计算机发展史中其他的事件则更重要得多。例如:计算机的小型化和个人计算机的出现,计算机网络的出现和发展,计算机使用形式和出现形式的变化等等(这些都是在大规模集成电路的范围中完成的)。
今天,人们还一直在研究真正新型的计算机,作为与普通计算机具有根本性差异的另类信息处理工具,它们能够发明出来吗?将在什么时候出现?能够具有今天计算机这样的性能价格比、这样的通用性与专用性的完美统一吗?能够取代目前流行的这类电子数字计算机吗?我们正拭目以待。