【技术实现步骤摘要】
具有硬件辅助的多处理器和多线程安全消息队列
本文件一般来说涉及电子计算机和数字处理系统中的程序间和处理间通信,且更明 确地说,涉及此类使用共享存储器的通信。
技术介绍
在多个处理器交换消息时通常采用共享存储器。也就是说,当第一处理器(我们这 里将其命名为CPU)将消息写入到所述共享存储器中以使得第二处理器(我们这里将 其命名为COP)能接着从所述共享存储器读取所述消息时。维持由此交换的消息的完整性需要相对于软件执行线程以原子方式执行对消息内容的任何更新。通常使用此类共享存储器以及锁定和异步信令来实施多处理器安全消息队列。将消 息放置在共享存储器中,且接着仅在采取特定预防措施之后才对其进行读取和写入。举 例来说,建立所述消息的读取器或写入器软件线程将获得多处理器安全锁定(通常使用 旋转锁定来实施)。并且,当必要时,其还将获得单处理器多线程安全锁定(通常命 名为互相排斥锁定或互斥)。图la-c是示意性方框图,其中图la在文体上描绘所关注的一般硬件(HW)环境, 且图lb-c描绘现有技术方案中所必需的常规软件(SW)操作。通常还存在一些需要考虑的角落条件。举例来说,需要处理在尝试读取但消息队 列为空时的特殊情况,且还需要处理在尝试写入但消息队列为满时的特殊情况。异步信 令通常用于处理这些条件(例如,在对空消息队列进行第一次写入之后发消息通知以唤 醒等待读取器线程)。通常通过一个处理器中断另一个处理器且接着在中断服务程序 (ISR)内用旗语来发消息通知以唤醒阻断线程来实施此类异步信令。遗憾的是,所有这些锁定和信令机制均需要相当大的软件设计及实施努力和相当大 的运行 ...
【技术保护点】
一种用于由运行于第一计算机化处理器上的第一软件组件将消息写入到可由运行于第二计算机化处理器上的第二软件组件访问的共享存储器的方法,所述方法包含: 用所述第一软件组件尝试向消息队列写入寄存器加载消息标记,所述消息标记是所述消息的指示符或所述消息本身; 判断所述共享存储器中的消息队列中是否存在用于所述消息标记的空间,其中所述判断是由所述已发生的尝试触发且相对于所述软件组件以原子方式执行; 如果所述判断指示所述空间可用,则更新所述消息队列,其中所述更新也是相对于所述软件组件以原子方式进行的,且包括: 递增消息计数器; 将所述消息标记写入到所述消息队列中由写入指示符指定的位置处;和 将所述写入指示符改变为指向所述消息队列中的下一位置。
【技术特征摘要】
US 2006-5-25 11/420,3941.一种用于由运行于第一计算机化处理器上的第一软件组件将消息写入到可由运行于第二计算机化处理器上的第二软件组件访问的共享存储器的方法,所述方法包含用所述第一软件组件尝试向消息队列写入寄存器加载消息标记,所述消息标记是所述消息的指示符或所述消息本身;判断所述共享存储器中的消息队列中是否存在用于所述消息标记的空间,其中所述判断是由所述已发生的尝试触发且相对于所述软件组件以原子方式执行;如果所述判断指示所述空间可用,则更新所述消息队列,其中所述更新也是相对于所述软件组件以原子方式进行的,且包括递增消息计数器;将所述消息标记写入到所述消息队列中由写入指示符指定的位置处;和将所述写入指示符改变为指向所述消息队列中的下一位置。2. 根据权利要求l所述的方法,其进一步包含否则,如果所述判断指示所述空间不可用,贝U-使所述第一软件组件等待,直至所述消息队列中发生改变;且 循环回到所述尝试。3. 根据权利要求2所述的方法,其中所述第一计算机化处理器具有程序计数器,且所 述方法进一步包含在所述等待之前,准备通过以下步骤将所述第一软件组件以原子方式置于等待条 件中保存所述程序计数器的临时副本; 在所述第一计算机化处理器中停用中断;和 将所述程序计数器设置为满处理机子方法;且 其中所述判断包含所述满处理机子方法,且包括 保存所述临时副本的本机副本;将与所述第一软件组件相关联的写入旗语放置在等待列表中; 在所述第一计算机化处理器中启用中断;阻断所述第一软件组件,直到发信号通知所述写入旗语为止;和将所述第一计算机化处理器中的所述程序计数器设置回到所述本机副本,借此 返回到所述(a)。4. 根据权利要求1所述的方法,其进一步包含在所述更新之后,中断在所述第二计 算机化处理器上运行的所述第二软件组件以在所述第二计算机化处理器上启用读 取操作。5. 根据权利要求4所述的方法,其中所述中断包括发信号通知处于等待列表中最上方的读取旗语; 从所述等待列表中移除所述处于最上方的所述读取旗语;和 使所述第二计算机化处理器的控制返回到所述第二软件组件。6. 根据权利要求4所述的方法,其中所述中断包括判断等待列表中是否存在预设量的读取旗语,且如果存在,贝U:发信号通知所述等待列表中的所有所述读取旗语,且从所述等待列表中移除所有所述读取旗语;和 使所述第二计算机化处理器的控制返回到所述第二软件组件。7. —种用...
【专利技术属性】
技术研发人员:格克汗阿夫卡罗古拉里,
申请(专利权)人:辉达公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。