一種存儲空間分配方法及裝置制造方法
【專利摘要】本發(fā)明提供了一種存儲空間分配方法及裝置,方法包括:接收驅(qū)動程序申請存儲空間的請求;確定多個可分配存儲空間的內(nèi)存控制器;在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。由于本發(fā)明實施例所提供的技術(shù)方案,在驅(qū)動程序申請內(nèi)存的存儲空間時,交替使用服務(wù)器上的多個內(nèi)存控制器上的內(nèi)存空間為驅(qū)動程序分配驅(qū)動程序所需的存儲空間,為后續(xù)讀寫數(shù)據(jù)提供多通道,實現(xiàn)多通道讀寫、并行處理,提高了應(yīng)用程序讀寫數(shù)據(jù)的速度,解決了現(xiàn)有技術(shù)所存在的讀寫速度較慢的問題。
【專利說明】—種存儲空間分配方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種存儲空間分配方法及裝置。
【背景技術(shù)】
[0002]龍芯是中國科學(xué)院計算所自主研發(fā)的通用CPU,采用簡單指令集。其中,龍芯3B雙路服務(wù)器(16核)支持4個內(nèi)存控制器,在這個平臺的高速網(wǎng)絡(luò)設(shè)備為插在主板上的增強型外設(shè)部件互連標(biāo)準(zhǔn)(PC1-E, Peripheral Component Interconnect)設(shè)備,采用了零拷貝技術(shù)。零拷貝技術(shù)的基本思想是:數(shù)據(jù)報從網(wǎng)絡(luò)設(shè)備到用戶空間傳遞的過程中,減少數(shù)據(jù)拷貝次數(shù)、系統(tǒng)調(diào)用,實現(xiàn)CPU的零參與,實現(xiàn)零拷貝最主要技術(shù)是直接內(nèi)存存取(DMA,Direct Memory Access)數(shù)據(jù)傳輸技術(shù)和內(nèi)存區(qū)域映射技術(shù)。驅(qū)動程序申請緩沖區(qū)直接映射到用戶空間,這樣,數(shù)據(jù)就可以直接通過DMA寫入內(nèi)存,也就是用戶空間。
[0003]目前,驅(qū)動程序申請的空間是通過調(diào)用內(nèi)核的分頁函數(shù)得到的一段連續(xù)的空間,申請的緩沖區(qū)數(shù)目和服務(wù)器的核數(shù)是一致的,也即16個。
[0004]現(xiàn)有技術(shù)不足在于:
[0005]由于驅(qū)動程序申請空間是通過調(diào)用內(nèi)核的分頁函數(shù)來實現(xiàn),這樣就不能保證申請到的16個緩沖區(qū)分布在不同的內(nèi)存控制器上,可能導(dǎo)致應(yīng)用程序讀寫網(wǎng)絡(luò)設(shè)備數(shù)據(jù)的速度較慢。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提出了一種存儲空間分配方法及裝置,解決了現(xiàn)有技術(shù)中應(yīng)用程序讀寫網(wǎng)絡(luò)設(shè)備數(shù)據(jù)速度較慢的技術(shù)問題。
[0007]本發(fā)明實施例提供了一種存儲空間分配方法,包括如下步驟:
[0008]接收驅(qū)動程序申請存儲空間的請求;
[0009]確定多個可分配存儲空間的內(nèi)存控制器;
[0010]在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。
[0011]本發(fā)明實施例提供了一種存儲空間分配裝置,包括:
[0012]接收單元,用于接收驅(qū)動程序申請存儲空間的請求;
[0013]確定單元,用于確定多個可分配存儲空間的內(nèi)存控制器;
[0014]分配單元,用于在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。
[0015]有益效果如下:
[0016]當(dāng)前驅(qū)動程序申請內(nèi)存中的存儲空間時可能存在應(yīng)用程序讀寫速度較慢的問題,由于本發(fā)明實施例所提供的技術(shù)方案,在驅(qū)動程序申請存儲空間時,首先確定多個可以分配存儲空間的內(nèi)存控制器,然后在這多個內(nèi)存控制器上的內(nèi)存空間選擇其中一個來分配驅(qū)動程序所需的存儲空間,從而使得驅(qū)動程序申請的存儲空間可以分布在不同內(nèi)存控制器上的內(nèi)存空間,避免了現(xiàn)有技術(shù)中由于利用分頁函數(shù)分配存儲空間的隨機性導(dǎo)致數(shù)據(jù)讀寫速度較慢的技術(shù)問題,提高了應(yīng)用程序讀寫數(shù)據(jù)的速度。
【專利附圖】
【附圖說明】
[0017]下面將參照附圖描述本發(fā)明的具體實施例,其中:
[0018]圖1示出了本發(fā)明實施例中存儲空間分配方法實施的流程示意圖;
[0019]圖2示出了本發(fā)明實施例中存儲空間分配實例示意圖;
[0020]圖3示出了本發(fā)明實施例中存儲空間分配裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]為了使本發(fā)明的技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖對本發(fā)明的示例性實施例進行進一步詳細(xì)的說明,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是所有實施例的窮舉。并且在不沖突的情況下,本說明中的實施例及實施例中的特征可以互相結(jié)合。
[0022]針對現(xiàn)有技術(shù)的不足,本發(fā)明實施例提出了一種存儲空間分配方法及裝置,下面進行說明。
[0023]圖1示出了本發(fā)明實施例存儲空間分配方法實施的流程示意圖,如圖所示,可以包括:
[0024]步驟101、接收驅(qū)動程序申請存儲空間的請求;
[0025]步驟102、確定多個可分配存儲空間的內(nèi)存控制器;
[0026]步驟103、在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。
[0027]實施中,存儲空間可以為用來緩沖輸入或輸出數(shù)據(jù)的緩沖區(qū)。
[0028]本發(fā)明實施例在驅(qū)動程序申請緩沖區(qū)時,不同的緩沖區(qū)交替使用服務(wù)器中各個內(nèi)存控制器上的內(nèi)存空間,從而實現(xiàn)多通道讀寫、并行處理,提高了應(yīng)用程序讀寫數(shù)據(jù)的速度,解決了現(xiàn)有技術(shù)所存在的讀寫速度較慢的問題。
[0029]實施中,擇一可以為:確定上一次分配存儲空間的內(nèi)存控制器;在除上一次分配存儲空間的內(nèi)存控制器之外的其他內(nèi)存控制器上的內(nèi)存空間分配驅(qū)動程序所需的存儲空間。
[0030]實施中,這些內(nèi)存控制器的內(nèi)存空間可以采用統(tǒng)一編址。
[0031]實施中,擇一可以為:根據(jù)上一次分配存儲空間的內(nèi)存控制器以及編址順序確定本次為驅(qū)動程序分配存儲空間的內(nèi)存控制器;
[0032]在該內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
[0033]本發(fā)明實施例通過采用按照編址順序,輪流或者交替使用服務(wù)器上內(nèi)存控制器的內(nèi)存空間,使得所有內(nèi)存控制器的內(nèi)存空間都可以充分利用起來,實現(xiàn)數(shù)據(jù)讀寫速度的最大化。
[0034]實施中,擇一可以為:選擇在已分配空間最少的內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
[0035]本發(fā)明實施例通過確定已分配空間最少的內(nèi)存控制器,使得服務(wù)器上所有內(nèi)存控制器的內(nèi)存空間相對均勻的使用或分配,避免了某一內(nèi)存控制器的內(nèi)存空間使用率相對較高而其他內(nèi)存控制器的內(nèi)存空間使用率較低的問題,有效提高數(shù)據(jù)讀寫速度。
[0036]實施中,可以接收16個申請存儲空間的請求,在4個內(nèi)存控制器的內(nèi)存空間上分配存儲空間。
[0037]以龍芯3B雙路服務(wù)器為例,在北橋芯片級里設(shè)計有四個內(nèi)存控制器,這四個內(nèi)存控制器可以相互獨立工作,每個內(nèi)存控制器控制一個內(nèi)存通道。由于本發(fā)明實施例在驅(qū)動程序申請緩沖區(qū)時是交替在這4個內(nèi)存控制器上的內(nèi)存空間進行的,因此,在這四個內(nèi)存中CPU可分別尋址、讀取數(shù)據(jù),從而使內(nèi)存的帶寬更多、數(shù)據(jù)存取速度也相應(yīng)的提高。
[0038]為了便于本發(fā)明的實施,下面以實例進行說明。
[0039]假設(shè)驅(qū)動程序申請16個緩沖區(qū),服務(wù)器上有4個內(nèi)存控制器,這4個內(nèi)存控制器上的內(nèi)存空間分別稱為DIMMO、DIMMl、DIMM2、DIMM3。
[0040]當(dāng)?shù)谝淮谓邮盏津?qū)動程序的申請緩沖區(qū)請求時,為其在內(nèi)存控制器的內(nèi)存空間DIMMO上分配O號緩沖區(qū);當(dāng)?shù)诙谓邮盏津?qū)動程序的申請緩沖區(qū)請求時,為其在內(nèi)存控制器的內(nèi)存空間DIMMl上分配I號緩沖區(qū);當(dāng)?shù)谌谓邮盏津?qū)動程序的申請緩沖區(qū)請求時,為其在內(nèi)存控制器的內(nèi)存空間DIMM2上分配2號緩沖區(qū);當(dāng)?shù)谒拇谓邮盏津?qū)動程序的申請緩沖區(qū)請求時,為其在內(nèi)存控制器的內(nèi)存空間DMM3上分配3號緩沖區(qū);
[0041]當(dāng)?shù)谖宕谓邮盏津?qū)動程序的申請緩沖區(qū)請求時,為其在內(nèi)存控制器的內(nèi)存空間DIMMO上分配4號緩沖區(qū);
[0042]…
[0043]以此類推,使得這16個緩沖區(qū)交替在這4個內(nèi)存控制器上的內(nèi)存空間上,分配完成后,如下所示:
[0044]0,4,8,12 號緩沖區(qū)在 DIMMO ;
[0045]I,5,9,13 號緩沖區(qū)在 DIMMl ;
[0046]2,6,10,14 號緩沖區(qū)在 DIMM2 ;
[0047]3,7,11,15 號緩沖區(qū)在 DIMM3。
[0048]這樣,即使用戶空間上的應(yīng)用程序開啟16個線程時,也可以同時達(dá)到對內(nèi)存的并行讀寫,如圖2所示。因此,采用本發(fā)明實施例的技術(shù)方案,不會導(dǎo)致競爭,從而提高設(shè)備讀寫速度。
[0049]本發(fā)明實施例提供了一種龍芯刀片服務(wù)器下高速網(wǎng)絡(luò)設(shè)備優(yōu)化讀寫性能的方法,它主要是通過在申請連續(xù)內(nèi)存的時候,在不同的內(nèi)存控制器上進行申請空間,從而達(dá)到多通道可以并行處理,提高內(nèi)存的讀寫速度。
[0050]基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種存儲空間分配裝置,由于這些設(shè)備解決問題的原理與一種存儲空間分配方法相似,因此這些設(shè)備的實施可以參見方法的實施,重復(fù)之處不再贅述。
[0051]如圖3所示,裝置可以包括:
[0052]接收單元301,用于接收驅(qū)動程序申請存儲空間的請求;
[0053]確定單元302,用于確定多個可分配存儲空間的內(nèi)存控制器;
[0054]分配單元303,用于在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。
[0055]實施中,接收單元301可以進一步用于接收驅(qū)動程序的申請用于輸入或輸出數(shù)據(jù)的緩沖區(qū)的請求,分配單元303進一步用于在多個內(nèi)存控制器上的內(nèi)存空間分配驅(qū)動程序所需的緩沖區(qū)。
[0056]實施中,確定單元302可以進一步用于確定上一次分配存儲空間的內(nèi)存控制器;分配單元303可以進一步用于在除上一次分配存儲空間的內(nèi)存控制器之外的其他內(nèi)存控制器上的內(nèi)存空間分配驅(qū)動程序所需的存儲空間。
[0057]實施中,分配單元303可以進一步用于在采用統(tǒng)一編址的內(nèi)存空間分配驅(qū)動程序所需的存儲空間。
[0058]實施中,確定單元302可以進一步用于確定上一次分配存儲空間的內(nèi)存控制器后,根據(jù)上一次分配存儲空間的內(nèi)存控制器以及編址順序確定本次為驅(qū)動程序分配所需存儲空間的內(nèi)存控制器;分配單元303可以進一步用于在該內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
[0059]實施中,分配單元303可以進一步用于選擇在已分配空間最少的內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
[0060]實施中,接收單元301可以進一步用于接收16個申請存儲空間的請求;分配單元303可以進一步用于在4個內(nèi)存控制器上的內(nèi)存空間分配存儲空間。
[0061]上述實施例中,均可以采用現(xiàn)有的功能元器件模塊來實施。例如,接收單元,可以是任意一個具備數(shù)據(jù)接收功能的設(shè)備都具備的元器件;至于確定單元,則可以是任意一個具備確定功能的設(shè)備都具備的元器件;分配單元可以采用現(xiàn)有的存儲空間分配元器件,至少,現(xiàn)有存儲器技術(shù)中采用的服務(wù)器上便具備實現(xiàn)該功能元器件,本領(lǐng)域技術(shù)人員經(jīng)過相應(yīng)的設(shè)計開發(fā)即可實現(xiàn)。
[0062]為了描述的方便,以上所述裝置的各部分以功能分為各種模塊或單元分別描述。當(dāng)然,在實施本發(fā)明時可以把各模塊或單元的功能在同一個或多個軟件或硬件中實現(xiàn)。
[0063]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0064]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0065]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0066]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0067]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
【權(quán)利要求】
1.一種存儲空間分配方法,其特征在于,包括如下步驟: 接收驅(qū)動程序申請存儲空間的請求; 確定多個可分配存儲空間的內(nèi)存控制器; 在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。
2.如權(quán)利要求1所述的方法,其特征在于,所述的擇一為:確定上一次分配存儲空間的內(nèi)存控制器;在除上一次分配存儲空間的內(nèi)存控制器之外的內(nèi)存控制器上的內(nèi)存空間分配驅(qū)動程序所需的存儲空間。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述多個內(nèi)存控制器的內(nèi)存空間采用統(tǒng)一編址。
4.如權(quán)利要求3所述的方法,其特征在于,所述的擇一為:根據(jù)上一次分配存儲空間的內(nèi)存控制器以及編址順序確定本次為驅(qū)動程序分配存儲空間的內(nèi)存控制器; 在所述內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
5.如權(quán)利要求1至3任一所述的方法,其特征在于,所述的擇一為:選擇在已分配空間最少的內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
6.一種存儲空間分配裝置,其特征在于,包括: 接收單元,用于接收驅(qū)動程序申請存儲空間的請求; 確定單元,用于確定多個可分配存儲空間的內(nèi)存控制器; 分配單元,用于在多個內(nèi)存控制器上的內(nèi)存空間擇一分配驅(qū)動程序所需的存儲空間。
7.如權(quán)利要求6所述的裝置,其特征在于,所述確定單元進一步用于確定上一次分配存儲空間的內(nèi)存控制器; 所述分配單元進一步用于在除上一次分配存儲空間的內(nèi)存控制器之外的內(nèi)存控制器上的內(nèi)存空間分配驅(qū)動程序所需的存儲空間。
8.如權(quán)利要求6或7所述的裝置,其特征在于,所述分配單元進一步用于在采用統(tǒng)一編址的內(nèi)存空間分配驅(qū)動程序所需的存儲空間。
9.如權(quán)利要求8所述的裝置,其特征在于,所述確定單元進一步用于根據(jù)上一次分配存儲空間的內(nèi)存控制器以及編址順序確定本次為驅(qū)動程序分配存儲空間的內(nèi)存控制器; 所述分配單元進一步用于在所述內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
10.如權(quán)利要求6至8任一所述的裝置,其特征在于,所述分配單元進一步用于選擇在已分配空間最少的內(nèi)存控制器的內(nèi)存空間上分配驅(qū)動程序所需的存儲空間。
【文檔編號】G06F12/08GK104268101SQ201410485867
【公開日】2015年1月7日 申請日期:2014年9月22日 優(yōu)先權(quán)日:2014年9月22日
【發(fā)明者】李豐旺 申請人:無錫城市云計算中心有限公司