전체 글 (484) 썸네일형 리스트형 [Arm프로세서] 트러스트존(TrustZone)이 도입된 이유 트러스트존의 유래를 설명하기에 앞서 해커가 시스템에 침투해 해킹하는 것을 방지하기 위해 시스템을 설계하는 과정을 언급할 필요가 있습니다. 2000년 초부터 다양한 소프트웨어 기술들이 소개되고 발전했는데, 이에 비례해 해킹 기술도 업그레이드됩니다. 해커들이 다양한 소프트웨어 기법을 활용해 시스템을 공격하면서 해킹의 공격 루트가 다양해집니다. 디바이스 드라이버를 시작으로 네트워트 패킷이나 서버를 통해 시스템을 침입하는 경로가 늘어났습니다. 많은 IT 업체들이 해킹으로 피해를 보면서 보안 환경을 구축할 수 있는 보안 시스템의 필요성을 절감하기에 이르렀습니다. 그래서 IT업체들은 중요한 데이터를 암호화하거나 해커의 공격으로부터 보호할 수 있는 시스템을 설계합니다. 고육지책으로 보안과 관련된 기능을 제공하는 하드.. [Arm프로세서] Armv8 아키텍처의 익셉션 소개 많은 분들이 생각하는 익셉션의 개념은 'Armv7 아키텍처의 익셉션'인 경우가 많아, Armv8 아키텍처를 배울 때 Armv7 아키텍처의 익셉션과 비슷할 것이라 예상합니다. 익셉션이 발생하면 지정한 주소로 프로그램 카운터를 브랜치하는 기본 개념은 Armv7/Armv8 아키텍처가 같으나, 익셉션을 처리하고 분류하는 체계와 세세한 처리 방식이 많이 다릅니다. Armv8 아키텍처의 익셉션은 고성능 컴퓨터에서 적용되는 트러스트 존이나 가상화 시스템인 하이퍼바이저를 이해하기 위해 반드시 알아야 할 기반 지식이므로, 반드시 잘 알아야 둬야 합니다. 익셉션(Exception)은 Armv8 아키텍처의 핵심 기능 중 하나입니다. Armv8 아키텍처에서 정의된 익셉션를 활용해 하이퍼바이저와 같은 가상 시스템을 설계할 수 .. [Arm프로세서] Armv8 익셉션(Exception)의 전반적인 특징 그 동안 Arm 아키텍처는 CPU 아키텍처 시장에서 '저전력', '소형 디바이스' 용으로 사용되는 CPU 아키텍처로 분류됐습니다. 최대한 적은 트렌지스터를 사용해 최소의 소모 전력으로 CPU를 설계했기 때문입니다. 물론 Arm 코어의 CPU 아키텍처도 최대한 심플하게 디자인했습니다. 익셉션의 구조 관점으로 보면, Armv7 아키텍처의 익셉션도 다음과 같이 심플하게 설계됐다고 볼 수 있습니다. ❑ 익셉션 벡터가 4바이트 단위로 정렬 ❑ 어떤 Arm 동작 모드에서 익셉션이 발생해도 익셉션 벡터로 브랜치 ❑ 익셉션의 종류도 8개로 정의 내림 그런데, Armv8 아키텍처는 CPU 아키텍처 시장에 "우리는 고성능 컴퓨터나 클라우드 서버에 진출하겠다"라고 출사표를 던지고 설계한 것으로 보입니다. 기존의 소형 저전력.. [Arm 프로세서] Armv7: 인터럽트 타입 익셉션의 실행 흐름 ARM 아키텍처에서는 메모리 어보트 타입과 더불어 외부 인터럽트도 익셉션의 한 종류로 처리합니다. 외부 인터럽트는 메모리 어보트와 달리 하나의 기능으로 동작하므로, 외부 인터럽트의 익셉션 핸들러는 인터럽트 서비스 루틴을 실행합니다. 인터럽트 서비스 루틴을 통해 외부 하드웨어의 변화에 대해 소프트웨어적인 처리를 수행합니다. 그런데 인터럽트 타입 익셉션은 메모리 어보트 타입 익셉션과 어떤 차이점이 있을까요? 메모리 어보트 타입 익셉션은 ARM 코어가 명령어를 제대로 실행할 수 없는 상황에서 유발됩니다. 하지만, 인터럽트 타입 익셉션은 메모리 어보트 타입 익셉션과 달리 외부 하드웨어가 인터럽트라는 전기 신호를 발생시키면 ARM 코어가 이를 익셉션의 한 종류로 받아 처리하는 것입니다. 즉, 외부 하드웨어에서 어.. [Arm프로세서] 트러스트존(TrustZone)이란? 트러스트존은 Arm 아키텍처가 제공하는 보안 확장 기술로서 IT 업계에서 많이 활용됩니다. 트러스트존과 관련된 명령어나 레지스터를 활용해 보안 업체나 SoC 칩 벤더는 보안 환경을 구축할 수 있습니다. 많은 휴대폰과 디지털 TV에 트러스트존이 활성화된 상태로 Arm 프로세서가 실행 중입니다. 그렇다면 트러스트존이란 어떤 기술일까요? 트러스트존은 다음과 같은 콘셉트로 설계됐다고 설명할 수 있습니다. 소프트웨어나 하드웨어적으로 CPU 내부에 신뢰할 수 있는 보안 영역을 확보하자! CPU 내부에 신뢰할 수 있는 보안 영역을 시큐어 월드(secure world)라고 정의하고, 나머지 영역을 논시큐어 월드(non-secure world)로 정의합니다. 트러스트존은 시큐어 월드에 보안성이 높은 시큐어 앱, 시큐어 .. [Arm프로세서] Armv8 아키텍처에서 익셉션 레벨 별로 익셉션이 처리되는 흐름 Armv7 아키텍처의 익셉션과 비교했을 때, Armv8 아키텍처에서는 익셉션을 분류하는 체계와 익셉션 벡터 테이블이 약간 다릅니다. 그 특징에 대해서 더 자세히 알아봅시다. 첫째, Armv8 아키텍처에서는 익셉션의 종류를 계층 구조로 재정의했습니다. 먼저 익셉션을 Synchronous와 Asynchronous와 같이 큰 카테고리로 분류하고, 하부 카테고리로 익셉션 클래스를 정의했습니다. Armv7 의 익셉션의 종류는 익셉션 클래스에서 확인할 수 있습니다. 표 9.1 Armv8 아키텍처에서 익셉션의 분류 체계 먼저 익셉션을 Synchronous와 Asynchronous와 같이 큰 카테고리로 분류합니다. Arm 코어가 명령어를 실행하다가 유발하는 익셉션을 Synchronous, 외부 인터럽트나 외부 메모리 .. [ARM프로세서] ARMv7: 메모리 어보트 타입 익셉션의 실행 흐름 메모리 어보트 타입 익셉션이 발생하면 익셉션 핸들러에서 디버깅 정보를 출력하고 시스템을 리셋시킵니다. 소프트웨어적으로 시스템이 치명적인 오류가 있는 상태로 판단하기 때문입니다. 다음 그림을 보면서 메모리 어보트 타입 익셉션의 전체 실행 흐름을 알아봅시다. 그림 8.2 메모리 어보트 타입 익셉션이 발생할 때 전체 흐름 익셉션의 전체 실행 흐름도는 4단계로 분류할 수 있는데, 각 단계 별로 어떤 동작을 수행하는지 알아봅시다. 1단계: 프로세스가 실행하는 도중에 익셉션을 유발하는 명령어 실행 먼저 ①로 표시된 부분을 눈으로 따라가 봅시다. 프로세스가 메모리 어보트를 유발하는 명령어를 실행하는 부분입니다. 2단계: ARM 프로세서가 익셉션을 감지 ② 로 표시된 부분은 ARM 프로세서가 익셉션을 감지하는 동작입니.. [Armv7-익셉션] Armv7 익셉션(Exception)을 구성하는 주요 개념 처음에 ARM 아키텍처의 익셉션을 공부할 때 익셉션 벡터 테이블을 이해하는데만 집중하는 분들이 많습니다. "ARMv7 아키텍처의 익셉션 동작 원리를 파악하려면 익셉션 벡터 테이블만 제대로 이해하면 된다"라고 생각하기 때문입니다. 하지만 익셉션 벡터 테이블의 내용만 익히면 배운 내용을 실전 프로젝트에 활용하기 어렵습니다. 왜냐면, 익셉션 벡터 테이블의 내용보다도 다음과 같은 사실을 파악하는게 더 중요하기 때문입니다. ❑ 익셉션은 소프웨어적으로 어떤 명령어가 실행될 때 유발될까? ❑ ARM 프로세서가 익셉션을 감지한 후 소프트웨어적으로 어떤 처리를 수행할까? 위에서 소개한 질문에 답을 하려면 다음 그림에서 소개한 익셉션을 구성하는 주요 개념에 대해 파악할 필요가 있습니다. 그림 8.1 ARMv7 익셉션을 구.. 이전 1 ··· 7 8 9 10 11 12 13 ··· 61 다음