1. 배경 지식
표 1은 Virtex-II 및 Virtex-5 칩의 주요 스펙입니다. 일반적으로 게이트 개수는 FPGA 칩과 ASIC 기술을 비교하는 방법에 사용되었지만, 실제로 이것이 FPGA 내부의 유용한 로직 양을 나타내지는 않습니다. 이 때문에 Xilinx가 새로운 Virtex-5 제품군의 게이트 개수를 명시하지 않았습니다.
표 1. Virtex-II 및 Virtex-5 스펙
각 컴포넌트의 개수는 각 제품군내에서 직접 비교하는데 유용합니다. 그러나 여러 컴포넌트 아키텍처는 Virtex-5를 위해 재설계되었으므로 제품군간 비교하기가 어렵습니다. 예를 들어, Virtex-5 LX85는 Virtex-II 3000 보다 슬라이스가 더 적지만, 성능은 Virtex-5가 더 우수합니다. 각 장점을 이해하기 위해서는 Virtex-5의 구체적인 기능을 자세히 검토하는 것이 더 좋습니다.
플립 플롭, LUT, 블록 RAM 및 멀티플렉서와 같은 일반적인 요소는 Virtex FPGA에서 기본적인 로직 구조를 구성합니다. 이런 구성을 슬라이스 또는 CLB (configurable logic block)라고 일컬어 집니다. CLB 및 슬라이스의 정의는 각 디바이스 군에 특정합니다. 그 예로 Virtex-II의 CLB는 네 개의 슬라이스이며 각 슬라이스에는 2개의 4 입력 LUT, 2개의 플립 플롭, wide-function 멀티플렉서, 캐리 로직이 있습니다.
Virtex-5에서 CLB는 두 개의 슬라이스로 정의되며, 각 슬라이스에는 4개의 6 입력 LUT, 4개의 플립 플롭, wide-function 멀티플렉서, 캐리 로직을 담고 있습니다. Virtex-5에서 본 기본 슬라이스들은 SLICEL이라고 합니다. 일부 슬라이스에는 내장된 분산형 RAM 및 32비트 시프트 레지스터가 있습니다. 본 추가 사항이 있는 슬라이스를 SLICEM이라고 합니다.
SLICEM만
표 2. Virtex-5의 CLB 요소
본 요소 및 관련 개념에 관한 자세한 정보는 “FPGA – 내부 기술” 백서를 참조하십시오.
2. 로직 향상: 6개 입력 LUT 및 향상된 CLB 인터커넥션
Virtex-5의 가장 큰 장점 두 가지는 칩 요소 기본 아키텍처의 차이입니다. Xilinx는 새로운 디자인에서 표준 4 입력 LUT를 풀 6 입력 LUT로 확대하였습니다. 또한 Xilinx는 더욱 향상된 대각선 대칭 인터커넥트 패턴을 설계하였습니다.
6개 입력 LUT
시스템이 점점 더 복합화되면서 더 넓은 데이터 경로를 요구하는 어플리케이션이 보편화되고 있습니다. 기존 4개 입력 LUT는 극도로 제한적이게 되어 복합 코드 실행을 위해 여러 레벨의 로직이 필요하게 되었습니다. Xilinx는 더 큰 용량을 위해 LUT를 6 입력 LUT로 확대하였습니다. 기존의 4개 입력 LUT에는 16개의 서로 다른 조합을 위한 진리표가 있습니다. 새로운 6개 입력 LUT는 진리 값을 64개의 다른 조합으로 확대하였습니다. 예를 들어, 그림 1에서처럼 두 개의 16비트 숫자간 간단한 비교를 실행한다고 생각해 보십시오.
그림 1. NI LabVIEW 소프트웨어에서 간단한 비교(보다큼) 연산
LUT는 각 비트를 비교하여 결과를 도출해내므로 16 비트 수는 16개 LUT 입력이 필요합니다. 그림 2에 보이는 것처럼 4개 입력 LUT 아키텍처를 사용하여 본 작업을 수행할 경우, 11개의 LUT와 3개의 로직 레벨이 필요할 것입니다. 6개 입력 LUT 아키텍처에서는 동일한 함수가 단 7개 LUT와 2개 로직 레벨을 사용합니다.
그림 2. 16 비트 비교 예
대각선 대칭 인터커넥트
더욱 조밀한 Virtex-5 로직은 기존의 인터커넥트 설계에 제한됩니다. 로직 블록이 요구하는 로직의 양과 연결의 양 사이에는 관계가 성립됩니다. 이는 Rent의 법칙으로 설명됩니다.
T=tgp
t와 ρ는 재료 정수이면, T는 터미널의 개수 (또는 로직 블록의 경계에서의 연결)이며 g는 내부 요소의 개수 (로직)입니다. Xilinx는 적절한 정수를 사용하여 Virtex-5가 기존 디자인인 Virtex-4에 비해 인터커넥트가 50퍼센트 더 필요하다는 것을 계산하였습니다. 이를 위해 Xilinx는 그림 3에서와 같이 획기적인 새로운 대각선 대칭 인터커넥트 패턴을 구현하였습니다.
그림 3. Virtex-4 및 Virtex-5의 인터커넥트 패턴
또한 본 디자인은 더 적은 홉(hop)으로 더 많은 위치를 만들어내기 때문에 속도가 향상됩니다. 홉은 두 개의 CLB간 연결의 인접여부와 관계없이 하나의 트레이스 또는 라우팅 구조를 사용할 때 생성됩니다. 두 개의 CLB사이에 연결을 위한 두 개의 라우팅 구조가 필요하다면 이는 두 개의 홉으로 간주됩니다. 그림 3은 중앙의 CLB로부터 1, 2, 3번 홉 내에서 몇 개의 로직 블록이 접근가능한지 보여주기 위해 색깔 별로 표시되어 있습니다. 프로세스가 개선되어 인터커넥트 타이밍 지연은 주요 경로 지연의 50퍼센트 이상을 차지합니다. 새로운 디자인에서 블록간의 거리가 더 작기 때문에 보다 많은 로직 블록은 2-, 3-번 홉 범위 내에서 접근가능하며 신호가 목적지로 도달하는 시간이 대폭 줄어듭니다. 그림 4에 Virtex-5와 Virtex-4 디자인간 라우팅 지연이 비교되어 있습니다.
그림 4. Virtex-4 및 Virtex-5 FPGA의 라우팅 지연 비교
또한, 블록 사이에 신호가 전달되어야 할 때마다 신호가 블록을 벗어나야 하고 금속 층을 거쳐 다른 블록으로 이동해야 하는데 이때 전력이 필요합니다. 거리가 단축되면 속도가 증가할 뿐 아니라 전력 소모도 줄어듭니다.
3. 디지털 신호 처리 및 DSP48E 슬라이스
디지털 신호 처리 (DSP)는 디지털 신호 또는 디지털화된 아날로그 신호를 연구, 처리 및 분석하는 것입니다. 일반적인 어플리케이션에는 디지털 이미징, 통신 및 생물 의학 어플리케이션을 위한 센서 어레이 처리, 통계 신호 처리 및 신호 처리가 있습니다. 이를 위해 기존에는 전용 디지털 신호 프로세서가 필요했었습니다. FPGA는 하드웨어 병렬성을 활용하여 시퀀스별 실행의 패러다임을 분리하고 클럭 주기당 더 많은 작업을 수행함으로써 디지털 신호 프로세서 (DSP)의 연산 능력을 능가합니다.
멀티플라이어와 같은 특수 컴포넌트는 FPGA 활용 및 DSP 어플리케이션의 효율성을 대폭 증대합니다. 이러한 컴포넌트가 없으면 숫자 두 개를 곱하는 것처럼 간단해 보이는 작업이 극도로 리소스 집약적인 작업이 됩니다. Virtex-II에는 18 비트x 18 비트 멀티플라이어가 있지만 Virtex-4의 출시로 Xilinx는 DSP48 슬라이스라고 하는 특화된 로직 블록을 추가하였습니다. DSP 데이터 및 신호 분석 작업을 위해 특수 제작된 본 블록에는 내장된 곱하기 및 가산기 회로가 있습니다. 원래 DSP48 슬라이스의 멀티플라이어는 18 비트x 18 비트였습니다. Xilinx는 멀티플라이어의 용량을 Virtex-5에서 25 비트x 18 비트로 확장하였습니다.
본 슬라이스를 DSP48E 슬라이스라고 합니다. 본 슬라이스는 멀티플라이어, 멀티플라이어-누적기, 멀티플라이어-가산기, 감산기, 3 입력 가산기, 배럴 시프터, 와이드 버스 멀티플렉서, 와이드 카운터, 비교측정기 등 40개 이상의 동적으로 제어되는 작동 모드를 지원합니다. 본 슬라이스가 있으면 일반 로직 리소스를 사용하지 않고 본 기능을 사용할 수 있습니다.
DSP48E 슬라이스는 가산기 체인 실행 - 매우 효율적이며 고성능 필터를 가능하게 하는 강력한 성능-을 위해 최적화되었습니다. NI LabVIEW 소프트웨어 및 LabVIEW FPGA Module을 사용한 필터 디자인에 관한 더 자세한 정보는 관련 링크 섹션에서 “NI LabVIEW Digital Filter Design Toolkit을 사용하여 필터 디자인"을 참조하십시오.
각 DSP48E 슬라이스의 입출력에 대한 전용 라우팅 리소스는 슬라이스 수에 관계없이 열 내에서 캐스케이드(cascade)되도록 허용합니다. 본 전용 라우팅은 체인의 모든 DSP48E 슬라이스가 FPGA에 의해 요구되는 패브릭 라우팅 또는 로직 리소스를 소비하지 않고도 최고속도로 실행할 수 있음을 보장합니다.
DSP 슬라이스의 처리능력을 비교하는 한 가지 방법은 초당 수행 가능한 MAC (multiply-accumulate) 작업 수이며 이는 보통 초당 수십억 MAC (multiply-accumulate) 작업 (Giga MACs 또는 GMACs)으로 나타납니다. 그림 5는 LabVIEW를 사용하여 그래픽적으로 설명하였습니다.
그림 5. MAC (Multiply-Accumulate) 함수를 그래픽으로 표현
현실상 본 그래픽 기반 코드는 Virtex-5 FPGA의DSP 슬라이스를 완전히 사용하지 않습니다. 따라서 컴파일러에 DSP 슬라이스를 사용하는 코드를 제공하기 위해서는 HDL 노드가 있는 단일 주기 timed 루프가 필요합니다. 이는 그림 6에 나타나 있습니다. 본 예제에 사용된 실제 코드는 LabVIEW FPGA IPNet 및 NI Developer Zone 예제 프로그램에서 사용 가능합니다.
그림 6. MAC (Multiply-Accumulate) 함수 수행에 사용된 실제 코드
NI는 위에 나타낸 HDL 노드 예제를 사용하여 Virtex-II 및 Virtex-5를 위한 MAC 벤치마크를 수행하였습니다. 각 벤치마크는 96 병렬 MAC (multiply accumulates)를 수행하기 위해 컴파일 되었습니다. Virtex-II는 단 40 MHz 속도를 얻었으며 Virtex-5는 100 MHz에서 본 테스트를 수행하였습니다. 벤치마크 결과는 Virtex-II용 3.84 GMAC 및 Virtex-5용 9.6 GMAC입니다.
4. 65 nm 프로세스 및 향상된 전력 효율성
FPGA 칩의 성능 및 효율성은 처리에 사용되는 리소그래픽 노드의 크기와 상응합니다. 이전의 FPGA 디자인은 90 nm 프로세스를 사용하였습니다. Xilinx는 Virtex-5를 도입하면서 65 nm 리소그래픽 노드를 사용하여 FPGA 칩을 최초로 설계한 업체가 되었습니다. 또한 이는 그림 7에 나오는 트랜지스터 게이트 옥사이드 (transistor gate oxide)의 두께이기도 합니다. 본 트랜지스터 게이트를 “수백만의 게이트” 스펙(Virtex-4이전에 FPGA 칩의 상대적인 크기를 결정하기 위해 사용)과 혼동하지 마십시오.
그림 7. 게이트 옥사이드 두께를 보여주는 일반 트랜지스터
트랜지스터에서 게이트를 구동하기 위해 적은 전압이 필요하므로 Xilinx는 더욱 작은 트랜지스터 게이트를 사용하여 칩에서의 전력 소비를 줄였습니다. 코어 로직은 Virtex-5에서 단 1 V만을 사용하며, 대조적으로 Virtex-4에서는 1.2 V, Virtex-II에서는 1.5 V를 사용합니다.
트랜지스터 게이트 옥사이드 두께가 더욱 작은 경우 몇 가지 단점이 있습니다. 게이트 옥사이드 두께가 작은 경우의 주요 단점으로는 누출 전류 또는 정전 방전이 증가한다는 점입니다. 누출 전류는 트랜지스터 게이트가 작아서 전류가 벽을 통과할 수 있을 경우 발생하며 전력 낭비가 생깁니다. Xilinx는 on/off 위치에 유지되며 주로 구성에 사용되는 특정 트랜지스터가 있다고 판단했습니다. 트랜지스터가 off에 있어도 본 상태를 유지하기 위해서는 전압이 필요하기 때문에 트랜지스터에는 여전히 누출 전류가 있습니다. 다른 트랜지스터는 항상 활성 상태이며 지속적으로 상태를 바꿉니다. 본 트랜지스터의 경우, 작은 게이트 옥사이드에 의해 절감되는 전력은 막대한 수준이며 누출 전류는 문제시되지 않습니다. Xilinx는 로직을 구성 로직과 코어 로직의 두 개 그룹으로 나누었습니다. 구성 로직에서 누출 전류를 경감하기 위해서 트랜지스터 게이트 옥사이드가 약간 더 두껍게 만들어졌습니다. 코어 로직에서 누출 전류가 어디에 있는지는 중요하지 않으며 트랜지스터 게이트 옥사이드는 65 nm입니다. 게이트에서 3.3 V를 요구하며 250 nm의 더욱 두꺼운 게이트 옥사이드 두께가 있는 유형의 트랜지스터도 있습니다.
그림 8은 세 개의 게이트를 나타냅니다.
그림 8. 트랜지스터 게이트 두께의 세 가지 유형
본 방식으로 누출 전류를 방지하면 동적 전력 분산 및 활성/비활성 전력 소비 비율을 상당히 향상시킵니다. Virtex-5의 동적 전력 분산은 Virtex-4와 비교하였을 때 35퍼센트 줄어듭니다. 또한 활성/비활성 전력 소비 비율도 표준 90 nm 프로세스에서 9.2 퍼센트입니다. 새로운 65 nm 프로세스에서 본 비율은 6.7 퍼센트로 향상되었습니다. 65 nm 프로세스는 디자인에서의 명백한 전진을 의미합니다.
5. 고급 어플리케이션
Virtex-5에는 더욱 강력한 어플리케이션을 위한 여러 유용한 개선 사항이 있었습니다. 그러나 많은 어플리케이션은 고급 지식이 요구되며 직접 HDL 프로그래밍을 사용해야만 합니다. LabVIEW FPGA Module이 있으면 HDL 노드를 사용하여 본 함수에 접근할 수 있습니다. 예를 들어 LabVIEW FPGA에서 컴파일된 코드는 최고 200 MHz의 루프 속도를 얻습니다. Virtex-5는 550 MHz 클럭 속도 등급을 가졌습니다. 이는 이론상의 최대 수치로 코드에 따라 다릅니다. LabVIEW FPGA의 HDL 노드를 사용하면 그래픽 기반 LabVIEW FPGA 코드가 제공하는 200 MHz를 상회하는 속도로 루프를 프로그래밍할 수 있습니다. 또 다른 고급 기능으로는 두 개의 5 입력 LUT를 사용한 Xilinx의 6 입력 LUT 실행입니다. (그림 8)
그림 9. 듀얼 5 입력 LUT
또한 HDL을 사용하면 6 입력 LUT를 입력을 공유하는 두 개의 5 입력 LUT로 구성할 수도 있습니다.
LX 칩 이외에도 Xilinx는 세 가지의 Virtex-5 FPGA 제품군을 제공합니다. Xilinx는 특정 로직 블록의 상대적인 양을 변경함으로써 서로 다른 어플리케이션을 위한 본 제품군을 최적화합니다. 예를 들어 DSP 어플리케이션에 최적화된 FPGA에는 범용 FPGA 보다 더 많은 DSP48E 슬라이스가 있습니다. 표 3은 서로 다른 제품군 및 각 장점을 설명합니다.
표 3. Virtex-5 FPGA 제품군 요약
Xilinx 및 Virtex-5 FPGA에 대한 더욱 자세한 정보는 관련 링크 섹션에 있는 Xilinx 웹사이트를 방문하십시오.
관련 링크
Xilinx 웹사이트
NI R 시리즈 인텔리전트 DAQ
FPGA – 내부 기술 살펴보기
FPGA 기술 소개 – 5가지 주요 장점
NI FlexRIO