目录
ROM与RAM
RAM: :随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。
比如:int a=10;我们需要很方便的对这个变量进行读写操作,方法就是直接“a”进行读写操作,不需要在乎具体的读写过程。
ROM: :只读存储器,也可以称作Flash。掉电不丢失,但是读写较为复杂
RAM 速度快,可以直接和 CPU 进行通信,但是掉电以后数据会丢失,容量不容易做大(和同价格的 Flash 相比)。ROM(目前来说,更适合叫做 Flash)速度虽然慢,但是容量大、适合存储数据。
对于RAM 而言需要可以随机的读取任意一个地址空间内的数据,因此采用了地址线和数据线分离的方式。
SRAM: 的全称叫做 Static Random-Access Memory,也就是静态随机存储器,这里的“静态”说的就是只要 SRAM 上电,那么 SRAM 里面的数据就会一直保存着,直到 SRAM 掉电。 SRAM 最大的缺点就是价格高、容量小。
位宽的概念:访问的数据大小,比如一颗SRAM芯片,16位宽(数据位为 16 位)、1MB 大小。涉及的地址线,数据线,控制线:
地址线:假设有19根地址线,A0~A18,可访问的大小2^19=512个访问地址,因为数据是16位的,所以每次访问两个字节,则总共访问大小512*2=1MB。位宽的话一般有 8 位/16 位/32 位,根据实际需求选择即可,一般都是根据处理器的 SRAM 控制器位宽来选择 SRAM 位宽。
数据线:数据线根据位宽的不同,数据线要求不同,有8位,16位或者32位。
控制线:包括片选信号,输出始能信号,写始能信号等
SDRAM 全称是 Synchronous Dynamic Random Access Memory,翻译过来就是同步动态随机存储器,“同步”的意思是 SDRAM 工作需要时钟线,“动态”的意思是 SDRAM 中的数据需要不断的刷新来保证数据不会丢失, “随机”的意思就是可以读写任意地址的数据。与 SRAM 相比,SDRAM 集成度高、功耗低、成本低、适合做大容量存储,但是需要定时刷新来保证数据不会丢失。
不同位宽设备的连接
资料来源:韦东山嵌入式linux
以2440为例,2440的存储器控制地址:
共8个存储器banks,bank主要是用作片选,如:外部存储器地址在0x00000000到0x08000000间,则bank NGCS0拉低,选中片选。每个bank是128M,则可操作的地址大小是128*1024*1024=2^27(可以通过地址线操控的外设大小),那么就有27根地址线