【愚公系列】软考中级-软件设计师 008-计算机系统知识(计算机体系结构)
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2023年华为云十佳博主,2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
计算机体系结构,也称为计算机架构或计算机结构,是指计算机硬件和软件之间的结构和组织方式。它描述了计算机整体的组成、功能和相互关系,以及指导计算机硬件和软件的设计和实现。
计算机体系结构由以下几个方面组成:
-
指令集架构(ISA):指令集架构定义了计算机与程序员或编译器之间的接口,描述了计算机对指令的支持和指令的执行方式。常见的ISA包括x86、ARM、MIPS等。
-
处理器(CPU)结构:处理器是计算机的核心组件,执行主要的计算和控制任务。处理器结构包括数据通路、控制单元、寄存器等。常见的处理器结构有单周期、多周期、流水线、超标量等。
-
存储器层次结构:计算机的存储器层次结构包括寄存器、缓存、主存和辅助存储器。不同层次的存储器在容量、访问速度和成本等方面有所差异。
-
输入输出系统:输入输出系统是计算机与外部设备之间的接口,用于控制和传输数据。它包括接口电路、设备控制器和设备驱动程序等。
-
中断系统:中断系统用于处理计算机与外部设备或软件之间的异步事件。当发生中断时,处理器会暂停当前任务并转向处理中断请求。中断系统包括中断控制器、中断向量表和中断处理程序。
-
总线结构:总线用于连接计算机内部各个组件,传输数据和控制信号。总线结构包括地址总线、数据总线和控制总线。
计算机体系结构决定了计算机的性能、可扩展性和能耗等方面的特性,对计算机系统的设计、调优和优化起到了重要的指导作用。
🚀一、计算机体系结构
🔎1.Flynn分类法
Flynn分类法是计算机体系结构的分类方法之一,基于指令流中的指令数目和操作数的数目对计算机体系结构进行分类。Flynn分类法根据指令流中的指令数目可以将计算机体系结构分为单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流单数据流(MISD)和多指令流多数据流(MIMD)四种类型。
-
SISD:指令流中只包含一条指令,每个时钟周期只能处理一个操作数。这是传统的冯·诺依曼计算机体系结构,顺序执行指令,如一般的个人电脑。
-
SIMD:指令流中包含多个相同的指令,每个时钟周期可以同时处理多个数据。这种体系结构适用于数据并行计算,如图形处理器(GPU)。
-
MISD:指令流中包含多条指令,每个时钟周期处理一个操作数,但是每条指令在不同的数据上操作。这种体系结构并不常见,主要用于特定领域的应用,如冗余计算和错误检测。
-
MIMD:指令流中包含多条指令,每个时钟周期可以同时处理多个数据。这种体系结构适用于任务并行计算,如分布式系统。
🔎2.CISC与RISC
CISC (Complex Instruction Set Computing) 和 RISC (Reduced Instruction Set Computing) 是两种不同的计算机体系结构。
CISC 是一种传统的计算机体系结构,它使用复杂的指令集,每个指令可以执行多种操作。CISC 设计主要是为了提高指令执行的效率,通过使用复杂的指令来减少指令的数量,从而减少程序的长度和执行时间。CISC 处理器通常具有较高的指令执行速度,但也存在一些缺点,例如复杂的指令集会导致较高的功耗和处理器设计的复杂性。
RISC 是一种精简的计算机体系结构,它使用简单的指令集,每个指令只执行一种操作。RISC 设计主要是为了提高指令的执行速度和效率,通过使用简单的指令来减少指令的执行时间,从而提高指令的执行速度。RISC 处理器通常具有较低的功耗和较简单的设计,但相对于 CISC 处理器,指令执行速度可能会稍慢一些。
CISC 和 RISC 的选择取决于具体的应用场景和需求。CISC 处理器常用于需要高性能和复杂指令的应用,例如桌面计算机和服务器。而 RISC 处理器常用于需要低功耗和高效执行的应用,例如嵌入式系统和移动设备。
现代的处理器设计已经混合了 CISC 和 RISC 的特点,将两种体系结构的优点结合起来,以提供更好的性能和效率。这种混合体系结构通常称为复合体系结构 (CISC-RISC Hybrid)。
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 | 代表 |
---|---|---|---|---|---|
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 研制周期长 | X86 |
RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有LoH层庇ad/Store操 | 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主更适合采用流水线 | 优化编译,有效支持高级语言 | RISC-V ARM |
🔎3.流水线技术
🦋3.1 流水线周期计算方式
流水线是一种准并行处理技术,在计算机程序执行时,多条指令可以重叠进行操作。不同的部件可以同时处理不同指令的不同部分,从而提高部件的利用率和指令的平均执行速度。
在执行一条指令的过程中,需要经历取指、分析和执行三个步骤。在串行情况下,执行指令1时,先处理指令1的取指、分析和执行操作,然后才处理指令2和指令3,依次类推。
而流水线的应用则类似于工厂流水线,在处理指令1的分析阶段时,同时进行指令2的取指操作,并继续执行。当指令1到达执行阶段时,指令2进入分析阶段,并同时对指令3进行取指处理。这样,可以大大提高时间的利用率。
1、例题
一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间t取指=3Δt、分析时间t分析=2Δt、执行时间t执行=4Δt的情况下,若按串行方式执行,则10条指令全部执行完需要( )Δt;若按流水线的方式执行,流水线周期为( )Δt,则10条指令全部执行完需要( )Δt。
2、答案
串行方式:(3+2+4)Δt × 10 = 90Δt
流水线方式:
流水线周期(Δt ):最长的一段,即为执行步骤的时间4Δt;
①理论公式:(t1+t2+…+tk)+(n-1)*Δt
根据理论公式与流水线周期,则可计算得到理论公式下的执行时间为:
(3+2+4)△t+ (10-1)×4△t = 9△t + 36△t = 45△t
②实践公式:(k+n-1)*Δt
n为10;此题的指令包含取指、分析和执行三个阶段,则k为3;流水线周期为最长的一段,即为4Δt;
根据实践公式与流水线周期,则可计算得到实践公式下的执行时间为:
(3+10-1)×4△t = 48△t
🦋3.2 流水线吞吐率、最大吞吐率、加速比
流水线的吞吐率、最大吞吐率和加速比可以使用以下公式进行计算:
-
流水线吞吐率:
流水线吞吐率 = 指令总数 / 执行完毕所需的时间(流水线)其中,指令总数是指在执行过程中需要执行的指令数量。
-
最大吞吐率:
最大吞吐率由流水线中的最慢阶段决定,可以通过以下公式计算:
最大吞吐率 = 1 / 最慢阶段的处理时间最慢阶段的处理时间是指流水线中处理时间最长的阶段的处理时间。
-
加速比:
加速比 = 串行执行时间 / 并行执行时间串行执行时间是指在没有使用流水线时,执行同样任务所需的时间。
并行执行时间是指使用流水线后,执行同样任务所需的时间。
实际计算机体系结构中的流水线性能受到多种因素的影响,如指令冲突、数据相关性、资源竞争等。因此,实际的流水线性能可能与上述公式计算的理论值有所偏差。
🔎4.冯诺依曼结构和哈弗结构
🦋4.1 冯诺依曼结构
冯诺依曼结构(Von Neumann Architecture)是计算机体系结构的一种基本概念,也被称为存储程序计算机。冯诺依曼结构的特点是将计算机的指令存储器和数据存储器合并在一起,共享同样的存储空间。它包括五个组成部分:运算器、控制器、存储器、输入设备和输出设备。
运算器(ALU)负责进行数学和逻辑运算; 控制器(Control Unit)负责指挥和协调各个部件的工作; 存储器(Memory)用于存储程序和数据; 输入设备(Input Device)用于将数据输入计算机; 输出设备(Output Device)用于将计算结果输出。
(1)一般用于PC处理器,如AMD、英特尔的酷睿i3,i5,i7处理器
(2)指令与数据存储器合并在一起
(3)指令与数据都通过相同的数据总线传输。
🦋4.2 哈佛结构
哈佛结构(Harvard Architecture)是另一种计算机体系结构,与冯诺依曼结构相对。哈佛结构的特点是将指令存储器和数据存储器分离,分别使用不同的存储空间。这样可以同时进行指令的取指和数据的存取,提高了数据传输和运算的效率。哈佛结构常用于嵌入式系统和一些特定的应用领域。
(1)一般用于嵌入式系统处理器(DSP)数字信号处理(DSP,Digital SignalProcessing)
(2) 指令与数据分开存储,可以并行读取,有较高数据的吞吐率
(3) 四条总线:指令和数据的数据总线与地址总线
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)