计算机体系结构实验 (预习报告)

计算机系统结构 实验四 Cache性能分析 掌握了降低 Cache不命中率的各种方法。并且对 MyCache 模拟器的使用方法有了很好的了解,通过实验更好的理解知识,达到了通过实践学习知识的目的,培养了自己的动手能力。 阅读详情

1. MIPS 指令系统和 MIPS 体系结构

实验目的

  • 了解熟悉 MIPSsim 模拟器
  • 熟悉 MIPS 指令系统及其特点
  • 熟悉 MIPS 体系结构

实验平台

  • 指令级和流水线操作级模拟器 MIPSsim

MIPS64 指令系统介绍

MIPS 的寄存器

  • 32 个 64 位通用寄存器 GPRs (整数寄存器):R0-R31。R0 的值永远是 0
  • 32 个 64 位浮点数寄存器 FPRs:F0-F31。它们可以存放 32 个单精度(32位)或双精度(64位)浮点数

  • MIPS 提供了单精度和双精度操作的指令,而且还提供了在 FPRs 和 GPRs 之间传送数据的指令

MIPS 的数据表示

  • (1) 整数:字节 (8 位)、半字 (16 位)、字 (32 位)和双字 (64 位)
  • (2) 浮点数:单精度浮点数(32位)和双精度浮点数(64位)

  • MIPS64 的操作是针对 64 位整数以及 32 位或 64 位浮点数进行的
    • 字节、半字或字在装入 64 位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们按照 64 位整数的方式进行运算
    • 因此需要注意:在更改寄存器值的时候,需要手动进行符号位扩展

MIPS 的数据寻址方式

  • MIPS 的数据寻址方式只有立即数寻址和偏移量寻址两种,立即数字段和偏移量字段都是 16 位
    • 寄存器间接寻址是通过把 0 作为偏移量来实现的
    • 16 位绝对寻址是通过把 R0 作为基址寄存器来完成的
  • MIPS 的存储器是按字节寻址的,地址是 64 位
  • 由于 MIPS 是 load-store 结构,寄存器和存储器之间的数据传送都是通过 load 指令和 store 指令来完成的。所有存储器访问都必须边界对齐

MIPS 的指令格式

  • 指令格式简单,其中操作码 6 位。按不同类型的指令设置不同的格式,共有 3 种格式,分别对应 I I I 指令、 R R R 指令和 J J J 指令。在这 3 种格式中,同名字段的位置固定不变
    • I I I 类指令: 包括所有的 load 和 store 指令、立即数指令、分支指令、寄存器跳转指令、寄存器链接跳转指令。其中立即数字段位 16 位,用于提供立即数或偏移量
      在这里插入图片描述
      • load 指令: 访存有效地址为 Regs[rs] + immedicate,从存储器取来的数据放入寄存器 rt 中
      • store 指令: 访存有效地址位 Regs[rs] + immedicate,需要存入存储器的数据放在寄存器 rt 中
      • 立即数指令: Regs[rt] ← Regs[rs] op immedicate (使用立即数的 ALU 指令)
      • 分支指令: 转移目标地址为 Regs[rs] + immedicate,rt 无用
      • 寄存器跳转、寄存器跳转并链接: 转移目标地址为 Regs[rs]
    • R R R 类指令: 包括 ALU 指令、专用寄存器读、写指令、move 指令
      在这里插入图片描述
    • J J J 类指令: 包括跳转指令、跳转并链接指令、自陷指令、一场返回指令。在这些指令中,指令字的低 26 位时偏移量,它与 PC 值相加形成跳转的地址
      在这里插入图片描述

MIPS 的部分指令介绍

Notation:

  • Regs 表示寄存器组;Mem 表示主存,按字节寻址;[ ] 表示内容,Mem[ ] 表示存储器的内容,Regs[ ] 表示寄存器的内容
  • x ← n ←_n ←n​ y 表示从 y 传送 n 位到 x。x,y ← ← ← z 表示把 z 传送到 x 和 y
  • 用下标表示字段中具体的位。对于指令和数据按从最高位到最低位的顺序依次进行编号,最高位为 0 位。下标也可以表示一个范围;上标表示对字段进行复制的次数。例如 0 32 0^{32} 032 表示一个 32 位长的全 0 字段
  • 符号 ## 用于两个字段的拼接
load 和 store 指令

在这里插入图片描述

ALU 指令
  • ALU 指令都是寄存器—寄存器型或立即数型的。所有指令都支持立即数寻址模式,参与运算的立即数是由指令中的 immedicate 字段(低16位)经符号位扩展后生成的
    在这里插入图片描述
控制指令

在这里插入图片描述

除了以寄存器的内容作为目标地址进行跳转以外,所有其他的控制指令的跳转地址都是相对于 PC 的

浮点指令
  • 对浮点寄存器中的数据进行操作,并由操作码指出操作数是单精度还是双精度。在指令助记符中,用后缀 S 和 D 分别表示单精度和双精度

MIPSsim 使用说明

启动模拟器

  • 双击 MIPSsim.exe 即可启动模拟器
    • 所有通用寄存器和浮点寄存器为全 0;内存清零;流水寄存器为全 0;清空时钟图、断点、统计数据;内存容量为 4096B;载入起始地址 0;浮点加法、乘法、除法部件的个数均为 1;浮点加法、乘法、除法运算延迟分别为 6、7、10 个时钟周期;采用流水方式;不采用定向机制;不采用延迟槽;采用符号地址;采用绝对周期计数

MIPSsim 的窗口

  • 在流水方式下,模拟器主界面共有 7 个窗口,分别是“代码”窗口、“寄存器”窗口、“流水线”窗口、“时钟周期图”窗口、“内存”窗口、“统计” 窗口和“断点”窗口
  • 在非流水方式下只有“代码”窗口、“寄存器” 窗口、 “内存”窗口和“断点”窗口
“代码” 窗口
  • 给出内存中代码的列表,每条指令占一行,按地址顺序排列;在该窗口中选择某行,然后再右击,在弹出的快捷菜单中可以选择“设置断点”和“清除断点”命令
    • 不同颜色的行代表相应的指令所处的执行段。黄色代表 IF 段,绿色代表 ID 段,红色代表 EX 段,青色代表 MEM 段,棕色代表 WB 段
    • 地址:以 16 进制的形式给出。内存是按字节寻址的,每条指令占 4 个字节。当采用符号地址时,会在相应的位置给出汇编程序中出现的标号
    • 断点标记:如果在该指令处设有断点,则显示相应的标记。断点标记的形式为 B.X(X 为段名),表示该断点是设置在该指令的 X 段。当模拟器在非流水方式下工作,断点标记为 B
    • 机器码:该行对应指令的 16 进制机器码。若该行无指令,则仅仅显示 4 字节数据
    • 流水段标记:当该指令正在执行时,它表示在当前周期该指令所在的流水段。当模拟器在非流水方式下工作,它没有意义
    • 符号指令:机器代码所对应的符号指令。
      在这里插入图片描述
“寄存器”窗口

在这里插入图片描述

特殊寄存器

  • PC—程序计数器,32 位
  • LO—乘法寄存器的低位;HI—乘法寄存器的高位
  • PCSR—浮点状态寄存器

流水寄存器

  • IF/ID.IR 流水段 IF 与 ID 之间的指令寄存器
  • IF/ID.NPC 流水段 IF 与 ID 之间的下一指令程序计数器
  • ID/EX.A 流水段 ID 与 EX 之间的第一操作数寄存器
  • ID/EX.B 流水段 ID 与 EX 之间的第二操作数寄存器
  • ID/EX.Imm 流水段 ID 与 EX 之间的立即数寄存器
  • ID/EX.IR 存放从 IF/ID.ID 传过来的指令
  • EX/MEM.ALU0 流水段 EX 与 MEM 之间的 ALU 计算结果寄存器
  • EX/MEM.IR 存放从 IF/EX.IR 传过来的指令
  • MEM/WB.LMD 流水段 MEM 与 WB 之间的数据寄存器,用于存放从存储器读出的数据
  • MEM/WB.ALU0 存放从 EX/MEM.ALU0 传过来的计算结果
  • MEM/WB.IR 存放从 MEM/WB.IR 传过来的指令

除了流水寄存器外,其他寄存器都可以修改

“流水线”窗口

在这里插入图片描述

  • 每个矩形方块代表一个流水段,它们用不同的颜色进行识别。窗口左侧是 IF 段到 WB 段,右边是浮点部件
    • 浮点部件有加法部件(fadd)、浮点乘法部件(fmul)和浮点除法部件(fdiv)3 种。可以在菜单“配置”中的“常规配置”中修改浮点部件个数
    • 双击某矩形方块时会弹出窗口显示该段出口处的流水寄存器的内容
“时钟周期图”窗口
  • 显示程序执行的时间关系,画出各条指令执行时所用的时钟周期. 在由指令轴和周期轴组成的二维空间中,坐标 ( n , i ) (n,i) (n,i) 对应的矩形区域表示指令 i i i 在第 n + 1 n+1 n+1 周期时所经过的流水段
    • 横坐标有相对周期计数和绝对周期计数两种不同的表示形式
      • 在默认的绝对周期计数下,按照 0、1、2… 依次递增的顺序计数
      • 在相对周期计数下,当前周期记为第 0 个周期,其余周期按其相对于当前周期的位置,分别记为 -1、-2、-3…
        在这里插入图片描述
    • 双击某行时,会弹出一个窗口显示该指令在各流水段所进行的处理 (流水寄存器之间的数据传输)
      在这里插入图片描述
“内存”窗口
  • 显示模拟器内存中的内容,可以进行内存修改 (双击某个数据即可修改)
    在这里插入图片描述
“统计”窗口
  • 该窗口显示模拟器统计的各项数据,在非流水方式下,没有该窗口
    在这里插入图片描述
“断点”窗口
  • “断点”窗口列出当前已经设置的所有断点。可以对断点进行添加、删除、全部删除和修改;并且断点设置可以精细到某个流水段
    在这里插入图片描述在这里插入图片描述
    • 在模拟器中断点可以设定在某条指定的某一个流水段上。当该指令执行到相应的流水段时,会中断执行
      在这里插入图片描述

实验内容和步骤

  • (1) 启动 MIPSsim
  • (2) 选择 “配置” → \rightarrow → “流水方式” 选项,使模拟器工作在非流水方式
  • (3) 参照使用说明,熟悉 MIPSsim 模拟器的操作和使用方法
    • 可以先载入一个样例程序(在本模拟器所在的文件夹下的 “样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察 CPU 中寄存器和存储器的内容的变化
  • (4) 选择 “文件” → \rightarrow → “载入程序” 选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为 0x00000000)
  • (5) 查看“寄存器”窗口 PC 寄存器的值:[PC] = 0x00000000
  • (6) 按 F7 单步执行 load、store、算术运算、逻辑运算、控制转移等指令,观察指令执行前后寄存器、内存中值的变化

2. 流水线及流水线的冲突

实验目的

  • 理解计算机流水线基本概念
  • 理解 MIPS 结构如何用 5 段流水线来实现,理解各段的功能和基本操作
  • 加深对数据冲突、结构冲突的理解,理解这两类冲突对 CPU 性能的影响
  • 进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿

实验平台

  • 指令级和流水线操作级模拟器 MIPSsim

实验原理和内容

  • 为提高指令的执行效率,充分挖掘指令级并行,可以采用流水线技术,将同一条指令划分为多个段。在理想情况下,每一段都可以流出一条指令。本实验以经典的 5 段流水线为例,将指令的执行过程分为取指令周期(IF)、指令译码/读寄存器周期(ID)、执行/有效地址计算周期(EX)、存储器访问(MEM)、写回周期(WB)
    • 值得一提的是,为了降低控制冲突的影响,该 5 段流水线在 ID 段就判断分支是否执行并计算相应的转移地址
    • 同时,为了解决对同一个通用寄存器的访问冲突问题,把写操作安排在时钟周期的前半拍完成,把读操作安排在后半拍完成
  • 相关: 相关是指两条指令之间存在某种依赖关系。如果指令之间没有任何关系,那么当流水线有足够的硬件资源时,它们就能在流水线中顺利地重叠执行,而不会引起任何停顿。但如果两条指令相关,那么它们也许就不能在流水线中重叠执行或者只能部分重叠。相关的3种类型:数据相关、名相关和控制相关
  • 流水线冲突: 对于具体的流水线来说,由于相关的存在,使指令流中的下一条指令不能在指定的时钟周期执行。流水线冲突有以下3种冲突:结构冲突、数据冲突和控制冲突。在设计流水线时需要很好地解决冲突问题:否则,就可能影响流水线的性能,甚至导致错误的执行结果出现。当发生冲突时,往往需要使某些指令推后执行,从而使流水线出现停顿,这会降低流水线的效率和实际的加速比;可能发生的数据冲突有:1)写后读冲突(RAW)、2)写后写冲突(WAW)、3)读后写冲突(WAR)

实验内容和步骤

  • (1) 启动 MIPSsim
  • (2) 根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义
  • (3) 参照 MIPsim 模拟器使用说明,熟悉 MIPSsim 模拟器的操作和使用方法。
  • (4) 选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下
  • (5) 载入程序,观察程序在流水线中的执行情况

3. 指令调度和延迟分支

实验目的

  • 加深对指令调度技术的理解
  • 加深对延迟分支技术的理解
  • 熟练掌握用指令调度技术解决流水线中的数据冲突的方法
  • 进一步理解指令调度技术对 CPU 性能的改进
  • 进一步理解延迟分支技术对 CPU 性能的改进

实验平台

  • 指令级和流水线操作级模拟器 MIPSsim

实验原理和内容

  • 为了减少停顿,对于无法使用定向技术解决的数据冲突,可以通过在编译时让编译器重新组织指令顺序来消除冲突,这种技术称为指令调度或流水线调度
  • 在流水线中,控制冲突可能会比数据冲突造成更多的性能损失,所以控制冲突同样需要得到很好的处理。执行分支指令的结果有两种,一种是分支“成功”,PC 值改变为分支转移的目标地址。另一种是“失败”,这是 PC 的值保持正常递增,指向顺序的下一条指令。对分支指令“成功”的情况来说,在条件判定和转移地址计算都完成之后,才改变 PC 值
    • 处理分支指令最简单的方法是**“冻结”或“排空“流水线**。即一旦在流水线的译码段 ID 检测到分支指令,就暂停其后指令的取指令,直到分支指令,确定是否成功并计算出新的 PC 值为止。这种方法简单,但给流水线带来了一个时钟周期的延迟(称为分支延迟)
      在这里插入图片描述
    • 为了减少分支延迟,可以采用延迟分支技术。这种技术的主要思想是从逻辑上“延长“分支指令的执行时间,把延迟分支看成由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。MIPSsim 模拟器的延迟槽的数量为 1 个。在这种情况下,只要分支延迟槽中的指令是有用的,流水线就不会出现停顿,此时延迟分支的方法能够很好地减少分支延迟
      在这里插入图片描述
    • 放入延迟槽中的指令是由编译器来进行选择的。实际上延迟分支能否带来好处完全取决于编译器能否把有用的指令调度到延迟槽中。 这也是一种指令调度技术。常用的调度方法的有 3 种:从前调度、从目标处调度和从失败处调度

实验内容和步骤

  • (1) 启动 MIPSsim
  • (2) 根据前面的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义
  • (3) 选择“配置”->“流水方式”选项,使模拟器工作于流水方式下
  • (4) 用指令调度技术解决流水线中的数据冲突
  • (5) 用延迟分支减少分支指令对性能的影响

4. Cache性能分析

实验目的

  • 加深对 Cache 的基本概念、基本组织结构以及基本工作原理的理解
  • 掌握 Cache 容量、相联度、块大小对 Cache 性能的影响
  • 掌握降低 Cache 不命中率的各种方法以及这些方法对提高 Cache 性能的好处
  • 理解 LRU 与随机法的基本思想以及它们对 Cache 性能的影响

实验平台

  • 实验平台采用 Cache 模拟器 MyCache

MyCache 模拟器的使用方法

  • (1) 启动模拟器,双击 MyCache.exe 即可
  • (2) 系统打开一个操作界面,左边为设置模拟参考区域,右边为模拟结果显示区域
  • (3) 可以设置的参数包括是同一Cache 还是分离 Cache,Cache 的容量,块大小,相联度,替换算法,预取策略,写策略,写不命中时的调块策略。可以直接从列表中选择
  • (4) 访问地址可以选择来自地址流文件,也可以选择手动输入
  • (5) 模拟结果包括:
    • (1) 访问总次数,总的不命中次数,总的不命中率
    • (2) 读指令操作的次数,其不命中次数及其不命中率
    • (3) 读数据操作的次数,其不命中次数及其不命中率
    • (4) 写数据操作的次数,其不命中次数及其不命中率
    • (5) 手动输入单次访问的相关信息

实验原理和内容

  • Cache 映像规则:全相连映像、直接映像、组相连映像
  • 替换算法:随机法、先进先出法 FIFO、最近最少使用法 LRU
  • 降低不命中率的方法:增加 Cache 块大小、增加 Cache 容量、提高相联度

实验内容和步骤

  • (1)启动 MyCache
  • (2)用鼠标单击“复位”按钮,把各参数设置为默认值
  • (3)选择一个地址流文件。方法:选择“访问地址”—>“地址流文件”选项,然后单击“浏览”按钮,从本模拟器所在文件夹下的“地址流”文件夹中选取
  • (4) 实验不同 Cache 容量、相联度、块大小、替换算法对不命中率的影响

5. Tomasulo算法

6. 再定序缓冲(ROB)工作原理

7. 多 Cache 一致性—— 监听协议

8. 多 Cache 一致性—— 目录协议

实验目的

  • 加深对指令级并行性及开发的理解
  • 加深对 Tomasulo、再定序(ROB)、多 Cache 一致性的理解
  • 掌握指令在流出、执行、写结果和确认阶段所进行的操作
  • 掌握保留站、ROB 缓冲器的结构、监听协议和目录协议

实验平台

  • 实验平台采用相应模拟器

实验原理和内容

Tomasulo 算法

  • 基本思想:记录和检测指令的相关,操作数一旦就绪就立即执行,把
    RAW 冲突降为最小。通过寄存器换名来消除 RAW 和 WAW 冲突
    在这里插入图片描述
  • 各符号的意义:
    • r r r:分配给当前指令的保留站或者缓冲器单元编号;
    • r d rd rd:目标寄存器编号;
    • r s rs rs、 r t rt rt:操作数寄存器编号;
      • 与 r s rs rs 对应的保留站字段: V j V_j Vj​, Q j Q_j Qj​
      • 与 r t r_t rt​ 对应的保留站字段: V k V_k Vk​, Q k Q_k Qk​
    • i m m imm imm:符号扩展后的立即数;
    • R S RS RS:保留站;
    • r e s u l t result result:浮点部件或 load 缓冲器返回的结果;
    • Q i Q_i Qi​:寄存器状态表;
      • Q i Q_i Qi​、 Q j Q_j Qj​、 Q k Q_k Qk​ 的内容或者为 0,或者是一个大于 0 的整数; Q i Q_i Qi​ 为 0 表示相应寄存器中的数据就绪。 Q j Q_j Qj​、 Q k Q_k Qk​ 为 0 表示保留站或缓冲器单元中的 V j V_j Vj​ 或 V k V_k Vk​ 字段中的数据就绪。当它们为正整数时,表示相应的寄存器、保留站或缓冲器单元正在等待结果
    • R e g s [ ] Regs[ ] Regs[]:寄存器组;

再定序缓冲(ROB)

  • 再定序缓冲 ROB 的硬件结构跟 Tomasulo 算法的很像(前者是在后者的基础上改进),但主要思想还是很不一样的,解决的问题也不太一样。
    Tomasulo 算法主要解决 RAW,WAW,WAR 冲突,而 ROB 主要解决控制相关的问题。ROB 结合了动态分支预测,前瞻执行,动态跨基本块调度三种思想。所以 ROB 结构中 CPU 效率更高

ROB 结构图

  • 为实现前瞻执行,增设ROB缓冲器。在指令操作完成后到指令被确认这段时间,为指令保存数据。正在前瞻执行的指令之间也是通过 ROB 传送结果的。因为前瞻执行的指令在确认前是不能写寄存器的
    在这里插入图片描述

多 Cache 一致性-监听协议

  • 当存储器中的数据块被调入 Cache 时,其共享状态信息与该数据块一起
    放在该 Cache 中
    。当 Cache 要访问存储器时,它会把请求广播到总线上,其他 Cache 监听来判断是否执行相应操作
    • 写贯穿 Cache:
      在这里插入图片描述
    • 写回法 Cache:
      在这里插入图片描述

多 Cache 一致性-目录协议

  • 采用一个集中的数据结构–目录实现 Cache 的一致性。对于存储器中的每一个可以调入 Cache 的数据块,在目录中设置一条目录项,用来记录该块的状态及哪些 Cache 中有副本等相关信息
    在这里插入图片描述
  • 在目录协议中存储块的状态有 3 种: 未缓冲, 共享, 独占; 存储数据节点有 3 种: 本地:发地址为 K K K 的访存请求; 宿主: K K K 存储单元和目录; 远程:含 K K K 的副本
    在这里插入图片描述

  • 本地、宿主(目录)、宿主、远程节点消息
    • 本地节点发给宿主节点(目录)的消息: RdMiss(P, K), WtMiss(P, K), Invalidate(K)
    • 宿主节点(目录)发给远程节点的消息: Invalidate(K), Fetch(K), Fetch&Inv(K)
    • 宿主发给本地节点的消息: DReply(D)
    • 远程节点发给宿主节点的消息: WtBack(K, D)
    • 本地节点发给被替换块的宿主节点的消息: MdSarer(P, K)
    • 远程节点发给宿主节点的消息: WtBack(K, D), WtBack2(P, K, D)
  • 响应宿主节点的请求
    在这里插入图片描述
    • 目录状态的转换
      在这里插入图片描述
计算机系统结构 实验三 Tomasulo算法 一、实验目的 (1)加深对指令级并行性及开发的理解。 (2)加深对Tomasulo算法和基于硬件的前瞻执行算法的理解。 (3)掌握Tomasulo算法在指令流出、执行、写结果各阶段的操作以及ROB在流出、执行、写结果和确认4个阶段所进行的操作。 (4)掌握采用了Tomasulo算法的浮点处理部件的结构。 (5)掌握保留站的结构和ROB缓冲器的结构。 (6)给定被执行代码片段,对于具体某个时钟周期,能够写出保留站、指令状态表以及浮点寄存器状态表内容的变化情况。 (7)给定被执行代码片段,对于具体 阅读详情

相关推荐

《简单模型机组成原理实验》计算机组成原理实验报告

置控制开关UA5 ……在监控指示灯显示【CtL2=_】状态下,输入2,显示【CtL2_2】,表示进入读机器指令状态,按步骤4的方法拨动CLR开关对地址寄存器和指令寄存器进行清零,然后按【确认】键,显示【PULSE】,连续按【单步】键,微地址显示灯从“000000”开始,然后按“010000”、 “010010” 、“010111”方式循环显示。在所有机器指令的执行过程中,“取指”和“译码”是必不可少的,而且微指令执行的操作也是相同的,这些微指令称为公用微指令,对应于图6-2中01、02、31地址的微指令。

m0_52381146的博客 1693

计算机体系结构实验 (实验报告)

目录

连理o的博客 1万+

《存储器扩展实验》计算机组成原理实验报告

将UX1、UX2的A7—A0均接至地址总线AD7—AD0,UX1的I/O7—I/O0接至数据总线的BD15—BD8,UX2的I/O7—I/O0接至数据总线的BD7—BD0;本次实验,我通过对6116芯片的外部特性的理解顺利的做出了存储器扩展实验,加深了我对存储器的理解,通过对电路原理的解读让我明白了此次实验的工作原理。通过本次实验,我明白在日常的学习生活中要并注重理论与实践的结合,提高自己的实际动手能力和独立思考能力,不断充实自己,更好的掌握知识。1、在实验三的基础上,掌握扩展存储器的方法。

m0_52381146的博客 1424

计算机系统基础实验 BombLab

本实验通过要求你使用课程所学知识拆除一个“binary bombs”来增强对程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。一个“binary bombs”(32位二进制炸弹,下文将简称为炸弹)是一个Linux可执行程序,包含了7个阶段(或层次、关卡)。炸弹运行的每个阶段要求你输入一个特定字符串,你的输入符合程序预期的输入,该阶段的炸弹就被拆除引信即解除了,否则炸弹“爆炸”打印输出 “BOOM!!!”。实验的目标是拆除尽可能多的炸弹层次。 每个炸弹阶段考察了机器级程序语言的一个不同方面,

凌阳的博客 6405

计算机组成原理-全加器实验——沐雨先生

计算机组成原理-全加器实验

Movrain的博客 3121

《存储器读写实验》计算机组成原理实验报告

同时,我知道计算机先把存储器地址写到地址总线上,再把数据放到数据总线上,这样就可以把数据写到正确的存储单元,计算机先把存储器地址写到地址总线上,存储器把数据放到数据总线上,这样计算机就可以从数据总线上读取数据了。通过本次试验掌握半导体静态随机存储器RAM的特性和使用方法,掌握地址和数据在计算机总线的传送关系,了解运算器和存储器如何协同工作,并且在实验中巩固理论知识,加强实验动手能力,获得学习的成果。学习静态RAM的存储方式,往RAM的任意地址里存放数据,然后读出并检查结果是否正确。RAM的特性和使用方法。

m0_52381146的博客 1271

计算机组成与体系结构的区别与联系,计算机组成与体系结构-20210327111418.doc-原创力文档...

《计算机组成与体系结构》实验课程编号: ZB10210 课程性质:必修 学时数: 90 学分数: 4.5开课学期: 第四学期 适用专业: 计算机科学与技术 先修课程:程序设计基础、计算机导论(一)基本要求⒈通过实验设计验证相关部件工作过程。⒉能够根据已学知识编写微程序进行综合设计开发。(二)主要仪器、设备及消耗材料⒈ 硬件要求计算机组成原理及系统结构实验箱ZY1...

weixin_39939530的博客 221

系统结构实践,mycache模拟器,mipssim模拟器,流水与流水线冲突,包含代码及报告

1、安装运行MyCache模拟器,熟悉各项功能设置。 2、运行样例程序,观察命中率变化,回顾所学知识,分析原因。尝试调整不同参数,分析命中率变化。 自主设计程序代码,能覆盖多种不同的情况变化对命中率的影响,如块大小,相联度,替换策略,预期策略,写策略等 1、安装运行MIPSsim模拟器,熟悉各项功能设置。 2、运行样例程序,仔细观察指令在流水线中的执行过程,查看寄存器、内存内容,并运用所学知识,分析产生延迟的原因。尝试调整不同参数,观察流水线各段的调度情况和内存与寄存器的变化情况。 自主设计程序代码,能覆盖多种不同的情况变化对流水线调度的影响,如读写数据指令,各种运算指令及所使用的寄存器等。 四、 实践涉及的相关技术 a) Cache的工作原理 b) Cache的容量、相联度、块大小、替换算法、预取算法、(不)按写分配等技术的原理 c) 流水线技术。 d) 流水线冲突及其解决方案。

计算机组装与维修预习,《计算机组装与维修》预习报告、实习报告撰写要求.docx...

《计算机组装与维修》预习报告、实习报告撰写要求本次《计算机组装与维修》课程的实验报告由两部分组成:预习报告和实习报告(总结)。其要求除了必须符合“《计算机组装与维修》课程考核标准及管理办法”外,强调要求预习报告要求每个参加实习的同学必须在实习前一周内统一交到计算中心。实验总结要求每个参加实习的同学必须在实习后一周内统一交到计算中心。实习报告必须用安徽工业大学实验专用纸撰写。预习报告或实习报告(总结...

weixin_42127748的博客 490

Fluent 2.5D动网格重构实战:涡旋压缩机复杂运动模拟指南

本文详细解析了Fluent 2.5D动网格重构技术在涡旋压缩机复杂运动模拟中的应用。通过对比传统方法,2.5D重构显著提升了计算效率和稳定性,特别适用于柱体类几何的网格处理。文章提供了从基础配置到参数优化的实战指南,包括关键设置步骤、常见问题排查及性能优化策略,帮助工程师有效解决动网格重构中的负体积和网格畸变问题。

weixin_28455801的博客 545

实战案例:用多智能体系统模拟房地产市场的架构设计

房地产市场是典型的复杂自适应系统:买方纠结“要不要上车”、卖方盘算“挂多少钱能快速成交”、中介忙着“撮合两边赚佣金”、政府琢磨“怎么调政策稳房价”——每一个参与者的微小决策,最终都会汇聚成“房价暴涨”“成交冰点”这样的宏观现象。传统的计量经济学模型(比如线性回归)假设“所有人都是理性人”,但现实中没人能算清所有变量——你可能因为“同事买了学区房”就跟风,也可能因为“怕失业”而放弃买房。这时候,多智能体系统(MAS)

移动开发前沿的博客 1119

java实验二预习报告

实验二面向对象(一)(预习报告) 姓名: XXX          班级: XXX          学号: XXX 一、实验目标   1. 能够根据需要解决的实际问题,利用Java语言实现类的定义;   2. 能够熟练运用构造方法来实例化对象以及调用对象的方法。 二、实验环境 IntelliJ IDEA U.

qq_37354060的博客 716

HEVC/VVC中R-Lambda码率控制算法原理

文章目录1. 比特分配1.1 GOP级比特分配1.2 帧级比特分配1.3 LCU级比特分配2. 码率控制2.1 λ的计算和更新2.2 参数QP的确定 VVC中码率控制算法沿用了HEVC中经典的R-λ码率控制模型,R-λ由中科大的李斌博士提出(详情参考JCTVC-K0103)。R-λ模型的基础为视频编码中 R(比特 bpp)和 D(失真 MSE)之间的双曲线模型,即 D(R)=CR−KD(R) = ...

Aidoneus_y 6132

计算机组成原理实验3——存储器实验报告

写数据时,先在数据开关上设置好要写的存储单元地址,并打开三态门74LS245,LDAR置1,发出一个P2脉冲,将地址送入6116,然后在数据开关上设置好要写的数据,确保三态门打开,设置6116为写操作,发出一个P1脉冲,即可将数据写入。综上所述,对于6116芯片,在CE=0、OE=0、WE=1的条件下,当输入的地址信息变化时,输出的数据不会相应变化,因为此时芯片处于写入模式。3.查阅6116芯片的数据手册,在CE=0、 OE=0、 WE=1 的条件下,当输入的地址信息变化时,输出的数据是否会相应变化?

Chenqin1879的博客 1万+

高通平台Android稳定性调试笔记:手把手教你用T32、Crash Utility分析Kernel Panic与RAM Dump

本文详细介绍了高通平台Android内核崩溃的分析方法,包括使用T32 Simulator和Crash Utility工具链解析Kernel Panic与RAM Dump。从环境配置、dump文件预处理到高级调试技巧,手把手教你如何定位和解决Android系统崩溃问题,特别适用于MSM/SA8155平台的开发者。

weixin_42543046的博客 523

TMS320F280049C 学习笔记21 交叉开关 Crossbar (X-BAR)

简单介绍了X-BAR。

whyorwhnt的专栏 2万+

实验预习报告计算机类怎么写,计算机网络实验预习报告1.doc

计算机网络实验预习报告1宁波工程学院电信学院计算机教研室实验报告课程名称: 网络管理实验 实验项目:网络传输介质的学习和双绞线的制作实验人员:班 级: 计科091-网络 指导教师:实验位置: 网络实验室第1组 实验日期:实验目的及要求(一)实验目的1、网络传输介质学习2、掌握双绞线的制作方法3、掌握相关工具的使用...

weixin_30152861的博客 397

【Vite+Vue3+TS】基于Vite+Vue3+TypeScript+ESLint+Prettier+Stylelint搭建项目(亲测超详细)

结合了很多项目和文章,总结一篇项目构建的笔记。 温馨提示:文章末尾记录了我在搭建项目过程中,遇到的一些问题和解决办法 ~

aDiaoYa_的博客 4224

在计算机控制实验中遇到的问题,大学化学实验报告_大学有机化学的实验报告的问题与讨论怎么写啊?...

大学化学实验报告中的结果与讨论一般该写些什么东西啊一般就写一些你书上的习题的解答就好的了,或者发表一下你对实验的看法,在哪个环节需要着重注意的地方,该反应由于哪些原因会失败跪求大学化学实验盐酸溶液配制和标定的化学实验报告实验五 盐酸标准溶液的配制和标定一、实验目的1. 掌握减量法准确称取基准物的方法。2. 掌握滴定操作并学会正确判断滴定终点的方法。 3. 学会配制和标定盐酸标准溶液的方法。二、实验...

weixin_36059241的博客 1805

【A2DP】规范精讲[1]: 深入解析A2DP协议的核心架构

在蓝牙技术发展的早期阶段,音频传输主要通过SCO(同步面向连接)链路实现,这种设计主要针对语音通信,音质有限且功能单一。随着人们对无线高质量音频需求的增长,​​Advanced Audio Distribution Profile (A2DP)​​ 应运而生,成为蓝牙音频传输的技术基石。

byte轻骑兵的技术小窝 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

第六周预习报告

让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材这份文档是关于Windows平台上的加密服务提供者(CSP)和CryptoAPI的详细介绍和实战指南。CSP是Windows平台上执行加密运算的独立模块,由动态链接库(DLL)和签名文件组成。签名文件确保CSP经过认证,防止攻击者冒充。Microsoft操作系统中捆绑了RSA Base Provider作为CSP,支持RSA公钥加密算法。

m0_74101522的博客 1039

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

大学学计算机需不需要提前预习,大学怎么预习啊?

大学怎么预习啊?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!大学怎么预习啊?, 大学环境工程预习不需要预习!高中毕业以后玩好。乐好就可以!而且大学每学期学的都不一样,你想看的话,可以在网上查你的哪个专业需要学以什么科目,然后你可以去书店看看!如果你真的想学点什么,可以学车,背背单词,准备英语四级考试,学学计算机,准备...

weixin_42523985的博客 1091

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数据结构实验报告预习

数据结构实验报告预习

zwj_000的博客 501

计算机工作原理预习报告,计算机组成原理实验报告册.PDF

计算机组成原理实验报告册计算机组成原理实验报告册专业班级__________学 号__________姓 名__________指导教师__________计算机科学与通信工程学院二 O 一五年一月计算机组成原理实验说明实验目的《计算机组成原理》实验课设计了十个实验,基本涵盖了计算机组成原理课程的重点内容,实验电路的设计与教材保持一致,实验电路在 ...

weixin_32457141的博客 339

第四周预习报告

让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材一第五章主要介绍了C语言中的结构体(structs)、联合体(unions)和位字段(bitfields),以及如何使用这些数据结构来创建复杂的数据类型。以下是本章的核心内容概述:结构体(structs)结构体允许你将不同的数据类型组合成一个自定义的数据类型。结构体字段可以通过点操作符()访问。结构体可以嵌套,即一个结构体内部可以包含另一个结构体。使用typedef。

m0_74101522的博客 1050
上一篇: MySQL, Navicat
下一篇: 计算机体系结构实验 (实验报告)
连理o
博客等级 码龄8年 1190粉丝 488原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值