麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種數據拷貝方法、設備和系統的制作方法

文檔序號:6508147閱讀:191來源:國知局
一種數據拷貝方法、設備和系統的制作方法
【專利摘要】本發明公開了一種數據拷貝方法、設備和系統,涉及計算機領域,能夠提高數據拷貝的效率。包括:接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中;根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。本發明實施例提供的數據拷貝方法、設備和系統,用于數據的拷貝。
【專利說明】一種數據拷貝方法、設備和系統

【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種數據拷貝方法、設備和系統。

【背景技術】
[0002]鏈式內存模組是CPU (Central Processing Unit中央處理器)中多個內存模組以鏈式連接的組合,內存模組是可以存儲數據的內存條,內存模組主要由緩沖芯片和內存顆粒組成,緩沖芯片是連接多個內存模組或連接內存模組與內存控制器并可以轉發和處理數據的芯片,如FB-DIMM中AMB (Advanced Memory Buffer,先進內存緩沖器芯片),內存顆粒是可以存儲數據的內存芯片。
[0003]數據拷貝即數據的復制,是指將一塊連續的數據從存儲空間中的一個物理位置復制到存儲空間中的另一個物理位置。
[0004]現有技術中,內存模組間的數據拷貝方法中,將待寫入數據、從源地址寫入目的地址需要經過多個模塊,示例的,假設第一內存模組為源地址,第二內存模組為目的地址,即將第一內存模組中的數據寫入第二內存模組中,首先,CPU向第一內存模組發送讀請求,經內存控制器控制,讀取待寫入數據,然后CPU發送寫請求,將該待寫入數據、存儲于第二內存模組中,在此過程中,所述待寫入數據的數據通路為第一內存模組、內存控制器、CPU和第二內存模組。由于每個內存模組只能進行消息的轉發或待寫入數據、的寫入,內存模組間數據的消息的傳輸過程需要內存控制器和CPU參與,所述消息包括待寫入數據,因此,存儲模組間消息的傳輸過程經過的數據通路較長,數據拷貝的效率較低。


【發明內容】

[0005]本發明實施例提供了一種數據拷貝方法、設備和系統,能夠提高數據拷貝的效率。
[0006]為達到上述目的,本發明的實施例采用如下技術方案:
[0007]第一方面,提供一種數據拷貝方法,其特征在于,包括:
[0008]接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中;
[0009]根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
[0010]結合第一方面,在第一種可實現方式中,所述根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組包括:
[0011]根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據;
[0012]向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據;
[0013]根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中;
[0014]向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
[0015]結合第一方面、第一種可實現方式,在第二種可實現方式中,所述讀請求包含源地址,所述源地址為所述第一內存模組;
[0016]所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
[0017]結合第一方面、第一或二種可實現方式,在第三種可實現方式中,所述第一內存模組與所述第二內存模組由同一內存控制器控制;
[0018]或者,所述第一內存模組與所述第二內存模組由不同內存控制器控制。
[0019]第二方面,提供一種內存模組管理器,包括
[0020]接收單元,用于接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中;
[0021]通信單元,用于根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
[0022]結合第二方面,在第一種可實現方式中,
[0023]所述通信單元具體用于:
[0024]根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據;
[0025]向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據;
[0026]根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中;
[0027]向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
[0028]結合第二方面、第一種可實現方式,在第二種可實現方式中,所述讀請求包含源地址,所述源地址為所述第一內存模組;
[0029]所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
[0030]結合第二方面、第一或二種可實現方式,在第三種可實現方式中,所述第一內存模組與所述第二內存模組由同一內存控制器控制;
[0031]或者,所述第一內存模組與所述第二內存模組由不同內存控制器控制。
[0032]結合第二方面、第一至三種可實現方式,在第四種可實現方式中,所述內存模組管理器為先進內存緩沖器芯片AMB。
[0033]第三方面,提供一種內存系統,包括:
[0034]至少一個內存控制器,用于生成拷貝請求消息;
[0035]至少一個內存模組,用于存儲數據;
[0036]至少一個以上任意所述的內存模組管理器,用于在所述至少一個內存模組之間拷貝數據。
[0037]本發明實施例提供的一種數據拷貝方法、設備和系統,內存模組管理器不僅可以接收來自于內存控制器的拷貝請求消息,也可以根據拷貝請求消息生成讀請求和寫請求,并與其他內存模組進行通信,在內存模組之間傳輸數據從而實現數據拷貝。由于在數據拷貝時實現了內存模組間消息和數據的直接傳輸,內存模組間消息和數據的傳輸過程經過的數據通路較短,因此,與現有技術相比,提高了數據拷貝的效率。

【專利附圖】

【附圖說明】
[0038]圖1為本發明實施例1提供的一種數據拷貝方法流程圖;
[0039]圖2為本發明實施例1提供的由同一個內存控制器控制的內存模組的結構示例圖;
[0040]圖3為本發明實施例1提供的又一種數據拷貝方法流程圖;
[0041]圖4為本發明實施例1提供的一種由不同內存控制器控制的內存模組的結構示意圖;
[0042]圖5為本發明實施例1提供的一種內存模組管理器結構示意圖;
[0043]圖6為本發明實施例2提供的另一種內存模組管理器結構示意圖;
[0044]圖7為本發明實施例2提供的又一種內存模組管理器結構示意圖。

【具體實施方式】
[0045]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0046]實施例1:
[0047]本發明實施例提供了一種數據拷貝方法,可以應用在內存模組之間的數據拷貝,如圖1所示,包括:
[0048]步驟101、接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中。
[0049]所述拷貝請求消息通常由CPU生成,由內存控制器直接轉發給內存模組管理器的。
[0050]步驟102、根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
[0051]具體的,可以根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據;向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據;根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中;向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。其中,所述讀請求包含源地址,所述源地址為所述第一內存模組;所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
[0052]這樣一來,內存模組管理器不僅可以接收來自于內存控制器的拷貝請求消息,也可以根據拷貝請求消息生成讀請求和寫請求,并與其他內存模組進行通信,在內存模組之間傳輸數據從而實現數據拷貝。由于在數據拷貝時實現了內存模組間消息和數據的直接傳輸,內存模組間消息和數據的傳輸過程經過的數據通路較短,因此,與現有技術相比,提高了數據拷貝的效率。
[0053]需要說明的是,所述第一內存模組與所述第二內存模組可以由同一內存控制器控制;所述第一內存模組與所述第二內存模組也可以由不同內存控制器控制。
[0054]實際應用中,內存模組間的數據拷貝都是由程序控制的,通常使用的是庫函數中的函數memcpy (),該函數在使用前會聲明為“void*memcpy (void*destinat1n, constvoid*source, size_t num); ”,其中 void*destinat1n 為待寫入數據的目的地址,constVOid*SOUrce為待寫入數據的源地址,size_t num為待寫入數據的大小,在實際應用場景中,通常是由圖2所示的結構來運行數據拷貝函數,完成內存模組間的數據拷貝。
[0055]示例的,如圖2所示,圖2中由同一個內存控制器控制的內存模組的結構由CPU201、內存控制器202、和3個內存模組組成,圖2中,內存控制器202分別與CPU201和內存模組203連接,內存模組204分別與內存模組203和內存模組205連接,三個內存模組都包括內存模組管理器和內存顆粒,每個所述內存模組管理器是可以轉發和處理數據的芯片。本發明實施例假設每個所述內存模組管理器為AMB。示例的,位于所述內存模組203上的內存模組管理器為第一 AMB2031 ;位于所述內存模組204上的內存模組管理器為第二AMB2041 ;位于所述內存模組205上的內存模組管理器為第三AMB2051。
[0056]本發明實施例提供一種數據拷貝方法,假設圖2中的內存模組203為第一內存模組,內存模組205為第二內存模組,以第一 AMB2031為例,具體步驟如圖3所示,包括:
[0057]步驟301、CPU向內存控制器發送拷貝請求消息。
[0058]需要說明的是,CPU生成的所述拷貝請求消息具體可以包括一組物理地址和待寫入數據的大小,所述拷貝請求消息中待寫入數據的大小通常為較大的數據塊的大小,如256KB,所述B表示比特(Byte),為信息量單位,二進制數的一位所包含的信息就是I比特,假設該物理地址為8位,其中高4位通常表示內存模組的地址,低4位通常表示內存顆粒的地址。假設CPU501發送的拷貝請求消息為將1011 0110中的128MB的數據寫入1110 0101中,其中1011 0110的高4位1011表示圖2中的內存模組203的地址,假設內存模組503為第一內存模組,1011 0110的低4位0110表示內存模組203的內存顆粒2032的地址,其中1110 0101的高4位1110表示圖3中的內存模組205的地址,假設內存模組205為第二內存模組,1110 0101的低4位0101表示內存模組205的內存顆粒2052的地址,128M表示待寫入數據的大小,則CPU201發送的拷貝請求消息為將內存模組203的內存顆粒2032中的大小為128MB的數據寫入內存模組205的內存顆粒2052中。
[0059]步驟302、內存控制器向第一 AMB轉發拷貝請求消息。
[0060]實際應用中,內存控制器202可以不對所述拷貝請求消息進行處理,根據拷貝請求消息中的物理地址1011 0110的高4位1011直接將該拷貝請求消息發送至內存模組203,由內存模組203的第一 AMB2031接收該拷貝請求消息。內存控制器202可以對所述拷貝請求消息進行處理,將一個包含待寫入數據的大小通常為較大的數據塊的拷貝請求消息中拆分成多個數據塊較小的拷貝請求消息,然后再轉發給第一 AMB。
[0061]步驟303、第一 AMB根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據。
[0062]第一 AMB2031接收內存控制器202轉發的拷貝請求消息后,可以生成讀請求,所述讀請求包含源地址,所述源地址為第一內存模組,即所述內存模組203的存儲地址,即物理地址1011 0110,既包括內存模組203的地址,即包含物理地址1011 0110的高4位1011,也包含內存模組203中內存顆粒2032的地址,即物理地址1011 0110的低4位0110。需要說明的是,由于需要讀取的數據較多,所述讀請求通常為連續的多個子請求組成的。
[0063]步驟304、第一 AMB向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據。
[0064]具體的,第一 AMB203根據讀請求中的物理地址1011 0110的高4位1011與本內存模組的地址進行匹配,確定要讀取的數據位于內存模組203中,特別的,由于第一 AMB203位于第一內存模組上,即內存模組203上,而讀請求又是由第一 AMB203生成,所以實際應用中可以不進行所述匹配過程。第一AMB2031確定要讀取的數據位于內存模組203中之后,第一 AMB2031根據就所述讀請求中的源地址,即物理地址10110110的低4位從內存模組203的內存顆粒2032中讀取相應的數據。具體的,用讀請求中物理地址的低4位0110與本內存模組的內存顆粒的地址進行匹配,若內存模組的內存顆粒2032的地址與所述讀請求中的物理地址1011 0110的低4位0110相同,則表明是將內存顆粒2032中的數據讀取,然后在內存顆粒2032中讀取數據。
[0065]步驟305、第一 AMB根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中。
[0066]所述寫請求包含寫數據和目的地址,所述寫數據為從所述內存模組203中讀取的數據,在本實施例中即從內存模組203的內存顆粒2032中讀取相應的數據,所述目的地址為第二內存模組,即內存模組205的物理地址。
[0067]步驟306、第一 AMB向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
[0068]第一 AMB根據拷貝請求消息中物理地址1110 0101的高4位1110將該寫請求發送至第二內存模組,即內存模組205,具體的由內存模組205的第三AMB2051接收所述寫請求。由圖2可知,在本實施例中,所述寫請求由內存模組203經過內存模組204的轉發到達內存模組205,在經過內存模組204時,內存模組204的第二 AMB2041需要根據寫請求中的物理地址1110 0101的高4位1110與內存模組204的地址進行匹配,根據匹配的結果判斷所述寫請求中的寫數據需要寫入本內存模組中,其匹配的結果為本內存模組的地址與物理地址1110 0101的高4位1110不同,則由第二 AMB2041將所述寫請求發送至下個內存模組中,即內存模組205。
[0069]步驟307、第二內存模組根據所述寫請求,將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
[0070]具體的,內存模組205的第三AMB2051接收到寫請求時,首先需要根據寫請求中的物理地址1110 0101的高4位1110與內存模組205的地址進行匹配,根據匹配的結果判斷所述寫請求中的寫數據需要寫入本內存模組中,然后根據寫請求中包含的物理地址111100101的低4位0101將相應的寫數據寫入第二內存模組205的內存顆粒2052中。具體點,第三AMB2051再根據所述寫請求中的物理地址1110 0101的低4位0101與本內存模組的內存顆粒的地址進行匹配,由于內存模組存在內存顆粒2052的地址與所述寫請求中的物理地址1110 0101的低4位0101相同,則表明需要將寫數據寫入內存顆粒2052中。
[0071]通常的,在寫入過程中,以每次I個拷貝單位的粒度將寫數據進行寫入,由于FB-DIMM有ddr2(doubIe data rate2,雙倍速率同步動態隨機存儲器2 )的也有ddr3(doubIedata rate3,雙倍速率同步動態隨機存儲器3)的內存規格,即DRAM控制器的內存規格可能是ddr2或ddr3。ddr2、ddr3每位數據線每次突發(burst)分別能傳輸的數據最多分別是4bit和8bit。比如ddr3,數據線位寬64,每次突發最多傳輸8X64=512b=64B數據。在本發明實施例中,I個拷貝單位的大小與FB-DIMM的內存規格有關,本發明對此不做限制。
[0072]需要說明的是,若所述拷貝請求消息為將1011 0110中的數據寫入1110 0101中,第一 AMB根據所述拷貝請求消息生成的讀請求和寫請求中,每個讀請求都攜帶物理地址1011 0110,當所述讀請求在內存模組之間發送時,接收到消息的內存模組首先需要根據讀請求中的物理地址1011 0110的高4位1011與本內存模組的地址進行匹配,根據匹配的結果判斷所述讀請求中要讀取的數據是否位于本內存模組中,若匹配的結果為本內存模組的地址與物理地址1011 0110的高4位1011不同,則由本內存模組將所述讀請求發送至下個相鄰的內存模組,由下各相鄰的內存模組根據物理地址1011 0110的高4位1011與該內存模組的地址再進行匹配,若匹配的結果為該內存模組的地址與物理地址1011 0110的高4位1011相同,然后用讀請求中物理地址的低4位0110與本內存模組的內存顆粒的地址進行匹配,若內存模組的存在內存顆粒的地址與所述讀請求中的物理地址1011 0110的低4位0110相同,則表明是將物理地址為0101的內存顆粒中的數據讀取,相應的進行數據的讀取。
[0073]若寫請求攜帶的物理地址為1110 0101,當所述寫請求在內存模組之間發送時,接收到該寫請求的內存模組都首先需要根據寫請求中的物理地址1110 0101的高4位1110與本內存模組的地址進行匹配,根據匹配的結果判斷所述寫請求中的寫數據需要寫入本內存模組中,若匹配的結果為本內存模組的地址與物理地址1110 0101的高4位1110不同,則由本內存模組將所述寫請求發送至下個內存模組,由下個內存模組根據物理地址11100101的高4位1110與本內存模組的地址再進行匹配,若匹配的結果為該內存模組的地址與物理地址1110 0101的高4位1110相同,然后該內存模組再根據所述寫請求中的物理地址1110 0101的低4位0101與本內存模組的內存顆粒的地址進行匹配,若內存模組存在內存顆粒的地址與所述寫請求中的物理地址1110 0101的低4位0101相同,則表明需要將寫數據寫入內存顆粒的地址與所述寫請求中的物理地址1110 0101的低4位0101相同的內存顆粒中。
[0074]進一步的,本發明實施例提供的數據拷貝方法不僅可以應用于如圖2所示的由同一個內存控制器控制的內存模組之間,在同一個內存控制器的內存模組之間進行數據的拷貝,也可以應用于不同內存控制器控制的內存模組之間,如圖4所示,圖4中是由第一內存控制器控制的內存模組的第一內存結構401和第二內存控制器控制的內存模組的第二內存結構402組成的不同內存控制器控制的內存模組的結構圖,在圖4中第一內存結構401是由CPU4011、內存控制器4012和3個內存模組4013、4014、4015組成,內存控制器4012分別與CPU4011和內存模組4013連接,內存模組4014分別和內存模組4013和內存模組4015連接;圖4中第二內存結構402是由CPU4021、內存控制器4022和三個內存模組4023、4024、4025組成,內存控制器4022分別與CPU4021和內存模組4023連接,內存模組4024分別與內存模組4023和內存模組4025連接;第一內存結構401的內存模組4013與第二內存結構402的內存模組4023能夠進行直接通信,第一內存結構401的內存模組4014與第二內存結構402的內存模組4024能夠進行直接通信,第一內存結構401的內存模組4015與第二內存結構402能夠進行直接通信,因此在不同內存控制器控制的內存模組之間可以進行數據的拷貝。具體的所述拷貝方法可以參考步驟301至307,本發明對此不再贅述。
[0075]本發明實施例提供的數據拷貝方法還可以應用于同一個內存模組的內存顆粒之間,即在同一個內存模組的內存顆粒之間進行數據的拷貝,具體數據拷貝的方法也與本發明實施例提供的數據拷貝方法相同,在此不再贅述。
[0076]需要說明的是,CPU也可以按照本發明實施例提供的執行函數memcpyO的功能的方法來執行函數memmove ()的功能,函數memmove ()與函數memcpyO的區別為,函數memcpy O的作用相當于復制功能,而函數memmove ()的作用相當于剪切功能。
[0077]實施例2:
[0078]本發明實施例提供一種內存模組管理器50,所述內存模組管理器50可以為AMB。如圖5所示,包括
[0079]接收單元501,用于接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中;
[0080]通信單元502,用于根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
[0081 ] 該內存模組管理器在物理上可以位于第一內存模組或者第二內存模組中。
[0082]這樣一來,內存模組管理器不僅可以通過接收單元接收來自于內存控制器的拷貝請求消息,也可以根據拷貝請求消息生成讀請求和寫請求,并與其他內存模組進行通信,在內存模組之間傳輸數據從而實現數據拷貝。實現內存模組間消息和數據的直接傳輸,內存模組間消息和數據的傳輸過程經過的數據通路較短,因此,與現有技術相比,提高了數據拷貝的效率。
[0083]進一步的,所述通信單元502具體用于:
[0084]根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據;向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據;根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中;向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
[0085]其中,所述讀請求包含源地址,所述源地址為所述第一內存模組;所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
[0086]特別的,所述第一內存模組與所述第二內存模組由同一內存控制器控制;或者,所述第一內存模組與所述第二內存模組由不同內存控制器控制。
[0087]本發明實施例提供一種內存系統,包括:
[0088]至少一個內存控制器,用于生成拷貝請求消息;至少一個內存模組,用于存儲數據;至少一個內存模組管理器,用于在所述至少一個內存模組之間拷貝數據,所述內存模組管理器為本發明任意實施例所述的內存模組管理器。
[0089]本發明實施例提供一種內存模組管理器60,所述內存模組管理器60可以為AMB。如圖6所示,包括
[0090]接收機601,用于接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中;
[0091]處理器602,用于根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
[0092]這樣一來,內存模組管理器不僅可以通過接收機接收來自于內存控制器的拷貝請求消息,也可以通過處理器生成讀請求和寫請求與其他內存模組進行通信。實現內存模組間消息的直接傳輸,內存模組間消息的傳輸過程經過的數據通路較短,因此,與現有技術相t匕,提高了數據拷貝的效率。
[0093]處理器602具體用于:根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據。
[0094]進一步的,如圖7所示,所述內存模組管理器60還包括:發射機603,用于向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據;處理器602還用于根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中;發射機603還用于向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
[0095]其中,所述讀請求包含源地址,所述源地址為所述第一內存模組;所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
[0096]特別的,所述第一內存模組與所述第二內存模組由同一內存控制器控制;或者,所述第一內存模組與所述第二內存模組由不同內存控制器控制。
[0097]本發明實施例提供一種內存系統,包括:
[0098]至少一個內存控制器,用于生成拷貝請求消息;至少一個內存模組,用于存儲數據;至少一個內存模組管理器,用于在所述至少一個內存模組之間拷貝數據,所述內存模組管理器為本發明任意實施例所述的內存模組管理器。
[0099]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,設備和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0100]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,設備和方法,可以通過其它的方式實現。例如,以上所描述的設備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,設備或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0101]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0102]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用硬件加軟件功能單元的形式實現。
[0103]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何熟悉本【技術領域】的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
【權利要求】
1.一種數據拷貝方法,其特征在于,包括: 接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中; 根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
2.根據權利要求1所述的方法,其特征在于,所述根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組包括: 根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據; 向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據; 根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中; 向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
3.根據權利要求1或2所述的方法,其特征在于,所述讀請求包含源地址,所述源地址為所述第一內存模組; 所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
4.根據權利要求1至3任意一項權利要求所述的方法,其特征在于,所述第一內存模組與所述第二內存模組由同一內存控制器控制; 或者,所述第一內存模組與所述第二內存模組由不同內存控制器控制。
5.一種內存模組管理器,其特征在于,包括: 接收單元,用于接收內存控制器發送的拷貝請求消息,所述拷貝請求消息為將第一內存模組中的數據塊寫入第二內存模組中; 通信單元,用于根據所述拷貝請求消息,生成讀請求和寫請求,并向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據,向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入第二內存模組。
6.根據權利要求5所述的內存模組管理器,其特征在于, 所述通信單元具體用于: 根據所述拷貝請求消息,生成讀請求,所述讀請求用于從所述第一內存模組中讀取數據; 向所述第一內存模組發送所述讀請求,請求從所述第一內存模組中讀取數據; 根據所述拷貝請求消息和從所述第一內存模組中讀取的數據生成寫請求,所述寫請求用于將從所述第一內存模組中讀取的數據寫入所述第二內存模組中; 向所述第二內存模組發送所述寫請求,請求將從所述第一內存模組中讀取的數據寫入所述第二內存模組。
7.根據權利要求5或6所述的內存模組管理器,其特征在于,所述讀請求包含源地址,所述源地址為所述第一內存模組; 所述寫請求包含寫數據和目的地址,所述寫數據為從所述第一內存模組中讀取的數據,所述目的地址為所述第二內存模組。
8.根據權利要求5至7任意一項權利要求所述的內存模組管理器,其特征在于,所述第一內存模組與所述第二內存模組由同一內存控制器控制; 或者,所述第一內存模組與所述第二內存模組由不同內存控制器控制。
9.根據權利要求5至8任意一項權利要求所述的內存模組管理器,其特征在于,所述內存模組管理器為先進內存緩沖器芯片AMB。
10.一種內存系統,其特征在于,包括: 至少一個內存控制器,用于生成拷貝請求消息; 至少一個內存模組,用于存儲數據; 至少一個權利要求5至9任意一項權利要求所述的內存模組管理器,用于在所述至少一個內存模組之間拷貝數據。
【文檔編號】G06F13/16GK104424102SQ201310363325
【公開日】2015年3月18日 申請日期:2013年8月20日 優先權日:2013年8月20日
【發明者】張科, 張立新, 侯銳, 王聰 申請人:華為技術有限公司, 中國科學院計算技術研究所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 壤塘县| 山西省| 洪雅县| 申扎县| 巫溪县| 牟定县| 化州市| 年辖:市辖区| 株洲市| 青岛市| 金昌市| 安乡县| 南宁市| 长汀县| 油尖旺区| 阿巴嘎旗| 射阳县| 监利县| 赤城县| 绥阳县| 黑水县| 庆安县| 温宿县| 乐业县| 巴东县| 永安市| 军事| 赤水市| 塘沽区| 驻马店市| 任丘市| 兰州市| 黄陵县| 顺昌县| 柘荣县| 普安县| 莱州市| 桦甸市| 瑞昌市| 龙陵县| 靖边县|