RISC-V 검증에 필요한 도구가 있습니까?

RISC-V 검증에 필요한 도구가 있습니까?

소스 노드 : 2551565

Semiconductor Engineering은 RISC-V 프로세서의 검증에 대해 제품 관리 그룹 이사인 Pete Hardee와 함께 논의했습니다. 운율; Mike Eftimakis, 전략 및 에코시스템 담당 부사장 코드; 설립자이자 CEO인 사이먼 데이빗만(Simon Davidmann)은 Imperas 소프트웨어; Sven Beyer, 프로세서 검증 프로그램 관리자 지멘스 EDA; Kiran Vittal, 제휴 파트너 마케팅 수석 이사 Synopsys; Breker Verification의 CEO인 Dave Kelf와 Viosoft Corporation의 사장 겸 CTO인 Hieu Tran. 다음은 그 대화에서 발췌한 내용입니다. 이 토론의 XNUMX부를 보려면 여기를 클릭하십시오.

SE: RISC-V 확인 흐름은 어떻게 생겼습니까?

켈프: 우리는 프로세서 검증을 활동 스택으로 보지만 해당 스택에는 많은 루프백이 있습니다. 많은 회사에서 ISA 준수를 별도의 활동으로 취급합니다. 첫 번째 스택으로 'Hello World' 테스트를 수행하여 모든 것이 제대로 실행되고 있는지 확인한 다음 가능한 한 많은 적합성 테스트를 실행합니다. 그들은 ISA를 시도하고 일치시킨 다음 마이크로 아키텍처 테스트를 시작합니다. 많은 사람들이 거기서 멈춥니다. 우리가 보는 것은 그들이 적합성 테스트를 실행할 때 적합성을 얻는 것처럼 보일 수 있으며 마이크로 아키텍처 테스트를 작성하기 시작하고 잘못된 것을 발견하고 ISA를 준수하는 것이 단순히 명령이 제대로 실행되는지 확인하십시오. 스택 위로 더 올라가면 '시스템의 나머지 부분과 관련된 코어를 확인할 수 있습니까? OS를 부팅할 수 있습니까? 필요한 성능을 가지고 있습니까? 성능이 올바른지 확인하기 위해 설계를 프로파일링하고 검증에서 더 많은 버그를 밝히기 위해 검증 활동을 시작할 수 있습니까?' 일반 ASIC 또는 일반 코어를 테스트할 때 모든 검증 활동을 실행하고 정말 좋은 적용 범위를 얻은 다음 마지막에 검증을 수행할 수 있습니다. 확인 단계로 돌아갈 필요가 없는 경우가 많습니다. 이러한 프로세서를 사용하면 됩니다. 항상 해당 확인 스택을 통해 앞뒤로 이동해야 합니다. 이로 인해 실제로 속도가 느려지고 해당 아키텍처의 전체 검증이 느려집니다. 황금 참조 모델이 매우 중요해지고 있습니다. Imperas 모델은 많은 사람들에게 최첨단 산업 표준 모델로 인정받고 있습니다. 우리는 그 모델들과 함께 일해왔습니다. 신뢰할 수 있는 정말 견고한 핵심 참조 모델을 도입하는 것이 점점 더 중요해지고 있습니다. 마이크로 아키텍처를 테스트할 수 있고, 해당 코어 모델에 대해 시스템의 나머지 부분과의 일부 상호 작용을 테스트할 수 있으며, 실제 프로세서에서 진행되는 작업에 대한 보다 명확한 그림을 실제로 얻을 수 있습니다.

트란: RISC-V와 관련하여 황금 참조 모델의 아이디어가 실행 가능한지에 대해 약간의 의구심이 있습니다. Unix가 등장한 날로 돌아가 보면 자체 구현을 가진 소수의 공급업체가 있었습니다. Solaris, SVR4, IBM의 AIX 등이 있었습니다. 이러한 모든 다른 Unix/Linux 구현에서 보드 전체에서 실행할 수 있는 공통 실행 파일을 달성한다는 아이디어는 불가능했습니다. 모든 공급업체는 다른 공급업체와 차별화할 수 있는 부가 가치 및 사용자 정의 확장을 구축하도록 장려됩니다. 우리는 RISC-V에서 그것을 볼 수 있습니다. 대부분의 구현이 Intel 또는 Arm 산하에 있는 x86 및 Arm과 달리 자체 RISC-V 구현을 구축하는 수백 개의 다양한 기관 및 조직이 있습니다. 사양이 너무 큰 벡터 확장과 같은 것에 대해 이야기할 때 많은 구현자는 해당 확장의 하위 집합만 구현하기로 결정했습니다. 이 다양한 구현에 대해 실행을 확인할 수 있는 공통 황금 참조 모델을 어떻게 생성할 수 있습니까? 둘째, 실행 확인 및 유효성 검사에 대해 이야기할 때 스택에서 도구 체인 및 운영 체제로 더 올라가야 합니다. 예를 들어 벡터 확장을 살펴보겠습니다. 내가 이야기하고 함께 작업한 모든 공급업체는 벡터 확장을 지원하는 자체 컴파일러와 자체 LLVM 구현을 가지고 있습니다. 그리고 그들 중 어느 것도 다른 것과 호환되지 않습니다. 따라서 벤더 A의 LLVM 컴파일러를 가져와서 코드를 생성할 수 있으며 벤더 B의 구현에는 그다지 효율적이지 않을 것입니다. 이러한 변형에 대한 기준선을 제공할 수 있습니다.

다비드만: 나는 그 의견에 분명히 동의하지 않습니다. RISC-V는 옵션이 너무 많기 때문에 완전히 악몽입니다. 이는 호환성 및 규정 준수에 대한 과제 중 하나입니다. 모두 합법적인 구성 옵션이 너무 많습니다. 중요한 질문은 참조 모델을 어떻게 생성합니까? 그러나 그것보다 더 나쁩니다. 11개월마다 각 확장 프로그램의 새 버전이 있습니다. 시뮬레이터에서는 완전한 참조입니다. 독립적인 하위 집합뿐 아니라 버전에 대해서도 완벽하게 구성할 수 있습니다. 우리는 4가지 버전의 벡터를 가지고 있으며 그 중 100가지가 실리콘에 적용되었습니다. 올바르게 설계되고 설계되는 한 문제가 없다고 생각합니다. RISC-V는 일을 더 잘할 수 있는 기회를 제공합니다. 하나의 Arm 또는 하나의 Intel만 사용하는 예전 방식으로는 살 수 없습니다. 그것은 작동하지 않을 것입니다. 예전에는 한 가지 일을 하는 참조 모델을 가질 수 있었다면 새로운 세상에서는 XNUMX가지 일을 할 수 있는 참조 모델을 갖게 됩니다. 그리고 그것이 우리가 가는 곳입니다. 그렇지 않으면 RISC-V는 결코 그 운명을 완수하지 못할 것입니다. 우리는 그 문제들을 해결해야 합니다.

하디: 우리는 프로세서 구현을 알고 있으며 악마는 세부 사항에 있습니다. SystemVerilog, Verilog가 이러한 구현 세부 사항을 캡처하는 데 훨씬 더 낫다는 데 확실히 동의합니다. 그러나 의도를 캡처하는 상위 수준 모델에 대해 해당 구현을 확인해야 합니다. 그것은 단일 참조 모델이 아닙니다. 그것은 많거나 우리가 이야기하고 있는 많은 변형에 대한 참조 모델을 만드는 표준화된 방법일 수 있습니다.

다비드만: XNUMX~XNUMX년 전, 저는 RISC-V International 조직의 일원이었으며 형식을 살펴보고 결국 SAIL을 황금 참조 모델을 구축하기 위한 언어로 선택했습니다. 우리가 잘못 알고 있는 것은 SAIL이 그다지 구성 가능하지 않다는 것입니다. 하나의 아키텍처에 적합합니다. Arm에게는 환상적입니다. 그것들은 정의로부터 전체 흐름을 가지고 있고, 구성에 의한 교정을 통해, 아래로, 형식적인 설명으로부터 오는 것입니다. 그리고 그것은 훌륭합니다. RISC-V의 과제는 설계상 이러한 무한한 구성 가능성이 있다는 것입니다. 따라서 SAIL에서 이를 모델링하는 데 실질적인 어려움이 있습니다. 이것이 바로 Imperas가 동적 모델을 선택한 이유입니다.

비탈: RISC-V는 거의 모든 회사에서 채택되고 있습니다. 많은 신생 기업과 마찬가지로 선도적인 반도체 공급업체도 RISC-V 설계를 수행하고 있습니다. 그러나 핵심은 커버리지 목표를 달성하기 위한 매우 높은 품질의 자극이 있는 성공적인 검증 계획을 가질 수 있다는 것입니다. 검증과 디버그는 함께 진행됩니다. 하드웨어/소프트웨어 디버그, 코드를 통해 문제를 동시에 살펴보는 것이 핵심입니다. 아키텍처의 유연성으로 돌아가서 도전 과제를 제공하고 있으며 우리 모두에게 기회가 있는 곳입니다. 혁신적인 솔루션이 개발되고 있습니다. RISC-V 공급업체와 EDA 도구 회사는 물론 다른 EDA 파트너 간에 많은 협업이 이루어지고 있습니다.

켈프: 이를 어느 정도 파악한 기업이 있다. RISC-V의 무한한 구성 가능성, 이 모든 것이 사실입니다. 그러나 결국 Arm과 Intel은 구성 가능성이 다소 낮은 프로세서의 검증을 해결했습니다. 흐름 또는 일련의 복잡한 흐름이 있으며 이러한 흐름에는 다양한 활동이 포함됩니다. Arm은 이를 수행하기 위해 많은 공식적인 도구와 다양한 작업을 사용합니다. 시작하기 좋은 곳은 이들 중 일부가 흐름에서 수행하는 작업을 살펴보고 그 중 일부를 자동화하려고 시도하는 것일 수 있습니다. RISC-V 프로세서를 사용하고 함께 협력하려는 모든 사람들이 사용할 수 있는 무언가가 필요합니다. 협력하여 이러한 보다 일반화된 흐름을 만들고 이 중 일부를 표준화할 수 있는지 확인합니다. 그리고 적절한 표준이라는 의미가 아니라 업계 전반에서 작동하고 명령어 세트 호환성뿐만 아니라 일부 실제 호환성을 생성하는 RISC-V 프로세서를 검증하는 사실상의 표준 방법입니다.

SE: 몇 분이 우리에게 새로운 도구, 새로운 흐름이 필요하다고 말씀하셨습니다. 오늘 빠진 것은 무엇입니까? 누군가 제공해야 하는 것이 무엇인지 어떻게 알아낼까요?

켈프: 내부적으로 RISC-V 프로세서를 사용하는 사람들이 많이 있고 새로 시작하고 있습니다. 그들은 프로세서 확인 방법을 배우고 있습니다. Codasip과 같은 회사는 Arm, Intel 및 다른 곳에서 해야 할 일을 이해하는 많은 경험과 전문 지식을 갖춘 사람들을 데려왔습니다. 따라서 이러한 회사 중 일부는 '프로세서가 완전한 일관성을 지원할 수 있습니까? 시스템의 나머지 부분에서 작동합니까? RISC-V 내부의 PMP(물리적 메모리 보호) 명령어와 같은 보안 명령어가 올바르게 작동할 수 있습니까?'

다비드만: XNUMX~XNUMX년 전 RISC-V로 시작했을 때는 RISC-V에 특화된 것이 없었습니다. 우리는 Verilog 시뮬레이터를 가지고 있었고, 당신은 공식적인 것을 가지고 있었고, 당신은 몇 가지 속성을 작성할 수 있었습니다. GCC가 있었고 실행하고 디버깅할 수 있었습니다. 그거였다. 지난 XNUMX년 동안 우리가 본 것은 프로세서가 독점 방식으로 검증되는 방법을 학습함으로써 파생된 많은 도구와 기술을 사람들이 발전시켜 왔다는 것입니다. 그리고 우리는 그것을 더 많이 공개하려고 노력했습니다. 우리는 Intel과 Arm에서 그것이 어떻게 이루어졌는지, 그리고 사용된 기술의 유형을 이해하려고 노력해 왔습니다. 우리는 검증 작업을 담당하는 OpenHW 내에서 작업해 왔습니다. 그것은 산업 품질의 오픈 소스 실리콘에 관한 것입니다. 오픈 소스 도구를 사용하는 것이 아닙니다. 지난 몇 년 동안 우리가 배운 것은 많은 다른 기술과 일을 하는 많은 다른 방법입니다. 그리고 우리는 이 구성 가능한 참조 모델과 같은 도구를 발전시키고 구축했습니다. Linux가 얼마나 잘 실행되는지 확인하는 방법으로 진화해 온 기능적 범위. 사람들은 테스트 생성기를 구축해 왔습니다. 다른 회사는 RISC-V에 초점을 맞춘 Siemens의 OneSpin Technologies와 같은 공식적인 도구를 구축해 왔습니다. 사물의 공식적인 측면에 관여한 다른 회사가 서너 개 있습니다. 우리가 보고 있는 것은 일부 특정 RISC-V 기술이 구축되고 있고 일부 검증 IP가 구축되고 있으며 점점 더 많은 EDA 벤더가 사람들이 필요로 하는 방법론을 배우고 도구를 구축하고 있다는 것입니다. 하지만 초기입니다. 우리는 RISC-V를 실제로 사용하는 데 XNUMX년밖에 걸리지 않았으며 아마도 상업적인 부분에 대해서는 XNUMX년 정도 걸릴 것입니다. 이전에는 XNUMX년 간의 학업이 있었습니다. 그리고 Codasip 및 기타 실리콘 IP 상용 공급업체와 같은 회사는 실제로 검증을 위해 내부적으로 기술을 발전시키고 구축하고 있습니다. 일부 EDA 공급업체와 마찬가지로 상용 도구로 구축할 수 있도록 돕고 있습니다. 우리는 RISC-V 검증 기술의 새로운 시대의 시작에 있습니다.

비탈: 주류 프로세서 개발자는 자신이 하는 일을 알고 있습니다. 그들은 이전에 x86과 Arm을 수행했습니다. 그들은 RISC-V를 채택하고 있으며 무엇을 해야 하는지 정확히 알고 있습니다. 그들은 또한 오픈 소스 커뮤니티를 활용하고 있습니다. 주류의 경우 RISC-V를 보면 주류 설계자들이 채택하고 있습니다. 그것이 그들이 방법론이 필요한 곳입니다. 그것이 빠진 것입니다. Synopsys는 소프트웨어와 하드웨어 모두에서 확인 및 검증을 수행하는 데 필요한 모든 것을 제공합니다. 우리에게는 VIP가 있고 공식적인 기술이 있으며 데이터 경로가 있지만 빠진 것은 방법론입니다. 그리고 방법론은 프로세서 검증 엔지니어 및 기타 전문가의 전문 지식과 함께 제공됩니다.

에프티마키스: 그게 IP 벤더들의 비법입니다. 그것이 우리가 내부적으로 하는 일입니다.

다비드만: Imperas와 같은 회사는 이를 더 많이 공개하려고 합니다. 이전에는 독점 IP였을 수 있습니다. RISC-V 프로세서 검증 참조 흐름에 대한 90분 자습서를 제공합니다. 그것은 당신이 필요로 하는 모든 다른 비트들과, 어떤 기술이 현재 이용 가능하고 어떤 것이 이용 가능하지 않은지를 제시합니다. 상용 기술을 기반으로 하는 테스트 생성기에 대해 이야기합니다.

비탈: 고객이 오픈 소스 코어를 사용하는 포털에서 다운로드할 수 있는 요리책이라는 유사한 것이 있습니다. 그러면 전체 확인 프로세스를 거칠 수 있습니다.

바이엘: 새로운 툴링을 추가하는 것이 핵심이지만 매우 구성 가능한 RISC-V 참조 모델이 필요하고 툴링과 흐름에 사용할 수 있도록 해야 합니다. 그런 다음 깊은 경험이 없는 사람들이 RISC-V 코어에 대한 적절한 검증 경험을 가질 수 있도록 주변에 무언가를 구축할 수 있습니다.

에프티마키스: Imperas 및 OneSpin을 포함하여 도구를 흐름에 통합했습니다. 이는 생태계를 위해 구축된 이러한 도구를 활용하고 검증 흐름에 통합할 수 있기 때문에 RISC-V의 일부가 되는 이점으로 볼 수 있습니다. 우리는 모델, 시뮬레이션, 공식적인 검증, 주장 등과 비교를 결합할 수 있습니다. 이것이 우리가 이 생태계의 일부가 됨으로써 얻은 이점입니다.

타임 스탬프 :

더보기 세미 엔지니어링