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

적절한 RISC-V 사용자 지정 지침으로 애플리케이션 가속화 가이드

RISC-V의 ISA(Open Instruction Set Architecture)는 광범위한 구현 유연성을 허용하고 하드웨어-소프트웨어 설계 절충점을 해결하기 위한 새로운 접근 방식을 가능하게 하는 선택적 기능을 제공합니다. 모듈식 구조를 기반으로 하는 여러 표준 확장 및 옵션을 사용하여 기본 프로세서를 시작점으로 구성할 수 있습니다. 그러나 진정한 가치는 실제로 RISC-V가 개발자에게 혁신적인 응용 프로그램 아이디어의 요구 사항을 고유하게 충족하는 새로운 확장, 지침 및 구성을 만들 수 있도록 제공하는 기회에 있습니다.

고정 ISA에 대한 소프트웨어 과제

전통적으로 ISA는 마이크로프로세서 또는 마이크로컨트롤러를 판매하거나 다른 사람이 사용할 수 있도록 설계에 라이선스를 부여하려는 상업 조직의 지적 재산(IP)이었습니다. 임베디드 개발자는 벤치마킹 소프트웨어를 실행하여 애플리케이션 요구 사항에 가장 최적화된 솔루션을 결정해야 합니다. 필요한 모든 생태계를 갖춘 독립적인 ISA를 개발하는 비용으로 인해 반도체 공급업체는 주류 IP 제공업체가 제공하는 표준 고정 ISA에 점점 더 의존하고 있으며, 초저전력과 같은 차별화를 제공하기 위해 무어의 법칙 및 통합 주변 장치에 의존하고 있습니다. , 고객에게.

여기서 문제는 코드를 실행하는 데 사용되는 명령을 변경할 수 없다는 것입니다. 따라서, 예를 들어 암호화 알고리즘에 대한 최적화된 명령에 의해 잠재적으로 얻을 수 있는 효율성은 실현될 수 없습니다. 이는 개발자의 애플리케이션이 너무 느리거나, 잠재적으로 너무 많은 전력을 사용하거나, 제어 루프에서 하드 실시간 기한을 정기적으로 놓치고 있음을 의미할 수 있습니다. 세계 최고의 의지만으로 반도체 제조 개선이나 공정 축소만으로 해결하기 어려운 요소들이다.

RISC-V ISA는 University of California, Berkeley에서 프로젝트로 시작하여 현재 300명 이상의 회원을 보유한 비영리 단체인 RISC-V International Association에서 관리하고 있습니다. 이는 ISA 사양, 시뮬레이터 및 컴파일러와 같은 소프트웨어 도구, 그리고 이러한 작업을 지원하는 데 필요한 나머지 생태계에 기여합니다. 사용이 합리적인지 여부는 두 가지 요소 중 하나를 활용할 수 있는지 여부에 따라 다릅니다. 라이선스 측면에서 무료인지, 아니면 제공하는 자유인지에 따라 다릅니다.

개방적이고 자유롭게 사용할 수 있기 때문에 교육 및 연구뿐만 아니라 상업용 응용 프로그램을 위해 학계에서 쉽게 사용할 수 있는 기본 처리 플랫폼을 제공합니다. 개방형 ISA는 또한 상용 IP 제공자부터 오픈 소스 프로젝트 및 클린 시트, 자체 구축 설계에 이르기까지 반도체 IP를 소싱하려는 개발자를 위한 다양한 비즈니스 모델을 지원합니다. 상업 조직은 FPGA, SoC 또는 마이크로컨트롤러의 핵심이나 표준 제품 오퍼링에서 이를 활용하는 것도 매력적이라고 ​​생각합니다.

자유 덕분에 학계는 새로운 명령어 및 기타 가속기, 다중 코어 및 다중 코어 이기종 설계와 다양한 마이크로아키텍처 옵션을 구현하여 컴퓨팅 문제를 해결하기 위한 새로운 접근 방식을 조사할 수 있습니다. 이러한 옵션 중 상당수는 최종 애플리케이션 요구 사항에 맞게 조정된 사용자 지정 지침을 추가하여 에지에서 작동하는 저전력 인공 지능(AI) 칩셋과 같은 복잡한 문제를 해결하려는 신생 기업 및 비즈니스에도 매력적입니다.

RISC-V 유연성이 내장된 생태계가 구축되었으므로 모든 표준 구성 또는 사용자 지정 확장은 ISA 호환 프레임워크 내에서 도구와 소프트웨어를 활용할 수 있어야 합니다.

개방형 RISC-V ISA의 유연성 이해

RISC-V ISA 및 관련 도구의 접근성 덕분에 조사 프로젝트를 시작하여 특정 응용 프로그램에 사용하기에 적합성을 평가하는 것이 간단합니다. 시뮬레이션 도구를 사용하면 표준 기본 ISA를 시험 사용하여 기본 성능을 결정할 수 있습니다. 예를 들어, 기본 32비트 정수 명령어 세트에 대한 지원을 제공하는 정수 "I" 및 곱셈 "M" 확장(RV32IM으로 참조될 수 있음)이 있는 32비트 RISC-V 구성이 좋은 시작점입니다. 더 많은 옵션을 사용할 수 있지만 이 예에서는 이것으로 충분합니다. 그런 다음 액세스 지연 및 대기 상태를 포함하여 시뮬레이션된 메모리와 함께 인스턴스화됩니다.

C/C++로 작성된 애플리케이션은 표준 도구 체인을 사용하여 크로스 컴파일될 수 있습니다. 이것은 베어 메탈에서 실행되거나 (실시간) 운영 체제(RTOS/OS)의 일부로 실행될 수 있습니다. 그런 다음 결과 바이너리 코드는 선택한 기본 프로세서 모델을 통합하고 시뮬레이션할 수 있는 ISS(명령 세트 시뮬레이터)와 같은 도구를 사용하여 실행됩니다(그림 1). 이 환경은 또한 표준 입/출력 기능과 호스트 파일 시스템에 대한 액세스를 제공합니다. 그런 다음 Eclipse와 같은 표준 통합 개발 환경(IDE) 도구를 사용하여 코드 실행을 제어하고 GNU 디버거 GDB를 통해 인터페이스할 수 있습니다.

여기에서 프로파일링 및 분석 프로세스를 통해 교육 후보를 식별, 설계 및 모델링합니다. 원래 응용 프로그램 코드를 기본 기능 모델로 사용하여 결과 개선 사항을 신속하게 테스트하고 검증하며 성능을 비교할 수 있습니다. 이러한 신속한 프로파일링 및 분석 반복을 통해 구현할 가치가 있는 명령어를 빠르게 선택하고 최적화할 수 있습니다. 문서는 모델에서 생성될 수 있으며 레지스터 전송 로직(RTL) 설계 및 최적화된 모델을 위한 기능 사양의 기초를 형성합니다.

예를 들어 ChaCha20과 같은 암호화 알고리즘은 특정 애플리케이션에 중요할 수 있습니다. 사용 가능한 소스 코드는 "바닐라" RV32IM 기반에 대해 컴파일되고 실행된 다음 기본 블록 프로파일링을 사용하여 추정된 명령 주기 타이밍으로 분석되어 코드의 어느 섹션에서 시간이 얼마나 소요되었는지 확인할 수 있습니다. ChaCha20 알고리즘의 핵심은 XOR 및 쿼터 라운드로 알려진 회전 명령을 많이 사용합니다(그림 2). 블록 프로파일링의 결과는 대부분의 실행 시간이 이러한 함수에서 소비된다는 것을 즉시 강조합니다.

이러한 핫스팟의 그래픽 시각화는 검증, 분석 및 프로파일링(VAP) 도구를 사용하여 생성할 수도 있습니다. 텍스트 출력을 제공하는 대신 실행 시간이 축소 가능한 통계 트리로 제공되어 실행된 명령의 비율이 높은 핫스팟을 더 잘 시각화하는 데 도움이 됩니다. 이것은 processWord() 함수가 있는 그림 3에서 볼 수 있습니다. ChaCha20 알고리즘을 구현하여 4개의 qrx_c 필요한 분기 기능을 구현하는 기능입니다.

컴파일러 및/또는 기본 블록 프로파일링을 실행하여 생성된 어셈블러 코드를 검토하여 알고리즘을 구현하는 데 사용된 명령어 및 명령어 조합을 결정할 수 있습니다. 여기에서 다음 단계는 ISA 사양의 범위 내에서 실행 속도를 잠재적으로 높일 수 있는 사용자 지정 명령을 결정하는 것입니다.

RISC-V가 제공할 수 있는 잠재적 개선 사항 결정

ChaCha20 알고리즘은 7, 8, 12 및 16비트의 왼쪽 회전과 결합된 XOR을 많이 사용합니다. RV32IM 기본 사양의 사용 가능한 명령어를 사용하면 XOR 명령어 다음에 왼쪽 시프트 명령어가 필요함을 보여줍니다. 이는 이 두 단계를 7, 8, 12 또는 16비트의 왼쪽 회전과 함께 XOR을 구현하는 4개의 전용 명령어로 최적화할 가능성이 있음을 의미합니다.

로드 스토어 아키텍처이기 때문에 모든 사용자 지정 명령어는 조작할 데이터가 이 RISC-V의 32비트 레지스터 중 하나에 이미 있다고 가정해야 합니다. 이것은 custom-1에 위치할 수 있는 R-유형(등록) 명령어가 필요할 것임을 즉시 결정합니다. 디코딩 공간(그림 4).

ISA는 이러한 지침에 대한 명확한 구조를 제공합니다. 이러한 규칙을 따르면 새 명령을 인코딩하는 방법을 빠르게 결정할 수 있습니다. 하위 7비트는 opcode로 정의됩니다. custom-1에서 사용자 지정 지침으로 표시하는 값이 할당됩니다. 디코딩 공간. 이것은 OP와 반대입니다. 또는 OP-IMM 기존 XOR 및 왼쪽 시프트 명령에 각각 사용되는 opcode입니다.

3개의 미리 정의된 비트 블록은 2개의 소스 레지스터와 결과에 대한 대상 레지스터를 규정하기 위해 ISA 정의에 예약되어 있습니다. 이것은 funct3으로 알려진 비트 블록을 남깁니다. . 이 3비트는 8개의 가능한 명령어를 인코딩할 수 있는 공간을 제공하며 이 중 4개는 이 예에서 사용됩니다.

이러한 명령어에 대한 RTL의 상세한 하드웨어 구현을 요구하지 않고 ISS 환경에서 이를 시뮬레이션하여 직면한 문제에 전혀 도움이 되는지 확인할 수 있습니다. 4개의 새로운 명령어는 개방형 가상 플랫폼(OVP) VMI 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 모델링됩니다. 이를 통해 개발자는 대상 응용 프로그램에 대한 새 지침을 기반으로 최적의 원하는 결과를 제공하는 지침 설계를 신속하게 반복할 수 있습니다. 이것이 달성되면 RTL 구현에 리소스를 투입해야 합니다.

지침의 초기 기능 평가를 위해 두 가지 가능한 접근 방식이 있습니다. 첫 번째는 알고리즘의 원래 C/C++ 버전을 호출하여 새 명령을 이 함수에 바인딩하는 것입니다(그림 5a). 두 번째는 동일한 동작을 생성하는 VMI 모프 명령어로 구현하는 것입니다(그림 5b). 이것은 더 효율적이라는 이점이 있으며 권장되는 접근 방식입니다.

물론 새로운 명령어가 있다고 해서 컴파일러가 즉시 명령어를 사용할 수 있다는 의미는 아닙니다. 따라서 원본 C/C++ 응용 프로그램은 인라인 어셈블러를 사용하여 다시 작성하고 새 명령을 사용하기 위해 크로스 컴파일해야 합니다. 후보 명령어의 프로파일링 및 분석은 반복적인 작업일 수 있으므로 내장 기반 접근 방식은 새로운 사용자 지정 명령어를 사용하도록 원래 C 애플리케이션을 조정하는 가장 효율적인 방법을 제공합니다.

시뮬레이터에 로드된 RISC-V 기본 구현도 새 명령어를 인식해야 이점을 얻을 수 있습니다. 이것은 시뮬레이션을 다시 실행하기 전에 모델에 포함하여 달성됩니다. 이 특정 예에서 프로파일링을 반복하면 알고리즘을 수행하는 데 소요되는 전체 시간이 줄어듭니다(그림 6). Imperas VAP 프로파일링 도구는 processWord() 전용 인라인 명령어를 사용하는 함수는 이제 전체 알고리즘 실행의 66%를 차지하지만 알고리즘의 전체 실행 시간은 크게 단축됩니다(그림 6b).

원래 C 구현 결과
정보 시뮬레이션된 지침:316,709,013
정보 시뮬레이션된 시간 :5.15초

맞춤 지침이 있는 결과
정보 시뮬레이션된 지침:60,474,426
정보 시뮬레이션된 시간 :1.38초

올바른 기능이 결정되면 프로세서 주기에서 각 명령어의 실행 시간을 선언하여 모델을 더욱 세분화합니다. 그런 다음 최종 하드웨어 구현에서 발생할 수 있는 메모리 액세스와 관련된 대기 상태를 고려하더라도 추가 시뮬레이션 라운드를 사용하여 성능 향상을 결정할 수 있습니다.

일반적인 오픈 소스 IDE 및 GDB 도구와의 긴밀한 통합 덕분에 설계를 하드웨어 구현에 적용하기 전에 최적화된 RISC-V 설계와 함께 솔루션의 전체 디버깅을 수행할 수 있습니다(그림 7).

시뮬레이션에서 구현으로 이동

잠재적인 성능 향상이 결정되면 다음 단계에서는 RTL에서 4개의 새로운 명령어를 구현해야 합니다. 수행된 사전 작업 덕분에 이것은 요구 사항을 정의하는 기능 사양이 되며 골든 참조 모델로 RTL 검증 테스트 계획의 일부로 사용될 수도 있습니다. C 애플리케이션에서 내장 함수를 사용하면 사용자 지정 명령어의 프로파일링 및 분석에 도움이 되었지만, 이 접근 방식은 향후 프로덕션 코드 개발에 활용하거나 잠재적인 컴파일러 도구 체인 향상을 위해 고려할 수도 있습니다.

나머지 필수 작업인 문서화도 간단한 프로세스입니다. 모든 개방형 가상 플랫폼(OVP) 고속 프로세서 모델에는 변경 및 수정 기능을 포함하도록 확장할 수 있는 문서가 포함되어 있습니다. 주어진 템플릿에 따라 새 지침을 선언하고 설명할 수 있으므로 개발자 커뮤니티에서 해당 기능을 발견하고 사용할 수 있습니다. 그런 다음 문서는 PDF를 생성할 수 있는 TeX 파일로 변환됩니다(그림 8).

요약

사양에 정의된 표준 옵션 및 기능 외에도 RISC-V의 개방형 ISA의 자유로 사용자는 추가 맞춤형 확장 및 지침을 개발할 수 있습니다. 가장 단순하게는 상용 및 오픈 소스 구현을 포함한 새롭고 창의적인 비즈니스 모델을 가능하게 하고 주류 기존 접근 방식을 넘어 부가 가치 기능을 탐색할 수 있는 더 넓은 자유를 가능하게 합니다.

그러나 진정한 가치는 문서화되고 지원되는 완전한 기반 코어를 가져와 특정 애플리케이션 요구 사항을 충족하도록 수정하는 데 있습니다. 신중한 애플리케이션 분석, 코드 프로파일링 및 시뮬레이션을 통해 고정 ISA로는 실현할 수 없었던 상당한 성능 향상을 달성할 수 있습니다. 이 모든 것은 상세한 하드웨어 구현을 시작하기 전에 실제 애플리케이션 워크로드로 개발 및 프로파일링할 수 있습니다.


임베디드

  1. Perf로 분산 애플리케이션 프로파일링
  2. 바인더 젯팅을 사용한 3D 인쇄에 대한 간략한 가이드
  3. Microchip:COTS-to-radiation-to-lerant 코어 MCU를 사용한 확장 공간 애플리케이션
  4. Renesas:산업용 애플리케이션을 위한 EtherCAT 지원 기능이 있는 RX72M MCU
  5. Axiomtek:통합 레이어 2 관리 PoE 스위치가 있는 임베디드 시스템
  6. 기존 공급업체와의 비용 재협상:가이드
  7. CNC 목재 라우터 - 놀라운 애플리케이션 사용
  8. AI 보험 시작하기:입문 가이드
  9. 의학에서 AI의 5가지 실제 적용(예제 포함)
  10. 고속철도용 맞춤형 브레이크 슈 및 패드 가이드