2017-02-14 14 views
0

RISC-V 버전 2.1 사양을 수행하는 동안 4 장에서 RV64를 RV32와 함께 읽어야한다고 언급했습니다. 그것을 바탕으로 다음은 나의 의심입니다.RV32 명령어 지원 RV64

  1. RISC-V 64 비트는 32 비트 opcode를 실행합니까?

  2. 제 9 장, 54 페이지 지침은 opcode와 함께 나열되며 해당 opcode는 64 비트에도 속합니다.

  3. 스펙에서 9 장, 55 페이지 지침은 opcode와 함께 나열되어 있으며 RV64는 RV32에 추가되어 있으므로 RV64 비트 구현에서는 RV32I도 지원해야합니까?

답변

0

RV64I는 SLLI, SRLISRAI 제외한 RV32I의 수퍼 세트이다. 그 지시를 위해 shamt 필드는 1 비트 증가했습니다. RV32I에서 모든 명령어는 32 비트 데이터를 처리합니다. 동일한 명령어가 RV64I의 64 비트 데이터에서 작동합니다. 하위 32 비트에 대한 연산의 경우 추가 명령어가 RV64I에 포함됩니다.

RV32I 용으로 컴파일 된 프로그램은 RV64I 컴퓨터에서 작동 할 수 있습니다. 불법적 인 명령어 예외를 생성하지 않고 실행되지만 그 결과는 아마도 잘못 될 것입니다. 따라서 RV32I 용으로 컴파일 된 프로그램은 RV32I 시스템에서만 제대로 작동하며 RV64I 용으로 컴파일 된 프로그램은 RV64I 시스템에서만 작동합니다.

부트 로더, 커널 또는 펌웨어와 같은 혼합 된 바이너리가 들어있는 프로그램의 경우 misa 레지스터는 레지스터 비트를 맨 위 비트로 인코딩하므로 점프 및 왼쪽 시프트가있는 올바른 바이너리로 점프 할 수 있습니다. 권한이있는 사양 p.15를 참조하십시오.

구현시 RV32I와 RV64I를 모두 지원할 수 있지만 시스템 소프트웨어의 지원이 필요합니다.