地址分配方法及DDR控制器与流程

文档序号:14747904发布日期:2018-06-22 02:48阅读:来源:国知局
技术特征:

1.一种地址分配方法,其特征在于,所述方法包括:

双倍速率同步动态随机存储器DDR控制器接收访问请求消息,所述访问请求消息携带待访问的一段连续地址的信息;

所述DDR控制器将所述连续地址按照预设算法进行映射以获得映射后的地址,其中,所述映射后的地址为能按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道的地址,Tx为所述DDR控制器第x个DDR通道的位宽,x∈{1,2,......,s-1,s},s为不小于2的正整数;

所述DDR控制器将所述映射后的地址按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道。

2.根据权利要求1所述的方法,其特征在于,当S=2,T1∶T2=1∶2时,或者,当S=3,T1=T2=T3时,若所述s个DDR通道上的每个DDR颗粒的容量为2m字节,交织粒度为2n字节,则所述预设算法包括:

out1[n-1:0]=in[n-1:0];

其中,out1[x:y]表示映射后的地址的第x位到第y位地址位;in[x:y]表示输入的第y位到第x位地址位;表示向下取整;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

3.根据权利要求2所述的方法,其特征在于,当S=2,T1∶T2=1∶2时,所述DDR控制器将所述映射后的地址按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道,包括:

当out1[n]=a1时,所述DDR控制器选择第1个DDR通道,给所述第1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2时,所述DDR控制器选择第2个DDR通道,给所述第2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m:n]=out1[m+1:n+1];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2,out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

4.根据权利要求2所述的方法,其特征在于,当S=3,T1=T2=T3时,所述DDR控制器将所述映射后的地址按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道,包括:

当out1[n]=a1时,所述DDR控制器选择第x1个DDR通道,给所述第x1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2,out1[n+1]=b1时,所述DDR控制器选择第x2个DDR通道,给所述第x2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2,out1[n+1]=b2时,所述DDR控制器选择第x3个DDR通道,给所述第x3个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2;b1=0或者1,b2=0或者1,b1≠b2;x1=1、2或者3,x2=1、2或者3,x3=1、2或者3,x1≠x2≠x3;out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

5.根据权利要求1所述的方法,其特征在于,当s=2,T1∶T2=1∶2时,或者,当s=3,T1=T2=T3时,若所述s个DDR通道上的每个DDR颗粒的容量为2m字节,交织粒度为2n字节,则所述预设算法包括:

out1[n-1:0]=in[n-1:0];

当in[m+1:0]<2m×3/2时,

当in[m+1:0]≥2m×3/2时,

其中,out1[x:y]表示映射后的地址的第y位到第x位地址位,in[x:y]表示输入的第y位到第x位地址位;表示向下取整;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

6.根据权利要求5所述的方法,其特征在于,当S=2,T1∶T2=1∶2时,所述DDR控制器将所述映射后的地址按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道,包括:

当out1[n]=a1时,所述DDR控制器选择第1个DDR通道,给所述第1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m:n+1];

当out1[n]=a2时,所述DDR控制器选择第2个DDR通道,给所述第2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m:n]=out1[m+1:n+1];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2,out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

7.根据权利要求5所述的方法,其特征在于,当s=3,T1=T2=T3时,所述DDR控制器将所述映射后的地址按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道,包括:

当out1[n]=a1时,所述DDR控制器选择第x1个DDR通道,给所述第x1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m:n+1];

当out1[n]=a2,out1[n+1]=b1时,所述DDR控制器选择第x2个DDR通道,给所述第x2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2,out1[n+1]=b2时,所述DDR控制器选择第x3个DDR通道,给所述第x3个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2;b1=0或者1,b2=0或者1,b1≠b2;x1=1、2或者3,x2=1、2或者3,x3=1、2或者3,x1≠x2≠x3;out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

8.一种双倍速率同步动态随机存储器DDR控制器,其特征在于,所述DDR控制器包括:接收单元、映射单元和分配单元;

所述接收单元,用于接收访问请求消息,所述访问请求消息携带待访问的一段连续地址的信息;

所述映射单元,用于将所述连续地址按照预设算法进行映射以获得映射后的地址,其中,所述映射后的地址为能按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道的地址,Tx为所述DDR控制器第x个DDR通道的位宽,x∈{1,2,......,s-1,s},s为不小于2的正整数;

所述分配单元,用于将所述映射后的地址按照T1∶T2∶...∶Ts的比例分配给所述DDR控制器的s个DDR通道。

9.根据权利要求8所述的DDR控制器,其特征在于,当s=2,T1∶T2=1∶2时,或者,当s=3,T1=T2=T3时,若所述s个DDR通道上的每个DDR颗粒的容量为2m字节,交织粒度为2n字节,则所述预设算法包括:

out1[n-1:0]=in[n-1:0];

其中,out1[x:y]表示映射后的地址的第x位到第y位地址位;in[x:y]表示输入的第y位到第x位地址位;表示向下取整;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

10.根据权利要求9所述的DDR控制器,其特征在于,当s=2,T1∶T2=1∶2时,所述分配单元具体用于:

当out1[n]=a1时,选择第1个DDR通道,给所述第1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2时,选择第2个DDR通道,给所述第2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m:n]=out1[m+1:n+1];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2,out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

11.根据权利要求9所述的DDR控制器,其特征在于,当S=3,T1=T2=T3时,所述分配单元具体用于:

当out1[n]=a1时,选择第x1个DDR通道,给所述第x1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2,out1[n+1]=b1时,选择第x2个DDR通道,给所述第x2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2,out1[n+1]=b2时,选择第x3个DDR通道,给所述第x3个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2;b1=0或者1,b2=0或者1,b1≠b2;x1=1、2或者3,x2=1、2或者3,x3=1、2或者3,x1≠x2≠x3;out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

12.根据权利要求8所述的DDR控制器,其特征在于,当s=2,T1∶T2=1∶2时,或者,当s=3,T1=T2=T3时,若所述s个DDR通道上的每个DDR颗粒的容量为2m字节,交织粒度为2n字节,则所述预设算法包括:

out1[n-1:0]=in[n-1:0];

当in[m+1:0]<2m×3/2时,

当in[m+1:0]≥2m×3/2时,

其中,out1[x:y]表示映射后的地址的第y位到第x位地址位,in[x:y]表示输入的第y位到第x位地址位;表示向下取整;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

13.根据权利要求12所述的DDR控制器,其特征在于,当S=2,T1∶T2=1∶2时,所述分配单元具体用于:

当out1[n]=a1时,选择第1个DDR通道,给所述第1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m:n+1];

当out1[n]=a2时,选择第2个DDR通道,给所述第2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m:n]=out1[m+1:n+1];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2,out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

14.根据权利要求12所述的DDR控制器,其特征在于,当s=3,T1=T2=T3时,所述分配单元具体用于:

当out1[n]=a1时,选择第x1个DDR通道,给所述第x1个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m:n+1];

当out1[n]=a2,out1[n+1]=b1时,选择第x2个DDR通道,给所述第x2个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

当out1[n]=a2,out1[n+1]=b2时,选择第x3个DDR通道,给所述第x3个DDR通道分配的地址为:

out2[n-1:0]=out1[n-1:0];

out2[m-1:n]=out1[m+1:n+2];

其中,a1=0或者1,a2=0或者1,a1≠a2,并且所述映射后的地址中out1[n]=a1的个数∶out1[n]=a2的个数=1∶2;b1=0或者1,b2=0或者1,b1≠b2;x1=1、2或者3,x2=1、2或者3,x3=1、2或者3,x1≠x2≠x3;out2[x:y]表示分配的地址的第y位到第x位地址位;n-1≤x≤m+1,0≤y≤m;m>n,x、y、m和n均为正整数。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1