raspberry pi 3 b 모델 사용해서 테스트중인데 기본값이 l1은 d-cache 32k, l2 512k 입니다.
dts에서 l1 d-cache를 64k로 변경해도 실제 benchmark를 32k memory load와 46k memory load 테스트 케이스를 수행했을때 시간 차이가 2배 이상 납니다. (예, 32k: 2ns, 46k: 8ns). 예상대로라면 32K, 46k mem load의 시간은 비슷하게 2ns로 나와야 하는데 말입니다.
위 결과로 봐서는 dts는 그냥 cpuinfo를 kernel이나 user에게 전달하기 위한 명세같고 실제로는 칩셋 디자인할때 fixed-size 되어서 나오는 건지 궁금하네요. reference 문서를 봐도 관련 system reg는 안보이는데 속 시원한 정보를 얻고 싶습니다.
감사합니다.
.
"CCSIDR_EL1" system register를 통해서, cache line size를 알 수 있고 이 register를 접근할 때는 read-only 입니다.
이를 통해서 칩셋 디자인할 때 fixed-size 되어 나오는것임을 유추해볼 수 있을 것 같습니다.
그리고 실제로도 그러한 것으로 알고 있습니다.