乱序处理器中访存指令的操作我一直看的不太懂,其中lsq在流水线中是怎么使用的我也不太清楚,今天看了篇论文,讲的是AMD的经典处理器K7,记录一下:

LSU部件可以理解为存储器子系统的最高层,在该部件中包含Load Queue与Store Queue。其中Load Queue与Store Queue之间有着强烈的耦合关系,因此许多处理器系统将其合称为LSQ。在多数处理器的存储器子系统中,LSU是最顶层,也是指令流水线与Cache流水线的联系点。其上接收来自CPU的存储器指令,其下连接着存储器子系统。其主要功能是将来自CPU的存储器请求发送到存储器子系统,并处理其下存储器子系统的应答数据和消息,整个过程如Figure 1所示:

store、load指令的执行过程大致如下:
        对于store指令:当ICU分派(dispatch)一个store操作给调度器(scheduler)的时候,调度器立刻放置一个store请求到LSU(当然,如果store操作的数据(store data)此时已经计算了出来的的话,也一同放进LSU。如果此时的store data还没有的话,LSU会时刻监视(snoops)result bus,在能够获得store data的第一时间拿到它,放置到LSU中),与此同时,调度器发射一个store操作到AGU去计算地址,地址计算出来之后也要传递给LSU。

对于load指令:调度器发射一个load操作到AGU去计算地址,同时(也可以认为是触发)在LSU放置一个访存请求,当这条访存请求被dcache服务以后, LSU将得到的数据放到result bus上面

总结:在CPU Core中,一条存储器指令首先经过取指,译码,Dispatch等一系列操作后,然后发射相应的存储器指令到AGU去计算有效地址,与此同时放置访存请求到LSU(Load/Store Unit)部件,当AGU把地址计算完成之后将有效地址传递给在LSU中等待的访存请求。

ps:对于result bus,也就是图中指令从IEU(integer execution unit)出来连到的那根result总线,当IEU执行ALU操作完成的时候就将结果放置到result bus,

参考:

[1]  Diefendorff K. K7 challenges Intel[J]. Microprocessor Report, 1998, 12(14): 1-7.

乱序处理器中的LSQ简介相关推荐

  1. 笔试算法题(28):删除乱序链表中的重复项 找出已经排好序的两个数组中的相同项...

    出题:给定一个乱序链表,节点值为ASCII字符,但是其中有重复项,要求去除重复项并保证不改变剩余项的原有顺序: 分析:创建一个256(2^8)大小的bool数组,初始化为false,顺序读取链表,将字 ...

  2. 无锁数据结构二-乱序控制(栅栏)

    内存栅栏 由于优化会导致对代码的乱序执行,在并发执行时可能带来问题.因此为了并行代码的正确执行,我们需提示处理器对代码优化做一些限制.而这些提示就是内存栅栏(memory barriers),用来对内 ...

  3. 被面试官问懵:TCP 四次挥手收到乱序的 FIN 包会如何处理?

    摘要:收到个读者的问题,他在面试的时候,被搞懵了,因为面试官问了他这么一个网络问题. 本文分享自华为云社区<TCP 四次挥手收到乱序的 FIN 包会如何处理?>,作者:小林coding . ...

  4. TCP 四次挥手收到乱序的 FIN 包会如何处理?

    大家好,我是小林. 收到个读者的问题,他在面试鹅厂的时候,被搞懵了,因为面试官问了他这么一个网络问题: 不得不说,鹅厂真的很喜欢问网络问题,而且爱问异常情况下的网络问题,之前也有篇另外一个读者面试鹅厂 ...

  5. Flink之乱序处理,时间语义,WaterMark,允许迟到数据,侧输出流

    一.理解Flink的乱序问题 理解Flink的乱序问题,的先理解Flink的时间语义. Flink有3中时间语义:Event Time:事件创建的时间Ingestion Time:数据进入Flink的 ...

  6. java输出乱序日语假名

    package com.test;import java.util.ArrayList; import java.util.Arrays; import java.util.List; import ...

  7. 在N个乱序数字中查找第k大的数字

    在N个乱序数字中查找第k大的数字 在N个乱序数字中查找第k大的数字,时间复杂度可以减小至 O(N*logN) O(N) O(1) O(2) 答案:B 所谓"第(前)k大数问题"指的 ...

  8. Pentium M处理器架构/微架构/流水线 (2) - 数据预取/乱序核/退役单元

    Data Prefetching Intel Pentium M处理器支持3种预取机制: 第一种是硬件指令预取,已在上面章节中讲述 第二种是自动的将数据预取到二级缓存.这个机制基本上与Intel Ne ...

  9. (java版)删除重复值阿伟学长在开发一款游戏, 他希望玩家已经获得的道具会降低爆率, 避免玩家获得太多重复的道具但玩家背包中道具是乱序且不确定的, 为了减小判断的运算量, 需要先对数据进行去重.

    1. 删除重复值 阿伟学长在开发一款游戏, 他希望玩家已经获得的道具会降低爆率, 避免玩家获得太多重复的道具 但玩家背包中道具是乱序且不确定的, 为了减小判断的运算量, 需要先对数据进行去重. 设计一 ...

最新文章

  1. python可视化来分析全国疫情
  2. eclipse 收缩 选择行_一文解决Java初学者的选择难题
  3. android easylink 搜索设备_手把手教你将数据从Android移动到iPhone步骤与技巧
  4. mvn打包的POm文件
  5. [架构]--高并发问题及解决方案
  6. Qt Creator移动平台
  7. MySQL覆盖索引:直接从索引查询到了数据
  8. 使用Angular HTTP client对数据模型进行创建操作
  9. gateway sentinel 熔断 不起作用_Spring Cloud Alibaba集训营第五天(服务熔断和限流)
  10. AudioContextOptions
  11. 按照鬼哥学so变化,四,第一章的例子
  12. Alexa 世界网站排名研究
  13. vue拦截器刷新登陆页面_vue页面跳转拦截器
  14. java删除文件和文件夹
  15. Stm32 固件库移植
  16. 一个萌新关于电脑安装软件错误提示“1402”的应对方法
  17. Linux环境关闭开机自启动服务
  18. 定投复利公式 php,基金定投收益计算公式和复利计算公式
  19. 栈溢出 __stack_chk_fail
  20. OmniPeek tools install and setting

热门文章

  1. Promise的catch()和then(...,err)的优先级
  2. 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint
  3. JAVA版商城 B2B2C商城 多商家商城 直播带货商城 短视频带 货商城 新零售商城 o2o商城 拼团商城 分销商城 直播商城 springcloud商城 spring cloud商城 积分商城
  4. 将1亿以下阿拉伯数字转换为大写汉字
  5. 我在「亚马逊云科技中国峰会」做讲师 - 「程序员的社区成长史」
  6. vue.config.js中public是什么意思?
  7. zigbee无线传感网实训---在LCD屏上显示JPG图片、 触摸屏、相册(The fourth day)
  8. 嵌入式Linux下3G无线上网卡的驱动
  9. 移宇科技全院血糖管理系统与闭环人工胰腺系统助力患者血糖管理
  10. 第6章第8节:幻灯片背景:使用颜色和渐变作为幻灯片的背景 [PowerPoint精美幻灯片实战教程]