2010년 1월 21일 목요일

MIPS memory map

MIPS 부트코드를 보다가 cached, uncached 라는 것을 발견해서 memory map을 좀 찾아 보았다.


이것이 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로 변환

댓글 없음:

댓글 쓰기