行地址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 个行和 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的单元的数据。
其实很简单......
2(地址次方)* 数据线宽度 = (x)bit.
1.举熟悉的51单片机为例吧。在8051单片机中,P0分时作为低8位地址线和8位数据线,P2作为高八位地址线,也就是说可以形成16条地址线和8条数据线。那么它的RAM到底有多大呢?
容量=2(16次方)*8 bit=2(16次方) byte (即64K byte)
2.给个SDRAM你试试,怎么算其大小?
