起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > exynos4412内存是什么

exynos4412内存是什么

时间:2018-08-12 21:23:58来源:职业教育网 作者:IT培训网 已有: 名学员访问该课程

  快捷搜索:exynos4412内存是什么

前言:SMC:静态内存区,Static Read Only Memory Controller ,通常用于映射外部总线上设备,如网卡等,该区域被分为4个bank,每个16M(对应硬件手册xm0开头的)

exynos4412内存是什么,如何分析exynos4412内存?

学生在进行开发时,经常对内存这块有疑问,下面将使用exynos4412芯片的达内开发板(fs4412)为例作为讲解。

使用到的手册如下:

FS4412_CoreBoard_V2.pdf

FS4412-DevBoard-V5.pdf

SEC_Exynos4412_Users Manual_Ver.1.00.00.pdf

简述

exynos4412存储分下面几块:

iROM:启动镜像区,存放三星预置的程序,也叫bl0

iRAM :内部内存区,加载通过OM选择后的启动程序,通常加载bl1、bl2

SMC:静态内存区,Static Read Only Memory Controller ,通常用于映射外部总线上设备,如网卡等,该区域被分为4个bank,每个16M(对应硬件手册xm0开头的)

SFR:特殊功能寄存器区,通常用于映射SOC内部设备,如GPIO等

DMC:动态内存区,就是我们通常意义上的内存。

ps:动态内存(由于动态内存本身不供电,需要不断供电刷新,保存数据,所以叫动态内存)(对应硬件手册xm1和xm2开头的)

硬件原理(SMC)

Exynos4412中有1个独立的SMC,分为4个bank

exynos4412内存是什么_www.epx365.cn

没有行地址和列地址,整个芯片可用内存大小:2^8bit=256/16=16Byte

外部设备片选时,只能选0或者1.

硬件原理(DMC)

Exynos4412中有两个独立的DRAM控制器,分别叫DMC0和DMC1,可以接2组不同的DDR内存。DMC0和DMC1分别支持最大1.5GB的DRAM,它们都支持DDR2/DDR3和LPDDR2等,512 Mb, 1 Gb, 2 Gb, 4 Gb and 8 Gbit的内存设备,支持16/32bit的位宽。DRAM0 对应的地址是0x4000_0000~0xAFFF_FFF共1.5GB,DRAM1 对应的地址是0xA000_000~0x0000_0000共1.5GB。

exynos4412内存是什么_www.epx365.cn

4412的1GB的DRAM是由4片大小为256M*16的DDR3芯片组合而成(查看芯片型号可以得到)

芯片型号:K4B4G1646B-HYXX

第一位: K表示内存

第二位:4表示falsh类型 DRAM

第三位:B表示DDR3

第4~5位. Density(注:实际单位应该是bit,而不是Byte),我们的是4Gbit=4G/16(数据位)=256MByte

第6~7位. organization:数据线引脚个数,我们的是16

分析完成,开发板上共有4片这样的内存芯片,总容量就是256M*4=1G

这四片DDR 芯片被分成了两两一组,组成32位数据,四片都是挂接到DMC0处

总图如下:

exynos4412内存是什么_www.epx365.cn

分解图如下(只列了一半):

从上两图可以看出,这四片DDR 芯片被分成了两两一组,组成32位数据,四片都是挂接到DMC0处,如下:

· 左边一片16位,右边16位,组成32位数据

exynos4412内存是什么_www.epx365.cn

· 全部芯片片选挂到CS0:

exynos4412内存是什么_www.epx365.cn

· bank线数:

3路线(BA0-BA2),有2^3组合,也就是一个芯片上,bank有8个

exynos4412内存是什么_www.epx365.cn

· 地址线

地址线数:15(A0-A14)

exynos4412内存是什么_www.epx365.cn

ps:一个芯片内存最大支持:2^(bank线数+地址线)=2^33=8Gbit/16=512MByte

· 行列地址线

nRAS,nCAS:复用地址线行和列选择,同一时刻只能有一种地址线使用(不是行就是列),我们的板子上芯片有256M(2^28),28-3(bank)-15(行地址)=10(列地址)

exynos4412内存是什么_www.epx365.cn

· 寻址流程

这个操作顺序是,先片选,CS拉低,然后,当RAS拉低时,表示传过的是行地址,是A0-A14,15位;当CAS拉低时,表示传过来的是列地址,是A0-A9,列地址多的几位是预留的用来扩展内存,一个芯片内存最多可以扩展到512M。

内存划分多个bank原因

由于DDR是不自备充电电路的,所以,每隔一段时间,内存控制器就会刷新一次电路,也就是要充一次电,如果只有一个Bank,那么结果就是在某一时刻,要么都充电,要么都不充电。

exynos4412内存是什么_www.epx365.cn

像上面这样分成了8个Bank,当我对000充电的时候,我还可以在010或是剩下的别的Bank中读取数据,这样就减小了等待的时间,不用说当电路刷新时,不能读取数据了。

exynos板子上,每个bank大小= 256M/8=32M(1个芯片上有2^3个bank)

内存计算方法

SDRAM容量计算

计算可寻址单元的数量(32位)

地址线数(管脚数):11(A0-A10)

bank线数:2(BA0-BA1) 可以组合出2^2个 bank

最大行线数=211(例如地址线的编号,11个管脚线,组合有211种)

最大列线数=211(例如地址线的编号,11个管脚线,组合有211种)

一个bank中总单元数=211x 211

芯片中总单元数=(bank个数)×(一个bank中总单元数)

= 22 x 211 x 211

= 224

备注:

因为行线与列线上传输的数据是经过编码(组合方式)的,而不是直接的行号和列号,

也就是说每个bank里有213 个行和 29 个列,并非只有13行和9列。

所以要寻址的单元在第(2行线数据 )行,第( 2列线数据)列。

例如bank0,行线数据是0 0000 0010 0000,列线数据是0 0000 1000,

意思是要获取行32,列8的单元的数据,而不是行5,列3的数据。

如果行线数据是 0 0010 1101 0110,列线数据是0 0011 1010,意思是获取行726,列58的单元的数据。

例如一个32MB的SDRAM芯片中有4个Logic-bank(逻辑bank),位宽16bit(即每个单元是16bits),地址线13条,最大行线数13,最大列线数9。计算得:

一个bank的单元数= 213 x 29= 4194304(即4M)。

芯片总单元数=4Banks × 4M units = 16M units 。

芯片总位数=16M units × 16bits/per_unit = 256M bits 。

芯片总字节数=256M bits/8 = 32M Bytes 。

内存初始化流程

在三星提供的数据手册《SEC_Exynos4412_Users Manual_Ver.1.00.00》的第1046页提供给了一段关于LPDDR2-S4的初始化步骤,LPDDR2表示低功耗DDR2,DDR3的初始化过程应和这个一样,我们就按这个过程来初始化DDR3

exynos4412内存是什么_www.epx365.cn

初始化流程,如手册中 18.3.1 LPDDR2-S4 描述:

1、DMC功能必须设置,并且要保持CKE为低电平,以便可以提供稳定的电源和时钟给DDR

2、根据时钟频率设置PhyControl0.ctrl_start_point 和PhyControl0.ctrl_inc bit-fields,并且设置PhyControl0.ctrl_dll_on bit-field 为 "1" 已启动PHY DLL。

3、DQS 清除,根据时钟频率、板子延时和芯片的tDQSCK参数设置PhyControl1.ctrl_shiftc 和PhyControl1.ctrl_offsetcbit-fields。

4、设置 PhyControl0.ctrl_start bit-field 为"1"。

5、设置ConControl,此时,不能使能自动刷新计数器(auto-refresh counter )。

6. 设置MemControl,此时,所有的power down模式应关闭。

7、设置MemConfig0 寄存器,当外面有两片存储芯片时,设置MemConfig1寄存器。

8、设置 PrechConfig和 PwrdnConfig寄存器。

9、根据DDR3的 AC参数设置TimingAref, TimingRow, TimingData, 和 TimingPower寄存器。

10、当总线主控者需要QoS时序参数时,设置QosControl0 到15寄存器和QosConfig0 到 15寄存器。

11、等待 PhyStatus0.ctrl_locked bit-fields 变成 "1",以确定 PHY DLL 是否锁定。PHY DLL 可以补偿压力、体积?和温度等环境的变化,因为在芯片工作期间,我们不能关闭了PHY DLL的电源,只有当他在低的时钟频率时才可以切换到Power-off 模式,当我们用power-off 模式,参考PhyStatus0.ctrl_lock_value[9:2]的延时参数来设置PhyControl0.ctrl_forcebit-field,清楚PhyControl0.ctrl_dll_on bit-field来关闭 PHY DLL。

12、设置PhyControl1.fp_resync bit-field 为 "1" 来更新 DLL的设置。

13、确保在电源上电后至少保持Clock Enable (CKE)在低电平100ns。

14、用DirectCmd 寄存器来执行一条NOP指令且保持CKE 为高电平。

15、至少等待200us。

16、发出MRS指令来重新设置存储芯片的操作参数。

17、至少等待1us。

18、用MRR指令来查询MRStatus的寄存器的DAI位,用这们来确定自动初始化过程是否完成。

19、如果外部有别的存储芯片,重复执行14到19步来设置芯片1。

20、设置ConControl来启动auto-refresh counter.

21、当我们要进行power-down模式,设置MemControl寄存器。

按照上边的步骤来设置就可以完成DDR的初始化。

文章出自:http://qh.itpxw.cn/peixun/software/201842387.html

文章标题:exynos4412内存是什么



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:IT培训网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容