![](https://img-blog.csdnimg.cn/direct/246b72e25e864a64be6a17ccb2587ba1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
程序猿之计算机系统结构
文章平均质量分 86
本博客主要是构建计算机系统结构的知识体系,在后面会继续迭代文章
夏驰和徐策
一个喜欢打游戏的计算机专业学生;这是我的GitHub:https://github.com/XiaChiandXuce
展开
-
1.2 计算机系统结构的概念
1964年,Amdahl在介绍IBM 360系统时,提出了计算机系统结构的经典定义:计算机系统结构是程序员所看到的计算机属性,即概念性结构与功能特性。这个定义强调了计算机系统对于程序员来说的可见属性,例如指令集、数据表示、寻址规则等。J.L.Hennessy和D.A.Patterson将系统结构定义为包括计算机设计的三个方面:指令集结构、组成和硬件。这可以视为系统结构的广义定义,它涵盖了从软件到硬件的全方位视角。原创 2024-02-22 19:31:12 · 946 阅读 · 0 评论 -
4.5 循环展开和指令调度
循环展开和指令调度是提高超标量处理机性能的有效技术。指令调度是编译器的另一项关键技术,通过更改代码中指令的执行顺序(而不改变程序的最终结果),以减少指令间的依赖性,填充流水线中的空闲周期,从而提高执行效率。通过将循环体展开,编译器可以将原本分散在多个迭代中执行的操作合并到更少的迭代中执行,这样可以减少循环控制语句的执行频率,降低分支预测错误的概率,同时增加了流水线利用率。循环展开和指令调度是提升程序性能的两种重要技术,尤其在超标量处理机中的应用中,这些技术能够充分利用处理器的资源,提高程序的执行效率。原创 2024-02-26 16:46:26 · 1296 阅读 · 1 评论 -
4.4 多指令流出技术
基于静态调度的多流出技术通过在每个时钟周期内流出多条指令来提高处理器性能。虽然这种方法能够有效减少或消除数据和控制冲突,但它也要求处理器具备复杂的冲突检测和处理能力。通过优化指令流出过程和采用先进的编译技术,可以进一步提高超标量处理机的性能。原创 2024-02-26 16:33:31 · 1207 阅读 · 0 评论 -
4.3 动态分支预测技术
动态分支预测技术通过分析分支指令的历史执行情况来预测其未来行为。这种预测方式的核心优势在于其动态适应性——预测结果会根据分支行为的变化而调整。与静态分支预测方法相比,动态方法提供了更高的预测准确性。原创 2024-02-26 16:17:21 · 1806 阅读 · 1 评论 -
4.2 指令的动态调度
Tomasulo算法是一种高效的动态调度算法,旨在解决数据依赖和资源冲突问题,实现高度的指令并行执行。算法的核心思想是使用寄存器重命名技术来消除WAR(写后读)和WAW(写后写)冲突,同时采用保留站来动态管理指令的执行。这种方法不仅允许乱序执行指令,还支持乱序完成,极大地增加了执行指令的灵活性和并行度。通过例4.1的分析,我们可以看到Tomasulo算法如何在指令执行过程中动态管理数据依赖和资源分配,以优化执行效率。原创 2024-02-26 16:03:29 · 1011 阅读 · 2 评论 -
4.1 指令并行的概念
在探索如何最大化指令级并行(ILP)的利用,以提高处理器性能方面,研究者和工程师们已经开发了多种技术。这些技术旨在克服执行指令时可能遇到的各种挑战,包括但不限于数据依赖、控制依赖和资源冲突。原创 2024-02-26 15:37:41 · 459 阅读 · 0 评论 -
3.5 向量处理机
向量处理机,尤其是CRAY-1这样的经典机型,通过其高度并行的处理能力和专为向量计算优化的硬件设计,在科学计算和工程模拟领域发挥了重要作用。这些机器的设计哲学——利用硬件级别的并行性来加速计算——在当今的多核和众核处理器设计中仍然具有广泛的应用。原创 2024-02-23 14:02:54 · 1224 阅读 · 0 评论 -
3.4 流水线
流水线技术的引入使得MIPS这样的RISC(精简指令集计算机)架构能够以较低的时钟频率达到高性能,通过并行处理多条指令的不同阶段,显著提高了指令的吞吐率。这包括增设多个多路选择器(MUX),用于在不同来源间选择数据,以及增加定向技术,允许某些数据直接从产生它们的阶段跳过一些中间阶段,直接送到需要它们的阶段。在将MIPS指令集的简单实现转化为流水线实现的过程中,关键的改造包括引入流水寄存器、调整数据通路,以及增强控制逻辑来处理流水线中的数据冲突和分支指令。:对于访存指令,这个阶段完成数据的加载或存储。原创 2024-02-23 13:31:48 · 816 阅读 · 0 评论 -
3.3 流水线的相关与冲突
流水线设计中的相关与冲突问题是提高性能的主要挑战之一。通过精巧的流水线设计和高级的处理技术,可以显著减少这些问题的影响,从而提高流水线的效率和处理能力。理解和解决这些问题对于设计高效的计算机架构至关重要。原创 2024-02-23 13:12:33 · 1437 阅读 · 0 评论 -
3.2 流水线的性能指标
流水线效率(Efficiency)可以定义为流水线设备实际工作时间与整个流水线运行时间的比值。这个比值越高,意味着流水线中的资源利用得越充分,效率越高。流水线设计中的瓶颈问题、额外开销和冲突问题对性能和效率有显著影响。通过细致的设计和优化,可以显著提高流水线的性能。设计者需要在提高吞吐率、减少延迟和避免冲突之间找到平衡,以实现高效、高性能的计算机系统。原创 2024-02-23 12:54:41 · 1583 阅读 · 0 评论 -
3.1 流水线的基本概念
流水线技术借鉴了工业生产中的流水线概念,通过将一个重复的过程分解为若干个子过程,每个子过程由专门的功能部件实现,从而在时间上错开,依次通过各功能段。这样,每个子过程可以与其他子过程并行进行,实现了在任一时间点,多个任务在流水线的不同阶段同时进行,大大提高了总体的处理速度和效率。在计算机中,流水线技术可以应用于指令的解释执行过程(指令流水线)和运算的执行过程(运算操作流水线)。指令流水线通常分为取指令、译码、执行和存结果等子过程,而运算操作流水线则根据具体运算分解为不同的子过程。原创 2024-02-22 22:43:26 · 930 阅读 · 0 评论 -
2.6 MIPS指令集结构
MIPS指令集结构提供了一个清晰、高效的框架,用于理解和实现现代RISC处理器的设计原则。通过对MIPS的学习,可以深入理解RISC体系结构的优势以及它如何影响现代计算机的设计和性能。原创 2024-02-22 21:56:35 · 565 阅读 · 0 评论 -
2.5 指令格式的设计
指令格式的设计需要综合考虑性能、硬件实现的简化以及程序存储空间的需求。在性能和存储空间之间的选择反映了系统设计者的优先级,对于希望优化性能的设计,固定长度的指令格式更为合适;指令格式的设计是指令集架构(ISA)设计的关键组成部分,它直接影响到指令的解码、执行效率以及程序的存储空间需求。一个精心设计的指令格式可以提高处理器的性能,简化硬件实现,并优化程序代码的长度。虽然理论上可以使用Huffman编码来减小操作码的平均长度,但这会产生变长的操作码,增加硬件处理的复杂度。原创 2024-02-22 21:42:59 · 405 阅读 · 0 评论 -
2.3 指令集结构的功能设计
指令集结构的功能设计是计算机系统架构设计中的关键环节。它不仅需要平衡硬件和软件的功能分配,还要兼顾性能、成本和灵活性的多方面因素。通过合理的设计,可以极大地提高计算机系统的整体性能和效率。原创 2024-02-22 21:24:35 · 418 阅读 · 0 评论 -
2.2 寻址方式
图2.2显示的是不同寻址方式在VAX计算机上运行的gcc、Spice和Tex基准程序的使用情况统计,其中立即数寻址和偏移寻址使用频度最高。主要的寻址方式包括立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、偏移寻址、索引寻址、自增寻址、自减寻址和缩放寻址等。整体而言,多种寻址方式的使用和支持可以提升程序的灵活性和CPU的性能,但也可能增加指令集和CPU实现的复杂度。间接寻址方式中,指令提供的是一个地址,该地址指向存储器中的另一个位置,而最终的操作数则在那个位置上。这种方式常用于实现数组和指针操作。原创 2024-02-22 21:07:57 · 391 阅读 · 0 评论 -
2.1 指令集结构的分类
根据CPU中用于存储操作数的存储单元类型,指令集结构可以分为堆栈结构、累加器结构、通用寄存器结构,以及在通用寄存器结构的基础上进一步细分为寄存器-存储器结构(RM结构)和寄存器-寄存器结构(RR结构)。现代计算机设计趋向于采用通用寄存器结构,特别是寄存器-寄存器结构,因为它提供了高效的指令执行模式,降低了对存储器访问的依赖。不同的指令集结构对计算机的性能、编程模型和硬件实现都有不同的影响。虽然存储器-存储器结构允许直接在存储器间进行操作,这种结构现在已不常用,因为频繁的存储器访问会严重影响性能。原创 2024-02-22 20:57:53 · 651 阅读 · 0 评论 -
1.5 计算机系统结构中并行性的发展
通过紧密耦合或松散耦合的方式,同构型或异构型的多处理机系统以及分布式系统的实现,不断拓展了并行处理的边界,为解决复杂计算问题提供了更多的可能性。随着硬件价格的降低和技术的进步,多机系统的设计和应用将继续向着更高效、更灵活的方向发展。在阵列处理机中,多个处理单元在同一个控制器的指挥下,根据同一条指令对数据集合中的每个元素执行相同的操作,从而实现了高度的数据并行性。随着并行处理技术的不断成熟,我们可以预见,未来的计算机系统将能够提供更高的性能,更好地满足科学研究、工业生产、日常应用等多方面的需求。原创 2024-02-22 20:16:56 · 1281 阅读 · 0 评论 -
1.4 计算机系统结构的发展
现代计算机结构的设计不仅需要考虑硬件的发展,还需要适应软件技术的进步和应用需求的变化,这使得计算机系统结构的研究和发展成为一个充满挑战和机遇的领域。摩尔定律预测的晶体管数量的增长不仅促进了更多功能在单一芯片上的集成,还提高了性能/价格比,使得以前只能在高端系统中看到的高性能系统结构现在能够应用于更广泛的领域,包括个人计算机。随着计算需求的增加,特别是在需要极高计算速度的领域,如科学计算、大数据处理、人工智能等,现有的计算机系统可能无法满足这些应用的需求,促使设计者开发新的系统结构来应对挑战。原创 2024-02-22 20:00:01 · 1044 阅读 · 0 评论 -
1.3 定量分析技术
在计算机系统设计中,定量分析技术是一种关键的工具,它使设计者能够基于性能和成本的权衡做出明智的决策。本节将探讨计算机系统设计中经常使用的定量原理,包括经常性事件的优化、Amdahl定律、CPU性能公式,以及程序的局部性原理。原创 2024-02-22 19:42:00 · 995 阅读 · 0 评论 -
1.1 引言
因此,多核处理器的发展成为提升性能的新方向。本章将深入探讨计算机系统结构的基本概念,包括其层次结构、组成、实现以及分类,同时着重分析定量分析技术和计算机系统结构的发展,特别是并行性的演进。计算机系统结构可以按照多种方式进行分类,最常见的分类包括按照处理器使用的指令集架构(如RISC和CISC)、按照系统中处理器的数量(如单处理器、多处理器系统)以及按照处理器内部并行处理的方式(如流水线和超标量)等。随着新的技术和理念的出现,未来的计算机系统将继续朝着更高的性能、更低的功耗和更广泛的应用方向发展。原创 2024-02-22 16:18:20 · 393 阅读 · 0 评论