TWI391860B - 用於為硬體裝置產生固定大小韌體形象化描述之方法 - Google Patents
用於為硬體裝置產生固定大小韌體形象化描述之方法 Download PDFInfo
- Publication number
- TWI391860B TWI391860B TW094126372A TW94126372A TWI391860B TW I391860 B TWI391860 B TW I391860B TW 094126372 A TW094126372 A TW 094126372A TW 94126372 A TW94126372 A TW 94126372A TW I391860 B TWI391860 B TW I391860B
- Authority
- TW
- Taiwan
- Prior art keywords
- description
- firmware
- logical
- host
- hardware
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/64—Retargetable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Description
本案係有關美國臨時專利申請案第60/599,088號,申請日2004年8月4日,名稱「用於非預期/變動硬體環境之軟體及韌體調適技術」,且請求其優先權,該案內容以引用方式併入此處。
大致上本發明係有關電腦系統。更特別,本發明係有關用於非預期/變動之硬體環境之韌體。
典型電腦系統包括多個硬體裝置,各自需要被控制。此等裝置典型係由嵌入可微規劃之處理器之低階控制程式(偶爾稱做為韌體)控制。如此處使用,「電腦系統」一詞表示包括至少一部處理器之任何系統。如此根據本發明之具體例之電腦系統包括個人電腦、大型電腦、PDA(個人數位助理器)、及與系統操作有關之相關聯之周邊裝置及硬體組件。根據本發明之具體例之電腦系統可嵌入家電、機上盒、或任何其它裝置。周邊裝置可包括外部記憶體裝置諸如記憶卡、碟片等;視訊及音訊輸出入裝置;印表機等。硬體組件包括電源供應器、各型匯流排;風扇、碟片驅動器、感測器、快閃記憶體部件等。
韌體典型係儲存於非依電性儲存裝置,諸如快閃記憶
體,但本發明之具體例非僅囿限於此。反而韌體另外可儲存於唯讀記憶體(ROM)、非依電性RAM(NVRAM)等。
於大部分電腦系統,韌體係高度依其操作/控制之特定硬體裝置而量身訂製。如此,當硬體變動及/或硬體加至一電腦系統時,韌體通常也需要變更。本發明發明人首次實現發展單一韌體程式來處理且適應非預期/變動之硬體環境,而非每次電腦系統之硬體修改(增加、改變、去除、升級)時,即安裝新韌體或升級韌體。
為了提供大致通用之韌體,根據本發明之一方面,首先韌體裝置根據其整體功能來分類且通俗化。有有限數目之一般型別之周邊裝置(諸如電源供應器、風扇、碟片驅動器、感測器、快閃記憶體部件等)。其次,較佳區別裝置之實體面相與邏輯面相。藉此方式,可獲得或導出通用裝置之實體描述及邏輯描述。使用帶有相對應之實體描述之邏輯描述,可獲得完整硬體裝置描述。
使用各型裝置之實體裝置描述及邏輯裝置描述,可導出有關該特定裝置型別支援通俗化之一共通韌體原型。然後此原型經過參數化,來支援其可能被使用之多種實際裝置。首先,此原型之實作可被stub化,來實作一虛擬/不存在之周邊裝置(屬於該感興趣類型之裝置)。
辨識出之周邊硬體裝置之一般型別,反映出該指定之嵌入式軟體/韌體部件之期望之應用範圍。該部件例如可為於某種嵌入式微控制器上,實作某型硬體管理邏輯之部件。此種情況下,周邊裝置可能為感測器(溫度、電壓、電
流、底盤入侵等感測器)、風扇、LED(發光二極體等)。當然本發明非僅限於任何特定所辨識之周邊裝置集合。
如前文說明,周邊硬體環境之完整描述包括一邏輯描述及一實體描述(實體描述與相對應之邏輯描述配對來提供完整描述)。實體描述包括例如晶片上輸出接腳之數目及分配、某些資料之記憶體位置、各種時脈形式參數及時序形式參數、溫度形式參數等。
本發明係揭露一種對一用於多個組件環境而參數化之硬體裝置產生一固定大小之韌體影像之方法,該方法包含:提供該等多數組件環境之面相之一邏輯描述;提供該等多數組件環境之實體面相之一實體描述;關聯該邏輯描述與該實體描述;提供該韌體影像來包括多數參數化功能,來支援該硬體裝置於各該多數組件環境。
經由參照附圖研讀後文詳細說明將更了解本發明,附圖中若屬適當,使用類似之參考號碼及符號來標示不同圖中之相同、相對應或類似之組件,附圖者:第1圖顯示根據本發明之具體例之一種概念架構實例;第2圖顯示根據本發明之具體例之一種各面相之實作實例;第3圖顯示根據本發明之具體例之一種佈署架構實例;以及
第4圖顯示根據本發明之具體例之一種使用案例作流程實例。
後文詳細說明雖然舉出範例組件,但本發明非僅受此所限。雖然描述本發明之具體實施例,但本發明並非限於使用此種配置,而可用於處理系統內部之不同配置。除非另行特別陳述,否則如此處使用「包括」一詞為非排它性或限制性。
第1圖顯示根據本發明之具體例之概念架構實例。第1圖顯示組件體系之劃分成為一邏輯部分及一實體部分。第1圖顯示使用一共通內設/原型介面,以及使用一互補實體層面體系。邏輯體系與實體體系共同形成一指定組件原型例之完整描述。
為求簡明,第1圖刪除任何組件係由附屬組件之任意總成組成的情況。
本發明之各方面將以特定實施例-電源供應器做說明。熟諳技藝人士了解本實施例絕非囿限本發明之範圍,反而僅供舉例說明之用。
電源供應器屬於每個電腦系統之一組件及每個周邊裝置之一組件。此處使用電源供應器實例來舉例說明組件總成如何透過一特定內設/原型體系來影響用於寬廣範圍之(電氣)「電源供應器」組件。電源供應器有多種不同類別。某些具有自容式智慧型管理次系統,另外某些則否。某些電源供應器實際上為內部有多重電源供應器單元之電源供應器系統。特定電源供應器型別範圍寬廣。但根據本發明之具體例,全部此等特定型別之電源供應器皆可視為某種通用邏輯(電氣)電源供應器。例如考慮周邊裝置之電氣電源供應器。
通用方法使用邏輯及實體電源供應器描述加以參數化。原型對各個表現面相/方法/狹縫皆有彈性實作。如此處使用,「面相」定義為述及某種操作(執行期)表現,或述及某種屬性/性質/基準面數據(有關相對應之周邊硬體裝置之目前狀態)。較佳任何表現/方法/狹縫可彼此取代。根據本發明之具體例,一個邏輯實例可由(根據該感興趣之周邊裝置之體系)附屬邏輯案例之線圖組成。
需要任何指定之通用型別之介面來攜帶某些期望數目之軟體/韌體面相。如前文說明,周邊硬體裝置執行由風扇至感測器(具有各種遞增特化類型)之整個範圍,周邊硬體裝置包括LED、LCD(液晶顯示器)、數據機、NIC(網路介面卡)(或個別MAC/PHY晶片)等。
回頭參照某種電源供應器裝置實例,預期全部電氣電源供應器皆可支援下列邏輯面相:1.電源初始化(若無需任何工作,可能為「無工作」面相);2.電源資訊(呈某種資料格式之電源相關資訊);3.電源開(激活/啟動/轉開);4.電源關(解除激活/中止/關);5.電源復置;6.電源週期(典型為(a)電源開,(b)暫停,(c)電源關);及7.電源狀態(目前電源狀態)。
驅動於此等邏輯面相後方之實作邏輯之相對應之實體描述/實作提供如後,連同此等邏輯面相實作如何最終結合至實體電氣發訊介面之描述。用於本舉例說明目的,注意力焦點集中在後文預期電源供應器(次系統)各個面相之選擇串列。
為求說明簡明,將不說明某些、特殊及/或特定型別之電源供應器可能提供(或可能不提供)之進一步/額外介面面相(亦即特色/功能)。此外,此種限制可能促成可使用本特定體系模型化之電源供應器周邊之範圍。要緊地,本發明可克服任何更特定型別電源供應器模型之需求。
本發明通常要求描述(邏輯描述及實體描述)於嵌入式軟體/韌體部件之任何相關聯之周邊裝置(及/或主機)。當有相關聯之電源供應器(周邊裝置)時,嵌入式軟體/韌體部件需有某個邏輯電源供應器描述。以下為用來描述全部(電氣)電源供應器之特定邏輯體系之實例:.邏輯電源開信號(將電源轉開).邏輯電源開信號寬度(亦即持續時間).邏輯電源關信號(將電源轉關).邏輯電源關信號寬度(亦即持續時間).邏輯電源復置信號(電源復置).邏輯電源復置信號寬度(亦即持續時間).邏輯電源狀態(讀取目前電源狀態-真/假狀態).邏輯中斷請求(IRQ)型別(用於外部按鈕事件).邏輯中斷請求數目(IRQ區別器).邏輯中斷請求解譯(激活、解除激活或二者).<表現之邏輯描述器>(例如功能/方法簽章)所列舉之各描述屬性參數化<表現之邏輯描述器>。所列舉之各項描述屬性顯示(封包成)某個位元區塊(「BoB」-容後詳述)。<表現之邏輯描述器>之一實作舉例說明於第2圖。
如此處使用,各邏輯描述之結構慣例稱作為「體系」(單數)。「體系(schema)」(多數)及「體系(schemata)」(多數)用來表示某種體系集合(本實體描述電源供應器體系)。組合本實施例之電源供應器體系與用於其它周邊裝置之體系,允許更為全面性之周邊裝置體系之組成(或建立更為全面性之周邊裝置體系)。若周邊裝置體系係與主機處理支援組件體系組合,則結果可視為單數全面性嵌入式系統體系。
若邏輯描述面相之一無法由某種特定型別之體系來感測支援(罕見情況下可能發生),則一面相某種適當無害之實作來stub化。一典型stub經常可成功地用作為實作(一個stub為有用的內設實作)。根據本發明之具體例之各種體系允許某些面相為義務,而其它面相則為選擇性。此外,內設stub係用於大部分選擇性面相。若一指定描述刪除內設stub時,則應用內設數值。某些情況下,此項技術允許本發明來支援不可相容(特定)型別之電源供應器。明智地使用stub可迫使寬廣範圍之電源供應器符合體系期望。
全部周邊裝置皆可根據某種通俗化面相體系加以描述。各個邏輯型別之周邊裝置匹配此等通俗化面相樣板(於此處稱作為體系)之一。雖然使用之體系型別可有寬廣變化,但各應用內容最佳係由某種相對應最佳化之體系集合來進行。例如無需於未曾含括甚至單一電壓感測器之裝置/產品中支援電源供應器。
結果,可預先界定有限體系,其只描述對一指定(應用)內文適用(及/或預期)之該等硬體周邊裝置型別。可選擇含括額外體系來增加應用範圍(所得韌體/軟體「部件」)之應用範圍。選用體系之表現範圍映射至相對應之嵌入式軟體/韌體/主機部件之期望之應用範圍。
也可採用預定最大數目之邏輯周邊裝置描述例。雖然所選用之最大數目為任意數目,但本發明可讓此種選用之描述數目發揮槓桿作用。實際上,如此表示不同之嵌入式軟體/韌體部件可保有任意(但先驗)已知量之非依電性(NV)儲存裝置。選用之固定量係傾向於相對應於(以指定應用用途)所需之最大數目邏輯描述例(及/或實體描述例)。此最大值較佳係選擇夠大來涵蓋大部分/全部實體上可行之周邊裝置組配狀態。根據本發明之具體例,雖然儲存裝置之大小較佳為固定,但儲存裝置另外可動態配置。如此,嵌入式軟體/韌體部件可具有固定大小或可變大小。
熟諳技藝人士了解許可之最大描述例數目經常係隨與一指定韌體/軟體部件將嵌入其中之該產品相關成本之函數而改變。雖然額外非依電性儲存晶片可擴大操作主機硬體環境(用於嵌入式軟體/韌體部件),但此等額外晶片將造成成本的增加。
雖然本發明係以任意數量之動態配置之儲存裝置操作,但熟諳技藝人士了解本發明也可用於需要任意數目但固定數目之描述分錄之情況。本發明可使用緊密限制量之非依電性儲存裝置工作。若選用最大數目之描述例,則嵌入式軟體/韌體之可執行影像之佈局不變。選擇此種最大數目描述分錄之建立時間選項如此也構成本發明之具體例之一部分。
本發明之具體例經由所謂之「功能指標器」採用執行期結合,俾讓嵌入式軟體/韌體碼結合至任何指定周邊組件用之適當邏輯介面。通常遵照建立時間編譯器的呼叫慣例,藉此各個邏輯硬體組件描述供給一個把手(例如一記憶體位址)予一裝置型別/體系專一性資料結構。此種資料結構又映射至各種裝置描述專一性表現(功能指標器)。
根據本發明之具體例之邏輯介面經參數化。如此允許有關周邊硬體組件如電源供應器之邏輯類別之通俗化,且允許多種不同方式來與全部此等多樣化裝置通訊。
本發明之較佳具體例可將多個不透明位元呈實質自變
數/形式參數送至各個(以及全部)本發明之邏輯表現面相。發明人發現64位元至256位元間經常係足夠用於大部分實質自變數/形式參數(若積極使用緊密封包之位元欄位)。熟諳技藝人士當然了解位元之精確數目係依據該系統體系而定。
此種形式參數通過辦法允許本發明處理不同數目之及不同型別之表現(例如功能/方法)形式參數(例如功能/方法實質自變數)。當描述極為一般性構想例如電源供應器時,經常之情況為較為特定亞型之電源供應器需要大為不同數目之形式參數及不同型別之形式參數。替代重新編碼/重新規劃的需求,本發明採用一種基於原型之辦法。全部原型表現需有可交換介面及/或標準介面。
當對系統做改變時,嵌入式軟體/韌體部件較佳無需重建(亦即重新編譯/重新解譯)。嵌入式軟體/韌體部件須使用不等數目之介面實質自變數而直接工作。
舉例言之,假設於一特殊實作之一位元區塊為64位元。此等64位元典型被推送(經常呈機器字或雙重機器字)至與各個邏輯介面(於執行期)之祈求相關聯的功能呼叫(堆疊架構)上。此等64位元被解譯為不同數目之形式參數及/或不同型別之形式參數。其解譯方式係依據感興趣之邏輯體系決定。偶爾部分此等不透明位元係基於感興趣之體系之特定實體描述來解譯。第2圖顯示根據本發明之具體例,此等位元區塊可被支援之方式之實例。熟諳技藝人士了解有多種可能方式來實作本發明。不同程式語言執行期將有
利於不同實作。第2圖顯示使用C程式語言於一(可能固定大小的)操作區塊內部實作該共通原型之一種方式。
雖然若干微處理器可直接支援64位元機器字,但使用之不透明位元之確切數目為任意。係依據本發明適用之系統體系決定。該辦法用於任何數目之位元之效能同等良好。有需要時,可擴大通過之不透明位元數目(至用於任何特殊嵌入式軟體/韌體部件之體系之全部描述的面相)。熟諳技藝人士了解位元區塊較佳為非典型。
與使用之位元數目無關,用於本發明之較佳具體例,位元數目對依指定部件而言較佳為常數。於本發明之若干較不佳具體例中,可使用不等數目之位元,但如此將增加系統的複雜度。於該位元區塊有固定數目之不透明位元,各個且每一個表現面相經常係有單一標準位元區塊實質自變數。此乃實作表現面相(或狹縫)的獨特機制及方法。如此,部分區別描述面相與尋常功能、尋常目標方法等。
返回參照電源供應器實例,下表(表1)說明將所描述之電源供應器(邏輯)構想映射入(不透明)位元區塊之實例。
為了最佳化現有實作,可使用多項技術來將不等數目及不等型別之實質自變數/形式參數壓縮成一位元欄位序列(緊密/有效地)封裝入位元區塊。為了完全標準化獨特介面面相簽章,若干本發明之具體例採用某種通用介面面相其可回送數值(稱作為「狀態」數值)。此外,根據本發明之具體例之系統較佳係使用遵循功能來實作狀態/屬性/性質存取各面相(所謂之「獲取器」及「設定器」),及表現之各面相。
至目前為止已經說明邏輯描述辦法(透過遵循某些特定體系慣例之特定體系之邏輯描述辦法)。如此證實各種原型例。各例表示一種周邊硬體裝置。
雖然本新穎機制/方法可應用於任何方式,但電源供應器實例顯示其如何支援極為大量電源供應器型別的表示內容。該電源供應器型別之邏輯介面已經以簡單均勻且符合一致之方式參數化,例如使用不透明位元區塊參數化。本發明可讓固體軟體/韌體影像使用任何與任一種體系案例相關聯之介面面相。各種體系表示極為寬廣範圍之周邊裝置(於周邊裝置體系內部之周邊裝置)。此等機制及相對應之方法可提供恆定且一致之方式來將一實作結合至所述面
相。
至目前為止,已經描述位元區塊為不透明。電源供應器實例現在用來舉例說明本發明之其它機制及方法如何支援真實事件電源供應器習性。
位元區塊實質自變數/形式參數關聯符合小(電源供應器)若干指定邏輯體系/實體體系之陳述的/暗示的要求/意圖之特定面相集合。注意力焦點首次集中電源供應器體系要求之邏輯面相。此邏輯描述摘述出電源供應器必須支援之電源供應器面相/介面集合。相關聯之電源供應器體系決定如何解譯位元區塊。一旦已知係處理電源供應器描述案例,則位元區塊可被解譯。了解電源供應器內文(對某個指定位元區塊例而言)之邏輯,位元區塊並非不透明。
位元區塊之各個巢套區段的解譯可跨通俗化/特殊化型別階層而建立。為了維持該實例的簡單,假設如一般情況所常見,各個特化(葉片)型別(例如電源供應器)可就此處理整個位元區塊。例如,甚至更一般標記之周邊裝置(型別種類)也無法對位元區塊的解譯加諸任何額外慣例。
於該實施例中,該型電源供應器宣告且加諸其本身之特殊位元區塊解譯(詳述如上表1)。本位元區塊內部實際使用數值描述存在於通用/大類/電源供應器之各種特定型別間的多像可能差異。假說之電源供應器之樣本只顯示於表1。
電源供應器裝置可能有電源控制脈波寬度之構想(其它周邊裝置不可能有的構想)。電源開/關控制是大部分其它
型別之(周邊)裝置於構想上為徹底外來且不適用之構想。例如感測器(一般型)或溫度感測器(特殊)典型不具有任何「電源開/關」控制構想。電源開/關表現、相關之電信號脈波寬度也不適用於一般(周邊)裝置。此外,特定電源供應器亞型要求不同的電源開關電脈波控制。
電源供應器例也要求對任何特定電源供應器介面有不同的特定佈線選擇。如此將依據該電源供應器例是否位於某種指定系統/產品內部決定。系統/產品如何佈局將決定其主佈線/接腳如何用於任何此種電源供應器之開關信號(經歷任何寬度或任何時間)。何種佈線必須用於信號(脈波)屬於分開實體層面事項,且描述於實體體系。
於多個物件導向之系統中,可能有一類別來表示各個此種特定型別之電源供應器。各個此種類別例將承繼電源開/關脈波寬度成員(性質/屬性),但各類別需要不同方法邏輯來處理可用於任何指定電源供應器之多樣化佈線/介面。本發明可無需如此。若未使用本發明,則經常可能需要快速增加的個別電源供應器型別/類別數目。
大部分其它軟體系統(例如物件導向之程式語言)基於類別/型別定義而通俗化。此種基於型別之通俗化對該類成員之型別及該類方法之簽章敏感。一類別方法簽章可包括該方法之回送值型別、方法實質自變數數目及各方法實質自變數型別。使用本發明,宣告經過裁減之原型實作所描述之各面相。例如位元區塊等技術讓全部面相簽章可互換
因而免除大部分亞型之需求。
該位元區塊為一解譯為亞型特異性(亦即各個亞型發表其本身之位元區塊格式)。如此允許一致之介面以不同數目之實質自變數及不同型別之實質自變數來工作。如此根據本發明之具體例之原型體系可組成例如(周邊)裝置體系。如此提供遠更有彈性種類之處理/規劃之一般化機制。
此種更具有彈性之處理/規劃之一般化允許形成固定軟體/韌體影像,其可條件式結合同時支援任何數目之特定周邊裝置。無需載入(或聯結)新的裝置特定碼。使用本發明之系統無需任一種再啟動、重新開始或甚至重新初始化。甚至固定部分(對動態硬體環境而言之固定部分)之執行期調適也變得相當實際。對(通常周邊裝置)體系宣告(或增加)之資料做少數簡單改變即足。由另一方面而言,描述體系例之集合(亦即根據本發明之具體例之體系)可讓周邊裝置支援驅動整個資料。
就執行例而言,電源開關脈波寬度100毫秒為常見/內設值。更長或更短的脈波寬度為某種特殊型別之電源供應器所需。本發明可處理全部此等變化。
根據本發明之具體例,單一固定軟體/韌體影像可包括大量多變化之極為特定型別之實作(因品牌、製造、型號等而各異)。若干固定邏輯可操作相當一般性例如(周邊)裝置之案例,某些可操作略微較不普及例如電源供應器裝置之案例,而發明人之固定影像中又有些邏輯可處理極為特定之型別,例如極為特定之模型/裝置(例如「ACME電源供應器型號12A於FOO型號2500伺服器電腦」)。
由於該等體系之超一般化性質(例如電源供應器),本發明提供獨特之處理/程式規劃之擴充性。可更容易且更強力地加入新穎型別。體系慣例(亦即介面合約)遠較不具限制性。由於個別原型體系較為一般性,故新穎型別較為經常遵循既有邏輯且與既有邏輯互動操作。既有邏輯只對遠較鬆散的原型體系介面敏感(如由更一般性之體系形狀公佈之體系介面)。本發明提供史無前例之擴充性(亦即量身訂製性)之層面。
經常,類似邏輯描述表對任何體系型別(例如電源供應器等)有固定尺寸之分錄。邏輯描述例/分錄表示一體系例(例如周邊裝置)。固定軟體/韌體影像使用面相介面用於各個所列舉之體系案例(例如用於電源供應器之體系案例等)。於任何指定體系型別(例如電源供應器)案例間可有極為實質差異(幾乎為任意差異)。如此,所描述之多個面相機構為間接且不透明。不同的特定電源供應器案例可關聯獨特之介面面相集合。於尋常物件導向之規劃系統中此種不同案例將要求不同的電源供應器亞型。使用根據本發明之具體例之基於原型之描述慣例,特定面相體系可結合至完全不同碼。實際上,可結合之特殊亞型實作邏輯而不要求任何亞型型別。根據本發明之具體例之原型體系是一種且為唯一的通用執行緒。
此種通用執行緒於使用類似位元區塊等機制可維持彈性。於一體系內部之全部面相簽章皆共享某種獨特之位元區塊。位元數目對整個體系為固定(如此對該等體系內部之每個體系也是固定)。同時,此等保留位元之使用/解譯具有體系專一性。
此等位元之解譯係依據該原型體系之種類決定。實作者選擇何時宣告/定義新的原型面相體系(亦即實作者增加/宣告新體系案例)。如此,實作可透過獨特之面相體系(亦即經由選擇導入獨特體系至該等體系)、或透過獨特形式參數值/性質數值(亦即經由對既有體系例改變邏輯描述值)而可將裝置差異模型化。
至目前為止發明人已經說明周邊硬體環境之宣告邏輯描述之用途。也需要(周邊硬體環境)相對應之實體描述。該實體描述係與相對應之邏輯描述配對來完成一項描述。
返回電源供應器實例,假設有特定型別之電源供應器在使用中。為了舉例說明經常要求之多種實體描述,假設此電源供應器係經由某些通用輸入/輸出接腳(於某些主機晶片/硬體上可得)加以控制。進一步假設有第二電源供應器為第二經常性開之嵌入式可管理之次系統所專用之第二電源供應器。另外,第三電源供應器例為不斷電電源供應器(例如藉電池驅動)。
雖然第二電源供應器例類似第一例,可直接接線至主機(運算)平台,但第二電源供應器例可能有相當差異。於邏輯層面,第二電源供應器絲毫也不處理系統(電路板)的中斷。可能不知曉前面板按鈕事件,可能使用不同導線/接腳而連接至主機/運算平台,可能使用不同的電信號脈波寬度(及/或觸發慣例)。
根據本發明之具體例之單一固定軟體/韌體影像恰如同於指定體系內部之任何其它差異般容易,軟體/韌體影像可處理此等實體組態差異。如同(前文討論)之體系差異,本發明免除為此等實體/佈線層面差異來改變軟體/韌體影像。本發明甚至可因應變化中的硬體環境(例如熱調換)而未做任何軟體/韌體影像變動。
為了因應若干前文說明之電源供應器之實體面相,本發明將邏輯周邊裝置(例如各個電源供應器)之各種案例與運算/主機硬體(例如基於特殊應用電路-ASIC之微控制核心)(或存取)之各項特色關聯。某些周邊體系例如電源供應器之體系具有必須關聯埠或接腳(或若干此等實體上分開之硬體位元)之多個面相。其它周邊體系例如風扇則需要關聯風扇測速器電路(用於風扇速度的讀取)及其它硬體位元(例如用於風扇速度控制的脈波寬度調變器電路)。與電源供應器相反,風扇既未關聯運算/主機埠,也未關聯運算/主機接腳。
本發明透過(前述)位元區塊來支援此等內容敏感之關聯(體系對體系相依性/委派關係),俾便維持跨整個(系統)體系之內文敏感細節的符合一致。如前文說明,本位元區塊具有可藉特定體系(例如電源供應器)改變之解譯(亦即格式)。特殊(原型)體系指示該介面面相。如此指示何種位元區塊解譯將於本體系內文。
除非邏輯知曉有關目前體系,否則該位元區塊為徹底不透明。於任何嵌入式韌體/軟體影像找到的許多碼將操控任何此種位元區塊恰如同另一個位元集合般。唯有特殊體系邏輯,例如面相實作邏輯有嵌入任何特殊體系知識。唯有特殊體系邏輯才可正確解譯該位元區塊。此種特殊體系資訊/知識的隱藏相當重要。迫使環繞於一(原型)體系內部之各個(原型)體系有強力模組邊界/封裝邊界。
位元區塊數值也可因體系而異。此種特殊體系值稱作為反射值。其可反映及/或表示全部指定體系案例之共通資訊。每個位元區塊之一部分可能要求符合某些包圍之更為一般性體系之全部次體系。此種遞歸巢套之次體系(原型階層關係)被視為本發明之一部分。最常見,位元區塊值對各特定體系例而改變。如此單純反映出可最佳描述該感興趣之體系例之特殊性質/屬性數值。
再度參照操作電源供應器實施例,多個電源供應器將使用某些位元例如來識別具使用何種運算/主機埠或接腳。為了讓該例變簡單,也非限制本發明之範圍,發明人之注意力此處係集中在透過運算/主機ASIC接腳通訊之電源供應器之體系例。此種接腳帶有俗稱為通用目的輸入/輸出(GPIO)信號。用於(邏輯)GPIO信號之附屬體系可描述傳統單一位元GPIO接腳及案例,此處邏輯GPIO信號係使用多個GPIO接腳輸送(呈匯流排之原始形式)。此種GPIO接腳集合可作為所謂之位元撞擊匯流排。為了維持本實例的簡單,GPIO匯流排旗標設定為偽。換言之,實例電源供應器(案例)將使用簡單(邏輯)GPIO信號。如此讓全部GPIO匯流排相關之位元區塊形式參數變成不具實質意義(至少對本電源供應器特定例而言不具實質意義)。同樣顯示此等GPIO匯流排相關參數(於下表2),來舉例說明經由應用本發明所得之特殊體系。
表1顯示描述某個電源供應器之位元區塊之形式參數。該電源供應器使用多個邏輯輸入/輸出信號。稱作為通用目的輸入/輸出(GPIO)信號。表2舉例說明此等邏輯GPIO信號之一亦即GPIO信號# 4本身如何被描述。表2包括參照邏輯GPIO接腳(與純粹邏輯GPIO信號相對)。
電源供應器之邏輯描述(體系)係依據GPIO信號之一或多邏輯描述(體系案例)決定。藉本實例描述多種體系對體系相依性/委派關係。發現某些GPIO接腳之實體面相也描述於表2所示之該位元區塊。此等GPIO接腳之實體面相係與邏輯GPIO信號之描述交插(於表2所示之位元區塊)。例如負邏輯屬性、初值屬性及開放汲極屬性實際上皆為GPIO接腳之實體屬性(而非邏輯GPIO信號之邏輯面相)。
雖然此種邏輯/實體交插(由於各種理由故)經常進行,但不會改變本發明之邏輯描述相對於實體描述配對之性質。也不會改變二者的概念分離。例如,表2所示邏輯GPIO接腳數目(顯示為0x60)映射/關聯實體ASIC接腳數目(於本特定實作範例湊巧為78)。邏輯GPIO信號描述與實體GPIO接腳描述間有一對一之身分映射。各個GPIO接腳/信號屬性出現位置跨此種一對一(身分)映射無關。此種描述面相之交插係與邏輯-實體嚴格分離相同。
結果,有多項因素主控交插(各個描述面相)與(各種描述面相)分離間之實作選項。例如,電源供應器之不同的製造/型號可能需要不同的GPIO信號脈波寬度。雖然電信號脈波寬度確實是一種實體面相,但可方便地關聯分開之邏輯電源供應器描述。需要由該處來獲得實際使用之實體描述。可能不希望對接腳設定單一靜態電信號脈波寬度。雖然罕見,但不同的邏輯GPIO信號可單獨藉脈波寬度來區別。
雖然本發明涵蓋全部此等精製修飾,但基本結果維持不變,亦即邏輯描述與實體描述配對來形成一指定周邊裝置(例如電源供應器)之完整宣告描述。
熟諳技藝人士即刻了解其它類別之周邊裝置例如風扇之體系也可以類似方式達成。例如風扇係使用於位元區塊內部之某些位元來識別何種邏輯GPIO信號將提供測速器信號,將使用何種邏輯脈波寬度調變(PWM)電路(用於一指定風扇案例)等等。如同電源供應器之實施例,邏輯GPIO信號係映射至實體GPIO接腳(或映射至位元撞擊匯流排)。
最後,適合一邏輯體系之各個案例之實體描述係由邏輯描述值明白參照。最常見使用之實體描述(用於任何指定邏輯描述之周邊裝置案例)係由位元區塊決定。
於某些方面,使用本發明辦法來宣告描述組成該硬體環境之周邊裝置,本發明提供一種主機硬體環境之宣告描述。例如多個嵌入式韌體/軟體主機大致上為嵌入多個特殊用途電路之ASIC。此等電路可能實作例如即時時鐘、亂數產生器、UART(統一異步接收器發射器)或任何其它此等功能。各個積體次電路可視為一個周邊裝置特定亞型。此種情況下,彷彿此種電路指示另一個周邊體系而應用根據本發明之具體例之邏輯描述及實體描述。
如同周邊裝置,某些特殊主機硬體環境(用於嵌入式軟體/韌體)中,不存在有某些ASIC電路將同樣也不存在有某些相對應之周邊裝置。同種(宣告)描述技術可指示此等不存在(對主機ASIC電路不存在,或某些相當之周邊裝置為不存在)。
實際上,對例如非依電性儲存裝置導入邏輯體系。如前文說明,此等邏輯描述隨後映射至相對應之實體描述。例如實體描述可將非依電性儲存裝置置於主機ASIC,而另一實體描述則將非依電性儲存裝置置於某個非於晶片上之快閃記憶體部件。總而言之,於邏輯上指示非依電性儲存裝置。全部此等邏輯上之非依電性儲存元件將共享某些面相。根據本發明之具體例,固定影像之嵌入式軟體/韌體將透過相同之邏輯非依電性儲存裝置面相(介面)來操作非依電性儲存裝置之各案例。固定式影像之嵌入式軟體/韌體之某些部分將藉實體描述中找到之細節來參數化。該部分將隱藏晶片上非依電性儲存裝置與非於晶片上之非依電性儲存裝置間之差異。於非於晶片上之非依電性儲存裝置硬體(所謂之「快閃」部件)中找到的大量差異也被宣告描述,如同於電源供應器實施例中所描述之案例型樣來宣告描述。
大部分嵌入式軟體/韌體部件邏輯只依據原型體系之面相決定,而非依據實體描述之邏輯描述細節/數值決定。同樣地,大部分嵌入式軟體/韌體部件邏輯與任何實體描述細節/數值無關。只有原型體系面相為可見。幾乎全部嵌入式軟體/韌體皆可將位元區塊視為不透明來處理。唯有較低層面實作邏輯之聚焦部分最終切換成為適當邏輯(基於感興趣之邏輯描述及/或實體描述細節)。
嵌入式軟體/韌體主機硬體環境之宣告描述提供一種新穎程度之攜帶性。如此,本發明可達成獨特之攜帶性程度,而無需對韌體/軟體影像做任何改變(推定微控制器核心具有指令集類似性,預期會出現於跨一家族/一線ASIC)。第4圖顯示根據本發明之具體例發揮固定式韌體/軟體影像攜帶性之槓桿效果之一種可能的使用例。如第4圖所示,單一可能為固定尺寸之嵌入式軟體/韌體部件影像可對多種產品量身訂製。最初形成固定式韌體/軟體影像(「設計產品步驟」、「安裝步驟」及「諮詢步驟」)。諮詢步驟係用來覆閱與資訊韌體/軟體規劃指南(API文件等)。當此等步驟完成時,系統經實作,接著為「編譯、鏈結、測試」步驟(若有所需可重複進行)。典型地,此週期視需要而重複多次來獲得預定可執行之影像。
初始步驟較佳只進行一次。「增加」(或編輯)描述步驟則對各個目標產品進行一次。本發明之具體例允許此步驟自動化,獲得真正可現成再度使用一韌體/軟體部件。最末描述步驟係涉及該部件載入一個或多個目標產品。大致上本步驟為包括可再度使用之韌體/軟體部件之最終成品總成。
下述實施例描述本發明之各方面用於一指定微控制器核心之操作。如上所示,於實體層面,於任何指定ASIC(為ASIC晶片底側之實體接腳)有摘要(例如通用目的輸入/輸出(GPIO)接腳)。於任何特殊主機晶片上,一個(或多個)此等接腳可直接用於一邏輯GPIO信號。偶爾並無足夠接腳可用於全部多種需求(嵌入式韌體/軟體影像之需求)。一項解決之道係限制邏輯GPIO信號描述數目(如此,減少對偶之實體GPIO接腳描述數目)。此種辦法造成固定影像犧牲特色及功能,俾便符合主機ASIC之限制。對適當描述做簡單改變即足。
另外,某些產品設計師(或電路板設計師)可能採用非於ASIC上之接腳擴充器機制,此乃一種分開晶片/部件(第二互補晶片)。連同一次主機晶片,此擴充器晶片變成操作主機硬體環境之整合一體的一部分。此種複雜度被導入本實例來舉例說明本發明如何單純擷取此等多樣化之主機硬體環境細節。此外,本發明允許如此進行,而無需對指定韌體/軟體影像做任何變更。
回頭參照電源供應器之執行例,如前文說明(表1及表2),電源供應器使用某種主機ASIC接腳來實作各種邏輯GPIO信號。此等信號用於實作一個邏輯面相,以及「電源開」的表現。其它GPIO信號(及相對應之GPIO接腳)係用來實作其它邏輯表現面相。
發明人於前文說明電源供應器體系如何映射邏輯GPIO信號至實體GPIO接腳(某個特殊主機ASIC上之接腳)。現在則說明邏輯GPIO信號如何映射至邏輯匯流排。GPIO信號集合(及其相對應之GPIO接腳集合)可共同用來影響一「位元撞擊」匯流排。若干接腳擴充器晶片係以此種方式工作。例如,四個GPIO信號可編碼至多16個(24)不同的信號組合。此種情況下,表2列舉之GPIOBusFlag為真,故表2之GPIO匯流排相關屬性並非假設。
如此可知使用位元區塊之描述作用。可用來描述一系列簡單GPIO介面。可用來描述哪一個實體ASIC接腳將用來描述(對各種GPIO信號而言)哪一個實體ASIC接腳將用於該電源供應器。可用來描述多個GPIO信號如何共同用來形成粗位元撞擊匯流排介面(介接至電源供應器,或介接至本身接線至電源供應器之非於晶片上之接腳擴充器)。
電源供應器原型體系具有通俗之內設實作。此實作邏輯驅出位元區塊內容。若內設表現不適合用於某些特定電源供應器,則各個表現面相可以其它表現替代(可視需要用於電源供應器體系)。單純編輯至原型體系可替代任何內設原型表現。
嵌入式軟體/韌體中只有少數分開的重要的位元需要知曉此特殊位元區塊解譯相關之任何內容。與該電源供應器體系相關聯之全部邏輯形成一個自然模組。此模組只含有需要知曉該位元區塊如何解譯(用於電源供應器體系案例)之邏輯。雖然本發明之某些應用想要動態載入模組,但指定範圍之預定應用可映射至某個固定模組集合。此種模組可前置載入固定尺寸之可執行影像。一旦如此進行,則全部只需要對描述區塊做宣告變更(參考第3圖)。此種固定大小之可執行影像變成可再度使用之軟體/韌體部件。
第3圖說明根據本發明之具體例之佈署架構。本圖說明本發明應用於嵌入式韌體部件。本特殊韌體部件具有固定大小韌體影像之特色,該影像劃分成為三部分(可能為固定大小部分):啟動區塊、描述區塊及操作區塊。
如第3圖所示,根據本發明之佈署架構包括一組配用具、一主機、及一選擇性之描述性倉儲。組配用具用來描述主機ASIC及周邊裝置(例如用於某些完整產品線),於產品組裝後組配一部件(注意該部件係組配而非量身訂製)。主機(ASIC等)包括一描述區塊及一啟動(影像)區塊。描述區塊含有邏輯描述及實體描述,且描述主機ASIC及周邊裝置二者。可預先分配固定量之儲存裝置(來形成所謂之固定影像韌體/軟體「部件」);或可動態由一匯集部(可包括或可未包括非於晶片上/二次儲存裝置)動態分配儲存裝置。主機宣告已知體系型別(自我描述)。啟動區塊為一固定影像,啟動區塊呼叫所描述之/參數化之初始化器(特別係用於各個存在的周邊裝置),以及視需要來媒介且安裝韌體與軟體的更新。一操作區塊為透過描述而參數化之一固定影像。
動態探索監視器(DDM)可用來與集中式描述協力合作。本發明之若干具體例中,DDM連續檢測周邊裝置,激活或上載描述及/或監視周邊裝置的存在。
選擇性之描述倉儲描述(已知/支援)之主機ASIC之範圍;(已知之/支援之)周邊裝置之範圍,以及然後(例如基於DDM探索新裝置)而應需供給所需要的(實體/邏輯)描述。
邏輯描述集合/容器/表係用於描述主機/ASIC處理支援平台(用於某些軟體/韌體部件)。各個描述(區塊分錄)係與若干相對應之主機ASIC電路/次系統之案例相對應。邏輯描述之類似集合/容器/表通常對各個周邊裝置皆存在有類似之邏輯描述之集合/容器/表。此等邏輯(及相對應之描述)共同組成該描述區塊(參考第3圖)。
通常ASIC電路/組件系統與周邊裝置/組件系統間之區別不夠精確。如此可相當自然地統一此等描述性質。本發明同等適用於主機及周邊裝置支援需求。
再度,邏輯實體主機描述於概念上不同。邏輯主機面相/組件描述供給最終可映射至某些已經命名/經識別之實體描述之數值。如同周邊描述,任何一對一之邏輯對實體身分映射,讓兩種描述可交插。如前文說明,典型係為實作之方便而進行。可對ASIC電路/組件系統形成原型體系,例如亂數產生器、UART埠、非依電性儲存裝置、測速器電路、脈波寬度調變器電路等。此種原型體系之集合組成一主機體系,該主機體系當組合一周邊裝置體系時形成一(主)系統體系。
注意主機(ASIC)及周邊(裝置)描述可被混合及匹配。例如個別周邊體系混合與匹配,可對某些(特定供應商)之產品線定義一周邊裝置體系。至於進入本產品線的新模型,則可常規的重複使用相同周邊裝置體系。可重複使用或可未重複使用相同主機體系。主機體系可與周邊裝置體系獨立無關地抽換。
熟諳技藝人士即刻了解,多種其它有用的體系群可能受影響。除了大小限制之外,根據本發明之具體例,固定大小之可執行影像(對各種主機及各種周邊裝置),可支援全部(或極大量)個別原型體系。實際上(有關經濟方面)帶有未使用之體系(超過某個程度)難以證明為適當。此外,可執行之影像本身具有主機指令集相依性(亦即依據微控制器處理核心例如H8、ARM等決定)。
本發明提供一種系統,其中對任何嵌入式韌體/軟體部件更換(特別為跨一選定產品線之更換)罕見有任何需求。主機硬體可經設計,然後層疊上所需軟體/韌體部件。無需重新編譯,無需重新初始化,也無需對嵌入式韌體/軟體影像做任何執行期變更(無重疊改變、無動態鏈結、無動態載入等)。單一固定軟體/韌體影像可用於跨某個範圍之主機硬體,以及用於跨某個範圍之周邊裝置。產品線設計師將其嵌入式韌體/軟體部件之應用範圍匹配至其產品線計畫。如此大為加速該部件的整合,大為縮短新產品模型的上市時間,同時大為降低品質保證成本。此外,如此可支援於現場(透過少許描述宣告)可支援多項/大部分硬體變更。實際上,對硬體變動之調適技術可完全自動化(透過動態探索監視器而完全自動化,參考第3圖)。
實際上,主機硬體環境(於執行期)罕見有動態變動。一旦產品出貨,則主機硬體環境典型為固定。若軟體/韌體主機為ASIC(晶片),可能甚至係固定連結至一片印刷電路板(PCB)。雖然罕見,但ASIC可改變。例如,互補支援晶片可駐在等候容座。主機ASIC晶片本身可於容座內。如此表示也可接受現場升級。另外,主機可於卡片(亦即擴充卡、夾層卡、匯流排卡等)上。此等也可動態增加、去除、調換等。
另一方面,周邊硬體環境變動較為平緩。例如工作負載承載(生產線/CPU)卡(例如blade)常被增加/移除;夾層卡插槽/標頭可以選擇性之硬體產品填補;碟片驅動器可增加可去除等。
如此,若干具體例中,本發明經由對有需要之描述區塊提供自動化變更而改變周邊硬體環境(參考第3圖)。特別若干具體例中,本發明支援變動與相關更新的探索。於本內文,探索涉及檢測硬體環境的變動。熟諳技藝人士了解有多種方式可實作探索。大部分探索技術對特定硬體環境而言皆極為特別。例如某些硬體設計為可提引出某種形式的異步事件(透過某些中斷線、I2C匯流排訊息或某種其它形式的輸入來提引出)。(I2C(Inter-IC)匯流排為提供積體電路(IC)間之通訊鏈路的一種雙向2導線串列匯流排。)此種異步事件所宣告之硬體變動之命名/識別上有某些命名/識別慣例。
無論如何進行探索,本發明提供藉單純激活/解除激活不同周邊裝置描述而提供可定址所探索之變動之能力。另外,若干具體例中,本發明可由遠端來源(例如透過網路,透過串列埠等)獲得所需周邊裝置之描述。根據本發明之具體例之動態探索監視器(DMM)顯示於第3圖。
描述變動的本身可能觸發相關邏輯,其典型係採用某些事件-條件-動作(ECA)觸發機制/方法。就某些方面而言,本發明之具體例包括形成所謂之邏輯/實體描述之「活性」倉儲之選項。如此獲得活性描述區塊(參考第3圖)。再度,可未對固定式軟體/韌體影像之本質/大小/佈局做任何改變而進行。無需動態鏈結或動態載入新軟體/韌體。也無需軟體/韌體的再度初始化。
該位元區塊可視為類似於一個指定體系內部可呈現之位元區塊(64-256位元或以上)之全部不同資料結構的一個不透明單元。該位元區塊之佈局/內容係依據使用之邏輯/實體描述體系而定。面相邏輯(由獲取器/設定器至操作表現,例如電源開/關/循環)經常性應用至某個體系(該等體系內部的某個體系)。由於面相邏輯了解有關其體系所做的假設,故於執行期,面相邏輯可適當編排其接收之位元區塊。
大部分邏輯比面相邏輯更高階,表示大部分邏輯將該位元區塊視為不透明。大部分邏輯只將指定例之相對應描述細節/數值饋入該等面相中作為位元區塊。大部分邏輯並不知曉如何解譯/使用此一位元區塊。如此表示該位元區塊經常為不透明。但特殊面相邏輯確實了解該位元區塊如何佈局(因而了解如何解譯/使用該位元區塊)。
本發明之各方面可視為一種具有原型(而非型別)之巢套/階層關係宣告描述多個實體之方式,連同讓全部原型狹縫/面相介面變均勻/一致(於一指定之過曲體系中為均勻/一致。於一指定體系內部,某些位元數(例如64、128或256)經常被送至全部原型化表現/方法/功能作為通用/單一實質自變數。
一型別與通常為不透明之區塊之結合延遲,通過執行期初始化,一路前進至特殊體系、體系面相實作模組之載入點。此種型別與位元區塊之結合每次於此模組載入時皆重複進行。藉此方式經由延遲結合,本發明提供一種可大為擴充宣告(原型化)體系之表示範圍。如此又允許根據本發明之具體例,資料驅動韌體/軟體邏輯可有遠更寬廣之應用,其又讓單一固定尺寸韌體/軟體影像遠更有彈性/應用性/價值。
雖然已經參照特定具體實施例及實施例說明本發明,但顯然易知可未悖離如申請專利範圍陳述之本發明之廣義精髓及範圍,而對此等具體例做出多項修改及變化。如此,說明書及附圖須視為舉例說明而非限制性。
第1圖顯示根據本發明之具體例之一種概念架構實例;第2圖顯示根據本發明之具體例之一種各面相之實作實例;第3圖顯示根據本發明之具體例之一種佈署架構實例;以及第4圖顯示根據本發明之具體例之一種使用案例作流程實例。
Claims (17)
- 一種對用於多數組件環境而參數化之硬體裝置產生固定大小通用韌體形象化描述之方法,該方法包含下列步驟:提供該等多數組件環境之面相之一邏輯描述;提供該等多數組件環境之實體面相之一實體描述;使該邏輯描述與該實體描述相關聯;提供該韌體形象化描述來包括多數通用參數化功能,來在各該多數組件環境中支援該硬體裝置之面相,各個該多數通用參數化功能支援於各個該多數組件環境中之該硬體裝置之該面相之至少一者;其中對該等通用參數化功能之至少一者的一真實引數為一固定大小非典型區塊之位元,其解譯係對上下文敏感;其中對該固定大小非典型區塊之位元之解譯係由一特定通用參數化功能依據特定地該組件環境之該邏輯及實體面向來進行;其中對該等參數化功能之真實引數係於執行期結合。
- 如申請專利範圍第1項之方法,其中該硬體裝置係選自包含下列項目之組群:電源供應器、匯流排;風扇、碟片驅動器、感測器、及快閃部件。
- 如申請專利範圍第1項之方法,其中各個位元區塊係具有相同固定大小。
- 如申請專利範圍第3項之方法,其中各個位元區塊長度為介於64位元至256位元之間。
- 如申請專利範圍第1項之方法,其中該韌體形象化描述包含:一操作區塊,其包括用於該硬體裝置之摘要裝置驅動器介面;以及一描述區塊,其包括該邏輯描述及實體描述。
- 如申請專利範圍第1項之方法,其中對各該參數化功能之該真實引數係於執行期編排成一執行期上下文決定類型。
- 如申請專利範圍第6項之方法,其中該類型大小係小於或等於該位元區塊之固定大小。
- 如申請專利範圍第1項之方法,進一步包含:將該韌體形象化描述載入一主機;提供一動態探索監視器於該主機,來監視連結至該主機之硬體,以及響應於經探索之硬體變動而致動該韌體之各個面相。
- 如申請專利範圍第8項之方法,其中該主機為特定應用積體電路(ASIC)。
- 如申請專利範圍第1項之方法,其中實體描述包括下列一或多者:一晶片上之輸出接腳數目;分派、某些資料之記憶體位置、各種時脈及時序參數、溫度參數。
- 一種對用於多個組件環境而各自參數化之多數硬體裝置產生固定大小韌體形象化描述之方法,該方法包含下 列步驟:(A)對各該多數硬體裝置,(a1)提供該等多數組件環境中之每一個的面相之一邏輯描述;(a2)提供該等多數組件環境中之每一個的實體面相之一實體描述;(a3)使該邏輯描述與該實體描述相關聯;(B)提供該韌體形象化描述來包括多數通用參數化功能,來支援各個該等多數通用參數化功能之面相,各個該等多數通用參數化功能支援於各個該等多數組件環境中該硬體裝置之該面相之至少一者;其中提供各個該等參數化功能的真實引數為非典型區塊之位元,其中對固定大小非典型區塊之位元之解譯係由一特定通用參數化功能依據特定地該組件環境之該邏輯及實體面向,及各個該等多數組件環境中之各個該硬體裝置來進行;其中對該等參數化功能之真實引數係於執行期結合。
- 如申請專利範圍第11項之方法,其中各該多數硬體裝置係選自包含下列項目之組群:電源供應器、匯流排;風扇、碟片驅動器、感測器、及快閃部件。
- 如申請專利範圍第11項之方法,其中各個位元區塊係具有相同固定大小。
- 如申請專利範圍第13項之方法,其中各個位元區塊長度 為64位元至256位元。
- 如申請專利範圍第11項之方法,其中該韌體形象化描述包含:一操作區塊,其包括用於各該硬體裝置之摘要裝置驅動器介面;以及至少一描述區塊,其包括該等邏輯及實體描述。
- 如申請專利範圍第15項之方法,進一步包含:將該韌體形象化描述載入一主機;提供一動態探索監視器於該主機,來監視連結至該主機之硬體,以及響應於經探索之硬體變動而致動或修改該韌體之面相。
- 如申請專利範圍第16項之方法,其中該主機為特定應用積體電路(ASIC)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59908804P | 2004-08-04 | 2004-08-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200617782A TW200617782A (en) | 2006-06-01 |
TWI391860B true TWI391860B (zh) | 2013-04-01 |
Family
ID=35839915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094126372A TWI391860B (zh) | 2004-08-04 | 2005-08-03 | 用於為硬體裝置產生固定大小韌體形象化描述之方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7844945B2 (zh) |
EP (1) | EP1787195A4 (zh) |
JP (1) | JP2008509483A (zh) |
CA (1) | CA2576508A1 (zh) |
IL (1) | IL181137A (zh) |
MY (1) | MY147797A (zh) |
TW (1) | TWI391860B (zh) |
WO (1) | WO2006017682A2 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313709B2 (en) * | 2004-11-05 | 2007-12-25 | International Business Machines Corporation | Instruction set with thermal opcode for high-performance microprocessor, microprocessor, and method therefor |
US8020141B2 (en) | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
US7882317B2 (en) * | 2004-12-06 | 2011-02-01 | Microsoft Corporation | Process isolation using protection domains |
US7451435B2 (en) * | 2004-12-07 | 2008-11-11 | Microsoft Corporation | Self-describing artifacts and application abstractions |
US7600232B2 (en) * | 2004-12-07 | 2009-10-06 | Microsoft Corporation | Inter-process communications employing bi-directional message conduits |
US8849968B2 (en) * | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
TWI299487B (en) * | 2005-09-07 | 2008-08-01 | Via Tech Inc | System and method for modifying firmware of an optical storage medium device without enabling a compiling process |
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US8032898B2 (en) | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
JP4940967B2 (ja) * | 2007-01-30 | 2012-05-30 | 富士通株式会社 | ストレージシステム、ストレージ装置、ファームウェアの活性交換方法、ファームウェアの活性交換プログラム |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8578332B2 (en) * | 2007-04-30 | 2013-11-05 | Mark Murray | Universal microcode image |
CN101470675B (zh) * | 2007-12-29 | 2011-03-30 | 联想(北京)有限公司 | 一种数据输出方法和装置 |
US8015516B2 (en) * | 2008-01-18 | 2011-09-06 | International Business Machines Corporation | System and method for creating a logical representation of a functional logic system from a physical representation |
EP2317431A1 (en) * | 2009-10-30 | 2011-05-04 | IBBT vzw | System and method for adapting software architecture |
US8869138B2 (en) | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
EP2561441A1 (en) * | 2010-04-23 | 2013-02-27 | Vector Fabrics B.V. | Improved embedded system performance |
DE102010043011A1 (de) * | 2010-08-30 | 2012-03-01 | Tridonic Gmbh & Co. Kg | Parallele Programmierung und Aktualisierung von Gebäudetechnik-Busteilnehmern |
CN103563300A (zh) * | 2011-05-25 | 2014-02-05 | 惠普发展公司,有限责任合伙企业 | 网络设备中网络设备组件的实现 |
US9058404B2 (en) * | 2011-07-25 | 2015-06-16 | Scientiamobile, Inc. | System and method for using a device description repository |
US8984502B2 (en) | 2011-10-28 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Systems and methods for composing or decomposing a composite image for firmware update images |
US9047019B2 (en) * | 2011-11-08 | 2015-06-02 | Sybase, Inc. | Shared temporary storage management in a shared disk database cluster |
US9092300B2 (en) | 2013-04-18 | 2015-07-28 | Ottr Products, Llc | Peripheral device and method for updating firmware thereof |
US9619427B2 (en) | 2014-04-21 | 2017-04-11 | Qualcomm Incorporated | Hybrid virtual GPIO |
US10101987B2 (en) * | 2015-03-11 | 2018-10-16 | Echelon Corporation | Method and system of processing an image upgrade |
KR102223141B1 (ko) * | 2019-02-12 | 2021-03-04 | 성균관대학교산학협력단 | 컨테이너 환경에서의 스토리지 드라이버의 동작 방법 및 스토리지 드라이버 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381693B2 (en) * | 1998-12-31 | 2002-04-30 | Intel Corp. | Arrangements having firmware support for different processor types |
US6598106B1 (en) * | 1999-12-23 | 2003-07-22 | Lsi Logic Corporation | Dual-port SCSI sub-system with fail-over capabilities |
US20030200410A1 (en) * | 1999-09-20 | 2003-10-23 | Russo David A. | Memory management in embedded systems with dynamic object instantiation |
TW571187B (en) * | 2002-09-05 | 2004-01-11 | Mitac Technology Corp | Hardware information capturing and monitoring method for a computer system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4024504A (en) * | 1973-12-21 | 1977-05-17 | Burroughs Corporation | Firmware loader for load time binding |
US5999730A (en) | 1997-10-27 | 1999-12-07 | Phoenix Technologies Limited | Generation of firmware code using a graphic representation |
US6401201B2 (en) * | 1998-12-31 | 2002-06-04 | Intel Corporation | Arrangements offering firmware support for different input/output (I/O) types |
US6567866B1 (en) * | 1999-12-30 | 2003-05-20 | Intel Corporation | Selecting multiple functions using configuration mechanism |
US6802063B1 (en) * | 2000-07-13 | 2004-10-05 | International Business Machines Corporation | 64-bit open firmware implementation and associated api |
US6848046B2 (en) * | 2001-05-11 | 2005-01-25 | Intel Corporation | SMM loader and execution mechanism for component software for multiple architectures |
US7178141B2 (en) * | 2001-07-30 | 2007-02-13 | International Business Machines Corporation | Method and system for identifying compatibility between firmware images |
US20030217358A1 (en) * | 2002-05-17 | 2003-11-20 | Sun Microsystems, Inc. | Method, system, and article of manufacture for firmware downloads |
US7003656B2 (en) * | 2002-06-13 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Automatic selection of firmware for a computer that allows a plurality of process types |
US7036007B2 (en) * | 2002-09-09 | 2006-04-25 | Intel Corporation | Firmware architecture supporting safe updates and multiple processor types |
US20040122989A1 (en) | 2002-12-20 | 2004-06-24 | Lyman Hall | Method of determining code to download for runtime configuration |
US7290258B2 (en) * | 2003-06-25 | 2007-10-30 | Microsoft Corporation | Managing multiple devices on which operating systems can be automatically deployed |
US7188331B2 (en) * | 2003-06-30 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | Firmware development within a framework from different design centers depositing component(s) with related contextual and genealogy information in an accessible repository |
US7367016B2 (en) * | 2003-07-14 | 2008-04-29 | Sun Microsystems, Inc. | Method and system for expressing the algorithms for the manipulation of hardware state using an abstract language |
US20060015844A1 (en) * | 2003-07-30 | 2006-01-19 | Wrd Corporation | Automatic hardware and firmware generation for multi-function custom controls |
US7185309B1 (en) * | 2004-01-30 | 2007-02-27 | Xilinx, Inc. | Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip |
-
2005
- 2005-08-03 EP EP05784966A patent/EP1787195A4/en not_active Ceased
- 2005-08-03 TW TW094126372A patent/TWI391860B/zh active
- 2005-08-03 WO PCT/US2005/027793 patent/WO2006017682A2/en active Application Filing
- 2005-08-03 US US11/195,868 patent/US7844945B2/en active Active
- 2005-08-03 JP JP2007525004A patent/JP2008509483A/ja active Pending
- 2005-08-03 CA CA002576508A patent/CA2576508A1/en not_active Abandoned
- 2005-08-04 MY MYPI20053632A patent/MY147797A/en unknown
-
2007
- 2007-02-01 IL IL181137A patent/IL181137A/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381693B2 (en) * | 1998-12-31 | 2002-04-30 | Intel Corp. | Arrangements having firmware support for different processor types |
US20030200410A1 (en) * | 1999-09-20 | 2003-10-23 | Russo David A. | Memory management in embedded systems with dynamic object instantiation |
US6598106B1 (en) * | 1999-12-23 | 2003-07-22 | Lsi Logic Corporation | Dual-port SCSI sub-system with fail-over capabilities |
TW571187B (en) * | 2002-09-05 | 2004-01-11 | Mitac Technology Corp | Hardware information capturing and monitoring method for a computer system |
Also Published As
Publication number | Publication date |
---|---|
TW200617782A (en) | 2006-06-01 |
WO2006017682A2 (en) | 2006-02-16 |
US20060031815A1 (en) | 2006-02-09 |
IL181137A0 (en) | 2007-07-04 |
IL181137A (en) | 2012-04-30 |
US7844945B2 (en) | 2010-11-30 |
JP2008509483A (ja) | 2008-03-27 |
CA2576508A1 (en) | 2006-02-16 |
MY147797A (en) | 2013-01-31 |
WO2006017682A3 (en) | 2009-05-28 |
EP1787195A2 (en) | 2007-05-23 |
EP1787195A4 (en) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI391860B (zh) | 用於為硬體裝置產生固定大小韌體形象化描述之方法 | |
JP2008509483A5 (zh) | ||
US5999730A (en) | Generation of firmware code using a graphic representation | |
US9720704B2 (en) | Data driven hardware chips initialization via hardware procedure framework | |
EP0844576A2 (en) | Computer system and method for performing design automation in a distributed computing environment | |
WO2003073265A2 (en) | METHOD AND SYSTEM FOR CREATING A CUSTOMIZED SUPPORT PACKAGE FOR AN FPGA-BASED SYSTEM-ON-CHIP (SoC) | |
US20030204830A1 (en) | Integrated circuit configuration | |
CN1737780A (zh) | 从一个设备驱动程序向另一个传送信息的系统和方法 | |
US20120260229A1 (en) | Software tool and method for generating a virtual appliance | |
CN106095563B (zh) | 灵活的物理功能和虚拟功能映射 | |
US10466977B2 (en) | Data driven embedded application building and configuration | |
US20170102924A1 (en) | Software architecture for embedded systems | |
Thimbleby | Delaying commitment (programming strategy) | |
US10540151B1 (en) | Graphical customization of a firmware-provided user interface (UI) | |
CN117480498A (zh) | 在运行时间为裸金属服务器动态提供PCIe器件 | |
CN116225527A (zh) | 嵌入式系统 | |
US20180041386A1 (en) | System and method for accessing real sensors for virtual service processor stack | |
US8135943B1 (en) | Method, apparatus, and computer-readable medium for generating a dispatching function | |
Wu et al. | Windows XP embedded based open architecture computer numerical control system | |
RU2303809C2 (ru) | Система справочно-информационной поддержки пользователя эвм, способ ее формирования и применения | |
US10768942B1 (en) | Option ROM dispatch policy configuration interface | |
CN117170901A (zh) | 硬件管理方法、装置、存储介质及电子设备 | |
Foucher et al. | Fast integration of hardware accelerators for dynamically reconfigurable architecture | |
Hintermann | Operating system components for an embedded linux system | |
TW320705B (en) | Device and method of using incompatible CPU's in computer system |