计算机组成原理知识点
计算机体系结构(Computer Architecture)主要研究硬件和软件功能的划分,确定硬件和软件的界⾯,哪部分功能由硬件系统来完成,哪部分功能由软件系统来完成。
计算机组成原理(Computer Organization)是依据计算机体系结构,在确定且分配了硬件⼦系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这点上说计算机组成原理是计算机体系结构的逻辑实现。
计算机实现(Computer Implementation)是计算机组成的物理实现,包括中央处理器、主存储器、输⼊输出接⼝和设备的物理结构,所选⽤的半导体器件的集成度和速度,器件、模块、插件、底板的划分,电源、冷却、装配等技术,⽣产⼯艺和系统调试等各种问题。总之,就是将完成逻辑设计的计算机组成⽅案转换成真实的计算机,也就是将满⾜设计、运⾏、价格等各项要求的计算机系统真正地制作并调试出来。
计算机组成原理
【考查⽬标】
1. 理解单处理器计算机系统中各部件的内部⼯作原理,组成结构以及相互连接⽅式,具有完整的计算
机系统的整机概念.
2. 理解计算机系统层次化结构概念,熟悉硬件与软件间的界⾯,掌握指令集体系结构的基本知识和基本实现⽅法
3. 能够运⽤计算机组成的基本原理和基本⽅法,对有关计算机硬件系统中的理论和实际问题进⾏计算,分析,并能对⼀些基本部件进⾏简单设计.
⼀, 计算机系统概述
(⼀) 计算机发展历程
第⼀台电⼦计算机ENIAC诞⽣于1946年美国宾⼣法尼亚⼤学.ENIAC⽤了18000电⼦管,1500继电器,重30吨,占地170m2,耗电140kw,每秒计算5000次加法.冯·诺依曼(VanNeumann)⾸次提出存储程序概念,将数据和程序⼀起放在存储器,使编程更加⽅便.50年来,虽然对冯·诺依曼机进⾏很多改⾰,但结构变化不⼤,仍称冯·诺依曼机.
⼀般把计算机的发展分为五个阶段:
发展阶段时间硬件技术速度/(次/秒)
第⼀代1946-1957电⼦管计算机时代40 000
第⼆代1958-1964晶体管计算机时代200 000
第三代1965-1971中⼩规模集成电路计算机时代  1 000 000
第四代1972-1977⼤规模集成电路计算机时代10 000 000
第五代1978-现在超⼤规模集成电路计算机时代100 000 000
ENIAC(Electronic Numerical IntegratorAnd Computer)电⼦数字积分机和计算机
EDVAC(Electronic Discrete Variable Automatic Computer)电⼦离散变量计算机
组成原理是讲硬件结构的 系统结构是讲结构设计的
摩尔定律    微芯⽚上的集成管数⽬每3年翻两番.处理器的处理速度每18个⽉增长⼀倍.
每代芯⽚的成本⼤约为前⼀代芯⽚成本的两倍
新摩尔定律  全球⼊⽹量每6个⽉翻⼀番.
数学家冯·诺依曼(von Neumann)在研究EDVAC机时提出了“储存程序”的概念.以此为基础的各类计算机通称为冯·诺依曼机.它有如下特点:
①计算机由运算器,控制器,存储器,输⼊和输出五部分组成
②指令和数据以同等的地位存放于存储器内,并可按地址寻访电气工程及其自动化就业方向
③指令和数据均⽤⼆进制数表⽰
④指令由操作码和地址码组成,操作码⽤来表⽰操作的性质,地址码⽤来表⽰操作数在存储器中的位置
⑤指令在存储器内按顺序存放
⑥机器以运算器为中⼼,输⼊输出设备与存储器间的数据传送通过运算器完成
图中各部件的功能
·运算器⽤来完成算术运算和逻辑运算并将的中间结果暂存在运算器内
·存储器⽤来存放数据和程序
·控制器⽤来控制,指挥程序和数据的输⼊,运⾏以及处理运⾏结果
·输⼊设备⽤来将⼈们熟悉的信息转换为机器识别的信息
·输出设备将机器运算结果转为⼈熟悉的信息形式
运算器最少包括3个寄存器(现代计算机内部往往设有通⽤寄存器)和⼀个算术逻辑单元(ALU Arithmetic Logic Unit).其中
ACC(Accumulator)为累加器,MQ(Multiplier-QuotientRegister)为乘商寄存器,X为操作数寄存器,这3个寄存器在完成不同运算时,说存放的操作数类别也各不相同.
计算机的主要硬件指标
(4.a) 主机完成⼀条指令的过程——以取数指令为例
(4.b) 主机完成⼀条指令的过程——以存数指令为例
(⼆) 计算机系统层次结构
1. 计算机硬件的基本组成
计算机硬件主要指计算机的实体部分,通常有运算器,控制器,存储器,输⼊和输出五部分.
CPU是指将运算器和控制器集成到⼀个电路芯⽚中.
2. 计算机软件的分类
计算机软件按照⾯向对象的不同可分两类:
系统软件:⽤于管理整个计算机系统,合理分配系统资源,确保计算机正常⾼效地运⾏,这类软件⾯向系统.(包括:标准程序库,语⾔处理程序,OS,服务程序,数据库管理系统,⽹络软件)
应⽤软件:是⾯向⽤户根据⽤户的特殊要求编制的应⽤程序,这类软件通常实现⽤户的某类要求.
3. 计算机的⼯作过程
(1)计算机的⼯作过程就是执⾏指令的过程
指令由操作码和操作数组成:
操作码地址码
操作码指明本指令完成的操作
地址码指明本指令的操作对象
(2)指令的存储    指令按照存储器的地址顺序连续的存放在存储器中.
(3)指令的读取    为了纪录程序的执⾏过程,需要⼀个记录读取指令地址的寄存器,称为指令地址寄存器,或者程序计数器.指令的读取就可以根据程序计数器所指出的指令地址来决定读取的指令,由于指令通常按照地址增加的顺序存放,故此,每次读取⼀条指令之后,程序计数器加⼀就为读取下⼀条指令做好准备.
(4)执⾏指令的过程  在控制器的控制下,完成以下三个阶段任务:
1)取指令阶段      按照程序计数器取出指令,程序计数器加⼀
2)指令译码阶段    分析操作码,决定操作内容,并准备操作数
3)指令执⾏阶段    执⾏操作码所指定内容
(三) 计算机性能指标
1. 吞吐量,响应时间
财务经理工作总结(1) 吞吐量:单位时间内的数据输出数量.
(2) 响应时间:从事件开始到事件结束的时间,也称执⾏时间.
2. CPU时钟周期,主频,CPI,CPU执⾏时间
(1) CPU时钟周期:机器主频的倒数,T C
(2)主频:CPU⼯作主时钟的频率,机器主频Rc
(3)CPI:执⾏⼀条指令所需要的平均时钟周期
(4)CPU执⾏时间:
T CPU=In×CPI×T C
In执⾏程序中指令的总数
CPI执⾏每条指令所需的平均时钟周期数
T C时钟周期时间的长度
3. MIPS,MFLOPS
(1)MIPS:(Million Instructions Per Second)
2)不同数制间的数据转换
(1)⼆,⼋,⼗六进制数转换成⼗进制数
利⽤上⾯讲到的公式: (N)2=∑Di·2i ,(N)8=∑Di·8i, (N)16=∑Di·16i,进⾏计算.
(2)⼗进制数转换成⼆进制数
通常要对⼀个数的整数部分和⼩数部分分别进⾏处理,各⾃得出结果后再合并.
u 对整数部分,⼀般采⽤除2取余数法,其规则如下:
将⼗进制数除以2,所得余数(0或1)即为对应⼆进制数最低位的值.然后对上次所得商除以2,所得余数即为⼆进制数次低位的值,如此进⾏下去,直到商等于0为⽌,最后得的余数是所求⼆进制数最⾼位的值.
u 对⼩数部分,⼀般⽤乘2取整数法,其规则如下:
将⼗进制数乘以2,所得乘积的整数部分即为对应⼆进制⼩数最⾼位的值,然后对所余数的⼩数部分部分乘以2,所得乘积的整数部分为次⾼位的值,如此进⾏下去,直到乘积的⼩数部分为0,或结果已满⾜所需精度要求为⽌.
(3)⼆进制数,⼋进制数和⼗六进制数之间的转换
⼋进制数和⼗六进制数是从⼆进制数演变⽽来的:
由3位⼆进制数组成1位⼋进制数;
由4位⼆进制数组成1位⼗六进制数.
对⼀个兼有整数和⼩数部分的数以⼩数点为界,⼩数点前后的数分别分组进⾏处理,不⾜的位数⽤0补⾜.
对整数部分将0补在数的左侧,对⼩数部分将0补在数的右侧.这样数值不会发⽣差错.
2. 真值和机器数
真值:数据的数值通常以正(+)负(-)号后跟绝对值来表⽰,称之为“真值”.
机器数:在计算机中正负号也需要数字化,⼀般⽤0表⽰正号,1表⽰负号.把符号数字化的数成为机器数.
3. BCD码(Binary Coded Decimal以⼆进制编码的⼗进制码)
在计算机中采⽤4位⼆进制码对每个⼗进制数位进⾏编码.4位⼆进制码有16种不同的组合,从中选出10种来表⽰⼗进制数位的0~9,⽤0000,0001,…,1001分别表⽰0,1,…,9,每个数位内部满⾜⼆进制规则,⽽数位之间满⾜⼗进制规则,故称这种编码为“以⼆进制编码的⼗进制(binary coded decima1,简称BCD)码”.
在计算机内部实现BCD码算术运算,要对运算结果进⾏修正,对加法运算的修正规则是:
如果两个⼀位BCD码相加之和⼩于或等于(1001)2,即(9)10,不需要修正;
如相加之和⼤于或等于(1010)2,或者产⽣进位,要进⾏加6修正,如果有进位,要向⾼位进位.
4. 字符与字符串
在计算机中要对字符进⾏识别和处理,必须通过编码的⽅法,按照⼀定的规则将字符⽤⼀组⼆进制数编码表⽰.字符的编码⽅式有多种,常见的编码有ASCII码,EBCDIC码等.
1)ASCII码(American StandardCode for Information Interchange 美国信息交换标准码)
ASCII码⽤7位⼆进制表⽰⼀个字符,总共128个字符元素,包括10个⼗进制数字(0-9),52个英⽂字母(A-Z和a-z),34专⽤符号和32控制符号.
2)EBCDIC码为Extended Binary CodedDecimal Interchange Code的简称,它采⽤8位来表⽰⼀个字符.
3)字符串的存放
向量存储法:字符串存储时,字符串中的所有元素在物理上是邻接的.
串表存储法:字符串的每个字符代码后⾯设置⼀个链接字,⽤于指出下⼀个字符的存储单元的地址.王茜华的个人资料
5. 校验码CheckDigit
数据校验码是⼀种常⽤的带有发现某些错误或⾃动改错能⼒的数据编码⽅法.其实现原理,是加进⼀些冗余码,使合法数据编码出现某些错误时,就成为⾮法编码.
这样,可以通过检测编码的合法性来达到发现错误的⽬的.合理地安排⾮法编码数量和编码规则,可以提⾼发现错误的能⼒,或达到⾃动改正错误的⽬的.
various
码距:码距根据任意两个合法码之间⾄少有⼏个⼆进制位不相同⽽确定的,仅有⼀位不同,称其码距为1.
1)奇偶校验码(Parity Bit)WIKI
(开销最⼩,能发现数据代码中⼀位出错情况的编码,常⽤于存储器读写检查或ASCII字符或其它类型的信息传输的检查)P216
它的实现原理,是使码距由1增加到2.若编码中有1位⼆进制数出错了,即由1变成0,或者由0变成1.这样出错的编码就成为⾮法编码,就可以知道出现了错误.在原有的编码之上再增加⼀位校验位,原编码n位,形成新的编码为n+1 位.增加的⽅法有2种:
奇校验:增加位的0或1要保证整个编码中1的个数为奇数个.
偶校验:增加位的0或1要保证整个编码中1的个数为偶数个.
2)海明校验码(Hamming Code)P100
实现原理,在数据中加⼊⼏个校验位,并把数据的每⼀个⼆进制位分配在⼏个奇偶校验组中.当某⼀位出错就会引起有关的⼏个校验组的值发⽣变化,这不但可以发现出错,还能指出是哪⼀位出错,为⾃动纠错提供了依据.
假设校验位的个数为r,则它能表⽰2r个信息,⽤其中的⼀个信息指出“没有错误”,其余2r-1个信息指出错误发⽣在哪⼀位.然⽽错误也可能发⽣在校验位,因此只有
k=2r-1-r个信息能⽤于纠正被传送数据的位数,也就是说要满⾜关系:
2r k+r+1
3)CRC校验码(Cyclic Redundancy Check 循环冗余校验)P144
CRC校验码⼀般是指k位信息之后拼接r位校验码.关键问题是如何从k位信息⽅便地得到r位校验码,以如何从位k+r信息码判断是否出错.
将带编码的k位有效信息位组表达为多项式:
式Ci中为0或1.
若将信息位左移r位,则可表⽰为多项式M(x).xr.这样就可以空出r位,以便拼接r位校验位.
CRC码是⽤多项式M(x).xr除以⽣成多项式G(x)所得的余数作为校验码的.为了得到r位余数,G(x)必须是r+1位.
设所得的余数表达式为R(x),商为Q(x).将余数拼接在信息位组左移r位空出的r位上,就构成了CRC码,这个码的可⽤多项式表达为:
M(x)·xr+R(x)=[Q(x)·G(x)+R(x)]+R(x)
=[Q(x)·G(x)]+[R(x)+R(x)]
=Q(x)·G(x)
因此,所得CRC码可被G(x)表⽰的数码除尽.
王一鸣个人资料将收到的CRC码⽤约定的⽣成多项式G(x)去除,如果⽆错,余数应为0,有某⼀位出错,余数不为0.
(⼆) 定点数的表⽰和运算
1. 定点数的表⽰
1)⽆符号数的表⽰
十岁生日答谢词⽆符号数就是指正整数,机器字长的全部位数均⽤来表⽰数值的⼤⼩,相当于数的绝对值.
对于字长为n+1位的⽆符号数的表⽰范围为: 0 -1
2)带符号数的表⽰ (真值范围-n-1 n)
带符号数是指在计算机中将数的符号数码化.在计算机中,⼀般规定⼆进制的最⾼位为符号位,最⾼位为“0”表⽰该数为正,为“1”表⽰该数为负.这种在机器中使⽤符号位也被数码化的数称为机器数.
根据符号位和数值位的编码⽅法不同,机器数分为原码,补码和反码.
(1)原码表⽰法
机器数的最⾼位为符号位,0表⽰正数,1表⽰负数,数值跟随其后,并以绝对值形式给出.这是与真值最接近的⼀种表⽰形式.
原码的定义:
(2)补码表⽰法
机器数的最⾼位为符号位,0表⽰正数,1表⽰负数,其定义如下:
(3)反码表⽰法