《计算机组成原理》期末习题讲解和重点复习内容
文章目录
- 计算机组成原理重点复习内容
- 一、I/O部分
- 1.中断系统流程图与结构图
- 2.DMA系统的流程图与结构图
- 二、CPU的数据通路
- 1.基础知识部分
- 2.大题部分
- 三、Cache的映射问题
- 四、磁盘相关的计算和概念
- 五、浮点数计算问题
- 六、芯片字位扩展问题
计算机组成原理重点复习内容
一、I/O部分
1.中断系统流程图与结构图
细节:
- 能够画出上述流程图,脑子里需要有整个中断流程
- 中断周期是硬件执行,中断服务子程序是软件执行
- 中断周期是在执行周期之后,下一条取址周期之前
- 保存现场是指将PC、寄存器的内容、状态标志位保存到堆栈中
- 中断向量是中断服务程序入口的地址,而中断向量地址是中断服务程序入口的地址的地址
这里还会设计到一个概念:中断向量
当CPU响应中断时,由硬件直接产生一个固定的地址(即向量地址),由向量地址指出中断服务程序入口,这种方法称为向量中断。
CPU中:
IM(中断屏蔽触发器):是CPU是否受理中断的标志。IM为“1”,CPU不理外界中断;IM为“0”,则可以受理。
IR(中断请求触发器):暂存由设备发出的中断请求信号。当IR为“1”,说明某设备发出了中断请求。
接口中:
EI(允许中断触发器):可以通过程序指令来置位。EI为“1”,某设备可以向CPU发出中断请求,EI为“1”,该中断源的中断请求是被禁止的。也就是通过软件来控制某设备是否能发出中断请求。
RD(准备就绪触发器):一旦设备做好一次数据的接受或发送,便发出一个设备动作完毕信号,使RD置”1“。
2.DMA系统的流程图与结构图
DMA基本思想(原理):通过硬件控制实现数据在主存和I/O之间的传送,在传送过程中无需CPU的干预。数据传输是在DMA控制器的控制下进行的。
内存地址寄存器:用于存放内存中要交换数据的地址
字计数器:用于记录传送数据快的长度。传送完毕后会引起中断请求
数据缓冲寄存器:用于暂存每次传送的数据。整个DMA传送过程是传送了一个数据块,但实际上是每次从设备传送一个字,把字累积到数据块之后再传送给内存。
DMA请求标志:每当设备准备好一个数字后给出一个控制信号,使“DMA请求”标志置“1”。
控制/状态逻辑:用于修改内存地址计数器和字计数器,指定传送类型,并对“DMA请求”信号和CPU响应信号进行协调和同步
中断机构:报告一组数据传送结束
要求:
- 能够闭着眼画出上述流程图,脑子里得有上述过程而不是死记硬背
- 知道DMA的预处理、正式传送和后处理都干了啥
预处理:
由CPU执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备号并启动设备,向内存地址计数器中送入起始地址,向字计数器中送入交换的数据字个数。在这些工作完成后,CPU继续执行原来的主程序。
正式处理:
当外设准备好发送数据(输入)或接受数据(输出)时,它发出DMA请求,由DMA控制器向 CPU发出总线使用权的请求(HOLD)。DMA的数据传送是以数据块为基本单位进行的,因此,每次DMA控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外围设备的数据(一次一个字,此时并不中断CPU)传向内存;当进行输出操作时,内存的数据传向外围设备。
后处理:
一旦DMA的中断请求得到响应,CPU停止主程序的执行,转去执行中断服务程序做一些DMA 的结束处理工作。这些工作包括校验送入内存的数据是否正确;决定继续用DMA方式传送下去,还是结束传送;测试在传送过程中是否发生了错误等等
二、CPU的数据通路
1.基础知识部分
1.CPU的四个功能:①指令控制②操作控制③时间控制④数据加工
2.CPU分为运算器和控制器。
控制器里有:
- PC(程序计数器):存放下一条指令的地址
- IR(指令寄存器):存放当前执行的指令,包含了操作码和操作数,进行指令译码
- MAR(数据地址寄存器):存放CPU当前要访问数据的地址
- MDR(数据缓冲寄存器):存放ALU结果,从内存读出的数据或来自设备的数据
运算器里有:
- PSW(状态字寄存器):保存由算术指令和逻辑指令运算或测试结果的状态
- Ri(通用寄存器):存放操作数、地址等
- ALU
3.数据通路:寄存器间传送信息的通路称为数据通路
4.操作控制器的功能:根据指令操作码和时序信号,产生各种操作控制信号,以便正确地选择数据通路,把有关数据传送到一个寄存器,从而完成取指令和执行指令地控制。
- 时序逻辑型:硬布线控制器
- 存储逻辑型:微程序控制器
5.微程序控制器的流程图和结构图
控制存储器:存放实现全部指令系统的微程序,它是一种只读型存储器。要求速度快,读出周期短
微地址寄存器:存放读出微指令的直接地址,决定要读取的下一条微指令的地址
地址转移逻辑:承担自动完成修改微地址的任务,接受P字段,状态标识和时钟信号
微命令寄存器:保存读出微指令的操作控制字段和判别测试字段的信息
2.大题部分
由于我看老师说这个必考,所以我给大家复习一下这部分。
这部分考试形式是这样:
考试的形式是让你写出MOV,ADD,LDA,STA指令的执行过程。
做题前我们需要一些前置知识
- (A)表示取A寄存器的值(通常放在等号左边,传值),A表示这个寄存器(通常放在箭头右边)
- AR(IR)表示取IR指令中的操作地址,AD(IR)表示取IR指令中的操作数
- MAR保存的是地址,M(MAR)表示从内存中取MAR中的内容
- MDR保存的是数据,所以使用MDR的使用不需要加括号
- 有些指令能写在一行,说明这些指令执行的时候不会产生总线冲突
首先无论是什么指令的执行过程,我们脑子里都要有取指,执行这两个过程(有的可能需要间址周期)。而每个指令的取指过程都是一样的:
T 0 : P C → M A R T 1 : M ( M A R ) → M D R , P C + 1 → P C T 2 : M D R → I R \begin{aligned} T_0:&PC \to MAR \\ T_1:&M(MAR) \to MDR ,PC+1 \to PC\\ T_2:&MDR \to IR \end{aligned} T0:T1:T2:PC→MARM(MAR)→MDR,PC+1→PCMDR→IR
这三步基本做题的时候是死的,首先在 T 0 T_0 T0将PC的地址传给MAR,同时PC自增。然后 T 1 T_1 T1从内存中取出MAR地址的内容并传送给MDR,此时MDR存放的是指令。接着 T 2 T_2 T2将MDR的数据传送给IR,取值周期结束。
接下来就要根据指令的功能不同进行不同的流程,但思路都是一样的。我举两个例子给大家说一下:
写出指令ADD # a(#为立即寻址,隐含的操作数在ACC中)在执行阶段的操作序列
T 0 : A D ( I R ) → R 1 T 1 : ( A C C ) + ( R 1 ) → R 2 T 2 : ( R 2 ) → A C C \begin{aligned} T_0:&AD(IR) \to R1 \\ T_1:&(ACC)+(R1) \to R2 \\ T_2:&(R2) \to ACC \end{aligned} T0:T1:T2:AD(IR)→R1(ACC)+(R1)→R2(R2)→ACC
首先我们先从IR中取出操作数(AD操作)传送给R1寄存器(因为R1寄存器是ALU寄存器存放加数的)。之后我们在将隐含在ACC的操作数与R1相加,结果保存在R2中。最后将R2寄存器的结果保存在ACC中,执行周期结束。
写出指令LDA @X(将主存地址X中的内容保存至ACC中)的整个指令过程
取 值 阶 段 T 0 : P C → M A R T 1 : M ( M A R ) → M D R , P C + 1 → P C T 2 : M D R → I R 执 行 阶 段 T 3 : A d ( I R ) → M A R T 4 : M ( M A R ) → M D R T 5 : M D R → A C C \begin{aligned} 取值阶段\\ T_0:&PC \to MAR \\ T_1:&M(MAR) \to MDR ,PC+1 \to PC\\ T_2:&MDR \to IR \\ 执行阶段\\ T_3:&Ad(IR) \to MAR \\ T_4:&M(MAR) \to MDR \\ T_5:&MDR \to ACC \end{aligned} 取值阶段T0:T1:T2:执行阶段T3:T4:T5:PC→MARM(MAR)→MDR,PC+1→PCMDR→IRAd(IR)→MARM(MAR)→MDRMDR→ACC
在执行阶段中,我们需要将指令中的操作数X取出(Ad操作)并传送给MAR。之后从内存中取出MAR的数据传送给MDR。最后MDR的数据传送给ACC即可。
在做题的时候需要注意以下问题
- 使用ALU的时候注意有没有流入ALU的寄存器和ALU流出的寄存器
- 有时候题目中会有R(读)操作和W(写)操作,在对内存进行读写之前需要加上
- 如果是立即寻址,ad(IR)取操作数;如果是寄存器间接寻址,ad(IR)取的是寄存器,还需要将寄存器中的地址通过MAR和MDR。
三、Cache的映射问题
考试会考直接相联和组相联的问题。这里我就分析一个问题
首先我们对直接映射方式进行分析。
有了上面的分析我们就可以进行计算了。
对于主存地址3200,我们首先要计算出这个3200地址所在的主存块号。
主 存 块 号 = 3200 64 = 50 主存块号=\frac{3200}{64}=50 主存块号=643200=50
然后根据cache有8行,我们对8取余就可以得到对应的cache行数了
c a c h e 行 号 = 50 % 8 = 4 cache行号=50 \% 8=4 cache行号=50%8=4
即第4行。
PS:如果是按照字寻址,一个字是32位,那么
主 存 块 号 = 3200 64 / 4 = 3200 16 = 200 主存块号=\frac{3200}{64/4}=\frac{3200}{16}=200 主存块号=64/43200=163200=200
64 / 4 64/4 64/4是因为此时一个地址存放4字节的数据,则有16个连续的地址对应一个主存块
如果采用2路组相联映射,那么等于8行cache给划分成了4组,每组有2行cache。其原理跟直接映射一样,就相当于此时cache有4行而已。
c a c h e 组 号 = 50 % 4 = 2 cache组号=50\%4=2 cache组号=50%4=2
即地址3200被分到了cache的第2组,也就是映射cache的第4、5行
四、磁盘相关的计算和概念
老师说考试会考到磁盘的问题,我这里也就是分析一道例题。知识点相关的可以看ppt或者我csdn上给整理出的知识。《计算机组成原理》复习第七章
(1)从上面图可以看出,实际存储区域的宽度为5.5cm,由此我们可以根据道密度来计算出磁道总数
磁 道 总 数 = 5.5 × 60 × 4 = 1320 磁道总数=5.5×60×4=1320 磁道总数=5.5×60×4=1320
(2)根据最外层的周长乘以位密度可以得出一条磁道上存储信息的数量,因为每条磁道上存储信息的数量相同,再通过记录面从而得到整个磁盘的容量
磁 盘 容 量 = 2 × 3.14 × 15.5 × 600 × 330 × 8 = 9636660 B 磁盘容量=2×3.14×15.5×600×330×8=9636660B 磁盘容量=2×3.14×15.5×600×330×8=9636660B
(3)若长度超过了一个磁道,那么把文件记录在同一个柱面上比较合理。因为这样做就不需要重新寻找磁道了。
(4)参考ppt
(5)读一个磁盘中数据所用的时间=寻道时间+找扇区的时间+数据传输时间
寻道时间题目给出是10.5ms,找扇区的时间为旋转一周所需时间的一半,也就是转速的倒数再除以2为5ms,数据传输时间为传送一个扇区的数据所需要的时间。我们发现1s可以转100转,每转一次会读取12个磁道,那么1s读取1200个磁道,则
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ 平均存取时间=&10.5ms…
五、浮点数计算问题
关于IEEE754标准的浮点数,考察最多的就是32和64位浮点数,其数据格式为:
其中S为符号位,E为阶码(移码表示),M为尾数位。其32位浮点数的数值表示为
真 值 = ( − 1 ) S × 1. M × 2 E − 127 真值=(-1)^S×1.M×2^{E-127} 真值=(−1)S×1.M×2E−127
浮点数的运算问题的步骤如下:
- 先将x,y转为补码
- 对阶,小阶向大阶看齐
- 进行运算
- 规格化,左规(非规格化)和右规(溢出,修改符号位)
- 舍入,一般0舍1入
我们来分析一道例题,求[x+y]的值
首先先对x,y进行取补操作
[ x ] 补 = 00.100101 , 阶 码 为 − 011 [ y ] 补 = 11.100010 , 阶 码 为 − 010 [x]_{补}=00.100101,阶码为-011\\ [y]_补=11.100010,阶码为-010 [x]补=00.100101,阶码为−011[y]补=11.100010,阶码为−010
我们判断x的阶码(-3)小于y的阶码(-2),则x向y看齐,阶码+1同时尾数右移(变小)
[ x ] 补 = 00.010010 ( 1 ) , 阶 码 为 − 010 [ y ] 补 = 11.100010 , 阶 码 为 − 010 [x]_{补}=00.010010(1),阶码为-010\\ [y]_补=11.100010,阶码为-010 [x]补=00.010010(1),阶码为−010[y]补=11.100010,阶码为−010
接着我们进行尾数加法操作,得到结果为
[ x + y ] 补 = 11.110100 ( 1 ) [x+y]_补=11.110100(1) [x+y]补=11.110100(1)
此时尾数是非规格化小数,而负数的规格化形式为11.0XXX,我们需要左规,同时阶码减小。规格化后的结果为:
[ x + y ] 补 = 11.010010 , 阶 码 为 − 100 [x+y]_补=11.010010,阶码为-100 [x+y]补=11.010010,阶码为−100
如果规格化前发生了溢出,即双符号位为01或10,不能判断结果为溢出,现金新规格化操作。若规格化后仍溢出,则证明结果溢出。
则结果真值为
2 − 4 × ( − 0.101110 ) = − 23 512 2^{-4}×(-0.101110)=-\frac{23}{512} 2−4×(−0.101110)=−51223
六、芯片字位扩展问题
这部分大题小题都会考。
芯片通常会有地址线和数据线。地址线取决于芯片的存储容量,数据线取决于芯片的存储字长。假如说一个芯片是4K×8位,说明地址线有12根( 2 12 = 4 K 2^{12}=4K 212=4K),数据线有8根(每根数据线对应一位数据)
我们看一下这道题:
CPU的地址总线为24根,说明内存寻址空间为 2 24 2^{24} 224,每个地址存储的数据字长为32b,也就是4B。而计算芯片的个数,我们可以容易得出
芯 片 个 数 = 2 24 × 32 2 19 × 8 = 128 个 芯片个数=\frac{2^{24}×32}{2^{19}×8}=128个 芯片个数=219×8224×32=128个
大题可能主要是关于芯片与CPU的连线问题。分别有①地址线的连接②数据线的连接③读/写命令线的连接④片选线的连接
字扩展
字扩展这里需要注意:
- 芯片间的地址线可以公用,但数据线不能公用。
- 读写线也是公用的。
位扩展
由于位扩展扩充了存储容量,导致寻址空间变大,所以地址线位数也会增多。但每个芯片所能接受的地址线却没有改变。这就需要多余的地址线当作片选线。
位扩展需要注意的是:
- 数据总线可以公用,低地址的地址线可以公用
- 高地址的地址线(片选线)则充当了控制电路
最后给大家总结一下比较重要的内容:
- 计算机的MIPS、时钟周期、主频的计算
- 已知 [ x ] 补 [x]_补 [x]补求 [ − x ] 补 [-x]_补 [−x]补
- 数值表示的范围
- DRAM、SRAM、ROM之间的区别
- TLB,Page,Cache,内存数据存在性的关系
- 不同寻址方式中操作数A的含义
- 对于多地址指令,如何分配指令长度。他们的特点和区别
- CPU的结构和数据通路!!!
- 微程序控制器结构!!!微程序、微指令、微命令的关系
- 指令流水线的相关计算:加速比、吞吐率、效率
- 总线的分类,三种仲裁方式、三种通信方式与应用
- RAID0-5的特点(有无校验,有无冗余,有无镜像)
- 中断和DMA!!!
由于本人的水平有限,能补充的知识也就这些,剩下的全靠同学们的努力和付出。
大家加油!
B y L a n g Z h i Z h e n By \quad LangZhiZhen ByLangZhiZhen
《计算机组成原理》期末习题讲解和重点复习内容相关推荐
- 中断原理在计算机中的应用,计算机组成原理期末考试简答题重点
6.DMA方式和程序中断方式比较有什么不同? DMA:采用内在和外设直接数据交换的方式,只有当有一段数据传送时才会请求CPU中断,减少了CPU的负担. 程序中断:只适用于简单的少量外设的计算机系统,会 ...
- 简述中断处理的6个步骤_计算机组成原理期末考试简答题重点分解
一.简答题 1.试述浮点数规格化的目的和方法. 答:浮点的规格化是为了使浮点数尾数的最高数值位为有效数位.当尾数用补码表示时,若符号位与小数点后的第一位不相等,则被定义为已规格化的数,否则便是非规格化 ...
- 计算机组成原理 北理,北京理工大学计算机组成原理期末复习.pdf
计算机组成原理 期末复习 北京理工大学管理与经济学院 关磊 博士 提纲 内容回顾 练习题 2014年6月 北京理工大学管理与经济学院关磊博士 内容回顾 第1章引言 第2章数据表示 方法与数字逻辑 第3 ...
- 计算机组成原理考试知识点总结,最新2018计算机组成原理期末复习考试知识点复习考点归纳总结总结...
电大计算机组成原理期末复习考试考点 归纳总结 科学研究和工程技术计算是计算机最早的领域. 信息处理是计算机应用的最广泛的领域. 计算机系统分为硬件和软件两大部分.硬件是实体部件,是看得见摸得着的.软件 ...
- 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料
长春工业大学人文信息学院 计算机星系工程系 计算机组成原理 期末复习资料 计算机组成原理 一.缩写词解释 CPU:中央处理器 ALU:算术逻辑单元 I/O:输入输出接口 RAM:随机存储器 SRAM: ...
- 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案
计算机组成原理期末复习试题2套不含答案 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 附录C:<计算机组成原理>期末试卷样 ...
- 计算机组成原理期末复习第三章-3(唐朔飞)
计算机组成原理期末复习第三章-3(唐朔飞) ✨欢迎关注
- BISTU计算机组成原理期末复习指导
BISTU计算机组成原理期末复习指导 一.学时分配 计算机系统概论(2学时) 运算方法和运算器(12学时) 存贮器(10学时) 指令系统(4学时) 中央处理器(14学时) 输入输出系统(6学时) 二. ...
- 南通大学计算机组成原理期末考试题,南通大学计算机组成原理期末考试范围.docx...
南通大学计算机组成原理期末考试范围 计算机组成原理选择填空题 15分填空题 20 分计算题 50分设计题 15分第一章计算机的主要性能指标冯·诺依曼型计算机的体系结构.组成部分控制器的基本任务计算机系 ...
最新文章
- Python-EEG工具库MNE中文教程(12)-注释连续数据
- OVS对VXLAN报文解封包
- ubuntu 12.04 解压安装jdk
- redis常用命令(一)
- SEO全套精品教程价值300元[159课]
- Oracle开发常用知识
- 05 MapReduce应用案例03
- 3224: Tyvj 1728 普通平衡树
- 5404. 用栈操作构建数组
- 在线代码编辑器 CodeMirror 配置说明 - javascript开发的代码语法高亮显示引擎
- 一键提升多媒体内容质量:漫谈图像超分辨率技术
- 使用ASP.NET Core、JavaScript和Angular防止CSRF攻击
- 5-5图层的链接-新版本不常用
- perl 安装 ZooKeeper模块
- 基于单片机的自动加热水壶控制器代码_应用于实时温度控制的单片机设计
- 开始→运行(cmd)命令大全(绝对经典)
- golang版微信小程序图片上传,服务器保存
- vim---操作命令大全
- 思博伦spirent testcenter 抓包,过滤特定报文
- uma是什么意思_UMA是什么意思?
热门文章
- iOS编程------SQLite / 数据库
- DEP6957: 未能使用“通用身份验证”连接到设备“127.0.0.1”
- 江西师大计算机系周洁,江西师大2005年学习之星申报者汇总表.doc
- MySQL中查看数据库
- 我认得embdedding
- itextsharp 获取文本_利用iTextSharp提取PDF文件中的文本内容
- [生活] 领带的打法
- Markdown使用进阶教程
- php页眉,自定义页眉
- 【echarts应用】---pie饼图篇