浮点加法不满足结合律:

适用于整型数据类型的并行执行策略并不适用于浮点数据类型 ,原因如上↑
流水线是一种能使多条指令重叠执行的实现技术

流水线技术通过提高指令吞吐率来提高性能,而不是减少单个指令的执行时间

流水线技术挖掘了指令间潜在的并行性,这种并行性被称为指令级并行
提高指令级并行度主要有两种方法:
增加流水线的级数
增加流水线内部的功能部件数量,这样可以每周期发出多条指令,这种技术被称为多发射
实现多发射处理器主要有两种方式:
指令发射与否的判断是在编译时完成的,称为静态多发射
如果指令发射与否的判断是在动态执行过程中由硬件完成的,称为动态多发射
寄存器重命名,寄存器重命名的目标是,除了数据相关,消除指令间存在的其他数据相关。例如,ld x30,0(x20) ,add x31, x31,x21, sd x31, 8(x20) ,这样的指令,除了都是用x31,这些指令实际上是相互独立的。这种情况称为反相关,或名字相关
反相关:也成为名字相关,由于名字复用被迫导致的顺序排列。这并不是一种指令间真是的数据相关
动态多发射器也称为超标量处理器
动态调度流水线:由硬件选择后续执行的指令,并对指令进行重排来避免流水线的停顿。在这样的处理器中,流水线被分为三个主要部分:取指,发射单元,多功能部件,以及提交单元


时间局部性 如果某个数据项被访问,那么在不久的将来它可能再次被访问
空间局部性 如果某个数据项被访问,与它地址相邻的数据项可能很快也会被访问

靠近处理器那一层中的数据是那些较远层次中数据的子集,所有的数据都被存在最远的那一层
在相邻两层之间进行信息交换的最小单元称为块 或 行
写穿透或写直达:一种写策略。写操作总是同时更新cache和下一级存储,保证两者之间的数据一致
写返回:一种写策略。处理写操作时,只更新cache中对应数据块的数值。当该数据块被替换时,再将更新后的数据块写入下一级存储
直接映射:一个数据块在cache 中只有一个对应位置
全相联:数据块可以存放在 cache 中的任意位置,在全相联cache中查找给定的数据块,所有的表项必须进行对比。
组相联:每个数据块在cache 中存放的位置数量具有固定值(至少为2),每个数据块有 n 个位置可放的组相联 cache 称为 n 路组相联 cache。在一个n路组相联cache中,包含有若干组,每一组包含有n个数据块。



增加可靠性的最好办法是冗余

提高MTTF的三种方法:


支持虚拟机的软件称为虚拟机监视器或管理程序,底层硬件平台被称为主机,它的资源被客户端虚拟机共享。
虚拟机监视器为客户端软件提供软件接口,隔离每个客户端的状态,并且必须保护自己免受客户端软件(包括客户端操作系统)的侵害。
定性的需求:
为了“虚拟化”处理器,VMM必须空值几乎所有事情:特权态的访问,I/O,例外和中断
主存可以为通常由磁盘实现的辅助存储充当cache,这种技术被称为虚拟存储
在虚拟存储中,地址被划分为虚拟页号和页内偏移
由于我们无法提前获知存储器中的某一页什么时候将被替换出去,因此操作系统通常会在创建进程时为所有页面在闪存或磁盘上创建空间。这个空间区被称为交换区(为进程的全部虚拟地址空间所预留的磁盘空间),那时,它也会创建一个数据结构来记录每个虚拟页在磁盘上的存储位置


块表(TLB,用于记录最近使用地址的映射信息的cache,从而避免每次都要访问页表)



虚拟存储最重要的功能就是允许多个进程共享一个主存,同时为这些进程和操作系统提供内存保护。保护机制必须明确:金国多个进程共享相同的主存,但无论有意或无意,一个恶意进程不能写另一个用户进程或操作系统的地址空间


上下文切换:为允许另一个不同的进程使用处理器,改变处理器内部的状态,并保存当前进程返回时需要的状态
TLB失效表明两种可能之一:
处理TLB失效或缺页失效需要使用例外机制来终端活跃进程,将控制转移到操作系统,然后再恢复执行被中断的进程
一旦操作系统知道引起缺页失效的虚拟地址,它必须完成以下三个步骤:

虚拟存储是在主存和辅助存储之间进行数据缓存管理的一级存储层次。虚拟存储允许单个程序将其地址空间扩展到超出主存的限制。虚拟存储支持以受保护的方式在多个同时活跃的进程之间共享内存

块可以被放在何处

如何找到块

在存储层次结构中,直接映射,组相联或全相联映射的选择取绝于失效代价于相联度实现代价之间的权衡,包括时间和额外硬件开销
当cache发生失效时替换哪一块
写操作如何实现:
写返回的优点:
写穿透的优点:

3C:一种理解存储层次结构的直观模型


有限状态自动机:一个包含了一组输入/输出,状态转换函数(将当前状态和输入映射为新状态)和一个输出函数(将当前状态和输入映射为断言输出)的顺序逻辑函数
下一个状态函数:一个组合函数,给定一个输入和当前状态,可以得出有限状态自动机的下一个状态




