FPGA



자일링스의 Zynq™-7000 EPP(Extensible Processing Platform)는 단일 디바이스 내에서 ARM 기술을 활용한 고성능 프로세싱 시스템은 물론 자일링스 IDF(Isolation Design Flow)와 부분 리컨피규레이션을 지원하는 대용량의 프로그래머블 로직 유닛을 모두 갖추고 있기 때문에 이러한 애플리케이션에 매우 이상적인 솔루션을 제공한다.

글: 애니타 쉬레이버(Anita Schreiber) / 시니어 스태프 애플리케이션 엔지니어,
방산 애플리케이션 및 시스템 아키텍처
자일링스 / www.xilinx.com

오늘날의 군용 및 상업용 SDR(Software-Defined Radios)은 기존의 방대한 파형 라이브러리를 포함해 증가하는 광대역 및 브로드밴드 파형을 지원할 수 있도록 유연성 및 프로세싱 성능을 갖춰야 한다. 자일링스의 Zynq™-7000 EPP(Extensible Processing Platform)는 단일 디바이스 내에서 ARM  기술을 활용한 고성능 프로세싱 시스템은 물론 자일링스 IDF(Isolation Design Flow)와 부분 리컨피규레이션을 지원하는 대용량의 프로그래머블 로직 유닛을 모두 갖추고 있기 때문에 이러한 애플리케이션에 매우 이상적인 솔루션을 제공한다.

그렇다면 Zynq-7000 EPP 상에 구현된 SDR 프로젝트가 다양한 파형 지원은 물론 부품 수를 줄이고 전력소모를 절감하기 위해 프로그래머블 로직 유닛의 부분 리컨피규레이션 및 IDF 기능을 어떻게 활용했는지에 초점을 두고 좀 더 자세히 살펴보도록 하자. Zynq-7000 EPP는 이번 디자인 사례에서 5개의 디바이스를 1개로 줄일 수 있었으며, 동일한 하드웨어 플랫폼을 사용해 향후 파형까지 지원할 수 있는 상당한 유연성을 제공했다. 이 디바이스의 전력소모 절감 특성 이외에도 SDR의 중심에 이 디바이스를 배치함으로써 시스템의 크기, 무게, 비용(SWAP-C)을 획기적으로 개선할 수 있었으며, 유연한 프로그래머블 플랫폼을 제공할 수 있게 되었다.

그림 1은 군용 SDR의 블록 다이어그램 예제를 나타낸 것이다. 보는 바와 같이, 무선의 PT(Plain-Text) 부분(정보를 분류할 수 있기 때문에 가끔은 '레드' 측처럼 나타냄)은 GPP(General-Purpose Processor)와 '적색' FPGA를 포함하고 있다. 그런 다음 PT 정보는 암호화되어 CT(Cipher Text)로 전송된다. 무선의 '블랙' 측은 '블랙' FPGA와 또 다른 GPP, 그리고 파형 프로세싱을 위한 모뎀 FPGA를 포함하고 있으며, CT 정보를 처리한다. 정보 보안을 유지하기 위해 이 디자인은 PT에 있는 시스템 밖으로 분류된 정보나 민감한 데이터가 유출되지 않도록 하기 위해 무선의 PT와 CT 부분을 격리 및 분리시킨다.

따라서 일반적인 SDR 구현에서는 서로 다른 3개의 FPGA뿐만 아니라 2개의 분리된 GPP를 사용하게 되며, 이러한 기능을 구현하는데 최고 5개의 디바이스를 사용한다. 디자이너는 무선이 지원하는 여러 다양한 파형을 모두 처리할 수 있도록 모뎀 FPGA의 크기를 적절하게 바꿔야 한다. 이 모뎀은 종종 동시에 모든 기능을 처리할 수 있어야 하며, 단 하나라 하더라도 한 번에 처리되어야 한다. 예를 들어, SRW(Soldier Radio Waveform) 프로세싱은 대략 120K 로직 셀과 8Mb RAM, 800개의 DSP 슬라이스가 필요하며, 반면 MUOS(Mobile User Objective System)는 200K 이상의 로직 셀과 10Mb RAM, 900개의 DSP 슬라이스가 필요하고, 상당히 큰 모뎀 FPGA가 요구된다. 또한 암호화 블록의 레드 FPGA는 연관된 파형들을 위해 여러 다양한 암호 알고리즘을 모두 포함할 수 있을 만큼 커야 한다. 필요한 디바이스 수와 이들 간의 I/O 시그널링 규모(전력 소실을 증가시키는), 그리고 디바이스의 높은 로직 밀도는 SWAP-C 측면에서 최적의 솔루션이라 할 수 없다.

자일링스의 Zynq-7000 EPP(Extensible Processing Platform)는 모뎀 FPGA와 블랙 FPGA, 레드 FPGA, 그리고 레드 GPP와 블랙 GPP를 모두 하나의 디바이스에 통합할 수 있다(그림 2 참조). Zynq-7000 EPP는 이러한 디바이스를 조합하고 통합할 수 있으며, SWAP-C를 감소시키는 유연하면서도 안전한 SDR 솔루션을 제공한다.

자일링스 Zynq-7000 EPP는 산업 표준의 ARM 프로세서 기반 시스템을 자일링스의 28nm 저전력, 고성능 프로그래머블 로직과 함께 단일 디바이스에 통합하고 있다. PS(Processing System)는 듀얼 ARM Cortex™-A9 프로세서와 레벨 2 캐시, 온칩 메모리뿐만 아니라 범용 및 파형 프로세싱에 충분한 풍부한 주변기기 세트를 제공한다. PL(Programmable Logic)은 풍부한 로직 셀과 컨피규러블 메모리(듀얼 포트 RAM, FIFO, 쉬프트 레지스터, BRAM), 그리고 해당 기능의 고속 병렬 프로세싱을 위해 사용되는 DSP를 위한 하드웨어 멀티플라이어를 제공한다.

프로세싱 시스템

듀얼 ARM A9 코어는 각각 32kbytes의 명령어와 데이터 L1 캐시, 그리고 512kbytes의 공유 L2 캐시를 가지고 있다. 또한 256kbytes의 온칩 메모리가 두 개의 프로세서에 낮은 레이턴시 메모리를 지원하기 위해 제공된다. SCU(Snoop Control Unit)는 캐시 일관성을 유지해 준다. 디바이스의 PL 영역 안의 로직과 ARM A9 프로세서는 메모리를 공유할 수 있으며, 프로세서와 유저 로직 간의 매우 원활한 상호동작이 가능하도록 해준다. ACP(Accelerator Coherency Port)는 프로그래머블 로직 내의 로직이 L2 캐시와 온칩 메모리와 모두 액세스할 수 있도록 함으로써 프로세서와 PL 간의 일관된 정보 고유가 가능하도록 해준다. PL에서 온칩 메모리와의 직접 액세스 또한 가능하다. 또한 그림 3에 나타낸 것처럼 여러 산업 표준 주변기기와 메모리 인터페이스가 범용 및 파형 프로세싱을 지원하기 위해 제공된다.

안전한 프로세싱

Zynq-7000 EPP의 안전한 프로세싱 기능은 상업용 부품에 대한 '조정(Composing)' 솔루션을 통해 안전한 제품을 구현하고자 하는 정부의 현 추진전략에 대응할 수 있는 가장 탁월한 솔루션이다. Zynq-7000 EPP는 일부 애플리케이션에서 레드측과 블랙측 GPP를 모두 대체할 수 있는 가장 안전한 솔루션이다. Zynq-7000 EPP는 안전한 부트 프로세스와 안전한 런타임 환경을 모두 제공한다.

많은 ASSP와 달리 Zynq-7000은 안전한 컨피규레이션을 위한 MSBM(Master Secure Boot Mode)를 제공하는데, 이는 내부 하드웨어 AES 복호 엔진과 프로그래머블 로직 내에 있는 SHA-256 기반의 인증 엔진(HMAC) 컴포넌트를 이용해 디자인을 암호화한다. 안전 부트 시퀀스는 그림 3에 나타내었다.

마스터 ARM A9 프로세서는 온칩 ROM에서 최초로 부트된다. 그런 다음 부트스트랩 핀으로 명시된 외부 부트 디바이스에서 프로세싱 시스템 부트 이미지를 읽어온다. 이와 동시에 A9은 AES 복호 및 HMAC 인증 엔진을 통해 프로세싱 시스템 마스터 이미지를 처리하도록 디바이스 컨피규레이션 블록을 설정한다. 컨피규레이션 로직은 복호화되고 인증된 이미지를 PS 내의 온칩 메모리에 저장하기 위해 내부 버퍼링없이 즉각적으로 루프백시킨다. 마스터 A9은 이미지가 적절하게 인증되었는지를 확인하기 위해 컨피규레이션 로직에서 최종 인증 상태를 확인한다. 만약 실패한 경우 마스터 A9은 시스템의 안전한 리셋을 트리거한다. PS 이미지가 성공적으로 로드되면, 컨트롤은 첫 단계의 부트 로더로 돌아간다. 그런 다음 부트 로더는 유저 애플리케이션에 기반하여 프로세싱을 시작하거나 프로그래머블 로직을 컨피규레이션하거나 부가 소프트웨어에 로드하거나 외부 소스로부터의 추가 명령을 기다리게 된다.

안전한 런타임 환경

Zynq-7000 EPP는 디바이스 전체를 ARM TrustZone 기술과 결합시킴으로써 안전한 런타임 환경을 제공한다. TrustZone은 인증되지 않은 읽기 및 쓰기로부터 콘텐트를 안전하게 유지하고 격리시킨 메모리 영역에서 소프트웨어 동작을 구동할 수 있도록 함으로써 콘텐트를 보호한다. 다른 작업으로 인한 액세스를 제거함으로써 안정적인 프로세싱 환경을 만들고 유지할 수 있다. TrustZone은 ARM A9 프로세서와 PS 내의 각각의 요소 내에 통합되어 있다.

또한 AMBAⓇ TrustZone 시그널은 PL 내부에서 안정적인 마스터 및 슬레이브 디바이스를 개발할 수 있도록 프로그래머블 로직으로 확장된다. 완벽하게 안전한 프로그래머블 로직 컨피규레이션 지원이 제공되기 때문에 이러한 유저가 개발한 마스터/슬레이브 디바이스는 PS 내부의 다른 하드와이어드 블록처럼 완벽하게 신뢰할 수 있다. TrustZone 소프트웨어를 사용하면, Zynq-7000 EPP는 키 처리 및 전용 데이터, 암호화 정보를 안전하게 처리할 수 있는 시스템을 만들 수 있다.

프로그래머블 로직

Zynq-7000 EPP 내부의 프로그래머블 로직은 자일링스의 28nm 고성능, 저전력 프로세스 기술을 이용해 구현되었다. Zynq-7000 제품군은 4개의 디바이스로 제공되며, 28,000개에서 235,000개에 이르는 로직 셀을 갖추고 있다. 자일링스 7 시리즈 제품군의 다른 디바이스와 마찬가지로, Zynq-7000 EPP의 프로그래머블 로직은 컨피규러블 블록 RAM과 프로그래머블 DSP 기능, 하드와어이드 2세대 PCIeⓇ(대용량 디바이스), AMS(Agile Mixed Signal) 기술을 제공한다. AMS 기술은 듀얼 12bit 1Msample/sec ADC와 독립된 듀얼 트랙-앤-홀드 증폭기, 온칩 전압 레퍼런스, 열 서플라이 센서, 외부 아날로그 입력 채널을 제공한다.

그림 2에 나타낸 바와 같이, Zynq-7000 EPP의 프로그래머블 로직은 디지털 RF를 비롯해 모뎀 및 블랙, 레드 FPGA 로직을 통합할 수 있다. 이는 대용량 프로그래머블 로직 패브릭 때문에 가능한 것이 아니라 PL의 부분 리컨피규레이션 및 자일링스 IDF(Isolation Design Flow)를 사용했기 때문이다.

부분 리컨피규레이션

Zynq-7000 EPP PL의 부분 리컨피규레이션은 일반적인 FPGA 기술의 유연성을 활용하며, 이보다 한 단계 더 나아가 다른 기능을 수행하기 위해 프로그래머블 로직의 일부를 리컨피규레이션함으로써 동작 설계를 수정할 수 있도록 하는 것이다. 완벽한 컨피규레이션 파일로 PL을 완전히 컨피규레이션한 후에, 리컨피규러블 영역을 수정하기 위해 부분 컨피규레이션 파일을 다운로드할 수 있다.

프로그래머블 로직은 스태틱 로직 및 리컨피규러블 로직으로 구성된다. 스태틱 로직은 기능이 그대로 유지되고, 부분 컨피규레이션 파일 로딩에 의해 전혀 영향을 받지 않는다. 리컨피규러블 로직은 부분 컨피규레이션 파일의 콘텐츠로 대체된다. 부분 리컨피규레이션 파일은 디바이스의 리컨피규레이션이 되지 않는 부분에서 동작하고 있는 애플리케이션의 상태를 해치지 않고 다운로드된다. 부분 리컨피규레이션은 단일 Zynq-7000 EPP 디바이스 상에서 동적으로 다른 하드웨어 기능의 시간-다중화가 가능하다. 리컨피규러블 모듈처럼 시간에 영향을 받지 않는 기능들을 구현하고 격리시키고 식별할 수 있으며, 필요에 따라 이를 단일 디바이스에 넣거나 뺄 수 있다. 이는 해당 디자인이 여러 경우에 따라 요구되는 필요한 모든 기능을 처리할 수 있을 만큼의 대용량 프로그래머블 로직을 갖춘 Zynq-7000 EPP를 반드시 사용할 필요가 없음을 의미한다. 프로그래머블 로직은 어느 때든 필요한 최대 기능에 충분할 만큼만 크면 된다. SDR은 상호 배타적 기능성으로 인해 이러한 기술의 혜택을 직접적으로 얻을 수 있으며, 유연성 및 리소스 활용도를 획기적으로 향상시키고 정적 전력소모를 줄일 수 있다.

Zynq-7000 EPP 아키텍처는 부분 리컨피규레이션을 통해 프로그래머블 로직의 일부를 재프로그램할 수 있도록 PS 내에서 소프트웨어 구동이 가능하도록 함으로써 부분 리컨피규레이션의 유연성을 더욱 확장시켰다. 안전한 디자인을 구현하기 위해 처음에 PS와 PL 이미지를 인증 및 확인했기 때문에 PS 및 PL 컨트롤로 로드된 부분 리컨피규레이션 파일을 암호화하거나 암호화하지 않을 수 있다. 따라서 다른 파형을 위해 소프트웨어 프로세싱 알고리즘을 교체하여 넣거나 뺄 수 있을 뿐만 아니라 이러한 알고리즘을 구현하는 상응 프로그래머블 로직 또한 동일하게 처리할 수 있다.

IDF(ISOLATION DESIGN FLOW) 
 
IDF(Isolation Design Flow) 개발을 통해 레드 및 블랙 프로세싱 로직을 동일한 FPGA 디바이스 상에 배치할 수 있게 되었으며, 디자이너는 SDR의 암호화 영역을 프로그래머블 로직의 모든 기능으로 처리할 수 있게 되었다. 자일링스는 독립된 레드 및 블랙 기능을 단일 디바이스 상에서 동작할 수 있도록 하고, 별도의 레드 및 블랙 FPGA를 사용할 필요가 없도록 IDF를 개발했다. 이러한 싱글칩 애플리케이션의 예로는 리던던트 타입-I 암호화, 레지던트 레드 및 블랙 데이터, 독립된 다중 보안 레벨로 기능 동작 등이 있다.

IDF는 각 기능 간의 사용하지 않는 디바이스 컴포넌트들에 대해 방어막을 만듦으로써 단일 FPGA 디바이스 내에서 물리적으로 격리 혹은 독립된 다중 기능을 개발할 수 있도록 해준다. 격리된 각 기능은 디바이스 내에서 격리된 영역을 생성하고 방어막으로 둘러싸인다. 이 플로우는 필요한 기능 간의 단절을 보장하기 위한 일련의 가이드라인과 고려사항들을 위해 초기에 플로어플래닝 및 모듈러 디자인, 모듈러 합성, 애드히어런스(Adherence)를 사용한다. 디자인이 구현되고 나면, 격리를 위한 디자인 룰을 성공적으로 구현했는지를 검증하고, 모듈 및 방어막을 시각화하기 위해 자일링스 IVT(Isolation Verification Tool)를 사용할 수 있다.

리컨피규러블 로직으로 각 파형 프로세싱 블록을 정의함으로써 Zynq-7000 EPP 내부의 프로그래머블 로직은 한번에 하나의 파형 프로세싱 블록을 포함할 수 있을 정도만큼만 크면 된다. IDF 사용으로 암호화 및 복호화(레드 및 블랙) 프로세싱 로직을 각 파형 프로세싱 블록 내에 병립시킬 수 있다. 부분 리컨피규레이션은 그림 5에 나타낸 것처럼 다른 파형 프로세싱 블록을 소프트웨어 제어로 Zynq-7000 EPP PL에 동적으로 교체하여 넣거나 뺄 수 있다.

애플리케이션에 따라, 이 동일한 SDR은 Zynq-7000 EPP의 PS 및 PL 안에 리컨피규러블 로직으로 대체하여 집어넣을 수 있는 파형 프로세싱 블록과 필요한 소프트웨어를 개발함으로써 미래의 파형을 지원할 수 있으며, SDR 제품의 전반적인 라이프 사이클을 확장시킬 수 있다.

전력절감 기능

Zynq-7000 EPP는 프로세싱 시스템 만의 전력 모드와 슬립 모드, 독립된 주변기기 클럭 도메인과 같은 전반적인 시스템 전력소모를 줄일 수 있는 여러 기능을 지원한다. 디자이너는 디바이스가 동작하지 않는 동안에 동적 전력소모를 획기적으로 줄일 수 있도록 이러한 기능을 사용할 수 있다.

Zynq-7000 EPP의 프로세싱 시스템과 프로그래머블 로직은 2개의 독립된 전원 레일이 있으며, 각각 고유의 전용 전원 공급장치 핀을 가지고 있다. 이는 오직 PS 파워-온 모드만 지원하고, PL-only 모드는 지원하지 않는다. 프로세싱 시스템의 유저 소프트웨어는 필요에 따라 정적 전력소모를 줄이기 위해 언제든지 프로그래머블 로직 패브릭의 전원을 켜거나 끌 수 있다. PS 전원이 꺼지면, PS가 리셋에서 나올 때까지 영구적인 리셋 상태로 PL을 유지한다.

슬립 모드에서(인터럽트 및 예외상황에서 웨이크업) 단일 ARM A9 프로세서는 약 10MHz로 동작하며, 인터커넥트는 셧다운되고, DDR은 셀프-리프레시 모드로 들어가고, 모든 DDR 터미네이션이 오프된다. 프로세싱 시스템 주변기기는 선택된 웨이크업 디바이스(CAN, 이더넷, GPIO)를 제외하고 클럭-게이팅 모드로 들어간다. 슬립 모드에서 동적 전력소모는 웨이크업 인터럽트와 스눕 제어 유닛, 웨이크업 주변기기 디바이스를 모니터하기 위해 사용되는 CPU 회로의 작은 부분에서만 소모된다. 또한 슬립 모드 동안에는 PL 전원을 셧다운할 수 있으며, 이를 통해 정적 전력소모를 추가로 절감할 수 있다.

Zynq-7000 EPP는 많은 클럭 도메인을 지원하며, 각각 독립된 클럭-게이팅 제어 기능을 갖추고 있다. 동적 전력소모를 줄이기 위해 사용하지 않는 클럭 도메인을 셧다운할 수 있다. 프로세싱 시스템 내부의 각각의 주변기기(GPIO는 작고 저속이기 때문에 제외)는 독립된 클럭 도메인 상에 있으며, 각각 클럭-게이팅 제어 기능을 갖추고 있다. 시스템 레벨의 제어 레지스터를 통해 소프트웨어로 이를 턴오프할 수 있다.

안전한 통합

안전한 통합의 전형을 유지하면서, 자일링스의 단일 Zynq-7000 EPP는 군용 무선 및 상업용 SDR의 프로세싱 및 로직 기능을 위해 이전에는 5개 혹은 그 이상의 별도 디바이스를 통해 공급되었던 프로세싱 파워와 로직을 제공한다. 이 디바이스는 프로그래머블 로직 내부의 일부 혹은 모든 로직 기능을 동적으로 재정의함으로써 여러 다양한 파형을 처리할 수 있도록 동일한 로직 리소스를 재사용할 수 있는 기능과 유연성을 제공하며, 이를 통해 다중 파형 및 미래의 파형 또한 지원할 수 있다.

여러 디바이스를 하나의 Zynq-7000 EPP에 통합함으로써 SDR의 전반적인 크기 및 무게, 전력, 비용을 획기적으로 줄일 수 있다. 또한 Zynq-7000 EPP는 추가적으로 정적 및 동적 전력소모를 모두 줄일 수 있는 여러 기능들을 제공하고 있으며, 이를 통해 유연하면서도 안전한 상업용 및 군용 SDR을 위한 이상적인 솔루션을 제시하고 있다.

 

 
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지