在网络处理系统中管理存储器的方法和系统的制作方法

文档序号:6554698阅读:175来源:国知局
专利名称:在网络处理系统中管理存储器的方法和系统的制作方法
技术领域
本发明涉及计算机网络,进一步涉及用于管理网络流量的网络处理器,尤其涉及控制点处理器与网络处理器之间的存储器管理。
计算机网络目前面临的一个问题就是交换式路由器无法满足复杂网络路由和过滤的要求。网络处理器的研发正是来满足这种需要,例如国际商业机器公司(IBM)的网络处理器(NP)。通过类似网络交换机似的连接,网络处理器可以提供优于网络交换机的控制和灵活性;可以对一帧执行并行查找操作;可以对数据包进行复杂的修改;可以进行各种层次的策略管理。多处理器的使用可以得到很高的帧处理量。
网络处理器上不应该运行高开销的操作系统。为了得到高的帧处理量,网络处理器的支持任务应减到最少。当然,还是需要分配存储器给控制网络处理器的数据结构和控制指令。同时,网络处理器还会执行一些本地应用,例如,进行帧过滤和阻断的复杂过滤应用。这些基于网络处理器的应用需要一个无需与中央控制点持续连接的存储器分配模式。而且,直接将中央处理器上运行的应用或操作系统与网络处理器上运行的数据结构或程序进行地址空间映射并不好。
因此,就需要一种方法和系统在网络处理系统中管理存储器。在不需要太大处理器开销又不需要在控制点处理器和一个或多个网络处理器之间做直接的地址空间映射的条件下,完成存储器的访问。
在一个网络处理系统中无需直接存储器映射而管理存储器的目的,是通过一个在网络处理系统中管理存储器的方法和系统实现的,该网络处理系统包括控制点处理器和多个网络处理器。具有控制点处理器组件和网络处理器组件的动态存储管理器,用来记录应用程序,通过在总线上从控制点组件向网络处理器组件传递请求而允许应用程序申请网络处理器的存储器空间。对应每个请求,网络处理器分配物理存储器,并从网络处理器组件向控制点组件返回一个表示该存储器分配的标记。该标记用来提供对物理存储器的读/写和其他访问。
本发明的目的、特征和有益效果将在下面的详细描述中将变得明显。
作为本发明特色的新颖技术特征将在所附权利要求中阐述。本发明本身,优选使用模式,及进一步的目的和有益效果,将通过下面针对所例举的实施例的详细描述并结合附图而变得明了。


图1是按照本发明一个实施例,由网络处理器管理的网络子系统的框图;图2是针对本发明一个实施例,说明帧在网络处理器中流动的简化框图;图3是针对本发明一个实施例,表现一个网络处理器的详细框图;图4是描述实施本发明方法和系统的软件框图;图5是针对本发明的一个实施例,说明在一个网络子系统中管理存储器的方法的流程图;图6是针对本发明的一个实施例,说明将软件管理树下载到网络处理器的方法的流程图。
下面就结合附图,特别是图1,对本发明一个实施例的网络处理系统加以说明。一个数据包路由交换机12与一组网络处理器14A-14C相连。网络处理器14A-14C提供了网络连接的媒体接口,此处网络连接包括多种协议,例如10base-T或100base-T的以太网连接16A-16E或其他现有技术里已知的通讯接口类型。这样,网络处理器14A可以将任何一个媒体接口收到的帧,传送到数据包路由交换机12上的端口0,并且可以对入站帧进行地址转换,响应服务质量(QoS)请求,阻断数据包,或执行任何复杂路由或帧处理功能。同样,网络处理器14A还通过出口接口从包路由交换机12的端口0上接收帧,并可以执行相同的复杂操作以将帧传送到媒体接口。控制存储器15为控制软件提供存储空间,该控制软件控制路由功能和帧处理,特别是本发明的软件管理树(SMT)动态分类器。查询ZBT静态存储器(SRAM)17为保存定长匹配树(FMT)式硬件辅助匹配树提供了快速存取存储器,并可以用来为软件管理树(SMT)或其部分提供快速存储。控制点中央处理器(CPU)11管理着网络处理器的操作和下载应用程序,分类树和其他数据。CPU11编译并创建用于下载的软件管理树(SMT)。软件管理树由CPU11上运行的应用程序创建,然后下载到与网络处理器14A-14C相连的存储器中。
图2示出网络处理器14A的简化框图。入口入队/出队/调度逻辑(EDS)27管理帧的缓存并控制着路由到交换结构22的帧。帧由入口物理MAC(媒体访问控制)多路复用器(PMM)28通过媒体接口连接接收过来,再由协议处理器25解释和处理。入口交换接口23连接到交换结构22,也可以连到另一个网络处理器或包路由交换机12。出口交换接口24从交换结构22接收帧数据并将其保存在出口数据存储器31中。协议处理器25可以进而执行分类器搜索来处理这些帧,再通过出口PMM29发送出去。
图3示出本发明一个优选实施例中网络处理器14A的详细框图。用来保存帧数据,分类树和应用数据及指令的存储器43通过控制存储判别器42与网络处理器相连,允许核心处理单元46共享对外部和内部存储器的访问。每一个核心处理单元46包含有动态协议处理单元(DPPU)44A-44B和树搜索引擎45。指令存储器47与核心处理单元46相连,用来保存驱动树搜索引擎(TSE)45的微微码(picocode)。Power PC处理器核心41管理着网络处理器单元40。软件管理树的数据和定长匹配树的数据可以被下载到存储器43中来为TSE 45提供控制。一旦该树中的一个叶子匹配,就将其加载到网络处理器单元40的内部寄存器中。TSE 45所用的树指的是静态或动态树。动态树正如其名,在处理帧时可以增量方式快速的做出变化。静态树不是以增量方式更新的,而是每次修改时需要重载树。静态树对于提供更加复杂的匹配是很有用的,例如向一个范围内的IP地址增加叶子。硬件分类器48预处理接收到的帧以准备匹配。
本发明体现了一种管理网络处理器14A-14C上存储器的方法和系统,使得CPU11上的应用程序和运行于网络处理器14A-14C上的应用程序可以分配存储器来保存控制指令,数据,和帧分类树。此存储器可以是网络处理器应用程序用的数据存储,控制点处理器应用程序用的数据存储,帧分类器用的软件管理树存储,等等。
图4表现了实施本发明方法和系统的软件模块。动态存储管理器包括两个部分,即控制点存储管理器(CPMM)53和网络处理器存储管理器64。动态存储管理器的控制点处理器组件位于与CPU12相连的存储器中,而网络处理器组件位于与网络处理器14A相连的存储器中。在CPU12中,应用程序52控制着网络处理器14A-14C执行的网络处理。在网络处理器14A-14C上为了给数据存储分配存储器,应用程序52与CPMM53中的应用编程接口(API)通讯。这些API提供对网络处理器14A-14C上存储器的分配和重分配服务,以及读/写访问服务和请求存储器状态信息如剩余空间。API还可以提供快速或低速分配存储器的选择并将操作在网络处理器14A-14C中从一个存储器传递到另一个存储器。不象操作系统中的一般过程调用或一般存储器分配模式,如AIX(IBM制造)或U NIX,动态存储管理器中的API不是同步的。
为了在不延误应用程序的执行或中断网络处理器14A-14C的处理的前提下提供分配服务,分配和访问请求的响应是异步的,事务处理之后结果报告再传给网络处理器14A-14C。动态存储管理器还支持多点广播式的存储分配和访问,此时多个网络处理器会被指定给一个请求。例如多点广播API允许CPU12在一特定网络处理器14A-14C子集上分配(存储)空间和写数据,对应一组单一的操作一个单一的分配调用和一个单一的写入调用。当收到全部响应或当有错误(包括由于一个或多个网络处理器不响应而造成的超时)发生,动态存储管理器通过CPMM53通告控制点处理器应用程序52。
为了完成异步操作和管理应用程序的数据,动态存储管理器提供了Register()和De-Register()API。应用程序在动态存储管理器(DMM)注册,建立一个记录这些应用程序分配请求的表。当应用程序调用De-Register()时,DMM等待未结束的请求直到超时,然后删除所有应用程序拥有的标记。
动态存储管理器控制点处理器组件(动态存储管理器在CPU12中驻留的部分)支持的操作有Register()和De-Register()API,还有Read(),Write(),Resize(),Allocate()和Deallocate()API。另外的查询可以提供空闲存储的值和不同访问速度的存储器的可用性的信息。例如,控制点处理器应用程序准备下载一个会被经常用到的帧处理算法的时候,会希望确定在快速芯片上存储器中是否有足够的空闲字节来存储代码执行该算法。CheckMemoryAvailability()API就是为此目的提供的。
表示存储器操作的数据包在连接CPU12和网络处理器14A-14C的总线上传送。设备驱动程序54对请求所需的信息进行打包,即写请求所需的标记和数据,提供对总线接口55的刺激。连接网络处理器和CPU12的总线可以是以太网连接,光纤通路连接或其他可以双向通信的接口。
在网络处理器14A中,总线数据包由总线接口62接收并由导向单元处理器63解码,其再将封装在数据包中的请求传递给动态存储管理器64的网络处理器组件。动态存储管理器然后可以分配或访问与网络处理器相连的存储器43。SMT下载工具65为下载到网络处理器14A的SMT分配存储单元。表初始化控制66为动态存储管理器的网络处理器组件64建立框架结构。所建的表记录存储单元的分配和传给应用程序的标记,并提供数据来将接收的标记信息转换成指针以便访问网络处理器中的物理存储位置。在网络处理器中执行的应用程序68利用这些机制也可以分配和访问存储器,这样在CPU12上运行的应用程序和网络处理器上运行的应用程序之间就提供了一个通用的接口。
通过使用单一标记引用一个应用程序创建的特定数据,运行在不同的处理器上的多个应用程序或多个实例可以引用同一数据,即使该数据位于不同的存储器中的单独的地址上。例如,删除一个在多个处理器中分配保存了的特定记录的请求可以广播到所有的处理器。回收工作会在由该记录的处理器上进行,在没有该记录的处理器上失败。存储操作的结果通过应用程序注册时提供的回调机制返回给应用程序。回调由动态存储管理器实现为每个目标网络处理器提供标记和结果。应用程序中的回调例程就可以确定早些时候以异步方式排入队列的操作的结果。标记的使用提供了一种使应用程序可以确定哪些请求完成了哪些未完的机制。
根据与指定标记相关的未完成请求的状态,动态存储管理器还可以阻断请求。例如,如果分配请求未完成,写操作就应当被阻断,因为物理位置还没有指定,并且还没有写数据的目标。
图5表现了根据本发明一个实施例网络处理系统中管理处理器方法的流程图。应用程序在动态存储管理器注册(步骤70),动态存储管理器建立应用程序引用表(步骤71)。然后应用程序就可以请求分配存储器(步骤72),该请求通过总线传送到一个或多个网络处理器(步骤73)。在网络处理器子系统中分配物理存储器并将对映该存储单元的标记返回(74)。分配请求的响应从网络处理器返回并被动态存储管理器收集起来(步骤75)。应用程序然后就被告知该分配的结果(步骤76)。
图6表现了根据本发明一个实施例下载SMT的方法的流程图。SMT下载工具65为下载的SMT提供存储分配,并且在下载新的SMT时提供为维持帧分类操作而使用的多个存储分配。新的SMT在CPU 11建立(步骤80),如其已经在运行则停止分类计时器(步骤81)。这样避免CPU11或网络处理器14A-14C上运行的应用程序在新的SMT下载过程中对SMT进行任何的增加或修改。检查新的SMT确认是否规则变化发生从而需要下载新的SMT(步骤82),如果不是则过程结束。如果需要下载SMT,通常会先将其下载到慢速存储器中(步骤83),因为高速存储器是有限资源可能没有足够的高速存储器(网络处理器40中的内部存储器或外部存储器43如ZBT SRAM 17)。
指向网络处理器帧处理器TSE45的活动SMT的存储单元的指针改变到指向新下载的SMT(步骤84)。然后旧SMT被从高速存储器中清除(步骤85)。新SMT的另一份拷贝被下载到高速存储器(步骤86)。最后,活动分类树指针被修改指向高速存储器中的新的SMT拷贝(步骤87),SMT被从慢速存储器中清除(步骤88),然后分类计时器被重启动(步骤89)。这样就在不中断TSE 45的操作同时又最大限度的保留了高速存储器的可用空间的条件下,完成了SMT的更新。如果SMT没有临时在慢速存储器中被使用,则高速存储器就必须更大以容纳旧SMT和新SMT,否则在下载进行的时候TSE45的操作就会被中断。
完成本发明的方法,不必进行两次下载。例如,SMT下载可能发生在所有存储器可以被同一速度访问的网络处理系统中。这种配置中,一次下载执行后活动指针就会指向新SMT的位置,因为恢复旧SMT位置不会得到更多好处。
虽然阐述本发明的优选实施例是在一个单独CPU和多个网络处理器的配置下,但本发明可以在拥有多个CPU和单一网络处理器或其他变化的系统中实施,来提供网络路由和处理的控制。本领域技术人员应该理解,在不背离本发明的实质和范围的前提下,可以进行各种形式和细节上的变化。
权利要求
1.一种在网络处理系统中管理存储器的方法,该网络处理系统具有一个控制点处理器,它经过总线与至少一个网络处理器相连,所述方法包括以下步骤提供一个控制点处理器组件;在所述至少一个网络处理器上提供一个网络处理器组件;向所述控制点处理器组件注册一个应用程序;通过在所述总线上从所述控制点处理器组件向所述网络处理器组件发送一个请求的方式,请求分配所述至少一个网络处理器上的存储空间;响应所述请求,在所述至少一个网络处理器的存储器上分配物理存储器,并从所述网络处理器组件向所述控制点处理器组件返回表示所述分配的标记,以提供对所述物理存储器的读/写访问。
2.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于所述存储器的分配是用来下载软件管理树,而且所述返回步骤返回一个用于建立所述软件管理树的标记。
3.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于所述存储器的分配是用来向软件管理树增加一个元素,并且所述返回步骤返回对应向所述软件管理树增加的元素的标记。
4.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于所述至少一个网络处理器包括多于一个的网络处理器,所述请求步骤请求分配所述多于一个的网络处理器上的存储器,并且所述方法进一步包括如下步骤从所述多于一个的网络处理器收集响应;等待直到从每个所述多于一个的网络处理器收到响应或发生超时;响应所述等待的结束,通知所述应用程序所有所述请求已经完成。
5.根据权利要求4所述的在网络处理系统中管理存储器的方法,其特征在于所述通知步骤是通过一个回调机制完成,该机制回调所述应用程序中的回调例程,其中所述回调例程的地址作为所述注册步骤的一部分由所述应用程序提供。
6.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于,所述方法进一步包括如下步骤通过在总线上从所述控制点处理器组件到所述网络处理器组件的传输中提供所述标记,请求数据值写入对应所述分配的位置;以及响应接收所述传输,写所述数据值到所述位置。
7.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于,进一步包括如下步骤通过在总线上从所述控制点处理器组件到所述网络处理器组件的传输中提供所述标记,请求从对应所述分配的位置读数据值;以及响应接收所述传输,从所述位置检索所述数据值并将所述数据值返回给所述控制点处理器组件。
8.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于,所述请求包含一个表示选择分配高速存储器的值,并且所述分配步骤依照所述值分配所述网络处理器组件上的高速存储器。
9.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于,所述方法进一步包括拒绝所述分配直到未完操作结束的步骤。
10.根据权利要求1所述的在网络处理系统中管理存储器的方法,其特征在于,所述方法进一步包括如下步骤从所述至少一个的网络处理器发出存储器可用性信息的请求,其中所述请求指定存储器速度类别,并且所述请求通过总线传送到所述至少一个的网络处理器;以及响应所述请求,从所述至少一个的网络处理器通过所述总线返回所述存储器可用性信息。
11.一种存储器管理系统,所述系统包括控制点处理器;至少一个网络处理器;连接所述控制点处理器和所述至少一个网络处理器的总线;所述控制点处理器中的控制点处理器组件,其中应用程序可以注册访问所述至少一个网络处理器中的存储器,并且请求分配所述至少一个网络处理器中的存储器,且其中所述请求通过所述总线在所述控制点处理器和所述至少一个网络处理器间传输;以及位于所述至少一个网络处理器中的网络处理器组件,用来分配物理存储器,并且以从所述总线接收请求和通过所述总线向控制点处理器组件返回表示所述分配的标记的方式,提供对所述物理存储器的访问。
12.根据权利要求11所述的存储器管理系统,其中所述存储器的分配用来下载软件管理树,所述网络处理器组件返回标记来建立所述软件管理树。
13.根据权利要求11所述的存储器管理系统,其中所述存储器的分配用来向软件管理树增加元素,且所述网络处理器组件返回对应向所述软件管理树中增加的元素的标记。
14.根据权利要求11所述的存储器管理系统,其中所述至少一个的网络处理器包括多于一个网络处理器,其中所述控制点处理器组件请求分配所述多于一个的网络处理器上的存储器,并且所述控制点处理器组件进而收集从所述多于一个的网络处理器发来的响应,等待直到从每个所述多于一个的网络处理器收到响应或发生超时,响应所述等待的结束,通知所述应用程序所有所述请求完成。
15.根据权利要求14所述的存储器管理系统,其中所述通知是通过一个回调机制完成,该机制回调所述应用程序中的回调例程,其中所述回调例程的地址作为所述注册步骤的一部分由所述应用程序提供。
16.根据权利要求11所述的存储器管理系统,其中所述应用程序通过在总线上从所述控制点处理器组件到所述网络处理器组件的传输中提供所述标记,请求将数据值写入对应所述分配的位置,并且对应所述网络处理器组件接收到所述传输,所述网络处理器将所述数据值写到所述位置。
17.根据权利要求11所述的存储器管理系统,其中所述应用程序通过向所述控制点处理器组件提供所述标记,请求从对应所述分配的位置读数据值,所述控制点处理器组件通过总线将所述请求传输给所述网络处理器组件,响应接收的所述传输,所述网络处理器组件从所述位置检索所述数据值然后通过所述总线将所述数据值返回给所述控制点处理器组件。
18.根据权利要求11所述的存储器管理系统,其中所述请求包含一个表示选择分配高速存储器的值,并且所述分配步骤依照所述值分配所述网络处理器组件上的高速存储器。
19.根据权利要求11所述的存储器管理系统,其中所述控制点处理器组件拒绝对所述分配的访问直到未完操作结束。
20.根据权利要求11所述的存储器管理系统,其中所述应用程序请求所述至少一个的网络处理器中的存储器可用性信息的,其中所述请求指定存储器速度类别,其中所述请求通过总线传送到所述至少一个的网络处理器,并且响应所述请求,所述网络处理器组件从所述至少一个的网络处理器通过所述总线返回所述存储器可用性信息。
全文摘要
一种网络处理系统中的存储器管理的方法和系统,用来分配通过总线与控制点处理器相连的网络处理器中的物理存储区域。此分配模式提供了一个无需完整操作系统接口的存储器管理层并支持异步完成分配请求。支持多点广播分配允许对多个网络处理器同时提出分配请求。分配机制返回标记,通过总线上的协议该标记可以用来访问存储器位置,并且单一标记可以引用实际物理地址和存储器配置不同的几个网络处理器上的分配。
文档编号G06F12/00GK1320867SQ0111626
公开日2001年11月7日 申请日期2001年4月9日 优先权日2000年4月10日
发明者安东尼·马缔奥·加罗, 西塔·哈里哈兰, 马克C·海缔斯, 斯里德哈·劳, 克林·比顿·维瑞利, 盖尔·艾林·伍德兰德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1