ARMv8 (7) 썸네일형 리스트형 [Arm프로세서] AAPCS: Armv8: 함수를 호출하기 위한 디자인 AAPCS64 기준으로, 실제 함수를 호출하는 예시 코드와 함께, 함수를 호출하면 SP와 X30 레지스터가 어떻게 바뀌는지 알아보겠습니다. 함수가 호출될 때의 세부 동작 원리 파악하기 여러분이 다음과 같은 함수를 작성했다고 가정하겠습니다. 01 int add_func(int x, int y)02 {03 int result = x + y;04 printf("x:%d, y:%d \n", x, y);05 06 return result;07 } [정보]위에서 든 예시 코드는 6.2 절에서 봤던 코드와 같은데, Armv8 아키텍처 기반의 Arm 코어에서 이 코드를 실행하면 같은 기능을 수행합니다. Armv7 아키텍처 다룬 함수 디자인 규칙은 Armv8 아키텍처에 거의 그대로 적용됩니다. 공통으로 적용될 수 있는.. [인프런-로드맵] 'Arm 아키텍처의 구조와 원리 저자 직강 강의'- 모두 업로드 완료! (Arm 강의, Arm 교육) 작년부터 제가 쓴 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 책의 저자 직강 강의를 제작했습니다. 모든 강의가 마무리됐다는 소식을 전하기 위해 영상을 만들어 올립니다. 인프런에 로드맵 형태로 강의가 업로드됐는데요. 인프런 배너로 로드맵을 프로모션해주신 인프런 매니저님께 감사의 말씀드리고 싶습니다. 현재 30% 할인 쿠폰이 적용되어 프로모션 중이니 참고하세요. 시스템 소프트웨어 개발자를 위한 Arm - basic course https://www.inflearn.com/roadmaps/763'시스템 소프트웨어 개발의 모든 것 - 시스템 반도체와 전기 자동차 중심' '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강' '시스템 소프트웨어 개발을 위한 Ar.. [Arm프로세서] 트러스트존(TrustZone)의 유래 트러스트존의 유래를 소개하려면 먼저 시스템의 공격을 방지하기 위한 시스템의 설계 과정에 대해 언급할 필요가 있습니다. 2000년 초부터 다양한 소프트웨어 기술들이 소개되고 발전되는데, 이에 비례해 해킹 기술이 업그레이드됩니다. 해커들이 다양한 소프트웨어 기법을 활용해 시스템을 공격하면서 해킹의 공격 루트가 다양해집니다. 애플리케이션에서 디바이스 드라이버 그리고 네트워트 패킷이나 서버를 통해 시스템을 침입하는 경로가 늘어난 것입니다. 많은 IT 업체들이 해킹으로 피해를 보면서 보안 수준이 높은 시스템 아키텍처의 필요성을 절감합니다. 그래서 IT업체들은 중요한 데이터를 암호화해서 저장하거나 해커의 공격으로 보호 받을 수 있게 시스템을 설계하게 됩니다. 고육지책으로 보안과 관련된 기능(Feature)를 .. [Arm프로세서] GIC: 인터럽트 소스와 타입 효율적으로 인터럽트를 설정 및 처리하기 위해 GIC를 사용하는데, GIC의 가장 중요한 기능은 다음과 같이 요약할 수 있습니다. 인터럽트의 우선순위를 각 I/O 장치에 적용해 설정 입력으로 받은 인터럽트를 CPU에 전달 GIC는 인터럽트 컨트롤러이므로 GIC의 주된 기능은 다른 인터럽트 컨트롤러와 다르지 않습니다. 다른 인터럽트 컨트롤러와 다른 점은 GIC는 인터럽트를 4가지 종류로 분류해 관리한다는 점입니다. 이어서 GIC에서 정의된 4가지 인터럽트 소스를 소개하고 인터럽트 상태 머신을 설명합니다. GIC는 4가지 타입의 인터럽트 소스를 처리하며 다음 표에서 종류를 확인할 수 있습니다.표 10.2 GIC를 구성하는 인터럽트 소스의 종류 이처럼 GIC는 페리페럴에서 전달된 4가지 인터럽트 입력.. [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프로세서] HCR_EL2: 하이퍼바이저 콘트롤 레지스터 (Feat: Arm 강의) 하이퍼바이저 콘트롤 레지스터는 하이퍼바이저의 세부 동작을 설정하는 가장 중요한 레지스터 중입니다. HCR_EL2은 EL1에서 일어나는 세부 동작에 따라 EL2으로 진입(트랩)하는 방식을 설정할 수 있는 비트맵으로 구성돼 있습니다. 다음 그림은 HCR_EL2 레지스터의 비트 맵 정보입니다. 그림 12.3 HCR_EL2 레지스터의 비트 맵 다른 레지스터와 같이 레지스터를 구성하는 비트를 1로 설정하면, 해당 비트 맵과 관련된 동작이 수행됩니다. HCR_EL2 레지스터를 구성하는 비트 맵 중에 중요한 내용을 소개하겠습니다. IMO, bit [4] 이 비트가 1로 설정되면 EL2이나 EL1에서 설정된 인터럽트를 EL2에서 받아 처리합니다. 만약 SCR_EL3.IRQ 비트가 1로 설정되면 EL3가 인터럽트.. 이전 1 다음