欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

直接存儲器訪問的實現(xiàn)方法

文檔序號:6575461閱讀:326來源:國知局
專利名稱:直接存儲器訪問的實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種直接存儲器訪問(Direct Memory Access,簡稱為DMA)的實現(xiàn)方法。
背景技術(shù)
DMA是一種高速的數(shù)據(jù)傳輸操作,其允許在外部設(shè)備和存儲器之間 直接進行數(shù)據(jù)的讀寫,CPU需要在數(shù)據(jù)傳輸開始和結(jié)束時做一點處理, 而整個讀寫的過程既不通過CPU也不需要CPU干預(yù),在傳輸過程中CPU 可以進行其他的工作。也就是說,在DMA操作的大部分時間里,CPU 執(zhí)行的處理和存儲器的輸入輸出操作處于并行執(zhí)行狀態(tài),因此能夠大大 提高整個計算機系統(tǒng)的效率。在現(xiàn)有的對稱多處理(Symmetrical Multi-Processing,簡稱為SMP ) 系統(tǒng)中,DMA模式采用單引擎單隊列實現(xiàn),多個處理器共享一份DMA 數(shù)據(jù),或者通過內(nèi)存拷貝方式為每個CPU核單獨維護一份數(shù)據(jù)。這樣, 在多個CPU核并行處理一個設(shè)備的DMA數(shù)據(jù)時,多個CPU之間會存在 大量的訪存沖突,如果要避免這些沖突就需要進行同步操作,導(dǎo)致CPU 資源被大量占用,并且會降低DMA操作的效率。針對相關(guān)技術(shù)中由于DMA操作存在訪問沖突而導(dǎo)致CPU資源占用 以及DMA操作效率低的問題,目前尚未提出有效的解決方案。發(fā)明內(nèi)容針對相關(guān)技術(shù)中直接存儲器訪問操作存在訪問沖突而導(dǎo)致CPU資源 占用以及DMA操作效率低的問題,本發(fā)明的目的在于提供一種直接存 儲器訪問的實現(xiàn)方案,以解決上述問題中的至少之一 。為實現(xiàn)上述目的,根據(jù)本發(fā)明,提供了一種直接存儲器訪問的實現(xiàn)方法。根據(jù)本發(fā)明的直接存儲器訪問的實現(xiàn)方法包括網(wǎng)卡根據(jù)其接收的 報文的控制信息確定與報文——對應(yīng)的線程;網(wǎng)卡確定主機上與線程一 一對應(yīng)的緩存區(qū),并將報文寫入緩存區(qū)中,其中,每個緩存區(qū)與主機上 的CPU核--只于應(yīng)。其中,網(wǎng)卡根據(jù)報文的控制信息確定相應(yīng)線程的操作包括網(wǎng)卡根 據(jù)報文的控制信息進行哈希計算得到哈希值,并根據(jù)哈希值確定相應(yīng)的 線程。并且,在網(wǎng)卡確定與線程——對應(yīng)的緩存區(qū)之后,該方法可進一步 包括網(wǎng)卡根據(jù)其本地緩存的緩存區(qū)描述符信息確定緩存區(qū)的地址和長 度,以便之后進行報文的寫入。另外,網(wǎng)卡將報文寫入緩存區(qū)的處理包括網(wǎng)卡向主機發(fā)送寫入請 求,并在主機響應(yīng)于寫入請求返回完成信號時完成才艮文的寫入。最后,在網(wǎng)卡將報文寫入緩存區(qū)中之后,該方法還可以包括網(wǎng)卡 在其本地更新本次在緩存區(qū)進行寫入的結(jié)束地址。優(yōu)選地,上述控制信息為以下之一 一元組信息、二元組信息、三 元組信息、四元組信息、五元組信息。根據(jù)本發(fā)明的另 一方面,提供了 一種直接存儲器訪問的實現(xiàn)裝置, 該裝置可設(shè)置于網(wǎng)卡側(cè)。根據(jù)本發(fā)明的直接存儲器訪問的實現(xiàn)裝置包括接收模塊,用于接 收報文;第一確定模塊,用于根據(jù)接收模塊接收的報文的控制信息確定 與報文——對應(yīng)的線程;第二確定模塊,用于確定主機上與確定的線程 一一對應(yīng)的緩存區(qū);寫入模塊,用于將報文寫入確定的緩存區(qū)中,其中, 每個緩存區(qū)與主才幾上的CPU核——對應(yīng)。其中,第一確定模塊可用于根據(jù)報文的控制信息進行哈希計算得到 哈希值,并根據(jù)哈希值確定相應(yīng)的線程。該裝置可以進一步包括寄存器,用于存儲主機上緩存區(qū)的地址和 長度,以便寫入模塊在寫入報文時參照。優(yōu)選地,上述控制信息為以下之一 一元組信息、二元組信息、三元組信息、四元組信息、五元組信息。
借助本發(fā)明上述至少一個技術(shù)方案,通過多隊列單引擎的DMA的方 法,使每一個DMA隊列對應(yīng)一個CPU核和一個軟件線程,軟件各個數(shù) 據(jù)處理線程之間幾乎沒有交互,避免了相關(guān)技術(shù)中的訪問沖突,降低單 隊列DMA方法中的多線程同步開銷,充分利用系統(tǒng)的處理器資源,提 高DMA數(shù)據(jù)傳輸帶寬和處理效率。


圖2是根據(jù)本發(fā)明裝置實施例的直接存儲器訪問的實現(xiàn)裝置的框圖; 圖3是根據(jù)本發(fā)明裝置實施例的直接存儲器訪問的實現(xiàn)裝置對主機 進行報文寫入的示意圖.
具體實施例方式
功能概述
針對相關(guān)技術(shù)中由于DMA操作存在訪問沖突而導(dǎo)致CPU資源占用 以及DMA操作效率低的問題,本發(fā)明提出在主沖幾上為主機的每個CPU 核配置——對應(yīng)的緩存區(qū),該緩存區(qū)同樣與該CPU核的線程——對應(yīng), 網(wǎng)卡根據(jù)預(yù)先配置的線程與報文的對應(yīng)關(guān)系將接收的報文寫入相應(yīng)的緩 存區(qū)中方,從而避免多個CPU核訪問共享的緩存區(qū)而造成的訪問沖突, 提高了 DMA操作的效率。
下面將詳細描述本發(fā)明的實施例。
方法實施例
在本實施例中,提供了 一種直接存儲器訪問的實現(xiàn)方法。 在實現(xiàn)本發(fā)明的方案之前,首先需要對主機的每個CPU核的線程配 置相應(yīng)的緩存區(qū),將每個緩存區(qū)的信息記錄在網(wǎng)卡上,并且配置每個線 程對應(yīng)的報文哈希值,具體的對應(yīng)雙方可以是哈希值與線程號。
圖1是根據(jù)本發(fā)明方法實施例的直接存儲器訪問的實現(xiàn)方法的流程圖。如圖1所示,根據(jù)本實施例的直接存儲器訪問的實現(xiàn)方法包括
步驟S102,網(wǎng)卡根據(jù)其接收的報文的控制信息確定與報文——對應(yīng)
的線程,具體地,網(wǎng)卡可以根據(jù)報文的控制信息進行哈希計算,確定哈
希值對應(yīng)的線程,報文的控制信息可以是一元組信息、二元組信息、三
元組信息、四元組信息、五元組信息;
步驟S104,網(wǎng)卡確定主機上與線程一~""對應(yīng)的緩存區(qū),并將報文寫
入緩存區(qū)中,其中,每個緩存區(qū)與主機上的CPU核——對應(yīng)。
其中,在網(wǎng)卡確定與線程——對應(yīng)的緩存區(qū)之后,網(wǎng)卡需要根據(jù)其
本地緩存的緩存區(qū)描述符信息確定該緩存區(qū)的地址和長度,以便之后進
行才艮文的寫入。
在網(wǎng)卡將報文寫入緩存區(qū)時,網(wǎng)卡可以向主機發(fā)送寫入請求,并在 主機響應(yīng)于寫入請求返回完成信號時完成報文的寫入。并且,在網(wǎng)卡發(fā) 送的寫入請求較大時,網(wǎng)卡可以將其發(fā)送的請求首先分為多個小的請求 之后發(fā)送給主機。
在網(wǎng)卡將報文寫入緩存區(qū)中之后,網(wǎng)卡在其本地更新本次在緩存區(qū) 進行寫入的結(jié)束地址,以便下 一 次向該緩存區(qū)中寫入報文時從該地址繼 續(xù)寫入。
通過上述處理,使得CPU僅僅訪問與其對應(yīng)的緩存區(qū),避免了相關(guān) 技術(shù)中由于交叉訪問帶來的訪問沖突,節(jié)省CPU的資源,能夠有效提高 DMA操作的效率。
裝置實施例
在本實施例中,提供了一種直接存儲器訪問的實現(xiàn)裝置,該裝置可 設(shè)置于網(wǎng)卡側(cè)。
圖2是根據(jù)本實施例的直接存儲器訪問的實現(xiàn)裝置的框圖。如圖2 所示,根據(jù)本實施例的直接存儲器訪問的實現(xiàn)裝置包括 接收模塊1,用于接收報文;
第一確定模塊2,連接至接收模塊l,用于根據(jù)接收模塊接收的報文 的控制信息確定與報文——對應(yīng)的線程,優(yōu)選地,第一確定模塊2可以 根據(jù)報文控制信息進行計算,得到哈希值,并根據(jù)預(yù)先配置的哈希值與線程號的對應(yīng)關(guān)系確定相應(yīng)的線程;優(yōu)選地,報文的控制信息可以是一 元組信息、二元組信息、三元組信息、四元組信息、或五元組信息
第二確定模塊3,連接至第一確定模塊2,用于確定主機上與由第一 確定模塊2確定的線程——對應(yīng)的緩存區(qū);
寫入模塊4,連接至第二確定模塊3,用于將報文寫入第二確定模塊 3之前確定的緩存區(qū)中,其中,每個緩存區(qū)與主機上的CPU核——對應(yīng)。
該裝置還可以包括寄存器5,連接至寫入模塊4和第二確定模塊3, 用于存儲主機上緩存區(qū)的地址和長度,以便第二確定模塊3確定緩存區(qū) 時、以及寫入模塊4在寫入報文時參照,從而確定需要進行寫入的緩存 區(qū)的位置。
在實際應(yīng)用中,根據(jù)本發(fā)明的直接存儲器訪問的實現(xiàn)裝置可以根據(jù) 圖3所示的方式與主機連接,根據(jù)本發(fā)明的直接存儲器訪問的實現(xiàn)裝置 中模塊的功能可以進一步劃分或合并。
如圖3所示,左邊為網(wǎng)卡側(cè),右邊為主機側(cè),在網(wǎng)卡側(cè)主要包括 數(shù)據(jù)采集和處理模塊,用于接收報文,并且還能夠根據(jù)報文的控制信息 進行哈西計算,得到哈希值;確定模塊,用于對來自數(shù)據(jù)采集和處理模 塊的哈希值進行一些處理,之后確定對應(yīng)的線程和緩存區(qū),即,能夠?qū)?現(xiàn)圖2中第一確定模塊2和第二確定模塊3的確定功能;DMA寫引擎, 即圖3中的DMA寫控制模塊,用于進行DMA寫請求的組織、隊列選擇 (即,實現(xiàn)緩存區(qū)的多選一)、分流算法(即,確定線程)和DMA寫 描述符的維護(即,更新網(wǎng)卡本地的寄存器中保存的緩存區(qū)地址和長度 等信息),并且能夠在向主機的緩存區(qū)進行寫入之前向主機的接口控制 器發(fā)送寫入請求,還能夠?qū)⒋l(fā)送的請求分包和打包成控制器數(shù)據(jù)包格 式,之后再發(fā)送到主機接口控制器;寄存器,用于存儲每個緩存區(qū)的地 址和長度等信息。
在進行寫入時,具體的處理過程如下
(1 )主機加載與網(wǎng)卡設(shè)備綁定的驅(qū)動時才艮據(jù)CPU核的數(shù)量對DMA 寫引擎分配緩沖區(qū)隊列,即,對每個CPU均分配一個——對應(yīng)的緩存區(qū), 并將緩沖區(qū)隊列相關(guān)描述信息寫到網(wǎng)卡寄存器;(2) 網(wǎng)卡在接收IP報文的同時,數(shù)據(jù)采集和處理模塊抽取IP報文 包頭中四元組(也可以是一元組、二元組、三元組、或五元組),利用 Hash算法計算出一個hash值,然后將IP報文和相應(yīng)的hash值提交給確
定模塊;
(3) 確定模塊根據(jù)hash值和軟件配置好的分流算法算出報文所屬 的線程號,然后根據(jù)線程號選擇相應(yīng)的DMA緩存區(qū)隊列的描述符信息
(隊列的地址、長度);
(4 ) DMA寫控制模塊將待發(fā)送的寫入請求打包成PCIe事務(wù)層數(shù)據(jù) 包格式發(fā)送到PCIe接口 (或PCIe接口控制器),當請求的所有數(shù)據(jù)傳 輸完成時向DMA寫控制模塊返回完成信號;
(5 ) DMA寫控制模塊收到請求完成信號之后完成一個IP報文的傳 輸過程,然后更新寄存器中DMA寫緩沖區(qū)隊列的信息,并開始處理下 一個IP包的傳輸。
在上述步驟(5)中,在寫入時,主機側(cè)的芯片組會將數(shù)據(jù)主機側(cè)的 主存中的某個緩存區(qū)中,主存中包括與多個CPU核core 1、 core 2、...、 core n對應(yīng)的緩存區(qū)1至緩存區(qū)n中。
在本發(fā)明中,DMA寫引擎(DMA寫控制模塊)可以支持64個DMA 寫緩沖區(qū)隊列,并且軟件啟動的緩沖區(qū)隊列數(shù)目以及各個隊列的流量比 例可以配置,從而滿足當前以及未來幾年主流SMP服務(wù)器的要求,并且 可以很容易地對DMA寫引擎進行擴展,使其支持128甚至更多的緩沖 區(qū)隊列。
通過上述裝置,使得CPU僅僅訪問與其對應(yīng)的緩存區(qū),避免了相關(guān) 技術(shù)中由于交叉訪問帶來的訪問沖突,節(jié)省CPU的資源,能夠有效提高 DMA4喿作的效率。
綜上所述,本發(fā)明針對對稱多處理(Symmetrical Multi Processing, 簡稱為SMP)系統(tǒng)的多CPU多核的架構(gòu),提出了多隊列單引擎的DMA 方法,每一個DMA隊列對應(yīng)一個CPU核和一個軟件線程,軟件各個凄史 據(jù)處理線程之間幾乎沒有交互,避免了相關(guān)技術(shù)中的訪問沖突和訪問資 源竟爭,降低單隊列DMA方法中的多線程同步開銷和操作系統(tǒng)協(xié)議棧開銷,充分利用系統(tǒng)的處理器資源,提高DMA數(shù)據(jù)傳輸帶寬和處理效 率,改善系統(tǒng)性能。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步 驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上, 或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝 置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計 算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們 中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不 限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對 于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明 的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在 本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種直接存儲器訪問的實現(xiàn)方法,其特征在于,包括網(wǎng)卡根據(jù)其接收的報文的控制信息確定與所述報文一一對應(yīng)的線程;所述網(wǎng)卡確定主機上與所述線程一一對應(yīng)的緩存區(qū),并將所述報文寫入所述緩存區(qū)中,其中,每個緩存區(qū)與所述主機上的CPU核一一對應(yīng)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,網(wǎng)卡根據(jù)所述報文的 控制信息確定相應(yīng)線程的操作包括所述網(wǎng)卡根據(jù)所述報文的控制信息進行哈希計算得到哈希值,并根 據(jù)所述哈希值確定相應(yīng)的線程。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述網(wǎng)卡確定與所 述線程——對應(yīng)的緩存區(qū)之后,所述方法進一步包括所述網(wǎng)卡根據(jù)其本地緩存的緩存區(qū)描述符信息確定所述緩存區(qū)的地 址和長度,以便之后進行報文的寫入。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述網(wǎng)卡將所述報文 寫入所述緩存區(qū)的處理包括所述網(wǎng)卡向所述主機發(fā)送寫入請求,并在所述主機響應(yīng)于所述寫入 請求返回完成信號時完成才艮文的寫入。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述網(wǎng)卡將所述報 文寫入所述緩存區(qū)中之后,所述方法還包括所述網(wǎng)卡在其本地更新本次在所述緩存區(qū)進行寫入的結(jié)束地址。
6. 根據(jù)權(quán)利要求1至5中任一項所述的方法,其特征在于,所述控 制信息為以下之一 一元組信息、二元組信息、三元組信息、四元組信 息、五元組信息。
7. —種直接存儲器訪問的實現(xiàn)裝置,設(shè)置于網(wǎng)卡側(cè),其特征在于, 所述裝置包括接收模塊,用于接收報文;第一確定模塊,用于根據(jù)所述接收模塊接收的所述報文的控制信息確定與所述才艮文——對應(yīng)的線程;第二確定模塊,用于確定主機上與確定的所述線程——對應(yīng)的緩存區(qū);寫入模塊,用于將所述報文寫入確定的所述緩存區(qū)中,其中,每個緩存區(qū)與所述主機上的CPU核——對應(yīng)。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一確定模塊用 于根據(jù)所述報文的控制信息進行哈希計算得到哈希值,并根據(jù)所述哈希 值確定相應(yīng)的線程。
9. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,進一步包括 寄存器,用于存儲所述主機上緩存區(qū)的地址和長度,以便所述寫入 模塊在寫入報文時參照。
10. 根據(jù)權(quán)利要求7至9中任一項所述的裝置,其特征在于,所述 控制信息為以下之一 一元組信息、二元組信息、三元組信息、四元組 信息、五元組信息。
全文摘要
本發(fā)明提供了一種直接存儲器訪問的實現(xiàn)方法和裝置,其中,該方法包括網(wǎng)卡根據(jù)其接收的報文的控制信息確定與報文一一對應(yīng)的線程;網(wǎng)卡確定主機上與線程一一對應(yīng)的緩存區(qū),并將報文寫入緩存區(qū)中,其中,每個緩存區(qū)與主機上的CPU核一一對應(yīng)。通過使用本發(fā)明,能夠使每一個DMA隊列對應(yīng)一個CPU核和一個軟件線程,軟件各個數(shù)據(jù)處理線程之間幾乎沒有交互,避免了相關(guān)技術(shù)中的訪問沖突,降低單隊列DMA方法中的多線程同步開銷,充分利用系統(tǒng)的處理器資源,提高DMA數(shù)據(jù)傳輸帶寬和處理效率。
文檔編號G06F13/28GK101650698SQ20091009183
公開日2010年2月17日 申請日期2009年8月28日 優(yōu)先權(quán)日2009年8月28日
發(fā)明者劉興奎, 劉新春, 劉朝暉, 軍 歷, 李永成, 竇曉光, 華 聶, 賀志強, 邵宗有 申請人:曙光信息產(chǎn)業(yè)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
勐海县| 永兴县| 信宜市| 孝昌县| 磐安县| 隆昌县| 开原市| 枣强县| 永善县| 融水| 五常市| 麻城市| 阿尔山市| 石家庄市| 平陆县| 涟水县| 天柱县| 扬中市| 迁西县| 开江县| 亳州市| 新昌县| 呈贡县| 万山特区| 青铜峡市| 蓝山县| 漯河市| 虞城县| 宁津县| 清河县| 迁安市| 文昌市| 高要市| 集安市| 湟中县| 方正县| 土默特左旗| 益阳市| 公安县| 湖南省| 信丰县|