저는 현재 FPGA가 포함된 시스템을 개발 중입니다. 우리는 다양한IP 코어지지하는 사람들AXI 버스. PL의 IP 코어와 통신(프로그래밍 가능한 논리), PS의 주소 공간에 매핑해야 합니다.(처리 시스템). 예를 들어 널리 사용되는징크 PS주소 공간은 다음과 같습니다(UG585 - 섹션 4.1: 주소 매핑)
- 0x0000_0000 ~ 0x7FFF_FFFF:실제 메모리에 매핑합니다. 외부 DDR 또는 온칩 메모리
- 0x8000_0000 ~ 0xBFFF_FFFF: 위에서 설명한 PL에 매핑됩니다.
- 0xE000_0000 ~ 0xFFFF_FFFF:칩의 다양한 기타 장치
보시다시피 주소 공간의 처음 1GB만 물리적 메모리용으로 예약되어 있고 나머지는 PL 또는 PS의 장치가 차지합니다. 따라서 가능하다면 처음 1GB에만 가상화 범위를 적용해 MMU를 건너뛰고 칩에 있는 장치에 더 빠르게 접근할 수 있도록 할 수 있다.
나는 그러한 수정을 통해 모든 종류의 프로세스가 권한을 제어하지 않고도 시스템의 물리적 장치에 액세스할 수 있도록 허용한다는 것을 알고 있습니다. 그래서 질문은
- 물리적 주소 공간을 부분적으로 가상화하는 것이 가능합니까?
- 가능하다면 이것이 합리적인가?