cache line의 크기를 어떻게 알 수 있을까요?

ssobranss의 이미지

보통 요즘의 cpu에서는 64byte라고 하던데요

그렇다고 그냥 상수로 64라고 해놓는건 제 성격상 용납을 못해서;;

혹시 따로 해당 cpu 캐시라인의 크기를 알 수 있는 함수는 없나요?

Stand Alone Complex의 이미지

RET ;My life :P

bushi의 이미지

[bushi@rose mrst_addk]$ strings /usr/bin/getconf|grep -i cache
LEVEL1_ICACHE_SIZE
LEVEL1_ICACHE_ASSOC
LEVEL1_ICACHE_LINESIZE
LEVEL1_DCACHE_SIZE
LEVEL1_DCACHE_ASSOC
LEVEL1_DCACHE_LINESIZE
LEVEL2_CACHE_SIZE
LEVEL2_CACHE_ASSOC
LEVEL2_CACHE_LINESIZE
LEVEL3_CACHE_SIZE
LEVEL3_CACHE_ASSOC
LEVEL3_CACHE_LINESIZE
LEVEL4_CACHE_SIZE
LEVEL4_CACHE_ASSOC
LEVEL4_CACHE_LINESIZE
[bushi@rose mrst_addk]$
[bushi@rose mrst_addk]$ getconf LEVEL1_ICACHE_SIZE
32768
[bushi@rose mrst_addk]$ getconf LEVEL1_ICACHE_LINESIZE
64
[bushi@rose mrst_addk]$ getconf LEVEL1_DCACHE_SIZE
32768
[bushi@rose mrst_addk]$ getconf LEVEL1_DCACHE_LINESIZE
64
[bushi@rose mrst_addk]$ getconf LEVEL2_CACHE_SIZE
6291456
[bushi@rose mrst_addk]$ getconf LEVEL2_CACHE_LINESIZE
64
[bushi@rose mrst_addk]$

sysconf(3) 참고하세요.

OTL