系统架构设计师-2.计算机组成与结构-计算机硬件基础

系统架构设计师-2.计算机组成与结构-计算机硬件基础

要学的挺多。一头雾水的学习中… …

1.1 计算机系统概述

计算机系统可划分为硬件(子系统)和软件(子系统)两部分。
硬件由机械、电子元器件、磁介质和光介质等物理实体构成。
软件是一系列按照特定顺序组织的数据和指令,并控制硬件完成指定的功能。

可将计算机软件进一步分为系统软件和应用软件。
系统软件是指支持应用软件的运行,为用户开发应用软件提供平台支撑的软件。
应用软件是指计算机用户利用计算机的软、硬件资源为某一专门的应用目的而开发的软件。

1.2 计算机硬件基础知识

组成

在这里插入图片描述

冯·诺依曼结构

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

冯.诺依曼将计算机硬件划分为5个部分:

  • 运算器
  • 控制器
  • 存储器
  • 输入设备
  • 输出设备

在实际的硬件中,运算器单元和控制器单元被集成为一体,集成在CPU(中央处理器)中实现。
在这里插入图片描述

特点

  1. 一般用于PC处理器,如I3,I5,I7处理器
  2. 指令与数据存储器合并在一起
  3. 指令与数据都通过相同的数据总线传输

CPU组成

运算器控制器
1 算术逻辑单元ALU:数据的算术运算和逻辑运算
2 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用于暂存数据
3 数据缓冲寄存器DR:写内存时,暂存指令或数据
4 状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)
1 程序计数器PC:存储下一条要执行指令的地址
2 指令寄存器IR:存储即将执行的指令
3 指令译码器ID:对指令中的操作码字段进行分析解释
4 时序部件:提供时序控制信号

专用处理器(哈佛结构)

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。
哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

常见的有:图形处理器(GPU)、信号处理器(DSP)、现场可编程逻辑门阵列(FPGA)。

GPU常有数百个以上内核,经过优化可并行运行大量计算。

DSP 专用于实时的数字信号处理,因此常采用哈佛体系结构

特点

  1. 一般用于嵌入式系统处理器(DSP) 数字信号处理(DSP, Digital Signal Processing)
  2. 指令与数据分开存储,可以并行读取,有较高数据的吞吐率
  3. 有4条总线:指令和数据的数据总线与地址总线

指令集系统

指令的组成:一条指令由操作码和地址码两部分组成 ,操作码决定要完成的操作,地址码指参加运算的数据及其所在的单元地址。

在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

指令集分类(CISC/RISC)

根据指令系统的复杂程度 , 指令集架构可以分为两大类 : CISC(复杂指令集) 和 RISC(精简指令集)。

在这里插入图片描述

复杂指令集计算机(CISC,Complex Instruction Set Computers)
精简指令集计算机(RISC,Reduced Instruction Set Computers)

CISC(复杂指令集) 以 Intel、AMD 的 x86 CPU 为代表。
RISC(精简指令集) 以 ARM、Power 为代表。
国产处理器目前有龙芯、飞腾、申威等,常采用 RISC-V、MIPS、ARM 等精简指令集架构。

指令寻址方式

顺序寻址

当执行一段程序时,是一条指令接着一条指令地顺序执行。

跳跃寻址

下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

指令操作数的寻址方式

立即寻址

指令的地址码字段指出的不是地址,而是操作数本身。

直接寻址

在指令的地址字段中直接指出操作数在主存中的地址。

间接寻址

指令地址码字段所指向的存储单元中存储的是操作数的地址。

寄存器寻址

指令中的地址码是寄存器的编号。

基址寻址

将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。

变址寻址

变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。

流水线技术

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。

各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

在这里插入图片描述

指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。

流水线周期

为执行时间最长的一段,通常用 △t 代表。

举例 :【一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间 t取指 =3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下, 流水线周期为:为执行时间最长的一段指令,故为 4 △t。】

流水线执行时间

多个指令完成各个阶段流水线步骤的时间。

流水线执行时间计算公式:1条指令执行时间( t1 + t2 + … + tk ) + (指令条数 - 1)* 流水线周期△t。
● 理论公式:( t1 + t2 + … + tk ) + ( n - 1 ) * △t
● 实践公式:k(1条指令分为k步) * 流水线周期△t + ( n指令条数 - 1) * 流水线周期△t
注:解题中,先用理论公式,未得到解再用实践公式。

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

举例 :【一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,10条指令全部执行完需要() △t】
解:
1条指令执行时间为 t1 + t2 + t3 = 3△t + 2△t + 4△t = 9△t
10条指令全部执行完需要: 9△t + (10 - 1)* 4△t = 45 △t

流水线吞吐率

ThroughPut rare,指在单位时间内流水线所完成的任务数量或输出的结果数量。
计算流水线吞吐率的公式:TP = 指令条数 / 流水线执行时间

在这里插入图片描述

流水线最大吞吐率

在这里插入图片描述

流水线的吞吐率为:指令条数/流水线执行时间 = n/(k*t + ( n - 1) * t) = n / ( k + n - 1) * t。

流水线的最大吞吐率就是流水线的吞吐率中,n趋向于无穷大的结果。当n趋向于无穷大时,上式的结果为: n / ( k + n - 1) * t = 1/t。也就是为 1/ 流水线周期。

举例 :【一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,10条指令的吞吐率为(),该流水线的最大吞吐率为( ),10条指令全部执行完需要() △t】
解:
流水线周期为 4△t
1条指令执行时间为 t1 + t2 + t3 = 3△t + 2△t + 4△t = 9△t

10条指令全部执行完(流水线执行时间)需要: 9△t + (10 - 1)* 4△t = 45 △t

流水线执行时间计算公式:1条指令执行时间( t1 + t2 + … + tk ) +(指令条数 - 1)* 流水线周期△t。

10条指令的吞吐率为 指令条数 / 流水线执行时间 = 10 / 45 △t = 1/9△t 。
最大吞吐率为 n/(9△t + (n - 1)* 4△t) = n/(5△t + 4n△t) = 1/4△t

流水线加速比

完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。
加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高。

计算流水线加速比的公式:不使用流水线执行时间 / 使用流水线执行时间。

举例 :【一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,若连续向流水线输入 10 条指令,则该流水线的加速比为()】
解:10 条指令使用流水线执行时间 = (3+2+4)△t + (10-1)*4△t = 45△t.
10 条指令使用流水线执行时间 = 10 * (3+2+4)△t = 90△t,
所以加速比为:90Δt/45Δt=2∶1

存储器

存储器的主要功能是存储程序和各种数据,并且能够在计算机运行过程高速、自动地完成程序或者数据的存储。
存储器是有记忆的设备,而且 采用2种稳定状态的物理器件来记录存储信息,所以计算机中的程序和数据都要转换为二进制代码才可以存储和操作
存储器可以分为内部存储器(内存)和外部存储器。

分类

按照与处理器的物理距离,可分为4个层次:
片上缓存、片外缓存、主存(内存)、外存
其访问速度一次降低,容量依次提高。

层次化存储结构

在这里插入图片描述

CPU寄存器

CPU内的组成部分。

寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。

高速缓存 Cache

使用Cache改善系统性能的依据是程序的局部性原理,提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。

总线

总线是一组能为多个部件分时共享的公共信息传送线路。

一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。所以总线是半双工模式。

  • 共享:指的是总线上面挂载了很多的部件,这些部件之间可以进行信息的相互交换,这个交换信息的过程都是通过这一组公共线路来完成的,这个公共线路是共享的,但是这种共享又有一定的分时特点。
  • 分时:是指同一时刻仅允许一个部件向总线发送信息,但允许多个部件同时从总线上接收相同的信息。不能同时向总线发送信息,如果同时向总线发送多条消息,那么会认为产生信号冲突。

总线的分类

按总线相对于CPU或其他芯片的位置可分为内部总线和外部总线两种。

按总线功能来划分,可分为:
地址总线(Address Bus, AB) : 用来指定在RAM (Random Access Memory)之中储存的数据的地址。
数据总线(DataBus,DB) : 在CPU与RAM之间来回传送需要处理或是需要储存的数据。
控制总线(Control Bus,CB): 将微处理器控单元(Control Unit))的信号,传送到周边设备。

按照总线中数据线的多少,可分为串行总线和并行总线。两者的区别如下:

名称数据线特点应用
并行总线多条双向数据线有传输延迟,适合短距离连接和传输系统总线、计算机各部件
串行总线一条双向数据线或两条单向数据线速率不高,但适合长距离连接和传输通信总线、计算机之间或计算机与其它系统间

单工、半双工与全双工

单工:总线只能实现发送或者接收的功能,叫做单工的总线。
半双工:总线在线路上可以轮流的实现发送,和接收的功能,叫做半双工的总线。
全双工:总线如果既能实现发送,又能实现接收的功能,叫做全双工的总线。

单工、半双工、全双工,是由具体的硬件来决定的。

在这里插入图片描述

校验码

奇偶校验码

奇偶校验码,可检查奇数位的错误,不可纠错。

奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。一般拼接在头部。

校验方式:

奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。

海明码

海明码, 可检错, 不可纠错。

校验方式

分组奇偶校验。插入在信息位中间。

位置必须是在2n位置(n从0开始,分别代表从右边数起分别是第1、2、4、8、16…),信息码也就是在非2n位置。

设数据位是n位,海明校验码是k位,则n和k的必须满足以下关系式:2k >= n+k+1。

CRC循环冗余校验码

循环冗余校验(CRC, Cyclic Redundancy Check), 可检错, 不可纠错。是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

校验方式

模2除法求余数 ,拼接作为校验位。拼接在信息位尾部。

CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错。
CRC基本原理: 模二运算
模二运算是一种二进制算法。
模二运算包括模二加、模二减、模二乘、模二除四种二进制运算。“+”表示模二加,“-”表示模二减,“×”或“·”表示模二乘,“÷”或“/”表示模二除。模二运算不考虑进位和借位,即模二加法是不带进位的二进制加法运算,模二减法是不带借位的二进制减法运算,模二除法是不进位加法。

模二除法

在做除法运算的过程中不计其进位的除法。模二除法是不进位加法。
例如 10111 对 110 进行模二除法, 计算结果为 0011.

在这里插入图片描述

例如 101110000 对 10011 进行模二除法, 计算结果为 1100.

在这里插入图片描述

二进制系数多项式P(x)

对任意的二进制数都构造与其对应的一个二进制系数多项式。
例如:10011B,其对应的二进制系数多项式为P(x) = x4+x+1。

P(x) 应该满足:

  • 最高位和最低位都是1
  • 当被传送信息任何一位发生错误时,P(x)不被T(x)整除
  • 不同位发生错误时,余数应该不同
  • 对余数继续做模二除法时,应该使余数循环
原始数据计算CRC

假设要传输的原始数据为 1101011011B,发送方和接收方在通信前约定好的除数为10011B。计算CRC与最终的报文数据。

:由于除数10011B是五位数(5bit),那么假设余数(即CRC码)为四位数(4bit)。因为现在余数未知,所以在进行模二除法运算前先将余数设为 0000B,即待发送的数据为 11010110110000B。

进行模二除法运算来确定余数(即CRC码):
在这里插入图片描述

可见余数为111, 补齐4位则为CRC码, 1110B,因此发送方实际发送的是11010110111110B。

接收方在接收后需要将其模二除以10011B来进行CRC校验:
在这里插入图片描述

可见余数为0,因此本次通信没有差错。

常用CRC版本

基于二进制系数多项式P(x)的限定条件, 在有限域内求解本原元以及对 P(x) 的取值是通信领域的一个研究课题。此处不讨论。

下面列出常用的研究成果:

名称多项式表示法应用举例
CRC-8X8+X2+X+10X07
CRC-12X12+X11+X3+X2+X+10X80Ftelecom systems
CRC-16X16+X15+X2+10X8005Bisync, Modbus, USB, ANSI X3.28, SIA DC-07, many others; also known as CRC-16 and CRC-16-ANSI
CRC-CCITTX16+X12+X5+10X1021ISO HDLC, ITU X.25, V.34/V.41/V.42, PPP-FCS
CRC-32X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+10x04C11DB7ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCS
CRC-32CX32+X28+X27+X26+X25+X23+X22+X20+X19+X18+X14+X13+X11+X10+X9+X8+X6+10x1EDC6F41iSCSI, SCTP, G.hn payload, SSE4.2, Btrfs, ext4, Ceph

校验码总结

在这里插入图片描述

接口

接口是指同一计算机不同功能层之间的通信规则。

常见的接口有:

  • 输入输出接口
    • HDMI
    • SATA
    • RS-232
  • 网络接口
    • RJ45
    • FC
  • A/D 转化接口

外部设备

计算机结构中的非必要部件。
如键盘、鼠标、显示器等。

例题

1.(指令集) RISC(精简指令系统计算机)的特点不包括:

  • A.指令长度固定,指令种类尽量少
  • B.寻址方式尽量丰富,指令功能尽可能强
  • C.增加寄存器数目,以减少访存次数
  • D.用硬布线电路实现指令解码,以尽快完成指令译码

解析 : 见上文 【指令集分类(CISC/RISC)】章节
答案 B 寻址方式尽量丰富,指令功能尽可能强

2.(流水线)某指令流水线由5段组成,各段所需要的时间如下图所示。连续输入100条指令时的吞吐率为( )。

在这里插入图片描述

解析
流水线周期: 3Δt。
一条指令执行时间: Δt + 3Δt + Δt + 2Δt + Δt = 8Δt。
100条指令的流水线执行时间计算为: 8Δt + (100-1)* 3Δt = 305Δt。
N条指令的吞吐率计算公式为 N / N条指令的流水线执行时间。 因此答案为 100/305Δt。
答案 100条指令的吞吐率: 100/305Δt。

3.(流水线)某计算机系统采用 5 级流水线结构执行指令,设每条指令的执行由取指令(2Δt)、分析指令(1Δt)、取操作数(3Δt)、运算(1Δt)和写回结果(2Δt)组成,并分别用5个子部完成,该流水线的最大吞吐率为( ); 若连续向流水线输入 10 条指令,则该流水线的加速比为()

  • A.1/9Δt
  • B.1/3Δt
  • C.1/2Δt
  • D.1/1Δt

解析
流水线周期, 为执行时间最长的一段指令:3Δt。
一条指令执行时间:(2 + 1 + 3 + 1 + 2)Δt = 9Δt。
流水线执行时间:一条指令执行时间 +(指令条数-1)* 流水线周期 = 9Δt + (n-1)* 3Δt = 6Δt+3nΔt。
流水线的吞吐率为:指令条数/流水线执行时间 = n/(6Δt+3nΔt) = 10/36Δt。
流水线的最大吞吐率就是流水线的吞吐率中,n趋向于无穷大的结果。当n趋向于无穷大时,上式的结果为:n/(6Δt+3nΔt) = n/3nΔt = 1/3Δt。

流水线加速比=不用流水线的执行时间/使用流水线的执行时间。
10条指令不用流水线的执行时间=(2Δt+1Δt+3Δt+1Δt+2Δt)×10=90Δt。
10条指令使用流水线的执行时间=(2Δt+1Δt+3Δt+1Δt+2Δt)+(10-1)×3Δt=36Δt。
所以加速比为:90Δt/36Δt=5∶2。

答案 :
最大吞吐率:1/3Δt
加速比:5∶2

4.(校验码/CRC)求0101配置的海明码?

解析 :0101的数据位n = 4,根据 2k >= n+k+1,计算 2k >= k+5, 得 k = 3。
答案 3

5.(校验码/CRC)原始报文(信息码)10111, 其生成多项式为G(X)=X4+X+1,计算CRC校验码及CRC编码后的值

解析 :G(X)=X4+X+1 >>> X4+X+1 >>> X4+03+02+X1+X0

在这里插入图片描述

得到二进数:10011。

因多项式最高位为4所以追加4个0, 信息码10111 + 0000 得 101110000,
101110000 与 10011 进行模二除法运算,如下:

在这里插入图片描述

取余数,得到校验码为1100(组合信息码+校验码,如100111100

答案 CRC校验码 1100, CRC编码后的值 100111100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值