计组CH1 第一章 计算机概要与技术
计组CH1 第一章 计算机概要与技术
CH1 计算机概要与技术
思维导图:
一、计算机的分类与设计思想
传统上,按照应用,计算机可以分为:
个人计算机(PC)
服务器,适用于执行大负载任务,多用户通过网络并行访问;高端服务器被称为超级计算机
嵌入式计算机,是数量最多的一类计算机
进入后PC时代:
往小的方向发展为:个人移动设备(PMD)
往大的方向发展为:仓储规模计算机(WSC)(Warehouse-Scale Computer),大型数据中心的云计算服务器
导图:
2个设计原则:
(1) 摩尔定律
单芯片上的集成度(单位面积硅片能容纳的晶体管数量)每18个月翻一番
提出于1965,芯片设计要依据设计开始/完成?时的工艺水平
(2)抽象,省略低层次的细节,提供简化的模型
4个提高性能的方法:
(3)加速大概率事件
一台计算机绝大部分时间用来打游戏,改进游戏性能还是其他性能更能提高整体性能?
定量分析:Amdahl定律 t改进 = t相关/S + t无关
即改进后的执行时间 = 改进影响的执行时间 / 改进量 + 改进不影响的执行时间
(4)并行,同时发生,典型例子是多核处理器
(5)流水线,类比工业中的流水线
(6)预测,若1)预测失误后恢复的代价不高;2)预测有相当的准确率
则可以猜测哪些操作会发生,并提前开始执行
存储器层次与冗余
(7)存储器层次(见第三部分 软硬件接口)
(8)冗余提高可靠性,物理器件的“备胎”,失效了就换上
存储容量
1、单位(低到高) 千K 兆M 吉G 太T 拍P 艾E 泽Z 尧Y
每两级之间有2^^10(1024)倍的数量关系2.B(Byte)字节,b(bit)位
1 B = 8 b , 即 1 字节 = 8 位 字节常用于储存容量,位常用于传输速度
例如:
i5+GTX3060+8G+512G~B/b?(字节B,代表存储容量)
100兆的宽带B/b?(位b, 100Mbps 约等于 12.5 MB/S)
二、软硬件基础(简述)
导图:
1、编程语言分类(3类)
(1)机器指令 (01串)
00000011101001001011001111110010
(2)汇编语言(由指令助记符、寄存器标号构成)
addi $s1, $s1, 1
(3)高级语言 (C/C++,Java…语句接近自然语言,提高了程序的可移植性)
cnt = cnt + 1;
机器语言依赖于机器,所以被称作低级语言
2、冯·诺依曼结构(五部分)
组成CPU的两大部件:①运算器(数据通路)、②控制器
存放程序和数据的 ③存储器
只有放入内存的程序才能被CPU执行
缓存cache ~ SRAM 快但是贵,容量很小(3MB)
主存/内存 ~ DRAM 比较快也比较贵,容量中等(8~16GB)
辅存/外存/二级存储器 ~ 闪存、磁盘 慢但便宜,容量大(基本都是512GB起步)
外围的 ④输入设备、⑤输出设备
合称I/O设备输入设备:键盘鼠标、扫描仪输出设备:显示器、打印机
包括混合I/O设备:触摸屏、网卡
3、存储器层次结构
存储器层次:
CPU的主频在3.5GHz,内存条的主频2666MHz,通常是谁等待谁?CPU会等内存
解决方法:存储器层次(思想7)
顶端:快贵小 → 底端:慢廉大
第一级:Cache(和cash同音),采用SRAM技术(易失性)
第二级:主存/内存(易失性),采用DRAM技术
SRAM、DRAM断电后数据很快消失,为易失性存储器
第三级:辅存(非易失性),过去常用磁盘,现逐渐被闪存代替
磁盘、闪存断电后不丢失数据,为非易失性存储器
Cache位于CPU中 (CPU中包含了少量Cache, 主要有运算器和控制器构成)
在CPU中塞入cache,好处是:
1)物理距离近,和两大部件通信迅速
2)只要cache能把CPU即将要用的程序、数据,从内存中复制过来,就能缓解速度矛盾
4、指令集体系结构(ISA)
苹果的M1系列芯片为什么性能高且续航持久?采用了ARM架构
CPU的 指令集体系结构(ISA)根本上不一样,即可以执行的指令集合大不相同
一个x86,为了和二三十年前的软件保持兼容,指令只增不减,越来越庞大繁杂
一个ARM,设计思想主张精简,能效出色
教材介绍一个和ARM设计思路相近的架构:MIPS
MIPS和ARM都属于 RISC架构 (Reduced Instruction Set Computer,精简指令集计算机)
x86是典型的 CISC架构 (Complex……,复杂……)
5、集成电路制造
晶体管:受电信号控制的简单开关
集成电路(Integrated Circuit,IC):由许多个晶体管组成的芯片
制造具体过程不太重要,记住结论:
成品率越高、产量越高、芯片面积越小,芯片的制造成本越低
CH1 复习题(一、二)
复习题是用来碎碎念回忆复习的,不是用来写的!
打*的问题在考试中不太重要或者比较复杂,请酌情跳过
1、传统上计算机分为哪三类?后PC时代有哪两类计算机?
2、KB MB GB之上有哪些存储容量单位?
*3、计算机设计的八个伟大思想是?
4、Amdahl定律的公式为?
5、高级语言经过什么过程变成汇编语言?汇编语言又经过什么变成机器语言?
6、冯·诺依曼结构由哪五大基本部件组成?CPU主要有哪两大部件?还有少量的哪个部件?
7、存储器层次中,最快贵小的、其次的、最慢廉大的是什么?分别采用什么技术?
8、Intel和苹果的处理器架构不同,是什么东西不同?
9、成品率、芯片面积、产量如何影响集成电路(IC)的制造成本?
三、性能与功耗
思维导图:
1、评价性能的指标
鲁大师、安兔兔这些跑分软件的原理?
SPEC CPU基准测试程序,是一个比较权威的跑分软件
个人计算机(PC)更看重响应时间(又称执行时间):任务从开始到完成的时间,加载进入游戏需要XXX秒钟……
服务器更看重吞吐率:单位时间内完成的任务数量,一秒钟能把网页发送给XXX个用户……
课程主要讨论CPU执行时间
计算机A的性能是计算机B的几倍?→计算机A的执行时间是B的几分之一?
e.g. 运行同一个程序,计算机A用15秒,计算机B用10秒,谁的性能更高?它的性能比另
外一台高多少?
2、CPU经典性能公式
(1)CPUtime = cycles x T
CPU时钟周期长度T(CPU干任何事的时间都是一个时钟周期的整数倍)
干一件事,即执行一个程序,需要多少个时钟周期?
CPUtime = cycles x T 即CPU执行时间 = 时钟周期数 x 时钟周期长度
ps:任何程序都要以机器语言指令的形式,才能被计算机看懂,所以执行程序本质上就是执行机器指令!
(2)cycles = IC x CPI
不同机器指令需要的周期数不尽相同,所以
每条机器指令占用的时钟周期数CPI(cycles per instruction)是一个平均值,即总周期数/总指令数
cycles = IC x CPI 即时钟周期数 = 指令数 x 平均每条指令所需周期数
(3)CPUtime = IC x CPI x T CPU经典性能公式
CPUtime = IC x CPI x T 即CPU执行时间 = 指令数 x CPI x 时钟周期长
CPU的时钟频率 f(主频):一秒钟有多少个时钟周期,T = 1 / f
所以也能写成,
CPUtime = IC x CPI / f 即CPU执行时间 = 指令数 x CPI / 主频
主频的单位通常是吉赫兹GHz(G在此处代表10^9)
e.g. 主频为4GHz的CPU,每个时钟周期的长度是多少秒?
某程序共有3亿条指令,其中1亿条的CPI为3,2亿条的CPI为6,整个程序的CPI是多少?
该CPU执行这个程序需要多长时间?
3、CPU经典性能公式为什么靠谱
CPUtime = IC x CPI x T CPU经典性能公式
经典性能公式考虑了指令数IC、平均每条指令需要周期数CPI、时钟周期长度T(也就是主频f的倒数)
全部三个因素,使用CPU执行时间这个靠谱的指标来衡量性能
使用什么编程语言和编译程序、采取什么算法,影响指令数和CPI两个因素
采用什么指令集体系结构,影响指令数、CPI、主频全部三个因素,它们都会影响CPU性能
还有一个衡量性能的指标MIPS(million instructions per second,百万指令每秒)
MIPS = IC / (CPUtime x 10^6 ) = f / (CPI x 10^6 )
因为只考虑了主频(周期长)和CPI两个指标,很受作者唾弃
4、功耗
在移动设备(PMD)和仓储规模计算机(WSC)中,电能是关键资源
但随着CPU集成度越来越高,晶体管的数量剧增,功耗越来越大、散热越来越难
CMOS(互补型金属氧化半导体)是当前占统治地位的集成电路技术
其中,晶体管的能耗主要来自动态能耗,即晶体管打开/关闭的短暂动态过程
即0→1或1→0的过程
一个晶体管经历一次0 → 1 → 0或1 → 0 → 1的开关过程
能耗 = 负载电容 x 电压^2
开关频率与CPU主频相关,所以功耗公式为
P = 1/ 2 * C * U^2 * f
功耗 = 1 /2 x 负载电容 x 电压^2 x 开关频率
CH1 复习题(三)
1、PC和服务器分别更看重哪项性能评价指标?
2、CPU经典性能公式计算的是什么指标?公式是什么(注意有两个联系密切的版本)?
*3、我们是如何得出经典性能公式的?
4、哪四个东西会通过影响性能公式中的某些项,从而影响性能?
5、MIPS怎么计算?这个性能指标为什么不靠谱?