本文主要翻译自 Arm Cortex-M7 Processor Technical Reference Manual r1p2 其中章节 Memory System / L1 caches / Store Buffer 。

Store Buffer

Cache中的数据,在写入memory或 AXIM 总线之前,先存放在store buffer中。store buffer有四个存储单元,每个存储单元由一个64bit数据存储及一个32bit地址存储组成。来自data-side的写请求都会存放在store buffer中,但有两个例外:写往TCM 或 AHBP接口的数据。

注:名词解释 浅谈嵌入式MCU CPU内核之ARM Cortex-M7内核高性能(Dual Issue ISA--双发指令)实现要点解析

  • AXIM :高性能内部总线互联矩阵。ARM Cortex-M7内核配备了ARM第4代的AMBA总线矩阵--AXIM,给MCU/SOC提供64-bit的存储器和外设总线互联能力,通过AXIM访问存储器(SRAM和Flash)和外设时可以配置内核的MPU使能I-Cache和D-Cache,从而加速访问,进一步提高系统效率。
  • AHBP :高性能外设接口。ARM Cortex-M7内核还为高性能低延迟的外设连接预留了一个32-bit的AHBP接口:通过该接口扩展的外设,读写访问时无需经过系统总线互联矩阵,从而保证了高性和低延迟。

Store buffer merging

  1. 来自同一个cache line的写请求,被合并到同一个store buffer单元。store buffer写请求合并只适合于带有普通memory属性的写请求。
  2. 如果是强内存序(怎么知道是强内存序??),或者是device memory属性的内存页,则不会发生store buffer写请求合并。
  3. 遇到强内存序写或者device memory属性内存,会首先将store buffer中的数据全部写回,即清空了store buffer中的数据。

Store buffer 写请求转发

在指定条件下,store buffer会将写请求转给 Cache控制器,AXIM总线等(即跳过store buffer,交由cache控制器,AXIM总线)。

  1. 比如针对 Non-Cacheable标记的数据,write-through 类型的cache,等操作,交由AXIM总线。

    比较难理解,不翻译

Store buffer draining

有些情况下,需要先等store buffer中的数据全部写回。有些情况下,需要等该单元的数据写回。

需要等全部的情形:

  1. cache维护操作;
  2. 共享内存(Shared Memory)的独占操作;
  3. DMB, DSB指令;
  4. 上面提到的强内存序地址,或device memory标记的数据。

ARM memory models

介绍了 devices memory等等。Armv8-A memory model

CPU体系(2):ARM Store Buffer的更多相关文章

  1. Speculative store buffer

    A speculative store buffer is speculatively updated in response to speculative store memory operatio ...

  2. 关于cpu体系架构的一些有趣的故事分享

    从排查一次匪夷所思的coredump,引出各种体系架构的差异. 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处.周荣华@燧原科技 1 背景 从全世界有记载的第一台 ...

  3. 手机cpu结构,arm

    问题描述 今天测试人员测试集成版本时除了一个bug:关于华为 Mate 8手机Android 6.0系统运行刚刚提测的版本时,出现闪退的bug,而小米 4 手机Android 6.0系统却没有出现任何 ...

  4. 四大CPU体系结构:ARM、X86/Atom、MIPS、PowerPC

    补充介绍一下RISC:RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机) ...

  5. cpu缓存和volatile

    目录 CPU缓存的由来 CPU缓存的概念 CPU缓存的意义 缓存一致性协议-MESI协议 Store Buffers Store Forwarding Memory Barriers Invalida ...

  6. cpu 乱序执行与问题【转】

    转自:https://blog.csdn.net/lizhihaoweiwei/article/details/50562732 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议 ...

  7. 转 Cache一致性和内存模型

    卢本伟牛逼,写得很好 https://wudaijun.com/2019/04/cpu-cache-and-memory-model/ 本文主要谈谈CPU Cache的设计,内存屏障的原理和用法,最后 ...

  8. 内存模型与c++中的memory order

    概 c++的atomic使用总会配合各种各样的memory order进行使用,memory order控制了执行结果在多核中的可见顺序,,这个可见顺序与代码序不一定一致(第一句代码执行完成的结果不一 ...

  9. 全网最硬核 Java 新内存模型解析与实验单篇版(不断更新QA中)

    个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判.如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 i ...

  10. Java 新内存(cache)模型解析

    JMM 相关文档: Java Language Specification Chapter 17 The JSR-133 Cookbook for Compiler Writers - Doug Le ...

随机推荐

  1. docker容器资源限制:限制容器对内存/CPU的访问

    目录 一.系统环境 二.前言 三.docker对于CPU和内存的限制 3.1 限制容器对内存的访问 3.2 限制容器对CPU的访问 一.系统环境 服务器版本 docker软件版本 CPU架构 Cent ...

  2. maven-scope属性

    Maven 中的 scope 属性解释 <dependency> <groupId>org.glassfish.web</groupId> <artifact ...

  3. git reset总结

    git reset git 的重置操作 有三种模式:hard.mixed(默认).soft 1. hard 用法 hard会重置stage区和工作区,和移动代码库上HEAD 和branch的指针所指向 ...

  4. 安装vm,在vm中安装windows10操作系统。

    步骤:双击打开虚拟机文件 根据向导安装  下一步 然后等待安装 安装好了后点击许可证 ZF3R0-FHED2-M80TY-8QYGC-NPKYF YF390-0HF8P-M81RQ-2DXQE-M2U ...

  5. 上K8s生产环境的准备有哪些?

    文章转载自:https://mp.weixin.qq.com/s/7FhiI09xKdJXJfrf89Q-8w 在生产中运行应用程序可能很棘手.这篇文章提出了一个自以为是的清单,用于在 Kuberne ...

  6. kubeadm 使用 Calico CNI 以及外部 etcd 部署 kubernetes v1.23.1 高可用集群

    文章转载自:https://mp.weixin.qq.com/s/2sWHt6SeCf7GGam0LJEkkA 一.环境准备 使用服务器 Centos 8.4 镜像,默认操作系统版本 4.18.0-3 ...

  7. 利用msg_msg实现任意地址读写

    利用msg_msg实现任意地址读写 msgsnd和msgrcv的源码分析 内核通过msgsnd和msgrcv来进行IPC通信.内核消息分为两个部分,一个是消息头msg_msg(0x30),以及后面跟着 ...

  8. SQLServer配置开启TCP/IP连接

    一 先启用SQLServer的TCP/IP协议 1.1 打开SQLServer配置管理器 1.2 启用TCP/IP 二 设置SQLServer端口 2.1 双击TCP/IP,弹出属性设置框 2.2 将 ...

  9. Leetcode链表

    Leetcode链表 一.闲聊 边学边刷的--慢慢写慢慢更 二.题目 1.移除链表元素 题干: 思路: 删除链表节点,就多了一个判断等值. 由于是单向链表,所以要删除节点时要找到目标节点的上一个节点, ...

  10. Vue-amap的使用

    (1)Npm安装:npm install vue-amap –save (2)在main.js中配置 首先需要在项目初始化时,通过 initAMapApiLoader 引入所需要的插件: (3)vue ...