计算机系统

概述

组织和结构

组织:对编程人员不可见

  • 操作单元及其相互连接

  • 包括控制信号、存储技术,…

结构:对编程人员可见

  • 直接影响程序逻辑执行的属性

  • 包括指令集、表示数据类型的位数,…

计算机简史

  • 第一代:真空管

    • 出现冯诺依曼模型
  • 第二代:晶体管

  • 第三代及后续几代:集成电路

冯诺依曼模型

基本原则:计算机由运算器、存储器、控制器、输入设备、输出设备组成,指令和数据均用二进制表示

最重要的思想:存储程序

01 | 冯·诺依曼体系结构:计算机组成的金字塔-CSDN博客

  1. 主存储器:地址和存储内容

  2. 算术逻辑单元:执行信息的实际处理

  3. 程序控制单元:指挥信息的处理

  4. 输入设备:将信息送入计算机中

  5. 输出设备:将处理结果以某种形式显示在计算机外

摩尔定律

单芯片上所能包含的晶体管数量每年翻一番 (1965-1969) / 1970
年起减慢为每18个月翻一番

CPU性能

系统时钟

  • 时钟频率(时钟速度):计算机在单位时间内执行最基本操作的次数,单位Hz

  • 时钟周期(周期时间):执行每次最基本操作的时间,单位s

指令执行

处理器由时钟驱动,时钟具有固定的频率,或等价为

CPI每条计算机指令执行所需的时钟周期数

  • $CPI = \frac{\sum_{i = 1} ^{n}(CPI_i \times I_i)}{I_c},I_c = \sum_{i = 1} ^ {n} I_i$

    • $CPI_i$:指定类型i所需要的周期数

    • $I_i$:某一给定程序中所执行的i类指令的条数

执行一个给定程序的处理时间是:

  • $T = I_c \times CPI \times t$

每秒百万条指令(MIPS):

  • $MIPS = \frac{I_c}{T \times 10^6} = \frac{f}{CPI \times 10^6}$

每秒百万条浮点操作(MFLOPS):

  • $MFLOPS = \frac{N_{floating-point\:op}}{T \times 10^6}$

平均结果

  • 算术平均值:$R_A = \frac{1}{m}\sum_{i = 1}^m R_i$

  • 调和平均值:$R_H = \frac{m}{\sum_{i = 1}^m \frac{1}{R_i}}$

  • 几何平均值:$R_G = (\prod_{i = 1}^n R_i)^{\frac{1}{n}}$

性能设计基本原则

大概率事件优先原则:对于大概率事件(或最常见的事件),赋予它优先的处理权和资源使用权

  • $系统加速比 = \frac{总执行时间_{改进前}}{总执行时间_{改进后}}$

Amdahl定律

  • 加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性比例

  • 性能增加的递减规则:如果仅仅对计算机中的一部分做性能改进,改进越多,系统获得的效果越小

    • $系统总加速比 = \frac{总执行时间_{改进前}}{总执行时间_{改进后}} = \frac{1}{(1 - 局部占比) + \frac{局部占比}{提升的性能}}$

顶层视图

COA-2019-第二章 A Top-Level View of Computer Function and Interconnection ...

计算机工作原理(感觉不是很重要

  • 指令和数据存储在单个读写存储器中

  • 主存中的内容按位置访问,无需考虑其中包含的类型

  • CPU从一条指令到下一条指令到下一条指令以顺序方式执行

  • I/O模块与CPU、贮存交换计算机系统外部的数据

CPU频率不能无限提高随便提一嘴):

  • 理论限制:

    1. mos管开关、脉冲通过门电路需要时间

    2. 为了信号同步、每个脉冲信号需要持续一定时间

  • 制造限制:

    1. 芯片面积越来越大。导致连线延迟越来越大,需要保证信号在设计指定时钟周期内从芯片的一角到达另一角

    2. 频率越高会导致开关损耗也越高,CPU会费电和散热高

  • 解决方法

    1. 改进CPU芯片结构

主存和CPU之间传输数据的速度跟不上CPU的速度(内存墙)也是随便提一嘴

  • 采用高速缓存Cache

CPU在等待I/O设备时保持空闲还是随便提一嘴

  • 采用中断机制

层次式存储结构可以兼顾存储容量、速度和成本知道我要说什么吧

I/O设备传输速率差异大累了

  • 采用缓冲区和改进I/O操作技术

计算机部件互连复杂这个可以看看):

  • 采用总线

    • 控制线:控制数据线和地址线的访问和使用

    • 地址线:指定数据总线和地址I/O端口上的数据的来源或去向

    • 数据线:在系统模块之间传送数据