물리 주소 확장
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
물리 주소 확장(PAE)은 x86 아키텍처에서 물리 메모리 주소 공간을 확장하는 기술이다. 1995년 인텔 펜티엄 프로에서 처음 구현되었으며, 이후 펜티엄 II, 펜티엄 III, 펜티엄 4, 펜티엄 M, AMD 애슬론 및 후속 프로세서에서 지원되었다. PAE는 x86 아키텍처의 페이지 테이블 항목을 확장하여 최대 64GB의 물리 메모리를 지원하며, x86-64 아키텍처에서는 52비트 물리 주소까지 확장되었다. PAE를 사용하려면 운영 체제와 하드웨어의 지원이 필요하며, 윈도우, 리눅스, FreeBSD, macOS 등 여러 운영 체제에서 지원된다.
PAE는 1995년 인텔 펜티엄 프로(Pentium Pro) 프로세서에 처음 도입되었지만,[3] 당시의 칩셋들은 추가 주소 비트를 지원하지 않는 경우가 많았다.[4]
PAE는 x86 아키텍처에서 페이지 테이블 항목을 32비트에서 64비트로 확장하여 물리 주소 크기를 늘리는 기술이다. 초기 PAE 구현에서는 페이지 프레임 번호 필드를 20비트에서 24비트로 확장하고, 주소의 "바이트 오프셋" 크기는 12비트로 유지하여 총 물리 주소 크기가 32비트(20+12)에서 36비트(24+12)로 증가했다. 이로써 CPU가 이론적으로 주소 지정 가능한 물리 메모리 용량이 4GB에서 64GB로 늘어났다.[12]
소프트웨어는 CPUID 플래그 `PAE`를 통해 CPU가 PAE 모드를 지원하는지 여부를 확인할 수 있다. 마이크로소프트 윈도우용 무료 프로그램으로 PAE 지원을 포함한 많은 프로세서 기능을 나열하는 프로그램이 있다.[14] 리눅스에서는 `cat /proc/cpuinfo`와 같은 명령어를 사용하여 `pae` 플래그가 있는지 확인할 수 있으며, SYSLINUX 하드웨어 감지 도구와 같은 다른 도구도 사용할 수 있다.[15]
리눅스 커널은 1999년 2.3.23 버전부터 PAE 모드를 완벽하게 지원하여[24] 32비트 시스템에서 최대 64GiB의 메모리 접근을 가능하게 했다. 2.6 버전부터 PAE를 지원하기 시작했으며,[41] PAE를 통해 32비트 컴퓨터에서 최대 64GiB 메모리에 접근할 수 있다. PAE를 사용하는 리눅스 커널은 PAE 기능이 없는 CPU에서 동작하지 않는다. PAE가 활성화된 리눅스 커널은 CPU도 PAE를 지원해야 한다. 리눅스 커널은 PAE를 빌드 옵션으로 지원하며, 주요 배포판은 기본값 또는 옵션으로 PAE 커널을 제공한다. NX 비트 기능은 PAE 지원 기능으로 빌드된 커널이 필요하다.[25]
2. 역사
PAE는 펜티엄 프로, 펜티엄 II(Pentium II), 펜티엄 III(Pentium III), 펜티엄 4(Pentium 4) 프로세서에서 지원된다. 2003년에 출시된 최초의 펜티엄 M(Pentium M) 계열 프로세서("바니아스")도 PAE를 지원하지만, 해당 프로세서의 CPUID 정보에는 PAE 지원 플래그가 표시되지 않았다.[5] 이 문제는 2005년 "도선(Dothan)" 코어의 후속 개정판에서 해결되었다. AMD 프로세서, 특히 AMD 애슬론(Athlon)[6][7] (단, 칩셋은 32비트 주소 지정으로 제한됨[8])과 후속 AMD 프로세서 모델에서도 사용할 수 있었다.
AMD(Advanced Micro Devices)가 x86 아키텍처의 64비트 확장인 AMD64 (x86-64)를 정의할 때, PAE를 기반으로 "롱 모드(long mode)"의 페이징 시스템을 개선했다.[9] 이는 64비트 가상 주소[10] (일부 프로세서에서는 48비트, 다른 프로세서에서는 57비트 구현[10][11]), 52비트 물리 주소[10]를 지원하며, NX 비트(NX bit) 기능을 포함한다. x86-64 프로세서가 초기화될 때, 레거시 모드에서 롱 모드로 전환하기 전에 PAE 기능을 활성화해야 한다.[9]
AMD사의 AMD64 아키텍처 및 인텔의 호환 가능한 Intel 64 아키텍처에서는 PAE 페이지 테이블 엔트리의 구조를 유지하면서 512개의 엔트리를 가진 4단계 페이지 테이블 구조를 사용하여 가상 주소 공간을 48비트, 물리 주소 공간을 52비트까지 확장했다. 또한, 사용자 명령어 세트는 64비트로 어드레싱이 가능하며, 2008년 4월 기준으로 일반화되었다.
3. 설계
PAE 지원 초기 프로세서의 패키지 핀 배치를 보면 주소 핀 명칭이 A31에서 멈추지 않고 A35까지 확장되어 더 큰 물리 주소를 지원함을 알 수 있다.[12] 이후 프로세서들은 하이퍼트랜스포트나 퀵패스 인터커넥트와 같은 상호 연결을 사용하는데, 여기에는 전용 메모리 주소 신호가 없어 이러한 관계가 덜 명확하다.
PAE를 사용해도 가상 주소 크기는 32비트로 유지되므로, 일반 애플리케이션은 32비트 주소 명령어와 함께 (평면 메모리 모델에서) 4GB 가상 주소 공간으로 제한된다. PAE 지원 운영 체제는 페이지 테이블을 통해 4GB 가상 주소 공간을 물리 메모리에 매핑하며(최대 64GB), 이 매핑은 각 프로세스별로 적용되어 한 프로세스가 모든 메모리에 접근할 수는 없지만 추가 RAM 활용이 가능하다.
이후 AMD의 x86-64 아키텍처 개발에서 물리 주소 크기는 이론적으로 52비트까지 확장되었다.[10]
3. 1. 페이지 테이블 구조
PAE(물리 주소 확장)를 활성화하면 (시스템 레지스터 CR4의 5번 비트, `PAE` 설정) 페이지 테이블 구조에 큰 변화가 생긴다. 기본적으로 각 페이지 크기는 4KB로 유지되지만, 페이지 테이블과 페이지 디렉터리의 각 항목 길이는 32비트에서 64비트(8바이트)로 늘어난다. 각 테이블 크기는 변경되지 않으므로 테이블과 디렉터리는 모두 512개 항목만 갖는다. 이는 원래 체계 항목 수의 절반만 허용하므로 계층 구조가 한 단계 추가되어, 시스템 레지스터는 이제 페이지 디렉터리 포인터 테이블(Page Directory Pointer Table)을 물리적으로 가리키게 되며, 이 테이블은 페이지 디렉터리 네 개에 대한 포인터를 포함한다.[13]
페이지 테이블에서 64비트 주소를 지원하면 프로세서 주소 지정에 두 가지 변경 사항이 가능하다. 첫째, 페이지 테이블 워커(page table walker)는 PAE를 지원하지 않는 시스템의 32비트 물리 주소보다 큰 물리 주소에 액세스할 수 있다. 둘째, 페이지 테이블에 저장된 데이터의 물리 주소는 PAE 미지원 시스템의 32비트 주소보다 큰 물리 주소로 표현될 수 있어, 32비트 범위를 벗어나는 물리 메모리 영역에 접근할 수 있다.[13]
페이지 디렉터리 항목에는 페이지 크기를 나타내는 `PS` 플래그(7번 비트)가 있다. 이 비트가 `1`로 설정되면, 페이지 디렉터리 항목은 페이지 테이블을 가리키지 않고 단일 2MB 크기 페이지를 가리킨다(페이지 크기 확장).
IA-32 및 x86-64에서 지원하는 모든 페이지 테이블 형식에서 페이지 테이블 항목 하위 12비트는 메모리 관리 장치에 의해 해석되거나 운영 체제 사용을 위해 예약된다. "실행 금지"(no-execute) 기능을 구현하는 프로세서에서는 최상위 비트(비트 63)가 NX 비트(NX 비트)이다. 상위 11개 비트(비트 52~62)는 운영 체제용으로 예약되어 있다. 따라서 물리적 페이지 번호에는 40비트(비트 12~51)가 남고, 선형 주소의 "페이지 내 오프셋" 12비트와 결합하여 최대 52비트를 사용하여 물리적 메모리를 주소 지정할 수 있다. 이를 통해 최대 4PB RAM 구성이 가능해진다.
PAE를 통해 IA-32 아키텍처의 메모리 주소(32비트)를 36비트 이상으로 확장하여, 물리 메모리 공간을 최대 64GiB 이상 사용할 수 있다. 그러나 가상 주소 공간은 4GiB로 유지되며, 페이지 테이블 엔트리를 32비트에서 64비트로 확장하여 물리 메모리 공간에 접근한다. 페이지 크기는 4KiB이고 페이지 테이블 크기는 1페이지로 유지되므로, 페이지 테이블 엔트리 수가 단계당 1024개에서 512개로 줄어든다. 이를 보완하기 위해 PAE는 최상위에 4개 엔트리를 가진 페이지 테이블을 추가한다.
3. 1. 1. 32비트 페이징 (PAE 미사용)
보호 모드에서 페이징이 활성화된(제어 레지스터 `CR0`의 31번 비트, `PG`가 설정됨) 상태이지만 PAE를 사용하지 않는 경우, x86 프로세서는 2단계 페이지 변환 방식을 사용한다. 제어 레지스터 `CR3`는 페이지 정렬된 단일 4 KiB 길이의 페이지 디렉터리의 물리적 주소를 저장한다. 이는 1024개의 4바이트 페이지 디렉터리 항목으로 나뉘며, 유효한 경우 페이지 테이블의 페이지 정렬된 물리적 주소를 저장한다. 각 페이지 테이블은 크기가 4 KiB이다. 이 페이지 테이블 또한 유효한 경우 4 KiB 길이의 물리 메모리(RAM) 페이지의 페이지 정렬된 물리적 주소를 1024개의 4바이트 페이지 테이블 항목으로 저장한다.[1]
3. 1. 2. 32비트 페이징 (PAE 사용)
PAE (물리 주소 확장)를 활성화하면 (시스템 레지스터 CR4의 5번 비트, `PAE` 설정) 페이지 테이블 구조에 큰 변화가 생긴다. 기본적으로 각 페이지의 크기는 4KB로 유지되지만, 더 많은 주소 비트를 사용할 수 있도록 페이지 테이블과 페이지 디렉터리의 각 항목 길이가 32비트에서 64비트 (8바이트)로 늘어난다. 하지만 각 테이블의 크기는 그대로 유지되므로, 테이블과 디렉터리는 모두 512개의 항목만 갖게 된다. 이는 원래 항목 수의 절반만 허용하는 것이므로, 계층 구조가 하나 더 추가되어 시스템 레지스터는 이제 페이지 디렉터리 포인터 테이블 (Page Directory Pointer Table)을 가리키게 된다. 이 테이블은 4개의 페이지 디렉터리 포인터를 포함하는 짧은 테이블이다.[13]
64비트 주소 지원은 프로세서 주소 지정에 두 가지 중요한 변화를 가져온다. 첫째, 페이지 테이블 워커 (page table walker)는 이제 PAE를 지원하지 않는 시스템에서 지원되는 32비트 물리 주소보다 더 큰 물리 주소에 접근할 수 있다. 즉, 페이지 테이블 워커는 32비트 범위를 벗어나는 페이지 디렉터리와 테이블에 접근할 수 있다. 둘째, 접근되는 데이터의 물리 주소 (페이지 테이블에 저장됨)는 PAE를 지원하지 않는 시스템에서 지원되는 32비트 주소보다 더 큰 물리 주소로 표현될 수 있다. 이를 통해 32비트 범위를 벗어나는 물리 메모리 영역에 대한 데이터 접근이 가능해진다.[13]
페이지 디렉터리 항목에는 `PS` (페이지 크기)라는 추가 플래그 (7번 비트)가 있다. 이 비트가 `1`로 설정되면, 페이지 디렉터리 항목은 페이지 테이블을 가리키지 않고 단일 2MB 크기의 큰 페이지를 가리킨다(페이지 크기 확장).
IA-32 및 x86-64에서 지원하는 모든 페이지 테이블 형식에서 페이지 테이블 항목의 하위 12비트는 메모리 관리 장치에 의해 해석되거나 운영 체제 사용을 위해 예약된다. "실행 금지" (no-execute) 또는 "실행 비활성화" (execution disable) 기능을 구현하는 프로세서에서는 최상위 비트 (비트 63)가 NX 비트(NX 비트)이다. 다음 11개의 최상위 비트 (비트 52~62)는 Intel과 AMD의 아키텍처 사양 모두에서 운영 체제 사용을 위해 예약되어 있다. 따라서 페이지 테이블 항목의 64비트 중 하위 12비트와 상위 12비트는 다른 용도로 사용되므로, 물리적 페이지 번호에는 40비트 (비트 12~51)가 남는다. 선형 주소의 "페이지 내 오프셋" 12비트와 결합하여 최대 52비트를 사용하여 물리적 메모리를 주소 지정할 수 있다. 이를 통해 최대 252 바이트, 즉 4페타바이트 (약 4.5×1015 바이트)의 RAM 구성이 가능해진다.
PAE를 사용하면 IA-32 아키텍처의 메모리 주소(Address Line)인 32비트를 36비트 이상의 메모리 공간으로 확장할 수 있다. 이를 통해 IA-32 표준에서는 최대 4GiB까지밖에 사용할 수 없었던 물리 메모리 공간을 최대 64GiB 이상 사용할 수 있게 된다. 그러나 가상 메모리의 가상 주소 공간은 4GiB 그대로이며, 페이지 테이블의 엔트리를 32비트에서 64비트로 확장함으로써 물리 메모리 공간에 접근하게 된다. 페이지 크기는 4KiB이며, 페이지 테이블의 크기는 1페이지 그대로이므로, 페이지 테이블 엔트리의 수가 한 단계당 1024개에서 512개로 줄어든다. 이를 보완하기 위해 PAE에서는 4개의 엔트리를 가진 페이지 테이블이 최상위에 한 단계 추가된다.
3. 1. 3. x86-64 페이징
x86-64 프로세서의 네이티브 롱 모드에서 주소 변환 방식은 PAE를 사용하지만, 512개의 항목을 가진 4단계 페이지 맵(page-map level 4) 테이블을 추가하고, 보호 모드에서 4개였던 페이지 디렉터리 포인터 테이블의 항목 수를 512개로 확장한다. 이는 가상 페이지 번호의 48비트를 변환하여 최대 256TB의 가상 주소 공간을 제공한다.[10] 일부 프로세서는 512개의 항목을 가진 5단계 페이지 맵(page-map level 5 table)(Intel 5-level paging)을 사용하는 모드를 활성화할 수 있다. 이는 가상 페이지 번호의 57비트를 변환하여 최대 128PB의 가상 주소 공간을 제공한다.[10]
AMD사의 AMD64 아키텍처 및 인텔의 호환 가능한 Intel 64 아키텍처에서는 PAE 페이지 테이블 엔트리의 구조를 유지하면서 512개의 엔트리를 가진 4단계 페이지 테이블 구조를 사용하여 가상 주소 공간을 48비트, 물리 주소 공간을 52비트까지 확장했다. 또한, 사용자 명령어 세트는 64비트로 주소 지정이 가능하며, 2008년 4월 기준으로 일반화되었다.
이러한 확장을 구현한 프로세서를 IA-32의 PAE 호환으로 사용하는 경우, 물리 주소 공간의 범위는 64비트 모드에서 사용했을 때와 동일하다. 이 x64의 페이지 테이블 엔트리는 NX 비트도 지원하므로, 4GB의 물리 공간만 지원하는 Windows XP SP3 등의 운영 체제에서도 데이터 실행 방지를 위해 유효하게 사용될 수 있다.
4. 하드웨어 지원
프로세서를 PAE 모드로 실행하려면 운영 체제 지원이 필요하다. 4GB 이상의 RAM에 접근하기 위해 PAE를 사용하려면 운영 체제, 칩셋 및 마더보드의 추가 지원이 필요하다. 일부 칩셋은 4GB(16진수로 FFFFFFFF) 이상의 물리적 메모리 주소를 지원하지 않으며, 일부 마더보드에는 4GB 이상의 RAM을 설치할 수 있을 만큼 충분한 RAM 소켓이 없다. 그럼에도 불구하고 4GB 이상의 RAM을 사용할 수 없더라도, 예를 들어 NX 비트 기능을 사용하기 위해 PAE 기능이 있는 CPU를 PAE 모드로 실행할 수 있다.
5. 운영 체제 지원
2009년부터 리눅스 배포판은 일반적으로 PAE가 활성화된 커널을 기본값으로 사용하기 시작했다.[26] 우분투(및 우분투 기반 배포판인 쿠분투, 리눅스 민트)[27][28], 레드햇 엔터프라이즈 리눅스 6.0,[29] 센토스 등 많은 배포판이 비 PAE 커널 배포를 중단하여 PAE를 지원하는 하드웨어를 필수적으로 만들었다. PAE를 요구하는 리눅스 배포판은 내부적으로 지원되더라도 CPUID 정보에 PAE 지원 플래그가 표시되지 않기 때문에 펜티엄 M 계열 프로세서에서는 부팅을 거부할 수 있지만, `forcepae` 옵션으로 쉽게 우회할 수 있다.[30] 데비안(및 LMDE 2 (리눅스 민트 데비안 에디션)[31]), 슬랙웨어, LXLE 등 비 PAE 옵션을 여전히 제공하는 배포판은 일반적으로 "i386", "i486" 또는 "retro" 레이블을 사용한다.[32][33]
macOS 타이거부터 macOS 스노우 레퍼드까지는 IA-32 프로세서에서 PAE와 NX 비트를 지원했다.[23] 스노우 레퍼드는 IA-32 프로세서를 지원하는 마지막 버전이었다. x86-64 프로세서에서는 모든 macOS 버전이 4단계 페이징(PAE가 아닌 IA-32e 페이징)을 사용하여 4GB 이상의 메모리를 주소 지정한다. Mac Pro 및 Xserve 시스템은 최대 64GB의 RAM을 사용할 수 있다.[23]
윈도우에서 PAE는 다음의 32비트 버전에서 지원된다.[43][44]
32비트 버전의 마이크로소프트 윈도우는 PAE를 지원하지만, 일부 드라이버는 4GB를 초과하는 물리 주소를 만나면 불안정해지는 문제가 발생할 수 있다.[16] 초기 윈도우 XP 및 윈도우 XP SP1은 PAE 모드를 사용하여 RAM을 4GB 주소 제한 이상으로 확장할 수 있었으나, 타사 드라이버와의 호환성 문제로 인해 마이크로소프트는 윈도우 XP 서비스 팩 2에서 이 기능을 제거했다. 윈도우 XP SP2 이후 버전에서는 no-execute (NX) 또는 execute-disable (XD) 기능이 있는 프로세서에서 NX를 활성화하기 위해 기본적으로 PAE 모드로 실행된다.[20] NX 비트는 페이지 테이블 항목의 63비트에 있으며, PAE가 없으면 32비트 시스템의 페이지 테이블 항목은 32비트만 있으므로 NX 기능을 사용하려면 PAE 모드가 필요하다. 그러나 32비트 윈도우의 "클라이언트" 버전(윈도우 XP SP2 이상, 윈도우 비스타, 윈도우 7)은 드라이버 호환성을 위해 물리 주소 공간을 처음 4GB로 제한한다.[16] 윈도우 8 이상 릴리스는 NX 및 SSE2 외에도 PAE를 지원하는 프로세서에서만 실행된다.[21][22]
NetBSD는 커널 빌드 옵션으로 PAE를 지원한다. FreeBSD는 4.9부터 시작하는 4.x 시리즈, 5.1부터 시작하는 5.x 시리즈, 그리고 모든 6.x 이상 버전에서 PAE를 지원하며, 커널 `PAE` 구성 옵션이 필요하다. 로드 가능한 커널 모듈은 모듈이 PAE를 사용하여 빌드된 경우에만 PAE가 활성화된 커널에 로드될 수 있다. FreeBSD 배포판의 바이너리 모듈은 PAE를 사용하여 빌드되지 않으므로 PAE 커널에 로드할 수 없다. 모든 드라이버가 4GB 이상의 물리적 메모리를 지원하는 것은 아니며, 해당 드라이버는 PAE가 사용된 시스템에서 제대로 작동하지 않는다.[34]
OpenBSD는 2006년 표준 GENERIC i386 커널부터 PAE를 지원해 왔으며, GeNUA mbH가 초기 구현을 지원했다.[35] 5.0 버전부터 PAE는 일련의 변경 사항을 거쳤는데, 특히 pmap(9)을 참조하여 PMAP에 대한 i386 MMU 처리 변경 사항이 있다.[36] 솔라리스는 Solaris 7 버전부터 PAE를 지원한다. 그러나 PAE 지원을 명시적으로 포함하지 않은 7 버전에서 사용되는 타사 드라이버는 PAE가 사용된 시스템에서 오류가 발생하거나 제대로 작동하지 않을 수 있다.[37][42] 하이쿠는 R1 알파 2 출시 이후 PAE에 대한 초기 지원을 추가했으며, R1 알파 3 출시와 함께 공식적으로 지원된다. ArcaOS는 4GB 경계 이상의 RAM 디스크를 생성하기 위한 목적으로 PAE를 제한적으로 지원한다.[38]
5. 1. FreeBSD
FreeBSD는 커널 구성 옵션 `PAE`를 통해 PAE를 지원한다. 4.x 시리즈 (4.9부터), 5.x 시리즈 (5.1부터), 6.x 이후 버전에서 지원한다.[40][34] 로드 가능한 커널 모듈은 모듈이 "PAE 사용" 옵션을 켜 둔 상태에서 빌드된 경우에만 PAE 커널에 불러들일 수 있다. FreeBSD 배포판의 이진 모듈들은 PAE와 함께 빌드되지 않아 PAE 커널에 불러들일 수 없다. 모든 드라이버가 4 기가바이트 이상의 물리 메모리를 지원하는 것은 아니며, 이러한 드라이버들은 PAE를 사용하는 시스템에서 정상 작동하지 않을 수 있다.[40]
5. 2. 리눅스
리눅스 커널은 2.6 버전부터 PAE를 지원하기 시작했다.[41] PAE를 통해 32비트 컴퓨터에서 최대 64GiB 메모리에 접근할 수 있다. PAE를 사용하는 리눅스 커널은 PAE 기능이 없는 CPU에서 동작하지 않는다.
1999년 2.3.23 버전부터 리눅스 커널은 PAE 모드를 완벽하게 지원하여[24] 32비트 시스템에서 최대 64GB의 메모리 접근을 가능하게 했다. PAE가 활성화된 리눅스 커널은 CPU도 PAE를 지원해야 한다. 리눅스 커널은 PAE를 빌드 옵션으로 지원하며, 주요 배포판은 기본값 또는 옵션으로 PAE 커널을 제공한다. NX 비트 기능은 PAE 지원 기능으로 빌드된 커널이 필요하다.[25]
리눅스 배포판은 2009년부터 일반적으로 PAE가 활성화된 커널을 기본값으로 사용하기 시작했다.[26] 우분투(및 우분투 기반 배포판인 쿠분투, 리눅스 민트)[27][28], 레드햇 엔터프라이즈 리눅스 6.0,[29] 센토스 등 많은 배포판이 비 PAE 커널 배포를 중단하여 PAE를 지원하는 하드웨어를 필수적으로 만들었다. PAE를 요구하는 리눅스 배포판은 내부적으로 지원되더라도 CPUID 정보에 PAE 지원 플래그가 표시되지 않기 때문에 펜티엄 M 계열 프로세서에서는 부팅을 거부할 수 있지만, `forcepae` 옵션으로 쉽게 우회할 수 있다.[30]
데비안(및 LMDE 2 (리눅스 민트 데비안 에디션)[31]), 슬랙웨어, LXLE 등 비 PAE 옵션을 여전히 제공하는 배포판은 일반적으로 "i386", "i486" 또는 "retro" 레이블을 사용한다.[32][33]
5. 3. macOS
macOS 타이거부터 macOS 스노우 레퍼드까지는 IA-32 프로세서에서 PAE와 NX 비트(NX bit)를 지원했다.[23] 스노우 레퍼드는 IA-32 프로세서를 지원하는 마지막 버전이었다. x86-64 프로세서에서는 모든 macOS 버전이 4단계 페이징(PAE가 아닌 IA-32e 페이징)을 사용하여 4GB 이상의 메모리를 주소 지정한다. Mac Pro 및 Xserve 시스템은 최대 64GB의 RAM을 사용할 수 있다.[23]
5. 4. 윈도
PAE는 다음의 32비트 버전의 윈도우에서 지원된다.[43][44]
윈도 버전 | 32비트 에디션 | 64비트 에디션 |
---|---|---|
윈도우 2000 프로페셔녈, 서버 | 4 GB | 없음 |
윈도우 2000 어드밴스드 서버 | 8 GB | 없음 |
윈도우 2000 데이터센터 | 32 GB | 없음 |
윈도우 XP 스타터 | 512 MB | 없음 |
윈도우 XP 홈 & 미디어 센터 | 4 GB | 없음 |
윈도우 XP 프로페셔널 | 4 GB | 128 GB |
윈도우 서버 2003 웹 | 2 GB | 없음 |
윈도우 서버 2003 스몰 비지니스, 홈, 스토리지 | 4 GB | 없음 |
윈도우 서버 2003 스토리지 서버 | 4 GB | 없음 |
윈도우 서버 2003 R2 스탠다드 에디션 | 4 GB | 32 GB |
윈도우 서버 2003 스탠다드 에디션 (SP1) | 4 GB | 32 GB |
윈도우 서버 2003 스탠다드 에디션 (SP2) | 4 GB | 32 GB |
윈도우 서버 2003 엔터프라이즈 에디션 (SP1) | 16 GB | 없음 |
윈도우 서버 2003 R2 엔터프라이즈 에디션 | 64 GB | 1 TB |
윈도우 서버 2003 데이터센터 (SP1) | 128 GB | 없음 |
윈도우 서버 2003 R2 데이터센터 (SP1) | 128 GB | 1 TB |
윈도우 서버 2003 R2 데이터센터 (SP2) | 128 GB | 2 TB |
윈도우 비스타 스타터 | 1 GB | 없음 |
윈도우 비스타 홈 베이직 | 4 GB | 8 GB |
윈도우 비스타 홈 프리미엄 | 4 GB | 16 GB |
윈도우 비스타 비지니스, 엔터프라이즈, 얼티밋 | 4 GB | 128 GB |
윈도우 서버 2008 스탠다드, 웹 | 4 GB | 32 GB |
윈도우 서버 2008 엔터프라이즈, 데이터센터 | 64 GB | 2 TB |
윈도우 7 스타터 | 2 GB | 없음 |
윈도우 7 홈 베이직 | 4 GB | 8 GB |
윈도우 7 홈 프리미엄 | 4 GB | 16 GB |
윈도우 7 프로페셔널, 엔터프라이즈, 얼티밋 | 4 GB | 192 GB |
윈도 서버 2008 R2 파운데이션 | 없음 | 8 GB |
윈도 서버 2008 R2 스탠다드 | 없음 | 32 GB |
윈도 서버 2008 R2 엔터프라이즈, 데이터센터, 아이태니엄 | 없음 | 2 TB |
32비트 버전의 마이크로소프트 윈도우는 PAE를 지원하지만, 일부 드라이버는 4GB를 초과하는 물리 주소를 만나면 불안정해지는 문제가 발생할 수 있다.[16]
초기 윈도우 XP 및 윈도우 XP SP1은 PAE 모드를 사용하여 RAM을 4GB 주소 제한 이상으로 확장할 수 있었다. 그러나 타사 드라이버와의 호환성 문제로 인해 마이크로소프트는 윈도우 XP 서비스 팩 2에서 이 기능을 제거했다. 윈도우 XP SP2 이후 버전에서는 no-execute (NX) 또는 execute-disable (XD) 기능이 있는 프로세서에서 NX를 활성화하기 위해 기본적으로 PAE 모드로 실행된다.[20] NX 비트는 페이지 테이블 항목의 63비트에 있으며, PAE가 없으면 32비트 시스템의 페이지 테이블 항목은 32비트만 있으므로 NX 기능을 사용하려면 PAE 모드가 필요하다. 그러나 32비트 윈도우의 "클라이언트" 버전(윈도우 XP SP2 이상, 윈도우 비스타, 윈도우 7)은 드라이버 호환성을 위해 물리 주소 공간을 처음 4GB로 제한한다.[16]
윈도우 8 이상 릴리스는 NX 및 SSE2 외에도 PAE를 지원하는 프로세서에서만 실행된다.[21][22]
5. 5. 기타 운영 체제
NetBSD는 커널 빌드 옵션으로 PAE를 지원한다. FreeBSD는 4.9부터 시작하는 4.x 시리즈, 5.1부터 시작하는 5.x 시리즈, 그리고 모든 6.x 이상 버전에서 PAE를 지원하며, 커널 `PAE` 구성 옵션이 필요하다. 로드 가능한 커널 모듈은 모듈이 PAE를 사용하여 빌드된 경우에만 PAE가 활성화된 커널에 로드될 수 있다. FreeBSD 배포판의 바이너리 모듈은 PAE를 사용하여 빌드되지 않으므로 PAE 커널에 로드할 수 없다. 모든 드라이버가 4GB 이상의 물리적 메모리를 지원하는 것은 아니며, 해당 드라이버는 PAE가 사용된 시스템에서 제대로 작동하지 않는다.[34]OpenBSD는 2006년 표준 GENERIC i386 커널부터 PAE를 지원해 왔으며, GeNUA mbH가 초기 구현을 지원했다.[35] 5.0 버전부터 PAE는 일련의 변경 사항을 거쳤는데, 특히 pmap(9)을 참조하여 PMAP에 대한 i386 MMU 처리 변경 사항이 있다.[36]
솔라리스는 Solaris 7 버전부터 PAE를 지원한다. 그러나 PAE 지원을 명시적으로 포함하지 않은 7 버전에서 사용되는 타사 드라이버는 PAE가 사용된 시스템에서 오류가 발생하거나 제대로 작동하지 않을 수 있다.[37][42]
하이쿠는 R1 알파 2 출시 이후 PAE에 대한 초기 지원을 추가했으며, R1 알파 3 출시와 함께 공식적으로 지원된다.
ArcaOS는 4GB 경계 이상의 RAM 디스크를 생성하기 위한 목적으로 PAE를 제한적으로 지원한다.[38]
6. 64비트 환경에서의 확장
x86-64 프로세서의 네이티브 롱 모드에서 주소 변환 방식은 PAE를 사용하지만, 512개의 항목을 가진 4단계 페이지 맵(page-map level 4) 테이블을 추가하고, 보호 모드에서 4개였던 페이지 디렉터리 포인터 테이블의 항목 수를 512개로 확장한다. 이는 가상 페이지 번호의 48비트를 변환하여 최대 256TB의 가상 주소 공간을 제공한다. 일부 프로세서의 경우 512개의 항목을 가진 5단계 페이지 맵(page-map level 5 table)(Intel 5-level paging)을 사용하는 모드를 활성화할 수 있다. 이는 가상 페이지 번호의 57비트를 변환하여 최대 128PB의 가상 주소 공간을 제공한다.[10]
AMD사의 AMD64 아키텍처 및 인텔의 호환 가능한 Intel 64 아키텍처에서는 PAE 페이지 테이블 엔트리의 구조를 유지하면서 512개의 엔트리를 가진 4단계 페이지 테이블 구조를 사용하여 가상 주소 공간을 48비트, 물리 주소 공간을 52비트까지 확장했다. 또한, 사용자 명령어 세트는 64비트로 어드레싱이 가능하며, 2008년 4월 기준으로 일반화되었다.
이러한 확장을 구현한 프로세서를 IA-32의 PAE 호환으로 사용하는 경우, 물리 주소 공간의 범위는 64비트 모드에서 사용했을 때와 동일하다. 이 x64의 페이지 테이블 엔트리는 NX 비트도 지원하므로, 4GB의 물리 공간만 지원하는 윈도우 XP SP3 등의 운영 체제에서도 데이터 실행 방지를 위해 유효하게 사용될 수 있다.
참조
[1]
서적
Dual-Core Intel® Xeon® Processor 2.80 GHz Specification Update
https://www.intel.co[...]
Intel Corporation
2006-10-01
[2]
서적
AMD Athlon™ Processor x86 Code Optimization Guide
http://pdf.datasheet[...]
AMD, Inc.
2017-04-13
[3]
서적
Pentium Pro and Pentium II System Architecture
https://books.google[...]
Addison-Wesley Professional
1998-01-01
[4]
웹사이트
Operating Systems and PAE Support
https://learn.micros[...]
2023-07-11
[5]
웹사이트
PAE
https://help.ubuntu.[...]
[6]
서적
AMD Athlon™ Processor x86 Code Optimization Guide
http://pdf.datasheet[...]
AMD, Inc.
2017-04-13
[7]
웹사이트
AMD Athlon 500 - AMD-K7500MTR51B C
https://www.cpu-worl[...]
2023-07-11
[8]
웹사이트
AMD-762 System Controller
http://pdf.datasheet[...]
[9]
웹사이트
Volume 2: System Programming
https://www.amd.com/[...]
AMD Corporation
2023-07-11
[10]
웹사이트
Volume 2: System Programming
https://www.amd.com/[...]
AMD Corporation
2023-07-11
[11]
웹사이트
Volume 3 (3A, 3B, 3C & 3D): System Programming Guide
https://www.intel.co[...]
Intel
2023-07-11
[12]
서적
Pentium® III Xeon™ Processor at 500 and 550 MHz Datasheet
Intel Corporation
[13]
서적
Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A
https://www.intel.co[...]
Intel
2023-10-28
[14]
웹사이트
Coreinfo - Sysinternals
https://learn.micros[...]
Microsoft
2023-07-11
[15]
웹사이트
Detecting your Hardware
http://www.gentoo-wi[...]
Gentoo
2008-10-08
[16]
웹사이트
Pushing the Limits of Windows: Physical Memory
http://blogs.technet[...]
2008-07-21
[17]
웹사이트
Memory Limits for Windows releases
http://msdn2.microso[...]
Microsoft
2007-12-05
[18]
웹사이트
Intel Physical Addressing Extensions (PAE) in Windows 2000
http://support.micro[...]
Microsoft
2007-10-26
[19]
웹사이트
Overview of Windows Server 2003 R2 Datacenter Edition
https://technet.micr[...]
Microsoft
[20]
웹사이트
The RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 or later version (MSKB 888137)
http://support.micro[...]
Microsoft
[21]
웹사이트
How To Check If Your Processor Supports PAE, NX And SSE2 For Windows 8 Installation
http://www.technize.[...]
Technize
2012-11-02
[22]
웹사이트
PAE/NX/SSE2 Support Requirement Guide for Windows 8
https://learn.micros[...]
Microsoft Docs
2023-07-11
[23]
웹사이트
Road to Mac OS X 10.6 Snow Leopard: 64-Bits
http://www.appleinsi[...]
2008-09-26
[24]
메일링리스트
2.3.23-pre4 x86 64 GB RAM changes [HIGHMEM patch] explained a bit
http://lkml.indiana.[...]
1999-10-20
[25]
서적
Professional Linux Kernel Architecture
https://books.google[...]
2010-03-11
[26]
웹사이트
x86 Specifics for Fedora 11
http://docs.fedorapr[...]
[27]
웹사이트
Xubuntu 12.04 released
http://xubuntu.org/n[...]
2012-04-26
[28]
웹사이트
PAE
https://help.ubuntu.[...]
[29]
웹사이트
RHEL 6 Release Notes, 12.6. General Kernel Updates 12.6.1. Physical Address Extension (PAE)
https://access.redha[...]
RedHat
[30]
웹사이트
The kernel's command-line parameters
https://www.kernel.o[...]
[31]
웹사이트
Known problems in Linux Mint Debian
http://linuxmint.com[...]
[32]
웹사이트
Precise Puppy
http://puppylinux.or[...]
PuppyLinux
[33]
웹사이트
2.1. Supported Hardware
https://www.debian.o[...]
SPI
[34]
웹사이트
FreeBSD i386 5.5-RELEASE PAE(4) man page
https://man.freebsd.[...]
2003-04-08
[35]
웹사이트
PAE for OpenBSD/i386 by Michael Shalayeff, NYC
https://www.openbsd.[...]
2006-01-01
[36]
manpage
pmap
OpenBSD
[37]
웹사이트
Added Support for Physical Address Extension (PAE) Mode
https://docs.oracle.[...]
2018-03-23
[38]
웹사이트
ArcaOS 5.0 from Arca Noae is the new release of OS/2 for the 21st Century
https://www.arcanoae[...]
2019-12-16
[39]
웹사이트
2012年3月9日号 12.04の開発・インストーラーとPAE非対応CPU・Clickpad Detection・Ubuntu Magazine Japan Vol.07・juju Charm Contest・FCM#58・UWN#255
https://gihyo.jp/adm[...]
技術評論社
2012-03-09
[40]
웹인용
FreeBSD PAE(4) man page
http://www.FreeBSD.o[...]
2007-11-26
[41]
웹인용
Wonderful World of Linux 2.6
http://kniggit.net/w[...]
2004-01-10
[42]
웹인용
Solaris 7 5/99 Release Notes (Intel Platform Edition), Appendix B: Hardware Compatibility List and Device Configuration Guide (Intel Platform Edition) 5/99
http://docs.sun.com/[...]
2007-11-26
[43]
웹인용
Memory Limits for Windows releases
http://msdn2.microso[...]
마이크로소프트
2007-12-10
[44]
웹인용
Intel Physical Addressing Extensions (PAE) in Windows 2000
http://support.micro[...]
마이크로소프트
2007-12-29
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com