전체 글 (484) 썸네일형 리스트형 [ARM프로세서] 함수 호출 규약(Calling Convention)이란 호출 규약(Calling Convention)이란 무엇일까요? 어떤 함수를 호출했을 때 서브 루틴이 자신을 호출하는 함수로부터 인자를 어떤 방식으로 받아 결과를 반환하는지에 대한 규약입니다. x86, RISC-V와 같은 CPU 아키텍처마다 함수 호출 규약(Calling Convention)을 정의하는데, ARM 프로세서에서는 이를 AAPCS(Procedure Call Standard for ARM Architecture)라고 명시합니다. 앞으로, AAPCS를 함수 호출 규약이라고 명시하겠습니다. 연산을 수행하는 ARM 어셈블리 명령어에서 레지스터는 연산의 결과를 임시로 저장하는 역할에 그칩니다. 그래서 각각 레지스터의 역할을 세세하게 배울 필요가 없는데요. 함수 호출 규약을 배울 때는 다릅니다. 그것은 .. [ARM프로세서] ARMv7: ARM 동작 모드란 ARM 아키텍처 문서를 보면 가장 먼저 보이는 용어가 ARM 동작 모드입니다. ARM 아키텍처를 이해하기 위해 꼭 알아야 하는 개념이니 자주 보면서 익혔으면 합니다. ARM 동작 모드를 잘 배워야 시스템을 디자인하거나 디버깅을 할 때 유용하게 활용할 수 있습니다. User 모드를 시작으로 각각 동작 모드에 대해 소개하겠습니다. User 모드 휴대폰에서 사용하는 브라우저, 카카오톡와 같은 애플리케이션이 구동되는 모드입니다. 라즈베리 파이에서 다음과 같은 유저 애플리케이션 코드를 빌드해 애플리케이션을 동작하는 모드입니다. #include int main() { printf("hello, world\n"); return 0; } 유저 모드에서 실행되는 코드는 메모리와 같은 리소스를 접근할 때 제약이 있습니다... [ARM프로세서] ARMv8 아키텍처의 레지스터 이번에는 ARMv8 아키텍처의 64비트 명령어 기준으로 레지스터 세트에 대해 알아봅시다. 다음은 ARM 스팩 문서에서 발췌한 내용입니다. 출처: DDI0487A_g_armv8_arm.pdf B1.2.1 Registers in AArch64 state In the AArch64 application level view, an ARM processing element has: R0-R30 31 general-purpose registers, R0 to R30. Each register can be accessed as: • A 64-bit general-purpose register named X0 to X30. • A 32-bit general-purpose register named W0 to W30. .. [ARM프로세서] ARMv7 아키텍처의 레지스터 ARMv7 아키텍처에서 사용되는 레지스터는 범용과 특별 용도 레지스터로 구분할 수 있습니다. 먼저 범용 레지스터에 대해 살펴봅시다. 다음은 ARM 스팩 문서에서 발췌한 내용입니다. 출처: DDI0406C_arm_architecture_reference_manual.pdf A2.3 ARM core registers In the application-level view, an ARM processor has: • thirteen general-purpose 32-bit registers, R0 to R12 • three 32-bit registers with special uses, SP, LR, and PC, that can be described as R13 to R15. 위 내용은 "R0~R12 레지스.. [ARM프로세서] 어셈블리 명령어란 우리가 외국인이 어떤 사람인지 잘 알려면 외국어를 배워야 합니다. 외국어를 직접 말하면서 외국인과 대화를 해야 그 사람의 성격을 제대로 알 수 있습니다. 그렇다면 프로그래머 입장에서 ARM 프로세서가 어떤 동작을 하는 지 파악하려면 무엇을 배워야 할 까요? 바로 ARM 어셈블리 명령어입니다. 미국인과 대화를 하려면 영어를 말하듯 ARM 프로세서와 대화를 하려면 ARM 어셈블리 명령어를 사용해야 합니다. 즉, ARM 어셈블리 명령어는 ARM 프로세서와 소통하는 대화하는 언어라고 말할 수 있습니다. ARM 어셈블리 명령어를 사용하면 ARM 프로세서와 어떻게 대화를 할 수 있을까요? 이번에는 프로그래머 입장에서 조금 더 구체적으로 ARM 프로세서와 대화하는 패턴을 예로 들겠습니다. 쉽게 설명을 하면 ARM 프.. [ARM프로세서] ARM프로세서, ARM아키텍처, ARM코어란 ARM 프로세서를 배울 때 가장 혼돈되는 게 용어입니다. 먼저 ARM과 관련된 용어를 소개합니다. ARM 아키텍처 아키텍처는 ARM 프로세서를 설계하는 디자인을 의미하며, 프로그래머 모델을 의미합니다. ARM 아키텍처는 레지스터, 메모리 구조, ARM 어셈블리 명령어, 함수 호출 규약과 같이 소프트웨어 개발자가 알아야 하는 주요 기능입니다. 이 책에서는 ARMv7(32비트)와 ARMv8(64비트: Aarch64) 아키텍처 기반의 프로그래머 모델을 설명합니다. ARM 프로세서 ARM 프로세서는 용어 그대로 디바이스를 뜻합니다. ARM 프로세서는 ARM 아키텍처에 의존적인데, 같은 아키텍처 버전 기반의 ARM 프로세서들은 같은 명령어를 사용합니다. 다음 표는 ARM 아키텍처와 ARM 프로세서의 관계를 나타냅.. [ARM프로세서] ARM 프로세서의 전망 이번 포스트에서 ARM 프로세서의 전망에 대해서 살펴보겠습니다. ARM 프로세서의 출하량 2000년대 초반까지만 해도 ARM 프로세서는 소형 임베디드 제품군에만 사용된 특화된 CPU 프로세서였습니다. 이제 ARM 프로세서는 고성능 CPU 시장에도 두각을 드러내며 수 많은 IT 기기에 사용되고 있습니다. 현재 ARM 기반 프로세서는 시장에서 얼마나 사용되고 있을까요? ARM 기반 프로세서는 스마트폰 95%, 태블릿 85%, 웨어러블 90%를 점유하고 있습니다. 2016년 기준으로, 750억 개(누적) 이상의 ARM 프로세서가 탑재된 칩이 출하됐습니다. ARM 프로세서는 절전형이면서 고성능 스팩을 만족하므로 인텔 CPU 대비 배터리 용량과 크기가 핵심인 스마트 기기 시장에서 선전하고 있습니다. 또한 ARM .. [ARM프로세서] ARM 의 라이선스 - 소프트 매크로/하드 매크로 ARM사는 ARM 프로세서를 직접 공장(Foundry)에서 제조해 양산하지 않습니다. 자신의 지적 재산권을 다른 회사에게 라이선싱 할 뿐입니다. 대신 SoC의 업체인 인텔, 엔비디아, TI(텍사스 인스트루먼트) 그리고 삼성들은 자신의 요구 사항에 맞게 ARM 프로세서를 제조합니다. SoC업체는 SoC 제품군에 따라 ARM 프로세서의 세부 스팩을 적용해 ARM 프로세서를 탑재합니다. ARM 사에서 제공한 지적 재산권을 활용해 어느 IT 업체나 각자 SoC 스팩에 맞게 ARM 프로세서를 탑재할 수 있는데, 여기서 말하는 지적 재산권은 라이선스입니다. 라이선스는 ARM 프로세서를 설계할 수 있는 툴과 문서를 포함합니다. SoC 업체들은 ARM 에서 제공하는 2가지 방식의 라이선스를 적용해 자신의 칩에 ARM .. 이전 1 ··· 18 19 20 21 22 23 24 ··· 61 다음