26~29章

26-Superscalar和VLIW:如何让CPU的吞吐率超过1h1>

程序的CPU执行时间 = 指令数 × CPI × Clock Cycle Time

IPC(Instruction Per Clock)一 个时钟周期里面能够执行的指令数,代表了CPU的吞吐率。

  • 情景:IPC在流水线架构的CPU下也只能到1。

  • 问题:如何提高IPCp>

  • 解决:超标量

  • 解决:超长指令集合

超标量CPU

总结延伸

这一讲,我们讲完了超线程和SIMD这两个CPU的“并行计算”方案。超线程,其实是一个“线程级并 行”的解决方案。它通过让一个物理CPU核心,“装作”两个逻辑层面的CPU核心,使得CPU可以同时运行 两个不同线程的指令。虽然,这样的运行仍然有着种种的限制,很多场景下超线程并不一定能带来CPU的性 能提升。但是Intel通过超线程,让使用者有了“占到便宜”的感觉。同样的4核心的CPU,在有些情况下能 够发挥出8核心CPU的作用。而超线程在今天,也已经成为Intel CPU的标配了。 而SIMD技术,则是一种“指令级并行”的加速方案,或者我们可以说,它是一种“数据并行”的加速方 案。在处理向量计算的情况下,同一个向量的不同维度之间的计算是相互独立的。而我们的CPU里的寄存 器,又能放得下多条数据。于是,我们可以一次性取出多条数据,交给CPU并行计算。

28-异常和中断:程序出错了怎么办h1>

我们的程序都是自动运行且正常运行的。自动运行的意思是说,我们的程序和指令都是一条 条顺序执行,你不需要通过键盘或者 络给这个程序任何输入。正常运行是说,我们的程序都是能够正常执 行下去的,没有遇到计算溢出之类的程序错误。

异常:硬件、系统和应用的组合拳

异常其实是一个硬件和软件组合到一起的处理过程。异常的发生和捕捉,在硬件层面完成。异常的处理,由软件来完成。

计算机会为每一种可能会发生的异常,分配一个异常代码。I/O发出的信 的异常代码,是由操作系统来分配的,也就是由软件来设定的。而像加法 溢出这样的异常代码,则是由CPU预先分配好的,也就是由硬件来分配的。

异常代码(Exception Number)也叫中断向量(Interrupt Vector)。

异常发生的时候,通常是CPU检测到了一个特殊的信 。

拿到异常代码之后,CPU就会触发异常处理的流程。计算机在内存里,会保留一个异常表。存放的是不同的异常代码对应的异常处理程序 (Exception Handler)所在的地址。

异常表(Exception Table)也叫中断向量表(Interrupt Vector Table)

这个异常表有点儿像我们在第10讲里讲的GOT表,

CPU在拿到了异常码之后,保存上下文,然后根据异常码查询,找到对应的异常处理程序,最后把后续指令执行的指挥权,交给这个异常处理程序。

异常的分类:中断、陷阱、故障和中止

  • 问题:指令多的缺点
  • 缺点:
    • 硬件层面:复杂的指令导致复杂的CPU电路。复杂电路增加散热和功耗的难度
    • 软件层面:支持更多的复杂指令,编译器的优化就更难

在RISC架构里面, cpu腾出空间给寄存器。 因为RISC完成同样的功能,执行的指令数量要比CISC多,所以,如果需要反复从内存里面读取指令或 者数据到寄存器里来 除了寄存器这样的存储空间,RISC的CPU也可以把更多的晶体管,用来实现更好的分支预测等相关功能,进 一步去提升CPU实际的执行效率。

程序的CPU执行时间=指令数 × CPI × Clock Cycle Time

CISC的架构,优化指令数。而RISC的架构,优化CPI。

Intel的进化:微指令架构的出现

  • 问题:怎么才能有向前兼容性的同时改进CISC
  • 解决:微指令(Micro-Instructions/Micro-Ops)架 构
    • 过程: 指令译码器把一条机器码翻译多条微指令,放入缓冲区,再发给超标量乱序执行的流水线架构里
  • 问题:指令译码器变得更复杂。导致更复杂的电路和更长的译码时间
  • 解决:因为CPU执行的指令有强局部性所以使用缓存
    • 实现:Intel就在CPU里面加了一层L0 Cache。这个Cache保存的就是指令译码器把CISC的指令“翻译”成 RISC的微指令的结果。
  • 结果:即使融合了大量RISC类型的处理器设计。由于Intel本身在CPU层面做的大量优化,比如乱序执行、分支预 测等相关工作,功耗还是较大

1629834891441

ARM和RISC-V:CPU的现在与未来

  • 问题:ARM相比于x86的优点

  • 答案:

  • 功耗优先的设计。 在移动设备上,功耗指标很重要

    ARM的CPU,主频,晶体管,高速缓存,乱序执行都弱

  • 低价。ARM只是进行CPU设计,没有垄断CPU的生产和制造

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月1日
下一篇 2021年8月1日

相关推荐