分享
第 7 章:计算机的体系结构和主要部件.pdf
下载文档

ID:3323006

大小:1.42MB

页数:45页

格式:PDF

时间:2024-03-02

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
章:计算机的体系结构和主要部件 计算机 体系结构 主要 部件
您现在的位置:希赛网 云阅读 软件设计师考试考点分析与真题详解(第4版)机内代码及运算第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日机内代码及运算上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年03月13日数的进制第7章 计算机的体系结构和主要部件也许有人认为系统设计师似乎不需要什么硬件的知识,计算机的硬件理论知识并非是空中楼阁,不是好看或者用来考试的,它是确确实实的每台计算机设计和制造的基础,而且在学习的过程中,我们能够发现许多在硬件上使用的原则在软件上使用同样有益。在很多时候,我们能发现,计算机软件和硬件并非截然分开,而是有个此消彼长、相互促进的发展过程。比如早期的中央处理器是没有浮点运算功能,浮点运算需要使用软件实现,而后来,许多处理器都内置了浮点运算功能。另外,嵌入式系统的软件设计师必须考虑硬件的问题。7.1 机内代码及运算人人都知道计算机只处理二进制数据,二进制是最简单的进制方式,只有0和1两个基数,也就是说,计算机底层硬件只要能保持两个状态即可,这样使得计算机的底层设计变得简单,出错的概率也大为减小。当然二进制数据使得表示和保存数据的长度大大增加,但是大规模和超大规模的集成电路使得这成为次要的问题,人们能在越来越小的芯片空间里容纳越来越多的电路。另一方面计算机为了使得处理方便,其内部存储数据的格式和我们看见的是不同的。版权方授权希赛网发布,侵权必究7.1.1 数的进制1.进制的表示法R进制,通常说法就是逢R进1.可以用的数为R个,分别是0,1,2,,R1.例如十进制数的基数为10,即可以用到的数码个数为10,它们是0,1,2,3,4,5,6,7,8,9.二进制数的基数为2,可用的数码个数为2,它们是0和1。为了把不同的进制数分开表示,避免造成混淆,采用下标的方式来表示一个数的进制,如十进制数56表示为:(56)10,八进制数42表示为:(42)8。对于任意一个R进制数,它的每一位数值等于该位的数码乘以该位的权数。权数由一个幂表示,即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1.例如十进制数1234.56,其数值可计算如下:1234.56=1103+2102+3101+4100+510-1+610-2上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年03月13日原码、反码、补码、移码例如二进制数l0100.01的值可计算如下:l0100.01=124+122+12-22.进制的转换1)R进制数转换成十进制数按照上面的表示法,即可计算出R进制数十进制的值。2)十进制数转换为R进制数最常用的是除以R取余法.例如将十进制数94转换为二进制数:将所得的余数从低位到高位排列(1011110)2就是94的二进制数。3)二进制数与八进制数、十六进制数之间的转换将二进制数转换为八进制数,只有将每3个二进制数转换为八进制数即可,将二进制数转换为十六进制数,只要将每4个二进制数转换为八进制数即可。将八进制数转换为二进制数,只要将每个八进制数转换为3位二进制数即可,将十六进制数转换为二进制数,只要将每个十六进制数转换为4位二进制数即可。上面的转换都是以小数点作为计算数码个数的起点。八进制数和十六进制数转换可先转换为二进制数,然后再转换为目标进制。版权方授权希赛网发布,侵权必究7.1.2 原码、反码、补码、移码一个正数的原码、补码、反码是相同的,负数则不同。先提一个问题,为什么在计算机中要使用这些编码方式呢?1.原码将最高位用做符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值的表示形式。这种方式是最容易理解的。例如,+11的原码是00001011,11 的原码是10001011。但是直接使用原码在计算时却会有麻烦,比如(1)10+(1)10=0,如果直接使用原码则:(00000001)2+(1000001)2=(10000010)2这样计算的结果是2,也就是说,使用原码直接参与计算可能会出现错误的结果。所以,原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销和复杂性。2.反码正数的反码与原码相同。负数的反码符号位为1,其余各位为该数绝对值的原码按位取反。这个取上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年03月13日定点数和浮点数反的过程使得这种编码称为反码。例如,11的反码:11110100同样对上面的加法,使用反码的结果是:(00000001)2+(11111110)2=(11111111)2这样的结果是负0,而在人们普遍的观念中,0是不分正负的。反码的符号位可以直接参与计算,而且减法也可以转换为加法计算。3.补码正数的补码与原码相同。负数的补码是该数的反码加1,这个加1就是补。例如,11的补码:11110100+1=11110101再次做加法是这样的:(00000001)2+(11111111)2=(00000000)2直接使用补码进行计算的结果是正确的。注意到我们这里只是举例,并非证明。对一个补码表示的数,要计算其原码,只要对它再次求补,可得该数的原码。由于补码能使符号位与有效值部分一起参加运算,从而简化运算规则,同时它也使减法运算转换为加法运算,进一步简化计算机中运算器的电路,这使得在大部分计算机系统中,数据都使用补码表示。版权方授权希赛网发布,侵权必究7.1.3 定点数和浮点数定点数和浮动数的区别在于如何对待小数点,在运算方式上也不相同,衡量一个计算机系统,定点运算和浮点运算是两个重要的指标。定点数的小数点是隐含的,固定在某个位置。如果该位置是在数的最低位之后,就是定点整数。定点数表示比较简单,运算规则也比较容易实现,但是当数值范围变化大时,使用定点数表示和运算就比较困难。为了表示更大范围的数值,可以使用浮点数表示法。在表示一个很大的数时,我们常常使用一种称为科学计数法的方式:N=M*Re其中M称为尾数,e是指数,R为基数。浮点数就是使用这种方法来表示大范围的数,其中指数一般是2,8,16.而且对于特定机器而言,指数是固定不变的,所以在浮点数中指数并不出现。从这个表达式可以看出:浮点数表示的精读取决于尾数的宽度,范围取决于基数的大小和指数的宽度。1.格式化数使用格式化数是提高浮点数有效位的方法。格式化的意思是把尾数前面加0,同时修改指数,这样在尾数位数固定的情况下,能提供最多的有效位来表示尾数。当指数小于能够表示的最小值时,这上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日BCD码及其运算个数称为机器零,此时会把尾数和指数同时清零。看到这里,应该能回答指数为什么常使用移码来表示问题了。2.定点数的算术运算和溢出处理如前叙述,计算机中通常使用补码进行计算。两个正数相加,如果结果的符号位变成了1,则表示有溢出,同样两个负数相加,如果结果的符号位变成了0,那么也意味着溢出。如果是正数和负数相加,则不会出现溢出的情况。判断处理的方法可以再增加一个符号位,称之为第一符号位,原来那个符号位变成了第二符号位。计算时两个符号位都参与计算,如果计算结果的两个符号位相同,表示没有溢出,如果不同,就表示出现了溢出。而第一符号位才是真正的符号。也可以通过进位信号来判断,当结果的最高位和符号位的进位信号一致时(都有进位信号或都没有进位信号),则没有溢出,否则表示有溢出。3.定点数的逻辑运算逻辑运算意味着各位的运算不产生进位,操作数的对应位独立计算。逻辑加实际就是按位或的计算,逻辑乘实际上是按位与的操作,逻辑非是按位取反.在校验码中,我们将接触到逻辑运算。4.浮点数的运算浮动数运算过程比定点数复杂,包括以下过程。1)对阶首先计算两个数的指数差,把指数小的向指数大的对齐,并将尾数右移指数差的位数,这样两个浮点数就完成了对阶的操作。可以看出,对阶的过程可能使得指数小的浮点数失去一些有效位。如果两个浮点数阶数相差很大,大于指数小的浮点数的尾数宽度,那么对阶后那个浮点数的尾数就变成了0,即当做机器零处理了。2)尾数计算对阶完成后,两个浮点数尾数就如同定点数,计算过程同定点数计算。3)结果格式化尾数计算后,可能会产生溢出,此时将尾数右移,同时指数加1,如果指数加1后发生了溢出,则表示两个浮点数的运算发生了溢出。如果尾数计算没有溢出,则尾数不断左移,同时指数减1,直到尾数为格式化数。如果这个过程中,指数小于机器能表达的最小数,则将结果置机器零,这种情况称为下溢。版权方授权希赛网发布,侵权必究7.1.4 BCD码及其运算人们习惯于十进制数,不习惯于二进制数。计算机只用二进制数。有一个折中的方法,这就是8421码。8421码使用4个二进制数来表示一位十进制数。比如十进制数的138的8421码表示为:上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日文字符号的编码0001 0011 1000.所以这种表示方法也称为:二进制编码的十进制数,简称BCD码。这样比较容易阅读。在许多通信程序中,系统分析师都愿意采用BCD码来表示数据,这样在调试的过程中,比较容易读出其中的内容。由于BCD码的特性,如果使用BCD码进行计算时,可能需要进行修正。如3+5:0011+0101=1000,正确。而6+7:0110+0111=1101,这已经不在BCD码的范围里,此时需要进行修正。修正的方法是本位加6,并向高位进1.还有一种编码是将BCD码加3作为数字表示法,称为余3码,在使用余3码进行计算时,从最高位产生的进位是真正的进位,对每4位的结果,如果是小于等于9的,则减3,如果大于9,则加3。版权方授权希赛网发布,侵权必究7.1.5 文字符号的编码1.ASCII码为了表示英文字母和其他一些符号、控制符,计算机中普遍采用的是ASCII码。它使用7位代表一个字符,包括了字母的大小写、数字、标点、控制符等。计算机通常使用8位一个字节来存储,其高位为0.如表7-1所示。表7-1 ASCII码表汉字和拼音文字不同,拼音文字只需要定义少量的字母和符号的编码即可完成所有文字的保存、显示任务。而汉字存在大量的单字,为了让计算机能够处理汉字,必须对汉字进行单独的编码。2.GB2312-80GB2312-80全称是信息交换用汉字编码字符集基本集,于1980年发布。这种国家编码标准,已经得到了广泛的应用。它以两个字节表示一个汉字或符号,取值范围是A1A1FEFE,共定义了682个符号,6 763个汉字。其中一级汉字3 755个,以拼音排序,二级汉字3 008个,以偏旁排序。这个编上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日校验码概述码的缺点是收录的汉字太少,有许多次常用字没有收录,在处理人名、地名时非常不方便。3.BIG5编码俗称大五码,是普遍使用的繁体汉字的编码标准,包括440个符号,一级汉字5 401个,二级汉字7 652个,共计13 060个汉字。4.GBK编码(Chinese Internal Code Specification)GBK编码是中国大陆制定的中文编码扩展国家标准。GBK工作小组于1995年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21 003个、符号883个,并提供1894个造字码位,其特点是简、繁体字融于一库。5.GB18030-2000这是在原来的GB2312-80 编码标准和 GBK 编码标准的基础上进行扩充,增加了四字节部分的编码。向上则兼容ISO10646,共有150多万个码位。它在原来的2万多汉字的基础上增加了7 000 多个汉字的码位和字型,从而汉字达到27 000多个。它能有效地解决一些生、偏、难字的问题,适用于需要的人名、地名用字的系统。支持GB13000.1-1993的全部中日韩(CJK)统一汉字字符和全部中日韩统一汉字Extension A和Extension B的字符。6.Unicode编码(Universal Multiple Octet Coded Character Set)这是国际标准组织对各国文字、符号进行的统一性编码。目前Unicode采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。版本V2.0中包含了符号6 811个,汉字20 902个,韩文拼音11 172个,造字区6 400个,保留20 249个,共计65 534个。7.ISO10646/Unicode字符集全球可以共享的编码字符集。规定用4个字节表示世界各国语言文字的代码,其中汉字字符集可以扩大到6万字。但考虑到即使包括某些古籍汉字在内,现代一般使用的汉字,有2万字也已足够,这样ISO 10646的字符编码就可以减缩成两个字节,和Unicode相同,从而达到兼容性。版权方授权希赛网发布,侵权必究7.1.6 校验码概述1.编码体系体系这个词总是比较高深,但在这里有些大材小用之嫌,编码体系指一种编码方式中所有合法码字的集合。合法码字占所有码字的比率就是编码效率。请读者计算一下BCD编码的编码效率。2.码距码距是恒量一种编码方式的抗错误能力的一个指标。数字信息在传输和存取的过程中,由于各种意外情况的发生,数据可能会发生错误,即所谓误码。一种编码,如果所有可能的码字都是合法码字,如ASCII,当码字中的一位发生错误时,这个错误的码仍然在编码体系中,这样我们称这种编码的码距小,如果我们把编码体系变得稀疏一点,使得很多的信号值不在编码体系之内,这样,合法的码字如果出现错误,可能就变成了不合法的编码,上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日奇偶校验上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年03月13日海明码和恒比码这样的编码的码距就大。定义:一个编码系统中任意两个合法的编码之间的不同的二进制位称为这两个码字的码距。该编码系统的任意两个编码之间的距离的最小值称为该编码系统的码距。显然,码距越大,编码系统的抗偶然错误能力越强,甚至可以纠错(纠错详见各种编码的介绍)。同时,码距的增加,使得必须提供更多的空间来存放码字,数据冗余增加,编码效率则降低了,系统设计师需要综合考虑系统效率和系统健壮性两个方面,在众多的编码体系中选择适合特定目标系统的编码。版权方授权希赛网发布,侵权必究7.1.7 奇偶校验奇偶校验较为简单,被广泛地采用,常见的串口通信中基本都使用奇偶校验作为数据校验的方法。一个码距为1的编码系统加上一位奇偶校验码后,码距就成为2.产生奇偶校验时将信息数据的各位进行模二加法,直接使用这个加法的结果的称为奇校验。把这个加法值取反后作为校验码的称为偶校验。从直观的角度而言,奇校验的规则是:信息数据中各位中1的个数为奇数,校验码为1,否则校验码为0,偶校验则相反。使用一位奇偶校验的方法能够检测出一位错误,但无法判断是哪一位出错。当两位同时出错时,奇偶校验也无法检测出来。所以奇偶校验通常用于对少量数据的校验,如一个字节。在串口通信中,通常是一个字节带上起始位、结束位和校验位共11位来传送。如果对一位奇偶校验进行扩充,在若干个带有奇偶校验码的数据之后,再附上一个纵向的奇偶校验数据,如表7-2所示。表7-2 奇偶校验位组成这样,在出现一个错误的情况下,就能找到这个错误。而如果出现两个以上的错误,则可能无法判断误码的位置。这种方式在移动通信领域中被广泛采用。版权方授权希赛网发布,侵权必究上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日循环冗余校验码7.1.8 海明码和恒比码海明码是奇偶校验的另一种扩充。和上面提到的奇偶校验不同之处在于海明码采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?我们这里做一个简单的推导。k位的校验码可以有个2K值。显然,其中一个值表示数据是正确的,而剩下的2K1个值意味着数据中存在错误,如果能够满足:2K1m+K(m+k为编码后的总长度),在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。1.校验方程校验方程是指示每个校验位对哪些信息位进行校验的等式。确定了k的值后,如何确定每k位中的每一位对哪些数据进行校验呢?上面的推导只是说能够做的,那么如何达到纠错的目的呢?但是幸好考试中都会列出海明校验方程。例如:在一般情况下,校验码会被插入到数据的1,2,4,8,位置,那么,在数据生成时,按照提供的海明校验方程计算出b1,b2,b4,各位,在数据校验时,按照海明检验方程进行计算,如果所有的方程式计算都为0,则表示数据是正确的。如果出现1位错误,则至少有一个方程不为0.海明码的特殊之处在于,只要将3个方程左边计算数据按排列,得到的二进制数值就是该数据中出错的位,例如第6位出错,则为110等于二进制的6.当出现两位错误时,这种海明码能够查错,但无法纠错。2.恒比码采用恒比码编码体系中,所有有效的编码中为1的位都相同,所以被称为恒比。在邮电部门的电传、电报及条形码中就广泛地使用恒比码。这种编码生成时是查表,接收检验时是检查每个编码中1出现的次数是否正确。版权方授权希赛网发布,侵权必究7.1.9 循环冗余校验码这种方式已经被广泛地在网络通信及磁盘存储时采用,所以在历年考试中出现的概率也比较大。先看几个基本概念。1.多项式在循环冗余校验码中,无一例外地要提到多项式的概念。一个二进制数可以以一个多项式来表示。如1011表示为多项式x?+x?+x0,在这里,x并不表示未知数这个概念,如果把这里的x替换为2,这个多项式的值就是该数的值。从这个转换我们可以看出多项式最高幂次为n,则转换为二进制数有n+1位。2.编码的组成循环冗余校验码校验由k位信息码,加上R位的校验码。3.生成多项式和海明码的校验方程一样,生成多项式非常重要,以至于考试中总是直接给出。由K位信息码如何生成R位的校验码的关键在于生成多项式。这个多项式是编码方程和解码方程共同约定的,编码方程将信息码的多项式除以生成多项式,将得到余数多项式作为校验码,解码方程将收到的信息除以生成多项式,如果余数为0,则认为没有错误。如果不为0,余数则作为确定错误位置的依据。生成多项式并非任意指定,它必须具备以下条件:最高位和最低位为1,2.数据发生错误时,余数不为0,对余数补0后,继续做按位除,余数循环出现,这也是冗余循环校验中循环一词的来源。4.校验码的生成将k位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式:C(x)xR.将移位后的信息多项式除以生成多项式,得到R位的余数多项式。将余数嵌入信息位左移后的空间。例:信息位为10100110 生成多项式:a(x)=x5+x4+x+1则:C(x)=x7+x 5+x 2+XC(x)x R=x 5(x 7+x 5+x 2+X)=x 12+x 10+x 7+x 6求余式:得到余式为x 4+x 3即校验码为11000,所以得到CRC码是:1010011011000。循环冗余校验码的纠错能力取决于k值和R值。在实践中,k取值往往取得非常大,远远大于R的值,提高了编码效率。在这种情况下,循环冗余校验就只能检错不能纠错。一般来说,R位生成多项式可检测出所有双错、奇数位错和突发位错小于等于R的突发错误。使用循环冗余校验码能用很少的校验码检测出大多数的错误,检错能力是非常强的,这使得它得到了广泛的应用。版权方授权希赛网发布,侵权必究上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月27日多处理机系统上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月27日访问存储器方式7.8 多处理机系统并行处理机只有一个控制器,由这个控制器控制所有的运算器,而多处理机则有多个控制器,分别控制对应的运算器。多处理机属于MIMD,即有多个处理单元,同时对不同的数据进行不同的处理,指令流和数据流都存在并行,这决定了多处理机就是为解决复杂问题而设计的。这些复杂问题包括我们熟悉的天气预报,由于影响天气变化的因素太多,所以想做预报就必须给计算机系统加入大量的运算过程,而尴尬的情况是,当计算的时间比要预报的时间还要长时,就变成了验证而不是预报了。我们已经发现天气预报已经比原来准多了,国家已经能够开始提前发布黄金周的天气预报了,这也是计算机发展的一个佐证吧。从多个处理器之间的关系而言,多处理机又分为对称的多处理机和非对称的多处理机。如果所有的处理机都能同样访问所在的外围设备,就是对称的多处理机,相反,只有部分处理机(称主处理机)能执行操作系统,而附属处理机在主处理机的监督和控制,就是非对称的多处理机。并行处理机不需要这样的分类,它的控制单元只有一个,而属于被控制的处理单元有很多,所有的处理单元的地位是一样的。版权方授权希赛网发布,侵权必究7.8.1 访问存储器方式多处理机有多个处理单元,就产生了这些处理单元如何访问内存的问题,有两种方式:共享存储方式和分布式存储方式,来访问内存。共享存储方式的多处理机有公共的共享存储器。多个处理机能够访问共享的存储器,并使用共享的存储器传递共享公共信息和参数等。特点是容易管理和利用资源,常常适用于多用户的一般应用和分时应用,也能加快大程序的运行速度,但处理机数目有限,不易扩充。各个处理机对共享存储器的访问方式有:均匀存储器存取、非均匀存储器存取和只有高速缓存的多处理机。1.均匀存储器存取(Uniform-Memory Access UMA)采用这种方式访问共享存储器的多处理机,所有处理机对所有存储单元有相同的存取时间,所以称为均匀,如图7-21所示。图7-21 均匀存储器存取2.非均匀存储器存取的多处理机和均匀存储器存取不同,这种多处理机中不同处理机访问不同存储单元的存取时间是不同的。这种方式也有多种实现的方式,典型的有共享本地存储式,如图7-22所示。图7-22 非均匀存储器存取显然多个处理机访问本地存储很快,而访问其他处理机的存储器则需要经过互联网络。还有层次机群,层次机群扩展了上面的结构,增加了全局共享存储器,如图7-23所示。图7-23 层次机群非均匀存储多处理机的特点是:容易扩充,但复杂的数据结构难以在处理机之间传递。3.只有高速缓存的多处理机这是非均匀存储访问处理机一个特例,处理机内没有本地或共享的存储器,只有高速缓存,数据从哪里来是由目录模块决定的,如图7-24所示。图7-24 高速缓存的多处理机4.分布式多处理机分布式多处理机如图7-25所示。上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月27日互联方式图7-25 分布式多处理器和共享存储器访问方式不同,这种方式是每个处理机独占本地存储器,各处理机通过信息网络相联,这更像计算机网络的结构。版权方授权希赛网发布,侵权必究7.8.2 互联方式上节讲述的互联网络只是一个方框,其实多处理机和共享存储器、输入/输出设备等之间的通信性能是多处理机性能的重要一环,互联方式有多种,介绍如下。1.总线总线方式是最简单的方法。总线按照层次可分为:处理机板上的本地总线,为所有插入板提供信息通路的底板总线和同输入/输出外设交换信息的输入/输出总线,总线方才适用于多处理机个数少于100的系统,主要是受到了组装技术的限制,而数据的传输率受到总线带宽和速度的限制。2.开关网络和交叉开关开关网络为处理机和共享存储器之间提供了一个动态互联通路,如图7-26所示。图7-26 开关网络如果中间的开关网同时连接到达一定的数量后,不能再容纳新的连接,这种网络是阻塞网络。交叉开关提供了非阻塞网络的连接,它使用一组开关阵列将处理机和共享存储器连接,如图7-27所示。图7-27 交叉开关每个交叉的结点都是开关,可以连接或断开,这样以空间矩阵来换时间的方式需要使用大量的连线和交叉点开关,所以只有处理机和共享存储器数目较少时才可能使用这种方式,而且一旦建成,很难扩充。上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月27日多处理机的特点和交叉开关不同的是,开关枢纽不使用交叉矩阵这样庞大的硬件结构。它由仲裁单元和开关单元组成,仲裁单元完成冲突处理,开关单元完成连接,其方式和通信中的交换机有些相似。3.多端口存储器这事实上是将交叉点仲裁逻辑移动到存储器去控制的方法,如图7-28所示。图7-28 多端口存储器每个存储器模块有多个存取端口,由存储器负责分解多个处理机的冲突请求。这增加了存储器模式的成本,和交叉开关类似,需要大量的连线。而且存储器端口数目是固定的,一旦开始生成之后就无法增加。版权方授权希赛网发布,侵权必究7.8.3 多处理机的特点多处理机的特点,就是复杂,这个复杂体现在以下方面。1.结构的复杂性书中提到的多处理机结构只是有代表性的几种,为了适应复杂的和各种各样需要解决的问题,多处理机之间的互联网络、数据传递的种类相当多。由于这个复杂性,所以多处理机的数量还无法大量增加。2.程序并行性识别和流水线及并行处理机不同,多处理机的并行性不再是细粒度的并行,而是中、粗粒度的并行,是在过程和子程序级别以上的并行,如何识别程序的并行性也是非常困难。3.需要专门的并行指令在程序中需要专门的一种控制并发的指令,这种指令用来表示可以并发执行的多个程序段之间的并发关系,并且可以控制他们的并发执行。这样,在一个任务执行的时候,可以导致一些其他任务和这个任务并发执行,这称为并行任务的派生。这种派生同样复杂,和程序的性能及程序的流程不同而有不同的变化。4.同步措施在并发的各个处理机执行的不同程序或程序段中,经常会存在数据依赖或者是控制依赖,这种相互关系需要专门的同步措施,来调节不同的处理机执行过程和执行内容。当然最好是能尽量减少不同处理机运行的程序依赖性,还记得软件中的高内聚,低耦合吗?5.资源分配和任务调度上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日中央处理器、存储器上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年03月13日中央处理器多处理机的各个处理机执行的并发任务之间需要的资源变化很复杂,各个处理机执行的情况也各不相同,资源分配和任务调度也就非常困难。版权方授权希赛网发布,侵权必究7.2 中央处理器、存储器现有的计算(包括单片机、PC、超级计算机)基本都是冯诺依曼结构,这种结构将计算机分解成运算器、控制器、存储器、输入/输出设备,不加区别地将指令和数据存储在存储器中,指令、数据、存储地址都以二进制数表示,计算机运行时,执行的是存储器中的指令。由程序计数器来控制指令的执行。版权方授权希赛网发布,侵权必究7.2.1 中央处理器中央处理器是计算机的控制、运算中心,它主要通过总线和其他设备进行联系,另外,在嵌入系统设计中,外部设备也常常直接接到中央处理器的外部I/0脚的中断脚上。中央处理器的类型和品种异常丰富,各种中央处理器的性能也差别很大,有不同的内部结构、不同的指令系统。但由于基于冯诺依曼结构,基本部分组成相似。1.运算器 AV(Arithmetic ogic Unit)运算器的主要功能是在控制器的控制下完成各称算术运算逻辑运算和其他操作。一个计算过程需要用到由加法器/累加器、数据寄存器或其他寄存器、状态寄存器等。加法是加法运算器的基本功能,在大多数的中央处理器中,其他计算也是经过变换后使用的,一个位加法的逻辑图,如图7-1所示。其中:Xi、Yi是加数和被加数;Ci+1是低位进位;Ci是进位;Zi是和。为完成多位数据加法,可以通过增加电路和部件,简单的加法器能够变为串行、并行加法器,超前进位加法器等。运算器的位数,即运算器一次能对多少位的数据做加法是衡量中央处理器的一个重要指标。2.控制器控制器是中央处理器的核心,它控制和协调整个计算机的动作,控制通常需要程序计数器(PC),指令寄存器(IR),指令译码器(ID),定时与控制电路,以及脉冲源、中断等共同完成,如图7-2所示。图7-2 控制器组成中央处理器中各组件介绍如下。指令寄存器(Instruction Register):显然,中央处理器即将执行的操作码表在这里。指令译码器(Instruction Decoder):将操作码解码,告诉中央处理器该做什么。定时与控制电路(Programmabe ogic Array):用来产生各种微操作控制信号。程序计数器(Program Counter):程序计数器中存放的是下一条指令的地址。由于多数情况下程序是顺序执行的,所以程序计数器设计成能自动加1的装置。当出现转移指令时,就需重填程序计数器。程序计数器可能是下一条指令的绝对地址,也可能是相对地址,即地址偏移量。标志寄存器(Fags Register):这个寄存器通常记录运算器的重要状态或特征,典型的是是否溢出,结果为0、被0除等。这个寄存器的每一位表示一个特征。标志寄存器的典型应用是作为跳转指令的判断条件。堆栈和堆栈指针(Stack Pointer):堆栈可以是一组寄存器或在存储器内的特定区域。由于寄存器数量总是有限,所以大多数系统采用了使用存储器的软件堆栈。堆栈顶部的指针称为堆栈指针。上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日内存3.寄存器组上面提及的程序计数器、标志寄存器等为专用寄存器,它们有特定的功能和用途。通用寄存器的功能由程序指令决定,最常见的应用是放置计算的中间结果,减少对存储器的访问次数。通常寄存器的宽度是和运算器的位数相一致的。版权方授权希赛网发布,侵权必究7.2.2 内存这里的存储器是中央处理器通过总线与直接能访问的存储器,通常称为内存。硬盘等需通过I/O接口访问的存储器常称为外存或者辅存。存储器作用显然是存储数据包括指令、指令所带的数据(注意到了吗?这正是冯诺依曼结构的特点之一)和中央处理器处理后的结果,包括中间结果。中央处理器对存储器的访问须通过控制地址、数据总线方式进行。存储器的数组组织是线性的,所存储的数据都有整齐地编号,即访问地址。存储器一般每个存储单元中有8位数据,其容量是其存储单元的总和。1.存储器的性能指标存取时间:指的是从中央处理器发出指令到操作完成的时间。传输率:或称为数据传输带宽,指单位时间内写入或读取的数据的多少,显然,存取时间越小,则传输率越高。存储密度:单位面积的存储容量。2.存储器分类传统意义上存储器分为RAM(Random Address Memory)和ROM(Read OnyMemory),RAM是随机存储器,数据可读可写,一旦掉电,数据将消失。和ROM的命名方式不同,随机存储器强调的并非是它的可读可写特性,而是它的随机特性,也就是通过地址和数据总线,中央处理器可以随机读写存储器的任何某个字节的内容。ROM是只读存储器,掉电后数据依然保存。在个人计算机中,典型的ROM是BIOS,它里面是个人计算机的硬件检测和引导程序。事实上,有许多种不同类型的存储器,新的产品不断出现,正在打破通常意义上的RAM和ROM的分界线。既可读可写,又能掉电后仍保持数据的存储器已经出现,有的资料称为混合类型。RAM有静态和动态两种。最常用的动态RAM需要定时刷新电路才能保持数据,而静态RAM上电后信息不丢失,无须刷新过程,所以速度上有优势,而且不需要额外的刷新电路,常作为芯片中的Cache使用。而动态RAM集成度高成本低,得到了广泛的应用。PROM(可编程ROM):这种ROM可写一次,写完后就不能再更改了。EPROM(可擦除可编程ROM):这种ROM可多次擦除和重写,擦除工作由紫外线照射来完成。EEPROM(可擦除可编程ROM):使用电信号即可擦除的ROM,可多次重写。上一节本书简介下一节第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日外存上一节本书简介下一节普通的ROM最便宜,适合于已经成型和经过严格测试的大量生产的情况。而在开发的阶段,使用EEPROM则可以减少程序的烧录时间,提高开发效率,节约开发成本。Fash(闪存):在嵌入式系统中,还会经常利用Fash,它的特征和EEPROM相同,又有EPROM的高集成性,低廉的成本,广泛应用于掌上电脑和手机等嵌入式系统。它的特点是擦除和写信息必须是按照数据块来操作的。这和普通的随机存储内存不同。NVRAM为非挥发性RAM,这实际上是静态RAM加上电池,加电时,它的表现和静态RAM一样,失去电力时,由电池供电以保持其中的内容不丢失,由于成本高昂,所以其容量通常非常小,通常只有几百字节。如表7-3所示。表7-3 几种存储器之间的比较版权方授权希赛网发布,侵权必究7.2.3 外存和内存相比,外存或辅存有以下特点:中央处理器必须通过I/O接口和外存联系,容量大,速度较慢。硬盘是最常见的外存,硬盘的容量越来越大,平均寻道时间越来越短,是大多数计算机不可缺少的组成部分。软盘已经在很长的时间内没有发展了,现在仍然在使用3.5英寸规格,容量为1.44MB,它曾经辉煌的地位已经让位给现在的闪存盘。光盘、CD-ROM已经是软件发行最常见的载体,DVD的驱动器也很常见,光盘刻录也是备份的优先选择之一。磁带的特点是顺序读写,容量很大,这使得磁带是重要数据备份的主要选择。闪存盘以容量大(相对软盘而言)体积小而成为流行的便携式存储产品,闪存盘一般以USB接口和计算机相连,也常称为U盘。版权方授权希赛网发布,侵权必究第 7 章:计算机的体系结构和主要部件作者:希赛教育软考学院 来源:希赛网 2014年01月26日时序产生器和控制方式7.2.4 时序产生器和控制方式为了使得计算机各部件同步工作,计算机中都有一个脉冲源,通常是晶振。这个脉冲源产生主振脉冲,主振脉冲的时间间隔为主振周期,即时钟周期。中央处理器执行指令的时间(包括取址)为指令周期,由于指令可能有不同的复杂度,所以,每种指令的指令周期可能不同。CPU周期也称机器周期,一般是从内存中读一个指令的最短时间。CPU周期又由若干个时钟周期组成。如图7-3所示。图7-3 一个指令周期通常把CPU执行指令的各个微操作遵循的时间顺序叫时序。时序图是形象地表示信号线上信息变化的时间序列的图形。组合逻辑控制和微过程控制是两种基本的控制方式。1.组合逻辑控制组合逻辑控制器是使用专用门的逻辑电路。它的实现有硬件接线控制和可编程逻辑阵列两种,硬件连线法最直接,可以用较少的组件实现最快的速度,但是如果要更改,只有重新设计。可编程逻辑阵列采用低成本大规模集成电路的方式。组合逻辑控制灵活性很差,在复杂指令系统计算机中难以处理不断增加的复杂指令,但是它使用电子组件少,在采用精简指令集的计算机中发挥了很大作用。2.微过程控制为提高控制的灵活性,许多中央处理器采用的微过程控制的控制方法,先看几个概念。微程序:微程序对应一条机器指令,若干个微指令序列形成一段微程序。而微指令又可细分为若干微操作,控制内存是存放微程序的地方。微操作是最基本的操作,可分为兼容性微操作和不兼容性微操作,这两种微操作的区别在于该微操作是否能在一个CPU周期内并行执行。微指令格式:前半部分,存放对各种控制门进行激活或关闭的控制信息,后半部分是后续微指令的地址,这实现

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开