用于在多处理器系统中共享存储器的方法和装置制造方法及图纸

技术编号:2822712 阅读:157 留言:0更新日期:2012-04-11 18:40
用于共享存储器的一种多处理器系统(100)包括存储器(102),以及两个或多个处理器(104)。编程所述处理器以在所述处理器之间建立(202)存储器缓冲池,并且为每一个存储器缓冲池建立(204)缓冲区指针阵列,指向相应的存储器缓冲区。进一步编程所述处理器,对每一个缓冲区指针阵列,为拥有存储器缓冲池的处理器建立(206)消耗指针,并且为共享所述存储器缓冲池的另一个处理器建立(206)释放指针,每一个指针最初都指向所述阵列的预定位置,根据被消耗和被释放的缓冲区调节(208-236)消耗指针和释放指针。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般的涉及多处理器系统,更具体地涉及一种用于在多处 理器系统中共享存储器的方法和装置。
技术介绍
典型地,在处理器间共享存储器采用信号量方式完成,信号量是 一种在多处理环境中限制访问共享存储器的经典方法。信号量经常由API (应用程序接口)以库调用的方式来管理。对于实时应用(例如流视频)来说,该类调用耗时太长,从而影响到终端用户可以察觉到的 应用的性能。因此,产生了在多处理器系统中提高共享存储器应用的性能的需要。
技术实现思路
根据本专利技术的实施方式提供了一种用于在多处理器系统中共享存 储器的方法和装置。在本专利技术的第一实施方式中,描述一种用于在多处理器系统中共 享存储器的方法。该方法具有以下步骤,为两个或多个处理器建立存 储器缓冲池,并为每个存储器缓冲池建立指向相应的存储器缓冲区的 缓冲区指针的阵列。该方法还包括以下步骤,对于每个缓冲区指针的 阵列,为拥有存储器缓冲池的处理器建立消耗指针,以及为共享所述 存储器缓冲池的另一个处理器建立释放指针,每个指针最初都指向阵 列的预定位置。该方法还包括根据已消耗和已释放的缓冲区来调节消 耗指针和释放指针的步骤。在本专利技术的第二实施方式中,多处理器系统具有用于共享存储器 的计算机可读存储介质。该存储介质有计算机指令,用于在处理器间 建立存储器缓冲池,以及为每一个存储器缓冲池,建立缓冲区指针的 阵列,该缓冲区指针指向对应的存储器缓冲区。该存储介质进一步包 括计算机指令,用于在每一个缓冲区指针的阵列为拥有存储器缓冲池的处理器建立消耗指针,和为共享所述存储器缓冲池的另一个处理器 建立释放指针,每个指针最初都指向阵列的预定位置。存储介质进一 步包括计算机指令,用于根据已消耗和已释放的缓冲区来调节消耗指 针和释放指针。在本专利技术的第三实施方式中,用于共享存储器的多处理器系统具 有存储器,和两个或多个处理器。对处理器进行编程以在处理器间建 立存储器缓冲池,并为每个存储器缓冲池,建立指向相应存储器缓冲 区的缓冲区指针的阵列。进一步对处理器进行编程,以对于每一个缓 冲区指针阵列,为拥有存储器缓冲池的处理器建立消耗指针,并为共 享所述存储器缓冲池的另一个处理器建立释放指针,每个指针最初都 指向阵列的预定位置。进一步对该处理器进行编程,以根据已消耗和已释放的缓冲区来调节消耗指针和释放指针。 附图说明图1是根据本专利技术一个实施方式的多处理器系统的框图。 图2是根据本专利技术一个实施方式的图1中的每一个处理器所使用 的存储器缓冲池的框图。图3示出了根据本专利技术的一个实施方式的多处理器系统的每一个 处理器中的操作方法的流程图。具体实施例方式虽然说明书归纳了权利要求,该权利要求限定了被认为具有新颖 性的本专利技术实施方式的特征,但应该认为,结合附图,仔细研究以下说明,将更好地理解本专利技术的实施方式,其中,延续相同的附图标记。 图1是根据本专利技术的一个实施方式的多处理器系统100的框图。多处理器系统100包括一存储器102和两个或多个处理器104。存储器 102可以是任何传统的存储设备,例如大容量存储器磁盘驱动器、RAM、 SRAM、 DRAM、 Flash,和/或类似的可读写存储介质。处理器104可 以是任何传统的计算技术,例如微处理器,和/或DSP (数字信号处理 器)。根据本专利技术的多处理器系统100,可以被任意数量的传统设备所 使用,该类传统设备包括无限制的移动电话、PDA (个人数字助理)、 膝上电脑和台式电脑,仅仅提及很少的一些。多处理器系统100也可 操作任何使用多处理器资源的传统软件应用。图3示出了根据本专利技术的一个实施方式,描述用于在所述处理器 104之间共享存储器的多处理器系统IOO的每一个处理器104中使用的 方法200的流程图。方法200从步骤202开始,如图2中所示,每一 个处理器104都建立存储器缓冲池IIO和120。在步骤204,为每一个缓冲池建立一个指向相应存储器缓冲区的缓冲区指针的阵列。在步骤 206,在该共享池描述符区域,分别被描述为Fr_Buff—Rel—Ptr (空闲缓 冲区释放指针)和Fr_Buff—Cons—Ptr (空闲缓冲区消耗指针)的释放和 消耗指针依次引用这些阵列。共享池描述符还可以包括缓冲区尺寸和 缓冲区计数。缓冲区尺寸指示每个存储器缓冲区的存储容量(以字节、 字、长字或其它),缓冲区计数指示在存储器缓冲池中有多少缓冲区 指针和对应的存储器缓冲区可用。最初,每一个释放和消耗指针都指向缓冲区指针阵列的一个预定 位置。在本实例中,指针指向阵列的开始处。然而应该理解,也可以 使用阵列中的其它开始点。图2中的缓冲池可以在处理器104间被共 享,或被内部地消耗。因此,在步骤208,每一个处理器104都做出存 储器池是被内部使用的还是被共享使用的确定。如果被共享,处理器 104继续执行步骤210,以确定消耗指针是否指向空值。本文中,空值是指一个不存在或不可用的指针。对于本领域技术人员,显然可以将 表示空值的任何技术应用于本专利技术。当诸如这样的条件被检测到时, 表示存储器缓冲池满(即,不存在可用的空闲存储器)。在这种情况下,可以重新对处理器104编程来重复步骤208至210,直至释放一个 或多个存储器缓冲区。另一方面,如果检测到一个可用的缓冲区指针,处理器继续执行 步骤212,将缓冲区指针读到其内部存储器中,以确定在何处访问存储 器缓冲区。为确认该存储器缓冲区的消耗,处理器104继续执行步骤 214,将刚从缓冲区指针阵列中读取的缓冲区指针无效,然后递增消耗 指针216。根据需要的缓冲区的数量,处理器104将步骤210至216重 复执行需要的次数,(依据缓冲区计数取模的方式)。 一旦处理器104 已经获得了它所需要的所有存储器缓冲区,继续执行步骤218,与另一 个处理器104共享缓冲区指针和与之关联的存储器缓冲区。可以使用 任何用于共享存储器与其它处理器104 (例如消息缓冲区一未示出)通 信的方式。一旦另一个处理器104已经消耗了共享存储器(即,已经在共享 存储器上执行了所有需要的任务,并且不再需要共享的存储器缓冲 区),继续执行步骤220,将由释放指针(如在步骤214由具有存储器 池的处理器104所创建的)指向的空值替换为提供给所述处理器104 的共享缓冲区指针。对于每一个由共享缓冲区指针替换的空值,释放 指针递增到缓冲区指针阵列的下一位置。重复执行步骤220至222至 所需要被释放(空闲)的缓冲区指针数量的次数。这样,因为在处理器104间共享了缓冲区指针和与之对应的存储 器缓冲区,接收该共享存储器的接收方处理器,在不再使用所述存储 器时,立刻自主地补充该共享存储器。刚刚描述的在处理器104之间 消耗和释放缓冲区的自主动作,比利用时间消耗信号量库调用的现有 技术系统具有实质性的性能改进。当处理器104打算为其本身消耗存储器缓冲区时,继续执行步骤224至230。这些步骤在操作上与在步骤210至216中描述的一样。艮P , 处理器104根据需要重新获取缓冲区指针,使它们的存在无效,并且 根据重新获取到的存储器缓冲区数量递增消耗指针。在步骤232,在上 述步骤中重新获取的存储器缓冲区,被处理器104消耗。 一旦被消耗 掉,在步骤234中消耗指针就递减,用被消耗的缓冲区本文档来自技高网...

【技术保护点】
一种用于在多处理器系统中共享存储器的方法,包括以下步骤:    为两个或多个处理器建立存储器缓冲池;    为每一个存储器缓冲池,建立指向相应的存储器缓冲区的缓冲区指针阵列;    对每一个缓冲区指针阵列,为拥有所述存储器缓冲池的处理器建立消耗指针,以及为共享所述存储器缓冲池的另一个处理器建立释放指针,每个指针最初都指向所述阵列的预定位置;以及    根据被消耗和被释放的缓冲区,调节所述消耗指针和释放指针。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:沙尔贝勒克哈万德琼克哈万德刘斌
申请(专利权)人:摩托罗拉公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1