특정 계산을 수행하는 데 필요한 메모리 범위를 터치하기 위해 asm dcbt
명령을 사용하고 있습니다. 내 프로파일 러는이 범위 내의 요소에 대한 산발적 액세스 (4 회 터치, 5 회 건너 뛰기 등 - 5 회 작업마다 캐시 미스 생성)로 인해 캐시 누락 패턴을 보여줍니다.캐시 프리 패치 시나리오 - 전원 아키텍처
정확한 범위와 크기에 대한 액세스 권한이있는 A()
함수가 있습니다. 이 A()
함수는 다른 섹션보다 먼저 호출되어 A()
범위의 데이터를 사용하고 사용합니다. 난 그냥 A()
내부 dcbt
을 사용하고 B()
, 또는의 개선을 기대할 수 있습니까 데이터의 수집을 활용하여 동일한 기능의 범위에 dcbt
를 사용해야합니까?
저는 PowerPC 아키텍처에 익숙하지 않지만, 캐시의 내용이 함수를 호출/리턴함으로써 영향을받지 않는다고 생각합니다. –
아마 프로세서가 자체 "손"에서 물건을 가져 와서 다음에 만날 것이라고 생각하는 것을 가져올 수 있기 때문에 함수가 수행하는 작업에 따라 다릅니다. – teodron
물론 함수가 중요한 메모리 액세스를 수행하는 경우 캐시에서 물건이 제거 될 수 있습니다. 그러나 단순한 '호출'이나 'ret'(또는 PPC에 해당하는 것이 무엇이든지)가 변경된 경우 매우 놀랍습니다. 하지만, 명시된 바와 같이, 난 그냥 추측이야 ... –