若十进制数为-60,则其对应的8位补码[X]补为
补码是计算机中最常用的有符号整数表示方法。负数求补码步骤:先求绝对值的二进制,加符号位1得原码,符号位不变其余取反得反码,反码加1得补码。
60的二进制 = 00111100。-60的原码 = 10111100,反码 = 11000011,补码 = 11000011 + 1 = 11000100。
口诀:"原码取反加一"。注意区分原码、反码、补码三个概念。
第2章 数据的表示和运算 -- 定点数的补码表示法
若传送的是字符B,其ASCII码为1000010,采用奇校验方式传送8位编码,末位增加奇校验位后的编码表示是
奇校验:增加校验位使所有位中"1"的总个数为奇数。偶校验:使"1"的总个数为偶数。B的ASCII码 1000010 有2个1(偶数),奇校验需补1使总数为3(奇数)。末位增加即校验位附在最后。
奇校验:数据中1的个数为偶数则补1,为奇数则补0,确保总数为奇数。注意校验位位置。
第2章 数据的表示和运算 -- 数据校验码(奇偶校验)
采用寄存器间接寻址方式的操作数存放在
寄存器间接寻址:寄存器中存放的不是操作数本身,而是操作数在内存中的地址。CPU先读寄存器得到地址,再用地址去内存取操作数。"间接"意味着多走一步。
凡是带"间接"的寻址方式,操作数都在内存中。寄存器直接寻址0次访存,寄存器间接寻址1次访存。
第3章 指令系统 -- 寻址方式(寄存器间接寻址)
若经过ALU处理后的运算结果为负,则反映在条件码寄存器的标志位是
ZF=零标志,OF=溢出标志,SF=符号标志(结果为负时SF=1),CF=进位标志。
Z-零,O-溢出,S-符号,C-进位。"结果为负"对应S(Sign)。
第4章 中央处理器 -- ALU与条件码寄存器
对主存上信息的存取采用
RAM(随机存取,如内存)、SAM(顺序存取,如磁带)、DAM(直接存取,如磁盘)是存取方式。DMA是I/O传送方式,不是存取方式。
主存 = RAM方式。注意DMA和DAM是不同概念。
第5章 存储器层次结构 -- 存储器的分类与存取方式
键盘接口应选用
低速、随机性强的设备用中断方式,高速、大批量用DMA方式。键盘是低速随机输入设备。
低速少量用中断,高速大量用DMA。
第6章 互连及输入输出组织 -- 输入输出方式
MIPS计算机的汇编指令"sub $s3, $s2, $s1"的功能是
MIPS R型指令格式:op rd, rs, rt,功能rd = rs op rt。sub $s3, $s2, $s1 即 $s3 = $s2 - $s1。
MIPS算术指令:第一个=目的(存结果),第二三个=源。类比赋值语句。
第3章 指令系统 -- MIPS指令格式
中断的响应时机是
CPU在每条指令执行完后检查中断请求。只有指令完整执行完毕后才能安全保存断点。
中断响应 = 指令结束时。DMA响应 = 机器周期结束时。
第6章 互连及输入输出组织 -- 中断系统
下列属于易失性存储器的是
易失性:断电丢数据(RAM)。非易失性:断电不丢(ROM、硬盘、光盘、闪存)。
RAM = 易失性,其余均为非易失性。
第5章 存储器层次结构 -- 存储器的分类
在对动态存储器进行"读"操作时,存在电容的放电现象,读后应有重写操作,此操作称为
DRAM读操作破坏性:电容放电后需恢复。再生=读后恢复,刷新=定期维护(因自然漏电)。
再生=读后恢复(每次读后),刷新=定时维护(周期性)。
第5章 存储器层次结构 -- DRAM的再生与刷新
按照在计算机上完成任务的不同,可以把使用计算机的用户分成系统程序员、应用程序员、______、______四类。
答案:空1: 硬件设计人员;空2: 最终用户(终端用户)
教材将计算机用户按工作内容分为四类,从底层到高层:硬件设计人员、系统程序员、应用程序员、最终用户。
硬件设计人员设计CPU、存储器等硬件。最终用户使用现成应用软件,是数量最多的一类。
"硬系应终"四字速记。题目给出中间两类,需填两端。
第1章 计算机系统概述 -- 计算机系统的层次结构与用户分类
数据在计算机内部处理过程中,为了减少和避免错误,常用的数据校验码有奇偶校验码、______、______。
答案:空1: 海明校验码(海明码);空2: 循环冗余校验码(CRC码)
三种校验码按能力递增:奇偶(检错)、海明(检错+纠错)、CRC(强检错)。
奇偶校验最简单只能检测奇数位错。海明码能定位并纠正1位错。CRC基于模2除法,检错能力最强。
口诀"奇海循"。
第2章 数据的表示和运算 -- 数据校验码
根据指令显式给出的地址个数,指令可分为零地址指令、单地址指令、______、______。
答案:空1: 二地址指令;空2: 三地址指令
按地址码个数分类:零、一、二、三地址指令。地址越多,功能越明确,指令越长。
按数量递增:零、一、二、三。
第3章 指令系统 -- 指令格式
虚拟存储器分成分页式、______、______三种不同类型。
答案:空1: 分段式;空2: 段页式
分页式(固定大小页)、分段式(按逻辑结构分段)、段页式(先分段再分页,结合两者优点)。
"页、段、段页"。段页式是组合体。
第5章 存储器层次结构 -- 虚拟存储器
磁盘读写是指根据磁盘地址读写目标磁道中的指定扇区,因而其操作可归纳为寻道、______、______三种。
答案:空1: 旋转等待(旋转延迟);空2: 读写数据(数据传输)
寻道(移动磁头到目标磁道)、旋转等待(等目标扇区转到磁头下方)、读写数据(传输数据)。
磁盘访问时间 = 寻道时间 + 旋转等待时间 + 数据传输时间。
第5章 存储器层次结构 -- 磁盘存储器
I/O接口的功能主要包括______、______、控制和定时、数据格式转换。
答案:空1: 数据缓冲;空2: 设备选择(地址译码)
I/O接口四大功能:"缓选控转" -- 数据缓冲、设备选择、控制定时、格式转换。
缓冲解决速度差异,选择解决设备识别。
第6章 互连及输入输出组织 -- I/O接口的功能
根据不同的控制描述方式,控制器分为______和______。
答案:空1: 硬布线控制器(组合逻辑控制器);空2: 微程序控制器
硬布线:组合逻辑直接产生信号,速度快但难修改(RISC)。微程序:用微程序描述,灵活但稍慢(CISC)。
硬布线=硬件直接(快但难改),微程序=可编程(灵活但慢)。
第4章 中央处理器 -- 控制器的设计方法
按信息的可更改性,将存储器分为读写存储器和______存储器。
答案:只读
读写存储器(RAM)可读可写,只读存储器(ROM)正常工作时只能读。
读写(RAM) vs 只读(ROM),是最基本的对立分类。
第5章 存储器层次结构 -- 存储器的分类
总线
总线是连接计算机各功能部件(CPU、存储器、I/O设备等)的公共信号传输线。它是一组能为多个部件分时共享的信息传送通道,由导线和相关控制逻辑组成。按传输内容分为数据总线、地址总线和控制总线三类。
总线用共享公共线路连接所有部件,简化系统连接。"分时共享":同一时刻只能一个部件发送。
数据总线(双向,传数据)、地址总线(单向,传地址)、控制总线(传控制信号)。按层次分片内总线、系统总线、通信总线。
关键词:公共、分时共享、三类(数据/地址/控制)。
第6章 互连及输入输出组织 -- 总线
汇编程序
汇编程序是一种系统软件,功能是将用汇编语言编写的源程序翻译成机器语言程序(目标程序)。汇编程序将助记符形式的汇编指令逐条翻译为二进制机器指令,这个翻译过程称为汇编。
计算机只能执行机器语言,汇编语言用助记符代替二进制,需要汇编程序翻译。
汇编语言与机器语言基本一一对应。区分:汇编语言(语言)、汇编程序(翻译工具)、汇编(过程)。编译程序翻译高级语言,汇编程序翻译汇编语言。
身份=系统软件,功能=翻译,输入=汇编源程序,输出=机器语言目标程序。
第1章 计算机系统概述 -- 计算机软件系统
(进位记数制中的)基数
基数是指进位计数制中每个数位上所能使用的不同数码的个数。十进制基数为10(0~9),二进制基数为2(0和1),十六进制基数为16(0~F)。基数决定了"逢几进一"的进位规则。
基数R决定:R个数码(0到R-1)、逢R进一、各位位权为R的幂次。
基数 = 每个数位上能用几个不同数码。
第2章 数据的表示和运算 -- 进位计数制
寄存器间接寻址
寄存器间接寻址是一种指令寻址方式,指令中给出寄存器编号,该寄存器中存放的不是操作数本身,而是操作数在主存中的地址。CPU先从寄存器取出地址,再用该地址访问主存取得操作数。特点是比存储器间接寻址快(只需一次访存),寻址范围大。
"间接"意味着寄存器中的内容是地址而非操作数。有效地址EA = (Ri)。
过程:取寄存器编号 -> 读寄存器得地址 -> 用地址访存取操作数。优点:只需1次访存,寻址范围大。
寄存器直接=0次访存,寄存器间接=1次访存,存储器间接=2次访存。
第3章 指令系统 -- 寻址方式
直接存取存储器
直接存取存储器是一种存取方式介于随机存取和顺序存取之间的存储器。先直接定位到存储介质上某个小区域(如磁盘的某个磁道),然后在该区域内按顺序方式存取数据。磁盘是典型的直接存取存储器。
RAM=随机存取(如内存),SAM=顺序存取(如磁带),DAS=直接存取(如磁盘)。
"先直接、后顺序":先跳到磁道(直接),再等扇区(顺序)。注意DAS和DMA是不同概念。
类比图书馆:先走到目标书架(直接),再在书架上顺序找书(顺序)。
第5章 存储器层次结构 -- 存储器分类
通常一条指令的执行要经过哪些步骤?
(1)取指令:根据PC从主存取出指令送入IR。(2)指令译码:对操作码译码,确定操作类型。(3)取操作数:根据寻址方式计算有效地址,取得操作数。(4)执行:在ALU中执行运算。(5)存储结果:将结果存到目的地址。(6)更新PC:形成下一条指令地址。
CPU通过"取指--分析--执行"循环来运行程序。PC存放当前指令地址,IR存放当前指令。
取指令:PC地址送主存,指令读入IR。译码:分析操作码产生控制信号。取操作数:根据寻址方式找到数据。执行:ALU运算。存结果:写回寄存器或主存。更新PC:顺序执行PC+1,转移指令修改PC。
"取、译、取、执、存、更"六字口诀。
第4章 中央处理器 -- 指令周期与执行步骤
为什么在CPU和主存之间引入cache能提高CPU访存效率?
(1)CPU速度远高于主存,直接访问导致CPU大量等待。(2)程序具有局部性:时间局部性(近期访问的可能再被访问)和空间局部性(相邻信息可能被访问)。(3)Cache用SRAM实现,速度接近CPU,利用局部性预存常用数据。CPU先查Cache,命中则高速读取。(4)命中率通常达90%以上,大部分访存以接近Cache速度完成。
CPU时钟约1ns,主存访问约50-100ns,速度差距巨大。Cache是速度和成本之间的折中方案。
Cache用SRAM(快但贵),主存用DRAM(慢但便宜)。CPU先查Cache:命中直接读取,未命中从主存读并调入Cache。假设Cache 10ns,主存100ns,命中率95%,平均 = 0.95×10 + 0.05×100 = 14.5ns,远小于100ns。
四要素:问题(速度差)、原理(局部性)、方案(SRAM Cache)、效果(高命中率)。
第5章 存储器层次结构 -- Cache原理与程序局部性
I/O端口的编址方式有哪两种?简述各自的特点。
(1)统一编址:I/O端口与主存统一编址。不需专门I/O指令,用访存指令访问,灵活;但占用主存地址空间。
(2)独立编址:I/O端口地址空间与主存独立。需专门I/O指令(IN/OUT),不占主存空间,程序清晰。
I/O端口地址如何编排:与主存放一起(统一编址)还是单独编排(独立编址)。
统一编址:共用地址空间,用访存指令,占主存空间。代表:ARM。独立编址:独立地址空间,用专门I/O指令,不占主存。代表:Intel x86。
"统一灵活占空间,独立清晰不占地"。
第6章 互连及输入输出组织 -- I/O端口编址方式
在中断响应周期中,主要完成哪几个操作?
(1)关中断:禁止响应新中断,保护现场不被破坏。(2)保存断点:将PC(和PSW)保存到栈或寄存器。(3)获取中断服务程序入口地址:通过向量法或查询法获取入口地址送入PC。以上三步由硬件自动完成。
中断响应周期是CPU接受中断后、执行中断服务程序前的准备工作,全部由硬件自动完成。
关中断防止保存断点被打断。保存断点记录返回位置,通常压栈。取入口地址:硬件向量法查中断向量表(快),软件查询法逐个检测(慢)。注意:保存断点(硬件)与保护现场(软件)是不同概念。
"关、保、取"三字口诀。全部硬件自动完成,顺序不可颠倒。
第6章 互连及输入输出组织 -- 中断系统
假设某个频繁使用的程序P在机器M1上运行需要24秒,M1的时钟频率为1GHz。设计人员想开发一台与M1具有相同ISA的新机器M2。采用新技术可使M2的时钟频率增加,但同时也会使CPI增加。假定P在M2上执行时的时钟周期数是在M1上的2倍,则M2的时钟频率至少达到多少才能使程序P在M2上的运行时间缩短为16秒?
M1时钟周期数 = 24 × 109,M2时钟周期数 = 48 × 109
fM2 = 48×109 / 16 = 3GHz
核心公式:CPU执行时间 = 时钟周期总数 / 时钟频率。ISA相同意味着指令条数相同,但CPI不同导致总周期数不同。
第一步:M1时钟周期总数 = 24s × 1GHz = 24×109
第二步:M2时钟周期总数 = 2 × 24×109 = 48×109
第三步:fM2 = 48×109 / 16 = 3×109 = 3GHz
验证:48×109 / 3×109 = 16秒,正确。
CPU执行时间 = 周期总数 / 频率。频率提升必须大于CPI增加幅度才能真正加速。
第1章 计算机系统概述 -- CPU性能指标
将十进制数240转换为IEEE754的32位单精度浮点数的二进制格式,并写出其十六进制格式。注:IEEE754单精度浮点数的计数公式为(-1)s × 1.f × 2(e-127),其中符号位s为1位,阶码e为8位,尾数f为23位。
(1) s=0 (2) 240=11110000 (3) 规格化:1.1110000×27 (4) e=134=10000110 (5) f=11100000000000000000000
32位:0 10000110 11100000000000000000000,十六进制:43700000H
IEEE 754单精度:1位符号S + 8位阶码E + 23位尾数M。值 = (-1)S × 1.M × 2(E-127)。偏置值127,隐含的"1"不存储。
1. 240是正数,S = 0
2. 240 = 128+64+32+16 = 111100002
3. 规格化:1.1110000 × 27
4. E = 127 + 7 = 134 = 100001102
5. 尾数取小数点后23位:11100000000000000000000
6. 拼接:0|10000110|11100000000000000000000
7. 每4位分组:0100 0011 0111 0000... = 43700000H
步骤:定符号、转二进制、规格化、算阶码(+127)、取尾数、拼接、转十六进制。偏置值127必记。
第2章 数据的表示和运算 -- IEEE 754浮点数
假定一个字长为32位的CPU的主频为600MHz,即CPU每秒产生600×106个时钟周期。硬盘使用中断I/O方式进行数据传送,其传输速率为8MBps,每次中断传输一个16字节的数据,要求没有任何数据传输被错过。每次中断的开销(包括用于中断响应和中断处理的时间)是600个时钟周期。如果硬盘仅有5%的时间进行数据传送,那么,CPU用于硬盘数据传送的时间占整个CPU时间的百分比为多少?
(1) 每秒中断次数 = 8M/16 = 500,000次 (2) 中断消耗 = 500,000×600 = 3×108 (3) CPU总周期 = 6×108 (4) 持续传送比例 = 50% (5) 实际 = 50%×5% = 2.5%
中断I/O方式:每次传输少量数据就中断一次CPU。本题计算中断开销占CPU时间的比例。
1. 每秒中断次数 = 8×106B/s ÷ 16B = 500,000次/秒
2. 每秒中断消耗 = 500,000 × 600 = 3×108 个周期
3. CPU总周期 = 600×106 = 6×108
4. 持续传送时比例 = 3×108/6×108 = 50%
5. 硬盘仅5%时间传送,实际 = 50% × 5% = 2.5%
验证:平均每秒25,000次中断,消耗1.5×107,占比2.5%,正确。
算中断频率 -> 算总开销 -> 除以CPU总周期 -> 乘实际工作比例。
第6章 互连及输入输出组织 -- 中断I/O方式
某计算机主存地址空间大小32MB,按字节编址。主存与Cache之间采用直接映射方式,块大小为1K字节。Cache数据区大小为16KB。
(1) 该Cache共有多少行?
(2) 主存地址需多少位?如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。
(1) Cache行数 = 16KB/1KB = 16行
(2) 主存地址25位:标记(11位) + 行号(4位) + 块内偏移(10位)
直接映射中每个主存块只能放在Cache的固定一行。地址三段:标记(区分不同主存块)、行号(定位Cache行)、块内偏移(块内字节位置)。
(1) Cache行数 = 214/210 = 24 = 16行
(2) 32MB = 225B,需25位地址
块内偏移:1KB = 210 -> 10位(低位,第0~9位)
行号:16 = 24 -> 4位(中间,第10~13位)
标记:25-10-4 = 11位(高位,第14~24位)
| 字段 | 位数 | 位置 | 含义 |
|---|---|---|---|
| 标记 | 11位 | 高位(24~14) | 区分映射到同一行的不同主存块 |
| 行号 | 4位 | 中间(13~10) | 确定Cache中的行位置 |
| 块内偏移 | 10位 | 低位(9~0) | 块内字节位置 |
三步法:先定偏移(块大小)、再定行号(Cache行数)、标记是剩余。2n个项目需n位编号。
第5章 存储器层次结构 -- Cache直接映射
某计算机字长16位,采用16位定长指令格式,部分数据通路结构如题32图所示。假设MAR的输出一直处于使能状态。
(1) 传送指令"LOAD R1, (R3)"在执行阶段需要多少个节拍?该指令功能为: R[R1] ← M[R[R3]]
(2) 写出每个节拍的功能和有效控制信号。
(1) 执行阶段需要2个节拍
| 节拍 | 功能描述 | 微操作 | 有效控制信号 |
|---|---|---|---|
| 节拍1 | 将R3中的地址送MAR,启动存储器读 | MAR ← R[R3],读主存 | R3out, MARin, MemR |
| 节拍2 | 将主存读出的数据从MDR送入R1 | R[R1] ← MDR | MDRout, R1in |
LOAD R1, (R3) 使用寄存器间接寻址:R3存放地址,从主存该地址读数据送入R1。控制信号:XXXout打开输出门,XXXin使能输入端,MemR读存储器。MAR输出一直使能意味着地址自动送到地址总线。
节拍1:MAR ← R[R3],启动存储器读
信号:R3out, MARin, MemR
R3out打开R3输出 -> 地址送上总线 -> MARin锁存到MAR -> MAR输出使能,地址送地址总线 -> MemR通知主存读 -> 数据送入MDR
节拍2:R[R1] ← MDR
信号:MDRout, R1in
MDRout打开MDR输出 -> 数据送上总线 -> R1in写入R1 -> LOAD完成
LOAD指令执行阶段只需2个节拍:送地址+启动读、取数据到目标寄存器。每个节拍只完成一个总线传送操作。
第4章 中央处理器 -- 数据通路与控制信号