문제

우리 모두 64비트와 32비트라는 용어를 들어본 적이 있을 것입니다. 하지만 실제로 그 의미는 무엇입니까?

나는 그들이 메모리 주소의 크기와 관련이 있다고 확신합니다.64비트 시스템에서 객체에 대한 참조는 64비트입니다.하지만 좀 더 깊이 파고들고 싶은데....

  1. 하나는 종종 "64 비트 머신"이라는 문구를 듣습니다. 컴퓨터의 어떤 부분이 실제로 비트 수를 향하고 있습니까?프로세서?운영 체제?

  2. 더 큰 메모리 주소를 가지면 어떤 이점이 있나요?

더 많은 질문을 추가할 수 있지만 간략한 것이 더 낫다고 생각합니다.

고마워요 여러분 :D

도움이 되었습니까?

해결책

64 비트는 레지스터의 너비, 메모리 주소 지정 공간 등을 나타냅니다. 한 가지 이점은 4GB 이상의 메모리를 해결하는 능력입니다.

Wikipedia가 있습니다 64 비트 컴퓨팅에 관한 기사 자세한 내용은.

편집 : 장점 더 많은 메모리에는 운영 체제와 프로그램이 더 많은 가상 주소 공간 (16 억 exabytes) (172 억 GB)을 가지고 있다는 것이 더 중요합니다. 더 중요한 것은 더 많은 물리적 메모리가 시스템에 추가되어 해결 될 수있어 가상 메모리를 줄일 수 있다는 것입니다. 디스크로.

더 넓은 레지스터 및 데이터 버스의 장점은 동일한 양의 데이터를 쉽고 빠르게 이동하는 것이 더 쉽고 빠르다는 것입니다. 두 개 이상의 레지스터가 필요한 작업은 이제 하나로 수행 할 수 있습니다.

따라서 소프트웨어가 64 비트로 재 컴파일되면 성능이 일반적으로 증가합니다.

불리 더 넓은 데이터는 동일한 데이터로 더 많은 공간을 차지할 수 있다는 것입니다. 예를 들어 숫자 300을 저장하려면 9 비트가 필요합니다. 32 비트 정수에 저장되면 23 비트가 낭비됩니다. 64 비트로, 그 낭비는 55 비트가됩니다. 따라서 개조되지 않으면 64 비트까지 간단한 재 컴파일이 더 빠르지 만 약간 더 부풀어 오른 소프트웨어가 생성 될 수 있습니다.

편집 : 또한 있습니다 64 비트 기술 페이지 여기:

다른 팁

차이는 정확히 32 비트입니다 ;-)

64 비트 OS를 실행하려면 64 비트 하드웨어 (프로세서)가 필요합니다. 64 비트 소프트웨어를 실행하려면 64 비트 OS가 필요합니다. 이것은 종속성입니다.

  • 32 비트 시스템에서는 4 gibyte (2^32) 메모리를 다루는 것으로 제한되며, 64 비트에는 2^64 바이트의 이론적 한계가 있습니다.
  • 64 비트 소프트웨어는 약간 더 많은 메모리가 필요합니다. 주로 포인터는 4 대신 8 바이트입니다.
  • x86_64에서 64 비트 실행 파일은 많은 지침에 대한 추가 opcode가 있으므로 더 많은 메모리가 필요하므로 더 느리게 실행될 수 있습니다.
  • x86_64, 64 비트 소프트웨어는 더 많은 레지스터를 사용할 수 있으며 더 빨리 실행할 가능성이 있습니다.
  • 64비트 시스템은 훨씬 더 많은 메모리를 직접 처리할 수 있습니다.
  • 64비트 시스템은 32비트보다 두 배 큰 청크로 데이터를 처리할 수 있으므로 일부 작업을 더 빠르게 수행할 수 있습니다.

사무 자동화 제품군과 같은 일부 프로그램의 경우 32비트와 64비트는 눈에 띄는 차이가 거의 없습니다.

그러나 데이터베이스, 그래픽/비디오 처리 또는 가상 머신 호스팅과 같은 다른 애플리케이션의 경우 한 번에 더 많은 물리적 메모리에 도달할 수 있고 각 명령으로 더 많은 정보를 처리할 수 있으면 성능에 큰 차이를 만들 수 있습니다.

오늘날 많은 32비트 칩에는 64비트 확장 기능이 있습니다. FPU (수학) 또는 SSMD (벡터) 연산은 이미 64비트 모드에서 수행됩니다.

보다 32비트와64비트 시스템:차이점이 뭐야? 이상.

  1. CPU 레지스터 및 메모리 주소 지정.

  2. 시스템은 훨씬 더 많은 메모리를 참조 (참조) 할 수 있습니다.

가장 좋은 대답은 x86 비트 x64 어셈블러의 비교 일 것이라고 생각합니다.

X32 비트 프로그램이 변수 (예 : 정수) (5)를 등록하면 코드는 다음과 같습니다.

push 5

물건을 더 잘 이해하려면 'Push X'는 다음과 같은 바로 가기입니다.

sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp

해당 레지스터는 32 비트 (4 바이트 길이)이며 32 비트 프로그래밍 언어의 포인터 크기입니다.

64 비트 코드에서는 크기가 두 배 더 크고 레지스터도 X64 실행 파일에 존재하지만 X32 실행 파일에서는 널리 사용되지는 않습니다.

대신 모든 레지스터는 이름 앞에서 "R"을 얻습니다 (EAX는 RAX가되고 ESP가 RSP가되고 EDX가 RDX가됩니다).

따라서 x64 실행 파일의 코드는 'Push X'의 단축키가 다음과 같습니다.

sub esp,8
mov [rsp],X

RSP의 크기는 ESP -64 비트, 8 바이트의 두 배입니다.

결론은 X64 비트 실행 파일이 X32 비트 실행 파일보다 더 많은 메모리를 사용한다는 것입니다.

기본으로 돌아가 봅시다.

요즘 컴퓨터의 99%는 폰 노이만 건축. 본질적으로 컴퓨터는 일정한주기입니다.

  1. RAM에서 명령을 가져 오기
  2. CPU에서 명령을 실행합니다

alt text
(원천: wikimedia.org)

32/64 비트 시스템 (또는 기타 비트 크기)을 참조 할 때 본질적으로 컴퓨터의 아키텍처 및 구현에 대해 이야기하고 있습니다.

  • 메모리 공간 크기 (RAM)
  • CPU 레지스터의 크기
  • 버스 크기 (예 : CPU, RAM, I/O 등)

64 비트 시스템이있는 경우 주소 공간이 있습니다. 2^64. 이것이 32 비트 시스템에 4GB 이상의 RAM을 가질 수없는 이유입니다. 더 큰 메모리 공간을 어떻게 해결할 수 있습니까? 2^32?

성능 차이와 관련하여 명확한 컷 답변은 없습니다 (CISC 또는 RISC 아키텍처가 더 나은 경우 명확한 답변이없는 것처럼). 사용중인 응용 프로그램에 크게 의존합니다.

요약 : 64 비트 아키텍처는 단순히 컴퓨터를 구축하는 다른 방법입니다. 그렇다고해서 더 좋거나 나쁘거나 다르게 일을한다는 의미는 아닙니다 (낮은 수준에서 모든 컴퓨터가 가져 오기에 집중하고 있습니다). 간단합니다 컴퓨터를 구현하는 다른 방법.

메인 버스의 너비에 대한 정확히 64 비트 또는 32 비트 참조.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top