第一章 计算机概要与技术(上)


本章问题

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

image.png|500
image.png|500
CH1 计算机概要与技术 导图.png|1025


计算机的分类

image.png

计算机的分类

  1. 传统上计算机分为哪三类?后PC时代有哪两类计算机? #card
  • 前PC时代:PC,超级计算机,嵌入式计算机
  • 后PC时代:个人移动设备(PMD),仓库规模计算机(WSC)

一开始的计算机,强调计算的本质功能,但随着发展,设备向着便携越做越小和规模化越做越大两个极端来发展。


常见存储容量

  1. KB MB GB之上有哪些存储容量单位? #card
    image.png
  • 两种存储单位
    • 一个字节相当于8位 B = 8b
      • bit(b)
      • byte(B)

存储一般使用B,网速一般使用b。

  • 100M宽带也就是12.5MB的实际速度。
    image.png

计算机结构中的伟大思想

  1. 计算机设计的八个伟大思想是? #card
    image.png|800

两个设计原则

摩尔定律

单芯片上的集成度(单位面积硅片能容纳的晶体管数量)每18个月翻一番,提出于1965年。

芯片设计要依据完成时的工艺水平。这告诉我们,在设计一款芯片的时候,要能够考虑到在将来芯片的集成度会上升,要提前设计。

抽象

省略低层次的细节,提供简化的模型。本质上是一种分层的思想,我们通过接口控制整个系统。比如驾驶员开车,车提供的抽象是轮盘、踏板和换挡工具。你并不需要像汽修师一样完全了解发动机的构成,也能将车开起来。

就如计算机网络中一样
每一层通过接口向上层提供服务。
同时,任务也因分层而变得专业化
image.png|750

4个提高性能的方法

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

在后面也提到了,通过使用空间局限性和时间局限性
利用缓存加载大概率将来会使用的数据,
能够提升读取数据的速度。

定量分析:Amdahl定律
4. Amdahl定律的公式为? #card
image.png

图3 阿姆达尔定律:提升性能的障碍
性能不会随着CPU核心数量的增加而按相同比例提升。
性能的提升受到必须顺序执行的软件处理部分比例的限制。
阿姆达尔定律是提升多核微处理器性能的一个主要障碍。
图中假设并行处理中没有开销。
图中所显示的年份是基于英特尔计划和实际技术的设计规则。假设每一代设计规则的核心数量翻倍。
image.png|775

并行
  • 同时发生,典型例子是多核处理器。
    • 多个CPU上同时运行多个进程。

就好比你有一家新闻公司,你不可能让所有人都是记者去采访,也不可能都是笔者在写文章。总得有人做这个的同时有人做那个。
image.png|500

流水线

类比工业中的流水线。这是CPU提升指令的使用效率的重要方法。
通过将一个统一的整体,根据功能的不同拆分为多个部分,让多个部分同时工作。从而提升资源的利用效率

预测

前提:

  1. 预测失误后恢复的代价不高;
  2. 预测有相当的准确率。

则可以猜测哪些操作会发生,并提前开始执行。在if-else中,如果我们执行了99次都是if操作,那么我们自然有理由认为下一次也是if操作,我们就会预测下一步是if操作。但是就好像是跑步一样,一直往前跑,如果有个弯道就需要即时减速修正方向,这样会减慢我们的速度。所以需要有相当的准确率才执行。

存储器层次与冗余

存储器层次

(见第三部分 软硬件接口)

冗余提高可靠性

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


软硬件基础

image.png

编程语言分类

  • 机器语言
    • 计算机真正能听懂的语言,是一串01组合的数字。
  • 汇编语言
    • 为了提升可读性,将特定的01组合作为汇编标签来使用。
  • 高级语言
    • 语义更加明确。
  1. 高级语言经过什么过程变成汇编语言?汇编语言又经过什么变成机器语言? #card
    人类输入的高级语言通过编译为汇编语言,然后汇编为机器语言,最后通过下载器让计算机执行。

冯诺依曼结构

冯·诺依曼结构由哪五大基本部件组成?CPU主要有哪两大部件?还有少量的哪个部件? #card
五大部件:

  1. 输入设备:键盘,鼠标
  2. 输出设备:显示器,打印机
  3. 存储器
      1. Cache(SRAM)
        • 快但贵,容量小(3MB)。
      1. 内存(DRAM)
        • 只有放入内存的程序才能执行。
        • 比较快且贵,容量中等(8~16GB)。
      1. 外存
        • 慢但便宜,容量大(基本都是512GB起步)。
  4. 运算器(数据通路Data path)
  5. 控制器
  • 通过IO设备实现货物(信息)的输入输出,并且需要通过存储器来实现信息的存储。
  • 通过控制器来读取(程序计数器PC)上的指令,并交给处理器来执行。
    image.png|750
    image.png|500

存储器存储结构

image.png|675

问题:CPU的主频在3.5GHz,内存条的主频2666MHz,通常是谁等待谁? #card
为了解决CPU和内存条之间速度不对等的情况,提升硬件的利用效率,我们通过设立缓存这一快但容量小的存储结构,弥补内存与CPU之间的速度鸿沟

解决方法:存储器层次(思想7)
顶端:快贵小 → 底端:慢廉大

  • 第一级:Cache(和cash同音),采用SRAM技术。
  • 第二级:主存/内存,采用DRAM技术。
    • SRAM、DRAM断电后数据很快消失,为易失性存储器。
  • 第三级:辅存,过去常用磁盘,现逐渐被闪存代替。
    • 磁盘、闪存断电后不丢失数据,为非易失性存储器。

*Cache位于CPU中。在CPU中塞入Cache的好处是: #card

  1. 物理距离近,和两大部件(运算器,控制器)通信迅速。
  2. 只要Cache能把CPU即将要用的程序、数据从内存中复制过来,就能缓解速度矛盾。

CPU中只有控制器和运算器吗? #card
还有Cache。
image.png

指令集体系结构

苹果的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):由许多个晶体管组成的芯片。

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


文章作者: MIKA
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 MIKA !
  目录