用于存储器地址对准的方法和装置的制造方法

文档序号:8502136阅读:509来源:国知局
用于存储器地址对准的方法和装置的制造方法
【技术领域】
[0001]本公开内容涉及存储器管理。更特别地,本发明涉及存储器地址对准。
【背景技术】
[0002]目前,许多设备正在利用处理器以执行系统的功能中的一些功能。这样的设备可以包括通用计算机、网络处理器、网络接口卡和本领域普通技术人员已知的其它系统。为了使处理器能够执行功能,提供了与处理器通信地耦合的存储器以保持各种数据,例如,由处理器执行的指令、待处理的数据、暂时数据和其它数据。
[0003]为了支持存储器的管理,通常提供基于硬件的页面分配器(下文为自由页面分配器(FPA))。FPA使用包含指向自由存储器的一系列指针的数据结构(下文为逻辑栈),例如,链接列表、堆。可以有在FPA中的用于提供服务质量、虚拟化或者其它特征的多个逻辑栈。硬件或者软件实体通过请求来自FPA的指针来接收指针。FPA从多个逻辑栈之一读取(下文为取出)指针。指针指向存储器(下文为缓冲器)的一部分的基地址,实体可以将该部分用于某个目的。在不再需要缓冲器时,实体将返回地址指针(RAP)返回到FPA以向逻辑栈返回以用于由另一实体最终重用。由于这一重用,FPA向逻辑栈反馈(下文为推送)的指针(栈式地址指针,(SAP))必须再次指向缓冲器的基地址,从而使得它可以以后被分配到另一实体。
[0004]如本领域中所知,根据一种方法,RAP是指向待释放的缓冲器的基地址的指针。这允许FPA将指向RA的指针直接推送到逻辑栈上,换而言之,指向RA的指针与SAP相同。这一方法的问题是返回实体可能仅有“不透明指针”,该不透明指针指向在待释放的缓冲器以内某处的地址而未指向缓冲器的开头。因而,实体可能不知道如何恰当地计算RA。另外,如果返回实体不知道如何计算指向RA的指针,则在其中FPA具有不同大小的多个逻辑栈的系统中,返回实体可能必须保持对从其指派指针的并且因而指针必须被返回到的逻辑栈的跟踪,并且为多个逻辑栈中的每个逻辑栈不同地执行计算。
[0005]根据另一种方法,RAP是指向在待释放的缓冲器内某处的地址的指针。在返回这样的RAP时,实体(即,软件层)可能必须保持对从其指派指针的并且因而指针必须被返回到的逻辑栈的跟踪,并且进一步为多个逻辑栈中的每个逻辑栈不同地执行将RAP翻译回成SAP的计算。这样的方法花费指令,并且可能需要硬件区域以存储和发送变量、保持对在硬件实体之间的逻辑栈的跟踪直至它最终地到达FPA。因而,在本领域中需要一种提供对以上认识到的问题的解决方案以及附加优点的方法和体现该方法的装置。

【发明内容】

[0006]在公开内容的一个方面中,公开了一种根据所附独立权利要求的用于存储器地址对准的装置和方法。在从属权利要求中公开了附加方面。
【附图说明】
[0007]这里描述的前述方面将通过参照在与附图结合进行时的以下描述而变得更容易地清楚,在附图中:
[0008]图1描绘了根据本公开内容的一个方面的概念数据结构,该概念数据结构包括用于由自由页面分配器(FPA)构造的自由指针池的逻辑栈;
[0009]图2描绘了根据本公开内容的一个方面的自然地对准的多个缓冲器的示例性结构;以及
[0010]图3描绘了根据本公开内容的一个方面的支持存储器地址对准的主要单元的框图。
[0011]未重复对在各图之中的相似结构单元的描述,相似单元具有不同在于100的整数倍的标号,即,图1中的标号102在图2中变成标号202 ;除非明确地指出不同和/或备选方面。相同标号的不同实例被向标号追加的数(即,100_1)区分。任何未引用的双箭头线指示在描绘的实体之间的可能信息流。
【具体实施方式】
[0012]除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与由本发明所属领域普通技术人员普遍地理解相同的含义。还将理解,应当将术语(比如在常用字典中定义的术语)解释为具有与它们在相关领域和本公开内容的上下文中的含义一致的含义。
[0013]如这里所用,单数形式“一个/ 一种”和“该”旨在于也包括复数形式,除非上下文清楚地另有指示。还将理解,术语“包括”在本说明书中被使用时指定存在陈述的特征、整体、步骤、操作、单元和/或部件,但是未排除存在或者添加一个或者多个其它特征、整体、步骤、操作、单元、部件和/或其组合。术语“和/或”包括关联的列举的项目中的一个或者多个项目中的任何和所有组合。
[0014]可以参照一个或者多个示例性配置举例说明各种公开的方面。如这里所用,术语“示例性”意味着“用作示例、实例或者举例说明”而不应必然地被解释为比这里公开的其它配置优选或者有利。
[0015]这里将参照附图描述本发明的各种方面,除非明确地指出,这些附图是本发明的概念配置的示意图示。提供本公开内容的各种方面以使本领域普通技术人员能够实践本发明。对贯穿本公开内容呈现的各种方面的修改将容易为本领域普通技术人员所清楚,并且这里公开的概念可以被延伸到其它应用。
[0016]图1描绘了包括逻辑栈100的概念数据结构,自由页面分配器(FPA)硬件在存储器102中构建该逻辑栈以包含多个指针104。指针104以页面106为单位被推送到逻辑栈100 (S卩,写入到存储器102的适当部分)以及被从逻辑栈100取出(即,从存储器102的适当部分读取);每个页面是预定大小的存储器块。在一个实施例中,页面大小是128字节。可以有多个这样的逻辑栈以提供服务质量、虚拟化或者本领域普通技术人员已知的其它特征。以非重叠方式组织逻辑栈。
[0017]如描绘的那样,在页面106中包含由循环冗余校验(CRC) 108保护的多个指针104。多个指针104的数目依赖于页面106的大小和指针的大小。在一个方面中,指针的大小是35位,因此允许29个指针被写入到128字节页面从而留下用于CRC的9位。
[0018]第一指针页面被写入到栈基地址110,从而标识逻辑栈100的开始。栈大小由栈结束地址114界定。指针可以被写入到其中的下一自由页面的位置由栈地址112标识。由栈基地址110和栈结束地址114界定的专用于每个逻辑栈的存储器102的大小由包含FPA的设备的软件指派。
[0019]为了实现解决现有技术问题的目标,FPA根据逻辑栈中的所有指针将指向的缓冲器的对准来向指针施加某些要求。
[0020]图2描绘了自然地对准的多个缓冲器的示例性结构200。自然对准是以缓冲器的大小为模的缓冲器的起始地址是零。这样的起始地址被称为自然地对准的基地址。因此,缓冲器包括存储器202中的由自然地对准的基地址204界定并且具有指定的大小的空间。
[0021]结构200在存储器202中根据由实施FPA的设备的软件初始化的配置参数被初始化。可以有多个这样的结构200,每个这样的结构与多个逻辑块(S卩,图1的逻辑块100)之一关联。换而言之,图1的逻辑块100包含指向结构200中的缓冲器的指针。在配置参数结构中保持配置参数。在一个方面中,配置参数结构可以包括至少一个寄存器。
[0022]在一个方面中,配置参数包括例如以字节或者恒定多个字节为单位表达的缓冲器大小(BS),该BS指定结构200中的所有缓冲器的大小。在一个方面中,多个字节包括128字节,并且最大缓冲器大小是1MB。另一配置参数包括缓冲器偏移(BO),这是有符号偏移,该偏移指定在指向自然地对准的基地址204的指针与指向栈地址(该栈地址标识缓冲器206的开始)的指针之间的例如以字节或者恒定多个字节为单位的差值。该偏移的目的是满足一些软件层对跟踪缓冲器使用的需要。软件层可能需要在缓冲器中的每个缓冲器顶部的标识符;因,而该偏移保留缓冲器中的空间以用于这样的目的。因此,在软件层无需偏移时,在一个方面中,无需实施关联的资源。在另一方面中,该偏移可以通过设置BO = O而被设置成零。可选参数自然对准启用(NAE)指示是否执行公开的存储器对准或者是否将使用确定将在逻辑栈上推送的地址的不同方式,因此实现兼容性。本领域普通技术人员将理解,在无需这样的兼容性时,无需实施NAE指示符和如以下公开的关联的资源。
[0023]现在参照图3,公开了框图300,该框图描绘被描绘为块的主要单元,这些单元利用图2的结构200来支持存储器地址对准。单元包括实施块和/或块的功能的硬件或者软件实体。为了进一步阐明在框图300的和结构200的单元之间的关系,对结构200的单元的引用是在括号中。另外,为了给出数值示例,假设向池配置以下值;BS = 256字节、BO =128字节、NAE =启用和存储器(202)中的结构(200)的开始的地址(204_1)是O。本领域普通技术人员将理解,可以使用其它值,因此该示例决非限制。
[0024]硬件或者软件实体302被指派栈式地址指针(例如,多个结构(200)之一中的第二缓冲器的地址(206_2)、完成对缓冲器的使用并且返回第二缓冲器的上个寻址的字节的返回地址指针(RAP) 304,例如,RAP = 520。在一个方面中,实体302进一步提供一个结构的标识符306、形成从其指派指向地址(206_2)的指针的多个结构(200)。在这一方面中,要求实体302实施用于保持或者计算结构标识符306的资源。因此,在另一方面中,FPA存储多个结构(200)中的每个结构的开始和结束地址。因而,结构标识符306由向FPA提供RAP 304的实体302确定,该FPA在块308中比较RAP 305与用于多个结构(200)中的每个结构的开始和结束地址,这由于缓冲器不能属于多个结构(200)而造成获得结构指示符306。这节省实体302用于保持或者计算结构标识符306的资源。本领域普通技术人员将理解,在设想单个结构200时,无需实施结构的标识符306并且因此无需实施关
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1