專利名稱:一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于多核實(shí)時(shí)系統(tǒng)的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器,具體的說是一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法。
背景技術(shù):
隨著實(shí)時(shí)系統(tǒng)的高速發(fā)展,單顆處理器芯片已無法滿足實(shí)時(shí)系統(tǒng)對計(jì)算帶寬的需求。成本低、計(jì)算能力強(qiáng)的多核處理器必將在高端實(shí)時(shí)系統(tǒng)中得到廣泛應(yīng)用。但是多核處理器的特殊結(jié)構(gòu)會(huì)制約系統(tǒng)的實(shí)時(shí)性。這對實(shí)時(shí)系統(tǒng)的設(shè)計(jì),特別是實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)提出了新挑戰(zhàn)。多核處理器中存在多個(gè)核心共享的硬件資源,如共享Cache與前端總線等。并發(fā)任務(wù)會(huì)通過這些共享資源相互干擾,降低彼此的實(shí)時(shí)性。當(dāng)實(shí)時(shí)任務(wù)的時(shí)限約束被違反時(shí),可能會(huì)降低系統(tǒng)性能,甚至威脅到系統(tǒng)的安全。同時(shí),多數(shù)實(shí)時(shí)系統(tǒng)具有混合任務(wù)集,同時(shí)包含實(shí)時(shí)任務(wù)和非實(shí)時(shí)任務(wù)。當(dāng)實(shí)時(shí)任務(wù)與非實(shí)時(shí)任務(wù)并發(fā)執(zhí)行時(shí),非實(shí)時(shí)任務(wù)可能會(huì)通過處理器中的共享資源干擾實(shí)時(shí)任務(wù)的執(zhí)行,導(dǎo)致實(shí)時(shí)任務(wù)丟失時(shí)限。因此,在將多核處理器應(yīng)用到實(shí)時(shí)系統(tǒng)中時(shí),必須解決共享資源對實(shí)時(shí)性的制約問題。通過硬件或軟件的方法,可以實(shí)現(xiàn)共享Cache劃分。為實(shí)時(shí)性高的訪存密集型任務(wù)分配一個(gè)獨(dú)立的Cache區(qū)域。使得并發(fā)的低優(yōu)先級任務(wù)不會(huì)換出該任務(wù)在Cache中的數(shù)據(jù)?,F(xiàn)有的通用處理器基本不支持基于硬件的Cache劃分。因此,在廣泛使用通用處理器的開放式數(shù)控系統(tǒng)中只能選用基于軟件的劃分方法。不過,在常用的實(shí)時(shí)操作系統(tǒng)中,尚未出現(xiàn)具有Cache劃分功能的實(shí)時(shí)內(nèi)存管理器。
發(fā)明內(nèi)容
為了克服多核實(shí)時(shí)系統(tǒng)中,并發(fā)任務(wù)通過共享Cache相互干擾,以降低系統(tǒng)實(shí)時(shí)性的問題,本發(fā)明實(shí)現(xiàn)了一種針對多核實(shí)時(shí)系統(tǒng)的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器。通過將內(nèi)存與共享Cache劃分為多個(gè)獨(dú)立區(qū)域,使得高優(yōu)先級的硬實(shí)時(shí)任務(wù)不會(huì)受到其它任務(wù)通過Cache的干擾。從而提高了系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,包括以下步驟:步驟1:采用頁面著色技術(shù)將物理內(nèi)存與多核處理器的共享Cache劃分為4個(gè)區(qū)域:獨(dú)占區(qū)、共享區(qū)、通信區(qū)與非實(shí)時(shí)區(qū);步驟2:為獨(dú)占區(qū)與共享區(qū)分別建立空閑頁面管理系統(tǒng),所述空閑頁面管理系統(tǒng)包括空閑空間管理方法與空閑空間分配方法;步驟3:利用多種同步機(jī)制封裝通信區(qū),實(shí)現(xiàn)基于Cache的任務(wù)間高速通信;步驟4:將非實(shí)時(shí)區(qū)交由宿主操作系統(tǒng)進(jìn)行管理。所述獨(dú)占區(qū)空閑頁面管理方法為:每個(gè)需要獨(dú)立Cache區(qū)域的硬實(shí)時(shí)任務(wù)均設(shè)置若干個(gè)空閑空間隊(duì)列;隊(duì)列的數(shù)量等于該硬實(shí)時(shí)任務(wù)擁有的頁面顏色的數(shù)量;隊(duì)列i中的元素是大小為i個(gè)頁面的空閑內(nèi)存空間;空閑空間尾部的32字節(jié)為指向隊(duì)列中下個(gè)空閑空間的指針。所述獨(dú)占區(qū)空閑頁面分配方法為:根據(jù)請求的頁面數(shù)與是否要求物理上連續(xù),在該任務(wù)的空閑隊(duì)列中,為該任務(wù)選取空閑頁面;如果申請η個(gè)頁面并且要求物理地址連續(xù),則在隊(duì)列η中為該任務(wù)分配相應(yīng)的空閑空間;如果隊(duì)列η中沒有空閑頁面,則在大于編號大于η的隊(duì)列中為該任務(wù)分配,并將剩余的頁面插入到合適的隊(duì)列中;如果不要求物理地址連續(xù),則從編號最低的隊(duì)列開始,為該任務(wù)分配η個(gè)頁面,并完成地址映射。所述共享區(qū)空閑頁面管理方法為:共享區(qū)中每種顏色的空閑頁面均有各自的空閑空間隊(duì)列,隊(duì)列中的元素為該顏色的空閑頁面;每個(gè)空閑頁面的尾部32字節(jié)指向隊(duì)列中下個(gè)空閑頁面。所述共享區(qū)空閑頁面分配方法為:對每種顏色的空閑隊(duì)列均進(jìn)行使用計(jì)數(shù),記錄使用該顏色頁面的任務(wù)數(shù);分配空閑頁面時(shí),從計(jì)數(shù)最小的任務(wù)隊(duì)列開始分配,并完成相應(yīng)的地址映射。所述基于Cache的任務(wù)間高速通信機(jī)制為:在內(nèi)存與Cache中設(shè)置獨(dú)立區(qū)域用于任務(wù)間通信,采用多種同步方法對該區(qū)域進(jìn)行封裝。本發(fā)明具有以下優(yōu)點(diǎn):1.本發(fā)明實(shí)現(xiàn)了一種針對多核實(shí)時(shí)系統(tǒng)的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器。通過將內(nèi)存與共享Cache劃分為多個(gè)獨(dú)立區(qū)域,使得高優(yōu)先級的硬實(shí)時(shí)任務(wù)不會(huì)受到其它任務(wù)通過Cache的干擾,從而提高了系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。2.在此基礎(chǔ)上,實(shí)現(xiàn)了一種基于Cache的任務(wù)間聞速通彳目機(jī)制,進(jìn)一步提聞了系統(tǒng)的實(shí)時(shí)性。
圖1為計(jì)算機(jī)物理地址與Cache地址之間的對應(yīng)關(guān)系的示意圖;圖2為基于頁面著色技術(shù)的地址映射的示意圖;圖3為RTMM中的內(nèi)存區(qū)域劃分的示意圖;圖4為獨(dú)占區(qū)中的空閑頁面的示意圖;圖5為共享區(qū)中的空閑頁面的示意圖;圖6為共享區(qū)內(nèi)存分配方法的示意圖;圖7為實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器的結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合附圖及實(shí)施例對本發(fā)明做進(jìn)一步的詳細(xì)說明。本發(fā)明的基本內(nèi)容為:建立基于頁面著色技術(shù)的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理模型、建立獨(dú)立區(qū)內(nèi)存管理方法、建立共享區(qū)內(nèi)存管理方法、建立基于Cache的任務(wù)間高速通信機(jī)制。利用頁面著色技術(shù),通過設(shè)計(jì)實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器及相關(guān)算法,實(shí)現(xiàn)了多核數(shù)控系統(tǒng)中共享Cache的劃分。I頁面著色技術(shù)頁面著色是一種通過控制物理頁面的分配劃分共享Cache的技術(shù)。在X86等通用處理器中,物理地址中的頁表段與Cache地址中的Cache組號段具有重疊的位段。這就意味著某個(gè)Cache組所對應(yīng)的物理頁面集合是固定的。在PentiumE2200處理器上,4路組相聯(lián)的共享L2Cache容量為1MB,訪問L2Cache的有效地址為20位。在物理地址中,低12位為頁內(nèi)偏移,第12到第31位為頁表段,用來索引頁表。那么物理地址與Cache地址中的第12-19位就是重疊位段,我們將其稱為可控位段。如圖1所示。利用8位可控位可以將物理頁面劃分為256個(gè)集合,同一集合中的頁面會(huì)被映射到共享Cache中的同一區(qū)域。從而通過區(qū)分物理頁面的方式,將共享Cache劃分成了 256個(gè)區(qū)域。我們?yōu)槊總€(gè)集合中的頁面均指定一種顏色。那么每個(gè)獨(dú)立的Cache區(qū)域均對應(yīng)一種特定的顏色物理頁面。Cache區(qū)域的最小粒度為I個(gè)頁面,即4K大小。如圖2所示,通過為任務(wù)分配特定顏色的物理頁面,就可以將該任務(wù)使用的Cache范圍限制在特定的區(qū)域中。2實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器RTMM的結(jié)構(gòu)基于頁面著色技術(shù),本文在實(shí)時(shí)操作系統(tǒng)RTAI (Real-time ApplicationInterface)[]中實(shí)現(xiàn)了實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器RTMM。RTAI是一種基于Linux的開源實(shí)時(shí)操作系統(tǒng),能夠提供良好的硬實(shí)時(shí)保證與豐富的系統(tǒng)功能。動(dòng)態(tài)內(nèi)存管理是實(shí)時(shí)操作系統(tǒng)的一項(xiàng)重要功能,它在確定的時(shí)間內(nèi)為任務(wù)動(dòng)態(tài)分配所需的物理內(nèi)存空間,并完成地址映射。為了避免空閑空間不足的現(xiàn)象,RTMM為實(shí)時(shí)任務(wù)預(yù)留了一部分內(nèi)存空間,并且對這部分空間進(jìn)行有效管理,以減少內(nèi)存碎片,充分利用物理內(nèi)存空間。在RTMM中,物理內(nèi)存被劃分為2個(gè)部分:供Linux使用的非實(shí)時(shí)區(qū)域與為實(shí)時(shí)任務(wù)預(yù)留的實(shí)時(shí)區(qū)域。相應(yīng)的,共享Cache也被劃分為實(shí)時(shí)區(qū)域和非實(shí)時(shí)區(qū)域。RTMM主要管理實(shí)時(shí)區(qū)域的內(nèi)存空間,非實(shí)時(shí)區(qū)域的內(nèi)存空間仍由Linux管理。RTMM在Linux初始化內(nèi)存時(shí)便預(yù)留出實(shí)時(shí)區(qū)域?qū)?yīng)的頁面,Linux將不再識別這些物理頁面的存在。如圖3所示,RTMM進(jìn)一步將實(shí)時(shí)內(nèi)存區(qū)域劃分為三個(gè)子區(qū)域。分別為:獨(dú)占區(qū)、通信區(qū)和共享區(qū)。獨(dú)占區(qū)為那些需要獨(dú)立Cache區(qū)域的硬實(shí)時(shí)任務(wù)預(yù)留。共享區(qū)由不需要獨(dú)立Cache區(qū)域的軟實(shí)時(shí)任務(wù)使用。通信區(qū)則用以實(shí)現(xiàn)基于Cache的任務(wù)間高速通信。三個(gè)區(qū)域分別具有各自的內(nèi)存管理方式。3獨(dú)占區(qū)的內(nèi)存管理如圖2所示,相同顏色的頁面在物理上不連續(xù)。但是數(shù)控系統(tǒng)中的硬實(shí)時(shí)任務(wù)通常需要操作總線控制卡、PLC控制卡等硬件單元。這些硬件單元的DMA (DirectMemoryAccess,直接內(nèi)存存取)操作需要連續(xù)的物理地址空間[ULK]。當(dāng)硬實(shí)時(shí)任務(wù)需要的連續(xù)地址空間超過一個(gè)頁面時(shí),必須為其分配多種顏色的物理頁面。RTMM根據(jù)硬實(shí)時(shí)任務(wù)請求的內(nèi)存空間以及所需連續(xù)地址空間的大小,在獨(dú)占區(qū)中為其分配合適的顏色數(shù)。這些顏色的物理頁面僅供該任務(wù)使用。一個(gè)硬實(shí)時(shí)任務(wù)可以擁有多種顏色的頁面,但某種顏色的頁面只能屬于一個(gè)硬實(shí)時(shí)任務(wù)。RTMM采用類似于伙伴系統(tǒng)的方法管理各個(gè)任務(wù)的空閑物理頁面。假設(shè)某個(gè)實(shí)時(shí)任務(wù)擁有的顏色數(shù)為Ne,那么該區(qū)域中最大連續(xù)頁面的數(shù)量便為Ne。按照空閑區(qū)域的大小,將它們分別保存在Ne個(gè)隊(duì)列中。隊(duì)列η的結(jié)點(diǎn)是大小為η個(gè)頁面的連續(xù)空閑空間。如圖4所示,任務(wù)Tl擁有3種顏色的物理頁面。那么Tl所擁有的空閑內(nèi)存空間便被組織在3個(gè)隊(duì)列中。隊(duì)列I保存大小為I個(gè)頁面的空閑空間,隊(duì)列3保存大小為3個(gè)頁面的空閑物理空間。在每個(gè)空閑區(qū)域的最后一個(gè)頁面中,尾部的4個(gè)字節(jié)用來保存指向下一個(gè)空閑區(qū)域的指針。初始狀態(tài)下,所有空閑區(qū)域都鏈在編號最高的隊(duì)列,即隊(duì)列Ne中。任務(wù)Ti請求內(nèi)存空間時(shí),首先通過公式(I)獲取所需的頁面數(shù):
pfn = |~M / ](I)公式(I)中,M為任務(wù)所需內(nèi)存空間的大小,4K為頁面大小。當(dāng)pfn小于Ne時(shí),如果編號為Pfn的隊(duì)列不空,便從該隊(duì)列中獲取一個(gè)空閑結(jié)點(diǎn),將其分配給Ti。如果該隊(duì)列為空,便在編號大于Pfn的隊(duì)列中獲取一個(gè)空閑結(jié)點(diǎn),取出頁面數(shù)為pfn的區(qū)域分配給Ti,并將剩下的連續(xù)頁面插入到合適的隊(duì)列。如果編號為Pfn以及所有編號大于pfn的隊(duì)列均為空,就在不空的隊(duì)列中取下Pfn個(gè)不連續(xù)頁面,并通過地址映射將它們映射到連續(xù)的虛擬地址空間中。此時(shí),需通過返回值知會(huì)任務(wù)Ti,這次分配的空間在物理上是不連續(xù)的。當(dāng)pfn大于Ne時(shí),便無法獲得pfn個(gè)連續(xù)物理頁面,只能為Ti分配若干個(gè)不連續(xù)的區(qū)域,并將它們映射到連續(xù)的虛擬地址空間。圖4為系統(tǒng)運(yùn)行時(shí),獨(dú)占區(qū)空閑頁面的組織結(jié)構(gòu)。獨(dú)占區(qū)中共有4個(gè)任務(wù)與7種顏色的頁面。任務(wù)Tl擁有3種顏色,T2擁有2種顏色,T3與T4分別只擁有I種顏色。Tl的空閑內(nèi)存分別存放在3個(gè)隊(duì)列中,最多能夠申請到大小為3個(gè)頁面的連續(xù)內(nèi)存區(qū)域。通過這種類似于伙伴系統(tǒng)的空閑頁面管理方式,可以方便、高效地為硬實(shí)時(shí)任務(wù)分配連續(xù)的物理內(nèi)存空間。4共享區(qū)的內(nèi)存管理由于共享Cache容量有限,不可能為數(shù)控系統(tǒng)中的每個(gè)任務(wù)均分配一個(gè)獨(dú)立的Cache區(qū)域。因此,可以將實(shí)時(shí)性需求不太強(qiáng)的軟實(shí)時(shí)任務(wù)放置在同一個(gè)Cache區(qū)域中,僅需避免其它種類的任務(wù)對它們的干擾即可。RTMM的共享區(qū)是供軟實(shí)時(shí)任務(wù)使用的內(nèi)存區(qū)域,它將軟實(shí)時(shí)任務(wù)在Cache中的數(shù)據(jù)限制在一個(gè)獨(dú)立的區(qū)域中,防止了訪存密集的非實(shí)時(shí)任務(wù)通過共享Cache對它們的干擾。對共享Cache的訪問沖突除了會(huì)影響任務(wù)的實(shí)時(shí)性以外,還會(huì)降低系統(tǒng)的吞吐量。雖然共享區(qū)中的實(shí)時(shí)任務(wù)優(yōu)先級較低,但也需要減少訪問沖突,提高系統(tǒng)的吞吐量。因此,在為共享區(qū)中的任務(wù)分配內(nèi)存時(shí),盡量降低多個(gè)任務(wù)使用同一種顏色的頁面的概率。針對上述目的,RTMM在共享區(qū)中采用了與獨(dú)占區(qū)不同的空閑頁面管理方法。在共享區(qū)中,每種顏色的空閑頁面均有獨(dú)立的空閑隊(duì)列。RTMM為每個(gè)空閑隊(duì)列都設(shè)置了一個(gè)標(biāo)志,用以記錄這種顏色的頁面目前正在被多少個(gè)任務(wù)使用。在分配內(nèi)存時(shí),選擇一個(gè)任務(wù)數(shù)最小的隊(duì)列,盡量將任務(wù)均分在不同顏色的隊(duì)列上。假設(shè)系統(tǒng)中共有7個(gè)任務(wù),8種顏色的64個(gè)頁面。每種顏色各有8個(gè)頁面。圖5反映了系統(tǒng)運(yùn)行過程中,某個(gè)狀態(tài)下的共享區(qū)空閑頁面的組織結(jié)構(gòu)。圖6反映了共享區(qū)中,各個(gè)任務(wù)所占的內(nèi)存區(qū)域。這種分配方法最小化了共享區(qū)中,各個(gè)任務(wù)與其它任務(wù)的顏色
重合度。5通信區(qū)的內(nèi)存管理共享緩存是任務(wù)間通信的基本形式之一。如圖1所示,數(shù)控系統(tǒng)的各個(gè)實(shí)時(shí)任務(wù)之間均使用共享緩存相互通信。數(shù)控系統(tǒng)中的共享緩存并不需要占用很大的內(nèi)存空間與Cache區(qū)域,但它卻是任務(wù)工作集的重要組成部分。各個(gè)實(shí)時(shí)任務(wù)在執(zhí)行期間都會(huì)頻繁讀寫這些內(nèi)存區(qū)域。RTMM的通信區(qū)專用于映射共享緩存,為各個(gè)共享緩沖分配獨(dú)立的頁面顏色與Cache區(qū)域。任務(wù)對其它內(nèi)存區(qū)域的訪問不會(huì)置換通信區(qū)在共享Cache中的內(nèi)容。這在很大程度上減少了實(shí)時(shí)任務(wù)訪問內(nèi)存的次數(shù)。不僅提高了任務(wù)訪問共享緩存的速度,還增強(qiáng)了任務(wù)執(zhí)行時(shí)間的可預(yù)測性。為了提高共享緩存的易用性,本文利用FIFO,郵箱等同步方法對共享緩存進(jìn)行封裝,實(shí)現(xiàn)了多種基于Cache的任務(wù)間通信方法。以上所述的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器的結(jié)構(gòu)如圖7所示。
權(quán)利要求
1.一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,其特征在于,包括以下步驟: 步驟1:采用頁面著色技術(shù)將物理內(nèi)存與多核處理器的共享Cache劃分為4個(gè)區(qū)域:獨(dú)占區(qū)、共享區(qū)、通信區(qū)與非實(shí)時(shí)區(qū); 步驟2:為獨(dú)占區(qū)與共享區(qū)分別建立空閑頁面管理系統(tǒng),所述空閑頁面管理系統(tǒng)包括空閑空間管理方法與空閑空間分配方法; 步驟3:利用多種同步機(jī)制封裝通信區(qū),實(shí)現(xiàn)基于Cache的任務(wù)間高速通信; 步驟4:將非實(shí)時(shí)區(qū)交由宿主操作系統(tǒng)進(jìn)行管理。
2.根據(jù)權(quán)利要求1所述的一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,其特征在于,所述獨(dú)占區(qū)空閑頁面管理方法為:每個(gè)需要獨(dú)立Cache區(qū)域的硬實(shí)時(shí)任務(wù)均設(shè)置若干個(gè)空閑空間隊(duì)列;隊(duì)列的數(shù)量等于該硬實(shí)時(shí)任務(wù)擁有的頁面顏色的數(shù)量;隊(duì)列i中的元素是大小為i個(gè)頁面的空閑內(nèi)存空間;空閑空間尾部的32字節(jié)為指向隊(duì)列中下個(gè)空閑空間的指針。
3.根據(jù)權(quán)利要求1所述的一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,其特征在于,所述獨(dú)占區(qū)空閑頁面分配方法為:根據(jù)請求的頁面數(shù)與是否要求物理上連續(xù),在該任務(wù)的空閑隊(duì)列中,為該任務(wù)選取空閑頁面;如果申請η個(gè)頁面并且要求物理地址連續(xù),則在隊(duì)列η中為該任務(wù)分配相應(yīng)的空閑空間;如果隊(duì)列η中沒有空閑頁面,則在大于編號大于η的隊(duì)列中為該任務(wù)分配,并將剩余的頁面插入到合適的隊(duì)列中;如果不要求物理地址連續(xù),則從編號最低的隊(duì)列開始,為該任務(wù)分配η個(gè)頁面,并完成地址映射。
4.根據(jù)權(quán)利要求1所述的一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,其特征在于,所述共享區(qū)空閑頁面管理方法為:共享區(qū)中每種顏色的空閑頁面均有各自的空閑空間隊(duì)列,隊(duì)列中的元素為該顏色的空閑頁面;每個(gè)空閑頁面的尾部32字節(jié)指向隊(duì)列中下個(gè)空閑頁面。
5.根據(jù)權(quán)利要求1所述的一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,其特征在于,所述共享區(qū)空閑頁面分配方法為:對每種顏色的空閑隊(duì)列均進(jìn)行使用計(jì)數(shù),記錄使用該顏色頁面的任務(wù)數(shù);分配空閑頁面時(shí),從計(jì)數(shù)最小的任務(wù)隊(duì)列開始分配,并完成相應(yīng)的地址映射。
6.根據(jù)權(quán)利要求1所述的一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法,其特征在于,所述基于Cache的任務(wù)間高速通信機(jī)制為:在內(nèi)存與Cache中設(shè)置獨(dú)立區(qū)域用于任務(wù)間通信,采用多種同步方法對該區(qū)域進(jìn)行封裝。
全文摘要
本發(fā)明涉及一種用于多核實(shí)時(shí)系統(tǒng)的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器,具體的說是一種面向多核處理器的實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理器實(shí)現(xiàn)方法。采用頁面著色技術(shù)將物理內(nèi)存與多核處理器的共享Cache劃分為4個(gè)區(qū)域獨(dú)占區(qū)、共享區(qū)、通信區(qū)與非實(shí)時(shí)區(qū);為獨(dú)占區(qū)與共享區(qū)分別建立空閑頁面管理系統(tǒng);利用多種同步機(jī)制封裝通信區(qū),實(shí)現(xiàn)基于Cache的任務(wù)間高速通信;將非實(shí)時(shí)區(qū)交由宿主操作系統(tǒng)進(jìn)行管理。本發(fā)明通過將內(nèi)存與共享Cache劃分為多個(gè)獨(dú)立區(qū)域,使得高優(yōu)先級的硬實(shí)時(shí)任務(wù)不會(huì)受到其它任務(wù)通過Cache的干擾。從而提高了系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性。在此基礎(chǔ)上,實(shí)現(xiàn)了一種基于Cache的任務(wù)間高速通信機(jī)制,進(jìn)一步提高了系統(tǒng)的實(shí)時(shí)性。
文檔編號G06F9/50GK103164278SQ20111040971
公開日2013年6月19日 申請日期2011年12月9日 優(yōu)先權(quán)日2011年12月9日
發(fā)明者于東, 秦承剛, 吳文江, 董磊, 陳龍 申請人:沈陽高精數(shù)控技術(shù)有限公司