[发明专利]一种共享数据一致性的实现方法及装置有效
| 申请号: | 200910176790.8 | 申请日: | 2009-09-22 |
| 公开(公告)号: | CN101650646A | 公开(公告)日: | 2010-02-17 |
| 发明(设计)人: | 宋建明 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 北京鑫媛睿博知识产权代理有限公司 | 代理人: | 龚家骅 |
| 地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 共享 数据一致性 实现 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种共享数据一致性的实现方法及装置。
背景技术
逻辑系统通常使用多个并行模块来提升系统性能,并行方案包括pipeline(流水线)和模块乒乓。Pipeline过程如图1所示,将一个功能模块拆分为多个步骤,每个步骤执行外部RAM(Random Access Memory,随机存取存储器)中不同的共享数据,多个步骤之间按顺序执行,执行的效果为同时对不同共享数据进行操作。模块乒乓过程如图2所示,构造多个具有相同功能的模块,多个模块并行处理外部RAM中不同的共享数据。上述两种并行方法都涉及到同时访问多个共享数据的问题,由于功能模块访问外部RAM有很大的延迟,当共享数据存放在外部RAM时保持共享数据一致性变得很困难,即如果多个进程同时对同一个共享数据操作,会造成操作结果的不可确定性。
为了克服现有技术中缺点,对于Pipeline过程可以在功能模块中增加共享数据cache(高速缓冲存储器),如图3所示;对于模块乒乓过程,可以在任一功能模块中增加共享数据cache,如图4所示。功能模块将需要使用的共享数据从外部RAM读到内部cache,由于内部cache读写延迟很小,功能模块以原子方式(读-修改-写作为一个不可打断的连续动作)操作cache。当某个逻辑模块修改共享数据,其结果立即反映到cache,其他使用该共享数据的功能模块能够立即得到新数据,从而保证数据一致。
然而,增加共享数据cache的方案实现复杂,尤其是功能模块很多时做到数据同步的复杂性会增大很多;另外,因为要将整个共享数据移到内部cache,内部RAM的大小必须与外部数据相同,占用逻辑资源很多。
发明内容
本发明提供了一种共享数据一致性的实现方法及装置,使一个共享数据在同一时刻只能被一个功能模块调用。
本发明提供了一种共享数据一致性的实现方法,应用于包括至少两个处理模块,和锁模块的装置中,所述方法包括以下步骤:
所述锁模块预先建立占用资源表,所述占用资源表用于存储被占用的共享资源对应的资源ID;
所述处理模块向所述锁模块发送访问请求,所述访问请求中携带要访问的共享资源对应的资源ID;
所述锁模块根据要访问的共享资源对应的资源ID在所述占用资源表中进行匹配查找,如果所述占用资源表中没有所述资源ID,则所述资源ID对应的共享资源没有被其他处理模块使用,将所述资源ID添加到所述占用资源表中,并返回加锁成功,如果所述占用资源表中有所述资源ID,则所述资源ID对应的共享资源正被其他处理模块使用,返回加锁失败;
所述处理模块接收所述锁模块返回的结果,当返回结果为加锁成功,则对所述共享资源进行调用,如果返回结果为加锁失败,则不对所述共享资源进行调用。
其中,还包括:
所述锁模块接收处理模块发送的解锁请求,所述解锁请求中携带需解锁的共享数据对应的资源ID;在所述占用资源表中查找到所述资源ID,将所述资源ID删除。
其中,所述锁模块根据要访问的共享资源对应的资源ID在所述占用资源表中进行匹配查找,具体包括:
将所述访问请求中的共享资源对应的资源ID与存放在所述占用资源表中的已存在共享资源对应的资源ID比较,如果有相同,则加锁失败;如果不相同,再判断所述占用资源表中是否还有空间,如果有空间则分配一个空闲空间存放新的共享资源对应的资源ID,返回加锁成功和分配的锁ID,如果没有空间则返回加锁失败。
其中,还包括:
所述锁模块接收处理模块发送的解锁请求,所述解锁请求中携带需解锁的共享数据对应的锁ID,将所述锁ID对应的资源ID删除。
其中,还包括:
当多个处理模块同时申请对同一个共享资源时,根据处理模块的优先级选择其中一个,对于未被选中的处理模块直接返回加锁失败,对于被选中的处理模块的访问请求根据要访问的共享资源对应的资源ID进行匹配查找。
本发明提供了一种共享数据一致性的实现装置,包括至少两个处理模块,和锁模块,
所述处理模块,与所述外部存储模块连接,用于向所述锁模块发送访问请求,所述访问请求中携带要访问的共享资源对应的资源ID,并接收所述锁模块返回的结果,当返回结果为加锁成功,则对所述共享资源进行调用,如果返回结果为加锁失败,则不对所述共享资源进行调用;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910176790.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:字节码运行平台的可定制方法和装置
- 下一篇:电磁屏蔽声表面波触摸屏





