Programing

32 비트 머신이 얼마나 많은 메모리에 액세스 할 수 있습니까?

lottogame 2020. 12. 31. 07:51
반응형

32 비트 머신이 얼마나 많은 메모리에 액세스 할 수 있습니까?


32 비트 또는 64 비트 시스템은 무엇을 의미합니까?

그것은 프로세서 아키텍처입니다. 32 비트 머신은 64 비트 머신과 같은 방식으로 32 비트 데이터를 동시에 읽고 쓸 수 있습니다….

32 비트 머신이 액세스 할 수있는 최대 메모리는 얼마입니까?

그것이 2^32=4Gb(4Gigabit = 0.5 기가 바이트)

그것은 4Gb 램을 의미합니까?

64 비트 시스템에 대해 동일한 방식을 고려하면 16ExbiBytes의 램을 가질 수 있습니다. 가능합니까?

내 개념이 맞습니까?


예, 32 비트 아키텍처는 최대 4GB의 메모리 주소 지정으로 제한됩니다. 운영 체제에 따라 예약 된 주소 공간으로 인해이 숫자를 더 줄일 수 있습니다.

이 제한은 PAE (Physical Address Extension) 사용을 통해 특정 32 비트 아키텍처에서 제거 할 수 있지만 프로세서에서 지원해야합니다. PAE는 프로세서가 4GB 이상의 메모리에 액세스 할 수 있도록하지만 단일 프로세스에서 사용할 수있는 가상 주소 공간의 양을 변경하지는 않습니다. 각 프로세스는 여전히 최대 4GB의 주소 공간으로 제한됩니다.

그리고 예, 이론적으로 64 비트 아키텍처는 1680 만 테라 바이트 또는 2 ^ 64 바이트의 메모리를 처리 할 수 ​​있습니다. 그러나 나는 현재 대중적인 구현이 이것을 완전히 지원한다고 믿지 않는다. 예를 들어 AMD64 아키텍처는 최대 1 테라 바이트의 메모리 만 처리 할 수 ​​있습니다. 또한 운영 체제는 지원되는 주소 지정 가능 메모리의 양에도 제한을 둡니다. 많은 Windows 버전 (특히 가정용 또는 기타 비 서버용으로 설계된 버전)은 임의로 제한됩니다.


일반적으로 32 비트 또는 64 비트 컴퓨터에서 의미하는 것은 외부에서 볼 수있는 ( "아키텍처 된") 범용 정수 레지스터의 크기입니다.

이것은 하드웨어가 어떻게 구축되는지와는 거의 관련이 없습니다. 예를 들어 (오래 사용되지 않는) Intel Pentium Pro를 생각해 봅시다. 최대 36 비트 물리적 주소를 지원하고 64 비트 폭의 데이터 버스가 있으며 지원되는 모든 피연산자 유형에 대한 내부 계산이 단일 레지스터 세트에서 수행되지만 일반적으로 "32 비트"프로세서로 간주됩니다. 따라서 가장 큰 부동 소수점 유형을 지원하기 위해 폭이 80 비트입니다.

적어도 Intel 프로세서의 경우 더 큰 물리적 주소 지정을 오랫동안 사용할 수 있었지만 32 비트 프로세서에서 한 프로세스의 주소 공간에서 직접 볼 수있는 최대 메모리 양도 4GB로 제한됩니다 ( 32 비트 주소 지정). 36 비트 물리적 주소 지정을 사용하면 최대 64GB의 RAM 주소를 지정할 수 있지만 지정된 시간에 직접 볼 수있는 것은 4GB뿐입니다.

64 비트 컴퓨터로의 변경은 대부분 사용자에게 표시되는 내용 (또는 어셈블리 언어 수준의 코드)을 변경하는 것과 관련이 있습니다. 다시, 당신이 보는 것은 실제와 거의 동일하지 않습니다. 예를 들어, 대부분의 64 비트 코드는 포인터 / 주소를 64 비트로 간주하지만 실제 프로세서는 그렇게 큰 주소를 지원하지 않습니다. 현재 CPU는 48 비트 가상 주소와 (적어도 제가 아는 한) 최대 40 비트의 물리적 주소 지정을 지원합니다. 다른 한편으로, 그들은 더 큰 메모리가 실용화 될 때 소프트웨어에 전혀 영향을주지 않고 물리적 주소 지정을 48 비트로 확장 할 수 있도록 미래에 설계되었습니다. 48 비트 가상 주소 지정을 늘려도 일반적인 경우 운영 체제 커널의 일부에만 영향을 미칩니다 (일반 코드는 영향을받지 않습니다.

그래서, 더 : 64 비트 컴퓨터는 않습니다 하지 정말 해결 신체의 64 비트까지 지원하지, 하지만 가장 일반적인 64 비트 소프트웨어는 직접 많은 RAM 것을 해결 지원을했던 미래의 프로세서와 호환성을 유지해야한다.


정말 기본적인 아이디어로 돌아가서 메모리 주소에 32 비트가 있습니다. 그것은 2 ^ 32 개의 고유 한 주소 조합으로 작동합니다. 관례 적으로 각 주소는 1 바이트의 데이터를 가리 킵니다. 따라서 총 2 ^ 32 바이트의 데이터에 액세스 할 수 있습니다.

32 비트 OS에서 각 레지스터는 32 비트 또는 4 바이트를 저장합니다. 클럭 사이클 당 32 비트 (1 워드)의 정보가 처리됩니다. 개념적으로 특정 1 바이트에 액세스하려면 비트 논리 연산을 수행하여 개별 바이트 (예 : 바이트 0, 바이트 1, 바이트 2, 바이트 3 등)를 "추출"할 수 있습니다.

예를 들어 "dddddddd"를 얻으려면 "aaaaaaaabbbbbbbbccccccdddddddd"와 논리 AND를 "00000000000000000000000011111111"로 지정합니다.


기본적으로 32 비트 아키텍처는 예상대로 4GB를 처리 할 수 ​​있습니다. 프로세서가 AWE 또는 PAE 와 같은 더 많은 데이터를 처리 할 수있는 몇 가지 기술이 있습니다 .


예, 32 비트 시스템에서 사용 가능한 최대 메모리 양은 약 4GB입니다. 실제로, OS에 따라 예약 된 주소 공간의 일부로 인해 더 적을 수 있습니다. 예를 들어 Windows에서는 3.5GB 만 사용할 수 있습니다.

64 비트에서는 실제로 2 ^ 64 바이트의 메모리 주소를 지정할 수 있습니다. 그런 것은 아니지만 오래 전에 640kb 이상의 메모리가 필요하다는 동일한 말이있었습니다.


당신의 개념이 옳지 않습니다. 올바르게 설정하려면 잘못 답변 한 질문에 대한 답변이 필요합니다.

32 비트 또는 64 비트 시스템은 무엇을 의미합니까?

질문에 대한 대답은 "CPU에서 중요한 것은 32 비트 또는 64 비트"입니다. 그래서 질문은 그게 중요한 것이 무엇입니까? 많은 사람들이 머신이 32 비트인지 64 비트인지를 결정하는 데이터 버스의 폭을 말합니다. 그러나 최신 32 비트 프로세서에는 32 비트 또는 64 비트 폭 데이터 버스가 없습니다. 대부분의 32 비트 시스템은 최소한 더 많은 RAM을 지원하기 위해 36 비트를 사용합니다. 대부분의 64 비트 프로세서에는 이미 엄청난 양의 메모리가 있기 때문에 48 비트 폭의 데이터 버스가 없습니다.

그래서 나에 따르면 32 비트 또는 64 비트 기계는 계산에 사용되는 범용 레지스터의 크기 또는 컴퓨터에서 사용하는 "자연어 크기"에 의해 결정됩니다.

32 비트 OS는 다릅니다. 64 비트 컴퓨터에서 32 비트 OS를 실행할 수 있습니다. 또한 64 비트 OS에서 32 비트 응용 프로그램을 실행할 수 있습니다. 차이점을 이해하지 못하면 다른 질문을 게시하십시오.

따라서 프로세서에서 처리 할 수있는 최대 RAM 양은 프로세서에서 적절한 주소 지정 모드가 켜져있는 경우 2 ^ (비트 단위의 데이터 버스 너비)입니다.

또한 데이터 버스와 메모리 뱅크 사이에 멀티 플렉스를 도입하여 뱅크를 선택한 다음 RAM 주소를 지정하는 (두 단계로) 누군가를 막을 수 없습니다. 이렇게하면 더 많은 RAM을 처리 할 수 ​​있습니다. 그러나 그것은 비실용적이고 매우 비효율적입니다.


기본적으로 "x- 비트 컴퓨터"라는 용어는 컴퓨터에 의존하지 않습니다. 그렇기 때문에 32 비트 시스템에서 64 비트 시스템으로 (또는 그 반대로) 마이그레이션하기 위해 프로세서 나 기타 하드웨어를 변경할 필요가 없습니다.

32 비트 및 64 비트는 컴퓨터에서 실행되는 OS의 주소 지정 기능을 나타냅니다.

그러나 여전히 x 비트 운영 체제가 2 ^ x GB 메모리를 처리 할 수 ​​있다는 의미는 아닙니다. "GB"의 'B'는 "비트"가 아니라 "바이트"를 의미하기 때문입니다. 1 바이트는 8 비트와 같습니다.

실제로 32 비트 시스템은 2 ^ 32 / 8 = 2 ^ 29GB 메모리 공간을 처리 할 수 ​​없지만 OS에 일부 메모리를 예약해야합니다.

3GB 바로 아래입니다.

참조 URL : https://stackoverflow.com/questions/8869563/how-much-memory-can-be-accessed-by-a-32-bit-machine

반응형