热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

******三十二******、软设笔记【计算机体系结构】流水线技术

流水线技术流水线技术是指在程序执行时,多条指令重叠进行操作的一种任务分解技术。把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执
流水线技术


流水线技术是指在程序执行时,多条指令重叠进行操作的一种任务分解技术。把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。






(1)计算执行时间


假定有某种类型的任务,可以分为N个子任务,每个子任务需要时间t,则完成该任务所需的时间为N x t。


*若以传统的方式,完成k个任务需要的时间是kNt。


*使用流水线技术,花费的时间是Nt + (k-1)t。


注意,如果每个子任务所需的时间不同,其时间取决于执行顺序中最慢的那一个。


<1>流水线的吞吐率


指在单位时间内流水线所完成的任务数量或输出的结果数量。


TP &#61; n / Tk






n为任务数&#xff0c;Tk是处理完成n个任务所用的时间






<2>加速比


是指不采用流水线的执行时间/采用流水线的执行时间。


用来衡量并行系统或程序并行化的性能和效果。






&#xff08;2&#xff09;影响流水线的主要因素


*转移指令&#xff1a;因为前面的转移指令还没有完成&#xff0c;流水线无法确定下一条指令的地址&#xff0c;因此也就无法向流水线中添加这条指令。


*共享资源访问的冲突&#xff1a;后一条指令需要使用的数据&#xff0c;与前一条指令发生冲突&#xff0c;或者相邻的指令使用了相同的寄存器


*响应中断&#xff1a;当有中断请求时&#xff0c;流水线也会停止。对于这种情况有两种响应方式&#xff1a;


>精确断点法&#xff1a;立即停止&#xff0c;这种方法能够立即响应中断&#xff1b;


>不精确断点法&#xff1a;流水线中的指令继续执行&#xff0c;不再新增指令到流水线。






一、指令系统


指计算机所能执行的全部指令的集合&#xff0c;它描述了计算机内全部的控制信息和“逻辑判断”能力。


一条指令包括&#xff1a;


*操作码


*地址码






根据地址码代表的地址类型&#xff0c;指令系统可以分为&#xff1a;


*立即寻址


*直接寻址


*剪接寻址


*寄存器寻址


*寄存器间接寻址






二、RISC与CISC


*为提高操作系统的效率&#xff0c;人们最初选择向指令系统中添加更多、更复杂的指令来实现&#xff0c;导致指令集越来越大。这种类型的计算机&#xff0c;称为复杂指令集计算机&#xff08;CISC&#xff09;。


*对指令数目和寻址方式做精简&#xff0c;指令的指令周期相同&#xff0c;采用流水线技术&#xff0c;指令并行执行程度更好&#xff0c;这类是精简指令集计算机&#xff08;RISC&#xff09;。










复杂指令系统计算机&#xff08;CISC&#xff09;的主要特点


&#xff08;1&#xff09;指令数量多&#xff1a;指令系统拥有大量的指令&#xff0c;有100-250条。


&#xff08;2&#xff09;指令使用频率相差悬殊&#xff1a;最常使用的是一些比较简单的指令&#xff0c;80%的时候使用的是20%指令。


&#xff08;3&#xff09;支持很多中寻址方式&#xff1a;通常为5-20种。


&#xff08;4&#xff09;变长的指令&#xff1a;指令长度不是固定的&#xff0c;变长的指令增加指令译码电路的复杂性。


&#xff08;5&#xff09;指令可以对存储器单元中数据直接进行处理&#xff1a;典型的CISC处理器通常都有指令能够直接对内存单元中的数据进行处理&#xff0c;其执行速度较慢。






精简指令系统计算机&#xff08;RISC&#xff09;的主要特点


&#xff08;1&#xff09;指令数量少&#xff1a;优先选取使用频率最高的一些简单指令以及一些常用指令&#xff0c;避免使用复杂指令。


&#xff08;2&#xff09;指令的寻址方式少&#xff1a;通常只支持寄存器寻址方式、立即数寻址方式以及相对寻址方式。


&#xff08;3&#xff09;指令长度固定&#xff0c;指令格式种类少&#xff1a;因为RISC指令数量少&#xff0c;


格式相对简单&#xff0c;其指令长度固定&#xff0c;指令之间各字段的划分比较一致&#xff0c;译码相对容易。


&#xff08;4&#xff09;只提供了Load/Store指令访问存储器&#xff1a;只提供了从存储器读数Load和把数据写入存储器Store两条指令&#xff0c;其余所有的操作都在CPU的寄存器间进行。


&#xff08;5&#xff09;以硬布线逻辑控制为主&#xff1a;为了提高操作的执行速度&#xff0c;通常采用硬布线逻辑来构建控制器。


&#xff08;6&#xff09;单周期指令执行&#xff1a;因为简化了指令系统&#xff0c;很容易利用流水线技术使得大部分指令在一个机器周期内完成。


&#xff08;7&#xff09;优化的编译器&#xff1a;RISC精简指令集使编译工作简单化。

推荐阅读
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文探讨了 C++ 中普通数组和标准库类型 vector 的初始化方法。普通数组具有固定长度,而 vector 是一种可扩展的容器,允许动态调整大小。文章详细介绍了不同初始化方式及其应用场景,并提供了代码示例以加深理解。 ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
  • Linux设备驱动程序:异步时间操作与调度机制
    本文介绍了Linux内核中的几种异步延迟操作方法,包括内核定时器、tasklet机制和工作队列。这些机制允许在未来的某个时间点执行任务,而无需阻塞当前线程,从而提高系统的响应性和效率。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了MicroATX(也称Mini ATX)和MATX主板规格,探讨了它们的结构特点、应用场景及对电脑系统成本和性能的影响。同时,文章还涵盖了相关操作系统的实用技巧,如蓝牙设备图标删除、磁盘管理等。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 在Java中,this是一个引用当前对象的关键字。如何通过this获取并显示其所指向的对象的属性和方法?本文详细解释了this的用法及其背后的原理。 ... [详细]
  • 当在 Android 应用中使用 NDK 时,可能会遇到 java.lang.UnsatisfiedLinkError: Native method not found 的错误。本文将详细探讨该错误的原因及解决方案。 ... [详细]
author-avatar
手机用户2602915205
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有