一、计算机系统概述

计算机发展历程:

世界上第一台(通用)数字电子计算机:ENIAC (无存储程序)

  • 进制:十进制
  • 缺点:存储器容量太小 变成采用线路连接方式

电子计算机发展经历了4代,主要元件分别为:电子管晶体管中小规模集成电路大规模集成电路

微型计算机的发展,以微处理器技术为标志

计算机中唯一可直接执行的语言:机器语言
用助记符编写的语言:汇编语言

翻译程序:将高级语言源程序转化为机器语言程序(目标代码)

翻译程序有两种:

  1. 编译程序:将源程序一次性翻译成目标程序,只要源程序不变,无需再次编译: c c++
  2. 解释程序:读一条,翻译一条,立即执行,不会生成目标程序: python

如果源程序汇编语言,目标是机器语言,被称为汇编程序

目前为止,计算机中信息任用二进制存储的原因是:由物理器件的性能(逻辑电路中的高低电平)决定


计算机系统层次结构:

在这里插入图片描述
《计算机组成》关注最下面2层


计算机硬件的基本组成:

在这里插入图片描述


现代计算机结构:

在这里插入图片描述
在这里插入图片描述

一、冯·诺伊曼计算机

运算器控制器存储器I/O设备 五大部分组成,现代计算机将运算器和控制器继承一个芯片上,称为 中央处理器(CPU)

在这里插入图片描述


1、存储器

在这里插入图片描述

作用: 存储程序和数据

主存、辅存:存储器通常指主存,辅存一般指外部设备

存储空间 由若干个 存储单元 构成,每个存储单元由多个 存储元 构成,每个存储元存储01

存储器按地址访问,访问地址为存储单元地址。存储器外部引脚包括地址引脚、命令引脚、数据引脚

通常将存储单元存放的信息为 存储字(word)

存储单元能存放的二进制位数称为存储字长、存储单元长度,可以是1B(8bit)或是字节的整数倍

存储器容量 = 存储单元个数 x 存储单元长度

在这里插入图片描述

  • 地址寄存器(MAR):存放访存地址,位数对应存储单元的个数,例如MAR有10位,则有210 = 1024个存储单元
  • 数据寄存器(MDR):暂存从存储器中读或写的数据

注意:

  • MAR的长度(地址码长度)和PC的长度相等
  • MDR的位数和存储字长相等,一般为字节的二次幂的整数倍
  • MAR和MDR在现代是存在于CPU中的,高速缓存Cache也在CPU中

在这里插入图片描述


2、运算器:

一般由ALU(核心) 、FPU、寄存器组成

功能: 对信息和数据进行处理或运算,并暂存处理或运算结果

最多的操作为 算术运算逻辑运算

算术逻辑单元(ALU),只处理整型数据,需要处理实数时增设浮点运算部件(FPU)

ALU的核心是加法器,能实现加、减等双目运算和与、或、非等逻辑运算。因此由两个数据入端,一个数据出端

运算器中有若干个寄存器,可以保存数据、地址、状态等

3、控制器:

一般由PC、IR、ID、CU(核心)组成

功能: 指挥和控制各部件协调工作来实现程序的自动执行

程序执行过程是 循环的指令执行过程

指令执行过程:取指令分析指令执行指令三个阶段,循环变量为指令地址,下条指令地址由当前指令产生

为了实现循环,需要两个专用寄存器:

  1. 程序计数器(PC):存放作为循环变量的指令地址,能自动+1
  2. 指令寄存器(IR):存放欲执行指令的内容

取指令用PC的内容作为地址,取读存储器,IR内的指令在分析阶段、执行阶段使用。

为了实现当前指令的功能,用 指令译码器ID 来识别IR中的指令操作类型和操作数信息,再用 控制单元CU 产生相应的部件控制信号

完成一条指令:PC取指令 -> IR分析指令 -> CU执行

I/O设备

功能: 实现信息的输入、输出以及外部媒体信息和内部二进制信息的格式转换。

通常运算器、控制器、存储器只有一个,外设可有多个


错题记录:

  1. 冯诺依曼机的基本工作方式:控制流驱动方式
    干扰项:多指令多数据流方式多处理机

  2. 指令和数据均以二进制存放在存储器中,CPU通过指令周期的不同阶段来区分
    干扰项: 指令操作码的译码结果(确定是指令之后才译码)

  3. 逻辑功能上,软件和硬件是等效的,因此软件的功能可以由硬件取代

  4. CPU不包括:地址译码器(主存中)
    其他选项MARIR通用寄存器均在CPU中

  5. CPU中存取速度:寄存器 > Cache > 内存
    解释:寄存器在CPU内部,最快。Cache由高速的SRAM制作,内存由DRAM制作

  6. 若一个8位的计算机系统以16位表示地址,则有65536个地址空间
    解释:8位计算机指机器字长为8位,即一次可以处理8位的数据,和地址空间无关。以16位表示地址,则有216 = 65536 个地址空间

  7. 操作系统属于大型系统软件;翻译程序属于语言处理软件;连接程序属于服务性软件;文本处理属于应用软件

  8. 数据库系统不属于系统软件,数据库管理系统是系统程序

  9. 计算机系统分为6层,上层实现对下层的扩展作用,下层对上层有限制作用上下层可分割

  10. CPU中IR、MAR、DAR都是完全透明的PC、状态寄存器和通用寄存器汇编人员可见


计算机系统的性能指标:

在这里插入图片描述


数据通路带宽

数据总线(各硬件间)一次能并行传输的数据的位数

CPU主频:很大程度决定CPU的工作速度

CPU中用于最基本操作定时的时钟脉冲信号称为CPU主时钟信号,主时钟信号的宽度称为 时钟周期
时钟周期的频率称为 CPU主频,也称 时钟频率(Clock Rate),是时钟脉冲频率

时钟频率 = 1  / 时钟周期

时钟频率单位通常为MHz 或 GHz:
计算的时候采用Hz

1GHz = 103MHz = 106KHz = 109Hz
1s = 103ms = 106μs = 109ns

在这里插入图片描述


响应时间/执行时间: 主要用来评价CPU性能

指一个任务从提交到完成所花的全部时间,包括cpu运算主存访问I/O操作(磁盘访问)操作系统开销等等

T响应 = Tcpu + T等待
  • Tcpu 为CPU时间,指CPU用在程序执行上的时间,包括数据运算、访问主存等。包括用户CPU时间、系统CPU时间。
    CPU性能通常指用户CPU时间,即只包含执行用户程序的时间
  • T等待包括等待I/O操作、操作系统开销等事件

假设CPU完成某任务执行了In条指令,CPU的时钟周期为Tc,则有:

Tcpu = 指令数In x CPI x 时钟周期Tc = 程序总时钟周期数 x 时钟周期Tc

CPI一条指令执行所需要的时钟周期数,通常是确定值,由每条指令加权求和得到的平均值

CPI = 程序所需总时钟周期数 / 程序执行指令条数

通过比较CPU时间拉力比较两台计算机的性能:
计算机的速度可以看作是CPU时间的倒数,计算机的速度之比等于CPU时间之比的倒数。

例如: 计算机M1的和M2执行程序的CPU时间之比为n,则M2和M1的性能之比为n,M2的速度是M1的n倍

例1.1:
若程序A包含1500条指令,程序执行时执行了20000条指令,其中15000条执行的执行需要10个时钟周期,其余为20时钟周期,计算机的时钟频率为2GHz,问程序A执行的CPU时间多少?

答:

CPU的时钟周期Tc = 1 / f = 1 / (2 x  10^9^) = 0.5 ns
Tcpu = [15000 x 10 + 5000 x 20] x 0.5 = 0.125 ms

由此可见,程序执行的指令条数不一定等于程序包含的指令条数,在未说明的情况下求CPU时间时,默认每条指令执行一次

例1.2:
某计算机M的指令集包含A、B、C三类指令,CPI分别为1、2、4。由于编译器的改变,某程序在M上被编译成两个不同的目标代码序列P1和P2。若P1含三类指令条数为8、2、2,P2含三类指令分别为2、5、3,则哪个代码序列指令条数少?哪个执行速度慢?CPI分别是多少?

解:
P1指令条数12条,P2指令条数10条,因此 P2指令条数少
P1需要时钟周期数 = 8 x 1 + 2 x 2 + 2 x 4 = 20
P2需要时钟周期数 = 2 x 1 + 5 x 2 + 3 x 4 = 24
因为是在相同计算机,时钟周期一样,所以 P2的执行速度慢
P1的CPI = 20 / 12 = 1.67
P2的CPI = 24 / 10 = 2.4

可见:不是指令数越少程序执行时间越短,还和CPI有关

  • In和算法、编程技巧、编译程序效率、指令功能强弱有关
  • CPI与指令功能、CPU结构和技术、存储器性能、I/O性能等有关
  • Tc只和CPU的实现技术有关

吞吐率 / 吞吐量:反应计算机系统性能

单位时间内计算机完成的总工作量

Tp = n个任务的总工作量 / 完成n个任务的总时间

总时间为 第一个任务开始到最后一个任务结束 的时间。

工作量的单位没有统一的定义。
吞吐率对应的单位有(既是性能指标,也是性能指标单位):

  1. MIPS:每秒百万条指令,反映计算机执行指令的速度
  2. MFLOPS:每秒百万次浮点操作,反应计算机完成浮点操作的速度
IPS = IPC * 周期数 = 主频 / CPI, MIPS为M倍IPS
MIPS = n个程序执行指令的总条数 / 执行n个程序的总时间(单位ms)
MFLOPS = n个程序执行浮点操作的总条数 / 执行n个程序的总时间(单位ms)

错题记录:

  1. 能缩短程序执行时间的措施有:提高CPU时钟频率优化数据通路结构对程序编译优化

  2. 32位微机表示CPU能同时处理32位的二进制数
    这里的32位指的机器字长。注意:操作系统位数指操作系统可寻址的位数,和机器字长不同

  3. CPI系统结构指令集计算机组织有关,和时钟周期无关

  4. 当前设计高性能计算机的重要技术途径是:采用并行处理技术(多处理器)

  5. 位数和机器字长一定相等的是:ALU通用寄存器
    解释:机器字长是CPU内部用于整数运算数据通路的宽度。分别对应ALU和通用寄存器


补充:

机器字长、指令字长、存储字长、数据字长:
都是字节的整数倍

  • 机器字长: 计算机能直接处理的二进制数据的位数,一般等于内部 寄存器的位数,决定了计算机的运算精度
  • 指令字长:一个 指令字 中包含的二进制代码的位数
  • 存储字长:一个 存储单元 存储二进制代码的长度
  • 数据字长:数据总线一次能并行 传输数据的位数

指令字长一般是存储字长的整数倍,若指令字长是存储字长的2倍,取指令需要2次访存,即取指周期是机器周期的2倍

基准程序执行的越快,性能越好吗?
基准程序中语句有 频度的差异 ,因此不是绝对的


课后题:

一. 计算机 M 的时钟频率为 2GHz;
指令集包含 A、B 两类指令,指令长度都为 2 个字节,指令执行时的 CPI 分别为 5 和 8。某程序 P 的大小为 2 MB,其中 40%为 A 类指令,其余为 B 类指令。
程序 P 执行时,10%的 A 类指令和 20%的 B 类指令分别执行了 20 次,其余指令各执行了 1 次。求程序 P 执行时的 CPU 时间及 CPI

答:程序 P 中共包含 2MB/2B=220条指令,
其中,A 类指令为 0.4×220条,B 类指令为0.6×220 条。
P 执行时,A 类指令执行了 0.4×220×(10%×20+90%×1)=1.16×220 条,B 类指令执行了0.6×220×(20%×20+80%×1)=2.88×220条,共执行了 4.04×220 条指令。

因此,TCPU=(1.16×220×5+2.88×220×8)/(2×109)=14.42×220×10-9≈15.12ms;
CPI=(1.16×220×5+2.88×220×8)/(4.04×220)=28.84/4.04≈7.13。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值