目录

第1章 概论

第3章 信息编码与数据表示

第4章 运算方法与运算器

*第5章 存储体系(重点)

*第6章 指令系统(重点)

*第7章 控制器(重点)

附:杭电信工2017-2018学年计组试卷


第1章 概论

  • 计算机性能指标 P16

机器字长、存储容量、运算速度、可配置的外围设备、性能价格比、可靠性可维护性和可用性

  • 计算机硬件系统 P20

冯诺依曼体系:以运算器为中心

现代计算机:以存储器为中心

  • 计算机系统的层次结构 P24

共五层

第3章 信息编码与数据表示

  • 定点机器数表示 P74

原码的表示方法:正数符号位0,负数符号位1

补码的表示方法:正数 = 原码,负数除符号位 按位取反 末位+1

反码的表示方法:正数 = 原码,负数除符号位 按位取反

移码的表示方法:补码的符号位取反

  • 给定长度,表示范围

  • 浮点机器数的表示 P81

阶码:反映浮点数的范围大小和小数点的实际位置

尾数:反映浮点数的精度

  • *规格化浮点数(重要)

把尾数最高位(非零)为有效值的浮点数称之为规格化浮点数

例:x = 2^(-01) · (-0.1110) ,阶码3位,尾数5位,均用补码表示

e = -01 e原 = 1,01 e补 = 1,11

m = -0.1110 m原 = 1.1110 m补 = 1.0010

表示为11110010

第4章 运算方法与运算器

  • 补码加减运算 P104

[X + Y] 补 = [X] 补 + [Y] 补

[X - Y] 补 = [X] 补 + [-Y] 补

  • 溢出判断

加法时:只在正 + 正、负 + 负的时候溢出

减法时:只在正 - 负、负 - 正的时候溢出

  • 判溢方法 P106

①单符号判溢  ②进位判溢  ③双符号判溢

  • 移位 P109

逻辑左移和算数左移:低位补“0”

逻辑右移:高位补“0”

算数右移:高位补符号位

  • 十进制加法运算 P111

通常用二进制运算器,再用BCD码校正结果

  • 手工乘法 P113

需要具备一个2n位宽的、具有n个输入的并行加法器

  • 原码一位乘法 P114

符号位单独处理,PS = XS异或YS

数值部分按绝对值计算,|P| = |X|·|Y|

累计右移n次

ACC:累加结果和结果的高位 MQ:乘数和结果的低位   

ACC清0,MQ一开始保存乘数 累加的结果更新ACC,然后右移一位到MQ中,原ACC最低为变为MQ最高位,舍弃MQ最低位

  • *补码Booth乘法(重要) P116

符号位不用单独处理,求[A·B] 补

[A] 补和[-A] 补双符号位,[B] 补单符号位存在MQ

ACC先清零,MQ存乘数,其中MQ最低位补0

MQ次低位 - 最低位 = 1,累加[-A] 补

MQ次低位 - 最低位 = -1,累加[A] 补

MQ次低位 - 最低位 = 0,累加0

累加n+1次,算数右移n次,最后一次不移位,结果的高位保存在ACC,结果的低位保存在MQ

*第5章 存储体系(重点)

  • 存储器的层次结构 P161

存储器速度、容量、价格关系

存储层次由上到下呈现出以下特点:价格越来越低,速度越来越慢,容量越来越大


  • 主存储器的性能指标 P163

主要有3个:存储容量、速度、价格;除此之外还有可靠性、访问方式等

速度:一般用存取时间、存储周期、存储器带宽来衡量

  • *存储容量的扩展(重要)

1K×4位的存储芯片
  • 位扩展:横向扩展(M × kN),数据线扩展为8根,两个芯片分别连接高四位和第四位数据线

扩展为1k×8位,片选信号要连在一起,一次可以读或写8位

  • 字扩展:纵向扩展(kM × N),地址线扩展为10根,两个芯片都与A0~A9相连,但对与A10,地址线上要加个非门,当扩展的地址线很多时,最好使用译码器

字扩展为2k×4位,A10地址线要加个非门,CS1和CS2片选信号要分开

  • 字位扩展(k1M × k2N),数据线扩展为8根,地址线扩展为10根

字位扩展为2k×8位
  • 几类存储器

半导体读写存储器RAM可分为两种:SRAM和DRAM

SRAM:静态存储器

DRAM:动态存储器

ROM:只读存储器、非易失性存储器,存系统程序和数据

RAM:随机存储器、易失性存储器,存用户程序和数据

  • *主存储器与CPU的连接(重要)P183~188

步骤

  1. 根据CPU芯片提供的地址线数目,确定CPU访存的地址范围,并写出相应的二进制地址码
  2. 根据地址范围的容量,确定各种类型存储器芯片的数目和扩展方法
  3. 分配CPU地址线
  4. 连接数据线、R/W#、MREQ#等其他信号线

目标:看懂P185例5.3的①②③④,把这道例题的图片(建议把图5.27和5.29印在脑子里)

总结一些注意事项:

  1. 一定要按上面的步骤一步步来!!
  2. 位扩展需要的的芯片个数m = CPU数据长度 / 芯片数据长度;字扩展需要的的芯片个数n = CPU地址长度 / 芯片地址长度 ; 芯片个总数m*n = 要求的容量 / 芯片容量
  3. 芯片扩展时,先完成位扩展,再完成字位扩展 (例如我现在已经依据上述的公式求出了m和n,我用m个芯片完成了位扩展,我还需要n组这样的芯片组来完成字位扩展,总共是m*n个芯片)

如果芯片中又有RAM又有ROM:

  1. 分配CPU地址线的时候,高位的几根用来片选相应的存储芯片(例如哪些地址范围是选择ROM的、哪些地址范围是选择RAM的、哪些是保留的),要按题目要求,不可自己随意分配
  2. 如果RAM和ROM需要的地址长度不同,如ROM需要13条,RAM需要12条,那么在图上的表示形式是:前12条共同分配,第13条单独画先正常地去连接ROM在连接RAM时要加一个非门
  3. 读写信号只与RAM相连
  4. 最好把ROM芯片单向箭头指向地址线、RAM芯片双向箭头指向地址线
  • Cache的基本原理 P195

CPU、Cache、主存的地址和数据传输

Cache的工作速度快,容量较主存也较小,价格较高

CPU与Cache或主存之间的数据交换以为单位,而Cahce与主存之间的数据交换以为单位

一个块由若干字组成,是定长的,Cache的块(或行)和主存的块等长

  • Cache的命中率 P197

h表示命中率,h = Nc、Nm(Nc表示命中Cache的次数、Nm表示命中主存的次数)

ta表示平均访问时间,tc表示命中时Cache的访问时间、tm表示Cache不命中时主存的访问时间,

ta = h·tc + (1-h)·tm     效率 = tc/ta

r = tm / tc

命中率h越接近1越好,r值5~10为宜,不宜太大

命中率h与程序的行为、Cache的容量、组织方式、块的大小有关

  • 主存和Cache的分块

Cache的块常被称作

Cache其实就是主存的副本,因此它们的块等长,分配块的方式也相同

如果主存或Cache容量为2^nKB,且按字节寻址,则需要n位长的地址

如果对主存或Cache分配2^m个块,我们使用一个n位长的地址(n > m),前m位表示块地址,后n-m位表示块内地址

Cache和主存的块地址长度肯定不一样,但块内地址长度肯定一样

  • 主存与Cache需要地址映射的原因 P197

为了把主存块放到Cache中,必须应用某种办法把主存地址定位到Cahche中

因此有3种地址映射:直接映射、全相联映射、组相联映射

其中全相联映射块冲突最小

  • 直接映射 P198

[一个主存块只能映射到与之对应的一个Cache块]

新的Cache块如下,结果使Cache地址和被映射的主存地址一模一样,如下图的主存块地址000 => Cache标记位0 + Cache块地址00

以下图为例
标记位 长度1 块地址 长度2 块内地址 长度3

直接映射

举例:如果主存第6块要直接映射,这里的Cache是4个块,那就是映射到6%4=2,映射在第2个块

工作过程:

  1. CPU给出一个n位的主存地址
  2. Cache将地址中Cache块地址(其实不是,但现在主存地址和Cache地址一样了)取出
  3. 访问Cache块地址,取出标记字
  4. 比较两标记字,相同则命中,不同则不命中

优点:硬件简单,成本低,不涉及替换算法、只要比较标记字因而速度快

缺点:机制不灵活、Cache命中率低、利用率低

  • 全相联映射 P199

[一个主存块都能映射到所有Cache块]

新的Cache块如下,结果使Cache块的标记位和被映射的主存块的块地址一模一样,如下图的主存块地址001 => Cache标记位001

以下图为例
标记位 长度3 块内地址 长度3

全相联映射

优点:机制灵活、命中率高

缺点:硬件开销大(检验命中和不命中算法的硬件开销),因此适用于小容量Cache

  • *组相联映射(重要) P200

前两种算法的一个集中体现 [一个主存块都能映射到部分Cache块] ,如下图的主存块地址0011 => Cache标记位高位00、组地址号11、标记位低位0或1(图中只有0,那就放在0)的块

以下图为例
标记位 长度2 + 1 = 3 组地址 长度2(2^2个组) 块内地址 长度3

PS:标记位长度还有一种计算方法:主存地址长度 - (组地址+块内地址长度),这样就不用计算r、t,但这就要求后面两个字段不能算错了

组相联映射

如果每组只有一个块,那么组相联映射其实就是直接映射

如果主存地址长度 - Cache地址长度 = t、Cache的一个组要分2^r块,标记位长度t+r

组地址号长度 :2^n个组,n位

  • 替换算法 P200

直接映射不需要考虑替换算法,直接替换

全相联和组相联需要考虑替换算法

  1. RAND随机替换:有算法抖动
  2. FIFO先进先出:淘汰最先进入的,命中不改变最先进入的状态
  3. LRU最近最少使用:设计一个计数器,Cache每命中一次,命中块的计数器清零,其他块的计数器+1

*第6章 指令系统(重点)

  • 指令格式 P232
操作码 OP 地址码 A
  • 指令格式  P232
四地址指令
OP A1 A2 A3 A4
  1. (A1)OP(A2) -> A3
  2. A4给出下一条指令地址

特点:操作数不会被破坏

缺点:指令太长,实际应用中几乎不采用这种指令格式


三地址指令
OP A1 A2 A3
  1. (A1)OP(A2) -> A3
  2. (PC)+1 -> PC(一般除了if等指令,下一条指令会顺序存储在PC寄存器中)

特点:操作数不会被破坏

缺点:指令依然太长,执行一次指令要四次访存,取指令1次,取操作数2次,存结果1次


二地址指令
OP A1 A2
  1. (A1)OP(A2) -> A1
  2. (PC)+1 -> PC

特点:执行完指令之后,计算结果覆盖掉了一个操作数

缺点:执行一次指令仍要四次访存,取指令1次,取操作数2次,存结果1次


一地址指令
OP A1
  1. (ACC)OP(A1) -> A1:一般用于累加,取累加寄存器中的内容,与A1相加,结果存入A1
  2. (PC)+1 -> PC

优点:执行一次指只需访存两次,取指令一次,取操作数一次(被操作数和运算结果都放在累加寄存器ACC中,所以对于被操作数的读取和存入都不需要访存)


零地址指令

OP

特点:主要用在堆栈计算机中,参加运算的操作数从栈顶弹出,运算后结果压入堆栈中

  • 寻址方式

分为指令寻址、数据寻址

  • 指令寻址 P236
  1. 顺序寻址:PC + 1
  2. 跳跃寻址:例如JMP N
  • 一些简单的数据寻址 P236
OP 寻址特征MOD 形式地址A

立即寻址(简单):A是一个立即数(操作数),所以不用访问存储器,可以直接使用

直接寻址(简单):A存放操作数的真实地址,访问一次主存就可以得到操作数

隐含寻址(不涉及A):数据存在专用寄存器,所以不需要给出地址,例如取(ACC)

  • 间接寻址 P237

A中存放操作数的主存地址,间接地址可以有n个,访存次数由间接地址个数决定,所以缺点是速度较慢,上图中需要访问2次主存

间接寻址
  • 寄存器寻址和*寄存器间接寻址(重要) P238

寄存器寻址(简单、快速):A中存放Ri(通用寄存器编号),Ri中保存了操作数,因为不用访问主存,所以速度块

当Ri中存放的不是操作数,而是操作数在主存中的地址,就是寄存器间接寻址~ 如下图

*寄存器间接寻址(最常用):Ri中保存了操作数在主存中的地址,访问一次主存就可以得到操作数

寄存器间接寻址
  • *基址寻址(重要)与变址寻址 P239

基址寻址

*基址寻址:A存放一个立即数(偏移量),基地址可以用专用寄存器(基址寄存器BR)也可以用通用寄存器,这里以通用寄存器为例,Ri存放通用寄存器地址,基地址+偏移量就得到了操作数在主存的地址,访问一次主存就可以得到操作数,具体步骤如下

  1. 访问Ri,取出基地址
  2. 主存地址 = 基地址(Ri) + 偏移量A
  3. 访问主存

特点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数)


变址寻址:A存放基地址,偏移量可以用专用寄存器(变址寄存器IX)也可以用通用寄存器,方式和基址寻址方式类似

特点:适合循环、数组问题

  • 相对寻址(不太会考) P240

A存放一个立即数,相对寻址多出现于跳转指令,跳转至(PC) + A 指令

相对寻址
  • CISC(复杂指令)和RISC(精简指令)的特点 P245

CISC、RISC区别

*第7章 控制器(重点)

  • 基本的计算机组成和功能 P264

基本组成主要包括3个部分:中央处理器CPU、存储器、I/O系统,他们之间通过总线连接

CPU的4个功能:指令控制、操作控制、时间控制、数据加工

  • *MIPS单周期CPU的数据通路和指令的执行过程(重要) P280

实现R、I、J型指令的CPU数据通路

MIPS的32位地址分配 实验书P176

R型指令
31~26(6位) 25~21(5位) 20~16(5位) 15~11(5位) 10~6(5位) 5~0(6位)
OP(全0) rs rt rd shamt func
示例:add rd,rs,rt 功能:(rs) + (rt) -> rd

I型指令
31~26(6位) 25~21(5位) 20~16(5位) 15~0(16位)
OP rs rt imm
示例:addi rt,rs,100 功能:(rs) + 100的符号位扩展 -> rt
示例:lw rt,100(rs)   功能:memory[(rs) + 100的符号位扩展] -> rt

两指令的数据通路

这里以I型指令为例,橙色数据通路为addi指令的完整数据通路,lw为橙色(除ALU输出后的一段)+ 黄色

步骤:

  1. CLK上升沿:取指令,根据PC值,从指令存储器中取地址为PC的指令Inst_ Code, PC_ NEW=PC+4
  2. CLK高电平:由译码和控制单元产生各个控制信号(如下表,w_ r_ s=01,确定rt为目的寄存器,imm_ s=1, 立即数符合扩展成32位,rt_ imm_ s,符合扩展后的数据送入ALU的B端,rs送入ALU的A端,ALU_ OP=10,ALU完成加法运算
  3. CLK下降沿:Write_ Reg=1 ,Mem_ Write=0, w_ r_ s=01,wr_ data_ s=00,ALU 运算结果送rt寄存器,PC_ s=00, 更新PC为PC_ NEW

附:杭电信工2017-2018学年计组试卷

A卷


B卷

计算机组成原理期末复习整理(《计算机组成原理与系统结构》包健 著)相关推荐

  1. 计算机操作系统期末复习,《计算机操作系统》期末复习课稿.docx

    文档介绍: <计算机操作系统>复****要点第一章操作系统概述 1 .操作系统的定义及特征答: OS 定义: 操作系统是控制和管理计算机硬件和软件资源.合理地组织和管理计算机的工作流程以方 ...

  2. 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料

    长春工业大学人文信息学院 计算机星系工程系 计算机组成原理 期末复习资料 计算机组成原理 一.缩写词解释 CPU:中央处理器 ALU:算术逻辑单元 I/O:输入输出接口 RAM:随机存储器 SRAM: ...

  3. 计算机操作系统期末复习大纲

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一.绪论 1.操作系统的定义和作用  1.1 2.操作系统的特征 1.3 3.操作系统的功能 1.5 操作系统的分类(对应1.2 ...

  4. 计算机导论期末考试知识点,计算机导论期末复习(知识点).doc

    计算机导论期末复习(知识点) 计算机导论期末复习(知识点) 单选题30%(每题1分,总30分) 判断题20%(每题1分,总20分) 问答题30%(7题左右,总30分) 综合回答题20%(2题,总20分 ...

  5. 计算机组成原理考试知识点总结,最新2018计算机组成原理期末复习考试知识点复习考点归纳总结总结...

    电大计算机组成原理期末复习考试考点 归纳总结 科学研究和工程技术计算是计算机最早的领域. 信息处理是计算机应用的最广泛的领域. 计算机系统分为硬件和软件两大部分.硬件是实体部件,是看得见摸得着的.软件 ...

  6. 计算机组成原理 北理,北京理工大学计算机组成原理期末复习.pdf

    计算机组成原理 期末复习 北京理工大学管理与经济学院 关磊 博士 提纲 内容回顾 练习题 2014年6月 北京理工大学管理与经济学院关磊博士 内容回顾 第1章引言 第2章数据表示 方法与数字逻辑 第3 ...

  7. 某微型计算机指令格式如图,计算机组成原理期末复习试题2套不含答案

    计算机组成原理期末复习试题2套不含答案 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 附录C:<计算机组成原理>期末试卷样 ...

  8. 期末复习【计算机组成原理】

    期末复习[计算机组成原理] 前言 推荐 期末复习[计算机组成原理] 考点 复习 第1章 计算机系统概论 第2章 运算方法和运算器 第3章 存储系统 第4章 指令系统 第5章 中央处理器 第6章 总线系 ...

  9. 计算机组成原理期末复习第三章-3(唐朔飞)

    计算机组成原理期末复习第三章-3(唐朔飞) ✨欢迎关注

最新文章

  1. 变量值为NAN的什么意思
  2. 开发中内存溢出问题及解决
  3. 引用类型传递参数的特殊情况(string)
  4. 从阿里中台战略看企业IT架构转型之道(下)
  5. 训练caffe:registry.count(type) == 0 (1 vs. 0) Solver type Nesterov already registered
  6. 如何用VB.NET控制Excel單元格裡的內容?
  7. python之星河战争游戏
  8. java 最大流最小割_最大流, 最小割问题及算法实现
  9. 优雅的编写多线程——原子量
  10. C++语言特性的性能分析
  11. argis加载tpk离线包
  12. 蚌埠学院计算机操作系统题库,蚌埠学院电子教务登录
  13. WIFI芯片调试APP Wif网络精灵
  14. Golang实现IP地址匹配
  15. 某小说App返回数据 解密分析
  16. 【Win10】电脑麦克风录音:设备调测
  17. Node抓取有道精品课视频
  18. 提笔忘字,亟须重视的电脑病
  19. centos7上搭建git服务器
  20. js操作cookie

热门文章

  1. 浅谈密码学的历史发展过程
  2. 电视剧里最肉麻恶心的俗套对白
  3. “27”岁二次元爷爷走红,二次元与传统雕刻的完美融合。
  4. 程序员下班后不关电脑的背后原因竟然是...
  5. 网站被黑挂黑链跳转处理 网站被攻击解决方法
  6. 连续签到积分兑换试用流量主小程序开发
  7. 制作windows10系统盘
  8. 申报书写作之如何区分研究内容和研究方法
  9. 用MATLAB来做智能小车的建模与仿真
  10. 机器人咔嚓的音效_监听咔嚓声检测机器人装配线的故障发生