산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

중요한 멀티코어 기반 임베디드 시스템에서 소프트웨어 타이밍 동작 보장

안전한 곳으로 가는 것은 단순히 좋은 브레이크, 작동하는 미등, 그리고 운전대 뒤에서 뛰어난 반사신경을 가진 사람 이상에 달려 있습니다. 점점 더 차를 도로에서, 비행기를 공중에서 유지하는 구성 요소가 사람일 뿐만 아니라 기계적인 부분까지 포함하고 있습니다. 복잡한 이기종 멀티코어 프로세서에서 실행되는 정교한 임베디드 소프트웨어로 비행 관리 시스템에서 파워 스티어링에 이르기까지 모든 것을 제어하고 마이크로초 단위로 측정되는 엄격한 타이밍 기한까지 실행합니다.

여기에 도전이 있습니다. 멀티코어 시스템에서 소프트웨어의 타이밍 동작은 해당 시스템에서 실행되는 소프트웨어와 해당 입력뿐만 아니라 다른 코어에서 실행되는 다른 소프트웨어의 영향을 받습니다.

중요한 임베디드 시스템을 개발하려면 엄청난 노력과 투자(수백만 유로/달러 및 수년간의 엔지니어링 노력)가 필요합니다. 안전은 소프트웨어 개발 프로세스의 초기 단계부터 아키텍처와 디자인의 핵심이 되어야 합니다. 특히 시스템 설계자는 소프트웨어가 안전한 시간 내에 실행될 수 있도록 소프트웨어의 타이밍 동작을 이해해야 합니다.

다중 코어 타이밍 분석(MTA) 퍼즐 해결

멀티코어 프로세서의 뛰어난 컴퓨팅 용량은 (이론적으로) 임베디드 시스템을 더 강력하고 효율적으로 만들어야 하지만, 한 코어에서 실행되는 소프트웨어는 다른 코어에서 실행되는 소프트웨어의 실행을 느리게 할 수 있습니다. 이 상황에서 다른 코어에서 실행되는 작업과 공유되는 버스, 메모리, 캐시, 장치, FPGA 및 GPU와 같은 공유 리소스에 대한 경합으로 인한 간섭으로 인해 소프트웨어 실행 시간이 더 오래 걸릴 수 있습니다.

이 간섭의 영향을 어떻게 정량화합니까? 멀티코어 플랫폼에서 실행될 때 안전이 중요한 소프트웨어가 항상 기한 내에 실행할 수 있다는 구체적인 증거를 어떻게 분석, 테스트 및 제공합니까?

Barcelona Supercomputing Center(BSC), Rapita Systems Ltd(RPT), Raytheon Technologies(RTRC) 및 Marelli Europe(MAR)의 전문가들은 수년 동안 이러한 질문에 대한 답을 조사해 왔습니다. BSC와 Rapita는 항공우주 및 자동차 산업 전반에 곧 출시될 솔루션을 개발하고 있습니다. 요구 사항 기반의 안전 중심 방법론과 결합된 특수 도구 및 자동화가 퍼즐을 푸는 열쇠였습니다.

이 작업은 유럽 위원회의 자금 지원을 받고 2019년 12월에 시작된 다학문 연구 개발 프로젝트인 MASTECS 프로젝트의 기반을 형성했습니다. MASTECS 프로젝트는 기술을 성숙시키고 항공 전자 공학 및 자동차 시스템 인증에 대한 사용을 지원할 것입니다. MASTECS 프로젝트의 핵심 부분은 RTRC와 MAR이 배포한 사례 연구를 통해 두 산업 분야의 접근 방식을 시연하는 것입니다.

최신 도구

타이밍 분석을 지원하기 위해 상업적으로 사용 가능한 도구는 단순한(단일 코어) 전자 제품에 효과적이지만 새로운 멀티코어 관련 인증 요구 사항 및 권장 사항을 충족하도록 확장되지 않습니다.

우리가 아는 한, MATECS에서 성숙된 도구 외에는 시장에서 사용할 수 있는 상용 도구가 없습니다. 이 도구는 적용 가능한 안전 표준 및 새로운 인증 요구 사항에 중점을 두고 멀티코어 플랫폼에서 소프트웨어의 타이밍을 분석할 수 있습니다.

간섭 분석 및 제어 실행

간섭을 이해하는 핵심은 하드웨어 및 소프트웨어 전문가를 사용하여 멀티코어 타이밍 동작에 대한 증거를 생성하는 구조화된 테스트 방법론입니다. BSC의 전문 기술(멀티코어 마이크로 벤치마크 기술 또는 MμBT로 알려짐, Rapita에서 RapiDaemons로 상용화)을 통해 시스템 설계자는 멀티코어 기반 애플리케이션에서 간섭의 영향을 분석하고 정량화할 수 있습니다. 멀티코어 프로세서.

MuBT의 핵심인 마이크로 벤치마크는 특정 공유 리소스를 강조하기 위해 하드웨어와 소프트웨어 간의 가장 낮은 인터페이스에서 작동하는 잘 만들어진 코드 조각입니다. 마이크로 벤치마크는 간섭 채널이 소프트웨어 타이밍에 미치는 영향을 보여줍니다. 이를 위해 마이크로 벤치마크를 배포하여 특정 응용 프로그램에 구성 가능하고 정량화 가능한 압력을 가할 수 있습니다. 마이크로 벤치마크는 특정 하드웨어 리소스에 예상되는 효과와 함께 명확하게 정의된 단일 동작을 나타내도록 특별히 설계되었으며 다른 간섭 채널에서 경합을 최대한 방지합니다. 마이크로 벤치마크의 주요 기능은 다음과 같습니다.

<올>
  • 특정 공유 리소스에 정량화 가능한 압력을 가합니다.
  • 이벤트 모니터를 통해 행동을 확인할 수 있습니다.
  • 경합을 마스터하기 위해 적용한 완화 조치가 효과적인지 여부와 같은 특정 타이밍 관련 요구 사항을 캡처합니다.
  • 더 큰 이미지를 보려면 클릭하세요.

    그림 1:간섭 분석에서 마이크로 벤치마크 사용. (출처:저자)

    원하는 수준의 간섭 일치, 리소스에 대한 간섭 최대화 또는 단순히 경합('피해자')에 매우 민감한 등 특정 역할을 하도록 광범위한 마이크로 벤치마크가 개발되었습니다.

    간섭의 영향을 분석할 때 MμBT의 사용은 작업이 겪을 수 있는 경쟁 지연을 조기에 추정하는 작업 경쟁 모델(TCM)과 함께 지원됩니다. 소프트웨어 자동화 및 테스트 도구 Rapita에서 개발한 RapiTest 및 RapiTime은 테스트를 작성하고 임베디드 대상에서 실행하는 데 사용됩니다.

    디자인 방법론

    표준 소프트웨어 'V' 개발 프로세스(그림 2)를 따라 7단계 테스트 설계 프로세스를 따르면 엔지니어는 간섭의 영향을 더 완전히 이해할 수 있습니다.

    <올>
  • 멀티코어 프로세서 중요 구성 설정, 간섭 채널 및 이벤트 모니터 분석. 하드웨어 전문가는 완화 조치와 함께 간섭 채널도 식별되는 프레임워크를 설정하기 위해 중요한 구성 설정을 식별하는 데 도움을 줍니다. 하드웨어 이벤트 모니터의 식별은 다음의 모든 단계에 대한 확인 수단을 제공하는 데도 중요합니다.
  • 타이밍 요구 사항을 식별합니다. 최종 사용자가 시스템에 대한 특정 요구 사항, 타이밍 요구 사항, 위험 및 안전 문제를 식별하도록 돕습니다. 예를 들어 간섭을 최소화하기 위해 하드웨어 격리 접근 방식의 성능을 확인합니다.
  • 테스트 케이스 디자인. 간섭 채널 분석에서 증거를 제공하는 데 필요한 MμBT 항목 정의를 포함하여 사용자 요구 사항을 지원하는 일련의 가설을 확인하기 위해 특정 테스트 사례(테스트 설명)를 개발합니다. 여기에는 개별 실행(간섭 없음), 애플리케이션의 실행 시간을 평가하기 위한 마이크로 벤치마크에 대한 실행, 다양한 정량화 가능한 스트레스 시나리오에서 간섭에 대한 하드웨어 민감도가 포함됩니다.
  • 테스트 절차 구현. 현재 MASTECS에서 자동화할 수동 프로세스인 이 단계에서는 테스트 프레임워크, 마이크로 벤치마크 및 측정 프로브로 구성된 테스트 절차를 구축하여 결과를 기록/추적합니다.
  • 증거 수집(테스트). 테스트 절차는 테스트 증거를 수집하기 위해 플랫폼에서 실행됩니다. 현재 일부 수동 작업이 포함되어 있지만, 이는 RapiTest 자동화 프레임워크를 사용하여 MATECS에서 자동화되어 해당 테스트를 실행하고 검증 요구 사항에 다시 연결합니다.
  • 결과 분석. 기술 전문가가 테스트 결과를 검토하여 테스트 결과가 검증 요구 사항을 검증하는 방법(또는 그렇지 않은 경우)을 확인합니다. 예를 들어, 그림 3은 프로그램의 다양한 기능에 대해 보고된 실행 시간에 대한 RapiTime의 스크린샷을 보여줍니다.
  • 결과를 확인하고 문서를 생성합니다. 시스템의 안전 주장을 뒷받침하기 위한 요구 사항의 최종 검토, 문서 생성 및 자격 결과. 고객은 멀티코어에서 실행되는 소프트웨어 인증을 위해 전체 보고서 및 분석 아티팩트를 직접 사용할 수 있습니다.
  • 더 큰 이미지를 보려면 클릭하세요.

    그림 2:V-모델 소프트웨어 개발 프로세스의 MTA 단계. (출처:저자)

    하드웨어 전문성 및 타이밍 분석 프로세스

    하드웨어(멀티코어) 전문 지식을 주입하는 것은 현대의 복잡한 멀티코어에서 성공하기 위해 제안된 MTA 접근 방식의 핵심 특성입니다. 초기 소프트웨어 개발 단계:

    <올>
  • 하드웨어 전문가는 멀티코어 구성(항공전자공학 전문 용어로 중요한 구성 설정)이 소프트웨어 기능 및 타이밍 동작을 결정하는 데 핵심적인 역할을 하고 서로 생성하는 경합 작업의 양에 큰 영향을 미치기 때문에 식별합니다. 실례로 현재 프로세서는 적절하게 배포될 경우 경합을 크게 줄일 수 있는 격리 및 분리 메커니즘을 구현합니다.
  • 멀티코어 전문가는 작업 경합이 발생할 수 있는 리소스를 식별하는 데 핵심적인 역할을 합니다(이를 항공 전자공학에서 간섭 채널이라고 함). 수천 페이지에 달하는 프로세서 기술 참조 설명서를 탐색하고 칩 공급업체에 대한 설명서의 잠재적 누락 정보에 대한 적절한 질문을 공식화하는 하드웨어 전문가의 능력은 적절한 MTA 프로세스를 추진하는 데 필수적입니다.
  • 간섭 채널이 식별되면 하드웨어 전문가는 작업이 겪을 수 있는 경합을 제한하는 프록시 메트릭으로 해당 간섭 채널에서 생성하는 활동을 추적하는 데 사용할 수 있는 이벤트 모니터를 식별합니다. 이러한 이벤트 모니터의 정확성도 검증되어야 하며[2] 특정 세트의 마이크로 벤치마크가 설계되었습니다.
  • 마지막으로 하드웨어 전문가는 타이밍 분석 전문가와 손을 잡고 사용자 요구 사항에서 상위 및 하위 수준 요구 사항과 특정 테스트를 도출하여 사용자 요구 사항을 지원하는 가설을 검증합니다. 각 테스트는 하드웨어 전문가가 설계한 하나 이상의 마이크로 벤치마크 프로그램을 인스턴스화하여 대상(일련의) 간섭 채널에 원하는 수준의 부하를 가합니다.
  • 후반 설계 단계:

    <올>
  • 하드웨어 전문가가 테스트 결과 분석에 참여하여 가설의 확인 또는 거부 여부를 평가합니다.
  • 하드웨어 전문가는 또한 이전 단계에서 얻은 결과를 바탕으로 새로운 가설과 필요한 경우 해당 테스트를 설정하는 데 기여합니다.
  • 더 큰 이미지를 보려면 클릭하세요.

    그림 3:분석 결과(RapiTime). (출처:저자)

    더 큰 그림

    7단계 테스트 설계 프로세스는 그림 2의 앞부분에 표시된 더 넓은 다중 코어 검증 방법론의 한 부분일 뿐입니다. MASTECS 프로젝트의 일부로 계속 발전할 이 방법론은 포괄적인 증거 및 결과는 해당 요구 사항 및 설계로 돌아갑니다. 방법론은 항공우주 인증 기관에서 발행한 주요 지침 문서인 CAST-32A에 정의된 목표를 충족하도록 설계되었습니다. 또한 간섭으로부터의 자유를 옹호하는 자동차 부문의 안전 표준인 ISO 26262와 특별히 일치합니다.

    CAST-32A는 2016년 CAST(Certification Authorities Software Team)에서 발표했으며 멀티코어 프로세서에서 실행되는 항공 소프트웨어 시스템의 안전, 성능 및 무결성에 영향을 미치는 요소를 식별합니다. 항공 전자 시스템에서 멀티코어 하드웨어를 사용하려면 이 문서를 참조하십시오. 간섭 채널의 영향을 식별하고 제한하는 것과 관련된 목표를 포함하여 안전한 다중 코어 항공 전자 시스템의 생산을 안내하기 위한 목표를 제공합니다. 여기에서 CAST-32A 포지션 페이퍼를 보십시오. EASA와 FAA는 멀티코어 일반 CRI를 공통 AMC/AC 자료(AMC 20-193)에 적용하는 작업을 하고 있습니다. "올해 말"에 출판될 예정입니다[3].

    전문성을 자동화할 수 없음

    간섭 효과는 복잡합니다. 그들의 미스터리를 풀기 위해서는 멀티코어 아키텍처의 구성요소와 소프트웨어의 스케줄링 및 리소스 할당 시스템을 모두 이해하는 전문가가 필요합니다. 하드웨어와 소프트웨어 전문가 간의 협업은 앞으로도 계속될 MATECS 프로젝트의 핵심 기능이 될 것입니다. 그러나 협업이 소프트웨어 도구 및 자동화에서 큰 발전을 가져오지만 검증 프로세스의 모든 단계를 자동화할 수는 없다는 점을 기억하는 것이 중요합니다. 특히 멀티코어 타이밍 분석이 관련된 경우가 아니라면 더욱 그렇습니다.

    시스템을 자세히 알고 있는 숙련된 엔지니어가 필요합니다. 예를 들어, 초기 단계에서 멀티코어 전문가는 잠재적인 간섭 채널은 물론 소프트웨어의 기능 및 타이밍 동작을 결정하는 프로세서 구성(하드웨어 중요 구성 설정이라고도 함)을 식별할 수 있습니다. 테스트 결과를 분석할 때 플랫폼에 대한 원래 가정을 다시 검토하고 평가하고 지식을 사용하여 새로운 테스트 주기에 반영하기 위해 숙련된 전문가의 의견을 능가하는 것은 없습니다.

    참조

    [1] 라인하르트 빌헬름. 엇갈린 비판에 대한 엇갈린 감정. 2018년 최악의 실행 시간 분석 워크숍.

    [2] 엔리코 메제티, 레오니다스 코스미디스, 하우메 아벨라, 프란시스코 J. 카졸라. 신뢰할 수 있는 타이밍을 위한 자동차 칩의 고집적 성능 모니터링 장치 V&V. IEEE 마이크로 38(1):56-65(2018).

    [3] https://www.aviationtoday.com/2020/02/28/easa-and-faa-to-issue-further-guidance-on-multicore-certification-this-year/


    임베디드

    1. 디버깅이란:임베디드 시스템의 유형 및 기술
    2. 자동차의 임베디드 시스템 역할
    3. 텍스트 문자열이 임베디드 소프트웨어의 취약점입니까?
    4. 임베디드 에지를 위한 SOAFEE 아키텍처는 소프트웨어 정의 자동차를 가능하게 합니다.
    5. TRS-STAR:avalue의 강력하고 팬이 없는 임베디드 시스템
    6. Axiomtek:미션 크리티컬하고 열악한 환경을 위한 3.5인치 임베디드 SBC
    7. IIoT 소프트웨어 취약점으로 인해 중요한 인프라 공격이 다시 발생합니다.
    8. 양자 시스템의 동작을 예측하는 인공 지능
    9. 임베디드 시스템 및 시스템 통합
    10. DevOps를 사용하여 임베디드 소프트웨어 문제 해결