首页> 中国专利> 访问多区存储器中的多维数据块的方法、装置及系统

访问多区存储器中的多维数据块的方法、装置及系统

摘要

本发明公开了一种访问多区存储器的方法,包括:(a)如果当前数据行是多维数据块的最后一行,则按当前数据行的存储地址访问多区存储器并结束流程;如果当前数据行不是多维数据块的最后一行,根据当前数据行的存储地址和多维数据格式信息预算出将要访问的多个后续数据行的存储地址;(b)按当前数据行的存储地址访问多区存储器中的多维数据块的当前数据行数据;(c)根据多个后续数据行的存储地址之间的位置关系按预定规则对后续数据行对应存储行的行状态进行设置,和/或对当前数据行的对应存储行的行状态进行设置;(d)将当前数据行的下一个数据行设定为当前数据行后返回步骤(a)。同时本发明还公开了基于这种方法的设备及系统。

著录项

  • 公开/公告号CN1908983A

    专利类型发明专利

  • 公开/公告日2007-02-07

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200610037075.2

  • 申请日2006-08-16

  • 分类号G06T1/60(20060101);G06F13/14(20060101);

  • 代理机构44202 广州三环专利代理有限公司;

  • 代理人郝传鑫

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 18:16:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-25

    未缴年费专利权终止 IPC(主分类):G06F13/14 专利号:ZL2006100370752 申请日:20060816 授权公告日:20090909

    专利权的终止

  • 2009-09-09

    授权

    授权

  • 2007-04-04

    实质审查的生效

    实质审查的生效

  • 2007-02-07

    公开

    公开

说明书

技术领域

本发明涉及数据存储技术,尤其涉及一种访问多区存储器的技术,更为具体地,本发明旨在提供一种提高多区存储器带宽的方法、设备及其系统。

背景技术

通讯及数字媒体处理需要大量的存储访问。网络处理系统、图像处理系统等对存储带宽的需求越来越高。

图像处理系统用于完成静态和动态图像的预处理、后处理、图像压缩编码和解码、图像显示处理、2D/3D图形显示处理等。其中常见的图像压缩编解码标准包括JPEG、JPEG2000、MPEG2、MPEG4、H.263、H.264等。图像处理过程中一般需要大量缓存图形图像数据,对存储器的访问数据量很大,要求高带宽、低延时。因此存储器的带宽成为图像处理系统的性能瓶颈。

视频,即动态图像,是由时间连续的一系列图像帧构成的。一帧图像由二维阵列的象素组成(象素是图像的最小单位)。在视频编码中通常以宏块作为基本处理单位,一个宏块为16×16个象素。对于隔行扫描系统,一个图像帧由奇场和偶场组成。图像数据文件格式为RGB和YCbCr两大类,后者又可分为4:2:0、4:2:2、4:4:4等不同格式。通常YCbCr三个分量分别存放,每个分量又按先后将所有行数据顺序存放在一段连续的存储单元中。这样每个二维图像对应于一个或多个存储单元块。

动态存储器(DRAM),常见的为SDRAM和DDR SDRAM,以容量大、成本低,连续访问时带宽高等优势在图像处理器中获得广泛应用。DRAM通常有多个区(Bank),每Bank有多个存储行(Row),每存储行有多列(Column),如一个单片32 Meg x 16 DDR SDRAM存储器分为4Bank,每Bank有8K存储行,每个存储行有1024存储列。动态存储器每次访问的单位是一次突发(Burst),Burst的长度可配置,如可为4、8甚至256。动态存储器由于器件本身特性的限制,每次随机的突发访问通常需要Active(“激活”)、Precharge(“预充电”或“关闭”)等开销,只有遇到下一个要存放的行的恰好是一个已经打开的行时,才可以免去这种开销。动态存储器是一种多Bank存储器。

现有技术中,一般都是以单数据或一维数据的形式对存储器(例如DRAM)进行访问。以图像处理为例,如果要在存储器中存储一幅图像,通常的做法是将一幅图像分成多个一维数据行,然后逐行写到存储器当中。参考图1,图示了现有技术中访问多Bank存储器(例如DRAM)的部分流程。如图所示,步骤10:Active a0 Bank b0行;步骤11:读/写a0 Bank b0行c0列;步骤12:Precharge;步骤13:Active a0 Bank b1行;步骤14:读/写a0 Bank b1行c1列;步骤15:Precharge。可以看出,每一数据行图像的写操作都要经过先Precharge上一个已经打开的存储器行,再Active当前要操作的行,然后再把图像行写到存储器当中。只有遇到下一个要存放的行的恰好是一个已经打开的行时,才可以免去Precharge和Active的开销,但这种概率微乎其微,随机性很大。所以,现有的一维数据访问存储器的技术由于一维访问形式无法避免在访问过程中频繁的Precharge/Active开销从而导致无法提高多Bank存储器的带宽利用率。

对图形图像处理时,需要进行大量的多维数据块访问,按照现有的技术,只能按分成多个一维甚至很多个单字数据访问,存储带宽利用率很低,成为图形图像处理的性能瓶颈。

发明内容

本发明的目的在于,提供一种访问多区存储器的方法、装置及系统,有效提高多区存储器的带宽利用率。

为了达到上述技术目的,本发明一方面提供了一种访问多区存储器的方法,该方法包括:(a)如果当前数据行是所述多维数据块的最后一行,则按所述当前数据行的存储地址访问所述多区存储器中的多维数据块的当前数据行数据,并结束流程;如果当前数据行不是所述多维数据块的最后一行,根据所述当前数据行的存储地址和多维数据格式信息预算出将要访问的多个后续数据行的存储地址;(b)按所述当前数据行的存储地址访问所述多区存储器中的多维数据块的当前数据行数据;(c)根据所述多个后续数据行的存储地址之间的位置关系按预定规则对后续数据行对应存储行的行状态进行设置,和/或对当前数据行的对应存储行的行状态进行设置;(d)将当前数据行的下一个数据行设定为当前数据行后返回步骤(a)。

优选地,所述多区存储器为DRAM或SDRAM或DDR SDRAM或DDR2SDRAM或RLDRAM或FCRAM。

优选地,所述多维数据格式信息为2维数据格式信息。

优选地,所述步骤(c)为:根据所述后续数据行的存储地址的位置关系判断是否需提前激活后续数据行对应存储行和/或自动预充电当前数据行对应存储行,如果是,则提前激活后续数据行对应存储行和/或自动预充电当前数据行对应存储行。

相应地,本发明另一方面提供了一种访问多区存储器的多维存储访问控制器,包括:判定结束装置,用于判定如果当前数据行是多维数据块的最后一行,则调用访问装置后结束,否则调用地址映射器;访问装置,用于按所述当前数据行的存储地址发出访问所述多区存储器的命令序列;地址映射器,用于根据所述当前数据行的存储地址和多维数据格式信息预算出将要访问的多个后续数据行的存储地址;存储行状态设置装置,用于根据所述多个后续数据行的存储地址之间的位置关系按预定规则对后续数据行对应存储行和/或当前数据行对应存储行的行状态进行设置;递进装置,用于将当前数据行的下一个数据行设定为当前数据行。数据生成器,用于根据所述访问装置发出的命令序列向所述多区存储器送出访问信号、写出或读回数据;

优选地,所述存储行状态设置装置包括:判断装置,用于根据所述后续数据行的存储地址的位置关系判断是否需提前激活后续数据行对应存储行和/或自动预充电当前数据行对应存储行;激活装置,用于提前激活后续数据行对应存储行;自动预充电装置,用于自动预充电当前数据行对应存储行。

本发明又一方面提供了一种访问多区存储器的多端口存储控制器,包括:多个总线接口模块,包括至少一个多维数据总线接口模块和至少一个普通总线接口模块;仲裁器,与所述多个总线接口模块耦接,用于在所述多个总线接口模块中选择一个多维数据总线接口模块或一个普通总线接口模块;存储访问控制器组,与所述仲裁器耦接,用于提供存储访问控制;多路选择器,与所述存储访问控制器组耦接,用于在所述存储访问控制器组中选择一个多维存储访问控制器或一个普通访问控制器。其中所述存储访问控制器组包括:普通访问控制器,用于提供对一维数据的访问控制;多维存储访问控制器,用于提供对多维数据的访问控制;其中所述多维存储访问控制器包括:判定结束装置,用于判定如果当前数据行是多维数据块的最后一行,则调用访问装置后结束,否则调用地址映射器;访问装置,用于按所述当前数据行的存储地址发出访问所述多区存储器的命令序列;地址映射器,用于根据所述当前数据行的存储地址和多维数据格式信息预算出将要访问的多个后续数据行的存储地址;存储行状态设置装置,用于根据所述多个后续数据行的存储地址之间的位置关系按预定规则对后续数据行对应存储行和/或当前数据行对应存储行的行状态进行设置;递进装置,用于将当前数据行的下一个数据行设定为当前数据行。数据生成器,用于根据所述访问装置发出的命令序列向所述多区存储器送出访问信号、写出或读回数据;

可选地,还包括与所述总线接口模块耦接的位宽转换器,用于将从外部接收到的低位宽数据转换成高位宽数据后传送到所述总线接口模块或将从总线接口模块处接收到的高位宽数据转换成低位宽数据后传送到外部。

优选地,所述总线为AMBA总线中的AHB总线或AXI总线。

优选地,所述存储行状态设置装置包括:判断装置,用于根据所述后续数据行的存储地址的位置关系判断是否需提前激活后续数据行对应存储行和/或自动预充电当前数据行对应存储行;激活装置,用于提前激活后续数据行对应存储行;自动预充电装置,用于自动预充电当前数据行对应存储行。

本发明又一方面提供了一种信息处理系统,包括:信息处理器,用作存取数据的源设备;与所述信息处理器耦接的总线,用于传输数据;与所述总线耦接的多端口存储控制器,用于控制数据的存储;与所述多端口存储控制器耦接的存储控制器物理层接口模块,用于将所述多端口存储控制器的输入输出数字信号转换成多区存储器所要求的物理信号;与所述存储控制器接口物理层模块耦接的多区存储器,用于存储数据;其中所述多端口存储控制器,包括:多个总线接口模块,包括至少一个多维数据总线接口模块和至少一个普通总线接口模块;仲裁器,与所述多个总线接口模块耦接,用于在所述多个总线接口模块中选择一个多维数据总线接口模块或一个普通总线接口模块;存储访问控制器组,与所述仲裁器耦接,用于提供存储访问控制;多路选择器,与所述存储访问控制器组耦接,用于在所述存储访问控制器组中选择一个多维存储访问控制器或一个普通访问控制器。其中所述存储访问控制器组包括:普通访问控制器,用于提供对一维数据的访问控制;多维存储访问控制器,用于提供对多维数据的访问控制;其中所述多维存储访问控制器包括:判定结束装置,用于判定如果当前数据行是多维数据块的最后一行,则调用访问装置后结束,否则调用地址映射器;访问装置,用于按所述当前数据行的存储地址发出访问所述多区存储器的命令序列;地址映射器,用于根据所述当前数据行的存储地址和多维数据格式信息预算出将要访问的多个后续数据行的存储地址;存储行状态设置装置,用于根据所述多个后续数据行的存储地址之间的位置关系按预定规则对后续数据行对应存储行和/或当前数据行对应存储行的行状态进行设置;递进装置,用于将当前数据行的下一个数据行设定为当前数据行;数据生成器,用于根据所述访问装置发出的命令序列向所述多区存储器送出访问信号、写出或读回数据。

优选地,所述存储行状态设置装置包括:判断装置,用于根据所述后续数据行的存储地址的位置关系判断是否需提前激活后续数据行对应存储行和/或自动预充电当前数据行对应存储行;激活装置,用于提前激活后续数据行对应存储行;自动预充电装置,用于自动预充电当前数据行对应存储行。

实施本发明,具有如下有益效果:

本发明提供的访问多区存储器的方法,根据待访问数据行的存储地址和多维数据格式信息(这些多维数据格式信息包括长、宽、高等维度信息)提前计算出将要访问的后续数据行的存储地址,在数据行的访问间隙根据提前计算出来的后续数据行的存储地址的分布情况,决定是否对这些的存储行状态进行设置,从而优化命令序列,提高了存储器的访问效率。例如在多区存储器中,提前激活将要访问的后续数据行对应存储行或自动预充电当前数据行对应存储行。多维数据可以包括但不限于矩形、菱形、立方体等。该方法将会在在流媒体、视频、编解码等多个领域得到广泛应用。这些领域有许多针对多维数据的存储操作,如二维、三维图像的存储访问等,这些数据很容易组成多维数据,如果使用本发明中提到的方法进行存储和访问,将会极大地提高存储器访问的带宽,解决目前媒体领域存在的存储带宽瓶颈问题。

附图说明

图1是现有技术中访问多区存储器的方法的部分流程图;

图2是本发明提供的一种信息处理系统的结构示意图;

图3是本发明提供的一种多端口存储控制器的结构示意图;

图4是本发明提供的一种多维存储访问控制器的结构示意图;

图5是图4中提供的多维存储访问控制器中的地址映射器的地址预算及映射原理框图;

图6是基于图4中提供的多维存储访问控制器的一种访问多区存储器的方法的流程图;

图7是位宽转换示意图。

具体实施方式

参考图2,图示了本发明提供的一种信息处理系统,该信息处理系统可以是一种图形图像处理系统。如图所示,系统200包括信息处理器210、总线220、多端口存储控制器300、存储控制器物理层接口模块301和多Bank存储器230。

信息处理器210是存取数据的源设备,可以有多个,包括CPU(中央处理器)和/或硬件逻辑的信息处理器(例如硬件电路的视频压缩解码器)。

总线220是连接信息处理器210和多端口存储控制器300的设备,用于传输数据。所述总线220可包括使用多种现有技术的系统总线系统,例如ARM公司定义的AMBA总线中的AHB总线(先进高性能总线)或其升级版本AXI总线、IBM公司定义的PLB总线等。总线220可以包括多条总线,本发明中,总线220至少包括一条能够传送多维数据块的总线。

多端口存储控制器300是本发明的重点,将在下文中详细说明。

存储控制器物理层接口模块(PHY)301用于将多端口存储控制器300的输入输出数字信号(含时钟)转换成多Bank存储器230所要求的物理信号。典型的如完成DDR SDRAM所要求的SSTL2电平信号。所述信息处理器210可以通过总线220和多端口存储控制器300访问多Bank存储器230。所述访问包括从所述多Bank存储器230中读取数据和向所述多Bank存储器230中写数据,以及对所述多Bank存储器230进行命令配置等。

所述多Bank存储器230可以是内置DRAM(动态随机访问存储器)或SDRAM(动态同步随机访问存储器)或DDR SDRAM(双倍速率动态同步随机访问存储器)或DDR2 SDRAM(第2代双倍速率动态同步随机访问存储器)或RLDRAM(低延迟动态同步随机访问存储器)或FCRAM(快速循环随机访问存储器)等具有多Bank(bank)特性的存储器。所述多Bank存储器230可以和所述多端口存储控制器300在同一个芯片上,也可以是单独的存储芯片。

参考图3,所述多端口存储控制器300包括多个总线接口模块,本实施例中为两个,分别是AHB接口模块321和用于传送多维数据的视频高性能总线(VAHB)接口模块322,在实际应用中还可以为多个总线接口模块。所述多端口存储控制器300还包括与所述多个总线接口模块耦接的仲裁器330;与所述仲裁器330耦接的存储访问控制器组340;与所述存储访问控制器组340耦接的多路选择器350。

所述存储访问控制器组340包括普通访问控制器343和多维存储访问控制器400,当然,还包括与所述普通访问控制器343和多维存储访问控制器400耦接的刷新单元342和初始化单元341。其中,所述普通访问控制器343就是现有技术中的普通的存储访问控制器(与所述多维存储访问控制器400相比,普通访问控制器343控制一维地址的访问),其控制原理为本领域普通技术人员所熟知,在此不再赘述。所述AHB接口模块321也是现有技术中的,与普通访问控制器343相配合使用。也即是说,本优选实施例中,这种多端口存储控制器具有两个总线接口模块和两个存储访问控制器。AHB接口模块321与普通访问控制器343配合使用;VAHB接口模块322与多维存储访问控制器400配合使用。但上述两组访问设备可以分时访问同一个多Bank存储器(例如多Bank存储器230)。但普通访问控制器343和多维存储访问控制器400怎样才能访问同一个存储器呢?首先要解决存储器侧的总线抢占问题。本实施例通过公平轮询的方法进行总线仲裁,使两个控制器的对总线的占用可以分时复用。所述仲裁器330和多路选择器350即是实现上述仲裁功能的。然后要解决地址映射的问题。如果两个控制器的地址映射规则不一致的话,那么这两种总线就不能相互访问彼此的数据。所以本实施例在宏观上统一了这两个控制器的映射规则,就是两个控制器都按照列、Bank、行的顺序进行地址映射,这样虽然VAHB接口模块322的数据是多维操作,AHB接口模块321的数据是一维操作,但依然能够相互访问彼此的数据。因此,本实施例可以实现多个控制器分时控制同一个存储器,并实现了多种类型数据总线的混合传送。

所述VAHB接口模块322的设计是基于标准AHB接口作的修改。为了传送多维数据并能兼容通用的AHB总线,本实施例对专用多维总线的地址进行了特别约定。专用多维总线保留了AHB总线所有的接口信号,包括读数据(HRDATA)、写数据(HWDATA)、地址(HADDR)、反压信号(HREADY)、传输类型(HTRANS)和传输大小(HSIZE)等信号。唯一作了改变的就是地址的内容,即与地址信息一起被传送的除了待访问地址外,还有多维数据格式信息。在系统中,可以将所述待访问数据地址和多维数据格式信息整合成一个新的信息。下面以二维数据为例说明整合过程。例如将一个待访问地址为0x300和长为4行,宽为5行,存储地址行间隔为0的二维数据格式信息整合在一起。如果所述VAHB接口模块322的地址分配如下表:

  Bit  含义  [31:28]  二维块的行数m  [27:24]  二维块的列数n  [23:21]  存储地址行间隔  [20:0]  二维块首地址
则整合后的信息为:0x45000300。这个信息中给出了二维数据块的长、宽、首地址和存储地址行间隔信息。这些信息将在后续的在所述多维存储访问控制器400的处理中被用到。因为这个信息中给出了二维数据块的长、宽、首地址和存储地址行间隔信息,后面的地址就不需要象AHB接口一样逐个递增,可以保持不变。另外,所述VAHB接口模块322只需要用到INCR(不定长传输)这一种传输类型。除此之外,VAHB接口模块322的操作和标准的AHB接口操作是一样的,保持了和AHB总线的兼容性。当行数m=1时,VAHB接口模块322传输的是一维数据,与AHB接口完全相同。

参考图4,所述多维存储访问控制器400包括地址映射器410、控制状态机420和数据生成器430。所述地址映射器410用于接收来自于所述VAHB接口模块322传送过来的整合了多维(例如二维)数据格式信息和待访问地址的信息(例如上述的0x45000300),并对该信息通过在该信息中携带的当前数据行的存储地址(例如上述的0x300)和维度信息(例如上述的4行5列,存储地址行间隔0)按映射规则预算出多个后续数据行的地址,预算原理如图5所示。在本实施例中,所述地址映射器410可以预算出下两行的地址,加上当前数据行的地址,共有三个数据行的地址被传送到所述控制状态机420处以供该控制状态机420进行访问控制,具体控制规则将在下面详细说明。值得注意的是,这里的二维数据并不一定是逐个存储行访问多Bank存储器230的,也可以隔存储行或跨任意存储行,因此具有存储地址行间隔参数。下一行地址可以根据当前数据行的存储地址和存储地址行间隔预算得到:第n数据行首存储地址=第n-1数据行首存储地址+存储地址行间隔。所述地址映射器410对地址映射规则也进行了优化。通常的地址映射是读完本Bank的一个存储行后立刻接着读下一个存储行,这样就无法避免Active和Precharge开销,而所述地址映射器410的地址映射规则为:一行访问结束后直接转到下一Bank的存储行,而不是转到本Bank的下一个存储行,因为访问的不是同一Bank,这样就不用立刻Precharge,就可以直接访问下一Bank的存储行,而当前Bank的存储行的访问则可以通过自动Precharge的设置将Precharge开销抵消在下一Bank存储行的读写中,从而提高存储器的访问效率。

参考图5,所述控制状态机420接收到来自于所述地址映射器410预算出来的多个数据行地址(即当前数据行的存储地址和以当前数据行为基准的后续行地址),以当前数据行的存储地址为基准可以定下来下一数据行存储地址和下二数据行存储地址(当然还可以多预算出一些数据行来),结合来自所述VAHB接口模块322传送过来的读/写请求进行读/写访问控制。结合图3,在图3中,所述多维存储访问控制器400与刷新设备213和初始化设备214连接。其中,所述刷新设备213的刷新信号和初始化设备214的初始化OK信号是所述控制状态机420的输入信号。所述刷新设备213用于刷新多维存储访问控制器400和普通访问控制器343的数据和命令,而所述初始化设备214则用于初始化所述多维存储访问控制器400和普通访问控制器343的。与此相对应的,控制状态机420还有向外输出的反压信号,用于通知外界准备好了(Ready)。

参考图6,图示了所述多维存储访问控制器400进行读/写访问控制的流程图。如图所示,设n为当前数据行,该流程包括:

步骤600:判断第n数据行(即当前数据行)是否是代访问的多维数据块的最后一行,如果是,则执行步骤601;如果不是最后一行,则执行步骤602;

步骤601:访问第n数据行,结束流程;

步骤602:预算出第n+1数据行和第n+2数据行的存储地址;(这一步骤由所述地址映射器410执行,后续的程序由控制状态机420控制执行)

步骤603:访问第n数据行,即访问当前数据行;

该访问将产生去往数据生成器430和地址映射器410的存储控制器物理层接口模块侧(PHY)命令序列控制信号和去往多Bank存储器230的命令信号。去往数据生成器430的信号为指示数据生成器430向多Bank存储器230写数据或从多Bank存储器230中读出数据,去往地址映射器410的信号为指示地址映射器继续向控制状态机420发送预算地址等操作;

步骤604:如果第n+1数据行存储地址和第n+2数据行存储地址不在同一Bank,则进入步骤605中自动Precharge第n数据行对应存储行并Active第n+2数据行对应存储行后转步骤608;否则转步骤606;

这一步骤实际上在访问完第n数据行后,第n+1数据行即当前数据行的下一行即将成为当前数据行,在此时由于已预知第n+1数据行和第n+2数据行(即当前数据行的下二个数据行)的存储地址,可以判断这两个数据行的存储地址是否在同一Bank中,如果不在同一Bank,就可Active第n+2数据行对应的存储行,并自动Precharge第n数据行对应的存储行,对于第n+1数据行而言,在还没有访问它之前,就可能会Active它的下一数据行对应的存储行,也即是说,对于一个多维数据块访问,除了第一个数据行访问时需要单独Active其存储地址对应的Bank外,其余每个数据行存储地址所在Bank都有可能在没被访问之前就被Active了,而每一存储行的Precharge操作也可放在行行转换之间来操作,因此在访问时也节省了Precharge这一开销。这样,对多维数据块大多数数据行的访问,由于节省了Active和Precharge开销,存储带宽利用率得到提高。

步骤606:判断第n+1数据行存储地址和第n+2数据行存储地址是否在同一存储行,如果不在同一存储行,则进入步骤607;否则直接转步骤608;

这一步骤是:在判断完将要访问的第n+1数据行与其下一行即第n+2数据行的存储地址位于同一Bank后,继续判断两个数据行的存储地址是否位于同一存储行,如果是位于同一存储行,则可不必执行Precharge第n数据行对应存储行的操作,直接访问即可,如果不在同一存储行,则Precharge第n数据行对应的存储行。

步骤607:自动Precharge第n数据行对应存储行后执行步骤606;

步骤608:将n自增1后转步骤600,即将当前数据行的下一个数据行设定为当前数据行。

值得说明的是,判定结束、访问、存储行状态设置和递进都是所述状态控制机420的控制逻辑,也可以理解为所述状态控制机420的内部逻辑子部件。也即是说,若把状态控制机420的这些控制逻辑实化为装置,应该理解为这种方式表明了所述状态控制机420可以用硬件及固件等不同形式实施,但这种实施方式的不同是本领域技术人员不用付出创造性劳动就可以预见的。

参考图3,所述多端口存储控制器300还可以包括位宽转换器310,该位宽转换器310与所述总线接口模块耦接。所述位宽转换器310用于将访问所述VAHB接口模块322的数据位宽从低位宽转换成为高位宽。例如外部系统的数据位宽为32bit,将其转换成为64bit的数据位宽后在输入到VAHB接口模块322中,或者将从VAHB接口模块322中接收到的高位宽数据转换成为低位宽数据传送到外部系统。该位宽转换器310将进一步提高对存储器的访问带宽。

本发明以32bit二维总线与64bit二维总线位宽转换为例,描述位宽转换方法。因64bit传送地址需进行DoubleWord(双字)对齐,因此,若32bit的总线命令首地址不是双字对齐时,需将32bit总线侧发出的首地址进行偏移,使得64bit操作的首地址双字对齐,而扩展的地址空间中是不进行实际数据操作的,可通过给存储器的字节屏蔽信号控制对应数据的有效性。

位宽转换主要对二维块的数据列数进行变换,二维块的数据行数m不变。二维块的列数n如果为偶数,则转换后的列数为n/2;二维块的列数n如果为奇数,则需要将列数进行扩展再转换,转换后的列数为(n+1)/2。当进行数据写操作时,将32bit总线数据存入转换模块内部的一个64bit位宽的FIFO(先进先出缓存)中,当数据达到FIFO水线后,发送64bit写操作命令给存储器控制器。当32bit总线数据全部写入FIFO中时,系统总线侧的写操作完成。

读操作时,FIFO每次会从存储器控制器侧读回64bit位宽的数据,然后用相应的规则转换成32bit位宽的数据。如果二维块的列数为奇数,就会读回多余的数据,但根据n的奇偶特征,可以知道64bit数据中哪些字节是有效,哪些是无效,位宽转换模块会自动将无效数据进行过滤。图7为上述位宽转换的示意图。

值得说明的是,多维地址并不限于在上述实施例中提到的二维,可以是三维、四维等。此外,数据位宽转换中,也不仅仅限于32bit转换为64bit,也可以是8bit转换为16bit,8bit转换为32bit等。此外,本发明中提供的多种类型数据总线混合访问同一个存储器的方法,既可以通过不同的总线对应不同的控制器来实现,也可以通过不同的总线对应同一个控制器来实现,只要这些数据总线都转换成一个统一的接口和控制器相连接即可。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号