在存儲器中進(jìn)行多訪問的方法、裝置和存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供一種在存儲器中進(jìn)行多訪問的方法、支持存儲器中的多訪問的裝置以及存儲系統(tǒng)。所述方法包括:接收存儲器中的N個地址,其中N為大于1的整數(shù)并且所述N個地址是非連續(xù)的;根據(jù)N個地址來執(zhí)行預(yù)定操作;以及輸出操作的結(jié)果。因此,根據(jù)本發(fā)明實(shí)施例,能夠提高計(jì)算機(jī)系統(tǒng)的性能,并且使得可以恰如用戶所需地來輸入并使用所期望的地址。
【專利說明】在存儲器中進(jìn)行多訪問的方法、裝置和存儲系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及一種在存儲器中進(jìn)行多訪問的方法、支持存儲器中的多訪問的裝置以及存儲系統(tǒng),更具體地說,涉及一種能夠提高存儲器的訪問性能的在存儲器中進(jìn)行多訪問的方法、支持存儲器中的多訪問的裝置以及存儲系統(tǒng)。
【背景技術(shù)】
[0002]隨機(jī)內(nèi)存訪問一直是影響計(jì)算機(jī)性能的重要因素。一般而言,一次DRAM (DynamicRandom Access Memory,動態(tài)隨機(jī)存取存儲器)的訪問需要數(shù)百個時鐘周期。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)和編程語言一直采用如Cache (高速緩沖存儲器)、預(yù)取等方式來盡量減少對DRAM的隨機(jī)訪問,或降低隨機(jī)訪問對性能的影響。
[0003]近年來,大數(shù)據(jù)分析成為重要的應(yīng)用領(lǐng)域,在大數(shù)據(jù)分析應(yīng)用中,大量使用以圖為代表的數(shù)據(jù)結(jié)構(gòu),Cache和預(yù)取等方法很難對這類數(shù)據(jù)結(jié)構(gòu)的訪問進(jìn)行優(yōu)化,在現(xiàn)有處理器和內(nèi)存結(jié)構(gòu)下仍然會產(chǎn)生大量的隨機(jī)訪問。
[0004]因此,期望一種能夠提高計(jì)算機(jī)系統(tǒng)的訪問性能的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種在存儲器中進(jìn)行多訪問的方法、支持存儲器中的多訪問的裝置以及存儲系統(tǒng),能夠提高計(jì)算機(jī)系統(tǒng)的訪問性能。
[0006]根據(jù)本發(fā)明實(shí)施例的一個方面,提供一種用于在存儲器中進(jìn)行多訪問的方法,包括:接收存儲器中的N個地址,其中N為大于I的整數(shù)并且所述N個地址是非連續(xù)的;根據(jù)N個地址來執(zhí)行預(yù)定操作;以及輸出操作的結(jié)果。
[0007]根據(jù)本發(fā)明實(shí)施例的另一個方面,提供一種用于支持存儲器中的多訪問的裝置,包括:接收單元,用于接收存儲器中的N個地址,其中N為大于I的整數(shù)并且所述N個地址是非連續(xù)的;處理單元,用于根據(jù)N個地址來執(zhí)行預(yù)定操作;以及輸出單元,用于輸出操作的結(jié)果。
[0008]根據(jù)本發(fā)明實(shí)施例的再一方面,提供一種存儲系統(tǒng),包括如前所述的用于支持存儲器中的多訪問的裝置。
[0009]因此,根據(jù)本發(fā)明實(shí)施例,可以對存儲器中的多個地址進(jìn)行操作,并且這些地址既可以是連續(xù)的,也可以是非連續(xù)的,這使得可以恰如用戶所需地來輸入并使用所期望的地址。此外,由于可以在存儲器內(nèi)部根據(jù)輸入的地址來執(zhí)行預(yù)定操作并輸出操作的結(jié)果,所以不僅拓展了存儲器的功能,而且提高了數(shù)據(jù)處理的速度,節(jié)省了時間。
【專利附圖】
【附圖說明】
[0010]通過以下借助附圖的詳細(xì)描述,將會更容易地理解本發(fā)明,其中相同的標(biāo)號指定相同結(jié)構(gòu)的單元,并且在其中:
[0011]圖1是示出根據(jù)本發(fā)明實(shí)施例的用于在存儲器中進(jìn)行多訪問的方法的示意性流程圖;
[0012]圖2是示出根據(jù)本發(fā)明另一實(shí)施例的用于在存儲器中進(jìn)行多訪問的方法的示意性流程圖;
[0013]圖3是示出一種圖的數(shù)據(jù)結(jié)構(gòu)的示意圖;
[0014]圖4是示出根據(jù)本發(fā)明一【具體實(shí)施方式】的當(dāng)對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作時、用于在存儲器中進(jìn)行多訪問的方法的示意性流程圖;
[0015]圖5是示出根據(jù)本發(fā)明另一【具體實(shí)施方式】的當(dāng)對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作時、用于在存儲器中進(jìn)行多訪問的方法的示意性流程圖;
[0016]圖6是示出根據(jù)本發(fā)明的再一【具體實(shí)施方式】的當(dāng)對N個地址執(zhí)行預(yù)定操作時、用于在存儲器中進(jìn)行多訪問的方法的示意性流程圖;
[0017]圖7是示出根據(jù) 本發(fā)明實(shí)施例的一種支持存儲器中的多訪問的裝置的示意性框圖;以及
[0018]圖8是示出根據(jù)本發(fā)明另一實(shí)施例的一種支持存儲器中的多訪問的裝置的示意性框圖。
【具體實(shí)施方式】
[0019]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0020]在這里使用的術(shù)語僅僅是為了描述特定實(shí)施例的目的,而并不意欲限制本發(fā)明。如這里所使用的,單數(shù)形式“一”、“一個”和“該”意欲也包括復(fù)數(shù)形式,除非上下文明確指出并非如此。還應(yīng)當(dāng)明白,當(dāng)在本說明書中使用時,術(shù)語“包括”和/或“包括……的”、或“包含”和/或“包含……的”指定所闡述的特征、區(qū)域、整數(shù)、步驟、操作、元件和/或組件的存在,但是不排除存在或添加一個或多個其他特征、區(qū)域、整數(shù)、步驟、操作、元件和/或組件和/或其組。
[0021]除非另有定義,否則這里所使用的所有術(shù)語具有與本發(fā)明所屬領(lǐng)域的一名普通技術(shù)人員所通常理解的相同的含義。還應(yīng)當(dāng)明白,諸如在通用字典中定義的那些術(shù)語應(yīng)當(dāng)被解釋為具有與相關(guān)技術(shù)和本公開的上下文的其含義一致的含義,而不應(yīng)當(dāng)以理想化或過于形式化的意義來對其進(jìn)行解釋,除非這里明確地如此定義。
[0022]在以下的描述中,雖然以圖為例來進(jìn)行說明,但是,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,本發(fā)明實(shí)施例也可以被應(yīng)用于其他數(shù)據(jù)結(jié)構(gòu),諸如樹、鏈表等。
[0023]此外,除了 DRAM之外,本發(fā)明實(shí)施例還可以應(yīng)用于其他存儲設(shè)備和存儲系統(tǒng),諸如 SRAM (static random access memory,靜態(tài)隨機(jī)存取存儲器)、PCM (Phase ChangeMemory,相變存儲器)、FRAM (鐵電存儲器)等等。
[0024]此后,將結(jié)合附圖來具體說明本發(fā)明實(shí)施例。
[0025]圖1是示出根據(jù)本發(fā)明實(shí)施例的用于在存儲器中進(jìn)行多訪問的方法100的示意性流程圖。該方法100可以在處理器中被執(zhí)行。
[0026]如圖1中所示,在方法100的110,接收存儲器中的N個地址,其中N為大于I的整數(shù)并且所述N個地址是非連續(xù)的。
[0027]在120,根據(jù)N個地址來執(zhí)行預(yù)定操作。
[0028]在130,輸出操作的結(jié)果。
[0029]因此,根據(jù)本發(fā)明實(shí)施例,可以對存儲器中的多個地址進(jìn)行操作,并且這些地址既可以是連續(xù)的,也可以是非連續(xù)的,這使得可以恰如用戶所需地來輸入并使用所期望的地址。此外,由于可以在存儲器內(nèi)部根據(jù)輸入的地址來執(zhí)行預(yù)定操作并輸出操作的結(jié)果,所以不僅拓展了存儲器的功能,而且提高了數(shù)據(jù)處理的速度,節(jié)省了時間。
[0030]此外,由于一次接收多個地址并執(zhí)行預(yù)定操作,因此,根據(jù)本發(fā)明另一實(shí)施例,在對所有地址執(zhí)行的預(yù)定操作結(jié)束之前,可以利用緩沖區(qū)來存儲中間結(jié)果,并當(dāng)對所有地址執(zhí)行的預(yù)定操作全部結(jié)束時輸出緩沖區(qū)內(nèi)的地址作為結(jié)果,以此來進(jìn)一步提高訪問速度。
[0031]圖2是示出根據(jù)本發(fā)明另一實(shí)施例的用于在存儲器中進(jìn)行多訪問的方法200的示意性流程圖。該方法200可以在存儲器中被執(zhí)行。
[0032]如圖2中所示,在方法200的S210,接收存儲器中的N個地址,其中N為大于I的整數(shù)并且所述N個地址是非連續(xù)的。
[0033]在220,根據(jù)N個地址來執(zhí)行預(yù)定操作。
[0034]在225,將操作的結(jié)果存儲在存儲器內(nèi)的緩沖區(qū)中。
[0035]在230,在方法100中輸出操作的結(jié)果具體為:輸出緩沖區(qū)中的地址作為結(jié)果。
[0036]根據(jù)本發(fā)明實(shí)施例,由于在完成對所有地址的操作之前將中間結(jié)果暫時存儲在緩沖區(qū)中,所以可以進(jìn)一步提高訪問速度。例如,在對存儲在地址處的數(shù)據(jù)進(jìn)行訪問的情況下,從存儲器外部對存儲器內(nèi)的一個地址處的數(shù)據(jù)進(jìn)行一次訪問(輸入/輸出)時,因?yàn)槲帐中盘査加玫臅r間開銷較大,大約占總時間的60%左右,所以所需要花費(fèi)的總時間大概是幾百納秒(例如,200ns),而當(dāng)利用緩沖區(qū)時,因?yàn)榇蟠鬁p少了握手信號,所以在存儲器內(nèi)部對同樣的數(shù)據(jù)進(jìn)行一次訪問所需要花費(fèi)的總時間可以被縮短到幾十納秒甚至幾個納秒,例如l_2ns。此外,可以以與cache(高速緩沖存儲器)類似的結(jié)構(gòu)來配置該緩沖區(qū),以進(jìn)一步提高訪問速度。因此,當(dāng)利用緩沖區(qū)時,可以縮短了訪問時間。
[0037]這里,緩沖區(qū)可以是從存儲器內(nèi)原有的緩沖區(qū)域中新劃分出來的,也可以是增加到存儲器中的新的緩沖區(qū)域。在后者的情況下,可能需要對存儲器的硬件進(jìn)行改進(jìn)。此外,可以在每次輸出了結(jié)果之后,清空緩沖區(qū)中的數(shù)據(jù)。
[0038]下面,將以圖的數(shù)據(jù)結(jié)構(gòu)為例來具體描述本發(fā)明實(shí)施例,但是本領(lǐng)域技術(shù)人可以明白,顯然本發(fā)明還可以應(yīng)用于除圖以外的其他數(shù)據(jù)結(jié)構(gòu),諸如樹、鏈表等等。
[0039]圖3是示出一種圖的數(shù)據(jù)結(jié)構(gòu)的示意圖。雖然在圖3中示出的是無向圖,但是本領(lǐng)域技術(shù)人員可以明白,顯然其也可以為有向圖,并且還可以包括權(quán)重信息。
[0040]如圖3中所示,該圖中包括8個頂點(diǎn)V0、V1、V2、V3、V4、V5、V6和V7以及11條邊,通常,利用一維數(shù)組來存儲頂點(diǎn)數(shù)據(jù)并且利用二維數(shù)組來存儲邊數(shù)據(jù)。一個示意性的頂點(diǎn)數(shù)組v[j] (O≤j ≤7)例如為下面所示。
[0041]
【權(quán)利要求】
1.一種用于在存儲器中進(jìn)行多訪問的方法,包括: 接收存儲器中的N個地址,其中N為大于I的整數(shù)并且所述N個地址是非連續(xù)的; 根據(jù)N個地址來執(zhí)行預(yù)定操作;以及 輸出操作的結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其中,在輸出操作的結(jié)果之前,該方法還包括: 將操作的結(jié)果存儲在存儲器內(nèi)的緩沖區(qū)中。
3.根據(jù)權(quán)利要求2所述的方法,其中,輸出操作的結(jié)果包括: 輸出存儲在緩沖區(qū)內(nèi)的操作的結(jié)果。
4.根據(jù)權(quán)利要求1所述的方法,其中,通過基址和偏移量來確定每個地址,其中偏移量指示該地址與基址的距離。
5.根據(jù)權(quán)利要求4所述的方法,其中,接收存儲器中的N個地址進(jìn)一步包括: 接收基址和N個偏移量;以及 根據(jù)第i地址=基址+ 第i偏移量來確定N個地址中的每一個,0〈i ( N-1。
6.根據(jù)權(quán)利要求5所述的方法,其中,接收N個偏移量進(jìn)一步包括接收地址元素大小和N個地址索引,并且 根據(jù)第i地址=基址+第i偏移量來確定N個地址中的每一個包括根據(jù)第i地址=基址+第i地址索引X地址元素大小來確定N個地址中的每一個。
7.根據(jù)權(quán)利要求3所述的方法,其中,根據(jù)N個地址來執(zhí)行預(yù)定操作包括:對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作。
8.根據(jù)權(quán)利要求7所述的方法,其中,當(dāng)對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作時: 訪問該N個地址中的每一個,并確定存儲在該地址處的數(shù)據(jù)是否滿足預(yù)定條件;以及 輸出該N個地址中滿足預(yù)定條件的一個或多個地址作為結(jié)果。
9.根據(jù)權(quán)利要求8所述的方法,其中,將操作的結(jié)果存儲在存儲器內(nèi)的緩沖區(qū)中包括: 在完成對該N個地址中的所有地址的訪問之前,將滿足預(yù)定條件的數(shù)據(jù)的地址存儲在存儲器內(nèi)的緩沖區(qū)中。
10.根據(jù)權(quán)利要求9所述的方法,其中,輸出該N個地址中滿足預(yù)定條件的一個或多個地址作為結(jié)果包括: 輸出緩沖區(qū)中的地址作為結(jié)果。
11.根據(jù)權(quán)利要求8所述的方法,其中,確定存儲在該地址處的數(shù)據(jù)是否滿足預(yù)定條件包括: 對數(shù)據(jù)與預(yù)定條件值執(zhí)行包括關(guān)系運(yùn)算和/或邏輯運(yùn)算的操作;以及 當(dāng)操作結(jié)果指示為真時,確定滿足預(yù)定條件, 其中,關(guān)系運(yùn)算包括等于、大于、大于等于、小于、小于等于和不等于,并且邏輯運(yùn)算包括與、或和異或。
12.根據(jù)權(quán)利要求11所述的方法,其中,該方法進(jìn)一步包括:當(dāng)確定滿足預(yù)定條件時,用新值來替換該數(shù)據(jù)的原始值, 其中,新值是固定值或原始值的函數(shù)。
13.根據(jù)權(quán)利要求12所述的方法,其中,所述預(yù)定條件對N個地址相同或不同。
14.根據(jù)權(quán)利要求7所述的方法,其中,當(dāng)對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作時: 對在N個地址處存儲的數(shù)據(jù)執(zhí)行算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算中的至少一個;以及 輸出運(yùn)算結(jié)果作為結(jié)果。
15.一種用于支持存儲器中的多訪問的裝置,包括: 接收單元,用于接收存儲器中的N個地址,其中N為大于I的整數(shù)并且所述N個地址是非連續(xù)的; 處理單元,用于根據(jù)N個地址來執(zhí)行預(yù)定操作;以及 輸出單元,用于輸出操作的結(jié)果。
16.根據(jù)權(quán)利要求15所述的裝置,其中,該裝置還包括: 緩沖區(qū),用于存儲操作的結(jié)果。
17.根據(jù)權(quán)利要求16所述的裝置,其中,輸出單元輸出存儲在緩沖區(qū)內(nèi)的操作的結(jié)果。
18.根據(jù)權(quán)利要求15所述的裝置,其中,通過基址和偏移量來確定每個地址,其中偏移量指示該地址與基址的距離。
19.根據(jù)權(quán)利要求18所述的裝置,其中,接收單元接收基址和N個偏移量,并且 根據(jù)第i地址=基址+第i偏移量來確定N個地址中的每一個,0〈i ( N-1。
20.根據(jù)權(quán)利要求19所述的裝置,其中,接收單元接收N個偏移量進(jìn)一步包括接收地址元素大小和N個地址索引,并且 根據(jù)第i地址=基址+第i偏移量來確定N個地址中的每一個包括根據(jù)第i地址=基址+第i地址索引X地址元素大小來確定N個地址中的每一個。
21.根據(jù)權(quán)利要求17所述的裝置,其中,處理單元根據(jù)N個地址來執(zhí)行預(yù)定操作包括:對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作。
22.根據(jù)權(quán)利要求21所述的裝置,其中,當(dāng)對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作時: 處理單元訪問該N個地址中的每一個,并確定存儲在該地址處的數(shù)據(jù)是否滿足預(yù)定條件;以及 輸出單元輸出該N個地址中滿足預(yù)定條件的一個或多個地址作為結(jié)果。
23.根據(jù)權(quán)利要求22所述的裝置,其中,在完成對該N個地址中的所有地址的訪問之前,將滿足預(yù)定條件的數(shù)據(jù)的地址存儲在存儲器內(nèi)的緩沖區(qū)中。
24.根據(jù)權(quán)利要求23所述的裝置,其中,輸出單元輸出緩沖區(qū)中的地址作為結(jié)果。
25.根據(jù)權(quán)利要求22所述的裝置,其中,處理單元確定存儲在該地址處的數(shù)據(jù)是否滿足預(yù)定條件包括: 對數(shù)據(jù)與預(yù)定條件值執(zhí)行包括關(guān)系運(yùn)算和/或邏輯運(yùn)算的操作;以及 當(dāng)操作結(jié)果指示為真時,確定滿足預(yù)定條件, 其中,關(guān)系運(yùn)算包括等于、大于、大于等于、小于、小于等于和不等于,并且邏輯運(yùn)算包括與、或和異或。
26.根據(jù)權(quán)利要求25所述的裝置,其中,當(dāng)確定滿足預(yù)定條件時,處理單元用新值來替換該數(shù)據(jù)的原始值, 其中,新值是固定值或原始值的函數(shù)。
27.根據(jù)權(quán)利要求26所述的裝置,其中,所述預(yù)定條件對N個地址相同或不同。
28.根據(jù)權(quán)利要求21所述的裝置,其中,當(dāng)對在N個地址處存儲的數(shù)據(jù)執(zhí)行預(yù)定操作時: 處理單元對在N個地址處存儲的數(shù)據(jù)執(zhí)行算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算中的至少一個;以及 輸出單兀輸出運(yùn)算結(jié)果作為結(jié)果。
29.—種存儲系統(tǒng),包括如權(quán)利要求15-28中的任何一個所述的裝置。
【文檔編號】G06F12/08GK103942162SQ201410201149
【公開日】2014年7月23日 申請日期:2014年5月14日 優(yōu)先權(quán)日:2014年5月14日
【發(fā)明者】陳文光, 鄭緯民 申請人:清華大學(xué)