# 计算机体系结构
本课程内容和要求
就从我按下键盘翻一页幻灯片讲起
- 为什么我按一下键盘能够翻一页幻灯片?
- 从按一下键盘到翻一页幻灯片经过了什么过程?包括应用程序、 操作系统、硬件系统、处理器、以及晶体管?
- 程序的运行和晶片中的电子的流动之间的关系?
- 在上述过程中涉及的重要量化指标(性能、功耗、成本)的关系?
这些是本课程希望回答的问题
- 知其然,还要知其所以然
硕士《计算机体系结构》:主要介绍CPU微结构 • 包括指令系统结构、二进制和逻辑电路、静态流水线、动态流水线 、多发射流水线、运算部件、转移猜测、高速缓存、TLB、多核对流水线的影响等
平时作业:33分(共11次作业,每次3分) 期末考试:67分 作业:一周内上交为有效,不得打印 考试方式:课堂闭卷,70%题目是作业题 • 辅导老师会定期讲解作业答案
# 1 引言

# 1.1 计算机体系结构的研究内容
# 1.1.1 什么是计算机
现代信息系统、手机、武器装备等
# 1.1.2 为什么我按一下键盘能够翻一页幻灯片
以龙芯处理器为例
- 键盘产生一个信号送到桥片(南桥、北桥)
- 桥片通过HT总线向处理器发出外部中断信号
- 外部中断信号传到控制寄存器模块与Cause的屏蔽位相与
- 如果没有被屏蔽,再传到寄存器重命名模块并附在四条指令的第一条中送到ROB模块; 由于该指令发生了例外,不会送到功能部件执行
- 当该指令成为ROB的第一条指令被提交时向所有模块发出取消信号,取消该指令后面的 所有指令,在EPC等寄存器中保存例外现场,同时在控制寄存器Status中把系统状态置为核心态。
- 向取指模块发出中断信号,取指模块根据中断类型到0x80000180取指
以龙芯处理器+Linux操作系统为例
- 0x80000180为操作系统例外处理代码
- 操作系统保留现场(把通用寄存器保存到堆栈区)
- 操作系统通过读Cause寄存器分析例外原因是外部中断
- 操作系统向桥片中的中断控制器读中断原因,读的同时清中断
- 操作系统根据中断原因调用驱动程序,读取键盘数据
- 操作系统唤醒正在由于等待数据而阻塞的进程(Powerpoint)
- Powerpoint根据读到的键盘数据决定翻一页,调用显示驱动程序
- 驱动程序把要显示的内容送到显存,并通知GPU
- GPU通过访问显存空间刷新屏幕
# 1.1.3 计算机的基本组成
计算机是由电子元器件构成的,二进制最易实现
冯诺依曼结构:
- 计算机由存储器、运算器、控制器、输入设备、输出设备五部分组成,其中运算器和 控制器合称为中央处理器(Central Processing Processor,简称CPU)或处理器。
- 以运算器为中心,输入输出(Input/Output,简称IO)设备与存储器之间的数据传送 都经过运算器。
- 演进:以运算器为中心改进为以存储器为中心,数据流向更加合理,从而使运算器、存储器和 IO设备能够并行工作。
# 1.2 衡量计算机的指标
性能、成本、与功耗
# 1.2.1 计算机的性能
定义:完成一个任务(如后天的天气预报)所需的时间;以指令为基本单位
影响因素:算法影响最大;编译器影响;指令系统;微结构:IPC(Instructions per cycle);主频
主频降低了,单核性能大幅度提高(SPECint/fp2006)
# 1.2.2 算数平均与几何平均
算术平均值
算术平均值的权重与特定程序在特定机器上的执行时间成正比,所以权重不仅与该程 序的执行频度有关,也与运行该程序的机器特性和输入数据相关。可能导致测试者把 自己机器上运行最快的程序的输入量增到最大,以提高计算该程序平均值时的权重, 干扰了真实结果
几何平均值(做)
小于算术平均值、与参考机无关、强调性能平衡。
可能导致硬件和软件设计者集中精力提高最易提高速度的软件的性能,而不是提高速度最慢的软件的性能
CPI及IPC
在指令系统确定后,系统结构设计者的主要目标就是降低CPI或 提高IPC
# 1.2.3 计算机的成本
超级计算机:不计成本,只追求性能
嵌入式应用:为降低功耗和成本,可以牺牲一部分性能
介于两者之间,比如PC机,工作站,服务器等:追求性能价格比的最优设计

# 1.2.4 计算机的功耗
动态电流(动态功耗)

动态功耗跟电压成平方关系,跟频率、电容成线性关系
漏电电流(静态功耗)

漏电流跟温度(升高)成指数关系。温度是集成电路最大杀手
低功耗优化方法
- 结构级:多发射 vs. 单发射;关闭不用的模块
- 逻辑级:串行进位 vs. 并行进位加法器
- 电路级:动态 vs. 静态电路
- 工艺级:使用高性能 vs. 低功耗晶体管
# 1.3 计算机体系结构的发展趋势
半导体工艺技术,应用需求(10年之后是主要动力)是计算机体系结构发展的“双动力”
# 1.3.1 摩尔定律支撑计算机发展
**摩尔定律:**晶体管数目每18-24个月翻一番;同样晶体管数量的芯片 价格下降一倍,现在买一颗大米的钱可以买100-1000只晶体管
第一代到第四代:摩尔定律与结构进步

CMOS工艺正在面临物理极限,但是暂时不会有新材料及新器件技术取代CMOS
# 1.3.2 摩尔定律与登纳德定律
随着CMOS的密度增大,单位面积功耗变大
# 1.3.3 计算机应用与体系结构
基础硬件趋于成熟
- 摩尔定律发展速度放缓,并将在2020年前后遭遇物理极限
- CPU在主频、功耗、核数等方面遇到了障碍,更新速度变慢;Intel CPU单核性能在 2010-2012年间逼近“天花板”
- 新材料不会替代晶体管,而是对晶体管的补充
应用创新方兴未艾
云计算和新型移动终端的兴起改变了传统信息化平台的应用模式
硅平台成为应用创新的重要平台
通用CPU片内将集成专用处理单元(GPU/众核、智能/安全处理器等),在晶体管层面与应用结合(原来主要在软件层面与应用结合)
# 1.3.4 计算机体系结构发展中碰到的“墙
1980’s:存储墙:CPU变快,内存只变大不变快
2000’s:功耗墙:以Intel放弃4GHz的Pentium IV为标志,终止复杂的高主频设计
未来:带宽墙
若克服不了上述“墙” ,通用CPU性能提高的摩尔定律到2015年即告终止
# 1.3.5 未来可能会流行的CPU结构
多核+向量处理+专用处理器可能是未来主流结构
# 1.4 计算机体系结构的设计原则
- 平衡性:结构设计要统筹兼顾
- 局部性:结构设计要重点突出
- 并行性:人多力量大,开发各个层次的并行性
- 虚拟化:自己麻烦点,让用户好用点
# 1.4.1 平衡设计
木桶原理
- 木桶所盛的水量由最短的板决定
- 一个结构最终体现出的性能受限于其瓶颈部分
# 1.4.2 访存和计算的平衡设计
经验定律:为保持通用性,峰值浮点运算速度(MFLOPS)和峰值访存带 宽(MB/s)为1:1左右
Amdahl定律:关注短板
# 1.4.3 开发局部性
当结构设计基本平衡以后,优化性能要抓主要矛盾,重点改进最频繁 发生事件的执行效率
如:时间局部性和 空间局部性
# 1.4.4 开发并行性
指令级并行
- 是过去的20年里体系结构设计者提升性能的主要途径
- 时间并行性:指令流水线
- 进一步挖掘指令级并行的空间不大
数据级并行:SIMD
作为指令级并行的有效补充,在高性能计算及流媒体等领域发挥重要作用,在专用处 理器中应用较多
任务级并行
- 线程级并行大量存在于Internet应用
- 多核处理器及多线程处理器
- 是目前的热点
# 1.4.5 虚拟化
虚拟化:应用和实现的“桥梁”
虚拟存储器等
计算机中的“桥梁”
- 操作系统对虚拟地址空间的支持(CPU中实现TLB)(特优)
- 多发射在维持串行编程模型的情况下提高了速度(优)
- 多线程和虚拟机技术在单一硬件上虚拟出多个CPU(优)
- Cache在维持一维的地址空间的情况下提高了速度(良)
- Cache一致性协议在分布存储的情况下提供统一编程空间(一般)