[지멘스=리차드 옥슬랜드(Richard Oxland)] 전체 시스템 차원의 기능 분석은 매니코어 SoC(시스템온칩)를 최적화해 적시에 제품을 시장에 출시할 수 있도록 도움을 준다.

매니코어 프로세서는 높은 수준의 병렬 처리를 위해 설계된 특수한 종류의 멀티 코어 프로세서로, 더 간단하고 독립적인 프로세서 코어(수십 코어에서 수천 개 이상)를 포함한다. 매니코어 프로세서는 임베디드 컴퓨터와 고성능 컴퓨팅에 광범위하게 사용된다.

[그림1] 세레브라스 웨이퍼 스케일 엔진은 거대하고 복잡한 매니코어 SoC의 좋은 예.

인공지능(AI)과 머신러닝(ML) 애플리케이션(앱)을 위한 데이터 처리의 필요성이 대두되면서 대규모 병렬 컴퓨팅이 부상하면서 칩의 복잡성이 폭발적으로 증가하고 있다.

이러한 복잡성을 [그림 1]과 같은 설계에서도 볼 수 있는데, 이 타일형의 매니코어, 다중 웨이퍼 다이는 트랜지스터 수가 수조 개에 이르며 거의 백만 개에 달하는 컴퓨팅 코어를 갖춘다.

AI SoC 시장은 지속적으로 성장하고 있으며 경쟁 또한 치열하다. 반도체 회사들은 성능, 비용, 유연성에 입각해 틈새 시장을 찾고 있다. 이러한 파라미터 중 하나를 겨냥한 결과, 새로운 매니코어 아키텍처가 폭발적으로 증가하게 됐다. 시스템 설계자는 다양한 접근 방법을 시도하고 있지만 이 설계들은 하나같이 매우 복잡해서 모든 칩 제조업체들이 이러한 복잡성을 지원함에 따라 경쟁 우위를 달성하려 하고 있다.

복잡성을 야기하는 모든 원인 중에서도 멀티코어 인공지능(AI) SoC에서 특히 중요한 고려사항은 기능 오류와 성능 저하로서, 이는 다수의 스레드가 공유 데이터에 대해 병렬로 실행될 때 발생한다.

전통적으로 디자이너는 고전적인 CPU 실행 제어 기능을 사용해 문제를 디버깅할 수 있었지만, 매니코어 아키텍처에서는 그럴 수가 없다. 왕복 지연, 코어 수, 제어·데이터 병렬화, 다중 계층 구조와 상호의존적 프로세스로 인해 디자이너가 소프트웨어 문제의 근본 원인을 파악할 가능성은 희박하다.

또 디자이너는 하드웨어와 소프트웨어의 동시 최적화를 고려해야 하므로 많은 기능 분석이 요구된다. 디자이너가 AI 앱을 SoC에 구현하기 위해서는 소스 코드를 컴파일해 매니코어 아키텍처를 활용해야 한다.

이를 위해서는 이 아키텍처를 충분히 파악하고 있는 커스텀 툴체인이 필요할 경우가 많다. 이러한 프로세스에는 하드웨어와 소프트웨어의 최적화와 테스트 사이클이 수반된다. 이는 [그림 2]에서 보듯이 SoC 에뮬레이션에서 시작해 최초의 칩과 이어지는 일련의 디바이스까지 계속된다.

이러한 기능분석 사이클을 통해 팀이 알아낼 수 있는 사항은 다음과 같다.


• 데이터 공유가 얼마나 효과적으로 이루어졌는가?

• 네트워크-온-칩(NoC)이 용량초과(over-subscribed) 되거나 불균형 상태가 되었는지 여부

• 코드 실행에 영향을 미치는 일 없이 앱 성능을 측정하는 방법

• 메모리 컨트롤러 프로파일을 최적화해 데이터 처리속도를 향상시키는 방법

• SoC 전반에 발생하는 이벤트를 상호 연관시키는 방법


이 지점까지 이르기 위해서는 AI SoC와 이를 통해 실행되는 소프트웨어를 최적화하는 데 있어서 새로운 접근 방법이 필요하다. 따라서 고품질의 AI SoC를 적시에 출시 후 최적의 성능을 유지할 수 있도록 전체 시스템 차원의 기능 분석이 요구된다.

시스템 차원의 기능 분석이 갖는 특징 중 일부는 다음과 같다.


• 모든 서브시스템이나 구성요소에 대한 상세한 통찰력

• 부팅시부터 전체 시스템을 정확하고 일관성 있게 파악

• 트랜잭션 인식을 기반으로 인터커넥트 모니터링과 통계 기능

• 전통적인 프로세서의 실행 제어와 추적 기능

• 모든 일반적인 ISA와 인터커넥트 프로토콜의 지원 기능

• 어떤 서브시스템이 중요한지를 선택하거나 변경할 수 있는 유연성

• 데이터 통찰력을 제공하는 유연하고도 강력한 툴


[그림 3] EA 플랫폼, 임베디드 애널리틱스 플랫폼은 시스템 레벨의 가시성을 제공하여 칩의 복잡성을 이점으로 바꿔준다.

모니터링과 분석 IP와 소프트웨어로 이루어진 온칩 인프라가 시뮬레이션에서 배포에 이르기까지 이 모든 이점을 제공한다. [그림 3]에서 SoC 기능 모니터링과 분석을 위한 일반적인 아키텍처를 볼 수 있다.

[그림 4] 온칩 NoC 모니터로 계측되는 매니코어 칩의 블록 다이어그램.

[그림 4]와 같이 예를 들어 보자. 이것은 매니코어 칩의 블록 다이어그램으로서, 온칩 NoC 모니터가 계측하여 모든 NoC 트랜잭션을 순환 버퍼 형태로 추적한다. 이 NoC 모니터는 트랜잭션을 인식하므로 특정 버스 상태를 감지하도록 구성할 수 있는데, 트랜잭션 지속 시간이 특정 임계값(사이클 수 기준)을 초과하게 되는 교착 상태가 그러한 예이다.

임계값을 초과하면 NoC 모니터는 교착 상태에 빠진 트랜잭션과 그 바로 앞의 트랜잭션에 대한 세부 정보를 출력하므로 해당 문제를 진단할 수 있다. 이를 위해 디버깅 호스트의 런타임 개입은 필요 없다.

바로 이 NoC 모니터를 시스템 내의 다른 곳에서 동일한 교착 상태 감지를 위해 추적을 시작하도록 구성할 수 있다. 이는 예컨대 하드웨어 가속기의 동작을 추적하는 상태 모니터 블록을 통해 이루어지며, 임베디드 애널리틱스 메시지 인프라의 크로스 트리거링 기능을 사용하게 된다.

효과적인 시스템 검증과 최적화 환경의 구현에 수반되는 문제를 파악하는 것이 매니코어 SoC의 성공적 구현을 위한 열쇠다.

 

 

 

리차드 옥슬랜드(Richard Oxland)/지멘스 디지털 인더스트리 소프트웨어(Siemens Digital Industries Software) Tessent Embedded Analytics 제품 부문 프로덕트 매니저

제공 : 지멘스 EDA (www.siemens.com)

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지