AArch64란 무엇입니까? 이 CPU 아키텍처에 대해 알아야 할 사항

click fraud protection

내부에 AArch64 프로세서가 있는 장치를 사용했을 수도 있지만 이것이 무엇을 의미하는지 모를 수도 있습니다. 여기 당신이 알아야 할 것이 있습니다.

CPU가 많다. 아키텍처 가장 큰 것들은 x86 그리고 . AArch64는 아마도 당신의 레이더 아래로 날아갔을 것입니다. 수백만 대의 장치에 존재한다는 사실에도 불구하고 꽤 잘 읽은 기술 애호가조차도 들어 본 적이 없을 것입니다. 글쎄요, 문제는 AArch64가 매우 혼란스러운 기술 용어이기 때문에 신비하지 않다는 것입니다. 다음은 AArch64에 대해 알아야 할 사항입니다.

AArch64는 ARM64입니다.

출처: 팔

즉, AArch64는 Armv8-A 업데이트와 함께 도입된 Arm의 64비트 ISA(명령어 세트 아키텍처)의 공식 이름입니다. 거의 항상 AArch64를 참조합니다. ARM64가 AArch64 대신 자주 사용되는 이유는 명확하지 않지만 혼란의 일부는 두 곳에서 비롯된 것 같습니다. 그 중 일부는 x86의 64비트 확장이 x86-64이기 때문에 당연히 ARM의 64비트 확장은 ARM64여야 합니다. Apple은 확실히 그렇게 생각하는 것처럼 보였고 2014년까지 AArch64를 ARM64로 언급했습니다. 대부분의 사람들에게 "AArch64 is ARM64"는 매우 만족스러운 설명입니다.

정말 기술적으로 접근하고 싶다면 AArch64는 ISA가 아니라 실행 상태 이는 ARM CPU가 Armv8-A 아키텍처와 함께 처음 도입된 ARMv8 ISA의 A64 명령어 세트를 사용(및 사용만)하도록 허용합니다. 이것이 혼란스럽게 들린다면 그것은 그렇기 때문입니다. 이는 컴퓨터 아키텍처에 익숙하더라도 이해하기 어려울 수 있으므로 단계별로 설명하겠습니다.

따라서 기술적으로 AArch64는 ISA가 아닌 상태이지만 Arm 자체를 포함하여 아무도 신경 쓰지 않습니다.

ARM은 관련 ISA의 제품군이며 서로 다른 ISA가 일반적으로 비호환성을 암시하지만 이는 엄밀히 말해 사실이 아닙니다. ARM ISA의 다른 버전은 ARMv1, ARMv2 등으로 불리지만 이러한 ISA에는 본질적으로 하위 ISA인 A-프로파일, M-프로파일 및 R-프로파일이 포함되어 있습니다. 이러한 하위 ISA의 기본적인 차이점은 각각 사용하는 명령의 최소량입니다. A-프로파일은 가장 많이 사용하고 M-프로파일은 가장 적게 사용합니다. 따라서 ARM ISA는 ARMv8과 같은 개별 버전으로 나뉘고 해당 버전은 ISA의 다른 구현으로 더 나뉩니다.

Armv8-A는 AArch32 및 AArch64라는 두 가지 새로운 항목을 추가한 ARMv8 ISA의 초기 A-프로파일 구현입니다. 이를 상태 또는 모드라고 하며 ARM CPU가 다른 명령어 세트에 액세스할 수 있도록 합니다. 32비트 A32 및 T32 명령어를 포함하는 AArch32와 64비트 A64를 포함하는 AArch64 지침. 예를 들어 프로세서가 현재 AArch64 상태이고 A32 명령어를 사용하려는 경우 상태를 AArch32로 변경해야 합니다. 또한 AArch64 모드에서는 32비트 및 64비트 레지스터 모두에 액세스할 수 있지만 AArch32 모드에서는 32비트 레지스터만 사용할 수 있습니다. 이 모든 것의 가장 혼란스러운 부분은 이 모든 것들이 ISA로 다양하게 언급되고 심지어 Arm(ARM ISA를 개발하는 회사)이 이에 대해 유죄라는 것입니다.

그러나 우리가 매우 기술적이라면 이것이 실제 상황입니다. ARM ISA의 8번째 버전인 ARMv8은 AArch32 및 AArch64라는 두 가지 상태를 포함하는 Armv8-A로 처음 구현되었습니다. CPU가 AArch64 상태에 있으면 64비트 A64 명령어를 실행할 수 있습니다. 따라서 기술적으로 AArch64는 ISA가 아닌 상태이지만 Arm 자체를 포함하여 아무도 신경 쓰지 않습니다.

ARM에서 32비트와 64비트가 모두 중요한 이유

따라서 AArch64는 실제로 매우 복잡하고 32비트 및 64비트 명령을 사용하기 위해 상태를 전환해야 하는 것이 번거로워 보입니다. 문제는 32비트와 64비트 모두에 대한 지원이 너무 중요해서 그냥 지나칠 수 없다는 것입니다. 결국 두 가지 주요 문제로 귀결되었습니다. 오래된 32비트 소프트웨어를 지원해야 하는 것과 현대적인 고성능 컴퓨팅을 추구하는 것입니다.

Arm이 최초의 64비트 ISA에 32비트 소프트웨어에 대한 기본 지원을 포함하지 않았다면 재앙이 되었을 수 있습니다. 간단히 말해 아무도 코드를 다시 작성하고 싶어하지 않기 때문입니다. ARMv8이 모든 사람이 처음부터 새 소프트웨어를 작성하도록 요구했다면 ISA는 아무도 만들거나 구매하지 않는 죽음의 소용돌이에 빠질 수 있습니다. 소프트웨어 부족으로 인해 ARMv8 장치, 그리고 개발자는 사용자 부족으로 인해 앱을 만들지 않으며 Arm이 호출해야 할 때까지 무한정 피장 ​​장이 된. 따라서 32비트 지원은 타협할 수 없었습니다.

반면에 64비트 컴퓨팅을 구현하지 않는 것도 선택 사항이 아니었습니다. x86 뒤에 있는 회사인 Intel과 AMD는 2000년대 초반부터 64비트 아키텍처를 놀라운 CPU하지만 당시에는 휴대폰에 64비트 ARM 칩이 필요하지 않았기 때문에 64비트 ARM 칩에 대한 요구가 없었습니다. 하지만 스마트폰의 발명은 모든 것을 바꿔놓았고 모두가 스마트폰으로 더 많은 일을 하기를 원했습니다. 64비트 지원은 스마트폰을 더욱 강력하게 만드는 데 도움이 될 뿐만 아니라 문을 열었습니다. x86이 전통적으로 우세한 노트북 및 서버.

기본적으로 이 전체 명명 혼란은 Arm이 변화하는 우선 순위에 대응하여 기술을 현대화해야 했기 때문에 발생했습니다. 아마도 Arm은 이런 방식으로 64비트 지원을 구현할 필요가 없었지만 그렇게 했고 이것이 AArch64가 나온 방식입니다. AArch64는 ISA가 아니지만 대부분의 사람들이 좋든 나쁘든 이 용어를 사용합니다.