学习笔记(1)量化设计与分析基础-计算机系统结构量化研究方法-Computer Architecture A Quantitative Approach
- 学习笔记
- 简介与资源
-
- Refernce:
- 资源:
- 1.1 引言
- 1.2.0 计算机分类
-
- 1.2.1 个人便携设备PMD
- 1.2.2 桌面Desktop
- 1.2.3服务器Server
- 1.2.4 集群/仓库级计算机Cluster/Warehouse-Scale Computer
- 1.2.5 嵌入式计算机Internet of Things/ Embeded
- 1.2.6 并行度与并行结构的分类Classes of Parallelism and Parallel Architectures
- 1.3 计算机系统结构的定义
-
- 1.3.1 指令集体系结构:近距离审视计算机系统结构
- 1.3.2 真正的计算机系统结构:设计满足目标和功能需求的组成和硬件
- 1.4 技术趋势
-
- 1.4.1 性能趋势:带宽超过延迟
- 1.6 成本趋势
- 1.7 可信任度(Dependability)
- 1.8 性能测量、报告和总结
-
- 1.8.1 基准测试
- 1.8.2 性能测试结果报告
- 1.8.3 总结性能结果
- 1.9 计算机设计的量化原理
-
- 1.9.1 并行充分利用
- 1.9.2 局域性原理
- 1.9.3 关注常见情况
- 1.9.4 Amdahl定律
- 1.9.5 处理器性能公式
- 1.10 性能、价格和功耗
- 1.11 谬论和易犯错误
- 1.12 结语
学习笔记
学习笔记:(零)简介及资源
简介与资源
本学期修Computer Architecture,老师把这本书当作书reference,更新应该不快,跟着课程走(周更,应该)。我的能力很差。请原谅我。如果我有时间,我也会附上学校ppt回答作业。感谢作者和译者的努力和阅读。
Refernce:
John L. Hennessy, David A. Patterson (2019) Computer Architecture: A Quantitative Approach, 6th Edition. Morgan Kaufmann 贾洪峰量化研究方法(第5版)
资源:
第五版中文:https://www.jb51.net/books/530616.html 英文第六版:https://www.jb51.net/books/657416.html#downintro2 提供原始信息的网站:https://www.elsevier.com/books/computer-architecture/hennessy/978-0-12-811905-1,
1.1 引言
随着集成电路技术的进步,微处理器使计算机性能进入了一个快速发展的时期。此外,还有两个主要的变化:1。人们几乎不使用汇编语言编程2。有一个独立于制造商的标准化操作系统(Linux & Unix)。 这让RISC(精简指令集计算机)系统结构成为可能。
RISC性能技术的两个关键点
- 指令级并行的开发
- 缓存的使用 随着系统结构和组织模式的发展,计算机性能以50%以上的年增长率持续增长了17年。这种快速发展有四层效果。
- 显著增强了计算机用户使用的功能
- 性价比导致新计算机的出现
- 根据摩尔定律的预测,半导体制造业的可持续发展使基于微处理器的计算机在相关领域占据主导地位
- 对软件开发产生积极影响。 允许程序员以性能换取效率。(编程语言迭代)
不幸的是,17年的硬件复兴已经结束。这标志着处理器性能的提高从简单的指令级平行进行(ILP)并行转向数据集(DLP)并行于线程级(TLP)。新版本还增加了仓库、计算机和请求级别(RLP)的内容
1.2.0 计算机分类
1.2.1 个人便携设备PMD
Personal Mobile Device 关键特性
1.2.2 桌面Desktop
覆盖范围广
1.2.3服务器Server
关键特性
- 可用性 Availability
- 可扩展性 Scalability
1.2.4 集群/仓库级计算机Cluster/Warehouse-Scale Computer
SaaS应用程序(搜索、社交网络、游戏)促进了集群的发展。集群是指一组桌面计算机或服务器通过局域网连接在一起,类似于大型计算机。每个节点都有自己的操作系统,节点通过网络协议进行通信。最大的集群成为仓库级计算机(WSC:Warehouse Computer)
WSC与服务器的区别在于,WSC以许多廉价组件为构建模块,依靠软件层捕获和隔离计算中的故障。
关键特点:性价比和能耗
1.2.5 嵌入式计算机Internet of Things/ Embeded
1.2.6 并行度与并行结构的分类Classes of Parallelism and Parallel Architectures
应用程序 主要有以下两种并行
- 数据级并行(Data-level Parallelism)同时操作许多数据项
- 任务级并行(Task-level-Parallelism)创建了一些可以单独处理但大量并行执行的任务。
计算机硬件以下四种主要方法是平行开发这两种应用
- 指令级并行(Instruction-level parallelism)
- 图形处理器(GPU)
- 线程级并行 (Thread-level parallelism)
- 请求级并行 (Request-level parallelism)
Michael Flynn他提出了一种简单的分类方法,研究了多处理器最受约束的组件指令中的指令流和数据流的并行性,并将计算机分为以下四类:
- 单指令流,单数据流 (SISD)
- 单指令流,多数据流 (SIMD)
- 多指令流,单数据流 (MISD)
- 多指令流,多数据流 (MIMD)
1.3 计算机系统结构的定义
在满足成本、功耗、可用性等约束条件的情况下,判断哪些属性对新计算机至关重要,然后设计并最大限度地提高其性能和能耗效率。
1.3.1 指令集体系结构:近距离审视计算机系统结构
指示集体结构(ISA)软硬件的界限可以区分
- ISA分类
- 寄存器-寄存器 ISA(x86)
- 载入-存储 ISA (ARM和MIPS)
- 存储器寻址
- 寻址模式
- 操作数类型的大小
- 操指令
- 控制流指令
- ISA编码
1.3.2 真正的计算机体系结构:设计满足目标和功能需求的组成和硬件
计算机的实现有两个组件:组成(organization)和硬件(hardware)。
-
组成 Organization/微体系结构 包括计算机设计的高级方面,如存储系统、内存互连和内部处理器或CPU
-
硬件 Hardware 硬件是指计算机的具体细节,包括详细的逻辑设计和计算机的封装技术。通常一系列计算机包含具有相同指令集架构和非常相似的组织的计算机,但它们在详细的硬件实现上有所不同。
本书中,体系结构涵盖了
- 指令集体系结构
- 组成/微体系结构
- 硬件
1.4 技术趋势
- 集成电路逻辑技术
- 半导体DRAM(动态随机访问存储器)
- 半导体闪存
- 磁盘技术
- 网络技术
1.4.1 性能趋势:带宽胜过延迟
1.6 成本趋势
1.7 可信任度(Dependability)
如何判断一个系统是否运行正常是一个难题。所以,基础设施供应商开始提供服务等级协议(SLA)或服务等级目标(SLO)来保证网络和电源服务是可靠的。可以使用SLA来判断系统是在正常运行还是已经宕机。
系统在SLA规定的两种状态之间切换。
- 服务实现 service accomplishment
- 服务中断 service interruption 两种之间转换由故障(1到2)和恢复(2到1)导致。对两种转换进行量化,可以得到可信任度的两种主要度量。
- 模块可靠性 Module reliability 对发生故障之前的时间度量。 ,通常以运行1,000,000,000小时来表示,或者成为FIT(Failures In Time)。 因此,MTTF等于1,000,000小时,相当于 1 0 9 / 1 0 6 10^9/10^6 109/106=1000FTP 服务中断以来度量。平均故障间隔时间(MTBF)=MTTF+MTTR。
- 模块可用性Module availability 在服务完成和服务中断之间切换时,对服务完成度量。对于了修复的非冗余系统,
模块可用性= M T T F M T T F + M T T R 8 \frac{MTTF}{MTTF+MTTR8} MTTF+MTTR8MTTF
对比两台计算机(X和Y)性能之间的关系: X的速度是Y的n倍; 执行时间是性能的倒数
- 设磁盘子系统的组件以及MTTF如下;
- 10个磁盘,各自的rated at 1,000,000小时的MTTF
- 1个ATA控制器,500,000小时的MTTF
- 1个电源,200,000小时的MTTF
- 1个风扇,200,000小时的MTTF
- 1根ATA线缆,1,000,000消失的MTTF (假设寿命符合指数分布(模块老化对故障率影响不大),各部相互独立,试计算整个系统的MTTF。)
故 障 率 系 统 = 10 ∗ 1 1000000 故障率_{系统}=10*\frac{1}{1000000} 故障率系统=10∗10000001+ 1 500000 \frac{1}{500000} 5000001+ 1 200000 \frac{1}{200000} 2000001+ 1 200000 \frac{1}{200000} 2000001+ 1 1000000 \frac{1}{1000000} 10000001= 23000 1000000000 \frac{23000}{1000000 000} 100000000023000=23000FTP
M T T F 系 统 = 1 故 障 率 系 统 = 1000000000 23000 MTTF_{系统}=\frac{1}{故障率_{系统}}=\frac{1000000 000}{23000} MTTF系统=故障率系统1=230001000000000=43 500小时