本公開總體上涉及電子領(lǐng)域。更具體地,一些實施例總體上涉及使用rdma(遠程直接存儲器訪問)和/或主動消息的異構(gòu)io(輸入/輸出)。
背景技術(shù):
一般而言,嵌入式平臺(例如,圖形處理單元(gpu)或數(shù)字消費電子)與非嵌入式平臺(例如,傳統(tǒng)的工作站或臺式計算機)相比可能具有相對非常有限的io(輸入/輸出)能力或帶寬。因此,在嵌入式系統(tǒng)與外部存儲設備(例如,硬盤驅(qū)動器)之間移動數(shù)據(jù)可能是繁瑣的。此外,傳統(tǒng)的解決方案可能涉及龐大和/或昂貴的存儲協(xié)議(或集群文件系統(tǒng)),并可能產(chǎn)生令人失望的具有高開發(fā)成本的性能結(jié)果。
附圖說明
參考附圖提供了詳細描述。在附圖中,附圖標記最左邊的數(shù)字標識該附圖標記第一次出現(xiàn)的附圖。在不同的附圖中使用相同的附圖標記來指示類似或相同的項目。
圖1、圖2-a、圖2-b以及圖11-13示出了計算系統(tǒng)的實施例的框圖,該計算系統(tǒng)可以用于實現(xiàn)本文描述的各種實施例。
圖3-a、圖3-b以及圖4-10示出了根據(jù)一些實施例的用于執(zhí)行各種操作的方法的流程圖。
具體實施方式
在下面的描述中,闡述了大量具體細節(jié),以便于提供對各種實施例的透徹理解。然而,可以在沒有這些具體細節(jié)的情況下實踐各種實施例。在其它實例中,沒有詳細描述公知的方法、過程、部件以及電路,以使得不模糊特定實施例。此外,可以使用各種單元來執(zhí)行實施例的各個方面,例如,集成半導體電路(“硬件”)、組織到一個或多個程序中的計算機可讀指令(“軟件”)、或硬件與軟件的一些組合。出于本公開的目的,提及“邏輯”將表示或者硬件、軟件,或者其一些組合。
如上文所討論的,嵌入式平臺可能具有非常有限的io(輸入/輸出或i/o)能力。因此,在這些系統(tǒng)與其外部存儲設備之間移動數(shù)據(jù)可能是繁瑣的。傳統(tǒng)的解決方案可能涉及龐大和/或昂貴的存儲協(xié)議(或集群文件系統(tǒng)),并可能產(chǎn)生令人失望的具有高開發(fā)成本的性能結(jié)果。因此,許多用戶和isv/ihv(獨立解決方案供應商/獨立硬件供應商)高度需求具有可以容易地裁剪以適應平臺的主機系統(tǒng)(和運行時環(huán)境)的高性能的輕量解決方案。
為此,一些實施例提供了通過通信網(wǎng)絡(例如,以太網(wǎng)或
另外,在一些實施例中提供了異構(gòu)且適應性的解決方案。例如,在沒有預定義的協(xié)議約束的情況下,可以使用不同的格式將數(shù)據(jù)自由地重定向到不同的存儲介質(zhì)。還可以更容易地將數(shù)據(jù)取回并轉(zhuǎn)換回其原始形式。在一些實施例中,本文所討論的技術(shù)可以用于增強諸如便攜式設備(例如,數(shù)字消費電子)或協(xié)處理器加速器(例如,
此外,可以在各種計算系統(tǒng)(例如,包括移動設備,舉例來說,例如,智能電話、平板計算機、umpc(超級移動個人計算機)、膝上型計算機、ultrabooktm計算設備、智能手表、智能眼鏡等)中提供本文所討論的技術(shù),例如,參考圖1-13所討論的技術(shù)。更具體地,圖1示出了根據(jù)實施例的計算系統(tǒng)100的框圖。系統(tǒng)100包括一個或多個處理器102-1到102-n(在本文中一般被稱為“多個處理器102”或“處理器102”)。處理器102可以經(jīng)由互連或總線104進行通信。每個處理器可以包括各種部件,為了清楚起見,僅參考處理器102-1討論了其中一些部件。因此,剩余的處理器102-2到102-n中的每一個可以包括與參考處理器102-1所討論的部件相同或類似的部件。
在實施例中,處理器102-1可以包括一個或多個處理器核心106-1到106-m(在本文中被稱為“多個核心106”,或者更一般地稱為“核心106”)、高速緩存108(在各種實施例中,其可以是共享的高速緩存或私有的高速緩存)、和/或路由器110。處理器核心106可以實現(xiàn)在單個集成電路(ic)芯片上。此外,芯片可以包括一個或多個共享的和/或私有的高速緩存(例如,高速緩存108)、總線或互連(例如,總線或互連112)、邏輯150/152、諸如參考圖11-13所討論的存儲器控制器(包括nvm(非易失性存儲器),例如,閃速存儲器、固態(tài)驅(qū)動器(“sdd”,例如,具有nand存儲單元)等)的存儲器控制器、或者其它部件(例如,io控制器160及其實現(xiàn)對一個存儲設備或存儲設備池180的訪問的互連170)。
在一些實施例中,可以出于i/o目的使用其它類型的接口(例如,針對io控制器160和互連170)。例如,串行附接的小型計算機系統(tǒng)接口(scsi)(或簡稱為sas,以及其它變型,例如,互聯(lián)網(wǎng)scsi(iscsi))或快速外圍部件互連(pcie)(如在pciexpressbase3.0規(guī)范中描述的)可以用于i/o接口。在一個實施例中,路由器110可以用于在處理器102-1和/或系統(tǒng)100的各種部件之間進行通信。此外,處理器102-1可以包括多于一個路由器110。此外,多個路由器110可以進行通信以實現(xiàn)在處理器102-1內(nèi)部或外部的各種部件之間的數(shù)據(jù)路由。
高速緩存108可以存儲由處理器102-1的一個或多個部件(例如,核心106)使用的數(shù)據(jù)(例如,包括指令)。例如,高速緩存108可以對存儲在(易失性和/或非易失性)存儲器114中的數(shù)據(jù)進行本地高速緩存,以用于由處理器102的部件更快地訪問。如圖1所示,存儲器114可以經(jīng)由互連104與處理器102通信。在實施例中,高速緩存108(可以是共享的)可以具有各種級別,例如,高速緩存108可以是中級高速緩存和/或末級高速緩存(llc)。另外,核心106中的每一個可以包括1級(l1)高速緩存(116-1)(在本文中一般被稱為“l(fā)1高速緩存116”)。處理器102-1的各種部件可以通過總線(例如,總線112)、和/或存儲器控制器或中心直接地與高速緩存108通信。
如圖1所示,存儲器114可以通過存儲器控制器120耦合到系統(tǒng)100的其它部件上。還可以從io控制器160經(jīng)由互連170訪問存儲子系統(tǒng)180。如本文將參考剩余的附圖進一步討論的,系統(tǒng)100還包括通信邏輯150,以耦合(并促進其之間的通信)嵌入式系統(tǒng)152(例如,gpu(圖形處理單元)或
圖2-a示出了根據(jù)實施例的具有異構(gòu)io重定向的計算系統(tǒng)的框圖。在圖2-a中,嵌入式系統(tǒng)152(在本文中有時也被稱為“信宿”)可以獨立于主機系統(tǒng)100(也被稱為“信源”)運行,如圖1所示。信宿152可以或者通過將信源100用作代理設備以訪問存儲設備/池180來進行io;或者通過經(jīng)由其自身的io連接(202)直接將數(shù)據(jù)轉(zhuǎn)移到存儲設備/池180來進行io。在該實施例中,只要鏈路150的轉(zhuǎn)移速率合理地快于io鏈路201或202,經(jīng)由異構(gòu)路徑(例如,路徑150加路徑201)在嵌入式系統(tǒng)152與存儲設備180目的地(其可以與本文所討論的存儲器設備(例如,圖1的存儲器114)相同或類似)之間例如通過主機/服務器100移動數(shù)據(jù)(在本文中一般被稱為io“重定向”)就可以勝過由信宿節(jié)點152執(zhí)行的io路徑202,這是由于其相對有限的io能力/吞吐量。
在本公開中導出的算法還可以用于其中信宿設備不具有對存儲設備180(或存儲器120)的直接訪問的配置中。只要通信邏輯150如圖2-b所示合理地快,就可以高效地將數(shù)據(jù)從信宿152轉(zhuǎn)移到存儲設備180(或存儲器120)。
在各種實施例中,存儲設備180包括一種或多種類型的存儲設備或存儲器,例如,在本文中參考圖1-13所討論的那些,例如包括以下中的一個或多個:網(wǎng)絡附接存儲(nas)設備、存儲區(qū)域網(wǎng)絡(san)設備、或直接附接存儲(das)設備。
在本文公開的實施例中,rdma(遠程直接存儲器訪問)和主動消息用于實現(xiàn)構(gòu)建所描述的數(shù)據(jù)轉(zhuǎn)移解決方案(即,異構(gòu)路徑150加201)的目標,其不要求任何特定的存儲協(xié)議和/或任何特定的文件系統(tǒng)支持。這可以在使開發(fā)成本最小化的情況下維持具有適應許多不同的運行時環(huán)境的靈活性的有競爭力的性能結(jié)果。
關(guān)于性能考慮,現(xiàn)有的存儲解決方案通常需要兩種實現(xiàn)方式,例如,發(fā)起者對目標(例如,scsi(小型計算機系統(tǒng)接口))或客戶端對服務器(nfs(網(wǎng)絡文件系統(tǒng))或
此外,通過一些實施例提供了輕量、較低成本和/或更快的開發(fā)周期。例如,互連通常是最可能以模擬形式存在的嵌入式系統(tǒng)內(nèi)的嵌入式平臺對存儲鏈路的最小支持特征中的一個。為此,實施例消除了在嵌入式平臺內(nèi)對這種模擬的需要。這進而引起更少的軟件堆棧、更少的資源需求(高速緩存、存儲器、功率等需求)、和/或更快和/或更容易的實現(xiàn)方式。
此外,在一些實施例中提供了異構(gòu)且適應性的解決方案。例如,在沒有預定義的協(xié)議約束的情況下,可以使用不同的格式將數(shù)據(jù)自由地重定向到不同的存儲介質(zhì)。還可以更容易地將數(shù)據(jù)取回并轉(zhuǎn)換回其原始形式。
參考圖3-a、圖3-b以及圖4(其示出了根據(jù)一些實施例的方法的流程圖),將數(shù)據(jù)操作分組成三個類別:放(put)、取(get)以及控制(control)?!胺拧辈僮鲃?chuàng)建或修改包含數(shù)據(jù)的存儲對象。存儲對象可以是文件、目錄、磁盤塊、或存儲設備的分立單元?!叭 辈僮鲝拇鎯ο笕』貎?nèi)容?!翱刂啤辈僮魈峁┬旁?00與信宿152之間的實現(xiàn)專用機制以用于任務同步。存儲對象是已知的,并且可由經(jīng)由常規(guī)方法(例如,文件io)或存儲協(xié)議(例如,nas或san協(xié)議)執(zhí)行操作的信源訪問。將在信宿上執(zhí)行的“放”和“取”操作封裝到經(jīng)由通信(comm.)邏輯150(例如,根據(jù)ieee(電氣與電子工程師協(xié)會)802.3的以太網(wǎng))發(fā)送到信源100的主動消息中以用于實際操作。根據(jù)一些實施例,圖3-a示出了與委托“取”操作相關(guān)聯(lián)的流程;圖3-b示出了與委托“放”操作相關(guān)聯(lián)的流程;而圖4示出了與完整路徑相關(guān)聯(lián)的流程。
如圖3-a和圖3-b所示,從信宿設備將“放”和“取”操作委托給信源(主機)。如圖3-a所示,代表信宿設備152的委托“取”操作(從存儲設備180源起數(shù)據(jù))被實現(xiàn)為存儲設備-讀取(storage-read)(步驟1:從存儲設備180到信源100),接下來是rdma-寫入(rdma-write)(步驟2:將數(shù)據(jù)從信源100發(fā)送到嵌入式系統(tǒng)152)。如圖3-b所示,代表信宿設備152的委托“放”操作被實現(xiàn)為rdma-讀取(rdma-read)(步驟1:將數(shù)據(jù)從信宿152復制到信源100),接下來是存儲設備-寫入(storage-write)(步驟2:將數(shù)據(jù)從信源100發(fā)送到存儲設備180)。此外,可以在信宿152與信源100之間執(zhí)行“控制”操作以用于其它同步目的(例如,可以將鎖定消息從信源發(fā)送到信宿以通知在另一個解鎖消息到達之前不應對存儲對象執(zhí)行任何操作)。
圖4示出了詳細操作(封裝在主動消息內(nèi)或以其他方式與其相關(guān)聯(lián))主動消息從信宿發(fā)送以在代表發(fā)送方(例如,信宿設備或嵌入式系統(tǒng)152)的信源設備(即,主機/服務器100)上操作或執(zhí)行。在嵌入式系統(tǒng)152與主機/服務器100之間的主動消息交換(其可以包括將由嵌入式系統(tǒng)執(zhí)行的代碼或者代替地到該代碼的函數(shù)指針)可以包括命令(cmd)、數(shù)據(jù)長度、緩沖器位置、和/或數(shù)據(jù)內(nèi)容。另外,可以將從信源設備100發(fā)送到存儲設備180的命令轉(zhuǎn)換為存儲命令(例如,打開、搜索、鎖定、讀取、和/或?qū)懭?。在實施例中,可以使用
圖5-10提供了本文所討論的操作的進一步細化。圖5示出了根據(jù)一些實施例的用于初始化信宿設備和信源設備的方法的流程圖。在一個實施例中,參考圖1-4和圖11-13所討論的各種部件可以用于執(zhí)行參考圖5所討論的操作中的一個或多個操作。在實施例中,圖5的一個或多個操作在諸如邏輯150的邏輯(例如,固件)、嵌入式系統(tǒng)152、和/或主機/服務器100中實現(xiàn)。
參考圖5,在操作502處,信宿設備通過生成控制消息以獲得連接來開始初始化,并且在操作504處將控制消息發(fā)送到信源設備。在操作520處,信源設備通過構(gòu)建函數(shù)指針列表(或fpl,其包括關(guān)于信源設備放和取函數(shù)的信息/指針)來開始初始化。在操作522處,信源等待連接(例如,從信宿設備發(fā)送的控制消息)。在操作524處,信源設備基于fpl構(gòu)建回復消息,并隨后在操作526處將回復消息發(fā)送到信宿設備。一旦在操作506處信宿設備接收到回復消息,其就在操作508處保存信源fpl。
圖6和7示出了根據(jù)一些實施例的分別用于執(zhí)行信宿放函數(shù)和信宿取函數(shù)的方法的流程圖。在一個實施例中,參考圖1-4和圖11-13所討論的各種部件可以用于執(zhí)行參考圖6或圖7所討論的操作中的一個或多個操作。在實施例中,圖6或圖7的一個或多個操作在諸如邏輯150的邏輯(例如,固件)、嵌入式系統(tǒng)152、和/或主機/服務器100中實現(xiàn)。在圖6-7中,在初始化時(參見圖5),信宿設備與信源設備經(jīng)由“控制”操作進行握手,以獲得信源設備“放”和“取”函數(shù)/操作指針。
參考圖6,對于在信宿設備上觸發(fā)的“放”請求,信宿設備構(gòu)建/注冊用于rdma操作的數(shù)據(jù)緩沖器(操作602),接下來利用存儲器注冊信息、數(shù)據(jù)緩沖器布局(例如,具有開始地址和長度)與先前獲得的“放”函數(shù)指針一起封裝/生成主動消息(操作604)。隨后將主動消息發(fā)送到信源設備(操作606),并在操作620處由信源設備接收并解碼(操作622)。在信源設備處通過執(zhí)行對應的rdma-讀取操作(從信宿設備到信源設備)來執(zhí)行“放”操作(步驟624),接下來是對存儲設備180的實際寫入操作。在操作608處,信宿設備等待完成放操作/函數(shù)。
參考圖7,對于信宿設備上的“取”函數(shù)/操作,信宿設備在信宿設備上構(gòu)建/注冊用于rdma操作的接收緩沖器(操作702),接下來利用存儲器注冊信息、接收緩沖器布局(例如,具有開始地址和長度)、存儲元數(shù)據(jù)與先前獲得的“取”函數(shù)指針一起生成/封裝主動消息(操作704)。然后將消息發(fā)送到信源設備(操作706),其中信源設備在接收(操作720)并解碼主動消息(操作722)后通過從存儲設備180讀取數(shù)據(jù)來執(zhí)行請求(操作724),接下來是到如在主動消息中指定的信宿設備緩沖器的rdma寫入操作。在操作708處,信宿設備等待完成取操作/函數(shù)。
此外,在一些實施例中,鎖定適當?shù)厥切旁丛O備上的“放”和“取”函數(shù)的一部分。其遵守由信源設備與存儲子系統(tǒng)180之間的交互/鏈接所施加的實際存儲操作需求(例如,用于文件io的posix(用于unix的便攜式操作系統(tǒng)接口或另一個應用程序接口(api))鎖定或用于nfs的nlm(網(wǎng)絡鎖定管理器)鎖定)。在一些實施例中,可以預期,“放”操作將獲取排他鎖,而“取”操作將獲取共享鎖。
圖8和圖9示出了根據(jù)一些實施例的用于異步地委托放和取操作(以及參考圖10的其完成)的方法的流程圖。在一個實施例中,參考圖1-4和圖11-13所討論的各種部件可以用于執(zhí)行參考圖8、圖9或圖10所討論的操作中的一個或多個操作。在實施例中,圖8、圖9或圖10的一個或多個操作在諸如邏輯150的邏輯(例如,固件)、嵌入式系統(tǒng)152、和/或主機/服務器100中實現(xiàn)。
參考圖8-10,當且僅當已經(jīng)預先布置了將具有緩沖器注冊信息、信宿設備緩沖器布局、以及信宿設備的完成回調(diào)函數(shù)指針的請求從信宿設備發(fā)送到信源設備的“控制”操作時,可以由信源設備代表信宿設備異步地請求“放”和“取”操作二者。更具體地,信宿設備可以在操作802處開始委托放操作,在操作804處構(gòu)建/生成主動消息(例如,類似于參考操作604所討論的操作),并在操作806處將主動消息發(fā)送到信源設備的主動消息處理器。一旦接收(操作820),就對主動消息進行解碼(操作822),并且在操作824處調(diào)度放委托操作(例如,通過執(zhí)行隊列請求以在基于存儲器的隊列中保存請求,以及調(diào)度信源來執(zhí)行放操作)。然后,在操作830處,信源設備的主動消息調(diào)度器調(diào)度放操作以用于執(zhí)行(例如,通過獲得排他鎖、來自信宿設備的rdma讀取操作、到存儲設備204的寫入操作、以及通知完成(例如,參見圖10))。如圖8所示,操作830和操作802可以雙向地交換信息以執(zhí)行其任務。
另外(如圖9-10所示),還可以異步地委托取操作。例如,信宿設備可以在操作902處開始取操作委托,在操作904處生成/構(gòu)建主動消息(例如,類似于參考操作704所討論的操作),并在操作906處將主動消息發(fā)送到信源設備的主動消息處理器。一旦接收(操作920),就對主動消息進行解碼(操作922),并且在操作924處調(diào)度取委托操作(例如,通過執(zhí)行隊列請求以在基于存儲器的隊列中保存請求,以及調(diào)度信源來執(zhí)行取操作)。然后,在操作930處,信源設備的主動消息調(diào)度器調(diào)度取操作以用于執(zhí)行(例如,通過獲得共享鎖、從存儲設備180進行讀取、到信宿設備緩沖器的rdma寫入操作、以及通知完成(例如,參見圖10))。如圖9所示,操作930和操作902可以雙向地交換信息以執(zhí)行其任務。
關(guān)于參考圖8和圖9提及的完成處理,圖10示出了根據(jù)實施例的與完成處理相關(guān)聯(lián)的操作。如圖10所示,當在操作1002處完成異步“放”或異步“取”后,信源設備的主動消息調(diào)度器執(zhí)行構(gòu)建/生成主動消息(例如,使用信宿設備完成回調(diào)函數(shù)和與完成相關(guān)聯(lián)的數(shù)據(jù))的操作1004。在操作1006處,將主動消息發(fā)送到信宿設備的主動消息處理器。在操作1022處,信宿設備的主動消息處理器檢測從信源設備接收到主動消息。在操作1024處對主動消息進行解碼。在操作1026處,隨后運行完成回調(diào)函數(shù)。
可以在協(xié)處理器及其主機系統(tǒng)(例如,intelxeonphi平臺)的頂層構(gòu)建一些實施例,其中可以提供協(xié)處理器卸載基礎設施(coi)api擴展,協(xié)處理器卸載基礎設施(coi)api擴展允許駐留在xeonphi平臺上的數(shù)據(jù)在其主機計算系統(tǒng)(例如,參考圖1-4和圖11-13所討論的計算系統(tǒng))、物理存儲設備(例如,存儲設備/池180)、以及xeonphi本身之間高效地移動。因此,與通?;谙鄬嫶笄野嘿F的集群文件系統(tǒng)的mpi(消息傳遞接口)io相反,coi擴展可以是極其輕量的。此外,這種實施例不要求任何特定的文件系統(tǒng)支持。進一步解決現(xiàn)有的缺點,在運行時間期間,舊的方法還可能在緩沖器高速緩存(存儲器)、功耗、以及握手協(xié)議開銷方面消耗相當大的xeonphi資源。除了在產(chǎn)品質(zhì)量以及開發(fā)成本方面提供對現(xiàn)有生產(chǎn)線的改進之外,這種輕量的實施例可以容易地適應大量不同的運行時環(huán)境,而不受任何特定的存儲硬件/軟件配置的約束。另外,其固有的異構(gòu)性(heterogeneity)允許大量相異的信源設備、信宿設備、以及存儲設備/池來實現(xiàn)數(shù)據(jù)流,而不管其單個的配置。這可以成為對于hpc(高性能計算)產(chǎn)品尤其相關(guān)的,其可以顯著提高用于大規(guī)模集群的互連鏈路速度,可以容易地超過其存儲設置速度。
圖11示出了根據(jù)本發(fā)明的實施例的計算系統(tǒng)1100的框圖。計算系統(tǒng)1100可以包括一個或多個中央處理單元(cpu)1102或處理器,一個或多個中央處理單元(cpu)1102或處理器經(jīng)由互連網(wǎng)絡(或總線)1104進行通信。處理器1102可以包括通用處理器、網(wǎng)絡處理器(其處理通過計算機網(wǎng)絡1103傳送的數(shù)據(jù))、應用處理器(例如,在手機、智能電話等中使用的應用處理器)、或其它類型的處理器(包括精簡指令集計算機(risc)處理器或復雜指令集計算機(cisc)處理器)??梢允褂酶鞣N類型的計算網(wǎng)絡1103,包括有線網(wǎng)絡(例如,以太網(wǎng)、千兆比特、光纖等)或無線網(wǎng)絡(例如,蜂窩、3g(第三代手機技術(shù)或第三代無線格式(uwcc))、4g(第四代(無線/移動通信))、低功率嵌入(lpe)等)。此外,處理器1102可以具有單個或多個核心設計。具有多個核心設計的處理器1102可以在同一個集成電路(ic)管芯上集成不同類型的處理器核心。另外,具有多個核心設計的處理器1102可以被實現(xiàn)為對稱或非對稱多處理器。
在實施例中,處理器1102中的一個或多個處理器1102可以與圖1的處理器102相同或類似。例如,處理器1102中的一個或多個處理器1102可以包括核心106和/或高速緩存108中的一個或多個。另外,參考圖1-10所討論的操作可以由系統(tǒng)1100的一個或多個部件執(zhí)行。
芯片組1106也可以與互連網(wǎng)絡1104通信。芯片組1106可以包括圖形和存儲器控制中心(gmch)1108。gmch1108可以包括與存儲器114通信的存儲器控制器1110(其在實施例中可以與圖1的存儲器控制器120相同或類似)。系統(tǒng)1100還可以包括在各種位置處(例如,圖11所示的位置處,但是可以在系統(tǒng)1100內(nèi)的其它位置處(未示出))的邏輯150(例如,耦合到嵌入式系統(tǒng)152)。存儲器114可以存儲數(shù)據(jù),包括由cpu1102或包括在計算系統(tǒng)1100中的任何其它設備執(zhí)行的指令序列。在本發(fā)明的一個實施例中,存儲器114可以包括一個或多個易失性/非易失性存儲(或存儲器)設備,例如,隨機存取存儲器(ram)、動態(tài)ram(dram)、同步dram(sdram)、靜態(tài)ram(sram)、或其它類型的存儲設備(例如,硬盤、納米線存儲器、鐵電晶體管隨機存取存儲器(fetram)、磁阻隨機存取存儲器(mram)、閃速存儲器、旋轉(zhuǎn)力矩轉(zhuǎn)移隨機存取存儲器(sttram)、電阻隨機存取存儲器、3d交叉點存儲器(例如,pcm(相變存儲器))、具有nand/nor存儲器的ssd等。附加的設備可以經(jīng)由互連網(wǎng)絡1104進行通信,例如,多個cpu和/或多個系統(tǒng)存儲器。
gmch1108還可以包括與圖形加速器1116通信的圖形接口1114。在本發(fā)明的一個實施例中,圖形接口1114可以經(jīng)由加速圖形端口(agp)或外圍部件互連(pci)(或快速pci(pcie)接口)與圖形加速器1116通信。在本發(fā)明的實施例中,顯示器1117(例如,平板顯示器、觸摸屏等)可以例如通過信號轉(zhuǎn)換器與圖形接口1114通信,信號轉(zhuǎn)換器將存儲在存儲設備(例如,視頻存儲器或系統(tǒng)存儲器)內(nèi)的圖像的數(shù)字表示轉(zhuǎn)換為由顯示器解釋并顯示的顯示信號。由顯示設備產(chǎn)生的顯示信號在被顯示器1117解釋并且隨后在顯示器1117上顯示之前可以經(jīng)過各種控制設備。
中心接口1118可以允許gmch1108和輸入/輸出控制中心(ich)1120通信。ich1120可以將接口提供給與計算系統(tǒng)1100通信的i/o設備。ich1120可以通過外圍橋(或控制器)1124(例如,外圍部件互連(pci)橋、通用串行總線(usb)控制器、或其它類型的外圍橋或控制器)與總線1122通信。橋1124可以提供在cpu1102與外圍設備之間的數(shù)據(jù)路徑??梢允褂闷渌愋偷耐負?。另外,多個總線可以例如通過多個橋或控制器與ich1120通信。此外,在各種實施例中,與ich1120通信的其它外圍部件可以包括:集成驅(qū)動電子(ide)或小型計算機系統(tǒng)接口(scsi)硬驅(qū)動器、usb端口、鍵盤、鼠標、并行端口、串行端口、軟盤驅(qū)動器、數(shù)字輸出支持(例如,數(shù)字視頻接口(dvi))、或其它設備。
總線1122可以與音頻設備1126、一個或多個磁盤驅(qū)動器1128、以及網(wǎng)絡接口設備1130(其與計算機網(wǎng)絡1103通信,例如,經(jīng)由有線或無線接口)通信。如所示出的,可以將網(wǎng)絡接口設備1130耦合到天線1131上以無線地(例如,經(jīng)由電氣與電子工程師協(xié)會(ieee)802.11接口(包括ieee802.11a/b/g/n等)、蜂窩接口、3g、11g、lpe等)與網(wǎng)絡1103通信。其它設備可以經(jīng)由總線1122進行通信。另外,在一些實施例中,各種部件(例如,網(wǎng)絡接口設備1130)可以與gmch1108通信。另外,可以將處理器1102和gmch1108組合以形成單個芯片。此外,在其它實施例中,可以將圖形加速器1116包括在gmch1108內(nèi)。
此外,計算系統(tǒng)1100可以包括易失性和/或非易失性存儲器(或存儲設備)。例如,非易失性存儲器可以包括以下中的一個或多個:只讀存儲器(rom)、可編程rom(prom)、可擦除prom(eprom)、電eprom(eeprom)、磁盤驅(qū)動器(例如,1128)、軟盤、光盤rom(cd-rom)、數(shù)字通用盤(dvd)、閃速存儲器、磁光盤、或能夠存儲電子數(shù)據(jù)(例如,包括指令)的其它類型的非易失性機器可讀介質(zhì)。
圖12示出了根據(jù)實施例的以點對點(ptp)配置進行布置的計算系統(tǒng)1200。特別地,圖12示出了這樣的系統(tǒng):其中處理器、存儲器、以及輸入/輸出設備通過多個點對點接口互連。參考圖1-11所討論的操作可以由系統(tǒng)1200的一個或多個部件執(zhí)行。
如圖12所示,系統(tǒng)1200可以包括若干處理器,為了清楚起見,只示出了其中的兩個(處理器1202和1204)。處理器1202和1204每個均可以包括本地存儲器控制器中心(mch)1206和1208,以實現(xiàn)與存儲器1210和1212的通信。存儲器1210和/或1212可以存儲各種數(shù)據(jù),例如,參考圖1和/或圖11的存儲器114所討論的。另外,在一些實施例中,mch1206和1208可以包括圖1的存儲器控制器120和/或邏輯150。
在實施例中,處理器1202和1204可以是參考圖11所討論的處理器1102中的一個。處理器1202和1204可以經(jīng)由點對點(ptp)接口1214分別使用ptp接口電路1216和1218交換數(shù)據(jù)。另外,處理器1202和1204每個均可以經(jīng)由單獨的ptp接口1222和1224使用點對點接口電路1226、1228、1230以及1232與芯片組1220交換數(shù)據(jù)。芯片組1220還可以經(jīng)由高性能圖形接口1236(例如,使用ptp接口電路1237)與高性能圖形電路1234交換數(shù)據(jù)。如參考圖1所討論的,在一些實施例中,可以將圖形接口1236耦合到顯示設備(例如,顯示器1117)。
如圖12所示,圖1的核心106和/或高速緩存108中的一個或多個可以位于處理器1202和1204內(nèi)。然而,其它實施例可以存在于圖12的系統(tǒng)1200內(nèi)的其它電路、邏輯單元、或設備中。此外,其它實施例可以遍及圖12所示的若干電路、邏輯單元、或設備分布。
芯片組1220可以使用ptp接口電路1241與總線1240通信??偩€1240可以具有與其通信的一個或多個設備,例如,總線橋1242和i/o設備1243。總線橋1242可以經(jīng)由總線1244與以下其它設備通信:例如,鍵盤/鼠標1245、通信設備1246(例如,調(diào)制解調(diào)器、網(wǎng)絡接口設備、或與計算機網(wǎng)絡1103通信的其它通信設備,例如,如參考網(wǎng)絡接口設備1130所討論的,包括經(jīng)由天線1131)、音頻i/o設備、和/或數(shù)據(jù)存儲設備1248。數(shù)據(jù)存儲設備1248可以存儲可以由處理器1202和/或1204執(zhí)行的代碼1249。
在一些實施例中,本文所討論的部件中的一個或多個可以在片上系統(tǒng)(soc)設備上實施。圖13示出了根據(jù)實施例的soc封裝的框圖。如圖13所示,soc1302包括一個或多個中央處理單元(cpu)核心1320、一個或多個圖形處理器單元(gpu)核心1330、輸入/輸出(i/o)接口1340、以及存儲器控制器1342。可以將soc封裝1302的各種部件耦合到互連或總線上,例如,在本文中參考其它附圖所討論的。另外,soc封裝1302可以包括更多或更少的部件,例如,在本文中參考其它附圖所討論的。此外,soc封裝1302中的每個部件可以包括一個或多個其它部件,例如,如在本文中參考其它附圖所討論的。在一個實施例中,soc封裝1302(及其部件)設置在一個或多個集成電路(ic)管芯上,例如,其被封裝到單個半導體設備上。
如圖13所示,soc封裝1302經(jīng)由存儲器控制器1342耦合到存儲器1360(其可以與在本文中參考其它附圖所討論的存儲器類似或相同。)在實施例中,存儲器1360(或其一部分)可以集成到soc封裝1302中。
i/o接口1340可以例如經(jīng)由互連和/或總線(例如,在本文中參考其它附圖所討論的)耦合到一個或多個i/o設備1370。i/o設備1370可以包括以下中的一個或多個:鍵盤、鼠標、觸摸板、顯示器、圖像/視頻捕獲設備(例如,照像機或攝像機/錄影機)、觸摸屏、揚聲器等。此外,在實施例中,soc封裝1302可以包括/集成邏輯150。替代地,可以將邏輯150設置在soc封裝1302的外部(即,作為分立邏輯)。
下面的示例屬于另外的實施例。示例1包括一種裝置,其包括:用于經(jīng)由信源設備將嵌入式系統(tǒng)耦合到存儲設備的邏輯,其中,響應于在嵌入式系統(tǒng)與信源設備之間耦合的第一鏈路的轉(zhuǎn)移速率快于在信源設備與存儲設備之間耦合的第二鏈路的轉(zhuǎn)移速率,嵌入式系統(tǒng)和存儲設備將通過第一鏈路和第二鏈路而不是第三鏈路來交換信息,其中第三鏈路能夠直接耦合嵌入式系統(tǒng)和存儲設備。示例2包括示例1的裝置,其中,嵌入式系統(tǒng)和存儲設備至少部分地基于rdma(遠程直接存儲器訪問)消息或主動消息中的一個或多個經(jīng)由信源設備來交換信息。示例3包括示例2的裝置,其中,主動消息是自身能夠執(zhí)行處理的消息傳送對象。示例4包括示例1的裝置,其中,嵌入式系統(tǒng)和存儲設備將在主動模式或被動模式中的一個模式下經(jīng)由信源設備來交換信息。示例5包括示例4的裝置,其中,主動模式將在調(diào)用過程的上下文中在信源設備處對數(shù)據(jù)進行操作。示例6包括示例4的裝置,其中,被動模式使得與主動消息相關(guān)聯(lián)的對數(shù)據(jù)的傳輸,數(shù)據(jù)是在代表嵌入式系統(tǒng)的信源設備處操作的。示例7包括示例1的裝置,其中,嵌入式系統(tǒng)將包括圖形處理單元平臺或協(xié)處理器卸載基礎設施平臺中的一個。示例8包括示例1的裝置,其中,存儲設備將包括以下中的一個或多個:網(wǎng)絡附接存儲(nas)設備、存儲區(qū)域網(wǎng)絡(san)設備、或直接附接存儲(das)設備。示例9包括示例1的裝置,其中,信源設備將包括主機計算系統(tǒng)或計算機服務器。示例10包括示例1的裝置,其中,一個或多個處理器核心被耦合到存儲設備以訪問存儲在存儲設備中的信息。示例11包括示例1的裝置,其中,邏輯、一個或多個處理器核心、以及存儲器中的一個或多個在同一個集成電路管芯上。示例12包括示例1的裝置,其中,嵌入式系統(tǒng)和存儲設備將至少部分地基于通過通信協(xié)議的rdma(遠程直接存儲器訪問)消息或主動消息中的一個或多個經(jīng)由信源設備來交換信息。
示例13包括一種方法,其包括:經(jīng)由信源設備在嵌入式系統(tǒng)與存儲設備之間交換信息,其中,響應于在嵌入式系統(tǒng)與信源設備之間耦合的第一鏈路的轉(zhuǎn)移速率快于在信源設備與存儲設備之間耦合的第二鏈路的轉(zhuǎn)移速率,嵌入式系統(tǒng)和存儲設備通過第一鏈路和第二鏈路而不是第三鏈路來交換信息,其中第三鏈路能夠直接耦合嵌入式系統(tǒng)和存儲設備。示例14包括示例13的方法,還包括,嵌入式系統(tǒng)和存儲設備至少部分地基于rdma(遠程直接存儲器訪問)消息或主動消息中的一個或多個經(jīng)由信源設備來交換信息。示例15包括示例14的方法,其中,主動消息是自身能夠執(zhí)行處理的消息傳送對象。示例16包括示例13的方法,還包括,嵌入式系統(tǒng)和存儲設備在主動模式或被動模式中的一個模式下經(jīng)由信源設備來交換信息。示例17包括示例16的方法,其中,主動模式在調(diào)用過程的上下文中在信源設備處對數(shù)據(jù)進行操作。示例18包括示例16的方法,其中,被動模式使得與主動消息相關(guān)聯(lián)的對數(shù)據(jù)的傳輸,數(shù)據(jù)是在代表嵌入式系統(tǒng)的信源設備處操作的。示例19包括示例13的方法,其中,嵌入式系統(tǒng)包括圖形處理單元平臺或協(xié)處理器卸載基礎設施平臺中的一個。示例20包括示例13的方法,其中,存儲設備包括以下中的一個或多個:網(wǎng)絡附接存儲(nas)設備、存儲區(qū)域網(wǎng)絡(san)設備、或直接附接存儲(das)設備。示例21包括示例13的方法,其中,信源設備包括主機計算系統(tǒng)或計算機服務器。
示例22包括一種計算機可讀介質(zhì),其包括一個或多個指令,當在處理器上被執(zhí)行時,該指令將處理器配置為執(zhí)行一個或多個操作以用于:經(jīng)由信源設備在嵌入式系統(tǒng)與存儲設備之間交換信息,其中,響應于在嵌入式系統(tǒng)與信源設備之間耦合的第一鏈路的轉(zhuǎn)移速率快于在信源設備與存儲設備之間耦合的第二鏈路的轉(zhuǎn)移速率,嵌入式系統(tǒng)和存儲設備通過第一鏈路和第二鏈路而不是第三鏈路來交換信息,其中第三鏈路能夠直接耦合嵌入式系統(tǒng)和存儲設備。示例23包括示例22的計算機可讀介質(zhì),還包括一個或多個指令,當在處理器上被執(zhí)行時,該指令將處理器配置為執(zhí)行一個或多個操作,以使得嵌入式系統(tǒng)和存儲設備至少部分地基于rdma(遠程直接存儲器訪問)消息或主動消息中的一個或多個經(jīng)由信源設備來交換信息。示例24包括示例22的計算機可讀介質(zhì),其中,主動消息是自身能夠執(zhí)行處理的消息傳送對象。示例25包括示例22的計算機可讀介質(zhì),還包括一個或多個指令,當在處理器上被執(zhí)行時,該指令將處理器配置為執(zhí)行一個或多個操作,以使得嵌入式系統(tǒng)和存儲設備在主動模式或被動模式中的一個模式下經(jīng)由信源設備來交換信息。示例26包括示例22的計算機可讀介質(zhì),其中,主動模式在調(diào)用過程的上下文中在信源設備處對數(shù)據(jù)進行操作,或者其中,被動模式使得與主動消息相關(guān)聯(lián)的對數(shù)據(jù)的傳輸,數(shù)據(jù)是在代表嵌入式系統(tǒng)的信源設備處操作的。
示例27包括一種裝置,其包括用于執(zhí)行如在任何前述示例中所闡述的方法的單元。
示例28包括機器可讀存儲設備,其包括機器可讀指令,當被執(zhí)行時,該指令實現(xiàn)如任何前述示例所闡述的方法或?qū)崿F(xiàn)如任何前述示例所闡述的裝置。
在各種實施例中,本文所討論的操作(例如,參考圖1-13)可以被實現(xiàn)為硬件(例如,電路)、軟件、固件、微代碼、或其組合,其可以被設置為計算機程序產(chǎn)品,例如,包括有形的(例如,非暫時性的)機器可讀或計算機可讀介質(zhì),其上存儲有用于將計算機編程為執(zhí)行本文所討論的過程的指令(或軟件過程)。另外,術(shù)語“邏輯”可以包括(舉例來說)軟件、硬件、或者軟件與硬件的組合。機器可讀介質(zhì)可以包括存儲設備,例如,參考圖1-13所討論的存儲設備。
另外,可以將這種有形的計算機可讀介質(zhì)下載為計算機程序產(chǎn)品,其中,可以借助于數(shù)據(jù)信號(例如,載波或其它傳播介質(zhì)中的)經(jīng)由通信鏈路(例如,總線、調(diào)制解調(diào)器、或網(wǎng)絡連接)將程序從遠程計算機(例如,服務器)轉(zhuǎn)移到請求計算機(例如,客戶端)。
在說明書中提及“一個實施例”或“實施例”表示結(jié)合實施例描述的特定特征、結(jié)構(gòu)或特性可以包括在至少一個實現(xiàn)方式中。在說明書中各處出現(xiàn)的短語“在一個實施例中”可以全部指代同一實施例或并非全部指代同一實施例。
另外,在說明書和權(quán)利要求書中,可以使用術(shù)語“耦合”和“連接”及其衍生詞。在一些實施例中,“連接”可以用于指示兩個或更多個元件彼此直接物理或電接觸?!榜詈稀笨梢员硎緝蓚€或更多個元件直接物理或電接觸。然而,“耦合”還可以表示兩個或更多個元件可以不彼此直接接觸,但是仍然可以彼此協(xié)作或交互。
因此,雖然已經(jīng)以專用于結(jié)構(gòu)特征和/或方法動作的語言描述了實施例,但是可以理解,所要求保護的主題不限于所描述的特定特征或動作。相反,特定特征和動作作為實現(xiàn)所要求保護的主題的樣本形式而公開。