[發(fā)明專利]基于親和性感知的DMA緩沖區(qū)管理方法及裝置有效
| 申請?zhí)枺?/td> | 201210078365.7 | 申請日: | 2012-03-22 |
| 公開(公告)號: | CN102662891A | 公開(公告)日: | 2012-09-12 |
| 發(fā)明(設計)人: | 程旭;鐘祺;管雪濤;王晶 | 申請(專利權(quán))人: | 北京北大眾志微系統(tǒng)科技有限責任公司 |
| 主分類號: | G06F13/28 | 分類號: | G06F13/28;G06F12/08 |
| 代理公司: | 常州市維益專利事務所 32211 | 代理人: | 路接洲 |
| 地址: | 100080 北京市海淀區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 親和性 感知 dma 緩沖區(qū) 管理 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及到計算機系統(tǒng)的內(nèi)存管理方法,一種基于親和性感知的DMA緩沖區(qū)管理方法及裝置。
背景技術(shù)
外設的輸入輸出各需要經(jīng)歷4個步驟。輸入的4個步驟是:(1)將數(shù)據(jù)從外設復制到內(nèi)核空間。如果沒有提供DMA(direct?memory?access)方式,則復制操作由CPU執(zhí)行,數(shù)據(jù)將兩次經(jīng)過存儲總線;(2)對數(shù)據(jù)進行校驗和計算,此操作涉及到所有的傳輸數(shù)據(jù),數(shù)據(jù)將再次經(jīng)過存儲總線;(3)將數(shù)據(jù)從內(nèi)核復制到用戶空間,此操作必須由CPU執(zhí)行,數(shù)據(jù)跨越內(nèi)核與用戶空間,經(jīng)過兩次存儲總線;(4)應用從用戶空間獲取數(shù)據(jù)。與接收過程相對,輸出也需要類似的4個步驟。顯然,在整個輸入/輸出過程中,數(shù)據(jù)最多會6次經(jīng)過存儲總線,存儲總線需要提供6倍于I/O數(shù)據(jù)流的帶寬。
隨著片上多處理器系統(tǒng)的普及,多個線程會共享使用片上Cache資源,包括應用程序和內(nèi)核線程,其中I/O處理屬于典型的內(nèi)核線程。但是傳統(tǒng)的最近最少使用(LRU)的Cache替換策略并不能區(qū)分不同線程的訪問,因此一個線程的Cache失效可能會替換屬于另一個線程的Cache塊,該問題被稱為線程間干擾。為了減少線程間的干擾,相關(guān)工作使用親和性描述數(shù)據(jù)的分布與訪存性能的關(guān)系。進程在包含其所需數(shù)據(jù)的處理器上運行,能減少數(shù)據(jù)在處理器之間的流動,提高處理器的訪存效率,即數(shù)據(jù)在存儲層次中的位置決定了訪存的開銷。
特別是在近幾年高速帶寬和設備的出現(xiàn),系統(tǒng)含有大量用于處理I/O的線程,其與應用程序并行執(zhí)行。因此,Cache的干擾問題不僅僅局限于應用程序之間,在I/O和應用之間同樣會存在Cache干擾的問題。由于I/O的數(shù)據(jù)重用度較低,并且每次外設進行I/O時,Cache中的部分數(shù)據(jù)會因替換而寫回主存。一旦設備I/O的過程結(jié)束,被寫回的數(shù)據(jù)需要再次被使用時,又需要從主存中讀取。
因此,針對處理器中各個線程間共享的存儲資源,特別是對于資源受限和設計較為簡單的嵌入式系統(tǒng),需要借助操作系統(tǒng)來管理資源,更需要從軟件的角度提供一種改進的內(nèi)存管理方法,方法的靈活性和通用性,從而實現(xiàn)對系統(tǒng)性能的優(yōu)化。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是:提出一種基于親和性感知的DMA緩沖區(qū)管理方法及裝置,解決如何減少I/O處理過程引入的偏外存儲訪問,包含兩個方面:1.)降低I/O處理過程自身的訪存開銷;2.)緩解I/O處理過程引入的Cache污染問題。
本發(fā)明所采用的技術(shù)方案為:一種基于親和性感知的DMA緩沖區(qū)管理方法,包括:以親和性的高低將緩沖區(qū)分為兩類,并確定不同I/O處理過程對緩沖區(qū)親和性的需求。并使用純軟件的手段,在操作系統(tǒng)層來標識緩沖區(qū)的親和性。
具體的說,以輸出處理過程的特點來標識低親和性緩沖區(qū),具體包括:輸出過程中,由于一致性維護操作后,處理器不再訪問輸出緩沖區(qū),所以將最近釋放的輸出緩沖區(qū)記錄為低親和性。
以輸入處理過程的特點來標識高親和性緩沖區(qū),具體包括:當輸入過程中,緩沖區(qū)釋放前,處理器需要將輸入緩沖區(qū)中的數(shù)據(jù)拷貝到用戶緩沖區(qū),所以將最近釋放的輸入緩沖區(qū)標識為高親和性。
將不同親和性的緩沖區(qū)集中管理,具體包括:所有最近被釋放的低親和性緩沖區(qū)存放于低親和性鏈表中,最近被釋放的高親和性緩沖區(qū)存放于高親和性鏈表中。
針對不同親和性的緩沖區(qū)采用不同的管理策略,具體包括:對于高親和性的緩沖區(qū)采用先進先出的管理策略,使高親和性的緩沖區(qū)能盡快被重用,避免高親和性緩沖區(qū)中的數(shù)據(jù)被擠出Cache;對于低親和性的緩沖區(qū)采用后進先出的管理策略,使推遲低親和性緩沖區(qū)被重用的時機,保證緩沖區(qū)中盡可能多的數(shù)據(jù)位于Cache之外。
同時,本發(fā)明還提供了一種基于親和性感知的DMA緩沖區(qū)管理裝置,包括緩沖區(qū)親和性分析模塊,緩沖區(qū)收集模塊和緩沖區(qū)管理模塊,其中:
緩沖區(qū)親和性分析模塊,用于分析系統(tǒng)中緩沖區(qū)親和性的高低;高親和性的緩沖區(qū)中的數(shù)據(jù)會大量占據(jù)Cache資源;而親和性低的緩沖區(qū)中的數(shù)據(jù)會大量位于Cache之外;該模塊將被釋放緩沖區(qū)的親和性信息傳遞給緩沖區(qū)收集模塊;
緩沖區(qū)收集模塊,用于收集被標了親和性的緩沖區(qū);其中高親和性和低親和性的緩沖區(qū)被分開存放,分別保存于兩個不同的鏈表中,便于后續(xù)分配緩沖區(qū)時能夠快速定位不同親和性的緩沖區(qū);緩沖區(qū)收集模塊將鏈表中是否含有對應緩沖區(qū)的信息傳遞給緩沖區(qū)分配模塊,供后續(xù)的分配過程進行決策;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京北大眾志微系統(tǒng)科技有限責任公司,未經(jīng)北京北大眾志微系統(tǒng)科技有限責任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210078365.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





