有支付功能网站用的编程语言做泰迪狗网站的意义

当前位置: 首页 > news >正文

有支付功能网站用的编程语言,做泰迪狗网站的意义,安阳企业网站优化排名,定制开发小程序多少钱I.MX6U 裸机开发20. DDR3 内存知识 一、DDR3内存简介1. DDR发展历程SRAMSDRAMDDR1DDR2DDR3DDR4DDR5 2. 开发板资源3. DDR3的时间参数1. 传输速率2. tRCD3. CL 参数作用取值范围工作原理4. tRC参数原理单位与取值5. tRAS重要性及作用 二、I.MX6U MMDC 控制器1. MMDC简介#xf… I.MX6U 裸机开发20. DDR3 内存知识 一、DDR3内存简介1. DDR发展历程SRAMSDRAMDDR1DDR2DDR3DDR4DDR5 2. 开发板资源3. DDR3的时间参数1. 传输速率2. tRCD3. CL 参数作用取值范围工作原理4. tRC参数原理单位与取值5. tRAS重要性及作用 二、I.MX6U MMDC 控制器1. MMDC简介1主要组成部分2支持的存储类型及特性3时钟频率与数据速率4校准程序5其他特性 2. 时钟源3. 开发板原理图 三、DDR3初始化与测试1. ddr_stres_tester简介xlsx 文件 2. 下载配置信息1直接进行超频测试2校准3超频测试 四、DCD数据1. 打开 《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81.pdf》 一、DDR3内存简介

  1. DDR发展历程 SRAM SRAMStatic Random - Access Memory即静态随机存取存储器是一种半导体存储器。 SRAM 存储单元通常由 6 个晶体管组成CMOS 工艺。这种结构可以在不进行刷新操作的情况下保持数据的存储状态容量小、价格高、速度快。 在传统的51单片机、STM32中会有芯片内部RAM即SRAM。在高级一点单片机可以使用外扩RAM。 以 IS62WV51216 SRAM为例这是一个1M Byte存储器从数据手册可以看到其功能框图 其中 A0-A1819根地址线I/O0-7, I/O8-15数据低字节、高字节CS片选OE读使能WE写使能UB低电平访问高字节LB低平平访问低字节 SDRAM SDRAMSynchronous Dynamic Random Access Memory是一种同步动态随机存取存储器SDRAM需要时钟线常见的频率有100MHz、133MHz、166MHz、200MHz相对于SRAM价格低、速率低。 以W9825G6KH为例其功能框图 引脚介绍 CLK时钟线 CKE时钟使能信号SRAM没有CKE。 CS片选 RAS行选通信号 CAS列选通信号 WE写使能信号 A10地址线自动预充电 A0~A12地址线 BS0BANK0选择信号线 BS1BANK1选择信号线 D0~D15数据线 其容量 行 2 13 ∗ 列 2 9 ∗ 4 个 B a n k ∗ 2 字节位宽 32 M B y t e 行 2^{13} * 列 2{^9} * 4个Bank * 2字节位宽 32MByte 行213∗列29∗4个Bank∗2字节位宽32MByte
    DDR1 DDR1由三星公司于1996年提出1998年12月联合电子设备工程委员会JEDEC正式确定了DDR内存与DDR内存部件的规范。它是在SDRAM内存基础上发展而来其诞生是为了对抗Intel提倡的Rambus标准. DDR1沿用了SDRAM的生产体系但采用了更加先进的双倍数据速度技术即DDR1内存在每个时钟周期预取2位数据这样DDR1在每个时钟周期的上升沿和下降沿都进行数据传输使得数据传输速率是传统SDRAM的两倍。 DDR1初始频率为200MHz后来发展到DDR-266、DDR-333和主流的DDR-400数据传输速度相比SDRAM有了显著提升 。从外形上看DDR1内存条有184个引脚金手指中有一个缺口而SDRAM内存条是168个引脚并且有两个缺口。 DDR1的容量范围最初只有单通道容量从128MB增加到1GB。 DDR2 DDR2是由JEDEC进行开发的一种新内存技术标准于2003年正式发布。DDR2内存均采用FBGA封装形式拥有240个引脚电气性能与散热性更好有利于内存的稳定工作与未来频率的发展。与DDR1相比DDR2的预读取能力是DDR1的两倍在每个时钟脉冲周期内都能以四倍外部总线的速度读/写数据并且能够以内部控制总线四倍的速度运行。 DDR2采用1.8V电压相比DDR1的2.5V降低了功耗。 DDR2容量从256MB起步最大支持到4GB。 DDR3 DDR3是一种使用SSTL15接口的计算机内存规格于2007年发布。与DDR2相比它拥有更高的运行效能与更低的电压同时更省电、传输效率更快。 DDR3突发长度增加了4bit突发突变模式能够提供更灵活的突发传输控制寻址时序的CL周期有所提高并提供了0CL-1和CL-2三种AL选项同时还新增加了写入延迟这一时序参数专门准备了一个引脚实现重置功能能够让DDR3内存停止所有操作并切换至最少量活动状态从而节约电力还新增了ZQ引脚能够对导通电阻和ODT电阻进行重新校准. DDR3核心电压降低到1.5V预取从4-bit变成了8-bit提供了更高的带宽频率从800MHz起步一般能买到的最高频率为2400MHz常见的容量是512MB到8GB也有单条16GB的DDR3内存但较为稀少。 正点原子的开发板上使用的是 NT5CC256M16ER-EK其接口结构与其它厂家相同规格芯片 相同下图是MT41K256M16结构框图 其引脚说明 A0~A14地址线行线15根 A0 ~ A9 10列。BA[2:0]BANK选择线共8个BANK。 容量 2 15 ∗ 2 10 ∗ 8 ∗ 2 512 M B y t e 2^{15} * 2^{10} * 8 * 2 512MByte 215∗210∗8∗2512MByte DDR4 2011年1月4日三星电子发布了第一款DDR4标准的内存条首批样品采用30nm级工艺制造而成2014年开始广泛应用。 DDR4采用16bit的预取机制在同样内核频率下理论速度是DDR3的两倍采用更可靠的传输规范进一步提升数据的可靠性工作电压降为1.2V。 DDR4 频率范围从DDR4-1600到DDR4-3200理论上每根DIMM模块能达到512GiB的容量而DDR3每个DIMM模块的理论最大容量仅128GiB。 DDR5 2020年开始投入市场带来了全新的架构改进的功能使实际带宽相比DDR4有了显著提高即使在3200MT/s和4800MT/s速度开始与DDR4-3200相比实际带宽将高出87%。引入了on-die ECC提高了数据的可靠性和准确性。 DDR5工作电压进一步降低至1.1V并支持更高的频率和更大的单条内存容量初始频率为4800MHz单条内存可以达到128GB使用2DPC的主板时总内存容量可达512GB。
  2. 开发板资源 在开发板上有 DDR3 的RAM芯片正点原子提供的核心板有256M和512M两款内存规格的开发板对于ARM A系列芯片来说要运行的程序是要加截到内存中运行。 本系列文章基于正点原子 I.MX6U-MINI开发板使用的内存是 NT5CC256M16ER-EK。
  3. DDR3的时间参数
  4. 传输速率 基本概念 DDR3在一个时钟周期的上升沿和下降沿都可以传输数据这就是所谓的“双倍数据速率”。它的传输速率通常用每秒传输的数据量来衡量单位有MT/s兆次传输每秒或Mbps兆位每秒。1MT/s 8Mbps因为1字节Byte等于8位bit。 速率标准 DDR3内存的初始标准传输速率从800MT/s开始对应的带宽为6.4GB/s800MT/s×64bit/8。这里的64bit是DDR3内存的数据总线宽度。之后还有更高的标准如1066MT/s、1333MT/s、1600MT/s等。以1600MT/s为例其带宽为12.8GB/s1600MT/s×64bit/8。这些不同的传输速率可以满足不同性能需求的计算机系统。更高端的DDR3甚至可以达到2133MT/s带宽可达17GB/s左右能够为高性能计算如游戏电脑、工作站等提供更快速的数据传输让CPU能更快地读取和写入内存中的数据从而提升系统的整体性能。
    本系列文章使用的开发板的内存支持速率如下图所示 不同的速率的时序有所不同。
  5. tRCD tRCDRAS to CAS Delay主要用于描述内存工作过程中的延迟时间。 工作原理背景 在计算机内存系统中数据的读取和写入是一个复杂的过程。当内存控制器通常位于CPU或芯片组中发出读取或写入命令后内存芯片需要按照一定的顺序和时间间隔来执行这些操作。tRCD主要涉及从行地址选通RAS - Row Address Strobe到列地址选通CAS - Column Address Strobe之间的延迟。以读取数据为例首先内存控制器要激活某一行通过RAS信号然后才能指定列地址来读取具体的数据单元。tRCD就是这个行激活和列选择之间的延迟时间。 具体含义 tRCD以时钟周期Clock Cycle为单位进行衡量。例如如果内存的时钟频率是100MHz一个时钟周期就是10ns纳秒。假设tRCD的值为3个时钟周期那么在这种情况下tRCD的实际延迟时间就是30ns。这个延迟时间对于内存性能有重要影响。较小的tRCD值意味着内存能够更快地从行激活状态转换到列选择状态从而可以更快地读取或写入数据。相反较大的tRCD值会导致内存操作的延迟增加降低数据访问速度。
  6. CL 参数 CL是CAS Latency的缩写即列选通潜伏期具体来说CL是指从内存控制器发出读命令到内存开始输出第一个数据之间的延迟时间以时钟周期为单位。 作用 衡量内存性能CL值越小内存响应速度越快数据传输延迟越低内存性能也就越高。比如在相同内存主频下CL值为5的DDR3内存性能要优于CL值为7的内存。影响系统整体性能内存的CL参数与CPU的配合对系统性能有重要影响。如果CL值过大会导致CPU等待数据从内存中传输的时间过长从而降低CPU的执行效率影响整个系统的运行速度。 取值范围 DDR3内存的CL值一般在5-11之间常见的有7、8、9、10、11等。如DDR3-1066的CL值通常为7DDR3-1333的CL值一般为8DDR3-1600的CL值常为9。 工作原理 在内存读写操作中当内存控制器发出行地址激活命令后需要经过一段时间的延迟这段延迟包含行地址到列地址的延迟TRCD和列选通潜伏期CL等。CL是其中关键的一部分它决定了从列地址选通到数据开始输出的时间间隔。以DDR3-1600 CL9为例在内存接收到读命令后经过9个时钟周期才会将第一个数据输出到数据总线上.
  7. tRC参数 DDR3的tRC参数是指同一bank内两个ACTIVE命令之间的最小延迟周期也可以是ACTIVE命令到REFRESH命令之间的周期。tRC参数用于限制对同一bank的访问频率确保内存操作的稳定性和数据的正确传输。它规定了在同一bank内两次激活操作之间必须间隔的最短时间。 原理 DDR3内存的存储单元是以bank为单位进行组织的每个bank包含多个行和列。当对内存进行读写操作时需要先激活相应的bank和行然后才能进行列地址的选择和数据传输.如果在tRC时间内对同一bank再次发出ACTIVE命令可能会导致数据冲突、信号干扰等问题从而影响内存的正常工作。因此tRC参数的设置是为了给内存足够的时间来完成当前操作并为下一次操作做好准备。 单位与取值 tRC的单位通常是纳秒ns或时钟周期数。在DDR3的数据手册中一般会给出tRC的具体数值例如NT5CC256M16EP-EK的tRC值为47.91ns.不同频率和型号的DDR3内存其tRC参数的取值可能会有所不同。通常情况下tRC的取值范围在几十到上百纳秒之间具体数值取决于内存的规格和性能等级 。
  8. tRAS DDR3的tRASRow Active Time to Precharge Delay是指从ACTIVE命令到PRECHARGE命令之间的最小时间间隔即行激活时间到预充电延迟 。它表示在DDR3内存中从行地址被激活ACTIVE命令发出开始到可以对该行发出预充电命令PRECHARGE命令之间所必须经过的最短时间。 当内存控制器发出ACTIVE命令后相应的行被激活数据的读取或写入操作会在该行上进行。在操作完成后需要经过tRAS时间才能对该行进行预充电操作以便为下一次的访问做好准备。如果在tRAS时间未结束时就对该行进行预充电可能会导致数据丢失或损坏因为此时该行的数据可能还处于不稳定状态。 重要性及作用 确保数据完整性tRAS的存在是为了给内存足够的时间来完成数据的传输和稳定存储。在数据读写操作期间内存芯片内部的各种电路和存储单元需要一定的时间来处理和保持数据如果过早地进行预充电操作可能会干扰数据的稳定存储从而导致数据错误.影响内存性能tRAS的值会影响内存的整体性能。一般来说tRAS时间越短内存的访问速度就越快因为可以更快地进入下一次的行激活和数据传输操作。然而如果tRAS设置得过短可能会导致数据不稳定从而引发系统错误或性能下降。相反如果tRAS设置得过长虽然可以保证数据的稳定性但会增加内存的访问延迟降低内存的带宽利用率. 二、I.MX6U MMDC 控制器 I.MX6U的MMDC控制器是一款多模式DDR控制器主要负责管理和控制与DDR内存的交互以实现高效的数据存储和读取操作满足系统对内存的需求。在《IMX6ULL 参考手册》 P2203有对其详细介绍。
  9. MMDC简介 1主要组成部分 MMDC CORE 内核内核承担着通过AXI接口与系统进行通信的重要任务负责生成DDR命令并对这些命令进行优化处理同时还管理着读/写数据路径确保数据能够准确、高效地在系统与内存之间传输。MMDC PHYPHY则专注于时序调整和校准工作。它运用特殊的校准机制保障数据能够在400MHz的时钟频率下被准确捕获从而保证了数据传输的稳定性和可靠性。 2支持的存储类型及特性 支持的存储类型MMDC支持16位宽的DDR3/DDR3L以及LPDDR2不支持LPDDR1、MDDR和DDR2等其他类型的内存。存储容量范围能够支持单片256Mbit~8Gbit容量的DDR内存其列地址范围为8-12位行地址范围为11-16位并且配备2个片选信号可通过配置CS0、CS1来达到4Gbyte的地址空间.突发访问支持对于DDR3最大支持8bit的突发访问而对于LPDDR2则最大支持4bit的突发访问。 3时钟频率与数据速率 MMDC的最大频率为400MHz对应的数据速率能够达到800MT/S为系统提供了高速的数据传输通道满足了处理器对内存数据快速读写的要求。 4校准程序 MMDC支持各种校准程序包括自动和手动运行方式还支持ZQ校准外部DDR设备、校准DDR I/O引脚以及校准DDR驱动能力等通过这些校准操作可以确保内存系统的稳定性和性能表现。 5其他特性 优先级与优化机制支持实时优先级并具备不同优先级的重新排序机制能够对实时、延时敏感和正常优先级的任务进行合理调度。同时还针对页面碰撞错过、连续读写访问等情况进行了优化进一步提高了内存访问效率。深度请求队列与预测功能支持深度读写请求队列能够更好地管理和调度内存访问请求并且还支持bank预测以及bank交叉等功能提升了内存系统的并行处理能力和整体性能。特殊访问优化在ddr3模式下的非对齐换行访问情况下也有特殊优化措施确保数据能够准确、快速地传输减少因数据对齐问题而导致的性能损失。
  10. 时钟源 时钟源我们使用PLL2-PFD2396MHzMMDC_CLK_ROOT最大支持 396MHz。 CBDMR[PERIPH2_CLK2_SEL]bit22,bit21设置为01设置PLL_PFD2作为 pre_periph2时钟源CBCDR[PERIPH2_CLK_SEL] bit26设置为0设置PLL2作为 MMDC 时钟源CBCDR[PABRIC_MMDC_PODF] bit5-3设置为01分频。
  11. 开发板原理图 三、DDR3初始化与测试
  12. ddr_stres_tester简介 ddr_stress_tester_v2.90 是NXP提供的一个DDR压测工具在本文对应的开源仓库中已经放了这个工具。 使用方法 xlsx 文件 打开 I.MX6UL_DDR3_Script_Aid_V0.02.xlsx 文件 复制生成的 ReView.inc 放到软件目录里。
  13. 下载配置信息 打开 DDR_Tester.exe加载初始化脚本 开发板需要外置供电使用 USB_OTG 连接电脑启动方式拨码开关选择 USB 启动另外要把SD卡取出。 点击Download有以下输出 1直接进行超频测试 填写频率 400MHz~600MHz 输出测试失败。这是因为没在进行校准操作。
    2校准 校准内容如下 MMDC registers updated from calibration Write leveling calibrationMMDC_MPWLDECTRL0 ch0 (0x021b080c) 0x00000000MMDC_MPWLDECTRL1 ch0 (0x021b0810) 0x001F001FRead DQS Gating calibrationMPDGCTRL0 PHY0 (0x021b083c) 0x013C013CMPDGCTRL1 PHY0 (0x021b0840) 0x00000000Read calibrationMPRDDLCTL PHY0 (0x021b0848) 0x40403236Write calibrationMPWRDLCTL PHY0 (0x021b0850) 0x4040382ESuccess: DDR calibration completed!!! 根据校准值对 ALIENTEK_512MB.inc 进行修改没找到的不用改下面是修改示例 修改后保存文件重新打开 DDR_Tester.exe。 3超频测试 一般在400MHz基础能超频20%硬件开发板设计就算正常。 四、DCD数据
  14. 打开 《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81.pdf》 在P342如下图所示 可以看到 CCGR0地址是在 0x020C4068 打开 imxdownload.h 可以找到该位置
    DDR相关的初始化位置是在0X020E04B4 而这个地址值与 ALIENTEK_512MB.inc里 这个位置相对应 直到位置 所以imxdownload里的 dcd表的值要与校准后的值相对应 。