본문 바로가기

RISC-V/RISC-V 개념

[RISC-V] 4편 RISC-V 메모리 모델·캐시 계층·MMU·가상 메모리·TLB

이번 글의 목표

  • RISC-V 메모리 모델의 일관성 규칙 이해
  • RV32/RV64 load/store 아키텍처 특징 분석
  • 캐시 계층(L1/L2/L3)의 구조적 원리
  • 가상 메모리 구조와 페이지 테이블
  • Sv32, Sv39, Sv48, Sv57 번역 스키마 비교
  • TLB의 동작과 성능 영향
  • 실제 예시 코드와 메모리 접근 흐름 분석

 

1. RISC-V 메모리 모델: 단순함 속의 명확함

RISC-VLoad/Store 아키텍처.
연산은 레지스터 간에만 수행되며, 메모리 접근은 반드시 load/store 명령을 통해 이뤄진다.

 

메모리 접근의 기본 규칙

구분 의미
Load memory → register
Store register → memory

모든 메모리 접근은 다음 명령어 중 하나다.

  • lb/lh/lw/ld
  • sb/sh/sw/sd
  • lr/sc (atomic)
  • amoadd/amoor/... (atomic memory ops)

 

Memory Ordering (RVWMO)

RISC-VRVWMO (RISC-V Weak Memory Ordering) 모델을 사용한다.

RVWMO 특징:

  • Load→Store, Store→Load 간 순서 재배치는 가능
  • FENCE 명령으로 순서 강제 가능
  • 대부분 ARM 계열 아키텍처와 유사한 “weak memory model”

 

예시 — Weak Ordering 문제

다음 두 스레드가 있다고 하자.

Thread 1

x = 1;

flag = 1;

Thread 2

while(flag == 0) {}

print(x);

Weak ordering에서는 x=1 flag=1보다 늦게 보일 수도 있다.

해결: fence rw, rw

fence는 이전 load/store가 모두 완료될 때까지 이후 명령을 지연시킨다.

 

2. 캐시 계층 구조

대부분의 RISC-V CPU는 다음 구조를 따른다.

 

레벨 특징 용도
L1 I-Cache Instruction 전용 IF 단계 최적화
L1 D-Cache Data 전용 Load/Store 최적화
L2 Unified Cache I+D 통합 대부분의 SoC
L3 Cache 고성능 서버용 멀티코어 공유

 

캐시 일관성 (Coherency)

RISC-V 기본 ISA는 캐시 일관성 모델을 강제하지 않는다.
멀티코어 시스템은 규격화된 Coherence protocol(MESI/MOESI/CHI ) SoC 업체가 직접 구현해야 한다.

이 부분이 ARM과의 중요한 차이점이다.

 

3. 가상 메모리: Sv32, Sv39, Sv48, Sv57

RISC-V는 플랫폼별 메모리 크기에 따라 여러 형태의 가상 메모리 체계를 제공한다.

 

스킴 비교표

스킴 주소 길이 페이지 테이블 계층 용도
Sv32 32bit VA 2단계 MCU·임베디드
Sv39 39bit VA 3단계 리눅스 일반 SoC
Sv48 48bit VA 4단계 서버급 CPU
Sv57 57bit VA 5단계 대규모 HPC

 

 

4. MMU(메모리 관리 유닛)의 역할

MMU virtual address(VA) physical address(PA)로 변환한다.

 

MMU 동작 과정 요약

  1. CPU VA load/store 요청
  2. TLB에 매핑 확인
  3. TLB hit → 바로 PA
  4. TLB miss → page table walk 수행
  5. PTE(page table entry) 확인
  6. 물리 주소 생성
  7. 캐시/메모리 접근 수행

 

 

5. TLB (Translation Lookaside Buffer)

TLB는 주소 변환 속도를 비약적으로 높이는 핵심 요소다.

 

TLB 구조

항목 설명
ITLB 명령어 fetch
DTLB 데이터 접근용
STLB 공유 TLB(고급 CPU)

 

TLB miss의 비용

TLB miss page table walk를 발생시켜,

  • 메모리 접근 2~4
  • 캐시 miss 가능

고성능 CPU에서는 매우 큰 penalty를 유발한다.

 

 

6. RISC-V의 메모리 보호 구조

PMP (Physical Memory Protection)

임베디드 시스템에서 사용

  • 물리 주소 기반 권한 제어
  • M-mode에서 설정
  • U/S-mode 접근 제어

Virtual Memory + Page Table

리눅스 기반 시스템에서 사용

  • 가상 주소 기반 보호
  • 페이지 단위 권한 부여(R/W/X)

 

7. flush·sfence·fence의 역할

  캐시 flush

ISA 자체는 캐시 flush를 정의하지 않는다(플랫폼 의존).

 

  sfence.vma

TLB 무효화 명령
가상 주소 공간 변경 시 필수.

: sfence.vma

 

  fence, fence.i

Store-load 재정렬 금지
Instruction cache flush
등 제공

 

8. 정리 — RISC-V 메모리 아키텍처의 본질

이번 글의 핵심 포인트:

  RVWMO(약한 메모리 모델)

성능 극대화 + fence로 제어.

 

  캐시 계층 구조 유연

I/D 분리, coherence 방식 자유.

 

  다양한 가상 메모리 스킴

Sv32~Sv57까지 시스템 규모별 선택.

 

  TLB 기반 주소 변환 최적화

TLB miss는 큰 비용.

 

  MMU 구조가 단순하고 구현 자유도 높음

기업/기관이 원하는 형태로 커스텀 가능.