문제

나는 새로운 프로그래밍 및에서 올 비 CS 배경(형식적인도).나는 대부분 프로그램 winforms 를 사용하여 C#.

내가 혼란에 대한 32 비트와 64 비트....나는 의미에 대해 들어 있 32bit OS,32 비트 프로세서 기반으로 하는 프로그램할 수 있는 최대 메모리입니다.그것이 어떻게 영향을 미치는 속도의 프로그램입니다.거기에 더 많은 질문에 계속 나오는 것이다.

동을 통해 어떤 컴퓨터 조직 및 건축 책입니다.하지만,어느 나는 너무 바보를 이해에 기록된 것이거나 작가 가정을 리더는 일부 CS 배경입니다.

할 수 있는 사람이 나를 설명에서 이러한 것들을 일반에 간단한 영어 또는 지점이 나가는 않습니다.

편집: 내가 읽는 것과 같은 32 비트 모드에서,그들에 액세스할 수 있는 최대 4GB 기억;64 비트 모드에서,그들에 액세스할 수 있습이 훨씬 더 많은....나는 이유를 알고 싶어하는 등 모든 것들입니다.

BOUNTY:답변 아래는 정말 좋은 것입니다....esp 한하여 제공합니다.하지만,내가 찾는 것에 대한 철저한 설명이지만,보통 간단한 영어입니다.

도움이 되었습니까?

해결책

그것은 정말로 모든 전선입니다.

디지털 회로에서는 0 과 1 의(일반적으로 낮은 전압과 높은 전압)에 전송될 수 있에서 하나의 요소(CPU)다른 요소(메모리 칩).가 있는 경우에만 1 개의 철사,내가를 보낼 수 있습니다 1 또는 0 이상의 와이어 클럭 주기입니다.이할 수 있었습니다만 주는 2 바이트(가정의 바이트 주소,그리고 전체 주소는 전송에서 1 주기를 위한 속도!).

이 있을 경우 2 개의 철사,내가 해결할 수 있는 4 바이트입니다.나 때문에 보낼 수 있습니다:(0, 0), (0, 1), (1, 0), 나(1,1)두 와이어입니다.그래서 기본적으로 2 개의 힘#와이어에 연결되어 있습니다.

그래서가 있는 경우 32 와이어,내가 할 수 있 주소 4 기가바이트,그리고 필요한 경우에는 64 개선,수소가 더욱 많습니다.

다른 묘는 엔지니어를 할 수 있는 주소의 큰 주소 공간보다는 전선을 할 수 있습니다.E.g.분할 주소를 두 부분으로 전송 한반 첫 번째 사이클에서 하반기에 있습니다.하지만 그는 것을 의미의 메모리 인터페이스가 절반으로 빠르다.

나의 코멘트 편집으로 여기는(정되지 않은);)과 그것을 만드는 위키면 누구나 흥미로운 아무것도 추가뿐만 아니라.

같이 다른 의견을 언급,2^32(2 의 힘 32)=4294967296,4GB.2^64 18,446,744,073,709,551,616.을 발굴에 추가(당신은 아마이 Hennesey&Patterson)프로세서가 포함되어 레지스터가 사용하는대로"처음"우주에 대한 결과를 저장하는 그것의 계산.CPU 만을 하는 방법을 알고 있는 단순한 연산을 이동하는 방법을 알고 있습니다 데이터를 주변에 있다.자연적으로,크기의 이러한 등록은 동일한 폭 비트로"#비트"의 건물은,그래서 32 비트 CPU 의 등록될 것이 32 비트와 64 비트 CPU 의 레지스터는 64 비트의 넓습니다.

있을 것이 있는 경우에만 예외가 허용될 때는 그것에 관해서 부동점(을 처리하 정밀도 두 배)또는 다른 SIMD 지침(single-명령,데이터는 여러 명령).CPU 로 데이터를 저장하에서의 주 메모리(RAM).CPU 사용 가능한 레지스터를 계산하는 메모리 주소가(물리 및 가상),메모리의 양을 수 있는 주소도 같은 폭의 등록합니다.거기에 몇 가지 Cpu 를 처리하는 주소가 계산이 특별한 확장된 레지스터,그러나 그 이라고"생각 후"추가된 후 엔지니어들은 그것을 필요로했다.

순간에는 64 비트가 꽤 많이 해결하기 위한 실제 물리적 메모리입니다.가 64 비트 Cpu 을 생략하고 꽤 몇 가지 와이어에 올 때 배선 CPU 메모리 때문에 실용성이 있습니다.그것은 의미가 없을 사용하여 귀중한 마더보드가 부동산을 실행하는 전선은 항상 0 습니다.지를 언급 하기 위해서는 최대 RAM 오늘의 DIMM 밀도 필요한 것이 4 억 dimm 슬롯:)

다른 것보다 증가한 금액의 메모리,64 비트 프로세서를 제공합 더 빠르게 연산을 위해 정수 숫자보다 큰 2^32.이전에 프로그래머(또는 컴파일러한 프로그램에 의해 프로그래머;)를 시뮬레이션을 갖는 64 비트에 등록해 두 개의 32 비트 레지스터 어떤 취급 과잉 상황입니다.하지만에는 64 비트 Cpu 그것은 처리 될 수 있는 CPU 다.

단점은 64 비트 CPU(모든)동등한 것보다 더 많은 전력을 소모하는 32 비트 CPU 으로 인하여(대략)두 번씩 금액의 회로가 필요합니다.그러나 현실에서 당신을 얻을하지 않기 때문에 같은 비교를 최신 Cpu 에는 것이 제조되는 새로운 실리콘 프로세스는 전력을 적게 누설,할 수 있을 밀어 넣는 더 많은 회로에서 동일한 크기는 죽습니다,등등.하지만 64-bit architectures 을 소비하는 것이 두 배나 많은 메모리입니다.으로 생각되었던"ugly"의 86 의 변수 명령어 길이를 실제로 이점에 비해 지금 아키텍처를 사용하는 고정 명령 크기입니다.

다른 팁

해보자 이 질문에 대답하여 보고 사람들컴퓨터;이에 대한 몇 가지 빛을 발산합니다 일들이 당신을 위해:

  • 으로 놀라운 그들은,컴퓨터는 매우,매우 바보입니다.

메모리

  • 사람들은 메모리(제외하고,틀림없이,의 남편과 정치인들.) 사람들이 정보를 저장하에서 자신의 메모리로 나중에 사용할 수 있습니다.
    • 질문(e.g,"무엇이 당신의 휴대 전화번호?") 사람은 검색할 수 있는 정보를 제공 답변(예:"867-5309")
  • 모든 현대적인 컴퓨터는 메모리,그리고 정보를 저장하에서 자신의 메모리로 나중에 사용할 수 있습니다.
    • 기 때문에 컴퓨터가 바보들만 요청하실 수 있는 아주 특정 질문은 정보를 검색:"가치는 무엇인가에 X 에서 당신의 기억?"
      • 위의 질문에, X 알려져 있으로 주소, 는 호출할 수 있습니다 pointer.

그래서 여기서 우리는 근본적인 차이는 사람과 컴퓨터의 경우:정보 기억 메모리에서 컴퓨터,컴퓨터가 필요할을 부여 주소, 반면 사람들은하지 않습니다.(물론 의미에서 하나 말할 수 있는"당신의 전화번호"이 주소를 제공하기 때문에 다른 정보를"생일",그러나 그것은 또 다른 대화입니다.)

번호

  • 사람들이 사용 진수를 시스템.는 것을 의미한 모든 자리에 진수 숫자 중 하나가 될 수 있습니 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.사람들 당 옵션 자리입니다.
  • 모든 현대적인 컴퓨터용 바이너리 시스템.는 것을 의미한 모든 자리에서 이진호,숫자 수 1 또는 0.컴퓨터 두 개의 당 옵션 자리입니다.
    • 에서는 컴퓨터 전문 용어,하나의 이진수 라 , 에 대한 짧은, binary 파.

주소

  • 모든 주소에서 컴퓨터 바이너리 숫자입니다.
  • 모든 주소에서 컴퓨터에 최대 수의 숫자(또는 비트)그것이있을 수 있습니다.이것은 주로 때문에 컴퓨터의 하드웨어의 유연성(컬 다)및 요구하는 시간을 미리 알 수 있는 주소만을 너무 오래입니다.
  • "와 같은 용어가 32 조금"및"64"은 이야기에 대해 가장 긴 주소는 컴퓨터 저장 및 검색할 수 있는 정보.영어에"32-bit"이러한 의미에서의 의미는"이 컴퓨터 기대 지침에 대한 메모리 주소를 가지고 있습니다 더 이상 32 이진 자리의 숫자입니다."
    • 당신이 상상할 수 있듯이,더 비트 컴퓨터를 처리할 수 있는 더 이상 그것을 해결할 수 있고,따라서 더 많은 메모리를 관리할 수 있습니다.

32-bit v.64-bit 주소

  • 한 유연성(고정식)의 수 숫자(예.2 진수 숫자)가능한 번호를 표시할 수 있습라 범위 (예:00 99,또는 100 고유 번호).를 추가하는 소수점 자리의 곱하여 범위 10(예:3 진수 숫자->000 999,1000 고유 번호).
  • 이 컴퓨터에 적용 됩니다만,때문에 그들은 바이너리 기계,를 추가하는 이진수( 도)만이 증가 범위의 요소에 의해 2.

    주소 지정 범위:
    • 1 비트를 해결할 수 있에 대해 이야기 2 고유의 주소를(0 과 1)입니다.
    • 2-bit 해결할 수 있 이야기에 대해 독특한 4 주소(00,01,10,11).
    • 3-bit 해결할 수 있에 대해 이야기는 8 개의 고유 주소(000, 001, 010, 011, 100, 101, 110, 111).
    • 그 후 오랜 동안... 32-bit 주소할 수 있습에 대해 이야기 4,294,967,296 고유의 주소가 있습니다.
    • 더 이상 다. 64-bit 해결할 수 있에 대해 이야기 18,446,744,073,709,551,616 고유의 주소가 있습니다.그 의 메모리!

영향

무엇이든 이것이 의미하는 것은 64 비트 컴퓨터에 저장하고 검색할 수 있습 보다 더 많은 정보를 32 비트 컴퓨터입니다.대부분의 사용자에게 이것은 정말 의미하지 않는 많은 것들 때문에 같은 웹 검색을 확인,이메일 및 카드 놀이의 모든 편안하게 작업의 범위 내에서 32-bit 주소.는 64 비트 이익을 것입니다 정말 빛나는 지역에서 당신은 많은 데이터의 컴퓨터를 이탈하다.디지털 신호 처리,기가픽셀의 사진과 고급 3D 게임은 모든 영역을 자신의 엄청난 양의 데이터 처리를 볼 것입에 큰 향상을 64-bit 환경입니다.

많은 최신 프로세서는 32 비트 모드와 64 비트 모드의 두 가지 모드로 실행할 수 있습니다. 32 비트 모드에서는 최대 4GB 메모리에 액세스 할 수 있습니다. 64 비트 모드에서는 훨씬 더 액세스 할 수 있습니다. 구형 프로세서는 32 비트 모드 만 지원합니다.

운영 체제는 이러한 모드 중 하나에서 프로세서를 사용하기로 결정했습니다. 설치 시간에 32 비트 모드 또는 64 비트 모드에서 프로세서를 작동할지 여부를 선택합니다. 프로세서가 64 비트 모드에서 계속 작동 할 수 있지만 32 비트에서 64 비트로 전환하려면 시스템을 다시 설치해야합니다. 이전 시스템은 32 비트 모드 만 지원합니다.

응용 프로그램은 32 비트 또는 64 비트 모드로 작성 (또는 컴파일 된)도 작성할 수도 있습니다. 프로세서가 64 비트 모드로 실행될 때 에뮬레이션 기능으로 32 비트 응용 프로그램을 지원할 수 있기 때문에 여기서 호환성이 더 까다 롭습니다. 따라서 64 비트 운영 체제에서는 32 비트 응용 프로그램 또는 64 비트 응용 프로그램을 실행할 수 있습니다. 32 비트 운영 체제에서는 32 비트 응용 프로그램 만 실행할 수 있습니다.

다시, 크기를 쫓는 것은 주로 액세스하려는 주 메모리의 양의 문제입니다. 32 비트 응용 프로그램은 종종 많은 시스템에서 2GB로 제한됩니다. 시스템은 자체를위한 주소 공간이 필요하기 때문입니다.

성능 (속도) 관점에서, 큰 차이는 없습니다. 64 비트 애플리케이션은 64 비트 포인터를 사용하기 때문에 약간 느릴 수 있으므로 주어진 작업에 더 많은 메모리 액세스가 필요합니다. 동시에 64 비트 정수 작업을 하나의 명령어로 수행 할 수있는 반면, 32 비트 프로세서는 여러 명령어로이를 모방해야하기 때문에 약간 빠를 수도 있습니다. 그러나 64 비트 정수 작업은 매우 드문 일입니다.

또한 64 비트 프로세서에서 32 비트 응용 프로그램을 실행하는 비용이 얼마인지 궁금 할 수도 있습니다. 기본적으로. 이것은 32 비트 (x86) 응용 프로그램이 매우 제대로 모방되는 이타늄에서 상당히 다릅니다.

게 당신의 이야기 Binville,작은 마을의 중앙에 아무데도 없습니다.Binville 하나 있었으로습니다.모든 사람 중에 오거나 Binville 했 드라이브에 도로입니다.그러나 당신이 접근 마을이 있었습니다.할 수 있습니다 왼쪽 이동 또는 오른쪽으로 이동.

사실,매도했다는 포크에 그것을 제외한 도로를 선도하는 가정이다.그 도로 단순히 종료에 집입니다.아무도 도로의 이름을 했다;그들이 필요하지 않은 이름을 감사하여 독창적인 주소 체계에 의해 만들어 Binville 계획위원회.의 지도가 여기 Binville,보여주는 도로와 주택:

              ------- []  00
             /
       ------
      /      \
     /        ------- []  01
-----
     \        ------- []  10
      \      /
       ------
             \
              ------- []  11

당신이 볼 수 있듯이,각 집은 두 자리의 주소입니다.그 주소에 혼자가 충분히)고유하게 식별 각 집에(있을 반복)이고 b)어떻게 얻을 수 있습니다.그것은 쉽게 도시의 주위에 얻을 수있는,당신은 참조하십시오.각 포크와 함께 표시로 또 하나는 계획위원회를 호출 Binville 교차로 추적,또는 에 대한 짧습니다.으로 접근하는 첫 번째 포크를 보면,첫 번째 비트의 주소입니다.의 경우 제로,왼쪽으로 이동;면 그것은 하나,오른쪽.다음에서 두 번째 자리를 얻을 때 당신은이 두 번째 포크,왼쪽 또는 오른쪽으로 적합합니다.

말하자를 방문하려는 귀하의 친구에 살고있는 사람 Binville.그녀가 말하는 그녀는 살고 집에서 10.을 얻을 때 당신이 Binville 의 첫 번째 포크,바로(1).그런 다음에서 두 번째로 포크,왼쪽으로 이동(0)입니다.당신이 거기!

Binville 존재하는 다음과 같이 몇 년 동안 하지만 시작 주위에 얻에 대한 목가적인 설정한 파크 시스템,그리고 관대한 건강 관리입니다.(After all,이 없는 경우에는 돈에 대한 표지판,사용할 수 있습니다 그것은 더 나은 것들입니다.) 하지만 문제가 있었습니다.만 두 비트 주소 체계로 제한되었을 네 집!

그래서 계획위원회의가 계획:그들은 비트를 추가하는 각 주소,그로 인하여 두 배의 수는 집입니다.계획을 실행하기 위하여,그들은 새로운 포크 마을의 가장자리에와 모든 것을 얻을 새로운 주소입니다.여기에는 새로운 지도 보여주는 새로운크로 마을의 새로운 부분 Binville:

                     ------- []  000
                    /
              ------
             /      \
            /        ------- []  001
       -----                            Old Binville
      /     \        ------- []  010
     /       \      /
    /         ------
   /                \
  /                  ------- []  011
--
  \                  -------     100
   \                /
    \         ------
     \       /      \
      \     /        ------- []  101
       -----                            New Binville (some homes not built yet)
            \        -------     110
             \      /
              ------
                    \
                     -------     111

당신은 알 수 있는 모든 사람에 Binville 단순히 추가로 앞에 자신의 주소는?새로운 비트를 나타내는 새로운 교차점을 구축했다.때 비트의 수가 증가에 의해 하나의 수,주소가 두 배가 됩니다.시민들이 항상 알고 있는 최대 크기의 도시:모든 그들을 계산하는 값의 두 발생하는 전원의 수의 비트입니다.세 가지 비트들은 수 23 =8 주택입니다.

몇년이 지나고 Binville 다시 한 번 가득 찼습니다.더 많은 사람들이 이동하고 싶어서,그래서 다른 비트에 추가 되었(와 함께 필요한 교차점)두 배로,크기의 마을이 여섯 주택입니다.그런 다음 다른 비트,그리고 다른Binville 의 주소는 빨리 여섯에 비트를 수용할 수 있는 최대 216 (16,384)주택을,그러나 그것만으로는 충분하지 않았습니다.사람들이 보관며!

그래서 계획위원회 결정했 문제를 해결하기하고 한번에 모:그들은 모든 방법을 이동하는 삼십 두 개의 비트입니다.충분한 주소를 통해 억 homes(232),반드시는 충분합니다!

니다.약 이십오 년 동안을 때,Binville 더 이상 작은 마을의 중앙에 아무데도 없습니다.그것은 지금이 중요한 대도시입니다.사실,그것을 얻고 있었으로 큰 전체적으로는 국가로 수십억의 주민.하지만 공원도 있었고 모두가 위대한 건강 관리,그래서 인구가 계속 늘어나고 있었습니다.

에 직면 늘어나는 인구,기획 위원회는 다시 한 번 자신의 머리를 함께 제시 다른 확장 도시입니다.이 시간 그들이 사용하는 것이 64 비트입니다.당신은 얼마나 많은 가정에 맞게 수 내 Binville 도시의 한계를 지?맞:18,446,744,073,709,551,616.수은 그렇게 큰,우리가 채울 수 있에 대해 억 지구와 모든 사람들이 자신의 주소입니다.

사용하는 64 비트이지를 통해 자신의 모든 문제 해결.주소를 가 두 번으로 공간을 많이 쓰기로 32-bit 주소았다.더 악화,일부 시민들이지 않은 아직 업데이트의 주소를 사용하여 새로운 64-비트 포맷,그래서 그들은 강제적으로 벽으로 둘러싸인프 섹션에서 도시의 예약 사람들을 위해 특별히 아직도 사용하는 32-bit 주소입니다.하지만 그 확인을 누릅니다:를 사용하는 사람들의 32 비트에 액세스하는 더 이상의 도시에 맞는 그들의 필요합니다.그들은 느끼지 않았을 변경할 필요니다.

이 64 비트 충분하다?누가는 이 시간에,그러나 국민의 Binville 기다리의 발표 128-bit 주소...

마틴의 대답은 대부분 정확하고 상세합니다.

나는 모든 메모리 한계가 응용당 가상 메모리 컴퓨터의 실제 물리적 메모리에 대한 제한이 아닌 한계. 실제로 32 비트 시스템에서도 단일 애플리케이션에서 4GB 이상의 메모리로 작업 할 수 있습니다. 한 번에 포인터를 사용하여 액세스 할 수는 없기 때문에 더 많은 작업이 필요합니다. 링크 텍스트

언급되지 않은 또 다른 것은 기존 X86 프로세서와 X86-64의 차이점은 포인터 크기뿐만 아니라 명령어 세트에 있다는 것입니다. 포인터는 더 크고 더 많은 메모리 (4 대신 8 바이트)를 소비하지만 더 큰 레지스터 세트 (8, IIRC 대신 15 개의 범용 레지스터)로 보상되므로 실제로 계산 작업을 수행하는 코드에 성능이 더 좋을 수 있습니다.

마틴의 대답은 훌륭합니다. 몇 가지 추가 포인트를 추가하려면 ... .NET를 언급하기 때문에 CLI/JIT는 X86과 X64 사이에 다른 최적화 (예 : 꼬리 통화)와 고급의 미묘한 다른 동작과 함께 약간의 차이점이 있습니다. 같은 것들 volatile. 이것은 모두 코드에 영향을 줄 수 있습니다.

또한 모든 코드가 X64에서 작동하는 것은 아닙니다. 사용하는 모든 것 directx 또는 특정 COM 기능이 어려움을 겪을 수 있습니다. 실제로는 아닙니다 성능 기능이지만 알아야합니다.

( "DirectX"를 제거했습니다 - 나는 거기에서 쓰레기를 말하고 있을지도 모릅니다. 그러나 간단히 말해서 : 당신은 당신이 의존하는 것이 당신의 대상 플랫폼에서 안정적임을 확인해야합니다)

일반 컴퓨터 메모리를 수십억 사각형이있는 거대한 빙고 카드로 생각하십시오. 보드의 개별 정사각형을 다루기 위해 각 행 및 열 B-5 열, I-12, O-52..ETC 라벨에 대한 계획이 있습니다.

카드에 사각형이 충분하면 결국 문자가 부족하므로 더 많은 글자를 재사용하고 더 많은 숫자를 작성하여 각 광장을 고유하게 해결할 수 있어야합니다.

당신이 그것을 알기 전에, 아나운서는 성가신 많은 숫자와 문자 조합을 주었다. BAZC500000, IAAA12000000, OAAAAAA523111221

컴퓨터의 비트 수는 특정 사각형을 다루기 위해 문자와 숫자의 복잡성의 한계를 지정합니다.

32 비트는 카드가 2^32 광장보다 큰 경우 컴퓨터에는 전선과 트랜스 스트가 충분하지 않아 값을 읽거나 지정된 메모리 위치에 새 값을 쓸 수있는 특정 사각형을 고유하게 해결할 수 있습니다.

64 비트 컴퓨터는 대량 2^64 사각형을 개별적으로 해결할 수 있습니다. 그러나 그렇게하려면 각 정사각형에는 고유 한 주소가 있는지 확인하기 위해 각 정사각형에 더 많은 글자와 숫자가 필요합니다. 이것이 64 비트 컴퓨터에 더 많은 메모리가 필요한 이유입니다.

주소 지정 제한의 다른 일반적인 예는 현지 전화 번호입니다. 그들은 usustally 7 자리 111-2222이거나 숫자 1,112,222로 재구성되었습니다. 자신의 텔레 폰 번호를 원하는 9,999,999 명 이상이있을 때 어떻게됩니까? 지역 코드와 국가 코드를 추가하고 전화 번호는 7 자리에서 10에서 11으로 더 많은 공간을 차지합니다.

임박한 IPv4 부족에 익숙하다면 동일한 문제가 발생합니다. IPv4 주소는 32 비트이며 2^32 (40 억) 고유 한 IP 주소가 가능하며 오늘날 살아있는 것보다 더 많은 사람들이 있습니다.

내가 언급 한 모든 체계 (컴퓨터, 전화 번호, IPv4 주소)에는 특정 부분이 조직 목적으로 예약되어 있으므로 사용 가능한 공간이 훨씬 적습니다.

64 비트 세계의 성능 약속은 한 번에 4 바이트를 보내는 대신 64 비트 컴퓨터가 한 번에 8 바이트를 보낼 수 있다는 것입니다 (ABCDEFGH). 32 비트 컴퓨터만큼 빠릅니다. 또한 더 많은 메모리를 사용할 때 더 빨리 실행되는 일부 응용 프로그램에도 이점이 있습니다.

실제 세계에서 Intel 등의 64 비트 데스크탑 프로세서는 실제로 64 비트 프로세서가 아니며 여전히 여러 유형의 작업에 대해 32 비트로 제한되어 있으므로 실제 세계에서는 32 비트와 64 비트 애플리케이션의 성능이 있습니다. 한계입니다. 64 비트 모드는 성능을 향상 시키지만 "가짜"64 비트 프로세서에서 더 많은 메모리를 연주 할 수있는 더 많은 하드웨어 레지스터를 제공하여 일부 영역에서 성능을 해칠 수 있으므로 씻을 수 있습니다. 앞으로 데스크탑 프로세서가 완전히 64 비트가되면 더 많은 성능이 향상 될 것입니다.

나는 이전 답변에서 '레지스터'라는 단어를 많이 보지 못했다고 생각합니다. 디지털 컴퓨터는 수많은 레지스터이며, 산술 및 메모리에 대한 논리가 데이터와 프로그램을 저장합니다.

그러나 먼저 ... 디지털 컴퓨터는 이진 숫자 ( '비트') 0과 1이 스위치의 두 상태 (켜기/끄기)로 쉽게 표현되기 때문에 숫자의 이진 표현을 사용합니다. 초기 컴퓨터는 전자 기계 스위치를 사용했습니다. 최신 컴퓨터는 트랜지스터가 작고 빠르기 때문에 사용합니다. 많이 더 작고 많이 더 빠르게.

CPU 내부에서 스위치는 유한 길이의 레지스터로 함께 그룹화되며 작업은 일반적으로 전체 레지스터에서 수행됩니다. 예를 들어이 레지스터를 추가하는 등을 추가하십시오. 예상대로 32 비트 CPU의 길이 32 비트 레지스터가 있습니다. 나는 여기서 단순화하지만 나와 함께 견뎌냅니다.

컴퓨터 메모리를 일련의 '위치'로 구성하는 것이 합리적이며, 각각 CPU 레지스터와 동일한 비트를 보유합니다. 예를 들어, 해당 메모리 위치 에서이 레지스터를로드하십시오. 실제로, 우리가 기억을 다음과 같이 생각한다면 바이트, 그것은 단지 레지스터의 편리한 부분 일 뿐이며 우리는 일련의 메모리 위치 (1, 2, 4, 8)에서 레지스터를로드합니다.

트랜지스터가 작아지면 컴퓨터 칩의 제한된 공간에서보다 복잡한 산술에 대한 추가 논리를 구현할 수 있습니다. CPU 부동산입니다 언제나 프리미엄.

그러나 칩 제조가 개선되면 약간 더 큰 칩에서만 더 많은 트랜지스터를 만들 수 있습니다. 레지스터가 길어질 수 있으며 그 사이의 경로가 더 넓을 수 있습니다.

메모리 위치의 주소를 보유한 레지스터가 더 길면 더 큰 메모리를 다루고 더 큰 덩어리로 데이터를 조작 할 수 있습니다. 보다 복잡한 산술 논리와 함께 일이 더 빨리 이루어집니다.

그리고 우리가 아닙니다 모두 후에?

32 비트 모드가 4GB의 RAM에만 액세스 할 수있는 이유를 설명하기 위해

최대 액세스 가능한 메모리 공간 = 2N 바이트 여기서 n은 아키텍처의 단어 길이입니다. 따라서 32 비트 아키텍처에서 최대 액세스 가능한 메모리 공간은 2입니다.32 = 4294967296 = 4GB RAM.

64 비트 아키텍처에 액세스 할 수 있습니다64 = 많은 기억.

방금 Tchens의 의견이 이것에 대한 의견을 보았습니다. 어쨌든 CS 배경이 없으면 예, 컴퓨터 조직과 건축 서적은 최대한 이해하기 어려울 것입니다.

  • 프로세서는 Base-2를 사용하여 숫자를 저장합니다. 베이스 2는 모든 염기의 "가장 간단한"이기 때문에 선택되었을 것입니다. 예를 들어,베이스 -2 곱셈 표는 4 개의 세포 만 있고베이스 "10"곱셈 표는 100 개의 셀을 갖습니다.
  • 2003 년 이전에는 일반적인 PC 프로세서가 "32 비트 가능"에 불과했습니다.
    • 즉, 프로세서의 기본 수치 작업은 32 비트 수치였습니다.
    • 더 많은 숫자에 대한 수치 작업을 수행 할 수 있지만 프로세서가 실행 한 프로그램에 의해 수행되어야하며, 프로세서가 32 비트를 위해 지원하는 "기본 조치"(기계 언어의 명령)가 아닙니다. 정수 (당시)
    • CPU 엔지니어가 2의 힘을 좋아하고 16 비트가 충분하지 않기 때문에 32 비트가 선택되었습니다.
  • 왜 16 비트가 충분하지 않습니까? 16 비트로 0-65535 범위의 정수를 나타낼 수 있습니다.
    • 65535 = 1111111111111111 이진에서 (= 20+21+22...+215 = 216-1)
    • 예를 들어 병원 관리 소프트웨어가 65535 명 이상을 계산할 수 있어야하기 때문에 65535는 충분하지 않습니다.
    • 일반적으로 사람들은 정수가 얼마나 큰지 논의 할 때 컴퓨터 기억의 크기를 고려합니다. 65535만으로는 충분하지 않습니다. 컴퓨터는 그보다 더 많은 램을 가지고 있으며 "바이트"또는 비트에 계산하는 것은 중요하지 않습니다.
  • 32 비트는 한동안 충분히 간주되었습니다. 2003 년 AMD는 최초의 64 비트 가능 "X86"프로세서를 도입했습니다.. 인텔이 곧 뒤따 랐습니다.
  • 실제로 16 비트는 충분한 것으로 간주되었습니다 오래 전에.
  • 많은 하드웨어와 소프트웨어가 뒤로 호환되는 것이 일반적인 관행입니다. 이 경우 64 비트 가능 CPU는 32 비트 캡슐형 CPU가 할 수있는 모든 소프트웨어를 실행할 수 있음을 의미합니다.
    • 뒤로 호환성은 비즈니스 전략으로 노력합니다. 더 많은 사용자가 이전의 모든 작업을 수행 할 수 있다면 더 많은 사용자가 더 나은 프로세서로 업그레이드하려고합니다.
    • CPU에서 후진 호환성에서는 CPU가 지원하는 새로운 작업이 이전 기계 언어에 추가됨을 의미합니다. 예를 들어, 이전 기계 언어에는 "모든 opcode가 시작하는 것과 같은 사양이있을 수 있습니다. 1111 향후 사용을 위해 예약되어 있습니다. "
    • 이론적으로 모든 소프트웨어가 방금 호환되지 않은 기계 언어에 적합 할 수 있었기 때문에 이러한 종류의 CPU 후진 호환성이 필요하지 않았을 것입니다. 그러나 기업 전략과 정치적 또는 경제 시스템 때문에 그렇지 않습니다. Utopic "오픈 소스"세계에서는 기계 언어의 뒤로 호환성이 우려되지 않을 것입니다.
  • X86-64 (공통 64 비트 CPU의 기계 언어)의 뒤로 호환성은 "호환성 모드"형태로 제공됩니다. 이는 새로운 CPU 기능을 사용하려는 모든 프로그램이 "64 비트 모드"로 실행해야한다는 것을 CPU (OS를 통해) 알릴 필요가 있음을 의미합니다. 그런 다음 새로운 CPU 64 비트 기능에 사용할 수 있습니다.
  • 따라서 프로그램이 CPU의 64 비트 기능인 CPU, OS 및 프로그램을 사용하려면 모두 "64 비트를 지원해야합니다".
  • 64 비트는 세계의 모든 사람에게 몇 가지 독특한 숫자를 줄 수 있습니다. 대부분의 현재 컴퓨팅 노력에 충분히 큰 것일 수 있습니다. 미래의 CPU가 128 비트로 더 이동할 가능성은 거의 없을 것입니다. 그러나 그들이 그렇게한다면, 그것은 내가 상상할 수있는 모든 것에 충분히 충분하므로 256 비트 전환이 필요하지 않습니다.

이게 도움이 되길 바란다.

특정 응용 프로그램 (예 : 멀티미디어 인코딩/디코딩 및 렌더링)은 64 비트를 완전히 활용하기 위해 작성 될 때 상당한 (2X) 성능 향상을 얻는다는 점은 주목할 가치가 있습니다.

32 비트 대 64 비트 벤치 마크를 참조하십시오 우분투 그리고 Windows Vista

CS가 아닌 사람을 위해. 64 비트는 계산에 더 잘 작동합니다 (모든 종류의)도 좋을 수도 있습니다. 또한 더 많은 RAM을 가질 수 있습니다.

또한 RAM이 제한되어있는 경우 (예 : VPS 또는 Small -Ram 전용 서버) - 32 비트를 선택하면 서비스가 적은 RAM을 섭취 할 수 있습니다.

위의 모든 것이 상세하다는 점을 감안할 때 이것은 매우 간단한 설명입니다.

32 비트는 레지스터를 나타냅니다. 레지스터는 데이터를 저장할 수있는 장소이며 모든 프로그램은 이러한 것들을 조작하여 작동합니다. 어셈블리는 직접 그들에게 직접 운영됩니다 (따라서 사람들이 종종 조립에서 프로그램에 흥분하는 이유).

32 비트는 기본 레지스터 세트가 32 비트의 정보를 보유 할 수 있음을 의미합니다. 64 비트는 의심 할 여지없이 64 비트의 정보를 의미합니다.

왜 이것이 프로그램을 더 빨리 만들 수 있습니까? 더 큰 작업을 더 빨리 수행 할 수 있기 때문입니다. 그건 그렇고 특정 유형의 프로그램을 더 빨리 만들 것입니다. 일반적으로 게임은 최적화를 활용할 수 있습니다. 프로세서 당, 수학이 많은 작업으로 인해 (따라서 레지스터 사용).

그러나 Tchen이 언급했듯이, 그들은 어쨌든 더 큰 작업을 수행 할 수있는 다른 많은 '사물'입니다. SSE, SSE2 등에는 '32 비트 '시스템에도 64 비트 레지스터와 128 비트 레지스터가 있습니다.

메모리를 다루는 능력이 증가하면 Windows의 특정 메모리 드레싱 시스템을 기반으로 기본 레지스터 크기의 증가와 직접적으로 말합니다.

조금 도움이되기를 바랍니다. 다른 포스터는 나보다 훨씬 정확합니다. 나는 단순히 간단하게 설명하려고 노력하고 있습니다 (아주 작은 것을 알 수 있습니다 :)

이 질문에 대한 훌륭한 답변이 있지만이 답변 블록 내에는 모두 맞지 않습니다. 간단한 답변은 프로그램이 메모리에서 바이트를 얻으려면 주소가 필요하다는 것입니다. 32 비트 CPU에서, 각 바이트의 메모리 주소는 32 비트 (부호없는) 정수에 저장되며, 이는 최대 4GB입니다. 64 비트 프로세서를 사용하는 경우 메모리 주소는 64 비트 정수로 약 1.8467441 × 10^19 가능한 메모리 주소를 제공합니다. 프로그래밍을 처음 접한다면 충분해야합니다. 프로세서의 내부 작업보다 프로그램 방법을 배우는 데 더 집중해야하며 32 비트 CPU에서 4GB 이상의 RAM에 액세스 할 수없는 이유.

32 비트 프로세서를 사용하여 주소 지정 가능한 메모리 범위를 설명하기위한 간단한 답변은 다음과 같습니다.

최대 숫자 U는 999입니다. 숫자의 범위는 (0-999)입니다. 사용할 숫자는 1000 개 밖에 없습니다.

그러나 U가 6 자리 숫자를 가질 수 있으면 건설 할 수있는 최대 숫자는 99999입니다. 이제 범위는 (0-99999)입니다. 그래서 지금 당신은 당신과 함께 사용해야 할 백만 개의 숫자를 가지고 있습니다.

마찬가지로 프로세서에 더 많은 비트가 허용되며, 더 큰 주소 세트 (이전 예제의 숫자)를 구성하고 결국 데이터를 저장하는 데 사용할 수 있습니다.

이것보다 간단한 것은 읽기가 흥미로울 것입니다!

-기원 후.

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