TWI482019B - 用以組配可規劃邏輯裝置之設備、方法及系統 - Google Patents
用以組配可規劃邏輯裝置之設備、方法及系統 Download PDFInfo
- Publication number
- TWI482019B TWI482019B TW100143955A TW100143955A TWI482019B TW I482019 B TWI482019 B TW I482019B TW 100143955 A TW100143955 A TW 100143955A TW 100143955 A TW100143955 A TW 100143955A TW I482019 B TWI482019 B TW I482019B
- Authority
- TW
- Taiwan
- Prior art keywords
- fpga
- programmable logic
- cpu
- prom
- code
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Description
本發明之實施例,係有關在一個運算系統中,組配一個可規劃邏輯裝置。
近代之電腦式多媒體應用,諸如視訊、圖形、和音訊處理,可能包括計算密集性資料處理。該處理負載量,可能係使分佈於其他裝置中,諸如一些耦合至一個運算系統之可規劃邏輯裝置。
通常,在一個系統重置之後,一些可規劃邏輯裝置,於彼等在該系統中被利用之前,勢必要加以組配。廠商專屬式組配唯讀記憶體(PROM),可能為組配/規劃該可規劃邏輯裝置所必備,舉例而言,現場可規劃邏輯閘陣列(FPGA)。舉例而言,FPGAs之製造商,可生產及銷售一些組配PROM,彼等係專門為規劃該等FPGA而設計之PROM。此等PROM之成本,對許多在彼等之產品中使用FPGA的電腦系統製造商,已變成另一種負擔。
依據本發明的一個實施例,係特別提出一種設備,其包含:一個或多個內含一個第一現場可規劃邏輯閘陣列(FPGA)之可規劃邏輯裝置;一個可規劃唯讀記憶體(PROM),用以儲存一個內含至少一個系統啟動碼和一個第一組配碼之韌體;和一個組配代理器,其耦合至該第一FPGA和一個中央處理單元(CPU),而藉由使用該第一組配碼來組配該第一FPGA,以及在該第一FPGA被組配後釋放一個重置給該CPU。
本發明之實施例,將可由下文之詳細說明,和本發明之各種實施例的伴隨繪圖,而有更完全之瞭解,然而,彼等不應被視為限制本發明至該等特定之實施例,而係僅為解釋和理解計。
第1圖係一個可依據本發明的一個實施例來組配一些可規劃邏輯裝置之系統的方塊圖;
第2圖係一個可組配一些可規劃邏輯裝置之程序的實施例之流程圖;
第3圖係例示供本發明的一個實施例使用之電腦系統;而
第4圖則係例示供本發明的一個實施例使用之點對點電腦系統。
所呈遞係一種包含一個內含現場可規劃邏輯閘陣列(FPGA)之可規劃邏輯裝置的設備。在一個實施例中,該設備亦包含一個可規劃唯讀記憶體(PROM),使儲存一個韌體,其至少包含一個系統啟動碼和一個組配碼。該設備進一步包含一個組配代理器,使藉由使用該組配碼,來組配該FPGA,以及在該FPGA被組配過後,將該重置釋放給該CPU。在一個實施例中,該組配代理器,包含一個SPI-FPGA橋接器(至FPGA組配介面之串列周邊介面)。在一個實施例中,該組配代理器在運作上,可決定該FPGA,是否至少基於一個來自該FPGA之狀態,已準備好組配。在一個實施例中,該組配代理器在運作上,可在一個或多個FPGA被組配過後,將該重置釋放給該CPU。
在下文之說明中,有眾多之細節被闡明,使提供本發明之實施例的更全面之解釋。然而,本技藝之專業人士,可顯而易見的是,本發明之實施例,可能在實現上用不到此等特定細節。在其他之例證中,一些習見之結構和裝置,係以方塊圖之形式來顯示,而不做詳細解釋,俾避免混淆本發明之實施例。
接下來之詳細說明的某些部分,在呈現上係借助於針對一個電腦記憶體內之資料位元的運作之演算法和符元表示式。此等演算式說明和表示式,係該資料處理技藝之專業人士為使彼等工作之要旨能最有效地傳達給本技藝之其他專業人士的一種工具。在此有一種演算法,以及通常係被認定應為一種會導致希望結果之有條理的步驟序列。該等步驟係物理量之實際操控所需要者。通常,雖非必然地,此等量係採納一些可被儲存、轉移、結合、比較、以及不然操縱之電氣或磁性信號的形式。已證明很方便的是,有時,主要為常見用途之理由,此等信號係指稱為位元、值、元素、符元、字元、項目、數字、等等。
然而,理應記得的是,所有此等和類似之術語,係要使與該等適當之物理量相聯結,以及係僅為一些被應用至此等量之便利標記。誠如由下文之討論可顯見,除非另有明確之陳述,理應察覺到的是,遍及此說明內容,一些利用術語之討論,諸如“處理”或“運算”或“計算”或“決定”或“顯示”等等,係指稱一個可將表示為該電腦系統之暫存器和記憶體內的物理(電子)量之資料轉換成其他被類似地表示為該等電腦系統記憶體或暫存器或其他此類資訊儲存、傳輸、或顯示裝置內的物理量之資料的電子運算裝置之動作和程序。
本發明之實施例,亦有關一些用以執行本說明書中之運作的設備。某些設備可能就該等必需之目的加以特別製造,或者其可能包含一個由該電腦中所儲存之電腦程式加以選擇激勵或重新組配的通用型電腦。此種電腦程式,可能使儲存進一個電腦可讀取式儲存媒體中,諸如但非受限之任何類型包括軟碟、光碟、CD-ROM、DVD-ROM、磁光碟片之碟片、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、NVRAM、磁卡或光學卡、或任何類型適合儲存電子指令且各耦合至一個電腦系統匯流排之媒體。
本說明書所呈現之演算法和顯示器,本質上並非有關任何特定之電腦或其他設備。各種通用型系統,係可能與依據本說明書之授義內容的程式一起使用,或者其可能證明很方便的是,能製造更專屬性之設備,來執行該等必需之方法步驟。多種此等系統有關之必需結構,將會自下文之說明而浮現出。此外,本發明之實施例在說明上,並非參照任何特定之程式規劃語言。理應察覺到的是,多種之程式規劃語言,係可能被用來體現本發明如本說明書所描述之授義內容。
一個機器可讀取式媒體,包括任何可儲存或傳輸形式為某種可被一個機器(舉例而言,電腦)讀取之資訊的機構。舉例而言,一個機器可讀取式媒體,包括唯讀記憶體(“ROM”);隨機存取記憶體(“RAM”);磁碟儲存媒體;光學儲存媒體;快閃記憶體裝置;等等。
本說明書所描述之方法和設備,係用以組配一些可規劃邏輯裝置。特言之,該等用以組配一些可規劃邏輯裝置之方法和裝置,在討論上主要係參照多核心處理器電腦系統。然而,該等用以組配一些可規劃邏輯裝置之方法和設備,並非做如此之限制,因為彼等可能被體現在任何積體電路裝置或系統上面,或與之相聯結,諸如行動電話、個人數位助理、內嵌式控制器、行動平臺、桌上型平臺、和伺服器平臺、加上配合其他之資源。
所呈遞係一種包含一個內含現場可規劃邏輯閘陣列(FPGA)之可規劃邏輯裝置的設備。在一個實施例中,該設備亦包含一個可規劃唯讀記憶體(PROM),使儲存一個韌體,其至少包含一個系統啟動碼和一個組配碼。該設備進一步包含一個組配代理器,使藉由使用該組配碼,來組配該FPGA,以及在該FPGA被組配過後,將該重置釋放給該CPU。在一個實施例中,該組配代理器,包含一個SPI-FPGA橋接器(至FPGA組配介面之串列周邊介面)。在一個實施例中,該組配代理器在運作上,可決定該FPGA,是否至少基於一個來自該FPGA之狀態,已準備好組配。在一個實施例中,該組配代理器在運作上,可在一個或多個FPGA被組配過後,將該重置釋放給該CPU。
第1圖係一個依據本發明的一個實施例來組配一些可規劃邏輯裝置之系統的方塊圖。許多類似匯流排和周邊裝置之相關組件並未顯示,以避免混淆本發明。參照第1圖,在一個實施例中,該系統包含:一個可規劃唯讀記憶體101(PROM 101)、一個串列周邊介面橋接器130(SPI橋接器130)、一個現場可規劃邏輯閘陣列152、和一個處理器162。
在一個實施例中,前述之單元係顯示為離散式組件。其他之實施例係屬可能,其中,某些或所有之單元,係整合在一個裝置或其他之組件中。在其他之實施例中,前述之單元係遍及一個系統,而分佈在硬體、軟體、或彼等之某些組合中。
在一個實施例中,該PROM 101可儲存一個韌體,其上至少包含一個BIOS 102(基本輸入/輸出系統)和一個FPGA組配碼103。在一個實施例中,該BIOS 102,係一個系統啟動碼,其係被該系統使用來預備前啟動環境,以使一個作業系統,可接管該系統啟動。在一個實施例中,該等BIOS 102和FPGA組配103,係可在不同之位址(舉例而言,0x00_000,0x90_0000)下被存取。
在一個實施例中,該系統啟動碼,包含一些基本輸入/輸出系統(BIOS)模組,或一些統一可擴充韌體介面(UEFI)模組,使就一個作業系統,預備一個前啟動環境。
在一個實施例中,該PROM 101,亦被稱為一個SPI PROM,因為該PROM 101在運作上,係可經由一個SPI介面(亦即,SPI 111),使與該SPI橋接器130相通訊。
在一個實施例中,該SPI橋接器130,係藉由使用一個CPLD複雜可規劃邏輯裝置來體現。在其他之實施例中,該SPI橋接器130,係使用一些可規劃邏輯裝置(FPGA、CPLD、等等)、應用專屬性積體電路、用戶化邏輯電路、或彼等任何之組合,來加以體現。在一個實施例中,該SPI橋接器130,包含一個多工器133(開關)和一個SPI-FPGA橋接器131。該SPI-FPGA橋接器131,係一個串列周邊介面至一個FPGA組配介面之橋接器。在一個實施例中,該SPI橋接器130,係經由一個SPI通道161,使耦合至一個處理器162。
在一個實施例中,該SPI-FPGA橋接器131,包含一個狀態機(SPI)141、一個SPI主控器142、一個狀態機(FPGA)145、和一個FPGA組配主控器146。在一個實施例中,該SPI-FPGA橋接器131,係經由一個FPGA組配介面151,使耦合至一個FPGA 152。
在一個實施例中,當一個系統充足電壓(或在一個系統重置之後)時,該SPI橋接器130,舉例而言,係藉由偵測該FPGA 152的一個狀態接腳為肯定命題或否定命題,來決定該FPGA 152之狀態。舉例而言,在一個實施例中,若該FPGA 152就該組配程序預備好/準備就緒,該FPGA 152的一個狀態接腳,便為肯定命題。
在一個實施例中,該SPI橋接器130,可讀取來自該PROM 101之組配資料(舉例而言,FPGA組配碼103),以及可使用該FPGA組配碼103,來組配該FPGA 152。
在一個實施例中,該PROM 101,係耦合至該SPI橋接器130(舉例而言,使用一個小型CPLD來體現)。在一個實施例中,該SPI橋接器130,係在該等處理器162與可規劃唯讀記憶體101之間被設定,以致該PROM 101,不會直接耦合至該處理器162。
在一個實施例中,該FPGA 152,或任何要被組配之FPGA,係使耦合至該SPI橋接器130,特別是該SPI-FPGA橋接器131。
在一個實施例中,當該SPI橋接器130,讀取來自該PROM 101之FPGA組配檔案103時,該SPI橋接器130,會使該處理器,保持在重置之下。在一個實施例中,該SPI橋接器130,可配合該SPI-FPGA橋接器131,而將該FPGA 152組配進該系統中。
在一個實施例中,該等狀態機(SPI) 141和SPI主控器142,可管理SPI運作和通訊。在一個實施例中,該SPI主控器142,係能夠與該FPGA組配主控器146相通訊。在一個實施例中,該SPI主控器142,可就組配該FPGA 152之目的,而將資料(舉例而言,該FPGA組配該103)傳送/傳遞給該FPGA組配主控器146。在一個實施例中,該FPGA組配主控器146,可配合該狀態機(FPGA) 145,來管理該程序,而組配該FPGA 152(和其他之可規劃邏輯裝置)。
在一個實施例中,可在組配該FPGA 152之際,該SPI橋接器130,會停止對該處理器162之重置。在一個實施例中,在所有之FPGA被組配過後,該SPI橋接器130,會釋放對該處理器162之重置。該SPI橋接器130,亦可在彼等FPGA之組配完成過後,提供一條通道路徑,以供該處理器162,存取該PROM 101。舉例而言,該SPI橋接器130,可在該重置已被釋放過後,切換一個多工器(亦即,該多工器133),使建立一個通道路徑,以供該處理器162,存取該系統啟動碼。
在一個實施例中,該處理器162,可讀取該PROM 101內所儲存之BIOS 102,使組配一個系統之輸入/輸出裝置,以及就一個作業系統,預備一個前啟動環境。
在一個實施例中,將該FPGA組配碼103儲存至該PROM 101上面之成本,係低於將該組配碼儲存至一個廠商專屬性組配PROM上面之組配碼。在一個實施例中,一個系統可容許該等FPGA碼和BIOS碼,共同位於同一非揮發性記憶體裝置內。在一個實施例中,一個系統可使用該BIOS更新工具程式(utility),來更新該FPGA碼、該BIOS鏡像,或者兩者同時地。
在一個實施例中,一個BIOS碼和一個FPGA碼,係使結合成一個韌體(韌體鏡像),而作為一個單一整合軟體版本。在一個實施例中,該SPI橋接器130,可促成更新一個FPGA碼,而不需要來自一個FPGA廠商之專用JTAG電纜。就此而論,亦不需要一個專屬該FPGA廠商之JTAG介面。在一個實施例中,一個FPGA鏡像可能會被更新,即使是一個使用者,對該硬體並不具有直接存取權。一個使用者,係能夠藉由使用該BIOS更新工具程式中之解決方案,來更新該FPGA鏡像。
在一個實施例中,該FPGA 152為一個可規劃邏輯裝置。在一個實施例中,有一個或多個可規劃邏輯裝置,在一個系統中被見到。該等可規劃邏輯裝置可能包含:一個或多個現場可規劃邏輯閘陣列(FPGA)、一個或多個複雜可規劃邏輯裝置(CPLD)、或彼等任何之組合。在一個實施例中,該FPGA 152,包含一個專賣性內嵌式FPGA核心。
在一個實施例中,該處理器162,係一個中央處理單元。在一個實施例中,該處理器162,包含一個輸入/輸出控制器中心,舉例而言,一個平臺控制器中心(PCH),其可支援各種I/O通訊協定和I/O標準之許多高速周邊裝置。在一個實施例中,該PCH在運作上,可支援一些序列周邊裝置介面。該處理器162,可經由該PCH,取回來自該SPI橋接器130之資料。
為對原件設備製造商(OEM)提供彈性,一個平臺控制器中心,可能包含一個(些)給定之主控制器,使連同該(等)對應之通訊協定,而支援一個(些)周邊裝置。在一個實施例中,該PCH亦可支援各種輸入/輸出裝置,使包括一些配合PCIe(快速外設互聯標準)、SATA(串行先進技術附件)裝置、和USB(萬用串列匯流排)而運作之裝置。在一個實施例中,一個會聚之輸入/輸出,取代了在一些具有單一連接器類型之電腦上面見到的多重連接器類型(舉例而言,一個萬用串列匯流排(USB)介面、一個IEEE 1394介面、乙太網路、eSATA、VGA、DVI、DisplayPort、和HDMI)。
第2圖係一個可組配一些可規劃邏輯裝置之程序的實施例之流程圖。該程序係藉由處理一個可能包含硬體(電路、專用型邏輯、等等)、軟體(諸如在一個通用型電腦系統或一個專用型機器上面運行者)、或兩者的一個組合之邏輯,來加以執行。在一個實施例中,該程序在執行上,係配合某種裝置(舉例而言,參照第1圖之SPI橋接器130)。在一個實施例中,該程序係藉由參照第3圖之電腦系統,來加以執行。
參照第2圖,在一個實施例中,該處理邏輯開始係藉由接收一個系統事件(程序區塊500),舉例而言,一個系統重置事件、一個重新啟動事件、或一個系統啟動事件,來重新啟動一個運算系統。
在一個實施例中,該處理邏輯,可暫時保持該系統重置(對一個CPU),而使該處理邏輯,能夠組配一個或多個FPGA。舉例而言,該處理邏輯,可暫時保持該CPU在重置下,以便在該重置釋放給該CPU之前,使所有之FPGA被組配。
在一個實施例中,該處理邏輯,可藉由偵測該FPGA之狀態接腳,決定該等一個或多個FPGA,是否已預備好組配。在一個實施例中,該處理邏輯,可取回一個與一個FPGA相關聯之組配碼(程序區塊501)。該組配碼係使儲存至一個可規劃唯讀記憶體(PROM)上面,後者包含一個內含該組配碼和一個系統啟動碼之韌體。
在一個實施例中,該處理邏輯,可使用該組配碼,來組配該FPGA(程序區塊502)。本技藝之專業人士可瞭解的是,一個或多個FPGA之組配,係可能基於該系統設計,使用一個相同之組配碼或不同之組配碼,而協同地或串行地加以執行。
在一個實施例中,該處理邏輯,可在該等PROM與CPU之間,促成一個通道介面,以使該CPU,能夠存取一個系統啟動碼(程序區塊504)。舉例而言,該處理邏輯,可在該重置已被釋放過後,切換一個多工器,使建立一個通道路徑,以供該CPU存取該系統啟動碼。
在一個實施例中,該處理邏輯,可將該系統重置,釋放給該CPU,使就一個作業系統,預備一個前啟動環境(程序區塊505)。在一個實施例中,該處理邏輯,可依據該BIOS,繼續一個正規系統啟動序列(程序區塊506)。
第3圖係一個可例示依據本發明的一個實施例之電腦系統的方塊圖。在一個實施例中,該電腦系統包含:處理器305、記憶體/圖形控制器308、平臺控制器中心309、主記憶體315、和非揮發性記憶體360。在一個實施例中,該處理器305,可存取來自位階1(L1)快取記憶體306、位階2(L2)快取記憶體310、和主記憶體315之資料。在一個實施例中,該處理器305,係使耦合至該記憶體/圖形控制器308。該記憶體/圖形控器308,係使耦合至該平臺控制器中心309,其復使耦合至一些固態碟片325、硬碟驅動器320、網路介面330、和無線介面340。在一種實施例中,該主記憶體315,可載入一個作業系統350。
在一個實施例中,該處理器305包含:一些核心301、核心302、快取記憶體303、和快取記憶體306。在一個實施例中,該快取記憶體303,係該核心301的一個私有快取區,而該快取記憶體306,係該核心302的一個私有快取區。
在一個實施例中,該主記憶體315,可能體現在各種記憶體來源中,諸如動態隨機存取記憶體(DRAM)、硬碟驅動器(HDD) 320、基於NVRAM技術之固態碟片325、或一個在位置上遠離一個電腦系統而經由網路介面330或經由無線介面340且內含各種儲存裝置和技術之記憶體來源。該快取記憶體,可能或位於該處理器內,或在位置上臨近該處理器,諸如在該處理器之本地匯流排307上面。
在一個實施例中,該非揮發性記憶體360,係一個系統唯讀記憶體(ROM),或一個非揮發性記憶體裝置。在一個實施例中,該非揮發性記憶體360,並未直接耦合至該平臺控制器中心309。在一個實施例中,一個組配代理器在運作上,可使用該非揮發性記憶體360內所儲存之代碼,來組配該系統(未示出)的一個或多個可規劃邏輯裝置。
在一個實施例中,該平臺控制器中心309,包含一個或多個輸入/輸出主控制器,彼等可控制一個或多個輸入/輸出互聯體(未示出)。在一個實施例中,該平臺控制器中心309,係以一個單一鏈路(亦即,互聯體或匯流排),使耦合至該處理器305。在一個實施例中,此耦合動作可能透過一系列之鏈路來完成。在一個實施例中,該處理器305,係透過一個第一鏈路(舉例而言,本地匯流排307),使耦合至該記憶體/圖形控制器308(其中,該復合記憶體,係與一個記憶體子系統界接),以及該記憶體/圖形控制器308,係透過一個第二鏈路,使耦合至該平臺控制器中心309。在一個實施例中,該輸入/輸出互聯體,係點對點互聯體和匯流排的一個組合。
在許多實施例中,至少有一個處理器305存在。在一個實施例中,有多重之處理器核心,存在於該系統(核心301-302)中。在一個實施例中,有多重各具有單核心或多核心之處理器,存在於該系統(未示出)中。在該系統中有多重核心和/或多重處理器之實施例中,有一個單一主控核心,被指定來執行該系統中之啟動和其他此類系統處置程序。
在一個實施例中,該等處理器305、快取記憶體306、記憶體/圖形控制器308、和平臺控制器中心309,係在同一封殼內。在一個實施例中,該等處理器305、快取記憶體306、記憶體/圖形控制器308、和平臺控制器中心309,係在同一基體上面。在一個實施例中,該等處理器305、快取記憶體306、記憶體/圖形控制器308、和平臺控制器中心309,係在同一基體上面,或在同一封殼內。
然而,本發明之其他實施例中,可能配合第3圖中之系統,而存在於其他之電路、邏輯單元、或裝置中。此外,本發明之其他實施例,可能分佈遍及第3圖中所例示之某些電路、邏輯單元、或裝置。
第4圖係例示一個可供本發明的一個實施例使用之點對點電腦系統。
第4圖,舉例而言,可例示一個被安排在一個點對點(PtP)組態中之電腦系統。特言之,第4圖顯示一些處理器、記憶體、和輸入/輸出裝置在其中被許多點對點介面互聯的一個系統。
第4圖之系統,可能亦包含幾個處理器,其中為清楚計,僅顯示兩個處理器870、880。該等處理器870、880,可能各包含一個與該等記憶體850、851相連接之本地記憶體控制器中心(MCH) 811、821。該等處理器870、880,可能使用一些PtP介面電路812、822,經由一個點對點(PtP)介面853,來交換資料。該等處理器870、880,可能使用一些點對點介面電路813、823、860、861,使各經由一些個別之PtP介面830、831,而與一個晶片集890交換資料。該晶片集890,可能亦經由一個高性能圖形介面862,使與一個高性能圖形電路852交換資料。本發明之實施例,可能係使耦合至第4圖中之電腦匯流排(834或835),或使在該晶片集890內,或使耦合至該資料儲存器875,或使耦合至該記憶體850。
然而,本發明之其他實施例中,可能存在於第4圖之系統內的其他電路、邏輯單元、或裝置內。此外,本發明之其他實施例,可能分佈遍及第4圖中所例示之某些電路、邏輯單元、或裝置。
本發明並非受限於所描述之實施例,而可在所附之申請專利範圍的精神和界定範圍內,以修飾體和變更形式來加以實現。舉例而言,理應察覺到的是,本發明在應用上,可供所有類型之半導體積體電路(“IC”)晶片使用。此等IC晶片之範例,包含但非受限於處理器、控制器、晶片集組件、可規劃邏輯陣列(PLA)、記憶體晶片、網路晶片,等等。此外,理應察覺到的是,彼等範例性尺寸/模型/值/範圍可能已被給定,雖然本發明之實施例,並非使限制為相同。當製造技術(舉例而言,光微影技術)隨著時間而成熟時,可以預期的是,較小尺寸之裝置亦可能被製造出。
儘管本發明之實施例的許多變更形式和修飾體,毫無懷疑將為本技藝之一般專業人員,在已讀過前文之說明內容後,可以顯見應瞭解的是,任何藉由圖例所顯示及所說明之特定實施例,絕非意欲被視為有限制意。所以,一些對各種實施例之細節的指稱,並非意在限制該等專利申請項之界定範圍,彼等本身僅陳述被視為屬本發明不可或缺之特徵。
101...可規劃唯讀記憶體
102...基本輸入/輸出系統(BIOS)
103...現場可規劃邏輯閘陣列(FPGA)組配碼
111...串列周邊介面
130...串列周邊介面橋接器
131...SPI-FPGA橋接器
133...多工器
141...狀態機(SPI)
142...SPI主控器
145...狀態機(FPGA)
146...FPGA組配主控器
151...FPGA組配介面
152...現場可規劃邏輯閘陣列(FPGA)
161...SPI通道
162...處理器
301,302...核心
303,306...快取記憶體
305...處理器
307...本地匯流排
308...記憶體/圖形控制器
309...平臺控制器中心
310...快取記憶體
315...主記憶體
320...硬碟驅動器(HDD)
325...固態碟片(NOR)
330...網路介面
340...無線介面
350...作業系統
360...非揮發性記憶體
500-506...運作
800...點對點電腦系統
810,820...處理器核心
811,821...本地記憶體控制器中心(MCH)
812,813...PtP介面電路
822,823...PtP介面電路
830,831...點對點(PtP)介面
833,834,835...匯流排
850,851...記憶體
852...高性能圖形電路
853...點對點(PtP)介面
860,861...PtP介面電路
862...高性能圖形介面
863...高性能圖形介面
870,880...處理器
870...匯流排橋接器
871...輸入/輸出(I/O)裝置
872...音訊輸入/輸出(I/O)
873...鍵盤/滑鼠
874...通訊裝置
875...資料儲存器
876...代碼
890...晶片集
第1圖係一個可依據本發明的一個實施例來組配一些可規劃邏輯裝置之系統的方塊圖;
第2圖係一個可組配一些可規劃邏輯裝置之程序的實施例之流程圖;
第3圖係例示供本發明的一個實施例使用之電腦系統;而
第4圖則係例示供本發明的一個實施例使用之點對點電腦系統。
101‧‧‧可規劃唯讀記憶體
102‧‧‧基本輸入/輸出系統(BIOS)
103‧‧‧現場可規劃邏輯閘陣列(FPGA)組配碼
111‧‧‧串列周邊介面
130‧‧‧串列周邊介面橋接器
131‧‧‧SPI-FPGA橋接器
133‧‧‧多工器
141‧‧‧狀態機(SPI)
142‧‧‧SPI主控器
145‧‧‧狀態機(FPGA)
146‧‧‧FPGA組配主控器
151‧‧‧FPGA組配介面
152‧‧‧現場可規劃邏輯閘陣列(FPGA)
161‧‧‧SPI通道
162‧‧‧處理器
Claims (13)
- 一種用以組配可規劃邏輯裝置之設備,其包含:一個或多個內含一個第一現場可規劃邏輯閘陣列(FPGA)之可規劃邏輯裝置;一個可規劃唯讀記憶體(PROM),用以儲存一個內含至少一個系統啟動碼和一個第一組配碼之韌體,其中該PROM係非直接耦合至該第一FPGA,且其中該系統啟動碼包含基本輸入/輸出系統(BIOS)模組或統一可擴充韌體介面(UEFI)模組,以就一個作業系統預備一個前啟動環境;和一個組配代理器,其耦合至該第一FPGA和一個中央處理單元(CPU),而藉由使用該第一組配碼來組配該第一FPGA,以及在該第一FPGA被組配後釋放一個重置給該CPU。
- 如申請專利範圍第1項之設備,其中該組配代理器包含一個SPI-FPGA橋接器(至FPGA組配介面之串列周邊介面),其中該組配代理器係經由該FPGA組配介面耦合至該第一FPGA。
- 如申請專利範圍第1項之設備,其中,在一個系統啟動序列期間,該組配代理器可操作以暫時使該CPU保持在重置下,而使得該第一FPGA在該重置釋放給該CPU之前被組配。
- 如申請專利範圍第1項之設備,其中該PROM並未直接耦合至該CPU,其中該組配代理器可操作以在該重置已被釋放後切換一個連接,使就該CPU建立一個通道路徑, 以存取該系統啟動碼。
- 如申請專利範圍第1項之設備,其中該第一組配碼係在存取該系統啟動碼之前被取回,其中該組配代理器可操作以決定該第一FPGA是否基於至少一個來自該第一FPGA之狀態已準備好組配。
- 如申請專利範圍第1項之設備,其中該CPU包含一個平臺控制器中心,用以支援經由該組配代理器所支援之一個串列周邊介面通道而自該PROM取回的資料。
- 如申請專利範圍第1項之設備,其中該系統啟動碼和該第一組配碼兩者皆在一個單一更新運作中被更新。
- 如申請專利範圍第1項之設備,其中該可規劃邏輯裝置包括:現場可規劃邏輯閘陣列(FPGA)、或複雜可規劃邏輯裝置(CPLD)、或兩者。
- 一種用以組配可規劃邏輯裝置之方法,其包含:取回一個與一第一現場可規劃邏輯閘陣列(FPGA)相關聯之第一組配碼,其中該第一組配碼係儲存在一個可規劃唯讀記憶體(PROM)上,該PROM含有一個內含至少該第一組配碼和一個系統啟動碼之韌體;藉由一個組配代理器,使用該第一組配碼來規劃該第一FPGA;以及藉由該組配代理器,切換在該PROM與一個中央處理單元(CPU)之間以促成一個通道介面,而使得該CPU能夠存取該系統啟動碼,其中該CPU和該PROM係非直接耦合。
- 如申請專利範圍第9項之方法,其中該第一FPGA係多數 可規劃邏輯裝置中的一者。
- 如申請專利範圍第9項之方法,其進一步包含:在規劃至少該第一FPGA之際,暫時保持對該CPU的一個系統重置;以及將該系統重置釋放給該CPU,以就一個作業系統預備一個前啟動環境。
- 一種用以組配可規劃邏輯裝置之系統,其包含:一個處理器;一個或多個內含一個第一現場可規劃邏輯閘陣列(FPGA)之可規劃邏輯裝置;一個可規劃唯讀記憶體(PROM),用以儲存一個內含至少一個系統啟動碼和一個第一組配碼之韌體影像;和一個組配代理器,其藉由使用該第一組配碼來規劃該第一FPGA,以及在該第一FPGA被組配後釋放一個重置給該處理器,其中該PROM係非直接耦合至該處理器,且其中該組配代理器可操作以在該重置已被釋放後切換一個連接,使就該處理器建立一個通道路徑,以存取該系統啟動碼。
- 如申請專利範圍第12項之系統,其中,在一個系統啟動序列期間,該組配代理器可操作以在該重置釋放給該處理器之前暫時將該處理器保持在重置之下。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/084,322 US8990548B2 (en) | 2011-04-11 | 2011-04-11 | Apparatuses for configuring programmable logic devices from BIOS PROM |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201241625A TW201241625A (en) | 2012-10-16 |
TWI482019B true TWI482019B (zh) | 2015-04-21 |
Family
ID=46967033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100143955A TWI482019B (zh) | 2011-04-11 | 2011-11-30 | 用以組配可規劃邏輯裝置之設備、方法及系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8990548B2 (zh) |
CN (1) | CN103477296B (zh) |
TW (1) | TWI482019B (zh) |
WO (1) | WO2012141743A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI613547B (zh) * | 2016-06-16 | 2018-02-01 | 新漢股份有限公司 | 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990548B2 (en) | 2011-04-11 | 2015-03-24 | Intel Corporation | Apparatuses for configuring programmable logic devices from BIOS PROM |
US10270709B2 (en) | 2015-06-26 | 2019-04-23 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
TWI471731B (zh) * | 2013-03-29 | 2015-02-01 | Mediatek Inc | 記憶體存取方法、記憶體存取控制方法、spi快閃記憶體裝置以及spi控制器 |
US10511478B2 (en) | 2015-04-17 | 2019-12-17 | Microsoft Technology Licensing, Llc | Changing between different roles at acceleration components |
US10296392B2 (en) | 2015-04-17 | 2019-05-21 | Microsoft Technology Licensing, Llc | Implementing a multi-component service using plural hardware acceleration components |
US9792154B2 (en) | 2015-04-17 | 2017-10-17 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
US10198294B2 (en) | 2015-04-17 | 2019-02-05 | Microsoft Licensing Technology, LLC | Handling tenant requests in a system that uses hardware acceleration components |
US10216555B2 (en) | 2015-06-26 | 2019-02-26 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
US9819542B2 (en) | 2015-06-26 | 2017-11-14 | Microsoft Technology Licensing, Llc | Configuring acceleration components over a network |
DE102015217933B4 (de) * | 2015-09-18 | 2017-11-09 | Siemens Aktiengesellschaft | Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung |
WO2017131637A1 (en) * | 2016-01-26 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | Ethernet physical layer transfer topology |
CN106531217B (zh) * | 2016-09-20 | 2020-08-11 | 深圳市紫光同创电子有限公司 | 用于可编程逻辑器件中的flash器件编程方法及系统 |
CN109298770A (zh) * | 2017-07-25 | 2019-02-01 | 鸿富锦精密工业(武汉)有限公司 | 主板 |
DE112017008211T5 (de) * | 2017-11-17 | 2020-08-06 | Intel Corporation | Techniken für die Initialisierung einer Computerplattform |
US11296921B2 (en) * | 2017-12-03 | 2022-04-05 | Intel Corporation | Out-of-band management of FPGA bitstreams |
TWI722269B (zh) * | 2018-01-26 | 2021-03-21 | 和碩聯合科技股份有限公司 | 韌體更新方法及使用此方法的電子裝置 |
CN108932132A (zh) * | 2018-05-23 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种通过bios升级cpld的系统及方法 |
CN111209144A (zh) * | 2020-03-16 | 2020-05-29 | 西安联飞智能装备研究院有限责任公司 | 一种计算机复位电路 |
US11768611B2 (en) | 2020-04-02 | 2023-09-26 | Axiado Corporation | Secure boot of a processing chip |
TWI764621B (zh) * | 2021-03-15 | 2022-05-11 | 英業達股份有限公司 | 智能網卡及智能網卡之fpga韌體更新管理方法 |
CN117076365B (zh) * | 2023-10-13 | 2024-01-30 | 成都申威科技有限责任公司 | 一种计算机的数据可传输外设接口控制方法及系统 |
CN117311768B (zh) * | 2023-11-22 | 2024-01-26 | 电子科技大学 | 一种动态可重配fpga固件的系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW382132B (en) * | 1998-01-20 | 2000-02-11 | Lg Semicon Co Ltd | Data buffer for multi-state programmable memory |
US6351809B1 (en) * | 1999-05-14 | 2002-02-26 | Xilinx, Inc. | Method of disguising a USB port connection |
US20030229770A1 (en) * | 2002-06-07 | 2003-12-11 | Jeddeloh Joseph M. | Memory hub with internal cache and/or memory access prediction |
US7822958B1 (en) * | 2006-03-10 | 2010-10-26 | Altera Corporation | Booting mechanism for FPGA-based embedded system |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732261B2 (en) * | 1999-12-30 | 2004-05-04 | Intel Corporation | Method and apparatus for implementing a register scan process |
US6883109B2 (en) | 2001-07-30 | 2005-04-19 | Hewlett-Packard Development Company, L.P. | Method for accessing scan chains and updating EEPROM-resident FPGA code through a system management processor and JTAG bus |
US6757849B2 (en) | 2001-08-03 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | System and method for developing customized integration tests and network peripheral device evaluations |
US6781407B2 (en) * | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US7146598B2 (en) * | 2002-11-07 | 2006-12-05 | Computer Network Technoloy Corp. | Method and apparatus for configuring a programmable logic device |
US7243221B1 (en) * | 2004-02-26 | 2007-07-10 | Xilinx, Inc. | Method and apparatus for controlling a processor in a data processing system |
US7281082B1 (en) * | 2004-03-26 | 2007-10-09 | Xilinx, Inc. | Flexible scheme for configuring programmable semiconductor devices using or loading programs from SPI-based serial flash memories that support multiple SPI flash vendors and device families |
US20050283601A1 (en) | 2004-06-22 | 2005-12-22 | Sun Microsystems, Inc. | Systems and methods for securing a computer boot |
JP4191170B2 (ja) * | 2004-07-23 | 2008-12-03 | Necエレクトロニクス株式会社 | プログラム可能なゲートアレイのコピー防止方法及びシステム |
US20060149954A1 (en) | 2004-12-03 | 2006-07-06 | Matt Hageman | Apparatus and method for accommodating different central processing units in a computer |
US7620795B1 (en) * | 2005-01-14 | 2009-11-17 | Xilinx, Inc. | Controller for a processor having internal memory |
US20060200658A1 (en) * | 2005-03-07 | 2006-09-07 | Bitfone Corporation | Agent framework for mobile devices |
US20070260869A1 (en) * | 2006-05-01 | 2007-11-08 | Symbol Technologies, Inc. | Apparatus and Method for Booting a Computing Device from a NAND Memory Device |
CN100504779C (zh) * | 2006-06-30 | 2009-06-24 | 联想(北京)有限公司 | 一种加速bios运行的方法 |
US20090063834A1 (en) * | 2007-09-05 | 2009-03-05 | Inventec Corporation | Auto-Switching Bios System and the Method Thereof |
US8386759B1 (en) * | 2007-12-28 | 2013-02-26 | Altera Corporation | Integrated circuit boot method and apparatus for configuring memory device read mode using programmable circuitry boot code read from the memory device |
US20090228884A1 (en) * | 2008-03-05 | 2009-09-10 | Chong Benedict T | Network interface engine |
US20100299510A1 (en) * | 2009-05-19 | 2010-11-25 | Chip Ueltschey | Bluetooth pre-boot authentication in bios |
US8990548B2 (en) | 2011-04-11 | 2015-03-24 | Intel Corporation | Apparatuses for configuring programmable logic devices from BIOS PROM |
-
2011
- 2011-04-11 US US13/084,322 patent/US8990548B2/en not_active Expired - Fee Related
- 2011-11-22 WO PCT/US2011/061861 patent/WO2012141743A1/en active Application Filing
- 2011-11-22 CN CN201180069999.XA patent/CN103477296B/zh not_active Expired - Fee Related
- 2011-11-30 TW TW100143955A patent/TWI482019B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW382132B (en) * | 1998-01-20 | 2000-02-11 | Lg Semicon Co Ltd | Data buffer for multi-state programmable memory |
US6351809B1 (en) * | 1999-05-14 | 2002-02-26 | Xilinx, Inc. | Method of disguising a USB port connection |
US20030229770A1 (en) * | 2002-06-07 | 2003-12-11 | Jeddeloh Joseph M. | Memory hub with internal cache and/or memory access prediction |
US7822958B1 (en) * | 2006-03-10 | 2010-10-26 | Altera Corporation | Booting mechanism for FPGA-based embedded system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI613547B (zh) * | 2016-06-16 | 2018-02-01 | 新漢股份有限公司 | 具有pci-e增強器的電腦系統,及其pci-e增強器的設定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103477296A (zh) | 2013-12-25 |
WO2012141743A1 (en) | 2012-10-18 |
US20120260078A1 (en) | 2012-10-11 |
TW201241625A (en) | 2012-10-16 |
CN103477296B (zh) | 2016-06-22 |
US8990548B2 (en) | 2015-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI482019B (zh) | 用以組配可規劃邏輯裝置之設備、方法及系統 | |
US10942737B2 (en) | Method, device and system for control signalling in a data path module of a data stream processing engine | |
US11604741B2 (en) | Method for dynamically provisioning virtualized functions in a USB device by means of a virtual USB hub | |
US10019253B2 (en) | Systems and methods of updating hot-pluggable devices | |
US8793480B2 (en) | Updating programmable logic devices in a multi-node system configured for symmetric multiprocessing | |
US11086812B2 (en) | Platform environment control interface tunneling via enhanced serial peripheral interface | |
US9405552B2 (en) | Method, device and system for controlling execution of an instruction sequence in a data stream accelerator | |
TWI335536B (en) | Information handling system (ihs) method and for updating a non-volatile memory (nvm) included in an information handling system | |
EP3663913A1 (en) | Techniques for processor boot-up | |
US9122816B2 (en) | High performance system that includes reconfigurable protocol tables within an ASIC wherein a first protocol block implements an inter-ASIC communications protocol and a second block implements an intra-ASIC function | |
TW201631498A (zh) | 用於網路基本輸入輸出系統管理之設備、方法與非暫態電腦可讀取媒體 | |
US20160306634A1 (en) | Electronic device | |
US7716465B2 (en) | Method and apparatus for maintaining a partition when booting another partition while an address line is disabled | |
JP2016519816A (ja) | コンピューティングノードにおけるエージェント間でのファームウェアの共有 | |
TW201214126A (en) | Embedded programmable module for host controller configurability | |
JP2020187725A (ja) | 管理コントローラへの通信チャネルの方法及びシステム | |
US20210349731A1 (en) | Booting and using a single cpu socket as a multi-cpu partitioned platform | |
CN102736908B (zh) | 远程设置cmos参数的系统、装置及方法 | |
US9778936B1 (en) | Booting a computing system into a manufacturing mode | |
Ostler et al. | FPGA bootstrapping on PCIe using partial reconfiguration | |
US10782764B2 (en) | Techniques of emulating an ACPI controller on a service processor | |
US20050273525A1 (en) | Dynamic I/O disabling systems and methods | |
US8688812B2 (en) | Cluster computing—NIC based OS provision | |
TW200823655A (en) | System and method for setting testing procedures of motherboards | |
US20140365748A1 (en) | Method, apparatus and system for data stream processing with a programmable accelerator |