ddr

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与内存交换数据的频率

uboot学习之五-----uboot如何启动Linux内核

风流意气都作罢 提交于 2019-12-24 12:58:13
uboot和内核到底是什么? uboot实质就是一个复杂的裸机程序;uboot可以被配置也可以做移植; 操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别;区别就是我们操作系统运行起来后可以分为应用层和内核层,分层后,两层的权限不同,内存访问和设备操作的管理上更加精细(内核可以随便方位各种硬件,而应用程序只能被限制的访问硬件和内存地址) 直观来看:uboot的镜像是u-boot.bin,Linux系统的镜像是zImage,这两个东西其实都是两个裸机程序镜像。从系统启动的角度来讲的。内核和uboot就是裸机程序; 部署在SD卡中特定分区内 (1)一个完整的软件+硬件的嵌入式系统,静止时(未上电)bootloader、kernel、rootfs等必须的软件都以镜像的形式存储在启动介质中(x210中是inand/SD卡);运行时都是在DDR内存中运行的,与存储介质无关。上面两个状态都是稳定状态的,第三个状态是动态过程,即从静止态到运行态的过程,也就是启动过程。也就是这整个过程。 (2)动态启动过程就是从SD卡逐步搬移到DDR内存,并且运行启动代码进行相关硬件初始化和软件架构的建立,最终达到运行时稳定状态。 (3)静止时u-boot.bin zImage rootfs都在SD卡中,他们不可能随意存在SD卡的任意位置,因此我们需要对SD卡进行一个分区

DDR中的一些知识点说明(ODT,ZQ校准,OCT,TDQS)

社会主义新天地 提交于 2019-12-20 15:29:03
ODT ( On-DieTermination ,片内终结) ODT 也是 DDR2 相对于 DDR1 的关键技术突破,所谓的终结(端接),就是让信号被电路的终端吸 收掉,而不会在电路上形成反射, 造成对后面信号的影响。 顾名思义, ODT 就是将端接电阻移植 到了芯片内部,主板上不再有端接电路。在进入DDR 时代, DDR 内存对工作环境提出更高的要求,如 果先前发出的信号不能被电路终端完全吸收掉而在电路上形成反射现象, 就会对后面信号的影响造成 运算出错。因此目前支持DDR主板都是通过采用终结电阻来解决这个问题。 由于每根数据线至少需要 一个终结电阻, 这意味着每块DDR 主板需要大量的终结电阻, 这也无形中增加了主板的生产成本 , 而且由于不同的内存模组对终结电阻的要求不可能完全一样,也造成了所谓的“内存兼容性问题”。 而在DDR-II 中加入了 ODT功能,当在DRAM 模组工作时把终结电阻器关掉, 而对于不工作的 DRAM 模 组则进行终结操作,起到减少信号反射的作用,如下图二所示。ODT 的功能与禁止由主控芯片控制, 在开机进行 EMRS 时进行设置, ODT 所终结的信号包括 DQS 、DQS# 、DQ 、DM 等。这样可以产生 更干净的信号品质,从而产生更高的内存时钟频率速度。而将终结电阻设计在内存芯片之上还可以简 化主板的设计,降低了主板的成本,

[攻克存储] 掌握SDRAM/DDR的结构与寻址

戏子无情 提交于 2019-12-19 12:07:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本系列前面两篇文章《[攻克存储] SRAM地址线的连接》和 《[攻克存储] 存储芯片的写屏蔽及扩展》已经介绍了SRAM芯片的地址线连接方法以及存储芯片的写屏蔽扩展,这两篇文章基本上是从SRAM的角度在进行讲解和描述,其中许多原理在SDRAM/DDR芯片中也同样适用,不过,SDRAM/DDR 存储芯片的结构和寻址方式相对于ROM、SRAM、DRAM而言,还是有很大的变化和不同的,本文就着重介绍SDRAM/DDR的相关知识点和应用注意事项。 在存储结构上,SDRAM/DDR采取了多Bank方式,每一个逻辑Bank即为一个存储阵列,一般一个SDRAM芯片有2~8个Bank。我们可以把Bank想象为一个表格,如下: 图中的Bank是一个14行17列的逻辑存储结构,假设该SDRAM芯片有4个Bank,则其存储空间为:4 x 2^14 x 2^17 bit = 2^33 bit = 1GB 在寻址方式上,首先,多了几个Bank选择引脚,例如对于4个Bank的SDRAM,则有2个引脚(BA0~BA1)进行Bank选择。当具体Bank选定后,再给出行列地址从而定位到具体的存储位置。而行列地址值由相应的地址线引脚分时复用得到。 下面研究一个具体的SDRAM电路图,如下图所示

u-boot 之配置分析 (2)

醉酒当歌 提交于 2019-12-19 07:54:09
Makefile简要分析 所有这些目录的编译连接都是由顶层目录的makefile来确定的。 1. 在makefile中有: unconfig: @rm -f $(obj)include/config.h $(obj)include/config.mk \ $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp %是个通配符,make xxx_config都是这个目标.目标的依赖是unconfig, unconfig 的命令是删除一些文件,而这些文正是从make xxx_config过程中产生的.unconfig就是清理配置的. MKCONFIG := $(SRCTREE)/mkconfig 100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0           等同为 ./mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0 $@就是指目标 $(@:_config=)是变量的替换引用 格式为“$(VAR:A=B)”(或者“${VAR:A=B}”),意思是:替换变量“VAR”中所有“A”字符结尾的字为“B”结尾的字。 2.

01_uboot的介绍、作用。

时光毁灭记忆、已成空白 提交于 2019-12-15 14:27:28
一、uboot的历史 1.uboot从哪里来的 u-boot全称 Universal Boot Loader,是遵循GPL条款的开放源码项目,U-Boot的作用是系统引导。 这个项目起源于 Magnus Damm.在 8xx PowerPC 架构下写的引导加载程序:8xxROM。1999 年十月,Wolfgang Denk 将项目移转到 SourceForge.net,但 SourceForge.net 不允许数字开头的项目名称,所以改名为PPCBoot。 uboot是Wolfgang Denk (德国人)在sourceforge.net的发起的开源项目,然后由整个网络感兴趣的人共同维护发展而来的BootLoader。 2.uboot的发展历程 自己使用的小开源项目->被更多人认可->被SOC厂商默认支持 经过多年的发展,uboot已经成为业内bootloader标准,大部分的嵌入式设备默认支持uboot。 2.uboot的版本号 早期的版本号类似:uboot1.3.4 现在的版本号类似:uboot-2010.06 uboot的核心部分没有怎么变化,越新的版本支持的开发板越多。 二、为什么要有uboot 1.计算机系统的组成部件 典型的计算机系统: 1)PC:台式机和笔记本… 2)嵌入式设备:手机、平板、游戏机… 3)单片机:家用电器、空调… 计算机系统的运行时主要核心部件:

存储器总结

为君一笑 提交于 2019-12-14 03:30:10
关于SRAM、DRAM、SDRAM等这样的词条,比较容易混淆,通过查找资料做个总结。 首先看下面这张图: RAM(random access memory)随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 一、根据工作原理的不同,随机存储器又分为DRAM(Dynamic Random Access Memory)和SRAM(Static Random Access Memory)。 DRAM表示动态随机存取存储器。这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。数据 存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必须有规律地进行刷新。 SRAM 表示静态态随机存取存储器。 因此只要供电它就会保持一个值。一般而言,SRAM 比DRAM要快,这是因为SRAM没有刷新周期。每个SRAM存储单元由6个晶体管组成,而DRAM存储单元由一个晶体管和一个电容器组成。相比而言,DRAM比SRAM每个存储单元的成本要高。照此推理,可以断定在给定的固 定区域内DRAM的密度比SRAM 的密度要大。 SRAM常常用于高速缓冲存储器,因为它有更高的速率

VxWorks 内存管理 个人总结DDR SDRAM和Flash

跟風遠走 提交于 2019-12-06 12:37:53
在VxWorks内核编程手册中: 在不支持进程的情况下,vxworks的内存映射是这样的:(SDRAM) 在支持进程的情况下,内存映射另外一个样子: 对应本ppc2020板的内存分配如下:以此为例,可参考来做其他项目。参考模型为支持进程方式。 PowerPC处理器是主控模块的核心部件,以处理器最小系统为中心,扩展外围接口,完成整个系统所需要的功能。Flash(ROM)接口、SDRAM地址空间分配如下: 表2.2-1存储器地址空间映射表 空间 地址 大小 占用片选信号 SDRAM 0x0000_0000--0x3FFF_FFFF 1GB SDCS0# FLASH 0xF000_0000--0xFFFF_FFFF 256MB RCS0# FLASH内存空间说明:0xF000_0000--0xFFFF_FFFF 0xF000_0000--0xF1FF_FFFF Tffs文件系统预留(32M) 0xF200_0000--0xFFEF_FFFF 用户保留存储空间(223M) 0xFFF0_0000-0xFFFF_FFFF Bootrom存储位置(1M) SDRAM存储空间说明:0x0000_0000--0x3FFF_FFFF 0x0000 0000 – 0x0010 0000 VxWorks低端内存区(系统占用) 0x0010 0000 – FREE_RAM_ADRS (end)