文章是在我遇到这部分问题时查找的所有感觉挺好的内容的整合(全部是转载的)

流水线基础理论就不加了,最新的处理器流水线处理的机制也没有(一般以用不到),想了解去随便找个芯片厂商官网下个手册自己查。

这部分学习呢,包括整个计算机组成原理的学习我认为别太较真,因为计算机的各个部件有很多厂商也就有了很多标准,所以掌握理论就行。

下文也有挺多地方是不严谨的,不同指令集不同的操作方式,不同芯片也有不同的操作方式(不过芯片也是和指令集统一的.......),反正下面的文章中是针对某个指令集的,了解思想就行。

想要实现流水线CPU内部总线必须是多条的,共用的!!!!!

一条经典的5段流水线

一条指令的执行过程分为以下5个周期:

取指令周期(IF)

指令译码/读寄存器周期(ID)

执行/有效地址计算周期(EX)

存储器访问/分支完成周期(MEM)

写回周期(WB)


流水线冲突和相关的链接:

体系结构 | 流水线 | 流水线相关 | 流水线冲突

一条经典的5段流水线

  • 介绍一条经典的5段RISC流水线
  • 每一个周期作为一个流水段;
  • 在各段之间加上锁存器(流水寄存器)。 

一条指令的执行过程分为以下5个周期:

  • 取指令周期(IF)

以程序计数器PC中的内容作为地址,从存储器中取出指令并放入指令寄存器IR;

同时PC值加4(假设每条指令占4个字节),指向顺序的下一条指令。  

  • 指令译码/读寄存器周期(ID)

对指令进行译码,并用IR中的寄存器地址去访问通用寄存器组,读出所需的操作数。

  • 执行/有效地址计算周期(EX)

不同指令所进行的操作不同:

load和store指令:ALU把指令中所指定的寄存器的内容与偏移量相加,形成访存有效地址。

寄存器-寄存器ALU指令:ALU按照操作码指定的操作对从通用寄存器组中读出的数据进行运算。

寄存器-立即数ALU指令:ALU按照操作码指定的操作对从通用寄存器组中读出的操作数和指令中给出的立即数进行运算。

分支指令:ALU把指令中给出的偏移量与PC值相加,形成转移目标的地址。同时,对在前一个周期读出的操作数进行判断,确定分支是否成功。

  • 存储器访问/分支完成周期(MEM)

该周期处理的指令只有load、store和分支指令。

其它类型的指令在此周期不做任何操作。

  • loadstore指令

load指令:用上一个周期计算出的有效地址从存储器中读出相应的数据;

store指令:把指定的数据写入这个有效地址所指出的存储器单元。

  • 分支指令

分支“成功”,就把转移目标地址送入PC。

分支指令执行完成。

  • 写回周期(WB)

ALU运算指令和load指令在这个周期把结果数据写入通用寄存器组。

ALU运算指令:结果数据来自ALU。

load指令:结果数据来自存储器。

  • 在这个实现方案中:

分支指令需要4个时钟周期(如果把分支指令的执行    提前到ID周期,则只需要2个周期);

store指令需要4个周期;

其它指令需要5个周期才能完成。

https://blog.csdn.net/stone_fall/article/details/88414017#%E4%B8%80%E6%9D%A1%E7%BB%8F%E5%85%B8%E7%9A%845%E6%AE%B5%E6%B5%81%E6%B0%B4%E7%BA%BF

----------------------------------------------------

https://blog.csdn.net/qq_35260622/article/details/51657165?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242

----------------------------------------------

处理机流水线------经典五段流水线相关推荐

  1. 1.6流水线:流水线、流水线周期、流水线执行时间、流水线吞吐率、流水线加速比

    1.6流水线:流水线.流水线周期.流水线执行时间.流水线吞吐率.流水线加速比 流水线 流水线周期 流水线执行时间 理论公式 实践公式 举例计算流水线执行时间 流水线吞吐率 举例计算流水线吞吐率 流水线 ...

  2. 体系结构 | 五段流水线 | 流水线技术

    目录 一条经典的5段流水线 一条指令的执行过程分为以下5个周期: 取指令周期(IF) 指令译码/读寄存器周期(ID) 执行/有效地址计算周期(EX) 存储器访问/分支完成周期(MEM) 写回周期(WB ...

  3. 流水线经典讲解!!!!!

    如果某个组合逻辑电路中没有反馈或者迭代运算,那么我们就可以考虑流水线设计方法. 把组合逻辑分成延迟时间基本相等的小块,只要小块的组合逻辑的延迟小于时钟周期,整个组合逻辑的输入值每个时钟就可以变化一次, ...

  4. pipeline流水线及分布式流水线发布php项目

    创建一个基于pipeline流水线的项目 第一个选项是流水线脚本(不是shell脚本),右上角有一个脚本的范例 范例: 1:尝试自己写一个脚本 2:hello world脚本(里面是函数,输出的内容, ...

  5. Pipeline流水线及分布式流水线发布PHP项目及JAVA项目

    Jenkins的Pipeline流水线 主机名 IP地址 备注 Git 192.168.146.136 Git服务器 Jenkins 192.168.146.137 Jenkins服务器 Pipeli ...

  6. 16、持续集成流水线实践:流水线上的AI单元测试(MAVEN)

    流水线上的AI单元测试(MAVEN) 持续集成就是不断地将代码仓库各种分支合并到主干的过程,在持续集成过程中的卡点设置除去team内部的code review.SonarQube的代码扫描还有就是单元 ...

  7. 【DevOps】Jenkins:配置jenkins 流水线/多分支流水线任务构建成功通知企业微信@相关人

    目录 视频教程 需求说明 最终效果 实现过程 安装插件 编写shell 编写jenkinsfile 测试一下 视频教程 视频教程:https://edu.csdn.net/learn/38191/60 ...

  8. 使用计算机进行生产流水线控制属于,流水线生产系统

    按照工作流程的不同,生产系统可分为流水线生产(Flow-Line).固定工位生产(Fixed-Location).作业生产(Job-Shop).流水线生产是大批量生产类型企业的典型生产模式,具有很高的 ...

  9. 2.09 流水线周期及流水线执行时间计算

    流水线执行时长的计算 流水线周期 流水线周期为执行时间最长(最耗时)的一段. 比如此处例题,取指2ns,分析2ns,执行1ns.因此流水线周期是2ns. 全部执行完毕所需的时间 先假设每个流程的时间一 ...

最新文章

  1. 远程桌面连接由于网络错误而丢失
  2. java 获取资源,Java资源获取
  3. [转]showModalDialog()、showModelessDialog()方法使用详解
  4. Redis整合Spring结合使用缓存实例
  5. python解释型语言的区别_什么是解释型语言?
  6. Java从零开始(4)——入门项目
  7. arp 原理及查杀方式
  8. 《图谋职场——最经济的图形沟通》 一种能提高职场竞争力的沟通能力
  9. 枚举很好用啊,为啥阿里不建议返回值用枚举?看看作者孤尽的回答
  10. discuzx3.2自定义积分操作日志,discuzx积分二次开发完全记录
  11. 矩阵运算_迹的相关性质
  12. python怎么创建窗口_python如何设计窗口
  13. android课程设计健身,健身软件课程设计-毕业论文.doc
  14. redis之禁用保护模式以及修改监听IP
  15. 图片搜索引擎 - WebCrawler
  16. Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
  17. 为什么戏说php,戏说PHP——1. 1切的开始
  18. 【FPGA学习记录1】异步FIFO的介绍
  19. MySQL - 8 递归查询树结构
  20. 深度好玩!10 个有趣且易上手的 AI 项目(附 Python 源代码)

热门文章

  1. js笔记(六)事件、正则
  2. 为什么dubbo的调用重试不建议设置成超过1
  3. Python中的__new__()方法的使用
  4. C# Timer定时器用法
  5. 3.4 内置函数(1)
  6. Java多线程——不变性与安全发布
  7. JavaWeb基础(jsp初识)
  8. 实验:sigsuspend(),sigprocmask()
  9. hdu 4472 Count(递推即dp)
  10. aix java home_java程序员工作日子一(java_home 配置)