一种地址映射处理的方法、装置转让专利

申请号 : CN201310130486.6

文献号 : CN104102586B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄苏

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种地址映射处理的方法及装置,该方法包括:根据当前配置的双倍数据速率同步随机存储器(DDR)数量对逻辑地址分区;根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理。该装置的映射处理单元用于根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理。采用本发明,既节约RAM资源,又能实现对物理地址的高效管理。

权利要求 :

1.一种地址映射处理的方法,其特征在于,该方法包括:

根据当前配置的双倍数据速率同步随机存储器DDR数量对逻辑地址分区;

根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理;

所述根据当前配置的双倍数据速率同步随机存储器DDR数量对逻辑地址分区包括:根据DDR数量及每个DDR所包含的物理存储体bank数量得到总的物理bank数;将总的逻辑地址均分为多个逻辑地址段,且分段数为所述总的物理bank数的所有公约数中数值为2n的最大值,所述n指段内链表数量;

所述根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理包括:所述DDR数量为2n的情况下,每个逻辑地址段对应一个物理bank,则为逻辑地址与物理地址的一对一映射;所述DDR数量为非2n的情况下,每个逻辑地址段对应多个物理bank,则为逻辑地址与物理地址的一对多映射;

所述一对多映射时,为每个物理bank配置段内偏移基地址,所述段内偏移基地址的数量为n-1;

根据所述段内偏移基地址和段内偏移地址,得到段内偏移地址对应的段内偏移物理bank地址;

根据所述段内偏移物理bank地址得到对应的物理行地址和物理列地址。

2.一种地址映射处理的装置,其特征在于,该装置包括:分区处理单元和映射处理单元;其中,所述分区处理单元,用于根据当前配置的DDR数量对逻辑地址分区;

所述映射处理单元,用于根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理;

所述分区处理单元,进一步用于根据DDR数量及每个DDR所包含的物理存储体bank数量得到总的物理bank数,将总的逻辑地址均分为多个逻辑地址段,且分段数为所述总的物理bank数的所有公约数中数值为2n的最大值,所述n指段内链表数量;

所述映射处理单元,进一步用于所述DDR数量为2n的情况下,使每个逻辑地址段对应一个物理bank,则为逻辑地址与物理地址的一对一映射;所述DDR数量为非2n的情况下,使每个逻辑地址段对应多个物理bank,则为逻辑地址与物理地址的一对多映射;

所述映射处理单元,还用于一对多映射时,为每个物理bank配置段内偏移基地址,所述段内偏移基地址的数量为n-1;根据所述段内偏移基地址和段内偏移地址,得到段内偏移地址对应的段内偏移物理bank地址;根据所述段内偏移物理bank地址得到对应的物理行地址和物理列地址。

说明书 :

一种地址映射处理的方法、装置

技术领域

[0001] 本发明涉及数据通信领域的地址映射技术,尤其涉及一种地址映射处理的方法及装置。

背景技术

[0002] 双倍数据速率同步随机存储器,简称DDR SDRAM是电子设备工程联合委员会(JEDEC)与2004年发布的新生代内存技术标准,因其低廉的价格,高带宽的数据吞吐率以及功耗低的优势,DDR SDRAM被广泛用于存储需求高的数据通信领域。然而在数据通信芯片领域,芯片的关键性能指数为每秒处理包数(PPS),由它决定了用于数据包缓存的DDR SDRAM必须达到最低的读写效率以满足芯片的处理能力。同时,因为成本因素,又不能单纯的以增加DDRSDRAM物理片数的方法来提高整个芯片的数据吞吐率。
[0003] DDR SDRAM广泛应用于数据通信芯片领域,用于报文处理过程中缓存包数据,目前普遍是DDR的第三代产品,即DDR3SDRAM,本文后续简称DDR3。数据通信芯片的一般处理模式为:数据包经过MAC层的处理后首先将包缓存入片外DDR3芯片,同时生成缓存数据包的DDR3物理地址,并将其作为数据包特征信息的一部分继续其他如协议以及QoS功能的处理。对以太网数据报文,包的最小长度为64B,同时目前主流DDR3的burst地址位宽为16B,可以看到一个数据包至少需要4个burst地址,如果直接将数据包的DDR3物理地址作为其特征信息,则至少需要携带4个物理地址,导致资源增加。
[0004] 为降低开销,现有技术一般采用逻辑地址作为数据包缓存地址的特征信息,一个逻辑地址代表若干个DDR3物理地址,此种方案需要DDR3的逻辑地址和物理地址之间做一一对应的映射关系,但是,采用现有技术存在的问题是:这种地址映射的处理方案既浪费RAM资源,又无法实现对物理地址的高效管理

发明内容

[0005] 有鉴于此,本发明的主要目的在于提供一种地址映射处理的方法及装置,既节约RAM资源,又能实现对物理地址的高效管理。
[0006] 为达到上述目的,本发明的技术方案是这样实现的:
[0007] 一种地址映射处理的方法,该方法包括:
[0008] 根据当前配置的双倍数据速率同步随机存储器DDR数量对逻辑地址分区;
[0009] 根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理。
[0010] 其中,所述根据当前配置的DDR数量对逻辑地址分区具体包括:
[0011] 根据DDR数量及每个DDR所包含的物理存储体bank数量得到总的物理bank数;
[0012] 将总的逻辑地址均分为多个逻辑地址段,且分段数为所述总的物理bank数的所有公约数中数值为2n的最大值,所述n指段内链表数量。
[0013] 其中,所述根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理具体包括:
[0014] 数值为2n的情况下,每个逻辑地址段对应一个物理bank,则为逻辑地址与物理地址的一对一映射;
[0015] 数值为非2n的情况下,每个逻辑地址段对应多个物理bank,则为逻辑地址与物理地址的一对多映射。
[0016] 其中,该方法还包括:所述一对多映射时,为每个物理bank配置段内偏移基地址,所述段内偏移基地址的数量为n-1。
[0017] 其中,该方法还包括:根据所述段内偏移基地址和段内偏移地址,得到段内偏移地址对应的段内偏移物理bank地址。
[0018] 其中,该方法还包括:根据所述段内偏移物理bank地址得到对应的物理行地址和物理列地址。
[0019] 一种地址映射处理的装置,该装置包括:分区处理单元和映射处理单元;其中,[0020] 所述分区处理单元,用于根据当前配置的DDR数量对逻辑地址分区;
[0021] 所述映射处理单元,用于根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理。
[0022] 其中,所述分区处理单元,进一步用于根据DDR数量及每个DDR所包含的物理存储体bank数量得到总的物理bank数,将总的逻辑地址均分为多个逻辑地址段,且分段数为所述总的物理bank数的所有公约数中数值为2n的最大值,所述n指段内链表数量。
[0023] 其中,所述映射处理单元,进一步用于数值为2n的情况下,使每个逻辑地址段对应一个物理bank,则为逻辑地址与物理地址的一对一映射;数值为非2n的情况下,使每个逻辑地址段对应多个物理bank,则为逻辑地址与物理地址的一对多映射。
[0024] 其中,所述映射处理单元,进一步用于一对多映射时,为每个物理bank配置段内偏移基地址,所述段内偏移基地址的数量为n-1;根据所述段内偏移基地址和段内偏移地址,得到段内偏移地址对应的段内偏移物理bank地址;根据所述段内偏移物理bank地址得到对应的物理行地址和物理列地址。
[0025] 本发明的方案根据当前配置的DDR数量对逻辑地址分区;根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理。由于采用本发明不是直接针对总逻辑地址进行逻辑地址到物理地址的映射,而是对总的逻辑地址分区处理后再进行映射处理,从而减少了逻辑地址的占用,既节约RAM资源,而更少的逻辑地址更容易地址寻址实现,又能实现对物理地址的高效管理。

附图说明

[0026] 图1为本发明的方法流程图;
[0027] 图2为本发明应用实例一的不同DDR3数量时逻辑地址的分段表示意图;
[0028] 图3为本发明应用实例二的映射装置组成结构示意图;
[0029] 图4为本发明应用实例三的基于映射实现译码过程的译码装置组成结构示意图。

具体实施方式

[0030] 本发明的方案是DDR3的逻辑地址和物理地址之间一对多的映射处理方案,使用最少的逻辑地址资源满足系统设计需求,根据当前系统配置的DDR3数量,将逻辑地址均分成区间段,然后按区间段单独进行逻辑地址和物理地址之间的映射。
[0031] 为简化描述,后续在链表数组形式表示时,将逻辑地址简称为PMAU描述,全文的存储体(bank)都是指物理bank,而不是逻辑物理bank。本文的n指段内链表数量。
[0032] 下面结合附图对技术方案的实施作进一步的详细描述。
[0033] 如图1所示为本发明方法流程示意图,该流程包括以下步骤:
[0034] 步骤101、根据当前配置的DDR数量对逻辑地址分区。
[0035] 步骤102、根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间一对多的映射处理。
[0036] 应用实例一:本实例以逻辑地址总数为128k,片外DDR3的可变组数为1~5组为例具体阐述本发明的映射处理过程。
[0037] 步骤201:将总的逻辑地址做分区段处理,且采用均分方式。
[0038] 这里,步骤201的具体过程为:根据当前系统配置的DDR3组数,将总的逻辑地址空闲节点区间均分成n段(每段用逻辑地址的分段号表示),其中分区段数为物理bank总数所有公约数中值为2n的最大值,这样,PMAU[16:15-n]即代表分段地址。
[0039] 举例来说,例如,当DDR3数量为5,每片DDR3包含8个物理bank时,总的物理bank数n量为40,40的公约数为2的最大值即为8,也就是说当DDR3数量为5时,将40个物理bank均分成8段。
[0040] 上述分段采用的规则,是为了使逻辑地址每段的段内偏移地址可以用PMAU[16:15-n]来快速表征,且每段包含最少的物理bank数量,剩余PMAU[14-n:0]即为逻辑地址在每段内的偏移地址,后续译码会比较简单。不同DDR3数量配置下逻辑地址的分段情况如图2的表中内容所示。
[0041] 步骤202:对每段而言,根据段内偏移地址和系统配置的段内偏移基地址,获得逻辑地址在该段对应的段内偏移物理bank地址,即逻辑地址对应的段内偏移物理bank号。
[0042] 分2n的情况和非2n的情况,2n的情况下是逻辑地址和物理地址一对一映射,照现有技术处理;非2n的情况下是逻辑地址和物理地址一对多映射。
[0043] 举例来说,由图2的表中内容可见,系统配置下,如果DDR3组数为1,2,4等2n的情况,则每段只包括1个物理bank,图2的表中的分段号即代表逻辑地址所属的物理bank号。
[0044] 对DDR3组数不是2n的情况,如DDR3组数为3和5的情况,每个逻辑地址的分段区间内包括多个物理bank,当前实例中,DD3数量为5的时候每段包含的物理bank数量最多,每段包括5个物理bank。
[0045] 为了区分逻辑地址对应的在该段内的段内偏移物理bank地址,本发明分别给每个物理bank设定一个偏移基地址,假定段内链表数量为n,则所需物理bank的偏移基地址个数为n-1。所以当前实例下,当DDR3数量为5时,需要的段内偏移基地址最多,个数为4,当DDR3数量为3的时候,在上述分段规则下,因为每段只包含3个物理bank,故只需2个偏移基地址。以DDR3数量等于3为例,假定上述2个偏移地址分别为a0和a1,PMAU[13:0]为PMAU在段内的偏移地址,因为每段包含3个物理bank,所以当PMAU[13:0]=a1时,该PMAU在段内的偏移物理bank地址即为2。也就是说,分区的目的就是得到以系统配置的偏移基地址进行分区划分,如以偏移基地址0,1,2来标识的分区(0-1)和(1-2),偏移地址与该偏移基地址的关系是:在每个分区(0-1)和(1-2)的任意一个分区中继续划分,以偏移基地址来标识,比如分区(0-1)中又以0.1,0.2,0.3……0.9来细化。这里需要指出的是,“0.1”等是为了方便解释说明,以数字形式来描述,实际应用中是采用地址表示的形式,类似PMAU[13:0]这种描述,此处不做赘述。
[0046] 总之,当DDR3数量为3,如果当a0<=PMAU[13:0]
[0047] 其中,9+1=10的等式中,左边第一个9表示段地址为3的所有物理bank的物理bank基地址(每段包含3个物理bank),1表示段内的偏移物理bank地址。由此可得各种配置下逻辑地址对应的段内偏移物理bank地址,也可以称为逻辑地址的所属物理bank号。
[0048] 步骤203:根据段内偏移物理bank地址获得该段内偏移物理bank地址具体的行、列的基地址。
[0049] 物理bank地址的表现形式相当于二维矩阵,找到段内偏移物理bank地址,还需要找到该物理bank地址具体的行、列基地址。在计算完逻辑地址的所属物理bank号之后,根据段内的偏移基地址与PMAU[14-n:0]的比较结果很容易就能获取该逻辑地址在所属物理bank内的偏移地址。仍以上述DDR3数量等于3为例,假定该逻辑地址的段地址为3,即PMAU[16:14]=3,且a0<=PMAU[13:0]
[0050] 需要指出的是,本发明仅以第三代DDR,即DDR3为例说明数据芯片领域内逻辑地址到物理地址的映射,从而实现外部缓存的管理,但是只要是数据芯片领域的DDR都可以采用本发明的映射方案来对外部缓存进行管理,从而快捷高效地实现译码。
[0051] 对比现有技术和本发明,以DDR3为例,现有技术逻辑地址和物理地址一对一映射,存在以下问题:
[0052] 为保证一定的缓存性能,实现时一般要求固定的逻辑地址数量,现有技术实现时,一般采用逻辑地址bit域和DDR3物理地址bit域之间的简单映射关系。例如,针对一个2G,16bit位宽的DDR3,对应的物理bank地址,行地址和burst列地址位宽分别3bit,14bit和
7bit,如果每个逻辑地址固定为2KB且逻辑地址数量固定为128K,因为DDR3每行即为2KB,所以逻辑地址即为每行的基地址,逻辑地址到物理基地址的译码方式也较为简单,采用最高
3bit对应物理bank地址,中间14bit对应行地址,最低bit低位补0即为列基地址的方法即可完成译码。然而实际使用时所需要的DDR3的数量往往不是2的整数幂,如3组。如果仍然需要采用此种简单的译码方法,对128K的逻辑地址数量,则需要19bit表征。同时,共享缓存的系统方案需求一般要求采用琏表的方式管理逻辑地址,需要将逻辑地址作为RAM的寻址指针,这样将会导致所需RAM资源浪费4倍之多。根据芯片的不同应用场景,可能要求外挂的DDR3数量可变的同时要求具备相同的可用逻辑地址数量。
[0053] 若如现有技术一样,将总的逻辑地址直接用于与物理地址的一对一映射,会浪费过多的逻辑地址,而采用本发明,由于先对总的逻辑地址分段,再按照逻辑地址段单独在段内进行逻辑地址与物理地址的映射处理,能使用最少的逻辑地址资源满足系统设计需求,如128K的逻辑地址数量,则固定使用17bit表征,从而采用本发明,最大程度的节约了系统RAM资源,而且能实现对物理地址的高效管理,主要是通过地址映射来实现地址寻址功能。
[0054] 应用实例二:基于实现本发明映射方案的映射装置。
[0055] 如图3所示,该映射装置位于缓存侧,包括:分区处理单元和映射处理单元;其中,分区处理单元用于根据当前配置的DDR数量对逻辑地址分区;映射处理单元用于根据分区后各区间段的逻辑地址分别进行逻辑地址和物理地址间的映射处理。
[0056] 这里,分区处理单元进一步用于根据DDR数量及每个DDR所包含的物理存储体bank数量得到总的物理bank数,将总的逻辑地址均分为多个逻辑地址段,且分段数为所述总的n物理bank数的所有公约数中数值为2的最大值,所述n指段内链表数量。
[0057] 这里,映射处理单元进一步用于数值为2n的情况下,使每个逻辑地址段对应一个物理bank,则为逻辑地址与物理地址的一对一映射;数值为非2n的情况下,使每个逻辑地址段对应多个物理bank,则为逻辑地址与物理地址的一对多映射。
[0058] 这里,映射处理单元在一对多映射时的一个最佳实施例为:映射处理单元用于为每个物理bank配置段内偏移基地址,所述段内偏移基地址的数量为n-1;根据所述段内偏移基地址和段内偏移地址,得到段内偏移地址对应的段内偏移物理bank地址;根据所述段内偏移物理bank地址得到对应的物理行地址和物理列地址。
[0059] 应用实例三:基于本发明的映射方案实现的译码过程。
[0060] 如图4所示为实现译码过程所采用的译码装置,图4中名词的中英文对照如下:
[0061] app_pmau_vld:待译码的逻辑地址有效指示;
[0062] app_pmau:待译码的逻辑地址;
[0063] DFF:D触发器;
[0064] compare:比较器;
[0065] pmau_fld:根据DDR组数解析出的待译码逻辑地址的分段号;
[0066] pmau_fld_offset:待译码的逻辑地址的段内偏移地址;
[0067] pmau_fld_dly1:译码后的分段后寄存;
[0068] pmau_fld_物理bank:根据段内偏移地址以及段内基地址比较后的段内偏移物理bank号;
[0069] ddr_物理bank_addr:解析出的物理bank地址;
[0070] ddr_row_addr:解析出的物理行地址;
[0071] ddr_col_addr:解析出的物理列地址;
[0072] pmau_物理bank_offset:待解析ddr逻辑地址的物理bank内部偏移地址;
[0073] cfg_物理bank_addr[i]:用户配置的用于比较的段内基地址,总个数为i个;
[0074] cfg_pmau_width:配置的PMAU长度
[0075] cfg_ddrc_num:配置的DDR组数。
[0076] 这里,需要指出的是,图4中梯形的部件都表示运算器。
[0077] 采用上述译码装置实现的译码过程(从逻辑地址到物理地址的译码)包括以下内容:
[0078] 1、首先根据用户配置的DDR组数(cfg_ddrc_num)决定输入的待译码逻辑地址的段号(pmau_fld)以及该逻辑地址所在段内的偏移地址(pmau_fld_offset)。
[0079] 2、将段内的偏移地址与用户配置的段内基地址(cfg_物理bank_addr[i])比较得出段内偏移地址在该段内具体属于第几个物理bank,即段内偏移物理bank号(pmau_fld_物理bank[2:0])以及在对应物理bank内的偏移物理地址(pmau_物理bank_offset)。
[0080] 3、根据逻辑地址的段号以及段内的偏移物理bank号计算得知逻辑地址的物理物理bank号。
[0081] 4、根据物理bank内的偏移物理地址译码得到该物理地址的行号和列号(从而得到该物理地址的具体行地址和列地址)。
[0082] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。