热门标签 | 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精简指令集使编译工作简单化。

推荐阅读
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
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社区 版权所有