본문으로 건너뛰기
PS5PCEM
작동펌웨어와 HLE

다이렉트 메모리, 플렉서블 메모리, 풀

게스트 주소는 실제 호스트 주소입니다. 다이렉트 메모리는 그 공간에 매핑되는 희소 공유 물리 풀이며, MemoryPool은 같은 백킹 위에 예약, 커밋, 배치 연산을 더합니다.

2026년 10월 10일까지의 저장소 노트

게스트 주소가 곧 호스트 주소입니다

게스트 x86-64 코드는 네이티브로 실행되며 절대 주소를 담고 있으므로, PS5PCEM은 프로세스를 임의의 할당 위치로 재배치할 수 없습니다. 메모리 모듈은 어떤 모듈도 불러오기 전에 콘솔의 주소 배치를 예약합니다. 시스템 관리 영역은 0x40000에서 시작해 32 GiB 바로 아래까지 이어집니다. 그 뒤에 시스템 예약 영역과 장치 영역이 옵니다. Windows와 Linux의 사용자 영역은 0x10_0000_0000부터 0xFC_0000_0000까지로, 944 GiB의 주소 공간입니다. macOS는 이 영역을 더 높은 곳에서 시작하며 560 GiB를 얻습니다.

이 범위들은 예약일 뿐 커밋된 RAM이 아닙니다. 페이지는 매핑을 만들 때 16 KiB 단위로 커밋되고, 매핑을 해제하면 바깥 예약은 그대로 둔 채 디커밋됩니다. 사용 사이사이에 다른 호스트 할당이 게스트 주소를 가로챌 수 없습니다.

다이렉트 메모리와 플렉서블 메모리

다이렉트 메모리는 게스트가 물리 비디오 메모리를 부르는 이름입니다. 타이틀은 물리 범위를 예약한 뒤 매핑합니다. 두 단계는 별개입니다. 매핑은 물리 범위 전체가 예약되었는지 확인하고, CPU와 GPU 보호 속성을 변환한 다음, 지정된 고정 주소를 그대로 커밋하거나 정렬된 빈 곳을 찾습니다. 같은 물리 오프셋을 여러 가상 주소에 매핑할 수 있으며, 이 별칭들은 하나의 희소 백킹 객체를 공유하므로 일관됩니다.

타이틀이 이미 예약한 범위에 고정 매핑을 하면 예약 안에서 커밋됩니다. 예약을 먼저 해제하면 타이틀이 아직 매핑하지 않은 부분에 대한 권리까지 사라지기 때문입니다. 물리 메모리는 타이틀이 요청한 모양대로 해제되며, 가운데의 구멍일 수도 있고 여러 예약에 걸친 구간일 수도 있습니다. 플렉서블 메모리는 같은 주소 공간 테이블을 쓰며 플랫폼 기본 예산은 4 GiB입니다. 0x02_0000_0000부터 시스템 관리 영역을 찾아보고, 없으면 사용자 영역으로 넘어갑니다.

MemoryPool과 Windows 커밋

libkernel의 MemoryPool 익스포트 6개는 가상 아레나를 예약하고, 물리 용량을 늘리고, 공유 백킹을 커밋·디커밋하고, 순서 있는 배치를 실행하고, 블록 통계를 보고합니다. 기증된 블록은 커밋된 동안 일반 다이렉트 메모리로 매핑하거나 해제할 수 없습니다. 배치 커밋, 디커밋, 보호, 타입 변경은 작동합니다. 배치 MOVE는 여전히 지원하지 않으며, 블록이 옮겨진 척하지 않고 오류를 반환합니다.

Windows에서 정렬된 다이렉트 메모리 뷰는 64 KiB 섹션 뷰를 공유합니다. 그래서 임시 업로드, 리드백, 16 KiB 게스트 페이지가 각각 끝없이 커지는 커밋 부담이 되지 않습니다. 예약에 대한 조회는 게스트의 72바이트 가상 조회 레코드를 사용하며, 원래 보호 비트와 함께 반개구간 범위를 보고합니다.

구현된 것

  • 16 KiB 페이지로 커밋되고, 예약을 포기하지 않고 해제되는 고정 게스트 주소 영역.
  • 다이렉트 메모리 물리 오프셋 하나에 대한 일관된 별칭.
  • 4 GiB 기본 예산과 고정, 덮어쓰기 금지, 부분 매핑 해제를 지원하는 플렉서블 메모리.
  • MOVE를 제외한 MemoryPool 예약, 확장, 커밋, 디커밋, 통계, 순서 있는 배치.

아직 빠진 것

  • MemoryPool 배치 MOVE는 명시적으로 지원하지 않습니다.
  • 타이틀이 소유하지 않은 범위를 해제하는 것은 여전히 오류입니다.
  • 예약은 가상입니다. 타이틀이 매핑한 페이지만 호스트 커밋을 소비합니다.

관련 메커니즘

이 페이지들에 대하여

본문은 PS5PCEM 저장소의 아키텍처 노트와 2026년 10월 보고서를 따릅니다. 특정 테스트를 통과했다고 해서 새로운 프레임 속도나 새로운 완주를 뜻하지는 않습니다.

모든 기술