第1节 介绍
推荐给好友
打印
加入收藏
更新于2008-05-22 17:33:08

3.1.1软件直接内存存储支持(SDMA):

  • 双沿数据传输模式(DDR)和DDR2内存支持
  • 单沿数据传输模式(SDR)的SDRAM内存支持
  • DIMM支持(寄存,无缓冲)
  • 纠错码(ECC)支持
  • 端口数量参数化(1到8)
  • 到内存数据位数参数化(8, 16, 32, 64)
  • 数据分支FIFO配置参数化
  • 性能监控(PM)支持
  • 基于PHY的对内存接口产生器(MIG)有可选性的静态PHY接口
  • 用户配置的中断仲裁机制
  • 接口用户化:
    • NPI接口
    • Xilinx高速缓存连接(XCL)
    • 局域连接(用SDMA)
    • 带有Xilinx简化的处理器局域总线(PLB v4.6)

3.1.2 MPMC 的内部结构

如图1,MPMC最多有8个端口,这些端口是相互独立的。也就是说,随时可以通过任意一个端口来访问内存。如果有两个端口同时访问内存,MPMC的仲裁器会按一定的规则来仲裁并决定其先后。而且MPMC的每个端口均带有缓存,所以在往一个口写入数据的时候,数据是先写入缓存,等到这个端口取得内存写入权后再从缓存写入内存。数据写入缓存再写入内存的过程对用户是不可见的。所以对于用户自己的逻辑来说,只要把数据写入MPMC的端口就可以了。但是这里要注意判断一下缓存是否已满,否者会出现数据丢失。使用缓存就像CPU使用CACHE一样,可以大大提高MPMC的吞吐效率。但是和CACHE一样,会带来数据不同步的问题。下面会详细讨论这个问题。

同时在多端口进行数据读写的时候要注意数据同步的问题。 由于MPMC 是把数据先写入缓存再写入内存的,而读出数据是直接从内存读出,写入的数据可能还在缓存中并没有真正的写入内存,所以读出的数据可能是上次写入的数据。 对于同一个端口进行读写操作,可以在读之前看一下写缓存是否空。对于读写是不同口的情况,可以在设定各个口的优先级上把写端口的优先级设置的比读端口高。请注意,使用这两个方法会降低MPMC的效率,所以只有确定读写存在同步问题的时候才采用。

图3.1.1 MPMC内部结构图

3.1.3 MPMC 接口

MPMC一共提供了4种接口:PLB,XCL,SDMA,NPI。PLB接口主要用作处理器通过PLB总线访问内存。XCL主要是用作处理器的CACHE从内存读取数据时使用。SDMA 是外部数据要用DMA方式写入内存的时候使用,其支持SGDMA。NPI接口是让用户在自己的设计中利用MPMC特性的接口,下面就将详细讲述NPI接口。

NPI接口有以下特性:

  • 提供一个简单的内存接口可以适应不同的协议
  • 提供地址线,数据线和控制信号来进行内存操作。
  • 允许同时通过FIFO进行数据的读写
  • 可以配置成32位或64位的数据宽度以适应不同的系统的需求。
  • 当使用32位NPI和BRAM FIFOs时,支持下列传输尺寸:字节,半字,字和4个字的缓存线,8个字的缓存线,16个字的bursts,32个字的bursts和64个字的bursts。
  • 当使用64位NPI时,支持下列传输尺寸:字节,半字,字,双字,4字缓存线,8字缓存线,16字bursts,32字bursts和64字bursts。 

 

<<上一节    下一节>>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.