美文网首页
P9 高级CPU设计-Advanced CPU Design

P9 高级CPU设计-Advanced CPU Design

作者: 参宿上吖 | 来源:发表于2019-07-15 21:45 被阅读0次

    传送门:P9 高级CPU设计-Advanced CPU Design

            早期计算机通过减少晶体管的切换时间提高运行速度。

            过去的除法运算是通过若干个减法周期而实现的,现代ALU已存在真正意义上的除法功能等高级运算指令,因此,ALU甚至CPU的复杂度在不断上升,计算机发展史的复杂度与速度的平衡司空见惯。


    CPU与RAM信息交互速度不一致

            超高的时钟速度赋予了CPU更快的数据处理速度,但计算机所有操作的数据都源于RAM,CPU与RAM之间的数据交互速度小于cpu的数据处理速度,延迟的产生会造成一定问题。

    交互桥梁 总线

            解决延迟(两种方法)

            1.“缓存”:

    CACHE 缓存

            数据按批次传递到缓存中,CPU从缓存读取或写入数据。

            CACHE HIT 缓存命中:CPU想要的数据已经存在缓存中。

            CACHE MISS 缓存未命中:CPU想要的数据未存在缓存中。

            DIRTY BIT 脏位:缓存会在RAM结构的基础上在每一个地址处设立一个特殊标志,即脏位。CPU改写数据只在缓存中改写,当改写成功并与RAM对应地址的数据不同,脏位标志则会变“脏”,当缓存和RAM进行同步数据时(清理缓存腾出的空间),会先检查脏位,如果是“脏”的,在加载新内容之前,会把数据写回RAM。

            2.“指令流水线”:

            原始的CPU工作流程都是一个一个周期完成,也就是非并行的工作模式。

    原始CPU工作流程

            现代的CPU则采用并行处理指令的模式,增加了一个时钟周期完成的任务数目。

    现代CPU工作流程

            “指令流水线”存在的问题

            1.假如B指令的执行需要的数据,必须是上一步指令A执行完后产生的数据,则此时的CPU不能采用“指令流水线的”工作模式。因此流水线处理器的使用前提是先弄清数据的依赖性,在必要时刻停止该工作模式。

            乱序执行:针对这种问题,高端CPU会更进一步动态排序有依赖关系的指令,最小化流水线的停工时间。

            2.条件跳转:跳转指令会改变程序的执行流。简单的流水线处理器,看到JUMP指令会先停一会,等待条件值确定下来,再判断是否跳转,继续流水线的模式。同样,这也会产生延迟,为了消灭延迟,高级cpu采用推测执行。

            推测执行:CPU自行预测JUMP条件值的结果,并预先其结果对应的后续指令放入流水线,当JUMP的真实结果出来后,与CPU的预测值进行核对,如果猜对了,则马上执行已经塞满正确指令的流水线;如果猜错了,就要清空流水线。

            分支预测:为了尽可能减少清空流水线的次数,提高CPU的预测正确率,CPU厂商开发的一种复杂的方法。(现代CPU的正确率超过90%)


    多线程处理器

            多线程其实就是单核多线程并行工作。

    多线程并行工作模式

    多核处理器

            之前提及到的都是基于一个指令流,多核其实就是在一个CPU芯片里,有多个独立处理单元,基于多个指令流的工作模式。

    四核处理器神威

    神威·太湖之光超级计算机 

    神威·太湖之光

            世界最快的超级计算机,含40960个CPU,每个CPU有256个核心,总共超过1千万个核心,每个核心的频率是1.45GHz,每秒可以执行9.3亿亿次浮点数运算。

    相关文章

      网友评论

          本文标题:P9 高级CPU设计-Advanced CPU Design

          本文链接:https://www.haomeiwen.com/subject/usbokctx.html