CN1517881A - 存储器管理空闲指针库 - Google Patents

存储器管理空闲指针库 Download PDF

Info

Publication number
CN1517881A
CN1517881A CNA2003101218481A CN200310121848A CN1517881A CN 1517881 A CN1517881 A CN 1517881A CN A2003101218481 A CNA2003101218481 A CN A2003101218481A CN 200310121848 A CN200310121848 A CN 200310121848A CN 1517881 A CN1517881 A CN 1517881A
Authority
CN
China
Prior art keywords
pointer
pool
out buffer
partitioned memory
subregion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2003101218481A
Other languages
English (en)
Inventor
J-C
J-C·考尔德伦
J-M·卡亚
凌静
V·乔希
黄安国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1517881A publication Critical patent/CN1517881A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种用于管理多个指针的方法和装置。每个指针可以与诸如使用于高速网络环境中的DDRSDRAM分区存储器中的一个分区相关。所述系统和方法包括一个空闲指针库FIFO,其中预定数量的指针被分配到该空闲指针库FIFO。在将数据写入分区存储器中的一个分区时,所述系统从空闲指针库FIFO中选择一个指针,而当从分区存储器中的一个分区中读取数据时,该系统提供一个指针给空闲指针库FIFO。所述系统和方法使用空闲指针库FIFO实现自我平衡并且降低所需存储器访问量。该系统可以位于芯片上。

Description

存储器管理空闲指针库
技术领域
本发明一般涉及高速数据传送领域,而更具体地涉及管理诸如同步动态随机存取存储器(SDRAM)之类的数据存储器,该存储器分成相对小的链接分区。
背景技术
数据通信网接收并传送不断增长的数据量。数据通过网络从始发者或请求者传送到目的地,比如路由器、交换平台、其它网络或者应用程序。沿着这个路径可以有多个转接点,比如通常以分组或数据帧的形式接收数据的硬件路由器等等。在每一转接点,必须以迅速且有效的方式将数据路由到网络中的下一个位置。
高速网络系统通常使用一个存储器经由存储器数据总线或接口而连接到其它硬件网络组件。该存储器将数据保存在一组分区中,并且使用指示每个分区开始的一系列指针来定位并检索该数据。高速网络应用当前比过去大约快十倍,但是随存储器越来越大,存储器技术的效率却并未更高。
双数据速率(DDR)SDRAM数据存储器是具有大量分区和大量指针的大存储器的一个示例。较新系统中的指针数量过大,因而不能存储在DDR SDRAM芯片上,所以可用指针通常被储存在芯片外。指针由通信存储管理器管理,每当一个新的信元或分组片段(packet fragment)被建立时通信存储管理器就获得一个指针,而每当一个分区出队时返回一个指针。芯片外的指针存储要求通信存储管理器提取指针并将指针替代到芯片外位置,这会对速度、总处理能力以及整体存储器效率有不利影响。另外,SDRAM存储器通常表现出显著延迟。使得与芯片外指针存储相关的不利影响减到最少的DDR SDRAM指针管理设计可以改善原先有效的技术方案。
附图说明
现结合附图以示例而非限定性的方式说明本发明,附图中:
图1A是一个分组交换系统的概念性示意图;
图1B是说明现有技术的一个物理存储器分区示例的框图;
图2A是说明一个存储器示例的框图;
图2B呈现的是说明另一存储器示例的框图;
图2C是说明一个分区示例的框图;
图2D说明包括一个以上分区的一个FIFO缓冲器(即先进先出缓冲器)示例;
图3示出了现有技术的一个存储管理器的结构;
图4说明一种使用芯片上空闲指针库FIFO的存储器管理配置;
图5示出了诸如DDR SDRAM这类具有包括在某些分区中的空闲指针库的存储器的划分;
图6A示出了存储器中20个指针的一种64位宽的配置;
图6B示出了存储器中20个指针的一种128位宽的配置;和
图7说明了一种64字节、八个字的分区。
具体实施方式
数字通信系统通常采用传送被称为分组的数据块的分组交换系统。通常,在一则消息中发送的数据长于一个分组的大小更并且必须被分成一系列分组。每个分组由所传送的数据部分和在报头中的控制信息组成,该控制信息用于将分组通过网络而路由到其目的地。
一个典型分组交换系统100A如图1A所示。在系统100A中,传送服务器110A通过通信路径115A链接到分组交换网络120A。分组交换网络120A通过通信路径125A链接到目的地服务器130A。传送服务器110A将一则消息作为一系列分组而通过分组交换网络120A传送到目的地服务器130A。在分组交换网络120A中,分组通常经过一系列服务器。当各分组到达一个服务器时,该服务器在将该分组传送到下一服务器之前短暂地存储该分组。该分组经网络继续行进,直到其到达目的地服务器130A为止。目的地服务器130A包含在一个或多个处理芯片135上以及在一个或多个存储器芯片140A上的存储器分区。存储器芯片140A可以使用包括SDRAM在内的不同存储器技术。
为说明起见,现描述一个特定的分组交换系统实施方案。为便于说明,使用了这样一种特定的实施方案:其中,消息可以为任意长度;分组可以变化于1到64K字节,且存储器分区大小为64字节。许多实施方案可以使用具有最大分组尺寸并且存储器分区大小比64字节大的可变长度的分组。例如,可以使用两千字节或四千字节的最大分组尺寸。
分组交换系统可以通过保持分组的链接表来管理数据业务。一个链接表可以包括储存在外部存储器中各个分区内的一系列分组,使得储存在一个分区中的数据指向存储该链接表中下一数据的分区。由于数据被储存在外部存储器中,所以只使用一部分存储器分区可能浪费存储器空间。
本发明的方案意在实现这样一个分组交换系统内的有效存储器操作,不论存储器是内部还是外部的,并且本发明的方案还可应用于计算机、联网或者其它硬件存储装置,其中硬件存储装置包括但不限于是SDRAM存储器。使用SDRAM的一种典型硬件应用是临时存储分组数据的网络交换机。在以太网网络上经常用网络交换机来连接多个子网络。一个交换机接收来自一个子网络的分组数据并将该分组数据传送到另一子网络上。在接收一个分组之后,一个网络交换机可将该分组数据分成多个子分组或信元。每一信元包括附加的报头数据。如本领域公知的,以太网分组数据具有大致为1.5K字节的最大尺寸。附加的报头数据与信元相关,一个数据分组所具有的最大尺寸处于2K字节以下范围内。
在将分组数据分成信元之后,网络交换机可以在转发之前临时在SDRAM中分配一个存储缓冲器来存储分组。地址和分组数据被转译到SDRAM,SDRAM可以以不同于该交换机内其它硬件的时钟速率工作。分组数据然后被储存在该存储缓冲器中。为了转发,交换机再一次访问SDRAM以便检索该分组数据。数据存储到SDRAM中及从SDRAM中检索均会引入访问延迟。
在目前方案中,为便于分组数据的存储和检索,所使用的存储器可以被分区成为各种存储器分区。
存储器划分
图1B是说明物理存储器分区示例的框图。通常,存储器100被分成相等的固定尺寸分区,每一分区被用作一个FIFO缓冲器并被分配给一个数据流。每个数据流可以与诸如异步转移模式(ATM)装置之类的装置相关。存储器100的容量例如可以是1G字节,并且存储器100可以被分成256K个分区。这256K个分区中,每一个分区可以被固定分配给一个数据流(例如分区1分配给数据流1等),从而使每个数据流与最多一个分区相关。不存在空闲的分区。在这个示例中,每个分区长度为4K字节。这种分区技术被称为完全分区。
图2A是说明另一存储器示例及其分区的框图,其中存储器200可以被分成为多个分区。分区数量可以至少等于所支持的数据流的数量,并且分区可以具有相同尺寸。例如,存储器200的容量可以为1Gb,并且存储器200可以被划分成为16M(16×1024×1024)相等尺寸的分区,即使可能只有256K个数据流。
在本方案中,分区可以被分类成为两种虚拟组或称逻辑组,亦即专用组和共享组。例如参见图2A中的示例,可以在专用组201中有4M分区而在共享组202中有12M分区。在这里描述的分区分类涉及每个组中的分区数量。当前示例中的分区1~16M未必全部是连续地址。
每个数据流可以与一个FIFO缓冲器相关。每个FIFO缓冲器可以覆盖被分配给该数据流的多个分区。该多个分区可以连续也可以不连续。FIFO缓冲器的尺寸可以是动态的。例如,当更多分区被分配给该数据流时可以增加FIFO缓冲器的尺寸。同样地,当数据流不再需要所分配的分区时可以减小FIFO缓冲器的尺寸。FIFO缓冲器的功能是按照先进先出的方式将数据传送给经过分区的存储器。
图2B是说明存储器及其分区的另一示例的框图。在这个示例中,有三个数据流1、3和8,每一个都被分配到出自专用组201的至少一个分区。这些可以被认为是有效端口,因为每一个都具有分配的分区,并且未读数据可以存在于这些分区中。可以存在一个或多个待用端口,并且通常没有分区被分配到待用端口。
图2C是说明一个分区示例的框图。一个分区可以包括存储用户数据的数据部分和存储控制信息的控制部分。例如,分区290可以包括数据部分225,数据部分225包含用户数据。分区290的单元零(0)还可以包括一个控制部分220。有关数据的控制信息例如可以包括分组的开始、分组的结束、差错情形等。
每个分区可以包含一个指针(称为下一分区指针),该指针指向FIFO缓冲器中的下一分区。例如,分区290的第一数据单元225即可以包含下一分区指针。在FIFO缓冲器包括一个以上分区时,可用下一分区指针将一个分区链接到另一分区。当一个分区是FIFO缓冲器中的最后一个分区或者唯一分区时,该分区的下一分区指针可具有空值。
对于一个实施例,下一分区指针可以被储存在一个独立的存储器中,在分区290中留下更多存储空间用于存储数据。
单元0是前面示例结构中包含控制信息或指针的唯一单元。如图2C所示,单元1到7被专用于每个数据的8个字节。
图2D是说明包括一个以上分区的FIFO缓冲器示例的框图。该示例中的FIFO缓冲器260包括三个分区:分区290、分区290+n和分区290+m。这些分区可以连续或者不连续,并且可以是任意物理顺序。使用下一分区指针225将分区290链接到分区290+n。使用下一分区指针245将分区290+n链接到分区290+m。分区290+m的下一分区指针可以具有一个空值来指示在FIFO缓冲器260中没有其它分区。
FIFO缓冲器260可以与一个头指针250和一个尾指针255相关。头指针250可以指向数据的开始,在这个示例中它可位于FIFO缓冲器260的第一分区290中。尾指针255可以指向数据的结束,在这个示例中它可位于FIFO缓冲器260的最后一个分区290+m中。当数据从FIFO缓冲器260中被读出之时,可以相应地更新头指针250。当数据从分区290中被完全读出时,那么头指针250可以被更新为指向分区290+n中的数据开始。这可利用下一分区指针225以定位分区290+n来实现。然后可以返回分区290。
从图2B中,专用组201和/或共享组202中的分区可能还未被分配给任何数据流。这些分区被认为是空闲的或者可用的分区并且逻辑上可一起被归组到一个空闲库中。例如,当一个数据流将一个分区返回给共享组202或者专用组201时,逻辑上可以被视为被返回给该空闲库。
存储器管理
图3中说明一个原有技术的存储管理系统的示例,该系统用于管理存储器而不论其划分与否。对于图3所示系统,每当分组的一个新的信元或片段入队进入到数据缓冲器时,存储管理器即需要获得指向空闲分区的一个指针。而每当一个分区出队时,存储管理器还要返回一个指针给存储器。如图3所示,芯片301包括入队器302、出队器303、DDRSDRAM接口304和DDR SDRAM305。外部存储器306位于芯片外并且保存空闲指针,因为DDR SDRAM305的尺寸使得指针无法保存在DDRSDRAM305内。存储管理器307通常是在芯片上但也可以在芯片外,它接收表明已接收到一个新信元的指示,从外部存储器306中获得一个指针,并将该指针提供给入队器302,而入队器302使该指针和该新信元入队,并将它们放在DDR SDRAM305中的一个分区中。在出队时,出队器303获得该分区中的指针和信元,将指针提供给外部存储器以便再循环而将信元传送以便处理,该处理可以包括组合成为一个分组。因此,每当一个信元出队或入队时,外部存储器就受到访问,并且由于对外部存储器305的访问需要时间,所需的指针读写显著降低了存储器存取效率。
图4说明了一种芯片上(on-chip)实施方案,其能够改善对空闲指针的访问时间。图4展示了一个芯片401,其具有入队器402、出队器403、DDR SDRAM接口404和DDR SDRAM405。芯片401还包括位于出队器403和入队器404之间的一个空闲指针库FIFO406。
存储管理器407接收表明已接收到一个新信元的指示,从空闲指针库FIFO406获得一个指针,并且将该指针提供给入队器402,入队器402使该指针和该新信元入队并将它们放在DDR SDRAM405内的一个分区中。在出队时,出队器403获得DDR SDRAM内的该分区中的指针和信元,将该指针提供给空闲指针库FIFO406,而将该信元传送用于处理,该处理可以包括组合成为一个分组。因此,空闲指针库FIFO406起到某种平衡装置的作用,该平衡装置使得位于DDR SDRAM405上的未使用指针连续再循环。一定数量的未使用指针位于DOR SDRAM405中,并且那些指针可以被自由地送入和送出空闲指针库FIFO406。
图5说明了有N个分区的一个实例DDR SDRAM405的构成,其尺寸可以是任意的,但在本例中其尺寸为64字节。DDR SDRAM405内的空闲指针库501占用DDR SDRAM405的一定子段,并且根据如指针尺寸和DDR SDRAM或其它存储器尺寸等情况,可以使用各种尺寸,比如整个存储器的百分之五。在本例中,空闲指针库501占用N/20分区并且可以存储多达N个指针,本例中的指针尺寸为25位。因此如图3所示,在此示例中DDR SDRAM405被分成多个分区,每个分区为64字节。DDR SDRAM405的一个子段如DDR SDRAM405的百分之五包含空闲指针库501,而其余百分之九十五是被用来存储数据的分区,从而构成数据缓冲器。包含空闲指针库501的DDR SDRAM405存储器部分也被分成分区,比如64字节的分区,并且在此示例中可以存储二十个25位指针给空闲数据分区。64字节分区可以作为循环缓冲器被访问。
本领域技术人员可以理解,事实上有关这个示例所描述的所有变量或元件都是可以改变的,即尺寸或数目可以增加或降低,这包括但不限于指针尺寸、分区数目和尺寸、空闲指针库尺寸以及空闲指针库所占用的存储器百分比。本示例仅供说明,并非对所述概念的限定。
在根据前述示例的一个特定实施方案中,20个空闲分区指针可以被储存在占用DDR SDRAM405的百分之五的64字节分区中,如图6A所示。如果使用128位存储器数据总线宽度,则可以如图6B所示储存指针。存储管理器可以使用一个128位总线接口作为DDR SDRAM接口404与DDR SDRAM通信。
64字节数据分区,例如图6A和6B所示的每一单独的分区,可以被组织成八个字,每个字具有八个字节。如图7所示,数据分区的第一个字包含控制信息,包括对下一分区的一个25位指针,以及一些控制位,比如包含但是不限于分组开始、分组结束等等。其余七个字或者说56个字节则包含数据。可以用不同方式储存数据信元或分组,通常这取决于数据流的类型或者接收数据的方式。对于一个分组接分组数据流(packet-topacket flow),每个分区可以存储数据分组的一小部分即56字节。最后一个分区可以包含不足56个字节,因此在分组的最后一个分区中储存的字节数要被提供于在控制字中储存的信息中。此控制字构成该分组的第一部分。如果存储器工作于ATM(异步转移模式)信元,则无论其由输入数据流以信元到信元、分组到信元或者信元到分组的方式进行传输,每个分区储存一个完整的ATM信元,典型情况下具有52字节数据宽度。如果分组作为信元被接收并被转换成分组,则所接收到的一个ATM信元构成分区,然后那些信元可以被组合成为分组。
因此在这个示例中,芯片上空闲指针库FIFO406的芯片上空闲指针是一个125位乘32字存储器。空闲指针库FIFO406中的每一125位入口是一个空闲指针:一个可用的(或空闲的)64字节分区的存储器地址位于外部SDRAM中。空闲指针库FIFO406可以采取各种形式,但是典型的是它必须提供读写功能,因此包括两个端口;并且它必须能够储存适当数量的指针分区。能适用于前述示例的空闲指针库FIFO406的一个实施方案是一个两端口RAM,其具有存储四个指针分区或80个指针的能力。
芯片上空闲指针库FIFO406的操作如下。当一个信元或分组片段入队或储存在DDR SDRAM405中时,入队器402可以获得一个指针,该指针指示DDR SDRAM405内的一个未使用数据分区。从芯片上空闲指针库FIFO406中读取该指针。当一个信元或分组片段出队或从DDRSDRAM405中被读取时,出队器403返回或存储与出队分区相关的指针以便将来再次使用。该指针被写入芯片上空闲指针库FIFO406。当芯片上空闲指针库FIFO406的内容超出规定阈值时,比如超出容量的百分之七十五或者说超出60个指针,则入队器402将20个指针的一个数据块(一个64字节分区)返回给DDR SDRAM405中的空闲指针库。当芯片上空闲指针库FIFO406的内容低于规定阈值时,比如低于容量的百分之二十五或者说低于60个指针,则出队器403从DDR SDRAM405中的空闲指针库读取20个指针的一个数据块(即一个64字节分区)。
在开始处,一定数量的指针可以从DDR SDRAM405被载入到空闲指针库FIFO406中。对于上述示例,40个指针可以被载入空闲指针库。使用入队器402令接收到的数据入队,同时使用出队器403令被传送的数据从DDR SDRAM出队。在一个均衡环境中,在一个给定时间段上将需要并返回相等数量的指针,并且空闲指针库FIFO406因此可以不需要向DDR SDRAM405重新填充或者卸载。当某些写入单元周期未被用于入队数据分区时则空闲指针库FIFO406内容可能超过阈值。于是空闲指针库FIFO406使用一个写入单元周期将一定数量的指针写入DDR SDRAM外部空闲指针库。当某些读取单元周期未被使用来出队数据分区时则空闲指针库FIFO406内容可能下降低于阈值,于是空闲指针库FIFO406就使用一个读取单元周期从DDR SDRAM405外部空闲指针库中读取一定数量的指针。按照这种方式,为了读取或写入指针而对DDR SDRAM进行的访问以一个非常低的速率操作,比如每20个周期或更多周期才仅仅一次。
本方案可被存储控制器用于支持存储体交错(bank interleaving)。例如,实现四存储体交错的一个存储控制器可以使用四个芯片上空闲指针库FIFO406。这一方案可以用于DDR SDRAM之外的其它存储器,包括但不限于SDR SDRAM和RDRAM,或者通常具有改变分区尺寸和FIFO尺寸能力的任何存储器。
可以使用具有在此所述功能的其它硬件、软件和/或固件实现本系统。一个实施方案是具有有效排队、解析和组装能力的处理器,可能是芯片上存储器的数据存储器;但是也可使用其它硬件、软件和/或固件。
本领域技术人员应该理解,本方案可以被应用到执行入队和/或出队的其它存储器管理系统,并且不仅限于在此描述的存储器或存储器管理结构和处理/或。另外,虽然在此已经讨论了具体的硬件元件、存储类型、分区、控制字段、数据流和相关元件,但是应该理解,上述硬件元件、存储类型、分区、控制字段、数据流和相关元件可以在运用中增加或减少同时仍然处于本发明范围之内。因此,对本领域技术人员来说可以想到的所有修改、变化或等效方案都将被认为是落入所附权利要求中定义的本发明范围之内。

Claims (19)

1.一种用于管理多个指针的方法,其中每个指针都能够与分区存储器中的一个分区相关,所述方法包括:
建立一个空闲指针库先进先出缓冲器;
将预定数量的指针分配到所述空闲指针库先进先出缓冲器;
当将数据写入所述分区存储器中的一个分区时从所述空闲指针库先进先出缓冲器中选择一个指针;和
当从所述分区存储器中的一个分区中读取数据时提供一个指针给所述空闲指针库先进先出缓冲器。
2.根据权利要求1所述的方法,其特征在于所述分区存储器和所述空闲指针库先进先出缓冲器位于单个芯片上。
3.根据权利要求1所述的方法,其特征在于其中所述分配包括将来自所述分区存储器的所述预定数量的指针加以传送。
4.根据权利要求3所述的方法,其特征在于进一步包括:当所述空闲指针库先进先出缓冲器内的指针数量下降低于第一阈值时,从所述分区存储器中传送另一预定数量的指针到所述空闲指针库先进先出缓冲器。
5.根据权利要求4所述的方法,其特征在于进一步包括:当所述空闲指针库先进先出缓冲器内的指针数量增加超过第二阈值时,从所述空闲指针库先进先出缓冲器中传送另一预定数量的指针到所述分区存储器。
6.根据权利要求1所述的方法,其特征在于进一步包括:通过在所述空闲指针库先进先出缓冲器与所述分区存储器之间传送指针来定期地重新平衡保持在所述空闲指针库先进先出缓冲器内的指针的数量。
7.根据权利要求1所述的方法,其特征在于进一步包括:在其中所述建立之前,在所述分区存储器内设置一个指针库,所述指针库包含至少一个指针。
8.一种使用至少一个指针以管理分区存储器的系统,其中每个指针都与所述分区存储器中的一个分区相关,所述系统包括:
一空闲指针库先进先出缓冲器,其被配置用于保持多个指针;
一入队器,其连接到所述空闲指针库先进先出缓冲器,所述入队器被配置用于从所述分区存储器中的一个分区检索数据以及与之相关的第一指针,传送所述数据并且将所述相关的第一指针返回到所述空闲指针库先进先出缓冲器;和
一出队器,其连接到所述空闲指针库先进先出缓冲器,所述出队器被配置用于接收数据并将数据与相关的第二指针一起放置在所述分区存储器中的一个分区中,所述相关的第二指针是从所述空闲指针库先进先出缓冲器中检索的。
9.根据权利要求8所述的系统,其特征在于所述分区存储器最初包含至少一个指针。
10.根据权利要求8所述的系统,其特征在于进一步包括:所述分区存储器被配置用于当所述空闲指针库先进先出缓冲器内的指针数量下降低于第一阈值时传送第一预定数量的指针到所述空闲指针库先进先出缓冲器。
11.根据权利要求10所述的系统,其特征在于进一步包括:所述空闲指针库先进先出缓冲器被配置用于当所述空闲指针库先进先出缓冲器内的指针数量增加超过第二阈值时传送第二预定数量的指针到所述分区存储器。
12.根据权利要求8所述的系统,其特征在于所述空闲指针库先进先出缓冲器、所述入队器和所述出队器位于单个芯片上。
13.根据权利要求8所述的系统,其特征在于所述空闲指针库先进先出缓冲器和所述分区存储器通过在空闲指针库先进先出缓冲器与分区存储器之间传送指针来定期地重新平衡保持在所述空闲指针库先进先出缓冲器内的指针的数量。
14.一种使用至少一个指针以管理分区存储器的方法,其中每个指针都与所述分区存储器中的一个分区相关,所述方法包括:
从所述分区存储器传送多个指针到一空闲指针库FIFO;
接收一个信元;
使所述信元出队;
从所述空闲指针库FIFO中检索一个指针;和
将该信元的至少一部分存储到所述分区存储器中的一个分区中并且使该指针与该信元相关。
15.根据权利要求14所述的方法,其特征在于进一步包括:
从所述分区存储器中获得一个信元的至少一部分以及与该信元相关的一个指针;
使所述信元入队以便传送;和
将与所述信元相关的所述指针传送到所述空闲指针库FIFO。
16.根据权利要求14所述的方法,其特征在于所述空闲指针库FIFO和所述分区存储器位于单个芯片上。
17.根据权利要求14所述的方法,其特征在于进一步包括:当所述空闲指针库FIFO内的指针数量下降低于第一阈值时从所述分区存储器中传送另一预定数量的指针到所述空闲指针库FIFO。
18.根据权利要求15所述的方法,其特征在于进一步包括:当所述空闲指针库FIFO内的指针数量超过第二阈值时从所述空闲指针库FIFO中传送另一预定数量的指针到所述分区存储器。
19.根据权利要求14所述的方法,其特征在于进一步包括:通过在所述空闲指针库FIFO与所述分区存储器之间传送指针来定期地重新平衡保持在所述空闲指针库FIFO内的指针的数量。
CNA2003101218481A 2003-01-06 2003-12-19 存储器管理空闲指针库 Pending CN1517881A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/337,908 US20040131055A1 (en) 2003-01-06 2003-01-06 Memory management free pointer pool
US10/337,908 2003-01-06

Publications (1)

Publication Number Publication Date
CN1517881A true CN1517881A (zh) 2004-08-04

Family

ID=32681342

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2003101218481A Pending CN1517881A (zh) 2003-01-06 2003-12-19 存储器管理空闲指针库

Country Status (2)

Country Link
US (1) US20040131055A1 (zh)
CN (1) CN1517881A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106486167A (zh) * 2015-08-24 2017-03-08 Hgst荷兰公司 改进闪速存储器清除的方法和系统
CN107809395A (zh) * 2017-10-11 2018-03-16 大唐恩智浦半导体有限公司 一种电池管理系统的通信方法及电池管理系统
CN114490467A (zh) * 2022-01-26 2022-05-13 中国电子科技集团公司第五十四研究所 一种多核网络处理器的报文处理dma系统及方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065628B2 (en) * 2002-05-29 2006-06-20 Intel Corporation Increasing memory access efficiency for packet applications
US7733888B2 (en) * 2002-06-04 2010-06-08 Alcatel-Lucent Usa Inc. Pointer allocation by prime numbers
US6907508B2 (en) * 2003-02-26 2005-06-14 Emulex Design & Manufacturing Corporation Structure and method for managing available memory resources
US7159051B2 (en) * 2003-09-23 2007-01-02 Intel Corporation Free packet buffer allocation
US7802148B2 (en) * 2005-02-23 2010-09-21 Broadcom Corporation Self-correcting memory system
US8681526B2 (en) * 2008-07-02 2014-03-25 Cradle Ip, Llc Size and retry programmable multi-synchronous FIFO
WO2010126048A1 (ja) * 2009-04-28 2010-11-04 日本電気株式会社 計算機システムにおける仮想装置の高速移動システム及び管理装置並びにその方法及びそのプログラム
CN105426112A (zh) * 2014-08-28 2016-03-23 广明光电股份有限公司 固态硬盘动态调整高速缓冲区的方法
US10901887B2 (en) * 2018-05-17 2021-01-26 International Business Machines Corporation Buffered freepointer management memory system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175698A (ja) * 1993-12-17 1995-07-14 Fujitsu Ltd ファイルシステム
US6044418A (en) * 1997-06-30 2000-03-28 Sun Microsystems, Inc. Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
US6412053B2 (en) * 1998-08-26 2002-06-25 Compaq Computer Corporation System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
US6272567B1 (en) * 1998-11-24 2001-08-07 Nexabit Networks, Inc. System for interposing a multi-port internally cached DRAM in a control path for temporarily storing multicast start of packet data until such can be passed
US6301646B1 (en) * 1999-07-30 2001-10-09 Curl Corporation Pointer verification system and method
US6549995B1 (en) * 2000-01-06 2003-04-15 International Business Machines Corporation Compressor system memory organization and method for low latency access to uncompressed memory regions
US6523102B1 (en) * 2000-04-14 2003-02-18 Interactive Silicon, Inc. Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules
US20020174316A1 (en) * 2001-05-18 2002-11-21 Telgen Corporation Dynamic resource management and allocation in a distributed processing device
US6857050B2 (en) * 2002-06-10 2005-02-15 Sun Microsystemes, Inc. Data storage system using 3-party hand-off protocol to maintain a single coherent logical image
US6892284B2 (en) * 2002-09-11 2005-05-10 Intel Corporation Dynamic memory allocation for assigning partitions to a logical port from two groups of un-assigned partitions based on two threshold values

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106486167A (zh) * 2015-08-24 2017-03-08 Hgst荷兰公司 改进闪速存储器清除的方法和系统
CN106486167B (zh) * 2015-08-24 2019-11-15 Hgst荷兰公司 改进闪速存储器清除的方法和系统
CN107809395A (zh) * 2017-10-11 2018-03-16 大唐恩智浦半导体有限公司 一种电池管理系统的通信方法及电池管理系统
CN114490467A (zh) * 2022-01-26 2022-05-13 中国电子科技集团公司第五十四研究所 一种多核网络处理器的报文处理dma系统及方法
CN114490467B (zh) * 2022-01-26 2024-03-19 中国电子科技集团公司第五十四研究所 一种多核网络处理器的报文处理dma系统及方法

Also Published As

Publication number Publication date
US20040131055A1 (en) 2004-07-08

Similar Documents

Publication Publication Date Title
EP0702500B1 (en) Method of multicasting and multicast system
US6320859B1 (en) Early availability of forwarding control information
US7930451B2 (en) Buffer controller and management method thereof
US9841913B2 (en) System and method for enabling high read rates to data element lists
US7944931B2 (en) Balanced bandwidth utilization
US20010010692A1 (en) Memory organization in a switching device
CN101499956B (zh) 分级缓冲区管理系统及方法
US10055153B2 (en) Implementing hierarchical distributed-linked lists for network devices
CN1351791A (zh) 带迁移字段缓冲的结构路由器
US8312243B2 (en) Memory management in network processors
CN1517881A (zh) 存储器管理空闲指针库
CN1545658A (zh) 具有双端口存储器仿真配置的交换结构
US9785367B2 (en) System and method for enabling high read rates to data element lists
US20040049650A1 (en) Dynamic memory allocation for packet interfaces
CN100499563C (zh) 提高分组应用的存储器存取效率
US7733888B2 (en) Pointer allocation by prime numbers
US9658951B1 (en) Scalable high bandwidth memory in a network device
US7069397B2 (en) Stream based memory manager with function specific hardware logic for accessing data as a stream in memory
US9767014B2 (en) System and method for implementing distributed-linked lists for network devices
US10067690B1 (en) System and methods for flexible data access containers
CN112559401B (zh) 一种基于pim技术的稀疏矩阵链式访问系统
CN100517272C (zh) 可提升暂存管理效益的控制器及其暂存管理方法
KR100397502B1 (ko) 다중처리시스템의 프로세서 유닛간 동적 인터페이스 방법
KR20230131614A (ko) 네트워크 장비용 비휘발성 복합 메모리 및 비휘발성 복합 메모리 동작 방법
WO2013170886A1 (en) A method and device for providing a dynamic scheduling of memory accesses to a data memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication