一种实现地址映射的方法及装置与流程

文档序号:16208048发布日期:2018-12-08 07:22阅读:225来源:国知局
一种实现地址映射的方法及装置与流程

本文涉及但不限于片上系统技术,尤指一种实现地址映射的方法及装置。

背景技术

双倍速率同步动态随机存储器(ddr)在服务器、计算机、多媒体及智能家居等多个领域中广泛应用,随着产品的功能增强、超高清视频及虚拟现实等技术的发展,对片上系统soc芯片的ddr的带宽要求也越来越高。

随着soc芯片的主盘(master)个数增多,多个master同时访问ddr会增加同时访问ddr同一物理存储体(bank)的概率增大,会导致ddr带宽降低,目前,相关技术尚未提出有效的解决方案。



技术实现要素:

以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本发明实施例提供一种实现地址映射的方法及装置,能够减小bank冲突的概率,提高ddr带宽。

本发明实施例提供了一种实现地址映射的方法,包括:

判断两个或两个以上主盘是否同时访问双倍速率同步动态随机存储器ddr;

当两个或两个以上主盘同时访问ddr时,根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体bank。

可选的,所述根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体包括:

将系统输入的地址与每一个物理存储体bank的起始地址和终止地址进行比对,当输入的地址落入其中一个bank的起始地址和终止地址之间时,按照第一地址映射规则在落入的bank中对输入的地址进行地址变换;和/或,

当系统输入的地址已经被使用时,按照第二地址映射规则对输入的地址进行地址反变换;和/或,

当系统输入的地址在所有bank的起始地址和终止地址外,且系统输入的地址未被使用,按照第三地址映射规则对输入的地址进行地址映射。

可选的,所述第一地址映射规则包括:

将输入的地址所落入的bank的低位插入到输入地址的第11比特和第12比特之间,将bank的输入地址中处于高位的第一相对比特和第二相对比特选出后,将未选出的其他输入地址按照一一对应的关系与从第十三比特位开始的输出地址实现映射;

其中,所述第一相对比特和所述第二相对比特从低位到高位连续排序。

可选的,所述第二地址映射规则包括:

将所述输入的地址所落入的bank的所述第一相对比特和所述第二相对比特的输出地址置0后,将输入地址从第14比特位开始与从第12比特位开始的未置0的输出地址按照一一对应关系实现映射。

可选的,所述根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体还包括:

若进行了所述地址变换,将比所述第二相对比特高一比特位的输入地址与第12比特的输入地址进行交换;

若进行了所述地址反变换,将比所述第二相对比特高一比特位的输出地址与第14比特的输出地址进行交换。

可选的,所述第三地址映射规则包括:

确定所述输入的地址所落入的bank中,按照输入地址与输出地址比特位相同的排序实现一一对应的映射。

可选的,所述主盘为处理器时,所述方法还包括:

将指令段和/或数据段映射到不同的bank。

另一方面,本发明实施例还提供一种实现地址映射的装置,包括:判断单元和映射单元;其中,

判断单元用于,判断两个或两个以上主盘是否同时访问双倍速率同步动态随机存储器ddr;

映射单元用于,当两个或两个以上主盘同时访问ddr时,根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体bank。

可选的,所述映射单元具体用于:

将系统输入的地址与每一个物理存储体bank的起始地址和终止地址进行比对,当输入的地址落入其中一个bank的起始地址和终止地址之间时,按照第一地址映射规则在落入的bank中对输入的地址进行地址变换;和/或,

当系统输入的地址已经被使用时,按照第二地址映射规则对输入的地址进行地址反变换;和/或,

当系统输入的地址在所有bank的起始地址和终止地址外,且系统输入的地址未被使用,按照第三地址映射规则对输入的地址进行地址映射。

可选的,所述第一地址映射规则包括:

将输入的地址所落入的bank的低位插入到输入地址的第11比特和第12比特之间,将bank的输入地址中处于高位的第一相对比特和第二相对比特选出后,将未选出的其他输入地址按照一一对应的关系与从第十三比特位开始的输出地址实现映射;

其中,所述第一相对比特和所述第二相对比特从低位到高位连续排序。

可选的,所述第二地址映射规则包括:

将所述输入的地址所落入的bank的所述第一相对比特和所述第二相对比特的输出地址置0后,将输入地址从第14比特位开始与从第12比特位开始的未置0的输出地址按照一一对应关系实现映射。

可选的,所述映射单元还用于:

若进行了所述地址变换,将比所述第二相对比特高一比特位的输入地址与第12比特的输入地址进行交换;

若进行了所述地址反变换,将比所述第二相对比特高一比特位的输出地址与第14比特的输出地址进行交换。

可选的,所述第三地址映射规则包括:

确定所述输入的地址所落入的bank中,按照输入地址与输出地址比特位相同的排序实现一一对应的映射。

可选的,所述主盘为处理器时,所述映射单元还用于:

将指令段和/或数据段映射到不同的bank。

与相关技术相比,本申请技术方案包括:判断两个或两个以上主盘是否同时访问双倍速率同步动态随机存储器(ddr);当两个或两个以上主盘同时访问ddr时,根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体(bank)。本发明实施例通过预设的地址预设规则将不同的主盘(master)的访问地址映射到不同的bank内,在多个master同时访问ddr,减小了bank冲突的概率,提高了ddr带宽。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例实现地址映射的方法的流程图;

图2为本发明可选实施例第一地址映射规则的示意图;

图3为本发明可选实施例第二地址映射规则的示意图;

图4为本发明可选实施例进行地址变换的示意图;

图5为本发明可选实施例进行地址变换的示意图;

图6为本发明实施例实现地址映射的装置的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1为本发明实施例实现地址映射的方法的流程图,如图1所示,包括:

步骤100、判断两个或两个以上主盘是否同时访问双倍速率同步动态随机存储器(ddr);

步骤101、当两个或两个以上主盘同时访问ddr时,根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体(bank)。

本发明实施例可以通过是否使能实施本发明实施例的地址映射规则,可以通过配置寄存器进行地址映射规则的存储。本发明实施例可以与相关技术中已有的地址映射方法相兼容。

可选的,本发明实施例根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体包括:

将系统输入的地址与每一个bank的起始地址和终止地址进行比对,当输入的地址落入其中一个bank的起始地址和终止地址之间时,按照第一地址映射规则在落入的bank中对输入的地址进行地址变换;和/或,

当系统输入的地址已经被使用时,按照第二地址映射规则对输入的地址进行地址反变换;这里,如果经过地址变换,假设地址1被映射到了地址2的位置,系统访问地址2,如果不进行地址反变换,则会改写地址1的数据,所以需要将地址2映射到地址1的位置;和/或,

当系统输入的地址在所有bank的起始地址和终止地址外,且系统输入的地址未被使用,按照第三地址映射规则对输入的地址进行地址映射。

可选的,本发明实施例第一地址映射规则包括:

将输入的地址所落入的bank的低位插入到输入地址的第11比特和第12比特之间,将bank的输入地址中处于高位的第一相对比特和第二相对比特选出后,将未选出的其他输入地址按照一一对应的关系与从第十三比特位开始的输出地址实现映射;

其中,第一相对比特和第二相对比特从低位到高位连续排序。

需要说明的时,处于高位为相关技术中已有的定义,例如、处于第12比特以上的地址,从低位到高位的连续排序为地址比特由小到大的排序,例如、第14比特和第15比特的地址为从低位到高位的连续排序,第25比特和第26比特的地址为从低位到高位的连续排序。

图2为本发明可选实施例第一地址映射规则的示意图,如图2所示,在输入地址的第11比特和第12比特之间插入了输入的地址所落入的bank的低位,输入的地址所落入的bank的低位通过左斜线填充的矩形表示,将bank的输入地址中处于高位的第一相对比特和第二相对比特(图2中的第27比特和第28比特)选出后,将未选出的其他输入地址按照一一对应的关系与从第十三比特位开始的输出地址实现映射。

可选的,本发明实施例第二地址映射规则包括:

将输入的地址所落入的bank的第一相对比特和第二相对比特的输出地址置0后,将输入地址从第14比特位开始与从第12比特位开始的未置0的输出地址按照一一对应关系实现映射。

图3为本发明可选实施例第二地址映射规则的示意图,如图3所示,将输入的地址所落入的bank的第一相对比特和第二相对比特(参照图2示例,为第27比特和第28比特)的输出地址置0后,将输入地址从第14比特位开始与从第12比特位开始的未置0的输出地址按照一一对应关系实现映射。

可选的,本发明实施例根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体还包括:

若进行了地址变换,将比第二相对比特高一比特位的输入地址与第12比特的输入地址进行交换。图4为本发明可选实施例进行地址变换的示意图,如图4所示,将比第二相对比特高一比特位(以图2示例的第28比特为例,比第二相对比特高一比特位为第29比特)的输入地址与第12比特的输入地址进行交换,这里,参照图2在输入地址的第11比特和第12比特之间插入了输入的地址所落入的bank的低位。

若进行了地址反变换,将比第二相对比特高一比特位的输出地址与第14比特的输出地址进行交换。图5为本发明可选实施例进行地址变换的示意图,如图5所示,将比第二相对比特高一比特位(以图2示例的第28比特为例,比第二相对比特高一比特位为第29比特)的输出地址与第14比特的输入地址进行交换,这里,参照图3在输入地址的第27比特和第28比特进行了置0处理。

可选的,本发明实施例第三地址映射规则包括:

确定输入的地址所落入的bank中,按照输入地址与输出地址比特位相同的排序实现一一对应的映射。

这里,按照输入地址与输出地址比特位相同的排序实现一一对应的映射包括:输入地址等于输出地址。

可选的,主盘为处理器时,本发明实施例方法还包括:

将指令段和/或数据段映射到不同的bank。

需要说明的是,本发明实施例处理器包括中央处理器(cpu)或图形处理器(dsp)。

本发明实施例通过预设的地址预设规则将不同的主盘(master)的访问地址映射到不同的bank内,在多个master同时访问ddr,减小了bank冲突的概率,提高了ddr带宽。

本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述实现地址映射的方法。

一种实现故障诊断的装置,包括:存储器和处理器;其中,

处理器被配置为执行存储器中的程序指令;

程序指令在处理器读取执行以下操作:

判断两个或两个以上主盘是否同时访问双倍速率同步动态随机存储器(ddr);

当两个或两个以上主盘同时访问ddr时,根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体(bank)。

图6为本发明实施例实现地址映射的装置的结构框图,如图6所示,包括:判断单元和映射单元;其中,

判断单元用于,判断两个或两个以上主盘是否同时访问双倍速率同步动态随机存储器ddr;

映射单元用于,当两个或两个以上主盘同时访问ddr时,根据预设的地址映射规则将不同主盘访问ddr的空间映射到不同的物理存储体bank。

可选的,映射单元具体用于:

将系统输入的地址与每一个物理存储体bank的起始地址和终止地址进行比对,当输入的地址落入其中一个bank的起始地址和终止地址之间时,按照第一地址映射规则在落入的bank中对输入的地址进行地址变换;和/或,

当系统输入的地址已经被使用时,按照第二地址映射规则对输入的地址进行地址反变换;和/或,

当系统输入的地址在所有bank的起始地址和终止地址外,且系统输入的地址未被使用,按照第三地址映射规则对输入的地址进行地址映射。

可选的,第一地址映射规则包括:

将输入的地址所落入的bank的低位插入到输入地址的第11比特和第12比特之间,将bank的输入地址中处于高位的第一相对比特和第二相对比特选出后,将未选出的其他输入地址按照一一对应的关系与从第十三比特位开始的输出地址实现映射;

其中,第一相对比特和第二相对比特从低位到高位连续排序。

可选的,第二地址映射规则包括:

将输入的地址所落入的bank的第一相对比特和第二相对比特的输出地址置0后,将输入地址从第14比特位开始与从第12比特位开始的未置0的输出地址按照一一对应关系实现映射。

可选的,映射单元还用于:

若进行了地址变换,将比第二相对比特高一比特位的输入地址与第12比特的输入地址进行交换;

若进行了地址反变换,将比第二相对比特高一比特位的输出地址与第14比特的输出地址进行交换。

可选的,第三地址映射规则包括:

确定输入的地址所落入的bank中,按照输入地址与输出地址比特位相同的排序实现一一对应的映射。

可选的,主盘为处理器时,映射单元还用于:

将指令段和/或数据段映射到不同的bank。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的每个模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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