2012-07-05 2 views
0

멀티 스레드 프로그램에서 스레드 로컬 저장소를 사용하면 캐시 누락이 줄어 듭니까?TLS에서 캐시 미스가 줄어 듭니까?

편집 : 각 스레드에 자체 메모리 풀이 지정되므로 마지막으로 액세스 한 메모리가 여전히 CPU 캐시에있을 가능성이 더 높습니까?

+0

이 질문은 완전히 명확하지 않다. 어떤 종류의 캐시? TLS는 무엇에 사용됩니까? 기타 – Thomas

+1

@Thomas "cache miss"http://en.wikipedia.org/wiki/CPU_cache#Cache_miss;)와 "Thread Local Storage"에 대한 검색을 수행했습니다. http://en.wikipedia.org/wiki/Thread 편의를 위해 -local_storage. –

+2

아, _CPU_ 캐시. 당신은 그렇게 말하지 않았습니다 :) 이제는 더 이해가됩니다. – Thomas

답변

3

캐시 미스가 덜 보다 작음?

TLS는 서로 다른 스레드가 서로 다른 데이터에서 작동하도록하는 여러 가지 방법 중 하나 일뿐입니다. 분명한 것은 각 스레드의 데이터를 자체 스택에 저장하는 것입니다.

스레드가 동일한 데이터에 쓰지 않는 경우 (다른 모든 코어의 해당 캐시 행을 무효화하므로) 더 나은 캐시 동작을 얻을 수 있지만 스레드가 다른 이 점에서 데이터는 부적합합니다.

(가 있지만, TLS와 관련된 다른 오버 헤드 그것은 마술이 아니다.이며,이 은색 총알이 아니다. 대부분의 시간, 그것은 잘못된 해결책)

0

아니요. 캐시가 실제로 스레드 풀 크기로 구성되지 않았기 때문에 생각하고있는 선택과 독립적으로 작동합니다.