[[질문]] intel quad core의 l2 cache access time
글쓴이: jungwook / 작성시간: 금, 2009/10/09 - 2:43오전
안녕하세요?? linux kernel을 공부하다가 문득 궁금한게 생겼는데, 인텔 메뉴얼을 찾아도 도저히 못찾겠네요.
제 컴이 quad core인데 core 마다 l2 cache를 각각 가지고 있는데, 만약 제가 c1, c2, c3, c4가 있다하면
c1이 c2에 있는 l2 cache에 접근하면 c1안에 있는 l2 cache보다 access time이 느릴꺼라고 생각이 되는데,
이런 내용을 찾을려 해도 찾을 수 없네요.
혹시 intel manual에서 보신적 있으시거나 정보있으시면 좀 알려주세요.
그리고 어셈블리어로 이런 test를 할 수 있을까요?
다른 core 내에 있는 cache에 접근하고 이런 부분을..
할 수 있다면 한번 테스트를 해보고 싶은데..
답글 부탁드립니다.
Forums:
저도 remote l2 cache
저도 remote l2 cache access time을 찾아보려고 intel manual을 뒤져본적은 없지만, 혹시나 제가 알고 있는게 도움이 될까 해서 적어봅니다.
c2의 l2 cache에 있는 데이터를 c1이 읽으려고 하면 다음과 같은 일련의 과정을 거치게 됩니다.
1. c1의 l2 cache에 원하는 데이터가 없는 것을 알고 cache miss를 낸다.
2. cache miss가 core들이 연결되어 있는 bus에 broadcasting이 된다.
3. c2의 l2 cache가 bus에 broadcasting된 cache miss signal이 자기가 소유하고 있는 데이터에 대한 것임을 알고 bus에 cache miss reply (with data)를 broadcasting 한다.
4. c1의 l2 cache가 cache miss reply에 있는 데이터를 받아다가 자신의 cache에 쓰고 cache miss를 resolve 한다.
5. 그 이후의 c1의 똑같은 데이터에 대한 access는 다른 core가 그 데이터를 변경하지 않는한 자신의 l2 cache에서 처리됩니다 (l2 cache hit).
이렇게 caching 된 데이터들에 대해서 여러 core 들이 일관된 값들을 읽고 쓸 수 있도록 해주는 걸 cache coherency protocol이라고 하구요, 대부분의 경우에는 (제가 설명한 예제를 포함) shared bus를 사용한 snooping cache coherency protocol을 많이 사용합니다. 더 궁금하시면 computer architecture 책들을 찾아보시면 자세한 설명을 보실 수 있을 겁니다. 제가 설명한 거에서 일부분 틀린 것도 있을 수 있구요 ^^
어쩌면 cache coherency protocol, snooping 같은 검색어로 intel manual을 찾아보면 뭔가 원하는 정보를 얻으실 수도 있겠네요. 혹시 문제가 해결되면 알게된 값좀 알려주시면 감사하겠습니다 :)
네~ 답변
네~ 답변 감사드리고요, 아직 문제가 해결되진 않았지만 좀 더 알아보고 시뮬레이션을 해서 알려드릴께요.
아마 오랜 시간이 걸릴듯하네요. ㅡㅡ;
감사합니다.
snoop based protocol
오랜만에 듣는 얘기네요... snoop based protocol...
우선 느려지는건 맞겠죠..
제가 알고 있기론 snoop based protocol은 아주 기본적인 내용(즉, 아주 예전에 나온 내용이죠..)이고,
여기에 directory based protocol도 있습니다.
실제로 AMD Hypertransport기술을 사용하는 processor에서는 snoop을 이용하네요. 이건 2001도에 만들어진
기술이구요. Intel에서는 어떤 기술을 사용하는지 모르겠네요.
암튼 cache coherence에서 snoop based protocol or directory based protocol 기반으로 검색해보시면
검색되지 않을까 생각하네요.
근데 나도 질문..
시뮬레이션 한다고 하셨는데~
어떻게 하시나요? c1에 있는 data가 c2에 없다는것을 guarantee할 수 있나요? 흠...
답변이 늦었네요.
답변이 늦었네요. ㅡㅡ;
저도 아직 감은 안오지만 cache를 simulator등을 이용해서 해볼려고 합니다.
simplescalar or simics 등등 여러 simulator가 존재하네요.^^
댓글 달기