TI中文支持网
TI专业的中文技术问题搜集分享网站

C6678 DDR3 扩展问题

一、理解:

1、C6678 存在32位逻辑地址和物理地址时间的动态映射机制,所以理论上可以将4G空间,扩展到64G空间;

2、但是,由于核只对8000 0000 到FFFF FFFF地址的2G空间采取 DDR3的总线接口,2G空间重映射16次,所DDR3理论上可以扩展到32G;

3、但是 ,C6678的 DDR3 Memory Controller,只实现了  33-bit address for 8 GB of address space ,所以上限是8G;

二、疑问:

1、sprugv8e-DDR3 UG.pdf 文件中,

       P14,33-bit address for 8 GB of address space

       P19,表格Table2-3中,可以看出,列地址有11位,行地址16位,块地址3位,片选1位,数据总线是8字节(相当于3位地址),总计是34位地址;

      P23, 表格Table2-5中,Logical Address 最高位到32,即地址线33根;

      P23, 表格Table2-6中,例化的时候,Logical Address 最高位到33,即地址线34根;(没有算错)

      鉴于 8G空间,这个数据应该不会错,

            是否可以这么理解,P23, 表格Table2-5中,Logical Address 最高位只到32是对的,超过部分忽略。

            表格Table2-6中,计算都没错,只是,地址线bit 33 应该忽略。

   

    这从 P14,8GB address space available over one or two chip selects ,这句话中 似乎也能够得到印证:

     如果 一个片选能够达到8G的话,那么2个片选,应该到达16G。

     合理的解释,就是 2个片选的时候,行地址(Row)16位变为15位。

2、 暂按照 最大8G DDR3,继续探讨

      DDR3的逻辑空间(MPAX的输入)是0x8000 0000 ~ 0xFFFF FFFF,2G;

      扩展到8G空间物理空间(MPAX的输出)是1000 : 0x00000000 ~ 1001: 0xFFFF FFFF,(为了便于标书,:前是二进制,之后是十六进制)

      MPAX的输出,应该送入  DDR3 Memory Controller,(sprugv8e)

      DDR3 Memory Controller,接受33位地址,是否应该就是 32位地址,加上 二进制部分中红色的那一位地址?

      如果是这样的话,那么,C6678 MPAX 把 0x8000 0000 ~ 0xFFFF FFFF 映射到

     1000: 0x00000000 开始的2G 和

     1010: 0x00000000 开始的2G ,红色部分相同,应该就是对应一个的外接DDR3存储器,这么理解对吗?

3、

      扩展到8G空间物理空间(MPAX的输出)是8: 00000000 ~ 9: FFFF FFFF,是否必须这样?在哪个文档中有描述,谢谢!

hongkun ma:

等答案,谢谢!

hongkun ma:

更正一下:

原文:2、但是,由于核只对8000 0000 到FFFF FFFF地址的2G空间采取 DDR3的总线接口,2G空间重映射16次,所DDR3理论上可以扩展到32G; 描述不对

应该是,8000 0000 到FFFF FFFF地址的2G空间采取 DDR3的总线接口,但是,可以通过MPAX  32次  动态重新映射到64G空间上。

原文:扩展到8G空间物理空间(MPAX的输出)是8: 00000000 ~ 9: FFFF FFFF,是否必须这样?在哪个文档中有描述

应该是的,在sprugw0c-C66x DSP CorePac User Guide中P 141 有 这样的描述:

MPAX上电后把 8000 0000-FFFF FFFF映射到 8:0000 0000-8:7FFF FFFF,This corresponds to the first 2GB of address space。

所以,8G就是 8: 00000000 ~ 9: FFFF FFFF。

 

DDR3接口输入的33位地址线,应该就是对应 MPAX输出36位物理地址的 bit32-bit0,高3位地址线忽略。

也就是说C6678的MPAX把8000 0000-FFFF FFFF映射到

8:0000 0000-8:7FFF FFFF和映射到

0:0000 0000–0:7FFF FFFF、

2:0000 0000–2:7FFF FFFF、

4:0000 0000–4:7FFF FFFF、

6:0000 0000–6:7FFF FFFF、

A:0000 0000–A:7FFF FFFF、

C:0000 0000–C:7FFF FFFF、

E:0000 0000–E:7FFF FFFF实际效果是一样的?

即使MPAX 把 8000 0000-FFFF FFFF 映射到 0:0000 0000–0:7FFF FFFF ,

也 和系统中 把 0000 0000-7FFF FFFF 映射到 0:0000 0000–0:7FFF FFFF ,不冲突。

因为,前者的 0:0000 0000–0:7FFF FFFF  是送到 DDR3接口控制器,去操作外部DDR3访问方式操作的存储器。

而后者,则不会通过 DDR3接口去操作。

 

或者这么理解吧:地址通过什么接口(DDR3?还是EMIF16?)去操作外部器件,是由32位的逻辑地址确定的,而不是MPAX转换后的36物理地址确定,是这样吗?

 

hongkun ma:

回复 hongkun ma:

这些疑问,谁能够给解答一下,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » C6678 DDR3 扩展问题
分享到: 更多 (0)