SDRAM容量计算



行地址12位,列地址8位,数据16位,片内有四个组。 那么这块芯片的容量大小是多少?怎么计算的?


具体计算如下:

行地址12位,说明行数是2的12次方。     列地址8位,说明列数是2的8次方。数据个数就有2的20次方,就是1MB。即Bank大小为1MB。

在1MB中,每个数据16位(bit),每字节为8bit。所以就是2字节(B)。

每个Bank字节的容量为:2字节(B)*1MB=2MB。
片内有4组,即4个Bank。所以总容量4*2MB=8MB


例如一个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 。


对应其pdf手册里的“4Banks x 4M x 16Bit”。

 

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

也就是说每个bank里有213 个行和 2个列,并非只有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的单元的数据。


其实很简单......

2(地址次方)* 数据线宽度 = (x)bit.

1.举熟悉的51单片机为例吧。在8051单片机中,P0分时作为低8位地址线和8位数据线,P2作为高八位地址线,也就是说可以形成16条地址线和8条数据线。那么它的RAM到底有多大呢?

容量=2(16次方)*8 bit=2(16次方) byte (即64K byte)

2.给个SDRAM你试试,怎么算其大小?

 

上图给的是ARM9核心板中SDRAM的原理图,用的是K4S561632芯片,有4个逻辑bank(L-Bank),由原理图中的BA0,BA1决定。行地址数为13,列地址数为9.行列也是分时复用的。那么它的容量该怎么算?算出它的每个L-bank的大小即可,总容量大小为4个L-bank之和。那么一个L-bank容量多大呢?
地址线:13+9=22
2(22次方) * 16bit = 2(22次方) * 2 byte = 8M byte. 注:熟悉,2(10)=1k,2(20)=1M.
4 * 8 =32  即每片K4S561632的大小为32M,则2片一起64M。
 
3.给个norflash你,小试牛刀一下吧。
 
2(22次方) * 16bit = 8M ?首先看看芯片数据手册,就会知道,真正有效的地址线是A0~A19,
也就是说应该是 2(20次方) * 16bit = 2M



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值