第4章数值的机器运算
数值计算1-5章
数值计算1-5章数值计算⽅法第1章绪论1.1数值计算⽅法的研究对象和特点数值计算⽅法也称数值分析,它研究⽤计算机求解各种数学问题的数值⽅法及其理论。
数学学科内容⼗分⼴泛,数值计算⽅法属于计算数学的范畴,这⾥只涉及科学和⼯程计算中常见的数学问题,如函数的插值、逼近、离散数据的拟合、数值积分与数值微分、线性和⾮线性⽅程数值解法和矩阵特征值问题数值解法和微分⽅程数值解法等.由于计算机科学与技术的迅速发展,数值计算⽅法的应⽤已经普遍深⼊到各个科学领域,很多复杂和⼤规模的计算问题都可以在计算机上进⾏计算,新的、有效的数值⽅法不断出现.现在,科学与⼯程中的数值计算已经成为各门⾃然科学和⼯程技术科学研究的⼀种重要⼿段,成为与实验和理论并列的⼀个不可缺少的环节.所以,数值计算⽅法既是⼀个基础性的,同时也是⼀个应⽤性的数学学科分⽀,与其他学科的联系⼗分紧密.⽤数值⽅法求解数学问题⾸先要构造算法,即由运算规则(包括算术运算、逻辑运算和运算顺序)构成的完整的解题过程.同⼀个数学问题可能有多种数值计算⽅法,但不⼀定都有效.评价⼀个算法的好坏主要有两条标准:计算结果的精度和得到结果所付出的代价.我们⾃然应该选择代价⼩⼜能满⾜精度要求的算法.计算代价也称为计算复杂性,包括时间复杂性和空间复杂性.时间复杂性好是指节省时间,主要由运算次数决定.空间复杂性好是指节省存储量,主要由使⽤的数据量决定.⽤计算机求数学问题的数值解不是简单地构造算法,它涉及多⽅⾯的理论问题,例如,算法的收敛性和稳定性等.除理论分析外,⼀个数值⽅法是否有效,最终要通过⼤量的数值实验来检验.数值计算⽅法具有理论性、实⽤性和实践性都很强的特点.作为数值计算⽅法的基础知识,本课程不可能⾯⾯俱到.除构造算法外,各章根据内容⾃⾝的特点,讨论的问题有所侧重.学习时我们⾸先要注意掌握⽅法的基本原理和思想,要注意⽅法处理的技巧及其与计算机的结合,要重视误差分析、收敛性和稳定性的基本理论.其次,要通过例⼦,学习使⽤各种数值⽅法解决实际计算问题,熟悉数值⽅法的计算过程.最后,为了掌握本课程的内容,还应做⼀定数量的理论分析与计算练习.1.2数值计算的误差1.2.1误差的来源应⽤数学⼯具解决实际问题,⾸先,要对被描述的实际问题进⾏抽象、简化,得到实际问题的数学模型.数学模型与实际问题之间会出现的误差,我们称之为模型误差.在数学模型中,通常要包含⼀些由观测数据确定的参数.数学模型中⼀些参数观测结果⼀般不是绝对准确的.我们把观测模型参数值产⽣的误差称为观测误差.例如,设⼀根铝棒在温度t时的实际长度为Lt,在t=0时的实际长度为L0,⽤lt来表⽰铝棒在温度为t时的长度计算值,并建⽴⼀个数学模型l t =L(1+at), a≈0.0000238/℃,其中a是由实验观测得到的常数,a∈[0.0000237,0.0000239],则称Lt -lt为模型误差,a-0.0000238是a 的观测误差.在解实际问题时,数学模型往往很复杂,因⽽不易获得分析解,这就需要建⽴⼀套⾏之有效的近似⽅法和数值⽅法.我们可能⽤容易计算的问题代替不易计算的问题⽽产⽣误差,也可能⽤有限的过程代替⽆限的过程⽽产⽣误差.我们将模型的准确解与⽤数值⽅法求得的准确解之间的误差称为截断误差或⽅法误差.例如,对函数()()35721sin 13!5!7!21!n x x x xn x x n +=-+-+++-+,该式右边有⽆限多项,计算机上⽆法计算.然⽽,根据微积分学中的泰勒(Taylor )定理,当|x |较⼩时,我们若⽤前3项作为sin x 的近似值,则截断误差的绝对值不超过77!x .⽤计算机做数值计算时,⼀般也不能获得数值计算公式的准确解,需要对原始数据、中间结果和最终结果取有限位数字.我们将计算过程中取有限位数字进⾏运算⽽引起的误差称为舍⼊误差.例如,13=0.33333…,如果我们取⼩数点后4位数字,则13-0.3333=0.000033…就是舍⼊误差.在数值分析中,除了研究数学问题的算法外,还要研究计算结果的误差是否满⾜精度要求,这就是误差估计问题.在数值计算⽅法中,主要讨论的是截断误差和舍⼊误差.1.2.2 误差与有效数字定义1.1 设x 是某实数的精确值,A x 是它的⼀个近似值,则称x -A x 为近似值A x 的绝对误差,或简称误差.Ax x x-称为x A 的相对误差.当x =0时,相对误差没有意义.在实际计算中,精确值x 往往是不知道的,所以通常把AAx x x -作为A x 的相对误差.定义1.2 设x 是某实值的精确值,A x 是它的⼀个近似值,并可对A x 的绝对误差作估计|x -A x |?A ε,则称εA 是A x 的绝对误差界,或简称误差界.称AAx ε是A x 的相对误差界.例 1.1 我们知道π=3.1415926…,若取近似值πA =3.14,则π-πA =0.0015926…,可以估计绝对误差界为0.002,相对误差界为0.0006.例 1.2 测量⼀⽊板长是954 cm,问测量的相对误差界是多⼤?解因为实际问题中所截取的近似数,其绝对误差界⼀般不超过最⼩刻度的半个单位,所以当x =954 cm 时,有A ε=0.5 cm ,其相对误差界为0.50.00052410.053%954AAx ε==< .定义1.3 设A x 是x 的⼀个近似值,将A x 写成12100.,k A i x a a a =±? , (1.1) 它可以是有限或⽆限⼩数的形式,其中i a (i =1,2,…)是0,1,…,9中的⼀个数字,1a ≠0,k 为整数.如果|x -A x |?0.5×10k n -,则称A x 为x 的具有n 位有效数字的近似值.可见,若近似值A x 的误差界是某⼀位的半个单位,该位到A x 的第⼀位⾮零数字共有n 位,则A x 有n 位有效数字.通常在x 的准确值已知的情况下,若要取有限位数的数字作为近似值,就采⽤四舍五⼊的原则,不难验证,采⽤四舍五⼊得到的近似值,其绝对误差界可以取为被保留的最后数位上的半个单位.例如|π-3.14|?0.5×210-, |π-3.142|?0.5×310-.按定义,3.14和3.142分别是具有3位和4位有效数字的近似值.显然,近似值的有效数字位数越多,相对误差界就越⼩,反之也对.下⾯,我们给出相对误差界与有效数字的关系.定理1.1 设x 的近似值A x 有(1.1)式的表达式. (1) 如果A x 有n 位有效数字,则 111×102A nAx x x a --≤; (1.2)(2) 如果()111×1021A nAx x x a --≤+, (1.3)则A x ⾄少具有n 位有效数字.证由(1.1)式可得到()111--?+≤≤?k A k a x a . (1.4)所以,当A x 有n 位有效数字时11110.5101×10,×102k nA nk Ax x x a a ----?≤=即(1.2)式得证.由(1.3)式和(1.4)式有()()nk nk AAA A a a x x x x x x ---?=?+?+≤-=-105.0101211011111,即说明A x 有n 位有效数字,(2)得证.例1.30.1%,应取⼏位有效数字?解由于因此1a =4,设有n 位有效数字,则由(1.2)式,可令11110a -?≤,即410n -?18,得n ?4.故只要对4位有效数字,其相对误差就可⼩于0.1%,4.472.例1.4 已知近似数A x 的相对误差界为0.3%,问A x ⾄少有⼏位有效数字?解设A x 有n 位有效数字,由于A x 的第⼀个有效数1a 没有具体给定,⽽我们知道1a ⼀定是1,2,…,9中的⼀个,由于()12311101000210291A Ax x x --≤<=+,故由(1.3)式知n=2,即A x ⾄少有2位有效数字.1.2.3 函数求值的误差估计对⼀元函数f(x ),⾃变量x 的⼀个近似值为A x ,以f(A x )近似f(x ),其误差界记作ε(f(A x )).若f(x )具有⼆阶连续导数,f′(A x )与f″(A x )的⽐值不太⼤,则可忽略|x -A x |的⼆次项,由Taylor 展开式得到f(A x )的⼀个近似误差界ε(f(A x ))≈|f′(A x )|ε(A x ).对n 元函数f(x 1,x 2,…,x n ),⾃变量x 1,x 2,…,x n 的近似值分别为x 1A ,x 2A ,…,x n A ,则有()()()12121,,,,,,nn A A nA k kA k k Af f x x x f x x x x x x=??-≈- ∑ ,其中()12,,,A A nA k k f f x x x x x A.因此,可以得到函数值的⼀个近似误差界()()()121,,,nAA nA kA k k Af f x x x x x εε=??≈ ∑. 特别地,对f(x 1,x 2)=x 1±x 2有ε(x 1A ±x 2A )=ε(x 1A )+ε(x 2A ).同样,可以得到ε(x 1A x 2A )≈|x 1A |ε(x 2A )+|x 2A |ε(x 1A ),()()12211222A A A A A A A x x x x x x x εεε+??≈,20A x ≠例1.5 设有长为l,宽为d 的某场地.现测得l 的近似值l A =120 m,d 的近似值d A =90 m ,并已知它们的误差界为|l-l A |?0.2 m,|d-d A |?0.2 m.试估计该场地⾯积S=ld 的误差界和相对误差界.解这⾥ε(l A )=0.2,ε(d A )=0.2,并且有2,,10800A A A S S d l S l d mld====.于是有误差界()21200.2900.242A S m ε≈?+?=,相对误差界()()420.39%10800A r A AS S l dεε=≈=.例1.6 设有3个近似数a=2.31, b=1.93, c=2.24,它们都有3位有效数字.试计算p=a+bc 的误差界和相对误差界,并问p 的计算结果能有⼏位有效数字?解 p=2.31+1.93×2.24=6.6332.于是有误差界ε(p)=ε(a)+ε(bc)≈ε(a)+|b|ε(c)+|c|ε(b) =0.005+0.005(1.93+2.24)=0.02585,相对误差界εr (p)=()0.025856.6332p pε≈≈0.39%.因为ε(p)≈0.02585<0.05,所以p=6.6332能有2位有效数字.1.2.4 计算机中数的表⽰任意⼀个⾮零实数⽤(1.1)式表⽰,是规格化的⼗进制科学记数⽅法.在计算机中通常采⽤⼆进制的数系(或其变形的⼗六进制等),并且表⽰成与⼗进制类似的规格化形式,即浮点形式±2m ×0.β1β2…βt ,这⾥整数m 称为阶码,⽤⼆进制表⽰为m=±α1α2…αs , αj =0或1(j=1,2,…,s),s 是阶的位数.⼩数0.β1β2…βt 称为尾数,其中β1=1,βj =0或1(j=2,3,…,t),t 是尾数部位的位数.s 和t 与具体的机器有关.由于计算机的字长总是有限位的,所以计算机所能表⽰的数系是⼀个特殊的离散集合,此集合的数称为机器数.⽤浮点⽅式表⽰的数有⽐较⼤的取值范围.⼗进制输⼊计算机时转换成⼆进制,并对t 位后⾯的数作舍⼊处理,使得尾数为t 位,因此⼀般都有舍⼊误差.两个⼆进制数作算术运算时,对计算结果也要作类似的舍⼊处理,使得尾数为t 位,从⽽也有舍⼊误差.在实现算法时,计算的最后结果与算法的精确解之间的误差,从根本上说是由机器的舍⼊误差造成的,包括输⼊数据和算术运算的舍⼊误差.因此有必要对计算机中数的浮点表⽰⽅法和舍⼊误差有⼀个初步的了解.有时为了分析某⼀个计算⽅法可能出现的误差现象,为了适应⼈们的习惯,我们会采⽤⼗进制实数系统进⾏误差分析.1.3 数值稳定性和要注意的若⼲原则 1.3.1 数值⽅法的稳定性实际计算时,给定的数据会有误差,数值计算中也会产⽣误差,并且,这些误差在进⼀步的计算中会有误差传播.因此,尽管数值计算中的误差估计⽐较困难,我们还是应该重视计算过程中的误差分析.定义 1.4 对于某个数值计算⽅法,如果输⼊数据的误差在计算过程中迅速增长⽽得不到控制,则称该算法是数值不稳定的,否则是数值稳定的.下⾯举例说明误差传播的现象.例 1.7 计算积分值105nxdx I x =+?, n=0,1,…,6.解由于要计算系列的积分值,我们先推导In 的⼀个递推公式.由1110555n n n n x x I I dx x --++=+?111n xdx n-==,可得下⾯两个递推算法.算法1:115n n I I n-=-,n=1,2, (6)算法2:1115n n I I n -??=-,n=6,5, (1)直接计算可得0ln 6ln 5I =-.如果我们⽤4位数字计算,得I 0的近似值为0I *=0.1823.记n n n E I I *=-,I n *为In 的近似值.对算法1,有15n n E E -=-=…=()5n-E 0.按以上初始值I0的取法有|E 0|?0.5×410-,事实上|E 0|≈0.22×410-.这样,我们得到|E 6|=65|E 0|≈0.34.这个数已经⼤⼤超过了I 6的⼤⼩,所以6I *连⼀位有效数字也没有了,误差掩盖了真值.对算法2,有E k-n =15n ??-E k ,|E 0|=615??|E 6|.如果我们能够给出I 6的⼀个近似值,则可由算法2计算I n (n=5,4,…,0)的近似值.并且,即使E 6较⼤,得到的近似值的误差将较⼩.由于()()11011616551kkk xxI d d x x k k =<<=++??,因此,可取Ik 的⼀个近似值为()()11126151k I k k *=+?? ? ?++??. 对k=6有6I *=0.0262.按0I *=0.1823和6I *=0.0262,分别按算法1和算法2计算,计算结果如表1-1,其中()1n I 为算法1的计算值, ()2n I 为算法2的计算值.易知,对于任何⾃然数n,都有0表1-1n()1nI()2nInI (4位)0 0.1823 0.1823 0.18231 0.0885 0.0884 0.08842 0.0575 0.0580 0.05803 0.0458 0.0431 0.04314 0.0210 0.0344 0.03435 0.0950 0.0281 0.02856-0.3083 0.0262 0.0243当然,数值不稳定的⽅法⼀般在实际计算中不能采⽤.数值不稳定的现象属于误差危害现象.下⾯讨论误差危害现象的其他表现及如何避免问题.1.3.2 避免有效数字的损失在数值计算中,参加运算的数有时数量级相差很⼤,⽽计算机位数有限,如不注意,“⼩数”的作⽤可能消失,即出现“⼤数”吃“⼩数”的现象. 例1.8 ⽤3位⼗进制数字计算x =101+δ1+δ2+…+δ100,其中0.1?δi ?0.4,i =1,2, (100)解在计算机内计算时,要写成浮点数形式,且要对阶.如果是101与δ1相加,对阶时,101=0.101×103,δ1=0.000×103.因此,如果我们⾃左⾄右逐个相加,则所有的δi 都会被舍掉,得x ≈101.但若把所有的δi 先加起来,再与101相加,就有111=101+100×0.1?x ?101+100×0.4=141.可见,计算的次序会产⽣很⼤的影响.这是因为⽤计算机计算时,在运算中要“对阶”,对阶引起了⼤数吃⼩数的现象.⼤数吃⼩数在有些情况下是允许的,但有些情况下则会造成谬误.在数值计算中,两个相近数相减会使有效数字严重损失.例1.9 求实系数⼆次⽅程20ax bx c ++=的根,其中b 2-4ac>0,ab ≠0. 解考虑两种算法. 算法1:1,22x a=算法2:(12b sign b x a--=, 21c x ax =,其中sign 表⽰取数的符号,即()1,0,0,0,1,0.b sign b b b >??==??-对算法1,若ac b 42>>,则是不稳定的,否则是稳定的.这是因为在算法1中分⼦会有相近数相减的情形,会造成有效数字的严重损失,从⽽结果的误差很⼤.算法2不存在这个问题,在任何情况下都是稳定的.因此称算法1是条件稳定的,算法2是⽆条件稳定的.例如,对于⽅程262.10 1.0000x x ++=,⽤4位有效数字计算,结果如下:算法1:x 1=-62.08, x 2=-0.02000. 算法2:x 1=-62.08, x 2=-0.01611.准确解是x 1=-62.083892…,x 2=-0.016107237….这⾥,ac b 42>>,所以算法1不稳定,舍⼊误差对x 2的影响⼤.在进⾏数值计算时,如果遇到两相近数相减的情形,可通过变换计算公式来避免或减少有效数字的损失.例如,如果|x |≈0,有变换公式1cos sin sin 1cos x x xx-=+.如果x 1≈x 2,有变换公式1122lg lg lgx x x x -=.如果x 〉〉1,有变换公式.此外,⽤绝对值很⼩的数作除数时,舍⼊误差会很⼤,可能对计算结果带来严重影响.因此,要避免除数绝对值远远⼩于被除数绝对值的除法运算.如果⽆法改变算法,则采⽤增加有效位数进⾏计算,或在计算上采⽤双精度运算,但这要增加机器计算时间和多占内存单元.1.3.3 减少运算次数在数值计算中,要注意简化计算步骤,减少运算次数,这也是数值分析中所要研究的重要内容.同样⼀个计算问题,如果能减少运算次数,不但可节省计算机的计算时间,还能减少误差的积累.下⾯举例说明简化计算公式的重要性.例1.10 给定x ,计算多项式()110nn n n n P x a x a xa --=+++的值.如果我们先求ak x k ,需要进⾏k 次乘法,再相加,则总共需要()12n n +次乘法和n次加法才能得到⼀个多项式的值.如果我们将多项式写成下⾯的形式()(){}1210n n n n P x x x x a x a a a a --??=+++++?? ,则只需n 次乘法和n 次加法即可得到⼀个多项式的值,这就是著名的秦九韶算法,可描述为1,,1,2,,0,n n k k k u a u u x a k n n +=??=+=--?最后有()0n u P x =.例1.11 计算ln2的值. 解如果利⽤级数()()11ln 11nn n xx n∞+=+=-∑计算ln2,若要精确到误差的绝对值⼩于10-5,要计算10万项求和,计算量很⼤,并且舍⼊误差的积累也⼗分严重.如果改⽤级数()35211ln 213!5!21!n xx x xx x n +??+=+++++ ? ?-+??来计算ln2,取x =1,则只要计算前9项,截断误差便⼩于10-10.1.4 向量和矩阵的范数为了对矩阵计算进⾏数值分析,我们需要对向量和矩阵的“⼤⼩”引进某种度量.在解析⼏何中,向量的⼤⼩和两个向量之差的⼤⼩是⽤“长度”和“距离”的概念来度量的.在实数域中,数的⼤⼩和两个数之间的距离是通过绝对值来度量的.范数是绝对值概念的⾃然推⼴.1.4.1 向量的范数定义1.5 如果向量x ∈n R 的某个实值函数f(x )=‖x ‖满⾜ (1) 正定性:x ?0,且x =0当且仅当x =0;(2) 齐次性:对任意实数α,都有αx =|α|x ; (3) 三⾓不等式:对任意x ,y ∈R n ,都有+x y ?x +y ,则称x 为n R 上的⼀个向量范数.在n R 中,记()12,,,Tn x x x =x ,实际计算中最常⽤的向量范数有: (1) 向量的∞范数1max i i nx ∞≤≤=x;(2) 向量的1范数11nii x ==∑x;(3) 向量的2范数12221in x i ==??∑x.容易验证,向量的∞范数和1范数满⾜定义1.5中的条件.对于2范数,满⾜定义1.5中的条件(1)和(2)是显然的,对于条件(3),利⽤向量内积的Cauchy-Schwarz 不等式可以验证.更⼀般地,有如下向量的p 范数1pipn px i ==??∑x,其中p ∈ [1,+∞).容易验证1ppn∞∞≤≤xxx,由此可得如下定理.定理1.2 lim pp ∞→∞=xx.下⾯,我们利⽤向量范数的连续性来说明向量范数的重要特征.定理1.3 设给定A ∈R n ×n ,x =(x 1,x 2,…,x n )T ∈R n ,则对R n 上每⼀种向量范数,‖A x ‖都是x 1,x 2,…,x n 的n 元连续函数.证设a j 为A 的列向量,将A 写成A =(a 1,a 2,…,a n ). 则由三⾓不等式,对h =(h 1,h 2,…,h n )T ∈R n,有|‖A (x +h )‖-‖A x ‖|?‖A h ‖=‖1ni i h =∑a i ‖1ni i h =∑‖a i ‖M max|h i |,其中M=1ni =∑‖a i ‖.所以,对任意的ε>0,当max|h i |<Mε时,有|‖A (x +h )‖-‖A x ‖|<ε, 这就证明了‖A x ‖的连续性.推论1.1 ‖x ‖是x 的各分量的连续函数. 向量范数的⼀个重要特征是具有等价性.定理 1.4 R n 上的所有向量范数是彼此等价的,即对R n 上的任意两种向量范数‖x ‖s和‖x ‖t ,存在常数c 1,c 2>0,使得对任意x ,有c 1‖x ‖s ?‖x ‖t ?c 2‖x ‖s .证只要就‖x ‖s =‖x ‖∞证明上式成⽴即可,即证明存在常数c 1,c 2>0,对⼀切x ∈R n且x ≠0,有c 1‖x ‖∞?‖x ‖t ?c 2‖x ‖∞.记R n 上的有界闭集D={x :x =(x 1,x 2,…,x n )T ,‖x ‖∞=1}.由定理1.3的推论知,‖x ‖t 是D 上的n 元连续函数,所以在D 上有最⼤值c 2和最⼩值c 1,且x ∈D 时有x ≠0,故有c 2?c 1>0.现考虑x ∈R n ,且x ≠0,则有∞x x ∈D,所以有c 1?‖∞x x ‖t ?c 2, ?x ∈R n ,x ≠0.从⽽对x ≠0有c 1‖x ‖∞?‖x ‖t ?c 2‖x ‖∞.⽽x =0时上式⾃然成⽴,定理得证.由于向量范数之间具有等价性,对于范数的极限性质,我们只需对⼀种范数进⾏讨论,其余范数也都具有相似的结论.⽐如,我们可以⽅便地讨论向量序列的收敛性.定义1.6 设向量序列x (k)=()()()()12,,,Tk k k nx x x ∈R n ,k=1,2,…,若存在x *=()12 ,,,Tn x x x ***∈R n ,使得()lim k iik x x *→∞=, i =1,2,…,n,则称序列{x (k)}收敛于x *,记为()lim k ik *→∞=x x.按定义有)()lim lim 0k k k k **→∞→∞∞=?-=xx xx.⼜因为()()()12k k k c c ***∞∞-≤-≤-xxxxxx,所以有()()lim lim 0k k k k **→∞→∞=?-=xx xx.因此,若向量序列在⼀种范数下收敛,则在其他范数下也收敛.不必强调是在哪种范数意义下收敛.1.4.2矩阵的范数定义1.7 如果矩阵A ∈R n ×n 的某个实值函数f(A )=‖A ‖满⾜ (1) 正定性:‖A ‖?0,且‖A ‖=0当且仅当A =0;(2) 齐次性:对任意实数α,都有‖αA ‖=|α|‖A ‖;(3) 三⾓不等式:对任意A ,B ∈R n ×n ,都有‖A +B ‖?‖A ‖+‖B ‖; (4) 相容性:对任意A ,B ∈R n ×n ,都有‖A B ‖?‖A ‖‖B ‖;则称‖A ‖为Rn ×n上的⼀个矩阵范数.可以验证,对()ij n na ?=A ,12211Fn n a ij i j ?? ?=∑∑ ?==??A是⼀种矩阵范数,称之为Froben i us 范数,简称F 范数.由于矩阵与向量常常同时参与讨论与计算,矩阵范数与向量范数之间需要有⼀种联系. 定义1.8 对于给定的R n 上的⼀种向量范数‖x ‖和R n ×n 上的⼀种矩阵范数‖A ‖,如果满⾜‖A x ‖?‖A ‖‖x ‖,则称矩阵范数‖A ‖与向量范数‖x ‖相容.上⾯的定义1.7是矩阵范数的⼀般定义,下⾯我们通过已给的向量范数来定义与之相容的矩阵范数.定义 1.9 设x ∈R n ,A ∈R n ×n ,对给出的⼀种向量范数v x ,相应地定义⼀个矩阵的⾮负函数m axvvx v≠=A x Ax.称之为由向量范数导出的矩阵范数,也称为算⼦范数或从属范数.由定义可得vvv≤A xAx,1max vvv==xAAx.算⼦范数满⾜矩阵范数⼀般定义中的条件(1)和(2)是显然的,现验证满⾜条件(3)和(4).对任意的A ,B ∈R n ×n ,有()1maxvvv =+=+xA B x11max max v vvvvvxx==≤+=+Ax BxAB1max vvv==xABABx1max vvvvvv=≤=xABxA.因此,算⼦范数满⾜矩阵范数⼀般定义中的条件(3)和(4).由常⽤的向量范数,可以导出与其相容的矩阵算⼦范数.定理1.5 设A ∈R n ×n ,记()ij n na ?=A ,则(1)11max nij i nj a ∞≤≤==∑A,称之为矩阵A 的⾏范数;(2) 111m ax nij j ni a ≤≤==∑A ,称之为矩阵A 的列范数;(3)2=A称之为矩阵A 的2范数或谱范数,其中,()max TλA A 表⽰T A A的最⼤特征值.证这⾥只对(1)和(3)给出证明,(2)的证明同理可得. 先证明(1):设x =(x 1,x 2,…,x n )T ≠0,不妨设A ≠0,则有1111max max nnij j ij i ni nj j xa x xa ∞∞≤≤≤≤===≤∑∑A .111max max nij xi nj a ∞∞∞=≤≤===∑AAx.设矩阵A 的第p ⾏元素的绝对值之和达到最⼤,即111max nnpj ij i nj j a a ≤≤===∑∑.取向量()12,,,Tn ξξξ= ξ,其中1,0,1,0.a pj j apjξ≥??=?-显然,‖ξ‖∞=1,⽽且1111m ax m axnn∞∞=≤≤===≥==∑∑xAA xA ξ.于是(1)得证.再证明(3):显然,A TA 是对称半正定矩阵,它的全部特征值均⾮负,设为120n λλλ≥≥≥≥ .由实对称矩阵的性质,各特征值对应的特征向量必正交.设对应的标准正交特征向量为12,,,nu u u ,即T i i i λ=A Au u (i =1,2,…,n),(u i ,u j )=δi j (i ,j=1,2,…,n).对向量x ∈R n ,‖x ‖2=1,可由R n 的⼀组基u i (i =1,2,…,n)线性表⽰,即有1niii c ==∑x u ,22211nii c===∑x11nnT Ti ii i i cc λλλ====≤=∑∑A xx A A x .另⼀⽅⾯,取ξ=u 1,显然有‖ξ‖2=1,211112T T Tλλ===A ξξA A ξu u .因此,2221m ax ===xAA x得证.由定理1.5可见,计算⼀个矩阵的⾏范数和列范数是⽐较容易的,⽽矩阵的2范数计算却不⽅便,但由于它有许多好的性质,所以在理论上还是有⽤的.例1.12 设矩阵1234-??=解 {}m ax 3,77∞==A,{}1m ax 4,66==A ,10141420T-??=-A A ()21014det 3041420Tλλλλλ--==-+-I A A ,求得115λ=+215λ=-因此25.46=≈A.定义1.10 设A ∈R n ×n 的特征值为λi (i =1,2,…,n),称()1max i i nρλ≤≤=A为A 的谱半径.谱半径在⼏何上可解释为以原点为圆⼼,能包含A 的全部特征值的圆的半径中最⼩者.例1.13 计算例1.12中矩阵的谱半径.解由A 的特征⽅程()2=--=-I A得12λ=,22λ=所以() 5.372ρ=≈A .定理1.6 设A ∈R n ×n ,则有()ρ≤A A .证设A x =λx ,x ≠0,且|λ|=ρ(A ),必存在向量y ,使x y T 不是零矩阵.于是()TTTTA ρλ==≤A xyxyxyA xy,即得ρ(A )?‖A ‖.例1.14 设矩阵A 与矩阵B 是对称的,求证ρ(A +B )?ρ(A )+ρ(B ).证因T =A A ,于是有()()()222max max 2A A AA ,即‖A ‖2=ρ(A ).同理‖B ‖2=ρ(B ).由于A +B =(A +B )T,因此()()()222ρρρ+=+≤+=+A B A BABA B .定理1.7 如果‖B ‖<1,则I ±B 为⾮奇异矩阵,且()111-±≤-I B B,这⾥的矩阵范数是指矩阵的算⼦范数.证若I ±B 奇异,则存在向量x ≠0,使(I ±B )x =0,故有ρ(B )?1,这与‖B ‖<1⽭盾,所以I ±B ⾮奇异.由于()()11--±=± I B I B I B ,于是得()()11--±≤+±I B I BI B .上的任意两种矩阵范数都是等价的,即对Rn ×n上的任意两种矩阵范数sA和t A ,存在常数c 1,c 2>0,使得12stsc c ≤≤AAA.由矩阵范数的等价性,我们可以⽤矩阵的范数描述矩阵序列的极限性质.定义1.11 设矩阵序列()()()kk n nijn na ??=∈A R,k=1,2,…,若存在()n nij n na **=∈A R,使得()lim k ijijk a a *→∞()lim k k *→∞=AA.可以验证()()lim lim 0k k k k **→∞→∞=?-=AA AA.评注本章介绍了数值计算的研究对象、误差及相关概念、数值计算的稳定性及构造算法的基本原则.考虑到矩阵计算的数值分析,本章还介绍了向量范数和矩阵范数的基本概念和常⽤定理.误差分析问题是数值分析中重要⽽困难的问题.误差的基本概念和误差分析的若⼲原则,对学习本课程是很有必要的.但是,作为⼯程或科学计算的实际问题则要复杂得多,往往要根据不同问题分门别类地进⾏分析.例如,由于舍⼊误差有随机性,有⼈应⽤概率的观点研究误差规律.在⼯程计算中,常⽤⼏种不同办法(包括实验⽅法)进⾏⽐较,以确定计算结果的可靠性.20世纪60年代以来,发展了两种估计误差的理论:⼀种是J.H.W i lk i nson 等⼈针对计算机浮点算法提出了⼀套预先估计的研究误差的⽅法,使矩阵运算的舍⼊误差研究获得了新发展;另⼀种是R .E.Moore 等⼈应⽤区间分析理论估计误差,开创了研究误差的新⽅法. 关于范数⽅⾯,所述内容是为以下各章服务的⼀些初步概念和常⽤的定理,对本书够⽤就可以了.例如只讨论了R n ×n 的范数,⽽没有顾及R n ×m .⼜例如介绍了R n 和R n ×n 上范数的等价性,此性质对有限维空间都是成⽴的,⽽对于C[a,b]则没有这个性质,这些都是赋范线性空间有关的问题,详细讨论这些问题是泛函分析的内容.习题 11.1 已知e=2.71828…,问下列近似值A x 有⼏位有效数字,相对误差界是多少? (1) x =e, A x =2.7; (2) x =e, A x =2.718; (3) x =e100, A x =0.027; (4) x =e100, A x =0.02718. 1.2 设原始数据的下列近似值每位都是有效数字:1x *=1.1021, 2x *=0.031, 3x *=56.430. 试计算(1) 1x *+2x *+3x *;(2),并估计它们的相对误差界.1.3 设x 的相对误差界为δ,求n x 的相对误差界.1.4 设x >0,x 的相对误差界为δ,求ln2的绝对误差界.1.5 为了使计算球体体积时的相对误差不超过1%,问测量半径R 时的允许相对误差界是多少?1.6 三⾓函数值取4位有效数字,怎样计算1-cos2°才能保证精度? 1.7 设0Y =28,按递推公式nY=1n Y --…,计算.若取27.982(5位有效数字),试问计算Y 100将有多⼤误差?1.8 求解⽅程25610x x ++=,使其根⾄少具有4位有效数字(≈27.982).1.9 正⽅形的边长⼤约为100 cm ,应怎样测量才能使其⾯积的误差不超过21cm ? 1.10 序列{yn}满⾜递推关系1101n n y y -=-,n=1,2,….若y 0 1.41(3位有效数字),计算到y 10时的误差有多⼤?这个计算过程稳定吗?1.11 对积分11n x n I x edx -=,n=0,1,…,验证101I e-=-,11n n I nI -=-.若取e -1≈0.3679,按递推公式11n n I nI -=-,⽤4位有效数字计算I 0,I 1,…,I 9,并证明这种算法是不稳定的.1.12 反双曲正弦函数为()(ln f x x =+.如何计算f(x )才能避免有效数字的损(1) sin x -siny ; (2) arctan x -arctany ;(3)2; (4)212xe-.1.14 已知三⾓形⾯积1sin 2s ab C=,其中C 为弧度,0π,且测量a,b,C 的误差分别为Δa,Δb,ΔC ,证明⾯积的误差Δs 满⾜s a b C s ab C≤++ .1.15 设P ∈R n ×n 且⾮奇异,⼜设‖x ‖为R n 上的⼀种向量范数,定义p=xP x.试证明‖x‖P 是R n 上的⼀种向量范数.1.16 设A ∈R n ×n 为对称正定矩阵,定义()12,A=xA x x .试证明‖x‖A 为R n 上的⼀种向量范数.1.17 设矩阵0.60.50.10.3??=2F≤≤AA,并说明‖A ‖F 与‖x‖2相容.1.19 设P ∈Rn ×n且⾮奇异,⼜设‖x‖为R n上的⼀种向量范数,定义范数‖x‖P =‖P x ‖.证明对应于‖x‖P 的算⼦范数1 p-=APAP.1.20 设A 为⾮奇异矩阵,求证:11m iny ∞-≠∞∞=A y yA.。
(完整版)计算机第三.四章(网上题目,含答案)
3.1练习已完成分数:100.0
1
()是计算机中表示信息的最小单位。
两个二进制数10011和11001进行逻辑或后的结果应该是()。
二进制数只有0和1两个数字符号,基数是()。
正确答案:
第一空:2
我的答案:
第一空:
2
批语
6
逻辑代数是实现逻辑运算的数学工具,也称为()代数。
正确答案:
第一空:布尔
我的答案:
第一空:
布尔
批语
练习2.2已完成分数:90.0
1
若某种进位计数制中使用r个符号(0,1,2,……r-1),则称r为该进位计数制的()。
将二进制数11011.11转换为十进制数,其结果为()。
第一空:8第二空:23
我的答案:
第一空:
7
第二空:
23
批语
练习2.4已完成分数:100.0 1
下面不属于汉字编码的是()。
第一空:
分时
批语
4
操作系统是一种系统软件,它是()的接口。
练习3.2已完成分数:75.0
1
在Windows 中,关于文件夹的描述不正确的是()。
正确答案:A 我的答案:A
3
在Windows 操作环境下,要将整个屏幕画面全部复制到剪贴板中应该使用()键。
6
操作系统中,进程可以分为()进程和用户进程两类。
正确答案:
第一空:系统
我的答案:
第一空:
ORACLE
批语。
计算机组成原理第4章习题参考答案
计算机组成原理第4章习题参考答案第4章数值的机器运算4-2.某加法器采⽤组内并⾏,组间并⾏的进位链,4位⼀组,写出进位信号C6逻辑表达式。
[解] 组间并⾏的进位链,产⽣的最低⼀组的进位输出为:C4=G1*+P1*C0 (其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1;P1*=P4P3P2P1)然后在组内产⽣进位信号C6:C6=G6+P6C5=G6+P6G5+P6P5C44-4.已知X和Y,使⽤它们的变形补码计算出X+Y,并指出结果是否溢出。
(1)X=0.11011,Y=0.11111(2)X=0.11011,Y=-0.10101(3)X=-0.10110,Y=-0.00001(4)X=-0.11011,Y=0.11110[解](1)[X]补=0.11011,[Y]补=0.1111100.11011 [X]补+00.11111 [Y]补01.11010 [X+Y]补结果正溢出!(2)[X]补=0.11011,[Y]补=1.0101100.11011 [X]补+11.01011 [Y]补00.00110 [X+Y]补结果不溢出!X+Y=0.00110(3)[X]补=1.01010,[Y]补=1.1111111.01010 [X]补+11.11111 [Y]补11.01001 [X+Y]补结果不溢出!X+Y=-0.10111(4)[X]补=1.00101,[Y]补=0.1111011.00101 [X]补+00.11110 [Y]补00.00011 [X+Y]补结果不溢出!X+Y=0.000114-5.已知X和Y,使⽤它们的变形补码计算出X-Y,并指出结果是否溢出。
(1)X=0.11011,Y=-0.11111(2)X=0.10111,Y=0.11011(3)X=0.11011,Y=-0.10011(4)X=-0.10110,Y=-0.00001[解](1)[X]补=0.11011,[Y]补=1.00001, [-Y]补=0.1111100.11011 [X]补+00.11111 [-Y]补01.11010 [X-Y]补结果正溢出!(2)[X]补=0.10111,[Y]补=0.11011, [-Y]补=1.0010100.10111 [X]补+11.00101 [-Y]补11.11100 [X-Y]补结果不溢出!X-Y=11.11100(3)[X]补=0.11011,[Y]补=1.01101, [-Y]补=0.1001100.11011 [X]补+00.10011 [-Y]补01.01110 [X-Y]补结果正溢出!(4)[X]补=1.01010,[Y]补=1.11111,[-Y]补=0.0000111.01010 [X]补+00.00001 [-Y]补11.01011 [X-Y]补结果不溢出!X-Y=-0.101014-6.已知:X=0.1011,Y=-0.0101求:[X/2]补 ,[X/4]补 ,[-X]补 ,[Y/2]补 ,[Y/4]补 ,[-Y]补,[2Y]补[解] 由[X]补=0.1011,[Y]补=1.1011 得:[X/2]补=0.0101,[X/4]补=0.0010,[-X]补=1.0101[Y/2]补=1.1101,[Y/4]补=1.1110,[-Y]补=0.0101,[2Y]补=1.01104-7. 设下列数据长8位,包括⼀位符号位,采⽤补码表⽰,分别写出每个数右移或左移两位之后的结果(1)0.1100100 (2) 1.0011001 (3) 1.1100110 (4)1.0000111[解] (1)右移两位后为 0.0011001 左移两位后为1.0010000(溢出)或0.0010000 (2)右移两位后为 1.1100110 左移两位后为0.1100100(溢出)或1.1100100(3)右移两位后为1.1111001 左移两位后为 1.0011000(4)右移两位后为 1.11000001 左移两位后为0.0011100(溢出)或1.00111004-8.分别⽤原码乘法和补码乘法计算X×Y.(1) X=0.11011,Y=-0.11111(2) X=-0.11010,Y=-0.01110[解]原码乘法:(1)|X|=0.11011 → B, |Y|=0.11111 →C,0→A5=1,+ |X|00.1101100.01101 1 0 1 1 1 1 部分积右移1位5=1,+ |X|01.0100000.10100 0 1 0 1 1 1 部分积右移1位5=1,+ |X|01.0111100.10111 1 0 1 0 1 1 部分积右移1位5=1,+ |X|01.1001000.11001 0 1 0 1 0 1 部分积右移1位5=1,+ |X|01.1010000.11010 0 0 1 0 1 0 部分积右移1位所以, |X×Y|=0.1101000101X×Y=-0.1101000101(2) |X|=0.11010 → B, |Y|=0.01110 → C, 0→A 5=0,+ 000.0000000.00000 0 0 0 1 1 1 部分积右移1位5=1,+ |X|00.1101000.01101 0 0 0 0 1 1 部分积右移1位5=1,+ |X|01.0011100.10011 1 0 0 0 0 1 部分积右移1位5=1,+ |X|01.0110100.10110 1 1 0 0 0 0 部分积右移1位5=0,+ 000.1011000.01011 0 1 1 0 0 0 部分积右移1位所以, |X×Y|=0.010*******X×Y=+0.010*******补码乘法:(1)[X]补=0.11011 → B, [Y]补=1.00001 → C, 0 → A [-X]补说明 + [-X]补5C 6=10,+ [-X]补11.0010111.10010 1 1 0 0 0 0 1 部分积右移1位+ [X]补5C 6=01,+ [X]补00.0110100.00110 1 1 1 0 0 0 0 部分积右移1位5C 6=00,+ 000.0011000.00011 0 1 1 1 0 0 0 部分积右移1位5C 6=00,+ 000.0001100.00001 1 0 1 1 1 0 0 部分积右移1位5C 6=00,+ 000.0000100.00000 1 1 0 1 1 1 0 部分积右移1位+ [-X]补 5C 6=10,+ [-X]补所以, [X×Y]补=1.0010111011X×Y =-0.1101000101(2)[X]补=1.00110 → B, [Y]补=1.10010 → C, 0→A [-X]补说明5C 6=00,+ 01位+ [-X]补 00.11010 C 5C 6=10,+ [-X]补00.1101000.01101 0 0 1 1 0 0 1 部分积右移1位+ [X]补 11.00110 C 5C 6=01,+ [X]补11.1001111.11001 1 0 0 1 1 0 0 部分积右移1位+ 0 00.00000 C 5C 6=00,+ 011.1100111.11100 1 1 0 0 1 1 0 部分积右移1位+ [-X]补 00.11010 C 5C 6=10,+[-X]补00.1011000.01011 0 1 1 0 0 1 1 部分积右移1位+ 0 5C 6=11,+ 000.01011所以, [X×Y]补=0.010*******X×Y = 0.010*******4-10.分别⽤原码和补码加减交替法计算X/Y 。
第4章习题
一、选择题1.RISC访内指令中,操作数的物理位置一般安排在(C )。
A 栈顶和次栈顶B 两个主存单元C 一个主存单元和一个通用寄存器D 两个通用寄存器2.单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用(C )。
A 堆栈寻址方式B 立即寻址方式C 隐含寻址方式D 间接寻址方式3.寄存器间接寻址方式中,操作数在(B )。
A 通用寄存器B 主存单元C 程序计数器 D 堆栈4.指令系统中采用不同寻址方式的目的主要是(B)A 实现存储程序和程序控制B 缩短指令长度,扩大寻址空间,提高编程灵活性C 可以直接访问外存D 提供扩展操作码的可能并降低指令译码难度5.堆栈寻址方式中,设A为累加器,SP为堆栈指示器,M为SP指示的栈顶单SP,(SP)-1→SP,则出栈操作的动作就元,如果进栈操作的动作是:(A)→MSP为(B )A (M)→A,(SP)+1→SPSP)→AB (SP)+1→SP,(MSPC (SP)-1→SP,(M)→ASP)→A,(SP)-1→SPD (MSP6.下列几项中,不符合RISC指令系统的特点是(B )A 指令长度固定,指令种类少B 寻址方式种类尽量减少,指令功能尽可能强C 增加寄存器的数目,以尽量减少访存次数D 选取使用频率最高的一些简单指令,以及很有用但不复杂的指令二、填空题1.形成指令地址的方法称为指令寻址,通常是(顺序)寻址,遇到转移指令时(跳跃)寻址。
2.RISC指令系统的最大特点是:只有(取数)指令和(存数)指令访问存储器,其余指令的操作均在寄存器之间进行。
3.二地址指令中,操作数的物理位置有三种形式,分别是(SS )型、(RR )型和(RS )型。
4.一个较完善的指令系统,应当有(数据处理)、(数据存储)、(数据传送)、(程序控制)四大类指令。
5.机器指令对四种类型的数据进行操作。
这四种数据类型包括(地址数据)型数据、(数值数据)型数据、(字符数据)型数据、(逻辑数据)型数据。
第4章 数值的机器运算
哈尔滨学院2014年秋季学期单元测试试卷课程名称:计算机组成原理单元名称:第四章数值的机器运算一、填空题1.影响并行加法器速度的关键因素是。
2.A、B均为8位二进制数,A=F0H,B=E0H,则A+B= ,A-B= 。
C4.两个补码数相加,采用1位符号位,当时,表示结果溢出。
A.符号位有进位B.符号位进位和最高数位进位异或结果为0C. 符号位为1D.符号位进位和最高数位进位异或结果为15.在双符号位判断溢出的方案中,出现正溢时,双符号位应当为。
A. 00B. 01C. 10D. 116.在定点机中执行算术运算时会产生溢出,其原因是。
A.主存容量不够 B.操作数过大C.操作数地址过大D.运算结果无法表示7. 当定点运算发生溢出时,应进行。
A. 向左规格化B.向右规格化91112.X、C.n+1 D. n+213.原码加减交替除法又称为不恢复余数法,因此。
A.不存在恢复余数的操作B.当某一步运算不够减时,做恢复余数的操作C.仅当最后一步余数为负时,做恢复余数的操作D.当某一步余数为负时,做恢复余数的操作14.在加法器、寄存器的基础上增加部分控制电路实现除法时,用B寄存器存放。
A.被乘数和被除数B.被乘数和除数C. 乘数和被除数D.乘数和除数15.若浮点数用补码表示,判断运算结果是否是规格化数的方法是。
16.20.计算机中的累加器。
A .没有加法器功能,也没有寄存器功能B.没有加法器功能,有寄存器功能C. 有加法器功能,没有寄存器功能D.有加法器功能,也有寄存器功能21.一个C 语言程序在一台32位机器上运行。
程序中定义了3个变量x 、y 和z ,其中x 和z 为int 型,y 为short 型。
当x=127、y=-9时,执行赋值语句z=x+y 后,x 、y 和z 的值分别是A .H z H FFF y FH x 00000076,9,0000007===B .H FFFF z H FFF y FH x 0076,9,0000007===C. H FFFF z H FFF y FH x 0076,7,0000007===D .H z H FFF y FH x 00000076,7,0000007===222325A. y x +B. y x +-C. y x -D. y x --三、判断题1.进位信号串行传递的加法器称为串行加法器。
计组第2章-1编码
2011-2-16
8
4.1 数据和编码
编码—— ——机器数 2. 编码——机器数 数字电路状态→高低电平→ 数字电路状态→高低电平→0,1←进计算机←任何信息 进计算机← 编码——用 编码——用0,1表示信息的方式,且有效、权威 —— 表示信息的方式,且有效、 1)字符编码——ASCII码(P24表) 字符编码——ASCII码 ——ASCII 24表 2)汉字编码(P24) 汉字编码( 24) 输入— 输入—输入码 存放— 存放—内码 输出— 输出—字形码 3)十进制数字编码——BCD码(8421码) 十进制数字编码——BCD码 8421码 ——BCD
2011-2-16
10
0-3位 位
0000 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
2011-2-16
表 ASCII字符编码表 字符编码表
0001 DEL DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 0010 SP ! " # $ % & ' ( ) * + , . / 0011 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 0100 @ A B C D E F G H I J K L M N O 0101 P Q R S T U V W X Y Z [ \ ] ^ _ 0110 ` a b c d e f g h i j k 1 m n o NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
注意:有符号定点数是研究数的基础。 注意:有符号定点数是研究数的基础。
计算机组成原理-第4章_指令系统
7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。
计算机组成原理:4-2 数值的机器运算
( 小数点不动 !)
左移 ——绝对值扩大
右移—— 绝对值缩小
在计算机中,移位与加减配合,能够实现
乘除运算。
逻辑移位
逻辑移位——无符号数的移位。
逻辑左移:低位添 0,高位移丢。
0 逻辑右移:高位添 0,低位移丢。
0
例:
01010011
逻辑左移 10100110
逻辑右移 00101001
算术移位
较大正数相加 产生进位,影
响符号位
解: [X]补= 0 , 1 0 1 0 + [Y]补= 0 , 1 0 0 1 1,0011
设字长为5
例2:X=-1010 Y=-1011 求 X+Y
解: [X]补= 1, 0 1 1 0
+ [Y]补= 1, 0 1 0 1 0,1011
较大的负数对应较 小的正数补码,相 加无进位,符号位
例: X=-0.1100 Y=-0.1000,求 X+Y=? 解:设字长为5.
[X]补=11. 0100 + [Y]补=11. 1000
10. 1100 结果说明:
负数绝对值太大了对应的补码小,最高数据位向前无进位, 而符号位向前有进位; 两个符号位:10,表示负上溢
双符号位法溢出逻辑表达式为:V=Sf1⊕ Sf2
在模2意义下,任意两数的补码之和等于该两数之和 的补码。 这是补码加法的理论基础。
特点:
不需要事先判断符号,符号位与数值位一起参加 运算,符号位相加后若有进位,则舍去该进位数字。
补码加法运算举例
例: X=+0.1010, Y=+0.0011,求 X+Y 解: 设字长为5.
[X]补=0. 1 0 1 0 + [Y]补=0. 0 0 1 1
《计算机组成原理第4章数值的机器运算
3.移位功能的实现 3.移位功能的实现 在计算机中, 在计算机中 , 通常移位操作由移位寄存 器来实现, 器来实现,但也有一些计算机不设置专门的移 位寄存器,而在加法器的输出端加一个移位器。 位寄存器,而在加法器的输出端加一个移位器。 移位器是由与门和或门组成的逻辑电路( 移位器是由与门和或门组成的逻辑电路(实际 是一个多路选择器) 可以实现直传( 是一个多路选择器 ) , 可以实现直传 ( 不移 左斜一位送(左移一位) 位)、左斜一位送(左移一位)和右斜一位送 右移一位)的功能。 (右移一位)的功能。
10
3.补码加减运算规则
⑴参加运算的两个操作数均用补码表示; 参加运算的两个操作数均用补码表示; 符号位作为数的一部分参加运算; ⑵符号位作为数的一部分参加运算; 若做加法, 则两数直接相加, 若做减法, ⑶ 若做加法 , 则两数直接相加 , 若做减法 , 则 将被减数与减数的机器负数相加; 将被减数与减数的机器负数相加; ⑷运算结果仍用补码表示
第4章数值的机器运算
运算器是计算机进行算术运算和逻辑运 算的主要部件, 算的主要部件,运算器的逻辑结构取决于机器 的指令系统、数据表示方法和运算方法等。 的指令系统、数据表示方法和运算方法等。本 章主要讨论数值数据在计算机中实现算术运算 和逻辑运算的方法, 和逻辑运算的方法,以及运算部件的基本结构 和工作原理。 和工作原理。
8
4.2.2 补码加减运算
1.补码加法 补码加法 两个补码表示的数相加,符号位参加运算, 两个补码表示的数相加,符号位参加运算,且两 数和的补码等于两数补码之和, 数和的补码等于两数补码之和,即: [X+Y]补=[X]补+[Y]补
2.补码减法 补码减法
根据补码加法公式可推出: 根据补码加法公式可推出: [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 从补码减法公式可以看出,只要求得[-Y] 补 , 就 从补码减法公式可以看出 , 只要求得 可以变减法为加法。 不管Y的真值为正或为负 的真值为正或为负, 可以变减法为加法 。 不管 的真值为正或为负 , 已知 [Y]补求[-Y]补的方法是:将[Y]补连同符号位一起求反, 的方法是: 连同符号位一起求反, 末尾加“ 被称为[Y] 的机器负数, 末尾加 “ 1” 。 [-Y]补 被称为 补 的机器负数 , 由 [Y] 补 的过程称为对[Y] 变补(求补) 求[-Y]补的过程称为对 补变补(求补),表示为 [-Y]补=[[Y]补]变补 9
计算机运算原理教案
计算机运算原理教案第一部分,引言。
计算机运算原理是计算机科学中的基础知识,它涉及到计算机如何进行运算、存储数据以及进行逻辑判断。
本教案将介绍计算机运算原理的基本概念和相关知识,帮助学生深入了解计算机的运作原理。
第二部分,计算机运算基础。
1. 二进制系统。
计算机是以二进制系统进行运算的,即所有的数据都以0和1的形式进行存储和计算。
学生需要了解二进制系统的基本概念,包括二进制数的表示方法、二进制加减乘除的运算规则等。
2. 逻辑门。
逻辑门是计算机中的基本组成单元,它可以进行逻辑运算并输出结果。
学生需要了解与、或、非等逻辑门的基本原理和运算规则,理解逻辑门在计算机中的作用。
3. 数据存储。
计算机中的数据存储是通过存储单元来实现的,学生需要了解存储单元的基本结构和工作原理,包括存储单元的地址、数据存储方式等。
第三部分,计算机运算原理。
1. 运算器。
运算器是计算机中负责进行运算的部分,学生需要了解运算器的基本结构和工作原理,包括运算器的算术逻辑单元、寄存器等组成部分。
2. 控制器。
控制器是计算机中负责控制整个运算过程的部分,学生需要了解控制器的基本结构和工作原理,包括控制器的指令执行过程、时序控制等。
3. 存储器。
存储器是计算机中负责存储数据和程序的部分,学生需要了解存储器的基本结构和工作原理,包括存储器的层次结构、存储器的访问方式等。
第四部分,计算机运算原理的应用。
1. CPU的工作原理。
CPU是计算机中的核心部件,它负责进行数据运算和控制整个计算机系统的运行。
学生需要了解CPU的工作原理,包括指令执行过程、数据传输过程等。
2. 内存的工作原理。
内存是计算机中的重要存储部件,它负责存储数据和程序。
学生需要了解内存的工作原理,包括数据的读写过程、内存的地址映射等。
3. 输入输出设备的工作原理。
输入输出设备是计算机与外部世界进行交互的接口,学生需要了解输入输出设备的工作原理,包括数据的输入输出过程、设备的控制方式等。
计算机组成原理第4章浮点数运算方法ppt课件
jy]移 (mod 2n+1) 则直接可得移码形式。
同理,当作除法运算时,商的阶码可用下式完成: [jx]移+[-jy]补 = [jx - jy]移
11
5. 溢出判断
在浮点规格化中已指出,当尾数之和(差)出现 01.××…×或10.××…×时,并不表示溢出,只有 将此数右规后,再根据阶码来判断浮点运算结果是否 溢出。
若机器数为补码,尾数为规格化形式,并假设阶符取 2位,阶码取7位,数符取2位,尾数取n位,则它们能 表示的补码在数轴上的表示范围如下图。
浮 点 数 加 减 运 算 流 程 图
16
浮点加减法运算
1. 大型计算机和高档微型机中,浮点加减法运算是由 硬件完成的。低档的微型机浮点加减法运算是由软 件完成的,但无论用硬件实现或由软件实现加减法 运算,基本原理是一致的。
2. 浮点加减法运算要经过对阶、尾数求和、规格化、 舍入和溢出判断五步操作。其中尾数运算与定点加
23
2. 尾数运算
(1)浮点乘法尾数运算 (2)浮点除法尾数运算
24
(1)浮点乘法尾数运算
预处理:检测两个尾数中是否有一个为0, 若有一个为0,乘积必为0,不再作其他操 作;如果两尾数均不为0,则可进行乘法运 算。
相乘:两个浮点数的尾数相乘可以采用定 点小数的任何一种乘法运算来完成。
规格化:相乘结果可能要进行左规,左规 时调整阶码后如果发生阶下溢,则作机器 零处理;如果发生阶上溢,则作溢出处理。
计算机组成原理_指令系统
4.1 指令系统的发展与性能要求 4.2 指令格式与 4.3 操作数类型 4.4 指令和数据的寻址方式 4.5 典型指令
返回
1
4.1 指令系统的发展与性能要求
1、指令在计算机系统中的地位 (1)是软件和硬件分界面的一个主要标志
– 硬件设计人员采用各种手段实现它;
– 软件设计人员则利Βιβλιοθήκη 它编制各种各样的系统软 件和应用软件
– 指令系统是表征一台计算机性能的重要因素,它的格式 与功能不仅直接影响到机器的硬件结构,而且也直接影
3
4.1 指令系统的发展与性能要求
3、发展情况 – 复杂指令系统计算机,简称CISC。但是如 此庞大的指令系统不但使计算机的研制 周期变长,难以保证正确性,不易调试 维护,而且由于采用了大量使用频率很 低的复杂指令而造成硬件资源浪费。 – 精简指令系统计算机:简称RISC,人们又 提出了便于VLSI技术实现的精简指令系统 计算机。
• Pentium数据类型(见P111表4.4)
– 常规数据类型 – 整数数据类型 – ……..
23
4.4 指令和数据的寻址方式
• 研究问题
– 确定本条指令中各操作数的地址 – 下一条指令的地址
• 寻址方式是指CPU根据指令中给出的地址码 字段寻找相应的操作数的方式,它与计算 机硬件结构紧密相关,而且对指令的格式 和功能有很大的影响。
30
2、立即寻址
• 特点:在取指令时,操作码和操作数被同时取出, 不必再次访问存储器,从而提高了指令的执行速 度。 • 但是,因为操作数是指令的一部分,不能被修改; • 而且对于定 长指令格式,操作数的大小将受到指 令长度的限制,所以这种寻址方式灵活性最差 • 通常用于给某一寄存器或主存单元赋初值,或者 用于提供一个常数。
计算机组成原理复习2
主存容量
一个主存储器所能存储的全部信息量称 为主存容量。衡量主存容量单位有两种: ① 字节数。这类计算机称为字节编址的计 算机。每1024个字节称为1K字节 (210=1K),(220=1M),(230=1G)。 ② 字数×字长。这类计算机称为字编址的 计算机。如:4096×16表示存储器有4096 个存储单元,每个存储单元字长为16位。
计算机组成原理复习
写出各种寻址方式的有效地址EA 的计算式(PC为程序计数器,A为 形式地址,Rx为变址寄存器): 寻址方式: 例:立即寻址 EA=(PC) 直接寻址 间接寻址 变址寻址 相对寻址
计算机组成原理复习
习题1:执行一条一地址的加法指令共 需要___ B 次访问内存(含取指令)。
A. 1 B. 2 C. 3 D. 4
计算机组成原理复习第第3章章指令系统计算机组成原理复习专业文档某机字长32位指令单字长指令系统中具有二地址指令一地址指令和零地址指令各若干条已知每个地址长12位采用扩展操作码方式问该指令系统中二地址指令一地址指令零地址指令各最多能有多少条
计算机组成原理
陈锦煌
E-mail:554237327@
A. 4K B. 8K C. 16K D. 24K
计算机组成原理复习
习题4:某计算机存储器按字(16位)编址, 每取出一条指令后PC的值自动+1,说明其 指令长度是___ B。
A. 1字节 B. 2字节 C. 3字节 D. 4字节
计算机组成原理复习
习题5:变址寄存器寻址方式中,若变址 寄存器的内容是4E3CH,指令中的形式地 址是63H,则对应的有效地址是___ D。
计算机组成原理复习
计算机的硬件应由运算器、存储器、控制器、输入设 备和输出设备五大基本部件组成。它们各自的功能是: ① 输入设备:把人们编好的程序和原始数据送到计算 机中去,并且将它们转换成计算机内部所能识别和接 受的信息方式。 ② 输出设备:将计算机的处理结果以人或其他设备所 能接受的形式送出计算机。 ③ 存储器:用来存放程序和数据。 ④ 运算器:对信息进行处理和运算。 ⑤ 控制器:按照人们预先确定的操作步骤,控制整个 计算机的各部件有条不紊地自动工作。
计算机组成原理数据的机器运算
3
1、全加器(FA)
全加器真值表
全加器(FA)是最基本 的运算单元,由它构成 加法器。
全加器有三个输入量: 操作数Ai、Bi、以及低 位传来的进位信号Ci-1 。
全加器有两个输出量: 本位和Si、以及向高位 的进位信号Ci。
Ai 0 0 0 0 1 1 1 1
Bi 0 0 1 1 0 0 1 1
27
2、补码加减溢出的判别
例3、X=1011,Y=111 求X+Y。 解:[X]补=0,1011,[Y]补=0,0111 0,1011 (+11) 0,0111 (+7) 1,0010 例4、X=-1011,Y=-111 求X+Y。 解:[X]补=1,0101,[Y]补=1,1001 1,0101 (-11) 1,1001 (-7 ) 0,1110
参加运算的操作数用补码表 示。 补码的符号位与数值位同时 参加运算。 若做加法,则两数补码直接 相加; 若做减法,用被减数与减数 的机器负数相加。 运算结果为和、差的补码。 注:机器负数等于补码连同 符号位按位求反,末位加1。
26
补码加减示例
例1、A=0.1011, B=-0.1110,求A+B. 解: [A]补 = 0.1011, [B]补 = 1.0010 0.1011 + 1.0010 1.1101 ∴ [A+B]补 = 1.1101 A+B = -0.0011 例2、A=0.1011, B=-0.0010,求A-B. 解: [A]补 = 0.1011, [B]补 = 1.1110, [-B]补 = 0.0010 0.1011 + 0.0010 0.1101 ∴ [A-B]补 = 0.1101 A-B = 0.1101
计算机组成原理第四章指令系统[一]
例如:Intel8086 中的立即寻址指令.
MOV Ax,2000H; 将立即数2000H存入累加器AX中
2.存储器直接寻址(Memory direct addressing):指令的地
4.1 指令格式
1.指令格式
操作码 地址码
• 操作码(Operation code):指明该指令执行 什么性质的操作,不同的指令有不同的操作 码.其位数反映了机器操作种类,即机器允许 的指令条数.
• 地址码:指明操作数所在的地址(Source operand reference),结果存放的地址(Result operand reference)以及下一条指令的地址 (Next instruction reference).
• 变长指令字结构:一个指令系统中,各种指令字 长度随功能而异.CISC采用变长指令字结构. 优点:使用灵活,充分利用指令的每一位,指令平均 长度短,码点冗余少,易于扩展; 缺点:指令格式不规整,取指令时需要多次访存,从 而导致不同指令的执行时间不同,硬件控制系统 复杂.
2.地址码结构
设计指令的地址码格式时需解决:
XXXX XXXX 0000 1 1 01 1110 1110 1110 1111 1111 1111 1111
YYYY YYYY YYYY YYYY 0000 0001 1111 0000 1110 1111 1111
ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ
ZZZZ 0000 1111
指令格式为:
设Data为操作数
13计科计算机组成原理考试复习 (1)
CPU将提供15根地址线A14-A0、8根数据线与 存储器相连;而存储芯片仅有13根地址线、8根数据 线。四个芯片的地址线A12~A0、数据线D7~D0及读 写控制信号 WE 都是同名信号并联在一起;高位地 址线A14、A13经过一个地址译码器产生四个片选信号 CS ,分别选中四个芯片中的一个。
3、在堆栈操作中,压栈操作时做什么操作? 答:压栈操作时SP减1后将数据存入SP指示的存储单 元 。 4、堆栈指针SP的内容是内容? 答:堆栈指针SP的内容是栈顶地址 5、自底向上生成堆栈的进栈时是如何操作的? 答:自底向上生成堆栈的进栈,堆栈的栈底地址大于栈顶 地址,通常栈指针始终指向栈顶的满单元。进栈时, SP的内容需要先自动减1,然后再将数据压入堆栈。 6、自底向上生成堆栈的出栈时是如何操作的? 答:自底向上生成堆栈的出栈时,需要先将堆栈中的数据 弹出,然后SP的内容再自动加1。
3、以下浮点数的表示中,尾数是补码表示时,
判断哪一个符合规格化要求? 1)0.0011110×20 ;答:有2位无效0 2)0.0001011×2-2 ;答:有3位无效0 3)1.1110010×21 ;答:有3位无效0 4)1.0011011×2-4 ;答:规格化 4、以下浮点数的表示中,尾数是原码表示, 判断哪一个符合规格化要求? 1)1.0010011×2-4 ;答:有2位无效0 2)1.1100110×21 ;答:规格化 3)0.0011110×20 ;答:有2位无效0 4)0.0111011×2-2 ;答:有1位无效0
3、
在二进制尾数的浮点数中,为了保持数值 不变,小数点右移2位,阶码要如何处理? 答:二进制尾数小数点右移2位(左规2位), 阶码要减2 (例:0.0025×104 = 0.25×102 = 25) 4、 在二进制尾数的浮点数中,为了保持数值 不变,小数点左移2位,阶码要如何处理? 答:二进制尾数小数点左移2位(右规2位), 阶码要加2 (例:25000×10-3 = 250×10-1 = 25)
计算机组成原理第4章
数据开关 (11000001)
C1H
打开三 态门 SW_G=0
-1 0 +1 定点小数
器允许的表示范围(溢出)。
补码 纯小数:0≤X<1
总线1 总线2
通用 寄存器
ALU
特殊 寄存器
总线 旁路器
总线3
16
4.9 运算器的基本组成与实例
4.9.2 ALU举例 1. ALU电路
ALU即算术逻辑单元,它是既能完成算术运 算又能完成逻辑运算的部件。前面已经讨论过, 无论是加、减、乘、除运算,最终都能归结为加 法运算。因此,ALU的核心首先应当是一个并行 加法器,同时也能执行像“与”、“或”、 “非”、“异或”这样的逻辑运算。由于ALU能 完成多种功能,所以ALU又称多功能函数发生器。
C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0
C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
6
C1=G1+P1C0 C2=G2+P2C1 C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
…
…
计算机组成原理课件第四章计算机中的算术运算
例:[X]补=0.1101,[Y]补=0.1011,求X*Y=?
解: 部分积
乘数
说明
00.0000 + 11.0011
0. 1 0 1 1 0
YYnnY+1n=+10=10, 加[-X]补
11.0011 → 11.1001 + 00.0000
1. 0 1 0 1 1
右移一位
YnY n+1=11, 加0
当计数器i=n+1时,封锁LDR1和L
DR0控制信号,使最后一步不移位。
原码两位乘法
◦ 两位乘法即从乘数的最低位开始每次取两位乘数与被乘数 相乘得到一次部分积。
◦ Yi-1yi=00,相当于0×x,部分积加0,右移两位 ◦ Yi-1yi=01,相当于1×x,部分积加|x|,右移两位 ◦ Yi-1yi=10,相当于2×x,部分积加2|x|,右移两位 ◦ Yi-1yi=11,相当于3×x,部分积加3|x|,右移两位
采用双符号位的判断方法
每个操作数的补码符号用两个二进制数表示,称为 变形补码,用“00”表示正数,“11”表示负数,左边第 一位叫第一符号位,右边第一位称为第二符号位,两个 符号位同时参加运算,如果运算结果两符号位相同,则 没有溢出发生。如果运算结果两符号位不同,则表明产 生了溢出。“10”表示负溢出,说明运算结果为负数, “01”表示正溢出,说明运算结果为正数。
Zf=Xf+Yf=0+0=0 [Z]原=0 . 10001111 X*Y=0.10001111
原码一位乘法的逻辑电路图
R0存放部分积,R2存放被乘数,R1存放 乘数。
一、 R0清零,R2存放被乘数,R1存放乘数。 乘法开始时,“启动”信号时控制CX置1, 于是开启时序脉冲T,
计算机组成原理基础-孙德文课后习题解答
计算机组成基础习题详解(初稿)孙德文上海交通大学软件学院2009.3第1章计算机系统概论1.1 数字计算机和模拟计算机的区别?解:电子数字计算机的特点是数据由离散量来表示,是对离散变量进行处理和运算的解算装置。
电子模拟计算机的特点是数据由连续量来表示,是对连续变量进行运算的解算装置。
在电子模拟计算机中,变量为连续变化的直流电压、电流或电荷。
1.2 说明冯·诺依曼计算机的设计思想?写出冯·诺依曼计算机的主要组成部分?解:冯·诺依曼计算机的设计思想是:提出了“存储程序”的概念,程序设计者按计算要求编制好程序,将程序和运行程序中所用的数据以二进制代码的形式存入计算机的存储器中,由计算机自动执行程序。
使电子计算机有了通用性,只要能写出正确的指令,计算机执行时就无须人工干预。
冯·诺依曼计算机的主要组成部分是:运算器、控制器、存储器、输入设备和输出设备。
其中运算器和控制器合称“中央处理机”(或称为CPU,Central Processing Unit),CPU与存储器(内存储器)合称为“主机”,而输入设备和输出设备合称为“外部设备”。
1.3 描述计算机的发展过程及应用范围?解:电子数字计算机从1946年第一台ENIAC机至今可分为4代:第一代——电子管计算机;第二代——晶体管计算机第三代——集成电路计算机第四代——大规模和超大规模集成电路计算机应用范围1.4 计算机软件的组成?并举例说明。
解:计算机的主要应用领域包括:数值计算、数据处理、计算机控制、计算机辅助设计/计算机辅助制造和人工智能等。
1.5 说明计算机系统的层次结构及各层次结构的特点?解:计算机系统的层次结构共分8级,从L0~L7,其中:L0为硬联逻辑,实现微指令的控制时序,是计算机系统硬件的内核;L2为机器语言级计算机,该级的机器语言就是该计算机的指令系统;L3为操作系统,为用户提供一个操作环境;L4为汇编语言级计算机,该级的机器语言是汇编语言,由相应级的计算机进行解释、执行;L5为高级语言类计算机,该级的机器语言是各种高级语言,该级计算机基本上脱离了物理计算机,供程序员使用;L6 为应用语言计算机,该级的机器语言是面向非计算机专业人员直接使用的应用语言;L7为应用系统分析和设计,是系统总体分析级,用以建立数学模型和算法,确定系统配置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制总线 ADD R0, R1
接口
输入/出设备
主存储器
MAR PC PC PC+1 读内存,IR读出内容 R0 R0 + R1
2007
运算器
4275
C Z V S
控制器
主振
脉冲
ALU
4725 1234 6688
+ 0
PC
乘 商 寄 存 器
2001 2002
MAR
控制 存储器
微指令寄存器
操作码译码输出
6.3 指令执行过程的分析
6.3.1 三级时序系统 1.指令周期和机器周期
指令周期 CPU每进行一种操作,都需要时间的开销。因此,CPU取指令、译 码、执行需要一定的时间,这一系列操作的时间称为指令周期 。由于各种指 令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期不尽相 同。 机器周期(又称CPU周期)
地址寄存器用来保存当前CPU所要访问的主存单元或I/O端口的地址。 问题: ① 为什么需要专用的寄存器保存访存的地址呢? 答案:当CPU要对存放在主存或外部设备的信息进行存取时,就是通过CPU将地址信 息传送到地址总线上,再由地址译码电路实现。在对主存或I/O端口内的信息存取 过程中,地址信号必须是稳定的。因此地址信息要由一个寄存器来保存,这个寄 存器就是地址寄存器。
2.专用寄存器(续)
(6) 累加寄存器(AC) 累加寄存器简称累加器。累加器为算术逻辑单元(ALU) 提供一个操作数,并用来保存操作的结果。算术逻辑单元最基 本的操作是加法,这就是累加器名称的由来。显然,在一个算 术逻辑单元中,至少有一个累加器。
从硬件设计的角度: 地址寄存器和数据寄存器、指令寄存 器都是一样的,采用单纯的寄存器结构。
数据寄存器 本章着重讨论控制器的功能和组成,并且在详细分析指令执行流程的基础具体介绍微程序控制原理,和组合逻辑
计算机硬件结构框图 控制器基本控制单元的设计 .
存储系统
控制器
运算器
6.1 控制器的功能概述
• • • 冯. 诺依曼结构的计算机 计算机的功能是执行程序
2000 0001 2001 0790 2002 8800 2007 2004 8309 2005 8280 2006 8F00
ADD R0, R1 MVRR R9, R0 MVRD R0, 2007
STRR [R0], R9 (写内存) IN 80 (读串行口) RET
运算器
4275
C Z V S
ALU PSWR AC
CU
ID
+1
PC MDR MAR 主 存 I/O
其中CU(控制单元)是 控制器中最复杂最重要 的部分
图6-2 CPU的模型
…
IR
6.1.3 CPU 的组成 CPU
控制信号
6.2 控制器的组成和实现方法
6.2.1 控制器的基本组成
6.2.1 控制器的基本组成
1. 指令部件
指令部件的主要任务是完成取指令并分析指令。指令部件包括:
– “存储程序”计算机,在程序运行之前将程序调入内存,然后执行程序。
– 程序是依次排列起来的指令序列
计算机执行程序的基本过程
– 从程序首地址开始执行第一条指令; – 并形成下一条待执行指令地址; – 自动地连续执行指令,直到程序的最后一条指令 问题: CPU总是在执行指令吗?会不会停下来什么都不做?
6.2.1 控制器的基本组成
(2) 节拍信号发生器
脉冲源产生的脉冲信号,经过节拍信号发生器后产生出各 个机器周期中的节拍信号,用以控制计算机完成每一步微操作。
6-5
节拍信号发生器逻辑电路
时钟周期、节拍电位信号
时钟周期
CLK
T0
T1
T2 T3 图6-6 时钟周期与节拍信号
6.2.1 控制器的基本组成
地址
用PC来代替MAR可以吗?为什么呢? ② 如果MAR 具有自行计数的功能, 它能代替PC吗?
CS WE 数据 数据输出
2.专用寄存器(续)
(4)指令寄存器(IR) 指令寄存器用来存放从存储器中取出的指令。当指令从主存取出暂存于 指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变 化,以保证实现指令的全部功能。 为了执行指令,必须先确定该指令的操作性质,即先要对指令中的操作码 进行译码。译码的任务由指令译码器完成。 因此,指令寄存器的入口是数据寄存器,其操作码部分的出口是指令译码 器,地址码部分的出口是程序计数器PC或地址寄存器MAR。
接口
输入/出设备
主存储器
2007
读内存,IR 读出内容 R9 R0 + 0
运算器
2007
C Z V S
控制器
主振
脉冲
ALU 4725 2007 1234 6688
+ 0
PC
乘 商 寄 存 器
802 2003 2004
CLK
T0
T1
T2 T3
T0 T1 T2 T3 T0 T1 T2 T3 机器周期 机器周期
指令周期
6.3.3 指令运行的基本过程
—读取指令
将指令地址送入主存地址寄存器 读主存,读出内容送入指令寄存器
公共操作
—分析指令
根据指令操作码,指明指令的执行步骤
—按指令规定内容执行指令
不同指令的操作步骤数, 和具体操作内容差异很大
2.专用寄存器(续)
⑸ 状态标志寄存器(PSWR) 状态标志寄存器用来存放程序状态字(PSW)。程序状态字的各位表 征程序和机器运行的状态,是参与控制程序执行的重要依据之一。 状态标志寄存器的位数往往等于机器字长,各类机器的状态标志寄存 器的位数和设置位置不尽相同。 15 OF DF IF TF SF ZF 问题: 如果计算机系统没有设置状态寄存器,行不行? 会出现什么情况? AF PF 0 CF
通用寄存器可用来存放原始数据和运算结果,有的还可以 作为变址寄存器、计数器、地址指针等。现代计算机中为了减少 访问存储器的次数,提高运算速度,往往在CPU中设置大量的通 用寄存器,少则几个,多则几十个,甚至上百个。
6.1.2 CPU中的主要寄存器(续)
2.专用寄存器
⑴ 程序计数器(PC) 程序计数器又称指令指针寄存器,用来将存放将要执行的下条指令的地址。 其内容分两种情况: ① 若顺序执行时: PC的值应自动修正,加一个增量(增量值为指令的长度)。 PC+△→PC ② 若跳转执行时: 将目标地址→ PC。 问题: PC? 答案: 1.不一定 2. 若分支转移指令的寻址方式是直接寻址,即将转移指令中绝对转移地址送 给PC; 当相对寻址时,将PC+位移量的计算结果送PC, 1. 执行转移指令时,PC的值一定按后者更新吗?
6.2.1 控制器的基本组成
2.时序部件
时序部件能产生一定的时序信号,以保证机器的各功能部件有节奏地 进行信息传送、加工及信息存储。包括: 脉冲源
节拍信号 发生器 启停逻辑 图6-4 时序系统 ⑴ 脉冲源 产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供时间基准信号。 ⑵启停控制逻辑 启停控制逻辑的作用是根据计算机的需要,可靠地开放或封锁脉冲,控 制时序信号的发生或停止,实现对整个机器的正确启动或停止。
检查有无中断请求 可执行一个 或多个步骤
形 成 下 一 条 指 令 地 址
若有,则响应中断并转中断处理 公共操作 若无,则转入下一条指令的执行过程
以取数LDA M
指令为例说明指令周期的流程:
CPU
…
AC
5 6
主存储器
IR
PC 1 4 27
MAR
R CU 控制
3 8
MDR
ALU
I/O 设 备
单元
X
运算器
控制器
ALU
3041 4275 1234 6688
+
PC
乘 商 寄 存 器
2000 2001
MAR
控制 存储器
微指令寄存器
主振 脉冲 微程序 定序器 映射
操作数 地址
寄存器组
R9 地址寄存器 2000
0001 指令寄存器
操作码
.
用于运算器
IR
下地址字段内容
数据总线 地址总线 2000
0001 0001 0790 8800 2007 8309 8280 8F00 xxxx
第 46 章 第 章
数值的机器运算 中央处理器(上)
本章引言
内总线
时序信号 发生器
cache
AR PC
DR +1
移位器
PSW
ALU
外 部 总 线
+1 B
ADD JMP
...
微操作信号 发生器
A 操 作 数
MOV ...
R0
...
LA
LB
存 中断机构 指令译码器 Rn-2 储 中央处理器(CPU )是整个计算机的核心,它包括运算器和控制器。 Rn-1 器 IR
3. 微操作信号发生器(控制信号发生器)
一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不
可再分割的操作称为微操作。微操作信号发生器也称为控制单元(CU)。 不同的机器指令具有不同的微操作序列。它是控制器最核心的部件,也是设 计难度最高、技术要求最高的部件。
微操作控制信号 …… 时序信号 控制信号发生器 (CU) 根据产生微操作控制信号的方式不同,控 制器可分为2种: 组合逻辑控制器:由硬件电路产生控制 信号。 各部件状态 微程序控制器:由编码和编程的方法产 反馈信号 生控制信号。
答案: CPU不可能不在执行指令。
有时我们会说,CPU停止或CPU正在等待,什么事情也不做。事实上,CPU还是在执行指令的,只 不过可能处于以下几种类似的情况: (1) 在执行指令过程中,正在等待主存内部恢复或 I/O就绪;