第三章
- 书名:
- 大学计算机信息技术教程
- 作者:
- 张福炎,孙志挥编著
- 本章字数:
- 289870
- 更新时间:
- 2023-09-25 12:48:58
10241280~21024-1
(约1.8×10308)网上银行使用的U盾中数字证书所含的公钥(有些使用2048位)
(2) 带符号整数
带符号的整数必须使用一个二进位作为其符号位,一般总是最高位(最左面的一位),“0”表示“+”(正数),“1”表示“-”(负数),其余各位则用来表示数值的大小。例如:
00101011=+43,10101011=-43
可见,8个二进位表示的带符号整数其取值范围是-127~+127(-27+1~+27-1),16个二进位表示的带符号整数其取值范围是-32767~+32767(-215+1~+215-1),n个二进位表示的带符号整数其取值范围是-2n-1+1 ~ +2n-1-1。
上面的表示法称为“原码”,它虽然与人们日常的习惯比较一致,但由于数值“0”有两种不同表示(“1000…00”与“0000…00”),且加法运算与减法运算的规则不统一,需要分别使用加法器和减法器来完成,增加了计算机运算器的复杂性。为此,数值为负的整数在计算机内不采用“原码”而都采用“补码”进行表示。
负数使用补码表示时,符号位也是“1”,但绝对值部分的表示却是对原码的每一位取反后
再在末位加“1”所得到的结果。例如:
(-43)原=10101011
绝对值部分每一位取反后为:11010100
末位加“1”得到:(-43)补=11010101
有趣的是,采用原码表示整数0时,有“1 000…00”与“0 000…00”两种表示形式。但在补码表示法中整数0唯一地表示为“0000…00”,而“1000…00”却被用来表示负整数-2n-1(n表示位数)。正因为如此,二进制补码可表示的数的个数比相同位数的原码多一个(见表12)。
表12三种整数表示方法和取值范围的比较
8位二进制代码无符号整数的值带符号整数的值(原码)带符号整数的值(补码)
00000000000
00000001111
……………………
01111111127127127
10000000128-0-128
10000001129-1-127
……………………
11111111255-127-1
注意,无论采用原码还是补码表示,正整数的编码都是相同的,只有负整数采用原码或补码才有区别。采用补码表示负数后,无符号整数和带符号整数的加法和减法运算就可以统一使用相同的加法器来完成,具体方法请参考有关计算机组成原理
方面的教材,这里不再介绍。
为了适应多种不同的应用需求,同一台计算机可处理的整数往往有多种类型。以当前主流的PC和智能手机产品为例,它们使用的CPU除了有几种不同长度的无符号整数之外,带符号整数也有三种不同的长度。表13是它们的格式、二进位长度及可表示的数值范围。
表13三种带符号整数
整数类型格式数值范围
16位整数16个二进位,补码表示-215~215-1(-32768~32767)
短整数32个二进位,补码表示-231~231-1(-2147483648~2147483647)
长整数64个二进位,补码表示-263~263-1(-9223372036854775808~
9223372036854775807)
(3) 浮点数
实数通常是既有整数部分又有小数部分的数,整数和纯小数只是实数的特例。例如56.721、-1894.0456,0.0034756,872等都是实数。由于实数的小数点位置不固定,实数在计算机中也称为“浮点数”。
浮点数由两部分组成,第1部分是“指数”(也称为“阶码”,它是一个整数,用于指出2的多少次幂),第2部分是“尾数”(这是一个小数),两者相乘即为该实数的值。
为了在不同计算机之间交换数据,1985年美国电气与电子工程师协会(IEEE)制订了有关浮点数表示的工业标准IEEE754,现已被绝大多数计算机所采用。IEEE754浮点数有32位(单精度浮点数)、64位(双精度浮点数)、80位(扩充精度浮点数)等几种不同的格式。
浮点数的优点是可表示的数值范围很大。在字长相同的情况下,浮点数比定点数(整数)可表示的数值范围要大得多。网上购物时,商品的单价、总价、运费、订单总价、实付款等都用浮点数表示。大量的科学、工程计算及财务处理等均使用浮点数运算完成,人工智能中的机器学习算法就需要进行大量的浮点运算。
实数用浮点数表示时大多数情况都是近似的,浮点数的四则运算也存在一定误差,运算结果与理论计算结果并不都完全一致。
研究如何有效使用计算机求数学问题近似解方法及理论的学科称为“数值计算”,其内容包括数值逼近、数值微分和数值积分、数值代数、最优化方法、常/偏微分方程数值解法、积分方程数值解法、计算几何、计算概率统计等,当今几乎所有工程及科学领域都离不开数值计算。
2. 文字符号的表示
日常使用的书面文字由一系列称为“字符”(character)的书写符号所构成。常用字符的集合叫作“字符集”。字符集中的每一个字符在计算机中各有一个代码(即字符的二进位表示),它们互相区别,构成了该字符集的代码表,简称码表。
西文字符集由拉丁字母、数字、标点符号及一些特殊符号所组成。目前计算机中使用得最广泛的西文字符集及其编码是ASCII字符集和ASCII码,即美国信息交换标准码。它已被国际标准化组织(ISO)批准为国际标准,在全世界通用。基本的ASCII字符集共有128个字符,包括96个可打印字符(常用的字母、数字、标点符号等)和32个控制字符,每个字符使用7个二进位进行编码(叫作标准ASCII码)(参见表14)。
表14ASCII字符集及其代码表
字符二进制
表示十六
进制字符二进制
表示十六
进制字符二进制
表示十六
进制字符二进制
表示十六
进制
32个
控
制
字
符
,
不
可
打
印
000000000空格010000020@100000040'110000060
000000101!010000121A100000141a110000161
000001002"010001022B100001042b110001062
000001103#010001123C100001143c110001163
000010004$010010024D100010044d110010064
000010105%010010125E100010145e110010165
000011006&010011026F100011046f110011066
000011107`010011127G100011147g110011167
000100008(010100028H100100048h110100068
000100109)010100129I100100149i110100169
00010100A*01010102AJ10010104Aj11010106A
00010110B+01010112BK10010114Bk11010116B
00011000C,01011002CL10011004Cl11011006C
00011010D-01011012DM10011014Dm11011016D
00011100E.01011102EN10011104En11011106E
00011110F/01011112FO10011114Fo11011116F
0010000100011000030P101000050p111000070
0010001111011000131Q101000151q111000171
0010010122011001032R101001052r111001072
0010011133011001133S101001153s111001173
0010100144011010034T101010054t111010074
0010101155011010135U101010155u111010175
0010110166011011036V101011056v111011076
0010111177011011137W101011157w111011177
0011000188011100038X101100058x111100078
0011001199011100139Y101100159y111100179
00110101A:01110103AZ10110105Az11110107A
00110111B;01110113B[10110115B{11110117B
00111001C<01111003C\10111005C|11111007C
00111011D=01111013D]10111015D}11111017D
00111101E>01111103E^10111105E~11111107E
00111111F?01111113F_10111115F删除11111117F
虽然标准ASCII码是7位的编码,但由于字节是计算机中最基本的存储和处理单位,故一般仍使用一个字节来存放一个ASCII码。此时,每个字节中多余出来的一位(最高位)在计算机内通常保持为“0”。
中文的基本组成单位是汉字。我国汉字的总数超过6万字,数量大,字形复杂,同音字多,异体字多,这给汉字在计算机内部的表示与处理带来一定困难。有关汉字和其他国家与地区文字符号的编码在本书第5章再作介绍。
3. 图像等其他信息的表示
图像在计算机中的表示要比字符更复杂一些。为了在计算机中表示一幅图像,首先必须把图像离散成为M列、N行,这个过程称为图像的取样,取样后的图像分解成为M×N个取样点,每个取样点称为图像的1个像素。彩色图像的像素通常由红、绿、蓝(R、G、B)三个基色(分量)组成,灰度图像和黑白图像的像素只有一个亮度分量。像素的每个分量均采用无符号整数来表示。
以黑白图像为例,像素只有“黑”与“白”2种。因此每个像素只需要用1个二进位即可表示。图14是黑白图像在计算机中如何表示的一个例子。有关灰度图像和彩色图像在计算机中的表示方法将在第5章再作详细介绍。
图14黑白图像在计算机中的表示
其他形式的信息如声音、视频、温度、压力、运动等都可以使用比特来表示。即使是指挥计算机工作的程序,也是使用比特表示的。总之,只有使用比特表示的信息计算机才能进行处理和存储。所以,计算机中所存储和处理的都是二进位信息。
需要强调的是,为了在不同计算机之间进行信息的交换,计算机中信息的表示格式不能自行其是,必须遵循一定的规范或标准。数值、文字、图像、声音、动画等在计算机中的表示方法均有国际标准,一些国家和地区还制订了自己的国家标准或地区标准,有些国际知名的大公司还有其自己的公司标准。
1.2.4比特的运算
各种类型的信息在计算机中都使用比特(二进位)表示,因此,信息的处理在计算机中都通过比特的运算来完成。
1. 基本逻辑运算
比特的取值只有“0”和“1”两种,这两个值不完全是数量上的概念,很多情况下它只是表示两种不同的状态。在计算机中,电位的高或低、脉冲的有或无经常用来表示“1”或“0”。在人们的逻辑思维中,
命题的真或假(对或错)也可以用“1”或“0”来表示。
为了对二进制信息进行各种处理(包括加、减、乘、除等),需要使用逻辑代数这个数
学工具。逻辑代数是英国数学家乔治·布尔(George Boole)在19世纪中叶提出的,也称为
布
尔代数。逻辑代数中最基本的逻辑运算有三种:逻辑加(也称“或”运算,用符号“OR”
“∨”或“+”表示)、逻辑乘(也称“与”运算,用符号“AND”“∧”或“·”表
示)以及取反(也称“非”运算,用符号“NOT”或“-”表示)运算。它们的运算规则如
下:
(逻辑加)
0
∨0
00
∨1
11
∨0
11
∨1
1
(逻辑乘)
0∧
0
00
∧1
01
∧0
01
∧1
1
取反运算最简单,“0”取反后是“1”,“1”取反后是“0”。
当两个多位的二进制信息进行逻辑运算时,它们按位独立进行,即每一位不受同一信息的其他位
影响。例如,两个4位的二进制信息0101和1100进行逻辑加和逻辑乘的结果分别为:
0101
∨1100
1101
0101∧1100
0100
而对0101、1100进行取反之后,其结果分别为1010和0011。
2. 逻辑运算的实现
最初,逻辑运算是使用开关电路来实现的。如图15所示,假设开关接通表示“1”,断开表示“0”,灯泡亮表示“1”,暗表示“0”,那么,把A、B两个开关串联在一起就实现了“与”运算,并联在一起就实现了“或”运算,如果开关A按(c)那样连接,就实现了“非”运算。
图15使用开关电路实现逻辑运算
但是,用机械开关或机电式开关(如继电器)实现逻辑运算时,它的操作速度太慢,而且工作也很不可靠。20世纪40年代出现了晶体管。晶体管在控制端G的控制下,可以工作在两种状态(图16):A与B导通状态或者A与B绝缘状态,效果相当于图15中开关的接通或断开。这样,晶体管就成了一个电子开关。由于没有任何机械动作,它以电子运动的速度进行工作,所以速度极快(开关速度可以高达每秒几十亿次)。这也是为什么计算机可以高速度进行信息处理的根本原因所在。
图16MOS晶体管是一种电子开关
用几个晶体管连接起来可以实现各种基本逻辑运算,这样的电路称为“门”电路。若干门电路可组合成运算器,高速完成各种算术逻辑运算。计算机中的CPU芯片就是由数以千万计的门电路组成的,有关介绍可参看阅读材料之1.2。
1.2.5小结
在计算机、手机和其他数码设备中为什么要采用数字技术呢?这与使用比特表示信息的诸多优点
紧密相关。
首先,比特只有0和1两个符号,使用有两个稳定状态的电路就可以表示和存储二进位信息,
而制造双稳态的电路要比制造有多个稳定状态的电路容易得多,并且很容易实现高速处理。
其次,二进位的运算规则很简单,通过一些基本的门电路就能把二进制数的算术运算与非数
值信息的逻辑运算联系在一起,实现统一的处理。
第三,使用二进位不仅能表示数值信息,而且能表示文字、符号、图像、声音等多种不同形
式的信息。由于均使用比特作为其基本单位,它们可以很方便地相互组合,形成文字
、图像、声音、数据等复合在一起的所谓“多媒体”。有关这方面的内容本书将在第5章中
进行介绍。
第四,信息使用比特表示以后,可以通过多种方法进行“数据压缩”,即使用更少的比
特来表示同样的文字、声音或视频信息,有效地降低信息传输和存储的成本。
第五,在传输或者存储信息时,由于信道的噪声或存储器的缺陷往往会引起信息出错。使用
比特表示信息之后,只要再附加一些额外的比特,就能够发现甚至纠正信息传输和存储过程
中所产生的错误,大大提高了信息系统的可靠性。
使用比特来表示信息还有其他一些优点,这里暂不一一细述。总之,使用以比特为核心的数
字技术来构造和开发各种信息设备和系统是信息技术发展的总趋势,也是信息技术发展的一种必
然。
复习题
(1) 什么是比特?比特是如何表示和存储的?
(2) 存储器容量有哪些常用的度量单位?内存(主存)容量和外存(辅存)容量的度量单位有何差别?
(3) 二进制数与十进制、八进制、十六进制数如何相互转换?
(4) 无符号整数的表示范围如何确定?它有哪些应用?
(5) 什么是ASCII字符集?ASCII字符是怎样表示和存储的?
(6) 比特的基本逻辑运算有哪几种?什么是“与”运算、“或”运算和“非”运算?
1.3微电子技术简介
1.3.1微电子技术与集成电路
微电子技术是信息技术领域中的关键技术,是发展电子信息产业和各项高技术的基础。微电
子技术的飞跃发展,为电子信息技术的广泛应用开辟了广阔的道路。
微电子技术是实现电子电路和电子设备微型化的技术,其核心是集成电路芯片(简称芯片)。早期的电子技术以真空电子管为基础元件[图17(a)],在这个阶段产生了广播、电视、无线电通信、电子仪表、自动控制和第1代电子计算机。19
48年晶体管[图17(b)]的发明,再加上印制电路组装技术的使用,使电子电路在小型
化方面前进了一大步。集成电路(IC)是20世纪50年代出现的,
它以半导体单晶片作为材料,经平面工艺加工制造,将大量晶体管、电阻、电容及连线构成的电子线路集成在基片上,构成一个微型化的电路或系统[图17(c)(d)]。现
代集成电路使用的半导体材料主要是硅,也可以是化合物半导体如砷化镓等。
图17电子管、晶体管与集成电路
集成电路根据它所包含的电子元件(如晶体管、电阻、电容等)数目可以分为小规模、中规模、大规模、超大规模和极大规模集成电路。集成度(单个集成电路所含电子元件的数目)小于100的集成电路称为小规模集成电路(SSI);中规模集成电路(MSI)的集成度在100~3000个电子元件之间;大规模集成电路(LSI)的集成度在3000~10万之间;超大规模集成电路(VLSI)集成度一般达10万~100万个电子元件;超过100万个电子元件的集成电路称为极大规模集成电路(ULSI)。通常并不严格区分VLSI和ULSI,而是统称为VLSI。中、小规模集成电路一般以简单的门电路或单级放大器为集成对象,大规模集成电路则以功能
部件、子系统为集成对象。现在计算机、手机、数码相机等电子设备中使用的微处理器、存储器、图形加速芯片等都是超大
规模和极大规模集成电路。
集成电路按照所用晶体管结构、电路和工艺的不同,主要分为双极型集成电路
、金属氧化物半导体(MOS)集成电路、双极金属氧化物半导体集成电路等几
类。按集成电路的功能来分,可分为数字集成电路(如门电路、存储器、微处理器、微控制器
、数字信号处理器等)和模拟集成电路(如传感器、信号放大器、功率放大器等)和数/模混合集成电路。按它们的用途可分为通用集成电路与专用集成电路(ASIC),微处理器和存储器芯片等都
属于通用集成电路,而专用集成电路是按照某种应用的特定要求专门设计、定制的集成电
路。
集成电路芯片是微电子技术的结晶,它是计算机、通信和几乎所有电子设备的硬件核心,是现代信息产业的基础,计算机、手机、电视机、银行卡、音响设备、家用电器无不以集成电路作为其核心,汽车、高铁、飞机、卫星的控制也都依赖于集成电路芯片制成的计算机及相关软件。集成电路产业的发展十分迅速,以集成电路为基础的电子信息产品的世界市场总额已经远远超过了1万亿美元,成为世界第一大产业。
我国集成电路产业近几年虽然加速发展,但对外依存度仍比较高,特别是CPU、存储器等高端集成电路。2019年集成电路进口量高达4400多亿块,进口额超 13000 亿美元,约为原油进口额的两倍。一些业内人士认为,目前我国集成电路是系统性、全方位落后于发达国家,整体提升和全面超越必须从基础研究和人才培养做起,还需要一定的时间。
1.3.2集成电路的设计制造
集成电路把成千上万甚至以亿计的晶体管等电子元件集成在指甲大小的晶片上,其制造工序从原料熔炼到最终产品测试封装大约需要2000~5000道工序,工艺复杂且技术难度非常高,有一系列的关键技术,需要大量高精度专用设备。许多工序必须在恒温、恒湿、超洁净的无尘厂房内完成。芯片生产、控制及测试的设备也异常昂贵,动辄成百上千万美元一台,目前大部分需要引进。有关集成电路的设计制造过程和我国芯片产业的发展情况可参看本章阅读材料1.3。
1.3.3集成电路的发展趋势
集成电路的特点是体积小、功耗低、速度快、可靠性高。集成电路的工作速度主要取决于组成逻辑门电路的晶体管的尺寸。晶体管尺寸越小,其工作频率越高,门电路的开关速度就越快。所以,从集成电路问世以来,人们就一直在缩小门电路的尺寸上下功夫。芯片上电路元件的线条越细,相同面积的晶片可容纳的晶体管就越多,功能就越强,速度也越快。随着纳米量级的微细加工技术的采用和硅抛光片面积的增大,集成电路芯片的集成度越来越高,所含晶体管数目已达数十亿之多。Intel公司的创始人之一摩尔(G.E.Moore)1965年在美国《电子学》杂志上曾发表论文预测,单块集成电路的集成度平均每18~24个月翻一番,这就是有名的Moore定律。以Intel公司生产的微处理器为例,近50年来它所生产的80x86、Pentium(奔腾)系列和Core(酷睿)系列微处理器,其集成度的提高证实了这个规律的正确性(图18)。
图18Intel公司微处理器集成度的发展
集成电路的技术发展很快(表15)。现在,世界上集成电路批量生产的先进技术已经达到12~14英寸晶圆、7nm××纳米,指芯片中电路连线的线宽尺寸,尺寸越小,集成度越高,制造难度也越大。(纳米,1nm=10-9m)和5nm线宽的工艺水平,并还在进一步提高。最复杂的处理器芯片所集成的晶体管数目已达数十亿,存储器芯片包含的晶体管数目已达上百亿,先进的CMOS集成技术已经可以实现数字电路、模拟电路、射频电路等的集成。线宽更小、集成度更高、性能更好的芯片还在不断推出。
表15集成电路技术的发展
年度199920012004200820102017
工艺(nm)18013090453214~10
晶体管(M)23.847.613553910008000
时钟频率(GHz)1.21.62.02.6553.85
面积(mm2)340340390468600901
连线层数6789910
晶圆直径(英寸)121214161616
1.3.4IC卡
IC卡是“集成电路卡”或“芯片卡”的简称,国外称为chip card或smart card。它把集成电路芯片密封在塑料卡基片内部,使其成为能存储、处理和传递数据的载体。与磁卡相比,它难以复制,不受磁
场影响,能可靠地存储和处理数据。
IC卡按卡中所镶嵌的集成电路芯片可分为两大类:① 存储器卡。这种卡封装的集成电路主要是存储器,其容量大约为几到几十KB,信息可长期保存,也可通过读卡器改写。这种IC卡除了存储电路外,还有写入保护和加密电路,具有一定的安全性,可用作校园卡、公交卡、医保卡、门禁卡等。② CPU卡,也叫智能卡。卡上集成了中央处理器(CPU)、程序和数据存储器,还内置了操作系统。这种卡的处理能力强,安全性更好,除上述应用外,它更适合银行、电信、公安等对安全性要求很高的部门应用。手机中使用的SIM卡就是一种CPU卡,它保存有手机用户的个人识别码、加密用的密钥以及用户的电话簿等信息,供手机在接入通信网络时进行身份认证,并可对用户通话时的语音信息进行加密,防止窃听。
IC卡按使用方式可分为两种(参见图19):① 接触式IC卡(如手机SIM卡),其表面有一个方型镀金接口,共有8个或6个镀金触点。使用时必须将IC卡插入读卡机卡口内,通过金属触点传输数据。这种IC卡多用于存储信息量大、读写操作比较复杂的场合。接触式IC卡易磨损、怕油污,寿命不长。② 非接触式IC卡,又叫射频卡、感应卡,它采用电磁感应方式无线传输数据,解决了无源(卡中无电源)和免接触等难题,操作方便、快捷。由于采用全密封胶固化,防水、防污,所以使用寿命很长。随着技术的进步和成本的降低,非接触式IC卡现已成为主流。当前还流行一种兼有接触式和非接触式两种刷卡方式的“双界面卡”,使用更为方便。有关非接触式IC卡工作原理及其在日常生活中的应用,可参看阅读材料之1.4。
图19接触式IC卡与非接触式IC卡
IC卡不但可以作为电子证件,用来记录持卡人的个人数据,作为身份识别之用(如身份证、游泳证、医疗卡、门禁卡等),也可以作为电子钱包(如电话卡、公交卡、校园卡、加油卡等)使用,具有广泛的应用。
我国使用的银行卡早先采用磁条卡,磁条中记录了用户账号等信息,一般仅作为识别卡使用。由于磁条卡的技术相对简单,信息容易读出和复制,保密性差,安全不易保证,伪卡欺诈事件屡有发生。所以,几年前就开始更换为IC卡。银行IC卡大多采用双界面CPU卡,不但安全性高,信息难以复制,而且还具备电子现金账户功能,支持离线(offline,也称为“线下”)小额支付,并可使用非接触方式读写,实现即刷即走的快捷支付(“闪付”功能)。
复习题
(1) 什么是集成电路(芯片)?什么是超/极大规模集成电路?PC和手机中使用哪些集成电路?
(2) 集成电路的发展趋势如何?我国目前水平如何?
(3) IC卡有哪些类型?你用的校园卡属何种类型?
自测题1
一、是非题
1. 信息处理指的是与信息的收集、传递、加工、存储和施用相关的行为和活动,信息技术则泛指用来扩展人们信息器官功能、协助人们更有效地进行信息处理的一类技术。
2. 集成电路把成千上万甚至以亿计的晶体管等电子元件制作在指甲大小的晶片上,其工艺水平目前已经达到纳米级水平。
3. 非接触式IC卡依靠卡片中的微型电池供电,操作使用非常方便。
二、选择题
1 假设两个8位的二进制信息A=10010011,B=11001100,下面是A、B进行逻辑运算的结果,其中错误的是()
(A) A∧B=10000000(B) A∨B=11011111
(C) A∧B∨A∧B=01011001(D) A∧B∨A∧B=10100000
2 数据通信中数据传输速率是最重要的性能指标之一,它指单位时间内传送的二进位数目,计量单位Gb/s的正确含义是()
(A) 每秒兆位(B) 每秒千兆位
(C) 每秒百兆位(D) 每秒百万位
3 下面关于比特的叙述中,错误的是()
(A) 比特是组成数字信息的最小单位
(B) 比特只有“0”和“1”两个符号
(C) 比特既可以表示数值和文字,也可以表示图像和声音
(D) 比特“1”大于比特“0”
4使用存储器存储二进位信息时,存储容量是一项很重要的性能指标。存储容量的单位
有多种,下面哪一种不是存储容量的单位?()
(A) XB(B) KB(C) GB(D) MB
5与十六进制数(BC)16等值的八进制数是()
(A) 273(B) 274(C) 314(D) 313
6 无符号整数是计算机中最常使用的一种数据类型,其长度(位数)决定了可以表示的正整数的范围。假设无符号整数的长度是12位,那么它可以表示的正整数的最大值(十进制)是()
(A) 2048(B) 4096(C) 2047(D) 4095
三、填空题
1 基本ASCII字符集中一共包含有128个字符,它在PC存储器中存储时,每个字符需要占用个二进位。
2 在计算机网络中传输二进位信息时,传输速率的度量单位是每秒多少比特。某校校园网的主干网传输速率是每秒10 000 000 000比特,它可以简写为Gb/s。
3 十进制数205.5的八进制表示是。
4 计算机中的一个16位无符号整数,如果它的十六进制表示是(FFF0)16,那么它的实际数值是(十进制表示)。
第1章阅读材料
1.1数据量、存储容量和通信流量
1. 数字信息的数据量
数字技术中比特是组成信息的最小单位,所有信息都使用比特表示。使用比特表示文字、符号、声音、图像的方法称为“编码”,后续章节将陆续进行介绍。下面对几种常用信息类型需要使用多少比特来表示(称为数据量)做些对比介绍,使大家对数字信息有一些感性的认识。
正文中说过,在计算机、手机等数字设备中,1个西文字母通常用8个比特(即1个字节)表示,1个汉字通常用16个比特(2个字节)表示。手机在国内发送1条中文短信收费0.1元,每条短信限140字节(即70个汉字,含标点符号在内),超过70个汉字时将自动分割成若干条发送(按条数收费),收件人手机收到后会自动进行组合。
在电脑上写作一篇千字左右的短文,其数据量大约是几KB;中国古典小说四大名著之一的《红楼梦》,120回本的总字数大约是73万字。电子版纯文本格式的红楼梦其数据量约为1.5MB。
使用数码相机或手机拍照时,数字相片的数据量与拍照时所选择的分辨率(即像素数目)及质量等级有关,与相片内容也有关系。通常,600万~800万像素分辨率的JPG格式相片,数据量在1~3MB之间,1200万~1600万像素的相片,数据量在3~5MB之间。
使用手机通话时用户发出的语音信息,1分钟的数据量(数据未压缩前)约为0.5MB,压缩后约为50~80KB。1分钟高保真双声道的立体声音乐的数据量(未压缩前)约为10MB,采用MP3标准可将数据量压缩5~10倍。因此,一首长度为3分钟的MP3格式的音乐,其数据量大约是3~6MB。
视频信息既有图像又有声音,数据量更大。即使经过数据压缩,1分钟的标准清晰度(每帧图像的分辨率为640×480或720×480)视频,数据量也在3~5MB左右,1集电视剧的数据量就达150~200MB。至于全高清或超高清视频,其数据量就更大。
2. 存储设备的容量
信息的存储需要使用存储设备。数码产品中用来存储比特的设备有多种,它们大多利用电、磁、光的特性研制而成。例如利用电能存储信息的半导体存储器,利用磁能存储信息的磁卡和硬盘存储器,利用光学原理存储信息的CD、DVD等光盘存储器,还可以利用纸或塑料等存储信息,如过去使用的穿孔卡片、穿孔纸带,现在常用的一维和二维条形码等。
上述各种数字存储设备的信息存取速度、存取方式、存储容量、断电后信息是否保存等性质有很大差异,因而其功能和用途也有所不同。下面仅就个人电脑和智能手机使用的几种存储器的存储器类型及其容量做对比介绍(表16)。
表16个人电脑和智能手机的存储器类型与容量
存储器类型设备存储器名称典型容量说明
主存储器主存储器(primary memory)又称为内存储器(内存)或RAM(随机存取存储器),手机中称为运行内存(working memory)。本书称为主存或者内存。
个人电脑DRAM存储器4~16GB
智能手机DRAM存储器4~12GB工作速度很快,容量不很大,价格较高,断电后信息不能保存,属易失性存储器
(续表)
存储器类型设备存储器名称典型容量说明
辅助存储器辅助存储器(secondary memory或storage)过去习惯称为外存储器(外存),现在手机厂商对其称呼不一,为避免混淆,本书把它与硬盘统一称为辅助存储器,简称“辅存”。
个人电脑硬盘/固态硬盘0.5~2TB
智能手机闪速存储器32~256GB工作速度快,容量大,单位价格便宜,断电后信息保持不变,属非易失性存储器
扩充存储器
个人电脑U盘,移动硬盘,光盘,SD卡等几十GB至几个TB工作速度稍慢,容量范围大,断电后信息保持不变,属于非易失性存储器
智能手机U盘,SD卡等几十~几百GB容量范围较大,断电后信息保持不变,属于非易失性存储器
日常生活中使用的校园卡、公交卡、银行卡等,其主要功能之一也是用来存储信息(身份信息、账号、金额等),它们的容量并不大,一般有几十KB就够了。商品包装上印刷的条形码(一维条码),信息容量仅几十个字节。二维条形码容量可以达到几KB,因而可以表示(存储)如网站地址之类比较复杂的信息。
3. 关于存储容量的单位
上面在介绍数字信息的数据量和存储器容量时,使用的单位有字节(B)、千字节(KB)、兆字节(MB)、吉字节(GB)等。正文中说过,这些度量单位中使用的前缀符号K、M、G、T等,在不同场合代表不同的数值。对于计算机和手机中的主存储器,其容量单位是1KB=210字节,1MB=220字节,1GB=230字节,1TB=240字节,等等。对于它们的辅助存储器(包括硬盘、光盘、U盘等),存储容量单位是:1KB=103字节,1MB=106字节,1GB=109字节,1TB=1012字节,等等。
为什么这样呢?因为主存储器是以字节为单位编址的,每个字节有一个自己的地址,CPU使用二进位表示的地址码来指出需要访问(读/写)的存储单元。地址码是一个无符号整数,n个二进位的地址码共有2n个不同组合,可以表示2n个不同的地址,也就可以用来指定主存中2n个不同的字节,所以主存的容量一般都以2的幂次来计算。
而辅助存储器不需要也不可能按字节进行存取,它是以块(block)为单位进行编址和存取的,块的大小一般是几百字节至几千字节。因此,存储容量=块的数目×块大小。为了计算方便,也为了使产品标称容量可以更大一些,辅助存储器生产厂商都以传统的10的幂次作为其容量的度量单位。
在电脑和智能手机中,辅助存储器和主存储器都由操作系统统一管理并分配使用,操作系统采用与主存一致的方式来计算辅存的大小,即也以2的幂次作为辅存容量的计量单位。这样一来,用户经常会发现一个奇怪的现象:辅助存储器的容量被“缩水”了。例如,明明硬盘标注的容量是160GB,操作系统显示的却是149.05GB,明明买的是8GB的U盘,系统显示出来却是7.46GB。手机也是如此。
原因很简单。因为操作系统在计算存储容量及文件大小时,其度量单位1G=230=1073741824,而辅助存储器生产厂商使用的是1G=109=1000000000,后者只是前者的0.931。因此,32GB和16GB的辅助存储器,操作系统认为分别只有29.79GB和14.89GB。这种相同符号在不同场合有不同含义的情况造成了诸多不便和混淆,提请大家注意。
4. 通信流量
通信流量指通信设备在通信过程中收到和发出的数据总量。日常生活中人们接触最多的是手机流量,它特指手机/平板电脑通过移动通信网络连接互联网时所收/发的数据总量。从手机/平板电脑送出的数据量称为上行流量,收到的数据量称为下行流量或下载流量。
流量的单位是字节,常用的是千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)等。我国电信运营商经常略去字母B而把它们简略为K、M、G、T。它们之间的关系是:1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B。
使用手机或电脑经互联网传输照片、歌曲、视频等所需要消耗的流量,要比这些照片、歌曲和视频的实际数据量大一些,这是因为数据通信本身需要一些额外的开销。例如通信双方需要呼叫、应答和同步,增加附加信息来检验收到的数据是否正确,发现传输出错后需要重新传输等,有关情况可参见第4章的介绍。
上网是需要付费的。目前的计费方式可以按流量计费,或按时长计费,也可以包月或者包一个时间段。手机如果在设置中开通“移动数据”,则意味着它通过2G/3G/4G移动通信网络连接互联网,则无论是中国电信、中国移动还是中国联通,均按照上网所消耗的流量来计算费用。如果只限某个时间段上网,费用还更优惠。
手机、平板电脑、电子书等移动设备一般都通过WiFi上网,此时用户不再关心使用了多少流量,似乎流量是免费的。其实,WiFi的功能是把无线通信转换成有线通信(参见第4章),后者利用电缆或者光缆接入互联网,它们大多按使用时间的长短计费,而不像移动通信哪样按流量计费。这是因为移动通信网络的建设和维护成本远高于有线宽带网络,以流量来计费可以更好地控制全网的负荷。毕竟如果大家都像有线宽带接入那样使用移动通信网的话,再先进的移动通信网络恐怕也难以承受。
不同应用所需要的流量是不同的。QQ聊天主要是传输文字信息,几十MB就够1个月每天聊上个把小时了。但如果是下载歌曲或图片,则一首歌或1张高清图片就会消耗几MB流量。下载1个应用程序(App)所需的流量有大有小,小的几十KB,大的可能需要几十MB。至于观看电视剧,所耗费的流量就要以GB来计算了。
为了节省流量,有些软件采取了一定措施。例如使用微信发送照片的时候,它先把照片的分辨率降低,使每张照片的数据量大为减少然后再进行发送;如果希望保持照片的分辨率(质量)不变,则可选择以“原图”方式进行发送。对于视频,为了节省流量和缩短传输时间,微信软件专门提供了一种“小视频”通信功能,它的分辨率比较低,数据量也大为减少。
1.2门电路及其应用
1. 基本门电路
计算机等数字电子设备中用于完成基本逻辑运算的电路称为“门”电路。逻辑代数中的“与”“或”“非”三种基本运算对应着三种逻辑电路,它们分别称为“与”门、“或”门和“非”门。任何复杂的逻辑运算都可以由这些基本门电路的组合来实现。图110是几种常用的基本门电路及其符号表示,其中:
与非门实现的运算是:F=A·B
或非门实现的运算是:F=A+B
异或门实现的运算是:F=A·B+A·B
图110常用门电路及其符号表示
2. 门电路的应用
虽然每个门电路的功能都很简单,但组合起来却可以完成非常复杂的功能。例如
使用不多几个门电路就能分别实现两个1位二进制数的半加器(不考虑低位的进位)或全加器(考虑低位的进位)(图111)。
图111两个1位二进制数的半加器和全加器
如果要完成两个多位二进制数的加、减法,高位必须考虑低位的进位或借位的处理。以加法为例,两个4位二进制数的加法可以使用4个全加器完成,如图112所示。正文中说过,集成电路中晶体管的开关速度非常快,工作频率可达几个GHz,所以图中的加法器1秒钟可以进行几十亿次加法运算。
图112两个4位二进制数的加法器
使用门电路不仅可以完成逻辑运算和算术运算,而且还能构造双稳态电路(触发器),用来存储二进位信息。最简单的触发器是由两个或非门组成的,如图113所示。当输入端R=1、S=0时,触发器将置为0状态;当输入端R=0、S=1时,触发器将被置为1状态。如果R和S都保持为0,则触发器将维持原状态不变。
RSQQ说明
1001置0(使触发器的状态为0)
0110置1(使触发器的状态为1)
00不变不变保持原状态不变
11不定不定不正常状态,触发器状态不定(不使用)
图113触发器的构成及其原理
触发器在计算机中可用于临时存储信息,每个触发器存储一个二进位信息。若干触发器组合成一个寄存器,即可存储一组二进位信息(如一个整数、一个浮点数或一条指令等)。这样的寄存器CPU中有很多个。
至此可以看出,数字技术的基本特点是:任何信息都使用二进位表示,任何算术和逻辑运算都通过“与”“或”“非”操作完成,任何数字设备核心电路都由“门”电路组成。
1.3集成电路产业简介
集成电路芯片(以下简称芯片)是几乎所有电子、机电设备的“心脏”,被誉为“现代工业的粮食”。芯片产业既是现代经济社会发展的基础性和先导性产业,也是影响国家经济、政治、国防综合竞争力的战略性产业。
芯片产业有一个庞大的产业链,它主要分为设计、制造和封装三大环节。下面对芯片的设计和制造做简要介绍。
1. 芯片设计
芯片设计是产业链的前端,也是面向应用的重要环节。芯片由专业的集成电路设计公司进行设计,如美国的Intel美国的Intel公司、韩国的三星电子,它们集芯片设计、制造、封装、测试等多个产业链环节于一身,不是单纯的集成电路设计公司。、高通、英伟达,英国的ARM,韩国的三星电子①,我国的华为海思、台湾地区的联发科等,它们提供不同规格和效能的芯片给下游的电脑、手机厂商选择,并交由芯片制造厂代工生产。
芯片的设计有多个步骤:功能设计、模块划分、设计与验证、逻辑综合、门级功能验证、版图生成等。其中的每个步骤都有其专门知识,皆可独立成为专业课程,大部分工作都必须借助电子设计自动化(EDA)软件才能完成。
芯片中包含有数以千万计的晶体管和门电路,如此复杂的电路系统不可能一切从零开始设计。为提高效率,减少重复开发,芯片企业通常将合格的经过验证的IC设计文件存储在数据库中,供日后重复使用。这些IC设计文件简单的如寄存器、译码器、运算器,复杂的如CPU、GPU、存储控制器、总线与接口电路等。设计文件均属于知识产权(intellectual property, IP)保护的范围,通常称为“IP核”,必须购买后得到授权才能使用。
以英国ARM(Advanced RISC Machine)公司为例,它是一家1991年成立于英国剑桥专门从事处理器芯片设计的公司,它自己不生产芯片,只出售ARM处理器设计文件的知识产权(IP)。许多半导体公司都购买了ARM的IP,如高通、IBM,华为、富士通、英伟达、英特尔、三星电子等。目前全球大多数手机、数码相机等嵌入式数码设备使用的都是ARM处理器。
2. 芯片制造
集成电路是在硅衬底上制作而成的。硅衬底是将单晶硅锭经切割、研磨和抛光后制成的像镜面一样光滑的圆形薄片,它的厚度在1mm左右,其直径可以是6英寸、8英寸、12英寸甚至更大,这种硅片称为硅抛光片。硅抛光片经过严格清洗后即可用于集成电路的制造(图114)。
图114集成电路的制造过程
制造集成电路所用的工艺技术称为硅平面工艺,它包括氧化、光刻、掺杂和互连等多项工序。把这些工序反复交叉使用,最终在硅片上制成包含多层电路及电子元件(如晶体管、电阻、电容、电感等)的集成电路。视硅片大小和集成电路的复杂程度,每一硅抛光片上可制作出成百上千个独立的集成电路,这种整整齐齐排满了集成电路的硅片称作“晶圆”。
晶圆制成后,用检测仪对每一个独立的集成电路逐个进行检测,把不合格的集成电路用磁浆点上记号。然后将晶圆切开,分割成一个个单独的集成电路小片,通过电磁法把点了磁浆的废品剔除,将合格的集成电路按其电气特性进行分类。这些小片就称为晶片(die)。
接下来是将每个晶片固定在塑胶或陶瓷的基座上,并把晶片上蚀刻出来的引线与基座底部伸出的插脚进行连接,然后盖上盖板进行封焊,以保护晶片免受机械刮伤或环境污染,这样就制成了一块集成电路成品。成品经最终测试后,按照它们的性能参数分为不同等级,贴上规格、型号等标识的标签,包装后即可出厂,这就是我们通常所说的“集成电路芯片”(IC chip)或简称“芯片”(chip)。
目前,全球芯片制造以美、韩、我国台湾地区的企业为主,特别是高端芯片的制造集中在美国Intel公司、中国台湾台积电公司、韩国三星电子、韩国海力士(存储器芯片)、中国台湾联华电子(UMC)等少数企业。其中台积电公司(TSMC)是全球最大的芯片代工企业,批量生产的工艺水平已达5nm,国内华为海思设计的麒麟芯片、寒武纪公司的人工智能处理器都委托台积电代工生产。
3. 我国的芯片产业
我国芯片产业从20世纪60年代起步,经历了自主创业、引进提高、重点建设等阶段,其间有成绩也走过弯路。进入21世纪特别是2014年发布了《国家集成电路产业发展推进纲要》之后,芯片产业开始快速发展,目前已形成一定的产业规模,在集成电路设计、芯片制造、封装测试以及产业配套方面形成了较为完善的产业链格局,在芯片的基础研究、技术开发、人才培养等方面也有一定成绩。
在集成电路设计方面,华为海思半导体公司设计的芯片已经覆盖无线网络、固定网络、智能手机、数字媒体等领域,跻身全球十大芯片设计公司之一。公司的麒麟芯片系列应用于华为多种型号的智能手机中,可与美国高通的芯片分庭抗礼。在CPU芯片方面,龙芯中科公司已有近20年的开发经验,自主研发了龙芯1号、龙芯2号、龙芯3号三大系列的CPU产品,在国防、政府、教育、工业、物联网等行业取得了市场突破和良好的应用。
在芯片制造方面,国内最大的芯片代工企业中芯国际,经过近20年的技术积累和沉淀,已经构建完成相对完整的代工制造平台,包括14nm、28nm和40/45nm的生产线,以及非易失性存储器、模拟/电源管理、LCD驱动等产品线。台积电在南京江北新区投资了30亿美元,建成12英寸晶圆、16nm的先进逻辑工艺生产线,月产能达2万片晶圆。现在,南京江北新区已有集成电路设计企业100余家,国内十强大多在此设点。据测算,到2020年,江北新区集成电路产业产值将达千亿元,南京有望成为中国的“芯片之都”。
在应用领域,国产芯片对关键领域的支撑能力已显著增强。全球超级计算机2017年排名第1、2019年排名第3的“神威·太湖之光”全部采用国产的CPU芯片;基于SM(国家商用密码)算法的金融IC卡,其卡芯累计已生产数亿个;北斗三号卫星所用芯片已实现100%全国产;我国航天器和军用装备也已广泛使用国产的CPU、GPU、DSP、FGPA等各类芯片。
但是,我国芯片设计行业还缺乏关键IP核的设计能力,SoC设计严重依赖于第3方,设计工具(EDA软件)需要进口,芯片代工企业的IP供给不足,芯片制造业的工艺水平与Intel、台积电等还有两代的差距,因而我国芯片的主流产品目前仍集中在中低端,与国际巨头有较大差距。
随着国产整机品牌的壮大,数以百万计的方案商、供应链企业的存在,使得国内芯片企业比欧美同行有更大的市场需求和更多的发展机会。同时,海外芯片巨头的兼并整合、资源重新配置,也为国内芯片企业提供了很多机遇。更重要的是国家政策自上而下的重视、资本自下而上的助推,我国的芯片产业已经迎来新的发展机遇,有望早日实现产业的自主可控和可持续发展。
1.4常用IC卡介绍
1. 手机SIM卡
SIM卡(subscriber identity module)的中文名称是用户身份识别卡,可存储用户身份数据、短信和电话号码等,用于确认手机用户的身份。SIM卡由电信网络运营商发放(一卡一号),手机必须插入SIM卡才能通话和收发短信。SIM卡是接触式IC卡的一种,进入4G移动通信后,中国移动和中国联通使用的SIM卡升级为USIM卡,中国电信则称为UIM卡,其功能有了增强。习惯上人们仍统称为SIM卡。
SIM属于CPU卡,它由CPU、ROM、RAM、EEPROM(用作数据存储器)和接口电路等组成,通过6个或8个触点与手机电路连接。
SIM卡的EEPROM中存放着一组由芯片制造商和移动通信运营商预先写入的数据。包括SIM卡识别号ICCID、国际移动用户识别号IMSI(国家代号、移动网代号、用户的手机号)、分配给该用户的二进制128位的用户身份认证(鉴权)密钥Ki(在运营商的网络服务器中也保存1份)等,数据可保存10年以上。
3G、4G和5G手机在开机入网时,移动通信网必须确认手机用户身份是否合法,即必须对手机(SIM卡)进行鉴权(身份认证)操作,同样,手机也需要鉴别网站的真伪,其过程大体如下(图115):
图1153G、4G和5G手机(SIM卡)的开机鉴权过程
(1) 用户输入PIN码,手机将其传送给SIM卡,SIM卡核对无误后将用户识别号IMSI代码和手机号等信息传送给手机(通过设置,可省去输入和验证PIN码)。
(2) 手机通过移动通信网络将IMSI代码等信息发送给基站及其服务器。
(3) 服务器根据IMSI等信息查找数据库,找出该用户的密钥Ki,生成1个随机数RAND和1个鉴权令牌AUTN发送给手机。
(4) 手机接收RAND和AUTN后交给SIM卡,后者对AUTH进行验证,确定网络的真实性。
(5) SIM卡按约定的算法和密钥Ki对RAND进行计算,把计算结果RES返回给手机,由手机发送给服务器。
(6) 服务器使用密钥Ki对RAND按相同的算法进行计算,与手机返回的结果RES进行比较。
(7) 若结果相同则手机鉴权通过,手机获得通信授权。
接下去手机向移动网注册,然后手机进入待机(attach)状态,定时发起位置更新信息。保证网络能够寻呼到自己。
个人识别码PIN(personal identification number)和解锁码PUK(personal unblocking code)用于保护SIM卡/手机不被他人盗用。PIN码是SIM卡的密码,存储在SIM卡中,出厂值为1234(或0000),用户可自行修改。启用SIM卡密码保护后,每次开机后用户输入PIN码才能登录网络,若输错3次,SIM卡会自动上锁,此时只有通过输入PUK码才能解锁。PUK码共8位,它与SIM卡识别号ICCID都印刷在SIM卡原卡卡片上,也可以到营业厅请工作人员操作。PUK码有10次输入机会,输错10次后,SIM卡会自动启动自毁程序使SIM卡失效。
SIM卡的数据存储器容量为128KB、512KB甚至1MB。除了存储上述用于鉴权和芯片保护的数据之外,它还用来存储用户数据(大约几百个电话号码、几十条短信、几个最近拨出的电话号码等),这样一来,用户可以方便地在手机之间移动其账户、短消息和电话号码簿。
SIM卡的尺寸有几种,标准卡的尺寸为 25mm×15mm ,稍小些的Micro SIM卡是12mm×15mm,更小的Nano SIM卡比Micro SIM卡还小三分之一,厚度也减少了15%,现在已普遍使用。随着数字手表等可穿戴设备的流行,一种新的SIM卡——eSIM( embeddedSIM)出现了,它的体积更小,直接嵌入到电路板上,不但提高了可靠性,而且还支持通过OTA(空中写卡)对SIM卡进行远程配置,这在物联网的场景中很有效。
2. 校园卡、公交卡和银行卡
当前广泛使用的公交卡、校园卡、身份证等都是一种非接触式IC卡(射频卡),它的工作原理是:读卡器不断发出一组固定频率的电磁波,当射频卡靠近读卡机时,卡内的一个LC串联谐振电路(其谐振频率与读卡器发射的电磁波频率相同)便产生电磁共振,使电容器充电,为卡内其他电路提供例如2V左右的工作电压,电路便开始工作,通过辐射电磁信号将卡内存储的数据发送给读卡器或接收读卡器送来的数据。使用时,IC卡只需在读卡器有效距离(例如5cm左右)之内,不论IC卡的方向和位置正反,均可与读卡器交换数据,实现预先设计的功能(图116)。 在开始数据处理之前,非接触式IC卡与读卡机之间要相互认证对方的合法性,然后才进行加密的数据传送。
图116非接触式IC卡工作原理
大学校园内广泛使用的校园卡,它具有身份认证和电子钱包的功能,集学生证、借书证、医疗卡、用餐卡、校内购物卡、实验室门禁卡等功能于一身,给广大师生提供了很大方便。
以某高校使用的校园卡为例,它采用的是国产非接触式存储卡,存储容量为4KB,分成32小区(每区64字节)和8个大区(每区256字节),每个区相互独立,分别用作不同的用途以实现一卡多用。每个区各有2组密码,芯片中的加密控制逻辑电路与读卡机之间可进行加密通信和双向三重验证,确保信息安全。校园卡存储器可以擦写几万次,数据读写时间为1~2ms,与读卡器的有效距离在2.5~10cm之间,数据通信速率106kb/s,数据保存时间可长达10年。
校园卡必须在校园网和一卡通管理系统的基础上,实现与校内各部门信息系统的无缝对接,才能有效发挥其最大的作用。
上面列举的校园卡是一种逻辑加密卡,该类型的IC卡在2008年被发现存在有安全漏洞,不法分子可通过监听数据包攻击破解IC卡,对IC卡进行篡改或复制,引起管理混乱和经济损失。近些年此类校园卡和公交卡已逐步升级为安全性更高的CPU卡。
银行IC卡(包括借记卡、信用卡等)大多使用安全性更高的双界面CPU卡。以某银行使用的银行IC卡为例(图117),32位的CPU(ARM公司SC100)是整个芯片的核心;256KB的只读存储器(ROM)用于存放芯片操作系统(COS),10KB的内存(RAM)在执行程序时用于存放数据;存储保护电路可以对存储器的不同区域分别进行存取保护;144KB的EEPROM是存放应用程序和数据的辅助存储器(擦写次数大于10万次,数据保存10年以上);该芯片具有强大的数据安全功能,集成了我国商用密码算法SSF33、SM1、SM3、SM7和美国数据加密标准DES/3DES、RSA(2048位)的硬件协处理器,具有防复制、防伪造、防数据篡改等安全功能,可实现高度安全的借记/贷记和小额支付等金融交易。
图117银行IC卡芯片的逻辑结构
3. 二代身份证
我国第二代居民身份证是采用非接触式IC卡制成的。身份证上所载信息包括姓名、性别、民族、出生日期、常住户口所在地住址、居民身份证号码、本人相片、签发机关和有效期限共9项内容。此外,内部还嵌入了一枚指甲盖大小的非接触式集成电路芯片,从而可以实现“电子防伪”和“数字管理”两大功能。
第二代身份证在“防伪”方面有多种措施。除证件表面采用防伪膜和印刷防伪技术之外,还将个人数据和相片图像经过编码、加密后存储在芯片中,需要时可通过专门的读卡器读取卡内存储的信息进行验证。这样,不但防伪性能大大提高,而且验证也更加方便快捷。甚至还可以将人体生物特征如指纹、血型等信息保存在芯片中,进一步改善防伪性能。
二代证的伪造几乎是不可能的。制作一张身份证首先要有芯片,而这种芯片是由公安部监制的专用芯片,如果要从芯片开始仿制,其代价非常巨大。
二代证更大的应用价值还在于居民身份信息的数字化和网络化。证件信息的存储和查询采用了数据库和网络技术,既可实现全国联网快速查询和识别,也可进行公安机关与政府其他行政管理部门的网络互查,实现信息共享,使二代证在公共安全、社会管理、电子政务、电子商务等方面发挥重要作用。
二代证使用的集成电路芯片由4部分组成,分别是射频天线、存储模块、加密模块和控制模块。存储模块能够储存多达几兆字节的信息,写入的信息可分区存储,按不同安全等级授权读写。居民在户口迁移以后,可将新的住址和相关信息通过写卡器重新写入芯片而不需要换领新证。加密模块是芯片的关键,它采用了国家商用密码管理办公室规定的多种加密技术。控制模块是整个芯片的“大脑”,程序都存储在其中,包括通信协议、读写协议等。它具有运算和控制功能,各种操作都由控制模块执行相应程序完成。
目前存在的一个问题是身份证挂失后无法像手机卡、银行卡那样注销使之失效,他人盗窃或捡到后在不需要联网核查时还能使用。一些不法分子利用这个漏洞借机牟利或掩护其违法行为,对身份证失主乃至社会造成了损害。
4. 电子标签
RFID(radio frequency identification)的中文名称是“电子标签”,它的原理与非接触式IC卡相似,标签中包含了耦合元件(线圈)及芯片。电子标签黏贴在物体表面用以标识该目标对象,每个标签具有唯一的电子编码,使用阅读器可以读取(有时还可写入)标签中的信息。RFID阅读器可以是手持式也可以是固定式,一些具有近场通信(NFC)功能的手机也可以读出RFID中的信息。
当RFID标签进入阅读器天线的磁场区域后,它接收天线发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(这种标签称为无源标签),也可以由电子标签主动发送某一频率的信号(称为有源标签),由阅读器读取信息,然后送计算机进行处理。整个识别工作无须人工干预,在恶劣环境中也能工作。而且,阅读器还可以识别高速运动的物体,并可同时识别多个标签,操作快捷方便。图118是高速公路不停车收费系统ETC(electronic toll collection)的示意图,它通过安装在车辆挡风玻璃上的电子标签与收费站天线之间的数据通信,借助互联网访问车主的银行账户,达到车辆不必停车而能自动交费的目的。
图118RFID在车辆自动收费系统中的应用
RFID技术的应用领域很多。例如物流和供应管理、生产制造与装配、航空行李处理、邮件/快运包裹处理、文档追踪与图书馆管理、动物身份标识、门禁控制与电子门票、道路自动收费等。
第2章计算机组成原理
第2章计算机组成原理数字电子计算机是20世纪人类最伟大的发明创造之一。经历了大半个世纪的发展,计算机
已经成为最重要的一种信息处理工具,它不仅承担着信息加工、信息存储的任务,而
且信息的传递、感测、识别、控制和显示等也都离不开计算机。本章主要介绍计算机硬件的组成及其工作原理。
2.1计算机的组成与分类
2.1.1计算机的发展与作用
1. 计算机的发展
从20世纪40年代数字电子计算机诞生以来,计算机已经走过了大半个世纪的发展历程。在微电子
技术的进展和各种应用需求的强力推动下,其发展速度之快,大大超出人们的预期。
计算机硬件的发展受到所使用电子元器件的极大影响,过去很长时间,人们都按照计算机主机所使用的元器件为计算机产品划代。表21是第1至4代计算机主要特点的对比。
在20世纪50年代至70年代,计算机的应用模式主要是依赖于少数大型计算机的“集中计算模式”,80年代由于个人计算机的广泛使用而演变为“分散计算模式”,90年代起由于互联网的发展,使计算机的应用进入了“网络计算模式”。在这种模式下,用户不仅使用自己的计算机进行信息处理,而且还与网络中的其他计算机协同进行信息处理。现在,几乎人人都使用计算机,人人都上网,人们已经到了离开计算机和互联网就寸步难行的地步。
表21第1至4代计算机的对比
代别年代使用的主要元器件使用的软件类型主要应用领域
第1代20世纪40年代中期至50年代末期CPU:电子管
内存:磁鼓使用机器语言和汇编语言编写程序科学和工程计算
第2代20世纪50年代中、后期至60年代中期CPU:晶体管
内存:磁芯使用FORTRAN、COBOL等高级程序设计语言编程开始广泛应用于数据处理领域
(续表)
代别年代使用的主要元器件使用的软件类型主要应用领域
第3代20世纪60年代中期至70年代初期CPU:中、小规模集成电路(SSI,MSI)
内存:SSI,MSI的半导体存储器操作系统、数据库管理系统等普遍使用在科学计算、事务处理与分析、工业控制等领域得到广泛应用
第4代20世纪70年代中期以来CPU:大、超大规模集成电路(LSI、VLSI)
内存:LSI、VLSI的半导体存储器软件开发工具和平台、分布式计算软件等开始广泛使用计算机应用深入到各行各业,家庭和个人普遍使用计算机
自20世纪90年代开始,计算机的发展进一步加快,学术界和工业界早就不再沿用“第x
代计算机”的说法。人们正在研究开发的计算机系统,主要着力于计算机应用的智能化,它以知
识处理为核心,模拟或部分替代人的智力活动为目标,在芯片技术、大数据和人工智能的推动下,这个目标有望逐步实现。
2. 计算机的作用和影响
计算机得以飞速发展的根本原因,除了微电子技术等使计算机性价比不断提高之外,还归功于计算机作为信息处理工具的通用性以及由此带来的计算机应用的广泛性。
计算机是一种通用的信息处理工具。使用计算机进行信息处理具有如下一些特点:① 速度极快。② 通用性强,不仅能进行复杂的数学运算,而且能对文字、图像和声音等多种形式的信息进行获取、加工、转换、存储、展现等处理。③ 存储容量大、存取速度高。④ 具有互连、互通和互操作的特性,通过网络计算机不仅能交流与共享信息,还可与网络上的其他计算机协同完成复杂的信息处理任务。⑤ 体积小、功耗低、方便携带,甚至可以穿戴,计算机很容易嵌入在其他机电设备中,使之数字化、智能化,促进产品升级换代。
目前,计算机正以非凡的渗透力与亲和力深入人类活动的各个领域,对人类社会的进步与发展产生巨大的影响。
计算机应用于科学研究,大大增强了人类认识自然及开发、改造和利用自然的能力,促进了现代科学技术的发展。
计算机应用于工农业生产,显著提高了人类物质生产水平和社会劳动生产率,促进了经济的飞跃发展。
计算机应用于社会服务,全面扩展和改善了服务范围与质量,提高了工作效率,推动了社会进步。
计算机应用于教育文化,为人类传承并创造知识与文化提供了现代化工具,改变了人们创造和传播文化的方式和方法,大大扩展了人类文化活动的领域,丰富了文化的内容,提高了文化质量。
计算机进入办公室和家庭,已经并还将改变人们的工作和生活方式。
计算机科学技术对于一个国家发展政治、经济、科技、教育、文化、国防等方面的催化作用和强化作用,具有难以估量的意义。
虽然计算机和网络正在迅速地、不可逆转地改变着世界,但是,先进信息技术给我们带来进步和机遇的同时,也会带来一些新的社会问题和引发某些潜在的危机。例如,个人隐私受到威胁,网络欺诈和计算机犯罪增加,知识产权保护更加困难,计算机系统崩溃将带来不可预测的后果,不良和有害信息肆意传播和泛滥,大量电子垃圾污染环境、破坏生态,长期沉迷于计算机游戏和网络聊天会给青少年生理和心理带来严重危害等等,政府、学校和社会组织对此必须予以足够重视,并采取相应的对策。
2.1.2计算机的逻辑组成
数字计算机经过70多年的发展,功能不断增强,应用不断扩展,结构也变得越来越复杂。但无论是通用的台式机、服务器,还是智能手机和数码相机中使用的计算机,甚至是银行IC卡和身份证中的计算机,它们的基本组成和工作原理都是大体相同的。
计算机系统由硬件和软件两部分组成。计算机硬件是计算机系统中所有实际物理装置的总称
。例如,处理器芯片、存储器芯片、底板、机箱、键盘、
鼠标器、显示器、打印机、硬盘等,它们都是计算机的硬件。计算机软件是指在计算机
中运行的各种程序及其处理的数据和相关的文档。程序用来指挥计算机硬件自动进行规定的操作,数据则是程序所处理的对象,文档是软件设计报告、操作使用说明等,它们都是软件不可缺少的组成部分。
从逻辑上(功能上)来讲,计算机硬件主要包括中央处理器(CPU)、主存储器、辅助存储器、输入设备和输出设备等,它们通过总线互相连接。图21是计算机硬件逻辑组成的示意
图。习惯上人们把CPU和主存储器作为计算机的主体部分,把输入/输出设备和辅助存储器等称为计算机的“外围设备”,简称“外设”。
图21计算机硬件的逻辑组成所谓逻辑组成或逻辑结构,是指功能(或概念)上的结构,而非实际的物理结构。
1. 输入设备
“输入”(input)是把信息送入计算机的过程。作为名词使用时,指的是向计算机输入的
内容。输入可以由人、外部环境或其他计算机来完成。用来向计算机输入信息的设备通称为
“输入设备”。输入设备有多种,例如键盘、鼠标器、触摸屏、麦克风、传感器以及条码、磁卡、IC卡的扫描器或读卡器等。不论信息的原始形态如何,输入到计算机中的信息都使用二进位来表示。
2. 中央处理器
负责对输入信息进行各种处理(例如计算、转换、分类、识别、检索等)的部件称为“处理器”。
处理器能高速执行指令完成二进制数据的算术、逻辑运算和数据传送操作,它的结构很复杂。超大规模集成电路的出现,使得处理器的所有组成部分都可以制作在一块面积仅为几个平方厘米的半导体芯片上。因为体积很小,所以也把它称为“微处理器”(microprocessor)。
一台计算机中往往有多个处理器,它们各有其不同的任务,有的用于显示,有的用于通信。其中承担系统软件和应用软件运行任务的处理器称为“中央处理器”(CPU),它是任何一台计算机必不可少的核心组成部件。其他处理器的任务是协助CPU工作,统称为“协处理器”。
CPU的任务很繁重,为了提高处理速度,一台计算机可以包含几个或者几十个甚至几
百个、几千个CPU。这种使用多个CPU实现高速处理的技术称为“并行处理”。现在,个人计算机(PC)、平板电脑、智能手机等都普遍采用集成有2个、4个甚至更多CPU在同一芯片内的所谓“多核”CPU芯片,性能得到了显著提高。
3. 主存储器和辅助存储器
计算机能够把程序和数据(包括原始数据、中间运算结果与最终结果等) 储存起来,具有这种功能的部件就是“存储器”。
计算机中的存储器分为主存储器(也称为工作存储器,手机中称为运行内存,简称主存,英语为memory)和辅助存储器(简称辅存,英语为storage) 两大类。主存的存取速度快而容量相对较小(因成本较高),大多是易失性存储器;辅存存取速度稍慢而容量相对很大,它们都是非易失性存储器。
主存储器与CPU高速连接,按字节编址(每个字节均有地址,CPU可直接访问任一字节),它用来存放已经启动运行的程序代码和需要处理的数据。CPU工作时,它所执行的指令及处理的数据都是从主存中取出的,产生的结果一般也存放在主存中。所以,主存储器也称为计算机的工作存储器。
辅助存储器能长期存放计算机系统中几乎所有的信息,即使断电信息也不会丢失。辅存的容量很大但存取速度相对较慢,它按数据块进行编址(不能也不需要按字节编址),计算机执行程序时,辅存中的程序代码及相关的数据必须预先传送到主存,然后才能被CPU运行和处理。
早期计算机中的主存储器(磁芯存储器、MOS存储器)总是与CPU紧靠一起安装在主机柜内,而辅助存储器(磁盘机、磁带机等)大多独立于主机柜之外,因此主存储器俗称为“内存”,辅助存储器俗称为“外存”,并一直沿用至今。
PC个人电脑问世后,辅助存储器与主存储器均在同一机箱中,已无内外之分,不过由于辅助存储器仍使用传统的硬盘,所以将之称为外存尚不致引起混淆。但智能手机出现后,其辅助存储器使用的是半导体集成电路芯片制成的“闪存”(而非机械硬盘),再将其称为“外存储器”已经欠妥,于是不同厂商各自使用了不同的名称,给用户带来了混淆。
除非另有说明,本书对主存、内存和RAM按目前习惯不做严格区分。但传统的外存储器(外存)一词下面将不再使用,一律改用辅助存储器(辅存),或直接使用硬盘、闪存、U盘、光盘等名称。
4. 输出设备
“输出”(output)表示把信息送出计算机,作为名词使用时,指的是计算机所产生的处理结果。计算机的输出可以是文本、语音、音乐、图像、动画等多种形式。
负责完成输出任务的是输出设备,多数输出设备的功能是把计算机中用“0”和“1”表示的信息转换成为人可直接识别和感知的信息形式。例如在PC和手机中,显示器(显示屏)是输出文字和图形的设备,扬声器是输出语音和音乐的设备。
输入设备和输出设备通称I/O(input/output)设备,这些设备是计算机与外界(人、环境或其他设备)联系和沟通的桥梁,用户或外部环境通过I/O设备与计算机系统互相通信。
5. 总线与I/O接口
总线(bus)是用于在CPU、主存、辅存和各种输入/输出设备之间传输信息并协调它们工作的一种部件,由传输线和控制电路组成。有些计算机把用于连接CPU和主存的总线称为CPU总线(或前端总线、高速总线),把连接主存和I/O设备(包括辅存)的总线称为I/O总线。为了方便地更换与扩充I/O设备,计算机系统中的I/O设备一般都通过标准的I/O接口(如USB接口)与控制器连接,然后再与I/O总线相连。总线和I/O接口的数据传输速率很重要,对计算机整体性能有较大影响。
2.1.3计算机的分类
计算机的分类有多种方法。一种是按其内部逻辑结构进行分类,如16位机、32位机或64位计算机等。另一种是按计算机的性能和用途进行分类,目前大多把计算机分成下面的五大类。
1. 巨型计算机
巨型计算机(supercomputer)也称超级计算机,它采用大规模并行处理的体系结构,包含有数以千万计的CPU。它有极强的运算处理能力,浮点运算速度达到每秒千万亿次(或亿亿次),比当前个人电脑的处理速度高出了3个数量级,大多使用在国防、科研、气象预报、石油勘探、航空航天、生物医药等领域。我国研制成功的“神威·太湖之光”巨型计算机,其峰值计算速度达每秒12.54亿亿次,持续计算速度为每秒9.3亿亿次,它包含40960个自主开发的SW26010处理器(每个处理器芯片有260个CPU核),内存总容量达1310TB。2016~2017两年内连续4次在全球巨型机500强排行榜中名列首位[图22 (a)]。
图22巨型计算机和大型计算机
2. 大型计算机
大型计算机(mainframe)指运算速度快、存储容量大、通信联网功能强、可靠性很高、安全性好、有丰富的系统软件和应用软件的计算机。它采用虚拟化技术同时运行多个操作系统,因此不像是一台计算机,更像是多台不同的(虚拟)计算机,因而可以替代数以百计的普通服务器,用于为企业或政府的海量数据提供集中的存储、管理和处理,承担主服务器(企业级服务器)的功能,可以几年甚至一二十年不间断运行,在信息系统中起着核心作用。它同时为大量终端设备执行信息处理任务,即使同时有成千上万个终端提出处理请求,其响应速度快得能让每个终端用户感觉好像只有他一个人在使用计算机一样。美国IBM公司目前拥有大型机的大部分市场,图22(b)是该公司推出的System z10 BC大型计算机的照片。
3. 服务器
服务器(server)原本只是一个逻辑上的概念,指的是网络中专门为其他计算机提供资源和服务的那些计算机,巨、大、中、小、微各种计算机原理上都可以作为服务器使用。但由于服务器往往需要具有较强的计算能力、高速的网络通信和良好的多任务处理功能,计算机生产厂商专门开发了用作服务器的一类计算机产品。与普通的PC相比,服务器需要连续工作在7×24小时(每周7天,每天24小时)的环境中,对可靠性、稳定性和安全性等要求更高。
根据不同的计算能力,服务器又分为工作组级服务器(家用服务器)、部门级服务器和企业级服务器。我国浪潮集团是国内最大的服务器制造商和服务器解决方案提供商。
4. 个人计算机
个人计算机也称个人电脑、PC,早期称为微型计算机,它们是20世纪80年代初由于单片微处理器的出现而开发成功的。个人计算机的特点是体积小巧,结构精简(主机与外设组合在一起),功能丰富,使用方便,通常由使用者自行操作使用,并由此而得名。
个人计算机分成台式机和便携机(笔记本电脑)两大类,前者在办公室或家庭中使用,后者体积小、重量轻,便于外出携带,性能接近台式机,但价格稍高。近几年开始流行一些更小更轻的超级便携式计算机,如平板电脑、智能手机等,它们摒弃了键盘,采用多点触摸屏进行操作,功能多样,有通用性,能无线上网,人们可以随身携带作为通信、工作和娱乐的工具(图23)。
需要注意,智能手机和平板电脑实质上也是个人计算机的一个品种,但它们的软硬件结构、配置和应用有许多特点,与PC并不兼容。所以人们在很多场合提及PC时,往往专指那些使用微软公司Windows操作系统和Intel(或AMD)公司CPU芯片的台式机和笔记本电脑,而把智能手机、平板电脑等排除在外。
图23个人计算机:平板电脑、智能手机智能手机具有个人电脑的几乎所有功能,它也是一种典型的嵌入式计算机。、笔记本与台式机
还要说明的是,平板电脑与智能手机除了尺寸大小不同,硬件、软件、应用等几无区别,本书此后的行文中如不特别指明,凡论及智能手机均包括平板电脑在内。
5. 嵌入式计算机
上面所介绍的几类计算机都属于通用计算机,它们具有多用途和可扩展性。还有另外一类计算机,它们并不以计算机产品的面貌出现,但计算机却起着核心和关键的作用。此类产品很多,如数控机床、电话交换机、数码相机、电视机、机顶盒、信用卡、U盘、银行卡、SIM卡等,这些产品中的计算机大多用途专一、专业性强,此类计算机通称为嵌入式计算机。
嵌入式计算机是内嵌在其他设备中的功能专用的计算机,它们安装在其他产品中,执行着特定的任务。由于用户并不直接与计算机接触,它们的存在往往不被人们所知晓。
嵌入式计算机最早应用于工业和军事领域,如机器人、数控机床、汽车、导弹、航天器等。随着微电子技术的发展,集成电路的集成度越来越高,芯片中不仅包含微处理器,而且把输入/输出控制与接口电路和存储器(部分)也都集成在芯片中,甚至把相关的模拟电路、数字/模拟混合电路和无线通信使用的射频电路等也都集成在单个芯片中,这样的超大规模集成电路差不多包含了整个计算机的硬件系统,因此人们称它为片上系统或系统级芯片(system on chip,SoC或SOC)。
片上系统(SoC)的大批量生产推进了嵌入式计算机的广泛应用。自20世纪90年代开始,嵌入式计算机促进了各种各样消费电子产品的快速发展和更新换代,例如手机、电视机、游戏机、照相机、音响、录放像机、微波炉、通信设备等。嵌入式计算机已成为计算机市场中最有活力增长最快的计算机品种之一。现在,世界上90%以上的计算机都以嵌入方式在各种设备里运行。以汽车为例,一辆汽车中有几十甚至上百个嵌入式计算机,它们的计算能力加起来可能比一台普通商用电脑的计算能力还强。
除了复杂程度不同,嵌入式计算机的逻辑结构和工作原理与通用计算机很相似。需要注意的是,许多嵌入式计算机都把软件固化在芯片中,所以它们的功能和用途一般不再轻易改变。另外,嵌入式计算机大多能满足实时信息处理、低功耗、适应恶劣工作环境等要求。它们一般不追求过高的性能,够用即可,所以市场上还有许多4位、8位、16位的嵌入式计算机在使用。这些都是嵌入式计算机与通用计算机不同的一些特点。表22是通用计算机(如台式电脑)与嵌入式计算机(如卡片相机)的简单对比。
表22通用计算机与嵌入式计算机的比较
CPU内存储器辅助存储器功耗接口软件
通用
计算机32位、64位,当前以64位为主几至几十GB以硬盘为主,容量达TB量级几十至几百瓦数量多,种类丰富操作系统庞大,应用软件丰富
嵌入式
计算机8位、16位、32位,部分使用64位几十KB、几MB,很少超过几个GB以闪存和EEPROM为主,容量范围大功耗小,仅几瓦一般很少,甚至没有操作系统精巧甚至没有,应用软件单一
复习题
(1) 计算机逻辑上由哪些部分组成?各部分的主要功能是什么?
(2) 使用计算机进行信息处理有哪些特点?计算机的作用体现在哪些方面?
(3) 从性能和用途来说,计算机分成哪些类型?分别适用于哪些部门和领域?
(4) 个人计算机的特点是什么?有哪些品种?它们的发展趋势如何?
(5) 什么是嵌入式计算机?你有几个嵌入式计算机,它们有哪些应用和特点?
(6) 目前流行的PC和智能手机,它们使用的CPU和存储器有什么差别?
2.2CPU的结构与原理
CPU是计算机必不可少的核心部件,它负责执行程序。下面2.2.1和2.2.2中所说的CPU指芯片中的CPU核(CPU core),C实际的CPU芯片中除1个或多个CPU核之外,还包含有高速缓存、存储控制器甚至图形处理器(GPU)等其他部件。CPU核和CPU芯片通常都以CPU相称,读者需根据上下文进行区分。
2.2.1CPU的作用与组成
迄今为止,我们所使用的计算机大多是按照匈牙利数学家冯·诺依曼(J.von Neumann)提出的“存储程序控制”原理进行工作的,即一个问题的解算步骤(程序)连同它所处理的数据都使用二进位表示,并预先存放在存储器中。程序运行时,CPU自动从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止(图24)。
图24程序在计算机中的执行过程
CPU的根本任务是执行指令,它按照指令的要求完成对数据的基本运算和处理。CPU的结构如图25所示,原理上它主要由三个部分组成。
(1) 寄存器组。它由十几个甚至几十个寄存器组成。寄存器的速度很快,它们用来临时存放参加运算的数据和运算得到的中间(或最后)结果。需要运算器处理的数据预先从内存传送到寄存器;运算结果不再需要继续参加运算时就从寄存器保存到内存。
图25CPU的组成及其与内存的关系
图26算术逻辑部件与寄存器组
(2) 运算器。用来对二进制数据进行加、减、乘、除或者与、或、非等各种基本的算术运算和逻辑运算,所以也称为算术逻辑部件(ALU)。通常,参加运算的数据来自寄存器,运算结果也送回寄存器保存。图26是D寄存器内容与F寄存器内容相加,并把和数写入B寄存器的示意图。为了加快运算速度,运算器中的ALU可能有多个,有的负责完成整数运算,有的负责完成实数(浮点数)运算,有的还能进行一些特殊的运算处理。
(3) 控制器。这是CPU的指挥中心。它有一个指令计数器,用来存放CPU正在执行的指令的地址,CPU按照该地址从内存读取所要执行的指令。多数情况下,指令是顺序执行的,所以CPU每执行一条指令后它就加1(因而也称为指令计数器或程序计数器)。控制器中还有一个指令寄存器,它用来保存当前正在执行的指令,通过译码器解释该指令的含义,控制运算器的操作,记录CPU的内部状态等。
为了提高CPU的处理速度,实际的处理器结构要比上面介绍的复杂许多。尽管如此,几十年来大、中、小、微计算机CPU的工作原理和基本结构并没有实质性的改变。
2.2.2指令与指令系统
如上所述,用计算机完成某个任务(如发微信)必须运行相应的程序(如微
信App)。在
操作码操作数地址
图27指令的格式
计算机内部,程序是由一连串指令组成的,指令是构成程序的基本单位。指令与数据一样也采用二进位表示,它用来规定计算机执行什么操作。多数情况下,指令由两个部分组成(图27):
(1) 操作码。指出计算机应执行何种操作的一个命令词,例如加、减、乘、除、逻辑加、逻辑乘、取数、存数、移位、跳转等,每一种操作分别使用不同的二进制代码表示,称为操作码。
(2) 操作数地址。给出该指令所操作(处理)的数据或者指出数据所在位置(在哪个寄存器或在内存的哪个单元)。操作数地址可能是1个、2个甚至3个,这需要由操作码决定。
尽管计算机可以运行非常复杂的程序,完成多种多样的功能,然而,任何复杂程序的运行总
是由CPU一条一条地执行指令来完成的。CPU执行每一条指令都还要分成若干步,每一步仅仅完成一个或几个非常简单的操作(称为微操作)。指令的执行过程大体如下:
(1) CPU的控制器从存储器读取一条指令并放入指令寄存器。
(2) 指令寄存器中的指令操作码经过译码,决定该指令应进行何种操作、操作数在哪里。
(3) 根据操作数的位置取出操作数。
(4) 运算器(ALU)按照操作码的要求,对操作数完成规定的运算,并根据运算结果修改或设置处
理器的一些状态标志。
(5) 把运算结果保存到指定的寄存器,需要时将结果从寄存器保存至内存单元。
(6) 修改指令计数器,决定下一条需要执行的指令的地址。
不同指令的功能不同,所处理的操作数类型、个数和来源也不一样,执行时的步骤和复
杂程度也有差别。特别是CPU需要通过总线去访问存储器时,指令执行过程就比较复杂一些。
每一种CPU都有它自己独特的一组指令。CPU所能执行的全部指令称为该CPU的指令系统(指令集)。现在,PC和智能手机CPU的指令系统中有数以百计的不同指令,它们分成许多类,例如在Core处理器中共有七大类指令,即数据传送类、算术运算类、逻辑运算类、移
位操作类、位(位串)操作类、控制转移类、输入/输出类。每一类指令(如数据传送类、算术运算类)又按照操作数的性质(如整数还是实数)、操作数长度(16位、32位、64位、128位等)等区分为若干不同的指令。
不同公司生产的CPU各有自己的指令系统,一般并不相同。例如,现在大部分PC都使用Intel公司的微处理器作为CPU,而许多智能手机使用的则是英国ARM公司设计的微处理器,它们的指令格式和具体指令有很大差别,再加上操作系统也不相同,因此PC上的程序代码不能直接在智能手机上运行,反之也是如此。但有些PC使用AMD公司的微处理器,它们与Intel处理器的指令系统基本一致,因此可以相互兼容。
20世纪70至80年代计算机发展史上最重大的事件之一,是出现了微处理器——将CPU的全部运算和控制电路集成在单个芯片中。现在无论是巨型机还是个人计算机,大型机还是嵌入式计算机,它们的CPU都采用微处理器,区别在于所使用微处理器的指令系统、微架构和性能不同而已。由于集成电路技术进步神速,微处理器自1971年问世以来,一直处于不断的发展与变化之中。有关微处理器的发展及应用情况,可参看阅读材料2.1。
2.2.3CPU的性能指标
计算机的性能在很大程度上是由CPU决定的。CPU的性能主要表现在程序执行速度的快慢,而程序执行的速度与CPU相关的因素有很多,例如:
●指令系统。指令的类型、格式、功能和数目会影响程序的执行速度。PC电脑使用的CPU其指令系统复杂,智能手机的CPU指令系统相对简单,后者更有利于提高速度和降低功耗。
●字长(位数)。字长指的是CPU中通用寄存器/定点运算器的宽度(即二进制整数运算的位数)。由于存储器地址是整数,整数运算由定点运算器完成,定点运算器的宽度也就决定了地址码位数的多少。而地址码的位数则决定了CPU可访问的最大内存空间,这是影响CPU性能的一个重要因素。中、低端应用(如洗衣机、微波炉、数码相机等)的嵌入式计算机大多是8位、16位或32位的CPU,中、高端智能手机和PC使用的CPU早些年大多是32位处理器,现在使用的都是64位CPU。
●主频(CPU时钟频率)。指CPU中电子线路(门电路)的工作频率,它决定着CPU芯片内部数据传输与基本操作的速度快慢。一般而言,执行1条指令需要1个或几个时钟周期,所以主频越高,执行一条指令需要的时间就越少,程序运行的速度就越快。20世纪80年代初PC机CPU的主频不超过10MHz,现在个人计算机和高端智能手机的CPU主频都在1~4GHz之间。CPU的速度不仅与主频有关,而且与每个时钟周期能完成几条指令有关,而这又与CPU的微架构密切相关。
●高速缓存(cache)的容量与结构。程序运行过程中高速缓存有利于减少CPU访问内存的次数。通常,cache容量越大、级数越多,其效用就越显著。
●逻辑结构(微架构)。CPU包含的定点运算器和浮点运算器数目、有无数字信号处理功能、有无指令预测功能、流水线结构和级数等都对程序运行的速度有影响,甚至对某些特定应用有很大的影响。
●CPU核的个数。为提高CPU芯片的性能,现在CPU芯片往往包含有2个、4个、6个甚至更多CPU核,每个核都是一个独立的CPU,有各自的1级和2级cache,共享3级cache和前端总线。在操作系统支持下,多个CPU核并行工作,核越多,CPU芯片整体性能越高。需要说明的是,由于算法和程序的原因,n个核的CPU性能绝不是单核CPU的n倍。
本章阅读材料2.2将介绍CPU常用术语和提高CPU性能所采取的一些措施。
多年来,度量CPU性能使用的指标有MIPS(百万条定点指令/秒)、MFLOPS(百万条浮点指令/秒)和TFLOPS(万亿条浮点指令/秒)。但应用程序执行速度不仅与CPU、内存有关,而且与硬盘、存储器、操作系统等也有密切关系,再加上实际应用又千变万化,因此除了巨型机、大型机之外,个人计算机一般并不使用上述指标来衡量其性能,而是面向应用进行综合性能测试后给出评分。
复习题
(1) CPU的作用是什么?原理上由哪三部分组成?与内存是什么关系?
(2) 什么是指令?什么是指令系统?指令与程序是什么关系?
(3) CPU是怎样执行一条指令的?分为哪些基本步骤?
(4) 计算机之间的兼容性是什么含义?苹果手机与华为手机兼容吗?为什么?
(5) 程序运行的速度与CPU哪些因素有关?你能大体理解CPU主要参数的含义吗?
2.3主板、内存和I/O
各种类型的计算机其硬件主要由CPU/SoC芯片、存储器、总线及I/O接口和相关的I/O设备所组成,本节对主板、内存和I/O控制进行介绍。
2.3.1主板、芯片组与BIOS
1. 主板
无论是台式机、笔记本电脑还是智能手机,CPU/SoC芯片、存储器芯片、总线和I/O控制器等电路都是安装在印制电路板上的,除了芯片和电子元件之外,电路板上还安装了多种用作I/O接口的插头插座,这种电路板就称为计算机的主板(或母板)。
以台式PC为例,主板上通常安装有CPU插座、芯片组、存储器插座、扩充卡插座、显卡插座、BIOS芯片、CMOS存储器、辅助芯片和若干用于连接外围设备的I/O接口(图28)。
图28台式PC主板示意图
CPU芯片和内存条分别通过主板上的CPU插座和内存条插座安装在主板上。PC常用外围设备通过扩充卡(例如声音卡、显示卡等)或I/O接口与主板相连,扩充卡借助卡上的印刷插头插在主板上的PCI或PCIE总线插座中。随着集成电路的发展和计算机设计技术的进步,许多扩充卡的功能已经部分或全部集成在芯片组和主板上(例如,串行口、并行口、声卡、网卡等控制电路),因而主板的结构越来越简化。
主板上还有两块特别有用的芯片:一块是闪速存储器(flash memory),其中存放的是基本输入/
输出系统(BIOS),它是PC启动时最先运行的软件,没有它机器就无法启动;另一块芯片是CMOS存储器,其中存放着与计算机系统相关的一些参数(称为“配置信息”),包括当前的日期和时间
、开机口令、已安装的光驱和硬盘的个数及类型、加载操作系统的顺序等。CMOS芯片是一种易失性存储器,它由主板上的纽扣电池供电,所以计算机关机后也不会丢失所存储的信息。
2. 芯片组
芯片组(chipset)是PC各组成部分相互连接和通信的枢纽,它既实现了PC总线控制的功能,又提供了各种I/O接口及相关的控制。没有芯片组,CPU就无法与内存、扩充卡、外设等互相连接。
芯片组安装在PC主板上,原先一共有两片集成电路:北桥芯片和南桥芯片。北桥芯片是存储控制中心,用于高速连接CPU、内存条、显卡,并与南桥芯片互连;南桥芯片是I/O控制中心,主要与PCI总线插槽、USB接口、硬盘接口、音频编解码器、BIOS和CMOS存储器等连接,CPU的时钟信号也由芯片组提供。随着集成电路技术的进步,北桥的大部分功能(如内存控制、显卡接口等)已经集成在CPU芯片中,其他功能则合并至南桥芯片,所以现在只需要1块芯片(称为单芯片的芯片组)即可完成系统所有硬件的连接。目前广泛使用的Core i7/i5/i3、赛扬、奔腾等CPU芯片都是如此,图29是芯片组与主板上各个部件互连的示意图,它有一定的代表性。
图29CPU、芯片组与主板其他部件的连接
从图29可以看出,CPU芯片使用高速通路直接连接内存储器和独立显卡,并通过DMI与单芯片的芯片组X99连接。DMI实质上就是2.3.3中要介绍的PCIE总线,它采用点对点的通信方式, DMI 2.0提供4条通路,每条通路的传输速率是2GB/s,总带宽可达8GB/s。X99芯片包含有PCIE、USB、SATA等的控制电路,借助扩充插座和I/O接口可以连接多种多样的外围设备,在系统中起着重要的交通枢纽的作用。
需要注意的是,有什么样功能和速度的CPU,就需要使用什么样的芯片组。芯片组是与CPU芯片及外围设备配套和同步发展的。
智能手机的主板上并没有芯片组,扩展功能有限,外设接口很少,必需的一些控制电路已经集成在SoC芯片中了。
3. BIOS
BIOS的中文名叫作基本输入/输出系统,它是存储在主板上闪速存储器中的一组程序。由于存放在闪存中,即使机器关机,它的内容也不会改变。每次机器加电时,CPU总是首先执行BIOS程序,它具有诊断计算机故障及加载操作系统并启动其运行的功能。
BIOS主要包含四个部分的程序:加电自检程序,系统盘主引导记录的装入程序,CMOS设置程序和基本外围设备的驱动程序。有关计算机操作系统的启动过程在第3章再介绍。
2.3.2内存储器
1. 存储器的层次结构
计算机和智能手机中有多种不同类型的存储器。通常,存取速度较快的存储器成本较高,速度较慢的存储器成本较低。为了使存储器的性能/价格比得到优化,计算机中各种存储器往往组成一个层状的塔式结构(图210),它们相互取长补短,协同工作。
(注:后备存储器的存取时间包括换带、换盘的机械操作时间在内)图210存储器的层次结构
2. DRAM、SRAM和ROM
内存储器由半导体集成电路构成,具有高速读写和按字节随机存取的特性,也称为随机存取存储器(RAM),断电时信息会丢失,属于易失性存储器。RAM目前多采用MOS型半导体集成电路芯片制成,根据其保存数据的机理又可分为DRAM和SRAM两种(图211):
图211半导体存储器的类型及其在计算机中的应用
(1) DRAM(动态随机存取存储器)。芯片的电路简单,集成度高,功耗小,成本较低,适合用作内存储器的主体部分(称为主存储器或主存,即手机中的运行内存)。但它的速度比CPU慢,为了匹配CPU速度,出现了多种不同结构的DRAM,以改善其性能。
(2) SRAM(静态随机存取存储器)。与DRAM相比,它的电路较复杂,集成度低,功耗较大,制造成本高,价格贵,但工作速度很快,与CPU速度相差不多,适合用作高速缓冲存储器cache(目前大多与CPU集成在同一芯片中)。
除了易失性的RAM存储器之外,半导体存储器的另外一类是非易失性存储器。其中EEPROM(电可擦可编程只读存储器)能按“位”擦写信息,但速度较慢、容量不大,由于价格便宜,在低端产品(如IC卡)中用得较多。另一种flash memory(快擦除存储器,或闪速存储器,简称闪存)是EEPROM的改进,它是一种新型的非易失性存储器,速度快、容量大,能像RAM一样写入信息。它的工作原理是:在低电压下,存储的信息可读但不可写,这时类似于ROM;而在较高的电压下,所存储的信息可以更改和删除,这时又类似于RAM。
flash存储器有两类:或非型(NOR flash)和与非型(NAND flash)。NOR flash以字节为单位进行随机存取,存储在其中的程序可以直接被CPU执行,可用作内存储器(例如存储BIOS程序的flash存储器);NAND flash以页(块)为单位进行存取,读出速度较慢,通常应将程序或数据先成批读入到RAM中再进行处理,但它在容量、使用寿命和成本方面有较大优势,大多作为存储卡、U盘或固态硬盘(SSD)等辅助存储器使用,智能手机中所谓“手机存储”“机身存储”之类的辅助存储器,都是NAND型闪速存储器。
3. 主存储器大多数情况下,人们并不严格区分主存、内存和RAM三个不同的名称,而是根据使用场合理解其含义。
服务器、PC、智能手机等的主存储器主要是由DRAM芯片组成的。它包含有大量的存储单元,每个存储单元可以存放1个
字节(8个二进位)。存储器的存储容量就是指它所包含的存储
单元的总和,单位是 MB(1MB=220字节)或GB(1GB=230字节)。每个存储单元都有一个地址,CPU按地址对存储器的内容进行访问(图212)。
图212主存储器的结构与工作原理
存储器的存取时间(access time)指的是从CPU给出存储器地址开始到存储器读出数据并送到CPU(或者是把CPU数据写入存储器)所需要的时间。主存储器存取时间的单位是纳秒(ns,1ns=10-9s)。
由于CPU的速度很高,而且越来越高,而DRAM芯片所组成的主存储器速度比CPU要慢一个数量级以上。从主存储器取数或存数时,CPU必须停下来等待,这显然难以发挥CPU的高速特性。解决这个矛盾通常采取如下三个措施:
(1) 采用cache(高速缓冲存储器)。cache是将SRAM存储电路直接制作在CPU芯片内的一种小容量高速存储器,其存取速度几乎与CPU一样快。计算机在启动执行程序时,预先将数据和指令从主存成批读出存入cache。当CPU需要读取数据或指令时,先检查cache中有没有,若有,就直接从cache中读取,而不用访问主存,这就大大提高了CPU的效率(参见阅读材料2.2)。
(2) 改进存储器芯片的结构和控制。DRAM存储电路的工作频率通常在100~200MHz之间,很难再大幅提高。考虑到CPU芯片中都内置有cache存储器,运行程序时,只有当CPU在cache中找不到相应的指令或数据才需要访问DRAM存储器。因而CPU对DRAM的访问大多以cache的一行(至少64个字节)为单位进行突发式读写,即连续地读(或写)以64为倍数的一连串相邻地址的字节。因此DRAM存储器的结构可采取多个存储阵列交叉并行工作,设置内部缓冲,进行多位预取等,使这种突发式读写操作能高速度地进行。现在服务器、PC和智能手机等广泛使用的DDR3/DDR4 SDRAM(第3代/第4代双倍速率同步DRAM)存储器就是基于上述原理开发出来的。
(3) 改进CPU与主存芯片的连接,加快CPU与主存之间的数据传输。例如Intel CPU芯片(Core i7/i5/i3、奔腾、赛扬等)中都集成了存储器控制电路,使CPU与主存储器直接连接,不再需要使用北桥芯片转接。此外,CPU芯片与存储器之间的数据传输方式为64位并行(64根数据线),有些还能支持双通道甚至四通道进行数据传输(参见图29),从而使CPU与主存储器之间的最高传输速率可达每秒几十个GB。
台式PC主存储器在物理结构上由若干内存条组成,内存条是把若干片DRAM芯片焊在一小条印制电路板上做成的部件。内存条必须插入主板上的内存条插座中才能使用。DDR3和DDR4均采用双列直插式(DIMM)内存条。PC主板上一般都配备有2个或4个DIMM插座。
智能手机等移动终端设备现在使用的主存储器也是由DDR SDRAM存储芯片构成的。为减少能耗,一般选用低功耗的存储芯片(LPDDR3/LPDDR4)。另外,由于受体积限制,存储芯片都直接焊装在主板上,用户不能更换也无法扩充其容量。
2.3.3I/O总线与I/O接口
1. I/O操作和I/O总线
I/O操作的任务是将输入设备输入的数据送入计算机内存,或者将数据从内存读出送到输出设备。I/O操作是CPU执行I/O指令启动I/O控制器完成的。I/O指令指出启动哪个设备,执行何种操作,数据传送到内存什么位置(或从内存什么位置读出数据送到I/O设备),传输多少数据,等等。从这个角度来说,辅助存储器与内存储器之间的数据传输也属于I/O操作,硬盘、U盘、光盘、通信网络等也可看作I/O设备。
在CPU指挥下,计算机的I/O设备可以同时工作,即多个I/O设备可分别同时与内存进行数据传输。计算机中用于在I/O设备与内存之间传输数据的部件(传输线路及其控制器)称为I/O总线(I/O bus)。
I/O总线的主要任务是高速传输数据,总线的带宽(bandwidth,即单位时间内可传输的最大数据量)是衡量I/O总线最重要的性能指标。PC使用的I/O总线经历了多次技术演变,从第1代的ISA总线、EISA总线发展为第2代的PCI总线、PCIX总线,再到现在广泛使用的第3代PCIExpress(简称PCIE或PCIe)总线,带宽越来越高,性能越来越好。
PCIE是PCI总线的改进,它以点对点的方式进行数据的串行传输。PCIE包括×1、×4、×8和×16等规格,分别表示有1、4、8或16个传输通路,每个通路的数据传输速率为1GB/s(3.0版本)或2GB/s(4.0版本),n个通路则可使带宽提高n倍。
台式PC电脑中,PCIE总线呈现为树状结构[图213(a)]。其主控制器是“树根”,它有若干分支,有的分支通过PCIE×16插座连接显卡及显示存储器,有的分支通过交换器(switch)连接主板上的若干PCIE×1(和/或PCIE×4)插座,有的分支通过桥接器连接主板上第2代总线PCI/PCIX插座,所有分支均连通树根(主控制器)再与CPU芯片及内存连接。
图213PCIE总线
PCIE最大的意义在于它的通用性,它把整个I/O统一起来了,增加了计算机的可移植性和模块化。以图29为例,PCIE主控制器集成在Core i7/i5/i3 CPU芯片中,它的1个分支连接PCIE×16插座(最多可以2个),用以插入显卡;交换器和桥接器则在芯片组X99中,交换器最多可连接8个PCIE×1插座,用以插入扩充卡。此外,X99中还使用适配电路使硬盘接口SATA(最多10个)和USB接口(最多14个)与PCIE相通。X99本身则借助DMI接口(实为4通路的PCIE)与CPU中的主控制器高速连接。
PCIE总线的传输性能很高,目前第3和第4版产品已广泛使用,PCIE×1即可满足主流声卡、网卡和多数辅助存储器对数据传输带宽的要求,而PCIE×16能提供高达16GB/s和32GB/s的带宽,可更好地满足高性能独立显卡对高数据传输速率的需求。
除了数据传输速率高的优点之外,由于是串行接口,PCIE插座的针脚数目也大为减少,这样就降低了PCIE插头/插座的体积和成本[图213(b)]。此外,PCIE也支持高级电源管理和热插拔。目前PCIE×1和PCIE×16已经成为台式PC电脑主板的标配。
2. I/O接口——USB
I/O设备大多是独立的物理实体,它们在需要时才与主机连接。用于连接I/O设备的连接器(connector)也称为插头/插座。主机上一般是插座,它通过数据线与I/O设备连接,也可以通过WiFi、蓝牙或红外线连接。计算机中用于连接I/O设备的连接器以及用于实现I/O通信规程的控制电路就称为I/O设备接口,简称I/O接口。
通用计算机可以连接许多不同种类的I/O设备,以前不同设备使用不同的I/O接口,类型繁多。现在除了显示器和硬盘还有自己的专用接口之外(分别在本章2.5.1和2.6.1中介绍),其他设备几乎都使用USB接口进行连接。
USB是英文universal serial bus的缩写,它是一种通用的总线式串行传输接口。一个USB接口借助USB集线器(hub)以树状方式可连接多个设备同时进行I/O操作(集线器最多5级、设备最多127个),它们以主从方式进行工作,即所有数据传输操作都由主设备(host)主动发起,从设备(slave)负责应答。通常,主机是主设备,外设是从设备。带USB接口的外设可以自己供电,也可通过USB接口由主机供电。
USB接口的最大特点是支持“即插即用”(PnP)和“热插拔”。在操作系统的支持下,用户把I/O设备插入USB接口之后,计算机会自动识别该设备,加载所需的驱动程序,修改系统的配置使其正常工作。USB接口还支持热插拔,即不需要计算机关机,只要I/O设备已经停止工作,就可以进行插拔,给用户带来了很大方便。
在USB接口中,数据的传输是通过差分信号以串行方式进行的。USB 2.0使用1对双绞线进行半双工传输,最高有效数据传输速率可达480Mb/s(60MB/s)。性能更好的USB 3.0增加2对双绞线用于全双工高速数据传输,最高有效传输速率可达5Gb/s(625MB/s),现已广泛采用。最新的USB 3.1版,其最高有效传输速率可达10Gb/s(1.25GB/s),苹果公司的MacBook笔记本电脑、华为的高档智能手机等已经开始采用。
USB接口使用的连接器不需要螺钉固定,可方便地进行插拔。但连接器规格有多种,按用于主机还是用于外设有A型、B型之分,按形状大小有标准型、小型(mini)和微型(micro)之分,随着USB版本的升级它们又有区别,这给用户造成了混乱和不便。表23是USB接口的版本及常用连接器类型的比较。
表23USB接口的版本及常用的连接器
USB 2.0USB 3.0USB 3.1
特点带宽:480Mb/s;
供电:4.4~5.25V,100~500mA带宽:5Gb/s;供电:
+5V,150~900mA带宽:
10Gb/s
标准A标准B小型B微型B标准A微型BUSBC
插头
插座
说明PC主机使用PC外设使用数码产品手机等移动终端PC主机使用外置硬盘、U盘、蓝光光驱等各种设备的通用连接器
注:图形比例与实际产品有差异。
USB接口有多个版本,早期的1.0版和1.1版已很少使用,现在普遍使用的是USB 2.0版,其微型B连接器(MicroB)已经逐步替代Mini连接器,几乎已成为智能手机等便携式设备的标配。
USB 3.0除了速度是USB 2.0的10倍之外,电源供电能力也提升到900mA。USB 3.0的连接器有一定兼容性,即2.0标准A插头也可以插入3.0标准A插座工作(反之,3.0标准A插头也可以插入2.0标准A插座工作),2.0微型B插头也能插入3.0微型B插座工作(反之则不可)。
USB 3.1是基于USB 3.0改良后推出的USB接口的新版本,最高传输速度由USB 3.0的5Gb/s提升为10Gb/s,供电能力最大为100W。
与USB 3.1版一起推出的一种新型连接器称为“TypeC”(也称为USBC),它的外形比2.0微型B连接器略大,正反两面各有12个触点,不再需要区分插头和插座的方向,正反均可插入,为用户提供了方便。更为重要的是,它有多种工作模式,不仅支持USB 3.1版,而且支持3.0/2.0/1.1等各种版本,不仅用于主设备,也可用于从设备;它还支持高品质的音视频信号输出功能,有望取代HDMI接口。
近两年TypeC连接器在智能手机中的应用已日趋广泛。需要说明的是,一些手机虽然使用了TypeC连接器,但USB接口电路可能还是2.0或3.0版,而非31版。
3. 智能手机的I/O接口
大多数智能手机之类的移动终端设备,都采用USB作为它们的I/O接口,以“从设备”的身份与PC电脑(“主设备”)相互连接,实现数据传输和软件下载安装。尽管在某些特定软件(如手机助手)的支持下,PC的键盘、鼠标等也可操控智能手机,但智能手机仍然只是PC的一个I/O设备。
近些年来,越来越多的智能手机采用USB 2.0 OTG接口,这种接口扩展了传统USB 2.0的功能,使得智能手机具有双重身份:它们既可作为“从”设备(I/O设备)连接到PC(“主控设备”),由PC对其进行控制、访问、数据传输和充电,又可以让智能手机本身作为“主控设备”,去连接U盘、打印机、鼠标、键盘等“从”设备,以达到扩充辅助存储器容量、方便输入/输出的目的。注意,USB 2.0 OTG接口使用的微型连接器中,增加了1个用于识别是“主控”设备还是“从”设备的引脚(ID),当使用普通的USB连接线进行连接智能手机时,它是“从”设备;若使用专门的OTG连接线,它就成为“主控”设备了。
苹果公司的iPhone、iPad没有USB接口,它使用的闪电(Lightning)接口有8个引脚,数据线的插头正反两个方向均可插入使用,非常方便。借助数据线可连接电脑传输数据和安装软件,连接充电器进行充电,连接音响设备播放音乐。也可以通过专门的基座连接各种外设,以扩充iPad/iPhone的功能。一些第三方厂商还开发了各种适配器,借助于这些适配器,iPad、iPhone可以与数码相机、读卡器、U盘、移动硬盘、键盘、鼠标、投影仪、电视机、音响等多种设备连接。
除了上述USB接口或Lightning接口之外,几乎所有智能手机还配置了无线传输方式的I/O接口,如蓝牙、NFC(近场通信)等,它们可以用来连接耳机、键盘、鼠标器、智能手表/手环、IC卡、音箱、数码相机、打印机等,为移动终端设备提供了较好的扩展性,有关蓝牙和NFC的介绍可参看阅读材料2.4。
复习题
(1) 台式PC的机箱内安装了哪些部件?主板上安装了哪些部件和器件?你能识别这些部件和器件吗?
(2) 什么是芯片组?它与I/O总线(如PCIE)是什么关系?
(3) PC和智能手机中有哪些存储器?华为手机中的运行内存和机身存储分别是什么?
(4) 什么是内存条?你使用的PC内存条容量多大,与CPU是如何连接的?
(5) 什么是USB接口?有哪些不同的版本,分别使用何种连接器?
2.4常用输入设备
输入设备用于向计算机输入命令、数据、文本、声音、图像和视频等信息,它们是计算机系
统必不可少的重要组成部分。本节介绍键盘、鼠标器、触摸屏、扫描仪、数码相机和传感器等常用的输入设备。
2.4.1字符与命令输入设备
1. 键盘
键盘是计算机最常用也是最主要的输入设备。用户通过键盘可以将字母、数字、符号等送入计算机,用来向计算机发出命令和输入中西文字与数据。
计算机键盘上有一组印有不同符号标记的按键,按键以矩形排列安装在电路板上。这些按键
包括数字键(0~9)、字母键(A~Z)、符号键、运算键以及若干控制键和功能键。表24是PC键盘中部分常用控制键的主要功能。
表24PC键盘中部分控制键的作用
控制键名称主要功能
Altalternate的缩写,它与另一个(些)键一起按下时,将发出一个命令,其含义由正在运行的程序决定
Ctrlcontrol的缩写,它与另一个(些)键一起按下时,将发出一个命令,其含义由正在运行的程序决定
Delete删除光标右面的一个字符,或者删除一个(些)已选择的对象
End一般是把光标移动到行末
Escescape的缩写,经常用于退出一个程序或操作
F1~F12共12个功能键,其功能由操作系统及运行的应用程序决定
Home通常用于把光标移动到开始位置,如一个文档的起始位置或一行的开始处
Insert输入字符时可以有覆盖方式和插入方式两种,Insert键用于在两种方式之间进行切换
(续表)
控制键名称主要功能
Num Lock数字小键盘可以像计算器键盘一样使用,也可作为光标控制键使用,由本键在
两者之间进行切换
Page Up使光标向上移动若干行(向上翻页)
Page Down使光标向下移动若干行(向下翻页)
Print Screen记录当时的屏幕映像(截屏),将其复制到剪贴板中
PC电脑的键盘上左右各有1个印有微软Windows图标的键,俗称Win键,它与字母键组合使用能快捷启动一些常用功能,以提高操作效率。
键盘上的按键大多是电容式的。电容式键盘的优点是:击键声音小,无触点,不存在磨损和
接触不良问题,寿命较长,手感好。为了避免电极间进入灰尘,按键采用密封组装,键体
不可拆卸。
用户按下每个按键时,它们会发出不同的信号,这些信号由键盘内部的电子线路转换成相应
的二进制代码,然后通过键盘接口(USB或PS/2)送入计算机。
无线键盘采用蓝牙、红外线等无线通信技术,它与电脑主机之间没有物理连线,而是通过无线电波或红外线将输入信息传送给计算机上安装的专用接收器,距离可达几米,因而操作使用比较灵活方便。
智能手机使用的是“软键盘”(虚拟键盘)。当用户需要使用键盘输入信息时,屏幕上会出现类似于ASCII键盘的一个图像,用户用手指触摸其中的按键即可输入相应的信息,不使用时虚拟键盘可从屏幕上消失。
2. 鼠标器
鼠标器(mouse)简称鼠标,它能方便地控制屏幕上的鼠标箭头准确地定位在指定的位置处,并通过按键进行各种操作。它的外形轻巧,操纵自如,尾部有一条连接计算机的电缆,形似老鼠,故得其名。由于价格低,操作简便,用途广泛,目前它已成为台式PC必备的输入设备之一。
当用户移动鼠标器时,借助于机电或光学原理,鼠标移动的距离和方向将分别变换成脉冲信号输入计算机,计算机中运行的鼠标驱动程序把接收到的脉冲信号再转换成为鼠标器在水平方向和垂直方向的位移量,从而控制屏幕上鼠标箭头的运动。Windows中鼠标箭头的常见形状及含义如表25所示。
表25Windows中鼠标箭头的常见形状及含义
鼠标箭头形状含义鼠标箭头形状含义
标准选择调整窗口垂直大小
文字选择调整窗口水平大小
帮助选择窗口对角线调整
后台操作窗口对角线调整
程序忙移动对象
鼠标器通常有两个按键,称为左键和右键,它们的按下和放开,均会以电信号形式传送给主
机。至于按动按键后计算机做些什么,则由正在运行的软件决定。除了左键和右键之外,鼠
标器中间还有一个滚轮,可以用来控制屏幕内容进行上、下移动,它与窗口右边框滚动条的功能相当。当你看一篇比较长的文章时,向后或向前转动
滚轮,就能使窗口中的内容向上或向下移
动。
鼠标器的结构经过了几次演变,现在流行的是光电鼠标。它使用一个微型镜头不断地拍摄鼠标器下方的
图214光电鼠标器
图像,经过一个专用的微处理器(数字信号处理器DSP)对图像颜色或纹理的变化进行分析,计算出鼠标器的移动方向和距离。光电鼠标器的工作速度快,准确性和灵敏度高(分辨率可达800dpi以上),几乎没有机械磨损,很少需要维护,也不需要专用鼠标垫。除了玻璃、金属等光亮表面外,几乎在任何平面上均可操作。图214是光电鼠标的正面和底面的照片。
鼠标器与主机的接口主要有两种:PS/2接口和USB接口。现在,使用蓝牙通信的无线鼠标也已逐步流行,作用距离有的可达10m。
为了节省空间,笔记本电脑使用轨迹球、指点杆和触摸板等替代鼠标器的功能。轨迹球类似于一个倒置的鼠标器,用户用手指移动球体就能控制屏幕上鼠标箭头的位置,其下方的两个按键,功能相当于鼠标的左右键。指点杆的形状很像橡皮铅笔上的橡皮头,它
安装在笔记本电脑键盘的正中间,是一个压力敏感装置,用户以手指触动指点杆时,屏幕上的鼠标箭头将会按手指的用力方向移动。触摸板也是笔记本电脑中鼠标器的一种替代设备,它是安装在键盘下方的一块矩形小平板,是一种压力和运动的敏感装置,当用户的手指在其表面移动时,屏幕上的鼠标箭头也同步地随着手指的移动而移动,从而达到控制鼠标箭头的目的。
与鼠标器作用类似的设备还有操纵杆(joystick)和触摸屏。操纵杆由基座和控制杆组成,它能将控制杆的物理运动转换成数字电子信号向主机输入,控制杆上的按钮则用于发出动作命令。操纵杆在飞行模拟、工业控制、技能培训和电子游戏等应用领域中很受用户欢迎。
3. 触摸屏
现在,便携式数字设备如智能手机、电子书阅读器、GPS定位仪等广泛使用触摸屏(图215)作为其输入设备。触摸屏兼有鼠标和键盘的功能,可以手写汉字和西文字母输入,深受用户欢迎。除了移动终端设备之外,博物馆、医院等公共场所的多媒体电脑或查询终端也已广泛使用触摸屏。
图215触摸屏
触摸屏是在液晶面板上覆盖一层透明的触摸面板,它对压力很敏感,当手指或塑料笔尖施压其上时会有电流产生以确定压力源的位置,并可对其触摸位置进行跟踪,用以取代鼠标器。触摸面板附着在液晶屏上,不需要额外的物理空间,具有视觉对象与触觉对象完全一致的效果,实现无损耗、无噪声的控制操作。
智能手机使用的“多点触摸屏”与传统电阻型(压感式)的单点触摸屏不同,它大多基于电容传感器原理,可以同时感知屏幕上的多个触控点。用户除了能进行单击、双击、平移等操作之外,还可以使用双手(或多个手指)对指定的屏幕对象(如一幅图像、一个窗口等)进行缩放、旋转、滚动等控制操作。这种新鲜感十足的操控设计已经成为吸引用户的一个亮点。
除了上述键盘、鼠标器、触摸屏等人工输入字符和命令的设备之外,借助扫描仪、摄像头、话筒、读卡器等也可以向计算机/智能手机输入字符和命令,此类方法称为自动识别输入,特点是速度快、效率高,但技术更复杂一些。详情可参看第5章阅读材料5.2。
2.4.2图像输入设备
1. 扫描仪
扫描仪是将原稿(图片、照片、底片、书稿)的影像输入计算机的设备。按扫描仪的结构
来分,扫描仪可分为手持式、平板式、胶片专用和滚筒式等几种。
手持式扫描仪工作时,操作人员用手拿着扫描仪在原稿上移动。它的扫描头比较窄,只适用于一行一行地扫描文字稿。
平板式扫描仪主要扫描反射式原稿,它的适用范围较广,单页纸可扫描,一本书也可逐页扫
描。它的扫描速度、精度、质量比较好,已经在家用和办公自动化领域得到了广泛应用。
胶片扫描仪和滚筒式扫描仪都是高分辨率的专业扫描仪,它们在光源、色彩捕捉等方面均具
有较高的技术性能,光学分辨率很高,这种扫描仪多数都应用于专业印刷排版领域。
扫描仪是基于光电转换原理而设计的,上述几种类型的扫描仪工作原理大体相同,只不过是
结构和使用的感光器件不同而已。现以平板式扫描仪为例,介绍它的工作原理(图216)。
图216CCD扫描仪工作原理
扫描仪工作时,将被扫描的原稿正面朝下放置在扫描仪玻璃板上。扫描仪采用高亮度的
光束照射图像,由电机牵动的扫描头沿着原稿移动,并接收从原稿反射回来的光束。由于
黑色、白色、彩色的不同以及灰度的区别,反射回来的光强度也有不同,这种反射光被聚焦
后照射在分别装有红、绿、蓝滤镜的三排CCD(电荷耦合器件)感光器件上,通过光电转换产生电流输出。照射光强,电流大,照射光弱,电流小,再经模数转换器(A/D转换器)转换,就变成计算机可以处理的数字信号。这种数字信号还要由专门的软件进行各种校正和平滑处理,得到的图像数据以指定的文件格式(如TIF或JPG文件)存储在计算机中。
扫描仪的主要性能指标包括:
(1) 扫描仪的光学分辨率。它反映了扫描仪扫描图像的清晰程度,用纵向和横向每英寸的取样点(像素)数目(dpi)来表示。普通家用扫描仪的最高分辨率可达到1600~3200dpi,使用时可根据需要自行设置。
(2) 色彩位数(像素深度)。它反映了扫描仪对图像色彩的辨析能力,色彩位数越多,
反映的色彩就越丰富,得到的数字图像效果也越真实。色彩位数可以是24位、36位、42位、48位等,分别可表示224、236、242、248种不同的颜色。使用时可根据应用需要选择黑白、灰度或彩色工作模式,并设置灰度级数或色彩的位数。
(3) 扫描幅面。指允许被扫描原稿的最大尺寸,例如A4、A3、A1、A0等。
(4) 与主机的接口。办公或家用扫描仪大多采用USB接口与主机连接。
实际使用时,分辨率的设置、色彩类型和位数的选择、扫描窗口大小的设定等都会影响到输入图像的质量和数据量大小。
2. 数码相机/摄像头
数码相机(digital camera,简称DC)是广泛使用的图像输入设备。与传统照相机相比,数码相机不需要使用胶卷,能直接将照片以数字形式记录下来,并
输入电脑进行存储、处理和显示,或通过打印机打印出来,或与电视机连接进行观看。
数码相机的镜头和快门与传统相机基本相同,不同之处是它不使用光敏卤化银胶片成像,而
是将影像聚焦在成像芯片(CCD或CMOS)上,并由成像芯片转换成电信号,再经模数转换(A
/D转换)变成数字图像,经过必要的图像处理和数据压缩(大多采用JPEG标准,参见5.2.2节)之后,存储在相机内部的闪速存储器中。其中成像芯片是数码相机的核心。图217是数码相机的成像过程。
图217数码相机的成像过程
采用CCD(或CMOS)芯片成像时,CCD芯片中数以亿计的CCD像素(元件)排列成1个矩形成像区,每个CCD像素均可感测影像中的一个点,将其光信号转换为电信号。显然,CCD像素越多,影像分解的点就越多,最终所得到的图像分辨率(清晰度)就越高,图像的质量也越好。所以,CCD像素的数目是数码相机一个重要的性能指标。以华为M30 Pro手机为例,其2个主摄像头的像素数目均为4 000万,前置摄像头也达到3 200万像素。
经过CCD芯片成像并转换得到的数字图像,存储在数码相机的存储器中。数码相机的存储器大多采用由闪速存储器组成的存储卡,如MMC卡、SD卡、记忆棒(memory stick)等,即使关机也不会丢失信息。存储卡的容量和存取速度也很重要,在照片分辨率和质量要求相同的情况下,存储卡容量越大,可存储的照片就越多。
从计算机角度看,数码相机其实是一种嵌入式计算机。图218是数码相机的组成结构,其前端由镜头、CCD或CMOS图像传感器及驱动电路(TG)、取样控制器(CDS)、模数转换器(ADC)等组成,所获取的数字图像信号送后端进行处理;后端的CPU用于完成数字图像处理(如色彩处理、分辨率转换、JPEG编码/解码、视频MPEG4编码/解码等)和声音的录制与播放,外围电路则负责存储卡的读写、液晶显示屏控制、TV视频输出、USB接口控制等。此外还有一个8位微控制器(通用MCU),它负责进行操作控制,如镜头的自动变焦、快门控制、闪光灯控制等。
图218数码相机的组成结构
现在,智能手机的摄影/摄像功能越来越丰富,性能堪比一般的数码相机,拍摄的照片可立即进行识别、编辑和通过互联网进行传输,深受用户的欢迎。
2.4.3传感器
传感器(transducer/sensor)是一种检测装置,它能感知被测量的信息,并将其变换成电信号输入计算机,供计算机进行测量、识别、转换、存储、显示或传输等处理。
以高端智能手机为例,除了前面已经介绍的触摸屏、摄像头、微型话筒之外,它还配置了其他多种传感器,以便自动采集设备自身和周边环境的信息。例如:
●指纹传感器。自动采集用户指纹,实现对用户的身份认证。手机上通常采用半导体电容(或电感)式传感器,在一块集成有成千上万半导体器件的平板上,手指贴在上面与其构成电容(电感)器的另一极,由于手指表面凹凸不平,接触平板时与平板的间距大小不一,形成的电容/电感数值也就不一样,设备将这些数据进行汇总,就完成了指纹的采集。
●环境光感应器。它能感知设备使用时周围环境的光线明暗,自动调整屏幕的显示亮度,这不仅可以节省能耗延长电池寿命,而且对保护眼睛也有利。
●近距离传感器(proximity sensor)。通过红外线进行测距,当用户接听电话或者装进口袋时,传感器可以判断出手机贴近了人脸或衣服而关闭屏幕的触控功能,以防止误操作。
●气压传感器。主要用于检测大气压,感知当前高度以及辅助GPS定位。
●三轴陀螺仪。它能感知手机X、Y、Z三个方向的位置变化,自动调整屏幕以横向还是纵向进行显示。
●重力传感器(加速度感应器)。它能感知用户晃动手机的速度、角度、方向和力量的大小,陀螺仪和加速度感应器在玩游戏时很有用。
●磁力计(电子罗盘)。主要作用是电子指南针,辅助GPS定位等。
●3D触摸传感器。它嵌在液晶屏的背光层,可测量出用户触摸屏幕的力量大小。它与振动器结合,可向用户提供力反馈。
上述传感器大多以微型组件的形式安装在手机主板上,它们自动地不间断地进行工作,采集各种数据提供给手机。通常,气压传感器、重力感应器、陀螺仪、电子罗盘等所采集的数据都提供给一个“运动协处理器”进行处理,以减轻CPU的负担。即使手机处于睡眠状态(CPU停止工作),运动协处理器也可以收集、处理和存储传感器的数据,这也是一些用于健康检测和运动跟踪的软件的工作基础。现在许多智能手机的SoC芯片中,都有运动协处理器集成在其中。
复习题
(1) 列举PC键盘上常用的控制键和它们在Windows环境下的功能。
(2) 鼠标器是如何控制鼠标箭头在屏幕上移动的?使用鼠标器的右键和滚轮有什么好处?
(3) 简述扫描仪的工作原理。你用过扫描仪输入图片吗?
(4) 数码相机的主要性能指标有哪些?一台4 000万像素的数码相机可以拍摄多高分辨率的照片?若存储容量为2GB且不进行数据压缩,一次最多可以拍摄这样的照片多少张?
(5) 智能手机中有哪些传感器,各有什么作用?
2.5常用输出设备
2.5.1显示器与显示卡
显示器是计算机必不可少的一种图文输出设备,其作用是将数字信号转换为光信号,使文字与图形在屏幕上显示出来。没有显示器,用户便无法了解计算机的处理结果和所处的工作状态,也很难进行操作。
计算机显示器通常由两部分组成:显示器这里显示器专指CRT或LCD,但不少情况下提到显示器时,还包含其控制器(显卡),需根据上下文理解。和显示控制器。显示器是一个独立设备;显示控制器在PC中过去多半做成扩充卡的形式,习惯上也叫作显示卡(显卡)、图形卡或者视频卡。现在智能手机的SoC芯片和PC的CPU芯片中,已经包含有以图形处理器GPU为中心的显示控制模块,这种做法称为集成显卡,既降低了成本,也缩小了设备的体积。
1. 液晶显示器
计算机使用的显示器主要有两类:CRT显示器和液晶显示器(LCD)。
CRT显示器由于笨重、耗电,还有辐射,现在几乎全部被液晶显示器所取代,只有很少数台式PC还在使用。
液晶显示器是借助液晶对光线进行调制而显示图像的一种
显示器。液晶是介于固态和液态之间的一种物态,它既具有液体的流动性,又具有固态晶体
排列的有向性。它是一种弹性连续体,在电场的作用下能快速地展曲、扭曲或者弯曲,从而将背光发出的光线进行有规则的折射,然后经过滤层的过滤在屏幕上显示出来。
与CRT显示器相比,LCD具有工作电压低,电磁辐射小,功耗少,不闪烁,适于大规模集成电路驱动,体量轻薄,易于实现大画面显示等特点,现在已经广泛应用于计算机、手机、数码相机、数码摄像机、电视机等设备。
现在有些台式机和笔记本电脑仍在使用传统的软液晶屏,而智能手机则已进入了IPS硬屏时代。IPS液晶屏不会因触摸而出现水纹,也不因外力按压而引起色差变化,响应速度快,功耗也低,因而成为触摸屏的首选。
显示屏的像素密度也越来越高,例如6英寸左右(对角线)手机屏幕分辨率低的可达1600×720,高的可达2640×1200,每英寸的像素数目均超过300。
除了电脑专用的LCD显示器之外,现在液晶电视机也可作为电脑和手机的外接显示器使用。通过电脑的VGA、DVI或者HDMI接口与电视机进行连接,或者通过无线局域网(WiFi)借助DLNA、Miracast等技术,就可将电脑或智能手机的图像和声音传输至电视机和投影机进行输出。
下面是关于LCD显示器的一些主要性能参数。
(1) 显示屏的尺寸。与电视机相同,计算机和智能手机的屏幕大小也以显示屏的对角线长度来度量,台式PC使用的显示器一般为15~32英寸;手机的液晶屏幕大多在6英寸左右,平板电脑的液晶屏幕多为7~10英寸。传统显示屏的宽度与高度之比一般为4∶3,现在多数液晶显示器的宽高比为16∶9或16∶10,它与人眼视野区域的形状更为相符。
(2) 显示器的分辨率。分辨率是衡量显示器的一个重要指标,它表示整屏最多可显示像素的多少,一般用水平分辨率×垂直分辨率来表示,例如1024×768、1280×1024、1440×900、1920×1080、1920×1200等。现在有一些所谓“2K/3K/4K”的显示器(或电视机),其中几K就是指水平分辨率达到或者接近1024的几倍。例如老产品的分辨率多为1920×1080、1920×1200,它们属于2K显示器;可显示全高清视频节目;现在主流产品的分辨率为4096×2160、4096×3112、3840×2160、3656×2664,都属于4K显示器的范畴,可播放或收看超高清视频节目。
(3) 刷新速率。刷新速率指所显示的图像每秒钟更新的次数。理论上刷新频率越高,图像的稳定
性越好,不会产生闪烁和拖尾现象。PC显示器和手机屏幕的刷新速率一般在60Hz以上,高的可达90 Hz甚至120 Hz。
(4) 响应时间。响应时间反映了LCD像素点对输入信号反应的速度,即由暗转亮或由亮转暗的速度。响应时间愈小愈好,一般为几到十几ms之间。响应时间小的显示器在观看高速运动画面时不会出现尾影拖拽的现象。
(5) 色彩、亮度和对比度。液晶本身并不能发光,因此背光的亮度决定了它的画面亮度。一般而言,亮度越高,显示的色彩就越鲜艳,效果也越好。对比度是最亮区域与最暗区域之间亮度的比值,对比度小时图像容易产生模糊的感觉。
(6) 背光源类型。LCD显示器采用透射显示,其背光源主要有荧光灯管和白色发光二极管(LED)两种,现在大多使用LED背光,它在显示效果、节能、环保等方面均优于荧光灯管,显示屏幕也更为轻薄。
(7) 辐射和环保。显示器工作时会产生一定的电磁辐射,可能导致信息泄漏,
影响信息安全。因此,显示器必须达到国家显示器能效标准和通过MPRⅡ和TCO认证(电磁辐射标准),以节约能源、保证人体安全和防止信息泄漏。
近几年一些高端手机开始使用一种称为OLED(有机发光二极管)的显示屏。OLED与传统的LCD显示方式不同,它无须背光灯,采用非常薄的有机材料涂层和玻璃基板(或柔性有机基板),电流通过时这些有机材料就会发光。OLED显示屏可以做得更轻薄,可视角度更大,色域更广、耗电量也小,但与LCD相比还有一些不足之处需要进一步改善。
2. 显示卡(显示控制器)
PC的显示控制器过去多半做成插卡的形式,它与显示器、CPU及RAM的相互关系如图219所示。为了降低成本,现在显示控制功能已经越来越多地集成在CPU芯片中,除了某些要求较高的应用之外,一般不再需要独立的显卡。
图219显示器、显示卡、CPU及RAM的关系
显示卡主要由显示控制电路、图形处理器(GPU)、显示存储器和接口电路四个部分组成。显示控制
电路负责对显示卡的操作进行控制,包括对液晶显示器进行控制,如光栅
扫描、同步、画面刷新等。主机接口电路负责显示卡与CPU和内存的数据传输。由于经常需要将
内存中的图像像素数据成批地传送到显示存储器,相互间的连接方法和数据传输速度十分重要。现在的显卡一般都采用PCIE×16高速接口。
显卡生成的图像要送到LCD或电视机屏幕显示,那就离不开显卡的输出接口。常用的输出接口是VGA接口(也就是DSub15接口),它把显卡转换后的R、G、B三基色模拟信号输出到LCD显示器或液晶电视机进行显示。另一种DVI接口是全数字的视频接口,它直接将显卡产生的数字视频信号传输给显示器,与VGA接口相比,避免了信号转换时的失真,确保了图像质量。
为了传输高清晰度或超高清晰度视频信号,显卡还配置了HDMI接口。HDMI接口既传送数字图像信号,也同时传送多声道数字音频信号,目前已广泛使用于电视机、机顶盒、DVD播放机、数字音响设备、游戏机、PC电脑等。
HDMI接口以数字形式传输未经压缩的视频信号,每个像素为24比特,每帧画面均逐行传输,音频信号最多可包含8个声道。HDMI有多个版本:1.4版的最高数据传输速率为10.2Gb/s(可支持4K视频@帧频24Hz),2.0版为18Gb/s(可支持2K视频@60Hz),最新的2.1版为48Gb/s(可支持4K视频@120Hz、8K视频@60Hz)。
HDMI接口使用的连接器共19针,它有几种不同大小。A型(标准型)普遍使用于电视机和机顶盒,C型(mini型)适合便携设备,D型(micro型)则用于智能手机和平板电脑。
HDMI数据线(电缆)质量对高清视频的传输有较大影响,传输距离也不宜过长。此外,千万不要热拔插,否则很容易将HDMI接口的芯片烧毁。
独立显卡中有高性能的图形处理器(GPU)负责高速图像处理和图形绘制,还配置了专门的显示存储器。PC集成显卡中的GPU包含在CPU芯片中,显示存储器则与主存储器合二为一,因而性能与独立显卡有明显差距。智能手机使用的也是集成显卡,其GPU和CPU一起集成在SoC芯片中。有关显示卡和GPU的结构、原理与功能,可参看阅读材料2.5的介绍。
2.5.2打印机
打印机也是PC的一种主要输出设备,它能把程序、数据、字符、图形打印在纸上。目前使
用较广的打印机有针式打印机、激光打印机和喷墨打印机三种。
1. 针式打印机
针式打印机是一种击打式打印机,它的工作原理主要体现在打印头上。打印头安装了若干根
钢针,有9针、16针和24针等几种。钢针垂直排列,它们靠电磁铁驱动,一根钢针一个电磁
铁。当打印头沿打印纸横向运动时,由控制电路产生的电流脉冲驱动电磁铁,使其螺旋线圈产生
磁场吸动衔铁,钢针在衔铁的推动下产生击打力,顶推色带,就把色带上的油墨打印到纸
上而形成一个墨点;当电流脉冲消失后,电磁场减弱,复位弹簧使钢针和衔铁复位。打印完
一列后,打印头平移一格,然后打印下一列(图220)。打印头安装在字车上,字车由步
进电机牵引的钢丝拖动,做水平往返运动,使打印头在两个方向都能打印。
图220针式打印机工作原理
针式打印机的打印质量不高、工作噪声大,现已被淘
汰出办公和家用打印机市场。但它使用的耗材成本低,能多层套打,特别是平推打印机,因
其独特的平推式进纸技术,在打印存折和票据方面,具有其他种类打印机所不具有的优势,
在银行、税务、证券、邮电、商业等领域中还在继续使用。
另一种击打式打印机是热敏打印机,它的结构与针式打印机相仿,但打印原理不同。它在打印头上以行、列或矩阵的形式安装有半导体加热元件,使用的热敏打印纸上则覆盖了一层涂有热敏材料的透明膜。打印时打印头有选择地在热敏纸的一些位置上加热,热敏材料经高温加热的地方瞬间即变成黑色(也可以是蓝色或其他颜色),从而在纸上产生文字、符号和图形。
热敏打印技术最早使用在传真机上。由于打印速度快、噪音低,打印清晰,使用方便,热敏打印机目前在超市POS机、ATM柜员机、医疗仪器中得到广泛应用。
2. 激光打印机
激光打印机是激光技术与复印技术相结合的产物,它是一种高质量、高速度、低噪声、价格
适中的输出设备。
激光打印机由激光器、旋转反射镜、聚焦透镜和感光鼓等部分组成。激光器采用半导体
激光二极管,在它的两极加上大小不同的电压就会发出强度变化的激光束,这称为电源调制
。计算机输出的“0”“1”信号加在激光二极管上,就能得到一系列被调制的脉冲式激光
。激光束经棱镜反射后聚焦到感光鼓,感光鼓表面涂有光电转换材料,于是,计算机输出的
文字或图形就以不同密度的电荷分布记录在感光鼓表面,以静电形式形成了“潜像”。之后
,感光鼓表面的这些电荷会吸附上厚度不同的炭粉,最后通过温度与压力的联合作用,把表
现文字或图形的炭粉黏附在纸上。激光能聚焦成很细的光点,炭粉又很细,因此激光打印机的分辨率
较高,印刷质量相当好。激光打印机的结构与工作原理如图221所示。
(a) 结构
(b) 工作原理
图221激光打印机的结构与原理
激光打印机与主机的接口过去以并行接口为主,现在大多已改用USB接口。
激光打印机分为黑白和彩色两种,其中低速黑白激光打印机已经普及,而彩色激光打印机的价格还比较高,适合专业用户使用。
3. 喷墨打印机
喷墨打印机也是一种非击打式输出设备,它的优点是能输出彩色图像,经济,低噪音,打印
效果好,使用低电压不产生臭氧,有利于保护办公室环境。在彩色图像输出设备中,喷墨
打印机已占绝对优势。
喷墨打印机所使用的耗材是墨水,理想的墨水应不损伤喷头
,能快干但又不在喷嘴处结块,防水性好,不在纸张表面扩散或产生毛细渗透现象,在普通
纸张上打印效果要好,不因纸张种类不同而产生色彩偏移现象,黑色要纯,色彩要艳,图像
不会因日晒或久置而褪色,墨水应无毒、不污染环境、不影响纸张再生使用等。因为有上述许
多要求,所以墨水成本高,而且消耗快,这是喷墨打印机的不足之处。
用于打印数码相机所拍摄照片的照片打印机,主要使用喷墨式打印机。喷墨打印机不局限于四种颜色的墨水,现在已有六色甚至九色墨盒的喷墨打印机,其颜色范围早已超出了传统CMYK的局限,印出来的照片质量已经可以媲美传统冲洗的相片。
4. 打印机的性能指标
打印机的性能指标主要是打印精度、打印速度、色彩数目和打印成本等。
(1) 打印精度。打印精度也就是打印机的分辨率,它用dpi(每英寸可打印的点数)来表
示,是衡量图像清晰程度最重要的指标。300dpi是人眼分辨文本与图形边缘是否有锯齿的
临界点,再考虑到其他一些因素,因此360dpi以上的打印效果才能基本令人满意。针式打
印机的分辨率一般只有180dpi,激光打印机的分辨率最低是300dpi,有的产品为400d
pi、600dpi、800dpi,甚至达到1200dpi。喷墨打印机分辨率一般可达300~360dpi
,高的能达到1000dpi以上。
(2) 打印速度。针式打印机的打印速度通常使用每秒可打印的字符个数或行数来度量。激光打印机和喷墨打印机是一种页式打印机,它们的速度单位是每分钟打印多少
页纸(PPM),家庭用的低速打印机大约为4 PPM,办公使用的高速激光打印机速度可达到10
PPM以上。
(3) 色彩表现能力。这是指打印机可打印的不同颜色的总数。对于喷墨打印机来说,最初只使
用3色墨盒,色彩效果不佳。后来改用青、黄、品红、黑(称为CMYK)4色墨盒,虽然有很大改善,但与专
业要求相比还是不太理想。于是又加上了淡青和淡洋红两种颜色,以改善浅色区域的效果,
从而使喷墨打印机的输出有着更细致入微的色彩表现能力。
(4) 其他。包括打印成本、噪音、可打印幅面大小、功耗及节能指标、可打印的拷贝数目、与主机的接口类型等。
5. 3D打印机
3D打印机不是在纸上打印平面图形,而是打印生成三维的实体。与传统的减材制造工艺(切削、钻孔等)相反,这是一种“增材制造”过程。物件在计算机中设计成型后,将其分割成一系列的数字切片,这些切片传送到3D 打印机上,后者会将这些薄型切片通过特殊胶水逐层堆叠起来,形成一个3D物品。
3D打印有几种不同的技术,一种是熔融沉积技术,运用粉末状金属或塑料等可黏合材料,通过逐层堆叠的方式来构造物体。另一种是选择性激光烧结技术,该技术利用粉末材料打印成型,打印机先在铺设好的打印层上扫描出零件截面,然后用高强度的激光器将材料粉末烧结在一起,得到坚硬成型的零件。还有一种类似于立体平版印刷技术,它与选择性激光烧结技术相似,但使用的材料是液态树脂。
3D打印不仅能生产栩栩如生的工艺玩具,还能制造出复杂的机械零件、假牙、假肢和仿生耳等。3D打印技术除了软件之外关键是使用的材料,理论上塑料、金属、陶瓷、沙子等材料经过特殊处理都可以用来做打印的“墨水(粉)”,这方面的研究和开发应用已经受到人们的密切关注。
2.5.3声音和力反馈输出
1. 声音输出
为了进行操作提示和播放语音及音乐,个人电脑、手机、MP3播放器等都需要输出声音。扬声器(喇叭)、耳机和音箱是常用的三种声音输出设备。
智能手机大多内置了双扬声器,接打电话的时候使用前置的扬声器,听歌和看电视使用后置的两个扬声器。一些平板电脑对扬声器的外放效果进行了优化,不仅数量增加到四个,而且拥有了更大的音腔,还配备了碳纤维振膜,大幅增加了音频输出功率。
音箱都是外置的,有普通音箱和数字音箱之分,普通音箱接收的是声卡重建后的模拟音频信号,数字音箱则可直接接收数字音频信号,由音箱自己完成声音重建,这样可以避免模拟音频信号在传输中发生畸变和受到干扰,声音的质量更有保证。手机大多采用蓝牙技术无线连接音箱。
2. 力反馈输出
手机中有一个微型振动马达,它在开/关手机、虚拟键盘输入、电话和微信来电(来信)通知等场合,会产生力反馈使手机振动,提醒用户知晓。有些手机中的Taptic Engine精密震动部件,还能使用户在使用触摸屏进行操作时,获得触碰反馈的真实感觉(称为3D Touch技术)。
复习题
(1) 计算机和智能手机使用的液晶显示器有哪些重要的性能参数?
(2) 显示卡有哪四个组成部分?作用是什么?它与主机和显示器的连接分别采用何种接口?集成显卡与独立显卡有什么区别?
(3) 简述激光打印机的工作原理。它采用哪种接口与主机相连接?
(4) 与激光打印机相比,喷墨打印机有哪些优缺点?
(5) 智能手机的力反馈输出有什么作用?
2.6辅助存储器
计算机传统的辅助存储器是硬盘、光盘,它们已经使用了几十年。近十多年来,U盘和存储卡的普及,为大容量信息存储提供了更多的选择。
2.6.1硬盘存储器
几十年来,硬盘存储器一直是计算机最重要的辅助存储器。由于微电子、材料、机械等领域的先进技术不断地应用到新型硬盘中,硬盘的容量不断增大,性能不断提高。下面介绍硬盘的组成、原理、与主机的接口和主要性能指标。
1. 组成与原理
硬盘存储器由磁盘盘片(存储介质)、主轴与主轴电机、移动臂、磁头和控制电路等组成,
它们全部密封于一个盒状装置内,这就是通常所说的硬盘。
硬盘的盘片由铝合金或玻璃材料制成,盘片的两面都涂有一层很薄的磁性材料,通过磁性材料粒子的磁化来记录数据。磁性材料粒子有两种不同的磁化方向,分别用来表示记录的是“0”还是“1”[图222(a)]。盘片表面由外向里分成许多同心圆,每个圆称为一个磁道,盘面上一般都有几千个磁道,每条磁道还要分成几千个扇区,每个扇区的容量一般为512字节(硬盘容量小于2 TB)或4 KB(硬盘容量超过2 TB)。盘片两侧各有一个磁头,用于读写盘上的数据,盘片两面都可记录数据[图222(b)]。
图222磁记录原理与磁道和扇区的划分
通常,一块硬盘由1至5张盘片(1张盘片也称为1个单碟)组成,所有盘片上相同半径处的一组磁道称为“柱面”。所以,硬盘上的数据位置需要使用三个参数来定位:柱面号、扇区号和磁头号。硬盘中的所有单碟都
固定在主轴上。主轴底部有一个电机,当硬盘工作时,电机带动主轴,主轴带动盘片
图223硬盘盘片与驱动器的组成
高速旋转,其速度为每分钟几千转甚至上万转。盘片高速旋转时带动的气流将盘片两侧的磁头托起。磁头是一个质量很小的薄膜组件,它负责盘片上数据的写入或读出。移动臂用来固定磁头,并带动磁头沿着盘片的径向高速移动,以便定位到指定的柱面。这就是硬盘的组成和基本工作原理(图223)。
盘片转动速度特别快,信息记录密度很高,磁头悬浮在高速转动的盘片两侧,间距很小(大约0.01μm),又不能与盘片接触,这就要求硬盘在无灰尘、无污染的环境中工作。因此,硬盘的盘片、磁头、驱动机构及其控制电路等全部组装在一起构成一个密封的组合件。
磁盘盘片的直径为3.5英寸、2.5英寸和1.8英寸等,有些甚至更小。3.5英寸和2.5英寸的硬盘分别用于台式PC和笔记本电脑,微型硬盘用于数码摄像机、MP3和MP4播放器等设备。
硬盘上的数据读写速度与机械运动有关,完成一次读写操作比较慢,大约需要10ms左右。为此,硬盘通过将数据暂存在一个比其速度快得多的缓冲区中来加快它与主机交换数据的速度,这个缓冲区就是硬盘的高速缓存(cache)。硬盘的高速缓存由DRAM芯片构成。在读硬盘中的数据时,磁盘控制器把盘片上读出的数据先存放在缓存中,再由缓存成批向主机传送。在向硬盘写数据时,主机送出的数据先传送到缓存,然后再从缓存写入盘片。由于DRAM的速度比磁介质快很多,也就加快了数据传输的速度。
硬盘与主机的接口是主机与硬盘驱动器之间的信息传输通道。固定安装在PC机箱中的硬盘其接口是串行ATA(简称SATA)接口,它以高速串行的方式传输数据,传输速率高达150MB/s(SATA 1.0)、300MB/s(SATA 2.0)或600MB/s(SATA 3.0)。由于是串行传输,线缆数目大大缩减,有利于机箱内散热。
2. 主要性能指标
衡量硬盘存储器性能有以下主要技术指标。
(1) 容量
硬盘的存储容量以千兆字节(GB)或太字节(TB)为单位。目前PC硬盘单碟容量大多为几百GB至1TB,硬盘中的存储碟片一般有1至4片,其存储容量为所有单碟容量之和。作为PC的辅助存储器,硬盘容量自然是越大越好。
(2) 平均存取时间
硬盘存储器的平均存取时间由硬盘的旋转速度(每分钟7200转、5400转或4200转)、磁头的寻道时间和数据的传输速率所决定。硬盘旋转速度越高,磁头移动到数据所在柱面越快,对于缩短数据存取时间越有利。目前这两部分时间大约在几至几十ms之间。
(3) 缓存容量
高速缓冲存储器能有效地改善硬盘的数据传输性能,理论上讲cache是越快越好、越大
越好。目前硬盘的缓存容量大多为几十至几百MB。
(4) 数据传输速率
数据传输速率分为外部传输速率和内部传输速率。外部传输速率(接口传输速率)指主机从(向)硬盘缓存读出(写入)数据的速度,它与采用的接口类型有关,现在采用SATA 3.0接口的硬盘传输速率为6 Gb/s(约600 MB/s);内部传输速率指硬盘在盘片上读写数据的速度,通常远小于外部传输速率。一般而言,当单碟容量相同时,转速越高内部传输速率也越快。
总之,在选购硬盘时,存储容量、平均存取时间、缓存大小、内部传输速率、接口类型等都是需要考虑的因素。
3. 移动硬盘
除了固定安装在机箱中的硬盘之外,还有一类硬盘产品,它们的体积小,重量轻,采用USB接口,可随时插上计算机或从计算机拔下,非常方便携带和使用,称为“移动硬盘”。
移动硬盘通常采用2.5英寸的硬盘加上特制的配套硬盘盒构成。一些超薄型的移动硬盘,厚度仅1个多厘米,比手掌还小一些,重量只有200~300g,存储容量可以达到1TB甚至更高,工作时噪音小,环境安静。
移动硬盘的优点:
(1) 容量大。适合携带图片库、数据库、音像库、软件库的需要。
(2) 兼容性好,即插即用。由于采用了通用的USB接口,移动硬盘可
以与各种电脑连接,通常不用安装驱动程序,
即插即用,并可以热插拔(注意,需要在其停止读写操作之后)。
(3) 速度快。USB 2.0接口传输速率是60MB/s,USB 3.0的传输速率高达400MB/s,与主机传输数据时,读写一个GB数量级的大型文件理论上只需要几分钟就可完成(实际还取决于软件等多种因素),特别适合视频和音频文件的存储与交换。
(4) 体积小,重量轻,由主机供电,无须外接电源。USB移动硬盘体积仅手掌般大小,重量只有200g左右,无论放在
包中还是口袋内都十分轻巧方便。
(5) 安全可靠。有的移动硬盘具有防震功能,在剧烈震动的情况下盘片会自动停转,并将磁头复位
到安全区,防止盘片损坏。
4. 硬盘使用注意事项
硬盘的正确使用和日常维护非常重要,否则会出现故障或缩短使用寿命,甚至殃及所存储的数据,给工作带来不可挽回的损失。硬盘使用中应注意以下问题:
(1) 硬盘正在读写时不能关掉电源,因为硬盘高速旋转时突然断电将导致磁头与盘片猛烈摩擦,从而损坏硬盘。
(2) 保持使用环境的清洁卫生,注意防尘;控制环境温湿度,防止高温、潮湿和磁场对硬盘的影响。
(3) 防止硬盘受震动。硬盘在进行读写操作时,一旦发生较大的震动,就可能造成磁头与盘片相撞,导致盘片数据区损坏(划盘),丢失硬盘内的文件信息。因此在工作时严禁搬动硬盘。
(4) 及时对硬盘数据进行整理,包括目录的整理、文件的清理、磁盘碎片整理等。
(5) 防止计算机病毒对硬盘的破坏,对硬盘定期进行病毒检测和数据备份。
2.6.2U盘、存储卡和固态硬盘
目前广泛使用的移动存储器除了移动硬盘之外,还有U盘、存储卡和固态盘(SSD)等,它们的存储部件都是使用闪速存储器芯片构成的。
1. 闪存芯片
闪速存储器是一种半导体集成电路存储器,其存储单元的工作机理基于隧道效应,即使断电后也能永久保存其中的信息,属于非易失性存储器。与硬盘相比,闪存的抗震性更好,能耐受高压高温,即使浸在水中也问题不大。闪存没有机械运动部件,信息存取速度较快,工作时无噪音,尺寸小,轻便。
闪存的不足之处是它的写入过程较复杂,写入速度慢于读出速度,且写入次数有限制;数据损坏后难以修复;性价比与传统硬盘相比仍有一定差距。
闪存有两大类型:NOR型闪存和NAND型闪存。两者存储单元的互连方法有所不同,外部接口也不一样,因而其性能各异,用途也不相同。
NOR型闪存可以按字节地址随机读取任一存储单元的内容,但写入前必须以块为单位先进行抹除。它适合用来存储需要运行而不要经常更新的程序代码,例如PC的BIOS程序或机顶盒、路由器中的固件等,用以取代容量小、速度慢的EPROM与EEPROM只读存储器。
NAND型闪存比NOR型闪存的存储密度高,每个比特的成本也低,它具有较快的抹写速度,可抹除次数高出NOR闪存10倍。但NAND 闪存不能按字节随机读写,只能像硬盘那样以数据块为单位存取信息。NAND型闪存的主要用途是取代磁介质存储器(如硬盘)。现在广泛使用的U盘、存储卡、固态硬盘等都采用NAND型闪存芯片构成,手机中的辅助存储器也都是NAND型闪存。
随着半导体制造工艺的发展,闪速存储器芯片容量越来越大,工作电压也从最初12V一步步下降到5V、3.3V、2.7V、1.8V。闪存每个存储单元从存储1个比特(称为SLC闪存)发展为每个存储单元存储2个以上比特(称为MLC闪存),现在尤以每个存储单元存储3个比特的闪存(称为TLC)最流行。智能手机、U盘大多采用MLC或TLC型的NAND闪存芯片。
2. 存储卡
存储卡是在闪存芯片基础上做成的固态存储器,形状为扁平的长方形或正方形,细小轻巧,插拔方便,最先在数码相机上使用。存储卡的种类较多,现在广泛使用的有SD卡、MMC卡、CF卡和MS卡(memory stick)等,它们在手机等各种便携式数码设备中广泛使用,台式PC配置了读卡器之后也可使用存储卡。
目前使用最广泛的是SD卡,除了标准卡之外,还有尺寸更小的Mini SD卡和Micro SD卡(又称为TF卡)(图224)。SD卡的容量目前分4档,即SD(8MB~2GB)、SDHC(大于2GB~32GB)、SDXC(大于32GB~2TB)和SDUC(大于2TB~128TB)。按照其数据读写速率SD卡又分成若干等级: Class 2、Class 4、Class 6、Class 10(代表写入速度分别约为2MB/s、4MB/s、6MB/s和10MB/s)。SDXC卡采用了新的接口:UHSI、UHSII、UHSIII和Express,读写速度更高。不同速率等级的SD卡适合不同的应用(如高清摄像机需要使用高等级的SD卡),价格也有显著差别。
华为Mate 20系列开始支持超微型存储卡NM卡(nano memory card)作为扩充存储器,NM卡采用新的存储格式,比传统Micro SD卡尺寸更小。
图224SD卡和MMC卡
MMC卡(multimedia card,多媒体存储卡)与标准SD卡大小差不多,可以插入SD卡插槽中使用,它由控制电路和闪存芯片两部分组成[图224(c)]。MMC技术标准是开放的,其他厂商可免费使用。SD卡是在MMC卡技术中加入加密技术后发展而成的,现在比MMC卡用得更广泛。
2016年之前手机等数码产品中闪存芯片大多采用eMMC(embeded multimedia card)接口标准。eMMC规定在NAND闪存芯片的基础上,加上MMC存储卡的控制电路,采用统一的BGA封装[球栅阵列封装,图224(d)],直接焊接在主板上使用。该接口的数据读写速度在52~125MB/s左右。
现在手机和数码相机中闪速存储器大多已采用UFS(universal flash storage)接口标准,它与eMMC的最大区别是将并行接口改为串行接口,工作频率提高,大幅加快数据传输速率。UFS 2.0速度可以达到600MB/s(单通道)或1.2GB/s(双通道),而UFS 3.0的速度则更高。
3. U盘
U盘(又称为优盘、闪存盘)是目前广泛使用的移动存储器之一,它通过USB接口与电脑连接,实现即插即用。U盘由外壳和机芯两部分组成,外壳可以是塑料或金属制成,机芯是一小块印制电路板,上面安装了控制芯片、NAND闪存芯片、晶体振荡器、LED指示灯、电容、电阻、写保护开关等(图225)。
图225U盘的结构及其控制芯片
U盘中的控制芯片是一个以8位CPU为中心的嵌入式计算机,它能支持多种不同厂商的闪存芯片,具有超强的实时纠错能力,采用硬件与软件(数据智能备份与恢复技术)协同的双重数据安全防护,防止由于异常插拔或断电对数据的破坏。
U盘的容量可以从几百MB到几百GB,有些容量更大。它能安全可靠地保存数据,使用寿命长达数年之久。U盘还可以模拟光驱和硬盘启动系统工作。当Windows操作系统受到病毒感染时,U盘可以同光盘一样,起着引导和加载操作系统的作用。
4. 固态硬盘(SSD)
固态硬盘(solid state disk或solid state drive,简称SSD,准确的技术名称应为固态驱动器),它也是基于NAND型闪速存储器构成的一种辅助存储设备,其目的是在计算机中代替传统的硬盘。由于其接口规范、功能及使用特性与普通硬盘完全相同,外形和尺寸起初也保持一致,所以人们把这类存储器称为“固态硬盘”。
SSD的结构并不复杂。其主体是一块印制电路板,上面安装了NAND闪存芯片、控制芯片、缓存芯片等。闪存芯片往往有多片以达到较大的容量;控制芯片的作用与存储卡和U盘中的控制电路相仿,但功能更多也更复杂,不同控制芯片在数据处理算法和对闪存芯片的读写控制上区别很大,导致不同固态硬盘的性能有明显差距;缓存芯片使用DRAM组成,它与硬盘中的cache作用相同,用来辅助主控芯片进行数据处理,有些低端固态硬盘无缓存芯片。SSD与主机连接一般采用SATA2、SATA3或PCIE接口,也可使用USB 3.0连接(图226)。
图226固态硬盘的组成
与常规硬盘相比,固态硬盘具有读写速度快、功耗低、无噪音、抗震动等优点。但价格较高,容量较低(目前容量大多为几十到几百GB),一旦硬件损坏,数据较难恢复,耐用性(寿命)也相对较短。
为此,一些高端PC尝试使用混合硬盘(SSD+HDD)的方案,即一块小容量固态硬盘(几十GB)用于休眠和文件的高速缓存;另一块大容量的机械硬盘用于海量数据存储,它们协同工作以提高系统的整体性能。
2.6.3光盘存储器
自20世纪70年代初光存储技术诞生以来,光盘存储器获得迅速发展,产生了CD、DVD和BD三代光盘存储器产品。
光盘存储器成本不高,容量较大,还具有很高的可靠性,不容易损坏,在正
常情况下是非常耐用的。这是因为光盘的读出头离盘面有几毫米距离,这比磁头与磁盘表面
的距离至少大1000倍,所以光盘不易划破。即使盘面有指纹或灰尘存在,数据仍然可以读出
。光盘的表面介质也不易受温湿度的影响,便于长期保存。光盘存储器的缺点是读出速度和
数据传输速度比硬盘慢得多。
1. 光盘存储器的结构与原理
光盘存储器由光盘片和光盘驱动器两个部分组成。光盘片用于存储数据,其基片是一种耐热的有机玻璃,直径大多为120mm(约5英寸),用于记录数据的是一条由里向外的连续的螺旋状光道。光盘存储数据的原理与磁盘不同,它通过在盘面上压制凹坑的方法来记录信息,凹坑的边缘处表示“1”,而凹坑内和凹坑外的平坦部分表示“0”,信息的读出需要使用激光进行分辨和识别。
光盘驱动器简称光驱,用于带动盘片旋转并读出盘片上的(或向盘片上刻录)数据,其性能指标之一是数据的传输速率。内置于机箱的光驱与主机的接口现在大多为SATA接口,外接光驱使用USB接口与主机连接。
2. 光驱的类型
光盘存储器技术在21世纪初发展很快,现在已基本稳定。光盘驱动器按其信息读写能力,分成只读光驱和光盘刻录机两大类型;按其可处理的光盘片类型,又进一步分成CD只读光驱和CD刻录机(使用红外激光)、DVD只读光驱和DVD刻录机(使用红色激光)、DVD只读光驱与CD刻录机结合在一起的组合光驱(所谓的“康宝”),以及大容量蓝色激光光驱BD。由于DVD驱动器均能兼容CD光盘的读出,单纯的CD只读光驱和CD刻录机目前市场已很少见。
(1) DVD只读光驱(DVDROM)。DVD不仅用作计算机的辅助存储器,而且也是一种家用数字音像设备。DVD只读光驱具有向下兼容性,它既能读CD光盘又能读DVD光盘,但不能在光盘上写入信息。
(2) 组合光驱(“康宝”)。组合光驱的英文是CDRW/DVDROM COMBO,它既有DVD只读光驱的功能,可以读出CD和DVD盘片,又有CD光盘刻录机的功能,可以刻录CDR和CDRW盘片,在PC中得到普遍使用。
(3) DVD光盘刻录机。它能对DVD光盘进行信息读出和写入,而且还兼容CD光盘的读写。但DVD光盘刻录机的规格国际上并没有完全统一,它有3类共5种(DVDRAM;DVDR、DVDRW;DVD+R和DVD+RW)。幸运的是目前市场上许多DVD光盘刻录机能够兼容上述大部分或全部规范(例如SuperMulti类光盘刻录机),有些还能支持双层刻录。
(4) 蓝光光驱(BD)。DVD驱动器的光头用红色激光(波长为650nm)读取或写入信息,而蓝光光驱则利用波长更短(405nm)的蓝色激光在光盘上读写信息。波长越短的激光,能够在单位面积上记录或读取更多的信息,因此,蓝光极大地提高了光盘的存储容量。目前,一张蓝光盘的存储容量可达25GB,是现有单面单层DVD盘容量的5倍。蓝光光驱也有只读蓝光光驱(BDROM光驱)和蓝光刻录机(BD刻录机)之分,它们都可以兼容此前出现的CD和DVD光盘产品。
3. 光盘片的类型
光盘片是光盘存储器的信息存储载体(介质),按其存储容量目前主要有CD盘片、DVD盘片和蓝色激光盘片三大类,按其信息读写特性又可进一步分成只读盘片、一次可写盘片和可擦写盘片三种。
(1) CD光盘片
CD光盘片主要用来存储高保真数字立体声音乐(称为CD唱片),由于存储容量有限,U盘出现之后把它作为辅助存储器使用意义不大。它有只读(CDROM盘)、可写一次(CDR盘)和可多次读写(CDRW盘)三种不同类型。
市场上那些已经在盘片上压制了软件或视听节目的成品CD盘是不能再添加或改写信息的,它们属于只读光盘。
使用光盘刻录机可以将信息写入CDR光盘,但写过后只能读出和添加信息,不能抹除和修改。这种盘片在聚碳酸酯片基上喷涂了一层染料层和一层反射层,光头根据刻写的数据是0还是1而发射不同功率的激光束,激光束照射处染料受热分解,使介质的反射特性发生变化,从而记录了数据。由于染料层分解后不能复原,盘片所刻录的数据不能修改。
CDRW也叫可擦写盘片,在这种盘片上写入的信息可以多次改写,擦写次数可达几百次甚至上千次之多。由于容量太小,此类光盘已很少使用。
(2) DVD光盘片
DVD盘片与CD盘片的大小相同,但它有单面单层、单面双层、双面单层和双面双层共4个品种。DVD的道间距比CD盘小一半,且信息凹坑更加密集,它利用聚焦更细(1.08μm)的红色激光进行信息的读取,因而盘片的存储容量大大提高。表26是各种不同DVD光盘的存储容量及其名称。
表26各种不同DVD光盘的存储容量
DVD光盘类型120mm DVD存储容量(名称)80mmDVD存储容量(名称)
单面单层(SS/SL)4.7 GB (DVD5)1.46 GB (DVD1)
单面双层(SS/DL)8.5 GB (DVD9)2.66 GB (DVD2)
双面单层(DS/SL)9.4 GB (DVD10)2.92 GB (DVD3)
双面双层(DS/DL)17 GB (DVD18)5.32 GB (DVD4)
DVD盘的每一面有一个或两个记录层。双层盘实际上是将两片盘重叠在一起,表面层是半透明半反射层,透过它可以读取隐藏层的数据。光头在读不同记录层的数据时,其焦点会自动进行调整。
与CD光盘片一样,可刻录信息的DVD光盘片也分成一次性记录光盘(DVDR或DVD+R)和可复写光盘(DVDRAM、DVDRW或DVD+RW)两大类,工作原理也大体相似。需要说明的是,可刻录DVD光盘片的规格国际上并没有完全统一,用户在购买DVD刻录光盘片时务必选择适合自己刻录机可刻录格式的盘片,否则将不能顺利工作。
(3) 蓝光光盘
蓝光光盘(bluray disc,简称BD)是目前比较先进的大容量光盘片,单层盘片的存储容量为25GB,双层盘片的容量为50 GB,是全高清晰度影片的理想存储介质。新的3层和4层蓝光盘容量分别达到100 GB和128 GB。与DVD盘片一样,BD盘片也有BDROM、BDR和BDRE之分,它们分别适用于只读、单次刻录和多次刻录三种不同的应用。
复习题
(1) 硬盘存储器由哪些部分组成?它怎样工作?使用硬盘需要注意哪些事项?
(2) 硬盘存储器有哪些主要的性能指标?怎样提高硬盘的数据传输速率?
(3) 闪速存储器有什么特点?它在智能手机中起什么作用?如何扩充其容量?
(4) U盘是什么?使用时需要注意什么?SD存储卡有哪些不同的品种和类型?
(5) CD、DVD和BD光盘片的存储容量是多少?它们分别有哪些类型?
自测题2
一、 是非题
1. 计算机的性能与CPU的工作频率密切相关,因此CPU主频为3GHz的计算机,比另一台CPU主频为1.5GHz的计算机在完成相同任务时速度快1倍。
2. 计算机运行程序时,CPU所执行的指令和处理的数据都直接从磁盘中取出,处理结果也直接存入磁盘。
3. 内存储器在CPU内部,辅助存储器在CPU外部。
4 RAM代表随机存取存储器,ROM代表只读存储器,关机后前者所存储的信息会丢失,后者
则不会。
二、选择题
1 下面关于微处理器的叙述中,不正确的是()
(A) 微处理器通常以单片集成电路制成
(B) 它具有运算和控制功能,但不具备数据存储功能
(C) 目前PC中使用最广泛的CPU是Intel公司Core(酷睿)系列微处理器
(D) 当前智能手机中的CPU大多采用英国ARM公司的ARM处理器架构
2 下面关于PC中CPU的叙述错误的是()
(A) 为了暂存中间运算结果,CPU中包含几十个甚至上百个寄存器,用来临时存放数据
(B) CPU是PC中不可缺少的组成部分,它担负着运行系统软件和应用软件的任务
(C) 所有PC的CPU都具有相同的指令系统
(D) PC中至少有1个CPU芯片,其中包含1个或多个CPU核
3 下面是关于计算机内存储器的一些叙述:
① 内存储器由DRAM芯片或NAND闪存芯片组成
② CPU可按字节地址随机存取内存储器的内容
③ 目前市场上销售的智能手机其内存容量多数已达1GB以上
④ 台式PC内存容量一般可扩充,手机内存容量一般不可扩充
其中正确的是()
(A) 仅①和③(B) 仅②③和①(C) 仅①和④(D) 仅②③和④
4 CPU的运算速度与许多因素有关,下面哪些是提高运算速度的有效措施?(
)
① 增加CPU中寄存器的数目
② 提高CPU的主频
③ 增加高速缓存(cache)的容量
④ 改进芯片组的设计
(A) 仅①和③(B) 仅①②和③
(C) 仅①和④(D) 仅②③和④
5 在PC中,SATA(串行ATA)接口主要用于()
(A) 打印机与主机的连接(B) 显示器与主机的连接
(C) 图形卡(显卡)与主机的连接(D) 硬盘与主机的连接
6 下面是关于目前流行的台式PC主板的叙述:
① 主板上通常包含CPU插座和芯片组
② 主板上通常包含存储器(内存条)插座
③ 主板上通常包含PCI和/或PCIE总线插座
④ 主板上的SATA连接器用于连接硬盘和光盘
其中正确的是()
(A) 仅①和③(B) 仅①②和③
(C) 仅①和④(D) ①②
③和④
7 下面关于USB接口的叙述中,错误的是()
(A) USB 3.0的数据传输速度要比USB 2.0快得多
(B) USB具有热插拔和即插即用功能
(C) 主机不能通过USB连接器向外围设备供电
(D) USB连接器有多种不同的形状和大小
8 下面哪一类设备不属于计算机的输入设备?()
(A) 麦克风(B) 摄像头(C) 指示灯(D) 传感器
9 数码相机中CCD或CMOS芯片的像素数目与图像分辨率密切相关。假设一个数码相机的像素数目为200
万,则它所拍摄的数字图像能达到的最大分辨率为多少? ()
(A) 800×600(B) 1024×768
(C) 1280×1024(D) 1600×1200
10 显示器是PC不可缺少的一种输出设备,PC通过显示控制卡(显卡)控制其工作。在下面有关PC显卡的叙述中,正确的是()
(A) 显卡与液晶显示器的连接大多采用PCIE接口
(B) 目前显卡可支持的分辨率大多达到1024×768,但可显示的颜色数目还不超过65536种
(C) 显示屏上显示的信息预先都被保存在显示存储器中,在显卡的控制下一帧一帧地送到屏幕上进行显示
(D) 独立显卡与主机的接口大多是USB 2.0
三、填空题
1 PC硬件在逻辑上主要由CPU、内存储器、辅助存储器、输入/输出设备与 等五类主要部件组成。
2 扫描仪是将图片、照片或文稿输入到计算机的一种输入设备,工作过程主要基于光电转换原理,其用于光电转换的电子器件大多是。
3 硬盘的存储容量是衡量其性能的重要指标。假设一个硬盘有2个碟片,每个碟有2面,每个面有10000个磁道,每个磁道有1000个扇区,每个扇区的容量为512字节,则该磁盘的存储容量标称为GB。
第2章阅读材料
2.1微处理器的发展与应用
从20世纪70年代初微处理器诞生开始,它始终按摩尔定律在不断发展,其结构、性能、工艺、晶体管数目和工作频率等每一至两年就会发生变化。下面简要介绍用作计算机CPU的微处理器的发展与现状。
1. 发展概述
20世纪70年代的微处理器其运算器和寄存器宽度仅为4位或8位。当时影响颇大的美国苹果公司的AppleⅡ微型计算机,其CPU采用的是主频为1MHz的8位微处理器。
80年代出现了16位微处理器,代表产品是Intel公司的8086。1982年美国IBM公司研制的IBM PC个人计算机采用8086作为CPU,这是国际上第一次提出个人计算机的概念。它强调了这种计算机属于个人专用,而非多个用户共享使用。
20世纪80年代末、90年代初出现了32位微处理器,如Intel公司的80386和80486微处理器。以80386、80486为CPU的PC电脑,开始采用具有图形用户界面的Windows操作系统,可执行多任务处理。由PC组成的局域网开始推广,个人计算机的应用进入办公和商业领域。
1993年Intel公司研制成Pentium(奔腾)微处理器,它在单个芯片上集成了310万个晶体管,使用273个引脚的封装,主频达100MHz,运算速度已超过100MIPS(MIPS表示每秒钟可完成100万次整数运算),性能开始超过60年代的大型计算机。
此后微处理器继续发展,Intel公司先后推出了Pentium Pro(高能奔腾)以及Pentium Ⅱ、Pentium Ⅲ和Pentium 4微处理器。它们的时钟频率已达GHz水平,不但能高速处理数值和文字信息,而且适合三维图形显示、音频视频信号处理和网络计算等多方面的应用。有些高档的CPU甚至还扩充了64位整数处理功能,把内存地址空间扩大到264。
进入21世纪后,随着CPU芯片复杂度的增加和工作频率的提高,芯片的功耗和散热问题就成为制约CPU性能进一步提高的瓶颈。而集成电路制造工艺和封装水平的发展,允许在一个集成电路芯片中包含更多的晶体管电路。因此人们不再把提高主频作为改善微处理器性能的研发重心,而是考虑在一个芯片中集成2个或多个CPU核,让多个CPU同时进行工作,通过并行处理技术来提高系统的性能,从而出现了双核和多核的处理器芯片。现在PC电脑、智能手机、服务器和巨型计算机等使用的CPU芯片都是多核微处理器。
表27是40多年来Intel公司有代表性的微处理器芯片技术参数的比较,从中可见微处理器技术的发展过程。
表27Intel公司微处理器主要技术参数比较
处理器
主要参数808680386奔腾奔腾Ⅱ奔腾4酷睿2
(双核)Core i7
980x
(6核)Core i7
5960X
(8核)Core i9
9990XE
(14核)
推出时间(年)197819851993~
19961997~
19982000~
20082006~
2011201020142019
主频(MHz)4.77~
1016~
3360~
200233~
3331500~
38001060~
3500333035004 000
(续表)
处理器
主要参数808680386奔腾奔腾Ⅱ奔腾4酷睿2
(双核)Core i7
980x
(6核)Core i7
5960X
(8核)Core i9
9990XE
(14核)
前端总线频率
(MHz)4.77~
1016~
3350或6666400~
1066800~
1600DDR3
1066
(3通道)DDR4
2133
(4通道)DDR4
2666
(4通道)
外部数据
线数目163264646464646464
最大物理内存1MB4GB4GB地址线
36地址线
36地址线
3624GB64GB128GB
L1 cache容量无无8KB
+8KB16KB
+16KB16KB
+16KB2×
(32KB
+32KB)6×
(32KB
+32KB)8×
(64KB
+64KB)14×
(64KB
+64KB)
L2 cache容量无无无0.5MB0.25~
2MB2~
6MB6×
256KB8×
256KB14×
1 024 KB
L3 cache容量无无无无4~
16MB8~
16MB12MB20MB19.25 MB
内核数目1111126814
晶体管数目(万)2.927.5310750420029100~
41000117000260000不详
制造工艺(nm)>2 0001 500~
1 000800~
350350~
250130~
9065,
45322210
热功耗(W)156065130140255
芯片引脚数目40132273或
296242478或
775775136620112 066
2. PC和服务器使用的微处理器
在台式PC和笔记本电脑领域中,现在Intel公司x86架构的64位微处理器芯片占据着市场的绝大部分份额,目前其主流CPU芯片是酷睿(Core)系列,它又分为Core i9/i7/i5/i3等子系列,主要面向商业应用和中高端消费应用领域。此外还有奔腾(Pentium)系列和赛扬(Celeron)系列处理器,它们与酷睿处理器保持兼容,但性能低于酷睿,适合一般性的应用。
Intel公司的竞争对手美国AMD公司是一家既生产CPU芯片,又生产芯片组、图形处理器和闪速存储器芯片的跨国公司,它的CPU芯片也采用x8664架构,与Intel处理器保持二进制兼容,实际运行性能并不逊色,价格比较实惠(表28)。
表28当前大型机/服务器和个人计算机中使用的微处理器
应用需求CPU技术特点代表性微处理器
中高端
台式PC
和笔记本
电脑多媒体应用占90%以上,侧重计算、图形和交互处理的性能,提供较高性能的娱乐和工作平台
以Intel公司的x64架构的处理器为主,字长64位;主频2.5~4GHz,芯片含4~8个核,多线程,每个核含两级cache,多个核共享3级cacheCore i9、i7、i5系列(Intel
公司)
FX系列、A10系列(AMD 公司)
(续表)
应用需求CPU技术特点代表性微处理器
经济型
台式PC
和笔记本
电脑
一般商业应用和普通家用,侧重高性/价比
Intel公司x64架构的处理器,一般包含2个核,主频较低(2GHz左右), cache容量较小,一些高端处理器的功能(如超线程、虚拟化等)可能不支持
赛扬(Celeron)系列
奔腾(Pentium)系列
Core i3系列(Intel公司)
速龙系列、A8/A6系列(AMD公司)
大型机/
服务器
以商业事务处理和互联网Web服务为主,通常连续工作在7×24小时的环境里,需要有99.999%以上的可靠性和高可用性
大多采用RISC指令系统,字长64位甚至128位;主频高达4GHz左右,含8~12个核,多线程,每个核包含两级cache,芯片内集成了多个核共享的3级cache
POWER系列(IBM公司);
SPARC系列(ORACLSUN公司、富士通公司);
志强(Xeon)系列(Intel公司,x86架构)皓龙系列(AMD公司,x86架构)
大型机/服务器以商业事务处理和互联网Web服务为主,它通过网络为数以千、万计的客户机服务,需要较高的网络通信和计算能力(高吞吐率)。在大型机/服务器应用领域,IBM公司的POWER处理器和ORACL(SUN)公司的SPARC处理器都采用RISC指令系统,支持64位计算,被广泛用于大型机和服务器中。Intel公司的志强(Xeon)系列处理器(x86架构)在中、小型服务器市场的占有率也在不断上升。
3. 智能手机使用的微处理器
与笔记本电脑相比,智能手机具有更好的便携性,它们要求所使用的CPU功耗低,续航时间长,体积小、功能丰富,成本低廉。目前,绝大多数智能手机使用的CPU都是64位的ARM处理器架构,它与存储控制器、I/O控制器以及其他一些协处理器集成在同一个芯片上,称为SoC(片上系统,也称为系统级芯片)。
SoC是电子设计自动化水平提升和集成电路制造技术从微米、亚微米进入到深亚微米(几十纳米)后的产物。智能手机使用的SoC实际上是一个“处理器包”,它把CPU和若干不同用途的协处理器封装成为单个芯片[图227(a)]。华为和苹果公司手机的SoC芯片由厂商根据产品定位和性能需求自行设计,然后由集成电路生产厂代为加工生产。由于面向市场需求专门定制,所以电路紧凑、功耗小,性价比很高。
图227华为麒麟970 SoC芯片
图227(b)是华为Mate 10和P20智能手机中使用的麒麟970 SoC芯片,它由华为海思集成电路公司自主研发设计,台积电公司(TSMC)代工生产。970 SoC芯片中除了8个CPU核之外,还包括BP(基带处理器,即图中的MODEM,负责通信)、GPU(图形处理器)、DSP(数字信号处理器)、ISP(图像信号处理器)、感知信号处理器i7等模块。它最重要的特色是有1个神经网络协处理器NPU(寒武纪1A),由中科院寒武纪公司设计并授权,浮点运算性能可以达到1.92TFLOPS,相比使用4个CortexA73 CPU处理同样的人工智能任务,性能可提高25倍。
其他智能手机也有各自的SoC芯片。例如苹果手机iPhone 11/Pro和iPhone SE使用的是Apple A13仿生芯片,小米、OPPO和三星手机使用高通公司的骁龙芯片。表29给出了当前几种高端智能手机使用的SoC芯片的对比,这些SoC结构和组成大体类似, CPU都采用ARM公司的64位处理器ARMv8A架构,但苹果A13和骁龙865自行设计了CPU核的微架构,华为海思采用ARM公司的公版微架构,其性能和技术参数并不完全相同,SoC芯片中集成的协处理器模块的配置和性能也互有区别。
表29几种高端智能手机SoC芯片的对比
SoC名称麒麟990 5G麒麟970苹果 A13 仿生高通骁龙865
指令系统ARMv8A(64位)
CPU核:
(个数x名称)
@主频4×CortexA76
@2.86/2.36GHz
4×CortexA55
@1.95GHz4×CortexA73
@2.4GHz
4×CortexA53
@1.8 GHz2×高性能核
@2.65 GHz
4×低能耗核
@1.8 GHz4×CortexA77
1(2.84 GHz)+3(2.42 GHz)
4×CortexA55
@1.8 GHz
RAM控制器4×16位LPDDR42×32位LPDDR42×LPDDR44×16位
2×LPDDR5
GPU16×MaliG76
(600 MHz)12×MaliG72
(850 MHz)4核GPU
(自主设计)Adreno 650视觉处理子系统(包括 GPU,VPU和DPU)
AI协处理器神经网络处理器NPU(2大1小)神经网络处理器NPU8核神经网络引擎人工智能平台
Hexagon 685 DSP
图像处理器双ISP 5.0双ISPimage processorSpectra480 ISP
其他协处理器i5传感器处理器i7传感器处理器M11运动协处理器 安全处理单元SPU
移动通信
(基带处理器)巴龙5G NR
2.3 Gbps下行
1.25 Gbps上行
4G LTE Cat. 19LTE(4G)
Cat 18/13(无)X555G/LT Modem
LTE Cat 22
制造工艺
(制造厂)7 nm EUV(台积电),103亿晶体管10 nm (台积电)
55亿个晶体管7 nm(台积电)
85亿个晶体管 7 nm(台积电)
发布时间2019,Q42017,Q42019,92020
应用产品华为Mate30/Pro
华为P40/Pro华为P20/Pro
华为Mate10iPhone 11/Pro
iPhone SE小米、OPPO,三星等
除上述手机SoC芯片之外,中国台湾联发科(Mediatek)、美国英伟达(NVIDIA)等公司也是设计制造手机SoC的知名厂家,其产品各有特色,在多种品牌的手机中使用。Intel公司为了参与手机等移动终端设备的市场竞争,它与Google公司合作在x86平台上运行安卓系统,并把早先的x86架构的超低电压的凌动(Atom)CPU改造为Atom SoC系列,在联想、中兴、宏碁、华硕等公司的平板电脑、智能手机产品中使用。由于与x86 CPU兼容,还能运行Windows操作系统。
4. 嵌入式计算机使用的微处理器
嵌入式计算机应用领域十分宽广,它使用的微处理器也多种多样,包括功能简单的4位、8位或16位微控制器,也包括具有强大图形图像和流媒体处理能力的32位或64位微处理器或数字信号处理器。据统计,全球各种类型微处理器芯片年产量达数百亿片之多,其中用于通用计算机的仅2%左右,其余98%均用于嵌入式计算机。在各种类型的微处理器中,32位和64位处理器虽然是技术发展的主流,但销售数量仅占全部微处理器的10%左右,其余大多数还是8位或16位的低端处理器。例如Intel公司的8051、Atmel公司的AVR、Microchip公司的PIC等,它们在过程控制、机电一体化产品、智能仪器仪表、家用电器、网络及通信设备等方面得到了广泛应用。
微处理器是各种类型的嵌入式计算机的核心部件,其功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等性能指标均受到应用产品的制约。据不完全统计,全球用于嵌入式计算机的处理器芯片的品种超过1000种,流行的产品有几十个不同的系列。产品系列虽多,但其中的CPU核(特别是32位或64位核)使用最多的当属英国ARM公司的ARM处理器。2015年, ARM处理器的出货量达到150亿之多, 95%的智能手机、90%的硬盘驱动器、40%的数字电视机和机顶盒都使用了ARM处理器。
2.2CPU常用术语解释
CPU是计算机的核心,是各种数码产品的“引擎”。在选购计算机等各种数码产品和阅读相关资料时,经常会接触到关于CPU的一些名词术语。下面简单介绍若干常用CPU术语的含义(正文中已有解释的不再重复)。
1. 指令系统(指令集)和处理器架构
CPU是按照指令进行工作的。每一种CPU都有它自己的一组指令。CPU所能执行的全部指令称为该CPU的指令系统,也称为指令集(instruction set)。指令集与程序设计密切相关,也是构建CPU的主要依据,所以也称为CPU的指令集架构(instruction set architecture,ISA),简称CPU架构。
Intel公司早期的16位、32位处理器使用的指令系统是IA32(也称为x8632)。现在生产的64位处理器保留了IA32的全部指令,扩充了许多新指令,特别是处理64位数据的指令,新的指令系统称为x8664(或者称为Intel 64)。现在,Core i9/i7/i5/i3、奔腾、赛扬、志强等都是x8664架构的处理器。
智能手机中的CPU则不然,它们大多采用ARM架构的微处理器。20多年来,ARM处理器指令系统经历了一系列的修改和扩充,形成了8个版本,每个版本又有若干变种(版本号之后用字母表示)。前七个版本适用于16位或32位微处理器,第8版(ARMv8A)则使用于64位的微处理器。由于ARM架构与x86架构互不兼容,在PC个人电脑上运行的软件下载到手机上将无法运行,反过来也是如此。
2. 处理器的微架构
处理器的微架构(micro architecture)是指处理器的组成、结构以及指令在处理器中如何执行等具体的实现方案和技术,如运算器(ALU)数目,指令执行流水线的条数与级数,cache存储器的级数和容量,多线程的支持能力,存储控制和I/O接口等。关于处理器微架构的知识在“计算机组成”(computer organization)课程中有更详细的介绍。
相同指令集的处理器,其物理组成和逻辑结构可以有多种不同方案,也就是说,相同架构的处理器可以使用多种不同的微架构来实现,这既取决于对处理器性能和成本的要求,也取决于集成电路的工艺水平。
例如,Intel公司的酷睿和志强、奔腾、赛扬处理器,它们都是x8664架构的64位微处理器。
但它们的微架构和制造工艺各不相同,性能也有明显差别。
ARM公司的处理器情况相仿。目前高端智能手机中使用的CPU几乎都是ARMv8A架构的64位处理器,ARM公司提供了CortexA53、CortexA57、CortexA72、CortexA35四种微架构的设计方案(俗称公版架构),华为即购买了其中CortexA53和CortexA72两种微架构的授权;而苹果公司和高通公司只买了ARM公司ARMv8A指令集的授权,处理器的微架构是自行设计的,然后再委托台积电、三星等集成电路厂家制造。这两种不同的做法取决于公司自身的研发实力、财力和产品开发周期等多种因素,各有利弊。
3. 多核处理器
微处理器有30多年的历史了。为了提高处理器的性能,其指令系统不断扩充和增强,工作频率(主频)不断提高,一些型号的处理器主频已经超过4GHz。然而,继续再提高处理器的主频遇到了很多困难,主要是因为提高主频后芯片功耗过大,散热问题难以解决。
另一方面,随着集成电路制造及封装技术的进步,现在已经有能力在一个集成电路芯片中集成多个处理器。同一CPU芯片中的每一个处理器人们称它为CPU核、内核或简称核(core),集成在1个CPU芯片中的每个核均可独立工作,它们在操作系统的协调下,分别执行不同的指令流(并行处理),从而提高了CPU的总体性能。
与服务器和个人电脑一样,现在几乎所有智能手机的CPU也都采用多个处理器核。从上面的表29可以看出,华为990芯片的CPU由8个处理器核组成,苹果A13芯片中CPU有6个核。只要软件设计得好,CPU中核的个数增多,CPU的性能就会相应提高。
4. 超线程
传统的CPU只有1个处理器核,每个核也仅有一个指令流在其中执行。随着芯片的集成度不断提高,处理器核开始包含多个执行部件。例如Intel的Haswell微架构处理器中有6个独立的执行部件(如地址计算部件、整数运算器、浮点数运算器等),这就为同时执行2个或多个指令流(线程)创造了条件。Intel公司把这种技术称为hyper threading——超线程。采用超线程技术之后,虽然硬件只是1个处理器核,但软件看到的却好像有多个处理器,可同时运行多个线程,从而减少了软件运行中的等待时间,提高了多任务操作系统并发执行多线程的能力。
当然,并发执行的两个线程只是共享处理器核中的执行部件,如果它们同时需要使用同一个部件(例如浮点运算器),其中一个线程必须暂停,直到该部件空闲后才能继续运行。
酷睿CPU芯片大多提供超线程功能,即芯片中的每一个处理器核均可同时运行2个线程,奔腾和赛扬CPU芯片中的处理器核则大多不支持超线程功能。
5. cache存储器
处理器核的工作速度很快,DRAM存储器的速度比较慢(差一个数量级),从存储器取数或向存储器存数时,处理器需要停下来等待,这显然难以发挥处理器的高速特性。解决的方法是采用cache存储器。
cache是一种高速缓冲存储器,简称快速缓存或缓存、快存,它直接制作在CPU芯片内,而且采用SRAM存储电路,其速度几乎与处理器核一样快。处理器在运行程序时,会将最近一段时间可能使用的指令和数据预先成批读出送入SRAM构成的cache存储器。运行程序的过程中,每当处理器需要从内存读取指令或数据时,先检查cache中有没有,若有,就从cache中读取,而不用访问DRAM存储器。
采取这种做法的原理是:在一段时间内,处理器所执行的指令和处理的数据往往集中于存储器的局部范围之内。把这一段时间可能被频繁访问的指令和数据预先从DRAM存储器读到cache中,则处理器在这段时间内将不再或很少去访问速度较慢的DRAM内存,因而大大加快了程序的运行速度。
cache的一个重要指标是命中率,即处理器需要的指令或数据在cache中能直接找到的概率。cache容量越大,访问cache的命中率就越高,cache的级数越多,命中率也越高。
表210是前述几种处理器核的cache存储器的比较。它们的共同点是每个核中的第1级cache(L1)都分为数据cache(Dcache)和指令cache(Icache),不同之处是L2 cache和L3 cache并非每个核都有,有些CPU芯片中L2、L3 cache是被所有核共享的。
表210几种处理器核的cache存储器比较
处理器核L1 IcacheL1 DcacheL2 cacheL3 cache
Inteli7 5960x64KB64KB256KB/核20MB (8核共享)
Intel赛扬G182064KB64KB256KB/核2MB (2核共享)
ARM CortexA7248KB32KB0.5~4MB (4核共享)无
ARM CortexA5364KB64KB128KB (4核共享)无
Apple Twister64KB64KB3MB (2个核共享)4MB (2核共享)
处理器在执行指令过程中需要操作数和指令时,首先访问L1 cache,如果不在L1 cache中,则自动转去访问L2 cache,如果L2中也没有该数据或指令,再访问L3 cache,如果仍然找不到的话,它就通过存储控制器访问主板上安装的DRAM存储器,从其中成批地(一次至少64字节)读入所需要的数据或指令。
6. 功耗与电源管理
32位/64位的CPU芯片是极其复杂的一个电子电路系统,它包含有几亿甚至几十亿个晶体管,工作频率又很高(1~4GHz),因而功耗较大。以Intel公司酷睿CPU芯片为例,它们的满负荷功耗小则几十瓦,大则超过100瓦。CPU工作时芯片发热,温度升高,如不及时散热则工作异常,甚至芯片被烧毁。为此台式PC的CPU芯片一般都安装了专门的散热风扇以降低芯片的温度。大型机/服务器等甚至还使用水冷或液氮冷却的方法进行散热。
智能手机等移动终端设备受到体积、重量和电池供电等多种因素的限制,对CPU/SoC芯片的功耗提出了严格的限制。ARM处理器由于采用RISC架构,又考虑到上网、聊天、照相等应用的控制流不复杂,执行效率不必很高,所以在处理器的微架构设计中简化了硬件逻辑,流水线、分支预测等都比较简单,减少了晶体管数目,同时又对电源管理做了特别设计(如处理器在待机时以极低的主频运行,暂时关闭闲置的CPU核和协处理器等;又如SoC芯片中可以集成异构的处理器核,当手机工作负荷不重,则由低功耗的核运行,若工作负荷增加,再启动高性能核运行),因而芯片的功耗大为降低,一般会比台式PC所用CPU芯片的功耗低一个数量级。
2.3智能手机
1. 发展概述
手机是移动电话(mobile phone)的简称,它是个人移动通信系统的终端设备。按照移动通信网的技术划分,手机相应地也分为1G手机(俗称“大哥大”,模拟手机)、2G手机(GSM或CDMA手机)、3G手机(分3种制式)、4G手机(分TDDLTE和FDDLTE)和5G手机;如果按照手机的功能划分,可分为笨手机(dumb phone)、功能手机(feature phone)和智能手机(smart phone)三大类。笨手机只能用来打电话,很少有其他功能。功能手机除了电话功能之外,还具有收发短信、通讯录、计算器、收音、录音、日历与时钟、简单游戏和手电筒等功能,有些还可以拍照和播放MP3等。智能手机的功能比功能手机更丰富多样,它可以像PC个人电脑一样接入互联网,下载安装第三方软件,不断扩充功能。
智能手机可以认为是电话+电脑+数码相机+电子书+音视频播放器+导航仪+……, 它既是手机,又是电脑、相机,还是身份证和钱包. 一般认为,智能手机有如下一些技术特点:
具有无线接入移动电话网和互联网的能力;
具有功能强大的通用操作系统,软件丰富,操作方便;
用户可安装、卸载和更新应用软件,与通用计算机保持数据兼容;
具有文字、图像、音频、视频处理的多媒体信息处理功能。
实际上,智能手机就是一台可以随身携带的真正的个人多媒体电脑。与台式PC相比,除了屏幕较小,不带键盘和没有大容量硬盘以外,其他如CPU速度、内存容量等已相差不多。不仅如此,智能手机还有许多传统PC所不具备的能力,如4G/5G移动通信、环境感知、位置服务等。
2. 智能手机的硬件结构
智能手机对硬件的要求很高。例如,需要使用高速度、低功耗、具有较强多媒体信息处理能力的64位CPU芯片;需要有容量较大的内存和辅助存储器;需要有分辨率高面积较大的触摸式显示屏;需要有多种无线通信和联网功能;还需要配备大容量电池等。
以苹果公司的iPhone 6s/6s plus手机为例,其电路结构如图228所示。整个硬件系统的核心是2块SoC芯片,一块是高通公司的基带处理器(baseband processor),它负责音频信号的A/D和D/A转换,在信号发送时把音频信号压缩编码成供发射的基带信号;接收时把收到的基带信号解码为音频信号。同时,它也负责地址信息(手机号、网站地址)、文字信息(短信文字、网站文字)、图片和视频信息的编/解码;三个射频信号收发器负责调制/解调、信道编/解码等功能。另一块SoC芯片是苹果公司设计、三星电子代工生产的片上系统Apple A9,它以主频为1.85 GHz的双核Twister CPU (ARMv8A架构)为中心,负责运行iOS操作系统和各种应用程序(App),对整个手机进行控制和管理,该芯片还包括图形处理器GPU、图像处理器、音频处理器、定时控制、电源管理和多种I/O接口电路等模块。
图228iPhone 6s/6s plus手机的电路结构图
图229iPhone 6s手机的主板和IC芯片
图229是iPhone 6S手机拆解之后主板(10层印制电路板)的照片,上面是朝向显示屏的一面,下面是它的背面,仅供参考。为了节省空间,2GB容量的LPDDR4内存芯片与A9 SoC芯片相互叠在一起,这种技术称为堆叠式封装(package on package, PoP)。
其他智能手机的结构与图228和图229相仿,不同的是,苹果手机使用了两块SoC芯片,其中一块是Apple A9,另一块是高通公司用于移动通信的SoC;而华为手机只使用1块SoC,因为华为自行设计的移动通信模块(基带处理器)与CPU、GPU等都集成在同一SoC芯片中,这不仅缩小了主板体积,也有助于节省功耗。
2.4无线I/O接口——蓝牙和NFC
智能手机等移动终端设备,由于体积的限制,它们大多采用无线通信方式与外设进行连接。常用的无线I/O接口有两种:蓝牙和NFC,它们可以连接鼠标、键盘、打印机、耳机、音箱、手环、智能手表等。即使是台式电脑,在USB接口插入一个蓝牙适配器之后,原先用于连接鼠标、键盘、打印机、音箱的电缆线就不需要了。
1. 蓝牙
蓝牙是一种短距离无线通信技术,最早由瑞典爱立信公司提出,IEEE曾将它作为个人无线区域网协议(802.15.1)的标准,现今由蓝牙技术联盟负责监督蓝牙规范的开发、认证管理和商标保护。蓝牙技术自1999年推出1.0版后,经过多次演变,目前最新的版本是蓝牙5.0版。
蓝牙使用的通信波段为2.4~2.4835GHz。2.4GHz是全球范围内工业、科学和医疗(ISM)使用的短距离无线电频段。蓝牙使用跳频技术(每秒跳1600次),它将传输的数据分割成数据包,通过40个蓝牙频道分别传输数据包(第一个频道始于2.402GHz,间距2MHz,至2.48GHz)。
蓝牙的最高数据传输速率在1~24Mb/s之间(版本越高速率越高),传输距离一般在10m之内(版本越高传输距离越远),但它与传输条件、天线配置和电池状态等有关。蓝牙5.0在低功耗模式下具备更快更远的传输能力,传输速率为2Mb/s,支持室内定位功能,与WiFi结合可以实现精度小于1m的室内定位。蓝牙技术针对物联网进行了底层优化,以更低的功耗和更高的性能为智能家居服务。
蓝牙采用主从方式进行通信。每一对设备进行通信时,必须一个为主设备,另一个为从设备。主设备以跳频的方式去寻呼周围处于可被查找状态的蓝牙设备,从设备则以固定时间间隔扫描有无寻呼信号,当扫描到有寻呼信号时便会响应该寻呼信号,然后主设备输入从设备的 PIN码(有一些设备不需要)进行配对。配对的设备建立连接后,即可进行双向的数据通信,从设备还会记录下主设备的信任信息(称为绑定),以便在下次寻呼时不再需要重新配对。在通信状态下,主设备和从设备均可主动断开连接。
上述配对—连接—传输数据的过程中,配对其实就是一个认证的过程。因为任何无线通信技术都存在被监听和破解的可能,为了保证蓝牙通信的安全,必须先认证(配对)再连接,然后进行数据传输。为使用方便,蓝牙2.1之后的版本采用安全简易配对(SSP)方法,可区分三种情况进行不同的配对处理:
(1) 即刻工作(just works)。对于蓝牙耳机、音箱、手环、智能手表等没有输入界面的设备,几乎无须用户操作即可配对(一般过程为:① 手机等主设备开启蓝牙,搜索附近可用的蓝牙设备;② 打开耳机或音箱等从设备,长按蓝牙键若干秒,使进入配对模式;③ 在主设备上选择需连接的从设备;④ 手机显示连接成功,进入工作状态)。
(2) 数值对比(numeric comparison)。如果两个蓝牙设备都有显示屏,且至少一个设备用户能输入“是/否”(例如两个手机),则可在双方设备上分别显示一个6位数字,如果两个数字相同,就在可接受输入的设备上确认配对。
(3) 万能钥匙(passkey entry)。此方法可用于一个有显示屏的设备和一个有数字键盘输入的设备(例如1个手机和1个蓝牙键盘),或两个有数字键盘输入的设备。第一种情况下,显示屏上显示6位数字,用户可在另一设备的键盘上输入该数字。第二种情况下,两个设备需同时在键盘上输入相同的6位数字。
蓝牙设备可以在主/从两个角色之间切换:平时工作在从模式,等待其他主设备来连接,需要时,可转换为主模式,向其他设备发起呼叫。一个蓝牙主设备理论上可同时与7个蓝牙从设备进行通信。
蓝牙技术具有许多特点:功耗低、体积小、便宜,很容易集成在其他设备中;延迟时间短(最短可在3ms内完成连接并开始传输数据);可靠性高(所有数据包都使用24位CRC校验,抗干扰能力强);安全性好(使用AES128 CCM加密算法进行数据包加密和认证)。特别是蓝牙4.0版之后的低功耗蓝牙(简称BLE),它不工作时可以休眠,只在需要执行动作的时候才唤醒,功耗很小,已经大量使用在娱乐、运动、保健、家居、医疗、车载等领域中,各种可穿戴智能设备如手表、手环、手套、帽子、跑鞋、血压计、心电监测仪等都采用低功耗蓝牙技术。现在iOS系统、Android系统、Windows8/10系统等都已经提供对蓝牙技术的支持。
2. 近场通信NFC
近几年一种称为NFC(近场通信,近距离通信)的应用正在手机中推出。NFC由非接触式射频标签(RFID)技术演变而来,它是一种近距离高频无线通信技术,工作频率为13.56MHz,通信距离仅限10cm之内,传输速度有106kb/s、212kb/s和424kb/s三种。
NFC技术与现在广泛使用的校园卡、公交卡之类的非接触式IC卡保持兼容(ISO 14443即Mifare标准和FeliCa标准的IC卡),芯片中含有加/解密逻辑电路,安全性好。内置了NFC芯片的设备(如某些手机)有3种工作模式:
(1) IC卡仿真模式(card emulation)。此时手机就当作一张非接触式IC卡使用,以替代信用卡、银行卡、公交卡、门禁卡,校园卡等。这种方式的优点是机卡合一,手机没联网也可以工作。
图230NFC(近场通信)的应用
(2) 读卡器模式(reader/writer mode)。此时NFC手机可作为非接触IC卡的读卡器使用。例如,在相应软件的支持下,查询公交卡、校园卡中的余额,从展览会海报的电子标签(RFID)上读取更进一步的内容介绍等,此时NFC起着数据采集的作用。
(3) 点对点模式(P2P mode)。此模式用于数据交换,两个NFC手机紧靠一起,实现数据点对点传输,例如传输音乐、交换照片或者同步通信录等。
现在,NFC技术已经配置在许多4G、5G手机中。2016年2月,基于NFC的手机支付功能Apple Pay(苹果支付)在中国上线。用户事先将信用卡或借记卡的信息存储在苹果iPhone手机中,付款时将手指放在手机的指纹识别传感器上,手机靠近支持NFC的POS机,1至2s即可完成支付(需要时还应输入银行卡密码)。使用NFC支付不要WiFi,不要接入互联网,也不需要点击进入App,甚至无须唤醒显示屏即可完成支付。目前包括南京在内的一些城市已经开通了使用手机NFC功能刷卡乘坐地铁和公交车的服务,用户只需下载一个App并完成开卡,利用支付宝、微信等充值后就可以使用,即使手机在通话中或锁屏时,甚至在没电的情况下,都可以照常刷卡乘车。
NFC和蓝牙都是短距离通信技术,它们也都集成在智能手机中,虽然两者有不少共同点,但它们的技术性能和应用目标有明显区别,表211是NFC、蓝牙和低功耗蓝牙3种技术的比较。
表211NFC、蓝牙和低功耗蓝牙3种技术的对比
NFC蓝牙低功耗蓝牙
工作频率13.56MHz2.4~2.5GHz2.4~2.5GHz
传输方式点对点单点对多点单点对多点
传输距离<0.1m<10m1m
传输速度106/212/424kbps2.1Mbps1.0Mbit/s
连接时间<0.1s<6s<0.006s
数据加密硬件实现软件实现软件实现
RFID兼容性是否否
功耗<15mA (read)中<15mA (xmit)
2.5显示卡与GPU
1. 计算机绘图的过程
早期个人电脑屏幕上显示的内容主要是文字、数字和符号,显示输出的过程比较简单。随着图形用户界面的操作系统的普及和图像应用的增多,屏幕上显示二维图形图像的内容日益丰富,对画面的分辨率、色彩、生成速度等要求越来越高,显示输出的过程变得复杂起来。
进入21世纪后,随着3D游戏的大量出现和硬件价格的迅速下降,人们对计算机显示输出具有真实感的3D活动图像的要求越来越高,为此必须先在计算机内描述景物的结构、形状与外貌(称为“建模”),然后再根据其描述(模型)和用户的观察位置及光线情况,生成该景物的图像(称为“图像绘制”)。图像绘制阶段中,为了在显示器屏幕上显示出具有色彩、纹理、阴影、层次等具有真实感效果的3D景物的图像,计算机必须高速完成一系列复杂的处理,例如:
(1) 将景物中各个物体的所有表面用大量的小多边形(三角形或四边形)进行近似表示。
(2) 用户选择一个观测位置,并设定取景范围,将景物向成像平面作透视投影[图231(a)]。
(3) 将景物中不在取景范围内的部分裁剪掉,同时,还把景物中所有被遮挡而看不见的部分隐去[图231(b)]。
(4) 根据景物表面材料的性质和环境光源的设定,计算出物体可见面上每一点(像素)的颜色及其亮度[图231(c)]。
(5) 根据景物表面和背景使用的材料,从纹理库中选择合适的纹理映射到物体和背景的表面。
(6) 计算出由于光源投射到物体所产生的本影和半影。
图231从景物模型绘制景物图像的过程举例
由于景物图像中每一个像素的颜色及其亮度都要经过大量计算才能得到,上述图像绘制过程的计算量非常大,必须使用专门设计的微处理器来完成,这就是PC显卡中或CPU/SoC芯片中的图形处理器GPU(又称图形引擎)。
2. 显示卡的组成
显示卡(显卡)是主机与显示器之间的“桥梁”, 它负责将CPU需要输出的图形和文字转换成显示器可接受的位图(bitmap)图像(称为图形绘制或绘图),然后以规定的频率一帧一帧地送至显示器,在显示器屏幕上呈现出用户可见的图像。
显示卡[图232(a)]的核心是绘图处理器(GPU)[图232(b)]。早期的显示卡没有GPU,绘图功能大多由CPU自行完成,所生成的位图数据存储在显卡的显示存储器中,显卡再将它们传输给显示器进行显示。这样既无法提高显示速度,又增加了CPU的工作负担。随着Windows图形用户界面的出现和图形图像应用的普及,这种弊端越来越严重,于是出现了图形处理器GPU。GPU是一种专用处理器,它有一组用于绘图和图像处理的专门指令,如数据块传送、基本图形绘制、区域填色、图案填充、图形缩放、颜色转换等。由于是硬件实现,所以既减轻了CPU的负担,又加快了图形绘制的速度。
图232显卡和GPU芯片
虽然GPU芯片接管了CPU的图形绘制功能,但只有配置了高速大容量的显示存储器才能使GPU芯片的性能充分发挥出来。显示存储器(显存)以前又称为帧存储器或刷新存储器,主要用于存储被显示图像的位图数据,在屏幕每次刷新时显示控制电路将其读出并转换为模拟信号,再经过VGA接口送到显示屏幕去显示。现在,显存不仅用于保存被显示图像的位图,而且还是GPU的工作存储器。在显示3D景物时,其图像是由最基础的材质贴图加上各种特效处理而形成的,因此显存还要保存材质数据、顶点数据和索引数据等,以供GPU芯片处理。
随着电脑游戏的场景越来越复杂,所用的材质也越来越丰富,需要的存储容量也不断增大。因此,显存的容量、速度和数据线宽度直接关系着显卡性能的高低。目前许多显示卡的存储容量已经达到GB量级。为了适应GPU和显示器对显存高速访问的要求,显存大多采用GDDR3、GDDR4或GDDR5存储器组成。GDDR是一种为显卡特别设计的高性能DDR存储器,它比主存中使用的普通DDR时钟频率更高,更适合搭配GPU芯片使用。
独立显卡通过PCIE×16接口插在主板上使用,现在广泛使用的PCIE×16显卡接口,它有16个通道同时串行高速传输数据,速率可以高达40GB/s。
独立显卡有高性能的图形处理器,还有专门的显示存储器。集成显卡的组成虽然在概念上与独立显卡相同,但物理结构上GPU包含在CPU芯片中,显示存储器则与主存储器合二为一,因而性能与独立显卡有明显差距。
3. PC和智能手机中的GPU
图形处理器(GPU)是一种专门用于图形/图像处理的微处理器,它具有图形绘制、图像处理与显示等必需的功能,有些还提供视频播放、视频压缩/解压缩的功能。GPU是专为执行复杂的数学和几何计算而设计的专用处理器,一些GPU的浮点计算性能和结构复杂程度甚至超过了普通的CPU。
考虑到3D景物中每个物体的形状与轮廓在计算机中都是由大量多边形(几十万、几百万个三角形或四边形)近似表示的,其中每个可见面上的每个像素的颜色和亮度均需要由物体的材质和光照条件来确定(称为像素的光照处理或像素的渲染/着色,即shading或lighting),所以GPU在图形绘制过程中需要执行大量的多边形几何变换和像素渲染计算(transform and lighting,T&L)。衡量一个GPU性能的好坏,关键是看它的T&L能力。多边形处理能力越强(主要由浮点运算速度决定),每秒可处理的多边形就越多,多边形数目越多,可表示的场景就越精致和复杂;像素渲染能力越强,每秒可处理的像素数目越多,图像的分辨率就越高,每秒钟可绘制完成的图像帧数也越多。
现在市场上的独立显卡大多采用美国nVIDIA和ATI两种品牌的GPU芯片。以2014年nVIDIA公司推出的图形处理器GeForce GTX 980为例,其芯片中有52亿个晶体管,工作频率为1.12GHz。它包含2048个光照计算处理器、128个纹理映射部件和64个输出部件,浮点运算速度为4612 GFLOP/s,每秒可处理720亿个像素,支持的显示存储器容量可达4GB,在中高端显卡中使用。
台式和笔记本电脑采用集成显卡时,图形处理器GPU与中央处理器CPU集成在同一个芯片中。例如Intel公司的Core i9/i7/i5/i3芯片中,GPU型号为Intel HD Graphics 4xxx、5xxx或6xxx。以HD Graphics 6000为例,它包含有48个执行部件,工作频率为1.0GHz,浮点运算速度为768 GFLOP/s,与独立显卡使用的GPU相比,它的T&L能力明显不如。不仅如此,还因为它没有自己专有的显示存储器,必须与CPU共享内存,所以集成显卡性能明显不及独立显卡,且一定程度上还会影响系统的整体效率。
智能手机的屏幕分辨率现在越来越高,用户对使用智能手机播放高清视频和玩3D游戏的兴趣也越来越浓厚,因此图形/图像处理性能也越来越受到用户的关注。由于智能手机的GPU与CPU集成在同一SoC芯片中,它们共享同一个内存,所以实质上属于集成显卡,性能还无法与独立显卡相比。
智能手机等移动设备上使用的GPU进展很快。目前使用较多的主要有英国Imagination公司的PowerVR系列、英国ARM公司的Mali系列、美国高通公司的Adreno系列等。例如苹果iPhone 6s和6s plus手机中使用的GPU是6核PowerVR GT7600,每个核有8个渲染流水线,每个流水线有4个处理部件(PE),每个PE在每个周期可以完成两次32位浮点数的乘加运算(MAD)。在450MHz工作频率下,其浮点运算速度理论上可达172.8 GFLOP/s,每秒可处理5.4G个像素。又如华为Mate 8手机使用的GPU是ARM公司设计的4核Mali T880,每个核有2条流水线和1个纹理单元,当工作频率为700MHz时,浮点运算速度约为95.2 GFLOP/s,像素处理能力大约每秒9.52G个像素。它们均能很好地支持分辨率为1920×1080的显示器流畅地进行图形显示和图像处理。
第3章计算机软件
第3章计算机软件
计算机系统分为两个基本组成部分,即计算机硬件和计算机软件。硬件是组成计算机的各种物理设备的总称,它在二进制世界里工作,功能虽然简单,速度却奇快无比;软件自始至终指挥和控制着硬件的运行过程,完成各种任务。没有软件,硬件就不知道做什么,计算机也就没有什么用处了。
3.1概述
3.1.1什么是计算机软件
1. 程序
从第2章的介绍中知道,目前的主流计算机都是按照冯·诺依曼“存储程序控制”的思想设计的。程序是告诉计算机做什么和如何做的一组指令(语句),这些指令(语句)都是计算机能够理解并可以执行的一些命令。所以,程序具有以下特点:① 完成某一确定的信息处理任务;② 使用某种计算机语言描述如何完成该任务;③ 存储在计算机中,并在启动运行(被CPU执行)后才能起作用。
计算机的任何一项功能都是计算机执行相应程序来完成的。计算机的通用性和应用的广泛性源自两个因素。首先,它通过执行各种不同的程序来完成各种不同的任务(图31);其次,程序可在需要时装入计算机,不需要时从计算机中卸载。程序多种多样数不胜数,计算机也就“无所不能”了。
图31不同程序完成不同的任务
需要说明的是,计算机中程序所处理的对象和处理后所得到的结果通称为数据(分别称为输入数据和输出数据)。程序必须处理合理、正确的数据,例如音乐播放程序必须输入MP3之类的音频数据,图像处理程序必须输入JPG之类的图像数据,否则不会产生有意义的输出结果。
2. 软件
软件的含义比程序更宏观、更物化一些。手机中的微信、淘宝、图库、联系人、百度等都是软件。一般情况下,软件往往指的是设计比较成熟、功能比较完善、具有某种使用价值的程序。而且,人们不仅把程序也把与程序相关的数据和文档统称为软件。其中,程序当然是软件的主体,单独的数据或文档一般不认为是软件;数据指的是程序运行过程中需要处理的对象和必须使用的一些参数(如三角函数表、英汉词典、通讯录等);软件文档指的是与程序开发、维护及操作有关的一些资料(如设计报告、维护手册和使用指南等)。通常,软件(特别是商品软件和大型软件)必须有完整、规范的文档作为支持。
软件和程序本质上是相同的。因此,在不会发生混淆的场合下,软件和程序两个名称经常可互换使用,并不严格加以区分。
至于“软件产品”,则是软件开发厂商交付给用户用于特定用途的一整套程序、数据及相关的文档(一般是安装和使用手册),它们以光盘或U盘作为载体,也可以免费或经过授权后从网上下载。
软件是智力活动的成果。作为知识作品,它与书籍、论文、音乐、电影、电视一样受到知识产权(版权/著作权)法的保护。软件版权是依法授予软件作者的权利,版权所有者唯一地享有该软件的拷贝、发布、修改、署名、出售等诸多权利。用户购买了一个软件,仅仅得到了该软件的使用权,并没有获得它的版权,因此随意进行软件拷贝和分发都是违法行为。
设立知识产权法的目的是为了确保脑力劳动受到奖励并鼓励发明创造。软件人员、发明家、科学家、作家、编辑、导演和音乐家等依靠他们在思想、观点和表达上的创新而获取收入。保护其权益就能充分发挥他们的创造能力,社会也将从他们的成果中受益。
3. 软件的安装与卸载
PC和智能手机购买时一般都预装了操作系统和若干常用的应用软件,开机即可使用。但人们经常还要使用一些其他软件,这些软件可以从网上下载。例如苹果公司的App Store,华为的应用市场,微软的应用商店,腾讯应用宝,安卓市场等,其中有些需付费购买,有些则可免费下载。
无论是从互联网下载的软件,还是光盘或者U盘中的软件,一般都需要在PC或智能手机上安装之后才能工作。所谓软件安装,就是将程序代码复制到辅助存储器中合适的位置,在系统目录中写入一些必要的应用程序扩展(如DLL),往系统的注册表中添加注册信息,设置环境变量和启动路径等。
Windows中的应用软件往往包含有1个安装程序或安装向导(文件名为setup.exe或install.exe等),用以协助用户安装该软件。智能手机的App从网上下载完毕后,经用户同意就自动安装。安装过程可能包含如下几个步骤:
● 把压缩形式的程序和数据进行解压缩,还原成电脑可读/可执行的二进制文件;
● 输入产品序列号,签署软件使用协议;
● 确定软件安装的选项,选择软件安装路径;
● 确认或拒绝软件所要求的权限。
软件安装完成后,一般都在桌面(屏幕)上留下其图标,询问是否清除安装包,是否立即打开(运行),有些软件还需要进行参数设置,有些则需要注册、登录后才能开始运行。
不再需要使用的软件可以从PC/智能手机中删去,以减少占用的资源(如辅助存储器空间等),这个过程称为软件卸载。卸载是安装的逆过程,注意要把该软件残留的数据一起删除干净。
3.1.2计算机软件的特性
在计算机系统中,软件和硬件是两种不同的产品。硬件是有形的物理实体,而软件是无形的,它具有许多与硬件不同的特性。
(1) 不可见性。软件是原理、规则、算法的体现,它不能被人们直接触摸。程序和数据以二进位编码表示并通过电、磁或光的形式进行存储和传输,人们能看到的只是它的物理载体,而不是软件本身。它的价值也不是以物理载体的成本来衡量的。
(2) 适用性。成功的软件一定能满足某种需求,它或者可以完成传统工具/方法很难完成甚至不可能完成的任务,或者能以更方便、更有效的方式完成该任务。例如,网页搜索软件能为用户快速寻找所需要的信息,支付宝可以方便地帮人们收付款。
(3) 依附性。软件不像硬件产品那样能独立存在,它要依附一定的环境(平台)。这种环境是由特定的计算机硬件、网络和其他软件组成的。没有一定的环境,软件就无法正常运行,甚至根本不能运行。例如在PC上极有价值的一些软件,在智能手机上可能毫无用处;而手机上的软件也没法在PC上运行。
(4) 复杂性。现今,能获得广泛使用的软件都相当复杂,不仅在功能上要满足应用的需求,而且响应速度要快,操作使用要灵活方便,工作要安全可靠,对运行环境的要求要低,还要易于安装、维护、升级和卸载等,所有这些都使得软件的规模越来越大,结构越来越复杂,开发成本也越来越高。当今的软件产品,一般都是由软件公司组织许多软件人员,按照工程的方法进行开发并经过严格测试后完成的。
(5) 易复制性。软件是以二进位表示,以电、磁、光等形式存储和传输的,因而软件可以非常容易且毫无失真地进行复制,这就使软件的盗版行为很难绝迹。软件开发商除了依靠法律保护软件之外,还经常采用各种措施来确保其软件产品的销售量,以收回高额的开发费用并取得利润。
(6) 不断演变性。由于计算机技术发展很快,用户需求又会不断发展和变化,软件投入使用后还需要开发人员不断进行修改和完善,排除错误、扩充功能、适应不断变化的环境,这就导致了软件经常更新和版本升级。例如腾讯公司的微信软件从2011年5月推出正式使用的2.0版后,经过几十次的更新和发展,迄今(2020年5月)已经是7.0.15版。
(7) 有限责任。软件的正确性无法采用数学方法予以证明,目前还没有人知道怎样才能写出没有任何错误的程序,因此软件功能是否百分之百正确,它能否在任何情况下都正确运行,软件厂商无法给出承诺。为此有些软件厂商要求用户在使用软件之前接受有关协议。例如微信软件的使用协议中有如下条款:
“7.2.4你理解并同意腾讯将会尽其商业上的合理努力保障你在本软件及服务中的数据存储安全,但是,腾讯并不能就此提供完全保证,包括但不限于以下情形:
7.2.4.1腾讯不对你在本软件及服务中相关数据的删除或储存失败负责;
7.2.4.2…………”
(8) 脆弱性。随着互联网的普及,计算机之间相互通信和共享资源一方面给用户带来许多方便和好处,同时也给系统的安全和软件的可靠运行带来了威胁。其原因一方面是因为软件设计和实现中难免存在漏洞,另一方面也是由于软件不是“刚性”的产品,它容易被篡改和破坏,所以使违法和犯罪行为有机可乘。
3.1.3计算机软件的分类
1. 系统软件和应用软件
按照不同的角度和标准,可以将软件划分为不同的种类。如果从软件功能和作用的角度出发,通常将软件大致划分为系统软件和应用软件两大类。
(1) 系统软件
系统软件泛指那些为了安全有效地使用计算机系统、给应用软件开发与运行提供支持或者能为用户管理和使用计算机提供方便的一类软件,例如基本输入/输出系统(BIOS)、操作系统(如Windows、iOS等)、程序设计语言处理系统(如C语言编译器)、数据库管理系统(如ORACLE、Access等)、通信协议软件、常用的实用程序(如磁盘清理程序、备份程序、杀毒软件等)等都属于系统软件。
系统软件的主要特征是:它与计算机硬件关系密切,能对硬件资源进行统一的控制、调度和管理;系统软件具有基础性和支撑作用,它是应用软件的运行平台。在通用计算机(如PC、智能手机、平板电脑等)中,系统软件是必不可少的,具有很重要的作用。即使是洗衣机、微波炉之类的嵌入式系统中,也安装/固化有一些监控程序(monitor),否则设备将无法启动工作。
(2) 应用软件
应用软件(application software,简称App)泛指那些专门用于为最终用户解决各种具体应用、完成特定任务的软件。由于计算机的通用性和应用的广泛性,应用软件比系统软件更加丰富多样。
计算机工作时,硬件、系统软件和应用软件既有分工又有合作,三者有序配合协同完成预定的任务。图32是计算机运行财务管理软件时,用户按下“P”键后计算机打印工资报表的过程。
图32计算机硬件、系统软件、应用软件的分工与合作
按照应用软件的开发方式和适用范围,应用软件可再分成通用应用软件和定制应用软件两大类。
① 通用应用软件
生活在现代社会,不论是学习还是工作,不论从事何种职业、处于什么岗位,人们都需要阅读、书写、社交、娱乐和查找信息,有时可能还要做讲演、发消息等。所有这些活动都有相应的软件使之更方便、更有效地完成。由于这些软件几乎人人都需要使用,所以把它们称为通用应用软件。
通用应用软件分若干类。例如文字处理软件、网页浏览软件、游戏软件、音视频播放软件、通信与社交软件、信息管理软件、演示软件、电子表格软件等(表31)。这些软件的用户很多,使用非常频繁,它们设计得很精巧,不同系统和平台有不同的版本(如PC电脑版、iOS版、安卓版等),大多易学易用,许多软件几乎不经培训就能上手,在日常工作、学习和生活中发挥了很大的作用。
注意,表31中同类软件往往有多个,它们由不同的公司开发,功能大体相同,所处理的数据格式大致统一却又有区别,但可以直接或经过转换后交换使用。
表31通用应用软件的主要类别和功能
类别功能流行软件举例
文字处理软件文本编辑、文字处理、桌面排版等WPS Office、Word、Adobe Acrobat等
电子表格软件表格设计、数值计算、制表、绘图等Excel、WPS Office等
演示软件投影片制作与播放PowerPoint、WPS Office等
网页浏览软件浏览网页、信息检索、电子邮件通信等微软IE、搜狐、UC浏览器、Firefox、Safari、Chrome、Edge等
音视频播放软件播放各种音频和视频等数字媒体Microsoft Media Player、Real Player、QuickTime、暴风影音、Winamp等
通信与社交软件电子邮件、聊天、微博、微信等Outlook、QQ、微信、Facebook、Skype、FaceTime、Twitter(推特)等
个人信息管理软件记事本、日程安排、通讯录Outlook、记事本、联系人、备忘录等
购物及支付软件购物、订票、订房、打车、支付手机淘宝、铁路12306、携程旅行等
游戏软件游戏和娱乐下棋、扑克、休闲游戏、角色游戏等
② 定制应用软件
定制(或半定制)应用软件是按照不同领域用户的特定应用要求而专门设计开发的。如超市的销售管理和市场预测系统、汽车制造厂的集成制造系统、学校教务管理系统、医院信息管理系统、酒店客房管理系统等。这类软件专用性强,设计和开发成本相对较高,主要是一些机构用户购买,因此价格比通用应用软件贵得多。
2. 商品软件、共享软件和自由软件/开源软件
如果按照软件权益的处置方式来进行分类,则软件有商品软件、共享软件(shareware)和自由软件(free software)之分。
商品软件的含义不言自明,用户需要付费才能得到其使用权。它除了受版权保护之外,通常还按照软件许可证(license)的规定使用软件。例如,版权法规定用户将一个软件复制到多台机器去使用是非法的,但若购买了多用户许可证,则就允许同时安装在若干台计算机上使用,或者允许所安装的一份软件同时被若干个用户使用。
共享软件是一种“买前免费试用”的具有版权的软件,它通常允许用户试用一段时间,也允许用户进行拷贝和散发(但不可修改后散发)。如果过了试用期还想继续使用,就得交注册费,成为注册用户才行。这是一种为了节约市场营销费用的有效的软件销售策略。
自由软件的创始人倡导软件的“非版权”原则,即在协议规定下用户可共享软件,允许随意拷贝和修改其源代码,允许自由传播,但对软件源代码的任何修改都必须向所有用户公开,还必须允许其他用户享有进一步拷贝和修改的自由。在自由软件精神的启迪下出现了“开源软件”(opensource software)。开源软件指在软件发行的时候必须附上完整的源代码,并在协议规定下用户可以修改和再发布。开源软件并不反对商业收费。许多开源软件都是多人合作义务开发的成果。例如Apache HTTP服务器软件,osCommerce电子商务平台、Mozilla Firefox(火狐狸)浏览器、LibreOffice办公套件、GNU/Linux和Android操作系统的内核等。自由软件/开源软件的发展对于软件共享和技术创新起了很好的促进作用。
除了上述三类软件之外,还有一种免费软件(freeware),它是一种无须付费就可取得的软件,但用户并无修改和分发该软件的权利,其源代码也不一定公开。例如Adobe Reader、Flash Player、360杀毒软件等。大多数自由软件都是免费软件,但免费软件并不全都是自由软件。
现在,苹果公司、谷歌、微软等不少厂商在互联网上开设了应用软件商店(Apple App Store、Google Play和微软应用商店等),向用户提供了数以几十万计的应用软件,其中有需要收费的商品软件,也有大量免费软件。软件商店提供的一站式服务具有快捷下载和安装、快速更新、便于维护和管理等特点,是软件销售模式的一次革命。应用软件商店负责对软件进行审核、发布和营销,其面向全球市场和所采用的利润分配策略(如开发者能得到应用软件销售额中的可观部分),激发了软件研发人员开发更多应用软件的热情,它为智能手机构建了一个丰富多彩的应用软件生态环境。
复习题
(1) 什么是计算机软件?计算机软件有哪些特性?
(2) 什么是共享软件和自由软件?它们的意义何在?
(3) 从功能角度出发,软件分为哪两类?你会使用哪些通用应用软件?
(4) 你的智能手机上安装了哪些软件?哪些是系统软件,哪些是应用软件?
3.2操作系统
操作系统(OS)是计算机中最重要的一种系统软件,它由许多程序模块组成,它们能以有效、合理和安全的方式组织和管理计算机的软硬件资源,科学地安排计算机的工作流程,控制和支持应用程序的运行,并向用户提供用户界面(人机接口),使用户能容易
、方便、有效、安全地使用计算机,确保整个计算机系统高效有序安全地运行。
3.2.1概述
1 操作系统的作用
操作系统主要有以下几个方面的重要作用。
(1) 为计算机中应用程序的运行提供支持和服务
计算机是通过运行应用程序(App)来完成各种任务的。应用程序虽然多种多样,功能各异,但它们的运行过程有许多共同之处。例如,它们都需要从辅助存储器(硬盘或闪存)读出然后再装入内存(RAM);都需要在屏幕上显示信息并从键盘(或触摸屏)上接收用户的输入;需要与其他计算机通信;需要访问文件系统和数据库等等。操作系统的任务之一就是为应用程序提供这些共性的服务,减轻App的工作负担,提高App的效率。
(2) 为计算机中运行的应用程序管理和分配系统资源
计算机中一般总有多个程序在运行,例如在使用Word编辑文档时,还使用媒体播放器播放MP3音乐、杀毒软件正在杀毒、邮件程序正在接收电子邮件等,这些程序在运行时都需要使用系统中的资源(例如占用内存、访问硬盘、在屏幕上显示信息等)。此时,操作系统就承担着硬件和软件资源的调度和分配任务,以避免冲突,保证程序正常有序地运行。操作系统的资源管理功能主要包括处理器管理、存储管理、文件管理、I/O管理等几个方面。
(3) 为用户操作使用计算机提供友善的人机接口
人机接口也称用户接口或用户界面(UI),它的任务是方便用户操作、实现用户与计算机之间的通信(对话)。现在,几乎所有操作系统都向用户提供图形用户界面(GUI),它以矩形窗口的形式显示正在运行的各个程序的状态,用图标(icon)来形象地表示系统中的文件、程序、设备等对象,用户借助点“菜单”的方法来选择要求系统执行的命令或选项,利用鼠标器或触摸屏控制屏幕光标移动,并通过点击启动某个操作命令的执行。使用户能够比较直观、灵活、方便、有效地使用计算机,减少了记忆操作命令的沉重负担。
(4) 为应用程序的开发提供一个高效率的平台
人们常把没有安装任何软件的计算机称为裸机,在裸机上开发应用程序难度大,效率低
,可靠性差。安装了操作系统之后,实际上呈现在应用程序和用户面前的是一台“操作系统虚拟机”
(图33)。操作系统屏蔽了几乎所有物理设备的技术细节,它以规范、高效的方式(例如
系统调用、应用框架、库函数等)向应用程序提供了有力的支持,从而为开发和运行其他系统软件及各种应用软件提供了一个高效率的平台。
图33操作系统的作用和地位
除了上述四个方面的作用之外,操作系统还能处理软硬件错
误、监控系统性能、保护系统安全,等等。总之,有了操作系统,计算机才能成为一个高效、可靠、通用的信息处理系统。
2. 操作系统的组成
现在,无论PC还是智能手机,系统中都安装有操作系统。应用软件必须在操作系统的管理和支持下运行,操作系统是应用软件的运行平台,在系统中起着基础设施的作用。
操作系统是一种功能丰富、技术复杂的软件产品,它们通常由操作系统内核(kernel)和其他许多附加的配套软件所组成,包括图形用户界面程序、常用的应用程序(如日历、计算器、资源管理器、网络浏览器等)和实用程序(任务管理器、磁盘清理程序、杀毒软件、防火墙等),以及为支持应用软件开发和运行的各种软件构件(如应用框架、编译器、程序库等)。图34是操作系统组成的示意图。
图34操作系统的组成和操作系统内核
操作系统内核(kernel)指的是提供任务管理、存储管理、文件管理、通信支持和设备管理等功能的一组软件模块,用于为其他软件(包括应用程序)提供服务。开机后内核通常都驻留在内存中,它以CPU的最高优先级运行,能执行指令系统中的所有指令(包括特权指令),具有直接访问各种外设和全部主存空间的特权,负责对系统资源进行管理和分配。
操作系统内核通常情况下,操作系统内核和操作系统并不严格区分,读者可按照上下文进行理解。并不是完整的操作系统。软件公司还需要在操作系统内核的基础上再进行开发,配置各种程序库和应用框架,设计用户界面,提供常用的应用程序和实用程序,然后才能作为一个完整的操作系统产品提供用户安装使用。以华为智能手机为例,其操作系统由两部分组成:安卓系统(内核及程序库、应用框架等)和华为自行开发的用户界面程序EMUI及若干常用的应用软件。
相同内核的操作系统可以有多种不同的产品。例如,微软Windows操作系统大多使用NT内核,只是版本有差别而已。Windows XP内核是NT5.1,Windows Vista的内核是NT 6.0,Windows7、Windows 8.1和Windows 10的内核分别是NT 6.1、NT 6.3和NT 10.0,服务器操作系统如Windows Server 2003、2008、2012的内核都是NT,就连用于智能手机的Windows Phone 8.1操作系统其内核也是NT 6.3版。
同样,采用Linux内核的操作系统也有许多种,如属于自由软件的GNU/Linux操作系统等。智能手机中广泛使用的Android(安卓)操作系统也是在Linux内核的基础上由Google公司开发而成的。
目前个人电脑和移动终端设备使用的操作系统主要有Windows、iOS和Android(安卓)三种。本节余下内容重点介绍Windows操作系统的内核,有关iOS和Android操作系统的内容可参见阅读材料3.1的介绍。
3 操作系统的启动
操作系统安装后大多驻留在硬盘、NAND闪存之类的辅助存储器中,计算机开机前内存中并没有操作系统。当加电启动计算机时,CPU首先执行主板上固件(如BIOS)中的自检程序,测试计算机主要部件的工作状态是否正常。若无异常情况,CPU继续执行BIOS中的引导装入程序,按照CMOS中预先设定的启动顺序,依次搜寻计算机中的辅助存储器,若找到需要启动的操作系统所在的辅存,则将其第一个扇区的内容(主引导记录)读到内存,然后将控制权交给其中的操作系统引导加载程序,由引导加载程序继续将硬盘中的操作系统装入内存。操作系统加载到内存后,整个计算机就处于操作系统的控制之下,用户就可以正常地使用计算机了。图35(a)是开机后操作系统的加载过程,图35(b)是操作系统加载成功后计算机运行时内存储器中的大致态势。
图35操作系统的加载过程和运行时的内存态势
在PC开机加电自检至执行引导装入程序之间,用户若按下某一热键(如Del键或F1、F2、F8键,不同BIOS的规定不同
),就可以启动BIOS中的CMOS设置程序。CMOS设置程序允许用户对系统的硬件配置信息和有关参数进行修改。CMOS
中存放的信息包括:系统的日期和时间,系统的口令,系统中安装的硬盘、光盘驱动器的数目、类型及参数,显示卡的类型,加载操作系统时访问辅助存储器的顺序等。这些信息非常重要,一旦丢失就会使系统无法正常运行,甚至不能启动。
自Windows 8.1开始,Windows系统支持两种启动模式:一种是上述传统的BIOS启动模式;另一种是UEFI(统一的可扩展固件接口)安全启动模式,后者在启动过程中会检验每个软件的数字签名,确保只使用可信任的软件启动电脑。
不同计算机和不同操作系统的开机启动及OS加载过程大体相似,但具体细节有不少差别。阅读材料3.4介绍了Windows系统和安卓系统的开机启动过程,这对于计算机设备无法正常启动时判断问题何在有一定帮助。
3.2.2多任务处理与处理器管理
1. 什么是多任务处理
从用户角度来看,计算机的功能就是运行App为用户执行任务。任务可以由用户启动(通过点击屏幕上的某个图标或菜单中的某个选项),例如编写文档、播放音乐、收发微信等,任务也可以由外部世界或OS自行启动(例如病毒查杀、微信通知、来电显示等)。
计算机中每个任务都对应着某个程序(如App),计算机执行任务其实就是让CPU运行相应的App,前提是该任务所对应的App已经预先下载并安装在计算机中。一般而言,计算机中的任务总是处于下列3种状态之一:
(1) 未运行状态(not running)。App已经下载并安装在计算机中但还没有被启动时就处于未运行状态,此时除了App驻留在辅助存储器中需要占用一定空间之外,该任务不使用CPU,也不需要内存空间、屏幕和其他资源。
(2) 前台状态(foreground)。当用户用鼠标或手指点击某个任务的图标时,该任务就被OS启动,未运行状态就转变为前台状态。此时App所对应的程序代码已经加载到内存并被CPU执行,显示屏上出现该任务的会话窗,窗口中显示该任务的运行状态、提示信息和运行结果,并可接受用户的输入。
(3) 后台状态(background)。当用户启动另一个任务或者切换到另一个任务时,新任务进入前台运行状态,原先的前台任务就转入后台状态(智能手机在锁屏时前台任务也转为后台任务,解屏时再恢复为前台任务)。处于后台状态的任务其程序仍留在内存中,它可能运行,也可能不运行(后台不运行的状态称为挂起状态,suspended)。
无论是处于前台状态的任务还是后台状态的任务,需要时用户或者OS都可以终止(结束)该任务,收回该任务所占用的资源,使任务回到未运行状态。
人们日常生活中经常会同时进行多项工作,如一边看书一边做笔记,一边搞卫生一边听音乐等。为了适应人们的习惯,也为了提高CPU和其他计算机资源的利用率(因为计算机硬件速度极快,存储容量又很大),所以操作系统一般都能支持多个任务在计算机中同时进行,这种功能称为多任务处理(multitasking)。无论计算机CPU芯片中包含1个CPU核还是多个CPU核,多任务处理就是在OS的指挥和协调下,CPU轮流为每个任务运行其相应的程序(图36),内存要有条不紊地容纳每个程序的指令代码和相关数据,I/O设备能可靠地为所有任务服务,这些都需要OS中相应的模块如处理器管理、存储管理、I/O设备管理等提供支持和保障。
图36多任务处理
2. Windows系统的多任务处理
Windows操作系统启动以后,它就进入了多任务处理状态。这时,除了操作系统本身相关的一些程序在运行之外,用户还可以启动多个应用程序(如电子邮件程序、IE浏览器和Word等)同时工作,它们互不干扰独立运行。用户借助于“Windows任务管理器”可以随时了解系统中有哪些任务正在运行,分别处于什么状态,CPU的使用率(忙碌程度)是多少,存储器使用情况如何等有关信息(图37)。
图37使用Windows中任务管理器查看系统中的任务运行情况
在Windows系统中,每个已启动的任务在屏幕上通常都有一个窗口与之对应,该窗口既用于显示任务的进展状态和处理结果,也用于接收用户的输入。屏幕上只有一个窗口(称为“活动窗口”)能接收用户的输入(击键或按击鼠标),活动窗口通常位于其他窗口的最前面,它的标题栏与非活动窗口颜色深浅不同。活动窗口所对应的任务称为前台任务;活动窗口之外的其他窗口都是非活动窗口,它们所对应的任务均为后台任务。操作系统只把用户输入的信息传送到活动窗口对应的前台任务中去。
Windows中前台任务只能有1个,后台任务的数目原理上可以不受限制。后台任务只要条件具备都可以处于运行状态,如收发邮件、播放音乐等,而且,这些后台任务都可以在屏幕上显示各自的会话窗口,并及时更新其内容。
Windows操作系统采用并发多任务方式支持系统中多个任务的执行。所谓并发多任务,是指不管是前台任务还是后台任务,它们都能分配得到CPU的使用权(尽管时间很短),因而都可以同时运行。需要注意的是,从宏观上看,这些任务是在“同时”执行,而微观上任何一个时间点只有一个任务正在被CPU执行有多个内核的CPU,理论上可以同时有多个任务分别被不同的内核执行。,即多个程序的运行其实是由CPU快速轮流执行的。因此,如果后台运行的是音乐播放、文件打印、计算、收发邮件等任务,前台是需要人工操作的文字处理或交互式绘图任务,则CPU工作效率就很高;而如果同时启动了电子表格、字处理程序和绘图程序,它们都以交互方式工作,只有一个任务可处于前台状态接收用户的输入,其他都在后台一遍遍地查询有无输入而又得不到用户的输入,因此虽然启动了多个任务,但CPU的工作效率却并不高。
为了支持多任务处理,Windows中有一个处理器调度程序负责把CPU分配给各个已经启动且具备了运行条件的任务。调度程序一般采用按时间片轮转(比如1/20秒)的策略,即每个任务都能轮流得到1/20秒的CPU时间运行其程序,在时间片用完之后,调度程序再把CPU交给下一个任务,就这样一遍遍地进行轮转。只要时间片结束,不管任务有多重要,也不管它执行到什么地方,正在执行的任务就会被强行暂时停止执行,直到下一次得到CPU的使用权后再继续执行。
实际上,操作系统本身也有若干程序是与应用程序同时运行的(如图37中的后台进程),它们一起参与CPU时间片的分配。当然,不同程序的重要性不完全一样,它们获得CPU使用权的优先级也不一样,所以处理器的调度需要采用一定的策略。
3. 智能手机的多任务处理
目前智能手机等便携式设备屏幕较小,难以像PC那样支持多窗口显示,存储器容量也比较紧张,CPU性能(如工作频率)又受到限制,再加上电池容量有限,必须把降低功耗放在重要位置,因此与Windows相比,其多任务处理有其自己的特点。
PC的多任务处理确实有多个App在同时运行,即使从前台切换到后台,只要条件具备任务仍继续运行。而智能手机则不同,以iOS系统为例,用户单击Home键时系统退回桌面并将正在运行的任务切换到后台状态并暂停执行(称为“挂起”),如果重新点击该App的图标,它将立刻恢复到退出之前的状态继续运行。若内存容量紧张,OS可以将后台中挂起的任务清理出去(即终止该任务),使前台任务获得更多的存储空间。否则,如果也像PC那样几乎无限制地让许多后台任务继续运行,内存容量就成问题,电池的电量也会很快耗尽(若用户双击Home键,iOS可以显示出处于后台状态的所有任务,点击某个任务则可将它切换为前台运行状态,向上刷屏则可使之退出内存终结该任务)。
这种多任务处理的做法显然有许多不足,iOS的弥补措施是对不同App做不同的处置。即:有些转入后台状态的App进入挂起状态,有些转入后台的App允许继续运行。例如,音频播放、位置检测(如谷歌地图)、IP电话(如Skype)、蓝牙通信、软件下载等App切换到后台后,它们仍可继续运行;还有些App(如Safari浏览器、Mail邮件程序)允许最多申请10分钟的后台运行时间,时间一到就会被OS挂起。这样,用户可以一面浏览网页一面听音乐,一面下载软件一面查看文档,给用户提供了与使用PC类似的多任务处理的体验。
安卓系统的多任务处理与Windows系统更接近一些,被转入后台状态的任务虽然已经从屏幕上退出,但只要条件具备它们仍在后台运行。例如浏览器正在下载文件时被切换到后台,浏览器还会在后台继续下载而不被打断。只有在内存空间告急的时候,安卓系统才会终结该任务释放它所占用的资源。但这种做法最大的问题就是有太多后台任务,有些没必要的任务也在后台运行(甚至是有害的恶意软件),既费电,而且会导致前台任务运行迟钝。
从严格意义上讲,智能手机操作系统的多任务处理,只是一种有限的多任务机制,除了少数例外,大多数程序进入后台状态时,都要交出硬件资源(CPU、屏幕等)。即使是那些必须在后台运行的任务(如通信、音乐播放等),采用的也是一种“守护”模式,它们只在需要使用CPU时(有电话进来时或者进入下一首曲目时),才提交使用CPU的请求,并非一直在通过时间片轮流使用CPU资源。
3.2.3存储管理
1. 存储管理的任务
虽然计算机的内存容量不断扩大,但限于成本和空间等原因,其容量总有限制。在
运行规模很大或需要处理大量数据的程序时,内存往往不够使用。特别是在多任务处理时,存储
器被多个任务所共享,矛盾更加突出。因此,如何对存储器进行有效的管理,不仅直接影响到存储器的利用
率,而且还对系统的性能有重大影响。所以,存储管理是操作系统的一项很重要的任务。
操作系统运行时,内存(RAM)空间一般划分为两大部分:一部分是操作系统区,存放操作系统内核和相关数据;另一部分是用户区,存放正在执行的应用程序和数据。当用户启动某个任务时,OS必须将该任务在辅助存储器中所对应的程序代码及相关数据(例如Word程序和需要编辑的文稿)装入内存,然后才能由CPU运行和处理。由于支持多任务处理,所以系统中有许多任务(有的是前台状态,有的是后台状态),每个任务在内存的用户区中都有各自专属的存储区域(图38)。
图38操作系统运行时内存空间的布局
那么OS如何把内存的用户区分配给各个任务呢?最笨的方法是固定分区方法,即每个任务都分配一个大小固定、位置固定的区域。显然这种方法效率很低,任务数目受限制,任务可用的存储空间也受到约束。另一种方法是可变分区,具体做法是每个任务按需分配各占1个分区,位置可变,大小也可变,这种做法虽然克服了第1种方法的一些限制,但任务有时启动有时终止(终止时要收回分配的内存),任务运行过程中对于存储空间的需要又是动态变化的,有时要增加,用毕则归还,因此内存用户区会不断产生碎片,这些碎片需要回收和合并才能再次使用,降低了内存空间的使用效率。
尽管现在PC和智能手机中内存的容量不断增大,已经达到GB数量级的水平,但仍然不能保证有足够的空间来满足多任务处理的需要。因此,操作系统中存储管理的任务是:
● 为每个任务分配内存空间,任务终止之后再回收内存空间。
● 对内存空间进行保护。例如,保护操作系统所在区域不被应用程序随意访问和修改,保护每个任务的私有区域不被其他任务随意访问和修改等。
● 提供内存空间共享。允许一些存储区域被多个任务共享访问,提高内存的利用率。
● 对内存空间进行扩充,使任务的存储空间不受实际的物理内存容量大小的限制。
2. 虚拟存储技术
操作系统中解决存储管理的有效方案是虚拟存储器(virtual memory, VM)技术,虚拟存储技术也称为虚拟内存技术。它的基本思想如下:内存按固定大小(例如4KB)分成一个个“框”(frame),操作系统则把每个任务所对应的程序及其数据划分为一组连续的“页面”(页的大小与内存的框相同),这些页面就构成一个虚拟存储空间,每个任务在各自的虚拟存储空间中运行,互不干扰,大小则不受内存容量的限制。
当用户启动一个任务向内存装入程序及数据时,操作系统只将当前急需执行的一部分程序和数据页面装入到内存中处于空闲状态的框内,其余页面放在硬盘提供的虚拟内存中(哪些页面装入内存的哪个框中由操作系统记录在“页表”中),然后开始执行程序。
程序执行过程中,CPU查看页表,如果需要执行的指令或访问的数据已经装在内存中,则访问内存进行处理;如果不在物理内存中(称为缺页),则由CPU通知操作系统中的存储管理程序,将所缺的页面从辅存的虚拟内存装入到实际的物理内存,然后再继续执行程序。当然,为了腾出一些框来存放将要装入的程序(或数据),存储管理程序也应将物理内存中暂时不使用的页面调出保存到辅存的虚拟内存中。页面的调入和调出完全由存储管理程序自动完成(图39)。这样一来,从用户(包括程序员)角度来看,计算机所具有的内存容量比实际的内存容量大得多,这种技术称为虚拟存储器。
图39虚拟存储器的工作过程
在Windows操作系统中,虚拟存储器是由计算机中的物理内存(主板上的RAM)和硬盘上的虚拟内存(一个名为pagefile.sys的大文件,称为“页面文件”或“交换文件”)联合组成的。操作系统通过在物理内存和虚拟内存之间来回地自动交换程序和数据页面,达到两个效果:第一,开发应用程序时,每个程序都在各自独立的虚拟存储空间里进行编程,几乎不用考虑物理内存具体位置和容量大小的限制;第二,计算机运行时,用户可以启动许多应用程序运行,其数目不受内存容量的限制(当然,容量小而同时运行的程序很多时,响应速度会变慢,甚至死机),也不必担心它们会发生冲突。
Windows系统中的虚拟内存(pagefile.sys文件)通常位于系统盘的根目录下。用户可以自行设置虚拟内存的大小(一般为物理内存的1~2.5倍),也可以指定虚拟内存放在哪个硬盘(或硬盘分区)中。
iOS操作系统和安卓操作系统的存储管理原理上与Windows系统大同小异,不过由于智能手机的主存储器容量不大(6GB左右),运行中更易发生容量紧张的情况,操作系统需及时把部分任务放到虚拟内存(对于可重新装入的程序和数据,直接从内存清除即可)。与Windows不同的是,安卓系统中虚拟内存不是文件,而是一个称为SWAP的专门的分区。
3.2.4文件管理
1 文件及其属性
计算机(智能手机)中的信息是多种多样的,有的是程序,有的是数据,它们又分为多种不同的类型,不使用时都存放在辅助存储器中,使用时才装入内存供CPU运行和处理。辅助存储器有多种,如硬盘、光盘、U盘、存储卡等,它们大多适合于批量数据的存取而不适合单个字节的存取。怎样才能对计算机中的信息进行统一高效的管理?怎样实现信息资源的共享和保护?解决方案是引入“文件”的概念。
文件是存储在辅助存储器中的一组相关信息的集合。计算机中的程序和数据都组织成为文件存放在辅助存储器中,并以文件为单位进行存取操作。例如一个应用程序、一张照片、一支歌曲等,它们都对应着辅助存储器中的一个文件,并以文件为单位进行存取。不同计算机之间也以文件为单位进行信息交换。
每个文件都有自己特定的名字,称为文件名。为了区分文件的类型,文件名的最后几个(一般是3或4个)英文字母用于指出文件的具体类型,它与文件主名之间用小数点“.”隔开,这几个英文字母称为文件扩展名或文件后缀。例如,Windows中可执行程序的文件扩展名是exe,图像文件的扩展名是jpg,音频文件的扩展名是mp3,视频文件的扩展名是mp4,文本文件的扩展名是txt等(表32)。
表32常用文件类型和扩展名
类别文件类型文件扩展名(类型名)举例
程序
可执行文件(包括App)exe(Windows) , app(iOS) , apk(安卓)
应用程序扩展dll(Windows)
数据
文本/文档文件txt, doc, docx, pdf, ppt, pptx
声音文件wav, mid, voc, mp3, aac, flac, wma
图像文件bmp, jpg, gif, tif, wmf, png, raw
视频文件avi, mpg, mp4, mov, rmvb, mkv, flc, fli
网页文件html, htm, mht, mhtml, xml, jsp, asp, php
从表32中可以看出,同类数据文件(如图像文件、视频文件等)的扩展名通常不止1种,不同扩展名的数据文件其内部格式不同,一般需要使用不同的应用程序进行处理。另外,大多数数据文件在不同操作系统中是通用的,因而PC和智能手机
相互间可交换文档、音乐、图片、视频等各种数据文件,而可执行程序(应用程序)的文件扩展名则各不相同,Windows中称为exe,iOS系统中是app,安卓系统中则为apk。这是因为三个操作系统互不兼容,在PC上运行的应用程序不能在iOS或安卓系统上运行,反之亦然。
用户和App一般都通过文件名来使用文件。在Windows、安卓和iOS中,文件名可以长达200多个中西文字符(含扩展名),用户命名文件时应选择有意义的词或短语,以帮助记忆。
每个文件除了它本身包含的内容(程序代码或数据)之外,为了文件管理的需要,还包含有关于该文件的若干说明信息。大部分操作系统使用的文件说明信息包括:文件主名、文件扩展名、文件在辅助存储器中的位置、文件大小、文件创建时间、修改时间、文件属性等。应该注意的是,文件的说明信息和文件的具体内容是分开存放的,前者集中保存在该文件所属的目录(文件夹)中,后者则保存在磁盘的数据区内(图310)。
图310文件目录和文件内容在辅助存储器中的存放
文件说明信息中的文件属性在文件管理中有重要作用。例如在Windows中,它用于指出该文件是否为系统文件、隐藏文件、存档文件或只读文件。若标注为系统文件,表示该文件是操作系统自身所包含的文件,删除时系统会给出警告,资源管理器若不特别设置为“显示全部文件”(在“文件夹选项”对话框中设置)时不会在文件列表中显示出来;若标注为只读文件则表示该文件只能阅读,不允许进行修改,如进行修改操作系统将给出提示。此外,文件还可以具有“压缩”“加密”和“编制索引”等属性,前两个属性分别用来指出该文件的数据在保存到辅助存储器时是否需要进行数据压缩(为了节省磁盘空间)和数据加密(不让无关用户了解文件的内容),后一个属性可以帮助编制索引,以利于文件的快速查找。
2 文件目录(文件夹)
计算机中有数以千百计的文件,它们都存放在辅助存储器中。为了能方便地查找和使用文件,操作系统、应用软件和用户总是把所有文件分门别类地组织在各个文件目录中(Windows把文件目录称为文件夹)。Windows、安卓和iOS三种操作系统都采用树状结构来组织文件。在这种结构中,每一个磁盘(或磁盘上的每个分区)都有一个根目录(根文件夹),根目录包含若干文件和子目录,这些子目录又可以包含文件和下一级子目录,依次类推而形成了多级的树状文件目录(文件夹)结构。
每个磁盘分区(也称为逻辑驱动器)都是一颗文件树[图311(a)],树干是根目录,树枝是子目录,树叶就是子目录中所存储的文件。计算机中的每个文件都有其确定的位置,用户要指定某个文件时,除了给出它的文件名之外,还必须指出该文件所在的位置。文件的位置由存放文件的驱动器号和文件路径来确定。因此,定位1个文件时需要给出3个参数:
驱动器号(盘符):\文件路径\文件名
其中的文件路径是:从根目录到文件所在目录所顺序经过的一串子目录(用“\”相互隔开)。例如,图311(b)的文件树在B盘中,则文件5在计算机中的位置是:
B:\目录2\目录4\文件5(下划线标出的部分是文件路径)
图311磁盘分区与树状文件目录结构
树状文件目录(文件夹)既可以帮助用户把不同类型和不同用途的文件分类存储,又方便了文件的查找,还允许不同文件夹中的文件使用相同的名字。
与文件相似,每个文件夹有自己的名字,但不使用扩展名。它也有若干与文件类似的说明信息,除了文件夹名字之外,还包括存放
位置、大小、创建时间、文件夹的属性(存档、只读、隐藏,以及“压缩”
“加密”和“编制索引”)等,文件夹的属性刻画了该文件夹中所有文件的共性特征。
使用文件夹的另一个优点是它为文件的共享和保护提供了方便。以Windows操作系统为例,任何一个文件夹均可以设置为“共享”或者为“非共享”,前者表示该文件夹中的所有文件可以被网络上的其他用户(或共同使用同一台计算机的其他用户)共享,后者则表示该文件夹中的所有文件只能由用户本人使用,其他用户不能访问。当文件夹被设置成为共享时,用户还可以规定其他用户的访问权限,例如文件只能读不能修改,或者既可读也可以修改,还可以规定访问文件时是否需要使用口令等。这些措施在一定程度上提高了文件的安全性。
3 文件管理
操作系统中文件管理的主要职责之一是如何在辅助存储器中为创建(或保存)文件而分配存储空间,为删除文件而回收空间,对空闲空间进行分配。这些任务都是由文件管理程序完成的。阅读材料3.1以Windows FAT文件系统为例介绍了如何对硬盘空间进行管理,如何实现对文件的各种操作(如创建、删除、打开、关闭、读、写、重命名等),阅读材料3.2对Windows和Android的文件系统做了简单介绍。
3.2.5设备管理
计算机通常配置有多种输入/输出(I/O)设备,用以输入/输出数值、文本、图像、声音、视频等各种形式的信息。为了方便、有效、可靠地完成输入/输出操作,操作系统中的“设备管理”模块负责对用户或应用程序的I/O操作进行统一的管理。
为便于OS上层软件和应用程序进行I/O操作,设备管理模块对各种物理I/O设备的硬件操作细节进行了屏蔽和抽象,以统一的逻辑I/O设备的形式向OS上层软件和应用程序提供服务。具体做法就是为每个物理设备配置驱动程序,由驱动程序负责把逻辑设备的I/O操作转换为具体物理设备的I/O操作。这样一来,不同规格和性能参数的I/O设备(如各种不同的打印机)通过安装各自的设备驱动程序,就能使系统和应用程序不需要进行任何修改即可直接使用该设备。通常,I/O的生产厂商在提供硬件设备的同时也提供该设备的驱动程序。
为确保I/O设备能有条不紊地为系统中运行的多个任务所共享,设备管理模块还必须解决设备的命名、登记、分配、回收及调度。为了使设备利用率达到最优,设备管理模块将根据每个设备的特点来全局调度和安排设备的操作。例如,对硬盘的多个读写要求可以进行排序,使得每次读写操作的磁头移动距离都尽可能短。对于独占设备(如打印机、绘图仪等),可以采用假脱机(SPOOLing)技术把每一个要打印或绘制的文档,按“先来先服务”的顺序将其存放在队列中,然后以后台运行方式依次进行打印或绘图,这就解决了此类慢速独占设备的共享使用问题。
Windows操作系统中有一个工具程序“设备管理器”,用户可以按类型或按连接方式来寻找系统已安装的设备,查看该设备的有关信息和当前工作状态,也可以修改或重新设置设备的操作环境。
3.2.6常用操作系统介绍
操作系统从20世纪60年代出现以来,早期曾经流行的批处理系统现在已不多见。目前个人计算机使用的操作系统一般都属于单用户多任务处理功能,而安装在网络服务器上运行的“网络操作系统”则具有多用户
多任务处理的能力。一些特殊的应用系统,如军事指挥和武器控制系统、电力网调度和工业控制系统、银行证券交易信息处理系统等,它们对外部事件能快速做出响应,对计算机完成任务有严格的时间约束,具有很高的可靠性和安全性,这些系统所使用的操作系统称为“实时操作系统”。此外,嵌入式计算机应用(这种应用中计算机软硬件只是设备或装置中的一个组成部分,它们是为该设备或装置服务的)越来越普遍,这些应用系统所运行的是一种快速、高效、具有实时处理功能、代码又非常紧凑的“嵌入式操作系统”。下面仅对目前PC和服务器中使用的操作系统作简单介绍。
1 Windows操作系统
Windows操作系统是一种在PC上广泛使用的操作系统。它由美国微软公司开发,支持多任务处理和图形用户界面,使系统效率显著提高,用户操作大为简化。Windows是系列产品,微软公司先后推出了多种不同的版本。
20世纪流行的Windows 9X共有3个产品,Windows 95、Windows 98以及Windows Me,它们都建立在MSDOS基础上,属于16位/32位的混合操作系统。
从1989年起,微软公司开发了一个完全脱离MSDOS的全新Windows内核(称为NT内核)的操作系统——Windows NT,其目标是面向商业用户,它有较高性能,并达到一定的安全性标准。Windows NT的进一步发展是Windows 2000系列,包括工作站版本和服务器版本,后者适用于各种不同规模、不同用途的服务器。
2001年微软公司推出了Windows XP操作系统,它既适合家庭用户也适合商业用户使用。Windows XP具有丰富的音频、视频处理和网络通信功能,最大可以支持4GB内存和两个CPU。此外,它还加强了防病毒功能,增加了一些系统安全措施(例如Internet防火墙,文件加密等)。Windows XP非常成功,虽然微软公司已经从2014年4月开始取消了对XP的所有技术支持,但直到现在还有一些用户仍在使用Windows XP。
2006年底开始,微软公司推出称为Windows Vista的操作系统。由于对硬件配置要求较高,运行速度较慢等原因,用户对Vista的反响远没有达到公司的预期。随即,微软公司在2009年推出了Vista的“改善版”——Windows 7,它在系统启动和程序运行方面比Vista有明显改进,并提供对多个显示卡(屏)的支持,改善了多核处理器的运行效率,用户界面也比XP和Vista有进一步的改进。Windows 7既有32位版也有64位版本,促进了个人电脑从32位系统向64位系统的过渡。
微软公司于2012年推出了Windows 8操作系统。Windows 8既支持PC(x8664架构),也支持平板电脑(x86架构或ARM架构),它提供了对触摸屏的支持,用户界面变化较大,分传统界面和新用户界面(称为Metro界面)两种,可以按用户的喜好自由切换。
新的Windows 8.1版对硬件配置的要求并不比Windows 7高。它有标准版、专业版和企业版之分,另有一个Windows RT版本是专门为采用ARM处理器的平板电脑和智能手机开发的,它并不兼容x86软件,但它附带有专为触摸屏设计的Word、Excel、PowerPoint和OneNote等应用软件。
2015年7月微软发布了Windows 10操作系统,它为所有硬件提供一个统一的平台,能无缝运行于PC(x86架构)、智能手机(ARM架构)、平板电脑(ARM和x86架构)及服务器等多种硬件平台,是跨平台最多的操作系统。
Windows 10提供了新的浏览器软件(Microsoft Edge),支持虚拟桌面,改善多任务管理和窗口功能,采用更加人性化的设备登录方式。不过,它在保护用户隐私方面受到不少用户的指责。Windows 10有家庭版、专业版、企业版、教育版、移动版、移动企业版和物联网核心版七个版本。目前活跃用户数约10亿,2020年6月发布最新版本2004(20H1)。
微软公司宣称,Windows 10将是Windows操作系统品牌的最后一个版本,Windows将不再有新版本问世。这并非意味着微软不再开发Windows,相反,他们是将过去每隔几年才更新一次的系统开发方式,改为每年一到两次的持续更新,每一个更新版本都是免费的。这除了加快了新版本的更新速度之外,还提高了操作系统正版率,对用户和微软都是一个双赢的局面。但问题是Windows 10的更新比较多,而且每次更新安装起来都比较麻烦。因为有时更新安装的不是普普通通的“补丁”,而是带有大量功能更新和底层技术迭代的新系统。最新的Windows 10,与2015年7月正式发布的1507版相比,已经有了很大改变。
Windows操作系统也经常受到用户的批评。问题主要是两个方面:可靠性和安全性。Windows系统出现不稳定的情况比其他操作系统多,系统对用户操作的响应往往变得越来越慢,甚至不响应(死机),必须重新启动系统才能恢复正常。此外,Windows比其他操作系统更容易受到病毒、蠕虫、木马等的攻击和侵扰,它存在的安全漏洞容易造成信息泄漏,金融、政务、电力、交通等关键应用的用户尤其需要引起注意。
2 Android(安卓)系统
Android是一个以Linux内核为基础的开放源代码的操作系统(部分为专用组件),现在由Google公司为首的开放手持设备联盟OHA开发和维护。Android操作系统的内核具有典型的Linux系统功能。自2008年发布以来,几乎每年都有新版本发布,至2020年6月的最新版本是Android 10。安卓系统最初为智能手机而开发,后来逐渐拓展到平板电脑及其他数码设备(包括电视机、游戏机、数码相机等)。
安卓把系统分为4层(图312)。最底层是各种驱动程序和Linux内核。第2层是系统库和安卓的运行环境。系统库中有大量中间件;运行环境中的核心库提供了Java语言API中的大多数功能函数,也包含了Android的一些核心API。ART是一种Java虚拟机,使用Java语言编写的App源程序经编译后必须转换成dex格式才能在ART虚拟机上执行。第3层是应用软件框架,它包含了许多可重用和可替换的软件组件。例如用户界面程序中的各种控件(文本框、按钮、列表等)。Android系统简化了组件的重用方法,为快速进行App开发提供了很多方便,应用软件框架是Android应用程序开发和运行的重要基础。第4层是应用软件(iOS系统也一样,图313中没有画出)。Android系统本身及智能手机开发商提供了许多常用的应用程序,用户还可以下载和安装第三方软件开发商的其他应用软件。
4
应用软件
(主屏幕、搜索、电话、联系人、浏览器、邮件、日历、相机、地图等)
3
Java应用软件接口(API)框架
(活动管理、窗口管理、内容提供、视图系统、通告管理、包管理、电话管理、资源管理、位置管理、传感器管理、Google Talk服务等)
2
系统库:C/C++函数库、图像/音频/视频播放与存储的多媒体框架、2D图形SGL、安全通信SSL、3D绘图OpenGL、显示管理Surface Manager、小型SQL数据库、网页浏览器核心WebKit、点阵字和矢量字绘制工具FreeType等
Android runtime
安卓运行时(ART)
(核心库)
硬件抽象层(HAL)
1
Linux内核
(内存管理、进程管理、安全管理、网络协议栈、电源管理等核心服务)
(各种驱动程序:显示器、键盘、音频、蓝牙、USB、相机、WiFi、闪存卡等)
图312Android系统的软件架构
安卓应用程序的后缀是APK(或apk),APK是Android package的缩写,即Android安装包,它是zip格式(压缩格式),安装时经过解压缩得到dex文件才能由ART虚拟机运行。每一个App运行在一个ART虚拟机里,而每一个虚拟机都是系统中的一个独立进程,各有自己的虚存空间,从而最大限度地保护App的安全运行。
应用程序(App)都是利用Android软件开发工具包(SDK)编写的,采用Java编程语言。Java可以与C语言或C++结合使用,并可共享不同的运行时库。
2012年Google公司开始将Android系统的部分组件(如Google Play服务)和一些核心应用程序与操作系统脱钩,不再作为开源程序。Google公司通过Play服务添加新的系统功能和开发的应用程序需经过Google Play授权购买或下载。
我国内地销售的国产或进口的Android智能手机,由于多方面的原因,一般都不提供Android系统所附带的用户界面和应用程序,而是替换为手机厂商自行开发的用户界面和应用程序。如华为的EMUI(emotion user interface)、小米的MIUI、OPPO的ColorOS等,它们以用户为中心,让智能手机的使用变得更简单、更方便、更人性化、更有乐趣,其水准可与安卓原生系统和iOS系统相媲美。
Android操作系统的开放性和可移植性,尽管它大多搭载在使用32位和64位ARM架构CPU的硬件设备上,但它同样也可支持使用x86架构CPU的硬件产品。所以,它已经广泛应用在各种数码电子产品中。即使是苹果公司的iOS设备,比如iPhone、iPod Touch以及iPad产品,也都可以安装Android操作系统,并且可以通过双系统启动工具来运行Android操作系统。
3. iOS操作系统
iOS(原名iPhone OS)操作系统是苹果公司开发的操作系统,早先用于iPhone手机,后来也用于iPod touch播放器、iPad平板电脑和Apple TV播放器(网络电视机顶盒)。它只支持苹果自己的硬件产品,不支持非苹果硬件设备。
iOS是苹果公司MAC电脑(包括台式机和笔记本)使用的OS X操作系统经修改而形成的。OS X和iOS的内核都是Darwin。与Linux一样,Darwin也是一种“类Unix”系统,具有高性能的网络通信功能、支持多核CPU和多种类型的文件系统。
iOS操作系统分为4个层次[图313(a)]:操作系统内核层,内核服务层(the Core Services layer),媒体层(the media layer)和触控界面层(the cocoa touch layer)。操作系统内核的功能与Windows、Linux等内核的功能相似,负责处理器管理、存储管理、文件管理和设备管理。其他三层中包含了许多应用框架(application framework)、组件和函数库。高层的框架建立在低层框架上,低层框架为高层框架和应用程序提供服务。所谓框架,它是一些应用程序的半成品,是一组可复用的软件组件,供开发人员用来构建应用程序。应用程序大多在框架基础上进行开发(类似于使用混凝土梁、楼板、墙板等预制件盖房子),它们也都在这些框架所提供的服务和功能的基础上运行。例如,触控界面层中包含的UIKit框架可以用来为应用程序构建和管理用户界面,如处理用户的触摸操作、在屏幕上显示文本和Web内容、构建定制的界面元素等。
所以,从应用程序的角度来看,iOS 扮演着应用程序和底层硬件中介的作用,应用程序不能直接访问硬件,必须与iOS提供的系统接口进行交互。系统接口转而又去与适当的驱动程序打交道。这种分层结构既减少了应用程序开发的难度,也可以防止应用程序修改底层软硬件,提高系统的安全性[图313(b)]。
图313iOS操作系统的组成
iOS是继Android系统全球第二大最受欢迎的移动操作系统,市场占有率接近1/4,但仍远低于Android系统。iOS的主要版本通常每年发布一次。目前的最新版本是2019年6月4日发布的iOS 13。
iOS操作系统内置了苹果公司自行开发的许多常用的App,也可以安装运行第3方开发的应用软件,但这些软件必须通过苹果应用商店(App Store)审核。App Store是苹果公司所创建和维护的应用程序发布平台,软件开发人员将开发的软件和游戏上传到App Store审核并委托它发售。截止到2017年1月,苹果应用商店发布的App已经超过220万个。
与当前多数安卓手机一样,苹果手机支持语音识别、指纹识别、人脸识别的应用。用户可以通过语音输入信息和进行查询操作,用指纹和人脸进行身份认证。与安卓系统一样具有推送通知的功能,即不管应用程序是否在运行,均可通知用户某个应用程序(如短信、微信、邮件等)有新的消息。通知的形式有:发送文本通知,发出声音提醒,也可以在App图标上添加一个数字标记。
正常情况下iOS操作系统的用户身份不是系统管理员,所以权限较低,有些操作不允许进行。所谓“越狱”(jailbreaking)就是让用户获取iOS最高权限(用户身份改变为“根用户”,相当于Windows中的管理员)。完成越狱后用户就能完全掌控iOS系统,随意修改系统文件,安装插件,下载安装一些App Store所没有的软件。不过越狱有一定风险,越狱后安装的应用程序会获取系统权限,也许会给设备带来损害。如果进行了“不完美越狱”,那么设备将无法重新启动。苹果公司的政策是对越狱的设备不再保修。另外,iOS的每一次版本更新都会清除所有的非法软件,使越狱无效。
复习题
(1) PC加电启动Windows操作系统的主要步骤有哪些?
(2) 操作系统由哪些部分组成,操作系统内核和操作系统发行版有什么区别?
(3) 多任务处理中前台任务和后台任务有什么不同?
(4) 操作系统中存储管理的任务是什么,大多采用什么方案来解决?
(5) 从用户的角度看,计算机中的文件是什么?可进行哪些操作?
3.3算法与程序设计语言
人们常说:“软件的主体是程序,程序的核心是算法。”这是因为要计算机解决某个问题,首先必须确定该问题的解决方法与步骤,然后再据此编写程序并交给计算机执行。这里所说的解题方法与步骤就是“算法”,采用某种程序设计语言对处理的对象和采用的算法所进行的描述就是程序。
3.3.1算法
1. 什么是算法
图314算法的流程图表示
通俗地说,算法(algorithm)就是解决问题的方法与步骤。例如有币值相同的三个硬币(A、B和C),其中有一个是伪造的,另两个是真的,伪币与真币重量略有不同。现在提供一架天平,如何找出伪币呢?方法很简单,只要按图314所示的步骤两两比较其重量,就可找出伪币了。
算法一旦给出,人们就可以按算法去解决问题,因为解决问题所需要的智慧(知识和原理)已经体现在算法之中,人们唯一要做的就是严格地按照算法的指示去执行。这就意味着算法是一种将智慧与他人共享的途径。一旦有人设计出解决某个问题的有效算法,其他人无须成为该领域的专家,只需依葫芦画瓢就可以解决同样的问题。
在计算机学科中,算法指的是用于完成某个信息处理任务的有序而明确的、可以由计算机执行的一组操作(或指令),它能在有限时间内执行结束并产生结果。尽管由于需要求解的问题不同而使得算法千变万化、简繁各异,但所有的算法都必须满足下列基本要求:
(1) 确定性。算法中的每一步操作必须有确切的含义,即每一步操作必须是清楚明确的,无二义性的。
(2) 有穷性。算法总是在执行了有限步的操作之后终止。
(3) 能行性。算法中每一个操作都是计算机可执行的,即在计算机的能力范围之内,且在有限的时间内能够完成。
(4) 输出。至少产生一个输出(包括参量状态的变化)。
算法对于计算机特别重要。因为计算机硬件只是一个被动的执行装置,它本身能完成的操作类型很有限且非常原始和简单,如果不告诉硬件如何去做,它其实什么问题也解决不了。通过把算法表示为程序,程序在计算机中运行时计算机就有了“智能”。由于计算机速度极快,存储容量又很大,它能执行非常复杂的算法,解决各种复杂的问题。
但是,如果对某个问题(例如预测股市中某只股票明天是涨还是跌)无法给出计算机算法,那么计算机也无能为力。计算机不是万能的。
算法的一个显著特征是,它解决的是一类问题而不是一个特定的问题。例如我们在日常使用计算机的过程中,经常会对文件夹中的文件或表格中的数据进行排序,以便把文件按序(按文件名、或按扩展名、或按文件大小、或按创建日期等)列表显示。所使用的排序算法对文件的个数(100个还是1000个甚至更多)和文件的名字(中文还是西文)等都应该没有什么限制。
开发计算机应用的核心是研究和设计解决实际问题的算法,并将其在计算机上实现(即开发成为软件)。关于算法,需要考虑以下三个方面的问题,即如何确定算法(算法设计)、如何表示算法(算法表示)以及如何使算法更有效(算法的复杂性分析)。
2. 算法设计举例
一般而言,使用计算机求解问题通常包括如下几个步骤:
(1) 理解和确定问题。
(2) 寻找解决问题的方法与规则,并将其表示成算法。
(3) 使用程序设计语言表达(描述)算法(编程)。
(4) 运行程序,获得问题的解答。
(5) 对算法进行评估以求改进。
上述过程中的(2)就是设计算法。设计一个计算机算法需要注意几点:① 必须完整地考虑整个问题所有可能的情况;② 算法的每一步骤必须是计算机能够执行的;③ 必须在有限步骤内求出预定的结果。
人们通过长期的研究开发工作,已经总结了许多基本的算法设计方法,例如枚举法、迭代法、递推法、分治法、回溯法、贪心法和动态规划法等,但一些复杂问题的算法设计往往相当困难。
算法的设计一般采用由粗到细、由抽象到具体的逐步求精的方法。例如,要对n个整数从小到大进行排序,首先把整数分成两组,一组是未排序的,另一组是已排序的,然后:
(1) 从未排序整数中选一个最小的,作为已排好序的第一个数。
(2) 从剩下的未排序整数中选出最小的,放在已排好序的最后一个数后面。
(3) 循环执行(2),直到未排序的整数都处理完毕为止。
上述过程可以通过图315来帮助理解(假设n=7,共需循环6次。粗线左面表示已排序的整数,右面是尚未排序的数)。
4937825(数组的初始状态)
2937845(第1次循环之后)
2397845(第2次循环之后)
2347895(第3次循环之后)
……
2345789(第6次循环之后——结束状态)
图315整数排序算法
然后进行细化。例如,把这n个整数组织成为一个数组A,每个整数是数组A的一个元素,排好序的整数仍然存放在A中,在“循环执行”的过程中数组里的元素从前往后逐步排好次序,每次“循环”只要对数组中未排序的元素进行比较,等等。该算法可描述为:
设置i初值为1,循环执行下列操作,直到i=n:
{确定A[i],A[i+1]…A[n]中最小整数的位置,假设为j;
交换A[i]和A[j];
i=i+1;
}
如果再进一步细化以上步骤,还可以具体给出如何从数组中选最小的整数,如何交换两个整数等,最终即得到求解该问题的精确描述的算法。
除了排序之外,“查找”也是数据处理应用中经常使用的算法。顺序查找和二分法查找是两种最基本的查找算法,具体方法读者可参阅阅读材料3.6。
3. 算法表示与算法分析
算法的表示可以有多种形式,如文字说明、流程图表示、伪代码(一种介于自然语言和程序设计语言之间的文字和符号表达方法)和程序设计语言等。
以找出伪币的算法为例,其算法可以用文字描述如下:
“比较A与B的重量,若A=B,则C是伪造的;否则再比较A与C的重量,若A=C,则B是伪造的;否则A是伪造的。”
这种表示方法的缺点是很难“系统”并“精确”地表达算法,且叙述冗长,别人不容易理解(设想如果不是3个硬币而是10个或者任意一个,如何描述?)。
前面图314是算法的流程图表示,显然它比文字描述简明得多。但当算法比较复杂时,流程图也难以表达清楚,且容易产生错误。
用某种具体的程序设计语言描述一个算法,也会带来很多不便。因为按程序语言的语法规定,往往要编写很多与算法无关而又十分烦琐的语句,如变量说明、I/O格式描述等。因此,为了集中精力进行算法设计,一般都采用类似于自然语言的“伪代码”来描述算法。
一个问题的解决往往可以有多种不同的算法。以排序算法为例,上面介绍的算法称为“选择排序”算法,它只是许多排序算法中的一种。人们在不同情况下,对算法可以有不同的选择。一般而言,算法的选择,除考虑其正确性外,还应考虑以下因素:
(1) 执行算法所要占用计算机资源的多少,包括时间资源和空间(存储)资源两个方面;
(2) 算法是否容易理解,是否容易调试和测试等。
有关算法分析的内容,可参看阅读材料3.6的介绍。
3.3.2程序设计语言
语言是用于通信(交流)的。人们日常使用的自然语言用于人与人的通信,而程序设计语言则用于人与计算机之间的通信。计算机是一种电子机器,其硬件使用的是二进制语言,与自然语言差别太大了。程序设计语言是一种既可使人能准确地描述解题的算法,又可以让计算机也很容易理解和执行的语言。程序员使用这种语言来编制程序,精确地表达需要计算机完成什么任务和具体的执行步骤,计算机就按照程序的规定去完成任务。程序设计语言已经历了60多年的发展,其技术和方法日臻成熟。下面介绍程序设计语言的基本知识。
程序设计语言按其级别可以划分为机器语言、汇编语言和高级语言三大类。
1 机器语言
机器语言就是第2章介绍过的计算机的指令系统。用机器语言编写的程序可以被计算机直接执行。但由于不同架构CPU的指令系统不同,在一种计算机上编写的机器语言程序,在另一种不同CPU的计算机上也许无法运行。更有甚者,机器语言程序全部用二进制(八进制、十六进制)代码编制[图316(a)],人们不易记忆和理解,也难于修改和维护,所以现在人们已不再用机器语言编制程序了。
安装在计算机中的操作系统和各种应用程序,它们都是用二进制代码表示的机器语言程序。例如智能手机操作系统的内核部分,通常都以映像文件(扩展名为img)驻留在辅助存储器中,这些img文件就是机器语言程序,它们在系统启动时装入内存由CPU运行。
2 汇编语言
汇编语言用助记符来代替机器指令中的操作码,如ADD表示加法,SUB表示减法,MOV表示传送数据,操作数也可使用人们习惯的十进制数。这就比使用二进制表示的机器语言容易理解一些了。但汇编语言编写的程序[图316(b)]虽然可以提高一点效率,却仍然不够直观简便。
3 高级语言
为了克服汇编语言的缺陷,提高编写程序和维护程序的效率,一种接近人们自然
语言(指的是英语和数学语言)的程序设计语言应运而生了,这就是高级语言。
高级程序设计语言的表示方法接近解决问题的表示方法,具有通用性,在一定程度上与计算机指令系统无关。例如,若要计算“1055-(383+545)”的值,并把结果值赋给变量s,高级语言可将它直接写成:
s=1055-(383+545)
显然,这与使用数学语言对计算过程的描述是一致的,而且这样的描述[图316(c)]适用于任何配置了这种高级语言处理系统的计算机。由此可见,高级语言的特点是易学、易用、易维护,人们可以更有效、更方便地用它来编写计算机程序。
B8 7F01
BB 21 02
03 D8
B8 1F 04
2B C3
MOVAX383
MOVBX545
ADDBXAX
MOVAX1055
SUBAXBX
s=1055-(383+545)
(a) 机器语言程序(十六进制)
(b) 汇编语言程序
(c) 高级语言程序
图316三种语言编写的计算“1055-(383+545)”的程序片段
以上面介绍的选择排序算法为例,使用C语言可以很容易写出相应的程序。C语言规定数组的元素编号从0开始,因此,算法中1~n的变化范围相应地改变为0~n-1。用C语言编写的可对n个整数排序的函数sort表示如下:
void sort (int A [ ], int n)
/ 定义函数名为sort,它有两个参数,一个是整型数组A,另一个是数组元素的个数n/
{
int i, j, t, k ; /定义4个整型变量/
已经读完最后一章啦!
90%的人强烈推荐
怎样读书好
怎样读书
- 书名:
- 怎样读书好
- 作者:
- 胡适 等
- 本章字数:
- 2081
°胡适
我们平常读书的时候,所感到的有三个问题:一、要读什么书;二、读书的功用;三、读书的方法。
关于要读什么书的一个问题,在《京报》上已经登了许多学者所选定的《青年必读书》,不过这于青年恐怕未必有多大好处,因为都是选者依照个人的主观的见解选定的,还不如读青年自己所爱读的书好。
读书的功用,从前的人无非是为做官,或者以为读了书,“颜如玉”“黄金屋”一类的东西就会来;现在可不然了,知道读书是求智识,为做人。
读书的方法,据我个人的经验,有两个条件:
(一)精(二)博
精
从前有“读书三到”的读书法,实在是很好的;不过觉到三到有点不够,应该有四到,是:
眼到 口到 心到 手到
眼到,是个个字都要认得。中国字的一点一撇,外国的ABCD一点也不可含糊,一点也不可放过。那句话初看似很容易,然而我国人犯这错误的毛病的,偏是很多。记得有人翻译英文,误Port为Pork,于是葡萄酒一变而为猪肉了。这何尝不是眼不到的缘故?谁也知道,书是集字而成的,这是字不能认清,就无所谓读书,也不必求学。
口到,前人所谓口到,是把一篇文章能烂熟地背出来。现在虽没有人提倡背书,但我们如果遇到诗歌以及有精彩的文章,总要背下来,它至少能使我们在作文的时候,得到一种好的影响,但不可模仿。中国书固然要如此,外国书也要那样去做。进一步说:念书能使我们懂得它文法的结构,和其他的关系。我们有时在小说和剧本上遇到好的句子,尚且要把它记下来,那关于思想学问上的,更是要紧了。
心到,是要懂得每一句、每一字的意思。做到这一点,要有外的帮助,有三个条件:
(一)参考书,如字典、辞典、类书等。平常说:“工欲善其事,必先利其器。”我们读书,第一要工具完备。
(二)做文法上的分析。
(三)有时须比较、参考、融会、贯通,往往几个平常的字,有许多解法,倘是轻忽过去,就容易生出错误来。例如英文中的一个Turn字,作v.t.有十五解,v.i.有十三解,n.有二十六解,共有五十四解。
又如Strike, v.t.有三十一解,v.i.有十六解,n.有十八解,共有六十五解。
又如Go, v.i.有二十二解,u.t.有三解,n.有九解,共有三十四解。
又如中文的“言”字、“于”字、“维”字,都是意义很多的,只靠自己的能力有时固然看不懂,字典里也查不出来,到了这时候非参考比较和融会贯通不可了。
还有前人关于心到很重要的几句话,把它来说一说:
宋人张载说:“读书先要会疑,于不疑处有疑方是进矣。”又说:“可疑而不疑者不曾学,学则须疑。”“学贵心悟,守旧无功。”
手到,何谓手到?手到有几个意思:
(一)标点分段;(二)查参考书;(三)做札记。
札记分为四种:
1.抄录备忘。
2.提要。
3.记录心得。记录心得,也很重要。张横渠曾说:“心中苟有所开,即便札记,否则还失之矣。”
4.参考诸书而融会贯通之,作有系统之文章。
手到的功用,可以帮助心到。我们平常所吸收进来的思想,无论是听来的,或者是看来的,不过在脑子里有一点好或坏的模糊而又零碎的东西罢了。倘若费一番工夫,把它芟除的芟除,整理的整理,综合起来做成札记,然后那经过整理和综合的思想,就永久留在脑中,于是这思想,就是属于自己的了。
博
就是什么书都读。中国人所谓“开卷有益”,原也是这个意思。我们为什么要博呢?有两个答案:
(一)博是为参考;(二)博是为做人。
博是为参考。有几个人为什么要戴眼镜呢?(学时髦而戴眼镜的,不在此问题内。)干脆答一句:是因看不清楚,戴了眼镜以后,就可以看清楚了。现在戴了眼镜,看是清楚的,可是不戴眼镜的时候看去还是糊涂的。王安石先生《答曾子固书》里说:“……读经而已,则不足以知经。故某自百家诸子之书,至于《难经》《素问》《本草》诸小说,无所不读;农夫女工,无所不问;然后于经能知其大体而无疑。盖后世学者,与先王之时异矣;不如是,不足以尽圣人故也。……彼致其知而后读,以有所去取,故异学不能乱也。惟其不能乱,故能有所去取者,所以明吾道而已。……”
他“读经而已,则不足以知经”,我们要推开去说:读一书而已,则不足以知其书。比如我们要读《诗经》,最好先去看一看北大的《歌谣》周刊,便觉《诗经》容易懂。倘先去研究一点社会学、文字学、音韵学、考古学等等以后,去看《诗经》,就比前更懂得多了。倘若研究一点文字学、校勘学、伦理学、心理学、数学、光学,以后去看《墨子》,就能全明白了。
大家知道的:达尔文研究生物演进的状态的时候,费了三十多年光阴,积了许多材料,但是总想不出一个简单的答案来,偶然读那马尔萨斯的《人口论》,便大悟起来,了解了那生物演化的原则。
所以我们应该多读书,无论什么书都读,往往一本极平常的书中,埋伏着一个很大的暗示。书既是读得多,则参考资料多,看一本书就有许多暗示从书外来。用一句话包括起来,就是王安石所谓“致其知而后读”。
博是为做人。像旗杆似的孤零零地只有一技之艺的人固然不好,就是说起来什么也能说的人,然而一点也不精,仿佛是一张纸,看去虽大,其实没有什么实质的也不好。我们理想中的读书人是又精又博,像金字塔那样,又大、又高、又尖。所以我说:
为学当如埃及塔,
要能博大要能高。