소프트웨어/하드웨어 시스템의 동작, 실시간, 성능 분석

장점 알아보기

  • 모든 전자 시스템의 동작, 타이밍 요구 사항, 아키텍처 및 성능 예측을 모델링하고 시뮬레이션하는 데 사용할 수 있습니다.

  • 간단한 그래픽 모델에서 설계 의도와 사용 사례 포착

  • 시간에 따라 실행되는 사양의 제공을 통한 커뮤니케이션의 촉진 및 초기 거래 분석 기반의 제공

author-image

기준

개요
인텔® 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의 그래픽 추상화 및 자동 코드 생성은 상당한 생산성 개선을 제공합니다. 덕분에 보다 복잡하고 현실적인 테스트 사례를 생성할 수 있습니다.

인텔 CoFluent Studio는 Eclipse*에 기반한 통합 전자 시스템 수준 모델링 및 시뮬레이션 환경입니다. CoFluent는 그래픽 모델러와 시뮬레이션 프레임워크로 이루어집니다.

  • 그래픽 모델러는 CoFluent DSL(Domain Specific Language)을 사용해 시스템 동작(프런트 엔드)을 캡처합니다. 데이터 유형 및 알고리즘의 캡처를 위한 행동 언어로 SystemC, C 또는 C++를 사용합니다. 비기능적 시스템 요구 사항 또는 모델 보정 데이터(실행 기간 또는 메모리 값 등)는 모델 속성을 통해 추가됩니다.
  • 시뮬레이션 프레임워크에서는 전체 시스템의 트랜잭션 레벨 SystemC 모델을 자동으로 생성하고 계측하며 다음과 같이 풍부한 분석 도구 집합을 활용해 시뮬레이션 추적을 해석합니다.
    • 텍스트 출력 콘솔.
    • 플롯 차트. 시간 함수의 변수, 다른 변수 함수의 변수.
    • 이미지 보기.
    • 알고리즘 프로파일링. 알고리즘 실행 시간 측정, 타이밍, 실행 횟수 집계. 알고리즘 실행 시간은 최소, 최대, 평균 시간으로 식별 가능합니다.
    • 타임라인. 시간에 따른 프로세스의 병렬 실행을 상태(실행 중, 차단됨, 유휴)로 표시하며 프로세스 간 통신은 타이밍의 UML 시퀀스 다이어그램에 해당합니다. 프로세스 간 통신에는 데이터 읽기쓰기 및 이벤트 가져오기/설정이 포함됩니다.
    • 성능 프로파일링. 시스템 및 각 구성 요소의 리소스 부하(백분율 또는 MCycles/s), 전력 소비량ㅇ, 메모리 공간, 비용 값(최소, 최대, 평균 및 시간에 따른 동적 프로파일)을 구합니다.

CoFluent를 사용하면 지연, 처리량, 버퍼 수준, 리소스 부하, 메모리 공간, 비용 등의 성능 수치도 추출할 수 있습니다.

  • SystemC 라이브러리는 Accellera SystemC 2* 및 TLM 라이브러리를 확장합니다. 이 라이브러리는 인텔 CoFluent Studio의 핵심이라 할 수 있는 계산 및 통신 시뮬레이션 엔진입니다.  계산은 멀티프로세서 및 멀티코어/멀티스레드 작업에 대해 수행됩니다.  통신으로는 메시지 큐, 이벤트, 상호 연결이 포함됩니다.

이 올인원 시스템 애플리케이션 모델링 환경에서는 다음과 같은 작업이 가능합니다.

  • 하나의 모델 내에서 모델 구조, 제어 흐름, 데이터 흐름, 시간 속성 모두를 모델링합니다.
  • 전체 시스템 기능과 함께 사용 사례를 설명합니다.
  • 외부 C/C++ 또는 SystemC 코드/IP를 간편하게 통합합니다.
  • 다른 프로젝트에서 재사용할 수 있도록 모델을 라이브러리로 내보내고 가져오기 모드(블랙 또는 화이트 박스)를 제어합니다.

동작 및 타이밍 제약 조건의 완전한 검증에는 다음 사항이 포함됩니다.

  • 완전 시간 기반 모델 - 알고리즘 및 통신 기간.
  • 트랜잭션 레벨 모델링(TLM) SystemC(메시지 전달)에 기반한 빠른 시뮬레이션.
  • 풍부한 동적 시각화 및 분석 도구 집합을 사용한 자동 계측.

다음을 통해 아키텍처 설계 및 구현을 준비할 수 있습니다.

  • 시스템 아키텍처 및 초기 성능 분석에 바로 사용할 수 있는 시간 기반 동작 모델.
  • 소프트웨어(실시간 운영 체제 추상화) 및 하드웨어 구현 모델과 호환되는 기능 아키텍처.
  • SystemC 호환 가상 플랫폼에서 재사용할 수 있는 자동 SystemC code 생성.
  • 자동 문서 생성.
  • 고유한 코드 생성기, 검증 규칙 및 추적 분석기를 생성할 수 있는 소프트웨어 개발 키트(SDK).

다음을 통해 모든 프로젝트 이해 관계자와의 소통을 촉진할 수도 있습니다.

  • 기술 고려 사항 및 물리학과는 독립적으로 시스템 역학을 보여주는 동시 소통 기능(또는 프로세스) 기반의 일반 모델.
  • 중요한 검증 결과를 제공하는 명확한 실행 가능 사양.
  • 프로젝트 이해 관계자가 더욱 직관적으로 접근할 수 있는 수준 높은 그래픽 표기법과 시뮬레이션 결과.

Reader
인텔® CoFluent™ Reader는 인텔 CoFluent Studio로 제작된 모델에 사용할 수 있는 무료 뷰어이자 시뮬레이터/플레이어입니다. 인텔 CoFluent Reader를 사용하면 설계자가 모델, 동작, 시뮬레이션 결과, 관찰 결과를 다른 엔지니어, 관리자, 최종 사용자, 고객, 마케팅 담당자 등 인텔 CoFluent Studio에 대한 액세스 권한이 없는 프로젝트 이해 관계자와 공유할 수 있습니다 인텔 CoFluent Reader를 통해 모델 및 시뮬레이션을 보다 간편하게 읽고 이해하며 공유할 수 있습니다.

요약
인텔 CoFluent Studio 및 인텔 CoFluent Reader는 시간에 따라 실행되는 사양을 제공하고 소통을 촉진하며 초기 상쇄 관계 분석의 기반을 제공함으로써 사양부터 구현에 이르기까지, 프로젝트 내에 존재하는 격차를 해소해 줍니다.