目录
计算机组成原理最终复习
Written by Landasika
声明:Ayaka yyds!!
选择25、判断10、名词解释5、简答题5、解答题2
绪论
- 分值:10/14
- 这一章的知识点比较散,一般是选择题,应该会有一个简答题。
名词解释
-
CPU:中央处理器:主要由运算器和控制器组成。控制部件,运算部件,存储部件相互协调,共同完成对指令的执行。
-
ALU :对数据进行算术和逻辑运算处理的部件。
-
数据通路:由操作元件和存储元件通过总线或分散方式连接而成的进行数据存储,处理和传送的路径。
-
控制器:对指令进行译码,产生各种操作控制信号,规定各个部件在何时做什么动作来控制数据的流动。
-
主存:存放指令和数据,并能由中央处理器(CPU )直接随机存取。
-
ISA :指令集体系结构:计算机硬件与系统软件之间的接口。指令系统是核心部分,还包括数据类型,数据格式的定义,寄存器设计,I/O空间编址,数据传输方式,中断结构等。
-
响应时间:作业从开始提交到完成的时间,包括CPU 执行时间,等待I/O的时间,系统运行其他用户程序的时间,以及操作系统运行时间。
-
CPU 执行时间:CPU 真正用于程序执行的时间。包括用户CPU 时间(执行用户程序代码的时间)和系统CPU 时间(为了执行用户代码而需要CPU 运行操作系统的时间)
-
硬件:计算机的实体部分,是组成计算机的所有电子元器件和机械部件的总和
-
MAR:地址寄存器:存放访存地址;MDR:数据寄存器:用于存储存储器中读或写的消息
-
机器字长:指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数
-
指令字长:一个指令字中包含的二进制代码的位数
-
存储字长:一个存储单元存储的二进制代码的长度
计算机的发展
- 世界上第一台电子数字计算机:ENIAC
- 计算机四代变化:电子管、晶体管、中小规模集成电路、超大规模集成电路时代
- 按指令流和数据流分类:
*计算机系统层次结构
计算机基本组成
-
计算机必须具备的两个功能:存储程序,自动化执行程序
计算机软件和硬件
- 计算机硬件(计算机的核心、物质基础)
- 计算机的实体部分,是组成计算机的所有电子元器件和机械部件的总和
- 现代计算机:运算器、控制器、存储器、输入设备、输出设备
- 计算机软件:系统软件、应用软件
- *计算机软件和硬件的关系(应该会有个简答题)
- 硬件是躯体,是物质基础
- 软件是灵魂,是硬件功能的完善和扩充
- 硬件和软件组合构造了完善使用的计算机系统
- 二者相互渗透、相互依存、相互配合、相互促进、缺一不可
计算机的层次结构
*冯·诺依曼计算机的基本特点
- 冯诺依曼的核心思想在于将计算和存储分离
- 冯诺依曼计算机工作方式的基本特点是:采用存储程序原理
-
冯诺依曼计算机的中心是:运算器
计算机能自动工作的关键是:存储程序控制原理--------->一台计算机必须具备内存
———————————————————————————————————
计算机硬件组成部分及其功能
计算机五大部件:
运算器:完成算术和逻辑运算,并将运算的结果暂存在运算器内
(怎么“算” ? )
存储器:存放数据和程序,是计算机各种信息的存储和交流中心
(计算机怎么“存”?)
控制器:控制、指挥程序和数据的输入、运行以及处理运算结果,实现计算机本身运行的自动化,即实现程序的自动运行
(指令结构与指令执行过程?)
输入、输出设备:将人们熟悉的信息形式转换为机器能识别的信息形式
(即输入原始数据和处理这些数据的程序) 输入输出设备系统?
计算机主要性能指标
计算机的主要性能指标
- 机器字长:指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数
- 数据通路带宽:数据总线一次能并行传送信息的位数
- 主存容量:能存储信息的最大容量
- 运算速度
- CPI:执行一条指令的周期数
- *IPS:一秒执行*条指令
- *FLOPS:浮点数操作次数
例题:
一段程序在机器A(时钟频率4 GHz)上执行需要10 s,我们想让它在时钟频率更高的机器B上6 s完成执行,时钟频率的提升会对CPU设计带来额外的开销,我们假定在机器B上执行上述程序需要的时钟周期数是机器A所需的1.2倍,那么请问机器B的时钟频率是多少?
首先通过4GHz和10s可以计算出机器A完成这段程序一共需要41010^9个时钟周期,从而计算出机器B完成这段程序所需时钟周期数为41010^91.2,再由此计算出时钟频率为41010^91.2/6 =8GHz
MIPS:每秒钟执行的指令数(单位是百万)
MIPS计算方法:
MIPS=总指令数 / (执行时间*10^6)= 时钟周期数 / (CPI *10^6)
MFLOPS:每秒钟执行的浮点操作数(就评价超级计算机总用的那个指标)
例题:
首先可以通过指令条数和CPI算出总时钟周期数,再用总时钟周期数除以时钟频率就可以得到运行时间
A的运行时间:10^71.0/(410^9)=1/400 s
B的运行时间:810^61.1/(4*10^9)=0.88/400 s
所以B快
然后用总指令数除以运行时间就是MIPS
A的MIPS:10^7/(1/400)=410^9
B的MIPS: 810^6/(0.88/400)=4*10^9/1.1
所以A的MIPS更高
三、运算方式和运算器
-
分值11/17
数据校验码
copy自Ayaka师傅
- 码距:一种码制中任意两个合法码字间距离的最小值(最少有几个数不同)
- 码字:由若干代码组成的一个字
-
距离:两个码字之间对应位代码不同的个数
来看例子:
如8421码,两个合法码字之间的最小距离为1,比如0001和0011,这两个码字只有一位不同,所以距离为1
码距越大,查错、纠错能力越强 ,码距越大,数据冗余越大
奇偶校验码
在每组数据信息上附加一个校验位
- 奇校验:加上校验码位后数据中’1’的个数应为奇数个
-
偶校验:加上校验码位后数据中’1’的个数应为偶数个
码距为2,可检出奇数个数位出错的情况
海明校验码(方法和原理可以看高分笔记)
在数据中加入几个校验位,并把数据的每一个二进制位信息分配在几个奇偶校验组中码距为3(扩展海明码为4),不但可以发现错误,还可以指出是哪一位错了。其实就是把每一个2的幂次方位上都放校验位,其余位上放数据。
如果一个数据在第n位,则验证它的校验位为将n写成二进制后,为1的位置对应的校验位
-
举个例子:
并且对于D3来说,它在第七位,所以验证它的就是第4+2+1位,即P1、P2、P3偶校验时各校验位Pi的值为它参与校验的数据位的异或,奇校验时将上述值取反我们来看一个表加深一下理解:
注意:校验位参与校验的除数据位还有校验位自身
如果采用偶校验且仅有一位出错,出错位置由各个校验和依序排列后直接指明 -
例:若三个校验和 S3S2S1 依序排列后等于(101)2 =(5)10 ,海明码的第五位(D1)发生了错误,将其取反,即纠正了错误
-
**扩展海明码:**增加了全局校验位,放在最前端,全局校验和等于海明码所有位异或的结果
循环冗余校验码(CRC)
如何检错
假设被传送的k位二进制信息位用M(x)表示,系统选定的生成多项式用G(X)表示
- 第一步:将M(x)左移G(X)的最高次幂(即需要添加的校验位的位数r),写作M(x) • 2r
- 第二步:M(x) • 2r除以(使用模2除)生成多项式G(x),所得商用Q(x)表示,余数用R(x)表示
-
第三步:将R(x)接在M(X)后面发出去,接收方用G(X)进行验证,余数为零则不出错
举个例子:
通俗易懂的说就是,
有个G(X)是发送方和接收方都知道的。发送方如果要发1010,而G(X)是1011的话,则将1010左移4-1=3位,变成1010000,然后做模2除法,其实就是不停异或,就拿这题为例:
1010000
1011
对应位异或后,1010000变成了1000 ,我们最后要的余数应该是3位,所以还要继续异或
1000
1011
结果为0011,由于我们只要三位,所以最后R(X)为011,把011接到1010后面,最后实际发送的数据位1010011。
然后接收方如何判断是否出错呢,其实就是对1010011做上面的异或操作,即
1010011
1011
对应位异或后结果为1011
再异或
1011
1011
结果为0,则校验成功,没有哪一位出错。如何纠错
先通过余数知道是哪个位错了,然后给余数不停补0接着模2除,一边循环左移数据,直到把出错的哪个位移动到最高位,然后取反,接着移动,直到循环移回来,纠错结束
校验码小结:
四、七、八、存储系统
- 分值16/15
名词解释
- 存储时间:启动一次存储器到完成该操作所经历的时间分为读取时间和写入时间
- 存储周期:存储器进行一次完整的读写操作所需的全部时间(两次独立访问存储器操作之间所需的最小时间间隔)
- 刷新:(由于单管动态存储单元可能破坏原有信息),因此在读出后要将存储单元恢复到读之前的状态。
- /RAS:行选通脉冲
- /CAS:列选通脉冲
- 存储密度:单位长度或单位面积的磁表面所存储的二进制信息数量
- 磁道:磁头写入磁场在磁层表面上形成的一条磁化轨道
- RLLC:游程长度受限码
四、主存储器
存储器的分类
- 按存取方式:随机存储器、顺序存储器
- 按读/写功能分:只读存储器(ROM)、读/写存储器(如 RAM)
- 按信息的可保存性分:
- 易失性存储器(断电信息丢失,如RAM)
- 非易失性存储器(断电后信息仍能保存,如ROM)
- 按在计算机系统中的作用分:主存储器、辅助存储器、高速缓冲存储器(cache)、控制存储器(IR)
存储器的主要技术指标
- 容量、速度、价格
- 存储容量=存储字数×字长
主存储器的基本组成和基本操作
基本组成
由地址线、译码驱动、存储矩阵、读写电路、控制电路、数据线组成
PPT上的一个可能是简答题
译码方式
- 单译码(适合小容量)和双译码(适合大容量)
-
单译码
地址线:直接给出对应的存储单元
数据线:每一个存储单元对应一根数据线
-
双译码
地址线:首先产生行地址和产生列地址
数据线:分行列两个方向的同时输出状态
SRAM、单管DRAM的结构和工作原理
随机(R)的含义:访问时间和单元的物理位置无关
SRAM
SRAM的工作单元:六个MOS管
三种工作状态:写入、读出、保持
DRAM
通过电容上有无电荷来表示1和0
动态随机存储器的刷新控制
集中刷新
每隔一段时间,对存储器所有的行逐个进行刷新
这样会存在“死时间”,无法访问存储器
分散刷新
对每行刷新的时间分散到各个工作周期里面。
这样工作周期分为:读写操作+刷新
缺点:工作周期变长,延长了存储周期,影响速度
优点:没有死区
异步刷新
两种结合,将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每间隔时间t产生一次刷新请求。
注意
DRAM刷新需注意:
- 刷新对CPU是透明的,即刷新不依赖与外部的访问
- 动态RAM刷新的单位是行,由芯片内部自行生成行地址
- 刷新操作类似于读操作,但是又有所不同。
- 刷新时不需要选片,即整个存储器中的所有芯片同时被刷新
主存储器的扩容
主存和CPU的连接
- 主存通过数据总线(DBUS)、地址总线(ABUS)、控制总线()和CPU连接
- 地址总线的位数决定了可寻址的最大内存空间
- 数据总线的位数与工作频率的乘积正比于数据的传输率
存储器的扩展
* 优先选择位扩展,后进行字扩展(先并行后串行)
交叉编址
低位编址:并行存储
高位编址:扩存方便
必考题
-
SRAM中,容量512×8位,除电源线和接地线,该芯片引出线的最小数目
512:9个地址线;8:8个数据线;再加上一个片选线一个读入一个读出一共20个 -
计算机操作系统存在硬盘上,其内存储器采用RAM和ROM
注意:BIOS的一部分是只读的写在ROM上的 -
单管DRAM之所以要定期刷新,是因为读出是破坏性的还有电易失性
-
对于由单管动态存储单元电路构成的动态随机存取存储器,关键设计是高灵敏的读数放大器
七、存储系统
引入存储系统的原因和理论依据
-
对存储器的要求:容量大、速度快、成本低(只要涉及到存储器的要求、性能指标之类的都是这三点)
-
引入存储系统的原因:由于不同存储器的容量、速度、成本之间的矛盾,所以将运行原理不同、性能差异大的存储介质,分别构建高速缓冲存储器、主存储器、虚拟存储器,形成统一管理、统一调度、一体化的存储系统
-
存储系统包括:存储器、管理存储器的软硬件、相应设备
-
构建存储系统的理论依据:程序访问局部性原理(所有存储器构造的理论依据都答这个)
Cache的工作原理
在 CPU 和主存之间设置 cache,总是把主存中被频繁访问的活跃程序块和数据块复制到 cache 中。由于程序访问的局部性,大多数情况下,CPU 可以直接从 cache 中直接取得指令和数据,而不必访问慢速的主存。
在 CPU 执行程序过程中,需要从主存取指令或写数据时,先检查 cache 中有没有要访问的信息,若有,就直接在 cache 中读写,而不用访问主存储器。若没有,再从主存中把当前访问信息所在的一个一个主存块复制到 cache 中。(也有的是同时检查Cache和主存)
Cache主存一致性问题
若写操作命中
- 写直达法:同时写入Cache和主存
- 写回法:先将更新内容写入Cache,并做标记,只有经过修改的块要被替换的时候才背写入主存
- 写一次法:在第一次写命中时,同时写入主存
写不命中时
-
不按写分配
直接写入主存,被写单元所在的块不调入Cache
-
按写分配
先写入主存,然后将该单元所在的块调入Cache
多层次Cache
例如将指令和数据分在不同的cache中(哈佛结构)
Cache地址映像和替换算法
Cache地址映像
直接映像
相当于一对一的映像
全相联映像
一个理想方案,无法实现
每一个Cache中的块可以对应所有主存的字块
组相联映像
先将主存分节,以节为单位直接相联到cache
例题
虚拟存储器
虚拟存储器不一定是虚拟存储系统
段式虚拟存储器
以一个程序为一个单元存储
页式虚拟存储器
以大小固定的页分配单元
段页式虚拟存储器
两者的结合
先按照逻辑意义分段,再让各段和实主存都机械的分成相同大小
相联存储器
按照内容寻址的存储器
八、辅助存储器
辅存的种类
磁表面存储器
如磁盘,利用磁介质
光存储器
光盘,利用激光束在具有感光特性的表面存储信息
辅存的技术指标
存储密度、存储容量、寻址时间、数据传输率、误码率、价格
磁记录方式
特点
存储密度高,容量大,位价格低
记录介质可重复使用
记录的信息可长久保存不丢失
非破坏性读出
存取速度慢,机械结构复杂,对改造环境要求较高
影响写入读出的因素
偏斜、系统噪音、脉冲拥挤效应
提高记录密度的途径
改善设备性能
垂直磁记录
选择磁记录
五、六 指令系统
- 分值45/28
名词解释
- 指令:是命令计算机直接进行某种基本操作的二进制代码串
- 指令字:代表指令的一组二进制代码信息
- 指令长度:指令字中二进制代码的位数
- 指令系统:一台计算机的所有指令的集合(是进行计算机逻辑设计和编制程序的基本依据,直接说明了这台计算机的性能)
- RISC:精简指令系统计算机
- CISC:复杂指令系统计算机
- 控制器:指挥与控制整台计算机各功能部件协同工作、自动执行计算机程序
- 机器周期:CPU完成一次基本操作(微指令)需要的时间间隔
- 指令周期:取出并执行一条指令所用的时间
- 总线周期:用总线进行一次信息传送所需要的时间
- μOCF:微操作控制字段
- SCF:顺序控制字段(下址)
五、指令系统
指令格式
- 指令包含的信息多
- 便于程序设计,增加并行性,提高指令功能角度
- 会造成指令字过长
- 若指令中所包含的信息少
- 节约空间,减少访存频率。提高执行速度
- 会减弱指令的功能
- 指令中包含的信息
- 操作码OP:长度取决指令系统中的指令条数
- 地址码A: 直接给出操作数,或者指出操作数的地址
寻址方式
指令寻址
- 顺序寻址方式:就是传说中的PC+1
- 跳跃寻址方式:条件转移和无条件转移
操作数寻址
操作码拓展技术
操作码长度决定了指令系统的指令条数
-
编码
- 固定格式操作码:长度固定,有利于设计
- 可变格式操作码:通过扩展码技术实现
数据在内存中的存放方式
指令类型
根据地址码不分所给出的地址个数分类
-
零地址指令
指令不需要操作数或者是默认的
例如:空操作指令,停机指令 -
一地址指令
地址码A既是操作数地址,又是操作结果存储地址
例如:加1,减1,移位,取反指令 -
二地址指令
源操作数地址+目的操作数地址
例如 MOV ax, bx
两个源地址的地址,其中一个操作数地址同时给出目的操作数地址
例如:ADD ax, bx -
三地址指令
两个操作数地址,一个目的操作数地址 -
多地址指令
字符串匹配指令 -
零、一、二地址特点:
指令短占用空间小、速度快、硬件实现简单
一般为小型、微型计算机 -
二、三、多地址特点:功能强,便于编程
一般为大中型计算机
RISC和CISC
六、中央处理单元CPU
CPU的组成和功能
控制器
控制器的组成和功能
- 控制器的组成:
- 控制器的作用:发出一定时序关系的控制信号,控制程序(指令)有序执行,并保证计算机系统正常运行
-
控制器的基本功能:一句当前正在执行的指令和它所处的执行步骤(时刻),以及某些条件信号,形成并提供要用到的控制信号。
主要体现在:对数据流和指令执行的控制过程
时序系统
工作脉冲≤时钟周期≤机器周期
-
节拍(主频周期):主时钟脉冲的时间间隔,一个节拍的电位宽度等于一个时钟周期
-
工作脉冲:完成具体工作的时钟脉冲。每一个工作脉冲可以完成一个动作
-
机器周期:CPU完成一次基本操作(微操作)需要的时间间隔
- 一个机器周期往往分为若干个节拍
-
计算机中一条指令所需机器周期、时序控制信号的时序以及所需的执行时间由硬件决定
控制器控制方式
- 同步控制:所有的微操作信号都和时钟同步,每条指令所需的机器周期和节拍数都固定不变
- 中央控制:完全同一的机器周期(或者节拍)执行不同的微操作
- 局部控制:用不同节拍数的机器周期解决微操作时间不统一问题
- 混合控制:中央控制和局部控制结合
- 异步控制:无统一的时钟周期,每个微操作要多少时间就占用多少时间
- 联合控制:异步和同步相结合,如访问存储器Ready信号
- 人工控制:Reset
控制器组成方式
-
微程序控制
-
硬布线控制
*微程序控制
-
微操作:计算机能执行的最基本的操作
例如:PC+1 -
微指令:由同时发出的控制信号所执行的一组微操作
例如:LIR+PCINC(就是实验里面没按一次QD执行一次微微指令) -
微程序:用于解释完成一条指令功能的微指令序列的集合
例如:ADD R0 ,[R1]
微程序控制的原理
微指令的组成
微指令由微操作控制字段和下址字段组成
-
微指令控制字段是一组信号,表示要执行哪些操作,也就是实验里面最上面亮的那一排灯。
例如:实验中,M=0,S=1001,LDZ,LDC,ABUS,DRW亮起;则表示的是ALU将A、B选择器中的值加起来然后通过总线传到寄存器中。
- 下址字段只想的是下一个微指令的地址
微程序控制流程
-
*微程序控制器简框图
微指令编译
如何缩短微指令的字长?
*微指令编码实质是如何组织微指令中的微操作
直接控制编译法
like this 直接表示
最短字长编译法
假设一共有N种微指令,那么给这N种微指令都取一个名字。
那么
缺点:并行性差,速度慢。并且译码时候线路复杂
字段直接编译法
由于很多微指令里面的微操作是互斥的,不可能同时发生,所以可以将μOCF分成很多个小段。每个小段来表示这几个互斥的操作的情况。
字段简介编译法
常数源字段编译法
将指令变成两个参数,经过ALU计算才能得到相应的操作码
产生后继微地址的方法
下址字段方式(断定方式)
微程序不产生分支的时候,后记微地址由顺序控制字段直接给出(类似于PC+1)
增量方式(计数器方式)
增量与下址字段结合方式
问题:这样只能实现跳转,不能实现多路选择
多路转移方式
- 不产生分支时:后继微地址由顺序控制字段直接给出
-
出现分支的时候:有多个“候选”的微地址
例如实验中JC操作只有但LDC为1的时候才发生转移
例题
微指令格式
水平型
在一条微指令中定义并执行多个并行的微指令
一般采用直接控制法、字段编译法
垂直型
有微操作码字段,由微操作码规定微指令功能
微指令时序控制
微指令执行分为两步:
取微指令+执行微指令
串行控制
一个指令执行完了才执行下一个
微周期=取微指令时间+执行微指令时间
并行控制方式
微周期=max{取微指令时间,执行微指令时间}
- 解决转移的方法:后推法,猜测法,预取多字法
硬布线控制
不会了
流水线工作原理
九、十 I/O输入输出设备
分值:8/26
名词解释
十、I/O输入输出设备
- I/O设备特点:外设速度慢且多样复杂
- I/O操作特点:异步、实时、与设备无关性
主机与外设传输方式
参考:https://blog.csdn.net/karshey/article/details/122160346
程序直接控制
-
完全通过程序来控制主机和外设之间的信息传递
CPU说“我要读”。
检查控制器是否准备好
输入设备准备好后将数据传给控制器并告诉它自己准备好了
控制器收到数据后,把它放到数据寄存器,状态为改为0表示准备好了
CPU知道设备们准备好了,就把数据寄存器中的数据读入CPU,再放到内存 中。
如果还要继续读,就重复第一步。注意,I/O必须通过主存才能把数据传进CPU
程序终端传送
采用输入输出中断控制主机与外设之间信息传递
直接存储器存取(DMA)
在外设和主存中间加一个DMAC,访问时,CPU告诉DMA说要读数据,然后数据传送到DMAC中,此时CPU继续做自己的事情。然后当CPU需要的时候,就直接从DMAC传到主存再读取。
中断系统
- 中断:计算机具有能停止正在执行的程序,转去处理当前出现的急需处理的事件,处理完后又能继续运行原程序的一种功能
- 中断系统:计算机实现中断功能的软、硬件的总称
- 中断响应:CPU从发现中断请求,中止现行程序到调出响应的中断处理程序的过程
- 多重中断:CPU在处理某一中断过程中又发生了新的中断请求,从而种子该服务程序的执行,又转去执行新的中断的重叠处理中断的服务程序。
CPU响应中断的条件
- 有中断被提交到CPU(客观因素)
- CPU允许中断请求(主观因素)(开中断)
中断响应时机和响应过程
- 关中断→保护断点、保护现场→判别中断源、转向中断服务程序
为什么进入响应后要关中断:以便保存完整的现场
什么时候开中断:①在中断返回后 ②保存好现场并转入中断服务程序后、执行中断服务前
多重中断与中断屏蔽
DMA
这个我不太明白,copy自百度百科
DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。DMA的主要特征
DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序。
通常采用以下三种方法与CPU分时使用内存:(1)停止CPU访问内存;(2)周期挪用;(3)DMA与CPU交替访问内存。
总线
按照距离分类:片内总线,系统总线、通信总线
Comments | NOTHING