Hardware

Apple이 iPhone 5s의 "A7"에서 모바일 ARM 64-bit를 제일 먼저 시작

crazyits 2013. 9. 18. 19:43
반응형

iPhone의 역사에서 가장 큰 변화가 될 iPhone 5s

Apple의 "iPhone 5s"는 iPhone 역사의 이정표가된다.

CPU의 명령 세트 아키텍처가 기존의 ARMv7에서 차세대 ARMv8 (ARM Version 8)으로 바뀌어, iOS가 32-bit 기반에서 64-bit 기반으로 바뀌기 때문이다. 하드웨어 적으로 보면 사상 최대의 점프이며, OS의 바이너리도 완전히 바뀐다.

 

Apple은 iPhone 5s의 핵심 SoC "A7"은 모바일 부문에서는 64-bit 제일 먼저 도착하게된다. ARM 아키텍처 CPU의 64-bit 화는 아직 초기 단계이며, 서버용 CPU가 일부 출하되고 있는 단계이다. ARM의 로드맵에서도 64 bit 프로세서는 올해 (2013 년) 프로토 타입이고 실 제품은 2014 년으로 되어 있었다. 또한 ARM 자신도 64 bit를 먼저 ARM 코어를 서버에 사용하고 싶다는 요청이 있었기 때문에 개발하고 있다고 설명했다. 즉, 서버 초점 이었던 제품을 Apple은 스마트 폰에 도입했다.

 

사실, 다른 모바일 AP (Application Processor) 업체도 64-bit 화를 추진하고 있으며, 내년 (2014 년)에 시장에 등장하기 시작한다. 하지만 지금은 iPhone 5s의 독주이다. Android OS 자체도 현 단계에서는 64-bit를 제품으로 낼 수 있는 단계는 아니다.

 

32-bit이었다 ARM 아키텍처는 2011 년 가을에 발표 한 "ARMv8"명령어 세트에 64-bit 명령을 추가했다. 그리고 ISA (Instruction Set Architecture : 명령어 세트 아키텍처)의 발표에서 1 년 뒤인 지난해 (2012 년)에는 ARM 자신의 디자인 ARMv8 기반 CPU 마이크로 아키텍쳐 "Cortex-A57 '과'Cortex-A53 '를 발표하고있다. 그러나 ARM 아키텍처 라이센스를 받고 있는 업체는 Cortex-A53/57과 병행하여 각사 독자적인 ARMv8 구현 CPU 코어를 개발했다. Apple의 A7도 그 중 하나로 보인다.

 

 

Apple이 iPhone 5s를 64-bit 화하는 이유

왜 Apple은 iPhone을 64-bit 화하려고 하고 있는 것인가. 보통의 경우 CPU의 ISA를 32-bit에서 64-bit로 이행시키는 효용은 성능 향상보다는 메모리 주소 공간 확장이 더 크다. 64-bit 정수 연산을 지원해서 일반 응용 프로그램에서는 성능이 별로 향상되지 않는다. 반면 ,32-bit의 메모리 주소 공간 4GB의 한계를 넘어, 4GB보다 큰 메모리 주소를 사용할 수 있는 이점은 크다.

그러나 iPhone 5s, ARM 기반 모바일 애플리케이션 프로세서의 경우는 사정이 다르다. 그것은 ARM이 현재의 복잡하고 오래된 ISA가 다양하게 제약되어 있기 때문이다. 따라서 ARM의 경우는 64 bit 화의 큰 효용 중 하나는 성능 향상의 헤드 룸을 늘려 현대적인 소프트웨어 구조를 도입 쉽게 할 수 있다.

그러나 중기 적으로 보면 태블릿 탑재 메모리가 4GB에 도달하기 시작하면 64 bit로 인한 메모리 주소 공간의 확장은 의미를 가지기 시작한다. LPDDR 계 DRAM 칩 자체의 대용량화도 DDR을 웃도는 페이스로 진행되고 있기 때문에 하드웨어 구현에도 메모리의 대용량화가 용이하게 된다. 또한 ARM은 가상 컴퓨터의 하드웨어 지원도 구현하고 있기 때문에 가상 컴퓨터를 위한 메모리 공간이라는 면에서도 주소 공간의 확장은 의미가 있다.

또한 최고점을 보면 새로운 비 휘발성 메모리 시대에 대비한 메모리 공간의 확장이라는 의미도 있다. 현재 DRAM의 워크 메모리는 비 휘발성이 되고, 스토리지 및 워크 메모리가 붙어 있을 때면 모바일 디바이스에 탑재 된 수십 GB 또는 수백 GB의 메모리를 주소해야 나온다. 이 경우 64 bit 아키텍처가 필수가 된다.

 

 

명령어 세트의 재설정 성능 향상을 목표로

ARM에게 새로운 ARMv8의 의미는 ARM ISA (Instruction Set Architecture : 명령어 세트 아키텍처)의 재설정에 있다. ARM은 기존의 ARM ISA는 원래 Acorn의 교육용 컴퓨터에 대해 Acorn 전용 OS을 위해 설계되었다. 따라서 일반적인 RISC (Reduced Instruction Set Computer) 계 CPU의 ISA보다 훨씬 복잡하고 전문이다. ARM은 과거에 새로운 명령어 세트 'Thumb2 "계 등을 더하는 것으로, ISA 재설정을 도모 해 왔지만, 잘 적용되지 않았다. 그래서 ARM은 64-bit 화에 있어서는 완전히 ISA를 현대적인 스타일로 일신했다.

즉, ARMv8은 단순한 명령 64-bit 화가 아닌, 명령 세트의 쇄신으로,이를 통해 하드웨어도 크게 영향을 받는다. 구체적으로는 ARMv8 64-bit 스테이트 "AArch64 '에서 명령어 형식과 레지스터 파일 구성, 예외 처리 모델 등을 확 바꾼다. ARM 명령어 세트의 특수성이었다 명령어의 조건부 실행 및 복합 작업 명령, 복잡한 예외 처리 모드 뱅크 레지스터 같은 부분을 변경합니다. 말하자면, ARM의 ISA를 일반 RISC형 ISA로 바꾸려고 하고 있다.

특히 성능에 미치는 영향이 큰 것은 레지스터 파일의 확장이다. ARM 아키텍처는 지금까지 범용 레지스터는 r0-r15의 16 개였다. Intel 아키텍처도 16 개지만 레지스터를 많이 사용하지만 RISC형 명령 계의 ARM은 16 개는 상당한 제약이다. 게다가 ARM은 프로그램 카운터도 범용 레지스터 (r15)를 사용하기 때문에 실질적으로 사용할 수 있는 레지스터 수는 더 적다. 완전히 자유롭게 사용할 수 있는 것은 13 개로, 게다가 원래 ARM은 예외 모드가 많아 예외 모드에 따라 범용 레지스터 뱅크 전환하는 사양이 되어 있었다.

 

그러나 ARMv8의 AArch64에서는 레지스터는 정수 범용 레지스터가 31 개 + 제로 레지스터 미디어 레지스터가 32 개로 늘어난다. 뱅킹도 없다. 사용할 수 있는 레지스터 공간이 넓어 AArch64는 컴파일러 친화적이고 지금까지와 같은 레지스터 개수 제한으로 인한 쓸데없는 명령 등이 없어져, 그것만으로도 고속화가 기대된다. 그러나 64 bit를 통한 코드 크기가 증가하여 인출 효율의 저하 등의 부정적이다. 무엇보다, AArch64 64-bit 명령도 명령 길이는 32-bit에 억제되어 있기 때문에 코드가 배가되는 것은 아니다.

 

또한 ARMv8의 구현은 실제로 CPU는 2 계열의 명령어 디코더를 갖게된다고 볼 수 있다. 명령 디코더 적으로도 64 bit 명령어 것이 더 간단하고 취급하기 쉬운 것으로 보인다. 64-bit에 최적화하면 64 bit 모드가 빨라진다 CPU 마이크로 아키텍처가 될 수 있다고 볼 수 있다.

 

 

32-bit와의 호환성을 취하는 ARMv8 아키텍처

ARMv8에서는 호환성을 위해 기존의 명령어 세트 호환 32-bit 스테이트 "AArch32 '도 마련했다. AArch32는 기존의 ARM 명령어 세트는 Thumb2을 포함하여 지원된다. 따라서 ARMv8의 CPU에서도 기존의 32-bit 응용 프로그램은 그대로 64-bit OS에서 실행시킬 수 있다.

 

64-bit 스테이트 AArch64와 32-bit의 AArch32 사이는 스테이트 교체 식에서 64-bit와 32-bit를 병존한다. 양 스테이트 사이의 전환은 예외 처리에서 예외 수준에서 보면 아래의 슬라이드 있게 된다. 새로운 실행 모델은 ARM의 보안 솔루션 인 'TrustZone'소프트웨어 계층과 OS 사이에 Hypervisor가 배치된다.

 

이러한 확장은 보안 가상 머신의 보안도 ARMv8 더 추진된다. 보안은 개인 정보를 가지고 다니는 모바일 기기에 매우 중요한 포인트 다. 특히 iPhone 5s에서는 생체 인증 데이터와 같은 외부에 누설되면 치명적인 데이터를 유지하도록 하기 때문에 보안 강화가 필요하다.

ARMv8는 ,48-bit 주소 (256TB)까지 가상 메모리 공간을 지원 (Cortex-A57의 경우 실제 메모리 주소 공간은 44-bit)있다. 대용량 메모리가 필요한 서버에서 ARMv8이 필요로 하는 가장 큰 이유는 여기에 있다. 현재는 iPhone도 iPad도 최대 메모리는 1GB이므로, 현 세대 탑재량이 증가해도 2GB. 32-bit의 제약이다 4GB 공간이 문제가 되기에는 아직 1 ~ 2 세대 빠르다.

그러나 모바일 용 LPDDR 계 메모리는 모바일 장치의 메모리 탑재량이 급증하고 있는 것으로, 대용량화에 박차를 가하고 있다. 4G-bit 제품으로 이행이 진행되어 더욱 8G-bit 제품으로 전환하면 태블릿에 탑재 할 수있는 4 개의 DRAM 칩에서 4GB에 도달한다. 따라서 멀지 않은 시점에서 iOS 디바이스에 탑재되는 실제 메모리도 4GB의 울타리를 넘는 것이다. 메모리 공간의 확장은 가상 컴퓨터의 메모리 공간의 매핑을 용이하게 한다. 무엇보다 실제로는 Cortex-A15에도 "Large Physical Address Extensions (LPAE) '에서도 40-bit까지의 실제 주소를 지원한다.

 

 

미래의 비 휘발성 메모리 시대의 포석도 된다

멀지 않은 시점에서 DRAM의 메모리 셀의 미세화는 교착 상태, 계속하여 3D 화하는 NAND도 용량 증대의 한계에 도달합니다. 더 정확하게는 비용을 올리지 않고 용량을 증대시키는 것이 어려워진다. 따라서 차세대 비 휘발성 메모리가 DRAM과 NAND를 대체 것으로 보고되고 있다.

이렇게 되었을 때, 고용량 고속 새로운 비 휘발성 메모리 기술은 프로그램을 실행하기 위한 작업 메모리와 코드 및 데이터 저장 메모리를 모두 하나의 메모리로 겸하게 가능성이 나온다 . 지금의 iPhone이나 iPad는 메인 메모리의 DRAM 및 스토리지 NAND으로 나누어 져 있지만, 향후 모바일 시스템에서는 양자가 통합될 것이다.

메모리와 스토리지의 구분이 없어진 경우 프로세서 측은 모든 탑재 메모리에 주소 할 수 있도록 해야 된다. 예를 들어, 수백 GB 또는 몇 TB 같은 메모리에 선형 적으로 접근하는 것이 물리적 주소 공간의 확장이 필수가 된다. 그때, PC 형 시스템이 아직 워크 메모리와 스토리지를 분리했다면, 모바일 시스템 쪽이 더 넓은 물리적 메모리의 주소 능력이 필요할 것이다. 이것은 또한 모바일 기기의 기존의 실행 스타일이며, NOR 플래시 시대 "XIP (eXecute In Place)"모델로의 회귀이기도 하다.

 

이렇게 보면 Apple이 64-bit 화하는 이유도 보인다. Apple이 CPU 코어를 자체 제작 한 이유도 64 bit 화에 있어서는 사용자 CPU를 재빨리 갖고 싶었던 생각하면 앞뒤가 맞을 것 같다.

 

원본 글 : http://pc.watch.impress.co.jp/docs/column/kaigai/20130918_615784.html

반응형