반갑습니다.
Cache 관련 질문이 있어서 찾았습니다.
ARM Cortex-A7사용자인데요.
현재 L2 Cache가 Unified Cache인데 만약 0x10000000 Address에 Data Access가 일어나 해당 Data가 L2 Cache에 Load가 된 경우,
Instruction으로 같은 Address(0x10000000)에 Access가 일어나면 L2에서 Hit가 되나요? 아니면 Miss가 되나요?
아시는 분 도움 부탁 드립니다.
댓글 3
-
최형호
2013.11.05 19:02
-
tp
2013.11.08 10:17
L2는 unified cache입니다. 언급하신 내용은 L2 hit됩니다.
주의 할점은 L1에 0x1000_0000이 이미 올라온 상태라면 data cache에 의한 modified 내용을 파악하기 위해 L1I$의 해당 어드레스가 invalidate 되어야 합니다.
-
demiahn
2013.11.05 19:56
예를 들면, memcpy함수로 0x10000000영역에 code를 copy합니다.
이후 0x10000000영역으로 copy된 함수가 수행되는 경우에 대한 질문입니다.
즉, Data Access에 의해 L2 Cache에 Data가 Load된 상태에서,
이후 Instruction Access로 해당 Address를 Access하는 경우 Hit가 되냐는 질문입니다.
아니면 Data와 Instruction은 완전히 분리가 되는 지 궁금해서요.
.
안녕하세요.
같은 address에 data와 instruction이 같이 존재한다는 말씀이신가요?
기본적으로 코드와 데이타는 주소가 다를진데 vm 이나 기타 다른 이유에 의해 데이타 영역에 코드가 있다면 Hit 되겠지요.
정확히 어떤 상황인지 몰라서 약간 두리뭉실하게 답변합니다.