ARM GIC v3 in Linux Kernel
ARM GICv3의 컴포넌트 구성과 초기화 흐름은 별도 글에서 다뤘다. 그런데 막상 각 레지스터를 읽고 쓰는 실제 커널 코드를 보면 writel_relaxed() 한 줄로 끝나는 경우가 드물다. 하드웨어에 값을 쓴 뒤 그…
ARM GICv3의 컴포넌트 구성과 초기화 흐름은 별도 글에서 다뤘다. 그런데 막상 각 레지스터를 읽고 쓰는 실제 커널 코드를 보면 writel_relaxed() 한 줄로 끝나는 경우가 드물다. 하드웨어에 값을 쓴 뒤 그…
GICv2는 아키텍처상 PE(Processing Element, 코어)를 최대 8개까지만 지원한다. 서버·모바일 SoC의 코어 수가 계속 늘어나면서 이 상한이 실제 병목이 됐고, ARM은 GICv3에서 Distributor 하나가 모든 코어를 직접 상대하던 구조를 버리고 코어마다…