이것이 MIPS의 메모리 구조이다.
각 영역에 대한 설명은 다음과 같다.
- KUSEG
- 사용자가 사용하는 공간
- TLB를 통해 physical addr로 변환
- KSEG0 (512M)
- cached (항상 cache를 사용함)
- cache 초기화 이후에 사용
- 상위 1bit (최상위 bit)를 0으로 만들어 physical addr로 변환
- TLB를 거치지 않고 access
- 커널이 이 영역을 사용
- KSEG1(512M)
- uncached (cache를 사용하지 않음)
- 시스템에서 cache가 정의되기 이전에 사용. (ex. reset vector addr = 0xBFC00000)
- 상위 3bit를 0으로 만들어 physical addr로 변환
- I/O 주변기기에 mapping (I/O 장치들은 그 특성상 cache를 사용해서는 안됨.)
- KSEG2(512M)
- 커널을 통해서 access 가능
- TLB를 통해 physical addr로 변환
댓글 없음:
댓글 쓰기