ARM 아키텍처

ARM GIC v3 (Generic Interrupt Controller v3)

GICv2는 아키텍처상 PE(Processing Element, 코어)를 최대 8개까지만 지원한다. 서버·모바일 SoC의 코어 수가 계속 늘어나면서 이 상한이 실제 병목이 됐고, ARM은 GICv3에서 Distributor 하나가 모든 코어를 직접 상대하던 구조를 버리고 코어마다…

Continue ReadingARM GIC v3 (Generic Interrupt Controller v3)

topdown-tool로 Arm Neoverse 성능 분석하기

perf stat로 cycles, instructions, cache-misses 몇 개를 조합해 IPC와 미스율을 계산하는 건 코어 하나짜리 애플리케이션이라면 충분하다. 그런데 병목이 프론트엔드인지 백엔드인지까지 확인한 다음, 백엔드라면 그게 L1인지 L2인지 라스트레벨 캐시인지 TLB인지까지 계속…

Continue Readingtopdown-tool로 Arm Neoverse 성능 분석하기

ARM PMU를 활용한 시스템 성능 모니터링

시스템이 느려졌을 때 "CPU가 바쁜지" "메모리가 병목인지"를 구분하는 건 생각보다 어렵다. top의 CPU 사용률은 코어가 뭔가는 하고 있다는 것만 보여줄 뿐, 그 사이클이 실제 연산에 쓰였는지 메모리 응답을 기다리며 멈춰…

Continue ReadingARM PMU를 활용한 시스템 성능 모니터링

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 포팅 관점)