计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图

CH1 计算机概要与技术

文章目录

  • CH1 计算机概要与技术
  • 章节导图
    • 一、计算机的分类
      • 计算机的分类
      • 存储容量
    • 二、计算机系统结构中的8个伟大思想.
      • 2个设计原则
        • 1、摩尔定律
        • 2、抽象
      • 4个提高性能的方法
        • 3、加速大概率事件
        • 4、并行
        • 5、流水线
        • 6、预测
      • 存储器层次与冗余
        • 7、存储器层次
        • 8、冗余提高可靠性
    • 三、软硬件基础
      • 编程语言分类
        • 机器指令
        • 汇编语言
        • 高级语言
      • 冯·诺依曼结构
      • 存储器层次结构
      • 指令集体系结构
      • 集成电路制造
        • 复习题
    • 四、性能与功耗
      • 评价性能的指标
      • CPU经典性能公式
      • 经典性能公式
      • CPU经典性能公式为什么靠谱
      • 功耗
      • 并行化基准测试程序
      • 复习题

章节导图

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第1张图片

一、计算机的分类

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第2张图片

计算机的分类

传统上,按照应用,计算机可以分为:
个人计算机(PC)
服务器
适用于执行大负载任务,多用户通过网络并行访问
高端服务器被称为超级计算机
嵌入式计算机是数量最多的一类计算机

进入后PC时代:
往小的方向发展为:个人移动设备(PMD)
往大的方向发展为:仓储规模计算机(Warehouse- ScaleComputer, WSC),大型数据中心的云计算服务器

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第3张图片

存储容量

数量级前缀
两级之间有210 (1024) 倍的数量关系

千K 兆M 吉G 太T 拍P 艾E 泽Z 尧Y
1024 1024e2 1024e3 1024e4…
thousand million billion trillion…

B (Byte)字节 b (bit) 位 1字节=8位

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第4张图片

字节常用于储存容量,位常用于传输速度
i5 +GTX3060+ 8G+512G~ B/b? B
100兆的宽带B/b? b

二、计算机系统结构中的8个伟大思想.

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第5张图片

2个设计原则

1、摩尔定律
  • 单芯片上的集成度(单位面积硅片能容纳的晶体管数量)每18个月翻一-番
  • 提出于1965(大约2015年的时候失效了)
  • 芯片设计要依据设计开始/完成?时的工艺水平 完成
2、抽象

省略低层次的细节,提供简化的模型

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第6张图片

4个提高性能的方法

3、加速大概率事件

一台计算机绝大部分时间用来打游戏,改进游戏性能还是其他性能更能提高整体性能?

想想你为什么买游戏本(bushi)


定量分析: AmdahI定律

改进后的执行时间 = 改进影响的执行时间 / 改进量 + 改进不影响的执行时间
t改进= t相关/S + t无关

4、并行

同时发生,典型例子是多核处理器

5、流水线

类比工业中的流水线计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第7张图片

6、预测

如果
1)预测失误后恢复的代价不高; 2)预测有相当的准确率则可以猜测哪些操作会发生,并提前开始执行

存储器层次与冗余

7、存储器层次

(见第三部分 软硬件基础)

8、冗余提高可靠性

物理器件的“备胎”,失效了就换上

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第8张图片

三、软硬件基础

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第9张图片

编程语言分类

机器指令

00000011101001001011001111110010
汇编语言和由它汇编出的机器语言一一对应

汇编语言

指令助记符、寄存器标号
addi s 1 , s1, s1,s1,1
一条高级语言语句可以编译出好几条汇编语言

高级语言

语句接近自然语言,提高了程序的可移植性
cnt = cnt + 1

机器语言依赖于机器,所有被称为低级语言
汇编语言呢?高级语言呢?

冯·诺依曼结构

冯结构中的五大经典部件:

外围的①输入设备②输出设备,合称I/O设备
输入设备:键盘鼠标、扫描仪
输出设备:显示器、打印机
混合I/O设备:触摸屏、网卡

存放程序和数据的③存储器
缓存cache ~ SRAM 快、但是贵(3MB)
主存/内存 ~ DRAM 比较快也比较贵,容量中等(8~16GB)
辅存/外存/二级存储器 ~ 闪存、磁盘 慢但便宜,容量大(基本都是512GB起步)
只有放入内存的程序才能被CPU执行

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第10张图片

组成CPU的两大部件:④运算器(数据通路)、⑤控制器

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第11张图片

存储器层次结构

CPU的主频在3.5GHz,内存条的主频为2666MHz,通常是谁等待谁?

CPU等待内存条

解决方法:存储器层次(思想7)
顶端:快贵小 → 底端:慢廉大
第一级::cache (和cash同音) , 采用SRAM技术
第二级:主存/内存,采用DRAM技术
SRAM、DRAM断电后数据很快消失,为易失性存储器
第三级:辅存,过去常用磁盘,现逐渐被闪存代替
磁盘、闪存断电后不丢失数据,为非易失性存储器

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第12张图片

cache位于CPU中

在CPU中塞入cache,好处是:

1)物理距离近:和两大部件通信迅速

2)只要cache能把CPU即将要用的程序,数据,从内存中复制过来,就能缓解速度矛盾。

指令集体系结构

苹果的MI系列芯片为社么性能高且续航持久?

因为其指令集体系结构(架构)与其他芯片不同

CPU的**指令集体系结构(架构,ISA)**根本上是不一样,即可以执行的指令集合大不相同。

一个x86,为了和二三十年前的软件保持兼容,指令只增不减,越来越庞大繁杂
一个ARM,设计思想主张精简,能效出色

教材介绍一个和ARM设计思路相近的架构: MIPS
MIPS和ARM都属于RISC架构(Reduced Instruction Set Computer,精简指令集计算机)x86是典型的CISC架构(Complex Instruction Set Computer,复杂指令集计算机)

两位作者都是RISC技术的重要奠基人,对x86架构非常唾弃

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第13张图片

集成电路制造

晶体管:受电信号控制的简单开关

集成电路(Integrated Circuit ,IC):由许多个晶体管组成的芯片

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第14张图片

制造具体过程不太重要,记住结论:
成品率越高、产量越高、芯片面积越小,芯片的制造成本越低

复习题

1、传统上计算机分为哪三类?后PC时代有哪两类计算机?

PC,服务器,嵌入式

:个人移动设备(PMD) 仓储规模计算机(Warehouse- ScaleComputer, WSC)

2、KB MB GB之上有哪些存储容量单位?

吉G 太T 拍P 艾E 泽Z 尧Y

*3、计算机设计的八个伟大思想是?

摩尔定律,抽象,加速大概率事件,并行,流水线,预测,存储器层次,冗余提高可靠性

4、Amdahl定律的公式为?

改进后的执行时间 = 改进影响的执行时间 / 改进量 + 改进不影响的执行时间
t改进= t相关/S + t无关

5、高级语言经过什么过程变成汇编语言?汇编语言又经过什么变成机器语言?

编译 汇编

6、冯.诺依曼结构由哪五大基本部件组成? CPU主要有哪两大部件?还有少量的哪个部件?

输入 输出 存储器 运算器 控制器

7、存储器层次中,最快贵小的、其次的、最慢廉大的是什么?分别采用什么技术?

高速缓冲存储器Cache 内存 辅存

SRAM DRAM 磁盘/闪存

8、Intel和苹果的处理器架构不同,是什么东西不同?

指令集体系结构

9、成品率、芯片面积、产量如何影响集成电路(IC) 的制造成本?

成品率越高,产量越高,芯片面积越小,芯片的制造成本越低

四、性能与功耗

计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第15张图片

评价性能的指标

鲁大师、安兔兔这些跑分软件的原理?
SPEC CPU基准测试程序,是-个比较权威的跑分软件

个人计算机更看重响应时间(又称执行时间) :任务从开始到完成的时间计算机组成与设计:硬件/软件接口,第一章详细梳理,附思维导图_第16张图片

加载进入游戏需要XXX秒钟.

服务器更看重吞吐率:单位时间内完成的任务数量

一秒钟能把网页发送给XXX个用户

课程主要讨论CPU执行时间 性能=1/执行时间

计算机A的性能是计算机B的几倍? →计算机A的执行时间是B的几分之一?

e.g.运行同一个程序,计算机A用15秒,计算机B用10秒,谁的性能更高?它的性能比另外一台高多少?

B 50%

CPU经典性能公式

CPU时钟周期长度T (CPU干任何事的时间都是一个时钟周期的整数倍)干一件事,即执行一个程序,需要多少个时钟周期?

CPU执行时间=时钟周期数x时钟周期长 CPUtime = cycles x T

任何程序都要以机器语言指令的形式,才能被计算机看懂。所以,执行程序本质上就是执行机器指令!

所以,时钟周期数 = 机器指令的条数 x 条机器指令占用的时钟周期数
不同机器指令需要的周期数不尽相同
所以,每条机器指令占用的
时钟周期数(cycles per instruction)是一个平均值,即总周期数/总指令数*

时钟周期数 = 指令数 x 平均每条指令所需周期数 cycles = IC x CPI

综上,得到经典性能公式

经典性能公式

CPU执行时间 = 指令数 x CPI x 时钟周期长 CPUtime = IC x CPI x T

CPU的时钟频率f (主频) :秒钟有多少个时钟周期
T=1/f
所以也能写成
CPU执行时间 = 指令数 x CPI / 主频 CPUtime= IC x CPI / f

主频的单位通常是吉赫兹GHz (G在此处代表109)

e.g.主频为4GHz的CPU,每个时钟周期的长度是多少秒?
某程序共有3亿条指令,其中1亿条的CPI为3, 2亿条的CPI为6,整个程序的CPI是多少?
该CPU执行这个程序需要多长时间?

1/4e9

5

3e8*5*1/4e9 = …

CPU经典性能公式为什么靠谱

经典性能公式考虑了指令数IC、平均每条指令需要周期数CPI、时钟周期长度T (也就是主频f的倒数)全部三个因素
使用CPU执行时间这个靠谱的指标来衡量性能

使用什么编程语言编译程序、采取什么算法,影响指令数和CP|两个因素
采用什么指令集体系结构,影响指令数、CPI、 主频全部三个因素
它们都会影响CPU性能

还有一个衡量性能的指标MIPS (million instructions per second,百万指令每秒)
MIPS = IC / (CPUtime x 10^6) = f / (CPI X 10^6)
因为只考虑了主频(周期长)和CPI两个指标,很受作者唾弃

功耗

在移动设备和WSC中,电能是关键资源
但随着CPU集成度越来越高,晶体管的数量剧增,功耗越来越大、散热越来越难

CMOS (互补型金属氧化半导体)是当前占统治地位的集成电路技术,其中,晶体管的能耗主要来自动态能耗,即晶体管打开/关闭的短暂动态过程
即0 → 1或1 → 0的过程

一个晶体管经历一次0→1→0或1→0→1的开关过程
能耗=负载电容x电压2
开关频率与CPU主频相关
所以,功耗公式为

功耗= 1/2 x 负载电容 x 电压^2 x 开关频率 P = 1/2 CU ^ 2 * f

并行化基准测试程序

CPU设计面临功耗墙问题
从2002年起,单核处理器性能增长速度从每年约52%下降到22%,功耗问题“功不可没”
因此,从单处理器向多核处理器转变成为近年计算机提升性能的主要手段

同时,硬件变成了多处理器,要求程序员重写代码去支持CPU的并行(同时执行)特性
显式并行编程应运而生,但仍有很多需要克服的问题

设有一个单核处理器A,还有一个每个核心都和A相同的四核处理器B,它们运行同一个程序,B的CPU时间能减少到A的1/4吗?

不能,并行关系,单个程序执行的时间是不变的

SPEC是多家计算机销售商共同资助的组织,目的是为现代计算机提供基准测试程序,SPEC CPU基准测试程序用于测试CPU性能,取各项指标得分的几何平均数

复习题

1、PC和服务器分别更看重哪项性能评价指标?

执行时间 吞吐率

2、CPU经典性能公式计算的是什么指标?公式是什么(注意有两个联系密切的版本) ?

CPUTime = IC * CPI * * T CPUTime = IC * CPI * / f

*3、我们是如何得出经典性能公式的?
4、哪四个东西会通过影响性能公式中的某些项,从而影响性能?

编程语言,编译器,算法 影响IC和CPI

ISA 影响IC CPI f

5、MIPS怎么计算?这个性能指标为什么不靠谱?

IC/(CPUTime*1e6)= f / (CPI * 1e6)

只考虑到了CPI 和 f

你可能感兴趣的:(学习方法,硬件架构)