메모리가 바이트 주소를 지정할 수있는 경우
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
일반적인 Google 검색에 최대 8GB 또는 16GB가 표시됩니다.
그게 어때? 또한 운영 체제에 따라 어떻게 달라 집니까?
메모리가 바이트 주소를 지정할 수있는 경우
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
일반적인 Google 검색에 최대 8GB 또는 16GB가 표시됩니다.
그게 어때? 또한 운영 체제에 따라 어떻게 달라 집니까?
답변:
여러 가지 인터리빙 요소가 있습니다.
우선, 2 64 바이트 (16 엑시 바이트)의 물리적 RAM 이있는 시스템을 절대로 조립할 수 없습니다 .
둘째, 아키텍처가 64 비트 포인터를 사용한다고해서 해당 포인터의 모든 비트가 실제로 사용되는 것은 아닙니다. 특히, 현재 x86-64 CPU (일명 AMD64 및 인텔의 현재 64 비트 칩)는 실제로 48 비트 주소 라인 (AMD64) 및 42 비트 주소 라인 (인텔)을 사용합니다 ( http://en.wikipedia.org/wiki 참조) . 이론적으로 256 테라 바이트의 물리적 RAM을 허용합니다 / X86_64 # Virtual_address_space_details ).
둘째, 마더 보드에는 물리적 및 논리적으로 지원할 수있는 RAM 용량에 대한 자체 제한이 있습니다. 실제로는 RAM에 사용할 수있는 슬롯이 너무 많습니다. "논리적"한계에 관해서는, 이것이 왜 x86-64 (메모리 컨트롤러가 CPU 자체로 마이그레이션 된 지 오래 되었음)의 경우인지는 아직 완전히 이해하지 못하지만, 여전히 존재합니다. 아마도 설계 및 제조 비용을 절감하기 위해 주소 라인에서 코너를 절단하고있을 것입니다.
셋째, 운영 체제는 효율적으로 지원할 수있는 RAM의 양에 대한 내부 제한이있을 수 있습니다. 실제로 이것은 실제로 존재하지 않는 메모리의 사용을 추적하기 위해 지나치게 큰 데이터 구조가 필요하지 않도록하기위한 것입니다. 마지막으로 확인한 Linux는 x86-64에서 프로세스 당 128TB의 가상 주소 공간을 허용하며 이론적으로 64TB의 물리적 RAM을 지원할 수 있습니다.
넷째, 일부 운영 체제 (예 : Windows)는 더 많은 RAM을 원할 경우 사용자가 더 비싼 버전으로 업그레이드 할 수있는 전술로 사용할 수있는 RAM의 양을 인위적으로 제한합니다 (Windows 7 Starter는 2GB, Home Basic은 8, Home Premium으로 제한됨) Professional 이상은 192GB이며 Windows Server 릴리스에는 훨씬 더 높은 제한이 있습니다.
MS Windows를 사용하는 경우 최대 메모리는 운영 체제에 의해 제한됩니다.
Windows 7의 경우 최대 값은 다음과 같습니다.
Windows Server 2008의 범위는 엔트리 레벨의 경우 8GB에서 최상위 라인의 경우 2TB입니다.
전체 목록 은 http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx 를 참조 하십시오 .
이러한 제한은 주로 마케팅상의 이유입니다. 더 저렴한 버전을 제한함으로써 고급 버전 (비교적으로)이 더 매력적입니다.
모든 리눅스가 지원할 수는 없지만 최근 리눅스 빌드는 약 32TB의 RAM에서 작동한다고 생각합니다.
64 비트 시스템은 최대 2 개의 64 개의 주소 지정 가능 장치 를 처리 할 수 있어야합니다 (지난 수십 년 동안 설계된 아키텍처에서 주소 지정 가능 장치는 바이트, 일명 옥텟). "기가 바이트"를 주소 지정 가능한 단위 2 30 개로 정의하면 2 34 기가 바이트가 같은 수를 나타내는 또 다른 방법입니다.
Google 검색에서 그처럼 우스운 작은 결과가 나왔습니까? 아마 당신이 찾은 페이지가 특정 모델의 상당히 저렴한 박스에서 구매할 수있는 RAM의 양에 대해 이야기했을 수도 있습니다.-매우 비싸지 않은 박스에도 훨씬 더 많은 RAM을 가질 수 있습니다 .
운영 체제는 주소 지정 가능한 메모리의 양을 가장 확실하게 할 수 있고 제한합니다 (예를 들어 페이지 테이블의 크기를 제한하여 구성 할 수 있음). 몇 가지에 집중하지 않고 더 구체적으로 특정의 OS에서의 그룹).
원하는만큼의 RAM을 가질 수 있지만 다른 사람이 언급 한 것처럼 운영 체제와 실행중인 응용 프로그램에 따라 다릅니다.
하드 디스크와 같은 다른 하드웨어에도 집중된 굶주린 CPU 집약적 응용 프로그램을 실행하는 경우 완전히 별도의 시스템에서 두 번째 CPU를 진지하게 고려하는 것이 가장 좋습니다. 예를 들어 데이터베이스 응용 프로그램과 전자 메일 서버를 모두 별도의 컴퓨터에서 실행합니다.
얼마나 많은 메모리를 가지고 있는지는 중요하지 않습니다. 오늘날 시장에서는 전체 시스템이 중단됩니다. 단일 CPU는 단순히 멀티 태스킹을 예상 한대로 처리 할 수 없습니다.
메모리가 많은 단일 시스템의 경우 설치된 메모리 양에 관계없이 동일한 시스템에서 여러 응용 프로그램을 실행하는 경우 더 좋지만 훌륭하지는 않습니다. 이것이 바로 대기업이 64 비트 아키텍처를 사용하여 더 많은 메모리를 처리 할뿐만 아니라 두 대 이상의 서버로 전체 부하를 분산시키는 이유입니다.
성능에 대해 진지하게 생각한다면 분명히 64 비트가되지만 두 번째 서버와의 부하 분산을 고려하십시오.
나는 그 길을갔습니다-최대 RAM으로 단일 컴퓨터를 구성했습니다. 그러나 여러 응용 프로그램을 실행할 때 여전히 개처럼 실행됩니다. CPU 자체가 처리 할 수 없기 때문입니다.
내 조언은 당신의 벅을 메모리에 저장하고 두 번째 서버를 구입 한 다음 두 서버를로드 밸런스하는 것입니다. 훨씬 간단 해집니다. 일단 손에 닿으면 더 많은 처리 능력과 속도가 필요할 때 쉽게 확장 할 수 있습니다.
또한 64 비트 아키텍처 시스템은 32 비트 소프트웨어에 대처할 수 있지만 32 비트 시스템에서는 운영 체제를 포함하여 32 비트 이하의 응용 프로그램으로 제한됩니다.
전체 시장이 하드웨어 및 소프트웨어 측면에서 64 비트로 가고 있기 때문에 장기적으로 64 비트로 이동하는 것이 좋지만 실망 할 수 있기 때문에 버킷로드 메모리가있는 단일 시스템으로 모두 스 쿼싱한다는 아이디어는 잊어 버려야합니다.
"로드 밸런싱"이 무엇인지 확실하지 않으면 구글입니다.
엑사 바이트 "EB"이상이 필요할 수 있다고 생각합니다.
이 32 비트 프로세서는 2 32 B = 4GB를 사용할 수 있지만 "반복 된 주소의 경우 1GB이므로"최대 3GB가 걸립니다.
즉, 64 비트 프로세서는 2 64 B = 16 EB를 사용할 수 있지만 반전 된 주소가 어떻게 사용되는지는 알 수 없습니다. 따라서 64 비트 프로세서는 1 개 이상의 EB를 사용합니다. 이 사양은 PC가 사용하는 OS 또는 모델에 따라 다릅니다.
예를 들어 인텔 또는 AMD CPU를 사용하면 실제 메모리와 가상 메모리 모두에 몇 가지 제한이 있습니다. 다른 사람들은 하드웨어 핀아웃 및 마더 보드 제한 사항에 대해 이야기했지만 내부 제한 사항도 있습니다.
MMU의 터미널 페이지 테이블 항목에는 52 개의 유효 비트의 물리적 주소가 포함되며 이론적으로 최대 4096TB의 물리적 RAM을 매핑 할 수 있습니다.
MMU는 최상위 수준이 512 × 512GB 항목으로 구성된 4 단계 페이지 테이블을 구현합니다. 따라서 가상 메모리는 256TB로 제한됩니다.
내가 아는 한, 모든 64 비트 운영 체제는 DMAP (직접 맵)을 구현하는데 매우 편리합니다. 그러나 가상 메모리는 256TB로 제한되므로 DMAP의 크기도 제한됩니다. 일반적으로 128TB는 사용자 모드 용이며 128TB는 커널 용입니다. 커널에 대한 128TB 중 DMAP에 최대 절반이 예약 될 수 있습니다. DMAP의 유용성으로 인해 운영 체제는 일반적으로 실제 메모리를 DMAP가 처리 할 수있는 것으로 제한합니다.
따라서 지원되는 실제 메모리는 인텔 / AMD 용의 모든 64 비트 운영 체제가 약 64TB로 제한되어 일반 커널 가상 메모리는 64TB, 사용자 가상 메모리는 128TB입니다.
-
CPU 내부에서 CPU 캐시는 또한 저장하는 물리적 주소 비트 수에 제한이 있습니다. 각 추가 주소 비트는 캐시 태그에 더 많은 트랜지스터를 사용하기 때문입니다. 메모리가 DMI 링크를 통해 처리 될 수 있기 때문에 DRAM 컨트롤러 핀 제한이 반드시 최종 단어 일 필요는 없습니다.
다른 CPU 아키텍처 (예 : ARM, PowerPC 등)에는 다른 제한이 있습니다.