说明:本章课件以讲解为主,未单列"习题/思考题"栏目,故"课件原题"收录课件中全部例题/举例(编程举例 p.16、指令格式与程序清单 p.17–18、MAR/MDR 例 p.20、存储容量例 p.31),共 4 题;其余为按考点补充题 11 题,合计 15 题。所有解答均给出完整步骤。
课件"编程举例"给出计算 ax² + bx + c 的两种算法步骤。问:(1) 两种算法各需多少步?(2) 哪种更优?为什么?
解答: (1) 直接法(8 步):取x至运算器 → 乘以x → 乘以a → 存ax²于存储器 → 取b → 乘以x → 加ax² → 加c。 霍纳法((ax+b)x+c,5 步):取x至运算器 → 乘以a → 加b → 乘以x → 加c。 (2) 霍纳法更优。它把 ax²+bx+c 改写为 (ax+b)x+c,只需 2 次乘法、2 次加法,且无需把中间结果 ax² 存回存储器再取出,减少了乘法次数与访存次数,故步数由 8 降为 5,效率更高(课件 p.16)。
课件给出指令格式(操作码+地址码)与计算 ax²+bx+c 的程序清单(地址 0–12)。问: (1) 指令由哪两部分组成? (2) 地址 3 的指令(000100 0000001000)完成什么功能? (3) 地址 5、6 两条指令的地址码 0000001100 指向哪个主存单元?该单元存放什么? (4) 停机指令有无地址码?
解答: (1) 指令 = 操作码 + 地址码(课件 p.17)。操作码指明操作类型,地址码指明操作数所在单元。 (2) 操作码 000100 = 乘,地址码 0000001000 = 十进制 8(存放 x)。功能:[ACC]×[8]→ACC,即把 ACC 中的 (ax+b) 乘以 x 得 (ax+b)x(课件 p.18 地址 3 注释)。 (3) 0000001100 = 十进制 12。地址 5(存数)把 ACC 中的结果 ax²+bx+c 写入单元 12;地址 6(打印)把单元 12 的内容送打印机。故该单元存放计算结果(课件 p.18 地址 12"存放结果")。 (4) 停机指令(000110)只有操作码、没有地址码(课件 p.17、p.18 地址 7 地址码为空)。
设 MAR = 4 位、MDR = 8 位,求存储单元个数与存储字长。
解答: - MAR 反映存储单元个数:个数 = 2^MAR = 2⁴ = 16。 - MDR 反映存储字长:字长 = MDR = 8 位。 故存储单元个数 16、存储字长 8(与课件 p.20 一致)。
存储容量换算: (1) MAR = 10、MDR = 8,求主存容量; (2) MAR = 16、MDR = 32,求主存容量(位与字节); (3) 2¹³ b 与 2²¹ b 各等于多少 KB? (4) 1GB 等于多少 b?(注意课件标注)
解答: (1) 个数 = 2¹⁰ = 1K,字长 = 8 位 → 容量 = 1K × 8 位(课件 p.31 表)。 (2) 个数 = 2¹⁶ = 64K,字长 = 32 位 → 容量 = 64K × 32 位 = 2¹⁶ × 32 = 2²¹ 位;字节 = 2²¹ / 2³ = 2¹⁸ B = 256KB(课件 p.31 表及 2²¹=256KB)。 (3) 1B = 2³b,故 2¹³ b = 2¹³⁻³ B = 2¹⁰ B = 1KB;2²¹ b = 2²¹⁻³ B = 2¹⁸ B = 256KB(课件 p.31)。 (4) 1GB = 2³⁰ B = 2³⁰ × 2³ b = 2³³ b。课件原文如此,存疑:p.31 标注"1GB = 2³⁰b",按 1B=2³b 应为 2³⁰B=2³³b,课件 b 疑为 B 之误。 本题按正确口径 2³³ b 作答。
下列不属于系统软件的是( )。 A. 操作系统 B. 语言处理程序 C. 数据库管理系统 D. 某单位学生成绩管理程序
解答:系统软件用来管理整个计算机系统,包括语言处理程序、操作系统、服务性程序、数据库管理系统、网络软件(课件 p.5)。A、B、C 均属系统软件。D 是"按任务需要编制成的各种程序",属应用软件。答案 D。逐项排除:A 操作系统是最核心系统软件;B 语言处理程序属系统软件;C 数据库管理系统在课件中列于系统软件;D 面向具体任务的应用软件,故选 D。
自顶向下写出 M4–M0 各层名称;软硬件分界在哪两层之间;M4→M3 靠什么实现?
解答: - M4 高级语言虚拟机器;M3 汇编语言虚拟机器;M2 操作系统虚拟机器;M1 实际机器(机器语言);M0 微程序机器(微指令系统)(课件 p.8)。 - 软硬件分界在 M1 与 M2 之间(M2 及以上软件,M1 及以下硬件)(课件 p.8)。 - M4→M3 用编译程序翻译成汇编语言程序(课件 p.8)。
下列问题中属于"计算机组成"研究范畴的是( )。 A. 指令系统中是否提供乘法指令 B. 指令系统包含哪些数据类型 C. 乘法指令用硬件乘法器还是加法-移位微程序实现 D. 采用何种寻址技术
解答:体系结构 = 程序员所见属性(指令系统、数据类型、寻址技术、I/O 机理),即"有无/是什么";组成 = 具体指令的实现,即"怎么做"(课件 p.9)。A、B、D 均为体系结构(有无乘法指令、数据类型、寻址技术)。C 讨论乘法的物理实现方式,属组成。答案 C。
简述冯·诺依曼计算机的六大特点,并解释"存储程序"的含义。
解答(评分要点,课件 p.10): 1. 计算机由五大部件组成(运算器、控制器、存储器、输入、输出); 2. 指令和数据以同等地位存于存储器,可按地址寻访; 3. 指令和数据用二进制表示; 4. 指令由操作码和地址码组成; 5. 存储程序; 6. 以运算器为中心。 "存储程序"含义:把程序(指令序列)和数据事先存入存储器,启动后机器在控制器指挥下自动地逐条取指令、分析、执行,无需人工干预每一步,直至程序结束。它是冯·诺依曼思想的核心。
CPU = ____ + ____;主机 = ____ + ____;经典冯·诺依曼机以____为中心,现代计算机以____为中心。
解答:CPU = 运算器(ALU) + 控制器(CU);主机 = CPU + 主存;经典以运算器为中心(课件 p.10、p.11),现代以存储器为中心(课件 p.13、p.14)。注意辅存不属于主机。
某机主存容量为 1M × 16 位。求:(1) MAR 与 MDR 的位数;(2) 按字节计的容量。
解答: (1) 存储单元个数 = 1M = 2²⁰ → MAR 位数 = 20(因 2^MAR = 2²⁰);存储字长 = 16 位 → MDR 位数 = 16。 (2) 容量(位) = 2²⁰ × 16 = 2²⁴ 位;容量(字节) = 2²⁴ / 2³ = 2²¹ B = 2MB。 答案:MAR=20 位、MDR=16 位;容量 2MB。
乘法运算中 MQ 存放____和____;除法运算中商在____、余数在____;乘法开始前需把 ACC 清____。
解答:乘法中 MQ 存乘数和乘积低位(ACC 存乘积高位、X 存被乘数);除法中商在 MQ、余数在 ACC;乘法开始前 0→ACC(清 0),并把被乘数转存 X(课件 p.21、p.24、p.25)。
将取数指令的下列微操作按正确顺序排序,并指出 (PC)+1→PC 发生在哪个阶段、取指阶段访存几次: ① MDR→IR ② PC→MAR ③ M→MDR ④ OP(IR)→CU ⑤ Ad(IR)→MAR ⑥ MDR→ACC ⑦ MAR→M(读)
解答: 正确顺序:② PC→MAR → ⑦ MAR→M(读) → ③ M→MDR → ① MDR→IR → ④ OP(IR)→CU → ⑤ Ad(IR)→MAR → ⑦ MAR→M(读,操作数) → ③ M→MDR → ⑥ MDR→ACC(课件 p.27、p.29)。 即取指:②⑦③①;分析:④;执行:⑤⑦③⑥。 (PC)+1→PC 发生在取指阶段(课件 p.26、p.29)。取指阶段访存 1 次(读指令);执行阶段再访存 1 次(读操作数),整条取数指令共访存 2 次。
某 CPU 主频 f = 2GHz,平均 CPI = 4。求:(1) 时钟周期;(2) MIPS 数;(3) 执行 10⁸ 条指令所需时间。
解答: (1) 时钟周期 T = 1/f = 1/(2×10⁹) s = 0.5ns。 (2) MIPS = f / (CPI × 10⁶) = (2×10⁹)/(4×10⁶) = 500 MIPS(补充常识公式,MIPS/CPI/主频定义见课件 p.30)。 (3) 时间 = 指令数 × CPI × T = 10⁸ × 4 × 0.5ns = 2×10⁸ ns = 0.2s。或 时间 = 指令数×CPI/f = 10⁸×4/(2×10⁹) = 0.2s。 答案:0.5ns;500 MIPS;0.2s。
某程序两类指令混合比 f₁=0.6、f₂=0.4,执行时间 t₁=4ns、t₂=8ns。用吉普森法求平均指令执行时间 Tₘ;并简述"吞吐量"含义。
解答: 吉普森法 Tₘ = Σᵢ₌₁ⁿ fᵢ·tᵢ(课件 p.30;fᵢ 为第 i 类指令使用频度、tᵢ 为其执行时间,补充常识)。 Tₘ = f₁t₁ + f₂t₂ = 0.6×4 + 0.4×8 = 2.4 + 3.2 = 5.6ns。 吞吐量(补充常识,课件未列):单位时间内系统处理的请求/任务数或数据量(如 事务/秒、MB/s),反映系统整体处理能力,与单条指令速度(MIPS/CPI)不同,它衡量"系统整体产出"。 答案:Tₘ = 5.6ns。
沿用课件 p.18 程序清单(霍纳法),设 x=2、a=3、b=4、c=5。求: (1) 执行完地址 4 的指令后 ACC 的内容; (2) 程序结束后主存单元 12 的内容; (3) 整个程序(地址 0–7 共 8 条指令)运行过程共访存多少次(含取指与执行)?
解答: (1) 逐条跟踪 ACC: - 地址0 取数x:ACC = x = 2; - 地址1 乘a:ACC = 2×3 = 6(ax); - 地址2 加b:ACC = 6+4 = 10(ax+b); - 地址3 乘x:ACC = 10×2 = 20((ax+b)x); - 地址4 加c:ACC = 20+5 = 25(ax²+bx+c)。 故地址 4 后 ACC = 25。 (2) 地址5 存数把 ACC=25 写入单元 12;地址6 打印单元 12。故单元 12 = 25。 (3) 访存计数: - 取指:8 条指令各读 1 次 = 8 次; - 执行:地址0 读x(1)、地址1 读a(1)、地址2 读b(1)、地址3 读x(1)、地址4 读c(1)、地址5 写单元12(1)、地址6 读单元12(1)、地址7 停机(0) = 7 次; - 合计 8 + 7 = 15 次。 答案:(1) 25;(2) 25;(3) 15 次。