裝置組件之間的內存資源共享的通訊協定的製作方法
2023-10-06 18:05:29 2
專利名稱:裝置組件之間的內存資源共享的通訊協定的製作方法
技術領域:
本發明有關於裝置組件之間的內存資源共享和通訊。
背景技術:
現代的計算裝置是由許多獨立的智能組件所組成,這些組件實現多種各別的功能並且在整體的計算裝置內交互作用。例如,應用程式處理器和圖像處理器相互作用以提供內容到系統顯示器。每一獨立的智能組件通常有不同程度的智能和組件特有的本地資源, 例如內存資源。眾所周知,由於採用總線架構,從而允許傳輸計算裝置集成電路之間的資料對於內存傳輸運作,直接內存存取(Direct Memory Access ;DMA)控制器可用於減輕總線的監督和中央處理單元(Central Processor Unit ;CPU)的內存傳輸運作,當內存傳輸正在進行時,可讓CPU執行其他功能。隨著計算裝置變得更加複雜和裝置內存資源變得更加分散,便期望有在組件之間共享內存資源的有效的通訊方法。
發明內容
在一裝置中,例如行動電話,在組件(例如集成電路)之間能夠共享內存資源,每一集成電路各自具有其內存資源,這可通過在組件之間提供互連以及構建通過該互連發送以開啟內存存取運作的交易單元來實現。該方法也可用於允許裝置組件之間一定程度的通訊。根據本發明,提供一種運用需要存取內存映射資源的啟動組件的方法,當裝置具有(i)多個處理組件和(ii)互連該多個組件的總線,包括通過該總線上的連接,從需要存取內存映射資源的該啟動組件朝向具有內存映射資源的該裝置的目標組件發送多個交易單元(TU)以建立一通道;該多個TU包括一個或多個配置TU,每一配置TU具有該通道的配置參數;通過該通道,從該啟動組件,發送內存存取請求至該目標組件,該內存存取請求TU 具有內存存取請求。根據本發明的另一實施例,提供用於裝置的第一組件,該裝置中具有多個組件以及具有實體連接到該多個組件中的每一個的總線,包括第一處理器;連接器,用於連接至該總線,使得該第一組件具有實體連接至該總線;該第一處理器可操作成通過該總線上的連接,發送多個交易單元至第二組件,並具有實體連接至該總線,以建立一通道;該第二組件具有處理器與內存,該多個TU包括一個或多個配置TU,每一配置TU具有該通道的配置參數;通過該通道,發送內存存取請求TU至該第二組件,該內存存取請求TU具有內存存取請求。根據本發明的另一實施例,提供一種用於在具有多個處理組件的裝置中促進共享內存映射的資源的方法,包括通過互連該裝置的該多個組件的總線上的連接,從需要存取內存映射資源的該裝置的啟動組件朝向具有內存映射資源的該裝置的目標組件發送多個交易單元(TU);該多個TU包括一個或多個配置TU,每一配置TU具有該通道的配置參數;通過該通道,從該啟動組件發送內存存取請求至該目標組件,該內存存取請求TU具有內存存取請求。根據本發明的另一實施例,提供一種具有多個組件的裝置,包括第一組件,具有第一處理器;第二組件,具有第二處理器和內存;總線;該第一組件和該第二組件具有實體連接至該總線;該第一處理器可操作成通過該總線上的連接,發送多個交易單元(TU)至具有實體連接至該總線之第二組件,以建立一通道,該多個TU包括一個或多個配置TU,每一配置TU具有該通道的配置參數;以及通過該通道,發送內存存取請求至該第二組件,該內存存取請求TU具有內存存取請求。
以下圖式說明本發明的實施例。圖1為本發明的裝置,適合運作的示意圖;圖2為協定堆疊的示意圖,可用於圖1的裝置中;圖3為於圖1的裝置中,內存空間的示意圖;圖4為圖1的部分裝置的運作示意圖;以及圖5至9為於圖1的裝置中,交易單元通訊的示意圖。
具體實施例方式大概來說,裝置組件的相互連接可能會以點對點方式和/或作為部分網絡。在每一組件中,可能會有一些智能(例如,該組件是CPU或DSP或具有狀態機)需要存取內部和外部內存以及輸入/輸出(input/output ; 10)資源。例如,CPU通過內部總線架構可以發出讀取和寫入周期,這通常是並行的(例如,在AXI總線架構),以便存取本地內存和IO資源。此外,CPU能對其他外部裝置的遠端資源發出請求,這些外部裝置可能是圍繞著不同的內部總線結構(例如0CP)。此處所述之協定是適合於輸送內部系統晶片(SoC)總線交易, 用於存取外部裝置的遠端內存映射的資源,外部裝置可能有不同的內部SoC總線架構。該協定定義了交易單元(TU),交易單元通過點對點的實體連結而可被封裝在傳輸層中。如圖1所示,一個示範裝置10 (是一個手機)可能有第一處理組件20,是一應用程式處理器(application processor ;AP)集成電路(integrated circuit ;IC),該第一處理組件20連接到第二個處理組件50,該第二個處理組件50是為一通過點對點總線60的圖像多媒體IC (graphics multimedia IC ;GMIC)。每一組件都有一連接器23、53,允許連接到總線上。總線60可為連接組件之間的並列或串列通道。組件20有一控制總線60的總線控制器22,以及一顯示控制器M和一攝像機控制器28。一個點對點連線沈連接該顯示控制器M至顯示器30,而第二點對點連線32連接該攝像機控制器28至攝像機;34。組件20 也具有和系統內存38連接的點對點連線36以及和基頻/射頻集成電路(baseband/radio frequency integrated circuit ;BB/RFIC) 42 連接的點對點連接 40。組件50具有一控制總線60的總線控制器52。組件50也具有和本地內存58連接的點對點連接。例如,通過總線60之通訊可通過在本技術領域中容易理解的分層開放系統互連參考模型(0SI模型),、或通過類似的網絡或點對點互連而達成。例如,可實施五層結構以允許啟動組件(即組件20或50的其中之一)直接存取目標組件(組件20或50的另一者)的內存資源。該分層架構如圖2所示,其中L1-L4所標示的層大致對應該OSI模型之分層1至4層所提供的功能性。對內存資源所需的遠端存取可以通過構建一層L5作為處理器介面模擬 (processor interface emulation ;PIE)協定層來實現,。相較於OSI模型,在本說明書之層L5可以假設為對應於OSI模型的層L4之上所實現的硬體或軟體的功能性。類似於OSI模型,每一連續的層提供一介面,以處理位在該接口的上方和下方以階層排列的層,以允許在層與層之間傳遞數據和命令。該PIE協定層L5被設計成一個獨立的封裝層,能與傳輸層L4通訊,以實現交易。通過呼叫傳輸層L4功能以及傳遞數據至傳輸層L4,該PIE協定將啟動一交易。回應於此請求,傳輸層L4使用網絡層L3所提供之設備, 網絡層L3依次接著利用較低層所提供的設備。由圖1可知,如果組件20的子組件(例如顯示控制器24)希望存取在組件50之本地內存58中的內存區塊,組件20可以啟動內存存取運作-因此可稱為啟動組件,同時組件50可稱為目標組件。假設在組件20裡的內部總線結構為AXI,則來自顯示控制器的請求將會在組件20內顯示為AXI總線交易(即,作為按照AXI總線協定的內存存取請求)。在組件20內的PIE層L5 (可以是總線控制器22的一部分)會接收此AXI總線請求並轉換為 PIE交易,然後使用層L4-L1通過總線60來傳輸。組件50內相應的PIE層L5會解譯到達的PIE交易,並將其轉換成其自身內部的總線請求(即作為按照其自身的總線協定的內存存取請求)。因此,如果組件50是圍繞著OCP總線結構設計,而不是AXI總線結構,則組件 50內之該PIE層L5將從內存存取請求擷取數值並使用這些數值用以制訂OCP總線請求。 以這種方式,通過在組件20上面執行的應用程式,目標組件50之內存區塊將有效地被視為啟動組件20之內存地址空間的區塊。同樣地,由於組件50作為啟動端,系統內存38中的內存區塊可以被視為組件50內之內存區塊。如熟習本技術領域的技術人員所了解的,每一內存區塊通常是一內存的邏輯區塊,其映射至實體內存位置。熟習本技術領域的技術人員還會進一步了解到的是,內存資源在組件中不必本身為內存,而可以是任何數據存儲設備(例如寄存器)。圖3描述了一例子,說明內存映射使用組件20作為啟動組件。具體來說,內存映射區段(aperture) 58A於組件50的本地地址空間內映射到PIE內存地址空間70內的區段 70A。然後,該區段70A在PIE內存地址空間映射到組件20之系統內存38內的區段38A。 PIE內存地址空間70表示一虛擬地址空間,有利於啟動內存地址空間和目標內存地址空間之間的映像。PIE內存空間70是一抽象概念,用於輔助內存映射,而且不對應任何實體內存位置。啟動組件20和目標組件50兩者與PIE內存空間70交互作用,經由PIE區段70A,以完成從該目標組件之內存區段58A到啟動組件之內存區段38A之映射。因此,在組件50之內存58中,一個指定的地址可能在組件20之內存38中有不同的地址,以及又在PIE內存空間70有一不同的地址。可分別在AP 20和GMIC 50採用配置寄存器90和100,以任何適當方式,達到讓內存能映射至PIE內存空間。因此,很明顯的可以了解,於該啟動組件及目標組件之間的地址轉換(address translation)或內存映射均可通過PIE內存空間70達成,而在該啟動組件的內存38內之本地地址與該目標組件的內存58內的遠端地址之間相互轉換。在啟動(即本地)、目標(即遠程)或PIE地址空間中通過地址或大小所定義的內存區塊可以被考慮作為內存區段。每一區段代表一連續的內存地址區塊,從一組件映射到
另一組件。請參照圖1所示,裝置10運用協定,通過點對點總線60,以建立AP 20與GMIC 50 之間的連接。然後通過該連接,該PIE協定可被用來建立一個或多個通道,而每一通道具有一個或多個區段。更具體地說,通過範例,請參照圖4,可於AP 20與GMIC 50之間經由網絡協定的層Li、L2和L3通過該點對點總線,以建立三個連接80A、80B、80C。層L4可以建立一埠,以終止在各組件的各連接。具體來說,埠 82A、84A可分別終止AP 20與GMIC 50 的連接80A,同時,埠 82B、84B可終止連接80B,埠 82C、84C可終止連接80C。這些網絡連接中的每一連接可支援不同的通訊類別(traffic class)(即每一連接可能有不同的連接參數,例如時延)。然後,AP 20之該PIE協定可將每一節點(86A、86B、86C)分別與每一埠(82A、82B、82C)相關聯。同樣地,GMIC 50的PIE協定GMIC 50可將每一節點(88A、 88B、88C)分別與每一埠(84A、84B、84C)相關聯。為了通過一連結,使本地組件能存取遠程組件之內存資源,本地組件之一節點成為一啟動端節點而遠程組件之一節點成為一目標節點。因此,節點(如節點86A)可為啟動端節點、目標節點(如節點86B)或啟動與目標節點兩者(如節點86C)。啟動端節點可通過連接發送請求到目標節點,以建立一通道,而且可於該通道內視需要地建立一個或多個區段。具體來說,以下將做更充分地說明,該啟動端節點(如節點86C)可以把交易單元(TU)通過連接與配置參數傳送到目標節點(88C),以設立一通道(通道90)和區段。通過TU所接收到的該配置參數存儲在配置寄存器92、94裡。 因此,指定的通道具有與其相關聯的特定啟動端節點(如節點AP 20的86C)和特定目標節點(如GMIC 50的88C)。此外,每一連接最多可支持兩個通道,每一方向具有一通道,使得在單一連接中,一節點(例如,節點86c)在一通道上可以作為啟動端節點而在第二個通道上作為目標節點。如果單一通道上定義有多個區段,則每一區段將共享相同的通道參數。如上文所建議的,組件之間的通訊的達成可通過交易單元(TU)的使用,將該PIE 協定層L5傳遞至傳輸層L4,以達到從啟動組件發送到目標組件。在一般情況下,通過實體層傳送之前,在L5的協定數據單元(PDU)可被稱為信息,它可被分成多個段(即L4 PDU)、 數據包(即L3 PDU)和幀(即L2 PDU)。PIE信息是由交易單元組成。大致描繪合適的交易單元格式,如圖5所示。該交易單元110之第一字節(byte)分為類型112欄位,用於存儲TU,和一標籤114欄位,用於存儲交易代碼。交易單元110的其餘部分是由可能存在的可選信息組成並取決於交易單元110之類型112而變化。例如,如果TU 110為延伸類型 (extended type),則一個可選的交易單元110第二字節可以代表一 Ext_Type欄位116,用於存儲TU。該類型欄位112用於識別交易單元110的目的。支持的交易單元類型可能包括如表ι所示。表 權利要求
1.一種運用需要存取內存映射資源的啟動組件的方法,當裝置具有(i)多個處理組件和(ii)互連該多個組件的總線時,包括通過在該總線上的連接,從需要存取內存映射資源的該啟動組件朝向具有內存映射資源的裝置的目標組件發送多個交易單元(TU),以建立一通道;該多個TU包括一個或多個配置TU,每一配置TU具有用於該通道的配置參數;以及從該啟動組件通過該通道朝該目標組件發送內存存取請求,該內存存取請求TU具有內存存取請求。
2.如權利要求1所述的方法,還包括根據該啟動組件的總線協定從該啟動組件的子組件接收子組件內存存取請求,以及從該子組件內存存取請求制定該內存存取請求TU。
3.如權利要求1所述的方法,還包括在每一TU的類型欄位中指示每一 TU的交易類型。
4.如權利要求3所述的方法,其中,該類型欄位指示為讀取請求。
5.如權利要求4所述的方法,其中,該讀取請求為直接讀取請求和間接讀取請求的其中之一。
6.如權利要求5所述的方法,其中,該讀取請求為內存讀取請求和配置參數讀取請求的其中之一。
7.如權利要求3所述的方法,其中,該類型欄位指示為寫入請求。
8.如權利要求7所述的方法,其中,該寫入請求為直接寫入請求和間接寫入請求的其中之一。
9.如權利要求8所述的方法,其中,該寫入請求為內存寫入請求和配置參數寫入請求的其中之一。
10.如權利要求3所述的方法,還包括在每一該TU的標籤欄位中的標籤。
11.如權利要求10所述的方法,還包括監督該啟動組件,用於具有等效於該標籤的標籤的該通道上的回應TU。
12.如權利要求11所述的方法,其中,該內存請求TU指示為寫入請求,以及該回應TU 的類型欄位指示為認可。
13.如權利要求11所述的方法,其中,該內存請求TU指示為讀取請求,以及該回應TU 的類型欄位指示為讀取回應。
14.如權利要求3所述的方法,還包括每一指定TU為配置TU或內存存取請求,在該指定TU的長度欄位中包含該指定TU的有效負載的長度。
15.如權利要求2所述的方法,其中,從該子組件內存存取請求制定該內存存取請求TU 包括在本地地址空間與介面內存地址空間之間的映像,以及其中發送一個或多個配置TU 包括發送具有配置值的配置TU,以允許在該介面內存地址空間與該目標組件的本地地址空間之間的映像。
16.如權利要求15所述的方法,其中,發送一個或多個配置TU包括發送配置TU,該配置TU具有表示為介面地址空間的啟始地址的配置值以及表示為長度的配置值。
17.如權利要求16所述的方法,其中,該啟始內存地址為間接讀取請求或間接寫入請求的其中之一的啟始內存地址,以及該長度為間接讀取請求或間接寫入請求的該其中之一的內存區段的長度。
18.如權利要求16所述的方法,其中,該啟始內存地址為用於該接口內存地址空間中的內存區段的啟始內存地址,以用於直接寫入和讀取請求,以及該長度為該區段的長度。
19.如權利要求1所述的法,其中,該通道是第一通道而該多個配置TU是第一多個配置TU以建立該第一通道,該第一通道用於從該啟動組件朝該目標組件發送內存存取請求, 以及還包括通過該連接發送多個TU以建立第二通道該第二通道用於從該目標組件朝該啟動組件發送內存存取請求。
20.用於一裝置的第一組件,該裝置具有多個組件和具有實體連接至該多個組件的每一組件的總線,該第一組件包括第一處理器;連接器,連接至該總線,使得該第一組件具有實體連接至該總線;該第一處理器操作為通過該總線上的連接,發送多個交易單元(TU)至具有實體連接到該總線的第二組件, 以建立一通道,一類型的該第二組件具有處理器與內存,該多個TU包括一個或多個配置 TU,,每一配置TU具有用於該通道的配置參數;以及通過該通道,發送內存存取請求TU至該第二組件,該內存存取請求TU具有內存存取請求。
21.如權利要求20所述的第一組件,其中,該第一處理器也可根據該第一組件的內部總線協定將內存存取請求轉換到內存存取請求TU。
22.如權利要求21所述的第一組件,其中,該第一處理器根據該第一組件的內部總線協定將內存存取請求轉換到內存存取請求TU時,在該第一組件的本地地址空間與介面內存地址空間之間映射,以及其中該第一處理器在發送一個或多個配置TU時,也可操作成發送具有配置值的配置TU以允許該介面內存地址空間與在第二組件的本地地址空間之間映射。
23.如權利要求22所述的第一組件,其中,該第一處理器還可操作成建立具有類型欄位的每一該配置TU,該類型欄位指示每一該配置TU為一配置TU ;以及建立具有類型欄位的該內存存取請求TU,該類型欄位指示該內存存取請求TU為一內存存取請求TU。
24.一種用於在具有多個處理組件的裝置中促進內存映射資源共享的方法,包括通過互連該裝置的該多個組件的總線上的連接,從需要存取內存映射資源的該裝置的啟動組件朝向具有內存映射資源的該裝置的目標組件發送多個交易單元(TU),以建立一通道;該多個TU包括一個或多個配置TU,每一配置TU具有該通道的配置參數;通過該通道,從該啟動組件發送內存存取請求至該目標組件,該內存存取請求TU具有內存存取請求。
25.如權利要求M所述的方法,還包括根據該啟動組件的總線協定,從該啟動組件的子組件接收子組件內存存取請求,以及從該子組件內存存取請求制定該內存存取請求TU。
26.如權利要求25所述的方法還包括接收於該目標組件的該內存存取請求,以及從該內存存取請求TU擷取數值,根據該目標組件的總線協定,以制定本地內存存取請求。
27.如權利要求25所述的方法還包括回應於接收該內存存取請求TU,從該目標組件發送回應TU至該啟動組件。
28.一種具有多個組件的裝置,包括第一組件,具有第一處理器; 第二組件,具有第二處理器與內存; 總線;該第一組件與該第二組件,具有實體連接至該總線; 該第一處理器可操作成通過該總線上的連接,發送多個交易單元(TU)至該第二組件,以建立一通道,該多個 TU包括一個或多個配置TU,每一配置TU具有用於該通道的配置參數;通過該通道,發送內存存取請求TU至該第二組件,該內存存取請求TU具有內存存取請求。
全文摘要
在一裝置中(例如行動電話),在例如集成電路的組件之間的內存資源能夠共享,其中每個集成電路具有其內存資源。這可通過在組件之間提供互連以及構建通過該互連發送以開啟內存存取運作的交易單元來實現。該方法也可用來允許用於裝置組件之間一定程度的通訊。
文檔編號G06F12/00GK102292714SQ201080005029
公開日2011年12月21日 申請日期2010年1月20日 優先權日2009年1月21日
發明者F·普爾比加拉齊, M·阿列克西克 申請人:Ati技術無限責任公司