分布式PLD解決方案可降低服務器成本并提升靈活性
引言
本文引用地址:http://m.butianyuan.cn/article/201709/363924.htm服務器分為很多種不同的類型:從機架式、刀片式和塔式到用于高密度計算的模塊化配置類型。理想情況下,每臺服務器應經(jīng)過針對性優(yōu)化來執(zhí)行特定任務。然而,如果仔細觀察的話可以發(fā)現(xiàn)大多數(shù)服務器設計都具備許多共同的特征。通常,它們具備多個處理器和熱插拔存儲器,各種通過PCIe連接到CPU和PCH的外圍設備以及安全服務和電源管理解決方案,這里僅僅列出了幾個常見的共同特征。盡管設計工程師為各種應用創(chuàng)建不同的解決方案,但在大多數(shù)情況下,其實是在對基本的服務器架構進行定制。
圖1展示了這種常見的架構。一般來說,服務器設計工程師會對這種基礎架構進行定制以滿足不同市場的需求。外圍硬件塊、系統(tǒng)級接口塊、BMC接口和其他關鍵組件可能因服務器設計而異。而電源管理、控制和膠合邏輯功能塊(圖示中的功能 #1)在定制設計中有著關鍵的作用,用以滿足特定的應用需求。設計工程師需要為每種服務器類型定制功能,如電源管理、電路板專用的膠合邏輯或I/O擴展。盡管功能 #1在諸如CPU、硬盤或網(wǎng)絡的任何承載業(yè)務中不起作用,但在確保板上所有主要器件在正常范圍內工作時是不可或缺的。設計工程師不斷努力以降低實現(xiàn)這些功能的成本和復雜性,同時確保不會降低電路板的可靠性。
本文討論了在舊式服務器設計中實現(xiàn)功能 #1的傳統(tǒng)方法,并將其與現(xiàn)代服務器設計方法進行比較,后者使用PLD集成這些功能。此外,本文還討論了使用其他集成可編程器件實現(xiàn)服務器中其他常用功能以降低復雜性和成本。
圖1:8個PLD功能說明的服務器設計框圖(設計實例)
功能 #1 - 電源管理、控制和膠合邏輯功能
以前,設計工程師通常使用多種不同的分立元件來實現(xiàn)電源管理、控制和其他膠合邏輯功能。多年來這一直都是頗具成本效益的方法。但隨著服務器設計日益復雜、功能越來越多,這類設計需要的器件也變得越來越多?,F(xiàn)在,如果設計工程師要為多種類型的服務器設計功能 #1,采用離散元件將需要很多時間和人力。舉個例子,電路板上復雜SoC器件的數(shù)量發(fā)生變化的話,電源數(shù)量、膠合邏輯以及其他控制功能的數(shù)量也要相應地發(fā)生變化。這就很可能要更改邏輯和基本時序。
因此,使用分立器件的解決方案不僅會拖累新款服務器硬件產(chǎn)品的上市進程,還會隨著所需元件數(shù)量的增加而導致成本上升。此外,更改設計有時需要重新改整個電路板,不僅進一步拖延了項目進程,還增加了成本。
現(xiàn)代服務器系統(tǒng)通常將功能 #1集成到非易失性PLD中。PLD將在電路板上電之后立即開始工作(瞬時啟動)。通常,實現(xiàn)功能 #1所需的邏輯資源和I/O數(shù)量取決于服務器類型。因此,能夠提供豐富的I/O和邏輯資源選擇的PLD器件非常適合實現(xiàn)功能 #1。
萊迪思MachXO3 FPGA系列以及上一代MachXO2系列(簡稱MachXO2/3)都能提供所需的功能。MachXO2/3器件是支持瞬時啟動的非易失性PLD,提供640 LUT到9400 LUT以及22個I/O到384個I/O的器件選擇。這些PLD可以在系統(tǒng)中透明地進行更新,并提供雙引導支持以便從任何系統(tǒng)更新錯誤中恢復。這些器件只需一個3.3V電源即可工作,當該電源電壓高于2.2V時,服務器主板電源管理算法即開始工作。因此,MachXO2/XO3是電路板上第一個啟動,最后一個關閉的器件。這些器件支持多個I/O Bank,可以單獨上電或斷電而不影響其他模塊的運行。這方面的優(yōu)勢使得它們能夠集成多種異構功能,例如多個電源區(qū)塊控制、帶外信號發(fā)送和電源待機控制。憑借上述器件,設計工程師還能夠將SPI、I2C和定時器/計數(shù)器接口添加到傳統(tǒng)設計中,并支持多次可編程片上配置閃存。這些先進的器件提供5mm×5mm的QFN和BGA封裝以及1mm和0.80mm的引腳間距選擇。
功能 #1集成到控制PLD(MachXO2/3)中
在圖2中,MachXO2/3器件用于實現(xiàn)控制PLD功能,如電源/復位時序、各種類型的串行總線(I2C、SPI、eSPI、SGPIO等)、調試端口、LED驅動器、風扇PWM驅動器、前板開關傳感以及其他一般GPIO功能。MachXO2/3器件支持1V信號,可實現(xiàn)帶外信號功能集成,無需外部GTL收發(fā)器。當芯片運行時,設計工程師可使用萊迪思軟件包中的Reveal工具調試控制PLD電路。該工具在PC上運行,可用作監(jiān)視和捕獲各種狀態(tài)的邏輯分析器以追溯故障事件。例如,使用Reveal調試工具,設計工程師能夠捕獲許多導致故障狀態(tài)的事件信息(包括寄存器、節(jié)點和引腳狀態(tài)),并將其顯示在PC顯示器上。這可以顯著減少系統(tǒng)電路板的調試用時。
圖2:基于MachXO2/MachXO3的控制PLD
無中斷更新I/O
控制PLD能夠幫助設計工程師顯著加速產(chǎn)品上市進程,在有限時間內滿足市場對于全新定制硬件的需求的壓力。有時候,在實現(xiàn)控制功能時會出現(xiàn)bug或系統(tǒng)整體結構需要的新功能。這時,對設計進行修改的一種常用方法是通過在系統(tǒng)更新、系統(tǒng)電源重新上電、載入經(jīng)過重新編程的鏡像來實現(xiàn)。這種方法需要進行電源復位,會中斷整個服務器硬件的運行,降低可用性。為了確保高可用系統(tǒng)的連續(xù)運行,MachXO3器件可以保持I/O狀態(tài)不變,同時刷新配置并初始化新配置。該功能稱為無中斷更新I/O。
圖3:無中斷更新I/O是如何工作的
無中斷更新I/O如何工作(圖3)
為了實現(xiàn)零停機更新,MachXO2/MachXO3器件通過“后臺更新”將新的配置數(shù)據(jù)加載到配置閃存中。一旦加載完畢,“TransFR”指令將新的PLD鏡像文件從配置閃存?zhèn)鬏數(shù)絇LD的配置SRAM。執(zhí)行“TransFR”指令的同時觸發(fā)了“保持當前狀態(tài)”功能,確保所有的I/O值在傳輸過程中保持不變。最后,在“邏輯初始化”步驟,狀態(tài)機將開始重新啟動電源管理并復位電源分配。這將導致電源關斷,迫使電路板開始電源上電過程。
當新鏡像創(chuàng)建的狀態(tài)機進行初始化時,系統(tǒng)是如何保持用于控制電源以及其他邏輯信號的輸出不變的?為了使得關鍵I/O在初始化過程中保持原狀,萊迪思為每個關鍵的I/O添加了一個鎖存MUX。它在狀態(tài)機初始化過程中將輸出保持為最后的已知狀態(tài),并在初始化過程完成之后將輸出控制交還給狀態(tài)機。該電路能夠使用“Hitless_IO_Enable”輸入?yún)^(qū)分正常(上電)啟動和重新配置,可避免在正常的上電過程中發(fā)生關鍵輸出I/O值被鎖死的情況。
這種新功能的優(yōu)勢是顯而易見的。它讓制造商實現(xiàn)即時的配置更改成為可能,可馬上糾正設計缺陷或向產(chǎn)品添加新功能。它在產(chǎn)品開發(fā)過程中也能發(fā)揮重要作用,讓設計工程師能夠在服務器安裝過程中快速調試產(chǎn)品或在調試過程中更改特定的產(chǎn)品參數(shù)。
PLD的便利性和成本優(yōu)勢使其成為實現(xiàn)在系統(tǒng)設計更新、電源管理、監(jiān)控和控制關鍵信號以及基本內務管理功能的理想選擇。
功能 #2 - 實現(xiàn)磁盤熱插拔所需的邏輯功能
機架式服務器支持熱插拔HDD/FD/NVMe驅動器。這些磁盤驅動器插入到背板。背板通過串行接口(如SGPIO和I2C)連接到主板。設計工程師可以使用MachXO2/3器件集成如圖4所示的邏輯功能以實現(xiàn)背板控制。舉個例子,當NVMe驅動器插入驅動器插槽時,MachXO2/3器件中的邏輯自動將狀態(tài)和控制信號發(fā)送到I2C總線而不是SGPIO總線。
圖4:使用MachXO2/MachXO3 PLD簡化使用熱插拔驅動器的背板控制功能
功能 #3 - 主機總線適配器電路板的硬件管理
萊迪思MachXO2/3器件的另一個潛在應用是集成主機總線適配器控制邏輯。如圖5所示,該解決方案集成SGPIO和其他帶外信號,管理電源/復位時序和其他PLD功能,包括快速電源故障檢測和狀態(tài)保存。設計人員還可以在現(xiàn)場實時對MachXO2/3器件中實現(xiàn)的邏輯添加功能和修復錯誤,通過無中斷更新I/O功能和I2C接口不會中斷系統(tǒng)操作。
圖5:集成主機總線適配器邏輯
功能 #4 - 電壓電流和溫度遙測
通常情況下,系統(tǒng)會持續(xù)對一些重要的電源電壓、電路板和器件溫度以及當前的負載進行測量。為了測量這些參數(shù),服務器主板使用模數(shù)轉換器IC來增加BMC、外部溫度檢測IC和電流檢測IC所需的通道數(shù)量。此外,該電路板使用I2C緩沖器IC和I2C多路復用器IC來管理遙測I2C總線(圖6)。電路板上的DC-DC轉換器用于為IC供電,由控制PLD器件控制??刂芇LD還監(jiān)控來自DC-DC轉換器的“Power-Good”數(shù)字信號。
設計工程師可以使用萊迪思的ASC(模擬傳感和控制)器件與控制PLD來集成ADC IC和一些溫度傳感IC。同時,器件將“Enable”和“Power-Good”信號從控制PLD傳輸?shù)紸SC器件。這樣做可以釋放控制PLD上的I/O,然后這些I/O可用于集成I2C緩沖器和I2C多路復用器IC。遙測電路的總體成本和BOM都得以降低。另外,通過檢測電源電壓的“Power-Good”狀態(tài)以及斷電狀態(tài),ASC還有助于提高斷電時序的可靠性,并最大限度地降低電路板擁塞程度。
圖6:實現(xiàn)遙測功能集成的新方法
功能 #5 - Bios和BMC固件驗證
為了實現(xiàn)BIOS和BMC固件驗證,MachXO2/3器件可用作無條件被信任(root-of-trust)(圖7)的安全硬件。在該配置中,器件實現(xiàn)橢圓曲線簽名認證來驗證系統(tǒng)BIOS和BMC固件。當正在運行的鏡像遭受入侵的情況下,它們也可用于管理自動黃金鏡像切換。
圖7:基于MachXO2/3的解決方案管理和驗證BIOS和BMC固件
功能 #6 - PCH上的TPM/TCM和單個SPI接口之間的橋接
萊迪思的MachXO2/3器件提供各類橋接解決方案。例如,服務器設計工程師可以使用這些器件將PCH SPI接口與TPM模塊(在中國以外的國家使用)或TCM模塊(在中國使用)連接到同一硬件上(圖8)。該橋接可適配輸入和輸出的各種工作頻率。
圖8:用于TCM的LPC到SPI橋接
功能 #7 - 在擴充卡上集成多種功能
服務器通常使用擴充卡添加LED驅動器、控制和傳感功能,以減少主板上的器件連接數(shù)量。通常情況下,這些功能使用分立邏輯IC實現(xiàn),這就需要多種類型的擴充卡,每種類型的功能都略有不同。減少所需擴充卡類型的一個方法是將每個擴充卡的功能集成到MachXO2/3 PLD上。然后可以在生產(chǎn)制造過程中簡單地修改集成在MachXO2/3器件中的邏輯來定制擴充卡邏輯功能。
功能 #8 - 整合多個I2C緩沖器
服務器系統(tǒng)中的CPU通過一對I2C緩沖器與DDR存儲器DIMM進行通信(圖9)。CPU還通過另一個I2C接口監(jiān)視SSD驅動器。設計工程師需要使用電壓轉換器緩沖器來將CPU的1.05 V I2C接口與1.2 V DDR存儲器和3.3 V SSD驅動器進行轉換。CPU還使用1.05 V邏輯信號生成多個帶外信號。這些帶外邏輯信號需要與使用2.5 V或3.3 V信號接口的其他器件進行通信。這就要在電路板上使用GTL緩沖器。
低成本MachXO3器件采用小尺寸QFN封裝(5 mm x 5 mm),可用于實現(xiàn)電平轉換,涵蓋1.05 V I2C和其他1.2 V、3.3 V和2.5 V邏輯信號。這樣可以減少電路板面積、BOM以及更為重要的原因,即實現(xiàn)成本。
圖9:MachXO2/O3 1V I/O支持I2C緩沖器集成
總結
今天的服務器設計工程師總是像20年前的工程師一樣盡可能通過快速、經(jīng)濟高效的方式在電路板上集成更多功能。而其中經(jīng)常被忽視的重要方法是通過控制PLD來實現(xiàn)。通過為設計工程師提供將所有控制路徑功能集成到單個可編程器件中的簡單方式,并通過添加新功能,使得設計工程師能夠在現(xiàn)場進行設計修改,控制PLD將大大簡化電路板設計和調試。
評論