Skip to content

第一章 计算机系统概述

计算机的发展历程

第一代计算机:电子管计算机 其逻辑元件采用电子管,存储器为声延迟线或磁鼓,典型逻辑结构为定点运算。 冯诺依曼提出“存储程序”,其基本思想是:必须将事先编好的程序和原始数据送入主存后才能执行程序,一旦程序被启动执行,计算机在不需要操作人员干预自动完成逐条指令并执行的任务。 IAS 计算机: 1

第二代计算机:晶体管计算机 逻辑元件采用晶体管,其内存采用磁芯存储器,外存采用磁鼓与磁带存储器,实现了浮点数运算,并在系统结构方面提出了变址、中断、I/O 处理器等新概念。

第三代计算机:集成电路计算机 集成电路的应用时微电子与计算机技术相结合的一大突破,为构建运算速度快、价格低、容量大、可靠性高、体积小、功耗低的各类计算机提供了技术条件。

第四代计算机: 超大规模集成电路计算机

计算机系统的基本组成

计算机系统由硬件和软件两部分组成。

计算机硬件

冯诺依曼计算机的基本特征: (1) 采用“存储程序”工作方式 (2) 计算机由运算器、控制器、存储器、输入/输出设备 5 部分组成。 (3) 存储器不仅能存储数据,还能存放指令,形式上数据和指令没有区别,但计算机能区分它们。控制器应能控制指令的自动执行。运算器应能进行加、减、乘、除 4 种基本运算,并且能进行逻辑运算。操作人员可以通过输入/输出设备操作计算机。 (4) 计算机内部以二进制形式表示指令和数据,每条指令由操作吗和地址吗两部分组成,操作码指出操作类型,地址码指出操作数的地址,由一串指令组成程序。

计算机的硬件主要包括:中央处理器,存储器,I/O 控制器,外部设备和各类总线 中央处理器(CPU):简称处理器,是整个计算机的核心部件 ,主要用于指令的执行。CPU 包括两种基本部件:数据通路和控制器。数据通路主要包括算数逻辑部件和通用寄存器等,其功能是用来执行算术和逻辑运算等操作。控制器 用来对指令进行译码,生成相应的控制信号,以控制数据通路正确的操作。 存储器:外存和内存。内存:主存储器和高速缓存 cache 外存:辅助存储器和海量后备存储器 外部设备:外设 也称为 I/O 设备 I/O 是输入输出的缩写。外设由机械部分和电子部分组成,机械部分是外部设备本身,电子部分是控制外部设备的 I/O 控制器或 I/O 适配器 总线:传输信息的介质,用于在部件之间传输信息,CPU、主存和 I/O 模块通过总线互连,在 CPU 和 I/O 模块中都含有相应的存储部件,即缓存器。

计算机软件

根据用途分:系统软件和应用软件 系统软件:操作系统、语言处理系统(如 C 语言编译器)、数据库管理系统(如 Oracle)和各类实用程序(如磁盘碎片整理程序、备份程序) 应用软件:专门为处理数据处理、科学计算、事务管理、多媒体处理、工程设计以及过程控制等应用所编写的各类程序

计算机系统的层次结构

向上层用户提供一个抽象的简洁接口而将较低层次的实现细节隐藏起来

计算机系统抽象层的转换

2 高级语言和低级语言(机器级语言) 机器级语言:机器语言(可读性差 由 0 1 组成)和汇编语言(由英文符号和二进制代码); 高级语言 -> 机器语言 转换过程需要 “程序设计语言处理系统” 其包含翻译程序(将一种编程语言转换成另一种编程语言) 翻译程序: (1) 汇编程序:也成汇编器 将汇编语言源程序翻译为机器语言目标程序 (2) 解释程序:解释器 将源程序中的语句将其执行顺序逐条翻译为机器指令并立即执行。 (3) 编译程序:编译器 将高级语言源程序翻译成汇编语言或机器语言目标程序

透明:一个存在的事物或概念从某个角度看似乎不存在,即,对实际存在事物或概念感觉不到,则称为透明 对用户透明 指用户看不见

程序开发与执行过程

从源程序到可执行程序

(1) 通过程序编辑软件(vscode)的到 hello.c 文件,hello.c 文件在计算机中以 ASCII 字符方式存放 这样的文件称为文本文件,源程序文件都是文本文件,是可显示和可读的 3 (2)预处理阶段:预处理程序 do... (3)编译阶段:编译程序 do... (4)汇编阶段:汇编程序 do... (5)链接阶段:链接程序 do... 最终生成的可执行文件被保存在磁盘上,可以通过某种方式启动一个磁盘上的可执行文件 4

可执行文件的启动和执行

5

程序与指令的关系

指令执行的过程

第一步:根据 Pc 取指令到 IR 第二步:指令译码并送出控制信号。 第三步:取操作数。 第四步:指令执行。 第五步:回写结果。

计算机系统性能评价

计算机性能的定义

吞吐率和响应时间是考量一个计算机系统性能的两个基本指标。 吞吐率:也称为带宽 表示在单位时间内所完成的工作量。 响应时间:也称为执行时间或等待时间,指从作业提交开始到作业完成所用的时间。

MAR 位数反应存储单元的个数(最多支持多少个)

MDR 位数 = 存储字长 = 每个存储单元的大小

总容量 = 存储单元个数 ✖️ 存储字长

计算机性能的测试

CPU 时间:CPU 用于程序执行的时间,包含两部分 (1)用户 CPU 时间,指真正用于运行用户程序代码的时间 (2)系统 CPU 时间,指为了执行用户程序而需要 CPU 运行操作系统的时间。 其他时间:I/O 操作,CPU 执行其他用户程序的时间

CPU 时间的衡量: (1)时钟周期:计算机执行一条指令的过程被分成若干步骤和相应的动作来完成,每个动作都要由响应的控制信号进行控制,控制信号都要由定时信号进行同步,定时信号就是 CPU 的主脉冲信号,其宽度称为时钟周期。 (2)时钟频率:CPU 的主频就是 CPU 中的主脉冲信号的时钟频率,是 CPU 时钟周期的倒数。 (3)CPI:表示执行一条指令所需的时钟周期数。 CPU 执行时间 = 程序所含时钟周期数 ➗ 时钟频率 = 程序所含时钟周期数 ✖️ 时钟周期 程序总时钟周期数 = 程序所含指令条数 ✖️ CPI n 种不同类型的指令,第 i 种指令的条数和 CPI 分别为 Ci 和 CPIi 程序总时钟周期数 = C1CPI1 + C2CPI2+ C3CPI3 + ... + CnCPIn 平均 CPI = 程序总时钟周期数 ➗ 程序所含指令条数 例 1: 6

例 2: 7

用指令执行速度进行评估

MIPS:平均每秒钟执行多少百万条指令 MIPS = 1/一条指令的平均执行时间 MFLOPS:每秒所执行的浮点运算有多少百万次 GFLOPS:10^9 TFLPOS:10^12 PFLOPS:10^15 8

用基准程序进行性能评估

基准程序: 课后习题:

计算机性能指标

  1. 机器字长 通常所说的“某 16 位或 32 位机器”,其中的 16 位、32 位指的就是机器字长。简称字长。字长是指计算机进行一次整数运算(定点整数运算)所能处理的二进制数据的位数,通常与 CPU 的寄存器位数、ALU 有关。因此,字长一般等于通用寄存器的位数或 ALU 的宽度,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8 位)的整数倍
  • 机器字长、指令字长和存储字长的关系
  1. 数据通路带宽 数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU 内部的数据总线宽度 (内部寄存器的大小)有可能不同。
  • 各个子系统通过数据总线连接形成的数据传送路径称为数据通路。
  1. 主存容量 主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数 x 字长(如 512K×16 位)来表示存储容量。其中,MAR 的位数反映了存储单元的个数MDR 的位数反映了存储单元的字长。例如,MAR 为 16 位,表示 2^16=65536,即此存储体内有 65536 个存储单元(可称为 64K 内存,1K=1024),若 MDR 为 32 位,则表示存储容量为 64K×32 位

  2. 运算速度

提高系统性能的综合措施 (2010)

(1)吞吐量和响应时间

  • 吞吐量:指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU 能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。几乎每步都关系到主存储器,因此系统吞吐量主要取决于主存储器的存取周期
  • 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括 CPU 时间(运行一个程序所花费的时间)与等待时间(用于磁盘访 问、存储器访问、1/O 操作、操作系统开销等的时间)。

(2)主频和 CPU 时钟周期

时钟脉冲信号和时钟周期的相关概念(2019)

  • CPU 时钟周期:机器内部主时钟脉冲信号的宽度,它是 CPU 工作的最小时间单位 时钟脉冲信号由机器脉冲源发出的脉冲信号经整形和分频后形成。 时钟周期以相邻状态单元间 组合逻辑电路的最大延迟为基准确定。 时钟周期也以指令流水线的每个流水段的最大延迟时间确定。

主频和时钟周期的转换计算 (2013)

  • 主频(CPU 时钟频率):机器内部主时钟的频率,即时钟周期的倒数,它是衡量机器速度的重要参数。对于同一个型号的计算机,其主频越高,完成指令的 一个执行步骤所用的时 间越短,执行指令的速度越快。主频最直观的理解就是每秒有多少个时钟周期。

CPU 时钟周期=1/主频,主频通常以 Hz(赫兹)为单位,10Hz 表示每秒 10 次

(3)CPI(CyclePerInstruction),即执行一条指令所需的时钟周期数。 不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其 CPI 指该程序或该 机器指令集中的所有指令执行所需的平均时钟周期数,此时 CPI 是一个平均值

  • IPS(InstructionsPerSecond),即每秒执行多少条指令,IPS= 主频/平均 CPI。

(4)CPU 执行时间。指运行一个程序所花费的时间

CPU 执行时间 = CPU 时钟周期数 / 主频 = (指令条数 x CPI)/ 主频

CPU 的性能(CPU 执行时间)取决于三个要素:主频、CPI 和指令条数

(5)MIPS(MillionInstructionsPerSecond),即每秒执行多少百万条指令

MIPS = 指令条数=(执行时间 ×10°=主频=(CPx10^9)

(6)FLOPS(Floating-pointOperationsPerSecond),即每秒执行多少次浮点运算

•MFLOPS(MillionFLOPS),即每秒执行多少百万(10^6)次浮点运算。 •GFLOPS(GigaFLOPS),即每秒执行多少十亿(10^9)次浮点运算。 •TFLOPS(TeraFLOPS),即每秒执行多少万亿(10^12)次浮点运算。 •PFLOPS(PetaFLOPS),即每秒执行多少千万亿(10^15)次浮点运算。 •EFLOPS(ExaFLOPS),即每秒执行多少百京(10^18)次浮点运算(1 京=1 亿亿=10^16)。 •ZFLOPS(ZettaFLOPS),即每秒执行多少十万京(10^21)次浮点运算。

在描述存储容量、文件大小等时,K、M 、G、T 通常用 2 的幂次表示,如 IKb=2b;在描述速率、频率等时,k、M、G、T 通常用 10 的幂次表示,如 1kb/s=10°b/s。通常前者用大写的 K,后者用小写的 k,但其他前缀均为大写,表示的含义取决于所用的场景

  1. 基准程序

存储器容量

MAR 的位数反应存储单元数量

MDR 的位数反应每个存储单元大小

CPU

时钟周期:CPU 中国呢最小的时间单位,每个动作至少一个时钟周期

主频(时钟频率):1/时钟周期,单位 Hz

CPI:执行一条指令所需的时钟周期数

CPU 执行时间:运行一个程序所花的时间 = (指令条数 * CPI)/ 主频

IPS:每秒执行多少条指令 = 主频 / 平均 CPI

FLOPS:每秒执行多少次浮点数运算

数据通路宽度、吞吐量、响应时间、基准程序

常用数量单位

描述存储容量、文件大小:K = 2^10 ,M = 2^20, G = 2^30,T = 2^40

描述速率、频率:K = 10^3 M = 10^6. G = 10^9 T = 10 ^ 12 P = 2^15 E = 2^18 Z = 2^21

亿 = 10^8

总结

翻译程序、解释程序、汇编程序、编译程序的区别和联系是什么?

翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,只要源程序不变,就无须重新翻译。另 一种是解释程序,它将源程序的 一条语句翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行 完。所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序。

汇编程序也是 一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。

编译程序与汇编程序的区别:若源语言是诸如C、C++、Java等“高级语言”,而目标语言是 诸如汇编语言或机器语言之类的 “ 低级语言”,则这样的一 个翻译程序称为编译程序。若源语言 是汇 编语言,而目标语言是机器语言,则这样的一 个翻译程序称为汇编程序。

字长、机器字长、指令字长、存储字长的区别和联系

字长是指CPU内部用于整数运算的数据通路的宽度,因此字长等于CPU内部用于整数运算的运算器位数和通用寄存器宽度。

指令字长:一个指令字中包含的二进制代码的位数(半字长指令、双字长指令)

存储字长:一个存储单元存储的二进制代码的位数

性能指标

时钟周期:CPU工作的最小时间单元

主频 = 1/时钟周期

CPI:一条指令所需要的时钟周期数

IPS:每秒执行多少条指令 IPS = 主频 / 平均CPI

MIPS:每秒执行多少百万条指令 = 主频/ (CPI x 10^6)

MIPS 百万 10^6 GIPS 十亿 10^9 TIPS 万亿 10^12 PIPS 千万亿 10^15 亿亿10^16

执行时间 = 指令条数 x CPI / 主频

如有转载或 CV 的请标注本站原文地址