【学习Day4】计算机基础

✍🏻记录学习过程中的输出,坚持每天学习一点点~

❤️希望能给大家提供帮助~欢迎点赞👍🏻+收藏⭐+评论✍🏻+指点🙏

❤️学习和复习的过程是愉快嘚。

1.7.3 流水线

流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel首次在486芯片中开始使用的。在CPU中由5---6个不同功能的电路单元组成一条指令处理流水线,然后将一条指令分成5---6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即取指令、译码、执行、写回结果,浮点流水又分为八级流水。

取指->分析->执行->

流水线计算公式

第1条指令执行时间+(指令条数-1)*流水线周期

  1. 理论公式:(t~1~+t~2~+...+t~k~)+(n-1)xt
  2. 实践公式:Kxt+(n-1)xt

一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3△t、分析时间t分析=2△t、执行时间t执行=4△t的情况下,若按串行方式执行,则10条指令全部执行完需要( )△t;若按流水线的方式执行,流水线周期为( )△t,则10条指令全部执行完需要( )△t。

流水线的吞吐量

流水线的吞吐量(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出结果的数量。计算流水线吞吐率的基本公式为:12

吞吐率(TP) = 指令条数 / 流水线执行时间

或者用最大吞吐率的概念表示为:

最大吞吐率 = 1 / 流水线周期

流水线的加速比是指完成相同一批任务,不适用流水线所用的时间与使用流水线所用的时间之比:
S = 不使用流水线执行时间 / 使用流水线执行时间

对于非流水线的计算硬件,每个周期为320ps,吞吐量为每千兆条指令(GIPS),即每秒十亿条指令。而对于流水线化的计算硬件,如一个分为三个阶段的流水线,每个阶段通过一个组合逻辑块和一个寄存器,流水线的周期为120ps,吞吐量由于使用寄存器增加了流水线的阶段而提高到原来的2.67倍。

流水线的局限性包括不一致的划分和流水线过深导致的收益下降。不一致的划分是因为各个阶段处理问题的组合逻辑功能不同,所耗费的时间也不一样。在实际设计中,时钟周期是相同的,因此只能选择延迟最长的那个阶段延迟来作为周期。如果流水线的阶数划分过多,会引入大量寄存器,使得效率降低。

此外,还有带反馈的流水线系统,以及解决流水线瓶颈的方法,如瓶颈段细分或重复设置瓶颈段流水线,以提高吞吐量和效率。

1.7.4 冯诺依曼结构和哈佛结构

特点对比:

1.8.1 总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。

总线特性

由于总线是连接各个部件的一组信号线。通过信号线上的信号表示信息,通过约定不同信号的先后次序即可约定操作如何实现。总线的特性如下
(1)物理特性 :物理特性又称为机械特性,指总线上部件在物理连接时表现出的一些特性,如插头与插座的几何尺寸、形状、引脚个数及排列顺序等。
(2)功能特性 :功能特性是指每一根信号线的功能,如地址总线用来表示地址码。数据总线用来表示传输的数据,控制总线表示总线上操作的命令、状态等。
(3)电气特性 :电气特性是指每一根信号线上的信号方向及表示信号有效的电平范围,通常,由主设备(如CPU)发出的信号称为输出信号(OUT),送入主设备的信号称为输入信号(IN)。通常数据信号和地址信号定义高电平为逻辑1、低电平为逻辑0,控制信号则没有俗成的约定,如WE表示低电平有效、Ready表示高电平有效。不同总线高电平、低电平的电平范围也无统一的规定,通常与TTL是相符的。

4)时间特性:时间特性又称为逻辑特性,指在总线操作过程中每一根信号线上信号什么时候有效,通过这种信号有效的时序关系约定,确保了总线操作的正确进行。  为了提高计算机的可拓展性,以及部件及设备的通用性,除了片内总线外,各个部件或设备都采用标准化的形式连接到总线上,并按标准化的方式实现总线上的信息传输。而总线的这些标准化的连接形式及操作方式,统称为总线标准。如ISA、PCI、USB总线标准等,相应的,采用这些标准的总线为ISA总线、PCI总线、USB总线等。

总线分类

总线按功能和规范可分为五大类型:
数据总线(Data Bus) :在CPU与RAM之间来回传送需要处理或是需要储存的数据。
地址总线(Address Bus) :用来指定在RAM(Random Access Memory)之中储存的数据的地址。
控制总线(Control Bus) :将微处理器控制单元(Control Unit)的信号,传送到周边设备。
扩展总线(Expansion Bus) :外部设备和计算机主机进行数据通信的总线,例如ISA总线,PCI总线。
局部总线(Local Bus):取代更高速数据传输的扩展总线。

重点为DB、AB、CB。

优缺点

采用总线结构的主要优点

1、面向存储器的双总线结构信息传送效率较高,这是它的主要优点。但CPU与I/O接口都要访问存储器时,仍会产生冲突。

2、CPU与高速的局部存储器和局部I/O接口通过高传输速率的局部总线连接,速度较慢的全局存储器和全局I/O接口与较慢的全局总线连接,从而兼顾了高速设备和慢速设备,使它们之间不互相牵扯。

3、简化了硬件的设计。便于采用模块化结构设计方法,面向总线的微型计算机设计只要按照这些规定制作cpu插件、存储器插件以及I/O插件等,将它们连入总线就可工作,而不必考虑总线的详细操作。

4、简化了系统结构。整个系统结构清晰。连线少,底板连线可以印制化。

5、系统扩充性好。一是规模扩充,规模扩充仅仅需要多插一些同类型的插件。二是功能扩充,功能扩充仅仅需要按照总线标准设计新插件,插件插入机器的位置往往没有严格的限制。

6、系统更新性能好。因为cpu、存储器、I/O接口等都是按总线规约挂到总线上的,因而只要总线设计恰当,可以随时随着处理器的芯片以及其他有关芯片的进展设计新的插件,新的插件插到底板上对系统进行更新,其他插件和底板连线一般不需要改。

7、便于故障诊断和维修。用主板测试卡可以很方便找到出现故障的部位,以及总线类型。
采用总线结构的缺点

由于在CPU与主存储器之间、CPU与I/O设备之间分别设置了总线,从而提高了微机系统信息传送的速率和效率。但是由于外部设备与主存储器之间没有直接的通路,它们之间的信息交换必须通过CPU才能进行中转,从而降低了CPU的工作效率(或增加了CPU的占用率。一般来说,外设工作时要求CPU干预越少越好。CPU干预越少,这个设备的CPU占用率就越低,说明设备的智能化程度越高),这是面向CPU的双总线结构的主要缺点。同时还包括:

1、利用总线传送具有分时性。当有多个主设备同时申请总线的使用是必须进行总线的仲裁。

2、总线的带宽有限,如果连接到总线上的某个硬件设备没有资源调控机制容易造成信息的延时(这在某些即时性强的地方是致命的)。

3、连到总线上的设备必须有信息的筛选机制,要判断该信息是否是传给自己的。

1.9.1 加密技术和认证技术

对称加密技术

优点:算法公开、加密和解密速度快,适合于对大数据量进行加密

缺点:加密强度不够、秘钥安全管理困难
非对称加密技术

优点:安全性更好

缺点:加解密花费的时间长,速度慢,不适合于对文件加密,只适用于少量数据进行加密。
信息摘要

消息摘要算法是一种用于将任意长度的数据转换为固定长度摘要的算法,它通过对原始数据进行哈希运算生成一个唯一的摘要值,用于验证数据的完整性和一致性。这种算法的特点包括:

输入长度可变:消息摘要算法可以处理任意长度的输入数据,无论是短文本还是大文件。

固定长度输出:算法会将输入数据转换为固定长度的摘要值,通常以字节序列的形式表示。

单向性:摘要值无法逆向还原为原始数据,因此无法从摘要值推导出输入数据。

碰撞概率低:消息摘要算法应该具有较低的碰撞概率,即不同的输入数据生成相同的摘要值的概率应该非常低。

1.10.1 计算机可靠性模型

计算机可靠性模型是一种用来评估和预测计算机系统在特定条件下正常运行的概率或期望寿命的数学模型。这些模型帮助设计者和工程师理解系统潜在的故障模式,预测系统性能,并在设计阶段采取措施来提高系统的整体可靠性。计算机可靠性模型通常考虑各种因素,包括硬件故障、软件错误、环境因素以及操作失误等。

1.串联系统

在计算机可靠性模型中,串联系统(Series System)是一个基本的概念,指的是系统中的所有组件必须全部正常工作,系统才能被认为是正常工作的。如果系统中的任何一个组件失败,整个系统将失败。这种模型常见于那些对可靠性要求极高的场景,如航空航天、军事系统、关键基础设施的控制系统等。

1.1 串联系统的可靠性计算

假设一个系统由(n)个相互独立的组件组成,每个组件的可靠性分别为( R 1 , R 2 , ... , R n ) (R~1~, R~2~, \ldots, R~n~)因为这些组件是串联的,所以系统的总可靠性R~系统~是各个组件可靠性的乘积:

R~系统~ = R1 R2... RN

这个公式的基础是概率论中的乘法规则,它适用于事件相互独立的情况。在实际应用中,这意味着每个组件的失败是独立的,一个组件的失败不会影响到其他组件的可靠性。

1.2 举例说明

假设有一个由三个组件组成的系统,每个组件的可靠性分别为0.9、0.95和0.8。那么,系统的总可靠性为:

R =0.90.950.8=0.684

这表明,尽管单个组件的可靠性可能相对较高,但当这些组件以串联方式组合时,系统的整体可靠性可能会显著降低。

1.3 提高串联系统的可靠性

由于串联系统的总可靠性受到最不可靠组件的显著影响,因此提高系统可靠性的关键策略之一是提高各个组件的可靠性,特别是那些可靠性较低的组件。

此外,还可以采用以下方法来提高串联系统的可靠性:

冗余设计 :在系统中加入额外的、功能相同的备用组件,采用并联配置,以提高系统的整体可靠性。这种方法虽然会增加成本和复杂性,但可以显著提升系统的容错能力。

定期维护和检查:通过定期维护和检查,及时发现并更换可能失败的组件,以减少系统故障的可能性。
使用更可靠的组件 :选择更高可靠性的组件来替代现有的较不可靠的组件,虽然可能增加成本,但对提高系统的整体可靠性是有益的。

串联系统的可靠性模型提醒我们,在设计复杂系统时,需要综合考虑所有组件的可靠性,并采取适当的措施来确保系统作为一个整体能够可靠地工作。

2.并联系统

并联系统的可靠性模型是分析和设计高可靠性系统的重要工具。在这个模型中,系统由多个并行工作的组件构成,只要至少有一个组件正常工作,整个系统就能正常运行。这反映了在实际系统中常见的冗余设计理念,旨在通过添加备份组件来提高系统的整体可靠性。

2.1 并联系统的可靠性公式

对于一个包含N个并行组件的系统,其可靠性®可以通过下面的公式计算:

这个公式的意义在于计算整个系统失败的概率,即所有组件同时失败的概率,然后用1减去这个值得到至少有一个组件工作时系统整体的可靠性。

2.2 解释和应用

解释:公式中的((1 - R_i))计算的是第(i)个组件失败的概率。所有这些失败概率的连乘给出了所有组件都会失败的总概率。最后,(1 -)这个值就是系统至少有一个组件正常工作,也就是系统可靠性的计算结果。

应用:这个模型特别适用于需要高可用性的系统设计,比如服务器集群、数据存储的冗余副本、多路电源供应系统等。通过合理设计并联的组件,可以大大减少系统全面故障的风险,确保关键服务的连续性和数据的完整性。

🔎3.练习

1、某系统由3个部件构成,每个部件的千小时可靠度都为R,该系统的千小时可靠度为(1-(1-R)^2)R,则该系统的构成方式是( )。(2019年下半年)

A.3个部件串联

B.3个部件并联

C.前两个部件并联后与第三个部件串联

D.第一个部件与后两个部件并联构成的子系统串联

解析:

为了确定这个题目中描述的系统构成方式,我们首先要理解给出的可靠性公式:R_{系统} = (1-(1-R)^2)R 。

分析公式

首先看内层的 ((1-R)^2),它表示两个组件都失败的概率。因此,(1 - (1-R)^2) 表示至少有一个在这两个组件中是工作的(即两个组件中至少有一个成功的概率)。

外层的 ® 显然是第三个组件的可靠性。

由于公式是 ((1-(1-R)^2) * R),这意味着我们首先计算至少有一个在前两个组件中成功的概率,然后这个结果要与第三个组件成功的概率相乘。这表明第三个组件与前两个组件(并联在一起)是串联的。

选项分析

A. 3个部件串联:如果三个部件串联,系统的可靠性应为 (R * R * R = R^3)。因此不匹配。

B. 3个部件并联:如果三个部件并联,系统的可靠性将是 (1 - (1-R)^3)。因此不匹配。

C. 前两个部件并联后与第三个部件串联:这与公式推导吻合,首先将两个部件并联,其可靠性是 (1 - (1-R)^2),然后这个并联的部分与第三个部件串联,最终系统可靠性为 ((1-(1-R)^2)R)。

D. 第一个部件与后两个部件并联构成的子系统串联:这个选项的构成与题目中给出的公式不匹配。

正确答案是 **C. 前两个部件并联后与第三个部件串联。**这一选项符合题目中给出的系统可靠度计算公式。

相关推荐
alfiy9 分钟前
Elasticsearch学习笔记(六)使用集群令牌将新加点加入集群
笔记·学习·elasticsearch
爱学的小涛20 分钟前
【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解
java·开发语言·笔记·后端·nio
爱学的小涛21 分钟前
【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
java·开发语言·笔记·后端·nio
北极无雪25 分钟前
Spring源码学习:SpringMVC(4)DispatcherServlet请求入口分析
java·开发语言·后端·学习·spring
望森FPGA39 分钟前
HDLBits中文版,标准参考答案 |3.1.1 Basic Gates | 基本门电路
学习·fpga开发
JavaGPT1 小时前
prometheus学习笔记之PromQL
笔记·学习·prometheus
害羞的白菜1 小时前
Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)
linux·运维·笔记·jmeter·nginx·centos·负载均衡
纪伊路上盛名在1 小时前
如何初步部署自己的服务器,达到生信分析的及格线
linux·运维·服务器·python·学习·r语言·github
地球空间-技术小鱼1 小时前
嵌入式系统学习
嵌入式硬件·学习
dengqingrui1237 小时前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp