DDR地址映射系统和方法与流程

文档序号:12802017阅读:5266来源:国知局
DDR地址映射系统和方法与流程

本发明涉及芯片设计领域,尤其涉及一种ddr地址映射系统和方法。



背景技术:

在移动终端中,为了完成移动通信、本地应用等功能,有众多的模块会访问ddr。众多模块例如包括多核应用处理器、gpu、display、dsp、dma等,随着sdr(软件无线电)的发展以及移动通信速率的提高,移动终端的通信处理需要更多的dsp、高层处理器、信号处理加速器、dma等模块,这些模块都会访问ddr。在极端情况下,会有多个模块访问ddr的同一个bank(块)的不同行,由于一个bank只允许同时激活1行,所以会造成ddr不断进行关闭行、激活行的过程,严重影响ddr的效率,同时也会增加ddr的功耗。

ddr的空间地址映射方式为【bank,row,col】或者【row,bank,col】,要对ddr的某个地址进行读写操作时,必须先激活所在的row,而一个bank只能同时有一个row(行)保持激活状态,如果要访问该bank的另外一个row,必须先关闭原先激活的row,然后才能激活将要访问的row,激活和关闭动作太多,就会极大降低ddr的效率。在某些系统里,对ddr效率要求比较高,采用【bank,row,col】的地址映射方式,然后将各模块访问ddr的空间规划到不同的bank里,这样就不会出现频繁激活和关闭row的动作,从而大大提高ddr的效率。然而,ddr的bank数量是有限的,每个bank都是固定的大小,各模块实际可能只使用很小的空间,这种方式就造成了大量空间的浪费,在消费类终端里是不实用的。因此,在终端系统中为了减少bank冲突的可能性,一般会采用【row,bank,col】的地址映射方式,这方式bank不是在地址的高位,大大减少了bank冲突的可能性,但是并不能消除这种可能性,在移动终端里,某些通信模块对ddr访问的实时性比较高,即使是低概率的ddr效率降低,也可能引起通信模块的死机。



技术实现要素:

为解决现有技术存在的问题,本发明提供了一种ddr地址映射系统,通过<row,bank,col>方式进行地址映射,其中row代表行地址,col代表列地址,bank代表块地址,且不同模块访问所述ddr的地址位于不同的块。

可选的,所述不同模块至少包含数字信号处理器、cpu、信号处理加速器、gpu和dma其中之二。

可选的,所述不同模块属于同一移动终端。

可选的,不同模块访问所述ddr的地址位于不同的块的实现方式是:在ddr的指定地址空间内进行地址重排,使得该空间内通过<bank,row,col>的方式进行地址映射。

可选的,在所述指定地址空间内进行地址重排时,将所述指定地址空间平均分配给多个块。

可选的,通过规定所述指定地址空间的起始地址大小和所述指定地址空间的大小获取所述指定地址空间。

可选的,所述指定地址空间的大小为所述指定地址空间的起始地址不为零时,其大小为

其中,n、m为整数,n为设定重排空间的行的bit数,nbank为所述ddr的bank的数量2的对数,ncol为所述ddr的col的大小的2的对数,nbus为所述ddr总线的大小的2的对数,ddr总线的大小以byte为单位。

可选的,不同模块访问所述ddr的地址位于不同的块的实现方式是:将同一模块访问的某一段地址划分至同一个块,其余地址做适应性调整。

一种ddr地址映射方法,通过<row,bank,col>方式进行地址映射,其中row代表行地址,col代表列地址,bank代表块地址,且不同模块访问所述ddr的地址设置于不同的块。

可选的,所述不同模块至少包含数字信号处理器、cpu、信号处理加速器、gpu或dma其中之二。

可选的,所述不同模块属于同一移动终端。

可选的,不同模块访问所述ddr的地址位于不同的块的实现方式是:在ddr的指定地址空间内进行地址重排,使得该空间内通过<bank,row,col>的方式进行地址映射。

可选的,在所述指定地址空间内进行地址重排时,将所述指定地址空间平均分配给多个块。

可选的,通过规定所述指定地址空间的起始地址大小和所述指定地址空间的大小获取所述指定地址空间。

可选的,所述指定地址空间的大小为所述指定地址空间的起始地址不为零时,其大小为

其中,n、m为整数,n为设定重排空间的行的bit数,nbank为所述ddr的bank的数量2的对数,ncol为所述ddr的col的大小的2的对数,nbus为所述ddr总线的大小的2的对数,上述ddr总线的大小以byte为单位。

可选的,不同模块访问所述ddr的地址位于不同的块的实现方式是:将同一模块访问的某一段地址划分至同一个块,其余地址做适应性调整。

本发明提供一种ddr地址映射系统,在【row,bank,col】的地址映射方式基础上把各模块访问ddr的空间进行重排,可以实现各模块对ddr的访问规划到不同的bank,且占用指定的空间大小。本发明还相应地提供了一种ddr地址映射方法,既能提高ddr的效率,又不造成ddr空间的浪费。

附图说明

图1为本发明第一实施例所述ddr地址映射系统中总线映射逻辑示意图;

图2为本发明第二实施例所述ddr地址映射系统中总线映射逻辑示意图。

具体实施方式

以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。

本发明提供了一种ddr地址映射系统,通过<row,bank,col>方式进行地址映射,其中row代表行地址,col代表列地址,bank代表块地址,并且不同模块访问所述ddr的地址位于不同的块。

优选方案中,所述不同模块包含同一移动终端中的数字信号处理器、cpu、信号处理加速器、gpu或dma。

实施例一:

不同模块访问所述ddr的地址位于不同的块的实现方式是:在ddr的指定地址空间内进行地址重排,使得该空间内通过<bank,row,col>的方式进行地址映射。在本实施例中,在所述指定地址空间内进行地址重排时,将所述指定地址空间平均分配给多个块。

具体而言,是在某一个指定的空间内进行地址重排,从而实现在小范围内是【bank,row,col】的地址映射方式。例如,0~128m空间内,重新排列后,0~16m为bank0,16~32m为bank1,32~48m为bank2,以此类推。起始地址和重排的空间大小都可以设定,为了满足地址总线的映射为简单的循环移位操作,要求设定的重排的空间大小为且起始地址大小为(起始地址为0时,不受此约束)。上两式中,n、m为整数,nbank为memory的bank的数量2的对数,ncol为memory的col的大小的2的对数,nbus为memory总线的大小(以byte为单位)的2的对数。

本实施例中,如果系统总线为32bit,则总线映射逻辑如图1所示。首先分别配置需要重排的起始地址、结束地址:anbotm[31:0]~antop[31:0],然后在进行映射时判断具体地址a[31:0]是否在起始地址到结束地址的范围内。即anbotm[31:0]<=a[31:0]<=antop[31:0]是否成立。当上式成立时,则映射后的地址aout[31:0]={a[31:n+3+ncb],a[n+ncb-1:ncb],a[n+2+ncb:n+ncb],a[ncb-1:0]};当上式不成立时,保持映射后的地址不变,即aout[31:0]=a[31:0]。

在图1中,ncb=ncol+nbus,n为设定重排空间的row的bit数,a为原始地址数据,aout为映射后的地址。总线映射器对地址a[n+ncb+2:ncb]的重新映射,实际是循环左移3位,这种移位操作时序简单,不会给总线带来较大的额外延迟。

本实施例中,以2row,8bank空间为例,则映射关系如下:

经上述箭头调整重排后,新的地址映射如下:

由此可见,在我们指定的ddr空间里经过总线映射后,实现了【bank,row,col】的地址映射方式,从而将移动终端访问ddr的各个空间划分到不同的bank。

实施例二:

不同模块访问所述ddr的地址位于不同的块的实现方式是:将同一模块访问的某一段地址划分至同一个块,其余地址做适应性调整。

本实施例是将某一段地址映射为某一个指定的bank,例如16m~18m为映射为bank1,18m~25m映射为bank0等等。因此,其总线映射逻辑如图2所示。

配置需要重排的起始地址、结束地址为anbotm[31:0]~antop[31:0],及要映射为哪个块,即bank_x。之后,再进行映射时判断具体地址a[31:0]是否在起始地址到结束地址的范围内,即anbotm[31:0]<=a[31:0]<=antop[31:0]是否成立。当上式成立时,则映射后的地址aout[31:0]={a[28:ncb],bank_x[2:0],a[ncb-1:0]};当上式不成立时,判断anbotm[28:ncb]<=a[31:ncb+3]<=antop[28:ncb]&a[ncb+2:ncb]==bank_x是否成立,若成立,则映射后的地址aout[31:0]={3'b0,a[31:ncb+3],a[ncb-1:0]}, 若不成立,则保持映射后的地址不变,即aout[31:0]=a[31:0]。

本实施例中,以2row,8bank空间为例,即将row为2的地址划分至同一个bank,则映射关系如下:

映射前后的地址如下:

由此可见,row2的空间经过总线映射后,实现了映射到bank1的地址空间。可以实现将移动终端访问ddr的各master空间经过总线器以后映射到某一指定的bank。

本发明还提供了一种ddr地址映射方法,通过<row,bank,col>方式进行地址映射,其中row代表行地址,col代表列地址,bank代表块地址,不同模块访问所述ddr的地址设置于不同的块。该方法的其他技术特征与上述ddr地址映射系统相同,因此此处不再赘述。

本发明的ddr地址映射系统在【row,bank,col】的地址映射方式基础上,把各模块访问ddr的空间进行重排,可以实现各模块对ddr的访问规划到不同的bank,且占用指定的空间大小。本发明还相应地提供了一种ddr地址映射方法,既能提高ddr的效率,又不造成ddr空间的浪费。

显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

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