컴퓨터 지식 네트워크 - 컴퓨터 지식 - 64비트 소개 및 세부정보

64비트 소개 및 세부정보

개요

64비트 CPU에는 외부 데이터 버스나 다양한 크기의 주소 버스가 있을 수 있으며, 이는 더 크거나 작을 수도 있습니다. 이러한 부스바의 크기를 설명하는 데 일반적으로 사용됩니다. 예를 들어, 오늘날 많은 컴퓨터에는 64비트 버스를 사용하는 32비트 프로세서(예: 원래 Pentium 및 이후 CPU)가 있으므로 "64비트"라고도 합니다. 마찬가지로 일부 16비트 프로세서(예: 약 68,000개의 트랜지스터를 통합한 Motorola에서 생산한 16비트 프로세서인 MC68000)는 16비트 버스가 있는 16/32비트 프로세서를 의미하지만 일부 32비트 프로세서는 내부적으로도 비트 성능이 향상되었습니다. 이 용어는 컴퓨터 명령어 세트의 명령어 길이 또는 기타 데이터 항목(예: 일반적인 64비트 배정밀도 부동 소수점 숫자)을 나타낼 수도 있습니다. 추가 제한이 없으면 "64비트" 컴퓨터 아키텍처에는 일반적으로 64비트 정수 데이터 "청크"를 내부 및 외부 모두 지원할 수 있는 64비트 폭의 정수 레지스터가 있습니다. 아키텍처에 미치는 영향

프로세서의 레지스터는 일반적으로 정수, 부동 소수점 및 기타의 세 가지 유형으로 나눌 수 있습니다. 모든 일반적인 주류 프로세서에서는 정수 레지스터만이 포인터 값(메모리 데이터의 주소)을 저장할 수 있습니다. 정수가 아닌 스크래치패드는 메모리를 읽거나 쓰기 위한 포인터를 보유할 수 없으므로 정수 스크래치패드 크기에 영향을 받는 메모리 제한을 우회하는 데 사용할 수 없습니다.

거의 모든 일반 주류 프로세서(대부분의 ARM 및 32비트 MIPS 구현을 제외)에는 64비트 스크래치 패드를 사용하여 처리할 데이터를 저장할 수 있는 통합 부동 소수점 하드웨어가 있습니다. 예를 들어 x86 아키텍처에는 x87 부동 소수점 명령어가 포함되어 있으며 스택 구조에서 8개의 80비트 스크래치패드 레지스터를 사용합니다. 이후의 x86 수정 및 x86-64 아키텍처에는 8개의 128비트 와이드 스크래치패드(x86-64에서는 16개의 스크래치패드)를 사용하는 SSE 명령어가 추가되었습니다. 이에 비해 64비트 Alpha 시리즈 프로세서는 32개의 64비트 폭 정수 레지스터 외에도 32개의 64비트 폭 부동 소수점 레지스터도 정의합니다. 메모리 제한

2005년 현재 대부분의 CPU에서 단일 스크래치패드는 가상 메모리에 있는 모든 데이터의 메모리 주소(기본)를 저장할 수 있습니다. 따라서 가상 메모리에서 사용할 수 있는 주소(컴퓨터가 프로그램 작업 영역에 보관할 수 있는 데이터의 양)는 레지스터 너비에 따라 달라집니다. 1960년 IBM System/360을 시작으로 1970년 DEC VAX 마이크로컴퓨터, 1980년대 중반 Intel 80386 등 공통 32비트 크기 레지스터가 사실상 일관되게 개발되었습니다. 32비트 스크래치패드는 2^32개의 주소 또는 4GB의 사용 가능한 메모리를 의미합니다. 이러한 아키텍처가 설계되었을 때 4GB의 메모리는 일반적인 설치에서 사용할 수 있는 것보다 훨씬 많았으며 주소 지정에 충분한 것으로 간주되었습니다. 4GB를 적절한 크기로 고려해야 하는 다른 중요한 이유가 있습니다. 데이터베이스와 같은 애플리케이션에서는 42억 개 이상의 정수가 대부분의 계산 가능한 인스턴스에 고유한 참조를 할당하는 데 충분합니다.

그러나 1990년대 초반 메모리 가격이 하락하면서 설치된 메모리의 양이 4GB에 가까워졌고, 특정 유형의 문제를 처리할 때 가상 메모리를 상상할 수 있었습니다. 사용된 볼륨이 4GB 제한을 초과합니다. 이를 위해 일부 회사에서는 처음에는 슈퍼컴퓨터, 최고급 워크스테이션 및 서버 시스템용으로 새로운 64비트 아키텍처 칩 제품군을 출시하기 시작했습니다. 개인용 컴퓨터로의 64비트 컴퓨팅의 점진적인 흐름은 Apple Macintosh 생산 라인의 일부 모델이 PowerPC 970 프로세서(Apple에서는 "G5"라고 함)로 전환한 2003년에 나타났으며, 2006년에는 EM64T 프로세서로 전환되었습니다. x86-64 프로세서 최고급 PC에서 점점 인기가 높아지고 있습니다. 64비트 아키텍처의 출현으로 메모리 제한이 2^64개 주소와 16EB 메모리로 효과적으로 늘어났습니다. 이를 관점에서 보면, 4MB의 메인 메모리가 일반적이었을 때 최대 메모리 제한인 2^32 주소는 일반적인 설치된 메모리보다 약 1000배 더 컸습니다. 오늘날 16GB의 메인 메모리가 일반적인 경우 2^64의 주소 제한은 약 10억 배 더 높습니다.

현재 시중에 나와 있는 대부분의 소비자 PC에는 인위적인 메모리 제한이 있으며, 인스턴스의 제한으로 인해 16GB를 완벽하게 지원하는 것은 거의 불가능합니다. 예를 들어, Apple의 Mac Pro는 그 이상을 지원할 필요 없이 최대 16GB의 인스턴스 메모리를 설치할 수 있습니다. 최신 Linux 커널(버전 2.6.16)은 최대 64GB의 메모리를 지원하도록 컴파일될 수 있으며 Windows Vista Ultimate는 128G 이상의 메모리를 지원합니다.

32비트 비교

32비트에서 64비트 아키텍처로의 변경은 근본적인 변화입니다. 왜냐하면 대부분의 운영 체제가 새로운 아키텍처를 활용하려면 완전히 수정되어야 하기 때문입니다. 새로운 기능을 활용하려면 다른 소프트웨어도 포팅해야 합니다. 이전 소프트웨어는 일반적으로 하드웨어 호환성 모드(새 프로세서는 이전 32비트 버전의 명령어 세트를 지원함) 또는 소프트웨어 에뮬레이션을 통해 지원됩니다. 또는 64비트 프로세서에서 직접 32비트 프로세서 코어를 구현합니다(예: 32비트 x86 애플리케이션을 실행하기 위한 x86 프로세서 코어가 포함된 Intel의 Itanium 프로세서). 64비트 운영 체제를 지원하며 일반적으로 32비트 및 64비트 응용 프로그램을 모두 지원합니다.

확실한 예외는 AS/400입니다. AS/400의 소프트웨어는 실행 전에 하위 수준 소프트웨어를 기본 기계어 코드로 변환하는 TIMI(Technology Independent Machine Interface)라는 가상 명령어 세트 아키텍처에서 실행됩니다. 전체 OS와 모든 소프트웨어를 새 플랫폼으로 이동하려면 하위 수준 소프트웨어를 완전히 다시 작성해야 합니다. 예를 들어, IBM이 이전 32/48비트 "IMPI" 명령 세트를 64비트 PowerPC로 옮겼을 때(IMPI는 32비트 PowerPC와 전혀 달랐기 때문에 32비트 버전의 PowerPC에서 이동하는 것보다 훨씬 빨랐습니다. 동일한 명령어 세트의 64비트 버전으로 설정된 명령어는 규모가 훨씬 더 큽니다.

64비트 아키텍처는 디지털 비디오, 과학 컴퓨팅, 초기 대규모 데이터베이스 등 대용량 데이터를 처리해야 하는 애플리케이션에 의심할 여지 없이 적합합니다. 32비트 호환 모드가 다른 작업에서 유사한 32비트 시스템보다 빠른지 여부에 대해 많은 논쟁이 있었습니다. x86-64 아키텍처(AMD64 및 Intel 64)에서는 주요 32비트 운영 체제와 애플리케이션이 64비트 하드웨어에서 원활하게 실행될 수 있습니다.

Sun의 64비트 Java 가상 머신은 32비트 가상 머신보다 더 느리게 시작됩니다. 왜냐하면 Sun은 여전히 ​​모든 64비트 머신이 서버라고 가정하고 64비트 플랫폼용 '서버'만 구현하기 때문입니다. (C2). "클라이언트" 컴파일러(C1)는 더 느린 코드를 생성하지만 더 빠르게 컴파일합니다. 따라서 64비트 JVM의 Java 프로그램은 장기간에 걸쳐 더 나은 성능을 발휘하지만(일반적으로 장시간 실행되는 "서버" 응용 프로그램) 시작 시간은 더 길어질 수 있습니다. 수명이 짧은 애플리케이션(예: Java 컴파일러 javac)의 경우 시작 시간을 늘리면 실행 시간을 제어하고 64비트 JVM을 전체적으로 느리게 만들 수 있습니다.

32비트 및 64비트 프로세서의 경우 속도만이 유일한 고려 사항은 아니라는 점에 유의해야 합니다. 멀티태스킹, 스트레스 테스트, 클러스터링(HPC용)과 같은 애플리케이션은 64비트 아키텍처가 올바르게 배포되는 데 더 적합할 수 있습니다. 위와 같은 이유로 64비트 클러스터는 IBM, Vodafone, HP, Microsoft와 같은 대규모 조직에 널리 배포되었습니다. 장점과 단점

일반적인 오해는 컴퓨터에 설치된 메모리가 4GB를 넘지 않으면 64비트 아키텍처가 32비트 아키텍처보다 나을 것이 없다는 것입니다. 이것은 완전히 정확하지 않습니다.

일부 운영 체제는 운영 체제에서 사용할 프로세스 주소 공간의 일부를 예약하여 사용자 프로그램이 메모리를 매핑하는 데 사용할 수 있는 주소 공간을 줄입니다. 예를 들어, Windows XP DLL 및 사용자 영역 OS 구성 요소는 각 프로세스의 주소 공간에 매핑되어 컴퓨터에 4GB 메모리가 있더라도 사용 가능한 주소 공간이 2~3.8GB(설정에 따라 다름)만 남습니다. 64비트 Windows에서는 이 제한이 발생하지 않습니다.

특히 비교적 저렴한 DVD 굽기 기술이 도입되면서 32비트 아키텍처에서는 파일의 메모리 매핑이 더 이상 가능하지 않습니다. 4GB보다 큰 파일은 더 이상 드물지 않으며 이러한 대용량 파일은 단순히 32비트 아키텍처의 메모리에 매핑될 수 없습니다. 파일 범위의 일부만 주소 공간에 매핑될 수 있으며 다음을 사용하여 파일에 액세스할 수 있습니다. 필요한 경우 메모리 매핑, 이러한 범위는 주소 공간 안팎으로 매핑되어야 합니다. 이는 운영 체제가 적절하게 구현하는 경우 충분한 메모리 매핑이 여전히 디스크에서 메모리에 액세스하는 가장 효율적인 방법이기 때문에 문제가 됩니다.

64비트 아키텍처의 주요 단점은 32비트 아키텍처에 비해 동일한 데이터를 점유하면 더 많은 메모리 공간을 소비한다는 것입니다(비대해진 포인터, 기타 유형 및 정렬 필러 등으로 인해). . 이로 인해 프로세스의 메모리 요구 사항이 증가하고 고성능 프로세서 캐시 사용에 영향을 미칠 수 있습니다. 부분적인 32비트 모델을 유지하는 것은 일반적으로 합리적이고 효율적인 솔루션입니다. 실제로 성능 지향적인 z/OS 운영 체제는 이 접근 방식을 사용하여 프로그램 코드를 32비트 주소 공간의 임의의 숫자에 저장하도록 요구하는 반면 데이터 객체는 (선택적으로) 64비트 영역에 저장할 수 있습니다.

현재 주요 상용 소프트웨어는 64비트 코드가 아닌 32비트 코드로 구축되어 있기 때문에 64비트에서는 더 큰 64비트 주소 공간이나 더 넓은 64비트 임시 저장 공간을 확보할 수 없습니다. 프로세서와 데이터 경로의 장점. 그러나 무료 또는 무료 소프트웨어 운영 체제 사용자는 이미 독점 64비트 컴퓨팅 환경에 액세스할 수 있습니다. 모든 응용 프로그램이 큰 주소 공간을 필요로 하거나 64비트 데이터 항목에서 작동하는 것은 아닙니다. 따라서 이러한 프로그램은 더 큰 주소 공간이나 더 넓은 레지스터 및 데이터 경로의 이점을 누리지 못합니다. 더 많은 레지스터를 사용할 수 있는 x86 버전입니다. 가용성

64비트 시스템에는 해당 소프트웨어가 부족한 경우가 있으며 이러한 소프트웨어는 32비트 아키텍처용으로 작성되었습니다. 가장 심각한 문제는 호환되지 않는 드라이버입니다. 대부분의 소프트웨어는 32비트 호환 모드(에뮬레이션 모드라고도 함, Microsoft의 WoW64(Windows 64비트의 Windows 32비트) 기술)에서 실행될 수 있지만 일반적으로 프로그램이 운영 체제 사이에서 실행되기 때문에 일반적으로 드라이버(또는 유사한 소프트웨어)를 실행할 수 없습니다. 시스템 및 하드웨어에서는 직접 시뮬레이션을 사용할 수 없습니다. 많은 오픈 소스 소프트웨어 패키지는 소스 코드에서 쉽게 컴파일하여 Linux와 같은 64비트 운영 체제에서 실행할 수 있습니다. 필요한 것은 64비트 머신용 컴파일러(보통 g)입니다. 현재 64비트 버전의 드라이버를 사용할 수 없기 때문에 64비트 운영 체제를 사용하는 경우 64비트가 사전 설치된 컴퓨터를 사용하는 것이 좋습니다. 일반적으로 드라이버 문제를 해결하는 Windows 7 버전입니다.

장치 드라이버는 일반적으로 운영 체제 커널 내부에서 실행되므로 64비트 사용자 프로세스를 지원하면서 커널을 32비트 프로세스로 실행할 수 있습니다. 코어의 추가 오버헤드를 희생시키면서 기존 32비트 드라이버와의 바이너리 호환성을 유지하면서 사용자에게 64비트의 메모리 및 성능 이점을 제공합니다. 이 메커니즘은 64비트 프로세스를 활성화하고 32비트 드라이버를 지원하는 Mac OS X에서 제공됩니다. 데이터 모델

고급 언어로 작성된 응용 소프트웨어를 32비트 아키텍처에서 64비트 아키텍처로 변환하는 데에는 다양한 어려움이 있습니다. 비슷한 문제는 일부 프로그래머가 포인터의 길이가 다른 데이터 유형과 동일하다고 가정한다는 것입니다. 프로그래머는 정보 손실 없이 데이터 유형 간에 수량을 전송할 수 있다고 가정합니다. 이러한 가정은 일부 32비트 시스템(및 일부 16비트 시스템)에서만 적용되지만 64비트 시스템에서는 더 이상 적용되지 않습니다. C 언어와 그 후속 C++에서는 특히 이 오류가 발생하기 쉽습니다[1].

C 및 C++에서 이 오류를 방지하려면 기본 유형의 크기가 결정된 경우 sizeof 연산자를 사용하여 컴파일 시간과 실행 시간 모두에서 기본 유형의 크기를 결정할 수 있습니다. 필수 기초. 또한 C99 표준의 헤더와 C++ 표준의 헤더에 있는 Numeric_limits 클래스는 더 유용한 정보를 제공하며 크기는 문자 단위로 반환됩니다. 문자 크기(CHAR_BITS)는 자체적으로 결정되고 모든 C 또는 C++ 구현에서 동일한 방식으로 정의되지 않기 때문에 이러한 사용법은 오해의 소지가 있습니다. 그러나 이러한 컴파일러 대상 DSP 외에는 "64비트 = 8워드(워드당 8비트)"가 표준이 되었습니다.

표준 헤더 에서 ptrdiff_t 유형의 두 포인터를 뺀 결과는 주의해서 사용해야 합니다. 코드가 너무 많으면 "int" 또는 "long"을 잘못 사용하게 됩니다. (포인터 차이가 아닌) 포인터를 정수로 나타내려면 uintptr_t를 여기에서 사용할 수 있습니다(C99에서만 정의되지만 일부 컴파일러는 이전 버전의 표준과 추가로 통합하여 확장으로 제공합니다).

C 및 C++에서는 포인터, 정수 유형(int) 및 long 유형(long)을 특정 비트 수로 정의하지 않습니다.

주요 32비트 기계 프로그래밍 환경에서 포인터, "int" 변수 및 "long" 변수의 길이는 모두 32비트입니다.

그러나 64비트 시스템의 많은 프로그래밍 환경에서 "int" 변수는 여전히 32비트 너비이지만 "long" 및 포인터는 LP64 데이터 모델로 알려진 64비트 너비입니다. 또 다른 옵션은 ILP64 데이터 모델로, 세 가지 데이터 유형 모두 너비가 64비트이고 SILP64의 "short" 변수도 너비가 64비트입니다. 그러나 대부분의 경우 필요한 수정은 상대적으로 사소하고 간단하며, 잘 작성된 많은 프로그램은 수정 없이 새로운 환경에 맞게 간단히 다시 컴파일할 수 있습니다. 또 다른 옵션은 LLP64 모델로, 32비트 코드와의 호환성을 유지하여 int 및 long을 32비트로 만듭니다.

"LL"은 32비트 환경을 포함한 모든 플랫폼에서 최소 64비트인 "long long" 유형을 나타냅니다.

현재 LP64 모델(Solaris, AIX, HP, Linux, Mac OS X, IBM z/OS 기본 컴파일러 포함)을 사용하는 64비트 컴파일러가 많이 있습니다. Microsoft의 VC++ 컴파일러는 LLP64 모델을 사용합니다. 단점은 LP64 모델에서 long을 int로 저장하면 오버플로가 발생할 수 있다는 것입니다. 반면에 LLP 모델에서는 장기 작업에 대한 포인터를 캐스팅할 수도 있지만 상황은 정반대입니다. 둘 다 C99 호환 코드에 나타나서는 안 됩니다.

프로그래밍 모델은 프리컴파일러 하단에서 선택되며 동일한 운영 체제에 여러 모델이 *존재할 수 있습니다. 그러나 일반적으로 프로그래밍 모델을 원래 모델로 선택하는 것은 OS API입니다.

또 다른 고려 사항은 드라이버에 사용되는 데이터 스키마입니다. 최신 운영 체제에서는 드라이버가 운영 체제 코드의 대부분을 구성합니다(비록 운영 체제가 실행될 때 이 코드의 대부분이 로드되지 않을 수 있음). 많은 드라이버는 데이터를 조작하기 위해 포인터를 광범위하게 사용하며 어떤 경우에는 특정 크기의 포인터를 DMA 지원 하드웨어로 읽어야 합니다. 예를 들어, 장치의 DMA 데이터를 64비트 시스템 메모리의 상위 영역으로 요청하는 32비트 PCI 장치용으로 제공된 드라이버는 장치에서 64비트 시스템 메모리의 상위 영역으로 데이터를 읽는 운영 체제의 요구 사항을 처리하지 못할 수 있습니다. 4GB보다 큰 메모리. 왜냐하면 이러한 주소에 대한 포인터는 장치의 DMA 스크래치패드에 맞지 않기 때문입니다. 이 문제는 장치에 DMA 요청을 할 때 OS가 장치와 일치하는 메모리 제한을 적용하도록 하거나 IOMMU를 사용하여 해결할 수 있습니다. 개발 역사

1961: IBM은 IBM 7030 Stretch 슈퍼컴퓨터를 출시했습니다. 64비트 데이터 워드와 32비트 또는 64비트 명령어 워드를 사용합니다.

1974: Control Data Corporation은 64비트 워드 아키텍처를 사용하는 CDC Star-100 벡터 슈퍼컴퓨터를 출시했습니다(이전 CDC 시스템은 60비트 아키텍처를 기반으로 함).

1976: Cray Research가 최초의 Cray-1 슈퍼컴퓨터를 출시합니다. 이는 이후 Cray 벡터 슈퍼컴퓨터의 기초가 된 64비트 블록 아키텍처를 기반으로 했습니다.

1983: Elxsi는 Elxsi 6400 병렬 마이크로슈퍼컴퓨터를 출시합니다. Elxsi 아키텍처에는 64비트 데이터 레지스터가 있지만 주소 공간은 여전히 ​​32비트입니다.

1991: MIPS Technology는 MIPS RISC 아키텍처 R4000의 세 번째 개정판으로 최초의 64비트 마이크로프로세서를 생산합니다. 이 CPU는 IRIS Crimson으로 시작된 SGI 그래픽 워크스테이션에 사용됩니다. 그러나 IRIX 운영 체제에는 1996년 IRIX 6.2가 출시될 때까지 R4000에 대한 64비트 지원이 포함되지 않았습니다. Kendall Square Research는 OSF/1에서 실행되는 독점 64비트 RISC 프로세서 아키텍처를 기반으로 하는 최초의 KSR1 슈퍼컴퓨터를 발표했습니다.

1992: DEC(Digital Equipment Corporation)는 PRISM 프로젝트에서 탄생한 순수 64비트 Alpha 아키텍처를 소개합니다.

1993: DEC는 64비트 OSF/1 AXP Unix 계열 운영 체제(나중에 Tru64 UNIX로 이름 변경)와 OpenVMS 운영 체제를 Alpha 시스템에 출시합니다.

1994: Intel은 32비트 IA-32 프로세서의 후속 제품으로 64비트 IA-64 아키텍처(HP ***와 함께 개발)에 대한 일정을 발표했습니다. 1998~1999년 출시일을 목표로 하고 있습니다. SGI는 64비트 R8000 CPU를 지원하는 IRIX 6.0을 출시합니다.

1995: Sun은 64비트 SPARC 프로세서인 UltraSPARC를 출시했습니다. Fujitsu 소유의 HAL 컴퓨터 시스템은 HAL이 독립적으로 설계한 1세대 SPARC64인 64비트 CPU 기반 워크스테이션을 출시합니다. IBM은 운영 체제, 데이터베이스 및 애플리케이션 업그레이드를 변환할 수 있는 64비트 AS/400 시스템을 출시했습니다. DEC는 최초의 Alpha용 OpenVMS 전체 64비트 버전인 OpenVMS Alpha 7.0을 출시했습니다.

1996: HP는 PA-RISC 프로세서 아키텍처의 64비트 버전 2.0 구현인 PA-8000을 출시했습니다.

Nintendo는 저렴한 MIPS R4000 변형으로 제작된 Nintendo 64 비디오 게임 콘솔을 출시했습니다.

1997: IBM은 RS64 전체 64비트 PowerPC 프로세서를 출시했습니다.

1998: IBM은 POWER3 전체 64비트 PowerPC/POWER 프로세서를 출시했습니다. Sun은 64비트 UltraSPARC를 완벽하게 지원하는 Solaris 7을 출시합니다.

1999: Intel은 IA-64 아키텍처용 명령 세트를 출시했습니다. AMD는 처음에 x86-64(나중에 AMD64로 이름 변경)라는 IA-32의 확장으로 64비트 세트를 공개했습니다.

2000: IBM은 최초의 ESA/390 호환 64비트 메인프레임 컴퓨터인 zSeries z900과 새로운 z/OS 운영 체제를 출시했습니다. 다음은 zSeries의 64비트 Linux입니다.

2001년: Intel은 마침내 최상위 서버에 초점을 맞춘 Itanium이라는 64비트 프로세서 제품 라인을 출시했습니다. IA-64 시장을 거듭 지연시키며 기대에 미치지 못하고 실패했다. Linux는 이 프로세서에서 실행되는 최초의 운영 체제였습니다.

2002: Intel은 Itanium의 후속 제품으로 Itanium 2를 출시했습니다.

2003: AMD는 AMD64 아키텍처 Opteron 및 Athlon 64 프로세서 제품 라인을 출시했습니다. Apple은 또한 IBM이 제공한 64비트 "G5" PowerPC 970 CPU를 출시했으며, 64비트 모드에 대한 부분 지원을 추가한 Mac OS X 운영 체제로 업그레이드했습니다. 여러 Linux 배포판에서 AMD64에 대한 지원을 출시했습니다. Microsoft는 AMD 칩을 위한 새로운 Windows 운영 체제를 구축할 것이라고 발표했습니다. Intel은 Itanium 칩이 64비트 전용 프로세서로 유지되어야 한다고 주장합니다.

2004년: Intel은 시장에서 AMD의 성공을 인식하고 IA-32e라고 불리는 AMD64 확장의 대체 제품을 개발하기 시작했으며 나중에 EM64T로 이름이 변경되었습니다. Xeon 및 Pentium 4 프로세서 제품군의 업그레이드 버전은 새로 도입된 지침을 지원합니다. Freescale은 PowerPC G4 시리즈를 계승할 64비트 e700 코어를 발표했습니다. VIA Technologies는 Isaiah 64비트 프로세서를 발표했습니다.

2005년: Sun은 1월 31일에 AMD64 및 EM64T 프로세서를 지원하는 Solaris 10을 출시했습니다. 3월에 Intel은 최초의 듀얼 코어 EM64T 프로세서인 Pentium Extreme Edition 840과 새로운 Pentium D 칩을 발표했습니다. 2005년 2분기에 출시될 예정이다. 4월 30일, Microsoft는 AMD64 및 EM64T 프로세서용 Windows XP Professional x64 Edition을 공개적으로 출시했습니다. 지난 5월, AMD는 최초의 듀얼 코어 AMD64 Opteron 서버 CPU를 출시하고 Athlon 64 X2라는 데스크톱 버전을 발표했습니다. 기존 Athlon 64 X2(Toledo) 프로세서는 2개의 코어로 변경되었으며, 각 코어의 L2에는 약 2억 3,320만 개의 트랜지스터로 구성된 1MB의 고속 캐시 메모리가 탑재되었습니다. 199mm²입니다. 지난 7월 IBM은 IBM과 Apple에서 사용하는 최신 듀얼 코어 64비트 PowerPC 970MP(코드명 Antares)를 발표했습니다. Microsoft는 IBM에서 생산한 64비트, 3코어 Xenon PowerPC 프로세서를 사용하는 Xbox 360 게임 콘솔을 출시했습니다.

2006: 듀얼 코어 Montecito Itanium 2 프로세서가 생산에 들어갑니다. Sony, IBM, Toshiba는 PlayStation 3, 서버, 워크스테이션 및 기타 애플리케이션용 64비트 셀 프로세서 생산을 시작합니다. Apple은 새로운 Mac Pro 및 Intel Xserve 컴퓨터에 64비트 EM64T Xeon 프로세서를 사용하고 있으며, EM64T Core 2 프로세서를 사용하는 iMac, MacBook 및 MacBook Pro에 대한 최신 업데이트도 있습니다.

현재 아키텍처

64비트 마이크로프로세서 아키텍처(2006년)는 다음과 같습니다.

DEC Alpha 아키텍처(Digital Alpha 타임라인 참조)

Intel의 IA-64 아키텍처( Intel Itanium CPU의 경우)

x86-64 아키텍처, x86 아키텍처의 64비트 버전("x64"라고도 함)

AMD의 AMD64(AMD Athlon 64, Opteron의 경우) , Sempron, Turion 64 CPU)

Intel Intel64(Intel의 새로운 Pentium 4, Xeon, Core 2 CPU용)

SPARC 아키텍처(SPARC V9 64비트부터 시작)

Sun의 UltraSPARC 아키텍처

Fujitsu의 SPARC64 아키텍처

IBM의 POWER 아키텍처(POWER3 및 RS64 변형으로 시작하는 64비트)

IBM/Motorola의 PowerPC 아키텍처 (PowerPC 620 및 PowerPC 970 변형으로 시작하는 64비트)

IBM zSeries 및 System z9 메인프레임 컴퓨터에서 사용되는 IBM의 z/Architecture, ESA/390 아키텍처의 64비트 버전

MIPS Technology의 MIPS IV, MIPS V, MIPS64 아키텍처

HP의 PA-RISC 제품군(PA-RISC 2.0부터 64비트)

대부분의 64비트 프로세서 아키텍처는 기본적으로 성능 손실 없이 32비트 버전의 아키텍처에서 코드를 실행합니다. 이 지원은 종종 이중 아키텍처 지원 또는 보다 일반적으로 다중 아키텍처 지원이라고 합니다. 그 이상

2007년 현재 대부분의 응용 프로그램에는 64비트 글꼴이면 충분해 보였습니다. 그러나 IBM의 System/370과 후속 제품은 128비트 부동 소수점을 사용했으며 많은 최신 프로세서에도 128비트 부동 소수점 레지스터가 포함되어 있다는 점을 언급해야 합니다. System/370과 그 후속 버전은 최대 16바이트(즉, 128비트)의 가변 길이 십진수를 사용한다는 점에서 특히 주목할 만합니다. 이미지

디지털 이미지에서 64비트는 16비트 알파 채널이 포함된 48비트 이미지입니다. 프로세서

여기서 64비트 기술은 32비트를 기준으로 합니다. 이 숫자는 64비트인 CPU GPR(범용 레지스터)의 데이터 너비를 나타냅니다. 64비트 데이터를 실행하려면 프로세서가 한 번에 64비트 데이터를 실행할 수 있음을 의미합니다. 64비트 프로세서는 이제 새로운 것이 아닙니다. SUN의 UltraSparc III, IBM의 POWER5, HP의 Alpha 등과 같은 고급 RISC(Reduced Instruction Set Computing)가 오랫동안 64비트 프로세서를 사용해 왔습니다.

64비트 컴퓨팅에는 두 가지 주요 이점이 있습니다. 즉, 더 넓은 범위의 정수 연산을 수행할 수 있고 더 큰 메모리를 지원할 수 있습니다. 숫자의 변화 때문에 64비트 프로세서의 성능이 32비트 프로세서의 두 배라고 단순히 생각할 수는 없습니다. 실제로 32비트 응용 프로그램에서는 32비트 프로세서의 성능이 더욱 강력해집니다. 64비트 프로세서의 경우에도 현재 상황에서는 32비트 응용 프로그램에서 성능이 더 강력해집니다. 그러므로 우리는 64비트 프로세서의 장점을 명확히 이해하고 64비트에 대해 미신을 가져서는 안 됩니다.

현재 주류 CPU에서 사용되는 64비트 기술에는 주로 AMD의 AMD64비트 기술, Intel의 EM64T 기술, Intel의 IA-64 기술이 포함됩니다. 그 중 IA-64는 Intel이 독자적으로 개발한 것으로 현재의 기존 32비트 컴퓨터와 호환되지 않습니다. Itanium과 후속 제품인 Itanium 2에서만 사용됩니다. 따라서 일반 사용자만 사용할 수는 없습니다. AMD64비트 기술과 인텔의 EM64T 기술에 대해 간략하게 소개하겠습니다.

AMD64비트 기술

AMD64의 비트 기술은 원래의 32비트 X86 명령어 세트를 기반으로 X86-64 확장 64비트 X86 명령어 세트를 추가하여 이 칩을 만듭니다. 원래의 32비트 X86 소프트웨어와 물리적으로 호환되며 X86-64의 확장된 64비트 컴퓨팅도 지원하므로 이 칩을 진정한 64비트 X86 칩으로 만듭니다. 이는 진정한 64비트 표준이며 X86-64에는 64비트 주소 지정 기능이 있습니다.

X86-64에 추가된 몇 가지 새로운 CPU 레지스터 세트는 더 빠른 실행 효율성을 제공합니다. 임시 레지스터는 CPU 연산 결과 및 기타 연산 결과를 생성하고 저장하는 데 사용되는 CPU 내부 장소입니다. 표준 32비트 x86 아키텍처에는 8개의 범용 레지스터(GPR)가 포함되어 있으며, AMD는 X86-64에 8개 그룹(R8-R15)을 추가하여 임시 레지스터 수를 16개 그룹으로 늘렸습니다. X86-64 레지스터의 기본 비트는 64비트입니다. 8개의 128비트 XMM 임시 레지스터 세트(SSE 임시 레지스터라고도 함, XMM8-XMM15)도 추가되어 단일 명령 SIMD(다중 데이터 스트림 기술) 작업을 위한 더 많은 공간을 제공합니다. 이러한 128비트 임시 레지스터 프로세서. 벡터 및 스칼라 계산 모드에서 128비트 배정밀도 처리를 제공하여 3D 모델링, 벡터 분석 및 가상 현실 구현을 위한 하드웨어 기반을 제공합니다. 더 많은 임시 레지스터를 제공함으로써 X86-64 표준에 따라 생산된 CPU는 데이터를 보다 효율적으로 처리할 수 있으며 한 클럭 주기에 더 많은 정보를 전송할 수 있습니다.

EM64T 기술

Intel은 EM64T를 공식적으로 다음과 같이 정의합니다. EM64T는 Extended Memory 64 Technology의 약자로 확장된 64비트 메모리 기술을 의미합니다. EM64T는 Intel IA-32 아키텍처의 확장, 즉 IA-32e(Intel Architectur-32 확장)입니다. EM64T 기술을 추가함으로써 IA-32 프로세서는 소프트웨어가 IA-32 소프트웨어와 호환되는 동시에 더 많은 메모리 주소 공간을 활용할 수 있도록 하며 소프트웨어가 32비트 선형 주소를 쓸 수 있도록 합니다. EM64T는 32비트 및 64비트와의 호환성에 특히 중점을 둡니다. Intel은 새 코어에 8개의 64비트 GPR(R8-R15)을 추가하고 원래 GRP를 모두 64비트로 확장했습니다. 이는 위에서 언급한 것처럼 정수 컴퓨팅 기능을 향상시킬 수 있습니다. SSE, SSE2 및 SSE3에 대한 지원을 포함하여 멀티미디어 성능을 향상시키기 위해 8개의 128비트 SSE 레지스터(XMM8-XMM15)가 추가되었습니다.

Intel은 EM64T 기술을 지원하는 프로세서에 대해 레거시 IA-32 모드(레거시 IA-32 모드)와 IA-32e 확장 모드(IA-32e 모드)의 두 가지 주요 모드를 설계했습니다. EM64T 기술을 지원하는 프로세서에는 확장 기능 활성화 레지스터(IA32_EFER)라는 구성 요소가 있으며 그 중 Bit10은 EM64T 활성화 여부를 제어합니다. 비트10은 IA-32e 모드 활성 또는 LMA(장기 모드 활성)라고 합니다. LMA=0이면 프로세서는 표준 32비트(IA32) 프로세서로 기존 IA-32 모드에서 실행됩니다. LMA=1이면 EM64T가 활성화되고 프로세서는 IA-32e 확장 모드 Down에서 실행됩니다.

현재 64비트 기술을 지원하는 AMD의 CPU에는 Athlon 64 시리즈, Athlon FX 시리즈, Opteron 시리즈가 있습니다. 64비트 기술을 지원하는 인텔의 CPU로는 노코나 코어를 사용하는 제온 시리즈, 프레스콧 2M 코어를 사용하는 펜티엄 4·6 시리즈, 프레스콧 2M 코어를 사용하는 P4 EE 시리즈 등이 있다.

64비트 기술은 거침없는 파도처럼 다가오고 있습니다. 머지않아 우리는 64비트 운영체제에서 64비트 프로그램을 실행하는 데 익숙해질 것입니다.

上篇: 7zip 압축 해제 소프트웨어 사용 방법 下篇: 129 인치 아이패드는 몇 센티미터입니까?
관련 내용