嵌入式开发DDR的选择

摘要:

当前DDR主要有DDR、DDR2、DDR3、DDR4、DDR5等不同的内存标准。本文主要是对比不同标准的DDR,了解其差异性以及优劣势,以便在以后在以后做DDR选型的时候做一定的参考。

嵌入式设备常见的DDR内存标准

嵌入式常见的DDR内存标准有DDR、DDR2、DDR3和DDR4。其中,DDR2是DDR的升级版,DDR3是DDR2的升级版,DDR4是DDR3的升级版。这些内存标准的主要区别在于它们的时钟速度、带宽和电压等方面的不同。DDR2内存的时钟速度比DDR内存快两倍,带宽也比DDR内存大一倍,而DDR3内存的时钟速度比DDR2内存快两倍,带宽也比DDR2内存大一倍。DDR4内存则比DDR3内存的时钟速度快两倍,带宽也比DDR3内存大一倍。因此,在选择内存时,需要根据实际需求来选择适合的内存标准

各个DDR内存的规格

内存规格工作电压核心频率MHz工作频率MHz内存预取IO频率MHz等效频率MHz

理论带宽

-单通道

-64位宽

DDR 266/333/4002.5V133/166/200266/333/4002133/166/200266/333/4002.1GB/s - 3.2GB/s
DDR2 533/667/8001.8V133/166/200266/333/4004266/333/400533/667/8004.2GB/s - 6.4GB/s
DDR3 1066/1333/16001.5V133/166/200266/333/4008533/667/8001066/1333/16008.4GB/s - 12.8GB/s
DDR4 2133/2667/32001.2V133/166/200266/333/400161066/1333/16002133/2667/320016.8GB/s - 25.6GB/s
DDR5 4266/5333/64001.1V133/166/200266/333/400322133/2667/32004266/5333/640033.6GB/s - 51.2GB/s

核心频率

内存颗粒的核心频率是固定的,一些常见的内存颗粒核心频率如下。

DDR 266、DDR2 533、DDR3 1066、DDR4 2133、DDR5 4266颗粒的核心频率为133MHz,

DDR 333、DDR2 667、DDR3 1333、DDR4 2667、DDR5 5333颗粒的核心频率为166MHz,

DDR 400、DDR2 800、DDR3 1600、DDR4 3200、DDR5 6400颗粒的核心频率为200MHz。

工作频率

工作频率,记住工作频率是核心频率的两倍即可,由双沿传输引起

DDR内存的工作频率是指内存颗粒的工作频率,它是内存颗粒核心频率的两倍。

比如DDR 400、DDR2 800、DDR3 1600、DDR4 3200、DDR5 6400的核心频率为200MHz,那么这几个内存颗粒的工作频率就是400MHz。

这个计算方式与DDR内存的数据传输原理有关,因为DDR内存可以在一个时钟周期内完成两次数据传输,所以工作频率是核心频率的两倍

内存预取

DDR内存预取是指内存控制器在一次读取操作中可以同时读取的数据位数。

这种预取技术可以提高内存的读取速度和带宽,因为在读取一个内存地址时,实际上会将这个地址附近的8个字节都读取到缓存中,这样下次读取相邻的地址时就可以直接从缓存中读取,而不需要再次从内存中读取,从而提高了读取速度和带宽

例如,DDR1的2位预取意味着内存控制器可以在一次读取操作中同时读取2位数据。而DDR3和DDR4的8位预取意味着内存控制器可以在一次读取操作中同时读取8位数据。预取位数越高,内存控制器在同一时间内可以读取更多的数据,从而提高内存读取速度。

IO频率

即I/O Buffer(输入/输出缓冲)的传输频率。IO频率和内存预取有关

DDR 是 2bit预取:频率不变,但是双沿出数,才满足进来的2bit送出去(核心频率x1)

DDR2 是4bit预取:频率增加一倍,双沿出数,才能进来的4bit送出去(核心频率x2)

DDR3 是8bit预取:频率要比4bit预取再增加一倍,双沿出数,才能进来的8bit送出去(核心频率x4)

DDR4 是16bit预取:频率要比8bit预取再增加一倍,双沿出数,才能进来的16bit送出去(核心频率x8)

DDR5 是32bit预取:频率要比16bit预取再增加一倍,双沿出数,才能进来的32bit送出去(核心频率x16)

因为IO频率是上升沿和下降沿都进行数据传输,等效到只有单沿(一般为上升沿)传输的情况下,等效频率为IO频率的两倍

等效频率

内存的等效频率才是DDR2 800内存中,“800MHz”的真正含义。

等效频率和内存预取有关,那么内存预取又是怎么回事呢?我们可以举一个简单的例子,比如说运动场上的运动员在跑步,有速度快慢之分。跑的快的通常是迈的步伐大,而且步伐的距离长。假设这名运动员每1秒钟跑了一步,步伐的距离为一米,我们就可以算出,速度为1米/秒。而第二个人每1秒钟跑了2步,步伐的距离为2米,他的速度则是2米/秒。 因此我们可以理解为DDR2内存比DDR内存快的原因了。DDR内存的预取是2bit,DDR2的预取是4bit,DDR3的预取是8bit,DDR4的预取是16bit,DDR5的预取是32bit

因此,只要是内存颗粒的工作频率相同,DDR2的等效频率就是DDR等效频率的2倍,DDR3则是DDR的4倍。以DDR2 800为例,前面已经算出来了它的工作频率为200MHzx2=400MHz,因此400MHz x2,得到的800MHz就是DDR2 800内存名称的真正由来,DDR2 800指的是内存的等效频率。

DDR理论带宽计算公式

DDR的理论内存带宽计算公式为:内存带宽=时钟频率 × 内存位宽 × 内存通道数 ÷ 8

其中,时钟频率指的是DDR的主频,内存位宽指的是数据总线的位宽,通道数是内存的通道数,8是一个字节的位数。因此,以2400MHz主频,64bit位宽,单通道计算DDR4的理论带宽为:2400 × 64 × 1÷ 8 = 19200MB/s = 18.75GB/s。

而DDR的实际带宽则需要考虑到理论带宽效率,一般为70%左右。因此,DDR的实际带宽 = 理论带宽 * 理论带宽效率。例如,以2400MHz主频,64bit位宽计算的DDR4理论带宽为2400 * 64 * 1 / 8 = 19200MB/s,实际带宽为19200 * 70% = 13.125GB/s。

DDR内存位宽

DDR内存位宽是指内存数据总线的宽度,它决定了内存一次能传输多少数据。

DDR内存的位宽范围通常是从8位到64位不等。其中,DDR3和DDR4内存的位宽通常为64位,而DDR2内存的位宽通常为32位。此外,DDR内存的位宽越大,其带宽也就越高,因此在选择内存时需要根据实际需求进行选择。

需要注意的是,这些位宽范围是基于标准配置。实际上,一些制造商可能会提供不同的配置,因此位宽可能会有所不同。

DDR内存通道数

DDR内存通道数是指内存控制器与内存通信的通道数量。通道数越多,内存带宽越大,系统性能也就越好。通常情况下,DDR内存的通道数为单通道、双通道或四通道。但是,一些高端服务器或工作站可能会使用更多通道的DDR内存。

Linux下内存带宽测试

Linux下有多种内存带宽测试工具可供选择,其中比较常用的是mbw和Stream。

mbw

mbw是一款简单易用的内存带宽测试工具,可以测试内存的读写速度和带宽。使用mbw测试内存带宽的命令格式如下:

mbw -t <num_threads> -s <mem_size>

其中,num_threads表示测试线程数,mem_size表示测试内存大小。例如,测试4个线程下1GB内存的读写速度和带宽,可以使用以下命令:

mbw -t 4 -s 1G

Stream

Stream是一款多核内存带宽测试工具,可以测试内存的读写速度和带宽。使用Stream测试内存带宽的命令格式如下:

stream -P <num_threads> -M <mem_size>

其中,num_threads表示测试线程数,mem_size表示测试内存大小。例如,测试4个线程下1GB内存的读写速度和带宽,可以使用以下命令:

stream -P 4 -M 1G

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3怎么提升效率的?为什么vue3比vue2快?效率提升主要在哪些方面?

官方文档中说vue3在 客户端渲染效率比vue2提升了1.3~2倍&#xff0c; SSR渲染效率比vue2提升了2~3倍&#xff0c;那么究竟是怎么提升的呢&#xff1f; 一、静态提升 在 vue3项目中的package.json文件中&#xff0c;可以看到这个 vue/compiler-sfc&#xff0c;它是用来解析(.v…

【Java Spring】SpringBoot常用插件

文章目录 1、Lombok1.1 IDEA社区版安装Lombok1.2 IDEA专业版安装Lombok1.3 Lombok的基本使用 2、EditStarters2.1 IDEA安装EditStarters2.2 EditStarters基本使用方法 1、Lombok 是简化Java开发的一个必要工具&#xff0c;lombok的原理是编译过程中将lombok的注解给去掉并翻译…

电力感知边缘计算技术网关产品设计方案-硬件方案

网关硬件架构设计图: 1.配置方案 配置差异 A类网关 B类网关 CPU

LeetCode47. Permutations II

文章目录 一、题目二、题解 一、题目 Given a collection of numbers, nums, that might contain duplicates, return all possible unique permutations in any order. Example 1: Input: nums [1,1,2] Output: [[1,1,2], [1,2,1], [2,1,1]] Example 2: Input: nums [1,…

写一个宏,交换整数二进制位的奇数位和偶数位,并打印这个新的数

我们已经学过了C语言的宏&#xff0c;我们今天应用宏来交换一个整数的二进制的奇数位和偶数位&#xff0c;并得到这个被交换过的数&#xff0c;我们开始吧&#xff01; 1.问题分析 解题方法&#xff1a;& 和<< 和>>操作符 问题解析&#xff1a;我们这里假设一个…

变电站电压无功补偿装置设计

变电站电压无功补偿装置设计 [摘要] 本次毕业设计的题目是变电站电压无功补偿装置设计&#xff0c;变电站在电力系统中甚至是电力网中变电站都起着十分重要的作用&#xff0c;变电站主要有着变换电压、电流、相位等作用&#xff0c;同时也起到了连接了发电站和输配电线路最后将…

这才是BI大数据分析工具的正确打开方式!

这两年经济下行给各行各业造成不小的发展困扰&#xff0c;为此企业积极自救&#xff0c;希望通过数字化降本增效&#xff0c;提高业绩水平。BI大数据分析工具就是企业数字化转型中常用到的一种商业智能BI工具&#xff0c;主要作用是缩短数据分析时间&#xff0c;提升企业数据分…

解析直播第三方美颜SDK:技术原理与应用

时下&#xff0c;直播平台和主播们纷纷引入美颜技术&#xff0c;以提升视觉效果和用户体验。而在众多美颜技术中&#xff0c;直播第三方美颜SDK成为许多开发者和平台的首选&#xff0c;因其灵活性和高效性而备受推崇。 一、技术原理&#xff1a;美颜算法的精髓 第三方美颜SDK…

2023年【A特种设备相关管理(锅炉压力容器压力管道)】新版试题及A特种设备相关管理(锅炉压力容器压力管道)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;】新版试题及A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;模拟考试题库&#xff0c;包含A特种设备相关管理&#xff08;锅…

基于Python+OpenCV+dlib+Tensorflow深度学习的人脸表情识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 人脸表情识别是一种重要的计算机视觉任务&#xff0c;它涉及到对人脸图像中的表情进行分类和理解。在这个系统中&am…

vue使用echarts中国地图

需求&#xff1a;Vue3 vite TS 项目内使用 Echarts 5 绘制中国地图。鼠标悬浮省份上面显示指定的数据&#xff0c;地图支持缩放和拖拽的功能&#xff0c;页面放大缩小支持自适应&#xff0c;window.addEventListener(‘resize’, resize); 添加防抖动函数debounce。 一、安装…

回顾方法的定义

/*** Description 回顾方法的定义*/ package com.oop.demo01;import java.io.IOException;public class Demo01 {//main 方法public static void main(String[] args){}/*修饰符 返回值类型 方法名(...){//方法体return 返回值}*///return 结束方法,返回一个人结果&#…

零基础学Python第三天||写一个简单的程序

通过对四则运算的学习&#xff0c;已经初步接触了Python中内容&#xff0c;如果看官是零基础的学习者&#xff0c;可能有点迷惑了。难道敲几个命令&#xff0c;然后看到结果&#xff0c;就算编程了&#xff1f;这也不是那些能够自动运行的程序呀&#xff1f; 的确。到目前为止…

算法基础二

回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 示例 1&#xff1a; 输入&#xff1…

C++——STL标准模板库——初识

一、概念 STL&#xff1a;标准模板库&#xff0c;Standard Template Library的缩写。是c编程语言中重要部分&#xff0c;提供了一组通用模板&#xff0c;实现常用的数据结构和算法。是泛型编程思想的重要体现&#xff0c;进一步提升了复用性。 STL分为六大组件&#xff1a;容…

【FGPA】Verilog:JK 触发器 | D 触发器 | T 触发器 | D 触发器的实现

0x00 JK 触发器 JK 触发器是 RS 触发器和 T 触发器的组合&#xff0c;有两个输入端 J 和 K&#xff0c;如果两个输入端都等于 1&#xff0c;则将当前值反转。 行为表 状态图 Timing Diagram Circuit JK 触发器的设计目的是防止 RS 触发器在输入 S 和 R 均等于 …

使用Java给钉钉群发消息

目录 目录 1.安装依赖 2.编写工具类 3.测试 安全设置 Webhook 代码编写 运行测试 4.艾特全部功能 1.安装依赖 <dependency><groupId>com.taobao.dingding</groupId><artifactId>taobao-sdk</artifactId><version>1.0.0</versio…

Java中枚举类的创建及其应用场景

枚举类 枚举是一种特殊的类(编译之后也是生成class文件)可以实现接口,属于引用数据类型,枚举类是一组常量(枚举对象)的集合可以将枚举对象当作常量使用 自定义枚举类 自定义一个类实现枚举的效果 构造器私有化: 因为枚举对象的个数是固定的,所以需要防止直接new对象 创建一…

Zabbix监控Oracle表空间

警告 Oracle {#TABLESPACE}: 表空间数据文件已分配超过 {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% &#xff0c;且表空间已使用超过{$ORACLE.TBS.USED.PCT.MAX.WARN}% 警告 min(/Oracle by ODBC-2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PC…

E云管家开发个人微信号批量修改好友备注

简要描述&#xff1a; 修改好友备注 请求URL&#xff1a; http://域名地址/modifyRemark 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说…