首页 > 其他分享 >第四章 计算机体系结构

第四章 计算机体系结构

时间:2024-01-27 21:33:07浏览次数:20  
标签:计算机 addq 访存 指令 阶段 寄存器 流水线 第四章 体系结构

流水线

1. 处理指令的阶段

  • 取指

    将地址为pc的指令从内存中读取出来。可能取出一个或两个寄存器操作数指示符rA和rB。

    还可能取出一个常数字valc 下一条指令**的地址\(valp = pc+valc\)

  • 译码

    从寄存器文件中读入指令rA,rB指明的寄存器中的操作数:valA,valB

  • 执行

    算数逻辑单元(ALU)执行指令

  • 访存

将数据写入内存,或者从内存读出数据

  • 写回

写回阶段最多可以写两个结果到寄存器文件

  • 更新

    将pc设置成下一条指令的地址

2. 非流水线化

假设组合逻辑需要300ps,加载寄存器需要20ps
在这个实现中,在开始下一条指令之前必须完成上一个。

这个系统的吞吐量是(单位时间执行的指令数)

\[1/(300+20) = 3.12GIPS \]

3. 流水线化

将一条指令分为abc三部分,指令从开始到结束需要三个时钟周期

每经过一个120ps的周期,每条指令就行进一个阶段

且每个阶段都会有一个流水线寄存器,比如a阶段的输出在第一个流水线寄存器,b阶段在第二个......

吞吐量与非流水线化相比明显提高

追踪时刻240-360之间的电路活动。

  • 240之前,指令I2的值已经到达第一个流水线寄存器(该寄存器此时还保持着I1在A阶段计算的值)的输入。指令I1在b阶段的输入到达第二个流水线寄存器的输入
  • 到达240,时钟信号上升时,这些输入被加载到对应的流水线寄存器中,成为寄存器的输出
  • 信号以不同的速率通过各个不同部分,在360之前,结果值到达流水线寄存器的输入

4. 数据冒险

1. 什么是冒险

相邻指令间存在相关

  • 数据相关
    下一条指令会用到这一条指令的计算结果
  • 控制相关
    一条指令要确定下一条指令的位置,例如在执行跳转,返回指令时

这些相关可能会导致流水线产生计算错误,称为冒险

2. 冒险实例

F D E M W分别代表取值,译码,执行,访存,写回阶段。

左边的四条指令按照右边的流水线执行。
我们重点来看一下第四个时钟周期。

指令3此时正处于译码阶段,理论上它将要从rdx和rax中取出10和3,但实际上取出的都是0

因为指令2此时正处于执行阶段,指令1正处于访存阶段,都还没有将立即数写回寄存器。

所以在第四个时钟周期,rdx和rax里面还是默认值0

在这个实例中

由于指令间存在数据相关,导致了流水线产生错误的计算结果,称之为冒险,或者冲突。

3. 避免数据冒险

  • 最先能想到的是让指令addq等待前两条指令都写回后再执行

    通过插入气泡,让addq等待一直到第七个时钟周期才开始进行第二阶段。

    但是这样的流水线性能并不高


  • 但其实movq在访存阶段并没有执行任何操作,那么可以直接把运算结果传给addq,而不用再等待写回。

    可以添加一个信号线,将指令movq经过ALU的执行结果直接传送到指令addq的译码阶段

    这种实现技术称为数据转发,也称旁路

  • 等待和转发一起



    指令1要先访问内存,但读内存的操作发生在访存阶段,所以即使才用数据转发也无法将值送回过去的时间。

    可以让addq在译码阶段等待一个时钟周期,等到movq访存结束后,再使用数据转发

标签:计算机,addq,访存,指令,阶段,寄存器,流水线,第四章,体系结构
From: https://www.cnblogs.com/algoshimo/p/17991966

相关文章

  • 计算机的运行与运行方式
    对程序员来说程序就是一系列有序执行的指令集和,而程序的正常运行也使计算机有效的运行着,CPU是寄存器的集合而运行中的程序存放在RAM中。计算机是用二进制来理解数据的,想必大家都知道计算机内部是由称为集成电路的电子元器件构成的,集成电路有几种不同的形状,集成电路的所有引脚都有......
  • 计算机体系结构
    计算机体系结构是计算机硬件和软件的基础,主要包括计算机的五大部件:输入设备、输出设备、存储器、运算器和控制器。这五大部件相互协作,共同完成了计算机的各种功能。其中,中央处理器(CPU)是计算机的“大脑”,负责执行各种指令和处理数据。计算机的基本组成部分包括CPU、内存、硬盘等......
  • c++实现一门计算机语言到手撸虚拟机实战200节
    1对于编程语言实现原理提供了实战。2学习之后对于JAVA,PHP,PY等语言的实现原理提供了经验平移参考3对JAVA等语言的虚拟机实现原理提供了实战参考。4加深对编程语言的驾驭和深度认知。5虚拟机是计算机系统中非常重要的组成部分,理解了虚拟机的原理和实现方式,从而更好地理解计算......
  • 计算机介绍
    什么是计算机全称电子计算机,俗称电脑按照程序运行,能够自动高效处理海量数据由硬件和软件组成常见形式:台式、笔记本、大型计算机等广泛应用:科学计算、数据处理、自动控制、计算机辅助设计、人工智能、网络等领域计算机硬件一些物理装置按系统结构的要求构成有机整体——......
  • 三级计算机网络大题60分——来自B站“吃饭不留名”(综合题2:思科交换机配置 10分)
    https://www.bilibili.com/video/BV1hE411x7RT?p=4&spm_id_from=pageDriver&vd_source=2bddda168481f778f8f92561c7e55574真题演练1/40的几率......
  • 三级计算机网络大题60分——来自B站“吃饭不留名”(综合题2:IP校园网 10分)
    https://www.bilibili.com/video/BV1hE411x7RT?p=3&vd_source=2bddda168481f778f8f92561c7e55574考点一iprouter考点二crc考点三bandwidth考点四ipaddress考点五posframing考点六posflag考点七lease考点八networkarea考点九router......
  • 三级计算机网络大题60分——来自B站“吃饭不留名”(综合题1:填写IP地址表 10分)
    https://www.bilibili.com/video/BV1hE411x7RT?p=2&vd_source=2bddda168481f778f8f92561c7e55574方法技巧地址类别:125A类网络地址:网络位不变,主机位都为0主机号:网络位为0,主机位不变直接广播地址:网络位不变,主机位都为1受限广播地址:255.255.255.255第一个可用的IP地址......
  • 初读计算机系统理论
    首先呢,我国IT产业发展不平衡:1.我国IT产业应用发达,基础薄弱;2.产业主动权比市场占有率更重要。其次,我国IT产业人才严重失衡:1.应用型人才充足,基础型人才匮乏;2.IT教学主要基于国外平台,不熟悉自主平台;3.研究生教育注重培养写论文的人才,缺少工程能力的培养。但是我们要知道能力一旦丧失,......
  • 计算机体系结构的读后感
    看了计算机结构体系中的一节课后我发现,计算机当家最重要的就属软件OS和硬件CPU了,而且会发现我国的IT行和发展其实挺不平衡的,虽然产业挺发达的,但是基础比较薄弱,而且我国的IT行业人才也是比较匮乏的,人体虽然很广,应用高端型人才还是有待提升,教育注重理论文章性的学习,对于实践性是操作......
  • 企业计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒解密流程
    随着网络技术的不断发展,网络安全威胁无处不在,这给企业的正常生产生活带来了极大影响,因此,做好企业的运维工作至关重要。近日,云天数据恢复中心接到北京某连锁品牌酒店的求助,企业的计算机服务器中了mallox勒索病毒导致企业系统内的重要数据被加密,无法正常使用,严重影响了企业正常运行,经......