“8 비트, 16 비트, 32 비트, 64 비트”시스템을 결정하는 주소 버스 크기 또는 데이터 버스 크기입니까? 관련이 없습니다. 그러나 나는 이것을 읽었 습니다

나의 간단한 이해는 다음과 같습니다.

메모리 (RAM)는 비트로 구성되며, 8 개의 그룹은 바이트를 형성하고, 각각은 어드레싱 될 수 있고, 따라서 바이트 어드레싱 가능한 메모리로 구성된다.

주소 버스는 1 바이트 메모리의 위치를 ​​저장합니다.

주소 버스의 크기가 32 비트 인 경우 최대 2 개의 32 개 숫자를 보유 할 수 있으므로 최대 2 개의 32 바이트의 메모리 = 4GB의 메모리 및 그보다 큰 메모리는 쓸모가 없습니다.

데이터 버스는 메모리에 쓰거나 읽을 값을 보내는 데 사용됩니다. 크기가 32 비트 인 데이터 버스가있는 경우 한 번에 최대 4 바이트를 메모리에 쓰거나 읽을 수 있습니다. 이 크기와 가능한 최대 메모리 크기 사이에는 아무런 관련이 없습니다.

그러나 나는 이것을 읽었 습니다 .

대부분의 시스템은 바이트 주소 지정이 가능하지만 프로세서가 가능한 한 많은 데이터를 이동시키는 것이 좋습니다. 이것은 데이터 버스에 의해 수행되며 데이터 버스의 크기는 8 비트 시스템, 16 비트 시스템, 32 비트 시스템, 64 비트 시스템 등의 이름입니다. 데이터 버스의 폭이 8 비트 인 경우 단일 메모리 작업으로 8 비트를 전송할 수 있습니다. 데이터 버스의 너비가 32 비트 (쓰기시 가장 일반적) 인 경우 단일 메모리 작업에서 최대 32 비트를 이동할 수 있습니다.

이것은 데이터 버스의 크기가 OS에 이름, 8 비트, 16 비트 등을 부여하는 것입니다. 내 이해에 어떤 ​​문제가 있습니까?



답변

일반적으로 데이터 버스의 크기는 프로세서 레지스터의 크기에 의해 결정됩니다. 종종 OS 유형 (64 대 32)을 결정하는 프로세서 레지스터의 크기입니다. 실제 버스 크기는 기술적으로이 예와 다를 수 있지만 (예 : 8088) 견적 작성자가이 두 가지를 연결하는 경우는 거의 없습니다.

일반적으로 포인터 크기는 레지스터 크기를 따르지만 물리적 주소 버스 너비는 20에서 8086 16 비트와 같이 더 크거나 (48에서 AMD 64와 같이) 더 작을 수 있습니다.


답변

프로세서 내에서 레지스터 크기 및 메모리 처리입니다.

트릭을 사용하면 하나의 16 비트 프로세서에는 20 비트 주소 버스가 있으므로 프로세서 외부의 메모리가 아닙니다.


답변

“순수한”32 또는 64 비트 시스템은 없으므로 용어는 근사치입니다.

예를 들어, “메모리 (RAM)는 비트로 구성되며, 8 개 그룹은 바이트를 형성하며 각각 주소를 지정할 수 있습니다 . 흔하지는 않습니다. PC는 DIMM 모듈에 RAM이 있으며 너비는 64 비트입니다. 90 년대에는 SIMM이 있었으며 그 폭은 32 비트였습니다.

일부 시스템에서는 DIMM이 128 비트 데이터 버스 인 쌍을 이루거나 쌍을 이룰 수 있습니다 ( “갱단”/ “이중 채널”). 이 개념은 AMD와 Intel의 소위 “64 비트”프로세서보다 앞서 있습니다.

단일 DIMM의 64 비트 그룹은 실제로 8 바이트로 세분 될 수 있습니다. 그것은 CPU에 의해 투명하게 이루어졌습니다. 또한 64 비트를 4 * 16 비트, 2 * 32 비트로 분리하거나 64 비트를 모두 단일 변수로 사용할 수 있습니다.

그러나 가장 중요한 질문은 주소의 너비입니다. 메모리의 모든 바이트에는 고유 한 주소가 있지만 모든 비트가있는 것은 아닙니다. 즉, 단일 DIMM에서 얻는 64 비트에는 8 개의 주소가 있습니다. 이 중 가장 낮은 것은 항상 8의 배수입니다. 이제 CPU는 몇 개의 고유 한 주소를 지원합니까? 적어도 이론 상으로는 두 가지 일반적인 답변이 있습니다. 일부 CPU는 2 개의 32 개의 서로 다른 주소를 지원하고 일부는 2 64를 지원 합니다. 이 차이는 32 비트와 64 비트 시스템 사이에서 가장 일반적인 차이입니다.

실제로 오늘날 64 비트 시스템은 2 64 바이트 미만 의 RAM을 지원합니다. 그것은 비용이 들지 않으며 어쨌든 정상적인 PC에는 맞지 않을 것입니다. 그 많은 메모리는 수백만 톤에 달할 것입니다!


답변

둘 다 실제로.

CPU의 비트는 일반적으로 내부 레지스터의 크기를 나타냅니다. 32 비트 CPU에는 청크로 분할되거나 분할되지 않는 32 비트 레지스터가 있습니다.

모든 데이터를 메모리에서 레지스터로 직접 전송할 수 있지만 모든 데이터 버스 크기를 가질 수 있기 때문에 32 비트 데이터 버스가있는 32 비트 CPU를 사용하는 것이 좋습니다. 따라서 32 비트 CPU에는 일반적으로 32 비트 데이터 버스가있어 데이터를 쉽게주고받을 수 있습니다.

또한 두 가지 이유로 32 비트 주소 버스를 갖는 것이 좋습니다. 더 큰 주소 버스는 메모리 주소를 저장하기에 충분한 레지스터가 없거나 CPU가 메모리 주소 지정을위한 특수 레지스터를 필요로하기 때문에 간접 주소 지정을 더 어렵게 만듭니다 .Intel 8080과 같은 오래된 CPU는 8 비트였으며 16 비트 주소 버스. 반대로 레지스터보다 작은 주소 버스는 리소스 낭비 일뿐입니다. 더 작은 주소 버스를 사용하는 마이크로 컨트롤러가 있습니다.