TWI564794B - 供有指令檔以轉換命令的裝置 - Google Patents

供有指令檔以轉換命令的裝置 Download PDF

Info

Publication number
TWI564794B
TWI564794B TW104102978A TW104102978A TWI564794B TW I564794 B TWI564794 B TW I564794B TW 104102978 A TW104102978 A TW 104102978A TW 104102978 A TW104102978 A TW 104102978A TW I564794 B TWI564794 B TW I564794B
Authority
TW
Taiwan
Prior art keywords
codec
format
adapter
management controller
binary
Prior art date
Application number
TW104102978A
Other languages
English (en)
Other versions
TW201533659A (zh
Inventor
麥可R 葛瑞特
Original Assignee
慧與發展有限責任合夥企業
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧與發展有限責任合夥企業 filed Critical 慧與發展有限責任合夥企業
Publication of TW201533659A publication Critical patent/TW201533659A/zh
Application granted granted Critical
Publication of TWI564794B publication Critical patent/TWI564794B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)

Description

供有指令檔以轉換命令的裝置
本申請案有關於供有指令檔以轉換命令的裝置及方法。
在一電腦系統中,一例如是基板管理控制器(BMC)的管理控制器可以耦接至該電腦系統中的各種裝置。裝置的某些例子可包含主機匯流排轉接器(HBA)、網路介面控制器(NIC)、或是其它類似類型的裝置。為了簡化起見,此種裝置係大致被稱為裝置或轉接器(adaptor)。該些裝置可以在一頻寬有限的二進位通訊通道上耦接至該管理控制器。例如,該些裝置及管理控制器可以在一通訊通道上彼此耦接,例如一積體電路間的(I2C)匯流排、系統管理匯流排(SMBus)、串列週邊介面(SPI)匯流排、或是其它類似類型的通訊通道。該管理控制器可以在此通訊通道上和該裝置通訊,以產生及消耗用於該裝置的組態設定,並且為了操作統計以詢問該裝置。
提供一種方法,其係包括:在一管理控制器接收一轉接器管理請求;在該管理控制器上執行內含在一轉接器提供的編解碼程式中的一指令檔,以轉換該管理請求成為一個二進位請求;以及在一個二進位通道上傳送該二進位請求至該轉接器。
提供一種非暫態的處理器可讀取的媒體,其係於其上包含一 組指令,當該組指令藉由該處理器執行時,其使得該處理器:實施一指令檔處理引擎,該指令檔處理引擎是用以執行由一耦接至該處理器的裝置所提供的一指令檔,該指令檔係從一第一格式轉換一命令成為一第二格式;接收一具有該第一格式的命令;以及利用藉由該指令檔處理引擎所執行的該指令檔以轉換該命令成為該第二格式。
提供一種方法,其係包括:在該裝置處,從一管理控制器接收一針對於一裝置提供的編解碼程式的請求,該編解碼程式係提供指令檔以藉由一在該管理控制器上的指令檔處理引擎來加以執行,該指令檔是用以從一第一格式轉換命令成為一第二格式;以及傳送該編解碼程式至該管理控制器。
110‧‧‧計算系統
120‧‧‧管理控制器
130‧‧‧指令檔處理引擎
140‧‧‧轉接器
150‧‧‧編解碼程式
160‧‧‧二進位通訊通道
210‧‧‧計算系統
220‧‧‧管理控制器
221‧‧‧處理器
231‧‧‧非暫態的處理器可讀取的媒體
232‧‧‧指令檔處理引擎的指令
233‧‧‧指令檔幫手功能的指令
234‧‧‧擷取編解碼程式的指令
235‧‧‧轉接器提供的編解碼程式
240、240-1...n‧‧‧轉接器
241‧‧‧處理器
251‧‧‧非暫態的處理器可讀取的媒體
252‧‧‧編解碼程式
253‧‧‧資源映射
254‧‧‧雜湊
255‧‧‧傳送編解碼程式的指令
256‧‧‧二進位操作指令
260‧‧‧二進位通道
310~330‧‧‧區塊
410~480‧‧‧區塊
510~530‧‧‧區塊
610~670‧‧‧區塊
710~720‧‧‧區塊
810~840‧‧‧區塊
圖1是一種實施在此所述的技術以利用裝置提供的指令檔(script)來轉換命令之系統的一個例子。
圖2是一種實施在此所述的技術以利用裝置提供的指令檔來轉換命令之系統的另一個例子。
圖3是根據在此所述的技術的用於轉換管理請求成為一種二進位格式之一高階流程圖的一個例子。
圖4是根據在此所述的技術的用於相互轉換管理請求/響應與一種二進位格式的一高階流程圖的一個例子。
圖5是根據在此所述的技術的用於從一第一格式轉換命令成為一第二格式的一高階流程圖的一個例子。
圖6是根據在此所述的技術的用於從一第一格式轉換命令成為一第二格式的一高階流程圖的另一個例子。
圖7是根據在此所述的技術的用於傳送一編解碼程式(codec)至一管理控制器的一高階流程圖的一個例子。
圖8是根據在此所述的技術的用於判斷一版本並且傳送一編解碼程式至一管理控制器的一高階流程圖的另一個例子。
管理控制器可以在相對低頻寬的二進位連線上和轉接器介接。為了有效率地使用該二進位連線,執行在該管理控制器上的韌體/軟體可以和該轉接器同步,使得在該兩個實體之間的資料交換可被做成更有效率的。例如,在該二進位通道上傳送的某一個二進位序列可以藉由該管理控制器以及轉接器兩者定義為一針對於一預先指明的參數的請求。例如,在一NIC的情形中,該二進位值0xff可被定義為一請求,以擷取該NIC的媒體存取控制(MAC)位址。該NIC可以在該二進位通道上接收此命令,並且以一指定的格式來傳送該結果為一個二進位值。例如,一MAC位址可被指明為六個藉由冒號分開的2位數的值(例如00:11:22:33:44:55)。因為該些冒號是在固定的位置,而且並非依據該位址的值而定,因此該些冒號在該二進位通道上可被省略。該些冒號接著可以藉由該管理控制器來加以重新插入。
如同應該清楚的是,該轉接器及管理控制器的此種密切耦接可能會導致數種類型的問題。例如,因為該二進位格式的解譯必須由該管理控制器及轉接器兩者所同意,因此對於該控制器或是該轉接器的改變可 能需要加以同步化。當該轉接器及管理控制器的販售者是不相同時,此問題係進一步加劇。一對於該轉接器或管理控制器軟體的更新可能會使得該通訊通道為不能利用的,直到對於對應的構件做成對應的更新為止。
另一發生的問題是在該轉接器與管理控制器之間的二進位通訊通道的有限的頻寬係限制可被傳送的資訊量。在某些實施方式中,管理控制器可以利用一例如是JavaScript物件標記(JSON)或延伸性標記語言(XML)的自我描述的物件格式來運作。一般而言,這些物件是人類可讀取的,儘管此並非是一必須的屬性。這些物件可被一在該管理控制器上的介面所利用,以執行管理功能。例如,該介面可以是一種含狀態傳輸(REST)介面。
在一管理介面的一種REST實施方式中,REST操作(例如GET、PUT、POST、DELETE)係被用來傳遞物件(例如JSON物件)以執行操作。例如,一種過度簡化的MAC位址JSON表示可以是"MacAddress":"aa:bb:cc:dd:ee:ff"。一用以從一NIC擷取該MAC位址的REST命令可以是(同樣為過度簡化的)GET(轉接器的資源定位符):"MacAddress":"aa:bb:cc:dd:ee:ff"。如同可見的,相較於上述的二進位實施方式,該REST實施方式需要顯著更多的資訊被發送。
在此所述的技術是藉由內含在一管理控制器上的一指令檔處理引擎(scripting engine)的使用來克服這些問題。該指令檔處理引擎係能夠執行由該轉接器所提供的一指令檔(script)。該指令檔在藉由該管理控制器執行時,其係能夠從例如一像是JSON的物件格式之一第一格式,轉換請求成為例如是一種二進位格式之一第二格式。該指令檔亦能夠轉換一種二進位 格式成為一物件格式。因為該指令檔是由該轉接器本身所提供的,因此不需要同步化在該管理控制器以及轉接器上執行的軟體。該指令檔(亦可被稱為一編解碼程式(codec))是和用於該轉接器的韌體/軟體同時被產生,並且包含用以轉換物件(例如JSON)為主的請求成為可被傳送在一低頻寬的二進位通道上的二進位請求之所有必要的轉換常式(routine)。
當一物件為主的請求在該管理控制器接收到時,該指令檔處理引擎係執行該轉接器提供的指令檔,以轉換該請求成為對應的二進位請求。再者,當在該管理控制器從該轉接器接收到一個二進位響應時,該指令檔引擎可以執行該指令檔,以轉換該二進位響應成為一物件為基礎的響應。此外,該轉接器可包含一資源映射(map),其係容許該轉接器能夠描述在該轉接器上的各種可被配置或擷取的資料元素。因此,該資源映射可以通知該管理控制器有關在該轉接器上/從該轉接器可設定/可擷取的資料元素。
圖1是一種實施在此所述的技術以利用裝置提供的指令檔來轉換命令之系統的一個例子。計算系統110可包含一管理控制器120、一轉接器140、以及一耦接該管理控制器以及轉接器的二進位通訊通道160。應注意到的是,計算系統110可包含許多其它構件(未顯示),以使得該系統能夠運作為一電腦。例如,該計算系統可包含系統處理器、記憶體、儲存裝置(例如磁碟機)、輸入裝置、以及許多其它類型的構件。為了便於說明,這些構件並未予以展示。
該管理控制器120可以是一內含在該計算系統內並且負責管理功能的處理器。該管理控制器(亦可被稱為一管理處理器或基板管理控 制器(BMC))可以耦接至該計算系統110內的各種構件,並且可以處理用於那些構件的管理功能。管理功能的某些例子可包含構件的組態設定、或是擷取構件的操作效能統計。
該管理控制器可以耦接至一外部的系統(未顯示),該外部的系統於是可以連接至其它電腦系統的管理控制器,以提供一用於多個計算系統的管理之集中的位置。例如,在一大型資料中心內,所有的計算系統的管理控制器可以耦接至一中央管理系統。所有的計算系統於是可以從該中央系統來加以管理。
該管理控制器亦可包含一指令檔處理引擎130。一指令檔處理引擎可以是一能夠執行一指令檔的計算程式。一指令檔可以是一組處理步驟的人類可讀取的文字說明、或是機器可讀取的說明。該指令檔引擎可以執行該指令檔,以執行該些處理步驟。指令檔處理引擎有許多的例子。在一範例實施方式中,該指令檔處理引擎可以是一LuaTM指令檔處理引擎。其它例子可包含Perl、Python、JavaScript、以及任意數目的其它指令檔處理語言。在此所述的技術並未依據任何特定的指令檔處理引擎而定。
該計算系統亦可包含一轉接器140。該轉接器(亦可以大致被稱為一裝置)可以是任何和該管理控制器通訊的構件。轉接器的一些例子可包含網路介面控制器(NIC)、主機匯流排轉接器(HBA)、RAID控制器、智慧型陣列控制器、或是任何其它類型的可耦接至該管理控制器的裝置。
該轉接器可包含一編碼程式/解碼程式(編解碼程式)。一編解碼程式150可以是以一種可藉由指令檔處理引擎130執行的指令檔處理語言撰寫之一指令檔。該編解碼程式可以提供功能,例如從一第一格式轉換資 料成為一第二格式。例如,一第一格式可以是一JavaScript物件標記(JSON)格式,並且一第二格式可以是一種二進位格式。該編解碼程式可以提供功能,當其藉由該指令檔處理引擎執行時,其係在格式之間轉換該資料。
該管理控制器120以及轉接器140可以藉由一種二進位通道160來耦接。該二進位通道可以是一通訊通道,例如一積體電路間的(I2C)匯流排、系統管理匯流排(SMBus)、串列週邊介面(SPI)匯流排、或是其它類似類型的通訊通道。在此所述的技術並未依據該通訊通道所用之特定的協定而定。應該瞭解的是,該二進位通訊通道可能是頻寬有限的。就此而論,有效率的使用該二進位通訊通道可能是所期望的。
在操作上,該管理控制器可能希望和該轉接器通訊。例如,該管理控制器可能希望傳送組態設定資訊至該轉接器。或者在其它情形中,該管理控制器可能希望從該轉接器擷取資料。一管理請求、命令以及管理命令是指當該管理控制器希望和該轉接器通訊的實例。在某些情形中,該管理命令可以是藉由該集中的管理系統所產生,並且被傳送至該管理控制器。在其它情形中,該命令可以是藉由該管理控制器本身所產生的。在此所述的技術並未依據該管理請求的來源而定。
在某些實施方式中,該管理請求可以用一種JSON物件的形式來加以接收,其係被發送作為一含狀態傳輸(REST)介面的部分。然而,在此所述的技術並未依據所用的特定物件類型、或是所用的特定架構而定。例如,在此所述的技術將會是等同可應用於在簡單物件存取協定(SOAP)上被傳輸的延伸性標記語言(XML)物件。
該管理控制器首先可以判斷該管理控制器是否有存取到被 儲存在該轉接器上的正確版本的編解碼程式。在一範例實施方式中,該管理控制器可以在該二進位通訊通道上詢問該轉接器,以擷取該編解碼程式的一版本識別符。在某些實施方式中,該版本識別符可以是該編解碼程式的一雜湊,使得任何在該編解碼程式中的改變係產生一不同的HASH。若該管理控制器並沒有存取到具有該轉接器所回傳的雜湊值之編解碼程式的一版本,則該管理控制器可以請求該轉接器在該二進位通訊通道上提供該編解碼程式。從該轉接器擷取的編解碼程式可被稱為一轉接器提供的編解碼程式。
如上所解說的,該二進位通訊通道可以是一有限頻寬的通道。因此限制在該通道上傳送的資料量可能是所期望的。一旦該管理控制器已經從該轉接器接收到該編解碼程式,則該管理控制器可以儲存該編解碼程式以及該版本識別符。在下一個命令時,該管理控制器可以比較目前儲存的編解碼程式版本與該轉接器所回傳的版本id。若該些版本id是相同的,則該管理控制器可能不需要第二次請求該編解碼程式。
該管理控制器接著可以利用該指令檔處理引擎來執行內含在該編解碼程式中的指令檔。該指令檔可以指示該指令檔處理引擎以轉換具有該第一格式的管理請求成為一第二格式。例如,具有一JSON格式的管理請求可被轉換成為一種二進位格式。如上所解說的,例如是JSON或XML的自我描述的格式係包含很多為了說明之目的所需的資料,而不是實際操作所需的。該編解碼程式可以提供轉換該JSON(或是等同的格式)物件成為一種簡化的二進位格式的功能。該二進位格式可被稱為一種二進位請求、二進位命令、或單純是一種二進位格式。應該理解到的是,該二進位格式 並不包含一JSON或XML物件的自我說明的元素。
該管理控制器接著可以在該二進位通道上傳送該二進位請求至該轉接器。該轉接器可被組態設定以瞭解該二進位請求,並且執行所要的操作。如上所解說的,該操作可以是一組態設定操作、或是一請求以從該轉接器擷取資料。該二進位命令所執行的特定功能對於在此所述的技術而言不是重要的。該轉接器接著可以傳送一個二進位響應至該管理控制器。同樣地,該二進位響應可以在該二進位通道上加以傳送。
在該二進位通道上接收到該二進位響應之後,該管理控制器可以利用該編解碼程式以及該指令檔處理引擎來轉換該二進位響應成為一轉接器管理響應。一轉接器管理響應可以是來自該轉接器的一個二進位響應,其被轉換成為該管理控制器所用的物件格式。例如,該二進位響應可藉由該指令檔處理引擎而被轉換成為一JSON格式。在某些實施方式中,該管理控制器可以詢問該轉接器有關該轉接器提供的編解碼程式的版本id,以確保該管理控制器所儲存的編解碼程式版本仍然是針對於該轉接器使用的目前的版本。
圖2是一種實施在此所述的技術以利用裝置提供的指令檔來轉換命令之系統的另一個例子。計算系統210同樣可以包含一管理控制器220以及一轉接器240。在圖2中所示的管理控制器以及轉接器係大致和圖1中所示者相同,而其中額外的細節係被提供。計算系統可包含任意數目的額外的轉接器240-1...n,該些轉接器可以具有一和針對於轉接器240所展示者大致相同的結構。
管理控制器220可包含一處理器221。耦接至該處理器的可 以是一非暫態的處理器可讀取的媒體231。該非暫態的處理器可讀取的媒體可於其上包含一組指令,當該組指令藉由該處理器執行時,其係使得該處理器實施在此所述的技術。如同將會在以下描述的,該媒體231亦可作用為一資料儲存,以提供用於資料的儲存。
該媒體231可包含指令檔處理引擎的指令232。該些指令檔處理引擎的指令232在藉由該處理器執行時,其可以使得該處理器實施一能夠執行指令檔的指令檔處理引擎,該指令檔例如是那些內含在上述的轉接器提供的編解碼程式內之指令檔。如同在以上所提及的,一指令檔處理引擎的一個例子是一LuaTM指令檔處理引擎,儘管在此所述的技術並未依據任何特定的指令檔處理引擎而定。
該媒體231亦可包含指令檔幫手(helper)功能的指令。在某些情形中,某些可藉由一執行指令檔的指令檔處理引擎來加以執行的功能可以藉由在一本機(native)環境中執行碼之處理器來更有效率地加以執行。在此所述的技術可以提供指令檔幫手功能,其可以是打算直接在該處理器上執行的功能,因此繞過(bypassing)該指令檔處理引擎。指令檔可被撰寫成使得當一指令檔幫手功能是可供利用以執行某一工作時,該指令檔處理引擎可以傳遞控制給該幫手功能,以直接在該處理器上執行。一旦該功能完成後,可以藉由該指令檔處理引擎來再繼續執行。此種功能的一個例子可以是在語法分析(parsing)一JSON物件,以找出一特定的元素。一幫手功能可加以提供,其係利用一偏移值(offset)以直接找出在該物件內的元素。因此,該指令檔處理引擎並不需要語法分析該物件。
該媒體231亦可包含擷取編解碼程式的指令234。如上所解 說的,在此所述的技術係判斷該管理控制器是否有存取到目前儲存在該轉接器上的編解碼程式的版本。該些擷取編解碼程式的指令可以指示處理器以詢問該轉接器,來判斷內含於其上的編解碼程式的版本。該些擷取編解碼程式的指令接著可以比較所擷取的版本id與一先前儲存的編解碼程式的版本id。若無具有所擷取的版本id之編解碼程式,則該些擷取編解碼程式的指令可以指示處理器在該二進位通道260上,從該轉接器擷取該編解碼程式。一旦該編解碼程式被擷取後,其可被儲存在該媒體上,以作為該轉接器提供的編解碼程式235。應瞭解的是,該版本id亦被儲存作為該編解碼程式235的部分,並且可被該些擷取編解碼程式的指令使用來判斷一適當的版本的編解碼程式是否可供利用。
儘管只有單一轉接器提供的編解碼程式被展示,但應瞭解的是,可以有許多此種編解碼程式。例如,對於每個內含在該系統中的轉接器240、240-1...n可以有一個別的編解碼程式。在某些情形中,可能並不需要對於每個轉接器個別地儲存編解碼程式。例如,若有兩個相同的轉接器,每個轉接器具有相同的編解碼程式的版本id,則可以只需要儲存一份。一旦該編解碼程式已經第一次被擷取後,後續的請求將會導致該管理控制器判斷該編解碼程式之目前的版本是可存取的。因此,不需要第二次擷取該編解碼程式。
該轉接器240亦可包含一處理器241。耦接至該處理器的可以是一非暫態的處理器可讀取的媒體251。該非暫態的處理器可讀取的媒體可於其上包含一組指令,當該組指令藉由該處理器執行時,其係使得該處理器實施在此所述的技術。
該媒體251可包含一編解碼程式252。如上所解說的,一編解碼程式可包含可藉由一指令檔處理引擎執行的指令檔,以從一第一格式轉換資料成為一第二格式,例如是在一種二進位格式以及一種物件(例如JSON、XML)格式之間。該編解碼程式係由該轉接器所提供,並且是在用於該轉接器的韌體/軟體被產生時加以產生。因此,該編解碼程式是和在該轉接器上執行的韌體/軟體同步。該編解碼程式可包含可藉由該指令檔處理引擎執行的功能,以從一第一格式(例如JSON)轉換物件資料成為一種該轉接器直接可瞭解的二進位格式。
該媒體251亦可包含一資源映射253。該資源映射可以是各種的日期元素的一指示,其可藉由該管理控制器來加以組態設定及/或讀取。換言之,該資源映射可以容許該轉接器能夠向該管理控制器描述其功能。此係容許該管理控制器能夠知道哪些操作可被執行在該轉接器的資料元素上、或是哪些資料元素可以從該轉接器來加以擷取。
該媒體251亦可包含一雜湊254。該雜湊可被使用作為該編解碼程式的一版本識別符。如同在以上所提及的,該管理控制器係驗證可供該管理控制器利用的編解碼程式的版本是和內含在該轉接器本身上的版本相同的。該版本id可以藉由執行該編解碼程式的一雜湊來加以產生。因此,任何對於該編解碼程式的改變都可能會導致一不同的雜湊。因此,若內含在該轉接器上的雜湊254等於該管理控制器所儲存的版本id,則該管理控制器係被確保該控制器可存取的編解碼程式以及被儲存在該轉接器上的編解碼程式是相同的。若該些值並不相符,則該管理控制器係被通知該編解碼程式應該從該轉接器加以擷取。
該媒體251亦可包含傳送編解碼程式的指令255。如上所解說的,該管理控制器可以詢問該轉接器有關該編解碼程式的版本id。該些傳送編解碼程式的指令可以響應於一版本詢問來擷取該雜湊254,並且在該通訊通道上傳送該值至該管理控制器。若該管理控制器判斷該編解碼程式應該從該轉接器擷取時,則該些傳送編解碼程式的指令可以接收針對於該編解碼程式的請求,並且在該二進位通道上回傳該編解碼程式252至該管理控制器。
該媒體亦可包含二進位操作指令256。如上所解說的,利用該指令檔處理引擎以及編解碼程式的管理控制器可以轉換管理請求成為一種二進位格式。該二進位格式的請求可被傳送至該轉接器。該二進位操作指令256可以接收該二進位格式的命令並且在該轉接器上執行所要的操作。例如,在一NIC的情形中,一個二進位命令可被該些二進位操作指令解譯為一針對於該NIC的媒體存取控制(MAC)位址的請求。該些二進位操作指令可以擷取該MAC位址,並且在該二進位通道上回傳該位址以作為一個二進位響應。該管理控制器接著可以利用該編解碼程式以及指令檔處理引擎,來轉換該二進位響應成為一轉接器管理響應。
圖3是根據在此所述的技術的用於轉換管理請求成為一種二進位格式的一高階流程圖的一個例子。在區塊310中,可以在一管理控制器接收到一轉接器管理請求。如上所解說的,該請求可以是在該管理控制器之處,從一外部來源接收到的、或是可以在該管理控制器本身所產生的。不論任何情形,該請求都可能牽涉到和該轉接器的通訊。
在區塊320中,一轉接器提供的編解碼程式指令檔可以在該 管理控制器上加以執行。該指令檔可被用來轉換該管理請求成為一個二進位請求。如上所解說的,該二進位格式可以是一能夠被該轉接器處理的格式。在區塊330中,該二進位請求可以在一個二進位通道上被傳送至該轉接器。如上所解說的,該二進位通道可以是一通訊通道,其可以具有一比其它至該管理控制器的通道低的頻寬。因此,相對於一例如是文字為主的JSON之較不有效率的格式,在該二進位通道上以一種二進位格式來發送請求至該轉接器可能是更有效率的。
圖4是根據在此所述的技術的用於相互轉換管理請求/響應與一種二進位格式的一高階流程圖的一個例子。在區塊410中,如同以上的區塊310中,可以在一管理控制器接收到一轉接器管理請求。在區塊420中,根據該編解碼程式的一雜湊值,該管理控制器可能判斷該轉接器提供的編解碼程式是遺失的。如上所解說的,該編解碼程式的一版本識別符(其中一雜湊值是一種類型)可被用來判斷適當版本的轉接器提供的編解碼程式。若沒有雜湊值(其指出該管理控制器並沒有該編解碼程式)、或是若該雜湊值並不對應到內含在該轉接器上的編解碼程式的版本,則該管理控制器可能需要擷取該編解碼程式。
在區塊430中,該管理控制器可以在該二進位通道上,從該轉接器接收該編解碼程式。如上所解說的,該二進位通道可以是一具有有限頻寬的介於該管理控制器以及該轉接器之間的通訊通道。因此,最小化該編解碼程式被傳輸在該轉接器以及該管理控制器之間的次數可能是所期望的。在區塊440中,一和該編解碼程式相關的資源映射可加以接收。該資源映射可以提供該管理控制器一導引至從該轉接器可供利用的/該轉接器 所需的資料。
在區塊450中,一內含在該轉接器提供的編解碼程式中的指令檔可以在該管理控制器上加以執行,以轉換該管理請求成為一個二進位請求。如上所解說的,管理請求可能是具有一種例如是JSON的格式,其可能不適合用於在一例如是該二進位通道的較低的頻寬通道上傳送。該指令檔可包含轉換該文字為主的管理請求成為一種二進位格式的指令。在區塊460中,該二進位請求可以在該二進位通道上被傳送至該轉接器。
在區塊470中,一個二進位響應可以在該二進位通道上,從該轉接器加以接收到。如上所解說的,在某些情形中,該轉接器可能不具有足夠的功能以提供一例如是JSON響應之文字為主的響應。該轉接器可以利用一個在該二進位通道上傳送的二進位響應來響應於該二進位請求。在區塊480中,該管理控制器可以執行一指令檔,以轉換一個二進位響應成為一轉接器管理響應。該轉接器管理響應可以是一文字為主的響應,例如是一JSON格式化的響應。
圖5是根據在此所述的技術的用於從一第一格式轉換命令成為一第二格式的一高階流程圖的一個例子。在區塊510中,一指令檔處理引擎可被實施以執行由一耦接至一處理器的裝置所提供的一指令檔。該指令檔可以從一第一格式轉換一命令成為一第二格式。如上所解說的,該第一格式例如可以是一像是JSON格式的文字為主的格式。該第二格式可以是一種二進位為主的格式,例如一可被該裝置解譯、或是可被該指令檔用來和該文字為主的格式交互轉換之原始數字。
在區塊520中,一具有該第一格式的命令可加以接收到。該 命令可被一管理控制器所接收。該命令可以是具有該第一、文字為主的格式。在區塊530中,該命令可以利用藉由該指令檔處理引擎執行的指令檔而被轉換成為該第二格式。如上所述,該指令檔可包含常式,以轉換該第一、文字為主的格式成為一第二、二進位為主的格式。在區塊530中,具有該第一格式的命令可被轉換成為該第二格式。
圖6是根據在此所述的技術的用於從一第一格式轉換命令成為一第二格式的一高階流程圖的另一個例子。在區塊610中,即如同在區塊510中,一用以執行一指令檔的指令檔處理引擎可被實施在一管理控制器上。在區塊620中,一詢問可被傳送至該裝置,以判斷該裝置提供的指令檔之一目前的版本識別符。如上所述,在一範例實施方式中,該版本識別符可以是該裝置提供的指令檔的一雜湊。
在區塊630中,可能做出一判斷是一處理器可存取的具有該目前的版本識別符之裝置提供的指令檔是不可供利用的。如上所述,此可能是因為該指令檔並沒有版本是可供利用的、或是可供利用的指令檔的版本並不相符從該裝置擷取之目前的版本。在區塊640中,具有該目前的版本識別符之裝置提供的指令檔係可以從該裝置接收到。換言之,若該處理器並沒有存取到該裝置提供的指令檔之目前的版本,則該目前的版本係接著從該裝置來加以接收。
在區塊650中,指令檔處理引擎幫手功能可藉由該處理器來實行,其中一指令檔處理引擎幫手功能係藉由容許該指令檔執行的部分繞過該指令檔處理引擎而直接藉由該處理器來執行,以從該指令檔處理引擎卸載指令檔執行的部分。換言之,在此提出的技術係容許某些功能能夠以 本機處理器的碼來加以實施,使得該功能並不需要藉由該指令檔處理引擎來執行。
在區塊660中,即如同以上的區塊520中,一具有例如是一文字格式的第一格式的命令可加以接收到。例如,該第一格式可以是一JSON格式。在區塊670中,即如同在區塊530中,具有該第一格式的命令可以利用該指令檔處理引擎,而被轉換成為一第二格式。例如,該第二格式可以是一種適合用於在一低頻寬的二進位通道上傳送至該裝置的二進位格式。
圖7是根據在此所述的技術的用於傳送一編解碼程式至一管理控制器的一高階流程圖的一個例子。在區塊710中,可以在該裝置,從一管理控制器接收到一針對於一裝置提供的編解碼程式的請求。該編解碼程式可以提供指令檔,以藉由一在該管理控制器上的指令檔處理引擎來加以執行。該指令檔可以從一第一格式轉換命令成為一第二格式。例如,在一實施方式中,該指令檔處理引擎可以是一LuaTM指令檔處理引擎。該指令檔可以從一種二進位格式轉換請求成為一JSON格式、或是從一JSON格式轉換請求成為一種二進位格式。
在區塊720中,該裝置可以傳送該編解碼程式至該管理控制器。同樣地,如上所解說的,該裝置本身可包含該編解碼程式,該編解碼程式係包含被用來從例如是一種二進位格式轉換成為一JSON格式(或者反之亦然)的指令檔。如上所解說的,因為該轉換過程是內含於該裝置,並且是由該裝置本身提供至該管理控制器,因此該管理控制器並不需要事前知道該編解碼程式。當該編解碼程式是由該管理控制器所請求時,該裝置就可以提供該編解碼程式。
圖8是根據在此所述的技術的用於判斷一版本並且傳送一編解碼程式至一管理控制器的一高階流程圖的另一個例子。在區塊810中,可以在一裝置處,從該管理控制器接收到一版本識別符請求。如上所解說的,該版本識別符可被用來指明內含在該裝置上的編解碼程式的版本,並且可被該管理控制器使用來判斷該管理控制器是否具有用於該裝置之適當版本的編解碼程式。
在區塊820中,該裝置可以響應於該請求。該響應可包含一版本識別符,其係識別該裝置提供的編解碼程式的版本。若該管理控制器先前已經接收到該裝置的一編解碼程式,則該接收到的版本識別符可以和該先前接收到的編解碼程式之版本識別符相比較。若有相符,則可以不需要從該裝置請求該編解碼程式。在區塊830中,如同以上的區塊710中,一來自該管理控制器的針對於該編解碼程式的請求可以在該裝置加以接收到。在區塊840中,如同以上的區塊720中,該編解碼程式可以從該裝置被傳送至該管理控制器。
110‧‧‧計算系統
120‧‧‧管理控制器
130‧‧‧指令檔處理引擎
140‧‧‧轉接器
150‧‧‧編解碼程式
160‧‧‧二進位通訊通道

Claims (15)

  1. 一種方法,其係包括:在一管理控制器接收一轉接器管理請求;在該管理控制器上執行內含在一轉接器提供的編解碼程式中的一指令檔,以轉換該管理請求成為一個二進位請求;以及在一個二進位通道上傳送該二進位請求至該轉接器。
  2. 如申請專利範圍第1項之方法,其進一步包括:在該二進位通道上,從該轉接器接收一個二進位響應;以及在該管理控制器上執行該指令檔,以轉換該二進位響應成為一轉接器管理響應。
  3. 如申請專利範圍第1項之方法,其進一步包括:根據該編解碼程式的一雜湊值以判斷該管理控制器係遺失該轉接器提供的編解碼程式;以及在該二進位通道上,從該轉接器接收該編解碼程式。
  4. 如申請專利範圍第1項之方法,其中該指令檔是一Lua指令檔。
  5. 如申請專利範圍第1項之方法,其中該管理請求是一JavaScript物件標記(JSON)請求。
  6. 如申請專利範圍第1項之方法,其中該轉接器提供的編解碼程式可以是從複數個利用相同的編解碼程式的轉接器中之其中一者來提供。
  7. 如申請專利範圍第2項之方法,其進一步包括:執行指令檔幫手功能,該指令檔幫手功能是由該管理控制器所提供,並且在一管理控制器本機環境中加以執行。
  8. 如申請專利範圍第3項之方法,其中從該轉接器接收該編解碼程式進一步包括:接收一和該編解碼程式相關的資源映射。
  9. 一種非暫態的處理器可讀取的媒體,其係於其上包含一組指令,當該組指令藉由該處理器執行時,其使得該處理器:實施一指令檔處理引擎,該指令檔處理引擎是用以執行由一耦接至該處理器的裝置所提供的一指令檔,該指令檔係從一第一格式轉換一命令成為一第二格式;接收一具有該第一格式的命令;以及利用藉由該指令檔處理引擎所執行的該指令檔以轉換該命令成為該第二格式。
  10. 如申請專利範圍第9項之媒體,其進一步包括指令,該些指令係使得該處理器:詢問該裝置以判斷該裝置提供的指令檔的一目前的版本識別符;判斷一處理器可存取的具有該目前的版本識別符之裝置提供的指令檔並非可供利用的;以及從該裝置接收具有該目前的版本識別符之裝置提供的指令檔。
  11. 如申請專利範圍第9項之媒體,其中該第一格式是一種二進位格式,並且該第二格式是一種JavaScript物件標記(JSON)格式。
  12. 如申請專利範圍第9項之媒體,其中該第一格式是一種JavaScript物件標記(JSON)格式,並且該第二格式是一種二進位格式。
  13. 如申請專利範圍第9項之媒體,其進一步包括指令,該些指令係使 得該處理器:實施指令檔處理引擎幫手功能,其中一指令檔處理引擎幫手功能係藉由容許指令檔執行的部分繞過該指令檔處理引擎而直接藉由該處理器來加以執行,以從該指令檔處理引擎卸載指令檔執行的部分。
  14. 一種方法,其係包括:在該裝置處,從一管理控制器接收一針對於一裝置提供的編解碼程式的請求,該編解碼程式係提供指令檔以藉由一在該管理控制器上的指令檔處理引擎來加以執行,該指令檔是用以從一第一格式轉換命令成為一第二格式;以及傳送該編解碼程式至該管理控制器。
  15. 如申請專利範圍第14項之方法,其進一步包括:從該管理控制器接收一版本識別符請求;以及響應於該請求,該響應係包含一版本識別符,該版本識別符係識別該裝置提供的編解碼程式的版本。
TW104102978A 2014-01-31 2015-01-29 供有指令檔以轉換命令的裝置 TWI564794B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/014194 WO2015116176A1 (en) 2014-01-31 2014-01-31 Device provided script to convert command

Publications (2)

Publication Number Publication Date
TW201533659A TW201533659A (zh) 2015-09-01
TWI564794B true TWI564794B (zh) 2017-01-01

Family

ID=53757562

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104102978A TWI564794B (zh) 2014-01-31 2015-01-29 供有指令檔以轉換命令的裝置

Country Status (3)

Country Link
US (1) US10402214B2 (zh)
TW (1) TWI564794B (zh)
WO (1) WO2015116176A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282267B2 (en) 2016-06-23 2019-05-07 Hewlett Packard Enterprise Development Lp Monitor peripheral device based on imported data
US10235074B2 (en) 2016-09-29 2019-03-19 Hewlett Packard Enterprise Development Lp Management processor executing peripheral device registration script
CN110192196B (zh) * 2017-01-25 2023-06-13 三菱电机株式会社 攻击/异常检测装置、攻击/异常检测方法和存储介质
CN108259500A (zh) * 2018-01-26 2018-07-06 郑州云海信息技术有限公司 一种rpc通讯方法、系统及装置
CN108446110B (zh) * 2018-03-14 2022-01-04 武汉斗鱼网络科技有限公司 Lua脚本生成方法、装置、终端及计算机可读介质
CN109032607B (zh) * 2018-07-25 2022-03-15 广州广知建信息科技有限公司 基于lua脚本的机房监控实时数据解析引擎及脚本调试工具

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659690A (en) * 1992-10-15 1997-08-19 Adaptec, Inc. Programmably configurable host adapter integrated circuit including a RISC processor
US20090063718A1 (en) * 2007-08-29 2009-03-05 Hitoshi Sekine Automatically generating capability-based computer peripheral device drivers
US20120030272A1 (en) * 2010-07-27 2012-02-02 International Business Machines Corporation Uploading and Executing Command Line Scripts
TW201224922A (en) * 2010-09-24 2012-06-16 Intel Corp Multiply add functional unit capable of executing scale, round, getexp, round, getmant, reduce, range and class instructions
US20130013830A1 (en) * 2011-07-08 2013-01-10 Huawei Technologies Co.,Ltd. Method for managing subnet in computer system, bus adaptor and computer system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529743B1 (en) * 1999-03-29 2003-03-04 3Com Corporation Universal wireless telephone to modem adapter
WO2009029919A1 (en) * 2007-09-01 2009-03-05 D2Audio Corporation Systems and methods for shadowing an hda codec
KR100928998B1 (ko) * 2007-12-12 2009-11-26 한국전자통신연구원 사용자 단말기에 멀티미디어 컨텐츠와 코덱을 제공하는적응적 멀티미디어 시스템 및 그 방법
US8145794B2 (en) * 2008-03-14 2012-03-27 Microsoft Corporation Encoding/decoding while allowing varying message formats per message
US8359415B2 (en) 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8271974B2 (en) 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
AU2008363368B2 (en) * 2008-10-27 2015-09-24 Sato Holdings Kabushiki Kaisha Label printer API using program scripting language
US8266301B2 (en) 2009-03-04 2012-09-11 International Business Machines Corporation Deployment of asynchronous agentless agent functionality in clustered environments
US9218219B2 (en) 2010-11-24 2015-12-22 International Business Machines Corporation Managing virtual functions of an input/output adapter
US9430452B2 (en) * 2013-06-06 2016-08-30 Microsoft Technology Licensing, Llc Memory model for a layout engine and scripting engine
CN105684409B (zh) * 2013-10-25 2019-08-13 微软技术许可有限责任公司 在视频和图像编码和解码中使用散列值来表示各块

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659690A (en) * 1992-10-15 1997-08-19 Adaptec, Inc. Programmably configurable host adapter integrated circuit including a RISC processor
US20090063718A1 (en) * 2007-08-29 2009-03-05 Hitoshi Sekine Automatically generating capability-based computer peripheral device drivers
US20120030272A1 (en) * 2010-07-27 2012-02-02 International Business Machines Corporation Uploading and Executing Command Line Scripts
TW201224922A (en) * 2010-09-24 2012-06-16 Intel Corp Multiply add functional unit capable of executing scale, round, getexp, round, getmant, reduce, range and class instructions
US20130013830A1 (en) * 2011-07-08 2013-01-10 Huawei Technologies Co.,Ltd. Method for managing subnet in computer system, bus adaptor and computer system

Also Published As

Publication number Publication date
US10402214B2 (en) 2019-09-03
US20160342435A1 (en) 2016-11-24
TW201533659A (zh) 2015-09-01
WO2015116176A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
TWI564794B (zh) 供有指令檔以轉換命令的裝置
US11385908B1 (en) Cloning of firmware configuration settings using rest over IPMI interface
US10860308B1 (en) Peripheral device firmware update using rest over IPMI interface firmware update module
CN108205442B (zh) 边缘计算平台
US11055082B2 (en) Unified update tool for multi-protocol network adapter
US8972615B2 (en) Communication with input/output system devices
US9003001B2 (en) Bios parameter virtualization via BIOS configuration profiles
US11277495B2 (en) System and method for providing microservice-based device control interface
US10853052B1 (en) Peripheral device firmware update using rest over IPMI interface firmware shell utility
US10572242B1 (en) Firmware update using rest over IPMI interface
US10628176B1 (en) Firmware configuration using REST over IPMI interface
US10284418B2 (en) Network switch management via embedded management controller using management information base (MIB) to JSON parser
US10489142B1 (en) Secure firmware integrity monitoring using rest over IPMI interface
US10754869B2 (en) Managing data format of data received from devices in an internet of things network
US10776286B1 (en) Rest over IPMI interface for firmware to BMC communication
US10013382B2 (en) Smart plug node management
US9811481B2 (en) Distributed intelligent platform management interface (D-IPMI) system and method thereof
US8970870B2 (en) Delivery of scan services over a device service port
US11216211B1 (en) Emulated block storage for devices
US9906604B2 (en) System and method for dynamic discovery of web services for a management console
US10320890B1 (en) Generating client applications from service model descriptions
US9832079B2 (en) Determining the topology of a network
US9811492B2 (en) System and method for providing internal system interface-based bridging support in management controller
KR20150087889A (ko) 클라우드 스토리지 표준 관리를 위한 프런트-엔드 어플리케이션 라이브러리 설계
JP2017004223A (ja) 通信システム