网站设计经典案例欣赏,怎么做app软件开发,网站如何做交互,企业网站推广的渠道计算机组成原理 数据冒险、控制冒险、结构冒险 对所有用户#xff08;所有程序员#xff09;可见#xff1a;PSW、PC、通用寄存器
PSW#xff08;条件转移需要用到#xff0c;程序员使用CMP指令的时候也需要用到所以是对用户可见#xff09;PC#xff08;跳转指令需要…计算机组成原理 数据冒险、控制冒险、结构冒险 对所有用户所有程序员可见PSW、PC、通用寄存器
PSW条件转移需要用到程序员使用CMP指令的时候也需要用到所以是对用户可见PC跳转指令需要使用PCn 所以对用户可见通用寄存器程序员写指令可以使用到通用寄存器R 通用寄存器包括(数据寄存器、地址指针寄存器、变址寄存器)
对所有用户所有程序员透明MARMDRIRCache, 微程序结构和功能控制存储器锁存器/暂存器
(这些都是辅助CPU工作所以是透明的)微指令寄存器属于微程序控制器的组成部分它是硬件设计者的任务。控制存储器存放微指令即控制信号锁存器/暂存器流水线间存储数据MAR存储器地址寄存器MDR存储器数据寄存器
1.结构冒险 结构冒险结构冲突资源冲突 load指令是取数指令Store指令是存数指令
运算类指令
算术运算指令
加法指令 用于实现两个操作数的相加操作。例如在 RISC-V 指令集中有add指令它可以将两个寄存器中的值相加并将结果存放在一个寄存器中。格式可能为add rd, rs1, rs2其中rd是目的寄存器用于存放结果rs1和rs2是源寄存器提供操作数。 减法指令 实现两个操作数的相减操作。如sub指令它从rs1寄存器的值中减去rs2寄存器的值并将结果存放在rd寄存器中。 乘法指令 完成两个操作数的乘法运算。不同的指令集可能有不同的乘法指令形式。例如有些指令集可能有mul指令用于无符号数乘法imul指令用于有符号数乘法等。 除法指令 用于执行除法操作。像div指令用于无符号数除法idiv指令用于有符号数除法。在执行除法指令时通常会涉及到商和余数的处理。
逻辑运算指令
与指令 实现按位与操作。例如and指令它对rs1和rs2寄存器中的对应位进行与操作并将结果存放在rd寄存器中。 或指令 执行按位或操作。如or指令将rs1和rs2寄存器中的对应位进行或操作结果存于rd寄存器。 非指令 也叫取反指令对一个操作数的每一位进行取反操作。在一些指令集中可能有not指令来实现这个功能。 异或指令 进行按位异或操作。例如xor指令对rs1和rs2寄存器中的对应位进行异或操作结果放在rd寄存器中。
移位运算指令
逻辑左移指令 将一个操作数的所有位向左移动指定的位数右边空出的位用 0 填充。例如shl指令。 逻辑右移指令 把一个操作数的所有位向右移动指定的位数左边空出的位用 0 填充。比如shr指令。 算术右移指令 对于有符号数将其所有位向右移动指定的位数左边空出的位用符号位填充。通常有sar指令来实现。
2.数据冒险的分析和处理 3.控制冒险的分析和处理
注意修改PC只在M阶段 4.采用转发技术 Load-useload指令在M访存阶段才会产生结果故采用转发旁路已经不能解决数据冒险。