Lec1 绪论
阅读信息
964 字 4 分钟 本页总访问量 加载中...
计算机设计导论
计算机体系结构研究的问题是,如何用电子硬件高效地执行存储在内存中的程序。
计算机架构:
- 冯诺依曼架构:数据和程序都存放在内存中。CPU 从内存取指令和数据,执行运算,然后把结果写回内存。
- 哈佛架构:指令存储和数据存储分离,通常总线也分离,可并行取指和访存
计算机的基本组成:输入输出设备、存储器、运算器、控制器,分为datapath和control path。
计算系统的分类:
- 按用途分类:桌面计算机(PC)、服务器、嵌入式计算机(国内和PC近似)、移动设备、超算
- Flynn分类法:按指令流和数据流的数量,分为SISD、SIMD、MISD、MIMD四类,其中S为single、M为multiple。常见为SIMD(一条指令同时处理多条数据)和MIMD(多个处理器各自执行不同指令、处理不同数据)。
技术发展趋势
三大技术发展趋势:
- 性能趋势:CPU性能快速提升(摩尔定律),频率提高,但单核性能提升变慢
- 功耗趋势:频率提高导致功耗急剧增加,造成“功耗墙”
- 成本发展趋势:之硬件成本下降、软件成本上升,导致很多功能基于软件实现。未来可能出现AI专用硬件、硬件成本上升。
现在,从指令级并行和提高频率转向线程级并行、数据级并行。
性能基础
Q:怎么定义计算机性能?
两个核心概念:
- 响应时间(latency/response time):从开始到完成一个任务所需要的时间,考察单个任务延迟。
- 吞吐率(throughput):单位时间内完成的任务数量,考察系统整体并发能力。
系统性能定义为执行时间的倒数。
Q:怎么定义执行时间?
执行时间(execution time/elapsed time)为程序从开始到结束的真实时间,包括CPU计算时间、I/O时间、操作系统调度、等待时间,其中主要为CPU时间。
CPU时间为两种解释:
- 用户CPU时间:执行程序代码本身的时间,只取决于程序算法
- 系统CPU时间:操作系统执行任务的总时间,由程序算法、编译器、处理器、I/O系统共同决定。
CA的目标为减少系统的CPU执行时间。
CPU性能定量分析方法
单位换算:(从小到大)KB、MB、TB、GB、PB
Q:怎么计算CPU执行时间?
- 计算CPI(cycles per instruction):
- 计算clock cycles:
- 计算CPU time:
Q:怎么计算性能提升的比例?
- Amdahl's Law:
- 计算speedup:
ISA指令集结构
Q:设计ISA要考虑什么?
ISA包括指令、寄存器、数据类型、寻址方式、内存模型等。
要考虑:操作数放在哪里,一条指令有几个操作数,怎么找到操作数,支持哪些数据类型,支持哪些操作
三大ISA架构
按照指令存储的位置,ISA分为stack, accumulator, register三种架构。
栈结构(stack architecture)
特点:操作数时钟在栈顶,没有显示操作数。需要先push入栈,取栈顶数计算,计算结果作为新的数存放在栈顶;如计算结果要另外存储,pop成新的变量。
- 优点:指令简单,编码短
- 缺点:频繁访存下慢,难以优化。几乎不用。
累加器结构(accumulator architecture)
特点:有一个隐式寄存器(累加器)ACC和一个显示操作数。运算结果直接放到ACC参与后续运算,ACC既是结果也是操作数。如要另外存储ACC结果,用store存储在新寄存器中。
- 优点:比栈更高效,指令较简单
- 缺点:单寄存器导致并行性差。在历史早期CPU中常见。
寄存器架构(register architecture)
特点:使用通用寄存器(GPR),显式指定操作数。现代CPU基本都使用这种架构。
按照访存指令的种类,分成两种子类型:
- Register-memory:所有指令都能访存
- Load-store(也称register-register):只有load/store能访存