處理多個命令/命令幀的電子裝置及命令幀處理方法
【專利摘要】本發(fā)明提供一種處理多個命令/命令幀的電子裝置及命令幀處理方法。本發(fā)明的電子裝置處理多個命令,包含控制電路,將多個命令打包在一個復合命令幀中,以及總線接口,通過電子裝置和另一電子裝置之間的總線與另一電子裝置通信,其中總線接口更將復合命令幀打包在單一分組中,并通過總線傳送單一分組。本發(fā)明的處理多個命令/命令幀的電子裝置及命令幀處理方法可以降低在不同電子裝置之間傳輸?shù)拿恳环纸M的開銷。
【專利說明】處理多個命令/命令幀的電子裝置及命令幀處理方法
[0001] 【交叉引用】
[0002] 本申請要求申請日為2015年2月6日,美國臨時申請?zhí)枮?2/112,662的美國臨時申 請案的優(yōu)先權,上述臨時申請案的內容一并并入本申請。 【技術領域】
[0003] 本發(fā)明有關于命令傳輸及執(zhí)行,更具體來說,有關于處理多個命令/命令幀的電子 裝置及命令幀處理方法。 【【背景技術】】
[0004] 總線通常用來允許一個電子裝置與另一個電子裝置通信。舉例來說,第一電子裝 置可以產生用于配置第二電子裝置的命令至第二電子裝置。在傳統(tǒng)設計中,單一的分組用 于通過總線傳送一個命令。換句話說,一個命令被視作上述單一分組的有效載荷。然而,除 了有效載荷之外,單一分組也被要求用于傳送附加信息,例如報頭信息(header information)。附加信息是每個分組傳輸?shù)拈_銷。在分組中一個命令的長度小于相同分組 中附加信息的長度的常見情況下,由于命令僅僅是分組的一小部分的關系,命令傳輸效率 很低。
[0005] 因此,存在創(chuàng)新性的命令傳輸設計的需求,能夠降低在不同電子裝置之間傳輸?shù)?每一分組的開銷。 【
【發(fā)明內容】
】
[0006] 有鑒于此,本發(fā)明特提供以下技術方案:
[0007] 本發(fā)明實施例提供一種電子裝置,處理多個命令。電子裝置包含控制電路,將多個 命令打包在一個復合命令幀中;以及總線接口,通過電子裝置和另一電子裝置之間的總線 與另一電子裝置通信,其中總線接口更將復合命令幀打包在單一分組中,并通過總線傳送 單一分組。
[0008] 本發(fā)明實施例提供一種電子裝置,處理多個命令。電子裝置包含總線接口,通過電 子裝置和另一電子裝置之間的總線與另一電子裝置通信,其中總線接口更自總線接收單一 分組,單一分組中包含具有多個命令打包于其中的復合命令幀;以及控制電路,解碼復合命 令幀并順序執(zhí)行打包在復合命令幀中的多個命令。
[0009] 本發(fā)明實施例又提供一種電子裝置,處理命令幀。電子裝置包含存儲裝置;控制電 路,產生命令幀,并對存儲裝置執(zhí)行輪詢操作以檢查與命令幀的執(zhí)行相關的狀態(tài);以及總線 接口,通過電子裝置以及另一電子裝置之間的總線與另一電子裝置通信,其中總線接口更 將命令幀打包在單一分組中,并通過總線將單一分組傳送至另一電子裝置。
[0010] 本發(fā)明實施例又提供一種電子裝置,處理命令幀。電子裝置包含總線接口,通過電 子裝置和另一電子裝置之間的總線與另一電子裝置通信,其中總線接口更自總線接收單一 分組,單一分組中包含命令幀;以及控制電路,解碼并執(zhí)行命令幀,并通過總線推送與命令 幀的執(zhí)行相關的狀態(tài)至另一電子裝置的存儲裝置。
[0011] 本發(fā)明實施例又提供一種命令幀處理方法,包含將多個命令打包在復合命令幀 中;將復合命令幀儲存入存儲裝置;通過總線發(fā)送復合命令幀的地址指針以及長度標志;以 及對存儲裝置執(zhí)行輪詢操作,以檢查與復合命令幀的執(zhí)行相關的狀態(tài)。
[0012] 本發(fā)明實施例又提供一種命令幀處理方法,包含接收復合命令幀的地址指針及長 度標志;決定待被解碼和執(zhí)行的當前命令的當前地址指針;依據(jù)當前命令的當前地址指針 自本地存儲裝置擷取復合命令幀中的當前命令;解碼當前命令以找出當前命令的長度;解 碼并執(zhí)行當前命令;將當前命令的響應狀態(tài)/執(zhí)行結果推送到遠程存儲裝置;檢查是否復合 命令幀的最后一個命令已經被解碼及執(zhí)行;以及決定打包于復合命令幀中的下一命令的起 始地址。
[0013] 本發(fā)明的處理多個命令/命令幀的電子裝置及命令幀處理方法可以降低在不同電 子裝置之間傳輸?shù)拿恳环纸M的開銷。 【【附圖說明】】
[0014] 圖1是依據(jù)本發(fā)明一個實施例的計算機系統(tǒng)的示意圖。
[0015] 圖2是依據(jù)本發(fā)明一個實施例的復合命令幀的架構的示意圖。。
[0016] 圖3展示了范例的"推到主機"輪詢方法的示意圖。
[0017] 圖4展示了依據(jù)本發(fā)明一個實施例擷取復合命令幀、執(zhí)行打包在復合命令幀中的 命令以及更新響應狀態(tài)及執(zhí)行狀態(tài)的操作的示意圖。
[0018] 圖5是依據(jù)本發(fā)明一個實施例的在一個電子裝置上的復合命令處理操作的流程示 意圖。
[0019] 圖6是依據(jù)本發(fā)明一個實施例的在另一個電子裝置上的復合命令處理操作的流程 示意圖。
[0020] 圖7是當控制電路是多核處理器的情況下,存儲裝置的示例性布置的示意圖。 【【具體實施方式】】
[0021] 在說明書及權利要求書當中使用了某些詞匯來指稱特定的組件。所屬領域中的技 術人員應可理解,制造商可能會用不同的名詞來稱呼同樣的組件。本說明書及權利要求書 并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的基 準。在通篇說明書及權利要求書當中所提及的「包含」是開放式的用語,故應解釋成「包含但 不限定于」。另外,「耦接」一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述 第一裝置耦接于第二裝置,則代表第一裝置可直接電氣連接于第二裝置,或透過其它裝置 或連接手段間接地電氣連接至第二裝置。
[0022] 圖1是依據(jù)本發(fā)明一個實施例的計算機系統(tǒng)的示意圖。計算機系統(tǒng)100包含多個電 子裝置,例如電子裝置102和104。在本實施例中,計算機系統(tǒng)100可為網絡系統(tǒng),電子裝置 102可為主機,而電子裝置104可為由主機管理/編程的交換機。如圖1所示,電子裝置(例如, 主機)102包含控制電路(例如,中央處理單元(CPU)) 112、存儲裝置(例如,動態(tài)隨機存取存 儲器(DRAM)114),以及總線接口 116;而電子裝置(例如,交換機)104包含具有直接存儲器存 取(direct memory access)控制器(標記為"DMA")124的控制電路(例如,微處理器)122、總 線接口 126、存儲裝置128,以及其他交換機模塊,例如入口階段(ingress stage) 132、流量 管理器134以及出口階段(egress stage)136。由于本發(fā)明著眼于命令傳輸及執(zhí)行,且本領 域技術人員應已經了解交換機模塊的功能和操作,為簡潔起見,交換機模塊的細節(jié)在此省 略。請注意,圖1中僅顯示了與本發(fā)明相關的元件。在實際中,電子裝置102和104可包含實現(xiàn) 其他功能的附加元件。
[0023] 電子裝置102的總線接口 116通過電子裝置102和104之間的總線103連接到電子裝 置104的總線接口 126。因此,總線接口 116和126允許電子裝置102和104通過總線103相互通 信。在本實施例中,控制電路112將多個命令CMD打包到復合命令幀TLVS_CMD中,并將復合命 令幀TLVS_CMD儲存到存儲裝置114中。控制電路112可發(fā)送地址指針SP和長度標志LI至電子 裝置104。此外,存儲裝置114還可以儲存復合命令幀TLVS_CMD相關的狀態(tài)(例如,復合命令 幀TLVS_CMD的執(zhí)行狀態(tài)STA及/或復合命令幀TLVS_CMD中每一命令CMD的響應狀態(tài)RSP)。此 外,總線接口 116將復合命令幀TLVS_CMD打包成單一分組,并將單一分組傳輸?shù)娇偩€103,而 總線接口 126自總線103接收單一分組(包含復合命令幀TLVS_CMD)。在本實施例中,總線103 可為外圍組件快速互連(Peripheral Component Interconnect Express,簡寫為PCIe)總 線,而復合命令幀TLVS_CMD可為單一 PCIe分組的有效載荷。
[0024] PCIe分組可采用如下的范例的分組架構。
[0026] 在上述實施例中,控制電路112將多個分組CMD打包到復合命令幀TLVS_CMD中,并 將復合命令幀TLVS_CMD儲存到存儲裝置114中。從而,有效載荷大小X取決于打包在相同復 合命令幀TLVS_CMD中的命令CMD的數(shù)量。由于單一的PCIe分組傳輸多于一個命令CMD,命令 傳輸效率可通過PCIe交易中較長的突發(fā)傳輸(longer burst)得到極大改善。
[0027] 圖2是依據(jù)本發(fā)明一個實施例的復合命令幀的架構的示意圖。在本實施例中,采用 了TLVS幀架構,其中"T"代表命令類型,"L"代表命令長度,"V"代表命令值,而"S"代表多個 命令。一個復合命令幀(TLVS幀)以TLVS報頭開始,其中TLVS報頭后跟隨多個命令,每個命令 具有TLV命令格式。在本范例中,三個命令CMD1、CMD2和CMD3被打包在同一個復合命令幀中。 一個命令的TLV命令格式包含至少類型和長度域(記作CMD(TL)),并可取決于命令的實際設 計而選擇性的包含命令值(記作CMD數(shù)據(jù)(V))。換句話說,打包在相同復合命令幀TLVS_CMD 中的多個命令CMD的每一個必須具有記錄命令類型和命令長度的一個類型和長度域。
[0028] 在命令具有附隨的命令值的情況下,命令的命令長度等于類型和長度域的長度加 上值域的長度。在命令不具有附隨的命令值的情況下,命令的命令長度等于類型和長度域 的長度。記錄在當前命令的類型和長度域中的命令長度可被用于識別下一命令的起始地 址。TLVS報頭可記錄打包在同一復合命令幀中的命令的數(shù)量信息,打包在同一復合命令幀 中的命令的序列號值的信息,等等。可通過檢查復合命令幀的長度來識別復合命令幀的結 束,其中復合命令幀的長度可由長度標志指示。
[0029] 在控制電路112產生并儲存復合命令幀TLVS_CMD(包含多于一個命令打包于其中) 之后,控制電路112發(fā)送地址指針SP和長度標志LI至電子裝置104,其中地址指針SP指示復 合命令幀TLVS_CMD在存儲裝置114中的位置,長度標志LI指示復合命令幀TLVS_CMD的長度。 通過使用在總線103上傳輸?shù)闹辽僖粋€分組,地址指針SP和長度標志LI可自電子裝置102的 總線接口 116傳輸至電子裝置104的總線接口 126。在本實施例中,控制電路122被配置為DMA 控制器124,以支持對存儲裝置114的遠程DMA存取。舉例來說,在控制電路122在總線接口 126接收地址指針SP以及長度標志LI之后,DMA控制器124可操作來依據(jù)接收到的地址指針 SP及長度標志LI自存儲裝置114擷取復合命令幀TLVS_CMD。舉例來說,DMA控制器124可將復 合命令幀TLVS_CMD儲存至電子裝置104的存儲裝置(例如,交換機存儲器)128中,從而控制 電路122可執(zhí)行自電子裝置104的存儲裝置(例如,交換機存儲器)128中擷取的命令。換個角 度說,由于存儲設備114的遠程DMA存取,零拷貝(zero copy,簡寫為ZC)模式被啟用。以這種 方式,復合命令幀TLVS_CMD可被自存儲裝置114讀取,并在沒有控制電路112介入的情況下, 在總線103上傳輸。
[0030] 隨后,控制電路122解碼所擷取的復合命令幀TLVS_CMD,并順序執(zhí)行打包在所擷取 的復合命令幀TLVS_CMD中的多個命令CMD。舉例來說,多個命令CMD中的每一個被執(zhí)行以存 取電子裝置104中的表格或寄存器。如上所述,控制電路122可參考記錄在當前命令的類型 和長度域中的命令長度來識別下一命令的起始地址。從而,控制電路122順序執(zhí)行復合命令 幀TLVS_CMD中的命令CMD,直至復合命令幀TLVS_CMD中的最后一個命令CMD被執(zhí)行。
[0031 ]若控制電路112 (其發(fā)布命令CMD)對控制電路122 (其執(zhí)行控制電路112發(fā)布的命令 CMD)執(zhí)行輪詢(polling)操作,輪詢操作將消耗電子裝置102和104之間的總線103的大量帶 寬。為減少由輪詢操作導致的帶寬消耗,計算機系統(tǒng)100可采用"推到主機(Push-to-Host)" 輪詢方法。圖3展示了范例的"推到主機"輪詢方法的示意圖。主機301的CPU 312產生命令 CMD至裝置302,并隨后輪詢映射的存儲器314,以檢查命令CMD的響應狀態(tài)。裝置302執(zhí)行命 令CMD,并將命令CMD的響應狀態(tài)推送到映射的存儲器314。如圖3所示,CPU 312在主機301內 執(zhí)行輪詢操作。以這種方式,由CPU 312執(zhí)行的輪詢操作并不會消耗主機301和裝置302之間 的總線帶寬。
[0032]在本實施例中,控制電路112對存儲裝置114執(zhí)行輪詢操作,以檢查與復合命令幀 TLVS_CMD相關的狀態(tài)(例如,復合命令幀TLVS_CMD的執(zhí)行狀態(tài)STA及/或復合命令幀TLVS_ CMD中每一命令CMD的響應狀態(tài)RSP),且控制電路122將與復合命令幀TLVS_CMD相關的狀態(tài) (例如,復合命令幀TLVS_CMD的執(zhí)行狀態(tài)STA及/或復合命令幀TLVS_CMD中每一命令CMD的響 應狀態(tài)RSP)推送至存儲裝置114。舉例來說,當打包于復合命令幀TLVS_CMD中的一個命令 CMD由控制電路122執(zhí)行時,控制電路122將命令CMD的響應狀態(tài)RSP推送到存儲裝置114。命 令CMD的響應狀態(tài)RSP可指示電子裝置104的狀態(tài)。另一個例子,在打包于復合命令幀TLVS_ CMD中的最后一個命令CMD由控制電路122執(zhí)行之后,控制電路122將復合命令幀TLVS_CMD的 執(zhí)行狀態(tài)STA推送到存儲裝置114。復合命令幀TLVS_CMD的執(zhí)行狀態(tài)STA可指示是否同一復 合命令幀TLVS_CMD中的所有命令CMD被無錯誤的成功執(zhí)行。當至少一個響應狀態(tài)RSP在存儲 裝置114中被更新,而執(zhí)行狀態(tài)STA尚未在存儲裝置114中被更新時,控制電路112可通過輪 詢存儲裝置114獲取該至少一個響應狀態(tài)。類似地,在所有響應狀態(tài)RSP和執(zhí)行狀態(tài)STA在存 儲裝置114中被更新之后,控制電路112可通過存儲裝置114獲取所有響應狀態(tài)RSP及執(zhí)行狀 態(tài) STA。
[0033]圖4展示了依據(jù)本發(fā)明一個實施例擷取復合命令幀、執(zhí)行打包在復合命令幀中的 命令以及更新響應狀態(tài)及執(zhí)行狀態(tài)的操作的示意圖。復合命令幀TLVS_CMD儲存于存儲裝置 (例如,主機存儲器)114中。在第一階段,復合命令幀TLVS_CMD的地址指針SP及長度標志LI 自控制電路(例如,主機CPU)112發(fā)送至控制電路(例如,交換機微處理器)122。在第二階段, 控制電路(例如,交換機微處理器)122參考所接收的地址指針SP及長度標志LI自存儲裝置 (例如,主機存儲器)114擷取復合命令幀TLVS_CMD并隨后將擷取的整個復合命令幀TLVS_ CMD儲存入存儲裝置(例如,交換機存儲器)128中,并隨后順序執(zhí)行復合命令幀TLVS_CMD中 的多個命令。在第三階段,當打包在復合命令幀TLVS_CMD中的命令之一的執(zhí)行結束時,控制 電路122將相應的響應狀態(tài)RSP更新到由地址指針*RSP指向的位置(例如,主機存儲器中的 存儲地址)。在第四階段,在復合命令幀TLVS_CMD中的最后一個命令的執(zhí)行結束之后,控制 電路122將相應的執(zhí)行狀態(tài)STA更新到由地址指針*STA指向的位置(例如,主機存儲器中的 存儲地址)。舉例來說,地址指針*RSP和*STA的設置可由控制電路(例如,主機CPU) 112配置, 并可由復合命令幀TLVS_CMD執(zhí)行。
[0034]圖5是依據(jù)本發(fā)明一個實施例的在一個電子裝置(例如,主機)上的復合命令處理 操作的流程示意圖。假設結果基本相同,則圖5中的步驟不需要依照圖中所示的精確的順序 執(zhí)行。在一個電子裝置(例如,主機)上的復合命令處理操作可由圖1所示的控制電路112執(zhí) 行,并可簡要概述如下。
[0035] 步驟502:將多個命令打包在復合命令幀中。
[0036]步驟504:將復合命令幀儲存入存儲裝置(例如,主機存儲器)。
[0037]步驟506:通過總線發(fā)送復合命令幀的地址指針以及長度標志。
[0038]步驟508:對存儲裝置(例如,主機存儲器)執(zhí)行輪詢操作,以檢查與復合命令幀的 執(zhí)行相關的狀態(tài)(例如,復合命令幀的執(zhí)行狀態(tài)及/或復合命令幀中的每一命令的響應狀 態(tài))。
[0039] 由于本領域技術人員在讀過上述段落后能夠很容易了解圖5所示步驟的細節(jié),為 簡潔起見,不再詳述。
[0040] 圖6是依據(jù)本發(fā)明一個實施例的在另一個電子裝置(例如,交換機)上的復合命令 處理操作的流程示意圖。假設結果基本相同,則圖6中的步驟不需要依照圖中所示的精確的 順序執(zhí)行。在另一個電子裝置(例如,交換機)上的復合命令處理操作可由圖1所示的控制電 路122執(zhí)行,并可簡要概述如下。
[0041] 步驟600:開始解碼以及執(zhí)行具有多個命令打包于其內的一個復合命令幀的流程。 [0042]步驟601:自總線接收復合命令幀的地址指針及長度標志。舉例來說,地址指針和 長度標志可被參考來以DMA方式自遠程存儲裝置(例如,主機存儲器)擷取復合命令幀,以使 整個復合命令幀在本地存儲裝置(例如,交換機存儲器)中可用。
[0043]步驟602:決定待被解碼和執(zhí)行的當前命令的當前地址指針。由于地址指針指向復 合命令幀的起始地址,且TLVS報頭的預定長度已知,指向第一命令的起始地址的當前地址 指針可被決定。
[0044] 步驟604:依據(jù)當前命令的當前地址指針自本地存儲裝置(例如,交換機存儲器)擷 取復合命令幀中的當前命令。
[0045] 步驟606:解碼當前命令以找出當前命令的長度。
[0046] 步驟608:解碼并執(zhí)行當前命令。
[0047]步驟610:將當前命令的響應狀態(tài)/執(zhí)行結果推送到存儲裝置(例如,主機存儲器)。 [0048]步驟612:檢查是否復合命令幀的最后一個命令已經被解碼及執(zhí)行。若是,轉至步 驟616;否則,轉至步驟614。
[0049] 步驟614:決定打包于復合命令幀中的下一命令的起始地址。舉例來說,下一地址 指針=當前地址指針+當前命令長度。轉至步驟604。
[0050] 步驟616:結束解碼及執(zhí)行一個復合命令幀的流程。
[0051]步驟618:檢查存儲裝置(例如,主機存儲器)是否仍然具有待處理的更多復合命令 幀。若是,轉至步驟600;否則,轉至步驟620。
[0052] 步驟620:等待新復合命令幀。轉至步驟618。
[0053]若存儲裝置(例如,主機存儲器)中存在任何未處理的復合命令幀可用,未處理的 復合命令幀被自存儲裝置(例如,主機存儲器)中擷取并隨后被執(zhí)行(步驟618及620)。請注 意圖6中步驟606和608的執(zhí)行順序僅用作展示??蛇x地,步驟606及608可被交換,使得步驟 608先于步驟606執(zhí)行。某些情況下,步驟606可以和步驟608合并。由于本領域技術人員在讀 過上述段落后能夠很容易了解圖6所示步驟的細節(jié),為簡潔起見,不再詳述。
[0054]在某些實施例中,在一個分組傳輸中擷取整個復合命令幀,并且隨后復合命令幀 被儲存至電子裝置(例如,交換機存儲器)本地存儲器,從而減小了頻繁存取另一電子裝置 (例如,主機存儲器)的遠程存儲器消耗的帶寬。以這種方式,打包在同一復合分組幀中的命 令可依據(jù)命令相應的地址指針一個接一個的自電子裝置(例如,交換機存儲器)的本地存儲 器被擷取。
[0055] 在一個范例性的設計中,控制電路112可使用單核處理器來實施。從而,存儲裝置 114可具有分配給單核處理器的單一命令隊列,使得產生自單核處理器的每一復合命令幀 TLVS_CMD被儲存于單一命令隊列中。在另一范例性設計中,控制電路112可使用多核處理器 實施。圖7是當控制電路112是多核處理器的情況下,存儲裝置114的示例性布置的示意圖。 舉例來說,但并非本發(fā)明的限制,控制電路112可為具有四個處理器核心C 〇re_l-C〇re_^9 四核處理器。存儲裝置114因而具有分別分配給處理器核心C 〇re_l-C〇re_4的四個命令隊列 CQ1-CQ4。從而,處理器核心Core_l產生復合命令幀TLVS_CMD至命令隊列CQ1;處理器核心 Core_2產生復合命令幀TLVS_CMD至命令隊列CQ2;處理器核心Core_3產生復合命令幀TLVS_ CMD至命令隊列CQ3;而處理器核心Core_4產生復合命令幀TLVS_CMD至命令隊列CQ4。由于命 令隊列CQ1-CQ4在電子裝置102(例如,主機的DRAM)的存儲裝置114中被分配,而非在電子裝 置104(例如,裝置的靜態(tài)隨機存取存儲器,statistic random access memory,簡寫為 SRAM)的存儲裝置中被分配,命令隊列的大小并不受裝置的SRAM限制,而可由主機的CPU彈 性的決定。此外,控制電路122(例如,裝置的微處理器)的遠程DMA功能可通過仲裁器702在 存儲裝置114中自命令隊列CQ1-CQ4中的一個獲取一個復合命令幀TLVS_CMD。
[0056] 以上所述僅為本發(fā)明的較佳實施例,本領域相關的技術人員依據(jù)本發(fā)明的精神所 做的等效變化與修改,都應當涵蓋在權利要求書內。
【主權項】
1. 一種電子裝置,處理多個命令,其特征在于,所述電子裝置包含: 控制電路,將多個命令打包在復合命令幀中;以及 總線接口,通過所述電子裝置和另一電子裝置之間的總線與所述另一電子裝置通信, 其中所述總線接口更將所述復合命令幀打包在單一分組中,并通過所述總線傳送所述單一 分組。2. 根據(jù)權利要求1所述的電子裝置,其特征在于,打包在所述復合命令幀中的所述多個 命令中的每一個包含至少類型以及長度域。3. 根據(jù)權利要求1所述的電子裝置,其特征在于,更包含: 存儲裝置,儲存所述復合命令幀; 其中所述復合命令幀讀取自所述存儲裝置,且在沒有所述控制電路介入的情況下通過 所述總線傳輸。4. 根據(jù)權利要求3所述的電子裝置,其特征在于,所述控制電路更發(fā)送指示所述復合命 令幀在所述存儲裝置中的位置的地址指針以及指示被傳送至所述另一電子裝置的所述復 合命令幀的長度的長度標志。5. 根據(jù)權利要求3所述的電子裝置,其特征在于,所述控制電路是具有多個處理器核心 的多核處理器,所述存儲裝置具有分別被分配給所述多個處理器核心的多個命令隊列,且 產生自處理器核心的所述復合命令幀儲存于對應命令隊列之內。6. 根據(jù)權利要求1所述的電子裝置,其特征在于,更包含: 存儲裝置; 其中所述控制電路更對所述存儲裝置執(zhí)行輪詢操作,以檢查與所述復合命令幀有關的 狀態(tài)。7. 根據(jù)權利要求6所述的電子裝置,其特征在于,與所述復合命令幀有關的所述狀態(tài)包 含所述復合命令幀的執(zhí)行狀態(tài)或所述復合命令幀中的所述多個命令的每一個的響應狀態(tài)。8. 根據(jù)權利要求1所述的電子裝置,其特征在于,所述電子裝置是主機,而所述另一電 子裝置是交換機。9. 根據(jù)權利要求1所述的電子裝置,其特征在于,所述總線是外圍組件快速互連總線。10. -種電子裝置,處理多個命令,其特征在于,所述電子裝置包含: 總線接口,通過所述電子裝置和另一電子裝置之間的總線與所述另一電子裝置通信, 其中所述總線接口更自所述總線接收單一分組,所述單一分組中包含具有多個命令打包于 其中的復合命令幀;以及 控制電路,解碼所述復合命令幀并順序執(zhí)行打包在所述復合命令幀中的所述多個命 令。11. 根據(jù)權利要求10所述的電子裝置,其特征在于,打包在所述復合命令幀中的所述多 個命令中的每一個包含至少類型以及長度域。12. 根據(jù)權利要求10所述的電子裝置,其特征在于,所述控制電路包含直接存儲器存取 控制器,通過所述總線接口自所述另一電子裝置的存儲裝置擷取所述復合命令幀。13. 根據(jù)權利要求12所述的電子裝置,其特征在于,所述控制電路更接收指示所述復合 命令幀在所述存儲裝置中的位置的地址指針以及指示來自于所述另一電子裝置的所述復 合命令幀的長度的長度標志。14. 根據(jù)權利要求12所述的電子裝置,其特征在于,所述存儲裝置具有分別被分配給多 個處理器核心的多個命令隊列,且所述控制電路自所述多個命令隊列之一擷取所述復合命 令中貞。15. 根據(jù)權利要求10所述的電子裝置,其特征在于,所述控制電路更通過所述總線推送 與所述復合命令幀相關的狀態(tài)至所述另一電子裝置的存儲裝置。16. 根據(jù)權利要求15所述的電子裝置,其特征在于,與所述復合命令幀有關的所述狀態(tài) 包含所述復合命令幀的執(zhí)行狀態(tài)或所述復合命令幀中的所述多個命令的每一個的響應狀 ??τ 〇17. 根據(jù)權利要求10所述的電子裝置,其特征在于,所述電子裝置是交換機,而所述另 一電子裝置是主機。18. 根據(jù)權利要求10所述的電子裝置,其特征在于,所述總線是外圍組件快速互連總 線。19. 一種電子裝置,處理命令幀,其特征在于,所述電子裝置包含: 存儲裝置; 控制電路,產生命令幀,并對所述存儲裝置執(zhí)行輪詢操作以檢查與所述命令幀的執(zhí)行 相關的狀態(tài);以及 總線接口,通過所述電子裝置以及另一電子裝置之間的總線與所述另一電子裝置通 信,其中所述總線接口更將所述命令幀打包在單一分組中,并通過所述總線將所述單一分 組傳送至所述另一電子裝置。20. -種電子裝置,處理命令幀,其特征在于,所述電子裝置包含: 總線接口,通過所述電子裝置和另一電子裝置之間的總線與所述另一電子裝置通信, 其中所述總線接口更自所述總線接收單一分組,所述單一分組中包含命令幀;以及 控制電路,解碼并執(zhí)行所述命令幀,并通過所述總線推送與所述命令幀的執(zhí)行相關的 狀態(tài)至所述另一電子裝置的存儲裝置。21. -種命令幀處理方法,其特征在于,包含: 將多個命令打包在復合命令幀中; 將所述復合命令幀儲存入存儲裝置; 通過總線發(fā)送所述復合命令幀的地址指針以及長度標志;以及 對所述存儲裝置執(zhí)行輪詢操作,以檢查與所述復合命令幀相關的狀態(tài)。22. 根據(jù)權利要求21所述的命令幀處理方法,其特征在于,與所述復合命令幀相關的狀 態(tài)包括所述復合命令幀的執(zhí)行狀態(tài)及/或所述復合命令幀中的每一命令的響應狀態(tài)。23. -種命令幀處理方法,其特征在于,包含: 接收復合命令幀的地址指針及長度標志; 決定待被解碼和執(zhí)行的當前命令的當前地址指針; 依據(jù)當前命令的所述當前地址指針自本地存儲裝置擷取所述復合命令幀中的所述當 前命令; 解碼所述當前命令以找出所述當前命令的長度; 解碼并執(zhí)行所述當前命令; 將所述當前命令的響應狀態(tài)/執(zhí)行結果推送到遠程存儲裝置; 檢查是否所述復合命令幀的最后一個命令已經被解碼及執(zhí)行;以及 決定打包于所述復合命令幀中的下一命令的起始地址。24.根據(jù)權利要求23所述的命令幀處理方法,其特征在于,更包含: 檢查所述遠程存儲裝置是否仍然具有待處理的更多復合命令幀。
【文檔編號】G06F13/28GK105868136SQ201610074983
【公開日】2016年8月17日
【申請日】2016年2月3日
【發(fā)明人】張誠豪, 蘇耀群, 陳信勛, 陳宏慶
【申請人】聯(lián)發(fā)科技股份有限公司