【嵌入式设计】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 内核在锁定状态下分配的单位大小是一种方式。

例如,四向集关联缓存的出路允许将代码或数据锁定在缓存大小 \frac{1}{4} 的单位中。

锁定使用示例:矢量中断表、中断服务例程、大量使用的关键算法、常用全局变量。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/141972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flutter有状态组件StatefulWidget生命周期

StatefulWidget是Flutter中的一个有状态的组件,它的生命周期相对复杂一些。下面是StatefulWidget的生命周期方法及其调用顺序: 1. createState(): 当StatefulWidget被插入到Widget树中时,会调用createState()方法来创建与之关联的State对象。…

软路由R4S+iStoreOS实现公网远程桌面局域网内电脑

软路由R4SiStoreOS实现公网远程桌面局域网内电脑 文章目录 软路由R4SiStoreOS实现公网远程桌面局域网内电脑简介 一、配置远程桌面公网地址配置隧道 二、家中使用永久固定地址 访问公司电脑具体操作方法是:2.1 登录页面2.2 再次配置隧道2.3 查看访问效果 简介 上篇…

力扣511. 游戏玩法分析 I

答案: select player_id,min(event_date) as first_login from Activity a group by player_id我最开始写的错误答案是这样的: select player_id,event_date as first_login from Activity a group by player_id having event_date min(event_date…

Docker - DockerFile

Docker - DockerFile DockerFile 描述 dockerfile 是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 编写一个dockerfile 文件docker build 构建成为一个镜像docker run 运行脚本docker push 发布镜像(dockerhub&#xff0…

无监督学习的集成方法:相似性矩阵的聚类

在机器学习中,术语Ensemble指的是并行组合多个模型,这个想法是利用群体的智慧,在给出的最终答案上形成更好的共识。 这种类型的方法已经在监督学习领域得到了广泛的研究和应用,特别是在分类问题上,像RandomForest这样…

【KVM-5】KVM架构

前言 大家好,我是秋意零。今天分析的内容是KVM架构。 👿 简介 🏠 个人主页: 秋意零🔥 账号:全平台同名, 秋意零 账号创作者、 云社区 创建者🧑 个人介绍:在校期间参与…

正点原子嵌入式linux驱动开发——Linux IIO驱动

工业场合里面也有大量的模拟量和数字量之间的转换,也就是常说的ADC和DAC。而且随着手机、物联网、工业物联网和可穿戴设备的爆发,传感器的需求只持续增强。比如手机或者手环里面的加速度计、光传感器、陀螺仪、气压计、磁力计等,这些传感器本…

计算机视觉(CV)技术的优势和挑战

计算机视觉技术在很多领域具有很大的优势,例如: 自动化:计算机视觉技术可以帮助实现自动化生产和检测,省去了人力成本和时间成本。 准确性:计算机视觉技术可以提高生产和检测的准确性,降低了人工操作产生的误差。 速度:计算机视觉技术可以实现高速速度的生产和检测,提高…

flv.js在vue中的使用

Flv.js 是 HTML5 Flash 视频(FLV)播放器,纯原生 JavaScript 开发,没有用到 Flash。由 bilibili 网站开源。它的工作原理是将 FLV 文件流转码复用成 ISO BMFF(MP4 碎片)片段,然后通过 Media Sour…

【vue实战项目】通用管理系统:封装token操作和网络请求

目录 1.概述 2.封装对token的操作 3.封装axios 1.概述 前文我们已经完成了登录页: 【vue实战项目】通用管理系统:登录页-CSDN博客 接下来我们要封装一下对token的操作和网络请求操作。之所以要封装这部分内容是因为token我们登陆后的所有请求都要携…

Python爬虫从基础到入门:认识爬虫

Python爬虫从基础到入门:认识爬虫 1. 认识爬虫2. 开始简单的爬虫操作(使用requests)3. 辨别“数据”是静态加载还是动态生成的1. 认识爬虫 爬虫用自己的话说其实就是利用一定的编程语言,到网络上去抓取一些数据为自己所用。那为什么要用爬虫呢?自己直接到网页上去copy数据它…

线性代数本质系列(二)矩阵乘法与复合线性变换,行列式,三维空间线性变换

本系列文章将从下面不同角度解析线性代数的本质,本文是本系列第二篇 向量究竟是什么? 向量的线性组合,基与线性相关 矩阵与线性相关 矩阵乘法与复合线性变换 三维空间中的线性变换 行列式 逆矩阵,列空间,秩与零空间 克…

Arthas(阿尔萨斯)--(二)

目录 一、Arthas学习 1、JVM相关命令一 1、dashboard 2、thread 3、jvm 4、sysprop 一、Arthas学习 Arthas(阿尔萨斯)--(一) Arthas代码开源地址 1、JVM相关命令一 1、dashboard dashboard:显示当前系统的实时数据面板,按q或ctrlc退出 ID: Java 级别的线…

vue3 ref 与shallowRef reactive与shallowReactive

ref 给数据添加响应式,基本类型采用object.defineProperty进行数据劫持,对象类型是借助reactive 实现响应式,采用proxy 实现数据劫持,利用reflect进行源数据的操作 let country ref({count:20,names:[河南,山东,陕西],objs:{key…

postman调用接口报{“detail“:“Method \“DELETE\“ not allowed.“}错误, 解决记录

项目是python代码开发, urls.py 路由中访问路径代码如下: urlpatterns [path(reportmanagement/<int:pk>/, views.ReportManagementDetail.as_view(), namereport-management-detail),] 对应view视图中代码如下: class ReportManagementDetail(GenericAPIView):"…

华为笔记本电脑原装win10/win11系统恢复安装教程方法

华为电脑matebook 14原装Win11系统带F10智能还原 安装恢复教程&#xff1a; 1.安装方法有两种&#xff0c;一种是用PE安装&#xff0c;一种是华为工厂包安装&#xff08;安装完成自带F10智能还原&#xff09; 若没有原装系统文件&#xff0c;请在这里获取&#xff1a;https:…

适配器模式 rust和java的实现

文章目录 适配器模式介绍何时使用应用实例优点缺点使用场景 实现java实现rust 实现 rust代码仓库 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能…

Javaweb之javascript事件的详细解析

1.6 JavaScript事件 1.6.1 事件介绍 如下图所示的百度注册页面&#xff0c;当我们用户输入完内容&#xff0c;百度可以自动的提示我们用户名已经存在还是可以使用。那么百度是怎么知道我们用户名输入完了呢&#xff1f;这就需要用到JavaScript中的事件了。 什么是事件呢&…

【电路笔记】-戴维南定理(Thevenin‘s Theorem)

戴维南定理&#xff08;Thevenin’s Theorem&#xff09; 文章目录 戴维南定理&#xff08;Thevenins Theorem&#xff09;1、概述与定义2、戴维南模型确定3、一些线性电路的戴维南模型3.1 单电压源3.2 单电流源3.3 多电流/电压源 4、结论 在本文中&#xff0c;我们将介绍一种强…

2023.11.12使用flask对图片进行黑白处理(base64编码方式传输)

2023.11.12使用flask对图片进行黑白处理&#xff08;base64编码方式传输&#xff09; 由前端输入图片并预览&#xff0c;在后端处理图片后返回前端显示&#xff0c;可以作为图片处理的模板。 关键点在于对图片进行base64编码的转化。 使用Base64编码可以更方便地将图片数据嵌入…