ddr内存

宏旺半导体一文解答DDR内存时序高好还是低好

三世轮回 提交于 2020-04-03 15:07:13
由于内存条种类繁多,参数多样,很多小白DIY电脑的,会发现购买内存条是件头疼的事。大家对内存容量以及内存频率关注较多,而对内存时序却关注的很少,其实内存时序也是内存的参数之一,内存时序究竟有多重要呢? 内存时序是描述同步动态随机存取存储器(SDRAM)性能的四个参数:CL、TRCD、TRP和TRAS,单位为时钟周期。它们通常被写为四个用破折号分隔开的数字,如16-18-18-36。宏旺半导体了解到,第四个参数经常被省略,而有时还会加入第五个参数:Command rate(命令速率),通常为2T或1T,也写作2N、1N。 CL对内存性能的影响是最明显的,所以很多产品都会把内存CL值标在产品名上,而后面的三个数字都是最小周期数。CL的英文全称是CAS Latency,意思就是CAS的延迟时间,从中文意思中可以看出来这个数字越小延迟也就越小,一般DDR4的CL值在14-16就是一个不错的数值了,不少低延迟高超频能力的内存条还会将CL值压缩到11,这样的内存条延迟会更低,从而获得同频率下更好的性能。 内存时序参数影响随机存储存储器速度的延迟时间,较低的数字通常意味着更快的性能,所以在同代同频率的情况下,内存时序越小越好,一般情况下大家只需要看内存时序中的第一个数字,也就是CL值,数字越小越好。 宏旺半导体举个例子,内存的时序就是我们这个仓库的物流人员找到货物,并把货物装上车的时间,一般来说

uboot启动原理

半腔热情 提交于 2020-02-24 09:04:26
  1.裸机运行程序时一般情况下程序代码小于16KB将其下载地址设置到BL1的起始地址。BL0会自动加载并执行BL1。 当程序大于16kB时无法直接运行。   例如UBOOT就大于16KB,执行的原理为。将程序分为BL1、BL2两部分。 其中BL1初始化DDR并且指定BL2的起始地址。BL2为真正需要的程序。 BL1部分 start.S #define WTCON 0xE2700000 #define SVC_STACK 0xd0037d80 .global _start // 把_start链接属性改为外部,这样其他文件就可以看见_start了 _start: // 第1步:关看门狗(向WTCON的bit5写入0即可) ldr r0, =WTCON ldr r1, =0x0 str r1, [r0] // 第2步:设置SVC栈 ldr sp, =SVC_STACK // 第3步:开/关icache mrc p15,0,r0,c1,c0,0; // 读出cp15的c1到r0中 //bic r0, r0, #(1<<12) // bit12 置0 关icache orr r0, r0, #(1<<12) // bit12 置1 开icache mcr p15,0,r0,c1,c0,0; // 第4步:初始化ddr bl sdram_asm_init // 第5步:重定位

浅析Xilinx家DDR控制器MIG的使用

微笑、不失礼 提交于 2020-02-20 08:04:52
FPGA的片上存储资源bram简单好用,时序清晰,要不是总容量往往就几十Mb谁愿意用DDR呀······ 害,言归正传,因为设计需要存储1477x1800x3 双精度浮点复数这样的大号矩阵,所以只能放到DDR上去进行读写。之前在网上找了好多资料,但发现都没有一个很完整的教程教你怎么使用DDR控制器IP核MIG(Memory Interface Generator),所以写了这篇文章主要希望能帮初学者快速上手MIG的使用以实现DDR读写。 介绍MIG之前,我觉得有必要先对DDR做一个介绍,DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,实际上还分为DDR SDRAM,DDR2 SDRAM,DDR3 SDRAM,DDR4 SDRAM,主要是数据预取prefetch和工作频率的不同,感兴趣的大家可以自己查),搭眼一看,这玩意本质上不就是数字集成电路里学的DRAM嘛(电容存储,会漏电,时不时需要刷新blablabla······),而double data rate说的是他在clock的上升沿和下降沿都会进行数据读写,设想如果用户逻辑侧的时钟频率和DDR的工作频率之比为1:4的话,用户侧的一个clk, 那么DDR实际上进行了4*2(上下沿)=8次读写操作。 DDR3的内部是如上图的存储阵列组成

搞嵌入式的,为啥要有uboot

旧街凉风 提交于 2020-02-17 19:59:42
为什么要有uboot 1.1、计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统。典型的计算机系统有:PC机(台式机+笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家用电器像电饭锅、空调) (2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西: CPU + 外部存储器(Flash/硬盘) + 内部存储器(DDR SDRAM/SDRAM/SRAM) 1.2、PC机的启动过程 (1)部署:典型的PC机的BIOS程序部署在PC机主板上(随主板出厂时已经预制了),操作系统部署在硬盘上,内存在掉电时无作用,CPU在掉电时不工作。 (2)启动过程:PC上电后先执行BIOS程序(实际上PC的BIOS就是NorFlash),BIOS程序负责初始化DDR内存,负责初始化硬盘,然后从硬盘上将OS镜像读取到DDR中,然后跳转到DDR中去执行OS直到启动(OS启动后BIOS就无用了) 1.3、典型嵌入式linux系统启动过程 (1)典型嵌入式系统的部署:uboot程序部署在Flash(能作为启动设备的Flash)上、OS部署在FLash(嵌入式系统中用Flash代替了硬盘)上、内存在掉电时无作用,CPU在掉电时不工作。 (2)启动过程:嵌入式系统上电后先执行uboot、然后uboot负责初始化DDR

uboot源码分析1-启动第一阶段

穿精又带淫゛_ 提交于 2020-02-16 00:08:10
1、不简单的头文件包含 #include <config.h>:这个文件的内容其实是包含了一个头文件:#include <configs/x210_sd.h>". #include/version.h中包含了include/version_autogenerated.h,这个头文件就是配置过程中自动生成的。里面就一行内容:#define U_BOOT_VERSION "U-Boot 1.3.4" 2、启动代码的16字节头部 3、异常向量表的构建 4、用0xdeadbeef对齐填充 5、分配空间放TEXT_BASE c3e00000 6、分配空间放uboot在DDR中的物理地址 33e00000 7、设置CPU为SVC模式 8、设置 L2、 L1cache和 MMU 9、识别并暂存启动介质,因此执行完这一段代码后r3中存储了0x03,以后备用。 10、设置栈, 并调用 lowlevel_init ;目的:栈是在 SRAM中设置的,因为当前整个代码还在 SRAM中运行,此时 DDR还未被初始化还不能用 10.1lowlevel_init详解 (1)先将LR入栈 (2)检查复位状态,防止DDR再次初始化; 冷上电时 DDR是需要初始化才能用的;而热启动或者低功耗状态下的复位则不需要再次初始化 DDR。 (3) IO状态恢复 (4)关看门狗 (5) SRAM SROM相关 GPIO设置

DDR的前世今生

旧时模样 提交于 2020-02-08 06:21:55
RAM、SRAM、DRAM、SDRAM、DDR SDRAM的演变 ROM和RAM指的都是半导体存储器, ROM是Read Only Memory的缩写,即只读存储器 ,是一种只能读出事先所存数据的固态半导体存储器,其特性是一旦储存资料就无法再将其改变或删除,资料并不会因为电源关闭而消失。 RAM是Random Access Memory的缩写 ,即随机存储器 ,随机是指数据不是线性依次存储,可以以任何顺序访问,而不管前一次访问的是哪一个位置。ROM在系统停止供电的时候仍然可以保持数据,而RAM在掉电之后就会丢失数据。 RAM又分两大类,一种为 SRAM (Static RAM,静态RAM) ,是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,也就是说加电情况下,不需要刷新,数据不会丢失。SRAM是早期读写最快的存储设备,但也有其缺点,即它的集成度较低,相同容量的内存需要很大的体积,功耗也大;同时它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓存,二级缓存。 另一种为 DRAM (Dynamic RAM,动态RAM), DRAM 只能将数据保持很短的时间,为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新的话,存储的信息就会丢失;它的速度也比SRAM慢,不过它还是比任何的ROM都要快

DDR接口参数

故事扮演 提交于 2020-01-24 14:11:49
上图为X8data的单颗DDR3架构图,行(Row)地址线复用14根,列(Column)地址线复用10根,Bank数量为8个,IO Buffer 通过8组数位线(DQ0-DQ7)来完成对外的通信,故此单颗DDR3芯片的容量为2的14次方乘2的10次方乘8乘8,结果为1Gbit,因为1B包含8bit,1GB/8=128MB。 如果我们要做成容量为1GB的内存条则需要8颗这样的DDR3内存芯片,每颗芯片含8根数位线(DQ0-DQ7)则总数宽为64bit,这样正好用了一个Rank。 假果还用128MB的DDR3芯片去做2GB内存条,结果就会有所不同。我们最好选用4根数位线(DQ0-DQ3),数量是16颗,这样也是用了一个Rank。 ECC DDR和普通DDR接口一样。 二、内存颗粒的理解 在内存颗粒的内部,数据是以bit(位)为单位写入一张大的矩阵中,通过指定Row(行),以及Column(列),就可以准确的定位到某一个Cell(单元),这就是物理上寻址的基本原理。至于这个Cell中存储多少个bit,即位宽,需要查看厂商的相关Spec,x8代表每个Cell存储8bit,x16代表每个Cell存储16bit。 而由于工艺上的限制,这个存储阵列不能做的很大,所以都是将内存容量分成几个阵列来制造,那么一个内存颗粒内部就有多个逻辑阵列,称之为BANK,那么这个颗粒的容量即

DDR基本知识

走远了吗. 提交于 2020-01-14 09:08:35
一、对DDR中Bank(逻辑Bank)、Rank(物理Bank)的整理 首先,在DDR的内部,数据是以阵列的形式存储的,通过指定的行和列就可以对目标数据进行读/写。  (1)Bank   DDR中的逻辑Bank就是指DDR中指存储阵列的个数 ,DDR中一般有多个存储阵列。由于制造工艺的原因,存储阵列的规模一般不会做的太大, 并且数据位宽一般是4/8/16。一个时钟周期内只允许DDR对一个逻辑BANK进行操作,而不是对内存芯片内所有逻辑BANK同时操作,因为芯片的位宽就是逻辑BANK的位宽。逻辑BANK的地址线是通用的,只要再有一个逻辑BANK编号加以区别就可以了。  (1)Rank   物理Bank(Rank) 是多个芯片组成的内存条上出现的概念 ,由于处理器的数据位宽一般是32/64bits,而单个芯片的位宽等于其内部单个存储阵列的位宽4/8/16,所以需要多个芯片组合起来才能提供CPU需要的数据。 一个Rank里的芯片组合起来后刚好等于数据总线位宽 ,当内存条中所有芯片提供的位宽超过了数据总线的位宽,发生富余时才会出现多个Rank。CPU一个周期只能访问一个Rank。 二、 DDR型号的识别 以镁光1Gb ddr2为例:1Gb ddr2有三种型号: MT47H256M4 – 32 Meg x 4 x 8 banks MT47H128M8 – 16 Meg x 8 x 8

DDR读写简介及相关

被刻印的时光 ゝ 提交于 2020-01-05 02:53:04
DDR总线的体系结构如下: 其中DQS是源同步时钟,在接收端使用DQS来读出相应的数据DQ,上升沿和下降沿都有效。DDR1总线,DQS是单端信号,而DDR2&3, DQS则是差分信号。DQS和DQ都是三态信号,在PCB走线上双向传输。CK是地址/命令时钟,是单向信号。 DDR总线读写时序如下: 读操作时,DQS信号的边沿在时序上与DQ的信号边沿处对齐;写操作时,DQS信号的边沿在时序上与DQ信号的中心处对齐。所以在做DDR控制器时,要把DQS时钟做90度的相移。上图中,Addr/Cmd Bus意思是地址/命令总线,都是时钟的上升沿有效,其中命令由:/CS(片选),/RAS, /CAS,/WE(写使能)决定,比如:“读”命令为:LHLH,“写”命令为:LHLL等。操作命令很多,主要是NOP(空超作),Active(激活),Write,Read,Precharge (Bank关闭),Auto Refresh或Self Refresh(自动刷新或自刷新)等(细节请参考:Jedec规范JESD79)。 许多计算机使用时钟频率为533MHz的DDR2内存,更先进的DDR2内存正在日益普及,它的时钟频率在400 MHz-800 MHz之间,新的DDR3内存的时钟频率则可以工作在800MHz-16OOMHz之间。DDR3内存芯片还有另外一个长处:更低的能耗,它的运行电压是1.5伏

电脑硬件介绍

回眸只為那壹抹淺笑 提交于 2019-12-28 05:22:48
首先说说主板: 主板,又叫主机板(mainboard)、系统板(systemboard)或母板(motherboard);它分为商用主板和工业主板两种。它安装在机箱内,是微机最基本的也是最重要的部件之一。主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。 主板上主要包括电路板和芯片组(包括南北桥芯片、BIOS芯片、I/O控制芯片等等)以及一些插槽和接口等等。不过现在的主板上的北桥芯片几乎都没了,北桥的功能已经被集中到cpu里面了,具体芯片的功能请自行baidu。 目前主流的主板主要有ATX和mini-ATX(就是平时说的小板),如图 在来说下计算机的“大脑”:cpu 中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。 主板上有一种东西叫晶振,一般有好几个,可以振动来产生频率,其中有一个产生的频率就是外频了,外频是整个电脑的一个基准频率,所有的频率都是在他的基础上进行分频或倍频得到的,外频是指cpu与内存交换数据的频率