TWI494752B - 使用基於唯讀記憶體啟始單元的圖形處理單元啟始技術和可程式化微控制器 - Google Patents

使用基於唯讀記憶體啟始單元的圖形處理單元啟始技術和可程式化微控制器 Download PDF

Info

Publication number
TWI494752B
TWI494752B TW102102678A TW102102678A TWI494752B TW I494752 B TWI494752 B TW I494752B TW 102102678 A TW102102678 A TW 102102678A TW 102102678 A TW102102678 A TW 102102678A TW I494752 B TWI494752 B TW I494752B
Authority
TW
Taiwan
Prior art keywords
ifr
rom
instruction
microcontroller
unit
Prior art date
Application number
TW102102678A
Other languages
English (en)
Other versions
TW201405302A (zh
Inventor
Lincoln Garlick
Saket Jamkar
Steven Mueller
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of TW201405302A publication Critical patent/TW201405302A/zh
Application granted granted Critical
Publication of TWI494752B publication Critical patent/TWI494752B/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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

使用基於唯讀記憶體啟始單元的圖形處理單元啟始技術和可程式化微 控制器
本發明之具體實施例概略關於啟始,更特定而言,係關於啟始使用基於唯讀記憶體啟始單元的圖形處理器(GPU,“Graphics processing unit”)和一種可程式化微控制器。
某些先進的電腦系統利用一特殊處理器來提高一般目的CPU的處理能力,例如圖形處理單元(GPU)。基本上在這種架構中,該GPU被啟始來以一預定的方式在一通訊鏈路(例如周邊組件互連接快速(PCIe ®,“Peripheral Component Interconnect Express”)鏈路)被建立之前設置該GPU,。一種習用啟始該GPU的方法為藉由自該GPU外部的一唯讀記憶體(ROM,“Read-only memory”)讀取指令,並根據那些指令執行寫入作業到該GPU內的暫存器。特別是,在重置之後一段預定時間被觸發的一自ROM啟始的組件(IFR,“Initialize-from-ROM”)在決定該ROM存在之後即執行該等暫存器寫入作業。當該IFR完成寫入到該等暫存器時,該IFR在該通訊鏈路上釋放一持斷(Holdoff)以允許進行通訊。對於PCIe裝置,釋放該持斷即允許LTSSM鏈路訓練開始,且基本上是僅在該IFT完成其暫存器寫入作 業之後發生,藉以確保這些寫入不會被系統內其它程式或程序所干擾。
這種習用方法中鏈路訓練僅在所有暫存器寫入作業完成之後才開始,因此無法完全防止錯誤,且不能夠除錯。特別是,因為PCI鏈路訓練僅在該等暫存器寫入已經完成之後才開始,所以無法辨識出防止該等寫入作業完成的任何錯誤。另外,因為該IFR僅自該ROM讀取,並寫入到該等暫存器,個別的暫存器位址必須在該ROM內被編碼,因此需要大型的ROM。此外,該IFR基本上無法提供額外的功能,例如讀取-修改-寫入作業、輪詢作業、分支化、以及時間延遲,這些皆可用於該GPU的啟始和除錯。
如前所述,本技術中需要一種更為有效的方法來啟始一圖形處理單元,並可解決上述之一或多項缺點。
本發明一種具體實施例提出一種執行一圖形處理單元(GPU)之啟始作業的方法。該方法包括在執行一或多項啟始作業時可偵測一錯誤。此外,該方法包括釋放在耦合該GPU至一記憶體的一通訊鏈路上的持斷,並藉此允許一旦該系統開機時發生的錯誤可經由軟體進行除錯,或甚至使得除錯輸出可顯示給一使用者來指明該錯誤。在一具體實施例中,該方法進一步包括程式化一微控制器來執行該等一或多項啟始作業中至少一項作業。
其它具體實施例包括但不限於一電腦可讀取媒體,其中包括有指令可使得一處理單元實作該等經揭示方法之一或多種態樣,以及一種系統,可設置成實作該等經揭示方法的一或多種態樣。
100‧‧‧電腦系統
102‧‧‧中央處理單元
103‧‧‧裝置驅動器
104‧‧‧系統記憶體
105‧‧‧記憶體橋接器
106‧‧‧通訊路徑
107‧‧‧輸入/輸出橋接器
108‧‧‧輸入裝置
110‧‧‧顯示器
112‧‧‧平行處理子系統
113‧‧‧PCIe鏈路
114‧‧‧系統碟
116‧‧‧交換器
118‧‧‧網路轉接器
120,121‧‧‧嵌入卡
200‧‧‧子系統
202‧‧‧繪圖卡
210‧‧‧圖形處理單元
231‧‧‧IFR控制暫存器
232‧‧‧IFR錯誤狀態暫存器
233‧‧‧PCIe組態規格暫存器
234‧‧‧PCIe基底位址暫存器#0暫存器
235‧‧‧微控制器交遞暫存器
236‧‧‧PCIe鏈路訓練持斷暫存器
237‧‧‧自動釋放暫存器
240‧‧‧自唯讀記憶體啟始的元件
242‧‧‧匯流排
250‧‧‧微控制器
255‧‧‧微控制器組態暫存器
260‧‧‧唯讀記憶體
310‧‧‧固定功能段
311‧‧‧安全性特徵
312‧‧‧唯讀記憶體驗證值
319‧‧‧延伸段
320‧‧‧IFR指令集
322‧‧‧IFR指令
323‧‧‧位址
324‧‧‧資料
325‧‧‧最後非微控制器程式化指令
329‧‧‧指令
330‧‧‧微控制器指令集
331‧‧‧微控制器指令
332‧‧‧位址
333‧‧‧資料
334‧‧‧最後指令
所以,可以詳細瞭解本發明上述特徵之方式當中,本發明之一更為特定的說明簡述如上,其可藉由參照具體實施例來進行,其中一些例示於所附圖式中。但是應要注意到,該等附屬圖式僅例示本發明的典型具體實施例,因此其並非要做為本發明之範圍的限制,其可允許其它同等有效的具體實施例。
第一圖例示設置成實作本發明一或多種態樣之一種電腦系統;第二圖例示根據本發明一具體實施例中設置成執行GPU啟始的一子系統;第三圖為根據本發明一具體實施例中第二圖的ROM之更為細部的圖示;第四圖為根據本發明一具體實施例在發生一錯誤時用於經由一IFR組件執行啟始和釋放一PCIe鏈路之方法步驟的流程圖;以及第五圖係根據本發明一具體實施例用於在重置時設置一GPU的方法步驟之流程圖。
系統概述
第一圖例示設置成實作本發明一或多種態樣的一種電腦系統。如所示,電腦系統100包括一中央處理單元(CPU)102與一系統記憶體104,其經由包括一記憶體橋接器105的互連接路徑進行通訊。記憶體橋接器105可為例如一北橋晶片,其經由一匯流排或其它通訊路徑106(例如HyperTransport鏈路)連接到一I/O(輸入/輸出)橋接器107。I/O橋接器107可為例如一南橋晶片,其接收來自一或多個使用者輸入裝置108(例如鍵盤、滑鼠)的使用者輸入,並經由通訊路徑106及記憶體橋接器105轉送該 輸入到CPU 102。一平行處理子系統112經由一通訊鏈路耦合至記憶體橋接器105。此通訊鏈路在一實施例中為一PCI(周邊組件互連接)Express(PCIe)鏈路113。在一具體實施例中,平行處理子系統112為一繪圖子系統,其傳遞像素到一顯示器110(例如一習用陰極射線管或液晶式的監視器)。一系統碟114亦連接至I/O橋接器107。一交換器116提供I/O橋接器107與其它像是網路轉接器118與多種嵌入卡120,121等其它組件之間的連接。其它組件(未明確顯示),包括有通用串列匯流排(USB,"Universal serial bus”)或其它埠連接、光碟(CD)驅動器、數位視訊碟(DVD)驅動器、薄膜記錄裝置及類似者,其亦可連接至I/O橋接器107。
在一具體實施例中,平行處理子系統112加入可針對圖形及視訊處理最佳化的電路(包括例如視訊輸出電路),且足以構成一圖形處理單元(GPU)。在另一具體實施例中,平行處理子系統112加入可針對一般性目的處理最佳化的電路,而可保留其所屬之運算架構。在又另一具體實施例中,平行處理子系統112可被整合於一或多個其它系統元件,例如記憶體橋接器105、CPU 102、及I/O橋接器107而形成一系統上晶片(SoC,“System on chip”)。
將可瞭解到此處所示的系統僅為例示性,其有可能有多種變化及修正。該連接拓樸,包括橋接器的數目與配置、CPU 102的數目及平行處理子系統112的數目皆可視需要修改。例如,在一些具體實施例中,系統記憶體104直接連接至CPU 102而非透過一橋接器耦接,而其它裝置(組件)則可透過記憶體橋接器105及CPU 102與系統記憶體104進行通訊。在其它可替代的拓樸中,平行處理子系統112連接至I/O橋接器107或直接 連接至CPU 102,而非連接至記憶體橋接器105。在又其它具體實施例中,I/O橋接器107及記憶體橋接器105可被整合到一單一晶片當中。大型具體實施例可包括兩個或更多的CPU 102,及兩個或更多的平行處理子系統112。此處所示的該等特定組件皆為選擇性的;例如其可支援任何數目的嵌入卡或周邊裝置。在一些具體實施例中,交換器116可以被省略,使得網路轉接器118及嵌入卡120、121直接連接至I/O橋接器107。
第二圖例示根據本發明一具體實施例中設置成執行GPU啟始的一子系統200。如所示,子系統200係設置在一繪圖卡202上,且包括但不限於經由一PCIe鏈路113耦合至一記憶體橋接器105的一GPU 200,以及一ROM 260。
GPU 210包括搭接(strap)245、一自ROM啟始的元件(IFR)240、一微控制器250、以及PCIe基底位址暫存器#0(“BAR0)暫存器234。搭接245可自GPU 210突出,並可包括可被讀取來確認關於GPU 210、繪圖卡202、及/或子系統200的資訊之設定。特別是,搭接245可由IFR 240讀取來決定ROM 260是否存在於子系統200內。在一些具體實施例中,IFR 240除了其初始讀取搭接245之外沒有任何額外動作,並當搭接245指明一ROM 260不存在於子系統200內時自動地釋放在PCIe鏈路113上的持斷,藉此支援未附加ROM的系統組態,且不需要以獨立的硬體方式來實現IFR。
IFR 240經由例如一匯流排242可通訊式地耦合於ROM 260。IFR 240進一步地可通訊式地耦合至BAR0暫存器234。IFR 240設置成於重置之後一預定時間自該等搭接245讀取資訊,藉以決定是否有一ROM 260存在。在決定有一ROM 260存在時,IFR 240自ROM 260讀取位 址和資料,並基於那些指令對BAR0暫存器234執行寫入及/或讀取-修改-寫入作業。另外,IFR 240可設置成程式化微控制器250,包括間接地經由微控制器組態暫存器255寫入BAR0暫存器234中一或多者,以執行更進一步的啟始程序,例如輪詢作業、分支化、延遲、以及對資源的重複存取。這些更進一步的啟始程序中一或多者可能包含IFR 240無法自己執行的作業,因為IFR 240僅能夠橫跨有限的介面組合執行預先設計的作業。相反地,該微控制器可以是一種一般性微控制器,以提供像是一CPU的一般性指令集,並具有與該系統更為完整的介面組合,其能夠執行在硬體被生產完成之時未設想到的作業。在程式化微控制器250之後,IFR 240可被導引來經由在ROM 260中的一指令開始執行該作業,其使得(但不限於)微控制器交遞(hand-off)暫存器235得以被寫入。
在一具體實施例中,IFR 240設置成當IFR 240完成啟始步驟時自動地釋放PCIe鏈路113上的該鏈路訓練之持斷。在另一具體實施例中,IFR 240可設置成交遞給微控制器250釋放PCIe鏈路113的功能。例如,在BAR0暫存器234中一暫存器可用於儲存關於IFR 240是否釋放PCIe鏈路113的持斷或是否需要微控制器250釋放該持斷的資訊。在一具體實施例中,鏈路持斷的釋放係透過使用IFR控制暫存器231來完成。例如說,PCIe鏈路訓練持斷暫存器236其在當被寫入一特定數值時啟始鏈路訓練,以及一自動釋放暫存器237,其指明IFR 240的終止是否自動地釋放PCIe鏈路113。而交遞PCIe鏈路113的釋放至微控制器250的方式包括除能自動釋放暫存器237,並保留持斷暫存器236的數值給微控制器250來修改,藉以延遲鏈路釋放直到該微控制器修改微控制器持斷暫存器236的數值為 止。做法包括在讀取自動釋放暫存器237的該數值來決定被編碼在ROM 260中被寫入的IFR指令的內容係為了讓微控制器250指揮而執行該釋放之後。
微控制器250能夠對於GPU 210上任何位置進行讀取和寫入。另外,微控制器250包括微控制器組態暫存器255,其中IFR 240可以存取微控制器250。在一些具體實施例中,IFR 240設置成執行一讀取-修改-寫入作業、對相同位址之重複的寫入作業、及/或對遞增的位址之寫入作業中一或多項,藉以便於微控制器250的程式化。在另一具體實施例中,用於對相同位址之重複的寫入作業及/或對遞增的位址之寫入作業之該等暫存器位址並未個別地被編碼在ROM 260中。
在一具體實施例中,微控制器250在IFR 240已經執行完啟始作業之後執行微控制器組態暫存器255中的程式指令。在另一具體實施例中,微控制器250可在當IFR 240執行啟始作業時開始執行微控制器組態暫存器255中的程式指令。也就是說,微控制器250和IFR 240可以同時執行啟始作業。
BAR0暫存器234包括IFR錯誤狀態暫存器232、用於間接存取至PCIe組態規格暫存器233的暫存器、IFR組態暫存器231、微控制器交遞暫存器235,以及在一些具體實施例中,用於存取ROM 260的間接暫存器。如上所述,IFR錯誤狀態暫存器232儲存關於在啟始程序期間遭遇到的錯誤之資訊。例如,IFR錯誤狀態暫存器232可以儲存有指明失敗的對於一指令之同位檢查(parity check)、一不正確的ROM 260大小、或其它所有(catch-all)可簡易偵測的ROM 260之格式化錯誤的位元。儲存在IFR錯誤 狀態暫存器232中的資訊可在稍後經由用於錯誤處理的繪圖卡202裝置驅動器來取得,由一工程師藉由繪圖卡202的該PCIe BAR0位址空間經由一除錯器及/或顯示成除錯輸出來查詢。
PCIe組態規格暫存器233提供GPU 210一組態空間。PCIe組態規格暫存器233包括但不限於該實體位址偏置量,其中儲存在暫存器234內的BAR0位址可當做系統的記憶體子系統之一部份來存取。概言之,BAR0位址可保有GPU 210使用的記憶體位址,或連接埠位址之偏置量。為了啟始GPU 210,除此之外,IFR 240可以執行暫存器作業,也可以存取GPU 210內的BAR0位址,其可經由BAR0提供的獨立介面,非虛擬記憶體BAR0偏置量,所給定的該記憶體偏置量來存取。
IFR組態暫存器231包括但不限於一PCIe鏈路訓練持斷值236和一自動釋放值237。PCIe鏈路訓練持斷值236在當被寫入一特定值時啟始鏈路訓練,自動釋放值237則是用來指明終止IFR 240的動作是否自動地釋放在PCIe鏈路113上的該持斷。如上所述,該鏈路持斷釋放作業可被交遞至微控制器250。在這種案例中,IFR 240除能自動釋放值237,並保留持斷暫存器236的數值給微控制器250來修改,藉此延遲鏈路持斷釋放直到微控制器250預備好鏈路訓練,及發生繪圖卡202的PCIe裝置列舉(enumeration)發生為止。另外,IFR 240在當IFR 240遭遇一錯誤時可自動地終止,並釋放在PCIe鏈路113上的持斷,不論自動釋放暫存器是否被設定來釋放持斷與否。IFR 240藉由設定PCIe鏈路訓練持斷值236的數值為「除能」來執行此種釋放,藉此釋放PCIe鏈路113的持斷,並強迫鏈路訓練來開始。
PCIe鏈路持斷自動釋放暫存器237可用於決定該PCIe鏈路持斷釋放是否被交遞到微控制器250。如上所述,IFR 240在當IFR 240完成啟始時可自動地釋放在PCIe鏈路113上的持斷。但是,另外IFR 240另可交遞該鏈路釋放的權力至微控制器250。ROM 260藉由包括針對IFR 240的指令來指明這種交遞是否發生,此對IFR240的指令可以藉由寫入到自動釋放暫存器237來除能自動釋放、程式化微控制器、及藉由寫入微控制器交遞暫存器235來開始微控制器的執行,藉此致能或除能PCIe鏈路釋放的交遞到微控制器250。
ROM 260可包括一固定功能段310,其可允許IFR 240驗證ROM 260是否損壞與否,以及某些額外的安全性特徵。可被包括在固定功能段310內的驗證和安全性技術可包括但不限於整個ROM大小的數值、檢查總和值、及1及/或0之一預先定義的序列。這些技術以及ROM 260的其它態樣在以下參照第三圖最更為詳細的說明。ROM 260進一步可包括一延伸段319,其可包含關於要在啟始期間執行的暫存器作業之資訊。在一些具體實施例中,上述之暫存器作業包括寫入到BAR0暫存器234、以及進行對於那些暫存器的讀取-修改-寫入作業。ROM 260的延伸段319進一步可包括程式化微控制器250的指令,其在一些具體實施例中亦可經由寫入到多個BAR0暫存器234來專屬地執行,藉以執行更進一步的啟始程序,以及用於指明在延伸段本身當中的資料是否損壞或不正確的位元。在多種具體實施例中,在延伸段中的錯誤以及在該啟始程序期間遭遇到的其它錯誤(例如由於在IFR 240中一程式錯誤所造成的錯誤)可能由IFR 240自動地觸發PCIe鏈路113的釋放。在這些實例中,IFR 240可使得可用於偵錯的資訊能 夠橫跨PCIe鏈路113來使用,並可經由顯示器110顯示給一使用者。這些資訊可被儲存在IFR錯誤狀態暫存器232中,並可自其取回。
第三圖為根據本發明一具體實施例中第二圖的ROM 260之更為細部的圖示。如所示,ROM 260包括一固定功能段310和一延伸段319。該固定功能段包括安全性特徵311和ROM驗證值312。安全性特徵311可包括一簽章字元及/或1及/或0之特定預期的序列。ROM驗證值可包括一整個ROM大小值,指明ROM 260的位元組大小,及/或用於決定在該ROM中整個ROM大小的位元組數目被一預先定義的同位位元遮罩的該實際總和是否等於該檢查總和值。
概言之,在辨識ROM 260的存在之後,IFR 240開始讀取固定功能段310。特別是,IFR 240首先讀取和認證安全性特徵311。如果ROM 260損壞或為偽造,該等安全性特徵認證可能失敗。在這種案例中,IFR 240可以終止在PCIe鏈路113上之持斷的釋放,並造成適當的偵錯輸出讓使用者可以得知。如果安全性特徵311被認證成功,IFR 240將繼續讀取固定功能段310。特別是,IFR 240自固定功能段310取得驗證值312。這些數值可結合LAST指令334不存在或LAST指令334僅早先存在來決定例實際的整個ROM大小是否符合預期。不符合可指明一損壞的或偽造的ROM 260,且亦使得IFR 240來終止,釋放PCIe鏈路113的持斷,並使得適當的偵錯輸出來顯示給使用者得知。
延伸段319包括數種不同的資料。如所示,該資料包括IFR指令集320、微控制器指令集330、及其它指令329。IFR指令集320包括IFR 240在啟始期間執行的該等作業之指令。在該IFR指令集內,每一IFR 指令322包括一位址(“ADDR”)323和資料(“DATA COMMAND”)324。位址323指定一暫存器位址(例如一BAR0位址),而資料324指明要由IFR 240執行對於位址323的一暫存器寫入作業。在一些具體實施例中,資料324包括雙字元,且每一IFR指令322包括用於驗證此IFR指令322的嵌入值。例如,資料324可包括關聯於每一IFR指令322的一同位位元,且IFR 240可設置成決定該指令之一同位是否符合該指令的該同位位元。該同位位元可以指定一偶數或奇數同位,並可由IFR 240用於決定在指令322中具有數值1之位元的實際數目為偶數或奇數來指明一同位失敗。不符合的話,則可大致得到ROM 260為損壞或是偽造的結論。這種每一指令的同位檢查可由IFR 240用於偵測錯誤,並儘可能早地終止以有效地限制記憶體/暫存器空間之損壞程度。最後在一些具體實施例中,一「最後非微控制器程式化」指令325代表IFR指令集320的結束。
微控制器指令集330包括IFR 240執行來程式化微控制器250的該等作業之指令。在微控制器指令集330內,每一微控制器指令331包括一位址(“ADDR”)332和資料(”DATA COMMAND”)333。位址332指定微控制器組態暫存器255內一暫存器位址,而資料333指明要由IFR 240執行對於位址332的一寫入作業。例如,微控制器指令331藉由寫入針對該微控制器250的適當原始機器碼來指定IFR 240程式化微控制器250,藉以執行一或多個輪詢作業、需要分支化的作業、需要延遲的作業、以及需要重複對於相同資源做存取的作業。在一些具體實施例中,每一微控制器指令331可包括一同位位元。在這種具體實施例中,IFR 240可被設置成決定該指令之同位是否符合對應於該指令的同位位元。如不符合,則ROM 260 可被認定是損壞或是偽造。另一種具體實施例中,指令集320、329和330可能彼此並無差別。例如,IFR 240可經由該BAR0位址暫存器空間內間接於該微控制器組態暫存器255之暫存器來程式化微控制器250,以允許微控制器250經由IFR指令320被程式化。最後在一些具體實施例中,一”LAST”指令334代表所有IFR指令319的結束,並解除標示將由IFR 240讀取之ROM 260影像的結束。
圖形處理單元啟始
如下述之一種改良的IFR 240和一種用於編碼ROM 260的改良之指令集可允許在有錯誤時釋放在PCIe鏈路113上的持斷、更快地開機,及一更為小型的ROM 260。ROM 260包括一固定功能段310和一延伸段319。固定功能段310包括有允許IFR 240可決定ROM 260為損壞或偽造,以及保護GPU 210避免未授權之資訊存取。ROM 260的延伸段319包括要由IFR 240執行之暫存器作業的資訊,其可配合微控制器250作動。PCIe鏈路113上持斷的釋放在當IFR 240遭遇到一ROM錯誤或是當IFR 240正在執行啟始作業時的某個其它錯誤而被觸發。更進一步的啟始程序,例如輪詢作業、包含分支化的作業、包含延遲的作業、和包含對一資源重複存取的作業皆由微控制器250而非IFR 240來執行。特別是,ROM 260可包括一種改良的指令集,而IFR 240可以使用該改良的指令集來程式化微控制器250以執行更進一步的啟始程序。
第四圖為根據本發明一具體實施例在發生一錯誤時用於經由一IFR組件執行啟始和釋放一PCIe鏈路之方法步驟的流程圖。雖然該等方法步驟係配合第一到三圖之系統做說明,本技術專業入士將可瞭解到以 任何順序執行該方法步驟的任何系統皆在本發明之範圍內。
方法400開始於步驟410,其中IFR 240讀取搭接245來決定一ROM 260是否存在於系統200之內。如果ROM 260不存在,則IFR 240終止作業、釋放在PCIe鏈路113上的持斷、並視需要使得適當的偵錯得以輸出(例如指明該ROM 260並不存在)而可在步驟412顯示給使用者知悉。不論ROM 260是否存在,一具體實施例亦在對於鏈路訓練和終止之持斷釋放之前執行繪圖卡202的其它固定啟始功能。
如果在步驟410 IFR 240偵測到存在有ROM 260,則在步驟415,IFR 240開始讀取ROM 260的固定功能段310來認證安全性特徵311。例如,IFR 240可以認證在固定功能段310中一特定位置處存在有一1及/0的一特定序列。認證安全性特徵311的失敗可以得到ROM 260為損壞或偽造的結論,使得IFR 240終止作業、釋放PCIe鏈路113、並在步驟412使得適當的偵錯輸出顯示給使用者。
如果在步驟415 IFR 240成功地認證安全性特徵311,則在步驟420,IFR 240自ROM 260的固定功能段310讀取一或多個ROM驗證值312。例如,IFR 240可自固定功能段310讀取整個ROM大小的值和一檢查總和值。ROM的大小值可以指明整個ROM 260之位元組大小,並可用於確認ROM 260的實際大小是否符合所讀取之ROM的大小值。檢查總和值則可以指明ROM 260中被一預先定義的同位所遮罩的整個ROM大小之位元組數目之一預期的總和,並可用於確認ROM 260的一實際檢查總和值是否等於所讀取之檢查總和值。當固定功能段310中該整個ROM大小值或檢查總和值無法符合它們個別的實際數值時,ROM 260可被認定為損壞 或偽造,使得IFR 240於步驟412終止,如上所述。在方法400繼續進行之前,可在步驟420認證一或多個驗證值。一具體實施例並不限於以任何特定順序執行安全性特徵和驗證特徵311,312內該等個別步驟。在另一實施例中,上述步驟可被設定為交錯進行。
在IFR 240完成自固定功能段310之讀取之後,IFR 240開始自ROM 260的延伸段319讀取資料。在步驟425,IFR 240讀取關聯於延伸段319的一指令之驗證值,然後IFR 240讀取該指令的該實際雙字元,此兩讀取動作可以分別或是在相同讀取作業中完成。在一具體實施例中,一同位位元可關聯於該指令,且在這種案例中,IFR 420可以讀取該同位位元,並決定該同位位元的數值是否符合構成該指令之該等位元的實際同位。在另一具體實施例中,IFR 420決定在該指令內的位元是否符合那些位元的預定值。
在步驟430,IFR 240決定是否到達ROM 260影像的末端。在一具體實施例中,此決定係基於在步驟425中是否讀取一”LAST”指令。更特定而言,可能發生在一預先定義的ROM位置的一預先定義種類的指令(例如發生在某個位址處的一讀取-修改-寫入指令)可以做為該最後指令,其本身可編碼一額外的寫入或讀取-修改-寫入作業。假設尚未到達ROM 260影像的末端,或如果該指令為一最後寫入,IFR 240驗證在步驟435讀取的該指令。例如,IFR 240可以比較步驟420讀取的該同位值及該指令的實際同位。如果該指令驗證失敗,則ROM 260可被視為是損壞的或偽造的。在這種案例中,IFR 240終止、釋放PCIe鏈路113的持斷,並於步驟412輸出適當的偵錯訊息顯示給該使用者。
在步驟440,IFR 240決定是否遭遇到任何其它的驗證問題。例如,IFR 240可以決定目前所讀取而構成延伸段319的該等指令之位元組數目的算數總和以及IFR 240目前已讀取之固定功能段310之位元組數目是否超過整個ROM的大小值,或是此總和加上一最後指令334所需要的位元組數目將超過該整個ROM的大小值。如果尚未到達最後指令334,則超過該整個ROM大小值的結果可以指明ROM 260為損壞的或偽造的。再次地,如果遭遇到其它驗證問題,則IFR 240即終止、釋放PCIe鏈路113、並於步驟412顯示適當的偵錯且輸出給該使用者。如果IFR 240分別在步驟430、435和440決定尚未到達ROM 260影像的末端(在一具體實施例中,最後指令334並不編碼一寫入或讀取-修改-寫入作業),該指令讀取即為有效,且不會有其它驗證問題,則在步驟445,IFR 240執行該指令,且方法400回到步驟425,其中IFR 240讀取另一指令。
現在回頭參照步驟430,如果IFR 240發現尚未到達ROM 260影像的末端,且該具體實施例為使得最後指令334不會解碼一額外作業時,則該方法前進到步驟450,其中IFR 240驗證已經讀取的ROM。在另一具體實施例中假設該最後指令有編碼一作業,則IFR 240執行該作業,然後該方法前進到步驟450。特別是,IFR 240可以決定在步驟420取得的一或多個該等驗證值是否符合由該實際由ROM所獲得的數值。例如,IFR 240可以決定該ROM值的實際整體長度是否符合自固定功能段310讀取的一預先定義的整個ROM大小驗證值,或是該IFR可以驗證在該固定功能段內所指定的一檢查總和。如果ROM 260未通過驗證,則IFR 240終止於步驟412、釋放PCIe鏈路113上的該持斷,並使得適當的偵錯輸出來顯示給該 使用者(例如包括指明IFR 240已經完整地處理該ROM)。
另外,如果ROM 260有得到驗證,則IFR 240可以正常地離開,並於步驟460釋放PCIe鏈路113持斷。
在一具體實施例中,鏈路釋放係使用IFR 240控制暫存器231實現。特別是,寫入一「除能」值到一PCIe鏈路訓練持斷暫存器236指明必須進行鏈路訓練,且自動釋放暫存器237的數值決定IFR 240的終止是否自動地釋放PCIe鏈路113。在這種案例中,如果IFR 240遭遇一錯誤並終止,則該錯誤亦使得IFR 240無條件地強迫PCIe鏈路訓練持斷值236為「除能」。也就是說,當遭遇到一錯誤時,不論自動釋放是否被致能,鏈路訓練皆被強迫發生。這種方式可確保即使當自動釋放被除能(例如當不存在該失敗條件時,鏈路釋放將被交遞至微控制器250),IFR 240觸發鏈路訓練持斷的釋放,並視需要在每當IFR 240遭遇一錯誤時使得適當的偵錯輸出來顯示給該使用者。
第五圖係根據本發明一具體實施例用於在重置時設置一GPU 210的方法步驟之流程圖。雖然該等方法步驟係配合第一到三圖之該等系統做說明,本技術專業人士將可瞭解到設置成以任何順序執行該等方法步驟的任何系統皆在本發明之範圍內。
方法500開始於步驟510,其中IFR 240讀取搭接245來決定在系統200中是否有ROM 260的存在。在一具體實施例中,如果IFR 240在步驟510中發現ROM 260並不存在,則IFR 240可以終止、釋放PCIe鏈路113持斷、並使得適當的偵錯輸出(例如指明不存在有ROM)來顯示,類似於第四圖的步驟410和412。
假設在步驟510中,IFR 240偵測到ROM 260的存在,則在步驟520,IFR 240認證在固定功能段310中的安全性特徵311和驗證值312。例如,IFR 240可以認證1及/或0的特定序列存在於固定功能段310的一特定位置處,類似於第四圖的步驟415。在一些具體實施例中,認證311及/或312之該等特徵的失敗可被視為一錯誤,且IFR 240可終止、釋放PCIe鏈路113持斷、並使得偵錯輸出來顯示給該使用者,類似於第四圖的步驟412。
如果IFR 240在步驟515成功地認證安全性及/或驗證特徵311/312,則在步驟520 IFR 240讀取在ROM 260之延伸段319中的一指令。在一些具體實施例中,ROM 260的延伸段319包括有指令來指明需要被執行的暫存器作業來啟始GPU 210或繪圖卡202,其包括要在由BAR0位址所參照到的該等暫存器上進行暫存器作業。在一具體實施例中,IFR 240可進一步設置來偵測一錯誤,類似於第四圖的步驟435和440。在這種案例中,IFR 240在偵測該錯誤時可終止、釋放PCIe鏈路113持斷、和使得適當的偵測輸出來顯示,類似於第四圖的步驟412。
在步驟525,於一具體實施例中,IFR 240決定針對IFR 240要執行的暫存器作業之最後非微碼-程式化指令325是否已經到達。在另一具體實施例中,最後非微碼-程式化指令325可由發生在ROM 260的延伸段319之一預先定義的位址處發生的一預先定義的指令所指明。如果尚未到達最後非微碼-程式化指令325,則IFR 240執行該暫存器作業或在步驟515處讀取的該指令所指定的作業,且該方法回到步驟520。
如果在步驟525,該IFR決定在步驟520讀取的為要IFR要 執行的暫存器作業之指令322為不包含程式化該微控制器的的最後非微碼-程式化指令325,該IFR執行在最後非微碼-程式化指令325中指明的該作業。在一具體實施例中,最後非微碼-程式化指令325可為任何正常的IFR指令324。
在步驟540,IFR 240繼續讀取在ROM 260之延伸段319中的指令,特別是來自該組微控制器指令331的指令,其指定要由IFR 240執行的暫存器指令以程式化微控制器250來執行複雜的啟始程序。在一具體實施例中,所使用的IFR 240指令可為相同的指令集322,然後該微控制器可經由映射到微控制器組態暫存器255的該BAR0位址空間中的間接暫存器來被程式化。在這種具體實施例中,被寫入到該等微控制器組態暫存器的資料為一序列的寫入包含執行該延伸的啟始動作之機器指令的微碼250編碼於其中。這種複雜的啟始程序可包括但不限於輪詢作業、包含分支化的作業、包含延遲的作業、和包含對一資源重複存取的作業。
在步驟545,IFR 240決定在步驟540讀取的微控制器指令331是否為延伸段319的最後指令334。在一具體實施例中,IFR 240可進一步地設置來偵測一錯誤,類似於第四圖的步驟435和440。在這種案例中,IFR 240在偵測到該錯誤時可終止、釋放PCIe鏈路113的持斷、並顯示適當的偵錯輸出,類似於第四圖的步驟412。
如果IFR 240決定在步驟540讀取的微控制器指令並非最後指令334,則在步驟550,IFR 240藉由例如寫入到BAR0暫存器234來根據該指令程式化微控制器250。方法500回到步驟540,其中IFR 240讀取在ROM 260之延伸段319中另一微控制器指令。在一具體實施例中,IFR 240 藉由寫入到微控制器組態暫存器255來程式化微控制器250。在一些具體實施例中,IFR 240設置成執行一讀取-修改-寫入作業、對於相同位址之重複的寫入作業、及/或對於遞增位址的寫入作業中一或多項作業,藉以進行微控制器250的程式化。在另一具體實施例中,對於相同位址之重複的寫入作業及/或對於遞增位址的寫入作業之該等暫存器位址並未個別地編碼在ROM 260中(例如需要進行一系列的重複寫入之動作),只有寫入之開始位址可被明確地編碼,而其餘的該等位址在當自該ROM讀取其它的資料字元時由IFR 240自動地計算。
現在參照到步驟545,如果IFR 240決定已經讀取了延伸段319的最後指令334,則IFR 240於步驟545執行最後指令334。然後,IFR 240釋放PCIe鏈路113之持斷,除非PCIe鏈路持斷的釋放已經在ROM 260中指定為被交遞給微控制器250的一功能。在一具體實施例中,該PCIe鏈路的釋放可藉由使用IFR控制暫存器231來實現。特定而言,IFR控制暫存器231可為PCIe鏈路訓練持斷暫存器236,其指明鏈路訓練是否必須繼續被延遲,以及自動釋放暫存器237,其指明IFR 240的終止是否自動地釋放PCIe鏈路113的持斷。在這種案例中,交遞PCIe鏈路釋放至微控制器250包括除能自動釋放暫存器237,並保留持斷暫存器236給微控制器250來修改,藉此延遲鏈路釋放直到微控制器240修改持斷暫存器236為止。另外,在這種案例中,除能自動釋放暫存器237和保留持斷暫存器236不變的程序可由微控制器交遞暫存器235中指明鏈路釋放是否被交遞給該微控制器的一額外位元來控制。也就是說,在步驟530,IFR 240可以根據自ROM 260讀取來指明鏈路釋放是否被交遞給微控制器250之一指令來修改微控制器 交遞暫存器235的數值,且IFR可藉由寫入到暫存器235來執行啟始微控制器250之開機的一最後指令時完成此工作。
概言之,在IFR 240於步驟555執行該最後指令(且在一些案例中,亦釋放PCIe鏈路113的持斷)之後,IFR 240終止作業。在IFR 240終止作業之前、之後或同時間,在步驟556,微控制器250開始由其經由微控制器組態暫存器255寫入的程式資料來讀取指令,並執行其讀取的該等指令。在一些具體實施例中,該等指令可以包括用於執行複雜的啟始程序之指令,例如輪詢作業、包含分支化的作業、包含延遲的作業、包含對於一資源重複存取的作業及類似者。
如此處先前所述,該PCIe鏈路的釋放可被交遞至微控制器250。在這種案例中,於步驟560,微控制器250在微控制器250完成執行所有自IFR 240接收的指令之後(或在之前,如以下進一步的詳細說明)釋放該PCIe鏈路之持斷。在一具體實施例中,微控制器250可以修改一PCIe鏈路釋放持斷暫存器236的數值,藉以使得PCIe鏈路113的持斷被釋放,並開始PCIe鏈路訓練。另外,在一具體實施例中,微控制器250可被設置成當微控制器250遭遇到一錯誤時即終止、釋放PCIe鏈路113的持斷、並顯示偵錯輸出。錯誤可以包括關於ROM 260的錯誤以及其它錯誤,例如在設置GPU 210的一時脈之錯誤,或是關於GPU 210之匯流排的錯誤。
雖然IFR 240和微控制器250在第五圖中顯示為依序地操作,在其它具體實施例中,IFR 240和微控制器250可以並行地操作來啟始GPU 210。如果一IFR延伸段319指令使得IFR寫入一指定數值到微控制器交遞暫存器235來開始執行時,微控制器250可以在該最後指令由IFR 240 處理之前開始處理。這種由IFR 240和微控制器250之並行啟始可加速該整體開機程序。
在一些具體實施例中,微控制器250可為一般的微控制器。在其它具體實施例中,微控制器250可為一特殊化的微控制器。雖然係參照微控制器250做說明,本技術專業人士將可瞭解到可使用一不同的啟始單元來取代微控制器250以執行複雜的啟始作業及/或在IFR 240執行啟始指令的同時間執行啟始作業。
總而言之,本發明提供一種方法來在偵測到一錯誤時用於釋放間接地或直接地耦合一GPU至一記憶體橋接器的一鏈路之通訊的持斷。特定而言,該GPU的一啟始單元可以在執行啟始作業時可以偵測一錯誤。在偵測該錯誤時,該啟始單元可使得一通訊鏈路在早期啟動,並顯示偵測輸出給一使用者來指明該錯誤。在一些具體實施例中,錯誤可包括並不存在一ROM和該ROM內的錯誤,例如一簽章字元不符合一預期值、該ROM的整體大小不符合一預期值、一檢查總和不符合一預期值、一同位不符合一預期同位、及/或在該ROM中的指令長度不符合預期值。
該經揭示的方法可進一步包括程式化一微控制器來執行一或多項啟始任務。啟始任務可包括有不同作業,例如輪詢作業、包含分支化的作業、包含延遲的作業、和包含對一資源重複存取的作業。
較佳地是,在本發明之具體實施例中,該啟始單元在當於啟始期間偵測到一錯誤時釋放該通訊鏈路,藉此允許偵錯輸出可被顯示,或是另可使其可由該使用者存取,然後即可偵錯該錯誤。相反地,先前技術的啟始單元缺乏一在錯誤時釋放的特徵,時常在開機時當機,而無法在當 發生一錯誤時進行偵錯。在這種狀況下,因為該持斷未被釋放,該通訊鏈路即無法使用,且該GPU同時間將無法為系統的其它部份所利用。
另外,使用經由未被個別地編碼在該ROM中的暫存器位址所程式化的一微控制器可允許並非預先定義之複雜啟始作業、減少ROM大小、並可更快地開機。因為ROM覆蓋面積受到限制,減少ROM大小即有好處。另外,微控制器可被程式化來執行複雜的啟始作業,其無法由先前技術的GPU啟始單元來執行,其中包括輪詢作業和包含分支化、延遲的作業,以及對一資源的重複存取之作業。微控制器可被程式化來執行在硬體製造完成之前未設想到的預先設計的啟始作業。該微控制器亦可具有至該ROM的一更快速存取路徑,而允許其比該啟始單元更為快速地進行基本的啟始程序。
前述內容係關於本發明之具體實施例,本發明的其它與進一步具體實施例可在不悖離其基本範圍之下來修改。例如,本發明的態樣可實施成硬體或軟體或硬體與軟體的組合。本發明的一具體實施例可以實施成一程式產品來用於一電腦系統。該程式產品的程式定義該等具體實施例的功能(包括此處所述的方法),並可包含在多種電腦可讀取儲存媒體上。例示性電腦可讀取儲存媒體包括(但不限於):(i)不可寫入儲存媒體(例如在一電腦內唯讀記憶體裝置,例如可由CD-ROM讀取的CD-ROM碟片,快閃記憶體、ROM晶片,或任何其它種類的固態非揮發性半導體記憶體),其上可永久儲存資訊;及(ii)可寫入儲存媒體(例如在一磁碟機內的軟碟片、或硬碟機、或任何種類的固態隨機存取半導體記憶體),其上可儲存可改變的資訊。當承載關於本發明之功能的電腦可讀取指令時,這種電腦可讀取儲存 媒體為本發明的具體實施例。
因此前述的說明及圖面係在以例示性而非限制性的角度來看待。

Claims (10)

  1. 一種用於執行一圖形處理單元(GPU)之啟始作業的電腦實作方法,該方法包括:當執行一或多項啟始作業時偵測一錯誤;釋放在耦合該GPU至一記憶體橋接器之一通訊鏈路上的一持斷;以及使得偵錯輸出被顯示給一使用者來指明該錯誤。
  2. 一繪圖卡的一啟始單元設置成:當執行一或多項啟始作業時偵測一錯誤;回應於該錯誤釋放在一通訊鏈路上的一持斷;以及使得偵錯輸出被顯示給一使用者來指明該錯誤。
  3. 如申請專利範圍第2項之啟始單元,其中該通訊鏈路包含一周邊組件互連接快速(PCIe)鏈路。
  4. 如申請專利範圍第2項之啟始單元,其中釋放該持斷包含終止一第一啟始單元,除非釋放在該通訊鏈路上該持斷已經被指定給一第二啟始單元。
  5. 如申請專利範圍第2項之啟始單元,其中該錯誤包含有一唯讀記憶體(ROM)包括未被發現到的啟始指令、該ROM的一簽章不符合一預先定義的簽章、該ROM的整體大小不符合一預先定義的大小、基於包括在該ROM中複數位元的一檢查總和值不符合一預先定義的值、基於包括在該ROM中複數位元的一同位值不符合一預先定義的同位、已經被讀取的指令之大小超過了該ROM的整體大小、或是已經被讀取的指令之 大小加上任何所需要的最後指令或多個指令之大小超過了該ROM的整體大小中至少一者。
  6. 如申請專利範圍第2項之啟始單元,其中該錯誤包含關聯於自包括有啟始指令的一ROM所讀取的一指令之一同位值不符合構成該指令之部份或全部的位元之一預先定義的同位、在該指令內的位元並不符合那些位元的預先定義的值、或是該指令的雙字元之數目不符合一預先定義的數目中至少一者。
  7. 如申請專利範圍第2項之啟始單元,其中該啟始單元進一步設置成程式化一第二啟始單元來執行該等一或多項啟始作業中至少一者,而允許至少一啟始作業並非在硬體製造完成之前可設想到的一預先定義的作業。
  8. 如申請專利範圍第7項之啟始單元,其中該第二啟始單元包含一微控制器,且其中程式化該第二啟始單元包含執行一讀取-修改-寫入作業、對於相同位址之重複的寫入作業、或是對於遞增位址的寫入作業中一或多項作業。
  9. 如申請專利範圍第8項之啟始單元,其中該等一或多項啟始作業包含一輪詢作業、一分支化作業、對於一資源的重複存取作業、或一延遲作業中至少一項作業。
  10. 如申請專利範圍第9項之啟始單元,其中該啟始單元進一步設置成卸載至少一啟始作業至該第二啟始單元,且其中該啟始單元和該第二啟始單元並行地執行個別的啟始作業。
TW102102678A 2012-01-24 2013-01-24 使用基於唯讀記憶體啟始單元的圖形處理單元啟始技術和可程式化微控制器 TWI494752B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/357,553 US8839039B2 (en) 2012-01-24 2012-01-24 Initialization of GPU using ROM-based initialization unit and programmable microcontroller

Publications (2)

Publication Number Publication Date
TW201405302A TW201405302A (zh) 2014-02-01
TWI494752B true TWI494752B (zh) 2015-08-01

Family

ID=48742554

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102102678A TWI494752B (zh) 2012-01-24 2013-01-24 使用基於唯讀記憶體啟始單元的圖形處理單元啟始技術和可程式化微控制器

Country Status (4)

Country Link
US (1) US8839039B2 (zh)
CN (1) CN103218237B (zh)
DE (1) DE102013200795A1 (zh)
TW (1) TWI494752B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014085861A (ja) * 2012-10-24 2014-05-12 Canon Inc 表示システム、端末装置、表示装置、表示システムの制御方法、端末装置の制御方法、及び、表示装置の制御方法
JP6548636B2 (ja) * 2014-05-16 2019-07-24 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、および電子機器
CN106200423B (zh) * 2015-05-06 2018-08-21 上海汽车集团股份有限公司 零件的控制器的可变参数初始化方法及装置
CN106708592B (zh) * 2017-01-25 2021-12-03 北京鸿智电通科技有限公司 一种微控制器以及用于微控制器的代码烧录方法
US11586446B1 (en) * 2020-05-20 2023-02-21 Marvell Asia Pte Ltd System and methods for hardware-based PCIe link up based on post silicon characterization

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200908677A (en) * 2007-06-13 2009-02-16 Qualcomm Inc Debugging techniques for a programmable integrated circuit
TW201030671A (en) * 2008-11-06 2010-08-16 Via Tech Inc Graphics processing units, metacommand processing systems and metacommand executing methods
TW201108152A (en) * 2009-06-02 2011-03-01 Qualcomm Inc Displaying a visual representation of performance metrics for rendered graphics elements
US20110202154A1 (en) * 1997-07-09 2011-08-18 Advanced Audio Devices, Llc Personal digital stereo player

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369744A (en) * 1989-10-16 1994-11-29 Hitachi, Ltd. Address-translatable graphic processor, data processor and drawing method with employment of the same
US6571363B1 (en) * 1998-12-30 2003-05-27 Texas Instruments Incorporated Single event upset tolerant microprocessor architecture
US6981176B2 (en) * 1999-05-10 2005-12-27 Delphi Technologies, Inc. Secured microcontroller architecture
JP3474139B2 (ja) * 2000-01-17 2003-12-08 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータの電源制御方法、電源制御装置及びコンピュータ
US6681282B1 (en) * 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Online control of a multiprocessor computer system
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
TW200909677A (en) * 2007-08-29 2009-03-01 Yong-Han Liu Device for producing propulsion by arrangement of magnetic attraction/repulsion forces
US8839006B2 (en) * 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110202154A1 (en) * 1997-07-09 2011-08-18 Advanced Audio Devices, Llc Personal digital stereo player
TW200908677A (en) * 2007-06-13 2009-02-16 Qualcomm Inc Debugging techniques for a programmable integrated circuit
TW201030671A (en) * 2008-11-06 2010-08-16 Via Tech Inc Graphics processing units, metacommand processing systems and metacommand executing methods
TW201108152A (en) * 2009-06-02 2011-03-01 Qualcomm Inc Displaying a visual representation of performance metrics for rendered graphics elements

Also Published As

Publication number Publication date
US20130191692A1 (en) 2013-07-25
DE102013200795A1 (de) 2013-07-25
TW201405302A (zh) 2014-02-01
CN103218237B (zh) 2016-06-08
US8839039B2 (en) 2014-09-16
CN103218237A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
US9858084B2 (en) Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
TWI494752B (zh) 使用基於唯讀記憶體啟始單元的圖形處理單元啟始技術和可程式化微控制器
JP6124994B2 (ja) レガシーos環境から統合拡張可能ファームウェア・インターフェース(uefi)ブート前環境への復元を行うための方法およびシステム、ならびにコンピュータ・プログラム
TWI503673B (zh) 電腦系統、初始化電腦系統之方法及電腦程式產品
US6496900B1 (en) Disk array system, controller, and method for verifying command data written to disk drives
TWI470420B (zh) 除錯方法及電腦系統
TW445416B (en) Upgrade card for a computer system and method of operating the same
US20060107031A1 (en) Portable terminal
JP2016009489A (ja) データ処理装置用のメモリ・ビルトイン・セルフテスト
JPH11353244A (ja) 不正パリティまたは0バイト・イネ―ブルによる、pci装置に対するi/oロ―ド/ストア・オペレ―ションのための拡張エラ―処理方法及び装置
TWI648742B (zh) 重試讀取方法以及使用該方法的裝置
US11379330B2 (en) Information handling systems and related methods for testing memory during boot and during operating system (OS) runtime
JP6341795B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
US10777296B2 (en) Information handling system and method to dynamically detect and recover from thermally induced memory failures
KR100825786B1 (ko) 메모리 카드 및 메모리 카드의 디버깅 방법
US20190286351A1 (en) Method for configuring host memory buffer, memory storage apparatus and memory control circuit unit
US9934045B1 (en) Embedded system boot from a storage device
US11836501B1 (en) System and methods for hardware-based PCIe link up based on post silicon characterization
JP7459191B2 (ja) シリアル・ペリフェラル・インターフェース集積回路およびその動作方法
EP2730993B1 (en) Reset method and network device
US20150120990A1 (en) Method of detecting memory modules, memory control circuit unit and storage apparatus
CN113094107A (zh) 数据保护方法、装置、设备及计算机存储介质
CN112912958A (zh) 使用内置自测控制器测试只读存储器
US9971659B1 (en) Memory programming providing corruption protection
TWI324727B (en) Method for diagnosing power management table