社区
C语言
帖子详情
关于cpu的流水线,为何写寄存器在时钟周期的前半段,而读寄存器在后半段
善良的小伙伴
2015-07-28 03:30:00
《计算机组成与设计 硬件/软件 接口 (原书第四版)》
这里面讲流水线的时候,把指令执行 分成5个步骤(假设一条指令一个时钟周期):
1,通过PC(程序计数器)读取指令;
2,分解指令,读取寄存器;
3,ALU计算
4,访问数据存储器(即是内存)
5,写回寄存器
但是它又说对寄存器堆的写操作发生在时钟周期的前半段,对寄存器的读操作发生在时钟周期的后半段。
按上面步骤不是应该先读再写吗??
...全文
1471
1
打赏
收藏
关于cpu的流水线,为何写寄存器在时钟周期的前半段,而读寄存器在后半段
《计算机组成与设计 硬件/软件 接口 (原书第四版)》 这里面讲流水线的时候,把指令执行 分成5个步骤(假设一条指令一个时钟周期): 1,通过PC(程序计数器)读取指令; 2,分解指令,读取寄存器; 3,ALU计算 4,访问数据存储器(即是内存) 5,写回寄存器 但是它又说对寄存器堆的写操作发生在时钟周期的前半段,对寄存器的读操作发生在时钟周期的后半段。 按上面步骤不是应该先读再写吗??
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
magickou
2015-12-18
打赏
举报
回复
因为必须先存入上一个指令的值,然后才可以读从寄存器文件中读取下一个指令的值
赵4老师
2015-07-28
打赏
举报
回复
那就不能上条指令写完后再开始本条指令读吗?
【计算机组成原理】
流水线
处理器
前言
流水线
的想法源自于传统工厂生产产品的方式,通过这种方式大大提高了生产效率,反应在
CPU
上就是提高了指令的吞吐率。上篇文章介绍了单周期处理器,姑且算是揭开了
CPU
那层神秘的面纱。现在我们来深入了解一下,一个超标量
流水线
处理器是什么样的。
流水线
的设计我们可以把一条指令的执行周期分为五个单独的过程,取指,译指,执行,访存,回
写
。 要实现
流水线
,就得把每一步的计算结果用
寄存器
暂时保留下来,以便在下一个
指令流水 一个
时钟周期
出一个结果_处理器中的
流水线
技术
流水线
(Pipeline)技术是指程序在执行时候多条指令重叠进行操作的一种准并行处理实现技术。通俗的讲将一个时序过程,分解成若干个子过程,每个过程都能有效的与其他子过程同时执行。这种思想最初是在RISC的架构中出现的,旨在提高处理器处理效率,争取在一个
时钟周期
中完成一条指令。执行一条指令的五个过程在
流水线
中一条指令的生命周期分为:取指:指令取指(Instruction Fetch)是指将指令从存储...
一文搞懂
流水线
冲突:
CPU
性能提升的“绊脚石”与解决之道
流水线
冲突是
CPU
性能提升的主要障碍,分为结构冲突、数据冲突和控制冲突三大类。结构冲突源于硬件资源竞争,可通过资源拆分或指令调度解决;数据冲突由指令间数据依赖引起,常用数据前推和
寄存器
重命名优化;控制冲突由程序跳转导致,依赖分支预测和延迟分支技术。解决冲突需硬件(增加并行度)和软件(优化指令)协同优化,在性能与复杂度间取得平衡。理解这些冲突有助于编
写
更高效的代码,提升程序运行效率。
【萌新的RISCV学习之
流水线
冒险解析-8】
本文深入解析了RISC-V五级
流水线
中的核心挑战——
流水线
冒险。详细阐述了数据冒险与控制冒险的产生机制,并重点介绍了数据前递与
流水线
阻塞两大关键解决方案。通过硬件逻辑分析与实战代码示例,帮助读者理解如何设计冒险处理单元,以保障
CPU
正确性与运行效率。
深入解析
流水线
冒险:结构、数据与控制冒险的实战应对
本文深入解析了
CPU
流水线
中的三种主要冒险类型:结构冒险、数据冒险和控制冒险,并提供了实战应对方案。通过具体案例和代码示例,详细介绍了如何通过哈佛架构、数据前推和分支预测等技术优化
流水线
性能,帮助开发者提升
CPU
运行效率。
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章