ArmV7-A의 캐싱에 대한 또 다른 질문. 이 경우 해당 SoC는 Allwinner A20, Dual-Core Cortex-A7입니다.공유 할 수없는 속성을 가진 PoU
내가 읽은 바에 따르면, 코어에 대한 PoU의 정의는 코어의 명령어 및 데이터 캐시가 메모리 위치의 동일한 사본을 보도록 보장되는 지점입니다.
문제의 SoC와 관련하여 두 코어가 모두 L2 (Unified) 캐시에서 PoU를 공유하기 때문에 L1에 넣어 진 내용이 L2에서 볼 수 있음을 의미합니다. 그게 맞습니까?
메모리 영역의 속성을 비 공유 가능으로 변경하더라도 L2는 어느 한 코어의 L1 내부를 확인할 수 있습니다.. 그게 사실이야? 내가 그 무슨 뜻인지 자세히 설명하려면
, 나는 약간의 실험을 수행 한 : 나는 내부에 메모리 주소에 쓴
공유 불가, 쓰기로 돌아 가기 핵심 # 0에서 지역. 그런 다음 캐시 유지 관리 작업을 수행하지 않고 코어 # 1에서 동일한 메모리 주소를 읽으려고하면 코어 # 0에서 작성된 올바른 값을 읽습니다.
나는이 행동이 L2가 PoU라는 결과라고 추측했다. 따라서 코어 # 0에서 썼을 때, L2는 플러시되지 않은 경우에도 복사본을 저장한다. 그런 다음 코어 # 1에서 읽었을 때, 읽기 실패 후 코어 # 1의 L1이 L2에서 메모리 값을 가져옵니다.
두 CPU가 모두 _data_ 액세스이기 때문에 PoU와는 아무런 관련이 없습니다. – Notlikethat
@ Notlikethat 다른 질문에 대해서도 감사드립니다. 당신은 정교 할 수 있습니까? PoU는 데이터 액세스와 관련이 없습니까? 나는 아직도 다른 cpu가 첫번째 cpu에 쓴 내용에 왜 접근 할 수 있는지 모른다. 지역 설정이 비공유, Writeback –