本章问题
- 传统上计算机分为哪三类?后PC时代有哪两类计算机?
- KB MB GB之上有哪些存储容量单位?
- 计算机设计的八个伟大思想是?
- Amdahl定律的公式为?
- 高级语言经过什么过程变成汇编语言?汇编语言又经过什么变成机器语言?
- 冯·诺依曼结构由哪五大基本部件组成?CPU主要有哪两大部件?还有少量的哪个部件?
- 存储器层次中,最快贵小的、其次的、最慢廉大的是什么?分别采用什么技术?
- Intel和苹果的处理器架构不同,是什么东西不同?
- 成品率、芯片面积、产量如何影响集成电路(IC)的制造成本?



计算机的分类

计算机的分类
- 传统上计算机分为哪三类?后PC时代有哪两类计算机? #card
- 前PC时代:PC,超级计算机,嵌入式计算机
- 后PC时代:个人移动设备(PMD),仓库规模计算机(WSC)
一开始的计算机,强调计算的本质功能,但随着发展,设备向着便携越做越小和规模化越做越大两个极端来发展。
常见存储容量
- KB MB GB之上有哪些存储容量单位? #card

- 两种存储单位
- 一个字节相当于8位 B = 8b
- bit(b)
- byte(B)
- 一个字节相当于8位 B = 8b
存储一般使用B,网速一般使用b。
- 100M宽带也就是12.5MB的实际速度。

计算机结构中的伟大思想
- 计算机设计的八个伟大思想是? #card

两个设计原则
摩尔定律
单芯片上的集成度(单位面积硅片能容纳的晶体管数量)每18个月翻一番,提出于1965年。
芯片设计要依据完成时的工艺水平。这告诉我们,在设计一款芯片的时候,要能够考虑到在将来芯片的集成度会上升,要提前设计。
抽象
省略低层次的细节,提供简化的模型。本质上是一种分层的思想,我们通过接口控制整个系统。比如驾驶员开车,车提供的抽象是轮盘、踏板和换挡工具。你并不需要像汽修师一样完全了解发动机的构成,也能将车开起来。
就如计算机网络中一样
每一层通过接口向上层提供服务。
同时,任务也因分层而变得专业化
4个提高性能的方法
加速大概率事件
- 一台计算机绝大部分时间用来打游戏,改进游戏性能还是其他性能更能提高整体性能?
在后面也提到了,通过使用空间局限性和时间局限性,
利用缓存加载大概率将来会使用的数据,
能够提升读取数据的速度。
定量分析:Amdahl定律
4. Amdahl定律的公式为? #card
图3 阿姆达尔定律:提升性能的障碍
性能不会随着CPU核心数量的增加而按相同比例提升。
性能的提升受到必须顺序执行的软件处理部分比例的限制。
阿姆达尔定律是提升多核微处理器性能的一个主要障碍。
图中假设并行处理中没有开销。
图中所显示的年份是基于英特尔计划和实际技术的设计规则。假设每一代设计规则的核心数量翻倍。
并行
- 同时发生,典型例子是多核处理器。
- 多个CPU上同时运行多个进程。
就好比你有一家新闻公司,你不可能让所有人都是记者去采访,也不可能都是笔者在写文章。总得有人做这个的同时有人做那个。

流水线
类比工业中的流水线。这是CPU提升指令的使用效率的重要方法。
通过将一个统一的整体,根据功能的不同拆分为多个部分,让多个部分同时工作。从而提升资源的利用效率
预测
前提:
- 预测失误后恢复的代价不高;
- 预测有相当的准确率。
则可以猜测哪些操作会发生,并提前开始执行。在if-else中,如果我们执行了99次都是if操作,那么我们自然有理由认为下一次也是if操作,我们就会预测下一步是if操作。但是就好像是跑步一样,一直往前跑,如果有个弯道就需要即时减速修正方向,这样会减慢我们的速度。所以需要有相当的准确率才执行。
存储器层次与冗余
存储器层次
(见第三部分 软硬件接口)
冗余提高可靠性
物理器件的“备胎”,失效了就换上。

软硬件基础
编程语言分类
- 机器语言
- 计算机真正能听懂的语言,是一串01组合的数字。
- 汇编语言
- 为了提升可读性,将特定的01组合作为汇编标签来使用。
- 高级语言
- 语义更加明确。
- 高级语言经过什么过程变成汇编语言?汇编语言又经过什么变成机器语言? #card
人类输入的高级语言通过编译为汇编语言,然后汇编为机器语言,最后通过下载器让计算机执行。
冯诺依曼结构
冯·诺依曼结构由哪五大基本部件组成?CPU主要有哪两大部件?还有少量的哪个部件? #card
五大部件:
- 输入设备:键盘,鼠标
- 输出设备:显示器,打印机
- 存储器
-
- Cache(SRAM)
- 快但贵,容量小(3MB)。
- Cache(SRAM)
-
- 内存(DRAM)
- 只有放入内存的程序才能执行。
- 比较快且贵,容量中等(8~16GB)。
- 内存(DRAM)
-
- 外存
- 慢但便宜,容量大(基本都是512GB起步)。
- 外存
-
- 运算器(数据通路Data path)
- 控制器
- 通过IO设备实现货物(信息)的输入输出,并且需要通过存储器来实现信息的存储。
- 通过控制器来读取(程序计数器PC)上的指令,并交给处理器来执行。


存储器存储结构

问题:CPU的主频在3.5GHz,内存条的主频2666MHz,通常是谁等待谁? #card
为了解决CPU和内存条之间速度不对等的情况,提升硬件的利用效率,我们通过设立缓存这一快但容量小的存储结构,弥补内存与CPU之间的速度鸿沟。
解决方法:存储器层次(思想7)
顶端:快贵小 → 底端:慢廉大
- 第一级:Cache(和cash同音),采用SRAM技术。
- 第二级:主存/内存,采用DRAM技术。
- SRAM、DRAM断电后数据很快消失,为易失性存储器。
- 第三级:辅存,过去常用磁盘,现逐渐被闪存代替。
- 磁盘、闪存断电后不丢失数据,为非易失性存储器。
*Cache位于CPU中。在CPU中塞入Cache的好处是: #card
- 物理距离近,和两大部件(运算器,控制器)通信迅速。
- 只要Cache能把CPU即将要用的程序、数据从内存中复制过来,就能缓解速度矛盾。
CPU中只有控制器和运算器吗? #card
还有Cache。
指令集体系结构
苹果的M1系列芯片相较于英特尔为什么性能高且续航持久? #card
CPU的指令集体系结构(架构,ISA)根本上不一样,即可以执行的指令集合大不相同:
- 一个x86,为了和二三十年前的软件保持兼容,指令只增不减,越来越庞大繁杂。
- 一个ARM,设计思想主张精简,能效出色。
教材介绍一个和ARM设计思路相近的架构:MIPS。
MIPS和ARM都属于RISC架构(Reduced Instruction Set Computer,精简指令集计算机),而x86是典型的CISC架构(Complex Instruction Set Computer,复杂指令集计算机)。
两位作者都是RISC技术的重要奠基人,对x86架构非常唾弃。
集成电路制造
- 晶体管:受电信号控制的简单开关。
- 集成电路(Integrated Circuit,IC):由许多个晶体管组成的芯片。
成品率越高、产量越高、芯片面积越小,芯片的制造成本越低。

