부동 소수점 DSC, 친환경 제어 시스템 선출 부동 소수점 DSC, 친환경 제어 시스템 선출
여기에 2008-06-21 00:00:00

부동 소수점 DSC, 친환경 제어 시스템 산출

 


글│ANDREW SOUKUP, 텍사스 인스트루먼트

 


 DSC(Digital signal controller)는 하이 엔드 임베디드 시스템용으로 사용가능한 단일 칩 제어 프로세싱의 가장 혁신적인 형태를 제공한다. 부동 소수점 아키텍처를 갖춘 DSC는 보다 적은 프로세싱 사이클을 가지며, 보다 적은 프로그램 메모리를 요구하고, 보다 연산적인 향상된 알고리즘을 실현시켜 에너지를 절감시키면서 시스템 성능을 확장시킬 수 있다.


 DSC(Digital signal controller)는 하이 엔드 임베디드 시스템용으로 사용가능한 단일 칩 제어 프로세싱의 가장 혁신적인 형태를 제공한다. 부동 소수점 아키텍처를 갖춘 DSC는 보다 적은 프로세싱 사이클을 가지며, 보다 적은 프로그램 메모리를 요구하고, 보다 연산적인 향상된 알고리즘을 실현시켜 에너지를 절감시키면서 시스템 성능을 확장시킬 수 있다. 부동 소수점 프로그래밍은 고정 소수점보다 빠르며, 시스템온칩(SoC)의 통합은 보드 공간, 부품 수, 총 시스템 비용을 일정하게 유지시킨다.


 임베디드 시스템이 전력을 보존하거나 차량 안내와 같은 새로운 성능을 실현할 때에는, 정교한 작업을 지속적으로 처리해야 하기 때문에, 이 시스템은 제어 프로세서에서 더욱 우수한 성능을 요구한다. 소비자의 입장에서 불분명한 것들을 포함한 에너지 보존 요건은 우리가 사용하는 모든 장비 유형에 영향을 미친다. 전력 및 자동화 기술 공급업체인 ABB 그룹에 따르면, 예를 들어 산업용 모터는 업계에서 사용되는 총 전력량의 2/3만큼에 해당하는 엄청난 전력을 소비한다. 거의 대부분의 모터가 변속 제어로 더욱 효율적으로 운영될 수 있으나, 20개 중 겨우 하나의 모터만이 이 기능을 실현하는 디지털 제어 전자제품을 갖는다. 그렇다고 해도, 변속 모터는 매년 10곳의 발전소 출력을 고정 속도 값과 비교해 6,800만 톤의 온실 가스를 감소시키고자 한다. 분명한 것은, 향상된 모터 제어가 에너지를 절약하고 환경에 혜택을 주는 좋은 기회를 제공한다는 것이다.

 

 

정교한 제어 추가로 에너지 절약

 

 태양열 패널, 윈드 터빈과 같은 재생 에너지 소스는 또 다른 형태의 ‘친환경’ 제어의 대안이다. 모터처럼, 이러한 에너지는 효율성을 위해 첨단 디지털 제어를 요구한다. 제어는 패널이나 터빈의 가공되지 않은 전압을 배터리 저장이나 구동 기기에 사용가능한 전압으로 실시간 변환하기 위해 필수적이다. 햇빛과 바람의 변속 레벨은 항상 전력 출력을 최대화하기 위해 정교한 알고리즘을 요구한다. 수많은 재생 에너지 시스템이 전기 그리드에 묶여 있기 때문에, 실시간 제어는 보호를 위해 필요하다.


 예를 들어, TI의 F283x 부동 소수점 DSC는(그림 1참조) 모터 및 모션 제어, 자동차 레이더 시스템, 재생 에너지와 같은 임베디드 애플리케이션 및 태양열 이나 풍차 등에서 생성된 재생 에너지에 대한 고성능의 편리한 소프트웨어 개발을 실현시켜 준다. 32비트 DSC 제품군은 최고 150MHz의 속도로 동작하며, 300 MFLOPS(million floating-point operations per second) 수준으로 많은 수행이 가능하다.

 

그림 1. F28335 부동소수점 DSC는 데이터 전송을 오프로드하는 6채널 DMA 컨트롤러를 포함한다.

 


 부동 소수점 아키텍처는 TMS-320F28x 고정 소수점 DSC에서 50% 혹은 그 이상까지 성능을 향상시킨다. 이 디바이스는 6개의 채널 DMA 컨트롤러를 포함하며, 이 컨트롤러는 프로세싱 코어로부터 데이터 전송 관리를 오프로드하고, 동일한 소스로부터 부동 소수점 및 고정 소수점 모두를 더욱 쉽게 개발할 수 있는 소프트웨어의 혁신을 달성한다.

 

 

부동소수점 매스(math)

 

 F283x DSC 세대의 장점은 대부분 숫자(numeric) 포맷에서 기인한다. 이것은 프로그래밍을 단순화시키고, 실행 사이클을 축소시키며 코드 크기를 감소시킨다. 다른 DSC 및 DSP에서 사용되는 고정점 포맷은 정수(소수점 없는 음수와 양수)로만 나타낸다. 따라서 분수를 처리하기 위해서는 추가적인 기수법이 필요하다. 대조적으로, 부동 소수점 포맷은 더욱 넓은 범위에서 실제 숫자(소수점이 있는 숫자)로 나타낸다. 소수점이 있는 폭넓은 숫자 범위의 내부적 표현은 제어 알고리즘에서 매우 일반적인 곱셈, 나눗셈, 삼각 함수와 같은 크기 조정 연산이 더욱 효율적으로 수행될 수 있다는 것을 보여준다.


 32비트 고정 소수점 아키텍처를 살펴보자. 이것은 하나의 사인 비트로, 2 31~231의 범위에 이르는 내부 값을 나타낸다. 이것이 확대된 범위라고 할지라도, 시스템이 수많은 스케일링 연산을 수행해야 할 때 신속하게 사용될 수 있으며, 숫자가 32비트 이상으로 확대될 수 있어 레지스터가 넘치게 된다. 프로그램은 숫자를 반올림하거나 버림으로써 정밀도는 떨어지지만 포화(saturation)로 알려진 이 문제를 어느 정도 다룰 수 있다. 또 다른 방법으로, 프로그램은 긴 숫자를 한 번에 32비트로 동작 가능한 더욱 짧은 숫자로 쪼갤 수 있다. 후자의 경우, 전체 정밀도는 유지될 수 있으나, 프로세서가 각 조각들을 이동 및 저장하기가 분주하기 때문에 그 성능이 감소된다. 또한, 프로그램 크기는 필요한 추가 명령으로 확장된다.


 여기에서, 부동 소수점 아키텍처는 그 자체로 가치가 있다. 그림 2는 F283x 워드에서 8개의 32비트가 지수로 사용되며, 가수용 23비트 및 사인용 1비트를 남겨둔다. 지수용 사인 비트가 없다 하더라도, 평균화 기본은 연산에서 저장된 지수에 추가되는 것으로, 음수 및 양수 모두의 지수 범위를 만든다.

 

그림 2. F283x 워드에서 8개의 32 비트가 지수로 사용된다. F283x 디지털 신호 컨트롤러의 32비트 부동 소수점 워드

 


 32비트 부동 소수점 워드에 저장될 수 있는 수학적 값은 ~±1.738에서 ~±3.438의 표준화된 범위일 수 있으며, 32비트 고정점 범위보다 상대적으로 높은 값이다. 음의 지수가 분수를 나타내기 때문에, 이 범위는 매우 작은 값에서부터 매우 큰 값까지 확장된다. 이러한 넓은 범위는 포화의 가능성이 거의 없다. 따라서 프로그램은 반올림하거나 버림으로써 정밀도가 떨어지거나 혹은 개별적인 긴 숫자에서 연산할 수 있는 추가의 사이클과 명령을 사용함으로써 성능과 저장기능이 감소되는 딜레마를 피할 수 있다.

 

 

프로세서 성능 향상

 

 표 1에 제시된 연산은 부동 소수점 아키텍처가 DSC 성능에 얼마나 많은 장점을 부여하는가를 보여준다. 첫 번째 열은 제어 시스템에서 일반적으로 사용되고 있는 수학적 함수 및 삼각 함수 4개와 2개의 알고리즘(FFT: fast Fourier transform, IIR: infinite impulse response)이 나타나 있다.

 

표 1. 고정 대 부동 소수점 성능 비교

Operation

Algorithm

TMS320

C28x 32-bit

(Fixed)*

F283x Optimized

Assembly

(Floation)*

Fixed/Floation

Performance

Ratio

Division

70

24

2.92

Square root

60

27

2.56

sine, cosine

92

44

2.09

Atan2

118

53

2.33

FFT complex(256)

~27,000

~11,000

2.45

IIR cascaded

14 cycles/filter

8 cycles/filter

1.75

*C2812 equivalent cycles

 


 두 번째 열은 연산을 수행하기 위해 고정소수점 DSC에 요구되는 싸이클을 보여준다. 세 번째 열은 부동 소수점 DSC에 요구되는 사이클을 나타낸다. 마지막 열은 상대적인 성능을 보여주기 위해 두 번째 열을 세 번째 열로 나눈 값이다. 부동 소수점 디바이스는 모든 수학적 연산을 실행하며, 고정 소수점 디바이스보다 2~3배 빠르게 리스트 된다. FFT는 역시 이 범위 내에 있으며, IIR은 어느 정도 느려지지만 고정 소수점 매스보다 빠르다.


 일반적으로, 제어 알고리즘은 신호 처리 알고리즘 이상의 혜택이 있다. 제어 코드가 고정 소수점 스케일링 및 포화 조작을 요구하면서 더욱 기본적인 매스 동작을 수행하기 때문이다. 그렇다고 해도, 사이클 수는 부동 소수점 아키텍처용 보드보다 낮다. 모든 신호 프로세싱 벤치마크의 운영에 대해 약 50%의 평균 성능 향상을 갖추고 있다.


 애플리케이션에서, 이러한 벤치마크는 눈에 띄는 여러 가지 장점으로 변환된다. 파인-그레인의 다차원 제어는 로봇공학 및 CNC(Computer numeric control) 기기용으로 이용 가능하다. 서보 모터 드라이브는 더욱 전력 효율적이며, PLC(Power line control) 및 기타 혁신적인 알고리즘을 구현하는 성능을 갖추고 있다. 태양력 및 풍력 구동식 인버터와 무정전원공급장치는 향상된 전력 변환 효율성을 얻어, 킬로와트당 비용을 감소시킨다. 뿐만 아니라, 패널 어레이나 터빈의 다른 구성을 제어하는 것도 가능하다.

 

 

소프트웨어 개발 장점

 

 부동 소수점 포맷은 코드의 기록 및 디버그를 단순화한다. 부동 소수점 수식 표현은 고정 소수점보다 수학적 연산에 자연스러우며, 따라서 고차원 언어로 더욱 쉽게 지원된다. 일단 코드가 검증을 위해 쓰여지고 디버그되면, 이것은 테스트 및 궁극적인 생산을 위해 부동 소수점 DSC로 직접 포트될 수 있다.


 대조적으로, 고정 소수점 컨트롤러용 코드를 개발하는 방법은 검증용 PC에 프로그램을 기록하고 디버그한 다음, 더욱 엄격한 하드웨어의 고정점 재현을 사용하는 코드를 다시 기록해야한다. 이것이 개발 사이클을 더욱 추가시키며, 일단 트랜지션이 이루어지면, 다시 되돌릴 수 없게 된다.


 보통, 코드의 개별 고정 소수점 및 부동 소수점 버전은 일정하게 유지되어야 하며, 불일치가 나타날 위험성을 가져온다. F283x 컨트롤러는 부동 소수점 코드의 개발만을 필요로 하기 때문에, 이는 프로세스를 단순화시키고, 시간을 절약하며, 소프트웨어 신뢰성을 촉진시킨다.


 비용의 제약은 프로토타입 및 초기 발표용 개발 플랫폼으로써 부동 소수점 컨트롤러를 사용하는 전략을 쓰는 것이 유익하며, 양산을 위해서는 고정점 컨트롤러가 사용된다. C 컴파일러와 IQ 매스는 어느 방법이든 동일한 소스 코드를 쉽게 컴파일할 수 있게 만들어 이 전략을 지원한다. F283x DSC가 이처럼 경제적인 이유는 SoC가 통합된 최초의 부동 소수점 컨트롤러이기 때문이다. 부동 소수점 vs. 고정 소수점 비용에 대한 교차점은 더욱 대용량 레벨로 상승시켜, 수많은 첨단 시스템이 비용 절감을 위해 변경을 할 필요가 없게 한다. 부동 소수점 아키텍처의 고성능 및 보다 쉬운 개발은 더욱 광범위한 애플리케이션에서 쉽게 이용할 수 있으며, 임베디드 시스템 제어의 혁신적인 개발에 박차를 가한다.

 

 

디지털여기에 news@yeogie.com <저작권자 @ 여기에. 무단전재 - 재배포금지>