本章实质上是讲CPU的微结构,这本书的图片也是b站上重庆大学CPU教程中所采用的,所以这章的实质内容已经学习过,此处系统得复习。但是关于exception的处理是我之前没接触到的,值得一看。

    j指令跳转新PC地址的高4位取决于原PC,在龙芯杯个人赛中因为监控程序(pc复位到0x8000_0000)的原因,而且程序较短,实际上只需要将高4位置0,即忽略pc的高位(默认为0)。

    Strictly speaking, only the register designations (RsE, RtE, and RdE) and the control signals that might update memory or architectural state (RegWrite, MemWrite, and Branch) need to be cleared; as long as these signals are cleared, the bubble can contain random data that has no effect.
    只需复位关键信号(特别是写入信号和分支跳转信号),利用流水线排气泡复位。

    prediction在MIPS有较重要的地位。也是一种优化微加工的方式。
    image.png流水线结构周期的决定因素

    Q1为什么用FSM写controller
    A1controller可以组合逻辑写,也可以用状态机写
    使用状态机可能出于为了方便表达,方便讲解controller中的指令变化。在我看来,控制器应该尽可能使用组合逻辑表达。尽可能让时序只存在regfile和流水线。

    Q2更优的微结构
    A2本书中给出了9种优化方式,有助于深入理解微加构。
    1-深度流水线,现在10-20级已经普遍。最大级数由hazard竞争冒险、sequencing overhead时序预测(也可能是d触发器的延时)、cost花销来限制。
    90年代到00年代初,微处理器的销售主要取决于频率(频率是卖点),所以刺激深度流水线的发展。如今,功耗变得重要,流水线深度正在减少。
    2-分支预测。提高预测准确度。
    3-超标量处理器。双发。
    4-乱序处理。所以如今有两种优化方式,双发顺序和双发乱序。
    5-寄存器重命名。在乱序处理中,哪怕add(前一条指令)的结果可能被舍弃,为了防止忽略例化(exception),也要进行add计算。
    6-单指令多数据SMID。可以理解为公交车,数据在站台排队,等一堆数据上车后再开车。SMID对于64位处理器更有帮助。
    包括packed arithmetic。
    7-多线程。因为取指令的ILP上不去。thread level parallelism (TLP)
    所以使用多线程提高了整体的吞吐量。实现多线程也相对便宜,因为它只复制PC和寄存器堆,而不复制执行单元和内存。
    8-同构多处理器Homogeneous Multiprocessors
    A multiprocessor system consists of multiple processors and a method for communication between the processors. A common form of multiprocessing in computer systems is homogeneous multiprocessing, also called symmetric multiprocessing (SMP), in which two or more identical processors share a single main memory.
    目的是让多个处理器共同解决一个大问题,难在通信。
    最后,同质系统和异质系统都可能有各自的位置。同构多处理器非常适合具有大量线程级并行性的大型数据中心。异构系统适用于工作负载变化较大且并行性有限的情况。
    9-异构多处理器
    相较于同构,异构对核进行优化和裁剪,仅保留关键重要的部分。可以节省功耗。

    partition-隔扇