计算机组成原理-最系统的算机基础知识_第1页
计算机组成原理-最系统的算机基础知识_第2页
计算机组成原理-最系统的算机基础知识_第3页
计算机组成原理-最系统的算机基础知识_第4页
计算机组成原理-最系统的算机基础知识_第5页
已阅读5页,还剩772页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章计算机系统概论3、计算机硬件系统4、计算机软件系统5、计算机系统层次结构1、计算机发展简史2、计算机分类1第一章重点内容计算机发展简史计算机分类、应用计算机硬件系统计算机软件系统计算机系统层次结构2第二章重点内容二进制表示以及进制转换运算2X、X/2、X/64的求解方法真值、原码、补码、移码、反码的编码方法。熟练掌握纠错码和检错码奇偶校验熟练掌握海明计算BCD码机器数校验码概念3第三章重点内容原码补码一位乘法运算无符号位乘法器的电路实现先行进位电路CLA74182原理利用74182及74181电路构造多级先行进位电路浮点数加减法运算4第四章重点内容(一)存储器的分类和技术指标存储器的分级结构及相关特点半导体读写存储器组成、工作原理及特点半导体只读存储器分类及特点DRAM刷新原理及方法5第四章重点内容(二)存储器译码方式存储器扩展方式,与CPU的连接(重点)高速存储器(双端口存储器,相联存储器基本概念,交叉编址)高速缓冲存储器的组成及工作原理(重点)6第五章重点内容指令系统基本概念指令基本格式指令系统寻址方式7第六章重点内容CPU的功能(控制器的功能)指令周期基本概念常用指令的指令周期及其数据通路流程时序产生器和控制方式基本原理微程序控制器工作原理微程序设计基本概念硬布线控制器基本概念8第七章重点内容总线基本概念总线的仲裁影响总线性能的基本因素9第八章重点内容I/O设备的特点I/O接口的功能常用设备10第九章重点内容查询方式基本原理中断方式基本原理DMA方式基本原理通道方式基本原理111.计算机的发展简史12

各时代代表机型13世界上第一台电子数字计算机ENIAC(ElectronicNumericalIntegratorAndComputer),由美国宾夕法尼亚大学于1946年研制成功并投入使用。141516第四代计算机中

微处理器的发展:Intel4004

1971年1月,Intel公司的霍夫研制成功世界上第一块4位芯片Intel4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。1971年11月,Intel推出MCS-4微型计算机系统(包括4001ROM芯片、4002RAM芯片、4003移位寄存器芯片和4004微处理器)1740044004包含2300个晶体管,尺寸规格为3mm×4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。

1880081972年4月,霍夫等人开发出第一个8位微处理器Intel8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。198080第二代微处理器1973年8月,霍夫等人研制出8位微处理器Intel8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为0.64MIPS。20Intel8086第三代微处理器1978年6月,Intel推出4.77MHz的8086微处理器,标志着第三代微处理器问世。它采用16位寄存器、16位数据总线和29000个3微米技术的晶体管,售价360美元。21Z80微处理器Zilog公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,zilog、Motorola和Intel在微处理器领域三足鼎立。22第一台微型计算机:Altair8800

1975年4月,MITS发布第一个通用型Altair8800,售价375美元,带有1KB存储器。这是世界上第一台微型计算机。Altair定位在青年电脑迷市场PaulAllen和BillGates在三周内为Altair开发出BASIC语言,MITS成为两个未来富翁的第一个客户23Apple1976年3月,SteveWozniak和SteveJobs开发出微型计算机AppleI,4月1日愚人节这天,两个Steve成立了Apple计算机公司。AppleII是第一个带有彩色图形的个人计算机,售价为1300美元。AppleII及其系列改进机型风靡一时,这使Apple成为微型机时代最成功的计算机公司。241981-PC元年早在1980年7月,一个负责“跳棋计划”的13人小组秘密来到佛罗里达州波克罗顿镇的IBM研究发展中心,开始开发后来被称为IBMPC的产品。一年后的8月12日,IBM公司在纽约宣布第一台IBMPC诞生,这个开创计算机历史新篇章的时刻。第一台IBMPC采用了主频为4.77MHz的Intel8088操作系统是Microsoft提供的MS-DOSIBM将其命名为“个人电脑(PersonalComputer)25计算机的发展日新月异

从计算机的规模,运算速度上看,巨型机、大型机、中型机、小型机、微型机、单片机从CPU的发展来看

4004->8008->8086->8088->80186->80286->80386->80486-586->pentium->PII->PIII->P42627我国计算机技术的发展1953年开始研究,1958年研究出第一台计算机,103型通用计算机50年来相继研究出了第二代,第三代计算机。80年代研究出了每秒1亿次的巨型机,银河I,II,其他如曙光天演(清华BBS,学校高性能计算中心)。1985年6月,中国第一台自行研制的微机长城0520研制成功,其广告词是:“一台我们自己制造的能够处理中文的电脑”。在高性能计算,并行计算上已紧跟国际先进水平,但计算机的核心部件CPU技术还远远落后。中科院研究开发的龙芯/GODSON2829计算机发展的理论基础和规律1、逻辑代数2、图灵机:英国数学家图灵证明理想的通用数字计算机是可以制造出来的。现代通用数字计算机的数学模型3、冯.诺依曼计算机原理:二进制存储程序并按地址顺序执行(程序控制)4、Moore定律:微处理器内晶体管数每18个月翻一番5、Bell定律:如果保持计算能力不变,微处理器的价格每18个月减少一半6、Gilder定律:

未来25年(1996年预言)里,主干网的带宽将每6个月增加一倍7、Metcalfe定律:

网络价值同网络用户数的平方成正比8、半导体存储器发展规律:DRAM密度每年增加60%,每三年翻四倍9、硬盘存储技术发展规律:

硬盘的密度每年增加约一倍30计算机发展的趋势总趋势:速度越来越快,体积越来越小,成本越来越低,功耗越来越低1、微型计算机已迈入64位的新时代2、精减指令计算机(RISC)正在逐步取代复杂指令计算机(CISC)3、多媒体计算机技术、网络存储技术正在推广使用4、大规模并行处理系统(MPP)的处理速度已达到TFLOPS(每秒1012条浮点指令,万亿)级5、超立方体计算机、神经网络计算机等高性能计算机正在加紧研究、试制之中。

随着电子器件速度极限的逼近.人们又开始了全新时代计算机的研究》》31二十一世纪的计算机

光计算机:光能够像电一样传送信息,其抗干扰能力强,传输速度快,并且光学器件的能耗非常低。尤为重要的是,光的独立性使得大规模的并行计算成为可能。

生物计算机:生物系统的信息处理过程是基于分子的计算与通讯过程,生物计算不是按照传统的确定算法来解决问题,而是通过竞争优化的方式来求解问题。生物计算的主要形式是学习和记忆。生物系统在解决复杂图形和多重模式判定方面有独特的优势。

量子计算机:量子计算的概念远比光子计算和生物计算出现得晚,但却具有更大的革命潜力。

信息存储器目前,在室温下能够制造出单电子内存,在大约7平方纳米大小的位元上,每一平方纳米就能存储250GB的信息。32计算机电子模拟计算机电子数字计算机通用计算机专用计算机巨型机大型机中型机小型机微型机单片机2、计算机的分类

333、计算机硬件系统计算机硬件:一切构成计算机的物理实体硬件系统构成思想:计算机的基础理论(冯诺依曼思想:存储程序,程序控制等,大部分已经有50年)未变

因此,计算机的关键部件没有大的改变

即:计算机五大功能部件34计算机硬件系统的组成运算器(完成算术运算,逻辑运算)主存储器(存放程序以及数据)控制器(控制指令的执行序列,根据指令的功能给出实现指令功能所需要的控制信号)输入设备,能将人能够识别的信息形式转换为机器能够识别的形式输出设备35计算机硬件组成框图主机外围设备CPU运算器控制器存储器接口——输入设备接口——输出设备系统总线36CPU的组成示意图

1.控制器从内存取出一条指令,并指出下条指令的地址;对指令进行译码,产生相应的控制信号;指挥并控制CPU,内存和I/O设备之间的数据传送.

2.运算器加工信息.包括:算术运算,逻辑运算注意:寄存器、总线的位宽/字长37对计算机硬件的理解

硬件:对数字操作的机器系统

数字硬件:对数字进行处理、传输、和存储的硬件

转换硬件:将各种形式的信息转换为数字信息,或者将数字信息转换为各种形式的硬件(图像、声音、文字输入输出设备,目前重要的设备是显示器)38数字技术的三分天下处理:CPU,DSP,ASIC传输:总线(CPU内部、系统总线,I/O总线),网络(LAN,WAN,INTERNET,无线网)存储:RAM,ROM,FLASH,硬盘,光盘,存储系统(RAID,SAN,NAS)394、计算机软件系统软件系统,计算机硬件是载体,软件是灵魂。系统软件、应用软件一切程序的集合固件:具有软件功能,具有硬件形态的部件40对软件的理解可运行的思想和内容的数字化思想:算法、规律、办法程序表达内容:图形、图像、数据、声音、文字等归结为程序和数据(统称二进制表示的信息)软件的核心:算法(一个好的算法可以代替大量的硬件:FFT,MPEG)41硬件是相似的,

软件则各有各的不同各种硬件在数字域都有相同或相似的内脏(只有三个部分:处理、传输、存储)今后的各种信息工具和设备外部虽然千变万化,内部都是一样的(统一性)软件是思想和内容的数字化,各个领域都有自己的软件,所以是各不相同的真正的价值体现在软件硬件与软件可以互相转化,软件固化成为固件42计算机软件系统分类软件系统应用软件系统软件数据处理程序情报检索程序科学计算程序自动控制程序工业设计程序语言处理程序标准子程序SIN服务性程序DB系统操作系统435、计算机系统的层次结构5.应用程序级4.语言处理程序及其他系统软件级3.操作系统级2.机器指令系统级1.微程序级传统机器级44计算机系统硬件系统软件系统外设主机应用软件系统软件固件存储器CPU控制器输入设备输出设备运算器综合起来45本章重点内容1.计算机发展的四个阶段的特点2.计算机硬件组成框图3.冯.诺依曼计算机的主要特征4.计算机软件系统的分类5.计算机固件的概念46第二章、计算机数据表示方法

Outline2.1非数值数据表示法2.2数值数据表示法2.3数据信息的校验47DataRepresentationQualitativeQuantitativeIntegersSignedUnsignedNon-integers(Real)SignedUnsigned482.1非数值数据表示法字符表示法characters汉字表示法Chinesecharacters492.1.1Characterrepresentation…如何使用数值表示字符数据StandardsASCII-AmericanStandardCodeforInformationInterchange(ANSI7bits)EBCDIC-ExtendedBinary-CodedDecimalInterchangeCode(IBM8bits)Unicode50128StandardASCIIcodes52Lettersa-z,A-Z10Digits0-934Symbols!@#$%^&*()…32Controlcharacters<CR><BEL><ESC><LF>…51ASCII使用7bit表示128个字符From0000000to111111127=128注意:ASCII中的数字字符和数字本身不相等几乎所有计算机均支持该代码集但不是所有语言都能用128个字符表示8Bit???MSF=0521101100176543210Terminology计算机利用寄存器存储数据寄存器中每个位称bit(BinaryDigiT)最高有效位(MSB)最低有效位(LSB)

MSBMostsignificantbitLSBLeastsignificantbit532.1.2汉字表示法8bit数据仅能表示256个字符,常用汉字6000多个,故其无法表示汉字GB2312国家标准采用16位表示与ASCII字符的区别,最高有效位MSB=1内码,外码(输入法),字模码(显示用)54GB2312-80国家标准1981年,GB2312-80国家标准,包括6763个汉字/682个非汉字字符,称为国标码或国际交换码GB2312字符集的构成:一级常用汉字3755个,按汉语拼音排列二级常用汉字3008个,按偏旁部首排列非汉字字符682个55汉字标准GB2312-1980(GB0)(简体)6763个汉字GB13000-199320902个汉字(Unicode1.1版本)汉字扩展规范GBK1.0标准1995(非国家标准)21003个字符(兼容GB2312)GB18030-2000(1/2/4字节编码)27484汉字(向下兼容GB2312GBK,GB13000)

56字模码介绍字模码是用点阵表示的汉字字型代码,是汉字的输出形式。字模点阵的信息量是很大的,所占存储空间也很大。以16*16为例,每个汉字要占用32个字节,因此字模点阵只能用来构成汉字库,而不能用于机内存储。57Charset<METAcontent="text/html;charset=gb2312"…-equiv=Content-Type>charset=gb2312简体中文

charset=big5繁体中文

charset=EUC_KR韩语

charset=Shift_JIS或EUC_JP日语

charset=KOI8-R/Windows-1251俄语

charset=iso-8859-2中欧语系

charset=utf-8unicode多语言58Unicode用于克服字符数字的限制为所有语言中的字符分配唯一的代码16bit字符集,65536Unicode字符提供唯一的代码不论任何平台不论任何程序不论任何语言59UniversalCharacterSetISOUCSISO10646UCS-2UCS-4UTF(UnicodeTransformformat)UTF-7UTF-8UTF-1660TerminologyUUEncode/UudecodeMIME(MultipurposeInternetMailExtensions)612.2数值数据表示方法计算机数值数据表示的特点进位制数数的定点、浮点表示机器数62计算机数据编码需要考虑的因素:数的类型(小数、整数、实数和复数)数值范围数值精确度数值存储和处理所需的硬件代价

63计算机数据编码特点少量简单的基本符号表示大量复杂的信息状态简单电路实现简单运算方便硬件成本64Humanvs.Computer人们日常生活采用10进制天生10个手指计算机采用二进制计算机采用电子开关开关仅仅包括两个状态ONOFF65十进制编码特点0123456789共10种状态,状态过多运算组合状态过多加法组合数=C102+10=10*9/2!+10=55C82+8=8*7/2!+8=36C42+4=4*3/2!+4=10C22+2=2*1/2!+2=3八进制:四进制:二进制:结论:二进制的组合状态最少66二进制编码特点符号个数最少,“0、1”物理上容易实现用数字电路的两个状态表示(如电压高低)与二值逻辑的真

假两个值对应简单二进制位可以表示任何对象(字符,数值,逻辑值)用二进制码表示数值数据运算规则简单0+1=1+0=11+1=00+0=0仅仅三种运算规则(10进制有55种)一个异或门即可完成该运算67一位全加器输入:加数Ai、Bi低位进位输入Ci输出:

和数Si,进位输出Ci+1111111001110101010011000进位Ci+10110和数Si110010100000加数Bi加数Ai低位进位Ci68二进制加法器基本电路69进制表示N代表一个数值r是这个数制的基(Radix)i表示这些符号排列的位号Di是位号为i的位上的一个符号ri是位号为i的位上的1代表的值Di*ri是第i位的所代表的实际值

表示m+k+1位的值求累加和70例子(10456)10=1×104+0×103+4×102+5×101+6×100(0xF96)16=F×162+9×161+6×100(10010001)2=1×27+0×26+0×25+1×24+0×23

+0×22+0×21+1×2071进制转换二进制数转八进制二进制数转十六进制二进制数转十进制十进制数转二进制72二到八或十六进制转换二进制转到八进制

从小数点向左右三位一分组(10011100.01)2=(234.2)8

010

二进制转十六进制

从小数点向左右四位一分组(10011100.01)2=(9C.4)16

0100

说明:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,则出错。73二进制转十进制从二进制数求其十进制的值,逐位码权累加求和10010001=1×27+0×26+0×25+1×24+0×23+0×22+0×21+1×2074十进制转二进制整数部分除2取余小数部分乘2取整211222521011010.625*210.25*200.5*210.0除尽为止1011低高高低求得位数满足要求为止75进制转换的简单运算方法-17/128的二进制表示方法???大数的转换方法,记住几个常用的2的幂25=3226=6427=12828=25629=512210=1024(1Kilo)211=2048212=4096213=8182214=16364215=32728216=65536220=1048576(1Mega)230=1073741824(1Giga)240=1Tera更大的单位是多少?250=1Peta

260=1Exa

270=1Zetta280=1YottaMEMORIZE!76Kilo,Mega,Giga,Tera,Peta,Exa,Zetta,Yotta30GB=???Byte1Mbits=???30GBdrive=30x109=28x230bytes1Mbit/s=106bps硬盘厂商及通讯行业是计算机行业唯一使用SI因子的771999NewIECStandardPrefixesSI(InternationalSystemofUnits)仅指10进制234可以访问多少存储单元?2.5TiB存储空间需要多少地址线进行译码?MEMORIZE!78几个简化运算的例子-17/128=-0.0010001111111111110=111111111111-1=212-1-1=4046130=128+2=10000010111111110111=212-1-82003=2047-44=111111111111-32-8-4MEMORIZE!792.2数值数据表示方法计算机数值数据表示的特点进位制数数的定点、浮点表示机器数802.2.1数的定点、浮点表示方法定点表示

(小数点位置固定的数)定点小数定点整数仅能表示纯小数及纯整数浮点表示Signed&Unsigned81定点小数符号位小数点位置数值部分X0X1X2X3………XnX0111………1X0000………12-n≦|X|≦1-2-n下溢/上溢最低有效位最高有效位82数值表示X=X

0.

X1X2…Xn

Xi={0,1},0≤i≤n

=X12-1+…+Xn-12-n+1+Xn2-n数值范围

0≤|x|

≤1-2-n定点小数的编码83定点整数符号位小数点位置数值部分X0X1X2X3………XnX0111………1X0000………11

≦|X|≦2n-1上溢最高有效位最低有效位84数值表示

X=X1X2…Xn

Xi={0,1},0≤i≤n =X12n-1+…+Xn-121+Xn数值范围 0≤|x|≤2n-1定点整数的编码85浮点数如何表示参与运算的数据通常既包括整数也包括小数部分;如何表示?如何运算??;将数据按照一定比例因子缩小成定点小数或扩大成定点整数进行表示和运算;运算完毕后再根据比例因子还原成实际数值;计算机中浮点运算有专门的器件。86浮点数如何表示…电子的质量9×10-28g太阳的质量2×1033g=0.2×1034科学记数法N=10E×MN=Re×mM称为尾数,是一个纯小数,e是比例因子的阶数,称为浮点数的指数,是一个整数,R为基数87浮点数的表示将比例因子以适当形式表示在数据中即可表示浮点数可有效提高数字表示范围,也保持了数字有效精度N=Re×m=2E×M=2±e×(±m)E0E1E2………EmM0M1M2………Mn尾数值阶值阶符尾符88浮点数的表示范围-+负数正数0负上溢正上溢负下溢正下溢N=2E×M|N|→∞产生正上溢或者负上溢阶码正上溢E→+∞阶码负上溢E→-∞|N|→0产生正下溢或者负下溢89机器字长一定时,阶码越长,表示范围越大,精度越低浮点数表示范围比定点数大,精度高E0E1E2………EmM0M1M2………Mn尾数值阶值阶符尾符Range&precision90Example8位定点小数可表示的范围0.0000001

0.1111111

1/128127/128设阶码2位,尾数4位可表示2-11*0.0001211*0.11110.0000001

111.1设阶码3位,尾数3位可表示2-111*0.0012111*0.1110.0000000001

111000091浮点数的规格化问题normalization0.05*10150*10-25*10-10.01*211*2-21*2-1尾数最高有效位为1的数称为规格化数。为了在尾数中表示最多的有效数据位为了数据表示的唯一性。两种规格化数1.XXXXX0.1XXXXX机器零:全部为0,特殊的数据编码9232/64位浮点数(Float/Double)N=(-1)SXM

X

2E

构成:阶码E,尾数M,符号位S,浮点数标准IEEE75493规格化数(Normal):(-1)s×1.m×2e-127非规格化数(Subnormal)(e=0)(-1)s×0.m×2-126尾数部分采用原码表示,故表示范围对称emin=1,emax=254/2046最高数字位总是1,该标准将这个1缺省存储(隐藏位implicit),使得尾数表示范围比实际存储多一位浮点数标准IEEE754…94单精度浮点数编码格式+0/-0000/1(-1)S×(0.f)

×2(-126)f(非零)00/1(-1)S×(1.f)

×2(e-127)f1~2540/1-∞02551+∞02550sNaNSignalingNaN非零0xxxx2550/1NaNNotaNumber非零1xxxx2550/1表示尾数阶码符号位95IEEE754规格化浮点数表示范围Emax=2046,f=1.1111…,1.111…1×22046-1023

=21023×(2-2-52)Emin=1,M=0,1.0×21-1023=2-1022

双精度Emax=254,f=1.1111…,1.111…1×2254-127

=2127×(2-2-23)Emin=1,M=0,1.0×21-127=2-126单精度最大值最小值格式96一个奇怪的程序main(){doublea,b,c;intd;b=3.3;c=1.1;a=b/c;d=b/c;printf("%f,%d",a,d);

if(3.0!=a)printf("\nReally?3.0!-a");}3.000000,2??????????Really?3.0!=a二进制存储浮点数不是精确数97一个奇怪的程序main(){floata,b,c;intd;b=3.3;c=1.1;a=b/c;d=b/c;printf("%f,%d",a,d);

if(3.0!=a)printf("\nYeah!");}3.000000,2982.2数值数据表示方法计算机数值数据表示的特点进位制数数的定点、浮点表示机器数992.2.2机器数/机器码真值(书写用)将用+-表示正负的二进制数称为符号数的真值机器不能识别书写格式,计算机如何表示负数?机器码(机器内部使用)将符号和数值一起编码表示的二进制数称为机器码原码Signedmagnitude反码One’scomplement补码Two’scomplement移码Biasednotation100原码表示法(Signedmagnitude)计算机如何表示数的正负?增加符号位Addasignbit最高位为符号位,0为正,1为负,数值位不变101原码表示示例[+0]原=0.000…0[-0]原=1.000…0[-0.1111]原=1.1111[0.1111]原=0.1111[1110]原=01110[-1110]原=11110102[X]原=X0≤X<2n2n-X-2n<X≤0[X]原=X0≤X<11-X-1

<X≤0求值方法x=(-1)X0(x12n-1+…+xn-12+Xn)求值方法x=(-1)X0(x12-1+…+xn-12-(n-1)+Xn2-n)原码表示法103原码在数轴上的表示-7~+77个正数,7个负数,两个零-(2(n-1)-1)~2(n-1)-1104SignedMagnitudeBothpositiveandnegativezeroEqualnumberofpositivesandnegativesEasytointerpretFirstbitisthesignRemainingbitsarenumberSoundsideal?But…01011001+11001101=???105SignedMagnitude?

010110012=8910+110011012=-7710

001001102=3210Ifsignsaredifferentsignofresultwillbesignoflargeroperand106Shortcomingsofsignedmagnitude?ArithmeticcircuitcomplicatedAlso,twozeros0x00000000=+0ten0x80000000=–0ten

Whatwouldtwo0smeanforprogramming?Thereforesignandmagnitudeabandoned107反码表示法所谓反码,就是二进制的各位数码取反符号位表示方法与原码相同Example:710=001112;-710=110002CalledOne’sComplement108反码0的表示[+0]反=0.000…0[-0]反=1.111…1[0.1111]反=0.1111[-0.1111]反=1.0000[1110]反=01110[-1110]反=10001109反码公式证明-1<x<=0时假设x=-0.x1x2…xn假[x]反=1.x1x2…xn[x]反+|x|=1.11…1=1.11…1+0.00…1-0.00…1=10.00…0-0.00…1=2-2-n[x]反=2-2-n-|x|=2-2-n+x110反码公式证明-2n<x<=0时假设x=-x1x2…xn假设[x]反=1x1x2…xn[x]反+|x|=111…1=111…1+000…1-000…1=1000…0-000…1=2n+1-1[x]反=2n+1-1-|x|=2n+1-1

+x111[X]反=X0≤X<2n2n+1-1+X-2n<X≤0[X]反=X0≤X<12-2-n+X-1

<X≤0求值方法([X]反=x0x1…xn-1Xn)

x=-x0(2n

-1)+x12n-1+…+xn-12+Xn

反码表示法…112反码在数轴上的表示-7~+7正数7个,负数7个,零两个-(2n-1)~2n-1113原码&反码114ShortcomingsofOne’scomplement?Arithmeticstillasomewhatcomplicated.Stilltwozeros

0x00000000=+0ten

0xFFFFFFFF=-0ten

Althoughusedforawhileonsomecomputerproducts,one’scomplementwaseventuallyabandonedbecauseanothersolutionwasbetter.1153与15、-9等效

有趣的时钟123691236912369116同余的概念假定有两个数a和b,若用某一个整数m去除,所得的余数相同,就称a,b两个数对m同余,记作:

a≡b

(modm)假设X,Y,Z三个数,满足下列关系:Z=nX+Y(n为整数),则称Z和Y对模X是同余的,记作:

Z≡Y(modX)

Y≡Z(modX)

117例子Z=nX+YX为模数以12为模3=12+3=24+3=36+33,15,27,39都是相等的-9=12-9=3-9与3是相等的0=12118例子(减法变成加法)7+(-4)=7+(12-4)=7+8=15=31193.补码表示法求值方法([X]补=x0x1…xn-1Xn)

x=-x02n

+x12n-1+…+xn-12+Xn例如:10000100的真值为-128+4=-124[X]补=X0≤X<2n2n+1+X-2n≤X<0[X]补=X0≤X<12+X-1≤X<0120补码在数轴上的表示-8~+7正数7个,负数8个,零1个-2n~2n-1121反码、补码数轴表示比较122补码编码的简便方法正值直接取其原来的二进制码,对于负数是在对其逐位取反之后再在最低位LSB加1。[-10101010]补=101010101+1=101010110[-0.010101]补=1.101011123证明定点小数时[x]反=2-2-n+x[x]补=2+x=(2-2-n+x)+2-n=[x]反+2-n整数时[x]反=2n+1-1+x[x]补=2n+1+x=(2n+1-1+x)+1=[x]反+1124例子X=+0.11111111[X]补=???[X]补=0.11111111X=-0.11111111[X]补=???[X]补=1.00000000+0.00000001=1.00000001X=-0.00000000[X]补=???[X]补=1.11111111+0.00000001=10.00000000=0.0000000012500000000000000000000000000000000two=0ten

00000000000000000000000000000001two=+1ten

00000000000000000000000000000010two=+2ten

...

01111111111111111111111111111110two=+2,147,483,646ten

01111111111111111111111111111111two=+2,147,483,647ten

10000000000000000000000000000000two=–2,147,483,648ten

10000000000000000000000000000001two=–2,147,483,647ten

10000000000000000000000000000010two=–2,147,483,646ten

...

11111111111111111111111111111101two=–3ten

11111111111111111111111111111110two=–2ten

11111111111111111111111111111111two=–1ten

maxintminint32bitMIPSsignednumbers126模4补码例: 00.1010110 11.0101001又称双符号位补码,变形补码[X]补=X0≤X<2n2n+2+X-2n≤X<0[X]补=X0≤X<14+X-1≤X<0127补码的性质零有唯一的表示方式[+0.0000]补=[-0.0000]补=

0.0000负一的补码[-1.0000]补=

1.0000128补码加减法的实现[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补129补码特点唯一的零符号位可以直接参与运算减法可以变成加法负数比整数多一个1304.移码表示法Biased/ExcessNotation保持数据原有大小顺序,便于进行比较操作。通常仅用于表示整数,表示浮点数的阶码。与补码的符号位相异,数据位相同定义

[x]移=2n+x-2n≤x<2n

131移码表示X=+10101[X]移=25+10101=110101X=-10101[X]移=25-10101=01010+00001=001011132移码在数轴上的表示定点小数没有移码定义平行移动133各种编码+3-103111+2-212110+1-3211010-430100-1+3+3+3011-2+2+2+2010-3+1+1+1001-40+0+0000移码补码反码原码BinaryNumberStoredNumberRepresented134定点小数机器码表示范围X0.X1X2X3…Xn-1Xnn+1位定点数,数据位n位原码,反码表示区间一致[2-n-1,1-2-n](-1,1)补码[-1,1-2-n][-1,1)2+x135定点整数数机器码表示范围X0X1X2X3…Xn-1Xnn+1位定点数,数据位n位原码,反码表示区间一致[1-2n,2n-1](-2n,2n)补码[-2n,2n-1][-2n,2n)2n+x136几种编码的应用移码主要用于表示浮点数的阶码补码加减法运算方便,得到了广泛的应用。目前计算机中广泛采用补码表示方法。少数机器采用原码进行存储和传送,运算的时候改用补码。137几种机器编码简便方法对比符号位为一,逐位取反符号位为零,等于真值本身反码符号位为零,数值位逐位取反,末位加一符号为一,数值位为真值本身移码符号位为一,逐位取反,末位加一符号位为零,等于真值本身补码符号位为一,数值位为真值本身简便编码方法:加符号位符号位为零,等于真值本身原码真值为负数真值为正数机器码138例子小数无移码0.000011110.000011110.00001111+0.00001111100001111000001111000001111000001111+000011111.11110000111110000反码小数无移码011110001移码1.11110001111110001补码1.00001111100001111原码-0.00001111-00001111机器码1392.2.3十进制数的表示BCD码Binarycodeddecimal二进制编码的十进制几种BCD码8421码(8*X3+4*X2+2*X1+1*X0)2421码(2*X3+4*X2+2*X1+1*X0)余三码(8*X3+4*X2+2*X1+1*X0)+0011BCD码运算的问题(编码校正)140BCD码运算问题8421码的校正8+7=1000+0111=1111非法编码余三码的校正0+0=0011+0011=0110=3非法编码4+4=0111+0111=1110=?非法编码相对而言运算比较复杂1412.3数据信息的校验 解决编码传输问题在编码中引入一定冗余,增加代码的最小码距,使编码出现一个错误时就成为非法代码奇偶信息的校验海明校验CRC循环冗余校验1422.3.1奇偶校验奇校验:校验码(数据+校验位)中1的个数为奇数000000001000100010偶校验:奇校验:检错码:G=0表示数据正常,否则表示出错143d7d6d5d4d3d2d1d0+pd7d6d5d4d3d2d1d0p+g检测码不为零表示错误发生同时发个多个错误时的情况?奇偶校验…144奇偶校验性能0000100001000010000001111111110000100001正确传输正常检错正常检错不能检错仅能识别奇数个错误,不能纠正错误1452.3.2海明校验HammingCodes奇偶校验一个校验位只能检错,无法纠错1950海明码多个奇偶校验组既能检错,也能纠错146可检测一位错海明码…分组交叉奇偶校验法将编码中的数据位分成r个校验组,组内采取奇偶校验,每组一个校验位,可构成r位检错码。r>1全部检错码为0表示数据正常不为零时检错码的值表示编码中出错数据位可检错,也可纠错每一数据位至少参加2个校验组,一位出错,可引起多个检错码的变化。147可检测一位错海明码…设海明码N位,其中数据位k位,校验位r位校验位r位表示共r个校验组N=k+r≤2r-1(4,3)编码D4D3D2D1P3P2P1H7H6H5H4H3H2H1包含G3G2G1个校验组,P3P2P1分属其中一组148H7参与G3G2G1三校验组H6参与G3G2两校验组H5参与G3G1两校验组H3参与G2G1两校验组G2G1=0表示仅仅P3位出错G3G1=0表示仅仅P2位出错G3G2=0表示仅仅P1位出错备注H7出错111H6出错110H5出错101H3出错011P3存放在H4位置H4出错100P2存放在H2位置H2出错010P1存放在H1位置H1出错001数据正常000出错位G3G2G1可检测一位错海明码…149P1P2D1P3D2D3D4H1H2H3H4H5H6H7G1(P1,H3,H5,H7)G2(P2,H3,H6,H7)G3(P3,H5,H6,H7)P1=D1⊕D2⊕D4P2=D1⊕D3⊕D4P3=D2⊕D3⊕D4可检测一位错海明码…H7参与G3G2G1校验组H6参与G3G2校验组H5参与G3G1校验组H3参与G2G1校验组H7出错111H6出错110H5出错101H3出错011备注出错位G3G2G1150指错、纠错原理G1=P1⊕D1⊕D2⊕D4G2=P2⊕D1⊕D3⊕D4G3=P3⊕D2⊕D3⊕D4检错码G3G2G1!=000表示出错,具体值表示出错位置将对应位置上的数位取反即可纠错假设D1D2同时出错,则G3G2G1=110???引入总校验位P4=H1⊕H2⊕H3⊕H4⊕H5⊕H6⊕H7G4=P4⊕H1⊕H2⊕H3⊕H4⊕H5⊕H6⊕H7判断一位错两位错151CRC循环冗余校验码检错,纠错码数据位k位,校验位r位N=k+r≤2r-1152模2运算规则 加法:按位加不考虑进位减法:按位减不考虑借位异或运算,不考虑进位乘法:部分积之和按模2加法计算除法:余数首位为1,商上1,否则上0

10000÷101=101*101+01153多项式将待编码的k位有效信息位组表达为多项式M(x)M(x)=bk-1Xk-1+

bk-2Xk-2+…

b1X1+

b0将数据左移r位,以便空出r位校验位,多项式变成M(x)·Xr将M(x)·Xr除以生成多项式G(x)商为Q(x)余数R(x)

M(x)·Xr=Q(X)·G(x)+R(X)将余数拼接在空出的校验位上M(x)·Xr+R(X)=(Q(X)·G(x)+R(X))+R(x)=Q(X)·G(x)

CRC编码可被G(x)表示的编码整除154(7,4)循环码出错模式G(x)=101111010100010211110000103110111001040111101010510011001106010110000070011100011无0001100010出错位余数A1~A71101-01011001101-01111101-001101101101-0001001000110100010155生成多项式任何一位发生错误都应使余数不为0不同位发生错误应当使得余数不同对余数继续作模2除,应使余数循环(n,k)码,将Xn-1分解为若干质因子根据编码要求的码距选择其中的因式或若干因式的乘积为生成多项式156生成多项式x7-1=(x+1)(x3+x+1)(x3+x2+1)G(x)=x+1=11(7,6)码,判一位错G(x)=x3+x+1G(x)=(x3+x2+1)(7,4)码,判两位错或纠一位错G(x)=(x+1)(x3+x+1)=11101(7,3)码,判两位错并纠一位错157Example现有一个(7,3)循环冗余校验码,其中3位为信息位,求信息位M(x)=110的CRC码,其中生成多项式为G(x)=11101。158(7,3)循环码出错模式G(x)=11101111100101001201111001001311011111001410001100001501001101101600101101011700011101000无00001101001出错位余数A1~A71+2+3010000100015+6+7011111011101+6110001010112+3101010110013+4010111100014+5110011001015+6011011011116+700111101010出错位余数A7~A1159CRC(CyclicRedundancyCheck可检测出所有的双错、奇数位错可检测所有小于、等于校验位长度的突发错突发错是指几乎连续发生的一串错,突发长度就是指从出错的第一位到出错的最后一位的长度(但是,中间并不一定每一位都错)广泛运用于通信传输领域,磁存储领域160本章重点内容二进制表示以及进制转换运算2X、X/2、X/64的求解方法真值、原码、补码、移码、反码的编码方法。熟练掌握纠错码和检错码奇偶校验熟练掌握海明,CRC会计算BCD码机器数有权码校验码概念161Example(清华大学1998年试题)写出数据-11.4的规格化浮点数形式表示,阶码采用4位移码,尾数用12位原码,含符号位。写出上述格式的规格化浮点数所能表示的最大正数和最小正数。说明上述格式中浮点数的机器零说明浮点数中隐藏位含义和用法162解答-11.4=-1011.01100111-11.4=-0.101101100111*24-11.4=-1.01101100111*23-11.4=-1.01101100111*23-11.4=-01101100111*23-11.4=1,01101100111*23M=1,01101100111E=3=1,011163解答…(-1)s×1.m×2e最大整数1.11111111111×27

=(2-2-11)×27最小整数1.00000000000×2-8=2-8164第三章、运算方法与运算器

Outline 定点补码加/减法运算定点乘法运算浮点运算运算器组织运算器部件举例1653.1定点补码加/减法运算定点补码的加减法运算[X]补+[Y]补=[X+Y]补[X]补-[Y]补=[X]补+[-Y]补=[X-Y]补-[Y]补=[-Y]补(规则来源于补码的特点,也即模运算的特点。存在模运算与溢出的关系问题)1660.111+1.100=10.011(0.875-0.5=0.375)(多出一位丢掉)√0.111+0.010=1.001(0.875+0.25=1.125)(机器得到-0.875)1.001+1.100=10.101(-0.875-0.5=-1.325)(机器得到+0.625)结论:运算的实际结果没有超出字长可以表示的数值范围,取模的结果是正确。超出范围则溢出,出现错误。判断方法:正+正得负或负+负得正注意:模运算与溢出的关系

(例如,4位2进制运算器):

167补码加法的几种情况及其溢出检测0.10101+0.010000.11101

0.10101+0.11000.01101

11.10101+1.110001.01101

11.00101+1.11000.11101

01正正得负,正溢出负负得正,负溢出正常结果符号位进位舍去,正常结果计算机如何识别运算结果是否溢出Cf=0,C1=0Cf=1,C1=1Cf=0,C1=1Cf=1,C1=0符号位进位Cf(C0)

,最高位进位C1168单符号数溢出检测溢出信号V对应的真值表V=Cf⊕C1169双符号数溢出检测00.10101+00.0100000.11101

00.10101+00.11000.01101

0111.10101+11.1100011.01101

111.00101+11.11000.11101

101非正常符号位,溢出符号位进位舍去,正常结果正常结果非正常符号位,溢出f1f2Sf1Sf2

V

Sf1

⊕Sf2170加法运算的逻辑实现

[X]补=X0X1………Xn

[Y]补=Y0Y1…….…Yn+?0?1…….…?n多位加法运算依赖于各位逐位相加的运算,所以我们先讨论一位全加器171一位全加器输入:加数Ai、Bi、低位进位输入Ci+1输出:和数Si,进位输出Ci172一位加法器逻辑表达式注意:逻辑表达式可以变形,故电路形式不是唯一的。i+1iiiiiCBABAC)(Å+=i+1iiiCBASÅÅ=173典型门电路&AB≥1AB=1AB1A&AB≥1AB=1AB与非或非非与或异或异或非174一位全加器逻辑电路实现FASiAi

BiCi+1Ci一位全加器一位全加器时间延迟i+1iiiiiCBABAC)(Å+=Ci+1

AiBiSiCiFA175CCn+1CnC2C1C0x0y0x1y1xn-1yn-1xnyns0s1sn-1sn…Cn-1Σ0Σ0Σ1Σn-1ΣnV双符号补码加/减器电路实现MM由汇编语言中的加法指令add,以及sub等产生1、N个合起来;2、M控制加减;3、串行行波加法器176快速加法器能否提前产生各位的进位输入使得各位的加法运算能并行起来提高多位加法器运算速度177并行加法器进位链Si=Xi⊕Yi⊕Ci+1Ci=Ci+1(Xi⊕Yi)+XiYiGi=

XiYiPi=Xi⊕YiGi进位产生函数/本地进位Pi进位传递i函数,进位传递条件Ci=

Gi+PiCi+1178并行加法器进位链Cn=

XnYn+(Xn⊕Yn)Cn+1=Gn+PnCn+1Cn-1=

Xn-1Yn-1+(Xn-1⊕Yn-1)Cn=Gn-1+Pn-1CnCn-2=

Xn-2Yn-2+(Xn-2⊕Yn-2)Cn-1=Gn-2+Pn-2Cn-1C2=

X2Y2+(X2⊕Y2)C3=G2+P2C3……C1=

X1Y1+(X1⊕Y1)C2=G1+P1C2高位的运算依赖于低位运算进位的产生,计算不能并行能否提前得到当前位的进位输入,这样就可以完全并行,大大提高运算速度179并行加法器进位链Cn=

XnYn+(Xn⊕Yn)Cn+1=Gn+PnCn+1Cn-1=

Gn-1+Pn-1Cn=

Gn-1+Pn-1(Gn+PnCn+1)

=

Gn-1+Pn-1

Gn+Pn-1PnCn+1Cn-2=Gn-2+Pn-2Cn-1=Gn-2+Pn-2(Gn-1+Pn-1

Gn+Pn-1PnCn+1)=

Gn-2+Pn-2Gn-1+Pn-2Pn-1

Gn+Pn-2Pn-1PnCn+1……C2=

G2+P2G3+P2P3G4

…+P2P3…PnCn+1C1=

G1+P1G2+P1P2G3

+P1P2P3G4…+P1P2…PnCn+1180X4Y4G4P4X3Y3G3P3X2Y2G2P2X1Y1G1P1C1C2C3C4C5181先行进位电路CLA74182

先行进位的多功能算术/逻辑运算单元ALU74181G1P1G2P2G3P3G4P4与门异或门电路CLA74182G1P1G2P2G3P3G4P4C1

C2C3C4⊕

X1Y1X2Y2X3Y3X4Y4C5

S1S2S3S4⊕

Si=Xi⊕Yi⊕Ci+1182C516位组内先行进位,组间串行进位

ALU74181

X1Y1X2Y2X3Y3X4Y4C5P1*

G1*C1S1S2S3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论