[發明專利]一種基于處理器共享內存的數據發送、接收方法及裝置有效
| 申請號: | 200910127803.2 | 申請日: | 2009-03-23 |
| 公開(公告)號: | CN101504617A | 公開(公告)日: | 2009-08-12 |
| 發明(設計)人: | 楊煉 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F15/167 |
| 代理公司: | 北京三友知識產權代理有限公司 | 代理人: | 任默聞 |
| 地址: | 518129廣東省深*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 處理器 共享 內存 數據 發送 接收 方法 裝置 | ||
1.一種基于處理器共享內存的數據發送方法,其特征在于,所述方法包括:
將數據寫入處理器的共享內存池中的至少一內存塊;
根據所述內存塊的地址信息生成內存塊指針;
將所述內存塊指針發送給多個不同接收方;
如果所述數據發送是消息轉發,所述方法具體包括:
消息創建:從內存池獲取兩個內存塊,一個作為消息頭,另一個作為數據緩沖區;將需要發送的消息數據寫入所述數據緩沖區;
指針生成:根據所述消息頭的地址信息生成消息頭指針,根據所述數據緩沖區的地址信息生成數據緩沖區指針;向所述消息頭寫入數據緩沖區指針、父消息指針和發送任務標識,并置所述父消息指針為空;
消息發送:首先判斷所述消息頭中的發送任務標識與當前任務標識是否一致:若一致,則生成一隊列節點,在所述隊列節點中寫入所述消息頭指針后,將所述隊列節點發送到接收任務的消息隊列中;若不一致,從所述內存池獲取另一內存塊作為子消息頭,原消息頭為父消息頭,向所述子消息頭寫入數據緩沖區指針、父消息指針和發送任務標識,并置所述子消息頭中的發送任務標識為當前任務標識,所述子消息頭中的父消息指針指向所述父消息頭;最后,為所述子消息頭生成另一隊列節點,發送到接收任務的消息隊列中。
2.如權利要求1所述數據發送方法,其特征在于,
所述指針生成步驟中:根據所述消息頭的地址信息生成消息頭指針,根據所述數據緩沖區的地址信息生成數據緩沖區指針;向所述消息頭寫入數據緩沖區指針、父消息指針和發送任務標識,還寫入生存期字段,并所述生存期為0,置所述父消息指針為空;
所述消息發送步驟中:若判斷所述消息頭中的發送任務標識與當前任務標識一致,則將所述消息頭中的生存期遞增1,生成一隊列節點,在所述隊列節點中寫入所述消息頭指針后,將所述隊列節點發送到接收任務的消息隊列中;若判斷所述消息頭中的發送任務標識與當前任務標識不一致,從所述內存池獲取另一內存塊作為子消息頭,原消息頭為父消息頭,向所述子消息頭寫入數據緩沖區指針、父消息指針和發送任務標識,還寫入生存期字段,并置所述子消息頭中的發送任務標識為當前任務標識,所述生存期置1,所述子消息頭中的父消息指針指向所述父消息頭,所述子消息頭中的數據緩沖區指針等于所述父消息頭中的數據緩沖區指針,同時將所述父消息頭中的生存期遞增1;最后,為所述子消息頭生成另一隊列節點,發送到接收任務的消息隊列中。
3.如權利要求2所述數據發送方法,其特征在于,
在所述父消息頭和所述子消息頭中還寫入消息名、消息類型和數據量中的一種或多種;
如果對所述需要發送的消息進行多次轉發,則重復調用所述消息發送步驟,從而生成多個隊列節點,分別發送到不同接收任務的消息隊列中。
4.一種基于處理器共享內存的數據發送裝置,其特征在于,所述數據發送裝置包括:
數據存儲單元,用于將數據寫入處理器的共享內存池中的至少一內存塊;
指針生成單元,用于根據所述內存塊的地址信息生成內存塊指針;
指針發送單元,用于將所述內存塊指針發送給多個不同接收方;
如果所述數據發送裝置發送的是消息轉發:
所述數據存儲單元包括第二數據寫入模塊,用于從內存池獲取兩個內存塊,一個作為消息頭,另一個作為數據緩沖區;將需要發送的消息數據寫入所述數據緩沖區;
所述指針生成單元包括第二指針生成模塊:用于根據所述消息頭的地址信息生成消息頭指針,根據所述數據緩沖區的地址信息生成數據緩沖區指針;向所述消息頭寫入數據緩沖區指針、父消息指針和發送任務標識,并置所述父消息指針為空;
所述指針發送單元包括第二指針發送模塊,用于首先判斷所述消息頭中的發送任務標識與當前任務標識是否一致:若一致,則生成一隊列節點,在所述隊列節點中寫入所述消息頭指針后,將所述隊列節點發送到接收任務的消息隊列中;若不一致,則通知所述第二數據寫入模塊從所述內存池獲取另一內存塊作為子消息頭,原消息頭為父消息頭,向所述子消息頭寫入數據緩沖區指針、父消息指針和發送任務標識,并置所述子消息頭中的發送任務標識為當前任務標識,所述子消息頭中的父消息指針指向所述父消息頭;最后,為所述子消息頭生成另一隊列節點,發送到接收任務的消息隊列中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910127803.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:進程間信息交互的方法及裝置
- 下一篇:為任務死循環提供定位信息的方法和裝置





