【嵌入式设计】Main Memory:SPM 便签存储器 | 缓存锁定 | 读取 DRAM 内存 | DREM 猝发(Brust)
目录
0x00 便签存储器(Scratchpad memory)
0x01 缓存锁定(Cache lockdown)
0x02 读取 DRAM 内存
0x03 DREM Banking
0x04 DRAM 猝发(DRAM Burst)
0x00 便签存储器(Scratchpad memory)
便签存储器(Scratchpad memory, SPM)是一种内存,用于存储占用部分地址空间的数据或指令。用来暂时存放部分数据或中间结果的存储器,一般是高速缓冲存储器的一部分,也可以是主存储器或外存储器的一部分。
与高速缓存不同的是,数据或指令一开始就被移入 Scratchpad 内存中,并一直保留到应用完成。因此,数据或指令在便签存储器中的访问速度是固定的。
- 便签存储器的主要用途是嵌入式系统,在这种系统中,应用程序中使用的程序或数据是事先已知的。
- 近年来由于体系结构和编译器研究的进步,出现了许多不同的便签存储器。
0x01 缓存锁定(Cache lockdown)
ARM 中的缓存锁定,该功能可使程序将时间关键的代码和数据加载到缓存内存中,并将其标记为免逐出 (eviction) 。锁定中的代码或数据可加快系统响应速度,避免不可预测的响应时间。
ARM 内核在锁定状态下分配的单位大小是一种方式。
例如,四向集关联缓存的出路允许将代码或数据锁定在缓存大小 的单位中。
锁定使用示例:矢量中断表、中断服务例程、大量使用的关键算法、常用全局变量。
0x02 读取 DRAM 内存
每个部件提供 8 bit 数据,8 个部件 x 8 bit = 每个 DIMM (或通道) 64 bit。
两个通道提供 126 bit 数据。
由于内核(如 GPU)不断增加,应用对内存带宽的要求也越来越高。应用需要不同的服务质量(即低延迟、高带宽、低延迟、低延迟)。
如何增加带宽 (bandwidth) 并减少延迟 (latency) ?Channel、bank 和 Burst。3D 集成技术可以改善带宽和延迟问题。通过垂直堆叠多个存储层,提高内存容量的同时,也减少了数据传输的距离,这可以减少延迟。此外,更多的层次可以提供更多的通道,进一步增加内存带宽。
0x03 DREM Banking
Micron 的 2Gb x8 DDR3 芯片:总容量 = 2Gb,存储组数 = 8,双倍数据速率。
主要思想:访问地址必须均匀分布在不同的库中。
库冲突:访问映射到单个库 → 退化为单个库的性能,单个存储体的性能
0x04 DRAM 猝发(DRAM Burst)
DRAM Burst 是指在 DRAM 存取数据时的一种优化方式。它利用了 DRAM 的内部结构,允许在一个存取周期内连续传输多个数据。这样做可以提高内存的效率,因为DRAM存取数据时,会有一定的固定开销,比如预充电和访问延迟。Burst模式通过在一个存取周期内传输多个数据项,减少了这些固定开销的重复发生,从而提高了整体数据传输速率。
在一个 burst 传输中,DRAM控制器首先发出一个存取请求,然后 DRAM 芯片会顺序传输请求的数据,而不需要每次请求都单独传输。这个连续的数据传输过程可以是按行(row)或列(column)的方式,取决于 DRAM 的内部结构和控制器的设置。
Burst 模式能够有效地利用内存系统的带宽,提高数据传输速率,特别是在需要连续读取大量数据时,能够显著减少存取延迟,提升系统性能。
从 DRAM 阵列中读出多少数据?
基于 DDR 信息的 DRAM 规格:
📌 [ 笔者 ] 王亦优 | 雷向明
📃 [ 更新 ] 2023.3.
❌ [ 勘误 ] /* 暂无 */
📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!
📜 参考文献: - Computer Organization and Design, D. Patterson and J. Hennessy, (ARM edition), Elsevier (or Morgan Kaufmann), 2010. - J.L. Hennessy and D.A. Patterson, Computer Architecture: A Quantitative Approach, 4th edition, Morgan Kaufmann, 2006 - ARM System Developer’s Guide, A. Sloss, D. Symes, and C. Wright, Morgan Kaufmann,2004 |
相关文章:

【嵌入式设计】Main Memory:SPM 便签存储器 | 缓存锁定 | 读取 DRAM 内存 | DREM 猝发(Brust)
目录 0x00 便签存储器(Scratchpad memory) 0x01 缓存锁定(Cache lockdown) 0x02 读取 DRAM 内存 0x03 DREM Banking 0x04 DRAM 猝发(DRAM Burst) 0x00 便签存储器(Scratchpad memory&#…...

dameng数据库数据id decimal类型,精度丢失
问题处理 这一次也是精度丢失,但是问题呢还是不一样,这一次所有的id都被加一了,只有id字段被加一,还有的查询查出来封装成对象之后对象的id字段被减一了,数据库id字段使用的decimal(20,6)&…...

python图神经网络,注意力机制、Transformer模型、目标检测算法、强化学习等
近年来,伴随着以卷积神经网络(CNN)为代表的深度学习的快速发展,人工智能迈入了第三次发展浪潮,AI技术在各个领域中的应用越来越广泛 本文重点为:注意力机制、Transformer模型(BERT、GPT-1/2/3/…...

安装包 amd,amd64, arm,arm64 都有什么区别
现在的安装包也不省心,有各种版本都不知道怎么选。 根据你安装的环境配置。 amd: 32位X86 amd64: 64位X86 arm: 32位ARM arm64: 64位ARM amd64是X86架构的CPU,64位版。amd64又叫X86_64。主流的桌面PC&am…...

Ansible 企业实战详解
一、ansible简介1. ansible是什么2.ansible的特点ansible的架构图 二、ansible 任务执行1、ansible 任务执行模式2、ansible 执行流程3、ansible 命令执行过程 二 .Ansible安装部署1.yum安装2.ansible 程序结构3、ansible配置文件查找顺序4、ansible配置文件5.ansible自动化配置…...

云贝教育 |【技术文章】pg缓存插件介绍
一、pg_buffercache 主要作用是查看pg的共享池中缓存的对象信息 1.1 创建扩展 postgres# create extension pg_buffercache; CREATE EXTENSION 1.2 查看视图pg_buffercache postgres# \d pg_buffercacheView "public.pg_buffercache"Column | Type | Co…...

Kohana框架的安装及部署
Kohana框架的安装及部署 tipsKohana安装以及部署1、重要文件作用说明1.1 /index.php1.2 /application/bootstrap.php 2、项目结构3、路由配置3.1、隐藏项目入口的路由3.2、配置默认路由3.3、配置自定义的路由(Controller目录下的控制器)3.4、配置自定义的路由(Controller/direc…...

无重复字符的最长子串 Golang leecode_3
刚开始的思路,先不管效率,跑出来再说,然后再进行优化。然后就有了下面的暴力代码: func lengthOfLongestSubstring(s string) int {// count 用来记录当前最长子串长度var count int// flag 用来对下面两个 if 语句分流var flag …...

Vue项目的学习一
1、Vue项目里面的.js文件里面对象添加属性 例如:在对象:row,需要在对象row里面添加一个属性状态:type,使用里面的Vue.set函数 Vue.set(参数1,参数2,参数3) Vue.set(row,type,false)解析: 参数1࿱…...

k8s备份
cpu 磁盘io 往主的写,同步给备 rootk8s-etcd02:~# cat /etc/systemd/system/etcd.service [Unit] DescriptionEtcd Server Afternetwork.target Afternetwork-online.target Wantsnetwork-online.target Documentationhttps://github.com/coreos[Service] Typen…...

python自己造轮子使用
项目结构 首先,需要按照下列格式组织你的 package project (项目名称,随意,与package无关)|----package (这个才是包名)|----…...

Elastic stack8.10.4搭建、启用安全认证,启用https,TLS,SSL 安全配置详解
ELK大家应该很了解了,废话不多说开始部署 kafka在其中作为消息队列解耦和让logstash高可用 kafka和zk 的安装可以参考这篇文章 深入理解Kafka3.6.0的核心概念,搭建与使用-CSDN博客 第一步、官网下载安装包 需要 elasticsearch-8.10.4 logstash-8.…...

解决npm报错Error: error:0308010C:digital envelope routines::unsupported
解决npm报错Error: error:0308010C:digital envelope routines::unsupported。 解决办法;终端执行以下命令(windows): set NODE_OPTIONS--openssl-legacy-provider然后再执行 npm命令成功:...

高防IP是什么?有什么优势?
一.高防IP的概念 高防IP是指高防机房所提供的IP段,一种付费增值服务,主要是针对网络中的DDoS攻击进行保护。用户可以通过配置高防IP,把域名解析到高防IP上,引流攻击流量,确保源站的稳定可靠。 二.高防IP的原理 高防I…...

php费尔康框架phalcon(费尔康)框架学习笔记
phalcon(费尔康)框架学习笔记 以实例程序invo为例(invo程序放在网站根目录下的invo文件夹里,推荐php版本>5.4) 环境不支持伪静态网址时的配置 第一步: 在app\config\config.ini文件中的[application]节点内修改baseUri参数值为/invo/index.php/或…...

StartUML的基本使用
文章目录 简介和安装创建包创建类视图时序图 简介和安装 最近在学习一个项目的时候用到了StartUML来构造项目的类图和时序图 虽然vs2019有类视图,但是也不是很清晰,并没有生成uml图,但是宇宙最智能的IDE IDEA有生成uml图的功能 下面就简单介…...

飞天使-django概念之urls
urls 容易搞混的概念,域名,主机名,路由 网站模块多主机应用 不同模块解析不同的服务器ip地址 网页模块多路径应用 urlpatterns [ path(‘admin/’, admin.site.urls), path(‘’, app01views.index), path(‘movie/’, app01views.movi…...

MongoDB分片集群搭建
----前言 mongodb分片 一般用得比较少,需要较多的服务器,还有三种的角色 一般把mongodb的副本集应用得好就足够用了,可搭建多套mongodb复本集 mongodb分片技术 mongodb副本集可以解决数据备份、读性能的问题,但由于mongodb副本集是…...

modbus报文
MODBUS规约报文解析-CSDN博客...

flutter报错: library “libflutter.so“ not found
修改android/app/build.gradle defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "cn.rentsoft.flutter.openim.consumer" // You can update the …...

MR混合现实情景实训教学系统模拟历史情景
二、应用场景 1. 古代战争场景:通过MR混合现实情景实训教学系统,学生可以亲身体验古代战争的场景,如战场布置、战术运用等。这不仅有助于学生更好地理解古代战争的特点,还能够培养他们的团队协作和战略思维能力。 2. 历史文化古…...

计算机视觉的应用16-基于pytorch框架搭建的注意力机制,在汽车品牌与型号分类识别的应用
大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用16-基于pytorch框架搭建的注意力机制,在汽车品牌与型号分类识别的应用,该项目主要引导大家使用pytorch深度学习框架,并熟悉注意力机制模型的搭建,这个…...

Flutter 实现 Android CollapsingToolbarLayout折叠布局效果
Flutter 是通过Tabbar TabbarView 来实现 类似Android Viewpager 页面切换的效果的。我个人觉得Flutter 的tab 切换实现过程要比Android的实现过程要简单容易不是一星半点,哈哈哈哈 ,因为她所用到的widget 都是google 官方封装好的,用起来代…...

数据库管理-第116期 Oracle Exadata 06-ESS-下(202301114)
数据库管理-第116期 Oracle Exadata 06-ESS-下(202301114) 距离上一次正儿八经的技术分享又过了整整一周了,距离上一期Exadata专题文章也过了11天了,今天一鼓作气把ESS写完,毕竟明天又要飞北京了。 1 Smart Scan 其…...

阿里云C++二面面经
1.智能指针 1、shared_ptr 原理:shared_ptr是基于引用计数的智能指针,用于管理动态分配的对象。无论 std::shared_ptr 存储在堆区还是栈区,它所指向的内存块始终存储在堆区。这是因为 std::shared_ptr 是用于管理动态分配的内存的智能指针,它需要存储在堆区,以便进行引用…...

Ubuntu 20.04编译Chrome浏览器
本文记录chrome浏览器编译过程,帮助大家避坑qaq 官网文档:https://chromium.googlesource.com/chromium/src//main/docs/linux/build_instructions.md 一.系统要求 一台64位的英特尔机器,至少需要8GB的RAM。强烈推荐超过16GB。至少需要100…...

大文件分片上传、断点续传、秒传
小文件上传 后端:SpringBootJDK17 前端:JavaScriptsparkmd5.min.js 一、依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.2</ve…...

DAY53 1143.最长公共子序列 + 1035.不相交的线 + 53. 最大子序和
1143.最长公共子序列 题目要求:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删…...

短剧App开发:个性化的内容推荐
随着移动互联网的普及和用户需求的多样化,短剧App作为一种新兴的内容消费模式,受到了越来越多用户的青睐。在短剧App开发中,个性化的内容推荐是一个重要的功能,它能够根据用户的兴趣偏好和行为数据,为他们提供更精准、…...

互斥量保护资源
一、概念 在多数情况下,互斥型信号量和二值型信号量非常相似,但是从功能上二值型信号量用于同步, 而互斥型信号量用于资源保护。 互斥型信号量和二值型信号量还有一个最大的区别,互斥型信号量可以有效解决优先级反转现 象。 …...