计算机组成原理讲义.docx
《计算机组成原理讲义.docx》由会员分享,可在线阅读,更多相关《计算机组成原理讲义.docx(136页珍藏版)》请在冰豆网上搜索。
![计算机组成原理讲义.docx](https://file1.bdocx.com/fileroot1/2022-11/26/5fa76887-c393-43d6-a458-840fb79bfe31/5fa76887-c393-43d6-a458-840fb79bfe311.gif)
计算机组成原理讲义
计算机组成原理
课程简介
计算机组成原理是讲述计算机的一般结构、组成、原理的课程,本课程的基础课是数字电路、离散数学等,后继课程有计算机系统结构、微机原理等。
选用教材:
白中英主编,《计算机组成原理(第三版)》,科学出版社
第一章计算机系统概论
学习目标
·计算机硬件、软件的基本概念
·计算机系统的基本组成;
·计算机的工作过程;
·计算机系统的层次结构。
本章需掌握的主要内容:
1.计算机的发展、分类、特点与应用;
2.计算机硬件和软件的基本概念;
3.计算机硬件系统的组织,各部分的功能及其组成框图;
4.计算机的工作过程,即执行指令的过程;
5.冯.诺依曼型计算机的设计思想;
6.计算机系统的层次结构。
对计算机有一个总体的概念,以便展开后续各章内容。
1.1计算机的分类和应用
1.1.1计算机的分类
计算机分类:
模拟:
处理在时间和数值上连续的量
数字:
处理离散的量
数字计算机分类:
专用计算机:
如工控机、DSP、IOP等
通用计算机:
GPP
通用机分类:
巨型机(Super-Computer)、大型机(Mainframe)、中型机(Medium-sizeComputer)、小型机(minicomputer)、微型机(microcomputer)、单片机(Single-ChipComputer)
1.1.2计算机的应用
·科学计算:
传统方式:
工作量大、人工处理慢
·自动控制:
数控机床、流水线控制
·测量和测试:
提高精度、在恶劣条件下的测量
·信息处理:
·教育和卫生:
计算机辅助教学(CAI)、多媒体教室、CT(Computerizedtomography)
·家用电器:
·人工智能
1.2计算机的硬件
1.2.1数字计算机的硬件组成
概念:
存储单元、地址、存储容量、外存储器、内存储器、指令、程序、指令的组成、存储程序、程序控制、指令系统、指令周期、执行周期、CPU、主机、数据字、指令字、数据流、指令流、适配器。
冯·诺依曼体系结构:
(1)采用二进制形式表示数据和指令
数据和指令在代码的外形上并无区别.都是由0和1组成的代码序列,只是各自约定的含义不同而已。
采用二进制、使信息数字化容易实现,可以用二值逻辑工具进行处理。
程序信息本身也可以作为被处理的对象,进行加工处理,例如对照程序进行编译,就是将源程序当作被加工处理的对象。
(2)采用存储程序方式
这是诺依曼思想的核心内容。
如前所述,它意味着事先编制程序,事先将程序(包含指令和数据)存入主存储器中,计算机在运行程序时就能自动地、连续地从存储器中依次取出指令且执行。
这是计算机能高速自动运行的基础。
计算机的工作体现为执行程序,计算机功能的扩展在很大程度上体现为所存储程序的扩展。
计算机的许多具体工作方式也是由此派生的。
(3)由运算器、存储器、控制器、输入装置和输出装置等五大部件组成计算机系统,并规定了这五部分的基本功能。
上述这些概念奠定了现代计算机的基本结构思想,并开创了程序设计的新时代。
到目前为止,绝大多数计算机仍沿用这一体制,称为冯·诺依曼机体制。
学习计算机工作原理也就从冯·诺依曼概念入门。
•一般的计算机结构框图(存储器为中心)
五大组成部分:
运算器、控制器、存储器、输入/输出设备。
1.运算器
•算术运算和逻辑运算
•在计算机中参与运算的数是二进制的
•
运算器的长度一般是8、16、32或64位
2.存储器
•存储器
–存储数据和程序
–容量(存储单元、存储单元地址、容量单位)
–分类内存(ROM、RAM)、外存
–存储器单位:
•210byte=1K
•210K=1M
•210M=1G
•210G=1T
存储单元:
在存储器中保存一个数的16个触发器,称为一个存储单元。
地址:
存储器是由许多存储单元组成,每个存储单元的编号,称为地址。
存储容量:
存储器所有存储单元的总数。
通常用单位“KB、MB”表示,如64KB,128MB。
存储容量越大,表示计算机记忆储存的信息就越多。
外存储器:
计算机中又配备的存储容量更大的磁盘存储器、光盘存储器等。
相对而言,半导体存储器称为内存储器,简称内存。
3、控制器
•控制器
–指令和程序(计算机工作原理)
–指令的形式(操作和地址码、存储程序的概念、指令中程序和数据的存放、指令系统)
–控制器的基本任务:
按照一定的顺序一条接着一条取指令、指令译码、执行指令。
取指周期和执行周期
–指令流和数据流
指令:
每一个基本操作就叫做一条指令,
程序:
而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。
指令形式:
的内容由两部分组成,即操作的性质和操作的地址。
前者称为操作码,后者称为地址码。
操作码
地址码
操作码:
指出指令所进行的操作,如加、减、乘、除、取数、存数等等;
地址码:
表示参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元。
取指周期:
通常把取指令的一段时间叫做取指周期,
执行周期:
而把执行指令的一段时间叫做执行周期。
主机:
CPU和存储器的合称
4、适配器与I/O设备
•计算机的发展(系统结构1.2doc)
手工模仿计算机工作
(1)
手工模仿计算机工作
(2)
•加法001
•减法010
•乘法011
•除法100
•取数101
•存数110
•打印111
•停机000
操作码操作数
1.2.2计算机系统结构的过去和未来
发展:
电子管→晶体管→集成电路→大规模、超大规模集成电路
趋势:
● 由于计算机网络和分布式计算机系统能为信息处理提供廉价的服务,因此计算机系统的进一步发展,“三网合一”,将进入以通信为中心的体系结构。
● 计算机智能化将进一步发展,各种知识库及人工智能技术将进一步普及,人们将用自然语言和机器对话。
计算机从数值计算为主过渡到知识推理为主,从而使计算机进入知识处理阶段。
● 随着大规模集成电路的发展,不仅用多处理机技术来实现大型机系统功能,而且会出现计算机的动态结构,即所谓模块化计算机系统结构。
● 多媒体技术将有重大突破和发展,并在微处理机、计算机网络与通信等方面引起一次巨大变革。
1.3计算机的软件
计算机硬件是载体,软件是灵魂。
1.3.1软件的组成与分类
分类:
系统程序、应用程序
1.3.2软件的发展演变
手编程序(目的程序)→汇编程序→算法语言(高级语言)
高级语言与机器语言的转换:
编译系统、解释系统
操作系统、数据库
1.4计算机系统的层次结构
1.4.1多级组成的计算机系统
P16图1.6五个级别:
第一级微程序设计级、第二级是一般机器级、第三级是操作系统级、第四级是汇编语言级、第五级是高级语言级。
1.4.2软件与硬件的逻辑等价性
补充:
计算机的性能指标
•基本字长
•基本字长是指参与运算的数的基本位数,它标志着计算精度。
位数越多,精度越高,但硬件成本也越高,因为它决定着寄存器、运算部件、数据总线等的位数。
•主存容量
•主存储器是CPU可以直接访问的存储器,需要执行的程序与需要处理的数据就放在主存之中。
主存容量大则可以运行比较复杂的程序,并可存入大量信息,可利用更完善的软件支撑环境。
所以,计算机处理能力的大小在很大程度上取决于主存容量的大小。
•外存容量
外存容量一般是指计算机系统中联机运行的外存储器容量。
由于操作系统、编译程序及众多的软件资源往往存放在外存之中,需用时再调入主存运行。
在批处理、多道程序方式中,也常将各用户待执行的程序、数据以作业形式先放在外存中,再陆续调入主存运行。
所以,联机外存容量也是一项重要指标,一般以字节数表示。
•运算速度
同一台计算机,执行不同的运算所需时间可能不同,因而对运算速度的描述常采用不同方法。
常用的有CPU时钟频率、每秒平均执行指令数(ips)、单独注明时间等。
•所配置的外围设备及其性能指标
•外围设备配置也是影响整个系统性能的重要因素,所以在系统技术说明中常给出允许配置情况与实际配置情况。
•系统软件配置情况
•作为一种硬件系统,允许配置的系统软件原则上是可以不断扩充的,但实际购买的某个系统究竟已配置哪些软件,则表明它的当前功能。
第二章运算方法和运算器
本章摘要
·数值数据和非数值数据在计算机中的表示方法;
·定点数加、减、乘、除运算方法;
·浮点数加、减、乘、除运算方法;
·定点、浮点运算器的组成及工作原理。
本章需掌握的主要内容:
1.掌握定点数和浮点数以及原码、反码、补码的表示方法;
2.掌握补码加减运算的方法,溢出的概念与检测方法,基本的二进制加法。
3.理解定点乘法运算和除法运算的工作原理;
4.理解ALU的功能、设计方法和工作原理;
5.掌握基本的浮点运算方法,了解浮点运算器的组成和原理;
6.理解内部总线的概念、分类及特点;
2.1数据与文字的表示方法
2.1.1数据格式
在选择计算机的数的表示方式时,应当全面考虑以下几个因素:
•要表示的数的类型(小数、整数、实数和复数):
决定表示方式
•可能遇到的数值范围:
确定存储、处理能力
•数值精确度:
处理能力相关
•数据存储和处理所需要的硬件代价:
造价高低
两种常用格式:
•定点格式:
定点格式容许的数值范围有限,但要求的处理硬件比较简单;
(1)定点纯小数
x0x1x2x3…xn-1xn
表示数的范围是0≤|x|≤1-2-n
(最小数、最大数、最接近0的正数、最接近0的负数)
x=0.00...0
x=1.00...0
x=0
正0和负0都是0
X=0.11...1
x=1-2-n
最大
X=0.00...01
x=2-n
最接近0的正数
X=1.00...01
x=-2-n
最接近0的负数
X=1.11...1
x=-(1-2-n )
最小
(2)定点纯整数
x0x1x2x3…xn-1xn
表示数的范围是0≤|x|≤2n-1
?
最小数、最大数、最接近0的正数、最接近0的负数呢
•浮点格式:
容许的数值范围很大,但要求的处理硬件比较复杂。
(1) 定点数表示法
定点指小数点的位置固定,为了处理方便,一般分为定点纯整数和纯小数。
(2) 浮点数表示法(小数点位置随阶码不同而浮动)
格式N=Re.m
浮点表示法,即小数点的位置是浮动的。
其思想来源于科学计数法。
M:
尾数,是一个纯小数。
e:
比例因子的指数,称为浮点数的指数,是一个整数。
R:
比例因子的基数,对于二进制数值的机器是一个常数,一般规定R为2,8或16。
一个机器浮点数由阶码和尾数及其符号位组成(尾数:
用定点小数表示,给出有效数字的位数决定了浮点数的表示精度;阶码:
用整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。
):
为便于软件移植,按照IEEE754标准,32位浮点数和64位浮点数的标准格式为
32位的浮点数中,S:
浮点数的符号位,1位,0表示正数,1表示负数。
M:
尾数,23位,用小数表示,小数点放在尾数域的最前面。
E:
阶码(8位),阶符采用隐含方式,即采用移码方式来表示正负指数。
移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。
采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127.
例1:
若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。
[解:
]
将十六进制数展开后,可得二进制数格式为
指数e=阶码-127=10000010-01111111=00000011=(3)10
包括隐藏位1的尾数1.M=1.01101100000000000000000=1.011011
于是有
x=(-1)s×1.M×2e
=+(1.011011)×23=+1011.011=(11.375)10
例2:
将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。
[解:
]
首先分别将整数和分数部分转换成二进制数:
20.59375=10100.10011
然后移动小数点,使其在第1,2位之间
10100.10011=1.010010011×24 e=4
于是得到:
S=0, E=4+127=131, M=010010011
最后得到32位浮点数的二进制存储格式为:
01000001101001001100000000000000=(41A4C000)16
浮点数的规格化:
主要解决同一浮点数表示形式的不唯一性问题。
规定,否则尾数要进行左移或右移。
机器零的概念:
当一个浮点数的尾数为0,不论其阶码为何数,或当阶码值遇到比它能表示的最小值还小时,不论其尾数为何值,计算机把该浮点数看成零值,称为机器零。
3)十进制数串的表示方法
•字符串形式:
一个字节存放一个十进制的数位或符号位
•BCD(压缩):
一个字节存放两个十进制的数位
•编码方式
–有权码:
(8421码、2421码、5211码)
–无权码:
(余三码、格雷码)
•自定义数据表示
4) 自定义数据表示
标志符数据表示、描述符数据表示
区别:
标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放;
描述符表示中,先访问描述符,后访问数据,至少增加一次访存;
描述符是程序的一部分,而不是数据的一部分。
2.1.2数的机器码表示
•数的机器码表示
–真值和机器码:
真值(书写用)、机器码(机器内部使用)的概念
–原码:
优点:
简单易懂。
缺点:
加减法运算复杂。
–补码:
加减法运算方便,减法可以转换为加法.
为了区别一般书写表示的数和机器中这些编码表示的数,通常将前者称为真值,后者称为机器数或机器码。
1、原码表示法
•定点小数x0.x1x2…xn
x1>x≥0 0,正数
[x]原=符号
1-x=1+|x|0≥x>-1 1,负数
注:
有正0和负0之分
范围2-n-1~1-2-n
例:
x=+0.11001110
[x]原=0.11001110[-x]原=1.11001110
•定点整数x0x1x2…xn
x2n>x≥0 0,正数
[x]原=符号
2n–x=2n+|x| 0≥x>-2n 1,负数
注:
有正0和负0之分
范围1-2n~2n-1
例:
x=+11001110
[x]原=011001110[-x]原=111001110
2、补码:
我们先以钟表对时为例说明补码的概念。
假设现在的标准时间为4点正;而有一只表已经7点了,为了校准时间,可以采用两种方法:
一是将时针退7-4=3格;一是将时针向前拨12-3=9格。
这两种方法都能对准到4点,由此可以看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表示
-3=+9(mod12)
mod12的意思就是12模数,这个“模”表示被丢掉的数值。
上式在数学上称为同余式。
上例中其所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉,最后得到16-12=4。
从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。
这样,在计算机中实现起来就比较方便。
•定点小数x0.x1x2…xn
x1>x≥0 0,正数
[x]补=符号
2+x=2-|x|0≥x>-1 1,负数
注:
0的补码只有一种形式
范围2-n-1~1-2-n
例:
(1) x=-0.1011 (2)y=-0.01111
[x]补=10+x=10.0000-0.1011=1.0101
[y]补=10+y=10.00000-0.01111=1,10001
•定点整数x0x1x2…xn
x2n>x≥0 0,正数
[x]补=符号
2n+1+x=2n+1-|x| 0≥x>-2n 1,负数
注:
0的补码只有一种形式
范围-2n~2n-1
3、反码:
为计算补码方便而引入
计算公式:
小数公式2.11(P25),整数公式2.12(P25)
由反码求补码:
符号位置1,各位取反,末位加1。
4、移码:
用于阶码的表示,两个移码容易比较大小,便于对阶。
定义:
公式2.14。
即将数值向X轴正方向平移2n
–例-1011111原码为11011111
–补码为10100001反码为10100000
–移码为00100001
–特点:
移码和补码尾数相同,符号位相反
–例3和例4
小结:
上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。
由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。
在这类机器中,数用补码表示,补码存储,补码运算。
也有些机器,数用原码进行存储和传送,运算时改用补码。
还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。
2.1.3字符与字符串的表示方式
ASCII码
2.1.4汉字的表示方式
1) 输入码:
用于汉字输入
2) 内码:
用于汉字的存储
3) 字模码:
用于汉字的显示
2.1.5校验码
奇、偶校验码
最简单且应用广泛的检错码是采用一位校验位的奇校验或偶校验。
设x=(x0x1…xn-1)是一个n位字,则奇校验位
定义为
=x0⊕x1⊕…⊕xn-1
(2.15)
式中⊕代表按位加,表明只有当x中包含有奇数个1时,才使
=1,即
=0。
同理,偶校验位C定义为
C=x0⊕x1⊕…⊕xn-1
(2.16)
即x中包含偶数个1时,才使C=0。
[例7]已知下表中左面一栏有5个字节的数据。
请分别用奇校验和偶校验进行编码,填在中间一栏和右面一栏。
见P30
补充内容
一、常用逻辑门
二、全加器
三、编码器和译码器
四、触发器
五、寄存器
2.2定点加法、减法运算
一、补码加法
加法公式:
[x+y]补=[x]补+[y]补(mod2)(2.17)
证明:
(P31)假定X、Y均为定点小数,且|x|<1,|y|<1,|x+y|<1
(1)若x>0,y>0则x+y>0
[x]补+[y]补=x+y=[x+y]补(正数的原、反、补码是相同的)
(2)x>0,y<0
[x]补=x[y]补=2+y
[x]补+[y]补=x+2+y=2+(x+y)
①当x+y>0
2+(x+y)会产生进位,进位位丢掉
2+(x+y)=x+y=[x+y]补
②当x+y<0
2+(x+y)=[x+y]补
故[x]补+[y]补=[x+y]补
(3)x<0,y>0
(略)同
(2)
(4)x<0,y<0
[x]补=2+x[y]补=2+y
[x]补+[y]补=2+x+2+y=2+(2+x+y)
∵-1则-1+2<2+x+y<0+2
1<2+x+y<2
∴2+(2+x+y)产生进位、丢掉,2+(2+x+y)=(2+x+y)
又∵x+y<0
∴(2+x+y)=2+(x+y)=[x+y]补
注:
补码加法的特点:
(1)符号位要作为数的一部分参与运算
(2)要在模2的意义下相加,即超过2的进位要丢掉。
例1:
x=-0.1011,y=0.0111
[x]补=1.0101[y]补=0.0111
[x+y]补=[x]补+[y]补=1.0101+0.0111=1.1100
x+y=-0.0100
例2:
x=+0.11011,y=-0.11111
[x]补=0.11011[y]补=1.00001[-y]补=0.11111
[x-y]补=[x]补+[-y]补=1.11010
二、补码减法
加法公式:
[x-y]补=[x]补-[y]补=[x]补+[-y]补(mod2)(2.18)
证明:
P32(略)只要证明[y]补+[-y]补=0
从[y]补求[-y]补,表达式为:
[-y]补=乛[y]补+2-n
其中乛表示对[y]补作包括符号位在内的求反操作
例10(略)P33
例11(略)P33
三、溢出概念与检测方法
1.溢出概念:
溢出:
在定点小数机器中,数的表示范围为|x|<1。
在运算过程中如果出现大于1的情况,称为溢出。
上溢:
两个正数相加,结果大于机器所能表示的最大正数
下溢:
两个负数相加,结果小于机器所能表示的最小负数
2.溢出的检测方法:
(1)双符号位(变形补码或模4补码):
变形补码定义:
x
X=
4+x0>x>-2
采用变形补码后:
当1>x≥0两个符号位都是0。
如00.1010
当0>x>-1两个符号位都是1。
如11.1010
对变形补码其特点:
①符号位参与运算
②在模4下相加运算,进位4丢掉
结论:
①运算结果的两符号位相异时,表示溢出。
②不论溢出与否,最高符号位始终指示正确的符号。
例10(略)P34
例11(略)P34
(2)单符号位:
(1)当最高有效位产生进位而符号位无进位时,产生上溢出。
(2)当最高有效位无进位而符号位产生进位时,产生下溢出。
溢出表达式为:
V=Cf⊕C0Cf---符号位产生的进位,
C0----最高有效位产生的进位)
•CfC0
•00正确(正数)
•01上溢
•10下溢
•11正确(负数)
四、基本的二进制加法/减法器
输入
输出
AiBi
SiCi
00
00
01
10
10
10
11
01
•基本的加法和减法器一位半加器真值表
–半加器(不考虑进位)
–Hi=Ai⊕Bi
电路图略
–全加器(考虑低位进位Ci-1和向高位的进位Ci)
真值表见P35表2.2
进位处理方式:
串行进位(行波进位)、并行进位
二进制加法/减法器图2.2(P31)
五、十进制加法器
十进制加法/减法器图2.3(P36)
•校正方法
–当Xi+Yi+Ci<10时,Si=S
–当Xi+Yi+Ci>=10时,Si=S+6
–校正因子生成方法
例如:
A=0101 B=0111
A+B=0101+0111=1100(结果不是BCD码)
1100+0110=10010(1为进位,构成12的BCD码,所以正确)
2.3定点乘法运算
一、原码并行乘法
1.定点原码乘法原理
一、