《计算机组成原理》全册详解优秀课件_第1页
《计算机组成原理》全册详解优秀课件_第2页
《计算机组成原理》全册详解优秀课件_第3页
《计算机组成原理》全册详解优秀课件_第4页
《计算机组成原理》全册详解优秀课件_第5页
已阅读5页,还剩377页未读 继续免费阅读

下载本文档

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

文档简介

1引言一、本课程在计算机系统中的位置程序设计基础及语言编译原理汇编语言程序设计操作系统数据结构基础数据库原理、应用软件体系结构应用系统应用语言级机器高级语言级机器汇编语言级机器操作系统级机器传统机器级机器微程序机器级机器电子线路级机器外部设备接口技术组成原理模拟与数字逻辑电路系统结构嵌入式系统离散结构、算法设计基础软件工程人工智能信号与系统、控制技术计算机网络技术类数字信号、图像处理2一、课程目标1、结构与原理掌握建立计算机系统的整机概念;掌握计算机各部件的组成原理与技术;了解计算机系统组成与结构的新技术2、分析与计算能力掌握对组成与结构进行性能分析的方法;通过量化计算,加深对组成原理的理解与掌握3、应用与设计能力通过实验,培养逻辑设计及理论指导实践的能力课程内容组织及要求3二、课程内容组织第1章计算机系统概论

计算机的模型、硬件组成,计算机的工作过程、性能指标第3章存储系统层次结构,RAM组成,主存、Cache、虚存的组成原理计算机软件(指令串及数据)CUALU存储器…系统总线I/O设备1I/O接口1I/O设备2I/O接口2I/O设备nI/O接口n第2章数据的表示和运算

数据的编码及表示,定点及浮点运算方法,ALU结构与组成4第4章指令系统指令功能与指令格式,操作数存放及寻址方式,CISC/RISC第6章总线

概述,操作步骤,仲裁/定时方式,互连结构第5章中央处理器

CPU的功能与结构、工作流程,指令执行过程,数据通路组织,CU的结构及组成,微程序控制器技术,指令流水技术计算机软件(指令串及数据)CUALU存储器…系统总线I/O设备1I/O接口1I/O设备2I/O接口2I/O设备nI/O接口n第7章I/O系统

组成,I/O设备,I/O接口,I/O方式(4种)51、学习方法建立整机概念,将所学知识点融合在一起;从逻辑设计出发,分析多种方案的利与弊;通过量化分析,加深对原理的掌握与理解。四、本课程学习方法3、作业自己做!准备一个作业本,每堂课带来!2、学习效率本课程在计算机科学中处于承上启下的地位,具有内容多、难度大的特点。

6第1章计算机系统概论7什么是计算机◆计算机:按照内部存储的指令序列,对数字化信息进行自动高速处理、存储、传送、控制的装置。

信息:有用的数据,有多种不同类型,其表现手段可以采用数字化形式或模拟量形式;

运算:包括算术运算和逻辑运算,要求自动与高速;

指令:指示计算机硬件完成某种功能的明确的命令;§1.1计算机系统简介8

处理:对信息进行搜索、识别、变换,甚至联想、思考和推理等等。9计算机的功能

数据处理

数据存储

数据传送

控制◆计算机的基本功能主要包括

10◆数据处理功能

运算功能:算术运算功能和逻辑运算,应用于数值计算和非数值计算两个方面;

处理对象:数值、字符、图形、图像、声音和视频等。◆数据存储功能

主存储器:保存指令和数据;

辅助存储器:以文件的形式保存大量数据信息。11◆数据传送功能

内部数据流动:CPU和主存以及CPU内部寄存器与运算器之间的数据流动;

外部数据传送:输入/输出(I/O)和计算机通信。◆控制功能

控制器:产生各种基本操作信号并按某种时序发出以完成相应功能;

指令编码、指令系统:一台计算机的所有指令集合。121.1.1计算机系统的软硬件*计算机系统的组成:具有特定功能的信息(程序)。如系统程序、应用程序计算机系统表示应用需求计算机的物理实体;如主机、外设等计算机硬件—计算机软件—13

功能的实现方式—*计算机系统功能的实现方式:解题过程—解题结果③③运行*计算机系统组成的特性:软件功能靠硬件实现,硬件性能靠软件反映①硬件具备数据的存储、传送及处理和过程控制功能②软件表示应用的数据处理及过程控制需求

└→程序(指令序列,硬件用不同指令表示不同功能)③执行软件实现应用的数据处理及过程控制功能用户输入设备输出设备处理设备存储设备目标程序(机器语言)源程序(高级语言)①②①编辑②编译14二、计算机系统的层次结构直接执行机器指令机器语言级机器M1用机器语言编程汇编语言级机器M3用汇编语言编程用汇编程序翻译成机器语言程序高级语言级机器M4用高级语言编程用编译程序翻译成汇编语言程序或机器语言程序操作系统级机器M2使用操作系统命令用机器语言解释操作系统命令

微程序级机器M0使用微指令系统用微程序解释机器指令直接执行微指令虚拟机器实际机器15三、计算机结构与组成*计算机系统结构:机器语言程序员所看到的计算机属性概念性结构和功能特性←┘数字电路级机器指令系统、数据表示、寻址方式,存储系统,I/O系统、信息保护等机器语言级机器M1

微程序级机器M0硬件软件汇编语言级机器M3高级语言级机器M4操作系统级机器M2软硬件交界面*计算机组成:实现计算机系统结构时所体现的计算机属性指令功能逻辑实现、部件组成、控制机构、排队及缓冲技术等器件技术、组装技术等*计算机实现:实现计算机组成时所体现的计算机属性16*相互关系:计算机系统结构—确定软硬件功能分配及其界面特性;计算机组成—逻辑实现系统结构的内容;计算机实现—物理实现计算机组成的内容举例系统结构计算机组成计算机实现乘法功能是否有乘法指令乘法器还是加法+移位器件、电路主存系统最大容量、编址方式速度保证、单体/多体MEM总线带宽信号线数、时钟、传输方式17§1.2计算机系统基本组成一、冯·诺依曼模型计算机*结构与组成:

由运算器、存储器、控制器、输入及输出设备组成,

以运算器为中心;输入设备存储器运算器控制器输出设备注:数据信息指令信息控制信息状态信息*数据表示与运算:

指令及数据均用二进制方式表示,运算亦采用二进制方式18*指令组成:

由操作码及地址码组成;010

01000

10000

例:若加法运算的操作码用010表示,第01000号与第10000号两个存储单元内容相加的操作可表示为:表示操作的性质表示操作数在存储器中的位置*存储程序原理—程序存储方式:

指令及数据预先存放(以等同地位)在存储器中;*存储器结构:

由定长单元构成的一维空间,存储器按地址访问;操作码

地址码1地址码219*存储程序原理—程序控制机制:按程序逻辑顺序、自动地、逐条地取出指令并执行。物理顺序(指令地址)指令内容程序逻辑顺序A+0intnCount=0;⑴A+1intnSum=0;⑵A+2LP:nSum+=nCount;⑶⑹⑼A+3nCount++;⑷⑺⑽A+4if(nCount<3)gotoLP;⑸⑻⑾A+5COUT>>nSum;⑿20

冯·诺依曼计算机模型。2)存储器以二进制形式存储指令和数据;3)存储程序工作方式;4)五部件以运算器为中心进行组织。1)计算机由运算器、存储器、控制器和输入/输出五个部件组成;21二、计算机硬件的基本组成1、计算机硬件的结构现代计算机均在冯·诺依曼模型基础上进行改进*采用以存储器为中心的结构:使数据传送与数据处理并行,有利于提高系统性能存储器输出设备输入设备结果程序数据控制器运算器直接存储器访问(DMA)技术缓冲器缓冲器缓冲技术822*由多种存储器构成存储系统:解决速度-容量-价格间的矛盾,有利于提高性能/价格主存(内存)辅存(外存)计算机硬件运算器控制器存储器输入设备输出设备CPU主机I/O设备(外设)I/O设备主存储器MM控制单元CUCPU算术逻辑单元ALU主机包含辅存(如DISK等)23*采用总线互连形式:实现部件操作标准化,有利于提高系统的可扩展性CPU主存I/O接口1…MEM总线I/O设备1I/O接口nI/O设备n总线桥I/O接口I/O设备…I/O接口I/O设备I/O总线非标准格式标准格式按地址访问min{所连I/O设备速度}242、计算机部件的基本组成(1)存储器*功能:存储程序和数据、通过读/写操作接收/提供信息地址……存储阵列I/O电路地址译码器……数据命令*组成:*完成操作的过程:读操作—①接收地址及命令,内部操作;②输出数据

写操作—①接收地址及命令;②接收数据,内部操作25(2)运算器*功能:实现算术运算及逻辑运算,并暂存运算结果*组成:寄存器组(堆)Func存储器ALU寄存器型运算器ACFunc存储器ALU累加器型运算器TEMP*(AC)+[Y]→AC的运算过程:

(0)(AC)为被加数AC存储器ALUTEMPACFuncTEMP(1)加数[Y]→TEMP(2)(AC)+(TEMP)(3)ALU结果→AC△约定:(X)表示寄存器X中内容,[Y]表示存储单元Y中内容26(3)控制器*功能:指挥及控制各部件协调地工作,以实现程序执行过程

*程序执行过程:

①循环的指令执行过程(取指令及执行指令);②下条指令地址由当前指令产生(按程序逻辑顺序)取指令取指阶段分析指令执行指令执行阶段1027(4)输入/输出设备*功能:实现外部-内部信息的输入/输出及格式转换;*种类:键盘、鼠标、显示器、打印机、磁盘等;*连接:通过I/O接口(又称适配器或控制器)与总线连接,

I/O接口实现信息传送时的缓冲、中转等功能主存…系统总线主存控制器CPU用户交互接口键盘、鼠标等磁盘适配器磁盘通信接口串口等总线接口BIU28三、计算机软件的基本组成1、计算机软件分类软件分为系统软件及应用软件两大类。语言处理程序数据库管理系统服务性程序网络管理程序操作系统科学计算信息管理自动控制人工智能虚拟现实实际机器软硬件交界面系统软件应用软件虚拟机器应用语言环境高级语言环境汇编语言环境操作系统环境应用语言程序高级语言程序汇编语言程序操作系统命令串29四、计算机工作过程

计算机的工作过程就是执行程序的过程。图1.4CPU组成以及和存储器的连接

考查指令ADDNUM,R0的执行过程。30程序执行过程

*程序执行的实现方法:--控制器指挥与控制①取指—(PC)→[MM]→IR,(PC)+“1”→PC;

②分析—(IR)→ID→CU;

③执行—实现指令约定操作(指令转移时重写PC);

④循环—若无中断执行的要求,转①17*程序执行的初始条件:

(a)程序及数据已存放在主存储器MM中;

(b)PC内容已经为即将执行的程序首条指令地址31§1.3计算机系统的性能指标一、计算机系统的性能指标*系统性能:指在计算机硬件上运行的计算机软件的性能1、硬件性能参数*机器字长:指CPU一次能处理的二进制位数。

└→指ALU一次能处理的

n位CPU—指机器字长为n个二进制位的CPU;例如,Core2CPU为64位CPU

对系统性能的影响—机器字长越长,数据处理性能越好;

(∵应用数据长度>机器字长时,需分次运算)

对其它硬件的影响—直接影响ALU、REG长度,间接影响存储字长、数据总线位数32*机器主频:指CPU内部主时钟脉冲的频率,常用f

表示。主频单位—1GHz=1×103MHz=1×106KHz=1×109Hz;*存储容量:指存储器可存储二进制信息的总位数。主存容量—容量S

=存储单元个数×存储字长;

辅存容量—容量S

=存储块个数×存储块长度;最大主存容量—CPU能够访问的主存最大容量,它决定了CPU的地址和数据引脚数量

时钟周期—CPU内部基本操作的时长,常用TC表示;

f

与TC关系—倒数关系,即f

=1/TC

容量单位—1GB=1×210MB=1×220KB=1×230B=8×230bit;

33

特点—反映了多任务计算机系统的软硬件总体性能△MIPS(每秒百万次指令)

表示—因工作量无统一定义,通常用MIPS及MFLOPS代替*吞吐量:又称吞吐率,指单位时间内能处理的工作量,即吞吐量

=n个任务的总工作量÷n个任务的总时间

△MFLOPS(每秒百万次浮点运算)*其他:RAS(可靠性/可用性/可维护),兼容性等32*响应时间:指一个任务从任务输入到结果输出的总时间,2、系统性能指标时间是唯一标准,主要有响应时间和吞吐量两个指标。34§1.4计算机系统发展历程一、计算机硬件的发展历史第一代第二代第三代第四代第五代年代1946~19571958~19641965~19711972~19901991~元器件电子管晶体管SSI、MSILSI、VLSIULSI主存磁心半导体辅存纸带、磁带磁盘光盘字长4/88/16/3232/64速度(次/s)40,000200,0001,000,00010,000,000100,000,0001、计算机的产生与发展*发展趋势:向大型机、微型机两个方向发展*研究重点:器件技术、并行化结构352、微型计算机的产生与发展微处理器字长主频地址线数数据线数其他年代80808实模式19748086164.77MHz201619788088164.77MHz208197980286166MHz2416保护模式1982803863212.5MHz3232虚拟8086模式、虚拟存储器、Cache1985804863225MHz3232RISC、流水线1989Pentium3266MHz3264超标量流水、MMX1993PentiumPro32133MHz3664超级流水、动态执行1995PentiumⅡ32200MHz3664DIB1997PentiumⅢ32450MHz3664SSE、非阻塞Cache1999Pentium4321.3GHz3664SSE2、总线技术2000Core2Duo321.6GHz双核2006*微处理器发展趋势:提高复杂度(增加功能),开发指令级/线程级/内核级并行性,集成存储器,发展嵌入式处理器36二、计算机软件的发展历史1、计算机语言的发展机器语言→汇编语言→高级语言→应用语言*高级语言例:

FORTRAN、PASCAL、C/C++、Java2、系统软件的发展*语言处理程序:汇编程序、编译程序、解释程序;*操作系统:DOS、UNIX、Windows;

(多道程序、分时/实时、网络、分布式、面向对象)*服务性程序:装配、调试、诊断、排错;*数据库:数据库(网状、层次、关系型)、数据库管理软件;*网络:协议(NetNIOS、TCP/IP等)及实现库37三、计算机系统分类按规模及功能分类超级计算机—科学计算等;大型计算机—多用户使用等;小型计算机—办公应用等;工作站—图形处理及分布式计算等;微型计算机—应用广泛;单片机/嵌入式系统—工业控制等38第二章数据的表示和运算

39§2.1数据的编码一、数制及其转换1、进位计数制

*进位计数制:又称进制或数制,是用一组固定的符号和统一的规则来表示数值的方法。有数码、基数和位权3个基本参数

*常用的4种进制:二进制八进制十进制十六进制数码0,10,1,…,70,1,…,90,1,…,9,A,B,…,F基数281016位权2i8i10i16i书写形式BODH

*R进制数表示:(N

)R=(kn-1…k1k0.k-1k-2…k-m)R=

其中,ki∈{0,1,…(R-1)}402、R进制数转换成十进制数

例1—(101.01)2=(1×22+1×20+1×2-2)10=(5.25)10

(3A.C)16=(3×161+10×160+12×16-1)10=(58.75)103、十进制数转换成R进制数(1)十进制数整数转换成R进制数整数

例2—

余数2191(最低位)291240220211(最高位)0(19)10=(10011)2

余数8193(最低位)822(最高位)0(19)10=(23)8*转换规则:按位权展开*整数转换规则:除基取余、上右下左41(2)十进制数小数转换成R进制数小数

整数部分0.6875×2=1.3751(最高位)0.375×2=0.750

0.75×2=1.510.5×2=1.01(最低位)(0.6875)10

=(0.1011)2

整数部分0.6875×8=5.55(最高位)0.5×8=4.04

(最低位)(0.6875)10

=(0.54)8

例3—将(0.6875)10分别转换成二、八进制数(3)十进制数转换成R进制数

*转换规则:整数部分、小数部分分别转换后再合并

练习1—(19.6875)10=(X)2=(Y)8,X=?Y=?*小数转换规则:乘基取整、上左下右424、二、八、十六进制数相互转换

*隐含规律:2=21,8=23,16=24(1)二进制、八进制数相互转换

*转换规则:①从小数点向两边分别转换;

②3个二进制数位(不够时补零)等价于1个八进制数位

例4—(13.724)8=(001

011.111

010

100)2=(1011.1110101)2

(10011.01)2=(010

011.010)2=(23.2)8

(2)二进制、十六进制数相互转换

*转换规则:①从小数点向两边分别转换;

②4个二进制数位(不够时补零)等价于1个十六进制数位

例5—(2B.E)16=(0010

1011.1110)2=(101011.111)2

(11001.11)2=(0001

1001.1100)2=(19.C)16

43二、机器数及其编码*数值数据:组成—由符号、小数点及数值构成,可缺省符号及小数点运算—①符号与数值分开运算;②加减法需先比较大小*机器数:符号数字化的数,通常0/1表示+/-;

如(+101)2→(0101)2、(-0.101)2→(-.101)2→(1.101)2

真值—带“+”或“-”符号的数*机器数的运算方法:

①采用手工运算方法,硬件实现很不方便;如—(+x)+(-y)时,先求x-y、再求结果符号、最后求x-y或y-x

☆②采用新运算方法,便于硬件实现(如符号与数值一起运算)└→必须使用新的编码方法!*机器数的编码方法:原码、补码、反码、移码等441、原码表示法(原码编码方法)*基本思想:用0/1表示符号+/-,数值位为真值的绝对值*纯整数原码定义:

设X=±xn-2…x0,xi=0或1,则[X]原=xn-1xn-2…x0,[X]原

=X

0≤X<2n-12n-1

-

X

=

2n-1

+|X|-2n-1<X≤0

例1—[+1101]原=01101;[-1101]原=11101

例2—设[X]原=1101,则X=-101

例3—设[+X]原=0110,则[-X]原=1110;

[+X]原=0000,则[-X]原=1000,即[+0]原≠[-0]原

练习1—若X=-01000,[X]原=?

若[X]原=101010,X=?45*纯小数原码定义:

设X=±0.x-1…x-(n-1),则[X]原=x0.x-1…x-(n-1)[X]原

=X

0≤X<11-X=1+|X|-1<X≤0

例4—[+0.1001]原=0.1001;[-0.1001]原=1.1001

例5—[X]原=1.01,则X=-0.01

*原码的特性:①X与[X]原关系—·[X]原与X表示值的范围相同,

·[+0]原≠[-0]原;②运算方法—符号与数值分开运算(与手工运算一致)

└→适合于乘除法,加减法较复杂462、补码表示法

*目标:实现符号与数值一起运算*有模运算:运算时只计量小于“模”的部分,多余部分被丢弃模—计量系统的计数范围;(1)有模运算与补数示例—将时针从10点拨向7点,有两种拨法:

①倒拨10-3=7;②顺拨10+9=7+12=7*补数:若a、b、M满足a+b=M,称a、b互为模M的补数

同余—若A、B、M满足A=B+kM

(k为有符号整数),则记

A≡B(mod

M),称B和A为模M的同余

运算特征—c-a

=

c-(M-b)

=

c+b

(modM),即减去一个数等价于加上这个数的补数

└→可将减法运算转化为加法运算47(2)补码定义

*纯整数补码定义:

设X=±xn-2…x0,xi=0或1,则[X]补=x’n-1x’n-2…x’0,即[X]补

=

2n

+X(mod2n)

=X

0≤X<2n-12n

+X=2n

-|X|-2n-1≤X<0

说明—因X连同符号位共n位,故模为2n

一个负数的补码应等于模与该数绝对值之差。即某负数X的补码为:

[X]补=

M+X(modM)48

例6—[+0001]补=00001,[-0001]补=10

0000-0001=11111[+1111]补=01111,[-1111]补=10

0000-1111=10001

练习2—若X=-01000、Y=+01000,[X]补=?[Y]补=?

例7—n=5、X≥0时,最大[X]补=01111,Xmax=24-1=+15

X<0时,最小[X]补=10000,Xmin=-24=-16

原码无11…11

10…0110…00

00…00

00…0101…11补码

10…0010…0111…11

00…00

00…0101…11真值

-2n-1-(2n-1-1)

-1

0

+1+(2n-1-1)[+0000]补=[-0000]补=00000※数0的补码惟一※正数补码最高位(符号位)为0,负数最高位为1※补码表示数的个数比原码多1个49*定点纯小数补码定义:

设X=±0.x-1…x-(n-1),则[X]补=x’0.x’-1…x’-(n-1)[X]补

=

2+X(mod2)

=X

0≤X<12+X=2-|X|-1≤X<0

例8—[+0.1011]补=0.1011[-0.1011]补=2-0.1011=10.0000-0.1011=1.01011050△X→[X]补—

若X为正数,改符号位为0,其余各位不变;若X为负数,改符号位为1,其余各位取反、末位加1

例9—X=+0101,[X]补=X=-0101,[X]补=0

0101;1

1011△[X]补→X—

若[X]补最高位为0,改其为正号,其余各位不变;若[X]补最高位为1,改其为负号,其余各位取反、末位加1

例10—[X]补=0

0101,X=+

0101;[X]补=1

1011,X=-

0101(3)补码的特性

51△[X]原→[X]补—

若[X]原最高位为0,[X]补=[X]原;

若[X]原最高位为1,[X]补=[X]原各数值位取反、末位加1

例11—

[X]原=0

0101,[X]补=0

0101;[X]原=1

0101,[X]补=1

1011△[X]补→[X]原—

若[X]补最高位为0,[X]原=[X]补;

若[X]补最高位为1,[X]原=[X]补各数值位取反、末位加1

例12—

[X]补=0

0101,[X]原=0

0101;[X]补=1

0101,[X]原=1

101152*[X]补与[-X]补的关系:△[X]补→[-X]补—[X]补的各位取反(含符号位)、末位加1[-X]补→[X]补—[-X]补的各位取反(含符号位)、末位加1

例13—[X]补=1

0110,[-X]补=

0

1001+1=

0

1010

练习3—若X=-01001,[-X]补=?若[X]补=101010,[-X]补=?-X=?53

0

01001

0

01001

练习4—

①若X=+01001,[X]原=,[X]补=;

②若X=-01010,[X]原=,[X]补=;

1

01010

1

10110

+

01010

0

01010

③若[X]原=001010,X=,[X]补=;

④若[X]原=101110,X=,[X]补=;

-

01110

1

10010

+

01110

1

10010

⑤若[X]补=001110,X=,[-X]补=;

⑥若[X]补=101110,X=,[-X]补=;

-

10010

0

10010

0

10101

0

10101

⑦若[-X]补=101011,[X]补=,[X]原=;

⑧若[-X]补=001001,[X]补=,[X]原=

1

10111

1

01001

714543、反码表示法

*目标:作为原码与补码相互转换时的一种过渡编码*纯整数反码定义:

设X=±xn-2…x0,xi=0或1,取模=2n-1,则[X]反

=

(2n-1)+X(mod2n-1)

=X

0≤X<2n-1(2n-1)+X-2n-1<X≤0*纯小数反码定义:

设X=±0.x-1…x-(n-1),xi=0或1,模=2-2-(n-1),则[X]反

=

(2-2-(n-1))

+

X(mod2-2-(n-1))

=X

0≤X<1(2-2-(n-1))+X-1<X≤0

例14—[+1101]反=01101,[-1101]反=1001010

例15—[+0.1101]反=0.1101,[-0.1101]反=1.001055*反码与补码关系:若X为正数,[X]补=[X]反;若X为负数,[X]补=[X]反+111

原码、补码、反码比较:

①机器数的最高位均为符号位(0/1表示正/负);原码无11…11

10…0110…00

00…00

00…0101…11反码

10…0011…1011…11

00…00

00…0101…11补码

10…0010…0111…11

00…00

00…0101…11真值

-2n-1-(2n-1-1)

-1

0

+1+(2n-1-1)④[+0]补=[-0]补,补码比原码、反码多表示一个负数②若真值X为正数,[X]原=[X]补=[X]反;

③若真值X为负数,[X]补=[X]反+1,

[X]反=[X]原各位求反(符号位除外);564、移码表示法

*目标:实现符号与数值一起编码

←数连续时编码连续*纯整数移码定义:

设X=±xn-2…x0,其中xi=0或1,取模=2n,则

[X]移

=

2n-1+X(mod2n)

=

2n-1

+

X-2n-1≤X<2n-1

例16—[-111]移=0001,[-001]移=0111,[±000]移=1000,

[+001]移=1001,[+111]移=1111,[-1000]移=0000补码

10…0010…0111…11

00…00

00…0101…11移码

00…00

00…0101…1110…0010…0111…11真值

-2n-1-(2n-1-1)

-1

0+1+(2n-1-1)*移码的特性:

①数在数轴上为连续编码(无符号数),便于比较大小;

②[X]移=[X]补符号位取反、其余各位不变57三、十进制数编码*BCD码(BinaryCodedDicimal):又称二-十进制编码,是指用4位二进制编码表示1位十进制数位的编码方式。

*BCD码种类:分有权码和无权码两种,最常用的是8421码。十进制数01234567898421码0000000100100011010001010110011110001001余3码0011010001010110011110001001101010111100

BCD码缺省指8421码(特殊声明除外)!58四、字符及字符串编码1、字符编码

*字符编码:字符在字符集中惟一的数字化代码,表示字符在字符集中的序号或特征号*字符编码的类型:有输入码、内码、交换码、字模码4种

与输入法、字符集大小有关与字体、字号大小有关字符交换时的编码(序号),仅与字符集大小有关字符存储时的编码(数据表示),与字符集大小、存储字长有关键盘计算机B转换处理传送字模码内码输入码交换码显示器传送计算机A交换码内码内码字符数据字符字模库MEM交换码59*有关字符编码的约定:

字符编码—均指交换码的编码!

字符数据—均指内码的编码!*常见字符编码(交换码)种类:编码种类码点数量编码长度说明ASCII码1287美国标准信息交换码,英文,使用最广泛EBCDIC码2568扩展二-十进制交换码,英文,IBM定义Unicode码6553616统一字符码,支持各国语言,使用较广泛ANSI码2568美国国家标准协会交换码,英文,含ASCII码GB2312-80744514汉字国标码,中文①码点数量—需编码的信息数量;

(如交换码指字符数,字模码指字符点阵数)②编码长度—采用等长编码,长度=log2

码点数量602、字符串编码

*字符串特性:

①由多个字符构成;

②所含字符数不固定。*字符串编码方法:

①由各个字符编码组成;

②通过特定编码标志字符串的结束,结束编码放在最后

└→字符集必须包含该字符(如ASCII码中编码为0的字符)

例—C语言中字符串“am”可编码为1100001110110100000061*冗余校验思想:

①用待发数据(M)形成校验信息(P),M与P一起传送;

②用接收数据(M’)形成新校验信息(P”),检错并纠错五、校验码存储器或传输线路M函数fP输出方比较器P”P’纠正器M函数fM’输入方状态*术语:校验码—由数据位和校验位组成的信息编码;检错(检验)—检查数据在传送过程中有/无错误;纠错(校正)—根据错误位置纠正数据(取反)*常见校验码:奇偶校验码、海明校验码621、奇偶校验码*编码原理:采用1位校验位,使数据位及校验位中“1”的位数为奇数或偶数个*校验原理:检测校验码中“1”的个数变化,确定是否有错

例1—数据101001001101001100011奇校验码101001000110100?1100011?偶校验码101001010110100?1100011?有奇校验/偶校验2种方法预先约定为奇数/偶数个*校验码编码:

(设数据信息为mnmn-1…m1)

校验码组成—共n+1位,数据mn-1…m1校验位p163*校验方法:故障字S—S=P’P”,其中P’是接收的、P”是形成的;检错—若S=0无错误,若S=1有错误;纠错—无此能力(∵无法获得错误位置)

例2—接收的奇校验码故障字S错误位数(人工)发送码(参考)10100100001010010001101001??0110110101101100??0110110101101000??01101101*校验能力:只能检测奇数个错误,无纠错能力

例3—下列接收的校验码①01001、②10100、③10011中,只有一个有奇数位错,请问发送时采用的是奇校验还是偶校验码?*应用:广泛应用于I/O传输的数据校验2564§2.2数据的表示

计算机用编码表示数据:数据数值数据非数值数据逻辑数

字符(串)

--含汉字图形其它

--声音、图像等无符号数

--自然数有符号数

--整数、纯小数、实数等

计算机只支持最常用(最基本)的数据类型:

数据表示—计算机硬件能够直接识别和引用的数据类型

应用数据→数据表示的转换:程序员或编译程序完成程序员实际应用需要的数据类型计算机语言支持的数据类型计算机硬件支持的数据类型编译程序65一、数值数据的数据表示方法2、冯·诺依曼模型计算机的硬件特征

①指令和数据用二进制表示,采用二进制运算;

②二进制中只有0和1,无法表示符号和小数点;

③机器字长固定,CPU内部全部采用定长方式处理。1、数值数据的数学特征

①进制可有多种;

②符号为“+”或“-”,可以没有符号;

③小数点为“.”,可隐含表示,小数点位置可任意变化;

④数码长度可任意变化;

⑤不会产生运算溢出663、数值数据的表示方法*符号问题处理:

有符号数—用数字表示符号,

无符号数—符号位置为数值;*进制问题处理:只支持二进制方式;数据本身无法区分在指令级进行区分无符号数、整数纯小数实数隐含于最低位之后隐含于最高位之前纯小数尾数+整数指数定点格式浮点格式数据本身无法区分,在指令级进行区分*小数点问题处理:

①点的表示—用隐含方式表示;②位置表示—约定不同数据类型的位置不同67*数码长度问题处理:

①不同数据类型—数码长度固定;←便于定长方式处理

②同一数据类型—可有几种长度;←可提高处理及存储效率*运算问题处理:

①运算方法—按数据表示的格式及编码进行相应运算;

数值数据的处理方法:包括数据的表示和数据的操作方法表示格式(小数点表示)编码方式(符号及数值表示)数码长度(决定了数值范围)运算方式溢出处理数据的表示数据的操作数据处理定点与浮点表示机器数编码②数据类型区分—由指令操作码区分;③溢出处理—硬件检测并发出通知,由软件处理39系统结构决定组成逻辑实现68二、数的定点表示1、定点表示方法指约定数据中隐含的小数点位置固定不变。*定点数的表示范围:

(设数码长度为n位)自然数(无符号)整数(有符号)纯小数Sn-1

Sn-2…S0

Sf

Sn-2…S0

Sf

S-1…S-(n-1)数值数符数值数符数值类型编码自然数(无符号)纯整数(有符号)纯小数原码0~2n-1(无符号编码)-(2n-1-1)~+(2n-1-1)-(1-2-(n-1))~+(1-2-(n-1))补码-2n-1~+(2n-1-1)-1~+(1-2-(n-1))*定点表示形式:有约定在数值最低位之后和最高位之前两种2、定点数的表示采用定点表示格式的数称为定点数,通常有几种数码长度。69三、数的浮点表示1、浮点表示方法指约定数据中隐含的小数点位置是可变的。

表示—尾数用定点纯小数表示,阶用定点整数表示*浮点表示形式:由尾数和阶组成

格式—1SE

ESM

M阶符阶值数符尾数值1em或SE

EMSM

70*浮点数的表示范围与精度:

假设尾数及阶的基均为2,数值长度分别为m位及e位2、浮点数的表示采用浮点表示格式的数称为浮点数,通常有几种数码长度。下溢区正上溢区(+∞)负上溢区(-∞)负数区机器零绝对零N正min正数区N负maxN正maxN负min

例1—若浮点表示格式中m=10、e=4,尾数及阶均为补码编码方式,写出(-54)10的机器码。

解:(-54)10=(-110110)2=-0.11011×2+110,

浮点数机器码为00110

10010100000

影响因素—e决定了范围、m决定了精度71

例2—若浮点表示格式中尾数为8位(含1位符号位)、阶为5位(含1位符号位),写出下列实数的浮点数及机器码。编码格式实数浮点数浮点数的表示阶尾数阶码尾数码原码原码+10101.11+0.1010111×2+1010010101010111-0.0010111-0.10111×2-10移码补码+0.0010111+0.10111×2-10-10101.11-0.1010111×2+101

例3—浮点表示格式同例2,写出下列机器码的浮点数。编码格式浮点数的表示浮点数阶尾数阶码尾数码原码原码0110101010111+0.1010111×2+11011011011011010移码补码001010101110011101111010002010010

1101110001110

0101110010101

10101001-0.1011010×2-110+0.10111×2-1011-0.0011000×2+1101723、浮点数的规格化

*目的:在现有的浮点数表示格式中,使表示精度最大化。

例4—若浮点表示格式中m=3、e=3、尾数和阶均为原码编码方式,不同表示方法的浮点数精度不同:

+101.1=0.1011×23=0.01011×24=0.001011×25001101010100001001010001*规格化数的要求:尾数真值的最高位为1,即

≤|M|<1

*规格化的操作:

左规—尾数左移一位,阶码减一;

右规—尾数右移一位,阶码加一。

应用—非规格化数→规格化数,可能需多次规格化操作4473

例5—若浮点数尾数及阶的基均为2,回答下列问题:非规格化浮点数+1.0111×2+010-0.00010×2+010+1011.1×2+010规格化操作右规1次规格化浮点数+0.10111×2+011

原码尾数—最高数值位为1;

补码尾数—最高数值位与符号相反

←便于硬件实现左规3次-0.10000×2-001右规4次+0.10111×2+110744、IEEE754标准*表示格式及数码长度:有单精度、双精度两种格式及长度*编码方式:

①数制—M和E均采用二进制方式(即RM=RE=2);2381单精度浮点表示格式数符S阶E尾数M3252111双精度浮点表示格式数符S阶E尾数M64②码制—M为原码编码的定点纯小数(改进了定点位置),

E为移码编码的定点整数(改进了移码值)75*阶的码制:采用的是余127码和余1023码余X码—偏移值为X的移码称为余X码,标准移码:真值=E-28-1=E-128,余127码:真值=E-(28-1-1)=E-127;*尾数的码制:

(以单精度格式为例)

支持非规格化尾数和规格化尾数两种方式;

规格化尾数—规格化的尾数真值=±1.m-2…m-24,机器码M=m-2…m-24,尾数精度=24位

阶的范围—1≤E≤254,而0和255另作他用,

即-126≤阶的真值≤127

非规格化尾数—尾数真值=±0.m-1…m-23,机器码M=m-1…m-23,尾数精度=23位;76*IEEE754标准浮点表示的特征:(以单精度格式为例)参数值真值N说明E=0,且M=0N=0机器零(下溢区)E=0,且M≠0N=(-1)S×2-126×0.M非规格化数1≤E≤254N=(-1)S×2E

-127×1.M规格化数E=255,且M≠0N=NaN为非数值E=255,且M=0N=(-1)S×∞±无穷大(上溢区)

说明:①明确地表示了机器零及无穷大;

②非规格化数减少了下溢区间大小(精度损失);

③非数值用于表示异常(如0/0、负数开根等)正非规格化数区域机器零0.0+0.0…01×2-126+0.1…1×2-126+1.0…0×2-126正规格化数区域略+1.1…1×2+127下溢区正上溢区77

例6—求IEEE

754单精度码为(CC968000)16的浮点数的真值N

例5—求(-11/128)10的IEEE754单精度规格化数的机器码

解—(-11/128)10

=(

-1011)2×2-7

=(-0.1011)2×2-3

=(-1.011)2×2-4=(-1.011)2×2123-127

解—(CC968000)16=1

10011001

00101101000000000000000N为负数,浮点数为规格化数(∵1<10011001<254);数符阶尾数10111

10110110

0000

0000

0000

0000

000

机器码为:

阶=(10011001)2-(01111111)2

=(00011010)2=(26)10

尾数=(1.00101101)2

=(1.17578125)10∴N=(―1)1×1.17578125×226=-1.17578125×226

数值数据的表示小结:表示格式有定点和浮点两种,编码方式决定运算器的运算方法,数码长度总是固定的484178四、非数值数据的数据表示

提高MEM的存储效率:指令中地址效率—1个MEM地址应对应多个数据位;

MEM字长的特征:

MEM字长—均为2n位(n为常数);←便于数据长度的二进制运算

MEM字长种类—有二进制位、机器字长、折中长度3类

数据的存储效率—短数据占1个字长,长数据占多个字长0000H0001H…地址数据(1位)01…0000H0001H…0000100010001111…地址数据(8位)0000H0001H…00001000111100000000000010001111…地址数据(设字长为16位)通常不采用按位编址通常采用按折中长度(如字节)编址791、字符数据的表示指字符的交换码在存储/处理时的表示方式,即字符的内码。*数据的表示方法:表示格式—

数码长度—为MEM字长的倍数,即n=kW;m

Cm-1

Cm-2…C1

C0

Kx-1…

K0x扩展位字符交换码n

例1—常见字符交换码的表示:字符字符数据的表示种类编码长度MEM按字节编址MEM按字(设=16)编址数码长度占地址数数码长度占地址数ASCII码78位=7+11个16位=7+91个Unicode码1616位=16+02个16位=16+01个GB2312-80码1416位=14+22个16位=14+21个

编码方式—无符号的二进制编码802、逻辑数据的表示

*数学特征:值域—真、假;

运算—与(AND)、或(OR)、非(NOT)等*运算处理方法:可采用所有位同时按位进行与/或/非运算

可获得最大性能←┘└→一位操作时,软件负责准备数据*数据的表示方法:

数码长度—1位→n位(n为MEM字长倍数);←以提高存储效率

表示格式—n个逻辑数据捆绑表示,每个逻辑数据占1位;bn-1b0

Ln-1

Ln-2…L1

L0

例2—8位逻辑数A和B如何实现第0位的OR操作(结果在A中)?

编码方式—各位独立编码,1/0可表示真/假

解:步骤为①

C=BAND01H;②

A=AORC5381§2.3定点数运算方法一、移位运算1、移位及移位运算

*移位:数值相对于某个位置的移动例—20.0m=2000.0cm,称20相对于小数点左移了2位*移位操作:有左移、右移2种类型;二进制数左移或右移n位相当于乘以或除以2n*移位运算:对计算机中机器数的移位操作运算种类—对有符号数,有算术左移、算术右移;对无符号数,有逻辑左移、逻辑右移

运算参数—操作数、移动位数822、逻辑移位运算

*操作数类型:无符号机器数

例1—某REG内容为00111001,逻辑移位运算结果如下:*运算规则:

机器数整体移位,移出的数丢弃,出现的空位补0逻辑左移2位丢弃部分逻辑右移2位丢弃部分0011100100111001000000*运算实现方法:通常用移位寄存器实现

练习—若(REG)=11001001,逻辑左移1位再右移1位的结果?0逻辑左移运算移位寄存器0逻辑右移运算移位寄存器*溢出判断方法:左移、移丢数码为1时运算溢出833、算术移位运算

*操作数类型:有符号机器数(原码、补码等)例3真值原码补码真值原码补码+20001000010-21001011110算术左移1位+4-4算术右移1位+1-1*运算规则:符号位不变,数值部分整体移位,空位添补规则如下表(根据编码方式的数学特征添补)码制真值算术移位运算规则符号位数值左移空位添补规则数值右移空位添补规则原码正/负数保持不变空位补0补码正/负数末位数值位补0首位数值位补符号位反码正数末位数值位补0首位数值位补符号位负

温馨提示

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

评论

0/150

提交评论