[ CnUnix ] in KIDS 글 쓴 이(By): sang (Grid) 날 짜 (Date): 2004년 6월 4일 금요일 오후 12시 58분 01초 제 목(Title): Re: [Q] L2 cache의 동작 방식 >> >> 1. cache는 physical address로 indexing 되므로 context switch가 발생할때 >> 모든 cache line에 대해서 flushing&invalidate시켜야 한다. >> 그렇지 않다면, context switching이 발생할때 swapping이 발생하여 >> physical address A가 V1(pid1), V2(pid2)에 mapping된 상황에서 retailed >> data/instr. 을 access하는 경우가 발생한다. >> > > A = V1(pid1) = V2(pid2) 라면 Shared Memory를 쓰고 있는 경우 잖아. > Flushing할 필요가 없지. -_-. > 제가 쓴 위 문단은 shared memory로 mapping된 특수한 경우를 언급한게 아니라 동일 memory가 서로 다른 process의 virtual address에 mapping될 수 있기 때문에 flushing & invalidation 시켜야 한다는 의미에요. >> >> >> 2. SUN sbus를 사용하는 일부 기종들 중 virtual address로 indexing하는 >> cache가 >> 있는데, 이 경우는 굳이 flush&invalidate시킬 필요가 없다. (동욱형 논문 >> 참고) >> > > Tag에 Virtual Address만 쓰고 PID를 안쓴다면 Flush를 안하면 다른 프로세스 > 데이타를 읽을 수 있기 때문에 Flush가 필요하잖아. > > virtual cache 개념에서 indexing시 virtual address + pid를 이용하는건 당연하다고 생각해서 언급 안 했어요. 아무튼 그런 cache는 flushing & invalidation이 필요없다는 의미에요. >> >> 3. 보통 cache line affinity는 parallel appl.에서 job >> partitioning&allocation >> 관련해서 memory access latency를 줄이는 방법중 하나로 연구되고 >> 있는걸로 알고 있는데, 실행환경에 사용된 키워드랑 뭔가 매칭이 안돼. >> 재밌는거 혼자만 하지 말고 대강이라도 background에 대해서 알려줘. 궁금~ >:) >> >> @ 마지막으로 오~ 완자 열라 열심모드? >> >> >> >> > 네가 틀릴리가 없는데... 이상하군. > > Physical Address로 태그되는 Cache는 Context Switch때 Flush할 필요가 없고, > Virtual Address Cache의 장점은 Physical Address Mapping Time을 절약할 수 > 있다는 거잖아. > 제가 뭔가 착각하거나 잘못알고 있을수도 있지만.. physical address를 사용하는 cache는 context switching시 flushing & invalidation 이 필요하고, virtual cache의 경우는 필요없고..라는 결론에 대해서는 아직 변함이 없지만.. 제가 cache를 안 만들어봐서 확신은 없어요 ^^;; |