캐시효율성을 위해 메모리 레이아웃을 어떻게 잡아야할지 판단 기준은 있는지?

- 깊게갈 필요없이 l1/l2 캐시라인 크기에 대해 얘기하는정도면 ok

메모리 레이아웃은 구조체 얘기임


---
이건데


L1,L2는 기본적으로 캐시라인 크기 자체가 그냥 정보일뿐이고, 실제 메모리 레이아웃 설계 기준은 접근 패턴과 구조체 정렬방식이니까 메모리 지역성 문제임


따라서 패딩같이 빈값 삽입하고 연속성 유지를 위한 것이고


캐시크기는 지역성을 예측하기 위한 필요조건이지 충분조건이 아님


CPU 캐시가 예측해서 prefetch 하는 구조라 캐시크기는 지역성을 보장하지 않음


따라서 언어별 접근 패턴에 따라 다름


실제로 AoS->SoA 변환 False Sharing이 이거임