一種數(shù)據(jù)處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的發(fā)展,網(wǎng)絡(luò)設(shè)備所要處理的數(shù)據(jù)量與日俱增,傳統(tǒng)的單一處理器 已經(jīng)不能處理如此大量的數(shù)據(jù)。如今,網(wǎng)絡(luò)設(shè)備中通常采用多個中央處理單元(Central Processing Unit,CPU)協(xié)同工作的方式對數(shù)據(jù)進行處理。
[0003] 具體的,網(wǎng)絡(luò)設(shè)備通過設(shè)置的全局監(jiān)聽表,使該網(wǎng)絡(luò)設(shè)備中的多個CPU監(jiān)聽各端 口接收的數(shù)據(jù),且CPU在監(jiān)聽到某個端口接收到數(shù)據(jù)時,對該數(shù)據(jù)進行處理。
[0004] 在現(xiàn)有技術(shù)中,網(wǎng)絡(luò)設(shè)備一般通過對全局監(jiān)聽表加鎖的方式,使多個CPU協(xié)同工 作。如圖1所示,其過程具體為:網(wǎng)絡(luò)設(shè)備對全局監(jiān)聽表加鎖,CPU1和CPU2讀取該全局監(jiān) 聽表時,需要爭搶全局監(jiān)聽表上的鎖,如圖1所示,CPU1搶到全局監(jiān)聽表上的鎖,因此只有 CPU1可以根據(jù)該全局監(jiān)聽表監(jiān)聽端口,并對端口接收到的數(shù)據(jù)進行處理,對于未爭搶到鎖 的CPU2而言,便不能讀取該全局監(jiān)聽表,只能進入等待狀態(tài)。持有鎖的CPU1完成數(shù)據(jù)處理 后會釋放鎖,此時,CPU1和CPU2便開始新一輪對鎖的爭搶,以便處理后續(xù)的數(shù)據(jù)。也即,只 有搶到鎖的CPU才能讀取該全局監(jiān)聽表,以監(jiān)聽相應(yīng)的端口,并對端口接收到的數(shù)據(jù)進行 處理,未搶到鎖的CPU只能等待。
[0005] 顯然,加鎖的方式會使各CPU -直處于爭搶-等待的過程,同一時刻只有一個CPU 能搶到鎖,未爭搶到鎖的CPU不能進行數(shù)據(jù)的處理,只能等待下一輪爭搶,降低了數(shù)據(jù)處理 的效率。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明實施例提供一種數(shù)據(jù)處理方法及裝置,用以解決網(wǎng)絡(luò)設(shè)備中的多個CPU由 于爭搶鎖導(dǎo)致數(shù)據(jù)處理效率低的問題。
[0007] 本發(fā)明實施例提供的一種數(shù)據(jù)處理方法,包括:
[0008] 針對每個中央處理單元CPU,根據(jù)全局監(jiān)聽表,生成該CPU對應(yīng)的本地監(jiān)聽表;其 中,所述本地監(jiān)聽表中包含的信息與所述全局監(jiān)聽表包含的信息相同;
[0009] 指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù)。
[0010] 本發(fā)明實施例另提供的一種數(shù)據(jù)處理方法,包括:
[0011] 針對每個中央處理單元CPU,根據(jù)全局連接表,生成該CPU對應(yīng)的本地連接表;
[0012] 指示該CPU在建立連接后,將所述連接對應(yīng)的連接狀態(tài)信息寫入所述本地連接表 中。
[0013] 本發(fā)明實施例另提供的一種數(shù)據(jù)處理裝置,包括:包括:生成模塊和指示模塊,其 中,
[0014] 所述生成模塊,用于針對每個中央處理單元CPU,根據(jù)全局監(jiān)聽表,生成該CPU對 應(yīng)的本地監(jiān)聽表;其中,所述本地監(jiān)聽表中包含的信息與所述全局監(jiān)聽表包含的信息相 同;
[0015] 所述指示模塊,用于指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù)。
[0016] 本發(fā)明實施例還提供的一種數(shù)據(jù)處理裝置,包括:生成模塊和指示模塊,其中,
[0017] 所述生成模塊,用于針對每個中央處理單元CPU,根據(jù)全局連接表,生成該CPU對 應(yīng)的本地連接表;
[0018] 所述指示模塊,用于指示該CPU在建立連接后,將所述連接對應(yīng)的連接狀態(tài)信息 寫入所述本地連接表中。
[0019] 本發(fā)明實施例提供一種數(shù)據(jù)處理方法及裝置,網(wǎng)絡(luò)設(shè)備中的操作系統(tǒng)根據(jù)全局監(jiān) 聽表,生成各CPU的本地監(jiān)聽表,各CPU通過各自的本地監(jiān)聽表,就可以直接監(jiān)聽相應(yīng)的端 口,無需再爭搶全局監(jiān)聽表上的鎖,從而可以提升各CPU數(shù)據(jù)處理的效率。
【附圖說明】
[0020] 此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本發(fā)明的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0021] 圖1為現(xiàn)有技術(shù)中多個CPU搶鎖過程的示意圖;
[0022] 圖2為本發(fā)明實施例提供的指示CPU監(jiān)聽數(shù)據(jù)的過程示意圖;
[0023] 圖3為本發(fā)明實施例提供的全局監(jiān)聽表以及CPU1?4中的本地監(jiān)聽表的示意圖;
[0024] 圖4為本發(fā)明實施例提供的指示CPU使用數(shù)據(jù)連接的過程示意圖;
[0025] 圖5為本發(fā)明實施例提供的全局連接表以及CPU1?4中的本地連接表的示意圖;
[0026] 圖6為本發(fā)明實施例提供的用于數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;
[0027] 圖7為本發(fā)明實施例提供的用于數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0028] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明具體實施例及 相應(yīng)的附圖對本發(fā)明技術(shù)方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發(fā)明一 部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做 出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0029] 圖2為本發(fā)明實施例提供的指示CPU監(jiān)聽數(shù)據(jù)的過程,該過程具體包括以下步 驟:
[0030] S201,針對每個CPU,根據(jù)全局監(jiān)聽表,生成該CPU對應(yīng)的本地監(jiān)聽表。其中,所述 本地監(jiān)聽表中包含的信息與所述全局監(jiān)聽表包含的信息相同。
[0031] 在本發(fā)明實施例中,所述的全局監(jiān)聽表,具體是由網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)在該網(wǎng)絡(luò) 設(shè)備啟動時所生成的數(shù)據(jù)表。其中,該全局監(jiān)聽表中包含有該網(wǎng)絡(luò)設(shè)備所有端口的端口信 息(如:端口標(biāo)識以及各端口標(biāo)識所對應(yīng)的端口的狀態(tài)等)。在全局監(jiān)聽表生成后,網(wǎng)絡(luò)設(shè) 備的操作系統(tǒng)復(fù)制該全局監(jiān)聽表,將復(fù)制后生成的數(shù)據(jù)表作為CPU的本地監(jiān)聽表。顯然, CPU對應(yīng)的本地監(jiān)聽表與全局監(jiān)聽表的內(nèi)容相一致。在本發(fā)明實施例中,操作系統(tǒng)將與CPU 對應(yīng)的本地監(jiān)聽表存儲于內(nèi)存中,其中,一個CPU對應(yīng)一個本地監(jiān)聽表。
[0032] 需要說明的是,上述的端口信息,具體可以為端口的套接字(socket)。上述網(wǎng)絡(luò) 設(shè)備的端口是指:網(wǎng)絡(luò)設(shè)備的邏輯傳輸端口,如:傳輸控制協(xié)議(Transmission Control Protocol,TCP)端口,或,用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)端口等。所述 的網(wǎng)絡(luò)設(shè)備包括但不限于:服務(wù)器、交換機等為終端設(shè)備提供網(wǎng)絡(luò)服務(wù)的設(shè)備,也可以包括 終端設(shè)備。
[0033] S202,指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù)。
[0034] 網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)可指示CPU根據(jù)對應(yīng)的本地監(jiān)聽表,監(jiān)聽相應(yīng)的端口中的數(shù) 據(jù)。
[0035] 具體地,對于上述步驟S202,網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)通過系統(tǒng)進程向該CPU下發(fā)攜 帶端口標(biāo)識的監(jiān)聽指令,以指示該CPU根據(jù)所述本地監(jiān)聽表,監(jiān)聽所述端口標(biāo)識對應(yīng)的端 口接收到的數(shù)據(jù)。也就是說,操作系統(tǒng)向各CPU下發(fā)的監(jiān)聽指令中,所攜帶的端口標(biāo)識可 相同,也可不同,從而各CPU可監(jiān)聽同一端口接收到的數(shù)據(jù),也可監(jiān)聽不同端口接收到的數(shù) 據(jù)。
[0036] 通過上述方法,不同的CPU均獲得了各自的本地監(jiān)聽表,各CPU根據(jù)自身對應(yīng)的本 地監(jiān)聽表,就可以直接監(jiān)聽端口中的數(shù)據(jù),不需要再通過搶鎖的方式來監(jiān)聽端口中的數(shù)據(jù)。
[0037] 下面以一個具體實例對上述技術(shù)效果進行說明。
[0038] 例如:如圖3所示,假設(shè)網(wǎng)絡(luò)設(shè)備中共有4個CPU,且在圖3中,該網(wǎng)絡(luò)設(shè)備的操作 系統(tǒng)生成的全局監(jiān)聽表的格式及內(nèi)容如下表1所示。
[0039]
[0040]表1
【主權(quán)項】
1. 一種數(shù)據(jù)處理方法,其特征在于,包括: 針對每個中央處理單元CPU,根據(jù)全局監(jiān)聽表,生成該CPU對應(yīng)的本地監(jiān)聽表;其中,所 述本地監(jiān)聽表中包含的信息與所述全局監(jiān)聽表包含的信息相同; 指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù)。
2. 如權(quán)利要求1所述的方法,其特征在于,指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù), 具體包括: 通過系統(tǒng)進程向該CPU下發(fā)攜帶端口標(biāo)識的監(jiān)聽指令,W指示該CPU根據(jù)所述本地監(jiān) 聽表,監(jiān)聽所述端口標(biāo)識對應(yīng)的端口接收到的數(shù)據(jù)。
3. 如權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 對該CPU對應(yīng)的本地監(jiān)聽表進行監(jiān)控; 當(dāng)監(jiān)控到不存在該CPU對應(yīng)的本地監(jiān)聽表時,為所述全局監(jiān)聽表加鎖,指示其他CPU根 據(jù)加鎖的全局監(jiān)聽表,監(jiān)聽所述端口標(biāo)識對應(yīng)的端口接收到的數(shù)據(jù)。
4. 如權(quán)利要求1所述的方法,其特征在于,所述全局監(jiān)聽表和所述本地監(jiān)聽表中包含 的信息包括;端口信息。
5. -種數(shù)據(jù)處理方法,其特征在于,包括: 針對每個中央處理單元CPU,根據(jù)全局連接表,生成該CPU對應(yīng)的本地連接表; 指示該CPU在建立連接后,將所述連接對應(yīng)的連接狀態(tài)信息寫入所述本地連接表中。
6. 如權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 通過系統(tǒng)進程向該CPU下發(fā)攜帶待發(fā)送數(shù)據(jù)的發(fā)送指令,W指示該CPU根據(jù)所述本地 連接表,發(fā)送所述待發(fā)送數(shù)據(jù)。
7. -種數(shù)據(jù)處理裝置,其特征在于,包括;生成模塊和指示模塊,其中, 所述生成模塊,用于針對每個中央處理單元CPU,根據(jù)全局監(jiān)聽表,生成該CPU對應(yīng)的 本地監(jiān)聽表;其中,所述本地監(jiān)聽表中包含的信息與所述全局監(jiān)聽表包含的信息相同; 所述指示模塊,用于指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù)。
8. 如權(quán)利要求7所述的裝置,其特征在于,所述指示模塊,具體用于: 通過系統(tǒng)進程向該CPU下發(fā)攜帶端口標(biāo)識的監(jiān)聽指令,W指示該CPU根據(jù)所述本地監(jiān) 聽表,監(jiān)聽所述端口標(biāo)識對應(yīng)的端口接收到的數(shù)據(jù)。
9. 如權(quán)利要求8所述的裝置,其特征在于,所述裝置,還包括:監(jiān)控模塊,用于對該CPU 對應(yīng)的本地監(jiān)聽表進行監(jiān)控,當(dāng)監(jiān)控到不存在該CPU對應(yīng)的本地監(jiān)聽表時,為所述全局監(jiān) 聽表加鎖,指示其他CPU根據(jù)加鎖的全局監(jiān)聽表,監(jiān)聽所述端口標(biāo)識對應(yīng)的端口接收到的 數(shù)據(jù)。
10. 如權(quán)利要求7所述的裝置,其特征在于,所述全局監(jiān)聽表和所述本地監(jiān)聽表中包含 的信息包括;端口信息。
11. 一種數(shù)據(jù)處理裝置,其特征在于,包括;生成模塊和指示模塊,其中, 所述生成模塊,用于針對每個中央處理單元CPU,根據(jù)全局連接表,生成該CPU對應(yīng)的 本地連接表; 所述指示模塊,用于指示該CPU在建立連接后,將所述連接對應(yīng)的連接狀態(tài)信息寫入 所述本地連接表中。
12. 如權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括;發(fā)送模塊,用于通過系 統(tǒng)進程向該CPU下發(fā)攜帶待發(fā)送數(shù)據(jù)的發(fā)送指令,W指示該CPU根據(jù)所述本地連接表,發(fā)送 所述待發(fā)送數(shù)據(jù)。
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法及裝置,該方法包括:針對每個中央處理單元CPU,根據(jù)全局監(jiān)聽表,生成該CPU對應(yīng)的本地監(jiān)聽表;其中,所述本地監(jiān)聽表中包含的信息與所述全局監(jiān)聽表包含的信息相同;指示該CPU通過所述本地監(jiān)聽表監(jiān)聽數(shù)據(jù)。網(wǎng)絡(luò)設(shè)備中的操作系統(tǒng)根據(jù)全局監(jiān)聽表,生成各CPU的本地監(jiān)聽表,各CPU通過各自的本地監(jiān)聽表,就可以直接監(jiān)聽相應(yīng)的端口中的數(shù)據(jù),無需再爭搶全局監(jiān)聽表上的鎖,從而提升了CPU處理數(shù)據(jù)的效率。
【IPC分類】G06F9-46
【公開號】CN104572259
【申請?zhí)枴緾N201410555131
【發(fā)明人】林曉峰, 陳渝, 李曉棟, 茅俊杰, 何嘉權(quán), 牟旋
【申請人】新浪網(wǎng)技術(shù)(中國)有限公司, 清華大學(xué)
【公開日】2015年4月29日
【申請日】2014年10月17日