北大计算机体系历年试卷题目汇总及解答cc
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
比较软件流水与循环展开 循环展开是一个循环内做多个循环做的事情,使得流水线能充分得到利用。 软件流水是对循环进行重构,使得每次迭代执行的指令是属于原循环的不同迭代过程
的,这样子达到指令的并行,从而提高运行效率。 软件流水不用多次灌满和清空流水线,循环展开需要多次灌满和清空流水线。
多周期可能的指令执行步骤 1. 取指 2. 指令解码和读取寄存器 3. 执行指令计算存储地址或完成转移分支 4. 访问寄存器或完成 R型指令 5. 读取存储器
微程序设计的利弊
°易于设计 °灵活性
? 易于适应组织、定时、工艺技术的变化 ? 在设计周期的后期也能够变化 °可以实现功能非常强大的指令系统 (仅仅需要增加更多的控制存储器 ) °通用性 ? 可以在同一机器上实现多种不同的指令系统 . ? 可以针对具体应用,对指令系统进行剪裁 . °兼容性 ? 多种组成, 同一指令系统 °实现成本高 °速度慢
指令系统强大的计算机一定有好的性能 错 性能涉及到 周期时间, CPI,指令条数,与指令系统的强大无直接关系。 指令系统影响不了周期时间。
汇编语言和机器指令一一对应 如果考虑伪指令:错的。 如果不考虑伪指令:对的。
具体怎么答看大家吧 。。。 ORZ SPEC95 用几何平均值评价机器性能,几何平均值能忽略样机的影响,几何平均值也是和总 运行时间成正比的
1.0 用 IEEE 754表示 0,01111111,00000000000000000000000
10÷ 0 在 IEEE754中的表示 0,11111111,00000000000000000000000
总线的三种类型 冒险的三种类型 流水的三种相关 数据的三种相关 并行的三种方式 Cache的四种失效 计算机性能三要素
指令 / 数据分离的两级 cache
大小
块
一级 16k
8
相连 直接映射
二级 256k 32
4 路相联
系统寻址空间 2^32
问
两级分别的 Index,tag,digital sel 位数 (X6)
load/store 的 cpi 多少? (X4)
失效率 5% 1%
响应时间 1 周期 19 周期
扩充 mips 指令系统,增加 lws $a , $b , $c 用处是 $a<=Mem($b+$c*4) 图上给你改好了(就是将 Aluout 连回 SrcA,同时在 SrcB上增加了一个 选上)
【一 填空】
第一台通用电子计算机 -ENIAC 第一台可操作的存储程序机器 -Mark-I 第一台全面的、可操作的、存储程序计算 -EDSAC 第一台流水线计算机 -IBM7030 第一台成功的商业化计算机 -UNIVAC I 第一台首次使用变址寄存器 (使用了控制程序 )-IBM704 第一台含通用寄存器的 -Pegasus 第一台采用逻辑指令来进行非数值计算 -IBM7094 第一台堆栈计算机 -B5000 第一台商用小型机 -PDP-8 第一台超级计算机 -CDC 6600(采用了 load/store 结构 ) 第一台使用 cache 的商用计算机 -IBM360/ 85 第一台商业话的向量超级计算机 -Cray-1
【五 设计】
1 单周期数据通路新增加一条 mips 指令,比较 rs 和 rt,如果大于则跳转,并且将 r31 中,写出寄存器传输级语言修改数据通路。
精确中断与非精确中断 精确中断:精确地保留程序执行到产生意外事件的指令时的机器的状态 非精确中断:系统程序不得不判断在哪里出现了中断,并一起卷回
延迟转移 为了解决控制冒险, 在发生冒险的转移指令后面加入一条不会发生冒险的指令,
移行为在下一条指令之后发生。
使得转
延迟装入 为了解决数据冒险, 在发生冒险的装入指令后面加入一条不会发生冒险的指令,
地址总线,控制总线,数据总线 结构冒险,控制冒险,数据冒险 结构相关,控制相关,数据相关 先读后写相关,先写后读相关,写写相关 时间重叠,资源重复,资源共享 义务失效,冲突失效,容量失效,无效失效(主要的是前三种) 指令数,时钟周期长度, CPI
如何判断 n 位加法溢出 溢出 = 最高位进位 XOR 次高位进位
冒险及其解决方法
结构冒险
定义:试图以两种不同的方式使用同一资源 解决: 1.暂停 / 气泡 2.延迟 2.增加资源
控制冒险
定义:在判断转移条件之前,就试图决策转移方向 解决: 1.暂停 / 气泡 2.延迟 3.预测
数据冒险
定义:在产生数据之前,就试图使用它们 解决: 1.暂停 / 气泡 2.延迟 3.前递 / 旁路
160M HZ 的机器, int 指令 70%, fp 指令 30%, int 的 CPI 2, FP 的 CPI 5,问, MIPS 改进编译, int 多 10%, fp 少 20%,问 MIPS 问性能提高了多少 int 的 CPI 下降 20%,问性能提高多少 die area 的面积加了 25%, yield 和 die area 的面积的立方成反比,问成本多多少 ?
超长指令字需要更多的寄存器 超标量 : 每一周期可能发射不同数量的指令
(从 1条到 6条 )
超长指令字 : 固定数量的指令;编译器确定可开发的并行度
比较单周期和多周期 允许指令的执行占不同的周期数和功能部件可在单个指令执行过程中共享是多周期的
优势。单周期周期长,除了装入指令外,其他指令周期时间都超过了实际所需时间。 数据通路 上而言,多周期比单周期有如下不同:
给定 cache的大小,及 tag=19,cache index=9,index=2,offset=2计, 算 block 的大小
,cache 块的大小 ,关联度; 页大小是 8K,总内存 64M , TLB用 128 项的直接映射, TLB里只放物理页的页地址,还 有 dirty 位和 valid 位,问 TLB每项里有多少位 ? 画图说明 CACHE和 TLB是如何并行工作的
器” 其机制是尽量利用软件办法避免流水线中的数据相关问题。
什么是指令系统体系结构 (ISA)
程序员所能看到的系统属性, 例如概念性结构和功能特性, 既区别于数据流和控制的组
织,也区别于物理实现。
它是硬件和软件接口的抽象。
什么是软件流水
对循环进行重构, 使得每次迭代执行的指令是属于原循环的不同迭代过程的,
实际上,流水线级数在 4 到 8 之间的时候性能相对是最高的。
流水线减少了单个指令的执行时间 错 流水线所带来的性能提高是通过增加指令的吞吐量,而不是减小单个指令的执行时间。
RISC就是 CISC里的简单指令 错 RISC和 CISC不是从属关系。 RISC是简单指令系统, CISC是复杂指令系统。
cache 写策略,写命中时采取 写返回,写穿透 写分配,写不分配
___和____策略,写失效时采取 ___和 ____策略
意外的两种类型 中断,自陷
指出关系:
指令总数
CPI
编译器
X
X
指令系统
X
X
计算机组成
X
技术工艺
周期时间
X X X
【二 辨析】
浮点没有结合律 是的。 当两个绝对值较大的相反数相加再和一个较小的数相加时, 不对的。比如(这里用 10 进制演示,假设有效位是 8 位):
4 的输入,用 01 可以
写出寄存器传输级语言 MEM[PC] A <= R[b] B <= R[c]<<2 S = A+B M = MEM[S] R[a] <= M PC <= PC+4
改状态图 (其实就是增加一组状态啦) 完成微程序的设计
一个指令序列存在的相关 (X6) add $8 $5 $5 sub $8 $8 $10 lw $6 4($8) add $4 $6 $8
由此达到
指令的并行,提高运行效率。
什么是局部性原理 时间局部性:如果一个信息项正在被访问,那么在近期她很可能还会被再次访问。 空间局部性: 在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是 临近的。
时钟扭斜对时钟周期和保持时间的影响 . 根据时钟扭斜与时钟周期,保持时间之间的关系,即 时钟周期 >=Clk-to-Q+建立时间 +最长延迟路径时间 +时钟扭斜 保持时间 < Clk-to-Q 时间 +最短延迟路径时间 -时钟扭斜 可以得知,时钟扭斜增大时,时钟周期增大,保持时间减少
(-1.0^10+1.0^10)+1.0 = 1.0 -1.0^10+(1.0^10+1.0) = 0.0 两者相差 1.0 (1.1111113E7+ (-1.1111111E7)) + 7.5111111E0 = 9.5111111E0 1.1111113E7+((-1.1111111E7)+ 7.5111111E0) = 1.0000000E1 两者相差 0.5
如果采用结合律, 是
流水线级数的加深总能提高性能
错 1) (数据冒险) 代码中的数据冒险意味着增加流水线的长度会增加每条指令的执行时
间,因为流水线在大量的时钟周期里是阻塞的。
2) (控制冒险) 控制冒险意味着增加流水线的长度会导致更慢的分支, 序执行的时钟周期。
因而增加了程
3) (入不敷出)流水线开销限制了由于增加流水线长度获得的时钟片段减少的收益。
但是不是把方式都加上就一定能减少就不一定了
`
Datapath 的控制可以用微程序的方法来设计,然后最后用 对
PLA 硬连线实现
这个是概念
PLA 和 ROM 作为两个最底层的实现方式是可以被任何的路径到达的
【三 简答】
什么是 MIPS MIPS是世界上很流行的一种 RISC 处理器。 MIPS 的意思是 “无内部互锁流水级的微处理
错 几何平均值不是和总运行时间成正比的,算术加权的才是
“错误预测转移发生的指令数 ”比 “错误预测转移发生率 ”对于评价预测转移更有效 错 这个显然吧 ~100 个错 3 个 ~和 10000 个错 3 个能一样么 `
增加寻址方式总能有效地减少指令总数
错
比较 MIPS 和 8086 的就知道寄存器 -存储器寻址比 L-S的代码少
发生异常的原因有哪些 1. 运算错误 2. I/O 设备请求 3. 用户程序调用操作系统服务 4. 使用未定义指令 5. 硬件错误
每个段可能出现的中断 IF 取指页失效、未对准存储器访问、存储保护违例 ID 未定义或非法操作码 EX 算术意外事件 MEM 取数据页失效、未对准存储器访问、存储保护违例、存储器错误
延迟时间片 1. 以分支前的指令填充 2. 以分支目标指令填充 3. 以分支不发生时的下一条指令填充
比较 DRAM 与 SRAM DRAM速度虽慢,但是却价廉、高密。向用户提供大存储系统的较好选择 SRAM速度虽快,但是昂贵、密度也不很高。向用户提供快速访问时间的较好选择
比较超标量与超长指令字
超标量是一种流水线技术,超长指令字是一种指令格式。
比较多周期处理器多周期延迟路径 多周期处理器: 用多个时钟周期执行每条指令 多周期延迟路径: 在两个存储部件之间的、 需要一个以上时钟周期完成的组合逻辑路径
【四 计算】
通过 6*(-7) 说明 booth 算法的过程 6 = (0110)2 -7 = (1001)2
操作
步骤
0
初始值
1
10:减去被乘数
移行为在下一条指令之后发生。
wenku.baidu.com
使得转
延迟槽 为了解决转移时的冒险, 装入时的冒险等问题, 通过编译加入一条不会发生冒险的指令,
使得转移 / 装入在下一条指令之后发生。
微程序设计 一种特殊的实现处理器控制部件的策略,它在寄存器传输操作的级别进行
“编程 ”
微体系结构 微程序编程人员所看到的硬件的逻辑结构和功能特性
右移
2
01:加上被乘数
右移
3
00:无操作
右移
4
10:减去被乘数
右移
5
结果值
被乘数 0110 0110 0110 0110 0110 0110 0110 0110 0110 0110
乘积 0000 1001 0 1010 1001 0 1101 0100 1 0011 0100 1 0001 1010 0 0001 1010 0 0000 1101 0 1010 1101 0 1101 0110 1 (1101 0110) 2 = (-42)10
1. 指令和数据用同一寄存器 2. 只有一个 ALU,而不是一个 ALU和两个加法器 3. 每个主要的功能单元都加上了一个或多个寄存器存储输出值以便在后面的时钟周 期中使用
比较超标量与超流水 超标量是通过内置多条流水线来同时执行多个指令。 而超流水线是通过细化流水、 提高主频,使得在一个机器周期内完成一个甚至多个操作。