存储控制器与CPU及其它外设的关系

  我们看到cpu上集成了一个存储管理器,外围的存储设备都接在这个存储管理器上。cpu负责发出命令,其它的一切工作都交给了存储管理器。那么存储管理器是如何来管理这些外设的呢?
  首先地址空间被分为8个bank(bank0-bank7),每个bank对应128m空间。每个bank都对应一个选通位(nGCS0-nGCS7),选通位为低电平是表示该bank选通。这样的话,虽然地址线只有27条,但是总的地址空间可以达到了1G。s3c2440的地址空间组织如下图所示:

  

  我们看到地址空间是0-0x40000000,果然是1G。那么s3c2440的cpu是32位的,他可以使用的地址理论上可以达到4G,除了用于连接外设的1G地址空间之外,还有一部分是cpu内部寄存器的地址,其余的地址没有用。其中cpu的内部寄存器的地址都在:0x48000000-0x5fffffff之间。

  下面我们比较关心的一个问题就是如果我们想要访问一个外设的话,我们应该发出什么地址?其实很简单,首先由nGCSn来确定基地址,然后用地址线表示的地址加上这个基地址就是我们需要的外设的访问地址了。 我们以DM9000为例来说明一下: DM9000用到的片选信号是nGCS4,地址信号只有一个那就是LADDR2,nGCS4对应的基地址是:0x20000000,LADDR2为0代表可以写入的地址,为1代表可以读出数据的地址。那么我们要将一个数据写入DM9000的话,就需要向地址:0x20000000写入数据,如果要从DM90000读出数据的话,就需要从地址:0x20000004读出数据。也就是说cpu访问DM9000的地址只有两个,读数据的话就访问:0x20000000,写数据的话就访问:0x20000004 我们再以SDRAM为例来分析一下: 我们只分析一片SDRAM,并不去管那个扩展了。我们的SDRAM是挂接在bank6上面的,所以基地址是:0x30000000。接在SDRAM上的地址线有15条,分别是:LADDR2-LADDR14,以及:LADDR24-LADDR25。cpu访问SDRAM的地址为:基地址0x30000000+15位地址线表示的地址,其地址范围是:0x30000000-0x33ffffff,共64M空间。 为什么会这样呢?这其实是一个比较复杂的过程,我们来分析一下: 首先SDRAM的地址可以分为3部分:L_BANK、行地址、列地址,如下图所示:

  LADDR24-LADDR25对应于4个L-BANK
  LADDR2-LADDR14对应于行地址和列地址,根据控制位来决定是行地址还是列地址,其中行地址13位,对应LADDR2-LADDR14,列地址9位,对应LADDR2-LADDR10,所以地址一共26位,即64M空间。
  那么为什么要空出LADDR0-LADDR1呢?因为SDRAM是32的,即一个地址对应着4个字节,而cpu每发出一个地址对应1个字节,所以cpu发出4个地址才能对应SDRAM的一个地址。
  我们jz2440上其它一些外部存储设备的地址空间我们就不一一分析了,下面贴出来:

JZ2440开发笔记(6)——存储控制器的更多相关文章

  1. JZ2440开发笔记(9)——位置无关代码设计【转】

    b MAIN 和 ldr pc,=MAIN 的区别(谈到代码位置无关性) 看bootloader的时候经常看到这两种写法,不太明白区别,网上查了查.其实看了之后还是一头雾水? 其中,2和3 似乎是一个 ...

  2. JZ2440开发笔记(8)——FCLK、HCLK和PCLK

    S3C2440中有三种时钟,分别是FCLK,HCLK和PCLK.这三种时钟的功能各不相同,其中FCLK主要是为ARM920T的内核提供工作频率,如图: HCLK主要是为S3C2440 AHB总线(Ad ...

  3. JZ2440开发笔记(7)——2440启动方式

    JZ2440的启动方式有两种,一种是从NOR FLASH中启动,还有一种就是从NAND FLASH中启动. 如果从NOR FLASH启动,CPU会访问NOR FLASH的0地址,而0地址位于BANK0 ...

  4. JZ2440开发笔记(5)——通过按键点亮LED

    在JZ2440中,点亮LED就是给LED的控制位设置为输出,数据位设置为低电平,而通过按键点亮LED,就需要将按键对应的控制位设置为输出. 下面是JZ2440的3个LED电路图: 下面是JZ2440的 ...

  5. JZ2440开发笔记(2)——minicom的安装和配置使用【转】

    一.安装配置minicom 1.安装minicom lingd@ubuntu:~$ sudo apt-get install minicom 2.配置minicom lingd@ubuntu:~$ s ...

  6. Android 开发笔记___存储方式__共享参数__sharedprefences

    Android 的数据存储方式有四种,这次是[共享参数__sharedprefences] 听起来挺别扭的,平时看到的app里面,当用户删除了一些软件以后下次安装,发现原来的设置还在,这种情况就是把一 ...

  7. LeapMotion控制器 java语言开发笔记--(连接控制器)

    (1)为了连接LeapMotion控制器,创建controller对象,这个对象自动创建与控制器的服务或者后台程序连接,然后捕获数据提供给你的应用程序.可以使用该对象来获取连接信息. (2)获取Fra ...

  8. LeapMotion控制器 java语言开发笔记--(LeapMotion控制器简介)

    (1)LeapMotion系统识别和追踪手,手指,以及根手指类似的工具,这个设备运行在一个极小的范围,这个范围拥有个高精度,高跟踪频率可以记录离散的点,手势,和动作. (2)LeapMotion控制器 ...

  9. JZ2440开发笔记(4)——设置静态IP

    1. 配置静态ip地址 $sudo vim /etc/network/interfaces 原有内容只有如下两行: auto lo iface lo inet loopback 向末尾追加以下内容: ...

随机推荐

  1. Cassandra1.2文档学习(5)—— Snitch

    参考资料:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/a ...

  2. eclipse中配置maven的web项目

    提高效率,一般都会使用IED如eclipse来帮助开发.eclipse中单独建立一个web项目或者是maven项目是可以通过插件很容易完成的,但是如果要结合2者,就需要先建立一个,然后再转换或使原型. ...

  3. Delphi中的GetEnumName和GetEnumValue的使用方法

    利用TypInfo单元的GetEnumName和GetEnumValue可以遍历任意枚举类型,并获取其名称和值.下面是示例Demo. uses TypInfo; ... procedure TForm ...

  4. asp.net mvc 事务处理:Transactions

    1.在控制器里引用using System.Transactions; 2.在你需要事务回滚的地方外面套一层using (TransactionScope sc = new TransactionSc ...

  5. SIAlertView

    SIAlertView是AlertView的替代产品 的效果比较多 . 使用实例: SIAlertView *alertView = [[SIAlertView alloc] initWithTitl ...

  6. DB天气app冲刺第三天

    昨天很郁闷而且烦躁的的过了一天 什么也没弄.今天其实也没有怎么做..进度非常慢.. 因为个人的问题 所以这两天的效率非常慢. 但今天还是做了一些东西.把listview做出来了.做出了一个按钮的效果. ...

  7. BigDecimal除法

    public class TestDemo { public static void main(String[] args) { BigDecimal dataValue = new BigDecim ...

  8. jna 使用实例,

    有与项目组需要用到C++的一个模块, 需要将一个2维数组传到dll 里面 ,返回一个字符串, 恶心了1天终于完成了, 记录一下,同时也希望能给你带来帮助. java 代码如下, package tes ...

  9. java.io.IOException: Cannot run program "bash": error=12, Cannot allocate memory

    java.io.IOException: Cannot run program , Cannot allocate memory 云服务器运行nutch报出的异常: 解决方案: http://daim ...

  10. C#读取Excel五种方式的体会

    原地址: http://blog.csdn.net/dapengbusi/article/details/38117817 http://blog.csdn.net/dapengbusi/articl ...