본문으로 건너뛰기

ARM 차세대 명령어 세트 Arm®v9

· 약 13분
조만석

ARM은 3월 30일 온라인 컨퍼런스(ARM Vision day )에서 10년만에 Arm®v9 아키텍쳐를 공개했습니다. 이 글에서는 Arm®v8 시리즈의 기능 발전을 되짚어보고, AI/ML을 위해 새로이 추가된 기능과 함께 데이터센터로 확장을 시도하는 ARM 코어의 변화를 살펴보겠습니다.

ARM 차세대 명령어 세트 Arm®v9

정보기술 (Information Technology, IT) 산업의 발달은 고성능 CPU(Central Processing Unit, 중앙 처리 장치)와 함께 성장해왔습니다. 현재 시장은 인텔(Intel) x86/AMD64(x64) 와 ARM 코어가 양분하였다고 보아도 과언이 아닙니다. Intel/AMD의 x86/x64는 고성능과 함께 멀티코어 지원을 통하여 서버 환경에 최적화하는 것을 목표로 발전해 왔습니다. ARM사는 10년 전 Arm®v8을 발표하면서 스마트폰과 같은 모바일, 임베디드 환경에 맞게 저전력이면서 고성능을 중점을 둔 제품들을 발표해 왔습니다. 애플(Apple) A1시리즈 코어와 퀄컴(Qualcomm) Snapdragon, 삼성(Samsung) Exynos, 화웨이(Huawei) Kirin, 미디어택(Mediatek) Helio 등 대부분의 모바일 벤더들이 ARM 아키텍쳐를 사용합니다. 현재 전 세계 모바일 스마트폰에 사용하는 대다수 약 98%가 ARM 아키텍쳐를 사용하고 있어, 이번 Arm®v9 명령어 세트 아키텍쳐의 변화는 앞으로 IT 산업 발전에 큰 영향을 줄 것으로 보입니다.

ARM 아키텍처의 시작 ‘저전력이면서 고성능 컴퓨터를 만들자!’

1985년  영국의 컴퓨터 회사(Acorn Computer)는 1980년대 최신 CPU 코어 기술인 RISC와 32bits 코어를 사용하면서 소비전력이 적어야 한다는 목표를 세우고 VLSI Technology사 3마이크론(3um) 공정에서 프로토타입 형태의 Arm®v1을 발표했습니다. Acorn 컴퓨터는 프로토타입을 개선해서 1987년에 Arm®v2를 발표하고, 이를 사용한 PC를 제품화해서 시장에 내놓았습니다. 1980년대 말, Apple은 뉴턴 메시지 패드를 개발하면서 사용할 core로 ARM을 선정하면서 ARM사 지분에 투자했었습니다. 이후 ARM은 주로 저전력이 필요한 소형 단말, 가전, 공장 자동화 등의 목적으로 사용하면서 ARM v6 아키텍쳐까지 발전합니다. Apple사의 아이폰이 ARM v6 아키텍쳐를 AP(Application Processor)로 사용하고, ARM v7 아키텍쳐 또한 구글의 안드로이드용 AP로 주로 사용되면서 모바일 시장에서 점유를 넓혀갔습니다.

Arm®v8 발표

2011년 CPU ISA(Instruction Set Architecture)를 Arm®v7의 32bit에서 Arm®v8 64-bit 아키텍처로 전환합니다. ARM의 64bit 아키텍처는 AArch64로 불리며 Arm®v7의 32bit 하위 호환 동작을 보장하면서 64bit 확장 명령어 셋을 확장하여 가상화 및 RAS(Reliability, Availability and Serviceability) 등 엔터프라이즈 IDC 서버시장에서 요구되는 시스템적인 확장, 심층 학습을 위한 연산 확장, 그리고 보안 확장의 3가지 방향을 두고 발전하였습니다. Arm®v8을 사용한 대표적인 제품으로는 Apple사의 아이폰 5S ~ 12, 삼성 갤럭시 S5 ~ s21 등이 있습니다.

Arm®v9

ARM사는 지난 3월 30일 ARM Vision Day라는 온라인 설명회를 열어. 10년 만의 최신 아키텍처인 "Arm®v9"에 대해 발표했습니다. Arm®v9에 대해서는 발표 이전부터 몇몇 제품의 기술 발표를 통해 그 기능에 대한 여러 소문들이 나온 바 있었습니다. 일본 슈퍼 컴퓨터 후카쿠(Fugaku)에 사용하는 “A64FX"는 Arm®v8.2-A이지만, 개발 스케줄이 조금만 여유가 있었다면  Arm®v9을 사용할 수 있었다는 후담부터, 2018년 ARM TechCon의 Neoverse 세션에서는 Poseidon Platform 세대가 Arm®v9가 될 것임을 말했었습니다.

그림 1 ARM Neoverse에서 Arm®v9에 대한 언급

이 시점에서 Arm®v9는 2019년에 발표하고, 2020~2021 년에 IP 제공을 시작할 일정이었을 것으로 보입니다. 이유는 알 수 없지만 Arm®v9은 스케줄이 밀렸고, 그사이 Arm®v8.4-A ~ Armv8.6-A가 릴리즈되었습니다. 10년만에 새롭게 발표한 Arm®v9인만큼, 앞으로 계속 기술적인 발전과 함께 시장 기여도도 계속 성장했으면 하는 바램입니다.

그림 2. Arm®v9 Architecture (source : ARM Vision Day)

Arm®v9 Architecture

Arm®v9 세대는 새로운 성능 향상을 목표로 하며, Arm®v9은 ARM core의 하위 호환성(~Arm®v8까지)을 바탕으로 작은 마이크로 컨트롤러부터 대규모 서버까지 다양한 스케일의 시스템을 지원합니다. IT 시장에서 요구하는 기계학습(Machine Learning)과 DSP(Digital Signal Processing)의 연산 능력을 강화하였고 하드웨어 기반 보안에 대한 개발 및 새로운 기능이 소개되었습니다. 기계학습에서 자주 사용하는 벡터 연산 지원을 위해 Arm®v8.2-A에서 추가된 SVE기능에 더하여 HPC(High Performance Computing)를 위한 SVE2로 강화되었으며, 5G 네트워크, VR/AR 메타버스에 맞게 FP16, BF16에 대한 데이터 타입도 함께 지원합니다.

그림 3 ARM MatMu과 bFloat16 지원 (Source: Hiroshige Goto)

머신러닝에서 많이 사용하는 8bit 미만의 데이터 형식도 지원(INT 1/2/4)하고, 이기종 연산 core 간 유연한 데이터 액세스(Gather-Scatter DMA)또한 지원합니다.

그림 4 Arm®v9의 주요 기능과 활용 분야

ARM 사는 Arm®v9에 하드웨어 기반의 보안 환경에서 연산을 가능하게 하는 CCA(Arm Confidential Compute Architecture)도 발표했습니다. CCA 기능에 대한 이해를 돕기 위해 Armv8-A 세대별 추가된 기능을 정리했습니다.

Armv8.3-A Pointer Authentication은 ROP(Return-Orientated-Programming)과 JOP(Jump-Orientated-Programming) 지원 시 Stack Address 등을 다시 써서 잘못된 프로그램이 실행되거나 해킹의 위험을 방지하기 위해서 Address의 일부는 다른 위치에 저장하고 Stack에는 그 다른 장소의 Index를 포함하는 형태로, 프로세스가 부정한 방법으로 스택에 주소를 직접 접근하지 않도록 인텍스를 넣어서 부정한 접근을 방지하는 기술입니다. ARM 명령어 셋에서 사용하는 ROP / JOP을 이용한 취약점을 방지하기 위해서 지원한 기능으로 Armv8.5-A와 Armv9.0-A는 RNG / BTI / Memory Tagging / Cache Clean to Pointer 기능을 지원하고 Armv8.6-A와 Armv9.1-A 는 MatMul 명령 / bfloat16 / 가상화 강화 / 포인터 인증 강화 / 정밀 타이머 기능을 지원합니다. 그리고 Armv8.7-A와 Armv9.2-A에서는 PCIe Hot plug / Atomic 64 Bytes / WFI 및 WFE 기능을 지원하며 Branch-Record recording 기능의 경우 v9.2-A만 지원합니다.

그림 5 Arm®v8의 주요 보안 기능

Arm®v9에서 새롭게 선보인 기능은 A Profile을 들 수 있는데요. 새로운 Realms (영역)라는 개념이 도입되었습니다. CCA는 Arm®v8 보안 기능인 TrustZone에 있는 보안 및 비보안으로 구분하여 실행하는 대신, 일반 어플리케이션도 동적으로 메모리에 접근할 수 있는 Realm (영역)이라는 개념을 사용합니다. 해당 영역은 운영체제나 가상화 하이퍼바이저와는 완전히 분리되어 신뢰할 수 있는 소수의 관리 소프트웨어만 실행할 수 있습니다. 메모리의 페이지 테이블은 일반 메모리와 이 영역의 메모리 사이에서 공유할 수 있습니다.

그림 6 Arm®v9 CCA

예를 들어 앱스토어에서 다운로드한 공유 응용 프로그램이 OS 나 하이퍼바이저는 보지 못하는, 비밀을 유지하면서 작업하는 영역을 만들 수 있습니다. 그래서 운영체제가 해킹 등으로 칩입을 허용한 경우에도, 해당 Realm (영역)에서 사용하는 데이터는 안전하게 보호할 수 있습니다. 개인의 중요한 정보나 상업적 가치가 있는 알고리즘의 누출을 막을 수 있기 때문에 드라이버나 전용 보안 장치가 없이도 Realm (영역)을 이용하여 개인 정보를 포괄적으로 보호 할 수 있고 보안은 더 확실할 수 있도록 합니다.

그림 7 데이터 센터용 ARM Neoverse V1 플랫폼

맺음말

Armv9 세대는 작년 말 애플의 M1에 대한 놀라운 성능과 더불어 NVIDIA의 GTC2021에서 발표한 ARM코어 기반 데이터 센터용 CPU “Grace”, 그리고 서버 시장을 위한 범용 ARM IP Neoverse등을 통해 그 관심이 확대되고 있으며, 저전력 프로세서라는 강점을 확장하여 데이터 센터 및 인공지능 분야로의 본격적인 확장을 알리기 시작했습니다. Intel이 6세대 core 이후 반도체 공정과 성능 향상이 답보된 상황에서, AMD의  Zen 의 성능 향상 및 ARM 코어 IP를 활용한 다양한 AP 제조사들의 엔터프라이즈 시장 진출은 또 다른 시장 경쟁을 유발할 것으로 예상됩니다. 이러한 경쟁은 시장에서 요구하는 인공지능, 메타버스, 5G 네트워크 서비스 확대와 함께 모바일부터 고성능컴퓨팅에 걸친 컴퓨팅 분야의 발전을 이끌어낼 것으로 보입니다.