伺服器有许多不同类型,包括机架式、刀锋式、直立式、以及适用於高密度计算的模组化配置类型。理想情况而言,每台伺服器皆会针对执行特定任务进行优化。然而,多数伺服器设计皆具备许多共同特徵,包括具备多个处理器和热??拔记忆体、不同透过PCIe连接至CPU和PCH的周边设备、以及安全服务和电源管理解决方案。尽管设计工程师为各种应用创建不同解决方案,多数案例皆针对基本伺服器架构进行客制。
图1为上述常见架构。一般而言,为满足不同市场需求,伺服器设计工程师会对此基础架构进行客制。周边硬体块、系统级介面块、BMC介面以及其他重要元件会因伺服器设计而所有差异。然而,电源管理、控制和胶合逻辑功能块(图1中功能一)在客制设计中扮演关键角色,以满足特定应用需求。设计工程师需为不同伺服器类型客制功能,如电源管理、电路板专用的胶合逻辑或I/O扩增。尽管功能一无法协助CPU、硬碟或网路等承载业务,但有助於确保电路板上所有主要的元件在正常范围内工作。设计工程师不断致力於降低上述功能的成本和复杂性,并同时确保维持电路板的可靠性。
本文将探讨在旧型伺服器设计中实现功能一的传统方法,并将其与新型伺服器设计方法进行比较,也就是使用PLD整合上述功能。此外,本文更将讨论其他可编程设计逻辑元件如何实现伺服器其他常用功能,以降低复杂性和成本。
![图1 : 8个PLD功能的伺服器设计框图(设计实例)](/art/2017/11/091826391450/p1S.JPG)
图1 : 8个PLD功能的伺服器设计框图(设计实例) |
|
功能一:电源管理、控制和胶合逻辑功能
过去几年,设计工程师使用多种分离元件实现电源管理、控制和其他胶合逻辑功能,此方法具有一定程度的成本效益。然而,随着伺服器设计日益复杂、功能逐渐增加,此类设计所需元件亦越来越多。目前,设计工程师若要将功能一设计於多种类型的伺服器,采用分离元件将会增加时间和人力。例如,若改变电路板上复杂SoC元件数量,电源数量、胶合逻辑以及其他控制功能的数量也会随之改变,就可能要进一步更改逻辑和基本时序。
因此,分离元件解决方案不仅会降低新型伺服器硬体产品的上市进程,更会随着所需元件数量增加而提升成本。此外,更改设计有时会需要重新更改整个电路板,不仅拖延专案进程,更增加成本。
新型伺服器系统通常会将功能一与非挥发性PLD整合,PLD会在电路板通电後立刻开始运作(即时启动)。 通常,实现功能一所需的逻辑资源和I/O数量取决於伺服器类型。因此,能提供丰富I/O数量和逻辑资源选择的PLD元件,十分适合用以实现功能一。
莱迪思MachXO3 FPGA系列与上一代MachXO2系列(简称MachXO2/3)都能够实现所需功能。MachXO2/3元件为支援即时启动的非挥发性PLD,提供640 LUT到9400 LUT与22个I/O到384个I/O元件选择。这些PLD可在系统中透明地进行更新,并提供双重开机支援,以便修复不同系统更新错误。这些元件仅需单一3.3V电源即可运作,当电源电压高於2.2V,即会启动伺服器主机板电源管理演算法。
因此,MachXO2/XO3同时是电路板上第一个启动与最後一个关闭的元件。这些元件支援多个I/O Bank,可在不影响其他模组运作下,单独进行通电与断电,此优势使其能够整合多种异构功能,例如多个电源块控制、频外讯号发送以及电源待机控制。藉由上述元件,设计工程师更能够将SPI、I2C以及计时器/计数器介面增加至传统设计中,并支援多次在可编程设计逻辑元件上配置快闪记忆体。
将功能一整合至控制PLD(MachXO2/3)
图2说明MachXO2/3元件适用於实现控制PLD功能,如电源/重定时序、各种类型的串列汇流排(I2C、SPI、eSPI、SGPIO等)、调试埠、LED磁碟机、风扇PWM磁碟机、前板开关感测以及其他一般GPIO功能。 MachXO2/3元件支援1V讯号,可在无需外部GTL收发器的条件下,实现频外讯号功能整合。当晶片运作时,设计工程师可使用莱迪思套装软体中Reveal工具调整控制PLD电路,Reveal於PC上运行,可作为监视和获取各种状态的逻辑分析器,藉以控制故障事件。例如,设计工程师透过Reveal调试工具,能够获取许多导致故障状态的事件资讯(包括暂存器、节点和引脚状态),并将其显示於PC显示器,以减少系统电路板排除故障的时间。
![图2 : 基于MachXO2/MachXO3的控制PLD](/art/2017/11/091826391450/p2S.JPG)
图2 : 基于MachXO2/MachXO3的控制PLD |
|
Hitless I/O
控制PLD能够有效协助设计工程师加速产品上市进程,在有限时间内满足市场对全新客制硬体的需求。通常,实现控制功能时会产生bug或系统整体结构所需的新功能。此时,常用方法是透过系统更新、系统电源重新通电,於载入经重新编程图像时针对设计进行修改。此方法需重新设定电源,中断整个伺服器硬体的运作,并降低可用性。为确保高可用系统不断运作,MachXO3元件可以维持I/O状态,同更新配置并初始化新配置,该功能称为Hitless I/O。
Hitless I/O运作方式(图3)
为实现零停机更新,MachXO2/MachXO3元件透过「後台更新」将新配置资料载入至配置快闪记忆体。载入完毕後,「TransFR」会将新PLD图像档案自配置快闪记忆体传递至PLD配置SRAM。在执行「TransFR」指令的同时会触发「保持目前状态」功能,以确保传递过程中所有I/O数值皆保持不变。最後,「逻辑初始化」阶段,状态机器将开始重新开启电源管理并重新设定电源分配,导致电源供电中断,迫使电路板启动电源通电过程。
当建立新图像的状态机进行初始化,系统该如何使控制电源与其他逻辑讯号输出保持不变?为使关键I/O在初始化过程中保持原有状态,莱迪思为每个关键I/O增加锁存MUX,不仅在状态机初始化过程中将输出作为最终已知状态,并在初始化过程完成後将输出控制交给状态机。该电路能够使用「Hitless_I/O_Enable」输入区分正常(通电)启动和重新配置,可避免正常通电过程中锁住关键输出的情况。
此新功能的优势显而易见,可协助制造商实现即时配置更改,立即修正设计缺陷或为产品增加新功能。同时,也能为产品开发过程提供重要作用,使设计工程师在伺服器安装过程中,快速调试产品或在调试过程中更改特定产品数值。
PLD具有便利性和成本优势,成为实现系统设计更新、电源管理、监控和控制关键讯号以及基本内务处理功能的理想选择。
功能二:实现磁碟机热??拔所需的逻辑功能
机架式伺服器支援热??拔HDD/FD/NVMe磁碟机。磁碟机可??至背板,背板透过序列介面(如SGPIO和I2C)与主机板连接。设计工程师可使用MachXO2/3元件整合成图4的逻辑功能,以实现背板控制。例如,当NVMe磁碟机??入磁碟机??槽时,MachXO2/3元件中的逻辑会自动将状态和控制讯号发送至I2C汇流排,而非SGPIO汇流排。
![图4 : 使用MachXO2/MachXO3 PLD简化热??拔磁碟机的背板控制功能](/art/2017/11/091826391450/p4S.JPG)
图4 : 使用MachXO2/MachXO3 PLD简化热??拔磁碟机的背板控制功能 |
|
功能三:主机汇流排配接器电路板的硬体管理
另一个莱迪思MachXO2/3元件的潜在应用为整合主机汇流排配接器控制逻辑。如图5所示,该解决方案整合SGPIO和其他频外讯号,管理电源/重定时序和其他PLD功能,包括即时电源故障检测和状态保持。设计人员更可在现场即时对MachXO2/3元件实现逻辑增加功能和修复错误,透过Hitless I/O功能和I2C介面避免中断系统运作。
功能四:电压电流和温度遥测
一般情况下,系统会不断针对重要的电源电压、电路板、元件温度以及当前负载量进行检测。为检测这些数值,伺服器主机板使用模数转换器IC增加BMC、外部温度检测IC、以及电流检测IC所需的通道数量。此外,该电路板使用I2C缓冲器IC和I2C多工器IC管理遥测I2C汇流排(图6)。电路板上的DC-DC转换器是为IC供电,并由控制PLD元件控制。控制PLD更监控来自DC-DC转换器的「Power-Good」数位讯号。
设计工程师可使用莱迪思ASC(类比感测和控制)元件与控制PLD整合ADC IC和某些温度感测IC。同时,该元件可将「Enable」和「Power-Good」讯号自控制PLD传递至ASC元件,以解放控制PLD上的I/O,使被解放的I/O可整合I2C缓冲器和I2C多工器IC,达到降低遥测电路的总体成本和BOM的目标。另外,透过检测电源电压的「Power-Good」状态与断电状态,ASC更有助於提升断电时序的可靠性,并最大限度地降低电路板拥堵程度。
功能五:Bios和BMC韧体验证
为实现BIOS和BMC韧体验证,MachXO2/3元件可作为硬体的安全信任根(root-of-trust)(如图7)。该配置中,此元件可实现椭圆曲线签名验证(Elliptic Curve Signature Authentication),以验证系统BIOS和BMC韧体。当运作中的图像遭到入侵,此元件亦可管理自动黄金图像转换。
![图7 : 基於MachXO2/3的解决方案可管理和验证BIOS与BMC元件](/art/2017/11/091826391450/p7.jpg)
图7 : 基於MachXO2/3的解决方案可管理和验证BIOS与BMC元件 |
|
功能六:PCH上TPM/TCM和单一SPI介面之间的桥接
莱迪思MachXO2/3元件提供各类桥接解决方案。例如,伺服器设计工程师可使用此元件将PCH SPI介面与TPM模组(除了中国以外的国家使用)或TCM模组(中国使用)连接至同一硬体(图8),该桥接可与各种输入和输出的工作频率相容。
功能七:扩充卡整合多种功能
伺服器通常采用扩充卡增加LED磁碟机、控制以及感测功能,以减少主机板元件连接数量。一般情况下,透过分离逻辑IC实现上述功能会需要不同类型的扩充卡,而每类型的功能皆有所不同。减少所需扩充卡类型的方法之一是将每个扩充卡的功能整合至MachXO2/3 PLD,然後在生产制造过程中简单修改整合在MachXO2/3元件的逻辑,以客制扩充卡逻辑功能。
功能八:整合多个I2C缓冲器
伺服器系统中,CPU透过一对I2C缓冲器与DDR记忆体DIMM进行通讯(图9),同时,CPU更透过另一个I2C介面监视SSD磁碟机。为将CPU的1.05V I2C介面、1.2V DDR记忆体和3.3V SSD磁碟机进行相互转换,设计工程师需使用电压转换器缓冲器。CPU更使用1.05V逻辑讯号生成多个频外讯号,这些频外逻辑讯号会需要与使用2.5V或3.3V讯号介面的其他元件进行通讯,因此,电路板上需采用GTL缓冲器。
低成本MachXO3元件采用小尺寸QFN封装(5 mm x 5 mm),可实现整合讯号转换,包括1.05V I2C与其他1.2V、3.3V和2.5V逻辑讯号,以减少电路板面积、BOM以及实现成本的重要目标。
![图9 : MachXO2/O3 1V I/O支援I2C缓冲器整合](/art/2017/11/091826391450/p9S.JPG)
图9 : MachXO2/O3 1V I/O支援I2C缓冲器整合 |
|
总结
目前,伺服器设计工程师如同过去20年的工程师尽可能透过快速、符合经济效益的方式在电路板上整合更多功能。控制PLD为经常被忽视的重要方法,提供设计工程师将所有控制路径功能整合至单一可编程元件的简单方式,同时增加新功能,使设计工程师实现即时设计修改,并透过控制PLD大幅简化电路板设计和调试。
**刊头图(source:SecurityInfoWatch.com)