多處理器系統(tǒng)中的處理器間協(xié)議的制作方法
【專利摘要】在多處理器系統(tǒng)中,主處理器可存儲用于二級處理器的可執(zhí)行映像。通信協(xié)議有助于將所述可執(zhí)行映像的映像標頭和數(shù)據(jù)片段從所述主處理器傳送到所述二級處理器。所述主處理器與二級處理器之間的消息指示成功地接收到所傳送的數(shù)據(jù)、終止傳送進程和確認傳送進程。
【專利說明】多處理器系統(tǒng)中的處理器間協(xié)議
[0001]相關(guān)申請案的交叉參考
[0002]本申請案是2011年3月21日提交的古普塔(GUPTA)等人的第13/052,516號美國專利申請案的部分繼續(xù)申請案,所述美國專利申請案主張2010年3月22日提交的馬拉瑪特(MALAMANT)等人的第61/316,369號美國臨時專利申請案、2010年4月14日提交的古普塔等人的第61/324,035號美國臨時專利申請案、2010年4月14日提交的古普塔等人的第61/324,122號美國臨時專利申請案,和2010年4月19日提交的古普塔等人的第61/325,519號美國臨時專利申請案的權(quán)益,這些專利申請案的全部揭示內(nèi)容明確地以引用的方式并入本文中。
【技術(shù)領(lǐng)域】
[0003]以下描述大體上涉及多處理器系統(tǒng),且更具體來說涉及如下多處理器系統(tǒng),其中主處理器耦合到存儲系統(tǒng)中的一或多個其它處理器(在本文中稱為“二級”處理器)的可執(zhí)行軟件映像的非易失性存儲器,所述一或多個其它處理器各自耦合到專用易失性存儲器,其中以分段式格式(例如,使用直接分散加載程序)將可執(zhí)行軟件映像從主處理器有效地傳達到二級處理器。
【背景技術(shù)】
[0004]處理器執(zhí)行軟件代碼以執(zhí)行操作。處理器可使用待執(zhí)行以用于啟動的特定軟件代碼(統(tǒng)稱為啟動代碼)。在多處理器系統(tǒng)中,每一處理器可使用相應啟動代碼以用于啟動。作為一實例,在包含應用處理器和調(diào)制解調(diào)器處理器的智能電話裝置中,處理器中的每一者可使用相應啟動代碼以用于啟動。
[0005]并入有多個處理器(例如,集成有單獨的調(diào)制解調(diào)器處理器芯片的獨立應用處理器芯片)的大量裝置(例如,智能電話)中存在問題。快閃/非易失性存儲器組件可用于處理器中的每一者,這是因為每一處理器均具有可執(zhí)行映像和文件系統(tǒng)的非易失性存儲器(例如,永久性存儲裝置)。舉例來說,可將處理器的啟動代碼存儲到處理器的相應非易失性存儲器(例如,快閃存儲器、只讀存儲器(ROM)等),且在加電之后,從其相應非易失性存儲器加載啟動代碼軟件以供處理器執(zhí)行。因此,在這種類型的架構(gòu)中,并不要求將可執(zhí)行軟件(例如,處理器的啟動代碼)從系統(tǒng)中的另一處理器加載到所述處理器。
[0006]然而,將專用非易失性存儲器添加到每一處理器占據(jù)較多電路板空間,從而增加了電路板大小。一些設(shè)計可使用隨機存取存儲器(RAM)與快閃存儲器的組合式芯片(其中RAM和快閃裝置堆疊為一個封裝以減少大小)來減少板大小。雖然多芯片封裝解決方案確實在一定程度上減少了所需要的電路板覆蓋面積,但這可能增加成本。
[0007]在一些多處理器系統(tǒng)中,可將軟件從另一處理器加載到一個處理器。舉例來說,假設(shè)多處理器系統(tǒng)中的第一處理器負責將用于系統(tǒng)中的一或多個其它處理器的啟動代碼存儲到其非易失性存儲器;其中在加電之后,不同于此類啟動代碼駐留于其它處理器的非易失性存儲器中,第一處理器的任務為將相應啟動代碼加載到其它處理器。在這種類型的系統(tǒng)中,將軟件(例如,啟動映像)從第一處理器下載到其它處理器(例如,其它處理器的易失性存儲器),且之后,接收處理器使用所下載映像進行啟動。
[0008]常常,待加載的軟件映像為二進制多段式映像。舉例來說,軟件映像可包含一標頭后面跟著多個代碼片段。當將軟件映像從外部裝置(例如,從另一處理器)加載到目標裝置(例如,目標處理器)上時,可存在通過啟動加載程序?qū)⒍M制多段式映像傳送到系統(tǒng)存儲器中,且接著稍后傳送到目標位置的中間步驟。
[0009]在將軟件映像從第一 “主”處理器加載到目標“二級”處理器上的系統(tǒng)中,執(zhí)行此加載的一種方式為分配接收每一包的臨時緩沖區(qū),且每一包將具有相關(guān)聯(lián)的包標頭信息以及有效負載。在此狀況下,有效負載將是實際映像數(shù)據(jù)。從臨時緩沖區(qū)可對有效負載進行一些處理,且接著可將有效負載復制到最后目的地。臨時緩沖區(qū)可位于系統(tǒng)存儲器中,例如內(nèi)部隨機存取存儲器(RAM)或雙數(shù)據(jù)速率(DDR)存儲器中。
[0010]因此,在使用中間緩沖區(qū)的情況下,將從主處理器下載到二級處理器的數(shù)據(jù)復制到中間緩沖區(qū)中。以此方式,緩沖區(qū)用于從主處理器接收映像數(shù)據(jù)的部分,且可將映像數(shù)據(jù)從緩沖區(qū)分散到二級處理器的存儲器(例如,易失性存儲器)中。
[0011]可在不同于實施二級處理器的芯片的芯片上實施主處理器和存儲用于二級處理器的啟動映像的其非易失性存儲器。因此,為了將數(shù)據(jù)從主處理器的非易失性存儲器傳送到二級處理器(例如,二級處理器的易失性存儲器),可利用基于包的通信,其中包標頭包含于傳達到二級處理器的每一包中。將包存儲于中間緩沖區(qū)中,并對所接收的包執(zhí)行一些處理,使得可將數(shù)據(jù)存儲于其最后目的地中(例如,二級處理器的易失性存儲器內(nèi))。
【發(fā)明內(nèi)容】
[0012]提供一種多處理器系統(tǒng)中的兩個處理器之間的通信方法。所述方法包含由二級處理器起始與主處理器的通信。所述方法還包含由所述二級處理器指令所述主處理器,以傳送用于可執(zhí)行軟件映像的映像標頭。所述可執(zhí)行軟件映像包含所述映像標頭和數(shù)據(jù)片段。所述方法進一步包含由所述二級處理器接收所述映像標頭和數(shù)據(jù)片段。所述方法又包含由所述二級處理器向所述主處理器指示成功地接收到所述映像標頭和數(shù)據(jù)片段。所述方法進一步包含由所述二級處理器從所述主處理器接收終止所述可執(zhí)行軟件映像傳送的指示。所述方法還包含由所述二級處理器向所述主處理器確認接收到終止傳送的所述指示。
[0013]提供一種多處理器裝置。所述裝置包含用于由二級處理器起始與主處理器的通信的裝置。所述裝置還包含用于由所述二級處理器指令所述主處理器傳送用于可執(zhí)行軟件映像的映像標頭的裝置。所述可執(zhí)行軟件映像包含所述映像標頭和數(shù)據(jù)片段。所述裝置進一步包含用于由所述二級處理器接收所述映像標頭和數(shù)據(jù)片段的裝置。所述裝置又包含用于由所述二級處理器向所述主處理器指示成功地接收到所述映像標頭和數(shù)據(jù)片段的裝置。所述裝置進一步包含用于由所述二級處理器從所述主處理器接收終止所述可執(zhí)行軟件映像傳送的指示的裝置。所述裝置還包含用于由所述二級處理器向所述主處理器確認接收到終止傳送的所述指示的裝置。
[0014]提供一種計算機程序產(chǎn)品。所述計算機程序產(chǎn)品包含其上記錄有非暫時性程序代碼的非暫時性計算機可讀媒體。所述非暫時性程序代碼包含用以由二級處理器起始與主處理器的通信的程序代碼。所述非暫時性程序代碼進一步包含用以由所述二級處理器指令所述主處理器傳送用于可執(zhí)行軟件映像的映像標頭的程序代碼。所述可執(zhí)行軟件映像包含映像標頭和數(shù)據(jù)片段。所述非暫時性程序代碼進一步包含用以由所述二級處理器接收所述映像標頭和數(shù)據(jù)片段的程序代碼。所述非暫時性程序代碼又包含用以由所述二級處理器向所述主處理器指示成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的程序代碼。所述非暫時性程序代碼進一步包含用以由所述二級處理器從所述主處理器接收終止所述可執(zhí)行軟件映像傳送的指示的程序代碼。所述非暫時性程序代碼還包含用以由所述二級處理器向所述主處理器確認接收到終止傳送的所述指示的程序代碼。
[0015]提供一種多處理器系統(tǒng)中的兩個處理器之間的通信方法。所述方法包含由主處理器接收傳送用于可執(zhí)行軟件映像的映像標頭的指令。所述可執(zhí)行軟件映像包含所述映像標頭和數(shù)據(jù)片段。所述方法還包含由所述主處理器將所述映像標頭和數(shù)據(jù)片段發(fā)送到二級處理器。所述方法進一步包含由所述主處理器從所述二級處理器接收成功地接收到所述映像標頭和數(shù)據(jù)片段的指示。所述方法又進一步包含由所述主處理器發(fā)送終止所述可執(zhí)行映像傳送的指示。所述方法還包含由所述主處理器從所述二級處理器接收對接收到所述終止傳送指示的確認。
[0016]提供一種多處理器裝置。所述裝置包含用于由主處理器接收傳送用于可執(zhí)行軟件映像的映像標頭的指令的裝置。所述可執(zhí)行軟件映像包含所述映像標頭和數(shù)據(jù)片段。所述裝置還包含用于由所述主處理器將所述映像標頭和數(shù)據(jù)片段發(fā)送到二級處理器的裝置。所述方法進一步包含用于由所述主處理器從所述二級處理器接收成功地接收到所述映像標頭和數(shù)據(jù)片段的指示的裝置。所述裝置又進一步包含用于由所述主處理器發(fā)送終止所述可執(zhí)行映像傳送的指示的裝置。所述裝置還包含用于由所述主處理器從所述二級處理器接收對接收到所述終止傳送指示的確認的裝置。
[0017]提供一種計算機程序產(chǎn)品。所述計算機程序產(chǎn)品包含其上記錄有非暫時性程序代碼的非暫時性計算機可讀媒體。所述非暫時性程序代碼包含用以由主處理器接收傳送用于可執(zhí)行軟件映像的映像標頭的指令的程序代碼,所述可執(zhí)行軟件映像包括所述映像標頭和數(shù)據(jù)片段。所述非暫時性程序代碼還包含用以由所述主處理器將所述映像標頭和數(shù)據(jù)片段發(fā)送到二級處理器的程序代碼。所述非暫時性程序代碼進一步包含用以由所述主處理器從所述二級處理器接收成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的指示的程序代碼。所述非暫時性程序代碼又進一步包含用以由所述主處理器發(fā)送終止所述可執(zhí)行映像傳送的指示的程序代碼。所述非暫時性程序代碼又進一步包含用以由所述主處理器從所述二級處理器接收對接收到所述終止傳送指示的確認的程序代碼。
【專利附圖】
【附圖說明】
[0018]為了更完整地理解本發(fā)明教示,現(xiàn)結(jié)合隨附圖式參考以下描述。
[0019]圖1為其內(nèi)可實施本發(fā)明的方面的示范性裝置的說明。
[0020]圖2為其內(nèi)可實施本發(fā)明的方面的示范性裝置的說明。
[0021]圖3為根據(jù)本發(fā)明的一個方面的用于將可執(zhí)行映像從主處理器加載到二級處理器的示范性加載程序的操作流程的說明。
[0022]圖4為根據(jù)本發(fā)明的一個方面的兩個處理器之間的包流的說明。
[0023]圖5為展示可有利地利用本發(fā)明的方面的示范性無線通信系統(tǒng)的框圖。[0024]圖6為說明根據(jù)本發(fā)明的一個方面的關(guān)于可執(zhí)行軟件映像傳送的通信的框圖。
[0025]圖7為說明根據(jù)本發(fā)明的一個方面的關(guān)于可執(zhí)行軟件映像傳送的通信的框圖。
【具體實施方式】
[0026]詞語“示范性”在本文中用于意味“充當實例、個例或說明”。不必將本文中描述為“示范性”的任何方面解釋為與其它方面相比為優(yōu)選或有利的。
[0027]本文中所揭示的某些方面涉及多處理器系統(tǒng),其中一個主處理器連接到存儲系統(tǒng)中的一或多個其它處理器(在本文中稱為“二級”處理器)的可執(zhí)行映像的非易失性存儲器。在此多處理器系統(tǒng)中,二級處理器中的每一者可連接到用于存儲可執(zhí)行映像、運行時間數(shù)據(jù)和(任選地)文件系統(tǒng)鏡像的專用易失性存儲器。
[0028]常常以分段式格式存儲可執(zhí)行映像,其中可將每一片段加載到不同存儲器區(qū)域中??蓤?zhí)行片段的目標存儲器位置可相對于彼此鄰接或可并不鄰接。多段式映像格式的一個實例為可執(zhí)行和鏈接格式(ELF),所述格式允許可執(zhí)行映像分裂成多個片段,且可將這些片段中的每一者加載到不同系統(tǒng)存儲器位置。
[0029]在一個示范性方面中,揭示用于將分段式映像從主處理器的非易失性存儲器加載到二級處理器的易失性存儲器的直接分散加載技術(shù)。如下文進一步所論述,直接分散加載技術(shù)避免使用臨時緩沖區(qū)。舉例來說,在一個方面中,將原始映像數(shù)據(jù)從主處理器加載到二級處理器,而非利用經(jīng)由各自包含相應標頭的包傳達映像的基于包的通信。在另一方面中,使用包含用于確定數(shù)據(jù)的目標位置信息的信息的標頭。
[0030]具有集中式非易失性存儲器的示范性多處理器架構(gòu)——具有用于文件系統(tǒng)的減少的局部非易失性存儲器
[0031]圖1說明第一多處理器架構(gòu)102的框圖,其中主處理器(應用處理器104)代管主(較大)非易失性存儲器106(例如,NAND快閃存儲器),同時第二處理器(例如,調(diào)制解調(diào)器處理器110)具有二級(減小或最小的)非易失性存儲器114(例如,NOR快閃存儲器)。
[0032]在通信裝置架構(gòu)102中,應用處理器104耦合到主非易失性存儲器106和應用處理器易失性存儲器108 (例如,隨機存取存儲器)。調(diào)制解調(diào)器處理器110耦合到二級非易失性存儲器114和調(diào)制解調(diào)器處理器易失性存儲器112。處理器間通信總線134允許應用處理器104與調(diào)制解調(diào)器處理器110之間的通信。
[0033]用于調(diào)制解調(diào)器處理器110的調(diào)制解調(diào)器可執(zhí)行映像120可與AP可執(zhí)行映像118和AP文件系統(tǒng)116 —起存儲于應用處理器(AP)非易失性存儲器106中。應用處理器104可將其AP可執(zhí)行映像118加載到應用處理器易失性存儲器108中,并將其存儲為AP可執(zhí)行映像122。應用處理器易失性存儲器108還可用于存儲AP運行時間數(shù)據(jù)124。
[0034]調(diào)制解調(diào)器處理器110具有用于其文件系統(tǒng)128存儲的專用二級(減小或最小的)非易失性存儲器114(例如,NOR快閃)。相比于能夠存儲運行時間調(diào)制解調(diào)器可執(zhí)行映像120和文件系統(tǒng)128兩者的快閃裝置,此二級(減小或最小的)非易失性存儲器114較小且成本較低。
[0035]在系統(tǒng)加電之后,調(diào)制解調(diào)器處理器110從硬件啟動R0M126(小型只讀芯片上存儲器)執(zhí)行其主啟動加載程序(PBL)。調(diào)制解調(diào)器PBL可適于從應用處理器104下載調(diào)制解調(diào)器可執(zhí)行文件120。也就是說,由調(diào)制解調(diào)器處理器110向應用處理器104請求調(diào)制解調(diào)器可執(zhí)行映像120 (最初存儲于主非易失性存儲器106中)。應用處理器104檢索調(diào)制解調(diào)器可執(zhí)行映像120,并經(jīng)由處理器間通信總線134(例如,處理器間通信總線)將其提供到調(diào)制解調(diào)器處理器110。調(diào)制解調(diào)器處理器110直接將調(diào)制解調(diào)器可執(zhí)行映像132存儲到調(diào)制解調(diào)器處理器RAM (隨機存取存儲器)112中的最后目的地,而無需將數(shù)據(jù)復制到調(diào)制解調(diào)器處理器RAM112中的臨時緩沖區(qū)。處理器間通信總線134可為(例如)HSIC總線(基于USB的高速芯片間)、HSI總線(MIPI高速同步接口 )、SDIO總線(安全數(shù)字I/O接口)、UART總線(通用異步接收器/發(fā)射器)、SPI總線(串行外圍接口)、12C總線(集成電路間),或適于調(diào)制解調(diào)器處理器110和應用處理器104兩者上可用的芯片間通信的任何其它硬件接口。
[0036]一旦將調(diào)制解調(diào)器可執(zhí)行映像120下載到調(diào)制解調(diào)器處理器RAM112中并對其進行認證,就將所述調(diào)制解調(diào)器可執(zhí)行映像維持為調(diào)制解調(diào)器可執(zhí)行映像132。另外,調(diào)制解調(diào)器處理器易失性存儲器112還可存儲調(diào)制解調(diào)器運行時間數(shù)據(jù)130。接著,調(diào)制解調(diào)器啟動ROM代碼126可跳轉(zhuǎn)到所述調(diào)制解調(diào)器可執(zhí)行映像132中,并開始執(zhí)行來自調(diào)制解調(diào)器處理器RAM112的主要調(diào)制解調(diào)器程序??墒褂酶浇拥秸{(diào)制解調(diào)器處理器110的二級(減小或最小的)非易失性存儲器114將任何持久性(非易失性)數(shù)據(jù)(例如,射頻(RF)校準和系統(tǒng)參數(shù))存儲于調(diào)制解調(diào)器文件系統(tǒng)128上。
[0037]具有集中式非易失性存儲器的示范性多處理器架構(gòu)——沒有用于文件系統(tǒng)的局部非易失性存儲器
[0038]圖2說明第二多處理器架構(gòu)202的框圖,其中主處理器(應用處理器204)代管主(較大)非易失性存儲器206 (例如,NAND快閃存儲器)。主非易失性存儲器206可存儲用于二級處理器(調(diào)制解調(diào)器處理器210)的調(diào)制解調(diào)器可執(zhí)行映像214和/或調(diào)制解調(diào)器文件系統(tǒng)220。二級處理器(調(diào)制解調(diào)器處理器210)可經(jīng)配置以向主處理器204請求調(diào)制解調(diào)器可執(zhí)行映像214和/或調(diào)制解調(diào)器文件系統(tǒng)220。接著,主處理器204從非易失性存儲器206檢索所請求的調(diào)制解調(diào)器可執(zhí)行映像214和/或調(diào)制解調(diào)器文件系統(tǒng)220,并經(jīng)由處理器間通信總線234將其提供到二級處理器210。
[0039]在此架構(gòu)202中,應用處理器204耦合到非易失性存儲器206和應用處理器易失性存儲器208 (例如,隨機存取存儲器)。調(diào)制解調(diào)器處理器210耦合到調(diào)制解調(diào)器處理器易失性存儲器212,但并不具有其自身的非易失性存儲器。調(diào)制解調(diào)器處理器易失性存儲器212存儲文件系統(tǒng)鏡像228、調(diào)制解調(diào)器可執(zhí)行映像236和調(diào)制解調(diào)器運行時間數(shù)據(jù)230。處理器間通信總線234允許應用處理器204與調(diào)制解調(diào)器處理器210之間的通信。
[0040]用于調(diào)制解調(diào)器處理器210的所有可執(zhí)行映像214和文件系統(tǒng)220可與AP可執(zhí)行映像218和AP文件系統(tǒng)216 —起存儲于非易失性存儲器206中。應用處理器204可將其AP可執(zhí)行映像218加載到應用處理器易失性存儲器208中,并將其存儲為AP可執(zhí)行映像222。應用處理器易失性存儲器208還可用于存儲AP運行時間數(shù)據(jù)224??墒褂谜{(diào)制解調(diào)器處理器的私用密鑰將調(diào)制解調(diào)器文件系統(tǒng)加密,以用于隱私保護并防止用戶身份仿冒。
[0041]在系統(tǒng)加電之后,調(diào)制解調(diào)器啟動ROM代碼226將調(diào)制解調(diào)器可執(zhí)彳丁映像214和調(diào)制解調(diào)器文件系統(tǒng)220兩者從應用處理器204下載到調(diào)制解調(diào)器處理器易失性存儲器212中。在正常操作期間,從調(diào)制解調(diào)器處理器易失性存儲器212提供對調(diào)制解調(diào)器文件系統(tǒng)228的任何讀取存取的服務。任何寫入存取也在調(diào)制解調(diào)器處理器易失性存儲器212中執(zhí)行。另外,調(diào)制解調(diào)器處理器210和應用處理器204上可能有后臺進程在運行,以同步調(diào)制解調(diào)器處理器易失性存儲器212中的文件系統(tǒng)228與非易失性存儲器206上所存儲的調(diào)制解調(diào)器文件系統(tǒng)220的內(nèi)容。
[0042]主處理器和二級處理器可周期性地同步用于二級處理器的易失性存儲器中的文件系統(tǒng)與主非易失性存儲器中的對應文件系統(tǒng)。到調(diào)制解調(diào)器文件系統(tǒng)228的第一寫入可開始調(diào)制解調(diào)器處理器210中的計時器(例如,十分鐘計時器)。當此計時器在運行時,到文件系統(tǒng)228的所有寫入合并到調(diào)制解調(diào)器處理器易失性存儲器212中。在計時器到期之后,調(diào)制解調(diào)器處理器210從易失性存儲器212復制文件系統(tǒng)映像228,對其進行加密,并警告應用處理器204新數(shù)據(jù)可用。應用處理器204讀取經(jīng)加密復本,并將其寫入到非易失性存儲器206的調(diào)制解調(diào)器文件系統(tǒng)220中。接著,應用處理器204用信號向調(diào)制解調(diào)器處理器210表示寫入操作已完成。如果同步操作失敗,那么可使用調(diào)制解調(diào)器文件系統(tǒng)的目前版本,這意味著調(diào)制解調(diào)器處理器210可繼續(xù)使用當前駐留于其自身易失性存儲器中的映像進行執(zhí)行,而非從應用處理器204重新加載映像。同步可周期性地發(fā)生(例如,每90秒),或在調(diào)制解調(diào)器進行到其文件系統(tǒng)的寫入操作之后的一定時間之后發(fā)生。為防止因為例如突然性移除電力等情況造成破壞,可存儲調(diào)制解調(diào)器文件系統(tǒng)220的兩個復本。
[0043]調(diào)制解調(diào)器處理器210還可向應用處理器的非易失性存儲器206起始文件系統(tǒng)鏡像228的“清空”操作。出于若干原因可發(fā)生此情況,包含電話關(guān)機以及將確認消息發(fā)送到網(wǎng)絡以指示接受并存儲傳入的SMS消息。
[0044]反映調(diào)制解調(diào)器文件系統(tǒng)的當前狀態(tài)的調(diào)制解調(diào)器處理器易失性存儲器212服務于對調(diào)制解調(diào)器處理器210的文件系統(tǒng)讀取操作。因為讀取操作比寫入操作頻繁,且寫入操作傾向于在活動“突發(fā)”時發(fā)生,所以可減少總系統(tǒng)負載和功率消耗。
[0045]應用處理器204、調(diào)制解調(diào)器處理器210和啟動加載程序采取特定措施,以確保在所有時間非易失性存儲器206中都有至少一個完整文件系統(tǒng)映像可供使用。此情況提供對電力丟失或突然性復位情境的抗擾性。
[0046]本文中所揭示的概念的應用并不限于上文所展示的示范性系統(tǒng),而同樣可結(jié)合各種其它多處理器系統(tǒng)進行利用。
[0047]零復本輸送流
[0048]本發(fā)明的方面提供用于將可執(zhí)行軟件映像從主處理器的非易失性存儲器有效地加載到二級處理器的易失性存儲器的技術(shù)。如上文所提及,常規(guī)加載進程要求緩沖二進制多段式映像(例如,傳送到系統(tǒng)存儲器中)且接著稍后將其分散到目標位置中(例如,通過啟動加載程序)的中間步驟。本發(fā)明的方面提供取消常規(guī)加載進程中所要求的緩沖中間步驟的技術(shù)。因此,本發(fā)明的方面避免了額外的存儲器復制操作,從而改善了性能(例如,減少了啟動多處理器系統(tǒng)中的二級處理器所要求的時間)。
[0049]如下文進一步所論述,本發(fā)明的一個示范性方面利用用于將可執(zhí)行軟件映像從主處理器的非易失性存儲器加載到二級處理器的易失性存儲器的直接分散加載技術(shù)。本發(fā)明的某些方面還能實現(xiàn)同時進行映像傳送與傳送后數(shù)據(jù)處理(例如,認證),此情況可進一步改善效率,如下文進一步所論述。
[0050]在一個方面中,主機主處理器并不處理或提取來自實際映像數(shù)據(jù)的任何信息一其僅將映像數(shù)據(jù)作為“原始”數(shù)據(jù)發(fā)送到目標,而不將任何包標頭附接到包。因為目標二級處理器起始數(shù)據(jù)傳送請求,所以其準確地知道要接收多少數(shù)據(jù)。此情況使得主機能夠發(fā)送沒有包標頭的數(shù)據(jù),且目標能夠直接接收并存儲數(shù)據(jù)。在所述方面中,目標視需要向主機請求數(shù)據(jù)。其請求的第一數(shù)據(jù)項為用于給定映像傳送的映像標頭。一旦目標已處理映像標頭,其就知道映像中的每一數(shù)據(jù)片段的位置和大小。映像標頭還指定映像在目標存儲器中的目的地地址。在具有此信息的情況下,目標可針對每一片段向主機請求數(shù)據(jù),并將數(shù)據(jù)直接傳送到目標存儲器中的適當位置。用于應用處理器上的處理器間通信總線的硬件控制器可添加其自身的低級協(xié)議標頭,將由調(diào)制解調(diào)器處理器處理并剝除所述標頭。這些低級標頭對于運行于這兩個處理器上的軟件來說可以是透明的。
[0051]在本發(fā)明的一個方面中,將加載進程劃分成兩個階段,如圖3中所展示的示范性流程中所說明。圖3展示主處理器301 (其可為具有其非易失性存儲器106或206的圖1或圖2的應用處理器104或204)和二級處理器302 (其可為具有其易失性存儲器112或212的圖1或圖2的調(diào)制解調(diào)器處理器110或210)的框圖。在圖3中,將用于二級處理器302的示范性軟件映像存儲到主處理器301的非易失性存儲器。如此實例中所展示,示范性軟件映像303為包含映像標頭部分和多個數(shù)據(jù)片段(在此實例中展示為數(shù)據(jù)片段I到5)的多片段映像。主處理器301和二級處理器302可位于不同物理硅芯片上(即,不同芯片封裝上),或可位于相同封裝上。
[0052]在圖3的示范性加載進程的第一階段中,將映像標頭信息傳送到二級處理器302。主處理器301從映像標頭開始從主處理器的非易失性存儲器306檢索數(shù)據(jù)映像片段。主處理器301解析映像標頭,以將個別映像片段從主處理器的非易失性存儲器306加載到主處理器的系統(tǒng)存儲器307。映像標頭包含用于識別最終將調(diào)制解調(diào)器映像可執(zhí)行數(shù)據(jù)放置于二級處理器的系統(tǒng)存儲器305中的哪個位置的信息。由二級處理器302使用標頭信息對分散加載程序/直接存儲器存取控制器304進行編程以在接收實際可執(zhí)行數(shù)據(jù)時接收地址。接著,將數(shù)據(jù)片段從系統(tǒng)存儲器307發(fā)送到主硬件輸送機構(gòu)308。接著,將片段從主處理器301的硬件輸送機構(gòu)308經(jīng)由處理器間通信總線310(例如,HS-USB纜線)發(fā)送到二級處理器302的硬件輸送機構(gòu)309。所傳送的第一片段可為映像標頭,其含有由二級處理器所使用以將數(shù)據(jù)片段定位于二級處理器的系統(tǒng)存儲器305中的目標位置中的信息。映像標頭可包含用于確定數(shù)據(jù)的目標位置信息的信息。
[0053]在一個方面中,目標位置并非預定的,而是作為分散加載進程的部分由在二級處理器中執(zhí)行的軟件所確定。來自映像標頭的信息可用于確定目標位置。在此方面中,二級處理器的啟動加載程序首先向主處理器請求映像標頭(主處理器CPU根本不處理映像標頭)。二級處理器通過查看映像標頭(除RAM地址/大小之外,標頭還包含每一片段相對于映像文件的開始在非易失性存儲器中的相對位置)知道數(shù)據(jù)片段如何布置于非易失性存儲器中。由二級處理器驅(qū)動對數(shù)據(jù)片段的后續(xù)請求。
[0054]在另一方面中,主處理器可通過如下方式指示將片段放置于二級處理器的易失性存儲器中的哪個位置:解析映像標頭,且接著對二級處理器的控制器進行編程,以將接下來的數(shù)據(jù)片段放置于映像標頭中所規(guī)定的指定地址中。此情況可涉及額外硬件,以允許二級處理器的控制器的此外部控制。
[0055]映像標頭大體上包含定義片段中的每一者應加載于二級處理器的系統(tǒng)存儲器305中的哪個位置的片段開始地址和大小列表。二級處理器302包含一個包含分散加載程序控制器304的硬件輸送機構(gòu)309 (例如,USB控制器)。在加載進程的第二階段中,啟動加載程序?qū)μ幚砥鏖g連接控制器的引擎進行設(shè)計,以接收傳入的數(shù)據(jù)并根據(jù)第一階段中所接收的標頭信息將傳入的數(shù)據(jù)分散加載到二級處理器的對應目標存儲器區(qū)域305中。
[0056]在USB或HSIC總線的情況下,可將映像的每一片段作為處理器間通信總線310上的單一 USB傳送予以傳送。知道片段大小和目的地地址允許軟件對二級處理器302的分散加載程序控制器304進行編程,以用于在二級處理器302的最少的軟件干預的情況下,將整個片段直接傳送到目標存儲器位置(系統(tǒng)存儲器305內(nèi))中。當片段顯著較大(例如,超過I兆字節(jié)(MB))時,此情況可使得USB/HSIC總線上的性能增加。
[0057]如圖3中所展示,數(shù)據(jù)片段未必放置于二級處理器的系統(tǒng)存儲器305內(nèi)的連續(xù)位置中。實際上,片段可散布于存儲器的不同位置中。圖3的示范性加載進程使得能夠?qū)⒍壧幚砥鞯能浖捅?即,映像303)從主處理器301直接發(fā)送到二級處理器的系統(tǒng)存儲器305上的最后片段目的地。另外,可僅存在所傳送的單一數(shù)據(jù)片段。
[0058]將映像標頭從主處理器301加載到二級處理器302的分散加載程序控制器304。所述映像標頭提供關(guān)于數(shù)據(jù)片段位于系統(tǒng)存儲器305中的哪個位置的信息。因此,分散加載程序控制器304直接將映像片段傳送到二級處理器的系統(tǒng)存儲器305中的其相應目標位置。也就是說,一旦二級處理器的CPU處理其存儲器305中的映像標頭,并對分散加載程序控制器304進行編程,分散加載程序控制器304就準確地知道映像數(shù)據(jù)片段去往二級處理器的系統(tǒng)存儲器305內(nèi)的哪個位置,且因此,接著相應地對硬件分散加載程序控制器304進行編程,以將數(shù)據(jù)片段直接傳送到其目標目的地中。在圖3的實例中,分散加載程序控制器304接收數(shù)據(jù)片段,并將其分散到系統(tǒng)存儲器305中的不同位置。在一個方面中,在無需將整個可執(zhí)行軟件映像存儲于二級處理器的硬件緩沖區(qū)中的情況下,將可執(zhí)行軟件映像加載到二級處理器的系統(tǒng)存儲器中。在一個方面中,待傳送的映像數(shù)據(jù)片段位于存儲器306中的非鄰接位置中。在另一方面中,僅傳送單一映像數(shù)據(jù)片段。在另一方面中,傳送多個映像數(shù)據(jù)片段。
[0059]因此,在上文的方面中,二級處理器中并未發(fā)生額外的存儲器復制操作。因此,為支持更有效的直接加載進程,避免利用用于整個映像的臨時緩沖區(qū)和包標頭處理等的常規(guī)技術(shù)。因此,圖3的示范性加載進程并不要求將軟件映像從主處理器加載到二級處理器所傳統(tǒng)地要求的中間緩沖區(qū)操作。圖3的示范性加載進程允許將映像片段從硬件直接分散加載到系統(tǒng)存儲器的其相應目標目的地,而非從保存整個映像的臨時緩沖區(qū)進行分散加載。一旦處理映像標頭,直接將可執(zhí)行映像分散加載到目標存儲器,從而避免進一步的CPU參與。
[0060]常規(guī)地,當涉及外部接口(例如,如在將映像數(shù)據(jù)從主處理器傳達到二級處理器時所使用)時,要求某一機構(gòu)以輸送數(shù)據(jù),使得兩個處理器都知道實際數(shù)據(jù)的內(nèi)容和讀取數(shù)據(jù)的方式。常常地,將待經(jīng)由外部接口傳送的數(shù)據(jù)包化,其中每一包包含描述包內(nèi)含有的數(shù)據(jù)的標頭。舉例來說,在經(jīng)由網(wǎng)絡傳送數(shù)據(jù)的傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)系統(tǒng)中,出現(xiàn)與處理包標頭相關(guān)聯(lián)的開銷。
[0061]根據(jù)本發(fā)明的某些方面(例如,如圖3的實例中),輸送原始映像數(shù)據(jù)。舉例來說,圖3的示范性加載進程根據(jù)與整個映像相關(guān)聯(lián)的標頭來確定關(guān)于數(shù)據(jù)的所要信息,而非輸送具有包標頭的映像數(shù)據(jù)的每一片段。因此,可初始地傳送映像標頭,且用于確定將數(shù)據(jù)存儲于系統(tǒng)存儲器305的方式的所有處理可在(基于映像標頭)傳送片段之前發(fā)生,且接著將片段作為原始數(shù)據(jù)傳送,而非在傳送片段時,要求處理用于每一片段的包標頭。因此,在圖3的實例中,將原始映像數(shù)據(jù)從主處理器傳達到二級處理器,且接著由可剝離任何USB包標頭等的硬件對其進行處理。在此示范性方面中,未對實際數(shù)據(jù)片段進行CPU處理,從而改善加載進程的效率。
[0062]當必須將多個映像加載到同一二級處理器的易失性存儲器中時,根據(jù)本發(fā)明的一個方面,可將圖3的上文序列重復與所傳送的映像數(shù)目一樣多的次數(shù)。在某些方面中,在主處理器301內(nèi),從非易失性存儲器到系統(tǒng)存儲器的傳送可與將數(shù)據(jù)從主處理器發(fā)送到二級處理器并行地發(fā)生。
[0063]在一個方面中,在完成每一片段傳送之后,二級處理器302對分散加載程序控制器304進行編程以傳送下一片段,并開始認證剛傳送的片段。此情況使得分散加載程序控制器304能夠在二級處理器302執(zhí)行認證時傳送數(shù)據(jù)。此處的認證大體上指代檢查所接收數(shù)據(jù)的完整性和真實性。認證機制的細節(jié)不在本發(fā)明的范圍內(nèi),且如給定實施方案中可能需要的,可利用任何合適的認證機制(包含所屬領(lǐng)域中眾所周知的那些機制)。上文所提及的并行性也可適用于在給定實施方案中可能需要由二級處理器302執(zhí)行的其它傳送后處理。
[0064]一傳送和認證最后映像的最后片段,二級處理器302就可繼續(xù)啟動進程并執(zhí)行所傳送的映像。
[0065]處理器間通信協(xié)議
[0066]還揭示處理器間通信協(xié)議。在本發(fā)明的一個方面中,提供從二級處理器所驅(qū)動的示范性協(xié)議。舉例來說,二級處理器可從主處理器起始其需要的任何數(shù)據(jù)傳送。換句話說,二級處理器向主處理器指令二級處理器想要接收的數(shù)據(jù)內(nèi)容。因此,在某些方面中,主處理器可具有駐留于某處(例如,主處理器所耦合的非易失性存儲器上)的可執(zhí)行軟件映像(文件),且一識別符可與所述文件相關(guān)聯(lián)。二級處理器(或“目標”)可將所述識別符發(fā)送到主處理器,并指令主處理器發(fā)送駐留于文件內(nèi)的指定偏移處的對應數(shù)據(jù)。作為響應,主處理器可將所述原始數(shù)據(jù)發(fā)送到二級處理器。因此,并不要求傳回數(shù)據(jù)中存在包標頭,而實際上直接將傳回數(shù)據(jù)從主處理器發(fā)送到二級處理器,二級處理器將在接收到數(shù)據(jù)之后即刻將其推送到二級處理器的系統(tǒng)存儲器中的適當位置。
[0067]以下內(nèi)容描述處理器間通信協(xié)議的示范性實施例的進一步細節(jié)。雖然描述下文示范性實施例的特定細節(jié),但應理解本文中針對處理器間通信協(xié)議所描述的概念并不限于下文所描述的特定細節(jié)。
[0068]企塑
[0069]此以下描述提供關(guān)于可用于從存儲器傳送數(shù)據(jù)/將數(shù)據(jù)傳送到存儲器的示范性處理器間通信協(xié)議的信息。所述描述包含關(guān)于協(xié)議的包結(jié)構(gòu)、包流和示范性使用的信息。下文所描述的示范性協(xié)議的特定實施方案并不提供用于認證/驗證使用協(xié)議所發(fā)送的數(shù)據(jù)的機制。此類機制超出本文中所提供的示范性協(xié)議描述的范圍,但如給定應用可能需要的,可在傳送數(shù)據(jù)時,結(jié)合此協(xié)議實施任何合適的認證和/或驗證機構(gòu)。
[0070]示范件協(xié)議的概沭
[0071]下文所描述的處理器間通信協(xié)議的示范性方面主要經(jīng)設(shè)計以用于將軟件映像從主機(例如,“主處理器”)傳送到目標(例如,“二級處理器”)。協(xié)議提供用于請求經(jīng)由任何物理鏈路傳送數(shù)據(jù)的簡單機制。
[0072]所述協(xié)議的此示范性方面支持兩種基本包類型:命令包和數(shù)據(jù)包。在主機與目標之間發(fā)送命令包以設(shè)置數(shù)據(jù)包的傳送。
[0073]目標驅(qū)動的協(xié)議。所述協(xié)議的此示范性方面通過減少在主機與目標之間所發(fā)送的命令包數(shù)目而減少數(shù)據(jù)傳送開銷。通過使所述協(xié)議為目標驅(qū)動且通過使目標執(zhí)行數(shù)據(jù)處理而實現(xiàn)此情況。主機等待數(shù)據(jù)傳送請求,所述請求含有以下信息:
[0074]?用以傳送的數(shù)據(jù)映像
[0075].映像中開始讀取的偏移
[0076].數(shù)據(jù)傳送長度
[0077]主機并不處理或提取來自實際映像數(shù)據(jù)的任何信息一其將映像數(shù)據(jù)作為“原始”數(shù)據(jù)發(fā)送到目標,而不將任何包標頭附接到包。因為目標起始數(shù)據(jù)傳送請求,所以其準確地知道要接收多少數(shù)據(jù)。此情況使得主機能夠發(fā)送沒有包標頭的數(shù)據(jù),且目標能夠直接接收并存儲數(shù)據(jù)。
[0078]目標可視需要向主機請求數(shù)據(jù)。其在所述協(xié)議的此示范性方面中請求的第一數(shù)據(jù)項為用于給定軟件映像傳送的映像標頭。一旦目標已處理映像標頭,其便知道映像中的每一數(shù)據(jù)片段的位置和大小。映像標頭還指定映像在目標存儲器中的目的地地址。在具有此信息的情況下,目標可針對每一片段向主機請求數(shù)據(jù),并將數(shù)據(jù)直接傳送到目標存儲器中的適當位置。
[0079]包處理。所述協(xié)議的此示范性方面通過使用物理輸送層來提供可靠的數(shù)據(jù)傳送而減少包處理。并未在協(xié)議層級處將成幀、HDLC(高級數(shù)據(jù)鏈路控制)編碼或CRC(循環(huán)冗余檢查)應用于包。
[0080]每一命令包類型具有可含有命令I(lǐng)D和包長度的經(jīng)定義結(jié)構(gòu)。使用此信息,可通過比較所接收的命令包的長度與以下兩值中的任一者而驗證每一命令包的長度:
[0081]?給定命令I(lǐng)D的預期包長度
[0082]?包自身中所含有的長度字段
[0083]可通過將CRC字段添加到每一包的末端而容易地擴展所述協(xié)議的此示范性方面,以支持命令包驗證。還可使用各種認證方法來驗證數(shù)據(jù)包的數(shù)據(jù)完整性;然而,此情況超出所述協(xié)議的此示范性方面的本描述的范圍。
[0084]已確以通信。根據(jù)所述協(xié)議的此示范性方面,確認主機與目標之間的通信。用從主機發(fā)送回到目標的命令或數(shù)據(jù)包確認從目標發(fā)送到主機的命令包。類似地,用從目標到主機的命令或數(shù)據(jù)包確認從主機發(fā)送到目標的命令包。
[0085]盡管預期主機與目標之間的鏈路是可靠的,但如果在將命令包從主機傳輸?shù)侥繕似陂g發(fā)生錯誤,且結(jié)果目標接收到不正確的包,那么目標將把錯誤響應發(fā)送到主機。
[0086]可在主機和目標兩者上實施計時器機構(gòu),以在傳輸失敗的情況下支持包的重新傳輸。然而,此類機構(gòu)的實施方案超出所述協(xié)議的此示范性方面的本描述的范圍——其僅指定當在目標側(cè)上接收到非預期或不正確的包時會發(fā)生的情況。
[0087]擴展性。所述協(xié)議的此示范性方面定義命令結(jié)構(gòu)和包流的固定集合。然而,可容易地擴展所述集合,以支持額外的命令結(jié)構(gòu)和狀態(tài)轉(zhuǎn)變(如下文進一步所描述)。[0088]梓口
[0089]概述。所述協(xié)議的此示范性方面定義兩種類型的包:
[0090].命令包
[0091]?數(shù)據(jù)包
[0092]下文根據(jù)所述協(xié)議的此示范性方面展示這些包的結(jié)構(gòu):
[0093]命令包
[0094]
【權(quán)利要求】
1.一種在多處理器系統(tǒng)中的兩個處理器之間的通信方法,所述方法包括: 由二級處理器起始與主處理器的通信; 由所述二級處理器指令所述主處理器傳送用于可執(zhí)行軟件映像的映像標頭,所述可執(zhí)行軟件映像包括所述映像標頭和至少一個數(shù)據(jù)片段; 由所述二級處理器接收所述映像標頭和至少一個數(shù)據(jù)片段; 由所述二級處理器向所述主處理器指示成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段; 由所述二級處理器從所述主處理器接收終止所述可執(zhí)行軟件映像傳送的指示;和 由所述二級處理器向所述主處理器確認接收到所述終止傳送指示。
2.根據(jù)權(quán)利要求1所述的方法,其中所述映像標頭包括映像數(shù)據(jù)所在的存儲器中的映像大小和位置。
3.根據(jù)權(quán)利要求1所述的方法,其進一步包括由所述二級處理器向所述主處理器發(fā)送對所述至少一個數(shù)據(jù)片 段中的每一者的傳送請求。
4.根據(jù)權(quán)利要求1所述的方法,其中所述指令包括由所述二級處理器向所述主處理器發(fā)送包括映像識別符、數(shù)據(jù)偏移和數(shù)據(jù)長度的消息。
5.根據(jù)權(quán)利要求1所述的方法,其進一步包括由所述二級處理器將用于傳入數(shù)據(jù)片段的接收緩沖區(qū)設(shè)定為所述二級處理器的存儲器中的目的地地址。
6.一種多處理器裝置,其包括: 用于由二級處理器起始與主處理器的通信的裝置; 用于由所述二級處理器指令所述主處理器傳送用于可執(zhí)行軟件映像的映像標頭的裝置,所述可執(zhí)行軟件映像包括所述映像標頭和至少一個數(shù)據(jù)片段; 用于由所述二級處理器接收所述映像標頭和至少一個數(shù)據(jù)片段的裝置; 用于由所述二級處理器向所述主處理器指示成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的裝置; 用于由所述二級處理器從所述主處理器接收終止所述可執(zhí)行軟件映像傳送的指示的裝置;和 用于由所述二級處理器向所述主處理器確認接收到所述終止傳送指示的裝置。
7.根據(jù)權(quán)利要求6所述的多處理器裝置,其中所述映像標頭包括映像數(shù)據(jù)所在的存儲器中的映像大小和位置。
8.根據(jù)權(quán)利要求6所述的多處理器裝置,其進一步包括用于由所述二級處理器向所述主處理器發(fā)送對所述至少一個數(shù)據(jù)片段中的每一者的傳送請求的裝置。
9.根據(jù)權(quán)利要求6所述的多處理器裝置,其中所述用于指令的裝置包括用于由所述二級處理器向所述主處理器發(fā)送包括映像識別符、數(shù)據(jù)偏移和數(shù)據(jù)長度的消息的裝置。
10.根據(jù)權(quán)利要求6所述的多處理器裝置,其進一步包括用于由所述二級處理器將用于傳入數(shù)據(jù)片段的接收緩沖區(qū)設(shè)定為所述二級處理器的存儲器中的目的地地址的裝置。
11.一種計算機程序產(chǎn)品,其包括: 其上記錄有非暫時性程序代碼的非暫時性計算機可讀媒體,所述非暫時性程序代碼包括: 用以由二級處理器起始與主處理器的通信的程序代碼;用以由所述二級處理器指令所述主處理器傳送用于可執(zhí)行軟件映像的映像標頭的程序代碼,所述可執(zhí)行軟件映像包括所述映像標頭和至少一個數(shù)據(jù)片段; 用以由所述二級處理器接收所述映像標頭和至少一個數(shù)據(jù)片段的程序代碼; 用以由所述二級處理器向所述主處理器指示成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的程序代碼; 用以由所述二級處理器從所述主處理器接收終止所述可執(zhí)行軟件映像傳送的指示的程序代碼;和 用以由所述二級處理 器向所述主處理器確認接收到所述終止傳送指示的程序代碼。
12.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中所述映像標頭包括映像數(shù)據(jù)所在的存儲器中的映像大小和位置。
13.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中所述非暫時性程序代碼進一步包括用以由所述二級處理器向所述主處理器發(fā)送對所述至少一個數(shù)據(jù)片段中的每一者的傳送請求的程序代碼。
14.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中所述用以指令的程序代碼包括用以由所述二級處理器向所述主處理器發(fā)送包括映像識別符、數(shù)據(jù)偏移和數(shù)據(jù)長度的消息的程序代碼。
15.根據(jù)權(quán)利要求11所述的計算機程序產(chǎn)品,其中所述非暫時性程序代碼進一步包括用以由所述二級處理器將用于傳入數(shù)據(jù)片段的接收緩沖區(qū)設(shè)定為所述二級處理器的存儲器中的目的地地址的程序代碼。
16.一種在多處理器系統(tǒng)中的兩個處理器之間的通信方法,所述方法包括: 由主處理器接收傳送用于可執(zhí)行軟件映像的映像標頭的指令,所述可執(zhí)行軟件映像包括所述映像標頭和至少一個數(shù)據(jù)片段; 由所述主處理器將所述映像標頭和至少一個數(shù)據(jù)片段發(fā)送到二級處理器; 由所述主處理器從所述二級處理器接收成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的指示; 由所述主處理器發(fā)送終止所述可執(zhí)行映像傳送的指示;和 由所述主處理器從所述二級處理器接收對接收到所述終止傳送指示的確認。
17.根據(jù)權(quán)利要求16所述的方法,其中所述映像標頭包括映像數(shù)據(jù)所在的存儲器中的映像大小和位置。
18.根據(jù)權(quán)利要求16所述的方法,其進一步包括由所述主處理器接收對所述主處理器的對所述至少一個數(shù)據(jù)片段中的每一者的傳送請求。
19.根據(jù)權(quán)利要求16所述的方法,其進一步包括由所述主處理器從所述二級處理器接收包括映像識別符、數(shù)據(jù)偏移和數(shù)據(jù)長度的消息。
20.根據(jù)權(quán)利要求19所述的方法,其進一步包括基于所述消息發(fā)送數(shù)據(jù)。
21.一種多處理器裝置,其包括: 用于由主處理器接收傳送用于可執(zhí)行軟件映像的映像標頭的指令的裝置,所述可執(zhí)行軟件映像包括所述映像標頭和至少一個數(shù)據(jù)片段; 用于由所述主處理器將所述映像標頭和至少一個數(shù)據(jù)片段發(fā)送到二級處理器的裝置;用于由所述主處理器從所述二級處理器接收成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的指示的裝置; 用于由所述主處理器發(fā)送終止所述可執(zhí)行映像傳送的指示的裝置;和 用于由所述主處理器從所述二級處理器接收對接收到所述終止傳送指示的確認的裝置。
22.根據(jù)權(quán)利要求21所述的多處理器裝置,其中所述映像標頭包括定位映像數(shù)據(jù)的存儲器中的映像大小和位置。
23.根據(jù)權(quán)利要求21所述的多處理器裝置,其進一步包括用于由所述主處理器接收對所述主處理器的對所述至少一個數(shù)據(jù)片段中的每一者的傳送請求的裝置。
24.根據(jù)權(quán)利要求21所述的多處理器裝置,進一步包括用于由所述主處理器從所述二級處理器接收包括映像識別符、數(shù)據(jù)偏移和數(shù)據(jù)長度的消息的裝置。
25.根據(jù)權(quán)利要求24所述的方法,其進一步包括用于基于所述消息而發(fā)送數(shù)據(jù)的裝置。
26.一種計算機程序產(chǎn)品,其包括: 其上記錄有非暫時性程序代碼的非暫時性計算機可讀媒體,所述非暫時性程序代碼包 括: 用以由主處理器接收傳送用于可執(zhí)行軟件映像的映像標頭的指令的程序代碼,所述可執(zhí)行軟件映像包括所述映像標頭和至少一個數(shù)據(jù)片段; 用以由所述主處理器將所述映像標頭和至少一個數(shù)據(jù)片段發(fā)送到二級處理器的程序代碼; 用以由所述主處理器從所述二級處理器接收成功地接收到所述映像標頭和至少一個數(shù)據(jù)片段的指示的程序代碼; 用以由所述主處理器發(fā)送終止所述可執(zhí)行映像傳送的指示的程序代碼;和用以由所述主處理器從所述二級處理器接收對接收到所述終止傳送指示的確認的程序代碼。
27.根據(jù)權(quán)利要求26所述的計算機程序產(chǎn)品,其中所述映像標頭包括映像數(shù)據(jù)所在的存儲器中的映像大小和位置。
28.根據(jù)權(quán)利要求26所述的計算機程序產(chǎn)品,其中所述非暫時性程序代碼進一步包括用以由所述主處理器接收對所述主處理器的對所述至少一個數(shù)據(jù)片段中的每一者的傳送請求的程序代碼。
29.根據(jù)權(quán)利要求26所述的計算機程序產(chǎn)品,其中所述非暫時性程序代碼進一步包括用以由所述主處理器從所述二級處理器接收包括映像識別符、數(shù)據(jù)偏移和數(shù)據(jù)長度的消息的程序代碼。
30.根據(jù)權(quán)利要求29所述的計算機程序產(chǎn)品,其中所述非暫時性程序代碼進一步包括用以基于所述消息發(fā)送數(shù)據(jù)的程序代碼。
【文檔編號】G06F9/445GK103975305SQ201280059732
【公開日】2014年8月6日 申請日期:2012年12月5日 優(yōu)先權(quán)日:2011年12月5日
【發(fā)明者】尼丁·古譜塔, 丹尼爾·H·金, 伊戈爾·馬拉曼特, 史蒂夫·黑尼辰 申請人:高通股份有限公司