Posts / 태그
#rv32i
4편
RISC-V 디코더 설계: opcode·funct3·funct7 표, 형식 판별, 불법 명령어 검출
RISC-V 15편. RV32I 디코드 표를 제어 신호까지 채우고 불법 명령어 조건 다섯 가지를 정한 뒤, 174,608개 단어로 GNU objdump와 대조했다. 165,923개가 같았고 다른 8,685개는 네 가지 원인으로 모두 설명됐다.
RV32I 3: 분기·점프, 로드·스토어와 정렬, FENCE, ECALL·EBREAK
RISC-V 4편. 분기 6종, jal·jalr, 로드 부호 확장, 정렬 안 된 접근, fence·ecall·ebreak를 QEMU에서 실행했다. jalr는 0x80000021을 0x80000020으로 바꿨고, 결과 56개가 기준 모델과 모두 일치했다.
RV32I 2: 정수 연산·비교·시프트와 lui·auipc로 상수·주소 만들기
RISC-V 3편. RV32I 정수 연산과 비교·시프트, 플래그 없는 오버플로 처리를 QEMU에서 경계값 15개로 확인하고, lui·auipc로 32비트 상수와 주소를 만드는 +1 보정을 100만 개 무작위 시험으로 따진다.
RV32I 1: 레지스터와 명령어 형식 6가지, 즉시값 비트가 뒤섞인 이유
RISC-V 2편. RV32I의 레지스터와 명령어 형식 여섯 가지를 보고, 즉시값 비트가 뒤섞인 이유를 즉시값 생성기의 선택기 입력 수(70 대 98)로 따진다. 직접 짠 인코더·디코더를 GNU as와 5,000개 대조했다.
RISC-V