草庐IT

【《硬件架构的艺术》读书笔记】06 流水线的艺术(2)

6.6DLX指令集的实现这节开始将指令集相关内容,没学过相关知识,看不太懂,就快速浏览一下好了。DLX指令集包括五个部分:1、指令获取(IF)IRNPC从存储器中获取指令(PC为指针)并放入指令寄存器(IR),IR保存下个时钟周期所需指令,PC值递增4,指向下个指令地址。2、指令解码/寄存器获取(ID)   指令格式是固定的,所以读寄存器和解码可以同时进行。这称为固定域译码。3、执行/有效地址周期(EX)根据指令类型执行下面4个功能之一:a)访问存储器   b)寄存器——寄存器ALU指令   c)寄存器——立即数ALU指令d)分支指令   4、访问存储器/分支完成周期(MEM)a)访问寄存器 

【《硬件架构的艺术》读书笔记】06 流水线的艺术(2)

6.6DLX指令集的实现这节开始将指令集相关内容,没学过相关知识,看不太懂,就快速浏览一下好了。DLX指令集包括五个部分:1、指令获取(IF)IRNPC从存储器中获取指令(PC为指针)并放入指令寄存器(IR),IR保存下个时钟周期所需指令,PC值递增4,指向下个指令地址。2、指令解码/寄存器获取(ID)   指令格式是固定的,所以读寄存器和解码可以同时进行。这称为固定域译码。3、执行/有效地址周期(EX)根据指令类型执行下面4个功能之一:a)访问存储器   b)寄存器——寄存器ALU指令   c)寄存器——立即数ALU指令d)分支指令   4、访问存储器/分支完成周期(MEM)a)访问寄存器 

【《硬件架构的艺术》读书笔记】06 流水线的艺术(3)

6.9流水线冒险冒险会干扰流水线并阻止下一条指令在目标时钟周期内的执行。冒险会降低流水线在理想情况下所能带来的速度提升。冒险分类:1、结构冒险:资源冲突导致硬件无法支持所有可能的指令组合同时执行。2、数据冒险:指令执行需要之前指令计算结果,而这个结果还在流水线中没计算出来。3、控制冒险:分支的流水线的其他指令改变程序计数器的值。通用方法:停止流水线直至风险消除,在流水线中插入多个“气泡”。6.9.1结构冒险  如图,MEM在一个周期内被两个指令使用,产生冲突。解决方法:如图,停一个周期,待对MEM的冲突解除后再恢复流水线。另一种方法:IF和MEM阶段使用不同的存储器来避免同时访问同一块存储器。

【《硬件架构的艺术》读书笔记】06 流水线的艺术(3)

6.9流水线冒险冒险会干扰流水线并阻止下一条指令在目标时钟周期内的执行。冒险会降低流水线在理想情况下所能带来的速度提升。冒险分类:1、结构冒险:资源冲突导致硬件无法支持所有可能的指令组合同时执行。2、数据冒险:指令执行需要之前指令计算结果,而这个结果还在流水线中没计算出来。3、控制冒险:分支的流水线的其他指令改变程序计数器的值。通用方法:停止流水线直至风险消除,在流水线中插入多个“气泡”。6.9.1结构冒险  如图,MEM在一个周期内被两个指令使用,产生冲突。解决方法:如图,停一个周期,待对MEM的冲突解除后再恢复流水线。另一种方法:IF和MEM阶段使用不同的存储器来避免同时访问同一块存储器。

【《硬件架构的艺术》读书笔记】06 流水线的艺术(1)

6.1介绍流水线通过在较长的组合逻辑路径中插入寄存器降低了组合逻辑延迟,增加了时钟频率并提高了性能。 图中分别为插入流水线前后的逻辑。长路径插入寄存器后最大时钟频率明显增加,但是也带来了额外的开销,并且增加了系统延迟。6.2影响最大时钟频率的因素 图中电路若TCQA、TSB、THB均为0,Fmax就是组合逻辑最大路径延迟的倒数。 6.2.1时钟偏移(Skew)如图6.3,时钟到达B的时间可能相对于寄存器到达A的时间有一些延迟。这种传播延迟的细小差别,可能对整个系统时序产生无法接受的影响,这种现象也叫做“时钟偏移”(Skew)。这里感觉说反了。。时钟延迟小于数据路径延迟,才是负时钟偏移。这时,时

【《硬件架构的艺术》读书笔记】06 流水线的艺术(1)

6.1介绍流水线通过在较长的组合逻辑路径中插入寄存器降低了组合逻辑延迟,增加了时钟频率并提高了性能。 图中分别为插入流水线前后的逻辑。长路径插入寄存器后最大时钟频率明显增加,但是也带来了额外的开销,并且增加了系统延迟。6.2影响最大时钟频率的因素 图中电路若TCQA、TSB、THB均为0,Fmax就是组合逻辑最大路径延迟的倒数。 6.2.1时钟偏移(Skew)如图6.3,时钟到达B的时间可能相对于寄存器到达A的时间有一些延迟。这种传播延迟的细小差别,可能对整个系统时序产生无法接受的影响,这种现象也叫做“时钟偏移”(Skew)。这里感觉说反了。。时钟延迟小于数据路径延迟,才是负时钟偏移。这时,时

06yarn简介

YARN简介一、YARN是什么YARN不是facebook的那个yarn,它从Hadoop2引入,最初目的是改善MapReduce的实现,但是因为具备足够通用性,同样也可以支持其他的分布式计算模式。YARN全称是YetAnotherResourceNegotiator,翻译过来是另一种资源协调者,名字听起来有点奇怪,但是不难看出它的用途是管理和调度Hadoop中的资源,具体来说是计算资源。YARN和DHFS一样也是主从架构,它有两种服务,分为resourcemanager和nodemanager。resourcemanager负责管理nodemanager和applicationmaster进

06yarn简介

YARN简介一、YARN是什么YARN不是facebook的那个yarn,它从Hadoop2引入,最初目的是改善MapReduce的实现,但是因为具备足够通用性,同样也可以支持其他的分布式计算模式。YARN全称是YetAnotherResourceNegotiator,翻译过来是另一种资源协调者,名字听起来有点奇怪,但是不难看出它的用途是管理和调度Hadoop中的资源,具体来说是计算资源。YARN和DHFS一样也是主从架构,它有两种服务,分为resourcemanager和nodemanager。resourcemanager负责管理nodemanager和applicationmaster进

读编程与类型系统笔记06_函数类型的高级应用

1. 装饰器模式1.1. 扩展对象的行为,而不必修改对象的类1.2. 装饰的对象可以执行其原始实现没有提供的功能1.3. 优势1.3.1. 支持单一职责原则1.3.1.1. 每个类只应该承担一种职责1.4. 经典实现1.4.1. 一个IComponent接口1.4.2. 一个具体实现,即ConcreteComponent1.4.3. 使用额外行为来增强IComponent的Decorator1.4.3.1. 例如:添加单例行为1.4.4. 特点1.4.4.1. 一个接口1.4.4.1.1. 接口声明了多个方法,就无法使用一个函数类型来替代接口1.4.4.2. 两个类1.4.4.3. 每个类一个

读编程与类型系统笔记06_函数类型的高级应用

1. 装饰器模式1.1. 扩展对象的行为,而不必修改对象的类1.2. 装饰的对象可以执行其原始实现没有提供的功能1.3. 优势1.3.1. 支持单一职责原则1.3.1.1. 每个类只应该承担一种职责1.4. 经典实现1.4.1. 一个IComponent接口1.4.2. 一个具体实现,即ConcreteComponent1.4.3. 使用额外行为来增强IComponent的Decorator1.4.3.1. 例如:添加单例行为1.4.4. 特点1.4.4.1. 一个接口1.4.4.1.1. 接口声明了多个方法,就无法使用一个函数类型来替代接口1.4.4.2. 两个类1.4.4.3. 每个类一个