2013-07-10 2 views
1

현재 운영 체제 원칙 Galvin에 의해 운영됩니다. 나는 그것을 읽는 것을 즐긴다. 그러나 의미심장하게 나는 질문을 가지고있다.논리 주소 공간이 64 비트 및 32 비트 OS

64 비트 운영 체제를 사용하면 논리 주소 공간 (CPU가 생성하는)은 64 비트가 될 수 있습니까? 나는. 물리적 메모리에 많은 수의 프레임을 매핑 할 수 있습니다. 32 비트 OS를 사용하는 경우 CPU는 최대 2^32 논리 주소 공간을 생성 할 수 있습니다.

맞습니까?

답변

5

일종의이지만, 이러한 이름을 덜 유용하게 만드는 많은 기술이 있습니다.

먼저 운영 체제와 관련하여 두 가지 크기, 주소 크기 및 데이터 크기가 있습니다. 주소 크기는 사용 가능한 주소 공간의 크기를 결정하며 데이터 크기는 단일 단어 작업에서 사용할 수있는 데이터의 양을 결정합니다. 내 경험상, 운영 체제는 대개 데이터 크기로 식별되므로 주소 크기가 다른 것일 수 있습니다.

다음은 몇 가지 예의 아키텍처와 주소 및 데이터 크기입니다. 표에 나와 있듯이 오늘날 가장 보편적 인 32 비트 및 64 비트 아키텍처는 데이터 및 주소 크기가 동일하므로 진술이 부분적으로 정확합니다. 16 비트 모드의 x86 프로세서는 데이터 크기보다 주소 크기가 큽니다. 이것은 주소 지정에 사용되는 추가 세그먼트 레지스터로 인해 아키텍처가 덜 제한적으로 발생합니다.

 
       Address size  Data size 
x86 16-bit  20 bits   16 bits 
x86 32-bit  32 bits   32 bits 
x86 64-bit  64 bits   64 bits 
ARM 32-bit  32 bits   32 bits 
ARM 64-bit  64 bits   64 bits 

그러나 주소 크기는 반드시 논리 주소 공간의 크기를 나타낼 필요는 없습니다. 공간을 더 작은 영역으로 제한하는 제한이있을 수 있습니다. 예를 들어 현재 x86-64 프로세서는 64 비트 주소 공간을 지원하지 않습니다. 대신, 어떤 주소의 상위 16 비트가 비트 47의 부호 확장이되어야하며, 2 주소 공간, 16 EiB 대신 256 TiB를 허용해야합니다. 이것은 프로세서에서 사용되어야하는 주소 라인의 수를 줄이면서 현재 사용하는 것보다 훨씬 많은 것을 허용합니다.

마지막으로 지금까지 논리적 또는 가상 주소 공간을 참조하는 것이 전부였습니다. 물리적 주소 공간은 다른 크기를 가질 수 있습니다. 최신 32 비트 x86 시스템은 36 비트 물리적 주소를 사용할 수있는 실제 주소 확장이 있고 x86-64 시스템은 52 비트 실제 주소 공간으로 제한되어 있지만 메모리 컨트롤러/마더 보드에 의해 더 제한 될 수 있습니다. 논리적 주소 공간이 물리적 주소 공간보다 클 때 전체 물리적 주소 공간을 한 번에 여러 위치에 매핑 할 수 있습니다. 논리 주소 공간이 더 작 으면 동시에 여러 개의 완전한 주소 공간을 실제 메모리에 저장할 수 있습니다.

관련 문제