软件设计师——计算机组成与体系结构

1.1计算机系统基础知识

1.1.1计算机系统硬件基本组成

计算机系统是由硬件和软件组成,他们协同工作来运行程序。
计算机基本硬件系统:运算器、控制器、存储器、输入设备、输出设备
CPU(中央处理单元):由运算器、控制器的部件集成,是硬件系统的核心。

1.1.2中央处理单元

中央处理单元(CPU)是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
1.CPU的功能:程序控制、操作控制、时间控制、数据处理(还可对系统内部和外部的中断异常做出响应,进行响应处理)
2.CPU组成
CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
(1)、运算器:
它是数据加工处理部件,用于完成各种算术和逻辑运算,运算器所进行的全部操作都是有控制器发出的控制信号指挥的,所以他说执行部件。
功能:执行所有算术运算、执行所有逻辑运算并进行逻辑检测。
组成
a.算术逻辑单元(ALU):负责处理数据,实现对数据的算术运算和逻辑运算。
b.累加寄存器(AC):它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。
c.数据缓冲寄存器(DR):作为CPU与内存、外部设备之间数据传送的中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲。
d.状态条件寄存器(PSW):保存由算术指令和逻辑指令运行或测试得结果建立的各种条件码的内容,主要分为状态标志和控制标志,例如运算结果进位标志(C)、运算结果溢出标志(V)、运算结果为0标志(Z)、运算结果为负标志(N)、中断标志(I)、方向标志(D)和单步标志等。
(2)、控制器:
功能:运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。它不仅保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑,时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。
指令控制逻辑要完成取指令、分析指令、执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。
时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。
总线逻辑是为多个功能部件服务的信息通路的控制电路。
中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。
组成
a.指令寄存器(IR):是临时存放从内存中取得的程序指令的寄存器,用于存放当前从主存储器读出的正在执行的一条指令。
b.程序计数器(PC):用于存放下一条指令所在单元的地址,当执行一条指令时,处理器首先要从PC中取出指令在内存中的地址,通过地址总线寻址获取。
c.地址寄存器(AR):用于保存当前CPU所访问的内存单元的地址。
d.指令译码器(ID):对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操控制器发出具体的控制信号,控制各部件的工作,完成所需的功能。
(3)、寄存器组:
寄存器组可分为专用寄存器、通用寄存器。

1.1.3数据表示

各种数值在计算机中表示的形式称为机器数,其特点是采用二进制。
(1)原码、反码、补码、移码:
a.原码表示法:
最高位位符号位,0为正,1为负,其余位表示数值的大小。
例:
[+1] = 0 0000001
[-1] = 1 0000001
[+127] = 0 1111111
[-127] = 1 1111111
[+0.5] = 0 # 1000000
[-0.5] = 1 # 1000000
(#表示小数点的位置,第一位表示符号为,0为正,1为负)
b.反码表示法:
正数的反码与原码相同,负数的反码是对其原码逐为取反,但符号位除外。
例:
[+1] = 0 0000001
[-1] = 1 1111110
[+127] = 0 1111111
[-127] = 1 0000000
[+0.5] = 0 # 1000000
[-0.5] = 1 # 0111111
(#表示小数点的位置,第一位表示符号为,0为正,1为负)
c.补码表示法:
正数的补码与其原码相同,负数的补码是其反码的末尾加1。
例:
[+1] = 0 0000001
[-1] = 1 1111111
[+127] = 0 1111111
[-127] = 1 0000001
[+0.5] = 0 # 1000000
[-0.5] = 1 # 1000000
(#表示小数点的位置,第一位表示符号为,0为正,1为负)
d.移码表示法:
正数和负数的移码都是对其补码进行首位(符号位)取反。
例:
[+1] = 1 0000001
[-1] = 0 1111111
[+127] = 1 1111111
[-127] = 0 0000001
[+0.5] = 1 # 1000000
[-0.5] = 0 # 1000000
(#表示小数点的位置,第一位表示符号为,0为正,1为负)
各种码制表示的带符号数的范围:
定点整数:纯整数,小数点在最低有效数值之后
定点小数:纯小数,小数点在最高有效数值之前
软件设计师——计算机组成与体系结构_第1张图片
(2)浮点数
a.浮点数的表示:N=R^E * F
R:表示基数,E:表示阶码,F:表示尾数
一个二进制数可表示为:N=2^E*R
在浮点数的表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。
如果浮点数的阶码用R位的移码表示,尾数用M位的补码表示,则这种浮点数能表示的数值范围为:
在这里插入图片描述
b.浮点数运算:

  • 对阶。使两个数的阶码相同,把阶码小的数尾数右移K位,同时阶码加上K
  • 求尾数和(差)
  • 结果格式化
  • 舍入处理
  • 溢出判别

1.1.4校验码

计算机系统运行时,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。
码距:编码系统中任意两个合法编码之间至少要有多少个二进位不同。
(1)、奇偶校验码
奇偶校验码是一种简单有效的校验方法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。
对于奇校验,它可以检测代码中奇数为出错的编码,但不能发现偶数位出错的情况。
常用的奇偶校验码有三种:水平奇偶校验码、垂直奇偶校验码、水平垂直奇偶校验码。
(2)、海明码
海明码是贝尔实验室设计的,是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据为之间的特定位置上插入K个校验位,通过扩大码距来实现检错和纠错。
设数据位为n位,校验位为k位,则:2^k-1>=n+k
(3)、循环冗余校验码
循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。
CRC代码格式为:
软件设计师——计算机组成与体系结构_第2张图片

1.2计算机体系结构

1.2.1计算机体系结构的发展

(1)、计算机体系结构分类
a.从宏观上按处理机的数量进行分类,分为单处理系统、并行处理与多处理系统和分布式处理系统。
b.从微观上按并行程度分类,有Flynn分类法、冯泽云分类法、Handler分类法和Kuck分类法。

  • Flynn分类法:
    单指令流,单数据流(SISD)
    单指令流,多数据流(SIMD)
    多指令流,单数据流(MISD)被证明不可能,至少目前不实际
    多指令流,多数据流(MIMD)

  • 冯泽云分类法:
    字串行位串行(WSBS)
    字并行位串行(WPBS)
    字串行位并行(WSBP)
    字并行位并行(WPBP)

  • Handler分类法:
    把计算机硬件结构分为三个层次:处理机级、每个处理机中的算逻单元级、每个算逻单元中的逻辑门电路级。

  • Kuck分类法:
    单指令流单执行流(SISE)
    单指令流多执行流(SIME)
    多指令流单执行流(MISE)
    多指令流多执行流(MIME)
    (2)、指令系统
    a.CICS与RISC
    CISC和RISC是指令集发展的两种途径。

  • CISC(复杂指令集计算机):数量多,使用频率差别大,可变长格式。支持多种寻址方式,研制周期长。

  • RISC(精简指令集计算机):数量少,使用频率接近,定长格式。支持少种寻址方式,优化编译,有效支持高级语言,超流水及超标量技术,硬布线逻辑与微程序相结合在微程序技术中。
    (3)、流水线
    流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率赫尔指令的平均速度。
    —>取指—>分析—>执行—>
    a.流水线计算
    流水线的周期为执行时间最长的一段。
    流水线计算公式:
    设流水线周期为#t,n为指令条数,k为一条指令分为的执行过程数

    • 理论公式(考试中常用):(t1+t2+…+tk)+(n-1)*#t
    • 实践公式:(k+n-1)*#t

    b.流水线的吞吐率
    流水线的吞吐率(TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。公式如下:
    TP = 指令条数 / 流水线执行时间
    流水线的最大吞吐率为:TPmax = 1 / 流水线周期

    c.流水线的加速比
    完成同样的一批任务,不使用流水线所用的时间与使用利流水线所用的时间之比称为流水线的加速比。公式为:
    S = 不使用流水线执行时间 / 使用流水线执行时间

    d.流水线效率
    流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水线总的时空区之比。公式为:
    E = n个任务占用的时空区 / k个流水段的总的时空区

1.2.2存储系统

(1)、存储器的层次结构
软件设计师——计算机组成与体系结构_第3张图片
(2)、存储器的分类
a.按照存储器位置分类:内存、外存。
b.按存储器的构成材料分类:磁存储器、半导体存储器、光存储器。
c.按存储器的工作方式分类:读/写存储器(RAM)、只读存储器。
只读存储器可细分为:固定存储器(ROM)、可编程的只读存储器(PROM)、可擦除可编程的只读存储器(EEPROM)、电擦除可编程得只读存储器(EEPROM)、闪速存储器(Flash Memory)等类型。
d.按访问方式分类:按地址访问的存储器和按内容访问的存储器。
e.按寻址方式分类:随机存储器(RAM)、顺序存储器(SAM)、直接存储器(DAM)。
(3)、相联存储器
相联存储器是一种按内容访问的存储器。其工作原理就是把数据或数据的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字,特别适合于信息的检索和更新。
相联存储器可用在高速缓冲存储器中,在虚拟存储器中用来作为段表、页表或快表存储器,用在数据库和知识库中。
(4)、高速缓存
高速缓存用来存放当前最活跃的程序和数据,其特点是位于CPU与主存之间;容量一般在几千字节到几兆字节之间;速度一般比主存快5~10倍,由快速半导体存储器构成。
a.高速缓存的组成
高速缓存(Cache)、主存(Main Memory)与CPU的关系图:
软件设计师——计算机组成与体系结构_第4张图片
Cache存储器部分用来存放主存的部分拷贝(副本)信息。控制部分的功能是判断CPU要访问的信息是否在Cache存储器中,若在即为命中。命中时直接对Cache存储器寻址;未命中时,要按照替换原则决定主存的一块信息放到Cache存储器的哪一块里。
b.高速缓存中的地址映像方法

  • 直接映像。是指主存的块与Cache对应关系是固定的,如图:
    软件设计师——计算机组成与体系结构_第5张图片
    优点:地址变换简单
    缺点:灵活性差
  • 全相联映像。这种映像方式允许主存的任一块可以调入Cache存储器的任何一个块的空间中。如图:
    软件设计师——计算机组成与体系结构_第6张图片优点:主存的块调入Cache的位置不受限制,十分灵活。
    缺点:无法从主存块号中直接获得Cache的块号,变换比较复杂,速度较慢。
  • 组相联映像。这种方式是前面两种方式的折中,就是规定组采用直接映像方式而块采用全相联映像方式。

c.替换算法

替换算法的目标是使Cache获得尽可能高的命中率。常用算法如下:

  • 随机替换算法(RAND)。就是用随机数发生器产生一个要替换的块号,将该块替换出去。
  • 先进先出算法(FIFO)。就是将最先进Cache的块替换出去,可能产生“抖动”。
  • 近期最少使用算法(LRU)。这种方法是将近期最少使用的Cache中的信息替换出去,不会产生“抖动”。
  • 优化替换算法。

d.Cache性能分析
Cache性能是计算机系统性能的重要方面。命中率是Cache的一个重要指标,但不是主要指标。
设以h为Cache的命中率,tc为Cache的存取时间,tm为主存的访问时间,则Cache存储器的等效加权平均访问时间ta为:
ta = h*tc +(1-h)*tm = tc + (1-h)(tm - tc)
降低Cache失效率的主要方法有:选择恰当的块容量、提高Cache的容量、提高Cache的相联度等。
e.磁盘容量计算:
磁盘容量有两种指标:一种是非格式化容量,它是指一个磁盘能存储的总位数;另一种是格式化容量,它是指各扇区中数据区容量的总和。计算公如下:
非格式化容量 = 面数 x (磁道数/面) x 内圆周长 x 最大位密度
格式化容量 = 面数 x (磁道数/面) x (扇区数/道) x (字节数/扇区)

1.2.3输入/输出技术

(1)、微型计算机中最常用的内存与接口的编制方式
a.内存与接口地址独立编址
优点:编程序或读程序时很容易使用和辨别
缺点:用于接口的指令太少,功能太弱
b.内存与接口地址统一编址
优点:原则上用于内存的指令都可以用于接口,这就大大增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。
缺点:整个地址空间被分为两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。由于用于内存和用于接口的指令是完全一样的,维护程序是就需要根据参数定义表仔细加以辨认。
(2)、直接程序控制
直接程序控制是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。
a.无条件传送
这种条件下外设总是准备好的,它可以无条件的随时接收CPU发来的输出数据,也可以无条件的随时向CPU提供需要输入的数据。
b.程序查询方式
利用查询方式进行输入/输出,通过CPU来执行程序来查询外设的状态,判断外设是否准备好接收数据或向CPU输入数据。根据这种状态,CPU有针对性地为外设的输入/输出服务。
缺点:降低了CPU的效率,对外部的突发事件无法做出实时的响应。
(3)、中断方式
a.利用中断方式完成数据的输入/输出的过程:
当I/O系统与外设交换数据时,CPU无须等待也不必去查询I/O的状态。当I/O系统准备好后,则发出中断请求信号通知CPU,CPU接到请求后,保存正在执行程序现场,转入I/O中断服务程序的执行,完成I/O系统的数据交换,然后再返被打断的程序继续执行,与程序控制方式相比,中断方式为CPU无须等待而提高了效率。
b.中断处理方法:
多中断信号法、中断软件查询法、菊花链法、总线仲裁法、中断向量表法。
(4)、直接存储器存取方式
在计算机与外设交换数据得过程中,无论是无条件传送、利用查询方式传送还是利用中断方式传送,都需要由CPU通过执行程序来实现,这就限制了数据的传送速度。
a.直接内存存取(DMA):
指数据在内存与I/O设备之间的直接成块传送,不需要CPU的任何干涉,只需要CPU在过程开始和结束时的处理,实际操作由DMA硬件直接执行完成。在DMA传送数据时要占用系统总线,此时CPU不能使用总线。
(5)、输入输出处理机(IOP)
DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU效率显著提高,而通道的出现则进一步提高了CPU的效率。它分担了CPU的部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传输。

1.2.4总线结构

(1)、总线分类
a.数据总线(DB):
用来传送数据,是双向的。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数。
b.地址总线(AB):
用于传送CPU发出的地址信息,是单向的。地址总线的宽度决定了CPU的最大寻址能力。
c.控制总线(CB):
用来传送控制信号、时序信号和状态信息等,是双向的。
(2)、常见总线
a.ISA总线。工业标准总线,支持16位I/O设备。
b.EISA总线。是ISA基础是发展起来的32位总线。
c.PCI总线。目前微机上广泛采用的内总线,采用并行传输方式,支持32位和64位。
d.PCI-E总线。采用点对点串行连接。
e.前端总线(FSB)。是将CPU连接到北桥芯片的总线。
f.RS-232C总线。串行外总线,传输线较少,最少只需三条线(发,收,地线)即可完成全双工通信。
g.SCSI总线。并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。
h.SATA总线。串行ATA,主要用作主板和大量存储设备之间的数据传输之用。
i.USB总线。通用串行总线,近几年应用十分广泛,支持外设热插拔。
j.IEEE-1394总线。高速串行外总线,支持外设热插拔。
k.IEEE-488总线。并行总线接口标准。

1.3安全性、可靠性与系统性能评测基础知识

1.3.1计算机安全概述

(1)、计算机安全等级
美国国防部和国家标准局《可信计算机系统评测标准》TCSEC\TDI将系统或分为4个组,7个等级,如图:
软件设计师——计算机组成与体系结构_第7张图片
(2)、安全威胁
软件设计师——计算机组成与体系结构_第8张图片
软件设计师——计算机组成与体系结构_第9张图片
(3)、影响数据安全的因素
a.内部因素:
可采用多种技术对数据加密;
制定数据安全规则;
建立安全存储体系;
建立事故应急措计划和容灾措施;
重视安全管理制定安全管理规范。
b.外部因素:
将数据分为不同级别密级,规定外部使用人员权限;
设置身份、密码、口令、指纹、声纹、笔迹等多种认证;
设置防火墙,防止外部入侵破坏数据;
建立入侵检测、审计和追踪,对计算机进行防卫;
对计算机物理环境的保障,防辐射、防水、防火等外部防灾措施。

1.3.2加密技术和认证技术

(1)、加密技术
a.对称加密技术
采用对称密码编码技术,其特点是文件加密和解密采用相同的秘钥。
优点:加密速度快,效率高
缺点:加密强度不高,秘钥分发困难
常用对称加密算法:

  • 数据加密标准算法(DES):主要采用替换和移位的方法加密。
  • 三重DES(3DES或TDEA):在DES基础上采用三重DES。
  • RC-5:RSA数据安全公司很多产品都使用RC-5。
  • 国际数据加密算法(IDEA):是在DES基础上发展起来的,类似于3DES,秘钥为128位。
  • 高级加密标准算法(AES):基于排列和置换运算。

b.非对称加密技术
与对称加密算法不同,非对称加密算法需要两个秘钥:公钥、私钥,公钥和私钥是一对。
非对称加密有两个不同的体制:
软件设计师——计算机组成与体系结构_第10张图片
优点:保密性较好,消除了最终用户交换秘钥的需要
缺点:加密和解密花费时间长速度慢,不适合对文件加密,而只适合于对少量数据进行加密
常见非对称加密算法:

  • RSA:512位或1024位,计算量大,难破解
  • Elgamal:其基础是Diffie-Hellman秘钥交换算法
  • ECC:椭圆曲线算法
  • 背包算法
  • Rabin
  • D-H

(2)、信息摘要
简要的描述一份较长的信息或文件,它可以看作一份长文件的“数字指纹”,用于创建数字签名,对于特定文件而言,信息摘要是惟一的。信息摘要可以被公开,它不会透露相应文件得任何内容。
常用信息摘要算法:MD5,SHA等,市场上广泛使用MD5,SHA算法的散列值为128位和160位,由于SHA采用的秘钥长度较长,因此安全性高于MD5.
MD5算法特点:

  • 压缩性
  • 容易计算
  • 抗修改性
  • 强抗碰撞

(3)、数字签名
可也解决验证签名和用户身份验证、不可抵赖性的问题。
数字签名的过程:

  1. 信息发送者使用一个单向散列函数(Hash函数)对信息生成摘要
  2. 信息发送者使用自己的私钥签名信息摘要
  3. 信息发送者吧信息本身和已签名的信息摘要一起发送出去
  4. 信息接收者通过使用与信息发送者使用的同一个单向散列函数(Hash函数)对接收者的信息本身生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。

(4)、数字信封
发送者将原文用对称秘钥加密传输,而将对称秘钥用接收方的公钥进行加密发送给接受者;
接收方收到数字信封,用自己的私钥解密信封,取出对称秘钥,解密密文获得原文。

(4)、SSL协议
SSL(安全套接层),一个保证任何安装了安全套接字的客户和服务器间事务安全的协议,它涉及所有TCP/IP应用程序。
主要提供以下三方面服务:

  • 用户服务器的合法性认证
  • 加密数据以隐藏被传送得数据
  • 保护数据的完整性

1.3.3计算机可靠性

(1)、计算机可靠性概述
计算机系统的可靠性是指从它开始运行(t = 0)到某时刻t这段时间内能正常运行的概率,用R(t)表示。所谓失效率,是指单位时间内失效的元件数与元件总数的比例,用r表示,当r为常数是,可靠性与失效率的关系:
R(t) = e^(-rt)
两次故障之间系统能正常工作的时间平均值称为平均无故障时间(MTBF),即
MTBF = 1/r
通常用平均修复时间(MTRF)来表示计算机的可维修性,即计算机的维修效率,指从故障发生到机器修复平均所需要的时间。
计算机的可用性是指计算机的使用效率,它以系统在执行任务的任意时刻能正常工作的概率A来表示,即:
A = MTBF/(MTBF + MTRF)
计算机的RAS是指可靠性R,可用性A,可维护性S这三个指标衡量一个计算机系统。
(2)、计算机可靠性模型
a.串联系统:
可靠性R = R1R2R3…Rn
软件设计师——计算机组成与体系结构_第11张图片
b.并联系统:
可靠性R = 1-(1-R1)(1-R2)(1-R3)…(1-Rn)
软件设计师——计算机组成与体系结构_第12张图片
软件设计师——计算机组成与体系结构_第13张图片

你可能感兴趣的:(软件设计师,计算机体系结构)