programing

캐시 적중과 캐시 미스 란 무엇입니까?

nasanasas 2020. 11. 18. 09:14
반응형

캐시 적중과 캐시 미스 란 무엇입니까? 컨텍스트 전환으로 인해 캐시 누락이 발생하는 이유는 무엇입니까?


11th Chapter ( Performance and Scalability )와 JCIP 책Context Switching 섹션 에서 발췌 :

새 스레드가 전환되면 필요한 데이터가 로컬 프로세서 캐시에있을 가능성이 낮으므로 컨텍스트 전환으로 인해 캐시 누락이 발생하므로 스레드가 처음 예약 될 때 조금 더 느리게 실행됩니다.

  1. 누군가가 캐시 미스 의 개념 과 그 반대 ( 캐시 히트 ) 의 개념을 이해하기 쉽게 설명 할 수 있습니까 ?
  2. 컨텍스트 전환으로 인해 많은 캐시 미스가 발생하는 이유는 무엇입니까?

누군가가 캐시 미스의 개념과 그 반대 (캐시 적중)의 개념을 이해하기 쉽게 설명 할 수 있습니까?

일반적으로 캐시 미스 는 캐시에서 무언가를 찾았지만 찾을 수없는 경우입니다. 캐시에 조회중인 항목이 포함되어 있지 않습니다. 캐시 적중캐시 에서 무언가를 찾고 항목 저장하고 쿼리를 충족 할 수있는 경우입니다.

컨텍스트 전환으로 인해 많은 캐시 미스가 발생하는 이유는 무엇입니까?

메모리 측면에서 각 프로세서에는 주 메모리의 작은 부분을 고속으로 복사 하는 메모리 캐시가 있습니다. 새 스레드가 컨텍스트가 프로세서로 전환되면 로컬 캐시 메모리가 비어 있거나 스레드에 필요한 데이터와 일치하지 않습니다. 즉, 필요한 데이터가 로컬 메모리 캐시에 저장 되지 않기 때문에 해당 새 스레드에서 수행 한 모든 (또는 대부분의) 메모리 조회가 캐시 누락을 초래 합니다. 그런 다음 하드웨어는 로컬 메모리 캐시를 채우기 위해 메인 메모리에 여러 요청을 해야 스레드가 초기에 느리게 실행됩니다.


프로세서가 주 메모리에서 데이터를 가져 오려고 할 때마다 먼저 캐시 버퍼에서 해당 주소가 버퍼에 있는지 확인합니다. 있는 경우 캐시를 사용하여 작업을 수행합니다. 메인 메모리에서 가져올 필요가 없습니다. 이를 "캐시 적중"이라고합니다.

주소가 캐시에 없으면 "캐시 미스"라고합니다. 캐시 미스가 발생하면 프로세서가 주 메모리로 이동하여 주소를 가져 오며 시간이 더 걸립니다.


또한 컨텍스트 전환으로 인해 캐시 된 데이터에 액세스 할 수있는 프로세서에서 이전에 실행 된 스레드가 활성 상태로 돌아가는 경우 필요한 "작업 집합"이 여전히 캐시에있을 가능성이 있음을 관찰해야합니다. 이것이 사실 일 확률은 캐시 크기 (및 구조)에 따라 다릅니다. 또한 워크로드에 따라 다릅니다. 스레드 유휴 또는 대기 기간 동안 캐시에 대한 수요가 얼마나 있었는지, 유휴 또는 대기 기간이 얼마나 오래 지속되는지.


프로세서가 메모리 위치가 캐시에 있음을 발견하면 캐시 히트라고 말하고 그렇지 않으면 캐시 미스라고 말합니다.


원하는 데이터가 L1에 있으면 캐시 적중입니다. 원하는 데이터가 다른 캐시 메모리 수준에 있으면 캐시 미스입니다.

참고 URL : https://stackoverflow.com/questions/18559342/what-is-a-cache-hit-and-a-cache-miss-why-would-context-switching-cause-cache-mi

반응형