ARM 아키텍처

ARMv8 AArch64 어셈블리 입문 가이드

C 코드를 gcc -S로 컴파일해 어셈블리 출력을 구경해본 적은 있어도, 처음부터 어셈블리만으로 프로그램을 짜서 빌드하고 실행해본 경험은 드물다. 하지만 커널의 부팅 초기 코드, 예외/인터럽트 벡터 핸들러, 컨텍스트 스위칭처럼 C로는 표현할…

Continue ReadingARMv8 AArch64 어셈블리 입문 가이드

엔비디아 RTX 스파크(RTX Spark) 공개 — Grace-Blackwell 슈퍼칩이 여는 에이전틱 AI PC 시대

2026년 6월 1일 대만 컴퓨텍스 무대에서 젠슨 황 엔비디아 CEO는 "40년 만에 PC를 다시 발명하고 있다"고 선언하며 새 PC 플랫폼 'RTX 스파크(RTX Spark)'를 공개했습니다. 그동안 엔비디아는 데이터센터용 GPU와 Grace Hopper·Grace…

Continue Reading엔비디아 RTX 스파크(RTX Spark) 공개 — Grace-Blackwell 슈퍼칩이 여는 에이전틱 AI PC 시대

ARM Instruction Set

모든 ARM 명령어는 32비트 길이를 갖는다. 명령어들은 32비트 워드로 정렬되므로 명령어 주소의 최하위 2비트는 ARM 상태에서는 항상 0이다. 일부 명령어는 최하위 비트를 Thumb 코드인지 ARM코드 인지 확인한다. ARM Instruction Set…

Continue ReadingARM Instruction Set

ARM64 inline asm 포팅 가이드 (커널/Clang 포팅 관점)

ARM64(AArch64)에서 inline asm은 문법이 어렵다기보다, 컴파일러가 더 엄격하고 최적화가 더 공격적이라서 사고가 난다. 특히 벤더 커널을 Clang으로 옮길 때는 constraint 선택, clobber, barrier 세 가지가 대부분의 원인이다. 이 글에서는 ARM64에서…

Continue ReadingARM64 inline asm 포팅 가이드 (커널/Clang 포팅 관점)

Clang/LLVM로 Linux 커널 빌드 하기

이 글은 Ubuntu 환경에서 Clang/LLVM 툴체인을 이용해 Linux 커널을 실제로 빌드하는 방법을 단계별로 정리한다. Clang/LLVM 툴체인 설치는 아래 글을 먼저 확인한다. https://junorionblog.co.kr/linux-%ec%bb%a4%eb%84%90-clang-llvm-%ed%88%b4%ec%b2%b4%ec%9d%b8-%ec%a4%80%eb%b9%84%ed%95%98%ea%b8%b0/ Ubuntu 커널 빌드에 대한 건 아래 글을 참고한다.…

Continue ReadingClang/LLVM로 Linux 커널 빌드 하기

ARMv8 Registers

ARMv8 아키텍처는 64비트 레지스터 아키텍처로, 고성능 및 저전력 임베디드 시스템에서 사용되는 주요 기술이다. 이 아키텍처에는 다양한 레지스터가 존재 하는데, 이 글에서는 이러한 레지스터에 대해 알아본다. General-Purpose Registers AArch64 는 모든…

Continue ReadingARMv8 Registers

AArch64 레지스터

AArch64 아키텍처는 64비트 ARM 아키텍처로, 다양한 용도로 사용되는 여러 레지스터를 제공한다. 이 레지스터들은 다양한 목적으로 사용되며, 프로세서 상태, 데이터, 벡터 연산 등 다양한 기능을 지원한다. 이 글에서는 AArch64 레지스터에 대해…

Continue ReadingAArch64 레지스터