信息处理技术员教程.docx
《信息处理技术员教程.docx》由会员分享,可在线阅读,更多相关《信息处理技术员教程.docx(38页珍藏版)》请在冰豆网上搜索。
信息处理技术员教程
信息处理技术员教程
第 1 章 计算机硬件基础
计算机硬件基础知识历来都是信息处理技术员考试的一个重点。
从历年考题分数的分布来看,每年的分值都在10分左右。
主要涉及到数据表示、数据运算、主板的结构、CPU的组成、存储器以及常用I/O设备等。
本章在考纲中涉及到的考点如下:
(1)数据运算。
掌握各种进制之间互相转换,掌握常用的逻辑运算,掌握补码表示法进行加减运算。
(2)数据表示。
掌握带符号定点数的原码、反码及补码表示法,理解浮点数的表示方法,理解常用的二/十进制编码,理解ASCII码表示原理,掌握汉字编码原理。
(3)主板的结构。
了解主板上的主要电子组件、插座和接口的名称、类型、位置和基本特性。
(4)CPU的组成。
了解冯.诺依曼计算机的特点,掌握CPU的基本构成及各部分的功能,理解指令在CPU中的执行过程。
(5)存储器。
了解存储器的分类方法,理解"Cache-主存-辅存"三级存储系统的原理,了解主存储器基本构成,掌握存储器主要指标的计算,了解常用RAID系统的功能。
(6)常用I/O设备。
了解常用的I/O设备分类,重点掌握显示器、打印机、硬盘、鼠标的原理、构成、分类、性能标准等。
1.1 计算机概述
计算机是一种能自动、高速、正确地完成数值计算、数据处理和实施控制等功能的电子设备。
它能接收输入的数字信息,按照内部存储的指令序列去处理,并将产生的结果输出。
1946年2月,世界上第一台计算机ENIAC诞生在美国,经过60多年的发展,计算机的运算能力、外形结构及应用领域等都发生了极大的变化。
计算机是20世纪人类最重要的科学技术发明之一,它的诞生、发展和应用彻底改变了人类社会的生产和生活方式。
1.1.1 计算机的组成部件
一个完整的计算机系统由硬件系统和软件系统组成,如图1-1所示。
图1-1 计算机系统组成
1.冯·诺依曼计算机的特点
60多年来,尽管计算机性能发生了翻天覆地的变化,但是其基本体系结构和工作原理并没有太大的改变,仍然遵循冯·诺依曼1946年6月在《关于电子计算装置逻辑结构初探》报告中提出的设计思路。
主要内容如下。
(1)计算机(指硬件)由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。
(2)计算机内部采用二进制数来表示程序和数据。
(3)将编写好的程序和原始数据预先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速地从存储器中提取指令并执行,这就是存储程序的原理。
按照上述思路设计的计算机称为冯·诺依曼计算机,随着计算机技术的不断发展,也暴露出这种计算机的一些缺点,目前已出现了一些突破冯·诺依曼结构的计算机,统称为非冯·诺依曼结构计算机,如数据驱动的数据流计算机、需求驱动的归约计算机和模式匹配驱动的智能计算机等。
2.计算机的硬件系统
组成计算机的基本部件有运算器、控制器、存储器、输入设备和输出设备,它们通过总线互联,就构成了计算机的硬件系统,如图1-2所示。
图1-2 计算机硬件系统
中央处理器(CPU)是运算器和控制器的合称,它是硬件系统的核心。
存储器包括主存储器和辅助存储器。
其中,主存储器与CPU称为主机,辅助存储器、输入设备和输出设备称为外部设备。
外部设备种类繁多,它们通过适配器(转换器)与主机相连接。
(1)CPU(中央处理器)。
主要工作是执行指令,按照指令的要求对数据进行运算和处理,这部分工作由运算器和控制器分工合作完成。
运算器由算术逻辑部件(ALU)、寄存器组以及一些控制电路组成。
其中ALU是主要部件,它的核心是加法器,任何运算都可以转化为加法运算,寄存器组保存参与运算的数据及结果。
控制器负责对指令进行译码,产生一系列控制信号,指挥和协调计算机的各个部件有序工作。
它一般包括下述部件。
①指令寄存器IR.存放正在执行的指令,以便在整个指令执行过程中,实现一条指令的全部功能控制。
②指令译码器ID.又称操作码译码器,它对指令寄存器IR中的指令进行分析,确定指令类型、指令所要完成的操作以及寻址方式等,并产生相应的控制信号提供给微操作信号发生器。
③程序计数器PC.又称指令计数器或指令指针(IP),在某些类型的计算机中用来存放正在执行的指令地址。
在大多数机器中则存放将要执行的下一条指令的地址。
④微操作信号发生器。
它根据指令译码器ID产生的操作信号、时序电路产生的时序信号,以及各个功能部件反馈的状态信号等,产生执行指令所需的全部微操作控制信号,形成特定的微操作序列,从而实现对指令的执行控制。
(2)主存储器。
简称主存,用于存放当前执行的程序和需要使用的数据,存取速度快,CPU可直接访问。
其基本结构如图1-3所示,主要包括下述基本部件。
图1-3 主存储器结构示意图
①存储体。
是指存放信息的实体,由若干存储单元组成,每个存储单元存放一串二进制数。
存储单元的编号称为存储地址,简称地址。
②地址寄存器。
接收并保存CPU发送的内存地址。
③地址译码器。
将地址寄存器中的地址转换为使对应单元被选中的信号。
④数据缓冲寄存器。
位于CPU和存储器之间,暂存存储器中准备读写的数据。
⑤读写控制电路。
接收CPU送来的读/写命令,并把这些命令转换为控制整个存储器协调工作的时序信号。
(3)外存储器。
也称辅助存储器,其特点是存储容量大、成本低,可脱机保存信息,但CPU不可以直接访问。
常见的外存储器包括软盘存储器、硬盘存储器、光盘存储器、移动硬盘以及U盘等。
(4)高速缓冲存储器。
简称Cache,它是位于CPU和主存储器之间,规模较小但速度很高的存储器,用于保存主存储器中一部分内容的拷贝。
当主机读写数据时,首先访问Cache,只有在Cache中不含所需数据时,CPU才会访问主存,从而很好地解决了CPU和主存之间的速度匹配问题。
(5)外部设备。
也称外围设备,主要包括输入设备和输出设备。
常用外部设备包括键盘、鼠标、显示器、打印机、绘图仪及扫描仪等。
外部设备与CPU、主存等设备不同,有其自身特点种类繁多,速度远低于CPU,数据形式多种多样,所以不能和主机直接相连。
连接时除其本身的控制驱动电路外,还需要接口电路(适配器)。
(6)总线。
是连接计算机中各部件的数据通路,实现各部件之间的信息交流,其主要特征是共享传输介质。
如图1-4所示,总线通常包括数据总线、地址总线和控制总线,不同总线的根数各不相同,每根线能够传送一位二进制数。
图1-4 总线结构图
数据总线是系统中各模块传递数据的通道,典型的数据总线包含8、16、32、64根线。
线的根数称为数据总线的宽度,它反映了处理器的数据吞吐量。
地址总线用于指明数据传送的源地址和目的地址,其宽度决定了系统能够拥有的最大主存空间。
除了访问主存,地址线一般也访问I/O端口。
控制总线用于控制数据传送的方式、方向以及定时或应答等,其线的数目取决于总线的类型及具体的机器配置。
3.计算机的软件系统
包括PC机运行所需要的各种程序、数据及其有关的文档资料。
程序是完成某一任务的指令或语句的有序集合。
数据是程序处理的对象及结果。
文档是描述程序操作及使用的相关资料。
主要包括下述两大类。
(1)系统软件。
是使用和管理计算机系统的各种程序,包括操作系统、各种服务性程序、语言处理程序和数据库管理系统等。
(2)应用软件。
是计算机用户为了解决各种实际应用问题而编制的程序,如:
自动控制程序、科学计算程序和管理信息系统等。
1.1.2 计算机的应用
计算机虽然只有仅仅60多年的历史,但已被广泛地应用于工业、农业、国防、科研、教育、商业、医疗及日常生活的各个领域。
其应用可简要归纳为以下几个方面。
(1)科学计算。
是计算机应用最早的一个领域,也是应用最广的一个领域。
在这些领域中,问题往往极其复杂,计算量相当庞大,时间要求又很高。
如果没有计算机的快速和精确计算能力,解决这些问题几乎不可能。
(2)自动控制。
主要应用于国防、工业、农业以及人们日常生活的各个领域,据统计,目前国内外大约20%的微机用于该领域。
(3)信息处理。
主要指处理大量文字、图像、声音等非数值信息,其处理范围随着计算机的发展也逐渐扩大。
计算机在这方面的应用,不仅节省了大量的人力物力,在某些方面还为科学决策提供了准确的依据。
(4)辅助设计和辅助制造。
简称为CAD/CAM,它是借助计算机进行自动化或半自动化设计/制造的一项实用技术,它可以大大缩短设计/制造周期,加速产品更新换代,降低生产成本。
节省人力物力,而且对于保证产品的质量具有重要的作用。
(5)辅助教学和医疗。
计算机广泛应用于教育,被称为"教育史上的第四次革命".计算机辅助教学(CAI)软件可以把以前学生难以理解的知识,通过图像、动画和声音的配合,给学生更直观、更感性的形象,大大提高学习效率。
网络自主学习不受时空限制,可以按照自身情况制订学习的计划和进度,可以实现终身学习。
在医疗卫生方面,借助计算机的各种医疗设备,如CT图像处理设备,心、脑电图分析仪等,为早期疾病诊断提供了强有力的手段。
(6)人工智能。
指的是计算机具有模仿人的高级思维活动(如感知、思维、推理、学习、理解等)的能力,这类计算机主要应用于专家系统、模式识别、问题求解、定理证明、机器翻译及自然语言理解等。
计算机在社会经济与发展中的作用已在60多年的历史中得到了充分的肯定。
计算机应用的不断扩展推动着计算机技术快速发展,计算机技术的不断进步,又大大推动着计算机应用的迅猛发展。
1.1.3 计算机的分类
目前计算机种类非常多,按照功能可以分为通用机和专用机。
按照运算速度可分为巨型机、大型机、小型机、工作站和微型计算机。
按照所处理的数据类型可分为模拟计算机、数字计算机和混合型计算机等。
(1)巨型机。
运算速度超过1亿次/秒,存储容量大,主存容量超过几千兆字节。
其结构复杂,价格昂贵,研制这类巨型机是现代科学技术,尤其是国防尖端技术发展的需要。
(2)大型机。
运算速度一般在100万次/秒至几千万次/秒,字长32位~64位,主存容量在几百兆字节以上。
具有比较完善的指令系统、丰富的外部设备和功能齐全的软件系统。
其特点是通用性好,有极强的综合处理能力,主要应用于银行、政府部门和大型制造厂家等。
(3)小型机。
小型机规模小、结构简单,所以研制周期短,便于及时采用先进工艺,生产量大,硬件成本低。
同时,由于小型机软件比大型机简单,所以软件成本也低。
小型机打开了在控制领域应用计算机的局面,适用于数据的采集、整理、分析和计算等方面。
(4)微型机。
微型机采用微处理器、半导体存储器和输入/输出接口等芯片组装而成,使得微型机具有设计先进、软件丰富、功能齐全、价格便宜、可靠性高和使用方便等特点。
(5)工作站。
20世纪80年代兴起的面向工程技术人员的计算机系统,其性能介于小型计算机和微型计算机之间。
一般具有高分辨率的显示器、交互式的用户界面和功能齐全的图形软件等。
(6)网络计算机。
应用于网络上的计算机,这种计算机简化了普通个人计算机中支持计算机独立工作的外部存储器等部件,设计目标是依赖网络服务器提供的各种能力支持,以尽可能地降低制造成本。
这类计算机简称为"NC".
1.2 数据运算
二进制是计算机功能得以实现的基础,任何计算机应用中的数据在机器内部都表示为"0"和"1"组成的二进制代码串,数据处理最终都可以转化为二进制基本运算。
1.2.1 数制及其转换
1.计数进位制
因数符的个数有限,为了表示较大的数,一般采用计数进位制(简称数制),当数据达到当前长度可以表示的最大值后,如果数据继续增大,那么把当前数据长度增加一位,同时修改每位上的数值,这样就可以表示更大的数。
计数进位制的核心是基数与权。
一般而言,在每个数字系统中,若采用R个基本符号(0,1,2,…,R-1)表示各位上的数字,则称其为基R数制,或称R进制数字系统。
R被称为该数字系统的基数,运算时的原则是"逢R进一",对于每一个数位i,其该位上的权为Ri。
对于一个用R进制表示的数,可以按权展开为N:
计算机中常用的数制有二进制、八进制、十进制、十六进制,表1-1列出了这四种常用数制的基本规则。
表1-1 计算机中常用的进位计数制
2.不同计数进位制之间的转换
(1)R进制数转换为十进制数。
任何一个R进制数转换成为十进制数时,只要"按权展开"即可。
例如,把二进制数10101.01转换成相应的十进制数:
(10101.01)2 =1×24+0×23+1×22+0×21+1×20+0×2-1+1×2-2=(21.25)10
(2)十进制数转换为R进制数。
任何一个十进制数转换成为R进制数时,要将整数和小数部分分别进行转换。
图1-5 十进制整数转化为二进制 图1-6 十进制小数转化为二进制
①整数部分的转换。
转换方法是"除基取余,上右下左".用要转换的十进制整数去除以基数R,将得到的余数作为结果数据中各位的数字,直到余数为0为止。
上面的余数作为右边的低位数位,下面的余数作为左边的高位数位。
如图1-5所示,把十进制整数835转换为二进制数。
(835)10=(1101000011)2
②小数部分的转换。
转换方法是"乘积取整,上左下右".用要转换的十进制小数去乘以基数R,将乘积的整数部分作为结果数据中各位的数字,小数部分继续与基数R相乘。
以此类推,直到某一步乘积的小数部分为0或者已得到希望的位数为止。
最后,将上面的整数部分作为左边的高位数位,下面的整数部分作为右边的高位数位。
在进行转换的过程中,可能乘积的小数部分总得不到0,在这种情况下得到的是近似值。
如图1-6所示,把十进制小数0.6875转换为二进制数。
(0.6875)10=(0.1011)2
③含整数、小数部分的数的转换。
只要将整数、小数部分分别进行转换,得到转换后的整数和小数部分,然后再把这两部分组合起来就得到一个完整的数。
例如,十进制数835.6875转换为二级制数为:
(835.6875)10=(1101000011.1011)2
(3)二、八、十六进制数的相互转换。
①二进制与八进制相互转换
从小数点起,把二进制数每三位分成一组,然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数。
同理,将一位八进制数用三位二进制数表示,就可直接将八进制数转换成二进制数。
例如,把八进制数13.724转换为二进制数。
(13.724)8=(001011.111010100)2=(1011.1110101)2
②二进制与十六进制相互转换
从小数点起,把二进制数每四位分成一组,然后写出每一组的等值十六进制数,顺序排列起来就得到所要求的十六进制数。
同理,将一位十六进制数用四位二进制数表示,就可直接将十六进制数转换成二进制数。
例如,把十六进制数2B.5E转换为二进制数。
(2B.5E)16=(00101011.01011110)2=(101011.0101111)2
③八进制与十六进制相互转换。
通常采用二进制作为中间媒介,即先把八进制转换为二进制,然后再把二进制转换成为对应的十六进制。
把十六进制转换为八进制与此相似。
1.2.2 数据的表示
在计算机中表示实际数据时,有两个问题需要解决,一是数值的正负,二是小数点位置。
一般用最高位标识数的正负,0表示正数,1表示负数,该位称为符号位,这种形式表示的数通常称为机器数。
对于小数点问题,可分为小数点位置固定(定点数)、位置不固定(浮点数)两种情况,分别予以处理。
1.常用码制
(1)原码。
最高位是符号位,0代表正,1代表负,其余各位是数的绝对值的二进制代码。
通常用[X]原表示数X的原码。
例如,设机器字长为8位,则有下列结果。
[+1]原=00000001[-1]原=10000001
[+0]原=00000000[-0]原=10000000
按照原码编码规则,零有两种表示形式。
原码表示方法简明易懂,与其真值转换方便,比较容易进行乘除运算,但是在进行加减运算时,原码运算不方便,主要源于符号位不能参加运算,需要增加很多判断条件。
(2)反码。
最高位是符号位,对正数而言,最高位为0,其余各位是数的绝对值二进制代码;对负数而言,最高位为1,其余各位是数的绝对值二进制代码各位取反。
通常用[X]反表示数X的反码。
例如,设机器字长为8位,则有下列结果。
[+1]反=00000001[-1]反=11111110
[+0]反=00000000[-0]反=11111111
按照反码编码规则,零也有两种表示形式,反码同样不方便运算。
(3)补码。
补码源于模和同余的概念,是为了方便计算机进行加减运算而引入的。
最高位是符号位,正数的补码等于其原码,负数的补码等于其反码最后一位加上1.通常用[X]补表示数X的反码。
例如,设机器字长为8位,则有下列结果。
[+1]补=00000001[-1]补=11111111
[+0]补=00000000[-0]补=00000000
按照补码编码规则,零有唯一的表示形式。
采用补码进行加减运算十分方便,可以允许符号位一起参与运算,而且可以把减法运算转化为加法运算,提高了运算速度。
采用补码进行加减运算时,若运算结果不超出机器所表示范围,则有如下关系。
[X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+[-Y]补
(4)移码。
又称为增码、余码或偏码,常用于表示浮点数中的阶码。
通常用[X]移表示数X的移码,设机器字长为n,取1位符号位,真值X所对应的移码如下。
[X]移=2n-1+x(-2n-1<=X<2n-1)
实际应用中,不用上面关系式计算移码。
机器数补码与移码的符号位互补,其余位完全相同,所以二者转换时只需把符号位取反。
2.定点数与浮点数
定点数是指小数点位置固定的数,一般将定点数分成定点整数和定点小数两种。
定点整数的小数点固定在数据数值部分的最右边,n+1位定点整数表示范围:
-2n~2n-1.定点小数的小数点固定在符号位的右边,数值位的左边,它一定是纯小数,n+1位定点小数表示范围:
-1~1-2-n.
定点数运算时,所有数据都必须保证处于有效数值范围内。
如遇到绝对值小于最小正数的数,则被当作机器数0来处理,称为"下溢".而大于最大正数和小于绝对值最大负数的数,则称为"溢出",此时计算机暂停当前工作,而转去进行溢出处理。
与定点数不同,浮点数小数点位置能根据需要浮动。
一个R进制数N通常表示为如下形式。
其中R称为基数,E称为阶码,F称为尾数。
在计算机中,基数R一般都是2,阶码E采用定点整数的形式,尾数F采用定点小数的形式,E和F决定浮点数的表示精度,E和R决定浮点数的表示范围。
在机器中,一般按照下列形式构成浮点数。
在这种表示法中,阶码一般是原码、补码或移码,尾数一般是原码或补码。
浮点数表示有一定范围,超出后就会溢出。
设浮点数阶码和尾数均用补码表示,阶码为m+1位(其中1位是符号位),尾数为n+1位(其中1位是符号位),则浮点数的典型范围值如表1-2所示。
表1-2 浮点数的典型范围值
为便于软件移植,浮点数表示格式应该有统一标准。
1985年IEEE提出了IEEE754标准,该标准规定基数R为2,阶码E用移码表示,尾数F用原码表示。
该标准规定了三种不同浮点数的表示规则,如表1-3所示。
表1-3 IEEE754规定的三种不同浮点数
3.二-十进制编码
十进制有10个不同的数符,4位二进制可组成16种不同的代码,从中选出10个代码来表示十进制的10个数符,会有很多种方案,这些方案统称为BCD码。
根据二进制代码中不同位置是否有确定的权值,BCD码分成有权码和无权码。
常用有权码包括8421码、2421码、5211码等,它们的权值从高到低分别为8、4、2、1(8421码),2、4、1、1(2421码),5、2、1、1(5211码)。
常用无权码包括余3码和格雷码,余3码是在8421码基础上把每个代码加3(0011)后得到的代码。
格雷码也称为循环码,这10个代码中任何相邻两个代码中只有1位二进制位的值不同,其余3位的值都必须相同。
上述几种码制与十进制数符的对应关系如表1-4所示。
表1-4 常见BCD码与十进制数符的对应关系
注意,对BCD码进行运算时,如果结果在10~15之间,那么结果须加修正。
如果相加之和有进位,那么也必须加6修正。
1.2.3 算术运算
1.定点加减运算
从原理上说,原码、反码、补码都能进行加减运算,但由于补码运算比较方便,所以大多数情况下都是采用补码进行加减运算。
补码加法公式如下。
[X+Y]补=[X]补+[Y]补
补码减法可以看作负数加法,这样可以使减法与加法使用同一个加法器,简化计算机设计,公式如下。
[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补
由[X]补求[-X]补的方法是:
[X]补的各位取反(包括符号位),末尾加1.补码运算时,符号位和码值一起参与运算,符号位相加后如果有进位,该进位应当被舍去。
例如,设二进制整数X=+1001,Y=+0101,求X+Y、X-Y的值。
[X]补=01001,[Y]补=00101,[-Y]补=11011,符号位参与运算,过程如下。
其中,虚线内的1是进位,需要舍去。
在计算机中,数的表示范围是有限的,若运算结果超出该范围,就称为溢出,此时计算机要停止运算,进行中断处理。
判断是否溢出,常用下述方法。
①单符号位判别法。
设[X]补=Xs.X1X2…Xn,[Y]补=Ys.Y1Y2…Yn,二者的和(差)为[S]补=Ss.S1S2…Sn.当Xs和Ys不相等时,结果不会溢出。
当Xs=Ys=0,Ss=1时,产生上溢。
当Xs=Ys=1,Ss=0时,产生下溢。
②进位位判别法。
设两数运算时,各位产生的进位为:
Cs.C1C2…Cn.其中,Cs为符号位产生的进位,C1为最高数值位产生的进位。
两个正数相加,当最高有效位产生进位(C1=1),而符号位不产生进位(Cs=0)时,发生上溢;两个负数相加,当最高有效位不产生进位(C1=0),而符号位产生进位(Cs=1)时,发生下溢。
③双符号为判别法。
将符号位扩充到两位:
S1和S2,用S1S2=00表示正数,S1S2=11表示负数。
运算结束后,S1S2有四种不同的取值,含义分别如下。
S1S2=00:
结果为正数,无溢出 S1S2=01:
结果正溢
S1S2=10:
结果负溢 S1S2=11:
结果为负数,无溢出
2.浮点加减运算
一个浮点数的表示形式通常不惟一,常采用浮点数规格化形式,即规定尾数的最高数位必须是一个有效数,即其尾数F的绝对值必须满足:
当基数R=