[發(fā)明專利]數(shù)據(jù)發(fā)送方法和計(jì)算機(jī)無(wú)效
| 申請(qǐng)?zhí)枺?/td> | 201110455789.6 | 申請(qǐng)日: | 2011-12-31 |
| 公開(kāi)(公告)號(hào): | CN102541803A | 公開(kāi)(公告)日: | 2012-07-04 |
| 發(fā)明(設(shè)計(jì))人: | 萬(wàn)偉;劉興彬;王潑;劉鐵;陳科;朱春屹;王清;李云華;李博文;董建珊;楊錦濤;孫一鳴;范玉峰;曹振南;邵宗有 | 申請(qǐng)(專利權(quán))人: | 曙光信息產(chǎn)業(yè)股份有限公司 |
| 主分類號(hào): | G06F15/16 | 分類號(hào): | G06F15/16 |
| 代理公司: | 北京德恒律師事務(wù)所 11306 | 代理人: | 陸鑫;房嶺梅 |
| 地址: | 300384 天津市西青區(qū)華*** | 國(guó)省代碼: | 天津;12 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 數(shù)據(jù) 發(fā)送 方法 計(jì)算機(jī) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算領(lǐng)域,并且特別地,涉及一種數(shù)據(jù)發(fā)送方法和計(jì)算機(jī)。
背景技術(shù)
目前,千兆網(wǎng)卡的零拷貝技術(shù)主要基于傳統(tǒng)intel千兆網(wǎng)卡來(lái)實(shí)現(xiàn)。
通常,在網(wǎng)絡(luò)數(shù)據(jù)包的傳輸過(guò)程中,應(yīng)用程序需要以拷貝的方式與內(nèi)核中的網(wǎng)卡報(bào)文緩沖區(qū)進(jìn)行交互,這種拷貝處理必然會(huì)降低性能和速率,無(wú)法在大流量場(chǎng)景中使用。并且,目前的千兆零拷貝都是基于單隊(duì)列的技術(shù)來(lái)實(shí)現(xiàn)的,但是,在萬(wàn)兆接入的情況下,單位時(shí)間內(nèi)的數(shù)據(jù)包速率將提高大約10倍,而千兆網(wǎng)卡下單一的傳輸隊(duì)列以及緩沖區(qū)交互將存在很高的性能損失,所以,傳統(tǒng)的技術(shù)將無(wú)法應(yīng)對(duì)如此高的數(shù)據(jù)速率,進(jìn)而成為萬(wàn)兆零拷貝技術(shù)發(fā)展的瓶頸。
針對(duì)相關(guān)技術(shù)中無(wú)法在大流量要求下高效地實(shí)現(xiàn)數(shù)據(jù)發(fā)送的問(wèn)題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中無(wú)法在大流量要求下高效地實(shí)現(xiàn)數(shù)據(jù)發(fā)送的問(wèn)題,本發(fā)明提出一種數(shù)據(jù)發(fā)送方法和計(jì)算機(jī),能夠有效提高數(shù)據(jù)包發(fā)送的速率,改善發(fā)包效率,能夠應(yīng)對(duì)萬(wàn)兆網(wǎng)卡等高速發(fā)包的場(chǎng)景。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
根據(jù)本發(fā)明的一個(gè)方面,提供了一種數(shù)據(jù)發(fā)送方法,用于在多CPU環(huán)境下實(shí)現(xiàn)數(shù)據(jù)發(fā)送。
該方法包括:對(duì)于每個(gè)CPU,該CPU將需要發(fā)送的數(shù)據(jù)存儲(chǔ)在該CPU對(duì)應(yīng)的存儲(chǔ)區(qū)中;多個(gè)CPU將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送給網(wǎng)卡,由網(wǎng)卡進(jìn)行數(shù)據(jù)發(fā)送。
該方法可進(jìn)一步包括:將每個(gè)CPU對(duì)應(yīng)的存儲(chǔ)區(qū)中的數(shù)據(jù)映射到該數(shù)據(jù)所對(duì)應(yīng)的應(yīng)用中。
此外,每個(gè)CPU將其對(duì)應(yīng)的存儲(chǔ)區(qū)映射為隊(duì)列,該CPU通過(guò)對(duì)相應(yīng)的隊(duì)列進(jìn)行輪詢來(lái)確定是否有需要發(fā)送的數(shù)據(jù),并在確定有數(shù)據(jù)需要發(fā)送的情況下,將該數(shù)據(jù)發(fā)送至網(wǎng)卡。
并且,每個(gè)CPU對(duì)應(yīng)的隊(duì)列采用循環(huán)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。
此外,多個(gè)CPU將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送給網(wǎng)卡包括:多個(gè)CPU將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送至網(wǎng)卡的硬件隊(duì)列。
此外,對(duì)于每個(gè)CPU,該CPU對(duì)應(yīng)的存儲(chǔ)區(qū)為內(nèi)存中為該CPU分配的存儲(chǔ)區(qū),并且多個(gè)CPU的存儲(chǔ)區(qū)彼此間在邏輯上獨(dú)立。
根據(jù)本發(fā)明的另一方面,提供了一種計(jì)算機(jī),用于在多CPU環(huán)境下實(shí)現(xiàn)數(shù)據(jù)發(fā)送。
根據(jù)本發(fā)明的計(jì)算機(jī)包括:多個(gè)CPU,其中,對(duì)于每個(gè)CPU,用于將需要發(fā)送的數(shù)據(jù)存儲(chǔ)在該CPU對(duì)應(yīng)的存儲(chǔ)區(qū)中;多個(gè)CPU將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送給網(wǎng)卡;網(wǎng)卡,用于發(fā)送來(lái)自多個(gè)CPU的數(shù)據(jù)。
該計(jì)算機(jī)可進(jìn)一步包括:映射模塊,用于將每個(gè)CPU對(duì)應(yīng)的存儲(chǔ)區(qū)中的數(shù)據(jù)映射到該數(shù)據(jù)所對(duì)應(yīng)的應(yīng)用中。
此外,多個(gè)CPU用于將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送至網(wǎng)卡的硬件隊(duì)列。
此外,對(duì)于每個(gè)CPU,該CPU對(duì)應(yīng)的存儲(chǔ)區(qū)為內(nèi)存中為該CPU分配的存儲(chǔ)區(qū),并且多個(gè)CPU的存儲(chǔ)區(qū)彼此間在邏輯上獨(dú)立。
本發(fā)明通過(guò)使每個(gè)CPU核訪問(wèn)各自的存儲(chǔ)區(qū)并寫入數(shù)據(jù),從而充分利用了多核CPU的處理能力,實(shí)現(xiàn)了數(shù)據(jù)包的并行發(fā)送,能夠有效提高數(shù)據(jù)包發(fā)送的速率,改善發(fā)包效率,能夠應(yīng)對(duì)萬(wàn)兆網(wǎng)卡等高速發(fā)包的場(chǎng)景。
附圖說(shuō)明
圖1是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)發(fā)送方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)發(fā)送方法的原理示意圖。
具體實(shí)施方式
根據(jù)本發(fā)明的實(shí)施例,提供了一種數(shù)據(jù)發(fā)送方法,用于在多CPU環(huán)境下實(shí)現(xiàn)數(shù)據(jù)發(fā)送。
如圖1所示,根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)發(fā)送方法包括:
步驟S101,對(duì)于每個(gè)CPU,該CPU將需要發(fā)送的數(shù)據(jù)存儲(chǔ)在該CPU對(duì)應(yīng)的存儲(chǔ)區(qū)中;
步驟S103,多個(gè)CPU將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送給網(wǎng)卡,由網(wǎng)卡進(jìn)行數(shù)據(jù)發(fā)送。
該方法可以進(jìn)一步包括:將每個(gè)CPU對(duì)應(yīng)的存儲(chǔ)區(qū)中的數(shù)據(jù)映射到該數(shù)據(jù)所對(duì)應(yīng)的應(yīng)用中,從而當(dāng)存儲(chǔ)區(qū)中的數(shù)據(jù)發(fā)生變化(例如,被修改)的情況下,能夠直接在應(yīng)用層得到體現(xiàn),使操作員能夠清楚、直觀地看到這些數(shù)據(jù)變化。
此外,每個(gè)CPU將其對(duì)應(yīng)的存儲(chǔ)區(qū)映射為隊(duì)列,該CPU通過(guò)對(duì)相應(yīng)的隊(duì)列進(jìn)行輪詢來(lái)確定是否有需要發(fā)送的數(shù)據(jù),并在確定有數(shù)據(jù)需要發(fā)送的情況下,將該數(shù)據(jù)發(fā)送至網(wǎng)卡。
其中,每個(gè)CPU對(duì)應(yīng)的隊(duì)列采用循環(huán)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),而算法為無(wú)鎖(lock-free)算法,從而避免了加鎖對(duì)性能的影響。
此外,多個(gè)CPU可以將相應(yīng)存儲(chǔ)區(qū)中存儲(chǔ)的數(shù)據(jù)發(fā)送至網(wǎng)卡的硬件隊(duì)列,從而將數(shù)據(jù)發(fā)送給網(wǎng)卡。
此外,可選地,對(duì)于每個(gè)CPU對(duì)應(yīng)的存儲(chǔ)區(qū)可以是內(nèi)存中為該CPU分配的存儲(chǔ)區(qū),并且多個(gè)CPU的存儲(chǔ)區(qū)彼此間在邏輯上獨(dú)立。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于曙光信息產(chǎn)業(yè)股份有限公司,未經(jīng)曙光信息產(chǎn)業(yè)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110455789.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 上一篇:一種再聚光LED燈
- 下一篇:發(fā)光二極管燈泡裝置
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F15-00 通用數(shù)字計(jì)算機(jī)
G06F15-02 .通過(guò)鍵盤輸入的手動(dòng)操作,以及應(yīng)用機(jī)內(nèi)程序的計(jì)算,例如,袖珍計(jì)算器
G06F15-04 .在引入被處理的數(shù)據(jù)的同時(shí),進(jìn)行編制程序的,例如,在同一記錄載體上
G06F15-08 .應(yīng)用插接板編制程序的
G06F15-16 .兩個(gè)或多個(gè)數(shù)字計(jì)算機(jī)的組合,其中每臺(tái)至少具有一個(gè)運(yùn)算器、一個(gè)程序器及一個(gè)寄存器,例如,用于數(shù)個(gè)程序的同時(shí)處理
G06F15-18 .其中,根據(jù)計(jì)算機(jī)本身在一個(gè)完整的運(yùn)行期間內(nèi)所取得的經(jīng)驗(yàn)來(lái)改變程序的;學(xué)習(xí)機(jī)器
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 發(fā)送方法、發(fā)送系統(tǒng)和發(fā)送器
- 發(fā)送系統(tǒng)、發(fā)送設(shè)備
- 發(fā)送設(shè)備、發(fā)送/接收設(shè)備、發(fā)送方法和發(fā)送/接收方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送系統(tǒng)、發(fā)送裝置以及數(shù)據(jù)發(fā)送方法
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送裝置、發(fā)送方法以及記錄介質(zhì)
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送系統(tǒng)、發(fā)送方法及發(fā)送/接收系統(tǒng)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 雙桌面遠(yuǎn)程控制系統(tǒng)及方法
- 一種基于網(wǎng)絡(luò)的計(jì)算機(jī)信息檢索系統(tǒng)與方法
- 一種基于網(wǎng)絡(luò)的計(jì)算機(jī)信息檢索系統(tǒng)與方法
- 一種基于網(wǎng)絡(luò)的計(jì)算機(jī)信息檢索系統(tǒng)與方法
- 雙計(jì)算機(jī)系統(tǒng)
- 制導(dǎo)雷達(dá)計(jì)算機(jī)系統(tǒng)
- 一種服務(wù)部署方法及裝置
- 一種計(jì)算機(jī)集成系統(tǒng)及故障自動(dòng)切換方法
- 一種計(jì)算機(jī)信息安全監(jiān)控系統(tǒng)
- 混合型量子計(jì)算機(jī)架構(gòu)及其執(zhí)行計(jì)算任務(wù)的方法





