CPU体系(2):ARM Store Buffer
本文主要翻译自 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
- 来自同一个cache line的写请求,被合并到同一个store buffer单元。store buffer写请求合并只适合于带有普通memory属性的写请求。
- 如果是强内存序(怎么知道是强内存序??),或者是device memory属性的内存页,则不会发生store buffer写请求合并。
- 遇到强内存序写或者device memory属性内存,会首先将store buffer中的数据全部写回,即清空了store buffer中的数据。
Store buffer 写请求转发
在指定条件下,store buffer会将写请求转给 Cache控制器,AXIM总线等(即跳过store buffer,交由cache控制器,AXIM总线)。
- 比如针对 Non-Cacheable标记的数据,write-through 类型的cache,等操作,交由AXIM总线。
比较难理解,不翻译
Store buffer draining
有些情况下,需要先等store buffer中的数据全部写回。有些情况下,需要等该单元的数据写回。
需要等全部的情形:
- cache维护操作;
- 共享内存(Shared Memory)的独占操作;
- DMB, DSB指令;
- 上面提到的强内存序地址,或device memory标记的数据。
ARM memory models
介绍了 devices memory等等。Armv8-A memory model
CPU体系(2):ARM Store Buffer的更多相关文章
- Speculative store buffer
A speculative store buffer is speculatively updated in response to speculative store memory operatio ...
- 关于cpu体系架构的一些有趣的故事分享
从排查一次匪夷所思的coredump,引出各种体系架构的差异. 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处.周荣华@燧原科技 1 背景 从全世界有记载的第一台 ...
- 手机cpu结构,arm
问题描述 今天测试人员测试集成版本时除了一个bug:关于华为 Mate 8手机Android 6.0系统运行刚刚提测的版本时,出现闪退的bug,而小米 4 手机Android 6.0系统却没有出现任何 ...
- 四大CPU体系结构:ARM、X86/Atom、MIPS、PowerPC
补充介绍一下RISC:RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机) ...
- cpu缓存和volatile
目录 CPU缓存的由来 CPU缓存的概念 CPU缓存的意义 缓存一致性协议-MESI协议 Store Buffers Store Forwarding Memory Barriers Invalida ...
- cpu 乱序执行与问题【转】
转自:https://blog.csdn.net/lizhihaoweiwei/article/details/50562732 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议 ...
- 转 Cache一致性和内存模型
卢本伟牛逼,写得很好 https://wudaijun.com/2019/04/cpu-cache-and-memory-model/ 本文主要谈谈CPU Cache的设计,内存屏障的原理和用法,最后 ...
- 内存模型与c++中的memory order
概 c++的atomic使用总会配合各种各样的memory order进行使用,memory order控制了执行结果在多核中的可见顺序,,这个可见顺序与代码序不一定一致(第一句代码执行完成的结果不一 ...
- 全网最硬核 Java 新内存模型解析与实验单篇版(不断更新QA中)
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判.如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 i ...
- Java 新内存(cache)模型解析
JMM 相关文档: Java Language Specification Chapter 17 The JSR-133 Cookbook for Compiler Writers - Doug Le ...
随机推荐
- Springboot多属性文件配置
Springboot 多属性文件配置 配置文件后缀有两种: .properties和.yml 要完成多属性配置需要自定义PropertySourcesPlaceholderConfigurer 这个B ...
- 助力培养高质量AI人才,璞公英乐学平台在日本深受好评!
璞公英乐学平台(原名"璞睿魔数")自进入日本市场以来,受到日本用户的广泛好评.近日,日本AI门户网站AIsmiley在发刊的杂志<AI人才育成指南>中对璞公英乐学平台做 ...
- C#,拷贝文件到另一个文件夹下,替换文件夹中的文件
/// <summary> /// 拷贝文件到另一个文件夹下 /// </summary> /// <param name="sourceName"& ...
- 讲讲 tcp_tw_recycle,tcp_tw_reuse
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485332&idx=1&sn=59823ce1 ...
- Elasticsearch中text与keyword的区别
text类型 1:支持分词,全文检索,支持模糊.精确查询,不支持聚合,排序操作; 2:test类型的最大支持的字符长度无限制,适合大字段存储: 使用场景: 存储全文搜索数据, 例如: 邮箱内容.地址. ...
- Elastic:使用Kafka部署Elastic Stack
- Elastic:使用Postman来访问需要账号密码的Elastic Stack
- Elasticsearch 趋势科技实战分享笔记
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484113&idx=1&sn=6c40d7f ...
- Elasticsearch Reindex性能提升10倍+实战
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484134&idx=1&sn=750249a ...
- 解决nexus仓库只能拉取不能推送的问题
当时正在使用jenkins自动构造镜像推送到nexus上的docker镜像仓库,突然间就报错如下,没法推送,超过重试次数后也是没法推送: ERROR: Build step failed with e ...