TW202236092A - 儲存除錯資訊的系統及方法 - Google Patents

儲存除錯資訊的系統及方法 Download PDF

Info

Publication number
TW202236092A
TW202236092A TW110119156A TW110119156A TW202236092A TW 202236092 A TW202236092 A TW 202236092A TW 110119156 A TW110119156 A TW 110119156A TW 110119156 A TW110119156 A TW 110119156A TW 202236092 A TW202236092 A TW 202236092A
Authority
TW
Taiwan
Prior art keywords
debug information
rom
memory
firmware
memory device
Prior art date
Application number
TW110119156A
Other languages
English (en)
Other versions
TWI779630B (zh
Inventor
黃君平
廖國鈞
許智翔
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 TW202236092A publication Critical patent/TW202236092A/zh
Application granted granted Critical
Publication of TWI779630B publication Critical patent/TWI779630B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • 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/4401Bootstrapping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

所揭露的是一種系統及方法,使除錯資料得以在初始化速度不墜的情況下所儲存。該系統包含處理器、韌體唯讀記憶體(ROM),以及耦接至韌體ROM的第一記憶體裝置。韌體ROM可以是BIOS ROM。第一記憶體裝置設置以在處理器上運行作業系統之前,儲存來自該韌體ROM的除錯資訊。以韌體ROM將除錯資訊儲存在第一記憶體裝置上,使關聯於韌體的除錯資訊得以輕易地存取,而毋須除錯韌體或纜線以接收除錯韌體之輸出。

Description

儲存除錯資訊的系統及方法
本揭露廣泛地涉及抓取運算系統中的除錯資訊(debug information),特別涉及將除錯資訊儲存在運算系統之本地儲存裝置上的系統及方法。
運算系統被使用於不同情境中廣泛的功能。某些運算系統是靠電池所運作,而可能需要低功率的運作以節省電池上的電量。另一方面,某些運算系統可插入電源插座,而低功率的運作不如運算效能重要。許多運算系統在效能與電力消耗之間維持平衡,即使是在插入電源插座時。無論所使用的運算系統是什麼類型,運算系統通常是在啟動時被初始化。擁有較多可用資源的運算系統進行初始化步驟,通常會比擁有較少可用資源的運算系統快。舉例來說,擁有較快速度的處理器及較快速度的硬碟之桌上型電腦,其啟動的速度,會比擁有較慢速度的處理器及較慢速度的硬碟之桌上型電腦快。某些時候,特定的硬體元件可能是運算系統初始化能夠多快的限制因素。舉例來說,擁有固態硬碟(SSD)的桌上型電腦,其啟動的速度,會比擁有磁碟的桌上型電腦快。
使運算系統之啟動時間或初始化時間極小化,是運算產業之目標。運算系統的使用者並不喜歡等待運算系統初始化,因為初始化所損失的每一分每一秒,都意味著生產力的損失。此外,擁有一般注意力廣度(attention span)的使用者會忘記當初運算系統被初始化的原因。因此,運算系統通常是被優化,以快速啟動的。減少啟動時間的另一個動機,是使停機時間(downtime)極小化,因為運算系統在啟動之期間是被列為停機的。離線的運算系統並無法為使用者之生產力帶來強化的效果或是貢獻。舉例來說,離線的運算系統並無處理運算工作。於是,已提交的運算工作,要不就是需要等待伺服器上線,要不就是被發送給另一台伺服器。
運算系統中所使用的韌體與子系統,或者是其他嵌入式系統,通常皆具有與以上所討論運算系統類似的停機問題。因此,這些系統的啟動時間,也是被優化的。在優化啟動時間時,並沒有產生除錯資訊。若韌體進行初始化時發生問題,除錯資訊通常是無法取得的,直到韌體之作業系統已在運行中。因此,幾乎沒有對技術員或使用者提供解決可能發生在初始化階段的問題之指引。運算系統的製造商通常會建立兩個版本的系統,除錯版本(debug version)以及發行版本(release version)。所建立的發行版本是將除錯資訊屏蔽,而所建立的除錯版本則是將除錯資訊輸出。發行版本的啟動速度比除錯版本快,因為啟動程序已將除錯資訊排除。本揭露直指解決的問題,涉及在維持合理的啟動時間的同時抓取發行版本中的除錯資訊。
「實施例」一詞及類似的詞彙旨在廣泛地指代本發明及以下請求項的所有申請標的。包含這些詞彙的陳述不應被理解為限制在此所述的申請標的或限制以下的請求項的含義或範圍。在此所涵蓋的本揭露之實施例,是由以下的請求項而非本發明內容所限定。本發明內容是本揭露之各方面的高階綜述,並且介紹了一些概念,這些概念在以下實施方式的段落中會進一步描述。本發明內容並不旨在標識出所請求的申請標的之必要特徵,也不旨在單獨用於決定所請求的申請標的之範圍。藉由參考本發明的整個說明書的適當部分、任何或所有的圖式,以及每個請求項,應當理解本申請標的。
本揭露的某些實施例提供一種系統,包含處理器、韌體唯讀記憶體(ROM),以及耦接至韌體ROM的第一記憶體裝置。第一記憶體裝置設置以在處理器上運行作業系統之前,儲存來自韌體ROM的除錯資訊。在一實施例中,上述系統更包含晶片組,經由第一匯流排耦接至處理器,並經由第二匯流排耦接至韌體ROM及第一記憶體裝置。在一實施例中,第一記憶體裝置為電子可抹除可程式化ROM(EEPROM),或是反或快閃(NOR flash)ROM。在一實施例中,除錯資訊是儲存在第一記憶體裝置上連續的記憶體位置。在一實施例中,除錯資訊包含第一除錯資訊及第二除錯資訊,而儲存在第一記憶體裝置上的第一除錯資訊被第二除錯資訊所部分地覆寫。
在一實施例中,除錯資訊包含離線傾印(offline dump)。在一實施例中,上述系統更包含網路介面,設置以將第一記憶體裝置上的除錯資訊發送至外部裝置。在一實施例中,上述系統更包含第二記憶體裝置,具有比第一記憶體裝置更高的容量。第二記憶體裝置設置以儲存作業系統所產生的系統事件日誌(system event logs)。在一實施例中,第二記憶體裝置包含隨機存取記憶體或硬碟,或者包含隨機存取記憶體及硬碟。在一實施例中,韌體ROM為基本輸入輸出系統(BIOS)ROM。
本揭露的某些實施例包含一種嵌入式系統。上述嵌入式包含微處理器、韌體唯讀記憶體(ROM),以及耦接至韌體ROM的記憶體裝置。記憶體裝置設置以在初始化微處理器之前,儲存來自韌體ROM的除錯資訊。在一實施例中,記憶體裝置為電子可抹除可程式化ROM(EEPROM),或是反或(NOR)快閃ROM。在一實施例中,除錯資訊是儲存在記憶體上連續的記憶體位置中。在一實施例中,除錯資訊包含第一除錯資訊及第二除錯資訊。儲存在記憶體裝置上的第一除錯資訊被第二除錯資訊所部分地覆寫。
本揭露的某些實施例提供一種將除錯資訊儲存在運算系統上的方法。使用運算系統的韌體唯讀記憶體(ROM)產生除錯資訊。將所產生的除錯資訊儲存在運算系統的記憶體裝置上,記憶體裝置可被韌體ROM所存取。使用運算系統的網路介面,將所儲存的除錯資訊發送給外部裝置。在一實施例中,除錯資訊是儲存在記憶體上連續的記憶體位置中。在一實施例中,使用韌體ROM產生隨後的除錯資訊。藉由部分地覆寫除錯資訊,儲存隨後的除錯資訊。在一實施例中,記憶體裝置為電子可抹除可程式化ROM(EEPROM),或是反或(NOR)快閃ROM。在一實施例中,韌體ROM為基本輸入輸出系統(BIOS)ROM。
以上發明內容並非意圖代表本揭露的每個實施例或每個觀點。反之,前述的發明內容僅提供在此列舉的某些新穎的觀念及特徵之範例。以上特徵及優點,以及本揭露的其他特徵及優點,當關聯於搭配的圖式及附加的請求項,從以下用來實施本發明的代表性實施例及模式的詳細敘述中,將立即清晰可見。
本發明可以許多不同的形式所實施。代表性的實施例被圖式所顯示,並將在此被詳細地敘述。本揭露為本發明的原則之範例或圖解,且並非意圖將本揭露之廣泛的觀點限制於繪式的實施例。在此基礎上,例如在摘要、發明內容及實施方式等段落中被揭露,但並未明確地在請求項中列舉的元件及限制,不應被單獨地、集體地、暗示地、推論地或其他方式地併入至請求項中。為了本詳細敘述之目的,除非被具體地否認,否則單數形包含複數形,反之亦然;且「包含」一詞意指「無限制地包含」。此外,表近似的詞彙,例如「約」、「幾乎」、「大體上」、「大概」及類似的詞彙,能在此被用來意指「在」、「近」、「近於」、「3-5%的範圍內」或「可接受的製造公差內」,或者其任何的邏輯組合。
關於本揭露,「運算裝置」、「運算系統」、「電腦系統」或「電腦」等詞彙,是指任何一種電動的或電池供電的設備,具有硬體、軟體及/或韌體元件,其中軟體及/或韌體元件可設置以運作裝置上的功能。
運算系統之正式發行的基本輸入輸出系統(basic input output system;BIOS)通常不會輸出訊息或除錯資訊,因為輸出除錯資訊會大幅影響運算系統之啟動時間。此外,使用者可能並非總是將來自運算系統的輸出訊息紀錄下來。除錯資訊通常在判斷錯誤發生之情況有助益。將錯誤資訊作為指引,則造成錯誤的情況可以在運算系統之除錯版本上被複製出來。運算系統之發行版本預先定義的系統事件日誌,卻是有限的。在錯誤或例外發生,而錯誤或例外缺乏相對應定義的系統事件日誌之情況下,追溯失敗發生之根本原因是很困難的。因此,將造成錯誤的情況重現出來,會是很困難的。在缺乏除錯資訊的情況下,使用者會耗費大量時間試圖為運算系統進行除錯。當運算系統啟動時,硬體之發行版本通常在BIOS運作之期間並不包含錯誤資訊的輸出。如此一來,使用者會很難向遠端的服務技術員傳達BIOS運作期間所發生的錯誤。
本揭露之實施例所提供的系統,出於除錯之目的而抓取關於BIOS活動的資訊。雖然是使用BIOS作為範例,本揭露之某些實施例可用於任何可被除錯的韌體(例如基板管理控制器)。
第1圖繪示先前技術中的一種除錯設置。除錯裝置102使用纜線104連接至外部裝置106。除錯裝置102及外部裝置106皆為運算裝置。除錯裝置102輸出訊息與除錯資訊。這些訊息與除錯資訊可經由纜線104而被傳輸至外部裝置106以供分析。當使用者求助於服務技術員並敘述所遭遇的問題時,使用者通常是使用運算裝置之發行版本,而服務技術員則可存取運算裝置之除錯版本(即除錯裝置102)。服務技術員使用除錯裝置102來嘗試重現使用者在運算裝置之發行版本所遭遇的問題。發行版本通常不會產生足夠的除錯資訊給服務技術員,故使用者無法將除錯資訊或者遭遇問題之前所產生的原始資料發送給服務技術員。服務技術員必須僅依靠使用者的敘述。
不同於依靠使用者之敘述以重現故障或錯誤的情況,本揭露之某些實施例提供抓取資訊的儲存裝置,其所抓取的資訊可提供給服務技術員,以協助解決問題。根據本揭露之某些實施例,第2A圖是範例運算系統201中的主機板200之方塊圖。主機板200在此是作為範例所用。任何在嵌入式系統中的印刷電路板皆可受益於本揭露之實施例。電源218被提供給主機板200中的元件時,主機板200進行運作。主機板200可包含處理器202、北橋204以及南橋206。處理器202雖然是被列舉為單獨的方塊,然其可包含多個處理器。處理器202可以是通用的或特殊用途的處理器,或者是微處理器。處理器202亦可為多核心處理器。
在某些實施例中,主機板200並不包含北橋204,而北橋204之功能是由處理器202所實作。根據本揭露之某些實施例,第2B圖提供一種範例系統203,範例系統203具有主機板205,主機板205並不包含南橋與北橋。替代地,由處理器202b實作北橋204(第2A圖)之功能。晶片組207被提供來實作類似於南橋206(第2A圖)之功能。第2A圖及第2B圖所提供的主機板架構,可受益於本揭露之某些實施例。主機板200與主機板205之架構僅為範例,而並非限制可受益於本揭露的系統。
關於第2A圖,北橋204是直接連接至匯流排230的晶片,匯流排230可存取處理器202。北橋204連接與處理器202進行通訊時需要高速或高效能的元件。舉例來說,在第2A圖中,主機板200包含隨機存取記憶體(random access memory;RAM)210,以及連接至北橋204的圖形處理單元(graphics processing unit;GPU)及/或視訊介面(video interface)208。RAM 210可包含雙倍資料率同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory;DDR SDRAM)之雙直插記憶體模組(dual inline memory modules;DIMMs)。GPU及/或視訊介面208使螢幕(未在圖式中示出)得以連接至主機板200。視訊處理及輔助記憶體(secondary memory)存取通常需要高速的運作以及對於處理器202的存取,因此GPU及/或視訊介面208及RAM 210連接至北橋204。在某些實施例中,GPU及/或視訊介面208之範例包含快速週邊元件互連(peripheral component interconnect express;PCIe)介面或加速圖形埠(accelerated graphics port;AGP)。反之,在第2B圖中,處理器202b直接連接至GPU及/或視訊介面208,以及RAM 210。
再回到第2A圖,南橋206是經由匯流排232而直接連接至北橋204的晶片,並且對相較於連接至北橋204的元件以較慢速度進行通訊的元件提供存取。舉例來說,南橋206可連接硬碟(HD)介面212、輸入/輸出(I/O)介面214,以及BIOS唯讀記憶體(ROM)216。HD介面212可包含串列進階技術附接(serial advanced technology attachment;SATA)介面、整合裝置電子(integrated drive electronics;IDE)介面、週邊元件互連(peripheral component interconnect;PCI)介面等。I/O介面214可包含序列埠、平行埠、鍵盤介面、滑鼠介面、通用串列匯流排(universal serial bus;USB)、乙太網路、音訊編解碼器(audio codec)等。BIOS ROM 216可包含快閃ROM、電子可抹除可程式化ROM(EEPROM)等。主機板200包含匯流排234,匯流排234使BIOS ROM 216得以連接至南橋206。
反之,在第2B圖中,晶片組207實作類似於第2A圖之南橋206的功能。晶片組207經由匯流排233而連接至處理器202b,並且連接至其他介面(例如HD介面212、I/O介面214等)。匯流排235可用以連接至其他的介面。雖然第2A圖及第2B圖指示了BIOS RAM 216,在其他實施例中,例如在嵌入式系統中,此方塊可被概括地指示為韌體ROM。
在某些實施例中,附加記憶體(additional memory)220(第2A圖)可被提供於主機板200之中,以抓取除錯資訊。附加記憶體220可以是為一或多個啟動對話(boot session)(例如兩個啟動對話、三個啟動對話等)抓取除錯資訊的低容量記憶體。藉由提供附加記憶體220,可抓取關聯於BIOS ROM 216的除錯資訊。舉例來說,當電源218被提供給主機板200時,首先BIOS ROM 216會被初始化。在BIOS ROM 216開始進行啟動程序的同時,除錯資訊被抓取到附加記憶體220上。若使用主機板200的運算裝置201在啟動會化之期間故障,則關於啟動對話的除錯資訊會被抓取到附加記憶體220上。在某些範例中,除錯資訊可包含韌體(例如BIOS)所安裝或處理的協定(protocols)及/或軟體模組。於是,除錯資訊可包含韌體詳細的進度資訊。除錯資訊可包含被韌體所更新至基板管理控制器(Baseboard Management Controller;BMC)、系統管理BIOS(System Management BIOS;SMBIOS)或任何其他目標的部分資料。除錯資訊可包含系統(例如運算系統201、運算系統203)中由韌體所進行初始化中的一或多個裝置。上述這些在除錯資訊中的範例項目並未包含在系統事件日誌中,因為這需要承擔過量的資訊。系統事件日誌包含預先定義且可認定的事件,而除錯資訊則包含運算系統運作之鉅細靡遺的細節,並不容易增添至可認定的態樣。
附加記憶體220在某些實施例中是至關重要的,因為在BIOS運作之期間,處理器202尚未被初始化並運行作業系統。作業系統是一種進階的軟體,可為預先定義的事件抓取系統事件日誌。在某些案例中,系統事件日誌可作為除錯資訊,以協助解決使用者的問題。系統事件日誌可產生於遍及運算系統200之初始化的不同階段。舉例來說,在載入作業系統之前,作業系統無法產生系統事件日誌。所抓取之最初的系統事件日誌是由韌體(例如BIOS、BMC等)所產生,並可被儲存在有限的韌體記憶體(例如BIOS ROM 216)中。載入作業系統後,額外的系統事件日誌於是由作業系統所產生,並且被儲存在硬碟中。韌體記憶體或許是足夠抓取有限的系統事件日誌,但卻不足以抓取錯誤資訊。因此,在主機板200上提供附加記憶體220,可允許抓取涉及關聯於BIOS ROM 216的活動之除錯資訊。否則,關於BIOS活動(例如開機自我測試(power-on self-test;POST)活動)的情境資訊未被抓取,也就無法在使用者遭遇問題時供除錯之用。提供附加記憶體220可降低服務技術員協助使用者解決問題的相關成本與時間。
提供附加記憶體220簡化了提供除錯資訊的運算系統201之設計。第1圖之先前技術設置100需要外部裝置106,外部裝置106抓取除錯裝置102所產生的除錯資訊。除錯裝置102需要特殊的韌體,並且不同於運算系統201之發行版本。因此,除錯裝置102與發行版本並不相同,且在使用者所遭遇並傳達給服務技術員的內容,以及服務技術員所能用除錯裝置102重現的內容,這兩者之間可能會有落差。除錯裝置102上的特殊韌體,在除錯資訊正在產生的同時,輸出除錯資訊。
本揭露之某些實施例並不需要外部裝置106來抓取除錯資訊。此外,特殊韌體、纜線或者除錯裝置對於存取除錯資訊而言,並非必要。
第2A圖中的附加記憶體220,以非揮發性儲存裝置為較佳。在故障或系統重新啟動之事件中,揮發性的儲存裝置可能會損失資料,而非揮發性儲存裝置則可防止資料損失。附加記憶體200之範例包含反或(NOR)快閃、EEPROM、非揮發性DIMM、資料中心永久性記憶體模組(data center persistent memory modules;DCPMMs)、非揮發性RAM等。非揮發性儲存裝置之所以較佳,是因為除錯資訊一旦被儲存,則可隨時存取,而無須啟用特殊的除錯韌體。藉由安裝附加記憶體220,第1圖中的纜線104便不再需要抓取除錯資訊。
根據本揭露之某些實施例,第3圖是繪示如何存取所儲存的除錯資訊的流程圖300。舉例來說,帶有主機板200(第2A圖)的運算系統201(第2A圖)在運作時,提供系統運行時間輸出(system runtime output)302。系統運行時間輸出302可包含:(i)於載入運算系統201之作業系統前所取得的除錯資訊;(ii)於載入運算系統201之作業系統後的除錯資訊與系統事件日誌;或者(i)及(ii)兩者皆包含。系統運行時間輸出302被儲存在可存取非揮發性空間304中。可存取非揮發性空間304可包含一或多個記憶體裝置(例如第2圖中供載入作業系統之前所取得的除錯資訊之用的附加記憶體220、一或多個連接至HD介面212及/或I/O介面214等的硬碟)。系統運行時間輸出302被儲存在可存取非揮發性空間304中,直到已準備使用之。
儲存在可存取非揮發性空間304中的系統運行時間輸出302,可使用運行時讀取操作306、預設計命令(designed command)308、離線傾印(offline dump)310、瀏覽工具(access through tool)312,或者任何其他方法314所存取。存取系統運行時間輸出302的方法取決於內含可存取非揮發性空間304的裝置之類型。運行時讀取操作306包含當系統運行時間輸出302已產生,顯示或存取被儲存在可存取非揮發性空間304上的系統運行時間輸出302。在某些實施例中,舉例來說,函式spi_read()是用以儲存來自可存取非揮發性空間304的系統運行時間輸出302。函式spi_read()存取儲存系統運行時間輸出302的特定記憶體裝置(例如第2A圖或第2B圖之附加記憶體220)。函式spi_read()可被呼叫於運行時讀取操作306之期間。在某些實施例中,使用了預設計命令308。預設計命令308類似於經修改過的函式spi_read(),或者某些其他客製的讀取函數。在某些實施例中,離線傾印310包含存取非揮發性空間304上的原始資料傾印映像檔。在某些實施例中,瀏覽工具312包含具有一種工具(例如除錯工具),使來自非揮發性空間304的設定或資料得以傾印至儲存裝置(例如串列平行介面(serial parallel interface)快閃裝置),或者得以使用系統或韌體介面將來自非揮發性空間304的設定或資料列印在紙張上或顯示在螢幕上。非揮發性空間304使服務技術員得以存取使用者機器上的除錯資訊及其他訊息。服務技術員可使用使用者機器上的網路介面來存取除錯資訊。
根據本揭露之某些實施例,第4A圖繪示附加記憶體220在第一啟動對話之後的記憶體狀態,而第4B圖則繪示附加記憶體220在第二啟動對話之後的記憶體狀態。所選擇作為附加記憶體(例如第2B圖之附加記憶體220)的記憶體型態,可具有讀取與寫入速度及容量的暗示。在某些實施例中,附加記憶體(第2B圖)可在有限次數的啟動對話(例如兩個啟動對話、三個啟動對話等)期間內,保有除錯資訊。附加記憶體220的狀態400是在儲存第一啟動對話的除錯資訊之後的一種範例記憶體狀態。第一啟動對話的除錯資訊是被儲存在第一記憶體位置402與第二記憶體位置404之間。在附加記憶體220之狀態400中,第二記憶體位置404之後的記憶體位置並沒有儲存任何資訊。
如第4B圖中所示,在第二啟動對話之後,附加記憶體220之狀態從狀態400變為狀態401。第二啟動對話之除錯資訊所儲存的位置,是從第三記憶體位置406開始。附加記憶體220並不具有足夠的閒置空間以儲存第二啟動對話的所有除錯資訊,因此第一啟動對話的第一部份除錯資訊是被覆寫的。於是,第二啟動對話的除錯資訊被儲存在第三記憶體位置406與第四記憶體位置408之間。第一啟動對話的第二部分除錯資訊並未被覆寫,而被留在第五記憶體空間410與第二記憶體空間404之間的記憶體上。舉例來說,當下一次記憶體為了第三啟動對話而被寫入,第三啟動對話的除錯資訊所儲存的位置,將會從第五記憶體位置410開始。
在某些實施例中,保存最後一部分的除錯資訊是有價值的,因為在啟動之期間,最近的資料會比較為久遠的資料更有價值。舉例來說,當運算系統啟動且拋出一個例外時,被寫入記憶體最後一部分除錯資訊將屬於所拋出的例外,以及導致所拋出的例外的步驟,或者在所拋出的例外之前的步驟。隨著較早寫入的資料與所拋出的例外所屬資料之間的期間增加,比起所拋出的例外所屬之資料較早寫入的資料,可以是較不重要的。舉例來說,當相繼啟動時,USB控制器首先被初始化且初始化正確,接著SATA控制器被初始化且初始化正確,但接下來風扇控制器則初始化失敗。在下一次啟動之期間,屬於USB控制器之成功初始化的資料被覆寫,但之後所儲存屬於風扇控制器的資料並未被覆寫。如此一來,僅藉由判斷供寫入附加記憶體220(第2B圖)的記憶體儲存方案,即可保存錯誤。第4A圖及第4B圖提供擁有足夠容量的一種記憶體裝置,以儲存一個啟動對話的除錯資訊,以及部分第二啟動對話的除錯資訊。這僅作為範例之用,並且取決於記憶體裝置之容量。
已知EEPROM的儲存容量有限,如此一來,EEPROM可使用第4圖中所提供的儲存方案。在某些實施例中,NOR快閃及EEPROM為較佳,因為這些記憶體裝置並不需要等待其他裝置進行初始化,因而當電源開啟時,可供儲存除錯資訊。此外,NOR快閃及EEPROM並不需要額外的晶片及/或裝置。通常,在第1圖之先前技術設置100中,輸出到外部裝置106(第1圖)的BIOS除錯訊息被限制在上限約為每秒14千位元組(KB)的傳輸速率(baud rate)。舉例來說,AMI BIOS輸出約1.8百萬位元組(MB)的除錯資訊,為POST程序增添了約165秒的時間。傳達除錯資訊給外部裝置106的輸出速度緩慢,是第1圖之設置100的瓶頸。
增添附加記憶體220(第2B圖)以儲存除錯資訊,相較於第1圖之先前技術設置100,可提供兩倍到三倍的效能提升。根據本揭露之某些實施例,第5圖是提供不同裝置設置之間的啟動時間之比較的表格。除錯BIOS屬於第1圖之先前技術設置100,其POST時間約需耗費3分45秒,而輸出約1.8MB的除錯資訊。正式BIOS屬於發行版本,其POST時間約需耗費1分鐘,但並無輸出任何除錯資訊。如此可見,提供除錯資訊會使啟動時間增加到接近原本的4倍。
某些設置嘗試藉由不輸出過多資訊而卻有可接受的POST時間的部分除錯BIOS,在除錯BIOS與正式BIOS之間取得平衡。部分除錯BIOS顯示出,以約1分30秒的POST時間,輸出約0.3MB。如所指示的,產生輸出給外部裝置106(第1圖)會大幅影響POST時間。在第5圖中,傳達除錯資訊的輸出速度約為11KB/s。藉由採用本揭露之某些實施例,除錯訊息可使用更快的介面所儲存,因而避免關聯於第1圖之設置100的瓶頸。舉例來說,帶有EEPROM的正式BIOS可提供約1分45秒的預期POST時間。第5圖中所提供的預期POST時間,可基於用以抓取除錯資訊的記憶體裝置之類型而改變。
本揭露之實施例在傳統系統之上提供了改進,可在沒有纜線(例如第1圖之纜線104)的情況下產生除錯資訊與訊息。在沒有第1圖之纜線104的情況下,除錯資訊與訊息通常是無法取得的。因此,本揭露之實施例提供附加記憶體(例如附加記憶體220),以抓取此資訊。由於上述資訊是儲存在非揮發性空間上,除錯資訊與所產生的訊息可取決於用來儲存資訊的記憶體之類型,而以不同的方式所存取。
如本申請中所使用的「元件」、「模組」、「系統」或類似的詞彙,通常係指與電腦相關的實體,可以是硬體(例如電路)、硬體與軟體之組合、軟體,或者與運作機器相關、具有一種或更多種特定功能的實體。舉例而言,元件可以是但不限於在處理器(例如數位信號處理器)上執行的程序、處理器、物件、可執行檔、執行緒(thread of execution)、程式,及/或電腦。作為示例,在控制器上執行的應用,以及控制器本身,皆可為元件。一個或更多個元件可常駐於程序及/或執行緒之內,且一個元件可被侷限在一台電腦上及/或分散在兩台或更多台電腦之間。此外,「裝置」可出自於特殊設計的硬體之形式;藉由執行其上使硬體能執行特定功能的軟體所特製出的通用硬體;儲存在電腦可讀取媒體上的軟體;或者其組合。
雖然本發明之各種實施例已被敘述如上,應被理解的是,該等實施例僅被呈現來作為範例,而非限制。即使本發明已參考一種或更多種實施方式所繪示及敘述,當閱讀及理解本說明書及附加的圖式時,均等的替換及修改將可被其他熟習此項技術者想到或知曉。此外,雖然本發明之特定的特徵可僅被數個實施例的其中之一所揭露,這種特徵可與其他實施例的一個或更多個其他特徵進行組合,而此其他特徵對於任何給定的或特定的應用可能是期望的或有利的。因此,本發明之廣度及範圍不應受限於任何以上敘述的實施例。反之,本發明之範圍應根據以下的請求項及其均等物所定義。
在此所使用的術語僅以敘述特定的實施例為目的,而並非意圖限制本發明。如在此所使用的,單數形「一」及「該」意圖亦包含複數形,除非文意明顯另有所指。此外,倘若「包含」、「具有」一詞或者其變形,被使用在實施方式及/或請求項中,這類詞彙意圖被包含在類似於「包括」一詞的方式中。
除非另有定義,在此所使用的所有詞彙(包含技術性及科學性的詞彙),與本技術領域之普通技術之人一般所理解的,具有相同的含意。此外,像是被定義在一般所使用的字典中的詞彙,應被解讀為具有與它們在相關技術的文意中一致的含意,且除非在此被明確地如此定義,否則該等詞彙不會被解讀為理想化或過度正式的概念。
100:設置 102:除錯裝置 104:纜線 106:外部裝置 200:主機板 201:運算系統 202:處理器 204:北橋 206:南橋 208:GPU/視訊介面 210:RAM 212:HD介面 214:I/O介面 216:BIOS ROM 218:電源 220:附加記憶體 203:運算系統 205:主機板 202b:處理器 207:晶片組 233,235:匯流排 300:流程圖 302:系統運行時間輸出 304:可存取非揮發性空間 306:運行時讀取操作 308:預設計命令 310:離線傾印 312:瀏覽工具 314:其他方法 400:狀態 402:第一記憶體位置 404:第二記憶體位置 410:第五記憶體位置 401:狀態 406:第三記憶體位置 408:第四記憶體位置
本揭露將可從以下示範的實施例之敘述搭配附帶的圖式更佳地理解。 第1圖繪示先前技術中的一種除錯設置。 第2A圖是根據本揭露之某些實施例的一種主機板的第一方塊圖。 第2B圖是根據本揭露之某些實施例的一種主機板的第二方塊圖。 第3圖是根據本揭露之某些實施例所繪示存取所儲存的除錯資訊的流程圖。 第4A圖根據本揭露之某些實施例繪示附加記憶體在第一啟動對話之後的第一狀態。 第4B圖繪示第4A圖之附加記憶體在第二啟動對話之後的第二狀態。 第5圖是根據本揭露之某些實施例提供不同裝置設置之間的啟動時間之比較的表格。
本揭露可接受各式各樣的修改及替代的形式。某些代表性的實施例,已被圖式中的範例所顯示,並將在此被詳細地敘述。然而,應被理解的是,本發明並非意圖限定於所揭露的特定形式。反之,本揭露涵蓋所有的修改、均等物,以及落在如附加的請求項所定義的本發明之範圍與精神之內的替代方案。
200:主機板
201:運算系統
202:處理器
204:北橋
206:南橋
208:GPU/視訊介面
210:RAM
212:HD介面
214:I/O介面
216:BIOS ROM
218:電源
220:附加記憶體
203:運算系統
205:主機板
202b:處理器
207:晶片組
233,235:匯流排

Claims (10)

  1. 一種儲存除錯資訊的系統,包括: 一處理器; 一韌體唯讀記憶體(ROM);以及 一第一記憶體裝置,耦接至該韌體ROM,該第一記憶體裝置設置以在該處理器上運行一作業系統之前,儲存來自該韌體ROM的除錯資訊。
  2. 如請求項1之系統,更包括: 一晶片組,經由一第一匯流排耦接至該處理器,並經由一第二匯流排耦接至該韌體ROM及該第一記憶體裝置。
  3. 如請求項1之系統,其中該第一記憶體裝置為一電子可抹除可程式化ROM(EEPROM),或是一反或快閃(NOR flash)ROM。
  4. 如請求項1之系統,其中該除錯資訊是儲存在該第一記憶體裝置上連續的記憶體位置; 其中該除錯資訊包含一第一除錯資訊及一第二除錯資訊,其中儲存在該第一記憶體裝置上的該第一除錯資訊被該第二除錯資訊部分地覆寫。
  5. 如請求項1之系統,其中該除錯資訊包含一離線傾印(offline dump)。
  6. 如請求項1之系統,更包括: 一第二記憶體裝置,具有比該第一記憶體裝置更高的容量,該第二記憶體裝置設置以儲存該作業系統所產生的系統事件日誌(system event logs); 其中該第二記憶體裝置包含一隨機存取記憶體或一硬碟,或者包含該隨機存取記憶體及該硬碟兩者。
  7. 如請求項1之系統,其中該韌體ROM為一基本輸入輸出系統(BIOS)ROM。
  8. 一種嵌入式系統,包括: 一微處理器; 一韌體唯讀記憶體(ROM);以及 一記憶體裝置,耦接至該韌體ROM,該記憶體裝置設置以在初始化該微處理器之前,儲存來自該韌體ROM的除錯資訊。
  9. 一種將除錯資訊儲存在一運算系統上的方法,包括: 使用該運算系統的一韌體唯讀記憶體(ROM)產生除錯資訊; 將所產生的該除錯資訊儲存在該運算系統的一記憶體裝置上,該記憶體裝置可被該韌體ROM所存取;以及 使用該運算系統的一網路介面,將所儲存的該除錯資訊發送給一外部裝置。
  10. 如請求項9之方法,更包括: 使用該韌體ROM產生隨後的除錯資訊;以及 藉由部分地覆寫該除錯資訊,儲存該隨 後的除錯資訊; 其中該除錯資訊是儲存在該記憶體上連續的記憶體位置中。
TW110119156A 2021-03-02 2021-05-27 儲存除錯資訊的系統及方法 TWI779630B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/190,147 US11275638B1 (en) 2021-03-02 2021-03-02 Systems and methods for storing debug information
US17/190,147 2021-03-02

Publications (2)

Publication Number Publication Date
TW202236092A true TW202236092A (zh) 2022-09-16
TWI779630B TWI779630B (zh) 2022-10-01

Family

ID=80683442

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110119156A TWI779630B (zh) 2021-03-02 2021-05-27 儲存除錯資訊的系統及方法

Country Status (3)

Country Link
US (1) US11275638B1 (zh)
CN (1) CN114996042A (zh)
TW (1) TWI779630B (zh)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698487B2 (en) * 2004-06-30 2010-04-13 Intel Corporation Share resources and increase reliability in a server environment
JP4720926B2 (ja) * 2009-03-26 2011-07-13 ブラザー工業株式会社 処理装置
US9262298B2 (en) * 2012-02-16 2016-02-16 Microsoft Technology Licensing, Llc Debugging object abstractions
US9268681B2 (en) * 2012-08-30 2016-02-23 Apple Inc. Heterogeneous data paths for systems having tiered memories
US9355024B2 (en) * 2012-10-10 2016-05-31 Apple Inc. Systems and methods for nonvolatile memory performance throttling
US9934045B1 (en) * 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9678682B2 (en) * 2015-10-13 2017-06-13 International Business Machines Corporation Backup storage of vital debug information
JP7202293B2 (ja) * 2016-10-11 2023-01-11 グリーン ヒルズ ソフトウェア,エルエルシー 垂直統合インストルメント化およびトレース再構成のためのシステム、方法およびデバイス
US11073885B2 (en) * 2017-07-25 2021-07-27 Dell Products, L.P. Battery architecture for variable loads and output topologies in an information handling system
US10890923B2 (en) * 2017-08-23 2021-01-12 Textron Innovations Inc. Methods and systems for charge control
US10706948B2 (en) * 2018-07-12 2020-07-07 Allegro Microsystems, Llc Multi-level memory safety of a sensor integrated circuit
US11409544B2 (en) * 2019-05-07 2022-08-09 Microsoft Technology Licensing, Llc Dynamically-configurable baseboard management controller

Also Published As

Publication number Publication date
CN114996042A (zh) 2022-09-02
TWI779630B (zh) 2022-10-01
US11275638B1 (en) 2022-03-15

Similar Documents

Publication Publication Date Title
US9158628B2 (en) Bios failover update with service processor having direct serial peripheral interface (SPI) access
JP4688821B2 (ja) システム構成の遠隔修正のための方法および装置
US9501289B2 (en) Method of a UEFI firmware and computer system thereof
US20030233534A1 (en) Enhanced computer start-up methods
US9529410B2 (en) Service processor (SP) initiated data transaction with BIOS utilizing power off commands
US20180322016A1 (en) System and method to capture stored data following system crash
US9448889B2 (en) BIOS failover update with service processor
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
KR100764921B1 (ko) 장치 이뉴머레이션을 위한 가상 rom
US7908417B2 (en) Motherboard system, storage device for booting up thereof and connector
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
EP3062216A1 (en) Network bios management
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
WO2013088818A1 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
US20100095104A1 (en) Administering Computer Processor Execution Of Basic Input/Output Services Code
US10491736B2 (en) Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
KR20140080948A (ko) 데이터 저장 장치의 동작 방법
TWI779630B (zh) 儲存除錯資訊的系統及方法
TWI743480B (zh) 電腦系統與其開機方法
US20240028433A1 (en) Reporting pcie device error information
CN112667544A (zh) 一种控制主板插槽使能的方法、装置、系统及介质
US10838737B1 (en) Restoration of memory content to restore machine state
CN113646745A (zh) 禁用软件持久性
CN111176735B (zh) 一种心电图机启动加速方法

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent