2012-09-27 3 views
3

여러 코어가 동시에 동일한 RAM 위치를 읽을 수 있습니까? 특히 x86 아키텍처 CPU에 관심이 있습니다. 또한 같은 CPU에있는 두 개의 서로 다른 코어의 내부 캐시가 동일한 RAM 위치에서 동시에 채워질 수 있습니까?여러 코어가 동시에 동일한 RAM 위치를 읽을 수 있습니까?

+1

이것은 "동시에"의 의미에 달려 있습니다 - 언제든지 DRAM에서 하나의 버스 읽기 사이클 만있을 수 있지만 코어 간의 캐시 스누핑 로직은 캐시 일관성을 처리합니다. –

+0

@Paul R : "동시에"라는 말은 시간 X에서 두 주소의 코어에서로드하는 것을 의미합니다. ADDR은 두 코어의 레지스터에서 ADDR의 값을로드합니다. –

+0

@Lyth 아래에서 좋은 대답을 주겠지 만 짧은 대답은 no입니다. 하나의 주소에서 두 개의 코어를로드 할 수없는 것은 버스 읽기 사이클입니다. –

답변

5

간단히 말해서, 위치는 공유 L3 캐시에 미리로드 될 수 있지만 독립적으로 읽을 수 있으며 캐시는 독립적으로 채워집니다. 정확한 진드기는 동기화가 보장되지 않지만 메모리 상태는 응 용적이고 응용 프로그램에 투명합니다. 울리히 드 리퍼 (Ulrich Drepper)가 읽어야 할 훌륭한 기사가 있습니다 : http://lwn.net/Articles/250967/

+0

답장과 기사를 보내 주셔서 감사합니다! –

+0

와우는 실제로 매우 포괄적 인 기사처럼 보입니다. 확실히 북마크했습니다. –