计算机组成原理(第6版)课件全套 纪禄平 第0-6章 概论-输入输出设备及其接口_第1页
计算机组成原理(第6版)课件全套 纪禄平 第0-6章 概论-输入输出设备及其接口_第2页
计算机组成原理(第6版)课件全套 纪禄平 第0-6章 概论-输入输出设备及其接口_第3页
计算机组成原理(第6版)课件全套 纪禄平 第0-6章 概论-输入输出设备及其接口_第4页
计算机组成原理(第6版)课件全套 纪禄平 第0-6章 概论-输入输出设备及其接口_第5页
已阅读5页,还剩844页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理(小班+混合式教学)1/8课程内容简介:第一章概论

2学时

第二章数据的表示、运算与校验

10学时

第三章CPU子系统

24学时

第四章存储子系统

14学时

第五章总线与输入输出子系统

8学时

第六章输入/输出设备及接口

6学时

实验课16学时(单独课程)

2/8一、课程主要内容重点讨论计算机单机系统的硬件组成。即五大功能部件的工作原理、逻辑实现、设计方法及相互连接构成整机的方法。3/8强调两个层次的整机概念:CPU整机概念硬件系统整机概念紧紧抓住各部件之间的信息传送方式和传送途径。4/8二、学习目的为培养同学们在分析、设计、开发计算机系统方面的能力打下坚实的基础。5/8三、教学特点1、以主要部件为背景讨论基本原理,辐射MIPS32处理器。2、讨论硬件组成时,在寄存器级进行分析。3、遵照大纲,兼顾考研。4、小班研讨+线上线下混合式6/8四、教学安排(课堂64节,4节/周)教学思路:

CPU主机计算机硬件系统五、成绩考核构成线上学习(30%)课堂表现(20%)卷面统考(50%)SPOC论坛交互在线视频学习5次单元测试课堂练习、研讨、出勤等考教一体自命题10分1575分20分50分7/8六、配套教材教材:《计算机组成原理》,版次:第5版主编:纪禄平,罗克露等ISBN:978-7-121-37684-9出版社:电子工业出版社,2020.018/89/13

主要内容:

计算机的基本概念

计算机的诞生和发展系统硬件组成(主要部件、系统结构)

计算机的性能指标第一章概论10/13电子计算机——1.1计算机的基本概念是一种可以存储程序,并且通过执行程序指令,可以自动、高速、精确地对数字信息进行各种复杂处理,然后输出运算结果的高科技智能电子设备。11/13运算器控制器存储器输出设备输入设备数据信息控制信号

天蓝箭头线运算器和控制器,已集成在CPU中!黄色箭头线状态信息

白色箭头线5个逻辑模块:指令信息绿色箭头线clock

12/131.1.1信息的数字化表示

1.在计算机中用数字代码表示各种信息

二进制代码例1用数字代码表示数据

5

-5

表示为

0101

表示为

1101

13/13例2用数字代码表示字符A

B

表示为

01000001

表示为

01000010

例3用数字代码表示命令、状态启动

停止

正在工作

工作结束

表示为

00

表示为

01

表示为

10

表示为

11

14/13表示数字代码

2.在物理机制上用数字信号

数字型电信号例1用电平信号表示数字代码

高电平

1

低电平

高电平

0

1

例2用脉冲信号表示数字代码

有脉冲无脉冲有脉冲101实现并行操作实现串行操作15/133.信息数字化表示的优点

(1)物理上易实现信息的表示与存储(2)抗干扰能力强,可靠性高(3)数值的表示范围大,精度高(4)可表示的信息类型广泛(5)能用数字逻辑技术进行处理因此,计算机中采用二进制形式表示信息16/131.1.2存储程序工作方式1.编制程序3.自动、连续执行程序2.存储程序4.输出结果17/13编写程序输入程序存储程序输出结果执行指令转换为指令序列※计算机的工作流程1.1.3计算机的分类计算机从总体上来说分为两大类:模拟计算机和数字计算机。各自的主要特点:模拟计算机:由模拟运算器件构成,处理在时间和数值上连续的模拟量(如:电压、电流等);数字计算机:由数字逻辑器件构成,处理离散的数字量。其中数字计算机又可分为:专用计算机和通用计算机。专用机——是以快速、经济和高集成度为主要指标的特殊计算机,它是针对特定任务设计的计算机,适应性较差(如:工控机、ATM等)。通用机——适应性较高,但是牺牲了效率、速度和经济性,如个人电脑。20/13它们的系统规模和计算能力依次递减。随着超大规模集成电路技术的不断发展,类型的划分会动态变化。按照系统规模和计算能力,也可以分为:※巨型机(超算)、※大型机、※小型机、※微型机,等等21/13微型机小型机大型机超级计算机(超算)

体积功耗价格存储量计算能力简易性普及率※几种类型的计算机对比:高低低高中文:约翰·冯·诺依曼外文:JohnVonNeumann国籍:美籍匈牙利人出生地:布达佩斯出生日期:1903年12月28日逝世日期:1957年2月8日毕业院校:苏黎世大学、布达佩斯大学称谓:计算机之父

1.2计算机的诞生和发展22/6冯·诺依曼思想的产生背景1944年加入了美国军方ENIAC计算机研制项目,1945年提出并发表了一个全新的“存储程序通用电子计算机”方案—EDVAC(冯·诺依曼思想)。EDVAC阐述了电子计算机和程序设计的新思想,是计算机发展史上一个划时代的文献,宣告电子计算机时代即将来临。EDVAC方案的意义:催生了第1台严格意义上的电子计算机(ENIAC,宾夕法尼亚大学,1946年2月)23/61.2.1

冯·诺依曼体系1.用二进制代码表示程序和数据;任何复杂运算和操作都转换成用二进制代码表示的指令,数据也用二进制代码来表示;2.采用存储程序的工作方式将程序和数据存储起来(存储程序),让计算机自动地执行指令,完成各种复杂的运算操作(核心思想)。24/63.新型的现代计算机硬件组成存储器、运算器、控制器、输入设备和输出设备冯·诺依曼体系奠定了现代电子计算机的理论基础。25/6类型时期主要器件重要特征1.2.2计算机的发展历程第1代1946-1957电子管速度低,体积大,价格昂贵,可靠性差,主要用于科学计算;第2代1958-1964晶体管体积缩小,可靠性提高,从科学计算扩大到数据处理;第3代1965-1971中小规模集成电路体积缩小,可靠性提高,速度达到MIPS级,机种多样化,小型计算机出现,软件和外设发展迅速,应用领域扩大;第4代1971-大、超大规模集成电路速度高达GIPS乃至TIPS级,多机系统和计算机网络迅速发展,微型计算机出现;26/61.2.3

未来的发展趋势1、向巨型化方向2、向微型化方向3、向多媒体化方向4、向网络化方向5、向智能化方向27/61.3计算机系统的组织硬件——是指构成计算机系统的实体和装置之类的有形设备,是组成计算机系统的物质基础。软件——是指由硬件所表达的各种内在信息,包括数据与控制程序。因为它们是无形的东西,所以称为软件或软设备。28/211.3.1计算机的硬件系统组成29/20CPUM接口接口I/OI/O系统总线1、硬件系统的基本组成模型※主要功能部件1.CPU(CentralProcessingUnit)主要由运算器、控制器等部件组成。(1)运算器1)功能:完成两类(算术和逻辑)运算2)组成特点:30/21主要由ALU(算术逻辑单元)构成,执行算术、逻辑运算以及移位循环等操作,是CPU功能的主要执行部件。ALU以全加器为核心,具有多种运算功能。运算的位数越多,计算精度就越高,但器件也更复杂。运算器的数据宽度一般是:8位、16位、32位或64位。31/21(2)控制器1)功能:产生控制命令(微命令),控制全机操作。2)基本组成:微命令发生器指令信息状态信息时序信号微命令序列32/212.存储器1)功能:存储数据和数字化后的程序。【注意】不论是数据,还是程序,存储器存储的全是用0或1表示的二进制代码。存储器涉及到几个基本概念:存储单元:在存储器中保存一个n位二进制数的n个存储电路,组成一个存储单元。地址:存储器由许多存储单元组成,每个存储单元的编号,称为地址。33/21存储容量:存储器所有存储单元的总数。存储容量越大,表示储存的信息越多,常用的单位有“KB、MB、GB、TB、PB”等;内存储器:即主存,是一种用来存放直接为CPU提供服务的程序和数据存储器半导体存储芯片构成,特点:工作速度较快,存储容量比外存小。外存储器:即辅存,

为计算机配备的存储容量很大的辅助存储器。磁盘存储器、光盘存储器等,其主要特点是存储容量大,价格便宜,工作速度较慢。34/20输出时:处理结果输入时:原始信息3.输入/输出设备功能:执行输入/输出信息的转换。二进制代码,送入主机;用户能够直接感知的形式(字符、图像、声音),并输出给用户;(二进制代码)35/214.总线(Bus)能为多个部件分时共享的一组信息传送通路。根据传送的信息不同,可分三类:①传送各种数据信息的数据总线(DataBus);②传送各种地址信息的地址总线(AddressBus);③传送各种控制信号的控制总线(ControlBus);36/215.接口外设的种类、数量了变,为了将总线与各类外设连接,须在两者之间设置一些部件,具有缓冲、转换、连接等功能,这些部件就是接口。VGA接口显示器设备接口其它设备总线…37/20※计算机硬件的典型架构1.微型计算机:南-北桥架构CPU北桥芯片组南桥芯片组主存PCI-EHDMI视频BIOSWIFIPATA、SATA、USB等PCI-E其它I/O总线FSB(挂接网卡、键盘和硬盘等外设)DMI38/20E5-2620芯片组(C600)USB总线(HPProLiantDL300系列)DMI2.小型计算机:多处理器架构E5-2620PCI-EWIFIDDR3PCI-EDDR3上行SAS磁盘PCI-ELANPCI-E传统音频SATASM总线SuperI/O安全控制芯片…PCI…QPI39/203.超级计算机(超算):集群式架构FT-1500FT-1500FT-1500FT-1500管理集群通信集群路由器路由器路由器路由器存储集群磁盘阵列磁盘阵列磁盘阵列磁盘阵列计算集群计算节点计算节点计算节点计算节点(天河-2号,国防科技大学)8机柜(4096处理器)24机柜(12.4PB)125机柜(16000节点)13机柜(576路由器)THExpress-2性能:33.86PFLOPS功耗:17.8MW40/20※天河-2号的计算节点剖析单块主板2节点:Phi31S1P(61核)GDDR5,8GBE5-2692(12核)E5-2692(12核)DDR3,32GBDDR3,32GBQPIE5-2692(12核)E5-2692(12核)DDR3,32GBDDR3,32GBQPIPCI-EPCI-EPhi31S1P(61核)GDDR5,8GBAPU(5协处理器)CPM(4主+1协)41/20多处理机系统结构特点:用多处理器CPU构成根据处理器之间连接的紧密程度,又分为:①紧密偶合型多机系统②松散偶合型多机系统42/21CPU1LM1全局MCPUnLMnI/OI/O※紧密偶合型多机系统特点:多个(CPU+LM)组,通过系统总线构成多机系统,且有共享的全局主存储器;43/20※松散偶合多机系统CPU1LM1I/OCASMTS(消息传送系统)CPUnLMnI/OCAS特点:多个计算节点,由通信系统连接成的多机系统,无全局的主存储器。44/201.3.2软件系统

软件类别:系统程序和应用程序。系统程序:负责系统调度管理,提供运行和开发环境、各种服务,确保系统运行良好。45/20应用程序:利用计算机来解决应用问题所编制的程序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等等。1.3.3计算机系统的层次结构46/20(1)软-硬件层次计算机系统是一个由多层次的软件+硬件组成的系统,基本结构如下图所示:系统分析级用户程序级应用程序级语言处理程序级操作系统级机器指令级微程序级(MCU)硬件逻辑部件级软件部分硬件部分软硬分界面(2)程序语言功能层次专用语言虚拟机高级语言虚拟机汇编语言虚拟机机器语言物理机如可视化编程如C++、Python编程编译器Compiler汇编器Assembler汇编语言源程序机器语言目标程序指令译码器Translator硬件电路执行产生控制信号高级语言源程序a=b+c;lw$t1,0($t0);lw$t2,4($t0)add$t3,$t1,$t21000110100001001…1000110100001010…0000000100101010…Regdst=1,aluSrc=1,…Regdst=1,aluSrc=1,…Regdst=0,aluSrc=0,…47/2048/211.3.4软件与硬件的逻辑等价性※软件的特点:易于实现各种逻辑和运算功能,但是常受到速度指标和软件容量的制约;※硬件的特点:

可以高速实现逻辑和运算功能,但是难以实现复杂功能或计算,受到控制复杂性指标的制约。计算机中的软件,理论上都可以“固化”或“硬化”成硬件,以高执行速度;1.4计算机系统的性能指标1.基本字长一般4位、8位、16位、32位、64位,等等。※指一次数据操作的基本位数。※它会影响计算的精度、指令的功能。49/6先介绍外频的概念外部频率或基频,也叫系统时钟频率。系统振荡器频率放大CPU内存其它部件一般不超过300MHz外频信号倍频系数2.外频50/6(1)CPU的主频=外频×倍频系数;(2)IPS,每秒执行指令数,(MGTPEZ)(3)CPI,即Clock-cyclePerInstruction

;(4)FLOPS,每秒执行浮点运算的次数(MGTPEZ)比如,天河2号,其实测速度:33.86PFLOPS(LINPACK)(5)CPU的功耗动态功耗、静态功耗P=C×U2×fC:负载电容;U:工作电压;f:工作频率;3.常用的CPU性能指标51/6

位宽×工作频率8带宽=4.数据传输率(B/S)物理含义:单位时间内数据的传输量。注意:计算PCI-E总线的带宽时,一般还要考虑编码方式、单双工模式和通道路数等。【例题】52/6平均CPI=15×40%+20×30%+15×20%+10×10%=16

程序的时钟周期数T=200×16=3200每秒可执行程序的次数=主频÷每次的时钟周期=32M÷3200I/O带宽=(32M÷3200)×4KB=40MBps解答:指令类型占比CPI传输类指令40%15双操作数指令30%20单操作数指令20%15转移类指令10%10假设该I/O程序由200条指令构成,CPU每次执行该程序可并行输出4KB数据。CPU主频32MHz,求I/O带宽。53/65.存储器的容量※内存(主存)容量指可编址的存储单元个数×存储单元的位宽取决于地址码位数表明编址单位※外存(辅存)容量指存储器能存储的最大数据量;常表示为:Byte、KB、MB、GB、TB外存容量与总线地址码的位数无关。54/6第2章数据表示、运算与校验主要介绍:①数字型数据的计数制、符号数的表示、定点数和浮点数;②基本的运算方法;③字符的表示;④常用的数据校验方法;55/322.1.1进位计数制※数制的基与权在任一数制中,每一个数位上允许使用的记数符号的个数被称为该数制的基数。每1位都对应1个表示该位在数码中的位置的值,这个值就称为数位的权值w。[例]

12810,110122.1数值型数据的表示方法

W=102W=2356/32(1)2进制:0、1(2)8进制:0、1、2、…、7(3)16进制:0、…、9、A、B、C、D、E、F1.常用的几种进位制2.进制之间的转换(1)整数

10

2(除2取余法)(2)小数10

2(乘2取整法)(3)整数

2

10(按权相加)(4)小数2

10(按权相加)(5)16进制↔2进制(逐位转换/分组转换)57/3229(1)2910→X22141270231211201高位低位(2)0.687510→X2除2取余乘2取整0.6875×2=1.37510.375×2=0.7500.75×2=1.510.5×2=1.01低位高位X2=111012X2=0.10112(3)1101.112→X10X10=1×23=13.7510按权相加+1×22+0×21+1×20+1×2-1+1×2-258/32(4)1111012→X16X16=111101=00111101(5)28AF16→X2X2=28AF(6)28AF16→X10X10=28AF==1041510=0010=0011

1101=3D161000101011112×163+8×162+10×161+15×160按权相加逐位转换4位分组、按组转换59/3260/322.1.2带符号数的表示数的符号表示规则:“0”表示正号“+”,“1”表示负号“-”01001010+1001010-100101011001010一个二进制数,用0-1代码表示符号,数值位不变就得到与该二进制数真值对应的原码真值原码1、原码二进制数的码制:原码、反码、补码和移码61/32字长为8位的原码表示范围为:-127~+127

[+127]原

=01111111

[–127]原

=11111111数值“0”有两种原码形式:

[+0]原=00000000

[-0]原=1000000062/322、反码②负数情况符号位保持为“1”,数值位分别“按位取反”①

正数情况X反=X原(X≥0)[例]

X=

-1101001

(真值-105)X原=1

1101001X反=1

0010110[例]

X=

+1101001(真值+105)

X反=X原=0

1101001字长8位的反码表示范围为:-127~+127

[+127]反=01111111

[-127]反=10000000数值“0”也有两反码形式:[+0]反=00000000[-0]反=11111111163/3264/32※补码的编码规则:3、补码(a)对于正数(字长8位)

[X]补=[X]原

(即X≥0时)(b)对于负数(字长8位)符号位仍保持为“1”其余各数值位“按位取反,末位再加1”

[X]补=[X]反+…1

(即X<0时)编码定义:[X]补=X+2n(模2n),n为编码位数65/32字长8位的补码表示范围为:-128~+127

[+127]补=01111111;

[-128]补=1

0000000※注意补码比原码和反码多表示1个负值,即-128数值“0”只有1种补码形式:

[+0]补=[-0]补=

0000000066/324、原码和补码之间的转换(1)已知[X]原,求[X]补[例]已知[X]原=10011010,求[X]补

解:[X]原=

10011010

↓↓↓↓↓↓↓↓11100101+

1[X]补=11100110符号位不变,其余各位变反原码为负数末位加1+1

67/32(2)已知[X]补,求[X]原

[[X]补]补=[X]原[例]已知[X]补=11101100,求[X]原解:[X]补=

11101100

↓↓↓↓↓↓↓↓

10010011[X]原=10010100符号位不变,其余各位变反补码为负数末位加1+168/32(3)求补(变补),即已知[X]补,求[-X]补[X]补的代码连同符号位一起变反,末位再加1,即得到[-X]补[例]已知[X]补=01010110,求[-X]补解:[X]补=01010110

↓↓↓↓↓↓↓↓10101001

[-X]补=10101010不区分正负数连同符号位一起变反末位加15、移(增)码上述规则等价于将x正向平移或者增加2n-1

,因此称之为移码或增码。移码通常用于表示浮点数的阶码。阶码一般为整数,故移码通常只用于表示整数对定点整数x,它的移码是:

[x]移=2n-1+x,其中-2n-1≤x<2n-1这里的n为X原位数69/3270/32[例]阶码的为6位,X表示其真值

X移=25+X(-25<X<25)[例]当正数X=+10101时,

X移=25+X=110101

当负数X=-10101时,

X移=25+X=25-10101

=001011移码表示范围与补码一致,0也只有1个移码。正数:将原码符号位变反,即得到移码。负数:将原码连同符号位一起变反,末位再加1,即得到移码(与变补等效)。补码和移码:

符号相反、数值位相同71/32二进制代码无符号真值原码真值反码真值补码真值移码真值0000000000000001┆0111111001111111100000001000000110000010┆11111101111111101111111101┆126127128129130┆253254255+0+1┆+126+127-0-1-2┆-125-126-127+0+1┆+126+127-127-126-125┆-2-1-0+0+1┆+126+127-128-127-126┆-3-2-1-128-127┆-2-1012┆12512612772/321、定点数的表示2.1.3定点数与浮点数.01011101数值部分符号位小数点数的小数点固定在同一位置不变。①带符号的定点小数约定所有数的小数点的位置,固定在符号位之后。字长n+1位,则表示范围为:-(1-2-n)

~1-2-n73/32②带符号的定点整数

0101110

.1数值部分符号位小数点小数点的位置固定在最低数值位之后字长n+1位,则数的表示范围为:-(2n-1)~2n-1③无符号定点整数若代码序列为XnXn-1…X1X0,共n+1位,则有:典型值真值代码序列最大正数2n+1-111…1111最小非零正数100….001表示范围为:小数点的位置固定在最低数值位之后

0~(2n+1-1)分辨率为:

174/3210000000补~01111111补无符号数:定点整数:定点小数:00000000~11111111025511111111原~01111111原-127127-1281271.1111111原~0.1111111原-(1-2-7)(1-2-7)1.0000000补~0.1111111补-1(1-2-7)※字长8位的定点数的表示范围75/3276/322、浮点数的表示原理①浮点表示中,小数点的位置可按需浮动格式模型:阶符阶码位

.数符.尾数位阶码(带符号的定点整数)尾数(带符号的定点小数)隐含小数点隐含小数点②引入浮点数表示的意义[例]某字长为8位的原码二进制数定点数:11111111~01111111-127

127-(1-2-7)

1-2-7精度:1精度:2-7浮点数:5位阶码+3位尾数215×(-0.75)

~

215×0.75精度:11111001=2-15×0.2501111111~01111011整数:小数:相同字长时,浮点数的表示范围更大、精度更高!77/32浮点数真值:N=±RE×M

阶码E尾数M阶符数符R:阶码的底数,隐含约定为2。E:阶码,定点整数,补码或移码表示,其位数决定了数值的范围;M:尾数,为定点小数,原码或补码表示,其位数决定着数的精度;数符表示数的正负。③浮点数的机器(存储)格式EfE1…EmMfM1…Mn78/32④尾数M的规格化表示规格化的目的→使浮点数的表示代码“唯一”128=0.128×103=1.28×102=12.8×101,…科学计数法约定:1≤|M|<10则规范形式:128=1.28×102(唯一)3.2=1.6×21=0.8×22=0.4×23,…可以表示成任意多个代码形式约定尾数M的值域,使数的表示是唯一的、确定的→计算不便→尾数M的“规格”化79/32正数,规格化后最高数值位为“1”负数,规格化后最高数值位为“0”规格化以后尾数的最高有效位为“1”对于补码:对于原码:①浮点数用原码表示时0-11-1/21/2-1≤M﹤-1/2

或1/2≤M﹤1②浮点数用补码表示时1/2≤|M|﹤1M原=0.1000,1.1010M原=0.0010,1.0110如0.1010,0.1110非规格化如1.0010,1.0000-0.875-10.6250.87580/32最小浮点数最大浮点数为最大正数:[例1]阶符1位、阶码m位,数符1位、尾数n位,如果表示成规格化补码,分析各真值对应的M、E取值情况。最小浮点正数为最大正数:2

-1m为最小负数:-1为最大正数:2

-1m1-2-n为最小负数:-2

m为最小正数:2-1最大浮点负数为最小负数:-2

m为最大负数:-(1/2+2-n)N=M×2E-1≤M<-1/2或1/2≤M<1=F(M,E)-2m≤E≤2m-1E→M→

E→M→

E→M→

E→M→

81/32[思考]某十六进制浮点数A368000016,将其表示成补码,字长32位,阶码8位(含1位阶符),尾数24位(含1位数符),求该浮点数十进制的真值。表示范围:231

×(-1)[例2]某个用规格化补码表示的浮点数,其中阶码6位(含1位阶符),尾数10位(含1位数符)。绝对精度=2-32×0.5=2-33相对精度=2-9(即最小的非0正数):(只与尾数的数值位数有关):011111

100…00~011111

011…11231×

(1-2-9)100000

010…00xxxxxx

000…0182/3283/323、※IEEE754格式的浮点数在上述的表示格式中:S=浮点数的符号位,0表示正数,1表示负数;E=阶码,8位,采用移码表示,阶符隐含;M=尾数,23位,纯小数表示,且真值=1+M;阶码E采用移码形式,但只偏移27-1

(不是27)。

有32位浮点数(单精度)和64位浮点数(双精度)①32位短浮点数:SEM3130

~

2322

~

0在上述表示格式中:S=浮点数的符号位,0表示正数,1表示负数;E=阶码,11位,采用移码方式,阶符隐含;M=尾数,52位,用纯小数表示;对阶码E编码时,只偏移210-1

(标准移码偏移210)。②64位长浮点数:SEM6362

~

5251

~

084/32※补充说明:

85/32(1)为了确保浮点数表示的唯一性,约定0≤M<1;(2)E为全0且M非全0:非规范浮点数(E偏移126),则:F真=(-1)S×M×2E-126(5)E为全1(255):M为全0,则F真=±∞(6)E为全1(255):M非全0时,代码无效(NaN);(4)1≤E≤254:数是规范浮点数(E偏移127),则:F真=(-1)S×(1+M)×2E-127(3)E为全0且M为全0:表示浮点数086/32[解答]首先分别将整数和小数部分转换成二进制:20.59375=10100.10011然后移动小数点,使其在第1、2位之间10100.10011=1.010010011×24

小数点被左移了4位,于是得到:e=4尾符S=0,阶码E=4+127=131,尾数M=010010011最后得到32位浮点数的二进制代码:01000001101001001100000000000000

=(41A4C000)16[例]

将十进制数20.59375转换成IEEE754的32位标准浮点数的2进制格式,并写出相应的16进制数。2.2字符表示方法2.2.1ASCII码ASCII(AmericanStandardCodeforInformationInterchange)。字符总数:128包含数字0~9,大小写英文字母,运算符,标点符号,标示符,格式控制符等等。代码宽度:7b存储宽度:7b(有效位)+1b(奇偶校验位)=8b87/7ASCII码示例16进制30313233343536373839数字0123456789①数字型②字符型16进制4142434445464748494A字符ABCDEFGHIJ③其它型16进制2528292A3C3D3E3F407F字符%()*<=>?@DEL88/72.2.2汉字编码1.汉字的输入码89/7①数字输入码包括:数字码、拼音码、字形码√常用的是国标区位码,用数字串代表汉字;√将6763个二级汉字分为94个区,每区94位,把汉字表示成二维数组,数组下标就是区位码。※数字编码输入的优缺点:无重码,输入码与内部码的转换方便,代码难以记忆。[例]平↔3829(位于码表38区、29位)以汉字拼音为基础的输入方法(如微软拼音)根据汉字的书写形状来进行编码(如五笔字型)。②拼音输入码√简单方便;√同音字多,重码率高,影响输入速度。※拼音输入码的优缺点:③字形输入码√把汉字的笔划部件用字母或数字进行编码,按笔划顺序依次输入,就能对应一个汉字。√简单方便,符合书写习惯;√重码率高,需要记住字形结构。※字形输入码的优缺点:90/72.汉字的内码国标码:10进制区位码转成16进制,再加2020H用于汉字信息的存储、交换、检索等操作的计算机内代码,一般用两个字节表示。机内码:国标码+8080H(与ASCII区别),或者区位码转成16进制+A0A0H√机内码的基础是国标码[例]“啊”的区位码160110=1001H国标码=1001H+2020H=3021H机内码=1001H+A0A0H=B0A1H91/73.汉字字模码字模码用点阵表示的汉字字形代码,是汉字的输出形式。92/7例如:字模码汉字的字模码为:16×16位=32字节※特别说明:93/7①字模点阵用来构成汉字库,并非而机内存储。②字库中存储每个汉字的点阵代码,用于汉字的显示输出或打印输出。③当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。√汉字的输入码、内码、字模码分别是用于计算机输入、内部处理、输出三种不同用途的编码;√各有用途,不能混为一谈。2.3数据处理与存储94/1110011111、移位操作(1)逻辑移位

:数码位置变化。(2)算术移位

10001111循环左移::符号位不变、数码位置变化算术左移:1

10

(-15)(-30)000111101111数值发生2n倍变化,n为移动的位数空位补095/11(1)单符号位:0011101110

(2)双符号位:001110

000111①正数补码\原码移位规则※移位规则左移右移右移0

01110

0011左移左移右移右移011100

001110000111数符不变(单:符号位不变;双:第1符号位不变)空位补0(右移时第2符号位移至尾数最高位)96/11(2)单符号位:1101110110

(3)双符号位:101100

110110②负数补码移位(1)移位规则左移右移右移1

10111

1101左移右移右移110110111011数符不变(单:符号位不变;双:第1符号位不变)左移空位补0(第二符号位移至尾数最高位)。右移空位补197/11※易出错处:00

1110左右011100正确:11

0110101100001100011100

000110正确:00

1110111100左正确:101100

111110右11

0110正确:98/112、舍入方法①0舍1入(原码、补码)000100原

100101原

111011补

②末位恒置1(原码、补码)000100原

111011补

100101原

00010原

10011原

11110补

00011原

10011原

11101补

[例]保留4位尾数:[例]保留4位尾数:99/110000000A000AFFFF800A800A0000002A002A0000F12CF12C直接把符号位(0/1)填充到扩展位高位均全补03、数位扩展与压缩(1)符号扩展(2)0-扩展(3)位数压缩弃高位、留低位F12B800A02A0F12C800AF12C(针对无符号数)100/114、数据存储(按字节编址)(1)小端模式/Little-Endian小地址单元存储数据的低位(即尾端)#103#102#101#100FFFF0001FFFF0001(2)大端模式/Big-Endian大地址单元存储数据的低位(即尾端)#103#102#101#100FFFF00010100FFFF101/115、数据字的对齐(Alignment)102/11要求数据的地址是相应的边界地址

※按边界对齐(假定存储字宽度为32位,按字节编址,字长32位)

字地址:4的倍数(低两位为0)

半字地址:2的倍数(低位为0)

字节地址:任意※不按边界对齐

例如inti,shortk,doublex,charc则&i=0;&k=4;&x=8;&c=16则&i=0;&k=4;&x=6;&c=14;ikxc按字边界对齐不按边界对齐0004081216字节0字节1

字节2

字节3ikxc试分析访存次数的变化情况字节0字节1字节2字节30004081216103/11

思考下列问题:1、在32位机器上输出si,usi,i,ui的十进制(真值)和十六进制值(补码机器数)是什么?shortsi=-32768;unsignedshortusi=si;inti=si;unsingnedintui=usi;已知32768=215=1000000000000000B2、某机存储器按字节编址,字长32位,欲存储俩数shortfloatf1=-256,f2=-128.75。试分析在地址码为#1000存储单元的小端字对齐存储模式。104/112.4基本运算方法补码(+、–、×、÷)原码(+、–、×、÷)浮点数运算移码(+、–)定点数运算105/472.4.1定点数的运算定点数一般用补码表示;符号位参加运算。重点:基于补码的加、减乘、除法106/471.补码的加减法(X+Y)补=X补+Y补(1)(X-Y)补=X补+(-Y)补(2)数学依据:(X+Y)补=X+Y+2n=X+Y+2n+2n=X补+Y补全过程以2n为模,即除以2n后取余数。(X-Y)补=X-Y+2n=X-Y+2n+2n=X补+(-Y)补其中,(-Y)补=[Y补]变补Y的符号置反后再表示成补码Y补连同符号一起变反、末尾+1107/472)X=–3Y=–2

X补=11101

Y补=1111011011(-5补码)1)X=3Y=2

X补=00011

Y补=0001000101(+5补码)【例】求(X+Y)补1)X=4Y=–5

X补=00100

Y补=11011(-Y)补=0010101001(+9补码)2)X=–4Y=5

X补=11100

Y补=00101(-Y)补=1101110111(–9补码)【例】求(X–Y)补

X补=00100

Y补=11011

X补=11100

Y补=00101108/4700101原10101原※补码表示与变补运算的区别补码表示10011补变补运算补码表示符号位不变负数尾数改变,正数尾数不变。00011补变补运算符号位变反,尾数变反、末尾加1【举例】11011001010110111101(-Y)补也称为Y补的机器负数。109/47(2)补码加减运算流程操作数用补码表示,符号位参加运算得到补码表示的结果,符号位指示结果的正负X补+Y补X补+(-Y)补ADDSUB110/47(3)逻辑实现#控制信号加法器输入端:Sub:控制MUX和CinA:输入A补B:输入B补加法器输出端:Sum:加法结果Cout:进位信号#补码加减运算器框图MUXSum加法器444AZFCinCout4B401SubBOF补码加/减运算部件逻辑SFCFB'ZF:0标志位;SF:符号标志;CF:进位/借位标志;OF:溢出标志。111/47(4)溢出判断思考:在什么情况下可能产生溢出?A:4位尾数,1位符号(SA)B:4位尾数,1位符号(SB)

补码,故符号位也参加运算结果的符号,记为Sf符号位的进位,记为Cf尾数最高位的进位,记为C[假设]补码表示的A、B两数做加减运算*溢出的判断规则112/470011011100正确00011000101)A=3、B=23+2:001012)A=10、B=710+7:010100011110001正溢正确负溢正确正确3)A=-3、B=-2-3+(-2):1101111101111104)A=-10、B=-7-10+(-7):01111101101

10015)A=6、B=-46+(-4):000106)A=-6、B=4-6+4:111101101000100113/470

101000111(2)A=10B=710+7:10001(4)A=-10B=-7-10+(-7):011111011011001①硬件判断逻辑一(根据SA、SB与Sf的关系)+溢出逻辑=SASBSf②硬件判断逻辑二(根据Cf与C的关系)正溢负溢SASBSf114/47正确00011000101)A=3B=23+2:001012)A=10B=710+7:010100011110001正溢正确负溢正确正确3)A=-3B=-2-3+(-2):1101111101111104)A=-10B=-7-10+(-7):0111110110110015)A=6B=-46+(-4):0001000110111006)A=-6B=4-6+4:111101101000100Cf=0C=0Cf=0C=1Cf=1C=1Cf=1C=0Cf=1C=1Cf=0C=0111111115/47②硬件判断逻辑二(Cf与C的关系)溢出逻辑=Cf⊕C③硬件判断逻辑三(从双符号位)①硬件判断逻辑一(SA、SB与Sf的关系)+溢出逻辑=SASBSfSASBSf116/471)3+2:正确00001100001000

01012)10+7:001010000111010001正溢正确负溢正确正确3)-3+(-2):1110111111011111104)-10+(-7):1011111101101110015)6+(-4):0000100001101111006)-6+4:11

111011

1010000100第1符号位Sf1第2符号位Sf2117/47③硬件判断逻辑三(双符号位Sf1、Sf2)溢出逻辑=Sf1⊕Sf2②硬件判断逻辑二(Cf与C的关系)溢出逻辑=Cf⊕C①硬件判断逻辑一(SA、SB与Sf的关系)+溢出逻辑=SASBSfSASBSf00/11-正确;01-正溢;10-负溢;118/472、原码加减运算[符号位单独处理、数值位加减]

先比较两数符号:①加法:同号数值位求和,异号求差;②减法:异号数值位求和,同号求差;※求和时:数值位相加,和的符号取被加数(被减数)符号[若最高位产生进位,则结果有溢出。※求差时:被加数(被减数)与加数(减数)求补后相加。⊙最高数值位有进位,相加结果为正,数值位正确;符号取被加数(被减数)的符号。⊙最高数值位无进位,相加结果为负,得到数值位的补码,需对结果求补还原为绝对值形式的数值位;符号位与被加数(被减数)的符号相反。119/473原+2原3原+[-2]原3原-2原3原-[-2]原求和求差[例]已知[X]原

=1.0011,[Y]原

=1.1010,计算[X+Y]原解:由原码加减运算规则知:同号相加,则求和,和的符号同被加数符号。和的数值位为:0011+1010=1101和的符号位为:1

[X+Y]原

=1.1101[例]已知[X]原

=1.0011,[Y]原

=1.1010,要求计算[X–Y]原

解:由原码加减运算规则知:同号相减,则数值位求差

差的数值位为:0011+(1010)求补

=0011+0110=1001

最高数值位无进位,表明加法结果为负,需对1001求补,还原为绝对值形式的数值位。即:(1001)求补=0111差的符号位为[X]原的符号位取反,即

[X–Y]原

=0.0111120/473、标准移码的加减[符号位和数值部分一起处理][E1]移+[E2]移=2n-1+E1+2n-1+E2=2n+E1+E2

=[E1+E2]补(mod2n)=E1补+E2补=

(E1移+E2移)反号[E1]移–[E2]移=2n-1+E1+2n–[E2]移

(mod2n)

=2n-1+E1+2n–2n-1–E2

=2n+E1–E2=[E1–E2]补(mod2n)=E1补+(E2)变补121/47[重要结论]两数移码的加减等于两数加减后表示成的补码。※补码和移码:符号位相反、数值位相同①加法:直接将[E1]移和[E2]移进行模2n加,结果的符号取反。②减法:先将减数[E2]移求补,然后再与被减数[E1]移进行模2n加,结果的符号取反。因此,可得到移码的下列加减法则:[溢出判断]进行模2n相加时,如果两个加数与和数符号全相同,则发生了溢出。122/47[例]用4位移码计算“–7+(–6)”和“–3+6”的值。[–7]移

=0001[–6]移=0010 [–3]移=0101 [6]移=1110[–7]移+[–6]移

=0001+0010=0011补

(符号都为0,有溢出)[–3]移

+[6]移

=0101+1110=0011补,(符号取反后为1011,其真值为+3)思考:[–7+(–6)]移=?

[–3+(6)]移

=?123/47[例]用四位移码计算“–7–(–6)”和“–3–5”

[–7]移

=0001[–6]移=0010

[–3]移=0101 [

5

]移=1101

[–7]移

–[–6]移

=0001+1110=1111补

符号取反后为0111,其真值为–1。

[–3]移

–[

5

]移

=0101+0011=1000补符号取反后为0000,其真值为–8124/472.4.2定点数乘法√原码一位乘√补码一位乘√原码两位乘125/471、原码一位乘原码乘法部分积累加、移位。[例]

0.1101×1.1011乘积

P

=|X|×|Y|X原Y原符号SP=SX⊕SY126/47手工运算0.1101×0.10111101110100001101.10001111添加符号:1.10001111部分积思考:1)加数的个数增多情况2)加数的位数增多的情况解决办法:可将1次总加改为分步移位累加←|X|←|Y|①加数只为|X|或0②个数为|Y|的位数127/47原码1位乘法(1)算法原理[每次将1位乘数所对应的部分积与原部分积的累加和相加,并移位]设置寄存器:

A:存放部分积累加和、乘积高位

B:存放被乘数

C:存放乘数、乘积低位

A=00.0000B=|X|=00.1101C=|Y|=.1011

设置初值:128/47步数CR条件操作A

C

00.0000.1011

0)Cn=1+BCn+00.110100.1101

0.1101×0.1011

1101110100001101

0.10001111BC

1101

00.01101.101

0.1101×0.10111)Cn=1+B+00.110101.001100.100111.10

0.1101×0.1011

0.1101×0.1011

1101110100001101

0.10001111BC2)Cn=0+0+00.000000.100100.0100111.13)Cn=1+B+00.110101.000100.10001111X原×Y原

=1.100011111011110111101111129/47(2)算法流程0→A、0→CR、|X|→B、|Y|→CCn=1?CR=n?1/2(A+B)→A,C1/2(A+0)→A,C

CR+1→CRYYNNSX⊕SY→SA130/47选择(3)32位硬件逻辑方案加法器AC寄存器控制逻辑clock0/BCnAC[63:32]AC[63:32]T=0:|X|→B,|Y|→AC[31:0],0→AC[63:32]32位BT=1:AC[63:32]+0/B→AC[63:32],AC右移T=2:T=n:同上,然后置符号。…Wn

右移SxSy64位的移位寄存器Cn=AC[0]131/472.补码一位乘法※Booth(比较法)Yn

(高位)Yn+1(低位)运算操作[XY]补=[An]补+(Y1-Y0)×[X]补*乘数尾添加Yn+1,循环判别YnYn+1,累加如表情况的的校正值,再整体右移1位(即½×

)。132/4700½×A补01½×

(A补+X补)10½×(A补-X补)11½×A补Y0[例]

X=-0.1101,Y=-0.1011,计算[XY]补初始化A=00.0000,ACCn+100000010101步数

CnCn+1条件操作1

1

0

-B+0011010011010

011011010

1101010右移1位→2

0

1

+B+1100111110011

1100110101右移1位→11101

0133/47B=X补=11.0011,-B=-X补=001101

C=Y补=1.01010011001000步数

CnCn+1条件操作3

1

0

-B+001101100100100100

111101111010右移1位→4

0

1

+B+

1100111101111

1011

111110111101右移1位→11110011101

0

1

0

-B+001101111110[XY]补=0010001111=

+0.1000

1111保持不变!!134/4701校正.(请参考教材)※补码1位乘法除了比较法,还有校正法。①乘数Y补为正,乘以X补累加,结果不校正;②乘数Y补为负,乘以X补累加,结果-X补校正;135/472.4.3

定点

温馨提示

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

评论

0/150

提交评论