自己学驱动12——存储控制器

1.2440的BANK

2440一共提供给外部8个BANK(BANK0~BANK7),每个BANK均为128MB的地址空间,一共1GB地址空间。2440对外引出了27根地址线ADDR0~ADDR26,这27根地址线的访问地址大小为128MB,2440对外还引出了8根片选信号nGCS0~nGCS7,对应于BANK0~BANK7,当访问BANKx的地址空间时,nGCSx引脚输出低电平,27根地址线与8根片选信号(相当于多出3根地址线)共同完成1GB空间的访问操作。

2440作为32位的CPU,可以使用的地址范围理论上为4GB,除去上述用于连接外设的1GB的地址空间外,还有一部分是CPU内部寄存器的地址,剩下的地址空间没有使用。

2.2440为SDRAM提供的信号

BANK0~BANK5的连接方式都是相似的,BANK6连接SDRAM时复杂一点,2440提供了一组用于SDRAM的信号如下:

>> SDRAM时钟有效信号SCKE;

>> SDRAM时钟信号SCLK0/SCLK1;

>> 数据掩码信号DQM0/DQM1/DQM2/DQM3;

>> SDRAM片选信号nSCS0(它与nGCS6是同一引脚的两个功能);

>> SDRAM行地址选通脉冲信号nSRAS;

>> SDRAM列地址选通脉冲信号nSCAS;

>> 写允许信号nWE(这个信号并非专用于SDRAM)。

3.SDRAM内部存储结构

SDRAM内部是一个存储阵列,阵列就如同表格一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这就是SDRAM寻址的基本原理。这个单元格被称为存储单元,这个存储矩阵就是逻辑Bank(以下简称L-Bank),SDRAM一般含有4个L-Bank。

4.SDRAM的访问步骤

(1)CPU发出片选信号nSCS0有效,选中SDRAM芯片。

(2)SDRAM中有4个L-Bank,需要两根地址信号来选中其中一个,假设为ADDR24、ADDR25作为L-Bank的选择信号。

(3)对被选中的芯片进行统一的行/列寻址。

根据SDRAM芯片的列地址线数目设置CPU的相关寄存器之后,CPU就会从32位地址中自动分出L-Bank选择信号、行地址信号以及列地址信号,然后先后发出行地址信号和列地址信号。L-Bank选择信号在发出行地址信号的同时发出,并维持到列地址信号结束。

32位宽度时2440的ADDR0与ADDR1均不使用,2440的ADDR2连接SDRAM的ADDR0,实现4字节对齐访问。

(4)找到存储单元之后,被选中的芯片就要进行统一的数据传输。

5.存储控制器的相关寄存器

(1)位宽和等待控制寄存器BWSCON

(2)BANK控制寄存器BANKCONx(x为0~5)

用来控制BANK0~BANK5外接设备的访问时序。

(3)BANK控制寄存器BANKCONx(x为6~7)

用来控制BANK6~BANK7外接设备的访问时序。

(4)刷新控制寄存器REFRESH

(5)BANKSIZE寄存器

(6)SDRAM模式设置寄存器MRSRBx(x为6~7)

时间: 2024-09-30 06:08:29

自己学驱动12——存储控制器的相关文章

今天学习的裸板驱动之存储控制器心得(初始化SDRAM)

CPU只管操作地址,而有些地址代表的是某些存储设备. 但是操作这些存储设备需要很多东西,比如需要制定bank,行/列地址等.所以就有了存储管理器,用来处理这种CPU操作的地址和存储设备间的转换. (1)存储管理器在得到一个CPU的地址时,根据地址范围和自身的信息,知道这个地址位于那个片选. (2)若该片选连接的是一个SDRAM,还会根据地址范围和自身的信息,知道对应的如SDRAM中的BANK,行/列地址等. 所以,配置存储管理器 (3)根据芯片手册知道这个芯片的存储管理器的片选有8个,说明它可以

LINUX块设备驱动<12/13/14/15>

第 12章 +---------------------------------------------------+ |                 写一个块设备驱动                   | +---------------------------------------------------+ | 作者:赵磊                                         | | email: [email protected]             

u-boot移植(七)---代码修改---存储控制器

一.CPU访问芯片的条件 CPU通过访问存储控制器,来读取外部设备的数据. CPU想访问一个芯片,需要如下条件(配置信息): 地址线 数据线:8位/16位/32位数据宽度 时钟/频率 其他芯片相关的特性:比如SDRAM,有行地址.列地址和bank SDRAM的访问和表格检索的原理一样,先指定一个行(Row),再指定一个列(Columu),就可以准确找到所需要的单元格.这个单元格称为存储单元,这个表格(存储阵列)就是逻辑Bank(Logical Bank,即L-Bank),SDRAM一般含有4个L

s3c2440存储控制器和地址以及启动的理解

1.首先应该先了解Flash ROM的种类 NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来. NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据.通俗的说,只给地址不行,要先命令,再给地址,才能读到NAND的数据,在一个总线完成的. 结论是:ARM无法从NAND直接启动.除非装载完程序,才能使用NAND Flash. Nand Flash的命令.地址.数据都通过I/O口发送,管脚复用,这样做做的好处是,可以明显减少NAND FLASH的管脚数目,将来如果

存储控制器和SDRAM 实验

S3C2440 存储控制器(memory controller)提供了訪问外部设备所需的信号,这是一种通过总线形式来訪问扩展的外设. S3C2440  的存储器控制器有下面的特性: 支持小字节序.大字节序(通过软件选择) 每一个BANK的地址空间为128MB.总共1GB(8 BANKs) 可编程控制的总线位宽(8/16/32 -bit).只是 BANK0 仅仅能选择两种位宽(16/32 -bit) 总共8个BANK. BANK0 ~ BANK5 能够支持外接 ROM,SRAM等,BANK6 ~

1105: 零起点学算法12——求2个日期之间的天数

1105: 零起点学算法12--求2个日期之间的天数 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 4404  Accepted: 1985[Submit][Status][Web Board] Description 水题 Input 输入2个日期,日期按照年月日,年月日之间用符号-隔开(题目包含多组数据) Output 求出这2个日期之间的天数(不包括自身),每组测试数据一行 Sample I

TQ2440存储控制器实验

一,实验原理: 首先使用汇编语言设置好存储控制器,使得外接的SDRAM可用,然后把程序本身从片内RAM(Steppingstone)拷贝到SDRAM处,最后跳到SDRAM中执行. 二,实验目的: 1.掌握SDRAM的初始化方法 2.掌握位置无关指令,相对跳转,绝对跳转 3.掌握代码重定位 三,实验内容: 1.准备知识: 1.1 访问SDRAM的方法: SDRAM的内部是一个存储阵列,阵列就好比一个excel表格,将数据填进表格的单元格中,excel中的每个单元格会有"行"和"

Mini2440存储控制器

以前杂事比较多,没有仔细学习,这学期尽可能利用空闲时间好好学习理解. @************************************************************************* @ 设置SDRAM,将程序复制到SDRAM,然后跳到SDRAM继续执行 @ 2015.11.8 by Huangtao @************************************************************************* @ 总结的

PMC 荣膺ChannelPro读者选择最佳存储控制器金奖

 PMC荣膺ChannelPro读者选择最佳存储控制器金奖 Adaptec RAID控制器脱颖而出夺取桂冠 引领大数据连接.传送以及存储,提供创新半导体及软件解决方案的PMC?公司(纳斯达克代码:PMCS)今日宣布,获得ChannelPro-SMB 2015年度读者选择最佳SAS/SATA RAID控制器金奖. PMC负责渠道和数据中心市场营销总监Toy Winslow谈到:"获得该奖项充分证实了我们的Adaptec产品在渠道市场上展现的卓越性能,兼容性和可扩展性.获得客户和合作伙伴对我们P