本节简单介绍了一下课的情况。
本门课将从晶体管到云,跨度和内容非常多,请及时跟上。
下图是计算机的整体结构图,而cs61c主要关注红色圈内部分
image.png
我们可以用“五大思想”来总结这门课,对应了这门课的名字“Great ideas in computer architecture”
- Abstraction(Layers of Representation/Interpretation) 抽象
- 一种设计复杂系统的思想,如计算机就是通过抽象进行层次化的,层次从低到高分为:逻辑电路实现-》硬件描述语言-》机器代码-》汇编语言-》C语言,每个层次可以隐藏低层次的细节并向上层提供简化了的接口。
- Moore's Law(Designing throgh trends) 摩尔定律
- 预测了计算性能的发展。
- Principle of Locality(Memory Hierarchy) 局部性原理
1. 例如存储器的层次结构,越靠近CPU的存储器速度越快(寄存器>cache>内存>本地磁盘>网络设备) - Parellelism & Amdahl' law(which limits it) 并行和阿姆达尔定律
- 并行性在计算机的每个部分都有体现,如cpu有多个可以同时进行计算的算术单元,内存可以同时存取多位数据。
- 阿姆达尔定律:简单来说是通过更快的执行方式获得的性能改进程度取决于该部分占总执行时间的比例。
- Dependability via Redundancy 通过冗余实现可靠性,
- 例如物理设备都有一定的故障概率, 如有50000个服务器,每个服务器4个硬盘,每个磁盘的年故障率再2%-10%, 那么基本上每个小时都会有个硬盘有故障,因此需要多余的磁盘用于故障时功能可以正常运转。
- 如内存有一些冗余的内存位可以用来矫正或检测内存。
本门课的目标是通过学习计算机结构中的五大思想来实现高性能编程。