2010-03-28 4 views
20

32 비트 프로세서와 64 비트 프로세서의 차이점을 이해하는 데 문제가 있습니다. 64 비트 프로세서가 한 번에 64 비트를 액세스 할 수있는 반면 32 비트 프로세서는 한 번에 32 비트를 액세스 할 수 있다는 것을 알고 있습니다. 그러나 한 번에 특정 비트 수에 액세스한다는 것은 정확히 무엇을 의미합니까?32 대 64 비트 ... 또는 정확히 '처리 정보'가 정확히 무엇입니까

+1

너무 모호하고 모호합니다. – Earlz

답변

24

실제 답변은 복잡합니다. 은유는 당신에게 기본적인 아이디어를 줄 전용 연구 외에 유일한 것입니다. Wallyk은 올바른 길을 걷고 있습니다.

몇 가지가 프로세서를 구동합니다. 하나는 초당 수행 할 수있는 작업의 수 (헤르츠 단위로 측정)입니다. 아키텍처가 간단한 답변을 방해하는 반면, 1Ghz 단일 코어 프로세서는 초당 1,000,000,000 번의 작업을 수행합니다. 대충.보다 구체적인 답변을 얻는 것은 가능하지만이 경우를 명확하게 설명하지는 않습니다.

프로세서는 메모리 컨트롤러 (i7), ALU 및 FPU 및 기타 특수 회로와 같은 다른 요소이기도하므로 대답하기 어려운 질문이기도합니다.

귀하의 의도와 목적에 따라 모든 프로세서에는 레지스터가 있습니다. 레지스터는 프로세서가 소량의 데이터를 저장할 때 스크래치 공간 (메모리보다 빠름)과 비슷합니다. 이들은 L1과 L2 (때로는 L3) 캐시에 의해 백업되며, 또한 엄청나게 빠릅니다. 기본적으로 64 비트는 스크래치 공간의 크기를 의미합니다 (프록시에 의해, 레지스터가 캐시에 연결되는 파이프, 데이터가 한꺼번에로드 및 아웃 됨).

큰 스크래치 공간은 캐시 또는 메모리에서 새로운 정보를 읽지 않고 더 많은 작업을 수행 할 수 있음을 의미합니다. 그러나 그것이 완료 될 수 있다고해서 그것이 항상 의미한다는 것을 의미하지는 않습니다. 일반적으로 프로그램은 64 비트 지원으로 컴파일해야 속도 향상을 얻을 수 있으며, 32 비트보다 큰 데이터를 조작하지 않는 한 일반적으로 차이점을 볼 수 없습니다. 그것은 시스템 프로그래머를위한 질문입니다.

또한 프로세서는 메모리의 내용 (사용중인 것과 사용하지 않은 것)을 확인해야합니다. 특수 레지스터를 사용하여 프로세서가이를 수행합니다. 32 비트 프로세서가 일반적으로 4GB 이상의 RAM을 처리 할 수없는 이유는이 레지스터의 크기와 관련이 있습니다. PAE와 같은 프로세서 확장은 32 비트 프로세서의 32 비트 운영 체제에서 64 기가 바이트의 RAM을 처리 할 수 ​​있지만 대부분의 OS는 일반적으로이를 지원하지 않습니다.

TL, DR, 64 비트 프로세서는 정확한 프로그래밍으로 더 많은 데이터 덩어리에서 동시에 작업을 수행하고 더 많은 메모리를 처리 할 수있는 가능성을 제공합니다. 그 다음엔 큰 차이가 없습니다.

편집 : 사람들이 "작업"에 대해 잘못된 생각을 가지지 않도록 내가 구체적으로 작업 (더하기, 곱하기 등)을 언급하지는 않습니다. 나쁘다, 나는 마이크로 프로세서 아키텍처에 대한 전체적인 소개보다는 질문에 대답하는 데 집중했다.

+4

프로그래머의 관점에서 보면 그것이 의미하는 바가 정확히 있습니다. 명령어 최적화와 같은 복잡한 작업이나 데이터가 캐시에 이미 저장되어 있는지 또는 메모리에서 가져와야하는지 여부를 고려하기 전에 Hertz는 작업이 완료되지 않은 경우에도 초당 수행되는 작업 수를 지정합니다. 일부 연산은 더 오래 걸립니다 (나누기/곱셈/모듈러스는 더하기/빼기 연산을 통해 연속적으로 작성되므로 메모 할 수 있음). 아마 downvote 및 비난보다는 답변/설명으로 나를 계몽하고 싶습니까? 응답을위한 장소가 아닌가? – emcee

+0

대단한 설명. 나는 애플이 64 비트 프로세서를 갖춘 iPhone5S를 출시했기 때문에 여기에있다. –

+0

@emcee 궁금한 점은 "32 비트 프로세서는 일반적으로 4GB 이상의 RAM을 처리 할 수 ​​없습니다"라고 말합니다. 64 비트의 RAM 제한은 무엇입니까? –

4

기본적으로 이는 같은 크기의 숫자에 대한 연산을 수행 할 수 있음을 의미합니다 (예 : 추가). 이보다 32 비트와 64 비트 아키텍처에는 차이점이 더 있습니다.

-3

처리 능력의 척도입니다. 오히려 4 명의 승객을 동반 할 수있는 차량, 즉 대략 같은 양의 에너지를 12로 나눕니다.

예를 들어, 32 비트는 4 바이트 또는 4 개의 일반 문자를 포함하고 64 비트는 8 바이트이며 로맨스 언어의 경우 8 자입니다. 해당 아키텍처 데이터 너비에 대한 여러 종류의 작업을 한 번에 조작 할 수 있습니다.

또 다른 방법은 정수가 아키텍처와 얼마나 직접적으로 관련 될 수 있는지를 보는 것입니다. 0 255/-128 16 비트
127 행 : 0 65,535/32 비트 -32768
32767에 0/-2,147,483,648 4,294,967,295 이러한 폭의 각각에 대해, 해당 범위

8 비트 2,147,483,647
64 비트 : 0/-9,223,372,036854775808 18,446,744,073,709,551,615에 9,223,372,036854775807

+2

전혀 사실이 아닙니다. 32 비트 프로세서가 반드시 64 비트보다 강력하지는 않습니다. – Earlz

+0

물론. 그것은 특정 엔진의 변위보다 전반적인 성능을 나타내는 것은 아닙니다. – wallyk

0
+0

이것은 이론적으로 질문에 대답 할 수 있지만, 미래 사용자를 위해 여기에 대답의 핵심 부분을 포함시키고 참조 용 링크를 제공하는 것이 바람직합니다 (// meta.stackoverflow.com/q/8259). – Mogsdad

1

그것은 아니에요 아주 정확한 표현에 대한 몇 가지 좋은 빛을 비추,하지만 난 메모리 주소의 길이를 의미하는 가져 가라. 예를 들어 32 비트는 4 GiB (2 바이트)를 프로그램에서 사용할 수 있음을 의미합니다.

또한, 항상 CPU가 판독 또는 한번에에서 동작 할 수있는 최대 데이터 량 아니다 (종달새를 들어, 31 비트.있는 IBM s390 구조를 확인). 예를 들어, 64 비트 AMD/Intel 프로세서는 주 메모리에서 데이터를 큰 덩어리로 끌어 올 수있는 일련의 온칩 캐시를 가지고 있습니다. 또한 128 비트 SSE 레지스터도 있습니다.

1

난 당신이 메모리 태그 통지, 그래서 나는 그 대답거야 :

을 32 비트 프로세서에서 프로세서는 전용 메모리를 해결하기 위해 32 비트를 사용할 수 있습니다. 즉, 2^32 개의 고유 한 조합이 있으므로 프로세서는 2^32 바이트 만 주소 지정할 수 있습니다. (4Gb)

64 비트 프로세서에서 프로세서는 이론적으로 64 비트를 사용하여 메모리를 주소 지정하거나 2^64 바이트의 주소 지정 가능 메모리를 사용할 수 있습니다. 16 엑소 바이트 (Exo Bytes)는 기계의 분자량 계산과 거의 같은 거대한 양이라고 생각합니다. 실제로 현재 대부분의 CPU는 현재의 하드웨어 제약으로 인해 42 비트의 실제 메모리와 48 비트의 가상 메모리를 처리 할 수 ​​있습니다.

+1

32 비트는 주소 버스에 관한 것이 아닙니다. 36 비트 주소 버스 (예 : 인텔 아키텍처에서는 PAE 및 PSE-36)가있는 많은 32 비트 시스템이 있습니다. –

+0

네,하지만 그건 상관 없어요. 나는 32 비트 프로세서가 32 비트의 주소 지정 가능 비트를 가질 수 있다고 지적 했어야했다. – Earlz

+0

@downvoter, 이유는 무엇인가? – Earlz