개요
인텔® CoFluent™ Studio(CoFluent)는 성능 예측과 아키텍처 및 설계의 초기 최적화를 지원하는 시스템 모델링 및 시뮬레이션 도구입니다.
인텔 CoFluent Studio를 통해 설계 공간을 보다 쉽게 탐색하고 “가정” 분석 속도를 높일 수 있으므로 더욱 신속하게 혁신을 이룰 수 있습니다. 성능에 맞춰 아키텍처를 최적화하고 리소스 활용도를 극대화하여 개발 비용을 절감하는 데도 도움이 됩니다. CoFluent를 사용하면 시스템 아키텍처를 설계 주기 초반에 분석할 수 있습니다. 덕분에 설계 재작업이 최소화되고 출시 기간이 단축됩니다.
CoFluent 솔루션은 2004년부터 SoC(system-on-a-chip) 및 소비자 전자제품 시장에서 사용되었으며 최근 출시된 CoFluent의 경우, 엔드-투-엔드 사물 인터넷(IoT) 시스템을 시뮬레이션하고 빅 데이터 클러스터에 맞는 차원을 파악하는 데도 성공적으로 활용되고 있습니다.
인텔 CoFluent Studio는 모든 전자 시스템의 동작, 타이밍 요구 사항, 아키텍처 및 성능 예측을 모델링하고 시뮬레이션하는 데 사용할 수 있습니다. 여기에는 처리량, 지연, 로드, 메모리, 비용에 대한 성능 예측이 포함됩니다. 예를 들면 CoFluent는 IoT, 하드웨어(HW) 지적 재산(IP), 임베디드 소프트웨어(SW) 애플리케이션, 혼합 HW/SW 멀티프로세서 시스템 등의 시스템을 모델링하고 시뮬레이션할 수 있습니다. 그 결과로 생성된 CoFluent 모델은 동작 검증, 실행 가능 사양, 성능 분석, 기능 아키텍처에 사용할 수 있습니다.
CoFluent에서는 동작이 직관적인 그래픽 표기법과 C/C++ 코드로 표현됩니다. 또한 CoFluent를 사용하면 단독 실행 시점에 대해 알고리즘을 정의하지 않은 채 추상화할 수 있습니다. 인텔 CoFluent Studio에서는 소프트웨어 애플리케이션 코드, 펌웨어 또는 정밀한 플랫폼 설명 없이도 각 구성 요소/핵심 IP의 모델로 동작 및 성능을 예측할 수 있습니다.
모델링 흐름
임베디드 시스템 및 칩 개발 시 우수한 사양이 중요하다는 사실에는 의심의 여지가 없습니다. 하지만 시스템 스펙을 정하고 난 후에 선택된 설계가 시스템의 기능 및 기타 요구 사항을 충족한다고 어떻게 확신할 수 있을까요? 보다 나은 솔루션은 단순히 문서를 작성하고 그림을 그리는 것이 아니라 모델을 생성하는 것입니다. 이상적인 솔루션이란, 모델을 생성하고 실행하여 확인하고 검증하는 것입니다.
인텔 CoFluent Studio를 통해 간단한 그래픽 모델에서 설계 의도와 사용 사례를 포착할 수 있습니다. 이 모델에서는 시스템 및 사용 사례 동작이 작동 및 상호 작용을 통해 논리적 결과를 달성하는 동시 프로세스 네트워크로 표현됩니다. 프로세스 간의 데이터 및 제어 흐름과 각 프로세스의 흐름은 각각 그래픽 언어를 통해 설명됩니다. 행동 언어로 C/C++/SystemC를 사용합니다.
CoFluent를 사용하면 다음과 같은 두 가지 유형의 모델링을 수행할 수 있습니다.
- 동작 모델링. 통계 또는 토큰 기반 모델링이라고도 부릅니다(그림 1 참조). 동작 모델링을 사용하면 데이터 유형과 알고리즘을 비워둘 수 있으므로 데이터 통신 및 계산이 단독 실행 시점에 대해 추상화됩니다. 시간에 따른 프로세스 및 프로세스 간 통신과 동기화의 병렬 실행을 검증할 때 유용합니다.
- 기능 모델링. 기능 모델링의 데이터 유형과 알고리즘은 실제 데이터 정의와 시스템에서 수행한 프로세싱에 해당합니다. 이 데이터 유형과 알고리즘은 C/C++/SystemC로 정의하거나 MATLAB*를 통해 설명할 수 있습니다.
또한 모델의 실행 시간에 보정 데이터로 역-주석을 추가할 수도 있습니다. 이 실행 시간은 C/C++ 코드의 호스트 기반 프로파일링으로 측정하거나 변형 범위 내에서 탐색할 수 있습니다. CoFluent를 사용하면 짧은 시간 내에 적은 노력으로도 모델을 표현하고 시뮬레이션 결과를 얻을 수 있습니다.
시스템 사용 사례를 포착하여 얻은 SystemC 테스트 사례를 SystemC 기반 시뮬레이션 및 검증 환경에서 다시 사용할 수 있습니다. 그러면 낮은 수준의 모델, 보다 세부적인 모델 또는 최종 구현을 검증할 수 있습니다. 수동 코딩과 비교했을 때, CoFluent의 그래픽 추상화 및 자동 코드 생성은 상당한 생산성 개선을 제공합니다. 덕분에 보다 복잡하고 현실적인 테스트 사례를 생성할 수 있습니다.