本發(fā)明涉及與硬件架構(gòu)相關(guān)的除錯方法及其裝置。
背景技術(shù):
硬件設(shè)計例如電路板、控制器及伺服器系統(tǒng)等,在其開發(fā)的流程中,需要長時間的使用除錯工具。一般而言,盡管在盡最大的努力下,硬件設(shè)計仍無法如預(yù)期般地進行工作,此時則需要針對硬件設(shè)計進行修正或除錯。典型的除錯流程涉及重復(fù)地確認(rèn)每一個實作步驟,直到發(fā)現(xiàn)錯誤發(fā)生處。在此方式中,除錯方法協(xié)助了決定硬件設(shè)計的哪一部分可正常運作,且對于如何修正錯誤可給予提示。即使在非常基本的電路設(shè)計中,也常會將一些除錯機制實作進去。
技術(shù)實現(xiàn)要素:
本發(fā)明的一實施方式是提供一通用除錯設(shè)計。在多個實施例中包含集成一除錯控制器模塊及一除錯卡與一顯示器至一系統(tǒng)的方法,此系統(tǒng)由多個子系統(tǒng)接收多個除錯碼。子系統(tǒng)在不同的實施例中可包括,例如,一伺服器、伺服器管理控制器、儲存系統(tǒng)或交換器系統(tǒng)。在一伺服器相關(guān)系統(tǒng)的例子中,多個子系統(tǒng)裝置及元件可產(chǎn)生至少一除錯碼,這些除錯碼用以在開發(fā)及測試硬件設(shè)計的過程中,提供使用者除錯信息。在一些實施例中,除錯碼可以是在一裝置于初始開機時所產(chǎn)生的開機自我檢測(power-on self-test,POST)碼。在一些實施例中,除錯碼可以是由特定模型或形式的硬件元件所產(chǎn)生的慣用錯誤碼(error code)。在一些實施例中,這些除錯碼被傳送到一控制器模塊。在一些實施例中,這些除錯碼經(jīng)由一總線傳輸器以被傳送,例如一內(nèi)部集成電路兼容總線。在其他實施例中,除錯碼通過一網(wǎng)絡(luò)進行傳輸,除錯碼被控制器接收并儲存至一控制器的存儲器中,像是一寄存器或緩沖器。在一些實施例中,除錯卡被設(shè)置為由至少一個除錯碼中選擇一除錯碼。在一些實施例中,除錯卡包含一選擇控制器(例如:一按鈕),允許借助一使用者或一事件, 以觸發(fā)選擇一除錯碼的操作,此除錯碼由一子系統(tǒng)所傳送出并用以顯示。此控制器被設(shè)置為基于所需的選擇,以由至少一個除錯碼中,選出其中的一除錯碼。此除錯碼接著被送至除錯卡,且在除錯卡的顯示器上顯示此除錯碼。
在一些實施例中,控制器包含一多工器,此多工器被設(shè)置為用以接收由子系統(tǒng)所產(chǎn)生的多個輸入碼,接著選擇輸入碼中的一代碼,并將代碼輸出至一解碼器。解碼器被設(shè)置為用以將一可被多工器讀取的形式,像是十進位二元編碼(binary coded decimal,BCD)格式的代碼,轉(zhuǎn)換成可被除錯卡直譯并顯示的格式。在一些實施例中,顯示器為一發(fā)光二極管(LED)顯示器,在其他實施例中,顯示器為七段發(fā)光二極管(7-segment LED)顯示器,此七段發(fā)光二極管顯示器為一系列的七段發(fā)光二極管,用以顯示代表數(shù)字或文數(shù)字的符號。在一些實施例中,除錯卡還包含一選擇按鈕,此選擇按鈕可提供由子系統(tǒng)所產(chǎn)生的至少一個除錯碼中選擇一除錯碼。
舉例而言,一伺服器可產(chǎn)生一開機自我檢測碼,用以指示一伺服器元件的一錯誤點。此開機自我檢測碼經(jīng)由內(nèi)部集成電路以傳送至一控制器,并將開機自我檢測碼與由其他子系統(tǒng)所產(chǎn)生的其他錯誤碼儲存至控制器的存儲器中。一使用者觸發(fā)位于除錯卡上的選擇按鈕,使得代表此伺服器的數(shù)字被顯示,表示使用者希望此伺服器的開機自我檢測碼被顯示出來。此選擇被傳送到控制器的多工器中,此多工器由多個除錯碼中選擇伺服器的開機自我檢測碼。一解碼器將此除錯碼由二進制轉(zhuǎn)換至七段顯示格式,并傳送除錯碼至除錯卡。最后,除錯卡在一系列的七段發(fā)光二極管顯示器上顯示伺服器的開機自我檢測碼。
附圖說明
本發(fā)明不同的實施例或舉例揭示于下述詳細(xì)說明內(nèi)容及附圖中:
圖1繪示依照本發(fā)明一些實施例的除錯裝置的一例。
圖2繪示依照本發(fā)明一些實施例的除錯裝置中的控制器模塊的一例的方塊圖。
圖3繪示依照本發(fā)明一些實施例的除錯裝置的計數(shù)器的行為的一例的示意圖。
圖4A繪示依照本發(fā)明一些實施例的解碼器轉(zhuǎn)換十進位二元編碼至七段發(fā)光二極管顯示器的信號的一例的示意圖。
圖4B繪示依照本發(fā)明一些實施例的除錯卡用以接收使用者輸入信號及顯示一錯誤碼的一例的方塊圖。
圖5繪示依照本發(fā)明一些實施例的除錯方法的一例的流程圖。
圖6繪示依照第1~5圖的特征及流程所實作的系統(tǒng)架構(gòu)的一例的方塊圖。
附圖符號說明
112:伺服器
114:伺服器管理控制器
116:儲存系統(tǒng)
118:交換器系統(tǒng)
122:開機自我檢測碼
124、126、128:錯誤碼
120:控制器
110:伺服器系統(tǒng)
132:控制器信號
134:除錯選擇碼
130:除錯卡
210:輸入碼
212:多工器
120:控制器
220:選擇線
222:多工器的輸出
216:解碼器
214:計數(shù)器
224:除錯選擇碼
226:控制器信號
310:初始數(shù)值
312:第二數(shù)值
314:第二至最后數(shù)值
316:最后一數(shù)值
320、322:選擇觸發(fā)
400:轉(zhuǎn)換流程
412:輸入信號
416:輸出
422:顯示器
410:解碼器
420:七段發(fā)光二極管顯示器
450:除錯卡
460:錯誤碼顯示器
470:選擇按鈕
480:USB連接器
482:藍牙模塊
490:連接器至控制器
492:除錯選擇碼
494:控制器信號
600:系統(tǒng)架構(gòu)
622:服務(wù)控制器
602:處理器
604:輸入裝置
608:網(wǎng)絡(luò)界面
606:顯示器
612:總線
610:計算機可讀式媒體
614:操作系統(tǒng)
616:網(wǎng)絡(luò)傳輸裝置
618:圖形處理系統(tǒng)
620:應(yīng)用程序
502~514:步驟
具體實施方式
以下將以附圖及詳細(xì)敘述清楚說明本發(fā)明內(nèi)容的精神,任何本領(lǐng)域技術(shù) 人員在了解本發(fā)明內(nèi)容的實施例后,當(dāng)可由本發(fā)明內(nèi)容所教示的技術(shù),加以改變及修飾,其并不脫離本發(fā)明內(nèi)容的精神與范圍。
在伺服器計算系統(tǒng)及其他計算機硬件系統(tǒng)中,除錯通常被視為開發(fā)流程中的重要步驟。通常而言,在系統(tǒng)被評估為準(zhǔn)備好提供給客戶操作之前,其裝置需要以一些形式的除錯工具進行除錯。典型地,一除錯連接器被用以連接至此系統(tǒng)中的至少一個裝置的一除錯信號輸出端口,像是一處理器或一儲存系統(tǒng)。此外,LED顯示器可連同除錯連接器一并實作,以輸出故障或錯誤,由此用以診斷出硬件設(shè)計及實作上的問題。在一些例子中,至少一七段發(fā)光二極管顯示器可連接至除錯連接器,以利用數(shù)字或字母顯示錯誤。
在電路板或系統(tǒng)開發(fā)的過程中,除錯連接器及LED通常具有相當(dāng)?shù)膸椭?。然而,針對特殊設(shè)計,除錯連接器及LED可能具有不便實作的缺點,且可能增加專案成本。外部除錯工具通常無法支持特定架構(gòu),或無法基于其原始軟件形式的除錯功能。因此,硬件設(shè)計的開發(fā)過程中,往往花費顯著地時間于將除錯工具適當(dāng)?shù)脑O(shè)置于界面中。最后,使用者通常會采用復(fù)雜度較低且有效的除錯設(shè)計,并將其納入系統(tǒng)。
此處描述通用除錯方法及裝置的例子,其可支持多種子系統(tǒng)的錯誤碼的顯示。除錯裝置包含一控制器集成電路以處理每一個子系統(tǒng)輸出錯誤碼。除錯裝置被設(shè)置為使一使用者可傳送一信號至此控制器,由此選擇任何子系統(tǒng)的錯誤碼,并顯示其所選擇的子系統(tǒng)的錯誤碼。
圖1繪示依照本發(fā)明一些實施例的除錯裝置的一例。此例包含至少一個子系統(tǒng),此至少一個子系統(tǒng)傳送多個錯誤碼至一控制器集成電路(integrated circuit,IC),并將這些錯誤碼存在控制器IC的緩沖器中。在一實施例中,一除錯卡(Debug Card)包含一顯示器及一選擇機制,可用以接收一除錯碼的選擇,此除錯碼的選擇可被顯示于LED顯示器中。
在一實施例中,一伺服器系統(tǒng)110包含伺服器元件及伺服器相關(guān)裝置,用于彼此間的溝通。在一些實施例中,伺服器系統(tǒng)110包含至少一個伺服器及其元件,以及除錯元件。在其他實施例中,伺服器系統(tǒng)110可包含一伺服器及相關(guān)裝置,及此伺服器外部的除錯元件。在伺服器系統(tǒng)110中,需要除錯的多個子系統(tǒng)可取決于各自的系統(tǒng)實作設(shè)計,以提供不同設(shè)定及形式。在圖1的實施例中,子系統(tǒng)例如包含一伺服器112、一伺服器管理控制器114、一儲存系統(tǒng)116及一交換器系統(tǒng)(switch system)118。在一實施例中,伺服器 112為一伺服器裝置,具有多種的計算及網(wǎng)絡(luò)能力,包含一主機板、固件及其他典型伺服器的元件。
伺服器系統(tǒng)110還包含一伺服器管理控制器114,用以控制及監(jiān)控伺服器112的管理特征。在一些實施例中,伺服器管理控制器114可以是基板管理控制器(baseboard management controller,BMC)的形式,基板管理控制器為一獨立的嵌入式微處理器,在一些實施例中,基板管理控制器可負(fù)責(zé)管理及監(jiān)控伺服器112的主要中央處理器(CPU),固件及操作系統(tǒng)。依據(jù)一些實施例,基板管理控制器可借助接收安裝于機架上的傳感器的數(shù)據(jù),以監(jiān)控伺服器的硬件元件,例如,風(fēng)扇轉(zhuǎn)速、CPU溫度、耗能程度等等。
儲存系統(tǒng)116提供予伺服器系統(tǒng)110一數(shù)據(jù)儲存方法。在一些實施例中,儲存系統(tǒng)可包含至少一個磁盤陣列,像是儲存區(qū)域網(wǎng)絡(luò)陣列。在其他實施例中,儲存系統(tǒng)可包含至少一般硬盤(hard-disk drives)、固態(tài)硬盤(solid state drives)、混合式硬盤(hybrid hard drives)、快閃式硬盤(flash hard drives)。交換器系統(tǒng)118提供至少一個網(wǎng)絡(luò)交換器,用以提供伺服器系統(tǒng)110的交換功能(switch function),包含通過多個端口,以將數(shù)據(jù)過濾及傳送至網(wǎng)絡(luò)區(qū)域,或是將由網(wǎng)絡(luò)區(qū)域接收數(shù)據(jù)。
每一個子系統(tǒng)可輸出多個信號,例如為多個錯誤碼。在一些實施例中,這些信號可通過數(shù)據(jù)處理系統(tǒng)的總線以被傳送,像是內(nèi)部集成電路(I2C)兼容總線。一內(nèi)部集成電路可將多個不同的裝置在系統(tǒng)內(nèi)部集成起來。典型地,伺服器及其他數(shù)據(jù)處理系統(tǒng)可包含例如一總線,以傳輸數(shù)據(jù),此數(shù)據(jù)例如為一開機數(shù)據(jù)。在一些實施例中,其他總線標(biāo)準(zhǔn)可被用于由子系統(tǒng)傳輸信號。在其他實施例中,信號可通過一有線網(wǎng)絡(luò)連接、無線網(wǎng)絡(luò)連接、以太網(wǎng)絡(luò)連接、近場傳輸、藍牙技術(shù),或其他形式的連接方式以傳輸。
在一些實施例中,開機自我檢測碼122可經(jīng)由伺服器112以傳輸至控制器120。在一伺服器中,例如為伺服器112中,一基本輸入輸出系統(tǒng)(BIOS)可產(chǎn)生一開機自我檢測碼122,此開機自我檢測碼122用以描述在開啟電源的狀態(tài)下或是重啟電源的狀態(tài)下,其伺服器的硬件狀態(tài)。開機自我檢測碼122表示每一個元件是否都正常地運作,或是特定的裝置是否沒有于操作系統(tǒng)載入前被適當(dāng)?shù)慕M譯。由此,自我檢測碼122可有效地除錯并確保伺服器112正常運作,自我檢測碼122可幫助辨識哪一個硬件元件沒有適當(dāng)運作。在一些實施例中,自我檢測碼122由系統(tǒng)的BIOS產(chǎn)生,并經(jīng)由內(nèi)部集成電 路以傳輸至控制器120。在一些實施例中,此傳輸發(fā)生于輸入/輸出端口80。自我檢測碼122可指定為表示各種錯誤,例如,在一些實施例中,一自我檢測碼“0000”可被指定為表示時間錯誤,自我檢測碼“000E”可被指定為表示驅(qū)動錯誤,自我檢測碼“000C”可被指定為表示隨機存取存儲器(RAM)的寫入/讀取測試失敗…等等。任何數(shù)字的自我檢查碼122都可能被傳輸至控制器120。
在一些實施例中,在多個子系統(tǒng)中,包含伺服器管理控制器114、儲存系統(tǒng)116及交換器系統(tǒng)118,可傳送一般錯誤碼至控制器120,這些錯誤碼可基于裝置的形式及裝置的特定模型而不同。例如,對應(yīng)儲存系統(tǒng)116的錯誤碼“ANE4000E”用以表示儲存空間不足以儲存一文件。在另一例子中,由交換器系統(tǒng)118所傳送出的一錯誤碼可表示交換器無法連接至伺服器112。在一些實施例中,錯誤碼由子系統(tǒng)所產(chǎn)生,并通過內(nèi)部集成電路以傳送至控制器112。在其他實施例中,其他傳送方法可用以傳送這些信號至控制器120。
在一些實施例中,聯(lián)合測試工具組(Joint Test Action Group,JTAG)標(biāo)準(zhǔn)可被實作于至少一各子系統(tǒng)中。聯(lián)合測試工具組是通用于電路板及控制器的除錯流程的一標(biāo)準(zhǔn)。定制的聯(lián)合測試工具組可允許讀取寄存器、存取數(shù)據(jù)總線及從子系統(tǒng)傳送信號,并將這些行為于子系統(tǒng)中的運行狀態(tài)以視覺化方式呈現(xiàn),以聯(lián)合測試工具組為基礎(chǔ)(JTAG-based)的輸出信號可被傳送至控制器120。
在一例子中,控制器120可包含硬件模塊于伺服器系統(tǒng)110中,硬件模塊用以儲存來自不同子系統(tǒng)的除錯信號,并依據(jù)一使用者的選擇,此使用者的選擇為欲查詢其元件除錯碼的元件,以輸出一除錯信號至除錯卡130,例如,可借助將一選擇機制建置于除錯卡130中。在另一例子中,控制器120可包含一集成電路,此集成電路可建置于伺服器112的主機板上。在一實施例中,控制器120將來自子系統(tǒng)的錯誤碼或信號儲存至控制器的緩沖器或存儲器中,決定哪一個除錯碼是欲得的,將此欲得除錯碼(desired debug code)解碼為一格式,且此格式可被除錯卡讀取及顯示,并傳送此解碼后的除錯碼至除錯卡。對于控制器120如何操作,及控制器120包含哪些元件,將于圖2中進行更具體的描述。在一實作的例子中,控制器120接收來自子系統(tǒng)110~118的信號,并接收來自從一除錯卡130的一除錯選擇碼134,此除錯選擇碼134相關(guān)于儲存于控制器120中的欲得除錯碼。控制器120使用此兩 者信息并輸出控制器信號226至除錯卡130。
在一實施例中,除錯卡130可以是位于通用除錯設(shè)計中的一張卡,用以連接控制器120,讓使用者得以察覺到子系統(tǒng)中的錯誤碼或信號。在一些實施例中,除錯卡130不僅是一張卡,其可以是一獨立裝置或是伺服器元件。在一些實施例中,除錯卡130是伺服器或其他伺服器相關(guān)裝置的主機板中的集成電路。在一些實施例中,除錯卡通過一顯示器顯示控制器信號。顯示器可以被集成進除錯卡中或是可以是耦接于除錯卡的獨立裝置。顯示器可以是一LED顯示器,用以顯示一錯誤碼,例如,借助顯示一系列代表子系統(tǒng)所產(chǎn)生的錯誤碼的數(shù)字或文數(shù)字的符號。在一些實施例中,LED顯示器顯示包含至少一個七段發(fā)光二極管顯示器。七段發(fā)光二極管顯示器可通過其所具有的七個顯示片段,以組成為顯示一數(shù)字或其他符號的電子顯示器,以此顯示數(shù)字及文數(shù)字的符號。在其他實施例中,除錯卡130的顯示器可以是液晶顯示器(Liquid Crystal Display,LCD)、有機發(fā)光二極管(Organic Light-Emitting Diode,OLED)或其他顯示器。當(dāng)其他實施例使用其他技術(shù)以獲得錯誤碼或信號,并提供錯誤碼或信號給使用者時,可于一些實施例中,使用七段顯示器。無論哪一種顯示器被采用,控制器120具有將由子系統(tǒng)產(chǎn)生的信號轉(zhuǎn)換為可被除錯卡130顯示的任務(wù)。
在一些實施例中,除錯卡130亦接收一輸入信號,例如通過一選擇觸發(fā)(selection trigger)。借助一使用者或是一些事件,可促使此選擇觸發(fā)。在一些實施例中,當(dāng)一遠(yuǎn)程信號由另一裝置傳送一指令至例如除錯卡130或控制器120后,促使此選擇觸發(fā)。在一些實施例中,選擇觸發(fā)可由一被按下的按鈕所觸發(fā)。在此例中,當(dāng)按鈕被按下后,子系統(tǒng)中的多個欲得除錯碼的其中之一則被選定。例如,一除錯選擇碼134為“1”,則設(shè)計為使用者希望收到由伺服器112所產(chǎn)生的開機自我檢測碼112,一除錯選擇碼134為“2”,則設(shè)計為使用者希望收到由伺服器管理控制器114所產(chǎn)生的錯誤碼124,一除錯選擇碼134為“3”,則設(shè)計為使用者希望收到由儲存系統(tǒng)116所產(chǎn)生的錯誤碼126…等。任何的文數(shù)字選擇可被設(shè)計于任何子系統(tǒng)中。在一些實施例,代表除錯選擇碼134的數(shù)字是被事先定義的。在一些實施例,選擇按鈕與顯示器皆位于除錯卡130上。在一些實施例,顯示器可視覺化地表現(xiàn)除錯碼的選擇。
在一實施例中,無論選擇按鈕何時被使用者或事件觸發(fā),控制器信號 132都會被產(chǎn)生及傳送。舉例而言,控制器信號132可以是傳送到控制器120的電子信號、二進制數(shù)據(jù)或其他形式的數(shù)據(jù)??刂破餍盘?32從除錯卡130被傳送到控制器120。控制器120中的計數(shù)器或其他元件收到除錯選擇碼134后,則增加計數(shù)值,且此除錯選擇碼134可包含控制器信號132。例如,一旦一觸發(fā)被致能,計數(shù)器會由1增加為2。接著,計數(shù)器傳送此選擇至多工器,此多工器已儲存來自不同子系統(tǒng)的輸入碼?;谟嫈?shù)器所收到的選擇,控制器120中的多工器將選擇的輸入碼進行解碼,且解碼后的結(jié)果符合可被除錯卡130顯示的信號格式,并將解碼后的結(jié)果傳送到除錯卡130。接著,除錯卡130顯示此選擇的除錯碼或信號給使用者觀看。因此,除錯碼可被多個子系統(tǒng)110~118的裝置所產(chǎn)生,并被傳送至控制器120,以及將使用者選擇的除錯碼顯示于除錯卡130上。
圖2繪示依照本發(fā)明一些實施例的除錯裝置中的控制器模塊的一例的方塊圖??刂破?20接收一系列的輸入碼210,例如,由圖1中的子系統(tǒng)110~118所輸出的輸入碼210,這些輸入碼210已產(chǎn)生開機自我檢測碼、錯誤碼或其他除錯信號。在一些實施例中,這些輸入碼210可利用內(nèi)部集成電路進行傳輸,在其他實施例中,則可以借助不同的總線標(biāo)準(zhǔn)或多個標(biāo)準(zhǔn)的結(jié)合以傳送這些代碼。多工器212接收輸入碼210作為輸入,多工器212一般被理解為元件“mux”,其為一裝置,用以接收多個輸入信號,并選擇其中一信號,再于單一輸出線上傳送出此被選擇的信號。在圖2的多工器212的例子中,輸入信號都是進入多工器212的輸入碼210,而選擇線(或選擇信號)為選擇線220,輸出部分則為多工器212的輸出222。選擇線220設(shè)計為應(yīng)選擇其中一輸入線用以輸出,例如,若選擇線220設(shè)計“1”為被選擇的輸入線,則相關(guān)于伺服器112的輸入線1會被選擇,使得由對應(yīng)于輸入線1的伺服器112的輸入碼被選擇,并傳送到多工器的輸出222。
選擇線220由計數(shù)器214發(fā)出,在一些實施例中,計數(shù)器214可以是一數(shù)字計數(shù)器,其被設(shè)置為當(dāng)除錯選擇碼224由除錯卡130送出時增加數(shù)值。除錯卡130如圖1對應(yīng)段落所述,可包含一選擇按鈕,一使用者或一事件可通過觸發(fā)此選擇按鈕并傳送一除錯選擇碼信號224至控制器120的計數(shù)器214。伴隨著接收到每一個除錯選擇碼224,計數(shù)器214則增加1。在一些實施例中,一旦計數(shù)器214到達一最終決定數(shù)字后,例如為11,當(dāng)再次增加計數(shù)時,計數(shù)器214可重置為0或1。此方法由來自子系統(tǒng)的錯誤選擇碼224 的總量,以循環(huán)地被多工器212處理,并使多工器212作出選擇,以循環(huán)地輸出的結(jié)果的重要步驟。計數(shù)器214將會進一步于圖3中被討論。
多工器212傳送多工器的輸出222至解碼器216,多工器的輸出222代表被選擇的除錯碼。解碼器216位于硬件設(shè)計中,且為輸出邏輯電路的形式,用以將輸入碼轉(zhuǎn)換為輸出碼。解碼器216的主要目的在于轉(zhuǎn)換多工器的輸出222為控制器信號226,控制器信號226可被除錯卡130理解,并顯示于除錯卡130上。由于需要符合一些顯示器的格式才能被除錯卡130顯示,例如七段發(fā)光二極管顯示器,因此錯誤碼必須由多工器212可讀取的格式轉(zhuǎn)換為用以顯示的格式。
在一些實施例中,解碼器216將十進位二元編碼(BCD)轉(zhuǎn)換為七段顯示格式。例如,十進位二元編碼的輸出可被決定為A、B、C及D,每一個表示為一個二位碼,以形成七種不同的輸出的除錯碼A到G,其整體的表示可借助單一位碼的七段顯示器,以輸出對應(yīng)的數(shù)字符號。此外,額外的輸出及輸入則需要額外的位以被顯示。此部分進一步轉(zhuǎn)換流程將于圖4A的對應(yīng)段落討論。當(dāng)七段顯示器被繪示于實施例中,一些其他的類似選擇應(yīng)亦可被預(yù)期,其他元件須對應(yīng)不同的實施例而調(diào)整,以適當(dāng)?shù)剞D(zhuǎn)換除錯碼的信號。
圖3繪示依照本發(fā)明一些實施例的除錯裝置的計數(shù)器的行為的一例的示意圖。圖3繪示計數(shù)器增加數(shù)值的狀態(tài),以及可存在于不同實施例的循環(huán)功能(looping function)。
在一實施例中,計數(shù)器214開始于初始數(shù)值310,其設(shè)計為“00”。當(dāng)選擇按鈕于除錯卡130上被按下后,除錯碼信號被送到計數(shù)器214,且產(chǎn)生一選擇觸發(fā)320。選擇觸發(fā)320促使將計數(shù)器增加1,因此,“00”轉(zhuǎn)變?yōu)榈诙?shù)值312,其設(shè)計為“01”,計數(shù)值可繼續(xù)累計任何數(shù)量的增加量,其增加量取決于多個子系統(tǒng)可允許于通用除錯設(shè)計中傳送除錯碼的數(shù)量。在一實施例中,增加此選擇觸發(fā)320,可使得計數(shù)值轉(zhuǎn)變?yōu)榈诙詈髷?shù)值314(second-to-last number),其設(shè)計為“10”,最后,計數(shù)值轉(zhuǎn)變?yōu)樽詈髷?shù)值316(last number),設(shè)計為“11”。在一些實施例中,當(dāng)增加此選擇觸發(fā)322,則計數(shù)器214被設(shè)置為重置回設(shè)計為“00”的初始數(shù)值310。計數(shù)器214被設(shè)置為在所有可能的數(shù)字中循環(huán),其數(shù)字與可產(chǎn)生除錯碼并將其傳輸至控制器120的子系統(tǒng)相關(guān)。
圖4A繪示依照本發(fā)明一些實施例的解碼器410轉(zhuǎn)換十進位二元編碼至 七段發(fā)光二極管顯示器420的信號的一例的示意圖。此圖為控制器120的解碼器216的轉(zhuǎn)換流程的一實施例,其已于前述圖2中說明。在轉(zhuǎn)換流程400中,一系列的輸入信號412被標(biāo)示為“A”、“B”、“C”、“D”,并被傳送至解碼器410。在此實施例中,解碼器410作為將十進位二元編碼轉(zhuǎn)換至七段發(fā)光二極管顯示器的轉(zhuǎn)換器的功能。此處的解碼器410為一電路芯片,用以轉(zhuǎn)換四種二進制位的輸入“A”至“D”為七種輸出416,此七種輸出416以信號“a”至“g”表示。舉例而言,若依輸入信號412為A=0、B=1、C=0及D=0,則這些二進制的輸入的整體可視為表示為一位的數(shù)字2。輸入信號412可被轉(zhuǎn)換為七種輸出416,接著,七種輸出416被傳送到除錯卡130,且除錯卡130具有七段顯示器420。這些七段輸出416被用以驅(qū)動七段顯示器420的七個片段,其顯示于顯示器422中。在此例中,當(dāng)二進制數(shù)值表示為2時,其被輸入至解碼器410后,七段輸出會從“a”至“g”分別表示為1、1、0、1、1、0、1,以代表顯示器422上的視覺片段“a”至“g”。當(dāng)七種輸出被對應(yīng)到視覺片段后,一個數(shù)字符號“2”則被顯示于七段顯示器420中。因此,借助解碼器410的解碼,以及將二進位信號轉(zhuǎn)換為一可被顯示的形式,可使0~9中的任一數(shù)字被顯示于除錯卡130上。
圖4B繪示依照本發(fā)明一些實施例的除錯卡用以接收使用者輸入信號及顯示一錯誤碼的一例的方塊圖。在一些實施例中,除錯卡450可以是位于通用除錯設(shè)計中的一張卡,其連接至一控制器,并允許使用者可得知來自不同子系統(tǒng)的錯誤碼或信號。在一些實施例中,除錯卡450可以不只是一張卡,還可以是一獨立裝置或是伺服器元件。在一些實施例中,除錯卡450可以為伺服器或其他伺服器相關(guān)裝置的主機板中的集成電路。
在一些實施例中,除錯卡450通過連接器490接收來自控制器的控制器信號494。除錯卡450可通過顯示器460以顯示控制器信號494的錯誤碼。錯誤碼顯示器460可被集成進除錯卡450或可以為耦接于除錯卡450的一獨立裝置。顯示器460可以是一LED顯示器,其顯示一錯誤碼,此錯誤碼以一系列數(shù)字或文數(shù)字的符號以顯示,且此錯誤碼由一子系統(tǒng)以產(chǎn)生。在一些實施例中,LED顯示器460包含至少一個七段發(fā)光二極管顯示器。七段發(fā)光二極管顯示器可以顯示數(shù)字與文數(shù)字的符號,且七段發(fā)光二極管顯示器以通過一具有七個片段顯示部分的電子顯示器,借助這些片段的整體以顯示一數(shù)字或其他文字。在其他實施例中,除錯卡450的顯示器460可以是一液晶顯 示器(LCD)、有機發(fā)光二極管(OLED)或其他顯示器。一些實施例可使用七段顯示器,當(dāng)其他實施例可采用其他技術(shù)以將獲得錯誤碼或信號提供給使用者。在一些實施例中,錯誤碼可以通過一通用串行總線(USB)連接器480、一藍牙模塊482或其它輸入/輸出裝置。
在一些實施例中,除錯卡450可接收輸入信號,例如通過一選擇觸發(fā)。選擇觸發(fā)可通過使用者或一些其他事件以致能。在一些實施例中,當(dāng)一遠(yuǎn)程信號從另一裝置傳送一指令至例如除錯卡450或控制器時,此選擇觸發(fā)被致能。
在一些實施例中,選擇觸發(fā)可經(jīng)過USB連接器480、藍牙模塊482或其它輸入/輸出裝置以被致能。在一些實施例中,選擇觸發(fā)可以為一被按壓的選擇按鈕470。在此例中,當(dāng)選擇按鈕470被按壓后,子系統(tǒng)中的多個欲得除錯碼的其中之一則被選定,任何數(shù)字的選擇可被設(shè)計為符合各任何系統(tǒng)。在一實施例中,數(shù)字所代表的除錯選擇碼492可以被事先定義。在一些實施例中,代表除錯選擇碼492的數(shù)字可以被使用者設(shè)置。在一些實施例中,選擇按鈕470與一被選擇的顯示器皆位于除錯卡450上。在一些實施例中,被選擇的顯示器以視覺化表示除錯碼的選擇。在一實施例中,無論選擇按鈕何時被使用者或事件觸發(fā),一除錯碼選擇碼492都會被產(chǎn)生及通過連接器490以傳送。例如,除錯碼選擇碼492可以為傳送至控制器的電子信號,或是可以為二進制數(shù)據(jù)或其他形式的數(shù)據(jù)。
圖5繪示依照本發(fā)明一些實施例的除錯方法的一例的流程圖。在步驟502中,由子系統(tǒng)產(chǎn)生除錯碼。子系統(tǒng)可以是任何子系統(tǒng)110~118,每一個子系統(tǒng)110~118可以是整個伺服器硬件設(shè)計的一部分。例如,子系統(tǒng)可以為伺服器112、伺服器管理控制器114、儲存系統(tǒng)116、交換器系統(tǒng)118及其他裝置。在一些實施例中,子系統(tǒng)可用以產(chǎn)生開機自我檢測碼,其表示子系統(tǒng)初始的開機自我檢測程序的期間中,需要被除錯的任何問題。在其他實施例中,除錯碼可以是一般的錯誤碼、警示信號、聯(lián)合測試工具組(JTAG)信號,及其他任何信號可構(gòu)成除錯及錯誤檢測的輸出。
在步驟504中,除錯碼由控制器120所接收。除錯碼可已經(jīng)由內(nèi)部集成電路或是類似的總線傳輸序列以傳輸。接著,除錯碼被儲存于緩沖器或控制器中。在一些實施例中,除錯碼可借助二進制形式儲存于緩沖器中。
在步驟506中,選擇一欲得除錯碼。欲得除錯碼可以被使用者選擇或借 助事件觸發(fā)位于除錯卡130上的選擇按鈕以選擇,并傳送一觸發(fā)信號224至控制器120中的計數(shù)器214。計數(shù)器214在收到每一個觸發(fā)信號224后增加一數(shù)值。此數(shù)值與來自子系統(tǒng)的欲得除錯碼相關(guān)。計數(shù)器214接著于選擇線220輸出此數(shù)值至多工器212。此選擇線220代表于步驟506中所選擇的欲得除錯碼。
在步驟508中,多工器212輸出錯誤碼至解碼器216。多工器由不同的子系統(tǒng)中接收到多個輸入碼210,基于選擇線220選擇一輸入碼210,并由多工器的輸出222將選擇的輸入碼210傳送到解碼器216。在一些實施例中,選擇線220此時維持輸出二進制數(shù)值,且可輸出為十進位二元編碼。
此實施例的步驟510中,解碼器216轉(zhuǎn)換錯誤碼至七段發(fā)光二極管顯示器。在此實施例中,顯示器具體實施為七段發(fā)光二極管顯示器的形式,且二進制數(shù)值必須轉(zhuǎn)換為可供顯示器讀取的形式,其中,顯示器的每一段必須基于“0”或“1”的輸入值而被指示為發(fā)光或不發(fā)光。如前述于圖4A中所討論的,解碼器轉(zhuǎn)換二進制輸出至七個輸出的表示片段。在一些實施例中,顯示器可以不為七段發(fā)光二極管顯示器,但可以是一些其他形式的顯示器。解碼器216轉(zhuǎn)換多工器的輸出222為一可供顯示器讀取的形式。在一些實施例中,輸入可代表一些數(shù)字或文數(shù)字的符號,這些符號必須轉(zhuǎn)換為適合顯示器讀取的形式。
在步驟512中,解碼器216傳送控制器信號226以顯示于除錯卡512。在一些實施例中,除錯上的顯示器可以是七段發(fā)光二極管顯示器。例如,若一錯誤碼是4位,則顯示器需要至少4個七段發(fā)光二極管顯示器,以于除錯卡上顯示錯誤碼。最后,在步驟514中,除錯卡成功在發(fā)光二極管顯示器514上顯示信號。
圖6繪示依照圖1~5的特征及流程所實作的系統(tǒng)架構(gòu)的一例的方塊圖。系統(tǒng)架構(gòu)600可被實作于任何可執(zhí)行由編譯指令所獲得軟件應(yīng)用的電子裝置,包含但不限于個人計算機、伺服器、智能手機、多媒體播放器、電子平板、游戲主機、電子郵件裝置等等。在一些實施例中,系統(tǒng)架構(gòu)600可以包含至少一個處理器602、至少一個輸入裝置604、至少一個顯示裝置606、至少一個網(wǎng)絡(luò)界面608及至少一個計算機可讀式媒體610。每一個元件可被耦接至總線612。
顯示器606可以是任何已知的顯示器技術(shù),包含但不限制于顯示器使用 液晶顯示器(LCD)或發(fā)光二極管顯示器的技術(shù)。處理器602可使用任何已知的處理器技術(shù),包含但不限制于圖形處理器及多核心處理器。輸入裝置604可以是任何已知的輸入裝置技術(shù),包含但不限制于一鍵盤(包含虛擬鍵盤)、鼠標(biāo)、軌跡球及接觸感應(yīng)式平板或顯示器??偩€612可以是已知的任何內(nèi)部或外部總線技術(shù),包含但不限制于工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)總線(ISA)、擴展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)總線(EISA)、外部連結(jié)標(biāo)準(zhǔn)總線(PCI)、快捷外設(shè)互聯(lián)標(biāo)準(zhǔn)總線(PCI Express)、新總線總線(NuBus)、USB、串行ATA總線(Serial ATA)或火線(FireWire)。
計算機可讀式媒體610可為任何可提供指令至處理器602執(zhí)行的媒體,包含但并不限制于,非易失性儲存媒體(例如,光盤、磁盤、快閃存儲器等等)或是易失性儲存媒體(例如,同步動態(tài)隨機存取存儲器、只讀存儲器等等)。計算機可讀式媒體(例如,儲存裝置、媒體及存儲器)可包含,例如,具有位串流或相似信號的電纜或無線信號。然而,當(dāng)提到非暫態(tài)的計算機可讀式儲存媒體時,表示其不包含能量、載波信號、電磁波及信號本身等媒介。
計算機可讀式媒體610可以包含不同的指令614,用以實現(xiàn)一操作系統(tǒng)(例如,MacLinux)。操作系統(tǒng)可以為多使用者(multi-user)、多程序處理(multiprocessing)、多任務(wù)處理(multitasking)、多工作線處理(multithreading)、即時處理及類似應(yīng)用。操作系統(tǒng)執(zhí)行基本工作,包含但不限制于:辨識由輸入裝置604所接收的輸入信號,傳送輸出信號至顯示器606,保持追蹤計算機可讀式媒體610的文件及目錄,控制周邊裝置(如,磁盤機、打印機等等),其可直接通過輸入/輸出控制器控制,以及管理總線612的傳輸狀態(tài)。網(wǎng)絡(luò)傳輸裝置616可建立并維持網(wǎng)絡(luò)連線(例如,用以時作通訊協(xié)議的軟件,像是傳送控制網(wǎng)絡(luò)協(xié)議(TCP/IP)、超文件傳送協(xié)議(HTTP)、以太網(wǎng)絡(luò)等等)。
圖形處理系統(tǒng)618可以包含多個指令,用以提供圖形及影像處理的功能。舉例而言,圖形處理系統(tǒng)618可以實現(xiàn)關(guān)于圖1~5所述的流程。應(yīng)用程序620可以是應(yīng)用于或?qū)崿F(xiàn)關(guān)于圖1~5所述的流程的應(yīng)用程序,舉例而言,應(yīng)用程序620可以產(chǎn)生控制訊息(例如,一系列的輸出),控制訊息由服務(wù)控制器622以超文件傳送協(xié)議所重新導(dǎo)入。這些流程亦可被實現(xiàn)于操作系統(tǒng)614中。
服務(wù)控制器622可以是一控制器,用以操作獨立的控制器302和/或操 作系統(tǒng)314。在一些實作中,系統(tǒng)控制器322可以于處理器302被啟動且操作系統(tǒng)314被載入處理器302之前,先被啟動并執(zhí)行操作。例如,系統(tǒng)控制器322可通過特定的網(wǎng)絡(luò)界面或其他輸入裝置,以提供計算裝置的前置操作系統(tǒng)管理。例如,系統(tǒng)控制器322可以為一基板管理控制器,用以監(jiān)控裝置傳感器(例如,電壓、溫度、風(fēng)扇等等)、記錄事件以供錯誤分析、提供LED指導(dǎo)診斷、執(zhí)行能源管理和/或提供遠(yuǎn)程控制。提供遠(yuǎn)程控制可借助通過智能平臺管理界面(IPMI)、鍵盤、影像及鼠標(biāo)的重新導(dǎo)向、局域網(wǎng)串行(SOL)和/或其他接口。服務(wù)控制器622用以實作上述關(guān)于圖1~5所述的流程。例如,服務(wù)控制器622可被設(shè)置為與一網(wǎng)頁伺服器通過超文件傳送協(xié)議重新導(dǎo)向串行輸出。
上述的技術(shù)特征可以被更佳地實現(xiàn)于至少一個計算機程序中,此至少一個計算機程序可以執(zhí)行于可編程系統(tǒng),可編程系統(tǒng)包含耦接于一數(shù)據(jù)儲存系統(tǒng)、至少一個輸入裝置及至少一個輸出裝置的至少一個可編程處理器,以此接收數(shù)據(jù)及指令,并傳送數(shù)據(jù)及指令。計算機中的計算機程序為一組可直接或間接被使用的指令,以執(zhí)行特定的操作或提供相關(guān)的特定結(jié)果。計算機程序可由任何形式的可程序語言(例如,Objective-C,Java)進行寫作,亦可包含已編譯或直譯的程序語言,且可以被布署為任何形式,包含像是單獨程序、模塊、元件、子程序或其他適合使用于計算環(huán)境的單元。
用以執(zhí)行程序指令的適當(dāng)處理器包含,舉例而言,任何計算機其具備一般使用及特殊目的使用的微處理器,及單一處理器或多處理器其中的一個或多個核心。一般而言,處理器會由只讀存儲器或隨機存取存儲器或其兩者,以接收指令及數(shù)據(jù)。計算機中的重要元件為處理器,用以執(zhí)行指令,以及至少一個存儲器,用以儲存指令及數(shù)據(jù)。一般而言,計算機亦包含,或在操作上通訊耦接到至少一個大量儲存裝置,用以儲存數(shù)據(jù)文件,大量儲存裝置可包含磁盤,像是內(nèi)部硬盤或遠(yuǎn)程硬盤、磁光盤及光盤。儲存裝置適合用于有形地實體化計算機程序指令及數(shù)據(jù),其包含所有非易失性存儲器的形式,包含例如半導(dǎo)體存儲器裝置,像是可擦除可編程只讀存儲器(EPROM)、(EEPROM)、快閃存儲器裝置,磁盤像是內(nèi)部硬盤及可移除式硬盤、磁光盤、光盤只讀存儲器(CD-ROM)、數(shù)字光盤只讀存儲器(DVD-ROM)。處理器及存儲器可納入特殊應(yīng)用集成電路(ASICs)以擴充。
為提供與使用者的互動,上述特征可被實現(xiàn)于一計算機中,此計算機具 有顯示裝置,像是陰極射線管(CRT)或液晶顯示器(LCD)屏幕,用以顯示信息予使用者,以及一鍵盤及一指標(biāo)裝置,指標(biāo)裝置例如為鼠標(biāo)或軌跡球,能提供使用者輸入信息至計算機中。
這些特征可以被實作于一計算機系統(tǒng)中,此計算機系統(tǒng)包含一后端元件,像是一數(shù)據(jù)伺服器,或包含一中介軟件元件,像是一應(yīng)用伺服器或網(wǎng)際網(wǎng)絡(luò)伺服器,或包含一前端元件,像是客戶端計算機,其具有一圖形用戶界面或一網(wǎng)際網(wǎng)絡(luò)瀏覽器,或任何其結(jié)合。這些系統(tǒng)元件可借助任何形式或數(shù)位數(shù)據(jù)通訊的媒體以連結(jié),像是一通訊網(wǎng)絡(luò)。通訊網(wǎng)絡(luò)可包含,例如,區(qū)域網(wǎng)絡(luò)(LAN)、廣域網(wǎng)絡(luò)(WAN)及計算機與網(wǎng)絡(luò)所行程的網(wǎng)際網(wǎng)絡(luò)。
計算機系統(tǒng)可包含客戶端及伺服器端??蛻舳思八欧鞫送ǔ1舜藶檫h(yuǎn)程連接的關(guān)系,且典型地經(jīng)由網(wǎng)絡(luò)進行互動??蛻舳伺c伺服器端之間的關(guān)系可借助執(zhí)行于各別計算機上的計算機程序的效果以提升,且使得彼此間同時具有客戶及伺服器端的關(guān)系。
在上述實施例所揭示的至少一個特征或步驟可使用應(yīng)用程序接口(API)的方式實現(xiàn)。API可用以確認(rèn)至少一個參數(shù),此至少一個參數(shù)被傳送于呼叫參數(shù)的應(yīng)用程序及其他軟件程序碼(例如,一操作系統(tǒng)、常式庫、函數(shù))之間,以提供服務(wù)、數(shù)據(jù)或執(zhí)行操作或計算。
API可以被實作于程序碼中的至少一個呼叫(call),用以通過一參數(shù)列表或其他基于API說明文件的呼叫定義的結(jié)構(gòu),以傳送或接收至少一個參數(shù)。參數(shù)可以是一常數(shù)、一金耀、一數(shù)據(jù)結(jié)構(gòu)、一物件、一物件類別、一變異數(shù)、一數(shù)據(jù)型態(tài)、一指標(biāo)、一陣列、一表單或其他呼叫方式。API的呼叫及參數(shù)可被實作于任何程序語言中。程序語言可決定字匯及呼叫慣例,使程序員借助使用存取函數(shù)以支持API。
在一些實施例中,API呼叫可以反饋至一應(yīng)用程序,使一裝置執(zhí)行此應(yīng)用程序,像是輸入功能、輸出功能、處理功能、電源功能、聯(lián)絡(luò)功能等等。
雖然本發(fā)明已以實施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍下,當(dāng)可作各種的更動與潤飾,因此本發(fā)明的保護范圍當(dāng)以權(quán)利要求為準(zhǔn)。