深入理解计算机系统(二)

  • 处理器体系结构👈
  • 优化程序性能👈
  • 存储器层次结构👈

全书包括如下内容:

  • 计算机系统漫游
  • 程序结构和执行
    • 信息的表示和处理
    • 程序的机器级表示
    • 处理器体系结构👈
    • 优化程序性能👈
    • 存储器层次结构👈
  • 在系统上运行程序
    • 链接
    • 异常控制流
    • 虚拟存储器
  • 程序间的交互和通信
    • 系统级IO
    • 网络编程
    • 并发编程

处理器体系结构

  1. ISA:指令集体系结构,指一个处理器支持的指令和指令的字节级编码
  2. RISC和CISC:
    • RISC:精简指令集计算机,指令少,编码长度固定,只能通过load/store读写存储器,无条件码
    • CISC:复杂指令集计算机(早期),指令多,编码长度不固定,可操作存储器,有条件码
  3. 逻辑设计和硬件控制语言HCL
  4. Y86(x86)的顺序实现
    • 取指
    • 译码
    • 执行
    • 访存
    • 写回
    • 更新PC指向下一条指令

优化程序性能

  1. 优化编译器的能力和局限性:存储器别名使用,是影响安全优化的重要原因,优化编译器必须假设指针可能指向同一个地址。
  2. 表示程序性能:CPE,每元素的周期数,-O1可以显著提升GCC对程序的优化
  3. 消除循环的低效率:将时间复杂度高的命令或者函数移出循环体,例如strlen()函数,或者for循环中不要调用strlen()/size()等函数。
  4. 减少过程调用:减少循环体中的函数调用
  5. 消除不必要的存储器引用:例如循环内用指针做运算*dest = *dest - c,这其中可以用临时变量替换*dest,在循环结束后赋值给指针指向的内容。
  6. 表示相对性能:T(old) / T(new) * 100%

存储器层次结构