핀케쉬 사츠데브(Pinkesh Sachdev), 제품 애플리케이션 엔지니어(Product Applications Engineer), 아나로그디바이스(Analog Devices, Inc.)
머리말
FPGA(field-programmable gate arrays)의 기원은 1980년대로 거슬러 올라가며
PLD(programmable logic devices)에 그 뿌리를 두고 있다. 이후로 FPGA가 자원, 속도, 효율 면에서 빠르게 진화해 왔으며, 다양한 컴퓨팅 및 프로세싱 애플리케이션에 FPGA가 사용되고 있다. 특히 제품 규모에 있어서
ASIC(application-specific integrated circuit)의 개발 비용이 타당하지 않을 때 FPGA가 적합할 수 있다. 그런데 이제는 FPGA가 대규모 구축에 사용하기에 적합할 정도로 발전했다. 일례로 Microsoft는 2013년에 FPGA를 사용해서 Bing 검색 엔진의 속도를 성공적으로 높인 경험을 바탕으로 FPGA에 기반한 서버 사용을 자사의 클라우드 데이터 센터로까지 확장했다.
FPGA의 전원 시스템 요구
FPGA는 내부 코어 로직, I/O 회로, 보조 로직, 트랜시버, 메모리 등을 구동하기 위해서 전압과 전류 요구가 각기 다른 다수의 저전압 전원 레일을 필요로 한다. FPGA 손상을 방지하기 위해서는 이러한 레일들을 특정한 순서로 켜고 끄고 해야 한다.
POL(point-of-load) 레귤레이터를 사용해서 보드의 높은 입력 전원 전압을 FPGA에 필요로 하는 다중의 저전압 레일들로 스텝다운할 수 있다. 전원 변환 효율이 중요할 때는 POL 레귤레이터로 스위칭 레귤레이터를 사용하고, PLL이나 트랜시버처럼 잡음에 민감한 회로로는
LDO(low-dropout) 레귤레이터 같은 선형 레귤레이터를 사용한다.
통상적인 보드 입력 전압은 5V, 12V, 24V, 48V인데, FPGA 레일 전압은 1V 미만에서부터 약 3V까지 이른다. 높은 입력 전압(12V, 24V, 48V)으로부터 POL 레귤레이터로 제공하기 위한 중간 전압 버스를 생성하기 위해서 추가적인 스텝다운이 필요할 수 있다(그림 1). FPGA 레일들 중에서도 코어 전원이 전압이 가장 낮고(약 1V 혹은 미만) 가장 높은 정확도(±3% 이내)를 필요로 하며, 전류는 FPGA 자원 활용에 따라서 수십 암페어 대에 이를 수 있다. 로직 오류를 방지하기 위해서는 FPGA 레일 허용오차 사양에 따라서 전원 변동을 수십 밀리볼트 대로 제한해야 한다. 이것은 dc 조건뿐만 아니라 FPGA 전류 트랜션트(AC 조건)에 대해서도 그래야 한다. 전원장치의 dc 정확도가 나쁠수록, 트랜션트 조건에서 허용 가능한 전원 전압을 유지하기 위해 더 많은 바이패스 커패시턴스가 필요하다. 예를 들어서 코어 전압 허용오차 사양이 ±3%라고 하자. 그러면 ±1% 정확도 dc 전원을 사용했을 때 트랜션트에 대해서 ±2%의 여유가 가능하다. 그런데 좀 덜 정확한 ±2% 정확도 dc 전원을 사용하면 트랜션트에 대해서 여유(±1%)가 그만큼 줄어들고 더 많은 바이패스 커패시턴스를 필요로 한다.
그림 1: FPGA 전원 트리 예. 높은 전압의 입력 전원(12V, 24V, 48V)을 중간 전압 버스로 스텝다운 하고 이것을 POL 레귤레이터로 제공해서 FPGA를 구동한다.
막판에 설계를 변경하거나, 다른 애플리케이션으로 디자인을 재사용하거나, 보드 마진 테스트를 하거나, 개발 중에나 현장 가동 중에 역동적으로 시스템 전력 소모를 최적화하기 위해서는 FPGA 전원 전압 레벨을 디폴트 설정으로 트리밍 하는 것이 필요하다. 이러한 경우에 피드백 네트워크로 다양한 저항을 사용하는 것은 가장 빠르거나 현실적인 방법이 아니다. 전압 트리밍을 하기 위한 한 가지 방법은 디지털-아날로그 컨버터(DAC)를 사용해서 전압 레귤레이터의 피드백 네트워크를 구동하는 것이다(그림 2). 아날로그-디지털 컨버터(ADC)로부터 전원 전압 측정 데이터를 획득하고, 적절한 DAC 코드를 계산하고, DAC 출력을 계산된 코드로 서서히 조절해서 글리치나 오버슈트를 일으키지 않으면서 전원 전압을 목표 수준으로 매끄럽게 상승시키도록 트림 루틴으로 소프트웨어 코드를 작성해야 한다. 시간이 경과하거나 온도가 상승하는 것에 따른 부품들의 드리프트로 인해서 전원 전압이 목표 전압에서 벗어나지 않도록 하기 위해서는 이러한 트림 루틴을 시간을 두고 반복해야 한다.
그림 2: DAC와 ADC를 사용해서 POL 전원 출력 전압을 목표 전압으로 트리밍
FPGA는 전자 시스템의 두뇌이기 때문에 다양한 상황에서도 시스템 건전성과 전력 소모를 파악하기 위해서 FPGA 전원 전압, 전류, 결함을 모니터링하는 것이 중요하다. 여기에 더해서 트리밍을 함으로써 최악의 전원장치를 설계하는 것을 피할 수 있고, 그럼으로써 비용과 전력을 절약할 수 있다. 뿐만 아니라 임박한 시스템 문제는 FPGA 전력 소모를 비정상적 추이로 나타내므로 보드나 시스템에 고장이 발생하기 전에 호스트 컨트롤러로 경고를 하거나 서비스 직원에게 알려줄 수 있다. 전압 모니터링을 위해서는 ADC가 필요하고, 전류 모니터링을 위해서는 상측 전류 검출 전압을 접지 참조 전압으로 변환하기 위한 레벨 쉬프트 회로도 같이 필요하다. 예를 들어서 그림 3에서 같이 트랜스컨덕턴스 증폭기를 사용할 수 있다.
그림 3: POL 전원 출력 전압, 전류, 전력을 모니터링하기 위한 디스크리트 회로 예
이러한 요구들을 충족하는 것만으로도 이미 충분히 벅찰 텐데, 결함 관리에 대해서는 아직 거론도 하지 않았다. POL 출력이 저전압 되거나 과전압 되면 다시 말해서 지정된 전압 범위를 벗어나면 어떻게 해야 할 것인가? 문제의 전원만 턴오프 할 것인가? 아니면 다른 전원들도 턴오프 해야 할 것인가? 보드를 셧다운 시킨 결함을 어떻게 디버그 할 것인가?
이런 질문들로 인해 FPGA의 전원 시스템을 관리하는 측면이 매우 복잡해질 수 있고, 엔지니어가 원래의 FPGA 애플리케이션에 전념하는 것을 방해할 수 있다. 그런데다가 FPGA의 전원 트리는 디지털 프로세싱 보드 측면에서 본다면 전체적인 전원 시스템의 한 부분에 불과하다.
ASIC,
DSP,
GPU,
SoC, 마이크로프로세서를 비롯해서 보드 상의 다른 디지털 디바이스들에 대해서도 위의 요구들이 마찬가지로 적용된다. 그러므로 단순하면서 확장이 용이하고 유연한 전원 시스템 관리 솔루션이 필요하다.
디지털 전원 시스템 관리
Analog Devices는 디지털 프로세싱 보드의 복잡한 전원 시스템을 다루는 데 사용하도록 포괄적인 유형의
디지털 전원 시스템 관리(DPSM) 디바이스들을 제공한다. 이들 DPSM 디바이스는 dc-dc 변환을 통합한 것도 있고 통합하지 않은 것도 있으므로, POL 레귤레이터를 대체하거나 아니면 기존의 POL 레귤레이터와 함께 사용할 수 있다. 전원 시스템 매니저 제품은 dc-dc 변환을 포함하지 않으며, 스위처나 LDO 레귤레이터에 상관 없이 기존의 어느 아날로그 전원 시스템으로나 디지털 모니터링과 제어를 추가할 수 있다.
LTC2980 같은 제품은 단일의 디바이스를 사용해서 16개 POL 레귤레이터에 대해서 트리밍, 마지닝, 모니터링, 시퀀싱, 감시, 결함 기록, 결함 관리를 할 수 있다. 다양한 채널 수를 제공하는 디바이스들(2개, 4개, 8개, 16개 채널)을 조합해서 수백 개 레일을 관리할 수 있다. 이 제품 포트폴리오로 가장 최근에 추가된 제품으로서 2채널
LTC2972는 FPGA 코어와 보조 레일 같이 2개의 중요도 높은 레일을 모니터링하고 제어하고자 할 때 사용할 수 있는 간단한 입문용 솔루션을 제공한다.
2채널 전원 시스템 매니저
LTC2972는 FPGA, ASIC, 프로세서 보드의 전원 시스템에 포괄적인 소프트웨어 기반의 모니터링, 제어, 블랙박스 결함 기록 기능을 추가한다. 그러므로 개발 시간을 단축하고, 시스템 신뢰성을 높이고, 보드 에너지 소모를 최적화한다(그림 4). 0.25%
총 비조정 오차(TUE)로 동급 대비 가장 우수한 16비트 ADC를 사용해서 POL 전원 출력 전압을 트리밍, 마지닝, 모니터링할 수 있다. 그러므로 보드 수율과 장기적인 성능을 향상시킨다. POL 출력 전압을 ±0.25% 정확도로 엄밀하게 제어하므로 부하 트랜션트 시에 변화될 수 있는 여유를 늘리게 되고(±3% FPGA 레일 사양이라고 했을 때 ±2.75%의 여유), 필요한 바이패스 커패시턴스를 크게 줄이고 보드 공간을 절약할 수 있다. 전원 출력 전류는
검출 저항,
인덕터 DCR, 또는
IMON 출력을 사용해서 측정할 수 있다. 내부에서 전압과 전류 측정을 곱해서 편리하게 POL 전력 출력 값을 제공한다.
그림 4: LTC2972 2채널 전원 시스템 매니저를 사용한 중간 버스 에너지 모니터링과 POL 출력 전력 모니터링
LTC2972는 전원 시퀀싱, 감시,
EEPROM 결함 로깅 기능을 포함한다. 시퀀싱은 내부 레지스터에 쓰인 시간 지연이나 연결된 power-good 신호를 사용해서 한다.
POL 입력 전압, 출력 전압, 온도가 설정된 하한 및 상한 임계값을 벗어나면 고속 비교기가 결함을 지시한다. 결함이 발생되면 EEPROM 블랙박스 기록이 실행되므로 결함 분석을 편리하게 할 수 있으며 향후에 시스템 개선을 위한 통찰을 제공한다. 최초의 결함 명령은 시스템 결함의 원인을 파악할 수 있다. 결함을 다른 전원이나 다른 DPSM 디바이스들로 유연하게 전달할 수 있다.
또한 LTC2972는 POL 컨버터로 제공되는 중간 버스 입력에 대해서 전압, 전류, 전력, 에너지 모니터링을 할 수 있다. 에너지 소모를 관리하고 최적화하고 낮추기 위해서는 그리고 이를 통해서 서버나 데이터 센터의 냉각 비용과 전력 요금을 낮추기 위해서는 회로 보드 전력과 에너지 사용량을 모니터링하는 것이 필요하다. LTC2972는, 전원 관리 및 변환 디바이스들과 통신을 위한 산업 표준으로 PMBus 인터페이스를 통해서, 입력 에너지와 경과된 시간을 제공하므로 호스트가 폴링하고 계산해야 하는 부담을 던다. 여기에다 POL 출력 전압, 전류, 전력에 대한 디지털 측정을 결합해서 전원 시스템의 변환 효율을 장기적으로 모니터링할 수 있다.
각 채널로 프로그래머블 power-good 또는
범용 입출력(GPIO) 핀들을 사용할 수 있다. LTC2972를 다른 전원 시스템 매니저들과 연결해서 2개 이상의 레일을 시퀀싱 하고 결함 관리를 할 수 있다. I2C/SMBus 인터페이스를 통해 PMBus 호환 명령을 사용해서 전원 시스템을 유연하게 프로그래밍하고 데이터 리드백을 할 수 있다. LTpowerPlay® 개발 환경을 사용해서 구성 작업을 할 수 있다(그림 5). LTpowerPlay는 Analog Devices의 모든 DPSM 제품을 지원한다. 애플리케이션에 따라서 필요한 구성으로 내부 EEPROM을 프로그램하고 난 다음에는 어떤 추가적인 소프트웨어 코딩을 할 필요가 없고 자율적으로 실행된다.
그림 5: DPSM 제품 용의 LTpowerPlay 개발 환경. 추가적인 코딩을 할 필요가 없고 자율적으로 실행된다.
맺음말
FPGA가 모든 종류의 전자 시스템으로 사용이 늘어나면서 ASIC의 자리까지 넘보고 있다. 그런데 과제는 복잡한 전원 시스템을 다루어야 한다는 것이다. Analog Devices는 이러한 복잡성을 관리할 수 있도록 다양한 유형의 DPSM 제품을 제공한다. LTC2972는 DPSM을 사용한 경험이 없는 이들을 위해서 손쉬운 입문용 솔루션을 제공하며, 디지털 프로세싱 보드로 전원 시스템 복잡성을 낮춘다.
analog.com/FPGA로 들어가면 FPGA 레퍼런스 디자인에 관한 추가 정보를 볼 수 있다.
저자 약력
핀케쉬 사츠데브(Pinkesh Sachdev)는 Analog Devices의 전원 시스템 관리(PSM) 제품 애플리케이션 엔지니어이다. 도 뭄바이에 소재한 인도 공과대학에서 전기공학 학사학위 및 스탠포드 대학에서 전기공학 석사학위를 취득했다. 궁금한 점은
pinkesh.sachdev@analog.com으로 문의.
제품스펙